From 699edef4dcf8271b171babac9cf49b8726659047 Mon Sep 17 00:00:00 2001 From: Adam Stein Date: Wed, 30 Oct 2019 21:13:30 -0700 Subject: [PATCH 1/9] updates parser for SyGuS specification language version 2.0 --- src/SyGuS.ml | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/src/SyGuS.ml b/src/SyGuS.ml index 5b5de94..034d92c 100644 --- a/src/SyGuS.ml +++ b/src/SyGuS.ml @@ -36,7 +36,6 @@ let replace bindings expr = in List.iter bindings ~f:(function [@warning "-8"] | List [ (Atom key) ; data ] (* SMTLIB *) - | List [ (Atom key) ; _ ; data ] (* SyGuS *) -> table := String.Map.add_exn !table ~key ~data) ; let rec helper = function | List l -> List (List.map l ~f:helper) @@ -54,6 +53,7 @@ let rec remove_lets : Sexp.t -> Sexp.t = function let rec extract_consts : Sexp.t -> Value.t list = function | List [] -> [] | (Atom a) | List [Atom a] -> (try [ Value.of_string a ] with _ -> []) + | List [(Atom op); (Atom a)] | List [List [(Atom op); (Atom a)]] -> (try [ Value.of_string (op^a) ] with _ -> []) | List(_ :: fargs) -> let consts = List.fold fargs ~init:[] ~f:(fun consts farg -> (extract_consts farg) @ consts) in List.(dedup_and_sort ~compare:Value.compare consts) @@ -85,6 +85,10 @@ let func_definition (f : func) : string = let var_declaration ((var_name, var_type) : var) : string = "(declare-var " ^ var_name ^ " " ^ (Type.to_string var_type) ^ ")" +let rec gen_variables = function + | (_var, _type)::t -> (_var, _type)::(_var ^ "!", _type)::(gen_variables t) + | [] -> [] + let parse_sexps (sexps : Sexp.t list) : t = let logic : string ref = ref "" in let consts : Value.t list ref = ref [] in @@ -102,32 +106,21 @@ let parse_sexps (sexps : Sexp.t list) : t = -> if String.equal !logic "" then logic := _logic else raise (Parse_Exn ("Logic already set to: " ^ !logic)) | List [ (Atom "synth-inv") ; (Atom _invf_name) ; (List _invf_vars) ] - -> invf_name := _invf_name ; invf_vars := List.map ~f:parse_variable_declaration _invf_vars + -> invf_name := _invf_name ; invf_vars := List.map ~f:parse_variable_declaration _invf_vars ; variables := gen_variables !invf_vars | List [ (Atom "synth-inv") ; (Atom _invf_name) ; (List _invf_vars) ; _ ] -> (* FIXME: Custom grammar *) Log.error (lazy ("LoopInvGen currently does not allow custom grammars.")) - ; invf_name := _invf_name ; invf_vars := List.map ~f:parse_variable_declaration _invf_vars + ; invf_name := _invf_name ; invf_vars := List.map ~f:parse_variable_declaration _invf_vars ; variables := gen_variables !invf_vars | List ( (Atom "declare-var") :: sexps ) -> let new_var = parse_variable_declaration (List sexps) in if List.mem !variables new_var ~equal:(fun x y -> String.equal (fst x) (fst y)) then raise (Parse_Exn ("Multiple declarations of variable " ^ (fst new_var))) else variables := new_var :: !variables - | List [ (Atom "declare-fun") ; name ; args ; rtype ] - -> if args <> List [] then raise (Parse_Exn "Only nullary function (i.e. variable) declarations supported.") else - let new_var = parse_variable_declaration (List [name ; rtype]) - in if List.mem !variables new_var ~equal:(fun x y -> String.equal (fst x) (fst y)) - then raise (Parse_Exn ("Multiple declarations of variable " ^ (fst new_var))) - else variables := new_var :: !variables - | List ( (Atom "declare-primed-var") :: sexps ) - -> let _var, _type = parse_variable_declaration (List sexps) - in if List.mem !variables (_var, _type) ~equal:(fun x y -> String.equal (fst x) (fst y)) - then raise (Parse_Exn ("Multiple declarations of variable " ^ _var)) - else variables := (_var, _type) :: (_var ^ "!", _type) :: !variables | List ( (Atom "define-fun") :: func_sexps ) -> let (func, fconsts) = parse_define_fun func_sexps in if List.mem !funcs func ~equal:(fun x y -> String.equal x.name y.name) (* FIXME: SyGuS format allows overloaded functions with different signatures *) then raise (Parse_Exn ("Multiple definitions of function " ^ func.name)) - else funcs := func :: !funcs ; consts := fconsts @ !consts + else funcs := func :: !funcs ; consts := fconsts @ !consts | List [ (Atom "inv-constraint") ; (Atom _invf_name) ; (Atom _pref_name) ; (Atom _transf_name) ; (Atom _postf_name) ] -> pref_name := _pref_name ; transf_name := _transf_name ; postf_name := _postf_name From fe982096ba24be226ffd379aed7983875a65b794 Mon Sep 17 00:00:00 2001 From: Adam Stein Date: Thu, 31 Oct 2019 21:49:39 -0700 Subject: [PATCH 2/9] Creates variables from trans_fun and checks that pre and post functions use the correct order. --- src/SyGuS.ml | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/SyGuS.ml b/src/SyGuS.ml index 034d92c..dbdebb3 100644 --- a/src/SyGuS.ml +++ b/src/SyGuS.ml @@ -85,9 +85,12 @@ let func_definition (f : func) : string = let var_declaration ((var_name, var_type) : var) : string = "(declare-var " ^ var_name ^ " " ^ (Type.to_string var_type) ^ ")" -let rec gen_variables = function - | (_var, _type)::t -> (_var, _type)::(_var ^ "!", _type)::(gen_variables t) - | [] -> [] +let rec check_arg_order variables = + let isequal (v1, _) (v2, _) = String.equal v1 v2 in + function + | [pref; _; postf] -> List.is_prefix variables ~prefix:pref.args ~equal:isequal && + List.is_prefix variables ~prefix:postf.args ~equal:isequal + | _ -> raise (Parse_Exn ("A pre-, trans-, and post- function were not declared")) let parse_sexps (sexps : Sexp.t list) : t = let logic : string ref = ref "" in @@ -106,10 +109,10 @@ let parse_sexps (sexps : Sexp.t list) : t = -> if String.equal !logic "" then logic := _logic else raise (Parse_Exn ("Logic already set to: " ^ !logic)) | List [ (Atom "synth-inv") ; (Atom _invf_name) ; (List _invf_vars) ] - -> invf_name := _invf_name ; invf_vars := List.map ~f:parse_variable_declaration _invf_vars ; variables := gen_variables !invf_vars + -> invf_name := _invf_name ; invf_vars := List.map ~f:parse_variable_declaration _invf_vars | List [ (Atom "synth-inv") ; (Atom _invf_name) ; (List _invf_vars) ; _ ] -> (* FIXME: Custom grammar *) Log.error (lazy ("LoopInvGen currently does not allow custom grammars.")) - ; invf_name := _invf_name ; invf_vars := List.map ~f:parse_variable_declaration _invf_vars ; variables := gen_variables !invf_vars + ; invf_name := _invf_name ; invf_vars := List.map ~f:parse_variable_declaration _invf_vars | List ( (Atom "declare-var") :: sexps ) -> let new_var = parse_variable_declaration (List sexps) in if List.mem !variables new_var ~equal:(fun x y -> String.equal (fst x) (fst y)) @@ -120,12 +123,16 @@ let parse_sexps (sexps : Sexp.t list) : t = in if List.mem !funcs func ~equal:(fun x y -> String.equal x.name y.name) (* FIXME: SyGuS format allows overloaded functions with different signatures *) then raise (Parse_Exn ("Multiple definitions of function " ^ func.name)) - else funcs := func :: !funcs ; consts := fconsts @ !consts + else funcs := func :: !funcs ; consts := fconsts @ !consts ; + (if String.equal func.name "trans_fun" + then variables := func.args) | List [ (Atom "inv-constraint") ; (Atom _invf_name) ; (Atom _pref_name) ; (Atom _transf_name) ; (Atom _postf_name) ] -> pref_name := _pref_name ; transf_name := _transf_name ; postf_name := _postf_name - ; if not (String.equal !invf_name _invf_name) - then raise (Parse_Exn ("Invariant function [" ^ _invf_name ^ "] not declared")) + ; (if not (String.equal !invf_name _invf_name) + then raise (Parse_Exn ("Invariant function [" ^ _invf_name ^ "] not declared"))) + ; if not (check_arg_order !variables !funcs) + then raise (Parse_Exn ("Argument order not consistent for declared functions")) | sexp -> raise (Parse_Exn ("Unknown command: " ^ (Sexp.to_string_hum sexp)))) ; consts := List.dedup_and_sort ~compare:Poly.compare !consts ; Log.debug (lazy ("Detected Constants: " ^ (List.to_string_map ~sep:", " ~f:Value.to_string !consts))) From a44f47beec7779d215b32c6fd621eb7e174a680c Mon Sep 17 00:00:00 2001 From: Adam Stein Date: Fri, 1 Nov 2019 22:09:29 -0700 Subject: [PATCH 3/9] Only check argument order for pre, trans, post functions. Also make sure all three of those functions are defined. --- src/SyGuS.ml | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/SyGuS.ml b/src/SyGuS.ml index dbdebb3..35a8d03 100644 --- a/src/SyGuS.ml +++ b/src/SyGuS.ml @@ -85,12 +85,12 @@ let func_definition (f : func) : string = let var_declaration ((var_name, var_type) : var) : string = "(declare-var " ^ var_name ^ " " ^ (Type.to_string var_type) ^ ")" -let rec check_arg_order variables = +let rec check_arg_order variables func = let isequal (v1, _) (v2, _) = String.equal v1 v2 in - function - | [pref; _; postf] -> List.is_prefix variables ~prefix:pref.args ~equal:isequal && - List.is_prefix variables ~prefix:postf.args ~equal:isequal - | _ -> raise (Parse_Exn ("A pre-, trans-, and post- function were not declared")) + List.is_prefix variables ~prefix:func.args ~equal:isequal + +let func_from_funcs funcs fname= + List.filter funcs ~f:(fun func -> if String.equal fname func.name then true else false) let parse_sexps (sexps : Sexp.t list) : t = let logic : string ref = ref "" in @@ -130,9 +130,16 @@ let parse_sexps (sexps : Sexp.t list) : t = ; (Atom _transf_name) ; (Atom _postf_name) ] -> pref_name := _pref_name ; transf_name := _transf_name ; postf_name := _postf_name ; (if not (String.equal !invf_name _invf_name) - then raise (Parse_Exn ("Invariant function [" ^ _invf_name ^ "] not declared"))) - ; if not (check_arg_order !variables !funcs) - then raise (Parse_Exn ("Argument order not consistent for declared functions")) + then raise (Parse_Exn ("Invariant function [" ^ _invf_name ^ "] not declared"))) + ; (if not (String.equal !postf_name _postf_name) + then raise (Parse_Exn ("Post function [" ^ _postf_name ^ "] not declared"))) + ; (if not (String.equal !transf_name _transf_name) + then raise (Parse_Exn ("Transition function [" ^ _transf_name ^ "] not declared"))) + ; (match List.map ~f:(fun name -> func_from_funcs !funcs name) [_pref_name; _transf_name; _postf_name] with + | [[pref];[transf];[postf]] -> variables := transf.args ; + if not ((check_arg_order !variables pref) && (check_arg_order !variables postf)) + then raise (Parse_Exn ("Argument order not consistent between pre, trans, and post functions")) + | _ -> raise (Parse_Exn ("Multiple definitions of function.")) (* Should be impossible to get here. *)) | sexp -> raise (Parse_Exn ("Unknown command: " ^ (Sexp.to_string_hum sexp)))) ; consts := List.dedup_and_sort ~compare:Poly.compare !consts ; Log.debug (lazy ("Detected Constants: " ^ (List.to_string_map ~sep:", " ~f:Value.to_string !consts))) From 0a1f40b7f5723e207be5590033dd852398c18081 Mon Sep 17 00:00:00 2001 From: Adam Stein Date: Sat, 2 Nov 2019 12:25:05 -0700 Subject: [PATCH 4/9] Removes 'declare-var' and only assigns to 'variables' in 'inv-constraint'. --- src/SyGuS.ml | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/SyGuS.ml b/src/SyGuS.ml index 35a8d03..fd4bfc1 100644 --- a/src/SyGuS.ml +++ b/src/SyGuS.ml @@ -114,18 +114,13 @@ let parse_sexps (sexps : Sexp.t list) : t = -> (* FIXME: Custom grammar *) Log.error (lazy ("LoopInvGen currently does not allow custom grammars.")) ; invf_name := _invf_name ; invf_vars := List.map ~f:parse_variable_declaration _invf_vars | List ( (Atom "declare-var") :: sexps ) - -> let new_var = parse_variable_declaration (List sexps) - in if List.mem !variables new_var ~equal:(fun x y -> String.equal (fst x) (fst y)) - then raise (Parse_Exn ("Multiple declarations of variable " ^ (fst new_var))) - else variables := new_var :: !variables + -> raise (Parse_Exn ("LoopInvGen currently does not allow 'declare-var'.")) | List ( (Atom "define-fun") :: func_sexps ) -> let (func, fconsts) = parse_define_fun func_sexps in if List.mem !funcs func ~equal:(fun x y -> String.equal x.name y.name) (* FIXME: SyGuS format allows overloaded functions with different signatures *) then raise (Parse_Exn ("Multiple definitions of function " ^ func.name)) - else funcs := func :: !funcs ; consts := fconsts @ !consts ; - (if String.equal func.name "trans_fun" - then variables := func.args) + else funcs := func :: !funcs ; consts := fconsts @ !consts | List [ (Atom "inv-constraint") ; (Atom _invf_name) ; (Atom _pref_name) ; (Atom _transf_name) ; (Atom _postf_name) ] -> pref_name := _pref_name ; transf_name := _transf_name ; postf_name := _postf_name @@ -139,7 +134,7 @@ let parse_sexps (sexps : Sexp.t list) : t = | [[pref];[transf];[postf]] -> variables := transf.args ; if not ((check_arg_order !variables pref) && (check_arg_order !variables postf)) then raise (Parse_Exn ("Argument order not consistent between pre, trans, and post functions")) - | _ -> raise (Parse_Exn ("Multiple definitions of function.")) (* Should be impossible to get here. *)) + | _ -> raise (Parse_Exn ("Multiple definitions of a pre, trans, or post function.")) (* Should be impossible to get here. *)) | sexp -> raise (Parse_Exn ("Unknown command: " ^ (Sexp.to_string_hum sexp)))) ; consts := List.dedup_and_sort ~compare:Poly.compare !consts ; Log.debug (lazy ("Detected Constants: " ^ (List.to_string_map ~sep:", " ~f:Value.to_string !consts))) From 2045c6cd16b9f0f51bb769fe37178fb91ec18755 Mon Sep 17 00:00:00 2001 From: Adam Stein Date: Sat, 2 Nov 2019 12:35:36 -0700 Subject: [PATCH 5/9] Adds check for pre function name in . --- src/SyGuS.ml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/SyGuS.ml b/src/SyGuS.ml index fd4bfc1..52f31fc 100644 --- a/src/SyGuS.ml +++ b/src/SyGuS.ml @@ -126,10 +126,12 @@ let parse_sexps (sexps : Sexp.t list) : t = -> pref_name := _pref_name ; transf_name := _transf_name ; postf_name := _postf_name ; (if not (String.equal !invf_name _invf_name) then raise (Parse_Exn ("Invariant function [" ^ _invf_name ^ "] not declared"))) - ; (if not (String.equal !postf_name _postf_name) - then raise (Parse_Exn ("Post function [" ^ _postf_name ^ "] not declared"))) + ; (if not (String.equal !pref_name _pref_name) + then raise (Parse_Exn ("Precondition function [" ^ _pref_name ^ "] not declared"))) ; (if not (String.equal !transf_name _transf_name) then raise (Parse_Exn ("Transition function [" ^ _transf_name ^ "] not declared"))) + ; (if not (String.equal !postf_name _postf_name) + then raise (Parse_Exn ("Postcondition function [" ^ _postf_name ^ "] not declared"))) ; (match List.map ~f:(fun name -> func_from_funcs !funcs name) [_pref_name; _transf_name; _postf_name] with | [[pref];[transf];[postf]] -> variables := transf.args ; if not ((check_arg_order !variables pref) && (check_arg_order !variables postf)) From 5b6a42de0931cf47d2037d45915007c746731d29 Mon Sep 17 00:00:00 2001 From: Adam Stein Date: Sun, 3 Nov 2019 21:18:43 -0800 Subject: [PATCH 6/9] Fixes incorrect checks for function name and argument order. --- src/SyGuS.ml | 31 ++++++++++++------------------- 1 file changed, 12 insertions(+), 19 deletions(-) diff --git a/src/SyGuS.ml b/src/SyGuS.ml index 52f31fc..5890d84 100644 --- a/src/SyGuS.ml +++ b/src/SyGuS.ml @@ -53,7 +53,6 @@ let rec remove_lets : Sexp.t -> Sexp.t = function let rec extract_consts : Sexp.t -> Value.t list = function | List [] -> [] | (Atom a) | List [Atom a] -> (try [ Value.of_string a ] with _ -> []) - | List [(Atom op); (Atom a)] | List [List [(Atom op); (Atom a)]] -> (try [ Value.of_string (op^a) ] with _ -> []) | List(_ :: fargs) -> let consts = List.fold fargs ~init:[] ~f:(fun consts farg -> (extract_consts farg) @ consts) in List.(dedup_and_sort ~compare:Value.compare consts) @@ -85,13 +84,6 @@ let func_definition (f : func) : string = let var_declaration ((var_name, var_type) : var) : string = "(declare-var " ^ var_name ^ " " ^ (Type.to_string var_type) ^ ")" -let rec check_arg_order variables func = - let isequal (v1, _) (v2, _) = String.equal v1 v2 in - List.is_prefix variables ~prefix:func.args ~equal:isequal - -let func_from_funcs funcs fname= - List.filter funcs ~f:(fun func -> if String.equal fname func.name then true else false) - let parse_sexps (sexps : Sexp.t list) : t = let logic : string ref = ref "" in let consts : Value.t list ref = ref [] in @@ -126,17 +118,18 @@ let parse_sexps (sexps : Sexp.t list) : t = -> pref_name := _pref_name ; transf_name := _transf_name ; postf_name := _postf_name ; (if not (String.equal !invf_name _invf_name) then raise (Parse_Exn ("Invariant function [" ^ _invf_name ^ "] not declared"))) - ; (if not (String.equal !pref_name _pref_name) - then raise (Parse_Exn ("Precondition function [" ^ _pref_name ^ "] not declared"))) - ; (if not (String.equal !transf_name _transf_name) - then raise (Parse_Exn ("Transition function [" ^ _transf_name ^ "] not declared"))) - ; (if not (String.equal !postf_name _postf_name) - then raise (Parse_Exn ("Postcondition function [" ^ _postf_name ^ "] not declared"))) - ; (match List.map ~f:(fun name -> func_from_funcs !funcs name) [_pref_name; _transf_name; _postf_name] with - | [[pref];[transf];[postf]] -> variables := transf.args ; - if not ((check_arg_order !variables pref) && (check_arg_order !variables postf)) - then raise (Parse_Exn ("Argument order not consistent between pre, trans, and post functions")) - | _ -> raise (Parse_Exn ("Multiple definitions of a pre, trans, or post function.")) (* Should be impossible to get here. *)) + ; variables := (!invf_vars @ (List.map !invf_vars ~f:(fun (v,t) -> (v^"!",t)))) ; + let [@warning "-8"] [pref; transf; postf] = List.map [_pref_name ; _transf_name ; _postf_name] + ~f:(fun name -> List.find !funcs ~f:(fun func -> String.equal func.name name)) in + (match pref with Some pref -> if not (List.equal (fun (v1, t1) (v2, t2) -> String.equal v1 v2) pref.args !invf_vars) + then raise (Parse_Exn ("[" ^ _invf_name ^ "] and [" ^ _pref_name ^ "] have inconsistent arguments!")) + | _ -> raise (Parse_Exn ("Precondition [" ^ _pref_name ^ "] not defined!"))) + ; (match postf with Some postf -> if not (List.equal (fun (v1, t1) (v2, t2) -> String.equal v1 v2) postf.args !invf_vars) + then raise (Parse_Exn ("[" ^ _invf_name ^ "] and [" ^ _postf_name ^ "] have inconsistent arguments!")) + | _ -> raise (Parse_Exn ("Postcondition [" ^ _postf_name ^ "] not defined!"))) + ; (match transf with Some transf -> if not (List.equal (fun (v1, t1) (v2, t2) -> String.equal v1 v2) transf.args !variables) + then raise (Parse_Exn ("[" ^ _invf_name ^ "] and [" ^ _transf_name ^ "] have inconsistent arguments!")) + | _ -> raise (Parse_Exn ("Transition function [" ^ _transf_name ^ "] not defined!"))) | sexp -> raise (Parse_Exn ("Unknown command: " ^ (Sexp.to_string_hum sexp)))) ; consts := List.dedup_and_sort ~compare:Poly.compare !consts ; Log.debug (lazy ("Detected Constants: " ^ (List.to_string_map ~sep:", " ~f:Value.to_string !consts))) From f3cc3722c0b53026b2a783a1c9d8f808a1fb5bd7 Mon Sep 17 00:00:00 2001 From: Adam Stein Date: Sun, 3 Nov 2019 21:27:40 -0800 Subject: [PATCH 7/9] Remove unecessary variables. --- src/SyGuS.ml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/SyGuS.ml b/src/SyGuS.ml index 5890d84..26a3c03 100644 --- a/src/SyGuS.ml +++ b/src/SyGuS.ml @@ -121,13 +121,13 @@ let parse_sexps (sexps : Sexp.t list) : t = ; variables := (!invf_vars @ (List.map !invf_vars ~f:(fun (v,t) -> (v^"!",t)))) ; let [@warning "-8"] [pref; transf; postf] = List.map [_pref_name ; _transf_name ; _postf_name] ~f:(fun name -> List.find !funcs ~f:(fun func -> String.equal func.name name)) in - (match pref with Some pref -> if not (List.equal (fun (v1, t1) (v2, t2) -> String.equal v1 v2) pref.args !invf_vars) + (match pref with Some pref -> if not (List.equal (fun (v1, _) (v2, _) -> String.equal v1 v2) pref.args !invf_vars) then raise (Parse_Exn ("[" ^ _invf_name ^ "] and [" ^ _pref_name ^ "] have inconsistent arguments!")) | _ -> raise (Parse_Exn ("Precondition [" ^ _pref_name ^ "] not defined!"))) - ; (match postf with Some postf -> if not (List.equal (fun (v1, t1) (v2, t2) -> String.equal v1 v2) postf.args !invf_vars) + ; (match postf with Some postf -> if not (List.equal (fun (v1, _) (v2, _) -> String.equal v1 v2) postf.args !invf_vars) then raise (Parse_Exn ("[" ^ _invf_name ^ "] and [" ^ _postf_name ^ "] have inconsistent arguments!")) | _ -> raise (Parse_Exn ("Postcondition [" ^ _postf_name ^ "] not defined!"))) - ; (match transf with Some transf -> if not (List.equal (fun (v1, t1) (v2, t2) -> String.equal v1 v2) transf.args !variables) + ; (match transf with Some transf -> if not (List.equal (fun (v1, _) (v2, _) -> String.equal v1 v2) transf.args !variables) then raise (Parse_Exn ("[" ^ _invf_name ^ "] and [" ^ _transf_name ^ "] have inconsistent arguments!")) | _ -> raise (Parse_Exn ("Transition function [" ^ _transf_name ^ "] not defined!"))) | sexp -> raise (Parse_Exn ("Unknown command: " ^ (Sexp.to_string_hum sexp)))) From 4df66f9823a37f61b160f4a5a3bf73f097c53519 Mon Sep 17 00:00:00 2001 From: Saswat Padhi Date: Tue, 14 Jan 2020 01:40:43 -0800 Subject: [PATCH 8/9] Handle `declare-var` --- src/Simulator.ml | 1 - src/SyGuS.ml | 38 +++++++++++++++++++++----------------- 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/src/Simulator.ml b/src/Simulator.ml index f8fe799..eafe2f3 100644 --- a/src/Simulator.ml +++ b/src/Simulator.ml @@ -6,7 +6,6 @@ open Utils let setup ?(user_features = []) (s : SyGuS.t) (z3 : ZProc.t) : unit = ignore (ZProc.run_queries z3 [] ~scoped:false ~db:(( ("(set-logic " ^ s.logic ^ ")") - :: ("(define-fun-rec pow ((x Int) (y Int)) Int (ite (= y 0) 1 (* x (pow x (- y 1)))))") :: (List.map ~f:var_declaration s.variables)) @ (List.map ~f:func_definition s.functions) @ user_features)) diff --git a/src/SyGuS.ml b/src/SyGuS.ml index faf0206..ba4e723 100644 --- a/src/SyGuS.ml +++ b/src/SyGuS.ml @@ -73,6 +73,7 @@ let parse_sexps (sexps : Sexp.t list) : t = let pref_name : string ref = ref "" in let transf_name : string ref = ref "" in let variables : var list ref = ref [] in + let extra_variables : var list ref = ref [] in let invf_vars : var list ref = ref [] in List.iter sexps ~f:(function @@ -86,7 +87,7 @@ let parse_sexps (sexps : Sexp.t list) : t = -> (* FIXME: Custom grammar *) Log.error (lazy ("LoopInvGen currently does not allow custom grammars.")) ; invf_name := _invf_name ; invf_vars := List.map ~f:parse_variable_declaration _invf_vars | List ( (Atom "declare-var") :: sexps ) - -> raise (Parse_Exn ("LoopInvGen currently does not allow 'declare-var'.")) + -> extra_variables := (parse_variable_declaration (List sexps)) :: !extra_variables | List ( (Atom "define-fun") :: func_sexps ) -> let (func, fconsts) = parse_define_fun func_sexps in if List.mem !funcs func ~equal:(fun x y -> String.equal x.name y.name) @@ -115,22 +116,25 @@ let parse_sexps (sexps : Sexp.t list) : t = ; Log.debug (lazy ("Detected Constants: " ^ (List.to_string_map ~sep:", " ~f:Value.to_string !consts))) ; if String.equal !logic "" then (logic := "LIA" ; Log.debug (lazy ("Using default logic: LIA"))) - ; { constants = !consts - ; functions = List.rev !funcs - ; logic = !logic - ; post_func = List.find_exn ~f:(fun f -> String.equal f.name !postf_name) !funcs - ; pre_func = List.find_exn ~f:(fun f -> String.equal f.name !pref_name) !funcs - ; trans_func = List.find_exn ~f:(fun f -> String.equal f.name !transf_name) !funcs - ; variables = !variables - ; synth_variables = !invf_vars - ; inv_func = - { args = !invf_vars - ; name = !invf_name - ; body = "" - ; return = Type.BOOL - ; expressible = true - } - } + ; let dups = List.filter !extra_variables ~f:(List.mem !variables ~equal:(fun x y -> String.equal (fst x) (fst y))) + in if dups <> [] then raise (Parse_Exn ( "Multiple declarations of [" + ^ (List.to_string_map dups ~sep:", " ~f:fst) + ^ "]")) + else { constants = !consts + ; functions = List.rev !funcs + ; logic = !logic + ; post_func = List.find_exn ~f:(fun f -> String.equal f.name !postf_name) !funcs + ; pre_func = List.find_exn ~f:(fun f -> String.equal f.name !pref_name) !funcs + ; trans_func = List.find_exn ~f:(fun f -> String.equal f.name !transf_name) !funcs + ; variables = !extra_variables @ !variables + ; synth_variables = !invf_vars + ; inv_func = { args = !invf_vars + ; name = !invf_name + ; body = "" + ; return = Type.BOOL + ; expressible = true + } + } let parse (chan : Stdio.In_channel.t) : t = parse_sexps (Sexplib.Sexp.input_sexps chan) From 49194bb983dcf2c8b0cc9f548a4828c191a4f928 Mon Sep 17 00:00:00 2001 From: Saswat Padhi Date: Tue, 14 Jan 2020 01:51:10 -0800 Subject: [PATCH 9/9] SyGuS 2.0 benchmarks (autogenerated) --- .../array_doub_access_init_const.sl | 15 + .../array_init_both_ends_multiple_sum.sl | 15 + .../array-cav19/array_init_nondet_vars.sl | 15 + .../array_init_pair_sum_const--simplified.sl | 15 + .../array_init_pair_symmetr--simplified.sl | 32 +- .../array-cav19/array_init_pair_symmetr2.sl | 15 + .../array-cav19}/array_init_var_plus_ind.sl | 27 +- .../array-cav19/array_init_var_plus_ind2.sl | 15 + .../array-cav19}/array_init_var_plus_ind3.sl | 27 +- .../array-cav19/array_tiling_poly6.sl | 15 + .../array-cav19}/array_tiling_tcpy.sl | 25 +- .../array_tripl_access_init_const.sl | 15 + benchmarks/ALIA/others/add-array.sl | 25 +- benchmarks/ALIA/others/array-copyall-bool.sl | 32 +- benchmarks/ALIA/others/array-copyall.sl | 31 +- benchmarks/ALIA/others/array-copyodd.sl | 29 +- benchmarks/ALIA/others/array-copysome.sl | 34 +- benchmarks/ALIA/others/inc-array.sl | 13 +- .../array_doub_access_init_const.sl | 29 - .../array_init_both_ends_multiple_sum.sl | 34 - .../2019.array-cav/array_init_nondet_vars.sl | 38 - .../array_init_pair_sum_const--simplified.sl | 33 - .../array_init_pair_symmetr2.sl | 41 - .../array_init_var_plus_ind2.sl | 34 - .../2019.array-cav/array_tiling_poly6.sl | 32 - .../array_tripl_access_init_const.sl | 29 - benchmarks/LIA/2005.ICALP_PolyRank/poly1.sl | 38 +- benchmarks/LIA/2005.ICALP_PolyRank/poly2.sl | 28 +- benchmarks/LIA/2005.ICALP_PolyRank/poly9.sl | 26 +- benchmarks/LIA/2013.OOPSLA_Hola/add.sl | 15 +- benchmarks/LIA/2013.OOPSLA_Hola/countud.sl | 15 +- benchmarks/LIA/2013.OOPSLA_Hola/hola.05.sl | 21 +- benchmarks/LIA/2013.OOPSLA_Hola/hola.07.sl | 24 +- benchmarks/LIA/2013.OOPSLA_Hola/hola.20.sl | 27 +- .../LIA/2013.OOPSLA_Hola/hola.41-fixed.sl | 21 +- benchmarks/LIA/2013.OOPSLA_Hola/hola.41.sl | 23 +- benchmarks/LIA/2013.OOPSLA_Hola/hola.44.sl | 22 +- .../LIA/2015.FMCAD_Acceleration/bk-nat.sl | 42 +- .../LIA/2015.FMCAD_Acceleration/bkley.sl | 40 +- .../LIA/2015.FMCAD_Acceleration/cars.sl | 64 +- benchmarks/LIA/2015.FMCAD_Acceleration/ex1.sl | 23 +- .../LIA/2015.FMCAD_Acceleration/fig2.sl | 23 +- benchmarks/LIA/2016.SyGuS-Comp/anfp-new.sl | 17 +- benchmarks/LIA/2016.SyGuS-Comp/anfp.sl | 17 +- benchmarks/LIA/2016.SyGuS-Comp/array-new.sl | 27 +- benchmarks/LIA/2016.SyGuS-Comp/array.sl | 27 +- benchmarks/LIA/2016.SyGuS-Comp/array_simp.sl | 28 +- benchmarks/LIA/2016.SyGuS-Comp/array_vars.sl | 31 +- benchmarks/LIA/2016.SyGuS-Comp/cegar1-new.sl | 16 +- benchmarks/LIA/2016.SyGuS-Comp/cegar1.sl | 16 +- .../LIA/2016.SyGuS-Comp/cegar1_vars-new.sl | 19 +- benchmarks/LIA/2016.SyGuS-Comp/cegar1_vars.sl | 19 +- benchmarks/LIA/2016.SyGuS-Comp/cegar2-new.sl | 20 +- benchmarks/LIA/2016.SyGuS-Comp/cegar2.sl | 20 +- .../LIA/2016.SyGuS-Comp/cegar2_vars-new.sl | 23 +- benchmarks/LIA/2016.SyGuS-Comp/cegar2_vars.sl | 23 +- benchmarks/LIA/2016.SyGuS-Comp/cggmp-new.sl | 15 +- benchmarks/LIA/2016.SyGuS-Comp/cggmp.sl | 15 +- benchmarks/LIA/2016.SyGuS-Comp/dec-new.sl | 13 +- benchmarks/LIA/2016.SyGuS-Comp/dec.sl | 13 +- .../LIA/2016.SyGuS-Comp/dec_simpl-new.sl | 14 +- benchmarks/LIA/2016.SyGuS-Comp/dec_simpl.sl | 14 +- .../LIA/2016.SyGuS-Comp/dec_vars-new.sl | 17 +- benchmarks/LIA/2016.SyGuS-Comp/dec_vars.sl | 17 +- benchmarks/LIA/2016.SyGuS-Comp/ex11-new.sl | 15 +- benchmarks/LIA/2016.SyGuS-Comp/ex11.sl | 15 +- .../LIA/2016.SyGuS-Comp/ex11_simpl-new.sl | 20 +- benchmarks/LIA/2016.SyGuS-Comp/ex11_simpl.sl | 20 +- .../LIA/2016.SyGuS-Comp/ex11_vars-new.sl | 20 +- benchmarks/LIA/2016.SyGuS-Comp/ex11_vars.sl | 20 +- benchmarks/LIA/2016.SyGuS-Comp/ex14-new.sl | 18 +- benchmarks/LIA/2016.SyGuS-Comp/ex14.sl | 18 +- benchmarks/LIA/2016.SyGuS-Comp/ex14_simp.sl | 19 +- benchmarks/LIA/2016.SyGuS-Comp/ex14_vars.sl | 22 +- benchmarks/LIA/2016.SyGuS-Comp/ex23.sl | 16 +- benchmarks/LIA/2016.SyGuS-Comp/ex7.sl | 16 +- benchmarks/LIA/2016.SyGuS-Comp/ex7_vars.sl | 19 +- benchmarks/LIA/2016.SyGuS-Comp/ex_23_vars.sl | 18 +- benchmarks/LIA/2016.SyGuS-Comp/fig1-new.sl | 14 +- benchmarks/LIA/2016.SyGuS-Comp/fig1.sl | 14 +- .../LIA/2016.SyGuS-Comp/fig1_vars-new.sl | 17 +- benchmarks/LIA/2016.SyGuS-Comp/fig1_vars.sl | 17 +- benchmarks/LIA/2016.SyGuS-Comp/fig3.sl | 22 +- benchmarks/LIA/2016.SyGuS-Comp/fig3_vars.sl | 23 +- benchmarks/LIA/2016.SyGuS-Comp/fig9.sl | 17 +- benchmarks/LIA/2016.SyGuS-Comp/fig9_vars.sl | 20 +- benchmarks/LIA/2016.SyGuS-Comp/formula22.sl | 18 +- benchmarks/LIA/2016.SyGuS-Comp/formula25.sl | 17 +- benchmarks/LIA/2016.SyGuS-Comp/formula27.sl | 18 +- benchmarks/LIA/2016.SyGuS-Comp/inc.sl | 14 +- benchmarks/LIA/2016.SyGuS-Comp/inc_simp.sl | 18 +- benchmarks/LIA/2016.SyGuS-Comp/inc_vars.sl | 21 +- benchmarks/LIA/2016.SyGuS-Comp/matrix2.sl | 17 +- .../LIA/2016.SyGuS-Comp/matrix2_simp.sl | 22 +- benchmarks/LIA/2016.SyGuS-Comp/sum1.sl | 18 +- benchmarks/LIA/2016.SyGuS-Comp/sum1_vars.sl | 21 +- benchmarks/LIA/2016.SyGuS-Comp/sum3.sl | 17 +- benchmarks/LIA/2016.SyGuS-Comp/sum3_vars.sl | 18 +- benchmarks/LIA/2016.SyGuS-Comp/sum4.sl | 17 +- benchmarks/LIA/2016.SyGuS-Comp/sum4_simp.sl | 16 +- benchmarks/LIA/2016.SyGuS-Comp/sum4_vars.sl | 19 +- benchmarks/LIA/2016.SyGuS-Comp/tacas.sl | 18 +- benchmarks/LIA/2016.SyGuS-Comp/tacas_vars.sl | 21 +- benchmarks/LIA/2016.SyGuS-Comp/treax1.sl | 17 +- benchmarks/LIA/2016.SyGuS-Comp/trex1_vars.sl | 18 +- benchmarks/LIA/2016.SyGuS-Comp/trex3.sl | 25 +- benchmarks/LIA/2016.SyGuS-Comp/trex3_vars.sl | 30 +- benchmarks/LIA/2016.SyGuS-Comp/vsend.sl | 16 +- benchmarks/LIA/2016.SyGuS-Comp/w1.sl | 16 +- benchmarks/LIA/2017.ASE_FiB/fib_01.sl | 12 +- benchmarks/LIA/2017.ASE_FiB/fib_04.sl | 14 +- benchmarks/LIA/2017.ASE_FiB/fib_05_x.sl | 16 +- benchmarks/LIA/2017.ASE_FiB/fib_07.sl | 17 +- benchmarks/LIA/2017.ASE_FiB/fib_08.sl | 16 +- benchmarks/LIA/2017.ASE_FiB/fib_09s.sl | 27 +- benchmarks/LIA/2017.ASE_FiB/fib_10.sl | 19 +- benchmarks/LIA/2017.ASE_FiB/fib_11.sl | 15 +- benchmarks/LIA/2017.ASE_FiB/fib_13.sl | 16 +- benchmarks/LIA/2017.ASE_FiB/fib_14.sl | 16 +- benchmarks/LIA/2017.ASE_FiB/fib_15.sl | 15 +- benchmarks/LIA/2017.ASE_FiB/fib_16.sl | 16 +- benchmarks/LIA/2017.ASE_FiB/fib_17n.sl | 22 +- benchmarks/LIA/2017.ASE_FiB/fib_18.sl | 18 +- benchmarks/LIA/2017.ASE_FiB/fib_19.sl | 18 +- benchmarks/LIA/2017.ASE_FiB/fib_20.sl | 23 +- benchmarks/LIA/2017.ASE_FiB/fib_21.sl | 21 +- benchmarks/LIA/2017.ASE_FiB/fib_23_x.sl | 16 +- benchmarks/LIA/2017.ASE_FiB/fib_25n.sl | 24 +- benchmarks/LIA/2017.ASE_FiB/fib_28.sl | 16 +- benchmarks/LIA/2017.ASE_FiB/fib_30_x.sl | 16 +- benchmarks/LIA/2017.ASE_FiB/fib_32.sl | 19 +- benchmarks/LIA/2017.ASE_FiB/fib_33ns.sl | 26 +- benchmarks/LIA/2017.ASE_FiB/fib_35.sl | 15 +- benchmarks/LIA/2017.ASE_FiB/fib_37.sl | 17 +- benchmarks/LIA/2017.ASE_FiB/fib_41.sl | 17 +- benchmarks/LIA/2017.ASE_FiB/fib_43.sl | 17 +- benchmarks/LIA/2017.ASE_FiB/fib_44.sl | 17 +- benchmarks/LIA/2017.ASE_FiB/minor1.sl | 14 +- benchmarks/LIA/2017.ASE_FiB/minor2.sl | 13 +- benchmarks/LIA/2017.ASE_FiB/minor3.sl | 14 +- benchmarks/LIA/2017.ASE_FiB/vardep.sl | 13 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/1.c.sl | 60 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/10.c.sl | 63 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/100.c.sl | 68 +- .../LIA/2018.NeurIPS_Code2Inv/100_conf1.sl | 83 +- .../LIA/2018.NeurIPS_Code2Inv/100_conf5.sl | 118 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/101.c.sl | 54 +- .../LIA/2018.NeurIPS_Code2Inv/101_conf1.sl | 67 +- .../LIA/2018.NeurIPS_Code2Inv/101_conf5.sl | 99 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/102.c.sl | 54 +- .../LIA/2018.NeurIPS_Code2Inv/102_conf1.sl | 67 +- .../LIA/2018.NeurIPS_Code2Inv/102_conf5.sl | 99 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/103.c.sl | 44 +- .../LIA/2018.NeurIPS_Code2Inv/103_conf1.sl | 59 +- .../LIA/2018.NeurIPS_Code2Inv/103_conf5.sl | 91 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/106.c.sl | 91 +- .../LIA/2018.NeurIPS_Code2Inv/106_conf1.sl | 112 +- .../LIA/2018.NeurIPS_Code2Inv/106_conf5.sl | 155 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/107.c.sl | 89 +- .../LIA/2018.NeurIPS_Code2Inv/107_conf1.sl | 110 +- .../LIA/2018.NeurIPS_Code2Inv/107_conf5.sl | 153 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/108.c.sl | 101 +- .../LIA/2018.NeurIPS_Code2Inv/108_conf1.sl | 122 +- .../LIA/2018.NeurIPS_Code2Inv/108_conf5.sl | 165 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/109.c.sl | 99 +- .../LIA/2018.NeurIPS_Code2Inv/109_conf1.sl | 120 +- .../LIA/2018.NeurIPS_Code2Inv/109_conf5.sl | 163 +- .../LIA/2018.NeurIPS_Code2Inv/10_conf1.sl | 78 +- .../LIA/2018.NeurIPS_Code2Inv/10_conf5.sl | 113 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/11.c.sl | 63 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/110.c.sl | 68 +- .../LIA/2018.NeurIPS_Code2Inv/110_conf1.sl | 83 +- .../LIA/2018.NeurIPS_Code2Inv/110_conf5.sl | 118 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/111.c.sl | 68 +- .../LIA/2018.NeurIPS_Code2Inv/111_conf1.sl | 83 +- .../LIA/2018.NeurIPS_Code2Inv/111_conf5.sl | 118 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/114.c.sl | 63 +- .../LIA/2018.NeurIPS_Code2Inv/114_conf1.sl | 78 +- .../LIA/2018.NeurIPS_Code2Inv/114_conf5.sl | 113 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/115.c.sl | 63 +- .../LIA/2018.NeurIPS_Code2Inv/115_conf1.sl | 78 +- .../LIA/2018.NeurIPS_Code2Inv/115_conf5.sl | 113 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/118.c.sl | 68 +- .../LIA/2018.NeurIPS_Code2Inv/118_conf1.sl | 83 +- .../LIA/2018.NeurIPS_Code2Inv/118_conf5.sl | 118 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/119.c.sl | 68 +- .../LIA/2018.NeurIPS_Code2Inv/119_conf1.sl | 83 +- .../LIA/2018.NeurIPS_Code2Inv/119_conf5.sl | 118 +- .../LIA/2018.NeurIPS_Code2Inv/11_conf1.sl | 78 +- .../LIA/2018.NeurIPS_Code2Inv/11_conf5.sl | 113 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/12.c.sl | 63 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/120.c.sl | 61 +- .../LIA/2018.NeurIPS_Code2Inv/120_conf1.sl | 76 +- .../LIA/2018.NeurIPS_Code2Inv/120_conf5.sl | 111 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/121.c.sl | 61 +- .../LIA/2018.NeurIPS_Code2Inv/121_conf1.sl | 76 +- .../LIA/2018.NeurIPS_Code2Inv/121_conf5.sl | 111 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/124.c.sl | 75 +- .../LIA/2018.NeurIPS_Code2Inv/124_conf1.sl | 90 +- .../LIA/2018.NeurIPS_Code2Inv/124_conf5.sl | 125 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/125.c.sl | 75 +- .../LIA/2018.NeurIPS_Code2Inv/125_conf1.sl | 90 +- .../LIA/2018.NeurIPS_Code2Inv/125_conf5.sl | 125 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/128.c.sl | 53 +- .../LIA/2018.NeurIPS_Code2Inv/128_conf1.sl | 66 +- .../LIA/2018.NeurIPS_Code2Inv/128_conf5.sl | 98 +- .../LIA/2018.NeurIPS_Code2Inv/12_conf1.sl | 78 +- .../LIA/2018.NeurIPS_Code2Inv/12_conf5.sl | 113 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/13.c.sl | 63 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/130.c.sl | 138 +- .../LIA/2018.NeurIPS_Code2Inv/130_conf1.sl | 167 +- .../LIA/2018.NeurIPS_Code2Inv/130_conf5.sl | 249 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/131.c.sl | 138 +- .../LIA/2018.NeurIPS_Code2Inv/131_conf1.sl | 167 +- .../LIA/2018.NeurIPS_Code2Inv/131_conf5.sl | 249 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/132.c.sl | 114 +- .../LIA/2018.NeurIPS_Code2Inv/132_conf1.sl | 140 +- .../LIA/2018.NeurIPS_Code2Inv/132_conf5.sl | 202 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/133.c.sl | 55 +- .../LIA/2018.NeurIPS_Code2Inv/133_conf1.sl | 68 +- .../LIA/2018.NeurIPS_Code2Inv/133_conf5.sl | 100 +- .../LIA/2018.NeurIPS_Code2Inv/13_conf1.sl | 78 +- .../LIA/2018.NeurIPS_Code2Inv/13_conf5.sl | 110 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/15.c.sl | 83 +- .../LIA/2018.NeurIPS_Code2Inv/15_conf1.sl | 106 +- .../LIA/2018.NeurIPS_Code2Inv/15_conf5.sl | 149 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/16.c.sl | 83 +- .../LIA/2018.NeurIPS_Code2Inv/16_conf1.sl | 106 +- .../LIA/2018.NeurIPS_Code2Inv/16_conf5.sl | 149 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/17.c.sl | 83 +- .../LIA/2018.NeurIPS_Code2Inv/17_conf1.sl | 106 +- .../LIA/2018.NeurIPS_Code2Inv/17_conf5.sl | 149 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/18.c.sl | 83 +- .../LIA/2018.NeurIPS_Code2Inv/18_conf1.sl | 106 +- .../LIA/2018.NeurIPS_Code2Inv/18_conf5.sl | 149 +- .../LIA/2018.NeurIPS_Code2Inv/1_conf1.sl | 75 +- .../LIA/2018.NeurIPS_Code2Inv/1_conf5.sl | 110 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/2.c.sl | 60 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/23.c.sl | 59 +- .../LIA/2018.NeurIPS_Code2Inv/23_conf1.sl | 74 +- .../LIA/2018.NeurIPS_Code2Inv/23_conf5.sl | 109 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/24.c.sl | 59 +- .../LIA/2018.NeurIPS_Code2Inv/24_conf1.sl | 74 +- .../LIA/2018.NeurIPS_Code2Inv/24_conf5.sl | 109 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/25.c.sl | 44 +- .../LIA/2018.NeurIPS_Code2Inv/25_conf1.sl | 59 +- .../LIA/2018.NeurIPS_Code2Inv/25_conf5.sl | 91 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/26.c.sl | 54 +- .../LIA/2018.NeurIPS_Code2Inv/26_conf1.sl | 67 +- .../LIA/2018.NeurIPS_Code2Inv/26_conf5.sl | 99 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/27.c.sl | 54 +- .../LIA/2018.NeurIPS_Code2Inv/27_conf1.sl | 67 +- .../LIA/2018.NeurIPS_Code2Inv/27_conf5.sl | 99 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/28.c.sl | 54 +- .../LIA/2018.NeurIPS_Code2Inv/28_conf1.sl | 67 +- .../LIA/2018.NeurIPS_Code2Inv/28_conf5.sl | 99 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/29.c.sl | 54 +- .../LIA/2018.NeurIPS_Code2Inv/29_conf1.sl | 67 +- .../LIA/2018.NeurIPS_Code2Inv/29_conf5.sl | 99 +- .../LIA/2018.NeurIPS_Code2Inv/2_conf1.sl | 75 +- .../LIA/2018.NeurIPS_Code2Inv/2_conf5.sl | 110 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/3.c.sl | 77 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/30.c.sl | 44 +- .../LIA/2018.NeurIPS_Code2Inv/30_conf1.sl | 59 +- .../LIA/2018.NeurIPS_Code2Inv/30_conf5.sl | 91 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/35.c.sl | 73 +- .../LIA/2018.NeurIPS_Code2Inv/35_conf1.sl | 101 +- .../LIA/2018.NeurIPS_Code2Inv/35_conf5.sl | 165 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/36.c.sl | 73 +- .../LIA/2018.NeurIPS_Code2Inv/36_conf1.sl | 101 +- .../LIA/2018.NeurIPS_Code2Inv/36_conf5.sl | 165 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/37.c.sl | 74 +- .../LIA/2018.NeurIPS_Code2Inv/37_conf1.sl | 102 +- .../LIA/2018.NeurIPS_Code2Inv/37_conf5.sl | 166 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/38.c.sl | 70 +- .../LIA/2018.NeurIPS_Code2Inv/38_conf1.sl | 91 +- .../LIA/2018.NeurIPS_Code2Inv/38_conf5.sl | 137 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/39.c.sl | 70 +- .../LIA/2018.NeurIPS_Code2Inv/39_conf1.sl | 91 +- .../LIA/2018.NeurIPS_Code2Inv/39_conf5.sl | 137 +- .../LIA/2018.NeurIPS_Code2Inv/3_conf1.sl | 99 +- .../LIA/2018.NeurIPS_Code2Inv/3_conf5.sl | 142 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/4.c.sl | 77 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/40.c.sl | 89 +- .../LIA/2018.NeurIPS_Code2Inv/40_conf1.sl | 115 +- .../LIA/2018.NeurIPS_Code2Inv/40_conf5.sl | 179 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/41.c.sl | 89 +- .../LIA/2018.NeurIPS_Code2Inv/41_conf1.sl | 115 +- .../LIA/2018.NeurIPS_Code2Inv/41_conf5.sl | 179 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/42.c.sl | 90 +- .../LIA/2018.NeurIPS_Code2Inv/42_conf1.sl | 116 +- .../LIA/2018.NeurIPS_Code2Inv/42_conf5.sl | 180 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/43.c.sl | 89 +- .../LIA/2018.NeurIPS_Code2Inv/43_conf1.sl | 115 +- .../LIA/2018.NeurIPS_Code2Inv/43_conf5.sl | 179 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/44.c.sl | 89 +- .../LIA/2018.NeurIPS_Code2Inv/44_conf1.sl | 115 +- .../LIA/2018.NeurIPS_Code2Inv/44_conf5.sl | 171 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/45.c.sl | 89 +- .../LIA/2018.NeurIPS_Code2Inv/45_conf1.sl | 115 +- .../LIA/2018.NeurIPS_Code2Inv/45_conf5.sl | 179 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/46.c.sl | 89 +- .../LIA/2018.NeurIPS_Code2Inv/46_conf1.sl | 115 +- .../LIA/2018.NeurIPS_Code2Inv/46_conf5.sl | 179 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/47.c.sl | 90 +- .../LIA/2018.NeurIPS_Code2Inv/47_conf1.sl | 116 +- .../LIA/2018.NeurIPS_Code2Inv/47_conf5.sl | 180 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/48.c.sl | 89 +- .../LIA/2018.NeurIPS_Code2Inv/48_conf1.sl | 115 +- .../LIA/2018.NeurIPS_Code2Inv/48_conf5.sl | 179 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/49.c.sl | 89 +- .../LIA/2018.NeurIPS_Code2Inv/49_conf1.sl | 115 +- .../LIA/2018.NeurIPS_Code2Inv/49_conf5.sl | 171 +- .../LIA/2018.NeurIPS_Code2Inv/4_conf1.sl | 99 +- .../LIA/2018.NeurIPS_Code2Inv/4_conf5.sl | 139 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/5.c.sl | 87 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/50.c.sl | 73 +- .../LIA/2018.NeurIPS_Code2Inv/50_conf1.sl | 101 +- .../LIA/2018.NeurIPS_Code2Inv/50_conf5.sl | 165 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/51.c.sl | 73 +- .../LIA/2018.NeurIPS_Code2Inv/51_conf1.sl | 101 +- .../LIA/2018.NeurIPS_Code2Inv/51_conf5.sl | 165 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/52.c.sl | 74 +- .../LIA/2018.NeurIPS_Code2Inv/52_conf1.sl | 102 +- .../LIA/2018.NeurIPS_Code2Inv/52_conf5.sl | 166 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/56.c.sl | 89 +- .../LIA/2018.NeurIPS_Code2Inv/56_conf1.sl | 115 +- .../LIA/2018.NeurIPS_Code2Inv/56_conf5.sl | 179 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/57.c.sl | 89 +- .../LIA/2018.NeurIPS_Code2Inv/57_conf1.sl | 115 +- .../LIA/2018.NeurIPS_Code2Inv/57_conf5.sl | 171 +- .../LIA/2018.NeurIPS_Code2Inv/5_conf1.sl | 109 +- .../LIA/2018.NeurIPS_Code2Inv/5_conf5.sl | 152 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/61.c.sl | 89 +- .../LIA/2018.NeurIPS_Code2Inv/61_conf1.sl | 115 +- .../LIA/2018.NeurIPS_Code2Inv/61_conf5.sl | 179 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/62.c.sl | 89 +- .../LIA/2018.NeurIPS_Code2Inv/62_conf1.sl | 115 +- .../LIA/2018.NeurIPS_Code2Inv/62_conf5.sl | 171 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/63.c.sl | 56 +- .../LIA/2018.NeurIPS_Code2Inv/63_conf1.sl | 72 +- .../LIA/2018.NeurIPS_Code2Inv/63_conf5.sl | 107 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/64.c.sl | 56 +- .../LIA/2018.NeurIPS_Code2Inv/64_conf1.sl | 72 +- .../LIA/2018.NeurIPS_Code2Inv/64_conf5.sl | 107 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/65.c.sl | 56 +- .../LIA/2018.NeurIPS_Code2Inv/65_conf1.sl | 72 +- .../LIA/2018.NeurIPS_Code2Inv/65_conf5.sl | 107 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/66.c.sl | 56 +- .../LIA/2018.NeurIPS_Code2Inv/66_conf1.sl | 72 +- .../LIA/2018.NeurIPS_Code2Inv/66_conf5.sl | 107 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/67.c.sl | 64 +- .../LIA/2018.NeurIPS_Code2Inv/67_conf1.sl | 80 +- .../LIA/2018.NeurIPS_Code2Inv/67_conf5.sl | 115 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/68.c.sl | 64 +- .../LIA/2018.NeurIPS_Code2Inv/68_conf1.sl | 80 +- .../LIA/2018.NeurIPS_Code2Inv/68_conf5.sl | 115 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/70.c.sl | 64 +- .../LIA/2018.NeurIPS_Code2Inv/70_conf1.sl | 80 +- .../LIA/2018.NeurIPS_Code2Inv/70_conf5.sl | 115 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/71.c.sl | 89 +- .../LIA/2018.NeurIPS_Code2Inv/71_conf1.sl | 109 +- .../LIA/2018.NeurIPS_Code2Inv/71_conf5.sl | 149 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/72.c.sl | 89 +- .../LIA/2018.NeurIPS_Code2Inv/72_conf1.sl | 109 +- .../LIA/2018.NeurIPS_Code2Inv/72_conf5.sl | 149 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/73.c.sl | 90 +- .../LIA/2018.NeurIPS_Code2Inv/73_conf1.sl | 110 +- .../LIA/2018.NeurIPS_Code2Inv/73_conf5.sl | 156 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/77.c.sl | 80 +- .../LIA/2018.NeurIPS_Code2Inv/77_conf1.sl | 98 +- .../LIA/2018.NeurIPS_Code2Inv/77_conf5.sl | 138 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/78.c.sl | 80 +- .../LIA/2018.NeurIPS_Code2Inv/78_conf1.sl | 98 +- .../LIA/2018.NeurIPS_Code2Inv/78_conf5.sl | 138 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/79.c.sl | 81 +- .../LIA/2018.NeurIPS_Code2Inv/79_conf1.sl | 99 +- .../LIA/2018.NeurIPS_Code2Inv/79_conf5.sl | 139 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/83.c.sl | 57 +- .../LIA/2018.NeurIPS_Code2Inv/83_conf1.sl | 72 +- .../LIA/2018.NeurIPS_Code2Inv/83_conf5.sl | 107 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/84.c.sl | 57 +- .../LIA/2018.NeurIPS_Code2Inv/84_conf1.sl | 72 +- .../LIA/2018.NeurIPS_Code2Inv/84_conf5.sl | 107 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/85.c.sl | 57 +- .../LIA/2018.NeurIPS_Code2Inv/85_conf1.sl | 72 +- .../LIA/2018.NeurIPS_Code2Inv/85_conf5.sl | 107 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/87.c.sl | 97 +- .../LIA/2018.NeurIPS_Code2Inv/87_conf1.sl | 123 +- .../LIA/2018.NeurIPS_Code2Inv/87_conf5.sl | 181 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/88.c.sl | 97 +- .../LIA/2018.NeurIPS_Code2Inv/88_conf1.sl | 123 +- .../LIA/2018.NeurIPS_Code2Inv/88_conf5.sl | 192 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/91.c.sl | 53 +- .../LIA/2018.NeurIPS_Code2Inv/91_conf1.sl | 68 +- .../LIA/2018.NeurIPS_Code2Inv/91_conf5.sl | 100 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/93.c.sl | 109 +- .../LIA/2018.NeurIPS_Code2Inv/93_conf1.sl | 136 +- .../LIA/2018.NeurIPS_Code2Inv/93_conf5.sl | 182 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/94.c.sl | 77 +- .../LIA/2018.NeurIPS_Code2Inv/94_conf1.sl | 92 +- .../LIA/2018.NeurIPS_Code2Inv/94_conf5.sl | 124 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/95.c.sl | 77 +- .../LIA/2018.NeurIPS_Code2Inv/95_conf1.sl | 92 +- .../LIA/2018.NeurIPS_Code2Inv/95_conf5.sl | 127 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/96.c.sl | 77 +- .../LIA/2018.NeurIPS_Code2Inv/96_conf1.sl | 92 +- .../LIA/2018.NeurIPS_Code2Inv/96_conf5.sl | 127 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/97.c.sl | 77 +- .../LIA/2018.NeurIPS_Code2Inv/97_conf1.sl | 92 +- .../LIA/2018.NeurIPS_Code2Inv/97_conf5.sl | 127 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/98.c.sl | 77 +- .../LIA/2018.NeurIPS_Code2Inv/98_conf1.sl | 92 +- .../LIA/2018.NeurIPS_Code2Inv/98_conf5.sl | 127 +- benchmarks/LIA/2018.NeurIPS_Code2Inv/99.c.sl | 68 +- .../LIA/2018.NeurIPS_Code2Inv/99_conf1.sl | 83 +- .../LIA/2018.NeurIPS_Code2Inv/99_conf5.sl | 118 +- ...loop_true-unreach-call_true-termination.sl | 33 +- benchmarks/LIA/2018.SV-Comp/README.md | 3 - ...2007_true-unreach-call_true-termination.sl | 21 +- ...2005_true-unreach-call_true-termination.sl | 16 +- ...iant_true-unreach-call_true-termination.sl | 21 +- .../2018.SV-Comp/const_false-unreach-call1.sl | 17 +- .../2018.SV-Comp/const_true-unreach-call1.sl | 14 +- ...by_1_true-unreach-call_true-termination.sl | 12 +- ...iant_true-unreach-call_true-termination.sl | 12 +- ...by_2_true-unreach-call_true-termination.sl | 12 +- ...by_k_true-unreach-call_true-termination.sl | 20 +- ...ndet_true-unreach-call_true-termination.sl | 21 +- ...own_false-unreach-call_true-termination.sl | 19 +- ...2003_true-unreach-call_true-termination.sl | 19 +- ...down_true-unreach-call_true-termination.sl | 28 +- ...op1_false-unreach-call_true-termination.sl | 22 +- ...p_1_true-unreach-call_false-termination.sl | 21 +- ...2007_true-unreach-call_true-termination.sl | 16 +- ...007b_true-unreach-call_true-termination.sl | 22 +- ...2006_true-unreach-call_true-termination.sl | 18 +- ...2008_true-unreach-call_true-termination.sl | 17 +- ...2008_true-unreach-call_true-termination.sl | 24 +- ...2006_true-unreach-call_true-termination.sl | 23 +- ...iant_true-unreach-call_true-termination.sl | 25 +- ...ar_false-unreach-call1_true-termination.sl | 14 +- ...var_true-unreach-call1_true-termination.sl | 14 +- ...ngle_true-unreach-call_true-termination.sl | 25 +- .../seq_true-unreach-call_true-termination.sl | 39 +- ...le_false-unreach-call2_true-termination.sl | 12 +- ...dep_true-unreach-call1_true-termination.sl | 20 +- ...dep_true-unreach-call2_true-termination.sl | 17 +- ...g02_false-unreach-call_true-termination.sl | 22 +- .../sum01_bug02_sum01_bug02_base.sl | 17 +- ...m01_false-unreach-call_true-termination.sl | 17 +- ...m03_false-unreach-call_true-termination.sl | 20 +- ...m03_true-unreach-call_false-termination.sl | 20 +- ...m04_false-unreach-call_true-termination.sl | 14 +- ...r_02_true-unreach-call_true-termination.sl | 18 +- ...r_03_true-unreach-call_true-termination.sl | 17 +- ...ox_false-unreach-call1_true-termination.sl | 12 +- ...rox_true-unreach-call2_true-termination.sl | 14 +- .../up_true-unreach-call_true-termination.sl | 25 +- ...p_3_true-unreach-call_false-termination.sl | 10 +- ...p_4_false-unreach-call_true-termination.sl | 10 +- benchmarks/LIA/Lustre/DRAGON_1.sl | 1975 +-- benchmarks/LIA/Lustre/DRAGON_10.sl | 1983 +-- .../LIA/Lustre/DRAGON_10_e1_3587_e3_2749.sl | 1983 +-- benchmarks/LIA/Lustre/DRAGON_10_e1_998.sl | 1983 +-- .../LIA/Lustre/DRAGON_10_e2_2785_e3_1744.sl | 1983 +-- benchmarks/LIA/Lustre/DRAGON_10_e2_402.sl | 1983 +-- .../LIA/Lustre/DRAGON_10_e3_144_e5_2046.sl | 1983 +-- benchmarks/LIA/Lustre/DRAGON_10_e3_3429.sl | 1983 +-- benchmarks/LIA/Lustre/DRAGON_12.sl | 2047 +-- benchmarks/LIA/Lustre/DRAGON_12_e2_1618.sl | 2047 +-- .../LIA/Lustre/DRAGON_12_e2_1618_e1_6030.sl | 2047 +-- .../LIA/Lustre/DRAGON_12_e2_1618_e2_138.sl | 2047 +-- .../LIA/Lustre/DRAGON_12_e2_1618_e3_2012.sl | 2047 +-- benchmarks/LIA/Lustre/DRAGON_13.sl | 2047 +-- .../LIA/Lustre/DRAGON_13_e3_1418_e3_2761.sl | 2047 +-- .../Lustre/DRAGON_1_e1_14612_e1_268_e7_501.sl | 1975 +-- .../DRAGON_1_e1_14612_e2_2653_e7_4370.sl | 1975 +-- .../LIA/Lustre/DRAGON_1_e1_3184_e7_1888.sl | 1975 +-- benchmarks/LIA/Lustre/DRAGON_1_e1_5070.sl | 1975 +-- benchmarks/LIA/Lustre/DRAGON_1_e2_1997.sl | 1975 +-- .../DRAGON_1_e2_1997_e7_3613_e2_3409.sl | 1975 +-- .../DRAGON_1_e3_11891_e7_4569_e4_4881.sl | 1975 +-- benchmarks/LIA/Lustre/DRAGON_2.sl | 2039 +-- benchmarks/LIA/Lustre/DRAGON_2_e1_2316.sl | 2039 +-- .../LIA/Lustre/DRAGON_2_e2_3183_e1_2644.sl | 2039 +-- .../LIA/Lustre/DRAGON_2_e2_3183_e2_3580.sl | 2039 +-- .../LIA/Lustre/DRAGON_2_e2_3183_e3_5972.sl | 2039 +-- benchmarks/LIA/Lustre/DRAGON_2_e2_4481.sl | 2039 +-- .../LIA/Lustre/DRAGON_2_e7_25_e8_3171.sl | 2039 +-- benchmarks/LIA/Lustre/DRAGON_3.sl | 2093 +-- benchmarks/LIA/Lustre/DRAGON_3_e1_4783.sl | 2093 +-- .../LIA/Lustre/DRAGON_3_e1_4783_e1_3755.sl | 2093 +-- .../LIA/Lustre/DRAGON_3_e1_4783_e2_158.sl | 2093 +-- .../LIA/Lustre/DRAGON_3_e1_4783_e3_511.sl | 2093 +-- .../LIA/Lustre/DRAGON_3_e2_5343_e1_988.sl | 2093 +-- benchmarks/LIA/Lustre/DRAGON_3_e3_3846.sl | 2093 +-- .../LIA/Lustre/DRAGON_3_e3_5422_e1_2288.sl | 2093 +-- .../LIA/Lustre/DRAGON_3_e3_5422_e2_3135.sl | 2093 +-- benchmarks/LIA/Lustre/DRAGON_4.sl | 1983 +-- benchmarks/LIA/Lustre/DRAGON_4_e1_4312.sl | 1983 +-- benchmarks/LIA/Lustre/DRAGON_4_e2_2799.sl | 1983 +-- .../LIA/Lustre/DRAGON_4_e2_2799_e1_1303.sl | 1983 +-- .../LIA/Lustre/DRAGON_4_e2_2799_e2_2251.sl | 1983 +-- .../LIA/Lustre/DRAGON_4_e2_2799_e3_1915.sl | 1983 +-- .../LIA/Lustre/DRAGON_4_e3_1540_e1_5048.sl | 1983 +-- benchmarks/LIA/Lustre/DRAGON_4_e3_4133.sl | 1983 +-- benchmarks/LIA/Lustre/DRAGON_5.sl | 1991 +-- benchmarks/LIA/Lustre/DRAGON_5_e1_1835.sl | 1991 +-- .../LIA/Lustre/DRAGON_5_e2_3018_e2_936.sl | 1991 +-- benchmarks/LIA/Lustre/DRAGON_6.sl | 1983 +-- .../LIA/Lustre/DRAGON_6_e7_5046_e7_3623.sl | 1983 +-- benchmarks/LIA/Lustre/DRAGON_7.sl | 1991 +-- .../LIA/Lustre/DRAGON_7_e2_2872_e2_5844.sl | 1991 +-- .../LIA/Lustre/DRAGON_7_e2_2872_e3_2640.sl | 1991 +-- .../LIA/Lustre/DRAGON_7_e7_3157_e2_2082.sl | 1991 +-- benchmarks/LIA/Lustre/DRAGON_8.sl | 1983 +-- .../LIA/Lustre/DRAGON_8_e2_3896_e3_3125.sl | 1983 +-- benchmarks/LIA/Lustre/DRAGON_8_e3_786.sl | 1983 +-- .../LIA/Lustre/DRAGON_8_e3_786_e7_4541.sl | 1983 +-- benchmarks/LIA/Lustre/DRAGON_8_e7_3752.sl | 1983 +-- benchmarks/LIA/Lustre/DRAGON_9.sl | 1983 +-- benchmarks/LIA/Lustre/DRAGON_9_e7_1843.sl | 1983 +-- .../LIA/Lustre/DRAGON_9_e7_1843_e1_5434.sl | 1983 +-- .../LIA/Lustre/DRAGON_9_e7_1843_e2_1145.sl | 1983 +-- .../LIA/Lustre/DRAGON_9_e7_1843_e3_5316.sl | 1983 +-- .../LIA/Lustre/DRAGON_9_e7_1843_e7_2225.sl | 1983 +-- benchmarks/LIA/Lustre/DRAGON_all.sl | 2142 +-- benchmarks/LIA/Lustre/DRAGON_all2.sl | 2339 +-- .../LIA/Lustre/DRAGON_all2_e3_4612_e1_6463.sl | 2339 +-- .../LIA/Lustre/DRAGON_all2_e3_4612_e2_5774.sl | 2339 +-- .../LIA/Lustre/DRAGON_all2_e3_4612_e3_1543.sl | 2339 +-- .../LIA/Lustre/DRAGON_all2_e3_4612_e4_3719.sl | 2339 +-- .../LIA/Lustre/DRAGON_all2_e3_4612_e5_3642.sl | 2339 +-- .../LIA/Lustre/DRAGON_all_e1_4022_e1_1759.sl | 2142 +-- .../LIA/Lustre/DRAGON_all_e1_4022_e2_267.sl | 2142 +-- .../LIA/Lustre/DRAGON_all_e1_4022_e3_3628.sl | 2142 +-- benchmarks/LIA/Lustre/DRAGON_all_e1_4037.sl | 2142 +-- benchmarks/LIA/Lustre/DRAGON_all_e2_6104.sl | 2142 +-- .../LIA/Lustre/DRAGON_all_e2_6104_e1_6205.sl | 2142 +-- .../LIA/Lustre/DRAGON_all_e2_6104_e2_3308.sl | 2142 +-- .../LIA/Lustre/DRAGON_all_e2_6104_e3_2607.sl | 2142 +-- .../LIA/Lustre/DRAGON_all_e3_4821_e1_1318.sl | 2142 +-- .../LIA/Lustre/DRAGON_all_e3_4821_e2_1089.sl | 2142 +-- .../LIA/Lustre/DRAGON_all_e3_4821_e4_1791.sl | 2142 +-- .../LIA/Lustre/DRAGON_all_e3_4821_e5_1536.sl | 2142 +-- benchmarks/LIA/Lustre/DRAGON_all_e3_5957.sl | 2142 +-- benchmarks/LIA/Lustre/FIREFLY_1.sl | 1301 +- benchmarks/LIA/Lustre/FIREFLY_10.sl | 1275 +- .../LIA/Lustre/FIREFLY_10_e7_919_e2_3192.sl | 1275 +- benchmarks/LIA/Lustre/FIREFLY_11.sl | 1275 +- benchmarks/LIA/Lustre/FIREFLY_11_e1_3457.sl | 1275 +- .../LIA/Lustre/FIREFLY_1_e1_1092_e2_1853.sl | 1305 +- benchmarks/LIA/Lustre/FIREFLY_2.sl | 1350 +- benchmarks/LIA/Lustre/FIREFLY_3.sl | 1275 +- benchmarks/LIA/Lustre/FIREFLY_3_e2_2236.sl | 1275 +- .../LIA/Lustre/FIREFLY_3_e2_2236_e1_2305.sl | 1279 +- .../LIA/Lustre/FIREFLY_3_e2_2236_e2_1058.sl | 1279 +- .../LIA/Lustre/FIREFLY_3_e2_2236_e7_3681.sl | 1275 +- benchmarks/LIA/Lustre/FIREFLY_4.sl | 1377 +- benchmarks/LIA/Lustre/FIREFLY_4_e3_3511.sl | 1377 +- .../LIA/Lustre/FIREFLY_4_e3_3511_e2_1923.sl | 1377 +- .../LIA/Lustre/FIREFLY_4_e3_3511_e3_422.sl | 1377 +- .../LIA/Lustre/FIREFLY_4_e3_3511_e5_3248.sl | 1377 +- benchmarks/LIA/Lustre/FIREFLY_5.sl | 1275 +- .../LIA/Lustre/FIREFLY_5_e1_2552_e7_1169.sl | 1275 +- benchmarks/LIA/Lustre/FIREFLY_5_e2_2229.sl | 1275 +- benchmarks/LIA/Lustre/FIREFLY_5_e2_2884.sl | 1275 +- .../LIA/Lustre/FIREFLY_5_e2_2884_e1_2678.sl | 1279 +- .../LIA/Lustre/FIREFLY_5_e2_2884_e2_1492.sl | 1279 +- .../LIA/Lustre/FIREFLY_5_e2_2884_e3_1882.sl | 1275 +- .../LIA/Lustre/FIREFLY_5_e2_2884_e7_3594.sl | 1275 +- benchmarks/LIA/Lustre/FIREFLY_6.sl | 1275 +- benchmarks/LIA/Lustre/FIREFLY_6_e2_3302.sl | 1275 +- benchmarks/LIA/Lustre/FIREFLY_7.sl | 1347 +- benchmarks/LIA/Lustre/FIREFLY_8.sl | 1275 +- benchmarks/LIA/Lustre/FIREFLY_8_e2_1711.sl | 1275 +- .../LIA/Lustre/FIREFLY_8_e2_1711_e1_1489.sl | 1279 +- .../LIA/Lustre/FIREFLY_8_e2_1711_e2_2673.sl | 1279 +- .../LIA/Lustre/FIREFLY_8_e2_1711_e3_1753.sl | 1275 +- benchmarks/LIA/Lustre/FIREFLY_9.sl | 1347 +- .../LIA/Lustre/FIREFLY_9_e7_170_e3_3647.sl | 1347 +- benchmarks/LIA/Lustre/FIREFLY_a3.sl | 1396 +- .../LIA/Lustre/FIREFLY_a3_e1_3233_e2_2392.sl | 1400 +- .../LIA/Lustre/FIREFLY_a3_e1_3233_e3_2970.sl | 1396 +- .../LIA/Lustre/FIREFLY_a3_e2_2086_e1_3235.sl | 1400 +- .../LIA/Lustre/FIREFLY_a3_e2_2086_e2_2689.sl | 1400 +- .../LIA/Lustre/FIREFLY_a3_e2_2086_e3_2542.sl | 1396 +- benchmarks/LIA/Lustre/FIREFLY_a3_e2_2952.sl | 1396 +- .../LIA/Lustre/FIREFLY_a3_e3_314_e2_2812.sl | 1396 +- benchmarks/LIA/Lustre/FIREFLY_all.sl | 1434 +- .../LIA/Lustre/FIREFLY_all_e1_1207_e2_3220.sl | 1438 +- .../LIA/Lustre/FIREFLY_all_e2_2924_e1_768.sl | 1438 +- benchmarks/LIA/Lustre/FIREFLY_luke_1a.sl | 1259 +- .../Lustre/FIREFLY_luke_1a_e2_284_e1_2924.sl | 1263 +- .../Lustre/FIREFLY_luke_1a_e2_284_e2_2755.sl | 1263 +- .../Lustre/FIREFLY_luke_1a_e2_284_e3_3091.sl | 1259 +- .../Lustre/FIREFLY_luke_1a_e7_3042_e3_1213.sl | 1259 +- benchmarks/LIA/Lustre/FIREFLY_luke_1b.sl | 1301 +- .../Lustre/FIREFLY_luke_1b_e1_1139_e2_2893.sl | 1305 +- .../Lustre/FIREFLY_luke_1b_e2_3049_e1_946.sl | 1305 +- .../Lustre/FIREFLY_luke_1b_e3_671_e6_1974.sl | 1301 +- .../Lustre/FIREFLY_luke_1b_e7_3191_e8_2830.sl | 1301 +- benchmarks/LIA/Lustre/FIREFLY_luke_2.sl | 1259 +- .../Lustre/FIREFLY_luke_2_e2_1375_e1_418.sl | 1263 +- .../Lustre/FIREFLY_luke_2_e7_1826_e8_126.sl | 1259 +- benchmarks/LIA/Lustre/FIREFLY_luke_3.sl | 1267 +- .../Lustre/FIREFLY_luke_3_e1_2217_e3_1200.sl | 1267 +- benchmarks/LIA/Lustre/FIREFLY_luke_4.sl | 1259 +- .../LIA/Lustre/FIREFLY_luke_4_e2_325.sl | 1259 +- benchmarks/LIA/Lustre/FIREFLY_luke_5.sl | 1377 +- benchmarks/LIA/Lustre/FIREFLY_luke_rt.sl | 1350 +- .../Lustre/FIREFLY_luke_rt_e1_913_e2_3353.sl | 1354 +- .../Lustre/FIREFLY_luke_rt_e2_3460_e1_1455.sl | 1354 +- benchmarks/LIA/Lustre/FIREFLY_rt.sl | 1294 +- .../LIA/Lustre/FIREFLY_rt_e3_1770_e2_637.sl | 1294 +- benchmarks/LIA/Lustre/FIREFLY_u1.sl | 1302 +- .../LIA/Lustre/FIREFLY_u1_e2_3403_e2_957.sl | 1306 +- benchmarks/LIA/Lustre/ILLINOIS_1.sl | 1276 +- benchmarks/LIA/Lustre/ILLINOIS_2.sl | 1318 +- .../LIA/Lustre/ILLINOIS_2_e1_834_e2_3395.sl | 1322 +- .../LIA/Lustre/ILLINOIS_2_e2_2367_e1_3182.sl | 1322 +- benchmarks/LIA/Lustre/ILLINOIS_3.sl | 1387 +- benchmarks/LIA/Lustre/ILLINOIS_4.sl | 1293 +- .../LIA/Lustre/ILLINOIS_4_e7_2651_e7_2847.sl | 1293 +- benchmarks/LIA/Lustre/ILLINOIS_5.sl | 1293 +- .../LIA/Lustre/ILLINOIS_5_e7_692_e7_2865.sl | 1293 +- benchmarks/LIA/Lustre/ILLINOIS_a1.sl | 1311 +- benchmarks/LIA/Lustre/ILLINOIS_all.sl | 1428 +- benchmarks/LIA/Lustre/ILLINOIS_r4a.sl | 1284 +- benchmarks/LIA/Lustre/MESI_1.sl | 643 +- .../LIA/Lustre/MESI_1_e2_162_e7_1545.sl | 643 +- benchmarks/LIA/Lustre/MESI_2.sl | 626 +- benchmarks/LIA/Lustre/MESI_3.sl | 889 +- .../LIA/Lustre/MESI_3_e1_2517_e8_2163.sl | 893 +- .../LIA/Lustre/MESI_3_e2_819_e1_1145.sl | 889 +- .../LIA/Lustre/MESI_3_e2_819_e4_1595.sl | 891 +- .../LIA/Lustre/MESI_3_e2_819_e6_1459.sl | 889 +- benchmarks/LIA/Lustre/MESI_3_e3_2669.sl | 889 +- benchmarks/LIA/Lustre/MESI_4.sl | 651 +- .../LIA/Lustre/MESI_4_e7_1140_e7_433.sl | 651 +- benchmarks/LIA/Lustre/MESI_all.sl | 678 +- .../LIA/Lustre/MESI_all_e4_1147_e7_497.sl | 680 +- .../LIA/Lustre/MESI_i3_e1_447_e1_1292.sl | 626 +- .../LIA/Lustre/MESI_i3_e1_447_e3_1180.sl | 626 +- .../LIA/Lustre/MESI_i3_e1_447_e6_2281.sl | 626 +- benchmarks/LIA/Lustre/MESI_i4_e6_2175.sl | 626 +- .../LIA/Lustre/MESI_i4_e7_1017_e6_1132.sl | 626 +- benchmarks/LIA/Lustre/MOESI_1.sl | 716 +- .../LIA/Lustre/MOESI_1_e2_982_e7_492.sl | 716 +- .../LIA/Lustre/MOESI_1_e3_1884_e7_1875.sl | 716 +- benchmarks/LIA/Lustre/MOESI_2.sl | 761 +- benchmarks/LIA/Lustre/MOESI_2_e1_1753.sl | 761 +- benchmarks/LIA/Lustre/MOESI_2_e2_155.sl | 761 +- benchmarks/LIA/Lustre/MOESI_2_e2_1599.sl | 761 +- .../LIA/Lustre/MOESI_2_e2_1599_e8_1334.sl | 765 +- benchmarks/LIA/Lustre/MOESI_2_e3_1523.sl | 761 +- benchmarks/LIA/Lustre/MOESI_2_e3_929.sl | 761 +- .../LIA/Lustre/MOESI_2_e3_929_e4_578.sl | 761 +- .../LIA/Lustre/MOESI_2_e3_929_e5_1826.sl | 761 +- .../LIA/Lustre/MOESI_2_e3_929_e6_2707.sl | 761 +- .../LIA/Lustre/MOESI_2_e3_929_e8_1167.sl | 765 +- .../LIA/Lustre/MOESI_2_e7_2910_e8_2590.sl | 761 +- benchmarks/LIA/Lustre/MOESI_2_e8_101.sl | 765 +- benchmarks/LIA/Lustre/MOESI_2_e8_926.sl | 765 +- .../LIA/Lustre/MOESI_2_e8_926_e1_1065.sl | 765 +- .../LIA/Lustre/MOESI_2_e8_926_e2_349.sl | 765 +- .../LIA/Lustre/MOESI_2_e8_926_e3_1758.sl | 765 +- .../LIA/Lustre/MOESI_2_e8_926_e8_2138.sl | 769 +- benchmarks/LIA/Lustre/MOESI_all.sl | 773 +- benchmarks/LIA/Lustre/PRODUCER_CONSUMER_1.sl | 583 +- benchmarks/LIA/Lustre/PRODUCER_CONSUMER_2.sl | 544 +- benchmarks/LIA/Lustre/PRODUCER_CONSUMER_3.sl | 767 +- .../LIA/Lustre/PRODUCER_CONSUMER_all.sl | 784 +- benchmarks/LIA/Lustre/SYNAPSE_1.sl | 573 +- benchmarks/LIA/Lustre/SYNAPSE_123.sl | 696 +- .../LIA/Lustre/SYNAPSE_123_e7_837_e7_1262.sl | 696 +- benchmarks/LIA/Lustre/SYNAPSE_123_e7_856.sl | 696 +- benchmarks/LIA/Lustre/SYNAPSE_123_e8_953.sl | 696 +- .../LIA/Lustre/SYNAPSE_123_e8_953_e7_1465.sl | 696 +- .../LIA/Lustre/SYNAPSE_123_e8_953_e8_941.sl | 700 +- benchmarks/LIA/Lustre/SYNAPSE_2.sl | 609 +- .../LIA/Lustre/SYNAPSE_2_e8_1118_e7_1043.sl | 609 +- .../LIA/Lustre/SYNAPSE_2_e8_1118_e8_1177.sl | 613 +- benchmarks/LIA/Lustre/SYNAPSE_2_e8_656.sl | 609 +- benchmarks/LIA/Lustre/SYNAPSE_3.sl | 659 +- .../LIA/Lustre/SYNAPSE_3_e7_1444_e7_638.sl | 659 +- benchmarks/LIA/Lustre/SYNAPSE_3_e7_425.sl | 659 +- .../LIA/Lustre/SYNAPSE_3_e8_1329_e7_1062.sl | 659 +- .../LIA/Lustre/SYNAPSE_3_e8_1329_e8_320.sl | 663 +- benchmarks/LIA/Lustre/SYNAPSE_3_e8_1708.sl | 659 +- benchmarks/LIA/Lustre/SYNAPSE_4.sl | 581 +- .../LIA/Lustre/SYNAPSE_4_e8_420_e7_572.sl | 581 +- .../LIA/Lustre/SYNAPSE_4_e8_420_e8_1525.sl | 585 +- benchmarks/LIA/Lustre/SYNAPSE_4_e8_974.sl | 581 +- benchmarks/LIA/Lustre/SYNAPSE_5.sl | 640 +- benchmarks/LIA/Lustre/SYNAPSE_5_e2_1525.sl | 640 +- benchmarks/LIA/Lustre/SYNAPSE_6.sl | 640 +- .../LIA/Lustre/SYNAPSE_6_e2_1439_e1_954.sl | 640 +- .../LIA/Lustre/SYNAPSE_6_e3_1666_e5_1558.sl | 640 +- .../LIA/Lustre/SYNAPSE_6_e7_938_e2_1012.sl | 640 +- .../LIA/Lustre/SYNAPSE_6_e8_1147_e2_1326.sl | 640 +- benchmarks/LIA/Lustre/SYNAPSE_all.sl | 700 +- benchmarks/LIA/Lustre/SYNAPSE_all_e7_907.sl | 700 +- .../LIA/Lustre/SYNAPSE_all_e7_907_e7_1363.sl | 700 +- benchmarks/LIA/Lustre/SYNAPSE_all_e8_251.sl | 700 +- benchmarks/LIA/Lustre/car_1.sl | 573 +- benchmarks/LIA/Lustre/car_1_e7_184_e3_299.sl | 573 +- benchmarks/LIA/Lustre/car_2.sl | 553 +- .../LIA/Lustre/car_2_e7_1027_e1_1047.sl | 553 +- benchmarks/LIA/Lustre/car_2_e7_1027_e7_359.sl | 553 +- benchmarks/LIA/Lustre/car_2_e8_491_e7_826.sl | 553 +- benchmarks/LIA/Lustre/car_3.sl | 553 +- benchmarks/LIA/Lustre/car_3_e2_695.sl | 553 +- benchmarks/LIA/Lustre/car_3_e2_777.sl | 553 +- benchmarks/LIA/Lustre/car_3_e7_626.sl | 553 +- benchmarks/LIA/Lustre/car_3_e8_33.sl | 553 +- benchmarks/LIA/Lustre/car_3_e8_33_e2_1010.sl | 553 +- benchmarks/LIA/Lustre/car_3_e8_33_e7_220.sl | 553 +- benchmarks/LIA/Lustre/car_4.sl | 553 +- benchmarks/LIA/Lustre/car_4_e3_57_e4_1047.sl | 553 +- benchmarks/LIA/Lustre/car_4_e3_57_e6_784.sl | 553 +- benchmarks/LIA/Lustre/car_4_e7_592.sl | 553 +- benchmarks/LIA/Lustre/car_4_e7_592_e7_265.sl | 553 +- benchmarks/LIA/Lustre/car_4_e8_118.sl | 553 +- benchmarks/LIA/Lustre/car_4_e8_118_e7_178.sl | 553 +- benchmarks/LIA/Lustre/car_5.sl | 572 +- benchmarks/LIA/Lustre/car_5_e7_244.sl | 572 +- benchmarks/LIA/Lustre/car_5_e7_244_e1_823.sl | 572 +- benchmarks/LIA/Lustre/car_6.sl | 560 +- benchmarks/LIA/Lustre/car_6_e1_152.sl | 560 +- benchmarks/LIA/Lustre/car_6_e1_152_e1_391.sl | 563 +- benchmarks/LIA/Lustre/car_all.sl | 589 +- benchmarks/LIA/Lustre/car_all_e2_142.sl | 589 +- .../LIA/Lustre/car_all_e2_142_e7_209.sl | 589 +- .../LIA/Lustre/car_all_e3_1068_e4_275.sl | 589 +- .../LIA/Lustre/car_all_e7_188_e7_743.sl | 589 +- benchmarks/LIA/Lustre/car_all_e8_856.sl | 589 +- .../LIA/Lustre/car_all_e8_856_e2_585.sl | 589 +- .../LIA/Lustre/car_all_e8_856_e7_578.sl | 589 +- benchmarks/LIA/Lustre/ccp16.sl | 21 +- benchmarks/LIA/Lustre/cd.sl | 533 +- benchmarks/LIA/Lustre/durationThm_1_e2_3.sl | 377 +- benchmarks/LIA/Lustre/durationThm_1_e3_389.sl | 377 +- .../LIA/Lustre/durationThm_1_e3_389_e4_294.sl | 377 +- .../LIA/Lustre/durationThm_1_e3_389_e5_5.sl | 377 +- .../LIA/Lustre/durationThm_1_e7_217_e2_352.sl | 377 +- .../LIA/Lustre/durationThm_1_e7_217_e3_132.sl | 377 +- benchmarks/LIA/Lustre/durationThm_2.sl | 419 +- benchmarks/LIA/Lustre/durationThm_2_e1_301.sl | 419 +- benchmarks/LIA/Lustre/durationThm_2_e2_63.sl | 419 +- .../LIA/Lustre/durationThm_2_e3_329_e4_1.sl | 419 +- .../LIA/Lustre/durationThm_2_e3_329_e5_124.sl | 419 +- benchmarks/LIA/Lustre/durationThm_2_e3_99.sl | 419 +- .../durationThm_2_e7_145_e2_169-flat.sl | 49 +- .../LIA/Lustre/durationThm_2_e7_145_e2_169.sl | 419 +- .../LIA/Lustre/durationThm_2_e7_145_e3_222.sl | 419 +- .../LIA/Lustre/durationThm_2_e7_145_e8_73.sl | 419 +- benchmarks/LIA/Lustre/durationThm_3_e2_148.sl | 364 +- benchmarks/LIA/Lustre/durationThm_3_e2_63.sl | 364 +- benchmarks/LIA/Lustre/durationThm_3_e3_207.sl | 364 +- benchmarks/LIA/Lustre/durationThm_3_e3_442.sl | 364 +- .../LIA/Lustre/durationThm_3_e3_442_e4_165.sl | 364 +- .../LIA/Lustre/durationThm_3_e3_442_e5_260.sl | 364 +- .../LIA/Lustre/durationThm_3_e7_334_e2_62.sl | 364 +- .../LIA/Lustre/durationThm_3_e7_334_e3_42.sl | 364 +- benchmarks/LIA/Lustre/ex3.sl | 436 +- benchmarks/LIA/Lustre/ex3_e7_590_e7_590.sl | 436 +- benchmarks/LIA/Lustre/ex3_e7_655.sl | 436 +- benchmarks/LIA/Lustre/ex3_e8_381.sl | 436 +- benchmarks/LIA/Lustre/ex3_e8_381_e7_224.sl | 436 +- benchmarks/LIA/Lustre/ex3_e8_381_e8_477.sl | 436 +- benchmarks/LIA/Lustre/fast_1.sl | 1758 +- .../LIA/Lustre/fast_1_e8_747_e8_1041.sl | 1758 +- benchmarks/LIA/Lustre/fast_1_e8_751.sl | 1758 +- benchmarks/LIA/Lustre/fast_2.sl | 2117 +-- .../LIA/Lustre/fast_2_e8_460_e8_1920.sl | 2117 +-- benchmarks/LIA/Lustre/fast_2_e8_976.sl | 2117 +-- benchmarks/LIA/Lustre/hysteresis_1.sl | 435 +- benchmarks/LIA/Lustre/hysteresis_2.sl | 442 +- benchmarks/LIA/Lustre/hysteresis_3.sl | 442 +- benchmarks/LIA/Lustre/hysteresis_all.sl | 457 +- benchmarks/LIA/Lustre/metros_1.sl | 1020 +- .../LIA/Lustre/metros_1_e1_846_e1_1317.sl | 1020 +- .../LIA/Lustre/metros_1_e1_846_e2_1394.sl | 1020 +- .../LIA/Lustre/metros_1_e1_846_e3_1060.sl | 1020 +- .../LIA/Lustre/metros_1_e1_846_e7_397.sl | 1020 +- .../LIA/Lustre/metros_1_e2_1102_e1_317.sl | 1020 +- .../LIA/Lustre/metros_1_e2_1102_e2_943.sl | 1020 +- .../LIA/Lustre/metros_1_e2_1102_e3_961.sl | 1020 +- .../LIA/Lustre/metros_1_e2_1102_e7_1163.sl | 1020 +- benchmarks/LIA/Lustre/metros_1_e2_627.sl | 1020 +- .../LIA/Lustre/metros_1_e7_1255_e7_12.sl | 1020 +- benchmarks/LIA/Lustre/metros_1_e7_606.sl | 1020 +- benchmarks/LIA/Lustre/metros_1_e8_725.sl | 1024 +- .../LIA/Lustre/metros_1_e8_725_e1_919.sl | 1024 +- .../LIA/Lustre/metros_1_e8_725_e2_1144.sl | 1024 +- .../LIA/Lustre/metros_1_e8_725_e3_556.sl | 1024 +- benchmarks/LIA/Lustre/metros_2.sl | 939 +- benchmarks/LIA/Lustre/metros_2_e1_1116.sl | 939 +- .../LIA/Lustre/metros_2_e1_1116_e2_617.sl | 939 +- benchmarks/LIA/Lustre/metros_2_e1_190.sl | 939 +- .../LIA/Lustre/metros_2_e2_704_e2_13.sl | 939 +- .../LIA/Lustre/metros_3_e3_1275_e2_454.sl | 948 +- .../LIA/Lustre/metros_3_e3_1275_e3_640.sl | 948 +- .../LIA/Lustre/metros_4_e2_968_e2_1166.sl | 948 +- .../LIA/Lustre/metros_4_e2_968_e3_931.sl | 948 +- .../LIA/Lustre/metros_4_e3_1091_e2_1317.sl | 948 +- .../LIA/Lustre/metros_4_e3_1091_e3_522.sl | 948 +- benchmarks/LIA/Lustre/microwave01.sl | 2432 +-- benchmarks/LIA/Lustre/microwave02.sl | 2495 +-- benchmarks/LIA/Lustre/microwave03.sl | 2609 +-- benchmarks/LIA/Lustre/microwave04.sl | 2553 +-- benchmarks/LIA/Lustre/microwave05.sl | 2521 +-- benchmarks/LIA/Lustre/microwave15.sl | 2378 +-- benchmarks/LIA/Lustre/microwave16.sl | 2390 +-- benchmarks/LIA/Lustre/microwave17.sl | 2769 +--- benchmarks/LIA/Lustre/microwave19.sl | 2546 +-- benchmarks/LIA/Lustre/microwave21.sl | 2698 +-- benchmarks/LIA/Lustre/microwave22.sl | 2630 +-- benchmarks/LIA/Lustre/microwave24.sl | 2578 +-- benchmarks/LIA/Lustre/microwave26.sl | 2674 +-- benchmarks/LIA/Lustre/microwave27.sl | 2662 +-- benchmarks/LIA/Lustre/microwave29.sl | 2634 +-- benchmarks/LIA/Lustre/microwave30.sl | 2650 +-- benchmarks/LIA/Lustre/peterson_1.sl | 2021 +-- benchmarks/LIA/Lustre/peterson_1_e7_4234.sl | 2021 +-- benchmarks/LIA/Lustre/peterson_2.sl | 2021 +-- benchmarks/LIA/Lustre/peterson_3.sl | 2021 +-- benchmarks/LIA/Lustre/peterson_4.sl | 2021 +-- benchmarks/LIA/Lustre/peterson_all.sl | 2077 +-- benchmarks/LIA/Lustre/production_cell.sl | 883 +- .../Lustre/production_cell_e7_207_e8_241.sl | 883 +- benchmarks/LIA/Lustre/production_cell_e8_6.sl | 883 +- .../LIA/Lustre/production_cell_e8_792.sl | 883 +- benchmarks/LIA/Lustre/readwrit.sl | 940 +- benchmarks/LIA/Lustre/rtp_1.sl | 1662 +- benchmarks/LIA/Lustre/rtp_10.sl | 1690 +- .../LIA/Lustre/rtp_10_e7_106_e7_2564.sl | 1690 +- benchmarks/LIA/Lustre/rtp_2.sl | 1670 +- benchmarks/LIA/Lustre/rtp_3.sl | 1690 +- benchmarks/LIA/Lustre/rtp_4.sl | 1690 +- benchmarks/LIA/Lustre/rtp_5.sl | 1690 +- benchmarks/LIA/Lustre/rtp_5_e7_3972.sl | 1690 +- benchmarks/LIA/Lustre/rtp_6.sl | 1690 +- benchmarks/LIA/Lustre/rtp_7.sl | 1690 +- benchmarks/LIA/Lustre/rtp_8.sl | 1690 +- benchmarks/LIA/Lustre/rtp_9.sl | 1690 +- benchmarks/LIA/Lustre/rtp_all.sl | 1909 +-- benchmarks/LIA/Lustre/rtp_all_e7_2500.sl | 1909 +-- benchmarks/LIA/Lustre/speed2.sl | 436 +- benchmarks/LIA/Lustre/speed2_e7_223_e7_213.sl | 436 +- benchmarks/LIA/Lustre/speed2_e7_223_e8_329.sl | 436 +- benchmarks/LIA/Lustre/speed2_e7_496.sl | 436 +- benchmarks/LIA/Lustre/speed2_e8_449.sl | 436 +- benchmarks/LIA/Lustre/speed2_e8_449_e7_353.sl | 436 +- benchmarks/LIA/Lustre/speed2_e8_449_e8_517.sl | 436 +- benchmarks/LIA/Lustre/speed2_e8_750.sl | 436 +- benchmarks/LIA/Lustre/speed_e7_207.sl | 429 +- benchmarks/LIA/Lustre/speed_e7_207_e7_538.sl | 429 +- benchmarks/LIA/Lustre/speed_e7_207_e8_507.sl | 429 +- benchmarks/LIA/Lustre/speed_e7_492.sl | 429 +- benchmarks/LIA/Lustre/speed_e8_649.sl | 429 +- benchmarks/LIA/Lustre/speed_e8_649_e7_709.sl | 429 +- benchmarks/LIA/Lustre/stalmark.sl | 182 +- benchmarks/LIA/Lustre/stalmark_e7_27.sl | 182 +- benchmarks/LIA/Lustre/stalmark_e7_27_e7_31.sl | 180 +- benchmarks/LIA/Lustre/stalmark_e7_76.sl | 182 +- benchmarks/LIA/Lustre/steam_boiler_no_arr1.sl | 13697 +-------------- .../steam_boiler_no_arr1_e4_23904_e4_2384.sl | 13699 +--------------- benchmarks/LIA/Lustre/steam_boiler_no_arr2.sl | 2691 +-- .../steam_boiler_no_arr2_e1_17214_e5_18600.sl | 2691 +-- .../steam_boiler_no_arr2_e3_514_e4_11150.sl | 2691 +-- .../steam_boiler_no_arr2_e6_3003_e4_15091.sl | 2691 +-- .../Lustre/steam_boiler_no_arr2_e7_12307.sl | 2691 +-- .../steam_boiler_no_arr2_e8_21449_e5_18210.sl | 2691 +-- benchmarks/LIA/Lustre/test.sl | 192 +- benchmarks/LIA/Lustre/ticket3i_1.sl | 1405 +- benchmarks/LIA/Lustre/ticket3i_1_e7_1669.sl | 1405 +- benchmarks/LIA/Lustre/ticket3i_2.sl | 1416 +- benchmarks/LIA/Lustre/ticket3i_3.sl | 1416 +- .../LIA/Lustre/ticket3i_3_e7_1312_e8_1916.sl | 1416 +- benchmarks/LIA/Lustre/ticket3i_3_e8_1703.sl | 1416 +- .../LIA/Lustre/ticket3i_3_e8_1703_e8_2560.sl | 1416 +- benchmarks/LIA/Lustre/ticket3i_3_e8_1788.sl | 1416 +- benchmarks/LIA/Lustre/ticket3i_4.sl | 1416 +- .../LIA/Lustre/ticket3i_4_e7_1775_e7_3320.sl | 1416 +- benchmarks/LIA/Lustre/ticket3i_5.sl | 1416 +- benchmarks/LIA/Lustre/ticket3i_5_e7_3307.sl | 1416 +- benchmarks/LIA/Lustre/ticket3i_6.sl | 1416 +- .../LIA/Lustre/ticket3i_6_e7_1096_e7_2688.sl | 1416 +- benchmarks/LIA/Lustre/ticket3i_7.sl | 1472 +- .../LIA/Lustre/ticket3i_7_e1_2192_e1_1852.sl | 1472 +- .../LIA/Lustre/ticket3i_7_e2_2724_e7_524.sl | 1472 +- .../LIA/Lustre/ticket3i_7_e3_59_e7_2122.sl | 1472 +- benchmarks/LIA/Lustre/ticket3i_7_e7_3176.sl | 1472 +- .../LIA/Lustre/ticket3i_7_e7_3176_e1_2924.sl | 1472 +- .../LIA/Lustre/ticket3i_7_e8_2126_e7_78.sl | 1472 +- benchmarks/LIA/Lustre/ticket3i_all.sl | 1488 +- .../Lustre/ticket3i_all_e1_2706_e7_1776.sl | 1488 +- .../LIA/Lustre/ticket3i_all_e2_1117_e7_553.sl | 1488 +- .../LIA/Lustre/ticket3i_all_e3_557_e7_3464.sl | 1488 +- benchmarks/LIA/Lustre/ticket3i_all_e7_1837.sl | 1488 +- benchmarks/LIA/Lustre/ticket3i_all_e7_591.sl | 1488 +- .../LIA/Lustre/ticket3i_all_e8_505_e7_2450.sl | 1488 +- benchmarks/LIA/Lustre/traffic.sl | 271 +- benchmarks/LIA/Lustre/tramway.sl | 1582 +- benchmarks/LIA/Lustre/tramway_e7_1834.sl | 1582 +- .../LIA/Lustre/tramway_e7_1834_e7_2363.sl | 1582 +- .../LIA/Lustre/tramway_e7_1834_e8_3192.sl | 1582 +- benchmarks/LIA/Lustre/tramway_e7_3304.sl | 1582 +- benchmarks/LIA/Lustre/twisted_counters.sl | 356 +- benchmarks/LIA/Lustre/two_counters.sl | 321 +- benchmarks/LIA/Lustre/ums.sl | 2837 +--- benchmarks/LIA/Lustre/ums_e8_1032.sl | 2837 +--- benchmarks/LIA/others/brett.sl | 20 +- benchmarks/LIA/others/gcnr_tacas08.sl | 25 +- benchmarks/LIA/others/inria-00615623_4.sl | 22 +- benchmarks/LIA/others/pldi18_seahorn_Fig3.sl | 21 +- .../LIA/others/pldi18_seahorn_Fig3_int.sl | 21 +- benchmarks/LIA/others/pldi18_seahorn_Fig4.sl | 24 +- benchmarks/LIA/others/rahul.sl | 25 +- .../NIA/2005.ICALP_PolyRank/poly3.pos_z.sl | 29 +- benchmarks/NIA/2005.ICALP_PolyRank/poly7.sl | 28 +- benchmarks/NIA/2016.ATVA_PILAT/mannadiv.sl | 30 +- .../NIA/2018.CHI_InvGame/cube2.desugared.sl | 21 +- .../gauss_sum-more-rows.auto.sl | 18 +- .../non-lin-ineq-1.desugared.sl | 18 +- .../non-lin-ineq-2.desugared.sl | 18 +- .../non-lin-ineq-3.desugared.sl | 16 +- .../non-lin-ineq-4.desugared.sl | 19 +- .../2018.CHI_InvGame/prod-bin.desugared.sl | 22 +- .../NIA/2018.CHI_InvGame/s10.desugared.sl | 20 +- .../NIA/2018.CHI_InvGame/s11.desugared.sl | 21 +- .../NIA/2018.CHI_InvGame/s5auto.desugared.sl | 21 +- .../NIA/2018.CHI_InvGame/s9.desugared.sl | 23 +- .../NIA/2018.CHI_InvGame/sorin03.desugared.sl | 21 +- .../NIA/2018.CHI_InvGame/sorin04.desugared.sl | 22 +- .../sqrt-more-rows-swap-columns.sl | 20 +- ...lf_2_true-unreach-call_true-termination.sl | 28 +- ...ans_false-unreach-call_true-termination.sl | 28 +- benchmarks/NIA/other/div.sl | 45 +- benchmarks/NIA/other/georeihe1.sl | 27 - benchmarks/NIA/other/georeihe2.sl | 27 - benchmarks/NIA/other/georeihe3.sl | 28 - benchmarks/NIA/other/issue_8.sl | 26 +- benchmarks/NIA/other/lcm.sl | 52 +- benchmarks/NIA/other/mul.sl | 44 +- benchmarks/NIA/other/pottsumm2.sl | 44 +- benchmarks/NIA/other/pottsumm3.sl | 44 +- benchmarks/NIA/other/pottsumm4.sl | 45 +- benchmarks/NIA/other/prod4br.sl | 56 +- benchmarks/README.md | 7 +- 953 files changed, 20108 insertions(+), 610842 deletions(-) create mode 100644 benchmarks/ALIA/2019.SV-Comp/array-cav19/array_doub_access_init_const.sl create mode 100644 benchmarks/ALIA/2019.SV-Comp/array-cav19/array_init_both_ends_multiple_sum.sl create mode 100644 benchmarks/ALIA/2019.SV-Comp/array-cav19/array_init_nondet_vars.sl create mode 100644 benchmarks/ALIA/2019.SV-Comp/array-cav19/array_init_pair_sum_const--simplified.sl rename benchmarks/ALIA/{sv-benchmarks/2019.array-cav => 2019.SV-Comp/array-cav19}/array_init_pair_symmetr--simplified.sl (51%) create mode 100644 benchmarks/ALIA/2019.SV-Comp/array-cav19/array_init_pair_symmetr2.sl rename benchmarks/ALIA/{sv-benchmarks/2019.array-cav => 2019.SV-Comp/array-cav19}/array_init_var_plus_ind.sl (50%) create mode 100644 benchmarks/ALIA/2019.SV-Comp/array-cav19/array_init_var_plus_ind2.sl rename benchmarks/ALIA/{sv-benchmarks/2019.array-cav => 2019.SV-Comp/array-cav19}/array_init_var_plus_ind3.sl (50%) create mode 100644 benchmarks/ALIA/2019.SV-Comp/array-cav19/array_tiling_poly6.sl rename benchmarks/ALIA/{sv-benchmarks/2019.array-cav => 2019.SV-Comp/array-cav19}/array_tiling_tcpy.sl (50%) create mode 100644 benchmarks/ALIA/2019.SV-Comp/array-cav19/array_tripl_access_init_const.sl delete mode 100644 benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_doub_access_init_const.sl delete mode 100644 benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_init_both_ends_multiple_sum.sl delete mode 100644 benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_init_nondet_vars.sl delete mode 100644 benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_init_pair_sum_const--simplified.sl delete mode 100644 benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_init_pair_symmetr2.sl delete mode 100644 benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_init_var_plus_ind2.sl delete mode 100644 benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_tiling_poly6.sl delete mode 100644 benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_tripl_access_init_const.sl delete mode 100644 benchmarks/LIA/2018.SV-Comp/README.md delete mode 100644 benchmarks/NIA/other/georeihe1.sl delete mode 100644 benchmarks/NIA/other/georeihe2.sl delete mode 100644 benchmarks/NIA/other/georeihe3.sl diff --git a/benchmarks/ALIA/2019.SV-Comp/array-cav19/array_doub_access_init_const.sl b/benchmarks/ALIA/2019.SV-Comp/array-cav19/array_doub_access_init_const.sl new file mode 100644 index 0000000..957689c --- /dev/null +++ b/benchmarks/ALIA/2019.SV-Comp/array-cav19/array_doub_access_init_const.sl @@ -0,0 +1,15 @@ +(set-logic ALIA) + +(synth-inv inv_fun ((a (Array Int Int)) (n Int) (i Int))) + +(define-fun pre_fun ((a (Array Int Int)) (n Int) (i Int)) Bool + (and (>= n 0) (= i 0))) +(define-fun trans_fun ((a (Array Int Int)) (n Int) (i Int) (a! (Array Int Int)) (n! Int) (i! Int)) Bool + (and (<= i n) (= i! (+ i 1)) (= n! n) (= a! (store (store a (* 2 i) 0) (+ 1 (* 2 i)) 0)))) +(define-fun post_fun ((a (Array Int Int)) (n Int) (i Int)) Bool + (or (<= i n) (forall ((j Int)) (=> (and (>= j 0) (<= j (* 2 n))) (>= 0 (select a j)))))) + +(inv-constraint inv_fun pre_fun trans_fun post_fun) + +(check-synth) + diff --git a/benchmarks/ALIA/2019.SV-Comp/array-cav19/array_init_both_ends_multiple_sum.sl b/benchmarks/ALIA/2019.SV-Comp/array-cav19/array_init_both_ends_multiple_sum.sl new file mode 100644 index 0000000..a025be6 --- /dev/null +++ b/benchmarks/ALIA/2019.SV-Comp/array-cav19/array_init_both_ends_multiple_sum.sl @@ -0,0 +1,15 @@ +(set-logic ALIA) + +(synth-inv inv_fun ((a (Array Int Int)) (b (Array Int Int)) (n Int) (i Int) (i1 Int) (sum Int))) + +(define-fun pre_fun ((a (Array Int Int)) (b (Array Int Int)) (n Int) (i Int) (i1 Int) (sum Int)) Bool + (and (>= n 0) (= i 0) (= sum 0) (= i1 0))) +(define-fun trans_fun ((a (Array Int Int)) (b (Array Int Int)) (n Int) (i Int) (i1 Int) (sum Int) (a! (Array Int Int)) (b! (Array Int Int)) (n! Int) (i! Int) (i1! Int) (sum! Int)) Bool + (and (< i1 (* 2 n)) (= i1! (+ i1! 1)) (= n! n) (ite (< i1 n) (and (< i n) (= i! (+ i 1)) (= a! (store a i i)) (= b! (store b (+ n (- i) (- 1)) i))) (= sum! (+ sum (- (select a (- i1 n)) (select b (+ n (- (- i1 n)) (- 1))))))))) +(define-fun post_fun ((a (Array Int Int)) (b (Array Int Int)) (n Int) (i Int) (i1 Int) (sum Int)) Bool + (or (< i1 (* 2 n)) (= sum 0))) + +(inv-constraint inv_fun pre_fun trans_fun post_fun) + +(check-synth) + diff --git a/benchmarks/ALIA/2019.SV-Comp/array-cav19/array_init_nondet_vars.sl b/benchmarks/ALIA/2019.SV-Comp/array-cav19/array_init_nondet_vars.sl new file mode 100644 index 0000000..be0c04c --- /dev/null +++ b/benchmarks/ALIA/2019.SV-Comp/array-cav19/array_init_nondet_vars.sl @@ -0,0 +1,15 @@ +(set-logic ALIA) + +(synth-inv inv_fun ((a (Array Int Int)) (n Int) (i Int) (j Int) (k Int))) + +(define-fun pre_fun ((a (Array Int Int)) (n Int) (i Int) (j Int) (k Int)) Bool + (and (< n 100000) (> j 0) (< j 10000) (= i 1))) +(define-fun trans_fun ((a (Array Int Int)) (n Int) (i Int) (j Int) (k Int) (a! (Array Int Int)) (n! Int) (i! Int) (j! Int) (k! Int)) Bool + (and (< i n) (= i! (+ i 1)) (= n! n) (> k! 0) (< k! 10000) (= a! (store a i (+ i j k!))))) +(define-fun post_fun ((a (Array Int Int)) (n Int) (i Int) (j Int) (k Int)) Bool + (or (< i n) (forall ((m Int)) (=> (and (> m 0) (< m n)) (>= (select a m) (+ m 2)))))) + +(inv-constraint inv_fun pre_fun trans_fun post_fun) + +(check-synth) + diff --git a/benchmarks/ALIA/2019.SV-Comp/array-cav19/array_init_pair_sum_const--simplified.sl b/benchmarks/ALIA/2019.SV-Comp/array-cav19/array_init_pair_sum_const--simplified.sl new file mode 100644 index 0000000..72632fc --- /dev/null +++ b/benchmarks/ALIA/2019.SV-Comp/array-cav19/array_init_pair_sum_const--simplified.sl @@ -0,0 +1,15 @@ +(set-logic ALIA) + +(synth-inv inv_fun ((a (Array Int Int)) (b (Array Int Int)) (c (Array Int Int)) (n Int) (i Int))) + +(define-fun pre_fun ((a (Array Int Int)) (b (Array Int Int)) (c (Array Int Int)) (n Int) (i Int)) Bool + (and (>= n 0) (= i 0))) +(define-fun trans_fun ((a (Array Int Int)) (b (Array Int Int)) (c (Array Int Int)) (n Int) (i Int) (a! (Array Int Int)) (b! (Array Int Int)) (c! (Array Int Int)) (n! Int) (i! Int)) Bool + (and (< i n) (= i! (+ i 1)) (= n! n) (= a! (store a i 1)) (= b! (store b i 2)) (= c! (store c i (+ (select a i) (select b i)))))) +(define-fun post_fun ((a (Array Int Int)) (b (Array Int Int)) (c (Array Int Int)) (n Int) (i Int)) Bool + (or (< i n) (forall ((j Int)) (=> (and (>= j 1) (< j n)) (>= (select c j) 3))))) + +(inv-constraint inv_fun pre_fun trans_fun post_fun) + +(check-synth) + diff --git a/benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_init_pair_symmetr--simplified.sl b/benchmarks/ALIA/2019.SV-Comp/array-cav19/array_init_pair_symmetr--simplified.sl similarity index 51% rename from benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_init_pair_symmetr--simplified.sl rename to benchmarks/ALIA/2019.SV-Comp/array-cav19/array_init_pair_symmetr--simplified.sl index b119931..028bcd8 100644 --- a/benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_init_pair_symmetr--simplified.sl +++ b/benchmarks/ALIA/2019.SV-Comp/array-cav19/array_init_pair_symmetr--simplified.sl @@ -2,36 +2,14 @@ (synth-inv inv_fun ((a (Array Int Int)) (b (Array Int Int)) (c (Array Int Int)) (x Int) (n Int) (i Int))) -(declare-primed-var a (Array Int Int)) -(declare-primed-var b (Array Int Int)) -(declare-primed-var c (Array Int Int)) -(declare-primed-var x Int) -(declare-primed-var i Int) -(declare-primed-var n Int) - - (define-fun pre_fun ((a (Array Int Int)) (b (Array Int Int)) (c (Array Int Int)) (x Int) (n Int) (i Int)) Bool - (and (>= n 0) (= i 0) )) - + (and (>= n 0) (= i 0))) (define-fun trans_fun ((a (Array Int Int)) (b (Array Int Int)) (c (Array Int Int)) (x Int) (n Int) (i Int) (a! (Array Int Int)) (b! (Array Int Int)) (c! (Array Int Int)) (x! Int) (n! Int) (i! Int)) Bool - (and (< i n) - (= i! (+ i 1)) - (= n! n) - (> x! -100000) - (< x! 100000) - (= a! (store a i x!)) - (= b! (store b i (- x!))) - (= c! (store c i (+ (select a i) (select b i)))) - ) -) - + (and (< i n) (= i! (+ i 1)) (= n! n) (> x! (- 100000)) (< x! 100000) (= a! (store a i x!)) (= b! (store b i (- x!))) (= c! (store c i (+ (select a i) (select b i)))))) (define-fun post_fun ((a (Array Int Int)) (b (Array Int Int)) (c (Array Int Int)) (x Int) (n Int) (i Int)) Bool - (or (< i n) - (forall ((j Int)) (=> (and (>= j 0) (< j n)) - (= (select c j) 0))) - ) -) + (or (< i n) (forall ((j Int)) (=> (and (>= j 0) (< j n)) (= (select c j) 0))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/ALIA/2019.SV-Comp/array-cav19/array_init_pair_symmetr2.sl b/benchmarks/ALIA/2019.SV-Comp/array-cav19/array_init_pair_symmetr2.sl new file mode 100644 index 0000000..5ba5cc3 --- /dev/null +++ b/benchmarks/ALIA/2019.SV-Comp/array-cav19/array_init_pair_symmetr2.sl @@ -0,0 +1,15 @@ +(set-logic ALIA) + +(synth-inv inv_fun ((a (Array Int Int)) (b (Array Int Int)) (c (Array Int Int)) (x Int) (y Int) (n Int) (i Int))) + +(define-fun pre_fun ((a (Array Int Int)) (b (Array Int Int)) (c (Array Int Int)) (x Int) (y Int) (n Int) (i Int)) Bool + (and (>= n 0) (= i 0))) +(define-fun trans_fun ((a (Array Int Int)) (b (Array Int Int)) (c (Array Int Int)) (x Int) (y Int) (n Int) (i Int) (a! (Array Int Int)) (b! (Array Int Int)) (c! (Array Int Int)) (x! Int) (y! Int) (n! Int) (i! Int)) Bool + (and (< i n) (= i! (+ i 1)) (= n! n) (> x! (- 100000)) (< x! 100000) (> y! (- 100000)) (< y! 100000) (> x! y!) (= a! (store a i x!)) (= b! (store b i y!)) (= c! (store c i (- (select a i) (select b i)))))) +(define-fun post_fun ((a (Array Int Int)) (b (Array Int Int)) (c (Array Int Int)) (x Int) (y Int) (n Int) (i Int)) Bool + (or (< i n) (forall ((j Int)) (=> (and (>= j 0) (=> (< j n))) (> (select c j) 0))))) + +(inv-constraint inv_fun pre_fun trans_fun post_fun) + +(check-synth) + diff --git a/benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_init_var_plus_ind.sl b/benchmarks/ALIA/2019.SV-Comp/array-cav19/array_init_var_plus_ind.sl similarity index 50% rename from benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_init_var_plus_ind.sl rename to benchmarks/ALIA/2019.SV-Comp/array-cav19/array_init_var_plus_ind.sl index 30e5798..490070d 100644 --- a/benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_init_var_plus_ind.sl +++ b/benchmarks/ALIA/2019.SV-Comp/array-cav19/array_init_var_plus_ind.sl @@ -2,31 +2,14 @@ (synth-inv inv_fun ((a (Array Int Int)) (n Int) (j Int) (i Int) (x Int))) -(declare-primed-var a (Array Int Int)) -(declare-primed-var j Int) -(declare-primed-var i Int) -(declare-primed-var n Int) -(declare-primed-var x Int) - - (define-fun pre_fun ((a (Array Int Int)) (n Int) (j Int) (i Int) (x Int)) Bool - (and (>= n 0) (= i 0) (= j 0))) - + (and (>= n 0) (= i 0) (= j 0))) (define-fun trans_fun ((a (Array Int Int)) (n Int) (j Int) (i Int) (x Int) (a! (Array Int Int)) (n! Int) (j! Int) (i! Int) (x! Int)) Bool - (and (and (< i n) (= x 0)) - (= n! n) - (= j! (+ j i)) - (= a! (store a i j)) - ) -) - + (and (and (< i n) (= x 0)) (= n! n) (= j! (+ j i)) (= a! (store a i j)))) (define-fun post_fun ((a (Array Int Int)) (n Int) (j Int) (i Int) (x Int)) Bool - (or (and (< i n) (= x 0)) - (forall ((k Int)) (=> (and (> k 0) (< k i)) - (>= (select a k) 0))) - ) -) + (or (and (< i n) (= x 0)) (forall ((k Int)) (=> (and (> k 0) (< k i)) (>= (select a k) 0))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/ALIA/2019.SV-Comp/array-cav19/array_init_var_plus_ind2.sl b/benchmarks/ALIA/2019.SV-Comp/array-cav19/array_init_var_plus_ind2.sl new file mode 100644 index 0000000..1d103f4 --- /dev/null +++ b/benchmarks/ALIA/2019.SV-Comp/array-cav19/array_init_var_plus_ind2.sl @@ -0,0 +1,15 @@ +(set-logic ALIA) + +(synth-inv inv_fun ((a (Array Int Int)) (n Int) (j Int) (i Int) (x Int) (k Int))) + +(define-fun pre_fun ((a (Array Int Int)) (n Int) (j Int) (i Int) (x Int) (k Int)) Bool + (and (>= n 0) (= i 0) (= j 0) (= k 0))) +(define-fun trans_fun ((a (Array Int Int)) (n Int) (j Int) (i Int) (x Int) (k Int) (a! (Array Int Int)) (n! Int) (j! Int) (i! Int) (x! Int) (k! Int)) Bool + (and (and (< i n) (= x 0)) (= n! n) (= k! (- k i)) (= j! (+ j i)) (= a! (store a i j)))) +(define-fun post_fun ((a (Array Int Int)) (n Int) (j Int) (i Int) (x Int) (k Int)) Bool + (or (and (< i n) (= x 0)) (forall ((l Int)) (=> (and (> l 0) (< l i)) (>= (select a l) k))))) + +(inv-constraint inv_fun pre_fun trans_fun post_fun) + +(check-synth) + diff --git a/benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_init_var_plus_ind3.sl b/benchmarks/ALIA/2019.SV-Comp/array-cav19/array_init_var_plus_ind3.sl similarity index 50% rename from benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_init_var_plus_ind3.sl rename to benchmarks/ALIA/2019.SV-Comp/array-cav19/array_init_var_plus_ind3.sl index d051528..0dc62fa 100644 --- a/benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_init_var_plus_ind3.sl +++ b/benchmarks/ALIA/2019.SV-Comp/array-cav19/array_init_var_plus_ind3.sl @@ -2,31 +2,14 @@ (synth-inv inv_fun ((a (Array Int Int)) (n Int) (j Int) (i Int) (x Int))) -(declare-primed-var a (Array Int Int)) -(declare-primed-var j Int) -(declare-primed-var i Int) -(declare-primed-var n Int) -(declare-primed-var x Int) - - (define-fun pre_fun ((a (Array Int Int)) (n Int) (j Int) (i Int) (x Int)) Bool - (and (>= n 0) (= i 0) (= j 0))) - + (and (>= n 0) (= i 0) (= j 0))) (define-fun trans_fun ((a (Array Int Int)) (n Int) (j Int) (i Int) (x Int) (a! (Array Int Int)) (n! Int) (j! Int) (i! Int) (x! Int)) Bool - (and (and (< i n) (= x 0)) - (= n! n) - (= a! (store a i j)) - (= j! (- j i)) - ) -) - + (and (and (< i n) (= x 0)) (= n! n) (= a! (store a i j)) (= j! (- j i)))) (define-fun post_fun ((a (Array Int Int)) (n Int) (j Int) (i Int) (x Int)) Bool - (or (and (< i n) (= x 0)) - (forall ((l Int)) (=> (and (>= l 4) (< l i)) - (<= (select a l) 0))) - ) -) + (or (and (< i n) (= x 0)) (forall ((l Int)) (=> (and (>= l 4) (< l i)) (<= (select a l) 0))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/ALIA/2019.SV-Comp/array-cav19/array_tiling_poly6.sl b/benchmarks/ALIA/2019.SV-Comp/array-cav19/array_tiling_poly6.sl new file mode 100644 index 0000000..688a6f2 --- /dev/null +++ b/benchmarks/ALIA/2019.SV-Comp/array-cav19/array_tiling_poly6.sl @@ -0,0 +1,15 @@ +(set-logic ALIA) + +(synth-inv inv_fun ((a (Array Int Int)) (i Int) (s Int))) + +(define-fun pre_fun ((a (Array Int Int)) (i Int) (s Int)) Bool + (and (= i 0) (> s 1))) +(define-fun trans_fun ((a (Array Int Int)) (i Int) (s Int) (a! (Array Int Int)) (i! Int) (s! Int)) Bool + (and (< i (* 2 s)) (= i! (+ i! 1)) (= s! s) (ite (< i s) (= a! (store a i (* (- i 1) (+ i 1)))) (= a! (store a (- i s) (- (select a (- i s)) (* (- i s) (- i s)))))))) +(define-fun post_fun ((a (Array Int Int)) (i Int) (s Int)) Bool + (or (< i (* 2 s)) (forall ((j Int)) (=> (and (>= j 0) (< j s)) (= (- 1) (select a j)))))) + +(inv-constraint inv_fun pre_fun trans_fun post_fun) + +(check-synth) + diff --git a/benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_tiling_tcpy.sl b/benchmarks/ALIA/2019.SV-Comp/array-cav19/array_tiling_tcpy.sl similarity index 50% rename from benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_tiling_tcpy.sl rename to benchmarks/ALIA/2019.SV-Comp/array-cav19/array_tiling_tcpy.sl index e83295f..83e345e 100644 --- a/benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_tiling_tcpy.sl +++ b/benchmarks/ALIA/2019.SV-Comp/array-cav19/array_tiling_tcpy.sl @@ -2,29 +2,14 @@ (synth-inv inv_fun ((a (Array Int Int)) (acopy (Array Int Int)) (s Int) (i Int))) -(declare-primed-var a (Array Int Int)) -(declare-primed-var acopy (Array Int Int)) -(declare-primed-var i Int) -(declare-primed-var s Int) - (define-fun pre_fun ((a (Array Int Int)) (acopy (Array Int Int)) (s Int) (i Int)) Bool - (and (> s 1) (= i 0))) - + (and (> s 1) (= i 0))) (define-fun trans_fun ((a (Array Int Int)) (acopy (Array Int Int)) (s Int) (i Int) (a! (Array Int Int)) (acopy! (Array Int Int)) (s! Int) (i! Int)) Bool - (and (< i s) - (= i! (+ i 1)) - (= s! s) - (= acopy! (store (store acopy i (select a i)) (- (* 2 s) (+ i 1)) (select a (- (* 2 s) (+ i 1))) )) - ) -) - + (and (< i s) (= i! (+ i 1)) (= s! s) (= acopy! (store (store acopy i (select a i)) (- (* 2 s) (+ i 1)) (select a (- (* 2 s) (+ i 1))))))) (define-fun post_fun ((a (Array Int Int)) (acopy (Array Int Int)) (s Int) (i Int)) Bool - (or (< i s) - (forall ((j Int)) (=> (and (>= j 0) (< j (* 2 s))) - (= (select acopy j) (select a j)))) - ) -) + (or (< i s) (forall ((j Int)) (=> (and (>= j 0) (< j (* 2 s))) (= (select acopy j) (select a j)))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/ALIA/2019.SV-Comp/array-cav19/array_tripl_access_init_const.sl b/benchmarks/ALIA/2019.SV-Comp/array-cav19/array_tripl_access_init_const.sl new file mode 100644 index 0000000..726737a --- /dev/null +++ b/benchmarks/ALIA/2019.SV-Comp/array-cav19/array_tripl_access_init_const.sl @@ -0,0 +1,15 @@ +(set-logic ALIA) + +(synth-inv inv_fun ((a (Array Int Int)) (n Int) (i Int))) + +(define-fun pre_fun ((a (Array Int Int)) (n Int) (i Int)) Bool + (and (>= n 0) (= i 0))) +(define-fun trans_fun ((a (Array Int Int)) (n Int) (i Int) (a! (Array Int Int)) (n! Int) (i! Int)) Bool + (and (<= i n) (= i! (+ i 1)) (= n! n) (= a! (store (store (store a (* 3 i) 0) (+ 1 (* 3 i)) 0) (+ 2 (* 3 i)) 0)))) +(define-fun post_fun ((a (Array Int Int)) (n Int) (i Int)) Bool + (or (<= i n) (forall ((j Int)) (=> (and (>= j 0) (<= j (* 3 n))) (>= 0 (select a j)))))) + +(inv-constraint inv_fun pre_fun trans_fun post_fun) + +(check-synth) + diff --git a/benchmarks/ALIA/others/add-array.sl b/benchmarks/ALIA/others/add-array.sl index e64f0af..fe9e9e8 100644 --- a/benchmarks/ALIA/others/add-array.sl +++ b/benchmarks/ALIA/others/add-array.sl @@ -2,31 +2,14 @@ (synth-inv inv_fun ((x (Array Int Int)) (y Int) (n Int))) -(declare-primed-var x (Array Int Int)) -(declare-primed-var y Int) -(declare-primed-var n Int) - (define-fun pre_fun ((x (Array Int Int)) (y Int) (n Int)) Bool -(and - (>= n 0) - (and (= n (select x 0)) - (= y 0)) -)) - + (and (>= n 0) (and (= n (select x 0)) (= y 0)))) (define-fun trans_fun ((x (Array Int Int)) (y Int) (n Int) (x! (Array Int Int)) (y! Int) (n! Int)) Bool -(and - (> (select x 0) 0) - (and (= n! n) - (and (= y! (+ y 1)) - (= x! (store x 0 (- (select x 0) 1))))) -)) - + (and (> (select x 0) 0) (and (= n! n) (and (= y! (+ y 1)) (= x! (store x 0 (- (select x 0) 1))))))) (define-fun post_fun ((x (Array Int Int)) (y Int) (n Int)) Bool -(or - (> (select x 0) 0) - (= n (+ (select x 0) y)) -)) + (or (> (select x 0) 0) (= n (+ (select x 0) y)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/ALIA/others/array-copyall-bool.sl b/benchmarks/ALIA/others/array-copyall-bool.sl index 535a1f5..a727b25 100644 --- a/benchmarks/ALIA/others/array-copyall-bool.sl +++ b/benchmarks/ALIA/others/array-copyall-bool.sl @@ -2,36 +2,14 @@ (synth-inv inv_fun ((a1 (Array Int Bool)) (a2 (Array Int Bool)) (n Int) (i Int))) -(declare-primed-var a1 (Array Int Bool)) -(declare-primed-var a2 (Array Int Bool)) -(declare-primed-var i Int) -(declare-primed-var n Int) - (define-fun pre_fun ((a1 (Array Int Bool)) (a2 (Array Int Bool)) (n Int) (i Int)) Bool -(and - (>= n 0) - (and (= i 0) - (< i n)) -)) - + (and (>= n 0) (and (= i 0) (< i n)))) (define-fun trans_fun ((a1 (Array Int Bool)) (a2 (Array Int Bool)) (n Int) (i Int) (a1! (Array Int Bool)) (a2! (Array Int Bool)) (n! Int) (i! Int)) Bool -(and - (< i n) - (= i! (+ i 1)) - (and (= n! n) - (and (= a2! a2) - (= a1! (store a1 i (select a2 i))))) -)) - + (and (< i n) (= i! (+ i 1)) (and (= n! n) (and (= a2! a2) (= a1! (store a1 i (select a2 i))))))) (define-fun post_fun ((a1 (Array Int Bool)) (a2 (Array Int Bool)) (n Int) (i Int)) Bool -(or - (< i n) - (forall ((j Int)) - (=> (and (<= 0 j) (< j n)) - (= (select a1 j) - (select a2 j)))) -)) + (or (< i n) (forall ((j Int)) (=> (and (<= 0 j) (< j n)) (= (select a1 j) (select a2 j)))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/ALIA/others/array-copyall.sl b/benchmarks/ALIA/others/array-copyall.sl index 95e8307..08cf052 100644 --- a/benchmarks/ALIA/others/array-copyall.sl +++ b/benchmarks/ALIA/others/array-copyall.sl @@ -2,35 +2,14 @@ (synth-inv inv_fun ((a1 (Array Int Int)) (a2 (Array Int Int)) (n Int) (i Int))) -(declare-primed-var a1 (Array Int Int)) -(declare-primed-var a2 (Array Int Int)) -(declare-primed-var i Int) -(declare-primed-var n Int) - (define-fun pre_fun ((a1 (Array Int Int)) (a2 (Array Int Int)) (n Int) (i Int)) Bool -(and - (>= n 0) - (= i 0) -)) - + (and (>= n 0) (= i 0))) (define-fun trans_fun ((a1 (Array Int Int)) (a2 (Array Int Int)) (n Int) (i Int) (a1! (Array Int Int)) (a2! (Array Int Int)) (n! Int) (i! Int)) Bool -(and - (<= i n) - (= i! (+ i 1)) - (and (= n! n) - (and (= a2! a2) - (= a1! (store a1 i (select a2 i))))) -)) - + (and (<= i n) (= i! (+ i 1)) (and (= n! n) (and (= a2! a2) (= a1! (store a1 i (select a2 i))))))) (define-fun post_fun ((a1 (Array Int Int)) (a2 (Array Int Int)) (n Int) (i Int)) Bool -(or - (<= i n) - (forall ((j Int)) - (=> (and (<= 0 j) (<= j n)) - (= (select a1 j) - (select a2 j)))) -)) + (or (<= i n) (forall ((j Int)) (=> (and (<= 0 j) (<= j n)) (= (select a1 j) (select a2 j)))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/ALIA/others/array-copyodd.sl b/benchmarks/ALIA/others/array-copyodd.sl index 20e4c22..9c256f5 100644 --- a/benchmarks/ALIA/others/array-copyodd.sl +++ b/benchmarks/ALIA/others/array-copyodd.sl @@ -2,33 +2,14 @@ (synth-inv inv_fun ((a1 (Array Int Int)) (a2 (Array Int Int)) (n Int) (i Int))) -(declare-primed-var a1 (Array Int Int)) -(declare-primed-var a2 (Array Int Int)) -(declare-primed-var i Int) -(declare-primed-var n Int) - (define-fun pre_fun ((a1 (Array Int Int)) (a2 (Array Int Int)) (n Int) (i Int)) Bool - (and (>= n 0) (and (= i 0) (< i n)))) - + (and (>= n 0) (and (= i 0) (< i n)))) (define-fun trans_fun ((a1 (Array Int Int)) (a2 (Array Int Int)) (n Int) (i Int) (a1! (Array Int Int)) (a2! (Array Int Int)) (n! Int) (i! Int)) Bool - (and (= i! (+ i 1))) - (< i n) - (= n! n) - (= a2! a2) - (= 1 (mod i 2)) - (= a1! (store a1 i (select a2 i))) - ) -) - + (and (= i! (+ i 1)) (< i n) (= n! n) (= a2! a2) (= 1 (mod i 2)) (= a1! (store a1 i (select a2 i))))) (define-fun post_fun ((a1 (Array Int Int)) (a2 (Array Int Int)) (n Int) (i Int)) Bool - (or (< i n) - (forall ((j Int)) - (=> (and (<= 0 j) (< j n) (= 1 (mod j 2))) - (= (select a1 j) - (select a2 j)))) - ) -) + (or (< i n) (forall ((j Int)) (=> (and (<= 0 j) (< j n) (= 1 (mod j 2))) (= (select a1 j) (select a2 j)))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/ALIA/others/array-copysome.sl b/benchmarks/ALIA/others/array-copysome.sl index 369eb5f..737ff08 100644 --- a/benchmarks/ALIA/others/array-copysome.sl +++ b/benchmarks/ALIA/others/array-copysome.sl @@ -2,38 +2,14 @@ (synth-inv inv_fun ((a1 (Array Int Int)) (a2 (Array Int Int)) (n Int) (i Int) (z Int))) -(declare-primed-var a1 (Array Int Int)) -(declare-primed-var a2 (Array Int Int)) -(declare-primed-var i Int) -(declare-primed-var n Int) -(declare-primed-var z Int) - - (define-fun pre_fun ((a1 (Array Int Int)) (a2 (Array Int Int)) (n Int) (i Int) (z Int)) Bool -(and - (= i 0) - (and (> n 0) - (and (< i n) - (and (>= z 0) (< z n)))) -)) - + (and (= i 0) (and (> n 0) (and (< i n) (and (>= z 0) (< z n)))))) (define-fun trans_fun ((a1 (Array Int Int)) (a2 (Array Int Int)) (n Int) (i Int) (z Int) (a1! (Array Int Int)) (a2! (Array Int Int)) (n! Int) (i! Int) (z! Int)) Bool -(and - (< i n) - (= i! (+ i 1)) - (and (= n! n) - (and (= z! z) - (and (= a2! a2) - (or (and (= i z)(= (select a1! i)(select a1 i))) (and (not(= i z)) (= a1! (store a1 i (select a2 i)))))))) -)) - + (and (< i n) (= i! (+ i 1)) (and (= n! n) (and (= z! z) (and (= a2! a2) (or (and (= i z) (= (select a1! i) (select a1 i))) (and (not (= i z)) (= a1! (store a1 i (select a2 i)))))))))) (define-fun post_fun ((a1 (Array Int Int)) (a2 (Array Int Int)) (n Int) (i Int) (z Int)) Bool -(or - (< i n) - (forall ((x Int)) (=> (and (>= x 0) (< x n)) - (or (not (not (= x z))) (= (select a1 x) (select a2 x))))) -)) + (or (< i n) (forall ((x Int)) (=> (and (>= x 0) (< x n)) (or (not (not (= x z))) (= (select a1 x) (select a2 x))))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/ALIA/others/inc-array.sl b/benchmarks/ALIA/others/inc-array.sl index 09752a2..cab74a5 100644 --- a/benchmarks/ALIA/others/inc-array.sl +++ b/benchmarks/ALIA/others/inc-array.sl @@ -2,17 +2,14 @@ (synth-inv inv_fun ((x (Array Int Int)))) -(declare-primed-var x (Array Int Int)) - (define-fun pre_fun ((x (Array Int Int))) Bool -(= 1 (select x 0))) - + (= 1 (select x 0))) (define-fun trans_fun ((x (Array Int Int)) (x! (Array Int Int))) Bool -(and (< (select x 0) 100) (= x! (store x 0 (+ (select x 0) 2))))) - + (and (< (select x 0) 100) (= x! (store x 0 (+ (select x 0) 2))))) (define-fun post_fun ((x (Array Int Int))) Bool -(or (not (>= (select x 0) 100)) (= (select x 0) 101))) + (or (not (>= (select x 0) 100)) (= (select x 0) 101))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_doub_access_init_const.sl b/benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_doub_access_init_const.sl deleted file mode 100644 index 7894ba3..0000000 --- a/benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_doub_access_init_const.sl +++ /dev/null @@ -1,29 +0,0 @@ -(set-logic ALIA) - -(synth-inv inv_fun ((a (Array Int Int)) (n Int) (i Int))) - -(declare-primed-var a (Array Int Int)) -(declare-primed-var i Int) -(declare-primed-var n Int) - -(define-fun pre_fun ((a (Array Int Int)) (n Int) (i Int)) Bool - (and (>= n 0) (= i 0))) - -(define-fun trans_fun ((a (Array Int Int)) (n Int) (i Int) (a! (Array Int Int)) (n! Int) (i! Int)) Bool - (and (<= i n) - (= i! (+ i 1)) - (= n! n) - (= a! (store (store a (* 2 i) 0) (+ 1 (* 2 i)) 0)) - ) -) - -(define-fun post_fun ((a (Array Int Int)) (n Int) (i Int)) Bool - (or (<= i n) - (forall ((j Int)) (=> (and (>= j 0) (<= j (* 2 n))) - (>= 0 (select a j)))) - ) -) - -(inv-constraint inv_fun pre_fun trans_fun post_fun) - -(check-synth) \ No newline at end of file diff --git a/benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_init_both_ends_multiple_sum.sl b/benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_init_both_ends_multiple_sum.sl deleted file mode 100644 index c658003..0000000 --- a/benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_init_both_ends_multiple_sum.sl +++ /dev/null @@ -1,34 +0,0 @@ -(set-logic ALIA) - -(synth-inv inv_fun ((a (Array Int Int)) (b (Array Int Int)) (n Int) (i Int) (sum Int))) - -(declare-primed-var a (Array Int Int)) -(declare-primed-var b (Array Int Int)) -(declare-primed-var i Int) -(declare-primed-var i1 Int) -(declare-primed-var n Int) -(declare-primed-var sum Int) - -(define-fun pre_fun ((a (Array Int Int)) (b (Array Int Int)) (n Int) (i Int) (i1 Int) (sum Int)) Bool - (and (>= n 0) (= i 0) (= sum 0) (= i1 0))) - -(define-fun trans_fun ((a (Array Int Int)) (b (Array Int Int)) (n Int) (i Int) (i1 Int) (sum Int) (a! (Array Int Int)) (b! (Array Int Int)) (n! Int) (i! Int) (i1! Int) (sum! Int)) Bool - (and (< i1 (* 2 n)) - (= i1! (+ i1! 1)) - (= n! n) - (ite (< i1 n) - (and (< i n) (= i! (+ i 1)) (= a! (store a i i)) (= b! (store b (+ n (- i) (- 1)) i))) - (= sum! (+ sum (- (select a (- i1 n)) (select b (+ n (- (- i1 n)) (- 1)))))) - ) - ) -) - -(define-fun post_fun ((a (Array Int Int)) (b (Array Int Int)) (n Int) (i Int) (i1 Int) (sum Int)) Bool - (or (< i1 (* 2 n)) - (= sum 0) - ) -) - -(inv-constraint inv_fun pre_fun trans_fun post_fun) - -(check-synth) \ No newline at end of file diff --git a/benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_init_nondet_vars.sl b/benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_init_nondet_vars.sl deleted file mode 100644 index 4897324..0000000 --- a/benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_init_nondet_vars.sl +++ /dev/null @@ -1,38 +0,0 @@ -(set-logic ALIA) - -(synth-inv inv_fun ((a (Array Int Int)) (n Int) (i Int) (j Int) (k Int))) - -(declare-primed-var a (Array Int Int)) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var n Int) -(declare-primed-var k Int) - -(define-fun pre_fun ((a (Array Int Int)) (n Int) (i Int) (j Int) (k Int)) Bool - (and (< n 100000) - (> j 0) - (< j 10000) - (= i 1) - ) -) - -(define-fun trans_fun ((a (Array Int Int)) (n Int) (i Int) (j Int) (k Int) (a! (Array Int Int)) (n! Int) (i! Int) (j! Int) (k! Int)) Bool - (and (< i n) - (= i! (+ i 1)) - (= n! n) - (> k! 0) - (< k! 10000) - (= a! (store a i (+ i j k!))) - ) -) - -(define-fun post_fun ((a (Array Int Int)) (n Int) (i Int) (j Int) (k Int)) Bool - (or (< i n) - (forall ((m Int)) ( => (and (> m 0) (< m n)) - (>= (select a m) (+ m 2)))) - ) -) - -(inv-constraint inv_fun pre_fun trans_fun post_fun) - -(check-synth) \ No newline at end of file diff --git a/benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_init_pair_sum_const--simplified.sl b/benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_init_pair_sum_const--simplified.sl deleted file mode 100644 index 060e4a5..0000000 --- a/benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_init_pair_sum_const--simplified.sl +++ /dev/null @@ -1,33 +0,0 @@ -(set-logic ALIA) - -(synth-inv inv_fun ((a (Array Int Int)) (b (Array Int Int)) (c (Array Int Int)) (n Int) (i Int))) - -(declare-primed-var a (Array Int Int)) -(declare-primed-var b (Array Int Int)) -(declare-primed-var c (Array Int Int)) -(declare-primed-var i Int) -(declare-primed-var n Int) - -(define-fun pre_fun ((a (Array Int Int)) (b (Array Int Int)) (c (Array Int Int)) (n Int) (i Int)) Bool - (and (>= n 0) (= i 0) )) - -(define-fun trans_fun ((a (Array Int Int)) (b (Array Int Int)) (c (Array Int Int))(n Int) (i Int) (a! (Array Int Int)) (b! (Array Int Int)) (c! (Array Int Int)) (n! Int) (i! Int)) Bool - (and (< i n) - (= i! (+ i 1)) - (= n! n) - (= a! (store a i 1)) - (= b! (store b i 2)) - (= c! (store c i (+ (select a i) (select b i)))) - ) -) - -(define-fun post_fun ((a (Array Int Int)) (b (Array Int Int)) (c (Array Int Int)) (n Int) (i Int)) Bool - (or (< i n) - (forall ((j Int)) (=> (and (>= j 1) (< j n)) - (>= (select c j) 3))) - ) -) - -(inv-constraint inv_fun pre_fun trans_fun post_fun) - -(check-synth) \ No newline at end of file diff --git a/benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_init_pair_symmetr2.sl b/benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_init_pair_symmetr2.sl deleted file mode 100644 index 82fa171..0000000 --- a/benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_init_pair_symmetr2.sl +++ /dev/null @@ -1,41 +0,0 @@ -(set-logic ALIA) - -(synth-inv inv_fun ((a (Array Int Int)) (b (Array Int Int)) (c (Array Int Int)) (x Int) (y Int) (n Int) (i Int))) - -(declare-primed-var a (Array Int Int)) -(declare-primed-var b (Array Int Int)) -(declare-primed-var c (Array Int Int)) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var i Int) -(declare-primed-var n Int) - - -(define-fun pre_fun ((a (Array Int Int)) (b (Array Int Int)) (c (Array Int Int)) (x Int) (y Int) (n Int) (i Int)) Bool - (and (>= n 0) (= i 0) )) - -(define-fun trans_fun ((a (Array Int Int)) (b (Array Int Int)) (c (Array Int Int)) (x Int) (y Int) (n Int) (i Int) (a! (Array Int Int)) (b! (Array Int Int)) (c! (Array Int Int)) (x! Int) (y! Int) (n! Int) (i! Int)) Bool - (and (< i n) - (= i! (+ i 1)) - (= n! n) - (> x! -100000) - (< x! 100000) - (> y! -100000) - (< y! 100000) - (> x! y!) - (= a! (store a i x!)) - (= b! (store b i y!)) - (= c! (store c i (- (select a i) (select b i)))) - ) -) - -(define-fun post_fun ((a (Array Int Int)) (b (Array Int Int)) (c (Array Int Int)) (x Int) (y Int) (n Int) (i Int)) Bool - (or (< i n) - (forall ((j Int)) (=> (and (>= j 0) (=> (< j n))) - (> (select c j) 0))) - ) -) - -(inv-constraint inv_fun pre_fun trans_fun post_fun) - -(check-synth) \ No newline at end of file diff --git a/benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_init_var_plus_ind2.sl b/benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_init_var_plus_ind2.sl deleted file mode 100644 index e4074f9..0000000 --- a/benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_init_var_plus_ind2.sl +++ /dev/null @@ -1,34 +0,0 @@ -(set-logic ALIA) - -(synth-inv inv_fun ((a (Array Int Int)) (n Int) (j Int) (i Int) (x Int) (k Int))) - -(declare-primed-var a (Array Int Int)) -(declare-primed-var j Int) -(declare-primed-var i Int) -(declare-primed-var n Int) -(declare-primed-var x Int) -(declare-primed-var k Int) - - -(define-fun pre_fun ((a (Array Int Int)) (n Int) (j Int) (i Int) (x Int) (k Int)) Bool - (and (>= n 0) (= i 0) (= j 0) (= k 0))) - -(define-fun trans_fun ((a (Array Int Int)) (n Int) (j Int) (i Int) (x Int) (k Int) (a! (Array Int Int)) (n! Int) (j! Int) (i! Int) (x! Int) (k! Int)) Bool - (and (and (< i n) (= x 0)) - (= n! n) - (= k! (- k i)) - (= j! (+ j i)) - (= a! (store a i j)) - ) -) - -(define-fun post_fun ((a (Array Int Int)) (n Int) (j Int) (i Int) (x Int)) Bool - (or (and (< i n) (= x 0)) - (forall ((l Int)) (=> (and (> l 0) (< l i)) - (>= (select a l) k))) - ) -) - -(inv-constraint inv_fun pre_fun trans_fun post_fun) - -(check-synth) \ No newline at end of file diff --git a/benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_tiling_poly6.sl b/benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_tiling_poly6.sl deleted file mode 100644 index 7188bf6..0000000 --- a/benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_tiling_poly6.sl +++ /dev/null @@ -1,32 +0,0 @@ -(set-logic ALIA) - -(synth-inv inv_fun ((a (Array Int Int)) (i Int) (s Int))) - -(declare-primed-var a (Array Int Int)) -(declare-primed-var i Int) -(declare-primed-var s Int) - -(define-fun pre_fun ((a (Array Int Int)) (i Int) (s Int)) Bool - (and (= i 0) (> s 1))) - -(define-fun trans_fun ((a (Array Int Int)) (i Int) (s Int) (a! (Array Int Int)) (i! Int) (s! Int)) Bool - (and (< i (* 2 s)) - (= i! (+ i! 1)) - (= s! s) - (ite (< i s) - ((= a! (store a i (* (- i 1) (+ i 1))))) - ((= a! (store a (- i s) (- (select a (- i s)) (* (- i s) (- i s)))))) - ) - ) -) - -(define-fun post_fun ((a (Array Int Int)) (i Int) (s Int)) Bool - (or (< i (* 2 s)) - (forall ((j Int)) (=> (and (>= j 0) (< j s)) - (= (- 1) (select a j)))) - ) -) - -(inv-constraint inv_fun pre_fun trans_fun post_fun) - -(check-synth) \ No newline at end of file diff --git a/benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_tripl_access_init_const.sl b/benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_tripl_access_init_const.sl deleted file mode 100644 index 5037e59..0000000 --- a/benchmarks/ALIA/sv-benchmarks/2019.array-cav/array_tripl_access_init_const.sl +++ /dev/null @@ -1,29 +0,0 @@ -(set-logic ALIA) - -(synth-inv inv_fun ((a (Array Int Int)) (n Int) (i Int))) - -(declare-primed-var a (Array Int Int)) -(declare-primed-var i Int) -(declare-primed-var n Int) - -(define-fun pre_fun ((a (Array Int Int)) (n Int) (i Int)) Bool - (and (>= n 0) (= i 0))) - -(define-fun trans_fun ((a (Array Int Int)) (n Int) (i Int) (a! (Array Int Int)) (n! Int) (i! Int)) Bool - (and (<= i n) - (= i! (+ i 1)) - (= n! n) - (= a! (store (store (store a (* 3 i) 0) (+ 1 (* 3 i)) 0) (+ 2 (* 3 i)) 0)) - ) -) - -(define-fun post_fun ((a (Array Int Int)) (n Int) (i Int)) Bool - (or (<= i n) - (forall ((j Int)) (=> (and (>= j 0) (<= j (* 3 n))) - (>= 0 (select a j)))) - ) -) - -(inv-constraint inv_fun pre_fun trans_fun post_fun) - -(check-synth) \ No newline at end of file diff --git a/benchmarks/LIA/2005.ICALP_PolyRank/poly1.sl b/benchmarks/LIA/2005.ICALP_PolyRank/poly1.sl index ac22d63..b3edf59 100644 --- a/benchmarks/LIA/2005.ICALP_PolyRank/poly1.sl +++ b/benchmarks/LIA/2005.ICALP_PolyRank/poly1.sl @@ -2,42 +2,14 @@ (synth-inv inv_fun ((c Int) (i Int) (j Int) (i0 Int) (j0 Int) (an Int) (bn Int))) -(declare-primed-var c Int) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var i0 Int) -(declare-primed-var j0 Int) -(declare-primed-var an Int) -(declare-primed-var bn Int) - (define-fun pre_fun ((c Int) (i Int) (j Int) (i0 Int) (j0 Int) (an Int) (bn Int)) Bool - (and (= c 0) (= i i0) (= j j0))) - -(define-fun trans_fun ((c Int) (i Int) (j Int) (i0 Int) (j0 Int) (an Int) (bn Int) - (c! Int) (i! Int) (j! Int) (i0! Int) (j0! Int) (an! Int) (bn! Int)) Bool - (and (= an! an) (= bn! bn) (= i0! i0) (= j0! j0) - (or (and (< an i) (< bn j) (= c! c) (= i! i) (= j! j)) - (and (>= an i) (>= bn j) - (= c! (+ c 1)) (= i! i) (= j! (+ j 1))) - (and (>= an i) (>= bn j) - (= c! (+ c 1)) (= i! (+ i 1)) (= j! j)) - (and (>= an i) (<= bn j) - (= c! (+ c 1)) (= i! (+ i 1)) (= j! j)) - (and (<= an i) (>= bn j) - (= c! (+ c 1)) (= i! i) (= j! (+ j 1)))) - )) - + (and (= c 0) (= i i0) (= j j0))) +(define-fun trans_fun ((c Int) (i Int) (j Int) (i0 Int) (j0 Int) (an Int) (bn Int) (c! Int) (i! Int) (j! Int) (i0! Int) (j0! Int) (an! Int) (bn! Int)) Bool + (and (= an! an) (= bn! bn) (= i0! i0) (= j0! j0) (or (and (< an i) (< bn j) (= c! c) (= i! i) (= j! j)) (and (>= an i) (>= bn j) (= c! (+ c 1)) (= i! i) (= j! (+ j 1))) (and (>= an i) (>= bn j) (= c! (+ c 1)) (= i! (+ i 1)) (= j! j)) (and (>= an i) (<= bn j) (= c! (+ c 1)) (= i! (+ i 1)) (= j! j)) (and (<= an i) (>= bn j) (= c! (+ c 1)) (= i! i) (= j! (+ j 1)))))) (define-fun post_fun ((c Int) (i Int) (j Int) (i0 Int) (j0 Int) (an Int) (bn Int)) Bool - (=> (or (>= an i) (>= bn j)) - (or (and (>= an i0) (>= bn j0)) - (<= c (+ (- an i0) (- bn j0))) - (and (>= an i0) (< bn j0) - (<= c (- an i0))) - (and (< an i0) (>= bn j0) - (<= c (- bn j0))) - (and (< an i0) (< bn j0) - (= c 0))))) + (=> (or (>= an i) (>= bn j)) (or (and (>= an i0) (>= bn j0)) (<= c (+ (- an i0) (- bn j0))) (and (>= an i0) (< bn j0) (<= c (- an i0))) (and (< an i0) (>= bn j0) (<= c (- bn j0))) (and (< an i0) (< bn j0) (= c 0))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2005.ICALP_PolyRank/poly2.sl b/benchmarks/LIA/2005.ICALP_PolyRank/poly2.sl index a55449b..1744822 100644 --- a/benchmarks/LIA/2005.ICALP_PolyRank/poly2.sl +++ b/benchmarks/LIA/2005.ICALP_PolyRank/poly2.sl @@ -2,32 +2,14 @@ (synth-inv inv_fun ((c Int) (x Int) (y Int) (x0 Int) (y0 Int))) -(declare-primed-var c Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var x0 Int) -(declare-primed-var y0 Int) - (define-fun pre_fun ((c Int) (x Int) (y Int) (x0 Int) (y0 Int)) Bool - (and (= c 0) (= x x0) (= y y0))) - -(define-fun trans_fun ((c Int) (x Int) (y Int) (x0 Int) (y0 Int) - (c! Int) (x! Int) (y! Int) (x0! Int) (y0! Int)) Bool - (and (= x0! x0) (= y0! y0) - (or (and (< x y) - (= c! c) (= x! x) (= y! y)) - (and (>= x y) - (= c! (+ c 1)) (<= x! (- x 1)) (= y! y)) - (and (>= x y) - (= c! (+ c 1)) (>= y! (+ y 1)) (= x! x))) - )) - + (and (= c 0) (= x x0) (= y y0))) +(define-fun trans_fun ((c Int) (x Int) (y Int) (x0 Int) (y0 Int) (c! Int) (x! Int) (y! Int) (x0! Int) (y0! Int)) Bool + (and (= x0! x0) (= y0! y0) (or (and (< x y) (= c! c) (= x! x) (= y! y)) (and (>= x y) (= c! (+ c 1)) (<= x! (- x 1)) (= y! y)) (and (>= x y) (= c! (+ c 1)) (>= y! (+ y 1)) (= x! x))))) (define-fun post_fun ((c Int) (x Int) (y Int) (x0 Int) (y0 Int)) Bool - (=> (>= x y) - (ite (>= x0 y0) - (<= c (- x0 y0)) - (= c 0)))) + (=> (>= x y) (ite (>= x0 y0) (<= c (- x0 y0)) (= c 0)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2005.ICALP_PolyRank/poly9.sl b/benchmarks/LIA/2005.ICALP_PolyRank/poly9.sl index dca1496..a2e785c 100644 --- a/benchmarks/LIA/2005.ICALP_PolyRank/poly9.sl +++ b/benchmarks/LIA/2005.ICALP_PolyRank/poly9.sl @@ -2,30 +2,14 @@ (synth-inv inv_fun ((c Int) (y1 Int) (y2 Int) (y1i Int) (y2i Int))) -(declare-primed-var c Int) -(declare-primed-var y1 Int) -(declare-primed-var y2 Int) -(declare-primed-var y1i Int) -(declare-primed-var y2i Int) - (define-fun pre_fun ((c Int) (y1 Int) (y2 Int) (y1i Int) (y2i Int)) Bool - (and (= c 0) (>= y2 1) (>= y1 1) (= y1 y1i) (= y2 y2i))) - -(define-fun trans_fun ((c Int) (y1 Int) (y2 Int) (y1i Int) (y2i Int) - (c! Int) (y1! Int) (y2! Int) (y1i! Int) (y2i! Int)) Bool - (and (= y1i! y1i) (= y2i! y2i) - (or (and (= y1 y2) - (= c! c) (= y1! y1) (= y2! y2)) - (and (>= y1 (+ y2 1)) - (= c! (+ c 1)) (= y1! (- y1 y2)) (= y2! y2)) - (and (>= y2 (+ y1 1)) - (= c! (+ c 1)) (= y2! (- y2 y1)) (= y1! y1)) - ))) - + (and (= c 0) (>= y2 1) (>= y1 1) (= y1 y1i) (= y2 y2i))) +(define-fun trans_fun ((c Int) (y1 Int) (y2 Int) (y1i Int) (y2i Int) (c! Int) (y1! Int) (y2! Int) (y1i! Int) (y2i! Int)) Bool + (and (= y1i! y1i) (= y2i! y2i) (or (and (= y1 y2) (= c! c) (= y1! y1) (= y2! y2)) (and (>= y1 (+ y2 1)) (= c! (+ c 1)) (= y1! (- y1 y2)) (= y2! y2)) (and (>= y2 (+ y1 1)) (= c! (+ c 1)) (= y2! (- y2 y1)) (= y1! y1))))) (define-fun post_fun ((c Int) (y1 Int) (y2 Int) (y1i Int) (y2i Int)) Bool - (=> (not (= y1 y2)) - (<= c (- (+ y1i y2i) 2)))) + (=> (not (= y1 y2)) (<= c (- (+ y1i y2i) 2)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2013.OOPSLA_Hola/add.sl b/benchmarks/LIA/2013.OOPSLA_Hola/add.sl index e56db39..9e4bc63 100644 --- a/benchmarks/LIA/2013.OOPSLA_Hola/add.sl +++ b/benchmarks/LIA/2013.OOPSLA_Hola/add.sl @@ -2,19 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int) (n Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var n Int) - (define-fun pre_fun ((x Int) (y Int) (n Int)) Bool - (and (>= n 0) (and (= x n) (= y 0)))) - + (and (>= n 0) (and (= x n) (= y 0)))) (define-fun trans_fun ((x Int) (y Int) (n Int) (x! Int) (y! Int) (n! Int)) Bool - (and (> x 0) (and (= n! n) (and (= y! (+ y 1)) (= x! (- x 1)))))) - + (and (> x 0) (and (= n! n) (and (= y! (+ y 1)) (= x! (- x 1)))))) (define-fun post_fun ((x Int) (y Int) (n Int)) Bool - (or (> x 0) (= n (+ x y)))) + (or (> x 0) (= n (+ x y)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2013.OOPSLA_Hola/countud.sl b/benchmarks/LIA/2013.OOPSLA_Hola/countud.sl index 2af278a..f4795f7 100644 --- a/benchmarks/LIA/2013.OOPSLA_Hola/countud.sl +++ b/benchmarks/LIA/2013.OOPSLA_Hola/countud.sl @@ -2,19 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int) (n Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var n Int) - (define-fun pre_fun ((x Int) (y Int) (n Int)) Bool - (and (>= n 0) (and (= x n) (= y 0)))) - + (and (>= n 0) (and (= x n) (= y 0)))) (define-fun trans_fun ((x Int) (y Int) (n Int) (x! Int) (y! Int) (n! Int)) Bool - (and (> x 0) (and (= n! n) (and (= y! (+ y 1)) (= x! (- x 1)))))) - + (and (> x 0) (and (= n! n) (and (= y! (+ y 1)) (= x! (- x 1)))))) (define-fun post_fun ((x Int) (y Int) (n Int)) Bool - (or (> x 0) (= y n))) + (or (> x 0) (= y n))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2013.OOPSLA_Hola/hola.05.sl b/benchmarks/LIA/2013.OOPSLA_Hola/hola.05.sl index e130a0a..5afb6ea 100644 --- a/benchmarks/LIA/2013.OOPSLA_Hola/hola.05.sl +++ b/benchmarks/LIA/2013.OOPSLA_Hola/hola.05.sl @@ -2,23 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int) (i Int) (j Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var i Int) -(declare-primed-var j Int) - (define-fun pre_fun ((x Int) (y Int) (i Int) (j Int)) Bool - (and (= j 0) (and (= i 0) (and (= x 0) (= y 0))))) - -(define-fun trans_fun ((x Int) (y Int) (i Int) (j Int) - (x! Int) (y! Int) (i! Int) (j! Int)) Bool - (and (= x! (+ x 1)) (and (= y! (+ y 1)) (and (= i! (+ i (+ x 1))) - (or (= j! (+ j (+ y 1))) - (= j! (+ j (+ y 2)))))))) - + (and (= j 0) (and (= i 0) (and (= x 0) (= y 0))))) +(define-fun trans_fun ((x Int) (y Int) (i Int) (j Int) (x! Int) (y! Int) (i! Int) (j! Int)) Bool + (and (= x! (+ x 1)) (and (= y! (+ y 1)) (and (= i! (+ i (+ x 1))) (or (= j! (+ j (+ y 1))) (= j! (+ j (+ y 2)))))))) (define-fun post_fun ((x Int) (y Int) (i Int) (j Int)) Bool - (>= j i)) + (>= j i)) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2013.OOPSLA_Hola/hola.07.sl b/benchmarks/LIA/2013.OOPSLA_Hola/hola.07.sl index c06b1a5..8fbb75d 100644 --- a/benchmarks/LIA/2013.OOPSLA_Hola/hola.07.sl +++ b/benchmarks/LIA/2013.OOPSLA_Hola/hola.07.sl @@ -1,27 +1,15 @@ -; From "Path Invariants" PLDI 07 by Beyer et al. - (set-logic LIA) (synth-inv inv_fun ((x Int) (y Int) (i Int) (n Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var i Int) -(declare-primed-var n Int) - (define-fun pre_fun ((x Int) (y Int) (i Int) (n Int)) Bool - (and (>= n 0) (and (= i 0) (and (= x 0) (= y 0))))) - -(define-fun trans_fun ((x Int) (y Int) (i Int) (n Int) - (x! Int) (y! Int) (i! Int) (n! Int)) Bool - (and (= n! n) (and (< i n) - (and (= i! (+ i 1)) - (or (and (= x! (+ x 1)) (= y! (+ y 2))) - (and (= x! (+ x 2)) (= y! (+ y 1)))))))) - + (and (>= n 0) (and (= i 0) (and (= x 0) (= y 0))))) +(define-fun trans_fun ((x Int) (y Int) (i Int) (n Int) (x! Int) (y! Int) (i! Int) (n! Int)) Bool + (and (= n! n) (and (< i n) (and (= i! (+ i 1)) (or (and (= x! (+ x 1)) (= y! (+ y 2))) (and (= x! (+ x 2)) (= y! (+ y 1)))))))) (define-fun post_fun ((x Int) (y Int) (i Int) (n Int)) Bool - (or (< i n) (= (* 3 n) (+ x y)))) + (or (< i n) (= (* 3 n) (+ x y)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2013.OOPSLA_Hola/hola.20.sl b/benchmarks/LIA/2013.OOPSLA_Hola/hola.20.sl index 98e5c7e..ff98c10 100644 --- a/benchmarks/LIA/2013.OOPSLA_Hola/hola.20.sl +++ b/benchmarks/LIA/2013.OOPSLA_Hola/hola.20.sl @@ -2,29 +2,14 @@ (synth-inv inv_fun ((i Int) (j Int) (k Int) (m Int) (n Int) (x Int) (y Int))) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var k Int) -(declare-primed-var m Int) -(declare-primed-var n Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - (define-fun pre_fun ((i Int) (j Int) (k Int) (m Int) (n Int) (x Int) (y Int)) Bool - (and (= k (+ x y)) (and (= m 0) (= j 0)))) - -(define-fun trans_fun ((i Int) (j Int) (k Int) (m Int) (n Int) (x Int) (y Int) - (i! Int) (j! Int) (k! Int) (m! Int) (n! Int) (x! Int) (y! Int)) Bool - (and (< j n) (and (= i! i) (and (= k! k) (and (= n! n) - (and (= j! (+ j 1)) - (and (or (= m! m) (= m! j)) - (or (and (= j i) (and (= x! (+ x 1)) (= y! (- y 1)))) - (and (not (= j i)) (and (= x! (- x 1)) (= y! (+ y 1)))))))))))) - + (and (= k (+ x y)) (and (= m 0) (= j 0)))) +(define-fun trans_fun ((i Int) (j Int) (k Int) (m Int) (n Int) (x Int) (y Int) (i! Int) (j! Int) (k! Int) (m! Int) (n! Int) (x! Int) (y! Int)) Bool + (and (< j n) (and (= i! i) (and (= k! k) (and (= n! n) (and (= j! (+ j 1)) (and (or (= m! m) (= m! j)) (or (and (= j i) (and (= x! (+ x 1)) (= y! (- y 1)))) (and (not (= j i)) (and (= x! (- x 1)) (= y! (+ y 1)))))))))))) (define-fun post_fun ((i Int) (j Int) (k Int) (m Int) (n Int) (x Int) (y Int)) Bool - (and (= k (+ x y)) - (or (not (> n 0)) (and (<= 0 m) (< m n))))) + (and (= k (+ x y)) (or (not (> n 0)) (and (<= 0 m) (< m n))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2013.OOPSLA_Hola/hola.41-fixed.sl b/benchmarks/LIA/2013.OOPSLA_Hola/hola.41-fixed.sl index 2a4fa95..efe1039 100644 --- a/benchmarks/LIA/2013.OOPSLA_Hola/hola.41-fixed.sl +++ b/benchmarks/LIA/2013.OOPSLA_Hola/hola.41-fixed.sl @@ -1,26 +1,15 @@ -; Adapted from "Automated Error Diagnosis Using Abductive Inference" by Dillig et al. - (set-logic LIA) (synth-inv inv_fun ((i Int) (j Int) (k Int) (n Int))) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var k Int) -(declare-primed-var n Int) - (define-fun pre_fun ((i Int) (j Int) (k Int) (n Int)) Bool - (and (or (= k 1) (>= k 0)) - (and (>= n 0) (and (= i 0) (= j 0))))) - -(define-fun trans_fun ((i Int) (j Int) (k Int) (n Int) - (i! Int) (j! Int) (k! Int) (n! Int)) Bool - (and (<= i n) (and (= n! n) (and (= k! k) - (and (= i! (+ i 1)) (= j! (+ j i!))))))) - + (and (or (= k 1) (>= k 0)) (and (>= n 0) (and (= i 0) (= j 0))))) +(define-fun trans_fun ((i Int) (j Int) (k Int) (n Int) (i! Int) (j! Int) (k! Int) (n! Int)) Bool + (and (<= i n) (and (= n! n) (and (= k! k) (and (= i! (+ i 1)) (= j! (+ j i!))))))) (define-fun post_fun ((i Int) (j Int) (k Int) (n Int)) Bool - (or (<= i n) (> (+ i (+ j k)) (* 2 n)))) + (or (<= i n) (> (+ i (+ j k)) (* 2 n)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2013.OOPSLA_Hola/hola.41.sl b/benchmarks/LIA/2013.OOPSLA_Hola/hola.41.sl index 01422e3..a889042 100644 --- a/benchmarks/LIA/2013.OOPSLA_Hola/hola.41.sl +++ b/benchmarks/LIA/2013.OOPSLA_Hola/hola.41.sl @@ -1,26 +1,15 @@ -; Adapted from "Automated Error Diagnosis Using Abductive Inference" by Dillig et al. - (set-logic LIA) (synth-inv inv_fun ((i Int) (j Int) (k Int) (n Int))) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var k Int) -(declare-primed-var n Int) - (define-fun pre_fun ((i Int) (j Int) (k Int) (n Int)) Bool - (and (or (= k 1) (>= k 0)) - (and (>= n 0) (and (= i 0) (= j 0))))) - -(define-fun trans_fun ((i Int) (j Int) (k Int) (n Int) - (i! Int) (j! Int) (k! Int) (n! Int)) Bool - (and (<= i n) (and (= n! n) (and (= k! k) - (and (= i! (+ i 1)) (= j! (+ j i))))))) - + (and (or (= k 1) (>= k 0)) (and (>= n 0) (and (= i 0) (= j 0))))) +(define-fun trans_fun ((i Int) (j Int) (k Int) (n Int) (i! Int) (j! Int) (k! Int) (n! Int)) Bool + (and (<= i n) (and (= n! n) (and (= k! k) (and (= i! (+ i 1)) (= j! (+ j i))))))) (define-fun post_fun ((i Int) (j Int) (k Int) (n Int)) Bool - (or (<= i n) (> (+ i (+ j k)) (* 2 n)))) + (or (<= i n) (> (+ i (+ j k)) (* 2 n)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2013.OOPSLA_Hola/hola.44.sl b/benchmarks/LIA/2013.OOPSLA_Hola/hola.44.sl index 803525c..a7d957f 100644 --- a/benchmarks/LIA/2013.OOPSLA_Hola/hola.44.sl +++ b/benchmarks/LIA/2013.OOPSLA_Hola/hola.44.sl @@ -1,25 +1,15 @@ -; Adapted from ex20 from NECLA Static Analysis Benchmarks - (set-logic LIA) (synth-inv inv_fun ((x Int) (y Int) (i Int) (j Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var i Int) -(declare-primed-var j Int) - (define-fun pre_fun ((x Int) (y Int) (i Int) (j Int)) Bool - (and (= j 0) (and (= i 0) (or (= y 1) (= y 2))))) - -(define-fun trans_fun ((x Int) (y Int) (i Int) (j Int) - (x! Int) (y! Int) (i! Int) (j! Int)) Bool - (and (<= i x) (and (= x! x) (and (= y! y) - (and (= i! (+ i 1)) (= j! (+ j y))))))) - + (and (= j 0) (and (= i 0) (or (= y 1) (= y 2))))) +(define-fun trans_fun ((x Int) (y Int) (i Int) (j Int) (x! Int) (y! Int) (i! Int) (j! Int)) Bool + (and (<= i x) (and (= x! x) (and (= y! y) (and (= i! (+ i 1)) (= j! (+ j y))))))) (define-fun post_fun ((x Int) (y Int) (i Int) (j Int)) Bool - (or (<= i x) (or (not (= y 1)) (= i j)))) + (or (<= i x) (or (not (= y 1)) (= i j)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2015.FMCAD_Acceleration/bk-nat.sl b/benchmarks/LIA/2015.FMCAD_Acceleration/bk-nat.sl index c45812f..bef2c3c 100644 --- a/benchmarks/LIA/2015.FMCAD_Acceleration/bk-nat.sl +++ b/benchmarks/LIA/2015.FMCAD_Acceleration/bk-nat.sl @@ -1,47 +1,15 @@ -; From: http://www.cmi.ac.in/~madhukar/fmcad15/benchmarks/dagger/bk-nat.c - (set-logic LIA) (synth-inv inv_fun ((invalid Int) (unowned Int) (nonexclusive Int) (exclusive Int) (RETURN Int))) -(declare-primed-var invalid Int) -(declare-primed-var unowned Int) -(declare-primed-var nonexclusive Int) -(declare-primed-var exclusive Int) -(declare-primed-var RETURN Int) - (define-fun pre_fun ((invalid Int) (unowned Int) (nonexclusive Int) (exclusive Int) (RETURN Int)) Bool - (and (ite (>= invalid 1) (= RETURN 0) (= RETURN 1)) - (ite (= unowned 0) (= RETURN 0) (= RETURN 1)) - (ite (= nonexclusive 0) (= RETURN 0) (= RETURN 1)) - (ite (= exclusive 0) (= RETURN 0) (= RETURN 1)))) - -(define-fun trans_fun ((invalid Int) (unowned Int) (nonexclusive Int) (exclusive Int) (RETURN Int) - (invalid! Int) (unowned! Int) (nonexclusive! Int) (exclusive! Int) (RETURN! Int)) Bool - (or (and (ite (not (>= invalid 1)) (= RETURN! 1) (= RETURN! RETURN)) - (= nonexclusive! (+ nonexclusive exclusive)) - (= exclusive! 0) - (= invalid! (- invalid 1)) - (= unowned! (+ unowned 1))) - (and (ite (not (>= (+ nonexclusive unowned) 1)) (= RETURN! 1) (= RETURN! RETURN)) - (= nonexclusive! 0) - (= exclusive! (+ exclusive 1)) - (= invalid! (- (+ invalid unowned nonexclusive) 1)) - (= unowned! 0)) - (and (ite (not (>= invalid 1)) (= RETURN! 1) (= RETURN! RETURN)) - (= nonexclusive! 0) - (= exclusive! 1) - (= invalid! (- (+ invalid unowned! exclusive! nonexclusive!) 1)) - (= unowned! 0)))) - + (and (ite (>= invalid 1) (= RETURN 0) (= RETURN 1)) (ite (= unowned 0) (= RETURN 0) (= RETURN 1)) (ite (= nonexclusive 0) (= RETURN 0) (= RETURN 1)) (ite (= exclusive 0) (= RETURN 0) (= RETURN 1)))) +(define-fun trans_fun ((invalid Int) (unowned Int) (nonexclusive Int) (exclusive Int) (RETURN Int) (invalid! Int) (unowned! Int) (nonexclusive! Int) (exclusive! Int) (RETURN! Int)) Bool + (or (and (ite (not (>= invalid 1)) (= RETURN! 1) (= RETURN! RETURN)) (= nonexclusive! (+ nonexclusive exclusive)) (= exclusive! 0) (= invalid! (- invalid 1)) (= unowned! (+ unowned 1))) (and (ite (not (>= (+ nonexclusive unowned) 1)) (= RETURN! 1) (= RETURN! RETURN)) (= nonexclusive! 0) (= exclusive! (+ exclusive 1)) (= invalid! (- (+ invalid unowned nonexclusive) 1)) (= unowned! 0)) (and (ite (not (>= invalid 1)) (= RETURN! 1) (= RETURN! RETURN)) (= nonexclusive! 0) (= exclusive! 1) (= invalid! (- (+ invalid unowned! exclusive! nonexclusive!) 1)) (= unowned! 0)))) (define-fun post_fun ((invalid Int) (unowned Int) (nonexclusive Int) (exclusive Int) (RETURN Int)) Bool - (=> (= RETURN 0) - (and (>= exclusive 0) - (>= nonexclusive 0) - (>= unowned 0) - (>= invalid 0 ) - (>= (+ invalid unowned exclusive) 1)))) + (=> (= RETURN 0) (and (>= exclusive 0) (>= nonexclusive 0) (>= unowned 0) (>= invalid 0) (>= (+ invalid unowned exclusive) 1)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2015.FMCAD_Acceleration/bkley.sl b/benchmarks/LIA/2015.FMCAD_Acceleration/bkley.sl index d0713c8..9b51471 100644 --- a/benchmarks/LIA/2015.FMCAD_Acceleration/bkley.sl +++ b/benchmarks/LIA/2015.FMCAD_Acceleration/bkley.sl @@ -1,45 +1,15 @@ -; From: http://www.cmi.ac.in/~madhukar/fmcad15/benchmarks/dagger/bkley.c - (set-logic LIA) (synth-inv inv_fun ((invalid Int) (unowned Int) (nonexclusive Int) (exclusive Int) (RETURN Int))) -(declare-primed-var invalid Int) -(declare-primed-var unowned Int) -(declare-primed-var nonexclusive Int) -(declare-primed-var exclusive Int) -(declare-primed-var RETURN Int) - (define-fun pre_fun ((invalid Int) (unowned Int) (nonexclusive Int) (exclusive Int) (RETURN Int)) Bool - (and (ite (>= invalid 1) (= RETURN 0) (= RETURN 1)) - (ite (= unowned 0) (= RETURN 0) (= RETURN 1)) - (ite (= nonexclusive 0) (= RETURN 0) (= RETURN 1)) - (ite (= exclusive 0) (= RETURN 0) (= RETURN 1)))) - -(define-fun trans_fun ((invalid Int) (unowned Int) (nonexclusive Int) (exclusive Int) (RETURN Int) - (invalid! Int) (unowned! Int) (nonexclusive! Int) (exclusive! Int) (RETURN! Int)) Bool - (or (and (ite (not (>= invalid 1)) (= RETURN! 1) (= RETURN! RETURN)) - (= nonexclusive! (+ nonexclusive exclusive)) - (= exclusive! 0) - (= invalid! (- invalid 1)) - (= unowned! (+ unowned 1))) - (and (ite (not (>= (+ nonexclusive unowned) 1)) (= RETURN! 1) (= RETURN! RETURN)) - (= nonexclusive! 0) - (= exclusive! (+ exclusive 1)) - (= invalid! (- (+ invalid unowned nonexclusive) 1)) - (= unowned! 0)) - (and (ite (not (>= invalid 1)) (= RETURN! 1) (= RETURN! RETURN)) - (= nonexclusive! 0) - (= exclusive! 1) - (= invalid! (- (+ invalid unowned! exclusive! nonexclusive!) 1)) - (= unowned! 0)))) - + (and (ite (>= invalid 1) (= RETURN 0) (= RETURN 1)) (ite (= unowned 0) (= RETURN 0) (= RETURN 1)) (ite (= nonexclusive 0) (= RETURN 0) (= RETURN 1)) (ite (= exclusive 0) (= RETURN 0) (= RETURN 1)))) +(define-fun trans_fun ((invalid Int) (unowned Int) (nonexclusive Int) (exclusive Int) (RETURN Int) (invalid! Int) (unowned! Int) (nonexclusive! Int) (exclusive! Int) (RETURN! Int)) Bool + (or (and (ite (not (>= invalid 1)) (= RETURN! 1) (= RETURN! RETURN)) (= nonexclusive! (+ nonexclusive exclusive)) (= exclusive! 0) (= invalid! (- invalid 1)) (= unowned! (+ unowned 1))) (and (ite (not (>= (+ nonexclusive unowned) 1)) (= RETURN! 1) (= RETURN! RETURN)) (= nonexclusive! 0) (= exclusive! (+ exclusive 1)) (= invalid! (- (+ invalid unowned nonexclusive) 1)) (= unowned! 0)) (and (ite (not (>= invalid 1)) (= RETURN! 1) (= RETURN! RETURN)) (= nonexclusive! 0) (= exclusive! 1) (= invalid! (- (+ invalid unowned! exclusive! nonexclusive!) 1)) (= unowned! 0)))) (define-fun post_fun ((invalid Int) (unowned Int) (nonexclusive Int) (exclusive Int) (RETURN Int)) Bool - (=> (= RETURN 0) - (and (>= exclusive 0) - (>= unowned 0) - (>= (+ invalid unowned exclusive nonexclusive) 1)))) + (=> (= RETURN 0) (and (>= exclusive 0) (>= unowned 0) (>= (+ invalid unowned exclusive nonexclusive) 1)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2015.FMCAD_Acceleration/cars.sl b/benchmarks/LIA/2015.FMCAD_Acceleration/cars.sl index b36441c..9ef1462 100644 --- a/benchmarks/LIA/2015.FMCAD_Acceleration/cars.sl +++ b/benchmarks/LIA/2015.FMCAD_Acceleration/cars.sl @@ -1,69 +1,15 @@ -; From: http://www.cmi.ac.in/~madhukar/fmcad15/benchmarks/dagger/bkley.c - (set-logic LIA) (synth-inv inv_fun ((x1 Int) (x2 Int) (x3 Int) (v1 Int) (v2 Int) (v3 Int) (t Int) (RETURN Int))) -(declare-primed-var x1 Int) -(declare-primed-var x2 Int) -(declare-primed-var x3 Int) -(declare-primed-var v1 Int) -(declare-primed-var v2 Int) -(declare-primed-var v3 Int) -(declare-primed-var t Int) -(declare-primed-var RETURN Int) - (define-fun pre_fun ((x1 Int) (x2 Int) (x3 Int) (v1 Int) (v2 Int) (v3 Int) (t Int) (RETURN Int)) Bool - (and (= RETURN 0) - (= x1 100) - (= x2 75) - (= x3 (- 0 50)) - (>= v3 0) - (<= v1 5) - (>= (- v1 v3) 0) - (= (- (- (* 2 v2) v1) v3) 0) - (= t 0) - (>= (+ v2 5) 0) - (<= v2 5))) - -(define-fun trans_fun ((x1 Int) (x2 Int) (x3 Int) (v1 Int) (v2 Int) (v3 Int) (t Int) (RETURN Int) - (x1! Int) (x2! Int) (x3! Int) (v1! Int) (v2! Int) (v3! Int) (t! Int) (RETURN! Int)) Bool - (and (= RETURN 0) - (or (and (not (>= (+ v2 5) 0)) (= RETURN! 1)) - (and (>= (+ v2 5) 0) (= RETURN! RETURN))) - (or (and (not (<= v2 5)) (= RETURN! 1)) - (and (<= v2 5) (= RETURN! RETURN))) - (or (and (or (and (not (>= (- (- (* 2 x2) x1) x3) 0)) (= RETURN! 1)) - (and (>= (- (- (* 2 x2) x1) x3) 0) (= RETURN! RETURN))) - (= x1! (+ x1 v1)) - (= x3! (+ x3 v3)) - (= x2! (+ x2 v2)) - (= v2! (- v2 1)) - (= v1! v1) - (= v3! v3) - (= t! (+ t 1))) - (and (or (and (not (<= (- (- (* 2 x2) x1) x3) 0)) (= RETURN! 1)) - (and (<= (- (- (* 2 x2) x1) x3) 0) (= RETURN! RETURN))) - (= x1! (+ x1 v1)) - (= x3! (+ x3 v3)) - (= x2! (+ x2 v2)) - (= v2! (+ v2 1)) - (= v1! v1) - (= v3! v3) - (= t! (+ t 1)))))) - + (and (= RETURN 0) (= x1 100) (= x2 75) (= x3 (- 0 50)) (>= v3 0) (<= v1 5) (>= (- v1 v3) 0) (= (- (- (* 2 v2) v1) v3) 0) (= t 0) (>= (+ v2 5) 0) (<= v2 5))) +(define-fun trans_fun ((x1 Int) (x2 Int) (x3 Int) (v1 Int) (v2 Int) (v3 Int) (t Int) (RETURN Int) (x1! Int) (x2! Int) (x3! Int) (v1! Int) (v2! Int) (v3! Int) (t! Int) (RETURN! Int)) Bool + (and (= RETURN 0) (or (and (not (>= (+ v2 5) 0)) (= RETURN! 1)) (and (>= (+ v2 5) 0) (= RETURN! RETURN))) (or (and (not (<= v2 5)) (= RETURN! 1)) (and (<= v2 5) (= RETURN! RETURN))) (or (and (or (and (not (>= (- (- (* 2 x2) x1) x3) 0)) (= RETURN! 1)) (and (>= (- (- (* 2 x2) x1) x3) 0) (= RETURN! RETURN))) (= x1! (+ x1 v1)) (= x3! (+ x3 v3)) (= x2! (+ x2 v2)) (= v2! (- v2 1)) (= v1! v1) (= v3! v3) (= t! (+ t 1))) (and (or (and (not (<= (- (- (* 2 x2) x1) x3) 0)) (= RETURN! 1)) (and (<= (- (- (* 2 x2) x1) x3) 0) (= RETURN! RETURN))) (= x1! (+ x1 v1)) (= x3! (+ x3 v3)) (= x2! (+ x2 v2)) (= v2! (+ v2 1)) (= v1! v1) (= v3! v3) (= t! (+ t 1)))))) (define-fun post_fun ((x1 Int) (x2 Int) (x3 Int) (v1 Int) (v2 Int) (v3 Int) (t Int) (RETURN Int)) Bool - (=> (= RETURN 0) - (and (<= v1 5) - (>= (+ (* 2 v2) (* 2 t)) (+ v1 v3)) - (>= (+ (* 5 t) 75) x2) - (<= v2 6) - (>= v3 0) - (>= (+ v2 6) 0) - (>= (+ x2 (* 5 t)) 75) - (>= (- (+ v1 v3 (* 2 t)) (* 2 v2)) 0) - (>= (- v1 v3) 0)))) + (=> (= RETURN 0) (and (<= v1 5) (>= (+ (* 2 v2) (* 2 t)) (+ v1 v3)) (>= (+ (* 5 t) 75) x2) (<= v2 6) (>= v3 0) (>= (+ v2 6) 0) (>= (+ x2 (* 5 t)) 75) (>= (- (+ v1 v3 (* 2 t)) (* 2 v2)) 0) (>= (- v1 v3) 0)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2015.FMCAD_Acceleration/ex1.sl b/benchmarks/LIA/2015.FMCAD_Acceleration/ex1.sl index 466f2a6..54c71ba 100644 --- a/benchmarks/LIA/2015.FMCAD_Acceleration/ex1.sl +++ b/benchmarks/LIA/2015.FMCAD_Acceleration/ex1.sl @@ -1,28 +1,15 @@ -; From: http://www.cmi.ac.in/~madhukar/fmcad15/benchmarks/dagger/ex1.c - (set-logic LIA) (synth-inv inv_fun ((x Int) (y Int) (xa Int) (ya Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var xa Int) -(declare-primed-var ya Int) - (define-fun pre_fun ((x Int) (y Int) (xa Int) (ya Int)) Bool - (and (= xa 0) (= ya 0))) - -(define-fun trans_fun ((x Int) (y Int) (xa Int) (ya Int) - (x! Int) (y! Int) (xa! Int) (ya! Int)) Bool - (and (= x! (+ 1 (+ xa (* 2 ya)))) - (or (= y! (+ (- ya (* 2 xa)) x!)) - (= y! (- (- ya (* 2 xa)) x!))) - (= xa! (- x! (* 2 y!))) - (= ya! (+ (* 2 x!) y!)))) - + (and (= xa 0) (= ya 0))) +(define-fun trans_fun ((x Int) (y Int) (xa Int) (ya Int) (x! Int) (y! Int) (xa! Int) (ya! Int)) Bool + (and (= x! (+ 1 (+ xa (* 2 ya)))) (or (= y! (+ (- ya (* 2 xa)) x!)) (= y! (- (- ya (* 2 xa)) x!))) (= xa! (- x! (* 2 y!))) (= ya! (+ (* 2 x!) y!)))) (define-fun post_fun ((x Int) (y Int) (xa Int) (ya Int)) Bool - (>= (+ xa (* 2 ya)) 0)) + (>= (+ xa (* 2 ya)) 0)) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2015.FMCAD_Acceleration/fig2.sl b/benchmarks/LIA/2015.FMCAD_Acceleration/fig2.sl index caff19d..8116328 100644 --- a/benchmarks/LIA/2015.FMCAD_Acceleration/fig2.sl +++ b/benchmarks/LIA/2015.FMCAD_Acceleration/fig2.sl @@ -1,28 +1,15 @@ -; From: http://www.cmi.ac.in/~madhukar/fmcad15/benchmarks/dagger/fig2.c - (set-logic LIA) (synth-inv inv_fun ((x Int) (y Int) (z Int) (w Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var z Int) -(declare-primed-var w Int) - (define-fun pre_fun ((x Int) (y Int) (z Int) (w Int)) Bool - (and (= x 0) (= y 0) (= z 0) (= w 0))) - -(define-fun trans_fun ((x Int) (y Int) (z Int) (w Int) - (x! Int) (y! Int) (z! Int) (w! Int)) Bool - (or (and (= x! (+ x 1)) (= y! (+ y 2)) (= z! z) (= w! w)) - (and (>= x 4) - (= x! (+ x 1)) (= y! (+ y 3)) (= z! (+ z 10)) (= w! (+ w 10))) - (and (>= x z) (> w y) - (= x! (- 0 x)) (= y! (- 0 y)) (= z! z) (= w! w)))) - + (and (= x 0) (= y 0) (= z 0) (= w 0))) +(define-fun trans_fun ((x Int) (y Int) (z Int) (w Int) (x! Int) (y! Int) (z! Int) (w! Int)) Bool + (or (and (= x! (+ x 1)) (= y! (+ y 2)) (= z! z) (= w! w)) (and (>= x 4) (= x! (+ x 1)) (= y! (+ y 3)) (= z! (+ z 10)) (= w! (+ w 10))) (and (>= x z) (> w y) (= x! (- 0 x)) (= y! (- 0 y)) (= z! z) (= w! w)))) (define-fun post_fun ((x Int) (y Int) (z Int) (w Int)) Bool - (>= (* 3 x) y)) + (>= (* 3 x) y)) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/anfp-new.sl b/benchmarks/LIA/2016.SyGuS-Comp/anfp-new.sl index 457cb52..805148e 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/anfp-new.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/anfp-new.sl @@ -2,19 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) - (define-fun pre_fun ((x Int) (y Int)) Bool -(and (= x 1) -(= y 0))) - -(define-fun trans_fun ((x Int) (y Int) (x! Int) (y! Int) ) Bool -(and (and (< y 100000) (= x! (+ x y))) (= y! (+ y 1)))) - + (and (= x 1) (= y 0))) +(define-fun trans_fun ((x Int) (y Int) (x! Int) (y! Int)) Bool + (and (and (< y 100000) (= x! (+ x y))) (= y! (+ y 1)))) (define-fun post_fun ((x Int) (y Int)) Bool -(not (and (>= y 100000) (< x y)))) + (not (and (>= y 100000) (< x y)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/anfp.sl b/benchmarks/LIA/2016.SyGuS-Comp/anfp.sl index a9c80f2..8d9a20f 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/anfp.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/anfp.sl @@ -2,19 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) - (define-fun pre_fun ((x Int) (y Int)) Bool -(and (= x 1) -(= y 0))) - -(define-fun trans_fun ((x Int) (y Int) (x! Int) (y! Int) ) Bool -(and (and (< y 1000) (= x! (+ x y))) (= y! (+ y 1)))) - + (and (= x 1) (= y 0))) +(define-fun trans_fun ((x Int) (y Int) (x! Int) (y! Int)) Bool + (and (and (< y 1000) (= x! (+ x y))) (= y! (+ y 1)))) (define-fun post_fun ((x Int) (y Int)) Bool -(not (and (>= y 1000) (< x y)))) + (not (and (>= y 1000) (< x y)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/array-new.sl b/benchmarks/LIA/2016.SyGuS-Comp/array-new.sl index 5928f0d..34cda84 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/array-new.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/array-new.sl @@ -2,31 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int) (z Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var z Int) - (define-fun pre_fun ((x Int) (y Int) (z Int)) Bool -(= x 0)) - + (= x 0)) (define-fun trans_fun ((x Int) (y Int) (z Int) (x! Int) (y! Int) (z! Int)) Bool -(or -(and (= x! (+ x 1)) -(and (= y! z!) -(and (<= z! y) -(< x 500)))) - -(and (= x! (+ x 1)) -(and (= y! y) -(and (> z! y) -(< x 500)))) -)) - - - + (or (and (= x! (+ x 1)) (and (= y! z!) (and (<= z! y) (< x 500)))) (and (= x! (+ x 1)) (and (= y! y) (and (> z! y) (< x 500)))))) (define-fun post_fun ((x Int) (y Int) (z Int)) Bool -(not (and (>= x 500) (< z y)))) + (not (and (>= x 500) (< z y)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/array.sl b/benchmarks/LIA/2016.SyGuS-Comp/array.sl index 974e4e7..b1c26aa 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/array.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/array.sl @@ -2,31 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int) (z Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var z Int) - (define-fun pre_fun ((x Int) (y Int) (z Int)) Bool -(= x 0)) - + (= x 0)) (define-fun trans_fun ((x Int) (y Int) (z Int) (x! Int) (y! Int) (z! Int)) Bool -(or -(and (= x! (+ x 1)) -(and (= y! z!) -(and (<= z! y) -(< x 5)))) - -(and (= x! (+ x 1)) -(and (= y! y) -(and (> z! y) -(< x 5)))) -)) - - - + (or (and (= x! (+ x 1)) (and (= y! z!) (and (<= z! y) (< x 5)))) (and (= x! (+ x 1)) (and (= y! y) (and (> z! y) (< x 5)))))) (define-fun post_fun ((x Int) (y Int) (z Int)) Bool -(not (and (>= x 5) (< z y)))) + (not (and (>= x 5) (< z y)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/array_simp.sl b/benchmarks/LIA/2016.SyGuS-Comp/array_simp.sl index 675eee3..408463f 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/array_simp.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/array_simp.sl @@ -2,32 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int) (z Int) (size Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var z Int) -(declare-primed-var size Int) - (define-fun pre_fun ((x Int) (y Int) (z Int) (size Int)) Bool -(= x 0)) - + (= x 0)) (define-fun trans_fun ((x Int) (y Int) (z Int) (size Int) (x! Int) (y! Int) (z! Int) (size! Int)) Bool -(or -(and (= x! (+ x 1)) -(and (= y! z!) -(and (<= z! y) -(< x size)))) - -(and (= x! (+ x 1)) -(and (= y! y) -(and (> z! y) -(< x size)))) -)) - - - + (or (and (= x! (+ x 1)) (and (= y! z!) (and (<= z! y) (< x size)))) (and (= x! (+ x 1)) (and (= y! y) (and (> z! y) (< x size)))))) (define-fun post_fun ((x Int) (y Int) (z Int) (size Int)) Bool -(not (and (and (>= x size) (< z y)) (> size 0)))) + (not (and (and (>= x size) (< z y)) (> size 0)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/array_vars.sl b/benchmarks/LIA/2016.SyGuS-Comp/array_vars.sl index 25c35fd..d1ceb2b 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/array_vars.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/array_vars.sl @@ -2,35 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int) (z Int) (v1 Int) (v2 Int) (v3 Int) (size Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var z Int) -(declare-primed-var v1 Int) -(declare-primed-var v2 Int) -(declare-primed-var v3 Int) -(declare-primed-var size Int) - (define-fun pre_fun ((x Int) (y Int) (z Int) (v1 Int) (v2 Int) (v3 Int) (size Int)) Bool -(= x 0)) - + (= x 0)) (define-fun trans_fun ((x Int) (y Int) (z Int) (v1 Int) (v2 Int) (v3 Int) (size Int) (x! Int) (y! Int) (z! Int) (v1! Int) (v2! Int) (v3! Int) (size! Int)) Bool -(or -(and (= x! (+ x 1)) -(and (= y! z!) -(and (<= z! y) -(< x size)))) - -(and (= x! (+ x 1)) -(and (= y! y) -(and (> z! y) -(< x size)))) -)) - - - + (or (and (= x! (+ x 1)) (and (= y! z!) (and (<= z! y) (< x size)))) (and (= x! (+ x 1)) (and (= y! y) (and (> z! y) (< x size)))))) (define-fun post_fun ((x Int) (y Int) (z Int) (v1 Int) (v2 Int) (v3 Int) (size Int)) Bool -(not (and (and (>= x size) (< z y)) (> size 0)))) + (not (and (and (>= x size) (< z y)) (> size 0)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/cegar1-new.sl b/benchmarks/LIA/2016.SyGuS-Comp/cegar1-new.sl index a210b1e..6aebcfc 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/cegar1-new.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/cegar1-new.sl @@ -2,20 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) - (define-fun pre_fun ((x Int) (y Int)) Bool -(and (and (>= x 0) -(and (<= x 10) -(<= y 10))) (>= y 0))) - + (and (and (>= x 0) (and (<= x 10) (<= y 10))) (>= y 0))) (define-fun trans_fun ((x Int) (y Int) (x! Int) (y! Int)) Bool -(and (= x! (+ x 10)) (= y! (+ y 10)))) - + (and (= x! (+ x 10)) (= y! (+ y 10)))) (define-fun post_fun ((x Int) (y Int)) Bool -(not (and (= x 20) (= y 0)))) + (not (and (= x 20) (= y 0)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/cegar1.sl b/benchmarks/LIA/2016.SyGuS-Comp/cegar1.sl index 13a066f..6fb5d42 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/cegar1.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/cegar1.sl @@ -2,20 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) - (define-fun pre_fun ((x Int) (y Int)) Bool -(and (and (>= x 0) -(and (<= x 2) -(<= y 2))) (>= y 0))) - + (and (and (>= x 0) (and (<= x 2) (<= y 2))) (>= y 0))) (define-fun trans_fun ((x Int) (y Int) (x! Int) (y! Int)) Bool -(and (= x! (+ x 2)) (= y! (+ y 2)))) - + (and (= x! (+ x 2)) (= y! (+ y 2)))) (define-fun post_fun ((x Int) (y Int)) Bool -(not (and (= x 4) (= y 0)))) + (not (and (= x 4) (= y 0)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/cegar1_vars-new.sl b/benchmarks/LIA/2016.SyGuS-Comp/cegar1_vars-new.sl index 1a7f88c..9838d9f 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/cegar1_vars-new.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/cegar1_vars-new.sl @@ -2,23 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int) (z1 Int) (z2 Int) (z3 Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var z1 Int) -(declare-primed-var z2 Int) -(declare-primed-var z3 Int) - (define-fun pre_fun ((x Int) (y Int) (z1 Int) (z2 Int) (z3 Int)) Bool -(and (and (>= x 0) -(and (<= x 10) -(<= y 10))) (>= y 0))) - + (and (and (>= x 0) (and (<= x 10) (<= y 10))) (>= y 0))) (define-fun trans_fun ((x Int) (y Int) (z1 Int) (z2 Int) (z3 Int) (x! Int) (y! Int) (z1! Int) (z2! Int) (z3! Int)) Bool -(and (= x! (+ x 10)) (= y! (+ y 10)))) - + (and (= x! (+ x 10)) (= y! (+ y 10)))) (define-fun post_fun ((x Int) (y Int) (z1 Int) (z2 Int) (z3 Int)) Bool -(not (and (= x 20) (= y 0)))) + (not (and (= x 20) (= y 0)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/cegar1_vars.sl b/benchmarks/LIA/2016.SyGuS-Comp/cegar1_vars.sl index b3071e9..6d53542 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/cegar1_vars.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/cegar1_vars.sl @@ -2,23 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int) (z1 Int) (z2 Int) (z3 Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var z1 Int) -(declare-primed-var z2 Int) -(declare-primed-var z3 Int) - (define-fun pre_fun ((x Int) (y Int) (z1 Int) (z2 Int) (z3 Int)) Bool -(and (and (>= x 0) -(and (<= x 2) -(<= y 2))) (>= y 0))) - + (and (and (>= x 0) (and (<= x 2) (<= y 2))) (>= y 0))) (define-fun trans_fun ((x Int) (y Int) (z1 Int) (z2 Int) (z3 Int) (x! Int) (y! Int) (z1! Int) (z2! Int) (z3! Int)) Bool -(and (= x! (+ x 2)) (= y! (+ y 2)))) - + (and (= x! (+ x 2)) (= y! (+ y 2)))) (define-fun post_fun ((x Int) (y Int) (z1 Int) (z2 Int) (z3 Int)) Bool -(not (and (= x 4) (= y 0)))) + (not (and (= x 4) (= y 0)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/cegar2-new.sl b/benchmarks/LIA/2016.SyGuS-Comp/cegar2-new.sl index 3c54ecf..5a9f931 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/cegar2-new.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/cegar2-new.sl @@ -2,24 +2,14 @@ (synth-inv inv_fun ((x Int) (n Int) (m Int))) -(declare-primed-var x Int) -(declare-primed-var n Int) -(declare-primed-var m Int) - (define-fun pre_fun ((x Int) (n Int) (m Int)) Bool -(and (= x 1) (= m 1))) - + (and (= x 1) (= m 1))) (define-fun trans_fun ((x Int) (n Int) (m Int) (x! Int) (n! Int) (m! Int)) Bool -(or -(and (and (and (< x n) (= x! (+ x 1))) (= n! n)) (= m! m)) - -(and (and (and (< x n) (= x! (+ x 1))) (= n! n)) (= m! x)))) - - + (or (and (and (and (< x n) (= x! (+ x 1))) (= n! n)) (= m! m)) (and (and (and (< x n) (= x! (+ x 1))) (= n! n)) (= m! x)))) (define-fun post_fun ((x Int) (n Int) (m Int)) Bool -(not (and (and (>= x n) (> n 1)) -(or (<= n m) (< m 1))))) + (not (and (and (>= x n) (> n 1)) (or (<= n m) (< m 1))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/cegar2.sl b/benchmarks/LIA/2016.SyGuS-Comp/cegar2.sl index 9201318..2511583 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/cegar2.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/cegar2.sl @@ -2,24 +2,14 @@ (synth-inv inv_fun ((x Int) (n Int) (m Int))) -(declare-primed-var x Int) -(declare-primed-var n Int) -(declare-primed-var m Int) - (define-fun pre_fun ((x Int) (n Int) (m Int)) Bool -(and (= x 0) (= m 0))) - + (and (= x 0) (= m 0))) (define-fun trans_fun ((x Int) (n Int) (m Int) (x! Int) (n! Int) (m! Int)) Bool -(or -(and (and (and (< x n) (= x! (+ x 1))) (= n! n)) (= m! m)) - -(and (and (and (< x n) (= x! (+ x 1))) (= n! n)) (= m! x)))) - - + (or (and (and (and (< x n) (= x! (+ x 1))) (= n! n)) (= m! m)) (and (and (and (< x n) (= x! (+ x 1))) (= n! n)) (= m! x)))) (define-fun post_fun ((x Int) (n Int) (m Int)) Bool -(not (and (and (>= x n) (> n 0)) -(or (<= n m) (< m 0))))) + (not (and (and (>= x n) (> n 0)) (or (<= n m) (< m 0))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/cegar2_vars-new.sl b/benchmarks/LIA/2016.SyGuS-Comp/cegar2_vars-new.sl index e742f2e..1e66eda 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/cegar2_vars-new.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/cegar2_vars-new.sl @@ -2,27 +2,14 @@ (synth-inv inv_fun ((x Int) (n Int) (m Int) (z1 Int) (z2 Int) (z3 Int))) -(declare-primed-var x Int) -(declare-primed-var n Int) -(declare-primed-var m Int) -(declare-primed-var z1 Int) -(declare-primed-var z2 Int) -(declare-primed-var z3 Int) - (define-fun pre_fun ((x Int) (n Int) (m Int) (z1 Int) (z2 Int) (z3 Int)) Bool -(and (= x 1) (= m 1))) - + (and (= x 1) (= m 1))) (define-fun trans_fun ((x Int) (n Int) (m Int) (z1 Int) (z2 Int) (z3 Int) (x! Int) (n! Int) (m! Int) (z1! Int) (z2! Int) (z3! Int)) Bool -(or -(and (and (and (< x n) (= x! (+ x 1))) (= n! n)) (= m! m)) - -(and (and (and (< x n) (= x! (+ x 1))) (= n! n)) (= m! x)))) - - + (or (and (and (and (< x n) (= x! (+ x 1))) (= n! n)) (= m! m)) (and (and (and (< x n) (= x! (+ x 1))) (= n! n)) (= m! x)))) (define-fun post_fun ((x Int) (n Int) (m Int) (z1 Int) (z2 Int) (z3 Int)) Bool -(not (and (and (>= x n) (> n 1)) -(or (<= n m) (< m 1))))) + (not (and (and (>= x n) (> n 1)) (or (<= n m) (< m 1))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/cegar2_vars.sl b/benchmarks/LIA/2016.SyGuS-Comp/cegar2_vars.sl index 988fbde..b0a5093 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/cegar2_vars.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/cegar2_vars.sl @@ -2,27 +2,14 @@ (synth-inv inv_fun ((x Int) (n Int) (m Int) (z1 Int) (z2 Int) (z3 Int))) -(declare-primed-var x Int) -(declare-primed-var n Int) -(declare-primed-var m Int) -(declare-primed-var z1 Int) -(declare-primed-var z2 Int) -(declare-primed-var z3 Int) - (define-fun pre_fun ((x Int) (n Int) (m Int) (z1 Int) (z2 Int) (z3 Int)) Bool -(and (= x 0) (= m 0))) - + (and (= x 0) (= m 0))) (define-fun trans_fun ((x Int) (n Int) (m Int) (z1 Int) (z2 Int) (z3 Int) (x! Int) (n! Int) (m! Int) (z1! Int) (z2! Int) (z3! Int)) Bool -(or -(and (and (and (< x n) (= x! (+ x 1))) (= n! n)) (= m! m)) - -(and (and (and (< x n) (= x! (+ x 1))) (= n! n)) (= m! x)))) - - + (or (and (and (and (< x n) (= x! (+ x 1))) (= n! n)) (= m! m)) (and (and (and (< x n) (= x! (+ x 1))) (= n! n)) (= m! x)))) (define-fun post_fun ((x Int) (n Int) (m Int) (z1 Int) (z2 Int) (z3 Int)) Bool -(not (and (and (>= x n) (> n 0)) -(or (<= n m) (< m 0))))) + (not (and (and (>= x n) (> n 0)) (or (<= n m) (< m 0))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/cggmp-new.sl b/benchmarks/LIA/2016.SyGuS-Comp/cggmp-new.sl index 199efcc..6cd5853 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/cggmp-new.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/cggmp-new.sl @@ -2,19 +2,14 @@ (synth-inv inv_fun ((i Int) (j Int))) -(declare-primed-var i Int) -(declare-primed-var j Int) - (define-fun pre_fun ((i Int) (j Int)) Bool -(and (= i 1) -(= j 20))) - + (and (= i 1) (= j 20))) (define-fun trans_fun ((i Int) (j Int) (i! Int) (j! Int)) Bool -(and (and (>= j i) (= i! (+ i 2))) (= j! (- j 1)))) - + (and (and (>= j i) (= i! (+ i 2))) (= j! (- j 1)))) (define-fun post_fun ((i Int) (j Int)) Bool -(not (and (< j i) (not (= j 13))))) + (not (and (< j i) (not (= j 13))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/cggmp.sl b/benchmarks/LIA/2016.SyGuS-Comp/cggmp.sl index 6edc870..488e621 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/cggmp.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/cggmp.sl @@ -2,19 +2,14 @@ (synth-inv inv_fun ((i Int) (j Int))) -(declare-primed-var i Int) -(declare-primed-var j Int) - (define-fun pre_fun ((i Int) (j Int)) Bool -(and (= i 1) -(= j 10))) - + (and (= i 1) (= j 10))) (define-fun trans_fun ((i Int) (j Int) (i! Int) (j! Int)) Bool -(and (and (>= j i) (= i! (+ i 2))) (= j! (- j 1)))) - + (and (and (>= j i) (= i! (+ i 2))) (= j! (- j 1)))) (define-fun post_fun ((i Int) (j Int)) Bool -(not (and (< j i) (not (= j 6))))) + (not (and (< j i) (not (= j 6))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/dec-new.sl b/benchmarks/LIA/2016.SyGuS-Comp/dec-new.sl index 87bb79b..7467328 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/dec-new.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/dec-new.sl @@ -2,17 +2,14 @@ (synth-inv inv_fun ((x Int))) -(declare-primed-var x Int) - (define-fun pre_fun ((x Int)) Bool -(= x 10000)) - + (= x 10000)) (define-fun trans_fun ((x Int) (x! Int)) Bool -(and (> x 0) (= x! (- x 1)))) - + (and (> x 0) (= x! (- x 1)))) (define-fun post_fun ((x Int)) Bool -(not (and (<= x 0) (not (= x 0))))) + (not (and (<= x 0) (not (= x 0))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/dec.sl b/benchmarks/LIA/2016.SyGuS-Comp/dec.sl index be8b824..e99087f 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/dec.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/dec.sl @@ -2,17 +2,14 @@ (synth-inv inv_fun ((x Int))) -(declare-primed-var x Int) - (define-fun pre_fun ((x Int)) Bool -(= x 100)) - + (= x 100)) (define-fun trans_fun ((x Int) (x! Int)) Bool -(and (> x 0) (= x! (- x 1)))) - + (and (> x 0) (= x! (- x 1)))) (define-fun post_fun ((x Int)) Bool -(not (and (<= x 0) (not (= x 0))))) + (not (and (<= x 0) (not (= x 0))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/dec_simpl-new.sl b/benchmarks/LIA/2016.SyGuS-Comp/dec_simpl-new.sl index 760f4d4..cfee0bb 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/dec_simpl-new.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/dec_simpl-new.sl @@ -2,18 +2,14 @@ (synth-inv inv_fun ((x Int) (n Int))) -(declare-primed-var x Int) -(declare-primed-var n Int) - (define-fun pre_fun ((x Int) (n Int)) Bool -(= x n)) - + (= x n)) (define-fun trans_fun ((x Int) (n Int) (x! Int) (n! Int)) Bool -(and (and (> x 1) (= x! (- x 1))) (= n! n))) - + (and (and (> x 1) (= x! (- x 1))) (= n! n))) (define-fun post_fun ((x Int) (n Int)) Bool -(not (and (<= x 1) (and (not (= x 1)) (>= n 0))))) + (not (and (<= x 1) (and (not (= x 1)) (>= n 0))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/dec_simpl.sl b/benchmarks/LIA/2016.SyGuS-Comp/dec_simpl.sl index 5ab0da2..75bf71e 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/dec_simpl.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/dec_simpl.sl @@ -2,18 +2,14 @@ (synth-inv inv_fun ((x Int) (n Int))) -(declare-primed-var x Int) -(declare-primed-var n Int) - (define-fun pre_fun ((x Int) (n Int)) Bool -(= x n)) - + (= x n)) (define-fun trans_fun ((x Int) (n Int) (x! Int) (n! Int)) Bool -(and (and (> x 0) (= x! (- x 1))) (= n! n))) - + (and (and (> x 0) (= x! (- x 1))) (= n! n))) (define-fun post_fun ((x Int) (n Int)) Bool -(not (and (<= x 0) (and (not (= x 0)) (>= n 0))))) + (not (and (<= x 0) (and (not (= x 0)) (>= n 0))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/dec_vars-new.sl b/benchmarks/LIA/2016.SyGuS-Comp/dec_vars-new.sl index 069bb48..c6ee78d 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/dec_vars-new.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/dec_vars-new.sl @@ -2,21 +2,14 @@ (synth-inv inv_fun ((x Int) (n Int) (v1 Int) (v2 Int) (v3 Int))) -(declare-primed-var x Int) -(declare-primed-var n Int) -(declare-primed-var v1 Int) -(declare-primed-var v2 Int) -(declare-primed-var v3 Int) - (define-fun pre_fun ((x Int) (n Int) (v1 Int) (v2 Int) (v3 Int)) Bool -(= x n)) - + (= x n)) (define-fun trans_fun ((x Int) (n Int) (v1 Int) (v2 Int) (v3 Int) (x! Int) (n! Int) (v1! Int) (v2! Int) (v3! Int)) Bool -(and (and (> x 1) (= x! (- x 1))) (= n! n))) - + (and (and (> x 1) (= x! (- x 1))) (= n! n))) (define-fun post_fun ((x Int) (n Int) (v1 Int) (v2 Int) (v3 Int)) Bool -(not (and (<= x 1) (and (not (= x 1)) (>= n 0))))) + (not (and (<= x 1) (and (not (= x 1)) (>= n 0))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/dec_vars.sl b/benchmarks/LIA/2016.SyGuS-Comp/dec_vars.sl index f250a17..23b56fc 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/dec_vars.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/dec_vars.sl @@ -2,21 +2,14 @@ (synth-inv inv_fun ((x Int) (n Int) (v1 Int) (v2 Int) (v3 Int))) -(declare-primed-var x Int) -(declare-primed-var n Int) -(declare-primed-var v1 Int) -(declare-primed-var v2 Int) -(declare-primed-var v3 Int) - (define-fun pre_fun ((x Int) (n Int) (v1 Int) (v2 Int) (v3 Int)) Bool -(= x n)) - + (= x n)) (define-fun trans_fun ((x Int) (n Int) (v1 Int) (v2 Int) (v3 Int) (x! Int) (n! Int) (v1! Int) (v2! Int) (v3! Int)) Bool -(and (and (> x 0) (= x! (- x 1))) (= n! n))) - + (and (and (> x 0) (= x! (- x 1))) (= n! n))) (define-fun post_fun ((x Int) (n Int) (v1 Int) (v2 Int) (v3 Int)) Bool -(not (and (<= x 0) (and (not (= x 0)) (>= n 0))))) + (not (and (<= x 0) (and (not (= x 0)) (>= n 0))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/ex11-new.sl b/benchmarks/LIA/2016.SyGuS-Comp/ex11-new.sl index 7790be7..561c8fd 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/ex11-new.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/ex11-new.sl @@ -2,19 +2,14 @@ (synth-inv inv_fun ((c Int))) -(declare-primed-var c Int) - (define-fun pre_fun ((c Int)) Bool -(= c 0)) - + (= c 0)) (define-fun trans_fun ((c Int) (c! Int)) Bool -(or -(and (not (= c 40)) (= c! (+ c 1))) -(and (= c 40) (= c! 1)))) - + (or (and (not (= c 40)) (= c! (+ c 1))) (and (= c 40) (= c! 1)))) (define-fun post_fun ((c Int)) Bool -(not (and (not (= c 40)) (or (< c 0) (> c 40))))) + (not (and (not (= c 40)) (or (< c 0) (> c 40))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/ex11.sl b/benchmarks/LIA/2016.SyGuS-Comp/ex11.sl index 713c11e..40c8698 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/ex11.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/ex11.sl @@ -2,19 +2,14 @@ (synth-inv inv_fun ((c Int))) -(declare-primed-var c Int) - (define-fun pre_fun ((c Int)) Bool -(= c 0)) - + (= c 0)) (define-fun trans_fun ((c Int) (c! Int)) Bool -(or -(and (not (= c 4)) (= c! (+ c 1))) -(and (= c 4) (= c! 1)))) - + (or (and (not (= c 4)) (= c! (+ c 1))) (and (= c 4) (= c! 1)))) (define-fun post_fun ((c Int)) Bool -(not (and (not (= c 4)) (or (< c 0) (> c 4))))) + (not (and (not (= c 4)) (or (< c 0) (> c 4))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/ex11_simpl-new.sl b/benchmarks/LIA/2016.SyGuS-Comp/ex11_simpl-new.sl index f4c70c6..dee5139 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/ex11_simpl-new.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/ex11_simpl-new.sl @@ -2,24 +2,14 @@ (synth-inv inv_fun ((c Int) (n Int))) -(declare-primed-var c Int) -(declare-primed-var n Int) - (define-fun pre_fun ((c Int) (n Int)) Bool -(and (= c 0) (> n 0))) - + (and (= c 0) (> n 0))) (define-fun trans_fun ((c Int) (n Int) (c! Int) (n! Int)) Bool -(or -(and (and (> c n) (= c! (+ c 1))) (= n! n)) -(and (and (= c n) (= c! 1)) (= n! n)) -) -) - + (or (and (and (> c n) (= c! (+ c 1))) (= n! n)) (and (and (= c n) (= c! 1)) (= n! n)))) (define-fun post_fun ((c Int) (n Int)) Bool -(and -(or (= c n) (and (>= c 0) (<= c n))) -(or (not (= c n)) (> n -1)))) + (and (or (= c n) (and (>= c 0) (<= c n))) (or (not (= c n)) (> n (- 1))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/ex11_simpl.sl b/benchmarks/LIA/2016.SyGuS-Comp/ex11_simpl.sl index 0a190e8..8928ab6 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/ex11_simpl.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/ex11_simpl.sl @@ -2,24 +2,14 @@ (synth-inv inv_fun ((c Int) (n Int))) -(declare-primed-var c Int) -(declare-primed-var n Int) - (define-fun pre_fun ((c Int) (n Int)) Bool -(and (= c 0) (> n 0))) - + (and (= c 0) (> n 0))) (define-fun trans_fun ((c Int) (n Int) (c! Int) (n! Int)) Bool -(or -(and (and (not (= c n)) (= c! (+ c 1))) (= n! n)) -(and (and (= c n) (= c! 1)) (= n! n)) -) -) - + (or (and (and (not (= c n)) (= c! (+ c 1))) (= n! n)) (and (and (= c n) (= c! 1)) (= n! n)))) (define-fun post_fun ((c Int) (n Int)) Bool -(and -(or (= c n) (and (>= c 0) (<= c n))) -(or (not (= c n)) (> n -1)))) + (and (or (= c n) (and (>= c 0) (<= c n))) (or (not (= c n)) (> n (- 1))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/ex11_vars-new.sl b/benchmarks/LIA/2016.SyGuS-Comp/ex11_vars-new.sl index 37cf319..2bf6c76 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/ex11_vars-new.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/ex11_vars-new.sl @@ -2,24 +2,14 @@ (synth-inv inv_fun ((c Int) (n Int) (v1 Int) (v2 Int) (v3 Int))) -(declare-primed-var c Int) -(declare-primed-var n Int) -(declare-primed-var v1 Int) -(declare-primed-var v2 Int) -(declare-primed-var v3 Int) - (define-fun pre_fun ((c Int) (n Int) (v1 Int) (v2 Int) (v3 Int)) Bool -(and (= c 0) (> n 0))) - + (and (= c 0) (> n 0))) (define-fun trans_fun ((c Int) (n Int) (v1 Int) (v2 Int) (v3 Int) (c! Int) (n! Int) (v1! Int) (v2! Int) (v3! Int)) Bool -(or -(and (> c n) (= c! (+ c 1))) -(and (= c n) (= c! 1)))) - + (or (and (> c n) (= c! (+ c 1))) (and (= c n) (= c! 1)))) (define-fun post_fun ((c Int) (n Int) (v1 Int) (v2 Int) (v3 Int)) Bool -(not (or (and (not (= c n)) (or (< c 0) (> c n))) -(and (= c n) (> n -1))))) + (not (or (and (not (= c n)) (or (< c 0) (> c n))) (and (= c n) (> n (- 1)))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/ex11_vars.sl b/benchmarks/LIA/2016.SyGuS-Comp/ex11_vars.sl index bb43b1c..c0b45f6 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/ex11_vars.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/ex11_vars.sl @@ -2,24 +2,14 @@ (synth-inv inv_fun ((c Int) (n Int) (v1 Int) (v2 Int) (v3 Int))) -(declare-primed-var c Int) -(declare-primed-var n Int) -(declare-primed-var v1 Int) -(declare-primed-var v2 Int) -(declare-primed-var v3 Int) - (define-fun pre_fun ((c Int) (n Int) (v1 Int) (v2 Int) (v3 Int)) Bool -(and (= c 0) (> n 0))) - + (and (= c 0) (> n 0))) (define-fun trans_fun ((c Int) (n Int) (v1 Int) (v2 Int) (v3 Int) (c! Int) (n! Int) (v1! Int) (v2! Int) (v3! Int)) Bool -(or -(and (not (= c n)) (= c! (+ c 1))) -(and (= c n) (= c! 1)))) - + (or (and (not (= c n)) (= c! (+ c 1))) (and (= c n) (= c! 1)))) (define-fun post_fun ((c Int) (n Int) (v1 Int) (v2 Int) (v3 Int)) Bool -(not (or (and (not (= c n)) (or (< c 0) (> c n))) -(and (= c n) (> n -1))))) + (not (or (and (not (= c n)) (or (< c 0) (> c n))) (and (= c n) (> n (- 1)))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/ex14-new.sl b/benchmarks/LIA/2016.SyGuS-Comp/ex14-new.sl index bcd3ac8..e7be8e0 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/ex14-new.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/ex14-new.sl @@ -2,22 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) - (define-fun pre_fun ((x Int) (y Int)) Bool -(= x 1)) - - + (= x 1)) (define-fun trans_fun ((x Int) (y Int) (x! Int) (y! Int)) Bool -(and (and (<= x 100) (= y! (- 100 x))) -(= x! (+ x 1)))) - + (and (and (<= x 100) (= y! (- 100 x))) (= x! (+ x 1)))) (define-fun post_fun ((x Int) (y Int)) Bool -(not (and (and (<= x 100) (= y (- 100 x))) -(or (>= y 100) (> 0 y))))) - + (not (and (and (<= x 100) (= y (- 100 x))) (or (>= y 100) (> 0 y))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/ex14.sl b/benchmarks/LIA/2016.SyGuS-Comp/ex14.sl index 9f35833..56c9504 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/ex14.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/ex14.sl @@ -2,22 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) - (define-fun pre_fun ((x Int) (y Int)) Bool -(= x 1)) - - + (= x 1)) (define-fun trans_fun ((x Int) (y Int) (x! Int) (y! Int)) Bool -(and (and (<= x 10) (= y! (- 10 x))) -(= x! (+ x 1)))) - + (and (and (<= x 10) (= y! (- 10 x))) (= x! (+ x 1)))) (define-fun post_fun ((x Int) (y Int)) Bool -(not (and (and (<= x 10) (= y (- 10 x))) -(or (>= y 10) (> 0 y))))) - + (not (and (and (<= x 10) (= y (- 10 x))) (or (>= y 10) (> 0 y))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/ex14_simp.sl b/benchmarks/LIA/2016.SyGuS-Comp/ex14_simp.sl index 4f9c0d3..23135ae 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/ex14_simp.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/ex14_simp.sl @@ -2,23 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int) (n Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var n Int) - (define-fun pre_fun ((x Int) (y Int) (n Int)) Bool -(= x 1)) - - + (= x 1)) (define-fun trans_fun ((x Int) (y Int) (n Int) (x! Int) (y! Int) (n! Int)) Bool -(and (and (<= x n) (= y! (- n x))) -(= x! (+ x 1)))) - + (and (and (<= x n) (= y! (- n x))) (= x! (+ x 1)))) (define-fun post_fun ((x Int) (y Int) (n Int)) Bool -(not (and (and (<= x n) (= y (- n x))) -(or (>= y n) (> 0 y))))) - + (not (and (and (<= x n) (= y (- n x))) (or (>= y n) (> 0 y))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/ex14_vars.sl b/benchmarks/LIA/2016.SyGuS-Comp/ex14_vars.sl index 9f385a1..3ce63db 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/ex14_vars.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/ex14_vars.sl @@ -2,26 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int) (n Int) (v1 Int) (v2 Int) (v3 Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var n Int) -(declare-primed-var v1 Int) -(declare-primed-var v2 Int) -(declare-primed-var v3 Int) - (define-fun pre_fun ((x Int) (y Int) (n Int) (v1 Int) (v2 Int) (v3 Int)) Bool -(= x 1)) - - + (= x 1)) (define-fun trans_fun ((x Int) (y Int) (n Int) (v1 Int) (v2 Int) (v3 Int) (x! Int) (y! Int) (n! Int) (v1! Int) (v2! Int) (v3! Int)) Bool -(and (and (<= x n) (= y! (- n x))) -(= x! (+ x 1)))) - + (and (and (<= x n) (= y! (- n x))) (= x! (+ x 1)))) (define-fun post_fun ((x Int) (y Int) (n Int) (v1 Int) (v2 Int) (v3 Int)) Bool -(not (and (and (<= x n) (= y (- n x))) -(or (>= y n) (> 0 y))))) - + (not (and (and (<= x n) (= y (- n x))) (or (>= y n) (> 0 y))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/ex23.sl b/benchmarks/LIA/2016.SyGuS-Comp/ex23.sl index 5dfea28..7f967f5 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/ex23.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/ex23.sl @@ -2,20 +2,14 @@ (synth-inv inv_fun ((y Int) (z Int) (c Int))) -(declare-primed-var y Int) -(declare-primed-var z Int) -(declare-primed-var c Int) - (define-fun pre_fun ((y Int) (z Int) (c Int)) Bool -(and (and (= c 0) (>= y 0)) (and (>= 127 y) (= z (* 36 y))))) - - + (and (and (= c 0) (>= y 0)) (and (>= 127 y) (= z (* 36 y))))) (define-fun trans_fun ((y Int) (z Int) (c Int) (y! Int) (z! Int) (c! Int)) Bool -(and (and (and (< c 36) (= z! (+ z 1))) (= c! (+ c 1))) (= y! y))) - + (and (and (and (< c 36) (= z! (+ z 1))) (= c! (+ c 1))) (= y! y))) (define-fun post_fun ((y Int) (z Int) (c Int)) Bool -(not (and (< c 36) (or (< z 0) (>= z 4608))))) + (not (and (< c 36) (or (< z 0) (>= z 4608))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/ex7.sl b/benchmarks/LIA/2016.SyGuS-Comp/ex7.sl index 702a27a..08b5ffb 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/ex7.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/ex7.sl @@ -2,20 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int) (i Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var i Int) - (define-fun pre_fun ((x Int) (y Int) (i Int)) Bool -(and (and (and (= i 0) (>= x 0)) (>= y 0)) (>= x y))) - - + (and (and (and (= i 0) (>= x 0)) (>= y 0)) (>= x y))) (define-fun trans_fun ((x Int) (y Int) (i Int) (x! Int) (y! Int) (i! Int)) Bool -(and (and (< i y) (= i! (+ i 1))) (and (= y! y) (= x! x)))) - + (and (and (< i y) (= i! (+ i 1))) (and (= y! y) (= x! x)))) (define-fun post_fun ((x Int) (y Int) (i Int)) Bool -(not (and (< i y) (or (>= i x) (> 0 i))))) + (not (and (< i y) (or (>= i x) (> 0 i))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/ex7_vars.sl b/benchmarks/LIA/2016.SyGuS-Comp/ex7_vars.sl index 8c02403..9f9cdd1 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/ex7_vars.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/ex7_vars.sl @@ -2,23 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int) (i Int) (z1 Int) (z2 Int) (z3 Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var i Int) -(declare-primed-var z1 Int) -(declare-primed-var z2 Int) -(declare-primed-var z3 Int) - (define-fun pre_fun ((x Int) (y Int) (i Int) (z1 Int) (z2 Int) (z3 Int)) Bool -(and (and (and (= i 0) (>= x 0)) (>= y 0)) (>= x y))) - - + (and (and (and (= i 0) (>= x 0)) (>= y 0)) (>= x y))) (define-fun trans_fun ((x Int) (y Int) (i Int) (z1 Int) (z2 Int) (z3 Int) (x! Int) (y! Int) (i! Int) (z1! Int) (z2! Int) (z3! Int)) Bool -(and (and (< i y) (= i! (+ i 1))) (and (= y! y) (= x! x)))) - + (and (and (< i y) (= i! (+ i 1))) (and (= y! y) (= x! x)))) (define-fun post_fun ((x Int) (y Int) (i Int) (z1 Int) (z2 Int) (z3 Int)) Bool -(not (and (< i y) (or (>= i x) (> 0 i))))) + (not (and (< i y) (or (>= i x) (> 0 i))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/ex_23_vars.sl b/benchmarks/LIA/2016.SyGuS-Comp/ex_23_vars.sl index 26a7c5f..68c264b 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/ex_23_vars.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/ex_23_vars.sl @@ -2,24 +2,14 @@ (synth-inv inv_fun ((y Int) (z Int) (c Int) (x1 Int) (x2 Int) (x3 Int))) -(declare-primed-var b Bool) -(declare-primed-var y Int) -(declare-primed-var z Int) -(declare-primed-var c Int) -(declare-primed-var x1 Int) -(declare-primed-var x2 Int) -(declare-primed-var x3 Int) - (define-fun pre_fun ((y Int) (z Int) (c Int) (x1 Int) (x2 Int) (x3 Int)) Bool -(and (and (= c 0) (>= y 0)) (and (>= 127 y) (= z (* 36 y))))) - - + (and (and (= c 0) (>= y 0)) (and (>= 127 y) (= z (* 36 y))))) (define-fun trans_fun ((y Int) (z Int) (c Int) (x1 Int) (x2 Int) (x3 Int) (y! Int) (z! Int) (c! Int) (x1! Int) (x2! Int) (x3! Int)) Bool -(and (and (and (< c 36) (= z! (+ z 1))) (= c! (+ c 1))) (= y! y))) - + (and (and (and (< c 36) (= z! (+ z 1))) (= c! (+ c 1))) (= y! y))) (define-fun post_fun ((y Int) (z Int) (c Int) (x1 Int) (x2 Int) (x3 Int)) Bool -(not (and (< c 36) (or (< z 0) (>= z 4608))))) + (not (and (< c 36) (or (< z 0) (>= z 4608))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/fig1-new.sl b/benchmarks/LIA/2016.SyGuS-Comp/fig1-new.sl index bce1330..64de6ca 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/fig1-new.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/fig1-new.sl @@ -2,18 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) - (define-fun pre_fun ((x Int) (y Int)) Bool -(= x -5000)) - + (= x (- 5000))) (define-fun trans_fun ((x Int) (y Int) (x! Int) (y! Int)) Bool -(and (and (< x 0) (= x! (+ x y))) (= y! (+ y 1)))) - + (and (and (< x 0) (= x! (+ x y))) (= y! (+ y 1)))) (define-fun post_fun ((x Int) (y Int)) Bool -(not (and (>= x 0) (<= y 0)))) + (not (and (>= x 0) (<= y 0)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/fig1.sl b/benchmarks/LIA/2016.SyGuS-Comp/fig1.sl index 53153b8..cd3ae2f 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/fig1.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/fig1.sl @@ -2,18 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) - (define-fun pre_fun ((x Int) (y Int)) Bool -(= x -50)) - + (= x (- 50))) (define-fun trans_fun ((x Int) (y Int) (x! Int) (y! Int)) Bool -(and (and (< x 0) (= x! (+ x y))) (= y! (+ y 1)))) - + (and (and (< x 0) (= x! (+ x y))) (= y! (+ y 1)))) (define-fun post_fun ((x Int) (y Int)) Bool -(not (and (>= x 0) (<= y 0)))) + (not (and (>= x 0) (<= y 0)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/fig1_vars-new.sl b/benchmarks/LIA/2016.SyGuS-Comp/fig1_vars-new.sl index 631d8b4..0a35cdc 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/fig1_vars-new.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/fig1_vars-new.sl @@ -2,21 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int) (z1 Int) (z2 Int) (z3 Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var z1 Int) -(declare-primed-var z2 Int) -(declare-primed-var z3 Int) - (define-fun pre_fun ((x Int) (y Int) (z1 Int) (z2 Int) (z3 Int)) Bool -(= x -15000)) - + (= x (- 15000))) (define-fun trans_fun ((x Int) (y Int) (z1 Int) (z2 Int) (z3 Int) (x! Int) (y! Int) (z1! Int) (z2! Int) (z3! Int)) Bool -(and (and (< x 0) (= x! (+ x y))) (= y! (+ y 1)))) - + (and (and (< x 0) (= x! (+ x y))) (= y! (+ y 1)))) (define-fun post_fun ((x Int) (y Int) (z1 Int) (z2 Int) (z3 Int)) Bool -(not (and (>= x 0) (<= y 0)))) + (not (and (>= x 0) (<= y 0)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/fig1_vars.sl b/benchmarks/LIA/2016.SyGuS-Comp/fig1_vars.sl index 7ddc412..54e5f14 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/fig1_vars.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/fig1_vars.sl @@ -2,21 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int) (z1 Int) (z2 Int) (z3 Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var z1 Int) -(declare-primed-var z2 Int) -(declare-primed-var z3 Int) - (define-fun pre_fun ((x Int) (y Int) (z1 Int) (z2 Int) (z3 Int)) Bool -(= x -50)) - + (= x (- 50))) (define-fun trans_fun ((x Int) (y Int) (z1 Int) (z2 Int) (z3 Int) (x! Int) (y! Int) (z1! Int) (z2! Int) (z3! Int)) Bool -(and (and (< x 0) (= x! (+ x y))) (= y! (+ y 1)))) - + (and (and (< x 0) (= x! (+ x y))) (= y! (+ y 1)))) (define-fun post_fun ((x Int) (y Int) (z1 Int) (z2 Int) (z3 Int)) Bool -(not (and (>= x 0) (<= y 0)))) + (not (and (>= x 0) (<= y 0)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/fig3.sl b/benchmarks/LIA/2016.SyGuS-Comp/fig3.sl index 127ce35..8c1be23 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/fig3.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/fig3.sl @@ -2,24 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int) (lock Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var lock Int) - (define-fun pre_fun ((x Int) (y Int) (lock Int)) Bool -(or (and (= x y) (= lock 1)) -(and (= (+ x 1) y) (= lock 0)))) - - -(define-fun trans_fun ((x Int) (y Int) (lock Int) (x! Int) (y! Int) (lock! Int) ) Bool -(or -(and (and (not (= x y)) (= lock! 1)) (= x! y)) -(and (and (and (not (= x y)) (= lock! 0)) (= x! y)) (= y! (+ y 1))))) - + (or (and (= x y) (= lock 1)) (and (= (+ x 1) y) (= lock 0)))) +(define-fun trans_fun ((x Int) (y Int) (lock Int) (x! Int) (y! Int) (lock! Int)) Bool + (or (and (and (not (= x y)) (= lock! 1)) (= x! y)) (and (and (and (not (= x y)) (= lock! 0)) (= x! y)) (= y! (+ y 1))))) (define-fun post_fun ((x Int) (y Int) (lock Int)) Bool -(not (and (= x y) (not (= lock 1))))) - + (not (and (= x y) (not (= lock 1))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/fig3_vars.sl b/benchmarks/LIA/2016.SyGuS-Comp/fig3_vars.sl index b8dbf26..d62701c 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/fig3_vars.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/fig3_vars.sl @@ -2,27 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int) (lock Int) (v1 Int) (v2 Int) (v3 Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var lock Int) -(declare-primed-var v1 Int) -(declare-primed-var v2 Int) -(declare-primed-var v3 Int) - (define-fun pre_fun ((x Int) (y Int) (lock Int) (v1 Int) (v2 Int) (v3 Int)) Bool -(or (and (= x y) (= lock 1)) -(and (= (+ x 1) y) (= lock 0)))) - - + (or (and (= x y) (= lock 1)) (and (= (+ x 1) y) (= lock 0)))) (define-fun trans_fun ((x Int) (y Int) (lock Int) (v1 Int) (v2 Int) (v3 Int) (x! Int) (y! Int) (lock! Int) (v1! Int) (v2! Int) (v3! Int)) Bool -(or -(and (and (not (= x y)) (= lock! 1)) (= x! y)) -(and (and (and (not (= x y)) (= lock! 0)) (= x! y)) (= y! (+ y 1))))) - + (or (and (and (not (= x y)) (= lock! 1)) (= x! y)) (and (and (and (not (= x y)) (= lock! 0)) (= x! y)) (= y! (+ y 1))))) (define-fun post_fun ((x Int) (y Int) (lock Int) (v1 Int) (v2 Int) (v3 Int)) Bool -(not (and (= x y) (not (= lock 1))))) - + (not (and (= x y) (not (= lock 1))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/fig9.sl b/benchmarks/LIA/2016.SyGuS-Comp/fig9.sl index d6f56df..e62b991 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/fig9.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/fig9.sl @@ -2,19 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) - (define-fun pre_fun ((x Int) (y Int)) Bool -(and (= x 0) (= y 0))) - - -(define-fun trans_fun ((x Int) (y Int) (x! Int) (y! Int) ) Bool -(and (= x! x) (and (<= 0 y) (= y! (+ x y))))) - + (and (= x 0) (= y 0))) +(define-fun trans_fun ((x Int) (y Int) (x! Int) (y! Int)) Bool + (and (= x! x) (and (<= 0 y) (= y! (+ x y))))) (define-fun post_fun ((x Int) (y Int)) Bool -(>= y 0)) + (>= y 0)) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/fig9_vars.sl b/benchmarks/LIA/2016.SyGuS-Comp/fig9_vars.sl index 48ee2e7..78cc0bb 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/fig9_vars.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/fig9_vars.sl @@ -2,22 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int) (z1 Int) (z2 Int) (z3 Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var z1 Int) -(declare-primed-var z2 Int) -(declare-primed-var z3 Int) - (define-fun pre_fun ((x Int) (y Int) (z1 Int) (z2 Int) (z3 Int)) Bool -(and (= x 0) (= y 0))) - - -(define-fun trans_fun ((x Int) (y Int) (z1 Int) (z2 Int) (z3 Int) (x! Int) (y! Int) (z1! Int) (z2! Int) (z3! Int) ) Bool -(and (= x! x) (and (<= 0 y) (= y! (+ x y))))) - + (and (= x 0) (= y 0))) +(define-fun trans_fun ((x Int) (y Int) (z1 Int) (z2 Int) (z3 Int) (x! Int) (y! Int) (z1! Int) (z2! Int) (z3! Int)) Bool + (and (= x! x) (and (<= 0 y) (= y! (+ x y))))) (define-fun post_fun ((x Int) (y Int) (z1 Int) (z2 Int) (z3 Int)) Bool -(>= y 0)) + (>= y 0)) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/formula22.sl b/benchmarks/LIA/2016.SyGuS-Comp/formula22.sl index 777391f..64939d1 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/formula22.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/formula22.sl @@ -2,20 +2,14 @@ (synth-inv inv_fun ((x1 Int) (x2 Int) (x3 Int))) -(declare-primed-var x1 Int) -(declare-primed-var x2 Int) -(declare-primed-var x3 Int) - (define-fun pre_fun ((x1 Int) (x2 Int) (x3 Int)) Bool -(and (= x1 0) (and (= x2 0) (= x3 0)))) - - -(define-fun trans_fun ((x1 Int) (x2 Int) (x3 Int) (x1! Int) (x2! Int) (x3! Int) ) Bool -(and (<= x1! x2!) (or (>= x2! 0) (<= (- x2! x3!) 2)))) - + (and (= x1 0) (and (= x2 0) (= x3 0)))) +(define-fun trans_fun ((x1 Int) (x2 Int) (x3 Int) (x1! Int) (x2! Int) (x3! Int)) Bool + (and (<= x1! x2!) (or (>= x2! 0) (<= (- x2! x3!) 2)))) (define-fun post_fun ((x1 Int) (x2 Int) (x3 Int)) Bool -(and (<= x1 x2) (or (>= x2 0) (<= (- x2 x3) 2)))) + (and (<= x1 x2) (or (>= x2 0) (<= (- x2 x3) 2)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/formula25.sl b/benchmarks/LIA/2016.SyGuS-Comp/formula25.sl index 381a640..07631b5 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/formula25.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/formula25.sl @@ -2,21 +2,14 @@ (synth-inv inv_fun ((x1 Int) (x2 Int) (x3 Int) (x4 Int))) -(declare-primed-var x1 Int) -(declare-primed-var x2 Int) -(declare-primed-var x3 Int) -(declare-primed-var x4 Int) - (define-fun pre_fun ((x1 Int) (x2 Int) (x3 Int) (x4 Int)) Bool -(and (and (= x1 0) (and (= x2 0) (= x3 0))) (= x4 -1))) - - + (and (and (= x1 0) (and (= x2 0) (= x3 0))) (= x4 (- 1)))) (define-fun trans_fun ((x1 Int) (x2 Int) (x3 Int) (x4 Int) (x1! Int) (x2! Int) (x3! Int) (x4! Int)) Bool -(and (<= x1! 0) (and (>= x1! (+ x4! 1)) (and (= x2! x3!) (or (>= x4! 0) (<= x4! x3!)))))) - + (and (<= x1! 0) (and (>= x1! (+ x4! 1)) (and (= x2! x3!) (or (>= x4! 0) (<= x4! x3!)))))) (define-fun post_fun ((x1 Int) (x2 Int) (x3 Int) (x4 Int)) Bool -(and (<= x1 0) (and (>= x1 (+ x4 1)) (and (= x2 x3) (or (>= x4 0) (<= x4 x3)))))) + (and (<= x1 0) (and (>= x1 (+ x4 1)) (and (= x2 x3) (or (>= x4 0) (<= x4 x3)))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/formula27.sl b/benchmarks/LIA/2016.SyGuS-Comp/formula27.sl index 8ffba36..20bd37d 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/formula27.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/formula27.sl @@ -2,22 +2,14 @@ (synth-inv inv_fun ((x1 Int) (x2 Int) (x3 Int) (x4 Int) (x5 Int))) -(declare-primed-var x1 Int) -(declare-primed-var x2 Int) -(declare-primed-var x3 Int) -(declare-primed-var x4 Int) -(declare-primed-var x5 Int) - (define-fun pre_fun ((x1 Int) (x2 Int) (x3 Int) (x4 Int) (x5 Int)) Bool -(and (and (and (= x1 0) (and (= x2 0) (= x3 0))) (= x4 0)) (= x5 0))) - - + (and (and (and (= x1 0) (and (= x2 0) (= x3 0))) (= x4 0)) (= x5 0))) (define-fun trans_fun ((x1 Int) (x2 Int) (x3 Int) (x4 Int) (x5 Int) (x1! Int) (x2! Int) (x3! Int) (x4! Int) (x5! Int)) Bool -(and (<= 0 x1!) (and (<= x1! (+ x4! 1)) (and (= x2! x3!) (and (= 0 x5!) (or (<= x2! -1) (<= x4! (+ x2! 2)))))))) - + (and (<= 0 x1!) (and (<= x1! (+ x4! 1)) (and (= x2! x3!) (and (= 0 x5!) (or (<= x2! (- 1)) (<= x4! (+ x2! 2)))))))) (define-fun post_fun ((x1 Int) (x2 Int) (x3 Int) (x4 Int) (x5 Int)) Bool -(and (<= 0 x1) (and (<= x1 (+ x4 1)) (and (= x2 x3) (and (= 0 x5) (or (<= x2 -1) (<= x4 (+ x2 2)))))))) + (and (<= 0 x1) (and (<= x1 (+ x4 1)) (and (= x2 x3) (and (= 0 x5) (or (<= x2 (- 1)) (<= x4 (+ x2 2)))))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/inc.sl b/benchmarks/LIA/2016.SyGuS-Comp/inc.sl index 827150e..36faaeb 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/inc.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/inc.sl @@ -2,18 +2,14 @@ (synth-inv inv_fun ((x Int))) -(declare-primed-var x Int) - (define-fun pre_fun ((x Int)) Bool -(= x 0)) - - + (= x 0)) (define-fun trans_fun ((x Int) (x! Int)) Bool -(and (< x 100) (= x! (+ x 1)))) - + (and (< x 100) (= x! (+ x 1)))) (define-fun post_fun ((x Int)) Bool -(or (not (>= x 100)) (= x 100))) + (or (not (>= x 100)) (= x 100))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/inc_simp.sl b/benchmarks/LIA/2016.SyGuS-Comp/inc_simp.sl index 612b2ed..ce8815d 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/inc_simp.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/inc_simp.sl @@ -2,20 +2,14 @@ (synth-inv inv_fun ((x Int) (n Int))) -(declare-primed-var x Int) -(declare-primed-var n Int) - (define-fun pre_fun ((x Int) (n Int)) Bool -(= x 0)) - - -(define-fun trans_fun ((x Int) (n Int) (x! Int) (n! Int) ) Bool -(and (= n! n) (and (< x n) (= x! (+ x 1))))) - - + (= x 0)) +(define-fun trans_fun ((x Int) (n Int) (x! Int) (n! Int)) Bool + (and (= n! n) (and (< x n) (= x! (+ x 1))))) (define-fun post_fun ((x Int) (n Int)) Bool -(or (not (>= x n)) (or (= x n) (< n 0)))) + (or (not (>= x n)) (or (= x n) (< n 0)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/inc_vars.sl b/benchmarks/LIA/2016.SyGuS-Comp/inc_vars.sl index 6c18bfc..5ca3bce 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/inc_vars.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/inc_vars.sl @@ -2,23 +2,14 @@ (synth-inv inv_fun ((x Int) (n Int) (v1 Int) (v2 Int) (v3 Int))) -(declare-primed-var x Int) -(declare-primed-var n Int) -(declare-primed-var v1 Int) -(declare-primed-var v2 Int) -(declare-primed-var v3 Int) - (define-fun pre_fun ((x Int) (n Int) (v1 Int) (v2 Int) (v3 Int)) Bool -(= x 0)) - - -(define-fun trans_fun ((x Int) (n Int) (v1 Int) (v2 Int) (v3 Int) (x! Int) (n! Int) (v1! Int) (v2! Int) (v3! Int) ) Bool -(and (= n! n) (and (< x n) (= x! (+ x 1))))) - - + (= x 0)) +(define-fun trans_fun ((x Int) (n Int) (v1 Int) (v2 Int) (v3 Int) (x! Int) (n! Int) (v1! Int) (v2! Int) (v3! Int)) Bool + (and (= n! n) (and (< x n) (= x! (+ x 1))))) (define-fun post_fun ((x Int) (n Int) (v1 Int) (v2 Int) (v3 Int)) Bool -(or (not (>= x n)) (or (= x n) (< n 0)))) + (or (not (>= x n)) (or (= x n) (< n 0)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/matrix2.sl b/benchmarks/LIA/2016.SyGuS-Comp/matrix2.sl index 9066b93..b7d11ba 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/matrix2.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/matrix2.sl @@ -2,21 +2,14 @@ (synth-inv inv_fun ((m Int) (a Int) (j Int) (k Int))) -(declare-primed-var m Int) -(declare-primed-var a Int) -(declare-primed-var j Int) -(declare-primed-var k Int) - (define-fun pre_fun ((m Int) (a Int) (j Int) (k Int)) Bool -(and (or (<= a m) (= j 0)) (and (< j 1) (= k 0)))) - + (and (or (<= a m) (= j 0)) (and (< j 1) (= k 0)))) (define-fun trans_fun ((m Int) (a Int) (j Int) (k Int) (m! Int) (a! Int) (j! Int) (k! Int)) Bool -(or (and (= j! j) (and (< k 1) (and (< m a!) (and (= m! a!) (= k! (+ k 1)))))) -(and (= j! j) (and (< k 1) (and (> m a!) (= k! (+ k 1))))))) - + (or (and (= j! j) (and (< k 1) (and (< m a!) (and (= m! a!) (= k! (+ k 1)))))) (and (= j! j) (and (< k 1) (and (> m a!) (= k! (+ k 1))))))) (define-fun post_fun ((m Int) (a Int) (j Int) (k Int)) Bool -(or (< k 1) (or (< a m) (= j -1)))) + (or (< k 1) (or (< a m) (= j (- 1))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/matrix2_simp.sl b/benchmarks/LIA/2016.SyGuS-Comp/matrix2_simp.sl index 194c886..01412b6 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/matrix2_simp.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/matrix2_simp.sl @@ -2,26 +2,14 @@ (synth-inv inv_fun ((m Int) (a Int) (j Int) (k Int) (r Int) (c Int))) -(declare-primed-var m Int) -(declare-primed-var a Int) -(declare-primed-var j Int) -(declare-primed-var k Int) -(declare-primed-var r Int) -(declare-primed-var c Int) - (define-fun pre_fun ((m Int) (a Int) (j Int) (k Int) (r Int) (c Int)) Bool -(and (or (<= a m) (= j 0)) (and (< j r) (= k 0)))) - - + (and (or (<= a m) (= j 0)) (and (< j r) (= k 0)))) (define-fun trans_fun ((m Int) (a Int) (j Int) (k Int) (r Int) (c Int) (m! Int) (a! Int) (j! Int) (k! Int) (r! Int) (c! Int)) Bool -( or (and (and (= j! j) (and (= r! r) (= c! c))) (and (< k c) (and (< m a!) (and (= m! a!) (= k! (+ k 1)))))) -(and (= j! j) (and (= r! r) (and (= c! c) (and (< k c) (and (> m a!) (= k! (+ k 1))))))))) - - - + (or (and (and (= j! j) (and (= r! r) (= c! c))) (and (< k c) (and (< m a!) (and (= m! a!) (= k! (+ k 1)))))) (and (= j! j) (and (= r! r) (and (= c! c) (and (< k c) (and (> m a!) (= k! (+ k 1))))))))) (define-fun post_fun ((m Int) (a Int) (j Int) (k Int) (r Int) (c Int)) Bool -(or (< k c) (or (<= a m) (= j -1)))) + (or (< k c) (or (<= a m) (= j (- 1))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/sum1.sl b/benchmarks/LIA/2016.SyGuS-Comp/sum1.sl index fcfd29c..5ff7d93 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/sum1.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/sum1.sl @@ -2,20 +2,14 @@ (synth-inv inv_fun ((i Int) (n Int) (sn Int))) -(declare-primed-var i Int) -(declare-primed-var n Int) -(declare-primed-var sn Int) - (define-fun pre_fun ((i Int) (n Int) (sn Int)) Bool -(and (= sn 0) (= i 1))) - - -(define-fun trans_fun ((i Int) (n Int) (sn Int) (i! Int) (n! Int) (sn! Int) ) Bool -(and (= n! n) (and (= i! (+ i 1)) (and (<= i n) (= sn! (+ sn 1)))))) - + (and (= sn 0) (= i 1))) +(define-fun trans_fun ((i Int) (n Int) (sn Int) (i! Int) (n! Int) (sn! Int)) Bool + (and (= n! n) (and (= i! (+ i 1)) (and (<= i n) (= sn! (+ sn 1)))))) (define-fun post_fun ((i Int) (n Int) (sn Int)) Bool -(or (<= i n) (or (= sn n) (= sn 0)))) + (or (<= i n) (or (= sn n) (= sn 0)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/sum1_vars.sl b/benchmarks/LIA/2016.SyGuS-Comp/sum1_vars.sl index f43254c..2e2f972 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/sum1_vars.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/sum1_vars.sl @@ -2,23 +2,14 @@ (synth-inv inv_fun ((i Int) (n Int) (sn Int) (v1 Int) (v2 Int) (v3 Int))) -(declare-primed-var i Int) -(declare-primed-var n Int) -(declare-primed-var sn Int) -(declare-primed-var v1 Int) -(declare-primed-var v2 Int) -(declare-primed-var v3 Int) - (define-fun pre_fun ((i Int) (n Int) (sn Int) (v1 Int) (v2 Int) (v3 Int)) Bool -(and (= sn 0) (= i 1))) - - -(define-fun trans_fun ((i Int) (n Int) (sn Int) (v1 Int) (v2 Int) (v3 Int) (i! Int) (n! Int) (sn! Int) (v1! Int) (v2! Int) (v3! Int) ) Bool -(and (= n! n) (and (= i! (+ i 1)) (and (<= i n) (= sn! (+ sn 1)))))) - + (and (= sn 0) (= i 1))) +(define-fun trans_fun ((i Int) (n Int) (sn Int) (v1 Int) (v2 Int) (v3 Int) (i! Int) (n! Int) (sn! Int) (v1! Int) (v2! Int) (v3! Int)) Bool + (and (= n! n) (and (= i! (+ i 1)) (and (<= i n) (= sn! (+ sn 1)))))) (define-fun post_fun ((i Int) (n Int) (sn Int) (v1 Int) (v2 Int) (v3 Int)) Bool -(or (<= i n) (or (= sn n) (= sn 0)))) + (or (<= i n) (or (= sn n) (= sn 0)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/sum3.sl b/benchmarks/LIA/2016.SyGuS-Comp/sum3.sl index db4dcb7..4253b46 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/sum3.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/sum3.sl @@ -2,19 +2,14 @@ (synth-inv inv_fun ((x Int) (sn Int))) -(declare-primed-var x Int) -(declare-primed-var sn Int) - (define-fun pre_fun ((x Int) (sn Int)) Bool -(and (= sn 0) (= x 0))) - - -(define-fun trans_fun ((x Int) (sn Int) (x! Int) (sn! Int) ) Bool -(and (= x! (+ x 1)) (= sn! (+ sn 1)))) - + (and (= sn 0) (= x 0))) +(define-fun trans_fun ((x Int) (sn Int) (x! Int) (sn! Int)) Bool + (and (= x! (+ x 1)) (= sn! (+ sn 1)))) (define-fun post_fun ((x Int) (sn Int)) Bool -(or (= sn x) (= sn -1))) + (or (= sn x) (= sn (- 1)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/sum3_vars.sl b/benchmarks/LIA/2016.SyGuS-Comp/sum3_vars.sl index 6a836ea..f895751 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/sum3_vars.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/sum3_vars.sl @@ -2,22 +2,14 @@ (synth-inv inv_fun ((x Int) (sn Int) (v1 Int) (v2 Int) (v3 Int))) -(declare-primed-var x Int) -(declare-primed-var sn Int) -(declare-primed-var v1 Int) -(declare-primed-var v2 Int) -(declare-primed-var v3 Int) - (define-fun pre_fun ((x Int) (sn Int) (v1 Int) (v2 Int) (v3 Int)) Bool -(and (= sn 0) (= x 0))) - - + (and (= sn 0) (= x 0))) (define-fun trans_fun ((x Int) (sn Int) (v1 Int) (v2 Int) (v3 Int) (x! Int) (sn! Int) (v1! Int) (v2! Int) (v3! Int)) Bool -(and (= x! (+ x 1)) (= sn! (+ sn 1)))) - + (and (= x! (+ x 1)) (= sn! (+ sn 1)))) (define-fun post_fun ((x Int) (sn Int) (v1 Int) (v2 Int) (v3 Int)) Bool -(or (= sn x) (= sn -1))) + (or (= sn x) (= sn (- 1)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/sum4.sl b/benchmarks/LIA/2016.SyGuS-Comp/sum4.sl index bae8a0b..82b05ea 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/sum4.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/sum4.sl @@ -2,19 +2,14 @@ (synth-inv inv_fun ((i Int) (sn Int))) -(declare-primed-var i Int) -(declare-primed-var sn Int) - (define-fun pre_fun ((i Int) (sn Int)) Bool -(and (= sn 0) (= i 1))) - - -(define-fun trans_fun ((i Int) (sn Int) (i! Int) (sn! Int) ) Bool -(and (= i! (+ i 1)) (and (<= i 8) (= sn! (+ sn 1))))) - + (and (= sn 0) (= i 1))) +(define-fun trans_fun ((i Int) (sn Int) (i! Int) (sn! Int)) Bool + (and (= i! (+ i 1)) (and (<= i 8) (= sn! (+ sn 1))))) (define-fun post_fun ((i Int) (sn Int)) Bool -(or (<= i 8) (or (= sn 8) (= sn 0)))) + (or (<= i 8) (or (= sn 8) (= sn 0)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/sum4_simp.sl b/benchmarks/LIA/2016.SyGuS-Comp/sum4_simp.sl index d3ddd63..b408200 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/sum4_simp.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/sum4_simp.sl @@ -2,20 +2,14 @@ (synth-inv inv_fun ((i Int) (sn Int) (size Int))) -(declare-primed-var i Int) -(declare-primed-var sn Int) -(declare-primed-var size Int) - (define-fun pre_fun ((i Int) (sn Int) (size Int)) Bool -(and (= sn 0) (= i 1))) - - + (and (= sn 0) (= i 1))) (define-fun trans_fun ((i Int) (sn Int) (size Int) (i! Int) (sn! Int) (size! Int)) Bool -(and (= size! size) (and (= i! (+ i 1)) (and (<= i size) (= sn! (+ sn 1)))))) - + (and (= size! size) (and (= i! (+ i 1)) (and (<= i size) (= sn! (+ sn 1)))))) (define-fun post_fun ((i Int) (sn Int) (size Int)) Bool -(or (<= i size) (or (= sn size) (= sn 0)))) + (or (<= i size) (or (= sn size) (= sn 0)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/sum4_vars.sl b/benchmarks/LIA/2016.SyGuS-Comp/sum4_vars.sl index 1543d2a..8a90605 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/sum4_vars.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/sum4_vars.sl @@ -2,23 +2,14 @@ (synth-inv inv_fun ((i Int) (sn Int) (size Int) (v1 Int) (v2 Int) (v3 Int))) -(declare-primed-var i Int) -(declare-primed-var sn Int) -(declare-primed-var size Int) -(declare-primed-var v1 Int) -(declare-primed-var v2 Int) -(declare-primed-var v3 Int) - (define-fun pre_fun ((i Int) (sn Int) (size Int) (v1 Int) (v2 Int) (v3 Int)) Bool -(and (= sn 0) (= i 1))) - - + (and (= sn 0) (= i 1))) (define-fun trans_fun ((i Int) (sn Int) (size Int) (v1 Int) (v2 Int) (v3 Int) (i! Int) (sn! Int) (size! Int) (v1! Int) (v2! Int) (v3! Int)) Bool -(and (= size! size) (and (= i! (+ i 1)) (and (<= i size) (= sn! (+ sn 1)))))) - + (and (= size! size) (and (= i! (+ i 1)) (and (<= i size) (= sn! (+ sn 1)))))) (define-fun post_fun ((i Int) (sn Int) (size Int) (v1 Int) (v2 Int) (v3 Int)) Bool -(or (<= i size) (or (= sn size) (= sn 0)))) + (or (<= i size) (or (= sn size) (= sn 0)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/tacas.sl b/benchmarks/LIA/2016.SyGuS-Comp/tacas.sl index 63d811f..a9caeb0 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/tacas.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/tacas.sl @@ -2,22 +2,14 @@ (synth-inv inv_fun ((i Int) (j Int) (x Int) (y Int))) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - - (define-fun pre_fun ((i Int) (j Int) (x Int) (y Int)) Bool -(and (= i x) (= j y))) - - + (and (= i x) (= j y))) (define-fun trans_fun ((i Int) (j Int) (x Int) (y Int) (i! Int) (j! Int) (x! Int) (y! Int)) Bool -(and (= i! i) (and (= j! j) (and (not (= x 0)) (and (= x! (- x 1)) (= y! (- y 1))))))) - + (and (= i! i) (and (= j! j) (and (not (= x 0)) (and (= x! (- x 1)) (= y! (- y 1))))))) (define-fun post_fun ((i Int) (j Int) (x Int) (y Int)) Bool -(or (not (= x 0)) (or (not (= i j)) (= y 0)))) + (or (not (= x 0)) (or (not (= i j)) (= y 0)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/tacas_vars.sl b/benchmarks/LIA/2016.SyGuS-Comp/tacas_vars.sl index 1def73a..7199fa3 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/tacas_vars.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/tacas_vars.sl @@ -2,25 +2,14 @@ (synth-inv inv_fun ((i Int) (j Int) (x Int) (y Int) (z1 Int) (z2 Int) (z3 Int))) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var z1 Int) -(declare-primed-var z2 Int) -(declare-primed-var z3 Int) - - (define-fun pre_fun ((i Int) (j Int) (x Int) (y Int) (z1 Int) (z2 Int) (z3 Int)) Bool -(and (= i x) (= j y))) - - + (and (= i x) (= j y))) (define-fun trans_fun ((i Int) (j Int) (x Int) (y Int) (z1 Int) (z2 Int) (z3 Int) (i! Int) (j! Int) (x! Int) (y! Int) (z1! Int) (z2! Int) (z3! Int)) Bool -(and (= i! i) (and (= j! j) (and (not (= x 0)) (and (= x! (- x 1)) (= y! (- y 1))))))) - + (and (= i! i) (and (= j! j) (and (not (= x 0)) (and (= x! (- x 1)) (= y! (- y 1))))))) (define-fun post_fun ((i Int) (j Int) (x Int) (y Int) (z1 Int) (z2 Int) (z3 Int)) Bool -(or (not (= x 0)) (or (not (= i j)) (= y 0)))) + (or (not (= x 0)) (or (not (= i j)) (= y 0)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/treax1.sl b/benchmarks/LIA/2016.SyGuS-Comp/treax1.sl index bbe09b6..0a89d11 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/treax1.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/treax1.sl @@ -2,19 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) - (define-fun pre_fun ((x Int) (y Int)) Bool -(= x 1)) - - -(define-fun trans_fun ((x Int) (y Int) (x! Int) (y! Int) ) Bool -(and (< x y) (= x! (+ x x)))) - + (= x 1)) +(define-fun trans_fun ((x Int) (y Int) (x! Int) (y! Int)) Bool + (and (< x y) (= x! (+ x x)))) (define-fun post_fun ((x Int) (y Int)) Bool -(or (not (>= x y)) (>= x 1))) + (or (not (>= x y)) (>= x 1))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/trex1_vars.sl b/benchmarks/LIA/2016.SyGuS-Comp/trex1_vars.sl index 5fc6038..9bec55e 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/trex1_vars.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/trex1_vars.sl @@ -2,22 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int) (z1 Int) (z2 Int) (z3 Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var z1 Int) -(declare-primed-var z2 Int) -(declare-primed-var z3 Int) - (define-fun pre_fun ((x Int) (y Int) (z1 Int) (z2 Int) (z3 Int)) Bool -(= x 1)) - - + (= x 1)) (define-fun trans_fun ((x Int) (y Int) (z1 Int) (z2 Int) (z3 Int) (x! Int) (y! Int) (z1! Int) (z2! Int) (z3! Int)) Bool -(and (< x y) (= x! (+ x x)))) - + (and (< x y) (= x! (+ x x)))) (define-fun post_fun ((x Int) (y Int) (z1 Int) (z2 Int) (z3 Int)) Bool -(or (not (>= x y)) (>= x 1))) + (or (not (>= x y)) (>= x 1))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/trex3.sl b/benchmarks/LIA/2016.SyGuS-Comp/trex3.sl index bb288ee..25d168d 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/trex3.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/trex3.sl @@ -2,29 +2,14 @@ (synth-inv inv_fun ((x1 Int) (x2 Int) (x3 Int) (d1 Int) (d2 Int) (d3 Int))) -(declare-primed-var x1 Int) -(declare-primed-var x2 Int) -(declare-primed-var x3 Int) -(declare-primed-var d1 Int) -(declare-primed-var d2 Int) -(declare-primed-var d3 Int) - (define-fun pre_fun ((x1 Int) (x2 Int) (x3 Int) (d1 Int) (d2 Int) (d3 Int)) Bool -(and (= d1 1) (and (= d2 1) (= d3 1)))) - - + (and (= d1 1) (and (= d2 1) (= d3 1)))) (define-fun trans_fun ((x1 Int) (x2 Int) (x3 Int) (d1 Int) (d2 Int) (d3 Int) (x1! Int) (x2! Int) (x3! Int) (d1! Int) (d2! Int) (d3! Int)) Bool -(or (and (and (= x2! x2) (and (= x3! x3) (and (= d1! d1) (and (= d2! d2) (= d3! d3))))) (and (> x1 0) (and (> x2 0) (and (> x3 0) (= x1! (+ x1 (- 0 d1))))))) - -(or (and (and (= x1! x1) (and (= x3! x3) (and (= d1! d1) (and (= d2! d2) (= d3! d3))))) (and (> x1 0) (and (> x2 0) (and (> x3 0) (= x2! (+ x2 (- 0 d2))))))) - -(and (and (= x1! x1) (and (= x2! x2) (and (= d1! d1) (and (= d2! d2) (= d3! d3))))) (and (> x1 0) (and (> x2 0) (and (> x3 0) (= x3! (+ x3 (- 0 d3)))))))))) - - + (or (and (and (= x2! x2) (and (= x3! x3) (and (= d1! d1) (and (= d2! d2) (= d3! d3))))) (and (> x1 0) (and (> x2 0) (and (> x3 0) (= x1! (+ x1 (- 0 d1))))))) (or (and (and (= x1! x1) (and (= x3! x3) (and (= d1! d1) (and (= d2! d2) (= d3! d3))))) (and (> x1 0) (and (> x2 0) (and (> x3 0) (= x2! (+ x2 (- 0 d2))))))) (and (and (= x1! x1) (and (= x2! x2) (and (= d1! d1) (and (= d2! d2) (= d3! d3))))) (and (> x1 0) (and (> x2 0) (and (> x3 0) (= x3! (+ x3 (- 0 d3)))))))))) (define-fun post_fun ((x1 Int) (x2 Int) (x3 Int) (d1 Int) (d2 Int) (d3 Int)) Bool -(or (< x1 0) (or (< x2 0) (or (< x3 0) (or (= x1 0) (or (= x2 0) (= x3 0))))))) - + (or (< x1 0) (or (< x2 0) (or (< x3 0) (or (= x1 0) (or (= x2 0) (= x3 0))))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/trex3_vars.sl b/benchmarks/LIA/2016.SyGuS-Comp/trex3_vars.sl index 8f9d033..260d428 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/trex3_vars.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/trex3_vars.sl @@ -2,32 +2,14 @@ (synth-inv inv_fun ((x1 Int) (x2 Int) (x3 Int) (d1 Int) (d2 Int) (d3 Int) (v1 Int) (v2 Int) (v3 Int))) -(declare-primed-var x1 Int) -(declare-primed-var x2 Int) -(declare-primed-var x3 Int) -(declare-primed-var d1 Int) -(declare-primed-var d2 Int) -(declare-primed-var d3 Int) -(declare-primed-var v1 Int) -(declare-primed-var v2 Int) -(declare-primed-var v3 Int) - -(define-fun pre_fun ((x1 Int) (x2 Int) (x3 Int) (d1 Int) (d2 Int) (d3 Int)(v1 Int) (v2 Int) (v3 Int)) Bool -(and (= d1 1) (and (= d2 1) (= d3 1)))) - - +(define-fun pre_fun ((x1 Int) (x2 Int) (x3 Int) (d1 Int) (d2 Int) (d3 Int) (v1 Int) (v2 Int) (v3 Int)) Bool + (and (= d1 1) (and (= d2 1) (= d3 1)))) (define-fun trans_fun ((x1 Int) (x2 Int) (x3 Int) (d1 Int) (d2 Int) (d3 Int) (v1 Int) (v2 Int) (v3 Int) (x1! Int) (x2! Int) (x3! Int) (d1! Int) (d2! Int) (d3! Int) (v1! Int) (v2! Int) (v3! Int)) Bool -(or (and (and (= x2! x2) (and (= x3! x3) (and (= d1! d1) (and (= d2! d2) (= d3! d3))))) (and (> x1 0) (and (> x2 0) (and (> x3 0) (= x1! (+ x1 (- 0 d1))))))) - -(or (and (and (= x1! x1) (and (= x3! x3) (and (= d1! d1) (and (= d2! d2) (= d3! d3))))) (and (> x1 0) (and (> x2 0) (and (> x3 0) (= x2! (+ x2 (- 0 d2))))))) - -(and (and (= x1! x1) (and (= x2! x2) (and (= d1! d1) (and (= d2! d2) (= d3! d3))))) (and (> x1 0) (and (> x2 0) (and (> x3 0) (= x3! (+ x3 (- 0 d3)))))))))) - - + (or (and (and (= x2! x2) (and (= x3! x3) (and (= d1! d1) (and (= d2! d2) (= d3! d3))))) (and (> x1 0) (and (> x2 0) (and (> x3 0) (= x1! (+ x1 (- 0 d1))))))) (or (and (and (= x1! x1) (and (= x3! x3) (and (= d1! d1) (and (= d2! d2) (= d3! d3))))) (and (> x1 0) (and (> x2 0) (and (> x3 0) (= x2! (+ x2 (- 0 d2))))))) (and (and (= x1! x1) (and (= x2! x2) (and (= d1! d1) (and (= d2! d2) (= d3! d3))))) (and (> x1 0) (and (> x2 0) (and (> x3 0) (= x3! (+ x3 (- 0 d3)))))))))) (define-fun post_fun ((x1 Int) (x2 Int) (x3 Int) (d1 Int) (d2 Int) (d3 Int) (v1 Int) (v2 Int) (v3 Int)) Bool -(or (< x1 0) (or (< x2 0) (or (< x3 0) (or (= x1 0) (or (= x2 0) (= x3 0))))))) - + (or (< x1 0) (or (< x2 0) (or (< x3 0) (or (= x1 0) (or (= x2 0) (= x3 0))))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/vsend.sl b/benchmarks/LIA/2016.SyGuS-Comp/vsend.sl index 3bd2a8f..fef7d78 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/vsend.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/vsend.sl @@ -2,18 +2,14 @@ (synth-inv inv_fun ((c Int) (i Int))) -(declare-primed-var c Int) -(declare-primed-var i Int) - (define-fun pre_fun ((c Int) (i Int)) Bool -(= i 0)) - -(define-fun trans_fun ((c Int) (i Int) (c! Int) (i! Int) ) Bool -(and (> c 48) (and (< c 57) (= i! (+ (+ i i) (- c 48)))))) - + (= i 0)) +(define-fun trans_fun ((c Int) (i Int) (c! Int) (i! Int)) Bool + (and (> c 48) (and (< c 57) (= i! (+ (+ i i) (- c 48)))))) (define-fun post_fun ((c Int) (i Int)) Bool -(or (> c 57) (or (< c 48) (>= i 0)))) + (or (> c 57) (or (< c 48) (>= i 0)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2016.SyGuS-Comp/w1.sl b/benchmarks/LIA/2016.SyGuS-Comp/w1.sl index 18b7ff0..ce07de4 100644 --- a/benchmarks/LIA/2016.SyGuS-Comp/w1.sl +++ b/benchmarks/LIA/2016.SyGuS-Comp/w1.sl @@ -2,18 +2,14 @@ (synth-inv inv_fun ((x Int) (n Int))) -(declare-primed-var x Int) -(declare-primed-var n Int) - (define-fun pre_fun ((x Int) (n Int)) Bool -(and (= x 0) (>= n 0))) - -(define-fun trans_fun ((x Int) (n Int) (x! Int) (n! Int) ) Bool -(and (= n! n) (and (< x n) (= x! (+ x 1))))) - + (and (= x 0) (>= n 0))) +(define-fun trans_fun ((x Int) (n Int) (x! Int) (n! Int)) Bool + (and (= n! n) (and (< x n) (= x! (+ x 1))))) (define-fun post_fun ((x Int) (n Int)) Bool -(or (not (>= x n)) (= x n))) + (or (not (>= x n)) (= x n))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/2017.ASE_FiB/fib_01.sl b/benchmarks/LIA/2017.ASE_FiB/fib_01.sl index f2b6fdb..480ddf9 100644 --- a/benchmarks/LIA/2017.ASE_FiB/fib_01.sl +++ b/benchmarks/LIA/2017.ASE_FiB/fib_01.sl @@ -2,18 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) - (define-fun pre_fun ((x Int) (y Int)) Bool -(and (= x 1) (= y 1) )) - + (and (= x 1) (= y 1))) (define-fun trans_fun ((x Int) (y Int) (x! Int) (y! Int)) Bool -(and (= x! (+ x y)) (= y! (+ x y)) )) - + (and (= x! (+ x y)) (= y! (+ x y)))) (define-fun post_fun ((x Int) (y Int)) Bool -(>= y 1) ) + (>= y 1)) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2017.ASE_FiB/fib_04.sl b/benchmarks/LIA/2017.ASE_FiB/fib_04.sl index 269f63e..92cf263 100644 --- a/benchmarks/LIA/2017.ASE_FiB/fib_04.sl +++ b/benchmarks/LIA/2017.ASE_FiB/fib_04.sl @@ -2,20 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) - (define-fun pre_fun ((x Int) (y Int)) Bool -(= x -50)) - + (= x (- 50))) (define-fun trans_fun ((x Int) (y Int) (x! Int) (y! Int)) Bool -(or (and (< x 0) (= x! (+ x y)) (= y! (+ y 1)) ) -(and (>= x 0) (= x! x) (= y! y) -))) - + (or (and (< x 0) (= x! (+ x y)) (= y! (+ y 1))) (and (>= x 0) (= x! x) (= y! y)))) (define-fun post_fun ((x Int) (y Int)) Bool -(=> (not (< x 0)) (>= y 0) )) + (=> (not (< x 0)) (>= y 0))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2017.ASE_FiB/fib_05_x.sl b/benchmarks/LIA/2017.ASE_FiB/fib_05_x.sl index 25c3f0e..6dd9639 100644 --- a/benchmarks/LIA/2017.ASE_FiB/fib_05_x.sl +++ b/benchmarks/LIA/2017.ASE_FiB/fib_05_x.sl @@ -2,22 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int) (i Int) (j Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var i Int) -(declare-primed-var j Int) - (define-fun pre_fun ((x Int) (y Int) (i Int) (j Int)) Bool -(and (= x 0) (= y 0) (= j 0) (= i 0) )) - + (and (= x 0) (= y 0) (= j 0) (= i 0))) (define-fun trans_fun ((x Int) (y Int) (i Int) (j Int) (x! Int) (y! Int) (i! Int) (j! Int)) Bool -(and (= x! (+ x 1)) (= y! (+ y 1)) (= i! (+ x! i)) -(or (= j! (+ y! j)) (= j! (+ (+ y! j) 1)) )) -) - + (and (= x! (+ x 1)) (= y! (+ y 1)) (= i! (+ x! i)) (or (= j! (+ y! j)) (= j! (+ (+ y! j) 1))))) (define-fun post_fun ((x Int) (y Int) (i Int) (j Int)) Bool -(>= j i)) + (>= j i)) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2017.ASE_FiB/fib_07.sl b/benchmarks/LIA/2017.ASE_FiB/fib_07.sl index 6cdc272..4147832 100644 --- a/benchmarks/LIA/2017.ASE_FiB/fib_07.sl +++ b/benchmarks/LIA/2017.ASE_FiB/fib_07.sl @@ -2,23 +2,14 @@ (synth-inv inv_fun ((i Int) (n Int) (a Int) (b Int))) -(declare-primed-var i Int) -(declare-primed-var n Int) -(declare-primed-var a Int) -(declare-primed-var b Int) - (define-fun pre_fun ((i Int) (n Int) (a Int) (b Int)) Bool -(and (= i 0) (= a 0) (= b 0) (>= n 0) )) - + (and (= i 0) (= a 0) (= b 0) (>= n 0))) (define-fun trans_fun ((i Int) (n Int) (a Int) (b Int) (i! Int) (n! Int) (a! Int) (b! Int)) Bool -(or (and (< i n) (= i! (+ i 1)) (= a! (+ a 1)) (= b! (+ b 2)) (= n! n)) -(and (< i n) (= i! (+ i 1)) (= a! (+ a 2)) (= b! (+ b 1)) (= n! n)) -(and (>= i n) (= i! i) (= a! a) (= b! b) (= n! n) -))) - + (or (and (< i n) (= i! (+ i 1)) (= a! (+ a 1)) (= b! (+ b 2)) (= n! n)) (and (< i n) (= i! (+ i 1)) (= a! (+ a 2)) (= b! (+ b 1)) (= n! n)) (and (>= i n) (= i! i) (= a! a) (= b! b) (= n! n)))) (define-fun post_fun ((i Int) (n Int) (a Int) (b Int)) Bool - (=> (not (< i n)) (= (+ a b) (+ (+ n n) n)))) + (=> (not (< i n)) (= (+ a b) (+ (+ n n) n)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2017.ASE_FiB/fib_08.sl b/benchmarks/LIA/2017.ASE_FiB/fib_08.sl index 6010cfa..537a8a1 100644 --- a/benchmarks/LIA/2017.ASE_FiB/fib_08.sl +++ b/benchmarks/LIA/2017.ASE_FiB/fib_08.sl @@ -2,22 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) - (define-fun pre_fun ((x Int) (y Int)) Bool -(and (= x 0) (= y 0) )) - + (and (= x 0) (= y 0))) (define-fun trans_fun ((x Int) (y Int) (x! Int) (y! Int)) Bool -(or (and (= x! (+ x 1)) (= y! (+ y 100))) -(and (>= x 4) (= x! (+ x 1)) (= y! (+ y 1))) -(and (< x 0) (= x! x) (= y! (- y 1))) -(and (= x! x) (= y! y)) -)) - + (or (and (= x! (+ x 1)) (= y! (+ y 100))) (and (>= x 4) (= x! (+ x 1)) (= y! (+ y 1))) (and (< x 0) (= x! x) (= y! (- y 1))) (and (= x! x) (= y! y)))) (define-fun post_fun ((x Int) (y Int)) Bool -(or (< x 4) (> y 2)) ) + (or (< x 4) (> y 2))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2017.ASE_FiB/fib_09s.sl b/benchmarks/LIA/2017.ASE_FiB/fib_09s.sl index 515f826..5193c42 100644 --- a/benchmarks/LIA/2017.ASE_FiB/fib_09s.sl +++ b/benchmarks/LIA/2017.ASE_FiB/fib_09s.sl @@ -2,33 +2,14 @@ (synth-inv inv_fun ((i Int) (pvlen Int) (t Int) (k Int) (n Int) (j Int) (turn Int))) -(declare-primed-var i Int) -(declare-primed-var pvlen Int) -(declare-primed-var t Int) -(declare-primed-var k Int) -(declare-primed-var n Int) -(declare-primed-var j Int) -(declare-primed-var turn Int) - (define-fun pre_fun ((i Int) (pvlen Int) (t Int) (k Int) (n Int) (j Int) (turn Int)) Bool -(and (= k 0) (= i 0) (= turn 0) -)) - + (and (= k 0) (= i 0) (= turn 0))) (define-fun trans_fun ((i Int) (pvlen Int) (t Int) (k Int) (n Int) (j Int) (turn Int) (i! Int) (pvlen! Int) (t! Int) (k! Int) (n! Int) (j! Int) (turn! Int)) Bool -(or (and (= turn 0) (= i! (+ i 1)) (= pvlen! pvlen) (= t! t) (= k! k) (= n! n) (= j! j) (= turn! 0)) -(and (= turn 0) (= i! (+ i 1)) (= pvlen! pvlen) (= t! t) (= k! k) (= n! n) (= j! j) (= turn! 1)) -(and (= turn 1) (> i pvlen) (= i! 0) (= pvlen! i) (= t! t) (= k! k) (= n! n) (= j! j) (= turn! 2)) -(and (= turn 1) (<= i pvlen) (= i! 0) (= pvlen! pvlen) (= t! t) (= k! k) (= n! n) (= j! j) (= turn! 2)) -(and (= turn 2) (= i! (+ i 1)) (= pvlen! pvlen) (= t! i) (= k! (+ k 1)) (= n! n) (= j! j) (= turn! 2)) -(and (= turn 2) (= i! (+ i 1)) (= pvlen! pvlen) (= t! i) (= k! (+ k 1)) (= n! n) (= j! j) (= turn! 3)) -(and (= turn 3) (= i! i) (= pvlen! pvlen) (= t! t) (= k! k) (= n! n) (= j! j) (= turn! 3)) -(and (= turn 3) (= i! i) (= pvlen! pvlen) (= t! t) (= k! k) (= n! n) (= j! j) (= turn! 4)) -(and (= turn 4) (= i! i) (= pvlen! pvlen) (= t! t) (= k! k) (= n! i) (= j! 0) (= turn! 5)) -)) - + (or (and (= turn 0) (= i! (+ i 1)) (= pvlen! pvlen) (= t! t) (= k! k) (= n! n) (= j! j) (= turn! 0)) (and (= turn 0) (= i! (+ i 1)) (= pvlen! pvlen) (= t! t) (= k! k) (= n! n) (= j! j) (= turn! 1)) (and (= turn 1) (> i pvlen) (= i! 0) (= pvlen! i) (= t! t) (= k! k) (= n! n) (= j! j) (= turn! 2)) (and (= turn 1) (<= i pvlen) (= i! 0) (= pvlen! pvlen) (= t! t) (= k! k) (= n! n) (= j! j) (= turn! 2)) (and (= turn 2) (= i! (+ i 1)) (= pvlen! pvlen) (= t! i) (= k! (+ k 1)) (= n! n) (= j! j) (= turn! 2)) (and (= turn 2) (= i! (+ i 1)) (= pvlen! pvlen) (= t! i) (= k! (+ k 1)) (= n! n) (= j! j) (= turn! 3)) (and (= turn 3) (= i! i) (= pvlen! pvlen) (= t! t) (= k! k) (= n! n) (= j! j) (= turn! 3)) (and (= turn 3) (= i! i) (= pvlen! pvlen) (= t! t) (= k! k) (= n! n) (= j! j) (= turn! 4)) (and (= turn 4) (= i! i) (= pvlen! pvlen) (= t! t) (= k! k) (= n! i) (= j! 0) (= turn! 5)))) (define-fun post_fun ((i Int) (pvlen Int) (t Int) (k Int) (n Int) (j Int) (turn Int)) Bool -(>= k 0)) + (>= k 0)) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2017.ASE_FiB/fib_10.sl b/benchmarks/LIA/2017.ASE_FiB/fib_10.sl index 65bd67b..7e98745 100644 --- a/benchmarks/LIA/2017.ASE_FiB/fib_10.sl +++ b/benchmarks/LIA/2017.ASE_FiB/fib_10.sl @@ -2,25 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int) (w Int) (z Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var w Int) -(declare-primed-var z Int) - (define-fun pre_fun ((x Int) (y Int) (w Int) (z Int)) Bool -(and (= w 1) (= z 0) (= x 0) (= y 0))) - + (and (= w 1) (= z 0) (= x 0) (= y 0))) (define-fun trans_fun ((x Int) (y Int) (w Int) (z Int) (x! Int) (y! Int) (w! Int) (z! Int)) Bool -(or -(and (= w 1) (= z 0) (= x! (+ x 1)) (= w! 0) (= y! (+ y 1)) (= z! 1)) -(and (not (= w 1)) (= z 0) (= x! x ) (= w! w) (= y! (+ y 1)) (= z! 1)) -(and (= w 1) (not (= z 0)) (= x! (+ x 1)) (= w! 0) (= y! y ) (= z! z)) -(and (not (= w 1)) (not (= z 0)) (= x! x ) (= w! w) (= y! y ) (= z! z)) -)) - + (or (and (= w 1) (= z 0) (= x! (+ x 1)) (= w! 0) (= y! (+ y 1)) (= z! 1)) (and (not (= w 1)) (= z 0) (= x! x) (= w! w) (= y! (+ y 1)) (= z! 1)) (and (= w 1) (not (= z 0)) (= x! (+ x 1)) (= w! 0) (= y! y) (= z! z)) (and (not (= w 1)) (not (= z 0)) (= x! x) (= w! w) (= y! y) (= z! z)))) (define-fun post_fun ((x Int) (y Int) (w Int) (z Int)) Bool -(= x y)) + (= x y)) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2017.ASE_FiB/fib_11.sl b/benchmarks/LIA/2017.ASE_FiB/fib_11.sl index a12a638..651969f 100644 --- a/benchmarks/LIA/2017.ASE_FiB/fib_11.sl +++ b/benchmarks/LIA/2017.ASE_FiB/fib_11.sl @@ -2,21 +2,14 @@ (synth-inv inv_fun ((x Int) (i Int) (j Int))) -(declare-primed-var x Int) -(declare-primed-var i Int) -(declare-primed-var j Int) - (define-fun pre_fun ((x Int) (i Int) (j Int)) Bool -(and (= j 0) (> x 0) (= i 0) )) - + (and (= j 0) (> x 0) (= i 0))) (define-fun trans_fun ((x Int) (i Int) (j Int) (x! Int) (i! Int) (j! Int)) Bool -(or (and (< i x) (= j! (+ j 2)) (= i! (+ i 1)) (= x! x) ) -(and (>= i x) (= j! j) (= i! i) (= x! x) ) -)) - + (or (and (< i x) (= j! (+ j 2)) (= i! (+ i 1)) (= x! x)) (and (>= i x) (= j! j) (= i! i) (= x! x)))) (define-fun post_fun ((x Int) (i Int) (j Int)) Bool -(=> (not (< i x)) (= j (* 2 x)))) + (=> (not (< i x)) (= j (* 2 x)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2017.ASE_FiB/fib_13.sl b/benchmarks/LIA/2017.ASE_FiB/fib_13.sl index bf19ee0..f0c183d 100644 --- a/benchmarks/LIA/2017.ASE_FiB/fib_13.sl +++ b/benchmarks/LIA/2017.ASE_FiB/fib_13.sl @@ -2,22 +2,14 @@ (synth-inv inv_fun ((j Int) (k Int) (t Int))) -(declare-primed-var j Int) -(declare-primed-var k Int) -(declare-primed-var t Int) - (define-fun pre_fun ((j Int) (k Int) (t Int)) Bool -(and (= j 2) (= k 0) )) - + (and (= j 2) (= k 0))) (define-fun trans_fun ((j Int) (k Int) (t Int) (j! Int) (k! Int) (t! Int)) Bool -(or (and (= t 0) (= j! (+ j 4)) (= k! k) (= t! t)) -(and (not (= t 0)) (= j! (+ j 2)) (= k! (+ k 1)) (= t! t )) -)) - + (or (and (= t 0) (= j! (+ j 4)) (= k! k) (= t! t)) (and (not (= t 0)) (= j! (+ j 2)) (= k! (+ k 1)) (= t! t)))) (define-fun post_fun ((j Int) (k Int) (t Int)) Bool -(or (= k 0) (= j (+ (* k 2) 2) ))) - + (or (= k 0) (= j (+ (* k 2) 2)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2017.ASE_FiB/fib_14.sl b/benchmarks/LIA/2017.ASE_FiB/fib_14.sl index cf3722d..4cc87f6 100644 --- a/benchmarks/LIA/2017.ASE_FiB/fib_14.sl +++ b/benchmarks/LIA/2017.ASE_FiB/fib_14.sl @@ -2,22 +2,14 @@ (synth-inv inv_fun ((a Int) (j Int) (m Int))) -(declare-primed-var a Int) -(declare-primed-var j Int) -(declare-primed-var m Int) - (define-fun pre_fun ((a Int) (j Int) (m Int)) Bool -(and (= a 0) (> m 0) (= j 1))) - + (and (= a 0) (> m 0) (= j 1))) (define-fun trans_fun ((a Int) (j Int) (m Int) (a! Int) (j! Int) (m! Int)) Bool -(or (and (> j m) (= a! a) (= j! j) (= m! m)) -(and (<= j m) (= j! (+ j 1)) (= a! (+ a 1)) (= m! m)) -(and (<= j m) (= j! (+ j 1)) (= a! (- a 1)) (= m! m)) -)) - + (or (and (> j m) (= a! a) (= j! j) (= m! m)) (and (<= j m) (= j! (+ j 1)) (= a! (+ a 1)) (= m! m)) (and (<= j m) (= j! (+ j 1)) (= a! (- a 1)) (= m! m)))) (define-fun post_fun ((a Int) (j Int) (m Int)) Bool -(=> (not (<= j m)) (and (>= a (- 0 m)) (<= a m)))) + (=> (not (<= j m)) (and (>= a (- 0 m)) (<= a m)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2017.ASE_FiB/fib_15.sl b/benchmarks/LIA/2017.ASE_FiB/fib_15.sl index 61cf1ee..5b150e0 100644 --- a/benchmarks/LIA/2017.ASE_FiB/fib_15.sl +++ b/benchmarks/LIA/2017.ASE_FiB/fib_15.sl @@ -2,21 +2,14 @@ (synth-inv inv_fun ((n Int) (j Int) (k Int))) -(declare-primed-var n Int) -(declare-primed-var j Int) -(declare-primed-var k Int) - (define-fun pre_fun ((n Int) (j Int) (k Int)) Bool -(and (= j 0) (> n 0) (> k n) )) - + (and (= j 0) (> n 0) (> k n))) (define-fun trans_fun ((n Int) (j Int) (k Int) (n! Int) (j! Int) (k! Int)) Bool -(or (and (< j n) (= j! (+ j 1)) (= k! (- k 1)) (= n! n) ) -(and (>= j n) (= j! j) (= k! k) (= n! n)) -)) - + (or (and (< j n) (= j! (+ j 1)) (= k! (- k 1)) (= n! n)) (and (>= j n) (= j! j) (= k! k) (= n! n)))) (define-fun post_fun ((n Int) (j Int) (k Int)) Bool -(=> (not (< j n)) (>= k 0))) + (=> (not (< j n)) (>= k 0))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2017.ASE_FiB/fib_16.sl b/benchmarks/LIA/2017.ASE_FiB/fib_16.sl index 7d8c941..815ba25 100644 --- a/benchmarks/LIA/2017.ASE_FiB/fib_16.sl +++ b/benchmarks/LIA/2017.ASE_FiB/fib_16.sl @@ -2,22 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int) (i Int) (j Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var i Int) -(declare-primed-var j Int) - (define-fun pre_fun ((x Int) (y Int) (i Int) (j Int)) Bool -(and (= x i) (= y j))) - + (and (= x i) (= y j))) (define-fun trans_fun ((x Int) (y Int) (i Int) (j Int) (x! Int) (y! Int) (i! Int) (j! Int)) Bool -(or (and (not (= x 0)) (= x! (- x 1)) (= y! (- y 1)) (= i! i) (= j! j)) -(and (= x 0) (= x! x) (= y! y) (= i! i) (= j! j)) -)) - + (or (and (not (= x 0)) (= x! (- x 1)) (= y! (- y 1)) (= i! i) (= j! j)) (and (= x 0) (= x! x) (= y! y) (= i! i) (= j! j)))) (define-fun post_fun ((x Int) (y Int) (i Int) (j Int)) Bool -(=> (= x 0) (or (not (= i j)) (= y 0)))) + (=> (= x 0) (or (not (= i j)) (= y 0)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2017.ASE_FiB/fib_17n.sl b/benchmarks/LIA/2017.ASE_FiB/fib_17n.sl index 3d5df2d..e102013 100644 --- a/benchmarks/LIA/2017.ASE_FiB/fib_17n.sl +++ b/benchmarks/LIA/2017.ASE_FiB/fib_17n.sl @@ -2,28 +2,14 @@ (synth-inv inv_fun ((k Int) (i Int) (j Int) (n Int) (turn Int))) -(declare-primed-var k Int) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var n Int) -(declare-primed-var turn Int) - (define-fun pre_fun ((k Int) (i Int) (j Int) (n Int) (turn Int)) Bool -(and (= k 1) (= i 1) (= j 0) (= turn 0))) - + (and (= k 1) (= i 1) (= j 0) (= turn 0))) (define-fun trans_fun ((k Int) (i Int) (j Int) (n Int) (turn Int) (k! Int) (i! Int) (j! Int) (n! Int) (turn! Int)) Bool -(or (and (= turn 0) (< i n) (= k! k) (= i! i) (= j! 0) (= n! n) (= turn! 1)) -(and (= turn 0) (>= i n) (= k! k) (= i! i) (= j! j) (= n! n) (= turn! 3)) -(and (= turn 1) (< j i) (= k! (- (+ k i) j)) (= i! i) (= j! (+ j 1)) (= n! n) (= turn! turn)) -(and (= turn 1) (>= j i) (= k! k) (= i! i) (= j! j) (= n! n) (= turn! 2)) -(and (= turn 2) (= k! k) (= i! (+ i 1)) (= j! j) (= n! n) (= turn! 0)) -(and (>= turn 3) (= k! k) (= i! i) (= j! j) (= n! n) (= turn! turn)) -(and (< turn 0) (= k! k) (= i! i) (= j! j) (= n! n) (= turn! turn)) -)) - + (or (and (= turn 0) (< i n) (= k! k) (= i! i) (= j! 0) (= n! n) (= turn! 1)) (and (= turn 0) (>= i n) (= k! k) (= i! i) (= j! j) (= n! n) (= turn! 3)) (and (= turn 1) (< j i) (= k! (- (+ k i) j)) (= i! i) (= j! (+ j 1)) (= n! n) (= turn! turn)) (and (= turn 1) (>= j i) (= k! k) (= i! i) (= j! j) (= n! n) (= turn! 2)) (and (= turn 2) (= k! k) (= i! (+ i 1)) (= j! j) (= n! n) (= turn! 0)) (and (>= turn 3) (= k! k) (= i! i) (= j! j) (= n! n) (= turn! turn)) (and (< turn 0) (= k! k) (= i! i) (= j! j) (= n! n) (= turn! turn)))) (define-fun post_fun ((k Int) (i Int) (j Int) (n Int) (turn Int)) Bool -(=> (= turn 3) (>= k n))) + (=> (= turn 3) (>= k n))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2017.ASE_FiB/fib_18.sl b/benchmarks/LIA/2017.ASE_FiB/fib_18.sl index 2707d82..1885be4 100644 --- a/benchmarks/LIA/2017.ASE_FiB/fib_18.sl +++ b/benchmarks/LIA/2017.ASE_FiB/fib_18.sl @@ -2,24 +2,14 @@ (synth-inv inv_fun ((b Int) (j Int) (n Int) (flag Int))) -(declare-primed-var b Int) -(declare-primed-var j Int) -(declare-primed-var n Int) -(declare-primed-var flag Int) - (define-fun pre_fun ((b Int) (j Int) (n Int) (flag Int)) Bool -(and (= j 0) (> n 0) (= b 0) )) - + (and (= j 0) (> n 0) (= b 0))) (define-fun trans_fun ((b Int) (j Int) (n Int) (flag Int) (b! Int) (j! Int) (n! Int) (flag! Int)) Bool -(or (and (< b n) (= flag 1) (= j! (+ j 1)) (= b! (+ b 1)) (= n! n) (= flag! flag)) -(and (< b n) (not (= flag 1)) (= j! j) (= b! (+ b 1)) (= n! n) (= flag! flag)) -(and (>= b n) (= j! j) (= b! b) (= n! n) (= flag! flag)) -)) - + (or (and (< b n) (= flag 1) (= j! (+ j 1)) (= b! (+ b 1)) (= n! n) (= flag! flag)) (and (< b n) (not (= flag 1)) (= j! j) (= b! (+ b 1)) (= n! n) (= flag! flag)) (and (>= b n) (= j! j) (= b! b) (= n! n) (= flag! flag)))) (define-fun post_fun ((b Int) (j Int) (n Int) (flag Int)) Bool -(=> (not (< b n)) (or (not (= flag 1)) (= j n))) -) + (=> (not (< b n)) (or (not (= flag 1)) (= j n)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2017.ASE_FiB/fib_19.sl b/benchmarks/LIA/2017.ASE_FiB/fib_19.sl index 8002920..b67c294 100644 --- a/benchmarks/LIA/2017.ASE_FiB/fib_19.sl +++ b/benchmarks/LIA/2017.ASE_FiB/fib_19.sl @@ -2,24 +2,14 @@ (synth-inv inv_fun ((n Int) (m Int) (x Int) (y Int))) -(declare-primed-var n Int) -(declare-primed-var m Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - (define-fun pre_fun ((n Int) (m Int) (x Int) (y Int)) Bool -(and (>= n 0) (>= m 0) (< m n) (= x 0) (= y m))) - + (and (>= n 0) (>= m 0) (< m n) (= x 0) (= y m))) (define-fun trans_fun ((n Int) (m Int) (x Int) (y Int) (n! Int) (m! Int) (x! Int) (y! Int)) Bool -(or -(and (< x n) (<= (+ x 1) m) (= x! (+ x 1)) (= y! y) (= n! n) (= m! m)) -(and (< x n) (> (+ x 1) m) (= x! (+ x 1)) (= y! (+ y 1)) (= n! n) (= m! m)) -(and (>= x n) (= x! x) (= y! y) (= n! n) (= m! m)) -)) - + (or (and (< x n) (<= (+ x 1) m) (= x! (+ x 1)) (= y! y) (= n! n) (= m! m)) (and (< x n) (> (+ x 1) m) (= x! (+ x 1)) (= y! (+ y 1)) (= n! n) (= m! m)) (and (>= x n) (= x! x) (= y! y) (= n! n) (= m! m)))) (define-fun post_fun ((n Int) (m Int) (x Int) (y Int)) Bool -(=> (not (< x n)) (= y n))) + (=> (not (< x n)) (= y n))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2017.ASE_FiB/fib_20.sl b/benchmarks/LIA/2017.ASE_FiB/fib_20.sl index ec62044..e68dd17 100644 --- a/benchmarks/LIA/2017.ASE_FiB/fib_20.sl +++ b/benchmarks/LIA/2017.ASE_FiB/fib_20.sl @@ -2,29 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int) (k Int) (j Int) (i Int) (n Int) (m Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var k Int) -(declare-primed-var j Int) -(declare-primed-var i Int) -(declare-primed-var n Int) -(declare-primed-var m Int) - (define-fun pre_fun ((x Int) (y Int) (k Int) (j Int) (i Int) (n Int) (m Int)) Bool -(and (= (+ x y) k) (= m 0) (= j 0))) - + (and (= (+ x y) k) (= m 0) (= j 0))) (define-fun trans_fun ((x Int) (y Int) (k Int) (j Int) (i Int) (n Int) (m Int) (x! Int) (y! Int) (k! Int) (j! Int) (i! Int) (n! Int) (m! Int)) Bool -(or -(and (< j n) (= j i) (= x! (+ x 1)) (= y! (- y 1)) (= k! k) (= j! (+ j 1)) (= i! i) (= n! n) (= m! m)) -(and (< j n) (= j i) (= x! (+ x 1)) (= y! (- y 1)) (= k! k) (= j! (+ j 1)) (= i! i) (= n! n) (= m! j)) -(and (< j n) (not (= j i)) (= x! (- x 1)) (= y! (+ y 1)) (= k! k) (= j! (+ j 1)) (= i! i) (= n! n) (= m! m)) -(and (< j n) (not (= j i)) (= x! (- x 1)) (= y! (+ y 1)) (= k! k) (= j! (+ j 1)) (= i! i) (= n! n) (= m! j)) -(and (>= j n) (= x! x) (= y! y) (= k! k) (= j! j) (= i! i) (= n! n) (= m! m)) -)) - + (or (and (< j n) (= j i) (= x! (+ x 1)) (= y! (- y 1)) (= k! k) (= j! (+ j 1)) (= i! i) (= n! n) (= m! m)) (and (< j n) (= j i) (= x! (+ x 1)) (= y! (- y 1)) (= k! k) (= j! (+ j 1)) (= i! i) (= n! n) (= m! j)) (and (< j n) (not (= j i)) (= x! (- x 1)) (= y! (+ y 1)) (= k! k) (= j! (+ j 1)) (= i! i) (= n! n) (= m! m)) (and (< j n) (not (= j i)) (= x! (- x 1)) (= y! (+ y 1)) (= k! k) (= j! (+ j 1)) (= i! i) (= n! n) (= m! j)) (and (>= j n) (= x! x) (= y! y) (= k! k) (= j! j) (= i! i) (= n! n) (= m! m)))) (define-fun post_fun ((x Int) (y Int) (k Int) (j Int) (i Int) (n Int) (m Int)) Bool -(=> (>= j n) (and (= (+ x y) k) (or (<= n 0) (<= 0 m)) (or (<= n 0) (<= m n))))) + (=> (>= j n) (and (= (+ x y) k) (or (<= n 0) (<= 0 m)) (or (<= n 0) (<= m n))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2017.ASE_FiB/fib_21.sl b/benchmarks/LIA/2017.ASE_FiB/fib_21.sl index 83c885b..f4f2e61 100644 --- a/benchmarks/LIA/2017.ASE_FiB/fib_21.sl +++ b/benchmarks/LIA/2017.ASE_FiB/fib_21.sl @@ -2,27 +2,14 @@ (synth-inv inv_fun ((i Int) (j Int) (k Int) (c1 Int) (c2 Int) (n Int) (v Int))) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var k Int) -(declare-primed-var c1 Int) -(declare-primed-var c2 Int) -(declare-primed-var n Int) -(declare-primed-var v Int) - (define-fun pre_fun ((i Int) (j Int) (k Int) (c1 Int) (c2 Int) (n Int) (v Int)) Bool -(and (> n 0) (< n 10) (= k 0) (= i 0) (= c1 4000) (= c2 2000))) - + (and (> n 0) (< n 10) (= k 0) (= i 0) (= c1 4000) (= c2 2000))) (define-fun trans_fun ((i Int) (j Int) (k Int) (c1 Int) (c2 Int) (n Int) (v Int) (i! Int) (j! Int) (k! Int) (c1! Int) (c2! Int) (n! Int) (v! Int)) Bool -(or -(and (>= i n) (= i! i) (= j! j) (= k! k) (= c1! c1) (= c2! c2) (= n! n) (= v! v)) -(and (< i n) (= i! (+ i 1)) (= j! j) (= k! (+ k c1)) (= c1! c1) (= c2! c2) (= n! n) (= v! 0)) -(and (< i n) (= i! (+ i 1)) (= j! j) (= k! (+ k c2)) (= c1! c1) (= c2! c2) (= n! n) (= v! 1)) -)) - + (or (and (>= i n) (= i! i) (= j! j) (= k! k) (= c1! c1) (= c2! c2) (= n! n) (= v! v)) (and (< i n) (= i! (+ i 1)) (= j! j) (= k! (+ k c1)) (= c1! c1) (= c2! c2) (= n! n) (= v! 0)) (and (< i n) (= i! (+ i 1)) (= j! j) (= k! (+ k c2)) (= c1! c1) (= c2! c2) (= n! n) (= v! 1)))) (define-fun post_fun ((i Int) (j Int) (k Int) (c1 Int) (c2 Int) (n Int) (v Int)) Bool -(=> (>= i n) (> k n))) + (=> (>= i n) (> k n))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2017.ASE_FiB/fib_23_x.sl b/benchmarks/LIA/2017.ASE_FiB/fib_23_x.sl index f9bd09a..e2a7548 100644 --- a/benchmarks/LIA/2017.ASE_FiB/fib_23_x.sl +++ b/benchmarks/LIA/2017.ASE_FiB/fib_23_x.sl @@ -2,22 +2,14 @@ (synth-inv inv_fun ((i Int) (sum Int) (n Int))) -(declare-primed-var i Int) -(declare-primed-var sum Int) -(declare-primed-var n Int) - (define-fun pre_fun ((i Int) (sum Int) (n Int)) Bool -(and (= sum 0) (>= n 0) (= i 0))) - + (and (= sum 0) (>= n 0) (= i 0))) (define-fun trans_fun ((i Int) (sum Int) (n Int) (i! Int) (sum! Int) (n! Int)) Bool -(or -(and (< i n) (= i! (+ i 1)) (= sum! (+ sum i)) (= n! n)) -(and (>= i n) (= i! i) (= sum! sum) (= n! n)) -)) - + (or (and (< i n) (= i! (+ i 1)) (= sum! (+ sum i)) (= n! n)) (and (>= i n) (= i! i) (= sum! sum) (= n! n)))) (define-fun post_fun ((i Int) (sum Int) (n Int)) Bool -(=> (>= i n) (>= sum 0))) + (=> (>= i n) (>= sum 0))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2017.ASE_FiB/fib_25n.sl b/benchmarks/LIA/2017.ASE_FiB/fib_25n.sl index bea8de1..00926c8 100644 --- a/benchmarks/LIA/2017.ASE_FiB/fib_25n.sl +++ b/benchmarks/LIA/2017.ASE_FiB/fib_25n.sl @@ -2,30 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int) (i Int) (j Int) (turn Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var turn Int) - (define-fun pre_fun ((x Int) (y Int) (i Int) (j Int) (turn Int)) Bool -(and (= x 0) (= y 0) (= i 0) (= j 0) (= turn 0))) - + (and (= x 0) (= y 0) (= i 0) (= j 0) (= turn 0))) (define-fun trans_fun ((x Int) (y Int) (i Int) (j Int) (turn Int) (x! Int) (y! Int) (i! Int) (j! Int) (turn! Int)) Bool -(or -(and (= turn 0) (= x! x) (= y! y) (= i! i) (= j! j) (= turn! 1)) -(and (= turn 0) (= x! x) (= y! y) (= i! i) (= j! j) (= turn! 2)) -(and (= turn 1) (= x y) (= x! x) (= y! y) (= i! (+ i 1)) (= j! j) (= turn! 1)) -(and (= turn 1) (= x y) (= x! x) (= y! y) (= i! (+ i 1)) (= j! j) (= turn! 2)) -(and (= turn 1) (not (= x y)) (= x! x) (= y! y) (= i! i) (= j! (+ j 1)) (= turn! 1)) -(and (= turn 1) (not (= x y)) (= x! x) (= y! y) (= i! i) (= j! (+ j 1)) (= turn! 2)) -(and (= turn 2) (>= i j) (= x! (+ x 1)) (= y! (+ y 1)) (= i! i) (= j! j) (= turn! 0)) -(and (= turn 2) (< i j) (= x! x) (= y! (+ y 1)) (= i! i) (= j! j) (= turn! 0)) -)) - + (or (and (= turn 0) (= x! x) (= y! y) (= i! i) (= j! j) (= turn! 1)) (and (= turn 0) (= x! x) (= y! y) (= i! i) (= j! j) (= turn! 2)) (and (= turn 1) (= x y) (= x! x) (= y! y) (= i! (+ i 1)) (= j! j) (= turn! 1)) (and (= turn 1) (= x y) (= x! x) (= y! y) (= i! (+ i 1)) (= j! j) (= turn! 2)) (and (= turn 1) (not (= x y)) (= x! x) (= y! y) (= i! i) (= j! (+ j 1)) (= turn! 1)) (and (= turn 1) (not (= x y)) (= x! x) (= y! y) (= i! i) (= j! (+ j 1)) (= turn! 2)) (and (= turn 2) (>= i j) (= x! (+ x 1)) (= y! (+ y 1)) (= i! i) (= j! j) (= turn! 0)) (and (= turn 2) (< i j) (= x! x) (= y! (+ y 1)) (= i! i) (= j! j) (= turn! 0)))) (define-fun post_fun ((x Int) (y Int) (i Int) (j Int) (turn Int)) Bool -(>= i j)) + (>= i j)) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2017.ASE_FiB/fib_28.sl b/benchmarks/LIA/2017.ASE_FiB/fib_28.sl index d31b757..0a38973 100644 --- a/benchmarks/LIA/2017.ASE_FiB/fib_28.sl +++ b/benchmarks/LIA/2017.ASE_FiB/fib_28.sl @@ -2,22 +2,14 @@ (synth-inv inv_fun ((n Int) (x Int) (y Int))) -(declare-primed-var n Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - (define-fun pre_fun ((n Int) (x Int) (y Int)) Bool -(and (= n 0) (>= x 0) (>= y 0) (= x y))) - + (and (= n 0) (>= x 0) (>= y 0) (= x y))) (define-fun trans_fun ((n Int) (x Int) (y Int) (n! Int) (x! Int) (y! Int)) Bool -(or -(and (= x n) (= n! n) (= x! x) (= y! y)) -(and (not (= x n)) (= n! n) (= x! (- x 1)) (= y! (- y 1))) -)) - + (or (and (= x n) (= n! n) (= x! x) (= y! y)) (and (not (= x n)) (= n! n) (= x! (- x 1)) (= y! (- y 1))))) (define-fun post_fun ((n Int) (x Int) (y Int)) Bool -(=> (= x n) (= y n))) + (=> (= x n) (= y n))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2017.ASE_FiB/fib_30_x.sl b/benchmarks/LIA/2017.ASE_FiB/fib_30_x.sl index 7fc12ea..0d978e8 100644 --- a/benchmarks/LIA/2017.ASE_FiB/fib_30_x.sl +++ b/benchmarks/LIA/2017.ASE_FiB/fib_30_x.sl @@ -2,22 +2,14 @@ (synth-inv inv_fun ((i Int) (c Int) (n Int))) -(declare-primed-var i Int) -(declare-primed-var c Int) -(declare-primed-var n Int) - (define-fun pre_fun ((i Int) (c Int) (n Int)) Bool -(and (= i 0) (= c 0) (> n 0))) - + (and (= i 0) (= c 0) (> n 0))) (define-fun trans_fun ((i Int) (c Int) (n Int) (i! Int) (c! Int) (n! Int)) Bool -(or -(and (>= i n) (= i! i) (= c! c) (= n! n)) -(and (< i n) (= i! (+ i 1)) (= c! (+ c i)) (= n! n)) -)) - + (or (and (>= i n) (= i! i) (= c! c) (= n! n)) (and (< i n) (= i! (+ i 1)) (= c! (+ c i)) (= n! n)))) (define-fun post_fun ((i Int) (c Int) (n Int)) Bool -(=> (>= i n) (>= c 0))) + (=> (>= i n) (>= c 0))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2017.ASE_FiB/fib_32.sl b/benchmarks/LIA/2017.ASE_FiB/fib_32.sl index ba13025..cd8fdba 100644 --- a/benchmarks/LIA/2017.ASE_FiB/fib_32.sl +++ b/benchmarks/LIA/2017.ASE_FiB/fib_32.sl @@ -2,25 +2,14 @@ (synth-inv inv_fun ((k Int) (b Int) (i Int) (j Int) (n Int))) -(declare-primed-var k Int) -(declare-primed-var b Int) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var n Int) - (define-fun pre_fun ((k Int) (b Int) (i Int) (j Int) (n Int)) Bool -(and (> k 0) (= i j) (= n 0) (or (= b 1) (= b 0)))) - + (and (> k 0) (= i j) (= n 0) (or (= b 1) (= b 0)))) (define-fun trans_fun ((k Int) (b Int) (i Int) (j Int) (n Int) (k! Int) (b! Int) (i! Int) (j! Int) (n! Int)) Bool -(or -(and (>= n (* 2 k)) (= k! k) (= b! b) (= i! i) (= j! j) (= n! n)) -(and (< n (* 2 k)) (= b 1) (= k! k) (= b! 0) (= i! (+ i 1)) (= j! j) (= n! (+ n 1))) -(and (< n (* 2 k)) (not (= b 1)) (= k! k) (= b! 1) (= i! i) (= j! (+ j 1)) (= n! (+ n 1))) -)) - + (or (and (>= n (* 2 k)) (= k! k) (= b! b) (= i! i) (= j! j) (= n! n)) (and (< n (* 2 k)) (= b 1) (= k! k) (= b! 0) (= i! (+ i 1)) (= j! j) (= n! (+ n 1))) (and (< n (* 2 k)) (not (= b 1)) (= k! k) (= b! 1) (= i! i) (= j! (+ j 1)) (= n! (+ n 1))))) (define-fun post_fun ((k Int) (b Int) (i Int) (j Int) (n Int)) Bool -(=> (>= n (* 2 k)) (= i j))) + (=> (>= n (* 2 k)) (= i j))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2017.ASE_FiB/fib_33ns.sl b/benchmarks/LIA/2017.ASE_FiB/fib_33ns.sl index 90acb6c..bd47fbb 100644 --- a/benchmarks/LIA/2017.ASE_FiB/fib_33ns.sl +++ b/benchmarks/LIA/2017.ASE_FiB/fib_33ns.sl @@ -2,32 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int) (z Int) (c Int) (k Int) (turn Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var z Int) -(declare-primed-var c Int) -(declare-primed-var k Int) -(declare-primed-var turn Int) - (define-fun pre_fun ((x Int) (y Int) (z Int) (c Int) (k Int) (turn Int)) Bool -(and (= z k) (= x 0) (= y 0) (= turn 0))) - + (and (= z k) (= x 0) (= y 0) (= turn 0))) (define-fun trans_fun ((x Int) (y Int) (z Int) (c Int) (k Int) (turn Int) (x! Int) (y! Int) (z! Int) (c! Int) (k! Int) (turn! Int)) Bool -(or -(and (= turn 0) (= x! x) (= y! y) (= z! z) (= c! 0) (= k! k) (= turn! 1)) -(and (= turn 0) (= x! x) (= y! y) (= z! z) (= c! 0) (= k! k) (= turn! 2)) -(and (= turn 1) (= z (- (+ k y) c)) (= x! (+ x 1)) (= y! (+ y 1)) (= z! z) (= c! (+ c 1)) (= k! k) (= turn! 1)) -(and (= turn 1) (not (= z (- (+ k y) c))) (= x! (+ x 1)) (= y! (- y 1)) (= z! z) (= c! (+ c 1)) (= k! k) (= turn! 1)) -(and (= turn 1) (= z (- (+ k y) c)) (= x! (+ x 1)) (= y! (+ y 1)) (= z! z) (= c! (+ c 1)) (= k! k) (= turn! 2)) -(and (= turn 1) (not (= z (- (+ k y) c))) (= x! (+ x 1)) (= y! (- y 1)) (= z! z) (= c! (+ c 1)) (= k! k) (= turn! 2)) -(and (= turn 2) (= x! (- x 1)) (= y! (- y 1)) (= z! z) (= c! c) (= k! k) (= turn! 2)) -(and (= turn 2) (= x! (- x 1)) (= y! (- y 1)) (= z! z) (= c! c) (= k! k) (= turn! 3)) -(and (or (> turn 2) (< turn 0)) (= x! x) (= y! y) (= z! (+ x y)) (= c! c) (= k! k) (= turn! 0)) -)) - + (or (and (= turn 0) (= x! x) (= y! y) (= z! z) (= c! 0) (= k! k) (= turn! 1)) (and (= turn 0) (= x! x) (= y! y) (= z! z) (= c! 0) (= k! k) (= turn! 2)) (and (= turn 1) (= z (- (+ k y) c)) (= x! (+ x 1)) (= y! (+ y 1)) (= z! z) (= c! (+ c 1)) (= k! k) (= turn! 1)) (and (= turn 1) (not (= z (- (+ k y) c))) (= x! (+ x 1)) (= y! (- y 1)) (= z! z) (= c! (+ c 1)) (= k! k) (= turn! 1)) (and (= turn 1) (= z (- (+ k y) c)) (= x! (+ x 1)) (= y! (+ y 1)) (= z! z) (= c! (+ c 1)) (= k! k) (= turn! 2)) (and (= turn 1) (not (= z (- (+ k y) c))) (= x! (+ x 1)) (= y! (- y 1)) (= z! z) (= c! (+ c 1)) (= k! k) (= turn! 2)) (and (= turn 2) (= x! (- x 1)) (= y! (- y 1)) (= z! z) (= c! c) (= k! k) (= turn! 2)) (and (= turn 2) (= x! (- x 1)) (= y! (- y 1)) (= z! z) (= c! c) (= k! k) (= turn! 3)) (and (or (> turn 2) (< turn 0)) (= x! x) (= y! y) (= z! (+ x y)) (= c! c) (= k! k) (= turn! 0)))) (define-fun post_fun ((x Int) (y Int) (z Int) (c Int) (k Int) (turn Int)) Bool -(= x y)) + (= x y)) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2017.ASE_FiB/fib_35.sl b/benchmarks/LIA/2017.ASE_FiB/fib_35.sl index 9ddf239..dbca46c 100644 --- a/benchmarks/LIA/2017.ASE_FiB/fib_35.sl +++ b/benchmarks/LIA/2017.ASE_FiB/fib_35.sl @@ -2,21 +2,14 @@ (synth-inv inv_fun ((x Int) (n Int))) -(declare-primed-var x Int) -(declare-primed-var n Int) - (define-fun pre_fun ((x Int) (n Int)) Bool -(and (> n 0) (= x 0))) - + (and (> n 0) (= x 0))) (define-fun trans_fun ((x Int) (n Int) (x! Int) (n! Int)) Bool -(or -(and (>= x n) (= x! x) (= n! n)) -(and (< x n) (= x! (+ x 1)) (= n! n)) -)) - + (or (and (>= x n) (= x! x) (= n! n)) (and (< x n) (= x! (+ x 1)) (= n! n)))) (define-fun post_fun ((x Int) (n Int)) Bool -(=> (>= x n) (= x n))) + (=> (>= x n) (= x n))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2017.ASE_FiB/fib_37.sl b/benchmarks/LIA/2017.ASE_FiB/fib_37.sl index 37be9fc..38a136d 100644 --- a/benchmarks/LIA/2017.ASE_FiB/fib_37.sl +++ b/benchmarks/LIA/2017.ASE_FiB/fib_37.sl @@ -2,23 +2,14 @@ (synth-inv inv_fun ((x Int) (m Int) (n Int))) -(declare-primed-var x Int) -(declare-primed-var m Int) -(declare-primed-var n Int) - (define-fun pre_fun ((x Int) (m Int) (n Int)) Bool -(and (= x 0) (= m 0) (> n 0))) - + (and (= x 0) (= m 0) (> n 0))) (define-fun trans_fun ((x Int) (m Int) (n Int) (x! Int) (m! Int) (n! Int)) Bool -(or -(and (>= x n) (= x! x) (= m! m) (= n! n)) -(and (< x n) (= x! (+ x 1)) (= m! x) (= n! n)) -(and (< x n) (= x! (+ x 1)) (= m! m) (= n! n)) -)) - + (or (and (>= x n) (= x! x) (= m! m) (= n! n)) (and (< x n) (= x! (+ x 1)) (= m! x) (= n! n)) (and (< x n) (= x! (+ x 1)) (= m! m) (= n! n)))) (define-fun post_fun ((x Int) (m Int) (n Int)) Bool -(=> (>= x n) (or (<= n 0) (and (<= 0 m) (< m n) ) ))) + (=> (>= x n) (or (<= n 0) (and (<= 0 m) (< m n))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2017.ASE_FiB/fib_41.sl b/benchmarks/LIA/2017.ASE_FiB/fib_41.sl index d3e9e4b..59fb084 100644 --- a/benchmarks/LIA/2017.ASE_FiB/fib_41.sl +++ b/benchmarks/LIA/2017.ASE_FiB/fib_41.sl @@ -2,23 +2,14 @@ (synth-inv inv_fun ((n Int) (k Int) (i Int) (j Int))) -(declare-primed-var n Int) -(declare-primed-var k Int) -(declare-primed-var i Int) -(declare-primed-var j Int) - (define-fun pre_fun ((n Int) (k Int) (i Int) (j Int)) Bool -(and (= j 0) (>= n 0) (= i 0) (or (= k 1) (>= k 0)))) - + (and (= j 0) (>= n 0) (= i 0) (or (= k 1) (>= k 0)))) (define-fun trans_fun ((n Int) (k Int) (i Int) (j Int) (n! Int) (k! Int) (i! Int) (j! Int)) Bool -(or -(and (> i n) (= n! n) (= k! k) (= i! i) (= j! j)) -(and (<= i n) (= n! n) (= k! k) (= i! (+ i 1)) (= j! (+ j 1))) -)) - + (or (and (> i n) (= n! n) (= k! k) (= i! i) (= j! j)) (and (<= i n) (= n! n) (= k! k) (= i! (+ i 1)) (= j! (+ j 1))))) (define-fun post_fun ((n Int) (k Int) (i Int) (j Int)) Bool -(=> (> i n) (> (+ k i j) (* 2 n)))) + (=> (> i n) (> (+ k i j) (* 2 n)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2017.ASE_FiB/fib_43.sl b/benchmarks/LIA/2017.ASE_FiB/fib_43.sl index 350be60..93394f7 100644 --- a/benchmarks/LIA/2017.ASE_FiB/fib_43.sl +++ b/benchmarks/LIA/2017.ASE_FiB/fib_43.sl @@ -2,23 +2,14 @@ (synth-inv inv_fun ((i Int) (t Int) (x Int) (y Int))) -(declare-primed-var i Int) -(declare-primed-var t Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - (define-fun pre_fun ((i Int) (t Int) (x Int) (y Int)) Bool -(and (not (= x y)) (= i 0) (= t y))) - + (and (not (= x y)) (= i 0) (= t y))) (define-fun trans_fun ((i Int) (t Int) (x Int) (y Int) (i! Int) (t! Int) (x! Int) (y! Int)) Bool -(or -(and (> x 0) (= i! i) (= t! t) (= x! x) (= y! (+ x y))) -(and (<= x 0) (= i! i) (= t! t) (= x! x) (= y! y)) -)) - + (or (and (> x 0) (= i! i) (= t! t) (= x! x) (= y! (+ x y))) (and (<= x 0) (= i! i) (= t! t) (= x! x) (= y! y)))) (define-fun post_fun ((i Int) (t Int) (x Int) (y Int)) Bool -(>= y t)) + (>= y t)) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2017.ASE_FiB/fib_44.sl b/benchmarks/LIA/2017.ASE_FiB/fib_44.sl index b9e3922..0722df1 100644 --- a/benchmarks/LIA/2017.ASE_FiB/fib_44.sl +++ b/benchmarks/LIA/2017.ASE_FiB/fib_44.sl @@ -2,23 +2,14 @@ (synth-inv inv_fun ((i Int) (j Int) (n Int) (k Int))) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var n Int) -(declare-primed-var k Int) - (define-fun pre_fun ((i Int) (j Int) (n Int) (k Int)) Bool -(and (or (= n 1) (= n 2)) (= i 0) (= j 0))) - + (and (or (= n 1) (= n 2)) (= i 0) (= j 0))) (define-fun trans_fun ((i Int) (j Int) (n Int) (k Int) (i! Int) (j! Int) (n! Int) (k! Int)) Bool -(or -(and (> i k) (= i! i) (= j! j) (= n! n) (= k! k)) -(and (<= i k) (= i! (+ i 1)) (= j! (+ j n)) (= n! n) (= k! k)) -)) - + (or (and (> i k) (= i! i) (= j! j) (= n! n) (= k! k)) (and (<= i k) (= i! (+ i 1)) (= j! (+ j n)) (= n! n) (= k! k)))) (define-fun post_fun ((i Int) (j Int) (n Int) (k Int)) Bool -(=> (> i k) (or (not (= n 1)) (= i j)) ) ) + (=> (> i k) (or (not (= n 1)) (= i j)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2017.ASE_FiB/minor1.sl b/benchmarks/LIA/2017.ASE_FiB/minor1.sl index 0010380..efa179c 100644 --- a/benchmarks/LIA/2017.ASE_FiB/minor1.sl +++ b/benchmarks/LIA/2017.ASE_FiB/minor1.sl @@ -1,19 +1,15 @@ (set-logic LIA) -(synth-inv inv_fun ((x Int) )) - -(declare-primed-var x Int) +(synth-inv inv_fun ((x Int))) (define-fun pre_fun ((x Int)) Bool -(and (<= x -2) (>= x -3) )) - + (and (<= x (- 2)) (>= x (- 3)))) (define-fun trans_fun ((x Int) (x! Int)) Bool -(or (and (= x! (+ x 2)) (< x 1) ) -(and (= x! (+ x 1)) (>= x 1) ))) - + (or (and (= x! (+ x 2)) (< x 1)) (and (= x! (+ x 1)) (>= x 1)))) (define-fun post_fun ((x Int)) Bool -(and (>= x -5))) + (and (>= x (- 5)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2017.ASE_FiB/minor2.sl b/benchmarks/LIA/2017.ASE_FiB/minor2.sl index a8c616f..dd8eddd 100644 --- a/benchmarks/LIA/2017.ASE_FiB/minor2.sl +++ b/benchmarks/LIA/2017.ASE_FiB/minor2.sl @@ -2,19 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) - (define-fun pre_fun ((x Int) (y Int)) Bool -(and (<= x 1) (>= x 0) (= y -3) )) - + (and (<= x 1) (>= x 0) (= y (- 3)))) (define-fun trans_fun ((x Int) (y Int) (x! Int) (y! Int)) Bool -(or (and (= x! (- x 1)) (= y! (+ y 2)) (< (- x y) 2) ) -(and (= x! x) (= y! (+ y 1)) (>= (- x y) 2) ))) - + (or (and (= x! (- x 1)) (= y! (+ y 2)) (< (- x y) 2)) (and (= x! x) (= y! (+ y 1)) (>= (- x y) 2)))) (define-fun post_fun ((x Int) (y Int)) Bool -(and (<= x 1) (>= y -3) )) + (and (<= x 1) (>= y (- 3)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2017.ASE_FiB/minor3.sl b/benchmarks/LIA/2017.ASE_FiB/minor3.sl index 7b5da0e..8773ab3 100644 --- a/benchmarks/LIA/2017.ASE_FiB/minor3.sl +++ b/benchmarks/LIA/2017.ASE_FiB/minor3.sl @@ -2,20 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) - (define-fun pre_fun ((x Int) (y Int)) Bool -(and (<= x 5) (>= x 4) (<= y 5) (>= y 4) )) - + (and (<= x 5) (>= x 4) (<= y 5) (>= y 4))) (define-fun trans_fun ((x Int) (y Int) (x! Int) (y! Int)) Bool -(or (and (= x! (- x 1)) (= y! y) (>= x 0 ) (>= y 0) ) -(and (= x! x) (= y! (- y 1)) (< x 0) (>= y 0) ) -(and (= x! (+ x 1)) (= y! (- y 1)) (< y 0) ))) - + (or (and (= x! (- x 1)) (= y! y) (>= x 0) (>= y 0)) (and (= x! x) (= y! (- y 1)) (< x 0) (>= y 0)) (and (= x! (+ x 1)) (= y! (- y 1)) (< y 0)))) (define-fun post_fun ((x Int) (y Int)) Bool -(and (<= y 5) )) + (and (<= y 5))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2017.ASE_FiB/vardep.sl b/benchmarks/LIA/2017.ASE_FiB/vardep.sl index 158dd5b..bd69e0e 100644 --- a/benchmarks/LIA/2017.ASE_FiB/vardep.sl +++ b/benchmarks/LIA/2017.ASE_FiB/vardep.sl @@ -2,19 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int) (z Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var z Int) - (define-fun pre_fun ((x Int) (y Int) (z Int)) Bool -(and (= x 0) (= y 0) (= z 0))) - + (and (= x 0) (= y 0) (= z 0))) (define-fun trans_fun ((x Int) (y Int) (z Int) (x! Int) (y! Int) (z! Int)) Bool -(and (= x! (+ x 1)) (= y! (+ y 2)) (= z! (+ z 3)) )) - + (and (= x! (+ x 1)) (= y! (+ y 2)) (= z! (+ z 3)))) (define-fun post_fun ((x Int) (y Int) (z Int)) Bool -(and (>= x 0) (>= y 0) (>= z 0))) + (and (>= x 0) (>= y 0) (>= z 0))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/1.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/1.c.sl index 72ba159..859bae2 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/1.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/1.c.sl @@ -1,65 +1,15 @@ (set-logic LIA) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) -(declare-primed-var y_3 Int) - (synth-inv inv-f ((x Int) (y Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int))) (define-fun pre-f ((x Int) (y Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int)) Bool - (and - (= x x_1) - (= y y_1) - (= x_1 1) - (= y_1 0) - ) -) - + (and (= x x_1) (= y y_1) (= x_1 1) (= y_1 0))) (define-fun trans-f ((x Int) (y Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (x! Int) (y! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int) (y_3! Int)) Bool - (or - (and - (= x_2 x) - (= y_2 y) - (= x_2 x!) - (= y_2 y!) - (= x x!) - ) - (and - (= x_2 x) - (= y_2 y) - (< y_2 100000) - (= x_3 (+ x_2 y_2)) - (= y_3 (+ y_2 1)) - (= x_3 x!) - (= y_3 y!) - ) - ) -) - + (or (and (= x_2 x) (= y_2 y) (= x_2 x!) (= y_2 y!) (= x x!)) (and (= x_2 x) (= y_2 y) (< y_2 100000) (= x_3 (+ x_2 y_2)) (= y_3 (+ y_2 1)) (= x_3 x!) (= y_3 y!)))) (define-fun post-f ((x Int) (y Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int)) Bool - (or - (not - (and - (= x x_2) - (= y y_2) - ) - ) - (not - (and - (not (< y_2 100000)) - (not (>= x_2 y_2)) - ) - ) - ) -) + (or (not (and (= x x_2) (= y y_2))) (not (and (not (< y_2 100000)) (not (>= x_2 y_2)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/10.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/10.c.sl index 46f6b46..22bcd17 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/10.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/10.c.sl @@ -1,68 +1,15 @@ (set-logic LIA) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var tmp Int) - -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((x Int) (y Int) (tmp Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((x Int) (y Int) (tmp Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= x x_0) - (= y y_0) - (>= x_0 0) - (<= x_0 2) - (<= y_0 2) - (>= y_0 0) - ) -) - + (and (= x x_0) (= y y_0) (>= x_0 0) (<= x_0 2) (<= y_0 2) (>= y_0 0))) (define-fun trans-f ((x Int) (y Int) (tmp Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int) (x! Int) (y! Int) (tmp! Int) (x_0! Int) (x_1! Int) (x_2! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= x_1 x) - (= y_1 y) - (= x_1 x!) - (= y_1 y!) - (= x x!) - (= y y!) - (= tmp tmp!) - ) - (and - (= x_1 x) - (= y_1 y) - (= x_2 (+ x_1 2)) - (= y_2 (+ y_1 2)) - (= x_2 x!) - (= y_2 y!) - (= tmp tmp!) - ) - ) -) - + (or (and (= x_1 x) (= y_1 y) (= x_1 x!) (= y_1 y!) (= x x!) (= y y!) (= tmp tmp!)) (and (= x_1 x) (= y_1 y) (= x_2 (+ x_1 2)) (= y_2 (+ y_1 2)) (= x_2 x!) (= y_2 y!) (= tmp tmp!)))) (define-fun post-f ((x Int) (y Int) (tmp Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= x x_1) - (= y y_1) - ) - ) - (not - (and - (= y_1 0) - (not (not (= x_1 4))) - ) - ) - ) -) + (or (not (and (= x x_1) (= y y_1))) (not (and (= y_1 0) (not (not (= x_1 4))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/100.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/100.c.sl index 400a75d..ec31090 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/100.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/100.c.sl @@ -1,73 +1,15 @@ (set-logic LIA) -(declare-primed-var n Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) -(declare-primed-var y_3 Int) - (synth-inv inv-f ((n Int) (x Int) (y Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int))) (define-fun pre-f ((n Int) (x Int) (y Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int)) Bool - (and - (= n n_0) - (= x x_1) - (= y y_1) - (>= n_0 0) - (= x_1 n_0) - (= y_1 0) - ) -) - + (and (= n n_0) (= x x_1) (= y y_1) (>= n_0 0) (= x_1 n_0) (= y_1 0))) (define-fun trans-f ((n Int) (x Int) (y Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (n! Int) (x! Int) (y! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int) (y_3! Int)) Bool - (or - (and - (= x_2 x) - (= y_2 y) - (= x_2 x!) - (= y_2 y!) - (= n n!) - (= y y!) - ) - (and - (= x_2 x) - (= y_2 y) - (> x_2 0) - (= y_3 (+ y_2 1)) - (= x_3 (- x_2 1)) - (= x_3 x!) - (= y_3 y!) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= x_2 x) (= y_2 y) (= x_2 x!) (= y_2 y!) (= n n!) (= y y!)) (and (= x_2 x) (= y_2 y) (> x_2 0) (= y_3 (+ y_2 1)) (= x_3 (- x_2 1)) (= x_3 x!) (= y_3 y!) (= n n_0) (= n! n_0)))) (define-fun post-f ((n Int) (x Int) (y Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int)) Bool - (or - (not - (and - (= n n_0) - (= x x_2) - (= y y_2) - ) - ) - (not - (and - (not (> x_2 0)) - (not (= y_2 n_0)) - ) - ) - ) -) + (or (not (and (= n n_0) (= x x_2) (= y y_2))) (not (and (not (> x_2 0)) (not (= y_2 n_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/100_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/100_conf1.sl index 33ceacd..1e5c2cd 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/100_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/100_conf1.sl @@ -1,88 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var n Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) -(declare-primed-var y_3 Int) - (synth-inv inv-f ((conf_0 Int) (n Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int))) (define-fun pre-f ((conf_0 Int) (n Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= n n_0) - (= x x_1) - (= y y_1) - (= conf_0_0 3) - (>= n_0 0) - (= x_1 n_0) - (= y_1 0) - ) -) - + (and (= conf_0 conf_0_0) (= n n_0) (= x x_1) (= y y_1) (= conf_0_0 3) (>= n_0 0) (= x_1 n_0) (= y_1 0))) (define-fun trans-f ((conf_0 Int) (n Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (conf_0! Int) (n! Int) (x! Int) (y! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int) (y_3! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= y_2 y) - (= conf_0_1 conf_0!) - (= x_2 x!) - (= y_2 y!) - (= conf_0 conf_0!) - (= n n!) - (= y y!) - ) - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= y_2 y) - (> x_2 0) - (= y_3 (+ y_2 1)) - (= conf_0_2 conf_0_1) - (= x_3 (- x_2 1)) - (= conf_0_3 778) - (= conf_0_3 conf_0!) - (= x_3 x!) - (= y_3 y!) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= x_2 x) (= y_2 y) (= conf_0_1 conf_0!) (= x_2 x!) (= y_2 y!) (= conf_0 conf_0!) (= n n!) (= y y!)) (and (= conf_0_1 conf_0) (= x_2 x) (= y_2 y) (> x_2 0) (= y_3 (+ y_2 1)) (= conf_0_2 conf_0_1) (= x_3 (- x_2 1)) (= conf_0_3 778) (= conf_0_3 conf_0!) (= x_3 x!) (= y_3 y!) (= n n_0) (= n! n_0)))) (define-fun post-f ((conf_0 Int) (n Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= n n_0) - (= x x_2) - (= y y_2) - ) - ) - (not - (and - (not (> x_2 0)) - (not (= y_2 n_0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= n n_0) (= x x_2) (= y y_2))) (not (and (not (> x_2 0)) (not (= y_2 n_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/100_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/100_conf5.sl index 4ae00b9..61b0dd0 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/100_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/100_conf5.sl @@ -1,123 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var n Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_1_1 Int) -(declare-primed-var conf_1_2 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_2_1 Int) -(declare-primed-var conf_2_2 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) -(declare-primed-var y_3 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (y Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (y Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= n n_0) - (= x x_1) - (= y y_1) - (= conf_0_0 4) - (= conf_1_0 1) - (= conf_2_0 8) - (= conf_3_0 1) - (= conf_4_0 3) - (>= n_0 0) - (= x_1 n_0) - (= y_1 0) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= n n_0) (= x x_1) (= y y_1) (= conf_0_0 4) (= conf_1_0 1) (= conf_2_0 8) (= conf_3_0 1) (= conf_4_0 3) (>= n_0 0) (= x_1 n_0) (= y_1 0))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (y Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (n! Int) (x! Int) (y! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_1_1! Int) (conf_1_2! Int) (conf_2_0! Int) (conf_2_1! Int) (conf_2_2! Int) (conf_3_0! Int) (conf_4_0! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int) (y_3! Int)) Bool - (or - (and - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (= x_2 x) - (= y_2 y) - (= conf_1_1 conf_1!) - (= conf_2_1 conf_2!) - (= x_2 x!) - (= y_2 y!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= n n!) - (= y y!) - ) - (and - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (= x_2 x) - (= y_2 y) - (> x_2 0) - (= y_3 (+ y_2 1)) - (= conf_1_2 778) - (= x_3 (- x_2 1)) - (= conf_2_2 (+ 833 421)) - (= conf_1_2 conf_1!) - (= conf_2_2 conf_2!) - (= x_3 x!) - (= y_3 y!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= conf_1_1 conf_1) (= conf_2_1 conf_2) (= x_2 x) (= y_2 y) (= conf_1_1 conf_1!) (= conf_2_1 conf_2!) (= x_2 x!) (= y_2 y!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= n n!) (= y y!)) (and (= conf_1_1 conf_1) (= conf_2_1 conf_2) (= x_2 x) (= y_2 y) (> x_2 0) (= y_3 (+ y_2 1)) (= conf_1_2 778) (= x_3 (- x_2 1)) (= conf_2_2 (+ 833 421)) (= conf_1_2 conf_1!) (= conf_2_2 conf_2!) (= x_3 x!) (= y_3 y!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (y Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_1) - (= conf_2 conf_2_1) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= n n_0) - (= x x_2) - (= y y_2) - ) - ) - (not - (and - (not (> x_2 0)) - (not (= y_2 n_0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_0) (= conf_1 conf_1_1) (= conf_2 conf_2_1) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= n n_0) (= x x_2) (= y y_2))) (not (and (not (> x_2 0)) (not (= y_2 n_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/101.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/101.c.sl index 9287c8b..a59e04c 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/101.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/101.c.sl @@ -1,59 +1,15 @@ (set-logic LIA) -(declare-primed-var n Int) -(declare-primed-var x Int) - -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((n Int) (x Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((n Int) (x Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= x x_1) - (= x_1 0) - ) -) - + (and (= x x_1) (= x_1 0))) (define-fun trans-f ((n Int) (x Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (n! Int) (x! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= x_2 x) - (= x_2 x!) - (= n n_0) - (= n! n_0) - ) - (and - (= x_2 x) - (< x_2 n_0) - (= x_3 (+ x_2 1)) - (= x_3 x!) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= x_2 x) (= x_2 x!) (= n n_0) (= n! n_0)) (and (= x_2 x) (< x_2 n_0) (= x_3 (+ x_2 1)) (= x_3 x!) (= n n_0) (= n! n_0)))) (define-fun post-f ((n Int) (x Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= n n_0) - (= x x_2) - ) - ) - (not - (and - (not (< x_2 n_0)) - (not (= x_2 n_0)) - (not (< n_0 0)) - ) - ) - ) -) + (or (not (and (= n n_0) (= x x_2))) (not (and (not (< x_2 n_0)) (not (= x_2 n_0)) (not (< n_0 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/101_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/101_conf1.sl index 68cec42..e090284 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/101_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/101_conf1.sl @@ -1,72 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var n Int) -(declare-primed-var x Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((conf_0 Int) (n Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((conf_0 Int) (n Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= x x_1) - (= conf_0_0 9) - (= x_1 0) - ) -) - + (and (= conf_0 conf_0_0) (= x x_1) (= conf_0_0 9) (= x_1 0))) (define-fun trans-f ((conf_0 Int) (n Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (conf_0! Int) (n! Int) (x! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= conf_0_1 conf_0!) - (= x_2 x!) - (= n n_0) - (= n! n_0) - (= conf_0 conf_0!) - ) - (and - (= conf_0_1 conf_0) - (= x_2 x) - (< x_2 n_0) - (= x_3 (+ x_2 1)) - (= conf_0_2 conf_0_1) - (= conf_0_2 conf_0!) - (= x_3 x!) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= x_2 x) (= conf_0_1 conf_0!) (= x_2 x!) (= n n_0) (= n! n_0) (= conf_0 conf_0!)) (and (= conf_0_1 conf_0) (= x_2 x) (< x_2 n_0) (= x_3 (+ x_2 1)) (= conf_0_2 conf_0_1) (= conf_0_2 conf_0!) (= x_3 x!) (= n n_0) (= n! n_0)))) (define-fun post-f ((conf_0 Int) (n Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= n n_0) - (= x x_2) - ) - ) - (not - (and - (not (< x_2 n_0)) - (not (= x_2 n_0)) - (not (< n_0 0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= n n_0) (= x x_2))) (not (and (not (< x_2 n_0)) (not (= x_2 n_0)) (not (< n_0 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/101_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/101_conf5.sl index 6858ac4..f5643bc 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/101_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/101_conf5.sl @@ -1,104 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var n Int) -(declare-primed-var x Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_1_1 Int) -(declare-primed-var conf_1_2 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_1) - (= conf_0_0 9) - (= conf_1_0 7) - (= conf_2_0 2) - (= conf_3_0 1) - (= conf_4_0 9) - (= x_1 0) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_1) (= conf_0_0 9) (= conf_1_0 7) (= conf_2_0 2) (= conf_3_0 1) (= conf_4_0 9) (= x_1 0))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (n! Int) (x! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_1_1! Int) (conf_1_2! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_4_0! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= conf_1_1 conf_1) - (= x_2 x) - (= conf_1_1 conf_1!) - (= x_2 x!) - (= n n_0) - (= n! n_0) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - ) - (and - (= conf_1_1 conf_1) - (= x_2 x) - (< x_2 n_0) - (= x_3 (+ x_2 1)) - (= conf_1_2 conf_2_0) - (= conf_1_2 conf_1!) - (= x_3 x!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= conf_1_1 conf_1) (= x_2 x) (= conf_1_1 conf_1!) (= x_2 x!) (= n n_0) (= n! n_0) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!)) (and (= conf_1_1 conf_1) (= x_2 x) (< x_2 n_0) (= x_3 (+ x_2 1)) (= conf_1_2 conf_2_0) (= conf_1_2 conf_1!) (= x_3 x!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_1) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= n n_0) - (= x x_2) - ) - ) - (not - (and - (not (< x_2 n_0)) - (not (= x_2 n_0)) - (not (< n_0 0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_0) (= conf_1 conf_1_1) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= n n_0) (= x x_2))) (not (and (not (< x_2 n_0)) (not (= x_2 n_0)) (not (< n_0 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/102.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/102.c.sl index e9afbb5..cef0566 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/102.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/102.c.sl @@ -1,59 +1,15 @@ (set-logic LIA) -(declare-primed-var n Int) -(declare-primed-var x Int) - -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((n Int) (x Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((n Int) (x Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= x x_1) - (= x_1 0) - ) -) - + (and (= x x_1) (= x_1 0))) (define-fun trans-f ((n Int) (x Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (n! Int) (x! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= x_2 x) - (= x_2 x!) - (= n n_0) - (= n! n_0) - ) - (and - (= x_2 x) - (< x_2 n_0) - (= x_3 (+ x_2 1)) - (= x_3 x!) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= x_2 x) (= x_2 x!) (= n n_0) (= n! n_0)) (and (= x_2 x) (< x_2 n_0) (= x_3 (+ x_2 1)) (= x_3 x!) (= n n_0) (= n! n_0)))) (define-fun post-f ((n Int) (x Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= n n_0) - (= x x_2) - ) - ) - (not - (and - (not (< x_2 n_0)) - (>= n_0 0) - (not (= x_2 n_0)) - ) - ) - ) -) + (or (not (and (= n n_0) (= x x_2))) (not (and (not (< x_2 n_0)) (>= n_0 0) (not (= x_2 n_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/102_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/102_conf1.sl index 47bf698..384860a 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/102_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/102_conf1.sl @@ -1,72 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var n Int) -(declare-primed-var x Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((conf_0 Int) (n Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((conf_0 Int) (n Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= x x_1) - (= conf_0_0 9) - (= x_1 0) - ) -) - + (and (= conf_0 conf_0_0) (= x x_1) (= conf_0_0 9) (= x_1 0))) (define-fun trans-f ((conf_0 Int) (n Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (conf_0! Int) (n! Int) (x! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= conf_0_1 conf_0!) - (= x_2 x!) - (= n n_0) - (= n! n_0) - (= conf_0 conf_0!) - ) - (and - (= conf_0_1 conf_0) - (= x_2 x) - (< x_2 n_0) - (= x_3 (+ x_2 1)) - (= conf_0_2 conf_0_1) - (= conf_0_2 conf_0!) - (= x_3 x!) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= x_2 x) (= conf_0_1 conf_0!) (= x_2 x!) (= n n_0) (= n! n_0) (= conf_0 conf_0!)) (and (= conf_0_1 conf_0) (= x_2 x) (< x_2 n_0) (= x_3 (+ x_2 1)) (= conf_0_2 conf_0_1) (= conf_0_2 conf_0!) (= x_3 x!) (= n n_0) (= n! n_0)))) (define-fun post-f ((conf_0 Int) (n Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= n n_0) - (= x x_2) - ) - ) - (not - (and - (not (< x_2 n_0)) - (>= n_0 0) - (not (= x_2 n_0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= n n_0) (= x x_2))) (not (and (not (< x_2 n_0)) (>= n_0 0) (not (= x_2 n_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/102_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/102_conf5.sl index e2b232d..6587617 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/102_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/102_conf5.sl @@ -1,104 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var n Int) -(declare-primed-var x Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_1_1 Int) -(declare-primed-var conf_1_2 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_1) - (= conf_0_0 9) - (= conf_1_0 7) - (= conf_2_0 2) - (= conf_3_0 1) - (= conf_4_0 9) - (= x_1 0) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_1) (= conf_0_0 9) (= conf_1_0 7) (= conf_2_0 2) (= conf_3_0 1) (= conf_4_0 9) (= x_1 0))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (n! Int) (x! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_1_1! Int) (conf_1_2! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_4_0! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= conf_1_1 conf_1) - (= x_2 x) - (= conf_1_1 conf_1!) - (= x_2 x!) - (= n n_0) - (= n! n_0) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - ) - (and - (= conf_1_1 conf_1) - (= x_2 x) - (< x_2 n_0) - (= x_3 (+ x_2 1)) - (= conf_1_2 conf_2_0) - (= conf_1_2 conf_1!) - (= x_3 x!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= conf_1_1 conf_1) (= x_2 x) (= conf_1_1 conf_1!) (= x_2 x!) (= n n_0) (= n! n_0) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!)) (and (= conf_1_1 conf_1) (= x_2 x) (< x_2 n_0) (= x_3 (+ x_2 1)) (= conf_1_2 conf_2_0) (= conf_1_2 conf_1!) (= x_3 x!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_1) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= n n_0) - (= x x_2) - ) - ) - (not - (and - (not (< x_2 n_0)) - (>= n_0 0) - (not (= x_2 n_0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_0) (= conf_1 conf_1_1) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= n n_0) (= x x_2))) (not (and (not (< x_2 n_0)) (>= n_0 0) (not (= x_2 n_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/103.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/103.c.sl index 418bcc2..0e56807 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/103.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/103.c.sl @@ -1,49 +1,15 @@ (set-logic LIA) -(declare-primed-var x Int) - -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((x Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((x Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= x x_1) - (= x_1 0) - ) -) - + (and (= x x_1) (= x_1 0))) (define-fun trans-f ((x Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (x! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= x_2 x) - (= x_2 x!) - ) - (and - (= x_2 x) - (< x_2 100) - (= x_3 (+ x_2 1)) - (= x_3 x!) - ) - ) -) - + (or (and (= x_2 x) (= x_2 x!)) (and (= x_2 x) (< x_2 100) (= x_3 (+ x_2 1)) (= x_3 x!)))) (define-fun post-f ((x Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (= x x_2) - ) - (not - (and - (not (< x_2 100)) - (not (= x_2 100)) - ) - ) - ) -) + (or (not (= x x_2)) (not (and (not (< x_2 100)) (not (= x_2 100)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/103_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/103_conf1.sl index b8a9dcc..48354ee 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/103_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/103_conf1.sl @@ -1,64 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var x Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((conf_0 Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((conf_0 Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= x x_1) - (= conf_0_0 1) - (= x_1 0) - ) -) - + (and (= conf_0 conf_0_0) (= x x_1) (= conf_0_0 1) (= x_1 0))) (define-fun trans-f ((conf_0 Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (conf_0! Int) (x! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= conf_0_1 conf_0!) - (= x_2 x!) - (= conf_0 conf_0!) - ) - (and - (= conf_0_1 conf_0) - (= x_2 x) - (< x_2 100) - (= x_3 (+ x_2 1)) - (= conf_0_2 conf_0_1) - (= conf_0_2 conf_0!) - (= x_3 x!) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= x_2 x) (= conf_0_1 conf_0!) (= x_2 x!) (= conf_0 conf_0!)) (and (= conf_0_1 conf_0) (= x_2 x) (< x_2 100) (= x_3 (+ x_2 1)) (= conf_0_2 conf_0_1) (= conf_0_2 conf_0!) (= x_3 x!)))) (define-fun post-f ((conf_0 Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= x x_2) - ) - ) - (not - (and - (not (< x_2 100)) - (not (= x_2 100)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= x x_2))) (not (and (not (< x_2 100)) (not (= x_2 100)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/103_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/103_conf5.sl index 332707a..24c772f 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/103_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/103_conf5.sl @@ -1,96 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var x Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_1_1 Int) -(declare-primed-var conf_1_2 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_1) - (= conf_0_0 0) - (= conf_1_0 3) - (= conf_2_0 6) - (= conf_3_0 9) - (= conf_4_0 1) - (= x_1 0) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_1) (= conf_0_0 0) (= conf_1_0 3) (= conf_2_0 6) (= conf_3_0 9) (= conf_4_0 1) (= x_1 0))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (x! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_1_1! Int) (conf_1_2! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_4_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= conf_1_1 conf_1) - (= x_2 x) - (= conf_1_1 conf_1!) - (= x_2 x!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - ) - (and - (= conf_1_1 conf_1) - (= x_2 x) - (< x_2 100) - (= x_3 (+ x_2 1)) - (= conf_1_2 (+ 486 216)) - (= conf_1_2 conf_1!) - (= x_3 x!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - ) - ) -) - + (or (and (= conf_1_1 conf_1) (= x_2 x) (= conf_1_1 conf_1!) (= x_2 x!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!)) (and (= conf_1_1 conf_1) (= x_2 x) (< x_2 100) (= x_3 (+ x_2 1)) (= conf_1_2 (+ 486 216)) (= conf_1_2 conf_1!) (= x_3 x!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_1) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_2) - ) - ) - (not - (and - (not (< x_2 100)) - (not (= x_2 100)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_0) (= conf_1 conf_1_1) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_2))) (not (and (not (< x_2 100)) (not (= x_2 100)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/106.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/106.c.sl index c9d254e..4524956 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/106.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/106.c.sl @@ -1,96 +1,15 @@ (set-logic LIA) -(declare-primed-var a Int) -(declare-primed-var j Int) -(declare-primed-var k Int) -(declare-primed-var m Int) - -(declare-primed-var a_0 Int) -(declare-primed-var j_0 Int) -(declare-primed-var k_0 Int) -(declare-primed-var k_1 Int) -(declare-primed-var k_2 Int) -(declare-primed-var k_3 Int) -(declare-primed-var m_0 Int) -(declare-primed-var m_1 Int) -(declare-primed-var m_2 Int) -(declare-primed-var m_3 Int) - (synth-inv inv-f ((a Int) (j Int) (k Int) (m Int) (a_0 Int) (j_0 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int))) (define-fun pre-f ((a Int) (j Int) (k Int) (m Int) (a_0 Int) (j_0 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int)) Bool - (and - (= a a_0) - (= j j_0) - (= k k_1) - (= m m_0) - (<= a_0 m_0) - (< j_0 1) - (= k_1 0) - ) -) - + (and (= a a_0) (= j j_0) (= k k_1) (= m m_0) (<= a_0 m_0) (< j_0 1) (= k_1 0))) (define-fun trans-f ((a Int) (j Int) (k Int) (m Int) (a_0 Int) (j_0 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (a! Int) (j! Int) (k! Int) (m! Int) (a_0! Int) (j_0! Int) (k_0! Int) (k_1! Int) (k_2! Int) (k_3! Int) (m_0! Int) (m_1! Int) (m_2! Int) (m_3! Int)) Bool - (or - (and - (= k_2 k) - (= m_1 m) - (= k_2 k!) - (= m_1 m!) - (= a a!) - (= j j!) - (= m m!) - ) - (and - (= k_2 k) - (= m_1 m) - (< k_2 1) - (< m_1 a_0) - (= m_2 a_0) - (= m_3 m_2) - (= k_3 (+ k_2 1)) - (= k_3 k!) - (= m_3 m!) - (= a a_0) - (= a! a_0) - (= j j_0) - (= j! j_0) - ) - (and - (= k_2 k) - (= m_1 m) - (< k_2 1) - (not (< m_1 a_0)) - (= m_3 m_1) - (= k_3 (+ k_2 1)) - (= k_3 k!) - (= m_3 m!) - (= a a_0) - (= a! a_0) - (= j j_0) - (= j! j_0) - ) - ) -) - + (or (and (= k_2 k) (= m_1 m) (= k_2 k!) (= m_1 m!) (= a a!) (= j j!) (= m m!)) (and (= k_2 k) (= m_1 m) (< k_2 1) (< m_1 a_0) (= m_2 a_0) (= m_3 m_2) (= k_3 (+ k_2 1)) (= k_3 k!) (= m_3 m!) (= a a_0) (= a! a_0) (= j j_0) (= j! j_0)) (and (= k_2 k) (= m_1 m) (< k_2 1) (not (< m_1 a_0)) (= m_3 m_1) (= k_3 (+ k_2 1)) (= k_3 k!) (= m_3 m!) (= a a_0) (= a! a_0) (= j j_0) (= j! j_0)))) (define-fun post-f ((a Int) (j Int) (k Int) (m Int) (a_0 Int) (j_0 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int)) Bool - (or - (not - (and - (= a a_0) - (= j j_0) - (= k k_2) - (= m m_1) - ) - ) - (not - (and - (not (< k_2 1)) - (not (>= a_0 m_1)) - ) - ) - ) -) + (or (not (and (= a a_0) (= j j_0) (= k k_2) (= m m_1))) (not (and (not (< k_2 1)) (not (>= a_0 m_1)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/106_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/106_conf1.sl index a71577c..648d4df 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/106_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/106_conf1.sl @@ -1,117 +1,15 @@ (set-logic LIA) -(declare-primed-var a Int) -(declare-primed-var j Int) -(declare-primed-var conf_0 Int) -(declare-primed-var k Int) -(declare-primed-var m Int) - -(declare-primed-var a_0 Int) -(declare-primed-var j_0 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) -(declare-primed-var k_0 Int) -(declare-primed-var k_1 Int) -(declare-primed-var k_2 Int) -(declare-primed-var k_3 Int) -(declare-primed-var m_0 Int) -(declare-primed-var m_1 Int) -(declare-primed-var m_2 Int) -(declare-primed-var m_3 Int) - (synth-inv inv-f ((a Int) (j Int) (conf_0 Int) (k Int) (m Int) (a_0 Int) (j_0 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int))) (define-fun pre-f ((a Int) (j Int) (conf_0 Int) (k Int) (m Int) (a_0 Int) (j_0 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int)) Bool - (and - (= a a_0) - (= j j_0) - (= conf_0 conf_0_0) - (= k k_1) - (= m m_0) - (= conf_0_0 4) - (<= a_0 m_0) - (< j_0 1) - (= k_1 0) - ) -) - + (and (= a a_0) (= j j_0) (= conf_0 conf_0_0) (= k k_1) (= m m_0) (= conf_0_0 4) (<= a_0 m_0) (< j_0 1) (= k_1 0))) (define-fun trans-f ((a Int) (j Int) (conf_0 Int) (k Int) (m Int) (a_0 Int) (j_0 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (a! Int) (j! Int) (conf_0! Int) (k! Int) (m! Int) (a_0! Int) (j_0! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int) (k_0! Int) (k_1! Int) (k_2! Int) (k_3! Int) (m_0! Int) (m_1! Int) (m_2! Int) (m_3! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= k_2 k) - (= m_1 m) - (= conf_0_1 conf_0!) - (= k_2 k!) - (= m_1 m!) - (= a a!) - (= j j!) - (= conf_0 conf_0!) - (= m m!) - ) - (and - (= conf_0_1 conf_0) - (= k_2 k) - (= m_1 m) - (< k_2 1) - (< m_1 a_0) - (= m_2 a_0) - (= conf_0_2 conf_0_1) - (= conf_0_3 conf_0_2) - (= m_3 m_2) - (= k_3 (+ k_2 1)) - (= conf_0_4 453) - (= conf_0_4 conf_0!) - (= k_3 k!) - (= m_3 m!) - (= a a_0) - (= a! a_0) - (= j j_0) - (= j! j_0) - ) - (and - (= conf_0_1 conf_0) - (= k_2 k) - (= m_1 m) - (< k_2 1) - (not (< m_1 a_0)) - (= conf_0_3 conf_0_1) - (= m_3 m_1) - (= k_3 (+ k_2 1)) - (= conf_0_4 453) - (= conf_0_4 conf_0!) - (= k_3 k!) - (= m_3 m!) - (= a a_0) - (= a! a_0) - (= j j_0) - (= j! j_0) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= k_2 k) (= m_1 m) (= conf_0_1 conf_0!) (= k_2 k!) (= m_1 m!) (= a a!) (= j j!) (= conf_0 conf_0!) (= m m!)) (and (= conf_0_1 conf_0) (= k_2 k) (= m_1 m) (< k_2 1) (< m_1 a_0) (= m_2 a_0) (= conf_0_2 conf_0_1) (= conf_0_3 conf_0_2) (= m_3 m_2) (= k_3 (+ k_2 1)) (= conf_0_4 453) (= conf_0_4 conf_0!) (= k_3 k!) (= m_3 m!) (= a a_0) (= a! a_0) (= j j_0) (= j! j_0)) (and (= conf_0_1 conf_0) (= k_2 k) (= m_1 m) (< k_2 1) (not (< m_1 a_0)) (= conf_0_3 conf_0_1) (= m_3 m_1) (= k_3 (+ k_2 1)) (= conf_0_4 453) (= conf_0_4 conf_0!) (= k_3 k!) (= m_3 m!) (= a a_0) (= a! a_0) (= j j_0) (= j! j_0)))) (define-fun post-f ((a Int) (j Int) (conf_0 Int) (k Int) (m Int) (a_0 Int) (j_0 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int)) Bool - (or - (not - (and - (= a a_0) - (= j j_0) - (= conf_0 conf_0_1) - (= k k_2) - (= m m_1) - ) - ) - (not - (and - (not (< k_2 1)) - (not (>= a_0 m_1)) - ) - ) - ) -) + (or (not (and (= a a_0) (= j j_0) (= conf_0 conf_0_1) (= k k_2) (= m m_1))) (not (and (not (< k_2 1)) (not (>= a_0 m_1)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/106_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/106_conf5.sl index e05d35d..ed7c04a 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/106_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/106_conf5.sl @@ -1,160 +1,15 @@ (set-logic LIA) -(declare-primed-var a Int) -(declare-primed-var j Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var k Int) -(declare-primed-var m Int) - -(declare-primed-var a_0 Int) -(declare-primed-var j_0 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_3_1 Int) -(declare-primed-var conf_3_2 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var conf_4_1 Int) -(declare-primed-var conf_4_2 Int) -(declare-primed-var conf_4_3 Int) -(declare-primed-var k_0 Int) -(declare-primed-var k_1 Int) -(declare-primed-var k_2 Int) -(declare-primed-var k_3 Int) -(declare-primed-var m_0 Int) -(declare-primed-var m_1 Int) -(declare-primed-var m_2 Int) -(declare-primed-var m_3 Int) - (synth-inv inv-f ((a Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (k Int) (m Int) (a_0 Int) (j_0 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int))) (define-fun pre-f ((a Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (k Int) (m Int) (a_0 Int) (j_0 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int)) Bool - (and - (= a a_0) - (= j j_0) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= k k_1) - (= m m_0) - (= conf_0_0 1) - (= conf_1_0 3) - (= conf_2_0 8) - (= conf_3_0 2) - (= conf_4_0 4) - (<= a_0 m_0) - (< j_0 1) - (= k_1 0) - ) -) - + (and (= a a_0) (= j j_0) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= k k_1) (= m m_0) (= conf_0_0 1) (= conf_1_0 3) (= conf_2_0 8) (= conf_3_0 2) (= conf_4_0 4) (<= a_0 m_0) (< j_0 1) (= k_1 0))) (define-fun trans-f ((a Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (k Int) (m Int) (a_0 Int) (j_0 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (a! Int) (j! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (k! Int) (m! Int) (a_0! Int) (j_0! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_3_1! Int) (conf_3_2! Int) (conf_4_0! Int) (conf_4_1! Int) (conf_4_2! Int) (conf_4_3! Int) (k_0! Int) (k_1! Int) (k_2! Int) (k_3! Int) (m_0! Int) (m_1! Int) (m_2! Int) (m_3! Int)) Bool - (or - (and - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (= k_2 k) - (= m_1 m) - (= conf_3_1 conf_3!) - (= conf_4_1 conf_4!) - (= k_2 k!) - (= m_1 m!) - (= a a!) - (= j j!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= m m!) - ) - (and - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (= k_2 k) - (= m_1 m) - (< k_2 1) - (< m_1 a_0) - (= m_2 a_0) - (= conf_4_2 453) - (= conf_4_3 conf_4_2) - (= m_3 m_2) - (= k_3 (+ k_2 1)) - (= conf_3_2 (+ 611 conf_4_3)) - (= conf_3_2 conf_3!) - (= conf_4_3 conf_4!) - (= k_3 k!) - (= m_3 m!) - (= a a_0) - (= a! a_0) - (= j j_0) - (= j! j_0) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - ) - (and - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (= k_2 k) - (= m_1 m) - (< k_2 1) - (not (< m_1 a_0)) - (= conf_4_3 conf_4_1) - (= m_3 m_1) - (= k_3 (+ k_2 1)) - (= conf_3_2 (+ 611 conf_4_3)) - (= conf_3_2 conf_3!) - (= conf_4_3 conf_4!) - (= k_3 k!) - (= m_3 m!) - (= a a_0) - (= a! a_0) - (= j j_0) - (= j! j_0) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - ) - ) -) - + (or (and (= conf_3_1 conf_3) (= conf_4_1 conf_4) (= k_2 k) (= m_1 m) (= conf_3_1 conf_3!) (= conf_4_1 conf_4!) (= k_2 k!) (= m_1 m!) (= a a!) (= j j!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= m m!)) (and (= conf_3_1 conf_3) (= conf_4_1 conf_4) (= k_2 k) (= m_1 m) (< k_2 1) (< m_1 a_0) (= m_2 a_0) (= conf_4_2 453) (= conf_4_3 conf_4_2) (= m_3 m_2) (= k_3 (+ k_2 1)) (= conf_3_2 (+ 611 conf_4_3)) (= conf_3_2 conf_3!) (= conf_4_3 conf_4!) (= k_3 k!) (= m_3 m!) (= a a_0) (= a! a_0) (= j j_0) (= j! j_0) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0)) (and (= conf_3_1 conf_3) (= conf_4_1 conf_4) (= k_2 k) (= m_1 m) (< k_2 1) (not (< m_1 a_0)) (= conf_4_3 conf_4_1) (= m_3 m_1) (= k_3 (+ k_2 1)) (= conf_3_2 (+ 611 conf_4_3)) (= conf_3_2 conf_3!) (= conf_4_3 conf_4!) (= k_3 k!) (= m_3 m!) (= a a_0) (= a! a_0) (= j j_0) (= j! j_0) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0)))) (define-fun post-f ((a Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (k Int) (m Int) (a_0 Int) (j_0 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int)) Bool - (or - (not - (and - (= a a_0) - (= j j_0) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_1) - (= conf_4 conf_4_1) - (= k k_2) - (= m m_1) - ) - ) - (not - (and - (not (< k_2 1)) - (not (>= a_0 m_1)) - ) - ) - ) -) + (or (not (and (= a a_0) (= j j_0) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_1) (= conf_4 conf_4_1) (= k k_2) (= m m_1))) (not (and (not (< k_2 1)) (not (>= a_0 m_1)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/107.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/107.c.sl index d1555ac..148df8d 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/107.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/107.c.sl @@ -1,94 +1,15 @@ (set-logic LIA) -(declare-primed-var a Int) -(declare-primed-var j Int) -(declare-primed-var k Int) -(declare-primed-var m Int) - -(declare-primed-var a_0 Int) -(declare-primed-var j_0 Int) -(declare-primed-var j_1 Int) -(declare-primed-var k_0 Int) -(declare-primed-var k_1 Int) -(declare-primed-var k_2 Int) -(declare-primed-var k_3 Int) -(declare-primed-var m_0 Int) -(declare-primed-var m_1 Int) -(declare-primed-var m_2 Int) -(declare-primed-var m_3 Int) - (synth-inv inv-f ((a Int) (j Int) (k Int) (m Int) (a_0 Int) (j_0 Int) (j_1 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int))) (define-fun pre-f ((a Int) (j Int) (k Int) (m Int) (a_0 Int) (j_0 Int) (j_1 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int)) Bool - (and - (= j j_1) - (= k k_1) - (= j_1 0) - (= k_1 0) - ) -) - + (and (= j j_1) (= k k_1) (= j_1 0) (= k_1 0))) (define-fun trans-f ((a Int) (j Int) (k Int) (m Int) (a_0 Int) (j_0 Int) (j_1 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (a! Int) (j! Int) (k! Int) (m! Int) (a_0! Int) (j_0! Int) (j_1! Int) (k_0! Int) (k_1! Int) (k_2! Int) (k_3! Int) (m_0! Int) (m_1! Int) (m_2! Int) (m_3! Int)) Bool - (or - (and - (= k_2 k) - (= m_1 m) - (= k_2 k!) - (= m_1 m!) - (= a a!) - (= j j!) - (= m m!) - ) - (and - (= k_2 k) - (= m_1 m) - (< k_2 1) - (< m_1 a_0) - (= m_2 a_0) - (= m_3 m_2) - (= k_3 (+ k_2 1)) - (= k_3 k!) - (= m_3 m!) - (= a a_0) - (= a! a_0) - (= j j_1) - (= j! j_1) - ) - (and - (= k_2 k) - (= m_1 m) - (< k_2 1) - (not (< m_1 a_0)) - (= m_3 m_1) - (= k_3 (+ k_2 1)) - (= k_3 k!) - (= m_3 m!) - (= a a_0) - (= a! a_0) - (= j j_1) - (= j! j_1) - ) - ) -) - + (or (and (= k_2 k) (= m_1 m) (= k_2 k!) (= m_1 m!) (= a a!) (= j j!) (= m m!)) (and (= k_2 k) (= m_1 m) (< k_2 1) (< m_1 a_0) (= m_2 a_0) (= m_3 m_2) (= k_3 (+ k_2 1)) (= k_3 k!) (= m_3 m!) (= a a_0) (= a! a_0) (= j j_1) (= j! j_1)) (and (= k_2 k) (= m_1 m) (< k_2 1) (not (< m_1 a_0)) (= m_3 m_1) (= k_3 (+ k_2 1)) (= k_3 k!) (= m_3 m!) (= a a_0) (= a! a_0) (= j j_1) (= j! j_1)))) (define-fun post-f ((a Int) (j Int) (k Int) (m Int) (a_0 Int) (j_0 Int) (j_1 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int)) Bool - (or - (not - (and - (= a a_0) - (= j j_1) - (= k k_2) - (= m m_1) - ) - ) - (not - (and - (not (< k_2 1)) - (not (<= a_0 m_1)) - ) - ) - ) -) + (or (not (and (= a a_0) (= j j_1) (= k k_2) (= m m_1))) (not (and (not (< k_2 1)) (not (<= a_0 m_1)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/107_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/107_conf1.sl index dd34fe0..3ff2829 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/107_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/107_conf1.sl @@ -1,115 +1,15 @@ (set-logic LIA) -(declare-primed-var a Int) -(declare-primed-var j Int) -(declare-primed-var conf_0 Int) -(declare-primed-var k Int) -(declare-primed-var m Int) - -(declare-primed-var a_0 Int) -(declare-primed-var j_0 Int) -(declare-primed-var j_1 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) -(declare-primed-var k_0 Int) -(declare-primed-var k_1 Int) -(declare-primed-var k_2 Int) -(declare-primed-var k_3 Int) -(declare-primed-var m_0 Int) -(declare-primed-var m_1 Int) -(declare-primed-var m_2 Int) -(declare-primed-var m_3 Int) - (synth-inv inv-f ((a Int) (j Int) (conf_0 Int) (k Int) (m Int) (a_0 Int) (j_0 Int) (j_1 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int))) (define-fun pre-f ((a Int) (j Int) (conf_0 Int) (k Int) (m Int) (a_0 Int) (j_0 Int) (j_1 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int)) Bool - (and - (= j j_1) - (= conf_0 conf_0_0) - (= k k_1) - (= conf_0_0 4) - (= j_1 0) - (= k_1 0) - ) -) - + (and (= j j_1) (= conf_0 conf_0_0) (= k k_1) (= conf_0_0 4) (= j_1 0) (= k_1 0))) (define-fun trans-f ((a Int) (j Int) (conf_0 Int) (k Int) (m Int) (a_0 Int) (j_0 Int) (j_1 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (a! Int) (j! Int) (conf_0! Int) (k! Int) (m! Int) (a_0! Int) (j_0! Int) (j_1! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int) (k_0! Int) (k_1! Int) (k_2! Int) (k_3! Int) (m_0! Int) (m_1! Int) (m_2! Int) (m_3! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= k_2 k) - (= m_1 m) - (= conf_0_1 conf_0!) - (= k_2 k!) - (= m_1 m!) - (= a a!) - (= j j!) - (= conf_0 conf_0!) - (= m m!) - ) - (and - (= conf_0_1 conf_0) - (= k_2 k) - (= m_1 m) - (< k_2 1) - (< m_1 a_0) - (= m_2 a_0) - (= conf_0_2 conf_0_1) - (= conf_0_3 conf_0_2) - (= m_3 m_2) - (= k_3 (+ k_2 1)) - (= conf_0_4 453) - (= conf_0_4 conf_0!) - (= k_3 k!) - (= m_3 m!) - (= a a_0) - (= a! a_0) - (= j j_1) - (= j! j_1) - ) - (and - (= conf_0_1 conf_0) - (= k_2 k) - (= m_1 m) - (< k_2 1) - (not (< m_1 a_0)) - (= conf_0_3 conf_0_1) - (= m_3 m_1) - (= k_3 (+ k_2 1)) - (= conf_0_4 453) - (= conf_0_4 conf_0!) - (= k_3 k!) - (= m_3 m!) - (= a a_0) - (= a! a_0) - (= j j_1) - (= j! j_1) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= k_2 k) (= m_1 m) (= conf_0_1 conf_0!) (= k_2 k!) (= m_1 m!) (= a a!) (= j j!) (= conf_0 conf_0!) (= m m!)) (and (= conf_0_1 conf_0) (= k_2 k) (= m_1 m) (< k_2 1) (< m_1 a_0) (= m_2 a_0) (= conf_0_2 conf_0_1) (= conf_0_3 conf_0_2) (= m_3 m_2) (= k_3 (+ k_2 1)) (= conf_0_4 453) (= conf_0_4 conf_0!) (= k_3 k!) (= m_3 m!) (= a a_0) (= a! a_0) (= j j_1) (= j! j_1)) (and (= conf_0_1 conf_0) (= k_2 k) (= m_1 m) (< k_2 1) (not (< m_1 a_0)) (= conf_0_3 conf_0_1) (= m_3 m_1) (= k_3 (+ k_2 1)) (= conf_0_4 453) (= conf_0_4 conf_0!) (= k_3 k!) (= m_3 m!) (= a a_0) (= a! a_0) (= j j_1) (= j! j_1)))) (define-fun post-f ((a Int) (j Int) (conf_0 Int) (k Int) (m Int) (a_0 Int) (j_0 Int) (j_1 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int)) Bool - (or - (not - (and - (= a a_0) - (= j j_1) - (= conf_0 conf_0_1) - (= k k_2) - (= m m_1) - ) - ) - (not - (and - (not (< k_2 1)) - (not (<= a_0 m_1)) - ) - ) - ) -) + (or (not (and (= a a_0) (= j j_1) (= conf_0 conf_0_1) (= k k_2) (= m m_1))) (not (and (not (< k_2 1)) (not (<= a_0 m_1)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/107_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/107_conf5.sl index 365894b..beec6b5 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/107_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/107_conf5.sl @@ -1,158 +1,15 @@ (set-logic LIA) -(declare-primed-var a Int) -(declare-primed-var j Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var k Int) -(declare-primed-var m Int) - -(declare-primed-var a_0 Int) -(declare-primed-var j_0 Int) -(declare-primed-var j_1 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_3_1 Int) -(declare-primed-var conf_3_2 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var conf_4_1 Int) -(declare-primed-var conf_4_2 Int) -(declare-primed-var conf_4_3 Int) -(declare-primed-var k_0 Int) -(declare-primed-var k_1 Int) -(declare-primed-var k_2 Int) -(declare-primed-var k_3 Int) -(declare-primed-var m_0 Int) -(declare-primed-var m_1 Int) -(declare-primed-var m_2 Int) -(declare-primed-var m_3 Int) - (synth-inv inv-f ((a Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (k Int) (m Int) (a_0 Int) (j_0 Int) (j_1 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int))) (define-fun pre-f ((a Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (k Int) (m Int) (a_0 Int) (j_0 Int) (j_1 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int)) Bool - (and - (= j j_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= k k_1) - (= conf_0_0 1) - (= conf_1_0 3) - (= conf_2_0 8) - (= conf_3_0 2) - (= conf_4_0 4) - (= j_1 0) - (= k_1 0) - ) -) - + (and (= j j_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= k k_1) (= conf_0_0 1) (= conf_1_0 3) (= conf_2_0 8) (= conf_3_0 2) (= conf_4_0 4) (= j_1 0) (= k_1 0))) (define-fun trans-f ((a Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (k Int) (m Int) (a_0 Int) (j_0 Int) (j_1 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (a! Int) (j! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (k! Int) (m! Int) (a_0! Int) (j_0! Int) (j_1! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_3_1! Int) (conf_3_2! Int) (conf_4_0! Int) (conf_4_1! Int) (conf_4_2! Int) (conf_4_3! Int) (k_0! Int) (k_1! Int) (k_2! Int) (k_3! Int) (m_0! Int) (m_1! Int) (m_2! Int) (m_3! Int)) Bool - (or - (and - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (= k_2 k) - (= m_1 m) - (= conf_3_1 conf_3!) - (= conf_4_1 conf_4!) - (= k_2 k!) - (= m_1 m!) - (= a a!) - (= j j!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= m m!) - ) - (and - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (= k_2 k) - (= m_1 m) - (< k_2 1) - (< m_1 a_0) - (= m_2 a_0) - (= conf_4_2 453) - (= conf_4_3 conf_4_2) - (= m_3 m_2) - (= k_3 (+ k_2 1)) - (= conf_3_2 (+ 611 conf_4_3)) - (= conf_3_2 conf_3!) - (= conf_4_3 conf_4!) - (= k_3 k!) - (= m_3 m!) - (= a a_0) - (= a! a_0) - (= j j_1) - (= j! j_1) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - ) - (and - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (= k_2 k) - (= m_1 m) - (< k_2 1) - (not (< m_1 a_0)) - (= conf_4_3 conf_4_1) - (= m_3 m_1) - (= k_3 (+ k_2 1)) - (= conf_3_2 (+ 611 conf_4_3)) - (= conf_3_2 conf_3!) - (= conf_4_3 conf_4!) - (= k_3 k!) - (= m_3 m!) - (= a a_0) - (= a! a_0) - (= j j_1) - (= j! j_1) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - ) - ) -) - + (or (and (= conf_3_1 conf_3) (= conf_4_1 conf_4) (= k_2 k) (= m_1 m) (= conf_3_1 conf_3!) (= conf_4_1 conf_4!) (= k_2 k!) (= m_1 m!) (= a a!) (= j j!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= m m!)) (and (= conf_3_1 conf_3) (= conf_4_1 conf_4) (= k_2 k) (= m_1 m) (< k_2 1) (< m_1 a_0) (= m_2 a_0) (= conf_4_2 453) (= conf_4_3 conf_4_2) (= m_3 m_2) (= k_3 (+ k_2 1)) (= conf_3_2 (+ 611 conf_4_3)) (= conf_3_2 conf_3!) (= conf_4_3 conf_4!) (= k_3 k!) (= m_3 m!) (= a a_0) (= a! a_0) (= j j_1) (= j! j_1) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0)) (and (= conf_3_1 conf_3) (= conf_4_1 conf_4) (= k_2 k) (= m_1 m) (< k_2 1) (not (< m_1 a_0)) (= conf_4_3 conf_4_1) (= m_3 m_1) (= k_3 (+ k_2 1)) (= conf_3_2 (+ 611 conf_4_3)) (= conf_3_2 conf_3!) (= conf_4_3 conf_4!) (= k_3 k!) (= m_3 m!) (= a a_0) (= a! a_0) (= j j_1) (= j! j_1) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0)))) (define-fun post-f ((a Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (k Int) (m Int) (a_0 Int) (j_0 Int) (j_1 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int)) Bool - (or - (not - (and - (= a a_0) - (= j j_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_1) - (= conf_4 conf_4_1) - (= k k_2) - (= m m_1) - ) - ) - (not - (and - (not (< k_2 1)) - (not (<= a_0 m_1)) - ) - ) - ) -) + (or (not (and (= a a_0) (= j j_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_1) (= conf_4 conf_4_1) (= k k_2) (= m m_1))) (not (and (not (< k_2 1)) (not (<= a_0 m_1)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/108.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/108.c.sl index 4be63db..5623667 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/108.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/108.c.sl @@ -1,106 +1,15 @@ (set-logic LIA) -(declare-primed-var a Int) -(declare-primed-var c Int) -(declare-primed-var j Int) -(declare-primed-var k Int) -(declare-primed-var m Int) - -(declare-primed-var a_0 Int) -(declare-primed-var c_0 Int) -(declare-primed-var j_0 Int) -(declare-primed-var j_1 Int) -(declare-primed-var k_0 Int) -(declare-primed-var k_1 Int) -(declare-primed-var k_2 Int) -(declare-primed-var k_3 Int) -(declare-primed-var m_0 Int) -(declare-primed-var m_1 Int) -(declare-primed-var m_2 Int) -(declare-primed-var m_3 Int) - (synth-inv inv-f ((a Int) (c Int) (j Int) (k Int) (m Int) (a_0 Int) (c_0 Int) (j_0 Int) (j_1 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int))) (define-fun pre-f ((a Int) (c Int) (j Int) (k Int) (m Int) (a_0 Int) (c_0 Int) (j_0 Int) (j_1 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int)) Bool - (and - (= a a_0) - (= j j_1) - (= k k_1) - (= m m_0) - (<= a_0 m_0) - (= j_1 0) - (= k_1 0) - ) -) - + (and (= a a_0) (= j j_1) (= k k_1) (= m m_0) (<= a_0 m_0) (= j_1 0) (= k_1 0))) (define-fun trans-f ((a Int) (c Int) (j Int) (k Int) (m Int) (a_0 Int) (c_0 Int) (j_0 Int) (j_1 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (a! Int) (c! Int) (j! Int) (k! Int) (m! Int) (a_0! Int) (c_0! Int) (j_0! Int) (j_1! Int) (k_0! Int) (k_1! Int) (k_2! Int) (k_3! Int) (m_0! Int) (m_1! Int) (m_2! Int) (m_3! Int)) Bool - (or - (and - (= k_2 k) - (= m_1 m) - (= k_2 k!) - (= m_1 m!) - (= c c_0) - (= c! c_0) - (= a a!) - (= j j!) - (= m m!) - ) - (and - (= k_2 k) - (= m_1 m) - (< k_2 c_0) - (< m_1 a_0) - (= m_2 a_0) - (= m_3 m_2) - (= k_3 (+ k_2 1)) - (= k_3 k!) - (= m_3 m!) - (= a a_0) - (= a! a_0) - (= c c_0) - (= c! c_0) - (= j j_1) - (= j! j_1) - ) - (and - (= k_2 k) - (= m_1 m) - (< k_2 c_0) - (not (< m_1 a_0)) - (= m_3 m_1) - (= k_3 (+ k_2 1)) - (= k_3 k!) - (= m_3 m!) - (= a a_0) - (= a! a_0) - (= c c_0) - (= c! c_0) - (= j j_1) - (= j! j_1) - ) - ) -) - + (or (and (= k_2 k) (= m_1 m) (= k_2 k!) (= m_1 m!) (= c c_0) (= c! c_0) (= a a!) (= j j!) (= m m!)) (and (= k_2 k) (= m_1 m) (< k_2 c_0) (< m_1 a_0) (= m_2 a_0) (= m_3 m_2) (= k_3 (+ k_2 1)) (= k_3 k!) (= m_3 m!) (= a a_0) (= a! a_0) (= c c_0) (= c! c_0) (= j j_1) (= j! j_1)) (and (= k_2 k) (= m_1 m) (< k_2 c_0) (not (< m_1 a_0)) (= m_3 m_1) (= k_3 (+ k_2 1)) (= k_3 k!) (= m_3 m!) (= a a_0) (= a! a_0) (= c c_0) (= c! c_0) (= j j_1) (= j! j_1)))) (define-fun post-f ((a Int) (c Int) (j Int) (k Int) (m Int) (a_0 Int) (c_0 Int) (j_0 Int) (j_1 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int)) Bool - (or - (not - (and - (= a a_0) - (= c c_0) - (= j j_1) - (= k k_2) - (= m m_1) - ) - ) - (not - (and - (not (< k_2 c_0)) - (not (<= a_0 m_1)) - ) - ) - ) -) + (or (not (and (= a a_0) (= c c_0) (= j j_1) (= k k_2) (= m m_1))) (not (and (not (< k_2 c_0)) (not (<= a_0 m_1)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/108_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/108_conf1.sl index 8246d75..4ef603d 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/108_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/108_conf1.sl @@ -1,127 +1,15 @@ (set-logic LIA) -(declare-primed-var a Int) -(declare-primed-var c Int) -(declare-primed-var j Int) -(declare-primed-var conf_0 Int) -(declare-primed-var k Int) -(declare-primed-var m Int) - -(declare-primed-var a_0 Int) -(declare-primed-var c_0 Int) -(declare-primed-var j_0 Int) -(declare-primed-var j_1 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) -(declare-primed-var k_0 Int) -(declare-primed-var k_1 Int) -(declare-primed-var k_2 Int) -(declare-primed-var k_3 Int) -(declare-primed-var m_0 Int) -(declare-primed-var m_1 Int) -(declare-primed-var m_2 Int) -(declare-primed-var m_3 Int) - (synth-inv inv-f ((a Int) (c Int) (j Int) (conf_0 Int) (k Int) (m Int) (a_0 Int) (c_0 Int) (j_0 Int) (j_1 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int))) (define-fun pre-f ((a Int) (c Int) (j Int) (conf_0 Int) (k Int) (m Int) (a_0 Int) (c_0 Int) (j_0 Int) (j_1 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int)) Bool - (and - (= a a_0) - (= j j_1) - (= conf_0 conf_0_0) - (= k k_1) - (= m m_0) - (= conf_0_0 6) - (<= a_0 m_0) - (= j_1 0) - (= k_1 0) - ) -) - + (and (= a a_0) (= j j_1) (= conf_0 conf_0_0) (= k k_1) (= m m_0) (= conf_0_0 6) (<= a_0 m_0) (= j_1 0) (= k_1 0))) (define-fun trans-f ((a Int) (c Int) (j Int) (conf_0 Int) (k Int) (m Int) (a_0 Int) (c_0 Int) (j_0 Int) (j_1 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (a! Int) (c! Int) (j! Int) (conf_0! Int) (k! Int) (m! Int) (a_0! Int) (c_0! Int) (j_0! Int) (j_1! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int) (k_0! Int) (k_1! Int) (k_2! Int) (k_3! Int) (m_0! Int) (m_1! Int) (m_2! Int) (m_3! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= k_2 k) - (= m_1 m) - (= conf_0_1 conf_0!) - (= k_2 k!) - (= m_1 m!) - (= c c_0) - (= c! c_0) - (= a a!) - (= j j!) - (= conf_0 conf_0!) - (= m m!) - ) - (and - (= conf_0_1 conf_0) - (= k_2 k) - (= m_1 m) - (< k_2 c_0) - (< m_1 a_0) - (= m_2 a_0) - (= conf_0_2 conf_0_1) - (= conf_0_3 conf_0_2) - (= m_3 m_2) - (= k_3 (+ k_2 1)) - (= conf_0_4 conf_0_3) - (= conf_0_4 conf_0!) - (= k_3 k!) - (= m_3 m!) - (= a a_0) - (= a! a_0) - (= c c_0) - (= c! c_0) - (= j j_1) - (= j! j_1) - ) - (and - (= conf_0_1 conf_0) - (= k_2 k) - (= m_1 m) - (< k_2 c_0) - (not (< m_1 a_0)) - (= conf_0_3 conf_0_1) - (= m_3 m_1) - (= k_3 (+ k_2 1)) - (= conf_0_4 conf_0_3) - (= conf_0_4 conf_0!) - (= k_3 k!) - (= m_3 m!) - (= a a_0) - (= a! a_0) - (= c c_0) - (= c! c_0) - (= j j_1) - (= j! j_1) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= k_2 k) (= m_1 m) (= conf_0_1 conf_0!) (= k_2 k!) (= m_1 m!) (= c c_0) (= c! c_0) (= a a!) (= j j!) (= conf_0 conf_0!) (= m m!)) (and (= conf_0_1 conf_0) (= k_2 k) (= m_1 m) (< k_2 c_0) (< m_1 a_0) (= m_2 a_0) (= conf_0_2 conf_0_1) (= conf_0_3 conf_0_2) (= m_3 m_2) (= k_3 (+ k_2 1)) (= conf_0_4 conf_0_3) (= conf_0_4 conf_0!) (= k_3 k!) (= m_3 m!) (= a a_0) (= a! a_0) (= c c_0) (= c! c_0) (= j j_1) (= j! j_1)) (and (= conf_0_1 conf_0) (= k_2 k) (= m_1 m) (< k_2 c_0) (not (< m_1 a_0)) (= conf_0_3 conf_0_1) (= m_3 m_1) (= k_3 (+ k_2 1)) (= conf_0_4 conf_0_3) (= conf_0_4 conf_0!) (= k_3 k!) (= m_3 m!) (= a a_0) (= a! a_0) (= c c_0) (= c! c_0) (= j j_1) (= j! j_1)))) (define-fun post-f ((a Int) (c Int) (j Int) (conf_0 Int) (k Int) (m Int) (a_0 Int) (c_0 Int) (j_0 Int) (j_1 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int)) Bool - (or - (not - (and - (= a a_0) - (= c c_0) - (= j j_1) - (= conf_0 conf_0_1) - (= k k_2) - (= m m_1) - ) - ) - (not - (and - (not (< k_2 c_0)) - (not (<= a_0 m_1)) - ) - ) - ) -) + (or (not (and (= a a_0) (= c c_0) (= j j_1) (= conf_0 conf_0_1) (= k k_2) (= m m_1))) (not (and (not (< k_2 c_0)) (not (<= a_0 m_1)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/108_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/108_conf5.sl index b571a6a..5ad2cd1 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/108_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/108_conf5.sl @@ -1,170 +1,15 @@ (set-logic LIA) -(declare-primed-var a Int) -(declare-primed-var c Int) -(declare-primed-var j Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var k Int) -(declare-primed-var m Int) - -(declare-primed-var a_0 Int) -(declare-primed-var c_0 Int) -(declare-primed-var j_0 Int) -(declare-primed-var j_1 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_2_1 Int) -(declare-primed-var conf_2_2 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var k_0 Int) -(declare-primed-var k_1 Int) -(declare-primed-var k_2 Int) -(declare-primed-var k_3 Int) -(declare-primed-var m_0 Int) -(declare-primed-var m_1 Int) -(declare-primed-var m_2 Int) -(declare-primed-var m_3 Int) - (synth-inv inv-f ((a Int) (c Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (k Int) (m Int) (a_0 Int) (c_0 Int) (j_0 Int) (j_1 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int))) (define-fun pre-f ((a Int) (c Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (k Int) (m Int) (a_0 Int) (c_0 Int) (j_0 Int) (j_1 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int)) Bool - (and - (= a a_0) - (= j j_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= k k_1) - (= m m_0) - (= conf_0_0 0) - (= conf_1_0 7) - (= conf_2_0 8) - (= conf_3_0 5) - (= conf_4_0 6) - (<= a_0 m_0) - (= j_1 0) - (= k_1 0) - ) -) - + (and (= a a_0) (= j j_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= k k_1) (= m m_0) (= conf_0_0 0) (= conf_1_0 7) (= conf_2_0 8) (= conf_3_0 5) (= conf_4_0 6) (<= a_0 m_0) (= j_1 0) (= k_1 0))) (define-fun trans-f ((a Int) (c Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (k Int) (m Int) (a_0 Int) (c_0 Int) (j_0 Int) (j_1 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (a! Int) (c! Int) (j! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (k! Int) (m! Int) (a_0! Int) (c_0! Int) (j_0! Int) (j_1! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_2_1! Int) (conf_2_2! Int) (conf_3_0! Int) (conf_4_0! Int) (k_0! Int) (k_1! Int) (k_2! Int) (k_3! Int) (m_0! Int) (m_1! Int) (m_2! Int) (m_3! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= conf_2_1 conf_2) - (= k_2 k) - (= m_1 m) - (= conf_0_1 conf_0!) - (= conf_2_1 conf_2!) - (= k_2 k!) - (= m_1 m!) - (= c c_0) - (= c! c_0) - (= a a!) - (= j j!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= m m!) - ) - (and - (= conf_0_1 conf_0) - (= conf_2_1 conf_2) - (= k_2 k) - (= m_1 m) - (< k_2 c_0) - (< m_1 a_0) - (= m_2 a_0) - (= conf_0_2 conf_0_1) - (= conf_0_3 conf_0_2) - (= m_3 m_2) - (= k_3 (+ k_2 1)) - (= conf_2_2 (+ 270 conf_4_0)) - (= conf_0_3 conf_0!) - (= conf_2_2 conf_2!) - (= k_3 k!) - (= m_3 m!) - (= a a_0) - (= a! a_0) - (= c c_0) - (= c! c_0) - (= j j_1) - (= j! j_1) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - ) - (and - (= conf_0_1 conf_0) - (= conf_2_1 conf_2) - (= k_2 k) - (= m_1 m) - (< k_2 c_0) - (not (< m_1 a_0)) - (= conf_0_3 conf_0_1) - (= m_3 m_1) - (= k_3 (+ k_2 1)) - (= conf_2_2 (+ 270 conf_4_0)) - (= conf_0_3 conf_0!) - (= conf_2_2 conf_2!) - (= k_3 k!) - (= m_3 m!) - (= a a_0) - (= a! a_0) - (= c c_0) - (= c! c_0) - (= j j_1) - (= j! j_1) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= conf_2_1 conf_2) (= k_2 k) (= m_1 m) (= conf_0_1 conf_0!) (= conf_2_1 conf_2!) (= k_2 k!) (= m_1 m!) (= c c_0) (= c! c_0) (= a a!) (= j j!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= m m!)) (and (= conf_0_1 conf_0) (= conf_2_1 conf_2) (= k_2 k) (= m_1 m) (< k_2 c_0) (< m_1 a_0) (= m_2 a_0) (= conf_0_2 conf_0_1) (= conf_0_3 conf_0_2) (= m_3 m_2) (= k_3 (+ k_2 1)) (= conf_2_2 (+ 270 conf_4_0)) (= conf_0_3 conf_0!) (= conf_2_2 conf_2!) (= k_3 k!) (= m_3 m!) (= a a_0) (= a! a_0) (= c c_0) (= c! c_0) (= j j_1) (= j! j_1) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0)) (and (= conf_0_1 conf_0) (= conf_2_1 conf_2) (= k_2 k) (= m_1 m) (< k_2 c_0) (not (< m_1 a_0)) (= conf_0_3 conf_0_1) (= m_3 m_1) (= k_3 (+ k_2 1)) (= conf_2_2 (+ 270 conf_4_0)) (= conf_0_3 conf_0!) (= conf_2_2 conf_2!) (= k_3 k!) (= m_3 m!) (= a a_0) (= a! a_0) (= c c_0) (= c! c_0) (= j j_1) (= j! j_1) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0)))) (define-fun post-f ((a Int) (c Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (k Int) (m Int) (a_0 Int) (c_0 Int) (j_0 Int) (j_1 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int)) Bool - (or - (not - (and - (= a a_0) - (= c c_0) - (= j j_1) - (= conf_0 conf_0_1) - (= conf_1 conf_1_0) - (= conf_2 conf_2_1) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= k k_2) - (= m m_1) - ) - ) - (not - (and - (not (< k_2 c_0)) - (not (<= a_0 m_1)) - ) - ) - ) -) + (or (not (and (= a a_0) (= c c_0) (= j j_1) (= conf_0 conf_0_1) (= conf_1 conf_1_0) (= conf_2 conf_2_1) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= k k_2) (= m m_1))) (not (and (not (< k_2 c_0)) (not (<= a_0 m_1)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/109.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/109.c.sl index f3a524d..04a2094 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/109.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/109.c.sl @@ -1,104 +1,15 @@ (set-logic LIA) -(declare-primed-var a Int) -(declare-primed-var c Int) -(declare-primed-var j Int) -(declare-primed-var k Int) -(declare-primed-var m Int) - -(declare-primed-var a_0 Int) -(declare-primed-var c_0 Int) -(declare-primed-var j_0 Int) -(declare-primed-var j_1 Int) -(declare-primed-var k_0 Int) -(declare-primed-var k_1 Int) -(declare-primed-var k_2 Int) -(declare-primed-var k_3 Int) -(declare-primed-var m_0 Int) -(declare-primed-var m_1 Int) -(declare-primed-var m_2 Int) -(declare-primed-var m_3 Int) - (synth-inv inv-f ((a Int) (c Int) (j Int) (k Int) (m Int) (a_0 Int) (c_0 Int) (j_0 Int) (j_1 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int))) (define-fun pre-f ((a Int) (c Int) (j Int) (k Int) (m Int) (a_0 Int) (c_0 Int) (j_0 Int) (j_1 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int)) Bool - (and - (= j j_1) - (= k k_1) - (= j_1 0) - (= k_1 0) - ) -) - + (and (= j j_1) (= k k_1) (= j_1 0) (= k_1 0))) (define-fun trans-f ((a Int) (c Int) (j Int) (k Int) (m Int) (a_0 Int) (c_0 Int) (j_0 Int) (j_1 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (a! Int) (c! Int) (j! Int) (k! Int) (m! Int) (a_0! Int) (c_0! Int) (j_0! Int) (j_1! Int) (k_0! Int) (k_1! Int) (k_2! Int) (k_3! Int) (m_0! Int) (m_1! Int) (m_2! Int) (m_3! Int)) Bool - (or - (and - (= k_2 k) - (= m_1 m) - (= k_2 k!) - (= m_1 m!) - (= c c_0) - (= c! c_0) - (= a a!) - (= j j!) - (= m m!) - ) - (and - (= k_2 k) - (= m_1 m) - (< k_2 c_0) - (< m_1 a_0) - (= m_2 a_0) - (= m_3 m_2) - (= k_3 (+ k_2 1)) - (= k_3 k!) - (= m_3 m!) - (= a a_0) - (= a! a_0) - (= c c_0) - (= c! c_0) - (= j j_1) - (= j! j_1) - ) - (and - (= k_2 k) - (= m_1 m) - (< k_2 c_0) - (not (< m_1 a_0)) - (= m_3 m_1) - (= k_3 (+ k_2 1)) - (= k_3 k!) - (= m_3 m!) - (= a a_0) - (= a! a_0) - (= c c_0) - (= c! c_0) - (= j j_1) - (= j! j_1) - ) - ) -) - + (or (and (= k_2 k) (= m_1 m) (= k_2 k!) (= m_1 m!) (= c c_0) (= c! c_0) (= a a!) (= j j!) (= m m!)) (and (= k_2 k) (= m_1 m) (< k_2 c_0) (< m_1 a_0) (= m_2 a_0) (= m_3 m_2) (= k_3 (+ k_2 1)) (= k_3 k!) (= m_3 m!) (= a a_0) (= a! a_0) (= c c_0) (= c! c_0) (= j j_1) (= j! j_1)) (and (= k_2 k) (= m_1 m) (< k_2 c_0) (not (< m_1 a_0)) (= m_3 m_1) (= k_3 (+ k_2 1)) (= k_3 k!) (= m_3 m!) (= a a_0) (= a! a_0) (= c c_0) (= c! c_0) (= j j_1) (= j! j_1)))) (define-fun post-f ((a Int) (c Int) (j Int) (k Int) (m Int) (a_0 Int) (c_0 Int) (j_0 Int) (j_1 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int)) Bool - (or - (not - (and - (= a a_0) - (= c c_0) - (= j j_1) - (= k k_2) - (= m m_1) - ) - ) - (not - (and - (not (< k_2 c_0)) - (> c_0 0) - (not (<= a_0 m_1)) - ) - ) - ) -) + (or (not (and (= a a_0) (= c c_0) (= j j_1) (= k k_2) (= m m_1))) (not (and (not (< k_2 c_0)) (> c_0 0) (not (<= a_0 m_1)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/109_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/109_conf1.sl index fac005b..468b660 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/109_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/109_conf1.sl @@ -1,125 +1,15 @@ (set-logic LIA) -(declare-primed-var a Int) -(declare-primed-var c Int) -(declare-primed-var j Int) -(declare-primed-var conf_0 Int) -(declare-primed-var k Int) -(declare-primed-var m Int) - -(declare-primed-var a_0 Int) -(declare-primed-var c_0 Int) -(declare-primed-var j_0 Int) -(declare-primed-var j_1 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) -(declare-primed-var k_0 Int) -(declare-primed-var k_1 Int) -(declare-primed-var k_2 Int) -(declare-primed-var k_3 Int) -(declare-primed-var m_0 Int) -(declare-primed-var m_1 Int) -(declare-primed-var m_2 Int) -(declare-primed-var m_3 Int) - (synth-inv inv-f ((a Int) (c Int) (j Int) (conf_0 Int) (k Int) (m Int) (a_0 Int) (c_0 Int) (j_0 Int) (j_1 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int))) (define-fun pre-f ((a Int) (c Int) (j Int) (conf_0 Int) (k Int) (m Int) (a_0 Int) (c_0 Int) (j_0 Int) (j_1 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int)) Bool - (and - (= j j_1) - (= conf_0 conf_0_0) - (= k k_1) - (= conf_0_0 7) - (= j_1 0) - (= k_1 0) - ) -) - + (and (= j j_1) (= conf_0 conf_0_0) (= k k_1) (= conf_0_0 7) (= j_1 0) (= k_1 0))) (define-fun trans-f ((a Int) (c Int) (j Int) (conf_0 Int) (k Int) (m Int) (a_0 Int) (c_0 Int) (j_0 Int) (j_1 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (a! Int) (c! Int) (j! Int) (conf_0! Int) (k! Int) (m! Int) (a_0! Int) (c_0! Int) (j_0! Int) (j_1! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int) (k_0! Int) (k_1! Int) (k_2! Int) (k_3! Int) (m_0! Int) (m_1! Int) (m_2! Int) (m_3! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= k_2 k) - (= m_1 m) - (= conf_0_1 conf_0!) - (= k_2 k!) - (= m_1 m!) - (= c c_0) - (= c! c_0) - (= a a!) - (= j j!) - (= conf_0 conf_0!) - (= m m!) - ) - (and - (= conf_0_1 conf_0) - (= k_2 k) - (= m_1 m) - (< k_2 c_0) - (< m_1 a_0) - (= m_2 a_0) - (= conf_0_2 conf_0_1) - (= conf_0_3 conf_0_2) - (= m_3 m_2) - (= k_3 (+ k_2 1)) - (= conf_0_4 (- conf_0_3 345)) - (= conf_0_4 conf_0!) - (= k_3 k!) - (= m_3 m!) - (= a a_0) - (= a! a_0) - (= c c_0) - (= c! c_0) - (= j j_1) - (= j! j_1) - ) - (and - (= conf_0_1 conf_0) - (= k_2 k) - (= m_1 m) - (< k_2 c_0) - (not (< m_1 a_0)) - (= conf_0_3 conf_0_1) - (= m_3 m_1) - (= k_3 (+ k_2 1)) - (= conf_0_4 (- conf_0_3 345)) - (= conf_0_4 conf_0!) - (= k_3 k!) - (= m_3 m!) - (= a a_0) - (= a! a_0) - (= c c_0) - (= c! c_0) - (= j j_1) - (= j! j_1) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= k_2 k) (= m_1 m) (= conf_0_1 conf_0!) (= k_2 k!) (= m_1 m!) (= c c_0) (= c! c_0) (= a a!) (= j j!) (= conf_0 conf_0!) (= m m!)) (and (= conf_0_1 conf_0) (= k_2 k) (= m_1 m) (< k_2 c_0) (< m_1 a_0) (= m_2 a_0) (= conf_0_2 conf_0_1) (= conf_0_3 conf_0_2) (= m_3 m_2) (= k_3 (+ k_2 1)) (= conf_0_4 (- conf_0_3 345)) (= conf_0_4 conf_0!) (= k_3 k!) (= m_3 m!) (= a a_0) (= a! a_0) (= c c_0) (= c! c_0) (= j j_1) (= j! j_1)) (and (= conf_0_1 conf_0) (= k_2 k) (= m_1 m) (< k_2 c_0) (not (< m_1 a_0)) (= conf_0_3 conf_0_1) (= m_3 m_1) (= k_3 (+ k_2 1)) (= conf_0_4 (- conf_0_3 345)) (= conf_0_4 conf_0!) (= k_3 k!) (= m_3 m!) (= a a_0) (= a! a_0) (= c c_0) (= c! c_0) (= j j_1) (= j! j_1)))) (define-fun post-f ((a Int) (c Int) (j Int) (conf_0 Int) (k Int) (m Int) (a_0 Int) (c_0 Int) (j_0 Int) (j_1 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int)) Bool - (or - (not - (and - (= a a_0) - (= c c_0) - (= j j_1) - (= conf_0 conf_0_1) - (= k k_2) - (= m m_1) - ) - ) - (not - (and - (not (< k_2 c_0)) - (> c_0 0) - (not (<= a_0 m_1)) - ) - ) - ) -) + (or (not (and (= a a_0) (= c c_0) (= j j_1) (= conf_0 conf_0_1) (= k k_2) (= m m_1))) (not (and (not (< k_2 c_0)) (> c_0 0) (not (<= a_0 m_1)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/109_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/109_conf5.sl index e726242..69b34f8 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/109_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/109_conf5.sl @@ -1,168 +1,15 @@ (set-logic LIA) -(declare-primed-var a Int) -(declare-primed-var c Int) -(declare-primed-var j Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var k Int) -(declare-primed-var m Int) - -(declare-primed-var a_0 Int) -(declare-primed-var c_0 Int) -(declare-primed-var j_0 Int) -(declare-primed-var j_1 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_1_1 Int) -(declare-primed-var conf_1_2 Int) -(declare-primed-var conf_1_3 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var conf_4_1 Int) -(declare-primed-var conf_4_2 Int) -(declare-primed-var k_0 Int) -(declare-primed-var k_1 Int) -(declare-primed-var k_2 Int) -(declare-primed-var k_3 Int) -(declare-primed-var m_0 Int) -(declare-primed-var m_1 Int) -(declare-primed-var m_2 Int) -(declare-primed-var m_3 Int) - (synth-inv inv-f ((a Int) (c Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (k Int) (m Int) (a_0 Int) (c_0 Int) (j_0 Int) (j_1 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int))) (define-fun pre-f ((a Int) (c Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (k Int) (m Int) (a_0 Int) (c_0 Int) (j_0 Int) (j_1 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int)) Bool - (and - (= j j_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= k k_1) - (= conf_0_0 1) - (= conf_1_0 1) - (= conf_2_0 2) - (= conf_3_0 0) - (= conf_4_0 7) - (= j_1 0) - (= k_1 0) - ) -) - + (and (= j j_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= k k_1) (= conf_0_0 1) (= conf_1_0 1) (= conf_2_0 2) (= conf_3_0 0) (= conf_4_0 7) (= j_1 0) (= k_1 0))) (define-fun trans-f ((a Int) (c Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (k Int) (m Int) (a_0 Int) (c_0 Int) (j_0 Int) (j_1 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (a! Int) (c! Int) (j! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (k! Int) (m! Int) (a_0! Int) (c_0! Int) (j_0! Int) (j_1! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_1_1! Int) (conf_1_2! Int) (conf_1_3! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_4_0! Int) (conf_4_1! Int) (conf_4_2! Int) (k_0! Int) (k_1! Int) (k_2! Int) (k_3! Int) (m_0! Int) (m_1! Int) (m_2! Int) (m_3! Int)) Bool - (or - (and - (= conf_1_1 conf_1) - (= conf_4_1 conf_4) - (= k_2 k) - (= m_1 m) - (= conf_1_1 conf_1!) - (= conf_4_1 conf_4!) - (= k_2 k!) - (= m_1 m!) - (= c c_0) - (= c! c_0) - (= a a!) - (= j j!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= m m!) - ) - (and - (= conf_1_1 conf_1) - (= conf_4_1 conf_4) - (= k_2 k) - (= m_1 m) - (< k_2 c_0) - (< m_1 a_0) - (= m_2 a_0) - (= conf_1_2 (- conf_1_1 345)) - (= conf_1_3 conf_1_2) - (= m_3 m_2) - (= k_3 (+ k_2 1)) - (= conf_4_2 conf_3_0) - (= conf_1_3 conf_1!) - (= conf_4_2 conf_4!) - (= k_3 k!) - (= m_3 m!) - (= a a_0) - (= a! a_0) - (= c c_0) - (= c! c_0) - (= j j_1) - (= j! j_1) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - ) - (and - (= conf_1_1 conf_1) - (= conf_4_1 conf_4) - (= k_2 k) - (= m_1 m) - (< k_2 c_0) - (not (< m_1 a_0)) - (= conf_1_3 conf_1_1) - (= m_3 m_1) - (= k_3 (+ k_2 1)) - (= conf_4_2 conf_3_0) - (= conf_1_3 conf_1!) - (= conf_4_2 conf_4!) - (= k_3 k!) - (= m_3 m!) - (= a a_0) - (= a! a_0) - (= c c_0) - (= c! c_0) - (= j j_1) - (= j! j_1) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - ) - ) -) - + (or (and (= conf_1_1 conf_1) (= conf_4_1 conf_4) (= k_2 k) (= m_1 m) (= conf_1_1 conf_1!) (= conf_4_1 conf_4!) (= k_2 k!) (= m_1 m!) (= c c_0) (= c! c_0) (= a a!) (= j j!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= m m!)) (and (= conf_1_1 conf_1) (= conf_4_1 conf_4) (= k_2 k) (= m_1 m) (< k_2 c_0) (< m_1 a_0) (= m_2 a_0) (= conf_1_2 (- conf_1_1 345)) (= conf_1_3 conf_1_2) (= m_3 m_2) (= k_3 (+ k_2 1)) (= conf_4_2 conf_3_0) (= conf_1_3 conf_1!) (= conf_4_2 conf_4!) (= k_3 k!) (= m_3 m!) (= a a_0) (= a! a_0) (= c c_0) (= c! c_0) (= j j_1) (= j! j_1) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0)) (and (= conf_1_1 conf_1) (= conf_4_1 conf_4) (= k_2 k) (= m_1 m) (< k_2 c_0) (not (< m_1 a_0)) (= conf_1_3 conf_1_1) (= m_3 m_1) (= k_3 (+ k_2 1)) (= conf_4_2 conf_3_0) (= conf_1_3 conf_1!) (= conf_4_2 conf_4!) (= k_3 k!) (= m_3 m!) (= a a_0) (= a! a_0) (= c c_0) (= c! c_0) (= j j_1) (= j! j_1) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0)))) (define-fun post-f ((a Int) (c Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (k Int) (m Int) (a_0 Int) (c_0 Int) (j_0 Int) (j_1 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (k_0 Int) (k_1 Int) (k_2 Int) (k_3 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int)) Bool - (or - (not - (and - (= a a_0) - (= c c_0) - (= j j_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_1) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_1) - (= k k_2) - (= m m_1) - ) - ) - (not - (and - (not (< k_2 c_0)) - (> c_0 0) - (not (<= a_0 m_1)) - ) - ) - ) -) + (or (not (and (= a a_0) (= c c_0) (= j j_1) (= conf_0 conf_0_0) (= conf_1 conf_1_1) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_1) (= k k_2) (= m m_1))) (not (and (not (< k_2 c_0)) (> c_0 0) (not (<= a_0 m_1)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/10_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/10_conf1.sl index 95119cc..3492843 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/10_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/10_conf1.sl @@ -1,83 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var tmp Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((conf_0 Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((conf_0 Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= conf_0 conf_0_0) - (= x x_0) - (= y y_0) - (= conf_0_0 3) - (>= x_0 0) - (<= x_0 2) - (<= y_0 2) - (>= y_0 0) - ) -) - + (and (= conf_0 conf_0_0) (= x x_0) (= y y_0) (= conf_0_0 3) (>= x_0 0) (<= x_0 2) (<= y_0 2) (>= y_0 0))) (define-fun trans-f ((conf_0 Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int) (conf_0! Int) (x! Int) (y! Int) (tmp! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (x_0! Int) (x_1! Int) (x_2! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= x_1 x) - (= y_1 y) - (= conf_0_1 conf_0!) - (= x_1 x!) - (= y_1 y!) - (= conf_0 conf_0!) - (= x x!) - (= y y!) - (= tmp tmp!) - ) - (and - (= conf_0_1 conf_0) - (= x_1 x) - (= y_1 y) - (= x_2 (+ x_1 2)) - (= conf_0_2 conf_0_1) - (= y_2 (+ y_1 2)) - (= conf_0_3 (- 520 69)) - (= conf_0_3 conf_0!) - (= x_2 x!) - (= y_2 y!) - (= tmp tmp!) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= x_1 x) (= y_1 y) (= conf_0_1 conf_0!) (= x_1 x!) (= y_1 y!) (= conf_0 conf_0!) (= x x!) (= y y!) (= tmp tmp!)) (and (= conf_0_1 conf_0) (= x_1 x) (= y_1 y) (= x_2 (+ x_1 2)) (= conf_0_2 conf_0_1) (= y_2 (+ y_1 2)) (= conf_0_3 (- 520 69)) (= conf_0_3 conf_0!) (= x_2 x!) (= y_2 y!) (= tmp tmp!)))) (define-fun post-f ((conf_0 Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= x x_1) - (= y y_1) - ) - ) - (not - (and - (= y_1 0) - (not (not (= x_1 4))) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= x x_1) (= y y_1))) (not (and (= y_1 0) (not (not (= x_1 4))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/10_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/10_conf5.sl index dd5eac2..32e5e12 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/10_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/10_conf5.sl @@ -1,118 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var tmp Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_1_1 Int) -(declare-primed-var conf_1_2 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_2_1 Int) -(declare-primed-var conf_2_2 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_0) - (= y y_0) - (= conf_0_0 6) - (= conf_1_0 3) - (= conf_2_0 4) - (= conf_3_0 8) - (= conf_4_0 3) - (>= x_0 0) - (<= x_0 2) - (<= y_0 2) - (>= y_0 0) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_0) (= y y_0) (= conf_0_0 6) (= conf_1_0 3) (= conf_2_0 4) (= conf_3_0 8) (= conf_4_0 3) (>= x_0 0) (<= x_0 2) (<= y_0 2) (>= y_0 0))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (x! Int) (y! Int) (tmp! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_1_1! Int) (conf_1_2! Int) (conf_2_0! Int) (conf_2_1! Int) (conf_2_2! Int) (conf_3_0! Int) (conf_4_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (= x_1 x) - (= y_1 y) - (= conf_1_1 conf_1!) - (= conf_2_1 conf_2!) - (= x_1 x!) - (= y_1 y!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= x x!) - (= y y!) - (= tmp tmp!) - ) - (and - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (= x_1 x) - (= y_1 y) - (= x_2 (+ x_1 2)) - (= conf_2_2 (- 520 69)) - (= y_2 (+ y_1 2)) - (= conf_1_2 (- conf_0_0 conf_2_2)) - (= conf_1_2 conf_1!) - (= conf_2_2 conf_2!) - (= x_2 x!) - (= y_2 y!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= conf_1_1 conf_1) (= conf_2_1 conf_2) (= x_1 x) (= y_1 y) (= conf_1_1 conf_1!) (= conf_2_1 conf_2!) (= x_1 x!) (= y_1 y!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= x x!) (= y y!) (= tmp tmp!)) (and (= conf_1_1 conf_1) (= conf_2_1 conf_2) (= x_1 x) (= y_1 y) (= x_2 (+ x_1 2)) (= conf_2_2 (- 520 69)) (= y_2 (+ y_1 2)) (= conf_1_2 (- conf_0_0 conf_2_2)) (= conf_1_2 conf_1!) (= conf_2_2 conf_2!) (= x_2 x!) (= y_2 y!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= tmp tmp!)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_1) - (= conf_2 conf_2_1) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_1) - (= y y_1) - ) - ) - (not - (and - (= y_1 0) - (not (not (= x_1 4))) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_0) (= conf_1 conf_1_1) (= conf_2 conf_2_1) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_1) (= y y_1))) (not (and (= y_1 0) (not (not (= x_1 4))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/11.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/11.c.sl index 69159a0..4d157c6 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/11.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/11.c.sl @@ -1,68 +1,15 @@ (set-logic LIA) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var tmp Int) - -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((x Int) (y Int) (tmp Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((x Int) (y Int) (tmp Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= x x_0) - (= y y_0) - (>= x_0 0) - (<= x_0 10) - (<= y_0 10) - (>= y_0 0) - ) -) - + (and (= x x_0) (= y y_0) (>= x_0 0) (<= x_0 10) (<= y_0 10) (>= y_0 0))) (define-fun trans-f ((x Int) (y Int) (tmp Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int) (x! Int) (y! Int) (tmp! Int) (x_0! Int) (x_1! Int) (x_2! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= x_1 x) - (= y_1 y) - (= x_1 x!) - (= y_1 y!) - (= x x!) - (= y y!) - (= tmp tmp!) - ) - (and - (= x_1 x) - (= y_1 y) - (= x_2 (+ x_1 10)) - (= y_2 (+ y_1 10)) - (= x_2 x!) - (= y_2 y!) - (= tmp tmp!) - ) - ) -) - + (or (and (= x_1 x) (= y_1 y) (= x_1 x!) (= y_1 y!) (= x x!) (= y y!) (= tmp tmp!)) (and (= x_1 x) (= y_1 y) (= x_2 (+ x_1 10)) (= y_2 (+ y_1 10)) (= x_2 x!) (= y_2 y!) (= tmp tmp!)))) (define-fun post-f ((x Int) (y Int) (tmp Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= x x_1) - (= y y_1) - ) - ) - (not - (and - (= x_1 20) - (not (not (= y_1 0))) - ) - ) - ) -) + (or (not (and (= x x_1) (= y y_1))) (not (and (= x_1 20) (not (not (= y_1 0))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/110.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/110.c.sl index ca876b5..06847ca 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/110.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/110.c.sl @@ -1,73 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var n Int) -(declare-primed-var sn Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var n_0 Int) -(declare-primed-var sn_0 Int) -(declare-primed-var sn_1 Int) -(declare-primed-var sn_2 Int) -(declare-primed-var sn_3 Int) - (synth-inv inv-f ((i Int) (n Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (n_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int))) (define-fun pre-f ((i Int) (n Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (n_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int)) Bool - (and - (= i i_1) - (= sn sn_1) - (= sn_1 0) - (= i_1 1) - ) -) - + (and (= i i_1) (= sn sn_1) (= sn_1 0) (= i_1 1))) (define-fun trans-f ((i Int) (n Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (n_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (i! Int) (n! Int) (sn! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (n_0! Int) (sn_0! Int) (sn_1! Int) (sn_2! Int) (sn_3! Int)) Bool - (or - (and - (= i_2 i) - (= sn_2 sn) - (= i_2 i!) - (= sn_2 sn!) - (= n n_0) - (= n! n_0) - (= sn sn!) - ) - (and - (= i_2 i) - (= sn_2 sn) - (<= i_2 n_0) - (= i_3 (+ i_2 1)) - (= sn_3 (+ sn_2 1)) - (= i_3 i!) - (= sn_3 sn!) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= i_2 i) (= sn_2 sn) (= i_2 i!) (= sn_2 sn!) (= n n_0) (= n! n_0) (= sn sn!)) (and (= i_2 i) (= sn_2 sn) (<= i_2 n_0) (= i_3 (+ i_2 1)) (= sn_3 (+ sn_2 1)) (= i_3 i!) (= sn_3 sn!) (= n n_0) (= n! n_0)))) (define-fun post-f ((i Int) (n Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (n_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int)) Bool - (or - (not - (and - (= i i_2) - (= n n_0) - (= sn sn_2) - ) - ) - (not - (and - (not (<= i_2 n_0)) - (not (= sn_2 n_0)) - (not (= sn_2 0)) - ) - ) - ) -) + (or (not (and (= i i_2) (= n n_0) (= sn sn_2))) (not (and (not (<= i_2 n_0)) (not (= sn_2 n_0)) (not (= sn_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/110_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/110_conf1.sl index 8f49159..12abd71 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/110_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/110_conf1.sl @@ -1,88 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var conf_0 Int) -(declare-primed-var n Int) -(declare-primed-var sn Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var n_0 Int) -(declare-primed-var sn_0 Int) -(declare-primed-var sn_1 Int) -(declare-primed-var sn_2 Int) -(declare-primed-var sn_3 Int) - (synth-inv inv-f ((i Int) (conf_0 Int) (n Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (n_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int))) (define-fun pre-f ((i Int) (conf_0 Int) (n Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (n_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int)) Bool - (and - (= i i_1) - (= conf_0 conf_0_0) - (= sn sn_1) - (= conf_0_0 6) - (= sn_1 0) - (= i_1 1) - ) -) - + (and (= i i_1) (= conf_0 conf_0_0) (= sn sn_1) (= conf_0_0 6) (= sn_1 0) (= i_1 1))) (define-fun trans-f ((i Int) (conf_0 Int) (n Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (n_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (i! Int) (conf_0! Int) (n! Int) (sn! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (n_0! Int) (sn_0! Int) (sn_1! Int) (sn_2! Int) (sn_3! Int)) Bool - (or - (and - (= i_2 i) - (= conf_0_1 conf_0) - (= sn_2 sn) - (= i_2 i!) - (= conf_0_1 conf_0!) - (= sn_2 sn!) - (= n n_0) - (= n! n_0) - (= conf_0 conf_0!) - (= sn sn!) - ) - (and - (= i_2 i) - (= conf_0_1 conf_0) - (= sn_2 sn) - (<= i_2 n_0) - (= i_3 (+ i_2 1)) - (= conf_0_2 (- 763 429)) - (= sn_3 (+ sn_2 1)) - (= conf_0_3 (- 674 455)) - (= i_3 i!) - (= conf_0_3 conf_0!) - (= sn_3 sn!) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= i_2 i) (= conf_0_1 conf_0) (= sn_2 sn) (= i_2 i!) (= conf_0_1 conf_0!) (= sn_2 sn!) (= n n_0) (= n! n_0) (= conf_0 conf_0!) (= sn sn!)) (and (= i_2 i) (= conf_0_1 conf_0) (= sn_2 sn) (<= i_2 n_0) (= i_3 (+ i_2 1)) (= conf_0_2 (- 763 429)) (= sn_3 (+ sn_2 1)) (= conf_0_3 (- 674 455)) (= i_3 i!) (= conf_0_3 conf_0!) (= sn_3 sn!) (= n n_0) (= n! n_0)))) (define-fun post-f ((i Int) (conf_0 Int) (n Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (n_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int)) Bool - (or - (not - (and - (= i i_2) - (= conf_0 conf_0_1) - (= n n_0) - (= sn sn_2) - ) - ) - (not - (and - (not (<= i_2 n_0)) - (not (= sn_2 n_0)) - (not (= sn_2 0)) - ) - ) - ) -) + (or (not (and (= i i_2) (= conf_0 conf_0_1) (= n n_0) (= sn sn_2))) (not (and (not (<= i_2 n_0)) (not (= sn_2 n_0)) (not (= sn_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/110_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/110_conf5.sl index 8fe32cf..74fcb2c 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/110_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/110_conf5.sl @@ -1,123 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var n Int) -(declare-primed-var sn Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_2_1 Int) -(declare-primed-var conf_2_2 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var conf_4_1 Int) -(declare-primed-var conf_4_2 Int) -(declare-primed-var n_0 Int) -(declare-primed-var sn_0 Int) -(declare-primed-var sn_1 Int) -(declare-primed-var sn_2 Int) -(declare-primed-var sn_3 Int) - (synth-inv inv-f ((i Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (n_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int))) (define-fun pre-f ((i Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (n_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int)) Bool - (and - (= i i_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= sn sn_1) - (= conf_0_0 3) - (= conf_1_0 2) - (= conf_2_0 3) - (= conf_3_0 2) - (= conf_4_0 6) - (= sn_1 0) - (= i_1 1) - ) -) - + (and (= i i_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= sn sn_1) (= conf_0_0 3) (= conf_1_0 2) (= conf_2_0 3) (= conf_3_0 2) (= conf_4_0 6) (= sn_1 0) (= i_1 1))) (define-fun trans-f ((i Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (n_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (i! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (n! Int) (sn! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_2_1! Int) (conf_2_2! Int) (conf_3_0! Int) (conf_4_0! Int) (conf_4_1! Int) (conf_4_2! Int) (n_0! Int) (sn_0! Int) (sn_1! Int) (sn_2! Int) (sn_3! Int)) Bool - (or - (and - (= i_2 i) - (= conf_2_1 conf_2) - (= conf_4_1 conf_4) - (= sn_2 sn) - (= i_2 i!) - (= conf_2_1 conf_2!) - (= conf_4_1 conf_4!) - (= sn_2 sn!) - (= n n_0) - (= n! n_0) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= sn sn!) - ) - (and - (= i_2 i) - (= conf_2_1 conf_2) - (= conf_4_1 conf_4) - (= sn_2 sn) - (<= i_2 n_0) - (= i_3 (+ i_2 1)) - (= conf_4_2 conf_3_0) - (= sn_3 (+ sn_2 1)) - (= conf_2_2 639) - (= i_3 i!) - (= conf_2_2 conf_2!) - (= conf_4_2 conf_4!) - (= sn_3 sn!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= i_2 i) (= conf_2_1 conf_2) (= conf_4_1 conf_4) (= sn_2 sn) (= i_2 i!) (= conf_2_1 conf_2!) (= conf_4_1 conf_4!) (= sn_2 sn!) (= n n_0) (= n! n_0) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= sn sn!)) (and (= i_2 i) (= conf_2_1 conf_2) (= conf_4_1 conf_4) (= sn_2 sn) (<= i_2 n_0) (= i_3 (+ i_2 1)) (= conf_4_2 conf_3_0) (= sn_3 (+ sn_2 1)) (= conf_2_2 639) (= i_3 i!) (= conf_2_2 conf_2!) (= conf_4_2 conf_4!) (= sn_3 sn!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= n n_0) (= n! n_0)))) (define-fun post-f ((i Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (n_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int)) Bool - (or - (not - (and - (= i i_2) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_1) - (= conf_3 conf_3_0) - (= conf_4 conf_4_1) - (= n n_0) - (= sn sn_2) - ) - ) - (not - (and - (not (<= i_2 n_0)) - (not (= sn_2 n_0)) - (not (= sn_2 0)) - ) - ) - ) -) + (or (not (and (= i i_2) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_1) (= conf_3 conf_3_0) (= conf_4 conf_4_1) (= n n_0) (= sn sn_2))) (not (and (not (<= i_2 n_0)) (not (= sn_2 n_0)) (not (= sn_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/111.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/111.c.sl index f39b94b..3e23139 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/111.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/111.c.sl @@ -1,73 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var n Int) -(declare-primed-var sn Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var n_0 Int) -(declare-primed-var sn_0 Int) -(declare-primed-var sn_1 Int) -(declare-primed-var sn_2 Int) -(declare-primed-var sn_3 Int) - (synth-inv inv-f ((i Int) (n Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (n_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int))) (define-fun pre-f ((i Int) (n Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (n_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int)) Bool - (and - (= i i_1) - (= sn sn_1) - (= sn_1 0) - (= i_1 1) - ) -) - + (and (= i i_1) (= sn sn_1) (= sn_1 0) (= i_1 1))) (define-fun trans-f ((i Int) (n Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (n_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (i! Int) (n! Int) (sn! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (n_0! Int) (sn_0! Int) (sn_1! Int) (sn_2! Int) (sn_3! Int)) Bool - (or - (and - (= i_2 i) - (= sn_2 sn) - (= i_2 i!) - (= sn_2 sn!) - (= n n_0) - (= n! n_0) - (= sn sn!) - ) - (and - (= i_2 i) - (= sn_2 sn) - (<= i_2 n_0) - (= i_3 (+ i_2 1)) - (= sn_3 (+ sn_2 1)) - (= i_3 i!) - (= sn_3 sn!) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= i_2 i) (= sn_2 sn) (= i_2 i!) (= sn_2 sn!) (= n n_0) (= n! n_0) (= sn sn!)) (and (= i_2 i) (= sn_2 sn) (<= i_2 n_0) (= i_3 (+ i_2 1)) (= sn_3 (+ sn_2 1)) (= i_3 i!) (= sn_3 sn!) (= n n_0) (= n! n_0)))) (define-fun post-f ((i Int) (n Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (n_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int)) Bool - (or - (not - (and - (= i i_2) - (= n n_0) - (= sn sn_2) - ) - ) - (not - (and - (not (<= i_2 n_0)) - (not (= sn_2 0)) - (not (= sn_2 n_0)) - ) - ) - ) -) + (or (not (and (= i i_2) (= n n_0) (= sn sn_2))) (not (and (not (<= i_2 n_0)) (not (= sn_2 0)) (not (= sn_2 n_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/111_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/111_conf1.sl index 65f0f06..0087d46 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/111_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/111_conf1.sl @@ -1,88 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var conf_0 Int) -(declare-primed-var n Int) -(declare-primed-var sn Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var n_0 Int) -(declare-primed-var sn_0 Int) -(declare-primed-var sn_1 Int) -(declare-primed-var sn_2 Int) -(declare-primed-var sn_3 Int) - (synth-inv inv-f ((i Int) (conf_0 Int) (n Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (n_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int))) (define-fun pre-f ((i Int) (conf_0 Int) (n Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (n_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int)) Bool - (and - (= i i_1) - (= conf_0 conf_0_0) - (= sn sn_1) - (= conf_0_0 6) - (= sn_1 0) - (= i_1 1) - ) -) - + (and (= i i_1) (= conf_0 conf_0_0) (= sn sn_1) (= conf_0_0 6) (= sn_1 0) (= i_1 1))) (define-fun trans-f ((i Int) (conf_0 Int) (n Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (n_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (i! Int) (conf_0! Int) (n! Int) (sn! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (n_0! Int) (sn_0! Int) (sn_1! Int) (sn_2! Int) (sn_3! Int)) Bool - (or - (and - (= i_2 i) - (= conf_0_1 conf_0) - (= sn_2 sn) - (= i_2 i!) - (= conf_0_1 conf_0!) - (= sn_2 sn!) - (= n n_0) - (= n! n_0) - (= conf_0 conf_0!) - (= sn sn!) - ) - (and - (= i_2 i) - (= conf_0_1 conf_0) - (= sn_2 sn) - (<= i_2 n_0) - (= i_3 (+ i_2 1)) - (= conf_0_2 (- 763 429)) - (= sn_3 (+ sn_2 1)) - (= conf_0_3 (- 674 455)) - (= i_3 i!) - (= conf_0_3 conf_0!) - (= sn_3 sn!) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= i_2 i) (= conf_0_1 conf_0) (= sn_2 sn) (= i_2 i!) (= conf_0_1 conf_0!) (= sn_2 sn!) (= n n_0) (= n! n_0) (= conf_0 conf_0!) (= sn sn!)) (and (= i_2 i) (= conf_0_1 conf_0) (= sn_2 sn) (<= i_2 n_0) (= i_3 (+ i_2 1)) (= conf_0_2 (- 763 429)) (= sn_3 (+ sn_2 1)) (= conf_0_3 (- 674 455)) (= i_3 i!) (= conf_0_3 conf_0!) (= sn_3 sn!) (= n n_0) (= n! n_0)))) (define-fun post-f ((i Int) (conf_0 Int) (n Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (n_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int)) Bool - (or - (not - (and - (= i i_2) - (= conf_0 conf_0_1) - (= n n_0) - (= sn sn_2) - ) - ) - (not - (and - (not (<= i_2 n_0)) - (not (= sn_2 0)) - (not (= sn_2 n_0)) - ) - ) - ) -) + (or (not (and (= i i_2) (= conf_0 conf_0_1) (= n n_0) (= sn sn_2))) (not (and (not (<= i_2 n_0)) (not (= sn_2 0)) (not (= sn_2 n_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/111_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/111_conf5.sl index 28740d1..2a875e5 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/111_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/111_conf5.sl @@ -1,123 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var n Int) -(declare-primed-var sn Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_2_1 Int) -(declare-primed-var conf_2_2 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var conf_4_1 Int) -(declare-primed-var conf_4_2 Int) -(declare-primed-var n_0 Int) -(declare-primed-var sn_0 Int) -(declare-primed-var sn_1 Int) -(declare-primed-var sn_2 Int) -(declare-primed-var sn_3 Int) - (synth-inv inv-f ((i Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (n_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int))) (define-fun pre-f ((i Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (n_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int)) Bool - (and - (= i i_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= sn sn_1) - (= conf_0_0 3) - (= conf_1_0 2) - (= conf_2_0 3) - (= conf_3_0 2) - (= conf_4_0 6) - (= sn_1 0) - (= i_1 1) - ) -) - + (and (= i i_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= sn sn_1) (= conf_0_0 3) (= conf_1_0 2) (= conf_2_0 3) (= conf_3_0 2) (= conf_4_0 6) (= sn_1 0) (= i_1 1))) (define-fun trans-f ((i Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (n_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (i! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (n! Int) (sn! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_2_1! Int) (conf_2_2! Int) (conf_3_0! Int) (conf_4_0! Int) (conf_4_1! Int) (conf_4_2! Int) (n_0! Int) (sn_0! Int) (sn_1! Int) (sn_2! Int) (sn_3! Int)) Bool - (or - (and - (= i_2 i) - (= conf_2_1 conf_2) - (= conf_4_1 conf_4) - (= sn_2 sn) - (= i_2 i!) - (= conf_2_1 conf_2!) - (= conf_4_1 conf_4!) - (= sn_2 sn!) - (= n n_0) - (= n! n_0) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= sn sn!) - ) - (and - (= i_2 i) - (= conf_2_1 conf_2) - (= conf_4_1 conf_4) - (= sn_2 sn) - (<= i_2 n_0) - (= i_3 (+ i_2 1)) - (= conf_4_2 conf_3_0) - (= sn_3 (+ sn_2 1)) - (= conf_2_2 639) - (= i_3 i!) - (= conf_2_2 conf_2!) - (= conf_4_2 conf_4!) - (= sn_3 sn!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= i_2 i) (= conf_2_1 conf_2) (= conf_4_1 conf_4) (= sn_2 sn) (= i_2 i!) (= conf_2_1 conf_2!) (= conf_4_1 conf_4!) (= sn_2 sn!) (= n n_0) (= n! n_0) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= sn sn!)) (and (= i_2 i) (= conf_2_1 conf_2) (= conf_4_1 conf_4) (= sn_2 sn) (<= i_2 n_0) (= i_3 (+ i_2 1)) (= conf_4_2 conf_3_0) (= sn_3 (+ sn_2 1)) (= conf_2_2 639) (= i_3 i!) (= conf_2_2 conf_2!) (= conf_4_2 conf_4!) (= sn_3 sn!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= n n_0) (= n! n_0)))) (define-fun post-f ((i Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (n_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int)) Bool - (or - (not - (and - (= i i_2) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_1) - (= conf_3 conf_3_0) - (= conf_4 conf_4_1) - (= n n_0) - (= sn sn_2) - ) - ) - (not - (and - (not (<= i_2 n_0)) - (not (= sn_2 0)) - (not (= sn_2 n_0)) - ) - ) - ) -) + (or (not (and (= i i_2) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_1) (= conf_3 conf_3_0) (= conf_4 conf_4_1) (= n n_0) (= sn sn_2))) (not (and (not (<= i_2 n_0)) (not (= sn_2 0)) (not (= sn_2 n_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/114.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/114.c.sl index a3d5c5b..c0353af 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/114.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/114.c.sl @@ -1,68 +1,15 @@ (set-logic LIA) -(declare-primed-var sn Int) -(declare-primed-var x Int) -(declare-primed-var tmp Int) - -(declare-primed-var sn_0 Int) -(declare-primed-var sn_1 Int) -(declare-primed-var sn_2 Int) -(declare-primed-var sn_3 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((sn Int) (x Int) (tmp Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((sn Int) (x Int) (tmp Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= sn sn_1) - (= x x_1) - (= sn_1 0) - (= x_1 0) - ) -) - + (and (= sn sn_1) (= x x_1) (= sn_1 0) (= x_1 0))) (define-fun trans-f ((sn Int) (x Int) (tmp Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (sn! Int) (x! Int) (tmp! Int) (sn_0! Int) (sn_1! Int) (sn_2! Int) (sn_3! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= sn_2 sn) - (= x_2 x) - (= sn_2 sn!) - (= x_2 x!) - (= sn sn!) - (= x x!) - (= tmp tmp!) - ) - (and - (= sn_2 sn) - (= x_2 x) - (= x_3 (+ x_2 1)) - (= sn_3 (+ sn_2 1)) - (= sn_3 sn!) - (= x_3 x!) - (= tmp tmp!) - ) - ) -) - + (or (and (= sn_2 sn) (= x_2 x) (= sn_2 sn!) (= x_2 x!) (= sn sn!) (= x x!) (= tmp tmp!)) (and (= sn_2 sn) (= x_2 x) (= x_3 (+ x_2 1)) (= sn_3 (+ sn_2 1)) (= sn_3 sn!) (= x_3 x!) (= tmp tmp!)))) (define-fun post-f ((sn Int) (x Int) (tmp Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= sn sn_2) - (= x x_2) - ) - ) - (not - (and - (not (= sn_2 x_2)) - (not (= sn_2 -1)) - ) - ) - ) -) + (or (not (and (= sn sn_2) (= x x_2))) (not (and (not (= sn_2 x_2)) (not (= sn_2 (- 1))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/114_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/114_conf1.sl index bbe26bf..b6f54a7 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/114_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/114_conf1.sl @@ -1,83 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var sn Int) -(declare-primed-var x Int) -(declare-primed-var tmp Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var sn_0 Int) -(declare-primed-var sn_1 Int) -(declare-primed-var sn_2 Int) -(declare-primed-var sn_3 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((conf_0 Int) (sn Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((conf_0 Int) (sn Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= sn sn_1) - (= x x_1) - (= conf_0_0 3) - (= sn_1 0) - (= x_1 0) - ) -) - + (and (= conf_0 conf_0_0) (= sn sn_1) (= x x_1) (= conf_0_0 3) (= sn_1 0) (= x_1 0))) (define-fun trans-f ((conf_0 Int) (sn Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (conf_0! Int) (sn! Int) (x! Int) (tmp! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (sn_0! Int) (sn_1! Int) (sn_2! Int) (sn_3! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= sn_2 sn) - (= x_2 x) - (= conf_0_1 conf_0!) - (= sn_2 sn!) - (= x_2 x!) - (= conf_0 conf_0!) - (= sn sn!) - (= x x!) - (= tmp tmp!) - ) - (and - (= conf_0_1 conf_0) - (= sn_2 sn) - (= x_2 x) - (= x_3 (+ x_2 1)) - (= conf_0_2 conf_0_1) - (= sn_3 (+ sn_2 1)) - (= conf_0_3 352) - (= conf_0_3 conf_0!) - (= sn_3 sn!) - (= x_3 x!) - (= tmp tmp!) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= sn_2 sn) (= x_2 x) (= conf_0_1 conf_0!) (= sn_2 sn!) (= x_2 x!) (= conf_0 conf_0!) (= sn sn!) (= x x!) (= tmp tmp!)) (and (= conf_0_1 conf_0) (= sn_2 sn) (= x_2 x) (= x_3 (+ x_2 1)) (= conf_0_2 conf_0_1) (= sn_3 (+ sn_2 1)) (= conf_0_3 352) (= conf_0_3 conf_0!) (= sn_3 sn!) (= x_3 x!) (= tmp tmp!)))) (define-fun post-f ((conf_0 Int) (sn Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= sn sn_2) - (= x x_2) - ) - ) - (not - (and - (not (= sn_2 x_2)) - (not (= sn_2 -1)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= sn sn_2) (= x x_2))) (not (and (not (= sn_2 x_2)) (not (= sn_2 (- 1))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/114_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/114_conf5.sl index 3f090fd..efb5b58 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/114_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/114_conf5.sl @@ -1,118 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var sn Int) -(declare-primed-var x Int) -(declare-primed-var tmp Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_1_1 Int) -(declare-primed-var conf_1_2 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_2_1 Int) -(declare-primed-var conf_2_2 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var sn_0 Int) -(declare-primed-var sn_1 Int) -(declare-primed-var sn_2 Int) -(declare-primed-var sn_3 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (sn Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (sn Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= sn sn_1) - (= x x_1) - (= conf_0_0 4) - (= conf_1_0 5) - (= conf_2_0 8) - (= conf_3_0 1) - (= conf_4_0 3) - (= sn_1 0) - (= x_1 0) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= sn sn_1) (= x x_1) (= conf_0_0 4) (= conf_1_0 5) (= conf_2_0 8) (= conf_3_0 1) (= conf_4_0 3) (= sn_1 0) (= x_1 0))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (sn Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (sn! Int) (x! Int) (tmp! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_1_1! Int) (conf_1_2! Int) (conf_2_0! Int) (conf_2_1! Int) (conf_2_2! Int) (conf_3_0! Int) (conf_4_0! Int) (sn_0! Int) (sn_1! Int) (sn_2! Int) (sn_3! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (= sn_2 sn) - (= x_2 x) - (= conf_1_1 conf_1!) - (= conf_2_1 conf_2!) - (= sn_2 sn!) - (= x_2 x!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= sn sn!) - (= x x!) - (= tmp tmp!) - ) - (and - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (= sn_2 sn) - (= x_2 x) - (= x_3 (+ x_2 1)) - (= conf_1_2 352) - (= sn_3 (+ sn_2 1)) - (= conf_2_2 (- conf_1_2 conf_2_1)) - (= conf_1_2 conf_1!) - (= conf_2_2 conf_2!) - (= sn_3 sn!) - (= x_3 x!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= conf_1_1 conf_1) (= conf_2_1 conf_2) (= sn_2 sn) (= x_2 x) (= conf_1_1 conf_1!) (= conf_2_1 conf_2!) (= sn_2 sn!) (= x_2 x!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= sn sn!) (= x x!) (= tmp tmp!)) (and (= conf_1_1 conf_1) (= conf_2_1 conf_2) (= sn_2 sn) (= x_2 x) (= x_3 (+ x_2 1)) (= conf_1_2 352) (= sn_3 (+ sn_2 1)) (= conf_2_2 (- conf_1_2 conf_2_1)) (= conf_1_2 conf_1!) (= conf_2_2 conf_2!) (= sn_3 sn!) (= x_3 x!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= tmp tmp!)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (sn Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_1) - (= conf_2 conf_2_1) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= sn sn_2) - (= x x_2) - ) - ) - (not - (and - (not (= sn_2 x_2)) - (not (= sn_2 -1)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_0) (= conf_1 conf_1_1) (= conf_2 conf_2_1) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= sn sn_2) (= x x_2))) (not (and (not (= sn_2 x_2)) (not (= sn_2 (- 1))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/115.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/115.c.sl index d6e8467..47f3c47 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/115.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/115.c.sl @@ -1,68 +1,15 @@ (set-logic LIA) -(declare-primed-var sn Int) -(declare-primed-var x Int) -(declare-primed-var tmp Int) - -(declare-primed-var sn_0 Int) -(declare-primed-var sn_1 Int) -(declare-primed-var sn_2 Int) -(declare-primed-var sn_3 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((sn Int) (x Int) (tmp Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((sn Int) (x Int) (tmp Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= sn sn_1) - (= x x_1) - (= sn_1 0) - (= x_1 0) - ) -) - + (and (= sn sn_1) (= x x_1) (= sn_1 0) (= x_1 0))) (define-fun trans-f ((sn Int) (x Int) (tmp Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (sn! Int) (x! Int) (tmp! Int) (sn_0! Int) (sn_1! Int) (sn_2! Int) (sn_3! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= sn_2 sn) - (= x_2 x) - (= sn_2 sn!) - (= x_2 x!) - (= sn sn!) - (= x x!) - (= tmp tmp!) - ) - (and - (= sn_2 sn) - (= x_2 x) - (= x_3 (+ x_2 1)) - (= sn_3 (+ sn_2 1)) - (= sn_3 sn!) - (= x_3 x!) - (= tmp tmp!) - ) - ) -) - + (or (and (= sn_2 sn) (= x_2 x) (= sn_2 sn!) (= x_2 x!) (= sn sn!) (= x x!) (= tmp tmp!)) (and (= sn_2 sn) (= x_2 x) (= x_3 (+ x_2 1)) (= sn_3 (+ sn_2 1)) (= sn_3 sn!) (= x_3 x!) (= tmp tmp!)))) (define-fun post-f ((sn Int) (x Int) (tmp Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= sn sn_2) - (= x x_2) - ) - ) - (not - (and - (not (= sn_2 -1)) - (not (= sn_2 x_2)) - ) - ) - ) -) + (or (not (and (= sn sn_2) (= x x_2))) (not (and (not (= sn_2 (- 1))) (not (= sn_2 x_2)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/115_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/115_conf1.sl index abb354e..d52c82d 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/115_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/115_conf1.sl @@ -1,83 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var sn Int) -(declare-primed-var x Int) -(declare-primed-var tmp Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var sn_0 Int) -(declare-primed-var sn_1 Int) -(declare-primed-var sn_2 Int) -(declare-primed-var sn_3 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((conf_0 Int) (sn Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((conf_0 Int) (sn Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= sn sn_1) - (= x x_1) - (= conf_0_0 7) - (= sn_1 0) - (= x_1 0) - ) -) - + (and (= conf_0 conf_0_0) (= sn sn_1) (= x x_1) (= conf_0_0 7) (= sn_1 0) (= x_1 0))) (define-fun trans-f ((conf_0 Int) (sn Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (conf_0! Int) (sn! Int) (x! Int) (tmp! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (sn_0! Int) (sn_1! Int) (sn_2! Int) (sn_3! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= sn_2 sn) - (= x_2 x) - (= conf_0_1 conf_0!) - (= sn_2 sn!) - (= x_2 x!) - (= conf_0 conf_0!) - (= sn sn!) - (= x x!) - (= tmp tmp!) - ) - (and - (= conf_0_1 conf_0) - (= sn_2 sn) - (= x_2 x) - (= x_3 (+ x_2 1)) - (= conf_0_2 conf_0_1) - (= sn_3 (+ sn_2 1)) - (= conf_0_3 (+ conf_0_2 conf_0_2)) - (= conf_0_3 conf_0!) - (= sn_3 sn!) - (= x_3 x!) - (= tmp tmp!) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= sn_2 sn) (= x_2 x) (= conf_0_1 conf_0!) (= sn_2 sn!) (= x_2 x!) (= conf_0 conf_0!) (= sn sn!) (= x x!) (= tmp tmp!)) (and (= conf_0_1 conf_0) (= sn_2 sn) (= x_2 x) (= x_3 (+ x_2 1)) (= conf_0_2 conf_0_1) (= sn_3 (+ sn_2 1)) (= conf_0_3 (+ conf_0_2 conf_0_2)) (= conf_0_3 conf_0!) (= sn_3 sn!) (= x_3 x!) (= tmp tmp!)))) (define-fun post-f ((conf_0 Int) (sn Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= sn sn_2) - (= x x_2) - ) - ) - (not - (and - (not (= sn_2 -1)) - (not (= sn_2 x_2)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= sn sn_2) (= x x_2))) (not (and (not (= sn_2 (- 1))) (not (= sn_2 x_2)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/115_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/115_conf5.sl index 970b662..b88b1d6 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/115_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/115_conf5.sl @@ -1,118 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var sn Int) -(declare-primed-var x Int) -(declare-primed-var tmp Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_2_1 Int) -(declare-primed-var conf_2_2 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_3_1 Int) -(declare-primed-var conf_3_2 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var sn_0 Int) -(declare-primed-var sn_1 Int) -(declare-primed-var sn_2 Int) -(declare-primed-var sn_3 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (sn Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (sn Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= sn sn_1) - (= x x_1) - (= conf_0_0 8) - (= conf_1_0 3) - (= conf_2_0 4) - (= conf_3_0 4) - (= conf_4_0 7) - (= sn_1 0) - (= x_1 0) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= sn sn_1) (= x x_1) (= conf_0_0 8) (= conf_1_0 3) (= conf_2_0 4) (= conf_3_0 4) (= conf_4_0 7) (= sn_1 0) (= x_1 0))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (sn Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (sn! Int) (x! Int) (tmp! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_2_1! Int) (conf_2_2! Int) (conf_3_0! Int) (conf_3_1! Int) (conf_3_2! Int) (conf_4_0! Int) (sn_0! Int) (sn_1! Int) (sn_2! Int) (sn_3! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= conf_2_1 conf_2) - (= conf_3_1 conf_3) - (= sn_2 sn) - (= x_2 x) - (= conf_2_1 conf_2!) - (= conf_3_1 conf_3!) - (= sn_2 sn!) - (= x_2 x!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= sn sn!) - (= x x!) - (= tmp tmp!) - ) - (and - (= conf_2_1 conf_2) - (= conf_3_1 conf_3) - (= sn_2 sn) - (= x_2 x) - (= x_3 (+ x_2 1)) - (= conf_3_2 (+ conf_3_1 conf_0_0)) - (= sn_3 (+ sn_2 1)) - (= conf_2_2 858) - (= conf_2_2 conf_2!) - (= conf_3_2 conf_3!) - (= sn_3 sn!) - (= x_3 x!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= conf_2_1 conf_2) (= conf_3_1 conf_3) (= sn_2 sn) (= x_2 x) (= conf_2_1 conf_2!) (= conf_3_1 conf_3!) (= sn_2 sn!) (= x_2 x!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= sn sn!) (= x x!) (= tmp tmp!)) (and (= conf_2_1 conf_2) (= conf_3_1 conf_3) (= sn_2 sn) (= x_2 x) (= x_3 (+ x_2 1)) (= conf_3_2 (+ conf_3_1 conf_0_0)) (= sn_3 (+ sn_2 1)) (= conf_2_2 858) (= conf_2_2 conf_2!) (= conf_3_2 conf_3!) (= sn_3 sn!) (= x_3 x!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= tmp tmp!)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (sn Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_1) - (= conf_3 conf_3_1) - (= conf_4 conf_4_0) - (= sn sn_2) - (= x x_2) - ) - ) - (not - (and - (not (= sn_2 -1)) - (not (= sn_2 x_2)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_1) (= conf_3 conf_3_1) (= conf_4 conf_4_0) (= sn sn_2) (= x x_2))) (not (and (not (= sn_2 (- 1))) (not (= sn_2 x_2)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/118.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/118.c.sl index 35d8a46..e96940d 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/118.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/118.c.sl @@ -1,73 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var size Int) -(declare-primed-var sn Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var size_0 Int) -(declare-primed-var sn_0 Int) -(declare-primed-var sn_1 Int) -(declare-primed-var sn_2 Int) -(declare-primed-var sn_3 Int) - (synth-inv inv-f ((i Int) (size Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (size_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int))) (define-fun pre-f ((i Int) (size Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (size_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int)) Bool - (and - (= i i_1) - (= sn sn_1) - (= sn_1 0) - (= i_1 1) - ) -) - + (and (= i i_1) (= sn sn_1) (= sn_1 0) (= i_1 1))) (define-fun trans-f ((i Int) (size Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (size_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (i! Int) (size! Int) (sn! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (size_0! Int) (sn_0! Int) (sn_1! Int) (sn_2! Int) (sn_3! Int)) Bool - (or - (and - (= i_2 i) - (= sn_2 sn) - (= i_2 i!) - (= sn_2 sn!) - (= size size_0) - (= size! size_0) - (= sn sn!) - ) - (and - (= i_2 i) - (= sn_2 sn) - (<= i_2 size_0) - (= i_3 (+ i_2 1)) - (= sn_3 (+ sn_2 1)) - (= i_3 i!) - (= sn_3 sn!) - (= size size_0) - (= size! size_0) - ) - ) -) - + (or (and (= i_2 i) (= sn_2 sn) (= i_2 i!) (= sn_2 sn!) (= size size_0) (= size! size_0) (= sn sn!)) (and (= i_2 i) (= sn_2 sn) (<= i_2 size_0) (= i_3 (+ i_2 1)) (= sn_3 (+ sn_2 1)) (= i_3 i!) (= sn_3 sn!) (= size size_0) (= size! size_0)))) (define-fun post-f ((i Int) (size Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (size_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int)) Bool - (or - (not - (and - (= i i_2) - (= size size_0) - (= sn sn_2) - ) - ) - (not - (and - (not (<= i_2 size_0)) - (not (= sn_2 size_0)) - (not (= sn_2 0)) - ) - ) - ) -) + (or (not (and (= i i_2) (= size size_0) (= sn sn_2))) (not (and (not (<= i_2 size_0)) (not (= sn_2 size_0)) (not (= sn_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/118_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/118_conf1.sl index 670558d..f38b8d0 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/118_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/118_conf1.sl @@ -1,88 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var conf_0 Int) -(declare-primed-var size Int) -(declare-primed-var sn Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var size_0 Int) -(declare-primed-var sn_0 Int) -(declare-primed-var sn_1 Int) -(declare-primed-var sn_2 Int) -(declare-primed-var sn_3 Int) - (synth-inv inv-f ((i Int) (conf_0 Int) (size Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (size_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int))) (define-fun pre-f ((i Int) (conf_0 Int) (size Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (size_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int)) Bool - (and - (= i i_1) - (= conf_0 conf_0_0) - (= sn sn_1) - (= conf_0_0 9) - (= sn_1 0) - (= i_1 1) - ) -) - + (and (= i i_1) (= conf_0 conf_0_0) (= sn sn_1) (= conf_0_0 9) (= sn_1 0) (= i_1 1))) (define-fun trans-f ((i Int) (conf_0 Int) (size Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (size_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (i! Int) (conf_0! Int) (size! Int) (sn! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (size_0! Int) (sn_0! Int) (sn_1! Int) (sn_2! Int) (sn_3! Int)) Bool - (or - (and - (= i_2 i) - (= conf_0_1 conf_0) - (= sn_2 sn) - (= i_2 i!) - (= conf_0_1 conf_0!) - (= sn_2 sn!) - (= size size_0) - (= size! size_0) - (= conf_0 conf_0!) - (= sn sn!) - ) - (and - (= i_2 i) - (= conf_0_1 conf_0) - (= sn_2 sn) - (<= i_2 size_0) - (= i_3 (+ i_2 1)) - (= conf_0_2 (+ 725 conf_0_1)) - (= sn_3 (+ sn_2 1)) - (= conf_0_3 709) - (= i_3 i!) - (= conf_0_3 conf_0!) - (= sn_3 sn!) - (= size size_0) - (= size! size_0) - ) - ) -) - + (or (and (= i_2 i) (= conf_0_1 conf_0) (= sn_2 sn) (= i_2 i!) (= conf_0_1 conf_0!) (= sn_2 sn!) (= size size_0) (= size! size_0) (= conf_0 conf_0!) (= sn sn!)) (and (= i_2 i) (= conf_0_1 conf_0) (= sn_2 sn) (<= i_2 size_0) (= i_3 (+ i_2 1)) (= conf_0_2 (+ 725 conf_0_1)) (= sn_3 (+ sn_2 1)) (= conf_0_3 709) (= i_3 i!) (= conf_0_3 conf_0!) (= sn_3 sn!) (= size size_0) (= size! size_0)))) (define-fun post-f ((i Int) (conf_0 Int) (size Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (size_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int)) Bool - (or - (not - (and - (= i i_2) - (= conf_0 conf_0_1) - (= size size_0) - (= sn sn_2) - ) - ) - (not - (and - (not (<= i_2 size_0)) - (not (= sn_2 size_0)) - (not (= sn_2 0)) - ) - ) - ) -) + (or (not (and (= i i_2) (= conf_0 conf_0_1) (= size size_0) (= sn sn_2))) (not (and (not (<= i_2 size_0)) (not (= sn_2 size_0)) (not (= sn_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/118_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/118_conf5.sl index 65b60dc..56a9aba 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/118_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/118_conf5.sl @@ -1,123 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var size Int) -(declare-primed-var sn Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_2_1 Int) -(declare-primed-var conf_2_2 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var conf_4_1 Int) -(declare-primed-var conf_4_2 Int) -(declare-primed-var size_0 Int) -(declare-primed-var sn_0 Int) -(declare-primed-var sn_1 Int) -(declare-primed-var sn_2 Int) -(declare-primed-var sn_3 Int) - (synth-inv inv-f ((i Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (size Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (size_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int))) (define-fun pre-f ((i Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (size Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (size_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int)) Bool - (and - (= i i_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= sn sn_1) - (= conf_0_0 5) - (= conf_1_0 2) - (= conf_2_0 5) - (= conf_3_0 8) - (= conf_4_0 9) - (= sn_1 0) - (= i_1 1) - ) -) - + (and (= i i_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= sn sn_1) (= conf_0_0 5) (= conf_1_0 2) (= conf_2_0 5) (= conf_3_0 8) (= conf_4_0 9) (= sn_1 0) (= i_1 1))) (define-fun trans-f ((i Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (size Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (size_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (i! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (size! Int) (sn! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_2_1! Int) (conf_2_2! Int) (conf_3_0! Int) (conf_4_0! Int) (conf_4_1! Int) (conf_4_2! Int) (size_0! Int) (sn_0! Int) (sn_1! Int) (sn_2! Int) (sn_3! Int)) Bool - (or - (and - (= i_2 i) - (= conf_2_1 conf_2) - (= conf_4_1 conf_4) - (= sn_2 sn) - (= i_2 i!) - (= conf_2_1 conf_2!) - (= conf_4_1 conf_4!) - (= sn_2 sn!) - (= size size_0) - (= size! size_0) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= sn sn!) - ) - (and - (= i_2 i) - (= conf_2_1 conf_2) - (= conf_4_1 conf_4) - (= sn_2 sn) - (<= i_2 size_0) - (= i_3 (+ i_2 1)) - (= conf_2_2 (+ 617 709)) - (= sn_3 (+ sn_2 1)) - (= conf_4_2 (- 168 conf_2_2)) - (= i_3 i!) - (= conf_2_2 conf_2!) - (= conf_4_2 conf_4!) - (= sn_3 sn!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= size size_0) - (= size! size_0) - ) - ) -) - + (or (and (= i_2 i) (= conf_2_1 conf_2) (= conf_4_1 conf_4) (= sn_2 sn) (= i_2 i!) (= conf_2_1 conf_2!) (= conf_4_1 conf_4!) (= sn_2 sn!) (= size size_0) (= size! size_0) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= sn sn!)) (and (= i_2 i) (= conf_2_1 conf_2) (= conf_4_1 conf_4) (= sn_2 sn) (<= i_2 size_0) (= i_3 (+ i_2 1)) (= conf_2_2 (+ 617 709)) (= sn_3 (+ sn_2 1)) (= conf_4_2 (- 168 conf_2_2)) (= i_3 i!) (= conf_2_2 conf_2!) (= conf_4_2 conf_4!) (= sn_3 sn!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= size size_0) (= size! size_0)))) (define-fun post-f ((i Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (size Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (size_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int)) Bool - (or - (not - (and - (= i i_2) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_1) - (= conf_3 conf_3_0) - (= conf_4 conf_4_1) - (= size size_0) - (= sn sn_2) - ) - ) - (not - (and - (not (<= i_2 size_0)) - (not (= sn_2 size_0)) - (not (= sn_2 0)) - ) - ) - ) -) + (or (not (and (= i i_2) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_1) (= conf_3 conf_3_0) (= conf_4 conf_4_1) (= size size_0) (= sn sn_2))) (not (and (not (<= i_2 size_0)) (not (= sn_2 size_0)) (not (= sn_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/119.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/119.c.sl index 0ad5843..14ba411 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/119.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/119.c.sl @@ -1,73 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var size Int) -(declare-primed-var sn Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var size_0 Int) -(declare-primed-var sn_0 Int) -(declare-primed-var sn_1 Int) -(declare-primed-var sn_2 Int) -(declare-primed-var sn_3 Int) - (synth-inv inv-f ((i Int) (size Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (size_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int))) (define-fun pre-f ((i Int) (size Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (size_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int)) Bool - (and - (= i i_1) - (= sn sn_1) - (= sn_1 0) - (= i_1 1) - ) -) - + (and (= i i_1) (= sn sn_1) (= sn_1 0) (= i_1 1))) (define-fun trans-f ((i Int) (size Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (size_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (i! Int) (size! Int) (sn! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (size_0! Int) (sn_0! Int) (sn_1! Int) (sn_2! Int) (sn_3! Int)) Bool - (or - (and - (= i_2 i) - (= sn_2 sn) - (= i_2 i!) - (= sn_2 sn!) - (= size size_0) - (= size! size_0) - (= sn sn!) - ) - (and - (= i_2 i) - (= sn_2 sn) - (<= i_2 size_0) - (= i_3 (+ i_2 1)) - (= sn_3 (+ sn_2 1)) - (= i_3 i!) - (= sn_3 sn!) - (= size size_0) - (= size! size_0) - ) - ) -) - + (or (and (= i_2 i) (= sn_2 sn) (= i_2 i!) (= sn_2 sn!) (= size size_0) (= size! size_0) (= sn sn!)) (and (= i_2 i) (= sn_2 sn) (<= i_2 size_0) (= i_3 (+ i_2 1)) (= sn_3 (+ sn_2 1)) (= i_3 i!) (= sn_3 sn!) (= size size_0) (= size! size_0)))) (define-fun post-f ((i Int) (size Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (size_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int)) Bool - (or - (not - (and - (= i i_2) - (= size size_0) - (= sn sn_2) - ) - ) - (not - (and - (not (<= i_2 size_0)) - (not (= sn_2 0)) - (not (= sn_2 size_0)) - ) - ) - ) -) + (or (not (and (= i i_2) (= size size_0) (= sn sn_2))) (not (and (not (<= i_2 size_0)) (not (= sn_2 0)) (not (= sn_2 size_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/119_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/119_conf1.sl index 86b51d2..cf7d30e 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/119_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/119_conf1.sl @@ -1,88 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var conf_0 Int) -(declare-primed-var size Int) -(declare-primed-var sn Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var size_0 Int) -(declare-primed-var sn_0 Int) -(declare-primed-var sn_1 Int) -(declare-primed-var sn_2 Int) -(declare-primed-var sn_3 Int) - (synth-inv inv-f ((i Int) (conf_0 Int) (size Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (size_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int))) (define-fun pre-f ((i Int) (conf_0 Int) (size Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (size_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int)) Bool - (and - (= i i_1) - (= conf_0 conf_0_0) - (= sn sn_1) - (= conf_0_0 9) - (= sn_1 0) - (= i_1 1) - ) -) - + (and (= i i_1) (= conf_0 conf_0_0) (= sn sn_1) (= conf_0_0 9) (= sn_1 0) (= i_1 1))) (define-fun trans-f ((i Int) (conf_0 Int) (size Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (size_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (i! Int) (conf_0! Int) (size! Int) (sn! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (size_0! Int) (sn_0! Int) (sn_1! Int) (sn_2! Int) (sn_3! Int)) Bool - (or - (and - (= i_2 i) - (= conf_0_1 conf_0) - (= sn_2 sn) - (= i_2 i!) - (= conf_0_1 conf_0!) - (= sn_2 sn!) - (= size size_0) - (= size! size_0) - (= conf_0 conf_0!) - (= sn sn!) - ) - (and - (= i_2 i) - (= conf_0_1 conf_0) - (= sn_2 sn) - (<= i_2 size_0) - (= i_3 (+ i_2 1)) - (= conf_0_2 (+ 725 conf_0_1)) - (= sn_3 (+ sn_2 1)) - (= conf_0_3 709) - (= i_3 i!) - (= conf_0_3 conf_0!) - (= sn_3 sn!) - (= size size_0) - (= size! size_0) - ) - ) -) - + (or (and (= i_2 i) (= conf_0_1 conf_0) (= sn_2 sn) (= i_2 i!) (= conf_0_1 conf_0!) (= sn_2 sn!) (= size size_0) (= size! size_0) (= conf_0 conf_0!) (= sn sn!)) (and (= i_2 i) (= conf_0_1 conf_0) (= sn_2 sn) (<= i_2 size_0) (= i_3 (+ i_2 1)) (= conf_0_2 (+ 725 conf_0_1)) (= sn_3 (+ sn_2 1)) (= conf_0_3 709) (= i_3 i!) (= conf_0_3 conf_0!) (= sn_3 sn!) (= size size_0) (= size! size_0)))) (define-fun post-f ((i Int) (conf_0 Int) (size Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (size_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int)) Bool - (or - (not - (and - (= i i_2) - (= conf_0 conf_0_1) - (= size size_0) - (= sn sn_2) - ) - ) - (not - (and - (not (<= i_2 size_0)) - (not (= sn_2 0)) - (not (= sn_2 size_0)) - ) - ) - ) -) + (or (not (and (= i i_2) (= conf_0 conf_0_1) (= size size_0) (= sn sn_2))) (not (and (not (<= i_2 size_0)) (not (= sn_2 0)) (not (= sn_2 size_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/119_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/119_conf5.sl index 258440d..6c639cb 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/119_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/119_conf5.sl @@ -1,123 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var size Int) -(declare-primed-var sn Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_2_1 Int) -(declare-primed-var conf_2_2 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var conf_4_1 Int) -(declare-primed-var conf_4_2 Int) -(declare-primed-var size_0 Int) -(declare-primed-var sn_0 Int) -(declare-primed-var sn_1 Int) -(declare-primed-var sn_2 Int) -(declare-primed-var sn_3 Int) - (synth-inv inv-f ((i Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (size Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (size_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int))) (define-fun pre-f ((i Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (size Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (size_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int)) Bool - (and - (= i i_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= sn sn_1) - (= conf_0_0 5) - (= conf_1_0 2) - (= conf_2_0 5) - (= conf_3_0 8) - (= conf_4_0 9) - (= sn_1 0) - (= i_1 1) - ) -) - + (and (= i i_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= sn sn_1) (= conf_0_0 5) (= conf_1_0 2) (= conf_2_0 5) (= conf_3_0 8) (= conf_4_0 9) (= sn_1 0) (= i_1 1))) (define-fun trans-f ((i Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (size Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (size_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (i! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (size! Int) (sn! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_2_1! Int) (conf_2_2! Int) (conf_3_0! Int) (conf_4_0! Int) (conf_4_1! Int) (conf_4_2! Int) (size_0! Int) (sn_0! Int) (sn_1! Int) (sn_2! Int) (sn_3! Int)) Bool - (or - (and - (= i_2 i) - (= conf_2_1 conf_2) - (= conf_4_1 conf_4) - (= sn_2 sn) - (= i_2 i!) - (= conf_2_1 conf_2!) - (= conf_4_1 conf_4!) - (= sn_2 sn!) - (= size size_0) - (= size! size_0) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= sn sn!) - ) - (and - (= i_2 i) - (= conf_2_1 conf_2) - (= conf_4_1 conf_4) - (= sn_2 sn) - (<= i_2 size_0) - (= i_3 (+ i_2 1)) - (= conf_2_2 (+ 617 709)) - (= sn_3 (+ sn_2 1)) - (= conf_4_2 (- 168 conf_2_2)) - (= i_3 i!) - (= conf_2_2 conf_2!) - (= conf_4_2 conf_4!) - (= sn_3 sn!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= size size_0) - (= size! size_0) - ) - ) -) - + (or (and (= i_2 i) (= conf_2_1 conf_2) (= conf_4_1 conf_4) (= sn_2 sn) (= i_2 i!) (= conf_2_1 conf_2!) (= conf_4_1 conf_4!) (= sn_2 sn!) (= size size_0) (= size! size_0) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= sn sn!)) (and (= i_2 i) (= conf_2_1 conf_2) (= conf_4_1 conf_4) (= sn_2 sn) (<= i_2 size_0) (= i_3 (+ i_2 1)) (= conf_2_2 (+ 617 709)) (= sn_3 (+ sn_2 1)) (= conf_4_2 (- 168 conf_2_2)) (= i_3 i!) (= conf_2_2 conf_2!) (= conf_4_2 conf_4!) (= sn_3 sn!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= size size_0) (= size! size_0)))) (define-fun post-f ((i Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (size Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (size_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int)) Bool - (or - (not - (and - (= i i_2) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_1) - (= conf_3 conf_3_0) - (= conf_4 conf_4_1) - (= size size_0) - (= sn sn_2) - ) - ) - (not - (and - (not (<= i_2 size_0)) - (not (= sn_2 0)) - (not (= sn_2 size_0)) - ) - ) - ) -) + (or (not (and (= i i_2) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_1) (= conf_3 conf_3_0) (= conf_4 conf_4_1) (= size size_0) (= sn sn_2))) (not (and (not (<= i_2 size_0)) (not (= sn_2 0)) (not (= sn_2 size_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/11_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/11_conf1.sl index deeb233..84d2ceb 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/11_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/11_conf1.sl @@ -1,83 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var tmp Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((conf_0 Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((conf_0 Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= conf_0 conf_0_0) - (= x x_0) - (= y y_0) - (= conf_0_0 3) - (>= x_0 0) - (<= x_0 10) - (<= y_0 10) - (>= y_0 0) - ) -) - + (and (= conf_0 conf_0_0) (= x x_0) (= y y_0) (= conf_0_0 3) (>= x_0 0) (<= x_0 10) (<= y_0 10) (>= y_0 0))) (define-fun trans-f ((conf_0 Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int) (conf_0! Int) (x! Int) (y! Int) (tmp! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (x_0! Int) (x_1! Int) (x_2! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= x_1 x) - (= y_1 y) - (= conf_0_1 conf_0!) - (= x_1 x!) - (= y_1 y!) - (= conf_0 conf_0!) - (= x x!) - (= y y!) - (= tmp tmp!) - ) - (and - (= conf_0_1 conf_0) - (= x_1 x) - (= y_1 y) - (= x_2 (+ x_1 10)) - (= conf_0_2 (+ conf_0_1 350)) - (= y_2 (+ y_1 10)) - (= conf_0_3 (- 398 257)) - (= conf_0_3 conf_0!) - (= x_2 x!) - (= y_2 y!) - (= tmp tmp!) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= x_1 x) (= y_1 y) (= conf_0_1 conf_0!) (= x_1 x!) (= y_1 y!) (= conf_0 conf_0!) (= x x!) (= y y!) (= tmp tmp!)) (and (= conf_0_1 conf_0) (= x_1 x) (= y_1 y) (= x_2 (+ x_1 10)) (= conf_0_2 (+ conf_0_1 350)) (= y_2 (+ y_1 10)) (= conf_0_3 (- 398 257)) (= conf_0_3 conf_0!) (= x_2 x!) (= y_2 y!) (= tmp tmp!)))) (define-fun post-f ((conf_0 Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= x x_1) - (= y y_1) - ) - ) - (not - (and - (= x_1 20) - (not (not (= y_1 0))) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= x x_1) (= y y_1))) (not (and (= x_1 20) (not (not (= y_1 0))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/11_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/11_conf5.sl index e03402e..f1f7738 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/11_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/11_conf5.sl @@ -1,118 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var tmp Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_2_1 Int) -(declare-primed-var conf_2_2 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_3_1 Int) -(declare-primed-var conf_3_2 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_0) - (= y y_0) - (= conf_0_0 3) - (= conf_1_0 3) - (= conf_2_0 3) - (= conf_3_0 9) - (= conf_4_0 3) - (>= x_0 0) - (<= x_0 10) - (<= y_0 10) - (>= y_0 0) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_0) (= y y_0) (= conf_0_0 3) (= conf_1_0 3) (= conf_2_0 3) (= conf_3_0 9) (= conf_4_0 3) (>= x_0 0) (<= x_0 10) (<= y_0 10) (>= y_0 0))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (x! Int) (y! Int) (tmp! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_2_1! Int) (conf_2_2! Int) (conf_3_0! Int) (conf_3_1! Int) (conf_3_2! Int) (conf_4_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= conf_2_1 conf_2) - (= conf_3_1 conf_3) - (= x_1 x) - (= y_1 y) - (= conf_2_1 conf_2!) - (= conf_3_1 conf_3!) - (= x_1 x!) - (= y_1 y!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= x x!) - (= y y!) - (= tmp tmp!) - ) - (and - (= conf_2_1 conf_2) - (= conf_3_1 conf_3) - (= x_1 x) - (= y_1 y) - (= x_2 (+ x_1 10)) - (= conf_3_2 588) - (= y_2 (+ y_1 10)) - (= conf_2_2 353) - (= conf_2_2 conf_2!) - (= conf_3_2 conf_3!) - (= x_2 x!) - (= y_2 y!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= conf_2_1 conf_2) (= conf_3_1 conf_3) (= x_1 x) (= y_1 y) (= conf_2_1 conf_2!) (= conf_3_1 conf_3!) (= x_1 x!) (= y_1 y!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= x x!) (= y y!) (= tmp tmp!)) (and (= conf_2_1 conf_2) (= conf_3_1 conf_3) (= x_1 x) (= y_1 y) (= x_2 (+ x_1 10)) (= conf_3_2 588) (= y_2 (+ y_1 10)) (= conf_2_2 353) (= conf_2_2 conf_2!) (= conf_3_2 conf_3!) (= x_2 x!) (= y_2 y!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= tmp tmp!)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_1) - (= conf_3 conf_3_1) - (= conf_4 conf_4_0) - (= x x_1) - (= y y_1) - ) - ) - (not - (and - (= x_1 20) - (not (not (= y_1 0))) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_1) (= conf_3 conf_3_1) (= conf_4 conf_4_0) (= x x_1) (= y y_1))) (not (and (= x_1 20) (not (not (= y_1 0))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/12.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/12.c.sl index 012db75..e7f4c94 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/12.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/12.c.sl @@ -1,68 +1,15 @@ (set-logic LIA) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var tmp Int) - -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((x Int) (y Int) (tmp Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((x Int) (y Int) (tmp Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= x x_0) - (= y y_0) - (>= x_0 0) - (<= x_0 10) - (<= y_0 10) - (>= y_0 0) - ) -) - + (and (= x x_0) (= y y_0) (>= x_0 0) (<= x_0 10) (<= y_0 10) (>= y_0 0))) (define-fun trans-f ((x Int) (y Int) (tmp Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int) (x! Int) (y! Int) (tmp! Int) (x_0! Int) (x_1! Int) (x_2! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= x_1 x) - (= y_1 y) - (= x_1 x!) - (= y_1 y!) - (= x x!) - (= y y!) - (= tmp tmp!) - ) - (and - (= x_1 x) - (= y_1 y) - (= x_2 (+ x_1 10)) - (= y_2 (+ y_1 10)) - (= x_2 x!) - (= y_2 y!) - (= tmp tmp!) - ) - ) -) - + (or (and (= x_1 x) (= y_1 y) (= x_1 x!) (= y_1 y!) (= x x!) (= y y!) (= tmp tmp!)) (and (= x_1 x) (= y_1 y) (= x_2 (+ x_1 10)) (= y_2 (+ y_1 10)) (= x_2 x!) (= y_2 y!) (= tmp tmp!)))) (define-fun post-f ((x Int) (y Int) (tmp Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= x x_1) - (= y y_1) - ) - ) - (not - (and - (= y_1 0) - (not (not (= x_1 20))) - ) - ) - ) -) + (or (not (and (= x x_1) (= y y_1))) (not (and (= y_1 0) (not (not (= x_1 20))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/120.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/120.c.sl index 9458409..0d478ba 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/120.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/120.c.sl @@ -1,66 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var sn Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var sn_0 Int) -(declare-primed-var sn_1 Int) -(declare-primed-var sn_2 Int) -(declare-primed-var sn_3 Int) - (synth-inv inv-f ((i Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int))) (define-fun pre-f ((i Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int)) Bool - (and - (= i i_1) - (= sn sn_1) - (= sn_1 0) - (= i_1 1) - ) -) - + (and (= i i_1) (= sn sn_1) (= sn_1 0) (= i_1 1))) (define-fun trans-f ((i Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (i! Int) (sn! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (sn_0! Int) (sn_1! Int) (sn_2! Int) (sn_3! Int)) Bool - (or - (and - (= i_2 i) - (= sn_2 sn) - (= i_2 i!) - (= sn_2 sn!) - (= sn sn!) - ) - (and - (= i_2 i) - (= sn_2 sn) - (<= i_2 8) - (= i_3 (+ i_2 1)) - (= sn_3 (+ sn_2 1)) - (= i_3 i!) - (= sn_3 sn!) - ) - ) -) - + (or (and (= i_2 i) (= sn_2 sn) (= i_2 i!) (= sn_2 sn!) (= sn sn!)) (and (= i_2 i) (= sn_2 sn) (<= i_2 8) (= i_3 (+ i_2 1)) (= sn_3 (+ sn_2 1)) (= i_3 i!) (= sn_3 sn!)))) (define-fun post-f ((i Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int)) Bool - (or - (not - (and - (= i i_2) - (= sn sn_2) - ) - ) - (not - (and - (not (<= i_2 8)) - (not (= sn_2 8)) - (not (= sn_2 0)) - ) - ) - ) -) + (or (not (and (= i i_2) (= sn sn_2))) (not (and (not (<= i_2 8)) (not (= sn_2 8)) (not (= sn_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/120_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/120_conf1.sl index da4619d..f274af7 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/120_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/120_conf1.sl @@ -1,81 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var conf_0 Int) -(declare-primed-var sn Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var sn_0 Int) -(declare-primed-var sn_1 Int) -(declare-primed-var sn_2 Int) -(declare-primed-var sn_3 Int) - (synth-inv inv-f ((i Int) (conf_0 Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int))) (define-fun pre-f ((i Int) (conf_0 Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int)) Bool - (and - (= i i_1) - (= conf_0 conf_0_0) - (= sn sn_1) - (= conf_0_0 4) - (= sn_1 0) - (= i_1 1) - ) -) - + (and (= i i_1) (= conf_0 conf_0_0) (= sn sn_1) (= conf_0_0 4) (= sn_1 0) (= i_1 1))) (define-fun trans-f ((i Int) (conf_0 Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (i! Int) (conf_0! Int) (sn! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (sn_0! Int) (sn_1! Int) (sn_2! Int) (sn_3! Int)) Bool - (or - (and - (= i_2 i) - (= conf_0_1 conf_0) - (= sn_2 sn) - (= i_2 i!) - (= conf_0_1 conf_0!) - (= sn_2 sn!) - (= conf_0 conf_0!) - (= sn sn!) - ) - (and - (= i_2 i) - (= conf_0_1 conf_0) - (= sn_2 sn) - (<= i_2 8) - (= i_3 (+ i_2 1)) - (= conf_0_2 576) - (= sn_3 (+ sn_2 1)) - (= conf_0_3 (- conf_0_2 206)) - (= i_3 i!) - (= conf_0_3 conf_0!) - (= sn_3 sn!) - ) - ) -) - + (or (and (= i_2 i) (= conf_0_1 conf_0) (= sn_2 sn) (= i_2 i!) (= conf_0_1 conf_0!) (= sn_2 sn!) (= conf_0 conf_0!) (= sn sn!)) (and (= i_2 i) (= conf_0_1 conf_0) (= sn_2 sn) (<= i_2 8) (= i_3 (+ i_2 1)) (= conf_0_2 576) (= sn_3 (+ sn_2 1)) (= conf_0_3 (- conf_0_2 206)) (= i_3 i!) (= conf_0_3 conf_0!) (= sn_3 sn!)))) (define-fun post-f ((i Int) (conf_0 Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int)) Bool - (or - (not - (and - (= i i_2) - (= conf_0 conf_0_1) - (= sn sn_2) - ) - ) - (not - (and - (not (<= i_2 8)) - (not (= sn_2 8)) - (not (= sn_2 0)) - ) - ) - ) -) + (or (not (and (= i i_2) (= conf_0 conf_0_1) (= sn sn_2))) (not (and (not (<= i_2 8)) (not (= sn_2 8)) (not (= sn_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/120_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/120_conf5.sl index 8c66b44..aa75cbe 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/120_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/120_conf5.sl @@ -1,116 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var sn Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_2_1 Int) -(declare-primed-var conf_2_2 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var sn_0 Int) -(declare-primed-var sn_1 Int) -(declare-primed-var sn_2 Int) -(declare-primed-var sn_3 Int) - (synth-inv inv-f ((i Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int))) (define-fun pre-f ((i Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int)) Bool - (and - (= i i_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= sn sn_1) - (= conf_0_0 6) - (= conf_1_0 2) - (= conf_2_0 6) - (= conf_3_0 2) - (= conf_4_0 4) - (= sn_1 0) - (= i_1 1) - ) -) - + (and (= i i_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= sn sn_1) (= conf_0_0 6) (= conf_1_0 2) (= conf_2_0 6) (= conf_3_0 2) (= conf_4_0 4) (= sn_1 0) (= i_1 1))) (define-fun trans-f ((i Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (i! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (sn! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_2_1! Int) (conf_2_2! Int) (conf_3_0! Int) (conf_4_0! Int) (sn_0! Int) (sn_1! Int) (sn_2! Int) (sn_3! Int)) Bool - (or - (and - (= i_2 i) - (= conf_0_1 conf_0) - (= conf_2_1 conf_2) - (= sn_2 sn) - (= i_2 i!) - (= conf_0_1 conf_0!) - (= conf_2_1 conf_2!) - (= sn_2 sn!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= sn sn!) - ) - (and - (= i_2 i) - (= conf_0_1 conf_0) - (= conf_2_1 conf_2) - (= sn_2 sn) - (<= i_2 8) - (= i_3 (+ i_2 1)) - (= conf_0_2 (- conf_3_0 206)) - (= sn_3 (+ sn_2 1)) - (= conf_2_2 conf_3_0) - (= i_3 i!) - (= conf_0_2 conf_0!) - (= conf_2_2 conf_2!) - (= sn_3 sn!) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - ) - ) -) - + (or (and (= i_2 i) (= conf_0_1 conf_0) (= conf_2_1 conf_2) (= sn_2 sn) (= i_2 i!) (= conf_0_1 conf_0!) (= conf_2_1 conf_2!) (= sn_2 sn!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= sn sn!)) (and (= i_2 i) (= conf_0_1 conf_0) (= conf_2_1 conf_2) (= sn_2 sn) (<= i_2 8) (= i_3 (+ i_2 1)) (= conf_0_2 (- conf_3_0 206)) (= sn_3 (+ sn_2 1)) (= conf_2_2 conf_3_0) (= i_3 i!) (= conf_0_2 conf_0!) (= conf_2_2 conf_2!) (= sn_3 sn!) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0)))) (define-fun post-f ((i Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int)) Bool - (or - (not - (and - (= i i_2) - (= conf_0 conf_0_1) - (= conf_1 conf_1_0) - (= conf_2 conf_2_1) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= sn sn_2) - ) - ) - (not - (and - (not (<= i_2 8)) - (not (= sn_2 8)) - (not (= sn_2 0)) - ) - ) - ) -) + (or (not (and (= i i_2) (= conf_0 conf_0_1) (= conf_1 conf_1_0) (= conf_2 conf_2_1) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= sn sn_2))) (not (and (not (<= i_2 8)) (not (= sn_2 8)) (not (= sn_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/121.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/121.c.sl index 0567a5f..bbf7d43 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/121.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/121.c.sl @@ -1,66 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var sn Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var sn_0 Int) -(declare-primed-var sn_1 Int) -(declare-primed-var sn_2 Int) -(declare-primed-var sn_3 Int) - (synth-inv inv-f ((i Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int))) (define-fun pre-f ((i Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int)) Bool - (and - (= i i_1) - (= sn sn_1) - (= sn_1 0) - (= i_1 1) - ) -) - + (and (= i i_1) (= sn sn_1) (= sn_1 0) (= i_1 1))) (define-fun trans-f ((i Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (i! Int) (sn! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (sn_0! Int) (sn_1! Int) (sn_2! Int) (sn_3! Int)) Bool - (or - (and - (= i_2 i) - (= sn_2 sn) - (= i_2 i!) - (= sn_2 sn!) - (= sn sn!) - ) - (and - (= i_2 i) - (= sn_2 sn) - (<= i_2 8) - (= i_3 (+ i_2 1)) - (= sn_3 (+ sn_2 1)) - (= i_3 i!) - (= sn_3 sn!) - ) - ) -) - + (or (and (= i_2 i) (= sn_2 sn) (= i_2 i!) (= sn_2 sn!) (= sn sn!)) (and (= i_2 i) (= sn_2 sn) (<= i_2 8) (= i_3 (+ i_2 1)) (= sn_3 (+ sn_2 1)) (= i_3 i!) (= sn_3 sn!)))) (define-fun post-f ((i Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int)) Bool - (or - (not - (and - (= i i_2) - (= sn sn_2) - ) - ) - (not - (and - (not (<= i_2 8)) - (not (= sn_2 0)) - (not (= sn_2 8)) - ) - ) - ) -) + (or (not (and (= i i_2) (= sn sn_2))) (not (and (not (<= i_2 8)) (not (= sn_2 0)) (not (= sn_2 8)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/121_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/121_conf1.sl index f076b04..063dad6 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/121_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/121_conf1.sl @@ -1,81 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var conf_0 Int) -(declare-primed-var sn Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var sn_0 Int) -(declare-primed-var sn_1 Int) -(declare-primed-var sn_2 Int) -(declare-primed-var sn_3 Int) - (synth-inv inv-f ((i Int) (conf_0 Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int))) (define-fun pre-f ((i Int) (conf_0 Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int)) Bool - (and - (= i i_1) - (= conf_0 conf_0_0) - (= sn sn_1) - (= conf_0_0 4) - (= sn_1 0) - (= i_1 1) - ) -) - + (and (= i i_1) (= conf_0 conf_0_0) (= sn sn_1) (= conf_0_0 4) (= sn_1 0) (= i_1 1))) (define-fun trans-f ((i Int) (conf_0 Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (i! Int) (conf_0! Int) (sn! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (sn_0! Int) (sn_1! Int) (sn_2! Int) (sn_3! Int)) Bool - (or - (and - (= i_2 i) - (= conf_0_1 conf_0) - (= sn_2 sn) - (= i_2 i!) - (= conf_0_1 conf_0!) - (= sn_2 sn!) - (= conf_0 conf_0!) - (= sn sn!) - ) - (and - (= i_2 i) - (= conf_0_1 conf_0) - (= sn_2 sn) - (<= i_2 8) - (= i_3 (+ i_2 1)) - (= conf_0_2 576) - (= sn_3 (+ sn_2 1)) - (= conf_0_3 (- conf_0_2 206)) - (= i_3 i!) - (= conf_0_3 conf_0!) - (= sn_3 sn!) - ) - ) -) - + (or (and (= i_2 i) (= conf_0_1 conf_0) (= sn_2 sn) (= i_2 i!) (= conf_0_1 conf_0!) (= sn_2 sn!) (= conf_0 conf_0!) (= sn sn!)) (and (= i_2 i) (= conf_0_1 conf_0) (= sn_2 sn) (<= i_2 8) (= i_3 (+ i_2 1)) (= conf_0_2 576) (= sn_3 (+ sn_2 1)) (= conf_0_3 (- conf_0_2 206)) (= i_3 i!) (= conf_0_3 conf_0!) (= sn_3 sn!)))) (define-fun post-f ((i Int) (conf_0 Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int)) Bool - (or - (not - (and - (= i i_2) - (= conf_0 conf_0_1) - (= sn sn_2) - ) - ) - (not - (and - (not (<= i_2 8)) - (not (= sn_2 0)) - (not (= sn_2 8)) - ) - ) - ) -) + (or (not (and (= i i_2) (= conf_0 conf_0_1) (= sn sn_2))) (not (and (not (<= i_2 8)) (not (= sn_2 0)) (not (= sn_2 8)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/121_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/121_conf5.sl index 3830d61..59c7ed4 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/121_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/121_conf5.sl @@ -1,116 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var sn Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_2_1 Int) -(declare-primed-var conf_2_2 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var sn_0 Int) -(declare-primed-var sn_1 Int) -(declare-primed-var sn_2 Int) -(declare-primed-var sn_3 Int) - (synth-inv inv-f ((i Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int))) (define-fun pre-f ((i Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int)) Bool - (and - (= i i_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= sn sn_1) - (= conf_0_0 6) - (= conf_1_0 2) - (= conf_2_0 6) - (= conf_3_0 2) - (= conf_4_0 4) - (= sn_1 0) - (= i_1 1) - ) -) - + (and (= i i_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= sn sn_1) (= conf_0_0 6) (= conf_1_0 2) (= conf_2_0 6) (= conf_3_0 2) (= conf_4_0 4) (= sn_1 0) (= i_1 1))) (define-fun trans-f ((i Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int) (i! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (sn! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_2_1! Int) (conf_2_2! Int) (conf_3_0! Int) (conf_4_0! Int) (sn_0! Int) (sn_1! Int) (sn_2! Int) (sn_3! Int)) Bool - (or - (and - (= i_2 i) - (= conf_0_1 conf_0) - (= conf_2_1 conf_2) - (= sn_2 sn) - (= i_2 i!) - (= conf_0_1 conf_0!) - (= conf_2_1 conf_2!) - (= sn_2 sn!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= sn sn!) - ) - (and - (= i_2 i) - (= conf_0_1 conf_0) - (= conf_2_1 conf_2) - (= sn_2 sn) - (<= i_2 8) - (= i_3 (+ i_2 1)) - (= conf_0_2 (- conf_3_0 206)) - (= sn_3 (+ sn_2 1)) - (= conf_2_2 conf_3_0) - (= i_3 i!) - (= conf_0_2 conf_0!) - (= conf_2_2 conf_2!) - (= sn_3 sn!) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - ) - ) -) - + (or (and (= i_2 i) (= conf_0_1 conf_0) (= conf_2_1 conf_2) (= sn_2 sn) (= i_2 i!) (= conf_0_1 conf_0!) (= conf_2_1 conf_2!) (= sn_2 sn!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= sn sn!)) (and (= i_2 i) (= conf_0_1 conf_0) (= conf_2_1 conf_2) (= sn_2 sn) (<= i_2 8) (= i_3 (+ i_2 1)) (= conf_0_2 (- conf_3_0 206)) (= sn_3 (+ sn_2 1)) (= conf_2_2 conf_3_0) (= i_3 i!) (= conf_0_2 conf_0!) (= conf_2_2 conf_2!) (= sn_3 sn!) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0)))) (define-fun post-f ((i Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (sn Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (sn_0 Int) (sn_1 Int) (sn_2 Int) (sn_3 Int)) Bool - (or - (not - (and - (= i i_2) - (= conf_0 conf_0_1) - (= conf_1 conf_1_0) - (= conf_2 conf_2_1) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= sn sn_2) - ) - ) - (not - (and - (not (<= i_2 8)) - (not (= sn_2 0)) - (not (= sn_2 8)) - ) - ) - ) -) + (or (not (and (= i i_2) (= conf_0 conf_0_1) (= conf_1 conf_1_0) (= conf_2 conf_2_1) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= sn sn_2))) (not (and (not (<= i_2 8)) (not (= sn_2 0)) (not (= sn_2 8)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/124.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/124.c.sl index 82b6028..2763aca 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/124.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/124.c.sl @@ -1,80 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var j_0 Int) -(declare-primed-var j_1 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((i Int) (j Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (j_0 Int) (j_1 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((i Int) (j Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (j_0 Int) (j_1 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= i i_1) - (= j j_1) - (= x x_0) - (= y y_0) - (= i_1 x_0) - (= j_1 y_0) - ) -) - + (and (= i i_1) (= j j_1) (= x x_0) (= y y_0) (= i_1 x_0) (= j_1 y_0))) (define-fun trans-f ((i Int) (j Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (j_0 Int) (j_1 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int) (i! Int) (j! Int) (x! Int) (y! Int) (i_0! Int) (i_1! Int) (j_0! Int) (j_1! Int) (x_0! Int) (x_1! Int) (x_2! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= x_1 x) - (= y_1 y) - (= x_1 x!) - (= y_1 y!) - (= i i!) - (= j j!) - (= y y!) - ) - (and - (= x_1 x) - (= y_1 y) - (not (= x_1 0)) - (= x_2 (- x_1 1)) - (= y_2 (- y_1 1)) - (= x_2 x!) - (= y_2 y!) - (= i i_1) - (= i! i_1) - (= j j_1) - (= j! j_1) - ) - ) -) - + (or (and (= x_1 x) (= y_1 y) (= x_1 x!) (= y_1 y!) (= i i!) (= j j!) (= y y!)) (and (= x_1 x) (= y_1 y) (not (= x_1 0)) (= x_2 (- x_1 1)) (= y_2 (- y_1 1)) (= x_2 x!) (= y_2 y!) (= i i_1) (= i! i_1) (= j j_1) (= j! j_1)))) (define-fun post-f ((i Int) (j Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (j_0 Int) (j_1 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= i i_1) - (= j j_1) - (= x x_1) - (= y y_1) - ) - ) - (not - (and - (not (not (= x_1 0))) - (= i_1 j_1) - (not (= y_1 0)) - ) - ) - ) -) + (or (not (and (= i i_1) (= j j_1) (= x x_1) (= y y_1))) (not (and (not (not (= x_1 0))) (= i_1 j_1) (not (= y_1 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/124_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/124_conf1.sl index 589e1bd..1e12167 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/124_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/124_conf1.sl @@ -1,95 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var conf_0 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var j_0 Int) -(declare-primed-var j_1 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((i Int) (j Int) (conf_0 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (j_0 Int) (j_1 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((i Int) (j Int) (conf_0 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (j_0 Int) (j_1 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= i i_1) - (= j j_1) - (= conf_0 conf_0_0) - (= x x_0) - (= y y_0) - (= conf_0_0 1) - (= i_1 x_0) - (= j_1 y_0) - ) -) - + (and (= i i_1) (= j j_1) (= conf_0 conf_0_0) (= x x_0) (= y y_0) (= conf_0_0 1) (= i_1 x_0) (= j_1 y_0))) (define-fun trans-f ((i Int) (j Int) (conf_0 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (j_0 Int) (j_1 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int) (i! Int) (j! Int) (conf_0! Int) (x! Int) (y! Int) (i_0! Int) (i_1! Int) (j_0! Int) (j_1! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (x_0! Int) (x_1! Int) (x_2! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= x_1 x) - (= y_1 y) - (= conf_0_1 conf_0!) - (= x_1 x!) - (= y_1 y!) - (= i i!) - (= j j!) - (= conf_0 conf_0!) - (= y y!) - ) - (and - (= conf_0_1 conf_0) - (= x_1 x) - (= y_1 y) - (not (= x_1 0)) - (= x_2 (- x_1 1)) - (= conf_0_2 (+ conf_0_1 827)) - (= y_2 (- y_1 1)) - (= conf_0_3 (- conf_0_2 224)) - (= conf_0_3 conf_0!) - (= x_2 x!) - (= y_2 y!) - (= i i_1) - (= i! i_1) - (= j j_1) - (= j! j_1) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= x_1 x) (= y_1 y) (= conf_0_1 conf_0!) (= x_1 x!) (= y_1 y!) (= i i!) (= j j!) (= conf_0 conf_0!) (= y y!)) (and (= conf_0_1 conf_0) (= x_1 x) (= y_1 y) (not (= x_1 0)) (= x_2 (- x_1 1)) (= conf_0_2 (+ conf_0_1 827)) (= y_2 (- y_1 1)) (= conf_0_3 (- conf_0_2 224)) (= conf_0_3 conf_0!) (= x_2 x!) (= y_2 y!) (= i i_1) (= i! i_1) (= j j_1) (= j! j_1)))) (define-fun post-f ((i Int) (j Int) (conf_0 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (j_0 Int) (j_1 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= i i_1) - (= j j_1) - (= conf_0 conf_0_1) - (= x x_1) - (= y y_1) - ) - ) - (not - (and - (not (not (= x_1 0))) - (= i_1 j_1) - (not (= y_1 0)) - ) - ) - ) -) + (or (not (and (= i i_1) (= j j_1) (= conf_0 conf_0_1) (= x x_1) (= y y_1))) (not (and (not (not (= x_1 0))) (= i_1 j_1) (not (= y_1 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/124_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/124_conf5.sl index 0cef530..5bc687b 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/124_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/124_conf5.sl @@ -1,130 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var j_0 Int) -(declare-primed-var j_1 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var conf_4_1 Int) -(declare-primed-var conf_4_2 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((i Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (j_0 Int) (j_1 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((i Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (j_0 Int) (j_1 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= i i_1) - (= j j_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_0) - (= y y_0) - (= conf_0_0 4) - (= conf_1_0 1) - (= conf_2_0 3) - (= conf_3_0 7) - (= conf_4_0 1) - (= i_1 x_0) - (= j_1 y_0) - ) -) - + (and (= i i_1) (= j j_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_0) (= y y_0) (= conf_0_0 4) (= conf_1_0 1) (= conf_2_0 3) (= conf_3_0 7) (= conf_4_0 1) (= i_1 x_0) (= j_1 y_0))) (define-fun trans-f ((i Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (j_0 Int) (j_1 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int) (i! Int) (j! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (x! Int) (y! Int) (i_0! Int) (i_1! Int) (j_0! Int) (j_1! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_4_0! Int) (conf_4_1! Int) (conf_4_2! Int) (x_0! Int) (x_1! Int) (x_2! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= conf_4_1 conf_4) - (= x_1 x) - (= y_1 y) - (= conf_0_1 conf_0!) - (= conf_4_1 conf_4!) - (= x_1 x!) - (= y_1 y!) - (= i i!) - (= j j!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= y y!) - ) - (and - (= conf_0_1 conf_0) - (= conf_4_1 conf_4) - (= x_1 x) - (= y_1 y) - (not (= x_1 0)) - (= x_2 (- x_1 1)) - (= conf_0_2 conf_0_1) - (= y_2 (- y_1 1)) - (= conf_4_2 (+ conf_3_0 671)) - (= conf_0_2 conf_0!) - (= conf_4_2 conf_4!) - (= x_2 x!) - (= y_2 y!) - (= i i_1) - (= i! i_1) - (= j j_1) - (= j! j_1) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= conf_4_1 conf_4) (= x_1 x) (= y_1 y) (= conf_0_1 conf_0!) (= conf_4_1 conf_4!) (= x_1 x!) (= y_1 y!) (= i i!) (= j j!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= y y!)) (and (= conf_0_1 conf_0) (= conf_4_1 conf_4) (= x_1 x) (= y_1 y) (not (= x_1 0)) (= x_2 (- x_1 1)) (= conf_0_2 conf_0_1) (= y_2 (- y_1 1)) (= conf_4_2 (+ conf_3_0 671)) (= conf_0_2 conf_0!) (= conf_4_2 conf_4!) (= x_2 x!) (= y_2 y!) (= i i_1) (= i! i_1) (= j j_1) (= j! j_1) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0)))) (define-fun post-f ((i Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (j_0 Int) (j_1 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= i i_1) - (= j j_1) - (= conf_0 conf_0_1) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_1) - (= x x_1) - (= y y_1) - ) - ) - (not - (and - (not (not (= x_1 0))) - (= i_1 j_1) - (not (= y_1 0)) - ) - ) - ) -) + (or (not (and (= i i_1) (= j j_1) (= conf_0 conf_0_1) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_1) (= x x_1) (= y y_1))) (not (and (not (not (= x_1 0))) (= i_1 j_1) (not (= y_1 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/125.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/125.c.sl index f83fca0..7858c0d 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/125.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/125.c.sl @@ -1,80 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var j_0 Int) -(declare-primed-var j_1 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((i Int) (j Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (j_0 Int) (j_1 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((i Int) (j Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (j_0 Int) (j_1 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= i i_1) - (= j j_1) - (= x x_0) - (= y y_0) - (= i_1 x_0) - (= j_1 y_0) - ) -) - + (and (= i i_1) (= j j_1) (= x x_0) (= y y_0) (= i_1 x_0) (= j_1 y_0))) (define-fun trans-f ((i Int) (j Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (j_0 Int) (j_1 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int) (i! Int) (j! Int) (x! Int) (y! Int) (i_0! Int) (i_1! Int) (j_0! Int) (j_1! Int) (x_0! Int) (x_1! Int) (x_2! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= x_1 x) - (= y_1 y) - (= x_1 x!) - (= y_1 y!) - (= i i!) - (= j j!) - (= y y!) - ) - (and - (= x_1 x) - (= y_1 y) - (not (= x_1 0)) - (= x_2 (- x_1 1)) - (= y_2 (- y_1 1)) - (= x_2 x!) - (= y_2 y!) - (= i i_1) - (= i! i_1) - (= j j_1) - (= j! j_1) - ) - ) -) - + (or (and (= x_1 x) (= y_1 y) (= x_1 x!) (= y_1 y!) (= i i!) (= j j!) (= y y!)) (and (= x_1 x) (= y_1 y) (not (= x_1 0)) (= x_2 (- x_1 1)) (= y_2 (- y_1 1)) (= x_2 x!) (= y_2 y!) (= i i_1) (= i! i_1) (= j j_1) (= j! j_1)))) (define-fun post-f ((i Int) (j Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (j_0 Int) (j_1 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= i i_1) - (= j j_1) - (= x x_1) - (= y y_1) - ) - ) - (not - (and - (not (not (= x_1 0))) - (not (= y_1 0)) - (not (not (= i_1 j_1))) - ) - ) - ) -) + (or (not (and (= i i_1) (= j j_1) (= x x_1) (= y y_1))) (not (and (not (not (= x_1 0))) (not (= y_1 0)) (not (not (= i_1 j_1))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/125_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/125_conf1.sl index edd52b9..1582a0c 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/125_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/125_conf1.sl @@ -1,95 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var conf_0 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var j_0 Int) -(declare-primed-var j_1 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((i Int) (j Int) (conf_0 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (j_0 Int) (j_1 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((i Int) (j Int) (conf_0 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (j_0 Int) (j_1 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= i i_1) - (= j j_1) - (= conf_0 conf_0_0) - (= x x_0) - (= y y_0) - (= conf_0_0 1) - (= i_1 x_0) - (= j_1 y_0) - ) -) - + (and (= i i_1) (= j j_1) (= conf_0 conf_0_0) (= x x_0) (= y y_0) (= conf_0_0 1) (= i_1 x_0) (= j_1 y_0))) (define-fun trans-f ((i Int) (j Int) (conf_0 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (j_0 Int) (j_1 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int) (i! Int) (j! Int) (conf_0! Int) (x! Int) (y! Int) (i_0! Int) (i_1! Int) (j_0! Int) (j_1! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (x_0! Int) (x_1! Int) (x_2! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= x_1 x) - (= y_1 y) - (= conf_0_1 conf_0!) - (= x_1 x!) - (= y_1 y!) - (= i i!) - (= j j!) - (= conf_0 conf_0!) - (= y y!) - ) - (and - (= conf_0_1 conf_0) - (= x_1 x) - (= y_1 y) - (not (= x_1 0)) - (= x_2 (- x_1 1)) - (= conf_0_2 (+ conf_0_1 827)) - (= y_2 (- y_1 1)) - (= conf_0_3 (- conf_0_2 224)) - (= conf_0_3 conf_0!) - (= x_2 x!) - (= y_2 y!) - (= i i_1) - (= i! i_1) - (= j j_1) - (= j! j_1) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= x_1 x) (= y_1 y) (= conf_0_1 conf_0!) (= x_1 x!) (= y_1 y!) (= i i!) (= j j!) (= conf_0 conf_0!) (= y y!)) (and (= conf_0_1 conf_0) (= x_1 x) (= y_1 y) (not (= x_1 0)) (= x_2 (- x_1 1)) (= conf_0_2 (+ conf_0_1 827)) (= y_2 (- y_1 1)) (= conf_0_3 (- conf_0_2 224)) (= conf_0_3 conf_0!) (= x_2 x!) (= y_2 y!) (= i i_1) (= i! i_1) (= j j_1) (= j! j_1)))) (define-fun post-f ((i Int) (j Int) (conf_0 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (j_0 Int) (j_1 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= i i_1) - (= j j_1) - (= conf_0 conf_0_1) - (= x x_1) - (= y y_1) - ) - ) - (not - (and - (not (not (= x_1 0))) - (not (= y_1 0)) - (not (not (= i_1 j_1))) - ) - ) - ) -) + (or (not (and (= i i_1) (= j j_1) (= conf_0 conf_0_1) (= x x_1) (= y y_1))) (not (and (not (not (= x_1 0))) (not (= y_1 0)) (not (not (= i_1 j_1))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/125_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/125_conf5.sl index 1ab0646..f3e07d5 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/125_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/125_conf5.sl @@ -1,130 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var j_0 Int) -(declare-primed-var j_1 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var conf_4_1 Int) -(declare-primed-var conf_4_2 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((i Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (j_0 Int) (j_1 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((i Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (j_0 Int) (j_1 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= i i_1) - (= j j_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_0) - (= y y_0) - (= conf_0_0 4) - (= conf_1_0 1) - (= conf_2_0 3) - (= conf_3_0 7) - (= conf_4_0 1) - (= i_1 x_0) - (= j_1 y_0) - ) -) - + (and (= i i_1) (= j j_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_0) (= y y_0) (= conf_0_0 4) (= conf_1_0 1) (= conf_2_0 3) (= conf_3_0 7) (= conf_4_0 1) (= i_1 x_0) (= j_1 y_0))) (define-fun trans-f ((i Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (j_0 Int) (j_1 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int) (i! Int) (j! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (x! Int) (y! Int) (i_0! Int) (i_1! Int) (j_0! Int) (j_1! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_4_0! Int) (conf_4_1! Int) (conf_4_2! Int) (x_0! Int) (x_1! Int) (x_2! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= conf_4_1 conf_4) - (= x_1 x) - (= y_1 y) - (= conf_0_1 conf_0!) - (= conf_4_1 conf_4!) - (= x_1 x!) - (= y_1 y!) - (= i i!) - (= j j!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= y y!) - ) - (and - (= conf_0_1 conf_0) - (= conf_4_1 conf_4) - (= x_1 x) - (= y_1 y) - (not (= x_1 0)) - (= x_2 (- x_1 1)) - (= conf_0_2 conf_0_1) - (= y_2 (- y_1 1)) - (= conf_4_2 (+ conf_3_0 671)) - (= conf_0_2 conf_0!) - (= conf_4_2 conf_4!) - (= x_2 x!) - (= y_2 y!) - (= i i_1) - (= i! i_1) - (= j j_1) - (= j! j_1) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= conf_4_1 conf_4) (= x_1 x) (= y_1 y) (= conf_0_1 conf_0!) (= conf_4_1 conf_4!) (= x_1 x!) (= y_1 y!) (= i i!) (= j j!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= y y!)) (and (= conf_0_1 conf_0) (= conf_4_1 conf_4) (= x_1 x) (= y_1 y) (not (= x_1 0)) (= x_2 (- x_1 1)) (= conf_0_2 conf_0_1) (= y_2 (- y_1 1)) (= conf_4_2 (+ conf_3_0 671)) (= conf_0_2 conf_0!) (= conf_4_2 conf_4!) (= x_2 x!) (= y_2 y!) (= i i_1) (= i! i_1) (= j j_1) (= j! j_1) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0)))) (define-fun post-f ((i Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (j_0 Int) (j_1 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= i i_1) - (= j j_1) - (= conf_0 conf_0_1) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_1) - (= x x_1) - (= y y_1) - ) - ) - (not - (and - (not (not (= x_1 0))) - (not (= y_1 0)) - (not (not (= i_1 j_1))) - ) - ) - ) -) + (or (not (and (= i i_1) (= j j_1) (= conf_0 conf_0_1) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_1) (= x x_1) (= y y_1))) (not (and (not (not (= x_1 0))) (not (= y_1 0)) (not (not (= i_1 j_1))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/128.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/128.c.sl index 0f65cfa..9d74793 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/128.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/128.c.sl @@ -1,58 +1,15 @@ (set-logic LIA) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) - (synth-inv inv-f ((x Int) (y Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int))) (define-fun pre-f ((x Int) (y Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int)) Bool - (and - (= x x_1) - (= x_1 1) - ) -) - + (and (= x x_1) (= x_1 1))) (define-fun trans-f ((x Int) (y Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (x! Int) (y! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int)) Bool - (or - (and - (= x_2 x) - (= x_2 x!) - (= y y_0) - (= y! y_0) - ) - (and - (= x_2 x) - (< x_2 y_0) - (= x_3 (+ x_2 x_2)) - (= x_3 x!) - (= y y_0) - (= y! y_0) - ) - ) -) - + (or (and (= x_2 x) (= x_2 x!) (= y y_0) (= y! y_0)) (and (= x_2 x) (< x_2 y_0) (= x_3 (+ x_2 x_2)) (= x_3 x!) (= y y_0) (= y! y_0)))) (define-fun post-f ((x Int) (y Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int)) Bool - (or - (not - (and - (= x x_2) - (= y y_0) - ) - ) - (not - (and - (not (< x_2 y_0)) - (not (>= x_2 1)) - ) - ) - ) -) + (or (not (and (= x x_2) (= y y_0))) (not (and (not (< x_2 y_0)) (not (>= x_2 1)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/128_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/128_conf1.sl index 4e35731..69ccbd8 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/128_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/128_conf1.sl @@ -1,71 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) - (synth-inv inv-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int))) (define-fun pre-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int)) Bool - (and - (= conf_0 conf_0_0) - (= x x_1) - (= conf_0_0 5) - (= x_1 1) - ) -) - + (and (= conf_0 conf_0_0) (= x x_1) (= conf_0_0 5) (= x_1 1))) (define-fun trans-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (conf_0! Int) (x! Int) (y! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= conf_0_1 conf_0!) - (= x_2 x!) - (= y y_0) - (= y! y_0) - (= conf_0 conf_0!) - ) - (and - (= conf_0_1 conf_0) - (= x_2 x) - (< x_2 y_0) - (= x_3 (+ x_2 x_2)) - (= conf_0_2 (+ conf_0_1 535)) - (= conf_0_2 conf_0!) - (= x_3 x!) - (= y y_0) - (= y! y_0) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= x_2 x) (= conf_0_1 conf_0!) (= x_2 x!) (= y y_0) (= y! y_0) (= conf_0 conf_0!)) (and (= conf_0_1 conf_0) (= x_2 x) (< x_2 y_0) (= x_3 (+ x_2 x_2)) (= conf_0_2 (+ conf_0_1 535)) (= conf_0_2 conf_0!) (= x_3 x!) (= y y_0) (= y! y_0)))) (define-fun post-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= x x_2) - (= y y_0) - ) - ) - (not - (and - (not (< x_2 y_0)) - (not (>= x_2 1)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= x x_2) (= y y_0))) (not (and (not (< x_2 y_0)) (not (>= x_2 1)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/128_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/128_conf5.sl index 9de89e0..0efad57 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/128_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/128_conf5.sl @@ -1,103 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_3_1 Int) -(declare-primed-var conf_3_2 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_1) - (= conf_0_0 8) - (= conf_1_0 7) - (= conf_2_0 7) - (= conf_3_0 7) - (= conf_4_0 5) - (= x_1 1) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_1) (= conf_0_0 8) (= conf_1_0 7) (= conf_2_0 7) (= conf_3_0 7) (= conf_4_0 5) (= x_1 1))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (x! Int) (y! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_3_1! Int) (conf_3_2! Int) (conf_4_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int)) Bool - (or - (and - (= conf_3_1 conf_3) - (= x_2 x) - (= conf_3_1 conf_3!) - (= x_2 x!) - (= y y_0) - (= y! y_0) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - ) - (and - (= conf_3_1 conf_3) - (= x_2 x) - (< x_2 y_0) - (= x_3 (+ x_2 x_2)) - (= conf_3_2 conf_3_1) - (= conf_3_2 conf_3!) - (= x_3 x!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= y y_0) - (= y! y_0) - ) - ) -) - + (or (and (= conf_3_1 conf_3) (= x_2 x) (= conf_3_1 conf_3!) (= x_2 x!) (= y y_0) (= y! y_0) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!)) (and (= conf_3_1 conf_3) (= x_2 x) (< x_2 y_0) (= x_3 (+ x_2 x_2)) (= conf_3_2 conf_3_1) (= conf_3_2 conf_3!) (= x_3 x!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= y y_0) (= y! y_0)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_1) - (= conf_4 conf_4_0) - (= x x_2) - (= y y_0) - ) - ) - (not - (and - (not (< x_2 y_0)) - (not (>= x_2 1)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_1) (= conf_4 conf_4_0) (= x x_2) (= y y_0))) (not (and (not (< x_2 y_0)) (not (>= x_2 1)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/12_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/12_conf1.sl index 785e92b..8745707 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/12_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/12_conf1.sl @@ -1,83 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var tmp Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((conf_0 Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((conf_0 Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= conf_0 conf_0_0) - (= x x_0) - (= y y_0) - (= conf_0_0 1) - (>= x_0 0) - (<= x_0 10) - (<= y_0 10) - (>= y_0 0) - ) -) - + (and (= conf_0 conf_0_0) (= x x_0) (= y y_0) (= conf_0_0 1) (>= x_0 0) (<= x_0 10) (<= y_0 10) (>= y_0 0))) (define-fun trans-f ((conf_0 Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int) (conf_0! Int) (x! Int) (y! Int) (tmp! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (x_0! Int) (x_1! Int) (x_2! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= x_1 x) - (= y_1 y) - (= conf_0_1 conf_0!) - (= x_1 x!) - (= y_1 y!) - (= conf_0 conf_0!) - (= x x!) - (= y y!) - (= tmp tmp!) - ) - (and - (= conf_0_1 conf_0) - (= x_1 x) - (= y_1 y) - (= x_2 (+ x_1 10)) - (= conf_0_2 conf_0_1) - (= y_2 (+ y_1 10)) - (= conf_0_3 (+ conf_0_2 conf_0_2)) - (= conf_0_3 conf_0!) - (= x_2 x!) - (= y_2 y!) - (= tmp tmp!) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= x_1 x) (= y_1 y) (= conf_0_1 conf_0!) (= x_1 x!) (= y_1 y!) (= conf_0 conf_0!) (= x x!) (= y y!) (= tmp tmp!)) (and (= conf_0_1 conf_0) (= x_1 x) (= y_1 y) (= x_2 (+ x_1 10)) (= conf_0_2 conf_0_1) (= y_2 (+ y_1 10)) (= conf_0_3 (+ conf_0_2 conf_0_2)) (= conf_0_3 conf_0!) (= x_2 x!) (= y_2 y!) (= tmp tmp!)))) (define-fun post-f ((conf_0 Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= x x_1) - (= y y_1) - ) - ) - (not - (and - (= y_1 0) - (not (not (= x_1 20))) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= x x_1) (= y y_1))) (not (and (= y_1 0) (not (not (= x_1 20))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/12_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/12_conf5.sl index 60ae195..2370329 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/12_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/12_conf5.sl @@ -1,118 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var tmp Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_1_1 Int) -(declare-primed-var conf_1_2 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_0) - (= y y_0) - (= conf_0_0 2) - (= conf_1_0 9) - (= conf_2_0 0) - (= conf_3_0 7) - (= conf_4_0 1) - (>= x_0 0) - (<= x_0 10) - (<= y_0 10) - (>= y_0 0) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_0) (= y y_0) (= conf_0_0 2) (= conf_1_0 9) (= conf_2_0 0) (= conf_3_0 7) (= conf_4_0 1) (>= x_0 0) (<= x_0 10) (<= y_0 10) (>= y_0 0))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (x! Int) (y! Int) (tmp! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_1_0! Int) (conf_1_1! Int) (conf_1_2! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_4_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= conf_1_1 conf_1) - (= x_1 x) - (= y_1 y) - (= conf_0_1 conf_0!) - (= conf_1_1 conf_1!) - (= x_1 x!) - (= y_1 y!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= x x!) - (= y y!) - (= tmp tmp!) - ) - (and - (= conf_0_1 conf_0) - (= conf_1_1 conf_1) - (= x_1 x) - (= y_1 y) - (= x_2 (+ x_1 10)) - (= conf_0_2 (+ conf_4_0 conf_3_0)) - (= y_2 (+ y_1 10)) - (= conf_1_2 (- conf_0_2 conf_0_2)) - (= conf_0_2 conf_0!) - (= conf_1_2 conf_1!) - (= x_2 x!) - (= y_2 y!) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= conf_1_1 conf_1) (= x_1 x) (= y_1 y) (= conf_0_1 conf_0!) (= conf_1_1 conf_1!) (= x_1 x!) (= y_1 y!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= x x!) (= y y!) (= tmp tmp!)) (and (= conf_0_1 conf_0) (= conf_1_1 conf_1) (= x_1 x) (= y_1 y) (= x_2 (+ x_1 10)) (= conf_0_2 (+ conf_4_0 conf_3_0)) (= y_2 (+ y_1 10)) (= conf_1_2 (- conf_0_2 conf_0_2)) (= conf_0_2 conf_0!) (= conf_1_2 conf_1!) (= x_2 x!) (= y_2 y!) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= tmp tmp!)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= conf_1 conf_1_1) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_1) - (= y y_1) - ) - ) - (not - (and - (= y_1 0) - (not (not (= x_1 20))) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= conf_1 conf_1_1) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_1) (= y y_1))) (not (and (= y_1 0) (not (not (= x_1 20))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/13.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/13.c.sl index 25c7d01..e2ea9cb 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/13.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/13.c.sl @@ -1,68 +1,15 @@ (set-logic LIA) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var tmp Int) - -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((x Int) (y Int) (tmp Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((x Int) (y Int) (tmp Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= x x_0) - (= y y_0) - (>= x_0 0) - (<= x_0 2) - (<= y_0 2) - (>= y_0 0) - ) -) - + (and (= x x_0) (= y y_0) (>= x_0 0) (<= x_0 2) (<= y_0 2) (>= y_0 0))) (define-fun trans-f ((x Int) (y Int) (tmp Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int) (x! Int) (y! Int) (tmp! Int) (x_0! Int) (x_1! Int) (x_2! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= x_1 x) - (= y_1 y) - (= x_1 x!) - (= y_1 y!) - (= x x!) - (= y y!) - (= tmp tmp!) - ) - (and - (= x_1 x) - (= y_1 y) - (= x_2 (+ x_1 2)) - (= y_2 (+ y_1 2)) - (= x_2 x!) - (= y_2 y!) - (= tmp tmp!) - ) - ) -) - + (or (and (= x_1 x) (= y_1 y) (= x_1 x!) (= y_1 y!) (= x x!) (= y y!) (= tmp tmp!)) (and (= x_1 x) (= y_1 y) (= x_2 (+ x_1 2)) (= y_2 (+ y_1 2)) (= x_2 x!) (= y_2 y!) (= tmp tmp!)))) (define-fun post-f ((x Int) (y Int) (tmp Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= x x_1) - (= y y_1) - ) - ) - (not - (and - (= x_1 4) - (not (not (= y_1 0))) - ) - ) - ) -) + (or (not (and (= x x_1) (= y y_1))) (not (and (= x_1 4) (not (not (= y_1 0))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/130.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/130.c.sl index 396f2ba..85ccf39 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/130.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/130.c.sl @@ -1,143 +1,15 @@ (set-logic LIA) -(declare-primed-var d1 Int) -(declare-primed-var d2 Int) -(declare-primed-var d3 Int) -(declare-primed-var x1 Int) -(declare-primed-var x2 Int) -(declare-primed-var x3 Int) - -(declare-primed-var d1_0 Int) -(declare-primed-var d2_0 Int) -(declare-primed-var d3_0 Int) -(declare-primed-var x1_0 Int) -(declare-primed-var x1_1 Int) -(declare-primed-var x1_2 Int) -(declare-primed-var x1_3 Int) -(declare-primed-var x2_0 Int) -(declare-primed-var x2_1 Int) -(declare-primed-var x2_2 Int) -(declare-primed-var x2_3 Int) -(declare-primed-var x3_0 Int) -(declare-primed-var x3_1 Int) -(declare-primed-var x3_2 Int) -(declare-primed-var x3_3 Int) - (synth-inv inv-f ((d1 Int) (d2 Int) (d3 Int) (x1 Int) (x2 Int) (x3 Int) (d1_0 Int) (d2_0 Int) (d3_0 Int) (x1_0 Int) (x1_1 Int) (x1_2 Int) (x1_3 Int) (x2_0 Int) (x2_1 Int) (x2_2 Int) (x2_3 Int) (x3_0 Int) (x3_1 Int) (x3_2 Int) (x3_3 Int))) (define-fun pre-f ((d1 Int) (d2 Int) (d3 Int) (x1 Int) (x2 Int) (x3 Int) (d1_0 Int) (d2_0 Int) (d3_0 Int) (x1_0 Int) (x1_1 Int) (x1_2 Int) (x1_3 Int) (x2_0 Int) (x2_1 Int) (x2_2 Int) (x2_3 Int) (x3_0 Int) (x3_1 Int) (x3_2 Int) (x3_3 Int)) Bool - (and - (= d1 d1_0) - (= d2 d2_0) - (= d3 d3_0) - (= x1 x1_0) - (= d1_0 1) - (= d2_0 1) - (= d3_0 1) - (= x1_0 1) - ) -) - + (and (= d1 d1_0) (= d2 d2_0) (= d3 d3_0) (= x1 x1_0) (= d1_0 1) (= d2_0 1) (= d3_0 1) (= x1_0 1))) (define-fun trans-f ((d1 Int) (d2 Int) (d3 Int) (x1 Int) (x2 Int) (x3 Int) (d1_0 Int) (d2_0 Int) (d3_0 Int) (x1_0 Int) (x1_1 Int) (x1_2 Int) (x1_3 Int) (x2_0 Int) (x2_1 Int) (x2_2 Int) (x2_3 Int) (x3_0 Int) (x3_1 Int) (x3_2 Int) (x3_3 Int) (d1! Int) (d2! Int) (d3! Int) (x1! Int) (x2! Int) (x3! Int) (d1_0! Int) (d2_0! Int) (d3_0! Int) (x1_0! Int) (x1_1! Int) (x1_2! Int) (x1_3! Int) (x2_0! Int) (x2_1! Int) (x2_2! Int) (x2_3! Int) (x3_0! Int) (x3_1! Int) (x3_2! Int) (x3_3! Int)) Bool - (or - (and - (= x1_1 x1) - (= x2_1 x2) - (= x3_1 x3) - (= x1_1 x1!) - (= x2_1 x2!) - (= x3_1 x3!) - (= d1 d1!) - (= d2 d2!) - (= d3 d3!) - (= x2 x2!) - (= x3 x3!) - ) - (and - (= x1_1 x1) - (= x2_1 x2) - (= x3_1 x3) - (> x1_1 0) - (> x2_1 0) - (> x3_1 0) - (= x1_2 (- x1_1 d1_0)) - (= x2_2 (- x2_1 d2_0)) - (= x3_2 (- x3_1 d3_0)) - (= x1_3 x1_2) - (= x2_3 x2_2) - (= x3_3 x3_2) - (= x1_3 x1!) - (= x2_3 x2!) - (= x3_3 x3!) - (= d1 d1_0) - (= d1! d1_0) - (= d2 d2_0) - (= d2! d2_0) - (= d3 d3_0) - (= d3! d3_0) - ) - (and - (= x1_1 x1) - (= x2_1 x2) - (= x3_1 x3) - (> x1_1 0) - (> x2_1 0) - (not (> x3_1 0)) - (= x1_3 x1_1) - (= x2_3 x2_1) - (= x3_3 x3_1) - (= x1_3 x1!) - (= x2_3 x2!) - (= x3_3 x3!) - (= d1 d1_0) - (= d1! d1_0) - (= d2 d2_0) - (= d2! d2_0) - (= d3 d3_0) - (= d3! d3_0) - ) - (and - (= x1_1 x1) - (= x2_1 x2) - (= x3_1 x3) - (> x1_1 0) - (not (> x2_1 0)) - (= x1_3 x1_1) - (= x2_3 x2_1) - (= x3_3 x3_1) - (= x1_3 x1!) - (= x2_3 x2!) - (= x3_3 x3!) - (= d1 d1_0) - (= d1! d1_0) - (= d2 d2_0) - (= d2! d2_0) - (= d3 d3_0) - (= d3! d3_0) - ) - ) -) - + (or (and (= x1_1 x1) (= x2_1 x2) (= x3_1 x3) (= x1_1 x1!) (= x2_1 x2!) (= x3_1 x3!) (= d1 d1!) (= d2 d2!) (= d3 d3!) (= x2 x2!) (= x3 x3!)) (and (= x1_1 x1) (= x2_1 x2) (= x3_1 x3) (> x1_1 0) (> x2_1 0) (> x3_1 0) (= x1_2 (- x1_1 d1_0)) (= x2_2 (- x2_1 d2_0)) (= x3_2 (- x3_1 d3_0)) (= x1_3 x1_2) (= x2_3 x2_2) (= x3_3 x3_2) (= x1_3 x1!) (= x2_3 x2!) (= x3_3 x3!) (= d1 d1_0) (= d1! d1_0) (= d2 d2_0) (= d2! d2_0) (= d3 d3_0) (= d3! d3_0)) (and (= x1_1 x1) (= x2_1 x2) (= x3_1 x3) (> x1_1 0) (> x2_1 0) (not (> x3_1 0)) (= x1_3 x1_1) (= x2_3 x2_1) (= x3_3 x3_1) (= x1_3 x1!) (= x2_3 x2!) (= x3_3 x3!) (= d1 d1_0) (= d1! d1_0) (= d2 d2_0) (= d2! d2_0) (= d3 d3_0) (= d3! d3_0)) (and (= x1_1 x1) (= x2_1 x2) (= x3_1 x3) (> x1_1 0) (not (> x2_1 0)) (= x1_3 x1_1) (= x2_3 x2_1) (= x3_3 x3_1) (= x1_3 x1!) (= x2_3 x2!) (= x3_3 x3!) (= d1 d1_0) (= d1! d1_0) (= d2 d2_0) (= d2! d2_0) (= d3 d3_0) (= d3! d3_0)))) (define-fun post-f ((d1 Int) (d2 Int) (d3 Int) (x1 Int) (x2 Int) (x3 Int) (d1_0 Int) (d2_0 Int) (d3_0 Int) (x1_0 Int) (x1_1 Int) (x1_2 Int) (x1_3 Int) (x2_0 Int) (x2_1 Int) (x2_2 Int) (x2_3 Int) (x3_0 Int) (x3_1 Int) (x3_2 Int) (x3_3 Int)) Bool - (or - (not - (and - (= d1 d1_0) - (= d2 d2_0) - (= d3 d3_0) - (= x1 x1_1) - (= x2 x2_1) - (= x3 x3_1) - ) - ) - (not - (and - (not (> x1_1 0)) - (not (>= x2_1 0)) - ) - ) - ) -) + (or (not (and (= d1 d1_0) (= d2 d2_0) (= d3 d3_0) (= x1 x1_1) (= x2 x2_1) (= x3 x3_1))) (not (and (not (> x1_1 0)) (not (>= x2_1 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/130_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/130_conf1.sl index 1c42533..ccec5cb 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/130_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/130_conf1.sl @@ -1,172 +1,15 @@ (set-logic LIA) -(declare-primed-var d1 Int) -(declare-primed-var d2 Int) -(declare-primed-var d3 Int) -(declare-primed-var conf_0 Int) -(declare-primed-var x1 Int) -(declare-primed-var x2 Int) -(declare-primed-var x3 Int) - -(declare-primed-var d1_0 Int) -(declare-primed-var d1_1 Int) -(declare-primed-var d2_0 Int) -(declare-primed-var d2_1 Int) -(declare-primed-var d3_0 Int) -(declare-primed-var d3_1 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) -(declare-primed-var conf_0_5 Int) -(declare-primed-var x1_0 Int) -(declare-primed-var x1_1 Int) -(declare-primed-var x1_2 Int) -(declare-primed-var x1_3 Int) -(declare-primed-var x1_4 Int) -(declare-primed-var x2_0 Int) -(declare-primed-var x2_1 Int) -(declare-primed-var x2_2 Int) -(declare-primed-var x2_3 Int) -(declare-primed-var x3_0 Int) -(declare-primed-var x3_1 Int) -(declare-primed-var x3_2 Int) -(declare-primed-var x3_3 Int) - (synth-inv inv-f ((d1 Int) (d2 Int) (d3 Int) (conf_0 Int) (x1 Int) (x2 Int) (x3 Int) (d1_0 Int) (d1_1 Int) (d2_0 Int) (d2_1 Int) (d3_0 Int) (d3_1 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (conf_0_5 Int) (x1_0 Int) (x1_1 Int) (x1_2 Int) (x1_3 Int) (x1_4 Int) (x2_0 Int) (x2_1 Int) (x2_2 Int) (x2_3 Int) (x3_0 Int) (x3_1 Int) (x3_2 Int) (x3_3 Int))) (define-fun pre-f ((d1 Int) (d2 Int) (d3 Int) (conf_0 Int) (x1 Int) (x2 Int) (x3 Int) (d1_0 Int) (d1_1 Int) (d2_0 Int) (d2_1 Int) (d3_0 Int) (d3_1 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (conf_0_5 Int) (x1_0 Int) (x1_1 Int) (x1_2 Int) (x1_3 Int) (x1_4 Int) (x2_0 Int) (x2_1 Int) (x2_2 Int) (x2_3 Int) (x3_0 Int) (x3_1 Int) (x3_2 Int) (x3_3 Int)) Bool - (and - (= d1 d1_1) - (= d2 d2_1) - (= d3 d3_1) - (= conf_0 conf_0_0) - (= x1 x1_1) - (= conf_0_0 7) - (= d1_1 1) - (= d2_1 1) - (= d3_1 1) - (= x1_1 1) - ) -) - + (and (= d1 d1_1) (= d2 d2_1) (= d3 d3_1) (= conf_0 conf_0_0) (= x1 x1_1) (= conf_0_0 7) (= d1_1 1) (= d2_1 1) (= d3_1 1) (= x1_1 1))) (define-fun trans-f ((d1 Int) (d2 Int) (d3 Int) (conf_0 Int) (x1 Int) (x2 Int) (x3 Int) (d1_0 Int) (d1_1 Int) (d2_0 Int) (d2_1 Int) (d3_0 Int) (d3_1 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (conf_0_5 Int) (x1_0 Int) (x1_1 Int) (x1_2 Int) (x1_3 Int) (x1_4 Int) (x2_0 Int) (x2_1 Int) (x2_2 Int) (x2_3 Int) (x3_0 Int) (x3_1 Int) (x3_2 Int) (x3_3 Int) (d1! Int) (d2! Int) (d3! Int) (conf_0! Int) (x1! Int) (x2! Int) (x3! Int) (d1_0! Int) (d1_1! Int) (d2_0! Int) (d2_1! Int) (d3_0! Int) (d3_1! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int) (conf_0_5! Int) (x1_0! Int) (x1_1! Int) (x1_2! Int) (x1_3! Int) (x1_4! Int) (x2_0! Int) (x2_1! Int) (x2_2! Int) (x2_3! Int) (x3_0! Int) (x3_1! Int) (x3_2! Int) (x3_3! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= x1_2 x1) - (= x2_1 x2) - (= x3_1 x3) - (= conf_0_1 conf_0!) - (= x1_2 x1!) - (= x2_1 x2!) - (= x3_1 x3!) - (= d1 d1!) - (= d2 d2!) - (= d3 d3!) - (= conf_0 conf_0!) - (= x2 x2!) - (= x3 x3!) - ) - (and - (= conf_0_1 conf_0) - (= x1_2 x1) - (= x2_1 x2) - (= x3_1 x3) - (> x1_2 0) - (> x2_1 0) - (> x3_1 0) - (= x1_3 (- x1_2 d1_1)) - (= conf_0_2 (- 24 conf_0_1)) - (= x2_2 (- x2_1 d2_1)) - (= conf_0_3 828) - (= x3_2 (- x3_1 d3_1)) - (= conf_0_4 (+ conf_0_3 435)) - (= conf_0_5 conf_0_4) - (= x1_4 x1_3) - (= x2_3 x2_2) - (= x3_3 x3_2) - (= conf_0_5 conf_0!) - (= x1_4 x1!) - (= x2_3 x2!) - (= x3_3 x3!) - (= d1 d1_1) - (= d1! d1_1) - (= d2 d2_1) - (= d2! d2_1) - (= d3 d3_1) - (= d3! d3_1) - ) - (and - (= conf_0_1 conf_0) - (= x1_2 x1) - (= x2_1 x2) - (= x3_1 x3) - (> x1_2 0) - (> x2_1 0) - (not (> x3_1 0)) - (= conf_0_5 conf_0_1) - (= x1_4 x1_2) - (= x2_3 x2_1) - (= x3_3 x3_1) - (= conf_0_5 conf_0!) - (= x1_4 x1!) - (= x2_3 x2!) - (= x3_3 x3!) - (= d1 d1_1) - (= d1! d1_1) - (= d2 d2_1) - (= d2! d2_1) - (= d3 d3_1) - (= d3! d3_1) - ) - (and - (= conf_0_1 conf_0) - (= x1_2 x1) - (= x2_1 x2) - (= x3_1 x3) - (> x1_2 0) - (not (> x2_1 0)) - (= conf_0_5 conf_0_1) - (= x1_4 x1_2) - (= x2_3 x2_1) - (= x3_3 x3_1) - (= conf_0_5 conf_0!) - (= x1_4 x1!) - (= x2_3 x2!) - (= x3_3 x3!) - (= d1 d1_1) - (= d1! d1_1) - (= d2 d2_1) - (= d2! d2_1) - (= d3 d3_1) - (= d3! d3_1) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= x1_2 x1) (= x2_1 x2) (= x3_1 x3) (= conf_0_1 conf_0!) (= x1_2 x1!) (= x2_1 x2!) (= x3_1 x3!) (= d1 d1!) (= d2 d2!) (= d3 d3!) (= conf_0 conf_0!) (= x2 x2!) (= x3 x3!)) (and (= conf_0_1 conf_0) (= x1_2 x1) (= x2_1 x2) (= x3_1 x3) (> x1_2 0) (> x2_1 0) (> x3_1 0) (= x1_3 (- x1_2 d1_1)) (= conf_0_2 (- 24 conf_0_1)) (= x2_2 (- x2_1 d2_1)) (= conf_0_3 828) (= x3_2 (- x3_1 d3_1)) (= conf_0_4 (+ conf_0_3 435)) (= conf_0_5 conf_0_4) (= x1_4 x1_3) (= x2_3 x2_2) (= x3_3 x3_2) (= conf_0_5 conf_0!) (= x1_4 x1!) (= x2_3 x2!) (= x3_3 x3!) (= d1 d1_1) (= d1! d1_1) (= d2 d2_1) (= d2! d2_1) (= d3 d3_1) (= d3! d3_1)) (and (= conf_0_1 conf_0) (= x1_2 x1) (= x2_1 x2) (= x3_1 x3) (> x1_2 0) (> x2_1 0) (not (> x3_1 0)) (= conf_0_5 conf_0_1) (= x1_4 x1_2) (= x2_3 x2_1) (= x3_3 x3_1) (= conf_0_5 conf_0!) (= x1_4 x1!) (= x2_3 x2!) (= x3_3 x3!) (= d1 d1_1) (= d1! d1_1) (= d2 d2_1) (= d2! d2_1) (= d3 d3_1) (= d3! d3_1)) (and (= conf_0_1 conf_0) (= x1_2 x1) (= x2_1 x2) (= x3_1 x3) (> x1_2 0) (not (> x2_1 0)) (= conf_0_5 conf_0_1) (= x1_4 x1_2) (= x2_3 x2_1) (= x3_3 x3_1) (= conf_0_5 conf_0!) (= x1_4 x1!) (= x2_3 x2!) (= x3_3 x3!) (= d1 d1_1) (= d1! d1_1) (= d2 d2_1) (= d2! d2_1) (= d3 d3_1) (= d3! d3_1)))) (define-fun post-f ((d1 Int) (d2 Int) (d3 Int) (conf_0 Int) (x1 Int) (x2 Int) (x3 Int) (d1_0 Int) (d1_1 Int) (d2_0 Int) (d2_1 Int) (d3_0 Int) (d3_1 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (conf_0_5 Int) (x1_0 Int) (x1_1 Int) (x1_2 Int) (x1_3 Int) (x1_4 Int) (x2_0 Int) (x2_1 Int) (x2_2 Int) (x2_3 Int) (x3_0 Int) (x3_1 Int) (x3_2 Int) (x3_3 Int)) Bool - (or - (not - (and - (= d1 d1_1) - (= d2 d2_1) - (= d3 d3_1) - (= conf_0 conf_0_1) - (= x1 x1_2) - (= x2 x2_1) - (= x3 x3_1) - ) - ) - (not - (and - (not (> x1_2 0)) - (not (>= x2_1 0)) - ) - ) - ) -) + (or (not (and (= d1 d1_1) (= d2 d2_1) (= d3 d3_1) (= conf_0 conf_0_1) (= x1 x1_2) (= x2 x2_1) (= x3 x3_1))) (not (and (not (> x1_2 0)) (not (>= x2_1 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/130_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/130_conf5.sl index a2ff337..d9666b9 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/130_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/130_conf5.sl @@ -1,254 +1,15 @@ (set-logic LIA) -(declare-primed-var d1 Int) -(declare-primed-var d2 Int) -(declare-primed-var d3 Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var x1 Int) -(declare-primed-var x2 Int) -(declare-primed-var x3 Int) - -(declare-primed-var d1_0 Int) -(declare-primed-var d1_1 Int) -(declare-primed-var d2_0 Int) -(declare-primed-var d2_1 Int) -(declare-primed-var d3_0 Int) -(declare-primed-var d3_1 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_1_1 Int) -(declare-primed-var conf_1_2 Int) -(declare-primed-var conf_1_3 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_3_1 Int) -(declare-primed-var conf_3_2 Int) -(declare-primed-var conf_3_3 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var conf_4_1 Int) -(declare-primed-var conf_4_2 Int) -(declare-primed-var conf_4_3 Int) -(declare-primed-var x1_0 Int) -(declare-primed-var x1_1 Int) -(declare-primed-var x1_2 Int) -(declare-primed-var x1_3 Int) -(declare-primed-var x1_4 Int) -(declare-primed-var x2_0 Int) -(declare-primed-var x2_1 Int) -(declare-primed-var x2_2 Int) -(declare-primed-var x2_3 Int) -(declare-primed-var x3_0 Int) -(declare-primed-var x3_1 Int) -(declare-primed-var x3_2 Int) -(declare-primed-var x3_3 Int) - (synth-inv inv-f ((d1 Int) (d2 Int) (d3 Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x1 Int) (x2 Int) (x3 Int) (d1_0 Int) (d1_1 Int) (d2_0 Int) (d2_1 Int) (d3_0 Int) (d3_1 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (x1_0 Int) (x1_1 Int) (x1_2 Int) (x1_3 Int) (x1_4 Int) (x2_0 Int) (x2_1 Int) (x2_2 Int) (x2_3 Int) (x3_0 Int) (x3_1 Int) (x3_2 Int) (x3_3 Int))) (define-fun pre-f ((d1 Int) (d2 Int) (d3 Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x1 Int) (x2 Int) (x3 Int) (d1_0 Int) (d1_1 Int) (d2_0 Int) (d2_1 Int) (d3_0 Int) (d3_1 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (x1_0 Int) (x1_1 Int) (x1_2 Int) (x1_3 Int) (x1_4 Int) (x2_0 Int) (x2_1 Int) (x2_2 Int) (x2_3 Int) (x3_0 Int) (x3_1 Int) (x3_2 Int) (x3_3 Int)) Bool - (and - (= d1 d1_1) - (= d2 d2_1) - (= d3 d3_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x1 x1_1) - (= conf_0_0 4) - (= conf_1_0 8) - (= conf_2_0 5) - (= conf_3_0 9) - (= conf_4_0 7) - (= d1_1 1) - (= d2_1 1) - (= d3_1 1) - (= x1_1 1) - ) -) - + (and (= d1 d1_1) (= d2 d2_1) (= d3 d3_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x1 x1_1) (= conf_0_0 4) (= conf_1_0 8) (= conf_2_0 5) (= conf_3_0 9) (= conf_4_0 7) (= d1_1 1) (= d2_1 1) (= d3_1 1) (= x1_1 1))) (define-fun trans-f ((d1 Int) (d2 Int) (d3 Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x1 Int) (x2 Int) (x3 Int) (d1_0 Int) (d1_1 Int) (d2_0 Int) (d2_1 Int) (d3_0 Int) (d3_1 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (x1_0 Int) (x1_1 Int) (x1_2 Int) (x1_3 Int) (x1_4 Int) (x2_0 Int) (x2_1 Int) (x2_2 Int) (x2_3 Int) (x3_0 Int) (x3_1 Int) (x3_2 Int) (x3_3 Int) (d1! Int) (d2! Int) (d3! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (x1! Int) (x2! Int) (x3! Int) (d1_0! Int) (d1_1! Int) (d2_0! Int) (d2_1! Int) (d3_0! Int) (d3_1! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_1_1! Int) (conf_1_2! Int) (conf_1_3! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_3_1! Int) (conf_3_2! Int) (conf_3_3! Int) (conf_4_0! Int) (conf_4_1! Int) (conf_4_2! Int) (conf_4_3! Int) (x1_0! Int) (x1_1! Int) (x1_2! Int) (x1_3! Int) (x1_4! Int) (x2_0! Int) (x2_1! Int) (x2_2! Int) (x2_3! Int) (x3_0! Int) (x3_1! Int) (x3_2! Int) (x3_3! Int)) Bool - (or - (and - (= conf_1_1 conf_1) - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (= x1_2 x1) - (= x2_1 x2) - (= x3_1 x3) - (= conf_1_1 conf_1!) - (= conf_3_1 conf_3!) - (= conf_4_1 conf_4!) - (= x1_2 x1!) - (= x2_1 x2!) - (= x3_1 x3!) - (= d1 d1!) - (= d2 d2!) - (= d3 d3!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= x2 x2!) - (= x3 x3!) - ) - (and - (not (> x1_2 0)) - (not (>= x2_1 0)) - (= d1 d1_1) - (= d1! d1_1) - (= d2 d2_1) - (= d2! d2_1) - (= d3 d3_1) - (= d3! d3_1) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= x1 x1_1) - (= x1! x1_1) - (= x2 x2_0) - (= x2! x2_0) - (= x3 x3_0) - (= x3! x3_0) - ) - ) -) - + (or (and (= conf_1_1 conf_1) (= conf_3_1 conf_3) (= conf_4_1 conf_4) (= x1_2 x1) (= x2_1 x2) (= x3_1 x3) (= conf_1_1 conf_1!) (= conf_3_1 conf_3!) (= conf_4_1 conf_4!) (= x1_2 x1!) (= x2_1 x2!) (= x3_1 x3!) (= d1 d1!) (= d2 d2!) (= d3 d3!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= x2 x2!) (= x3 x3!)) (and (not (> x1_2 0)) (not (>= x2_1 0)) (= d1 d1_1) (= d1! d1_1) (= d2 d2_1) (= d2! d2_1) (= d3 d3_1) (= d3! d3_1) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= x1 x1_1) (= x1! x1_1) (= x2 x2_0) (= x2! x2_0) (= x3 x3_0) (= x3! x3_0)))) (define-fun post-f ((d1 Int) (d2 Int) (d3 Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x1 Int) (x2 Int) (x3 Int) (d1_0 Int) (d1_1 Int) (d2_0 Int) (d2_1 Int) (d3_0 Int) (d3_1 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (x1_0 Int) (x1_1 Int) (x1_2 Int) (x1_3 Int) (x1_4 Int) (x2_0 Int) (x2_1 Int) (x2_2 Int) (x2_3 Int) (x3_0 Int) (x3_1 Int) (x3_2 Int) (x3_3 Int)) Bool - (and - (or - (not - (and - (= d1 d1_1) - (= d2 d2_1) - (= d3 d3_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_1) - (= conf_2 conf_2_0) - (= conf_3 conf_3_1) - (= conf_4 conf_4_1) - (= x1 x1_2) - (= x2 x2_1) - (= x3 x3_1) - ) - ) - (not - (and - (not (> x1_2 0)) - (> x2_1 0) - (> x3_1 0) - (= x1_3 (- x1_2 d1_1)) - (= conf_1_2 (+ conf_4_1 828)) - (= x2_2 (- x2_1 d2_1)) - (= conf_4_2 (+ conf_4_1 435)) - (= x3_2 (- x3_1 d3_1)) - (= conf_3_2 (- conf_2_0 854)) - (= conf_1_3 conf_1_2) - (= conf_3_3 conf_3_2) - (= conf_4_3 conf_4_2) - (= x1_4 x1_3) - (= x2_3 x2_2) - (= x3_3 x3_2) - (= conf_1_1 conf_1_3) - (= conf_3_1 conf_3_3) - (= conf_4_1 conf_4_3) - (= x1_2 x1_4) - (= x2_1 x2_3) - (= x3_1 x3_3) - (not (> x1_2 0)) - (not (>= x2_1 0)) - ) - ) - ) - (or - (not - (and - (= d1 d1_1) - (= d2 d2_1) - (= d3 d3_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_1) - (= conf_2 conf_2_0) - (= conf_3 conf_3_1) - (= conf_4 conf_4_1) - (= x1 x1_2) - (= x2 x2_1) - (= x3 x3_1) - ) - ) - (not - (and - (not (> x1_2 0)) - (> x2_1 0) - (not (> x3_1 0)) - (= conf_1_3 conf_1_1) - (= conf_3_3 conf_3_1) - (= conf_4_3 conf_4_1) - (= x1_4 x1_2) - (= x2_3 x2_1) - (= x3_3 x3_1) - (= conf_1_1 conf_1_3) - (= conf_3_1 conf_3_3) - (= conf_4_1 conf_4_3) - (= x1_2 x1_4) - (= x2_1 x2_3) - (= x3_1 x3_3) - (not (> x1_2 0)) - (not (>= x2_1 0)) - ) - ) - ) - (or - (not - (and - (= d1 d1_1) - (= d2 d2_1) - (= d3 d3_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_1) - (= conf_2 conf_2_0) - (= conf_3 conf_3_1) - (= conf_4 conf_4_1) - (= x1 x1_2) - (= x2 x2_1) - (= x3 x3_1) - ) - ) - (not - (and - (not (> x1_2 0)) - (not (> x2_1 0)) - (= conf_1_3 conf_1_1) - (= conf_3_3 conf_3_1) - (= conf_4_3 conf_4_1) - (= x1_4 x1_2) - (= x2_3 x2_1) - (= x3_3 x3_1) - (= conf_1_1 conf_1_3) - (= conf_3_1 conf_3_3) - (= conf_4_1 conf_4_3) - (= x1_2 x1_4) - (= x2_1 x2_3) - (= x3_1 x3_3) - (not (> x1_2 0)) - (not (>= x2_1 0)) - ) - ) - ) - ) -) + (and (or (not (and (= d1 d1_1) (= d2 d2_1) (= d3 d3_1) (= conf_0 conf_0_0) (= conf_1 conf_1_1) (= conf_2 conf_2_0) (= conf_3 conf_3_1) (= conf_4 conf_4_1) (= x1 x1_2) (= x2 x2_1) (= x3 x3_1))) (not (and (not (> x1_2 0)) (> x2_1 0) (> x3_1 0) (= x1_3 (- x1_2 d1_1)) (= conf_1_2 (+ conf_4_1 828)) (= x2_2 (- x2_1 d2_1)) (= conf_4_2 (+ conf_4_1 435)) (= x3_2 (- x3_1 d3_1)) (= conf_3_2 (- conf_2_0 854)) (= conf_1_3 conf_1_2) (= conf_3_3 conf_3_2) (= conf_4_3 conf_4_2) (= x1_4 x1_3) (= x2_3 x2_2) (= x3_3 x3_2) (= conf_1_1 conf_1_3) (= conf_3_1 conf_3_3) (= conf_4_1 conf_4_3) (= x1_2 x1_4) (= x2_1 x2_3) (= x3_1 x3_3) (not (> x1_2 0)) (not (>= x2_1 0))))) (or (not (and (= d1 d1_1) (= d2 d2_1) (= d3 d3_1) (= conf_0 conf_0_0) (= conf_1 conf_1_1) (= conf_2 conf_2_0) (= conf_3 conf_3_1) (= conf_4 conf_4_1) (= x1 x1_2) (= x2 x2_1) (= x3 x3_1))) (not (and (not (> x1_2 0)) (> x2_1 0) (not (> x3_1 0)) (= conf_1_3 conf_1_1) (= conf_3_3 conf_3_1) (= conf_4_3 conf_4_1) (= x1_4 x1_2) (= x2_3 x2_1) (= x3_3 x3_1) (= conf_1_1 conf_1_3) (= conf_3_1 conf_3_3) (= conf_4_1 conf_4_3) (= x1_2 x1_4) (= x2_1 x2_3) (= x3_1 x3_3) (not (> x1_2 0)) (not (>= x2_1 0))))) (or (not (and (= d1 d1_1) (= d2 d2_1) (= d3 d3_1) (= conf_0 conf_0_0) (= conf_1 conf_1_1) (= conf_2 conf_2_0) (= conf_3 conf_3_1) (= conf_4 conf_4_1) (= x1 x1_2) (= x2 x2_1) (= x3 x3_1))) (not (and (not (> x1_2 0)) (not (> x2_1 0)) (= conf_1_3 conf_1_1) (= conf_3_3 conf_3_1) (= conf_4_3 conf_4_1) (= x1_4 x1_2) (= x2_3 x2_1) (= x3_3 x3_1) (= conf_1_1 conf_1_3) (= conf_3_1 conf_3_3) (= conf_4_1 conf_4_3) (= x1_2 x1_4) (= x2_1 x2_3) (= x3_1 x3_3) (not (> x1_2 0)) (not (>= x2_1 0))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/131.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/131.c.sl index a287204..e6e4b4c 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/131.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/131.c.sl @@ -1,143 +1,15 @@ (set-logic LIA) -(declare-primed-var d1 Int) -(declare-primed-var d2 Int) -(declare-primed-var d3 Int) -(declare-primed-var x1 Int) -(declare-primed-var x2 Int) -(declare-primed-var x3 Int) - -(declare-primed-var d1_0 Int) -(declare-primed-var d2_0 Int) -(declare-primed-var d3_0 Int) -(declare-primed-var x1_0 Int) -(declare-primed-var x1_1 Int) -(declare-primed-var x1_2 Int) -(declare-primed-var x1_3 Int) -(declare-primed-var x2_0 Int) -(declare-primed-var x2_1 Int) -(declare-primed-var x2_2 Int) -(declare-primed-var x2_3 Int) -(declare-primed-var x3_0 Int) -(declare-primed-var x3_1 Int) -(declare-primed-var x3_2 Int) -(declare-primed-var x3_3 Int) - (synth-inv inv-f ((d1 Int) (d2 Int) (d3 Int) (x1 Int) (x2 Int) (x3 Int) (d1_0 Int) (d2_0 Int) (d3_0 Int) (x1_0 Int) (x1_1 Int) (x1_2 Int) (x1_3 Int) (x2_0 Int) (x2_1 Int) (x2_2 Int) (x2_3 Int) (x3_0 Int) (x3_1 Int) (x3_2 Int) (x3_3 Int))) (define-fun pre-f ((d1 Int) (d2 Int) (d3 Int) (x1 Int) (x2 Int) (x3 Int) (d1_0 Int) (d2_0 Int) (d3_0 Int) (x1_0 Int) (x1_1 Int) (x1_2 Int) (x1_3 Int) (x2_0 Int) (x2_1 Int) (x2_2 Int) (x2_3 Int) (x3_0 Int) (x3_1 Int) (x3_2 Int) (x3_3 Int)) Bool - (and - (= d1 d1_0) - (= d2 d2_0) - (= d3 d3_0) - (= x1 x1_0) - (= d1_0 1) - (= d2_0 1) - (= d3_0 1) - (= x1_0 1) - ) -) - + (and (= d1 d1_0) (= d2 d2_0) (= d3 d3_0) (= x1 x1_0) (= d1_0 1) (= d2_0 1) (= d3_0 1) (= x1_0 1))) (define-fun trans-f ((d1 Int) (d2 Int) (d3 Int) (x1 Int) (x2 Int) (x3 Int) (d1_0 Int) (d2_0 Int) (d3_0 Int) (x1_0 Int) (x1_1 Int) (x1_2 Int) (x1_3 Int) (x2_0 Int) (x2_1 Int) (x2_2 Int) (x2_3 Int) (x3_0 Int) (x3_1 Int) (x3_2 Int) (x3_3 Int) (d1! Int) (d2! Int) (d3! Int) (x1! Int) (x2! Int) (x3! Int) (d1_0! Int) (d2_0! Int) (d3_0! Int) (x1_0! Int) (x1_1! Int) (x1_2! Int) (x1_3! Int) (x2_0! Int) (x2_1! Int) (x2_2! Int) (x2_3! Int) (x3_0! Int) (x3_1! Int) (x3_2! Int) (x3_3! Int)) Bool - (or - (and - (= x1_1 x1) - (= x2_1 x2) - (= x3_1 x3) - (= x1_1 x1!) - (= x2_1 x2!) - (= x3_1 x3!) - (= d1 d1!) - (= d2 d2!) - (= d3 d3!) - (= x2 x2!) - (= x3 x3!) - ) - (and - (= x1_1 x1) - (= x2_1 x2) - (= x3_1 x3) - (> x1_1 0) - (> x2_1 0) - (> x3_1 0) - (= x1_2 (- x1_1 d1_0)) - (= x2_2 (- x2_1 d2_0)) - (= x3_2 (- x3_1 d3_0)) - (= x1_3 x1_2) - (= x2_3 x2_2) - (= x3_3 x3_2) - (= x1_3 x1!) - (= x2_3 x2!) - (= x3_3 x3!) - (= d1 d1_0) - (= d1! d1_0) - (= d2 d2_0) - (= d2! d2_0) - (= d3 d3_0) - (= d3! d3_0) - ) - (and - (= x1_1 x1) - (= x2_1 x2) - (= x3_1 x3) - (> x1_1 0) - (> x2_1 0) - (not (> x3_1 0)) - (= x1_3 x1_1) - (= x2_3 x2_1) - (= x3_3 x3_1) - (= x1_3 x1!) - (= x2_3 x2!) - (= x3_3 x3!) - (= d1 d1_0) - (= d1! d1_0) - (= d2 d2_0) - (= d2! d2_0) - (= d3 d3_0) - (= d3! d3_0) - ) - (and - (= x1_1 x1) - (= x2_1 x2) - (= x3_1 x3) - (> x1_1 0) - (not (> x2_1 0)) - (= x1_3 x1_1) - (= x2_3 x2_1) - (= x3_3 x3_1) - (= x1_3 x1!) - (= x2_3 x2!) - (= x3_3 x3!) - (= d1 d1_0) - (= d1! d1_0) - (= d2 d2_0) - (= d2! d2_0) - (= d3 d3_0) - (= d3! d3_0) - ) - ) -) - + (or (and (= x1_1 x1) (= x2_1 x2) (= x3_1 x3) (= x1_1 x1!) (= x2_1 x2!) (= x3_1 x3!) (= d1 d1!) (= d2 d2!) (= d3 d3!) (= x2 x2!) (= x3 x3!)) (and (= x1_1 x1) (= x2_1 x2) (= x3_1 x3) (> x1_1 0) (> x2_1 0) (> x3_1 0) (= x1_2 (- x1_1 d1_0)) (= x2_2 (- x2_1 d2_0)) (= x3_2 (- x3_1 d3_0)) (= x1_3 x1_2) (= x2_3 x2_2) (= x3_3 x3_2) (= x1_3 x1!) (= x2_3 x2!) (= x3_3 x3!) (= d1 d1_0) (= d1! d1_0) (= d2 d2_0) (= d2! d2_0) (= d3 d3_0) (= d3! d3_0)) (and (= x1_1 x1) (= x2_1 x2) (= x3_1 x3) (> x1_1 0) (> x2_1 0) (not (> x3_1 0)) (= x1_3 x1_1) (= x2_3 x2_1) (= x3_3 x3_1) (= x1_3 x1!) (= x2_3 x2!) (= x3_3 x3!) (= d1 d1_0) (= d1! d1_0) (= d2 d2_0) (= d2! d2_0) (= d3 d3_0) (= d3! d3_0)) (and (= x1_1 x1) (= x2_1 x2) (= x3_1 x3) (> x1_1 0) (not (> x2_1 0)) (= x1_3 x1_1) (= x2_3 x2_1) (= x3_3 x3_1) (= x1_3 x1!) (= x2_3 x2!) (= x3_3 x3!) (= d1 d1_0) (= d1! d1_0) (= d2 d2_0) (= d2! d2_0) (= d3 d3_0) (= d3! d3_0)))) (define-fun post-f ((d1 Int) (d2 Int) (d3 Int) (x1 Int) (x2 Int) (x3 Int) (d1_0 Int) (d2_0 Int) (d3_0 Int) (x1_0 Int) (x1_1 Int) (x1_2 Int) (x1_3 Int) (x2_0 Int) (x2_1 Int) (x2_2 Int) (x2_3 Int) (x3_0 Int) (x3_1 Int) (x3_2 Int) (x3_3 Int)) Bool - (or - (not - (and - (= d1 d1_0) - (= d2 d2_0) - (= d3 d3_0) - (= x1 x1_1) - (= x2 x2_1) - (= x3 x3_1) - ) - ) - (not - (and - (not (> x1_1 0)) - (not (>= x3_1 0)) - ) - ) - ) -) + (or (not (and (= d1 d1_0) (= d2 d2_0) (= d3 d3_0) (= x1 x1_1) (= x2 x2_1) (= x3 x3_1))) (not (and (not (> x1_1 0)) (not (>= x3_1 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/131_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/131_conf1.sl index da7f672..e6800f2 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/131_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/131_conf1.sl @@ -1,172 +1,15 @@ (set-logic LIA) -(declare-primed-var d1 Int) -(declare-primed-var d2 Int) -(declare-primed-var d3 Int) -(declare-primed-var conf_0 Int) -(declare-primed-var x1 Int) -(declare-primed-var x2 Int) -(declare-primed-var x3 Int) - -(declare-primed-var d1_0 Int) -(declare-primed-var d1_1 Int) -(declare-primed-var d2_0 Int) -(declare-primed-var d2_1 Int) -(declare-primed-var d3_0 Int) -(declare-primed-var d3_1 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) -(declare-primed-var conf_0_5 Int) -(declare-primed-var x1_0 Int) -(declare-primed-var x1_1 Int) -(declare-primed-var x1_2 Int) -(declare-primed-var x1_3 Int) -(declare-primed-var x1_4 Int) -(declare-primed-var x2_0 Int) -(declare-primed-var x2_1 Int) -(declare-primed-var x2_2 Int) -(declare-primed-var x2_3 Int) -(declare-primed-var x3_0 Int) -(declare-primed-var x3_1 Int) -(declare-primed-var x3_2 Int) -(declare-primed-var x3_3 Int) - (synth-inv inv-f ((d1 Int) (d2 Int) (d3 Int) (conf_0 Int) (x1 Int) (x2 Int) (x3 Int) (d1_0 Int) (d1_1 Int) (d2_0 Int) (d2_1 Int) (d3_0 Int) (d3_1 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (conf_0_5 Int) (x1_0 Int) (x1_1 Int) (x1_2 Int) (x1_3 Int) (x1_4 Int) (x2_0 Int) (x2_1 Int) (x2_2 Int) (x2_3 Int) (x3_0 Int) (x3_1 Int) (x3_2 Int) (x3_3 Int))) (define-fun pre-f ((d1 Int) (d2 Int) (d3 Int) (conf_0 Int) (x1 Int) (x2 Int) (x3 Int) (d1_0 Int) (d1_1 Int) (d2_0 Int) (d2_1 Int) (d3_0 Int) (d3_1 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (conf_0_5 Int) (x1_0 Int) (x1_1 Int) (x1_2 Int) (x1_3 Int) (x1_4 Int) (x2_0 Int) (x2_1 Int) (x2_2 Int) (x2_3 Int) (x3_0 Int) (x3_1 Int) (x3_2 Int) (x3_3 Int)) Bool - (and - (= d1 d1_1) - (= d2 d2_1) - (= d3 d3_1) - (= conf_0 conf_0_0) - (= x1 x1_1) - (= conf_0_0 7) - (= d1_1 1) - (= d2_1 1) - (= d3_1 1) - (= x1_1 1) - ) -) - + (and (= d1 d1_1) (= d2 d2_1) (= d3 d3_1) (= conf_0 conf_0_0) (= x1 x1_1) (= conf_0_0 7) (= d1_1 1) (= d2_1 1) (= d3_1 1) (= x1_1 1))) (define-fun trans-f ((d1 Int) (d2 Int) (d3 Int) (conf_0 Int) (x1 Int) (x2 Int) (x3 Int) (d1_0 Int) (d1_1 Int) (d2_0 Int) (d2_1 Int) (d3_0 Int) (d3_1 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (conf_0_5 Int) (x1_0 Int) (x1_1 Int) (x1_2 Int) (x1_3 Int) (x1_4 Int) (x2_0 Int) (x2_1 Int) (x2_2 Int) (x2_3 Int) (x3_0 Int) (x3_1 Int) (x3_2 Int) (x3_3 Int) (d1! Int) (d2! Int) (d3! Int) (conf_0! Int) (x1! Int) (x2! Int) (x3! Int) (d1_0! Int) (d1_1! Int) (d2_0! Int) (d2_1! Int) (d3_0! Int) (d3_1! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int) (conf_0_5! Int) (x1_0! Int) (x1_1! Int) (x1_2! Int) (x1_3! Int) (x1_4! Int) (x2_0! Int) (x2_1! Int) (x2_2! Int) (x2_3! Int) (x3_0! Int) (x3_1! Int) (x3_2! Int) (x3_3! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= x1_2 x1) - (= x2_1 x2) - (= x3_1 x3) - (= conf_0_1 conf_0!) - (= x1_2 x1!) - (= x2_1 x2!) - (= x3_1 x3!) - (= d1 d1!) - (= d2 d2!) - (= d3 d3!) - (= conf_0 conf_0!) - (= x2 x2!) - (= x3 x3!) - ) - (and - (= conf_0_1 conf_0) - (= x1_2 x1) - (= x2_1 x2) - (= x3_1 x3) - (> x1_2 0) - (> x2_1 0) - (> x3_1 0) - (= x1_3 (- x1_2 d1_1)) - (= conf_0_2 (- 24 conf_0_1)) - (= x2_2 (- x2_1 d2_1)) - (= conf_0_3 828) - (= x3_2 (- x3_1 d3_1)) - (= conf_0_4 (+ conf_0_3 435)) - (= conf_0_5 conf_0_4) - (= x1_4 x1_3) - (= x2_3 x2_2) - (= x3_3 x3_2) - (= conf_0_5 conf_0!) - (= x1_4 x1!) - (= x2_3 x2!) - (= x3_3 x3!) - (= d1 d1_1) - (= d1! d1_1) - (= d2 d2_1) - (= d2! d2_1) - (= d3 d3_1) - (= d3! d3_1) - ) - (and - (= conf_0_1 conf_0) - (= x1_2 x1) - (= x2_1 x2) - (= x3_1 x3) - (> x1_2 0) - (> x2_1 0) - (not (> x3_1 0)) - (= conf_0_5 conf_0_1) - (= x1_4 x1_2) - (= x2_3 x2_1) - (= x3_3 x3_1) - (= conf_0_5 conf_0!) - (= x1_4 x1!) - (= x2_3 x2!) - (= x3_3 x3!) - (= d1 d1_1) - (= d1! d1_1) - (= d2 d2_1) - (= d2! d2_1) - (= d3 d3_1) - (= d3! d3_1) - ) - (and - (= conf_0_1 conf_0) - (= x1_2 x1) - (= x2_1 x2) - (= x3_1 x3) - (> x1_2 0) - (not (> x2_1 0)) - (= conf_0_5 conf_0_1) - (= x1_4 x1_2) - (= x2_3 x2_1) - (= x3_3 x3_1) - (= conf_0_5 conf_0!) - (= x1_4 x1!) - (= x2_3 x2!) - (= x3_3 x3!) - (= d1 d1_1) - (= d1! d1_1) - (= d2 d2_1) - (= d2! d2_1) - (= d3 d3_1) - (= d3! d3_1) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= x1_2 x1) (= x2_1 x2) (= x3_1 x3) (= conf_0_1 conf_0!) (= x1_2 x1!) (= x2_1 x2!) (= x3_1 x3!) (= d1 d1!) (= d2 d2!) (= d3 d3!) (= conf_0 conf_0!) (= x2 x2!) (= x3 x3!)) (and (= conf_0_1 conf_0) (= x1_2 x1) (= x2_1 x2) (= x3_1 x3) (> x1_2 0) (> x2_1 0) (> x3_1 0) (= x1_3 (- x1_2 d1_1)) (= conf_0_2 (- 24 conf_0_1)) (= x2_2 (- x2_1 d2_1)) (= conf_0_3 828) (= x3_2 (- x3_1 d3_1)) (= conf_0_4 (+ conf_0_3 435)) (= conf_0_5 conf_0_4) (= x1_4 x1_3) (= x2_3 x2_2) (= x3_3 x3_2) (= conf_0_5 conf_0!) (= x1_4 x1!) (= x2_3 x2!) (= x3_3 x3!) (= d1 d1_1) (= d1! d1_1) (= d2 d2_1) (= d2! d2_1) (= d3 d3_1) (= d3! d3_1)) (and (= conf_0_1 conf_0) (= x1_2 x1) (= x2_1 x2) (= x3_1 x3) (> x1_2 0) (> x2_1 0) (not (> x3_1 0)) (= conf_0_5 conf_0_1) (= x1_4 x1_2) (= x2_3 x2_1) (= x3_3 x3_1) (= conf_0_5 conf_0!) (= x1_4 x1!) (= x2_3 x2!) (= x3_3 x3!) (= d1 d1_1) (= d1! d1_1) (= d2 d2_1) (= d2! d2_1) (= d3 d3_1) (= d3! d3_1)) (and (= conf_0_1 conf_0) (= x1_2 x1) (= x2_1 x2) (= x3_1 x3) (> x1_2 0) (not (> x2_1 0)) (= conf_0_5 conf_0_1) (= x1_4 x1_2) (= x2_3 x2_1) (= x3_3 x3_1) (= conf_0_5 conf_0!) (= x1_4 x1!) (= x2_3 x2!) (= x3_3 x3!) (= d1 d1_1) (= d1! d1_1) (= d2 d2_1) (= d2! d2_1) (= d3 d3_1) (= d3! d3_1)))) (define-fun post-f ((d1 Int) (d2 Int) (d3 Int) (conf_0 Int) (x1 Int) (x2 Int) (x3 Int) (d1_0 Int) (d1_1 Int) (d2_0 Int) (d2_1 Int) (d3_0 Int) (d3_1 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (conf_0_5 Int) (x1_0 Int) (x1_1 Int) (x1_2 Int) (x1_3 Int) (x1_4 Int) (x2_0 Int) (x2_1 Int) (x2_2 Int) (x2_3 Int) (x3_0 Int) (x3_1 Int) (x3_2 Int) (x3_3 Int)) Bool - (or - (not - (and - (= d1 d1_1) - (= d2 d2_1) - (= d3 d3_1) - (= conf_0 conf_0_1) - (= x1 x1_2) - (= x2 x2_1) - (= x3 x3_1) - ) - ) - (not - (and - (not (> x1_2 0)) - (not (>= x3_1 0)) - ) - ) - ) -) + (or (not (and (= d1 d1_1) (= d2 d2_1) (= d3 d3_1) (= conf_0 conf_0_1) (= x1 x1_2) (= x2 x2_1) (= x3 x3_1))) (not (and (not (> x1_2 0)) (not (>= x3_1 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/131_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/131_conf5.sl index 2690403..b24aa2d 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/131_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/131_conf5.sl @@ -1,254 +1,15 @@ (set-logic LIA) -(declare-primed-var d1 Int) -(declare-primed-var d2 Int) -(declare-primed-var d3 Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var x1 Int) -(declare-primed-var x2 Int) -(declare-primed-var x3 Int) - -(declare-primed-var d1_0 Int) -(declare-primed-var d1_1 Int) -(declare-primed-var d2_0 Int) -(declare-primed-var d2_1 Int) -(declare-primed-var d3_0 Int) -(declare-primed-var d3_1 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_1_1 Int) -(declare-primed-var conf_1_2 Int) -(declare-primed-var conf_1_3 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_3_1 Int) -(declare-primed-var conf_3_2 Int) -(declare-primed-var conf_3_3 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var conf_4_1 Int) -(declare-primed-var conf_4_2 Int) -(declare-primed-var conf_4_3 Int) -(declare-primed-var x1_0 Int) -(declare-primed-var x1_1 Int) -(declare-primed-var x1_2 Int) -(declare-primed-var x1_3 Int) -(declare-primed-var x1_4 Int) -(declare-primed-var x2_0 Int) -(declare-primed-var x2_1 Int) -(declare-primed-var x2_2 Int) -(declare-primed-var x2_3 Int) -(declare-primed-var x3_0 Int) -(declare-primed-var x3_1 Int) -(declare-primed-var x3_2 Int) -(declare-primed-var x3_3 Int) - (synth-inv inv-f ((d1 Int) (d2 Int) (d3 Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x1 Int) (x2 Int) (x3 Int) (d1_0 Int) (d1_1 Int) (d2_0 Int) (d2_1 Int) (d3_0 Int) (d3_1 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (x1_0 Int) (x1_1 Int) (x1_2 Int) (x1_3 Int) (x1_4 Int) (x2_0 Int) (x2_1 Int) (x2_2 Int) (x2_3 Int) (x3_0 Int) (x3_1 Int) (x3_2 Int) (x3_3 Int))) (define-fun pre-f ((d1 Int) (d2 Int) (d3 Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x1 Int) (x2 Int) (x3 Int) (d1_0 Int) (d1_1 Int) (d2_0 Int) (d2_1 Int) (d3_0 Int) (d3_1 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (x1_0 Int) (x1_1 Int) (x1_2 Int) (x1_3 Int) (x1_4 Int) (x2_0 Int) (x2_1 Int) (x2_2 Int) (x2_3 Int) (x3_0 Int) (x3_1 Int) (x3_2 Int) (x3_3 Int)) Bool - (and - (= d1 d1_1) - (= d2 d2_1) - (= d3 d3_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x1 x1_1) - (= conf_0_0 4) - (= conf_1_0 8) - (= conf_2_0 5) - (= conf_3_0 9) - (= conf_4_0 7) - (= d1_1 1) - (= d2_1 1) - (= d3_1 1) - (= x1_1 1) - ) -) - + (and (= d1 d1_1) (= d2 d2_1) (= d3 d3_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x1 x1_1) (= conf_0_0 4) (= conf_1_0 8) (= conf_2_0 5) (= conf_3_0 9) (= conf_4_0 7) (= d1_1 1) (= d2_1 1) (= d3_1 1) (= x1_1 1))) (define-fun trans-f ((d1 Int) (d2 Int) (d3 Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x1 Int) (x2 Int) (x3 Int) (d1_0 Int) (d1_1 Int) (d2_0 Int) (d2_1 Int) (d3_0 Int) (d3_1 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (x1_0 Int) (x1_1 Int) (x1_2 Int) (x1_3 Int) (x1_4 Int) (x2_0 Int) (x2_1 Int) (x2_2 Int) (x2_3 Int) (x3_0 Int) (x3_1 Int) (x3_2 Int) (x3_3 Int) (d1! Int) (d2! Int) (d3! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (x1! Int) (x2! Int) (x3! Int) (d1_0! Int) (d1_1! Int) (d2_0! Int) (d2_1! Int) (d3_0! Int) (d3_1! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_1_1! Int) (conf_1_2! Int) (conf_1_3! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_3_1! Int) (conf_3_2! Int) (conf_3_3! Int) (conf_4_0! Int) (conf_4_1! Int) (conf_4_2! Int) (conf_4_3! Int) (x1_0! Int) (x1_1! Int) (x1_2! Int) (x1_3! Int) (x1_4! Int) (x2_0! Int) (x2_1! Int) (x2_2! Int) (x2_3! Int) (x3_0! Int) (x3_1! Int) (x3_2! Int) (x3_3! Int)) Bool - (or - (and - (= conf_1_1 conf_1) - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (= x1_2 x1) - (= x2_1 x2) - (= x3_1 x3) - (= conf_1_1 conf_1!) - (= conf_3_1 conf_3!) - (= conf_4_1 conf_4!) - (= x1_2 x1!) - (= x2_1 x2!) - (= x3_1 x3!) - (= d1 d1!) - (= d2 d2!) - (= d3 d3!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= x2 x2!) - (= x3 x3!) - ) - (and - (not (> x1_2 0)) - (not (>= x3_1 0)) - (= d1 d1_1) - (= d1! d1_1) - (= d2 d2_1) - (= d2! d2_1) - (= d3 d3_1) - (= d3! d3_1) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= x1 x1_1) - (= x1! x1_1) - (= x2 x2_0) - (= x2! x2_0) - (= x3 x3_0) - (= x3! x3_0) - ) - ) -) - + (or (and (= conf_1_1 conf_1) (= conf_3_1 conf_3) (= conf_4_1 conf_4) (= x1_2 x1) (= x2_1 x2) (= x3_1 x3) (= conf_1_1 conf_1!) (= conf_3_1 conf_3!) (= conf_4_1 conf_4!) (= x1_2 x1!) (= x2_1 x2!) (= x3_1 x3!) (= d1 d1!) (= d2 d2!) (= d3 d3!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= x2 x2!) (= x3 x3!)) (and (not (> x1_2 0)) (not (>= x3_1 0)) (= d1 d1_1) (= d1! d1_1) (= d2 d2_1) (= d2! d2_1) (= d3 d3_1) (= d3! d3_1) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= x1 x1_1) (= x1! x1_1) (= x2 x2_0) (= x2! x2_0) (= x3 x3_0) (= x3! x3_0)))) (define-fun post-f ((d1 Int) (d2 Int) (d3 Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x1 Int) (x2 Int) (x3 Int) (d1_0 Int) (d1_1 Int) (d2_0 Int) (d2_1 Int) (d3_0 Int) (d3_1 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (x1_0 Int) (x1_1 Int) (x1_2 Int) (x1_3 Int) (x1_4 Int) (x2_0 Int) (x2_1 Int) (x2_2 Int) (x2_3 Int) (x3_0 Int) (x3_1 Int) (x3_2 Int) (x3_3 Int)) Bool - (and - (or - (not - (and - (= d1 d1_1) - (= d2 d2_1) - (= d3 d3_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_1) - (= conf_2 conf_2_0) - (= conf_3 conf_3_1) - (= conf_4 conf_4_1) - (= x1 x1_2) - (= x2 x2_1) - (= x3 x3_1) - ) - ) - (not - (and - (not (> x1_2 0)) - (> x2_1 0) - (> x3_1 0) - (= x1_3 (- x1_2 d1_1)) - (= conf_1_2 (+ conf_4_1 828)) - (= x2_2 (- x2_1 d2_1)) - (= conf_4_2 (+ conf_4_1 435)) - (= x3_2 (- x3_1 d3_1)) - (= conf_3_2 (- conf_2_0 854)) - (= conf_1_3 conf_1_2) - (= conf_3_3 conf_3_2) - (= conf_4_3 conf_4_2) - (= x1_4 x1_3) - (= x2_3 x2_2) - (= x3_3 x3_2) - (= conf_1_1 conf_1_3) - (= conf_3_1 conf_3_3) - (= conf_4_1 conf_4_3) - (= x1_2 x1_4) - (= x2_1 x2_3) - (= x3_1 x3_3) - (not (> x1_2 0)) - (not (>= x3_1 0)) - ) - ) - ) - (or - (not - (and - (= d1 d1_1) - (= d2 d2_1) - (= d3 d3_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_1) - (= conf_2 conf_2_0) - (= conf_3 conf_3_1) - (= conf_4 conf_4_1) - (= x1 x1_2) - (= x2 x2_1) - (= x3 x3_1) - ) - ) - (not - (and - (not (> x1_2 0)) - (> x2_1 0) - (not (> x3_1 0)) - (= conf_1_3 conf_1_1) - (= conf_3_3 conf_3_1) - (= conf_4_3 conf_4_1) - (= x1_4 x1_2) - (= x2_3 x2_1) - (= x3_3 x3_1) - (= conf_1_1 conf_1_3) - (= conf_3_1 conf_3_3) - (= conf_4_1 conf_4_3) - (= x1_2 x1_4) - (= x2_1 x2_3) - (= x3_1 x3_3) - (not (> x1_2 0)) - (not (>= x3_1 0)) - ) - ) - ) - (or - (not - (and - (= d1 d1_1) - (= d2 d2_1) - (= d3 d3_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_1) - (= conf_2 conf_2_0) - (= conf_3 conf_3_1) - (= conf_4 conf_4_1) - (= x1 x1_2) - (= x2 x2_1) - (= x3 x3_1) - ) - ) - (not - (and - (not (> x1_2 0)) - (not (> x2_1 0)) - (= conf_1_3 conf_1_1) - (= conf_3_3 conf_3_1) - (= conf_4_3 conf_4_1) - (= x1_4 x1_2) - (= x2_3 x2_1) - (= x3_3 x3_1) - (= conf_1_1 conf_1_3) - (= conf_3_1 conf_3_3) - (= conf_4_1 conf_4_3) - (= x1_2 x1_4) - (= x2_1 x2_3) - (= x3_1 x3_3) - (not (> x1_2 0)) - (not (>= x3_1 0)) - ) - ) - ) - ) -) + (and (or (not (and (= d1 d1_1) (= d2 d2_1) (= d3 d3_1) (= conf_0 conf_0_0) (= conf_1 conf_1_1) (= conf_2 conf_2_0) (= conf_3 conf_3_1) (= conf_4 conf_4_1) (= x1 x1_2) (= x2 x2_1) (= x3 x3_1))) (not (and (not (> x1_2 0)) (> x2_1 0) (> x3_1 0) (= x1_3 (- x1_2 d1_1)) (= conf_1_2 (+ conf_4_1 828)) (= x2_2 (- x2_1 d2_1)) (= conf_4_2 (+ conf_4_1 435)) (= x3_2 (- x3_1 d3_1)) (= conf_3_2 (- conf_2_0 854)) (= conf_1_3 conf_1_2) (= conf_3_3 conf_3_2) (= conf_4_3 conf_4_2) (= x1_4 x1_3) (= x2_3 x2_2) (= x3_3 x3_2) (= conf_1_1 conf_1_3) (= conf_3_1 conf_3_3) (= conf_4_1 conf_4_3) (= x1_2 x1_4) (= x2_1 x2_3) (= x3_1 x3_3) (not (> x1_2 0)) (not (>= x3_1 0))))) (or (not (and (= d1 d1_1) (= d2 d2_1) (= d3 d3_1) (= conf_0 conf_0_0) (= conf_1 conf_1_1) (= conf_2 conf_2_0) (= conf_3 conf_3_1) (= conf_4 conf_4_1) (= x1 x1_2) (= x2 x2_1) (= x3 x3_1))) (not (and (not (> x1_2 0)) (> x2_1 0) (not (> x3_1 0)) (= conf_1_3 conf_1_1) (= conf_3_3 conf_3_1) (= conf_4_3 conf_4_1) (= x1_4 x1_2) (= x2_3 x2_1) (= x3_3 x3_1) (= conf_1_1 conf_1_3) (= conf_3_1 conf_3_3) (= conf_4_1 conf_4_3) (= x1_2 x1_4) (= x2_1 x2_3) (= x3_1 x3_3) (not (> x1_2 0)) (not (>= x3_1 0))))) (or (not (and (= d1 d1_1) (= d2 d2_1) (= d3 d3_1) (= conf_0 conf_0_0) (= conf_1 conf_1_1) (= conf_2 conf_2_0) (= conf_3 conf_3_1) (= conf_4 conf_4_1) (= x1 x1_2) (= x2 x2_1) (= x3 x3_1))) (not (and (not (> x1_2 0)) (not (> x2_1 0)) (= conf_1_3 conf_1_1) (= conf_3_3 conf_3_1) (= conf_4_3 conf_4_1) (= x1_4 x1_2) (= x2_3 x2_1) (= x3_3 x3_1) (= conf_1_1 conf_1_3) (= conf_3_1 conf_3_3) (= conf_4_1 conf_4_3) (= x1_2 x1_4) (= x2_1 x2_3) (= x3_1 x3_3) (not (> x1_2 0)) (not (>= x3_1 0))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/132.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/132.c.sl index 67736a8..cc37104 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/132.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/132.c.sl @@ -1,119 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var t Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var j_0 Int) -(declare-primed-var j_1 Int) -(declare-primed-var j_2 Int) -(declare-primed-var j_3 Int) -(declare-primed-var t_0 Int) -(declare-primed-var t_1 Int) -(declare-primed-var t_2 Int) -(declare-primed-var t_3 Int) - (synth-inv inv-f ((c Int) (i Int) (j Int) (t Int) (tmp Int) (c_0 Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (t_0 Int) (t_1 Int) (t_2 Int) (t_3 Int))) (define-fun pre-f ((c Int) (i Int) (j Int) (t Int) (tmp Int) (c_0 Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (t_0 Int) (t_1 Int) (t_2 Int) (t_3 Int)) Bool - (and - (= i i_0) - (= i_0 0) - ) -) - + (and (= i i_0) (= i_0 0))) (define-fun trans-f ((c Int) (i Int) (j Int) (t Int) (tmp Int) (c_0 Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (t_0 Int) (t_1 Int) (t_2 Int) (t_3 Int) (c! Int) (i! Int) (j! Int) (t! Int) (tmp! Int) (c_0! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (j_0! Int) (j_1! Int) (j_2! Int) (j_3! Int) (t_0! Int) (t_1! Int) (t_2! Int) (t_3! Int)) Bool - (or - (and - (= i_1 i) - (= j_1 j) - (= t_1 t) - (= i_1 i!) - (= j_1 j!) - (= t_1 t!) - (= c c!) - (= i i!) - (= j j!) - (= t t!) - (= tmp tmp!) - ) - (and - (= i_1 i) - (= j_1 j) - (= t_1 t) - (> c_0 48) - (< c_0 57) - (= j_2 (+ i_1 i_1)) - (= t_2 (- c_0 48)) - (= i_2 (+ j_2 t_2)) - (= i_3 i_2) - (= j_3 j_2) - (= t_3 t_2) - (= i_3 i!) - (= j_3 j!) - (= t_3 t!) - (= c c_0) - (= c! c_0) - (= tmp tmp!) - ) - (and - (= i_1 i) - (= j_1 j) - (= t_1 t) - (> c_0 48) - (not (< c_0 57)) - (= i_3 i_1) - (= j_3 j_1) - (= t_3 t_1) - (= i_3 i!) - (= j_3 j!) - (= t_3 t!) - (= c c_0) - (= c! c_0) - (= tmp tmp!) - ) - (and - (= i_1 i) - (= j_1 j) - (= t_1 t) - (not (> c_0 48)) - (= i_3 i_1) - (= j_3 j_1) - (= t_3 t_1) - (= i_3 i!) - (= j_3 j!) - (= t_3 t!) - (= c c_0) - (= c! c_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= i_1 i) (= j_1 j) (= t_1 t) (= i_1 i!) (= j_1 j!) (= t_1 t!) (= c c!) (= i i!) (= j j!) (= t t!) (= tmp tmp!)) (and (= i_1 i) (= j_1 j) (= t_1 t) (> c_0 48) (< c_0 57) (= j_2 (+ i_1 i_1)) (= t_2 (- c_0 48)) (= i_2 (+ j_2 t_2)) (= i_3 i_2) (= j_3 j_2) (= t_3 t_2) (= i_3 i!) (= j_3 j!) (= t_3 t!) (= c c_0) (= c! c_0) (= tmp tmp!)) (and (= i_1 i) (= j_1 j) (= t_1 t) (> c_0 48) (not (< c_0 57)) (= i_3 i_1) (= j_3 j_1) (= t_3 t_1) (= i_3 i!) (= j_3 j!) (= t_3 t!) (= c c_0) (= c! c_0) (= tmp tmp!)) (and (= i_1 i) (= j_1 j) (= t_1 t) (not (> c_0 48)) (= i_3 i_1) (= j_3 j_1) (= t_3 t_1) (= i_3 i!) (= j_3 j!) (= t_3 t!) (= c c_0) (= c! c_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (i Int) (j Int) (t Int) (tmp Int) (c_0 Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (t_0 Int) (t_1 Int) (t_2 Int) (t_3 Int)) Bool - (or - (not - (and - (= c c_0) - (= i i_1) - (= j j_1) - (= t t_1) - ) - ) - (not - (and - (not (>= i_1 0)) - ) - ) - ) -) + (or (not (and (= c c_0) (= i i_1) (= j j_1) (= t t_1))) (not (and (not (>= i_1 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/132_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/132_conf1.sl index aaf5ca5..8edea8b 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/132_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/132_conf1.sl @@ -1,145 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var conf_0 Int) -(declare-primed-var t Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var i_4 Int) -(declare-primed-var j_0 Int) -(declare-primed-var j_1 Int) -(declare-primed-var j_2 Int) -(declare-primed-var j_3 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) -(declare-primed-var conf_0_5 Int) -(declare-primed-var t_0 Int) -(declare-primed-var t_1 Int) -(declare-primed-var t_2 Int) -(declare-primed-var t_3 Int) - (synth-inv inv-f ((c Int) (i Int) (j Int) (conf_0 Int) (t Int) (tmp Int) (c_0 Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (conf_0_5 Int) (t_0 Int) (t_1 Int) (t_2 Int) (t_3 Int))) (define-fun pre-f ((c Int) (i Int) (j Int) (conf_0 Int) (t Int) (tmp Int) (c_0 Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (conf_0_5 Int) (t_0 Int) (t_1 Int) (t_2 Int) (t_3 Int)) Bool - (and - (= i i_1) - (= conf_0 conf_0_0) - (= conf_0_0 0) - (= i_1 0) - ) -) - + (and (= i i_1) (= conf_0 conf_0_0) (= conf_0_0 0) (= i_1 0))) (define-fun trans-f ((c Int) (i Int) (j Int) (conf_0 Int) (t Int) (tmp Int) (c_0 Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (conf_0_5 Int) (t_0 Int) (t_1 Int) (t_2 Int) (t_3 Int) (c! Int) (i! Int) (j! Int) (conf_0! Int) (t! Int) (tmp! Int) (c_0! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (i_4! Int) (j_0! Int) (j_1! Int) (j_2! Int) (j_3! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int) (conf_0_5! Int) (t_0! Int) (t_1! Int) (t_2! Int) (t_3! Int)) Bool - (or - (and - (= i_2 i) - (= j_1 j) - (= conf_0_1 conf_0) - (= t_1 t) - (= i_2 i!) - (= j_1 j!) - (= conf_0_1 conf_0!) - (= t_1 t!) - (= c c!) - (= i i!) - (= j j!) - (= conf_0 conf_0!) - (= t t!) - (= tmp tmp!) - ) - (and - (= i_2 i) - (= j_1 j) - (= conf_0_1 conf_0) - (= t_1 t) - (> c_0 48) - (< c_0 57) - (= j_2 (+ i_2 i_2)) - (= conf_0_2 (+ 239 8)) - (= t_2 (- c_0 48)) - (= conf_0_3 conf_0_2) - (= i_3 (+ j_2 t_2)) - (= conf_0_4 (- conf_0_3 conf_0_3)) - (= i_4 i_3) - (= j_3 j_2) - (= conf_0_5 conf_0_4) - (= t_3 t_2) - (= i_4 i!) - (= j_3 j!) - (= conf_0_5 conf_0!) - (= t_3 t!) - (= c c_0) - (= c! c_0) - (= tmp tmp!) - ) - (and - (= i_2 i) - (= j_1 j) - (= conf_0_1 conf_0) - (= t_1 t) - (> c_0 48) - (not (< c_0 57)) - (= i_4 i_2) - (= j_3 j_1) - (= conf_0_5 conf_0_1) - (= t_3 t_1) - (= i_4 i!) - (= j_3 j!) - (= conf_0_5 conf_0!) - (= t_3 t!) - (= c c_0) - (= c! c_0) - (= tmp tmp!) - ) - (and - (= i_2 i) - (= j_1 j) - (= conf_0_1 conf_0) - (= t_1 t) - (not (> c_0 48)) - (= i_4 i_2) - (= j_3 j_1) - (= conf_0_5 conf_0_1) - (= t_3 t_1) - (= i_4 i!) - (= j_3 j!) - (= conf_0_5 conf_0!) - (= t_3 t!) - (= c c_0) - (= c! c_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= i_2 i) (= j_1 j) (= conf_0_1 conf_0) (= t_1 t) (= i_2 i!) (= j_1 j!) (= conf_0_1 conf_0!) (= t_1 t!) (= c c!) (= i i!) (= j j!) (= conf_0 conf_0!) (= t t!) (= tmp tmp!)) (and (= i_2 i) (= j_1 j) (= conf_0_1 conf_0) (= t_1 t) (> c_0 48) (< c_0 57) (= j_2 (+ i_2 i_2)) (= conf_0_2 (+ 239 8)) (= t_2 (- c_0 48)) (= conf_0_3 conf_0_2) (= i_3 (+ j_2 t_2)) (= conf_0_4 (- conf_0_3 conf_0_3)) (= i_4 i_3) (= j_3 j_2) (= conf_0_5 conf_0_4) (= t_3 t_2) (= i_4 i!) (= j_3 j!) (= conf_0_5 conf_0!) (= t_3 t!) (= c c_0) (= c! c_0) (= tmp tmp!)) (and (= i_2 i) (= j_1 j) (= conf_0_1 conf_0) (= t_1 t) (> c_0 48) (not (< c_0 57)) (= i_4 i_2) (= j_3 j_1) (= conf_0_5 conf_0_1) (= t_3 t_1) (= i_4 i!) (= j_3 j!) (= conf_0_5 conf_0!) (= t_3 t!) (= c c_0) (= c! c_0) (= tmp tmp!)) (and (= i_2 i) (= j_1 j) (= conf_0_1 conf_0) (= t_1 t) (not (> c_0 48)) (= i_4 i_2) (= j_3 j_1) (= conf_0_5 conf_0_1) (= t_3 t_1) (= i_4 i!) (= j_3 j!) (= conf_0_5 conf_0!) (= t_3 t!) (= c c_0) (= c! c_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (i Int) (j Int) (conf_0 Int) (t Int) (tmp Int) (c_0 Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (conf_0_5 Int) (t_0 Int) (t_1 Int) (t_2 Int) (t_3 Int)) Bool - (or - (not - (and - (= c c_0) - (= i i_2) - (= j j_1) - (= conf_0 conf_0_1) - (= t t_1) - ) - ) - (not - (and - (not (>= i_2 0)) - ) - ) - ) -) + (or (not (and (= c c_0) (= i i_2) (= j j_1) (= conf_0 conf_0_1) (= t t_1))) (not (and (not (>= i_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/132_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/132_conf5.sl index 93303fc..ad5c746 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/132_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/132_conf5.sl @@ -1,207 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var t Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var i_4 Int) -(declare-primed-var j_0 Int) -(declare-primed-var j_1 Int) -(declare-primed-var j_2 Int) -(declare-primed-var j_3 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_1_1 Int) -(declare-primed-var conf_1_2 Int) -(declare-primed-var conf_1_3 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_3_1 Int) -(declare-primed-var conf_3_2 Int) -(declare-primed-var conf_3_3 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var t_0 Int) -(declare-primed-var t_1 Int) -(declare-primed-var t_2 Int) -(declare-primed-var t_3 Int) - (synth-inv inv-f ((c Int) (i Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (t Int) (tmp Int) (c_0 Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (t_0 Int) (t_1 Int) (t_2 Int) (t_3 Int))) (define-fun pre-f ((c Int) (i Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (t Int) (tmp Int) (c_0 Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (t_0 Int) (t_1 Int) (t_2 Int) (t_3 Int)) Bool - (and - (= i i_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= conf_0_0 9) - (= conf_1_0 0) - (= conf_2_0 7) - (= conf_3_0 4) - (= conf_4_0 0) - (= i_1 0) - ) -) - + (and (= i i_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= conf_0_0 9) (= conf_1_0 0) (= conf_2_0 7) (= conf_3_0 4) (= conf_4_0 0) (= i_1 0))) (define-fun trans-f ((c Int) (i Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (t Int) (tmp Int) (c_0 Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (t_0 Int) (t_1 Int) (t_2 Int) (t_3 Int) (c! Int) (i! Int) (j! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (t! Int) (tmp! Int) (c_0! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (i_4! Int) (j_0! Int) (j_1! Int) (j_2! Int) (j_3! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_1_0! Int) (conf_1_1! Int) (conf_1_2! Int) (conf_1_3! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_3_1! Int) (conf_3_2! Int) (conf_3_3! Int) (conf_4_0! Int) (t_0! Int) (t_1! Int) (t_2! Int) (t_3! Int)) Bool - (or - (and - (= i_2 i) - (= j_1 j) - (= conf_0_1 conf_0) - (= conf_1_1 conf_1) - (= conf_3_1 conf_3) - (= t_1 t) - (= i_2 i!) - (= j_1 j!) - (= conf_0_1 conf_0!) - (= conf_1_1 conf_1!) - (= conf_3_1 conf_3!) - (= t_1 t!) - (= c c!) - (= i i!) - (= j j!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= t t!) - (= tmp tmp!) - ) - (and - (= i_2 i) - (= j_1 j) - (= conf_0_1 conf_0) - (= conf_1_1 conf_1) - (= conf_3_1 conf_3) - (= t_1 t) - (> c_0 48) - (< c_0 57) - (= j_2 (+ i_2 i_2)) - (= conf_3_2 676) - (= t_2 (- c_0 48)) - (= conf_1_2 (- conf_0_1 conf_1_1)) - (= i_3 (+ j_2 t_2)) - (= conf_0_2 (+ 559 129)) - (= i_4 i_3) - (= j_3 j_2) - (= conf_0_3 conf_0_2) - (= conf_1_3 conf_1_2) - (= conf_3_3 conf_3_2) - (= t_3 t_2) - (= i_4 i!) - (= j_3 j!) - (= conf_0_3 conf_0!) - (= conf_1_3 conf_1!) - (= conf_3_3 conf_3!) - (= t_3 t!) - (= c c_0) - (= c! c_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= tmp tmp!) - ) - (and - (= i_2 i) - (= j_1 j) - (= conf_0_1 conf_0) - (= conf_1_1 conf_1) - (= conf_3_1 conf_3) - (= t_1 t) - (> c_0 48) - (not (< c_0 57)) - (= i_4 i_2) - (= j_3 j_1) - (= conf_0_3 conf_0_1) - (= conf_1_3 conf_1_1) - (= conf_3_3 conf_3_1) - (= t_3 t_1) - (= i_4 i!) - (= j_3 j!) - (= conf_0_3 conf_0!) - (= conf_1_3 conf_1!) - (= conf_3_3 conf_3!) - (= t_3 t!) - (= c c_0) - (= c! c_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= tmp tmp!) - ) - (and - (= i_2 i) - (= j_1 j) - (= conf_0_1 conf_0) - (= conf_1_1 conf_1) - (= conf_3_1 conf_3) - (= t_1 t) - (not (> c_0 48)) - (= i_4 i_2) - (= j_3 j_1) - (= conf_0_3 conf_0_1) - (= conf_1_3 conf_1_1) - (= conf_3_3 conf_3_1) - (= t_3 t_1) - (= i_4 i!) - (= j_3 j!) - (= conf_0_3 conf_0!) - (= conf_1_3 conf_1!) - (= conf_3_3 conf_3!) - (= t_3 t!) - (= c c_0) - (= c! c_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= i_2 i) (= j_1 j) (= conf_0_1 conf_0) (= conf_1_1 conf_1) (= conf_3_1 conf_3) (= t_1 t) (= i_2 i!) (= j_1 j!) (= conf_0_1 conf_0!) (= conf_1_1 conf_1!) (= conf_3_1 conf_3!) (= t_1 t!) (= c c!) (= i i!) (= j j!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= t t!) (= tmp tmp!)) (and (= i_2 i) (= j_1 j) (= conf_0_1 conf_0) (= conf_1_1 conf_1) (= conf_3_1 conf_3) (= t_1 t) (> c_0 48) (< c_0 57) (= j_2 (+ i_2 i_2)) (= conf_3_2 676) (= t_2 (- c_0 48)) (= conf_1_2 (- conf_0_1 conf_1_1)) (= i_3 (+ j_2 t_2)) (= conf_0_2 (+ 559 129)) (= i_4 i_3) (= j_3 j_2) (= conf_0_3 conf_0_2) (= conf_1_3 conf_1_2) (= conf_3_3 conf_3_2) (= t_3 t_2) (= i_4 i!) (= j_3 j!) (= conf_0_3 conf_0!) (= conf_1_3 conf_1!) (= conf_3_3 conf_3!) (= t_3 t!) (= c c_0) (= c! c_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= tmp tmp!)) (and (= i_2 i) (= j_1 j) (= conf_0_1 conf_0) (= conf_1_1 conf_1) (= conf_3_1 conf_3) (= t_1 t) (> c_0 48) (not (< c_0 57)) (= i_4 i_2) (= j_3 j_1) (= conf_0_3 conf_0_1) (= conf_1_3 conf_1_1) (= conf_3_3 conf_3_1) (= t_3 t_1) (= i_4 i!) (= j_3 j!) (= conf_0_3 conf_0!) (= conf_1_3 conf_1!) (= conf_3_3 conf_3!) (= t_3 t!) (= c c_0) (= c! c_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= tmp tmp!)) (and (= i_2 i) (= j_1 j) (= conf_0_1 conf_0) (= conf_1_1 conf_1) (= conf_3_1 conf_3) (= t_1 t) (not (> c_0 48)) (= i_4 i_2) (= j_3 j_1) (= conf_0_3 conf_0_1) (= conf_1_3 conf_1_1) (= conf_3_3 conf_3_1) (= t_3 t_1) (= i_4 i!) (= j_3 j!) (= conf_0_3 conf_0!) (= conf_1_3 conf_1!) (= conf_3_3 conf_3!) (= t_3 t!) (= c c_0) (= c! c_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (i Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (t Int) (tmp Int) (c_0 Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (t_0 Int) (t_1 Int) (t_2 Int) (t_3 Int)) Bool - (or - (not - (and - (= c c_0) - (= i i_2) - (= j j_1) - (= conf_0 conf_0_1) - (= conf_1 conf_1_1) - (= conf_2 conf_2_0) - (= conf_3 conf_3_1) - (= conf_4 conf_4_0) - (= t t_1) - ) - ) - (not - (and - (not (>= i_2 0)) - ) - ) - ) -) + (or (not (and (= c c_0) (= i i_2) (= j j_1) (= conf_0 conf_0_1) (= conf_1 conf_1_1) (= conf_2 conf_2_0) (= conf_3 conf_3_1) (= conf_4 conf_4_0) (= t t_1))) (not (and (not (>= i_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/133.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/133.c.sl index 70f9755..61b489d 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/133.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/133.c.sl @@ -1,60 +1,15 @@ (set-logic LIA) -(declare-primed-var n Int) -(declare-primed-var x Int) - -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((n Int) (x Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((n Int) (x Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= n n_0) - (= x x_1) - (= x_1 0) - (>= n_0 0) - ) -) - + (and (= n n_0) (= x x_1) (= x_1 0) (>= n_0 0))) (define-fun trans-f ((n Int) (x Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (n! Int) (x! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= x_2 x) - (= x_2 x!) - (= n n_0) - (= n! n_0) - ) - (and - (= x_2 x) - (< x_2 n_0) - (= x_3 (+ x_2 1)) - (= x_3 x!) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= x_2 x) (= x_2 x!) (= n n_0) (= n! n_0)) (and (= x_2 x) (< x_2 n_0) (= x_3 (+ x_2 1)) (= x_3 x!) (= n n_0) (= n! n_0)))) (define-fun post-f ((n Int) (x Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= n n_0) - (= x x_2) - ) - ) - (not - (and - (not (< x_2 n_0)) - (not (= x_2 n_0)) - ) - ) - ) -) + (or (not (and (= n n_0) (= x x_2))) (not (and (not (< x_2 n_0)) (not (= x_2 n_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/133_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/133_conf1.sl index 08442d4..a2d08ec 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/133_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/133_conf1.sl @@ -1,73 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var n Int) -(declare-primed-var x Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((conf_0 Int) (n Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((conf_0 Int) (n Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= n n_0) - (= x x_1) - (= conf_0_0 9) - (= x_1 0) - (>= n_0 0) - ) -) - + (and (= conf_0 conf_0_0) (= n n_0) (= x x_1) (= conf_0_0 9) (= x_1 0) (>= n_0 0))) (define-fun trans-f ((conf_0 Int) (n Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (conf_0! Int) (n! Int) (x! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= conf_0_1 conf_0!) - (= x_2 x!) - (= n n_0) - (= n! n_0) - (= conf_0 conf_0!) - ) - (and - (= conf_0_1 conf_0) - (= x_2 x) - (< x_2 n_0) - (= x_3 (+ x_2 1)) - (= conf_0_2 conf_0_1) - (= conf_0_2 conf_0!) - (= x_3 x!) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= x_2 x) (= conf_0_1 conf_0!) (= x_2 x!) (= n n_0) (= n! n_0) (= conf_0 conf_0!)) (and (= conf_0_1 conf_0) (= x_2 x) (< x_2 n_0) (= x_3 (+ x_2 1)) (= conf_0_2 conf_0_1) (= conf_0_2 conf_0!) (= x_3 x!) (= n n_0) (= n! n_0)))) (define-fun post-f ((conf_0 Int) (n Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= n n_0) - (= x x_2) - ) - ) - (not - (and - (not (< x_2 n_0)) - (not (= x_2 n_0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= n n_0) (= x x_2))) (not (and (not (< x_2 n_0)) (not (= x_2 n_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/133_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/133_conf5.sl index 4f092be..04c2882 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/133_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/133_conf5.sl @@ -1,105 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var n Int) -(declare-primed-var x Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_1_1 Int) -(declare-primed-var conf_1_2 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= n n_0) - (= x x_1) - (= conf_0_0 9) - (= conf_1_0 7) - (= conf_2_0 2) - (= conf_3_0 1) - (= conf_4_0 9) - (= x_1 0) - (>= n_0 0) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= n n_0) (= x x_1) (= conf_0_0 9) (= conf_1_0 7) (= conf_2_0 2) (= conf_3_0 1) (= conf_4_0 9) (= x_1 0) (>= n_0 0))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (n! Int) (x! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_1_1! Int) (conf_1_2! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_4_0! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= conf_1_1 conf_1) - (= x_2 x) - (= conf_1_1 conf_1!) - (= x_2 x!) - (= n n_0) - (= n! n_0) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - ) - (and - (= conf_1_1 conf_1) - (= x_2 x) - (< x_2 n_0) - (= x_3 (+ x_2 1)) - (= conf_1_2 conf_2_0) - (= conf_1_2 conf_1!) - (= x_3 x!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= conf_1_1 conf_1) (= x_2 x) (= conf_1_1 conf_1!) (= x_2 x!) (= n n_0) (= n! n_0) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!)) (and (= conf_1_1 conf_1) (= x_2 x) (< x_2 n_0) (= x_3 (+ x_2 1)) (= conf_1_2 conf_2_0) (= conf_1_2 conf_1!) (= x_3 x!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_1) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= n n_0) - (= x x_2) - ) - ) - (not - (and - (not (< x_2 n_0)) - (not (= x_2 n_0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_0) (= conf_1 conf_1_1) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= n n_0) (= x x_2))) (not (and (not (< x_2 n_0)) (not (= x_2 n_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/13_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/13_conf1.sl index ff0e587..d882924 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/13_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/13_conf1.sl @@ -1,83 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var tmp Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((conf_0 Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((conf_0 Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= conf_0 conf_0_0) - (= x x_0) - (= y y_0) - (= conf_0_0 2) - (>= x_0 0) - (<= x_0 2) - (<= y_0 2) - (>= y_0 0) - ) -) - + (and (= conf_0 conf_0_0) (= x x_0) (= y y_0) (= conf_0_0 2) (>= x_0 0) (<= x_0 2) (<= y_0 2) (>= y_0 0))) (define-fun trans-f ((conf_0 Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int) (conf_0! Int) (x! Int) (y! Int) (tmp! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (x_0! Int) (x_1! Int) (x_2! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= x_1 x) - (= y_1 y) - (= conf_0_1 conf_0!) - (= x_1 x!) - (= y_1 y!) - (= conf_0 conf_0!) - (= x x!) - (= y y!) - (= tmp tmp!) - ) - (and - (= conf_0_1 conf_0) - (= x_1 x) - (= y_1 y) - (= x_2 (+ x_1 2)) - (= conf_0_2 (+ conf_0_1 conf_0_1)) - (= y_2 (+ y_1 2)) - (= conf_0_3 conf_0_2) - (= conf_0_3 conf_0!) - (= x_2 x!) - (= y_2 y!) - (= tmp tmp!) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= x_1 x) (= y_1 y) (= conf_0_1 conf_0!) (= x_1 x!) (= y_1 y!) (= conf_0 conf_0!) (= x x!) (= y y!) (= tmp tmp!)) (and (= conf_0_1 conf_0) (= x_1 x) (= y_1 y) (= x_2 (+ x_1 2)) (= conf_0_2 (+ conf_0_1 conf_0_1)) (= y_2 (+ y_1 2)) (= conf_0_3 conf_0_2) (= conf_0_3 conf_0!) (= x_2 x!) (= y_2 y!) (= tmp tmp!)))) (define-fun post-f ((conf_0 Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= x x_1) - (= y y_1) - ) - ) - (not - (and - (= x_1 4) - (not (not (= y_1 0))) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= x x_1) (= y y_1))) (not (and (= x_1 4) (not (not (= y_1 0))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/13_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/13_conf5.sl index 37be947..98f5980 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/13_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/13_conf5.sl @@ -1,115 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var tmp Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var conf_4_1 Int) -(declare-primed-var conf_4_2 Int) -(declare-primed-var conf_4_3 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_0) - (= y y_0) - (= conf_0_0 4) - (= conf_1_0 5) - (= conf_2_0 5) - (= conf_3_0 8) - (= conf_4_0 2) - (>= x_0 0) - (<= x_0 2) - (<= y_0 2) - (>= y_0 0) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_0) (= y y_0) (= conf_0_0 4) (= conf_1_0 5) (= conf_2_0 5) (= conf_3_0 8) (= conf_4_0 2) (>= x_0 0) (<= x_0 2) (<= y_0 2) (>= y_0 0))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (x! Int) (y! Int) (tmp! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_4_0! Int) (conf_4_1! Int) (conf_4_2! Int) (conf_4_3! Int) (x_0! Int) (x_1! Int) (x_2! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= conf_4_1 conf_4) - (= x_1 x) - (= y_1 y) - (= conf_4_1 conf_4!) - (= x_1 x!) - (= y_1 y!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= x x!) - (= y y!) - (= tmp tmp!) - ) - (and - (= conf_4_1 conf_4) - (= x_1 x) - (= y_1 y) - (= x_2 (+ x_1 2)) - (= conf_4_2 (+ 209 conf_0_0)) - (= y_2 (+ y_1 2)) - (= conf_4_3 (- 517 conf_1_0)) - (= conf_4_3 conf_4!) - (= x_2 x!) - (= y_2 y!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= conf_4_1 conf_4) (= x_1 x) (= y_1 y) (= conf_4_1 conf_4!) (= x_1 x!) (= y_1 y!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= x x!) (= y y!) (= tmp tmp!)) (and (= conf_4_1 conf_4) (= x_1 x) (= y_1 y) (= x_2 (+ x_1 2)) (= conf_4_2 (+ 209 conf_0_0)) (= y_2 (+ y_1 2)) (= conf_4_3 (- 517 conf_1_0)) (= conf_4_3 conf_4!) (= x_2 x!) (= y_2 y!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= tmp tmp!)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_1) - (= x x_1) - (= y y_1) - ) - ) - (not - (and - (= x_1 4) - (not (not (= y_1 0))) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_1) (= x x_1) (= y y_1))) (not (and (= x_1 4) (not (not (= y_1 0))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/15.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/15.c.sl index 7942792..08799de 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/15.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/15.c.sl @@ -1,88 +1,15 @@ (set-logic LIA) -(declare-primed-var m Int) -(declare-primed-var n Int) -(declare-primed-var x Int) -(declare-primed-var tmp Int) - -(declare-primed-var m_0 Int) -(declare-primed-var m_1 Int) -(declare-primed-var m_2 Int) -(declare-primed-var m_3 Int) -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) - (synth-inv inv-f ((m Int) (n Int) (x Int) (tmp Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int))) (define-fun pre-f ((m Int) (n Int) (x Int) (tmp Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int)) Bool - (and - (= m m_0) - (= x x_0) - (= x_0 0) - (= m_0 0) - ) -) - + (and (= m m_0) (= x x_0) (= x_0 0) (= m_0 0))) (define-fun trans-f ((m Int) (n Int) (x Int) (tmp Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (m! Int) (n! Int) (x! Int) (tmp! Int) (m_0! Int) (m_1! Int) (m_2! Int) (m_3! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int)) Bool - (or - (and - (= m_1 m) - (= x_1 x) - (= m_1 m!) - (= x_1 x!) - (= n n_0) - (= n! n_0) - (= m m!) - (= tmp tmp!) - ) - (and - (= m_1 m) - (= x_1 x) - (< x_1 n_0) - (= m_2 x_1) - (= m_3 m_2) - (= x_2 (+ x_1 1)) - (= m_3 m!) - (= x_2 x!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= m_1 m) - (= x_1 x) - (< x_1 n_0) - (= m_3 m_1) - (= x_2 (+ x_1 1)) - (= m_3 m!) - (= x_2 x!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= m_1 m) (= x_1 x) (= m_1 m!) (= x_1 x!) (= n n_0) (= n! n_0) (= m m!) (= tmp tmp!)) (and (= m_1 m) (= x_1 x) (< x_1 n_0) (= m_2 x_1) (= m_3 m_2) (= x_2 (+ x_1 1)) (= m_3 m!) (= x_2 x!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= m_1 m) (= x_1 x) (< x_1 n_0) (= m_3 m_1) (= x_2 (+ x_1 1)) (= m_3 m!) (= x_2 x!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((m Int) (n Int) (x Int) (tmp Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int)) Bool - (or - (not - (and - (= m m_1) - (= n n_0) - (= x x_1) - ) - ) - (not - (and - (not (< x_1 n_0)) - (> n_0 0) - (not (< m_1 n_0)) - ) - ) - ) -) + (or (not (and (= m m_1) (= n n_0) (= x x_1))) (not (and (not (< x_1 n_0)) (> n_0 0) (not (< m_1 n_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/15_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/15_conf1.sl index 1680256..3ad3c5b 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/15_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/15_conf1.sl @@ -1,111 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var m Int) -(declare-primed-var n Int) -(declare-primed-var x Int) -(declare-primed-var tmp Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) -(declare-primed-var m_0 Int) -(declare-primed-var m_1 Int) -(declare-primed-var m_2 Int) -(declare-primed-var m_3 Int) -(declare-primed-var m_4 Int) -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((conf_0 Int) (m Int) (n Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (m_4 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((conf_0 Int) (m Int) (n Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (m_4 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= m m_1) - (= x x_1) - (= conf_0_0 2) - (= x_1 0) - (= m_1 0) - ) -) - + (and (= conf_0 conf_0_0) (= m m_1) (= x x_1) (= conf_0_0 2) (= x_1 0) (= m_1 0))) (define-fun trans-f ((conf_0 Int) (m Int) (n Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (m_4 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (conf_0! Int) (m! Int) (n! Int) (x! Int) (tmp! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int) (m_0! Int) (m_1! Int) (m_2! Int) (m_3! Int) (m_4! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= m_2 m) - (= x_2 x) - (= conf_0_1 conf_0!) - (= m_2 m!) - (= x_2 x!) - (= n n_0) - (= n! n_0) - (= conf_0 conf_0!) - (= m m!) - (= tmp tmp!) - ) - (and - (= conf_0_1 conf_0) - (= m_2 m) - (= x_2 x) - (< x_2 n_0) - (= m_3 x_2) - (= conf_0_2 (- 161 conf_0_1)) - (= conf_0_3 conf_0_2) - (= m_4 m_3) - (= x_3 (+ x_2 1)) - (= conf_0_4 (+ conf_0_3 483)) - (= conf_0_4 conf_0!) - (= m_4 m!) - (= x_3 x!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= conf_0_1 conf_0) - (= m_2 m) - (= x_2 x) - (< x_2 n_0) - (= conf_0_3 conf_0_1) - (= m_4 m_2) - (= x_3 (+ x_2 1)) - (= conf_0_4 (+ conf_0_3 483)) - (= conf_0_4 conf_0!) - (= m_4 m!) - (= x_3 x!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= m_2 m) (= x_2 x) (= conf_0_1 conf_0!) (= m_2 m!) (= x_2 x!) (= n n_0) (= n! n_0) (= conf_0 conf_0!) (= m m!) (= tmp tmp!)) (and (= conf_0_1 conf_0) (= m_2 m) (= x_2 x) (< x_2 n_0) (= m_3 x_2) (= conf_0_2 (- 161 conf_0_1)) (= conf_0_3 conf_0_2) (= m_4 m_3) (= x_3 (+ x_2 1)) (= conf_0_4 (+ conf_0_3 483)) (= conf_0_4 conf_0!) (= m_4 m!) (= x_3 x!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= conf_0_1 conf_0) (= m_2 m) (= x_2 x) (< x_2 n_0) (= conf_0_3 conf_0_1) (= m_4 m_2) (= x_3 (+ x_2 1)) (= conf_0_4 (+ conf_0_3 483)) (= conf_0_4 conf_0!) (= m_4 m!) (= x_3 x!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((conf_0 Int) (m Int) (n Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (m_4 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= m m_2) - (= n n_0) - (= x x_2) - ) - ) - (not - (and - (not (< x_2 n_0)) - (> n_0 0) - (not (< m_2 n_0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= m m_2) (= n n_0) (= x x_2))) (not (and (not (< x_2 n_0)) (> n_0 0) (not (< m_2 n_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/15_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/15_conf5.sl index d51eb73..6b92f20 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/15_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/15_conf5.sl @@ -1,154 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var m Int) -(declare-primed-var n Int) -(declare-primed-var x Int) -(declare-primed-var tmp Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_1_1 Int) -(declare-primed-var conf_1_2 Int) -(declare-primed-var conf_1_3 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_2_1 Int) -(declare-primed-var conf_2_2 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var m_0 Int) -(declare-primed-var m_1 Int) -(declare-primed-var m_2 Int) -(declare-primed-var m_3 Int) -(declare-primed-var m_4 Int) -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (m Int) (n Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (m_4 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (m Int) (n Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (m_4 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= m m_1) - (= x x_1) - (= conf_0_0 1) - (= conf_1_0 6) - (= conf_2_0 5) - (= conf_3_0 1) - (= conf_4_0 2) - (= x_1 0) - (= m_1 0) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= m m_1) (= x x_1) (= conf_0_0 1) (= conf_1_0 6) (= conf_2_0 5) (= conf_3_0 1) (= conf_4_0 2) (= x_1 0) (= m_1 0))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (m Int) (n Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (m_4 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (m! Int) (n! Int) (x! Int) (tmp! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_1_1! Int) (conf_1_2! Int) (conf_1_3! Int) (conf_2_0! Int) (conf_2_1! Int) (conf_2_2! Int) (conf_3_0! Int) (conf_4_0! Int) (m_0! Int) (m_1! Int) (m_2! Int) (m_3! Int) (m_4! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (= m_2 m) - (= x_2 x) - (= conf_1_1 conf_1!) - (= conf_2_1 conf_2!) - (= m_2 m!) - (= x_2 x!) - (= n n_0) - (= n! n_0) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= m m!) - (= tmp tmp!) - ) - (and - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (= m_2 m) - (= x_2 x) - (< x_2 n_0) - (= m_3 x_2) - (= conf_1_2 (- conf_2_1 conf_4_0)) - (= conf_1_3 conf_1_2) - (= m_4 m_3) - (= x_3 (+ x_2 1)) - (= conf_2_2 conf_4_0) - (= conf_1_3 conf_1!) - (= conf_2_2 conf_2!) - (= m_4 m!) - (= x_3 x!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (= m_2 m) - (= x_2 x) - (< x_2 n_0) - (= conf_1_3 conf_1_1) - (= m_4 m_2) - (= x_3 (+ x_2 1)) - (= conf_2_2 conf_4_0) - (= conf_1_3 conf_1!) - (= conf_2_2 conf_2!) - (= m_4 m!) - (= x_3 x!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= conf_1_1 conf_1) (= conf_2_1 conf_2) (= m_2 m) (= x_2 x) (= conf_1_1 conf_1!) (= conf_2_1 conf_2!) (= m_2 m!) (= x_2 x!) (= n n_0) (= n! n_0) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= m m!) (= tmp tmp!)) (and (= conf_1_1 conf_1) (= conf_2_1 conf_2) (= m_2 m) (= x_2 x) (< x_2 n_0) (= m_3 x_2) (= conf_1_2 (- conf_2_1 conf_4_0)) (= conf_1_3 conf_1_2) (= m_4 m_3) (= x_3 (+ x_2 1)) (= conf_2_2 conf_4_0) (= conf_1_3 conf_1!) (= conf_2_2 conf_2!) (= m_4 m!) (= x_3 x!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= conf_1_1 conf_1) (= conf_2_1 conf_2) (= m_2 m) (= x_2 x) (< x_2 n_0) (= conf_1_3 conf_1_1) (= m_4 m_2) (= x_3 (+ x_2 1)) (= conf_2_2 conf_4_0) (= conf_1_3 conf_1!) (= conf_2_2 conf_2!) (= m_4 m!) (= x_3 x!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (m Int) (n Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (m_4 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_1) - (= conf_2 conf_2_1) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= m m_2) - (= n n_0) - (= x x_2) - ) - ) - (not - (and - (not (< x_2 n_0)) - (> n_0 0) - (not (< m_2 n_0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_0) (= conf_1 conf_1_1) (= conf_2 conf_2_1) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= m m_2) (= n n_0) (= x x_2))) (not (and (not (< x_2 n_0)) (> n_0 0) (not (< m_2 n_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/16.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/16.c.sl index b7ff850..cb0f905 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/16.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/16.c.sl @@ -1,88 +1,15 @@ (set-logic LIA) -(declare-primed-var m Int) -(declare-primed-var n Int) -(declare-primed-var x Int) -(declare-primed-var tmp Int) - -(declare-primed-var m_0 Int) -(declare-primed-var m_1 Int) -(declare-primed-var m_2 Int) -(declare-primed-var m_3 Int) -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) - (synth-inv inv-f ((m Int) (n Int) (x Int) (tmp Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int))) (define-fun pre-f ((m Int) (n Int) (x Int) (tmp Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int)) Bool - (and - (= m m_0) - (= x x_0) - (= x_0 0) - (= m_0 0) - ) -) - + (and (= m m_0) (= x x_0) (= x_0 0) (= m_0 0))) (define-fun trans-f ((m Int) (n Int) (x Int) (tmp Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (m! Int) (n! Int) (x! Int) (tmp! Int) (m_0! Int) (m_1! Int) (m_2! Int) (m_3! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int)) Bool - (or - (and - (= m_1 m) - (= x_1 x) - (= m_1 m!) - (= x_1 x!) - (= n n_0) - (= n! n_0) - (= m m!) - (= tmp tmp!) - ) - (and - (= m_1 m) - (= x_1 x) - (< x_1 n_0) - (= m_2 x_1) - (= m_3 m_2) - (= x_2 (+ x_1 1)) - (= m_3 m!) - (= x_2 x!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= m_1 m) - (= x_1 x) - (< x_1 n_0) - (= m_3 m_1) - (= x_2 (+ x_1 1)) - (= m_3 m!) - (= x_2 x!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= m_1 m) (= x_1 x) (= m_1 m!) (= x_1 x!) (= n n_0) (= n! n_0) (= m m!) (= tmp tmp!)) (and (= m_1 m) (= x_1 x) (< x_1 n_0) (= m_2 x_1) (= m_3 m_2) (= x_2 (+ x_1 1)) (= m_3 m!) (= x_2 x!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= m_1 m) (= x_1 x) (< x_1 n_0) (= m_3 m_1) (= x_2 (+ x_1 1)) (= m_3 m!) (= x_2 x!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((m Int) (n Int) (x Int) (tmp Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int)) Bool - (or - (not - (and - (= m m_1) - (= n n_0) - (= x x_1) - ) - ) - (not - (and - (not (< x_1 n_0)) - (> n_0 0) - (not (>= m_1 0)) - ) - ) - ) -) + (or (not (and (= m m_1) (= n n_0) (= x x_1))) (not (and (not (< x_1 n_0)) (> n_0 0) (not (>= m_1 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/16_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/16_conf1.sl index 88a5591..7e2d672 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/16_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/16_conf1.sl @@ -1,111 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var m Int) -(declare-primed-var n Int) -(declare-primed-var x Int) -(declare-primed-var tmp Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) -(declare-primed-var m_0 Int) -(declare-primed-var m_1 Int) -(declare-primed-var m_2 Int) -(declare-primed-var m_3 Int) -(declare-primed-var m_4 Int) -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((conf_0 Int) (m Int) (n Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (m_4 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((conf_0 Int) (m Int) (n Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (m_4 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= m m_1) - (= x x_1) - (= conf_0_0 2) - (= x_1 0) - (= m_1 0) - ) -) - + (and (= conf_0 conf_0_0) (= m m_1) (= x x_1) (= conf_0_0 2) (= x_1 0) (= m_1 0))) (define-fun trans-f ((conf_0 Int) (m Int) (n Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (m_4 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (conf_0! Int) (m! Int) (n! Int) (x! Int) (tmp! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int) (m_0! Int) (m_1! Int) (m_2! Int) (m_3! Int) (m_4! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= m_2 m) - (= x_2 x) - (= conf_0_1 conf_0!) - (= m_2 m!) - (= x_2 x!) - (= n n_0) - (= n! n_0) - (= conf_0 conf_0!) - (= m m!) - (= tmp tmp!) - ) - (and - (= conf_0_1 conf_0) - (= m_2 m) - (= x_2 x) - (< x_2 n_0) - (= m_3 x_2) - (= conf_0_2 (- 161 conf_0_1)) - (= conf_0_3 conf_0_2) - (= m_4 m_3) - (= x_3 (+ x_2 1)) - (= conf_0_4 (+ conf_0_3 483)) - (= conf_0_4 conf_0!) - (= m_4 m!) - (= x_3 x!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= conf_0_1 conf_0) - (= m_2 m) - (= x_2 x) - (< x_2 n_0) - (= conf_0_3 conf_0_1) - (= m_4 m_2) - (= x_3 (+ x_2 1)) - (= conf_0_4 (+ conf_0_3 483)) - (= conf_0_4 conf_0!) - (= m_4 m!) - (= x_3 x!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= m_2 m) (= x_2 x) (= conf_0_1 conf_0!) (= m_2 m!) (= x_2 x!) (= n n_0) (= n! n_0) (= conf_0 conf_0!) (= m m!) (= tmp tmp!)) (and (= conf_0_1 conf_0) (= m_2 m) (= x_2 x) (< x_2 n_0) (= m_3 x_2) (= conf_0_2 (- 161 conf_0_1)) (= conf_0_3 conf_0_2) (= m_4 m_3) (= x_3 (+ x_2 1)) (= conf_0_4 (+ conf_0_3 483)) (= conf_0_4 conf_0!) (= m_4 m!) (= x_3 x!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= conf_0_1 conf_0) (= m_2 m) (= x_2 x) (< x_2 n_0) (= conf_0_3 conf_0_1) (= m_4 m_2) (= x_3 (+ x_2 1)) (= conf_0_4 (+ conf_0_3 483)) (= conf_0_4 conf_0!) (= m_4 m!) (= x_3 x!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((conf_0 Int) (m Int) (n Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (m_4 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= m m_2) - (= n n_0) - (= x x_2) - ) - ) - (not - (and - (not (< x_2 n_0)) - (> n_0 0) - (not (>= m_2 0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= m m_2) (= n n_0) (= x x_2))) (not (and (not (< x_2 n_0)) (> n_0 0) (not (>= m_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/16_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/16_conf5.sl index d5b98cb..5719bb6 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/16_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/16_conf5.sl @@ -1,154 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var m Int) -(declare-primed-var n Int) -(declare-primed-var x Int) -(declare-primed-var tmp Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_1_1 Int) -(declare-primed-var conf_1_2 Int) -(declare-primed-var conf_1_3 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_2_1 Int) -(declare-primed-var conf_2_2 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var m_0 Int) -(declare-primed-var m_1 Int) -(declare-primed-var m_2 Int) -(declare-primed-var m_3 Int) -(declare-primed-var m_4 Int) -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (m Int) (n Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (m_4 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (m Int) (n Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (m_4 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= m m_1) - (= x x_1) - (= conf_0_0 1) - (= conf_1_0 6) - (= conf_2_0 5) - (= conf_3_0 1) - (= conf_4_0 2) - (= x_1 0) - (= m_1 0) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= m m_1) (= x x_1) (= conf_0_0 1) (= conf_1_0 6) (= conf_2_0 5) (= conf_3_0 1) (= conf_4_0 2) (= x_1 0) (= m_1 0))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (m Int) (n Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (m_4 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (m! Int) (n! Int) (x! Int) (tmp! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_1_1! Int) (conf_1_2! Int) (conf_1_3! Int) (conf_2_0! Int) (conf_2_1! Int) (conf_2_2! Int) (conf_3_0! Int) (conf_4_0! Int) (m_0! Int) (m_1! Int) (m_2! Int) (m_3! Int) (m_4! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (= m_2 m) - (= x_2 x) - (= conf_1_1 conf_1!) - (= conf_2_1 conf_2!) - (= m_2 m!) - (= x_2 x!) - (= n n_0) - (= n! n_0) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= m m!) - (= tmp tmp!) - ) - (and - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (= m_2 m) - (= x_2 x) - (< x_2 n_0) - (= m_3 x_2) - (= conf_1_2 (- conf_2_1 conf_4_0)) - (= conf_1_3 conf_1_2) - (= m_4 m_3) - (= x_3 (+ x_2 1)) - (= conf_2_2 conf_4_0) - (= conf_1_3 conf_1!) - (= conf_2_2 conf_2!) - (= m_4 m!) - (= x_3 x!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (= m_2 m) - (= x_2 x) - (< x_2 n_0) - (= conf_1_3 conf_1_1) - (= m_4 m_2) - (= x_3 (+ x_2 1)) - (= conf_2_2 conf_4_0) - (= conf_1_3 conf_1!) - (= conf_2_2 conf_2!) - (= m_4 m!) - (= x_3 x!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= conf_1_1 conf_1) (= conf_2_1 conf_2) (= m_2 m) (= x_2 x) (= conf_1_1 conf_1!) (= conf_2_1 conf_2!) (= m_2 m!) (= x_2 x!) (= n n_0) (= n! n_0) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= m m!) (= tmp tmp!)) (and (= conf_1_1 conf_1) (= conf_2_1 conf_2) (= m_2 m) (= x_2 x) (< x_2 n_0) (= m_3 x_2) (= conf_1_2 (- conf_2_1 conf_4_0)) (= conf_1_3 conf_1_2) (= m_4 m_3) (= x_3 (+ x_2 1)) (= conf_2_2 conf_4_0) (= conf_1_3 conf_1!) (= conf_2_2 conf_2!) (= m_4 m!) (= x_3 x!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= conf_1_1 conf_1) (= conf_2_1 conf_2) (= m_2 m) (= x_2 x) (< x_2 n_0) (= conf_1_3 conf_1_1) (= m_4 m_2) (= x_3 (+ x_2 1)) (= conf_2_2 conf_4_0) (= conf_1_3 conf_1!) (= conf_2_2 conf_2!) (= m_4 m!) (= x_3 x!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (m Int) (n Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (m_4 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_1) - (= conf_2 conf_2_1) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= m m_2) - (= n n_0) - (= x x_2) - ) - ) - (not - (and - (not (< x_2 n_0)) - (> n_0 0) - (not (>= m_2 0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_0) (= conf_1 conf_1_1) (= conf_2 conf_2_1) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= m m_2) (= n n_0) (= x x_2))) (not (and (not (< x_2 n_0)) (> n_0 0) (not (>= m_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/17.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/17.c.sl index 018ae8a..dc16cb2 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/17.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/17.c.sl @@ -1,88 +1,15 @@ (set-logic LIA) -(declare-primed-var m Int) -(declare-primed-var n Int) -(declare-primed-var x Int) -(declare-primed-var tmp Int) - -(declare-primed-var m_0 Int) -(declare-primed-var m_1 Int) -(declare-primed-var m_2 Int) -(declare-primed-var m_3 Int) -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) - (synth-inv inv-f ((m Int) (n Int) (x Int) (tmp Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int))) (define-fun pre-f ((m Int) (n Int) (x Int) (tmp Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int)) Bool - (and - (= m m_0) - (= x x_0) - (= x_0 1) - (= m_0 1) - ) -) - + (and (= m m_0) (= x x_0) (= x_0 1) (= m_0 1))) (define-fun trans-f ((m Int) (n Int) (x Int) (tmp Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (m! Int) (n! Int) (x! Int) (tmp! Int) (m_0! Int) (m_1! Int) (m_2! Int) (m_3! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int)) Bool - (or - (and - (= m_1 m) - (= x_1 x) - (= m_1 m!) - (= x_1 x!) - (= n n_0) - (= n! n_0) - (= m m!) - (= tmp tmp!) - ) - (and - (= m_1 m) - (= x_1 x) - (< x_1 n_0) - (= m_2 x_1) - (= m_3 m_2) - (= x_2 (+ x_1 1)) - (= m_3 m!) - (= x_2 x!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= m_1 m) - (= x_1 x) - (< x_1 n_0) - (= m_3 m_1) - (= x_2 (+ x_1 1)) - (= m_3 m!) - (= x_2 x!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= m_1 m) (= x_1 x) (= m_1 m!) (= x_1 x!) (= n n_0) (= n! n_0) (= m m!) (= tmp tmp!)) (and (= m_1 m) (= x_1 x) (< x_1 n_0) (= m_2 x_1) (= m_3 m_2) (= x_2 (+ x_1 1)) (= m_3 m!) (= x_2 x!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= m_1 m) (= x_1 x) (< x_1 n_0) (= m_3 m_1) (= x_2 (+ x_1 1)) (= m_3 m!) (= x_2 x!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((m Int) (n Int) (x Int) (tmp Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int)) Bool - (or - (not - (and - (= m m_1) - (= n n_0) - (= x x_1) - ) - ) - (not - (and - (not (< x_1 n_0)) - (> n_0 1) - (not (< m_1 n_0)) - ) - ) - ) -) + (or (not (and (= m m_1) (= n n_0) (= x x_1))) (not (and (not (< x_1 n_0)) (> n_0 1) (not (< m_1 n_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/17_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/17_conf1.sl index 872f678..b769880 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/17_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/17_conf1.sl @@ -1,111 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var m Int) -(declare-primed-var n Int) -(declare-primed-var x Int) -(declare-primed-var tmp Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) -(declare-primed-var m_0 Int) -(declare-primed-var m_1 Int) -(declare-primed-var m_2 Int) -(declare-primed-var m_3 Int) -(declare-primed-var m_4 Int) -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((conf_0 Int) (m Int) (n Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (m_4 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((conf_0 Int) (m Int) (n Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (m_4 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= m m_1) - (= x x_1) - (= conf_0_0 0) - (= x_1 1) - (= m_1 1) - ) -) - + (and (= conf_0 conf_0_0) (= m m_1) (= x x_1) (= conf_0_0 0) (= x_1 1) (= m_1 1))) (define-fun trans-f ((conf_0 Int) (m Int) (n Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (m_4 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (conf_0! Int) (m! Int) (n! Int) (x! Int) (tmp! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int) (m_0! Int) (m_1! Int) (m_2! Int) (m_3! Int) (m_4! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= m_2 m) - (= x_2 x) - (= conf_0_1 conf_0!) - (= m_2 m!) - (= x_2 x!) - (= n n_0) - (= n! n_0) - (= conf_0 conf_0!) - (= m m!) - (= tmp tmp!) - ) - (and - (= conf_0_1 conf_0) - (= m_2 m) - (= x_2 x) - (< x_2 n_0) - (= m_3 x_2) - (= conf_0_2 (- conf_0_1 740)) - (= conf_0_3 conf_0_2) - (= m_4 m_3) - (= x_3 (+ x_2 1)) - (= conf_0_4 conf_0_3) - (= conf_0_4 conf_0!) - (= m_4 m!) - (= x_3 x!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= conf_0_1 conf_0) - (= m_2 m) - (= x_2 x) - (< x_2 n_0) - (= conf_0_3 conf_0_1) - (= m_4 m_2) - (= x_3 (+ x_2 1)) - (= conf_0_4 conf_0_3) - (= conf_0_4 conf_0!) - (= m_4 m!) - (= x_3 x!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= m_2 m) (= x_2 x) (= conf_0_1 conf_0!) (= m_2 m!) (= x_2 x!) (= n n_0) (= n! n_0) (= conf_0 conf_0!) (= m m!) (= tmp tmp!)) (and (= conf_0_1 conf_0) (= m_2 m) (= x_2 x) (< x_2 n_0) (= m_3 x_2) (= conf_0_2 (- conf_0_1 740)) (= conf_0_3 conf_0_2) (= m_4 m_3) (= x_3 (+ x_2 1)) (= conf_0_4 conf_0_3) (= conf_0_4 conf_0!) (= m_4 m!) (= x_3 x!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= conf_0_1 conf_0) (= m_2 m) (= x_2 x) (< x_2 n_0) (= conf_0_3 conf_0_1) (= m_4 m_2) (= x_3 (+ x_2 1)) (= conf_0_4 conf_0_3) (= conf_0_4 conf_0!) (= m_4 m!) (= x_3 x!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((conf_0 Int) (m Int) (n Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (m_4 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= m m_2) - (= n n_0) - (= x x_2) - ) - ) - (not - (and - (not (< x_2 n_0)) - (> n_0 1) - (not (< m_2 n_0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= m m_2) (= n n_0) (= x x_2))) (not (and (not (< x_2 n_0)) (> n_0 1) (not (< m_2 n_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/17_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/17_conf5.sl index 03665c9..02ec623 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/17_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/17_conf5.sl @@ -1,154 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var m Int) -(declare-primed-var n Int) -(declare-primed-var x Int) -(declare-primed-var tmp Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_1_1 Int) -(declare-primed-var conf_1_2 Int) -(declare-primed-var conf_1_3 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_3_1 Int) -(declare-primed-var conf_3_2 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var m_0 Int) -(declare-primed-var m_1 Int) -(declare-primed-var m_2 Int) -(declare-primed-var m_3 Int) -(declare-primed-var m_4 Int) -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (m Int) (n Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (m_4 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (m Int) (n Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (m_4 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= m m_1) - (= x x_1) - (= conf_0_0 6) - (= conf_1_0 3) - (= conf_2_0 3) - (= conf_3_0 6) - (= conf_4_0 0) - (= x_1 1) - (= m_1 1) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= m m_1) (= x x_1) (= conf_0_0 6) (= conf_1_0 3) (= conf_2_0 3) (= conf_3_0 6) (= conf_4_0 0) (= x_1 1) (= m_1 1))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (m Int) (n Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (m_4 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (m! Int) (n! Int) (x! Int) (tmp! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_1_1! Int) (conf_1_2! Int) (conf_1_3! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_3_1! Int) (conf_3_2! Int) (conf_4_0! Int) (m_0! Int) (m_1! Int) (m_2! Int) (m_3! Int) (m_4! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= conf_1_1 conf_1) - (= conf_3_1 conf_3) - (= m_2 m) - (= x_2 x) - (= conf_1_1 conf_1!) - (= conf_3_1 conf_3!) - (= m_2 m!) - (= x_2 x!) - (= n n_0) - (= n! n_0) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= m m!) - (= tmp tmp!) - ) - (and - (= conf_1_1 conf_1) - (= conf_3_1 conf_3) - (= m_2 m) - (= x_2 x) - (< x_2 n_0) - (= m_3 x_2) - (= conf_1_2 419) - (= conf_1_3 conf_1_2) - (= m_4 m_3) - (= x_3 (+ x_2 1)) - (= conf_3_2 (+ conf_2_0 conf_2_0)) - (= conf_1_3 conf_1!) - (= conf_3_2 conf_3!) - (= m_4 m!) - (= x_3 x!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= conf_1_1 conf_1) - (= conf_3_1 conf_3) - (= m_2 m) - (= x_2 x) - (< x_2 n_0) - (= conf_1_3 conf_1_1) - (= m_4 m_2) - (= x_3 (+ x_2 1)) - (= conf_3_2 (+ conf_2_0 conf_2_0)) - (= conf_1_3 conf_1!) - (= conf_3_2 conf_3!) - (= m_4 m!) - (= x_3 x!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= conf_1_1 conf_1) (= conf_3_1 conf_3) (= m_2 m) (= x_2 x) (= conf_1_1 conf_1!) (= conf_3_1 conf_3!) (= m_2 m!) (= x_2 x!) (= n n_0) (= n! n_0) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= m m!) (= tmp tmp!)) (and (= conf_1_1 conf_1) (= conf_3_1 conf_3) (= m_2 m) (= x_2 x) (< x_2 n_0) (= m_3 x_2) (= conf_1_2 419) (= conf_1_3 conf_1_2) (= m_4 m_3) (= x_3 (+ x_2 1)) (= conf_3_2 (+ conf_2_0 conf_2_0)) (= conf_1_3 conf_1!) (= conf_3_2 conf_3!) (= m_4 m!) (= x_3 x!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= conf_1_1 conf_1) (= conf_3_1 conf_3) (= m_2 m) (= x_2 x) (< x_2 n_0) (= conf_1_3 conf_1_1) (= m_4 m_2) (= x_3 (+ x_2 1)) (= conf_3_2 (+ conf_2_0 conf_2_0)) (= conf_1_3 conf_1!) (= conf_3_2 conf_3!) (= m_4 m!) (= x_3 x!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (m Int) (n Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (m_4 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_1) - (= conf_2 conf_2_0) - (= conf_3 conf_3_1) - (= conf_4 conf_4_0) - (= m m_2) - (= n n_0) - (= x x_2) - ) - ) - (not - (and - (not (< x_2 n_0)) - (> n_0 1) - (not (< m_2 n_0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_0) (= conf_1 conf_1_1) (= conf_2 conf_2_0) (= conf_3 conf_3_1) (= conf_4 conf_4_0) (= m m_2) (= n n_0) (= x x_2))) (not (and (not (< x_2 n_0)) (> n_0 1) (not (< m_2 n_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/18.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/18.c.sl index a52755a..d3f39a3 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/18.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/18.c.sl @@ -1,88 +1,15 @@ (set-logic LIA) -(declare-primed-var m Int) -(declare-primed-var n Int) -(declare-primed-var x Int) -(declare-primed-var tmp Int) - -(declare-primed-var m_0 Int) -(declare-primed-var m_1 Int) -(declare-primed-var m_2 Int) -(declare-primed-var m_3 Int) -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) - (synth-inv inv-f ((m Int) (n Int) (x Int) (tmp Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int))) (define-fun pre-f ((m Int) (n Int) (x Int) (tmp Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int)) Bool - (and - (= m m_0) - (= x x_0) - (= x_0 1) - (= m_0 1) - ) -) - + (and (= m m_0) (= x x_0) (= x_0 1) (= m_0 1))) (define-fun trans-f ((m Int) (n Int) (x Int) (tmp Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (m! Int) (n! Int) (x! Int) (tmp! Int) (m_0! Int) (m_1! Int) (m_2! Int) (m_3! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int)) Bool - (or - (and - (= m_1 m) - (= x_1 x) - (= m_1 m!) - (= x_1 x!) - (= n n_0) - (= n! n_0) - (= m m!) - (= tmp tmp!) - ) - (and - (= m_1 m) - (= x_1 x) - (< x_1 n_0) - (= m_2 x_1) - (= m_3 m_2) - (= x_2 (+ x_1 1)) - (= m_3 m!) - (= x_2 x!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= m_1 m) - (= x_1 x) - (< x_1 n_0) - (= m_3 m_1) - (= x_2 (+ x_1 1)) - (= m_3 m!) - (= x_2 x!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= m_1 m) (= x_1 x) (= m_1 m!) (= x_1 x!) (= n n_0) (= n! n_0) (= m m!) (= tmp tmp!)) (and (= m_1 m) (= x_1 x) (< x_1 n_0) (= m_2 x_1) (= m_3 m_2) (= x_2 (+ x_1 1)) (= m_3 m!) (= x_2 x!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= m_1 m) (= x_1 x) (< x_1 n_0) (= m_3 m_1) (= x_2 (+ x_1 1)) (= m_3 m!) (= x_2 x!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((m Int) (n Int) (x Int) (tmp Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int)) Bool - (or - (not - (and - (= m m_1) - (= n n_0) - (= x x_1) - ) - ) - (not - (and - (not (< x_1 n_0)) - (> n_0 1) - (not (>= m_1 1)) - ) - ) - ) -) + (or (not (and (= m m_1) (= n n_0) (= x x_1))) (not (and (not (< x_1 n_0)) (> n_0 1) (not (>= m_1 1)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/18_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/18_conf1.sl index 6450481..c5361e1 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/18_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/18_conf1.sl @@ -1,111 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var m Int) -(declare-primed-var n Int) -(declare-primed-var x Int) -(declare-primed-var tmp Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) -(declare-primed-var m_0 Int) -(declare-primed-var m_1 Int) -(declare-primed-var m_2 Int) -(declare-primed-var m_3 Int) -(declare-primed-var m_4 Int) -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((conf_0 Int) (m Int) (n Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (m_4 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((conf_0 Int) (m Int) (n Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (m_4 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= m m_1) - (= x x_1) - (= conf_0_0 8) - (= x_1 1) - (= m_1 1) - ) -) - + (and (= conf_0 conf_0_0) (= m m_1) (= x x_1) (= conf_0_0 8) (= x_1 1) (= m_1 1))) (define-fun trans-f ((conf_0 Int) (m Int) (n Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (m_4 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (conf_0! Int) (m! Int) (n! Int) (x! Int) (tmp! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int) (m_0! Int) (m_1! Int) (m_2! Int) (m_3! Int) (m_4! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= m_2 m) - (= x_2 x) - (= conf_0_1 conf_0!) - (= m_2 m!) - (= x_2 x!) - (= n n_0) - (= n! n_0) - (= conf_0 conf_0!) - (= m m!) - (= tmp tmp!) - ) - (and - (= conf_0_1 conf_0) - (= m_2 m) - (= x_2 x) - (< x_2 n_0) - (= m_3 x_2) - (= conf_0_2 (- 807 conf_0_1)) - (= conf_0_3 conf_0_2) - (= m_4 m_3) - (= x_3 (+ x_2 1)) - (= conf_0_4 (+ 715 695)) - (= conf_0_4 conf_0!) - (= m_4 m!) - (= x_3 x!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= conf_0_1 conf_0) - (= m_2 m) - (= x_2 x) - (< x_2 n_0) - (= conf_0_3 conf_0_1) - (= m_4 m_2) - (= x_3 (+ x_2 1)) - (= conf_0_4 (+ 715 695)) - (= conf_0_4 conf_0!) - (= m_4 m!) - (= x_3 x!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= m_2 m) (= x_2 x) (= conf_0_1 conf_0!) (= m_2 m!) (= x_2 x!) (= n n_0) (= n! n_0) (= conf_0 conf_0!) (= m m!) (= tmp tmp!)) (and (= conf_0_1 conf_0) (= m_2 m) (= x_2 x) (< x_2 n_0) (= m_3 x_2) (= conf_0_2 (- 807 conf_0_1)) (= conf_0_3 conf_0_2) (= m_4 m_3) (= x_3 (+ x_2 1)) (= conf_0_4 (+ 715 695)) (= conf_0_4 conf_0!) (= m_4 m!) (= x_3 x!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= conf_0_1 conf_0) (= m_2 m) (= x_2 x) (< x_2 n_0) (= conf_0_3 conf_0_1) (= m_4 m_2) (= x_3 (+ x_2 1)) (= conf_0_4 (+ 715 695)) (= conf_0_4 conf_0!) (= m_4 m!) (= x_3 x!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((conf_0 Int) (m Int) (n Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (m_4 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= m m_2) - (= n n_0) - (= x x_2) - ) - ) - (not - (and - (not (< x_2 n_0)) - (> n_0 1) - (not (>= m_2 1)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= m m_2) (= n n_0) (= x x_2))) (not (and (not (< x_2 n_0)) (> n_0 1) (not (>= m_2 1)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/18_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/18_conf5.sl index 69ed486..a25d791 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/18_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/18_conf5.sl @@ -1,154 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var m Int) -(declare-primed-var n Int) -(declare-primed-var x Int) -(declare-primed-var tmp Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_1_1 Int) -(declare-primed-var conf_1_2 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_2_1 Int) -(declare-primed-var conf_2_2 Int) -(declare-primed-var conf_2_3 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var m_0 Int) -(declare-primed-var m_1 Int) -(declare-primed-var m_2 Int) -(declare-primed-var m_3 Int) -(declare-primed-var m_4 Int) -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (m Int) (n Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_2_3 Int) (conf_3_0 Int) (conf_4_0 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (m_4 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (m Int) (n Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_2_3 Int) (conf_3_0 Int) (conf_4_0 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (m_4 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= m m_1) - (= x x_1) - (= conf_0_0 7) - (= conf_1_0 6) - (= conf_2_0 5) - (= conf_3_0 4) - (= conf_4_0 8) - (= x_1 1) - (= m_1 1) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= m m_1) (= x x_1) (= conf_0_0 7) (= conf_1_0 6) (= conf_2_0 5) (= conf_3_0 4) (= conf_4_0 8) (= x_1 1) (= m_1 1))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (m Int) (n Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_2_3 Int) (conf_3_0 Int) (conf_4_0 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (m_4 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (m! Int) (n! Int) (x! Int) (tmp! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_1_1! Int) (conf_1_2! Int) (conf_2_0! Int) (conf_2_1! Int) (conf_2_2! Int) (conf_2_3! Int) (conf_3_0! Int) (conf_4_0! Int) (m_0! Int) (m_1! Int) (m_2! Int) (m_3! Int) (m_4! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (= m_2 m) - (= x_2 x) - (= conf_1_1 conf_1!) - (= conf_2_1 conf_2!) - (= m_2 m!) - (= x_2 x!) - (= n n_0) - (= n! n_0) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= m m!) - (= tmp tmp!) - ) - (and - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (= m_2 m) - (= x_2 x) - (< x_2 n_0) - (= m_3 x_2) - (= conf_2_2 (- 212 715)) - (= conf_2_3 conf_2_2) - (= m_4 m_3) - (= x_3 (+ x_2 1)) - (= conf_1_2 conf_4_0) - (= conf_1_2 conf_1!) - (= conf_2_3 conf_2!) - (= m_4 m!) - (= x_3 x!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (= m_2 m) - (= x_2 x) - (< x_2 n_0) - (= conf_2_3 conf_2_1) - (= m_4 m_2) - (= x_3 (+ x_2 1)) - (= conf_1_2 conf_4_0) - (= conf_1_2 conf_1!) - (= conf_2_3 conf_2!) - (= m_4 m!) - (= x_3 x!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= conf_1_1 conf_1) (= conf_2_1 conf_2) (= m_2 m) (= x_2 x) (= conf_1_1 conf_1!) (= conf_2_1 conf_2!) (= m_2 m!) (= x_2 x!) (= n n_0) (= n! n_0) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= m m!) (= tmp tmp!)) (and (= conf_1_1 conf_1) (= conf_2_1 conf_2) (= m_2 m) (= x_2 x) (< x_2 n_0) (= m_3 x_2) (= conf_2_2 (- 212 715)) (= conf_2_3 conf_2_2) (= m_4 m_3) (= x_3 (+ x_2 1)) (= conf_1_2 conf_4_0) (= conf_1_2 conf_1!) (= conf_2_3 conf_2!) (= m_4 m!) (= x_3 x!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= conf_1_1 conf_1) (= conf_2_1 conf_2) (= m_2 m) (= x_2 x) (< x_2 n_0) (= conf_2_3 conf_2_1) (= m_4 m_2) (= x_3 (+ x_2 1)) (= conf_1_2 conf_4_0) (= conf_1_2 conf_1!) (= conf_2_3 conf_2!) (= m_4 m!) (= x_3 x!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (m Int) (n Int) (x Int) (tmp Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_2_3 Int) (conf_3_0 Int) (conf_4_0 Int) (m_0 Int) (m_1 Int) (m_2 Int) (m_3 Int) (m_4 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_1) - (= conf_2 conf_2_1) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= m m_2) - (= n n_0) - (= x x_2) - ) - ) - (not - (and - (not (< x_2 n_0)) - (> n_0 1) - (not (>= m_2 1)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_0) (= conf_1 conf_1_1) (= conf_2 conf_2_1) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= m m_2) (= n n_0) (= x x_2))) (not (and (not (< x_2 n_0)) (> n_0 1) (not (>= m_2 1)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/1_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/1_conf1.sl index cbeebb8..0400152 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/1_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/1_conf1.sl @@ -1,80 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) -(declare-primed-var y_3 Int) - (synth-inv inv-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int))) (define-fun pre-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= x x_1) - (= y y_1) - (= conf_0_0 4) - (= x_1 1) - (= y_1 0) - ) -) - + (and (= conf_0 conf_0_0) (= x x_1) (= y y_1) (= conf_0_0 4) (= x_1 1) (= y_1 0))) (define-fun trans-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (conf_0! Int) (x! Int) (y! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int) (y_3! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= y_2 y) - (= conf_0_1 conf_0!) - (= x_2 x!) - (= y_2 y!) - (= conf_0 conf_0!) - (= x x!) - ) - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= y_2 y) - (< y_2 100000) - (= x_3 (+ x_2 y_2)) - (= conf_0_2 (- 469 conf_0_1)) - (= y_3 (+ y_2 1)) - (= conf_0_3 (+ 687 622)) - (= conf_0_3 conf_0!) - (= x_3 x!) - (= y_3 y!) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= x_2 x) (= y_2 y) (= conf_0_1 conf_0!) (= x_2 x!) (= y_2 y!) (= conf_0 conf_0!) (= x x!)) (and (= conf_0_1 conf_0) (= x_2 x) (= y_2 y) (< y_2 100000) (= x_3 (+ x_2 y_2)) (= conf_0_2 (- 469 conf_0_1)) (= y_3 (+ y_2 1)) (= conf_0_3 (+ 687 622)) (= conf_0_3 conf_0!) (= x_3 x!) (= y_3 y!)))) (define-fun post-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= x x_2) - (= y y_2) - ) - ) - (not - (and - (not (< y_2 100000)) - (not (>= x_2 y_2)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= x x_2) (= y y_2))) (not (and (not (< y_2 100000)) (not (>= x_2 y_2)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/1_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/1_conf5.sl index e1fd9be..8d2125a 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/1_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/1_conf5.sl @@ -1,115 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var conf_4_1 Int) -(declare-primed-var conf_4_2 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) -(declare-primed-var y_3 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_1) - (= y y_1) - (= conf_0_0 9) - (= conf_1_0 4) - (= conf_2_0 5) - (= conf_3_0 0) - (= conf_4_0 4) - (= x_1 1) - (= y_1 0) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_1) (= y y_1) (= conf_0_0 9) (= conf_1_0 4) (= conf_2_0 5) (= conf_3_0 0) (= conf_4_0 4) (= x_1 1) (= y_1 0))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (x! Int) (y! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_4_0! Int) (conf_4_1! Int) (conf_4_2! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int) (y_3! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= conf_4_1 conf_4) - (= x_2 x) - (= y_2 y) - (= conf_0_1 conf_0!) - (= conf_4_1 conf_4!) - (= x_2 x!) - (= y_2 y!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= x x!) - ) - (and - (= conf_0_1 conf_0) - (= conf_4_1 conf_4) - (= x_2 x) - (= y_2 y) - (< y_2 100000) - (= x_3 (+ x_2 y_2)) - (= conf_4_2 (- conf_3_0 687)) - (= y_3 (+ y_2 1)) - (= conf_0_2 178) - (= conf_0_2 conf_0!) - (= conf_4_2 conf_4!) - (= x_3 x!) - (= y_3 y!) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= conf_4_1 conf_4) (= x_2 x) (= y_2 y) (= conf_0_1 conf_0!) (= conf_4_1 conf_4!) (= x_2 x!) (= y_2 y!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= x x!)) (and (= conf_0_1 conf_0) (= conf_4_1 conf_4) (= x_2 x) (= y_2 y) (< y_2 100000) (= x_3 (+ x_2 y_2)) (= conf_4_2 (- conf_3_0 687)) (= y_3 (+ y_2 1)) (= conf_0_2 178) (= conf_0_2 conf_0!) (= conf_4_2 conf_4!) (= x_3 x!) (= y_3 y!) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_1) - (= x x_2) - (= y y_2) - ) - ) - (not - (and - (not (< y_2 100000)) - (not (>= x_2 y_2)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_1) (= x x_2) (= y y_2))) (not (and (not (< y_2 100000)) (not (>= x_2 y_2)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/2.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/2.c.sl index cb6c5e1..e7617ad 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/2.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/2.c.sl @@ -1,65 +1,15 @@ (set-logic LIA) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) -(declare-primed-var y_3 Int) - (synth-inv inv-f ((x Int) (y Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int))) (define-fun pre-f ((x Int) (y Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int)) Bool - (and - (= x x_1) - (= y y_1) - (= x_1 1) - (= y_1 0) - ) -) - + (and (= x x_1) (= y y_1) (= x_1 1) (= y_1 0))) (define-fun trans-f ((x Int) (y Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (x! Int) (y! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int) (y_3! Int)) Bool - (or - (and - (= x_2 x) - (= y_2 y) - (= x_2 x!) - (= y_2 y!) - (= x x!) - ) - (and - (= x_2 x) - (= y_2 y) - (< y_2 1000) - (= x_3 (+ x_2 y_2)) - (= y_3 (+ y_2 1)) - (= x_3 x!) - (= y_3 y!) - ) - ) -) - + (or (and (= x_2 x) (= y_2 y) (= x_2 x!) (= y_2 y!) (= x x!)) (and (= x_2 x) (= y_2 y) (< y_2 1000) (= x_3 (+ x_2 y_2)) (= y_3 (+ y_2 1)) (= x_3 x!) (= y_3 y!)))) (define-fun post-f ((x Int) (y Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int)) Bool - (or - (not - (and - (= x x_2) - (= y y_2) - ) - ) - (not - (and - (not (< y_2 1000)) - (not (>= x_2 y_2)) - ) - ) - ) -) + (or (not (and (= x x_2) (= y y_2))) (not (and (not (< y_2 1000)) (not (>= x_2 y_2)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/23.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/23.c.sl index cedbf48..0f49b7a 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/23.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/23.c.sl @@ -1,64 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var j Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var j_0 Int) -(declare-primed-var j_1 Int) -(declare-primed-var j_2 Int) -(declare-primed-var j_3 Int) - (synth-inv inv-f ((i Int) (j Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int))) (define-fun pre-f ((i Int) (j Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int)) Bool - (and - (= i i_1) - (= j j_1) - (= i_1 1) - (= j_1 20) - ) -) - + (and (= i i_1) (= j j_1) (= i_1 1) (= j_1 20))) (define-fun trans-f ((i Int) (j Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (i! Int) (j! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (j_0! Int) (j_1! Int) (j_2! Int) (j_3! Int)) Bool - (or - (and - (= i_2 i) - (= j_2 j) - (= i_2 i!) - (= j_2 j!) - ) - (and - (= i_2 i) - (= j_2 j) - (>= j_2 i_2) - (= i_3 (+ i_2 2)) - (= j_3 (- j_2 1)) - (= i_3 i!) - (= j_3 j!) - ) - ) -) - + (or (and (= i_2 i) (= j_2 j) (= i_2 i!) (= j_2 j!)) (and (= i_2 i) (= j_2 j) (>= j_2 i_2) (= i_3 (+ i_2 2)) (= j_3 (- j_2 1)) (= i_3 i!) (= j_3 j!)))) (define-fun post-f ((i Int) (j Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int)) Bool - (or - (not - (and - (= i i_2) - (= j j_2) - ) - ) - (not - (and - (not (>= j_2 i_2)) - (not (= j_2 13)) - ) - ) - ) -) + (or (not (and (= i i_2) (= j j_2))) (not (and (not (>= j_2 i_2)) (not (= j_2 13)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/23_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/23_conf1.sl index 0a84405..d782af2 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/23_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/23_conf1.sl @@ -1,79 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var conf_0 Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var j_0 Int) -(declare-primed-var j_1 Int) -(declare-primed-var j_2 Int) -(declare-primed-var j_3 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) - (synth-inv inv-f ((i Int) (j Int) (conf_0 Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int))) (define-fun pre-f ((i Int) (j Int) (conf_0 Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int)) Bool - (and - (= i i_1) - (= j j_1) - (= conf_0 conf_0_0) - (= conf_0_0 2) - (= i_1 1) - (= j_1 20) - ) -) - + (and (= i i_1) (= j j_1) (= conf_0 conf_0_0) (= conf_0_0 2) (= i_1 1) (= j_1 20))) (define-fun trans-f ((i Int) (j Int) (conf_0 Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (i! Int) (j! Int) (conf_0! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (j_0! Int) (j_1! Int) (j_2! Int) (j_3! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int)) Bool - (or - (and - (= i_2 i) - (= j_2 j) - (= conf_0_1 conf_0) - (= i_2 i!) - (= j_2 j!) - (= conf_0_1 conf_0!) - (= conf_0 conf_0!) - ) - (and - (= i_2 i) - (= j_2 j) - (= conf_0_1 conf_0) - (>= j_2 i_2) - (= i_3 (+ i_2 2)) - (= conf_0_2 (- 535 118)) - (= j_3 (- j_2 1)) - (= conf_0_3 conf_0_2) - (= i_3 i!) - (= j_3 j!) - (= conf_0_3 conf_0!) - ) - ) -) - + (or (and (= i_2 i) (= j_2 j) (= conf_0_1 conf_0) (= i_2 i!) (= j_2 j!) (= conf_0_1 conf_0!) (= conf_0 conf_0!)) (and (= i_2 i) (= j_2 j) (= conf_0_1 conf_0) (>= j_2 i_2) (= i_3 (+ i_2 2)) (= conf_0_2 (- 535 118)) (= j_3 (- j_2 1)) (= conf_0_3 conf_0_2) (= i_3 i!) (= j_3 j!) (= conf_0_3 conf_0!)))) (define-fun post-f ((i Int) (j Int) (conf_0 Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int)) Bool - (or - (not - (and - (= i i_2) - (= j j_2) - (= conf_0 conf_0_1) - ) - ) - (not - (and - (not (>= j_2 i_2)) - (not (= j_2 13)) - ) - ) - ) -) + (or (not (and (= i i_2) (= j j_2) (= conf_0 conf_0_1))) (not (and (not (>= j_2 i_2)) (not (= j_2 13)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/23_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/23_conf5.sl index 4885aab..a08ac49 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/23_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/23_conf5.sl @@ -1,114 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var j_0 Int) -(declare-primed-var j_1 Int) -(declare-primed-var j_2 Int) -(declare-primed-var j_3 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var conf_4_1 Int) -(declare-primed-var conf_4_2 Int) - (synth-inv inv-f ((i Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int))) (define-fun pre-f ((i Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int)) Bool - (and - (= i i_1) - (= j j_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= conf_0_0 5) - (= conf_1_0 0) - (= conf_2_0 7) - (= conf_3_0 5) - (= conf_4_0 2) - (= i_1 1) - (= j_1 20) - ) -) - + (and (= i i_1) (= j j_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= conf_0_0 5) (= conf_1_0 0) (= conf_2_0 7) (= conf_3_0 5) (= conf_4_0 2) (= i_1 1) (= j_1 20))) (define-fun trans-f ((i Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (i! Int) (j! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (j_0! Int) (j_1! Int) (j_2! Int) (j_3! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_4_0! Int) (conf_4_1! Int) (conf_4_2! Int)) Bool - (or - (and - (= i_2 i) - (= j_2 j) - (= conf_0_1 conf_0) - (= conf_4_1 conf_4) - (= i_2 i!) - (= j_2 j!) - (= conf_0_1 conf_0!) - (= conf_4_1 conf_4!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - ) - (and - (= i_2 i) - (= j_2 j) - (= conf_0_1 conf_0) - (= conf_4_1 conf_4) - (>= j_2 i_2) - (= i_3 (+ i_2 2)) - (= conf_0_2 643) - (= j_3 (- j_2 1)) - (= conf_4_2 (+ conf_0_2 80)) - (= i_3 i!) - (= j_3 j!) - (= conf_0_2 conf_0!) - (= conf_4_2 conf_4!) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - ) - ) -) - + (or (and (= i_2 i) (= j_2 j) (= conf_0_1 conf_0) (= conf_4_1 conf_4) (= i_2 i!) (= j_2 j!) (= conf_0_1 conf_0!) (= conf_4_1 conf_4!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!)) (and (= i_2 i) (= j_2 j) (= conf_0_1 conf_0) (= conf_4_1 conf_4) (>= j_2 i_2) (= i_3 (+ i_2 2)) (= conf_0_2 643) (= j_3 (- j_2 1)) (= conf_4_2 (+ conf_0_2 80)) (= i_3 i!) (= j_3 j!) (= conf_0_2 conf_0!) (= conf_4_2 conf_4!) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0)))) (define-fun post-f ((i Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int)) Bool - (or - (not - (and - (= i i_2) - (= j j_2) - (= conf_0 conf_0_1) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_1) - ) - ) - (not - (and - (not (>= j_2 i_2)) - (not (= j_2 13)) - ) - ) - ) -) + (or (not (and (= i i_2) (= j j_2) (= conf_0 conf_0_1) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_1))) (not (and (not (>= j_2 i_2)) (not (= j_2 13)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/24.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/24.c.sl index 9e38d62..52f1d46 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/24.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/24.c.sl @@ -1,64 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var j Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var j_0 Int) -(declare-primed-var j_1 Int) -(declare-primed-var j_2 Int) -(declare-primed-var j_3 Int) - (synth-inv inv-f ((i Int) (j Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int))) (define-fun pre-f ((i Int) (j Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int)) Bool - (and - (= i i_1) - (= j j_1) - (= i_1 1) - (= j_1 10) - ) -) - + (and (= i i_1) (= j j_1) (= i_1 1) (= j_1 10))) (define-fun trans-f ((i Int) (j Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (i! Int) (j! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (j_0! Int) (j_1! Int) (j_2! Int) (j_3! Int)) Bool - (or - (and - (= i_2 i) - (= j_2 j) - (= i_2 i!) - (= j_2 j!) - ) - (and - (= i_2 i) - (= j_2 j) - (>= j_2 i_2) - (= i_3 (+ i_2 2)) - (= j_3 (- j_2 1)) - (= i_3 i!) - (= j_3 j!) - ) - ) -) - + (or (and (= i_2 i) (= j_2 j) (= i_2 i!) (= j_2 j!)) (and (= i_2 i) (= j_2 j) (>= j_2 i_2) (= i_3 (+ i_2 2)) (= j_3 (- j_2 1)) (= i_3 i!) (= j_3 j!)))) (define-fun post-f ((i Int) (j Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int)) Bool - (or - (not - (and - (= i i_2) - (= j j_2) - ) - ) - (not - (and - (not (>= j_2 i_2)) - (not (= j_2 6)) - ) - ) - ) -) + (or (not (and (= i i_2) (= j j_2))) (not (and (not (>= j_2 i_2)) (not (= j_2 6)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/24_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/24_conf1.sl index 50a5144..f7b8ed5 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/24_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/24_conf1.sl @@ -1,79 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var conf_0 Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var j_0 Int) -(declare-primed-var j_1 Int) -(declare-primed-var j_2 Int) -(declare-primed-var j_3 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) - (synth-inv inv-f ((i Int) (j Int) (conf_0 Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int))) (define-fun pre-f ((i Int) (j Int) (conf_0 Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int)) Bool - (and - (= i i_1) - (= j j_1) - (= conf_0 conf_0_0) - (= conf_0_0 0) - (= i_1 1) - (= j_1 10) - ) -) - + (and (= i i_1) (= j j_1) (= conf_0 conf_0_0) (= conf_0_0 0) (= i_1 1) (= j_1 10))) (define-fun trans-f ((i Int) (j Int) (conf_0 Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (i! Int) (j! Int) (conf_0! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (j_0! Int) (j_1! Int) (j_2! Int) (j_3! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int)) Bool - (or - (and - (= i_2 i) - (= j_2 j) - (= conf_0_1 conf_0) - (= i_2 i!) - (= j_2 j!) - (= conf_0_1 conf_0!) - (= conf_0 conf_0!) - ) - (and - (= i_2 i) - (= j_2 j) - (= conf_0_1 conf_0) - (>= j_2 i_2) - (= i_3 (+ i_2 2)) - (= conf_0_2 (- 593 453)) - (= j_3 (- j_2 1)) - (= conf_0_3 973) - (= i_3 i!) - (= j_3 j!) - (= conf_0_3 conf_0!) - ) - ) -) - + (or (and (= i_2 i) (= j_2 j) (= conf_0_1 conf_0) (= i_2 i!) (= j_2 j!) (= conf_0_1 conf_0!) (= conf_0 conf_0!)) (and (= i_2 i) (= j_2 j) (= conf_0_1 conf_0) (>= j_2 i_2) (= i_3 (+ i_2 2)) (= conf_0_2 (- 593 453)) (= j_3 (- j_2 1)) (= conf_0_3 973) (= i_3 i!) (= j_3 j!) (= conf_0_3 conf_0!)))) (define-fun post-f ((i Int) (j Int) (conf_0 Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int)) Bool - (or - (not - (and - (= i i_2) - (= j j_2) - (= conf_0 conf_0_1) - ) - ) - (not - (and - (not (>= j_2 i_2)) - (not (= j_2 6)) - ) - ) - ) -) + (or (not (and (= i i_2) (= j j_2) (= conf_0 conf_0_1))) (not (and (not (>= j_2 i_2)) (not (= j_2 6)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/24_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/24_conf5.sl index eece0eb..8327e5d 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/24_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/24_conf5.sl @@ -1,114 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var j_0 Int) -(declare-primed-var j_1 Int) -(declare-primed-var j_2 Int) -(declare-primed-var j_3 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_3_1 Int) -(declare-primed-var conf_3_2 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var conf_4_1 Int) -(declare-primed-var conf_4_2 Int) - (synth-inv inv-f ((i Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int))) (define-fun pre-f ((i Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int)) Bool - (and - (= i i_1) - (= j j_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= conf_0_0 3) - (= conf_1_0 0) - (= conf_2_0 5) - (= conf_3_0 3) - (= conf_4_0 0) - (= i_1 1) - (= j_1 10) - ) -) - + (and (= i i_1) (= j j_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= conf_0_0 3) (= conf_1_0 0) (= conf_2_0 5) (= conf_3_0 3) (= conf_4_0 0) (= i_1 1) (= j_1 10))) (define-fun trans-f ((i Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (i! Int) (j! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (j_0! Int) (j_1! Int) (j_2! Int) (j_3! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_3_1! Int) (conf_3_2! Int) (conf_4_0! Int) (conf_4_1! Int) (conf_4_2! Int)) Bool - (or - (and - (= i_2 i) - (= j_2 j) - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (= i_2 i!) - (= j_2 j!) - (= conf_3_1 conf_3!) - (= conf_4_1 conf_4!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - ) - (and - (= i_2 i) - (= j_2 j) - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (>= j_2 i_2) - (= i_3 (+ i_2 2)) - (= conf_4_2 conf_4_1) - (= j_3 (- j_2 1)) - (= conf_3_2 conf_0_0) - (= i_3 i!) - (= j_3 j!) - (= conf_3_2 conf_3!) - (= conf_4_2 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - ) - ) -) - + (or (and (= i_2 i) (= j_2 j) (= conf_3_1 conf_3) (= conf_4_1 conf_4) (= i_2 i!) (= j_2 j!) (= conf_3_1 conf_3!) (= conf_4_1 conf_4!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!)) (and (= i_2 i) (= j_2 j) (= conf_3_1 conf_3) (= conf_4_1 conf_4) (>= j_2 i_2) (= i_3 (+ i_2 2)) (= conf_4_2 conf_4_1) (= j_3 (- j_2 1)) (= conf_3_2 conf_0_0) (= i_3 i!) (= j_3 j!) (= conf_3_2 conf_3!) (= conf_4_2 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0)))) (define-fun post-f ((i Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int)) Bool - (or - (not - (and - (= i i_2) - (= j j_2) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_1) - (= conf_4 conf_4_1) - ) - ) - (not - (and - (not (>= j_2 i_2)) - (not (= j_2 6)) - ) - ) - ) -) + (or (not (and (= i i_2) (= j j_2) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_1) (= conf_4 conf_4_1))) (not (and (not (>= j_2 i_2)) (not (= j_2 6)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/25.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/25.c.sl index 7087634..f861a1a 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/25.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/25.c.sl @@ -1,49 +1,15 @@ (set-logic LIA) -(declare-primed-var x Int) - -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((x Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((x Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= x x_1) - (= x_1 10000) - ) -) - + (and (= x x_1) (= x_1 10000))) (define-fun trans-f ((x Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (x! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= x_2 x) - (= x_2 x!) - ) - (and - (= x_2 x) - (> x_2 0) - (= x_3 (- x_2 1)) - (= x_3 x!) - ) - ) -) - + (or (and (= x_2 x) (= x_2 x!)) (and (= x_2 x) (> x_2 0) (= x_3 (- x_2 1)) (= x_3 x!)))) (define-fun post-f ((x Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (= x x_2) - ) - (not - (and - (not (> x_2 0)) - (not (= x_2 0)) - ) - ) - ) -) + (or (not (= x x_2)) (not (and (not (> x_2 0)) (not (= x_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/25_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/25_conf1.sl index b095179..78d1692 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/25_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/25_conf1.sl @@ -1,64 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var x Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((conf_0 Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((conf_0 Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= x x_1) - (= conf_0_0 6) - (= x_1 10000) - ) -) - + (and (= conf_0 conf_0_0) (= x x_1) (= conf_0_0 6) (= x_1 10000))) (define-fun trans-f ((conf_0 Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (conf_0! Int) (x! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= conf_0_1 conf_0!) - (= x_2 x!) - (= conf_0 conf_0!) - ) - (and - (= conf_0_1 conf_0) - (= x_2 x) - (> x_2 0) - (= x_3 (- x_2 1)) - (= conf_0_2 (- 409 conf_0_1)) - (= conf_0_2 conf_0!) - (= x_3 x!) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= x_2 x) (= conf_0_1 conf_0!) (= x_2 x!) (= conf_0 conf_0!)) (and (= conf_0_1 conf_0) (= x_2 x) (> x_2 0) (= x_3 (- x_2 1)) (= conf_0_2 (- 409 conf_0_1)) (= conf_0_2 conf_0!) (= x_3 x!)))) (define-fun post-f ((conf_0 Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= x x_2) - ) - ) - (not - (and - (not (> x_2 0)) - (not (= x_2 0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= x x_2))) (not (and (not (> x_2 0)) (not (= x_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/25_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/25_conf5.sl index 28a8398..4a879a3 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/25_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/25_conf5.sl @@ -1,96 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var x Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var conf_4_1 Int) -(declare-primed-var conf_4_2 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_1) - (= conf_0_0 9) - (= conf_1_0 2) - (= conf_2_0 3) - (= conf_3_0 1) - (= conf_4_0 6) - (= x_1 10000) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_1) (= conf_0_0 9) (= conf_1_0 2) (= conf_2_0 3) (= conf_3_0 1) (= conf_4_0 6) (= x_1 10000))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (x! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_4_0! Int) (conf_4_1! Int) (conf_4_2! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= conf_4_1 conf_4) - (= x_2 x) - (= conf_4_1 conf_4!) - (= x_2 x!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - ) - (and - (= conf_4_1 conf_4) - (= x_2 x) - (> x_2 0) - (= x_3 (- x_2 1)) - (= conf_4_2 (- 394 509)) - (= conf_4_2 conf_4!) - (= x_3 x!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - ) - ) -) - + (or (and (= conf_4_1 conf_4) (= x_2 x) (= conf_4_1 conf_4!) (= x_2 x!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!)) (and (= conf_4_1 conf_4) (= x_2 x) (> x_2 0) (= x_3 (- x_2 1)) (= conf_4_2 (- 394 509)) (= conf_4_2 conf_4!) (= x_3 x!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_1) - (= x x_2) - ) - ) - (not - (and - (not (> x_2 0)) - (not (= x_2 0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_1) (= x x_2))) (not (and (not (> x_2 0)) (not (= x_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/26.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/26.c.sl index 36ce982..96b0e1a 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/26.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/26.c.sl @@ -1,59 +1,15 @@ (set-logic LIA) -(declare-primed-var n Int) -(declare-primed-var x Int) - -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((n Int) (x Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((n Int) (x Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= n n_0) - (= x x_1) - (= x_1 n_0) - ) -) - + (and (= n n_0) (= x x_1) (= x_1 n_0))) (define-fun trans-f ((n Int) (x Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (n! Int) (x! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= x_2 x) - (= x_2 x!) - (= n n!) - ) - (and - (= x_2 x) - (> x_2 1) - (= x_3 (- x_2 1)) - (= x_3 x!) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= x_2 x) (= x_2 x!) (= n n!)) (and (= x_2 x) (> x_2 1) (= x_3 (- x_2 1)) (= x_3 x!) (= n n_0) (= n! n_0)))) (define-fun post-f ((n Int) (x Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= n n_0) - (= x x_2) - ) - ) - (not - (and - (not (> x_2 1)) - (not (= x_2 1)) - (not (< n_0 0)) - ) - ) - ) -) + (or (not (and (= n n_0) (= x x_2))) (not (and (not (> x_2 1)) (not (= x_2 1)) (not (< n_0 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/26_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/26_conf1.sl index 66a670c..9f50993 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/26_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/26_conf1.sl @@ -1,72 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var n Int) -(declare-primed-var x Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((conf_0 Int) (n Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((conf_0 Int) (n Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= n n_0) - (= x x_1) - (= conf_0_0 6) - (= x_1 n_0) - ) -) - + (and (= conf_0 conf_0_0) (= n n_0) (= x x_1) (= conf_0_0 6) (= x_1 n_0))) (define-fun trans-f ((conf_0 Int) (n Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (conf_0! Int) (n! Int) (x! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= conf_0_1 conf_0!) - (= x_2 x!) - (= conf_0 conf_0!) - (= n n!) - ) - (and - (= conf_0_1 conf_0) - (= x_2 x) - (> x_2 1) - (= x_3 (- x_2 1)) - (= conf_0_2 (- 307 438)) - (= conf_0_2 conf_0!) - (= x_3 x!) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= x_2 x) (= conf_0_1 conf_0!) (= x_2 x!) (= conf_0 conf_0!) (= n n!)) (and (= conf_0_1 conf_0) (= x_2 x) (> x_2 1) (= x_3 (- x_2 1)) (= conf_0_2 (- 307 438)) (= conf_0_2 conf_0!) (= x_3 x!) (= n n_0) (= n! n_0)))) (define-fun post-f ((conf_0 Int) (n Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= n n_0) - (= x x_2) - ) - ) - (not - (and - (not (> x_2 1)) - (not (= x_2 1)) - (not (< n_0 0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= n n_0) (= x x_2))) (not (and (not (> x_2 1)) (not (= x_2 1)) (not (< n_0 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/26_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/26_conf5.sl index 9325912..828984a 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/26_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/26_conf5.sl @@ -1,104 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var n Int) -(declare-primed-var x Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_3_1 Int) -(declare-primed-var conf_3_2 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= n n_0) - (= x x_1) - (= conf_0_0 7) - (= conf_1_0 8) - (= conf_2_0 7) - (= conf_3_0 6) - (= conf_4_0 6) - (= x_1 n_0) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= n n_0) (= x x_1) (= conf_0_0 7) (= conf_1_0 8) (= conf_2_0 7) (= conf_3_0 6) (= conf_4_0 6) (= x_1 n_0))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (n! Int) (x! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_3_1! Int) (conf_3_2! Int) (conf_4_0! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= conf_3_1 conf_3) - (= x_2 x) - (= conf_3_1 conf_3!) - (= x_2 x!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= n n!) - ) - (and - (= conf_3_1 conf_3) - (= x_2 x) - (> x_2 1) - (= x_3 (- x_2 1)) - (= conf_3_2 128) - (= conf_3_2 conf_3!) - (= x_3 x!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= conf_3_1 conf_3) (= x_2 x) (= conf_3_1 conf_3!) (= x_2 x!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= n n!)) (and (= conf_3_1 conf_3) (= x_2 x) (> x_2 1) (= x_3 (- x_2 1)) (= conf_3_2 128) (= conf_3_2 conf_3!) (= x_3 x!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_1) - (= conf_4 conf_4_0) - (= n n_0) - (= x x_2) - ) - ) - (not - (and - (not (> x_2 1)) - (not (= x_2 1)) - (not (< n_0 0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_1) (= conf_4 conf_4_0) (= n n_0) (= x x_2))) (not (and (not (> x_2 1)) (not (= x_2 1)) (not (< n_0 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/27.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/27.c.sl index 0bf43ef..08e806f 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/27.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/27.c.sl @@ -1,59 +1,15 @@ (set-logic LIA) -(declare-primed-var n Int) -(declare-primed-var x Int) - -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((n Int) (x Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((n Int) (x Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= n n_0) - (= x x_1) - (= x_1 n_0) - ) -) - + (and (= n n_0) (= x x_1) (= x_1 n_0))) (define-fun trans-f ((n Int) (x Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (n! Int) (x! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= x_2 x) - (= x_2 x!) - (= n n!) - ) - (and - (= x_2 x) - (> x_2 1) - (= x_3 (- x_2 1)) - (= x_3 x!) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= x_2 x) (= x_2 x!) (= n n!)) (and (= x_2 x) (> x_2 1) (= x_3 (- x_2 1)) (= x_3 x!) (= n n_0) (= n! n_0)))) (define-fun post-f ((n Int) (x Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= n n_0) - (= x x_2) - ) - ) - (not - (and - (not (> x_2 1)) - (>= n_0 0) - (not (= x_2 1)) - ) - ) - ) -) + (or (not (and (= n n_0) (= x x_2))) (not (and (not (> x_2 1)) (>= n_0 0) (not (= x_2 1)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/27_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/27_conf1.sl index 6090b42..8d7a91a 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/27_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/27_conf1.sl @@ -1,72 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var n Int) -(declare-primed-var x Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((conf_0 Int) (n Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((conf_0 Int) (n Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= n n_0) - (= x x_1) - (= conf_0_0 2) - (= x_1 n_0) - ) -) - + (and (= conf_0 conf_0_0) (= n n_0) (= x x_1) (= conf_0_0 2) (= x_1 n_0))) (define-fun trans-f ((conf_0 Int) (n Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (conf_0! Int) (n! Int) (x! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= conf_0_1 conf_0!) - (= x_2 x!) - (= conf_0 conf_0!) - (= n n!) - ) - (and - (= conf_0_1 conf_0) - (= x_2 x) - (> x_2 1) - (= x_3 (- x_2 1)) - (= conf_0_2 (+ conf_0_1 conf_0_1)) - (= conf_0_2 conf_0!) - (= x_3 x!) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= x_2 x) (= conf_0_1 conf_0!) (= x_2 x!) (= conf_0 conf_0!) (= n n!)) (and (= conf_0_1 conf_0) (= x_2 x) (> x_2 1) (= x_3 (- x_2 1)) (= conf_0_2 (+ conf_0_1 conf_0_1)) (= conf_0_2 conf_0!) (= x_3 x!) (= n n_0) (= n! n_0)))) (define-fun post-f ((conf_0 Int) (n Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= n n_0) - (= x x_2) - ) - ) - (not - (and - (not (> x_2 1)) - (>= n_0 0) - (not (= x_2 1)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= n n_0) (= x x_2))) (not (and (not (> x_2 1)) (>= n_0 0) (not (= x_2 1)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/27_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/27_conf5.sl index 032cd7f..678e24c 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/27_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/27_conf5.sl @@ -1,104 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var n Int) -(declare-primed-var x Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var conf_4_1 Int) -(declare-primed-var conf_4_2 Int) -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= n n_0) - (= x x_1) - (= conf_0_0 4) - (= conf_1_0 7) - (= conf_2_0 9) - (= conf_3_0 8) - (= conf_4_0 2) - (= x_1 n_0) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= n n_0) (= x x_1) (= conf_0_0 4) (= conf_1_0 7) (= conf_2_0 9) (= conf_3_0 8) (= conf_4_0 2) (= x_1 n_0))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (n! Int) (x! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_4_0! Int) (conf_4_1! Int) (conf_4_2! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= conf_4_1 conf_4) - (= x_2 x) - (= conf_4_1 conf_4!) - (= x_2 x!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= n n!) - ) - (and - (= conf_4_1 conf_4) - (= x_2 x) - (> x_2 1) - (= x_3 (- x_2 1)) - (= conf_4_2 (- conf_0_0 conf_2_0)) - (= conf_4_2 conf_4!) - (= x_3 x!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= conf_4_1 conf_4) (= x_2 x) (= conf_4_1 conf_4!) (= x_2 x!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= n n!)) (and (= conf_4_1 conf_4) (= x_2 x) (> x_2 1) (= x_3 (- x_2 1)) (= conf_4_2 (- conf_0_0 conf_2_0)) (= conf_4_2 conf_4!) (= x_3 x!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= n n_0) (= n! n_0)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_1) - (= n n_0) - (= x x_2) - ) - ) - (not - (and - (not (> x_2 1)) - (>= n_0 0) - (not (= x_2 1)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_1) (= n n_0) (= x x_2))) (not (and (not (> x_2 1)) (>= n_0 0) (not (= x_2 1)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/28.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/28.c.sl index 183777a..63ab916 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/28.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/28.c.sl @@ -1,59 +1,15 @@ (set-logic LIA) -(declare-primed-var n Int) -(declare-primed-var x Int) - -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((n Int) (x Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((n Int) (x Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= n n_0) - (= x x_1) - (= x_1 n_0) - ) -) - + (and (= n n_0) (= x x_1) (= x_1 n_0))) (define-fun trans-f ((n Int) (x Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (n! Int) (x! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= x_2 x) - (= x_2 x!) - (= n n!) - ) - (and - (= x_2 x) - (> x_2 0) - (= x_3 (- x_2 1)) - (= x_3 x!) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= x_2 x) (= x_2 x!) (= n n!)) (and (= x_2 x) (> x_2 0) (= x_3 (- x_2 1)) (= x_3 x!) (= n n_0) (= n! n_0)))) (define-fun post-f ((n Int) (x Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= n n_0) - (= x x_2) - ) - ) - (not - (and - (not (> x_2 0)) - (not (= x_2 0)) - (not (< n_0 0)) - ) - ) - ) -) + (or (not (and (= n n_0) (= x x_2))) (not (and (not (> x_2 0)) (not (= x_2 0)) (not (< n_0 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/28_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/28_conf1.sl index d0ba285..c3bbcb2 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/28_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/28_conf1.sl @@ -1,72 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var n Int) -(declare-primed-var x Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((conf_0 Int) (n Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((conf_0 Int) (n Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= n n_0) - (= x x_1) - (= conf_0_0 1) - (= x_1 n_0) - ) -) - + (and (= conf_0 conf_0_0) (= n n_0) (= x x_1) (= conf_0_0 1) (= x_1 n_0))) (define-fun trans-f ((conf_0 Int) (n Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (conf_0! Int) (n! Int) (x! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= conf_0_1 conf_0!) - (= x_2 x!) - (= conf_0 conf_0!) - (= n n!) - ) - (and - (= conf_0_1 conf_0) - (= x_2 x) - (> x_2 0) - (= x_3 (- x_2 1)) - (= conf_0_2 conf_0_1) - (= conf_0_2 conf_0!) - (= x_3 x!) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= x_2 x) (= conf_0_1 conf_0!) (= x_2 x!) (= conf_0 conf_0!) (= n n!)) (and (= conf_0_1 conf_0) (= x_2 x) (> x_2 0) (= x_3 (- x_2 1)) (= conf_0_2 conf_0_1) (= conf_0_2 conf_0!) (= x_3 x!) (= n n_0) (= n! n_0)))) (define-fun post-f ((conf_0 Int) (n Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= n n_0) - (= x x_2) - ) - ) - (not - (and - (not (> x_2 0)) - (not (= x_2 0)) - (not (< n_0 0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= n n_0) (= x x_2))) (not (and (not (> x_2 0)) (not (= x_2 0)) (not (< n_0 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/28_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/28_conf5.sl index 4618739..2fe6564 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/28_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/28_conf5.sl @@ -1,104 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var n Int) -(declare-primed-var x Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= n n_0) - (= x x_1) - (= conf_0_0 5) - (= conf_1_0 7) - (= conf_2_0 4) - (= conf_3_0 0) - (= conf_4_0 1) - (= x_1 n_0) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= n n_0) (= x x_1) (= conf_0_0 5) (= conf_1_0 7) (= conf_2_0 4) (= conf_3_0 0) (= conf_4_0 1) (= x_1 n_0))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (n! Int) (x! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_4_0! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= conf_0_1 conf_0!) - (= x_2 x!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= n n!) - ) - (and - (= conf_0_1 conf_0) - (= x_2 x) - (> x_2 0) - (= x_3 (- x_2 1)) - (= conf_0_2 (+ conf_1_0 376)) - (= conf_0_2 conf_0!) - (= x_3 x!) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= x_2 x) (= conf_0_1 conf_0!) (= x_2 x!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= n n!)) (and (= conf_0_1 conf_0) (= x_2 x) (> x_2 0) (= x_3 (- x_2 1)) (= conf_0_2 (+ conf_1_0 376)) (= conf_0_2 conf_0!) (= x_3 x!) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= n n_0) - (= x x_2) - ) - ) - (not - (and - (not (> x_2 0)) - (not (= x_2 0)) - (not (< n_0 0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= n n_0) (= x x_2))) (not (and (not (> x_2 0)) (not (= x_2 0)) (not (< n_0 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/29.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/29.c.sl index af30ef2..966290a 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/29.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/29.c.sl @@ -1,59 +1,15 @@ (set-logic LIA) -(declare-primed-var n Int) -(declare-primed-var x Int) - -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((n Int) (x Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((n Int) (x Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= n n_0) - (= x x_1) - (= x_1 n_0) - ) -) - + (and (= n n_0) (= x x_1) (= x_1 n_0))) (define-fun trans-f ((n Int) (x Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (n! Int) (x! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= x_2 x) - (= x_2 x!) - (= n n!) - ) - (and - (= x_2 x) - (> x_2 0) - (= x_3 (- x_2 1)) - (= x_3 x!) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= x_2 x) (= x_2 x!) (= n n!)) (and (= x_2 x) (> x_2 0) (= x_3 (- x_2 1)) (= x_3 x!) (= n n_0) (= n! n_0)))) (define-fun post-f ((n Int) (x Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= n n_0) - (= x x_2) - ) - ) - (not - (and - (not (> x_2 0)) - (>= n_0 0) - (not (= x_2 0)) - ) - ) - ) -) + (or (not (and (= n n_0) (= x x_2))) (not (and (not (> x_2 0)) (>= n_0 0) (not (= x_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/29_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/29_conf1.sl index 237976f..4b02132 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/29_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/29_conf1.sl @@ -1,72 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var n Int) -(declare-primed-var x Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((conf_0 Int) (n Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((conf_0 Int) (n Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= n n_0) - (= x x_1) - (= conf_0_0 9) - (= x_1 n_0) - ) -) - + (and (= conf_0 conf_0_0) (= n n_0) (= x x_1) (= conf_0_0 9) (= x_1 n_0))) (define-fun trans-f ((conf_0 Int) (n Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (conf_0! Int) (n! Int) (x! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= conf_0_1 conf_0!) - (= x_2 x!) - (= conf_0 conf_0!) - (= n n!) - ) - (and - (= conf_0_1 conf_0) - (= x_2 x) - (> x_2 0) - (= x_3 (- x_2 1)) - (= conf_0_2 conf_0_1) - (= conf_0_2 conf_0!) - (= x_3 x!) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= x_2 x) (= conf_0_1 conf_0!) (= x_2 x!) (= conf_0 conf_0!) (= n n!)) (and (= conf_0_1 conf_0) (= x_2 x) (> x_2 0) (= x_3 (- x_2 1)) (= conf_0_2 conf_0_1) (= conf_0_2 conf_0!) (= x_3 x!) (= n n_0) (= n! n_0)))) (define-fun post-f ((conf_0 Int) (n Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= n n_0) - (= x x_2) - ) - ) - (not - (and - (not (> x_2 0)) - (>= n_0 0) - (not (= x_2 0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= n n_0) (= x x_2))) (not (and (not (> x_2 0)) (>= n_0 0) (not (= x_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/29_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/29_conf5.sl index 657a379..3e5ed4b 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/29_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/29_conf5.sl @@ -1,104 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var n Int) -(declare-primed-var x Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_1_1 Int) -(declare-primed-var conf_1_2 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= n n_0) - (= x x_1) - (= conf_0_0 9) - (= conf_1_0 7) - (= conf_2_0 2) - (= conf_3_0 1) - (= conf_4_0 9) - (= x_1 n_0) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= n n_0) (= x x_1) (= conf_0_0 9) (= conf_1_0 7) (= conf_2_0 2) (= conf_3_0 1) (= conf_4_0 9) (= x_1 n_0))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (n! Int) (x! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_1_1! Int) (conf_1_2! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_4_0! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= conf_1_1 conf_1) - (= x_2 x) - (= conf_1_1 conf_1!) - (= x_2 x!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= n n!) - ) - (and - (= conf_1_1 conf_1) - (= x_2 x) - (> x_2 0) - (= x_3 (- x_2 1)) - (= conf_1_2 conf_2_0) - (= conf_1_2 conf_1!) - (= x_3 x!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= conf_1_1 conf_1) (= x_2 x) (= conf_1_1 conf_1!) (= x_2 x!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= n n!)) (and (= conf_1_1 conf_1) (= x_2 x) (> x_2 0) (= x_3 (- x_2 1)) (= conf_1_2 conf_2_0) (= conf_1_2 conf_1!) (= x_3 x!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_1) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= n n_0) - (= x x_2) - ) - ) - (not - (and - (not (> x_2 0)) - (>= n_0 0) - (not (= x_2 0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_0) (= conf_1 conf_1_1) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= n n_0) (= x x_2))) (not (and (not (> x_2 0)) (>= n_0 0) (not (= x_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/2_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/2_conf1.sl index 7063799..7517e0d 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/2_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/2_conf1.sl @@ -1,80 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) -(declare-primed-var y_3 Int) - (synth-inv inv-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int))) (define-fun pre-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= x x_1) - (= y y_1) - (= conf_0_0 4) - (= x_1 1) - (= y_1 0) - ) -) - + (and (= conf_0 conf_0_0) (= x x_1) (= y y_1) (= conf_0_0 4) (= x_1 1) (= y_1 0))) (define-fun trans-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (conf_0! Int) (x! Int) (y! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int) (y_3! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= y_2 y) - (= conf_0_1 conf_0!) - (= x_2 x!) - (= y_2 y!) - (= conf_0 conf_0!) - (= x x!) - ) - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= y_2 y) - (< y_2 1000) - (= x_3 (+ x_2 y_2)) - (= conf_0_2 (- 469 conf_0_1)) - (= y_3 (+ y_2 1)) - (= conf_0_3 (+ 687 622)) - (= conf_0_3 conf_0!) - (= x_3 x!) - (= y_3 y!) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= x_2 x) (= y_2 y) (= conf_0_1 conf_0!) (= x_2 x!) (= y_2 y!) (= conf_0 conf_0!) (= x x!)) (and (= conf_0_1 conf_0) (= x_2 x) (= y_2 y) (< y_2 1000) (= x_3 (+ x_2 y_2)) (= conf_0_2 (- 469 conf_0_1)) (= y_3 (+ y_2 1)) (= conf_0_3 (+ 687 622)) (= conf_0_3 conf_0!) (= x_3 x!) (= y_3 y!)))) (define-fun post-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= x x_2) - (= y y_2) - ) - ) - (not - (and - (not (< y_2 1000)) - (not (>= x_2 y_2)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= x x_2) (= y y_2))) (not (and (not (< y_2 1000)) (not (>= x_2 y_2)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/2_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/2_conf5.sl index c934c15..e696d90 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/2_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/2_conf5.sl @@ -1,115 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var conf_4_1 Int) -(declare-primed-var conf_4_2 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) -(declare-primed-var y_3 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_1) - (= y y_1) - (= conf_0_0 9) - (= conf_1_0 4) - (= conf_2_0 5) - (= conf_3_0 0) - (= conf_4_0 4) - (= x_1 1) - (= y_1 0) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_1) (= y y_1) (= conf_0_0 9) (= conf_1_0 4) (= conf_2_0 5) (= conf_3_0 0) (= conf_4_0 4) (= x_1 1) (= y_1 0))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (x! Int) (y! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_4_0! Int) (conf_4_1! Int) (conf_4_2! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int) (y_3! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= conf_4_1 conf_4) - (= x_2 x) - (= y_2 y) - (= conf_0_1 conf_0!) - (= conf_4_1 conf_4!) - (= x_2 x!) - (= y_2 y!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= x x!) - ) - (and - (= conf_0_1 conf_0) - (= conf_4_1 conf_4) - (= x_2 x) - (= y_2 y) - (< y_2 1000) - (= x_3 (+ x_2 y_2)) - (= conf_4_2 (- conf_3_0 687)) - (= y_3 (+ y_2 1)) - (= conf_0_2 178) - (= conf_0_2 conf_0!) - (= conf_4_2 conf_4!) - (= x_3 x!) - (= y_3 y!) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= conf_4_1 conf_4) (= x_2 x) (= y_2 y) (= conf_0_1 conf_0!) (= conf_4_1 conf_4!) (= x_2 x!) (= y_2 y!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= x x!)) (and (= conf_0_1 conf_0) (= conf_4_1 conf_4) (= x_2 x) (= y_2 y) (< y_2 1000) (= x_3 (+ x_2 y_2)) (= conf_4_2 (- conf_3_0 687)) (= y_3 (+ y_2 1)) (= conf_0_2 178) (= conf_0_2 conf_0!) (= conf_4_2 conf_4!) (= x_3 x!) (= y_3 y!) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_1) - (= x x_2) - (= y y_2) - ) - ) - (not - (and - (not (< y_2 1000)) - (not (>= x_2 y_2)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_1) (= x x_2) (= y y_2))) (not (and (not (< y_2 1000)) (not (>= x_2 y_2)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/3.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/3.c.sl index 7cd262a..5705007 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/3.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/3.c.sl @@ -1,82 +1,15 @@ (set-logic LIA) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var z Int) - -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) -(declare-primed-var y_3 Int) -(declare-primed-var z_0 Int) - (synth-inv inv-f ((x Int) (y Int) (z Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (z_0 Int))) (define-fun pre-f ((x Int) (y Int) (z Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (z_0 Int)) Bool - (and - (= x x_0) - (= x_0 0) - ) -) - + (and (= x x_0) (= x_0 0))) (define-fun trans-f ((x Int) (y Int) (z Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (z_0 Int) (x! Int) (y! Int) (z! Int) (x_0! Int) (x_1! Int) (x_2! Int) (y_0! Int) (y_1! Int) (y_2! Int) (y_3! Int) (z_0! Int)) Bool - (or - (and - (= x_1 x) - (= y_1 y) - (= x_1 x!) - (= y_1 y!) - (= y y!) - (= z z!) - ) - (and - (= x_1 x) - (= y_1 y) - (< x_1 5) - (= x_2 (+ x_1 1)) - (<= z_0 y_1) - (= y_2 z_0) - (= y_3 y_2) - (= x_2 x!) - (= y_3 y!) - (= z z_0) - (= z! z_0) - ) - (and - (= x_1 x) - (= y_1 y) - (< x_1 5) - (= x_2 (+ x_1 1)) - (not (<= z_0 y_1)) - (= y_3 y_1) - (= x_2 x!) - (= y_3 y!) - (= z z_0) - (= z! z_0) - ) - ) -) - + (or (and (= x_1 x) (= y_1 y) (= x_1 x!) (= y_1 y!) (= y y!) (= z z!)) (and (= x_1 x) (= y_1 y) (< x_1 5) (= x_2 (+ x_1 1)) (<= z_0 y_1) (= y_2 z_0) (= y_3 y_2) (= x_2 x!) (= y_3 y!) (= z z_0) (= z! z_0)) (and (= x_1 x) (= y_1 y) (< x_1 5) (= x_2 (+ x_1 1)) (not (<= z_0 y_1)) (= y_3 y_1) (= x_2 x!) (= y_3 y!) (= z z_0) (= z! z_0)))) (define-fun post-f ((x Int) (y Int) (z Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (z_0 Int)) Bool - (or - (not - (and - (= x x_1) - (= y y_1) - (= z z_0) - ) - ) - (not - (and - (not (< x_1 5)) - (not (>= z_0 y_1)) - ) - ) - ) -) + (or (not (and (= x x_1) (= y y_1) (= z z_0))) (not (and (not (< x_1 5)) (not (>= z_0 y_1)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/30.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/30.c.sl index 390d0cf..adf05ca 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/30.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/30.c.sl @@ -1,49 +1,15 @@ (set-logic LIA) -(declare-primed-var x Int) - -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((x Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((x Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= x x_1) - (= x_1 100) - ) -) - + (and (= x x_1) (= x_1 100))) (define-fun trans-f ((x Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (x! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= x_2 x) - (= x_2 x!) - ) - (and - (= x_2 x) - (> x_2 0) - (= x_3 (- x_2 1)) - (= x_3 x!) - ) - ) -) - + (or (and (= x_2 x) (= x_2 x!)) (and (= x_2 x) (> x_2 0) (= x_3 (- x_2 1)) (= x_3 x!)))) (define-fun post-f ((x Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (= x x_2) - ) - (not - (and - (not (> x_2 0)) - (not (= x_2 0)) - ) - ) - ) -) + (or (not (= x x_2)) (not (and (not (> x_2 0)) (not (= x_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/30_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/30_conf1.sl index 9de5fa2..159e10b 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/30_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/30_conf1.sl @@ -1,64 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var x Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((conf_0 Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((conf_0 Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= x x_1) - (= conf_0_0 3) - (= x_1 100) - ) -) - + (and (= conf_0 conf_0_0) (= x x_1) (= conf_0_0 3) (= x_1 100))) (define-fun trans-f ((conf_0 Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (conf_0! Int) (x! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= conf_0_1 conf_0!) - (= x_2 x!) - (= conf_0 conf_0!) - ) - (and - (= conf_0_1 conf_0) - (= x_2 x) - (> x_2 0) - (= x_3 (- x_2 1)) - (= conf_0_2 930) - (= conf_0_2 conf_0!) - (= x_3 x!) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= x_2 x) (= conf_0_1 conf_0!) (= x_2 x!) (= conf_0 conf_0!)) (and (= conf_0_1 conf_0) (= x_2 x) (> x_2 0) (= x_3 (- x_2 1)) (= conf_0_2 930) (= conf_0_2 conf_0!) (= x_3 x!)))) (define-fun post-f ((conf_0 Int) (x Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= x x_2) - ) - ) - (not - (and - (not (> x_2 0)) - (not (= x_2 0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= x x_2))) (not (and (not (> x_2 0)) (not (= x_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/30_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/30_conf5.sl index b4118ab..49ecc04 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/30_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/30_conf5.sl @@ -1,96 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var x Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_2_1 Int) -(declare-primed-var conf_2_2 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_1) - (= conf_0_0 0) - (= conf_1_0 4) - (= conf_2_0 2) - (= conf_3_0 3) - (= conf_4_0 3) - (= x_1 100) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_1) (= conf_0_0 0) (= conf_1_0 4) (= conf_2_0 2) (= conf_3_0 3) (= conf_4_0 3) (= x_1 100))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (x! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_2_1! Int) (conf_2_2! Int) (conf_3_0! Int) (conf_4_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int)) Bool - (or - (and - (= conf_2_1 conf_2) - (= x_2 x) - (= conf_2_1 conf_2!) - (= x_2 x!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - ) - (and - (= conf_2_1 conf_2) - (= x_2 x) - (> x_2 0) - (= x_3 (- x_2 1)) - (= conf_2_2 (+ 255 conf_2_1)) - (= conf_2_2 conf_2!) - (= x_3 x!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - ) - ) -) - + (or (and (= conf_2_1 conf_2) (= x_2 x) (= conf_2_1 conf_2!) (= x_2 x!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!)) (and (= conf_2_1 conf_2) (= x_2 x) (> x_2 0) (= x_3 (- x_2 1)) (= conf_2_2 (+ 255 conf_2_1)) (= conf_2_2 conf_2!) (= x_3 x!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_1) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_2) - ) - ) - (not - (and - (not (> x_2 0)) - (not (= x_2 0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_1) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_2))) (not (and (not (> x_2 0)) (not (= x_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/35.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/35.c.sl index 8d6340e..c355a34 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/35.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/35.c.sl @@ -1,78 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) - (synth-inv inv-f ((c Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int))) (define-fun pre-f ((c Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int)) Bool - (and - (= c c_1) - (= c_1 0) - ) -) - + (and (= c c_1) (= c_1 0))) (define-fun trans-f ((c Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (c! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int)) Bool - (or - (and - (= c_2 c) - (= c_2 c!) - (= c c!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (= c_2 40)) - (= c_3 (+ c_2 1)) - (= c_4 c_3) - (= c_4 c!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (not (= c_2 40))) - (= c_4 c_2) - (= c_4 c!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= c_2 40) - (= c_5 1) - (= c_4 c_5) - (= c_4 c!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (= c_2 40)) - (= c_4 c_2) - (= c_4 c!) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= c_2 c!) (= c c!) (= tmp tmp!)) (and (= c_2 c) (not (= c_2 40)) (= c_3 (+ c_2 1)) (= c_4 c_3) (= c_4 c!) (= tmp tmp!)) (and (= c_2 c) (not (not (= c_2 40))) (= c_4 c_2) (= c_4 c!) (= tmp tmp!)) (and (= c_2 c) (= c_2 40) (= c_5 1) (= c_4 c_5) (= c_4 c!) (= tmp tmp!)) (and (= c_2 c) (not (= c_2 40)) (= c_4 c_2) (= c_4 c!) (= tmp tmp!)))) (define-fun post-f ((c Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int)) Bool - (or - (not - (= c c_2) - ) - (not - (and - (not (= c_2 40)) - (not (>= c_2 0)) - ) - ) - ) -) + (or (not (= c c_2)) (not (and (not (= c_2 40)) (not (>= c_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/35_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/35_conf1.sl index a5b5f7b..cb9438d 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/35_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/35_conf1.sl @@ -1,106 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= conf_0_0 4) - (= c_1 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= conf_0_0 4) (= c_1 0))) (define-fun trans-f ((c Int) (conf_0 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (c! Int) (conf_0! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int)) Bool - (or - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 c!) - (= conf_0_1 conf_0!) - (= c c!) - (= conf_0 conf_0!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (= c_2 40)) - (= c_3 (+ c_2 1)) - (= conf_0_2 926) - (= c_4 c_3) - (= conf_0_3 conf_0_2) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (not (= c_2 40))) - (= c_4 c_2) - (= conf_0_3 conf_0_1) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 40) - (= c_5 1) - (= conf_0_4 317) - (= c_4 c_5) - (= conf_0_3 conf_0_4) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (= c_2 40)) - (= c_4 c_2) - (= conf_0_3 conf_0_1) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 c!) (= conf_0_1 conf_0!) (= c c!) (= conf_0 conf_0!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (= c_2 40)) (= c_3 (+ c_2 1)) (= conf_0_2 926) (= c_4 c_3) (= conf_0_3 conf_0_2) (= c_4 c!) (= conf_0_3 conf_0!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (not (= c_2 40))) (= c_4 c_2) (= conf_0_3 conf_0_1) (= c_4 c!) (= conf_0_3 conf_0!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 40) (= c_5 1) (= conf_0_4 317) (= c_4 c_5) (= conf_0_3 conf_0_4) (= c_4 c!) (= conf_0_3 conf_0!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (= c_2 40)) (= c_4 c_2) (= conf_0_3 conf_0_1) (= c_4 c!) (= conf_0_3 conf_0!) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_1) - ) - ) - (not - (and - (not (= c_2 40)) - (not (>= c_2 0)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_1))) (not (and (not (= c_2 40)) (not (>= c_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/35_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/35_conf5.sl index a8d945a..4b951e4 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/35_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/35_conf5.sl @@ -1,170 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_3_1 Int) -(declare-primed-var conf_3_2 Int) -(declare-primed-var conf_3_3 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var conf_4_1 Int) -(declare-primed-var conf_4_2 Int) -(declare-primed-var conf_4_3 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= conf_0_0 6) - (= conf_1_0 8) - (= conf_2_0 6) - (= conf_3_0 6) - (= conf_4_0 4) - (= c_1 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= conf_0_0 6) (= conf_1_0 8) (= conf_2_0 6) (= conf_3_0 6) (= conf_4_0 4) (= c_1 0))) (define-fun trans-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (c! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_3_1! Int) (conf_3_2! Int) (conf_3_3! Int) (conf_4_0! Int) (conf_4_1! Int) (conf_4_2! Int) (conf_4_3! Int)) Bool - (or - (and - (= c_2 c) - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (= c_2 c!) - (= conf_3_1 conf_3!) - (= conf_4_1 conf_4!) - (= c c!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (not (= c_2 40)) - (= c_3 (+ c_2 1)) - (= conf_3_2 317) - (= c_4 c_3) - (= conf_3_3 conf_3_2) - (= conf_4_2 conf_4_1) - (= c_4 c!) - (= conf_3_3 conf_3!) - (= conf_4_2 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (not (not (= c_2 40))) - (= c_4 c_2) - (= conf_3_3 conf_3_1) - (= conf_4_2 conf_4_1) - (= c_4 c!) - (= conf_3_3 conf_3!) - (= conf_4_2 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (= c_2 40) - (= c_5 1) - (= conf_4_3 conf_0_0) - (= c_4 c_5) - (= conf_3_3 conf_3_1) - (= conf_4_2 conf_4_3) - (= c_4 c!) - (= conf_3_3 conf_3!) - (= conf_4_2 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (not (= c_2 40)) - (= c_4 c_2) - (= conf_3_3 conf_3_1) - (= conf_4_2 conf_4_1) - (= c_4 c!) - (= conf_3_3 conf_3!) - (= conf_4_2 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_3_1 conf_3) (= conf_4_1 conf_4) (= c_2 c!) (= conf_3_1 conf_3!) (= conf_4_1 conf_4!) (= c c!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= tmp tmp!)) (and (= c_2 c) (= conf_3_1 conf_3) (= conf_4_1 conf_4) (not (= c_2 40)) (= c_3 (+ c_2 1)) (= conf_3_2 317) (= c_4 c_3) (= conf_3_3 conf_3_2) (= conf_4_2 conf_4_1) (= c_4 c!) (= conf_3_3 conf_3!) (= conf_4_2 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= tmp tmp!)) (and (= c_2 c) (= conf_3_1 conf_3) (= conf_4_1 conf_4) (not (not (= c_2 40))) (= c_4 c_2) (= conf_3_3 conf_3_1) (= conf_4_2 conf_4_1) (= c_4 c!) (= conf_3_3 conf_3!) (= conf_4_2 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= tmp tmp!)) (and (= c_2 c) (= conf_3_1 conf_3) (= conf_4_1 conf_4) (= c_2 40) (= c_5 1) (= conf_4_3 conf_0_0) (= c_4 c_5) (= conf_3_3 conf_3_1) (= conf_4_2 conf_4_3) (= c_4 c!) (= conf_3_3 conf_3!) (= conf_4_2 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= tmp tmp!)) (and (= c_2 c) (= conf_3_1 conf_3) (= conf_4_1 conf_4) (not (= c_2 40)) (= c_4 c_2) (= conf_3_3 conf_3_1) (= conf_4_2 conf_4_1) (= c_4 c!) (= conf_3_3 conf_3!) (= conf_4_2 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_1) - (= conf_4 conf_4_1) - ) - ) - (not - (and - (not (= c_2 40)) - (not (>= c_2 0)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_1) (= conf_4 conf_4_1))) (not (and (not (= c_2 40)) (not (>= c_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/36.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/36.c.sl index 82b4265..cc0dc0b 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/36.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/36.c.sl @@ -1,78 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) - (synth-inv inv-f ((c Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int))) (define-fun pre-f ((c Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int)) Bool - (and - (= c c_1) - (= c_1 0) - ) -) - + (and (= c c_1) (= c_1 0))) (define-fun trans-f ((c Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (c! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int)) Bool - (or - (and - (= c_2 c) - (= c_2 c!) - (= c c!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (= c_2 40)) - (= c_3 (+ c_2 1)) - (= c_4 c_3) - (= c_4 c!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (not (= c_2 40))) - (= c_4 c_2) - (= c_4 c!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= c_2 40) - (= c_5 1) - (= c_4 c_5) - (= c_4 c!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (= c_2 40)) - (= c_4 c_2) - (= c_4 c!) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= c_2 c!) (= c c!) (= tmp tmp!)) (and (= c_2 c) (not (= c_2 40)) (= c_3 (+ c_2 1)) (= c_4 c_3) (= c_4 c!) (= tmp tmp!)) (and (= c_2 c) (not (not (= c_2 40))) (= c_4 c_2) (= c_4 c!) (= tmp tmp!)) (and (= c_2 c) (= c_2 40) (= c_5 1) (= c_4 c_5) (= c_4 c!) (= tmp tmp!)) (and (= c_2 c) (not (= c_2 40)) (= c_4 c_2) (= c_4 c!) (= tmp tmp!)))) (define-fun post-f ((c Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int)) Bool - (or - (not - (= c c_2) - ) - (not - (and - (not (= c_2 40)) - (not (<= c_2 40)) - ) - ) - ) -) + (or (not (= c c_2)) (not (and (not (= c_2 40)) (not (<= c_2 40)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/36_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/36_conf1.sl index 176574c..1d38dd4 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/36_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/36_conf1.sl @@ -1,106 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= conf_0_0 4) - (= c_1 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= conf_0_0 4) (= c_1 0))) (define-fun trans-f ((c Int) (conf_0 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (c! Int) (conf_0! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int)) Bool - (or - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 c!) - (= conf_0_1 conf_0!) - (= c c!) - (= conf_0 conf_0!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (= c_2 40)) - (= c_3 (+ c_2 1)) - (= conf_0_2 926) - (= c_4 c_3) - (= conf_0_3 conf_0_2) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (not (= c_2 40))) - (= c_4 c_2) - (= conf_0_3 conf_0_1) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 40) - (= c_5 1) - (= conf_0_4 317) - (= c_4 c_5) - (= conf_0_3 conf_0_4) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (= c_2 40)) - (= c_4 c_2) - (= conf_0_3 conf_0_1) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 c!) (= conf_0_1 conf_0!) (= c c!) (= conf_0 conf_0!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (= c_2 40)) (= c_3 (+ c_2 1)) (= conf_0_2 926) (= c_4 c_3) (= conf_0_3 conf_0_2) (= c_4 c!) (= conf_0_3 conf_0!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (not (= c_2 40))) (= c_4 c_2) (= conf_0_3 conf_0_1) (= c_4 c!) (= conf_0_3 conf_0!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 40) (= c_5 1) (= conf_0_4 317) (= c_4 c_5) (= conf_0_3 conf_0_4) (= c_4 c!) (= conf_0_3 conf_0!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (= c_2 40)) (= c_4 c_2) (= conf_0_3 conf_0_1) (= c_4 c!) (= conf_0_3 conf_0!) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_1) - ) - ) - (not - (and - (not (= c_2 40)) - (not (<= c_2 40)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_1))) (not (and (not (= c_2 40)) (not (<= c_2 40)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/36_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/36_conf5.sl index c147b8f..df8a02f 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/36_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/36_conf5.sl @@ -1,170 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_3_1 Int) -(declare-primed-var conf_3_2 Int) -(declare-primed-var conf_3_3 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var conf_4_1 Int) -(declare-primed-var conf_4_2 Int) -(declare-primed-var conf_4_3 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= conf_0_0 6) - (= conf_1_0 8) - (= conf_2_0 6) - (= conf_3_0 6) - (= conf_4_0 4) - (= c_1 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= conf_0_0 6) (= conf_1_0 8) (= conf_2_0 6) (= conf_3_0 6) (= conf_4_0 4) (= c_1 0))) (define-fun trans-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (c! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_3_1! Int) (conf_3_2! Int) (conf_3_3! Int) (conf_4_0! Int) (conf_4_1! Int) (conf_4_2! Int) (conf_4_3! Int)) Bool - (or - (and - (= c_2 c) - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (= c_2 c!) - (= conf_3_1 conf_3!) - (= conf_4_1 conf_4!) - (= c c!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (not (= c_2 40)) - (= c_3 (+ c_2 1)) - (= conf_3_2 317) - (= c_4 c_3) - (= conf_3_3 conf_3_2) - (= conf_4_2 conf_4_1) - (= c_4 c!) - (= conf_3_3 conf_3!) - (= conf_4_2 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (not (not (= c_2 40))) - (= c_4 c_2) - (= conf_3_3 conf_3_1) - (= conf_4_2 conf_4_1) - (= c_4 c!) - (= conf_3_3 conf_3!) - (= conf_4_2 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (= c_2 40) - (= c_5 1) - (= conf_4_3 conf_0_0) - (= c_4 c_5) - (= conf_3_3 conf_3_1) - (= conf_4_2 conf_4_3) - (= c_4 c!) - (= conf_3_3 conf_3!) - (= conf_4_2 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (not (= c_2 40)) - (= c_4 c_2) - (= conf_3_3 conf_3_1) - (= conf_4_2 conf_4_1) - (= c_4 c!) - (= conf_3_3 conf_3!) - (= conf_4_2 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_3_1 conf_3) (= conf_4_1 conf_4) (= c_2 c!) (= conf_3_1 conf_3!) (= conf_4_1 conf_4!) (= c c!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= tmp tmp!)) (and (= c_2 c) (= conf_3_1 conf_3) (= conf_4_1 conf_4) (not (= c_2 40)) (= c_3 (+ c_2 1)) (= conf_3_2 317) (= c_4 c_3) (= conf_3_3 conf_3_2) (= conf_4_2 conf_4_1) (= c_4 c!) (= conf_3_3 conf_3!) (= conf_4_2 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= tmp tmp!)) (and (= c_2 c) (= conf_3_1 conf_3) (= conf_4_1 conf_4) (not (not (= c_2 40))) (= c_4 c_2) (= conf_3_3 conf_3_1) (= conf_4_2 conf_4_1) (= c_4 c!) (= conf_3_3 conf_3!) (= conf_4_2 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= tmp tmp!)) (and (= c_2 c) (= conf_3_1 conf_3) (= conf_4_1 conf_4) (= c_2 40) (= c_5 1) (= conf_4_3 conf_0_0) (= c_4 c_5) (= conf_3_3 conf_3_1) (= conf_4_2 conf_4_3) (= c_4 c!) (= conf_3_3 conf_3!) (= conf_4_2 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= tmp tmp!)) (and (= c_2 c) (= conf_3_1 conf_3) (= conf_4_1 conf_4) (not (= c_2 40)) (= c_4 c_2) (= conf_3_3 conf_3_1) (= conf_4_2 conf_4_1) (= c_4 c!) (= conf_3_3 conf_3!) (= conf_4_2 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_1) - (= conf_4 conf_4_1) - ) - ) - (not - (and - (not (= c_2 40)) - (not (<= c_2 40)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_1) (= conf_4 conf_4_1))) (not (and (not (= c_2 40)) (not (<= c_2 40)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/37.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/37.c.sl index 62e0b68..c43ceb4 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/37.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/37.c.sl @@ -1,79 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) - (synth-inv inv-f ((c Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int))) (define-fun pre-f ((c Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int)) Bool - (and - (= c c_1) - (= c_1 0) - ) -) - + (and (= c c_1) (= c_1 0))) (define-fun trans-f ((c Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (c! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int)) Bool - (or - (and - (= c_2 c) - (= c_2 c!) - (= c c!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (= c_2 40)) - (= c_3 (+ c_2 1)) - (= c_4 c_3) - (= c_4 c!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (not (= c_2 40))) - (= c_4 c_2) - (= c_4 c!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= c_2 40) - (= c_5 1) - (= c_4 c_5) - (= c_4 c!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (= c_2 40)) - (= c_4 c_2) - (= c_4 c!) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= c_2 c!) (= c c!) (= tmp tmp!)) (and (= c_2 c) (not (= c_2 40)) (= c_3 (+ c_2 1)) (= c_4 c_3) (= c_4 c!) (= tmp tmp!)) (and (= c_2 c) (not (not (= c_2 40))) (= c_4 c_2) (= c_4 c!) (= tmp tmp!)) (and (= c_2 c) (= c_2 40) (= c_5 1) (= c_4 c_5) (= c_4 c!) (= tmp tmp!)) (and (= c_2 c) (not (= c_2 40)) (= c_4 c_2) (= c_4 c!) (= tmp tmp!)))) (define-fun post-f ((c Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int)) Bool - (or - (not - (= c c_2) - ) - (not - (and - (< c_2 0) - (> c_2 40) - (not (= c_2 40)) - ) - ) - ) -) + (or (not (= c c_2)) (not (and (< c_2 0) (> c_2 40) (not (= c_2 40)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/37_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/37_conf1.sl index b2b1041..59458b5 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/37_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/37_conf1.sl @@ -1,107 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= conf_0_0 4) - (= c_1 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= conf_0_0 4) (= c_1 0))) (define-fun trans-f ((c Int) (conf_0 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (c! Int) (conf_0! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int)) Bool - (or - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 c!) - (= conf_0_1 conf_0!) - (= c c!) - (= conf_0 conf_0!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (= c_2 40)) - (= c_3 (+ c_2 1)) - (= conf_0_2 (- 763 778)) - (= c_4 c_3) - (= conf_0_3 conf_0_2) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (not (= c_2 40))) - (= c_4 c_2) - (= conf_0_3 conf_0_1) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 40) - (= c_5 1) - (= conf_0_4 (- 594 147)) - (= c_4 c_5) - (= conf_0_3 conf_0_4) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (= c_2 40)) - (= c_4 c_2) - (= conf_0_3 conf_0_1) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 c!) (= conf_0_1 conf_0!) (= c c!) (= conf_0 conf_0!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (= c_2 40)) (= c_3 (+ c_2 1)) (= conf_0_2 (- 763 778)) (= c_4 c_3) (= conf_0_3 conf_0_2) (= c_4 c!) (= conf_0_3 conf_0!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (not (= c_2 40))) (= c_4 c_2) (= conf_0_3 conf_0_1) (= c_4 c!) (= conf_0_3 conf_0!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 40) (= c_5 1) (= conf_0_4 (- 594 147)) (= c_4 c_5) (= conf_0_3 conf_0_4) (= c_4 c!) (= conf_0_3 conf_0!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (= c_2 40)) (= c_4 c_2) (= conf_0_3 conf_0_1) (= c_4 c!) (= conf_0_3 conf_0!) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_1) - ) - ) - (not - (and - (< c_2 0) - (> c_2 40) - (not (= c_2 40)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_1))) (not (and (< c_2 0) (> c_2 40) (not (= c_2 40)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/37_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/37_conf5.sl index 1f41383..7f8f562 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/37_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/37_conf5.sl @@ -1,171 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_3_1 Int) -(declare-primed-var conf_3_2 Int) -(declare-primed-var conf_3_3 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var conf_4_1 Int) -(declare-primed-var conf_4_2 Int) -(declare-primed-var conf_4_3 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= conf_0_0 3) - (= conf_1_0 0) - (= conf_2_0 9) - (= conf_3_0 6) - (= conf_4_0 4) - (= c_1 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= conf_0_0 3) (= conf_1_0 0) (= conf_2_0 9) (= conf_3_0 6) (= conf_4_0 4) (= c_1 0))) (define-fun trans-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (c! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_3_1! Int) (conf_3_2! Int) (conf_3_3! Int) (conf_4_0! Int) (conf_4_1! Int) (conf_4_2! Int) (conf_4_3! Int)) Bool - (or - (and - (= c_2 c) - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (= c_2 c!) - (= conf_3_1 conf_3!) - (= conf_4_1 conf_4!) - (= c c!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (not (= c_2 40)) - (= c_3 (+ c_2 1)) - (= conf_4_2 843) - (= c_4 c_3) - (= conf_3_2 conf_3_1) - (= conf_4_3 conf_4_2) - (= c_4 c!) - (= conf_3_2 conf_3!) - (= conf_4_3 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (not (not (= c_2 40))) - (= c_4 c_2) - (= conf_3_2 conf_3_1) - (= conf_4_3 conf_4_1) - (= c_4 c!) - (= conf_3_2 conf_3!) - (= conf_4_3 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (= c_2 40) - (= c_5 1) - (= conf_3_3 121) - (= c_4 c_5) - (= conf_3_2 conf_3_3) - (= conf_4_3 conf_4_1) - (= c_4 c!) - (= conf_3_2 conf_3!) - (= conf_4_3 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (not (= c_2 40)) - (= c_4 c_2) - (= conf_3_2 conf_3_1) - (= conf_4_3 conf_4_1) - (= c_4 c!) - (= conf_3_2 conf_3!) - (= conf_4_3 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_3_1 conf_3) (= conf_4_1 conf_4) (= c_2 c!) (= conf_3_1 conf_3!) (= conf_4_1 conf_4!) (= c c!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= tmp tmp!)) (and (= c_2 c) (= conf_3_1 conf_3) (= conf_4_1 conf_4) (not (= c_2 40)) (= c_3 (+ c_2 1)) (= conf_4_2 843) (= c_4 c_3) (= conf_3_2 conf_3_1) (= conf_4_3 conf_4_2) (= c_4 c!) (= conf_3_2 conf_3!) (= conf_4_3 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= tmp tmp!)) (and (= c_2 c) (= conf_3_1 conf_3) (= conf_4_1 conf_4) (not (not (= c_2 40))) (= c_4 c_2) (= conf_3_2 conf_3_1) (= conf_4_3 conf_4_1) (= c_4 c!) (= conf_3_2 conf_3!) (= conf_4_3 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= tmp tmp!)) (and (= c_2 c) (= conf_3_1 conf_3) (= conf_4_1 conf_4) (= c_2 40) (= c_5 1) (= conf_3_3 121) (= c_4 c_5) (= conf_3_2 conf_3_3) (= conf_4_3 conf_4_1) (= c_4 c!) (= conf_3_2 conf_3!) (= conf_4_3 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= tmp tmp!)) (and (= c_2 c) (= conf_3_1 conf_3) (= conf_4_1 conf_4) (not (= c_2 40)) (= c_4 c_2) (= conf_3_2 conf_3_1) (= conf_4_3 conf_4_1) (= c_4 c!) (= conf_3_2 conf_3!) (= conf_4_3 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_1) - (= conf_4 conf_4_1) - ) - ) - (not - (and - (< c_2 0) - (> c_2 40) - (not (= c_2 40)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_1) (= conf_4 conf_4_1))) (not (and (< c_2 0) (> c_2 40) (not (= c_2 40)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/38.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/38.c.sl index 1c65afe..3ca2dae 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/38.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/38.c.sl @@ -1,75 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (n_0 Int))) (define-fun pre-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (n_0 Int)) Bool - (and - (= c c_0) - (= n n_0) - (= c_0 0) - (> n_0 0) - ) -) - + (and (= c c_0) (= n n_0) (= c_0 0) (> n_0 0))) (define-fun trans-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (n_0 Int) (c! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (n_0! Int)) Bool - (or - (and - (= c_1 c) - (= c_1 c!) - (= c c!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_1 c) - (= c_1 n_0) - (= c_2 1) - (= c_3 c_2) - (= c_3 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_1 c) - (not (= c_1 n_0)) - (= c_4 (+ c_1 1)) - (= c_3 c_4) - (= c_3 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_1 c) (= c_1 c!) (= c c!) (= n n!) (= tmp tmp!)) (and (= c_1 c) (= c_1 n_0) (= c_2 1) (= c_3 c_2) (= c_3 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_1 c) (not (= c_1 n_0)) (= c_4 (+ c_1 1)) (= c_3 c_4) (= c_3 c!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_1) - (= n n_0) - ) - ) - (not - (and - (= c_1 n_0) - (not (>= c_1 0)) - ) - ) - ) -) + (or (not (and (= c c_1) (= n n_0))) (not (and (= c_1 n_0) (not (>= c_1 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/38_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/38_conf1.sl index a4be7ac..2cdccbc 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/38_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/38_conf1.sl @@ -1,96 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= n n_0) - (= conf_0_0 8) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= n n_0) (= conf_0_0 8) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int) (c! Int) (conf_0! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 c!) - (= conf_0_1 conf_0!) - (= c c!) - (= conf_0 conf_0!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 n_0) - (= c_3 1) - (= conf_0_2 conf_0_1) - (= c_4 c_3) - (= conf_0_3 conf_0_2) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (= c_2 n_0)) - (= c_5 (+ c_2 1)) - (= conf_0_4 conf_0_1) - (= c_4 c_5) - (= conf_0_3 conf_0_4) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 c!) (= conf_0_1 conf_0!) (= c c!) (= conf_0 conf_0!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 n_0) (= c_3 1) (= conf_0_2 conf_0_1) (= c_4 c_3) (= conf_0_3 conf_0_2) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (= c_2 n_0)) (= c_5 (+ c_2 1)) (= conf_0_4 conf_0_1) (= c_4 c_5) (= conf_0_3 conf_0_4) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_1) - (= n n_0) - ) - ) - (not - (and - (= c_2 n_0) - (not (>= c_2 0)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_1) (= n n_0))) (not (and (= c_2 n_0) (not (>= c_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/38_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/38_conf5.sl index c7f2f96..bdf8e9f 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/38_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/38_conf5.sl @@ -1,142 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_2_1 Int) -(declare-primed-var conf_2_2 Int) -(declare-primed-var conf_2_3 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var conf_4_1 Int) -(declare-primed-var conf_4_2 Int) -(declare-primed-var conf_4_3 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_2_3 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (n_0 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_2_3 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= n n_0) - (= conf_0_0 7) - (= conf_1_0 1) - (= conf_2_0 4) - (= conf_3_0 5) - (= conf_4_0 8) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= n n_0) (= conf_0_0 7) (= conf_1_0 1) (= conf_2_0 4) (= conf_3_0 5) (= conf_4_0 8) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_2_3 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (n_0 Int) (c! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_2_1! Int) (conf_2_2! Int) (conf_2_3! Int) (conf_3_0! Int) (conf_4_0! Int) (conf_4_1! Int) (conf_4_2! Int) (conf_4_3! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= conf_2_1 conf_2) - (= conf_4_1 conf_4) - (= c_2 c!) - (= conf_2_1 conf_2!) - (= conf_4_1 conf_4!) - (= c c!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_2_1 conf_2) - (= conf_4_1 conf_4) - (= c_2 n_0) - (= c_3 1) - (= conf_2_2 conf_3_0) - (= c_4 c_3) - (= conf_2_3 conf_2_2) - (= conf_4_2 conf_4_1) - (= c_4 c!) - (= conf_2_3 conf_2!) - (= conf_4_2 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_2_1 conf_2) - (= conf_4_1 conf_4) - (not (= c_2 n_0)) - (= c_5 (+ c_2 1)) - (= conf_4_3 (- 947 94)) - (= c_4 c_5) - (= conf_2_3 conf_2_1) - (= conf_4_2 conf_4_3) - (= c_4 c!) - (= conf_2_3 conf_2!) - (= conf_4_2 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_2_1 conf_2) (= conf_4_1 conf_4) (= c_2 c!) (= conf_2_1 conf_2!) (= conf_4_1 conf_4!) (= c c!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (= conf_2_1 conf_2) (= conf_4_1 conf_4) (= c_2 n_0) (= c_3 1) (= conf_2_2 conf_3_0) (= c_4 c_3) (= conf_2_3 conf_2_2) (= conf_4_2 conf_4_1) (= c_4 c!) (= conf_2_3 conf_2!) (= conf_4_2 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_2_1 conf_2) (= conf_4_1 conf_4) (not (= c_2 n_0)) (= c_5 (+ c_2 1)) (= conf_4_3 (- 947 94)) (= c_4 c_5) (= conf_2_3 conf_2_1) (= conf_4_2 conf_4_3) (= c_4 c!) (= conf_2_3 conf_2!) (= conf_4_2 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_2_3 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_1) - (= conf_3 conf_3_0) - (= conf_4 conf_4_1) - (= n n_0) - ) - ) - (not - (and - (= c_2 n_0) - (not (>= c_2 0)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_1) (= conf_3 conf_3_0) (= conf_4 conf_4_1) (= n n_0))) (not (and (= c_2 n_0) (not (>= c_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/39.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/39.c.sl index 5a9b3bf..732e14d 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/39.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/39.c.sl @@ -1,75 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (n_0 Int))) (define-fun pre-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (n_0 Int)) Bool - (and - (= c c_0) - (= n n_0) - (= c_0 0) - (> n_0 0) - ) -) - + (and (= c c_0) (= n n_0) (= c_0 0) (> n_0 0))) (define-fun trans-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (n_0 Int) (c! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (n_0! Int)) Bool - (or - (and - (= c_1 c) - (= c_1 c!) - (= c c!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_1 c) - (= c_1 n_0) - (= c_2 1) - (= c_3 c_2) - (= c_3 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_1 c) - (not (= c_1 n_0)) - (= c_4 (+ c_1 1)) - (= c_3 c_4) - (= c_3 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_1 c) (= c_1 c!) (= c c!) (= n n!) (= tmp tmp!)) (and (= c_1 c) (= c_1 n_0) (= c_2 1) (= c_3 c_2) (= c_3 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_1 c) (not (= c_1 n_0)) (= c_4 (+ c_1 1)) (= c_3 c_4) (= c_3 c!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_1) - (= n n_0) - ) - ) - (not - (and - (= c_1 n_0) - (not (<= c_1 n_0)) - ) - ) - ) -) + (or (not (and (= c c_1) (= n n_0))) (not (and (= c_1 n_0) (not (<= c_1 n_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/39_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/39_conf1.sl index 8f6098d..3e8e221 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/39_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/39_conf1.sl @@ -1,96 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= n n_0) - (= conf_0_0 0) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= n n_0) (= conf_0_0 0) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int) (c! Int) (conf_0! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 c!) - (= conf_0_1 conf_0!) - (= c c!) - (= conf_0 conf_0!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 n_0) - (= c_3 1) - (= conf_0_2 (- 353 conf_0_1)) - (= c_4 c_3) - (= conf_0_3 conf_0_2) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (= c_2 n_0)) - (= c_5 (+ c_2 1)) - (= conf_0_4 965) - (= c_4 c_5) - (= conf_0_3 conf_0_4) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 c!) (= conf_0_1 conf_0!) (= c c!) (= conf_0 conf_0!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 n_0) (= c_3 1) (= conf_0_2 (- 353 conf_0_1)) (= c_4 c_3) (= conf_0_3 conf_0_2) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (= c_2 n_0)) (= c_5 (+ c_2 1)) (= conf_0_4 965) (= c_4 c_5) (= conf_0_3 conf_0_4) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_1) - (= n n_0) - ) - ) - (not - (and - (= c_2 n_0) - (not (<= c_2 n_0)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_1) (= n n_0))) (not (and (= c_2 n_0) (not (<= c_2 n_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/39_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/39_conf5.sl index eb339f8..41d5d6a 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/39_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/39_conf5.sl @@ -1,142 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_3_1 Int) -(declare-primed-var conf_3_2 Int) -(declare-primed-var conf_3_3 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var conf_4_1 Int) -(declare-primed-var conf_4_2 Int) -(declare-primed-var conf_4_3 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (n_0 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= n n_0) - (= conf_0_0 3) - (= conf_1_0 0) - (= conf_2_0 7) - (= conf_3_0 5) - (= conf_4_0 0) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= n n_0) (= conf_0_0 3) (= conf_1_0 0) (= conf_2_0 7) (= conf_3_0 5) (= conf_4_0 0) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (n_0 Int) (c! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_3_1! Int) (conf_3_2! Int) (conf_3_3! Int) (conf_4_0! Int) (conf_4_1! Int) (conf_4_2! Int) (conf_4_3! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (= c_2 c!) - (= conf_3_1 conf_3!) - (= conf_4_1 conf_4!) - (= c c!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (= c_2 n_0) - (= c_3 1) - (= conf_3_2 (+ conf_4_1 965)) - (= c_4 c_3) - (= conf_3_3 conf_3_2) - (= conf_4_2 conf_4_1) - (= c_4 c!) - (= conf_3_3 conf_3!) - (= conf_4_2 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (not (= c_2 n_0)) - (= c_5 (+ c_2 1)) - (= conf_4_3 conf_2_0) - (= c_4 c_5) - (= conf_3_3 conf_3_1) - (= conf_4_2 conf_4_3) - (= c_4 c!) - (= conf_3_3 conf_3!) - (= conf_4_2 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_3_1 conf_3) (= conf_4_1 conf_4) (= c_2 c!) (= conf_3_1 conf_3!) (= conf_4_1 conf_4!) (= c c!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (= conf_3_1 conf_3) (= conf_4_1 conf_4) (= c_2 n_0) (= c_3 1) (= conf_3_2 (+ conf_4_1 965)) (= c_4 c_3) (= conf_3_3 conf_3_2) (= conf_4_2 conf_4_1) (= c_4 c!) (= conf_3_3 conf_3!) (= conf_4_2 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_3_1 conf_3) (= conf_4_1 conf_4) (not (= c_2 n_0)) (= c_5 (+ c_2 1)) (= conf_4_3 conf_2_0) (= c_4 c_5) (= conf_3_3 conf_3_1) (= conf_4_2 conf_4_3) (= c_4 c!) (= conf_3_3 conf_3!) (= conf_4_2 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_1) - (= conf_4 conf_4_1) - (= n n_0) - ) - ) - (not - (and - (= c_2 n_0) - (not (<= c_2 n_0)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_1) (= conf_4 conf_4_1) (= n n_0))) (not (and (= c_2 n_0) (not (<= c_2 n_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/3_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/3_conf1.sl index 7448d53..7dd9c65 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/3_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/3_conf1.sl @@ -1,104 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var z Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) -(declare-primed-var y_3 Int) -(declare-primed-var z_0 Int) - (synth-inv inv-f ((conf_0 Int) (x Int) (y Int) (z Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (z_0 Int))) (define-fun pre-f ((conf_0 Int) (x Int) (y Int) (z Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (z_0 Int)) Bool - (and - (= conf_0 conf_0_0) - (= x x_1) - (= conf_0_0 9) - (= x_1 0) - ) -) - + (and (= conf_0 conf_0_0) (= x x_1) (= conf_0_0 9) (= x_1 0))) (define-fun trans-f ((conf_0 Int) (x Int) (y Int) (z Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (z_0 Int) (conf_0! Int) (x! Int) (y! Int) (z! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int) (y_3! Int) (z_0! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= y_1 y) - (= conf_0_1 conf_0!) - (= x_2 x!) - (= y_1 y!) - (= conf_0 conf_0!) - (= y y!) - (= z z!) - ) - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= y_1 y) - (< x_2 5) - (= x_3 (+ x_2 1)) - (= conf_0_2 (+ 115 conf_0_1)) - (<= z_0 y_1) - (= y_2 z_0) - (= conf_0_3 (- conf_0_2 conf_0_2)) - (= conf_0_4 conf_0_3) - (= y_3 y_2) - (= conf_0_4 conf_0!) - (= x_3 x!) - (= y_3 y!) - (= z z_0) - (= z! z_0) - ) - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= y_1 y) - (< x_2 5) - (= x_3 (+ x_2 1)) - (= conf_0_2 (+ 115 conf_0_1)) - (not (<= z_0 y_1)) - (= conf_0_4 conf_0_2) - (= y_3 y_1) - (= conf_0_4 conf_0!) - (= x_3 x!) - (= y_3 y!) - (= z z_0) - (= z! z_0) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= x_2 x) (= y_1 y) (= conf_0_1 conf_0!) (= x_2 x!) (= y_1 y!) (= conf_0 conf_0!) (= y y!) (= z z!)) (and (= conf_0_1 conf_0) (= x_2 x) (= y_1 y) (< x_2 5) (= x_3 (+ x_2 1)) (= conf_0_2 (+ 115 conf_0_1)) (<= z_0 y_1) (= y_2 z_0) (= conf_0_3 (- conf_0_2 conf_0_2)) (= conf_0_4 conf_0_3) (= y_3 y_2) (= conf_0_4 conf_0!) (= x_3 x!) (= y_3 y!) (= z z_0) (= z! z_0)) (and (= conf_0_1 conf_0) (= x_2 x) (= y_1 y) (< x_2 5) (= x_3 (+ x_2 1)) (= conf_0_2 (+ 115 conf_0_1)) (not (<= z_0 y_1)) (= conf_0_4 conf_0_2) (= y_3 y_1) (= conf_0_4 conf_0!) (= x_3 x!) (= y_3 y!) (= z z_0) (= z! z_0)))) (define-fun post-f ((conf_0 Int) (x Int) (y Int) (z Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (z_0 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= x x_2) - (= y y_1) - (= z z_0) - ) - ) - (not - (and - (not (< x_2 5)) - (not (>= z_0 y_1)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= x x_2) (= y y_1) (= z z_0))) (not (and (not (< x_2 5)) (not (>= z_0 y_1)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/3_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/3_conf5.sl index c511057..b5306c5 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/3_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/3_conf5.sl @@ -1,147 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var z Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_2_1 Int) -(declare-primed-var conf_2_2 Int) -(declare-primed-var conf_2_3 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_3_1 Int) -(declare-primed-var conf_3_2 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) -(declare-primed-var y_3 Int) -(declare-primed-var z_0 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (z Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_2_3 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (z_0 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (z Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_2_3 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (z_0 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_1) - (= conf_0_0 5) - (= conf_1_0 8) - (= conf_2_0 5) - (= conf_3_0 3) - (= conf_4_0 9) - (= x_1 0) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_1) (= conf_0_0 5) (= conf_1_0 8) (= conf_2_0 5) (= conf_3_0 3) (= conf_4_0 9) (= x_1 0))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (z Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_2_3 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (z_0 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (x! Int) (y! Int) (z! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_2_1! Int) (conf_2_2! Int) (conf_2_3! Int) (conf_3_0! Int) (conf_3_1! Int) (conf_3_2! Int) (conf_4_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int) (y_3! Int) (z_0! Int)) Bool - (or - (and - (= conf_2_1 conf_2) - (= conf_3_1 conf_3) - (= x_2 x) - (= y_1 y) - (= conf_2_1 conf_2!) - (= conf_3_1 conf_3!) - (= x_2 x!) - (= y_1 y!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= y y!) - (= z z!) - ) - (and - (= conf_2_1 conf_2) - (= conf_3_1 conf_3) - (= x_2 x) - (= y_1 y) - (< x_2 5) - (= x_3 (+ x_2 1)) - (= conf_3_2 (- 399 conf_2_1)) - (<= z_0 y_1) - (= y_2 z_0) - (= conf_2_2 (+ conf_0_0 conf_1_0)) - (= conf_2_3 conf_2_2) - (= y_3 y_2) - (= conf_2_3 conf_2!) - (= conf_3_2 conf_3!) - (= x_3 x!) - (= y_3 y!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= z z_0) - (= z! z_0) - ) - (and - (= conf_2_1 conf_2) - (= conf_3_1 conf_3) - (= x_2 x) - (= y_1 y) - (< x_2 5) - (= x_3 (+ x_2 1)) - (= conf_3_2 (- 399 conf_2_1)) - (not (<= z_0 y_1)) - (= conf_2_3 conf_2_1) - (= y_3 y_1) - (= conf_2_3 conf_2!) - (= conf_3_2 conf_3!) - (= x_3 x!) - (= y_3 y!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= z z_0) - (= z! z_0) - ) - ) -) - + (or (and (= conf_2_1 conf_2) (= conf_3_1 conf_3) (= x_2 x) (= y_1 y) (= conf_2_1 conf_2!) (= conf_3_1 conf_3!) (= x_2 x!) (= y_1 y!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= y y!) (= z z!)) (and (= conf_2_1 conf_2) (= conf_3_1 conf_3) (= x_2 x) (= y_1 y) (< x_2 5) (= x_3 (+ x_2 1)) (= conf_3_2 (- 399 conf_2_1)) (<= z_0 y_1) (= y_2 z_0) (= conf_2_2 (+ conf_0_0 conf_1_0)) (= conf_2_3 conf_2_2) (= y_3 y_2) (= conf_2_3 conf_2!) (= conf_3_2 conf_3!) (= x_3 x!) (= y_3 y!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= z z_0) (= z! z_0)) (and (= conf_2_1 conf_2) (= conf_3_1 conf_3) (= x_2 x) (= y_1 y) (< x_2 5) (= x_3 (+ x_2 1)) (= conf_3_2 (- 399 conf_2_1)) (not (<= z_0 y_1)) (= conf_2_3 conf_2_1) (= y_3 y_1) (= conf_2_3 conf_2!) (= conf_3_2 conf_3!) (= x_3 x!) (= y_3 y!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= z z_0) (= z! z_0)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (z Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_2_3 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (z_0 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_1) - (= conf_3 conf_3_1) - (= conf_4 conf_4_0) - (= x x_2) - (= y y_1) - (= z z_0) - ) - ) - (not - (and - (not (< x_2 5)) - (not (>= z_0 y_1)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_1) (= conf_3 conf_3_1) (= conf_4 conf_4_0) (= x x_2) (= y y_1) (= z z_0))) (not (and (not (< x_2 5)) (not (>= z_0 y_1)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/4.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/4.c.sl index 592fc95..e16b4a9 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/4.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/4.c.sl @@ -1,82 +1,15 @@ (set-logic LIA) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var z Int) - -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) -(declare-primed-var y_3 Int) -(declare-primed-var z_0 Int) - (synth-inv inv-f ((x Int) (y Int) (z Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (z_0 Int))) (define-fun pre-f ((x Int) (y Int) (z Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (z_0 Int)) Bool - (and - (= x x_0) - (= x_0 0) - ) -) - + (and (= x x_0) (= x_0 0))) (define-fun trans-f ((x Int) (y Int) (z Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (z_0 Int) (x! Int) (y! Int) (z! Int) (x_0! Int) (x_1! Int) (x_2! Int) (y_0! Int) (y_1! Int) (y_2! Int) (y_3! Int) (z_0! Int)) Bool - (or - (and - (= x_1 x) - (= y_1 y) - (= x_1 x!) - (= y_1 y!) - (= y y!) - (= z z!) - ) - (and - (= x_1 x) - (= y_1 y) - (< x_1 500) - (= x_2 (+ x_1 1)) - (<= z_0 y_1) - (= y_2 z_0) - (= y_3 y_2) - (= x_2 x!) - (= y_3 y!) - (= z z_0) - (= z! z_0) - ) - (and - (= x_1 x) - (= y_1 y) - (< x_1 500) - (= x_2 (+ x_1 1)) - (not (<= z_0 y_1)) - (= y_3 y_1) - (= x_2 x!) - (= y_3 y!) - (= z z_0) - (= z! z_0) - ) - ) -) - + (or (and (= x_1 x) (= y_1 y) (= x_1 x!) (= y_1 y!) (= y y!) (= z z!)) (and (= x_1 x) (= y_1 y) (< x_1 500) (= x_2 (+ x_1 1)) (<= z_0 y_1) (= y_2 z_0) (= y_3 y_2) (= x_2 x!) (= y_3 y!) (= z z_0) (= z! z_0)) (and (= x_1 x) (= y_1 y) (< x_1 500) (= x_2 (+ x_1 1)) (not (<= z_0 y_1)) (= y_3 y_1) (= x_2 x!) (= y_3 y!) (= z z_0) (= z! z_0)))) (define-fun post-f ((x Int) (y Int) (z Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (z_0 Int)) Bool - (or - (not - (and - (= x x_1) - (= y y_1) - (= z z_0) - ) - ) - (not - (and - (not (< x_1 500)) - (not (>= z_0 y_1)) - ) - ) - ) -) + (or (not (and (= x x_1) (= y y_1) (= z z_0))) (not (and (not (< x_1 500)) (not (>= z_0 y_1)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/40.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/40.c.sl index 22e0244..6b91858 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/40.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/40.c.sl @@ -1,94 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int))) (define-fun pre-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= n n_0) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= n n_0) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int) (c! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= c_2 c!) - (= c c!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (> c_2 n_0) - (= c_3 (+ c_2 1)) - (= c_4 c_3) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (> c_2 n_0)) - (= c_4 c_2) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= c_2 n_0) - (= c_5 1) - (= c_4 c_5) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (= c_2 n_0)) - (= c_4 c_2) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= c_2 c!) (= c c!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (> c_2 n_0) (= c_3 (+ c_2 1)) (= c_4 c_3) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (not (> c_2 n_0)) (= c_4 c_2) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= c_2 n_0) (= c_5 1) (= c_4 c_5) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (not (= c_2 n_0)) (= c_4 c_2) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= n n_0) - ) - ) - (not - (and - (not (= c_2 n_0)) - (not (>= c_2 0)) - ) - ) - ) -) + (or (not (and (= c c_2) (= n n_0))) (not (and (not (= c_2 n_0)) (not (>= c_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/40_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/40_conf1.sl index 20d66bf..0fbbf25 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/40_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/40_conf1.sl @@ -1,120 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= n n_0) - (= conf_0_0 2) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= n n_0) (= conf_0_0 2) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int) (c! Int) (conf_0! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 c!) - (= conf_0_1 conf_0!) - (= c c!) - (= conf_0 conf_0!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (> c_2 n_0) - (= c_3 (+ c_2 1)) - (= conf_0_2 (- 161 conf_0_1)) - (= c_4 c_3) - (= conf_0_3 conf_0_2) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (> c_2 n_0)) - (= c_4 c_2) - (= conf_0_3 conf_0_1) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 n_0) - (= c_5 1) - (= conf_0_4 (+ conf_0_1 483)) - (= c_4 c_5) - (= conf_0_3 conf_0_4) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (= c_2 n_0)) - (= c_4 c_2) - (= conf_0_3 conf_0_1) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 c!) (= conf_0_1 conf_0!) (= c c!) (= conf_0 conf_0!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (> c_2 n_0) (= c_3 (+ c_2 1)) (= conf_0_2 (- 161 conf_0_1)) (= c_4 c_3) (= conf_0_3 conf_0_2) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (> c_2 n_0)) (= c_4 c_2) (= conf_0_3 conf_0_1) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 n_0) (= c_5 1) (= conf_0_4 (+ conf_0_1 483)) (= c_4 c_5) (= conf_0_3 conf_0_4) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (= c_2 n_0)) (= c_4 c_2) (= conf_0_3 conf_0_1) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_1) - (= n n_0) - ) - ) - (not - (and - (not (= c_2 n_0)) - (not (>= c_2 0)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_1) (= n n_0))) (not (and (not (= c_2 n_0)) (not (>= c_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/40_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/40_conf5.sl index bea1f19..235ff4c 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/40_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/40_conf5.sl @@ -1,184 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_1_1 Int) -(declare-primed-var conf_1_2 Int) -(declare-primed-var conf_1_3 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_2_1 Int) -(declare-primed-var conf_2_2 Int) -(declare-primed-var conf_2_3 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_2_3 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_2_3 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= n n_0) - (= conf_0_0 1) - (= conf_1_0 6) - (= conf_2_0 5) - (= conf_3_0 1) - (= conf_4_0 2) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= n n_0) (= conf_0_0 1) (= conf_1_0 6) (= conf_2_0 5) (= conf_3_0 1) (= conf_4_0 2) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_2_3 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (c! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_1_1! Int) (conf_1_2! Int) (conf_1_3! Int) (conf_2_0! Int) (conf_2_1! Int) (conf_2_2! Int) (conf_2_3! Int) (conf_3_0! Int) (conf_4_0! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (= c_2 c!) - (= conf_1_1 conf_1!) - (= conf_2_1 conf_2!) - (= c c!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (> c_2 n_0) - (= c_3 (+ c_2 1)) - (= conf_1_2 (- conf_2_1 conf_4_0)) - (= c_4 c_3) - (= conf_1_3 conf_1_2) - (= conf_2_2 conf_2_1) - (= c_4 c!) - (= conf_1_3 conf_1!) - (= conf_2_2 conf_2!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (not (> c_2 n_0)) - (= c_4 c_2) - (= conf_1_3 conf_1_1) - (= conf_2_2 conf_2_1) - (= c_4 c!) - (= conf_1_3 conf_1!) - (= conf_2_2 conf_2!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (= c_2 n_0) - (= c_5 1) - (= conf_2_3 conf_4_0) - (= c_4 c_5) - (= conf_1_3 conf_1_1) - (= conf_2_2 conf_2_3) - (= c_4 c!) - (= conf_1_3 conf_1!) - (= conf_2_2 conf_2!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (not (= c_2 n_0)) - (= c_4 c_2) - (= conf_1_3 conf_1_1) - (= conf_2_2 conf_2_1) - (= c_4 c!) - (= conf_1_3 conf_1!) - (= conf_2_2 conf_2!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_1_1 conf_1) (= conf_2_1 conf_2) (= c_2 c!) (= conf_1_1 conf_1!) (= conf_2_1 conf_2!) (= c c!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (= conf_1_1 conf_1) (= conf_2_1 conf_2) (> c_2 n_0) (= c_3 (+ c_2 1)) (= conf_1_2 (- conf_2_1 conf_4_0)) (= c_4 c_3) (= conf_1_3 conf_1_2) (= conf_2_2 conf_2_1) (= c_4 c!) (= conf_1_3 conf_1!) (= conf_2_2 conf_2!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_1_1 conf_1) (= conf_2_1 conf_2) (not (> c_2 n_0)) (= c_4 c_2) (= conf_1_3 conf_1_1) (= conf_2_2 conf_2_1) (= c_4 c!) (= conf_1_3 conf_1!) (= conf_2_2 conf_2!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_1_1 conf_1) (= conf_2_1 conf_2) (= c_2 n_0) (= c_5 1) (= conf_2_3 conf_4_0) (= c_4 c_5) (= conf_1_3 conf_1_1) (= conf_2_2 conf_2_3) (= c_4 c!) (= conf_1_3 conf_1!) (= conf_2_2 conf_2!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_1_1 conf_1) (= conf_2_1 conf_2) (not (= c_2 n_0)) (= c_4 c_2) (= conf_1_3 conf_1_1) (= conf_2_2 conf_2_1) (= c_4 c!) (= conf_1_3 conf_1!) (= conf_2_2 conf_2!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_2_3 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_0) - (= conf_1 conf_1_1) - (= conf_2 conf_2_1) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= n n_0) - ) - ) - (not - (and - (not (= c_2 n_0)) - (not (>= c_2 0)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_0) (= conf_1 conf_1_1) (= conf_2 conf_2_1) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= n n_0))) (not (and (not (= c_2 n_0)) (not (>= c_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/41.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/41.c.sl index 3df4757..fa2c4ed 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/41.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/41.c.sl @@ -1,94 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int))) (define-fun pre-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= n n_0) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= n n_0) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int) (c! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= c_2 c!) - (= c c!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (> c_2 n_0) - (= c_3 (+ c_2 1)) - (= c_4 c_3) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (> c_2 n_0)) - (= c_4 c_2) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= c_2 n_0) - (= c_5 1) - (= c_4 c_5) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (= c_2 n_0)) - (= c_4 c_2) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= c_2 c!) (= c c!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (> c_2 n_0) (= c_3 (+ c_2 1)) (= c_4 c_3) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (not (> c_2 n_0)) (= c_4 c_2) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= c_2 n_0) (= c_5 1) (= c_4 c_5) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (not (= c_2 n_0)) (= c_4 c_2) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= n n_0) - ) - ) - (not - (and - (not (= c_2 n_0)) - (not (<= c_2 n_0)) - ) - ) - ) -) + (or (not (and (= c c_2) (= n n_0))) (not (and (not (= c_2 n_0)) (not (<= c_2 n_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/41_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/41_conf1.sl index 29a0e2b..2a8529e 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/41_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/41_conf1.sl @@ -1,120 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= n n_0) - (= conf_0_0 2) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= n n_0) (= conf_0_0 2) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int) (c! Int) (conf_0! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 c!) - (= conf_0_1 conf_0!) - (= c c!) - (= conf_0 conf_0!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (> c_2 n_0) - (= c_3 (+ c_2 1)) - (= conf_0_2 (- 161 conf_0_1)) - (= c_4 c_3) - (= conf_0_3 conf_0_2) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (> c_2 n_0)) - (= c_4 c_2) - (= conf_0_3 conf_0_1) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 n_0) - (= c_5 1) - (= conf_0_4 (+ conf_0_1 483)) - (= c_4 c_5) - (= conf_0_3 conf_0_4) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (= c_2 n_0)) - (= c_4 c_2) - (= conf_0_3 conf_0_1) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 c!) (= conf_0_1 conf_0!) (= c c!) (= conf_0 conf_0!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (> c_2 n_0) (= c_3 (+ c_2 1)) (= conf_0_2 (- 161 conf_0_1)) (= c_4 c_3) (= conf_0_3 conf_0_2) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (> c_2 n_0)) (= c_4 c_2) (= conf_0_3 conf_0_1) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 n_0) (= c_5 1) (= conf_0_4 (+ conf_0_1 483)) (= c_4 c_5) (= conf_0_3 conf_0_4) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (= c_2 n_0)) (= c_4 c_2) (= conf_0_3 conf_0_1) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_1) - (= n n_0) - ) - ) - (not - (and - (not (= c_2 n_0)) - (not (<= c_2 n_0)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_1) (= n n_0))) (not (and (not (= c_2 n_0)) (not (<= c_2 n_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/41_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/41_conf5.sl index 1423e52..ff23547 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/41_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/41_conf5.sl @@ -1,184 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_1_1 Int) -(declare-primed-var conf_1_2 Int) -(declare-primed-var conf_1_3 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_2_1 Int) -(declare-primed-var conf_2_2 Int) -(declare-primed-var conf_2_3 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_2_3 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_2_3 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= n n_0) - (= conf_0_0 1) - (= conf_1_0 6) - (= conf_2_0 5) - (= conf_3_0 1) - (= conf_4_0 2) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= n n_0) (= conf_0_0 1) (= conf_1_0 6) (= conf_2_0 5) (= conf_3_0 1) (= conf_4_0 2) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_2_3 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (c! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_1_1! Int) (conf_1_2! Int) (conf_1_3! Int) (conf_2_0! Int) (conf_2_1! Int) (conf_2_2! Int) (conf_2_3! Int) (conf_3_0! Int) (conf_4_0! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (= c_2 c!) - (= conf_1_1 conf_1!) - (= conf_2_1 conf_2!) - (= c c!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (> c_2 n_0) - (= c_3 (+ c_2 1)) - (= conf_1_2 (- conf_2_1 conf_4_0)) - (= c_4 c_3) - (= conf_1_3 conf_1_2) - (= conf_2_2 conf_2_1) - (= c_4 c!) - (= conf_1_3 conf_1!) - (= conf_2_2 conf_2!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (not (> c_2 n_0)) - (= c_4 c_2) - (= conf_1_3 conf_1_1) - (= conf_2_2 conf_2_1) - (= c_4 c!) - (= conf_1_3 conf_1!) - (= conf_2_2 conf_2!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (= c_2 n_0) - (= c_5 1) - (= conf_2_3 conf_4_0) - (= c_4 c_5) - (= conf_1_3 conf_1_1) - (= conf_2_2 conf_2_3) - (= c_4 c!) - (= conf_1_3 conf_1!) - (= conf_2_2 conf_2!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (not (= c_2 n_0)) - (= c_4 c_2) - (= conf_1_3 conf_1_1) - (= conf_2_2 conf_2_1) - (= c_4 c!) - (= conf_1_3 conf_1!) - (= conf_2_2 conf_2!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_1_1 conf_1) (= conf_2_1 conf_2) (= c_2 c!) (= conf_1_1 conf_1!) (= conf_2_1 conf_2!) (= c c!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (= conf_1_1 conf_1) (= conf_2_1 conf_2) (> c_2 n_0) (= c_3 (+ c_2 1)) (= conf_1_2 (- conf_2_1 conf_4_0)) (= c_4 c_3) (= conf_1_3 conf_1_2) (= conf_2_2 conf_2_1) (= c_4 c!) (= conf_1_3 conf_1!) (= conf_2_2 conf_2!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_1_1 conf_1) (= conf_2_1 conf_2) (not (> c_2 n_0)) (= c_4 c_2) (= conf_1_3 conf_1_1) (= conf_2_2 conf_2_1) (= c_4 c!) (= conf_1_3 conf_1!) (= conf_2_2 conf_2!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_1_1 conf_1) (= conf_2_1 conf_2) (= c_2 n_0) (= c_5 1) (= conf_2_3 conf_4_0) (= c_4 c_5) (= conf_1_3 conf_1_1) (= conf_2_2 conf_2_3) (= c_4 c!) (= conf_1_3 conf_1!) (= conf_2_2 conf_2!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_1_1 conf_1) (= conf_2_1 conf_2) (not (= c_2 n_0)) (= c_4 c_2) (= conf_1_3 conf_1_1) (= conf_2_2 conf_2_1) (= c_4 c!) (= conf_1_3 conf_1!) (= conf_2_2 conf_2!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_2_3 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_0) - (= conf_1 conf_1_1) - (= conf_2 conf_2_1) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= n n_0) - ) - ) - (not - (and - (not (= c_2 n_0)) - (not (<= c_2 n_0)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_0) (= conf_1 conf_1_1) (= conf_2 conf_2_1) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= n n_0))) (not (and (not (= c_2 n_0)) (not (<= c_2 n_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/42.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/42.c.sl index 0f527ec..69274cd 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/42.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/42.c.sl @@ -1,95 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int))) (define-fun pre-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= n n_0) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= n n_0) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int) (c! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= c_2 c!) - (= c c!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (> c_2 n_0) - (= c_3 (+ c_2 1)) - (= c_4 c_3) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (> c_2 n_0)) - (= c_4 c_2) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= c_2 n_0) - (= c_5 1) - (= c_4 c_5) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (= c_2 n_0)) - (= c_4 c_2) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= c_2 c!) (= c c!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (> c_2 n_0) (= c_3 (+ c_2 1)) (= c_4 c_3) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (not (> c_2 n_0)) (= c_4 c_2) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= c_2 n_0) (= c_5 1) (= c_4 c_5) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (not (= c_2 n_0)) (= c_4 c_2) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= n n_0) - ) - ) - (not - (and - (< c_2 0) - (> c_2 n_0) - (not (= c_2 n_0)) - ) - ) - ) -) + (or (not (and (= c c_2) (= n n_0))) (not (and (< c_2 0) (> c_2 n_0) (not (= c_2 n_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/42_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/42_conf1.sl index 3bbcf9c..17f8a1c 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/42_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/42_conf1.sl @@ -1,121 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= n n_0) - (= conf_0_0 0) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= n n_0) (= conf_0_0 0) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int) (c! Int) (conf_0! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 c!) - (= conf_0_1 conf_0!) - (= c c!) - (= conf_0 conf_0!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (> c_2 n_0) - (= c_3 (+ c_2 1)) - (= conf_0_2 979) - (= c_4 c_3) - (= conf_0_3 conf_0_2) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (> c_2 n_0)) - (= c_4 c_2) - (= conf_0_3 conf_0_1) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 n_0) - (= c_5 1) - (= conf_0_4 180) - (= c_4 c_5) - (= conf_0_3 conf_0_4) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (= c_2 n_0)) - (= c_4 c_2) - (= conf_0_3 conf_0_1) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 c!) (= conf_0_1 conf_0!) (= c c!) (= conf_0 conf_0!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (> c_2 n_0) (= c_3 (+ c_2 1)) (= conf_0_2 979) (= c_4 c_3) (= conf_0_3 conf_0_2) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (> c_2 n_0)) (= c_4 c_2) (= conf_0_3 conf_0_1) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 n_0) (= c_5 1) (= conf_0_4 180) (= c_4 c_5) (= conf_0_3 conf_0_4) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (= c_2 n_0)) (= c_4 c_2) (= conf_0_3 conf_0_1) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_1) - (= n n_0) - ) - ) - (not - (and - (< c_2 0) - (> c_2 n_0) - (not (= c_2 n_0)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_1) (= n n_0))) (not (and (< c_2 0) (> c_2 n_0) (not (= c_2 n_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/42_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/42_conf5.sl index a039f06..c27a4c3 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/42_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/42_conf5.sl @@ -1,185 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_2_1 Int) -(declare-primed-var conf_2_2 Int) -(declare-primed-var conf_2_3 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_2_3 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_2_3 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= n n_0) - (= conf_0_0 9) - (= conf_1_0 8) - (= conf_2_0 6) - (= conf_3_0 0) - (= conf_4_0 0) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= n n_0) (= conf_0_0 9) (= conf_1_0 8) (= conf_2_0 6) (= conf_3_0 0) (= conf_4_0 0) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_2_3 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (c! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_2_1! Int) (conf_2_2! Int) (conf_2_3! Int) (conf_3_0! Int) (conf_4_0! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= conf_2_1 conf_2) - (= c_2 c!) - (= conf_0_1 conf_0!) - (= conf_2_1 conf_2!) - (= c c!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= conf_2_1 conf_2) - (> c_2 n_0) - (= c_3 (+ c_2 1)) - (= conf_2_2 180) - (= c_4 c_3) - (= conf_0_2 conf_0_1) - (= conf_2_3 conf_2_2) - (= c_4 c!) - (= conf_0_2 conf_0!) - (= conf_2_3 conf_2!) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= conf_2_1 conf_2) - (not (> c_2 n_0)) - (= c_4 c_2) - (= conf_0_2 conf_0_1) - (= conf_2_3 conf_2_1) - (= c_4 c!) - (= conf_0_2 conf_0!) - (= conf_2_3 conf_2!) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= conf_2_1 conf_2) - (= c_2 n_0) - (= c_5 1) - (= conf_0_3 (+ 150 conf_0_1)) - (= c_4 c_5) - (= conf_0_2 conf_0_3) - (= conf_2_3 conf_2_1) - (= c_4 c!) - (= conf_0_2 conf_0!) - (= conf_2_3 conf_2!) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= conf_2_1 conf_2) - (not (= c_2 n_0)) - (= c_4 c_2) - (= conf_0_2 conf_0_1) - (= conf_2_3 conf_2_1) - (= c_4 c!) - (= conf_0_2 conf_0!) - (= conf_2_3 conf_2!) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_0_1 conf_0) (= conf_2_1 conf_2) (= c_2 c!) (= conf_0_1 conf_0!) (= conf_2_1 conf_2!) (= c c!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= conf_2_1 conf_2) (> c_2 n_0) (= c_3 (+ c_2 1)) (= conf_2_2 180) (= c_4 c_3) (= conf_0_2 conf_0_1) (= conf_2_3 conf_2_2) (= c_4 c!) (= conf_0_2 conf_0!) (= conf_2_3 conf_2!) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= conf_2_1 conf_2) (not (> c_2 n_0)) (= c_4 c_2) (= conf_0_2 conf_0_1) (= conf_2_3 conf_2_1) (= c_4 c!) (= conf_0_2 conf_0!) (= conf_2_3 conf_2!) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= conf_2_1 conf_2) (= c_2 n_0) (= c_5 1) (= conf_0_3 (+ 150 conf_0_1)) (= c_4 c_5) (= conf_0_2 conf_0_3) (= conf_2_3 conf_2_1) (= c_4 c!) (= conf_0_2 conf_0!) (= conf_2_3 conf_2!) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= conf_2_1 conf_2) (not (= c_2 n_0)) (= c_4 c_2) (= conf_0_2 conf_0_1) (= conf_2_3 conf_2_1) (= c_4 c!) (= conf_0_2 conf_0!) (= conf_2_3 conf_2!) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_2_3 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_1) - (= conf_1 conf_1_0) - (= conf_2 conf_2_1) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= n n_0) - ) - ) - (not - (and - (< c_2 0) - (> c_2 n_0) - (not (= c_2 n_0)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_1) (= conf_1 conf_1_0) (= conf_2 conf_2_1) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= n n_0))) (not (and (< c_2 0) (> c_2 n_0) (not (= c_2 n_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/43.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/43.c.sl index c21b33a..afb1824 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/43.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/43.c.sl @@ -1,94 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int))) (define-fun pre-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= n n_0) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= n n_0) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int) (c! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= c_2 c!) - (= c c!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (> c_2 n_0) - (= c_3 (+ c_2 1)) - (= c_4 c_3) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (> c_2 n_0)) - (= c_4 c_2) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= c_2 n_0) - (= c_5 1) - (= c_4 c_5) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (= c_2 n_0)) - (= c_4 c_2) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= c_2 c!) (= c c!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (> c_2 n_0) (= c_3 (+ c_2 1)) (= c_4 c_3) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (not (> c_2 n_0)) (= c_4 c_2) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= c_2 n_0) (= c_5 1) (= c_4 c_5) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (not (= c_2 n_0)) (= c_4 c_2) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= n n_0) - ) - ) - (not - (and - (= c_2 n_0) - (not (> n_0 -1)) - ) - ) - ) -) + (or (not (and (= c c_2) (= n n_0))) (not (and (= c_2 n_0) (not (> n_0 (- 1))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/43_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/43_conf1.sl index 4de9176..0e8a597 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/43_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/43_conf1.sl @@ -1,120 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= n n_0) - (= conf_0_0 3) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= n n_0) (= conf_0_0 3) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int) (c! Int) (conf_0! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 c!) - (= conf_0_1 conf_0!) - (= c c!) - (= conf_0 conf_0!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (> c_2 n_0) - (= c_3 (+ c_2 1)) - (= conf_0_2 (+ conf_0_1 585)) - (= c_4 c_3) - (= conf_0_3 conf_0_2) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (> c_2 n_0)) - (= c_4 c_2) - (= conf_0_3 conf_0_1) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 n_0) - (= c_5 1) - (= conf_0_4 (- conf_0_1 conf_0_1)) - (= c_4 c_5) - (= conf_0_3 conf_0_4) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (= c_2 n_0)) - (= c_4 c_2) - (= conf_0_3 conf_0_1) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 c!) (= conf_0_1 conf_0!) (= c c!) (= conf_0 conf_0!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (> c_2 n_0) (= c_3 (+ c_2 1)) (= conf_0_2 (+ conf_0_1 585)) (= c_4 c_3) (= conf_0_3 conf_0_2) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (> c_2 n_0)) (= c_4 c_2) (= conf_0_3 conf_0_1) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 n_0) (= c_5 1) (= conf_0_4 (- conf_0_1 conf_0_1)) (= c_4 c_5) (= conf_0_3 conf_0_4) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (= c_2 n_0)) (= c_4 c_2) (= conf_0_3 conf_0_1) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_1) - (= n n_0) - ) - ) - (not - (and - (= c_2 n_0) - (not (> n_0 -1)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_1) (= n n_0))) (not (and (= c_2 n_0) (not (> n_0 (- 1))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/43_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/43_conf5.sl index 9ac53d2..8c8751a 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/43_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/43_conf5.sl @@ -1,184 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_3_1 Int) -(declare-primed-var conf_3_2 Int) -(declare-primed-var conf_3_3 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (n_0 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= n n_0) - (= conf_0_0 6) - (= conf_1_0 9) - (= conf_2_0 1) - (= conf_3_0 6) - (= conf_4_0 3) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= n n_0) (= conf_0_0 6) (= conf_1_0 9) (= conf_2_0 1) (= conf_3_0 6) (= conf_4_0 3) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (n_0 Int) (c! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_3_1! Int) (conf_3_2! Int) (conf_3_3! Int) (conf_4_0! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= conf_3_1 conf_3) - (= c_2 c!) - (= conf_0_1 conf_0!) - (= conf_3_1 conf_3!) - (= c c!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= conf_3_1 conf_3) - (> c_2 n_0) - (= c_3 (+ c_2 1)) - (= conf_3_2 conf_2_0) - (= c_4 c_3) - (= conf_0_2 conf_0_1) - (= conf_3_3 conf_3_2) - (= c_4 c!) - (= conf_0_2 conf_0!) - (= conf_3_3 conf_3!) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= conf_3_1 conf_3) - (not (> c_2 n_0)) - (= c_4 c_2) - (= conf_0_2 conf_0_1) - (= conf_3_3 conf_3_1) - (= c_4 c!) - (= conf_0_2 conf_0!) - (= conf_3_3 conf_3!) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= conf_3_1 conf_3) - (= c_2 n_0) - (= c_5 1) - (= conf_0_3 (- 565 conf_4_0)) - (= c_4 c_5) - (= conf_0_2 conf_0_3) - (= conf_3_3 conf_3_1) - (= c_4 c!) - (= conf_0_2 conf_0!) - (= conf_3_3 conf_3!) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= conf_3_1 conf_3) - (not (= c_2 n_0)) - (= c_4 c_2) - (= conf_0_2 conf_0_1) - (= conf_3_3 conf_3_1) - (= c_4 c!) - (= conf_0_2 conf_0!) - (= conf_3_3 conf_3!) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_0_1 conf_0) (= conf_3_1 conf_3) (= c_2 c!) (= conf_0_1 conf_0!) (= conf_3_1 conf_3!) (= c c!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= conf_3_1 conf_3) (> c_2 n_0) (= c_3 (+ c_2 1)) (= conf_3_2 conf_2_0) (= c_4 c_3) (= conf_0_2 conf_0_1) (= conf_3_3 conf_3_2) (= c_4 c!) (= conf_0_2 conf_0!) (= conf_3_3 conf_3!) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= conf_3_1 conf_3) (not (> c_2 n_0)) (= c_4 c_2) (= conf_0_2 conf_0_1) (= conf_3_3 conf_3_1) (= c_4 c!) (= conf_0_2 conf_0!) (= conf_3_3 conf_3!) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= conf_3_1 conf_3) (= c_2 n_0) (= c_5 1) (= conf_0_3 (- 565 conf_4_0)) (= c_4 c_5) (= conf_0_2 conf_0_3) (= conf_3_3 conf_3_1) (= c_4 c!) (= conf_0_2 conf_0!) (= conf_3_3 conf_3!) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= conf_3_1 conf_3) (not (= c_2 n_0)) (= c_4 c_2) (= conf_0_2 conf_0_1) (= conf_3_3 conf_3_1) (= c_4 c!) (= conf_0_2 conf_0!) (= conf_3_3 conf_3!) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_1) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_1) - (= conf_4 conf_4_0) - (= n n_0) - ) - ) - (not - (and - (= c_2 n_0) - (not (> n_0 -1)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_1) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_1) (= conf_4 conf_4_0) (= n n_0))) (not (and (= c_2 n_0) (not (> n_0 (- 1))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/44.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/44.c.sl index ccf560e..ce77b2e 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/44.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/44.c.sl @@ -1,94 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int))) (define-fun pre-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= n n_0) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= n n_0) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int) (c! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= c_2 c!) - (= c c!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (> c_2 n_0) - (= c_3 (+ c_2 1)) - (= c_4 c_3) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (> c_2 n_0)) - (= c_4 c_2) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= c_2 n_0) - (= c_5 1) - (= c_4 c_5) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (= c_2 n_0)) - (= c_4 c_2) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= c_2 c!) (= c c!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (> c_2 n_0) (= c_3 (+ c_2 1)) (= c_4 c_3) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (not (> c_2 n_0)) (= c_4 c_2) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= c_2 n_0) (= c_5 1) (= c_4 c_5) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (not (= c_2 n_0)) (= c_4 c_2) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= n n_0) - ) - ) - (not - (and - (<= n_0 -1) - (not (not (= c_2 n_0))) - ) - ) - ) -) + (or (not (and (= c c_2) (= n n_0))) (not (and (<= n_0 (- 1)) (not (not (= c_2 n_0))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/44_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/44_conf1.sl index b04703e..de72c5e 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/44_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/44_conf1.sl @@ -1,120 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= n n_0) - (= conf_0_0 5) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= n n_0) (= conf_0_0 5) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int) (c! Int) (conf_0! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 c!) - (= conf_0_1 conf_0!) - (= c c!) - (= conf_0 conf_0!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (> c_2 n_0) - (= c_3 (+ c_2 1)) - (= conf_0_2 (- conf_0_1 770)) - (= c_4 c_3) - (= conf_0_3 conf_0_2) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (> c_2 n_0)) - (= c_4 c_2) - (= conf_0_3 conf_0_1) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 n_0) - (= c_5 1) - (= conf_0_4 conf_0_1) - (= c_4 c_5) - (= conf_0_3 conf_0_4) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (= c_2 n_0)) - (= c_4 c_2) - (= conf_0_3 conf_0_1) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 c!) (= conf_0_1 conf_0!) (= c c!) (= conf_0 conf_0!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (> c_2 n_0) (= c_3 (+ c_2 1)) (= conf_0_2 (- conf_0_1 770)) (= c_4 c_3) (= conf_0_3 conf_0_2) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (> c_2 n_0)) (= c_4 c_2) (= conf_0_3 conf_0_1) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 n_0) (= c_5 1) (= conf_0_4 conf_0_1) (= c_4 c_5) (= conf_0_3 conf_0_4) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (= c_2 n_0)) (= c_4 c_2) (= conf_0_3 conf_0_1) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_1) - (= n n_0) - ) - ) - (not - (and - (<= n_0 -1) - (not (not (= c_2 n_0))) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_1) (= n n_0))) (not (and (<= n_0 (- 1)) (not (not (= c_2 n_0))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/44_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/44_conf5.sl index 2c44b35..f7087a3 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/44_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/44_conf5.sl @@ -1,176 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var conf_4_1 Int) -(declare-primed-var conf_4_2 Int) -(declare-primed-var conf_4_3 Int) -(declare-primed-var conf_4_4 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (conf_4_4 Int) (n_0 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (conf_4_4 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= n n_0) - (= conf_0_0 1) - (= conf_1_0 5) - (= conf_2_0 9) - (= conf_3_0 4) - (= conf_4_0 5) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= n n_0) (= conf_0_0 1) (= conf_1_0 5) (= conf_2_0 9) (= conf_3_0 4) (= conf_4_0 5) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (conf_4_4 Int) (n_0 Int) (c! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_4_0! Int) (conf_4_1! Int) (conf_4_2! Int) (conf_4_3! Int) (conf_4_4! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= conf_4_1 conf_4) - (= c_2 c!) - (= conf_4_1 conf_4!) - (= c c!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_4_1 conf_4) - (> c_2 n_0) - (= c_3 (+ c_2 1)) - (= conf_4_2 631) - (= c_4 c_3) - (= conf_4_3 conf_4_2) - (= c_4 c!) - (= conf_4_3 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_4_1 conf_4) - (not (> c_2 n_0)) - (= c_4 c_2) - (= conf_4_3 conf_4_1) - (= c_4 c!) - (= conf_4_3 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_4_1 conf_4) - (= c_2 n_0) - (= c_5 1) - (= conf_4_4 (+ 272 conf_1_0)) - (= c_4 c_5) - (= conf_4_3 conf_4_4) - (= c_4 c!) - (= conf_4_3 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_4_1 conf_4) - (not (= c_2 n_0)) - (= c_4 c_2) - (= conf_4_3 conf_4_1) - (= c_4 c!) - (= conf_4_3 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_4_1 conf_4) (= c_2 c!) (= conf_4_1 conf_4!) (= c c!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (= conf_4_1 conf_4) (> c_2 n_0) (= c_3 (+ c_2 1)) (= conf_4_2 631) (= c_4 c_3) (= conf_4_3 conf_4_2) (= c_4 c!) (= conf_4_3 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_4_1 conf_4) (not (> c_2 n_0)) (= c_4 c_2) (= conf_4_3 conf_4_1) (= c_4 c!) (= conf_4_3 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_4_1 conf_4) (= c_2 n_0) (= c_5 1) (= conf_4_4 (+ 272 conf_1_0)) (= c_4 c_5) (= conf_4_3 conf_4_4) (= c_4 c!) (= conf_4_3 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_4_1 conf_4) (not (= c_2 n_0)) (= c_4 c_2) (= conf_4_3 conf_4_1) (= c_4 c!) (= conf_4_3 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (conf_4_4 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_1) - (= n n_0) - ) - ) - (not - (and - (<= n_0 -1) - (not (not (= c_2 n_0))) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_1) (= n n_0))) (not (and (<= n_0 (- 1)) (not (not (= c_2 n_0))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/45.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/45.c.sl index 491d01d..52712bb 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/45.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/45.c.sl @@ -1,94 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int))) (define-fun pre-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= n n_0) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= n n_0) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int) (c! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= c_2 c!) - (= c c!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (= c_2 n_0)) - (= c_3 (+ c_2 1)) - (= c_4 c_3) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (not (= c_2 n_0))) - (= c_4 c_2) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= c_2 n_0) - (= c_5 1) - (= c_4 c_5) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (= c_2 n_0)) - (= c_4 c_2) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= c_2 c!) (= c c!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (not (= c_2 n_0)) (= c_3 (+ c_2 1)) (= c_4 c_3) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (not (not (= c_2 n_0))) (= c_4 c_2) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= c_2 n_0) (= c_5 1) (= c_4 c_5) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (not (= c_2 n_0)) (= c_4 c_2) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= n n_0) - ) - ) - (not - (and - (not (= c_2 n_0)) - (not (>= c_2 0)) - ) - ) - ) -) + (or (not (and (= c c_2) (= n n_0))) (not (and (not (= c_2 n_0)) (not (>= c_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/45_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/45_conf1.sl index a62c474..bf7e5d3 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/45_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/45_conf1.sl @@ -1,120 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= n n_0) - (= conf_0_0 2) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= n n_0) (= conf_0_0 2) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int) (c! Int) (conf_0! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 c!) - (= conf_0_1 conf_0!) - (= c c!) - (= conf_0 conf_0!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (= c_2 n_0)) - (= c_3 (+ c_2 1)) - (= conf_0_2 (- 161 conf_0_1)) - (= c_4 c_3) - (= conf_0_3 conf_0_2) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (not (= c_2 n_0))) - (= c_4 c_2) - (= conf_0_3 conf_0_1) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 n_0) - (= c_5 1) - (= conf_0_4 (+ conf_0_1 483)) - (= c_4 c_5) - (= conf_0_3 conf_0_4) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (= c_2 n_0)) - (= c_4 c_2) - (= conf_0_3 conf_0_1) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 c!) (= conf_0_1 conf_0!) (= c c!) (= conf_0 conf_0!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (= c_2 n_0)) (= c_3 (+ c_2 1)) (= conf_0_2 (- 161 conf_0_1)) (= c_4 c_3) (= conf_0_3 conf_0_2) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (not (= c_2 n_0))) (= c_4 c_2) (= conf_0_3 conf_0_1) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 n_0) (= c_5 1) (= conf_0_4 (+ conf_0_1 483)) (= c_4 c_5) (= conf_0_3 conf_0_4) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (= c_2 n_0)) (= c_4 c_2) (= conf_0_3 conf_0_1) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_1) - (= n n_0) - ) - ) - (not - (and - (not (= c_2 n_0)) - (not (>= c_2 0)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_1) (= n n_0))) (not (and (not (= c_2 n_0)) (not (>= c_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/45_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/45_conf5.sl index dfcd0eb..7b11b77 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/45_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/45_conf5.sl @@ -1,184 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_1_1 Int) -(declare-primed-var conf_1_2 Int) -(declare-primed-var conf_1_3 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_2_1 Int) -(declare-primed-var conf_2_2 Int) -(declare-primed-var conf_2_3 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_2_3 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_2_3 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= n n_0) - (= conf_0_0 1) - (= conf_1_0 6) - (= conf_2_0 5) - (= conf_3_0 1) - (= conf_4_0 2) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= n n_0) (= conf_0_0 1) (= conf_1_0 6) (= conf_2_0 5) (= conf_3_0 1) (= conf_4_0 2) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_2_3 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (c! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_1_1! Int) (conf_1_2! Int) (conf_1_3! Int) (conf_2_0! Int) (conf_2_1! Int) (conf_2_2! Int) (conf_2_3! Int) (conf_3_0! Int) (conf_4_0! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (= c_2 c!) - (= conf_1_1 conf_1!) - (= conf_2_1 conf_2!) - (= c c!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (not (= c_2 n_0)) - (= c_3 (+ c_2 1)) - (= conf_1_2 (- conf_2_1 conf_4_0)) - (= c_4 c_3) - (= conf_1_3 conf_1_2) - (= conf_2_2 conf_2_1) - (= c_4 c!) - (= conf_1_3 conf_1!) - (= conf_2_2 conf_2!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (not (not (= c_2 n_0))) - (= c_4 c_2) - (= conf_1_3 conf_1_1) - (= conf_2_2 conf_2_1) - (= c_4 c!) - (= conf_1_3 conf_1!) - (= conf_2_2 conf_2!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (= c_2 n_0) - (= c_5 1) - (= conf_2_3 conf_4_0) - (= c_4 c_5) - (= conf_1_3 conf_1_1) - (= conf_2_2 conf_2_3) - (= c_4 c!) - (= conf_1_3 conf_1!) - (= conf_2_2 conf_2!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (not (= c_2 n_0)) - (= c_4 c_2) - (= conf_1_3 conf_1_1) - (= conf_2_2 conf_2_1) - (= c_4 c!) - (= conf_1_3 conf_1!) - (= conf_2_2 conf_2!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_1_1 conf_1) (= conf_2_1 conf_2) (= c_2 c!) (= conf_1_1 conf_1!) (= conf_2_1 conf_2!) (= c c!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (= conf_1_1 conf_1) (= conf_2_1 conf_2) (not (= c_2 n_0)) (= c_3 (+ c_2 1)) (= conf_1_2 (- conf_2_1 conf_4_0)) (= c_4 c_3) (= conf_1_3 conf_1_2) (= conf_2_2 conf_2_1) (= c_4 c!) (= conf_1_3 conf_1!) (= conf_2_2 conf_2!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_1_1 conf_1) (= conf_2_1 conf_2) (not (not (= c_2 n_0))) (= c_4 c_2) (= conf_1_3 conf_1_1) (= conf_2_2 conf_2_1) (= c_4 c!) (= conf_1_3 conf_1!) (= conf_2_2 conf_2!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_1_1 conf_1) (= conf_2_1 conf_2) (= c_2 n_0) (= c_5 1) (= conf_2_3 conf_4_0) (= c_4 c_5) (= conf_1_3 conf_1_1) (= conf_2_2 conf_2_3) (= c_4 c!) (= conf_1_3 conf_1!) (= conf_2_2 conf_2!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_1_1 conf_1) (= conf_2_1 conf_2) (not (= c_2 n_0)) (= c_4 c_2) (= conf_1_3 conf_1_1) (= conf_2_2 conf_2_1) (= c_4 c!) (= conf_1_3 conf_1!) (= conf_2_2 conf_2!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_2_3 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_0) - (= conf_1 conf_1_1) - (= conf_2 conf_2_1) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= n n_0) - ) - ) - (not - (and - (not (= c_2 n_0)) - (not (>= c_2 0)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_0) (= conf_1 conf_1_1) (= conf_2 conf_2_1) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= n n_0))) (not (and (not (= c_2 n_0)) (not (>= c_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/46.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/46.c.sl index 608b659..2d61ac6 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/46.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/46.c.sl @@ -1,94 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int))) (define-fun pre-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= n n_0) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= n n_0) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int) (c! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= c_2 c!) - (= c c!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (= c_2 n_0)) - (= c_3 (+ c_2 1)) - (= c_4 c_3) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (not (= c_2 n_0))) - (= c_4 c_2) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= c_2 n_0) - (= c_5 1) - (= c_4 c_5) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (= c_2 n_0)) - (= c_4 c_2) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= c_2 c!) (= c c!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (not (= c_2 n_0)) (= c_3 (+ c_2 1)) (= c_4 c_3) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (not (not (= c_2 n_0))) (= c_4 c_2) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= c_2 n_0) (= c_5 1) (= c_4 c_5) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (not (= c_2 n_0)) (= c_4 c_2) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= n n_0) - ) - ) - (not - (and - (not (= c_2 n_0)) - (not (<= c_2 n_0)) - ) - ) - ) -) + (or (not (and (= c c_2) (= n n_0))) (not (and (not (= c_2 n_0)) (not (<= c_2 n_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/46_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/46_conf1.sl index f48426c..ab83750 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/46_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/46_conf1.sl @@ -1,120 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= n n_0) - (= conf_0_0 2) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= n n_0) (= conf_0_0 2) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int) (c! Int) (conf_0! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 c!) - (= conf_0_1 conf_0!) - (= c c!) - (= conf_0 conf_0!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (= c_2 n_0)) - (= c_3 (+ c_2 1)) - (= conf_0_2 (- 161 conf_0_1)) - (= c_4 c_3) - (= conf_0_3 conf_0_2) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (not (= c_2 n_0))) - (= c_4 c_2) - (= conf_0_3 conf_0_1) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 n_0) - (= c_5 1) - (= conf_0_4 (+ conf_0_1 483)) - (= c_4 c_5) - (= conf_0_3 conf_0_4) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (= c_2 n_0)) - (= c_4 c_2) - (= conf_0_3 conf_0_1) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 c!) (= conf_0_1 conf_0!) (= c c!) (= conf_0 conf_0!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (= c_2 n_0)) (= c_3 (+ c_2 1)) (= conf_0_2 (- 161 conf_0_1)) (= c_4 c_3) (= conf_0_3 conf_0_2) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (not (= c_2 n_0))) (= c_4 c_2) (= conf_0_3 conf_0_1) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 n_0) (= c_5 1) (= conf_0_4 (+ conf_0_1 483)) (= c_4 c_5) (= conf_0_3 conf_0_4) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (= c_2 n_0)) (= c_4 c_2) (= conf_0_3 conf_0_1) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_1) - (= n n_0) - ) - ) - (not - (and - (not (= c_2 n_0)) - (not (<= c_2 n_0)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_1) (= n n_0))) (not (and (not (= c_2 n_0)) (not (<= c_2 n_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/46_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/46_conf5.sl index e2cbc51..c910d71 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/46_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/46_conf5.sl @@ -1,184 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_1_1 Int) -(declare-primed-var conf_1_2 Int) -(declare-primed-var conf_1_3 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_2_1 Int) -(declare-primed-var conf_2_2 Int) -(declare-primed-var conf_2_3 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_2_3 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_2_3 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= n n_0) - (= conf_0_0 1) - (= conf_1_0 6) - (= conf_2_0 5) - (= conf_3_0 1) - (= conf_4_0 2) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= n n_0) (= conf_0_0 1) (= conf_1_0 6) (= conf_2_0 5) (= conf_3_0 1) (= conf_4_0 2) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_2_3 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (c! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_1_1! Int) (conf_1_2! Int) (conf_1_3! Int) (conf_2_0! Int) (conf_2_1! Int) (conf_2_2! Int) (conf_2_3! Int) (conf_3_0! Int) (conf_4_0! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (= c_2 c!) - (= conf_1_1 conf_1!) - (= conf_2_1 conf_2!) - (= c c!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (not (= c_2 n_0)) - (= c_3 (+ c_2 1)) - (= conf_1_2 (- conf_2_1 conf_4_0)) - (= c_4 c_3) - (= conf_1_3 conf_1_2) - (= conf_2_2 conf_2_1) - (= c_4 c!) - (= conf_1_3 conf_1!) - (= conf_2_2 conf_2!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (not (not (= c_2 n_0))) - (= c_4 c_2) - (= conf_1_3 conf_1_1) - (= conf_2_2 conf_2_1) - (= c_4 c!) - (= conf_1_3 conf_1!) - (= conf_2_2 conf_2!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (= c_2 n_0) - (= c_5 1) - (= conf_2_3 conf_4_0) - (= c_4 c_5) - (= conf_1_3 conf_1_1) - (= conf_2_2 conf_2_3) - (= c_4 c!) - (= conf_1_3 conf_1!) - (= conf_2_2 conf_2!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (not (= c_2 n_0)) - (= c_4 c_2) - (= conf_1_3 conf_1_1) - (= conf_2_2 conf_2_1) - (= c_4 c!) - (= conf_1_3 conf_1!) - (= conf_2_2 conf_2!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_1_1 conf_1) (= conf_2_1 conf_2) (= c_2 c!) (= conf_1_1 conf_1!) (= conf_2_1 conf_2!) (= c c!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (= conf_1_1 conf_1) (= conf_2_1 conf_2) (not (= c_2 n_0)) (= c_3 (+ c_2 1)) (= conf_1_2 (- conf_2_1 conf_4_0)) (= c_4 c_3) (= conf_1_3 conf_1_2) (= conf_2_2 conf_2_1) (= c_4 c!) (= conf_1_3 conf_1!) (= conf_2_2 conf_2!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_1_1 conf_1) (= conf_2_1 conf_2) (not (not (= c_2 n_0))) (= c_4 c_2) (= conf_1_3 conf_1_1) (= conf_2_2 conf_2_1) (= c_4 c!) (= conf_1_3 conf_1!) (= conf_2_2 conf_2!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_1_1 conf_1) (= conf_2_1 conf_2) (= c_2 n_0) (= c_5 1) (= conf_2_3 conf_4_0) (= c_4 c_5) (= conf_1_3 conf_1_1) (= conf_2_2 conf_2_3) (= c_4 c!) (= conf_1_3 conf_1!) (= conf_2_2 conf_2!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_1_1 conf_1) (= conf_2_1 conf_2) (not (= c_2 n_0)) (= c_4 c_2) (= conf_1_3 conf_1_1) (= conf_2_2 conf_2_1) (= c_4 c!) (= conf_1_3 conf_1!) (= conf_2_2 conf_2!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_2_3 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_0) - (= conf_1 conf_1_1) - (= conf_2 conf_2_1) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= n n_0) - ) - ) - (not - (and - (not (= c_2 n_0)) - (not (<= c_2 n_0)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_0) (= conf_1 conf_1_1) (= conf_2 conf_2_1) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= n n_0))) (not (and (not (= c_2 n_0)) (not (<= c_2 n_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/47.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/47.c.sl index d8475db..0491be5 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/47.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/47.c.sl @@ -1,95 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int))) (define-fun pre-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= n n_0) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= n n_0) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int) (c! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= c_2 c!) - (= c c!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (= c_2 n_0)) - (= c_3 (+ c_2 1)) - (= c_4 c_3) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (not (= c_2 n_0))) - (= c_4 c_2) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= c_2 n_0) - (= c_5 1) - (= c_4 c_5) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (= c_2 n_0)) - (= c_4 c_2) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= c_2 c!) (= c c!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (not (= c_2 n_0)) (= c_3 (+ c_2 1)) (= c_4 c_3) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (not (not (= c_2 n_0))) (= c_4 c_2) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= c_2 n_0) (= c_5 1) (= c_4 c_5) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (not (= c_2 n_0)) (= c_4 c_2) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= n n_0) - ) - ) - (not - (and - (< c_2 0) - (> c_2 n_0) - (not (= c_2 n_0)) - ) - ) - ) -) + (or (not (and (= c c_2) (= n n_0))) (not (and (< c_2 0) (> c_2 n_0) (not (= c_2 n_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/47_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/47_conf1.sl index 410a8b0..47cd178 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/47_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/47_conf1.sl @@ -1,121 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= n n_0) - (= conf_0_0 0) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= n n_0) (= conf_0_0 0) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int) (c! Int) (conf_0! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 c!) - (= conf_0_1 conf_0!) - (= c c!) - (= conf_0 conf_0!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (= c_2 n_0)) - (= c_3 (+ c_2 1)) - (= conf_0_2 979) - (= c_4 c_3) - (= conf_0_3 conf_0_2) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (not (= c_2 n_0))) - (= c_4 c_2) - (= conf_0_3 conf_0_1) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 n_0) - (= c_5 1) - (= conf_0_4 180) - (= c_4 c_5) - (= conf_0_3 conf_0_4) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (= c_2 n_0)) - (= c_4 c_2) - (= conf_0_3 conf_0_1) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 c!) (= conf_0_1 conf_0!) (= c c!) (= conf_0 conf_0!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (= c_2 n_0)) (= c_3 (+ c_2 1)) (= conf_0_2 979) (= c_4 c_3) (= conf_0_3 conf_0_2) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (not (= c_2 n_0))) (= c_4 c_2) (= conf_0_3 conf_0_1) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 n_0) (= c_5 1) (= conf_0_4 180) (= c_4 c_5) (= conf_0_3 conf_0_4) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (= c_2 n_0)) (= c_4 c_2) (= conf_0_3 conf_0_1) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_1) - (= n n_0) - ) - ) - (not - (and - (< c_2 0) - (> c_2 n_0) - (not (= c_2 n_0)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_1) (= n n_0))) (not (and (< c_2 0) (> c_2 n_0) (not (= c_2 n_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/47_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/47_conf5.sl index 42d79ab..b407485 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/47_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/47_conf5.sl @@ -1,185 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_2_1 Int) -(declare-primed-var conf_2_2 Int) -(declare-primed-var conf_2_3 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_2_3 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_2_3 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= n n_0) - (= conf_0_0 9) - (= conf_1_0 8) - (= conf_2_0 6) - (= conf_3_0 0) - (= conf_4_0 0) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= n n_0) (= conf_0_0 9) (= conf_1_0 8) (= conf_2_0 6) (= conf_3_0 0) (= conf_4_0 0) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_2_3 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (c! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_2_1! Int) (conf_2_2! Int) (conf_2_3! Int) (conf_3_0! Int) (conf_4_0! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= conf_2_1 conf_2) - (= c_2 c!) - (= conf_0_1 conf_0!) - (= conf_2_1 conf_2!) - (= c c!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= conf_2_1 conf_2) - (not (= c_2 n_0)) - (= c_3 (+ c_2 1)) - (= conf_2_2 180) - (= c_4 c_3) - (= conf_0_2 conf_0_1) - (= conf_2_3 conf_2_2) - (= c_4 c!) - (= conf_0_2 conf_0!) - (= conf_2_3 conf_2!) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= conf_2_1 conf_2) - (not (not (= c_2 n_0))) - (= c_4 c_2) - (= conf_0_2 conf_0_1) - (= conf_2_3 conf_2_1) - (= c_4 c!) - (= conf_0_2 conf_0!) - (= conf_2_3 conf_2!) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= conf_2_1 conf_2) - (= c_2 n_0) - (= c_5 1) - (= conf_0_3 (+ 150 conf_0_1)) - (= c_4 c_5) - (= conf_0_2 conf_0_3) - (= conf_2_3 conf_2_1) - (= c_4 c!) - (= conf_0_2 conf_0!) - (= conf_2_3 conf_2!) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= conf_2_1 conf_2) - (not (= c_2 n_0)) - (= c_4 c_2) - (= conf_0_2 conf_0_1) - (= conf_2_3 conf_2_1) - (= c_4 c!) - (= conf_0_2 conf_0!) - (= conf_2_3 conf_2!) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_0_1 conf_0) (= conf_2_1 conf_2) (= c_2 c!) (= conf_0_1 conf_0!) (= conf_2_1 conf_2!) (= c c!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= conf_2_1 conf_2) (not (= c_2 n_0)) (= c_3 (+ c_2 1)) (= conf_2_2 180) (= c_4 c_3) (= conf_0_2 conf_0_1) (= conf_2_3 conf_2_2) (= c_4 c!) (= conf_0_2 conf_0!) (= conf_2_3 conf_2!) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= conf_2_1 conf_2) (not (not (= c_2 n_0))) (= c_4 c_2) (= conf_0_2 conf_0_1) (= conf_2_3 conf_2_1) (= c_4 c!) (= conf_0_2 conf_0!) (= conf_2_3 conf_2!) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= conf_2_1 conf_2) (= c_2 n_0) (= c_5 1) (= conf_0_3 (+ 150 conf_0_1)) (= c_4 c_5) (= conf_0_2 conf_0_3) (= conf_2_3 conf_2_1) (= c_4 c!) (= conf_0_2 conf_0!) (= conf_2_3 conf_2!) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= conf_2_1 conf_2) (not (= c_2 n_0)) (= c_4 c_2) (= conf_0_2 conf_0_1) (= conf_2_3 conf_2_1) (= c_4 c!) (= conf_0_2 conf_0!) (= conf_2_3 conf_2!) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_2_3 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_1) - (= conf_1 conf_1_0) - (= conf_2 conf_2_1) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= n n_0) - ) - ) - (not - (and - (< c_2 0) - (> c_2 n_0) - (not (= c_2 n_0)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_1) (= conf_1 conf_1_0) (= conf_2 conf_2_1) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= n n_0))) (not (and (< c_2 0) (> c_2 n_0) (not (= c_2 n_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/48.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/48.c.sl index 1d161ff..450376b 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/48.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/48.c.sl @@ -1,94 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int))) (define-fun pre-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= n n_0) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= n n_0) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int) (c! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= c_2 c!) - (= c c!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (= c_2 n_0)) - (= c_3 (+ c_2 1)) - (= c_4 c_3) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (not (= c_2 n_0))) - (= c_4 c_2) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= c_2 n_0) - (= c_5 1) - (= c_4 c_5) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (= c_2 n_0)) - (= c_4 c_2) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= c_2 c!) (= c c!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (not (= c_2 n_0)) (= c_3 (+ c_2 1)) (= c_4 c_3) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (not (not (= c_2 n_0))) (= c_4 c_2) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= c_2 n_0) (= c_5 1) (= c_4 c_5) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (not (= c_2 n_0)) (= c_4 c_2) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= n n_0) - ) - ) - (not - (and - (= c_2 n_0) - (not (> n_0 -1)) - ) - ) - ) -) + (or (not (and (= c c_2) (= n n_0))) (not (and (= c_2 n_0) (not (> n_0 (- 1))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/48_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/48_conf1.sl index a652d24..c6cecbf 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/48_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/48_conf1.sl @@ -1,120 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= n n_0) - (= conf_0_0 3) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= n n_0) (= conf_0_0 3) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int) (c! Int) (conf_0! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 c!) - (= conf_0_1 conf_0!) - (= c c!) - (= conf_0 conf_0!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (= c_2 n_0)) - (= c_3 (+ c_2 1)) - (= conf_0_2 (+ conf_0_1 585)) - (= c_4 c_3) - (= conf_0_3 conf_0_2) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (not (= c_2 n_0))) - (= c_4 c_2) - (= conf_0_3 conf_0_1) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 n_0) - (= c_5 1) - (= conf_0_4 (- conf_0_1 conf_0_1)) - (= c_4 c_5) - (= conf_0_3 conf_0_4) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (= c_2 n_0)) - (= c_4 c_2) - (= conf_0_3 conf_0_1) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 c!) (= conf_0_1 conf_0!) (= c c!) (= conf_0 conf_0!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (= c_2 n_0)) (= c_3 (+ c_2 1)) (= conf_0_2 (+ conf_0_1 585)) (= c_4 c_3) (= conf_0_3 conf_0_2) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (not (= c_2 n_0))) (= c_4 c_2) (= conf_0_3 conf_0_1) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 n_0) (= c_5 1) (= conf_0_4 (- conf_0_1 conf_0_1)) (= c_4 c_5) (= conf_0_3 conf_0_4) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (= c_2 n_0)) (= c_4 c_2) (= conf_0_3 conf_0_1) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_1) - (= n n_0) - ) - ) - (not - (and - (= c_2 n_0) - (not (> n_0 -1)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_1) (= n n_0))) (not (and (= c_2 n_0) (not (> n_0 (- 1))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/48_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/48_conf5.sl index ed90bbd..92f1b84 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/48_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/48_conf5.sl @@ -1,184 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_3_1 Int) -(declare-primed-var conf_3_2 Int) -(declare-primed-var conf_3_3 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (n_0 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= n n_0) - (= conf_0_0 6) - (= conf_1_0 9) - (= conf_2_0 1) - (= conf_3_0 6) - (= conf_4_0 3) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= n n_0) (= conf_0_0 6) (= conf_1_0 9) (= conf_2_0 1) (= conf_3_0 6) (= conf_4_0 3) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (n_0 Int) (c! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_3_1! Int) (conf_3_2! Int) (conf_3_3! Int) (conf_4_0! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= conf_3_1 conf_3) - (= c_2 c!) - (= conf_0_1 conf_0!) - (= conf_3_1 conf_3!) - (= c c!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= conf_3_1 conf_3) - (not (= c_2 n_0)) - (= c_3 (+ c_2 1)) - (= conf_3_2 conf_2_0) - (= c_4 c_3) - (= conf_0_2 conf_0_1) - (= conf_3_3 conf_3_2) - (= c_4 c!) - (= conf_0_2 conf_0!) - (= conf_3_3 conf_3!) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= conf_3_1 conf_3) - (not (not (= c_2 n_0))) - (= c_4 c_2) - (= conf_0_2 conf_0_1) - (= conf_3_3 conf_3_1) - (= c_4 c!) - (= conf_0_2 conf_0!) - (= conf_3_3 conf_3!) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= conf_3_1 conf_3) - (= c_2 n_0) - (= c_5 1) - (= conf_0_3 (- 565 conf_4_0)) - (= c_4 c_5) - (= conf_0_2 conf_0_3) - (= conf_3_3 conf_3_1) - (= c_4 c!) - (= conf_0_2 conf_0!) - (= conf_3_3 conf_3!) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= conf_3_1 conf_3) - (not (= c_2 n_0)) - (= c_4 c_2) - (= conf_0_2 conf_0_1) - (= conf_3_3 conf_3_1) - (= c_4 c!) - (= conf_0_2 conf_0!) - (= conf_3_3 conf_3!) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_0_1 conf_0) (= conf_3_1 conf_3) (= c_2 c!) (= conf_0_1 conf_0!) (= conf_3_1 conf_3!) (= c c!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= conf_3_1 conf_3) (not (= c_2 n_0)) (= c_3 (+ c_2 1)) (= conf_3_2 conf_2_0) (= c_4 c_3) (= conf_0_2 conf_0_1) (= conf_3_3 conf_3_2) (= c_4 c!) (= conf_0_2 conf_0!) (= conf_3_3 conf_3!) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= conf_3_1 conf_3) (not (not (= c_2 n_0))) (= c_4 c_2) (= conf_0_2 conf_0_1) (= conf_3_3 conf_3_1) (= c_4 c!) (= conf_0_2 conf_0!) (= conf_3_3 conf_3!) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= conf_3_1 conf_3) (= c_2 n_0) (= c_5 1) (= conf_0_3 (- 565 conf_4_0)) (= c_4 c_5) (= conf_0_2 conf_0_3) (= conf_3_3 conf_3_1) (= c_4 c!) (= conf_0_2 conf_0!) (= conf_3_3 conf_3!) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= conf_3_1 conf_3) (not (= c_2 n_0)) (= c_4 c_2) (= conf_0_2 conf_0_1) (= conf_3_3 conf_3_1) (= c_4 c!) (= conf_0_2 conf_0!) (= conf_3_3 conf_3!) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_1) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_1) - (= conf_4 conf_4_0) - (= n n_0) - ) - ) - (not - (and - (= c_2 n_0) - (not (> n_0 -1)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_1) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_1) (= conf_4 conf_4_0) (= n n_0))) (not (and (= c_2 n_0) (not (> n_0 (- 1))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/49.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/49.c.sl index 28dfaa2..763b544 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/49.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/49.c.sl @@ -1,94 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int))) (define-fun pre-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= n n_0) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= n n_0) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int) (c! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= c_2 c!) - (= c c!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (= c_2 n_0)) - (= c_3 (+ c_2 1)) - (= c_4 c_3) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (not (= c_2 n_0))) - (= c_4 c_2) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= c_2 n_0) - (= c_5 1) - (= c_4 c_5) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (= c_2 n_0)) - (= c_4 c_2) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= c_2 c!) (= c c!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (not (= c_2 n_0)) (= c_3 (+ c_2 1)) (= c_4 c_3) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (not (not (= c_2 n_0))) (= c_4 c_2) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= c_2 n_0) (= c_5 1) (= c_4 c_5) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (not (= c_2 n_0)) (= c_4 c_2) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= n n_0) - ) - ) - (not - (and - (<= n_0 -1) - (not (not (= c_2 n_0))) - ) - ) - ) -) + (or (not (and (= c c_2) (= n n_0))) (not (and (<= n_0 (- 1)) (not (not (= c_2 n_0))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/49_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/49_conf1.sl index 62bc8cf..0516f31 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/49_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/49_conf1.sl @@ -1,120 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= n n_0) - (= conf_0_0 5) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= n n_0) (= conf_0_0 5) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int) (c! Int) (conf_0! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 c!) - (= conf_0_1 conf_0!) - (= c c!) - (= conf_0 conf_0!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (= c_2 n_0)) - (= c_3 (+ c_2 1)) - (= conf_0_2 (- conf_0_1 770)) - (= c_4 c_3) - (= conf_0_3 conf_0_2) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (not (= c_2 n_0))) - (= c_4 c_2) - (= conf_0_3 conf_0_1) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 n_0) - (= c_5 1) - (= conf_0_4 conf_0_1) - (= c_4 c_5) - (= conf_0_3 conf_0_4) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (= c_2 n_0)) - (= c_4 c_2) - (= conf_0_3 conf_0_1) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 c!) (= conf_0_1 conf_0!) (= c c!) (= conf_0 conf_0!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (= c_2 n_0)) (= c_3 (+ c_2 1)) (= conf_0_2 (- conf_0_1 770)) (= c_4 c_3) (= conf_0_3 conf_0_2) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (not (= c_2 n_0))) (= c_4 c_2) (= conf_0_3 conf_0_1) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 n_0) (= c_5 1) (= conf_0_4 conf_0_1) (= c_4 c_5) (= conf_0_3 conf_0_4) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (= c_2 n_0)) (= c_4 c_2) (= conf_0_3 conf_0_1) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_1) - (= n n_0) - ) - ) - (not - (and - (<= n_0 -1) - (not (not (= c_2 n_0))) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_1) (= n n_0))) (not (and (<= n_0 (- 1)) (not (not (= c_2 n_0))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/49_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/49_conf5.sl index 2d1cb27..f62fc1e 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/49_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/49_conf5.sl @@ -1,176 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var conf_4_1 Int) -(declare-primed-var conf_4_2 Int) -(declare-primed-var conf_4_3 Int) -(declare-primed-var conf_4_4 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (conf_4_4 Int) (n_0 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (conf_4_4 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= n n_0) - (= conf_0_0 1) - (= conf_1_0 5) - (= conf_2_0 9) - (= conf_3_0 4) - (= conf_4_0 5) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= n n_0) (= conf_0_0 1) (= conf_1_0 5) (= conf_2_0 9) (= conf_3_0 4) (= conf_4_0 5) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (conf_4_4 Int) (n_0 Int) (c! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_4_0! Int) (conf_4_1! Int) (conf_4_2! Int) (conf_4_3! Int) (conf_4_4! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= conf_4_1 conf_4) - (= c_2 c!) - (= conf_4_1 conf_4!) - (= c c!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_4_1 conf_4) - (not (= c_2 n_0)) - (= c_3 (+ c_2 1)) - (= conf_4_2 631) - (= c_4 c_3) - (= conf_4_3 conf_4_2) - (= c_4 c!) - (= conf_4_3 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_4_1 conf_4) - (not (not (= c_2 n_0))) - (= c_4 c_2) - (= conf_4_3 conf_4_1) - (= c_4 c!) - (= conf_4_3 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_4_1 conf_4) - (= c_2 n_0) - (= c_5 1) - (= conf_4_4 (+ 272 conf_1_0)) - (= c_4 c_5) - (= conf_4_3 conf_4_4) - (= c_4 c!) - (= conf_4_3 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_4_1 conf_4) - (not (= c_2 n_0)) - (= c_4 c_2) - (= conf_4_3 conf_4_1) - (= c_4 c!) - (= conf_4_3 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_4_1 conf_4) (= c_2 c!) (= conf_4_1 conf_4!) (= c c!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (= conf_4_1 conf_4) (not (= c_2 n_0)) (= c_3 (+ c_2 1)) (= conf_4_2 631) (= c_4 c_3) (= conf_4_3 conf_4_2) (= c_4 c!) (= conf_4_3 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_4_1 conf_4) (not (not (= c_2 n_0))) (= c_4 c_2) (= conf_4_3 conf_4_1) (= c_4 c!) (= conf_4_3 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_4_1 conf_4) (= c_2 n_0) (= c_5 1) (= conf_4_4 (+ 272 conf_1_0)) (= c_4 c_5) (= conf_4_3 conf_4_4) (= c_4 c!) (= conf_4_3 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_4_1 conf_4) (not (= c_2 n_0)) (= c_4 c_2) (= conf_4_3 conf_4_1) (= c_4 c!) (= conf_4_3 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (conf_4_4 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_1) - (= n n_0) - ) - ) - (not - (and - (<= n_0 -1) - (not (not (= c_2 n_0))) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_1) (= n n_0))) (not (and (<= n_0 (- 1)) (not (not (= c_2 n_0))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/4_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/4_conf1.sl index 3f217b3..e7dde0f 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/4_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/4_conf1.sl @@ -1,104 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var z Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) -(declare-primed-var y_3 Int) -(declare-primed-var z_0 Int) - (synth-inv inv-f ((conf_0 Int) (x Int) (y Int) (z Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (z_0 Int))) (define-fun pre-f ((conf_0 Int) (x Int) (y Int) (z Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (z_0 Int)) Bool - (and - (= conf_0 conf_0_0) - (= x x_1) - (= conf_0_0 8) - (= x_1 0) - ) -) - + (and (= conf_0 conf_0_0) (= x x_1) (= conf_0_0 8) (= x_1 0))) (define-fun trans-f ((conf_0 Int) (x Int) (y Int) (z Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (z_0 Int) (conf_0! Int) (x! Int) (y! Int) (z! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int) (y_3! Int) (z_0! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= y_1 y) - (= conf_0_1 conf_0!) - (= x_2 x!) - (= y_1 y!) - (= conf_0 conf_0!) - (= y y!) - (= z z!) - ) - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= y_1 y) - (< x_2 500) - (= x_3 (+ x_2 1)) - (= conf_0_2 conf_0_1) - (<= z_0 y_1) - (= y_2 z_0) - (= conf_0_3 159) - (= conf_0_4 conf_0_3) - (= y_3 y_2) - (= conf_0_4 conf_0!) - (= x_3 x!) - (= y_3 y!) - (= z z_0) - (= z! z_0) - ) - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= y_1 y) - (< x_2 500) - (= x_3 (+ x_2 1)) - (= conf_0_2 conf_0_1) - (not (<= z_0 y_1)) - (= conf_0_4 conf_0_2) - (= y_3 y_1) - (= conf_0_4 conf_0!) - (= x_3 x!) - (= y_3 y!) - (= z z_0) - (= z! z_0) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= x_2 x) (= y_1 y) (= conf_0_1 conf_0!) (= x_2 x!) (= y_1 y!) (= conf_0 conf_0!) (= y y!) (= z z!)) (and (= conf_0_1 conf_0) (= x_2 x) (= y_1 y) (< x_2 500) (= x_3 (+ x_2 1)) (= conf_0_2 conf_0_1) (<= z_0 y_1) (= y_2 z_0) (= conf_0_3 159) (= conf_0_4 conf_0_3) (= y_3 y_2) (= conf_0_4 conf_0!) (= x_3 x!) (= y_3 y!) (= z z_0) (= z! z_0)) (and (= conf_0_1 conf_0) (= x_2 x) (= y_1 y) (< x_2 500) (= x_3 (+ x_2 1)) (= conf_0_2 conf_0_1) (not (<= z_0 y_1)) (= conf_0_4 conf_0_2) (= y_3 y_1) (= conf_0_4 conf_0!) (= x_3 x!) (= y_3 y!) (= z z_0) (= z! z_0)))) (define-fun post-f ((conf_0 Int) (x Int) (y Int) (z Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (z_0 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= x x_2) - (= y y_1) - (= z z_0) - ) - ) - (not - (and - (not (< x_2 500)) - (not (>= z_0 y_1)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= x x_2) (= y y_1) (= z z_0))) (not (and (not (< x_2 500)) (not (>= z_0 y_1)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/4_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/4_conf5.sl index fab84d8..a114d7d 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/4_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/4_conf5.sl @@ -1,144 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var z Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_3_1 Int) -(declare-primed-var conf_3_2 Int) -(declare-primed-var conf_3_3 Int) -(declare-primed-var conf_3_4 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) -(declare-primed-var y_3 Int) -(declare-primed-var z_0 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (z Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_3_4 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (z_0 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (z Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_3_4 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (z_0 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_1) - (= conf_0_0 1) - (= conf_1_0 9) - (= conf_2_0 0) - (= conf_3_0 3) - (= conf_4_0 8) - (= x_1 0) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_1) (= conf_0_0 1) (= conf_1_0 9) (= conf_2_0 0) (= conf_3_0 3) (= conf_4_0 8) (= x_1 0))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (z Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_3_4 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (z_0 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (x! Int) (y! Int) (z! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_3_1! Int) (conf_3_2! Int) (conf_3_3! Int) (conf_3_4! Int) (conf_4_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int) (y_3! Int) (z_0! Int)) Bool - (or - (and - (= conf_3_1 conf_3) - (= x_2 x) - (= y_1 y) - (= conf_3_1 conf_3!) - (= x_2 x!) - (= y_1 y!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= y y!) - (= z z!) - ) - (and - (= conf_3_1 conf_3) - (= x_2 x) - (= y_1 y) - (< x_2 500) - (= x_3 (+ x_2 1)) - (= conf_3_2 159) - (<= z_0 y_1) - (= y_2 z_0) - (= conf_3_3 (+ conf_1_0 conf_3_2)) - (= conf_3_4 conf_3_3) - (= y_3 y_2) - (= conf_3_4 conf_3!) - (= x_3 x!) - (= y_3 y!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= z z_0) - (= z! z_0) - ) - (and - (= conf_3_1 conf_3) - (= x_2 x) - (= y_1 y) - (< x_2 500) - (= x_3 (+ x_2 1)) - (= conf_3_2 159) - (not (<= z_0 y_1)) - (= conf_3_4 conf_3_2) - (= y_3 y_1) - (= conf_3_4 conf_3!) - (= x_3 x!) - (= y_3 y!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= z z_0) - (= z! z_0) - ) - ) -) - + (or (and (= conf_3_1 conf_3) (= x_2 x) (= y_1 y) (= conf_3_1 conf_3!) (= x_2 x!) (= y_1 y!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= y y!) (= z z!)) (and (= conf_3_1 conf_3) (= x_2 x) (= y_1 y) (< x_2 500) (= x_3 (+ x_2 1)) (= conf_3_2 159) (<= z_0 y_1) (= y_2 z_0) (= conf_3_3 (+ conf_1_0 conf_3_2)) (= conf_3_4 conf_3_3) (= y_3 y_2) (= conf_3_4 conf_3!) (= x_3 x!) (= y_3 y!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= z z_0) (= z! z_0)) (and (= conf_3_1 conf_3) (= x_2 x) (= y_1 y) (< x_2 500) (= x_3 (+ x_2 1)) (= conf_3_2 159) (not (<= z_0 y_1)) (= conf_3_4 conf_3_2) (= y_3 y_1) (= conf_3_4 conf_3!) (= x_3 x!) (= y_3 y!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= z z_0) (= z! z_0)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (z Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_3_4 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (z_0 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_1) - (= conf_4 conf_4_0) - (= x x_2) - (= y y_1) - (= z z_0) - ) - ) - (not - (and - (not (< x_2 500)) - (not (>= z_0 y_1)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_1) (= conf_4 conf_4_0) (= x x_2) (= y y_1) (= z z_0))) (not (and (not (< x_2 500)) (not (>= z_0 y_1)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/5.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/5.c.sl index 8a67256..112979a 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/5.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/5.c.sl @@ -1,92 +1,15 @@ (set-logic LIA) -(declare-primed-var size Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var z Int) - -(declare-primed-var size_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) -(declare-primed-var y_3 Int) -(declare-primed-var z_0 Int) - (synth-inv inv-f ((size Int) (x Int) (y Int) (z Int) (size_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (z_0 Int))) (define-fun pre-f ((size Int) (x Int) (y Int) (z Int) (size_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (z_0 Int)) Bool - (and - (= x x_0) - (= x_0 0) - ) -) - + (and (= x x_0) (= x_0 0))) (define-fun trans-f ((size Int) (x Int) (y Int) (z Int) (size_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (z_0 Int) (size! Int) (x! Int) (y! Int) (z! Int) (size_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (y_0! Int) (y_1! Int) (y_2! Int) (y_3! Int) (z_0! Int)) Bool - (or - (and - (= x_1 x) - (= y_1 y) - (= x_1 x!) - (= y_1 y!) - (= size size_0) - (= size! size_0) - (= y y!) - (= z z!) - ) - (and - (= x_1 x) - (= y_1 y) - (< x_1 size_0) - (= x_2 (+ x_1 1)) - (<= z_0 y_1) - (= y_2 z_0) - (= y_3 y_2) - (= x_2 x!) - (= y_3 y!) - (= size size_0) - (= size! size_0) - (= z z_0) - (= z! z_0) - ) - (and - (= x_1 x) - (= y_1 y) - (< x_1 size_0) - (= x_2 (+ x_1 1)) - (not (<= z_0 y_1)) - (= y_3 y_1) - (= x_2 x!) - (= y_3 y!) - (= size size_0) - (= size! size_0) - (= z z_0) - (= z! z_0) - ) - ) -) - + (or (and (= x_1 x) (= y_1 y) (= x_1 x!) (= y_1 y!) (= size size_0) (= size! size_0) (= y y!) (= z z!)) (and (= x_1 x) (= y_1 y) (< x_1 size_0) (= x_2 (+ x_1 1)) (<= z_0 y_1) (= y_2 z_0) (= y_3 y_2) (= x_2 x!) (= y_3 y!) (= size size_0) (= size! size_0) (= z z_0) (= z! z_0)) (and (= x_1 x) (= y_1 y) (< x_1 size_0) (= x_2 (+ x_1 1)) (not (<= z_0 y_1)) (= y_3 y_1) (= x_2 x!) (= y_3 y!) (= size size_0) (= size! size_0) (= z z_0) (= z! z_0)))) (define-fun post-f ((size Int) (x Int) (y Int) (z Int) (size_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (z_0 Int)) Bool - (or - (not - (and - (= size size_0) - (= x x_1) - (= y y_1) - (= z z_0) - ) - ) - (not - (and - (not (< x_1 size_0)) - (> size_0 0) - (not (>= z_0 y_1)) - ) - ) - ) -) + (or (not (and (= size size_0) (= x x_1) (= y y_1) (= z z_0))) (not (and (not (< x_1 size_0)) (> size_0 0) (not (>= z_0 y_1)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/50.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/50.c.sl index aab3926..c8a3e4a 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/50.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/50.c.sl @@ -1,78 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) - (synth-inv inv-f ((c Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int))) (define-fun pre-f ((c Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int)) Bool - (and - (= c c_1) - (= c_1 0) - ) -) - + (and (= c c_1) (= c_1 0))) (define-fun trans-f ((c Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (c! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int)) Bool - (or - (and - (= c_2 c) - (= c_2 c!) - (= c c!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (= c_2 4)) - (= c_3 (+ c_2 1)) - (= c_4 c_3) - (= c_4 c!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (not (= c_2 4))) - (= c_4 c_2) - (= c_4 c!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= c_2 4) - (= c_5 1) - (= c_4 c_5) - (= c_4 c!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (= c_2 4)) - (= c_4 c_2) - (= c_4 c!) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= c_2 c!) (= c c!) (= tmp tmp!)) (and (= c_2 c) (not (= c_2 4)) (= c_3 (+ c_2 1)) (= c_4 c_3) (= c_4 c!) (= tmp tmp!)) (and (= c_2 c) (not (not (= c_2 4))) (= c_4 c_2) (= c_4 c!) (= tmp tmp!)) (and (= c_2 c) (= c_2 4) (= c_5 1) (= c_4 c_5) (= c_4 c!) (= tmp tmp!)) (and (= c_2 c) (not (= c_2 4)) (= c_4 c_2) (= c_4 c!) (= tmp tmp!)))) (define-fun post-f ((c Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int)) Bool - (or - (not - (= c c_2) - ) - (not - (and - (not (= c_2 4)) - (not (>= c_2 0)) - ) - ) - ) -) + (or (not (= c c_2)) (not (and (not (= c_2 4)) (not (>= c_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/50_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/50_conf1.sl index 0cdfd28..ea53720 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/50_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/50_conf1.sl @@ -1,106 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= conf_0_0 7) - (= c_1 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= conf_0_0 7) (= c_1 0))) (define-fun trans-f ((c Int) (conf_0 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (c! Int) (conf_0! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int)) Bool - (or - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 c!) - (= conf_0_1 conf_0!) - (= c c!) - (= conf_0 conf_0!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (= c_2 4)) - (= c_3 (+ c_2 1)) - (= conf_0_2 168) - (= c_4 c_3) - (= conf_0_3 conf_0_2) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (not (= c_2 4))) - (= c_4 c_2) - (= conf_0_3 conf_0_1) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 4) - (= c_5 1) - (= conf_0_4 (+ conf_0_1 conf_0_1)) - (= c_4 c_5) - (= conf_0_3 conf_0_4) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (= c_2 4)) - (= c_4 c_2) - (= conf_0_3 conf_0_1) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 c!) (= conf_0_1 conf_0!) (= c c!) (= conf_0 conf_0!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (= c_2 4)) (= c_3 (+ c_2 1)) (= conf_0_2 168) (= c_4 c_3) (= conf_0_3 conf_0_2) (= c_4 c!) (= conf_0_3 conf_0!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (not (= c_2 4))) (= c_4 c_2) (= conf_0_3 conf_0_1) (= c_4 c!) (= conf_0_3 conf_0!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 4) (= c_5 1) (= conf_0_4 (+ conf_0_1 conf_0_1)) (= c_4 c_5) (= conf_0_3 conf_0_4) (= c_4 c!) (= conf_0_3 conf_0!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (= c_2 4)) (= c_4 c_2) (= conf_0_3 conf_0_1) (= c_4 c!) (= conf_0_3 conf_0!) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_1) - ) - ) - (not - (and - (not (= c_2 4)) - (not (>= c_2 0)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_1))) (not (and (not (= c_2 4)) (not (>= c_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/50_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/50_conf5.sl index 033a3af..b299d5e 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/50_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/50_conf5.sl @@ -1,170 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_3_1 Int) -(declare-primed-var conf_3_2 Int) -(declare-primed-var conf_3_3 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var conf_4_1 Int) -(declare-primed-var conf_4_2 Int) -(declare-primed-var conf_4_3 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= conf_0_0 8) - (= conf_1_0 4) - (= conf_2_0 8) - (= conf_3_0 1) - (= conf_4_0 7) - (= c_1 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= conf_0_0 8) (= conf_1_0 4) (= conf_2_0 8) (= conf_3_0 1) (= conf_4_0 7) (= c_1 0))) (define-fun trans-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (c! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_3_1! Int) (conf_3_2! Int) (conf_3_3! Int) (conf_4_0! Int) (conf_4_1! Int) (conf_4_2! Int) (conf_4_3! Int)) Bool - (or - (and - (= c_2 c) - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (= c_2 c!) - (= conf_3_1 conf_3!) - (= conf_4_1 conf_4!) - (= c c!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (not (= c_2 4)) - (= c_3 (+ c_2 1)) - (= conf_3_2 (+ conf_3_1 conf_3_1)) - (= c_4 c_3) - (= conf_3_3 conf_3_2) - (= conf_4_2 conf_4_1) - (= c_4 c!) - (= conf_3_3 conf_3!) - (= conf_4_2 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (not (not (= c_2 4))) - (= c_4 c_2) - (= conf_3_3 conf_3_1) - (= conf_4_2 conf_4_1) - (= c_4 c!) - (= conf_3_3 conf_3!) - (= conf_4_2 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (= c_2 4) - (= c_5 1) - (= conf_4_3 (- conf_3_1 conf_4_1)) - (= c_4 c_5) - (= conf_3_3 conf_3_1) - (= conf_4_2 conf_4_3) - (= c_4 c!) - (= conf_3_3 conf_3!) - (= conf_4_2 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (not (= c_2 4)) - (= c_4 c_2) - (= conf_3_3 conf_3_1) - (= conf_4_2 conf_4_1) - (= c_4 c!) - (= conf_3_3 conf_3!) - (= conf_4_2 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_3_1 conf_3) (= conf_4_1 conf_4) (= c_2 c!) (= conf_3_1 conf_3!) (= conf_4_1 conf_4!) (= c c!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= tmp tmp!)) (and (= c_2 c) (= conf_3_1 conf_3) (= conf_4_1 conf_4) (not (= c_2 4)) (= c_3 (+ c_2 1)) (= conf_3_2 (+ conf_3_1 conf_3_1)) (= c_4 c_3) (= conf_3_3 conf_3_2) (= conf_4_2 conf_4_1) (= c_4 c!) (= conf_3_3 conf_3!) (= conf_4_2 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= tmp tmp!)) (and (= c_2 c) (= conf_3_1 conf_3) (= conf_4_1 conf_4) (not (not (= c_2 4))) (= c_4 c_2) (= conf_3_3 conf_3_1) (= conf_4_2 conf_4_1) (= c_4 c!) (= conf_3_3 conf_3!) (= conf_4_2 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= tmp tmp!)) (and (= c_2 c) (= conf_3_1 conf_3) (= conf_4_1 conf_4) (= c_2 4) (= c_5 1) (= conf_4_3 (- conf_3_1 conf_4_1)) (= c_4 c_5) (= conf_3_3 conf_3_1) (= conf_4_2 conf_4_3) (= c_4 c!) (= conf_3_3 conf_3!) (= conf_4_2 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= tmp tmp!)) (and (= c_2 c) (= conf_3_1 conf_3) (= conf_4_1 conf_4) (not (= c_2 4)) (= c_4 c_2) (= conf_3_3 conf_3_1) (= conf_4_2 conf_4_1) (= c_4 c!) (= conf_3_3 conf_3!) (= conf_4_2 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_1) - (= conf_4 conf_4_1) - ) - ) - (not - (and - (not (= c_2 4)) - (not (>= c_2 0)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_1) (= conf_4 conf_4_1))) (not (and (not (= c_2 4)) (not (>= c_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/51.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/51.c.sl index 4c8e18b..afb3817 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/51.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/51.c.sl @@ -1,78 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) - (synth-inv inv-f ((c Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int))) (define-fun pre-f ((c Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int)) Bool - (and - (= c c_1) - (= c_1 0) - ) -) - + (and (= c c_1) (= c_1 0))) (define-fun trans-f ((c Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (c! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int)) Bool - (or - (and - (= c_2 c) - (= c_2 c!) - (= c c!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (= c_2 4)) - (= c_3 (+ c_2 1)) - (= c_4 c_3) - (= c_4 c!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (not (= c_2 4))) - (= c_4 c_2) - (= c_4 c!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= c_2 4) - (= c_5 1) - (= c_4 c_5) - (= c_4 c!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (= c_2 4)) - (= c_4 c_2) - (= c_4 c!) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= c_2 c!) (= c c!) (= tmp tmp!)) (and (= c_2 c) (not (= c_2 4)) (= c_3 (+ c_2 1)) (= c_4 c_3) (= c_4 c!) (= tmp tmp!)) (and (= c_2 c) (not (not (= c_2 4))) (= c_4 c_2) (= c_4 c!) (= tmp tmp!)) (and (= c_2 c) (= c_2 4) (= c_5 1) (= c_4 c_5) (= c_4 c!) (= tmp tmp!)) (and (= c_2 c) (not (= c_2 4)) (= c_4 c_2) (= c_4 c!) (= tmp tmp!)))) (define-fun post-f ((c Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int)) Bool - (or - (not - (= c c_2) - ) - (not - (and - (not (= c_2 4)) - (not (<= c_2 4)) - ) - ) - ) -) + (or (not (= c c_2)) (not (and (not (= c_2 4)) (not (<= c_2 4)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/51_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/51_conf1.sl index 8cbebab..4f77d21 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/51_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/51_conf1.sl @@ -1,106 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= conf_0_0 7) - (= c_1 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= conf_0_0 7) (= c_1 0))) (define-fun trans-f ((c Int) (conf_0 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (c! Int) (conf_0! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int)) Bool - (or - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 c!) - (= conf_0_1 conf_0!) - (= c c!) - (= conf_0 conf_0!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (= c_2 4)) - (= c_3 (+ c_2 1)) - (= conf_0_2 168) - (= c_4 c_3) - (= conf_0_3 conf_0_2) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (not (= c_2 4))) - (= c_4 c_2) - (= conf_0_3 conf_0_1) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 4) - (= c_5 1) - (= conf_0_4 (+ conf_0_1 conf_0_1)) - (= c_4 c_5) - (= conf_0_3 conf_0_4) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (= c_2 4)) - (= c_4 c_2) - (= conf_0_3 conf_0_1) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 c!) (= conf_0_1 conf_0!) (= c c!) (= conf_0 conf_0!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (= c_2 4)) (= c_3 (+ c_2 1)) (= conf_0_2 168) (= c_4 c_3) (= conf_0_3 conf_0_2) (= c_4 c!) (= conf_0_3 conf_0!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (not (= c_2 4))) (= c_4 c_2) (= conf_0_3 conf_0_1) (= c_4 c!) (= conf_0_3 conf_0!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 4) (= c_5 1) (= conf_0_4 (+ conf_0_1 conf_0_1)) (= c_4 c_5) (= conf_0_3 conf_0_4) (= c_4 c!) (= conf_0_3 conf_0!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (= c_2 4)) (= c_4 c_2) (= conf_0_3 conf_0_1) (= c_4 c!) (= conf_0_3 conf_0!) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_1) - ) - ) - (not - (and - (not (= c_2 4)) - (not (<= c_2 4)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_1))) (not (and (not (= c_2 4)) (not (<= c_2 4)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/51_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/51_conf5.sl index 2958ccd..be8af82 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/51_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/51_conf5.sl @@ -1,170 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_3_1 Int) -(declare-primed-var conf_3_2 Int) -(declare-primed-var conf_3_3 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var conf_4_1 Int) -(declare-primed-var conf_4_2 Int) -(declare-primed-var conf_4_3 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= conf_0_0 8) - (= conf_1_0 4) - (= conf_2_0 8) - (= conf_3_0 1) - (= conf_4_0 7) - (= c_1 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= conf_0_0 8) (= conf_1_0 4) (= conf_2_0 8) (= conf_3_0 1) (= conf_4_0 7) (= c_1 0))) (define-fun trans-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (c! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_3_1! Int) (conf_3_2! Int) (conf_3_3! Int) (conf_4_0! Int) (conf_4_1! Int) (conf_4_2! Int) (conf_4_3! Int)) Bool - (or - (and - (= c_2 c) - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (= c_2 c!) - (= conf_3_1 conf_3!) - (= conf_4_1 conf_4!) - (= c c!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (not (= c_2 4)) - (= c_3 (+ c_2 1)) - (= conf_3_2 (+ conf_3_1 conf_3_1)) - (= c_4 c_3) - (= conf_3_3 conf_3_2) - (= conf_4_2 conf_4_1) - (= c_4 c!) - (= conf_3_3 conf_3!) - (= conf_4_2 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (not (not (= c_2 4))) - (= c_4 c_2) - (= conf_3_3 conf_3_1) - (= conf_4_2 conf_4_1) - (= c_4 c!) - (= conf_3_3 conf_3!) - (= conf_4_2 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (= c_2 4) - (= c_5 1) - (= conf_4_3 (- conf_3_1 conf_4_1)) - (= c_4 c_5) - (= conf_3_3 conf_3_1) - (= conf_4_2 conf_4_3) - (= c_4 c!) - (= conf_3_3 conf_3!) - (= conf_4_2 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (not (= c_2 4)) - (= c_4 c_2) - (= conf_3_3 conf_3_1) - (= conf_4_2 conf_4_1) - (= c_4 c!) - (= conf_3_3 conf_3!) - (= conf_4_2 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_3_1 conf_3) (= conf_4_1 conf_4) (= c_2 c!) (= conf_3_1 conf_3!) (= conf_4_1 conf_4!) (= c c!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= tmp tmp!)) (and (= c_2 c) (= conf_3_1 conf_3) (= conf_4_1 conf_4) (not (= c_2 4)) (= c_3 (+ c_2 1)) (= conf_3_2 (+ conf_3_1 conf_3_1)) (= c_4 c_3) (= conf_3_3 conf_3_2) (= conf_4_2 conf_4_1) (= c_4 c!) (= conf_3_3 conf_3!) (= conf_4_2 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= tmp tmp!)) (and (= c_2 c) (= conf_3_1 conf_3) (= conf_4_1 conf_4) (not (not (= c_2 4))) (= c_4 c_2) (= conf_3_3 conf_3_1) (= conf_4_2 conf_4_1) (= c_4 c!) (= conf_3_3 conf_3!) (= conf_4_2 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= tmp tmp!)) (and (= c_2 c) (= conf_3_1 conf_3) (= conf_4_1 conf_4) (= c_2 4) (= c_5 1) (= conf_4_3 (- conf_3_1 conf_4_1)) (= c_4 c_5) (= conf_3_3 conf_3_1) (= conf_4_2 conf_4_3) (= c_4 c!) (= conf_3_3 conf_3!) (= conf_4_2 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= tmp tmp!)) (and (= c_2 c) (= conf_3_1 conf_3) (= conf_4_1 conf_4) (not (= c_2 4)) (= c_4 c_2) (= conf_3_3 conf_3_1) (= conf_4_2 conf_4_1) (= c_4 c!) (= conf_3_3 conf_3!) (= conf_4_2 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_1) - (= conf_4 conf_4_1) - ) - ) - (not - (and - (not (= c_2 4)) - (not (<= c_2 4)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_1) (= conf_4 conf_4_1))) (not (and (not (= c_2 4)) (not (<= c_2 4)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/52.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/52.c.sl index 3719e1f..6e3b054 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/52.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/52.c.sl @@ -1,79 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) - (synth-inv inv-f ((c Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int))) (define-fun pre-f ((c Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int)) Bool - (and - (= c c_1) - (= c_1 0) - ) -) - + (and (= c c_1) (= c_1 0))) (define-fun trans-f ((c Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (c! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int)) Bool - (or - (and - (= c_2 c) - (= c_2 c!) - (= c c!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (= c_2 4)) - (= c_3 (+ c_2 1)) - (= c_4 c_3) - (= c_4 c!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (not (= c_2 4))) - (= c_4 c_2) - (= c_4 c!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= c_2 4) - (= c_5 1) - (= c_4 c_5) - (= c_4 c!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (= c_2 4)) - (= c_4 c_2) - (= c_4 c!) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= c_2 c!) (= c c!) (= tmp tmp!)) (and (= c_2 c) (not (= c_2 4)) (= c_3 (+ c_2 1)) (= c_4 c_3) (= c_4 c!) (= tmp tmp!)) (and (= c_2 c) (not (not (= c_2 4))) (= c_4 c_2) (= c_4 c!) (= tmp tmp!)) (and (= c_2 c) (= c_2 4) (= c_5 1) (= c_4 c_5) (= c_4 c!) (= tmp tmp!)) (and (= c_2 c) (not (= c_2 4)) (= c_4 c_2) (= c_4 c!) (= tmp tmp!)))) (define-fun post-f ((c Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int)) Bool - (or - (not - (= c c_2) - ) - (not - (and - (< c_2 0) - (> c_2 4) - (not (= c_2 4)) - ) - ) - ) -) + (or (not (= c c_2)) (not (and (< c_2 0) (> c_2 4) (not (= c_2 4)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/52_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/52_conf1.sl index f90b57f..85b5de3 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/52_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/52_conf1.sl @@ -1,107 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= conf_0_0 6) - (= c_1 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= conf_0_0 6) (= c_1 0))) (define-fun trans-f ((c Int) (conf_0 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (c! Int) (conf_0! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int)) Bool - (or - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 c!) - (= conf_0_1 conf_0!) - (= c c!) - (= conf_0 conf_0!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (= c_2 4)) - (= c_3 (+ c_2 1)) - (= conf_0_2 conf_0_1) - (= c_4 c_3) - (= conf_0_3 conf_0_2) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (not (= c_2 4))) - (= c_4 c_2) - (= conf_0_3 conf_0_1) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 4) - (= c_5 1) - (= conf_0_4 (- conf_0_1 421)) - (= c_4 c_5) - (= conf_0_3 conf_0_4) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (= c_2 4)) - (= c_4 c_2) - (= conf_0_3 conf_0_1) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 c!) (= conf_0_1 conf_0!) (= c c!) (= conf_0 conf_0!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (= c_2 4)) (= c_3 (+ c_2 1)) (= conf_0_2 conf_0_1) (= c_4 c_3) (= conf_0_3 conf_0_2) (= c_4 c!) (= conf_0_3 conf_0!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (not (= c_2 4))) (= c_4 c_2) (= conf_0_3 conf_0_1) (= c_4 c!) (= conf_0_3 conf_0!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 4) (= c_5 1) (= conf_0_4 (- conf_0_1 421)) (= c_4 c_5) (= conf_0_3 conf_0_4) (= c_4 c!) (= conf_0_3 conf_0!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (= c_2 4)) (= c_4 c_2) (= conf_0_3 conf_0_1) (= c_4 c!) (= conf_0_3 conf_0!) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_1) - ) - ) - (not - (and - (< c_2 0) - (> c_2 4) - (not (= c_2 4)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_1))) (not (and (< c_2 0) (> c_2 4) (not (= c_2 4)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/52_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/52_conf5.sl index a30c757..a66805c 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/52_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/52_conf5.sl @@ -1,171 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_1_1 Int) -(declare-primed-var conf_1_2 Int) -(declare-primed-var conf_1_3 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var conf_4_1 Int) -(declare-primed-var conf_4_2 Int) -(declare-primed-var conf_4_3 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= conf_0_0 5) - (= conf_1_0 1) - (= conf_2_0 4) - (= conf_3_0 9) - (= conf_4_0 6) - (= c_1 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= conf_0_0 5) (= conf_1_0 1) (= conf_2_0 4) (= conf_3_0 9) (= conf_4_0 6) (= c_1 0))) (define-fun trans-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (c! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_1_1! Int) (conf_1_2! Int) (conf_1_3! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_4_0! Int) (conf_4_1! Int) (conf_4_2! Int) (conf_4_3! Int)) Bool - (or - (and - (= c_2 c) - (= conf_1_1 conf_1) - (= conf_4_1 conf_4) - (= c_2 c!) - (= conf_1_1 conf_1!) - (= conf_4_1 conf_4!) - (= c c!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_1_1 conf_1) - (= conf_4_1 conf_4) - (not (= c_2 4)) - (= c_3 (+ c_2 1)) - (= conf_1_2 (- conf_1_1 421)) - (= c_4 c_3) - (= conf_1_3 conf_1_2) - (= conf_4_2 conf_4_1) - (= c_4 c!) - (= conf_1_3 conf_1!) - (= conf_4_2 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_1_1 conf_1) - (= conf_4_1 conf_4) - (not (not (= c_2 4))) - (= c_4 c_2) - (= conf_1_3 conf_1_1) - (= conf_4_2 conf_4_1) - (= c_4 c!) - (= conf_1_3 conf_1!) - (= conf_4_2 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_1_1 conf_1) - (= conf_4_1 conf_4) - (= c_2 4) - (= c_5 1) - (= conf_4_3 (+ conf_2_0 143)) - (= c_4 c_5) - (= conf_1_3 conf_1_1) - (= conf_4_2 conf_4_3) - (= c_4 c!) - (= conf_1_3 conf_1!) - (= conf_4_2 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_1_1 conf_1) - (= conf_4_1 conf_4) - (not (= c_2 4)) - (= c_4 c_2) - (= conf_1_3 conf_1_1) - (= conf_4_2 conf_4_1) - (= c_4 c!) - (= conf_1_3 conf_1!) - (= conf_4_2 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_1_1 conf_1) (= conf_4_1 conf_4) (= c_2 c!) (= conf_1_1 conf_1!) (= conf_4_1 conf_4!) (= c c!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= tmp tmp!)) (and (= c_2 c) (= conf_1_1 conf_1) (= conf_4_1 conf_4) (not (= c_2 4)) (= c_3 (+ c_2 1)) (= conf_1_2 (- conf_1_1 421)) (= c_4 c_3) (= conf_1_3 conf_1_2) (= conf_4_2 conf_4_1) (= c_4 c!) (= conf_1_3 conf_1!) (= conf_4_2 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= tmp tmp!)) (and (= c_2 c) (= conf_1_1 conf_1) (= conf_4_1 conf_4) (not (not (= c_2 4))) (= c_4 c_2) (= conf_1_3 conf_1_1) (= conf_4_2 conf_4_1) (= c_4 c!) (= conf_1_3 conf_1!) (= conf_4_2 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= tmp tmp!)) (and (= c_2 c) (= conf_1_1 conf_1) (= conf_4_1 conf_4) (= c_2 4) (= c_5 1) (= conf_4_3 (+ conf_2_0 143)) (= c_4 c_5) (= conf_1_3 conf_1_1) (= conf_4_2 conf_4_3) (= c_4 c!) (= conf_1_3 conf_1!) (= conf_4_2 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= tmp tmp!)) (and (= c_2 c) (= conf_1_1 conf_1) (= conf_4_1 conf_4) (not (= c_2 4)) (= c_4 c_2) (= conf_1_3 conf_1_1) (= conf_4_2 conf_4_1) (= c_4 c!) (= conf_1_3 conf_1!) (= conf_4_2 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_0) - (= conf_1 conf_1_1) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_1) - ) - ) - (not - (and - (< c_2 0) - (> c_2 4) - (not (= c_2 4)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_0) (= conf_1 conf_1_1) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_1))) (not (and (< c_2 0) (> c_2 4) (not (= c_2 4)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/56.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/56.c.sl index f311f16..d573335 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/56.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/56.c.sl @@ -1,94 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int))) (define-fun pre-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= n n_0) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= n n_0) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int) (c! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= c_2 c!) - (= c c!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (> c_2 n_0) - (= c_3 (+ c_2 1)) - (= c_4 c_3) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (> c_2 n_0)) - (= c_4 c_2) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= c_2 n_0) - (= c_5 1) - (= c_4 c_5) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (= c_2 n_0)) - (= c_4 c_2) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= c_2 c!) (= c c!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (> c_2 n_0) (= c_3 (+ c_2 1)) (= c_4 c_3) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (not (> c_2 n_0)) (= c_4 c_2) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= c_2 n_0) (= c_5 1) (= c_4 c_5) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (not (= c_2 n_0)) (= c_4 c_2) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= n n_0) - ) - ) - (not - (and - (= c_2 n_0) - (not (<= n_0 -1)) - ) - ) - ) -) + (or (not (and (= c c_2) (= n n_0))) (not (and (= c_2 n_0) (not (<= n_0 (- 1))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/56_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/56_conf1.sl index b148ebc..8b4457b 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/56_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/56_conf1.sl @@ -1,120 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= n n_0) - (= conf_0_0 3) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= n n_0) (= conf_0_0 3) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int) (c! Int) (conf_0! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 c!) - (= conf_0_1 conf_0!) - (= c c!) - (= conf_0 conf_0!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (> c_2 n_0) - (= c_3 (+ c_2 1)) - (= conf_0_2 (+ conf_0_1 585)) - (= c_4 c_3) - (= conf_0_3 conf_0_2) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (> c_2 n_0)) - (= c_4 c_2) - (= conf_0_3 conf_0_1) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 n_0) - (= c_5 1) - (= conf_0_4 (- conf_0_1 conf_0_1)) - (= c_4 c_5) - (= conf_0_3 conf_0_4) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (= c_2 n_0)) - (= c_4 c_2) - (= conf_0_3 conf_0_1) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 c!) (= conf_0_1 conf_0!) (= c c!) (= conf_0 conf_0!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (> c_2 n_0) (= c_3 (+ c_2 1)) (= conf_0_2 (+ conf_0_1 585)) (= c_4 c_3) (= conf_0_3 conf_0_2) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (> c_2 n_0)) (= c_4 c_2) (= conf_0_3 conf_0_1) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 n_0) (= c_5 1) (= conf_0_4 (- conf_0_1 conf_0_1)) (= c_4 c_5) (= conf_0_3 conf_0_4) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (= c_2 n_0)) (= c_4 c_2) (= conf_0_3 conf_0_1) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_1) - (= n n_0) - ) - ) - (not - (and - (= c_2 n_0) - (not (<= n_0 -1)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_1) (= n n_0))) (not (and (= c_2 n_0) (not (<= n_0 (- 1))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/56_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/56_conf5.sl index a41ce24..8e10d7e 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/56_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/56_conf5.sl @@ -1,184 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_3_1 Int) -(declare-primed-var conf_3_2 Int) -(declare-primed-var conf_3_3 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (n_0 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= n n_0) - (= conf_0_0 6) - (= conf_1_0 9) - (= conf_2_0 1) - (= conf_3_0 6) - (= conf_4_0 3) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= n n_0) (= conf_0_0 6) (= conf_1_0 9) (= conf_2_0 1) (= conf_3_0 6) (= conf_4_0 3) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (n_0 Int) (c! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_3_1! Int) (conf_3_2! Int) (conf_3_3! Int) (conf_4_0! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= conf_3_1 conf_3) - (= c_2 c!) - (= conf_0_1 conf_0!) - (= conf_3_1 conf_3!) - (= c c!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= conf_3_1 conf_3) - (> c_2 n_0) - (= c_3 (+ c_2 1)) - (= conf_3_2 conf_2_0) - (= c_4 c_3) - (= conf_0_2 conf_0_1) - (= conf_3_3 conf_3_2) - (= c_4 c!) - (= conf_0_2 conf_0!) - (= conf_3_3 conf_3!) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= conf_3_1 conf_3) - (not (> c_2 n_0)) - (= c_4 c_2) - (= conf_0_2 conf_0_1) - (= conf_3_3 conf_3_1) - (= c_4 c!) - (= conf_0_2 conf_0!) - (= conf_3_3 conf_3!) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= conf_3_1 conf_3) - (= c_2 n_0) - (= c_5 1) - (= conf_0_3 (- 565 conf_4_0)) - (= c_4 c_5) - (= conf_0_2 conf_0_3) - (= conf_3_3 conf_3_1) - (= c_4 c!) - (= conf_0_2 conf_0!) - (= conf_3_3 conf_3!) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= conf_3_1 conf_3) - (not (= c_2 n_0)) - (= c_4 c_2) - (= conf_0_2 conf_0_1) - (= conf_3_3 conf_3_1) - (= c_4 c!) - (= conf_0_2 conf_0!) - (= conf_3_3 conf_3!) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_0_1 conf_0) (= conf_3_1 conf_3) (= c_2 c!) (= conf_0_1 conf_0!) (= conf_3_1 conf_3!) (= c c!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= conf_3_1 conf_3) (> c_2 n_0) (= c_3 (+ c_2 1)) (= conf_3_2 conf_2_0) (= c_4 c_3) (= conf_0_2 conf_0_1) (= conf_3_3 conf_3_2) (= c_4 c!) (= conf_0_2 conf_0!) (= conf_3_3 conf_3!) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= conf_3_1 conf_3) (not (> c_2 n_0)) (= c_4 c_2) (= conf_0_2 conf_0_1) (= conf_3_3 conf_3_1) (= c_4 c!) (= conf_0_2 conf_0!) (= conf_3_3 conf_3!) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= conf_3_1 conf_3) (= c_2 n_0) (= c_5 1) (= conf_0_3 (- 565 conf_4_0)) (= c_4 c_5) (= conf_0_2 conf_0_3) (= conf_3_3 conf_3_1) (= c_4 c!) (= conf_0_2 conf_0!) (= conf_3_3 conf_3!) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= conf_3_1 conf_3) (not (= c_2 n_0)) (= c_4 c_2) (= conf_0_2 conf_0_1) (= conf_3_3 conf_3_1) (= c_4 c!) (= conf_0_2 conf_0!) (= conf_3_3 conf_3!) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_1) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_1) - (= conf_4 conf_4_0) - (= n n_0) - ) - ) - (not - (and - (= c_2 n_0) - (not (<= n_0 -1)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_1) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_1) (= conf_4 conf_4_0) (= n n_0))) (not (and (= c_2 n_0) (not (<= n_0 (- 1))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/57.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/57.c.sl index cf02e72..78c80b9 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/57.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/57.c.sl @@ -1,94 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int))) (define-fun pre-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= n n_0) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= n n_0) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int) (c! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= c_2 c!) - (= c c!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (> c_2 n_0) - (= c_3 (+ c_2 1)) - (= c_4 c_3) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (> c_2 n_0)) - (= c_4 c_2) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= c_2 n_0) - (= c_5 1) - (= c_4 c_5) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (= c_2 n_0)) - (= c_4 c_2) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= c_2 c!) (= c c!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (> c_2 n_0) (= c_3 (+ c_2 1)) (= c_4 c_3) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (not (> c_2 n_0)) (= c_4 c_2) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= c_2 n_0) (= c_5 1) (= c_4 c_5) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (not (= c_2 n_0)) (= c_4 c_2) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= n n_0) - ) - ) - (not - (and - (> n_0 -1) - (not (not (= c_2 n_0))) - ) - ) - ) -) + (or (not (and (= c c_2) (= n n_0))) (not (and (> n_0 (- 1)) (not (not (= c_2 n_0))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/57_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/57_conf1.sl index c4fc14e..a2c61cc 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/57_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/57_conf1.sl @@ -1,120 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= n n_0) - (= conf_0_0 5) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= n n_0) (= conf_0_0 5) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int) (c! Int) (conf_0! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 c!) - (= conf_0_1 conf_0!) - (= c c!) - (= conf_0 conf_0!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (> c_2 n_0) - (= c_3 (+ c_2 1)) - (= conf_0_2 (- conf_0_1 770)) - (= c_4 c_3) - (= conf_0_3 conf_0_2) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (> c_2 n_0)) - (= c_4 c_2) - (= conf_0_3 conf_0_1) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 n_0) - (= c_5 1) - (= conf_0_4 conf_0_1) - (= c_4 c_5) - (= conf_0_3 conf_0_4) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (= c_2 n_0)) - (= c_4 c_2) - (= conf_0_3 conf_0_1) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 c!) (= conf_0_1 conf_0!) (= c c!) (= conf_0 conf_0!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (> c_2 n_0) (= c_3 (+ c_2 1)) (= conf_0_2 (- conf_0_1 770)) (= c_4 c_3) (= conf_0_3 conf_0_2) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (> c_2 n_0)) (= c_4 c_2) (= conf_0_3 conf_0_1) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 n_0) (= c_5 1) (= conf_0_4 conf_0_1) (= c_4 c_5) (= conf_0_3 conf_0_4) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (= c_2 n_0)) (= c_4 c_2) (= conf_0_3 conf_0_1) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_1) - (= n n_0) - ) - ) - (not - (and - (> n_0 -1) - (not (not (= c_2 n_0))) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_1) (= n n_0))) (not (and (> n_0 (- 1)) (not (not (= c_2 n_0))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/57_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/57_conf5.sl index 6b139d3..a65b675 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/57_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/57_conf5.sl @@ -1,176 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var conf_4_1 Int) -(declare-primed-var conf_4_2 Int) -(declare-primed-var conf_4_3 Int) -(declare-primed-var conf_4_4 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (conf_4_4 Int) (n_0 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (conf_4_4 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= n n_0) - (= conf_0_0 1) - (= conf_1_0 5) - (= conf_2_0 9) - (= conf_3_0 4) - (= conf_4_0 5) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= n n_0) (= conf_0_0 1) (= conf_1_0 5) (= conf_2_0 9) (= conf_3_0 4) (= conf_4_0 5) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (conf_4_4 Int) (n_0 Int) (c! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_4_0! Int) (conf_4_1! Int) (conf_4_2! Int) (conf_4_3! Int) (conf_4_4! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= conf_4_1 conf_4) - (= c_2 c!) - (= conf_4_1 conf_4!) - (= c c!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_4_1 conf_4) - (> c_2 n_0) - (= c_3 (+ c_2 1)) - (= conf_4_2 631) - (= c_4 c_3) - (= conf_4_3 conf_4_2) - (= c_4 c!) - (= conf_4_3 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_4_1 conf_4) - (not (> c_2 n_0)) - (= c_4 c_2) - (= conf_4_3 conf_4_1) - (= c_4 c!) - (= conf_4_3 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_4_1 conf_4) - (= c_2 n_0) - (= c_5 1) - (= conf_4_4 (+ 272 conf_1_0)) - (= c_4 c_5) - (= conf_4_3 conf_4_4) - (= c_4 c!) - (= conf_4_3 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_4_1 conf_4) - (not (= c_2 n_0)) - (= c_4 c_2) - (= conf_4_3 conf_4_1) - (= c_4 c!) - (= conf_4_3 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_4_1 conf_4) (= c_2 c!) (= conf_4_1 conf_4!) (= c c!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (= conf_4_1 conf_4) (> c_2 n_0) (= c_3 (+ c_2 1)) (= conf_4_2 631) (= c_4 c_3) (= conf_4_3 conf_4_2) (= c_4 c!) (= conf_4_3 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_4_1 conf_4) (not (> c_2 n_0)) (= c_4 c_2) (= conf_4_3 conf_4_1) (= c_4 c!) (= conf_4_3 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_4_1 conf_4) (= c_2 n_0) (= c_5 1) (= conf_4_4 (+ 272 conf_1_0)) (= c_4 c_5) (= conf_4_3 conf_4_4) (= c_4 c!) (= conf_4_3 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_4_1 conf_4) (not (= c_2 n_0)) (= c_4 c_2) (= conf_4_3 conf_4_1) (= c_4 c!) (= conf_4_3 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (conf_4_4 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_1) - (= n n_0) - ) - ) - (not - (and - (> n_0 -1) - (not (not (= c_2 n_0))) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_1) (= n n_0))) (not (and (> n_0 (- 1)) (not (not (= c_2 n_0))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/5_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/5_conf1.sl index a6cfde7..a6d4524 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/5_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/5_conf1.sl @@ -1,114 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var size Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var z Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) -(declare-primed-var size_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) -(declare-primed-var y_3 Int) -(declare-primed-var z_0 Int) - (synth-inv inv-f ((conf_0 Int) (size Int) (x Int) (y Int) (z Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (size_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (z_0 Int))) (define-fun pre-f ((conf_0 Int) (size Int) (x Int) (y Int) (z Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (size_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (z_0 Int)) Bool - (and - (= conf_0 conf_0_0) - (= x x_1) - (= conf_0_0 7) - (= x_1 0) - ) -) - + (and (= conf_0 conf_0_0) (= x x_1) (= conf_0_0 7) (= x_1 0))) (define-fun trans-f ((conf_0 Int) (size Int) (x Int) (y Int) (z Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (size_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (z_0 Int) (conf_0! Int) (size! Int) (x! Int) (y! Int) (z! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int) (size_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int) (y_3! Int) (z_0! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= y_1 y) - (= conf_0_1 conf_0!) - (= x_2 x!) - (= y_1 y!) - (= size size_0) - (= size! size_0) - (= conf_0 conf_0!) - (= y y!) - (= z z!) - ) - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= y_1 y) - (< x_2 size_0) - (= x_3 (+ x_2 1)) - (= conf_0_2 (- conf_0_1 381)) - (<= z_0 y_1) - (= y_2 z_0) - (= conf_0_3 (- conf_0_2 637)) - (= conf_0_4 conf_0_3) - (= y_3 y_2) - (= conf_0_4 conf_0!) - (= x_3 x!) - (= y_3 y!) - (= size size_0) - (= size! size_0) - (= z z_0) - (= z! z_0) - ) - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= y_1 y) - (< x_2 size_0) - (= x_3 (+ x_2 1)) - (= conf_0_2 (- conf_0_1 381)) - (not (<= z_0 y_1)) - (= conf_0_4 conf_0_2) - (= y_3 y_1) - (= conf_0_4 conf_0!) - (= x_3 x!) - (= y_3 y!) - (= size size_0) - (= size! size_0) - (= z z_0) - (= z! z_0) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= x_2 x) (= y_1 y) (= conf_0_1 conf_0!) (= x_2 x!) (= y_1 y!) (= size size_0) (= size! size_0) (= conf_0 conf_0!) (= y y!) (= z z!)) (and (= conf_0_1 conf_0) (= x_2 x) (= y_1 y) (< x_2 size_0) (= x_3 (+ x_2 1)) (= conf_0_2 (- conf_0_1 381)) (<= z_0 y_1) (= y_2 z_0) (= conf_0_3 (- conf_0_2 637)) (= conf_0_4 conf_0_3) (= y_3 y_2) (= conf_0_4 conf_0!) (= x_3 x!) (= y_3 y!) (= size size_0) (= size! size_0) (= z z_0) (= z! z_0)) (and (= conf_0_1 conf_0) (= x_2 x) (= y_1 y) (< x_2 size_0) (= x_3 (+ x_2 1)) (= conf_0_2 (- conf_0_1 381)) (not (<= z_0 y_1)) (= conf_0_4 conf_0_2) (= y_3 y_1) (= conf_0_4 conf_0!) (= x_3 x!) (= y_3 y!) (= size size_0) (= size! size_0) (= z z_0) (= z! z_0)))) (define-fun post-f ((conf_0 Int) (size Int) (x Int) (y Int) (z Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (size_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (z_0 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= size size_0) - (= x x_2) - (= y y_1) - (= z z_0) - ) - ) - (not - (and - (not (< x_2 size_0)) - (> size_0 0) - (not (>= z_0 y_1)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= size size_0) (= x x_2) (= y y_1) (= z z_0))) (not (and (not (< x_2 size_0)) (> size_0 0) (not (>= z_0 y_1)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/5_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/5_conf5.sl index b0d3dbb..97285b4 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/5_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/5_conf5.sl @@ -1,157 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var size Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var z Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_1_1 Int) -(declare-primed-var conf_1_2 Int) -(declare-primed-var conf_1_3 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_3_1 Int) -(declare-primed-var conf_3_2 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var size_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) -(declare-primed-var y_3 Int) -(declare-primed-var z_0 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (size Int) (x Int) (y Int) (z Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (size_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (z_0 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (size Int) (x Int) (y Int) (z Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (size_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (z_0 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_1) - (= conf_0_0 1) - (= conf_1_0 5) - (= conf_2_0 7) - (= conf_3_0 6) - (= conf_4_0 7) - (= x_1 0) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_1) (= conf_0_0 1) (= conf_1_0 5) (= conf_2_0 7) (= conf_3_0 6) (= conf_4_0 7) (= x_1 0))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (size Int) (x Int) (y Int) (z Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (size_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (z_0 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (size! Int) (x! Int) (y! Int) (z! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_1_1! Int) (conf_1_2! Int) (conf_1_3! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_3_1! Int) (conf_3_2! Int) (conf_4_0! Int) (size_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int) (y_3! Int) (z_0! Int)) Bool - (or - (and - (= conf_1_1 conf_1) - (= conf_3_1 conf_3) - (= x_2 x) - (= y_1 y) - (= conf_1_1 conf_1!) - (= conf_3_1 conf_3!) - (= x_2 x!) - (= y_1 y!) - (= size size_0) - (= size! size_0) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= y y!) - (= z z!) - ) - (and - (= conf_1_1 conf_1) - (= conf_3_1 conf_3) - (= x_2 x) - (= y_1 y) - (< x_2 size_0) - (= x_3 (+ x_2 1)) - (= conf_3_2 conf_0_0) - (<= z_0 y_1) - (= y_2 z_0) - (= conf_1_2 (+ conf_1_1 conf_4_0)) - (= conf_1_3 conf_1_2) - (= y_3 y_2) - (= conf_1_3 conf_1!) - (= conf_3_2 conf_3!) - (= x_3 x!) - (= y_3 y!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= size size_0) - (= size! size_0) - (= z z_0) - (= z! z_0) - ) - (and - (= conf_1_1 conf_1) - (= conf_3_1 conf_3) - (= x_2 x) - (= y_1 y) - (< x_2 size_0) - (= x_3 (+ x_2 1)) - (= conf_3_2 conf_0_0) - (not (<= z_0 y_1)) - (= conf_1_3 conf_1_1) - (= y_3 y_1) - (= conf_1_3 conf_1!) - (= conf_3_2 conf_3!) - (= x_3 x!) - (= y_3 y!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= size size_0) - (= size! size_0) - (= z z_0) - (= z! z_0) - ) - ) -) - + (or (and (= conf_1_1 conf_1) (= conf_3_1 conf_3) (= x_2 x) (= y_1 y) (= conf_1_1 conf_1!) (= conf_3_1 conf_3!) (= x_2 x!) (= y_1 y!) (= size size_0) (= size! size_0) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= y y!) (= z z!)) (and (= conf_1_1 conf_1) (= conf_3_1 conf_3) (= x_2 x) (= y_1 y) (< x_2 size_0) (= x_3 (+ x_2 1)) (= conf_3_2 conf_0_0) (<= z_0 y_1) (= y_2 z_0) (= conf_1_2 (+ conf_1_1 conf_4_0)) (= conf_1_3 conf_1_2) (= y_3 y_2) (= conf_1_3 conf_1!) (= conf_3_2 conf_3!) (= x_3 x!) (= y_3 y!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= size size_0) (= size! size_0) (= z z_0) (= z! z_0)) (and (= conf_1_1 conf_1) (= conf_3_1 conf_3) (= x_2 x) (= y_1 y) (< x_2 size_0) (= x_3 (+ x_2 1)) (= conf_3_2 conf_0_0) (not (<= z_0 y_1)) (= conf_1_3 conf_1_1) (= y_3 y_1) (= conf_1_3 conf_1!) (= conf_3_2 conf_3!) (= x_3 x!) (= y_3 y!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= size size_0) (= size! size_0) (= z z_0) (= z! z_0)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (size Int) (x Int) (y Int) (z Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (size_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (z_0 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_1) - (= conf_2 conf_2_0) - (= conf_3 conf_3_1) - (= conf_4 conf_4_0) - (= size size_0) - (= x x_2) - (= y y_1) - (= z z_0) - ) - ) - (not - (and - (not (< x_2 size_0)) - (> size_0 0) - (not (>= z_0 y_1)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_0) (= conf_1 conf_1_1) (= conf_2 conf_2_0) (= conf_3 conf_3_1) (= conf_4 conf_4_0) (= size size_0) (= x x_2) (= y y_1) (= z z_0))) (not (and (not (< x_2 size_0)) (> size_0 0) (not (>= z_0 y_1)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/61.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/61.c.sl index 3459d4a..cdd432e 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/61.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/61.c.sl @@ -1,94 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int))) (define-fun pre-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= n n_0) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= n n_0) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int) (c! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= c_2 c!) - (= c c!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (= c_2 n_0)) - (= c_3 (+ c_2 1)) - (= c_4 c_3) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (not (= c_2 n_0))) - (= c_4 c_2) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= c_2 n_0) - (= c_5 1) - (= c_4 c_5) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (= c_2 n_0)) - (= c_4 c_2) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= c_2 c!) (= c c!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (not (= c_2 n_0)) (= c_3 (+ c_2 1)) (= c_4 c_3) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (not (not (= c_2 n_0))) (= c_4 c_2) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= c_2 n_0) (= c_5 1) (= c_4 c_5) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (not (= c_2 n_0)) (= c_4 c_2) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= n n_0) - ) - ) - (not - (and - (= c_2 n_0) - (not (<= n_0 -1)) - ) - ) - ) -) + (or (not (and (= c c_2) (= n n_0))) (not (and (= c_2 n_0) (not (<= n_0 (- 1))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/61_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/61_conf1.sl index 17b5abc..f810403 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/61_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/61_conf1.sl @@ -1,120 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= n n_0) - (= conf_0_0 3) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= n n_0) (= conf_0_0 3) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int) (c! Int) (conf_0! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 c!) - (= conf_0_1 conf_0!) - (= c c!) - (= conf_0 conf_0!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (= c_2 n_0)) - (= c_3 (+ c_2 1)) - (= conf_0_2 (+ conf_0_1 585)) - (= c_4 c_3) - (= conf_0_3 conf_0_2) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (not (= c_2 n_0))) - (= c_4 c_2) - (= conf_0_3 conf_0_1) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 n_0) - (= c_5 1) - (= conf_0_4 (- conf_0_1 conf_0_1)) - (= c_4 c_5) - (= conf_0_3 conf_0_4) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (= c_2 n_0)) - (= c_4 c_2) - (= conf_0_3 conf_0_1) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 c!) (= conf_0_1 conf_0!) (= c c!) (= conf_0 conf_0!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (= c_2 n_0)) (= c_3 (+ c_2 1)) (= conf_0_2 (+ conf_0_1 585)) (= c_4 c_3) (= conf_0_3 conf_0_2) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (not (= c_2 n_0))) (= c_4 c_2) (= conf_0_3 conf_0_1) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 n_0) (= c_5 1) (= conf_0_4 (- conf_0_1 conf_0_1)) (= c_4 c_5) (= conf_0_3 conf_0_4) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (= c_2 n_0)) (= c_4 c_2) (= conf_0_3 conf_0_1) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_1) - (= n n_0) - ) - ) - (not - (and - (= c_2 n_0) - (not (<= n_0 -1)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_1) (= n n_0))) (not (and (= c_2 n_0) (not (<= n_0 (- 1))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/61_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/61_conf5.sl index 905b743..3dd7b3b 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/61_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/61_conf5.sl @@ -1,184 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_3_1 Int) -(declare-primed-var conf_3_2 Int) -(declare-primed-var conf_3_3 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (n_0 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= n n_0) - (= conf_0_0 6) - (= conf_1_0 9) - (= conf_2_0 1) - (= conf_3_0 6) - (= conf_4_0 3) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= n n_0) (= conf_0_0 6) (= conf_1_0 9) (= conf_2_0 1) (= conf_3_0 6) (= conf_4_0 3) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (n_0 Int) (c! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_3_1! Int) (conf_3_2! Int) (conf_3_3! Int) (conf_4_0! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= conf_3_1 conf_3) - (= c_2 c!) - (= conf_0_1 conf_0!) - (= conf_3_1 conf_3!) - (= c c!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= conf_3_1 conf_3) - (not (= c_2 n_0)) - (= c_3 (+ c_2 1)) - (= conf_3_2 conf_2_0) - (= c_4 c_3) - (= conf_0_2 conf_0_1) - (= conf_3_3 conf_3_2) - (= c_4 c!) - (= conf_0_2 conf_0!) - (= conf_3_3 conf_3!) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= conf_3_1 conf_3) - (not (not (= c_2 n_0))) - (= c_4 c_2) - (= conf_0_2 conf_0_1) - (= conf_3_3 conf_3_1) - (= c_4 c!) - (= conf_0_2 conf_0!) - (= conf_3_3 conf_3!) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= conf_3_1 conf_3) - (= c_2 n_0) - (= c_5 1) - (= conf_0_3 (- 565 conf_4_0)) - (= c_4 c_5) - (= conf_0_2 conf_0_3) - (= conf_3_3 conf_3_1) - (= c_4 c!) - (= conf_0_2 conf_0!) - (= conf_3_3 conf_3!) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= conf_3_1 conf_3) - (not (= c_2 n_0)) - (= c_4 c_2) - (= conf_0_2 conf_0_1) - (= conf_3_3 conf_3_1) - (= c_4 c!) - (= conf_0_2 conf_0!) - (= conf_3_3 conf_3!) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_0_1 conf_0) (= conf_3_1 conf_3) (= c_2 c!) (= conf_0_1 conf_0!) (= conf_3_1 conf_3!) (= c c!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= conf_3_1 conf_3) (not (= c_2 n_0)) (= c_3 (+ c_2 1)) (= conf_3_2 conf_2_0) (= c_4 c_3) (= conf_0_2 conf_0_1) (= conf_3_3 conf_3_2) (= c_4 c!) (= conf_0_2 conf_0!) (= conf_3_3 conf_3!) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= conf_3_1 conf_3) (not (not (= c_2 n_0))) (= c_4 c_2) (= conf_0_2 conf_0_1) (= conf_3_3 conf_3_1) (= c_4 c!) (= conf_0_2 conf_0!) (= conf_3_3 conf_3!) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= conf_3_1 conf_3) (= c_2 n_0) (= c_5 1) (= conf_0_3 (- 565 conf_4_0)) (= c_4 c_5) (= conf_0_2 conf_0_3) (= conf_3_3 conf_3_1) (= c_4 c!) (= conf_0_2 conf_0!) (= conf_3_3 conf_3!) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= conf_3_1 conf_3) (not (= c_2 n_0)) (= c_4 c_2) (= conf_0_2 conf_0_1) (= conf_3_3 conf_3_1) (= c_4 c!) (= conf_0_2 conf_0!) (= conf_3_3 conf_3!) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_1) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_1) - (= conf_4 conf_4_0) - (= n n_0) - ) - ) - (not - (and - (= c_2 n_0) - (not (<= n_0 -1)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_1) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_1) (= conf_4 conf_4_0) (= n n_0))) (not (and (= c_2 n_0) (not (<= n_0 (- 1))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/62.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/62.c.sl index 1e584f4..45b7fb7 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/62.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/62.c.sl @@ -1,94 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int))) (define-fun pre-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= n n_0) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= n n_0) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int) (c! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= c_2 c!) - (= c c!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (= c_2 n_0)) - (= c_3 (+ c_2 1)) - (= c_4 c_3) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (not (= c_2 n_0))) - (= c_4 c_2) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= c_2 n_0) - (= c_5 1) - (= c_4 c_5) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (not (= c_2 n_0)) - (= c_4 c_2) - (= c_4 c!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= c_2 c!) (= c c!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (not (= c_2 n_0)) (= c_3 (+ c_2 1)) (= c_4 c_3) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (not (not (= c_2 n_0))) (= c_4 c_2) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= c_2 n_0) (= c_5 1) (= c_4 c_5) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (not (= c_2 n_0)) (= c_4 c_2) (= c_4 c!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= n n_0) - ) - ) - (not - (and - (> n_0 -1) - (not (not (= c_2 n_0))) - ) - ) - ) -) + (or (not (and (= c c_2) (= n n_0))) (not (and (> n_0 (- 1)) (not (not (= c_2 n_0))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/62_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/62_conf1.sl index 6af872a..3c9e48a 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/62_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/62_conf1.sl @@ -1,120 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= n n_0) - (= conf_0_0 5) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= n n_0) (= conf_0_0 5) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int) (c! Int) (conf_0! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 c!) - (= conf_0_1 conf_0!) - (= c c!) - (= conf_0 conf_0!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (= c_2 n_0)) - (= c_3 (+ c_2 1)) - (= conf_0_2 (- conf_0_1 770)) - (= c_4 c_3) - (= conf_0_3 conf_0_2) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (not (= c_2 n_0))) - (= c_4 c_2) - (= conf_0_3 conf_0_1) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= c_2 n_0) - (= c_5 1) - (= conf_0_4 conf_0_1) - (= c_4 c_5) - (= conf_0_3 conf_0_4) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (not (= c_2 n_0)) - (= c_4 c_2) - (= conf_0_3 conf_0_1) - (= c_4 c!) - (= conf_0_3 conf_0!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 c!) (= conf_0_1 conf_0!) (= c c!) (= conf_0 conf_0!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (= c_2 n_0)) (= c_3 (+ c_2 1)) (= conf_0_2 (- conf_0_1 770)) (= c_4 c_3) (= conf_0_3 conf_0_2) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (not (= c_2 n_0))) (= c_4 c_2) (= conf_0_3 conf_0_1) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= c_2 n_0) (= c_5 1) (= conf_0_4 conf_0_1) (= c_4 c_5) (= conf_0_3 conf_0_4) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (not (= c_2 n_0)) (= c_4 c_2) (= conf_0_3 conf_0_1) (= c_4 c!) (= conf_0_3 conf_0!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_1) - (= n n_0) - ) - ) - (not - (and - (> n_0 -1) - (not (not (= c_2 n_0))) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_1) (= n n_0))) (not (and (> n_0 (- 1)) (not (not (= c_2 n_0))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/62_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/62_conf5.sl index f3712f5..8a68d33 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/62_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/62_conf5.sl @@ -1,176 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var n Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var c_5 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var conf_4_1 Int) -(declare-primed-var conf_4_2 Int) -(declare-primed-var conf_4_3 Int) -(declare-primed-var conf_4_4 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (conf_4_4 Int) (n_0 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (conf_4_4 Int) (n_0 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= n n_0) - (= conf_0_0 1) - (= conf_1_0 5) - (= conf_2_0 9) - (= conf_3_0 4) - (= conf_4_0 5) - (= c_1 0) - (> n_0 0) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= n n_0) (= conf_0_0 1) (= conf_1_0 5) (= conf_2_0 9) (= conf_3_0 4) (= conf_4_0 5) (= c_1 0) (> n_0 0))) (define-fun trans-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (conf_4_4 Int) (n_0 Int) (c! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (n! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (c_5! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_4_0! Int) (conf_4_1! Int) (conf_4_2! Int) (conf_4_3! Int) (conf_4_4! Int) (n_0! Int)) Bool - (or - (and - (= c_2 c) - (= conf_4_1 conf_4) - (= c_2 c!) - (= conf_4_1 conf_4!) - (= c c!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= n n!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_4_1 conf_4) - (not (= c_2 n_0)) - (= c_3 (+ c_2 1)) - (= conf_4_2 631) - (= c_4 c_3) - (= conf_4_3 conf_4_2) - (= c_4 c!) - (= conf_4_3 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_4_1 conf_4) - (not (not (= c_2 n_0))) - (= c_4 c_2) - (= conf_4_3 conf_4_1) - (= c_4 c!) - (= conf_4_3 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_4_1 conf_4) - (= c_2 n_0) - (= c_5 1) - (= conf_4_4 (+ 272 conf_1_0)) - (= c_4 c_5) - (= conf_4_3 conf_4_4) - (= c_4 c!) - (= conf_4_3 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_4_1 conf_4) - (not (= c_2 n_0)) - (= c_4 c_2) - (= conf_4_3 conf_4_1) - (= c_4 c!) - (= conf_4_3 conf_4!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_4_1 conf_4) (= c_2 c!) (= conf_4_1 conf_4!) (= c c!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= n n!) (= tmp tmp!)) (and (= c_2 c) (= conf_4_1 conf_4) (not (= c_2 n_0)) (= c_3 (+ c_2 1)) (= conf_4_2 631) (= c_4 c_3) (= conf_4_3 conf_4_2) (= c_4 c!) (= conf_4_3 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_4_1 conf_4) (not (not (= c_2 n_0))) (= c_4 c_2) (= conf_4_3 conf_4_1) (= c_4 c!) (= conf_4_3 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_4_1 conf_4) (= c_2 n_0) (= c_5 1) (= conf_4_4 (+ 272 conf_1_0)) (= c_4 c_5) (= conf_4_3 conf_4_4) (= c_4 c!) (= conf_4_3 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= c_2 c) (= conf_4_1 conf_4) (not (= c_2 n_0)) (= c_4 c_2) (= conf_4_3 conf_4_1) (= c_4 c!) (= conf_4_3 conf_4!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (c_5 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (conf_4_4 Int) (n_0 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_1) - (= n n_0) - ) - ) - (not - (and - (> n_0 -1) - (not (not (= c_2 n_0))) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_1) (= n n_0))) (not (and (> n_0 (- 1)) (not (not (= c_2 n_0))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/63.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/63.c.sl index cdea747..0d36c16 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/63.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/63.c.sl @@ -1,61 +1,15 @@ (set-logic LIA) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((x Int) (y Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((x Int) (y Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= x x_0) - (= x_0 1) - ) -) - + (and (= x x_0) (= x_0 1))) (define-fun trans-f ((x Int) (y Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int) (x! Int) (y! Int) (x_0! Int) (x_1! Int) (x_2! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= x_1 x) - (= y_1 y) - (= x_1 x!) - (= y_1 y!) - (= y y!) - ) - (and - (= x_1 x) - (= y_1 y) - (<= x_1 10) - (= y_2 (- 10 x_1)) - (= x_2 (+ x_1 1)) - (= x_2 x!) - (= y_2 y!) - ) - ) -) - + (or (and (= x_1 x) (= y_1 y) (= x_1 x!) (= y_1 y!) (= y y!)) (and (= x_1 x) (= y_1 y) (<= x_1 10) (= y_2 (- 10 x_1)) (= x_2 (+ x_1 1)) (= x_2 x!) (= y_2 y!)))) (define-fun post-f ((x Int) (y Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= x x_1) - (= y y_1) - ) - ) - (not - (and - (not (<= x_1 10)) - (not (>= y_1 0)) - ) - ) - ) -) + (or (not (and (= x x_1) (= y y_1))) (not (and (not (<= x_1 10)) (not (>= y_1 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/63_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/63_conf1.sl index ab9945a..588b522 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/63_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/63_conf1.sl @@ -1,77 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= conf_0 conf_0_0) - (= x x_1) - (= conf_0_0 4) - (= x_1 1) - ) -) - + (and (= conf_0 conf_0_0) (= x x_1) (= conf_0_0 4) (= x_1 1))) (define-fun trans-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (conf_0! Int) (x! Int) (y! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= y_1 y) - (= conf_0_1 conf_0!) - (= x_2 x!) - (= y_1 y!) - (= conf_0 conf_0!) - (= y y!) - ) - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= y_1 y) - (<= x_2 10) - (= y_2 (- 10 x_2)) - (= conf_0_2 (- 469 conf_0_1)) - (= x_3 (+ x_2 1)) - (= conf_0_3 (+ 687 622)) - (= conf_0_3 conf_0!) - (= x_3 x!) - (= y_2 y!) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= x_2 x) (= y_1 y) (= conf_0_1 conf_0!) (= x_2 x!) (= y_1 y!) (= conf_0 conf_0!) (= y y!)) (and (= conf_0_1 conf_0) (= x_2 x) (= y_1 y) (<= x_2 10) (= y_2 (- 10 x_2)) (= conf_0_2 (- 469 conf_0_1)) (= x_3 (+ x_2 1)) (= conf_0_3 (+ 687 622)) (= conf_0_3 conf_0!) (= x_3 x!) (= y_2 y!)))) (define-fun post-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= x x_2) - (= y y_1) - ) - ) - (not - (and - (not (<= x_2 10)) - (not (>= y_1 0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= x x_2) (= y y_1))) (not (and (not (<= x_2 10)) (not (>= y_1 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/63_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/63_conf5.sl index 641ab4d..c5345ab 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/63_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/63_conf5.sl @@ -1,112 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var conf_4_1 Int) -(declare-primed-var conf_4_2 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_1) - (= conf_0_0 9) - (= conf_1_0 4) - (= conf_2_0 5) - (= conf_3_0 0) - (= conf_4_0 4) - (= x_1 1) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_1) (= conf_0_0 9) (= conf_1_0 4) (= conf_2_0 5) (= conf_3_0 0) (= conf_4_0 4) (= x_1 1))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (x! Int) (y! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_4_0! Int) (conf_4_1! Int) (conf_4_2! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= conf_4_1 conf_4) - (= x_2 x) - (= y_1 y) - (= conf_0_1 conf_0!) - (= conf_4_1 conf_4!) - (= x_2 x!) - (= y_1 y!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= y y!) - ) - (and - (= conf_0_1 conf_0) - (= conf_4_1 conf_4) - (= x_2 x) - (= y_1 y) - (<= x_2 10) - (= y_2 (- 10 x_2)) - (= conf_4_2 (- conf_3_0 687)) - (= x_3 (+ x_2 1)) - (= conf_0_2 178) - (= conf_0_2 conf_0!) - (= conf_4_2 conf_4!) - (= x_3 x!) - (= y_2 y!) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= conf_4_1 conf_4) (= x_2 x) (= y_1 y) (= conf_0_1 conf_0!) (= conf_4_1 conf_4!) (= x_2 x!) (= y_1 y!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= y y!)) (and (= conf_0_1 conf_0) (= conf_4_1 conf_4) (= x_2 x) (= y_1 y) (<= x_2 10) (= y_2 (- 10 x_2)) (= conf_4_2 (- conf_3_0 687)) (= x_3 (+ x_2 1)) (= conf_0_2 178) (= conf_0_2 conf_0!) (= conf_4_2 conf_4!) (= x_3 x!) (= y_2 y!) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_1) - (= x x_2) - (= y y_1) - ) - ) - (not - (and - (not (<= x_2 10)) - (not (>= y_1 0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_1) (= x x_2) (= y y_1))) (not (and (not (<= x_2 10)) (not (>= y_1 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/64.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/64.c.sl index 0c099ce..03aaaa9 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/64.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/64.c.sl @@ -1,61 +1,15 @@ (set-logic LIA) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((x Int) (y Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((x Int) (y Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= x x_0) - (= x_0 1) - ) -) - + (and (= x x_0) (= x_0 1))) (define-fun trans-f ((x Int) (y Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int) (x! Int) (y! Int) (x_0! Int) (x_1! Int) (x_2! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= x_1 x) - (= y_1 y) - (= x_1 x!) - (= y_1 y!) - (= y y!) - ) - (and - (= x_1 x) - (= y_1 y) - (<= x_1 10) - (= y_2 (- 10 x_1)) - (= x_2 (+ x_1 1)) - (= x_2 x!) - (= y_2 y!) - ) - ) -) - + (or (and (= x_1 x) (= y_1 y) (= x_1 x!) (= y_1 y!) (= y y!)) (and (= x_1 x) (= y_1 y) (<= x_1 10) (= y_2 (- 10 x_1)) (= x_2 (+ x_1 1)) (= x_2 x!) (= y_2 y!)))) (define-fun post-f ((x Int) (y Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= x x_1) - (= y y_1) - ) - ) - (not - (and - (not (<= x_1 10)) - (not (< y_1 10)) - ) - ) - ) -) + (or (not (and (= x x_1) (= y y_1))) (not (and (not (<= x_1 10)) (not (< y_1 10)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/64_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/64_conf1.sl index 7d9fb5d..3a7609f 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/64_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/64_conf1.sl @@ -1,77 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= conf_0 conf_0_0) - (= x x_1) - (= conf_0_0 2) - (= x_1 1) - ) -) - + (and (= conf_0 conf_0_0) (= x x_1) (= conf_0_0 2) (= x_1 1))) (define-fun trans-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (conf_0! Int) (x! Int) (y! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= y_1 y) - (= conf_0_1 conf_0!) - (= x_2 x!) - (= y_1 y!) - (= conf_0 conf_0!) - (= y y!) - ) - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= y_1 y) - (<= x_2 10) - (= y_2 (- 10 x_2)) - (= conf_0_2 conf_0_1) - (= x_3 (+ x_2 1)) - (= conf_0_3 (+ 686 conf_0_2)) - (= conf_0_3 conf_0!) - (= x_3 x!) - (= y_2 y!) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= x_2 x) (= y_1 y) (= conf_0_1 conf_0!) (= x_2 x!) (= y_1 y!) (= conf_0 conf_0!) (= y y!)) (and (= conf_0_1 conf_0) (= x_2 x) (= y_1 y) (<= x_2 10) (= y_2 (- 10 x_2)) (= conf_0_2 conf_0_1) (= x_3 (+ x_2 1)) (= conf_0_3 (+ 686 conf_0_2)) (= conf_0_3 conf_0!) (= x_3 x!) (= y_2 y!)))) (define-fun post-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= x x_2) - (= y y_1) - ) - ) - (not - (and - (not (<= x_2 10)) - (not (< y_1 10)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= x x_2) (= y y_1))) (not (and (not (<= x_2 10)) (not (< y_1 10)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/64_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/64_conf5.sl index 2f6c772..592ecf2 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/64_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/64_conf5.sl @@ -1,112 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_2_1 Int) -(declare-primed-var conf_2_2 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var conf_4_1 Int) -(declare-primed-var conf_4_2 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_1) - (= conf_0_0 3) - (= conf_1_0 9) - (= conf_2_0 8) - (= conf_3_0 9) - (= conf_4_0 2) - (= x_1 1) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_1) (= conf_0_0 3) (= conf_1_0 9) (= conf_2_0 8) (= conf_3_0 9) (= conf_4_0 2) (= x_1 1))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (x! Int) (y! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_2_1! Int) (conf_2_2! Int) (conf_3_0! Int) (conf_4_0! Int) (conf_4_1! Int) (conf_4_2! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= conf_2_1 conf_2) - (= conf_4_1 conf_4) - (= x_2 x) - (= y_1 y) - (= conf_2_1 conf_2!) - (= conf_4_1 conf_4!) - (= x_2 x!) - (= y_1 y!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= y y!) - ) - (and - (= conf_2_1 conf_2) - (= conf_4_1 conf_4) - (= x_2 x) - (= y_1 y) - (<= x_2 10) - (= y_2 (- 10 x_2)) - (= conf_4_2 (+ 686 conf_3_0)) - (= x_3 (+ x_2 1)) - (= conf_2_2 (- 829 561)) - (= conf_2_2 conf_2!) - (= conf_4_2 conf_4!) - (= x_3 x!) - (= y_2 y!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - ) - ) -) - + (or (and (= conf_2_1 conf_2) (= conf_4_1 conf_4) (= x_2 x) (= y_1 y) (= conf_2_1 conf_2!) (= conf_4_1 conf_4!) (= x_2 x!) (= y_1 y!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= y y!)) (and (= conf_2_1 conf_2) (= conf_4_1 conf_4) (= x_2 x) (= y_1 y) (<= x_2 10) (= y_2 (- 10 x_2)) (= conf_4_2 (+ 686 conf_3_0)) (= x_3 (+ x_2 1)) (= conf_2_2 (- 829 561)) (= conf_2_2 conf_2!) (= conf_4_2 conf_4!) (= x_3 x!) (= y_2 y!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_1) - (= conf_3 conf_3_0) - (= conf_4 conf_4_1) - (= x x_2) - (= y y_1) - ) - ) - (not - (and - (not (<= x_2 10)) - (not (< y_1 10)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_1) (= conf_3 conf_3_0) (= conf_4 conf_4_1) (= x x_2) (= y y_1))) (not (and (not (<= x_2 10)) (not (< y_1 10)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/65.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/65.c.sl index 150eebe..794e6e4 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/65.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/65.c.sl @@ -1,61 +1,15 @@ (set-logic LIA) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((x Int) (y Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((x Int) (y Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= x x_0) - (= x_0 1) - ) -) - + (and (= x x_0) (= x_0 1))) (define-fun trans-f ((x Int) (y Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int) (x! Int) (y! Int) (x_0! Int) (x_1! Int) (x_2! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= x_1 x) - (= y_1 y) - (= x_1 x!) - (= y_1 y!) - (= y y!) - ) - (and - (= x_1 x) - (= y_1 y) - (<= x_1 100) - (= y_2 (- 100 x_1)) - (= x_2 (+ x_1 1)) - (= x_2 x!) - (= y_2 y!) - ) - ) -) - + (or (and (= x_1 x) (= y_1 y) (= x_1 x!) (= y_1 y!) (= y y!)) (and (= x_1 x) (= y_1 y) (<= x_1 100) (= y_2 (- 100 x_1)) (= x_2 (+ x_1 1)) (= x_2 x!) (= y_2 y!)))) (define-fun post-f ((x Int) (y Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= x x_1) - (= y y_1) - ) - ) - (not - (and - (not (<= x_1 100)) - (not (>= y_1 0)) - ) - ) - ) -) + (or (not (and (= x x_1) (= y y_1))) (not (and (not (<= x_1 100)) (not (>= y_1 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/65_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/65_conf1.sl index 62856d7..8d0658a 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/65_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/65_conf1.sl @@ -1,77 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= conf_0 conf_0_0) - (= x x_1) - (= conf_0_0 4) - (= x_1 1) - ) -) - + (and (= conf_0 conf_0_0) (= x x_1) (= conf_0_0 4) (= x_1 1))) (define-fun trans-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (conf_0! Int) (x! Int) (y! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= y_1 y) - (= conf_0_1 conf_0!) - (= x_2 x!) - (= y_1 y!) - (= conf_0 conf_0!) - (= y y!) - ) - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= y_1 y) - (<= x_2 100) - (= y_2 (- 100 x_2)) - (= conf_0_2 (- 469 conf_0_1)) - (= x_3 (+ x_2 1)) - (= conf_0_3 (+ 687 622)) - (= conf_0_3 conf_0!) - (= x_3 x!) - (= y_2 y!) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= x_2 x) (= y_1 y) (= conf_0_1 conf_0!) (= x_2 x!) (= y_1 y!) (= conf_0 conf_0!) (= y y!)) (and (= conf_0_1 conf_0) (= x_2 x) (= y_1 y) (<= x_2 100) (= y_2 (- 100 x_2)) (= conf_0_2 (- 469 conf_0_1)) (= x_3 (+ x_2 1)) (= conf_0_3 (+ 687 622)) (= conf_0_3 conf_0!) (= x_3 x!) (= y_2 y!)))) (define-fun post-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= x x_2) - (= y y_1) - ) - ) - (not - (and - (not (<= x_2 100)) - (not (>= y_1 0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= x x_2) (= y y_1))) (not (and (not (<= x_2 100)) (not (>= y_1 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/65_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/65_conf5.sl index 8b02429..7ab9e25 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/65_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/65_conf5.sl @@ -1,112 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var conf_4_1 Int) -(declare-primed-var conf_4_2 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_1) - (= conf_0_0 9) - (= conf_1_0 4) - (= conf_2_0 5) - (= conf_3_0 0) - (= conf_4_0 4) - (= x_1 1) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_1) (= conf_0_0 9) (= conf_1_0 4) (= conf_2_0 5) (= conf_3_0 0) (= conf_4_0 4) (= x_1 1))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (x! Int) (y! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_4_0! Int) (conf_4_1! Int) (conf_4_2! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= conf_4_1 conf_4) - (= x_2 x) - (= y_1 y) - (= conf_0_1 conf_0!) - (= conf_4_1 conf_4!) - (= x_2 x!) - (= y_1 y!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= y y!) - ) - (and - (= conf_0_1 conf_0) - (= conf_4_1 conf_4) - (= x_2 x) - (= y_1 y) - (<= x_2 100) - (= y_2 (- 100 x_2)) - (= conf_4_2 (- conf_3_0 687)) - (= x_3 (+ x_2 1)) - (= conf_0_2 178) - (= conf_0_2 conf_0!) - (= conf_4_2 conf_4!) - (= x_3 x!) - (= y_2 y!) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= conf_4_1 conf_4) (= x_2 x) (= y_1 y) (= conf_0_1 conf_0!) (= conf_4_1 conf_4!) (= x_2 x!) (= y_1 y!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= y y!)) (and (= conf_0_1 conf_0) (= conf_4_1 conf_4) (= x_2 x) (= y_1 y) (<= x_2 100) (= y_2 (- 100 x_2)) (= conf_4_2 (- conf_3_0 687)) (= x_3 (+ x_2 1)) (= conf_0_2 178) (= conf_0_2 conf_0!) (= conf_4_2 conf_4!) (= x_3 x!) (= y_2 y!) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_1) - (= x x_2) - (= y y_1) - ) - ) - (not - (and - (not (<= x_2 100)) - (not (>= y_1 0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_1) (= x x_2) (= y y_1))) (not (and (not (<= x_2 100)) (not (>= y_1 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/66.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/66.c.sl index 8268572..e345b01 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/66.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/66.c.sl @@ -1,61 +1,15 @@ (set-logic LIA) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((x Int) (y Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((x Int) (y Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= x x_0) - (= x_0 1) - ) -) - + (and (= x x_0) (= x_0 1))) (define-fun trans-f ((x Int) (y Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int) (x! Int) (y! Int) (x_0! Int) (x_1! Int) (x_2! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= x_1 x) - (= y_1 y) - (= x_1 x!) - (= y_1 y!) - (= y y!) - ) - (and - (= x_1 x) - (= y_1 y) - (<= x_1 100) - (= y_2 (- 100 x_1)) - (= x_2 (+ x_1 1)) - (= x_2 x!) - (= y_2 y!) - ) - ) -) - + (or (and (= x_1 x) (= y_1 y) (= x_1 x!) (= y_1 y!) (= y y!)) (and (= x_1 x) (= y_1 y) (<= x_1 100) (= y_2 (- 100 x_1)) (= x_2 (+ x_1 1)) (= x_2 x!) (= y_2 y!)))) (define-fun post-f ((x Int) (y Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= x x_1) - (= y y_1) - ) - ) - (not - (and - (not (<= x_1 100)) - (not (< y_1 100)) - ) - ) - ) -) + (or (not (and (= x x_1) (= y y_1))) (not (and (not (<= x_1 100)) (not (< y_1 100)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/66_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/66_conf1.sl index 47cb996..54402a7 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/66_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/66_conf1.sl @@ -1,77 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= conf_0 conf_0_0) - (= x x_1) - (= conf_0_0 1) - (= x_1 1) - ) -) - + (and (= conf_0 conf_0_0) (= x x_1) (= conf_0_0 1) (= x_1 1))) (define-fun trans-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (conf_0! Int) (x! Int) (y! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= y_1 y) - (= conf_0_1 conf_0!) - (= x_2 x!) - (= y_1 y!) - (= conf_0 conf_0!) - (= y y!) - ) - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= y_1 y) - (<= x_2 100) - (= y_2 (- 100 x_2)) - (= conf_0_2 575) - (= x_3 (+ x_2 1)) - (= conf_0_3 (+ conf_0_2 conf_0_2)) - (= conf_0_3 conf_0!) - (= x_3 x!) - (= y_2 y!) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= x_2 x) (= y_1 y) (= conf_0_1 conf_0!) (= x_2 x!) (= y_1 y!) (= conf_0 conf_0!) (= y y!)) (and (= conf_0_1 conf_0) (= x_2 x) (= y_1 y) (<= x_2 100) (= y_2 (- 100 x_2)) (= conf_0_2 575) (= x_3 (+ x_2 1)) (= conf_0_3 (+ conf_0_2 conf_0_2)) (= conf_0_3 conf_0!) (= x_3 x!) (= y_2 y!)))) (define-fun post-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= x x_2) - (= y y_1) - ) - ) - (not - (and - (not (<= x_2 100)) - (not (< y_1 100)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= x x_2) (= y y_1))) (not (and (not (<= x_2 100)) (not (< y_1 100)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/66_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/66_conf5.sl index 58eef9e..0ffb4c4 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/66_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/66_conf5.sl @@ -1,112 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_1_1 Int) -(declare-primed-var conf_1_2 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_3_1 Int) -(declare-primed-var conf_3_2 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_1) - (= conf_0_0 5) - (= conf_1_0 0) - (= conf_2_0 4) - (= conf_3_0 9) - (= conf_4_0 1) - (= x_1 1) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_1) (= conf_0_0 5) (= conf_1_0 0) (= conf_2_0 4) (= conf_3_0 9) (= conf_4_0 1) (= x_1 1))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (x! Int) (y! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_1_1! Int) (conf_1_2! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_3_1! Int) (conf_3_2! Int) (conf_4_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= conf_1_1 conf_1) - (= conf_3_1 conf_3) - (= x_2 x) - (= y_1 y) - (= conf_1_1 conf_1!) - (= conf_3_1 conf_3!) - (= x_2 x!) - (= y_1 y!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= y y!) - ) - (and - (= conf_1_1 conf_1) - (= conf_3_1 conf_3) - (= x_2 x) - (= y_1 y) - (<= x_2 100) - (= y_2 (- 100 x_2)) - (= conf_1_2 (+ conf_1_1 conf_1_1)) - (= x_3 (+ x_2 1)) - (= conf_3_2 (- conf_1_2 519)) - (= conf_1_2 conf_1!) - (= conf_3_2 conf_3!) - (= x_3 x!) - (= y_2 y!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - ) - ) -) - + (or (and (= conf_1_1 conf_1) (= conf_3_1 conf_3) (= x_2 x) (= y_1 y) (= conf_1_1 conf_1!) (= conf_3_1 conf_3!) (= x_2 x!) (= y_1 y!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= y y!)) (and (= conf_1_1 conf_1) (= conf_3_1 conf_3) (= x_2 x) (= y_1 y) (<= x_2 100) (= y_2 (- 100 x_2)) (= conf_1_2 (+ conf_1_1 conf_1_1)) (= x_3 (+ x_2 1)) (= conf_3_2 (- conf_1_2 519)) (= conf_1_2 conf_1!) (= conf_3_2 conf_3!) (= x_3 x!) (= y_2 y!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_1) - (= conf_2 conf_2_0) - (= conf_3 conf_3_1) - (= conf_4 conf_4_0) - (= x x_2) - (= y y_1) - ) - ) - (not - (and - (not (<= x_2 100)) - (not (< y_1 100)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_0) (= conf_1 conf_1_1) (= conf_2 conf_2_0) (= conf_3 conf_3_1) (= conf_4 conf_4_0) (= x x_2) (= y y_1))) (not (and (not (<= x_2 100)) (not (< y_1 100)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/67.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/67.c.sl index 2be1bd7..5e1807e 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/67.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/67.c.sl @@ -1,69 +1,15 @@ (set-logic LIA) -(declare-primed-var n Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((n Int) (x Int) (y Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((n Int) (x Int) (y Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= x x_0) - (= x_0 1) - ) -) - + (and (= x x_0) (= x_0 1))) (define-fun trans-f ((n Int) (x Int) (y Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int) (n! Int) (x! Int) (y! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= x_1 x) - (= y_1 y) - (= x_1 x!) - (= y_1 y!) - (= n n_0) - (= n! n_0) - (= y y!) - ) - (and - (= x_1 x) - (= y_1 y) - (<= x_1 n_0) - (= y_2 (- n_0 x_1)) - (= x_2 (+ x_1 1)) - (= x_2 x!) - (= y_2 y!) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= x_1 x) (= y_1 y) (= x_1 x!) (= y_1 y!) (= n n_0) (= n! n_0) (= y y!)) (and (= x_1 x) (= y_1 y) (<= x_1 n_0) (= y_2 (- n_0 x_1)) (= x_2 (+ x_1 1)) (= x_2 x!) (= y_2 y!) (= n n_0) (= n! n_0)))) (define-fun post-f ((n Int) (x Int) (y Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= n n_0) - (= x x_1) - (= y y_1) - ) - ) - (not - (and - (not (<= x_1 n_0)) - (> n_0 0) - (not (>= y_1 0)) - ) - ) - ) -) + (or (not (and (= n n_0) (= x x_1) (= y y_1))) (not (and (not (<= x_1 n_0)) (> n_0 0) (not (>= y_1 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/67_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/67_conf1.sl index 9a21eaf..20f9768 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/67_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/67_conf1.sl @@ -1,85 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var n Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((conf_0 Int) (n Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((conf_0 Int) (n Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= conf_0 conf_0_0) - (= x x_1) - (= conf_0_0 9) - (= x_1 1) - ) -) - + (and (= conf_0 conf_0_0) (= x x_1) (= conf_0_0 9) (= x_1 1))) (define-fun trans-f ((conf_0 Int) (n Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (conf_0! Int) (n! Int) (x! Int) (y! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= y_1 y) - (= conf_0_1 conf_0!) - (= x_2 x!) - (= y_1 y!) - (= n n_0) - (= n! n_0) - (= conf_0 conf_0!) - (= y y!) - ) - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= y_1 y) - (<= x_2 n_0) - (= y_2 (- n_0 x_2)) - (= conf_0_2 329) - (= x_3 (+ x_2 1)) - (= conf_0_3 (+ conf_0_2 522)) - (= conf_0_3 conf_0!) - (= x_3 x!) - (= y_2 y!) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= x_2 x) (= y_1 y) (= conf_0_1 conf_0!) (= x_2 x!) (= y_1 y!) (= n n_0) (= n! n_0) (= conf_0 conf_0!) (= y y!)) (and (= conf_0_1 conf_0) (= x_2 x) (= y_1 y) (<= x_2 n_0) (= y_2 (- n_0 x_2)) (= conf_0_2 329) (= x_3 (+ x_2 1)) (= conf_0_3 (+ conf_0_2 522)) (= conf_0_3 conf_0!) (= x_3 x!) (= y_2 y!) (= n n_0) (= n! n_0)))) (define-fun post-f ((conf_0 Int) (n Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= n n_0) - (= x x_2) - (= y y_1) - ) - ) - (not - (and - (not (<= x_2 n_0)) - (> n_0 0) - (not (>= y_1 0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= n n_0) (= x x_2) (= y y_1))) (not (and (not (<= x_2 n_0)) (> n_0 0) (not (>= y_1 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/67_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/67_conf5.sl index 65c2bae..44872f6 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/67_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/67_conf5.sl @@ -1,120 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var n Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_2_1 Int) -(declare-primed-var conf_2_2 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_3_1 Int) -(declare-primed-var conf_3_2 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (y Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (y Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_1) - (= conf_0_0 9) - (= conf_1_0 0) - (= conf_2_0 0) - (= conf_3_0 5) - (= conf_4_0 9) - (= x_1 1) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_1) (= conf_0_0 9) (= conf_1_0 0) (= conf_2_0 0) (= conf_3_0 5) (= conf_4_0 9) (= x_1 1))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (y Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (n! Int) (x! Int) (y! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_2_1! Int) (conf_2_2! Int) (conf_3_0! Int) (conf_3_1! Int) (conf_3_2! Int) (conf_4_0! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= conf_2_1 conf_2) - (= conf_3_1 conf_3) - (= x_2 x) - (= y_1 y) - (= conf_2_1 conf_2!) - (= conf_3_1 conf_3!) - (= x_2 x!) - (= y_1 y!) - (= n n_0) - (= n! n_0) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= y y!) - ) - (and - (= conf_2_1 conf_2) - (= conf_3_1 conf_3) - (= x_2 x) - (= y_1 y) - (<= x_2 n_0) - (= y_2 (- n_0 x_2)) - (= conf_3_2 (+ conf_1_0 522)) - (= x_3 (+ x_2 1)) - (= conf_2_2 (- conf_4_0 conf_3_2)) - (= conf_2_2 conf_2!) - (= conf_3_2 conf_3!) - (= x_3 x!) - (= y_2 y!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= conf_2_1 conf_2) (= conf_3_1 conf_3) (= x_2 x) (= y_1 y) (= conf_2_1 conf_2!) (= conf_3_1 conf_3!) (= x_2 x!) (= y_1 y!) (= n n_0) (= n! n_0) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= y y!)) (and (= conf_2_1 conf_2) (= conf_3_1 conf_3) (= x_2 x) (= y_1 y) (<= x_2 n_0) (= y_2 (- n_0 x_2)) (= conf_3_2 (+ conf_1_0 522)) (= x_3 (+ x_2 1)) (= conf_2_2 (- conf_4_0 conf_3_2)) (= conf_2_2 conf_2!) (= conf_3_2 conf_3!) (= x_3 x!) (= y_2 y!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (y Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_1) - (= conf_3 conf_3_1) - (= conf_4 conf_4_0) - (= n n_0) - (= x x_2) - (= y y_1) - ) - ) - (not - (and - (not (<= x_2 n_0)) - (> n_0 0) - (not (>= y_1 0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_1) (= conf_3 conf_3_1) (= conf_4 conf_4_0) (= n n_0) (= x x_2) (= y y_1))) (not (and (not (<= x_2 n_0)) (> n_0 0) (not (>= y_1 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/68.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/68.c.sl index 1c93e97..a38c2a2 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/68.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/68.c.sl @@ -1,69 +1,15 @@ (set-logic LIA) -(declare-primed-var n Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((n Int) (x Int) (y Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((n Int) (x Int) (y Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= x x_0) - (= x_0 1) - ) -) - + (and (= x x_0) (= x_0 1))) (define-fun trans-f ((n Int) (x Int) (y Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int) (n! Int) (x! Int) (y! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= x_1 x) - (= y_1 y) - (= x_1 x!) - (= y_1 y!) - (= n n_0) - (= n! n_0) - (= y y!) - ) - (and - (= x_1 x) - (= y_1 y) - (<= x_1 n_0) - (= y_2 (- n_0 x_1)) - (= x_2 (+ x_1 1)) - (= x_2 x!) - (= y_2 y!) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= x_1 x) (= y_1 y) (= x_1 x!) (= y_1 y!) (= n n_0) (= n! n_0) (= y y!)) (and (= x_1 x) (= y_1 y) (<= x_1 n_0) (= y_2 (- n_0 x_1)) (= x_2 (+ x_1 1)) (= x_2 x!) (= y_2 y!) (= n n_0) (= n! n_0)))) (define-fun post-f ((n Int) (x Int) (y Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= n n_0) - (= x x_1) - (= y y_1) - ) - ) - (not - (and - (not (<= x_1 n_0)) - (> n_0 0) - (not (<= y_1 n_0)) - ) - ) - ) -) + (or (not (and (= n n_0) (= x x_1) (= y y_1))) (not (and (not (<= x_1 n_0)) (> n_0 0) (not (<= y_1 n_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/68_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/68_conf1.sl index c9e2af3..10d779c 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/68_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/68_conf1.sl @@ -1,85 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var n Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((conf_0 Int) (n Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((conf_0 Int) (n Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= conf_0 conf_0_0) - (= x x_1) - (= conf_0_0 8) - (= x_1 1) - ) -) - + (and (= conf_0 conf_0_0) (= x x_1) (= conf_0_0 8) (= x_1 1))) (define-fun trans-f ((conf_0 Int) (n Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (conf_0! Int) (n! Int) (x! Int) (y! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= y_1 y) - (= conf_0_1 conf_0!) - (= x_2 x!) - (= y_1 y!) - (= n n_0) - (= n! n_0) - (= conf_0 conf_0!) - (= y y!) - ) - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= y_1 y) - (<= x_2 n_0) - (= y_2 (- n_0 x_2)) - (= conf_0_2 conf_0_1) - (= x_3 (+ x_2 1)) - (= conf_0_3 (+ conf_0_2 292)) - (= conf_0_3 conf_0!) - (= x_3 x!) - (= y_2 y!) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= x_2 x) (= y_1 y) (= conf_0_1 conf_0!) (= x_2 x!) (= y_1 y!) (= n n_0) (= n! n_0) (= conf_0 conf_0!) (= y y!)) (and (= conf_0_1 conf_0) (= x_2 x) (= y_1 y) (<= x_2 n_0) (= y_2 (- n_0 x_2)) (= conf_0_2 conf_0_1) (= x_3 (+ x_2 1)) (= conf_0_3 (+ conf_0_2 292)) (= conf_0_3 conf_0!) (= x_3 x!) (= y_2 y!) (= n n_0) (= n! n_0)))) (define-fun post-f ((conf_0 Int) (n Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= n n_0) - (= x x_2) - (= y y_1) - ) - ) - (not - (and - (not (<= x_2 n_0)) - (> n_0 0) - (not (<= y_1 n_0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= n n_0) (= x x_2) (= y y_1))) (not (and (not (<= x_2 n_0)) (> n_0 0) (not (<= y_1 n_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/68_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/68_conf5.sl index 26f4a93..6a309af 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/68_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/68_conf5.sl @@ -1,120 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var n Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_2_1 Int) -(declare-primed-var conf_2_2 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_1) - (= conf_0_0 2) - (= conf_1_0 1) - (= conf_2_0 2) - (= conf_3_0 7) - (= conf_4_0 8) - (= x_1 1) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_1) (= conf_0_0 2) (= conf_1_0 1) (= conf_2_0 2) (= conf_3_0 7) (= conf_4_0 8) (= x_1 1))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (n! Int) (x! Int) (y! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_2_1! Int) (conf_2_2! Int) (conf_3_0! Int) (conf_4_0! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= conf_2_1 conf_2) - (= x_2 x) - (= y_1 y) - (= conf_0_1 conf_0!) - (= conf_2_1 conf_2!) - (= x_2 x!) - (= y_1 y!) - (= n n_0) - (= n! n_0) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= y y!) - ) - (and - (= conf_0_1 conf_0) - (= conf_2_1 conf_2) - (= x_2 x) - (= y_1 y) - (<= x_2 n_0) - (= y_2 (- n_0 x_2)) - (= conf_0_2 (+ conf_4_0 292)) - (= x_3 (+ x_2 1)) - (= conf_2_2 conf_3_0) - (= conf_0_2 conf_0!) - (= conf_2_2 conf_2!) - (= x_3 x!) - (= y_2 y!) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= conf_2_1 conf_2) (= x_2 x) (= y_1 y) (= conf_0_1 conf_0!) (= conf_2_1 conf_2!) (= x_2 x!) (= y_1 y!) (= n n_0) (= n! n_0) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= y y!)) (and (= conf_0_1 conf_0) (= conf_2_1 conf_2) (= x_2 x) (= y_1 y) (<= x_2 n_0) (= y_2 (- n_0 x_2)) (= conf_0_2 (+ conf_4_0 292)) (= x_3 (+ x_2 1)) (= conf_2_2 conf_3_0) (= conf_0_2 conf_0!) (= conf_2_2 conf_2!) (= x_3 x!) (= y_2 y!) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= conf_1 conf_1_0) - (= conf_2 conf_2_1) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= n n_0) - (= x x_2) - (= y y_1) - ) - ) - (not - (and - (not (<= x_2 n_0)) - (> n_0 0) - (not (<= y_1 n_0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= conf_1 conf_1_0) (= conf_2 conf_2_1) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= n n_0) (= x x_2) (= y y_1))) (not (and (not (<= x_2 n_0)) (> n_0 0) (not (<= y_1 n_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/70.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/70.c.sl index 7c34d65..eb503bf 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/70.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/70.c.sl @@ -1,69 +1,15 @@ (set-logic LIA) -(declare-primed-var n Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((n Int) (x Int) (y Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((n Int) (x Int) (y Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= x x_0) - (= x_0 1) - ) -) - + (and (= x x_0) (= x_0 1))) (define-fun trans-f ((n Int) (x Int) (y Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int) (n! Int) (x! Int) (y! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= x_1 x) - (= y_1 y) - (= x_1 x!) - (= y_1 y!) - (= n n_0) - (= n! n_0) - (= y y!) - ) - (and - (= x_1 x) - (= y_1 y) - (<= x_1 n_0) - (= y_2 (- n_0 x_1)) - (= x_2 (+ x_1 1)) - (= x_2 x!) - (= y_2 y!) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= x_1 x) (= y_1 y) (= x_1 x!) (= y_1 y!) (= n n_0) (= n! n_0) (= y y!)) (and (= x_1 x) (= y_1 y) (<= x_1 n_0) (= y_2 (- n_0 x_1)) (= x_2 (+ x_1 1)) (= x_2 x!) (= y_2 y!) (= n n_0) (= n! n_0)))) (define-fun post-f ((n Int) (x Int) (y Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= n n_0) - (= x x_1) - (= y y_1) - ) - ) - (not - (and - (not (<= x_1 n_0)) - (> n_0 0) - (not (< y_1 n_0)) - ) - ) - ) -) + (or (not (and (= n n_0) (= x x_1) (= y y_1))) (not (and (not (<= x_1 n_0)) (> n_0 0) (not (< y_1 n_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/70_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/70_conf1.sl index b7ae8e6..bf18ef3 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/70_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/70_conf1.sl @@ -1,85 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var n Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((conf_0 Int) (n Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((conf_0 Int) (n Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= conf_0 conf_0_0) - (= x x_1) - (= conf_0_0 8) - (= x_1 1) - ) -) - + (and (= conf_0 conf_0_0) (= x x_1) (= conf_0_0 8) (= x_1 1))) (define-fun trans-f ((conf_0 Int) (n Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (conf_0! Int) (n! Int) (x! Int) (y! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= y_1 y) - (= conf_0_1 conf_0!) - (= x_2 x!) - (= y_1 y!) - (= n n_0) - (= n! n_0) - (= conf_0 conf_0!) - (= y y!) - ) - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= y_1 y) - (<= x_2 n_0) - (= y_2 (- n_0 x_2)) - (= conf_0_2 conf_0_1) - (= x_3 (+ x_2 1)) - (= conf_0_3 (+ conf_0_2 292)) - (= conf_0_3 conf_0!) - (= x_3 x!) - (= y_2 y!) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= x_2 x) (= y_1 y) (= conf_0_1 conf_0!) (= x_2 x!) (= y_1 y!) (= n n_0) (= n! n_0) (= conf_0 conf_0!) (= y y!)) (and (= conf_0_1 conf_0) (= x_2 x) (= y_1 y) (<= x_2 n_0) (= y_2 (- n_0 x_2)) (= conf_0_2 conf_0_1) (= x_3 (+ x_2 1)) (= conf_0_3 (+ conf_0_2 292)) (= conf_0_3 conf_0!) (= x_3 x!) (= y_2 y!) (= n n_0) (= n! n_0)))) (define-fun post-f ((conf_0 Int) (n Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= n n_0) - (= x x_2) - (= y y_1) - ) - ) - (not - (and - (not (<= x_2 n_0)) - (> n_0 0) - (not (< y_1 n_0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= n n_0) (= x x_2) (= y y_1))) (not (and (not (<= x_2 n_0)) (> n_0 0) (not (< y_1 n_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/70_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/70_conf5.sl index a528fc0..881c73c 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/70_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/70_conf5.sl @@ -1,120 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var n Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_2_1 Int) -(declare-primed-var conf_2_2 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_1) - (= conf_0_0 2) - (= conf_1_0 1) - (= conf_2_0 2) - (= conf_3_0 7) - (= conf_4_0 8) - (= x_1 1) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_1) (= conf_0_0 2) (= conf_1_0 1) (= conf_2_0 2) (= conf_3_0 7) (= conf_4_0 8) (= x_1 1))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (n! Int) (x! Int) (y! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_2_1! Int) (conf_2_2! Int) (conf_3_0! Int) (conf_4_0! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= conf_2_1 conf_2) - (= x_2 x) - (= y_1 y) - (= conf_0_1 conf_0!) - (= conf_2_1 conf_2!) - (= x_2 x!) - (= y_1 y!) - (= n n_0) - (= n! n_0) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= y y!) - ) - (and - (= conf_0_1 conf_0) - (= conf_2_1 conf_2) - (= x_2 x) - (= y_1 y) - (<= x_2 n_0) - (= y_2 (- n_0 x_2)) - (= conf_0_2 (+ conf_4_0 292)) - (= x_3 (+ x_2 1)) - (= conf_2_2 conf_3_0) - (= conf_0_2 conf_0!) - (= conf_2_2 conf_2!) - (= x_3 x!) - (= y_2 y!) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= conf_2_1 conf_2) (= x_2 x) (= y_1 y) (= conf_0_1 conf_0!) (= conf_2_1 conf_2!) (= x_2 x!) (= y_1 y!) (= n n_0) (= n! n_0) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= y y!)) (and (= conf_0_1 conf_0) (= conf_2_1 conf_2) (= x_2 x) (= y_1 y) (<= x_2 n_0) (= y_2 (- n_0 x_2)) (= conf_0_2 (+ conf_4_0 292)) (= x_3 (+ x_2 1)) (= conf_2_2 conf_3_0) (= conf_0_2 conf_0!) (= conf_2_2 conf_2!) (= x_3 x!) (= y_2 y!) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= conf_1 conf_1_0) - (= conf_2 conf_2_1) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= n n_0) - (= x x_2) - (= y y_1) - ) - ) - (not - (and - (not (<= x_2 n_0)) - (> n_0 0) - (not (< y_1 n_0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= conf_1 conf_1_0) (= conf_2 conf_2_1) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= n n_0) (= x x_2) (= y y_1))) (not (and (not (<= x_2 n_0)) (> n_0 0) (not (< y_1 n_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/71.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/71.c.sl index 392aec4..3d12436 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/71.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/71.c.sl @@ -1,94 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var y Int) -(declare-primed-var z Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var y_0 Int) -(declare-primed-var z_0 Int) -(declare-primed-var z_1 Int) -(declare-primed-var z_2 Int) -(declare-primed-var z_3 Int) -(declare-primed-var z_4 Int) - (synth-inv inv-f ((c Int) (y Int) (z Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (y_0 Int) (z_0 Int) (z_1 Int) (z_2 Int) (z_3 Int) (z_4 Int))) (define-fun pre-f ((c Int) (y Int) (z Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (y_0 Int) (z_0 Int) (z_1 Int) (z_2 Int) (z_3 Int) (z_4 Int)) Bool - (and - (= c c_1) - (= y y_0) - (= z z_1) - (= c_1 0) - (>= y_0 0) - (>= y_0 127) - (= z_1 (* 36 y_0)) - ) -) - + (and (= c c_1) (= y y_0) (= z z_1) (= c_1 0) (>= y_0 0) (>= y_0 127) (= z_1 (* 36 y_0)))) (define-fun trans-f ((c Int) (y Int) (z Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (y_0 Int) (z_0 Int) (z_1 Int) (z_2 Int) (z_3 Int) (z_4 Int) (c! Int) (y! Int) (z! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (y_0! Int) (z_0! Int) (z_1! Int) (z_2! Int) (z_3! Int) (z_4! Int)) Bool - (or - (and - (= c_2 c) - (= z_2 z) - (= c_2 c!) - (= z_2 z!) - (= c c!) - (= y y!) - (= z z!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= z_2 z) - (< c_2 36) - (= z_3 (+ z_2 1)) - (= c_3 (+ c_2 1)) - (= c_4 c_3) - (= z_4 z_3) - (= c_4 c!) - (= z_4 z!) - (= y y_0) - (= y! y_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= z_2 z) - (not (< c_2 36)) - (= c_4 c_2) - (= z_4 z_2) - (= c_4 c!) - (= z_4 z!) - (= y y_0) - (= y! y_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= z_2 z) (= c_2 c!) (= z_2 z!) (= c c!) (= y y!) (= z z!) (= tmp tmp!)) (and (= c_2 c) (= z_2 z) (< c_2 36) (= z_3 (+ z_2 1)) (= c_3 (+ c_2 1)) (= c_4 c_3) (= z_4 z_3) (= c_4 c!) (= z_4 z!) (= y y_0) (= y! y_0) (= tmp tmp!)) (and (= c_2 c) (= z_2 z) (not (< c_2 36)) (= c_4 c_2) (= z_4 z_2) (= c_4 c!) (= z_4 z!) (= y y_0) (= y! y_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (y Int) (z Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (y_0 Int) (z_0 Int) (z_1 Int) (z_2 Int) (z_3 Int) (z_4 Int)) Bool - (or - (not - (and - (= c c_2) - (= y y_0) - (= z z_2) - ) - ) - (not - (and - (< c_2 36) - (not (>= z_2 0)) - ) - ) - ) -) + (or (not (and (= c c_2) (= y y_0) (= z z_2))) (not (and (< c_2 36) (not (>= z_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/71_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/71_conf1.sl index 2d4e006..f385b06 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/71_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/71_conf1.sl @@ -1,114 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var y Int) -(declare-primed-var z Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) -(declare-primed-var y_0 Int) -(declare-primed-var z_0 Int) -(declare-primed-var z_1 Int) -(declare-primed-var z_2 Int) -(declare-primed-var z_3 Int) -(declare-primed-var z_4 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (y Int) (z Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (y_0 Int) (z_0 Int) (z_1 Int) (z_2 Int) (z_3 Int) (z_4 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (y Int) (z Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (y_0 Int) (z_0 Int) (z_1 Int) (z_2 Int) (z_3 Int) (z_4 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= y y_0) - (= z z_1) - (= conf_0_0 6) - (= c_1 0) - (>= y_0 0) - (>= y_0 127) - (= z_1 (* 36 y_0)) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= y y_0) (= z z_1) (= conf_0_0 6) (= c_1 0) (>= y_0 0) (>= y_0 127) (= z_1 (* 36 y_0)))) (define-fun trans-f ((c Int) (conf_0 Int) (y Int) (z Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (y_0 Int) (z_0 Int) (z_1 Int) (z_2 Int) (z_3 Int) (z_4 Int) (c! Int) (conf_0! Int) (y! Int) (z! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int) (y_0! Int) (z_0! Int) (z_1! Int) (z_2! Int) (z_3! Int) (z_4! Int)) Bool - (or - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= z_2 z) - (= c_2 c!) - (= conf_0_1 conf_0!) - (= z_2 z!) - (= c c!) - (= conf_0 conf_0!) - (= y y!) - (= z z!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= z_2 z) - (< c_2 36) - (= z_3 (+ z_2 1)) - (= conf_0_2 (+ 376 69)) - (= c_3 (+ c_2 1)) - (= conf_0_3 (+ 283 conf_0_2)) - (= c_4 c_3) - (= conf_0_4 conf_0_3) - (= z_4 z_3) - (= c_4 c!) - (= conf_0_4 conf_0!) - (= z_4 z!) - (= y y_0) - (= y! y_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= z_2 z) - (not (< c_2 36)) - (= c_4 c_2) - (= conf_0_4 conf_0_1) - (= z_4 z_2) - (= c_4 c!) - (= conf_0_4 conf_0!) - (= z_4 z!) - (= y y_0) - (= y! y_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_0_1 conf_0) (= z_2 z) (= c_2 c!) (= conf_0_1 conf_0!) (= z_2 z!) (= c c!) (= conf_0 conf_0!) (= y y!) (= z z!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= z_2 z) (< c_2 36) (= z_3 (+ z_2 1)) (= conf_0_2 (+ 376 69)) (= c_3 (+ c_2 1)) (= conf_0_3 (+ 283 conf_0_2)) (= c_4 c_3) (= conf_0_4 conf_0_3) (= z_4 z_3) (= c_4 c!) (= conf_0_4 conf_0!) (= z_4 z!) (= y y_0) (= y! y_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= z_2 z) (not (< c_2 36)) (= c_4 c_2) (= conf_0_4 conf_0_1) (= z_4 z_2) (= c_4 c!) (= conf_0_4 conf_0!) (= z_4 z!) (= y y_0) (= y! y_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (y Int) (z Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (y_0 Int) (z_0 Int) (z_1 Int) (z_2 Int) (z_3 Int) (z_4 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_1) - (= y y_0) - (= z z_2) - ) - ) - (not - (and - (< c_2 36) - (not (>= z_2 0)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_1) (= y y_0) (= z z_2))) (not (and (< c_2 36) (not (>= z_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/71_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/71_conf5.sl index e1c4770..3803306 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/71_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/71_conf5.sl @@ -1,154 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var y Int) -(declare-primed-var z Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_3_1 Int) -(declare-primed-var conf_3_2 Int) -(declare-primed-var conf_3_3 Int) -(declare-primed-var conf_3_4 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var y_0 Int) -(declare-primed-var z_0 Int) -(declare-primed-var z_1 Int) -(declare-primed-var z_2 Int) -(declare-primed-var z_3 Int) -(declare-primed-var z_4 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (y Int) (z Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_3_4 Int) (conf_4_0 Int) (y_0 Int) (z_0 Int) (z_1 Int) (z_2 Int) (z_3 Int) (z_4 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (y Int) (z Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_3_4 Int) (conf_4_0 Int) (y_0 Int) (z_0 Int) (z_1 Int) (z_2 Int) (z_3 Int) (z_4 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= y y_0) - (= z z_1) - (= conf_0_0 6) - (= conf_1_0 0) - (= conf_2_0 3) - (= conf_3_0 7) - (= conf_4_0 6) - (= c_1 0) - (>= y_0 0) - (>= y_0 127) - (= z_1 (* 36 y_0)) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= y y_0) (= z z_1) (= conf_0_0 6) (= conf_1_0 0) (= conf_2_0 3) (= conf_3_0 7) (= conf_4_0 6) (= c_1 0) (>= y_0 0) (>= y_0 127) (= z_1 (* 36 y_0)))) (define-fun trans-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (y Int) (z Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_3_4 Int) (conf_4_0 Int) (y_0 Int) (z_0 Int) (z_1 Int) (z_2 Int) (z_3 Int) (z_4 Int) (c! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (y! Int) (z! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_3_1! Int) (conf_3_2! Int) (conf_3_3! Int) (conf_3_4! Int) (conf_4_0! Int) (y_0! Int) (z_0! Int) (z_1! Int) (z_2! Int) (z_3! Int) (z_4! Int)) Bool - (or - (and - (= c_2 c) - (= conf_3_1 conf_3) - (= z_2 z) - (= c_2 c!) - (= conf_3_1 conf_3!) - (= z_2 z!) - (= c c!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= y y!) - (= z z!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_3_1 conf_3) - (= z_2 z) - (< c_2 36) - (= z_3 (+ z_2 1)) - (= conf_3_2 conf_0_0) - (= c_3 (+ c_2 1)) - (= conf_3_3 conf_2_0) - (= c_4 c_3) - (= conf_3_4 conf_3_3) - (= z_4 z_3) - (= c_4 c!) - (= conf_3_4 conf_3!) - (= z_4 z!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= y y_0) - (= y! y_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_3_1 conf_3) - (= z_2 z) - (not (< c_2 36)) - (= c_4 c_2) - (= conf_3_4 conf_3_1) - (= z_4 z_2) - (= c_4 c!) - (= conf_3_4 conf_3!) - (= z_4 z!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= y y_0) - (= y! y_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_3_1 conf_3) (= z_2 z) (= c_2 c!) (= conf_3_1 conf_3!) (= z_2 z!) (= c c!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= y y!) (= z z!) (= tmp tmp!)) (and (= c_2 c) (= conf_3_1 conf_3) (= z_2 z) (< c_2 36) (= z_3 (+ z_2 1)) (= conf_3_2 conf_0_0) (= c_3 (+ c_2 1)) (= conf_3_3 conf_2_0) (= c_4 c_3) (= conf_3_4 conf_3_3) (= z_4 z_3) (= c_4 c!) (= conf_3_4 conf_3!) (= z_4 z!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= y y_0) (= y! y_0) (= tmp tmp!)) (and (= c_2 c) (= conf_3_1 conf_3) (= z_2 z) (not (< c_2 36)) (= c_4 c_2) (= conf_3_4 conf_3_1) (= z_4 z_2) (= c_4 c!) (= conf_3_4 conf_3!) (= z_4 z!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= y y_0) (= y! y_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (y Int) (z Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_3_4 Int) (conf_4_0 Int) (y_0 Int) (z_0 Int) (z_1 Int) (z_2 Int) (z_3 Int) (z_4 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_1) - (= conf_4 conf_4_0) - (= y y_0) - (= z z_2) - ) - ) - (not - (and - (< c_2 36) - (not (>= z_2 0)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_1) (= conf_4 conf_4_0) (= y y_0) (= z z_2))) (not (and (< c_2 36) (not (>= z_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/72.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/72.c.sl index 482acc4..2c8bc44 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/72.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/72.c.sl @@ -1,94 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var y Int) -(declare-primed-var z Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var y_0 Int) -(declare-primed-var z_0 Int) -(declare-primed-var z_1 Int) -(declare-primed-var z_2 Int) -(declare-primed-var z_3 Int) -(declare-primed-var z_4 Int) - (synth-inv inv-f ((c Int) (y Int) (z Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (y_0 Int) (z_0 Int) (z_1 Int) (z_2 Int) (z_3 Int) (z_4 Int))) (define-fun pre-f ((c Int) (y Int) (z Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (y_0 Int) (z_0 Int) (z_1 Int) (z_2 Int) (z_3 Int) (z_4 Int)) Bool - (and - (= c c_1) - (= y y_0) - (= z z_1) - (= c_1 0) - (>= y_0 0) - (>= y_0 127) - (= z_1 (* 36 y_0)) - ) -) - + (and (= c c_1) (= y y_0) (= z z_1) (= c_1 0) (>= y_0 0) (>= y_0 127) (= z_1 (* 36 y_0)))) (define-fun trans-f ((c Int) (y Int) (z Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (y_0 Int) (z_0 Int) (z_1 Int) (z_2 Int) (z_3 Int) (z_4 Int) (c! Int) (y! Int) (z! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (y_0! Int) (z_0! Int) (z_1! Int) (z_2! Int) (z_3! Int) (z_4! Int)) Bool - (or - (and - (= c_2 c) - (= z_2 z) - (= c_2 c!) - (= z_2 z!) - (= c c!) - (= y y!) - (= z z!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= z_2 z) - (< c_2 36) - (= z_3 (+ z_2 1)) - (= c_3 (+ c_2 1)) - (= c_4 c_3) - (= z_4 z_3) - (= c_4 c!) - (= z_4 z!) - (= y y_0) - (= y! y_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= z_2 z) - (not (< c_2 36)) - (= c_4 c_2) - (= z_4 z_2) - (= c_4 c!) - (= z_4 z!) - (= y y_0) - (= y! y_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= z_2 z) (= c_2 c!) (= z_2 z!) (= c c!) (= y y!) (= z z!) (= tmp tmp!)) (and (= c_2 c) (= z_2 z) (< c_2 36) (= z_3 (+ z_2 1)) (= c_3 (+ c_2 1)) (= c_4 c_3) (= z_4 z_3) (= c_4 c!) (= z_4 z!) (= y y_0) (= y! y_0) (= tmp tmp!)) (and (= c_2 c) (= z_2 z) (not (< c_2 36)) (= c_4 c_2) (= z_4 z_2) (= c_4 c!) (= z_4 z!) (= y y_0) (= y! y_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (y Int) (z Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (y_0 Int) (z_0 Int) (z_1 Int) (z_2 Int) (z_3 Int) (z_4 Int)) Bool - (or - (not - (and - (= c c_2) - (= y y_0) - (= z z_2) - ) - ) - (not - (and - (< c_2 36) - (not (< z_2 4608)) - ) - ) - ) -) + (or (not (and (= c c_2) (= y y_0) (= z z_2))) (not (and (< c_2 36) (not (< z_2 4608)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/72_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/72_conf1.sl index 24c06ec..2b3b825 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/72_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/72_conf1.sl @@ -1,114 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var y Int) -(declare-primed-var z Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) -(declare-primed-var y_0 Int) -(declare-primed-var z_0 Int) -(declare-primed-var z_1 Int) -(declare-primed-var z_2 Int) -(declare-primed-var z_3 Int) -(declare-primed-var z_4 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (y Int) (z Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (y_0 Int) (z_0 Int) (z_1 Int) (z_2 Int) (z_3 Int) (z_4 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (y Int) (z Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (y_0 Int) (z_0 Int) (z_1 Int) (z_2 Int) (z_3 Int) (z_4 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= y y_0) - (= z z_1) - (= conf_0_0 6) - (= c_1 0) - (>= y_0 0) - (>= y_0 127) - (= z_1 (* 36 y_0)) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= y y_0) (= z z_1) (= conf_0_0 6) (= c_1 0) (>= y_0 0) (>= y_0 127) (= z_1 (* 36 y_0)))) (define-fun trans-f ((c Int) (conf_0 Int) (y Int) (z Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (y_0 Int) (z_0 Int) (z_1 Int) (z_2 Int) (z_3 Int) (z_4 Int) (c! Int) (conf_0! Int) (y! Int) (z! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int) (y_0! Int) (z_0! Int) (z_1! Int) (z_2! Int) (z_3! Int) (z_4! Int)) Bool - (or - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= z_2 z) - (= c_2 c!) - (= conf_0_1 conf_0!) - (= z_2 z!) - (= c c!) - (= conf_0 conf_0!) - (= y y!) - (= z z!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= z_2 z) - (< c_2 36) - (= z_3 (+ z_2 1)) - (= conf_0_2 (+ 376 69)) - (= c_3 (+ c_2 1)) - (= conf_0_3 (+ 283 conf_0_2)) - (= c_4 c_3) - (= conf_0_4 conf_0_3) - (= z_4 z_3) - (= c_4 c!) - (= conf_0_4 conf_0!) - (= z_4 z!) - (= y y_0) - (= y! y_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= z_2 z) - (not (< c_2 36)) - (= c_4 c_2) - (= conf_0_4 conf_0_1) - (= z_4 z_2) - (= c_4 c!) - (= conf_0_4 conf_0!) - (= z_4 z!) - (= y y_0) - (= y! y_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_0_1 conf_0) (= z_2 z) (= c_2 c!) (= conf_0_1 conf_0!) (= z_2 z!) (= c c!) (= conf_0 conf_0!) (= y y!) (= z z!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= z_2 z) (< c_2 36) (= z_3 (+ z_2 1)) (= conf_0_2 (+ 376 69)) (= c_3 (+ c_2 1)) (= conf_0_3 (+ 283 conf_0_2)) (= c_4 c_3) (= conf_0_4 conf_0_3) (= z_4 z_3) (= c_4 c!) (= conf_0_4 conf_0!) (= z_4 z!) (= y y_0) (= y! y_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= z_2 z) (not (< c_2 36)) (= c_4 c_2) (= conf_0_4 conf_0_1) (= z_4 z_2) (= c_4 c!) (= conf_0_4 conf_0!) (= z_4 z!) (= y y_0) (= y! y_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (y Int) (z Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (y_0 Int) (z_0 Int) (z_1 Int) (z_2 Int) (z_3 Int) (z_4 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_1) - (= y y_0) - (= z z_2) - ) - ) - (not - (and - (< c_2 36) - (not (< z_2 4608)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_1) (= y y_0) (= z z_2))) (not (and (< c_2 36) (not (< z_2 4608)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/72_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/72_conf5.sl index 1bc20f2..23a8b16 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/72_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/72_conf5.sl @@ -1,154 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var y Int) -(declare-primed-var z Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_3_1 Int) -(declare-primed-var conf_3_2 Int) -(declare-primed-var conf_3_3 Int) -(declare-primed-var conf_3_4 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var y_0 Int) -(declare-primed-var z_0 Int) -(declare-primed-var z_1 Int) -(declare-primed-var z_2 Int) -(declare-primed-var z_3 Int) -(declare-primed-var z_4 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (y Int) (z Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_3_4 Int) (conf_4_0 Int) (y_0 Int) (z_0 Int) (z_1 Int) (z_2 Int) (z_3 Int) (z_4 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (y Int) (z Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_3_4 Int) (conf_4_0 Int) (y_0 Int) (z_0 Int) (z_1 Int) (z_2 Int) (z_3 Int) (z_4 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= y y_0) - (= z z_1) - (= conf_0_0 6) - (= conf_1_0 0) - (= conf_2_0 3) - (= conf_3_0 7) - (= conf_4_0 6) - (= c_1 0) - (>= y_0 0) - (>= y_0 127) - (= z_1 (* 36 y_0)) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= y y_0) (= z z_1) (= conf_0_0 6) (= conf_1_0 0) (= conf_2_0 3) (= conf_3_0 7) (= conf_4_0 6) (= c_1 0) (>= y_0 0) (>= y_0 127) (= z_1 (* 36 y_0)))) (define-fun trans-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (y Int) (z Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_3_4 Int) (conf_4_0 Int) (y_0 Int) (z_0 Int) (z_1 Int) (z_2 Int) (z_3 Int) (z_4 Int) (c! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (y! Int) (z! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_3_1! Int) (conf_3_2! Int) (conf_3_3! Int) (conf_3_4! Int) (conf_4_0! Int) (y_0! Int) (z_0! Int) (z_1! Int) (z_2! Int) (z_3! Int) (z_4! Int)) Bool - (or - (and - (= c_2 c) - (= conf_3_1 conf_3) - (= z_2 z) - (= c_2 c!) - (= conf_3_1 conf_3!) - (= z_2 z!) - (= c c!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= y y!) - (= z z!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_3_1 conf_3) - (= z_2 z) - (< c_2 36) - (= z_3 (+ z_2 1)) - (= conf_3_2 conf_0_0) - (= c_3 (+ c_2 1)) - (= conf_3_3 conf_2_0) - (= c_4 c_3) - (= conf_3_4 conf_3_3) - (= z_4 z_3) - (= c_4 c!) - (= conf_3_4 conf_3!) - (= z_4 z!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= y y_0) - (= y! y_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_3_1 conf_3) - (= z_2 z) - (not (< c_2 36)) - (= c_4 c_2) - (= conf_3_4 conf_3_1) - (= z_4 z_2) - (= c_4 c!) - (= conf_3_4 conf_3!) - (= z_4 z!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= y y_0) - (= y! y_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_3_1 conf_3) (= z_2 z) (= c_2 c!) (= conf_3_1 conf_3!) (= z_2 z!) (= c c!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= y y!) (= z z!) (= tmp tmp!)) (and (= c_2 c) (= conf_3_1 conf_3) (= z_2 z) (< c_2 36) (= z_3 (+ z_2 1)) (= conf_3_2 conf_0_0) (= c_3 (+ c_2 1)) (= conf_3_3 conf_2_0) (= c_4 c_3) (= conf_3_4 conf_3_3) (= z_4 z_3) (= c_4 c!) (= conf_3_4 conf_3!) (= z_4 z!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= y y_0) (= y! y_0) (= tmp tmp!)) (and (= c_2 c) (= conf_3_1 conf_3) (= z_2 z) (not (< c_2 36)) (= c_4 c_2) (= conf_3_4 conf_3_1) (= z_4 z_2) (= c_4 c!) (= conf_3_4 conf_3!) (= z_4 z!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= y y_0) (= y! y_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (y Int) (z Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_3_4 Int) (conf_4_0 Int) (y_0 Int) (z_0 Int) (z_1 Int) (z_2 Int) (z_3 Int) (z_4 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_1) - (= conf_4 conf_4_0) - (= y y_0) - (= z z_2) - ) - ) - (not - (and - (< c_2 36) - (not (< z_2 4608)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_1) (= conf_4 conf_4_0) (= y y_0) (= z z_2))) (not (and (< c_2 36) (not (< z_2 4608)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/73.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/73.c.sl index 592e1b7..abcc189 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/73.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/73.c.sl @@ -1,95 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var y Int) -(declare-primed-var z Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var y_0 Int) -(declare-primed-var z_0 Int) -(declare-primed-var z_1 Int) -(declare-primed-var z_2 Int) -(declare-primed-var z_3 Int) -(declare-primed-var z_4 Int) - (synth-inv inv-f ((c Int) (y Int) (z Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (y_0 Int) (z_0 Int) (z_1 Int) (z_2 Int) (z_3 Int) (z_4 Int))) (define-fun pre-f ((c Int) (y Int) (z Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (y_0 Int) (z_0 Int) (z_1 Int) (z_2 Int) (z_3 Int) (z_4 Int)) Bool - (and - (= c c_1) - (= y y_0) - (= z z_1) - (= c_1 0) - (>= y_0 0) - (>= y_0 127) - (= z_1 (* 36 y_0)) - ) -) - + (and (= c c_1) (= y y_0) (= z z_1) (= c_1 0) (>= y_0 0) (>= y_0 127) (= z_1 (* 36 y_0)))) (define-fun trans-f ((c Int) (y Int) (z Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (y_0 Int) (z_0 Int) (z_1 Int) (z_2 Int) (z_3 Int) (z_4 Int) (c! Int) (y! Int) (z! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (y_0! Int) (z_0! Int) (z_1! Int) (z_2! Int) (z_3! Int) (z_4! Int)) Bool - (or - (and - (= c_2 c) - (= z_2 z) - (= c_2 c!) - (= z_2 z!) - (= c c!) - (= y y!) - (= z z!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= z_2 z) - (< c_2 36) - (= z_3 (+ z_2 1)) - (= c_3 (+ c_2 1)) - (= c_4 c_3) - (= z_4 z_3) - (= c_4 c!) - (= z_4 z!) - (= y y_0) - (= y! y_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= z_2 z) - (not (< c_2 36)) - (= c_4 c_2) - (= z_4 z_2) - (= c_4 c!) - (= z_4 z!) - (= y y_0) - (= y! y_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= z_2 z) (= c_2 c!) (= z_2 z!) (= c c!) (= y y!) (= z z!) (= tmp tmp!)) (and (= c_2 c) (= z_2 z) (< c_2 36) (= z_3 (+ z_2 1)) (= c_3 (+ c_2 1)) (= c_4 c_3) (= z_4 z_3) (= c_4 c!) (= z_4 z!) (= y y_0) (= y! y_0) (= tmp tmp!)) (and (= c_2 c) (= z_2 z) (not (< c_2 36)) (= c_4 c_2) (= z_4 z_2) (= c_4 c!) (= z_4 z!) (= y y_0) (= y! y_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (y Int) (z Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (y_0 Int) (z_0 Int) (z_1 Int) (z_2 Int) (z_3 Int) (z_4 Int)) Bool - (or - (not - (and - (= c c_2) - (= y y_0) - (= z z_2) - ) - ) - (not - (and - (< z_2 0) - (>= z_2 4608) - (not (>= c_2 36)) - ) - ) - ) -) + (or (not (and (= c c_2) (= y y_0) (= z z_2))) (not (and (< z_2 0) (>= z_2 4608) (not (>= c_2 36)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/73_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/73_conf1.sl index fb16d46..ea667bc 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/73_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/73_conf1.sl @@ -1,115 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var y Int) -(declare-primed-var z Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) -(declare-primed-var y_0 Int) -(declare-primed-var z_0 Int) -(declare-primed-var z_1 Int) -(declare-primed-var z_2 Int) -(declare-primed-var z_3 Int) -(declare-primed-var z_4 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (y Int) (z Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (y_0 Int) (z_0 Int) (z_1 Int) (z_2 Int) (z_3 Int) (z_4 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (y Int) (z Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (y_0 Int) (z_0 Int) (z_1 Int) (z_2 Int) (z_3 Int) (z_4 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= y y_0) - (= z z_1) - (= conf_0_0 3) - (= c_1 0) - (>= y_0 0) - (>= y_0 127) - (= z_1 (* 36 y_0)) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= y y_0) (= z z_1) (= conf_0_0 3) (= c_1 0) (>= y_0 0) (>= y_0 127) (= z_1 (* 36 y_0)))) (define-fun trans-f ((c Int) (conf_0 Int) (y Int) (z Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (y_0 Int) (z_0 Int) (z_1 Int) (z_2 Int) (z_3 Int) (z_4 Int) (c! Int) (conf_0! Int) (y! Int) (z! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int) (y_0! Int) (z_0! Int) (z_1! Int) (z_2! Int) (z_3! Int) (z_4! Int)) Bool - (or - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= z_2 z) - (= c_2 c!) - (= conf_0_1 conf_0!) - (= z_2 z!) - (= c c!) - (= conf_0 conf_0!) - (= y y!) - (= z z!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= z_2 z) - (< c_2 36) - (= z_3 (+ z_2 1)) - (= conf_0_2 conf_0_1) - (= c_3 (+ c_2 1)) - (= conf_0_3 (+ conf_0_2 512)) - (= c_4 c_3) - (= conf_0_4 conf_0_3) - (= z_4 z_3) - (= c_4 c!) - (= conf_0_4 conf_0!) - (= z_4 z!) - (= y y_0) - (= y! y_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_0_1 conf_0) - (= z_2 z) - (not (< c_2 36)) - (= c_4 c_2) - (= conf_0_4 conf_0_1) - (= z_4 z_2) - (= c_4 c!) - (= conf_0_4 conf_0!) - (= z_4 z!) - (= y y_0) - (= y! y_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_0_1 conf_0) (= z_2 z) (= c_2 c!) (= conf_0_1 conf_0!) (= z_2 z!) (= c c!) (= conf_0 conf_0!) (= y y!) (= z z!) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= z_2 z) (< c_2 36) (= z_3 (+ z_2 1)) (= conf_0_2 conf_0_1) (= c_3 (+ c_2 1)) (= conf_0_3 (+ conf_0_2 512)) (= c_4 c_3) (= conf_0_4 conf_0_3) (= z_4 z_3) (= c_4 c!) (= conf_0_4 conf_0!) (= z_4 z!) (= y y_0) (= y! y_0) (= tmp tmp!)) (and (= c_2 c) (= conf_0_1 conf_0) (= z_2 z) (not (< c_2 36)) (= c_4 c_2) (= conf_0_4 conf_0_1) (= z_4 z_2) (= c_4 c!) (= conf_0_4 conf_0!) (= z_4 z!) (= y y_0) (= y! y_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (y Int) (z Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (y_0 Int) (z_0 Int) (z_1 Int) (z_2 Int) (z_3 Int) (z_4 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_1) - (= y y_0) - (= z z_2) - ) - ) - (not - (and - (< z_2 0) - (>= z_2 4608) - (not (>= c_2 36)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_1) (= y y_0) (= z z_2))) (not (and (< z_2 0) (>= z_2 4608) (not (>= c_2 36)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/73_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/73_conf5.sl index e629e90..3e8ea89 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/73_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/73_conf5.sl @@ -1,161 +1,15 @@ (set-logic LIA) -(declare-primed-var c Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var y Int) -(declare-primed-var z Int) -(declare-primed-var tmp Int) - -(declare-primed-var c_0 Int) -(declare-primed-var c_1 Int) -(declare-primed-var c_2 Int) -(declare-primed-var c_3 Int) -(declare-primed-var c_4 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_1_1 Int) -(declare-primed-var conf_1_2 Int) -(declare-primed-var conf_1_3 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_3_1 Int) -(declare-primed-var conf_3_2 Int) -(declare-primed-var conf_3_3 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var y_0 Int) -(declare-primed-var z_0 Int) -(declare-primed-var z_1 Int) -(declare-primed-var z_2 Int) -(declare-primed-var z_3 Int) -(declare-primed-var z_4 Int) - (synth-inv inv-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (y Int) (z Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (y_0 Int) (z_0 Int) (z_1 Int) (z_2 Int) (z_3 Int) (z_4 Int))) (define-fun pre-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (y Int) (z Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (y_0 Int) (z_0 Int) (z_1 Int) (z_2 Int) (z_3 Int) (z_4 Int)) Bool - (and - (= c c_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= y y_0) - (= z z_1) - (= conf_0_0 4) - (= conf_1_0 7) - (= conf_2_0 6) - (= conf_3_0 5) - (= conf_4_0 3) - (= c_1 0) - (>= y_0 0) - (>= y_0 127) - (= z_1 (* 36 y_0)) - ) -) - + (and (= c c_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= y y_0) (= z z_1) (= conf_0_0 4) (= conf_1_0 7) (= conf_2_0 6) (= conf_3_0 5) (= conf_4_0 3) (= c_1 0) (>= y_0 0) (>= y_0 127) (= z_1 (* 36 y_0)))) (define-fun trans-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (y Int) (z Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (y_0 Int) (z_0 Int) (z_1 Int) (z_2 Int) (z_3 Int) (z_4 Int) (c! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (y! Int) (z! Int) (tmp! Int) (c_0! Int) (c_1! Int) (c_2! Int) (c_3! Int) (c_4! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_1_1! Int) (conf_1_2! Int) (conf_1_3! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_3_1! Int) (conf_3_2! Int) (conf_3_3! Int) (conf_4_0! Int) (y_0! Int) (z_0! Int) (z_1! Int) (z_2! Int) (z_3! Int) (z_4! Int)) Bool - (or - (and - (= c_2 c) - (= conf_1_1 conf_1) - (= conf_3_1 conf_3) - (= z_2 z) - (= c_2 c!) - (= conf_1_1 conf_1!) - (= conf_3_1 conf_3!) - (= z_2 z!) - (= c c!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= y y!) - (= z z!) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_1_1 conf_1) - (= conf_3_1 conf_3) - (= z_2 z) - (< c_2 36) - (= z_3 (+ z_2 1)) - (= conf_1_2 (+ conf_0_0 512)) - (= c_3 (+ c_2 1)) - (= conf_3_2 (- conf_3_1 conf_2_0)) - (= c_4 c_3) - (= conf_1_3 conf_1_2) - (= conf_3_3 conf_3_2) - (= z_4 z_3) - (= c_4 c!) - (= conf_1_3 conf_1!) - (= conf_3_3 conf_3!) - (= z_4 z!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= y y_0) - (= y! y_0) - (= tmp tmp!) - ) - (and - (= c_2 c) - (= conf_1_1 conf_1) - (= conf_3_1 conf_3) - (= z_2 z) - (not (< c_2 36)) - (= c_4 c_2) - (= conf_1_3 conf_1_1) - (= conf_3_3 conf_3_1) - (= z_4 z_2) - (= c_4 c!) - (= conf_1_3 conf_1!) - (= conf_3_3 conf_3!) - (= z_4 z!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= y y_0) - (= y! y_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= c_2 c) (= conf_1_1 conf_1) (= conf_3_1 conf_3) (= z_2 z) (= c_2 c!) (= conf_1_1 conf_1!) (= conf_3_1 conf_3!) (= z_2 z!) (= c c!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= y y!) (= z z!) (= tmp tmp!)) (and (= c_2 c) (= conf_1_1 conf_1) (= conf_3_1 conf_3) (= z_2 z) (< c_2 36) (= z_3 (+ z_2 1)) (= conf_1_2 (+ conf_0_0 512)) (= c_3 (+ c_2 1)) (= conf_3_2 (- conf_3_1 conf_2_0)) (= c_4 c_3) (= conf_1_3 conf_1_2) (= conf_3_3 conf_3_2) (= z_4 z_3) (= c_4 c!) (= conf_1_3 conf_1!) (= conf_3_3 conf_3!) (= z_4 z!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= y y_0) (= y! y_0) (= tmp tmp!)) (and (= c_2 c) (= conf_1_1 conf_1) (= conf_3_1 conf_3) (= z_2 z) (not (< c_2 36)) (= c_4 c_2) (= conf_1_3 conf_1_1) (= conf_3_3 conf_3_1) (= z_4 z_2) (= c_4 c!) (= conf_1_3 conf_1!) (= conf_3_3 conf_3!) (= z_4 z!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= y y_0) (= y! y_0) (= tmp tmp!)))) (define-fun post-f ((c Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (y Int) (z Int) (tmp Int) (c_0 Int) (c_1 Int) (c_2 Int) (c_3 Int) (c_4 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (y_0 Int) (z_0 Int) (z_1 Int) (z_2 Int) (z_3 Int) (z_4 Int)) Bool - (or - (not - (and - (= c c_2) - (= conf_0 conf_0_0) - (= conf_1 conf_1_1) - (= conf_2 conf_2_0) - (= conf_3 conf_3_1) - (= conf_4 conf_4_0) - (= y y_0) - (= z z_2) - ) - ) - (not - (and - (< z_2 0) - (>= z_2 4608) - (not (>= c_2 36)) - ) - ) - ) -) + (or (not (and (= c c_2) (= conf_0 conf_0_0) (= conf_1 conf_1_1) (= conf_2 conf_2_0) (= conf_3 conf_3_1) (= conf_4 conf_4_0) (= y y_0) (= z z_2))) (not (and (< z_2 0) (>= z_2 4608) (not (>= c_2 36)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/77.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/77.c.sl index 6adfca9..ec74606 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/77.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/77.c.sl @@ -1,85 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var tmp Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var i_4 Int) -(declare-primed-var x_0 Int) -(declare-primed-var y_0 Int) - (synth-inv inv-f ((i Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (x_0 Int) (y_0 Int))) (define-fun pre-f ((i Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (x_0 Int) (y_0 Int)) Bool - (and - (= i i_1) - (= x x_0) - (= y y_0) - (= i_1 0) - (>= x_0 0) - (>= y_0 0) - (>= x_0 y_0) - ) -) - + (and (= i i_1) (= x x_0) (= y y_0) (= i_1 0) (>= x_0 0) (>= y_0 0) (>= x_0 y_0))) (define-fun trans-f ((i Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (x_0 Int) (y_0 Int) (i! Int) (x! Int) (y! Int) (tmp! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (i_4! Int) (x_0! Int) (y_0! Int)) Bool - (or - (and - (= i_2 i) - (= i_2 i!) - (= i i!) - (= x x!) - (= y y!) - (= tmp tmp!) - ) - (and - (= i_2 i) - (< i_2 y_0) - (= i_3 (+ i_2 1)) - (= i_4 i_3) - (= i_4 i!) - (= x x_0) - (= x! x_0) - (= y y_0) - (= y! y_0) - (= tmp tmp!) - ) - (and - (= i_2 i) - (not (< i_2 y_0)) - (= i_4 i_2) - (= i_4 i!) - (= x x_0) - (= x! x_0) - (= y y_0) - (= y! y_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= i_2 i) (= i_2 i!) (= i i!) (= x x!) (= y y!) (= tmp tmp!)) (and (= i_2 i) (< i_2 y_0) (= i_3 (+ i_2 1)) (= i_4 i_3) (= i_4 i!) (= x x_0) (= x! x_0) (= y y_0) (= y! y_0) (= tmp tmp!)) (and (= i_2 i) (not (< i_2 y_0)) (= i_4 i_2) (= i_4 i!) (= x x_0) (= x! x_0) (= y y_0) (= y! y_0) (= tmp tmp!)))) (define-fun post-f ((i Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (x_0 Int) (y_0 Int)) Bool - (or - (not - (and - (= i i_2) - (= x x_0) - (= y y_0) - ) - ) - (not - (and - (< i_2 y_0) - (not (< i_2 x_0)) - ) - ) - ) -) + (or (not (and (= i i_2) (= x x_0) (= y y_0))) (not (and (< i_2 y_0) (not (< i_2 x_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/77_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/77_conf1.sl index 396a972..30b18b0 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/77_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/77_conf1.sl @@ -1,103 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var conf_0 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var tmp Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var i_4 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var x_0 Int) -(declare-primed-var y_0 Int) - (synth-inv inv-f ((i Int) (conf_0 Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (y_0 Int))) (define-fun pre-f ((i Int) (conf_0 Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (y_0 Int)) Bool - (and - (= i i_1) - (= conf_0 conf_0_0) - (= x x_0) - (= y y_0) - (= conf_0_0 2) - (= i_1 0) - (>= x_0 0) - (>= y_0 0) - (>= x_0 y_0) - ) -) - + (and (= i i_1) (= conf_0 conf_0_0) (= x x_0) (= y y_0) (= conf_0_0 2) (= i_1 0) (>= x_0 0) (>= y_0 0) (>= x_0 y_0))) (define-fun trans-f ((i Int) (conf_0 Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (y_0 Int) (i! Int) (conf_0! Int) (x! Int) (y! Int) (tmp! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (i_4! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (x_0! Int) (y_0! Int)) Bool - (or - (and - (= i_2 i) - (= conf_0_1 conf_0) - (= i_2 i!) - (= conf_0_1 conf_0!) - (= i i!) - (= conf_0 conf_0!) - (= x x!) - (= y y!) - (= tmp tmp!) - ) - (and - (= i_2 i) - (= conf_0_1 conf_0) - (< i_2 y_0) - (= i_3 (+ i_2 1)) - (= conf_0_2 (- 161 conf_0_1)) - (= i_4 i_3) - (= conf_0_3 conf_0_2) - (= i_4 i!) - (= conf_0_3 conf_0!) - (= x x_0) - (= x! x_0) - (= y y_0) - (= y! y_0) - (= tmp tmp!) - ) - (and - (= i_2 i) - (= conf_0_1 conf_0) - (not (< i_2 y_0)) - (= i_4 i_2) - (= conf_0_3 conf_0_1) - (= i_4 i!) - (= conf_0_3 conf_0!) - (= x x_0) - (= x! x_0) - (= y y_0) - (= y! y_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= i_2 i) (= conf_0_1 conf_0) (= i_2 i!) (= conf_0_1 conf_0!) (= i i!) (= conf_0 conf_0!) (= x x!) (= y y!) (= tmp tmp!)) (and (= i_2 i) (= conf_0_1 conf_0) (< i_2 y_0) (= i_3 (+ i_2 1)) (= conf_0_2 (- 161 conf_0_1)) (= i_4 i_3) (= conf_0_3 conf_0_2) (= i_4 i!) (= conf_0_3 conf_0!) (= x x_0) (= x! x_0) (= y y_0) (= y! y_0) (= tmp tmp!)) (and (= i_2 i) (= conf_0_1 conf_0) (not (< i_2 y_0)) (= i_4 i_2) (= conf_0_3 conf_0_1) (= i_4 i!) (= conf_0_3 conf_0!) (= x x_0) (= x! x_0) (= y y_0) (= y! y_0) (= tmp tmp!)))) (define-fun post-f ((i Int) (conf_0 Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (y_0 Int)) Bool - (or - (not - (and - (= i i_2) - (= conf_0 conf_0_1) - (= x x_0) - (= y y_0) - ) - ) - (not - (and - (< i_2 y_0) - (not (< i_2 x_0)) - ) - ) - ) -) + (or (not (and (= i i_2) (= conf_0 conf_0_1) (= x x_0) (= y y_0))) (not (and (< i_2 y_0) (not (< i_2 x_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/77_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/77_conf5.sl index 268954f..930395f 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/77_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/77_conf5.sl @@ -1,143 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var tmp Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var i_4 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_1_1 Int) -(declare-primed-var conf_1_2 Int) -(declare-primed-var conf_1_3 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var y_0 Int) - (synth-inv inv-f ((i Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (x_0 Int) (y_0 Int))) (define-fun pre-f ((i Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (x_0 Int) (y_0 Int)) Bool - (and - (= i i_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_0) - (= y y_0) - (= conf_0_0 1) - (= conf_1_0 6) - (= conf_2_0 5) - (= conf_3_0 1) - (= conf_4_0 2) - (= i_1 0) - (>= x_0 0) - (>= y_0 0) - (>= x_0 y_0) - ) -) - + (and (= i i_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_0) (= y y_0) (= conf_0_0 1) (= conf_1_0 6) (= conf_2_0 5) (= conf_3_0 1) (= conf_4_0 2) (= i_1 0) (>= x_0 0) (>= y_0 0) (>= x_0 y_0))) (define-fun trans-f ((i Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (x_0 Int) (y_0 Int) (i! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (x! Int) (y! Int) (tmp! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (i_4! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_1_1! Int) (conf_1_2! Int) (conf_1_3! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_4_0! Int) (x_0! Int) (y_0! Int)) Bool - (or - (and - (= i_2 i) - (= conf_1_1 conf_1) - (= i_2 i!) - (= conf_1_1 conf_1!) - (= i i!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= x x!) - (= y y!) - (= tmp tmp!) - ) - (and - (= i_2 i) - (= conf_1_1 conf_1) - (< i_2 y_0) - (= i_3 (+ i_2 1)) - (= conf_1_2 (- conf_2_0 conf_4_0)) - (= i_4 i_3) - (= conf_1_3 conf_1_2) - (= i_4 i!) - (= conf_1_3 conf_1!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= x x_0) - (= x! x_0) - (= y y_0) - (= y! y_0) - (= tmp tmp!) - ) - (and - (= i_2 i) - (= conf_1_1 conf_1) - (not (< i_2 y_0)) - (= i_4 i_2) - (= conf_1_3 conf_1_1) - (= i_4 i!) - (= conf_1_3 conf_1!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= x x_0) - (= x! x_0) - (= y y_0) - (= y! y_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= i_2 i) (= conf_1_1 conf_1) (= i_2 i!) (= conf_1_1 conf_1!) (= i i!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= x x!) (= y y!) (= tmp tmp!)) (and (= i_2 i) (= conf_1_1 conf_1) (< i_2 y_0) (= i_3 (+ i_2 1)) (= conf_1_2 (- conf_2_0 conf_4_0)) (= i_4 i_3) (= conf_1_3 conf_1_2) (= i_4 i!) (= conf_1_3 conf_1!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= x x_0) (= x! x_0) (= y y_0) (= y! y_0) (= tmp tmp!)) (and (= i_2 i) (= conf_1_1 conf_1) (not (< i_2 y_0)) (= i_4 i_2) (= conf_1_3 conf_1_1) (= i_4 i!) (= conf_1_3 conf_1!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= x x_0) (= x! x_0) (= y y_0) (= y! y_0) (= tmp tmp!)))) (define-fun post-f ((i Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (x_0 Int) (y_0 Int)) Bool - (or - (not - (and - (= i i_2) - (= conf_0 conf_0_0) - (= conf_1 conf_1_1) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_0) - (= y y_0) - ) - ) - (not - (and - (< i_2 y_0) - (not (< i_2 x_0)) - ) - ) - ) -) + (or (not (and (= i i_2) (= conf_0 conf_0_0) (= conf_1 conf_1_1) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_0) (= y y_0))) (not (and (< i_2 y_0) (not (< i_2 x_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/78.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/78.c.sl index 4f19393..b50b379 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/78.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/78.c.sl @@ -1,85 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var tmp Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var i_4 Int) -(declare-primed-var x_0 Int) -(declare-primed-var y_0 Int) - (synth-inv inv-f ((i Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (x_0 Int) (y_0 Int))) (define-fun pre-f ((i Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (x_0 Int) (y_0 Int)) Bool - (and - (= i i_1) - (= x x_0) - (= y y_0) - (= i_1 0) - (>= x_0 0) - (>= y_0 0) - (>= x_0 y_0) - ) -) - + (and (= i i_1) (= x x_0) (= y y_0) (= i_1 0) (>= x_0 0) (>= y_0 0) (>= x_0 y_0))) (define-fun trans-f ((i Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (x_0 Int) (y_0 Int) (i! Int) (x! Int) (y! Int) (tmp! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (i_4! Int) (x_0! Int) (y_0! Int)) Bool - (or - (and - (= i_2 i) - (= i_2 i!) - (= i i!) - (= x x!) - (= y y!) - (= tmp tmp!) - ) - (and - (= i_2 i) - (< i_2 y_0) - (= i_3 (+ i_2 1)) - (= i_4 i_3) - (= i_4 i!) - (= x x_0) - (= x! x_0) - (= y y_0) - (= y! y_0) - (= tmp tmp!) - ) - (and - (= i_2 i) - (not (< i_2 y_0)) - (= i_4 i_2) - (= i_4 i!) - (= x x_0) - (= x! x_0) - (= y y_0) - (= y! y_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= i_2 i) (= i_2 i!) (= i i!) (= x x!) (= y y!) (= tmp tmp!)) (and (= i_2 i) (< i_2 y_0) (= i_3 (+ i_2 1)) (= i_4 i_3) (= i_4 i!) (= x x_0) (= x! x_0) (= y y_0) (= y! y_0) (= tmp tmp!)) (and (= i_2 i) (not (< i_2 y_0)) (= i_4 i_2) (= i_4 i!) (= x x_0) (= x! x_0) (= y y_0) (= y! y_0) (= tmp tmp!)))) (define-fun post-f ((i Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (x_0 Int) (y_0 Int)) Bool - (or - (not - (and - (= i i_2) - (= x x_0) - (= y y_0) - ) - ) - (not - (and - (< i_2 y_0) - (not (<= 0 i_2)) - ) - ) - ) -) + (or (not (and (= i i_2) (= x x_0) (= y y_0))) (not (and (< i_2 y_0) (not (<= 0 i_2)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/78_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/78_conf1.sl index a10b10f..585b753 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/78_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/78_conf1.sl @@ -1,103 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var conf_0 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var tmp Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var i_4 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var x_0 Int) -(declare-primed-var y_0 Int) - (synth-inv inv-f ((i Int) (conf_0 Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (y_0 Int))) (define-fun pre-f ((i Int) (conf_0 Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (y_0 Int)) Bool - (and - (= i i_1) - (= conf_0 conf_0_0) - (= x x_0) - (= y y_0) - (= conf_0_0 2) - (= i_1 0) - (>= x_0 0) - (>= y_0 0) - (>= x_0 y_0) - ) -) - + (and (= i i_1) (= conf_0 conf_0_0) (= x x_0) (= y y_0) (= conf_0_0 2) (= i_1 0) (>= x_0 0) (>= y_0 0) (>= x_0 y_0))) (define-fun trans-f ((i Int) (conf_0 Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (y_0 Int) (i! Int) (conf_0! Int) (x! Int) (y! Int) (tmp! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (i_4! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (x_0! Int) (y_0! Int)) Bool - (or - (and - (= i_2 i) - (= conf_0_1 conf_0) - (= i_2 i!) - (= conf_0_1 conf_0!) - (= i i!) - (= conf_0 conf_0!) - (= x x!) - (= y y!) - (= tmp tmp!) - ) - (and - (= i_2 i) - (= conf_0_1 conf_0) - (< i_2 y_0) - (= i_3 (+ i_2 1)) - (= conf_0_2 (- 161 conf_0_1)) - (= i_4 i_3) - (= conf_0_3 conf_0_2) - (= i_4 i!) - (= conf_0_3 conf_0!) - (= x x_0) - (= x! x_0) - (= y y_0) - (= y! y_0) - (= tmp tmp!) - ) - (and - (= i_2 i) - (= conf_0_1 conf_0) - (not (< i_2 y_0)) - (= i_4 i_2) - (= conf_0_3 conf_0_1) - (= i_4 i!) - (= conf_0_3 conf_0!) - (= x x_0) - (= x! x_0) - (= y y_0) - (= y! y_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= i_2 i) (= conf_0_1 conf_0) (= i_2 i!) (= conf_0_1 conf_0!) (= i i!) (= conf_0 conf_0!) (= x x!) (= y y!) (= tmp tmp!)) (and (= i_2 i) (= conf_0_1 conf_0) (< i_2 y_0) (= i_3 (+ i_2 1)) (= conf_0_2 (- 161 conf_0_1)) (= i_4 i_3) (= conf_0_3 conf_0_2) (= i_4 i!) (= conf_0_3 conf_0!) (= x x_0) (= x! x_0) (= y y_0) (= y! y_0) (= tmp tmp!)) (and (= i_2 i) (= conf_0_1 conf_0) (not (< i_2 y_0)) (= i_4 i_2) (= conf_0_3 conf_0_1) (= i_4 i!) (= conf_0_3 conf_0!) (= x x_0) (= x! x_0) (= y y_0) (= y! y_0) (= tmp tmp!)))) (define-fun post-f ((i Int) (conf_0 Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (y_0 Int)) Bool - (or - (not - (and - (= i i_2) - (= conf_0 conf_0_1) - (= x x_0) - (= y y_0) - ) - ) - (not - (and - (< i_2 y_0) - (not (<= 0 i_2)) - ) - ) - ) -) + (or (not (and (= i i_2) (= conf_0 conf_0_1) (= x x_0) (= y y_0))) (not (and (< i_2 y_0) (not (<= 0 i_2)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/78_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/78_conf5.sl index a13ac4f..569e100 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/78_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/78_conf5.sl @@ -1,143 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var tmp Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var i_4 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_1_1 Int) -(declare-primed-var conf_1_2 Int) -(declare-primed-var conf_1_3 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var y_0 Int) - (synth-inv inv-f ((i Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (x_0 Int) (y_0 Int))) (define-fun pre-f ((i Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (x_0 Int) (y_0 Int)) Bool - (and - (= i i_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_0) - (= y y_0) - (= conf_0_0 1) - (= conf_1_0 6) - (= conf_2_0 5) - (= conf_3_0 1) - (= conf_4_0 2) - (= i_1 0) - (>= x_0 0) - (>= y_0 0) - (>= x_0 y_0) - ) -) - + (and (= i i_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_0) (= y y_0) (= conf_0_0 1) (= conf_1_0 6) (= conf_2_0 5) (= conf_3_0 1) (= conf_4_0 2) (= i_1 0) (>= x_0 0) (>= y_0 0) (>= x_0 y_0))) (define-fun trans-f ((i Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (x_0 Int) (y_0 Int) (i! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (x! Int) (y! Int) (tmp! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (i_4! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_1_1! Int) (conf_1_2! Int) (conf_1_3! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_4_0! Int) (x_0! Int) (y_0! Int)) Bool - (or - (and - (= i_2 i) - (= conf_1_1 conf_1) - (= i_2 i!) - (= conf_1_1 conf_1!) - (= i i!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= x x!) - (= y y!) - (= tmp tmp!) - ) - (and - (= i_2 i) - (= conf_1_1 conf_1) - (< i_2 y_0) - (= i_3 (+ i_2 1)) - (= conf_1_2 (- conf_2_0 conf_4_0)) - (= i_4 i_3) - (= conf_1_3 conf_1_2) - (= i_4 i!) - (= conf_1_3 conf_1!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= x x_0) - (= x! x_0) - (= y y_0) - (= y! y_0) - (= tmp tmp!) - ) - (and - (= i_2 i) - (= conf_1_1 conf_1) - (not (< i_2 y_0)) - (= i_4 i_2) - (= conf_1_3 conf_1_1) - (= i_4 i!) - (= conf_1_3 conf_1!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= x x_0) - (= x! x_0) - (= y y_0) - (= y! y_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= i_2 i) (= conf_1_1 conf_1) (= i_2 i!) (= conf_1_1 conf_1!) (= i i!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= x x!) (= y y!) (= tmp tmp!)) (and (= i_2 i) (= conf_1_1 conf_1) (< i_2 y_0) (= i_3 (+ i_2 1)) (= conf_1_2 (- conf_2_0 conf_4_0)) (= i_4 i_3) (= conf_1_3 conf_1_2) (= i_4 i!) (= conf_1_3 conf_1!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= x x_0) (= x! x_0) (= y y_0) (= y! y_0) (= tmp tmp!)) (and (= i_2 i) (= conf_1_1 conf_1) (not (< i_2 y_0)) (= i_4 i_2) (= conf_1_3 conf_1_1) (= i_4 i!) (= conf_1_3 conf_1!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= x x_0) (= x! x_0) (= y y_0) (= y! y_0) (= tmp tmp!)))) (define-fun post-f ((i Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (x_0 Int) (y_0 Int)) Bool - (or - (not - (and - (= i i_2) - (= conf_0 conf_0_0) - (= conf_1 conf_1_1) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_0) - (= y y_0) - ) - ) - (not - (and - (< i_2 y_0) - (not (<= 0 i_2)) - ) - ) - ) -) + (or (not (and (= i i_2) (= conf_0 conf_0_0) (= conf_1 conf_1_1) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_0) (= y y_0))) (not (and (< i_2 y_0) (not (<= 0 i_2)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/79.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/79.c.sl index eee6d03..ca596d4 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/79.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/79.c.sl @@ -1,86 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var tmp Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var i_4 Int) -(declare-primed-var x_0 Int) -(declare-primed-var y_0 Int) - (synth-inv inv-f ((i Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (x_0 Int) (y_0 Int))) (define-fun pre-f ((i Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (x_0 Int) (y_0 Int)) Bool - (and - (= i i_1) - (= x x_0) - (= y y_0) - (= i_1 0) - (>= x_0 0) - (>= y_0 0) - (>= x_0 y_0) - ) -) - + (and (= i i_1) (= x x_0) (= y y_0) (= i_1 0) (>= x_0 0) (>= y_0 0) (>= x_0 y_0))) (define-fun trans-f ((i Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (x_0 Int) (y_0 Int) (i! Int) (x! Int) (y! Int) (tmp! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (i_4! Int) (x_0! Int) (y_0! Int)) Bool - (or - (and - (= i_2 i) - (= i_2 i!) - (= i i!) - (= x x!) - (= y y!) - (= tmp tmp!) - ) - (and - (= i_2 i) - (< i_2 y_0) - (= i_3 (+ i_2 1)) - (= i_4 i_3) - (= i_4 i!) - (= x x_0) - (= x! x_0) - (= y y_0) - (= y! y_0) - (= tmp tmp!) - ) - (and - (= i_2 i) - (not (< i_2 y_0)) - (= i_4 i_2) - (= i_4 i!) - (= x x_0) - (= x! x_0) - (= y y_0) - (= y! y_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= i_2 i) (= i_2 i!) (= i i!) (= x x!) (= y y!) (= tmp tmp!)) (and (= i_2 i) (< i_2 y_0) (= i_3 (+ i_2 1)) (= i_4 i_3) (= i_4 i!) (= x x_0) (= x! x_0) (= y y_0) (= y! y_0) (= tmp tmp!)) (and (= i_2 i) (not (< i_2 y_0)) (= i_4 i_2) (= i_4 i!) (= x x_0) (= x! x_0) (= y y_0) (= y! y_0) (= tmp tmp!)))) (define-fun post-f ((i Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (x_0 Int) (y_0 Int)) Bool - (or - (not - (and - (= i i_2) - (= x x_0) - (= y y_0) - ) - ) - (not - (and - (>= i_2 x_0) - (> 0 i_2) - (not (>= i_2 y_0)) - ) - ) - ) -) + (or (not (and (= i i_2) (= x x_0) (= y y_0))) (not (and (>= i_2 x_0) (> 0 i_2) (not (>= i_2 y_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/79_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/79_conf1.sl index 474eb46..086639f 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/79_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/79_conf1.sl @@ -1,104 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var conf_0 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var tmp Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var i_4 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var x_0 Int) -(declare-primed-var y_0 Int) - (synth-inv inv-f ((i Int) (conf_0 Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (y_0 Int))) (define-fun pre-f ((i Int) (conf_0 Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (y_0 Int)) Bool - (and - (= i i_1) - (= conf_0 conf_0_0) - (= x x_0) - (= y y_0) - (= conf_0_0 2) - (= i_1 0) - (>= x_0 0) - (>= y_0 0) - (>= x_0 y_0) - ) -) - + (and (= i i_1) (= conf_0 conf_0_0) (= x x_0) (= y y_0) (= conf_0_0 2) (= i_1 0) (>= x_0 0) (>= y_0 0) (>= x_0 y_0))) (define-fun trans-f ((i Int) (conf_0 Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (y_0 Int) (i! Int) (conf_0! Int) (x! Int) (y! Int) (tmp! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (i_4! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (x_0! Int) (y_0! Int)) Bool - (or - (and - (= i_2 i) - (= conf_0_1 conf_0) - (= i_2 i!) - (= conf_0_1 conf_0!) - (= i i!) - (= conf_0 conf_0!) - (= x x!) - (= y y!) - (= tmp tmp!) - ) - (and - (= i_2 i) - (= conf_0_1 conf_0) - (< i_2 y_0) - (= i_3 (+ i_2 1)) - (= conf_0_2 (- 161 conf_0_1)) - (= i_4 i_3) - (= conf_0_3 conf_0_2) - (= i_4 i!) - (= conf_0_3 conf_0!) - (= x x_0) - (= x! x_0) - (= y y_0) - (= y! y_0) - (= tmp tmp!) - ) - (and - (= i_2 i) - (= conf_0_1 conf_0) - (not (< i_2 y_0)) - (= i_4 i_2) - (= conf_0_3 conf_0_1) - (= i_4 i!) - (= conf_0_3 conf_0!) - (= x x_0) - (= x! x_0) - (= y y_0) - (= y! y_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= i_2 i) (= conf_0_1 conf_0) (= i_2 i!) (= conf_0_1 conf_0!) (= i i!) (= conf_0 conf_0!) (= x x!) (= y y!) (= tmp tmp!)) (and (= i_2 i) (= conf_0_1 conf_0) (< i_2 y_0) (= i_3 (+ i_2 1)) (= conf_0_2 (- 161 conf_0_1)) (= i_4 i_3) (= conf_0_3 conf_0_2) (= i_4 i!) (= conf_0_3 conf_0!) (= x x_0) (= x! x_0) (= y y_0) (= y! y_0) (= tmp tmp!)) (and (= i_2 i) (= conf_0_1 conf_0) (not (< i_2 y_0)) (= i_4 i_2) (= conf_0_3 conf_0_1) (= i_4 i!) (= conf_0_3 conf_0!) (= x x_0) (= x! x_0) (= y y_0) (= y! y_0) (= tmp tmp!)))) (define-fun post-f ((i Int) (conf_0 Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (y_0 Int)) Bool - (or - (not - (and - (= i i_2) - (= conf_0 conf_0_1) - (= x x_0) - (= y y_0) - ) - ) - (not - (and - (>= i_2 x_0) - (> 0 i_2) - (not (>= i_2 y_0)) - ) - ) - ) -) + (or (not (and (= i i_2) (= conf_0 conf_0_1) (= x x_0) (= y y_0))) (not (and (>= i_2 x_0) (> 0 i_2) (not (>= i_2 y_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/79_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/79_conf5.sl index 6226ce6..bb1fdad 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/79_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/79_conf5.sl @@ -1,144 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var tmp Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var i_4 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_1_1 Int) -(declare-primed-var conf_1_2 Int) -(declare-primed-var conf_1_3 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var y_0 Int) - (synth-inv inv-f ((i Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (x_0 Int) (y_0 Int))) (define-fun pre-f ((i Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (x_0 Int) (y_0 Int)) Bool - (and - (= i i_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_0) - (= y y_0) - (= conf_0_0 1) - (= conf_1_0 6) - (= conf_2_0 5) - (= conf_3_0 1) - (= conf_4_0 2) - (= i_1 0) - (>= x_0 0) - (>= y_0 0) - (>= x_0 y_0) - ) -) - + (and (= i i_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_0) (= y y_0) (= conf_0_0 1) (= conf_1_0 6) (= conf_2_0 5) (= conf_3_0 1) (= conf_4_0 2) (= i_1 0) (>= x_0 0) (>= y_0 0) (>= x_0 y_0))) (define-fun trans-f ((i Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (x_0 Int) (y_0 Int) (i! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (x! Int) (y! Int) (tmp! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (i_4! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_1_1! Int) (conf_1_2! Int) (conf_1_3! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_4_0! Int) (x_0! Int) (y_0! Int)) Bool - (or - (and - (= i_2 i) - (= conf_1_1 conf_1) - (= i_2 i!) - (= conf_1_1 conf_1!) - (= i i!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= x x!) - (= y y!) - (= tmp tmp!) - ) - (and - (= i_2 i) - (= conf_1_1 conf_1) - (< i_2 y_0) - (= i_3 (+ i_2 1)) - (= conf_1_2 (- conf_2_0 conf_4_0)) - (= i_4 i_3) - (= conf_1_3 conf_1_2) - (= i_4 i!) - (= conf_1_3 conf_1!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= x x_0) - (= x! x_0) - (= y y_0) - (= y! y_0) - (= tmp tmp!) - ) - (and - (= i_2 i) - (= conf_1_1 conf_1) - (not (< i_2 y_0)) - (= i_4 i_2) - (= conf_1_3 conf_1_1) - (= i_4 i!) - (= conf_1_3 conf_1!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= x x_0) - (= x! x_0) - (= y y_0) - (= y! y_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= i_2 i) (= conf_1_1 conf_1) (= i_2 i!) (= conf_1_1 conf_1!) (= i i!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= x x!) (= y y!) (= tmp tmp!)) (and (= i_2 i) (= conf_1_1 conf_1) (< i_2 y_0) (= i_3 (+ i_2 1)) (= conf_1_2 (- conf_2_0 conf_4_0)) (= i_4 i_3) (= conf_1_3 conf_1_2) (= i_4 i!) (= conf_1_3 conf_1!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= x x_0) (= x! x_0) (= y y_0) (= y! y_0) (= tmp tmp!)) (and (= i_2 i) (= conf_1_1 conf_1) (not (< i_2 y_0)) (= i_4 i_2) (= conf_1_3 conf_1_1) (= i_4 i!) (= conf_1_3 conf_1!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= x x_0) (= x! x_0) (= y y_0) (= y! y_0) (= tmp tmp!)))) (define-fun post-f ((i Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (i_4 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (x_0 Int) (y_0 Int)) Bool - (or - (not - (and - (= i i_2) - (= conf_0 conf_0_0) - (= conf_1 conf_1_1) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_0) - (= y y_0) - ) - ) - (not - (and - (>= i_2 x_0) - (> 0 i_2) - (not (>= i_2 y_0)) - ) - ) - ) -) + (or (not (and (= i i_2) (= conf_0 conf_0_0) (= conf_1 conf_1_1) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_0) (= y y_0))) (not (and (>= i_2 x_0) (> 0 i_2) (not (>= i_2 y_0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/83.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/83.c.sl index 02c9919..364ed51 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/83.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/83.c.sl @@ -1,62 +1,15 @@ (set-logic LIA) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((x Int) (y Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((x Int) (y Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= x x_1) - (= x_1 -5000) - ) -) - + (and (= x x_1) (= x_1 (- 5000)))) (define-fun trans-f ((x Int) (y Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (x! Int) (y! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= x_2 x) - (= y_1 y) - (= x_2 x!) - (= y_1 y!) - (= y y!) - ) - (and - (= x_2 x) - (= y_1 y) - (< x_2 0) - (= x_3 (+ x_2 y_1)) - (= y_2 (+ y_1 1)) - (= x_3 x!) - (= y_2 y!) - ) - ) -) - + (or (and (= x_2 x) (= y_1 y) (= x_2 x!) (= y_1 y!) (= y y!)) (and (= x_2 x) (= y_1 y) (< x_2 0) (= x_3 (+ x_2 y_1)) (= y_2 (+ y_1 1)) (= x_3 x!) (= y_2 y!)))) (define-fun post-f ((x Int) (y Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= x x_2) - (= y y_1) - ) - ) - (not - (and - (not (< x_2 0)) - (not (> y_1 0)) - ) - ) - ) -) + (or (not (and (= x x_2) (= y y_1))) (not (and (not (< x_2 0)) (not (> y_1 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/83_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/83_conf1.sl index ca3da7f..72f4d35 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/83_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/83_conf1.sl @@ -1,77 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= conf_0 conf_0_0) - (= x x_1) - (= conf_0_0 1) - (= x_1 -5000) - ) -) - + (and (= conf_0 conf_0_0) (= x x_1) (= conf_0_0 1) (= x_1 (- 5000)))) (define-fun trans-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (conf_0! Int) (x! Int) (y! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= y_1 y) - (= conf_0_1 conf_0!) - (= x_2 x!) - (= y_1 y!) - (= conf_0 conf_0!) - (= y y!) - ) - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= y_1 y) - (< x_2 0) - (= x_3 (+ x_2 y_1)) - (= conf_0_2 (+ 133 351)) - (= y_2 (+ y_1 1)) - (= conf_0_3 (- conf_0_2 674)) - (= conf_0_3 conf_0!) - (= x_3 x!) - (= y_2 y!) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= x_2 x) (= y_1 y) (= conf_0_1 conf_0!) (= x_2 x!) (= y_1 y!) (= conf_0 conf_0!) (= y y!)) (and (= conf_0_1 conf_0) (= x_2 x) (= y_1 y) (< x_2 0) (= x_3 (+ x_2 y_1)) (= conf_0_2 (+ 133 351)) (= y_2 (+ y_1 1)) (= conf_0_3 (- conf_0_2 674)) (= conf_0_3 conf_0!) (= x_3 x!) (= y_2 y!)))) (define-fun post-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= x x_2) - (= y y_1) - ) - ) - (not - (and - (not (< x_2 0)) - (not (> y_1 0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= x x_2) (= y y_1))) (not (and (not (< x_2 0)) (not (> y_1 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/83_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/83_conf5.sl index 168fdf4..8b9e77d 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/83_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/83_conf5.sl @@ -1,112 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_2_1 Int) -(declare-primed-var conf_2_2 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_3_1 Int) -(declare-primed-var conf_3_2 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_1) - (= conf_0_0 3) - (= conf_1_0 2) - (= conf_2_0 5) - (= conf_3_0 2) - (= conf_4_0 1) - (= x_1 -5000) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_1) (= conf_0_0 3) (= conf_1_0 2) (= conf_2_0 5) (= conf_3_0 2) (= conf_4_0 1) (= x_1 (- 5000)))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (x! Int) (y! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_2_1! Int) (conf_2_2! Int) (conf_3_0! Int) (conf_3_1! Int) (conf_3_2! Int) (conf_4_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= conf_2_1 conf_2) - (= conf_3_1 conf_3) - (= x_2 x) - (= y_1 y) - (= conf_2_1 conf_2!) - (= conf_3_1 conf_3!) - (= x_2 x!) - (= y_1 y!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= y y!) - ) - (and - (= conf_2_1 conf_2) - (= conf_3_1 conf_3) - (= x_2 x) - (= y_1 y) - (< x_2 0) - (= x_3 (+ x_2 y_1)) - (= conf_2_2 conf_4_0) - (= y_2 (+ y_1 1)) - (= conf_3_2 (+ conf_1_0 141)) - (= conf_2_2 conf_2!) - (= conf_3_2 conf_3!) - (= x_3 x!) - (= y_2 y!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - ) - ) -) - + (or (and (= conf_2_1 conf_2) (= conf_3_1 conf_3) (= x_2 x) (= y_1 y) (= conf_2_1 conf_2!) (= conf_3_1 conf_3!) (= x_2 x!) (= y_1 y!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= y y!)) (and (= conf_2_1 conf_2) (= conf_3_1 conf_3) (= x_2 x) (= y_1 y) (< x_2 0) (= x_3 (+ x_2 y_1)) (= conf_2_2 conf_4_0) (= y_2 (+ y_1 1)) (= conf_3_2 (+ conf_1_0 141)) (= conf_2_2 conf_2!) (= conf_3_2 conf_3!) (= x_3 x!) (= y_2 y!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_1) - (= conf_3 conf_3_1) - (= conf_4 conf_4_0) - (= x x_2) - (= y y_1) - ) - ) - (not - (and - (not (< x_2 0)) - (not (> y_1 0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_1) (= conf_3 conf_3_1) (= conf_4 conf_4_0) (= x x_2) (= y y_1))) (not (and (not (< x_2 0)) (not (> y_1 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/84.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/84.c.sl index a7cebb9..581079c 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/84.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/84.c.sl @@ -1,62 +1,15 @@ (set-logic LIA) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((x Int) (y Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((x Int) (y Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= x x_1) - (= x_1 -50) - ) -) - + (and (= x x_1) (= x_1 (- 50)))) (define-fun trans-f ((x Int) (y Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (x! Int) (y! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= x_2 x) - (= y_1 y) - (= x_2 x!) - (= y_1 y!) - (= y y!) - ) - (and - (= x_2 x) - (= y_1 y) - (< x_2 0) - (= x_3 (+ x_2 y_1)) - (= y_2 (+ y_1 1)) - (= x_3 x!) - (= y_2 y!) - ) - ) -) - + (or (and (= x_2 x) (= y_1 y) (= x_2 x!) (= y_1 y!) (= y y!)) (and (= x_2 x) (= y_1 y) (< x_2 0) (= x_3 (+ x_2 y_1)) (= y_2 (+ y_1 1)) (= x_3 x!) (= y_2 y!)))) (define-fun post-f ((x Int) (y Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= x x_2) - (= y y_1) - ) - ) - (not - (and - (not (< x_2 0)) - (not (> y_1 0)) - ) - ) - ) -) + (or (not (and (= x x_2) (= y y_1))) (not (and (not (< x_2 0)) (not (> y_1 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/84_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/84_conf1.sl index fa1ba33..ee2280b 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/84_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/84_conf1.sl @@ -1,77 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= conf_0 conf_0_0) - (= x x_1) - (= conf_0_0 6) - (= x_1 -50) - ) -) - + (and (= conf_0 conf_0_0) (= x x_1) (= conf_0_0 6) (= x_1 (- 50)))) (define-fun trans-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (conf_0! Int) (x! Int) (y! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= y_1 y) - (= conf_0_1 conf_0!) - (= x_2 x!) - (= y_1 y!) - (= conf_0 conf_0!) - (= y y!) - ) - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= y_1 y) - (< x_2 0) - (= x_3 (+ x_2 y_1)) - (= conf_0_2 (+ conf_0_1 555)) - (= y_2 (+ y_1 1)) - (= conf_0_3 (- 259 conf_0_2)) - (= conf_0_3 conf_0!) - (= x_3 x!) - (= y_2 y!) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= x_2 x) (= y_1 y) (= conf_0_1 conf_0!) (= x_2 x!) (= y_1 y!) (= conf_0 conf_0!) (= y y!)) (and (= conf_0_1 conf_0) (= x_2 x) (= y_1 y) (< x_2 0) (= x_3 (+ x_2 y_1)) (= conf_0_2 (+ conf_0_1 555)) (= y_2 (+ y_1 1)) (= conf_0_3 (- 259 conf_0_2)) (= conf_0_3 conf_0!) (= x_3 x!) (= y_2 y!)))) (define-fun post-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= x x_2) - (= y y_1) - ) - ) - (not - (and - (not (< x_2 0)) - (not (> y_1 0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= x x_2) (= y y_1))) (not (and (not (< x_2 0)) (not (> y_1 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/84_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/84_conf5.sl index 1fd8f22..ecf6555 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/84_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/84_conf5.sl @@ -1,112 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_2_1 Int) -(declare-primed-var conf_2_2 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var conf_4_1 Int) -(declare-primed-var conf_4_2 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_1) - (= conf_0_0 7) - (= conf_1_0 3) - (= conf_2_0 9) - (= conf_3_0 9) - (= conf_4_0 6) - (= x_1 -50) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_1) (= conf_0_0 7) (= conf_1_0 3) (= conf_2_0 9) (= conf_3_0 9) (= conf_4_0 6) (= x_1 (- 50)))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (x! Int) (y! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_2_1! Int) (conf_2_2! Int) (conf_3_0! Int) (conf_4_0! Int) (conf_4_1! Int) (conf_4_2! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= conf_2_1 conf_2) - (= conf_4_1 conf_4) - (= x_2 x) - (= y_1 y) - (= conf_2_1 conf_2!) - (= conf_4_1 conf_4!) - (= x_2 x!) - (= y_1 y!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= y y!) - ) - (and - (= conf_2_1 conf_2) - (= conf_4_1 conf_4) - (= x_2 x) - (= y_1 y) - (< x_2 0) - (= x_3 (+ x_2 y_1)) - (= conf_4_2 conf_4_1) - (= y_2 (+ y_1 1)) - (= conf_2_2 conf_2_1) - (= conf_2_2 conf_2!) - (= conf_4_2 conf_4!) - (= x_3 x!) - (= y_2 y!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - ) - ) -) - + (or (and (= conf_2_1 conf_2) (= conf_4_1 conf_4) (= x_2 x) (= y_1 y) (= conf_2_1 conf_2!) (= conf_4_1 conf_4!) (= x_2 x!) (= y_1 y!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= y y!)) (and (= conf_2_1 conf_2) (= conf_4_1 conf_4) (= x_2 x) (= y_1 y) (< x_2 0) (= x_3 (+ x_2 y_1)) (= conf_4_2 conf_4_1) (= y_2 (+ y_1 1)) (= conf_2_2 conf_2_1) (= conf_2_2 conf_2!) (= conf_4_2 conf_4!) (= x_3 x!) (= y_2 y!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_1) - (= conf_3 conf_3_0) - (= conf_4 conf_4_1) - (= x x_2) - (= y y_1) - ) - ) - (not - (and - (not (< x_2 0)) - (not (> y_1 0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_1) (= conf_3 conf_3_0) (= conf_4 conf_4_1) (= x x_2) (= y y_1))) (not (and (not (< x_2 0)) (not (> y_1 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/85.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/85.c.sl index 086275e..ecdd75e 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/85.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/85.c.sl @@ -1,62 +1,15 @@ (set-logic LIA) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((x Int) (y Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((x Int) (y Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= x x_1) - (= x_1 -15000) - ) -) - + (and (= x x_1) (= x_1 (- 15000)))) (define-fun trans-f ((x Int) (y Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (x! Int) (y! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= x_2 x) - (= y_1 y) - (= x_2 x!) - (= y_1 y!) - (= y y!) - ) - (and - (= x_2 x) - (= y_1 y) - (< x_2 0) - (= x_3 (+ x_2 y_1)) - (= y_2 (+ y_1 1)) - (= x_3 x!) - (= y_2 y!) - ) - ) -) - + (or (and (= x_2 x) (= y_1 y) (= x_2 x!) (= y_1 y!) (= y y!)) (and (= x_2 x) (= y_1 y) (< x_2 0) (= x_3 (+ x_2 y_1)) (= y_2 (+ y_1 1)) (= x_3 x!) (= y_2 y!)))) (define-fun post-f ((x Int) (y Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= x x_2) - (= y y_1) - ) - ) - (not - (and - (not (< x_2 0)) - (not (> y_1 0)) - ) - ) - ) -) + (or (not (and (= x x_2) (= y y_1))) (not (and (not (< x_2 0)) (not (> y_1 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/85_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/85_conf1.sl index ffa753d..8b9d0b7 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/85_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/85_conf1.sl @@ -1,77 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= conf_0 conf_0_0) - (= x x_1) - (= conf_0_0 3) - (= x_1 -15000) - ) -) - + (and (= conf_0 conf_0_0) (= x x_1) (= conf_0_0 3) (= x_1 (- 15000)))) (define-fun trans-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (conf_0! Int) (x! Int) (y! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= y_1 y) - (= conf_0_1 conf_0!) - (= x_2 x!) - (= y_1 y!) - (= conf_0 conf_0!) - (= y y!) - ) - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= y_1 y) - (< x_2 0) - (= x_3 (+ x_2 y_1)) - (= conf_0_2 (+ 179 conf_0_1)) - (= y_2 (+ y_1 1)) - (= conf_0_3 conf_0_2) - (= conf_0_3 conf_0!) - (= x_3 x!) - (= y_2 y!) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= x_2 x) (= y_1 y) (= conf_0_1 conf_0!) (= x_2 x!) (= y_1 y!) (= conf_0 conf_0!) (= y y!)) (and (= conf_0_1 conf_0) (= x_2 x) (= y_1 y) (< x_2 0) (= x_3 (+ x_2 y_1)) (= conf_0_2 (+ 179 conf_0_1)) (= y_2 (+ y_1 1)) (= conf_0_3 conf_0_2) (= conf_0_3 conf_0!) (= x_3 x!) (= y_2 y!)))) (define-fun post-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= x x_2) - (= y y_1) - ) - ) - (not - (and - (not (< x_2 0)) - (not (> y_1 0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= x x_2) (= y y_1))) (not (and (not (< x_2 0)) (not (> y_1 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/85_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/85_conf5.sl index 2b8c40e..a5771e8 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/85_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/85_conf5.sl @@ -1,112 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_1_1 Int) -(declare-primed-var conf_1_2 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_2_1 Int) -(declare-primed-var conf_2_2 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_1) - (= conf_0_0 9) - (= conf_1_0 0) - (= conf_2_0 7) - (= conf_3_0 0) - (= conf_4_0 3) - (= x_1 -15000) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_1) (= conf_0_0 9) (= conf_1_0 0) (= conf_2_0 7) (= conf_3_0 0) (= conf_4_0 3) (= x_1 (- 15000)))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (x! Int) (y! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_1_1! Int) (conf_1_2! Int) (conf_2_0! Int) (conf_2_1! Int) (conf_2_2! Int) (conf_3_0! Int) (conf_4_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (= x_2 x) - (= y_1 y) - (= conf_1_1 conf_1!) - (= conf_2_1 conf_2!) - (= x_2 x!) - (= y_1 y!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= y y!) - ) - (and - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (= x_2 x) - (= y_1 y) - (< x_2 0) - (= x_3 (+ x_2 y_1)) - (= conf_1_2 (+ 286 conf_3_0)) - (= y_2 (+ y_1 1)) - (= conf_2_2 (+ conf_0_0 conf_0_0)) - (= conf_1_2 conf_1!) - (= conf_2_2 conf_2!) - (= x_3 x!) - (= y_2 y!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - ) - ) -) - + (or (and (= conf_1_1 conf_1) (= conf_2_1 conf_2) (= x_2 x) (= y_1 y) (= conf_1_1 conf_1!) (= conf_2_1 conf_2!) (= x_2 x!) (= y_1 y!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= y y!)) (and (= conf_1_1 conf_1) (= conf_2_1 conf_2) (= x_2 x) (= y_1 y) (< x_2 0) (= x_3 (+ x_2 y_1)) (= conf_1_2 (+ 286 conf_3_0)) (= y_2 (+ y_1 1)) (= conf_2_2 (+ conf_0_0 conf_0_0)) (= conf_1_2 conf_1!) (= conf_2_2 conf_2!) (= x_3 x!) (= y_2 y!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_1) - (= conf_2 conf_2_1) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_2) - (= y y_1) - ) - ) - (not - (and - (not (< x_2 0)) - (not (> y_1 0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_0) (= conf_1 conf_1_1) (= conf_2 conf_2_1) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_2) (= y y_1))) (not (and (not (< x_2 0)) (not (> y_1 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/87.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/87.c.sl index c25000c..4c378e0 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/87.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/87.c.sl @@ -1,102 +1,15 @@ (set-logic LIA) -(declare-primed-var lock Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var tmp Int) - -(declare-primed-var lock_0 Int) -(declare-primed-var lock_1 Int) -(declare-primed-var lock_2 Int) -(declare-primed-var lock_3 Int) -(declare-primed-var lock_4 Int) -(declare-primed-var lock_5 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var x_4 Int) -(declare-primed-var x_5 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) -(declare-primed-var y_3 Int) - (synth-inv inv-f ((lock Int) (x Int) (y Int) (tmp Int) (lock_0 Int) (lock_1 Int) (lock_2 Int) (lock_3 Int) (lock_4 Int) (lock_5 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (x_4 Int) (x_5 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int))) (define-fun pre-f ((lock Int) (x Int) (y Int) (tmp Int) (lock_0 Int) (lock_1 Int) (lock_2 Int) (lock_3 Int) (lock_4 Int) (lock_5 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (x_4 Int) (x_5 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int)) Bool - (and - (= lock lock_1) - (= x x_1) - (= y y_0) - (= x_1 y_0) - (= lock_1 1) - ) -) - + (and (= lock lock_1) (= x x_1) (= y y_0) (= x_1 y_0) (= lock_1 1))) (define-fun trans-f ((lock Int) (x Int) (y Int) (tmp Int) (lock_0 Int) (lock_1 Int) (lock_2 Int) (lock_3 Int) (lock_4 Int) (lock_5 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (x_4 Int) (x_5 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (lock! Int) (x! Int) (y! Int) (tmp! Int) (lock_0! Int) (lock_1! Int) (lock_2! Int) (lock_3! Int) (lock_4! Int) (lock_5! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (x_4! Int) (x_5! Int) (y_0! Int) (y_1! Int) (y_2! Int) (y_3! Int)) Bool - (or - (and - (= lock_2 lock) - (= x_2 x) - (= y_1 y) - (= lock_2 lock!) - (= x_2 x!) - (= y_1 y!) - (= lock lock!) - (= tmp tmp!) - ) - (and - (= lock_2 lock) - (= x_2 x) - (= y_1 y) - (not (= x_2 y_1)) - (= lock_3 1) - (= x_3 y_1) - (= lock_4 lock_3) - (= x_4 x_3) - (= y_2 y_1) - (= lock_4 lock!) - (= x_4 x!) - (= y_2 y!) - (= tmp tmp!) - ) - (and - (= lock_2 lock) - (= x_2 x) - (= y_1 y) - (not (= x_2 y_1)) - (= lock_5 0) - (= x_5 y_1) - (= y_3 (+ y_1 1)) - (= lock_4 lock_5) - (= x_4 x_5) - (= y_2 y_3) - (= lock_4 lock!) - (= x_4 x!) - (= y_2 y!) - (= tmp tmp!) - ) - ) -) - + (or (and (= lock_2 lock) (= x_2 x) (= y_1 y) (= lock_2 lock!) (= x_2 x!) (= y_1 y!) (= lock lock!) (= tmp tmp!)) (and (= lock_2 lock) (= x_2 x) (= y_1 y) (not (= x_2 y_1)) (= lock_3 1) (= x_3 y_1) (= lock_4 lock_3) (= x_4 x_3) (= y_2 y_1) (= lock_4 lock!) (= x_4 x!) (= y_2 y!) (= tmp tmp!)) (and (= lock_2 lock) (= x_2 x) (= y_1 y) (not (= x_2 y_1)) (= lock_5 0) (= x_5 y_1) (= y_3 (+ y_1 1)) (= lock_4 lock_5) (= x_4 x_5) (= y_2 y_3) (= lock_4 lock!) (= x_4 x!) (= y_2 y!) (= tmp tmp!)))) (define-fun post-f ((lock Int) (x Int) (y Int) (tmp Int) (lock_0 Int) (lock_1 Int) (lock_2 Int) (lock_3 Int) (lock_4 Int) (lock_5 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (x_4 Int) (x_5 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int)) Bool - (or - (not - (and - (= lock lock_2) - (= x x_2) - (= y y_1) - ) - ) - (not - (and - (not (not (= x_2 y_1))) - (not (= lock_2 1)) - ) - ) - ) -) + (or (not (and (= lock lock_2) (= x x_2) (= y y_1))) (not (and (not (not (= x_2 y_1))) (not (= lock_2 1)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/87_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/87_conf1.sl index 923e825..ae3bc8f 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/87_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/87_conf1.sl @@ -1,128 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var lock Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var tmp Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) -(declare-primed-var conf_0_5 Int) -(declare-primed-var conf_0_6 Int) -(declare-primed-var conf_0_7 Int) -(declare-primed-var lock_0 Int) -(declare-primed-var lock_1 Int) -(declare-primed-var lock_2 Int) -(declare-primed-var lock_3 Int) -(declare-primed-var lock_4 Int) -(declare-primed-var lock_5 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var x_4 Int) -(declare-primed-var x_5 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) -(declare-primed-var y_3 Int) - (synth-inv inv-f ((conf_0 Int) (lock Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (conf_0_5 Int) (conf_0_6 Int) (conf_0_7 Int) (lock_0 Int) (lock_1 Int) (lock_2 Int) (lock_3 Int) (lock_4 Int) (lock_5 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (x_4 Int) (x_5 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int))) (define-fun pre-f ((conf_0 Int) (lock Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (conf_0_5 Int) (conf_0_6 Int) (conf_0_7 Int) (lock_0 Int) (lock_1 Int) (lock_2 Int) (lock_3 Int) (lock_4 Int) (lock_5 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (x_4 Int) (x_5 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= lock lock_1) - (= x x_1) - (= y y_0) - (= conf_0_0 5) - (= x_1 y_0) - (= lock_1 1) - ) -) - + (and (= conf_0 conf_0_0) (= lock lock_1) (= x x_1) (= y y_0) (= conf_0_0 5) (= x_1 y_0) (= lock_1 1))) (define-fun trans-f ((conf_0 Int) (lock Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (conf_0_5 Int) (conf_0_6 Int) (conf_0_7 Int) (lock_0 Int) (lock_1 Int) (lock_2 Int) (lock_3 Int) (lock_4 Int) (lock_5 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (x_4 Int) (x_5 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (conf_0! Int) (lock! Int) (x! Int) (y! Int) (tmp! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int) (conf_0_5! Int) (conf_0_6! Int) (conf_0_7! Int) (lock_0! Int) (lock_1! Int) (lock_2! Int) (lock_3! Int) (lock_4! Int) (lock_5! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (x_4! Int) (x_5! Int) (y_0! Int) (y_1! Int) (y_2! Int) (y_3! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= lock_2 lock) - (= x_2 x) - (= y_1 y) - (= conf_0_1 conf_0!) - (= lock_2 lock!) - (= x_2 x!) - (= y_1 y!) - (= conf_0 conf_0!) - (= lock lock!) - (= tmp tmp!) - ) - (and - (= conf_0_1 conf_0) - (= lock_2 lock) - (= x_2 x) - (= y_1 y) - (not (= x_2 y_1)) - (= lock_3 1) - (= conf_0_2 conf_0_1) - (= x_3 y_1) - (= conf_0_3 (+ 445 35)) - (= conf_0_4 conf_0_3) - (= lock_4 lock_3) - (= x_4 x_3) - (= y_2 y_1) - (= conf_0_4 conf_0!) - (= lock_4 lock!) - (= x_4 x!) - (= y_2 y!) - (= tmp tmp!) - ) - (and - (= conf_0_1 conf_0) - (= lock_2 lock) - (= x_2 x) - (= y_1 y) - (not (= x_2 y_1)) - (= lock_5 0) - (= conf_0_5 (- conf_0_1 303)) - (= x_5 y_1) - (= conf_0_6 (- conf_0_5 403)) - (= y_3 (+ y_1 1)) - (= conf_0_7 73) - (= conf_0_4 conf_0_7) - (= lock_4 lock_5) - (= x_4 x_5) - (= y_2 y_3) - (= conf_0_4 conf_0!) - (= lock_4 lock!) - (= x_4 x!) - (= y_2 y!) - (= tmp tmp!) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= lock_2 lock) (= x_2 x) (= y_1 y) (= conf_0_1 conf_0!) (= lock_2 lock!) (= x_2 x!) (= y_1 y!) (= conf_0 conf_0!) (= lock lock!) (= tmp tmp!)) (and (= conf_0_1 conf_0) (= lock_2 lock) (= x_2 x) (= y_1 y) (not (= x_2 y_1)) (= lock_3 1) (= conf_0_2 conf_0_1) (= x_3 y_1) (= conf_0_3 (+ 445 35)) (= conf_0_4 conf_0_3) (= lock_4 lock_3) (= x_4 x_3) (= y_2 y_1) (= conf_0_4 conf_0!) (= lock_4 lock!) (= x_4 x!) (= y_2 y!) (= tmp tmp!)) (and (= conf_0_1 conf_0) (= lock_2 lock) (= x_2 x) (= y_1 y) (not (= x_2 y_1)) (= lock_5 0) (= conf_0_5 (- conf_0_1 303)) (= x_5 y_1) (= conf_0_6 (- conf_0_5 403)) (= y_3 (+ y_1 1)) (= conf_0_7 73) (= conf_0_4 conf_0_7) (= lock_4 lock_5) (= x_4 x_5) (= y_2 y_3) (= conf_0_4 conf_0!) (= lock_4 lock!) (= x_4 x!) (= y_2 y!) (= tmp tmp!)))) (define-fun post-f ((conf_0 Int) (lock Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (conf_0_5 Int) (conf_0_6 Int) (conf_0_7 Int) (lock_0 Int) (lock_1 Int) (lock_2 Int) (lock_3 Int) (lock_4 Int) (lock_5 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (x_4 Int) (x_5 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= lock lock_2) - (= x x_2) - (= y y_1) - ) - ) - (not - (and - (not (not (= x_2 y_1))) - (not (= lock_2 1)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= lock lock_2) (= x x_2) (= y y_1))) (not (and (not (not (= x_2 y_1))) (not (= lock_2 1)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/87_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/87_conf5.sl index bf524a5..bdfd9d1 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/87_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/87_conf5.sl @@ -1,186 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var lock Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var tmp Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_1_1 Int) -(declare-primed-var conf_1_2 Int) -(declare-primed-var conf_1_3 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_3_1 Int) -(declare-primed-var conf_3_2 Int) -(declare-primed-var conf_3_3 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var conf_4_1 Int) -(declare-primed-var conf_4_2 Int) -(declare-primed-var conf_4_3 Int) -(declare-primed-var lock_0 Int) -(declare-primed-var lock_1 Int) -(declare-primed-var lock_2 Int) -(declare-primed-var lock_3 Int) -(declare-primed-var lock_4 Int) -(declare-primed-var lock_5 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var x_4 Int) -(declare-primed-var x_5 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) -(declare-primed-var y_3 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (lock Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (lock_0 Int) (lock_1 Int) (lock_2 Int) (lock_3 Int) (lock_4 Int) (lock_5 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (x_4 Int) (x_5 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (lock Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (lock_0 Int) (lock_1 Int) (lock_2 Int) (lock_3 Int) (lock_4 Int) (lock_5 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (x_4 Int) (x_5 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= lock lock_1) - (= x x_1) - (= y y_0) - (= conf_0_0 8) - (= conf_1_0 3) - (= conf_2_0 2) - (= conf_3_0 7) - (= conf_4_0 5) - (= x_1 y_0) - (= lock_1 1) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= lock lock_1) (= x x_1) (= y y_0) (= conf_0_0 8) (= conf_1_0 3) (= conf_2_0 2) (= conf_3_0 7) (= conf_4_0 5) (= x_1 y_0) (= lock_1 1))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (lock Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (lock_0 Int) (lock_1 Int) (lock_2 Int) (lock_3 Int) (lock_4 Int) (lock_5 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (x_4 Int) (x_5 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (lock! Int) (x! Int) (y! Int) (tmp! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int) (conf_1_0! Int) (conf_1_1! Int) (conf_1_2! Int) (conf_1_3! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_3_1! Int) (conf_3_2! Int) (conf_3_3! Int) (conf_4_0! Int) (conf_4_1! Int) (conf_4_2! Int) (conf_4_3! Int) (lock_0! Int) (lock_1! Int) (lock_2! Int) (lock_3! Int) (lock_4! Int) (lock_5! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (x_4! Int) (x_5! Int) (y_0! Int) (y_1! Int) (y_2! Int) (y_3! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= conf_1_1 conf_1) - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (= lock_2 lock) - (= x_2 x) - (= y_1 y) - (= conf_0_1 conf_0!) - (= conf_1_1 conf_1!) - (= conf_3_1 conf_3!) - (= conf_4_1 conf_4!) - (= lock_2 lock!) - (= x_2 x!) - (= y_1 y!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= lock lock!) - (= tmp tmp!) - ) - (and - (= conf_0_1 conf_0) - (= conf_1_1 conf_1) - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (= lock_2 lock) - (= x_2 x) - (= y_1 y) - (not (= x_2 y_1)) - (= lock_3 1) - (= conf_3_2 (+ 445 35)) - (= x_3 y_1) - (= conf_1_2 (- conf_4_1 303)) - (= conf_0_2 conf_0_1) - (= conf_1_3 conf_1_2) - (= conf_3_3 conf_3_2) - (= conf_4_2 conf_4_1) - (= lock_4 lock_3) - (= x_4 x_3) - (= y_2 y_1) - (= conf_0_2 conf_0!) - (= conf_1_3 conf_1!) - (= conf_3_3 conf_3!) - (= conf_4_2 conf_4!) - (= lock_4 lock!) - (= x_4 x!) - (= y_2 y!) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= tmp tmp!) - ) - (and - (= conf_0_1 conf_0) - (= conf_1_1 conf_1) - (= conf_3_1 conf_3) - (= conf_4_1 conf_4) - (= lock_2 lock) - (= x_2 x) - (= y_1 y) - (not (= x_2 y_1)) - (= lock_5 0) - (= conf_0_3 (- conf_3_1 403)) - (= x_5 y_1) - (= conf_0_4 73) - (= y_3 (+ y_1 1)) - (= conf_4_3 (+ 587 conf_3_1)) - (= conf_0_2 conf_0_4) - (= conf_1_3 conf_1_1) - (= conf_3_3 conf_3_1) - (= conf_4_2 conf_4_3) - (= lock_4 lock_5) - (= x_4 x_5) - (= y_2 y_3) - (= conf_0_2 conf_0!) - (= conf_1_3 conf_1!) - (= conf_3_3 conf_3!) - (= conf_4_2 conf_4!) - (= lock_4 lock!) - (= x_4 x!) - (= y_2 y!) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= conf_1_1 conf_1) (= conf_3_1 conf_3) (= conf_4_1 conf_4) (= lock_2 lock) (= x_2 x) (= y_1 y) (= conf_0_1 conf_0!) (= conf_1_1 conf_1!) (= conf_3_1 conf_3!) (= conf_4_1 conf_4!) (= lock_2 lock!) (= x_2 x!) (= y_1 y!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= lock lock!) (= tmp tmp!)) (and (= conf_0_1 conf_0) (= conf_1_1 conf_1) (= conf_3_1 conf_3) (= conf_4_1 conf_4) (= lock_2 lock) (= x_2 x) (= y_1 y) (not (= x_2 y_1)) (= lock_3 1) (= conf_3_2 (+ 445 35)) (= x_3 y_1) (= conf_1_2 (- conf_4_1 303)) (= conf_0_2 conf_0_1) (= conf_1_3 conf_1_2) (= conf_3_3 conf_3_2) (= conf_4_2 conf_4_1) (= lock_4 lock_3) (= x_4 x_3) (= y_2 y_1) (= conf_0_2 conf_0!) (= conf_1_3 conf_1!) (= conf_3_3 conf_3!) (= conf_4_2 conf_4!) (= lock_4 lock!) (= x_4 x!) (= y_2 y!) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= tmp tmp!)) (and (= conf_0_1 conf_0) (= conf_1_1 conf_1) (= conf_3_1 conf_3) (= conf_4_1 conf_4) (= lock_2 lock) (= x_2 x) (= y_1 y) (not (= x_2 y_1)) (= lock_5 0) (= conf_0_3 (- conf_3_1 403)) (= x_5 y_1) (= conf_0_4 73) (= y_3 (+ y_1 1)) (= conf_4_3 (+ 587 conf_3_1)) (= conf_0_2 conf_0_4) (= conf_1_3 conf_1_1) (= conf_3_3 conf_3_1) (= conf_4_2 conf_4_3) (= lock_4 lock_5) (= x_4 x_5) (= y_2 y_3) (= conf_0_2 conf_0!) (= conf_1_3 conf_1!) (= conf_3_3 conf_3!) (= conf_4_2 conf_4!) (= lock_4 lock!) (= x_4 x!) (= y_2 y!) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= tmp tmp!)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (lock Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_3_3 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (lock_0 Int) (lock_1 Int) (lock_2 Int) (lock_3 Int) (lock_4 Int) (lock_5 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (x_4 Int) (x_5 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= conf_1 conf_1_1) - (= conf_2 conf_2_0) - (= conf_3 conf_3_1) - (= conf_4 conf_4_1) - (= lock lock_2) - (= x x_2) - (= y y_1) - ) - ) - (not - (and - (not (not (= x_2 y_1))) - (not (= lock_2 1)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= conf_1 conf_1_1) (= conf_2 conf_2_0) (= conf_3 conf_3_1) (= conf_4 conf_4_1) (= lock lock_2) (= x x_2) (= y y_1))) (not (and (not (not (= x_2 y_1))) (not (= lock_2 1)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/88.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/88.c.sl index e3e045e..9f5528e 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/88.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/88.c.sl @@ -1,102 +1,15 @@ (set-logic LIA) -(declare-primed-var lock Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var tmp Int) - -(declare-primed-var lock_0 Int) -(declare-primed-var lock_1 Int) -(declare-primed-var lock_2 Int) -(declare-primed-var lock_3 Int) -(declare-primed-var lock_4 Int) -(declare-primed-var lock_5 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var x_4 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) -(declare-primed-var y_3 Int) -(declare-primed-var y_4 Int) - (synth-inv inv-f ((lock Int) (x Int) (y Int) (tmp Int) (lock_0 Int) (lock_1 Int) (lock_2 Int) (lock_3 Int) (lock_4 Int) (lock_5 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (x_4 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (y_4 Int))) (define-fun pre-f ((lock Int) (x Int) (y Int) (tmp Int) (lock_0 Int) (lock_1 Int) (lock_2 Int) (lock_3 Int) (lock_4 Int) (lock_5 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (x_4 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (y_4 Int)) Bool - (and - (= lock lock_1) - (= x x_0) - (= y y_1) - (= y_1 (+ x_0 1)) - (= lock_1 0) - ) -) - + (and (= lock lock_1) (= x x_0) (= y y_1) (= y_1 (+ x_0 1)) (= lock_1 0))) (define-fun trans-f ((lock Int) (x Int) (y Int) (tmp Int) (lock_0 Int) (lock_1 Int) (lock_2 Int) (lock_3 Int) (lock_4 Int) (lock_5 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (x_4 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (y_4 Int) (lock! Int) (x! Int) (y! Int) (tmp! Int) (lock_0! Int) (lock_1! Int) (lock_2! Int) (lock_3! Int) (lock_4! Int) (lock_5! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (x_4! Int) (y_0! Int) (y_1! Int) (y_2! Int) (y_3! Int) (y_4! Int)) Bool - (or - (and - (= lock_2 lock) - (= x_1 x) - (= y_2 y) - (= lock_2 lock!) - (= x_1 x!) - (= y_2 y!) - (= lock lock!) - (= tmp tmp!) - ) - (and - (= lock_2 lock) - (= x_1 x) - (= y_2 y) - (not (= x_1 y_2)) - (= lock_3 1) - (= x_2 y_2) - (= lock_4 lock_3) - (= x_3 x_2) - (= y_3 y_2) - (= lock_4 lock!) - (= x_3 x!) - (= y_3 y!) - (= tmp tmp!) - ) - (and - (= lock_2 lock) - (= x_1 x) - (= y_2 y) - (not (= x_1 y_2)) - (= lock_5 0) - (= x_4 y_2) - (= y_4 (+ y_2 1)) - (= lock_4 lock_5) - (= x_3 x_4) - (= y_3 y_4) - (= lock_4 lock!) - (= x_3 x!) - (= y_3 y!) - (= tmp tmp!) - ) - ) -) - + (or (and (= lock_2 lock) (= x_1 x) (= y_2 y) (= lock_2 lock!) (= x_1 x!) (= y_2 y!) (= lock lock!) (= tmp tmp!)) (and (= lock_2 lock) (= x_1 x) (= y_2 y) (not (= x_1 y_2)) (= lock_3 1) (= x_2 y_2) (= lock_4 lock_3) (= x_3 x_2) (= y_3 y_2) (= lock_4 lock!) (= x_3 x!) (= y_3 y!) (= tmp tmp!)) (and (= lock_2 lock) (= x_1 x) (= y_2 y) (not (= x_1 y_2)) (= lock_5 0) (= x_4 y_2) (= y_4 (+ y_2 1)) (= lock_4 lock_5) (= x_3 x_4) (= y_3 y_4) (= lock_4 lock!) (= x_3 x!) (= y_3 y!) (= tmp tmp!)))) (define-fun post-f ((lock Int) (x Int) (y Int) (tmp Int) (lock_0 Int) (lock_1 Int) (lock_2 Int) (lock_3 Int) (lock_4 Int) (lock_5 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (x_4 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (y_4 Int)) Bool - (or - (not - (and - (= lock lock_2) - (= x x_1) - (= y y_2) - ) - ) - (not - (and - (not (not (= x_1 y_2))) - (not (= lock_2 1)) - ) - ) - ) -) + (or (not (and (= lock lock_2) (= x x_1) (= y y_2))) (not (and (not (not (= x_1 y_2))) (not (= lock_2 1)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/88_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/88_conf1.sl index b31b500..e1668b7 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/88_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/88_conf1.sl @@ -1,128 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var lock Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var tmp Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) -(declare-primed-var conf_0_5 Int) -(declare-primed-var conf_0_6 Int) -(declare-primed-var conf_0_7 Int) -(declare-primed-var lock_0 Int) -(declare-primed-var lock_1 Int) -(declare-primed-var lock_2 Int) -(declare-primed-var lock_3 Int) -(declare-primed-var lock_4 Int) -(declare-primed-var lock_5 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var x_4 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) -(declare-primed-var y_3 Int) -(declare-primed-var y_4 Int) - (synth-inv inv-f ((conf_0 Int) (lock Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (conf_0_5 Int) (conf_0_6 Int) (conf_0_7 Int) (lock_0 Int) (lock_1 Int) (lock_2 Int) (lock_3 Int) (lock_4 Int) (lock_5 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (x_4 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (y_4 Int))) (define-fun pre-f ((conf_0 Int) (lock Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (conf_0_5 Int) (conf_0_6 Int) (conf_0_7 Int) (lock_0 Int) (lock_1 Int) (lock_2 Int) (lock_3 Int) (lock_4 Int) (lock_5 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (x_4 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (y_4 Int)) Bool - (and - (= conf_0 conf_0_0) - (= lock lock_1) - (= x x_0) - (= y y_1) - (= conf_0_0 9) - (= y_1 (+ x_0 1)) - (= lock_1 0) - ) -) - + (and (= conf_0 conf_0_0) (= lock lock_1) (= x x_0) (= y y_1) (= conf_0_0 9) (= y_1 (+ x_0 1)) (= lock_1 0))) (define-fun trans-f ((conf_0 Int) (lock Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (conf_0_5 Int) (conf_0_6 Int) (conf_0_7 Int) (lock_0 Int) (lock_1 Int) (lock_2 Int) (lock_3 Int) (lock_4 Int) (lock_5 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (x_4 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (y_4 Int) (conf_0! Int) (lock! Int) (x! Int) (y! Int) (tmp! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int) (conf_0_5! Int) (conf_0_6! Int) (conf_0_7! Int) (lock_0! Int) (lock_1! Int) (lock_2! Int) (lock_3! Int) (lock_4! Int) (lock_5! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (x_4! Int) (y_0! Int) (y_1! Int) (y_2! Int) (y_3! Int) (y_4! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= lock_2 lock) - (= x_1 x) - (= y_2 y) - (= conf_0_1 conf_0!) - (= lock_2 lock!) - (= x_1 x!) - (= y_2 y!) - (= conf_0 conf_0!) - (= lock lock!) - (= tmp tmp!) - ) - (and - (= conf_0_1 conf_0) - (= lock_2 lock) - (= x_1 x) - (= y_2 y) - (not (= x_1 y_2)) - (= lock_3 1) - (= conf_0_2 conf_0_1) - (= x_2 y_2) - (= conf_0_3 (+ conf_0_2 conf_0_2)) - (= conf_0_4 conf_0_3) - (= lock_4 lock_3) - (= x_3 x_2) - (= y_3 y_2) - (= conf_0_4 conf_0!) - (= lock_4 lock!) - (= x_3 x!) - (= y_3 y!) - (= tmp tmp!) - ) - (and - (= conf_0_1 conf_0) - (= lock_2 lock) - (= x_1 x) - (= y_2 y) - (not (= x_1 y_2)) - (= lock_5 0) - (= conf_0_5 (- conf_0_1 conf_0_1)) - (= x_4 y_2) - (= conf_0_6 (+ 310 561)) - (= y_4 (+ y_2 1)) - (= conf_0_7 184) - (= conf_0_4 conf_0_7) - (= lock_4 lock_5) - (= x_3 x_4) - (= y_3 y_4) - (= conf_0_4 conf_0!) - (= lock_4 lock!) - (= x_3 x!) - (= y_3 y!) - (= tmp tmp!) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= lock_2 lock) (= x_1 x) (= y_2 y) (= conf_0_1 conf_0!) (= lock_2 lock!) (= x_1 x!) (= y_2 y!) (= conf_0 conf_0!) (= lock lock!) (= tmp tmp!)) (and (= conf_0_1 conf_0) (= lock_2 lock) (= x_1 x) (= y_2 y) (not (= x_1 y_2)) (= lock_3 1) (= conf_0_2 conf_0_1) (= x_2 y_2) (= conf_0_3 (+ conf_0_2 conf_0_2)) (= conf_0_4 conf_0_3) (= lock_4 lock_3) (= x_3 x_2) (= y_3 y_2) (= conf_0_4 conf_0!) (= lock_4 lock!) (= x_3 x!) (= y_3 y!) (= tmp tmp!)) (and (= conf_0_1 conf_0) (= lock_2 lock) (= x_1 x) (= y_2 y) (not (= x_1 y_2)) (= lock_5 0) (= conf_0_5 (- conf_0_1 conf_0_1)) (= x_4 y_2) (= conf_0_6 (+ 310 561)) (= y_4 (+ y_2 1)) (= conf_0_7 184) (= conf_0_4 conf_0_7) (= lock_4 lock_5) (= x_3 x_4) (= y_3 y_4) (= conf_0_4 conf_0!) (= lock_4 lock!) (= x_3 x!) (= y_3 y!) (= tmp tmp!)))) (define-fun post-f ((conf_0 Int) (lock Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (conf_0_5 Int) (conf_0_6 Int) (conf_0_7 Int) (lock_0 Int) (lock_1 Int) (lock_2 Int) (lock_3 Int) (lock_4 Int) (lock_5 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (x_4 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (y_4 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= lock lock_2) - (= x x_1) - (= y y_2) - ) - ) - (not - (and - (not (not (= x_1 y_2))) - (not (= lock_2 1)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= lock lock_2) (= x x_1) (= y y_2))) (not (and (not (not (= x_1 y_2))) (not (= lock_2 1)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/88_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/88_conf5.sl index de24aed..f945483 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/88_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/88_conf5.sl @@ -1,197 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var lock Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var tmp Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_1_1 Int) -(declare-primed-var conf_1_2 Int) -(declare-primed-var conf_1_3 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var conf_4_1 Int) -(declare-primed-var conf_4_2 Int) -(declare-primed-var conf_4_3 Int) -(declare-primed-var conf_4_4 Int) -(declare-primed-var lock_0 Int) -(declare-primed-var lock_1 Int) -(declare-primed-var lock_2 Int) -(declare-primed-var lock_3 Int) -(declare-primed-var lock_4 Int) -(declare-primed-var lock_5 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var x_4 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) -(declare-primed-var y_3 Int) -(declare-primed-var y_4 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (lock Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (conf_4_4 Int) (lock_0 Int) (lock_1 Int) (lock_2 Int) (lock_3 Int) (lock_4 Int) (lock_5 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (x_4 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (y_4 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (lock Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (conf_4_4 Int) (lock_0 Int) (lock_1 Int) (lock_2 Int) (lock_3 Int) (lock_4 Int) (lock_5 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (x_4 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (y_4 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= lock lock_1) - (= x x_0) - (= y y_1) - (= conf_0_0 9) - (= conf_1_0 3) - (= conf_2_0 6) - (= conf_3_0 6) - (= conf_4_0 9) - (= y_1 (+ x_0 1)) - (= lock_1 0) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= lock lock_1) (= x x_0) (= y y_1) (= conf_0_0 9) (= conf_1_0 3) (= conf_2_0 6) (= conf_3_0 6) (= conf_4_0 9) (= y_1 (+ x_0 1)) (= lock_1 0))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (lock Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (conf_4_4 Int) (lock_0 Int) (lock_1 Int) (lock_2 Int) (lock_3 Int) (lock_4 Int) (lock_5 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (x_4 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (y_4 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (lock! Int) (x! Int) (y! Int) (tmp! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int) (conf_1_0! Int) (conf_1_1! Int) (conf_1_2! Int) (conf_1_3! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_4_0! Int) (conf_4_1! Int) (conf_4_2! Int) (conf_4_3! Int) (conf_4_4! Int) (lock_0! Int) (lock_1! Int) (lock_2! Int) (lock_3! Int) (lock_4! Int) (lock_5! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (x_4! Int) (y_0! Int) (y_1! Int) (y_2! Int) (y_3! Int) (y_4! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= conf_1_1 conf_1) - (= conf_4_1 conf_4) - (= lock_2 lock) - (= x_1 x) - (= y_2 y) - (= conf_0_1 conf_0!) - (= conf_1_1 conf_1!) - (= conf_4_1 conf_4!) - (= lock_2 lock!) - (= x_1 x!) - (= y_2 y!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= lock lock!) - (= tmp tmp!) - ) - (and - (not (not (= x_1 y_2))) - (not (= lock_2 1)) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= lock lock_1) - (= lock! lock_1) - (= x x_0) - (= x! x_0) - (= y y_1) - (= y! y_1) - (= tmp tmp!) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= conf_1_1 conf_1) (= conf_4_1 conf_4) (= lock_2 lock) (= x_1 x) (= y_2 y) (= conf_0_1 conf_0!) (= conf_1_1 conf_1!) (= conf_4_1 conf_4!) (= lock_2 lock!) (= x_1 x!) (= y_2 y!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= lock lock!) (= tmp tmp!)) (and (not (not (= x_1 y_2))) (not (= lock_2 1)) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= lock lock_1) (= lock! lock_1) (= x x_0) (= x! x_0) (= y y_1) (= y! y_1) (= tmp tmp!)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (lock Int) (x Int) (y Int) (tmp Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (conf_4_3 Int) (conf_4_4 Int) (lock_0 Int) (lock_1 Int) (lock_2 Int) (lock_3 Int) (lock_4 Int) (lock_5 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (x_4 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (y_4 Int)) Bool - (and - (or - (not - (and - (= conf_0 conf_0_1) - (= conf_1 conf_1_1) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_1) - (= lock lock_2) - (= x x_1) - (= y y_2) - ) - ) - (not - (and - (not (not (= x_1 y_2))) - (= lock_3 1) - (= conf_4_2 (+ conf_1_1 conf_0_1)) - (= x_2 y_2) - (= conf_1_2 (- conf_2_0 conf_4_2)) - (= conf_0_2 conf_0_1) - (= conf_1_3 conf_1_2) - (= conf_4_3 conf_4_2) - (= lock_4 lock_3) - (= x_3 x_2) - (= y_3 y_2) - (= conf_0_1 conf_0_2) - (= conf_1_1 conf_1_3) - (= conf_4_1 conf_4_3) - (= lock_2 lock_4) - (= x_1 x_3) - (= y_2 y_3) - (not (not (= x_1 y_2))) - (not (= lock_2 1)) - ) - ) - ) - (or - (not - (and - (= conf_0 conf_0_1) - (= conf_1 conf_1_1) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_1) - (= lock lock_2) - (= x x_1) - (= y y_2) - ) - ) - (not - (and - (not (not (= x_1 y_2))) - (= lock_5 0) - (= conf_0_3 (+ 310 561)) - (= x_4 y_2) - (= conf_0_4 184) - (= y_4 (+ y_2 1)) - (= conf_4_4 (+ conf_4_1 143)) - (= conf_0_2 conf_0_4) - (= conf_1_3 conf_1_1) - (= conf_4_3 conf_4_4) - (= lock_4 lock_5) - (= x_3 x_4) - (= y_3 y_4) - (= conf_0_1 conf_0_2) - (= conf_1_1 conf_1_3) - (= conf_4_1 conf_4_3) - (= lock_2 lock_4) - (= x_1 x_3) - (= y_2 y_3) - (not (not (= x_1 y_2))) - (not (= lock_2 1)) - ) - ) - ) - ) -) + (and (or (not (and (= conf_0 conf_0_1) (= conf_1 conf_1_1) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_1) (= lock lock_2) (= x x_1) (= y y_2))) (not (and (not (not (= x_1 y_2))) (= lock_3 1) (= conf_4_2 (+ conf_1_1 conf_0_1)) (= x_2 y_2) (= conf_1_2 (- conf_2_0 conf_4_2)) (= conf_0_2 conf_0_1) (= conf_1_3 conf_1_2) (= conf_4_3 conf_4_2) (= lock_4 lock_3) (= x_3 x_2) (= y_3 y_2) (= conf_0_1 conf_0_2) (= conf_1_1 conf_1_3) (= conf_4_1 conf_4_3) (= lock_2 lock_4) (= x_1 x_3) (= y_2 y_3) (not (not (= x_1 y_2))) (not (= lock_2 1))))) (or (not (and (= conf_0 conf_0_1) (= conf_1 conf_1_1) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_1) (= lock lock_2) (= x x_1) (= y y_2))) (not (and (not (not (= x_1 y_2))) (= lock_5 0) (= conf_0_3 (+ 310 561)) (= x_4 y_2) (= conf_0_4 184) (= y_4 (+ y_2 1)) (= conf_4_4 (+ conf_4_1 143)) (= conf_0_2 conf_0_4) (= conf_1_3 conf_1_1) (= conf_4_3 conf_4_4) (= lock_4 lock_5) (= x_3 x_4) (= y_3 y_4) (= conf_0_1 conf_0_2) (= conf_1_1 conf_1_3) (= conf_4_1 conf_4_3) (= lock_2 lock_4) (= x_1 x_3) (= y_2 y_3) (not (not (= x_1 y_2))) (not (= lock_2 1))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/91.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/91.c.sl index f4a2550..5228ea3 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/91.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/91.c.sl @@ -1,58 +1,15 @@ (set-logic LIA) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var x_0 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) - (synth-inv inv-f ((x Int) (y Int) (x_0 Int) (y_0 Int) (y_1 Int) (y_2 Int))) (define-fun pre-f ((x Int) (y Int) (x_0 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (and - (= x x_0) - (= y y_0) - (= x_0 0) - (= y_0 0) - ) -) - + (and (= x x_0) (= y y_0) (= x_0 0) (= y_0 0))) (define-fun trans-f ((x Int) (y Int) (x_0 Int) (y_0 Int) (y_1 Int) (y_2 Int) (x! Int) (y! Int) (x_0! Int) (y_0! Int) (y_1! Int) (y_2! Int)) Bool - (or - (and - (= y_1 y) - (= y_1 y!) - (= x x!) - ) - (and - (= y_1 y) - (>= y_1 0) - (= y_2 (+ y_1 x_0)) - (= y_2 y!) - (= x x_0) - (= x! x_0) - ) - ) -) - + (or (and (= y_1 y) (= y_1 y!) (= x x!)) (and (= y_1 y) (>= y_1 0) (= y_2 (+ y_1 x_0)) (= y_2 y!) (= x x_0) (= x! x_0)))) (define-fun post-f ((x Int) (y Int) (x_0 Int) (y_0 Int) (y_1 Int) (y_2 Int)) Bool - (or - (not - (and - (= x x_0) - (= y y_1) - ) - ) - (not - (and - (not (>= y_1 0)) - (not (>= y_1 0)) - ) - ) - ) -) + (or (not (and (= x x_0) (= y y_1))) (not (and (not (>= y_1 0)) (not (>= y_1 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/91_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/91_conf1.sl index fd011ff..f3955da 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/91_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/91_conf1.sl @@ -1,73 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) -(declare-primed-var y_3 Int) - (synth-inv inv-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (x_0 Int) (x_1 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int))) (define-fun pre-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (x_0 Int) (x_1 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= x x_1) - (= y y_1) - (= conf_0_0 8) - (= x_1 0) - (= y_1 0) - ) -) - + (and (= conf_0 conf_0_0) (= x x_1) (= y y_1) (= conf_0_0 8) (= x_1 0) (= y_1 0))) (define-fun trans-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (x_0 Int) (x_1 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (conf_0! Int) (x! Int) (y! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (x_0! Int) (x_1! Int) (y_0! Int) (y_1! Int) (y_2! Int) (y_3! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= y_2 y) - (= conf_0_1 conf_0!) - (= y_2 y!) - (= conf_0 conf_0!) - (= x x!) - ) - (and - (= conf_0_1 conf_0) - (= y_2 y) - (>= y_2 0) - (= y_3 (+ y_2 x_1)) - (= conf_0_2 conf_0_1) - (= conf_0_2 conf_0!) - (= y_3 y!) - (= x x_1) - (= x! x_1) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= y_2 y) (= conf_0_1 conf_0!) (= y_2 y!) (= conf_0 conf_0!) (= x x!)) (and (= conf_0_1 conf_0) (= y_2 y) (>= y_2 0) (= y_3 (+ y_2 x_1)) (= conf_0_2 conf_0_1) (= conf_0_2 conf_0!) (= y_3 y!) (= x x_1) (= x! x_1)))) (define-fun post-f ((conf_0 Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (x_0 Int) (x_1 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= x x_1) - (= y y_2) - ) - ) - (not - (and - (not (>= y_2 0)) - (not (>= y_2 0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= x x_1) (= y y_2))) (not (and (not (>= y_2 0)) (not (>= y_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/91_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/91_conf5.sl index d5cd862..ea952b8 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/91_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/91_conf5.sl @@ -1,105 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_3_1 Int) -(declare-primed-var conf_3_2 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) -(declare-primed-var y_3 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_1) - (= y y_1) - (= conf_0_0 5) - (= conf_1_0 3) - (= conf_2_0 4) - (= conf_3_0 3) - (= conf_4_0 8) - (= x_1 0) - (= y_1 0) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_1) (= y y_1) (= conf_0_0 5) (= conf_1_0 3) (= conf_2_0 4) (= conf_3_0 3) (= conf_4_0 8) (= x_1 0) (= y_1 0))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (x! Int) (y! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_3_1! Int) (conf_3_2! Int) (conf_4_0! Int) (x_0! Int) (x_1! Int) (y_0! Int) (y_1! Int) (y_2! Int) (y_3! Int)) Bool - (or - (and - (= conf_3_1 conf_3) - (= y_2 y) - (= conf_3_1 conf_3!) - (= y_2 y!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= x x!) - ) - (and - (= conf_3_1 conf_3) - (= y_2 y) - (>= y_2 0) - (= y_3 (+ y_2 x_1)) - (= conf_3_2 (+ conf_2_0 917)) - (= conf_3_2 conf_3!) - (= y_3 y!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= x x_1) - (= x! x_1) - ) - ) -) - + (or (and (= conf_3_1 conf_3) (= y_2 y) (= conf_3_1 conf_3!) (= y_2 y!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= x x!)) (and (= conf_3_1 conf_3) (= y_2 y) (>= y_2 0) (= y_3 (+ y_2 x_1)) (= conf_3_2 (+ conf_2_0 917)) (= conf_3_2 conf_3!) (= y_3 y!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= x x_1) (= x! x_1)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (conf_0_0 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_3_1 Int) (conf_3_2 Int) (conf_4_0 Int) (x_0 Int) (x_1 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_1) - (= conf_4 conf_4_0) - (= x x_1) - (= y y_2) - ) - ) - (not - (and - (not (>= y_2 0)) - (not (>= y_2 0)) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_1) (= conf_4 conf_4_0) (= x x_1) (= y y_2))) (not (and (not (>= y_2 0)) (not (>= y_2 0)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/93.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/93.c.sl index 778c1fc..72d6dda 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/93.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/93.c.sl @@ -1,114 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var n Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var tmp Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var x_4 Int) -(declare-primed-var x_5 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) -(declare-primed-var y_3 Int) -(declare-primed-var y_4 Int) -(declare-primed-var y_5 Int) - (synth-inv inv-f ((i Int) (n Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (x_4 Int) (x_5 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (y_4 Int) (y_5 Int))) (define-fun pre-f ((i Int) (n Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (x_4 Int) (x_5 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (y_4 Int) (y_5 Int)) Bool - (and - (= i i_1) - (= n n_0) - (= x x_1) - (= y y_1) - (>= n_0 0) - (= i_1 0) - (= x_1 0) - (= y_1 0) - ) -) - + (and (= i i_1) (= n n_0) (= x x_1) (= y y_1) (>= n_0 0) (= i_1 0) (= x_1 0) (= y_1 0))) (define-fun trans-f ((i Int) (n Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (x_4 Int) (x_5 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (y_4 Int) (y_5 Int) (i! Int) (n! Int) (x! Int) (y! Int) (tmp! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (x_4! Int) (x_5! Int) (y_0! Int) (y_1! Int) (y_2! Int) (y_3! Int) (y_4! Int) (y_5! Int)) Bool - (or - (and - (= i_2 i) - (= x_2 x) - (= y_2 y) - (= i_2 i!) - (= x_2 x!) - (= y_2 y!) - (= n n_0) - (= n! n_0) - (= x x!) - (= y y!) - (= tmp tmp!) - ) - (and - (= i_2 i) - (= x_2 x) - (= y_2 y) - (< i_2 n_0) - (= i_3 (+ i_2 1)) - (= x_3 (+ x_2 1)) - (= y_3 (+ y_2 2)) - (= x_4 x_3) - (= y_4 y_3) - (= i_3 i!) - (= x_4 x!) - (= y_4 y!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= i_2 i) - (= x_2 x) - (= y_2 y) - (< i_2 n_0) - (= i_3 (+ i_2 1)) - (= x_5 (+ x_2 2)) - (= y_5 (+ y_2 1)) - (= x_4 x_5) - (= y_4 y_5) - (= i_3 i!) - (= x_4 x!) - (= y_4 y!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= i_2 i) (= x_2 x) (= y_2 y) (= i_2 i!) (= x_2 x!) (= y_2 y!) (= n n_0) (= n! n_0) (= x x!) (= y y!) (= tmp tmp!)) (and (= i_2 i) (= x_2 x) (= y_2 y) (< i_2 n_0) (= i_3 (+ i_2 1)) (= x_3 (+ x_2 1)) (= y_3 (+ y_2 2)) (= x_4 x_3) (= y_4 y_3) (= i_3 i!) (= x_4 x!) (= y_4 y!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= i_2 i) (= x_2 x) (= y_2 y) (< i_2 n_0) (= i_3 (+ i_2 1)) (= x_5 (+ x_2 2)) (= y_5 (+ y_2 1)) (= x_4 x_5) (= y_4 y_5) (= i_3 i!) (= x_4 x!) (= y_4 y!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((i Int) (n Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (x_4 Int) (x_5 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (y_4 Int) (y_5 Int)) Bool - (or - (not - (and - (= i i_2) - (= n n_0) - (= x x_2) - (= y y_2) - ) - ) - (not - (and - (not (< i_2 n_0)) - (not (= (* 3 n_0) (+ x_2 y_2))) - ) - ) - ) -) + (or (not (and (= i i_2) (= n n_0) (= x x_2) (= y y_2))) (not (and (not (< i_2 n_0)) (not (= (* 3 n_0) (+ x_2 y_2))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/93_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/93_conf1.sl index 9bcff7f..99fbd25 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/93_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/93_conf1.sl @@ -1,141 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var conf_0 Int) -(declare-primed-var n Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var tmp Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_0_4 Int) -(declare-primed-var conf_0_5 Int) -(declare-primed-var conf_0_6 Int) -(declare-primed-var conf_0_7 Int) -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var x_4 Int) -(declare-primed-var x_5 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) -(declare-primed-var y_3 Int) -(declare-primed-var y_4 Int) -(declare-primed-var y_5 Int) - (synth-inv inv-f ((i Int) (conf_0 Int) (n Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (conf_0_5 Int) (conf_0_6 Int) (conf_0_7 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (x_4 Int) (x_5 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (y_4 Int) (y_5 Int))) (define-fun pre-f ((i Int) (conf_0 Int) (n Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (conf_0_5 Int) (conf_0_6 Int) (conf_0_7 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (x_4 Int) (x_5 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (y_4 Int) (y_5 Int)) Bool - (and - (= i i_1) - (= conf_0 conf_0_0) - (= n n_0) - (= x x_1) - (= y y_1) - (= conf_0_0 3) - (>= n_0 0) - (= i_1 0) - (= x_1 0) - (= y_1 0) - ) -) - + (and (= i i_1) (= conf_0 conf_0_0) (= n n_0) (= x x_1) (= y y_1) (= conf_0_0 3) (>= n_0 0) (= i_1 0) (= x_1 0) (= y_1 0))) (define-fun trans-f ((i Int) (conf_0 Int) (n Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (conf_0_5 Int) (conf_0_6 Int) (conf_0_7 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (x_4 Int) (x_5 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (y_4 Int) (y_5 Int) (i! Int) (conf_0! Int) (n! Int) (x! Int) (y! Int) (tmp! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_0_4! Int) (conf_0_5! Int) (conf_0_6! Int) (conf_0_7! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (x_4! Int) (x_5! Int) (y_0! Int) (y_1! Int) (y_2! Int) (y_3! Int) (y_4! Int) (y_5! Int)) Bool - (or - (and - (= i_2 i) - (= conf_0_1 conf_0) - (= x_2 x) - (= y_2 y) - (= i_2 i!) - (= conf_0_1 conf_0!) - (= x_2 x!) - (= y_2 y!) - (= n n_0) - (= n! n_0) - (= conf_0 conf_0!) - (= x x!) - (= y y!) - (= tmp tmp!) - ) - (and - (= i_2 i) - (= conf_0_1 conf_0) - (= x_2 x) - (= y_2 y) - (< i_2 n_0) - (= i_3 (+ i_2 1)) - (= conf_0_2 (- 948 conf_0_1)) - (= x_3 (+ x_2 1)) - (= conf_0_3 (- conf_0_2 conf_0_2)) - (= y_3 (+ y_2 2)) - (= conf_0_4 conf_0_3) - (= conf_0_5 conf_0_4) - (= x_4 x_3) - (= y_4 y_3) - (= i_3 i!) - (= conf_0_5 conf_0!) - (= x_4 x!) - (= y_4 y!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= i_2 i) - (= conf_0_1 conf_0) - (= x_2 x) - (= y_2 y) - (< i_2 n_0) - (= i_3 (+ i_2 1)) - (= conf_0_2 (- 948 conf_0_1)) - (= x_5 (+ x_2 2)) - (= conf_0_6 918) - (= y_5 (+ y_2 1)) - (= conf_0_7 (+ 607 185)) - (= conf_0_5 conf_0_7) - (= x_4 x_5) - (= y_4 y_5) - (= i_3 i!) - (= conf_0_5 conf_0!) - (= x_4 x!) - (= y_4 y!) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= i_2 i) (= conf_0_1 conf_0) (= x_2 x) (= y_2 y) (= i_2 i!) (= conf_0_1 conf_0!) (= x_2 x!) (= y_2 y!) (= n n_0) (= n! n_0) (= conf_0 conf_0!) (= x x!) (= y y!) (= tmp tmp!)) (and (= i_2 i) (= conf_0_1 conf_0) (= x_2 x) (= y_2 y) (< i_2 n_0) (= i_3 (+ i_2 1)) (= conf_0_2 (- 948 conf_0_1)) (= x_3 (+ x_2 1)) (= conf_0_3 (- conf_0_2 conf_0_2)) (= y_3 (+ y_2 2)) (= conf_0_4 conf_0_3) (= conf_0_5 conf_0_4) (= x_4 x_3) (= y_4 y_3) (= i_3 i!) (= conf_0_5 conf_0!) (= x_4 x!) (= y_4 y!) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= i_2 i) (= conf_0_1 conf_0) (= x_2 x) (= y_2 y) (< i_2 n_0) (= i_3 (+ i_2 1)) (= conf_0_2 (- 948 conf_0_1)) (= x_5 (+ x_2 2)) (= conf_0_6 918) (= y_5 (+ y_2 1)) (= conf_0_7 (+ 607 185)) (= conf_0_5 conf_0_7) (= x_4 x_5) (= y_4 y_5) (= i_3 i!) (= conf_0_5 conf_0!) (= x_4 x!) (= y_4 y!) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((i Int) (conf_0 Int) (n Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_0_4 Int) (conf_0_5 Int) (conf_0_6 Int) (conf_0_7 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (x_4 Int) (x_5 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (y_4 Int) (y_5 Int)) Bool - (or - (not - (and - (= i i_2) - (= conf_0 conf_0_1) - (= n n_0) - (= x x_2) - (= y y_2) - ) - ) - (not - (and - (not (< i_2 n_0)) - (not (= (* 3 n_0) (+ x_2 y_2))) - ) - ) - ) -) + (or (not (and (= i i_2) (= conf_0 conf_0_1) (= n n_0) (= x x_2) (= y y_2))) (not (and (not (< i_2 n_0)) (not (= (* 3 n_0) (+ x_2 y_2))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/93_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/93_conf5.sl index b5bd3ff..875d3b8 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/93_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/93_conf5.sl @@ -1,187 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var n Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var tmp Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_1_1 Int) -(declare-primed-var conf_1_2 Int) -(declare-primed-var conf_1_3 Int) -(declare-primed-var conf_1_4 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_2_1 Int) -(declare-primed-var conf_2_2 Int) -(declare-primed-var conf_2_3 Int) -(declare-primed-var conf_2_4 Int) -(declare-primed-var conf_2_5 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var x_4 Int) -(declare-primed-var x_5 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) -(declare-primed-var y_3 Int) -(declare-primed-var y_4 Int) -(declare-primed-var y_5 Int) - (synth-inv inv-f ((i Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_1_4 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_2_3 Int) (conf_2_4 Int) (conf_2_5 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (x_4 Int) (x_5 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (y_4 Int) (y_5 Int))) (define-fun pre-f ((i Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_1_4 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_2_3 Int) (conf_2_4 Int) (conf_2_5 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (x_4 Int) (x_5 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (y_4 Int) (y_5 Int)) Bool - (and - (= i i_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= n n_0) - (= x x_1) - (= y y_1) - (= conf_0_0 8) - (= conf_1_0 8) - (= conf_2_0 5) - (= conf_3_0 3) - (= conf_4_0 3) - (>= n_0 0) - (= i_1 0) - (= x_1 0) - (= y_1 0) - ) -) - + (and (= i i_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= n n_0) (= x x_1) (= y y_1) (= conf_0_0 8) (= conf_1_0 8) (= conf_2_0 5) (= conf_3_0 3) (= conf_4_0 3) (>= n_0 0) (= i_1 0) (= x_1 0) (= y_1 0))) (define-fun trans-f ((i Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_1_4 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_2_3 Int) (conf_2_4 Int) (conf_2_5 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (x_4 Int) (x_5 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (y_4 Int) (y_5 Int) (i! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (n! Int) (x! Int) (y! Int) (tmp! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_1_1! Int) (conf_1_2! Int) (conf_1_3! Int) (conf_1_4! Int) (conf_2_0! Int) (conf_2_1! Int) (conf_2_2! Int) (conf_2_3! Int) (conf_2_4! Int) (conf_2_5! Int) (conf_3_0! Int) (conf_4_0! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (x_4! Int) (x_5! Int) (y_0! Int) (y_1! Int) (y_2! Int) (y_3! Int) (y_4! Int) (y_5! Int)) Bool - (or - (and - (= i_2 i) - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (= x_2 x) - (= y_2 y) - (= i_2 i!) - (= conf_1_1 conf_1!) - (= conf_2_1 conf_2!) - (= x_2 x!) - (= y_2 y!) - (= n n_0) - (= n! n_0) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= x x!) - (= y y!) - (= tmp tmp!) - ) - (and - (= i_2 i) - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (= x_2 x) - (= y_2 y) - (< i_2 n_0) - (= i_3 (+ i_2 1)) - (= conf_2_2 (- conf_4_0 conf_2_1)) - (= x_3 (+ x_2 1)) - (= conf_1_2 (+ conf_3_0 conf_1_1)) - (= y_3 (+ y_2 2)) - (= conf_2_3 918) - (= conf_1_3 conf_1_2) - (= conf_2_4 conf_2_3) - (= x_4 x_3) - (= y_4 y_3) - (= i_3 i!) - (= conf_1_3 conf_1!) - (= conf_2_4 conf_2!) - (= x_4 x!) - (= y_4 y!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - (and - (= i_2 i) - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (= x_2 x) - (= y_2 y) - (< i_2 n_0) - (= i_3 (+ i_2 1)) - (= conf_2_2 (- conf_4_0 conf_2_1)) - (= x_5 (+ x_2 2)) - (= conf_1_4 (+ 607 185)) - (= y_5 (+ y_2 1)) - (= conf_2_5 773) - (= conf_1_3 conf_1_4) - (= conf_2_4 conf_2_5) - (= x_4 x_5) - (= y_4 y_5) - (= i_3 i!) - (= conf_1_3 conf_1!) - (= conf_2_4 conf_2!) - (= x_4 x!) - (= y_4 y!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - (= tmp tmp!) - ) - ) -) - + (or (and (= i_2 i) (= conf_1_1 conf_1) (= conf_2_1 conf_2) (= x_2 x) (= y_2 y) (= i_2 i!) (= conf_1_1 conf_1!) (= conf_2_1 conf_2!) (= x_2 x!) (= y_2 y!) (= n n_0) (= n! n_0) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= x x!) (= y y!) (= tmp tmp!)) (and (= i_2 i) (= conf_1_1 conf_1) (= conf_2_1 conf_2) (= x_2 x) (= y_2 y) (< i_2 n_0) (= i_3 (+ i_2 1)) (= conf_2_2 (- conf_4_0 conf_2_1)) (= x_3 (+ x_2 1)) (= conf_1_2 (+ conf_3_0 conf_1_1)) (= y_3 (+ y_2 2)) (= conf_2_3 918) (= conf_1_3 conf_1_2) (= conf_2_4 conf_2_3) (= x_4 x_3) (= y_4 y_3) (= i_3 i!) (= conf_1_3 conf_1!) (= conf_2_4 conf_2!) (= x_4 x!) (= y_4 y!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)) (and (= i_2 i) (= conf_1_1 conf_1) (= conf_2_1 conf_2) (= x_2 x) (= y_2 y) (< i_2 n_0) (= i_3 (+ i_2 1)) (= conf_2_2 (- conf_4_0 conf_2_1)) (= x_5 (+ x_2 2)) (= conf_1_4 (+ 607 185)) (= y_5 (+ y_2 1)) (= conf_2_5 773) (= conf_1_3 conf_1_4) (= conf_2_4 conf_2_5) (= x_4 x_5) (= y_4 y_5) (= i_3 i!) (= conf_1_3 conf_1!) (= conf_2_4 conf_2!) (= x_4 x!) (= y_4 y!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0) (= tmp tmp!)))) (define-fun post-f ((i Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (y Int) (tmp Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_1_3 Int) (conf_1_4 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_2_3 Int) (conf_2_4 Int) (conf_2_5 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (x_4 Int) (x_5 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (y_4 Int) (y_5 Int)) Bool - (or - (not - (and - (= i i_2) - (= conf_0 conf_0_0) - (= conf_1 conf_1_1) - (= conf_2 conf_2_1) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= n n_0) - (= x x_2) - (= y y_2) - ) - ) - (not - (and - (not (< i_2 n_0)) - (not (= (* 3 n_0) (+ x_2 y_2))) - ) - ) - ) -) + (or (not (and (= i i_2) (= conf_0 conf_0_0) (= conf_1 conf_1_1) (= conf_2 conf_2_1) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= n n_0) (= x x_2) (= y y_2))) (not (and (not (< i_2 n_0)) (not (= (* 3 n_0) (+ x_2 y_2))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/94.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/94.c.sl index 15e74d4..ddf0cb6 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/94.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/94.c.sl @@ -1,82 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var k Int) -(declare-primed-var n Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var j_0 Int) -(declare-primed-var j_1 Int) -(declare-primed-var j_2 Int) -(declare-primed-var j_3 Int) -(declare-primed-var k_0 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((i Int) (j Int) (k Int) (n Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (k_0 Int) (n_0 Int))) (define-fun pre-f ((i Int) (j Int) (k Int) (n Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (k_0 Int) (n_0 Int)) Bool - (and - (= i i_1) - (= j j_1) - (= k k_0) - (= n n_0) - (>= k_0 0) - (>= n_0 0) - (= i_1 0) - (= j_1 0) - ) -) - + (and (= i i_1) (= j j_1) (= k k_0) (= n n_0) (>= k_0 0) (>= n_0 0) (= i_1 0) (= j_1 0))) (define-fun trans-f ((i Int) (j Int) (k Int) (n Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (k_0 Int) (n_0 Int) (i! Int) (j! Int) (k! Int) (n! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (j_0! Int) (j_1! Int) (j_2! Int) (j_3! Int) (k_0! Int) (n_0! Int)) Bool - (or - (and - (= i_2 i) - (= j_2 j) - (= i_2 i!) - (= j_2 j!) - (= n n_0) - (= n! n_0) - (= j j!) - (= k k!) - ) - (and - (= i_2 i) - (= j_2 j) - (<= i_2 n_0) - (= i_3 (+ i_2 1)) - (= j_3 (+ j_2 i_3)) - (= i_3 i!) - (= j_3 j!) - (= k k_0) - (= k! k_0) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= i_2 i) (= j_2 j) (= i_2 i!) (= j_2 j!) (= n n_0) (= n! n_0) (= j j!) (= k k!)) (and (= i_2 i) (= j_2 j) (<= i_2 n_0) (= i_3 (+ i_2 1)) (= j_3 (+ j_2 i_3)) (= i_3 i!) (= j_3 j!) (= k k_0) (= k! k_0) (= n n_0) (= n! n_0)))) (define-fun post-f ((i Int) (j Int) (k Int) (n Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (k_0 Int) (n_0 Int)) Bool - (or - (not - (and - (= i i_2) - (= j j_2) - (= k k_0) - (= n n_0) - ) - ) - (not - (and - (not (<= i_2 n_0)) - (not (> (+ i_2 (+ j_2 k_0)) (* 2 n_0))) - ) - ) - ) -) + (or (not (and (= i i_2) (= j j_2) (= k k_0) (= n n_0))) (not (and (not (<= i_2 n_0)) (not (> (+ i_2 (+ j_2 k_0)) (* 2 n_0))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/94_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/94_conf1.sl index 50b9178..82d99fc 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/94_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/94_conf1.sl @@ -1,97 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var conf_0 Int) -(declare-primed-var k Int) -(declare-primed-var n Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var j_0 Int) -(declare-primed-var j_1 Int) -(declare-primed-var j_2 Int) -(declare-primed-var j_3 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var k_0 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((i Int) (j Int) (conf_0 Int) (k Int) (n Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (k_0 Int) (n_0 Int))) (define-fun pre-f ((i Int) (j Int) (conf_0 Int) (k Int) (n Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (k_0 Int) (n_0 Int)) Bool - (and - (= i i_1) - (= j j_1) - (= conf_0 conf_0_0) - (= k k_0) - (= n n_0) - (= conf_0_0 9) - (>= k_0 0) - (>= n_0 0) - (= i_1 0) - (= j_1 0) - ) -) - + (and (= i i_1) (= j j_1) (= conf_0 conf_0_0) (= k k_0) (= n n_0) (= conf_0_0 9) (>= k_0 0) (>= n_0 0) (= i_1 0) (= j_1 0))) (define-fun trans-f ((i Int) (j Int) (conf_0 Int) (k Int) (n Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (k_0 Int) (n_0 Int) (i! Int) (j! Int) (conf_0! Int) (k! Int) (n! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (j_0! Int) (j_1! Int) (j_2! Int) (j_3! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (k_0! Int) (n_0! Int)) Bool - (or - (and - (= i_2 i) - (= j_2 j) - (= conf_0_1 conf_0) - (= i_2 i!) - (= j_2 j!) - (= conf_0_1 conf_0!) - (= n n_0) - (= n! n_0) - (= j j!) - (= conf_0 conf_0!) - (= k k!) - ) - (and - (= i_2 i) - (= j_2 j) - (= conf_0_1 conf_0) - (<= i_2 n_0) - (= i_3 (+ i_2 1)) - (= conf_0_2 153) - (= j_3 (+ j_2 i_3)) - (= conf_0_3 (+ 205 conf_0_2)) - (= i_3 i!) - (= j_3 j!) - (= conf_0_3 conf_0!) - (= k k_0) - (= k! k_0) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= i_2 i) (= j_2 j) (= conf_0_1 conf_0) (= i_2 i!) (= j_2 j!) (= conf_0_1 conf_0!) (= n n_0) (= n! n_0) (= j j!) (= conf_0 conf_0!) (= k k!)) (and (= i_2 i) (= j_2 j) (= conf_0_1 conf_0) (<= i_2 n_0) (= i_3 (+ i_2 1)) (= conf_0_2 153) (= j_3 (+ j_2 i_3)) (= conf_0_3 (+ 205 conf_0_2)) (= i_3 i!) (= j_3 j!) (= conf_0_3 conf_0!) (= k k_0) (= k! k_0) (= n n_0) (= n! n_0)))) (define-fun post-f ((i Int) (j Int) (conf_0 Int) (k Int) (n Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (k_0 Int) (n_0 Int)) Bool - (or - (not - (and - (= i i_2) - (= j j_2) - (= conf_0 conf_0_1) - (= k k_0) - (= n n_0) - ) - ) - (not - (and - (not (<= i_2 n_0)) - (not (> (+ i_2 (+ j_2 k_0)) (* 2 n_0))) - ) - ) - ) -) + (or (not (and (= i i_2) (= j j_2) (= conf_0 conf_0_1) (= k k_0) (= n n_0))) (not (and (not (<= i_2 n_0)) (not (> (+ i_2 (+ j_2 k_0)) (* 2 n_0))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/94_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/94_conf5.sl index acc4db4..2f85654 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/94_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/94_conf5.sl @@ -1,129 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var k Int) -(declare-primed-var n Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var j_0 Int) -(declare-primed-var j_1 Int) -(declare-primed-var j_2 Int) -(declare-primed-var j_3 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var k_0 Int) -(declare-primed-var n_0 Int) - (synth-inv inv-f ((i Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (k Int) (n Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (k_0 Int) (n_0 Int))) (define-fun pre-f ((i Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (k Int) (n Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (k_0 Int) (n_0 Int)) Bool - (and - (= i i_1) - (= j j_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= k k_0) - (= n n_0) - (= conf_0_0 3) - (= conf_1_0 2) - (= conf_2_0 0) - (= conf_3_0 6) - (= conf_4_0 9) - (>= k_0 0) - (>= n_0 0) - (= i_1 0) - (= j_1 0) - ) -) - + (and (= i i_1) (= j j_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= k k_0) (= n n_0) (= conf_0_0 3) (= conf_1_0 2) (= conf_2_0 0) (= conf_3_0 6) (= conf_4_0 9) (>= k_0 0) (>= n_0 0) (= i_1 0) (= j_1 0))) (define-fun trans-f ((i Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (k Int) (n Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (k_0 Int) (n_0 Int) (i! Int) (j! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (k! Int) (n! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (j_0! Int) (j_1! Int) (j_2! Int) (j_3! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_4_0! Int) (k_0! Int) (n_0! Int)) Bool - (or - (and - (= i_2 i) - (= j_2 j) - (= conf_0_1 conf_0) - (= i_2 i!) - (= j_2 j!) - (= conf_0_1 conf_0!) - (= n n_0) - (= n! n_0) - (= j j!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= k k!) - ) - (and - (= i_2 i) - (= j_2 j) - (= conf_0_1 conf_0) - (<= i_2 n_0) - (= i_3 (+ i_2 1)) - (= conf_0_2 (+ 205 conf_0_1)) - (= j_3 (+ j_2 i_3)) - (= conf_0_3 797) - (= i_3 i!) - (= j_3 j!) - (= conf_0_3 conf_0!) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= k k_0) - (= k! k_0) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= i_2 i) (= j_2 j) (= conf_0_1 conf_0) (= i_2 i!) (= j_2 j!) (= conf_0_1 conf_0!) (= n n_0) (= n! n_0) (= j j!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= k k!)) (and (= i_2 i) (= j_2 j) (= conf_0_1 conf_0) (<= i_2 n_0) (= i_3 (+ i_2 1)) (= conf_0_2 (+ 205 conf_0_1)) (= j_3 (+ j_2 i_3)) (= conf_0_3 797) (= i_3 i!) (= j_3 j!) (= conf_0_3 conf_0!) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= k k_0) (= k! k_0) (= n n_0) (= n! n_0)))) (define-fun post-f ((i Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (k Int) (n Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (k_0 Int) (n_0 Int)) Bool - (or - (not - (and - (= i i_2) - (= j j_2) - (= conf_0 conf_0_1) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= k k_0) - (= n n_0) - ) - ) - (not - (and - (not (<= i_2 n_0)) - (not (> (+ i_2 (+ j_2 k_0)) (* 2 n_0))) - ) - ) - ) -) + (or (not (and (= i i_2) (= j j_2) (= conf_0 conf_0_1) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= k k_0) (= n n_0))) (not (and (not (<= i_2 n_0)) (not (> (+ i_2 (+ j_2 k_0)) (* 2 n_0))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/95.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/95.c.sl index 93903dc..7b4da73 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/95.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/95.c.sl @@ -1,82 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var j_0 Int) -(declare-primed-var j_1 Int) -(declare-primed-var j_2 Int) -(declare-primed-var j_3 Int) -(declare-primed-var x_0 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) - (synth-inv inv-f ((i Int) (j Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (x_0 Int) (y_0 Int) (y_1 Int))) (define-fun pre-f ((i Int) (j Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (x_0 Int) (y_0 Int) (y_1 Int)) Bool - (and - (= i i_1) - (= j j_1) - (= y y_1) - (= j_1 0) - (= i_1 0) - (= y_1 1) - ) -) - + (and (= i i_1) (= j j_1) (= y y_1) (= j_1 0) (= i_1 0) (= y_1 1))) (define-fun trans-f ((i Int) (j Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (x_0 Int) (y_0 Int) (y_1 Int) (i! Int) (j! Int) (x! Int) (y! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (j_0! Int) (j_1! Int) (j_2! Int) (j_3! Int) (x_0! Int) (y_0! Int) (y_1! Int)) Bool - (or - (and - (= i_2 i) - (= j_2 j) - (= i_2 i!) - (= j_2 j!) - (= x x_0) - (= x! x_0) - (= j j!) - (= y y!) - ) - (and - (= i_2 i) - (= j_2 j) - (<= i_2 x_0) - (= i_3 (+ i_2 1)) - (= j_3 (+ j_2 y_1)) - (= i_3 i!) - (= j_3 j!) - (= x x_0) - (= x! x_0) - (= y y_1) - (= y! y_1) - ) - ) -) - + (or (and (= i_2 i) (= j_2 j) (= i_2 i!) (= j_2 j!) (= x x_0) (= x! x_0) (= j j!) (= y y!)) (and (= i_2 i) (= j_2 j) (<= i_2 x_0) (= i_3 (+ i_2 1)) (= j_3 (+ j_2 y_1)) (= i_3 i!) (= j_3 j!) (= x x_0) (= x! x_0) (= y y_1) (= y! y_1)))) (define-fun post-f ((i Int) (j Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (x_0 Int) (y_0 Int) (y_1 Int)) Bool - (or - (not - (and - (= i i_2) - (= j j_2) - (= x x_0) - (= y y_1) - ) - ) - (not - (and - (not (<= i_2 x_0)) - (= y_1 1) - (not (= i_2 j_2)) - ) - ) - ) -) + (or (not (and (= i i_2) (= j j_2) (= x x_0) (= y y_1))) (not (and (not (<= i_2 x_0)) (= y_1 1) (not (= i_2 j_2)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/95_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/95_conf1.sl index a5b1f30..b2c51cb 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/95_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/95_conf1.sl @@ -1,97 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var conf_0 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var j_0 Int) -(declare-primed-var j_1 Int) -(declare-primed-var j_2 Int) -(declare-primed-var j_3 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var x_0 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) - (synth-inv inv-f ((i Int) (j Int) (conf_0 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (y_0 Int) (y_1 Int))) (define-fun pre-f ((i Int) (j Int) (conf_0 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (y_0 Int) (y_1 Int)) Bool - (and - (= i i_1) - (= j j_1) - (= conf_0 conf_0_0) - (= y y_1) - (= conf_0_0 2) - (= j_1 0) - (= i_1 0) - (= y_1 1) - ) -) - + (and (= i i_1) (= j j_1) (= conf_0 conf_0_0) (= y y_1) (= conf_0_0 2) (= j_1 0) (= i_1 0) (= y_1 1))) (define-fun trans-f ((i Int) (j Int) (conf_0 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (y_0 Int) (y_1 Int) (i! Int) (j! Int) (conf_0! Int) (x! Int) (y! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (j_0! Int) (j_1! Int) (j_2! Int) (j_3! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (x_0! Int) (y_0! Int) (y_1! Int)) Bool - (or - (and - (= i_2 i) - (= j_2 j) - (= conf_0_1 conf_0) - (= i_2 i!) - (= j_2 j!) - (= conf_0_1 conf_0!) - (= x x_0) - (= x! x_0) - (= j j!) - (= conf_0 conf_0!) - (= y y!) - ) - (and - (= i_2 i) - (= j_2 j) - (= conf_0_1 conf_0) - (<= i_2 x_0) - (= i_3 (+ i_2 1)) - (= conf_0_2 conf_0_1) - (= j_3 (+ j_2 y_1)) - (= conf_0_3 493) - (= i_3 i!) - (= j_3 j!) - (= conf_0_3 conf_0!) - (= x x_0) - (= x! x_0) - (= y y_1) - (= y! y_1) - ) - ) -) - + (or (and (= i_2 i) (= j_2 j) (= conf_0_1 conf_0) (= i_2 i!) (= j_2 j!) (= conf_0_1 conf_0!) (= x x_0) (= x! x_0) (= j j!) (= conf_0 conf_0!) (= y y!)) (and (= i_2 i) (= j_2 j) (= conf_0_1 conf_0) (<= i_2 x_0) (= i_3 (+ i_2 1)) (= conf_0_2 conf_0_1) (= j_3 (+ j_2 y_1)) (= conf_0_3 493) (= i_3 i!) (= j_3 j!) (= conf_0_3 conf_0!) (= x x_0) (= x! x_0) (= y y_1) (= y! y_1)))) (define-fun post-f ((i Int) (j Int) (conf_0 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (y_0 Int) (y_1 Int)) Bool - (or - (not - (and - (= i i_2) - (= j j_2) - (= conf_0 conf_0_1) - (= x x_0) - (= y y_1) - ) - ) - (not - (and - (not (<= i_2 x_0)) - (= y_1 1) - (not (= i_2 j_2)) - ) - ) - ) -) + (or (not (and (= i i_2) (= j j_2) (= conf_0 conf_0_1) (= x x_0) (= y y_1))) (not (and (not (<= i_2 x_0)) (= y_1 1) (not (= i_2 j_2)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/95_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/95_conf5.sl index 87e64ed..83c9fc5 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/95_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/95_conf5.sl @@ -1,132 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var j_0 Int) -(declare-primed-var j_1 Int) -(declare-primed-var j_2 Int) -(declare-primed-var j_3 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_2_1 Int) -(declare-primed-var conf_2_2 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) - (synth-inv inv-f ((i Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (x_0 Int) (y_0 Int) (y_1 Int))) (define-fun pre-f ((i Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (x_0 Int) (y_0 Int) (y_1 Int)) Bool - (and - (= i i_1) - (= j j_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= y y_1) - (= conf_0_0 5) - (= conf_1_0 9) - (= conf_2_0 2) - (= conf_3_0 7) - (= conf_4_0 2) - (= j_1 0) - (= i_1 0) - (= y_1 1) - ) -) - + (and (= i i_1) (= j j_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= y y_1) (= conf_0_0 5) (= conf_1_0 9) (= conf_2_0 2) (= conf_3_0 7) (= conf_4_0 2) (= j_1 0) (= i_1 0) (= y_1 1))) (define-fun trans-f ((i Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (x_0 Int) (y_0 Int) (y_1 Int) (i! Int) (j! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (x! Int) (y! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (j_0! Int) (j_1! Int) (j_2! Int) (j_3! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_2_1! Int) (conf_2_2! Int) (conf_3_0! Int) (conf_4_0! Int) (x_0! Int) (y_0! Int) (y_1! Int)) Bool - (or - (and - (= i_2 i) - (= j_2 j) - (= conf_0_1 conf_0) - (= conf_2_1 conf_2) - (= i_2 i!) - (= j_2 j!) - (= conf_0_1 conf_0!) - (= conf_2_1 conf_2!) - (= x x_0) - (= x! x_0) - (= j j!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= y y!) - ) - (and - (= i_2 i) - (= j_2 j) - (= conf_0_1 conf_0) - (= conf_2_1 conf_2) - (<= i_2 x_0) - (= i_3 (+ i_2 1)) - (= conf_2_2 493) - (= j_3 (+ j_2 y_1)) - (= conf_0_2 (+ 363 conf_0_1)) - (= i_3 i!) - (= j_3 j!) - (= conf_0_2 conf_0!) - (= conf_2_2 conf_2!) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= x x_0) - (= x! x_0) - (= y y_1) - (= y! y_1) - ) - ) -) - + (or (and (= i_2 i) (= j_2 j) (= conf_0_1 conf_0) (= conf_2_1 conf_2) (= i_2 i!) (= j_2 j!) (= conf_0_1 conf_0!) (= conf_2_1 conf_2!) (= x x_0) (= x! x_0) (= j j!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= y y!)) (and (= i_2 i) (= j_2 j) (= conf_0_1 conf_0) (= conf_2_1 conf_2) (<= i_2 x_0) (= i_3 (+ i_2 1)) (= conf_2_2 493) (= j_3 (+ j_2 y_1)) (= conf_0_2 (+ 363 conf_0_1)) (= i_3 i!) (= j_3 j!) (= conf_0_2 conf_0!) (= conf_2_2 conf_2!) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= x x_0) (= x! x_0) (= y y_1) (= y! y_1)))) (define-fun post-f ((i Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (x_0 Int) (y_0 Int) (y_1 Int)) Bool - (or - (not - (and - (= i i_2) - (= j j_2) - (= conf_0 conf_0_1) - (= conf_1 conf_1_0) - (= conf_2 conf_2_1) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_0) - (= y y_1) - ) - ) - (not - (and - (not (<= i_2 x_0)) - (= y_1 1) - (not (= i_2 j_2)) - ) - ) - ) -) + (or (not (and (= i i_2) (= j j_2) (= conf_0 conf_0_1) (= conf_1 conf_1_0) (= conf_2 conf_2_1) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_0) (= y y_1))) (not (and (not (<= i_2 x_0)) (= y_1 1) (not (= i_2 j_2)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/96.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/96.c.sl index ad8bcde..e4582bb 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/96.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/96.c.sl @@ -1,82 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var j_0 Int) -(declare-primed-var j_1 Int) -(declare-primed-var j_2 Int) -(declare-primed-var j_3 Int) -(declare-primed-var x_0 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) - (synth-inv inv-f ((i Int) (j Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (x_0 Int) (y_0 Int) (y_1 Int))) (define-fun pre-f ((i Int) (j Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (x_0 Int) (y_0 Int) (y_1 Int)) Bool - (and - (= i i_1) - (= j j_1) - (= y y_1) - (= j_1 0) - (= i_1 0) - (= y_1 1) - ) -) - + (and (= i i_1) (= j j_1) (= y y_1) (= j_1 0) (= i_1 0) (= y_1 1))) (define-fun trans-f ((i Int) (j Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (x_0 Int) (y_0 Int) (y_1 Int) (i! Int) (j! Int) (x! Int) (y! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (j_0! Int) (j_1! Int) (j_2! Int) (j_3! Int) (x_0! Int) (y_0! Int) (y_1! Int)) Bool - (or - (and - (= i_2 i) - (= j_2 j) - (= i_2 i!) - (= j_2 j!) - (= x x_0) - (= x! x_0) - (= j j!) - (= y y!) - ) - (and - (= i_2 i) - (= j_2 j) - (<= i_2 x_0) - (= i_3 (+ i_2 1)) - (= j_3 (+ j_2 y_1)) - (= i_3 i!) - (= j_3 j!) - (= x x_0) - (= x! x_0) - (= y y_1) - (= y! y_1) - ) - ) -) - + (or (and (= i_2 i) (= j_2 j) (= i_2 i!) (= j_2 j!) (= x x_0) (= x! x_0) (= j j!) (= y y!)) (and (= i_2 i) (= j_2 j) (<= i_2 x_0) (= i_3 (+ i_2 1)) (= j_3 (+ j_2 y_1)) (= i_3 i!) (= j_3 j!) (= x x_0) (= x! x_0) (= y y_1) (= y! y_1)))) (define-fun post-f ((i Int) (j Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (x_0 Int) (y_0 Int) (y_1 Int)) Bool - (or - (not - (and - (= i i_2) - (= j j_2) - (= x x_0) - (= y y_1) - ) - ) - (not - (and - (not (<= i_2 x_0)) - (not (= i_2 j_2)) - (not (not (= y_1 1))) - ) - ) - ) -) + (or (not (and (= i i_2) (= j j_2) (= x x_0) (= y y_1))) (not (and (not (<= i_2 x_0)) (not (= i_2 j_2)) (not (not (= y_1 1))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/96_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/96_conf1.sl index fffcf9b..42d3663 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/96_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/96_conf1.sl @@ -1,97 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var conf_0 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var j_0 Int) -(declare-primed-var j_1 Int) -(declare-primed-var j_2 Int) -(declare-primed-var j_3 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var x_0 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) - (synth-inv inv-f ((i Int) (j Int) (conf_0 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (y_0 Int) (y_1 Int))) (define-fun pre-f ((i Int) (j Int) (conf_0 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (y_0 Int) (y_1 Int)) Bool - (and - (= i i_1) - (= j j_1) - (= conf_0 conf_0_0) - (= y y_1) - (= conf_0_0 1) - (= j_1 0) - (= i_1 0) - (= y_1 1) - ) -) - + (and (= i i_1) (= j j_1) (= conf_0 conf_0_0) (= y y_1) (= conf_0_0 1) (= j_1 0) (= i_1 0) (= y_1 1))) (define-fun trans-f ((i Int) (j Int) (conf_0 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (y_0 Int) (y_1 Int) (i! Int) (j! Int) (conf_0! Int) (x! Int) (y! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (j_0! Int) (j_1! Int) (j_2! Int) (j_3! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (x_0! Int) (y_0! Int) (y_1! Int)) Bool - (or - (and - (= i_2 i) - (= j_2 j) - (= conf_0_1 conf_0) - (= i_2 i!) - (= j_2 j!) - (= conf_0_1 conf_0!) - (= x x_0) - (= x! x_0) - (= j j!) - (= conf_0 conf_0!) - (= y y!) - ) - (and - (= i_2 i) - (= j_2 j) - (= conf_0_1 conf_0) - (<= i_2 x_0) - (= i_3 (+ i_2 1)) - (= conf_0_2 (+ conf_0_1 827)) - (= j_3 (+ j_2 y_1)) - (= conf_0_3 (- conf_0_2 224)) - (= i_3 i!) - (= j_3 j!) - (= conf_0_3 conf_0!) - (= x x_0) - (= x! x_0) - (= y y_1) - (= y! y_1) - ) - ) -) - + (or (and (= i_2 i) (= j_2 j) (= conf_0_1 conf_0) (= i_2 i!) (= j_2 j!) (= conf_0_1 conf_0!) (= x x_0) (= x! x_0) (= j j!) (= conf_0 conf_0!) (= y y!)) (and (= i_2 i) (= j_2 j) (= conf_0_1 conf_0) (<= i_2 x_0) (= i_3 (+ i_2 1)) (= conf_0_2 (+ conf_0_1 827)) (= j_3 (+ j_2 y_1)) (= conf_0_3 (- conf_0_2 224)) (= i_3 i!) (= j_3 j!) (= conf_0_3 conf_0!) (= x x_0) (= x! x_0) (= y y_1) (= y! y_1)))) (define-fun post-f ((i Int) (j Int) (conf_0 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (y_0 Int) (y_1 Int)) Bool - (or - (not - (and - (= i i_2) - (= j j_2) - (= conf_0 conf_0_1) - (= x x_0) - (= y y_1) - ) - ) - (not - (and - (not (<= i_2 x_0)) - (not (= i_2 j_2)) - (not (not (= y_1 1))) - ) - ) - ) -) + (or (not (and (= i i_2) (= j j_2) (= conf_0 conf_0_1) (= x x_0) (= y y_1))) (not (and (not (<= i_2 x_0)) (not (= i_2 j_2)) (not (not (= y_1 1))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/96_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/96_conf5.sl index 72c7a6a..3c40767 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/96_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/96_conf5.sl @@ -1,132 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var j_0 Int) -(declare-primed-var j_1 Int) -(declare-primed-var j_2 Int) -(declare-primed-var j_3 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var conf_4_1 Int) -(declare-primed-var conf_4_2 Int) -(declare-primed-var x_0 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) - (synth-inv inv-f ((i Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (y_0 Int) (y_1 Int))) (define-fun pre-f ((i Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (y_0 Int) (y_1 Int)) Bool - (and - (= i i_1) - (= j j_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= y y_1) - (= conf_0_0 4) - (= conf_1_0 1) - (= conf_2_0 3) - (= conf_3_0 7) - (= conf_4_0 1) - (= j_1 0) - (= i_1 0) - (= y_1 1) - ) -) - + (and (= i i_1) (= j j_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= y y_1) (= conf_0_0 4) (= conf_1_0 1) (= conf_2_0 3) (= conf_3_0 7) (= conf_4_0 1) (= j_1 0) (= i_1 0) (= y_1 1))) (define-fun trans-f ((i Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (y_0 Int) (y_1 Int) (i! Int) (j! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (x! Int) (y! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (j_0! Int) (j_1! Int) (j_2! Int) (j_3! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_4_0! Int) (conf_4_1! Int) (conf_4_2! Int) (x_0! Int) (y_0! Int) (y_1! Int)) Bool - (or - (and - (= i_2 i) - (= j_2 j) - (= conf_0_1 conf_0) - (= conf_4_1 conf_4) - (= i_2 i!) - (= j_2 j!) - (= conf_0_1 conf_0!) - (= conf_4_1 conf_4!) - (= x x_0) - (= x! x_0) - (= j j!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= y y!) - ) - (and - (= i_2 i) - (= j_2 j) - (= conf_0_1 conf_0) - (= conf_4_1 conf_4) - (<= i_2 x_0) - (= i_3 (+ i_2 1)) - (= conf_0_2 conf_0_1) - (= j_3 (+ j_2 y_1)) - (= conf_4_2 (+ conf_3_0 671)) - (= i_3 i!) - (= j_3 j!) - (= conf_0_2 conf_0!) - (= conf_4_2 conf_4!) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= x x_0) - (= x! x_0) - (= y y_1) - (= y! y_1) - ) - ) -) - + (or (and (= i_2 i) (= j_2 j) (= conf_0_1 conf_0) (= conf_4_1 conf_4) (= i_2 i!) (= j_2 j!) (= conf_0_1 conf_0!) (= conf_4_1 conf_4!) (= x x_0) (= x! x_0) (= j j!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= y y!)) (and (= i_2 i) (= j_2 j) (= conf_0_1 conf_0) (= conf_4_1 conf_4) (<= i_2 x_0) (= i_3 (+ i_2 1)) (= conf_0_2 conf_0_1) (= j_3 (+ j_2 y_1)) (= conf_4_2 (+ conf_3_0 671)) (= i_3 i!) (= j_3 j!) (= conf_0_2 conf_0!) (= conf_4_2 conf_4!) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= x x_0) (= x! x_0) (= y y_1) (= y! y_1)))) (define-fun post-f ((i Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (y_0 Int) (y_1 Int)) Bool - (or - (not - (and - (= i i_2) - (= j j_2) - (= conf_0 conf_0_1) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_1) - (= x x_0) - (= y y_1) - ) - ) - (not - (and - (not (<= i_2 x_0)) - (not (= i_2 j_2)) - (not (not (= y_1 1))) - ) - ) - ) -) + (or (not (and (= i i_2) (= j j_2) (= conf_0 conf_0_1) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_1) (= x x_0) (= y y_1))) (not (and (not (<= i_2 x_0)) (not (= i_2 j_2)) (not (not (= y_1 1))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/97.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/97.c.sl index 2f03930..cf15ab4 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/97.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/97.c.sl @@ -1,82 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var j_0 Int) -(declare-primed-var j_1 Int) -(declare-primed-var j_2 Int) -(declare-primed-var j_3 Int) -(declare-primed-var x_0 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) - (synth-inv inv-f ((i Int) (j Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (x_0 Int) (y_0 Int) (y_1 Int))) (define-fun pre-f ((i Int) (j Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (x_0 Int) (y_0 Int) (y_1 Int)) Bool - (and - (= i i_1) - (= j j_1) - (= y y_1) - (= j_1 0) - (= i_1 0) - (= y_1 2) - ) -) - + (and (= i i_1) (= j j_1) (= y y_1) (= j_1 0) (= i_1 0) (= y_1 2))) (define-fun trans-f ((i Int) (j Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (x_0 Int) (y_0 Int) (y_1 Int) (i! Int) (j! Int) (x! Int) (y! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (j_0! Int) (j_1! Int) (j_2! Int) (j_3! Int) (x_0! Int) (y_0! Int) (y_1! Int)) Bool - (or - (and - (= i_2 i) - (= j_2 j) - (= i_2 i!) - (= j_2 j!) - (= x x_0) - (= x! x_0) - (= j j!) - (= y y!) - ) - (and - (= i_2 i) - (= j_2 j) - (<= i_2 x_0) - (= i_3 (+ i_2 1)) - (= j_3 (+ j_2 y_1)) - (= i_3 i!) - (= j_3 j!) - (= x x_0) - (= x! x_0) - (= y y_1) - (= y! y_1) - ) - ) -) - + (or (and (= i_2 i) (= j_2 j) (= i_2 i!) (= j_2 j!) (= x x_0) (= x! x_0) (= j j!) (= y y!)) (and (= i_2 i) (= j_2 j) (<= i_2 x_0) (= i_3 (+ i_2 1)) (= j_3 (+ j_2 y_1)) (= i_3 i!) (= j_3 j!) (= x x_0) (= x! x_0) (= y y_1) (= y! y_1)))) (define-fun post-f ((i Int) (j Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (x_0 Int) (y_0 Int) (y_1 Int)) Bool - (or - (not - (and - (= i i_2) - (= j j_2) - (= x x_0) - (= y y_1) - ) - ) - (not - (and - (not (<= i_2 x_0)) - (= y_1 1) - (not (= i_2 j_2)) - ) - ) - ) -) + (or (not (and (= i i_2) (= j j_2) (= x x_0) (= y y_1))) (not (and (not (<= i_2 x_0)) (= y_1 1) (not (= i_2 j_2)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/97_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/97_conf1.sl index 5ab906e..f65045f 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/97_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/97_conf1.sl @@ -1,97 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var conf_0 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var j_0 Int) -(declare-primed-var j_1 Int) -(declare-primed-var j_2 Int) -(declare-primed-var j_3 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var x_0 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) - (synth-inv inv-f ((i Int) (j Int) (conf_0 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (y_0 Int) (y_1 Int))) (define-fun pre-f ((i Int) (j Int) (conf_0 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (y_0 Int) (y_1 Int)) Bool - (and - (= i i_1) - (= j j_1) - (= conf_0 conf_0_0) - (= y y_1) - (= conf_0_0 8) - (= j_1 0) - (= i_1 0) - (= y_1 2) - ) -) - + (and (= i i_1) (= j j_1) (= conf_0 conf_0_0) (= y y_1) (= conf_0_0 8) (= j_1 0) (= i_1 0) (= y_1 2))) (define-fun trans-f ((i Int) (j Int) (conf_0 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (y_0 Int) (y_1 Int) (i! Int) (j! Int) (conf_0! Int) (x! Int) (y! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (j_0! Int) (j_1! Int) (j_2! Int) (j_3! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (x_0! Int) (y_0! Int) (y_1! Int)) Bool - (or - (and - (= i_2 i) - (= j_2 j) - (= conf_0_1 conf_0) - (= i_2 i!) - (= j_2 j!) - (= conf_0_1 conf_0!) - (= x x_0) - (= x! x_0) - (= j j!) - (= conf_0 conf_0!) - (= y y!) - ) - (and - (= i_2 i) - (= j_2 j) - (= conf_0_1 conf_0) - (<= i_2 x_0) - (= i_3 (+ i_2 1)) - (= conf_0_2 (+ conf_0_1 conf_0_1)) - (= j_3 (+ j_2 y_1)) - (= conf_0_3 (- 293 conf_0_2)) - (= i_3 i!) - (= j_3 j!) - (= conf_0_3 conf_0!) - (= x x_0) - (= x! x_0) - (= y y_1) - (= y! y_1) - ) - ) -) - + (or (and (= i_2 i) (= j_2 j) (= conf_0_1 conf_0) (= i_2 i!) (= j_2 j!) (= conf_0_1 conf_0!) (= x x_0) (= x! x_0) (= j j!) (= conf_0 conf_0!) (= y y!)) (and (= i_2 i) (= j_2 j) (= conf_0_1 conf_0) (<= i_2 x_0) (= i_3 (+ i_2 1)) (= conf_0_2 (+ conf_0_1 conf_0_1)) (= j_3 (+ j_2 y_1)) (= conf_0_3 (- 293 conf_0_2)) (= i_3 i!) (= j_3 j!) (= conf_0_3 conf_0!) (= x x_0) (= x! x_0) (= y y_1) (= y! y_1)))) (define-fun post-f ((i Int) (j Int) (conf_0 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (y_0 Int) (y_1 Int)) Bool - (or - (not - (and - (= i i_2) - (= j j_2) - (= conf_0 conf_0_1) - (= x x_0) - (= y y_1) - ) - ) - (not - (and - (not (<= i_2 x_0)) - (= y_1 1) - (not (= i_2 j_2)) - ) - ) - ) -) + (or (not (and (= i i_2) (= j j_2) (= conf_0 conf_0_1) (= x x_0) (= y y_1))) (not (and (not (<= i_2 x_0)) (= y_1 1) (not (= i_2 j_2)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/97_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/97_conf5.sl index 15c317a..355b4ba 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/97_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/97_conf5.sl @@ -1,132 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var j_0 Int) -(declare-primed-var j_1 Int) -(declare-primed-var j_2 Int) -(declare-primed-var j_3 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var conf_4_1 Int) -(declare-primed-var conf_4_2 Int) -(declare-primed-var x_0 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) - (synth-inv inv-f ((i Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (y_0 Int) (y_1 Int))) (define-fun pre-f ((i Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (y_0 Int) (y_1 Int)) Bool - (and - (= i i_1) - (= j j_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= y y_1) - (= conf_0_0 3) - (= conf_1_0 7) - (= conf_2_0 3) - (= conf_3_0 6) - (= conf_4_0 8) - (= j_1 0) - (= i_1 0) - (= y_1 2) - ) -) - + (and (= i i_1) (= j j_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= y y_1) (= conf_0_0 3) (= conf_1_0 7) (= conf_2_0 3) (= conf_3_0 6) (= conf_4_0 8) (= j_1 0) (= i_1 0) (= y_1 2))) (define-fun trans-f ((i Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (y_0 Int) (y_1 Int) (i! Int) (j! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (x! Int) (y! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (j_0! Int) (j_1! Int) (j_2! Int) (j_3! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_1_0! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_4_0! Int) (conf_4_1! Int) (conf_4_2! Int) (x_0! Int) (y_0! Int) (y_1! Int)) Bool - (or - (and - (= i_2 i) - (= j_2 j) - (= conf_0_1 conf_0) - (= conf_4_1 conf_4) - (= i_2 i!) - (= j_2 j!) - (= conf_0_1 conf_0!) - (= conf_4_1 conf_4!) - (= x x_0) - (= x! x_0) - (= j j!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= y y!) - ) - (and - (= i_2 i) - (= j_2 j) - (= conf_0_1 conf_0) - (= conf_4_1 conf_4) - (<= i_2 x_0) - (= i_3 (+ i_2 1)) - (= conf_4_2 (- 267 293)) - (= j_3 (+ j_2 y_1)) - (= conf_0_2 (- 444 782)) - (= i_3 i!) - (= j_3 j!) - (= conf_0_2 conf_0!) - (= conf_4_2 conf_4!) - (= conf_1 conf_1_0) - (= conf_1! conf_1_0) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= x x_0) - (= x! x_0) - (= y y_1) - (= y! y_1) - ) - ) -) - + (or (and (= i_2 i) (= j_2 j) (= conf_0_1 conf_0) (= conf_4_1 conf_4) (= i_2 i!) (= j_2 j!) (= conf_0_1 conf_0!) (= conf_4_1 conf_4!) (= x x_0) (= x! x_0) (= j j!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= y y!)) (and (= i_2 i) (= j_2 j) (= conf_0_1 conf_0) (= conf_4_1 conf_4) (<= i_2 x_0) (= i_3 (+ i_2 1)) (= conf_4_2 (- 267 293)) (= j_3 (+ j_2 y_1)) (= conf_0_2 (- 444 782)) (= i_3 i!) (= j_3 j!) (= conf_0_2 conf_0!) (= conf_4_2 conf_4!) (= conf_1 conf_1_0) (= conf_1! conf_1_0) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= x x_0) (= x! x_0) (= y y_1) (= y! y_1)))) (define-fun post-f ((i Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (conf_4_1 Int) (conf_4_2 Int) (x_0 Int) (y_0 Int) (y_1 Int)) Bool - (or - (not - (and - (= i i_2) - (= j j_2) - (= conf_0 conf_0_1) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_1) - (= x x_0) - (= y y_1) - ) - ) - (not - (and - (not (<= i_2 x_0)) - (= y_1 1) - (not (= i_2 j_2)) - ) - ) - ) -) + (or (not (and (= i i_2) (= j j_2) (= conf_0 conf_0_1) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_1) (= x x_0) (= y y_1))) (not (and (not (<= i_2 x_0)) (= y_1 1) (not (= i_2 j_2)))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/98.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/98.c.sl index 6c957ce..1fbc566 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/98.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/98.c.sl @@ -1,82 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var j_0 Int) -(declare-primed-var j_1 Int) -(declare-primed-var j_2 Int) -(declare-primed-var j_3 Int) -(declare-primed-var x_0 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) - (synth-inv inv-f ((i Int) (j Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (x_0 Int) (y_0 Int) (y_1 Int))) (define-fun pre-f ((i Int) (j Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (x_0 Int) (y_0 Int) (y_1 Int)) Bool - (and - (= i i_1) - (= j j_1) - (= y y_1) - (= j_1 0) - (= i_1 0) - (= y_1 2) - ) -) - + (and (= i i_1) (= j j_1) (= y y_1) (= j_1 0) (= i_1 0) (= y_1 2))) (define-fun trans-f ((i Int) (j Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (x_0 Int) (y_0 Int) (y_1 Int) (i! Int) (j! Int) (x! Int) (y! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (j_0! Int) (j_1! Int) (j_2! Int) (j_3! Int) (x_0! Int) (y_0! Int) (y_1! Int)) Bool - (or - (and - (= i_2 i) - (= j_2 j) - (= i_2 i!) - (= j_2 j!) - (= x x_0) - (= x! x_0) - (= j j!) - (= y y!) - ) - (and - (= i_2 i) - (= j_2 j) - (<= i_2 x_0) - (= i_3 (+ i_2 1)) - (= j_3 (+ j_2 y_1)) - (= i_3 i!) - (= j_3 j!) - (= x x_0) - (= x! x_0) - (= y y_1) - (= y! y_1) - ) - ) -) - + (or (and (= i_2 i) (= j_2 j) (= i_2 i!) (= j_2 j!) (= x x_0) (= x! x_0) (= j j!) (= y y!)) (and (= i_2 i) (= j_2 j) (<= i_2 x_0) (= i_3 (+ i_2 1)) (= j_3 (+ j_2 y_1)) (= i_3 i!) (= j_3 j!) (= x x_0) (= x! x_0) (= y y_1) (= y! y_1)))) (define-fun post-f ((i Int) (j Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (x_0 Int) (y_0 Int) (y_1 Int)) Bool - (or - (not - (and - (= i i_2) - (= j j_2) - (= x x_0) - (= y y_1) - ) - ) - (not - (and - (not (<= i_2 x_0)) - (not (= i_2 j_2)) - (not (not (= y_1 1))) - ) - ) - ) -) + (or (not (and (= i i_2) (= j j_2) (= x x_0) (= y y_1))) (not (and (not (<= i_2 x_0)) (not (= i_2 j_2)) (not (not (= y_1 1))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/98_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/98_conf1.sl index e21a179..aa7b499 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/98_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/98_conf1.sl @@ -1,97 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var conf_0 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var j_0 Int) -(declare-primed-var j_1 Int) -(declare-primed-var j_2 Int) -(declare-primed-var j_3 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var x_0 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) - (synth-inv inv-f ((i Int) (j Int) (conf_0 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (y_0 Int) (y_1 Int))) (define-fun pre-f ((i Int) (j Int) (conf_0 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (y_0 Int) (y_1 Int)) Bool - (and - (= i i_1) - (= j j_1) - (= conf_0 conf_0_0) - (= y y_1) - (= conf_0_0 0) - (= j_1 0) - (= i_1 0) - (= y_1 2) - ) -) - + (and (= i i_1) (= j j_1) (= conf_0 conf_0_0) (= y y_1) (= conf_0_0 0) (= j_1 0) (= i_1 0) (= y_1 2))) (define-fun trans-f ((i Int) (j Int) (conf_0 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (y_0 Int) (y_1 Int) (i! Int) (j! Int) (conf_0! Int) (x! Int) (y! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (j_0! Int) (j_1! Int) (j_2! Int) (j_3! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (x_0! Int) (y_0! Int) (y_1! Int)) Bool - (or - (and - (= i_2 i) - (= j_2 j) - (= conf_0_1 conf_0) - (= i_2 i!) - (= j_2 j!) - (= conf_0_1 conf_0!) - (= x x_0) - (= x! x_0) - (= j j!) - (= conf_0 conf_0!) - (= y y!) - ) - (and - (= i_2 i) - (= j_2 j) - (= conf_0_1 conf_0) - (<= i_2 x_0) - (= i_3 (+ i_2 1)) - (= conf_0_2 conf_0_1) - (= j_3 (+ j_2 y_1)) - (= conf_0_3 conf_0_2) - (= i_3 i!) - (= j_3 j!) - (= conf_0_3 conf_0!) - (= x x_0) - (= x! x_0) - (= y y_1) - (= y! y_1) - ) - ) -) - + (or (and (= i_2 i) (= j_2 j) (= conf_0_1 conf_0) (= i_2 i!) (= j_2 j!) (= conf_0_1 conf_0!) (= x x_0) (= x! x_0) (= j j!) (= conf_0 conf_0!) (= y y!)) (and (= i_2 i) (= j_2 j) (= conf_0_1 conf_0) (<= i_2 x_0) (= i_3 (+ i_2 1)) (= conf_0_2 conf_0_1) (= j_3 (+ j_2 y_1)) (= conf_0_3 conf_0_2) (= i_3 i!) (= j_3 j!) (= conf_0_3 conf_0!) (= x x_0) (= x! x_0) (= y y_1) (= y! y_1)))) (define-fun post-f ((i Int) (j Int) (conf_0 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (x_0 Int) (y_0 Int) (y_1 Int)) Bool - (or - (not - (and - (= i i_2) - (= j j_2) - (= conf_0 conf_0_1) - (= x x_0) - (= y y_1) - ) - ) - (not - (and - (not (<= i_2 x_0)) - (not (= i_2 j_2)) - (not (not (= y_1 1))) - ) - ) - ) -) + (or (not (and (= i i_2) (= j j_2) (= conf_0 conf_0_1) (= x x_0) (= y y_1))) (not (and (not (<= i_2 x_0)) (not (= i_2 j_2)) (not (not (= y_1 1))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/98_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/98_conf5.sl index 10923ff..6ab413e 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/98_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/98_conf5.sl @@ -1,132 +1,15 @@ (set-logic LIA) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var i_0 Int) -(declare-primed-var i_1 Int) -(declare-primed-var i_2 Int) -(declare-primed-var i_3 Int) -(declare-primed-var j_0 Int) -(declare-primed-var j_1 Int) -(declare-primed-var j_2 Int) -(declare-primed-var j_3 Int) -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_1_1 Int) -(declare-primed-var conf_1_2 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_2_1 Int) -(declare-primed-var conf_2_2 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) - (synth-inv inv-f ((i Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (x_0 Int) (y_0 Int) (y_1 Int))) (define-fun pre-f ((i Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (x_0 Int) (y_0 Int) (y_1 Int)) Bool - (and - (= i i_1) - (= j j_1) - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= y y_1) - (= conf_0_0 3) - (= conf_1_0 7) - (= conf_2_0 0) - (= conf_3_0 0) - (= conf_4_0 0) - (= j_1 0) - (= i_1 0) - (= y_1 2) - ) -) - + (and (= i i_1) (= j j_1) (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= y y_1) (= conf_0_0 3) (= conf_1_0 7) (= conf_2_0 0) (= conf_3_0 0) (= conf_4_0 0) (= j_1 0) (= i_1 0) (= y_1 2))) (define-fun trans-f ((i Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (x_0 Int) (y_0 Int) (y_1 Int) (i! Int) (j! Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (x! Int) (y! Int) (i_0! Int) (i_1! Int) (i_2! Int) (i_3! Int) (j_0! Int) (j_1! Int) (j_2! Int) (j_3! Int) (conf_0_0! Int) (conf_1_0! Int) (conf_1_1! Int) (conf_1_2! Int) (conf_2_0! Int) (conf_2_1! Int) (conf_2_2! Int) (conf_3_0! Int) (conf_4_0! Int) (x_0! Int) (y_0! Int) (y_1! Int)) Bool - (or - (and - (= i_2 i) - (= j_2 j) - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (= i_2 i!) - (= j_2 j!) - (= conf_1_1 conf_1!) - (= conf_2_1 conf_2!) - (= x x_0) - (= x! x_0) - (= j j!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= y y!) - ) - (and - (= i_2 i) - (= j_2 j) - (= conf_1_1 conf_1) - (= conf_2_1 conf_2) - (<= i_2 x_0) - (= i_3 (+ i_2 1)) - (= conf_1_2 conf_1_1) - (= j_3 (+ j_2 y_1)) - (= conf_2_2 (- 864 618)) - (= i_3 i!) - (= j_3 j!) - (= conf_1_2 conf_1!) - (= conf_2_2 conf_2!) - (= conf_0 conf_0_0) - (= conf_0! conf_0_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= x x_0) - (= x! x_0) - (= y y_1) - (= y! y_1) - ) - ) -) - + (or (and (= i_2 i) (= j_2 j) (= conf_1_1 conf_1) (= conf_2_1 conf_2) (= i_2 i!) (= j_2 j!) (= conf_1_1 conf_1!) (= conf_2_1 conf_2!) (= x x_0) (= x! x_0) (= j j!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= y y!)) (and (= i_2 i) (= j_2 j) (= conf_1_1 conf_1) (= conf_2_1 conf_2) (<= i_2 x_0) (= i_3 (+ i_2 1)) (= conf_1_2 conf_1_1) (= j_3 (+ j_2 y_1)) (= conf_2_2 (- 864 618)) (= i_3 i!) (= j_3 j!) (= conf_1_2 conf_1!) (= conf_2_2 conf_2!) (= conf_0 conf_0_0) (= conf_0! conf_0_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= x x_0) (= x! x_0) (= y y_1) (= y! y_1)))) (define-fun post-f ((i Int) (j Int) (conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (x Int) (y Int) (i_0 Int) (i_1 Int) (i_2 Int) (i_3 Int) (j_0 Int) (j_1 Int) (j_2 Int) (j_3 Int) (conf_0_0 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_2_1 Int) (conf_2_2 Int) (conf_3_0 Int) (conf_4_0 Int) (x_0 Int) (y_0 Int) (y_1 Int)) Bool - (or - (not - (and - (= i i_2) - (= j j_2) - (= conf_0 conf_0_0) - (= conf_1 conf_1_1) - (= conf_2 conf_2_1) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= x x_0) - (= y y_1) - ) - ) - (not - (and - (not (<= i_2 x_0)) - (not (= i_2 j_2)) - (not (not (= y_1 1))) - ) - ) - ) -) + (or (not (and (= i i_2) (= j j_2) (= conf_0 conf_0_0) (= conf_1 conf_1_1) (= conf_2 conf_2_1) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= x x_0) (= y y_1))) (not (and (not (<= i_2 x_0)) (not (= i_2 j_2)) (not (not (= y_1 1))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/99.c.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/99.c.sl index 83fd61f..b01c85d 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/99.c.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/99.c.sl @@ -1,73 +1,15 @@ (set-logic LIA) -(declare-primed-var n Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) -(declare-primed-var y_3 Int) - (synth-inv inv-f ((n Int) (x Int) (y Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int))) (define-fun pre-f ((n Int) (x Int) (y Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int)) Bool - (and - (= n n_0) - (= x x_1) - (= y y_1) - (>= n_0 0) - (= x_1 n_0) - (= y_1 0) - ) -) - + (and (= n n_0) (= x x_1) (= y y_1) (>= n_0 0) (= x_1 n_0) (= y_1 0))) (define-fun trans-f ((n Int) (x Int) (y Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (n! Int) (x! Int) (y! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int) (y_3! Int)) Bool - (or - (and - (= x_2 x) - (= y_2 y) - (= x_2 x!) - (= y_2 y!) - (= n n!) - (= y y!) - ) - (and - (= x_2 x) - (= y_2 y) - (> x_2 0) - (= y_3 (+ y_2 1)) - (= x_3 (- x_2 1)) - (= x_3 x!) - (= y_3 y!) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= x_2 x) (= y_2 y) (= x_2 x!) (= y_2 y!) (= n n!) (= y y!)) (and (= x_2 x) (= y_2 y) (> x_2 0) (= y_3 (+ y_2 1)) (= x_3 (- x_2 1)) (= x_3 x!) (= y_3 y!) (= n n_0) (= n! n_0)))) (define-fun post-f ((n Int) (x Int) (y Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int)) Bool - (or - (not - (and - (= n n_0) - (= x x_2) - (= y y_2) - ) - ) - (not - (and - (not (> x_2 0)) - (not (= n_0 (+ x_2 y_2))) - ) - ) - ) -) + (or (not (and (= n n_0) (= x x_2) (= y y_2))) (not (and (not (> x_2 0)) (not (= n_0 (+ x_2 y_2))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/99_conf1.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/99_conf1.sl index 83f6915..1838f29 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/99_conf1.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/99_conf1.sl @@ -1,88 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var n Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_0_3 Int) -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) -(declare-primed-var y_3 Int) - (synth-inv inv-f ((conf_0 Int) (n Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int))) (define-fun pre-f ((conf_0 Int) (n Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= n n_0) - (= x x_1) - (= y y_1) - (= conf_0_0 0) - (>= n_0 0) - (= x_1 n_0) - (= y_1 0) - ) -) - + (and (= conf_0 conf_0_0) (= n n_0) (= x x_1) (= y y_1) (= conf_0_0 0) (>= n_0 0) (= x_1 n_0) (= y_1 0))) (define-fun trans-f ((conf_0 Int) (n Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (conf_0! Int) (n! Int) (x! Int) (y! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_0_3! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int) (y_3! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= y_2 y) - (= conf_0_1 conf_0!) - (= x_2 x!) - (= y_2 y!) - (= conf_0 conf_0!) - (= n n!) - (= y y!) - ) - (and - (= conf_0_1 conf_0) - (= x_2 x) - (= y_2 y) - (> x_2 0) - (= y_3 (+ y_2 1)) - (= conf_0_2 527) - (= x_3 (- x_2 1)) - (= conf_0_3 (+ conf_0_2 64)) - (= conf_0_3 conf_0!) - (= x_3 x!) - (= y_3 y!) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= x_2 x) (= y_2 y) (= conf_0_1 conf_0!) (= x_2 x!) (= y_2 y!) (= conf_0 conf_0!) (= n n!) (= y y!)) (and (= conf_0_1 conf_0) (= x_2 x) (= y_2 y) (> x_2 0) (= y_3 (+ y_2 1)) (= conf_0_2 527) (= x_3 (- x_2 1)) (= conf_0_3 (+ conf_0_2 64)) (= conf_0_3 conf_0!) (= x_3 x!) (= y_3 y!) (= n n_0) (= n! n_0)))) (define-fun post-f ((conf_0 Int) (n Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_0_3 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= n n_0) - (= x x_2) - (= y y_2) - ) - ) - (not - (and - (not (> x_2 0)) - (not (= n_0 (+ x_2 y_2))) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= n n_0) (= x x_2) (= y y_2))) (not (and (not (> x_2 0)) (not (= n_0 (+ x_2 y_2))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.NeurIPS_Code2Inv/99_conf5.sl b/benchmarks/LIA/2018.NeurIPS_Code2Inv/99_conf5.sl index 7d3acab..e83a293 100644 --- a/benchmarks/LIA/2018.NeurIPS_Code2Inv/99_conf5.sl +++ b/benchmarks/LIA/2018.NeurIPS_Code2Inv/99_conf5.sl @@ -1,123 +1,15 @@ (set-logic LIA) -(declare-primed-var conf_0 Int) -(declare-primed-var conf_1 Int) -(declare-primed-var conf_2 Int) -(declare-primed-var conf_3 Int) -(declare-primed-var conf_4 Int) -(declare-primed-var n Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(declare-primed-var conf_0_0 Int) -(declare-primed-var conf_0_1 Int) -(declare-primed-var conf_0_2 Int) -(declare-primed-var conf_1_0 Int) -(declare-primed-var conf_1_1 Int) -(declare-primed-var conf_1_2 Int) -(declare-primed-var conf_2_0 Int) -(declare-primed-var conf_3_0 Int) -(declare-primed-var conf_4_0 Int) -(declare-primed-var n_0 Int) -(declare-primed-var x_0 Int) -(declare-primed-var x_1 Int) -(declare-primed-var x_2 Int) -(declare-primed-var x_3 Int) -(declare-primed-var y_0 Int) -(declare-primed-var y_1 Int) -(declare-primed-var y_2 Int) -(declare-primed-var y_3 Int) - (synth-inv inv-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int))) (define-fun pre-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int)) Bool - (and - (= conf_0 conf_0_0) - (= conf_1 conf_1_0) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= n n_0) - (= x x_1) - (= y y_1) - (= conf_0_0 7) - (= conf_1_0 2) - (= conf_2_0 0) - (= conf_3_0 2) - (= conf_4_0 0) - (>= n_0 0) - (= x_1 n_0) - (= y_1 0) - ) -) - + (and (= conf_0 conf_0_0) (= conf_1 conf_1_0) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= n n_0) (= x x_1) (= y y_1) (= conf_0_0 7) (= conf_1_0 2) (= conf_2_0 0) (= conf_3_0 2) (= conf_4_0 0) (>= n_0 0) (= x_1 n_0) (= y_1 0))) (define-fun trans-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int) (conf_0! Int) (conf_1! Int) (conf_2! Int) (conf_3! Int) (conf_4! Int) (n! Int) (x! Int) (y! Int) (conf_0_0! Int) (conf_0_1! Int) (conf_0_2! Int) (conf_1_0! Int) (conf_1_1! Int) (conf_1_2! Int) (conf_2_0! Int) (conf_3_0! Int) (conf_4_0! Int) (n_0! Int) (x_0! Int) (x_1! Int) (x_2! Int) (x_3! Int) (y_0! Int) (y_1! Int) (y_2! Int) (y_3! Int)) Bool - (or - (and - (= conf_0_1 conf_0) - (= conf_1_1 conf_1) - (= x_2 x) - (= y_2 y) - (= conf_0_1 conf_0!) - (= conf_1_1 conf_1!) - (= x_2 x!) - (= y_2 y!) - (= conf_0 conf_0!) - (= conf_1 conf_1!) - (= conf_2 conf_2!) - (= conf_3 conf_3!) - (= conf_4 conf_4!) - (= n n!) - (= y y!) - ) - (and - (= conf_0_1 conf_0) - (= conf_1_1 conf_1) - (= x_2 x) - (= y_2 y) - (> x_2 0) - (= y_3 (+ y_2 1)) - (= conf_0_2 (+ conf_3_0 64)) - (= x_3 (- x_2 1)) - (= conf_1_2 conf_2_0) - (= conf_0_2 conf_0!) - (= conf_1_2 conf_1!) - (= x_3 x!) - (= y_3 y!) - (= conf_2 conf_2_0) - (= conf_2! conf_2_0) - (= conf_3 conf_3_0) - (= conf_3! conf_3_0) - (= conf_4 conf_4_0) - (= conf_4! conf_4_0) - (= n n_0) - (= n! n_0) - ) - ) -) - + (or (and (= conf_0_1 conf_0) (= conf_1_1 conf_1) (= x_2 x) (= y_2 y) (= conf_0_1 conf_0!) (= conf_1_1 conf_1!) (= x_2 x!) (= y_2 y!) (= conf_0 conf_0!) (= conf_1 conf_1!) (= conf_2 conf_2!) (= conf_3 conf_3!) (= conf_4 conf_4!) (= n n!) (= y y!)) (and (= conf_0_1 conf_0) (= conf_1_1 conf_1) (= x_2 x) (= y_2 y) (> x_2 0) (= y_3 (+ y_2 1)) (= conf_0_2 (+ conf_3_0 64)) (= x_3 (- x_2 1)) (= conf_1_2 conf_2_0) (= conf_0_2 conf_0!) (= conf_1_2 conf_1!) (= x_3 x!) (= y_3 y!) (= conf_2 conf_2_0) (= conf_2! conf_2_0) (= conf_3 conf_3_0) (= conf_3! conf_3_0) (= conf_4 conf_4_0) (= conf_4! conf_4_0) (= n n_0) (= n! n_0)))) (define-fun post-f ((conf_0 Int) (conf_1 Int) (conf_2 Int) (conf_3 Int) (conf_4 Int) (n Int) (x Int) (y Int) (conf_0_0 Int) (conf_0_1 Int) (conf_0_2 Int) (conf_1_0 Int) (conf_1_1 Int) (conf_1_2 Int) (conf_2_0 Int) (conf_3_0 Int) (conf_4_0 Int) (n_0 Int) (x_0 Int) (x_1 Int) (x_2 Int) (x_3 Int) (y_0 Int) (y_1 Int) (y_2 Int) (y_3 Int)) Bool - (or - (not - (and - (= conf_0 conf_0_1) - (= conf_1 conf_1_1) - (= conf_2 conf_2_0) - (= conf_3 conf_3_0) - (= conf_4 conf_4_0) - (= n n_0) - (= x x_2) - (= y y_2) - ) - ) - (not - (and - (not (> x_2 0)) - (not (= n_0 (+ x_2 y_2))) - ) - ) - ) -) + (or (not (and (= conf_0 conf_0_1) (= conf_1 conf_1_1) (= conf_2 conf_2_0) (= conf_3 conf_3_0) (= conf_4 conf_4_0) (= n n_0) (= x x_2) (= y y_2))) (not (and (not (> x_2 0)) (not (= n_0 (+ x_2 y_2))))))) (inv-constraint inv-f pre-f trans-f post-f) + (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/NetBSD_loop_true-unreach-call_true-termination.sl b/benchmarks/LIA/2018.SV-Comp/NetBSD_loop_true-unreach-call_true-termination.sl index 35006e4..1f3783b 100644 --- a/benchmarks/LIA/2018.SV-Comp/NetBSD_loop_true-unreach-call_true-termination.sl +++ b/benchmarks/LIA/2018.SV-Comp/NetBSD_loop_true-unreach-call_true-termination.sl @@ -2,37 +2,14 @@ (synth-inv InvF ((MAXPATHLEN Int) (pathbuf_off Int) (bound_off Int) (glob2_p_off Int) (glob2_pathbuf_off Int) (glob2_pathlim_off Int))) -(declare-primed-var MAXPATHLEN Int) -(declare-primed-var pathbuf_off Int) -(declare-primed-var bound_off Int) -(declare-primed-var glob2_p_off Int) -(declare-primed-var glob2_pathbuf_off Int) -(declare-primed-var glob2_pathlim_off Int) - (define-fun PreF ((MAXPATHLEN Int) (pathbuf_off Int) (bound_off Int) (glob2_p_off Int) (glob2_pathbuf_off Int) (glob2_pathlim_off Int)) Bool - (and (> MAXPATHLEN 0) - (< MAXPATHLEN 2147483647) - (= pathbuf_off 0) - (= bound_off (- (+ pathbuf_off (+ MAXPATHLEN 1)) 1)) - (= glob2_pathbuf_off pathbuf_off) - (= glob2_pathlim_off bound_off) - (= glob2_p_off glob2_pathbuf_off) - )) - -(define-fun TransF ((MAXPATHLEN Int) (pathbuf_off Int) (bound_off Int) (glob2_p_off Int) (glob2_pathbuf_off Int) (glob2_pathlim_off Int) - (MAXPATHLEN! Int) (pathbuf_off! Int) (bound_off! Int) (glob2_p_off! Int) (glob2_pathbuf_off! Int) (glob2_pathlim_off! Int)) Bool - (and (<= glob2_p_off glob2_pathlim_off) - (= glob2_p_off (+ glob2_p_off 1)) - (= MAXPATHLEN! MAXPATHLEN) - (= pathbuf_off! pathbuf_off) - (= bound_off! bound_off) - (= glob2_pathbuf_off! glob2_pathbuf_off) - (= glob2_pathlim_off! glob2_pathlim_off) - )) - + (and (> MAXPATHLEN 0) (< MAXPATHLEN 2147483647) (= pathbuf_off 0) (= bound_off (- (+ pathbuf_off (+ MAXPATHLEN 1)) 1)) (= glob2_pathbuf_off pathbuf_off) (= glob2_pathlim_off bound_off) (= glob2_p_off glob2_pathbuf_off))) +(define-fun TransF ((MAXPATHLEN Int) (pathbuf_off Int) (bound_off Int) (glob2_p_off Int) (glob2_pathbuf_off Int) (glob2_pathlim_off Int) (MAXPATHLEN! Int) (pathbuf_off! Int) (bound_off! Int) (glob2_p_off! Int) (glob2_pathbuf_off! Int) (glob2_pathlim_off! Int)) Bool + (and (<= glob2_p_off glob2_pathlim_off) (= glob2_p_off (+ glob2_p_off 1)) (= MAXPATHLEN! MAXPATHLEN) (= pathbuf_off! pathbuf_off) (= bound_off! bound_off) (= glob2_pathbuf_off! glob2_pathbuf_off) (= glob2_pathlim_off! glob2_pathlim_off))) (define-fun PostF ((MAXPATHLEN Int) (pathbuf_off Int) (bound_off Int) (glob2_p_off Int) (glob2_pathbuf_off Int) (glob2_pathlim_off Int)) Bool - (or (not (<= glob2_p_off glob2_pathlim_off)) (and (<= glob2_p_off 0) (< glob2_p_off (+ MAXPATHLEN 1))))) + (or (not (<= glob2_p_off glob2_pathlim_off)) (and (<= glob2_p_off 0) (< glob2_p_off (+ MAXPATHLEN 1))))) (inv-constraint InvF PreF TransF PostF) (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/README.md b/benchmarks/LIA/2018.SV-Comp/README.md deleted file mode 100644 index 9293cd4..0000000 --- a/benchmarks/LIA/2018.SV-Comp/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Origin - -Collected from [SV-Benchmarks for SV-COMP 2017](https://github.com/sosy-lab/sv-benchmarks/tree/master/c). \ No newline at end of file diff --git a/benchmarks/LIA/2018.SV-Comp/bhmr2007_true-unreach-call_true-termination.sl b/benchmarks/LIA/2018.SV-Comp/bhmr2007_true-unreach-call_true-termination.sl index 17f0309..c05a03b 100644 --- a/benchmarks/LIA/2018.SV-Comp/bhmr2007_true-unreach-call_true-termination.sl +++ b/benchmarks/LIA/2018.SV-Comp/bhmr2007_true-unreach-call_true-termination.sl @@ -2,25 +2,14 @@ (synth-inv InvF ((i Int) (n Int) (a Int) (b Int))) -(declare-primed-var i Int) -(declare-primed-var n Int) -(declare-primed-var a Int) -(declare-primed-var b Int) - (define-fun PreF ((i Int) (n Int) (a Int) (b Int)) Bool - (and (= i 0) (= a 0) (= b 0) (>= n 0))) - -(define-fun TransF ((i Int) (n Int) (a Int) (b Int) - (i! Int) (n! Int) (a! Int) (b! Int)) Bool - (and (< i n) - (or (and (= a! (+ a 1)) (= b! (+ b 2))) - (and (= a! (+ a 2)) (= b! (+ b 1)))) - (= i! (+ i 1)) - (= n! n))) - + (and (= i 0) (= a 0) (= b 0) (>= n 0))) +(define-fun TransF ((i Int) (n Int) (a Int) (b Int) (i! Int) (n! Int) (a! Int) (b! Int)) Bool + (and (< i n) (or (and (= a! (+ a 1)) (= b! (+ b 2))) (and (= a! (+ a 2)) (= b! (+ b 1)))) (= i! (+ i 1)) (= n! n))) (define-fun PostF ((i Int) (n Int) (a Int) (b Int)) Bool - (or (< i n) (= (+ a b) (* 3 n)) )) + (or (< i n) (= (+ a b) (* 3 n)))) (inv-constraint InvF PreF TransF PostF) (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/cggmp2005_true-unreach-call_true-termination.sl b/benchmarks/LIA/2018.SV-Comp/cggmp2005_true-unreach-call_true-termination.sl index 933483a..2aee544 100644 --- a/benchmarks/LIA/2018.SV-Comp/cggmp2005_true-unreach-call_true-termination.sl +++ b/benchmarks/LIA/2018.SV-Comp/cggmp2005_true-unreach-call_true-termination.sl @@ -1,23 +1,15 @@ -; From: https://github.com/sosy-lab/sv-benchmarks/blob/master/c/loop-lit/cggmp2005_true-unreach-call_true-termination.c - (set-logic LIA) (synth-inv inv_fun ((i Int) (j Int))) -(declare-primed-var i Int) -(declare-primed-var j Int) - (define-fun pre_fun ((i Int) (j Int)) Bool - (and (= i 1) (= j 10))) - + (and (= i 1) (= j 10))) (define-fun trans_fun ((i Int) (j Int) (i! Int) (j! Int)) Bool - (and (>= j i) - (= i! (+ i 2)) - (= j! (+ j (- 0 1))))) - + (and (>= j i) (= i! (+ i 2)) (= j! (+ j (- 0 1))))) (define-fun post_fun ((i Int) (j Int)) Bool - (or (>= j i) (= j 6))) + (or (>= j i) (= j 6))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/cggmp2005_variant_true-unreach-call_true-termination.sl b/benchmarks/LIA/2018.SV-Comp/cggmp2005_variant_true-unreach-call_true-termination.sl index a7bffa7..c0ae0bb 100644 --- a/benchmarks/LIA/2018.SV-Comp/cggmp2005_variant_true-unreach-call_true-termination.sl +++ b/benchmarks/LIA/2018.SV-Comp/cggmp2005_variant_true-unreach-call_true-termination.sl @@ -1,26 +1,15 @@ -; From: https://github.com/sosy-lab/sv-benchmarks/blob/master/c/loop-lit/cggmp2005_variant_true-unreach-call_true-termination.c - (set-logic LIA) (synth-inv inv_fun ((lo Int) (mid Int) (hi Int))) -(declare-primed-var lo Int) -(declare-primed-var mid Int) -(declare-primed-var hi Int) - (define-fun pre_fun ((lo Int) (mid Int) (hi Int)) Bool - (and (= lo 0) (and (> mid 0) (= hi (* 2 mid))))) - -(define-fun trans_fun ((lo Int) (mid Int) (hi Int) - (lo! Int) (mid! Int) (hi! Int)) Bool - (and (> mid 0) - (= lo! (+ lo 1)) - (= hi! (- hi 1)) - (= mid! (- mid 1)))) - + (and (= lo 0) (and (> mid 0) (= hi (* 2 mid))))) +(define-fun trans_fun ((lo Int) (mid Int) (hi Int) (lo! Int) (mid! Int) (hi! Int)) Bool + (and (> mid 0) (= lo! (+ lo 1)) (= hi! (- hi 1)) (= mid! (- mid 1)))) (define-fun post_fun ((lo Int) (mid Int) (hi Int)) Bool - (or (> mid 0) (= lo hi))) + (or (> mid 0) (= lo hi))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/const_false-unreach-call1.sl b/benchmarks/LIA/2018.SV-Comp/const_false-unreach-call1.sl index 0951c68..a92b5df 100644 --- a/benchmarks/LIA/2018.SV-Comp/const_false-unreach-call1.sl +++ b/benchmarks/LIA/2018.SV-Comp/const_false-unreach-call1.sl @@ -2,21 +2,14 @@ (synth-inv InvF ((x Int) (y Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) - (define-fun PreF ((x Int) (y Int)) Bool - (and (= x 1) (= y 0))) - -(define-fun TransF ((x Int) (y Int) - (x! Int) (y! Int)) Bool - (and (< y 1024) - (= x! 0) - (= y! (+ y 1)))) - + (and (= x 1) (= y 0))) +(define-fun TransF ((x Int) (y Int) (x! Int) (y! Int)) Bool + (and (< y 1024) (= x! 0) (= y! (+ y 1)))) (define-fun PostF ((x Int) (y Int)) Bool - (or (< y 1024) (not (= x 1)))) + (or (< y 1024) (not (= x 1)))) (inv-constraint InvF PreF TransF PostF) (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/const_true-unreach-call1.sl b/benchmarks/LIA/2018.SV-Comp/const_true-unreach-call1.sl index 2610b0b..2209b2c 100644 --- a/benchmarks/LIA/2018.SV-Comp/const_true-unreach-call1.sl +++ b/benchmarks/LIA/2018.SV-Comp/const_true-unreach-call1.sl @@ -1,21 +1,15 @@ -; From: https://github.com/sosy-lab/sv-benchmarks/blob/master/c/loop-acceleration/const_true-unreach-call1.c - (set-logic LIA) (synth-inv inv_fun ((x Int) (y Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) - (define-fun pre_fun ((x Int) (y Int)) Bool - (and (= x 1) (= y 0))) - + (and (= x 1) (= y 0))) (define-fun trans_fun ((x Int) (y Int) (x! Int) (y! Int)) Bool - (and (< y 1024) (and (= x! 0) (= y! (+ y 1))))) - + (and (< y 1024) (and (= x! 0) (= y! (+ y 1))))) (define-fun post_fun ((x Int) (y Int)) Bool - (or (< y 1024) (= x 0))) + (or (< y 1024) (= x 0))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/count_by_1_true-unreach-call_true-termination.sl b/benchmarks/LIA/2018.SV-Comp/count_by_1_true-unreach-call_true-termination.sl index bf42374..80b18f2 100644 --- a/benchmarks/LIA/2018.SV-Comp/count_by_1_true-unreach-call_true-termination.sl +++ b/benchmarks/LIA/2018.SV-Comp/count_by_1_true-unreach-call_true-termination.sl @@ -2,18 +2,14 @@ (synth-inv InvF ((i Int))) -(declare-primed-var i Int) - (define-fun PreF ((i Int)) Bool - (= i 0)) - + (= i 0)) (define-fun TransF ((i Int) (i! Int)) Bool - (and (< i 1000000) - (= i! (+ i 1)))) - + (and (< i 1000000) (= i! (+ i 1)))) (define-fun PostF ((i Int)) Bool -(or (< i 1000000) (= i 1000000))) + (or (< i 1000000) (= i 1000000))) (inv-constraint InvF PreF TransF PostF) (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/count_by_1_variant_true-unreach-call_true-termination.sl b/benchmarks/LIA/2018.SV-Comp/count_by_1_variant_true-unreach-call_true-termination.sl index f670b3b..372205a 100644 --- a/benchmarks/LIA/2018.SV-Comp/count_by_1_variant_true-unreach-call_true-termination.sl +++ b/benchmarks/LIA/2018.SV-Comp/count_by_1_variant_true-unreach-call_true-termination.sl @@ -2,18 +2,14 @@ (synth-inv InvF ((i Int))) -(declare-primed-var i Int) - (define-fun PreF ((i Int)) Bool - (= i 0)) - + (= i 0)) (define-fun TransF ((i Int) (i! Int)) Bool - (and (not (= i 1000000)) - (= i! (+ i 1)))) - + (and (not (= i 1000000)) (= i! (+ i 1)))) (define-fun PostF ((i Int)) Bool -(or (not (= i 1000000)) (<= i 1000000))) + (or (not (= i 1000000)) (<= i 1000000))) (inv-constraint InvF PreF TransF PostF) (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/count_by_2_true-unreach-call_true-termination.sl b/benchmarks/LIA/2018.SV-Comp/count_by_2_true-unreach-call_true-termination.sl index 48e16ca..ba245bb 100644 --- a/benchmarks/LIA/2018.SV-Comp/count_by_2_true-unreach-call_true-termination.sl +++ b/benchmarks/LIA/2018.SV-Comp/count_by_2_true-unreach-call_true-termination.sl @@ -2,18 +2,14 @@ (synth-inv InvF ((i Int))) -(declare-primed-var i Int) - (define-fun PreF ((i Int)) Bool - (= i 0)) - + (= i 0)) (define-fun TransF ((i Int) (i! Int)) Bool - (and (< i 1000000) - (= i! (+ i 2)))) - + (and (< i 1000000) (= i! (+ i 2)))) (define-fun PostF ((i Int)) Bool -(or (< i 1000000) (= i 1000000))) + (or (< i 1000000) (= i 1000000))) (inv-constraint InvF PreF TransF PostF) (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/count_by_k_true-unreach-call_true-termination.sl b/benchmarks/LIA/2018.SV-Comp/count_by_k_true-unreach-call_true-termination.sl index 08bf5d0..c4c6def 100644 --- a/benchmarks/LIA/2018.SV-Comp/count_by_k_true-unreach-call_true-termination.sl +++ b/benchmarks/LIA/2018.SV-Comp/count_by_k_true-unreach-call_true-termination.sl @@ -2,24 +2,14 @@ (synth-inv InvF ((i Int) (k Int))) -(declare-primed-var i Int) -(declare-primed-var k Int) - (define-fun PreF ((i Int) (k Int)) Bool - (and (= i 0) - (<= 0 k) - (<= k 10))) - -(define-fun TransF ((i Int) (k Int) - (i! Int) (k! Int)) Bool - (and (< i (* 1000000 k)) - (= i! (+ i k)) - (= k! k))) - + (and (= i 0) (<= 0 k) (<= k 10))) +(define-fun TransF ((i Int) (k Int) (i! Int) (k! Int)) Bool + (and (< i (* 1000000 k)) (= i! (+ i k)) (= k! k))) (define-fun PostF ((i Int) (k Int)) Bool - (or (< i (* 1000000 k)) - (= i (* 1000000 k)))) + (or (< i (* 1000000 k)) (= i (* 1000000 k)))) (inv-constraint InvF PreF TransF PostF) (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/count_by_nondet_true-unreach-call_true-termination.sl b/benchmarks/LIA/2018.SV-Comp/count_by_nondet_true-unreach-call_true-termination.sl index 8839edf..6bff4cc 100644 --- a/benchmarks/LIA/2018.SV-Comp/count_by_nondet_true-unreach-call_true-termination.sl +++ b/benchmarks/LIA/2018.SV-Comp/count_by_nondet_true-unreach-call_true-termination.sl @@ -2,25 +2,14 @@ (synth-inv InvF ((i Int) (k Int) (j Int))) -(declare-primed-var i Int) -(declare-primed-var k Int) -(declare-primed-var j Int) - (define-fun PreF ((i Int) (k Int) (j Int)) Bool - (and (= i 0) - (= k 0))) - -(define-fun TransF ((i Int) (k Int) (j Int) - (i! Int) (k! Int) (j! Int)) Bool - (and (< i 1000000) - (<= 1 j!) (< j! 1000000) - (= i! (+ i j!)) - (= k! (+ k 1)))) - + (and (= i 0) (= k 0))) +(define-fun TransF ((i Int) (k Int) (j Int) (i! Int) (k! Int) (j! Int)) Bool + (and (< i 1000000) (<= 1 j!) (< j! 1000000) (= i! (+ i j!)) (= k! (+ k 1)))) (define-fun PostF ((i Int) (k Int) (j Int)) Bool - (or (< i 1000000) - (<= k 1000000))) + (or (< i 1000000) (<= k 1000000))) (inv-constraint InvF PreF TransF PostF) (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/count_up_down_false-unreach-call_true-termination.sl b/benchmarks/LIA/2018.SV-Comp/count_up_down_false-unreach-call_true-termination.sl index 4623445..4ad236e 100644 --- a/benchmarks/LIA/2018.SV-Comp/count_up_down_false-unreach-call_true-termination.sl +++ b/benchmarks/LIA/2018.SV-Comp/count_up_down_false-unreach-call_true-termination.sl @@ -2,23 +2,14 @@ (synth-inv InvF ((n Int) (x Int) (y Int))) -(declare-primed-var n Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - (define-fun PreF ((n Int) (x Int) (y Int)) Bool - (and (= y 0) (= x n))) - -(define-fun TransF ((n Int) (x Int) (y Int) - (n! Int) (x! Int) (y! Int)) Bool - (and (> x 0) - (= x! (- x 1)) - (= y! (+ y 1)) - (= n! n))) - + (and (= y 0) (= x n))) +(define-fun TransF ((n Int) (x Int) (y Int) (n! Int) (x! Int) (y! Int)) Bool + (and (> x 0) (= x! (- x 1)) (= y! (+ y 1)) (= n! n))) (define-fun PostF ((n Int) (x Int) (y Int)) Bool - (or (> x 0) (= y n))) + (or (> x 0) (= y n))) (inv-constraint InvF PreF TransF PostF) (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/css2003_true-unreach-call_true-termination.sl b/benchmarks/LIA/2018.SV-Comp/css2003_true-unreach-call_true-termination.sl index 32aa136..274d604 100644 --- a/benchmarks/LIA/2018.SV-Comp/css2003_true-unreach-call_true-termination.sl +++ b/benchmarks/LIA/2018.SV-Comp/css2003_true-unreach-call_true-termination.sl @@ -2,23 +2,14 @@ (synth-inv InvF ((i Int) (j Int) (k Int))) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var k Int) - (define-fun PreF ((i Int) (j Int) (k Int)) Bool - (and (= i 1) (= j 1) (<= 0 k) (<= k 1))) - -(define-fun TransF ((i Int) (j Int) (k Int) - (i! Int) (j! Int) (k! Int)) Bool - (and (< i 1000000) - (= i! (+ i 1)) - (= j! (+ j k)) - (= k! (- k 1)))) - + (and (= i 1) (= j 1) (<= 0 k) (<= k 1))) +(define-fun TransF ((i Int) (j Int) (k Int) (i! Int) (j! Int) (k! Int)) Bool + (and (< i 1000000) (= i! (+ i 1)) (= j! (+ j k)) (= k! (- k 1)))) (define-fun PostF ((i Int) (j Int) (k Int)) Bool - (or (not (< i 1000000)) (and (<= 1 (+ i k)) (<= (+ i k) 2) (>= i 1)))) + (or (not (< i 1000000)) (and (<= 1 (+ i k)) (<= (+ i k) 2) (>= i 1)))) (inv-constraint InvF PreF TransF PostF) (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/down_true-unreach-call_true-termination.sl b/benchmarks/LIA/2018.SV-Comp/down_true-unreach-call_true-termination.sl index 2841e3b..73c06c7 100644 --- a/benchmarks/LIA/2018.SV-Comp/down_true-unreach-call_true-termination.sl +++ b/benchmarks/LIA/2018.SV-Comp/down_true-unreach-call_true-termination.sl @@ -2,32 +2,14 @@ (synth-inv InvF ((i Int) (k Int) (n Int) (j Int))) -(declare-primed-var i Int) -(declare-primed-var k Int) -(declare-primed-var n Int) -(declare-primed-var j Int) - (define-fun PreF ((i Int) (k Int) (n Int) (j Int)) Bool - (and (= k 0) (= i 0) (= j n))) - -(define-fun TransF ((i Int) (k Int) (n Int) (j Int) - (i! Int) (k! Int) (n! Int) (j! Int)) Bool - (or (and (< i n) - (= i! (+ i 1)) - (= k! (+ k 1)) - (= n! n) - (= j! j)) - (and (>= i n) - (> j 0) - (= j! (- j 1)) - (= k! (- k 1))) - (= n! n) - (= i! i) - )) - + (and (= k 0) (= i 0) (= j n))) +(define-fun TransF ((i Int) (k Int) (n Int) (j Int) (i! Int) (k! Int) (n! Int) (j! Int)) Bool + (or (and (< i n) (= i! (+ i 1)) (= k! (+ k 1)) (= n! n) (= j! j)) (and (>= i n) (> j 0) (= j! (- j 1)) (= k! (- k 1))) (= n! n) (= i! i))) (define-fun PostF ((i Int) (k Int) (n Int) (j Int)) Bool - (or (not (and (>= i n) (> j 0))) (> k 0))) + (or (not (and (>= i n) (> j 0))) (> k 0))) (inv-constraint InvF PreF TransF PostF) (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/for_bounded_loop1_false-unreach-call_true-termination.sl b/benchmarks/LIA/2018.SV-Comp/for_bounded_loop1_false-unreach-call_true-termination.sl index b30529b..5f860e4 100644 --- a/benchmarks/LIA/2018.SV-Comp/for_bounded_loop1_false-unreach-call_true-termination.sl +++ b/benchmarks/LIA/2018.SV-Comp/for_bounded_loop1_false-unreach-call_true-termination.sl @@ -2,26 +2,14 @@ (synth-inv InvF ((i Int) (x Int) (y Int) (n Int))) -(declare-primed-var i Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var n Int) - (define-fun PreF ((i Int) (x Int) (y Int) (n Int)) Bool - (and (= i 0) (= x 0) (= y 0) (> n 0))) - -(define-fun TransF ((i Int) (x Int) (y Int) (n Int) - (i! Int) (x! Int) (y! Int) (n! Int)) Bool - (and (< i n) - (= x! (+ x y!)) - (not(= y! 0)) - (= i! i) - (= n! n) - )) - + (and (= i 0) (= x 0) (= y 0) (> n 0))) +(define-fun TransF ((i Int) (x Int) (y Int) (n Int) (i! Int) (x! Int) (y! Int) (n! Int)) Bool + (and (< i n) (= x! (+ x y!)) (not (= y! 0)) (= i! i) (= n! n))) (define-fun PostF ((i Int) (x Int) (y Int) (n Int)) Bool - (or (< i n) (= x 0))) + (or (< i n) (= x 0))) (inv-constraint InvF PreF TransF PostF) (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/for_infinite_loop_1_true-unreach-call_false-termination.sl b/benchmarks/LIA/2018.SV-Comp/for_infinite_loop_1_true-unreach-call_false-termination.sl index 8bf2dab..e58235e 100644 --- a/benchmarks/LIA/2018.SV-Comp/for_infinite_loop_1_true-unreach-call_false-termination.sl +++ b/benchmarks/LIA/2018.SV-Comp/for_infinite_loop_1_true-unreach-call_false-termination.sl @@ -2,25 +2,14 @@ (synth-inv InvF ((i Int) (x Int) (y Int) (n Int))) -(declare-primed-var i Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var n Int) - (define-fun PreF ((i Int) (x Int) (y Int) (n Int)) Bool - (and (= i 0) (= x 0) (= y 0) (> n 0))) - -(define-fun TransF ((i Int) (x Int) (y Int) (n Int) - (i! Int) (x! Int) (y! Int) (n! Int)) Bool - (and (= i! (+ i 1)) - (= x! x) - (= y! y) - (= n! n) - )) - + (and (= i 0) (= x 0) (= y 0) (> n 0))) +(define-fun TransF ((i Int) (x Int) (y Int) (n Int) (i! Int) (x! Int) (y! Int) (n! Int)) Bool + (and (= i! (+ i 1)) (= x! x) (= y! y) (= n! n))) (define-fun PostF ((i Int) (x Int) (y Int) (n Int)) Bool - (= x 0)) + (= x 0)) (inv-constraint InvF PreF TransF PostF) (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/gj2007_true-unreach-call_true-termination.sl b/benchmarks/LIA/2018.SV-Comp/gj2007_true-unreach-call_true-termination.sl index d3cf851..58a3851 100644 --- a/benchmarks/LIA/2018.SV-Comp/gj2007_true-unreach-call_true-termination.sl +++ b/benchmarks/LIA/2018.SV-Comp/gj2007_true-unreach-call_true-termination.sl @@ -1,23 +1,15 @@ -; From: https://github.com/sosy-lab/sv-benchmarks/blob/master/c/loop-lit/gj2007_true-unreach-call_true-termination.c - (set-logic LIA) (synth-inv inv_fun ((x Int) (y Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) - (define-fun pre_fun ((x Int) (y Int)) Bool - (and (= x 0) (= y 50))) - + (and (= x 0) (= y 50))) (define-fun trans_fun ((x Int) (y Int) (x! Int) (y! Int)) Bool - (and (< x 100) - (ite (< x 50) (= x! (+ x 1)) (= y! y)) - (= x! (+ x 1)) (= y! (+ y 1)))) - + (and (< x 100) (ite (< x 50) (= x! (+ x 1)) (= y! y)) (= x! (+ x 1)) (= y! (+ y 1)))) (define-fun post_fun ((x Int) (y Int)) Bool - (or (< x 100) (= y 100))) + (or (< x 100) (= y 100))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/gj2007b_true-unreach-call_true-termination.sl b/benchmarks/LIA/2018.SV-Comp/gj2007b_true-unreach-call_true-termination.sl index fad75cb..b71a03f 100644 --- a/benchmarks/LIA/2018.SV-Comp/gj2007b_true-unreach-call_true-termination.sl +++ b/benchmarks/LIA/2018.SV-Comp/gj2007b_true-unreach-call_true-termination.sl @@ -1,27 +1,15 @@ -; From: https://github.com/sosy-lab/sv-benchmarks/blob/master/c/loop-lit/gj2007b_true-unreach-call_true-termination.c - (set-logic LIA) (synth-inv inv_fun ((x Int) (m Int) (n Int))) -(declare-primed-var x Int) -(declare-primed-var m Int) -(declare-primed-var n Int) - (define-fun pre_fun ((x Int) (m Int) (n Int)) Bool - (and (= x 0) (= m 0))) - -(define-fun trans_fun ((x Int) (m Int) (n Int) - (x! Int) (m! Int) (n! Int)) Bool - (and (< x n) - (or (= m! x) (= m! m)) - (= n! n) - (= x! (+ x 1)))) - + (and (= x 0) (= m 0))) +(define-fun trans_fun ((x Int) (m Int) (n Int) (x! Int) (m! Int) (n! Int)) Bool + (and (< x n) (or (= m! x) (= m! m)) (= n! n) (= x! (+ x 1)))) (define-fun post_fun ((x Int) (m Int) (n Int)) Bool - (and (or (>= m 0) (<= n 0)) - (or (< m n) (<= n 0)))) + (and (or (>= m 0) (<= n 0)) (or (< m n) (<= n 0)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/gr2006_true-unreach-call_true-termination.sl b/benchmarks/LIA/2018.SV-Comp/gr2006_true-unreach-call_true-termination.sl index c626c8a..016d0a3 100644 --- a/benchmarks/LIA/2018.SV-Comp/gr2006_true-unreach-call_true-termination.sl +++ b/benchmarks/LIA/2018.SV-Comp/gr2006_true-unreach-call_true-termination.sl @@ -2,22 +2,14 @@ (synth-inv InvF ((x Int) (y Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) - (define-fun PreF ((x Int) (y Int)) Bool - (and (= x 0) (= y 1))) - -(define-fun TransF ((x Int) (y Int) - (x! Int) (y! Int)) Bool - (and (>= y 0) - (= x! (+ x 1)) - (ite (< x! 50) (= y! (+ y 1)) (= y! (- y 1))) - )) - + (and (= x 0) (= y 1))) +(define-fun TransF ((x Int) (y Int) (x! Int) (y! Int)) Bool + (and (>= y 0) (= x! (+ x 1)) (ite (< x! 50) (= y! (+ y 1)) (= y! (- y 1))))) (define-fun PostF ((x Int) (y Int)) Bool - (or (>= y 0) (= x 100))) + (or (>= y 0) (= x 100))) (inv-constraint InvF PreF TransF PostF) (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/gsv2008_true-unreach-call_true-termination.sl b/benchmarks/LIA/2018.SV-Comp/gsv2008_true-unreach-call_true-termination.sl index a4d183d..be38aff 100644 --- a/benchmarks/LIA/2018.SV-Comp/gsv2008_true-unreach-call_true-termination.sl +++ b/benchmarks/LIA/2018.SV-Comp/gsv2008_true-unreach-call_true-termination.sl @@ -1,24 +1,15 @@ -; From: https://github.com/sosy-lab/sv-benchmarks/blob/master/c/loop-lit/gsv2008_true-unreach-call_true-termination.c - (set-logic LIA) (synth-inv inv_fun ((x Int) (y Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) - (define-fun pre_fun ((x Int) (y Int)) Bool - (and (= x (- 0 50)) - (< (- 0 1000) y))) - + (and (= x (- 0 50)) (< (- 0 1000) y))) (define-fun trans_fun ((x Int) (y Int) (x! Int) (y! Int)) Bool - (and (< x 0) - (= x! (+ x y)) - (= y! (+ y 1)))) - + (and (< x 0) (= x! (+ x y)) (= y! (+ y 1)))) (define-fun post_fun ((x Int) (y Int)) Bool - (or (< x 0) (> y 0))) + (or (< x 0) (> y 0))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/hhk2008_true-unreach-call_true-termination.sl b/benchmarks/LIA/2018.SV-Comp/hhk2008_true-unreach-call_true-termination.sl index e1f59fa..eec2f79 100644 --- a/benchmarks/LIA/2018.SV-Comp/hhk2008_true-unreach-call_true-termination.sl +++ b/benchmarks/LIA/2018.SV-Comp/hhk2008_true-unreach-call_true-termination.sl @@ -1,29 +1,15 @@ -; From: https://github.com/sosy-lab/sv-benchmarks/blob/master/c/loop-lit/hhk2008_true-unreach-call_true-termination.c - (set-logic LIA) (synth-inv inv_fun ((a Int) (b Int) (res Int) (cnt Int))) -(declare-primed-var a Int) -(declare-primed-var b Int) -(declare-primed-var res Int) -(declare-primed-var cnt Int) - (define-fun pre_fun ((a Int) (b Int) (res Int) (cnt Int)) Bool - (and (<= a 1000000) - (<= 0 b) (<= b 1000000) - (= res a) (= cnt b))) - -(define-fun trans_fun ((a Int) (b Int) (res Int) (cnt Int) - (a! Int) (b! Int) (res! Int) (cnt! Int)) Bool - (and (> cnt 0) - (= cnt! (- cnt 1)) - (= res! (+ res 1)) - (= a! a) (= b! b))) - + (and (<= a 1000000) (<= 0 b) (<= b 1000000) (= res a) (= cnt b))) +(define-fun trans_fun ((a Int) (b Int) (res Int) (cnt Int) (a! Int) (b! Int) (res! Int) (cnt! Int)) Bool + (and (> cnt 0) (= cnt! (- cnt 1)) (= res! (+ res 1)) (= a! a) (= b! b))) (define-fun post_fun ((a Int) (b Int) (res Int) (cnt Int)) Bool - (or (> cnt 0) (= res (+ a b)))) + (or (> cnt 0) (= res (+ a b)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/jm2006_true-unreach-call_true-termination.sl b/benchmarks/LIA/2018.SV-Comp/jm2006_true-unreach-call_true-termination.sl index b0a8128..fc4b96d 100644 --- a/benchmarks/LIA/2018.SV-Comp/jm2006_true-unreach-call_true-termination.sl +++ b/benchmarks/LIA/2018.SV-Comp/jm2006_true-unreach-call_true-termination.sl @@ -1,28 +1,15 @@ -; From: https://github.com/sosy-lab/sv-benchmarks/blob/master/c/loop-lit/jm2006_true-unreach-call_true-termination.c - (set-logic LIA) (synth-inv inv_fun ((i Int) (j Int) (x Int) (y Int))) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - (define-fun pre_fun ((i Int) (j Int) (x Int) (y Int)) Bool - (and (>= i 0) (>= j 0) - (= x i) (= y j))) - -(define-fun trans_fun ((i Int) (j Int) (x Int) (y Int) - (i! Int) (j! Int) (x! Int) (y! Int)) Bool - (and (not (= x 0)) - (= i! i) (= j! j) - (= x! (- x 1)) - (= y! (- y 1)))) - + (and (>= i 0) (>= j 0) (= x i) (= y j))) +(define-fun trans_fun ((i Int) (j Int) (x Int) (y Int) (i! Int) (j! Int) (x! Int) (y! Int)) Bool + (and (not (= x 0)) (= i! i) (= j! j) (= x! (- x 1)) (= y! (- y 1)))) (define-fun post_fun ((i Int) (j Int) (x Int) (y Int)) Bool - (or (not (= x 0)) (=> (= i j) (= y 0)))) + (or (not (= x 0)) (=> (= i j) (= y 0)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/jm2006_variant_true-unreach-call_true-termination.sl b/benchmarks/LIA/2018.SV-Comp/jm2006_variant_true-unreach-call_true-termination.sl index 7676dc7..e381a4a 100644 --- a/benchmarks/LIA/2018.SV-Comp/jm2006_variant_true-unreach-call_true-termination.sl +++ b/benchmarks/LIA/2018.SV-Comp/jm2006_variant_true-unreach-call_true-termination.sl @@ -1,30 +1,15 @@ -; From: https://github.com/sosy-lab/sv-benchmarks/blob/master/c/loop-lit/jm2006_variant_true-unreach-call_true-termination.c - (set-logic LIA) (synth-inv inv_fun ((i Int) (j Int) (x Int) (y Int) (z Int))) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var z Int) - (define-fun pre_fun ((i Int) (j Int) (x Int) (y Int) (z Int)) Bool - (and (>= i 0) (>= j 0) - (= z 0) (= x i) (= y j))) - -(define-fun trans_fun ((i Int) (j Int) (x Int) (y Int) (z Int) - (i! Int) (j! Int) (x! Int) (y! Int) (z! Int)) Bool - (and (not (= x 0)) - (= i! i) (= j! j) - (= x! (- x 1)) - (= y! (- y 2)) - (= z! (+ z 1)))) - + (and (>= i 0) (>= j 0) (= z 0) (= x i) (= y j))) +(define-fun trans_fun ((i Int) (j Int) (x Int) (y Int) (z Int) (i! Int) (j! Int) (x! Int) (y! Int) (z! Int)) Bool + (and (not (= x 0)) (= i! i) (= j! j) (= x! (- x 1)) (= y! (- y 2)) (= z! (+ z 1)))) (define-fun post_fun ((i Int) (j Int) (x Int) (y Int) (z Int)) Bool - (or (not (= x 0)) (=> (= i j) (= y (- 0 z))))) + (or (not (= x 0)) (=> (= i j) (= y (- 0 z))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/multivar_false-unreach-call1_true-termination.sl b/benchmarks/LIA/2018.SV-Comp/multivar_false-unreach-call1_true-termination.sl index db1ba15..628ceda 100644 --- a/benchmarks/LIA/2018.SV-Comp/multivar_false-unreach-call1_true-termination.sl +++ b/benchmarks/LIA/2018.SV-Comp/multivar_false-unreach-call1_true-termination.sl @@ -2,20 +2,14 @@ (synth-inv InvF ((x Int) (y Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) - (define-fun PreF ((x Int) (y Int)) Bool - (= y (+ x 1))) - + (= y (+ x 1))) (define-fun TransF ((x Int) (y Int) (x! Int) (y! Int)) Bool - (and (< x 1024) - (= x! (+ x 1)) - (= y! (+ y 1)))) - + (and (< x 1024) (= x! (+ x 1)) (= y! (+ y 1)))) (define-fun PostF ((x Int) (y Int)) Bool - (or (< x 1024) (not (= x y)))) + (or (< x 1024) (not (= x y)))) (inv-constraint InvF PreF TransF PostF) (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/multivar_true-unreach-call1_true-termination.sl b/benchmarks/LIA/2018.SV-Comp/multivar_true-unreach-call1_true-termination.sl index 3b11c5f..67b99bc 100644 --- a/benchmarks/LIA/2018.SV-Comp/multivar_true-unreach-call1_true-termination.sl +++ b/benchmarks/LIA/2018.SV-Comp/multivar_true-unreach-call1_true-termination.sl @@ -1,21 +1,15 @@ -; From: https://github.com/sosy-lab/sv-benchmarks/blob/master/c/loop-acceleration/multivar_true-unreach-call1_true-termination.c - (set-logic LIA) (synth-inv inv_fun ((x Int) (y Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) - (define-fun pre_fun ((x Int) (y Int)) Bool - (= y x)) - + (= y x)) (define-fun trans_fun ((x Int) (y Int) (x! Int) (y! Int)) Bool - (and (< x 1024) (and (= x! (+ x 1)) (= y! (+ y 1))))) - + (and (< x 1024) (and (= x! (+ x 1)) (= y! (+ y 1))))) (define-fun post_fun ((x Int) (y Int)) Bool - (or (< x 1024) (= x y))) + (or (< x 1024) (= x y))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/sendmail-close-angle_true-unreach-call_true-termination.sl b/benchmarks/LIA/2018.SV-Comp/sendmail-close-angle_true-unreach-call_true-termination.sl index e1fc680..d2fbe53 100644 --- a/benchmarks/LIA/2018.SV-Comp/sendmail-close-angle_true-unreach-call_true-termination.sl +++ b/benchmarks/LIA/2018.SV-Comp/sendmail-close-angle_true-unreach-call_true-termination.sl @@ -2,29 +2,12 @@ (synth-inv InvF ((in Int) (inlen Int) (bufferlen Int) (buf Int) (buflim Int))) -(declare-primed-var in Int) -(declare-primed-var inlen Int) -(declare-primed-var bufferlen Int) -(declare-primed-var buf Int) -(declare-primed-var buflim Int) - (define-fun PreF ((in Int) (inlen Int) (bufferlen Int) (buf Int) (buflim Int)) Bool - (and (> bufferlen 1) (> inlen 0) (< bufferlen inlen) - (= buf 0) (= in 0) (= buflim (- bufferlen 2)))) - -(define-fun TransF ((in Int) (inlen Int) (bufferlen Int) (buf Int) (buflim Int) - (in! Int) (inlen! Int) (bufferlen! Int) (buf! Int) (buflim! Int)) Bool - (and (not (= buf buflim)) - (= buf! (+ buf 1)) - (= in! (+ in 1)) - (= inlen! inlen) - (= bufferlen! bufferlen) - (= buflim! buflim) - )) - + (and (> bufferlen 1) (> inlen 0) (< bufferlen inlen) (= buf 0) (= in 0) (= buflim (- bufferlen 2)))) +(define-fun TransF ((in Int) (inlen Int) (bufferlen Int) (buf Int) (buflim Int) (in! Int) (inlen! Int) (bufferlen! Int) (buf! Int) (buflim! Int)) Bool + (and (not (= buf buflim)) (= buf! (+ buf 1)) (= in! (+ in 1)) (= inlen! inlen) (= bufferlen! bufferlen) (= buflim! buflim))) (define-fun PostF ((in Int) (inlen Int) (bufferlen Int) (buf Int) (buflim Int)) Bool - (or (= buf buflim) - (and (<= 0 buf) (< buf bufferlen)))) + (or (= buf buflim) (and (<= 0 buf) (< buf bufferlen)))) (inv-constraint InvF PreF TransF PostF) diff --git a/benchmarks/LIA/2018.SV-Comp/seq_true-unreach-call_true-termination.sl b/benchmarks/LIA/2018.SV-Comp/seq_true-unreach-call_true-termination.sl index 9c09759..b89386e 100644 --- a/benchmarks/LIA/2018.SV-Comp/seq_true-unreach-call_true-termination.sl +++ b/benchmarks/LIA/2018.SV-Comp/seq_true-unreach-call_true-termination.sl @@ -2,43 +2,14 @@ (synth-inv InvF ((n0 Int) (n1 Int) (i0 Int) (k Int) (i1 Int) (j1 Int))) -(declare-primed-var n0 Int) -(declare-primed-var n1 Int) -(declare-primed-var i0 Int) -(declare-primed-var k Int) -(declare-primed-var i1 Int) -(declare-primed-var j1 Int) - (define-fun PreF ((n0 Int) (n1 Int) (i0 Int) (k Int) (i1 Int) (j1 Int)) Bool - (and (<= (- 0 1000000) n0) - (< n0 1000000) - (<= (- 0 1000000) n1) - (< n1 1000000) - (= i1 0) - (= j1 0) - (= i0 0) - (= k 0) - )) - -(define-fun TransF ((n0 Int) (n1 Int) (i0 Int) (k Int) (i1 Int) (j1 Int) - (n0! Int) (n1! Int) (i0! Int) (k! Int) (i1! Int) (j1! Int)) Bool - (or (and (< i0 n0) - (= i0! (+ i0 1)) - (= k! (+ k 1)) - (= n0! n0) (= n1! n1) (= i1! i1) (= j1! j1)) - (and (>= i0 n0) (< i1 n1) - (= i1! (+ i1 1)) - (= k! (+ k 1)) - (= n0! n0) (= n1! n1) (= i0! i0) (= j1! j1)) - (and (>= i0 n0) (>= i1 n1) (< j1 (+ n0 n1)) - (= j1! (+ j1 1)) - (= k! (- k 1)) - (= n0! n0) (= n1! n1) (= i0! i0) (= i1! i1)) - )) - + (and (<= (- 0 1000000) n0) (< n0 1000000) (<= (- 0 1000000) n1) (< n1 1000000) (= i1 0) (= j1 0) (= i0 0) (= k 0))) +(define-fun TransF ((n0 Int) (n1 Int) (i0 Int) (k Int) (i1 Int) (j1 Int) (n0! Int) (n1! Int) (i0! Int) (k! Int) (i1! Int) (j1! Int)) Bool + (or (and (< i0 n0) (= i0! (+ i0 1)) (= k! (+ k 1)) (= n0! n0) (= n1! n1) (= i1! i1) (= j1! j1)) (and (>= i0 n0) (< i1 n1) (= i1! (+ i1 1)) (= k! (+ k 1)) (= n0! n0) (= n1! n1) (= i0! i0) (= j1! j1)) (and (>= i0 n0) (>= i1 n1) (< j1 (+ n0 n1)) (= j1! (+ j1 1)) (= k! (- k 1)) (= n0! n0) (= n1! n1) (= i0! i0) (= i1! i1)))) (define-fun PostF ((n0 Int) (n1 Int) (i0 Int) (k Int) (i1 Int) (j1 Int)) Bool - (or (not (and (>= i0 n0) (>= i1 n1) (< j1 (+ n0 n1)))) (> k 0))) + (or (not (and (>= i0 n0) (>= i1 n1) (< j1 (+ n0 n1)))) (> k 0))) (inv-constraint InvF PreF TransF PostF) (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/simple_false-unreach-call2_true-termination.sl b/benchmarks/LIA/2018.SV-Comp/simple_false-unreach-call2_true-termination.sl index a529577..fe5730a 100644 --- a/benchmarks/LIA/2018.SV-Comp/simple_false-unreach-call2_true-termination.sl +++ b/benchmarks/LIA/2018.SV-Comp/simple_false-unreach-call2_true-termination.sl @@ -2,18 +2,14 @@ (synth-inv InvF ((x Int))) -(declare-primed-var x Int) - (define-fun PreF ((x Int)) Bool - (>= x 0)) - + (>= x 0)) (define-fun TransF ((x Int) (x! Int)) Bool - (and (< x 268435455) - (= x! (+ x 1)))) - + (and (< x 268435455) (= x! (+ x 1)))) (define-fun PostF ((x Int)) Bool - (or (< x 268435455) (> x 268435455))) + (or (< x 268435455) (> x 268435455))) (inv-constraint InvF PreF TransF PostF) (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/simple_vardep_true-unreach-call1_true-termination.sl b/benchmarks/LIA/2018.SV-Comp/simple_vardep_true-unreach-call1_true-termination.sl index 81b49dc..1d46e74 100644 --- a/benchmarks/LIA/2018.SV-Comp/simple_vardep_true-unreach-call1_true-termination.sl +++ b/benchmarks/LIA/2018.SV-Comp/simple_vardep_true-unreach-call1_true-termination.sl @@ -2,24 +2,14 @@ (synth-inv InvF ((i Int) (j Int) (k Int))) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var k Int) - (define-fun PreF ((i Int) (j Int) (k Int)) Bool - (and (= i 0) (= j 0) (= k 0))) - -(define-fun TransF ((i Int) (j Int) (k Int) - (i! Int) (j! Int) (k! Int)) Bool - (and (< k 268435455) - (= i! (+ i 1)) - (= j! (+ j 2)) - (= k! (+ k 3)) - )) - + (and (= i 0) (= j 0) (= k 0))) +(define-fun TransF ((i Int) (j Int) (k Int) (i! Int) (j! Int) (k! Int)) Bool + (and (< k 268435455) (= i! (+ i 1)) (= j! (+ j 2)) (= k! (+ k 3)))) (define-fun PostF ((i Int) (j Int) (k Int)) Bool - (or (< k 268435455) (= k (+ i j)))) + (or (< k 268435455) (= k (+ i j)))) (inv-constraint InvF PreF TransF PostF) (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/simple_vardep_true-unreach-call2_true-termination.sl b/benchmarks/LIA/2018.SV-Comp/simple_vardep_true-unreach-call2_true-termination.sl index dd23d8f..998e15e 100644 --- a/benchmarks/LIA/2018.SV-Comp/simple_vardep_true-unreach-call2_true-termination.sl +++ b/benchmarks/LIA/2018.SV-Comp/simple_vardep_true-unreach-call2_true-termination.sl @@ -2,23 +2,14 @@ (synth-inv InvF ((i Int) (j Int) (k Int))) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var k Int) - (define-fun PreF ((i Int) (j Int) (k Int)) Bool - (and (= i 0) (= j 0) (= k 0))) - + (and (= i 0) (= j 0) (= k 0))) (define-fun TransF ((i Int) (j Int) (k Int) (i! Int) (j! Int) (k! Int)) Bool - (and (< k 268435455) - (= i! (+ i 1)) - (= j! (+ j 2)) - (= k! (+ k 3)) - )) - + (and (< k 268435455) (= i! (+ i 1)) (= j! (+ j 2)) (= k! (+ k 3)))) (define-fun PostF ((i Int) (j Int) (k Int)) Bool - (or (< k 268435455) (and (= k (* 3 i)) (= j (* 2 i))))) + (or (< k 268435455) (and (= k (* 3 i)) (= j (* 2 i))))) (inv-constraint InvF PreF TransF PostF) (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/sum01_bug02_false-unreach-call_true-termination.sl b/benchmarks/LIA/2018.SV-Comp/sum01_bug02_false-unreach-call_true-termination.sl index 472cdb2..8012110 100644 --- a/benchmarks/LIA/2018.SV-Comp/sum01_bug02_false-unreach-call_true-termination.sl +++ b/benchmarks/LIA/2018.SV-Comp/sum01_bug02_false-unreach-call_true-termination.sl @@ -2,26 +2,14 @@ (synth-inv InvF ((i Int) (j Int) (n Int) (sn Int))) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var n Int) -(declare-primed-var sn Int) - (define-fun PreF ((i Int) (j Int) (n Int) (sn Int)) Bool - (and (= j 10) (= i 1) (= sn 0) (>= n 0))) - -(define-fun TransF ((i Int) (j Int) (n Int) (sn Int) - (i! Int) (j! Int) (n! Int) (sn! Int)) Bool - (and (<= i n) - (ite (< i j) (= sn! (+ sn 2)) (= sn! sn)) - (= j! (- j 1)) - (= i! (+ i 1)) - (= n! n) - )) - + (and (= j 10) (= i 1) (= sn 0) (>= n 0))) +(define-fun TransF ((i Int) (j Int) (n Int) (sn Int) (i! Int) (j! Int) (n! Int) (sn! Int)) Bool + (and (<= i n) (ite (< i j) (= sn! (+ sn 2)) (= sn! sn)) (= j! (- j 1)) (= i! (+ i 1)) (= n! n))) (define-fun PostF ((i Int) (j Int) (n Int) (sn Int)) Bool - (or (<= i n) (or (= sn (* n 2)) (= sn 0)))) + (or (<= i n) (or (= sn (* n 2)) (= sn 0)))) (inv-constraint InvF PreF TransF PostF) (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/sum01_bug02_sum01_bug02_base.sl b/benchmarks/LIA/2018.SV-Comp/sum01_bug02_sum01_bug02_base.sl index ba25b13..a2f15ff 100644 --- a/benchmarks/LIA/2018.SV-Comp/sum01_bug02_sum01_bug02_base.sl +++ b/benchmarks/LIA/2018.SV-Comp/sum01_bug02_sum01_bug02_base.sl @@ -2,23 +2,14 @@ (synth-inv InvF ((i Int) (n Int) (sn Int))) -(declare-primed-var i Int) -(declare-primed-var n Int) -(declare-primed-var sn Int) - (define-fun PreF ((i Int) (n Int) (sn Int)) Bool - (and (= i 1) (= sn 0) (>= n 0))) - + (and (= i 1) (= sn 0) (>= n 0))) (define-fun TransF ((i Int) (n Int) (sn Int) (i! Int) (n! Int) (sn! Int)) Bool - (and (<= i n) - (ite (= i 4) (= sn! (- 0 10)) (= sn! (+ sn 2))) - (= i! (+ i 1)) - (= n! n) - )) - + (and (<= i n) (ite (= i 4) (= sn! (- 0 10)) (= sn! (+ sn 2))) (= i! (+ i 1)) (= n! n))) (define-fun PostF ((i Int) (n Int) (sn Int)) Bool - (or (<= i n) (or (= sn (* n 2)) (= sn 0)))) + (or (<= i n) (or (= sn (* n 2)) (= sn 0)))) (inv-constraint InvF PreF TransF PostF) (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/sum01_false-unreach-call_true-termination.sl b/benchmarks/LIA/2018.SV-Comp/sum01_false-unreach-call_true-termination.sl index 0523c0a..4b4ddb1 100644 --- a/benchmarks/LIA/2018.SV-Comp/sum01_false-unreach-call_true-termination.sl +++ b/benchmarks/LIA/2018.SV-Comp/sum01_false-unreach-call_true-termination.sl @@ -2,23 +2,14 @@ (synth-inv InvF ((i Int) (n Int) (sn Int))) -(declare-primed-var i Int) -(declare-primed-var n Int) -(declare-primed-var sn Int) - (define-fun PreF ((i Int) (n Int) (sn Int)) Bool - (and (= i 1) (= sn 0) (>= n 0))) - + (and (= i 1) (= sn 0) (>= n 0))) (define-fun TransF ((i Int) (n Int) (sn Int) (i! Int) (n! Int) (sn! Int)) Bool - (and (<= i n) - (ite (< i 10) (= sn! (+ sn 2)) (= sn! sn)) - (= i! (+ i 1)) - (= n! n) - )) - + (and (<= i n) (ite (< i 10) (= sn! (+ sn 2)) (= sn! sn)) (= i! (+ i 1)) (= n! n))) (define-fun PostF ((i Int) (n Int) (sn Int)) Bool - (or (<= i n) (or (= sn (* n 2)) (= sn 0)))) + (or (<= i n) (or (= sn (* n 2)) (= sn 0)))) (inv-constraint InvF PreF TransF PostF) (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/sum03_false-unreach-call_true-termination.sl b/benchmarks/LIA/2018.SV-Comp/sum03_false-unreach-call_true-termination.sl index c670528..b18bfa5 100644 --- a/benchmarks/LIA/2018.SV-Comp/sum03_false-unreach-call_true-termination.sl +++ b/benchmarks/LIA/2018.SV-Comp/sum03_false-unreach-call_true-termination.sl @@ -2,24 +2,14 @@ (synth-inv InvF ((sn Int) (loop1 Int) (n1 Int) (x Int))) -(declare-primed-var sn Int) -(declare-primed-var loop1 Int) -(declare-primed-var n1 Int) -(declare-primed-var x Int) - (define-fun PreF ((sn Int) (loop1 Int) (n1 Int) (x Int)) Bool - (and (= sn 0) (= x 0) (>= loop1 0) (>= n1 0))) - -(define-fun TransF ((sn Int) (loop1 Int) (n1 Int) (x Int) - (sn! Int) (loop1! Int) (n1! Int) (x! Int)) Bool - (and (ite (< x 10) (= sn! (+ sn 2)) (= sn! sn)) - (= x! (+ x 1)) - (= loop1! loop1) - (= n1! n1))) - + (and (= sn 0) (= x 0) (>= loop1 0) (>= n1 0))) +(define-fun TransF ((sn Int) (loop1 Int) (n1 Int) (x Int) (sn! Int) (loop1! Int) (n1! Int) (x! Int)) Bool + (and (ite (< x 10) (= sn! (+ sn 2)) (= sn! sn)) (= x! (+ x 1)) (= loop1! loop1) (= n1! n1))) (define-fun PostF ((sn Int) (loop1 Int) (n1 Int) (x Int)) Bool - (or (= sn (* x 2)) (= sn 0))) + (or (= sn (* x 2)) (= sn 0))) (inv-constraint InvF PreF TransF PostF) (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/sum03_true-unreach-call_false-termination.sl b/benchmarks/LIA/2018.SV-Comp/sum03_true-unreach-call_false-termination.sl index 5f27809..feeb3af 100644 --- a/benchmarks/LIA/2018.SV-Comp/sum03_true-unreach-call_false-termination.sl +++ b/benchmarks/LIA/2018.SV-Comp/sum03_true-unreach-call_false-termination.sl @@ -2,24 +2,14 @@ (synth-inv InvF ((sn Int) (loop1 Int) (n1 Int) (x Int))) -(declare-primed-var sn Int) -(declare-primed-var loop1 Int) -(declare-primed-var n1 Int) -(declare-primed-var x Int) - (define-fun PreF ((sn Int) (loop1 Int) (n1 Int) (x Int)) Bool - (and (= sn 0) (= x 0) (>= loop1 0) (>= n1 0))) - -(define-fun TransF ((sn Int) (loop1 Int) (n1 Int) (x Int) - (sn! Int) (loop1! Int) (n1! Int) (x! Int)) Bool - (and (= sn! (+ sn 2)) - (= x! (+ x 1)) - (= loop1! loop1) - (= n1! n1))) - + (and (= sn 0) (= x 0) (>= loop1 0) (>= n1 0))) +(define-fun TransF ((sn Int) (loop1 Int) (n1 Int) (x Int) (sn! Int) (loop1! Int) (n1! Int) (x! Int)) Bool + (and (= sn! (+ sn 2)) (= x! (+ x 1)) (= loop1! loop1) (= n1! n1))) (define-fun PostF ((sn Int) (loop1 Int) (n1 Int) (x Int)) Bool - (or (= sn (* x 2)) (= sn 0))) + (or (= sn (* x 2)) (= sn 0))) (inv-constraint InvF PreF TransF PostF) (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/sum04_false-unreach-call_true-termination.sl b/benchmarks/LIA/2018.SV-Comp/sum04_false-unreach-call_true-termination.sl index b5900c7..fe1dc12 100644 --- a/benchmarks/LIA/2018.SV-Comp/sum04_false-unreach-call_true-termination.sl +++ b/benchmarks/LIA/2018.SV-Comp/sum04_false-unreach-call_true-termination.sl @@ -2,20 +2,14 @@ (synth-inv InvF ((i Int) (sn Int))) -(declare-primed-var i Int) -(declare-primed-var sn Int) - (define-fun PreF ((i Int) (sn Int)) Bool - (and (= sn 0) (= i 1))) - + (and (= sn 0) (= i 1))) (define-fun TransF ((i Int) (sn Int) (i! Int) (sn! Int)) Bool - (and (<= i 8) - (ite (< i 4) (= sn! (+ sn 2)) (= sn! sn)) - (= i! (+ i 1)))) - + (and (<= i 8) (ite (< i 4) (= sn! (+ sn 2)) (= sn! sn)) (= i! (+ i 1)))) (define-fun PostF ((i Int) (sn Int)) Bool - (or (<= i 8) (or (= sn (* 8 2)) (= sn 0)))) + (or (<= i 8) (or (= sn (* 8 2)) (= sn 0)))) (inv-constraint InvF PreF TransF PostF) (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/terminator_02_true-unreach-call_true-termination.sl b/benchmarks/LIA/2018.SV-Comp/terminator_02_true-unreach-call_true-termination.sl index 60f4b3a..918015b 100644 --- a/benchmarks/LIA/2018.SV-Comp/terminator_02_true-unreach-call_true-termination.sl +++ b/benchmarks/LIA/2018.SV-Comp/terminator_02_true-unreach-call_true-termination.sl @@ -1,25 +1,15 @@ -; From: https://github.com/sosy-lab/sv-benchmarks/blob/master/c/loops/terminator_02_true-unreach-call_true-termination.c - (set-logic LIA) (synth-inv inv_fun ((x Int) (z Int))) -(declare-primed-var x Int) -(declare-primed-var z Int) - (define-fun pre_fun ((x Int) (z Int)) Bool - (and (> x (- 0 100)) (< x 200) - (> z 100) (< z 200))) - + (and (> x (- 0 100)) (< x 200) (> z 100) (< z 200))) (define-fun trans_fun ((x Int) (z Int) (x! Int) (z! Int)) Bool - (and (< x 100) (> z 100) - (or (and (= x! (+ x 1)) (= z! z)) - (and (= x! (- x 1)) (= z! (- z 1)))))) - + (and (< x 100) (> z 100) (or (and (= x! (+ x 1)) (= z! z)) (and (= x! (- x 1)) (= z! (- z 1)))))) (define-fun post_fun ((x Int) (z Int)) Bool - (or (and (< x 100) (> z 100)) - (or (>= x 100) (<= z 100)))) + (or (and (< x 100) (> z 100)) (or (>= x 100) (<= z 100)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/terminator_03_true-unreach-call_true-termination.sl b/benchmarks/LIA/2018.SV-Comp/terminator_03_true-unreach-call_true-termination.sl index 6169ad2..77af2fc 100644 --- a/benchmarks/LIA/2018.SV-Comp/terminator_03_true-unreach-call_true-termination.sl +++ b/benchmarks/LIA/2018.SV-Comp/terminator_03_true-unreach-call_true-termination.sl @@ -1,24 +1,15 @@ -; From: https://github.com/sosy-lab/sv-benchmarks/blob/master/c/loops/terminator_03_true-unreach-call_true-termination.c - (set-logic LIA) (synth-inv inv_fun ((x Int) (y Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) - (define-fun pre_fun ((x Int) (y Int)) Bool - (<= y 1000000)) - + (<= y 1000000)) (define-fun trans_fun ((x Int) (y Int) (x! Int) (y! Int)) Bool - (and (< x 100) (> y 0) - (= x! (+ x y)) - (= y! y))) - + (and (< x 100) (> y 0) (= x! (+ x y)) (= y! y))) (define-fun post_fun ((x Int) (y Int)) Bool - (=> (or (<= y 0) (and (> y 0) (>= x 100))) - (or (<= y 0) (and (> y 0) (>= x 100))))) + (=> (or (<= y 0) (and (> y 0) (>= x 100))) (or (<= y 0) (and (> y 0) (>= x 100))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/underapprox_false-unreach-call1_true-termination.sl b/benchmarks/LIA/2018.SV-Comp/underapprox_false-unreach-call1_true-termination.sl index 48a8d0c..ed050d5 100644 --- a/benchmarks/LIA/2018.SV-Comp/underapprox_false-unreach-call1_true-termination.sl +++ b/benchmarks/LIA/2018.SV-Comp/underapprox_false-unreach-call1_true-termination.sl @@ -2,18 +2,14 @@ (synth-inv InvF ((x Int) (y Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) - (define-fun PreF ((x Int) (y Int)) Bool - (and (= x 0) (= y 1))) - + (and (= x 0) (= y 1))) (define-fun TransF ((x Int) (y Int) (x! Int) (y! Int)) Bool - (and (< x 6) (and (= x! (+ x 1)) (= y! (* y 2))))) - + (and (< x 6) (and (= x! (+ x 1)) (= y! (* y 2))))) (define-fun PostF ((x Int) (y Int)) Bool - (or (< x 6) (not (= y 64)))) + (or (< x 6) (not (= y 64)))) (inv-constraint InvF PreF TransF PostF) (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/underapprox_true-unreach-call2_true-termination.sl b/benchmarks/LIA/2018.SV-Comp/underapprox_true-unreach-call2_true-termination.sl index e831d59..9ba9653 100644 --- a/benchmarks/LIA/2018.SV-Comp/underapprox_true-unreach-call2_true-termination.sl +++ b/benchmarks/LIA/2018.SV-Comp/underapprox_true-unreach-call2_true-termination.sl @@ -1,21 +1,15 @@ -; From: https://github.com/sosy-lab/sv-benchmarks/blob/master/c/loop-acceleration/underapprox_true-unreach-call2_true-termination.c - (set-logic LIA) (synth-inv inv_fun ((x Int) (y Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) - (define-fun pre_fun ((x Int) (y Int)) Bool - (and (= x 0) (= y 1))) - + (and (= x 0) (= y 1))) (define-fun trans_fun ((x Int) (y Int) (x! Int) (y! Int)) Bool - (and (< x 6) (and (= x! (+ x 1)) (= y! (* y 2))))) - + (and (< x 6) (and (= x! (+ x 1)) (= y! (* y 2))))) (define-fun post_fun ((x Int) (y Int)) Bool - (or (< x 6) (= x 6))) + (or (< x 6) (= x 6))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/up_true-unreach-call_true-termination.sl b/benchmarks/LIA/2018.SV-Comp/up_true-unreach-call_true-termination.sl index 4fff153..d935ee3 100644 --- a/benchmarks/LIA/2018.SV-Comp/up_true-unreach-call_true-termination.sl +++ b/benchmarks/LIA/2018.SV-Comp/up_true-unreach-call_true-termination.sl @@ -2,29 +2,14 @@ (synth-inv InvF ((n Int) (i Int) (k Int) (j Int))) -(declare-primed-var n Int) -(declare-primed-var i Int) -(declare-primed-var k Int) -(declare-primed-var j Int) - (define-fun PreF ((n Int) (i Int) (k Int) (j Int)) Bool - (and (= i 0) (= k 0) (= j 0))) - -(define-fun TransF ((n Int) (i Int) (k Int) (j Int) - (n! Int) (i! Int) (k! Int) (j! Int)) Bool - (or (and (< i n) - (= i! (+ i 1)) - (= k! (+ k 1)) - (= n! n) (= j! j)) - (and (>= i n) (< j n) - (= j! (+ j 1)) - (= k! (- k 1)) - (= n! n) (= i! i)) - )) - + (and (= i 0) (= k 0) (= j 0))) +(define-fun TransF ((n Int) (i Int) (k Int) (j Int) (n! Int) (i! Int) (k! Int) (j! Int)) Bool + (or (and (< i n) (= i! (+ i 1)) (= k! (+ k 1)) (= n! n) (= j! j)) (and (>= i n) (< j n) (= j! (+ j 1)) (= k! (- k 1)) (= n! n) (= i! i)))) (define-fun PostF ((n Int) (i Int) (k Int) (j Int)) Bool - (or (not (and (>= i n) (< j n))) (> k 0))) + (or (not (and (>= i n) (< j n))) (> k 0))) (inv-constraint InvF PreF TransF PostF) (check-synth) + diff --git a/benchmarks/LIA/2018.SV-Comp/while_infinite_loop_3_true-unreach-call_false-termination.sl b/benchmarks/LIA/2018.SV-Comp/while_infinite_loop_3_true-unreach-call_false-termination.sl index a32bd28..55c91f3 100644 --- a/benchmarks/LIA/2018.SV-Comp/while_infinite_loop_3_true-unreach-call_false-termination.sl +++ b/benchmarks/LIA/2018.SV-Comp/while_infinite_loop_3_true-unreach-call_false-termination.sl @@ -2,16 +2,12 @@ (synth-inv InvF ((x Int))) -(declare-primed-var x Int) - (define-fun PreF ((x Int)) Bool - (= x 0)) - + (= x 0)) (define-fun TransF ((x Int) (x! Int)) Bool - (= x! 0)) - + (= x! 0)) (define-fun PostF ((x Int)) Bool - (= x 0)) + (= x 0)) (inv-constraint InvF PreF TransF PostF) diff --git a/benchmarks/LIA/2018.SV-Comp/while_infinite_loop_4_false-unreach-call_true-termination.sl b/benchmarks/LIA/2018.SV-Comp/while_infinite_loop_4_false-unreach-call_true-termination.sl index 31d0996..8cdff80 100644 --- a/benchmarks/LIA/2018.SV-Comp/while_infinite_loop_4_false-unreach-call_true-termination.sl +++ b/benchmarks/LIA/2018.SV-Comp/while_infinite_loop_4_false-unreach-call_true-termination.sl @@ -2,16 +2,12 @@ (synth-inv InvF ((x Int))) -(declare-primed-var x Int) - (define-fun PreF ((x Int)) Bool - (= x 0)) - + (= x 0)) (define-fun TransF ((x Int) (x! Int)) Bool - (= x! 1)) - + (= x! 1)) (define-fun PostF ((x Int)) Bool - (not (= x 0))) + (not (= x 0))) (inv-constraint InvF PreF TransF PostF) diff --git a/benchmarks/LIA/Lustre/DRAGON_1.sl b/benchmarks/LIA/Lustre/DRAGON_1.sl index fd03a3c..8490b3e 100644 --- a/benchmarks/LIA/Lustre/DRAGON_1.sl +++ b/benchmarks/LIA/Lustre/DRAGON_1.sl @@ -1,1925 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ X5 X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_5_a_0)) - (and - (= top.usr.OK_a_0 (=> top.res.abs_8_a_0 (not X1))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_5_a_1)) - (and - (= top.usr.OK_a_1 (=> top.res.abs_8_a_1 (not X1))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_5)) - (and - (= top.usr.OK (=> top.res.abs_8 (not X1))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_5!)) - (and - (= top.usr.OK! (=> top.res.abs_8! (not X1))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!)))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ X5 X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_5_a_0)) (and (= top.usr.OK_a_0 (=> top.res.abs_8_a_0 (not X1))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_5_a_1)) (and (= top.usr.OK_a_1 (=> top.res.abs_8_a_1 (not X1))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_5)) (and (= top.usr.OK (=> top.res.abs_8 (not X1))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_5!)) (and (= top.usr.OK! (=> top.res.abs_8! (not X1))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!)))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_10.sl b/benchmarks/LIA/Lustre/DRAGON_10.sl index 363cdaf..8ff3cb9 100644 --- a/benchmarks/LIA/Lustre/DRAGON_10.sl +++ b/benchmarks/LIA/Lustre/DRAGON_10.sl @@ -1,1933 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ X5 X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_4)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_4!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ X5 X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_4_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_4_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_4)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_4!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_10_e1_3587_e3_2749.sl b/benchmarks/LIA/Lustre/DRAGON_10_e1_3587_e3_2749.sl index ca70c2e..d0f8632 100644 --- a/benchmarks/LIA/Lustre/DRAGON_10_e1_3587_e3_2749.sl +++ b/benchmarks/LIA/Lustre/DRAGON_10_e1_3587_e3_2749.sl @@ -1,1933 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (- (+ (+ X5 1) X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (- - (+ (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_4)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_4!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (- (+ (+ X5 1) X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (- (+ (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_4_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_4_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_4)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_4!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_10_e1_998.sl b/benchmarks/LIA/Lustre/DRAGON_10_e1_998.sl index 5b5cd92..3a31a21 100644 --- a/benchmarks/LIA/Lustre/DRAGON_10_e1_998.sl +++ b/benchmarks/LIA/Lustre/DRAGON_10_e1_998.sl @@ -1,1933 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ (+ X5 1) X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_4)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_4!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ (+ X5 1) X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_4_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_4_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_4)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_4!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_10_e2_2785_e3_1744.sl b/benchmarks/LIA/Lustre/DRAGON_10_e2_2785_e3_1744.sl index 1254baa..5f3d330 100644 --- a/benchmarks/LIA/Lustre/DRAGON_10_e2_2785_e3_1744.sl +++ b/benchmarks/LIA/Lustre/DRAGON_10_e2_2785_e3_1744.sl @@ -1,1933 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (- (+ (- X5 1) X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (- - (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_4)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_4!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (- (+ (- X5 1) X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (- (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_4_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_4_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_4)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_4!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_10_e2_402.sl b/benchmarks/LIA/Lustre/DRAGON_10_e2_402.sl index ef59453..e5952c9 100644 --- a/benchmarks/LIA/Lustre/DRAGON_10_e2_402.sl +++ b/benchmarks/LIA/Lustre/DRAGON_10_e2_402.sl @@ -1,1933 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ (- X5 1) X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_4)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_4!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ (- X5 1) X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_4_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_4_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_4)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_4!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_10_e3_144_e5_2046.sl b/benchmarks/LIA/Lustre/DRAGON_10_e3_144_e5_2046.sl index 228e5f9..4cfd461 100644 --- a/benchmarks/LIA/Lustre/DRAGON_10_e3_144_e5_2046.sl +++ b/benchmarks/LIA/Lustre/DRAGON_10_e3_144_e5_2046.sl @@ -1,1933 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (- (- X5 1) X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (- (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_4)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_4!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (- (- X5 1) X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (- (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_4_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_4_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_4)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_4!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_10_e3_3429.sl b/benchmarks/LIA/Lustre/DRAGON_10_e3_3429.sl index 18baa6d..6e760cd 100644 --- a/benchmarks/LIA/Lustre/DRAGON_10_e3_3429.sl +++ b/benchmarks/LIA/Lustre/DRAGON_10_e3_3429.sl @@ -1,1933 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (- X5 X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (- DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_4)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_4!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (- X5 X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (- DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_4_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_4_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_4)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_4!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_12.sl b/benchmarks/LIA/Lustre/DRAGON_12.sl index c1d6fb3..5f7bded 100644 --- a/benchmarks/LIA/Lustre/DRAGON_12.sl +++ b/benchmarks/LIA/Lustre/DRAGON_12.sl @@ -1,1993 +1,66 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ X5 X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (<= X2 top.res.abs_9_a_0))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (<= X2 top.res.abs_9_a_1))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_2)) - (and - (= top.usr.OK (=> X1 (<= X2 top.res.abs_9))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_init_First_0 top.usr.init_invalid top.res.abs_9 top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_2!)) - (and - (= top.usr.OK! (=> X1 (<= X2 top.res.abs_9!))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_4! - top.res.inst_3! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_1! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid! - top.res.abs_9! - top.res.inst_0! - top.usr.init_invalid - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ X5 X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_2_a_0)) (and (= top.usr.OK_a_0 (=> X1 (<= X2 top.res.abs_9_a_0))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_2_a_1)) (and (= top.usr.OK_a_1 (=> X1 (<= X2 top.res.abs_9_a_1))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.init_invalid_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_2)) (and (= top.usr.OK (=> X1 (<= X2 top.res.abs_9))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid top.res.abs_9 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_2!)) (and (= top.usr.OK! (=> X1 (<= X2 top.res.abs_9!))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_4! top.res.inst_3! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_2! top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_1! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid! top.res.abs_9! top.res.inst_0! top.usr.init_invalid top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_12_e2_1618.sl b/benchmarks/LIA/Lustre/DRAGON_12_e2_1618.sl index 3135252..8d5f456 100644 --- a/benchmarks/LIA/Lustre/DRAGON_12_e2_1618.sl +++ b/benchmarks/LIA/Lustre/DRAGON_12_e2_1618.sl @@ -1,1993 +1,66 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ (- X5 1) X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (<= X2 top.res.abs_9_a_0))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (<= X2 top.res.abs_9_a_1))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_2)) - (and - (= top.usr.OK (=> X1 (<= X2 top.res.abs_9))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_init_First_0 top.usr.init_invalid top.res.abs_9 top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_2!)) - (and - (= top.usr.OK! (=> X1 (<= X2 top.res.abs_9!))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_4! - top.res.inst_3! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_1! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid! - top.res.abs_9! - top.res.inst_0! - top.usr.init_invalid - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ (- X5 1) X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_2_a_0)) (and (= top.usr.OK_a_0 (=> X1 (<= X2 top.res.abs_9_a_0))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_2_a_1)) (and (= top.usr.OK_a_1 (=> X1 (<= X2 top.res.abs_9_a_1))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.init_invalid_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_2)) (and (= top.usr.OK (=> X1 (<= X2 top.res.abs_9))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid top.res.abs_9 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_2!)) (and (= top.usr.OK! (=> X1 (<= X2 top.res.abs_9!))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_4! top.res.inst_3! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_2! top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_1! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid! top.res.abs_9! top.res.inst_0! top.usr.init_invalid top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_12_e2_1618_e1_6030.sl b/benchmarks/LIA/Lustre/DRAGON_12_e2_1618_e1_6030.sl index 5589c6b..c448a06 100644 --- a/benchmarks/LIA/Lustre/DRAGON_12_e2_1618_e1_6030.sl +++ b/benchmarks/LIA/Lustre/DRAGON_12_e2_1618_e1_6030.sl @@ -1,1993 +1,66 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ (+ (- X5 1) X4) 1) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) 1) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (<= X2 top.res.abs_9_a_0))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (<= X2 top.res.abs_9_a_1))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_2)) - (and - (= top.usr.OK (=> X1 (<= X2 top.res.abs_9))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_init_First_0 top.usr.init_invalid top.res.abs_9 top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_2!)) - (and - (= top.usr.OK! (=> X1 (<= X2 top.res.abs_9!))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_4! - top.res.inst_3! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_1! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid! - top.res.abs_9! - top.res.inst_0! - top.usr.init_invalid - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ (+ (- X5 1) X4) 1) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_2_a_0)) (and (= top.usr.OK_a_0 (=> X1 (<= X2 top.res.abs_9_a_0))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_2_a_1)) (and (= top.usr.OK_a_1 (=> X1 (<= X2 top.res.abs_9_a_1))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.init_invalid_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_2)) (and (= top.usr.OK (=> X1 (<= X2 top.res.abs_9))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid top.res.abs_9 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_2!)) (and (= top.usr.OK! (=> X1 (<= X2 top.res.abs_9!))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_4! top.res.inst_3! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_2! top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_1! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid! top.res.abs_9! top.res.inst_0! top.usr.init_invalid top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_12_e2_1618_e2_138.sl b/benchmarks/LIA/Lustre/DRAGON_12_e2_1618_e2_138.sl index b3331b4..676ea00 100644 --- a/benchmarks/LIA/Lustre/DRAGON_12_e2_1618_e2_138.sl +++ b/benchmarks/LIA/Lustre/DRAGON_12_e2_1618_e2_138.sl @@ -1,1993 +1,66 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (- (+ (- X5 1) X4) 1) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (- (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) 1) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (<= X2 top.res.abs_9_a_0))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (<= X2 top.res.abs_9_a_1))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_2)) - (and - (= top.usr.OK (=> X1 (<= X2 top.res.abs_9))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_init_First_0 top.usr.init_invalid top.res.abs_9 top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_2!)) - (and - (= top.usr.OK! (=> X1 (<= X2 top.res.abs_9!))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_4! - top.res.inst_3! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_1! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid! - top.res.abs_9! - top.res.inst_0! - top.usr.init_invalid - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (- (+ (- X5 1) X4) 1) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (- (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_2_a_0)) (and (= top.usr.OK_a_0 (=> X1 (<= X2 top.res.abs_9_a_0))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_2_a_1)) (and (= top.usr.OK_a_1 (=> X1 (<= X2 top.res.abs_9_a_1))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.init_invalid_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_2)) (and (= top.usr.OK (=> X1 (<= X2 top.res.abs_9))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid top.res.abs_9 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_2!)) (and (= top.usr.OK! (=> X1 (<= X2 top.res.abs_9!))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_4! top.res.inst_3! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_2! top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_1! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid! top.res.abs_9! top.res.inst_0! top.usr.init_invalid top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_12_e2_1618_e3_2012.sl b/benchmarks/LIA/Lustre/DRAGON_12_e2_1618_e3_2012.sl index 1771c3d..2326451 100644 --- a/benchmarks/LIA/Lustre/DRAGON_12_e2_1618_e3_2012.sl +++ b/benchmarks/LIA/Lustre/DRAGON_12_e2_1618_e3_2012.sl @@ -1,1993 +1,66 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (- (+ (- X5 1) X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (- - (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (<= X2 top.res.abs_9_a_0))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (<= X2 top.res.abs_9_a_1))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_2)) - (and - (= top.usr.OK (=> X1 (<= X2 top.res.abs_9))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_init_First_0 top.usr.init_invalid top.res.abs_9 top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_2!)) - (and - (= top.usr.OK! (=> X1 (<= X2 top.res.abs_9!))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_4! - top.res.inst_3! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_1! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid! - top.res.abs_9! - top.res.inst_0! - top.usr.init_invalid - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (- (+ (- X5 1) X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (- (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_2_a_0)) (and (= top.usr.OK_a_0 (=> X1 (<= X2 top.res.abs_9_a_0))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_2_a_1)) (and (= top.usr.OK_a_1 (=> X1 (<= X2 top.res.abs_9_a_1))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.init_invalid_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_2)) (and (= top.usr.OK (=> X1 (<= X2 top.res.abs_9))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid top.res.abs_9 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_2!)) (and (= top.usr.OK! (=> X1 (<= X2 top.res.abs_9!))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_4! top.res.inst_3! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_2! top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_1! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid! top.res.abs_9! top.res.inst_0! top.usr.init_invalid top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_13.sl b/benchmarks/LIA/Lustre/DRAGON_13.sl index b15fa93..79adf41 100644 --- a/benchmarks/LIA/Lustre/DRAGON_13.sl +++ b/benchmarks/LIA/Lustre/DRAGON_13.sl @@ -1,1993 +1,66 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ X5 X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (<= X2 top.res.abs_9_a_0))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (<= X2 top.res.abs_9_a_1))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_3)) - (and - (= top.usr.OK (=> X1 (<= X2 top.res.abs_9))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_init_First_0 top.usr.init_invalid top.res.abs_9 top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_3!)) - (and - (= top.usr.OK! (=> X1 (<= X2 top.res.abs_9!))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_4! - top.res.inst_3! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_1! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid! - top.res.abs_9! - top.res.inst_0! - top.usr.init_invalid - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ X5 X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (<= X2 top.res.abs_9_a_0))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (<= X2 top.res.abs_9_a_1))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.init_invalid_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_3)) (and (= top.usr.OK (=> X1 (<= X2 top.res.abs_9))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid top.res.abs_9 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (<= X2 top.res.abs_9!))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_4! top.res.inst_3! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_2! top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_1! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid! top.res.abs_9! top.res.inst_0! top.usr.init_invalid top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_13_e3_1418_e3_2761.sl b/benchmarks/LIA/Lustre/DRAGON_13_e3_1418_e3_2761.sl index 55304b0..ca6b468 100644 --- a/benchmarks/LIA/Lustre/DRAGON_13_e3_1418_e3_2761.sl +++ b/benchmarks/LIA/Lustre/DRAGON_13_e3_1418_e3_2761.sl @@ -1,1993 +1,66 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (- (- X5 X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (- - (- DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (<= X2 top.res.abs_9_a_0))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (<= X2 top.res.abs_9_a_1))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_3)) - (and - (= top.usr.OK (=> X1 (<= X2 top.res.abs_9))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_init_First_0 top.usr.init_invalid top.res.abs_9 top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_3!)) - (and - (= top.usr.OK! (=> X1 (<= X2 top.res.abs_9!))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_4! - top.res.inst_3! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_1! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid! - top.res.abs_9! - top.res.inst_0! - top.usr.init_invalid - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (- (- X5 X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (- (- DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (<= X2 top.res.abs_9_a_0))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (<= X2 top.res.abs_9_a_1))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.init_invalid_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_3)) (and (= top.usr.OK (=> X1 (<= X2 top.res.abs_9))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid top.res.abs_9 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (<= X2 top.res.abs_9!))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_4! top.res.inst_3! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_2! top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_1! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid! top.res.abs_9! top.res.inst_0! top.usr.init_invalid top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_1_e1_14612_e1_268_e7_501.sl b/benchmarks/LIA/Lustre/DRAGON_1_e1_14612_e1_268_e7_501.sl index dc7b37c..016fb66 100644 --- a/benchmarks/LIA/Lustre/DRAGON_1_e1_14612_e1_268_e7_501.sl +++ b/benchmarks/LIA/Lustre/DRAGON_1_e1_14612_e1_268_e7_501.sl @@ -1,1925 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ (+ (+ X5 1) X4) 1) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ (+ (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) 1) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_5_a_0)) - (and - (= top.usr.OK_a_0 (=> top.res.abs_8_a_0 (not X1))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_5_a_1)) - (and - (= top.usr.OK_a_1 (=> top.res.abs_8_a_1 (not X1))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_5)) - (and - (= top.usr.OK (=> top.res.abs_8 (not X1))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_5!)) - (and - (= top.usr.OK! (=> top.res.abs_8! (not X1))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!)))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ (+ (+ X5 1) X4) 1) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ (+ (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_5_a_0)) (and (= top.usr.OK_a_0 (=> top.res.abs_8_a_0 (not X1))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_5_a_1)) (and (= top.usr.OK_a_1 (=> top.res.abs_8_a_1 (not X1))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_5)) (and (= top.usr.OK (=> top.res.abs_8 (not X1))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_5!)) (and (= top.usr.OK! (=> top.res.abs_8! (not X1))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!)))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_1_e1_14612_e2_2653_e7_4370.sl b/benchmarks/LIA/Lustre/DRAGON_1_e1_14612_e2_2653_e7_4370.sl index ead1d55..68aca98 100644 --- a/benchmarks/LIA/Lustre/DRAGON_1_e1_14612_e2_2653_e7_4370.sl +++ b/benchmarks/LIA/Lustre/DRAGON_1_e1_14612_e2_2653_e7_4370.sl @@ -1,1925 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (- (+ (+ X5 1) X4) 1) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (- (+ (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) 1) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_5_a_0)) - (and - (= top.usr.OK_a_0 (=> top.res.abs_8_a_0 (not X1))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_5_a_1)) - (and - (= top.usr.OK_a_1 (=> top.res.abs_8_a_1 (not X1))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_5)) - (and - (= top.usr.OK (=> top.res.abs_8 (not X1))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_5!)) - (and - (= top.usr.OK! (=> top.res.abs_8! (not X1))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!)))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (- (+ (+ X5 1) X4) 1) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (- (+ (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_5_a_0)) (and (= top.usr.OK_a_0 (=> top.res.abs_8_a_0 (not X1))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_5_a_1)) (and (= top.usr.OK_a_1 (=> top.res.abs_8_a_1 (not X1))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_5)) (and (= top.usr.OK (=> top.res.abs_8 (not X1))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_5!)) (and (= top.usr.OK! (=> top.res.abs_8! (not X1))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!)))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_1_e1_3184_e7_1888.sl b/benchmarks/LIA/Lustre/DRAGON_1_e1_3184_e7_1888.sl index f373af3..c5f49da 100644 --- a/benchmarks/LIA/Lustre/DRAGON_1_e1_3184_e7_1888.sl +++ b/benchmarks/LIA/Lustre/DRAGON_1_e1_3184_e7_1888.sl @@ -1,1925 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ (+ X5 1) X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_5_a_0)) - (and - (= top.usr.OK_a_0 (=> top.res.abs_8_a_0 (not X1))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_5_a_1)) - (and - (= top.usr.OK_a_1 (=> top.res.abs_8_a_1 (not X1))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_5)) - (and - (= top.usr.OK (=> top.res.abs_8 (not X1))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_5!)) - (and - (= top.usr.OK! (=> top.res.abs_8! (not X1))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!)))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ (+ X5 1) X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_5_a_0)) (and (= top.usr.OK_a_0 (=> top.res.abs_8_a_0 (not X1))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_5_a_1)) (and (= top.usr.OK_a_1 (=> top.res.abs_8_a_1 (not X1))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_5)) (and (= top.usr.OK (=> top.res.abs_8 (not X1))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_5!)) (and (= top.usr.OK! (=> top.res.abs_8! (not X1))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!)))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_1_e1_5070.sl b/benchmarks/LIA/Lustre/DRAGON_1_e1_5070.sl index ef9138b..2dda64d 100644 --- a/benchmarks/LIA/Lustre/DRAGON_1_e1_5070.sl +++ b/benchmarks/LIA/Lustre/DRAGON_1_e1_5070.sl @@ -1,1925 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ (+ X5 1) X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_5_a_0)) - (and - (= top.usr.OK_a_0 (=> top.res.abs_8_a_0 (not X1))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_5_a_1)) - (and - (= top.usr.OK_a_1 (=> top.res.abs_8_a_1 (not X1))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_5)) - (and - (= top.usr.OK (=> top.res.abs_8 (not X1))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_5!)) - (and - (= top.usr.OK! (=> top.res.abs_8! (not X1))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!)))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ (+ X5 1) X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_5_a_0)) (and (= top.usr.OK_a_0 (=> top.res.abs_8_a_0 (not X1))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_5_a_1)) (and (= top.usr.OK_a_1 (=> top.res.abs_8_a_1 (not X1))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_5)) (and (= top.usr.OK (=> top.res.abs_8 (not X1))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_5!)) (and (= top.usr.OK! (=> top.res.abs_8! (not X1))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!)))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_1_e2_1997.sl b/benchmarks/LIA/Lustre/DRAGON_1_e2_1997.sl index 898d8b4..ed30633 100644 --- a/benchmarks/LIA/Lustre/DRAGON_1_e2_1997.sl +++ b/benchmarks/LIA/Lustre/DRAGON_1_e2_1997.sl @@ -1,1925 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ (- X5 1) X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_5_a_0)) - (and - (= top.usr.OK_a_0 (=> top.res.abs_8_a_0 (not X1))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_5_a_1)) - (and - (= top.usr.OK_a_1 (=> top.res.abs_8_a_1 (not X1))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_5)) - (and - (= top.usr.OK (=> top.res.abs_8 (not X1))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_5!)) - (and - (= top.usr.OK! (=> top.res.abs_8! (not X1))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!)))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ (- X5 1) X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_5_a_0)) (and (= top.usr.OK_a_0 (=> top.res.abs_8_a_0 (not X1))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_5_a_1)) (and (= top.usr.OK_a_1 (=> top.res.abs_8_a_1 (not X1))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_5)) (and (= top.usr.OK (=> top.res.abs_8 (not X1))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_5!)) (and (= top.usr.OK! (=> top.res.abs_8! (not X1))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!)))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_1_e2_1997_e7_3613_e2_3409.sl b/benchmarks/LIA/Lustre/DRAGON_1_e2_1997_e7_3613_e2_3409.sl index e104e92..44917e4 100644 --- a/benchmarks/LIA/Lustre/DRAGON_1_e2_1997_e7_3613_e2_3409.sl +++ b/benchmarks/LIA/Lustre/DRAGON_1_e2_1997_e7_3613_e2_3409.sl @@ -1,1925 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (- (+ (- X5 1) X4) 1) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (- (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) 1) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_5_a_0)) - (and - (= top.usr.OK_a_0 (=> top.res.abs_8_a_0 (not X1))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_5_a_1)) - (and - (= top.usr.OK_a_1 (=> top.res.abs_8_a_1 (not X1))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_5)) - (and - (= top.usr.OK (=> top.res.abs_8 (not X1))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_5!)) - (and - (= top.usr.OK! (=> top.res.abs_8! (not X1))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!)))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (- (+ (- X5 1) X4) 1) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (- (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_5_a_0)) (and (= top.usr.OK_a_0 (=> top.res.abs_8_a_0 (not X1))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_5_a_1)) (and (= top.usr.OK_a_1 (=> top.res.abs_8_a_1 (not X1))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_5)) (and (= top.usr.OK (=> top.res.abs_8 (not X1))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_5!)) (and (= top.usr.OK! (=> top.res.abs_8! (not X1))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!)))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_1_e3_11891_e7_4569_e4_4881.sl b/benchmarks/LIA/Lustre/DRAGON_1_e3_11891_e7_4569_e4_4881.sl index c00ed48..760b8f3 100644 --- a/benchmarks/LIA/Lustre/DRAGON_1_e3_11891_e7_4569_e4_4881.sl +++ b/benchmarks/LIA/Lustre/DRAGON_1_e3_11891_e7_4569_e4_4881.sl @@ -1,1925 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (- (+ X5 1) X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (- (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_5_a_0)) - (and - (= top.usr.OK_a_0 (=> top.res.abs_8_a_0 (not X1))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_5_a_1)) - (and - (= top.usr.OK_a_1 (=> top.res.abs_8_a_1 (not X1))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_5)) - (and - (= top.usr.OK (=> top.res.abs_8 (not X1))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_5!)) - (and - (= top.usr.OK! (=> top.res.abs_8! (not X1))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!)))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (- (+ X5 1) X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (- (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_5_a_0)) (and (= top.usr.OK_a_0 (=> top.res.abs_8_a_0 (not X1))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_5_a_1)) (and (= top.usr.OK_a_1 (=> top.res.abs_8_a_1 (not X1))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_5)) (and (= top.usr.OK (=> top.res.abs_8 (not X1))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_5!)) (and (= top.usr.OK! (=> top.res.abs_8! (not X1))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!)))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_2.sl b/benchmarks/LIA/Lustre/DRAGON_2.sl index 466f2ef..17f0cea 100644 --- a/benchmarks/LIA/Lustre/DRAGON_2.sl +++ b/benchmarks/LIA/Lustre/DRAGON_2.sl @@ -1,1989 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ X5 X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Int top.res.abs_4_a_0)) - (and - (= - top.res.abs_7_a_0 - (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X6 Bool top.res.abs_8_a_0)) - (and - (= top.res.abs_9_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_0))) - (= top.res.abs_9_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int top.res.abs_0)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Int top.res.abs_4)) - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X6 Bool top.res.abs_8)) - (and - (= top.res.abs_9 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9))) - (= top.res.abs_9! (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!))))))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ X5 X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_4_a_0)) (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X6 top.res.abs_8_a_0)) (and (= top.res.abs_9_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_0))) (= top.res.abs_9_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_4)) (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X6 top.res.abs_8)) (and (= top.res.abs_9 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag)))))))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9))) (= top.res.abs_9! (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!))))))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_2_e1_2316.sl b/benchmarks/LIA/Lustre/DRAGON_2_e1_2316.sl index 8f08bcd..ffb146e 100644 --- a/benchmarks/LIA/Lustre/DRAGON_2_e1_2316.sl +++ b/benchmarks/LIA/Lustre/DRAGON_2_e1_2316.sl @@ -1,1989 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ (+ X5 1) X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Int top.res.abs_4_a_0)) - (and - (= - top.res.abs_7_a_0 - (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X6 Bool top.res.abs_8_a_0)) - (and - (= top.res.abs_9_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_0))) - (= top.res.abs_9_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int top.res.abs_0)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Int top.res.abs_4)) - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X6 Bool top.res.abs_8)) - (and - (= top.res.abs_9 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9))) - (= top.res.abs_9! (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!))))))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ (+ X5 1) X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_4_a_0)) (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X6 top.res.abs_8_a_0)) (and (= top.res.abs_9_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_0))) (= top.res.abs_9_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_4)) (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X6 top.res.abs_8)) (and (= top.res.abs_9 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag)))))))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9))) (= top.res.abs_9! (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!))))))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_2_e2_3183_e1_2644.sl b/benchmarks/LIA/Lustre/DRAGON_2_e2_3183_e1_2644.sl index e4db5c6..8ee5afe 100644 --- a/benchmarks/LIA/Lustre/DRAGON_2_e2_3183_e1_2644.sl +++ b/benchmarks/LIA/Lustre/DRAGON_2_e2_3183_e1_2644.sl @@ -1,1989 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ (+ (- X5 1) X4) 1) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) 1) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Int top.res.abs_4_a_0)) - (and - (= - top.res.abs_7_a_0 - (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X6 Bool top.res.abs_8_a_0)) - (and - (= top.res.abs_9_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_0))) - (= top.res.abs_9_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int top.res.abs_0)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Int top.res.abs_4)) - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X6 Bool top.res.abs_8)) - (and - (= top.res.abs_9 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9))) - (= top.res.abs_9! (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!))))))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ (+ (- X5 1) X4) 1) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_4_a_0)) (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X6 top.res.abs_8_a_0)) (and (= top.res.abs_9_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_0))) (= top.res.abs_9_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_4)) (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X6 top.res.abs_8)) (and (= top.res.abs_9 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag)))))))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9))) (= top.res.abs_9! (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!))))))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_2_e2_3183_e2_3580.sl b/benchmarks/LIA/Lustre/DRAGON_2_e2_3183_e2_3580.sl index 055d72d..e61b682 100644 --- a/benchmarks/LIA/Lustre/DRAGON_2_e2_3183_e2_3580.sl +++ b/benchmarks/LIA/Lustre/DRAGON_2_e2_3183_e2_3580.sl @@ -1,1989 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (- (+ (- X5 1) X4) 1) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (- (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) 1) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Int top.res.abs_4_a_0)) - (and - (= - top.res.abs_7_a_0 - (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X6 Bool top.res.abs_8_a_0)) - (and - (= top.res.abs_9_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_0))) - (= top.res.abs_9_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int top.res.abs_0)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Int top.res.abs_4)) - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X6 Bool top.res.abs_8)) - (and - (= top.res.abs_9 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9))) - (= top.res.abs_9! (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!))))))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (- (+ (- X5 1) X4) 1) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (- (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_4_a_0)) (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X6 top.res.abs_8_a_0)) (and (= top.res.abs_9_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_0))) (= top.res.abs_9_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_4)) (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X6 top.res.abs_8)) (and (= top.res.abs_9 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag)))))))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9))) (= top.res.abs_9! (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!))))))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_2_e2_3183_e3_5972.sl b/benchmarks/LIA/Lustre/DRAGON_2_e2_3183_e3_5972.sl index f636ef7..5e761ce 100644 --- a/benchmarks/LIA/Lustre/DRAGON_2_e2_3183_e3_5972.sl +++ b/benchmarks/LIA/Lustre/DRAGON_2_e2_3183_e3_5972.sl @@ -1,1989 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (- (+ (- X5 1) X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (- - (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Int top.res.abs_4_a_0)) - (and - (= - top.res.abs_7_a_0 - (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X6 Bool top.res.abs_8_a_0)) - (and - (= top.res.abs_9_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_0))) - (= top.res.abs_9_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int top.res.abs_0)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Int top.res.abs_4)) - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X6 Bool top.res.abs_8)) - (and - (= top.res.abs_9 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9))) - (= top.res.abs_9! (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!))))))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (- (+ (- X5 1) X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (- (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_4_a_0)) (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X6 top.res.abs_8_a_0)) (and (= top.res.abs_9_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_0))) (= top.res.abs_9_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_4)) (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X6 top.res.abs_8)) (and (= top.res.abs_9 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag)))))))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9))) (= top.res.abs_9! (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!))))))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_2_e2_4481.sl b/benchmarks/LIA/Lustre/DRAGON_2_e2_4481.sl index 89f6d74..170feaf 100644 --- a/benchmarks/LIA/Lustre/DRAGON_2_e2_4481.sl +++ b/benchmarks/LIA/Lustre/DRAGON_2_e2_4481.sl @@ -1,1989 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ (- X5 1) X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Int top.res.abs_4_a_0)) - (and - (= - top.res.abs_7_a_0 - (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X6 Bool top.res.abs_8_a_0)) - (and - (= top.res.abs_9_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_0))) - (= top.res.abs_9_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int top.res.abs_0)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Int top.res.abs_4)) - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X6 Bool top.res.abs_8)) - (and - (= top.res.abs_9 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9))) - (= top.res.abs_9! (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!))))))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ (- X5 1) X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_4_a_0)) (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X6 top.res.abs_8_a_0)) (and (= top.res.abs_9_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_0))) (= top.res.abs_9_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_4)) (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X6 top.res.abs_8)) (and (= top.res.abs_9 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag)))))))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9))) (= top.res.abs_9! (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!))))))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_2_e7_25_e8_3171.sl b/benchmarks/LIA/Lustre/DRAGON_2_e7_25_e8_3171.sl index 466f2ef..17f0cea 100644 --- a/benchmarks/LIA/Lustre/DRAGON_2_e7_25_e8_3171.sl +++ b/benchmarks/LIA/Lustre/DRAGON_2_e7_25_e8_3171.sl @@ -1,1989 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ X5 X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Int top.res.abs_4_a_0)) - (and - (= - top.res.abs_7_a_0 - (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X6 Bool top.res.abs_8_a_0)) - (and - (= top.res.abs_9_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_0))) - (= top.res.abs_9_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int top.res.abs_0)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Int top.res.abs_4)) - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X6 Bool top.res.abs_8)) - (and - (= top.res.abs_9 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9))) - (= top.res.abs_9! (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!))))))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ X5 X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_4_a_0)) (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X6 top.res.abs_8_a_0)) (and (= top.res.abs_9_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_0))) (= top.res.abs_9_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_4)) (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X6 top.res.abs_8)) (and (= top.res.abs_9 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag)))))))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9))) (= top.res.abs_9! (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!))))))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_3.sl b/benchmarks/LIA/Lustre/DRAGON_3.sl index 7a30a52..b71e97d 100644 --- a/benchmarks/LIA/Lustre/DRAGON_3.sl +++ b/benchmarks/LIA/Lustre/DRAGON_3.sl @@ -1,2039 +1,66 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ X5 X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (let - ((X3 Int top.res.abs_3_a_0)) - (let - ((X4 Int top.res.abs_2_a_0)) - (let - ((X5 Int top.res.abs_1_a_0)) - (let - ((X6 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_0))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_1))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_4)) - (let - ((X3 Int top.res.abs_3)) - (let - ((X4 Int top.res.abs_2)) - (let - ((X5 Int top.res.abs_1)) - (let - ((X6 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid - top.res.abs_9 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9!))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_4! - top.res.inst_3! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_1! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid! - top.res.abs_9! - top.res.inst_0! - top.usr.init_invalid - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!))))))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ X5 X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_4_a_0)) (let ((X3 top.res.abs_3_a_0)) (let ((X4 top.res.abs_2_a_0)) (let ((X5 top.res.abs_1_a_0)) (let ((X6 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_0))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_1))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.init_invalid_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_4)) (let ((X3 top.res.abs_3)) (let ((X4 top.res.abs_2)) (let ((X5 top.res.abs_1)) (let ((X6 top.res.abs_0)) (and (= top.usr.OK (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid top.res.abs_9 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9!))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_4! top.res.inst_3! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_2! top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_1! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid! top.res.abs_9! top.res.inst_0! top.usr.init_invalid top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_3_e1_4783.sl b/benchmarks/LIA/Lustre/DRAGON_3_e1_4783.sl index 18a94aa..c82c2ee 100644 --- a/benchmarks/LIA/Lustre/DRAGON_3_e1_4783.sl +++ b/benchmarks/LIA/Lustre/DRAGON_3_e1_4783.sl @@ -1,2039 +1,66 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ (+ X5 1) X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (let - ((X3 Int top.res.abs_3_a_0)) - (let - ((X4 Int top.res.abs_2_a_0)) - (let - ((X5 Int top.res.abs_1_a_0)) - (let - ((X6 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_0))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_1))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_4)) - (let - ((X3 Int top.res.abs_3)) - (let - ((X4 Int top.res.abs_2)) - (let - ((X5 Int top.res.abs_1)) - (let - ((X6 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid - top.res.abs_9 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9!))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_4! - top.res.inst_3! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_1! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid! - top.res.abs_9! - top.res.inst_0! - top.usr.init_invalid - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!))))))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ (+ X5 1) X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_4_a_0)) (let ((X3 top.res.abs_3_a_0)) (let ((X4 top.res.abs_2_a_0)) (let ((X5 top.res.abs_1_a_0)) (let ((X6 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_0))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_1))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.init_invalid_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_4)) (let ((X3 top.res.abs_3)) (let ((X4 top.res.abs_2)) (let ((X5 top.res.abs_1)) (let ((X6 top.res.abs_0)) (and (= top.usr.OK (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid top.res.abs_9 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9!))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_4! top.res.inst_3! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_2! top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_1! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid! top.res.abs_9! top.res.inst_0! top.usr.init_invalid top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_3_e1_4783_e1_3755.sl b/benchmarks/LIA/Lustre/DRAGON_3_e1_4783_e1_3755.sl index bae0a03..6e6d783 100644 --- a/benchmarks/LIA/Lustre/DRAGON_3_e1_4783_e1_3755.sl +++ b/benchmarks/LIA/Lustre/DRAGON_3_e1_4783_e1_3755.sl @@ -1,2039 +1,66 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ (+ (+ X5 1) X4) 1) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ (+ (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) 1) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (let - ((X3 Int top.res.abs_3_a_0)) - (let - ((X4 Int top.res.abs_2_a_0)) - (let - ((X5 Int top.res.abs_1_a_0)) - (let - ((X6 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_0))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_1))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_4)) - (let - ((X3 Int top.res.abs_3)) - (let - ((X4 Int top.res.abs_2)) - (let - ((X5 Int top.res.abs_1)) - (let - ((X6 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid - top.res.abs_9 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9!))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_4! - top.res.inst_3! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_1! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid! - top.res.abs_9! - top.res.inst_0! - top.usr.init_invalid - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!))))))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ (+ (+ X5 1) X4) 1) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ (+ (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_4_a_0)) (let ((X3 top.res.abs_3_a_0)) (let ((X4 top.res.abs_2_a_0)) (let ((X5 top.res.abs_1_a_0)) (let ((X6 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_0))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_1))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.init_invalid_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_4)) (let ((X3 top.res.abs_3)) (let ((X4 top.res.abs_2)) (let ((X5 top.res.abs_1)) (let ((X6 top.res.abs_0)) (and (= top.usr.OK (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid top.res.abs_9 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9!))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_4! top.res.inst_3! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_2! top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_1! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid! top.res.abs_9! top.res.inst_0! top.usr.init_invalid top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_3_e1_4783_e2_158.sl b/benchmarks/LIA/Lustre/DRAGON_3_e1_4783_e2_158.sl index 2640ed6..b15698c 100644 --- a/benchmarks/LIA/Lustre/DRAGON_3_e1_4783_e2_158.sl +++ b/benchmarks/LIA/Lustre/DRAGON_3_e1_4783_e2_158.sl @@ -1,2039 +1,66 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (- (+ (+ X5 1) X4) 1) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (- (+ (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) 1) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (let - ((X3 Int top.res.abs_3_a_0)) - (let - ((X4 Int top.res.abs_2_a_0)) - (let - ((X5 Int top.res.abs_1_a_0)) - (let - ((X6 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_0))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_1))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_4)) - (let - ((X3 Int top.res.abs_3)) - (let - ((X4 Int top.res.abs_2)) - (let - ((X5 Int top.res.abs_1)) - (let - ((X6 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid - top.res.abs_9 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9!))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_4! - top.res.inst_3! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_1! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid! - top.res.abs_9! - top.res.inst_0! - top.usr.init_invalid - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!))))))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (- (+ (+ X5 1) X4) 1) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (- (+ (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_4_a_0)) (let ((X3 top.res.abs_3_a_0)) (let ((X4 top.res.abs_2_a_0)) (let ((X5 top.res.abs_1_a_0)) (let ((X6 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_0))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_1))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.init_invalid_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_4)) (let ((X3 top.res.abs_3)) (let ((X4 top.res.abs_2)) (let ((X5 top.res.abs_1)) (let ((X6 top.res.abs_0)) (and (= top.usr.OK (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid top.res.abs_9 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9!))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_4! top.res.inst_3! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_2! top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_1! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid! top.res.abs_9! top.res.inst_0! top.usr.init_invalid top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_3_e1_4783_e3_511.sl b/benchmarks/LIA/Lustre/DRAGON_3_e1_4783_e3_511.sl index 64c999d..781c3f7 100644 --- a/benchmarks/LIA/Lustre/DRAGON_3_e1_4783_e3_511.sl +++ b/benchmarks/LIA/Lustre/DRAGON_3_e1_4783_e3_511.sl @@ -1,2039 +1,66 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (- (+ (+ X5 1) X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (- - (+ (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (let - ((X3 Int top.res.abs_3_a_0)) - (let - ((X4 Int top.res.abs_2_a_0)) - (let - ((X5 Int top.res.abs_1_a_0)) - (let - ((X6 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_0))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_1))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_4)) - (let - ((X3 Int top.res.abs_3)) - (let - ((X4 Int top.res.abs_2)) - (let - ((X5 Int top.res.abs_1)) - (let - ((X6 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid - top.res.abs_9 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9!))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_4! - top.res.inst_3! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_1! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid! - top.res.abs_9! - top.res.inst_0! - top.usr.init_invalid - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!))))))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (- (+ (+ X5 1) X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (- (+ (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_4_a_0)) (let ((X3 top.res.abs_3_a_0)) (let ((X4 top.res.abs_2_a_0)) (let ((X5 top.res.abs_1_a_0)) (let ((X6 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_0))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_1))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.init_invalid_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_4)) (let ((X3 top.res.abs_3)) (let ((X4 top.res.abs_2)) (let ((X5 top.res.abs_1)) (let ((X6 top.res.abs_0)) (and (= top.usr.OK (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid top.res.abs_9 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9!))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_4! top.res.inst_3! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_2! top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_1! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid! top.res.abs_9! top.res.inst_0! top.usr.init_invalid top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_3_e2_5343_e1_988.sl b/benchmarks/LIA/Lustre/DRAGON_3_e2_5343_e1_988.sl index 2fb3ec8..d34dbc8 100644 --- a/benchmarks/LIA/Lustre/DRAGON_3_e2_5343_e1_988.sl +++ b/benchmarks/LIA/Lustre/DRAGON_3_e2_5343_e1_988.sl @@ -1,2039 +1,66 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ (+ (- X5 1) X4) 1) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) 1) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (let - ((X3 Int top.res.abs_3_a_0)) - (let - ((X4 Int top.res.abs_2_a_0)) - (let - ((X5 Int top.res.abs_1_a_0)) - (let - ((X6 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_0))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_1))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_4)) - (let - ((X3 Int top.res.abs_3)) - (let - ((X4 Int top.res.abs_2)) - (let - ((X5 Int top.res.abs_1)) - (let - ((X6 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid - top.res.abs_9 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9!))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_4! - top.res.inst_3! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_1! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid! - top.res.abs_9! - top.res.inst_0! - top.usr.init_invalid - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!))))))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ (+ (- X5 1) X4) 1) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_4_a_0)) (let ((X3 top.res.abs_3_a_0)) (let ((X4 top.res.abs_2_a_0)) (let ((X5 top.res.abs_1_a_0)) (let ((X6 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_0))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_1))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.init_invalid_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_4)) (let ((X3 top.res.abs_3)) (let ((X4 top.res.abs_2)) (let ((X5 top.res.abs_1)) (let ((X6 top.res.abs_0)) (and (= top.usr.OK (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid top.res.abs_9 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9!))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_4! top.res.inst_3! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_2! top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_1! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid! top.res.abs_9! top.res.inst_0! top.usr.init_invalid top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_3_e3_3846.sl b/benchmarks/LIA/Lustre/DRAGON_3_e3_3846.sl index 0026e67..e6d57b7 100644 --- a/benchmarks/LIA/Lustre/DRAGON_3_e3_3846.sl +++ b/benchmarks/LIA/Lustre/DRAGON_3_e3_3846.sl @@ -1,2039 +1,66 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (- X5 X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (- DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (let - ((X3 Int top.res.abs_3_a_0)) - (let - ((X4 Int top.res.abs_2_a_0)) - (let - ((X5 Int top.res.abs_1_a_0)) - (let - ((X6 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_0))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_1))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_4)) - (let - ((X3 Int top.res.abs_3)) - (let - ((X4 Int top.res.abs_2)) - (let - ((X5 Int top.res.abs_1)) - (let - ((X6 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid - top.res.abs_9 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9!))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_4! - top.res.inst_3! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_1! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid! - top.res.abs_9! - top.res.inst_0! - top.usr.init_invalid - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!))))))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (- X5 X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (- DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_4_a_0)) (let ((X3 top.res.abs_3_a_0)) (let ((X4 top.res.abs_2_a_0)) (let ((X5 top.res.abs_1_a_0)) (let ((X6 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_0))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_1))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.init_invalid_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_4)) (let ((X3 top.res.abs_3)) (let ((X4 top.res.abs_2)) (let ((X5 top.res.abs_1)) (let ((X6 top.res.abs_0)) (and (= top.usr.OK (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid top.res.abs_9 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9!))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_4! top.res.inst_3! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_2! top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_1! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid! top.res.abs_9! top.res.inst_0! top.usr.init_invalid top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_3_e3_5422_e1_2288.sl b/benchmarks/LIA/Lustre/DRAGON_3_e3_5422_e1_2288.sl index cbf905b..2624aa5 100644 --- a/benchmarks/LIA/Lustre/DRAGON_3_e3_5422_e1_2288.sl +++ b/benchmarks/LIA/Lustre/DRAGON_3_e3_5422_e1_2288.sl @@ -1,2039 +1,66 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ (- X5 X4) 1) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ (- DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) 1) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (let - ((X3 Int top.res.abs_3_a_0)) - (let - ((X4 Int top.res.abs_2_a_0)) - (let - ((X5 Int top.res.abs_1_a_0)) - (let - ((X6 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_0))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_1))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_4)) - (let - ((X3 Int top.res.abs_3)) - (let - ((X4 Int top.res.abs_2)) - (let - ((X5 Int top.res.abs_1)) - (let - ((X6 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid - top.res.abs_9 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9!))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_4! - top.res.inst_3! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_1! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid! - top.res.abs_9! - top.res.inst_0! - top.usr.init_invalid - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!))))))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ (- X5 X4) 1) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ (- DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_4_a_0)) (let ((X3 top.res.abs_3_a_0)) (let ((X4 top.res.abs_2_a_0)) (let ((X5 top.res.abs_1_a_0)) (let ((X6 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_0))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_1))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.init_invalid_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_4)) (let ((X3 top.res.abs_3)) (let ((X4 top.res.abs_2)) (let ((X5 top.res.abs_1)) (let ((X6 top.res.abs_0)) (and (= top.usr.OK (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid top.res.abs_9 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9!))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_4! top.res.inst_3! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_2! top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_1! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid! top.res.abs_9! top.res.inst_0! top.usr.init_invalid top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_3_e3_5422_e2_3135.sl b/benchmarks/LIA/Lustre/DRAGON_3_e3_5422_e2_3135.sl index 5c58cb9..1e4c7af 100644 --- a/benchmarks/LIA/Lustre/DRAGON_3_e3_5422_e2_3135.sl +++ b/benchmarks/LIA/Lustre/DRAGON_3_e3_5422_e2_3135.sl @@ -1,2039 +1,66 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (- (- X5 X4) 1) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (- (- DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) 1) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (let - ((X3 Int top.res.abs_3_a_0)) - (let - ((X4 Int top.res.abs_2_a_0)) - (let - ((X5 Int top.res.abs_1_a_0)) - (let - ((X6 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_0))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_1))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_4)) - (let - ((X3 Int top.res.abs_3)) - (let - ((X4 Int top.res.abs_2)) - (let - ((X5 Int top.res.abs_1)) - (let - ((X6 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid - top.res.abs_9 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9!))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_4! - top.res.inst_3! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_1! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid! - top.res.abs_9! - top.res.inst_0! - top.usr.init_invalid - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!))))))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (- (- X5 X4) 1) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (- (- DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_4_a_0)) (let ((X3 top.res.abs_3_a_0)) (let ((X4 top.res.abs_2_a_0)) (let ((X5 top.res.abs_1_a_0)) (let ((X6 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_0))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9_a_1))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.init_invalid_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_4)) (let ((X3 top.res.abs_3)) (let ((X4 top.res.abs_2)) (let ((X5 top.res.abs_1)) (let ((X6 top.res.abs_0)) (and (= top.usr.OK (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid top.res.abs_9 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_9!))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_4! top.res.inst_3! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_2! top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_1! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid! top.res.abs_9! top.res.inst_0! top.usr.init_invalid top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_4.sl b/benchmarks/LIA/Lustre/DRAGON_4.sl index 3eead22..4554223 100644 --- a/benchmarks/LIA/Lustre/DRAGON_4.sl +++ b/benchmarks/LIA/Lustre/DRAGON_4.sl @@ -1,1933 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ X5 X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (<= X2 1))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (<= X2 1))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_3)) - (and - (= top.usr.OK (=> X1 (<= X2 1))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_3!)) - (and - (= top.usr.OK! (=> X1 (<= X2 1))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ X5 X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (<= X2 1))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (<= X2 1))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_3)) (and (= top.usr.OK (=> X1 (<= X2 1))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (<= X2 1))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_4_e1_4312.sl b/benchmarks/LIA/Lustre/DRAGON_4_e1_4312.sl index 6a69a7d..704d688 100644 --- a/benchmarks/LIA/Lustre/DRAGON_4_e1_4312.sl +++ b/benchmarks/LIA/Lustre/DRAGON_4_e1_4312.sl @@ -1,1933 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ (+ X5 1) X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (<= X2 1))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (<= X2 1))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_3)) - (and - (= top.usr.OK (=> X1 (<= X2 1))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_3!)) - (and - (= top.usr.OK! (=> X1 (<= X2 1))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ (+ X5 1) X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (<= X2 1))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (<= X2 1))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_3)) (and (= top.usr.OK (=> X1 (<= X2 1))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (<= X2 1))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_4_e2_2799.sl b/benchmarks/LIA/Lustre/DRAGON_4_e2_2799.sl index 02f6d62..242de2f 100644 --- a/benchmarks/LIA/Lustre/DRAGON_4_e2_2799.sl +++ b/benchmarks/LIA/Lustre/DRAGON_4_e2_2799.sl @@ -1,1933 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ (- X5 1) X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (<= X2 1))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (<= X2 1))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_3)) - (and - (= top.usr.OK (=> X1 (<= X2 1))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_3!)) - (and - (= top.usr.OK! (=> X1 (<= X2 1))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ (- X5 1) X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (<= X2 1))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (<= X2 1))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_3)) (and (= top.usr.OK (=> X1 (<= X2 1))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (<= X2 1))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_4_e2_2799_e1_1303.sl b/benchmarks/LIA/Lustre/DRAGON_4_e2_2799_e1_1303.sl index 837ab86..43a5702 100644 --- a/benchmarks/LIA/Lustre/DRAGON_4_e2_2799_e1_1303.sl +++ b/benchmarks/LIA/Lustre/DRAGON_4_e2_2799_e1_1303.sl @@ -1,1933 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ (+ (- X5 1) X4) 1) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) 1) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (<= X2 1))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (<= X2 1))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_3)) - (and - (= top.usr.OK (=> X1 (<= X2 1))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_3!)) - (and - (= top.usr.OK! (=> X1 (<= X2 1))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ (+ (- X5 1) X4) 1) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (<= X2 1))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (<= X2 1))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_3)) (and (= top.usr.OK (=> X1 (<= X2 1))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (<= X2 1))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_4_e2_2799_e2_2251.sl b/benchmarks/LIA/Lustre/DRAGON_4_e2_2799_e2_2251.sl index 5438a87..f9ff491 100644 --- a/benchmarks/LIA/Lustre/DRAGON_4_e2_2799_e2_2251.sl +++ b/benchmarks/LIA/Lustre/DRAGON_4_e2_2799_e2_2251.sl @@ -1,1933 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (- (+ (- X5 1) X4) 1) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (- (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) 1) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (<= X2 1))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (<= X2 1))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_3)) - (and - (= top.usr.OK (=> X1 (<= X2 1))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_3!)) - (and - (= top.usr.OK! (=> X1 (<= X2 1))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (- (+ (- X5 1) X4) 1) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (- (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (<= X2 1))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (<= X2 1))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_3)) (and (= top.usr.OK (=> X1 (<= X2 1))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (<= X2 1))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_4_e2_2799_e3_1915.sl b/benchmarks/LIA/Lustre/DRAGON_4_e2_2799_e3_1915.sl index 193d5c9..7fe2b78 100644 --- a/benchmarks/LIA/Lustre/DRAGON_4_e2_2799_e3_1915.sl +++ b/benchmarks/LIA/Lustre/DRAGON_4_e2_2799_e3_1915.sl @@ -1,1933 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (- (+ (- X5 1) X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (- - (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (<= X2 1))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (<= X2 1))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_3)) - (and - (= top.usr.OK (=> X1 (<= X2 1))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_3!)) - (and - (= top.usr.OK! (=> X1 (<= X2 1))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (- (+ (- X5 1) X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (- (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (<= X2 1))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (<= X2 1))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_3)) (and (= top.usr.OK (=> X1 (<= X2 1))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (<= X2 1))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_4_e3_1540_e1_5048.sl b/benchmarks/LIA/Lustre/DRAGON_4_e3_1540_e1_5048.sl index cfee670..36a8da0 100644 --- a/benchmarks/LIA/Lustre/DRAGON_4_e3_1540_e1_5048.sl +++ b/benchmarks/LIA/Lustre/DRAGON_4_e3_1540_e1_5048.sl @@ -1,1933 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ (- X5 X4) 1) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ (- DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) 1) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (<= X2 1))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (<= X2 1))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_3)) - (and - (= top.usr.OK (=> X1 (<= X2 1))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_3!)) - (and - (= top.usr.OK! (=> X1 (<= X2 1))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ (- X5 X4) 1) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ (- DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (<= X2 1))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (<= X2 1))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_3)) (and (= top.usr.OK (=> X1 (<= X2 1))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (<= X2 1))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_4_e3_4133.sl b/benchmarks/LIA/Lustre/DRAGON_4_e3_4133.sl index f201fc5..e95d65f 100644 --- a/benchmarks/LIA/Lustre/DRAGON_4_e3_4133.sl +++ b/benchmarks/LIA/Lustre/DRAGON_4_e3_4133.sl @@ -1,1933 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (- X5 X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (- DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (<= X2 1))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (<= X2 1))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_3)) - (and - (= top.usr.OK (=> X1 (<= X2 1))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_3!)) - (and - (= top.usr.OK! (=> X1 (<= X2 1))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (- X5 X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (- DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (<= X2 1))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (<= X2 1))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_3)) (and (= top.usr.OK (=> X1 (<= X2 1))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (<= X2 1))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_5.sl b/benchmarks/LIA/Lustre/DRAGON_5.sl index 71fa6c8..9aec137 100644 --- a/benchmarks/LIA/Lustre/DRAGON_5.sl +++ b/benchmarks/LIA/Lustre/DRAGON_5.sl @@ -1,1941 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ X5 X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (let - ((X3 Int top.res.abs_1_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (or (< X2 1) (< X3 1)))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (let - ((X3 Int top.res.abs_1_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (or (< X2 1) (< X3 1)))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_3)) - (let - ((X3 Int top.res.abs_1)) - (and - (= top.usr.OK (=> X1 (or (< X2 1) (< X3 1)))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_3!)) - (let - ((X3 Int top.res.abs_1!)) - (and - (= top.usr.OK! (=> X1 (or (< X2 1) (< X3 1)))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!)))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ X5 X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_3_a_0)) (let ((X3 top.res.abs_1_a_0)) (and (= top.usr.OK_a_0 (=> X1 (or (< X2 1) (< X3 1)))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_3_a_1)) (let ((X3 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (=> X1 (or (< X2 1) (< X3 1)))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_3)) (let ((X3 top.res.abs_1)) (and (= top.usr.OK (=> X1 (or (< X2 1) (< X3 1)))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag)))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_3!)) (let ((X3 top.res.abs_1!)) (and (= top.usr.OK! (=> X1 (or (< X2 1) (< X3 1)))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!)))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_5_e1_1835.sl b/benchmarks/LIA/Lustre/DRAGON_5_e1_1835.sl index 5deb1f4..8627c5e 100644 --- a/benchmarks/LIA/Lustre/DRAGON_5_e1_1835.sl +++ b/benchmarks/LIA/Lustre/DRAGON_5_e1_1835.sl @@ -1,1941 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ (+ X5 1) X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (let - ((X3 Int top.res.abs_1_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (or (< X2 1) (< X3 1)))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (let - ((X3 Int top.res.abs_1_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (or (< X2 1) (< X3 1)))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_3)) - (let - ((X3 Int top.res.abs_1)) - (and - (= top.usr.OK (=> X1 (or (< X2 1) (< X3 1)))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_3!)) - (let - ((X3 Int top.res.abs_1!)) - (and - (= top.usr.OK! (=> X1 (or (< X2 1) (< X3 1)))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!)))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ (+ X5 1) X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_3_a_0)) (let ((X3 top.res.abs_1_a_0)) (and (= top.usr.OK_a_0 (=> X1 (or (< X2 1) (< X3 1)))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_3_a_1)) (let ((X3 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (=> X1 (or (< X2 1) (< X3 1)))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_3)) (let ((X3 top.res.abs_1)) (and (= top.usr.OK (=> X1 (or (< X2 1) (< X3 1)))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag)))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_3!)) (let ((X3 top.res.abs_1!)) (and (= top.usr.OK! (=> X1 (or (< X2 1) (< X3 1)))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!)))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_5_e2_3018_e2_936.sl b/benchmarks/LIA/Lustre/DRAGON_5_e2_3018_e2_936.sl index b5bc186..2a05458 100644 --- a/benchmarks/LIA/Lustre/DRAGON_5_e2_3018_e2_936.sl +++ b/benchmarks/LIA/Lustre/DRAGON_5_e2_3018_e2_936.sl @@ -1,1941 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (- (+ (- X5 1) X4) 1) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (- (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) 1) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (let - ((X3 Int top.res.abs_1_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (or (< X2 1) (< X3 1)))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (let - ((X3 Int top.res.abs_1_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (or (< X2 1) (< X3 1)))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_3)) - (let - ((X3 Int top.res.abs_1)) - (and - (= top.usr.OK (=> X1 (or (< X2 1) (< X3 1)))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_3!)) - (let - ((X3 Int top.res.abs_1!)) - (and - (= top.usr.OK! (=> X1 (or (< X2 1) (< X3 1)))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!)))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (- (+ (- X5 1) X4) 1) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (- (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_3_a_0)) (let ((X3 top.res.abs_1_a_0)) (and (= top.usr.OK_a_0 (=> X1 (or (< X2 1) (< X3 1)))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_3_a_1)) (let ((X3 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (=> X1 (or (< X2 1) (< X3 1)))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_3)) (let ((X3 top.res.abs_1)) (and (= top.usr.OK (=> X1 (or (< X2 1) (< X3 1)))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag)))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_3!)) (let ((X3 top.res.abs_1!)) (and (= top.usr.OK! (=> X1 (or (< X2 1) (< X3 1)))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!)))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_6.sl b/benchmarks/LIA/Lustre/DRAGON_6.sl index 6c759a0..32716af 100644 --- a/benchmarks/LIA/Lustre/DRAGON_6.sl +++ b/benchmarks/LIA/Lustre/DRAGON_6.sl @@ -1,1933 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ X5 X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_0)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ X5 X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_0)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_6_e7_5046_e7_3623.sl b/benchmarks/LIA/Lustre/DRAGON_6_e7_5046_e7_3623.sl index d352b8b..0d6440f 100644 --- a/benchmarks/LIA/Lustre/DRAGON_6_e7_5046_e7_3623.sl +++ b/benchmarks/LIA/Lustre/DRAGON_6_e7_5046_e7_3623.sl @@ -1,1933 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (not excludes12.usr.X1_a_0) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (not excludes12.usr.X1_a_1) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ X5 X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_0)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (or (not excludes12.usr.X1_a_0) (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (or (not excludes12.usr.X1_a_1) (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ X5 X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_0)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_7.sl b/benchmarks/LIA/Lustre/DRAGON_7.sl index 3808cba..12e494e 100644 --- a/benchmarks/LIA/Lustre/DRAGON_7.sl +++ b/benchmarks/LIA/Lustre/DRAGON_7.sl @@ -1,1941 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ X5 X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (and (>= X3 0) (>= X2 0)))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_1_a_1)) - (let - ((X3 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (and (>= X3 0) (>= X2 0)))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_0)) - (and - (= top.usr.OK (=> X1 (and (>= X3 0) (>= X2 0)))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_1!)) - (let - ((X3 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (and (>= X3 0) (>= X2 0)))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!)))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ X5 X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (>= X3 0) (>= X2 0)))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_1_a_1)) (let ((X3 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (>= X3 0) (>= X2 0)))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_0)) (and (= top.usr.OK (=> X1 (and (>= X3 0) (>= X2 0)))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag)))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_1!)) (let ((X3 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (>= X3 0) (>= X2 0)))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!)))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_7_e2_2872_e2_5844.sl b/benchmarks/LIA/Lustre/DRAGON_7_e2_2872_e2_5844.sl index 65c4168..61fa185 100644 --- a/benchmarks/LIA/Lustre/DRAGON_7_e2_2872_e2_5844.sl +++ b/benchmarks/LIA/Lustre/DRAGON_7_e2_2872_e2_5844.sl @@ -1,1941 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (- (+ (- X5 1) X4) 1) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (- (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) 1) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (and (>= X3 0) (>= X2 0)))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_1_a_1)) - (let - ((X3 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (and (>= X3 0) (>= X2 0)))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_0)) - (and - (= top.usr.OK (=> X1 (and (>= X3 0) (>= X2 0)))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_1!)) - (let - ((X3 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (and (>= X3 0) (>= X2 0)))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!)))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (- (+ (- X5 1) X4) 1) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (- (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (>= X3 0) (>= X2 0)))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_1_a_1)) (let ((X3 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (>= X3 0) (>= X2 0)))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_0)) (and (= top.usr.OK (=> X1 (and (>= X3 0) (>= X2 0)))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag)))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_1!)) (let ((X3 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (>= X3 0) (>= X2 0)))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!)))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_7_e2_2872_e3_2640.sl b/benchmarks/LIA/Lustre/DRAGON_7_e2_2872_e3_2640.sl index 16bf420..b57cd90 100644 --- a/benchmarks/LIA/Lustre/DRAGON_7_e2_2872_e3_2640.sl +++ b/benchmarks/LIA/Lustre/DRAGON_7_e2_2872_e3_2640.sl @@ -1,1941 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (- (+ (- X5 1) X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (- - (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (and (>= X3 0) (>= X2 0)))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_1_a_1)) - (let - ((X3 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (and (>= X3 0) (>= X2 0)))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_0)) - (and - (= top.usr.OK (=> X1 (and (>= X3 0) (>= X2 0)))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_1!)) - (let - ((X3 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (and (>= X3 0) (>= X2 0)))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!)))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (- (+ (- X5 1) X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (- (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (>= X3 0) (>= X2 0)))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_1_a_1)) (let ((X3 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (>= X3 0) (>= X2 0)))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_0)) (and (= top.usr.OK (=> X1 (and (>= X3 0) (>= X2 0)))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag)))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_1!)) (let ((X3 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (>= X3 0) (>= X2 0)))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!)))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_7_e7_3157_e2_2082.sl b/benchmarks/LIA/Lustre/DRAGON_7_e7_3157_e2_2082.sl index 475f72a..d02ef54 100644 --- a/benchmarks/LIA/Lustre/DRAGON_7_e7_3157_e2_2082.sl +++ b/benchmarks/LIA/Lustre/DRAGON_7_e7_3157_e2_2082.sl @@ -1,1941 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ (- X5 1) X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (and (>= X3 0) (>= X2 0)))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_1_a_1)) - (let - ((X3 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (and (>= X3 0) (>= X2 0)))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_0)) - (and - (= top.usr.OK (=> X1 (and (>= X3 0) (>= X2 0)))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_1!)) - (let - ((X3 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (and (>= X3 0) (>= X2 0)))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!)))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ (- X5 1) X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (>= X3 0) (>= X2 0)))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_1_a_1)) (let ((X3 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (>= X3 0) (>= X2 0)))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_0)) (and (= top.usr.OK (=> X1 (and (>= X3 0) (>= X2 0)))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag)))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_1!)) (let ((X3 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (>= X3 0) (>= X2 0)))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!)))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_8.sl b/benchmarks/LIA/Lustre/DRAGON_8.sl index 336eb31..75ff32e 100644 --- a/benchmarks/LIA/Lustre/DRAGON_8.sl +++ b/benchmarks/LIA/Lustre/DRAGON_8.sl @@ -1,1933 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ X5 X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_2)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_2!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ X5 X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_2_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_2_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_2)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_2!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_8_e2_3896_e3_3125.sl b/benchmarks/LIA/Lustre/DRAGON_8_e2_3896_e3_3125.sl index 37ad8f2..3b5e19d 100644 --- a/benchmarks/LIA/Lustre/DRAGON_8_e2_3896_e3_3125.sl +++ b/benchmarks/LIA/Lustre/DRAGON_8_e2_3896_e3_3125.sl @@ -1,1933 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (- (+ (- X5 1) X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (- - (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_2)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_2!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (- (+ (- X5 1) X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (- (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_2_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_2_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_2)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_2!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_8_e3_786.sl b/benchmarks/LIA/Lustre/DRAGON_8_e3_786.sl index dba1cb9..66539e4 100644 --- a/benchmarks/LIA/Lustre/DRAGON_8_e3_786.sl +++ b/benchmarks/LIA/Lustre/DRAGON_8_e3_786.sl @@ -1,1933 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (- X5 X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (- DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_2)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_2!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (- X5 X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (- DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_2_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_2_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_2)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_2!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_8_e3_786_e7_4541.sl b/benchmarks/LIA/Lustre/DRAGON_8_e3_786_e7_4541.sl index aa8c69b..593a5d9 100644 --- a/benchmarks/LIA/Lustre/DRAGON_8_e3_786_e7_4541.sl +++ b/benchmarks/LIA/Lustre/DRAGON_8_e3_786_e7_4541.sl @@ -1,1933 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (- X5 X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (- DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_2)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_2!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (- X5 X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (- DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_2_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_2_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_2)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_2!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_8_e7_3752.sl b/benchmarks/LIA/Lustre/DRAGON_8_e7_3752.sl index 02c3926..369b48e 100644 --- a/benchmarks/LIA/Lustre/DRAGON_8_e7_3752.sl +++ b/benchmarks/LIA/Lustre/DRAGON_8_e7_3752.sl @@ -1,1933 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ X5 X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_2)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_2!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ X5 X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_2_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_2_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_2)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_2!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_9.sl b/benchmarks/LIA/Lustre/DRAGON_9.sl index f144f1e..75a07b4 100644 --- a/benchmarks/LIA/Lustre/DRAGON_9.sl +++ b/benchmarks/LIA/Lustre/DRAGON_9.sl @@ -1,1933 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ X5 X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_3)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_3!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ X5 X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_3)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_9_e7_1843.sl b/benchmarks/LIA/Lustre/DRAGON_9_e7_1843.sl index 086efe5..5d34918 100644 --- a/benchmarks/LIA/Lustre/DRAGON_9_e7_1843.sl +++ b/benchmarks/LIA/Lustre/DRAGON_9_e7_1843.sl @@ -1,1933 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ X5 X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_3)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_3!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ X5 X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_3)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_9_e7_1843_e1_5434.sl b/benchmarks/LIA/Lustre/DRAGON_9_e7_1843_e1_5434.sl index 3f331d9..fe1fa3c 100644 --- a/benchmarks/LIA/Lustre/DRAGON_9_e7_1843_e1_5434.sl +++ b/benchmarks/LIA/Lustre/DRAGON_9_e7_1843_e1_5434.sl @@ -1,1933 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ (+ X5 1) X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_3)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_3!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ (+ X5 1) X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_3)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_9_e7_1843_e2_1145.sl b/benchmarks/LIA/Lustre/DRAGON_9_e7_1843_e2_1145.sl index c7272d9..76e0e3c 100644 --- a/benchmarks/LIA/Lustre/DRAGON_9_e7_1843_e2_1145.sl +++ b/benchmarks/LIA/Lustre/DRAGON_9_e7_1843_e2_1145.sl @@ -1,1933 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ (- X5 1) X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_3)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_3!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ (- X5 1) X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_3)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_9_e7_1843_e3_5316.sl b/benchmarks/LIA/Lustre/DRAGON_9_e7_1843_e3_5316.sl index cfbbdde..05ada1a 100644 --- a/benchmarks/LIA/Lustre/DRAGON_9_e7_1843_e3_5316.sl +++ b/benchmarks/LIA/Lustre/DRAGON_9_e7_1843_e3_5316.sl @@ -1,1933 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (- X5 X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (- DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_3)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_3!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (- X5 X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (- DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_3)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_9_e7_1843_e7_2225.sl b/benchmarks/LIA/Lustre/DRAGON_9_e7_1843_e7_2225.sl index eafd2e7..00970fd 100644 --- a/benchmarks/LIA/Lustre/DRAGON_9_e7_1843_e7_2225.sl +++ b/benchmarks/LIA/Lustre/DRAGON_9_e7_1843_e7_2225.sl @@ -1,1933 +1,62 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (not excludes12.usr.X1_a_0) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (not excludes12.usr.X1_a_1) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ X5 X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Int top.res.abs_3)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Int top.res.abs_3!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_3! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (or (not excludes12.usr.X1_a_0) (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (or (not excludes12.usr.X1_a_1) (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ X5 X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_3)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_3! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_all.sl b/benchmarks/LIA/Lustre/DRAGON_all.sl index 20000e9..43112ff 100644 --- a/benchmarks/LIA/Lustre/DRAGON_all.sl +++ b/benchmarks/LIA/Lustre/DRAGON_all.sl @@ -1,2088 +1,66 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ X5 X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Bool top.res.abs_5_a_0)) - (let - ((X3 Int top.res.abs_4_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Int top.res.abs_2_a_0)) - (let - ((X6 Int top.res.abs_1_a_0)) - (let - ((X7 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_0)) - (>= X7 0)))) - (= top.res.abs_9_a_0 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.abs_10_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Bool top.res.abs_5_a_1)) - (let - ((X3 Int top.res.abs_4_a_1)) - (let - ((X4 Int top.res.abs_3_a_1)) - (let - ((X5 Int top.res.abs_2_a_1)) - (let - ((X6 Int top.res.abs_1_a_1)) - (let - ((X7 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (and - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9_a_0)) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_1)) - (>= X7 0)))) - (= top.res.abs_9_a_1 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.abs_10 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Bool top.res.abs_5)) - (let - ((X3 Int top.res.abs_4)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Int top.res.abs_2)) - (let - ((X6 Int top.res.abs_1)) - (let - ((X7 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> - X1 - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10)) - (>= X7 0)))) - (= top.res.abs_9 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid - top.res.abs_10 - top.res.inst_0) - top.res.init_flag))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.abs_10! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Bool top.res.abs_5!)) - (let - ((X3 Int top.res.abs_4!)) - (let - ((X4 Int top.res.abs_3!)) - (let - ((X5 Int top.res.abs_2!)) - (let - ((X6 Int top.res.abs_1!)) - (let - ((X7 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> - X1 - (and - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9)) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10!)) - (>= X7 0)))) - (= top.res.abs_9! (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_4! - top.res.inst_3! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_1! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid! - top.res.abs_10! - top.res.inst_0! - top.usr.init_invalid - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!)))))))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ X5 X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_5_a_0)) (let ((X3 top.res.abs_4_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_2_a_0)) (let ((X6 top.res.abs_1_a_0)) (let ((X7 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_0)) (>= X7 0)))) (= top.res.abs_9_a_0 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.abs_10_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_5_a_1)) (let ((X3 top.res.abs_4_a_1)) (let ((X4 top.res.abs_3_a_1)) (let ((X5 top.res.abs_2_a_1)) (let ((X6 top.res.abs_1_a_1)) (let ((X7 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9_a_0)) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_1)) (>= X7 0)))) (= top.res.abs_9_a_1 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.usr.init_invalid_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_5)) (let ((X3 top.res.abs_4)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_2)) (let ((X6 top.res.abs_1)) (let ((X7 top.res.abs_0)) (and (= top.usr.OK (=> X1 (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10)) (>= X7 0)))) (= top.res.abs_9 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid top.res.abs_10 top.res.inst_0) top.res.init_flag)))))))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.abs_10! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_5!)) (let ((X3 top.res.abs_4!)) (let ((X4 top.res.abs_3!)) (let ((X5 top.res.abs_2!)) (let ((X6 top.res.abs_1!)) (let ((X7 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9)) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10!)) (>= X7 0)))) (= top.res.abs_9! (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_4! top.res.inst_3! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_2! top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_1! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid! top.res.abs_10! top.res.inst_0! top.usr.init_invalid top.res.abs_10 top.res.inst_0) (not top.res.init_flag!)))))))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_all2.sl b/benchmarks/LIA/Lustre/DRAGON_all2.sl index 8380f51..3cc233d 100644 --- a/benchmarks/LIA/Lustre/DRAGON_all2.sl +++ b/benchmarks/LIA/Lustre/DRAGON_all2.sl @@ -1,2285 +1,66 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ X5 X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Bool top.res.abs_5_a_0)) - (let - ((X3 Int top.res.abs_4_a_0)) - (let - ((X4 Bool (=> X1 (<= X3 top.res.abs_10_a_0)))) - (let - ((X5 Int top.res.abs_3_a_0)) - (let - ((X6 Bool (=> X1 (<= X5 top.res.abs_10_a_0)))) - (let - ((X7 Int top.res.abs_2_a_0)) - (let - ((X8 Bool (=> X1 (<= X7 top.res.abs_10_a_0)))) - (let - ((X9 Int top.res.abs_1_a_0)) - (let - ((X10 Bool (=> X1 (<= X9 top.res.abs_10_a_0)))) - (let - ((X11 Bool (=> X1 (>= X3 0)))) - (let - ((X12 Bool (=> X1 (>= X5 0)))) - (let - ((X13 Bool (=> X1 (>= X7 0)))) - (let - ((X14 Int top.res.abs_0_a_0)) - (let - ((X15 Bool (=> X1 (>= X14 0)))) - (let - ((X16 Bool (=> X1 (>= X9 0)))) - (let - ((X17 Bool (=> X1 (or (< X5 1) (< X9 1))))) - (let - ((X18 Bool (=> X1 (<= X5 1)))) - (let - ((X19 - Bool (=> - X1 - (= - (+ (+ (+ (+ X14 X9) X7) X5) X3) - top.res.abs_10_a_0)))) - (let - ((X20 Bool true)) - (let - ((X21 Bool (=> X1 (not X2)))) - (and - (= - top.usr.OK_a_0 - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (and (and X21 X20) X19) X18) - X17) - X16) - X15) - X13) - X12) - X11) - X10) - X8) - X6) - X4)) - (= top.res.abs_9_a_0 (+ (+ (+ (+ X14 X9) X7) X5) X3)) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))))))))))))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.abs_10_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Bool top.res.abs_5_a_1)) - (let - ((X3 Int top.res.abs_4_a_1)) - (let - ((X4 Bool (=> X1 (<= X3 top.res.abs_10_a_1)))) - (let - ((X5 Int top.res.abs_3_a_1)) - (let - ((X6 Bool (=> X1 (<= X5 top.res.abs_10_a_1)))) - (let - ((X7 Int top.res.abs_2_a_1)) - (let - ((X8 Bool (=> X1 (<= X7 top.res.abs_10_a_1)))) - (let - ((X9 Int top.res.abs_1_a_1)) - (let - ((X10 Bool (=> X1 (<= X9 top.res.abs_10_a_1)))) - (let - ((X11 Bool (=> X1 (>= X3 0)))) - (let - ((X12 Bool (=> X1 (>= X5 0)))) - (let - ((X13 Bool (=> X1 (>= X7 0)))) - (let - ((X14 Int top.res.abs_0_a_1)) - (let - ((X15 Bool (=> X1 (>= X14 0)))) - (let - ((X16 Bool (=> X1 (>= X9 0)))) - (let - ((X17 Bool (=> X1 (or (< X5 1) (< X9 1))))) - (let - ((X18 Bool (=> X1 (<= X5 1)))) - (let - ((X19 - Bool (=> - X1 - (= - (+ (+ (+ (+ X14 X9) X7) X5) X3) - top.res.abs_10_a_1)))) - (let - ((X20 - Bool (=> - X1 - (= - (+ (+ (+ (+ X14 X9) X7) X5) X3) - top.res.abs_9_a_0)))) - (let - ((X21 Bool (=> X1 (not X2)))) - (and - (= - top.usr.OK_a_1 - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (and (and X21 X20) X19) X18) - X17) - X16) - X15) - X13) - X12) - X11) - X10) - X8) - X6) - X4)) - (= top.res.abs_9_a_1 (+ (+ (+ (+ X14 X9) X7) X5) X3)) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))))))))))))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.abs_10 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Bool top.res.abs_5)) - (let - ((X3 Int top.res.abs_4)) - (let - ((X4 Bool (=> X1 (<= X3 top.res.abs_10)))) - (let - ((X5 Int top.res.abs_3)) - (let - ((X6 Bool (=> X1 (<= X5 top.res.abs_10)))) - (let - ((X7 Int top.res.abs_2)) - (let - ((X8 Bool (=> X1 (<= X7 top.res.abs_10)))) - (let - ((X9 Int top.res.abs_1)) - (let - ((X10 Bool (=> X1 (<= X9 top.res.abs_10)))) - (let - ((X11 Bool (=> X1 (>= X3 0)))) - (let - ((X12 Bool (=> X1 (>= X5 0)))) - (let - ((X13 Bool (=> X1 (>= X7 0)))) - (let - ((X14 Int top.res.abs_0)) - (let - ((X15 Bool (=> X1 (>= X14 0)))) - (let - ((X16 Bool (=> X1 (>= X9 0)))) - (let - ((X17 Bool (=> X1 (or (< X5 1) (< X9 1))))) - (let - ((X18 Bool (=> X1 (<= X5 1)))) - (let - ((X19 - Bool (=> - X1 - (= - (+ (+ (+ (+ X14 X9) X7) X5) X3) - top.res.abs_10)))) - (let - ((X20 Bool true)) - (let - ((X21 Bool (=> X1 (not X2)))) - (and - (= - top.usr.OK - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (and (and X21 X20) X19) X18) - X17) - X16) - X15) - X13) - X12) - X11) - X10) - X8) - X6) - X4)) - (= top.res.abs_9 (+ (+ (+ (+ X14 X9) X7) X5) X3)) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid - top.res.abs_10 - top.res.inst_0) - top.res.init_flag))))))))))))))))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.abs_10! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Bool top.res.abs_5!)) - (let - ((X3 Int top.res.abs_4!)) - (let - ((X4 Bool (=> X1 (<= X3 top.res.abs_10!)))) - (let - ((X5 Int top.res.abs_3!)) - (let - ((X6 Bool (=> X1 (<= X5 top.res.abs_10!)))) - (let - ((X7 Int top.res.abs_2!)) - (let - ((X8 Bool (=> X1 (<= X7 top.res.abs_10!)))) - (let - ((X9 Int top.res.abs_1!)) - (let - ((X10 Bool (=> X1 (<= X9 top.res.abs_10!)))) - (let - ((X11 Bool (=> X1 (>= X3 0)))) - (let - ((X12 Bool (=> X1 (>= X5 0)))) - (let - ((X13 Bool (=> X1 (>= X7 0)))) - (let - ((X14 Int top.res.abs_0!)) - (let - ((X15 Bool (=> X1 (>= X14 0)))) - (let - ((X16 Bool (=> X1 (>= X9 0)))) - (let - ((X17 Bool (=> X1 (or (< X5 1) (< X9 1))))) - (let - ((X18 Bool (=> X1 (<= X5 1)))) - (let - ((X19 - Bool (=> - X1 - (= - (+ (+ (+ (+ X14 X9) X7) X5) X3) - top.res.abs_10!)))) - (let - ((X20 - Bool (=> - X1 - (= - (+ (+ (+ (+ X14 X9) X7) X5) X3) - top.res.abs_9)))) - (let - ((X21 Bool (=> X1 (not X2)))) - (and - (= - top.usr.OK! - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (and (and X21 X20) X19) X18) - X17) - X16) - X15) - X13) - X12) - X11) - X10) - X8) - X6) - X4)) - (= top.res.abs_9! (+ (+ (+ (+ X14 X9) X7) X5) X3)) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_4! - top.res.inst_3! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_1! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid! - top.res.abs_10! - top.res.inst_0! - top.usr.init_invalid - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!)))))))))))))))))))))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ X5 X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_5_a_0)) (let ((X3 top.res.abs_4_a_0)) (let ((X4 (=> X1 (<= X3 top.res.abs_10_a_0)))) (let ((X5 top.res.abs_3_a_0)) (let ((X6 (=> X1 (<= X5 top.res.abs_10_a_0)))) (let ((X7 top.res.abs_2_a_0)) (let ((X8 (=> X1 (<= X7 top.res.abs_10_a_0)))) (let ((X9 top.res.abs_1_a_0)) (let ((X10 (=> X1 (<= X9 top.res.abs_10_a_0)))) (let ((X11 (=> X1 (>= X3 0)))) (let ((X12 (=> X1 (>= X5 0)))) (let ((X13 (=> X1 (>= X7 0)))) (let ((X14 top.res.abs_0_a_0)) (let ((X15 (=> X1 (>= X14 0)))) (let ((X16 (=> X1 (>= X9 0)))) (let ((X17 (=> X1 (or (< X5 1) (< X9 1))))) (let ((X18 (=> X1 (<= X5 1)))) (let ((X19 (=> X1 (= (+ (+ (+ (+ X14 X9) X7) X5) X3) top.res.abs_10_a_0)))) (let ((X20 true)) (let ((X21 (=> X1 (not X2)))) (and (= top.usr.OK_a_0 (and (and (and (and (and (and (and (and (and (and (and (and (and X21 X20) X19) X18) X17) X16) X15) X13) X12) X11) X10) X8) X6) X4)) (= top.res.abs_9_a_0 (+ (+ (+ (+ X14 X9) X7) X5) X3)) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))))))))))))))))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.abs_10_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_5_a_1)) (let ((X3 top.res.abs_4_a_1)) (let ((X4 (=> X1 (<= X3 top.res.abs_10_a_1)))) (let ((X5 top.res.abs_3_a_1)) (let ((X6 (=> X1 (<= X5 top.res.abs_10_a_1)))) (let ((X7 top.res.abs_2_a_1)) (let ((X8 (=> X1 (<= X7 top.res.abs_10_a_1)))) (let ((X9 top.res.abs_1_a_1)) (let ((X10 (=> X1 (<= X9 top.res.abs_10_a_1)))) (let ((X11 (=> X1 (>= X3 0)))) (let ((X12 (=> X1 (>= X5 0)))) (let ((X13 (=> X1 (>= X7 0)))) (let ((X14 top.res.abs_0_a_1)) (let ((X15 (=> X1 (>= X14 0)))) (let ((X16 (=> X1 (>= X9 0)))) (let ((X17 (=> X1 (or (< X5 1) (< X9 1))))) (let ((X18 (=> X1 (<= X5 1)))) (let ((X19 (=> X1 (= (+ (+ (+ (+ X14 X9) X7) X5) X3) top.res.abs_10_a_1)))) (let ((X20 (=> X1 (= (+ (+ (+ (+ X14 X9) X7) X5) X3) top.res.abs_9_a_0)))) (let ((X21 (=> X1 (not X2)))) (and (= top.usr.OK_a_1 (and (and (and (and (and (and (and (and (and (and (and (and (and X21 X20) X19) X18) X17) X16) X15) X13) X12) X11) X10) X8) X6) X4)) (= top.res.abs_9_a_1 (+ (+ (+ (+ X14 X9) X7) X5) X3)) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.usr.init_invalid_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))))))))))))))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_5)) (let ((X3 top.res.abs_4)) (let ((X4 (=> X1 (<= X3 top.res.abs_10)))) (let ((X5 top.res.abs_3)) (let ((X6 (=> X1 (<= X5 top.res.abs_10)))) (let ((X7 top.res.abs_2)) (let ((X8 (=> X1 (<= X7 top.res.abs_10)))) (let ((X9 top.res.abs_1)) (let ((X10 (=> X1 (<= X9 top.res.abs_10)))) (let ((X11 (=> X1 (>= X3 0)))) (let ((X12 (=> X1 (>= X5 0)))) (let ((X13 (=> X1 (>= X7 0)))) (let ((X14 top.res.abs_0)) (let ((X15 (=> X1 (>= X14 0)))) (let ((X16 (=> X1 (>= X9 0)))) (let ((X17 (=> X1 (or (< X5 1) (< X9 1))))) (let ((X18 (=> X1 (<= X5 1)))) (let ((X19 (=> X1 (= (+ (+ (+ (+ X14 X9) X7) X5) X3) top.res.abs_10)))) (let ((X20 true)) (let ((X21 (=> X1 (not X2)))) (and (= top.usr.OK (and (and (and (and (and (and (and (and (and (and (and (and (and X21 X20) X19) X18) X17) X16) X15) X13) X12) X11) X10) X8) X6) X4)) (= top.res.abs_9 (+ (+ (+ (+ X14 X9) X7) X5) X3)) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid top.res.abs_10 top.res.inst_0) top.res.init_flag)))))))))))))))))))))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.abs_10! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_5!)) (let ((X3 top.res.abs_4!)) (let ((X4 (=> X1 (<= X3 top.res.abs_10!)))) (let ((X5 top.res.abs_3!)) (let ((X6 (=> X1 (<= X5 top.res.abs_10!)))) (let ((X7 top.res.abs_2!)) (let ((X8 (=> X1 (<= X7 top.res.abs_10!)))) (let ((X9 top.res.abs_1!)) (let ((X10 (=> X1 (<= X9 top.res.abs_10!)))) (let ((X11 (=> X1 (>= X3 0)))) (let ((X12 (=> X1 (>= X5 0)))) (let ((X13 (=> X1 (>= X7 0)))) (let ((X14 top.res.abs_0!)) (let ((X15 (=> X1 (>= X14 0)))) (let ((X16 (=> X1 (>= X9 0)))) (let ((X17 (=> X1 (or (< X5 1) (< X9 1))))) (let ((X18 (=> X1 (<= X5 1)))) (let ((X19 (=> X1 (= (+ (+ (+ (+ X14 X9) X7) X5) X3) top.res.abs_10!)))) (let ((X20 (=> X1 (= (+ (+ (+ (+ X14 X9) X7) X5) X3) top.res.abs_9)))) (let ((X21 (=> X1 (not X2)))) (and (= top.usr.OK! (and (and (and (and (and (and (and (and (and (and (and (and (and X21 X20) X19) X18) X17) X16) X15) X13) X12) X11) X10) X8) X6) X4)) (= top.res.abs_9! (+ (+ (+ (+ X14 X9) X7) X5) X3)) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_4! top.res.inst_3! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_2! top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_1! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid! top.res.abs_10! top.res.inst_0! top.usr.init_invalid top.res.abs_10 top.res.inst_0) (not top.res.init_flag!)))))))))))))))))))))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_all2_e3_4612_e1_6463.sl b/benchmarks/LIA/Lustre/DRAGON_all2_e3_4612_e1_6463.sl index 3235af5..d60f5ba 100644 --- a/benchmarks/LIA/Lustre/DRAGON_all2_e3_4612_e1_6463.sl +++ b/benchmarks/LIA/Lustre/DRAGON_all2_e3_4612_e1_6463.sl @@ -1,2285 +1,66 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ (- X5 X4) 1) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ (- DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) 1) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Bool top.res.abs_5_a_0)) - (let - ((X3 Int top.res.abs_4_a_0)) - (let - ((X4 Bool (=> X1 (<= X3 top.res.abs_10_a_0)))) - (let - ((X5 Int top.res.abs_3_a_0)) - (let - ((X6 Bool (=> X1 (<= X5 top.res.abs_10_a_0)))) - (let - ((X7 Int top.res.abs_2_a_0)) - (let - ((X8 Bool (=> X1 (<= X7 top.res.abs_10_a_0)))) - (let - ((X9 Int top.res.abs_1_a_0)) - (let - ((X10 Bool (=> X1 (<= X9 top.res.abs_10_a_0)))) - (let - ((X11 Bool (=> X1 (>= X3 0)))) - (let - ((X12 Bool (=> X1 (>= X5 0)))) - (let - ((X13 Bool (=> X1 (>= X7 0)))) - (let - ((X14 Int top.res.abs_0_a_0)) - (let - ((X15 Bool (=> X1 (>= X14 0)))) - (let - ((X16 Bool (=> X1 (>= X9 0)))) - (let - ((X17 Bool (=> X1 (or (< X5 1) (< X9 1))))) - (let - ((X18 Bool (=> X1 (<= X5 1)))) - (let - ((X19 - Bool (=> - X1 - (= - (+ (+ (+ (+ X14 X9) X7) X5) X3) - top.res.abs_10_a_0)))) - (let - ((X20 Bool true)) - (let - ((X21 Bool (=> X1 (not X2)))) - (and - (= - top.usr.OK_a_0 - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (and (and X21 X20) X19) X18) - X17) - X16) - X15) - X13) - X12) - X11) - X10) - X8) - X6) - X4)) - (= top.res.abs_9_a_0 (+ (+ (+ (+ X14 X9) X7) X5) X3)) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))))))))))))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.abs_10_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Bool top.res.abs_5_a_1)) - (let - ((X3 Int top.res.abs_4_a_1)) - (let - ((X4 Bool (=> X1 (<= X3 top.res.abs_10_a_1)))) - (let - ((X5 Int top.res.abs_3_a_1)) - (let - ((X6 Bool (=> X1 (<= X5 top.res.abs_10_a_1)))) - (let - ((X7 Int top.res.abs_2_a_1)) - (let - ((X8 Bool (=> X1 (<= X7 top.res.abs_10_a_1)))) - (let - ((X9 Int top.res.abs_1_a_1)) - (let - ((X10 Bool (=> X1 (<= X9 top.res.abs_10_a_1)))) - (let - ((X11 Bool (=> X1 (>= X3 0)))) - (let - ((X12 Bool (=> X1 (>= X5 0)))) - (let - ((X13 Bool (=> X1 (>= X7 0)))) - (let - ((X14 Int top.res.abs_0_a_1)) - (let - ((X15 Bool (=> X1 (>= X14 0)))) - (let - ((X16 Bool (=> X1 (>= X9 0)))) - (let - ((X17 Bool (=> X1 (or (< X5 1) (< X9 1))))) - (let - ((X18 Bool (=> X1 (<= X5 1)))) - (let - ((X19 - Bool (=> - X1 - (= - (+ (+ (+ (+ X14 X9) X7) X5) X3) - top.res.abs_10_a_1)))) - (let - ((X20 - Bool (=> - X1 - (= - (+ (+ (+ (+ X14 X9) X7) X5) X3) - top.res.abs_9_a_0)))) - (let - ((X21 Bool (=> X1 (not X2)))) - (and - (= - top.usr.OK_a_1 - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (and (and X21 X20) X19) X18) - X17) - X16) - X15) - X13) - X12) - X11) - X10) - X8) - X6) - X4)) - (= top.res.abs_9_a_1 (+ (+ (+ (+ X14 X9) X7) X5) X3)) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))))))))))))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.abs_10 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Bool top.res.abs_5)) - (let - ((X3 Int top.res.abs_4)) - (let - ((X4 Bool (=> X1 (<= X3 top.res.abs_10)))) - (let - ((X5 Int top.res.abs_3)) - (let - ((X6 Bool (=> X1 (<= X5 top.res.abs_10)))) - (let - ((X7 Int top.res.abs_2)) - (let - ((X8 Bool (=> X1 (<= X7 top.res.abs_10)))) - (let - ((X9 Int top.res.abs_1)) - (let - ((X10 Bool (=> X1 (<= X9 top.res.abs_10)))) - (let - ((X11 Bool (=> X1 (>= X3 0)))) - (let - ((X12 Bool (=> X1 (>= X5 0)))) - (let - ((X13 Bool (=> X1 (>= X7 0)))) - (let - ((X14 Int top.res.abs_0)) - (let - ((X15 Bool (=> X1 (>= X14 0)))) - (let - ((X16 Bool (=> X1 (>= X9 0)))) - (let - ((X17 Bool (=> X1 (or (< X5 1) (< X9 1))))) - (let - ((X18 Bool (=> X1 (<= X5 1)))) - (let - ((X19 - Bool (=> - X1 - (= - (+ (+ (+ (+ X14 X9) X7) X5) X3) - top.res.abs_10)))) - (let - ((X20 Bool true)) - (let - ((X21 Bool (=> X1 (not X2)))) - (and - (= - top.usr.OK - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (and (and X21 X20) X19) X18) - X17) - X16) - X15) - X13) - X12) - X11) - X10) - X8) - X6) - X4)) - (= top.res.abs_9 (+ (+ (+ (+ X14 X9) X7) X5) X3)) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid - top.res.abs_10 - top.res.inst_0) - top.res.init_flag))))))))))))))))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.abs_10! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Bool top.res.abs_5!)) - (let - ((X3 Int top.res.abs_4!)) - (let - ((X4 Bool (=> X1 (<= X3 top.res.abs_10!)))) - (let - ((X5 Int top.res.abs_3!)) - (let - ((X6 Bool (=> X1 (<= X5 top.res.abs_10!)))) - (let - ((X7 Int top.res.abs_2!)) - (let - ((X8 Bool (=> X1 (<= X7 top.res.abs_10!)))) - (let - ((X9 Int top.res.abs_1!)) - (let - ((X10 Bool (=> X1 (<= X9 top.res.abs_10!)))) - (let - ((X11 Bool (=> X1 (>= X3 0)))) - (let - ((X12 Bool (=> X1 (>= X5 0)))) - (let - ((X13 Bool (=> X1 (>= X7 0)))) - (let - ((X14 Int top.res.abs_0!)) - (let - ((X15 Bool (=> X1 (>= X14 0)))) - (let - ((X16 Bool (=> X1 (>= X9 0)))) - (let - ((X17 Bool (=> X1 (or (< X5 1) (< X9 1))))) - (let - ((X18 Bool (=> X1 (<= X5 1)))) - (let - ((X19 - Bool (=> - X1 - (= - (+ (+ (+ (+ X14 X9) X7) X5) X3) - top.res.abs_10!)))) - (let - ((X20 - Bool (=> - X1 - (= - (+ (+ (+ (+ X14 X9) X7) X5) X3) - top.res.abs_9)))) - (let - ((X21 Bool (=> X1 (not X2)))) - (and - (= - top.usr.OK! - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (and (and X21 X20) X19) X18) - X17) - X16) - X15) - X13) - X12) - X11) - X10) - X8) - X6) - X4)) - (= top.res.abs_9! (+ (+ (+ (+ X14 X9) X7) X5) X3)) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_4! - top.res.inst_3! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_1! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid! - top.res.abs_10! - top.res.inst_0! - top.usr.init_invalid - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!)))))))))))))))))))))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ (- X5 X4) 1) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ (- DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_5_a_0)) (let ((X3 top.res.abs_4_a_0)) (let ((X4 (=> X1 (<= X3 top.res.abs_10_a_0)))) (let ((X5 top.res.abs_3_a_0)) (let ((X6 (=> X1 (<= X5 top.res.abs_10_a_0)))) (let ((X7 top.res.abs_2_a_0)) (let ((X8 (=> X1 (<= X7 top.res.abs_10_a_0)))) (let ((X9 top.res.abs_1_a_0)) (let ((X10 (=> X1 (<= X9 top.res.abs_10_a_0)))) (let ((X11 (=> X1 (>= X3 0)))) (let ((X12 (=> X1 (>= X5 0)))) (let ((X13 (=> X1 (>= X7 0)))) (let ((X14 top.res.abs_0_a_0)) (let ((X15 (=> X1 (>= X14 0)))) (let ((X16 (=> X1 (>= X9 0)))) (let ((X17 (=> X1 (or (< X5 1) (< X9 1))))) (let ((X18 (=> X1 (<= X5 1)))) (let ((X19 (=> X1 (= (+ (+ (+ (+ X14 X9) X7) X5) X3) top.res.abs_10_a_0)))) (let ((X20 true)) (let ((X21 (=> X1 (not X2)))) (and (= top.usr.OK_a_0 (and (and (and (and (and (and (and (and (and (and (and (and (and X21 X20) X19) X18) X17) X16) X15) X13) X12) X11) X10) X8) X6) X4)) (= top.res.abs_9_a_0 (+ (+ (+ (+ X14 X9) X7) X5) X3)) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))))))))))))))))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.abs_10_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_5_a_1)) (let ((X3 top.res.abs_4_a_1)) (let ((X4 (=> X1 (<= X3 top.res.abs_10_a_1)))) (let ((X5 top.res.abs_3_a_1)) (let ((X6 (=> X1 (<= X5 top.res.abs_10_a_1)))) (let ((X7 top.res.abs_2_a_1)) (let ((X8 (=> X1 (<= X7 top.res.abs_10_a_1)))) (let ((X9 top.res.abs_1_a_1)) (let ((X10 (=> X1 (<= X9 top.res.abs_10_a_1)))) (let ((X11 (=> X1 (>= X3 0)))) (let ((X12 (=> X1 (>= X5 0)))) (let ((X13 (=> X1 (>= X7 0)))) (let ((X14 top.res.abs_0_a_1)) (let ((X15 (=> X1 (>= X14 0)))) (let ((X16 (=> X1 (>= X9 0)))) (let ((X17 (=> X1 (or (< X5 1) (< X9 1))))) (let ((X18 (=> X1 (<= X5 1)))) (let ((X19 (=> X1 (= (+ (+ (+ (+ X14 X9) X7) X5) X3) top.res.abs_10_a_1)))) (let ((X20 (=> X1 (= (+ (+ (+ (+ X14 X9) X7) X5) X3) top.res.abs_9_a_0)))) (let ((X21 (=> X1 (not X2)))) (and (= top.usr.OK_a_1 (and (and (and (and (and (and (and (and (and (and (and (and (and X21 X20) X19) X18) X17) X16) X15) X13) X12) X11) X10) X8) X6) X4)) (= top.res.abs_9_a_1 (+ (+ (+ (+ X14 X9) X7) X5) X3)) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.usr.init_invalid_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))))))))))))))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_5)) (let ((X3 top.res.abs_4)) (let ((X4 (=> X1 (<= X3 top.res.abs_10)))) (let ((X5 top.res.abs_3)) (let ((X6 (=> X1 (<= X5 top.res.abs_10)))) (let ((X7 top.res.abs_2)) (let ((X8 (=> X1 (<= X7 top.res.abs_10)))) (let ((X9 top.res.abs_1)) (let ((X10 (=> X1 (<= X9 top.res.abs_10)))) (let ((X11 (=> X1 (>= X3 0)))) (let ((X12 (=> X1 (>= X5 0)))) (let ((X13 (=> X1 (>= X7 0)))) (let ((X14 top.res.abs_0)) (let ((X15 (=> X1 (>= X14 0)))) (let ((X16 (=> X1 (>= X9 0)))) (let ((X17 (=> X1 (or (< X5 1) (< X9 1))))) (let ((X18 (=> X1 (<= X5 1)))) (let ((X19 (=> X1 (= (+ (+ (+ (+ X14 X9) X7) X5) X3) top.res.abs_10)))) (let ((X20 true)) (let ((X21 (=> X1 (not X2)))) (and (= top.usr.OK (and (and (and (and (and (and (and (and (and (and (and (and (and X21 X20) X19) X18) X17) X16) X15) X13) X12) X11) X10) X8) X6) X4)) (= top.res.abs_9 (+ (+ (+ (+ X14 X9) X7) X5) X3)) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid top.res.abs_10 top.res.inst_0) top.res.init_flag)))))))))))))))))))))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.abs_10! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_5!)) (let ((X3 top.res.abs_4!)) (let ((X4 (=> X1 (<= X3 top.res.abs_10!)))) (let ((X5 top.res.abs_3!)) (let ((X6 (=> X1 (<= X5 top.res.abs_10!)))) (let ((X7 top.res.abs_2!)) (let ((X8 (=> X1 (<= X7 top.res.abs_10!)))) (let ((X9 top.res.abs_1!)) (let ((X10 (=> X1 (<= X9 top.res.abs_10!)))) (let ((X11 (=> X1 (>= X3 0)))) (let ((X12 (=> X1 (>= X5 0)))) (let ((X13 (=> X1 (>= X7 0)))) (let ((X14 top.res.abs_0!)) (let ((X15 (=> X1 (>= X14 0)))) (let ((X16 (=> X1 (>= X9 0)))) (let ((X17 (=> X1 (or (< X5 1) (< X9 1))))) (let ((X18 (=> X1 (<= X5 1)))) (let ((X19 (=> X1 (= (+ (+ (+ (+ X14 X9) X7) X5) X3) top.res.abs_10!)))) (let ((X20 (=> X1 (= (+ (+ (+ (+ X14 X9) X7) X5) X3) top.res.abs_9)))) (let ((X21 (=> X1 (not X2)))) (and (= top.usr.OK! (and (and (and (and (and (and (and (and (and (and (and (and (and X21 X20) X19) X18) X17) X16) X15) X13) X12) X11) X10) X8) X6) X4)) (= top.res.abs_9! (+ (+ (+ (+ X14 X9) X7) X5) X3)) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_4! top.res.inst_3! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_2! top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_1! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid! top.res.abs_10! top.res.inst_0! top.usr.init_invalid top.res.abs_10 top.res.inst_0) (not top.res.init_flag!)))))))))))))))))))))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_all2_e3_4612_e2_5774.sl b/benchmarks/LIA/Lustre/DRAGON_all2_e3_4612_e2_5774.sl index 7a19073..5a04156 100644 --- a/benchmarks/LIA/Lustre/DRAGON_all2_e3_4612_e2_5774.sl +++ b/benchmarks/LIA/Lustre/DRAGON_all2_e3_4612_e2_5774.sl @@ -1,2285 +1,66 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (- (- X5 X4) 1) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (- (- DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) 1) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Bool top.res.abs_5_a_0)) - (let - ((X3 Int top.res.abs_4_a_0)) - (let - ((X4 Bool (=> X1 (<= X3 top.res.abs_10_a_0)))) - (let - ((X5 Int top.res.abs_3_a_0)) - (let - ((X6 Bool (=> X1 (<= X5 top.res.abs_10_a_0)))) - (let - ((X7 Int top.res.abs_2_a_0)) - (let - ((X8 Bool (=> X1 (<= X7 top.res.abs_10_a_0)))) - (let - ((X9 Int top.res.abs_1_a_0)) - (let - ((X10 Bool (=> X1 (<= X9 top.res.abs_10_a_0)))) - (let - ((X11 Bool (=> X1 (>= X3 0)))) - (let - ((X12 Bool (=> X1 (>= X5 0)))) - (let - ((X13 Bool (=> X1 (>= X7 0)))) - (let - ((X14 Int top.res.abs_0_a_0)) - (let - ((X15 Bool (=> X1 (>= X14 0)))) - (let - ((X16 Bool (=> X1 (>= X9 0)))) - (let - ((X17 Bool (=> X1 (or (< X5 1) (< X9 1))))) - (let - ((X18 Bool (=> X1 (<= X5 1)))) - (let - ((X19 - Bool (=> - X1 - (= - (+ (+ (+ (+ X14 X9) X7) X5) X3) - top.res.abs_10_a_0)))) - (let - ((X20 Bool true)) - (let - ((X21 Bool (=> X1 (not X2)))) - (and - (= - top.usr.OK_a_0 - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (and (and X21 X20) X19) X18) - X17) - X16) - X15) - X13) - X12) - X11) - X10) - X8) - X6) - X4)) - (= top.res.abs_9_a_0 (+ (+ (+ (+ X14 X9) X7) X5) X3)) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))))))))))))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.abs_10_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Bool top.res.abs_5_a_1)) - (let - ((X3 Int top.res.abs_4_a_1)) - (let - ((X4 Bool (=> X1 (<= X3 top.res.abs_10_a_1)))) - (let - ((X5 Int top.res.abs_3_a_1)) - (let - ((X6 Bool (=> X1 (<= X5 top.res.abs_10_a_1)))) - (let - ((X7 Int top.res.abs_2_a_1)) - (let - ((X8 Bool (=> X1 (<= X7 top.res.abs_10_a_1)))) - (let - ((X9 Int top.res.abs_1_a_1)) - (let - ((X10 Bool (=> X1 (<= X9 top.res.abs_10_a_1)))) - (let - ((X11 Bool (=> X1 (>= X3 0)))) - (let - ((X12 Bool (=> X1 (>= X5 0)))) - (let - ((X13 Bool (=> X1 (>= X7 0)))) - (let - ((X14 Int top.res.abs_0_a_1)) - (let - ((X15 Bool (=> X1 (>= X14 0)))) - (let - ((X16 Bool (=> X1 (>= X9 0)))) - (let - ((X17 Bool (=> X1 (or (< X5 1) (< X9 1))))) - (let - ((X18 Bool (=> X1 (<= X5 1)))) - (let - ((X19 - Bool (=> - X1 - (= - (+ (+ (+ (+ X14 X9) X7) X5) X3) - top.res.abs_10_a_1)))) - (let - ((X20 - Bool (=> - X1 - (= - (+ (+ (+ (+ X14 X9) X7) X5) X3) - top.res.abs_9_a_0)))) - (let - ((X21 Bool (=> X1 (not X2)))) - (and - (= - top.usr.OK_a_1 - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (and (and X21 X20) X19) X18) - X17) - X16) - X15) - X13) - X12) - X11) - X10) - X8) - X6) - X4)) - (= top.res.abs_9_a_1 (+ (+ (+ (+ X14 X9) X7) X5) X3)) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))))))))))))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.abs_10 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Bool top.res.abs_5)) - (let - ((X3 Int top.res.abs_4)) - (let - ((X4 Bool (=> X1 (<= X3 top.res.abs_10)))) - (let - ((X5 Int top.res.abs_3)) - (let - ((X6 Bool (=> X1 (<= X5 top.res.abs_10)))) - (let - ((X7 Int top.res.abs_2)) - (let - ((X8 Bool (=> X1 (<= X7 top.res.abs_10)))) - (let - ((X9 Int top.res.abs_1)) - (let - ((X10 Bool (=> X1 (<= X9 top.res.abs_10)))) - (let - ((X11 Bool (=> X1 (>= X3 0)))) - (let - ((X12 Bool (=> X1 (>= X5 0)))) - (let - ((X13 Bool (=> X1 (>= X7 0)))) - (let - ((X14 Int top.res.abs_0)) - (let - ((X15 Bool (=> X1 (>= X14 0)))) - (let - ((X16 Bool (=> X1 (>= X9 0)))) - (let - ((X17 Bool (=> X1 (or (< X5 1) (< X9 1))))) - (let - ((X18 Bool (=> X1 (<= X5 1)))) - (let - ((X19 - Bool (=> - X1 - (= - (+ (+ (+ (+ X14 X9) X7) X5) X3) - top.res.abs_10)))) - (let - ((X20 Bool true)) - (let - ((X21 Bool (=> X1 (not X2)))) - (and - (= - top.usr.OK - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (and (and X21 X20) X19) X18) - X17) - X16) - X15) - X13) - X12) - X11) - X10) - X8) - X6) - X4)) - (= top.res.abs_9 (+ (+ (+ (+ X14 X9) X7) X5) X3)) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid - top.res.abs_10 - top.res.inst_0) - top.res.init_flag))))))))))))))))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.abs_10! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Bool top.res.abs_5!)) - (let - ((X3 Int top.res.abs_4!)) - (let - ((X4 Bool (=> X1 (<= X3 top.res.abs_10!)))) - (let - ((X5 Int top.res.abs_3!)) - (let - ((X6 Bool (=> X1 (<= X5 top.res.abs_10!)))) - (let - ((X7 Int top.res.abs_2!)) - (let - ((X8 Bool (=> X1 (<= X7 top.res.abs_10!)))) - (let - ((X9 Int top.res.abs_1!)) - (let - ((X10 Bool (=> X1 (<= X9 top.res.abs_10!)))) - (let - ((X11 Bool (=> X1 (>= X3 0)))) - (let - ((X12 Bool (=> X1 (>= X5 0)))) - (let - ((X13 Bool (=> X1 (>= X7 0)))) - (let - ((X14 Int top.res.abs_0!)) - (let - ((X15 Bool (=> X1 (>= X14 0)))) - (let - ((X16 Bool (=> X1 (>= X9 0)))) - (let - ((X17 Bool (=> X1 (or (< X5 1) (< X9 1))))) - (let - ((X18 Bool (=> X1 (<= X5 1)))) - (let - ((X19 - Bool (=> - X1 - (= - (+ (+ (+ (+ X14 X9) X7) X5) X3) - top.res.abs_10!)))) - (let - ((X20 - Bool (=> - X1 - (= - (+ (+ (+ (+ X14 X9) X7) X5) X3) - top.res.abs_9)))) - (let - ((X21 Bool (=> X1 (not X2)))) - (and - (= - top.usr.OK! - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (and (and X21 X20) X19) X18) - X17) - X16) - X15) - X13) - X12) - X11) - X10) - X8) - X6) - X4)) - (= top.res.abs_9! (+ (+ (+ (+ X14 X9) X7) X5) X3)) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_4! - top.res.inst_3! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_1! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid! - top.res.abs_10! - top.res.inst_0! - top.usr.init_invalid - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!)))))))))))))))))))))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (- (- X5 X4) 1) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (- (- DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_5_a_0)) (let ((X3 top.res.abs_4_a_0)) (let ((X4 (=> X1 (<= X3 top.res.abs_10_a_0)))) (let ((X5 top.res.abs_3_a_0)) (let ((X6 (=> X1 (<= X5 top.res.abs_10_a_0)))) (let ((X7 top.res.abs_2_a_0)) (let ((X8 (=> X1 (<= X7 top.res.abs_10_a_0)))) (let ((X9 top.res.abs_1_a_0)) (let ((X10 (=> X1 (<= X9 top.res.abs_10_a_0)))) (let ((X11 (=> X1 (>= X3 0)))) (let ((X12 (=> X1 (>= X5 0)))) (let ((X13 (=> X1 (>= X7 0)))) (let ((X14 top.res.abs_0_a_0)) (let ((X15 (=> X1 (>= X14 0)))) (let ((X16 (=> X1 (>= X9 0)))) (let ((X17 (=> X1 (or (< X5 1) (< X9 1))))) (let ((X18 (=> X1 (<= X5 1)))) (let ((X19 (=> X1 (= (+ (+ (+ (+ X14 X9) X7) X5) X3) top.res.abs_10_a_0)))) (let ((X20 true)) (let ((X21 (=> X1 (not X2)))) (and (= top.usr.OK_a_0 (and (and (and (and (and (and (and (and (and (and (and (and (and X21 X20) X19) X18) X17) X16) X15) X13) X12) X11) X10) X8) X6) X4)) (= top.res.abs_9_a_0 (+ (+ (+ (+ X14 X9) X7) X5) X3)) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))))))))))))))))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.abs_10_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_5_a_1)) (let ((X3 top.res.abs_4_a_1)) (let ((X4 (=> X1 (<= X3 top.res.abs_10_a_1)))) (let ((X5 top.res.abs_3_a_1)) (let ((X6 (=> X1 (<= X5 top.res.abs_10_a_1)))) (let ((X7 top.res.abs_2_a_1)) (let ((X8 (=> X1 (<= X7 top.res.abs_10_a_1)))) (let ((X9 top.res.abs_1_a_1)) (let ((X10 (=> X1 (<= X9 top.res.abs_10_a_1)))) (let ((X11 (=> X1 (>= X3 0)))) (let ((X12 (=> X1 (>= X5 0)))) (let ((X13 (=> X1 (>= X7 0)))) (let ((X14 top.res.abs_0_a_1)) (let ((X15 (=> X1 (>= X14 0)))) (let ((X16 (=> X1 (>= X9 0)))) (let ((X17 (=> X1 (or (< X5 1) (< X9 1))))) (let ((X18 (=> X1 (<= X5 1)))) (let ((X19 (=> X1 (= (+ (+ (+ (+ X14 X9) X7) X5) X3) top.res.abs_10_a_1)))) (let ((X20 (=> X1 (= (+ (+ (+ (+ X14 X9) X7) X5) X3) top.res.abs_9_a_0)))) (let ((X21 (=> X1 (not X2)))) (and (= top.usr.OK_a_1 (and (and (and (and (and (and (and (and (and (and (and (and (and X21 X20) X19) X18) X17) X16) X15) X13) X12) X11) X10) X8) X6) X4)) (= top.res.abs_9_a_1 (+ (+ (+ (+ X14 X9) X7) X5) X3)) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.usr.init_invalid_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))))))))))))))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_5)) (let ((X3 top.res.abs_4)) (let ((X4 (=> X1 (<= X3 top.res.abs_10)))) (let ((X5 top.res.abs_3)) (let ((X6 (=> X1 (<= X5 top.res.abs_10)))) (let ((X7 top.res.abs_2)) (let ((X8 (=> X1 (<= X7 top.res.abs_10)))) (let ((X9 top.res.abs_1)) (let ((X10 (=> X1 (<= X9 top.res.abs_10)))) (let ((X11 (=> X1 (>= X3 0)))) (let ((X12 (=> X1 (>= X5 0)))) (let ((X13 (=> X1 (>= X7 0)))) (let ((X14 top.res.abs_0)) (let ((X15 (=> X1 (>= X14 0)))) (let ((X16 (=> X1 (>= X9 0)))) (let ((X17 (=> X1 (or (< X5 1) (< X9 1))))) (let ((X18 (=> X1 (<= X5 1)))) (let ((X19 (=> X1 (= (+ (+ (+ (+ X14 X9) X7) X5) X3) top.res.abs_10)))) (let ((X20 true)) (let ((X21 (=> X1 (not X2)))) (and (= top.usr.OK (and (and (and (and (and (and (and (and (and (and (and (and (and X21 X20) X19) X18) X17) X16) X15) X13) X12) X11) X10) X8) X6) X4)) (= top.res.abs_9 (+ (+ (+ (+ X14 X9) X7) X5) X3)) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid top.res.abs_10 top.res.inst_0) top.res.init_flag)))))))))))))))))))))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.abs_10! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_5!)) (let ((X3 top.res.abs_4!)) (let ((X4 (=> X1 (<= X3 top.res.abs_10!)))) (let ((X5 top.res.abs_3!)) (let ((X6 (=> X1 (<= X5 top.res.abs_10!)))) (let ((X7 top.res.abs_2!)) (let ((X8 (=> X1 (<= X7 top.res.abs_10!)))) (let ((X9 top.res.abs_1!)) (let ((X10 (=> X1 (<= X9 top.res.abs_10!)))) (let ((X11 (=> X1 (>= X3 0)))) (let ((X12 (=> X1 (>= X5 0)))) (let ((X13 (=> X1 (>= X7 0)))) (let ((X14 top.res.abs_0!)) (let ((X15 (=> X1 (>= X14 0)))) (let ((X16 (=> X1 (>= X9 0)))) (let ((X17 (=> X1 (or (< X5 1) (< X9 1))))) (let ((X18 (=> X1 (<= X5 1)))) (let ((X19 (=> X1 (= (+ (+ (+ (+ X14 X9) X7) X5) X3) top.res.abs_10!)))) (let ((X20 (=> X1 (= (+ (+ (+ (+ X14 X9) X7) X5) X3) top.res.abs_9)))) (let ((X21 (=> X1 (not X2)))) (and (= top.usr.OK! (and (and (and (and (and (and (and (and (and (and (and (and (and X21 X20) X19) X18) X17) X16) X15) X13) X12) X11) X10) X8) X6) X4)) (= top.res.abs_9! (+ (+ (+ (+ X14 X9) X7) X5) X3)) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_4! top.res.inst_3! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_2! top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_1! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid! top.res.abs_10! top.res.inst_0! top.usr.init_invalid top.res.abs_10 top.res.inst_0) (not top.res.init_flag!)))))))))))))))))))))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_all2_e3_4612_e3_1543.sl b/benchmarks/LIA/Lustre/DRAGON_all2_e3_4612_e3_1543.sl index bd0bea2..1a4f017 100644 --- a/benchmarks/LIA/Lustre/DRAGON_all2_e3_4612_e3_1543.sl +++ b/benchmarks/LIA/Lustre/DRAGON_all2_e3_4612_e3_1543.sl @@ -1,2285 +1,66 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (- (- X5 X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (- - (- DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Bool top.res.abs_5_a_0)) - (let - ((X3 Int top.res.abs_4_a_0)) - (let - ((X4 Bool (=> X1 (<= X3 top.res.abs_10_a_0)))) - (let - ((X5 Int top.res.abs_3_a_0)) - (let - ((X6 Bool (=> X1 (<= X5 top.res.abs_10_a_0)))) - (let - ((X7 Int top.res.abs_2_a_0)) - (let - ((X8 Bool (=> X1 (<= X7 top.res.abs_10_a_0)))) - (let - ((X9 Int top.res.abs_1_a_0)) - (let - ((X10 Bool (=> X1 (<= X9 top.res.abs_10_a_0)))) - (let - ((X11 Bool (=> X1 (>= X3 0)))) - (let - ((X12 Bool (=> X1 (>= X5 0)))) - (let - ((X13 Bool (=> X1 (>= X7 0)))) - (let - ((X14 Int top.res.abs_0_a_0)) - (let - ((X15 Bool (=> X1 (>= X14 0)))) - (let - ((X16 Bool (=> X1 (>= X9 0)))) - (let - ((X17 Bool (=> X1 (or (< X5 1) (< X9 1))))) - (let - ((X18 Bool (=> X1 (<= X5 1)))) - (let - ((X19 - Bool (=> - X1 - (= - (+ (+ (+ (+ X14 X9) X7) X5) X3) - top.res.abs_10_a_0)))) - (let - ((X20 Bool true)) - (let - ((X21 Bool (=> X1 (not X2)))) - (and - (= - top.usr.OK_a_0 - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (and (and X21 X20) X19) X18) - X17) - X16) - X15) - X13) - X12) - X11) - X10) - X8) - X6) - X4)) - (= top.res.abs_9_a_0 (+ (+ (+ (+ X14 X9) X7) X5) X3)) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))))))))))))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.abs_10_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Bool top.res.abs_5_a_1)) - (let - ((X3 Int top.res.abs_4_a_1)) - (let - ((X4 Bool (=> X1 (<= X3 top.res.abs_10_a_1)))) - (let - ((X5 Int top.res.abs_3_a_1)) - (let - ((X6 Bool (=> X1 (<= X5 top.res.abs_10_a_1)))) - (let - ((X7 Int top.res.abs_2_a_1)) - (let - ((X8 Bool (=> X1 (<= X7 top.res.abs_10_a_1)))) - (let - ((X9 Int top.res.abs_1_a_1)) - (let - ((X10 Bool (=> X1 (<= X9 top.res.abs_10_a_1)))) - (let - ((X11 Bool (=> X1 (>= X3 0)))) - (let - ((X12 Bool (=> X1 (>= X5 0)))) - (let - ((X13 Bool (=> X1 (>= X7 0)))) - (let - ((X14 Int top.res.abs_0_a_1)) - (let - ((X15 Bool (=> X1 (>= X14 0)))) - (let - ((X16 Bool (=> X1 (>= X9 0)))) - (let - ((X17 Bool (=> X1 (or (< X5 1) (< X9 1))))) - (let - ((X18 Bool (=> X1 (<= X5 1)))) - (let - ((X19 - Bool (=> - X1 - (= - (+ (+ (+ (+ X14 X9) X7) X5) X3) - top.res.abs_10_a_1)))) - (let - ((X20 - Bool (=> - X1 - (= - (+ (+ (+ (+ X14 X9) X7) X5) X3) - top.res.abs_9_a_0)))) - (let - ((X21 Bool (=> X1 (not X2)))) - (and - (= - top.usr.OK_a_1 - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (and (and X21 X20) X19) X18) - X17) - X16) - X15) - X13) - X12) - X11) - X10) - X8) - X6) - X4)) - (= top.res.abs_9_a_1 (+ (+ (+ (+ X14 X9) X7) X5) X3)) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))))))))))))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.abs_10 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Bool top.res.abs_5)) - (let - ((X3 Int top.res.abs_4)) - (let - ((X4 Bool (=> X1 (<= X3 top.res.abs_10)))) - (let - ((X5 Int top.res.abs_3)) - (let - ((X6 Bool (=> X1 (<= X5 top.res.abs_10)))) - (let - ((X7 Int top.res.abs_2)) - (let - ((X8 Bool (=> X1 (<= X7 top.res.abs_10)))) - (let - ((X9 Int top.res.abs_1)) - (let - ((X10 Bool (=> X1 (<= X9 top.res.abs_10)))) - (let - ((X11 Bool (=> X1 (>= X3 0)))) - (let - ((X12 Bool (=> X1 (>= X5 0)))) - (let - ((X13 Bool (=> X1 (>= X7 0)))) - (let - ((X14 Int top.res.abs_0)) - (let - ((X15 Bool (=> X1 (>= X14 0)))) - (let - ((X16 Bool (=> X1 (>= X9 0)))) - (let - ((X17 Bool (=> X1 (or (< X5 1) (< X9 1))))) - (let - ((X18 Bool (=> X1 (<= X5 1)))) - (let - ((X19 - Bool (=> - X1 - (= - (+ (+ (+ (+ X14 X9) X7) X5) X3) - top.res.abs_10)))) - (let - ((X20 Bool true)) - (let - ((X21 Bool (=> X1 (not X2)))) - (and - (= - top.usr.OK - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (and (and X21 X20) X19) X18) - X17) - X16) - X15) - X13) - X12) - X11) - X10) - X8) - X6) - X4)) - (= top.res.abs_9 (+ (+ (+ (+ X14 X9) X7) X5) X3)) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid - top.res.abs_10 - top.res.inst_0) - top.res.init_flag))))))))))))))))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.abs_10! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Bool top.res.abs_5!)) - (let - ((X3 Int top.res.abs_4!)) - (let - ((X4 Bool (=> X1 (<= X3 top.res.abs_10!)))) - (let - ((X5 Int top.res.abs_3!)) - (let - ((X6 Bool (=> X1 (<= X5 top.res.abs_10!)))) - (let - ((X7 Int top.res.abs_2!)) - (let - ((X8 Bool (=> X1 (<= X7 top.res.abs_10!)))) - (let - ((X9 Int top.res.abs_1!)) - (let - ((X10 Bool (=> X1 (<= X9 top.res.abs_10!)))) - (let - ((X11 Bool (=> X1 (>= X3 0)))) - (let - ((X12 Bool (=> X1 (>= X5 0)))) - (let - ((X13 Bool (=> X1 (>= X7 0)))) - (let - ((X14 Int top.res.abs_0!)) - (let - ((X15 Bool (=> X1 (>= X14 0)))) - (let - ((X16 Bool (=> X1 (>= X9 0)))) - (let - ((X17 Bool (=> X1 (or (< X5 1) (< X9 1))))) - (let - ((X18 Bool (=> X1 (<= X5 1)))) - (let - ((X19 - Bool (=> - X1 - (= - (+ (+ (+ (+ X14 X9) X7) X5) X3) - top.res.abs_10!)))) - (let - ((X20 - Bool (=> - X1 - (= - (+ (+ (+ (+ X14 X9) X7) X5) X3) - top.res.abs_9)))) - (let - ((X21 Bool (=> X1 (not X2)))) - (and - (= - top.usr.OK! - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (and (and X21 X20) X19) X18) - X17) - X16) - X15) - X13) - X12) - X11) - X10) - X8) - X6) - X4)) - (= top.res.abs_9! (+ (+ (+ (+ X14 X9) X7) X5) X3)) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_4! - top.res.inst_3! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_1! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid! - top.res.abs_10! - top.res.inst_0! - top.usr.init_invalid - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!)))))))))))))))))))))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (- (- X5 X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (- (- DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_5_a_0)) (let ((X3 top.res.abs_4_a_0)) (let ((X4 (=> X1 (<= X3 top.res.abs_10_a_0)))) (let ((X5 top.res.abs_3_a_0)) (let ((X6 (=> X1 (<= X5 top.res.abs_10_a_0)))) (let ((X7 top.res.abs_2_a_0)) (let ((X8 (=> X1 (<= X7 top.res.abs_10_a_0)))) (let ((X9 top.res.abs_1_a_0)) (let ((X10 (=> X1 (<= X9 top.res.abs_10_a_0)))) (let ((X11 (=> X1 (>= X3 0)))) (let ((X12 (=> X1 (>= X5 0)))) (let ((X13 (=> X1 (>= X7 0)))) (let ((X14 top.res.abs_0_a_0)) (let ((X15 (=> X1 (>= X14 0)))) (let ((X16 (=> X1 (>= X9 0)))) (let ((X17 (=> X1 (or (< X5 1) (< X9 1))))) (let ((X18 (=> X1 (<= X5 1)))) (let ((X19 (=> X1 (= (+ (+ (+ (+ X14 X9) X7) X5) X3) top.res.abs_10_a_0)))) (let ((X20 true)) (let ((X21 (=> X1 (not X2)))) (and (= top.usr.OK_a_0 (and (and (and (and (and (and (and (and (and (and (and (and (and X21 X20) X19) X18) X17) X16) X15) X13) X12) X11) X10) X8) X6) X4)) (= top.res.abs_9_a_0 (+ (+ (+ (+ X14 X9) X7) X5) X3)) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))))))))))))))))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.abs_10_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_5_a_1)) (let ((X3 top.res.abs_4_a_1)) (let ((X4 (=> X1 (<= X3 top.res.abs_10_a_1)))) (let ((X5 top.res.abs_3_a_1)) (let ((X6 (=> X1 (<= X5 top.res.abs_10_a_1)))) (let ((X7 top.res.abs_2_a_1)) (let ((X8 (=> X1 (<= X7 top.res.abs_10_a_1)))) (let ((X9 top.res.abs_1_a_1)) (let ((X10 (=> X1 (<= X9 top.res.abs_10_a_1)))) (let ((X11 (=> X1 (>= X3 0)))) (let ((X12 (=> X1 (>= X5 0)))) (let ((X13 (=> X1 (>= X7 0)))) (let ((X14 top.res.abs_0_a_1)) (let ((X15 (=> X1 (>= X14 0)))) (let ((X16 (=> X1 (>= X9 0)))) (let ((X17 (=> X1 (or (< X5 1) (< X9 1))))) (let ((X18 (=> X1 (<= X5 1)))) (let ((X19 (=> X1 (= (+ (+ (+ (+ X14 X9) X7) X5) X3) top.res.abs_10_a_1)))) (let ((X20 (=> X1 (= (+ (+ (+ (+ X14 X9) X7) X5) X3) top.res.abs_9_a_0)))) (let ((X21 (=> X1 (not X2)))) (and (= top.usr.OK_a_1 (and (and (and (and (and (and (and (and (and (and (and (and (and X21 X20) X19) X18) X17) X16) X15) X13) X12) X11) X10) X8) X6) X4)) (= top.res.abs_9_a_1 (+ (+ (+ (+ X14 X9) X7) X5) X3)) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.usr.init_invalid_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))))))))))))))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_5)) (let ((X3 top.res.abs_4)) (let ((X4 (=> X1 (<= X3 top.res.abs_10)))) (let ((X5 top.res.abs_3)) (let ((X6 (=> X1 (<= X5 top.res.abs_10)))) (let ((X7 top.res.abs_2)) (let ((X8 (=> X1 (<= X7 top.res.abs_10)))) (let ((X9 top.res.abs_1)) (let ((X10 (=> X1 (<= X9 top.res.abs_10)))) (let ((X11 (=> X1 (>= X3 0)))) (let ((X12 (=> X1 (>= X5 0)))) (let ((X13 (=> X1 (>= X7 0)))) (let ((X14 top.res.abs_0)) (let ((X15 (=> X1 (>= X14 0)))) (let ((X16 (=> X1 (>= X9 0)))) (let ((X17 (=> X1 (or (< X5 1) (< X9 1))))) (let ((X18 (=> X1 (<= X5 1)))) (let ((X19 (=> X1 (= (+ (+ (+ (+ X14 X9) X7) X5) X3) top.res.abs_10)))) (let ((X20 true)) (let ((X21 (=> X1 (not X2)))) (and (= top.usr.OK (and (and (and (and (and (and (and (and (and (and (and (and (and X21 X20) X19) X18) X17) X16) X15) X13) X12) X11) X10) X8) X6) X4)) (= top.res.abs_9 (+ (+ (+ (+ X14 X9) X7) X5) X3)) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid top.res.abs_10 top.res.inst_0) top.res.init_flag)))))))))))))))))))))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.abs_10! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_5!)) (let ((X3 top.res.abs_4!)) (let ((X4 (=> X1 (<= X3 top.res.abs_10!)))) (let ((X5 top.res.abs_3!)) (let ((X6 (=> X1 (<= X5 top.res.abs_10!)))) (let ((X7 top.res.abs_2!)) (let ((X8 (=> X1 (<= X7 top.res.abs_10!)))) (let ((X9 top.res.abs_1!)) (let ((X10 (=> X1 (<= X9 top.res.abs_10!)))) (let ((X11 (=> X1 (>= X3 0)))) (let ((X12 (=> X1 (>= X5 0)))) (let ((X13 (=> X1 (>= X7 0)))) (let ((X14 top.res.abs_0!)) (let ((X15 (=> X1 (>= X14 0)))) (let ((X16 (=> X1 (>= X9 0)))) (let ((X17 (=> X1 (or (< X5 1) (< X9 1))))) (let ((X18 (=> X1 (<= X5 1)))) (let ((X19 (=> X1 (= (+ (+ (+ (+ X14 X9) X7) X5) X3) top.res.abs_10!)))) (let ((X20 (=> X1 (= (+ (+ (+ (+ X14 X9) X7) X5) X3) top.res.abs_9)))) (let ((X21 (=> X1 (not X2)))) (and (= top.usr.OK! (and (and (and (and (and (and (and (and (and (and (and (and (and X21 X20) X19) X18) X17) X16) X15) X13) X12) X11) X10) X8) X6) X4)) (= top.res.abs_9! (+ (+ (+ (+ X14 X9) X7) X5) X3)) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_4! top.res.inst_3! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_2! top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_1! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid! top.res.abs_10! top.res.inst_0! top.usr.init_invalid top.res.abs_10 top.res.inst_0) (not top.res.init_flag!)))))))))))))))))))))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_all2_e3_4612_e4_3719.sl b/benchmarks/LIA/Lustre/DRAGON_all2_e3_4612_e4_3719.sl index a6ee661..b1a6633 100644 --- a/benchmarks/LIA/Lustre/DRAGON_all2_e3_4612_e4_3719.sl +++ b/benchmarks/LIA/Lustre/DRAGON_all2_e3_4612_e4_3719.sl @@ -1,2285 +1,66 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (- (+ X5 1) X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (- (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Bool top.res.abs_5_a_0)) - (let - ((X3 Int top.res.abs_4_a_0)) - (let - ((X4 Bool (=> X1 (<= X3 top.res.abs_10_a_0)))) - (let - ((X5 Int top.res.abs_3_a_0)) - (let - ((X6 Bool (=> X1 (<= X5 top.res.abs_10_a_0)))) - (let - ((X7 Int top.res.abs_2_a_0)) - (let - ((X8 Bool (=> X1 (<= X7 top.res.abs_10_a_0)))) - (let - ((X9 Int top.res.abs_1_a_0)) - (let - ((X10 Bool (=> X1 (<= X9 top.res.abs_10_a_0)))) - (let - ((X11 Bool (=> X1 (>= X3 0)))) - (let - ((X12 Bool (=> X1 (>= X5 0)))) - (let - ((X13 Bool (=> X1 (>= X7 0)))) - (let - ((X14 Int top.res.abs_0_a_0)) - (let - ((X15 Bool (=> X1 (>= X14 0)))) - (let - ((X16 Bool (=> X1 (>= X9 0)))) - (let - ((X17 Bool (=> X1 (or (< X5 1) (< X9 1))))) - (let - ((X18 Bool (=> X1 (<= X5 1)))) - (let - ((X19 - Bool (=> - X1 - (= - (+ (+ (+ (+ X14 X9) X7) X5) X3) - top.res.abs_10_a_0)))) - (let - ((X20 Bool true)) - (let - ((X21 Bool (=> X1 (not X2)))) - (and - (= - top.usr.OK_a_0 - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (and (and X21 X20) X19) X18) - X17) - X16) - X15) - X13) - X12) - X11) - X10) - X8) - X6) - X4)) - (= top.res.abs_9_a_0 (+ (+ (+ (+ X14 X9) X7) X5) X3)) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))))))))))))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.abs_10_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Bool top.res.abs_5_a_1)) - (let - ((X3 Int top.res.abs_4_a_1)) - (let - ((X4 Bool (=> X1 (<= X3 top.res.abs_10_a_1)))) - (let - ((X5 Int top.res.abs_3_a_1)) - (let - ((X6 Bool (=> X1 (<= X5 top.res.abs_10_a_1)))) - (let - ((X7 Int top.res.abs_2_a_1)) - (let - ((X8 Bool (=> X1 (<= X7 top.res.abs_10_a_1)))) - (let - ((X9 Int top.res.abs_1_a_1)) - (let - ((X10 Bool (=> X1 (<= X9 top.res.abs_10_a_1)))) - (let - ((X11 Bool (=> X1 (>= X3 0)))) - (let - ((X12 Bool (=> X1 (>= X5 0)))) - (let - ((X13 Bool (=> X1 (>= X7 0)))) - (let - ((X14 Int top.res.abs_0_a_1)) - (let - ((X15 Bool (=> X1 (>= X14 0)))) - (let - ((X16 Bool (=> X1 (>= X9 0)))) - (let - ((X17 Bool (=> X1 (or (< X5 1) (< X9 1))))) - (let - ((X18 Bool (=> X1 (<= X5 1)))) - (let - ((X19 - Bool (=> - X1 - (= - (+ (+ (+ (+ X14 X9) X7) X5) X3) - top.res.abs_10_a_1)))) - (let - ((X20 - Bool (=> - X1 - (= - (+ (+ (+ (+ X14 X9) X7) X5) X3) - top.res.abs_9_a_0)))) - (let - ((X21 Bool (=> X1 (not X2)))) - (and - (= - top.usr.OK_a_1 - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (and (and X21 X20) X19) X18) - X17) - X16) - X15) - X13) - X12) - X11) - X10) - X8) - X6) - X4)) - (= top.res.abs_9_a_1 (+ (+ (+ (+ X14 X9) X7) X5) X3)) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))))))))))))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.abs_10 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Bool top.res.abs_5)) - (let - ((X3 Int top.res.abs_4)) - (let - ((X4 Bool (=> X1 (<= X3 top.res.abs_10)))) - (let - ((X5 Int top.res.abs_3)) - (let - ((X6 Bool (=> X1 (<= X5 top.res.abs_10)))) - (let - ((X7 Int top.res.abs_2)) - (let - ((X8 Bool (=> X1 (<= X7 top.res.abs_10)))) - (let - ((X9 Int top.res.abs_1)) - (let - ((X10 Bool (=> X1 (<= X9 top.res.abs_10)))) - (let - ((X11 Bool (=> X1 (>= X3 0)))) - (let - ((X12 Bool (=> X1 (>= X5 0)))) - (let - ((X13 Bool (=> X1 (>= X7 0)))) - (let - ((X14 Int top.res.abs_0)) - (let - ((X15 Bool (=> X1 (>= X14 0)))) - (let - ((X16 Bool (=> X1 (>= X9 0)))) - (let - ((X17 Bool (=> X1 (or (< X5 1) (< X9 1))))) - (let - ((X18 Bool (=> X1 (<= X5 1)))) - (let - ((X19 - Bool (=> - X1 - (= - (+ (+ (+ (+ X14 X9) X7) X5) X3) - top.res.abs_10)))) - (let - ((X20 Bool true)) - (let - ((X21 Bool (=> X1 (not X2)))) - (and - (= - top.usr.OK - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (and (and X21 X20) X19) X18) - X17) - X16) - X15) - X13) - X12) - X11) - X10) - X8) - X6) - X4)) - (= top.res.abs_9 (+ (+ (+ (+ X14 X9) X7) X5) X3)) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid - top.res.abs_10 - top.res.inst_0) - top.res.init_flag))))))))))))))))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.abs_10! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Bool top.res.abs_5!)) - (let - ((X3 Int top.res.abs_4!)) - (let - ((X4 Bool (=> X1 (<= X3 top.res.abs_10!)))) - (let - ((X5 Int top.res.abs_3!)) - (let - ((X6 Bool (=> X1 (<= X5 top.res.abs_10!)))) - (let - ((X7 Int top.res.abs_2!)) - (let - ((X8 Bool (=> X1 (<= X7 top.res.abs_10!)))) - (let - ((X9 Int top.res.abs_1!)) - (let - ((X10 Bool (=> X1 (<= X9 top.res.abs_10!)))) - (let - ((X11 Bool (=> X1 (>= X3 0)))) - (let - ((X12 Bool (=> X1 (>= X5 0)))) - (let - ((X13 Bool (=> X1 (>= X7 0)))) - (let - ((X14 Int top.res.abs_0!)) - (let - ((X15 Bool (=> X1 (>= X14 0)))) - (let - ((X16 Bool (=> X1 (>= X9 0)))) - (let - ((X17 Bool (=> X1 (or (< X5 1) (< X9 1))))) - (let - ((X18 Bool (=> X1 (<= X5 1)))) - (let - ((X19 - Bool (=> - X1 - (= - (+ (+ (+ (+ X14 X9) X7) X5) X3) - top.res.abs_10!)))) - (let - ((X20 - Bool (=> - X1 - (= - (+ (+ (+ (+ X14 X9) X7) X5) X3) - top.res.abs_9)))) - (let - ((X21 Bool (=> X1 (not X2)))) - (and - (= - top.usr.OK! - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (and (and X21 X20) X19) X18) - X17) - X16) - X15) - X13) - X12) - X11) - X10) - X8) - X6) - X4)) - (= top.res.abs_9! (+ (+ (+ (+ X14 X9) X7) X5) X3)) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_4! - top.res.inst_3! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_1! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid! - top.res.abs_10! - top.res.inst_0! - top.usr.init_invalid - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!)))))))))))))))))))))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (- (+ X5 1) X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (- (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_5_a_0)) (let ((X3 top.res.abs_4_a_0)) (let ((X4 (=> X1 (<= X3 top.res.abs_10_a_0)))) (let ((X5 top.res.abs_3_a_0)) (let ((X6 (=> X1 (<= X5 top.res.abs_10_a_0)))) (let ((X7 top.res.abs_2_a_0)) (let ((X8 (=> X1 (<= X7 top.res.abs_10_a_0)))) (let ((X9 top.res.abs_1_a_0)) (let ((X10 (=> X1 (<= X9 top.res.abs_10_a_0)))) (let ((X11 (=> X1 (>= X3 0)))) (let ((X12 (=> X1 (>= X5 0)))) (let ((X13 (=> X1 (>= X7 0)))) (let ((X14 top.res.abs_0_a_0)) (let ((X15 (=> X1 (>= X14 0)))) (let ((X16 (=> X1 (>= X9 0)))) (let ((X17 (=> X1 (or (< X5 1) (< X9 1))))) (let ((X18 (=> X1 (<= X5 1)))) (let ((X19 (=> X1 (= (+ (+ (+ (+ X14 X9) X7) X5) X3) top.res.abs_10_a_0)))) (let ((X20 true)) (let ((X21 (=> X1 (not X2)))) (and (= top.usr.OK_a_0 (and (and (and (and (and (and (and (and (and (and (and (and (and X21 X20) X19) X18) X17) X16) X15) X13) X12) X11) X10) X8) X6) X4)) (= top.res.abs_9_a_0 (+ (+ (+ (+ X14 X9) X7) X5) X3)) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))))))))))))))))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.abs_10_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_5_a_1)) (let ((X3 top.res.abs_4_a_1)) (let ((X4 (=> X1 (<= X3 top.res.abs_10_a_1)))) (let ((X5 top.res.abs_3_a_1)) (let ((X6 (=> X1 (<= X5 top.res.abs_10_a_1)))) (let ((X7 top.res.abs_2_a_1)) (let ((X8 (=> X1 (<= X7 top.res.abs_10_a_1)))) (let ((X9 top.res.abs_1_a_1)) (let ((X10 (=> X1 (<= X9 top.res.abs_10_a_1)))) (let ((X11 (=> X1 (>= X3 0)))) (let ((X12 (=> X1 (>= X5 0)))) (let ((X13 (=> X1 (>= X7 0)))) (let ((X14 top.res.abs_0_a_1)) (let ((X15 (=> X1 (>= X14 0)))) (let ((X16 (=> X1 (>= X9 0)))) (let ((X17 (=> X1 (or (< X5 1) (< X9 1))))) (let ((X18 (=> X1 (<= X5 1)))) (let ((X19 (=> X1 (= (+ (+ (+ (+ X14 X9) X7) X5) X3) top.res.abs_10_a_1)))) (let ((X20 (=> X1 (= (+ (+ (+ (+ X14 X9) X7) X5) X3) top.res.abs_9_a_0)))) (let ((X21 (=> X1 (not X2)))) (and (= top.usr.OK_a_1 (and (and (and (and (and (and (and (and (and (and (and (and (and X21 X20) X19) X18) X17) X16) X15) X13) X12) X11) X10) X8) X6) X4)) (= top.res.abs_9_a_1 (+ (+ (+ (+ X14 X9) X7) X5) X3)) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.usr.init_invalid_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))))))))))))))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_5)) (let ((X3 top.res.abs_4)) (let ((X4 (=> X1 (<= X3 top.res.abs_10)))) (let ((X5 top.res.abs_3)) (let ((X6 (=> X1 (<= X5 top.res.abs_10)))) (let ((X7 top.res.abs_2)) (let ((X8 (=> X1 (<= X7 top.res.abs_10)))) (let ((X9 top.res.abs_1)) (let ((X10 (=> X1 (<= X9 top.res.abs_10)))) (let ((X11 (=> X1 (>= X3 0)))) (let ((X12 (=> X1 (>= X5 0)))) (let ((X13 (=> X1 (>= X7 0)))) (let ((X14 top.res.abs_0)) (let ((X15 (=> X1 (>= X14 0)))) (let ((X16 (=> X1 (>= X9 0)))) (let ((X17 (=> X1 (or (< X5 1) (< X9 1))))) (let ((X18 (=> X1 (<= X5 1)))) (let ((X19 (=> X1 (= (+ (+ (+ (+ X14 X9) X7) X5) X3) top.res.abs_10)))) (let ((X20 true)) (let ((X21 (=> X1 (not X2)))) (and (= top.usr.OK (and (and (and (and (and (and (and (and (and (and (and (and (and X21 X20) X19) X18) X17) X16) X15) X13) X12) X11) X10) X8) X6) X4)) (= top.res.abs_9 (+ (+ (+ (+ X14 X9) X7) X5) X3)) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid top.res.abs_10 top.res.inst_0) top.res.init_flag)))))))))))))))))))))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.abs_10! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_5!)) (let ((X3 top.res.abs_4!)) (let ((X4 (=> X1 (<= X3 top.res.abs_10!)))) (let ((X5 top.res.abs_3!)) (let ((X6 (=> X1 (<= X5 top.res.abs_10!)))) (let ((X7 top.res.abs_2!)) (let ((X8 (=> X1 (<= X7 top.res.abs_10!)))) (let ((X9 top.res.abs_1!)) (let ((X10 (=> X1 (<= X9 top.res.abs_10!)))) (let ((X11 (=> X1 (>= X3 0)))) (let ((X12 (=> X1 (>= X5 0)))) (let ((X13 (=> X1 (>= X7 0)))) (let ((X14 top.res.abs_0!)) (let ((X15 (=> X1 (>= X14 0)))) (let ((X16 (=> X1 (>= X9 0)))) (let ((X17 (=> X1 (or (< X5 1) (< X9 1))))) (let ((X18 (=> X1 (<= X5 1)))) (let ((X19 (=> X1 (= (+ (+ (+ (+ X14 X9) X7) X5) X3) top.res.abs_10!)))) (let ((X20 (=> X1 (= (+ (+ (+ (+ X14 X9) X7) X5) X3) top.res.abs_9)))) (let ((X21 (=> X1 (not X2)))) (and (= top.usr.OK! (and (and (and (and (and (and (and (and (and (and (and (and (and X21 X20) X19) X18) X17) X16) X15) X13) X12) X11) X10) X8) X6) X4)) (= top.res.abs_9! (+ (+ (+ (+ X14 X9) X7) X5) X3)) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_4! top.res.inst_3! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_2! top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_1! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid! top.res.abs_10! top.res.inst_0! top.usr.init_invalid top.res.abs_10 top.res.inst_0) (not top.res.init_flag!)))))))))))))))))))))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_all2_e3_4612_e5_3642.sl b/benchmarks/LIA/Lustre/DRAGON_all2_e3_4612_e5_3642.sl index dae5048..6cd8773 100644 --- a/benchmarks/LIA/Lustre/DRAGON_all2_e3_4612_e5_3642.sl +++ b/benchmarks/LIA/Lustre/DRAGON_all2_e3_4612_e5_3642.sl @@ -1,2285 +1,66 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (- (- X5 1) X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (- (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Bool top.res.abs_5_a_0)) - (let - ((X3 Int top.res.abs_4_a_0)) - (let - ((X4 Bool (=> X1 (<= X3 top.res.abs_10_a_0)))) - (let - ((X5 Int top.res.abs_3_a_0)) - (let - ((X6 Bool (=> X1 (<= X5 top.res.abs_10_a_0)))) - (let - ((X7 Int top.res.abs_2_a_0)) - (let - ((X8 Bool (=> X1 (<= X7 top.res.abs_10_a_0)))) - (let - ((X9 Int top.res.abs_1_a_0)) - (let - ((X10 Bool (=> X1 (<= X9 top.res.abs_10_a_0)))) - (let - ((X11 Bool (=> X1 (>= X3 0)))) - (let - ((X12 Bool (=> X1 (>= X5 0)))) - (let - ((X13 Bool (=> X1 (>= X7 0)))) - (let - ((X14 Int top.res.abs_0_a_0)) - (let - ((X15 Bool (=> X1 (>= X14 0)))) - (let - ((X16 Bool (=> X1 (>= X9 0)))) - (let - ((X17 Bool (=> X1 (or (< X5 1) (< X9 1))))) - (let - ((X18 Bool (=> X1 (<= X5 1)))) - (let - ((X19 - Bool (=> - X1 - (= - (+ (+ (+ (+ X14 X9) X7) X5) X3) - top.res.abs_10_a_0)))) - (let - ((X20 Bool true)) - (let - ((X21 Bool (=> X1 (not X2)))) - (and - (= - top.usr.OK_a_0 - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (and (and X21 X20) X19) X18) - X17) - X16) - X15) - X13) - X12) - X11) - X10) - X8) - X6) - X4)) - (= top.res.abs_9_a_0 (+ (+ (+ (+ X14 X9) X7) X5) X3)) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))))))))))))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.abs_10_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Bool top.res.abs_5_a_1)) - (let - ((X3 Int top.res.abs_4_a_1)) - (let - ((X4 Bool (=> X1 (<= X3 top.res.abs_10_a_1)))) - (let - ((X5 Int top.res.abs_3_a_1)) - (let - ((X6 Bool (=> X1 (<= X5 top.res.abs_10_a_1)))) - (let - ((X7 Int top.res.abs_2_a_1)) - (let - ((X8 Bool (=> X1 (<= X7 top.res.abs_10_a_1)))) - (let - ((X9 Int top.res.abs_1_a_1)) - (let - ((X10 Bool (=> X1 (<= X9 top.res.abs_10_a_1)))) - (let - ((X11 Bool (=> X1 (>= X3 0)))) - (let - ((X12 Bool (=> X1 (>= X5 0)))) - (let - ((X13 Bool (=> X1 (>= X7 0)))) - (let - ((X14 Int top.res.abs_0_a_1)) - (let - ((X15 Bool (=> X1 (>= X14 0)))) - (let - ((X16 Bool (=> X1 (>= X9 0)))) - (let - ((X17 Bool (=> X1 (or (< X5 1) (< X9 1))))) - (let - ((X18 Bool (=> X1 (<= X5 1)))) - (let - ((X19 - Bool (=> - X1 - (= - (+ (+ (+ (+ X14 X9) X7) X5) X3) - top.res.abs_10_a_1)))) - (let - ((X20 - Bool (=> - X1 - (= - (+ (+ (+ (+ X14 X9) X7) X5) X3) - top.res.abs_9_a_0)))) - (let - ((X21 Bool (=> X1 (not X2)))) - (and - (= - top.usr.OK_a_1 - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (and (and X21 X20) X19) X18) - X17) - X16) - X15) - X13) - X12) - X11) - X10) - X8) - X6) - X4)) - (= top.res.abs_9_a_1 (+ (+ (+ (+ X14 X9) X7) X5) X3)) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))))))))))))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.abs_10 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Bool top.res.abs_5)) - (let - ((X3 Int top.res.abs_4)) - (let - ((X4 Bool (=> X1 (<= X3 top.res.abs_10)))) - (let - ((X5 Int top.res.abs_3)) - (let - ((X6 Bool (=> X1 (<= X5 top.res.abs_10)))) - (let - ((X7 Int top.res.abs_2)) - (let - ((X8 Bool (=> X1 (<= X7 top.res.abs_10)))) - (let - ((X9 Int top.res.abs_1)) - (let - ((X10 Bool (=> X1 (<= X9 top.res.abs_10)))) - (let - ((X11 Bool (=> X1 (>= X3 0)))) - (let - ((X12 Bool (=> X1 (>= X5 0)))) - (let - ((X13 Bool (=> X1 (>= X7 0)))) - (let - ((X14 Int top.res.abs_0)) - (let - ((X15 Bool (=> X1 (>= X14 0)))) - (let - ((X16 Bool (=> X1 (>= X9 0)))) - (let - ((X17 Bool (=> X1 (or (< X5 1) (< X9 1))))) - (let - ((X18 Bool (=> X1 (<= X5 1)))) - (let - ((X19 - Bool (=> - X1 - (= - (+ (+ (+ (+ X14 X9) X7) X5) X3) - top.res.abs_10)))) - (let - ((X20 Bool true)) - (let - ((X21 Bool (=> X1 (not X2)))) - (and - (= - top.usr.OK - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (and (and X21 X20) X19) X18) - X17) - X16) - X15) - X13) - X12) - X11) - X10) - X8) - X6) - X4)) - (= top.res.abs_9 (+ (+ (+ (+ X14 X9) X7) X5) X3)) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid - top.res.abs_10 - top.res.inst_0) - top.res.init_flag))))))))))))))))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.abs_10! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Bool top.res.abs_5!)) - (let - ((X3 Int top.res.abs_4!)) - (let - ((X4 Bool (=> X1 (<= X3 top.res.abs_10!)))) - (let - ((X5 Int top.res.abs_3!)) - (let - ((X6 Bool (=> X1 (<= X5 top.res.abs_10!)))) - (let - ((X7 Int top.res.abs_2!)) - (let - ((X8 Bool (=> X1 (<= X7 top.res.abs_10!)))) - (let - ((X9 Int top.res.abs_1!)) - (let - ((X10 Bool (=> X1 (<= X9 top.res.abs_10!)))) - (let - ((X11 Bool (=> X1 (>= X3 0)))) - (let - ((X12 Bool (=> X1 (>= X5 0)))) - (let - ((X13 Bool (=> X1 (>= X7 0)))) - (let - ((X14 Int top.res.abs_0!)) - (let - ((X15 Bool (=> X1 (>= X14 0)))) - (let - ((X16 Bool (=> X1 (>= X9 0)))) - (let - ((X17 Bool (=> X1 (or (< X5 1) (< X9 1))))) - (let - ((X18 Bool (=> X1 (<= X5 1)))) - (let - ((X19 - Bool (=> - X1 - (= - (+ (+ (+ (+ X14 X9) X7) X5) X3) - top.res.abs_10!)))) - (let - ((X20 - Bool (=> - X1 - (= - (+ (+ (+ (+ X14 X9) X7) X5) X3) - top.res.abs_9)))) - (let - ((X21 Bool (=> X1 (not X2)))) - (and - (= - top.usr.OK! - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (and (and X21 X20) X19) X18) - X17) - X16) - X15) - X13) - X12) - X11) - X10) - X8) - X6) - X4)) - (= top.res.abs_9! (+ (+ (+ (+ X14 X9) X7) X5) X3)) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_4! - top.res.inst_3! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_1! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid! - top.res.abs_10! - top.res.inst_0! - top.usr.init_invalid - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!)))))))))))))))))))))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (- (- X5 1) X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (- (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_5_a_0)) (let ((X3 top.res.abs_4_a_0)) (let ((X4 (=> X1 (<= X3 top.res.abs_10_a_0)))) (let ((X5 top.res.abs_3_a_0)) (let ((X6 (=> X1 (<= X5 top.res.abs_10_a_0)))) (let ((X7 top.res.abs_2_a_0)) (let ((X8 (=> X1 (<= X7 top.res.abs_10_a_0)))) (let ((X9 top.res.abs_1_a_0)) (let ((X10 (=> X1 (<= X9 top.res.abs_10_a_0)))) (let ((X11 (=> X1 (>= X3 0)))) (let ((X12 (=> X1 (>= X5 0)))) (let ((X13 (=> X1 (>= X7 0)))) (let ((X14 top.res.abs_0_a_0)) (let ((X15 (=> X1 (>= X14 0)))) (let ((X16 (=> X1 (>= X9 0)))) (let ((X17 (=> X1 (or (< X5 1) (< X9 1))))) (let ((X18 (=> X1 (<= X5 1)))) (let ((X19 (=> X1 (= (+ (+ (+ (+ X14 X9) X7) X5) X3) top.res.abs_10_a_0)))) (let ((X20 true)) (let ((X21 (=> X1 (not X2)))) (and (= top.usr.OK_a_0 (and (and (and (and (and (and (and (and (and (and (and (and (and X21 X20) X19) X18) X17) X16) X15) X13) X12) X11) X10) X8) X6) X4)) (= top.res.abs_9_a_0 (+ (+ (+ (+ X14 X9) X7) X5) X3)) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))))))))))))))))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.abs_10_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_5_a_1)) (let ((X3 top.res.abs_4_a_1)) (let ((X4 (=> X1 (<= X3 top.res.abs_10_a_1)))) (let ((X5 top.res.abs_3_a_1)) (let ((X6 (=> X1 (<= X5 top.res.abs_10_a_1)))) (let ((X7 top.res.abs_2_a_1)) (let ((X8 (=> X1 (<= X7 top.res.abs_10_a_1)))) (let ((X9 top.res.abs_1_a_1)) (let ((X10 (=> X1 (<= X9 top.res.abs_10_a_1)))) (let ((X11 (=> X1 (>= X3 0)))) (let ((X12 (=> X1 (>= X5 0)))) (let ((X13 (=> X1 (>= X7 0)))) (let ((X14 top.res.abs_0_a_1)) (let ((X15 (=> X1 (>= X14 0)))) (let ((X16 (=> X1 (>= X9 0)))) (let ((X17 (=> X1 (or (< X5 1) (< X9 1))))) (let ((X18 (=> X1 (<= X5 1)))) (let ((X19 (=> X1 (= (+ (+ (+ (+ X14 X9) X7) X5) X3) top.res.abs_10_a_1)))) (let ((X20 (=> X1 (= (+ (+ (+ (+ X14 X9) X7) X5) X3) top.res.abs_9_a_0)))) (let ((X21 (=> X1 (not X2)))) (and (= top.usr.OK_a_1 (and (and (and (and (and (and (and (and (and (and (and (and (and X21 X20) X19) X18) X17) X16) X15) X13) X12) X11) X10) X8) X6) X4)) (= top.res.abs_9_a_1 (+ (+ (+ (+ X14 X9) X7) X5) X3)) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.usr.init_invalid_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))))))))))))))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_5)) (let ((X3 top.res.abs_4)) (let ((X4 (=> X1 (<= X3 top.res.abs_10)))) (let ((X5 top.res.abs_3)) (let ((X6 (=> X1 (<= X5 top.res.abs_10)))) (let ((X7 top.res.abs_2)) (let ((X8 (=> X1 (<= X7 top.res.abs_10)))) (let ((X9 top.res.abs_1)) (let ((X10 (=> X1 (<= X9 top.res.abs_10)))) (let ((X11 (=> X1 (>= X3 0)))) (let ((X12 (=> X1 (>= X5 0)))) (let ((X13 (=> X1 (>= X7 0)))) (let ((X14 top.res.abs_0)) (let ((X15 (=> X1 (>= X14 0)))) (let ((X16 (=> X1 (>= X9 0)))) (let ((X17 (=> X1 (or (< X5 1) (< X9 1))))) (let ((X18 (=> X1 (<= X5 1)))) (let ((X19 (=> X1 (= (+ (+ (+ (+ X14 X9) X7) X5) X3) top.res.abs_10)))) (let ((X20 true)) (let ((X21 (=> X1 (not X2)))) (and (= top.usr.OK (and (and (and (and (and (and (and (and (and (and (and (and (and X21 X20) X19) X18) X17) X16) X15) X13) X12) X11) X10) X8) X6) X4)) (= top.res.abs_9 (+ (+ (+ (+ X14 X9) X7) X5) X3)) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid top.res.abs_10 top.res.inst_0) top.res.init_flag)))))))))))))))))))))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.abs_10! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_5!)) (let ((X3 top.res.abs_4!)) (let ((X4 (=> X1 (<= X3 top.res.abs_10!)))) (let ((X5 top.res.abs_3!)) (let ((X6 (=> X1 (<= X5 top.res.abs_10!)))) (let ((X7 top.res.abs_2!)) (let ((X8 (=> X1 (<= X7 top.res.abs_10!)))) (let ((X9 top.res.abs_1!)) (let ((X10 (=> X1 (<= X9 top.res.abs_10!)))) (let ((X11 (=> X1 (>= X3 0)))) (let ((X12 (=> X1 (>= X5 0)))) (let ((X13 (=> X1 (>= X7 0)))) (let ((X14 top.res.abs_0!)) (let ((X15 (=> X1 (>= X14 0)))) (let ((X16 (=> X1 (>= X9 0)))) (let ((X17 (=> X1 (or (< X5 1) (< X9 1))))) (let ((X18 (=> X1 (<= X5 1)))) (let ((X19 (=> X1 (= (+ (+ (+ (+ X14 X9) X7) X5) X3) top.res.abs_10!)))) (let ((X20 (=> X1 (= (+ (+ (+ (+ X14 X9) X7) X5) X3) top.res.abs_9)))) (let ((X21 (=> X1 (not X2)))) (and (= top.usr.OK! (and (and (and (and (and (and (and (and (and (and (and (and (and X21 X20) X19) X18) X17) X16) X15) X13) X12) X11) X10) X8) X6) X4)) (= top.res.abs_9! (+ (+ (+ (+ X14 X9) X7) X5) X3)) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_4! top.res.inst_3! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_2! top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_1! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid! top.res.abs_10! top.res.inst_0! top.usr.init_invalid top.res.abs_10 top.res.inst_0) (not top.res.init_flag!)))))))))))))))))))))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_all_e1_4022_e1_1759.sl b/benchmarks/LIA/Lustre/DRAGON_all_e1_4022_e1_1759.sl index 5c52a1f..3c990bb 100644 --- a/benchmarks/LIA/Lustre/DRAGON_all_e1_4022_e1_1759.sl +++ b/benchmarks/LIA/Lustre/DRAGON_all_e1_4022_e1_1759.sl @@ -1,2088 +1,66 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ (+ (+ X5 1) X4) 1) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ (+ (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) 1) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Bool top.res.abs_5_a_0)) - (let - ((X3 Int top.res.abs_4_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Int top.res.abs_2_a_0)) - (let - ((X6 Int top.res.abs_1_a_0)) - (let - ((X7 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_0)) - (>= X7 0)))) - (= top.res.abs_9_a_0 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.abs_10_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Bool top.res.abs_5_a_1)) - (let - ((X3 Int top.res.abs_4_a_1)) - (let - ((X4 Int top.res.abs_3_a_1)) - (let - ((X5 Int top.res.abs_2_a_1)) - (let - ((X6 Int top.res.abs_1_a_1)) - (let - ((X7 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (and - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9_a_0)) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_1)) - (>= X7 0)))) - (= top.res.abs_9_a_1 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.abs_10 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Bool top.res.abs_5)) - (let - ((X3 Int top.res.abs_4)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Int top.res.abs_2)) - (let - ((X6 Int top.res.abs_1)) - (let - ((X7 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> - X1 - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10)) - (>= X7 0)))) - (= top.res.abs_9 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid - top.res.abs_10 - top.res.inst_0) - top.res.init_flag))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.abs_10! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Bool top.res.abs_5!)) - (let - ((X3 Int top.res.abs_4!)) - (let - ((X4 Int top.res.abs_3!)) - (let - ((X5 Int top.res.abs_2!)) - (let - ((X6 Int top.res.abs_1!)) - (let - ((X7 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> - X1 - (and - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9)) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10!)) - (>= X7 0)))) - (= top.res.abs_9! (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_4! - top.res.inst_3! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_1! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid! - top.res.abs_10! - top.res.inst_0! - top.usr.init_invalid - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!)))))))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ (+ (+ X5 1) X4) 1) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ (+ (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_5_a_0)) (let ((X3 top.res.abs_4_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_2_a_0)) (let ((X6 top.res.abs_1_a_0)) (let ((X7 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_0)) (>= X7 0)))) (= top.res.abs_9_a_0 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.abs_10_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_5_a_1)) (let ((X3 top.res.abs_4_a_1)) (let ((X4 top.res.abs_3_a_1)) (let ((X5 top.res.abs_2_a_1)) (let ((X6 top.res.abs_1_a_1)) (let ((X7 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9_a_0)) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_1)) (>= X7 0)))) (= top.res.abs_9_a_1 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.usr.init_invalid_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_5)) (let ((X3 top.res.abs_4)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_2)) (let ((X6 top.res.abs_1)) (let ((X7 top.res.abs_0)) (and (= top.usr.OK (=> X1 (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10)) (>= X7 0)))) (= top.res.abs_9 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid top.res.abs_10 top.res.inst_0) top.res.init_flag)))))))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.abs_10! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_5!)) (let ((X3 top.res.abs_4!)) (let ((X4 top.res.abs_3!)) (let ((X5 top.res.abs_2!)) (let ((X6 top.res.abs_1!)) (let ((X7 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9)) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10!)) (>= X7 0)))) (= top.res.abs_9! (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_4! top.res.inst_3! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_2! top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_1! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid! top.res.abs_10! top.res.inst_0! top.usr.init_invalid top.res.abs_10 top.res.inst_0) (not top.res.init_flag!)))))))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_all_e1_4022_e2_267.sl b/benchmarks/LIA/Lustre/DRAGON_all_e1_4022_e2_267.sl index e7a1cde..4ead2c9 100644 --- a/benchmarks/LIA/Lustre/DRAGON_all_e1_4022_e2_267.sl +++ b/benchmarks/LIA/Lustre/DRAGON_all_e1_4022_e2_267.sl @@ -1,2088 +1,66 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (- (+ (+ X5 1) X4) 1) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (- (+ (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) 1) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Bool top.res.abs_5_a_0)) - (let - ((X3 Int top.res.abs_4_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Int top.res.abs_2_a_0)) - (let - ((X6 Int top.res.abs_1_a_0)) - (let - ((X7 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_0)) - (>= X7 0)))) - (= top.res.abs_9_a_0 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.abs_10_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Bool top.res.abs_5_a_1)) - (let - ((X3 Int top.res.abs_4_a_1)) - (let - ((X4 Int top.res.abs_3_a_1)) - (let - ((X5 Int top.res.abs_2_a_1)) - (let - ((X6 Int top.res.abs_1_a_1)) - (let - ((X7 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (and - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9_a_0)) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_1)) - (>= X7 0)))) - (= top.res.abs_9_a_1 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.abs_10 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Bool top.res.abs_5)) - (let - ((X3 Int top.res.abs_4)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Int top.res.abs_2)) - (let - ((X6 Int top.res.abs_1)) - (let - ((X7 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> - X1 - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10)) - (>= X7 0)))) - (= top.res.abs_9 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid - top.res.abs_10 - top.res.inst_0) - top.res.init_flag))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.abs_10! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Bool top.res.abs_5!)) - (let - ((X3 Int top.res.abs_4!)) - (let - ((X4 Int top.res.abs_3!)) - (let - ((X5 Int top.res.abs_2!)) - (let - ((X6 Int top.res.abs_1!)) - (let - ((X7 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> - X1 - (and - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9)) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10!)) - (>= X7 0)))) - (= top.res.abs_9! (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_4! - top.res.inst_3! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_1! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid! - top.res.abs_10! - top.res.inst_0! - top.usr.init_invalid - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!)))))))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (- (+ (+ X5 1) X4) 1) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (- (+ (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_5_a_0)) (let ((X3 top.res.abs_4_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_2_a_0)) (let ((X6 top.res.abs_1_a_0)) (let ((X7 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_0)) (>= X7 0)))) (= top.res.abs_9_a_0 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.abs_10_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_5_a_1)) (let ((X3 top.res.abs_4_a_1)) (let ((X4 top.res.abs_3_a_1)) (let ((X5 top.res.abs_2_a_1)) (let ((X6 top.res.abs_1_a_1)) (let ((X7 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9_a_0)) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_1)) (>= X7 0)))) (= top.res.abs_9_a_1 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.usr.init_invalid_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_5)) (let ((X3 top.res.abs_4)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_2)) (let ((X6 top.res.abs_1)) (let ((X7 top.res.abs_0)) (and (= top.usr.OK (=> X1 (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10)) (>= X7 0)))) (= top.res.abs_9 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid top.res.abs_10 top.res.inst_0) top.res.init_flag)))))))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.abs_10! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_5!)) (let ((X3 top.res.abs_4!)) (let ((X4 top.res.abs_3!)) (let ((X5 top.res.abs_2!)) (let ((X6 top.res.abs_1!)) (let ((X7 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9)) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10!)) (>= X7 0)))) (= top.res.abs_9! (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_4! top.res.inst_3! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_2! top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_1! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid! top.res.abs_10! top.res.inst_0! top.usr.init_invalid top.res.abs_10 top.res.inst_0) (not top.res.init_flag!)))))))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_all_e1_4022_e3_3628.sl b/benchmarks/LIA/Lustre/DRAGON_all_e1_4022_e3_3628.sl index e8a6ebd..b9771a2 100644 --- a/benchmarks/LIA/Lustre/DRAGON_all_e1_4022_e3_3628.sl +++ b/benchmarks/LIA/Lustre/DRAGON_all_e1_4022_e3_3628.sl @@ -1,2088 +1,66 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (- (+ (+ X5 1) X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (- - (+ (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Bool top.res.abs_5_a_0)) - (let - ((X3 Int top.res.abs_4_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Int top.res.abs_2_a_0)) - (let - ((X6 Int top.res.abs_1_a_0)) - (let - ((X7 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_0)) - (>= X7 0)))) - (= top.res.abs_9_a_0 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.abs_10_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Bool top.res.abs_5_a_1)) - (let - ((X3 Int top.res.abs_4_a_1)) - (let - ((X4 Int top.res.abs_3_a_1)) - (let - ((X5 Int top.res.abs_2_a_1)) - (let - ((X6 Int top.res.abs_1_a_1)) - (let - ((X7 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (and - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9_a_0)) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_1)) - (>= X7 0)))) - (= top.res.abs_9_a_1 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.abs_10 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Bool top.res.abs_5)) - (let - ((X3 Int top.res.abs_4)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Int top.res.abs_2)) - (let - ((X6 Int top.res.abs_1)) - (let - ((X7 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> - X1 - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10)) - (>= X7 0)))) - (= top.res.abs_9 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid - top.res.abs_10 - top.res.inst_0) - top.res.init_flag))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.abs_10! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Bool top.res.abs_5!)) - (let - ((X3 Int top.res.abs_4!)) - (let - ((X4 Int top.res.abs_3!)) - (let - ((X5 Int top.res.abs_2!)) - (let - ((X6 Int top.res.abs_1!)) - (let - ((X7 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> - X1 - (and - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9)) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10!)) - (>= X7 0)))) - (= top.res.abs_9! (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_4! - top.res.inst_3! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_1! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid! - top.res.abs_10! - top.res.inst_0! - top.usr.init_invalid - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!)))))))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (- (+ (+ X5 1) X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (- (+ (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_5_a_0)) (let ((X3 top.res.abs_4_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_2_a_0)) (let ((X6 top.res.abs_1_a_0)) (let ((X7 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_0)) (>= X7 0)))) (= top.res.abs_9_a_0 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.abs_10_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_5_a_1)) (let ((X3 top.res.abs_4_a_1)) (let ((X4 top.res.abs_3_a_1)) (let ((X5 top.res.abs_2_a_1)) (let ((X6 top.res.abs_1_a_1)) (let ((X7 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9_a_0)) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_1)) (>= X7 0)))) (= top.res.abs_9_a_1 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.usr.init_invalid_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_5)) (let ((X3 top.res.abs_4)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_2)) (let ((X6 top.res.abs_1)) (let ((X7 top.res.abs_0)) (and (= top.usr.OK (=> X1 (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10)) (>= X7 0)))) (= top.res.abs_9 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid top.res.abs_10 top.res.inst_0) top.res.init_flag)))))))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.abs_10! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_5!)) (let ((X3 top.res.abs_4!)) (let ((X4 top.res.abs_3!)) (let ((X5 top.res.abs_2!)) (let ((X6 top.res.abs_1!)) (let ((X7 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9)) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10!)) (>= X7 0)))) (= top.res.abs_9! (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_4! top.res.inst_3! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_2! top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_1! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid! top.res.abs_10! top.res.inst_0! top.usr.init_invalid top.res.abs_10 top.res.inst_0) (not top.res.init_flag!)))))))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_all_e1_4037.sl b/benchmarks/LIA/Lustre/DRAGON_all_e1_4037.sl index 11aaa21..530c97b 100644 --- a/benchmarks/LIA/Lustre/DRAGON_all_e1_4037.sl +++ b/benchmarks/LIA/Lustre/DRAGON_all_e1_4037.sl @@ -1,2088 +1,66 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ (+ X5 1) X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Bool top.res.abs_5_a_0)) - (let - ((X3 Int top.res.abs_4_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Int top.res.abs_2_a_0)) - (let - ((X6 Int top.res.abs_1_a_0)) - (let - ((X7 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_0)) - (>= X7 0)))) - (= top.res.abs_9_a_0 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.abs_10_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Bool top.res.abs_5_a_1)) - (let - ((X3 Int top.res.abs_4_a_1)) - (let - ((X4 Int top.res.abs_3_a_1)) - (let - ((X5 Int top.res.abs_2_a_1)) - (let - ((X6 Int top.res.abs_1_a_1)) - (let - ((X7 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (and - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9_a_0)) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_1)) - (>= X7 0)))) - (= top.res.abs_9_a_1 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.abs_10 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Bool top.res.abs_5)) - (let - ((X3 Int top.res.abs_4)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Int top.res.abs_2)) - (let - ((X6 Int top.res.abs_1)) - (let - ((X7 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> - X1 - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10)) - (>= X7 0)))) - (= top.res.abs_9 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid - top.res.abs_10 - top.res.inst_0) - top.res.init_flag))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.abs_10! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Bool top.res.abs_5!)) - (let - ((X3 Int top.res.abs_4!)) - (let - ((X4 Int top.res.abs_3!)) - (let - ((X5 Int top.res.abs_2!)) - (let - ((X6 Int top.res.abs_1!)) - (let - ((X7 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> - X1 - (and - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9)) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10!)) - (>= X7 0)))) - (= top.res.abs_9! (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_4! - top.res.inst_3! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_1! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid! - top.res.abs_10! - top.res.inst_0! - top.usr.init_invalid - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!)))))))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ (+ X5 1) X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_5_a_0)) (let ((X3 top.res.abs_4_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_2_a_0)) (let ((X6 top.res.abs_1_a_0)) (let ((X7 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_0)) (>= X7 0)))) (= top.res.abs_9_a_0 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.abs_10_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_5_a_1)) (let ((X3 top.res.abs_4_a_1)) (let ((X4 top.res.abs_3_a_1)) (let ((X5 top.res.abs_2_a_1)) (let ((X6 top.res.abs_1_a_1)) (let ((X7 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9_a_0)) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_1)) (>= X7 0)))) (= top.res.abs_9_a_1 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.usr.init_invalid_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_5)) (let ((X3 top.res.abs_4)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_2)) (let ((X6 top.res.abs_1)) (let ((X7 top.res.abs_0)) (and (= top.usr.OK (=> X1 (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10)) (>= X7 0)))) (= top.res.abs_9 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid top.res.abs_10 top.res.inst_0) top.res.init_flag)))))))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.abs_10! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_5!)) (let ((X3 top.res.abs_4!)) (let ((X4 top.res.abs_3!)) (let ((X5 top.res.abs_2!)) (let ((X6 top.res.abs_1!)) (let ((X7 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9)) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10!)) (>= X7 0)))) (= top.res.abs_9! (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_4! top.res.inst_3! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_2! top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_1! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid! top.res.abs_10! top.res.inst_0! top.usr.init_invalid top.res.abs_10 top.res.inst_0) (not top.res.init_flag!)))))))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_all_e2_6104.sl b/benchmarks/LIA/Lustre/DRAGON_all_e2_6104.sl index 7c11650..fb5c244 100644 --- a/benchmarks/LIA/Lustre/DRAGON_all_e2_6104.sl +++ b/benchmarks/LIA/Lustre/DRAGON_all_e2_6104.sl @@ -1,2088 +1,66 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ (- X5 1) X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Bool top.res.abs_5_a_0)) - (let - ((X3 Int top.res.abs_4_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Int top.res.abs_2_a_0)) - (let - ((X6 Int top.res.abs_1_a_0)) - (let - ((X7 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_0)) - (>= X7 0)))) - (= top.res.abs_9_a_0 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.abs_10_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Bool top.res.abs_5_a_1)) - (let - ((X3 Int top.res.abs_4_a_1)) - (let - ((X4 Int top.res.abs_3_a_1)) - (let - ((X5 Int top.res.abs_2_a_1)) - (let - ((X6 Int top.res.abs_1_a_1)) - (let - ((X7 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (and - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9_a_0)) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_1)) - (>= X7 0)))) - (= top.res.abs_9_a_1 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.abs_10 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Bool top.res.abs_5)) - (let - ((X3 Int top.res.abs_4)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Int top.res.abs_2)) - (let - ((X6 Int top.res.abs_1)) - (let - ((X7 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> - X1 - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10)) - (>= X7 0)))) - (= top.res.abs_9 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid - top.res.abs_10 - top.res.inst_0) - top.res.init_flag))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.abs_10! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Bool top.res.abs_5!)) - (let - ((X3 Int top.res.abs_4!)) - (let - ((X4 Int top.res.abs_3!)) - (let - ((X5 Int top.res.abs_2!)) - (let - ((X6 Int top.res.abs_1!)) - (let - ((X7 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> - X1 - (and - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9)) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10!)) - (>= X7 0)))) - (= top.res.abs_9! (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_4! - top.res.inst_3! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_1! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid! - top.res.abs_10! - top.res.inst_0! - top.usr.init_invalid - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!)))))))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ (- X5 1) X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_5_a_0)) (let ((X3 top.res.abs_4_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_2_a_0)) (let ((X6 top.res.abs_1_a_0)) (let ((X7 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_0)) (>= X7 0)))) (= top.res.abs_9_a_0 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.abs_10_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_5_a_1)) (let ((X3 top.res.abs_4_a_1)) (let ((X4 top.res.abs_3_a_1)) (let ((X5 top.res.abs_2_a_1)) (let ((X6 top.res.abs_1_a_1)) (let ((X7 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9_a_0)) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_1)) (>= X7 0)))) (= top.res.abs_9_a_1 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.usr.init_invalid_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_5)) (let ((X3 top.res.abs_4)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_2)) (let ((X6 top.res.abs_1)) (let ((X7 top.res.abs_0)) (and (= top.usr.OK (=> X1 (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10)) (>= X7 0)))) (= top.res.abs_9 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid top.res.abs_10 top.res.inst_0) top.res.init_flag)))))))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.abs_10! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_5!)) (let ((X3 top.res.abs_4!)) (let ((X4 top.res.abs_3!)) (let ((X5 top.res.abs_2!)) (let ((X6 top.res.abs_1!)) (let ((X7 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9)) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10!)) (>= X7 0)))) (= top.res.abs_9! (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_4! top.res.inst_3! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_2! top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_1! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid! top.res.abs_10! top.res.inst_0! top.usr.init_invalid top.res.abs_10 top.res.inst_0) (not top.res.init_flag!)))))))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_all_e2_6104_e1_6205.sl b/benchmarks/LIA/Lustre/DRAGON_all_e2_6104_e1_6205.sl index 56b7c2b..6412e10 100644 --- a/benchmarks/LIA/Lustre/DRAGON_all_e2_6104_e1_6205.sl +++ b/benchmarks/LIA/Lustre/DRAGON_all_e2_6104_e1_6205.sl @@ -1,2088 +1,66 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ (+ (- X5 1) X4) 1) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) 1) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Bool top.res.abs_5_a_0)) - (let - ((X3 Int top.res.abs_4_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Int top.res.abs_2_a_0)) - (let - ((X6 Int top.res.abs_1_a_0)) - (let - ((X7 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_0)) - (>= X7 0)))) - (= top.res.abs_9_a_0 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.abs_10_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Bool top.res.abs_5_a_1)) - (let - ((X3 Int top.res.abs_4_a_1)) - (let - ((X4 Int top.res.abs_3_a_1)) - (let - ((X5 Int top.res.abs_2_a_1)) - (let - ((X6 Int top.res.abs_1_a_1)) - (let - ((X7 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (and - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9_a_0)) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_1)) - (>= X7 0)))) - (= top.res.abs_9_a_1 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.abs_10 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Bool top.res.abs_5)) - (let - ((X3 Int top.res.abs_4)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Int top.res.abs_2)) - (let - ((X6 Int top.res.abs_1)) - (let - ((X7 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> - X1 - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10)) - (>= X7 0)))) - (= top.res.abs_9 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid - top.res.abs_10 - top.res.inst_0) - top.res.init_flag))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.abs_10! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Bool top.res.abs_5!)) - (let - ((X3 Int top.res.abs_4!)) - (let - ((X4 Int top.res.abs_3!)) - (let - ((X5 Int top.res.abs_2!)) - (let - ((X6 Int top.res.abs_1!)) - (let - ((X7 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> - X1 - (and - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9)) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10!)) - (>= X7 0)))) - (= top.res.abs_9! (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_4! - top.res.inst_3! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_1! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid! - top.res.abs_10! - top.res.inst_0! - top.usr.init_invalid - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!)))))))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ (+ (- X5 1) X4) 1) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_5_a_0)) (let ((X3 top.res.abs_4_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_2_a_0)) (let ((X6 top.res.abs_1_a_0)) (let ((X7 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_0)) (>= X7 0)))) (= top.res.abs_9_a_0 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.abs_10_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_5_a_1)) (let ((X3 top.res.abs_4_a_1)) (let ((X4 top.res.abs_3_a_1)) (let ((X5 top.res.abs_2_a_1)) (let ((X6 top.res.abs_1_a_1)) (let ((X7 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9_a_0)) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_1)) (>= X7 0)))) (= top.res.abs_9_a_1 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.usr.init_invalid_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_5)) (let ((X3 top.res.abs_4)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_2)) (let ((X6 top.res.abs_1)) (let ((X7 top.res.abs_0)) (and (= top.usr.OK (=> X1 (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10)) (>= X7 0)))) (= top.res.abs_9 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid top.res.abs_10 top.res.inst_0) top.res.init_flag)))))))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.abs_10! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_5!)) (let ((X3 top.res.abs_4!)) (let ((X4 top.res.abs_3!)) (let ((X5 top.res.abs_2!)) (let ((X6 top.res.abs_1!)) (let ((X7 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9)) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10!)) (>= X7 0)))) (= top.res.abs_9! (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_4! top.res.inst_3! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_2! top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_1! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid! top.res.abs_10! top.res.inst_0! top.usr.init_invalid top.res.abs_10 top.res.inst_0) (not top.res.init_flag!)))))))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_all_e2_6104_e2_3308.sl b/benchmarks/LIA/Lustre/DRAGON_all_e2_6104_e2_3308.sl index 1843608..c8c9024 100644 --- a/benchmarks/LIA/Lustre/DRAGON_all_e2_6104_e2_3308.sl +++ b/benchmarks/LIA/Lustre/DRAGON_all_e2_6104_e2_3308.sl @@ -1,2088 +1,66 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (- (+ (- X5 1) X4) 1) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (- (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) 1) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Bool top.res.abs_5_a_0)) - (let - ((X3 Int top.res.abs_4_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Int top.res.abs_2_a_0)) - (let - ((X6 Int top.res.abs_1_a_0)) - (let - ((X7 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_0)) - (>= X7 0)))) - (= top.res.abs_9_a_0 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.abs_10_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Bool top.res.abs_5_a_1)) - (let - ((X3 Int top.res.abs_4_a_1)) - (let - ((X4 Int top.res.abs_3_a_1)) - (let - ((X5 Int top.res.abs_2_a_1)) - (let - ((X6 Int top.res.abs_1_a_1)) - (let - ((X7 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (and - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9_a_0)) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_1)) - (>= X7 0)))) - (= top.res.abs_9_a_1 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.abs_10 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Bool top.res.abs_5)) - (let - ((X3 Int top.res.abs_4)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Int top.res.abs_2)) - (let - ((X6 Int top.res.abs_1)) - (let - ((X7 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> - X1 - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10)) - (>= X7 0)))) - (= top.res.abs_9 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid - top.res.abs_10 - top.res.inst_0) - top.res.init_flag))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.abs_10! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Bool top.res.abs_5!)) - (let - ((X3 Int top.res.abs_4!)) - (let - ((X4 Int top.res.abs_3!)) - (let - ((X5 Int top.res.abs_2!)) - (let - ((X6 Int top.res.abs_1!)) - (let - ((X7 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> - X1 - (and - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9)) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10!)) - (>= X7 0)))) - (= top.res.abs_9! (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_4! - top.res.inst_3! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_1! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid! - top.res.abs_10! - top.res.inst_0! - top.usr.init_invalid - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!)))))))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (- (+ (- X5 1) X4) 1) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (- (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_5_a_0)) (let ((X3 top.res.abs_4_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_2_a_0)) (let ((X6 top.res.abs_1_a_0)) (let ((X7 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_0)) (>= X7 0)))) (= top.res.abs_9_a_0 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.abs_10_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_5_a_1)) (let ((X3 top.res.abs_4_a_1)) (let ((X4 top.res.abs_3_a_1)) (let ((X5 top.res.abs_2_a_1)) (let ((X6 top.res.abs_1_a_1)) (let ((X7 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9_a_0)) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_1)) (>= X7 0)))) (= top.res.abs_9_a_1 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.usr.init_invalid_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_5)) (let ((X3 top.res.abs_4)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_2)) (let ((X6 top.res.abs_1)) (let ((X7 top.res.abs_0)) (and (= top.usr.OK (=> X1 (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10)) (>= X7 0)))) (= top.res.abs_9 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid top.res.abs_10 top.res.inst_0) top.res.init_flag)))))))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.abs_10! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_5!)) (let ((X3 top.res.abs_4!)) (let ((X4 top.res.abs_3!)) (let ((X5 top.res.abs_2!)) (let ((X6 top.res.abs_1!)) (let ((X7 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9)) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10!)) (>= X7 0)))) (= top.res.abs_9! (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_4! top.res.inst_3! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_2! top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_1! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid! top.res.abs_10! top.res.inst_0! top.usr.init_invalid top.res.abs_10 top.res.inst_0) (not top.res.init_flag!)))))))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_all_e2_6104_e3_2607.sl b/benchmarks/LIA/Lustre/DRAGON_all_e2_6104_e3_2607.sl index 2d1dfc2..c4a7a2e 100644 --- a/benchmarks/LIA/Lustre/DRAGON_all_e2_6104_e3_2607.sl +++ b/benchmarks/LIA/Lustre/DRAGON_all_e2_6104_e3_2607.sl @@ -1,2088 +1,66 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (- (+ (- X5 1) X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (- - (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Bool top.res.abs_5_a_0)) - (let - ((X3 Int top.res.abs_4_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Int top.res.abs_2_a_0)) - (let - ((X6 Int top.res.abs_1_a_0)) - (let - ((X7 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_0)) - (>= X7 0)))) - (= top.res.abs_9_a_0 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.abs_10_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Bool top.res.abs_5_a_1)) - (let - ((X3 Int top.res.abs_4_a_1)) - (let - ((X4 Int top.res.abs_3_a_1)) - (let - ((X5 Int top.res.abs_2_a_1)) - (let - ((X6 Int top.res.abs_1_a_1)) - (let - ((X7 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (and - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9_a_0)) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_1)) - (>= X7 0)))) - (= top.res.abs_9_a_1 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.abs_10 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Bool top.res.abs_5)) - (let - ((X3 Int top.res.abs_4)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Int top.res.abs_2)) - (let - ((X6 Int top.res.abs_1)) - (let - ((X7 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> - X1 - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10)) - (>= X7 0)))) - (= top.res.abs_9 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid - top.res.abs_10 - top.res.inst_0) - top.res.init_flag))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.abs_10! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Bool top.res.abs_5!)) - (let - ((X3 Int top.res.abs_4!)) - (let - ((X4 Int top.res.abs_3!)) - (let - ((X5 Int top.res.abs_2!)) - (let - ((X6 Int top.res.abs_1!)) - (let - ((X7 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> - X1 - (and - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9)) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10!)) - (>= X7 0)))) - (= top.res.abs_9! (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_4! - top.res.inst_3! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_1! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid! - top.res.abs_10! - top.res.inst_0! - top.usr.init_invalid - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!)))))))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (- (+ (- X5 1) X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (- (+ (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_5_a_0)) (let ((X3 top.res.abs_4_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_2_a_0)) (let ((X6 top.res.abs_1_a_0)) (let ((X7 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_0)) (>= X7 0)))) (= top.res.abs_9_a_0 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.abs_10_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_5_a_1)) (let ((X3 top.res.abs_4_a_1)) (let ((X4 top.res.abs_3_a_1)) (let ((X5 top.res.abs_2_a_1)) (let ((X6 top.res.abs_1_a_1)) (let ((X7 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9_a_0)) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_1)) (>= X7 0)))) (= top.res.abs_9_a_1 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.usr.init_invalid_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_5)) (let ((X3 top.res.abs_4)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_2)) (let ((X6 top.res.abs_1)) (let ((X7 top.res.abs_0)) (and (= top.usr.OK (=> X1 (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10)) (>= X7 0)))) (= top.res.abs_9 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid top.res.abs_10 top.res.inst_0) top.res.init_flag)))))))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.abs_10! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_5!)) (let ((X3 top.res.abs_4!)) (let ((X4 top.res.abs_3!)) (let ((X5 top.res.abs_2!)) (let ((X6 top.res.abs_1!)) (let ((X7 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9)) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10!)) (>= X7 0)))) (= top.res.abs_9! (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_4! top.res.inst_3! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_2! top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_1! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid! top.res.abs_10! top.res.inst_0! top.usr.init_invalid top.res.abs_10 top.res.inst_0) (not top.res.init_flag!)))))))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_all_e3_4821_e1_1318.sl b/benchmarks/LIA/Lustre/DRAGON_all_e3_4821_e1_1318.sl index d9126f7..86bc75e 100644 --- a/benchmarks/LIA/Lustre/DRAGON_all_e3_4821_e1_1318.sl +++ b/benchmarks/LIA/Lustre/DRAGON_all_e3_4821_e1_1318.sl @@ -1,2088 +1,66 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (+ (- X5 X4) 1) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ (- DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) 1) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Bool top.res.abs_5_a_0)) - (let - ((X3 Int top.res.abs_4_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Int top.res.abs_2_a_0)) - (let - ((X6 Int top.res.abs_1_a_0)) - (let - ((X7 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_0)) - (>= X7 0)))) - (= top.res.abs_9_a_0 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.abs_10_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Bool top.res.abs_5_a_1)) - (let - ((X3 Int top.res.abs_4_a_1)) - (let - ((X4 Int top.res.abs_3_a_1)) - (let - ((X5 Int top.res.abs_2_a_1)) - (let - ((X6 Int top.res.abs_1_a_1)) - (let - ((X7 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (and - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9_a_0)) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_1)) - (>= X7 0)))) - (= top.res.abs_9_a_1 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.abs_10 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Bool top.res.abs_5)) - (let - ((X3 Int top.res.abs_4)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Int top.res.abs_2)) - (let - ((X6 Int top.res.abs_1)) - (let - ((X7 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> - X1 - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10)) - (>= X7 0)))) - (= top.res.abs_9 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid - top.res.abs_10 - top.res.inst_0) - top.res.init_flag))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.abs_10! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Bool top.res.abs_5!)) - (let - ((X3 Int top.res.abs_4!)) - (let - ((X4 Int top.res.abs_3!)) - (let - ((X5 Int top.res.abs_2!)) - (let - ((X6 Int top.res.abs_1!)) - (let - ((X7 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> - X1 - (and - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9)) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10!)) - (>= X7 0)))) - (= top.res.abs_9! (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_4! - top.res.inst_3! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_1! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid! - top.res.abs_10! - top.res.inst_0! - top.usr.init_invalid - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!)))))))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (+ (- X5 X4) 1) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ (- DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_5_a_0)) (let ((X3 top.res.abs_4_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_2_a_0)) (let ((X6 top.res.abs_1_a_0)) (let ((X7 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_0)) (>= X7 0)))) (= top.res.abs_9_a_0 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.abs_10_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_5_a_1)) (let ((X3 top.res.abs_4_a_1)) (let ((X4 top.res.abs_3_a_1)) (let ((X5 top.res.abs_2_a_1)) (let ((X6 top.res.abs_1_a_1)) (let ((X7 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9_a_0)) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_1)) (>= X7 0)))) (= top.res.abs_9_a_1 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.usr.init_invalid_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_5)) (let ((X3 top.res.abs_4)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_2)) (let ((X6 top.res.abs_1)) (let ((X7 top.res.abs_0)) (and (= top.usr.OK (=> X1 (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10)) (>= X7 0)))) (= top.res.abs_9 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid top.res.abs_10 top.res.inst_0) top.res.init_flag)))))))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.abs_10! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_5!)) (let ((X3 top.res.abs_4!)) (let ((X4 top.res.abs_3!)) (let ((X5 top.res.abs_2!)) (let ((X6 top.res.abs_1!)) (let ((X7 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9)) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10!)) (>= X7 0)))) (= top.res.abs_9! (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_4! top.res.inst_3! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_2! top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_1! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid! top.res.abs_10! top.res.inst_0! top.usr.init_invalid top.res.abs_10 top.res.inst_0) (not top.res.init_flag!)))))))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_all_e3_4821_e2_1089.sl b/benchmarks/LIA/Lustre/DRAGON_all_e3_4821_e2_1089.sl index 86f0328..b870832 100644 --- a/benchmarks/LIA/Lustre/DRAGON_all_e3_4821_e2_1089.sl +++ b/benchmarks/LIA/Lustre/DRAGON_all_e3_4821_e2_1089.sl @@ -1,2088 +1,66 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (- (- X5 X4) 1) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (- (- DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) 1) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Bool top.res.abs_5_a_0)) - (let - ((X3 Int top.res.abs_4_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Int top.res.abs_2_a_0)) - (let - ((X6 Int top.res.abs_1_a_0)) - (let - ((X7 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_0)) - (>= X7 0)))) - (= top.res.abs_9_a_0 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.abs_10_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Bool top.res.abs_5_a_1)) - (let - ((X3 Int top.res.abs_4_a_1)) - (let - ((X4 Int top.res.abs_3_a_1)) - (let - ((X5 Int top.res.abs_2_a_1)) - (let - ((X6 Int top.res.abs_1_a_1)) - (let - ((X7 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (and - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9_a_0)) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_1)) - (>= X7 0)))) - (= top.res.abs_9_a_1 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.abs_10 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Bool top.res.abs_5)) - (let - ((X3 Int top.res.abs_4)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Int top.res.abs_2)) - (let - ((X6 Int top.res.abs_1)) - (let - ((X7 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> - X1 - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10)) - (>= X7 0)))) - (= top.res.abs_9 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid - top.res.abs_10 - top.res.inst_0) - top.res.init_flag))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.abs_10! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Bool top.res.abs_5!)) - (let - ((X3 Int top.res.abs_4!)) - (let - ((X4 Int top.res.abs_3!)) - (let - ((X5 Int top.res.abs_2!)) - (let - ((X6 Int top.res.abs_1!)) - (let - ((X7 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> - X1 - (and - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9)) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10!)) - (>= X7 0)))) - (= top.res.abs_9! (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_4! - top.res.inst_3! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_1! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid! - top.res.abs_10! - top.res.inst_0! - top.usr.init_invalid - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!)))))))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (- (- X5 X4) 1) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (- (- DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_5_a_0)) (let ((X3 top.res.abs_4_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_2_a_0)) (let ((X6 top.res.abs_1_a_0)) (let ((X7 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_0)) (>= X7 0)))) (= top.res.abs_9_a_0 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.abs_10_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_5_a_1)) (let ((X3 top.res.abs_4_a_1)) (let ((X4 top.res.abs_3_a_1)) (let ((X5 top.res.abs_2_a_1)) (let ((X6 top.res.abs_1_a_1)) (let ((X7 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9_a_0)) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_1)) (>= X7 0)))) (= top.res.abs_9_a_1 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.usr.init_invalid_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_5)) (let ((X3 top.res.abs_4)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_2)) (let ((X6 top.res.abs_1)) (let ((X7 top.res.abs_0)) (and (= top.usr.OK (=> X1 (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10)) (>= X7 0)))) (= top.res.abs_9 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid top.res.abs_10 top.res.inst_0) top.res.init_flag)))))))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.abs_10! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_5!)) (let ((X3 top.res.abs_4!)) (let ((X4 top.res.abs_3!)) (let ((X5 top.res.abs_2!)) (let ((X6 top.res.abs_1!)) (let ((X7 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9)) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10!)) (>= X7 0)))) (= top.res.abs_9! (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_4! top.res.inst_3! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_2! top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_1! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid! top.res.abs_10! top.res.inst_0! top.usr.init_invalid top.res.abs_10 top.res.inst_0) (not top.res.init_flag!)))))))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_all_e3_4821_e4_1791.sl b/benchmarks/LIA/Lustre/DRAGON_all_e3_4821_e4_1791.sl index 54b5d75..d7134e2 100644 --- a/benchmarks/LIA/Lustre/DRAGON_all_e3_4821_e4_1791.sl +++ b/benchmarks/LIA/Lustre/DRAGON_all_e3_4821_e4_1791.sl @@ -1,2088 +1,66 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (- (+ X5 1) X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (- (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Bool top.res.abs_5_a_0)) - (let - ((X3 Int top.res.abs_4_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Int top.res.abs_2_a_0)) - (let - ((X6 Int top.res.abs_1_a_0)) - (let - ((X7 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_0)) - (>= X7 0)))) - (= top.res.abs_9_a_0 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.abs_10_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Bool top.res.abs_5_a_1)) - (let - ((X3 Int top.res.abs_4_a_1)) - (let - ((X4 Int top.res.abs_3_a_1)) - (let - ((X5 Int top.res.abs_2_a_1)) - (let - ((X6 Int top.res.abs_1_a_1)) - (let - ((X7 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (and - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9_a_0)) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_1)) - (>= X7 0)))) - (= top.res.abs_9_a_1 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.abs_10 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Bool top.res.abs_5)) - (let - ((X3 Int top.res.abs_4)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Int top.res.abs_2)) - (let - ((X6 Int top.res.abs_1)) - (let - ((X7 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> - X1 - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10)) - (>= X7 0)))) - (= top.res.abs_9 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid - top.res.abs_10 - top.res.inst_0) - top.res.init_flag))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.abs_10! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Bool top.res.abs_5!)) - (let - ((X3 Int top.res.abs_4!)) - (let - ((X4 Int top.res.abs_3!)) - (let - ((X5 Int top.res.abs_2!)) - (let - ((X6 Int top.res.abs_1!)) - (let - ((X7 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> - X1 - (and - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9)) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10!)) - (>= X7 0)))) - (= top.res.abs_9! (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_4! - top.res.inst_3! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_1! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid! - top.res.abs_10! - top.res.inst_0! - top.usr.init_invalid - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!)))))))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (- (+ X5 1) X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (- (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_5_a_0)) (let ((X3 top.res.abs_4_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_2_a_0)) (let ((X6 top.res.abs_1_a_0)) (let ((X7 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_0)) (>= X7 0)))) (= top.res.abs_9_a_0 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.abs_10_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_5_a_1)) (let ((X3 top.res.abs_4_a_1)) (let ((X4 top.res.abs_3_a_1)) (let ((X5 top.res.abs_2_a_1)) (let ((X6 top.res.abs_1_a_1)) (let ((X7 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9_a_0)) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_1)) (>= X7 0)))) (= top.res.abs_9_a_1 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.usr.init_invalid_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_5)) (let ((X3 top.res.abs_4)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_2)) (let ((X6 top.res.abs_1)) (let ((X7 top.res.abs_0)) (and (= top.usr.OK (=> X1 (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10)) (>= X7 0)))) (= top.res.abs_9 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid top.res.abs_10 top.res.inst_0) top.res.init_flag)))))))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.abs_10! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_5!)) (let ((X3 top.res.abs_4!)) (let ((X4 top.res.abs_3!)) (let ((X5 top.res.abs_2!)) (let ((X6 top.res.abs_1!)) (let ((X7 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9)) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10!)) (>= X7 0)))) (= top.res.abs_9! (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_4! top.res.inst_3! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_2! top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_1! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid! top.res.abs_10! top.res.inst_0! top.usr.init_invalid top.res.abs_10 top.res.inst_0) (not top.res.init_flag!)))))))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_all_e3_4821_e5_1536.sl b/benchmarks/LIA/Lustre/DRAGON_all_e3_4821_e5_1536.sl index ab3d373..0b7ca84 100644 --- a/benchmarks/LIA/Lustre/DRAGON_all_e3_4821_e5_1536.sl +++ b/benchmarks/LIA/Lustre/DRAGON_all_e3_4821_e5_1536.sl @@ -1,2088 +1,66 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (- (- X5 1) X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (- (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Bool top.res.abs_5_a_0)) - (let - ((X3 Int top.res.abs_4_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Int top.res.abs_2_a_0)) - (let - ((X6 Int top.res.abs_1_a_0)) - (let - ((X7 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_0)) - (>= X7 0)))) - (= top.res.abs_9_a_0 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.abs_10_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Bool top.res.abs_5_a_1)) - (let - ((X3 Int top.res.abs_4_a_1)) - (let - ((X4 Int top.res.abs_3_a_1)) - (let - ((X5 Int top.res.abs_2_a_1)) - (let - ((X6 Int top.res.abs_1_a_1)) - (let - ((X7 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (and - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9_a_0)) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_1)) - (>= X7 0)))) - (= top.res.abs_9_a_1 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.abs_10 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Bool top.res.abs_5)) - (let - ((X3 Int top.res.abs_4)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Int top.res.abs_2)) - (let - ((X6 Int top.res.abs_1)) - (let - ((X7 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> - X1 - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10)) - (>= X7 0)))) - (= top.res.abs_9 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid - top.res.abs_10 - top.res.inst_0) - top.res.init_flag))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.abs_10! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Bool top.res.abs_5!)) - (let - ((X3 Int top.res.abs_4!)) - (let - ((X4 Int top.res.abs_3!)) - (let - ((X5 Int top.res.abs_2!)) - (let - ((X6 Int top.res.abs_1!)) - (let - ((X7 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> - X1 - (and - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9)) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10!)) - (>= X7 0)))) - (= top.res.abs_9! (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_4! - top.res.inst_3! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_1! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid! - top.res.abs_10! - top.res.inst_0! - top.usr.init_invalid - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!)))))))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (- (- X5 1) X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (- (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_5_a_0)) (let ((X3 top.res.abs_4_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_2_a_0)) (let ((X6 top.res.abs_1_a_0)) (let ((X7 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_0)) (>= X7 0)))) (= top.res.abs_9_a_0 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.abs_10_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_5_a_1)) (let ((X3 top.res.abs_4_a_1)) (let ((X4 top.res.abs_3_a_1)) (let ((X5 top.res.abs_2_a_1)) (let ((X6 top.res.abs_1_a_1)) (let ((X7 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9_a_0)) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_1)) (>= X7 0)))) (= top.res.abs_9_a_1 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.usr.init_invalid_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_5)) (let ((X3 top.res.abs_4)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_2)) (let ((X6 top.res.abs_1)) (let ((X7 top.res.abs_0)) (and (= top.usr.OK (=> X1 (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10)) (>= X7 0)))) (= top.res.abs_9 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid top.res.abs_10 top.res.inst_0) top.res.init_flag)))))))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.abs_10! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_5!)) (let ((X3 top.res.abs_4!)) (let ((X4 top.res.abs_3!)) (let ((X5 top.res.abs_2!)) (let ((X6 top.res.abs_1!)) (let ((X7 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9)) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10!)) (>= X7 0)))) (= top.res.abs_9! (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_4! top.res.inst_3! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_2! top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_1! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid! top.res.abs_10! top.res.inst_0! top.usr.init_invalid top.res.abs_10 top.res.inst_0) (not top.res.init_flag!)))))))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/DRAGON_all_e3_5957.sl b/benchmarks/LIA/Lustre/DRAGON_all_e3_5957.sl index 7cb00ba..59bff1b 100644 --- a/benchmarks/LIA/Lustre/DRAGON_all_e3_5957.sl +++ b/benchmarks/LIA/Lustre/DRAGON_all_e3_5957.sl @@ -1,2088 +1,66 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_DRAGON_0 ( - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (and - (= DRAGON.usr.exclusive_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int DRAGON.res.nondet_4) - (X2 Int DRAGON.res.nondet_3) - (X3 Int DRAGON.res.nondet_2) - (X4 Int DRAGON.res.nondet_1) - (X5 Int DRAGON.res.nondet_0)) - (and - (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) - (= X1 0))))) - (and - (= DRAGON.usr.shared_a_0 0) - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int DRAGON.res.nondet_9) - (X3 Int DRAGON.res.nondet_8) - (X4 Int DRAGON.res.nondet_7) - (X5 Int DRAGON.res.nondet_6) - (X6 Int DRAGON.res.nondet_5)) - (and (>= X6 1) (>= (+ (+ (- X5 X4) X3) X2) 1))))) - (and - (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) - (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) - (let - ((X3 - Bool (let - ((X3 Int DRAGON.res.nondet_21) - (X4 Int DRAGON.res.nondet_20) - (X5 Int DRAGON.res.nondet_19) - (X6 Int DRAGON.res.nondet_18) - (X7 Int DRAGON.res.nondet_17)) - (and - (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) - (= X3 0))))) - (let - ((X4 - Bool (let - ((X4 Int DRAGON.res.nondet_26) - (X5 Int DRAGON.res.nondet_25) - (X6 Int DRAGON.res.nondet_24) - (X7 Int DRAGON.res.nondet_23) - (X8 Int DRAGON.res.nondet_22)) - (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) - (let - ((X5 Bool (let ((X5 Int DRAGON.res.nondet_27)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int DRAGON.res.nondet_28)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int DRAGON.res.nondet_29)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int DRAGON.res.nondet_30)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int DRAGON.res.nondet_10)) (>= X9 1)))) - (let - ((X10 - Bool (let - ((X10 Int DRAGON.res.nondet_12) - (X11 Int DRAGON.res.nondet_11)) - (and (= X11 1) (= X10 0))))) - (let - ((X11 - Bool (let - ((X11 Int DRAGON.res.nondet_14) - (X12 Int DRAGON.res.nondet_13)) - (and (= X12 0) (= X11 1))))) - (let - ((X12 - Bool (let - ((X12 Int DRAGON.res.nondet_16) - (X13 Int DRAGON.res.nondet_15)) - (>= (+ X13 X12) 2)))) - (and - (= - DRAGON.usr.erreur_a_0 - (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) - DRAGON.res.init_flag_a_0)))))))))))))))) -) - -(define-fun - __node_trans_DRAGON_0 ( - (DRAGON.usr.e01_a_1 Bool) - (DRAGON.usr.e02_a_1 Bool) - (DRAGON.usr.e03_a_1 Bool) - (DRAGON.usr.e04_a_1 Bool) - (DRAGON.usr.e05_a_1 Bool) - (DRAGON.usr.e06_a_1 Bool) - (DRAGON.usr.e07_a_1 Bool) - (DRAGON.usr.e08_a_1 Bool) - (DRAGON.usr.e09_a_1 Bool) - (DRAGON.usr.e10_a_1 Bool) - (DRAGON.usr.e11_a_1 Bool) - (DRAGON.usr.e12_a_1 Bool) - (DRAGON.usr.init_invalid_a_1 Int) - (DRAGON.res.nondet_30 Int) - (DRAGON.res.nondet_29 Int) - (DRAGON.res.nondet_28 Int) - (DRAGON.res.nondet_27 Int) - (DRAGON.res.nondet_26 Int) - (DRAGON.res.nondet_25 Int) - (DRAGON.res.nondet_24 Int) - (DRAGON.res.nondet_23 Int) - (DRAGON.res.nondet_22 Int) - (DRAGON.res.nondet_21 Int) - (DRAGON.res.nondet_20 Int) - (DRAGON.res.nondet_19 Int) - (DRAGON.res.nondet_18 Int) - (DRAGON.res.nondet_17 Int) - (DRAGON.res.nondet_16 Int) - (DRAGON.res.nondet_15 Int) - (DRAGON.res.nondet_14 Int) - (DRAGON.res.nondet_13 Int) - (DRAGON.res.nondet_12 Int) - (DRAGON.res.nondet_11 Int) - (DRAGON.res.nondet_10 Int) - (DRAGON.res.nondet_9 Int) - (DRAGON.res.nondet_8 Int) - (DRAGON.res.nondet_7 Int) - (DRAGON.res.nondet_6 Int) - (DRAGON.res.nondet_5 Int) - (DRAGON.res.nondet_4 Int) - (DRAGON.res.nondet_3 Int) - (DRAGON.res.nondet_2 Int) - (DRAGON.res.nondet_1 Int) - (DRAGON.res.nondet_0 Int) - (DRAGON.usr.exclusive_a_1 Int) - (DRAGON.usr.shared_a_1 Int) - (DRAGON.usr.shared_dirty_a_1 Int) - (DRAGON.usr.dirty_a_1 Int) - (DRAGON.usr.invalid_a_1 Int) - (DRAGON.usr.erreur_a_1 Bool) - (DRAGON.res.init_flag_a_1 Bool) - (DRAGON.impl.usr.mem_init_a_1 Int) - (DRAGON.usr.e01_a_0 Bool) - (DRAGON.usr.e02_a_0 Bool) - (DRAGON.usr.e03_a_0 Bool) - (DRAGON.usr.e04_a_0 Bool) - (DRAGON.usr.e05_a_0 Bool) - (DRAGON.usr.e06_a_0 Bool) - (DRAGON.usr.e07_a_0 Bool) - (DRAGON.usr.e08_a_0 Bool) - (DRAGON.usr.e09_a_0 Bool) - (DRAGON.usr.e10_a_0 Bool) - (DRAGON.usr.e11_a_0 Bool) - (DRAGON.usr.e12_a_0 Bool) - (DRAGON.usr.init_invalid_a_0 Int) - (DRAGON.usr.exclusive_a_0 Int) - (DRAGON.usr.shared_a_0 Int) - (DRAGON.usr.shared_dirty_a_0 Int) - (DRAGON.usr.dirty_a_0 Int) - (DRAGON.usr.invalid_a_0 Int) - (DRAGON.usr.erreur_a_0 Bool) - (DRAGON.res.init_flag_a_0 Bool) - (DRAGON.impl.usr.mem_init_a_0 Int) - ) Bool - - (let - ((X1 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X2 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X3 Bool (>= DRAGON.usr.exclusive_a_0 1))) - (let - ((X4 - Bool (and - (>= DRAGON.usr.invalid_a_0 1) - (>= - (+ - (+ - (- DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) - DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - 1)))) - (let - ((X5 - Bool (and - (and - (and - (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.exclusive_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.exclusive_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) - DRAGON.usr.exclusive_a_0)))))) - (let - ((X6 Bool (>= DRAGON.usr.shared_a_0 1))) - (let - ((X7 Bool (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) - (let - ((X8 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 0) - (= DRAGON.usr.shared_a_0 1)))) - (and - (= - DRAGON.usr.shared_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 0 DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite - X7 - (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (+ - (+ - (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) - DRAGON.usr.shared_a_0)))))) - (let - ((X9 Bool (>= DRAGON.usr.shared_dirty_a_0 1))) - (let - ((X10 - Bool (and - (= DRAGON.usr.shared_dirty_a_0 1) - (= DRAGON.usr.shared_a_0 0)))) - (and - (= - DRAGON.usr.shared_dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite - X4 - (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) - DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 0 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e06_a_1 - (ite X7 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 1 DRAGON.usr.shared_dirty_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (- DRAGON.usr.shared_dirty_a_0 1) - DRAGON.usr.shared_dirty_a_0) - DRAGON.usr.shared_dirty_a_0)))))) - (let - ((X11 Bool (>= DRAGON.usr.dirty_a_0 1))) - (let - ((X12 - Bool (and - (and - (and - (and - (>= DRAGON.usr.invalid_a_0 1) - (= DRAGON.usr.dirty_a_0 0)) - (= DRAGON.usr.shared_a_0 0)) - (= DRAGON.usr.exclusive_a_0 0)) - (= DRAGON.usr.shared_dirty_a_0 0)))) - (and - (= - DRAGON.usr.dirty_a_1 - (ite - DRAGON.usr.e02_a_1 - (ite X4 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e03_a_1 - (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e04_a_1 - (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e05_a_1 - (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite X2 0 DRAGON.usr.dirty_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (- DRAGON.usr.dirty_a_0 1) - DRAGON.usr.dirty_a_0) - DRAGON.usr.dirty_a_0)))))))) - (= - DRAGON.usr.invalid_a_1 - (ite - DRAGON.usr.e01_a_1 - (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e02_a_1 - (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e07_a_1 - (ite - X12 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e08_a_1 - (ite - X2 - (- DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e09_a_1 - (ite - X11 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e10_a_1 - (ite - X6 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e11_a_1 - (ite - X9 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - (ite - DRAGON.usr.e12_a_1 - (ite - X1 - (+ DRAGON.usr.invalid_a_0 1) - DRAGON.usr.invalid_a_0) - DRAGON.usr.invalid_a_0))))))))) - (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) - (= - DRAGON.usr.erreur_a_1 - (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) - (not DRAGON.res.init_flag_a_1))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (let - ((X2 Bool top.res.abs_5_a_0)) - (let - ((X3 Int top.res.abs_4_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Int top.res.abs_2_a_0)) - (let - ((X6 Int top.res.abs_1_a_0)) - (let - ((X7 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_0)) - (>= X7 0)))) - (= top.res.abs_9_a_0 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_init_DRAGON_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Int) - (top.res.abs_10_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (let - ((X2 Bool top.res.abs_5_a_1)) - (let - ((X3 Int top.res.abs_4_a_1)) - (let - ((X4 Int top.res.abs_3_a_1)) - (let - ((X5 Int top.res.abs_2_a_1)) - (let - ((X6 Int top.res.abs_1_a_1)) - (let - ((X7 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (and - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9_a_0)) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_1)) - (>= X7 0)))) - (= top.res.abs_9_a_1 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_trans_DRAGON_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.abs_10 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_8)) - (let - ((X2 Bool top.res.abs_5)) - (let - ((X3 Int top.res.abs_4)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Int top.res.abs_2)) - (let - ((X6 Int top.res.abs_1)) - (let - ((X7 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> - X1 - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10)) - (>= X7 0)))) - (= top.res.abs_9 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_init_DRAGON_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid - top.res.abs_10 - top.res.inst_0) - top.res.init_flag))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Int) - (top.res.abs_10! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (let - ((X2 Bool top.res.abs_5!)) - (let - ((X3 Int top.res.abs_4!)) - (let - ((X4 Int top.res.abs_3!)) - (let - ((X5 Int top.res.abs_2!)) - (let - ((X6 Int top.res.abs_1!)) - (let - ((X7 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> - X1 - (and - (and - (and - (not X2) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9)) - (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10!)) - (>= X7 0)))) - (= top.res.abs_9! (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_trans_DRAGON_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.usr.init_invalid! - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_4! - top.res.inst_3! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_6! - top.res.inst_1! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_6 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid! - top.res.abs_10! - top.res.inst_0! - top.usr.init_invalid - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!)))))))))) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_DRAGON_0 ((DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (and (= DRAGON.usr.exclusive_a_0 0) (let ((X1 (let ((X1 DRAGON.res.nondet_4) (X2 DRAGON.res.nondet_3) (X3 DRAGON.res.nondet_2) (X4 DRAGON.res.nondet_1) (X5 DRAGON.res.nondet_0)) (and (and (and (and (>= X5 1) (= X4 0)) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= DRAGON.usr.shared_a_0 0) (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.dirty_a_0 0) (let ((X2 (let ((X2 DRAGON.res.nondet_9) (X3 DRAGON.res.nondet_8) (X4 DRAGON.res.nondet_7) (X5 DRAGON.res.nondet_6) (X6 DRAGON.res.nondet_5)) (and (>= X6 1) (>= (+ (+ (- X5 X4) X3) X2) 1))))) (and (= DRAGON.impl.usr.mem_init_a_0 DRAGON.usr.init_invalid_a_0) (= DRAGON.usr.invalid_a_0 DRAGON.impl.usr.mem_init_a_0) (let ((X3 (let ((X3 DRAGON.res.nondet_21) (X4 DRAGON.res.nondet_20) (X5 DRAGON.res.nondet_19) (X6 DRAGON.res.nondet_18) (X7 DRAGON.res.nondet_17)) (and (and (and (and (>= X7 1) (= X6 0)) (= X5 0)) (= X4 0)) (= X3 0))))) (let ((X4 (let ((X4 DRAGON.res.nondet_26) (X5 DRAGON.res.nondet_25) (X6 DRAGON.res.nondet_24) (X7 DRAGON.res.nondet_23) (X8 DRAGON.res.nondet_22)) (and (>= X8 1) (>= (+ (+ (+ X7 X6) X5) X4) 1))))) (let ((X5 (let ((X5 DRAGON.res.nondet_27)) (>= X5 1)))) (let ((X6 (let ((X6 DRAGON.res.nondet_28)) (>= X6 1)))) (let ((X7 (let ((X7 DRAGON.res.nondet_29)) (>= X7 1)))) (let ((X8 (let ((X8 DRAGON.res.nondet_30)) (>= X8 1)))) (let ((X9 (let ((X9 DRAGON.res.nondet_10)) (>= X9 1)))) (let ((X10 (let ((X10 DRAGON.res.nondet_12) (X11 DRAGON.res.nondet_11)) (and (= X11 1) (= X10 0))))) (let ((X11 (let ((X11 DRAGON.res.nondet_14) (X12 DRAGON.res.nondet_13)) (and (= X12 0) (= X11 1))))) (let ((X12 (let ((X12 DRAGON.res.nondet_16) (X13 DRAGON.res.nondet_15)) (>= (+ X13 X12) 2)))) (and (= DRAGON.usr.erreur_a_0 (ite (>= DRAGON.usr.exclusive_a_0 2) true false)) DRAGON.res.init_flag_a_0))))))))))))))))) +(define-fun __node_trans_DRAGON_0 ((DRAGON.usr.e01_a_1 Bool) (DRAGON.usr.e02_a_1 Bool) (DRAGON.usr.e03_a_1 Bool) (DRAGON.usr.e04_a_1 Bool) (DRAGON.usr.e05_a_1 Bool) (DRAGON.usr.e06_a_1 Bool) (DRAGON.usr.e07_a_1 Bool) (DRAGON.usr.e08_a_1 Bool) (DRAGON.usr.e09_a_1 Bool) (DRAGON.usr.e10_a_1 Bool) (DRAGON.usr.e11_a_1 Bool) (DRAGON.usr.e12_a_1 Bool) (DRAGON.usr.init_invalid_a_1 Int) (DRAGON.res.nondet_30 Int) (DRAGON.res.nondet_29 Int) (DRAGON.res.nondet_28 Int) (DRAGON.res.nondet_27 Int) (DRAGON.res.nondet_26 Int) (DRAGON.res.nondet_25 Int) (DRAGON.res.nondet_24 Int) (DRAGON.res.nondet_23 Int) (DRAGON.res.nondet_22 Int) (DRAGON.res.nondet_21 Int) (DRAGON.res.nondet_20 Int) (DRAGON.res.nondet_19 Int) (DRAGON.res.nondet_18 Int) (DRAGON.res.nondet_17 Int) (DRAGON.res.nondet_16 Int) (DRAGON.res.nondet_15 Int) (DRAGON.res.nondet_14 Int) (DRAGON.res.nondet_13 Int) (DRAGON.res.nondet_12 Int) (DRAGON.res.nondet_11 Int) (DRAGON.res.nondet_10 Int) (DRAGON.res.nondet_9 Int) (DRAGON.res.nondet_8 Int) (DRAGON.res.nondet_7 Int) (DRAGON.res.nondet_6 Int) (DRAGON.res.nondet_5 Int) (DRAGON.res.nondet_4 Int) (DRAGON.res.nondet_3 Int) (DRAGON.res.nondet_2 Int) (DRAGON.res.nondet_1 Int) (DRAGON.res.nondet_0 Int) (DRAGON.usr.exclusive_a_1 Int) (DRAGON.usr.shared_a_1 Int) (DRAGON.usr.shared_dirty_a_1 Int) (DRAGON.usr.dirty_a_1 Int) (DRAGON.usr.invalid_a_1 Int) (DRAGON.usr.erreur_a_1 Bool) (DRAGON.res.init_flag_a_1 Bool) (DRAGON.impl.usr.mem_init_a_1 Int) (DRAGON.usr.e01_a_0 Bool) (DRAGON.usr.e02_a_0 Bool) (DRAGON.usr.e03_a_0 Bool) (DRAGON.usr.e04_a_0 Bool) (DRAGON.usr.e05_a_0 Bool) (DRAGON.usr.e06_a_0 Bool) (DRAGON.usr.e07_a_0 Bool) (DRAGON.usr.e08_a_0 Bool) (DRAGON.usr.e09_a_0 Bool) (DRAGON.usr.e10_a_0 Bool) (DRAGON.usr.e11_a_0 Bool) (DRAGON.usr.e12_a_0 Bool) (DRAGON.usr.init_invalid_a_0 Int) (DRAGON.usr.exclusive_a_0 Int) (DRAGON.usr.shared_a_0 Int) (DRAGON.usr.shared_dirty_a_0 Int) (DRAGON.usr.dirty_a_0 Int) (DRAGON.usr.invalid_a_0 Int) (DRAGON.usr.erreur_a_0 Bool) (DRAGON.res.init_flag_a_0 Bool) (DRAGON.impl.usr.mem_init_a_0 Int)) Bool + (let ((X1 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X2 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (+ DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X3 (>= DRAGON.usr.exclusive_a_0 1))) (let ((X4 (and (>= DRAGON.usr.invalid_a_0 1) (>= (+ (+ (- DRAGON.usr.dirty_a_0 DRAGON.usr.shared_a_0) DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) 1)))) (let ((X5 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.exclusive_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (+ DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.exclusive_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (- DRAGON.usr.exclusive_a_0 1) DRAGON.usr.exclusive_a_0) DRAGON.usr.exclusive_a_0)))))) (let ((X6 (>= DRAGON.usr.shared_a_0 1))) (let ((X7 (>= (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.shared_a_0) 2))) (let ((X8 (and (= DRAGON.usr.shared_dirty_a_0 0) (= DRAGON.usr.shared_a_0 1)))) (and (= DRAGON.usr.shared_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 0 DRAGON.usr.shared_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 (- (+ DRAGON.usr.shared_a_0 DRAGON.usr.shared_dirty_a_0) 1) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (+ (+ (+ DRAGON.usr.shared_a_0 DRAGON.usr.exclusive_a_0) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.dirty_a_0) DRAGON.usr.shared_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (- DRAGON.usr.shared_a_0 1) DRAGON.usr.shared_a_0) DRAGON.usr.shared_a_0)))))) (let ((X9 (>= DRAGON.usr.shared_dirty_a_0 1))) (let ((X10 (and (= DRAGON.usr.shared_dirty_a_0 1) (= DRAGON.usr.shared_a_0 0)))) (and (= DRAGON.usr.shared_dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 (+ DRAGON.usr.shared_dirty_a_0 DRAGON.usr.dirty_a_0) DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 0 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e06_a_1 (ite X7 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 1 DRAGON.usr.shared_dirty_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (- DRAGON.usr.shared_dirty_a_0 1) DRAGON.usr.shared_dirty_a_0) DRAGON.usr.shared_dirty_a_0)))))) (let ((X11 (>= DRAGON.usr.dirty_a_0 1))) (let ((X12 (and (and (and (and (>= DRAGON.usr.invalid_a_0 1) (= DRAGON.usr.dirty_a_0 0)) (= DRAGON.usr.shared_a_0 0)) (= DRAGON.usr.exclusive_a_0 0)) (= DRAGON.usr.shared_dirty_a_0 0)))) (and (= DRAGON.usr.dirty_a_1 (ite DRAGON.usr.e02_a_1 (ite X4 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e03_a_1 (ite X3 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e04_a_1 (ite X10 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e05_a_1 (ite X8 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (+ DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 0 DRAGON.usr.dirty_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (- DRAGON.usr.dirty_a_0 1) DRAGON.usr.dirty_a_0) DRAGON.usr.dirty_a_0)))))))) (= DRAGON.usr.invalid_a_1 (ite DRAGON.usr.e01_a_1 (ite X5 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e02_a_1 (ite X4 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e07_a_1 (ite X12 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e08_a_1 (ite X2 (- DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e09_a_1 (ite X11 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e10_a_1 (ite X6 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e11_a_1 (ite X9 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) (ite DRAGON.usr.e12_a_1 (ite X1 (+ DRAGON.usr.invalid_a_0 1) DRAGON.usr.invalid_a_0) DRAGON.usr.invalid_a_0))))))))) (= DRAGON.impl.usr.mem_init_a_1 DRAGON.impl.usr.mem_init_a_0) (= DRAGON.usr.erreur_a_1 (ite (>= DRAGON.usr.exclusive_a_1 2) true false)) (not DRAGON.res.init_flag_a_1)))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_5_a_0)) (let ((X3 top.res.abs_4_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_2_a_0)) (let ((X6 top.res.abs_1_a_0)) (let ((X7 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_0)) (>= X7 0)))) (= top.res.abs_9_a_0 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_init_DRAGON_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Int) (top.res.abs_10_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_5_a_1)) (let ((X3 top.res.abs_4_a_1)) (let ((X4 top.res.abs_3_a_1)) (let ((X5 top.res.abs_2_a_1)) (let ((X6 top.res.abs_1_a_1)) (let ((X7 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9_a_0)) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10_a_1)) (>= X7 0)))) (= top.res.abs_9_a_1 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_trans_DRAGON_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.usr.init_invalid_a_1 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.usr.init_invalid_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_5)) (let ((X3 top.res.abs_4)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_2)) (let ((X6 top.res.abs_1)) (let ((X7 top.res.abs_0)) (and (= top.usr.OK (=> X1 (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10)) (>= X7 0)))) (= top.res.abs_9 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_init_DRAGON_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid top.res.abs_10 top.res.inst_0) top.res.init_flag)))))))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Int) (top.res.abs_10! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_5!)) (let ((X3 top.res.abs_4!)) (let ((X4 top.res.abs_3!)) (let ((X5 top.res.abs_2!)) (let ((X6 top.res.abs_1!)) (let ((X7 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (and (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_9)) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_10!)) (>= X7 0)))) (= top.res.abs_9! (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_trans_DRAGON_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.usr.init_invalid! top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_4! top.res.inst_3! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_2! top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_6! top.res.inst_1! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_6 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid! top.res.abs_10! top.res.inst_0! top.usr.init_invalid top.res.abs_10 top.res.inst_0) (not top.res.init_flag!)))))))))) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_1.sl b/benchmarks/LIA/Lustre/FIREFLY_1.sl index 2dcc262..e23218d 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_1.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_1.sl @@ -1,1262 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (> top.usr.i_invalid_a_0 0))) - (let - ((X5 Bool top.res.abs_6_a_0)) - (and - (= top.res.abs_7_a_0 (+ (+ (+ X1 X2) X3) X4)) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (> top.usr.i_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (let - ((X3 Int top.res.abs_2_a_1)) - (let - ((X4 Int top.res.abs_1_a_1)) - (let - ((X5 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7_a_0))) - (= top.res.abs_7_a_1 (+ (+ (+ X5 X4) X3) X2)) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int top.res.abs_0)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_3)) - (and - (= top.res.abs_5 (and top.res.abs_4 (> top.usr.i_invalid 0))) - (let - ((X5 Bool top.res.abs_6)) - (and - (= top.res.abs_7 (+ (+ (+ X1 X2) X3) X4)) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (> top.usr.i_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_3!)) - (let - ((X3 Int top.res.abs_2!)) - (let - ((X4 Int top.res.abs_1!)) - (let - ((X5 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7))) - (= top.res.abs_7! (+ (+ (+ X5 X4) X3) X2)) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_3_a_0)) (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (> top.usr.i_invalid_a_0 0))) (let ((X5 top.res.abs_6_a_0)) (and (= top.res.abs_7_a_0 (+ (+ (+ X1 X2) X3) X4)) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (> top.usr.i_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_3_a_1)) (let ((X3 top.res.abs_2_a_1)) (let ((X4 top.res.abs_1_a_1)) (let ((X5 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7_a_0))) (= top.res.abs_7_a_1 (+ (+ (+ X5 X4) X3) X2)) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_3)) (and (= top.res.abs_5 (and top.res.abs_4 (> top.usr.i_invalid 0))) (let ((X5 top.res.abs_6)) (and (= top.res.abs_7 (+ (+ (+ X1 X2) X3) X4)) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (> top.usr.i_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_3!)) (let ((X3 top.res.abs_2!)) (let ((X4 top.res.abs_1!)) (let ((X5 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7))) (= top.res.abs_7! (+ (+ (+ X5 X4) X3) X2)) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_10.sl b/benchmarks/LIA/Lustre/FIREFLY_10.sl index 29c7411..aa70196 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_10.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_10.sl @@ -1,1236 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_0 - (and - (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) - (< top.usr.i_invalid_a_0 5))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_1 - (and - (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) - (< top.usr.i_invalid_a_1 5))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_5 - (and - (and top.res.abs_4 (>= top.usr.i_invalid 0)) - (< top.usr.i_invalid 5))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_2)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_5! - (and - (and top.res.abs_4! (>= top.usr.i_invalid! 0)) - (< top.usr.i_invalid! 5))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_2!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) (< top.usr.i_invalid_a_0 5))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_2_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) (< top.usr.i_invalid_a_1 5))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_2_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and (and top.res.abs_4 (>= top.usr.i_invalid 0)) (< top.usr.i_invalid 5))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_2)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and (and top.res.abs_4! (>= top.usr.i_invalid! 0)) (< top.usr.i_invalid! 5))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_2!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_10_e7_919_e2_3192.sl b/benchmarks/LIA/Lustre/FIREFLY_10_e7_919_e2_3192.sl index 87a65fa..d95f02f 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_10_e7_919_e2_3192.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_10_e7_919_e2_3192.sl @@ -1,1236 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_0 - (and - (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) - (< top.usr.i_invalid_a_0 5))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_1 - (and - (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) - (< top.usr.i_invalid_a_1 5))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_5 - (and - (and top.res.abs_4 (>= top.usr.i_invalid 0)) - (< top.usr.i_invalid 5))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_2)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_5! - (and - (and top.res.abs_4! (>= top.usr.i_invalid! 0)) - (< top.usr.i_invalid! 5))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_2!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) (< top.usr.i_invalid_a_0 5))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_2_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) (< top.usr.i_invalid_a_1 5))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_2_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and (and top.res.abs_4 (>= top.usr.i_invalid 0)) (< top.usr.i_invalid 5))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_2)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and (and top.res.abs_4! (>= top.usr.i_invalid! 0)) (< top.usr.i_invalid! 5))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_2!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_11.sl b/benchmarks/LIA/Lustre/FIREFLY_11.sl index 85e4fda..22f32b4 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_11.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_11.sl @@ -1,1236 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_0 - (and - (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) - (< top.usr.i_invalid_a_0 5))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (< X2 2))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_1 - (and - (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) - (< top.usr.i_invalid_a_1 5))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (< X2 2))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_5 - (and - (and top.res.abs_4 (>= top.usr.i_invalid 0)) - (< top.usr.i_invalid 5))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_2)) - (and - (= top.usr.OK (=> X1 (< X2 2))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_5! - (and - (and top.res.abs_4! (>= top.usr.i_invalid! 0)) - (< top.usr.i_invalid! 5))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_2!)) - (and - (= top.usr.OK! (=> X1 (< X2 2))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) (< top.usr.i_invalid_a_0 5))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_2_a_0)) (and (= top.usr.OK_a_0 (=> X1 (< X2 2))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) (< top.usr.i_invalid_a_1 5))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_2_a_1)) (and (= top.usr.OK_a_1 (=> X1 (< X2 2))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and (and top.res.abs_4 (>= top.usr.i_invalid 0)) (< top.usr.i_invalid 5))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_2)) (and (= top.usr.OK (=> X1 (< X2 2))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and (and top.res.abs_4! (>= top.usr.i_invalid! 0)) (< top.usr.i_invalid! 5))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_2!)) (and (= top.usr.OK! (=> X1 (< X2 2))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_11_e1_3457.sl b/benchmarks/LIA/Lustre/FIREFLY_11_e1_3457.sl index ae44af9..4559667 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_11_e1_3457.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_11_e1_3457.sl @@ -1,1236 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (+ (+ firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_0 - (and - (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) - (< top.usr.i_invalid_a_0 5))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (< X2 2))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_1 - (and - (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) - (< top.usr.i_invalid_a_1 5))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (< X2 2))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_5 - (and - (and top.res.abs_4 (>= top.usr.i_invalid 0)) - (< top.usr.i_invalid 5))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_2)) - (and - (= top.usr.OK (=> X1 (< X2 2))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_5! - (and - (and top.res.abs_4! (>= top.usr.i_invalid! 0)) - (< top.usr.i_invalid! 5))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_2!)) - (and - (= top.usr.OK! (=> X1 (< X2 2))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ (+ firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) (< top.usr.i_invalid_a_0 5))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_2_a_0)) (and (= top.usr.OK_a_0 (=> X1 (< X2 2))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) (< top.usr.i_invalid_a_1 5))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_2_a_1)) (and (= top.usr.OK_a_1 (=> X1 (< X2 2))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and (and top.res.abs_4 (>= top.usr.i_invalid 0)) (< top.usr.i_invalid 5))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_2)) (and (= top.usr.OK (=> X1 (< X2 2))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and (and top.res.abs_4! (>= top.usr.i_invalid! 0)) (< top.usr.i_invalid! 5))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_2!)) (and (= top.usr.OK! (=> X1 (< X2 2))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_1_e1_1092_e2_1853.sl b/benchmarks/LIA/Lustre/FIREFLY_1_e1_1092_e2_1853.sl index 7ca85d8..014faed 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_1_e1_1092_e2_1853.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_1_e1_1092_e2_1853.sl @@ -1,1266 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ - (- - (+ (+ firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) - 1) - 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (> top.usr.i_invalid_a_0 0))) - (let - ((X5 Bool top.res.abs_6_a_0)) - (and - (= top.res.abs_7_a_0 (+ (+ (+ X1 X2) X3) X4)) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (> top.usr.i_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (let - ((X3 Int top.res.abs_2_a_1)) - (let - ((X4 Int top.res.abs_1_a_1)) - (let - ((X5 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7_a_0))) - (= top.res.abs_7_a_1 (+ (+ (+ X5 X4) X3) X2)) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int top.res.abs_0)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_3)) - (and - (= top.res.abs_5 (and top.res.abs_4 (> top.usr.i_invalid 0))) - (let - ((X5 Bool top.res.abs_6)) - (and - (= top.res.abs_7 (+ (+ (+ X1 X2) X3) X4)) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (> top.usr.i_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_3!)) - (let - ((X3 Int top.res.abs_2!)) - (let - ((X4 Int top.res.abs_1!)) - (let - ((X5 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7))) - (= top.res.abs_7! (+ (+ (+ X5 X4) X3) X2)) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (- (+ (+ firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_3_a_0)) (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (> top.usr.i_invalid_a_0 0))) (let ((X5 top.res.abs_6_a_0)) (and (= top.res.abs_7_a_0 (+ (+ (+ X1 X2) X3) X4)) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (> top.usr.i_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_3_a_1)) (let ((X3 top.res.abs_2_a_1)) (let ((X4 top.res.abs_1_a_1)) (let ((X5 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7_a_0))) (= top.res.abs_7_a_1 (+ (+ (+ X5 X4) X3) X2)) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_3)) (and (= top.res.abs_5 (and top.res.abs_4 (> top.usr.i_invalid 0))) (let ((X5 top.res.abs_6)) (and (= top.res.abs_7 (+ (+ (+ X1 X2) X3) X4)) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (> top.usr.i_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_3!)) (let ((X3 top.res.abs_2!)) (let ((X4 top.res.abs_1!)) (let ((X5 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7))) (= top.res.abs_7! (+ (+ (+ X5 X4) X3) X2)) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_2.sl b/benchmarks/LIA/Lustre/FIREFLY_2.sl index fc515d3..f9ee25b 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_2.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_2.sl @@ -1,1307 +1,55 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_1_a_0)) - (let - ((X5 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7_a_0))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (let - ((X3 Int top.res.abs_2_a_1)) - (let - ((X4 Int top.res.abs_1_a_1)) - (let - ((X5 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7_a_1))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_2_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.i_invalid_a_1 - top.res.abs_7_a_1 - top.res.inst_0_a_1 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_3)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_1)) - (let - ((X5 Int top.res.abs_0)) - (and - (= top.usr.OK (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_1) - (__node_init_First_0 top.usr.i_invalid top.res.abs_7 top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_3!)) - (let - ((X3 Int top.res.abs_2!)) - (let - ((X4 Int top.res.abs_1!)) - (let - ((X5 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7!))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_4! - top.res.inst_3! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_2! - top.res.abs_5 - top.res.abs_6 - top.res.inst_2) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_1! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_1) - (__node_trans_First_0 - top.usr.i_invalid! - top.res.abs_7! - top.res.inst_0! - top.usr.i_invalid - top.res.abs_7 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_3_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_1_a_0)) (let ((X5 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7_a_0))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_3_a_1)) (let ((X3 top.res.abs_2_a_1)) (let ((X4 top.res.abs_1_a_1)) (let ((X5 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7_a_1))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_2_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.i_invalid_a_1 top.res.abs_7_a_1 top.res.inst_0_a_1 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_3)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_1)) (let ((X5 top.res.abs_0)) (and (= top.usr.OK (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_1) (__node_init_First_0 top.usr.i_invalid top.res.abs_7 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_3!)) (let ((X3 top.res.abs_2!)) (let ((X4 top.res.abs_1!)) (let ((X5 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7!))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_4! top.res.inst_3! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_2! top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_1! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_1) (__node_trans_First_0 top.usr.i_invalid! top.res.abs_7! top.res.inst_0! top.usr.i_invalid top.res.abs_7 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_3.sl b/benchmarks/LIA/Lustre/FIREFLY_3.sl index 0eb6240..8c92999 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_3.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_3.sl @@ -1,1236 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_0 - (and - (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) - (< top.usr.i_invalid_a_0 5))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_1 - (and - (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) - (< top.usr.i_invalid_a_1 5))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_5 - (and - (and top.res.abs_4 (>= top.usr.i_invalid 0)) - (< top.usr.i_invalid 5))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_3)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_5! - (and - (and top.res.abs_4! (>= top.usr.i_invalid! 0)) - (< top.usr.i_invalid! 5))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_3!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) (< top.usr.i_invalid_a_0 5))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) (< top.usr.i_invalid_a_1 5))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and (and top.res.abs_4 (>= top.usr.i_invalid 0)) (< top.usr.i_invalid 5))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_3)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and (and top.res.abs_4! (>= top.usr.i_invalid! 0)) (< top.usr.i_invalid! 5))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_3_e2_2236.sl b/benchmarks/LIA/Lustre/FIREFLY_3_e2_2236.sl index 16a162a..22efc81 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_3_e2_2236.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_3_e2_2236.sl @@ -1,1236 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_0 - (and - (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) - (< top.usr.i_invalid_a_0 5))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_1 - (and - (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) - (< top.usr.i_invalid_a_1 5))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_5 - (and - (and top.res.abs_4 (>= top.usr.i_invalid 0)) - (< top.usr.i_invalid 5))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_3)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_5! - (and - (and top.res.abs_4! (>= top.usr.i_invalid! 0)) - (< top.usr.i_invalid! 5))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_3!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) (< top.usr.i_invalid_a_0 5))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) (< top.usr.i_invalid_a_1 5))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and (and top.res.abs_4 (>= top.usr.i_invalid 0)) (< top.usr.i_invalid 5))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_3)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and (and top.res.abs_4! (>= top.usr.i_invalid! 0)) (< top.usr.i_invalid! 5))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_3_e2_2236_e1_2305.sl b/benchmarks/LIA/Lustre/FIREFLY_3_e2_2236_e1_2305.sl index 854439d..c13427e 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_3_e2_2236_e1_2305.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_3_e2_2236_e1_2305.sl @@ -1,1240 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ - (+ - (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) - 1) - 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_0 - (and - (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) - (< top.usr.i_invalid_a_0 5))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_1 - (and - (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) - (< top.usr.i_invalid_a_1 5))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_5 - (and - (and top.res.abs_4 (>= top.usr.i_invalid 0)) - (< top.usr.i_invalid 5))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_3)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_5! - (and - (and top.res.abs_4! (>= top.usr.i_invalid! 0)) - (< top.usr.i_invalid! 5))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_3!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) (< top.usr.i_invalid_a_0 5))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) (< top.usr.i_invalid_a_1 5))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and (and top.res.abs_4 (>= top.usr.i_invalid 0)) (< top.usr.i_invalid 5))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_3)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and (and top.res.abs_4! (>= top.usr.i_invalid! 0)) (< top.usr.i_invalid! 5))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_3_e2_2236_e2_1058.sl b/benchmarks/LIA/Lustre/FIREFLY_3_e2_2236_e2_1058.sl index d730444..a2fba8d 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_3_e2_2236_e2_1058.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_3_e2_2236_e2_1058.sl @@ -1,1240 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ - (- - (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) - 1) - 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_0 - (and - (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) - (< top.usr.i_invalid_a_0 5))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_1 - (and - (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) - (< top.usr.i_invalid_a_1 5))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_5 - (and - (and top.res.abs_4 (>= top.usr.i_invalid 0)) - (< top.usr.i_invalid 5))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_3)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_5! - (and - (and top.res.abs_4! (>= top.usr.i_invalid! 0)) - (< top.usr.i_invalid! 5))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_3!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (- (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) (< top.usr.i_invalid_a_0 5))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) (< top.usr.i_invalid_a_1 5))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and (and top.res.abs_4 (>= top.usr.i_invalid 0)) (< top.usr.i_invalid 5))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_3)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and (and top.res.abs_4! (>= top.usr.i_invalid! 0)) (< top.usr.i_invalid! 5))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_3_e2_2236_e7_3681.sl b/benchmarks/LIA/Lustre/FIREFLY_3_e2_2236_e7_3681.sl index f8216be..c17e94a 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_3_e2_2236_e7_3681.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_3_e2_2236_e7_3681.sl @@ -1,1236 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_0 - (and - (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) - (< top.usr.i_invalid_a_0 5))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_1 - (and - (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) - (< top.usr.i_invalid_a_1 5))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_5 - (and - (and top.res.abs_4 (>= top.usr.i_invalid 0)) - (< top.usr.i_invalid 5))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_3)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_5! - (and - (and top.res.abs_4! (>= top.usr.i_invalid! 0)) - (< top.usr.i_invalid! 5))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_3!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) (< top.usr.i_invalid_a_0 5))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) (< top.usr.i_invalid_a_1 5))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and (and top.res.abs_4 (>= top.usr.i_invalid 0)) (< top.usr.i_invalid 5))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_3)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and (and top.res.abs_4! (>= top.usr.i_invalid! 0)) (< top.usr.i_invalid! 5))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_4.sl b/benchmarks/LIA/Lustre/FIREFLY_4.sl index c6b4ed4..7b8ff9b 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_4.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_4.sl @@ -1,1334 +1,55 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_0 - (and - (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) - (< top.usr.i_invalid_a_0 5))) - (let - ((X1 Int top.res.abs_7_a_0)) - (let - ((X2 Bool top.res.abs_6_a_0)) - (let - ((X3 Int top.res.abs_3_a_0)) - (let - ((X4 Int top.res.abs_2_a_0)) - (let - ((X5 Int top.res.abs_1_a_0)) - (let - ((X6 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (=> X2 (<= (+ (+ (+ X6 X5) X4) X3) X1))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_1 - (and - (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) - (< top.usr.i_invalid_a_1 5))) - (let - ((X1 Int top.res.abs_7_a_1)) - (let - ((X2 Bool top.res.abs_6_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X2 (<= (+ (+ (+ X6 X5) X4) X3) X1))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_2_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.i_invalid_a_1 - top.res.abs_7_a_1 - top.res.inst_0_a_1 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_5 - (and - (and top.res.abs_4 (>= top.usr.i_invalid 0)) - (< top.usr.i_invalid 5))) - (let - ((X1 Int top.res.abs_7)) - (let - ((X2 Bool top.res.abs_6)) - (let - ((X3 Int top.res.abs_3)) - (let - ((X4 Int top.res.abs_2)) - (let - ((X5 Int top.res.abs_1)) - (let - ((X6 Int top.res.abs_0)) - (and - (= top.usr.OK (=> X2 (<= (+ (+ (+ X6 X5) X4) X3) X1))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_1) - (__node_init_First_0 - top.usr.i_invalid - top.res.abs_7 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_5! - (and - (and top.res.abs_4! (>= top.usr.i_invalid! 0)) - (< top.usr.i_invalid! 5))) - (let - ((X1 Int top.res.abs_7!)) - (let - ((X2 Bool top.res.abs_6!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X2 (<= (+ (+ (+ X6 X5) X4) X3) X1))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_4! - top.res.inst_3! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_2! - top.res.abs_5 - top.res.abs_6 - top.res.inst_2) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_1! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_1) - (__node_trans_First_0 - top.usr.i_invalid! - top.res.abs_7! - top.res.inst_0! - top.usr.i_invalid - top.res.abs_7 - top.res.inst_0) - (not top.res.init_flag!))))))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) (< top.usr.i_invalid_a_0 5))) (let ((X1 top.res.abs_7_a_0)) (let ((X2 top.res.abs_6_a_0)) (let ((X3 top.res.abs_3_a_0)) (let ((X4 top.res.abs_2_a_0)) (let ((X5 top.res.abs_1_a_0)) (let ((X6 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X2 (<= (+ (+ (+ X6 X5) X4) X3) X1))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) (< top.usr.i_invalid_a_1 5))) (let ((X1 top.res.abs_7_a_1)) (let ((X2 top.res.abs_6_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X2 (<= (+ (+ (+ X6 X5) X4) X3) X1))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_2_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.i_invalid_a_1 top.res.abs_7_a_1 top.res.inst_0_a_1 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and (and top.res.abs_4 (>= top.usr.i_invalid 0)) (< top.usr.i_invalid 5))) (let ((X1 top.res.abs_7)) (let ((X2 top.res.abs_6)) (let ((X3 top.res.abs_3)) (let ((X4 top.res.abs_2)) (let ((X5 top.res.abs_1)) (let ((X6 top.res.abs_0)) (and (= top.usr.OK (=> X2 (<= (+ (+ (+ X6 X5) X4) X3) X1))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_1) (__node_init_First_0 top.usr.i_invalid top.res.abs_7 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and (and top.res.abs_4! (>= top.usr.i_invalid! 0)) (< top.usr.i_invalid! 5))) (let ((X1 top.res.abs_7!)) (let ((X2 top.res.abs_6!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X2 (<= (+ (+ (+ X6 X5) X4) X3) X1))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_4! top.res.inst_3! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_2! top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_1! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_1) (__node_trans_First_0 top.usr.i_invalid! top.res.abs_7! top.res.inst_0! top.usr.i_invalid top.res.abs_7 top.res.inst_0) (not top.res.init_flag!))))))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_4_e3_3511.sl b/benchmarks/LIA/Lustre/FIREFLY_4_e3_3511.sl index a906e7c..4da8341 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_4_e3_3511.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_4_e3_3511.sl @@ -1,1334 +1,55 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (- firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_0 - (and - (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) - (< top.usr.i_invalid_a_0 5))) - (let - ((X1 Int top.res.abs_7_a_0)) - (let - ((X2 Bool top.res.abs_6_a_0)) - (let - ((X3 Int top.res.abs_3_a_0)) - (let - ((X4 Int top.res.abs_2_a_0)) - (let - ((X5 Int top.res.abs_1_a_0)) - (let - ((X6 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (=> X2 (<= (+ (+ (+ X6 X5) X4) X3) X1))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_1 - (and - (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) - (< top.usr.i_invalid_a_1 5))) - (let - ((X1 Int top.res.abs_7_a_1)) - (let - ((X2 Bool top.res.abs_6_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X2 (<= (+ (+ (+ X6 X5) X4) X3) X1))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_2_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.i_invalid_a_1 - top.res.abs_7_a_1 - top.res.inst_0_a_1 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_5 - (and - (and top.res.abs_4 (>= top.usr.i_invalid 0)) - (< top.usr.i_invalid 5))) - (let - ((X1 Int top.res.abs_7)) - (let - ((X2 Bool top.res.abs_6)) - (let - ((X3 Int top.res.abs_3)) - (let - ((X4 Int top.res.abs_2)) - (let - ((X5 Int top.res.abs_1)) - (let - ((X6 Int top.res.abs_0)) - (and - (= top.usr.OK (=> X2 (<= (+ (+ (+ X6 X5) X4) X3) X1))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_1) - (__node_init_First_0 - top.usr.i_invalid - top.res.abs_7 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_5! - (and - (and top.res.abs_4! (>= top.usr.i_invalid! 0)) - (< top.usr.i_invalid! 5))) - (let - ((X1 Int top.res.abs_7!)) - (let - ((X2 Bool top.res.abs_6!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X2 (<= (+ (+ (+ X6 X5) X4) X3) X1))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_4! - top.res.inst_3! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_2! - top.res.abs_5 - top.res.abs_6 - top.res.inst_2) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_1! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_1) - (__node_trans_First_0 - top.usr.i_invalid! - top.res.abs_7! - top.res.inst_0! - top.usr.i_invalid - top.res.abs_7 - top.res.inst_0) - (not top.res.init_flag!))))))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (- firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) (< top.usr.i_invalid_a_0 5))) (let ((X1 top.res.abs_7_a_0)) (let ((X2 top.res.abs_6_a_0)) (let ((X3 top.res.abs_3_a_0)) (let ((X4 top.res.abs_2_a_0)) (let ((X5 top.res.abs_1_a_0)) (let ((X6 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X2 (<= (+ (+ (+ X6 X5) X4) X3) X1))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) (< top.usr.i_invalid_a_1 5))) (let ((X1 top.res.abs_7_a_1)) (let ((X2 top.res.abs_6_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X2 (<= (+ (+ (+ X6 X5) X4) X3) X1))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_2_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.i_invalid_a_1 top.res.abs_7_a_1 top.res.inst_0_a_1 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and (and top.res.abs_4 (>= top.usr.i_invalid 0)) (< top.usr.i_invalid 5))) (let ((X1 top.res.abs_7)) (let ((X2 top.res.abs_6)) (let ((X3 top.res.abs_3)) (let ((X4 top.res.abs_2)) (let ((X5 top.res.abs_1)) (let ((X6 top.res.abs_0)) (and (= top.usr.OK (=> X2 (<= (+ (+ (+ X6 X5) X4) X3) X1))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_1) (__node_init_First_0 top.usr.i_invalid top.res.abs_7 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and (and top.res.abs_4! (>= top.usr.i_invalid! 0)) (< top.usr.i_invalid! 5))) (let ((X1 top.res.abs_7!)) (let ((X2 top.res.abs_6!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X2 (<= (+ (+ (+ X6 X5) X4) X3) X1))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_4! top.res.inst_3! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_2! top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_1! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_1) (__node_trans_First_0 top.usr.i_invalid! top.res.abs_7! top.res.inst_0! top.usr.i_invalid top.res.abs_7 top.res.inst_0) (not top.res.init_flag!))))))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_4_e3_3511_e2_1923.sl b/benchmarks/LIA/Lustre/FIREFLY_4_e3_3511_e2_1923.sl index 72fe054..8a18dfd 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_4_e3_3511_e2_1923.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_4_e3_3511_e2_1923.sl @@ -1,1334 +1,55 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (- (- firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_0 - (and - (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) - (< top.usr.i_invalid_a_0 5))) - (let - ((X1 Int top.res.abs_7_a_0)) - (let - ((X2 Bool top.res.abs_6_a_0)) - (let - ((X3 Int top.res.abs_3_a_0)) - (let - ((X4 Int top.res.abs_2_a_0)) - (let - ((X5 Int top.res.abs_1_a_0)) - (let - ((X6 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (=> X2 (<= (+ (+ (+ X6 X5) X4) X3) X1))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_1 - (and - (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) - (< top.usr.i_invalid_a_1 5))) - (let - ((X1 Int top.res.abs_7_a_1)) - (let - ((X2 Bool top.res.abs_6_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X2 (<= (+ (+ (+ X6 X5) X4) X3) X1))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_2_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.i_invalid_a_1 - top.res.abs_7_a_1 - top.res.inst_0_a_1 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_5 - (and - (and top.res.abs_4 (>= top.usr.i_invalid 0)) - (< top.usr.i_invalid 5))) - (let - ((X1 Int top.res.abs_7)) - (let - ((X2 Bool top.res.abs_6)) - (let - ((X3 Int top.res.abs_3)) - (let - ((X4 Int top.res.abs_2)) - (let - ((X5 Int top.res.abs_1)) - (let - ((X6 Int top.res.abs_0)) - (and - (= top.usr.OK (=> X2 (<= (+ (+ (+ X6 X5) X4) X3) X1))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_1) - (__node_init_First_0 - top.usr.i_invalid - top.res.abs_7 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_5! - (and - (and top.res.abs_4! (>= top.usr.i_invalid! 0)) - (< top.usr.i_invalid! 5))) - (let - ((X1 Int top.res.abs_7!)) - (let - ((X2 Bool top.res.abs_6!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X2 (<= (+ (+ (+ X6 X5) X4) X3) X1))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_4! - top.res.inst_3! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_2! - top.res.abs_5 - top.res.abs_6 - top.res.inst_2) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_1! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_1) - (__node_trans_First_0 - top.usr.i_invalid! - top.res.abs_7! - top.res.inst_0! - top.usr.i_invalid - top.res.abs_7 - top.res.inst_0) - (not top.res.init_flag!))))))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (- (- firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) (< top.usr.i_invalid_a_0 5))) (let ((X1 top.res.abs_7_a_0)) (let ((X2 top.res.abs_6_a_0)) (let ((X3 top.res.abs_3_a_0)) (let ((X4 top.res.abs_2_a_0)) (let ((X5 top.res.abs_1_a_0)) (let ((X6 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X2 (<= (+ (+ (+ X6 X5) X4) X3) X1))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) (< top.usr.i_invalid_a_1 5))) (let ((X1 top.res.abs_7_a_1)) (let ((X2 top.res.abs_6_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X2 (<= (+ (+ (+ X6 X5) X4) X3) X1))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_2_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.i_invalid_a_1 top.res.abs_7_a_1 top.res.inst_0_a_1 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and (and top.res.abs_4 (>= top.usr.i_invalid 0)) (< top.usr.i_invalid 5))) (let ((X1 top.res.abs_7)) (let ((X2 top.res.abs_6)) (let ((X3 top.res.abs_3)) (let ((X4 top.res.abs_2)) (let ((X5 top.res.abs_1)) (let ((X6 top.res.abs_0)) (and (= top.usr.OK (=> X2 (<= (+ (+ (+ X6 X5) X4) X3) X1))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_1) (__node_init_First_0 top.usr.i_invalid top.res.abs_7 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and (and top.res.abs_4! (>= top.usr.i_invalid! 0)) (< top.usr.i_invalid! 5))) (let ((X1 top.res.abs_7!)) (let ((X2 top.res.abs_6!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X2 (<= (+ (+ (+ X6 X5) X4) X3) X1))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_4! top.res.inst_3! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_2! top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_1! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_1) (__node_trans_First_0 top.usr.i_invalid! top.res.abs_7! top.res.inst_0! top.usr.i_invalid top.res.abs_7 top.res.inst_0) (not top.res.init_flag!))))))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_4_e3_3511_e3_422.sl b/benchmarks/LIA/Lustre/FIREFLY_4_e3_3511_e3_422.sl index fa4c54d..bb75292 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_4_e3_3511_e3_422.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_4_e3_3511_e3_422.sl @@ -1,1334 +1,55 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (- (- firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_0 - (and - (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) - (< top.usr.i_invalid_a_0 5))) - (let - ((X1 Int top.res.abs_7_a_0)) - (let - ((X2 Bool top.res.abs_6_a_0)) - (let - ((X3 Int top.res.abs_3_a_0)) - (let - ((X4 Int top.res.abs_2_a_0)) - (let - ((X5 Int top.res.abs_1_a_0)) - (let - ((X6 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (=> X2 (<= (+ (+ (+ X6 X5) X4) X3) X1))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_1 - (and - (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) - (< top.usr.i_invalid_a_1 5))) - (let - ((X1 Int top.res.abs_7_a_1)) - (let - ((X2 Bool top.res.abs_6_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X2 (<= (+ (+ (+ X6 X5) X4) X3) X1))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_2_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.i_invalid_a_1 - top.res.abs_7_a_1 - top.res.inst_0_a_1 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_5 - (and - (and top.res.abs_4 (>= top.usr.i_invalid 0)) - (< top.usr.i_invalid 5))) - (let - ((X1 Int top.res.abs_7)) - (let - ((X2 Bool top.res.abs_6)) - (let - ((X3 Int top.res.abs_3)) - (let - ((X4 Int top.res.abs_2)) - (let - ((X5 Int top.res.abs_1)) - (let - ((X6 Int top.res.abs_0)) - (and - (= top.usr.OK (=> X2 (<= (+ (+ (+ X6 X5) X4) X3) X1))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_1) - (__node_init_First_0 - top.usr.i_invalid - top.res.abs_7 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_5! - (and - (and top.res.abs_4! (>= top.usr.i_invalid! 0)) - (< top.usr.i_invalid! 5))) - (let - ((X1 Int top.res.abs_7!)) - (let - ((X2 Bool top.res.abs_6!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X2 (<= (+ (+ (+ X6 X5) X4) X3) X1))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_4! - top.res.inst_3! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_2! - top.res.abs_5 - top.res.abs_6 - top.res.inst_2) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_1! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_1) - (__node_trans_First_0 - top.usr.i_invalid! - top.res.abs_7! - top.res.inst_0! - top.usr.i_invalid - top.res.abs_7 - top.res.inst_0) - (not top.res.init_flag!))))))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- (- firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) (< top.usr.i_invalid_a_0 5))) (let ((X1 top.res.abs_7_a_0)) (let ((X2 top.res.abs_6_a_0)) (let ((X3 top.res.abs_3_a_0)) (let ((X4 top.res.abs_2_a_0)) (let ((X5 top.res.abs_1_a_0)) (let ((X6 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X2 (<= (+ (+ (+ X6 X5) X4) X3) X1))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) (< top.usr.i_invalid_a_1 5))) (let ((X1 top.res.abs_7_a_1)) (let ((X2 top.res.abs_6_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X2 (<= (+ (+ (+ X6 X5) X4) X3) X1))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_2_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.i_invalid_a_1 top.res.abs_7_a_1 top.res.inst_0_a_1 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and (and top.res.abs_4 (>= top.usr.i_invalid 0)) (< top.usr.i_invalid 5))) (let ((X1 top.res.abs_7)) (let ((X2 top.res.abs_6)) (let ((X3 top.res.abs_3)) (let ((X4 top.res.abs_2)) (let ((X5 top.res.abs_1)) (let ((X6 top.res.abs_0)) (and (= top.usr.OK (=> X2 (<= (+ (+ (+ X6 X5) X4) X3) X1))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_1) (__node_init_First_0 top.usr.i_invalid top.res.abs_7 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and (and top.res.abs_4! (>= top.usr.i_invalid! 0)) (< top.usr.i_invalid! 5))) (let ((X1 top.res.abs_7!)) (let ((X2 top.res.abs_6!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X2 (<= (+ (+ (+ X6 X5) X4) X3) X1))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_4! top.res.inst_3! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_2! top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_1! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_1) (__node_trans_First_0 top.usr.i_invalid! top.res.abs_7! top.res.inst_0! top.usr.i_invalid top.res.abs_7 top.res.inst_0) (not top.res.init_flag!))))))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_4_e3_3511_e5_3248.sl b/benchmarks/LIA/Lustre/FIREFLY_4_e3_3511_e5_3248.sl index d10b23b..821ed8c 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_4_e3_3511_e5_3248.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_4_e3_3511_e5_3248.sl @@ -1,1334 +1,55 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (- (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_0 - (and - (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) - (< top.usr.i_invalid_a_0 5))) - (let - ((X1 Int top.res.abs_7_a_0)) - (let - ((X2 Bool top.res.abs_6_a_0)) - (let - ((X3 Int top.res.abs_3_a_0)) - (let - ((X4 Int top.res.abs_2_a_0)) - (let - ((X5 Int top.res.abs_1_a_0)) - (let - ((X6 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (=> X2 (<= (+ (+ (+ X6 X5) X4) X3) X1))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_1 - (and - (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) - (< top.usr.i_invalid_a_1 5))) - (let - ((X1 Int top.res.abs_7_a_1)) - (let - ((X2 Bool top.res.abs_6_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X2 (<= (+ (+ (+ X6 X5) X4) X3) X1))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_2_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.i_invalid_a_1 - top.res.abs_7_a_1 - top.res.inst_0_a_1 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_5 - (and - (and top.res.abs_4 (>= top.usr.i_invalid 0)) - (< top.usr.i_invalid 5))) - (let - ((X1 Int top.res.abs_7)) - (let - ((X2 Bool top.res.abs_6)) - (let - ((X3 Int top.res.abs_3)) - (let - ((X4 Int top.res.abs_2)) - (let - ((X5 Int top.res.abs_1)) - (let - ((X6 Int top.res.abs_0)) - (and - (= top.usr.OK (=> X2 (<= (+ (+ (+ X6 X5) X4) X3) X1))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_1) - (__node_init_First_0 - top.usr.i_invalid - top.res.abs_7 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_5! - (and - (and top.res.abs_4! (>= top.usr.i_invalid! 0)) - (< top.usr.i_invalid! 5))) - (let - ((X1 Int top.res.abs_7!)) - (let - ((X2 Bool top.res.abs_6!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X2 (<= (+ (+ (+ X6 X5) X4) X3) X1))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_4! - top.res.inst_3! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_2! - top.res.abs_5 - top.res.abs_6 - top.res.inst_2) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_1! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_1) - (__node_trans_First_0 - top.usr.i_invalid! - top.res.abs_7! - top.res.inst_0! - top.usr.i_invalid - top.res.abs_7 - top.res.inst_0) - (not top.res.init_flag!))))))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (- (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) (< top.usr.i_invalid_a_0 5))) (let ((X1 top.res.abs_7_a_0)) (let ((X2 top.res.abs_6_a_0)) (let ((X3 top.res.abs_3_a_0)) (let ((X4 top.res.abs_2_a_0)) (let ((X5 top.res.abs_1_a_0)) (let ((X6 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X2 (<= (+ (+ (+ X6 X5) X4) X3) X1))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) (< top.usr.i_invalid_a_1 5))) (let ((X1 top.res.abs_7_a_1)) (let ((X2 top.res.abs_6_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X2 (<= (+ (+ (+ X6 X5) X4) X3) X1))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_2_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.i_invalid_a_1 top.res.abs_7_a_1 top.res.inst_0_a_1 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and (and top.res.abs_4 (>= top.usr.i_invalid 0)) (< top.usr.i_invalid 5))) (let ((X1 top.res.abs_7)) (let ((X2 top.res.abs_6)) (let ((X3 top.res.abs_3)) (let ((X4 top.res.abs_2)) (let ((X5 top.res.abs_1)) (let ((X6 top.res.abs_0)) (and (= top.usr.OK (=> X2 (<= (+ (+ (+ X6 X5) X4) X3) X1))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_1) (__node_init_First_0 top.usr.i_invalid top.res.abs_7 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and (and top.res.abs_4! (>= top.usr.i_invalid! 0)) (< top.usr.i_invalid! 5))) (let ((X1 top.res.abs_7!)) (let ((X2 top.res.abs_6!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X2 (<= (+ (+ (+ X6 X5) X4) X3) X1))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_4! top.res.inst_3! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_2! top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_1! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_1) (__node_trans_First_0 top.usr.i_invalid! top.res.abs_7! top.res.inst_0! top.usr.i_invalid top.res.abs_7 top.res.inst_0) (not top.res.init_flag!))))))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_5.sl b/benchmarks/LIA/Lustre/FIREFLY_5.sl index 083efa0..d154c47 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_5.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_5.sl @@ -1,1236 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_0 - (and - (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) - (< top.usr.i_invalid_a_0 5))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_1 - (and - (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) - (< top.usr.i_invalid_a_1 5))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_1_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_5 - (and - (and top.res.abs_4 (>= top.usr.i_invalid 0)) - (< top.usr.i_invalid 5))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_1)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_5! - (and - (and top.res.abs_4! (>= top.usr.i_invalid! 0)) - (< top.usr.i_invalid! 5))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_1!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) (< top.usr.i_invalid_a_0 5))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_1_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) (< top.usr.i_invalid_a_1 5))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and (and top.res.abs_4 (>= top.usr.i_invalid 0)) (< top.usr.i_invalid 5))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_1)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and (and top.res.abs_4! (>= top.usr.i_invalid! 0)) (< top.usr.i_invalid! 5))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_1!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_5_e1_2552_e7_1169.sl b/benchmarks/LIA/Lustre/FIREFLY_5_e1_2552_e7_1169.sl index df6669b..6ce7dbc 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_5_e1_2552_e7_1169.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_5_e1_2552_e7_1169.sl @@ -1,1236 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (+ (+ firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_0 - (and - (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) - (< top.usr.i_invalid_a_0 5))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_1 - (and - (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) - (< top.usr.i_invalid_a_1 5))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_1_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_5 - (and - (and top.res.abs_4 (>= top.usr.i_invalid 0)) - (< top.usr.i_invalid 5))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_1)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_5! - (and - (and top.res.abs_4! (>= top.usr.i_invalid! 0)) - (< top.usr.i_invalid! 5))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_1!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ (+ firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) (< top.usr.i_invalid_a_0 5))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_1_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) (< top.usr.i_invalid_a_1 5))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and (and top.res.abs_4 (>= top.usr.i_invalid 0)) (< top.usr.i_invalid 5))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_1)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and (and top.res.abs_4! (>= top.usr.i_invalid! 0)) (< top.usr.i_invalid! 5))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_1!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_5_e2_2229.sl b/benchmarks/LIA/Lustre/FIREFLY_5_e2_2229.sl index 7168a22..5bf79dd 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_5_e2_2229.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_5_e2_2229.sl @@ -1,1236 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_0 - (and - (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) - (< top.usr.i_invalid_a_0 5))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_1 - (and - (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) - (< top.usr.i_invalid_a_1 5))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_1_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_5 - (and - (and top.res.abs_4 (>= top.usr.i_invalid 0)) - (< top.usr.i_invalid 5))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_1)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_5! - (and - (and top.res.abs_4! (>= top.usr.i_invalid! 0)) - (< top.usr.i_invalid! 5))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_1!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) (< top.usr.i_invalid_a_0 5))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_1_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) (< top.usr.i_invalid_a_1 5))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and (and top.res.abs_4 (>= top.usr.i_invalid 0)) (< top.usr.i_invalid 5))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_1)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and (and top.res.abs_4! (>= top.usr.i_invalid! 0)) (< top.usr.i_invalid! 5))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_1!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_5_e2_2884.sl b/benchmarks/LIA/Lustre/FIREFLY_5_e2_2884.sl index 7168a22..5bf79dd 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_5_e2_2884.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_5_e2_2884.sl @@ -1,1236 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_0 - (and - (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) - (< top.usr.i_invalid_a_0 5))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_1 - (and - (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) - (< top.usr.i_invalid_a_1 5))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_1_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_5 - (and - (and top.res.abs_4 (>= top.usr.i_invalid 0)) - (< top.usr.i_invalid 5))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_1)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_5! - (and - (and top.res.abs_4! (>= top.usr.i_invalid! 0)) - (< top.usr.i_invalid! 5))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_1!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) (< top.usr.i_invalid_a_0 5))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_1_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) (< top.usr.i_invalid_a_1 5))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and (and top.res.abs_4 (>= top.usr.i_invalid 0)) (< top.usr.i_invalid 5))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_1)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and (and top.res.abs_4! (>= top.usr.i_invalid! 0)) (< top.usr.i_invalid! 5))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_1!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_5_e2_2884_e1_2678.sl b/benchmarks/LIA/Lustre/FIREFLY_5_e2_2884_e1_2678.sl index e11d069..b5719a3 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_5_e2_2884_e1_2678.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_5_e2_2884_e1_2678.sl @@ -1,1240 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ - (+ - (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) - 1) - 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_0 - (and - (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) - (< top.usr.i_invalid_a_0 5))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_1 - (and - (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) - (< top.usr.i_invalid_a_1 5))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_1_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_5 - (and - (and top.res.abs_4 (>= top.usr.i_invalid 0)) - (< top.usr.i_invalid 5))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_1)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_5! - (and - (and top.res.abs_4! (>= top.usr.i_invalid! 0)) - (< top.usr.i_invalid! 5))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_1!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) (< top.usr.i_invalid_a_0 5))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_1_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) (< top.usr.i_invalid_a_1 5))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and (and top.res.abs_4 (>= top.usr.i_invalid 0)) (< top.usr.i_invalid 5))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_1)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and (and top.res.abs_4! (>= top.usr.i_invalid! 0)) (< top.usr.i_invalid! 5))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_1!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_5_e2_2884_e2_1492.sl b/benchmarks/LIA/Lustre/FIREFLY_5_e2_2884_e2_1492.sl index 160f3e0..7197a7f 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_5_e2_2884_e2_1492.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_5_e2_2884_e2_1492.sl @@ -1,1240 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ - (- - (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) - 1) - 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_0 - (and - (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) - (< top.usr.i_invalid_a_0 5))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_1 - (and - (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) - (< top.usr.i_invalid_a_1 5))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_1_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_5 - (and - (and top.res.abs_4 (>= top.usr.i_invalid 0)) - (< top.usr.i_invalid 5))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_1)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_5! - (and - (and top.res.abs_4! (>= top.usr.i_invalid! 0)) - (< top.usr.i_invalid! 5))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_1!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (- (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) (< top.usr.i_invalid_a_0 5))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_1_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) (< top.usr.i_invalid_a_1 5))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and (and top.res.abs_4 (>= top.usr.i_invalid 0)) (< top.usr.i_invalid 5))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_1)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and (and top.res.abs_4! (>= top.usr.i_invalid! 0)) (< top.usr.i_invalid! 5))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_1!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_5_e2_2884_e3_1882.sl b/benchmarks/LIA/Lustre/FIREFLY_5_e2_2884_e3_1882.sl index 6582ad0..de8a7cf 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_5_e2_2884_e3_1882.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_5_e2_2884_e3_1882.sl @@ -1,1236 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (- (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_0 - (and - (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) - (< top.usr.i_invalid_a_0 5))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_1 - (and - (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) - (< top.usr.i_invalid_a_1 5))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_1_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_5 - (and - (and top.res.abs_4 (>= top.usr.i_invalid 0)) - (< top.usr.i_invalid 5))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_1)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_5! - (and - (and top.res.abs_4! (>= top.usr.i_invalid! 0)) - (< top.usr.i_invalid! 5))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_1!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) (< top.usr.i_invalid_a_0 5))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_1_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) (< top.usr.i_invalid_a_1 5))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and (and top.res.abs_4 (>= top.usr.i_invalid 0)) (< top.usr.i_invalid 5))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_1)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and (and top.res.abs_4! (>= top.usr.i_invalid! 0)) (< top.usr.i_invalid! 5))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_1!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_5_e2_2884_e7_3594.sl b/benchmarks/LIA/Lustre/FIREFLY_5_e2_2884_e7_3594.sl index cf10da8..f0ee352 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_5_e2_2884_e7_3594.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_5_e2_2884_e7_3594.sl @@ -1,1236 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_0 - (and - (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) - (< top.usr.i_invalid_a_0 5))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_1 - (and - (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) - (< top.usr.i_invalid_a_1 5))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_1_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_5 - (and - (and top.res.abs_4 (>= top.usr.i_invalid 0)) - (< top.usr.i_invalid 5))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_1)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_5! - (and - (and top.res.abs_4! (>= top.usr.i_invalid! 0)) - (< top.usr.i_invalid! 5))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_1!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) (< top.usr.i_invalid_a_0 5))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_1_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) (< top.usr.i_invalid_a_1 5))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and (and top.res.abs_4 (>= top.usr.i_invalid 0)) (< top.usr.i_invalid 5))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_1)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and (and top.res.abs_4! (>= top.usr.i_invalid! 0)) (< top.usr.i_invalid! 5))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_1!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_6.sl b/benchmarks/LIA/Lustre/FIREFLY_6.sl index e2c0965..3b170fe 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_6.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_6.sl @@ -1,1236 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_0 - (and - (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) - (< top.usr.i_invalid_a_0 5))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (<= X2 1))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_1 - (and - (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) - (< top.usr.i_invalid_a_1 5))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_1_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (<= X2 1))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_5 - (and - (and top.res.abs_4 (>= top.usr.i_invalid 0)) - (< top.usr.i_invalid 5))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_1)) - (and - (= top.usr.OK (=> X1 (<= X2 1))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_5! - (and - (and top.res.abs_4! (>= top.usr.i_invalid! 0)) - (< top.usr.i_invalid! 5))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_1!)) - (and - (= top.usr.OK! (=> X1 (<= X2 1))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) (< top.usr.i_invalid_a_0 5))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_1_a_0)) (and (= top.usr.OK_a_0 (=> X1 (<= X2 1))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) (< top.usr.i_invalid_a_1 5))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (=> X1 (<= X2 1))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and (and top.res.abs_4 (>= top.usr.i_invalid 0)) (< top.usr.i_invalid 5))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_1)) (and (= top.usr.OK (=> X1 (<= X2 1))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and (and top.res.abs_4! (>= top.usr.i_invalid! 0)) (< top.usr.i_invalid! 5))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_1!)) (and (= top.usr.OK! (=> X1 (<= X2 1))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_6_e2_3302.sl b/benchmarks/LIA/Lustre/FIREFLY_6_e2_3302.sl index 632d69e..9660314 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_6_e2_3302.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_6_e2_3302.sl @@ -1,1236 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_0 - (and - (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) - (< top.usr.i_invalid_a_0 5))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (<= X2 1))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_1 - (and - (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) - (< top.usr.i_invalid_a_1 5))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_1_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (<= X2 1))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_5 - (and - (and top.res.abs_4 (>= top.usr.i_invalid 0)) - (< top.usr.i_invalid 5))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_1)) - (and - (= top.usr.OK (=> X1 (<= X2 1))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_5! - (and - (and top.res.abs_4! (>= top.usr.i_invalid! 0)) - (< top.usr.i_invalid! 5))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_1!)) - (and - (= top.usr.OK! (=> X1 (<= X2 1))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) (< top.usr.i_invalid_a_0 5))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_1_a_0)) (and (= top.usr.OK_a_0 (=> X1 (<= X2 1))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) (< top.usr.i_invalid_a_1 5))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (=> X1 (<= X2 1))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and (and top.res.abs_4 (>= top.usr.i_invalid 0)) (< top.usr.i_invalid 5))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_1)) (and (= top.usr.OK (=> X1 (<= X2 1))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and (and top.res.abs_4! (>= top.usr.i_invalid! 0)) (< top.usr.i_invalid! 5))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_1!)) (and (= top.usr.OK! (=> X1 (<= X2 1))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_7.sl b/benchmarks/LIA/Lustre/FIREFLY_7.sl index 81fa67e..0eaaa51 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_7.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_7.sl @@ -1,1304 +1,55 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_0 - (and - (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) - (< top.usr.i_invalid_a_0 5))) - (let - ((X1 Int top.res.abs_7_a_0)) - (let - ((X2 Bool top.res.abs_6_a_0)) - (let - ((X3 Int top.res.abs_3_a_0)) - (and - (= top.usr.OK_a_0 (=> X2 (<= X3 X1))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_1 - (and - (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) - (< top.usr.i_invalid_a_1 5))) - (let - ((X1 Int top.res.abs_7_a_1)) - (let - ((X2 Bool top.res.abs_6_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (and - (= top.usr.OK_a_1 (=> X2 (<= X3 X1))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_2_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.i_invalid_a_1 - top.res.abs_7_a_1 - top.res.inst_0_a_1 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_5 - (and - (and top.res.abs_4 (>= top.usr.i_invalid 0)) - (< top.usr.i_invalid 5))) - (let - ((X1 Int top.res.abs_7)) - (let - ((X2 Bool top.res.abs_6)) - (let - ((X3 Int top.res.abs_3)) - (and - (= top.usr.OK (=> X2 (<= X3 X1))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_1) - (__node_init_First_0 top.usr.i_invalid top.res.abs_7 top.res.inst_0) - top.res.init_flag))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_5! - (and - (and top.res.abs_4! (>= top.usr.i_invalid! 0)) - (< top.usr.i_invalid! 5))) - (let - ((X1 Int top.res.abs_7!)) - (let - ((X2 Bool top.res.abs_6!)) - (let - ((X3 Int top.res.abs_3!)) - (and - (= top.usr.OK! (=> X2 (<= X3 X1))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_4! - top.res.inst_3! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_2! - top.res.abs_5 - top.res.abs_6 - top.res.inst_2) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_1! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_1) - (__node_trans_First_0 - top.usr.i_invalid! - top.res.abs_7! - top.res.inst_0! - top.usr.i_invalid - top.res.abs_7 - top.res.inst_0) - (not top.res.init_flag!)))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) (< top.usr.i_invalid_a_0 5))) (let ((X1 top.res.abs_7_a_0)) (let ((X2 top.res.abs_6_a_0)) (let ((X3 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X2 (<= X3 X1))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) (< top.usr.i_invalid_a_1 5))) (let ((X1 top.res.abs_7_a_1)) (let ((X2 top.res.abs_6_a_1)) (let ((X3 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X2 (<= X3 X1))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_2_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.i_invalid_a_1 top.res.abs_7_a_1 top.res.inst_0_a_1 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and (and top.res.abs_4 (>= top.usr.i_invalid 0)) (< top.usr.i_invalid 5))) (let ((X1 top.res.abs_7)) (let ((X2 top.res.abs_6)) (let ((X3 top.res.abs_3)) (and (= top.usr.OK (=> X2 (<= X3 X1))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_1) (__node_init_First_0 top.usr.i_invalid top.res.abs_7 top.res.inst_0) top.res.init_flag)))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and (and top.res.abs_4! (>= top.usr.i_invalid! 0)) (< top.usr.i_invalid! 5))) (let ((X1 top.res.abs_7!)) (let ((X2 top.res.abs_6!)) (let ((X3 top.res.abs_3!)) (and (= top.usr.OK! (=> X2 (<= X3 X1))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_4! top.res.inst_3! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_2! top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_1! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_1) (__node_trans_First_0 top.usr.i_invalid! top.res.abs_7! top.res.inst_0! top.usr.i_invalid top.res.abs_7 top.res.inst_0) (not top.res.init_flag!)))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_8.sl b/benchmarks/LIA/Lustre/FIREFLY_8.sl index a647a98..8e955bf 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_8.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_8.sl @@ -1,1236 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_0 - (and - (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) - (< top.usr.i_invalid_a_0 5))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_1 - (and - (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) - (< top.usr.i_invalid_a_1 5))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_5 - (and - (and top.res.abs_4 (>= top.usr.i_invalid 0)) - (< top.usr.i_invalid 5))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_0)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_5! - (and - (and top.res.abs_4! (>= top.usr.i_invalid! 0)) - (< top.usr.i_invalid! 5))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) (< top.usr.i_invalid_a_0 5))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) (< top.usr.i_invalid_a_1 5))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and (and top.res.abs_4 (>= top.usr.i_invalid 0)) (< top.usr.i_invalid 5))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_0)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and (and top.res.abs_4! (>= top.usr.i_invalid! 0)) (< top.usr.i_invalid! 5))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_8_e2_1711.sl b/benchmarks/LIA/Lustre/FIREFLY_8_e2_1711.sl index 7ff436f..04c2a90 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_8_e2_1711.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_8_e2_1711.sl @@ -1,1236 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_0 - (and - (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) - (< top.usr.i_invalid_a_0 5))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_1 - (and - (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) - (< top.usr.i_invalid_a_1 5))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_5 - (and - (and top.res.abs_4 (>= top.usr.i_invalid 0)) - (< top.usr.i_invalid 5))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_0)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_5! - (and - (and top.res.abs_4! (>= top.usr.i_invalid! 0)) - (< top.usr.i_invalid! 5))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) (< top.usr.i_invalid_a_0 5))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) (< top.usr.i_invalid_a_1 5))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and (and top.res.abs_4 (>= top.usr.i_invalid 0)) (< top.usr.i_invalid 5))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_0)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and (and top.res.abs_4! (>= top.usr.i_invalid! 0)) (< top.usr.i_invalid! 5))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_8_e2_1711_e1_1489.sl b/benchmarks/LIA/Lustre/FIREFLY_8_e2_1711_e1_1489.sl index d7d7ee9..cb0310d 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_8_e2_1711_e1_1489.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_8_e2_1711_e1_1489.sl @@ -1,1240 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ - (+ - (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) - 1) - 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_0 - (and - (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) - (< top.usr.i_invalid_a_0 5))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_1 - (and - (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) - (< top.usr.i_invalid_a_1 5))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_5 - (and - (and top.res.abs_4 (>= top.usr.i_invalid 0)) - (< top.usr.i_invalid 5))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_0)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_5! - (and - (and top.res.abs_4! (>= top.usr.i_invalid! 0)) - (< top.usr.i_invalid! 5))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) (< top.usr.i_invalid_a_0 5))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) (< top.usr.i_invalid_a_1 5))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and (and top.res.abs_4 (>= top.usr.i_invalid 0)) (< top.usr.i_invalid 5))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_0)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and (and top.res.abs_4! (>= top.usr.i_invalid! 0)) (< top.usr.i_invalid! 5))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_8_e2_1711_e2_2673.sl b/benchmarks/LIA/Lustre/FIREFLY_8_e2_1711_e2_2673.sl index 64ce2c0..323042e 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_8_e2_1711_e2_2673.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_8_e2_1711_e2_2673.sl @@ -1,1240 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ - (- - (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) - 1) - 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_0 - (and - (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) - (< top.usr.i_invalid_a_0 5))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_1 - (and - (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) - (< top.usr.i_invalid_a_1 5))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_5 - (and - (and top.res.abs_4 (>= top.usr.i_invalid 0)) - (< top.usr.i_invalid 5))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_0)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_5! - (and - (and top.res.abs_4! (>= top.usr.i_invalid! 0)) - (< top.usr.i_invalid! 5))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (- (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) (< top.usr.i_invalid_a_0 5))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) (< top.usr.i_invalid_a_1 5))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and (and top.res.abs_4 (>= top.usr.i_invalid 0)) (< top.usr.i_invalid 5))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_0)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and (and top.res.abs_4! (>= top.usr.i_invalid! 0)) (< top.usr.i_invalid! 5))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_8_e2_1711_e3_1753.sl b/benchmarks/LIA/Lustre/FIREFLY_8_e2_1711_e3_1753.sl index 1e0622a..0ee8a24 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_8_e2_1711_e3_1753.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_8_e2_1711_e3_1753.sl @@ -1,1236 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (- (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_0 - (and - (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) - (< top.usr.i_invalid_a_0 5))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_1 - (and - (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) - (< top.usr.i_invalid_a_1 5))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_5 - (and - (and top.res.abs_4 (>= top.usr.i_invalid 0)) - (< top.usr.i_invalid 5))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_0)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_5! - (and - (and top.res.abs_4! (>= top.usr.i_invalid! 0)) - (< top.usr.i_invalid! 5))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) (< top.usr.i_invalid_a_0 5))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) (< top.usr.i_invalid_a_1 5))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and (and top.res.abs_4 (>= top.usr.i_invalid 0)) (< top.usr.i_invalid 5))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_0)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and (and top.res.abs_4! (>= top.usr.i_invalid! 0)) (< top.usr.i_invalid! 5))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_9.sl b/benchmarks/LIA/Lustre/FIREFLY_9.sl index ef7da1c..6c781fa 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_9.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_9.sl @@ -1,1304 +1,55 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_0 - (and - (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) - (< top.usr.i_invalid_a_0 5))) - (let - ((X1 Int top.res.abs_7_a_0)) - (let - ((X2 Bool top.res.abs_6_a_0)) - (let - ((X3 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (=> X2 (<= X3 X1))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_1 - (and - (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) - (< top.usr.i_invalid_a_1 5))) - (let - ((X1 Int top.res.abs_7_a_1)) - (let - ((X2 Bool top.res.abs_6_a_1)) - (let - ((X3 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X2 (<= X3 X1))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_2_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.i_invalid_a_1 - top.res.abs_7_a_1 - top.res.inst_0_a_1 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_5 - (and - (and top.res.abs_4 (>= top.usr.i_invalid 0)) - (< top.usr.i_invalid 5))) - (let - ((X1 Int top.res.abs_7)) - (let - ((X2 Bool top.res.abs_6)) - (let - ((X3 Int top.res.abs_0)) - (and - (= top.usr.OK (=> X2 (<= X3 X1))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_1) - (__node_init_First_0 top.usr.i_invalid top.res.abs_7 top.res.inst_0) - top.res.init_flag))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_5! - (and - (and top.res.abs_4! (>= top.usr.i_invalid! 0)) - (< top.usr.i_invalid! 5))) - (let - ((X1 Int top.res.abs_7!)) - (let - ((X2 Bool top.res.abs_6!)) - (let - ((X3 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X2 (<= X3 X1))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_4! - top.res.inst_3! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_2! - top.res.abs_5 - top.res.abs_6 - top.res.inst_2) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_1! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_1) - (__node_trans_First_0 - top.usr.i_invalid! - top.res.abs_7! - top.res.inst_0! - top.usr.i_invalid - top.res.abs_7 - top.res.inst_0) - (not top.res.init_flag!)))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) (< top.usr.i_invalid_a_0 5))) (let ((X1 top.res.abs_7_a_0)) (let ((X2 top.res.abs_6_a_0)) (let ((X3 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X2 (<= X3 X1))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) (< top.usr.i_invalid_a_1 5))) (let ((X1 top.res.abs_7_a_1)) (let ((X2 top.res.abs_6_a_1)) (let ((X3 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X2 (<= X3 X1))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_2_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.i_invalid_a_1 top.res.abs_7_a_1 top.res.inst_0_a_1 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and (and top.res.abs_4 (>= top.usr.i_invalid 0)) (< top.usr.i_invalid 5))) (let ((X1 top.res.abs_7)) (let ((X2 top.res.abs_6)) (let ((X3 top.res.abs_0)) (and (= top.usr.OK (=> X2 (<= X3 X1))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_1) (__node_init_First_0 top.usr.i_invalid top.res.abs_7 top.res.inst_0) top.res.init_flag)))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and (and top.res.abs_4! (>= top.usr.i_invalid! 0)) (< top.usr.i_invalid! 5))) (let ((X1 top.res.abs_7!)) (let ((X2 top.res.abs_6!)) (let ((X3 top.res.abs_0!)) (and (= top.usr.OK! (=> X2 (<= X3 X1))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_4! top.res.inst_3! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_2! top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_1! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_1) (__node_trans_First_0 top.usr.i_invalid! top.res.abs_7! top.res.inst_0! top.usr.i_invalid top.res.abs_7 top.res.inst_0) (not top.res.init_flag!)))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_9_e7_170_e3_3647.sl b/benchmarks/LIA/Lustre/FIREFLY_9_e7_170_e3_3647.sl index 78ffa63..d7350f7 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_9_e7_170_e3_3647.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_9_e7_170_e3_3647.sl @@ -1,1304 +1,55 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (- firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_0 - (and - (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) - (< top.usr.i_invalid_a_0 5))) - (let - ((X1 Int top.res.abs_7_a_0)) - (let - ((X2 Bool top.res.abs_6_a_0)) - (let - ((X3 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (=> X2 (<= X3 X1))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_1 - (and - (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) - (< top.usr.i_invalid_a_1 5))) - (let - ((X1 Int top.res.abs_7_a_1)) - (let - ((X2 Bool top.res.abs_6_a_1)) - (let - ((X3 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X2 (<= X3 X1))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_2_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.i_invalid_a_1 - top.res.abs_7_a_1 - top.res.inst_0_a_1 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_5 - (and - (and top.res.abs_4 (>= top.usr.i_invalid 0)) - (< top.usr.i_invalid 5))) - (let - ((X1 Int top.res.abs_7)) - (let - ((X2 Bool top.res.abs_6)) - (let - ((X3 Int top.res.abs_0)) - (and - (= top.usr.OK (=> X2 (<= X3 X1))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_1) - (__node_init_First_0 top.usr.i_invalid top.res.abs_7 top.res.inst_0) - top.res.init_flag))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_5! - (and - (and top.res.abs_4! (>= top.usr.i_invalid! 0)) - (< top.usr.i_invalid! 5))) - (let - ((X1 Int top.res.abs_7!)) - (let - ((X2 Bool top.res.abs_6!)) - (let - ((X3 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X2 (<= X3 X1))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_4! - top.res.inst_3! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_2! - top.res.abs_5 - top.res.abs_6 - top.res.inst_2) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_1! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_1) - (__node_trans_First_0 - top.usr.i_invalid! - top.res.abs_7! - top.res.inst_0! - top.usr.i_invalid - top.res.abs_7 - top.res.inst_0) - (not top.res.init_flag!)))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (- firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) (< top.usr.i_invalid_a_0 5))) (let ((X1 top.res.abs_7_a_0)) (let ((X2 top.res.abs_6_a_0)) (let ((X3 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X2 (<= X3 X1))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) (< top.usr.i_invalid_a_1 5))) (let ((X1 top.res.abs_7_a_1)) (let ((X2 top.res.abs_6_a_1)) (let ((X3 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X2 (<= X3 X1))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_2_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.i_invalid_a_1 top.res.abs_7_a_1 top.res.inst_0_a_1 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and (and top.res.abs_4 (>= top.usr.i_invalid 0)) (< top.usr.i_invalid 5))) (let ((X1 top.res.abs_7)) (let ((X2 top.res.abs_6)) (let ((X3 top.res.abs_0)) (and (= top.usr.OK (=> X2 (<= X3 X1))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_1) (__node_init_First_0 top.usr.i_invalid top.res.abs_7 top.res.inst_0) top.res.init_flag)))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and (and top.res.abs_4! (>= top.usr.i_invalid! 0)) (< top.usr.i_invalid! 5))) (let ((X1 top.res.abs_7!)) (let ((X2 top.res.abs_6!)) (let ((X3 top.res.abs_0!)) (and (= top.usr.OK! (=> X2 (<= X3 X1))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_4! top.res.inst_3! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_2! top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_1! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_1) (__node_trans_First_0 top.usr.i_invalid! top.res.abs_7! top.res.inst_0! top.usr.i_invalid top.res.abs_7 top.res.inst_0) (not top.res.init_flag!)))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_a3.sl b/benchmarks/LIA/Lustre/FIREFLY_a3.sl index d07dfbc..c81ad4f 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_a3.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_a3.sl @@ -1,1353 +1,55 @@ (set-logic LIA) -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_7_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Bool (=> X1 (>= X3 0)))) - (let - ((X5 Int top.res.abs_1_a_0)) - (let - ((X6 Bool (=> X1 (>= X5 0)))) - (let - ((X7 Int top.res.abs_3_a_0)) - (let - ((X8 Int top.res.abs_0_a_0)) - (let - ((X9 Bool (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) - (let - ((X10 Bool (=> X1 (<= X7 X2)))) - (and - (= top.usr.OK_a_0 (and (and (and X9 X6) X4) X10)) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_First_0 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_7_a_1)) - (let - ((X3 Int top.res.abs_2_a_1)) - (let - ((X4 Bool (=> X1 (>= X3 0)))) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Bool (=> X1 (>= X5 0)))) - (let - ((X7 Int top.res.abs_3_a_1)) - (let - ((X8 Int top.res.abs_0_a_1)) - (let - ((X9 Bool (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) - (let - ((X10 Bool (=> X1 (<= X7 X2)))) - (and - (= top.usr.OK_a_1 (and (and (and X9 X6) X4) X10)) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_First_0 - top.usr.i_invalid_a_1 - top.res.abs_7_a_1 - top.res.inst_2_a_1 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_7)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Bool (=> X1 (>= X3 0)))) - (let - ((X5 Int top.res.abs_1)) - (let - ((X6 Bool (=> X1 (>= X5 0)))) - (let - ((X7 Int top.res.abs_3)) - (let - ((X8 Int top.res.abs_0)) - (let - ((X9 Bool (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) - (let - ((X10 Bool (=> X1 (<= X7 X2)))) - (and - (= top.usr.OK (and (and (and X9 X6) X4) X10)) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_init_First_0 - top.usr.i_invalid - top.res.abs_7 - top.res.inst_2) - (__node_init_Sofar_0 - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_7!)) - (let - ((X3 Int top.res.abs_2!)) - (let - ((X4 Bool (=> X1 (>= X3 0)))) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Bool (=> X1 (>= X5 0)))) - (let - ((X7 Int top.res.abs_3!)) - (let - ((X8 Int top.res.abs_0!)) - (let - ((X9 Bool (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) - (let - ((X10 Bool (=> X1 (<= X7 X2)))) - (and - (= top.usr.OK! (and (and (and X9 X6) X4) X10)) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_4! - top.res.inst_3! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_trans_First_0 - top.usr.i_invalid! - top.res.abs_7! - top.res.inst_2! - top.usr.i_invalid - top.res.abs_7 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))))))))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_7_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 (=> X1 (>= X3 0)))) (let ((X5 top.res.abs_1_a_0)) (let ((X6 (=> X1 (>= X5 0)))) (let ((X7 top.res.abs_3_a_0)) (let ((X8 top.res.abs_0_a_0)) (let ((X9 (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) (let ((X10 (=> X1 (<= X7 X2)))) (and (= top.usr.OK_a_0 (and (and (and X9 X6) X4) X10)) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_First_0 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_7_a_1)) (let ((X3 top.res.abs_2_a_1)) (let ((X4 (=> X1 (>= X3 0)))) (let ((X5 top.res.abs_1_a_1)) (let ((X6 (=> X1 (>= X5 0)))) (let ((X7 top.res.abs_3_a_1)) (let ((X8 top.res.abs_0_a_1)) (let ((X9 (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) (let ((X10 (=> X1 (<= X7 X2)))) (and (= top.usr.OK_a_1 (and (and (and X9 X6) X4) X10)) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_First_0 top.usr.i_invalid_a_1 top.res.abs_7_a_1 top.res.inst_2_a_1 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_7)) (let ((X3 top.res.abs_2)) (let ((X4 (=> X1 (>= X3 0)))) (let ((X5 top.res.abs_1)) (let ((X6 (=> X1 (>= X5 0)))) (let ((X7 top.res.abs_3)) (let ((X8 top.res.abs_0)) (let ((X9 (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) (let ((X10 (=> X1 (<= X7 X2)))) (and (= top.usr.OK (and (and (and X9 X6) X4) X10)) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_init_First_0 top.usr.i_invalid top.res.abs_7 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))))))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_7!)) (let ((X3 top.res.abs_2!)) (let ((X4 (=> X1 (>= X3 0)))) (let ((X5 top.res.abs_1!)) (let ((X6 (=> X1 (>= X5 0)))) (let ((X7 top.res.abs_3!)) (let ((X8 top.res.abs_0!)) (let ((X9 (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) (let ((X10 (=> X1 (<= X7 X2)))) (and (= top.usr.OK! (and (and (and X9 X6) X4) X10)) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_4! top.res.inst_3! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_trans_First_0 top.usr.i_invalid! top.res.abs_7! top.res.inst_2! top.usr.i_invalid top.res.abs_7 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))))))))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_a3_e1_3233_e2_2392.sl b/benchmarks/LIA/Lustre/FIREFLY_a3_e1_3233_e2_2392.sl index 352b19a..24c0e55 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_a3_e1_3233_e2_2392.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_a3_e1_3233_e2_2392.sl @@ -1,1357 +1,55 @@ (set-logic LIA) -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ - (- - (+ (+ firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) - 1) - 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_7_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Bool (=> X1 (>= X3 0)))) - (let - ((X5 Int top.res.abs_1_a_0)) - (let - ((X6 Bool (=> X1 (>= X5 0)))) - (let - ((X7 Int top.res.abs_3_a_0)) - (let - ((X8 Int top.res.abs_0_a_0)) - (let - ((X9 Bool (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) - (let - ((X10 Bool (=> X1 (<= X7 X2)))) - (and - (= top.usr.OK_a_0 (and (and (and X9 X6) X4) X10)) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_First_0 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_7_a_1)) - (let - ((X3 Int top.res.abs_2_a_1)) - (let - ((X4 Bool (=> X1 (>= X3 0)))) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Bool (=> X1 (>= X5 0)))) - (let - ((X7 Int top.res.abs_3_a_1)) - (let - ((X8 Int top.res.abs_0_a_1)) - (let - ((X9 Bool (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) - (let - ((X10 Bool (=> X1 (<= X7 X2)))) - (and - (= top.usr.OK_a_1 (and (and (and X9 X6) X4) X10)) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_First_0 - top.usr.i_invalid_a_1 - top.res.abs_7_a_1 - top.res.inst_2_a_1 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_7)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Bool (=> X1 (>= X3 0)))) - (let - ((X5 Int top.res.abs_1)) - (let - ((X6 Bool (=> X1 (>= X5 0)))) - (let - ((X7 Int top.res.abs_3)) - (let - ((X8 Int top.res.abs_0)) - (let - ((X9 Bool (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) - (let - ((X10 Bool (=> X1 (<= X7 X2)))) - (and - (= top.usr.OK (and (and (and X9 X6) X4) X10)) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_init_First_0 - top.usr.i_invalid - top.res.abs_7 - top.res.inst_2) - (__node_init_Sofar_0 - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_7!)) - (let - ((X3 Int top.res.abs_2!)) - (let - ((X4 Bool (=> X1 (>= X3 0)))) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Bool (=> X1 (>= X5 0)))) - (let - ((X7 Int top.res.abs_3!)) - (let - ((X8 Int top.res.abs_0!)) - (let - ((X9 Bool (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) - (let - ((X10 Bool (=> X1 (<= X7 X2)))) - (and - (= top.usr.OK! (and (and (and X9 X6) X4) X10)) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_4! - top.res.inst_3! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_trans_First_0 - top.usr.i_invalid! - top.res.abs_7! - top.res.inst_2! - top.usr.i_invalid - top.res.abs_7 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))))))))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (- (+ (+ firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_7_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 (=> X1 (>= X3 0)))) (let ((X5 top.res.abs_1_a_0)) (let ((X6 (=> X1 (>= X5 0)))) (let ((X7 top.res.abs_3_a_0)) (let ((X8 top.res.abs_0_a_0)) (let ((X9 (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) (let ((X10 (=> X1 (<= X7 X2)))) (and (= top.usr.OK_a_0 (and (and (and X9 X6) X4) X10)) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_First_0 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_7_a_1)) (let ((X3 top.res.abs_2_a_1)) (let ((X4 (=> X1 (>= X3 0)))) (let ((X5 top.res.abs_1_a_1)) (let ((X6 (=> X1 (>= X5 0)))) (let ((X7 top.res.abs_3_a_1)) (let ((X8 top.res.abs_0_a_1)) (let ((X9 (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) (let ((X10 (=> X1 (<= X7 X2)))) (and (= top.usr.OK_a_1 (and (and (and X9 X6) X4) X10)) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_First_0 top.usr.i_invalid_a_1 top.res.abs_7_a_1 top.res.inst_2_a_1 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_7)) (let ((X3 top.res.abs_2)) (let ((X4 (=> X1 (>= X3 0)))) (let ((X5 top.res.abs_1)) (let ((X6 (=> X1 (>= X5 0)))) (let ((X7 top.res.abs_3)) (let ((X8 top.res.abs_0)) (let ((X9 (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) (let ((X10 (=> X1 (<= X7 X2)))) (and (= top.usr.OK (and (and (and X9 X6) X4) X10)) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_init_First_0 top.usr.i_invalid top.res.abs_7 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))))))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_7!)) (let ((X3 top.res.abs_2!)) (let ((X4 (=> X1 (>= X3 0)))) (let ((X5 top.res.abs_1!)) (let ((X6 (=> X1 (>= X5 0)))) (let ((X7 top.res.abs_3!)) (let ((X8 top.res.abs_0!)) (let ((X9 (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) (let ((X10 (=> X1 (<= X7 X2)))) (and (= top.usr.OK! (and (and (and X9 X6) X4) X10)) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_4! top.res.inst_3! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_trans_First_0 top.usr.i_invalid! top.res.abs_7! top.res.inst_2! top.usr.i_invalid top.res.abs_7 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))))))))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_a3_e1_3233_e3_2970.sl b/benchmarks/LIA/Lustre/FIREFLY_a3_e1_3233_e3_2970.sl index 35b49af..d0b7c4a 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_a3_e1_3233_e3_2970.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_a3_e1_3233_e3_2970.sl @@ -1,1353 +1,55 @@ (set-logic LIA) -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (- (+ (+ firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_7_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Bool (=> X1 (>= X3 0)))) - (let - ((X5 Int top.res.abs_1_a_0)) - (let - ((X6 Bool (=> X1 (>= X5 0)))) - (let - ((X7 Int top.res.abs_3_a_0)) - (let - ((X8 Int top.res.abs_0_a_0)) - (let - ((X9 Bool (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) - (let - ((X10 Bool (=> X1 (<= X7 X2)))) - (and - (= top.usr.OK_a_0 (and (and (and X9 X6) X4) X10)) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_First_0 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_7_a_1)) - (let - ((X3 Int top.res.abs_2_a_1)) - (let - ((X4 Bool (=> X1 (>= X3 0)))) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Bool (=> X1 (>= X5 0)))) - (let - ((X7 Int top.res.abs_3_a_1)) - (let - ((X8 Int top.res.abs_0_a_1)) - (let - ((X9 Bool (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) - (let - ((X10 Bool (=> X1 (<= X7 X2)))) - (and - (= top.usr.OK_a_1 (and (and (and X9 X6) X4) X10)) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_First_0 - top.usr.i_invalid_a_1 - top.res.abs_7_a_1 - top.res.inst_2_a_1 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_7)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Bool (=> X1 (>= X3 0)))) - (let - ((X5 Int top.res.abs_1)) - (let - ((X6 Bool (=> X1 (>= X5 0)))) - (let - ((X7 Int top.res.abs_3)) - (let - ((X8 Int top.res.abs_0)) - (let - ((X9 Bool (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) - (let - ((X10 Bool (=> X1 (<= X7 X2)))) - (and - (= top.usr.OK (and (and (and X9 X6) X4) X10)) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_init_First_0 - top.usr.i_invalid - top.res.abs_7 - top.res.inst_2) - (__node_init_Sofar_0 - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_7!)) - (let - ((X3 Int top.res.abs_2!)) - (let - ((X4 Bool (=> X1 (>= X3 0)))) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Bool (=> X1 (>= X5 0)))) - (let - ((X7 Int top.res.abs_3!)) - (let - ((X8 Int top.res.abs_0!)) - (let - ((X9 Bool (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) - (let - ((X10 Bool (=> X1 (<= X7 X2)))) - (and - (= top.usr.OK! (and (and (and X9 X6) X4) X10)) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_4! - top.res.inst_3! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_trans_First_0 - top.usr.i_invalid! - top.res.abs_7! - top.res.inst_2! - top.usr.i_invalid - top.res.abs_7 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))))))))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- (+ (+ firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_7_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 (=> X1 (>= X3 0)))) (let ((X5 top.res.abs_1_a_0)) (let ((X6 (=> X1 (>= X5 0)))) (let ((X7 top.res.abs_3_a_0)) (let ((X8 top.res.abs_0_a_0)) (let ((X9 (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) (let ((X10 (=> X1 (<= X7 X2)))) (and (= top.usr.OK_a_0 (and (and (and X9 X6) X4) X10)) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_First_0 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_7_a_1)) (let ((X3 top.res.abs_2_a_1)) (let ((X4 (=> X1 (>= X3 0)))) (let ((X5 top.res.abs_1_a_1)) (let ((X6 (=> X1 (>= X5 0)))) (let ((X7 top.res.abs_3_a_1)) (let ((X8 top.res.abs_0_a_1)) (let ((X9 (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) (let ((X10 (=> X1 (<= X7 X2)))) (and (= top.usr.OK_a_1 (and (and (and X9 X6) X4) X10)) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_First_0 top.usr.i_invalid_a_1 top.res.abs_7_a_1 top.res.inst_2_a_1 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_7)) (let ((X3 top.res.abs_2)) (let ((X4 (=> X1 (>= X3 0)))) (let ((X5 top.res.abs_1)) (let ((X6 (=> X1 (>= X5 0)))) (let ((X7 top.res.abs_3)) (let ((X8 top.res.abs_0)) (let ((X9 (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) (let ((X10 (=> X1 (<= X7 X2)))) (and (= top.usr.OK (and (and (and X9 X6) X4) X10)) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_init_First_0 top.usr.i_invalid top.res.abs_7 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))))))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_7!)) (let ((X3 top.res.abs_2!)) (let ((X4 (=> X1 (>= X3 0)))) (let ((X5 top.res.abs_1!)) (let ((X6 (=> X1 (>= X5 0)))) (let ((X7 top.res.abs_3!)) (let ((X8 top.res.abs_0!)) (let ((X9 (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) (let ((X10 (=> X1 (<= X7 X2)))) (and (= top.usr.OK! (and (and (and X9 X6) X4) X10)) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_4! top.res.inst_3! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_trans_First_0 top.usr.i_invalid! top.res.abs_7! top.res.inst_2! top.usr.i_invalid top.res.abs_7 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))))))))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_a3_e2_2086_e1_3235.sl b/benchmarks/LIA/Lustre/FIREFLY_a3_e2_2086_e1_3235.sl index 2aafc98..9214501 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_a3_e2_2086_e1_3235.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_a3_e2_2086_e1_3235.sl @@ -1,1357 +1,55 @@ (set-logic LIA) -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ - (+ - (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) - 1) - 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_7_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Bool (=> X1 (>= X3 0)))) - (let - ((X5 Int top.res.abs_1_a_0)) - (let - ((X6 Bool (=> X1 (>= X5 0)))) - (let - ((X7 Int top.res.abs_3_a_0)) - (let - ((X8 Int top.res.abs_0_a_0)) - (let - ((X9 Bool (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) - (let - ((X10 Bool (=> X1 (<= X7 X2)))) - (and - (= top.usr.OK_a_0 (and (and (and X9 X6) X4) X10)) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_First_0 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_7_a_1)) - (let - ((X3 Int top.res.abs_2_a_1)) - (let - ((X4 Bool (=> X1 (>= X3 0)))) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Bool (=> X1 (>= X5 0)))) - (let - ((X7 Int top.res.abs_3_a_1)) - (let - ((X8 Int top.res.abs_0_a_1)) - (let - ((X9 Bool (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) - (let - ((X10 Bool (=> X1 (<= X7 X2)))) - (and - (= top.usr.OK_a_1 (and (and (and X9 X6) X4) X10)) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_First_0 - top.usr.i_invalid_a_1 - top.res.abs_7_a_1 - top.res.inst_2_a_1 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_7)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Bool (=> X1 (>= X3 0)))) - (let - ((X5 Int top.res.abs_1)) - (let - ((X6 Bool (=> X1 (>= X5 0)))) - (let - ((X7 Int top.res.abs_3)) - (let - ((X8 Int top.res.abs_0)) - (let - ((X9 Bool (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) - (let - ((X10 Bool (=> X1 (<= X7 X2)))) - (and - (= top.usr.OK (and (and (and X9 X6) X4) X10)) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_init_First_0 - top.usr.i_invalid - top.res.abs_7 - top.res.inst_2) - (__node_init_Sofar_0 - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_7!)) - (let - ((X3 Int top.res.abs_2!)) - (let - ((X4 Bool (=> X1 (>= X3 0)))) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Bool (=> X1 (>= X5 0)))) - (let - ((X7 Int top.res.abs_3!)) - (let - ((X8 Int top.res.abs_0!)) - (let - ((X9 Bool (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) - (let - ((X10 Bool (=> X1 (<= X7 X2)))) - (and - (= top.usr.OK! (and (and (and X9 X6) X4) X10)) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_4! - top.res.inst_3! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_trans_First_0 - top.usr.i_invalid! - top.res.abs_7! - top.res.inst_2! - top.usr.i_invalid - top.res.abs_7 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))))))))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_7_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 (=> X1 (>= X3 0)))) (let ((X5 top.res.abs_1_a_0)) (let ((X6 (=> X1 (>= X5 0)))) (let ((X7 top.res.abs_3_a_0)) (let ((X8 top.res.abs_0_a_0)) (let ((X9 (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) (let ((X10 (=> X1 (<= X7 X2)))) (and (= top.usr.OK_a_0 (and (and (and X9 X6) X4) X10)) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_First_0 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_7_a_1)) (let ((X3 top.res.abs_2_a_1)) (let ((X4 (=> X1 (>= X3 0)))) (let ((X5 top.res.abs_1_a_1)) (let ((X6 (=> X1 (>= X5 0)))) (let ((X7 top.res.abs_3_a_1)) (let ((X8 top.res.abs_0_a_1)) (let ((X9 (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) (let ((X10 (=> X1 (<= X7 X2)))) (and (= top.usr.OK_a_1 (and (and (and X9 X6) X4) X10)) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_First_0 top.usr.i_invalid_a_1 top.res.abs_7_a_1 top.res.inst_2_a_1 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_7)) (let ((X3 top.res.abs_2)) (let ((X4 (=> X1 (>= X3 0)))) (let ((X5 top.res.abs_1)) (let ((X6 (=> X1 (>= X5 0)))) (let ((X7 top.res.abs_3)) (let ((X8 top.res.abs_0)) (let ((X9 (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) (let ((X10 (=> X1 (<= X7 X2)))) (and (= top.usr.OK (and (and (and X9 X6) X4) X10)) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_init_First_0 top.usr.i_invalid top.res.abs_7 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))))))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_7!)) (let ((X3 top.res.abs_2!)) (let ((X4 (=> X1 (>= X3 0)))) (let ((X5 top.res.abs_1!)) (let ((X6 (=> X1 (>= X5 0)))) (let ((X7 top.res.abs_3!)) (let ((X8 top.res.abs_0!)) (let ((X9 (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) (let ((X10 (=> X1 (<= X7 X2)))) (and (= top.usr.OK! (and (and (and X9 X6) X4) X10)) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_4! top.res.inst_3! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_trans_First_0 top.usr.i_invalid! top.res.abs_7! top.res.inst_2! top.usr.i_invalid top.res.abs_7 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))))))))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_a3_e2_2086_e2_2689.sl b/benchmarks/LIA/Lustre/FIREFLY_a3_e2_2086_e2_2689.sl index 698a5d8..7b3a71d 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_a3_e2_2086_e2_2689.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_a3_e2_2086_e2_2689.sl @@ -1,1357 +1,55 @@ (set-logic LIA) -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ - (- - (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) - 1) - 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_7_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Bool (=> X1 (>= X3 0)))) - (let - ((X5 Int top.res.abs_1_a_0)) - (let - ((X6 Bool (=> X1 (>= X5 0)))) - (let - ((X7 Int top.res.abs_3_a_0)) - (let - ((X8 Int top.res.abs_0_a_0)) - (let - ((X9 Bool (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) - (let - ((X10 Bool (=> X1 (<= X7 X2)))) - (and - (= top.usr.OK_a_0 (and (and (and X9 X6) X4) X10)) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_First_0 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_7_a_1)) - (let - ((X3 Int top.res.abs_2_a_1)) - (let - ((X4 Bool (=> X1 (>= X3 0)))) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Bool (=> X1 (>= X5 0)))) - (let - ((X7 Int top.res.abs_3_a_1)) - (let - ((X8 Int top.res.abs_0_a_1)) - (let - ((X9 Bool (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) - (let - ((X10 Bool (=> X1 (<= X7 X2)))) - (and - (= top.usr.OK_a_1 (and (and (and X9 X6) X4) X10)) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_First_0 - top.usr.i_invalid_a_1 - top.res.abs_7_a_1 - top.res.inst_2_a_1 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_7)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Bool (=> X1 (>= X3 0)))) - (let - ((X5 Int top.res.abs_1)) - (let - ((X6 Bool (=> X1 (>= X5 0)))) - (let - ((X7 Int top.res.abs_3)) - (let - ((X8 Int top.res.abs_0)) - (let - ((X9 Bool (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) - (let - ((X10 Bool (=> X1 (<= X7 X2)))) - (and - (= top.usr.OK (and (and (and X9 X6) X4) X10)) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_init_First_0 - top.usr.i_invalid - top.res.abs_7 - top.res.inst_2) - (__node_init_Sofar_0 - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_7!)) - (let - ((X3 Int top.res.abs_2!)) - (let - ((X4 Bool (=> X1 (>= X3 0)))) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Bool (=> X1 (>= X5 0)))) - (let - ((X7 Int top.res.abs_3!)) - (let - ((X8 Int top.res.abs_0!)) - (let - ((X9 Bool (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) - (let - ((X10 Bool (=> X1 (<= X7 X2)))) - (and - (= top.usr.OK! (and (and (and X9 X6) X4) X10)) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_4! - top.res.inst_3! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_trans_First_0 - top.usr.i_invalid! - top.res.abs_7! - top.res.inst_2! - top.usr.i_invalid - top.res.abs_7 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))))))))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (- (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_7_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 (=> X1 (>= X3 0)))) (let ((X5 top.res.abs_1_a_0)) (let ((X6 (=> X1 (>= X5 0)))) (let ((X7 top.res.abs_3_a_0)) (let ((X8 top.res.abs_0_a_0)) (let ((X9 (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) (let ((X10 (=> X1 (<= X7 X2)))) (and (= top.usr.OK_a_0 (and (and (and X9 X6) X4) X10)) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_First_0 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_7_a_1)) (let ((X3 top.res.abs_2_a_1)) (let ((X4 (=> X1 (>= X3 0)))) (let ((X5 top.res.abs_1_a_1)) (let ((X6 (=> X1 (>= X5 0)))) (let ((X7 top.res.abs_3_a_1)) (let ((X8 top.res.abs_0_a_1)) (let ((X9 (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) (let ((X10 (=> X1 (<= X7 X2)))) (and (= top.usr.OK_a_1 (and (and (and X9 X6) X4) X10)) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_First_0 top.usr.i_invalid_a_1 top.res.abs_7_a_1 top.res.inst_2_a_1 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_7)) (let ((X3 top.res.abs_2)) (let ((X4 (=> X1 (>= X3 0)))) (let ((X5 top.res.abs_1)) (let ((X6 (=> X1 (>= X5 0)))) (let ((X7 top.res.abs_3)) (let ((X8 top.res.abs_0)) (let ((X9 (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) (let ((X10 (=> X1 (<= X7 X2)))) (and (= top.usr.OK (and (and (and X9 X6) X4) X10)) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_init_First_0 top.usr.i_invalid top.res.abs_7 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))))))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_7!)) (let ((X3 top.res.abs_2!)) (let ((X4 (=> X1 (>= X3 0)))) (let ((X5 top.res.abs_1!)) (let ((X6 (=> X1 (>= X5 0)))) (let ((X7 top.res.abs_3!)) (let ((X8 top.res.abs_0!)) (let ((X9 (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) (let ((X10 (=> X1 (<= X7 X2)))) (and (= top.usr.OK! (and (and (and X9 X6) X4) X10)) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_4! top.res.inst_3! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_trans_First_0 top.usr.i_invalid! top.res.abs_7! top.res.inst_2! top.usr.i_invalid top.res.abs_7 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))))))))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_a3_e2_2086_e3_2542.sl b/benchmarks/LIA/Lustre/FIREFLY_a3_e2_2086_e3_2542.sl index 2741ebf..367cb86 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_a3_e2_2086_e3_2542.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_a3_e2_2086_e3_2542.sl @@ -1,1353 +1,55 @@ (set-logic LIA) -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (- (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_7_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Bool (=> X1 (>= X3 0)))) - (let - ((X5 Int top.res.abs_1_a_0)) - (let - ((X6 Bool (=> X1 (>= X5 0)))) - (let - ((X7 Int top.res.abs_3_a_0)) - (let - ((X8 Int top.res.abs_0_a_0)) - (let - ((X9 Bool (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) - (let - ((X10 Bool (=> X1 (<= X7 X2)))) - (and - (= top.usr.OK_a_0 (and (and (and X9 X6) X4) X10)) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_First_0 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_7_a_1)) - (let - ((X3 Int top.res.abs_2_a_1)) - (let - ((X4 Bool (=> X1 (>= X3 0)))) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Bool (=> X1 (>= X5 0)))) - (let - ((X7 Int top.res.abs_3_a_1)) - (let - ((X8 Int top.res.abs_0_a_1)) - (let - ((X9 Bool (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) - (let - ((X10 Bool (=> X1 (<= X7 X2)))) - (and - (= top.usr.OK_a_1 (and (and (and X9 X6) X4) X10)) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_First_0 - top.usr.i_invalid_a_1 - top.res.abs_7_a_1 - top.res.inst_2_a_1 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_7)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Bool (=> X1 (>= X3 0)))) - (let - ((X5 Int top.res.abs_1)) - (let - ((X6 Bool (=> X1 (>= X5 0)))) - (let - ((X7 Int top.res.abs_3)) - (let - ((X8 Int top.res.abs_0)) - (let - ((X9 Bool (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) - (let - ((X10 Bool (=> X1 (<= X7 X2)))) - (and - (= top.usr.OK (and (and (and X9 X6) X4) X10)) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_init_First_0 - top.usr.i_invalid - top.res.abs_7 - top.res.inst_2) - (__node_init_Sofar_0 - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_7!)) - (let - ((X3 Int top.res.abs_2!)) - (let - ((X4 Bool (=> X1 (>= X3 0)))) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Bool (=> X1 (>= X5 0)))) - (let - ((X7 Int top.res.abs_3!)) - (let - ((X8 Int top.res.abs_0!)) - (let - ((X9 Bool (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) - (let - ((X10 Bool (=> X1 (<= X7 X2)))) - (and - (= top.usr.OK! (and (and (and X9 X6) X4) X10)) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_4! - top.res.inst_3! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_trans_First_0 - top.usr.i_invalid! - top.res.abs_7! - top.res.inst_2! - top.usr.i_invalid - top.res.abs_7 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))))))))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_7_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 (=> X1 (>= X3 0)))) (let ((X5 top.res.abs_1_a_0)) (let ((X6 (=> X1 (>= X5 0)))) (let ((X7 top.res.abs_3_a_0)) (let ((X8 top.res.abs_0_a_0)) (let ((X9 (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) (let ((X10 (=> X1 (<= X7 X2)))) (and (= top.usr.OK_a_0 (and (and (and X9 X6) X4) X10)) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_First_0 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_7_a_1)) (let ((X3 top.res.abs_2_a_1)) (let ((X4 (=> X1 (>= X3 0)))) (let ((X5 top.res.abs_1_a_1)) (let ((X6 (=> X1 (>= X5 0)))) (let ((X7 top.res.abs_3_a_1)) (let ((X8 top.res.abs_0_a_1)) (let ((X9 (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) (let ((X10 (=> X1 (<= X7 X2)))) (and (= top.usr.OK_a_1 (and (and (and X9 X6) X4) X10)) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_First_0 top.usr.i_invalid_a_1 top.res.abs_7_a_1 top.res.inst_2_a_1 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_7)) (let ((X3 top.res.abs_2)) (let ((X4 (=> X1 (>= X3 0)))) (let ((X5 top.res.abs_1)) (let ((X6 (=> X1 (>= X5 0)))) (let ((X7 top.res.abs_3)) (let ((X8 top.res.abs_0)) (let ((X9 (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) (let ((X10 (=> X1 (<= X7 X2)))) (and (= top.usr.OK (and (and (and X9 X6) X4) X10)) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_init_First_0 top.usr.i_invalid top.res.abs_7 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))))))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_7!)) (let ((X3 top.res.abs_2!)) (let ((X4 (=> X1 (>= X3 0)))) (let ((X5 top.res.abs_1!)) (let ((X6 (=> X1 (>= X5 0)))) (let ((X7 top.res.abs_3!)) (let ((X8 top.res.abs_0!)) (let ((X9 (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) (let ((X10 (=> X1 (<= X7 X2)))) (and (= top.usr.OK! (and (and (and X9 X6) X4) X10)) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_4! top.res.inst_3! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_trans_First_0 top.usr.i_invalid! top.res.abs_7! top.res.inst_2! top.usr.i_invalid top.res.abs_7 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))))))))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_a3_e2_2952.sl b/benchmarks/LIA/Lustre/FIREFLY_a3_e2_2952.sl index ae333b5..8cd46e3 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_a3_e2_2952.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_a3_e2_2952.sl @@ -1,1353 +1,55 @@ (set-logic LIA) -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_7_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Bool (=> X1 (>= X3 0)))) - (let - ((X5 Int top.res.abs_1_a_0)) - (let - ((X6 Bool (=> X1 (>= X5 0)))) - (let - ((X7 Int top.res.abs_3_a_0)) - (let - ((X8 Int top.res.abs_0_a_0)) - (let - ((X9 Bool (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) - (let - ((X10 Bool (=> X1 (<= X7 X2)))) - (and - (= top.usr.OK_a_0 (and (and (and X9 X6) X4) X10)) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_First_0 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_7_a_1)) - (let - ((X3 Int top.res.abs_2_a_1)) - (let - ((X4 Bool (=> X1 (>= X3 0)))) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Bool (=> X1 (>= X5 0)))) - (let - ((X7 Int top.res.abs_3_a_1)) - (let - ((X8 Int top.res.abs_0_a_1)) - (let - ((X9 Bool (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) - (let - ((X10 Bool (=> X1 (<= X7 X2)))) - (and - (= top.usr.OK_a_1 (and (and (and X9 X6) X4) X10)) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_First_0 - top.usr.i_invalid_a_1 - top.res.abs_7_a_1 - top.res.inst_2_a_1 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_7)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Bool (=> X1 (>= X3 0)))) - (let - ((X5 Int top.res.abs_1)) - (let - ((X6 Bool (=> X1 (>= X5 0)))) - (let - ((X7 Int top.res.abs_3)) - (let - ((X8 Int top.res.abs_0)) - (let - ((X9 Bool (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) - (let - ((X10 Bool (=> X1 (<= X7 X2)))) - (and - (= top.usr.OK (and (and (and X9 X6) X4) X10)) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_init_First_0 - top.usr.i_invalid - top.res.abs_7 - top.res.inst_2) - (__node_init_Sofar_0 - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_7!)) - (let - ((X3 Int top.res.abs_2!)) - (let - ((X4 Bool (=> X1 (>= X3 0)))) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Bool (=> X1 (>= X5 0)))) - (let - ((X7 Int top.res.abs_3!)) - (let - ((X8 Int top.res.abs_0!)) - (let - ((X9 Bool (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) - (let - ((X10 Bool (=> X1 (<= X7 X2)))) - (and - (= top.usr.OK! (and (and (and X9 X6) X4) X10)) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_4! - top.res.inst_3! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_trans_First_0 - top.usr.i_invalid! - top.res.abs_7! - top.res.inst_2! - top.usr.i_invalid - top.res.abs_7 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))))))))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_7_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 (=> X1 (>= X3 0)))) (let ((X5 top.res.abs_1_a_0)) (let ((X6 (=> X1 (>= X5 0)))) (let ((X7 top.res.abs_3_a_0)) (let ((X8 top.res.abs_0_a_0)) (let ((X9 (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) (let ((X10 (=> X1 (<= X7 X2)))) (and (= top.usr.OK_a_0 (and (and (and X9 X6) X4) X10)) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_First_0 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_7_a_1)) (let ((X3 top.res.abs_2_a_1)) (let ((X4 (=> X1 (>= X3 0)))) (let ((X5 top.res.abs_1_a_1)) (let ((X6 (=> X1 (>= X5 0)))) (let ((X7 top.res.abs_3_a_1)) (let ((X8 top.res.abs_0_a_1)) (let ((X9 (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) (let ((X10 (=> X1 (<= X7 X2)))) (and (= top.usr.OK_a_1 (and (and (and X9 X6) X4) X10)) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_First_0 top.usr.i_invalid_a_1 top.res.abs_7_a_1 top.res.inst_2_a_1 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_7)) (let ((X3 top.res.abs_2)) (let ((X4 (=> X1 (>= X3 0)))) (let ((X5 top.res.abs_1)) (let ((X6 (=> X1 (>= X5 0)))) (let ((X7 top.res.abs_3)) (let ((X8 top.res.abs_0)) (let ((X9 (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) (let ((X10 (=> X1 (<= X7 X2)))) (and (= top.usr.OK (and (and (and X9 X6) X4) X10)) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_init_First_0 top.usr.i_invalid top.res.abs_7 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))))))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_7!)) (let ((X3 top.res.abs_2!)) (let ((X4 (=> X1 (>= X3 0)))) (let ((X5 top.res.abs_1!)) (let ((X6 (=> X1 (>= X5 0)))) (let ((X7 top.res.abs_3!)) (let ((X8 top.res.abs_0!)) (let ((X9 (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) (let ((X10 (=> X1 (<= X7 X2)))) (and (= top.usr.OK! (and (and (and X9 X6) X4) X10)) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_4! top.res.inst_3! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_trans_First_0 top.usr.i_invalid! top.res.abs_7! top.res.inst_2! top.usr.i_invalid top.res.abs_7 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))))))))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_a3_e3_314_e2_2812.sl b/benchmarks/LIA/Lustre/FIREFLY_a3_e3_314_e2_2812.sl index 490ea70..227a503 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_a3_e3_314_e2_2812.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_a3_e3_314_e2_2812.sl @@ -1,1353 +1,55 @@ (set-logic LIA) -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (- (- firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_7_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Bool (=> X1 (>= X3 0)))) - (let - ((X5 Int top.res.abs_1_a_0)) - (let - ((X6 Bool (=> X1 (>= X5 0)))) - (let - ((X7 Int top.res.abs_3_a_0)) - (let - ((X8 Int top.res.abs_0_a_0)) - (let - ((X9 Bool (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) - (let - ((X10 Bool (=> X1 (<= X7 X2)))) - (and - (= top.usr.OK_a_0 (and (and (and X9 X6) X4) X10)) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_First_0 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_7_a_1)) - (let - ((X3 Int top.res.abs_2_a_1)) - (let - ((X4 Bool (=> X1 (>= X3 0)))) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Bool (=> X1 (>= X5 0)))) - (let - ((X7 Int top.res.abs_3_a_1)) - (let - ((X8 Int top.res.abs_0_a_1)) - (let - ((X9 Bool (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) - (let - ((X10 Bool (=> X1 (<= X7 X2)))) - (and - (= top.usr.OK_a_1 (and (and (and X9 X6) X4) X10)) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_First_0 - top.usr.i_invalid_a_1 - top.res.abs_7_a_1 - top.res.inst_2_a_1 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_7)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Bool (=> X1 (>= X3 0)))) - (let - ((X5 Int top.res.abs_1)) - (let - ((X6 Bool (=> X1 (>= X5 0)))) - (let - ((X7 Int top.res.abs_3)) - (let - ((X8 Int top.res.abs_0)) - (let - ((X9 Bool (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) - (let - ((X10 Bool (=> X1 (<= X7 X2)))) - (and - (= top.usr.OK (and (and (and X9 X6) X4) X10)) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_init_First_0 - top.usr.i_invalid - top.res.abs_7 - top.res.inst_2) - (__node_init_Sofar_0 - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_7!)) - (let - ((X3 Int top.res.abs_2!)) - (let - ((X4 Bool (=> X1 (>= X3 0)))) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Bool (=> X1 (>= X5 0)))) - (let - ((X7 Int top.res.abs_3!)) - (let - ((X8 Int top.res.abs_0!)) - (let - ((X9 Bool (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) - (let - ((X10 Bool (=> X1 (<= X7 X2)))) - (and - (= top.usr.OK! (and (and (and X9 X6) X4) X10)) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_4! - top.res.inst_3! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_trans_First_0 - top.usr.i_invalid! - top.res.abs_7! - top.res.inst_2! - top.usr.i_invalid - top.res.abs_7 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))))))))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (- (- firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_7_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 (=> X1 (>= X3 0)))) (let ((X5 top.res.abs_1_a_0)) (let ((X6 (=> X1 (>= X5 0)))) (let ((X7 top.res.abs_3_a_0)) (let ((X8 top.res.abs_0_a_0)) (let ((X9 (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) (let ((X10 (=> X1 (<= X7 X2)))) (and (= top.usr.OK_a_0 (and (and (and X9 X6) X4) X10)) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_First_0 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_7_a_1)) (let ((X3 top.res.abs_2_a_1)) (let ((X4 (=> X1 (>= X3 0)))) (let ((X5 top.res.abs_1_a_1)) (let ((X6 (=> X1 (>= X5 0)))) (let ((X7 top.res.abs_3_a_1)) (let ((X8 top.res.abs_0_a_1)) (let ((X9 (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) (let ((X10 (=> X1 (<= X7 X2)))) (and (= top.usr.OK_a_1 (and (and (and X9 X6) X4) X10)) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_First_0 top.usr.i_invalid_a_1 top.res.abs_7_a_1 top.res.inst_2_a_1 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_7)) (let ((X3 top.res.abs_2)) (let ((X4 (=> X1 (>= X3 0)))) (let ((X5 top.res.abs_1)) (let ((X6 (=> X1 (>= X5 0)))) (let ((X7 top.res.abs_3)) (let ((X8 top.res.abs_0)) (let ((X9 (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) (let ((X10 (=> X1 (<= X7 X2)))) (and (= top.usr.OK (and (and (and X9 X6) X4) X10)) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_init_First_0 top.usr.i_invalid top.res.abs_7 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))))))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_7!)) (let ((X3 top.res.abs_2!)) (let ((X4 (=> X1 (>= X3 0)))) (let ((X5 top.res.abs_1!)) (let ((X6 (=> X1 (>= X5 0)))) (let ((X7 top.res.abs_3!)) (let ((X8 top.res.abs_0!)) (let ((X9 (=> X1 (<= (+ (+ (+ X8 X5) X3) X7) X2)))) (let ((X10 (=> X1 (<= X7 X2)))) (and (= top.usr.OK! (and (and (and X9 X6) X4) X10)) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_4! top.res.inst_3! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_trans_First_0 top.usr.i_invalid! top.res.abs_7! top.res.inst_2! top.usr.i_invalid top.res.abs_7 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))))))))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_all.sl b/benchmarks/LIA/Lustre/FIREFLY_all.sl index 3d4a925..468a4ac 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_all.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_all.sl @@ -1,1391 +1,55 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_0 - (and - (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) - (< top.usr.i_invalid_a_0 5))) - (let - ((X1 Int top.res.abs_7_a_0)) - (let - ((X2 Bool top.res.abs_6_a_0)) - (let - ((X3 Int top.res.abs_3_a_0)) - (let - ((X4 Int top.res.abs_2_a_0)) - (let - ((X5 Int top.res.abs_1_a_0)) - (let - ((X6 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X2 - (and - (and - (and - (= (+ (+ (+ X6 X5) X4) X3) top.res.abs_7_a_0) - (<= (+ (+ (+ X6 X5) X4) X3) X1)) - (>= X6 0)) - (<= X6 X1)))) - (= top.res.abs_8_a_0 (+ (+ (+ X6 X5) X4) X3)) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_1 - (and - (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) - (< top.usr.i_invalid_a_1 5))) - (let - ((X1 Int top.res.abs_7_a_1)) - (let - ((X2 Bool top.res.abs_6_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X2 - (and - (and - (and - (and - (= (+ (+ (+ X6 X5) X4) X3) top.res.abs_8_a_0) - (= (+ (+ (+ X6 X5) X4) X3) top.res.abs_7_a_1)) - (<= (+ (+ (+ X6 X5) X4) X3) X1)) - (>= X6 0)) - (<= X6 X1)))) - (= top.res.abs_8_a_1 (+ (+ (+ X6 X5) X4) X3)) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_2_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.i_invalid_a_1 - top.res.abs_7_a_1 - top.res.inst_0_a_1 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_5 - (and - (and top.res.abs_4 (>= top.usr.i_invalid 0)) - (< top.usr.i_invalid 5))) - (let - ((X1 Int top.res.abs_7)) - (let - ((X2 Bool top.res.abs_6)) - (let - ((X3 Int top.res.abs_3)) - (let - ((X4 Int top.res.abs_2)) - (let - ((X5 Int top.res.abs_1)) - (let - ((X6 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> - X2 - (and - (and - (and - (= (+ (+ (+ X6 X5) X4) X3) top.res.abs_7) - (<= (+ (+ (+ X6 X5) X4) X3) X1)) - (>= X6 0)) - (<= X6 X1)))) - (= top.res.abs_8 (+ (+ (+ X6 X5) X4) X3)) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_1) - (__node_init_First_0 - top.usr.i_invalid - top.res.abs_7 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_5! - (and - (and top.res.abs_4! (>= top.usr.i_invalid! 0)) - (< top.usr.i_invalid! 5))) - (let - ((X1 Int top.res.abs_7!)) - (let - ((X2 Bool top.res.abs_6!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> - X2 - (and - (and - (and - (and - (= (+ (+ (+ X6 X5) X4) X3) top.res.abs_8) - (= (+ (+ (+ X6 X5) X4) X3) top.res.abs_7!)) - (<= (+ (+ (+ X6 X5) X4) X3) X1)) - (>= X6 0)) - (<= X6 X1)))) - (= top.res.abs_8! (+ (+ (+ X6 X5) X4) X3)) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_4! - top.res.inst_3! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_2! - top.res.abs_5 - top.res.abs_6 - top.res.inst_2) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_1! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_1) - (__node_trans_First_0 - top.usr.i_invalid! - top.res.abs_7! - top.res.inst_0! - top.usr.i_invalid - top.res.abs_7 - top.res.inst_0) - (not top.res.init_flag!))))))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) (< top.usr.i_invalid_a_0 5))) (let ((X1 top.res.abs_7_a_0)) (let ((X2 top.res.abs_6_a_0)) (let ((X3 top.res.abs_3_a_0)) (let ((X4 top.res.abs_2_a_0)) (let ((X5 top.res.abs_1_a_0)) (let ((X6 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X2 (and (and (and (= (+ (+ (+ X6 X5) X4) X3) top.res.abs_7_a_0) (<= (+ (+ (+ X6 X5) X4) X3) X1)) (>= X6 0)) (<= X6 X1)))) (= top.res.abs_8_a_0 (+ (+ (+ X6 X5) X4) X3)) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) (< top.usr.i_invalid_a_1 5))) (let ((X1 top.res.abs_7_a_1)) (let ((X2 top.res.abs_6_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X2 (and (and (and (and (= (+ (+ (+ X6 X5) X4) X3) top.res.abs_8_a_0) (= (+ (+ (+ X6 X5) X4) X3) top.res.abs_7_a_1)) (<= (+ (+ (+ X6 X5) X4) X3) X1)) (>= X6 0)) (<= X6 X1)))) (= top.res.abs_8_a_1 (+ (+ (+ X6 X5) X4) X3)) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_2_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.i_invalid_a_1 top.res.abs_7_a_1 top.res.inst_0_a_1 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and (and top.res.abs_4 (>= top.usr.i_invalid 0)) (< top.usr.i_invalid 5))) (let ((X1 top.res.abs_7)) (let ((X2 top.res.abs_6)) (let ((X3 top.res.abs_3)) (let ((X4 top.res.abs_2)) (let ((X5 top.res.abs_1)) (let ((X6 top.res.abs_0)) (and (= top.usr.OK (=> X2 (and (and (and (= (+ (+ (+ X6 X5) X4) X3) top.res.abs_7) (<= (+ (+ (+ X6 X5) X4) X3) X1)) (>= X6 0)) (<= X6 X1)))) (= top.res.abs_8 (+ (+ (+ X6 X5) X4) X3)) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_1) (__node_init_First_0 top.usr.i_invalid top.res.abs_7 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and (and top.res.abs_4! (>= top.usr.i_invalid! 0)) (< top.usr.i_invalid! 5))) (let ((X1 top.res.abs_7!)) (let ((X2 top.res.abs_6!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X2 (and (and (and (and (= (+ (+ (+ X6 X5) X4) X3) top.res.abs_8) (= (+ (+ (+ X6 X5) X4) X3) top.res.abs_7!)) (<= (+ (+ (+ X6 X5) X4) X3) X1)) (>= X6 0)) (<= X6 X1)))) (= top.res.abs_8! (+ (+ (+ X6 X5) X4) X3)) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_4! top.res.inst_3! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_2! top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_1! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_1) (__node_trans_First_0 top.usr.i_invalid! top.res.abs_7! top.res.inst_0! top.usr.i_invalid top.res.abs_7 top.res.inst_0) (not top.res.init_flag!))))))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_all_e1_1207_e2_3220.sl b/benchmarks/LIA/Lustre/FIREFLY_all_e1_1207_e2_3220.sl index b9657b7..4340ef2 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_all_e1_1207_e2_3220.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_all_e1_1207_e2_3220.sl @@ -1,1395 +1,55 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ - (- - (+ (+ firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) - 1) - 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_0 - (and - (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) - (< top.usr.i_invalid_a_0 5))) - (let - ((X1 Int top.res.abs_7_a_0)) - (let - ((X2 Bool top.res.abs_6_a_0)) - (let - ((X3 Int top.res.abs_3_a_0)) - (let - ((X4 Int top.res.abs_2_a_0)) - (let - ((X5 Int top.res.abs_1_a_0)) - (let - ((X6 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X2 - (and - (and - (and - (= (+ (+ (+ X6 X5) X4) X3) top.res.abs_7_a_0) - (<= (+ (+ (+ X6 X5) X4) X3) X1)) - (>= X6 0)) - (<= X6 X1)))) - (= top.res.abs_8_a_0 (+ (+ (+ X6 X5) X4) X3)) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_1 - (and - (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) - (< top.usr.i_invalid_a_1 5))) - (let - ((X1 Int top.res.abs_7_a_1)) - (let - ((X2 Bool top.res.abs_6_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X2 - (and - (and - (and - (and - (= (+ (+ (+ X6 X5) X4) X3) top.res.abs_8_a_0) - (= (+ (+ (+ X6 X5) X4) X3) top.res.abs_7_a_1)) - (<= (+ (+ (+ X6 X5) X4) X3) X1)) - (>= X6 0)) - (<= X6 X1)))) - (= top.res.abs_8_a_1 (+ (+ (+ X6 X5) X4) X3)) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_2_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.i_invalid_a_1 - top.res.abs_7_a_1 - top.res.inst_0_a_1 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_5 - (and - (and top.res.abs_4 (>= top.usr.i_invalid 0)) - (< top.usr.i_invalid 5))) - (let - ((X1 Int top.res.abs_7)) - (let - ((X2 Bool top.res.abs_6)) - (let - ((X3 Int top.res.abs_3)) - (let - ((X4 Int top.res.abs_2)) - (let - ((X5 Int top.res.abs_1)) - (let - ((X6 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> - X2 - (and - (and - (and - (= (+ (+ (+ X6 X5) X4) X3) top.res.abs_7) - (<= (+ (+ (+ X6 X5) X4) X3) X1)) - (>= X6 0)) - (<= X6 X1)))) - (= top.res.abs_8 (+ (+ (+ X6 X5) X4) X3)) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_1) - (__node_init_First_0 - top.usr.i_invalid - top.res.abs_7 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_5! - (and - (and top.res.abs_4! (>= top.usr.i_invalid! 0)) - (< top.usr.i_invalid! 5))) - (let - ((X1 Int top.res.abs_7!)) - (let - ((X2 Bool top.res.abs_6!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> - X2 - (and - (and - (and - (and - (= (+ (+ (+ X6 X5) X4) X3) top.res.abs_8) - (= (+ (+ (+ X6 X5) X4) X3) top.res.abs_7!)) - (<= (+ (+ (+ X6 X5) X4) X3) X1)) - (>= X6 0)) - (<= X6 X1)))) - (= top.res.abs_8! (+ (+ (+ X6 X5) X4) X3)) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_4! - top.res.inst_3! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_2! - top.res.abs_5 - top.res.abs_6 - top.res.inst_2) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_1! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_1) - (__node_trans_First_0 - top.usr.i_invalid! - top.res.abs_7! - top.res.inst_0! - top.usr.i_invalid - top.res.abs_7 - top.res.inst_0) - (not top.res.init_flag!))))))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (- (+ (+ firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) (< top.usr.i_invalid_a_0 5))) (let ((X1 top.res.abs_7_a_0)) (let ((X2 top.res.abs_6_a_0)) (let ((X3 top.res.abs_3_a_0)) (let ((X4 top.res.abs_2_a_0)) (let ((X5 top.res.abs_1_a_0)) (let ((X6 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X2 (and (and (and (= (+ (+ (+ X6 X5) X4) X3) top.res.abs_7_a_0) (<= (+ (+ (+ X6 X5) X4) X3) X1)) (>= X6 0)) (<= X6 X1)))) (= top.res.abs_8_a_0 (+ (+ (+ X6 X5) X4) X3)) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) (< top.usr.i_invalid_a_1 5))) (let ((X1 top.res.abs_7_a_1)) (let ((X2 top.res.abs_6_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X2 (and (and (and (and (= (+ (+ (+ X6 X5) X4) X3) top.res.abs_8_a_0) (= (+ (+ (+ X6 X5) X4) X3) top.res.abs_7_a_1)) (<= (+ (+ (+ X6 X5) X4) X3) X1)) (>= X6 0)) (<= X6 X1)))) (= top.res.abs_8_a_1 (+ (+ (+ X6 X5) X4) X3)) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_2_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.i_invalid_a_1 top.res.abs_7_a_1 top.res.inst_0_a_1 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and (and top.res.abs_4 (>= top.usr.i_invalid 0)) (< top.usr.i_invalid 5))) (let ((X1 top.res.abs_7)) (let ((X2 top.res.abs_6)) (let ((X3 top.res.abs_3)) (let ((X4 top.res.abs_2)) (let ((X5 top.res.abs_1)) (let ((X6 top.res.abs_0)) (and (= top.usr.OK (=> X2 (and (and (and (= (+ (+ (+ X6 X5) X4) X3) top.res.abs_7) (<= (+ (+ (+ X6 X5) X4) X3) X1)) (>= X6 0)) (<= X6 X1)))) (= top.res.abs_8 (+ (+ (+ X6 X5) X4) X3)) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_1) (__node_init_First_0 top.usr.i_invalid top.res.abs_7 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and (and top.res.abs_4! (>= top.usr.i_invalid! 0)) (< top.usr.i_invalid! 5))) (let ((X1 top.res.abs_7!)) (let ((X2 top.res.abs_6!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X2 (and (and (and (and (= (+ (+ (+ X6 X5) X4) X3) top.res.abs_8) (= (+ (+ (+ X6 X5) X4) X3) top.res.abs_7!)) (<= (+ (+ (+ X6 X5) X4) X3) X1)) (>= X6 0)) (<= X6 X1)))) (= top.res.abs_8! (+ (+ (+ X6 X5) X4) X3)) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_4! top.res.inst_3! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_2! top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_1! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_1) (__node_trans_First_0 top.usr.i_invalid! top.res.abs_7! top.res.inst_0! top.usr.i_invalid top.res.abs_7 top.res.inst_0) (not top.res.init_flag!))))))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_all_e2_2924_e1_768.sl b/benchmarks/LIA/Lustre/FIREFLY_all_e2_2924_e1_768.sl index 7404712..07673bf 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_all_e2_2924_e1_768.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_all_e2_2924_e1_768.sl @@ -1,1395 +1,55 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ - (+ - (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) - 1) - 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_0 - (and - (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) - (< top.usr.i_invalid_a_0 5))) - (let - ((X1 Int top.res.abs_7_a_0)) - (let - ((X2 Bool top.res.abs_6_a_0)) - (let - ((X3 Int top.res.abs_3_a_0)) - (let - ((X4 Int top.res.abs_2_a_0)) - (let - ((X5 Int top.res.abs_1_a_0)) - (let - ((X6 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X2 - (and - (and - (and - (= (+ (+ (+ X6 X5) X4) X3) top.res.abs_7_a_0) - (<= (+ (+ (+ X6 X5) X4) X3) X1)) - (>= X6 0)) - (<= X6 X1)))) - (= top.res.abs_8_a_0 (+ (+ (+ X6 X5) X4) X3)) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_5_a_1 - (and - (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) - (< top.usr.i_invalid_a_1 5))) - (let - ((X1 Int top.res.abs_7_a_1)) - (let - ((X2 Bool top.res.abs_6_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X2 - (and - (and - (and - (and - (= (+ (+ (+ X6 X5) X4) X3) top.res.abs_8_a_0) - (= (+ (+ (+ X6 X5) X4) X3) top.res.abs_7_a_1)) - (<= (+ (+ (+ X6 X5) X4) X3) X1)) - (>= X6 0)) - (<= X6 X1)))) - (= top.res.abs_8_a_1 (+ (+ (+ X6 X5) X4) X3)) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_2_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.i_invalid_a_1 - top.res.abs_7_a_1 - top.res.inst_0_a_1 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_5 - (and - (and top.res.abs_4 (>= top.usr.i_invalid 0)) - (< top.usr.i_invalid 5))) - (let - ((X1 Int top.res.abs_7)) - (let - ((X2 Bool top.res.abs_6)) - (let - ((X3 Int top.res.abs_3)) - (let - ((X4 Int top.res.abs_2)) - (let - ((X5 Int top.res.abs_1)) - (let - ((X6 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> - X2 - (and - (and - (and - (= (+ (+ (+ X6 X5) X4) X3) top.res.abs_7) - (<= (+ (+ (+ X6 X5) X4) X3) X1)) - (>= X6 0)) - (<= X6 X1)))) - (= top.res.abs_8 (+ (+ (+ X6 X5) X4) X3)) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_1) - (__node_init_First_0 - top.usr.i_invalid - top.res.abs_7 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_5! - (and - (and top.res.abs_4! (>= top.usr.i_invalid! 0)) - (< top.usr.i_invalid! 5))) - (let - ((X1 Int top.res.abs_7!)) - (let - ((X2 Bool top.res.abs_6!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> - X2 - (and - (and - (and - (and - (= (+ (+ (+ X6 X5) X4) X3) top.res.abs_8) - (= (+ (+ (+ X6 X5) X4) X3) top.res.abs_7!)) - (<= (+ (+ (+ X6 X5) X4) X3) X1)) - (>= X6 0)) - (<= X6 X1)))) - (= top.res.abs_8! (+ (+ (+ X6 X5) X4) X3)) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_4! - top.res.inst_3! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_2! - top.res.abs_5 - top.res.abs_6 - top.res.inst_2) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_1! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_1) - (__node_trans_First_0 - top.usr.i_invalid! - top.res.abs_7! - top.res.inst_0! - top.usr.i_invalid - top.res.abs_7 - top.res.inst_0) - (not top.res.init_flag!))))))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0)) (< top.usr.i_invalid_a_0 5))) (let ((X1 top.res.abs_7_a_0)) (let ((X2 top.res.abs_6_a_0)) (let ((X3 top.res.abs_3_a_0)) (let ((X4 top.res.abs_2_a_0)) (let ((X5 top.res.abs_1_a_0)) (let ((X6 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X2 (and (and (and (= (+ (+ (+ X6 X5) X4) X3) top.res.abs_7_a_0) (<= (+ (+ (+ X6 X5) X4) X3) X1)) (>= X6 0)) (<= X6 X1)))) (= top.res.abs_8_a_0 (+ (+ (+ X6 X5) X4) X3)) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0)) (< top.usr.i_invalid_a_1 5))) (let ((X1 top.res.abs_7_a_1)) (let ((X2 top.res.abs_6_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X2 (and (and (and (and (= (+ (+ (+ X6 X5) X4) X3) top.res.abs_8_a_0) (= (+ (+ (+ X6 X5) X4) X3) top.res.abs_7_a_1)) (<= (+ (+ (+ X6 X5) X4) X3) X1)) (>= X6 0)) (<= X6 X1)))) (= top.res.abs_8_a_1 (+ (+ (+ X6 X5) X4) X3)) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_2_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.i_invalid_a_1 top.res.abs_7_a_1 top.res.inst_0_a_1 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and (and top.res.abs_4 (>= top.usr.i_invalid 0)) (< top.usr.i_invalid 5))) (let ((X1 top.res.abs_7)) (let ((X2 top.res.abs_6)) (let ((X3 top.res.abs_3)) (let ((X4 top.res.abs_2)) (let ((X5 top.res.abs_1)) (let ((X6 top.res.abs_0)) (and (= top.usr.OK (=> X2 (and (and (and (= (+ (+ (+ X6 X5) X4) X3) top.res.abs_7) (<= (+ (+ (+ X6 X5) X4) X3) X1)) (>= X6 0)) (<= X6 X1)))) (= top.res.abs_8 (+ (+ (+ X6 X5) X4) X3)) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_1) (__node_init_First_0 top.usr.i_invalid top.res.abs_7 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and (and top.res.abs_4! (>= top.usr.i_invalid! 0)) (< top.usr.i_invalid! 5))) (let ((X1 top.res.abs_7!)) (let ((X2 top.res.abs_6!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X2 (and (and (and (and (= (+ (+ (+ X6 X5) X4) X3) top.res.abs_8) (= (+ (+ (+ X6 X5) X4) X3) top.res.abs_7!)) (<= (+ (+ (+ X6 X5) X4) X3) X1)) (>= X6 0)) (<= X6 X1)))) (= top.res.abs_8! (+ (+ (+ X6 X5) X4) X3)) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_4! top.res.inst_3! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_2! top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_1! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_1) (__node_trans_First_0 top.usr.i_invalid! top.res.abs_7! top.res.inst_0! top.usr.i_invalid top.res.abs_7 top.res.inst_0) (not top.res.init_flag!))))))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_luke_1a.sl b/benchmarks/LIA/Lustre/FIREFLY_luke_1a.sl index cf3cdf6..f2d64cf 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_luke_1a.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_luke_1a.sl @@ -1,1220 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (< X2 2))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (< X2 2))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_2)) - (and - (= top.usr.OK (=> X1 (< X2 2))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_2!)) - (and - (= top.usr.OK! (=> X1 (< X2 2))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_2_a_0)) (and (= top.usr.OK_a_0 (=> X1 (< X2 2))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_2_a_1)) (and (= top.usr.OK_a_1 (=> X1 (< X2 2))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_2)) (and (= top.usr.OK (=> X1 (< X2 2))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_2!)) (and (= top.usr.OK! (=> X1 (< X2 2))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_luke_1a_e2_284_e1_2924.sl b/benchmarks/LIA/Lustre/FIREFLY_luke_1a_e2_284_e1_2924.sl index 39de4d4..a952933 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_luke_1a_e2_284_e1_2924.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_luke_1a_e2_284_e1_2924.sl @@ -1,1224 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ - (+ - (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) - 1) - 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (< X2 2))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (< X2 2))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_2)) - (and - (= top.usr.OK (=> X1 (< X2 2))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_2!)) - (and - (= top.usr.OK! (=> X1 (< X2 2))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_2_a_0)) (and (= top.usr.OK_a_0 (=> X1 (< X2 2))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_2_a_1)) (and (= top.usr.OK_a_1 (=> X1 (< X2 2))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_2)) (and (= top.usr.OK (=> X1 (< X2 2))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_2!)) (and (= top.usr.OK! (=> X1 (< X2 2))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_luke_1a_e2_284_e2_2755.sl b/benchmarks/LIA/Lustre/FIREFLY_luke_1a_e2_284_e2_2755.sl index 882b943..da07317 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_luke_1a_e2_284_e2_2755.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_luke_1a_e2_284_e2_2755.sl @@ -1,1224 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ - (- - (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) - 1) - 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (< X2 2))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (< X2 2))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_2)) - (and - (= top.usr.OK (=> X1 (< X2 2))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_2!)) - (and - (= top.usr.OK! (=> X1 (< X2 2))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (- (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_2_a_0)) (and (= top.usr.OK_a_0 (=> X1 (< X2 2))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_2_a_1)) (and (= top.usr.OK_a_1 (=> X1 (< X2 2))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_2)) (and (= top.usr.OK (=> X1 (< X2 2))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_2!)) (and (= top.usr.OK! (=> X1 (< X2 2))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_luke_1a_e2_284_e3_3091.sl b/benchmarks/LIA/Lustre/FIREFLY_luke_1a_e2_284_e3_3091.sl index 46a44f6..e709be4 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_luke_1a_e2_284_e3_3091.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_luke_1a_e2_284_e3_3091.sl @@ -1,1220 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (- (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (< X2 2))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (< X2 2))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_2)) - (and - (= top.usr.OK (=> X1 (< X2 2))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_2!)) - (and - (= top.usr.OK! (=> X1 (< X2 2))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_2_a_0)) (and (= top.usr.OK_a_0 (=> X1 (< X2 2))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_2_a_1)) (and (= top.usr.OK_a_1 (=> X1 (< X2 2))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_2)) (and (= top.usr.OK (=> X1 (< X2 2))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_2!)) (and (= top.usr.OK! (=> X1 (< X2 2))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_luke_1a_e7_3042_e3_1213.sl b/benchmarks/LIA/Lustre/FIREFLY_luke_1a_e7_3042_e3_1213.sl index ee2a597..6c6a27b 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_luke_1a_e7_3042_e3_1213.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_luke_1a_e7_3042_e3_1213.sl @@ -1,1220 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (- firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (< X2 2))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (< X2 2))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_2)) - (and - (= top.usr.OK (=> X1 (< X2 2))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_2!)) - (and - (= top.usr.OK! (=> X1 (< X2 2))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (- firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_2_a_0)) (and (= top.usr.OK_a_0 (=> X1 (< X2 2))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_2_a_1)) (and (= top.usr.OK_a_1 (=> X1 (< X2 2))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_2)) (and (= top.usr.OK (=> X1 (< X2 2))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_2!)) (and (= top.usr.OK! (=> X1 (< X2 2))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_luke_1b.sl b/benchmarks/LIA/Lustre/FIREFLY_luke_1b.sl index 831624a..f6e490c 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_luke_1b.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_luke_1b.sl @@ -1,1262 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) - (let - ((X5 Bool top.res.abs_6_a_0)) - (and - (= top.res.abs_7_a_0 (+ (+ (+ X1 X2) X3) X4)) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (let - ((X3 Int top.res.abs_2_a_1)) - (let - ((X4 Int top.res.abs_1_a_1)) - (let - ((X5 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7_a_0))) - (= top.res.abs_7_a_1 (+ (+ (+ X5 X4) X3) X2)) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int top.res.abs_0)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_3)) - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) - (let - ((X5 Bool top.res.abs_6)) - (and - (= top.res.abs_7 (+ (+ (+ X1 X2) X3) X4)) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_3!)) - (let - ((X3 Int top.res.abs_2!)) - (let - ((X4 Int top.res.abs_1!)) - (let - ((X5 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7))) - (= top.res.abs_7! (+ (+ (+ X5 X4) X3) X2)) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_3_a_0)) (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) (let ((X5 top.res.abs_6_a_0)) (and (= top.res.abs_7_a_0 (+ (+ (+ X1 X2) X3) X4)) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_3_a_1)) (let ((X3 top.res.abs_2_a_1)) (let ((X4 top.res.abs_1_a_1)) (let ((X5 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7_a_0))) (= top.res.abs_7_a_1 (+ (+ (+ X5 X4) X3) X2)) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_3)) (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) (let ((X5 top.res.abs_6)) (and (= top.res.abs_7 (+ (+ (+ X1 X2) X3) X4)) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_3!)) (let ((X3 top.res.abs_2!)) (let ((X4 top.res.abs_1!)) (let ((X5 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7))) (= top.res.abs_7! (+ (+ (+ X5 X4) X3) X2)) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_luke_1b_e1_1139_e2_2893.sl b/benchmarks/LIA/Lustre/FIREFLY_luke_1b_e1_1139_e2_2893.sl index 90100e1..7397c2f 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_luke_1b_e1_1139_e2_2893.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_luke_1b_e1_1139_e2_2893.sl @@ -1,1266 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ - (- - (+ (+ firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) - 1) - 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) - (let - ((X5 Bool top.res.abs_6_a_0)) - (and - (= top.res.abs_7_a_0 (+ (+ (+ X1 X2) X3) X4)) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (let - ((X3 Int top.res.abs_2_a_1)) - (let - ((X4 Int top.res.abs_1_a_1)) - (let - ((X5 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7_a_0))) - (= top.res.abs_7_a_1 (+ (+ (+ X5 X4) X3) X2)) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int top.res.abs_0)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_3)) - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) - (let - ((X5 Bool top.res.abs_6)) - (and - (= top.res.abs_7 (+ (+ (+ X1 X2) X3) X4)) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_3!)) - (let - ((X3 Int top.res.abs_2!)) - (let - ((X4 Int top.res.abs_1!)) - (let - ((X5 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7))) - (= top.res.abs_7! (+ (+ (+ X5 X4) X3) X2)) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (- (+ (+ firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_3_a_0)) (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) (let ((X5 top.res.abs_6_a_0)) (and (= top.res.abs_7_a_0 (+ (+ (+ X1 X2) X3) X4)) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_3_a_1)) (let ((X3 top.res.abs_2_a_1)) (let ((X4 top.res.abs_1_a_1)) (let ((X5 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7_a_0))) (= top.res.abs_7_a_1 (+ (+ (+ X5 X4) X3) X2)) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_3)) (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) (let ((X5 top.res.abs_6)) (and (= top.res.abs_7 (+ (+ (+ X1 X2) X3) X4)) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_3!)) (let ((X3 top.res.abs_2!)) (let ((X4 top.res.abs_1!)) (let ((X5 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7))) (= top.res.abs_7! (+ (+ (+ X5 X4) X3) X2)) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_luke_1b_e2_3049_e1_946.sl b/benchmarks/LIA/Lustre/FIREFLY_luke_1b_e2_3049_e1_946.sl index 5e7e53f..3d528a2 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_luke_1b_e2_3049_e1_946.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_luke_1b_e2_3049_e1_946.sl @@ -1,1266 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ - (+ - (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) - 1) - 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) - (let - ((X5 Bool top.res.abs_6_a_0)) - (and - (= top.res.abs_7_a_0 (+ (+ (+ X1 X2) X3) X4)) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (let - ((X3 Int top.res.abs_2_a_1)) - (let - ((X4 Int top.res.abs_1_a_1)) - (let - ((X5 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7_a_0))) - (= top.res.abs_7_a_1 (+ (+ (+ X5 X4) X3) X2)) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int top.res.abs_0)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_3)) - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) - (let - ((X5 Bool top.res.abs_6)) - (and - (= top.res.abs_7 (+ (+ (+ X1 X2) X3) X4)) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_3!)) - (let - ((X3 Int top.res.abs_2!)) - (let - ((X4 Int top.res.abs_1!)) - (let - ((X5 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7))) - (= top.res.abs_7! (+ (+ (+ X5 X4) X3) X2)) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_3_a_0)) (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) (let ((X5 top.res.abs_6_a_0)) (and (= top.res.abs_7_a_0 (+ (+ (+ X1 X2) X3) X4)) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_3_a_1)) (let ((X3 top.res.abs_2_a_1)) (let ((X4 top.res.abs_1_a_1)) (let ((X5 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7_a_0))) (= top.res.abs_7_a_1 (+ (+ (+ X5 X4) X3) X2)) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_3)) (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) (let ((X5 top.res.abs_6)) (and (= top.res.abs_7 (+ (+ (+ X1 X2) X3) X4)) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_3!)) (let ((X3 top.res.abs_2!)) (let ((X4 top.res.abs_1!)) (let ((X5 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7))) (= top.res.abs_7! (+ (+ (+ X5 X4) X3) X2)) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_luke_1b_e3_671_e6_1974.sl b/benchmarks/LIA/Lustre/FIREFLY_luke_1b_e3_671_e6_1974.sl index 831624a..f6e490c 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_luke_1b_e3_671_e6_1974.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_luke_1b_e3_671_e6_1974.sl @@ -1,1262 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) - (let - ((X5 Bool top.res.abs_6_a_0)) - (and - (= top.res.abs_7_a_0 (+ (+ (+ X1 X2) X3) X4)) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (let - ((X3 Int top.res.abs_2_a_1)) - (let - ((X4 Int top.res.abs_1_a_1)) - (let - ((X5 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7_a_0))) - (= top.res.abs_7_a_1 (+ (+ (+ X5 X4) X3) X2)) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int top.res.abs_0)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_3)) - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) - (let - ((X5 Bool top.res.abs_6)) - (and - (= top.res.abs_7 (+ (+ (+ X1 X2) X3) X4)) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_3!)) - (let - ((X3 Int top.res.abs_2!)) - (let - ((X4 Int top.res.abs_1!)) - (let - ((X5 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7))) - (= top.res.abs_7! (+ (+ (+ X5 X4) X3) X2)) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_3_a_0)) (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) (let ((X5 top.res.abs_6_a_0)) (and (= top.res.abs_7_a_0 (+ (+ (+ X1 X2) X3) X4)) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_3_a_1)) (let ((X3 top.res.abs_2_a_1)) (let ((X4 top.res.abs_1_a_1)) (let ((X5 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7_a_0))) (= top.res.abs_7_a_1 (+ (+ (+ X5 X4) X3) X2)) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_3)) (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) (let ((X5 top.res.abs_6)) (and (= top.res.abs_7 (+ (+ (+ X1 X2) X3) X4)) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_3!)) (let ((X3 top.res.abs_2!)) (let ((X4 top.res.abs_1!)) (let ((X5 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7))) (= top.res.abs_7! (+ (+ (+ X5 X4) X3) X2)) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_luke_1b_e7_3191_e8_2830.sl b/benchmarks/LIA/Lustre/FIREFLY_luke_1b_e7_3191_e8_2830.sl index 831624a..f6e490c 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_luke_1b_e7_3191_e8_2830.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_luke_1b_e7_3191_e8_2830.sl @@ -1,1262 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) - (let - ((X5 Bool top.res.abs_6_a_0)) - (and - (= top.res.abs_7_a_0 (+ (+ (+ X1 X2) X3) X4)) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (let - ((X3 Int top.res.abs_2_a_1)) - (let - ((X4 Int top.res.abs_1_a_1)) - (let - ((X5 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7_a_0))) - (= top.res.abs_7_a_1 (+ (+ (+ X5 X4) X3) X2)) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int top.res.abs_0)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_3)) - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) - (let - ((X5 Bool top.res.abs_6)) - (and - (= top.res.abs_7 (+ (+ (+ X1 X2) X3) X4)) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_3!)) - (let - ((X3 Int top.res.abs_2!)) - (let - ((X4 Int top.res.abs_1!)) - (let - ((X5 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7))) - (= top.res.abs_7! (+ (+ (+ X5 X4) X3) X2)) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_3_a_0)) (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) (let ((X5 top.res.abs_6_a_0)) (and (= top.res.abs_7_a_0 (+ (+ (+ X1 X2) X3) X4)) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_3_a_1)) (let ((X3 top.res.abs_2_a_1)) (let ((X4 top.res.abs_1_a_1)) (let ((X5 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7_a_0))) (= top.res.abs_7_a_1 (+ (+ (+ X5 X4) X3) X2)) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_3)) (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) (let ((X5 top.res.abs_6)) (and (= top.res.abs_7 (+ (+ (+ X1 X2) X3) X4)) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_3!)) (let ((X3 top.res.abs_2!)) (let ((X4 top.res.abs_1!)) (let ((X5 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7))) (= top.res.abs_7! (+ (+ (+ X5 X4) X3) X2)) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_luke_2.sl b/benchmarks/LIA/Lustre/FIREFLY_luke_2.sl index 9133793..d542e3b 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_luke_2.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_luke_2.sl @@ -1,1220 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (< X2 2))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_1_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (< X2 2))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_1)) - (and - (= top.usr.OK (=> X1 (< X2 2))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_1!)) - (and - (= top.usr.OK! (=> X1 (< X2 2))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_1_a_0)) (and (= top.usr.OK_a_0 (=> X1 (< X2 2))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (=> X1 (< X2 2))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_1)) (and (= top.usr.OK (=> X1 (< X2 2))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_1!)) (and (= top.usr.OK! (=> X1 (< X2 2))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_luke_2_e2_1375_e1_418.sl b/benchmarks/LIA/Lustre/FIREFLY_luke_2_e2_1375_e1_418.sl index 2ac8bea..3771af5 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_luke_2_e2_1375_e1_418.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_luke_2_e2_1375_e1_418.sl @@ -1,1224 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ - (+ - (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) - 1) - 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (< X2 2))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_1_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (< X2 2))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_1)) - (and - (= top.usr.OK (=> X1 (< X2 2))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_1!)) - (and - (= top.usr.OK! (=> X1 (< X2 2))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_1_a_0)) (and (= top.usr.OK_a_0 (=> X1 (< X2 2))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (=> X1 (< X2 2))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_1)) (and (= top.usr.OK (=> X1 (< X2 2))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_1!)) (and (= top.usr.OK! (=> X1 (< X2 2))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_luke_2_e7_1826_e8_126.sl b/benchmarks/LIA/Lustre/FIREFLY_luke_2_e7_1826_e8_126.sl index 9133793..d542e3b 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_luke_2_e7_1826_e8_126.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_luke_2_e7_1826_e8_126.sl @@ -1,1220 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (< X2 2))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_1_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (< X2 2))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_1)) - (and - (= top.usr.OK (=> X1 (< X2 2))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_1!)) - (and - (= top.usr.OK! (=> X1 (< X2 2))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_1_a_0)) (and (= top.usr.OK_a_0 (=> X1 (< X2 2))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (=> X1 (< X2 2))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_1)) (and (= top.usr.OK (=> X1 (< X2 2))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_1!)) (and (= top.usr.OK! (=> X1 (< X2 2))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_luke_3.sl b/benchmarks/LIA/Lustre/FIREFLY_luke_3.sl index 4aaab24..0fa1b22 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_luke_3.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_luke_3.sl @@ -1,1228 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (let - ((X3 Int top.res.abs_1_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (not (and (> X3 1) (> X2 1))))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (let - ((X3 Int top.res.abs_1_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (not (and (> X3 1) (> X2 1))))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_3)) - (let - ((X3 Int top.res.abs_1)) - (and - (= top.usr.OK (=> X1 (not (and (> X3 1) (> X2 1))))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_3!)) - (let - ((X3 Int top.res.abs_1!)) - (and - (= top.usr.OK! (=> X1 (not (and (> X3 1) (> X2 1))))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!)))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_3_a_0)) (let ((X3 top.res.abs_1_a_0)) (and (= top.usr.OK_a_0 (=> X1 (not (and (> X3 1) (> X2 1))))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_3_a_1)) (let ((X3 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (=> X1 (not (and (> X3 1) (> X2 1))))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_3)) (let ((X3 top.res.abs_1)) (and (= top.usr.OK (=> X1 (not (and (> X3 1) (> X2 1))))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag)))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_3!)) (let ((X3 top.res.abs_1!)) (and (= top.usr.OK! (=> X1 (not (and (> X3 1) (> X2 1))))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!)))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_luke_3_e1_2217_e3_1200.sl b/benchmarks/LIA/Lustre/FIREFLY_luke_3_e1_2217_e3_1200.sl index c74f460..c335ee7 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_luke_3_e1_2217_e3_1200.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_luke_3_e1_2217_e3_1200.sl @@ -1,1228 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (- (+ (+ firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (let - ((X3 Int top.res.abs_1_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (not (and (> X3 1) (> X2 1))))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (let - ((X3 Int top.res.abs_1_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (not (and (> X3 1) (> X2 1))))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_3)) - (let - ((X3 Int top.res.abs_1)) - (and - (= top.usr.OK (=> X1 (not (and (> X3 1) (> X2 1))))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_3!)) - (let - ((X3 Int top.res.abs_1!)) - (and - (= top.usr.OK! (=> X1 (not (and (> X3 1) (> X2 1))))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!)))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- (+ (+ firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_3_a_0)) (let ((X3 top.res.abs_1_a_0)) (and (= top.usr.OK_a_0 (=> X1 (not (and (> X3 1) (> X2 1))))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_3_a_1)) (let ((X3 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (=> X1 (not (and (> X3 1) (> X2 1))))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_3)) (let ((X3 top.res.abs_1)) (and (= top.usr.OK (=> X1 (not (and (> X3 1) (> X2 1))))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag)))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_3!)) (let ((X3 top.res.abs_1!)) (and (= top.usr.OK! (=> X1 (not (and (> X3 1) (> X2 1))))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!)))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_luke_4.sl b/benchmarks/LIA/Lustre/FIREFLY_luke_4.sl index cf3cdf6..f2d64cf 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_luke_4.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_luke_4.sl @@ -1,1220 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (< X2 2))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (< X2 2))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_2)) - (and - (= top.usr.OK (=> X1 (< X2 2))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_2!)) - (and - (= top.usr.OK! (=> X1 (< X2 2))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_2_a_0)) (and (= top.usr.OK_a_0 (=> X1 (< X2 2))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_2_a_1)) (and (= top.usr.OK_a_1 (=> X1 (< X2 2))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_2)) (and (= top.usr.OK (=> X1 (< X2 2))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_2!)) (and (= top.usr.OK! (=> X1 (< X2 2))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_luke_4_e2_325.sl b/benchmarks/LIA/Lustre/FIREFLY_luke_4_e2_325.sl index 0842042..763865e 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_luke_4_e2_325.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_luke_4_e2_325.sl @@ -1,1220 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (< X2 2))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (< X2 2))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_2)) - (and - (= top.usr.OK (=> X1 (< X2 2))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_2!)) - (and - (= top.usr.OK! (=> X1 (< X2 2))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_2_a_0)) (and (= top.usr.OK_a_0 (=> X1 (< X2 2))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_2_a_1)) (and (= top.usr.OK_a_1 (=> X1 (< X2 2))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_2)) (and (= top.usr.OK (=> X1 (< X2 2))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_2!)) (and (= top.usr.OK! (=> X1 (< X2 2))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_luke_5.sl b/benchmarks/LIA/Lustre/FIREFLY_luke_5.sl index 7e5fff2..260e3b0 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_luke_5.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_luke_5.sl @@ -1,1334 +1,55 @@ (set-logic LIA) -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_7_a_0)) - (let - ((X3 Int top.res.abs_3_a_0)) - (let - ((X4 Int top.res.abs_2_a_0)) - (let - ((X5 Int top.res.abs_1_a_0)) - (let - ((X6 Int top.res.abs_0_a_0)) - (let - ((X7 Bool (=> X1 (<= (+ (+ (+ X6 X5) X4) X3) X2)))) - (let - ((X8 Bool (=> X1 (<= X3 X2)))) - (and - (= top.usr.OK_a_0 (and X7 X8)) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_First_0 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_7_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (let - ((X7 Bool (=> X1 (<= (+ (+ (+ X6 X5) X4) X3) X2)))) - (let - ((X8 Bool (=> X1 (<= X3 X2)))) - (and - (= top.usr.OK_a_1 (and X7 X8)) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_First_0 - top.usr.i_invalid_a_1 - top.res.abs_7_a_1 - top.res.inst_2_a_1 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_7)) - (let - ((X3 Int top.res.abs_3)) - (let - ((X4 Int top.res.abs_2)) - (let - ((X5 Int top.res.abs_1)) - (let - ((X6 Int top.res.abs_0)) - (let - ((X7 Bool (=> X1 (<= (+ (+ (+ X6 X5) X4) X3) X2)))) - (let - ((X8 Bool (=> X1 (<= X3 X2)))) - (and - (= top.usr.OK (and X7 X8)) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_init_First_0 - top.usr.i_invalid - top.res.abs_7 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_7!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (let - ((X7 Bool (=> X1 (<= (+ (+ (+ X6 X5) X4) X3) X2)))) - (let - ((X8 Bool (=> X1 (<= X3 X2)))) - (and - (= top.usr.OK! (and X7 X8)) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_4! - top.res.inst_3! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_trans_First_0 - top.usr.i_invalid! - top.res.abs_7! - top.res.inst_2! - top.usr.i_invalid - top.res.abs_7 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))))))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_7_a_0)) (let ((X3 top.res.abs_3_a_0)) (let ((X4 top.res.abs_2_a_0)) (let ((X5 top.res.abs_1_a_0)) (let ((X6 top.res.abs_0_a_0)) (let ((X7 (=> X1 (<= (+ (+ (+ X6 X5) X4) X3) X2)))) (let ((X8 (=> X1 (<= X3 X2)))) (and (= top.usr.OK_a_0 (and X7 X8)) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_First_0 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_7_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (let ((X7 (=> X1 (<= (+ (+ (+ X6 X5) X4) X3) X2)))) (let ((X8 (=> X1 (<= X3 X2)))) (and (= top.usr.OK_a_1 (and X7 X8)) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_First_0 top.usr.i_invalid_a_1 top.res.abs_7_a_1 top.res.inst_2_a_1 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_7)) (let ((X3 top.res.abs_3)) (let ((X4 top.res.abs_2)) (let ((X5 top.res.abs_1)) (let ((X6 top.res.abs_0)) (let ((X7 (=> X1 (<= (+ (+ (+ X6 X5) X4) X3) X2)))) (let ((X8 (=> X1 (<= X3 X2)))) (and (= top.usr.OK (and X7 X8)) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_init_First_0 top.usr.i_invalid top.res.abs_7 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_7!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (let ((X7 (=> X1 (<= (+ (+ (+ X6 X5) X4) X3) X2)))) (let ((X8 (=> X1 (<= X3 X2)))) (and (= top.usr.OK! (and X7 X8)) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_4! top.res.inst_3! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_trans_First_0 top.usr.i_invalid! top.res.abs_7! top.res.inst_2! top.usr.i_invalid top.res.abs_7 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))))))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_luke_rt.sl b/benchmarks/LIA/Lustre/FIREFLY_luke_rt.sl index fc515d3..f9ee25b 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_luke_rt.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_luke_rt.sl @@ -1,1307 +1,55 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_1_a_0)) - (let - ((X5 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7_a_0))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (let - ((X3 Int top.res.abs_2_a_1)) - (let - ((X4 Int top.res.abs_1_a_1)) - (let - ((X5 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7_a_1))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_2_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.i_invalid_a_1 - top.res.abs_7_a_1 - top.res.inst_0_a_1 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_3)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_1)) - (let - ((X5 Int top.res.abs_0)) - (and - (= top.usr.OK (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_1) - (__node_init_First_0 top.usr.i_invalid top.res.abs_7 top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_3!)) - (let - ((X3 Int top.res.abs_2!)) - (let - ((X4 Int top.res.abs_1!)) - (let - ((X5 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7!))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_4! - top.res.inst_3! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_2! - top.res.abs_5 - top.res.abs_6 - top.res.inst_2) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_1! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_1) - (__node_trans_First_0 - top.usr.i_invalid! - top.res.abs_7! - top.res.inst_0! - top.usr.i_invalid - top.res.abs_7 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_3_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_1_a_0)) (let ((X5 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7_a_0))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_3_a_1)) (let ((X3 top.res.abs_2_a_1)) (let ((X4 top.res.abs_1_a_1)) (let ((X5 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7_a_1))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_2_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.i_invalid_a_1 top.res.abs_7_a_1 top.res.inst_0_a_1 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_3)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_1)) (let ((X5 top.res.abs_0)) (and (= top.usr.OK (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_1) (__node_init_First_0 top.usr.i_invalid top.res.abs_7 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_3!)) (let ((X3 top.res.abs_2!)) (let ((X4 top.res.abs_1!)) (let ((X5 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7!))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_4! top.res.inst_3! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_2! top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_1! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_1) (__node_trans_First_0 top.usr.i_invalid! top.res.abs_7! top.res.inst_0! top.usr.i_invalid top.res.abs_7 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_luke_rt_e1_913_e2_3353.sl b/benchmarks/LIA/Lustre/FIREFLY_luke_rt_e1_913_e2_3353.sl index 5b406d6..0bd48e8 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_luke_rt_e1_913_e2_3353.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_luke_rt_e1_913_e2_3353.sl @@ -1,1311 +1,55 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ - (- - (+ (+ firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) - 1) - 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_1_a_0)) - (let - ((X5 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7_a_0))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (let - ((X3 Int top.res.abs_2_a_1)) - (let - ((X4 Int top.res.abs_1_a_1)) - (let - ((X5 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7_a_1))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_2_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.i_invalid_a_1 - top.res.abs_7_a_1 - top.res.inst_0_a_1 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_3)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_1)) - (let - ((X5 Int top.res.abs_0)) - (and - (= top.usr.OK (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_1) - (__node_init_First_0 top.usr.i_invalid top.res.abs_7 top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_3!)) - (let - ((X3 Int top.res.abs_2!)) - (let - ((X4 Int top.res.abs_1!)) - (let - ((X5 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7!))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_4! - top.res.inst_3! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_2! - top.res.abs_5 - top.res.abs_6 - top.res.inst_2) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_1! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_1) - (__node_trans_First_0 - top.usr.i_invalid! - top.res.abs_7! - top.res.inst_0! - top.usr.i_invalid - top.res.abs_7 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (- (+ (+ firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_3_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_1_a_0)) (let ((X5 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7_a_0))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_3_a_1)) (let ((X3 top.res.abs_2_a_1)) (let ((X4 top.res.abs_1_a_1)) (let ((X5 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7_a_1))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_2_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.i_invalid_a_1 top.res.abs_7_a_1 top.res.inst_0_a_1 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_3)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_1)) (let ((X5 top.res.abs_0)) (and (= top.usr.OK (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_1) (__node_init_First_0 top.usr.i_invalid top.res.abs_7 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_3!)) (let ((X3 top.res.abs_2!)) (let ((X4 top.res.abs_1!)) (let ((X5 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7!))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_4! top.res.inst_3! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_2! top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_1! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_1) (__node_trans_First_0 top.usr.i_invalid! top.res.abs_7! top.res.inst_0! top.usr.i_invalid top.res.abs_7 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_luke_rt_e2_3460_e1_1455.sl b/benchmarks/LIA/Lustre/FIREFLY_luke_rt_e2_3460_e1_1455.sl index 674690f..80af6d8 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_luke_rt_e2_3460_e1_1455.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_luke_rt_e2_3460_e1_1455.sl @@ -1,1311 +1,55 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ - (+ - (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) - 1) - 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_1_a_0)) - (let - ((X5 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7_a_0))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (let - ((X3 Int top.res.abs_2_a_1)) - (let - ((X4 Int top.res.abs_1_a_1)) - (let - ((X5 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7_a_1))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_2_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.i_invalid_a_1 - top.res.abs_7_a_1 - top.res.inst_0_a_1 - top.usr.i_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_3)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_1)) - (let - ((X5 Int top.res.abs_0)) - (and - (= top.usr.OK (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_1) - (__node_init_First_0 top.usr.i_invalid top.res.abs_7 top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_3!)) - (let - ((X3 Int top.res.abs_2!)) - (let - ((X4 Int top.res.abs_1!)) - (let - ((X5 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7!))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_4! - top.res.inst_3! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_4 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_2! - top.res.abs_5 - top.res.abs_6 - top.res.inst_2) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_1! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_1) - (__node_trans_First_0 - top.usr.i_invalid! - top.res.abs_7! - top.res.inst_0! - top.usr.i_invalid - top.res.abs_7 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_3_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_1_a_0)) (let ((X5 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7_a_0))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_3_a_1)) (let ((X3 top.res.abs_2_a_1)) (let ((X4 top.res.abs_1_a_1)) (let ((X5 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7_a_1))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_2_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.i_invalid_a_1 top.res.abs_7_a_1 top.res.inst_0_a_1 top.usr.i_invalid_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_3)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_1)) (let ((X5 top.res.abs_0)) (and (= top.usr.OK (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_1) (__node_init_First_0 top.usr.i_invalid top.res.abs_7 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_4! Bool) (top.res.inst_3! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_3!)) (let ((X3 top.res.abs_2!)) (let ((X4 top.res.abs_1!)) (let ((X5 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7!))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_4! top.res.inst_3! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_4 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_2! top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_1! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_1) (__node_trans_First_0 top.usr.i_invalid! top.res.abs_7! top.res.inst_0! top.usr.i_invalid top.res.abs_7 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_4 Bool) (top.res.inst_3 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_rt.sl b/benchmarks/LIA/Lustre/FIREFLY_rt.sl index 1a92255..6dcfbf8 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_rt.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_rt.sl @@ -1,1255 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Bool (>= X2 0))) - (let - ((X4 Int top.res.abs_2_a_0)) - (let - ((X5 Bool (>= X4 0))) - (let - ((X6 Bool (=> X1 (< X2 2)))) - (and - (= top.usr.OK_a_0 (and (and X5 X3) X6)) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_1_a_1)) - (let - ((X3 Bool (>= X2 0))) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Bool (>= X4 0))) - (let - ((X6 Bool (=> X1 (< X2 2)))) - (and - (= top.usr.OK_a_1 (and (and X5 X3) X6)) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Bool (>= X2 0))) - (let - ((X4 Int top.res.abs_2)) - (let - ((X5 Bool (>= X4 0))) - (let - ((X6 Bool (=> X1 (< X2 2)))) - (and - (= top.usr.OK (and (and X5 X3) X6)) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_1!)) - (let - ((X3 Bool (>= X2 0))) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Bool (>= X4 0))) - (let - ((X6 Bool (=> X1 (< X2 2)))) - (and - (= top.usr.OK! (and (and X5 X3) X6)) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 (>= X2 0))) (let ((X4 top.res.abs_2_a_0)) (let ((X5 (>= X4 0))) (let ((X6 (=> X1 (< X2 2)))) (and (= top.usr.OK_a_0 (and (and X5 X3) X6)) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_1_a_1)) (let ((X3 (>= X2 0))) (let ((X4 top.res.abs_2_a_1)) (let ((X5 (>= X4 0))) (let ((X6 (=> X1 (< X2 2)))) (and (= top.usr.OK_a_1 (and (and X5 X3) X6)) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_1)) (let ((X3 (>= X2 0))) (let ((X4 top.res.abs_2)) (let ((X5 (>= X4 0))) (let ((X6 (=> X1 (< X2 2)))) (and (= top.usr.OK (and (and X5 X3) X6)) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_1!)) (let ((X3 (>= X2 0))) (let ((X4 top.res.abs_2!)) (let ((X5 (>= X4 0))) (let ((X6 (=> X1 (< X2 2)))) (and (= top.usr.OK! (and (and X5 X3) X6)) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_rt_e3_1770_e2_637.sl b/benchmarks/LIA/Lustre/FIREFLY_rt_e3_1770_e2_637.sl index 77cbddb..9cf95ef 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_rt_e3_1770_e2_637.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_rt_e3_1770_e2_637.sl @@ -1,1255 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (- (- firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Bool (>= X2 0))) - (let - ((X4 Int top.res.abs_2_a_0)) - (let - ((X5 Bool (>= X4 0))) - (let - ((X6 Bool (=> X1 (< X2 2)))) - (and - (= top.usr.OK_a_0 (and (and X5 X3) X6)) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_1_a_1)) - (let - ((X3 Bool (>= X2 0))) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Bool (>= X4 0))) - (let - ((X6 Bool (=> X1 (< X2 2)))) - (and - (= top.usr.OK_a_1 (and (and X5 X3) X6)) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Bool (>= X2 0))) - (let - ((X4 Int top.res.abs_2)) - (let - ((X5 Bool (>= X4 0))) - (let - ((X6 Bool (=> X1 (< X2 2)))) - (and - (= top.usr.OK (and (and X5 X3) X6)) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_1!)) - (let - ((X3 Bool (>= X2 0))) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Bool (>= X4 0))) - (let - ((X6 Bool (=> X1 (< X2 2)))) - (and - (= top.usr.OK! (and (and X5 X3) X6)) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (- (- firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.i_invalid_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 (>= X2 0))) (let ((X4 top.res.abs_2_a_0)) (let ((X5 (>= X4 0))) (let ((X6 (=> X1 (< X2 2)))) (and (= top.usr.OK_a_0 (and (and X5 X3) X6)) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.i_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_1_a_1)) (let ((X3 (>= X2 0))) (let ((X4 top.res.abs_2_a_1)) (let ((X5 (>= X4 0))) (let ((X6 (=> X1 (< X2 2)))) (and (= top.usr.OK_a_1 (and (and X5 X3) X6)) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.i_invalid 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_1)) (let ((X3 (>= X2 0))) (let ((X4 top.res.abs_2)) (let ((X5 (>= X4 0))) (let ((X6 (=> X1 (< X2 2)))) (and (= top.usr.OK (and (and X5 X3) X6)) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.i_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_1!)) (let ((X3 (>= X2 0))) (let ((X4 top.res.abs_2!)) (let ((X5 (>= X4 0))) (let ((X6 (=> X1 (< X2 2)))) (and (= top.usr.OK! (and (and X5 X3) X6)) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_u1.sl b/benchmarks/LIA/Lustre/FIREFLY_u1.sl index a1f6566..0dee56b 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_u1.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_u1.sl @@ -1,1263 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (> top.usr.i_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_1_a_0)) - (let - ((X5 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (not (and (and (and (>= X5 0) (>= X3 0)) (>= X4 2)) (>= X2 0))))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (> top.usr.i_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (let - ((X3 Int top.res.abs_2_a_1)) - (let - ((X4 Int top.res.abs_1_a_1)) - (let - ((X5 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (not (and (and (and (>= X5 0) (>= X3 0)) (>= X4 2)) (>= X2 0))))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (> top.usr.i_invalid 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_3)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_1)) - (let - ((X5 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> - X1 - (not (and (and (and (>= X5 0) (>= X3 0)) (>= X4 2)) (>= X2 0))))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (> top.usr.i_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_3!)) - (let - ((X3 Int top.res.abs_2!)) - (let - ((X4 Int top.res.abs_1!)) - (let - ((X5 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> - X1 - (not (and (and (and (>= X5 0) (>= X3 0)) (>= X4 2)) (>= X2 0))))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (> top.usr.i_invalid_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_3_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_1_a_0)) (let ((X5 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (not (and (and (and (>= X5 0) (>= X3 0)) (>= X4 2)) (>= X2 0))))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (> top.usr.i_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_3_a_1)) (let ((X3 top.res.abs_2_a_1)) (let ((X4 top.res.abs_1_a_1)) (let ((X5 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (not (and (and (and (>= X5 0) (>= X3 0)) (>= X4 2)) (>= X2 0))))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (> top.usr.i_invalid 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_3)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_1)) (let ((X5 top.res.abs_0)) (and (= top.usr.OK (=> X1 (not (and (and (and (>= X5 0) (>= X3 0)) (>= X4 2)) (>= X2 0))))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (> top.usr.i_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_3!)) (let ((X3 top.res.abs_2!)) (let ((X4 top.res.abs_1!)) (let ((X5 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (not (and (and (and (>= X5 0) (>= X3 0)) (>= X4 2)) (>= X2 0))))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/FIREFLY_u1_e2_3403_e2_957.sl b/benchmarks/LIA/Lustre/FIREFLY_u1_e2_3403_e2_957.sl index a280c30..b6f9b11 100644 --- a/benchmarks/LIA/Lustre/FIREFLY_u1_e2_3403_e2_957.sl +++ b/benchmarks/LIA/Lustre/FIREFLY_u1_e2_3403_e2_957.sl @@ -1,1267 +1,51 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes8_0 ( - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - excludes8.usr.X3_a_0) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - excludes8.usr.X4_a_0) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - excludes8.usr.X5_a_0) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - excludes8.usr.X6_a_0) - (not excludes8.usr.X7_a_0)) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - excludes8.usr.X7_a_0) - (not excludes8.usr.X8_a_0))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) - (not excludes8.usr.X3_a_0)) - (not excludes8.usr.X4_a_0)) - (not excludes8.usr.X5_a_0)) - (not excludes8.usr.X6_a_0)) - (not excludes8.usr.X7_a_0)) - excludes8.usr.X8_a_0))) - excludes8.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes8_0 ( - (excludes8.usr.X1_a_1 Bool) - (excludes8.usr.X2_a_1 Bool) - (excludes8.usr.X3_a_1 Bool) - (excludes8.usr.X4_a_1 Bool) - (excludes8.usr.X5_a_1 Bool) - (excludes8.usr.X6_a_1 Bool) - (excludes8.usr.X7_a_1 Bool) - (excludes8.usr.X8_a_1 Bool) - (excludes8.usr.excludes_a_1 Bool) - (excludes8.res.init_flag_a_1 Bool) - (excludes8.usr.X1_a_0 Bool) - (excludes8.usr.X2_a_0 Bool) - (excludes8.usr.X3_a_0 Bool) - (excludes8.usr.X4_a_0 Bool) - (excludes8.usr.X5_a_0 Bool) - (excludes8.usr.X6_a_0 Bool) - (excludes8.usr.X7_a_0 Bool) - (excludes8.usr.X8_a_0 Bool) - (excludes8.usr.excludes_a_0 Bool) - (excludes8.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes8.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1)) - (and - (and - (and - (and - (and - (and - (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - excludes8.usr.X3_a_1) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - excludes8.usr.X4_a_1) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - excludes8.usr.X5_a_1) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - excludes8.usr.X6_a_1) - (not excludes8.usr.X7_a_1)) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - excludes8.usr.X7_a_1) - (not excludes8.usr.X8_a_1))) - (and - (and - (and - (and - (and - (and - (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) - (not excludes8.usr.X3_a_1)) - (not excludes8.usr.X4_a_1)) - (not excludes8.usr.X5_a_1)) - (not excludes8.usr.X6_a_1)) - (not excludes8.usr.X7_a_1)) - excludes8.usr.X8_a_1))) - (not excludes8.res.init_flag_a_1)) -) - -(define-fun - __node_init_firefly_0 ( - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (and - (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) - (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) - (let - ((X1 - Bool (let - ((X1 Int firefly.res.nondet_3) - (X2 Int firefly.res.nondet_2) - (X3 Int firefly.res.nondet_1) - (X4 Int firefly.res.nondet_0)) - (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) - (and - (= firefly.usr.dirty_a_0 0) - (let - ((X2 - Bool (let - ((X2 Int firefly.res.nondet_5) (X3 Int firefly.res.nondet_4)) - (and (>= X3 1) (>= X2 1))))) - (let - ((X3 Bool (let ((X3 Int firefly.res.nondet_9)) (>= X3 1)))) - (and - (= firefly.usr.exclusive_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int firefly.res.nondet_8) - (X5 Int firefly.res.nondet_7) - (X6 Int firefly.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (and - (= firefly.usr.shared_a_0 0) - (let - ((X5 Bool (let ((X5 Int firefly.res.nondet_10)) (= X5 1)))) - (let - ((X6 - Bool (let - ((X6 Int firefly.res.nondet_16) - (X7 Int firefly.res.nondet_15)) - (and (>= X7 1) (>= X6 1))))) - (let - ((X7 - Bool (let - ((X7 Int firefly.res.nondet_19) - (X8 Int firefly.res.nondet_18) - (X9 Int firefly.res.nondet_17)) - (and (>= X9 1) (>= (+ X8 X7) 1))))) - (let - ((X8 - Bool (let - ((X8 Int firefly.res.nondet_14) - (X9 Int firefly.res.nondet_13) - (X10 Int firefly.res.nondet_12) - (X11 Int firefly.res.nondet_11)) - (and - (and (and (>= X11 1) (= X10 0)) (= X9 0)) - (= X8 0))))) - firefly.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_firefly_0 ( - (firefly.usr.e1_a_1 Bool) - (firefly.usr.e2_a_1 Bool) - (firefly.usr.e3_a_1 Bool) - (firefly.usr.e4_a_1 Bool) - (firefly.usr.e5_a_1 Bool) - (firefly.usr.e6_a_1 Bool) - (firefly.usr.e7_a_1 Bool) - (firefly.usr.e8_a_1 Bool) - (firefly.usr.i_invalid_a_1 Int) - (firefly.res.nondet_19 Int) - (firefly.res.nondet_18 Int) - (firefly.res.nondet_17 Int) - (firefly.res.nondet_16 Int) - (firefly.res.nondet_15 Int) - (firefly.res.nondet_14 Int) - (firefly.res.nondet_13 Int) - (firefly.res.nondet_12 Int) - (firefly.res.nondet_11 Int) - (firefly.res.nondet_10 Int) - (firefly.res.nondet_9 Int) - (firefly.res.nondet_8 Int) - (firefly.res.nondet_7 Int) - (firefly.res.nondet_6 Int) - (firefly.res.nondet_5 Int) - (firefly.res.nondet_4 Int) - (firefly.res.nondet_3 Int) - (firefly.res.nondet_2 Int) - (firefly.res.nondet_1 Int) - (firefly.res.nondet_0 Int) - (firefly.usr.invalid_a_1 Int) - (firefly.usr.dirty_a_1 Int) - (firefly.usr.exclusive_a_1 Int) - (firefly.usr.shared_a_1 Int) - (firefly.res.init_flag_a_1 Bool) - (firefly.impl.usr.mem_invalid_a_1 Int) - (firefly.usr.e1_a_0 Bool) - (firefly.usr.e2_a_0 Bool) - (firefly.usr.e3_a_0 Bool) - (firefly.usr.e4_a_0 Bool) - (firefly.usr.e5_a_0 Bool) - (firefly.usr.e6_a_0 Bool) - (firefly.usr.e7_a_0 Bool) - (firefly.usr.e8_a_0 Bool) - (firefly.usr.i_invalid_a_0 Int) - (firefly.usr.invalid_a_0 Int) - (firefly.usr.dirty_a_0 Int) - (firefly.usr.exclusive_a_0 Int) - (firefly.usr.shared_a_0 Int) - (firefly.res.init_flag_a_0 Bool) - (firefly.impl.usr.mem_invalid_a_0 Int) - ) Bool - - (let - ((X1 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X2 Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X3 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (let - ((X4 - Bool (and - (>= firefly.usr.invalid_a_0 1) - (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) - (let - ((X5 - Bool (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) - (let - ((X6 - Bool (and - (and - (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) - (= firefly.usr.shared_a_0 0)) - (= firefly.usr.exclusive_a_0 0)))) - (and - (= - firefly.usr.invalid_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) - firefly.usr.invalid_a_0))))))) - (let - ((X7 Bool (>= firefly.usr.exclusive_a_0 1))) - (and - (= - firefly.usr.dirty_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e4_a_1 - (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - (ite - firefly.usr.e6_a_1 - (ite X3 1 firefly.usr.dirty_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) - firefly.usr.dirty_a_0))))) - (let - ((X8 Bool (= firefly.usr.shared_a_0 1))) - (and - (= - firefly.usr.exclusive_a_1 - (ite - firefly.usr.e1_a_1 - (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) - (ite - firefly.usr.e3_a_1 - (ite X4 0 firefly.usr.exclusive_a_0) - (ite - firefly.usr.e4_a_1 - (ite - X7 - (- firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e5_a_1 - (ite - X8 - (+ firefly.usr.exclusive_a_0 1) - firefly.usr.exclusive_a_0) - (ite - firefly.usr.e8_a_1 - (ite X1 0 firefly.usr.exclusive_a_0) - firefly.usr.exclusive_a_0)))))) - (= - firefly.usr.shared_a_1 - (ite - firefly.usr.e2_a_1 - (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e3_a_1 - (ite - X4 - (+ - (- - (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) - 1) - 1) - firefly.usr.shared_a_0) - (ite - firefly.usr.e5_a_1 - (ite X8 0 firefly.usr.shared_a_0) - (ite - firefly.usr.e7_a_1 - (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) - (ite - firefly.usr.e8_a_1 - (ite - X1 - (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) - firefly.usr.shared_a_0) - firefly.usr.shared_a_0)))))) - (= - firefly.impl.usr.mem_invalid_a_1 - firefly.impl.usr.mem_invalid_a_0) - (not firefly.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (> top.usr.i_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_1_a_0)) - (let - ((X5 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (not (and (and (and (>= X5 0) (>= X3 0)) (>= X4 2)) (>= X2 0))))) - (__node_init_firefly_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_excludes8_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.i_invalid_a_1 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.i_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (> top.usr.i_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (let - ((X3 Int top.res.abs_2_a_1)) - (let - ((X4 Int top.res.abs_1_a_1)) - (let - ((X5 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (not (and (and (and (>= X5 0) (>= X3 0)) (>= X4 2)) (>= X2 0))))) - (__node_trans_firefly_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.i_invalid_a_1 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.i_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes8_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.i_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (> top.usr.i_invalid 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_3)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_1)) - (let - ((X5 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> - X1 - (not (and (and (and (>= X5 0) (>= X3 0)) (>= X4 2)) (>= X2 0))))) - (__node_init_firefly_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes8_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.i_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (> top.usr.i_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_3!)) - (let - ((X3 Int top.res.abs_2!)) - (let - ((X4 Int top.res.abs_1!)) - (let - ((X5 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> - X1 - (not (and (and (and (>= X5 0) (>= X3 0)) (>= X4 2)) (>= X2 0))))) - (__node_trans_firefly_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.i_invalid! - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.i_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes8_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.i_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes8_0 ((excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_0 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0)) (and (and (and (and (and (and (and excludes8.usr.X1_a_0 (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) excludes8.usr.X2_a_0) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) excludes8.usr.X3_a_0) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) excludes8.usr.X4_a_0) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) excludes8.usr.X5_a_0) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) excludes8.usr.X6_a_0) (not excludes8.usr.X7_a_0)) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) excludes8.usr.X7_a_0) (not excludes8.usr.X8_a_0))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_0) (not excludes8.usr.X2_a_0)) (not excludes8.usr.X3_a_0)) (not excludes8.usr.X4_a_0)) (not excludes8.usr.X5_a_0)) (not excludes8.usr.X6_a_0)) (not excludes8.usr.X7_a_0)) excludes8.usr.X8_a_0))) excludes8.res.init_flag_a_0)) +(define-fun __node_trans_excludes8_0 ((excludes8.usr.X1_a_1 Bool) (excludes8.usr.X2_a_1 Bool) (excludes8.usr.X3_a_1 Bool) (excludes8.usr.X4_a_1 Bool) (excludes8.usr.X5_a_1 Bool) (excludes8.usr.X6_a_1 Bool) (excludes8.usr.X7_a_1 Bool) (excludes8.usr.X8_a_1 Bool) (excludes8.usr.excludes_a_1 Bool) (excludes8.res.init_flag_a_1 Bool) (excludes8.usr.X1_a_0 Bool) (excludes8.usr.X2_a_0 Bool) (excludes8.usr.X3_a_0 Bool) (excludes8.usr.X4_a_0 Bool) (excludes8.usr.X5_a_0 Bool) (excludes8.usr.X6_a_0 Bool) (excludes8.usr.X7_a_0 Bool) (excludes8.usr.X8_a_0 Bool) (excludes8.usr.excludes_a_0 Bool) (excludes8.res.init_flag_a_0 Bool)) Bool + (and (= excludes8.usr.excludes_a_1 (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1)) (and (and (and (and (and (and (and excludes8.usr.X1_a_1 (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) excludes8.usr.X2_a_1) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) excludes8.usr.X3_a_1) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) excludes8.usr.X4_a_1) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) excludes8.usr.X5_a_1) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) excludes8.usr.X6_a_1) (not excludes8.usr.X7_a_1)) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) excludes8.usr.X7_a_1) (not excludes8.usr.X8_a_1))) (and (and (and (and (and (and (and (not excludes8.usr.X1_a_1) (not excludes8.usr.X2_a_1)) (not excludes8.usr.X3_a_1)) (not excludes8.usr.X4_a_1)) (not excludes8.usr.X5_a_1)) (not excludes8.usr.X6_a_1)) (not excludes8.usr.X7_a_1)) excludes8.usr.X8_a_1))) (not excludes8.res.init_flag_a_1))) +(define-fun __node_init_firefly_0 ((firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (and (= firefly.impl.usr.mem_invalid_a_0 firefly.usr.i_invalid_a_0) (= firefly.usr.invalid_a_0 firefly.impl.usr.mem_invalid_a_0) (let ((X1 (let ((X1 firefly.res.nondet_3) (X2 firefly.res.nondet_2) (X3 firefly.res.nondet_1) (X4 firefly.res.nondet_0)) (and (and (and (>= X4 1) (= X3 0)) (= X2 0)) (= X1 0))))) (and (= firefly.usr.dirty_a_0 0) (let ((X2 (let ((X2 firefly.res.nondet_5) (X3 firefly.res.nondet_4)) (and (>= X3 1) (>= X2 1))))) (let ((X3 (let ((X3 firefly.res.nondet_9)) (>= X3 1)))) (and (= firefly.usr.exclusive_a_0 0) (let ((X4 (let ((X4 firefly.res.nondet_8) (X5 firefly.res.nondet_7) (X6 firefly.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (and (= firefly.usr.shared_a_0 0) (let ((X5 (let ((X5 firefly.res.nondet_10)) (= X5 1)))) (let ((X6 (let ((X6 firefly.res.nondet_16) (X7 firefly.res.nondet_15)) (and (>= X7 1) (>= X6 1))))) (let ((X7 (let ((X7 firefly.res.nondet_19) (X8 firefly.res.nondet_18) (X9 firefly.res.nondet_17)) (and (>= X9 1) (>= (+ X8 X7) 1))))) (let ((X8 (let ((X8 firefly.res.nondet_14) (X9 firefly.res.nondet_13) (X10 firefly.res.nondet_12) (X11 firefly.res.nondet_11)) (and (and (and (>= X11 1) (= X10 0)) (= X9 0)) (= X8 0))))) firefly.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_firefly_0 ((firefly.usr.e1_a_1 Bool) (firefly.usr.e2_a_1 Bool) (firefly.usr.e3_a_1 Bool) (firefly.usr.e4_a_1 Bool) (firefly.usr.e5_a_1 Bool) (firefly.usr.e6_a_1 Bool) (firefly.usr.e7_a_1 Bool) (firefly.usr.e8_a_1 Bool) (firefly.usr.i_invalid_a_1 Int) (firefly.res.nondet_19 Int) (firefly.res.nondet_18 Int) (firefly.res.nondet_17 Int) (firefly.res.nondet_16 Int) (firefly.res.nondet_15 Int) (firefly.res.nondet_14 Int) (firefly.res.nondet_13 Int) (firefly.res.nondet_12 Int) (firefly.res.nondet_11 Int) (firefly.res.nondet_10 Int) (firefly.res.nondet_9 Int) (firefly.res.nondet_8 Int) (firefly.res.nondet_7 Int) (firefly.res.nondet_6 Int) (firefly.res.nondet_5 Int) (firefly.res.nondet_4 Int) (firefly.res.nondet_3 Int) (firefly.res.nondet_2 Int) (firefly.res.nondet_1 Int) (firefly.res.nondet_0 Int) (firefly.usr.invalid_a_1 Int) (firefly.usr.dirty_a_1 Int) (firefly.usr.exclusive_a_1 Int) (firefly.usr.shared_a_1 Int) (firefly.res.init_flag_a_1 Bool) (firefly.impl.usr.mem_invalid_a_1 Int) (firefly.usr.e1_a_0 Bool) (firefly.usr.e2_a_0 Bool) (firefly.usr.e3_a_0 Bool) (firefly.usr.e4_a_0 Bool) (firefly.usr.e5_a_0 Bool) (firefly.usr.e6_a_0 Bool) (firefly.usr.e7_a_0 Bool) (firefly.usr.e8_a_0 Bool) (firefly.usr.i_invalid_a_0 Int) (firefly.usr.invalid_a_0 Int) (firefly.usr.dirty_a_0 Int) (firefly.usr.exclusive_a_0 Int) (firefly.usr.shared_a_0 Int) (firefly.res.init_flag_a_0 Bool) (firefly.impl.usr.mem_invalid_a_0 Int)) Bool + (let ((X1 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X2 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X3 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (let ((X4 (and (>= firefly.usr.invalid_a_0 1) (>= (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1)))) (let ((X5 (and (>= firefly.usr.invalid_a_0 1) (>= firefly.usr.dirty_a_0 1)))) (let ((X6 (and (and (and (>= firefly.usr.invalid_a_0 1) (= firefly.usr.dirty_a_0 0)) (= firefly.usr.shared_a_0 0)) (= firefly.usr.exclusive_a_0 0)))) (and (= firefly.usr.invalid_a_1 (ite firefly.usr.e1_a_1 (ite X6 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e3_a_1 (ite X4 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e6_a_1 (ite X3 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) (ite firefly.usr.e8_a_1 (ite X1 (- firefly.usr.invalid_a_0 1) firefly.usr.invalid_a_0) firefly.usr.invalid_a_0))))))) (let ((X7 (>= firefly.usr.exclusive_a_0 1))) (and (= firefly.usr.dirty_a_1 (ite firefly.usr.e2_a_1 (ite X5 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e4_a_1 (ite X7 (+ firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) (ite firefly.usr.e6_a_1 (ite X3 1 firefly.usr.dirty_a_0) (ite firefly.usr.e7_a_1 (ite X2 (- firefly.usr.dirty_a_0 1) firefly.usr.dirty_a_0) firefly.usr.dirty_a_0))))) (let ((X8 (= firefly.usr.shared_a_0 1))) (and (= firefly.usr.exclusive_a_1 (ite firefly.usr.e1_a_1 (ite X6 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e3_a_1 (ite X4 0 firefly.usr.exclusive_a_0) (ite firefly.usr.e4_a_1 (ite X7 (- firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e5_a_1 (ite X8 (+ firefly.usr.exclusive_a_0 1) firefly.usr.exclusive_a_0) (ite firefly.usr.e8_a_1 (ite X1 0 firefly.usr.exclusive_a_0) firefly.usr.exclusive_a_0)))))) (= firefly.usr.shared_a_1 (ite firefly.usr.e2_a_1 (ite X5 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e3_a_1 (ite X4 (+ (- (+ (- firefly.usr.shared_a_0 1) firefly.usr.exclusive_a_0) 1) 1) firefly.usr.shared_a_0) (ite firefly.usr.e5_a_1 (ite X8 0 firefly.usr.shared_a_0) (ite firefly.usr.e7_a_1 (ite X2 (+ firefly.usr.shared_a_0 2) firefly.usr.shared_a_0) (ite firefly.usr.e8_a_1 (ite X1 (+ (+ firefly.usr.shared_a_0 firefly.usr.exclusive_a_0) 1) firefly.usr.shared_a_0) firefly.usr.shared_a_0)))))) (= firefly.impl.usr.mem_invalid_a_1 firefly.impl.usr.mem_invalid_a_0) (not firefly.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (> top.usr.i_invalid_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_3_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_1_a_0)) (let ((X5 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (not (and (and (and (>= X5 0) (>= X3 0)) (>= X4 2)) (>= X2 0))))) (__node_init_firefly_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes8_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.i_invalid_a_1 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.i_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (> top.usr.i_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_3_a_1)) (let ((X3 top.res.abs_2_a_1)) (let ((X4 top.res.abs_1_a_1)) (let ((X5 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (not (and (and (and (>= X5 0) (>= X3 0)) (>= X4 2)) (>= X2 0))))) (__node_trans_firefly_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.i_invalid_a_1 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.i_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes8_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (> top.usr.i_invalid 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_3)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_1)) (let ((X5 top.res.abs_0)) (and (= top.usr.OK (=> X1 (not (and (and (and (>= X5 0) (>= X3 0)) (>= X4 2)) (>= X2 0))))) (__node_init_firefly_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes8_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.i_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (> top.usr.i_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_3!)) (let ((X3 top.res.abs_2!)) (let ((X4 top.res.abs_1!)) (let ((X5 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (not (and (and (and (>= X5 0) (>= X3 0)) (>= X4 2)) (>= X2 0))))) (__node_trans_firefly_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.i_invalid! top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.i_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes8_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.i_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ILLINOIS_1.sl b/benchmarks/LIA/Lustre/ILLINOIS_1.sl index b465c88..2ef07a8 100644 --- a/benchmarks/LIA/Lustre/ILLINOIS_1.sl +++ b/benchmarks/LIA/Lustre/ILLINOIS_1.sl @@ -1,1242 +1,46 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes9_0 ( - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - excludes9.usr.X3_a_0) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - excludes9.usr.X4_a_0) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - excludes9.usr.X5_a_0) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - excludes9.usr.X6_a_0) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - excludes9.usr.X7_a_0) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - excludes9.usr.X8_a_0) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - excludes9.usr.X9_a_0))) - excludes9.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes9_0 ( - (excludes9.usr.X1_a_1 Bool) - (excludes9.usr.X2_a_1 Bool) - (excludes9.usr.X3_a_1 Bool) - (excludes9.usr.X4_a_1 Bool) - (excludes9.usr.X5_a_1 Bool) - (excludes9.usr.X6_a_1 Bool) - (excludes9.usr.X7_a_1 Bool) - (excludes9.usr.X8_a_1 Bool) - (excludes9.usr.X9_a_1 Bool) - (excludes9.usr.excludes_a_1 Bool) - (excludes9.res.init_flag_a_1 Bool) - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - excludes9.usr.X3_a_1) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - excludes9.usr.X4_a_1) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - excludes9.usr.X5_a_1) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - excludes9.usr.X6_a_1) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - excludes9.usr.X7_a_1) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - excludes9.usr.X8_a_1) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - excludes9.usr.X9_a_1))) - (not excludes9.res.init_flag_a_1)) -) - -(define-fun - __node_init_illinois_0 ( - (illinois.usr.e1_a_0 Bool) - (illinois.usr.e2_a_0 Bool) - (illinois.usr.e3_a_0 Bool) - (illinois.usr.e4_a_0 Bool) - (illinois.usr.e5_a_0 Bool) - (illinois.usr.e6_a_0 Bool) - (illinois.usr.e7_a_0 Bool) - (illinois.usr.e8_a_0 Bool) - (illinois.usr.e9_a_0 Bool) - (illinois.usr.init_invalid_a_0 Int) - (illinois.res.nondet_14 Int) - (illinois.res.nondet_13 Int) - (illinois.res.nondet_12 Int) - (illinois.res.nondet_11 Int) - (illinois.res.nondet_10 Int) - (illinois.res.nondet_9 Int) - (illinois.res.nondet_8 Int) - (illinois.res.nondet_7 Int) - (illinois.res.nondet_6 Int) - (illinois.res.nondet_5 Int) - (illinois.res.nondet_4 Int) - (illinois.res.nondet_3 Int) - (illinois.res.nondet_2 Int) - (illinois.res.nondet_1 Int) - (illinois.res.nondet_0 Int) - (illinois.usr.invalid_a_0 Int) - (illinois.usr.dirty_a_0 Int) - (illinois.usr.exclusive_a_0 Int) - (illinois.usr.shared_a_0 Int) - (illinois.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - illinois.usr.invalid_a_0 - (ite - (> illinois.usr.init_invalid_a_0 0) - illinois.usr.init_invalid_a_0 - (- 1 illinois.usr.init_invalid_a_0))) - (= illinois.usr.dirty_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int illinois.res.nondet_5) (X2 Int illinois.res.nondet_4)) - (and (>= X2 1) (>= X1 1))))) - (let - ((X2 Bool (let ((X2 Int illinois.res.nondet_9)) (>= X2 1)))) - (and - (= illinois.usr.exclusive_a_0 0) - (let - ((X3 - Bool (let - ((X3 Int illinois.res.nondet_3) - (X4 Int illinois.res.nondet_2) - (X5 Int illinois.res.nondet_1) - (X6 Int illinois.res.nondet_0)) - (and (and (and (>= X6 1) (= X5 0)) (= X4 0)) (= X3 0))))) - (and - (= illinois.usr.shared_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int illinois.res.nondet_8) - (X5 Int illinois.res.nondet_7) - (X6 Int illinois.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (let - ((X5 Bool (let ((X5 Int illinois.res.nondet_10)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int illinois.res.nondet_11)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int illinois.res.nondet_13)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int illinois.res.nondet_14)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int illinois.res.nondet_12)) (>= X9 1)))) - illinois.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_illinois_0 ( - (illinois.usr.e1_a_1 Bool) - (illinois.usr.e2_a_1 Bool) - (illinois.usr.e3_a_1 Bool) - (illinois.usr.e4_a_1 Bool) - (illinois.usr.e5_a_1 Bool) - (illinois.usr.e6_a_1 Bool) - (illinois.usr.e7_a_1 Bool) - (illinois.usr.e8_a_1 Bool) - (illinois.usr.e9_a_1 Bool) - (illinois.usr.init_invalid_a_1 Int) - (illinois.res.nondet_14 Int) - (illinois.res.nondet_13 Int) - (illinois.res.nondet_12 Int) - (illinois.res.nondet_11 Int) - (illinois.res.nondet_10 Int) - (illinois.res.nondet_9 Int) - (illinois.res.nondet_8 Int) - (illinois.res.nondet_7 Int) - (illinois.res.nondet_6 Int) - (illinois.res.nondet_5 Int) - (illinois.res.nondet_4 Int) - (illinois.res.nondet_3 Int) - (illinois.res.nondet_2 Int) - (illinois.res.nondet_1 Int) - (illinois.res.nondet_0 Int) - (illinois.usr.invalid_a_1 Int) - (illinois.usr.dirty_a_1 Int) - (illinois.usr.exclusive_a_1 Int) - (illinois.usr.shared_a_1 Int) - (illinois.res.init_flag_a_1 Bool) - (illinois.usr.e1_a_0 Bool) - (illinois.usr.e2_a_0 Bool) - (illinois.usr.e3_a_0 Bool) - (illinois.usr.e4_a_0 Bool) - (illinois.usr.e5_a_0 Bool) - (illinois.usr.e6_a_0 Bool) - (illinois.usr.e7_a_0 Bool) - (illinois.usr.e8_a_0 Bool) - (illinois.usr.e9_a_0 Bool) - (illinois.usr.init_invalid_a_0 Int) - (illinois.usr.invalid_a_0 Int) - (illinois.usr.dirty_a_0 Int) - (illinois.usr.exclusive_a_0 Int) - (illinois.usr.shared_a_0 Int) - (illinois.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= illinois.usr.exclusive_a_0 1))) - (let - ((X2 Bool (>= illinois.usr.shared_a_0 1))) - (let - ((X3 Bool (>= illinois.usr.dirty_a_0 1))) - (let - ((X4 Bool (>= illinois.usr.invalid_a_0 1))) - (let - ((X5 Bool (>= illinois.usr.shared_a_0 1))) - (let - ((X6 - Bool (and - (>= illinois.usr.invalid_a_0 1) - (>= (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1)))) - (let - ((X7 - Bool (and - (>= illinois.usr.invalid_a_0 1) - (>= illinois.usr.dirty_a_0 1)))) - (let - ((X8 - Bool (and - (and - (and - (>= illinois.usr.invalid_a_0 1) - (= illinois.usr.dirty_a_0 0)) - (= illinois.usr.shared_a_0 0)) - (= illinois.usr.exclusive_a_0 0)))) - (and - (= - illinois.usr.invalid_a_1 - (ite - illinois.usr.e1_a_1 - (ite X8 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) - (ite - illinois.usr.e2_a_1 - (ite X7 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) - (ite - illinois.usr.e3_a_1 - (ite X6 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) - (ite - illinois.usr.e5_a_1 - (ite - X5 - (- (+ illinois.usr.invalid_a_0 illinois.usr.shared_a_0) 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e6_a_1 - (ite - X4 - (- - (+ - (+ - (+ illinois.usr.invalid_a_0 illinois.usr.dirty_a_0) - illinois.usr.shared_a_0) - illinois.usr.exclusive_a_0) - 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e7_a_1 - (ite - X3 - (+ illinois.usr.invalid_a_0 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e8_a_1 - (ite - X2 - (+ illinois.usr.invalid_a_0 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e9_a_1 - (ite - X1 - (+ illinois.usr.invalid_a_0 1) - illinois.usr.invalid_a_0) - illinois.usr.invalid_a_0))))))))) - (let - ((X9 Bool (>= illinois.usr.exclusive_a_0 1))) - (and - (= - illinois.usr.dirty_a_1 - (ite - illinois.usr.e2_a_1 - (ite X7 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - (ite - illinois.usr.e4_a_1 - (ite X9 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - (ite - illinois.usr.e5_a_1 - (ite X5 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - (ite - illinois.usr.e6_a_1 - (ite X4 1 illinois.usr.dirty_a_0) - (ite - illinois.usr.e7_a_1 - (ite X3 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - illinois.usr.dirty_a_0)))))) - (= - illinois.usr.exclusive_a_1 - (ite - illinois.usr.e1_a_1 - (ite - X8 - (+ illinois.usr.exclusive_a_0 1) - illinois.usr.exclusive_a_0) - (ite - illinois.usr.e3_a_1 - (ite X6 0 illinois.usr.exclusive_a_0) - (ite - illinois.usr.e4_a_1 - (ite - X9 - (- illinois.usr.exclusive_a_0 1) - illinois.usr.exclusive_a_0) - (ite - illinois.usr.e6_a_1 - (ite X4 0 illinois.usr.exclusive_a_0) - (ite - illinois.usr.e9_a_1 - (ite - X1 - (- illinois.usr.exclusive_a_0 1) - illinois.usr.exclusive_a_0) - illinois.usr.exclusive_a_0)))))) - (= - illinois.usr.shared_a_1 - (ite - illinois.usr.e2_a_1 - (ite X7 (+ illinois.usr.shared_a_0 2) illinois.usr.shared_a_0) - (ite - illinois.usr.e3_a_1 - (ite - X6 - (+ (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1) - illinois.usr.shared_a_0) - (ite - illinois.usr.e5_a_1 - (ite X5 0 illinois.usr.shared_a_0) - (ite - illinois.usr.e6_a_1 - (ite X4 0 illinois.usr.shared_a_0) - (ite - illinois.usr.e8_a_1 - (ite X2 (- illinois.usr.shared_a_0 1) illinois.usr.shared_a_0) - illinois.usr.shared_a_0)))))) - (not illinois.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_5_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (< X2 2))) - (__node_init_illinois_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_1_a_0) - (__node_init_excludes9_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.e9_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_5_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (< X2 2))) - (__node_trans_illinois_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_1_a_1 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes9_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.e9 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_5)) - (let - ((X2 Int top.res.abs_2)) - (and - (= top.usr.OK (=> X1 (< X2 2))) - (__node_init_illinois_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_invalid - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_4 top.res.abs_5 top.res.inst_1) - (__node_init_excludes9_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.e9! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Bool top.res.abs_5!)) - (let - ((X2 Int top.res.abs_2!)) - (and - (= top.usr.OK! (=> X1 (< X2 2))) - (__node_trans_illinois_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.usr.init_invalid! - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_4! - top.res.abs_5! - top.res.inst_1! - top.res.abs_4 - top.res.abs_5 - top.res.inst_1) - (__node_trans_excludes9_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!)))) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes9_0 ((excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) excludes9.usr.X3_a_0) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) excludes9.usr.X4_a_0) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) excludes9.usr.X5_a_0) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) excludes9.usr.X6_a_0) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) excludes9.usr.X7_a_0) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) excludes9.usr.X8_a_0) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) excludes9.usr.X9_a_0))) excludes9.res.init_flag_a_0)) +(define-fun __node_trans_excludes9_0 ((excludes9.usr.X1_a_1 Bool) (excludes9.usr.X2_a_1 Bool) (excludes9.usr.X3_a_1 Bool) (excludes9.usr.X4_a_1 Bool) (excludes9.usr.X5_a_1 Bool) (excludes9.usr.X6_a_1 Bool) (excludes9.usr.X7_a_1 Bool) (excludes9.usr.X8_a_1 Bool) (excludes9.usr.X9_a_1 Bool) (excludes9.usr.excludes_a_1 Bool) (excludes9.res.init_flag_a_1 Bool) (excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) excludes9.usr.X3_a_1) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) excludes9.usr.X4_a_1) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) excludes9.usr.X5_a_1) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) excludes9.usr.X6_a_1) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) excludes9.usr.X7_a_1) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) excludes9.usr.X8_a_1) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) excludes9.usr.X9_a_1))) (not excludes9.res.init_flag_a_1))) +(define-fun __node_init_illinois_0 ((illinois.usr.e1_a_0 Bool) (illinois.usr.e2_a_0 Bool) (illinois.usr.e3_a_0 Bool) (illinois.usr.e4_a_0 Bool) (illinois.usr.e5_a_0 Bool) (illinois.usr.e6_a_0 Bool) (illinois.usr.e7_a_0 Bool) (illinois.usr.e8_a_0 Bool) (illinois.usr.e9_a_0 Bool) (illinois.usr.init_invalid_a_0 Int) (illinois.res.nondet_14 Int) (illinois.res.nondet_13 Int) (illinois.res.nondet_12 Int) (illinois.res.nondet_11 Int) (illinois.res.nondet_10 Int) (illinois.res.nondet_9 Int) (illinois.res.nondet_8 Int) (illinois.res.nondet_7 Int) (illinois.res.nondet_6 Int) (illinois.res.nondet_5 Int) (illinois.res.nondet_4 Int) (illinois.res.nondet_3 Int) (illinois.res.nondet_2 Int) (illinois.res.nondet_1 Int) (illinois.res.nondet_0 Int) (illinois.usr.invalid_a_0 Int) (illinois.usr.dirty_a_0 Int) (illinois.usr.exclusive_a_0 Int) (illinois.usr.shared_a_0 Int) (illinois.res.init_flag_a_0 Bool)) Bool + (and (= illinois.usr.invalid_a_0 (ite (> illinois.usr.init_invalid_a_0 0) illinois.usr.init_invalid_a_0 (- 1 illinois.usr.init_invalid_a_0))) (= illinois.usr.dirty_a_0 0) (let ((X1 (let ((X1 illinois.res.nondet_5) (X2 illinois.res.nondet_4)) (and (>= X2 1) (>= X1 1))))) (let ((X2 (let ((X2 illinois.res.nondet_9)) (>= X2 1)))) (and (= illinois.usr.exclusive_a_0 0) (let ((X3 (let ((X3 illinois.res.nondet_3) (X4 illinois.res.nondet_2) (X5 illinois.res.nondet_1) (X6 illinois.res.nondet_0)) (and (and (and (>= X6 1) (= X5 0)) (= X4 0)) (= X3 0))))) (and (= illinois.usr.shared_a_0 0) (let ((X4 (let ((X4 illinois.res.nondet_8) (X5 illinois.res.nondet_7) (X6 illinois.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (let ((X5 (let ((X5 illinois.res.nondet_10)) (>= X5 1)))) (let ((X6 (let ((X6 illinois.res.nondet_11)) (>= X6 1)))) (let ((X7 (let ((X7 illinois.res.nondet_13)) (>= X7 1)))) (let ((X8 (let ((X8 illinois.res.nondet_14)) (>= X8 1)))) (let ((X9 (let ((X9 illinois.res.nondet_12)) (>= X9 1)))) illinois.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_illinois_0 ((illinois.usr.e1_a_1 Bool) (illinois.usr.e2_a_1 Bool) (illinois.usr.e3_a_1 Bool) (illinois.usr.e4_a_1 Bool) (illinois.usr.e5_a_1 Bool) (illinois.usr.e6_a_1 Bool) (illinois.usr.e7_a_1 Bool) (illinois.usr.e8_a_1 Bool) (illinois.usr.e9_a_1 Bool) (illinois.usr.init_invalid_a_1 Int) (illinois.res.nondet_14 Int) (illinois.res.nondet_13 Int) (illinois.res.nondet_12 Int) (illinois.res.nondet_11 Int) (illinois.res.nondet_10 Int) (illinois.res.nondet_9 Int) (illinois.res.nondet_8 Int) (illinois.res.nondet_7 Int) (illinois.res.nondet_6 Int) (illinois.res.nondet_5 Int) (illinois.res.nondet_4 Int) (illinois.res.nondet_3 Int) (illinois.res.nondet_2 Int) (illinois.res.nondet_1 Int) (illinois.res.nondet_0 Int) (illinois.usr.invalid_a_1 Int) (illinois.usr.dirty_a_1 Int) (illinois.usr.exclusive_a_1 Int) (illinois.usr.shared_a_1 Int) (illinois.res.init_flag_a_1 Bool) (illinois.usr.e1_a_0 Bool) (illinois.usr.e2_a_0 Bool) (illinois.usr.e3_a_0 Bool) (illinois.usr.e4_a_0 Bool) (illinois.usr.e5_a_0 Bool) (illinois.usr.e6_a_0 Bool) (illinois.usr.e7_a_0 Bool) (illinois.usr.e8_a_0 Bool) (illinois.usr.e9_a_0 Bool) (illinois.usr.init_invalid_a_0 Int) (illinois.usr.invalid_a_0 Int) (illinois.usr.dirty_a_0 Int) (illinois.usr.exclusive_a_0 Int) (illinois.usr.shared_a_0 Int) (illinois.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= illinois.usr.exclusive_a_0 1))) (let ((X2 (>= illinois.usr.shared_a_0 1))) (let ((X3 (>= illinois.usr.dirty_a_0 1))) (let ((X4 (>= illinois.usr.invalid_a_0 1))) (let ((X5 (>= illinois.usr.shared_a_0 1))) (let ((X6 (and (>= illinois.usr.invalid_a_0 1) (>= (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1)))) (let ((X7 (and (>= illinois.usr.invalid_a_0 1) (>= illinois.usr.dirty_a_0 1)))) (let ((X8 (and (and (and (>= illinois.usr.invalid_a_0 1) (= illinois.usr.dirty_a_0 0)) (= illinois.usr.shared_a_0 0)) (= illinois.usr.exclusive_a_0 0)))) (and (= illinois.usr.invalid_a_1 (ite illinois.usr.e1_a_1 (ite X8 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e2_a_1 (ite X7 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e3_a_1 (ite X6 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e5_a_1 (ite X5 (- (+ illinois.usr.invalid_a_0 illinois.usr.shared_a_0) 1) illinois.usr.invalid_a_0) (ite illinois.usr.e6_a_1 (ite X4 (- (+ (+ (+ illinois.usr.invalid_a_0 illinois.usr.dirty_a_0) illinois.usr.shared_a_0) illinois.usr.exclusive_a_0) 1) illinois.usr.invalid_a_0) (ite illinois.usr.e7_a_1 (ite X3 (+ illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e8_a_1 (ite X2 (+ illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e9_a_1 (ite X1 (+ illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) illinois.usr.invalid_a_0))))))))) (let ((X9 (>= illinois.usr.exclusive_a_0 1))) (and (= illinois.usr.dirty_a_1 (ite illinois.usr.e2_a_1 (ite X7 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) (ite illinois.usr.e4_a_1 (ite X9 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) (ite illinois.usr.e5_a_1 (ite X5 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) (ite illinois.usr.e6_a_1 (ite X4 1 illinois.usr.dirty_a_0) (ite illinois.usr.e7_a_1 (ite X3 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) illinois.usr.dirty_a_0)))))) (= illinois.usr.exclusive_a_1 (ite illinois.usr.e1_a_1 (ite X8 (+ illinois.usr.exclusive_a_0 1) illinois.usr.exclusive_a_0) (ite illinois.usr.e3_a_1 (ite X6 0 illinois.usr.exclusive_a_0) (ite illinois.usr.e4_a_1 (ite X9 (- illinois.usr.exclusive_a_0 1) illinois.usr.exclusive_a_0) (ite illinois.usr.e6_a_1 (ite X4 0 illinois.usr.exclusive_a_0) (ite illinois.usr.e9_a_1 (ite X1 (- illinois.usr.exclusive_a_0 1) illinois.usr.exclusive_a_0) illinois.usr.exclusive_a_0)))))) (= illinois.usr.shared_a_1 (ite illinois.usr.e2_a_1 (ite X7 (+ illinois.usr.shared_a_0 2) illinois.usr.shared_a_0) (ite illinois.usr.e3_a_1 (ite X6 (+ (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1) illinois.usr.shared_a_0) (ite illinois.usr.e5_a_1 (ite X5 0 illinois.usr.shared_a_0) (ite illinois.usr.e6_a_1 (ite X4 0 illinois.usr.shared_a_0) (ite illinois.usr.e8_a_1 (ite X2 (- illinois.usr.shared_a_0 1) illinois.usr.shared_a_0) illinois.usr.shared_a_0)))))) (not illinois.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_5_a_0)) (let ((X2 top.res.abs_2_a_0)) (and (= top.usr.OK_a_0 (=> X1 (< X2 2))) (__node_init_illinois_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_invalid_a_0 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_1_a_0) (__node_init_excludes9_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.e9_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_5_a_1)) (let ((X2 top.res.abs_2_a_1)) (and (= top.usr.OK_a_1 (=> X1 (< X2 2))) (__node_trans_illinois_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.usr.init_invalid_a_1 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_1_a_1 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_1_a_0) (__node_trans_excludes9_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_5)) (let ((X2 top.res.abs_2)) (and (= top.usr.OK (=> X1 (< X2 2))) (__node_init_illinois_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_invalid top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_4 top.res.abs_5 top.res.inst_1) (__node_init_excludes9_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_4 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.e9! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_5!)) (let ((X2 top.res.abs_2!)) (and (= top.usr.OK! (=> X1 (< X2 2))) (__node_trans_illinois_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.usr.init_invalid! top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_4! top.res.abs_5! top.res.inst_1! top.res.abs_4 top.res.abs_5 top.res.inst_1) (__node_trans_excludes9_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!)))) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ILLINOIS_2.sl b/benchmarks/LIA/Lustre/ILLINOIS_2.sl index 05b7ce9..86c06f3 100644 --- a/benchmarks/LIA/Lustre/ILLINOIS_2.sl +++ b/benchmarks/LIA/Lustre/ILLINOIS_2.sl @@ -1,1284 +1,46 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes9_0 ( - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - excludes9.usr.X3_a_0) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - excludes9.usr.X4_a_0) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - excludes9.usr.X5_a_0) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - excludes9.usr.X6_a_0) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - excludes9.usr.X7_a_0) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - excludes9.usr.X8_a_0) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - excludes9.usr.X9_a_0))) - excludes9.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes9_0 ( - (excludes9.usr.X1_a_1 Bool) - (excludes9.usr.X2_a_1 Bool) - (excludes9.usr.X3_a_1 Bool) - (excludes9.usr.X4_a_1 Bool) - (excludes9.usr.X5_a_1 Bool) - (excludes9.usr.X6_a_1 Bool) - (excludes9.usr.X7_a_1 Bool) - (excludes9.usr.X8_a_1 Bool) - (excludes9.usr.X9_a_1 Bool) - (excludes9.usr.excludes_a_1 Bool) - (excludes9.res.init_flag_a_1 Bool) - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - excludes9.usr.X3_a_1) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - excludes9.usr.X4_a_1) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - excludes9.usr.X5_a_1) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - excludes9.usr.X6_a_1) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - excludes9.usr.X7_a_1) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - excludes9.usr.X8_a_1) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - excludes9.usr.X9_a_1))) - (not excludes9.res.init_flag_a_1)) -) - -(define-fun - __node_init_illinois_0 ( - (illinois.usr.e1_a_0 Bool) - (illinois.usr.e2_a_0 Bool) - (illinois.usr.e3_a_0 Bool) - (illinois.usr.e4_a_0 Bool) - (illinois.usr.e5_a_0 Bool) - (illinois.usr.e6_a_0 Bool) - (illinois.usr.e7_a_0 Bool) - (illinois.usr.e8_a_0 Bool) - (illinois.usr.e9_a_0 Bool) - (illinois.usr.init_invalid_a_0 Int) - (illinois.res.nondet_14 Int) - (illinois.res.nondet_13 Int) - (illinois.res.nondet_12 Int) - (illinois.res.nondet_11 Int) - (illinois.res.nondet_10 Int) - (illinois.res.nondet_9 Int) - (illinois.res.nondet_8 Int) - (illinois.res.nondet_7 Int) - (illinois.res.nondet_6 Int) - (illinois.res.nondet_5 Int) - (illinois.res.nondet_4 Int) - (illinois.res.nondet_3 Int) - (illinois.res.nondet_2 Int) - (illinois.res.nondet_1 Int) - (illinois.res.nondet_0 Int) - (illinois.usr.invalid_a_0 Int) - (illinois.usr.dirty_a_0 Int) - (illinois.usr.exclusive_a_0 Int) - (illinois.usr.shared_a_0 Int) - (illinois.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - illinois.usr.invalid_a_0 - (ite - (> illinois.usr.init_invalid_a_0 0) - illinois.usr.init_invalid_a_0 - (- 1 illinois.usr.init_invalid_a_0))) - (= illinois.usr.dirty_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int illinois.res.nondet_5) (X2 Int illinois.res.nondet_4)) - (and (>= X2 1) (>= X1 1))))) - (let - ((X2 Bool (let ((X2 Int illinois.res.nondet_9)) (>= X2 1)))) - (and - (= illinois.usr.exclusive_a_0 0) - (let - ((X3 - Bool (let - ((X3 Int illinois.res.nondet_3) - (X4 Int illinois.res.nondet_2) - (X5 Int illinois.res.nondet_1) - (X6 Int illinois.res.nondet_0)) - (and (and (and (>= X6 1) (= X5 0)) (= X4 0)) (= X3 0))))) - (and - (= illinois.usr.shared_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int illinois.res.nondet_8) - (X5 Int illinois.res.nondet_7) - (X6 Int illinois.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (let - ((X5 Bool (let ((X5 Int illinois.res.nondet_10)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int illinois.res.nondet_11)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int illinois.res.nondet_13)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int illinois.res.nondet_14)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int illinois.res.nondet_12)) (>= X9 1)))) - illinois.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_illinois_0 ( - (illinois.usr.e1_a_1 Bool) - (illinois.usr.e2_a_1 Bool) - (illinois.usr.e3_a_1 Bool) - (illinois.usr.e4_a_1 Bool) - (illinois.usr.e5_a_1 Bool) - (illinois.usr.e6_a_1 Bool) - (illinois.usr.e7_a_1 Bool) - (illinois.usr.e8_a_1 Bool) - (illinois.usr.e9_a_1 Bool) - (illinois.usr.init_invalid_a_1 Int) - (illinois.res.nondet_14 Int) - (illinois.res.nondet_13 Int) - (illinois.res.nondet_12 Int) - (illinois.res.nondet_11 Int) - (illinois.res.nondet_10 Int) - (illinois.res.nondet_9 Int) - (illinois.res.nondet_8 Int) - (illinois.res.nondet_7 Int) - (illinois.res.nondet_6 Int) - (illinois.res.nondet_5 Int) - (illinois.res.nondet_4 Int) - (illinois.res.nondet_3 Int) - (illinois.res.nondet_2 Int) - (illinois.res.nondet_1 Int) - (illinois.res.nondet_0 Int) - (illinois.usr.invalid_a_1 Int) - (illinois.usr.dirty_a_1 Int) - (illinois.usr.exclusive_a_1 Int) - (illinois.usr.shared_a_1 Int) - (illinois.res.init_flag_a_1 Bool) - (illinois.usr.e1_a_0 Bool) - (illinois.usr.e2_a_0 Bool) - (illinois.usr.e3_a_0 Bool) - (illinois.usr.e4_a_0 Bool) - (illinois.usr.e5_a_0 Bool) - (illinois.usr.e6_a_0 Bool) - (illinois.usr.e7_a_0 Bool) - (illinois.usr.e8_a_0 Bool) - (illinois.usr.e9_a_0 Bool) - (illinois.usr.init_invalid_a_0 Int) - (illinois.usr.invalid_a_0 Int) - (illinois.usr.dirty_a_0 Int) - (illinois.usr.exclusive_a_0 Int) - (illinois.usr.shared_a_0 Int) - (illinois.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= illinois.usr.exclusive_a_0 1))) - (let - ((X2 Bool (>= illinois.usr.shared_a_0 1))) - (let - ((X3 Bool (>= illinois.usr.dirty_a_0 1))) - (let - ((X4 Bool (>= illinois.usr.invalid_a_0 1))) - (let - ((X5 Bool (>= illinois.usr.shared_a_0 1))) - (let - ((X6 - Bool (and - (>= illinois.usr.invalid_a_0 1) - (>= (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1)))) - (let - ((X7 - Bool (and - (>= illinois.usr.invalid_a_0 1) - (>= illinois.usr.dirty_a_0 1)))) - (let - ((X8 - Bool (and - (and - (and - (>= illinois.usr.invalid_a_0 1) - (= illinois.usr.dirty_a_0 0)) - (= illinois.usr.shared_a_0 0)) - (= illinois.usr.exclusive_a_0 0)))) - (and - (= - illinois.usr.invalid_a_1 - (ite - illinois.usr.e1_a_1 - (ite X8 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) - (ite - illinois.usr.e2_a_1 - (ite X7 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) - (ite - illinois.usr.e3_a_1 - (ite X6 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) - (ite - illinois.usr.e5_a_1 - (ite - X5 - (- (+ illinois.usr.invalid_a_0 illinois.usr.shared_a_0) 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e6_a_1 - (ite - X4 - (- - (+ - (+ - (+ illinois.usr.invalid_a_0 illinois.usr.dirty_a_0) - illinois.usr.shared_a_0) - illinois.usr.exclusive_a_0) - 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e7_a_1 - (ite - X3 - (+ illinois.usr.invalid_a_0 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e8_a_1 - (ite - X2 - (+ illinois.usr.invalid_a_0 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e9_a_1 - (ite - X1 - (+ illinois.usr.invalid_a_0 1) - illinois.usr.invalid_a_0) - illinois.usr.invalid_a_0))))))))) - (let - ((X9 Bool (>= illinois.usr.exclusive_a_0 1))) - (and - (= - illinois.usr.dirty_a_1 - (ite - illinois.usr.e2_a_1 - (ite X7 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - (ite - illinois.usr.e4_a_1 - (ite X9 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - (ite - illinois.usr.e5_a_1 - (ite X5 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - (ite - illinois.usr.e6_a_1 - (ite X4 1 illinois.usr.dirty_a_0) - (ite - illinois.usr.e7_a_1 - (ite X3 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - illinois.usr.dirty_a_0)))))) - (= - illinois.usr.exclusive_a_1 - (ite - illinois.usr.e1_a_1 - (ite - X8 - (+ illinois.usr.exclusive_a_0 1) - illinois.usr.exclusive_a_0) - (ite - illinois.usr.e3_a_1 - (ite X6 0 illinois.usr.exclusive_a_0) - (ite - illinois.usr.e4_a_1 - (ite - X9 - (- illinois.usr.exclusive_a_0 1) - illinois.usr.exclusive_a_0) - (ite - illinois.usr.e6_a_1 - (ite X4 0 illinois.usr.exclusive_a_0) - (ite - illinois.usr.e9_a_1 - (ite - X1 - (- illinois.usr.exclusive_a_0 1) - illinois.usr.exclusive_a_0) - illinois.usr.exclusive_a_0)))))) - (= - illinois.usr.shared_a_1 - (ite - illinois.usr.e2_a_1 - (ite X7 (+ illinois.usr.shared_a_0 2) illinois.usr.shared_a_0) - (ite - illinois.usr.e3_a_1 - (ite - X6 - (+ (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1) - illinois.usr.shared_a_0) - (ite - illinois.usr.e5_a_1 - (ite X5 0 illinois.usr.shared_a_0) - (ite - illinois.usr.e6_a_1 - (ite X4 0 illinois.usr.shared_a_0) - (ite - illinois.usr.e8_a_1 - (ite X2 (- illinois.usr.shared_a_0 1) illinois.usr.shared_a_0) - illinois.usr.shared_a_0)))))) - (not illinois.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Bool top.res.abs_5_a_0)) - (and - (= top.res.abs_6_a_0 (+ (+ (+ X1 X2) X3) X4)) - (__node_init_illinois_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_1_a_0) - (__node_init_excludes9_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.e9_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_5_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (let - ((X3 Int top.res.abs_2_a_1)) - (let - ((X4 Int top.res.abs_1_a_1)) - (let - ((X5 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_6_a_0))) - (= top.res.abs_6_a_1 (+ (+ (+ X5 X4) X3) X2)) - (__node_trans_illinois_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_1_a_1 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes9_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.e9 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int top.res.abs_0)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Bool top.res.abs_5)) - (and - (= top.res.abs_6 (+ (+ (+ X1 X2) X3) X4)) - (__node_init_illinois_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_invalid - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_4 top.res.abs_5 top.res.inst_1) - (__node_init_excludes9_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.e9! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Bool top.res.abs_5!)) - (let - ((X2 Int top.res.abs_3!)) - (let - ((X3 Int top.res.abs_2!)) - (let - ((X4 Int top.res.abs_1!)) - (let - ((X5 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_6))) - (= top.res.abs_6! (+ (+ (+ X5 X4) X3) X2)) - (__node_trans_illinois_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.usr.init_invalid! - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_4! - top.res.abs_5! - top.res.inst_1! - top.res.abs_4 - top.res.abs_5 - top.res.inst_1) - (__node_trans_excludes9_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))))) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes9_0 ((excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) excludes9.usr.X3_a_0) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) excludes9.usr.X4_a_0) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) excludes9.usr.X5_a_0) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) excludes9.usr.X6_a_0) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) excludes9.usr.X7_a_0) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) excludes9.usr.X8_a_0) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) excludes9.usr.X9_a_0))) excludes9.res.init_flag_a_0)) +(define-fun __node_trans_excludes9_0 ((excludes9.usr.X1_a_1 Bool) (excludes9.usr.X2_a_1 Bool) (excludes9.usr.X3_a_1 Bool) (excludes9.usr.X4_a_1 Bool) (excludes9.usr.X5_a_1 Bool) (excludes9.usr.X6_a_1 Bool) (excludes9.usr.X7_a_1 Bool) (excludes9.usr.X8_a_1 Bool) (excludes9.usr.X9_a_1 Bool) (excludes9.usr.excludes_a_1 Bool) (excludes9.res.init_flag_a_1 Bool) (excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) excludes9.usr.X3_a_1) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) excludes9.usr.X4_a_1) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) excludes9.usr.X5_a_1) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) excludes9.usr.X6_a_1) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) excludes9.usr.X7_a_1) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) excludes9.usr.X8_a_1) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) excludes9.usr.X9_a_1))) (not excludes9.res.init_flag_a_1))) +(define-fun __node_init_illinois_0 ((illinois.usr.e1_a_0 Bool) (illinois.usr.e2_a_0 Bool) (illinois.usr.e3_a_0 Bool) (illinois.usr.e4_a_0 Bool) (illinois.usr.e5_a_0 Bool) (illinois.usr.e6_a_0 Bool) (illinois.usr.e7_a_0 Bool) (illinois.usr.e8_a_0 Bool) (illinois.usr.e9_a_0 Bool) (illinois.usr.init_invalid_a_0 Int) (illinois.res.nondet_14 Int) (illinois.res.nondet_13 Int) (illinois.res.nondet_12 Int) (illinois.res.nondet_11 Int) (illinois.res.nondet_10 Int) (illinois.res.nondet_9 Int) (illinois.res.nondet_8 Int) (illinois.res.nondet_7 Int) (illinois.res.nondet_6 Int) (illinois.res.nondet_5 Int) (illinois.res.nondet_4 Int) (illinois.res.nondet_3 Int) (illinois.res.nondet_2 Int) (illinois.res.nondet_1 Int) (illinois.res.nondet_0 Int) (illinois.usr.invalid_a_0 Int) (illinois.usr.dirty_a_0 Int) (illinois.usr.exclusive_a_0 Int) (illinois.usr.shared_a_0 Int) (illinois.res.init_flag_a_0 Bool)) Bool + (and (= illinois.usr.invalid_a_0 (ite (> illinois.usr.init_invalid_a_0 0) illinois.usr.init_invalid_a_0 (- 1 illinois.usr.init_invalid_a_0))) (= illinois.usr.dirty_a_0 0) (let ((X1 (let ((X1 illinois.res.nondet_5) (X2 illinois.res.nondet_4)) (and (>= X2 1) (>= X1 1))))) (let ((X2 (let ((X2 illinois.res.nondet_9)) (>= X2 1)))) (and (= illinois.usr.exclusive_a_0 0) (let ((X3 (let ((X3 illinois.res.nondet_3) (X4 illinois.res.nondet_2) (X5 illinois.res.nondet_1) (X6 illinois.res.nondet_0)) (and (and (and (>= X6 1) (= X5 0)) (= X4 0)) (= X3 0))))) (and (= illinois.usr.shared_a_0 0) (let ((X4 (let ((X4 illinois.res.nondet_8) (X5 illinois.res.nondet_7) (X6 illinois.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (let ((X5 (let ((X5 illinois.res.nondet_10)) (>= X5 1)))) (let ((X6 (let ((X6 illinois.res.nondet_11)) (>= X6 1)))) (let ((X7 (let ((X7 illinois.res.nondet_13)) (>= X7 1)))) (let ((X8 (let ((X8 illinois.res.nondet_14)) (>= X8 1)))) (let ((X9 (let ((X9 illinois.res.nondet_12)) (>= X9 1)))) illinois.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_illinois_0 ((illinois.usr.e1_a_1 Bool) (illinois.usr.e2_a_1 Bool) (illinois.usr.e3_a_1 Bool) (illinois.usr.e4_a_1 Bool) (illinois.usr.e5_a_1 Bool) (illinois.usr.e6_a_1 Bool) (illinois.usr.e7_a_1 Bool) (illinois.usr.e8_a_1 Bool) (illinois.usr.e9_a_1 Bool) (illinois.usr.init_invalid_a_1 Int) (illinois.res.nondet_14 Int) (illinois.res.nondet_13 Int) (illinois.res.nondet_12 Int) (illinois.res.nondet_11 Int) (illinois.res.nondet_10 Int) (illinois.res.nondet_9 Int) (illinois.res.nondet_8 Int) (illinois.res.nondet_7 Int) (illinois.res.nondet_6 Int) (illinois.res.nondet_5 Int) (illinois.res.nondet_4 Int) (illinois.res.nondet_3 Int) (illinois.res.nondet_2 Int) (illinois.res.nondet_1 Int) (illinois.res.nondet_0 Int) (illinois.usr.invalid_a_1 Int) (illinois.usr.dirty_a_1 Int) (illinois.usr.exclusive_a_1 Int) (illinois.usr.shared_a_1 Int) (illinois.res.init_flag_a_1 Bool) (illinois.usr.e1_a_0 Bool) (illinois.usr.e2_a_0 Bool) (illinois.usr.e3_a_0 Bool) (illinois.usr.e4_a_0 Bool) (illinois.usr.e5_a_0 Bool) (illinois.usr.e6_a_0 Bool) (illinois.usr.e7_a_0 Bool) (illinois.usr.e8_a_0 Bool) (illinois.usr.e9_a_0 Bool) (illinois.usr.init_invalid_a_0 Int) (illinois.usr.invalid_a_0 Int) (illinois.usr.dirty_a_0 Int) (illinois.usr.exclusive_a_0 Int) (illinois.usr.shared_a_0 Int) (illinois.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= illinois.usr.exclusive_a_0 1))) (let ((X2 (>= illinois.usr.shared_a_0 1))) (let ((X3 (>= illinois.usr.dirty_a_0 1))) (let ((X4 (>= illinois.usr.invalid_a_0 1))) (let ((X5 (>= illinois.usr.shared_a_0 1))) (let ((X6 (and (>= illinois.usr.invalid_a_0 1) (>= (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1)))) (let ((X7 (and (>= illinois.usr.invalid_a_0 1) (>= illinois.usr.dirty_a_0 1)))) (let ((X8 (and (and (and (>= illinois.usr.invalid_a_0 1) (= illinois.usr.dirty_a_0 0)) (= illinois.usr.shared_a_0 0)) (= illinois.usr.exclusive_a_0 0)))) (and (= illinois.usr.invalid_a_1 (ite illinois.usr.e1_a_1 (ite X8 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e2_a_1 (ite X7 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e3_a_1 (ite X6 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e5_a_1 (ite X5 (- (+ illinois.usr.invalid_a_0 illinois.usr.shared_a_0) 1) illinois.usr.invalid_a_0) (ite illinois.usr.e6_a_1 (ite X4 (- (+ (+ (+ illinois.usr.invalid_a_0 illinois.usr.dirty_a_0) illinois.usr.shared_a_0) illinois.usr.exclusive_a_0) 1) illinois.usr.invalid_a_0) (ite illinois.usr.e7_a_1 (ite X3 (+ illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e8_a_1 (ite X2 (+ illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e9_a_1 (ite X1 (+ illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) illinois.usr.invalid_a_0))))))))) (let ((X9 (>= illinois.usr.exclusive_a_0 1))) (and (= illinois.usr.dirty_a_1 (ite illinois.usr.e2_a_1 (ite X7 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) (ite illinois.usr.e4_a_1 (ite X9 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) (ite illinois.usr.e5_a_1 (ite X5 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) (ite illinois.usr.e6_a_1 (ite X4 1 illinois.usr.dirty_a_0) (ite illinois.usr.e7_a_1 (ite X3 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) illinois.usr.dirty_a_0)))))) (= illinois.usr.exclusive_a_1 (ite illinois.usr.e1_a_1 (ite X8 (+ illinois.usr.exclusive_a_0 1) illinois.usr.exclusive_a_0) (ite illinois.usr.e3_a_1 (ite X6 0 illinois.usr.exclusive_a_0) (ite illinois.usr.e4_a_1 (ite X9 (- illinois.usr.exclusive_a_0 1) illinois.usr.exclusive_a_0) (ite illinois.usr.e6_a_1 (ite X4 0 illinois.usr.exclusive_a_0) (ite illinois.usr.e9_a_1 (ite X1 (- illinois.usr.exclusive_a_0 1) illinois.usr.exclusive_a_0) illinois.usr.exclusive_a_0)))))) (= illinois.usr.shared_a_1 (ite illinois.usr.e2_a_1 (ite X7 (+ illinois.usr.shared_a_0 2) illinois.usr.shared_a_0) (ite illinois.usr.e3_a_1 (ite X6 (+ (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1) illinois.usr.shared_a_0) (ite illinois.usr.e5_a_1 (ite X5 0 illinois.usr.shared_a_0) (ite illinois.usr.e6_a_1 (ite X4 0 illinois.usr.shared_a_0) (ite illinois.usr.e8_a_1 (ite X2 (- illinois.usr.shared_a_0 1) illinois.usr.shared_a_0) illinois.usr.shared_a_0)))))) (not illinois.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_5_a_0)) (and (= top.res.abs_6_a_0 (+ (+ (+ X1 X2) X3) X4)) (__node_init_illinois_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_invalid_a_0 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_1_a_0) (__node_init_excludes9_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.e9_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_5_a_1)) (let ((X2 top.res.abs_3_a_1)) (let ((X3 top.res.abs_2_a_1)) (let ((X4 top.res.abs_1_a_1)) (let ((X5 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_6_a_0))) (= top.res.abs_6_a_1 (+ (+ (+ X5 X4) X3) X2)) (__node_trans_illinois_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.usr.init_invalid_a_1 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_1_a_1 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_1_a_0) (__node_trans_excludes9_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_5)) (and (= top.res.abs_6 (+ (+ (+ X1 X2) X3) X4)) (__node_init_illinois_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_invalid top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_4 top.res.abs_5 top.res.inst_1) (__node_init_excludes9_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_4 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.e9! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_5!)) (let ((X2 top.res.abs_3!)) (let ((X3 top.res.abs_2!)) (let ((X4 top.res.abs_1!)) (let ((X5 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_6))) (= top.res.abs_6! (+ (+ (+ X5 X4) X3) X2)) (__node_trans_illinois_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.usr.init_invalid! top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_4! top.res.abs_5! top.res.inst_1! top.res.abs_4 top.res.abs_5 top.res.inst_1) (__node_trans_excludes9_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))))) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ILLINOIS_2_e1_834_e2_3395.sl b/benchmarks/LIA/Lustre/ILLINOIS_2_e1_834_e2_3395.sl index 467dff7..20d9e8a 100644 --- a/benchmarks/LIA/Lustre/ILLINOIS_2_e1_834_e2_3395.sl +++ b/benchmarks/LIA/Lustre/ILLINOIS_2_e1_834_e2_3395.sl @@ -1,1288 +1,46 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes9_0 ( - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - excludes9.usr.X3_a_0) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - excludes9.usr.X4_a_0) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - excludes9.usr.X5_a_0) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - excludes9.usr.X6_a_0) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - excludes9.usr.X7_a_0) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - excludes9.usr.X8_a_0) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - excludes9.usr.X9_a_0))) - excludes9.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes9_0 ( - (excludes9.usr.X1_a_1 Bool) - (excludes9.usr.X2_a_1 Bool) - (excludes9.usr.X3_a_1 Bool) - (excludes9.usr.X4_a_1 Bool) - (excludes9.usr.X5_a_1 Bool) - (excludes9.usr.X6_a_1 Bool) - (excludes9.usr.X7_a_1 Bool) - (excludes9.usr.X8_a_1 Bool) - (excludes9.usr.X9_a_1 Bool) - (excludes9.usr.excludes_a_1 Bool) - (excludes9.res.init_flag_a_1 Bool) - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - excludes9.usr.X3_a_1) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - excludes9.usr.X4_a_1) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - excludes9.usr.X5_a_1) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - excludes9.usr.X6_a_1) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - excludes9.usr.X7_a_1) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - excludes9.usr.X8_a_1) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - excludes9.usr.X9_a_1))) - (not excludes9.res.init_flag_a_1)) -) - -(define-fun - __node_init_illinois_0 ( - (illinois.usr.e1_a_0 Bool) - (illinois.usr.e2_a_0 Bool) - (illinois.usr.e3_a_0 Bool) - (illinois.usr.e4_a_0 Bool) - (illinois.usr.e5_a_0 Bool) - (illinois.usr.e6_a_0 Bool) - (illinois.usr.e7_a_0 Bool) - (illinois.usr.e8_a_0 Bool) - (illinois.usr.e9_a_0 Bool) - (illinois.usr.init_invalid_a_0 Int) - (illinois.res.nondet_14 Int) - (illinois.res.nondet_13 Int) - (illinois.res.nondet_12 Int) - (illinois.res.nondet_11 Int) - (illinois.res.nondet_10 Int) - (illinois.res.nondet_9 Int) - (illinois.res.nondet_8 Int) - (illinois.res.nondet_7 Int) - (illinois.res.nondet_6 Int) - (illinois.res.nondet_5 Int) - (illinois.res.nondet_4 Int) - (illinois.res.nondet_3 Int) - (illinois.res.nondet_2 Int) - (illinois.res.nondet_1 Int) - (illinois.res.nondet_0 Int) - (illinois.usr.invalid_a_0 Int) - (illinois.usr.dirty_a_0 Int) - (illinois.usr.exclusive_a_0 Int) - (illinois.usr.shared_a_0 Int) - (illinois.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - illinois.usr.invalid_a_0 - (ite - (> illinois.usr.init_invalid_a_0 0) - illinois.usr.init_invalid_a_0 - (- 1 illinois.usr.init_invalid_a_0))) - (= illinois.usr.dirty_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int illinois.res.nondet_5) (X2 Int illinois.res.nondet_4)) - (and (>= X2 1) (>= X1 1))))) - (let - ((X2 Bool (let ((X2 Int illinois.res.nondet_9)) (>= X2 1)))) - (and - (= illinois.usr.exclusive_a_0 0) - (let - ((X3 - Bool (let - ((X3 Int illinois.res.nondet_3) - (X4 Int illinois.res.nondet_2) - (X5 Int illinois.res.nondet_1) - (X6 Int illinois.res.nondet_0)) - (and (and (and (>= X6 1) (= X5 0)) (= X4 0)) (= X3 0))))) - (and - (= illinois.usr.shared_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int illinois.res.nondet_8) - (X5 Int illinois.res.nondet_7) - (X6 Int illinois.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (let - ((X5 Bool (let ((X5 Int illinois.res.nondet_10)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int illinois.res.nondet_11)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int illinois.res.nondet_13)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int illinois.res.nondet_14)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int illinois.res.nondet_12)) (>= X9 1)))) - illinois.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_illinois_0 ( - (illinois.usr.e1_a_1 Bool) - (illinois.usr.e2_a_1 Bool) - (illinois.usr.e3_a_1 Bool) - (illinois.usr.e4_a_1 Bool) - (illinois.usr.e5_a_1 Bool) - (illinois.usr.e6_a_1 Bool) - (illinois.usr.e7_a_1 Bool) - (illinois.usr.e8_a_1 Bool) - (illinois.usr.e9_a_1 Bool) - (illinois.usr.init_invalid_a_1 Int) - (illinois.res.nondet_14 Int) - (illinois.res.nondet_13 Int) - (illinois.res.nondet_12 Int) - (illinois.res.nondet_11 Int) - (illinois.res.nondet_10 Int) - (illinois.res.nondet_9 Int) - (illinois.res.nondet_8 Int) - (illinois.res.nondet_7 Int) - (illinois.res.nondet_6 Int) - (illinois.res.nondet_5 Int) - (illinois.res.nondet_4 Int) - (illinois.res.nondet_3 Int) - (illinois.res.nondet_2 Int) - (illinois.res.nondet_1 Int) - (illinois.res.nondet_0 Int) - (illinois.usr.invalid_a_1 Int) - (illinois.usr.dirty_a_1 Int) - (illinois.usr.exclusive_a_1 Int) - (illinois.usr.shared_a_1 Int) - (illinois.res.init_flag_a_1 Bool) - (illinois.usr.e1_a_0 Bool) - (illinois.usr.e2_a_0 Bool) - (illinois.usr.e3_a_0 Bool) - (illinois.usr.e4_a_0 Bool) - (illinois.usr.e5_a_0 Bool) - (illinois.usr.e6_a_0 Bool) - (illinois.usr.e7_a_0 Bool) - (illinois.usr.e8_a_0 Bool) - (illinois.usr.e9_a_0 Bool) - (illinois.usr.init_invalid_a_0 Int) - (illinois.usr.invalid_a_0 Int) - (illinois.usr.dirty_a_0 Int) - (illinois.usr.exclusive_a_0 Int) - (illinois.usr.shared_a_0 Int) - (illinois.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= illinois.usr.exclusive_a_0 1))) - (let - ((X2 Bool (>= illinois.usr.shared_a_0 1))) - (let - ((X3 Bool (>= illinois.usr.dirty_a_0 1))) - (let - ((X4 Bool (>= illinois.usr.invalid_a_0 1))) - (let - ((X5 Bool (>= illinois.usr.shared_a_0 1))) - (let - ((X6 - Bool (and - (>= illinois.usr.invalid_a_0 1) - (>= (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1)))) - (let - ((X7 - Bool (and - (>= illinois.usr.invalid_a_0 1) - (>= illinois.usr.dirty_a_0 1)))) - (let - ((X8 - Bool (and - (and - (and - (>= illinois.usr.invalid_a_0 1) - (= illinois.usr.dirty_a_0 0)) - (= illinois.usr.shared_a_0 0)) - (= illinois.usr.exclusive_a_0 0)))) - (and - (= - illinois.usr.invalid_a_1 - (ite - illinois.usr.e1_a_1 - (ite X8 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) - (ite - illinois.usr.e2_a_1 - (ite X7 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) - (ite - illinois.usr.e3_a_1 - (ite X6 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) - (ite - illinois.usr.e5_a_1 - (ite - X5 - (- (+ illinois.usr.invalid_a_0 illinois.usr.shared_a_0) 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e6_a_1 - (ite - X4 - (- - (+ - (+ - (+ illinois.usr.invalid_a_0 illinois.usr.dirty_a_0) - illinois.usr.shared_a_0) - illinois.usr.exclusive_a_0) - 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e7_a_1 - (ite - X3 - (+ illinois.usr.invalid_a_0 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e8_a_1 - (ite - X2 - (+ illinois.usr.invalid_a_0 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e9_a_1 - (ite - X1 - (+ illinois.usr.invalid_a_0 1) - illinois.usr.invalid_a_0) - illinois.usr.invalid_a_0))))))))) - (let - ((X9 Bool (>= illinois.usr.exclusive_a_0 1))) - (and - (= - illinois.usr.dirty_a_1 - (ite - illinois.usr.e2_a_1 - (ite X7 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - (ite - illinois.usr.e4_a_1 - (ite X9 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - (ite - illinois.usr.e5_a_1 - (ite X5 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - (ite - illinois.usr.e6_a_1 - (ite X4 1 illinois.usr.dirty_a_0) - (ite - illinois.usr.e7_a_1 - (ite X3 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - illinois.usr.dirty_a_0)))))) - (= - illinois.usr.exclusive_a_1 - (ite - illinois.usr.e1_a_1 - (ite - X8 - (+ illinois.usr.exclusive_a_0 1) - illinois.usr.exclusive_a_0) - (ite - illinois.usr.e3_a_1 - (ite X6 0 illinois.usr.exclusive_a_0) - (ite - illinois.usr.e4_a_1 - (ite - X9 - (- illinois.usr.exclusive_a_0 1) - illinois.usr.exclusive_a_0) - (ite - illinois.usr.e6_a_1 - (ite X4 0 illinois.usr.exclusive_a_0) - (ite - illinois.usr.e9_a_1 - (ite - X1 - (- illinois.usr.exclusive_a_0 1) - illinois.usr.exclusive_a_0) - illinois.usr.exclusive_a_0)))))) - (= - illinois.usr.shared_a_1 - (ite - illinois.usr.e2_a_1 - (ite X7 (+ illinois.usr.shared_a_0 2) illinois.usr.shared_a_0) - (ite - illinois.usr.e3_a_1 - (ite - X6 - (+ (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1) - illinois.usr.shared_a_0) - (ite - illinois.usr.e5_a_1 - (ite X5 0 illinois.usr.shared_a_0) - (ite - illinois.usr.e6_a_1 - (ite X4 0 illinois.usr.shared_a_0) - (ite - illinois.usr.e8_a_1 - (ite X2 (- illinois.usr.shared_a_0 1) illinois.usr.shared_a_0) - illinois.usr.shared_a_0)))))) - (not illinois.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Bool top.res.abs_5_a_0)) - (and - (= top.res.abs_6_a_0 (+ (+ (+ X1 X2) X3) X4)) - (__node_init_illinois_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_1_a_0) - (__node_init_excludes9_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.e9_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_5_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (let - ((X3 Int top.res.abs_2_a_1)) - (let - ((X4 Int top.res.abs_1_a_1)) - (let - ((X5 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (= (+ (+ (- (+ (+ X5 1) X4) 1) X3) X2) top.res.abs_6_a_0))) - (= top.res.abs_6_a_1 (+ (+ (+ X5 X4) X3) X2)) - (__node_trans_illinois_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_1_a_1 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes9_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.e9 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int top.res.abs_0)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Bool top.res.abs_5)) - (and - (= top.res.abs_6 (+ (+ (+ X1 X2) X3) X4)) - (__node_init_illinois_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_invalid - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_4 top.res.abs_5 top.res.inst_1) - (__node_init_excludes9_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.e9! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Bool top.res.abs_5!)) - (let - ((X2 Int top.res.abs_3!)) - (let - ((X3 Int top.res.abs_2!)) - (let - ((X4 Int top.res.abs_1!)) - (let - ((X5 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> X1 (= (+ (+ (- (+ (+ X5 1) X4) 1) X3) X2) top.res.abs_6))) - (= top.res.abs_6! (+ (+ (+ X5 X4) X3) X2)) - (__node_trans_illinois_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.usr.init_invalid! - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_4! - top.res.abs_5! - top.res.inst_1! - top.res.abs_4 - top.res.abs_5 - top.res.inst_1) - (__node_trans_excludes9_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))))) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes9_0 ((excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) excludes9.usr.X3_a_0) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) excludes9.usr.X4_a_0) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) excludes9.usr.X5_a_0) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) excludes9.usr.X6_a_0) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) excludes9.usr.X7_a_0) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) excludes9.usr.X8_a_0) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) excludes9.usr.X9_a_0))) excludes9.res.init_flag_a_0)) +(define-fun __node_trans_excludes9_0 ((excludes9.usr.X1_a_1 Bool) (excludes9.usr.X2_a_1 Bool) (excludes9.usr.X3_a_1 Bool) (excludes9.usr.X4_a_1 Bool) (excludes9.usr.X5_a_1 Bool) (excludes9.usr.X6_a_1 Bool) (excludes9.usr.X7_a_1 Bool) (excludes9.usr.X8_a_1 Bool) (excludes9.usr.X9_a_1 Bool) (excludes9.usr.excludes_a_1 Bool) (excludes9.res.init_flag_a_1 Bool) (excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) excludes9.usr.X3_a_1) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) excludes9.usr.X4_a_1) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) excludes9.usr.X5_a_1) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) excludes9.usr.X6_a_1) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) excludes9.usr.X7_a_1) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) excludes9.usr.X8_a_1) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) excludes9.usr.X9_a_1))) (not excludes9.res.init_flag_a_1))) +(define-fun __node_init_illinois_0 ((illinois.usr.e1_a_0 Bool) (illinois.usr.e2_a_0 Bool) (illinois.usr.e3_a_0 Bool) (illinois.usr.e4_a_0 Bool) (illinois.usr.e5_a_0 Bool) (illinois.usr.e6_a_0 Bool) (illinois.usr.e7_a_0 Bool) (illinois.usr.e8_a_0 Bool) (illinois.usr.e9_a_0 Bool) (illinois.usr.init_invalid_a_0 Int) (illinois.res.nondet_14 Int) (illinois.res.nondet_13 Int) (illinois.res.nondet_12 Int) (illinois.res.nondet_11 Int) (illinois.res.nondet_10 Int) (illinois.res.nondet_9 Int) (illinois.res.nondet_8 Int) (illinois.res.nondet_7 Int) (illinois.res.nondet_6 Int) (illinois.res.nondet_5 Int) (illinois.res.nondet_4 Int) (illinois.res.nondet_3 Int) (illinois.res.nondet_2 Int) (illinois.res.nondet_1 Int) (illinois.res.nondet_0 Int) (illinois.usr.invalid_a_0 Int) (illinois.usr.dirty_a_0 Int) (illinois.usr.exclusive_a_0 Int) (illinois.usr.shared_a_0 Int) (illinois.res.init_flag_a_0 Bool)) Bool + (and (= illinois.usr.invalid_a_0 (ite (> illinois.usr.init_invalid_a_0 0) illinois.usr.init_invalid_a_0 (- 1 illinois.usr.init_invalid_a_0))) (= illinois.usr.dirty_a_0 0) (let ((X1 (let ((X1 illinois.res.nondet_5) (X2 illinois.res.nondet_4)) (and (>= X2 1) (>= X1 1))))) (let ((X2 (let ((X2 illinois.res.nondet_9)) (>= X2 1)))) (and (= illinois.usr.exclusive_a_0 0) (let ((X3 (let ((X3 illinois.res.nondet_3) (X4 illinois.res.nondet_2) (X5 illinois.res.nondet_1) (X6 illinois.res.nondet_0)) (and (and (and (>= X6 1) (= X5 0)) (= X4 0)) (= X3 0))))) (and (= illinois.usr.shared_a_0 0) (let ((X4 (let ((X4 illinois.res.nondet_8) (X5 illinois.res.nondet_7) (X6 illinois.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (let ((X5 (let ((X5 illinois.res.nondet_10)) (>= X5 1)))) (let ((X6 (let ((X6 illinois.res.nondet_11)) (>= X6 1)))) (let ((X7 (let ((X7 illinois.res.nondet_13)) (>= X7 1)))) (let ((X8 (let ((X8 illinois.res.nondet_14)) (>= X8 1)))) (let ((X9 (let ((X9 illinois.res.nondet_12)) (>= X9 1)))) illinois.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_illinois_0 ((illinois.usr.e1_a_1 Bool) (illinois.usr.e2_a_1 Bool) (illinois.usr.e3_a_1 Bool) (illinois.usr.e4_a_1 Bool) (illinois.usr.e5_a_1 Bool) (illinois.usr.e6_a_1 Bool) (illinois.usr.e7_a_1 Bool) (illinois.usr.e8_a_1 Bool) (illinois.usr.e9_a_1 Bool) (illinois.usr.init_invalid_a_1 Int) (illinois.res.nondet_14 Int) (illinois.res.nondet_13 Int) (illinois.res.nondet_12 Int) (illinois.res.nondet_11 Int) (illinois.res.nondet_10 Int) (illinois.res.nondet_9 Int) (illinois.res.nondet_8 Int) (illinois.res.nondet_7 Int) (illinois.res.nondet_6 Int) (illinois.res.nondet_5 Int) (illinois.res.nondet_4 Int) (illinois.res.nondet_3 Int) (illinois.res.nondet_2 Int) (illinois.res.nondet_1 Int) (illinois.res.nondet_0 Int) (illinois.usr.invalid_a_1 Int) (illinois.usr.dirty_a_1 Int) (illinois.usr.exclusive_a_1 Int) (illinois.usr.shared_a_1 Int) (illinois.res.init_flag_a_1 Bool) (illinois.usr.e1_a_0 Bool) (illinois.usr.e2_a_0 Bool) (illinois.usr.e3_a_0 Bool) (illinois.usr.e4_a_0 Bool) (illinois.usr.e5_a_0 Bool) (illinois.usr.e6_a_0 Bool) (illinois.usr.e7_a_0 Bool) (illinois.usr.e8_a_0 Bool) (illinois.usr.e9_a_0 Bool) (illinois.usr.init_invalid_a_0 Int) (illinois.usr.invalid_a_0 Int) (illinois.usr.dirty_a_0 Int) (illinois.usr.exclusive_a_0 Int) (illinois.usr.shared_a_0 Int) (illinois.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= illinois.usr.exclusive_a_0 1))) (let ((X2 (>= illinois.usr.shared_a_0 1))) (let ((X3 (>= illinois.usr.dirty_a_0 1))) (let ((X4 (>= illinois.usr.invalid_a_0 1))) (let ((X5 (>= illinois.usr.shared_a_0 1))) (let ((X6 (and (>= illinois.usr.invalid_a_0 1) (>= (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1)))) (let ((X7 (and (>= illinois.usr.invalid_a_0 1) (>= illinois.usr.dirty_a_0 1)))) (let ((X8 (and (and (and (>= illinois.usr.invalid_a_0 1) (= illinois.usr.dirty_a_0 0)) (= illinois.usr.shared_a_0 0)) (= illinois.usr.exclusive_a_0 0)))) (and (= illinois.usr.invalid_a_1 (ite illinois.usr.e1_a_1 (ite X8 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e2_a_1 (ite X7 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e3_a_1 (ite X6 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e5_a_1 (ite X5 (- (+ illinois.usr.invalid_a_0 illinois.usr.shared_a_0) 1) illinois.usr.invalid_a_0) (ite illinois.usr.e6_a_1 (ite X4 (- (+ (+ (+ illinois.usr.invalid_a_0 illinois.usr.dirty_a_0) illinois.usr.shared_a_0) illinois.usr.exclusive_a_0) 1) illinois.usr.invalid_a_0) (ite illinois.usr.e7_a_1 (ite X3 (+ illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e8_a_1 (ite X2 (+ illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e9_a_1 (ite X1 (+ illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) illinois.usr.invalid_a_0))))))))) (let ((X9 (>= illinois.usr.exclusive_a_0 1))) (and (= illinois.usr.dirty_a_1 (ite illinois.usr.e2_a_1 (ite X7 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) (ite illinois.usr.e4_a_1 (ite X9 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) (ite illinois.usr.e5_a_1 (ite X5 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) (ite illinois.usr.e6_a_1 (ite X4 1 illinois.usr.dirty_a_0) (ite illinois.usr.e7_a_1 (ite X3 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) illinois.usr.dirty_a_0)))))) (= illinois.usr.exclusive_a_1 (ite illinois.usr.e1_a_1 (ite X8 (+ illinois.usr.exclusive_a_0 1) illinois.usr.exclusive_a_0) (ite illinois.usr.e3_a_1 (ite X6 0 illinois.usr.exclusive_a_0) (ite illinois.usr.e4_a_1 (ite X9 (- illinois.usr.exclusive_a_0 1) illinois.usr.exclusive_a_0) (ite illinois.usr.e6_a_1 (ite X4 0 illinois.usr.exclusive_a_0) (ite illinois.usr.e9_a_1 (ite X1 (- illinois.usr.exclusive_a_0 1) illinois.usr.exclusive_a_0) illinois.usr.exclusive_a_0)))))) (= illinois.usr.shared_a_1 (ite illinois.usr.e2_a_1 (ite X7 (+ illinois.usr.shared_a_0 2) illinois.usr.shared_a_0) (ite illinois.usr.e3_a_1 (ite X6 (+ (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1) illinois.usr.shared_a_0) (ite illinois.usr.e5_a_1 (ite X5 0 illinois.usr.shared_a_0) (ite illinois.usr.e6_a_1 (ite X4 0 illinois.usr.shared_a_0) (ite illinois.usr.e8_a_1 (ite X2 (- illinois.usr.shared_a_0 1) illinois.usr.shared_a_0) illinois.usr.shared_a_0)))))) (not illinois.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_5_a_0)) (and (= top.res.abs_6_a_0 (+ (+ (+ X1 X2) X3) X4)) (__node_init_illinois_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_invalid_a_0 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_1_a_0) (__node_init_excludes9_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.e9_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_5_a_1)) (let ((X2 top.res.abs_3_a_1)) (let ((X3 top.res.abs_2_a_1)) (let ((X4 top.res.abs_1_a_1)) (let ((X5 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (- (+ (+ X5 1) X4) 1) X3) X2) top.res.abs_6_a_0))) (= top.res.abs_6_a_1 (+ (+ (+ X5 X4) X3) X2)) (__node_trans_illinois_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.usr.init_invalid_a_1 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_1_a_1 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_1_a_0) (__node_trans_excludes9_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_5)) (and (= top.res.abs_6 (+ (+ (+ X1 X2) X3) X4)) (__node_init_illinois_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_invalid top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_4 top.res.abs_5 top.res.inst_1) (__node_init_excludes9_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_4 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.e9! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_5!)) (let ((X2 top.res.abs_3!)) (let ((X3 top.res.abs_2!)) (let ((X4 top.res.abs_1!)) (let ((X5 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (- (+ (+ X5 1) X4) 1) X3) X2) top.res.abs_6))) (= top.res.abs_6! (+ (+ (+ X5 X4) X3) X2)) (__node_trans_illinois_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.usr.init_invalid! top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_4! top.res.abs_5! top.res.inst_1! top.res.abs_4 top.res.abs_5 top.res.inst_1) (__node_trans_excludes9_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))))) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ILLINOIS_2_e2_2367_e1_3182.sl b/benchmarks/LIA/Lustre/ILLINOIS_2_e2_2367_e1_3182.sl index fe0223e..f6826eb 100644 --- a/benchmarks/LIA/Lustre/ILLINOIS_2_e2_2367_e1_3182.sl +++ b/benchmarks/LIA/Lustre/ILLINOIS_2_e2_2367_e1_3182.sl @@ -1,1288 +1,46 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes9_0 ( - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - excludes9.usr.X3_a_0) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - excludes9.usr.X4_a_0) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - excludes9.usr.X5_a_0) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - excludes9.usr.X6_a_0) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - excludes9.usr.X7_a_0) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - excludes9.usr.X8_a_0) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - excludes9.usr.X9_a_0))) - excludes9.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes9_0 ( - (excludes9.usr.X1_a_1 Bool) - (excludes9.usr.X2_a_1 Bool) - (excludes9.usr.X3_a_1 Bool) - (excludes9.usr.X4_a_1 Bool) - (excludes9.usr.X5_a_1 Bool) - (excludes9.usr.X6_a_1 Bool) - (excludes9.usr.X7_a_1 Bool) - (excludes9.usr.X8_a_1 Bool) - (excludes9.usr.X9_a_1 Bool) - (excludes9.usr.excludes_a_1 Bool) - (excludes9.res.init_flag_a_1 Bool) - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - excludes9.usr.X3_a_1) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - excludes9.usr.X4_a_1) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - excludes9.usr.X5_a_1) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - excludes9.usr.X6_a_1) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - excludes9.usr.X7_a_1) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - excludes9.usr.X8_a_1) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - excludes9.usr.X9_a_1))) - (not excludes9.res.init_flag_a_1)) -) - -(define-fun - __node_init_illinois_0 ( - (illinois.usr.e1_a_0 Bool) - (illinois.usr.e2_a_0 Bool) - (illinois.usr.e3_a_0 Bool) - (illinois.usr.e4_a_0 Bool) - (illinois.usr.e5_a_0 Bool) - (illinois.usr.e6_a_0 Bool) - (illinois.usr.e7_a_0 Bool) - (illinois.usr.e8_a_0 Bool) - (illinois.usr.e9_a_0 Bool) - (illinois.usr.init_invalid_a_0 Int) - (illinois.res.nondet_14 Int) - (illinois.res.nondet_13 Int) - (illinois.res.nondet_12 Int) - (illinois.res.nondet_11 Int) - (illinois.res.nondet_10 Int) - (illinois.res.nondet_9 Int) - (illinois.res.nondet_8 Int) - (illinois.res.nondet_7 Int) - (illinois.res.nondet_6 Int) - (illinois.res.nondet_5 Int) - (illinois.res.nondet_4 Int) - (illinois.res.nondet_3 Int) - (illinois.res.nondet_2 Int) - (illinois.res.nondet_1 Int) - (illinois.res.nondet_0 Int) - (illinois.usr.invalid_a_0 Int) - (illinois.usr.dirty_a_0 Int) - (illinois.usr.exclusive_a_0 Int) - (illinois.usr.shared_a_0 Int) - (illinois.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - illinois.usr.invalid_a_0 - (ite - (> illinois.usr.init_invalid_a_0 0) - illinois.usr.init_invalid_a_0 - (- 1 illinois.usr.init_invalid_a_0))) - (= illinois.usr.dirty_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int illinois.res.nondet_5) (X2 Int illinois.res.nondet_4)) - (and (>= X2 1) (>= X1 1))))) - (let - ((X2 Bool (let ((X2 Int illinois.res.nondet_9)) (>= X2 1)))) - (and - (= illinois.usr.exclusive_a_0 0) - (let - ((X3 - Bool (let - ((X3 Int illinois.res.nondet_3) - (X4 Int illinois.res.nondet_2) - (X5 Int illinois.res.nondet_1) - (X6 Int illinois.res.nondet_0)) - (and (and (and (>= X6 1) (= X5 0)) (= X4 0)) (= X3 0))))) - (and - (= illinois.usr.shared_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int illinois.res.nondet_8) - (X5 Int illinois.res.nondet_7) - (X6 Int illinois.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (let - ((X5 Bool (let ((X5 Int illinois.res.nondet_10)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int illinois.res.nondet_11)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int illinois.res.nondet_13)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int illinois.res.nondet_14)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int illinois.res.nondet_12)) (>= X9 1)))) - illinois.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_illinois_0 ( - (illinois.usr.e1_a_1 Bool) - (illinois.usr.e2_a_1 Bool) - (illinois.usr.e3_a_1 Bool) - (illinois.usr.e4_a_1 Bool) - (illinois.usr.e5_a_1 Bool) - (illinois.usr.e6_a_1 Bool) - (illinois.usr.e7_a_1 Bool) - (illinois.usr.e8_a_1 Bool) - (illinois.usr.e9_a_1 Bool) - (illinois.usr.init_invalid_a_1 Int) - (illinois.res.nondet_14 Int) - (illinois.res.nondet_13 Int) - (illinois.res.nondet_12 Int) - (illinois.res.nondet_11 Int) - (illinois.res.nondet_10 Int) - (illinois.res.nondet_9 Int) - (illinois.res.nondet_8 Int) - (illinois.res.nondet_7 Int) - (illinois.res.nondet_6 Int) - (illinois.res.nondet_5 Int) - (illinois.res.nondet_4 Int) - (illinois.res.nondet_3 Int) - (illinois.res.nondet_2 Int) - (illinois.res.nondet_1 Int) - (illinois.res.nondet_0 Int) - (illinois.usr.invalid_a_1 Int) - (illinois.usr.dirty_a_1 Int) - (illinois.usr.exclusive_a_1 Int) - (illinois.usr.shared_a_1 Int) - (illinois.res.init_flag_a_1 Bool) - (illinois.usr.e1_a_0 Bool) - (illinois.usr.e2_a_0 Bool) - (illinois.usr.e3_a_0 Bool) - (illinois.usr.e4_a_0 Bool) - (illinois.usr.e5_a_0 Bool) - (illinois.usr.e6_a_0 Bool) - (illinois.usr.e7_a_0 Bool) - (illinois.usr.e8_a_0 Bool) - (illinois.usr.e9_a_0 Bool) - (illinois.usr.init_invalid_a_0 Int) - (illinois.usr.invalid_a_0 Int) - (illinois.usr.dirty_a_0 Int) - (illinois.usr.exclusive_a_0 Int) - (illinois.usr.shared_a_0 Int) - (illinois.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= illinois.usr.exclusive_a_0 1))) - (let - ((X2 Bool (>= illinois.usr.shared_a_0 1))) - (let - ((X3 Bool (>= illinois.usr.dirty_a_0 1))) - (let - ((X4 Bool (>= illinois.usr.invalid_a_0 1))) - (let - ((X5 Bool (>= illinois.usr.shared_a_0 1))) - (let - ((X6 - Bool (and - (>= illinois.usr.invalid_a_0 1) - (>= (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1)))) - (let - ((X7 - Bool (and - (>= illinois.usr.invalid_a_0 1) - (>= illinois.usr.dirty_a_0 1)))) - (let - ((X8 - Bool (and - (and - (and - (>= illinois.usr.invalid_a_0 1) - (= illinois.usr.dirty_a_0 0)) - (= illinois.usr.shared_a_0 0)) - (= illinois.usr.exclusive_a_0 0)))) - (and - (= - illinois.usr.invalid_a_1 - (ite - illinois.usr.e1_a_1 - (ite X8 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) - (ite - illinois.usr.e2_a_1 - (ite X7 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) - (ite - illinois.usr.e3_a_1 - (ite X6 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) - (ite - illinois.usr.e5_a_1 - (ite - X5 - (- (+ illinois.usr.invalid_a_0 illinois.usr.shared_a_0) 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e6_a_1 - (ite - X4 - (- - (+ - (+ - (+ illinois.usr.invalid_a_0 illinois.usr.dirty_a_0) - illinois.usr.shared_a_0) - illinois.usr.exclusive_a_0) - 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e7_a_1 - (ite - X3 - (+ illinois.usr.invalid_a_0 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e8_a_1 - (ite - X2 - (+ illinois.usr.invalid_a_0 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e9_a_1 - (ite - X1 - (+ illinois.usr.invalid_a_0 1) - illinois.usr.invalid_a_0) - illinois.usr.invalid_a_0))))))))) - (let - ((X9 Bool (>= illinois.usr.exclusive_a_0 1))) - (and - (= - illinois.usr.dirty_a_1 - (ite - illinois.usr.e2_a_1 - (ite X7 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - (ite - illinois.usr.e4_a_1 - (ite X9 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - (ite - illinois.usr.e5_a_1 - (ite X5 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - (ite - illinois.usr.e6_a_1 - (ite X4 1 illinois.usr.dirty_a_0) - (ite - illinois.usr.e7_a_1 - (ite X3 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - illinois.usr.dirty_a_0)))))) - (= - illinois.usr.exclusive_a_1 - (ite - illinois.usr.e1_a_1 - (ite - X8 - (+ illinois.usr.exclusive_a_0 1) - illinois.usr.exclusive_a_0) - (ite - illinois.usr.e3_a_1 - (ite X6 0 illinois.usr.exclusive_a_0) - (ite - illinois.usr.e4_a_1 - (ite - X9 - (- illinois.usr.exclusive_a_0 1) - illinois.usr.exclusive_a_0) - (ite - illinois.usr.e6_a_1 - (ite X4 0 illinois.usr.exclusive_a_0) - (ite - illinois.usr.e9_a_1 - (ite - X1 - (- illinois.usr.exclusive_a_0 1) - illinois.usr.exclusive_a_0) - illinois.usr.exclusive_a_0)))))) - (= - illinois.usr.shared_a_1 - (ite - illinois.usr.e2_a_1 - (ite X7 (+ illinois.usr.shared_a_0 2) illinois.usr.shared_a_0) - (ite - illinois.usr.e3_a_1 - (ite - X6 - (+ (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1) - illinois.usr.shared_a_0) - (ite - illinois.usr.e5_a_1 - (ite X5 0 illinois.usr.shared_a_0) - (ite - illinois.usr.e6_a_1 - (ite X4 0 illinois.usr.shared_a_0) - (ite - illinois.usr.e8_a_1 - (ite X2 (- illinois.usr.shared_a_0 1) illinois.usr.shared_a_0) - illinois.usr.shared_a_0)))))) - (not illinois.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Bool top.res.abs_5_a_0)) - (and - (= top.res.abs_6_a_0 (+ (+ (+ X1 X2) X3) X4)) - (__node_init_illinois_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_1_a_0) - (__node_init_excludes9_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.e9_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_5_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (let - ((X3 Int top.res.abs_2_a_1)) - (let - ((X4 Int top.res.abs_1_a_1)) - (let - ((X5 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (= (+ (+ (+ (+ (- X5 1) X4) 1) X3) X2) top.res.abs_6_a_0))) - (= top.res.abs_6_a_1 (+ (+ (+ X5 X4) X3) X2)) - (__node_trans_illinois_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_1_a_1 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes9_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.e9 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int top.res.abs_0)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Bool top.res.abs_5)) - (and - (= top.res.abs_6 (+ (+ (+ X1 X2) X3) X4)) - (__node_init_illinois_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_invalid - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_4 top.res.abs_5 top.res.inst_1) - (__node_init_excludes9_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.e9! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Bool top.res.abs_5!)) - (let - ((X2 Int top.res.abs_3!)) - (let - ((X3 Int top.res.abs_2!)) - (let - ((X4 Int top.res.abs_1!)) - (let - ((X5 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> X1 (= (+ (+ (+ (+ (- X5 1) X4) 1) X3) X2) top.res.abs_6))) - (= top.res.abs_6! (+ (+ (+ X5 X4) X3) X2)) - (__node_trans_illinois_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.usr.init_invalid! - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_4! - top.res.abs_5! - top.res.inst_1! - top.res.abs_4 - top.res.abs_5 - top.res.inst_1) - (__node_trans_excludes9_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))))) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes9_0 ((excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) excludes9.usr.X3_a_0) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) excludes9.usr.X4_a_0) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) excludes9.usr.X5_a_0) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) excludes9.usr.X6_a_0) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) excludes9.usr.X7_a_0) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) excludes9.usr.X8_a_0) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) excludes9.usr.X9_a_0))) excludes9.res.init_flag_a_0)) +(define-fun __node_trans_excludes9_0 ((excludes9.usr.X1_a_1 Bool) (excludes9.usr.X2_a_1 Bool) (excludes9.usr.X3_a_1 Bool) (excludes9.usr.X4_a_1 Bool) (excludes9.usr.X5_a_1 Bool) (excludes9.usr.X6_a_1 Bool) (excludes9.usr.X7_a_1 Bool) (excludes9.usr.X8_a_1 Bool) (excludes9.usr.X9_a_1 Bool) (excludes9.usr.excludes_a_1 Bool) (excludes9.res.init_flag_a_1 Bool) (excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) excludes9.usr.X3_a_1) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) excludes9.usr.X4_a_1) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) excludes9.usr.X5_a_1) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) excludes9.usr.X6_a_1) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) excludes9.usr.X7_a_1) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) excludes9.usr.X8_a_1) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) excludes9.usr.X9_a_1))) (not excludes9.res.init_flag_a_1))) +(define-fun __node_init_illinois_0 ((illinois.usr.e1_a_0 Bool) (illinois.usr.e2_a_0 Bool) (illinois.usr.e3_a_0 Bool) (illinois.usr.e4_a_0 Bool) (illinois.usr.e5_a_0 Bool) (illinois.usr.e6_a_0 Bool) (illinois.usr.e7_a_0 Bool) (illinois.usr.e8_a_0 Bool) (illinois.usr.e9_a_0 Bool) (illinois.usr.init_invalid_a_0 Int) (illinois.res.nondet_14 Int) (illinois.res.nondet_13 Int) (illinois.res.nondet_12 Int) (illinois.res.nondet_11 Int) (illinois.res.nondet_10 Int) (illinois.res.nondet_9 Int) (illinois.res.nondet_8 Int) (illinois.res.nondet_7 Int) (illinois.res.nondet_6 Int) (illinois.res.nondet_5 Int) (illinois.res.nondet_4 Int) (illinois.res.nondet_3 Int) (illinois.res.nondet_2 Int) (illinois.res.nondet_1 Int) (illinois.res.nondet_0 Int) (illinois.usr.invalid_a_0 Int) (illinois.usr.dirty_a_0 Int) (illinois.usr.exclusive_a_0 Int) (illinois.usr.shared_a_0 Int) (illinois.res.init_flag_a_0 Bool)) Bool + (and (= illinois.usr.invalid_a_0 (ite (> illinois.usr.init_invalid_a_0 0) illinois.usr.init_invalid_a_0 (- 1 illinois.usr.init_invalid_a_0))) (= illinois.usr.dirty_a_0 0) (let ((X1 (let ((X1 illinois.res.nondet_5) (X2 illinois.res.nondet_4)) (and (>= X2 1) (>= X1 1))))) (let ((X2 (let ((X2 illinois.res.nondet_9)) (>= X2 1)))) (and (= illinois.usr.exclusive_a_0 0) (let ((X3 (let ((X3 illinois.res.nondet_3) (X4 illinois.res.nondet_2) (X5 illinois.res.nondet_1) (X6 illinois.res.nondet_0)) (and (and (and (>= X6 1) (= X5 0)) (= X4 0)) (= X3 0))))) (and (= illinois.usr.shared_a_0 0) (let ((X4 (let ((X4 illinois.res.nondet_8) (X5 illinois.res.nondet_7) (X6 illinois.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (let ((X5 (let ((X5 illinois.res.nondet_10)) (>= X5 1)))) (let ((X6 (let ((X6 illinois.res.nondet_11)) (>= X6 1)))) (let ((X7 (let ((X7 illinois.res.nondet_13)) (>= X7 1)))) (let ((X8 (let ((X8 illinois.res.nondet_14)) (>= X8 1)))) (let ((X9 (let ((X9 illinois.res.nondet_12)) (>= X9 1)))) illinois.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_illinois_0 ((illinois.usr.e1_a_1 Bool) (illinois.usr.e2_a_1 Bool) (illinois.usr.e3_a_1 Bool) (illinois.usr.e4_a_1 Bool) (illinois.usr.e5_a_1 Bool) (illinois.usr.e6_a_1 Bool) (illinois.usr.e7_a_1 Bool) (illinois.usr.e8_a_1 Bool) (illinois.usr.e9_a_1 Bool) (illinois.usr.init_invalid_a_1 Int) (illinois.res.nondet_14 Int) (illinois.res.nondet_13 Int) (illinois.res.nondet_12 Int) (illinois.res.nondet_11 Int) (illinois.res.nondet_10 Int) (illinois.res.nondet_9 Int) (illinois.res.nondet_8 Int) (illinois.res.nondet_7 Int) (illinois.res.nondet_6 Int) (illinois.res.nondet_5 Int) (illinois.res.nondet_4 Int) (illinois.res.nondet_3 Int) (illinois.res.nondet_2 Int) (illinois.res.nondet_1 Int) (illinois.res.nondet_0 Int) (illinois.usr.invalid_a_1 Int) (illinois.usr.dirty_a_1 Int) (illinois.usr.exclusive_a_1 Int) (illinois.usr.shared_a_1 Int) (illinois.res.init_flag_a_1 Bool) (illinois.usr.e1_a_0 Bool) (illinois.usr.e2_a_0 Bool) (illinois.usr.e3_a_0 Bool) (illinois.usr.e4_a_0 Bool) (illinois.usr.e5_a_0 Bool) (illinois.usr.e6_a_0 Bool) (illinois.usr.e7_a_0 Bool) (illinois.usr.e8_a_0 Bool) (illinois.usr.e9_a_0 Bool) (illinois.usr.init_invalid_a_0 Int) (illinois.usr.invalid_a_0 Int) (illinois.usr.dirty_a_0 Int) (illinois.usr.exclusive_a_0 Int) (illinois.usr.shared_a_0 Int) (illinois.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= illinois.usr.exclusive_a_0 1))) (let ((X2 (>= illinois.usr.shared_a_0 1))) (let ((X3 (>= illinois.usr.dirty_a_0 1))) (let ((X4 (>= illinois.usr.invalid_a_0 1))) (let ((X5 (>= illinois.usr.shared_a_0 1))) (let ((X6 (and (>= illinois.usr.invalid_a_0 1) (>= (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1)))) (let ((X7 (and (>= illinois.usr.invalid_a_0 1) (>= illinois.usr.dirty_a_0 1)))) (let ((X8 (and (and (and (>= illinois.usr.invalid_a_0 1) (= illinois.usr.dirty_a_0 0)) (= illinois.usr.shared_a_0 0)) (= illinois.usr.exclusive_a_0 0)))) (and (= illinois.usr.invalid_a_1 (ite illinois.usr.e1_a_1 (ite X8 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e2_a_1 (ite X7 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e3_a_1 (ite X6 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e5_a_1 (ite X5 (- (+ illinois.usr.invalid_a_0 illinois.usr.shared_a_0) 1) illinois.usr.invalid_a_0) (ite illinois.usr.e6_a_1 (ite X4 (- (+ (+ (+ illinois.usr.invalid_a_0 illinois.usr.dirty_a_0) illinois.usr.shared_a_0) illinois.usr.exclusive_a_0) 1) illinois.usr.invalid_a_0) (ite illinois.usr.e7_a_1 (ite X3 (+ illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e8_a_1 (ite X2 (+ illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e9_a_1 (ite X1 (+ illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) illinois.usr.invalid_a_0))))))))) (let ((X9 (>= illinois.usr.exclusive_a_0 1))) (and (= illinois.usr.dirty_a_1 (ite illinois.usr.e2_a_1 (ite X7 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) (ite illinois.usr.e4_a_1 (ite X9 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) (ite illinois.usr.e5_a_1 (ite X5 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) (ite illinois.usr.e6_a_1 (ite X4 1 illinois.usr.dirty_a_0) (ite illinois.usr.e7_a_1 (ite X3 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) illinois.usr.dirty_a_0)))))) (= illinois.usr.exclusive_a_1 (ite illinois.usr.e1_a_1 (ite X8 (+ illinois.usr.exclusive_a_0 1) illinois.usr.exclusive_a_0) (ite illinois.usr.e3_a_1 (ite X6 0 illinois.usr.exclusive_a_0) (ite illinois.usr.e4_a_1 (ite X9 (- illinois.usr.exclusive_a_0 1) illinois.usr.exclusive_a_0) (ite illinois.usr.e6_a_1 (ite X4 0 illinois.usr.exclusive_a_0) (ite illinois.usr.e9_a_1 (ite X1 (- illinois.usr.exclusive_a_0 1) illinois.usr.exclusive_a_0) illinois.usr.exclusive_a_0)))))) (= illinois.usr.shared_a_1 (ite illinois.usr.e2_a_1 (ite X7 (+ illinois.usr.shared_a_0 2) illinois.usr.shared_a_0) (ite illinois.usr.e3_a_1 (ite X6 (+ (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1) illinois.usr.shared_a_0) (ite illinois.usr.e5_a_1 (ite X5 0 illinois.usr.shared_a_0) (ite illinois.usr.e6_a_1 (ite X4 0 illinois.usr.shared_a_0) (ite illinois.usr.e8_a_1 (ite X2 (- illinois.usr.shared_a_0 1) illinois.usr.shared_a_0) illinois.usr.shared_a_0)))))) (not illinois.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_5_a_0)) (and (= top.res.abs_6_a_0 (+ (+ (+ X1 X2) X3) X4)) (__node_init_illinois_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_invalid_a_0 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_1_a_0) (__node_init_excludes9_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.e9_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_5_a_1)) (let ((X2 top.res.abs_3_a_1)) (let ((X3 top.res.abs_2_a_1)) (let ((X4 top.res.abs_1_a_1)) (let ((X5 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ (+ (- X5 1) X4) 1) X3) X2) top.res.abs_6_a_0))) (= top.res.abs_6_a_1 (+ (+ (+ X5 X4) X3) X2)) (__node_trans_illinois_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.usr.init_invalid_a_1 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_1_a_1 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_1_a_0) (__node_trans_excludes9_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_5)) (and (= top.res.abs_6 (+ (+ (+ X1 X2) X3) X4)) (__node_init_illinois_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_invalid top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_4 top.res.abs_5 top.res.inst_1) (__node_init_excludes9_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_4 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.e9! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_5!)) (let ((X2 top.res.abs_3!)) (let ((X3 top.res.abs_2!)) (let ((X4 top.res.abs_1!)) (let ((X5 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ (+ (- X5 1) X4) 1) X3) X2) top.res.abs_6))) (= top.res.abs_6! (+ (+ (+ X5 X4) X3) X2)) (__node_trans_illinois_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.usr.init_invalid! top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_4! top.res.abs_5! top.res.inst_1! top.res.abs_4 top.res.abs_5 top.res.inst_1) (__node_trans_excludes9_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))))) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ILLINOIS_3.sl b/benchmarks/LIA/Lustre/ILLINOIS_3.sl index 27a6737..148d534 100644 --- a/benchmarks/LIA/Lustre/ILLINOIS_3.sl +++ b/benchmarks/LIA/Lustre/ILLINOIS_3.sl @@ -1,1349 +1,50 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes9_0 ( - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - excludes9.usr.X3_a_0) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - excludes9.usr.X4_a_0) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - excludes9.usr.X5_a_0) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - excludes9.usr.X6_a_0) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - excludes9.usr.X7_a_0) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - excludes9.usr.X8_a_0) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - excludes9.usr.X9_a_0))) - excludes9.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes9_0 ( - (excludes9.usr.X1_a_1 Bool) - (excludes9.usr.X2_a_1 Bool) - (excludes9.usr.X3_a_1 Bool) - (excludes9.usr.X4_a_1 Bool) - (excludes9.usr.X5_a_1 Bool) - (excludes9.usr.X6_a_1 Bool) - (excludes9.usr.X7_a_1 Bool) - (excludes9.usr.X8_a_1 Bool) - (excludes9.usr.X9_a_1 Bool) - (excludes9.usr.excludes_a_1 Bool) - (excludes9.res.init_flag_a_1 Bool) - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - excludes9.usr.X3_a_1) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - excludes9.usr.X4_a_1) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - excludes9.usr.X5_a_1) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - excludes9.usr.X6_a_1) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - excludes9.usr.X7_a_1) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - excludes9.usr.X8_a_1) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - excludes9.usr.X9_a_1))) - (not excludes9.res.init_flag_a_1)) -) - -(define-fun - __node_init_illinois_0 ( - (illinois.usr.e1_a_0 Bool) - (illinois.usr.e2_a_0 Bool) - (illinois.usr.e3_a_0 Bool) - (illinois.usr.e4_a_0 Bool) - (illinois.usr.e5_a_0 Bool) - (illinois.usr.e6_a_0 Bool) - (illinois.usr.e7_a_0 Bool) - (illinois.usr.e8_a_0 Bool) - (illinois.usr.e9_a_0 Bool) - (illinois.usr.init_invalid_a_0 Int) - (illinois.res.nondet_14 Int) - (illinois.res.nondet_13 Int) - (illinois.res.nondet_12 Int) - (illinois.res.nondet_11 Int) - (illinois.res.nondet_10 Int) - (illinois.res.nondet_9 Int) - (illinois.res.nondet_8 Int) - (illinois.res.nondet_7 Int) - (illinois.res.nondet_6 Int) - (illinois.res.nondet_5 Int) - (illinois.res.nondet_4 Int) - (illinois.res.nondet_3 Int) - (illinois.res.nondet_2 Int) - (illinois.res.nondet_1 Int) - (illinois.res.nondet_0 Int) - (illinois.usr.invalid_a_0 Int) - (illinois.usr.dirty_a_0 Int) - (illinois.usr.exclusive_a_0 Int) - (illinois.usr.shared_a_0 Int) - (illinois.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - illinois.usr.invalid_a_0 - (ite - (> illinois.usr.init_invalid_a_0 0) - illinois.usr.init_invalid_a_0 - (- 1 illinois.usr.init_invalid_a_0))) - (= illinois.usr.dirty_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int illinois.res.nondet_5) (X2 Int illinois.res.nondet_4)) - (and (>= X2 1) (>= X1 1))))) - (let - ((X2 Bool (let ((X2 Int illinois.res.nondet_9)) (>= X2 1)))) - (and - (= illinois.usr.exclusive_a_0 0) - (let - ((X3 - Bool (let - ((X3 Int illinois.res.nondet_3) - (X4 Int illinois.res.nondet_2) - (X5 Int illinois.res.nondet_1) - (X6 Int illinois.res.nondet_0)) - (and (and (and (>= X6 1) (= X5 0)) (= X4 0)) (= X3 0))))) - (and - (= illinois.usr.shared_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int illinois.res.nondet_8) - (X5 Int illinois.res.nondet_7) - (X6 Int illinois.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (let - ((X5 Bool (let ((X5 Int illinois.res.nondet_10)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int illinois.res.nondet_11)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int illinois.res.nondet_13)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int illinois.res.nondet_14)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int illinois.res.nondet_12)) (>= X9 1)))) - illinois.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_illinois_0 ( - (illinois.usr.e1_a_1 Bool) - (illinois.usr.e2_a_1 Bool) - (illinois.usr.e3_a_1 Bool) - (illinois.usr.e4_a_1 Bool) - (illinois.usr.e5_a_1 Bool) - (illinois.usr.e6_a_1 Bool) - (illinois.usr.e7_a_1 Bool) - (illinois.usr.e8_a_1 Bool) - (illinois.usr.e9_a_1 Bool) - (illinois.usr.init_invalid_a_1 Int) - (illinois.res.nondet_14 Int) - (illinois.res.nondet_13 Int) - (illinois.res.nondet_12 Int) - (illinois.res.nondet_11 Int) - (illinois.res.nondet_10 Int) - (illinois.res.nondet_9 Int) - (illinois.res.nondet_8 Int) - (illinois.res.nondet_7 Int) - (illinois.res.nondet_6 Int) - (illinois.res.nondet_5 Int) - (illinois.res.nondet_4 Int) - (illinois.res.nondet_3 Int) - (illinois.res.nondet_2 Int) - (illinois.res.nondet_1 Int) - (illinois.res.nondet_0 Int) - (illinois.usr.invalid_a_1 Int) - (illinois.usr.dirty_a_1 Int) - (illinois.usr.exclusive_a_1 Int) - (illinois.usr.shared_a_1 Int) - (illinois.res.init_flag_a_1 Bool) - (illinois.usr.e1_a_0 Bool) - (illinois.usr.e2_a_0 Bool) - (illinois.usr.e3_a_0 Bool) - (illinois.usr.e4_a_0 Bool) - (illinois.usr.e5_a_0 Bool) - (illinois.usr.e6_a_0 Bool) - (illinois.usr.e7_a_0 Bool) - (illinois.usr.e8_a_0 Bool) - (illinois.usr.e9_a_0 Bool) - (illinois.usr.init_invalid_a_0 Int) - (illinois.usr.invalid_a_0 Int) - (illinois.usr.dirty_a_0 Int) - (illinois.usr.exclusive_a_0 Int) - (illinois.usr.shared_a_0 Int) - (illinois.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= illinois.usr.exclusive_a_0 1))) - (let - ((X2 Bool (>= illinois.usr.shared_a_0 1))) - (let - ((X3 Bool (>= illinois.usr.dirty_a_0 1))) - (let - ((X4 Bool (>= illinois.usr.invalid_a_0 1))) - (let - ((X5 Bool (>= illinois.usr.shared_a_0 1))) - (let - ((X6 - Bool (and - (>= illinois.usr.invalid_a_0 1) - (>= (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1)))) - (let - ((X7 - Bool (and - (>= illinois.usr.invalid_a_0 1) - (>= illinois.usr.dirty_a_0 1)))) - (let - ((X8 - Bool (and - (and - (and - (>= illinois.usr.invalid_a_0 1) - (= illinois.usr.dirty_a_0 0)) - (= illinois.usr.shared_a_0 0)) - (= illinois.usr.exclusive_a_0 0)))) - (and - (= - illinois.usr.invalid_a_1 - (ite - illinois.usr.e1_a_1 - (ite X8 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) - (ite - illinois.usr.e2_a_1 - (ite X7 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) - (ite - illinois.usr.e3_a_1 - (ite X6 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) - (ite - illinois.usr.e5_a_1 - (ite - X5 - (- (+ illinois.usr.invalid_a_0 illinois.usr.shared_a_0) 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e6_a_1 - (ite - X4 - (- - (+ - (+ - (+ illinois.usr.invalid_a_0 illinois.usr.dirty_a_0) - illinois.usr.shared_a_0) - illinois.usr.exclusive_a_0) - 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e7_a_1 - (ite - X3 - (+ illinois.usr.invalid_a_0 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e8_a_1 - (ite - X2 - (+ illinois.usr.invalid_a_0 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e9_a_1 - (ite - X1 - (+ illinois.usr.invalid_a_0 1) - illinois.usr.invalid_a_0) - illinois.usr.invalid_a_0))))))))) - (let - ((X9 Bool (>= illinois.usr.exclusive_a_0 1))) - (and - (= - illinois.usr.dirty_a_1 - (ite - illinois.usr.e2_a_1 - (ite X7 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - (ite - illinois.usr.e4_a_1 - (ite X9 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - (ite - illinois.usr.e5_a_1 - (ite X5 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - (ite - illinois.usr.e6_a_1 - (ite X4 1 illinois.usr.dirty_a_0) - (ite - illinois.usr.e7_a_1 - (ite X3 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - illinois.usr.dirty_a_0)))))) - (= - illinois.usr.exclusive_a_1 - (ite - illinois.usr.e1_a_1 - (ite - X8 - (+ illinois.usr.exclusive_a_0 1) - illinois.usr.exclusive_a_0) - (ite - illinois.usr.e3_a_1 - (ite X6 0 illinois.usr.exclusive_a_0) - (ite - illinois.usr.e4_a_1 - (ite - X9 - (- illinois.usr.exclusive_a_0 1) - illinois.usr.exclusive_a_0) - (ite - illinois.usr.e6_a_1 - (ite X4 0 illinois.usr.exclusive_a_0) - (ite - illinois.usr.e9_a_1 - (ite - X1 - (- illinois.usr.exclusive_a_0 1) - illinois.usr.exclusive_a_0) - illinois.usr.exclusive_a_0)))))) - (= - illinois.usr.shared_a_1 - (ite - illinois.usr.e2_a_1 - (ite X7 (+ illinois.usr.shared_a_0 2) illinois.usr.shared_a_0) - (ite - illinois.usr.e3_a_1 - (ite - X6 - (+ (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1) - illinois.usr.shared_a_0) - (ite - illinois.usr.e5_a_1 - (ite X5 0 illinois.usr.shared_a_0) - (ite - illinois.usr.e6_a_1 - (ite X4 0 illinois.usr.shared_a_0) - (ite - illinois.usr.e8_a_1 - (ite X2 (- illinois.usr.shared_a_0 1) illinois.usr.shared_a_0) - illinois.usr.shared_a_0)))))) - (not illinois.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_1_a_0)) - (let - ((X5 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7_a_0))) - (__node_init_illinois_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_init_excludes9_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.e9_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (let - ((X3 Int top.res.abs_2_a_1)) - (let - ((X4 Int top.res.abs_1_a_1)) - (let - ((X5 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7_a_1))) - (__node_trans_illinois_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_2_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes9_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_a_1 - top.res.abs_7_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.e9 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_3)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_1)) - (let - ((X5 Int top.res.abs_0)) - (and - (= top.usr.OK (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7))) - (__node_init_illinois_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_invalid - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) - (__node_init_excludes9_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_4 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid - top.res.abs_7 - top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.e9! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_3!)) - (let - ((X3 Int top.res.abs_2!)) - (let - ((X4 Int top.res.abs_1!)) - (let - ((X5 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7!))) - (__node_trans_illinois_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.usr.init_invalid! - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_2! - top.res.abs_5 - top.res.abs_6 - top.res.inst_2) - (__node_trans_excludes9_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.res.abs_4! - top.res.inst_1! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_4 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid! - top.res.abs_7! - top.res.inst_0! - top.usr.init_invalid - top.res.abs_7 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes9_0 ((excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) excludes9.usr.X3_a_0) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) excludes9.usr.X4_a_0) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) excludes9.usr.X5_a_0) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) excludes9.usr.X6_a_0) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) excludes9.usr.X7_a_0) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) excludes9.usr.X8_a_0) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) excludes9.usr.X9_a_0))) excludes9.res.init_flag_a_0)) +(define-fun __node_trans_excludes9_0 ((excludes9.usr.X1_a_1 Bool) (excludes9.usr.X2_a_1 Bool) (excludes9.usr.X3_a_1 Bool) (excludes9.usr.X4_a_1 Bool) (excludes9.usr.X5_a_1 Bool) (excludes9.usr.X6_a_1 Bool) (excludes9.usr.X7_a_1 Bool) (excludes9.usr.X8_a_1 Bool) (excludes9.usr.X9_a_1 Bool) (excludes9.usr.excludes_a_1 Bool) (excludes9.res.init_flag_a_1 Bool) (excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) excludes9.usr.X3_a_1) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) excludes9.usr.X4_a_1) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) excludes9.usr.X5_a_1) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) excludes9.usr.X6_a_1) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) excludes9.usr.X7_a_1) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) excludes9.usr.X8_a_1) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) excludes9.usr.X9_a_1))) (not excludes9.res.init_flag_a_1))) +(define-fun __node_init_illinois_0 ((illinois.usr.e1_a_0 Bool) (illinois.usr.e2_a_0 Bool) (illinois.usr.e3_a_0 Bool) (illinois.usr.e4_a_0 Bool) (illinois.usr.e5_a_0 Bool) (illinois.usr.e6_a_0 Bool) (illinois.usr.e7_a_0 Bool) (illinois.usr.e8_a_0 Bool) (illinois.usr.e9_a_0 Bool) (illinois.usr.init_invalid_a_0 Int) (illinois.res.nondet_14 Int) (illinois.res.nondet_13 Int) (illinois.res.nondet_12 Int) (illinois.res.nondet_11 Int) (illinois.res.nondet_10 Int) (illinois.res.nondet_9 Int) (illinois.res.nondet_8 Int) (illinois.res.nondet_7 Int) (illinois.res.nondet_6 Int) (illinois.res.nondet_5 Int) (illinois.res.nondet_4 Int) (illinois.res.nondet_3 Int) (illinois.res.nondet_2 Int) (illinois.res.nondet_1 Int) (illinois.res.nondet_0 Int) (illinois.usr.invalid_a_0 Int) (illinois.usr.dirty_a_0 Int) (illinois.usr.exclusive_a_0 Int) (illinois.usr.shared_a_0 Int) (illinois.res.init_flag_a_0 Bool)) Bool + (and (= illinois.usr.invalid_a_0 (ite (> illinois.usr.init_invalid_a_0 0) illinois.usr.init_invalid_a_0 (- 1 illinois.usr.init_invalid_a_0))) (= illinois.usr.dirty_a_0 0) (let ((X1 (let ((X1 illinois.res.nondet_5) (X2 illinois.res.nondet_4)) (and (>= X2 1) (>= X1 1))))) (let ((X2 (let ((X2 illinois.res.nondet_9)) (>= X2 1)))) (and (= illinois.usr.exclusive_a_0 0) (let ((X3 (let ((X3 illinois.res.nondet_3) (X4 illinois.res.nondet_2) (X5 illinois.res.nondet_1) (X6 illinois.res.nondet_0)) (and (and (and (>= X6 1) (= X5 0)) (= X4 0)) (= X3 0))))) (and (= illinois.usr.shared_a_0 0) (let ((X4 (let ((X4 illinois.res.nondet_8) (X5 illinois.res.nondet_7) (X6 illinois.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (let ((X5 (let ((X5 illinois.res.nondet_10)) (>= X5 1)))) (let ((X6 (let ((X6 illinois.res.nondet_11)) (>= X6 1)))) (let ((X7 (let ((X7 illinois.res.nondet_13)) (>= X7 1)))) (let ((X8 (let ((X8 illinois.res.nondet_14)) (>= X8 1)))) (let ((X9 (let ((X9 illinois.res.nondet_12)) (>= X9 1)))) illinois.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_illinois_0 ((illinois.usr.e1_a_1 Bool) (illinois.usr.e2_a_1 Bool) (illinois.usr.e3_a_1 Bool) (illinois.usr.e4_a_1 Bool) (illinois.usr.e5_a_1 Bool) (illinois.usr.e6_a_1 Bool) (illinois.usr.e7_a_1 Bool) (illinois.usr.e8_a_1 Bool) (illinois.usr.e9_a_1 Bool) (illinois.usr.init_invalid_a_1 Int) (illinois.res.nondet_14 Int) (illinois.res.nondet_13 Int) (illinois.res.nondet_12 Int) (illinois.res.nondet_11 Int) (illinois.res.nondet_10 Int) (illinois.res.nondet_9 Int) (illinois.res.nondet_8 Int) (illinois.res.nondet_7 Int) (illinois.res.nondet_6 Int) (illinois.res.nondet_5 Int) (illinois.res.nondet_4 Int) (illinois.res.nondet_3 Int) (illinois.res.nondet_2 Int) (illinois.res.nondet_1 Int) (illinois.res.nondet_0 Int) (illinois.usr.invalid_a_1 Int) (illinois.usr.dirty_a_1 Int) (illinois.usr.exclusive_a_1 Int) (illinois.usr.shared_a_1 Int) (illinois.res.init_flag_a_1 Bool) (illinois.usr.e1_a_0 Bool) (illinois.usr.e2_a_0 Bool) (illinois.usr.e3_a_0 Bool) (illinois.usr.e4_a_0 Bool) (illinois.usr.e5_a_0 Bool) (illinois.usr.e6_a_0 Bool) (illinois.usr.e7_a_0 Bool) (illinois.usr.e8_a_0 Bool) (illinois.usr.e9_a_0 Bool) (illinois.usr.init_invalid_a_0 Int) (illinois.usr.invalid_a_0 Int) (illinois.usr.dirty_a_0 Int) (illinois.usr.exclusive_a_0 Int) (illinois.usr.shared_a_0 Int) (illinois.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= illinois.usr.exclusive_a_0 1))) (let ((X2 (>= illinois.usr.shared_a_0 1))) (let ((X3 (>= illinois.usr.dirty_a_0 1))) (let ((X4 (>= illinois.usr.invalid_a_0 1))) (let ((X5 (>= illinois.usr.shared_a_0 1))) (let ((X6 (and (>= illinois.usr.invalid_a_0 1) (>= (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1)))) (let ((X7 (and (>= illinois.usr.invalid_a_0 1) (>= illinois.usr.dirty_a_0 1)))) (let ((X8 (and (and (and (>= illinois.usr.invalid_a_0 1) (= illinois.usr.dirty_a_0 0)) (= illinois.usr.shared_a_0 0)) (= illinois.usr.exclusive_a_0 0)))) (and (= illinois.usr.invalid_a_1 (ite illinois.usr.e1_a_1 (ite X8 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e2_a_1 (ite X7 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e3_a_1 (ite X6 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e5_a_1 (ite X5 (- (+ illinois.usr.invalid_a_0 illinois.usr.shared_a_0) 1) illinois.usr.invalid_a_0) (ite illinois.usr.e6_a_1 (ite X4 (- (+ (+ (+ illinois.usr.invalid_a_0 illinois.usr.dirty_a_0) illinois.usr.shared_a_0) illinois.usr.exclusive_a_0) 1) illinois.usr.invalid_a_0) (ite illinois.usr.e7_a_1 (ite X3 (+ illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e8_a_1 (ite X2 (+ illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e9_a_1 (ite X1 (+ illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) illinois.usr.invalid_a_0))))))))) (let ((X9 (>= illinois.usr.exclusive_a_0 1))) (and (= illinois.usr.dirty_a_1 (ite illinois.usr.e2_a_1 (ite X7 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) (ite illinois.usr.e4_a_1 (ite X9 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) (ite illinois.usr.e5_a_1 (ite X5 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) (ite illinois.usr.e6_a_1 (ite X4 1 illinois.usr.dirty_a_0) (ite illinois.usr.e7_a_1 (ite X3 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) illinois.usr.dirty_a_0)))))) (= illinois.usr.exclusive_a_1 (ite illinois.usr.e1_a_1 (ite X8 (+ illinois.usr.exclusive_a_0 1) illinois.usr.exclusive_a_0) (ite illinois.usr.e3_a_1 (ite X6 0 illinois.usr.exclusive_a_0) (ite illinois.usr.e4_a_1 (ite X9 (- illinois.usr.exclusive_a_0 1) illinois.usr.exclusive_a_0) (ite illinois.usr.e6_a_1 (ite X4 0 illinois.usr.exclusive_a_0) (ite illinois.usr.e9_a_1 (ite X1 (- illinois.usr.exclusive_a_0 1) illinois.usr.exclusive_a_0) illinois.usr.exclusive_a_0)))))) (= illinois.usr.shared_a_1 (ite illinois.usr.e2_a_1 (ite X7 (+ illinois.usr.shared_a_0 2) illinois.usr.shared_a_0) (ite illinois.usr.e3_a_1 (ite X6 (+ (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1) illinois.usr.shared_a_0) (ite illinois.usr.e5_a_1 (ite X5 0 illinois.usr.shared_a_0) (ite illinois.usr.e6_a_1 (ite X4 0 illinois.usr.shared_a_0) (ite illinois.usr.e8_a_1 (ite X2 (- illinois.usr.shared_a_0 1) illinois.usr.shared_a_0) illinois.usr.shared_a_0)))))) (not illinois.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_3_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_1_a_0)) (let ((X5 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7_a_0))) (__node_init_illinois_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_invalid_a_0 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_init_excludes9_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.e9_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_3_a_1)) (let ((X3 top.res.abs_2_a_1)) (let ((X4 top.res.abs_1_a_1)) (let ((X5 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7_a_1))) (__node_trans_illinois_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.usr.init_invalid_a_1 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_2_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_trans_excludes9_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_a_1 top.res.abs_7_a_1 top.res.inst_0_a_1 top.usr.init_invalid_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_3)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_1)) (let ((X5 top.res.abs_0)) (and (= top.usr.OK (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7))) (__node_init_illinois_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_invalid top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_init_excludes9_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_4 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid top.res.abs_7 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.e9! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_3!)) (let ((X3 top.res.abs_2!)) (let ((X4 top.res.abs_1!)) (let ((X5 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7!))) (__node_trans_illinois_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.usr.init_invalid! top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_2! top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_trans_excludes9_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.res.abs_4! top.res.inst_1! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_4 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid! top.res.abs_7! top.res.inst_0! top.usr.init_invalid top.res.abs_7 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ILLINOIS_4.sl b/benchmarks/LIA/Lustre/ILLINOIS_4.sl index dc32382..d1b3c88 100644 --- a/benchmarks/LIA/Lustre/ILLINOIS_4.sl +++ b/benchmarks/LIA/Lustre/ILLINOIS_4.sl @@ -1,1259 +1,46 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes9_0 ( - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - excludes9.usr.X3_a_0) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - excludes9.usr.X4_a_0) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - excludes9.usr.X5_a_0) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - excludes9.usr.X6_a_0) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - excludes9.usr.X7_a_0) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - excludes9.usr.X8_a_0) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - excludes9.usr.X9_a_0))) - excludes9.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes9_0 ( - (excludes9.usr.X1_a_1 Bool) - (excludes9.usr.X2_a_1 Bool) - (excludes9.usr.X3_a_1 Bool) - (excludes9.usr.X4_a_1 Bool) - (excludes9.usr.X5_a_1 Bool) - (excludes9.usr.X6_a_1 Bool) - (excludes9.usr.X7_a_1 Bool) - (excludes9.usr.X8_a_1 Bool) - (excludes9.usr.X9_a_1 Bool) - (excludes9.usr.excludes_a_1 Bool) - (excludes9.res.init_flag_a_1 Bool) - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - excludes9.usr.X3_a_1) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - excludes9.usr.X4_a_1) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - excludes9.usr.X5_a_1) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - excludes9.usr.X6_a_1) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - excludes9.usr.X7_a_1) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - excludes9.usr.X8_a_1) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - excludes9.usr.X9_a_1))) - (not excludes9.res.init_flag_a_1)) -) - -(define-fun - __node_init_illinois_0 ( - (illinois.usr.e1_a_0 Bool) - (illinois.usr.e2_a_0 Bool) - (illinois.usr.e3_a_0 Bool) - (illinois.usr.e4_a_0 Bool) - (illinois.usr.e5_a_0 Bool) - (illinois.usr.e6_a_0 Bool) - (illinois.usr.e7_a_0 Bool) - (illinois.usr.e8_a_0 Bool) - (illinois.usr.e9_a_0 Bool) - (illinois.usr.init_invalid_a_0 Int) - (illinois.res.nondet_14 Int) - (illinois.res.nondet_13 Int) - (illinois.res.nondet_12 Int) - (illinois.res.nondet_11 Int) - (illinois.res.nondet_10 Int) - (illinois.res.nondet_9 Int) - (illinois.res.nondet_8 Int) - (illinois.res.nondet_7 Int) - (illinois.res.nondet_6 Int) - (illinois.res.nondet_5 Int) - (illinois.res.nondet_4 Int) - (illinois.res.nondet_3 Int) - (illinois.res.nondet_2 Int) - (illinois.res.nondet_1 Int) - (illinois.res.nondet_0 Int) - (illinois.usr.invalid_a_0 Int) - (illinois.usr.dirty_a_0 Int) - (illinois.usr.exclusive_a_0 Int) - (illinois.usr.shared_a_0 Int) - (illinois.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - illinois.usr.invalid_a_0 - (ite - (> illinois.usr.init_invalid_a_0 0) - illinois.usr.init_invalid_a_0 - (- 1 illinois.usr.init_invalid_a_0))) - (= illinois.usr.dirty_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int illinois.res.nondet_5) (X2 Int illinois.res.nondet_4)) - (and (>= X2 1) (>= X1 1))))) - (let - ((X2 Bool (let ((X2 Int illinois.res.nondet_9)) (>= X2 1)))) - (and - (= illinois.usr.exclusive_a_0 0) - (let - ((X3 - Bool (let - ((X3 Int illinois.res.nondet_3) - (X4 Int illinois.res.nondet_2) - (X5 Int illinois.res.nondet_1) - (X6 Int illinois.res.nondet_0)) - (and (and (and (>= X6 1) (= X5 0)) (= X4 0)) (= X3 0))))) - (and - (= illinois.usr.shared_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int illinois.res.nondet_8) - (X5 Int illinois.res.nondet_7) - (X6 Int illinois.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (let - ((X5 Bool (let ((X5 Int illinois.res.nondet_10)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int illinois.res.nondet_11)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int illinois.res.nondet_13)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int illinois.res.nondet_14)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int illinois.res.nondet_12)) (>= X9 1)))) - illinois.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_illinois_0 ( - (illinois.usr.e1_a_1 Bool) - (illinois.usr.e2_a_1 Bool) - (illinois.usr.e3_a_1 Bool) - (illinois.usr.e4_a_1 Bool) - (illinois.usr.e5_a_1 Bool) - (illinois.usr.e6_a_1 Bool) - (illinois.usr.e7_a_1 Bool) - (illinois.usr.e8_a_1 Bool) - (illinois.usr.e9_a_1 Bool) - (illinois.usr.init_invalid_a_1 Int) - (illinois.res.nondet_14 Int) - (illinois.res.nondet_13 Int) - (illinois.res.nondet_12 Int) - (illinois.res.nondet_11 Int) - (illinois.res.nondet_10 Int) - (illinois.res.nondet_9 Int) - (illinois.res.nondet_8 Int) - (illinois.res.nondet_7 Int) - (illinois.res.nondet_6 Int) - (illinois.res.nondet_5 Int) - (illinois.res.nondet_4 Int) - (illinois.res.nondet_3 Int) - (illinois.res.nondet_2 Int) - (illinois.res.nondet_1 Int) - (illinois.res.nondet_0 Int) - (illinois.usr.invalid_a_1 Int) - (illinois.usr.dirty_a_1 Int) - (illinois.usr.exclusive_a_1 Int) - (illinois.usr.shared_a_1 Int) - (illinois.res.init_flag_a_1 Bool) - (illinois.usr.e1_a_0 Bool) - (illinois.usr.e2_a_0 Bool) - (illinois.usr.e3_a_0 Bool) - (illinois.usr.e4_a_0 Bool) - (illinois.usr.e5_a_0 Bool) - (illinois.usr.e6_a_0 Bool) - (illinois.usr.e7_a_0 Bool) - (illinois.usr.e8_a_0 Bool) - (illinois.usr.e9_a_0 Bool) - (illinois.usr.init_invalid_a_0 Int) - (illinois.usr.invalid_a_0 Int) - (illinois.usr.dirty_a_0 Int) - (illinois.usr.exclusive_a_0 Int) - (illinois.usr.shared_a_0 Int) - (illinois.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= illinois.usr.exclusive_a_0 1))) - (let - ((X2 Bool (>= illinois.usr.shared_a_0 1))) - (let - ((X3 Bool (>= illinois.usr.dirty_a_0 1))) - (let - ((X4 Bool (>= illinois.usr.invalid_a_0 1))) - (let - ((X5 Bool (>= illinois.usr.shared_a_0 1))) - (let - ((X6 - Bool (and - (>= illinois.usr.invalid_a_0 1) - (>= (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1)))) - (let - ((X7 - Bool (and - (>= illinois.usr.invalid_a_0 1) - (>= illinois.usr.dirty_a_0 1)))) - (let - ((X8 - Bool (and - (and - (and - (>= illinois.usr.invalid_a_0 1) - (= illinois.usr.dirty_a_0 0)) - (= illinois.usr.shared_a_0 0)) - (= illinois.usr.exclusive_a_0 0)))) - (and - (= - illinois.usr.invalid_a_1 - (ite - illinois.usr.e1_a_1 - (ite X8 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) - (ite - illinois.usr.e2_a_1 - (ite X7 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) - (ite - illinois.usr.e3_a_1 - (ite X6 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) - (ite - illinois.usr.e5_a_1 - (ite - X5 - (- (+ illinois.usr.invalid_a_0 illinois.usr.shared_a_0) 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e6_a_1 - (ite - X4 - (- - (+ - (+ - (+ illinois.usr.invalid_a_0 illinois.usr.dirty_a_0) - illinois.usr.shared_a_0) - illinois.usr.exclusive_a_0) - 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e7_a_1 - (ite - X3 - (+ illinois.usr.invalid_a_0 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e8_a_1 - (ite - X2 - (+ illinois.usr.invalid_a_0 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e9_a_1 - (ite - X1 - (+ illinois.usr.invalid_a_0 1) - illinois.usr.invalid_a_0) - illinois.usr.invalid_a_0))))))))) - (let - ((X9 Bool (>= illinois.usr.exclusive_a_0 1))) - (and - (= - illinois.usr.dirty_a_1 - (ite - illinois.usr.e2_a_1 - (ite X7 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - (ite - illinois.usr.e4_a_1 - (ite X9 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - (ite - illinois.usr.e5_a_1 - (ite X5 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - (ite - illinois.usr.e6_a_1 - (ite X4 1 illinois.usr.dirty_a_0) - (ite - illinois.usr.e7_a_1 - (ite X3 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - illinois.usr.dirty_a_0)))))) - (= - illinois.usr.exclusive_a_1 - (ite - illinois.usr.e1_a_1 - (ite - X8 - (+ illinois.usr.exclusive_a_0 1) - illinois.usr.exclusive_a_0) - (ite - illinois.usr.e3_a_1 - (ite X6 0 illinois.usr.exclusive_a_0) - (ite - illinois.usr.e4_a_1 - (ite - X9 - (- illinois.usr.exclusive_a_0 1) - illinois.usr.exclusive_a_0) - (ite - illinois.usr.e6_a_1 - (ite X4 0 illinois.usr.exclusive_a_0) - (ite - illinois.usr.e9_a_1 - (ite - X1 - (- illinois.usr.exclusive_a_0 1) - illinois.usr.exclusive_a_0) - illinois.usr.exclusive_a_0)))))) - (= - illinois.usr.shared_a_1 - (ite - illinois.usr.e2_a_1 - (ite X7 (+ illinois.usr.shared_a_0 2) illinois.usr.shared_a_0) - (ite - illinois.usr.e3_a_1 - (ite - X6 - (+ (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1) - illinois.usr.shared_a_0) - (ite - illinois.usr.e5_a_1 - (ite X5 0 illinois.usr.shared_a_0) - (ite - illinois.usr.e6_a_1 - (ite X4 0 illinois.usr.shared_a_0) - (ite - illinois.usr.e8_a_1 - (ite X2 (- illinois.usr.shared_a_0 1) illinois.usr.shared_a_0) - illinois.usr.shared_a_0)))))) - (not illinois.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_illinois_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes9_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.e9_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_1_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_illinois_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes9_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.e9 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_1)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_illinois_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_invalid - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes9_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.e9! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_1!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_illinois_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.usr.init_invalid! - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes9_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes9_0 ((excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) excludes9.usr.X3_a_0) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) excludes9.usr.X4_a_0) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) excludes9.usr.X5_a_0) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) excludes9.usr.X6_a_0) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) excludes9.usr.X7_a_0) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) excludes9.usr.X8_a_0) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) excludes9.usr.X9_a_0))) excludes9.res.init_flag_a_0)) +(define-fun __node_trans_excludes9_0 ((excludes9.usr.X1_a_1 Bool) (excludes9.usr.X2_a_1 Bool) (excludes9.usr.X3_a_1 Bool) (excludes9.usr.X4_a_1 Bool) (excludes9.usr.X5_a_1 Bool) (excludes9.usr.X6_a_1 Bool) (excludes9.usr.X7_a_1 Bool) (excludes9.usr.X8_a_1 Bool) (excludes9.usr.X9_a_1 Bool) (excludes9.usr.excludes_a_1 Bool) (excludes9.res.init_flag_a_1 Bool) (excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) excludes9.usr.X3_a_1) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) excludes9.usr.X4_a_1) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) excludes9.usr.X5_a_1) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) excludes9.usr.X6_a_1) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) excludes9.usr.X7_a_1) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) excludes9.usr.X8_a_1) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) excludes9.usr.X9_a_1))) (not excludes9.res.init_flag_a_1))) +(define-fun __node_init_illinois_0 ((illinois.usr.e1_a_0 Bool) (illinois.usr.e2_a_0 Bool) (illinois.usr.e3_a_0 Bool) (illinois.usr.e4_a_0 Bool) (illinois.usr.e5_a_0 Bool) (illinois.usr.e6_a_0 Bool) (illinois.usr.e7_a_0 Bool) (illinois.usr.e8_a_0 Bool) (illinois.usr.e9_a_0 Bool) (illinois.usr.init_invalid_a_0 Int) (illinois.res.nondet_14 Int) (illinois.res.nondet_13 Int) (illinois.res.nondet_12 Int) (illinois.res.nondet_11 Int) (illinois.res.nondet_10 Int) (illinois.res.nondet_9 Int) (illinois.res.nondet_8 Int) (illinois.res.nondet_7 Int) (illinois.res.nondet_6 Int) (illinois.res.nondet_5 Int) (illinois.res.nondet_4 Int) (illinois.res.nondet_3 Int) (illinois.res.nondet_2 Int) (illinois.res.nondet_1 Int) (illinois.res.nondet_0 Int) (illinois.usr.invalid_a_0 Int) (illinois.usr.dirty_a_0 Int) (illinois.usr.exclusive_a_0 Int) (illinois.usr.shared_a_0 Int) (illinois.res.init_flag_a_0 Bool)) Bool + (and (= illinois.usr.invalid_a_0 (ite (> illinois.usr.init_invalid_a_0 0) illinois.usr.init_invalid_a_0 (- 1 illinois.usr.init_invalid_a_0))) (= illinois.usr.dirty_a_0 0) (let ((X1 (let ((X1 illinois.res.nondet_5) (X2 illinois.res.nondet_4)) (and (>= X2 1) (>= X1 1))))) (let ((X2 (let ((X2 illinois.res.nondet_9)) (>= X2 1)))) (and (= illinois.usr.exclusive_a_0 0) (let ((X3 (let ((X3 illinois.res.nondet_3) (X4 illinois.res.nondet_2) (X5 illinois.res.nondet_1) (X6 illinois.res.nondet_0)) (and (and (and (>= X6 1) (= X5 0)) (= X4 0)) (= X3 0))))) (and (= illinois.usr.shared_a_0 0) (let ((X4 (let ((X4 illinois.res.nondet_8) (X5 illinois.res.nondet_7) (X6 illinois.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (let ((X5 (let ((X5 illinois.res.nondet_10)) (>= X5 1)))) (let ((X6 (let ((X6 illinois.res.nondet_11)) (>= X6 1)))) (let ((X7 (let ((X7 illinois.res.nondet_13)) (>= X7 1)))) (let ((X8 (let ((X8 illinois.res.nondet_14)) (>= X8 1)))) (let ((X9 (let ((X9 illinois.res.nondet_12)) (>= X9 1)))) illinois.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_illinois_0 ((illinois.usr.e1_a_1 Bool) (illinois.usr.e2_a_1 Bool) (illinois.usr.e3_a_1 Bool) (illinois.usr.e4_a_1 Bool) (illinois.usr.e5_a_1 Bool) (illinois.usr.e6_a_1 Bool) (illinois.usr.e7_a_1 Bool) (illinois.usr.e8_a_1 Bool) (illinois.usr.e9_a_1 Bool) (illinois.usr.init_invalid_a_1 Int) (illinois.res.nondet_14 Int) (illinois.res.nondet_13 Int) (illinois.res.nondet_12 Int) (illinois.res.nondet_11 Int) (illinois.res.nondet_10 Int) (illinois.res.nondet_9 Int) (illinois.res.nondet_8 Int) (illinois.res.nondet_7 Int) (illinois.res.nondet_6 Int) (illinois.res.nondet_5 Int) (illinois.res.nondet_4 Int) (illinois.res.nondet_3 Int) (illinois.res.nondet_2 Int) (illinois.res.nondet_1 Int) (illinois.res.nondet_0 Int) (illinois.usr.invalid_a_1 Int) (illinois.usr.dirty_a_1 Int) (illinois.usr.exclusive_a_1 Int) (illinois.usr.shared_a_1 Int) (illinois.res.init_flag_a_1 Bool) (illinois.usr.e1_a_0 Bool) (illinois.usr.e2_a_0 Bool) (illinois.usr.e3_a_0 Bool) (illinois.usr.e4_a_0 Bool) (illinois.usr.e5_a_0 Bool) (illinois.usr.e6_a_0 Bool) (illinois.usr.e7_a_0 Bool) (illinois.usr.e8_a_0 Bool) (illinois.usr.e9_a_0 Bool) (illinois.usr.init_invalid_a_0 Int) (illinois.usr.invalid_a_0 Int) (illinois.usr.dirty_a_0 Int) (illinois.usr.exclusive_a_0 Int) (illinois.usr.shared_a_0 Int) (illinois.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= illinois.usr.exclusive_a_0 1))) (let ((X2 (>= illinois.usr.shared_a_0 1))) (let ((X3 (>= illinois.usr.dirty_a_0 1))) (let ((X4 (>= illinois.usr.invalid_a_0 1))) (let ((X5 (>= illinois.usr.shared_a_0 1))) (let ((X6 (and (>= illinois.usr.invalid_a_0 1) (>= (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1)))) (let ((X7 (and (>= illinois.usr.invalid_a_0 1) (>= illinois.usr.dirty_a_0 1)))) (let ((X8 (and (and (and (>= illinois.usr.invalid_a_0 1) (= illinois.usr.dirty_a_0 0)) (= illinois.usr.shared_a_0 0)) (= illinois.usr.exclusive_a_0 0)))) (and (= illinois.usr.invalid_a_1 (ite illinois.usr.e1_a_1 (ite X8 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e2_a_1 (ite X7 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e3_a_1 (ite X6 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e5_a_1 (ite X5 (- (+ illinois.usr.invalid_a_0 illinois.usr.shared_a_0) 1) illinois.usr.invalid_a_0) (ite illinois.usr.e6_a_1 (ite X4 (- (+ (+ (+ illinois.usr.invalid_a_0 illinois.usr.dirty_a_0) illinois.usr.shared_a_0) illinois.usr.exclusive_a_0) 1) illinois.usr.invalid_a_0) (ite illinois.usr.e7_a_1 (ite X3 (+ illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e8_a_1 (ite X2 (+ illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e9_a_1 (ite X1 (+ illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) illinois.usr.invalid_a_0))))))))) (let ((X9 (>= illinois.usr.exclusive_a_0 1))) (and (= illinois.usr.dirty_a_1 (ite illinois.usr.e2_a_1 (ite X7 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) (ite illinois.usr.e4_a_1 (ite X9 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) (ite illinois.usr.e5_a_1 (ite X5 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) (ite illinois.usr.e6_a_1 (ite X4 1 illinois.usr.dirty_a_0) (ite illinois.usr.e7_a_1 (ite X3 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) illinois.usr.dirty_a_0)))))) (= illinois.usr.exclusive_a_1 (ite illinois.usr.e1_a_1 (ite X8 (+ illinois.usr.exclusive_a_0 1) illinois.usr.exclusive_a_0) (ite illinois.usr.e3_a_1 (ite X6 0 illinois.usr.exclusive_a_0) (ite illinois.usr.e4_a_1 (ite X9 (- illinois.usr.exclusive_a_0 1) illinois.usr.exclusive_a_0) (ite illinois.usr.e6_a_1 (ite X4 0 illinois.usr.exclusive_a_0) (ite illinois.usr.e9_a_1 (ite X1 (- illinois.usr.exclusive_a_0 1) illinois.usr.exclusive_a_0) illinois.usr.exclusive_a_0)))))) (= illinois.usr.shared_a_1 (ite illinois.usr.e2_a_1 (ite X7 (+ illinois.usr.shared_a_0 2) illinois.usr.shared_a_0) (ite illinois.usr.e3_a_1 (ite X6 (+ (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1) illinois.usr.shared_a_0) (ite illinois.usr.e5_a_1 (ite X5 0 illinois.usr.shared_a_0) (ite illinois.usr.e6_a_1 (ite X4 0 illinois.usr.shared_a_0) (ite illinois.usr.e8_a_1 (ite X2 (- illinois.usr.shared_a_0 1) illinois.usr.shared_a_0) illinois.usr.shared_a_0)))))) (not illinois.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_1_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_illinois_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_invalid_a_0 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes9_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.e9_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_illinois_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.usr.init_invalid_a_1 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes9_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_1)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_illinois_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_invalid top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes9_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.e9! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_1!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_illinois_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.usr.init_invalid! top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes9_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ILLINOIS_4_e7_2651_e7_2847.sl b/benchmarks/LIA/Lustre/ILLINOIS_4_e7_2651_e7_2847.sl index db99b41..2827b88 100644 --- a/benchmarks/LIA/Lustre/ILLINOIS_4_e7_2651_e7_2847.sl +++ b/benchmarks/LIA/Lustre/ILLINOIS_4_e7_2651_e7_2847.sl @@ -1,1259 +1,46 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes9_0 ( - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (not excludes9.usr.X1_a_0) - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - excludes9.usr.X3_a_0) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - excludes9.usr.X4_a_0) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - excludes9.usr.X5_a_0) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - excludes9.usr.X6_a_0) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - excludes9.usr.X7_a_0) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - excludes9.usr.X8_a_0) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - excludes9.usr.X9_a_0))) - excludes9.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes9_0 ( - (excludes9.usr.X1_a_1 Bool) - (excludes9.usr.X2_a_1 Bool) - (excludes9.usr.X3_a_1 Bool) - (excludes9.usr.X4_a_1 Bool) - (excludes9.usr.X5_a_1 Bool) - (excludes9.usr.X6_a_1 Bool) - (excludes9.usr.X7_a_1 Bool) - (excludes9.usr.X8_a_1 Bool) - (excludes9.usr.X9_a_1 Bool) - (excludes9.usr.excludes_a_1 Bool) - (excludes9.res.init_flag_a_1 Bool) - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (not excludes9.usr.X1_a_1) - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - excludes9.usr.X3_a_1) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - excludes9.usr.X4_a_1) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - excludes9.usr.X5_a_1) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - excludes9.usr.X6_a_1) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - excludes9.usr.X7_a_1) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - excludes9.usr.X8_a_1) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - excludes9.usr.X9_a_1))) - (not excludes9.res.init_flag_a_1)) -) - -(define-fun - __node_init_illinois_0 ( - (illinois.usr.e1_a_0 Bool) - (illinois.usr.e2_a_0 Bool) - (illinois.usr.e3_a_0 Bool) - (illinois.usr.e4_a_0 Bool) - (illinois.usr.e5_a_0 Bool) - (illinois.usr.e6_a_0 Bool) - (illinois.usr.e7_a_0 Bool) - (illinois.usr.e8_a_0 Bool) - (illinois.usr.e9_a_0 Bool) - (illinois.usr.init_invalid_a_0 Int) - (illinois.res.nondet_14 Int) - (illinois.res.nondet_13 Int) - (illinois.res.nondet_12 Int) - (illinois.res.nondet_11 Int) - (illinois.res.nondet_10 Int) - (illinois.res.nondet_9 Int) - (illinois.res.nondet_8 Int) - (illinois.res.nondet_7 Int) - (illinois.res.nondet_6 Int) - (illinois.res.nondet_5 Int) - (illinois.res.nondet_4 Int) - (illinois.res.nondet_3 Int) - (illinois.res.nondet_2 Int) - (illinois.res.nondet_1 Int) - (illinois.res.nondet_0 Int) - (illinois.usr.invalid_a_0 Int) - (illinois.usr.dirty_a_0 Int) - (illinois.usr.exclusive_a_0 Int) - (illinois.usr.shared_a_0 Int) - (illinois.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - illinois.usr.invalid_a_0 - (ite - (> illinois.usr.init_invalid_a_0 0) - illinois.usr.init_invalid_a_0 - (- 1 illinois.usr.init_invalid_a_0))) - (= illinois.usr.dirty_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int illinois.res.nondet_5) (X2 Int illinois.res.nondet_4)) - (and (>= X2 1) (>= X1 1))))) - (let - ((X2 Bool (let ((X2 Int illinois.res.nondet_9)) (>= X2 1)))) - (and - (= illinois.usr.exclusive_a_0 0) - (let - ((X3 - Bool (let - ((X3 Int illinois.res.nondet_3) - (X4 Int illinois.res.nondet_2) - (X5 Int illinois.res.nondet_1) - (X6 Int illinois.res.nondet_0)) - (and (and (and (>= X6 1) (= X5 0)) (= X4 0)) (= X3 0))))) - (and - (= illinois.usr.shared_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int illinois.res.nondet_8) - (X5 Int illinois.res.nondet_7) - (X6 Int illinois.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (let - ((X5 Bool (let ((X5 Int illinois.res.nondet_10)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int illinois.res.nondet_11)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int illinois.res.nondet_13)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int illinois.res.nondet_14)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int illinois.res.nondet_12)) (>= X9 1)))) - illinois.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_illinois_0 ( - (illinois.usr.e1_a_1 Bool) - (illinois.usr.e2_a_1 Bool) - (illinois.usr.e3_a_1 Bool) - (illinois.usr.e4_a_1 Bool) - (illinois.usr.e5_a_1 Bool) - (illinois.usr.e6_a_1 Bool) - (illinois.usr.e7_a_1 Bool) - (illinois.usr.e8_a_1 Bool) - (illinois.usr.e9_a_1 Bool) - (illinois.usr.init_invalid_a_1 Int) - (illinois.res.nondet_14 Int) - (illinois.res.nondet_13 Int) - (illinois.res.nondet_12 Int) - (illinois.res.nondet_11 Int) - (illinois.res.nondet_10 Int) - (illinois.res.nondet_9 Int) - (illinois.res.nondet_8 Int) - (illinois.res.nondet_7 Int) - (illinois.res.nondet_6 Int) - (illinois.res.nondet_5 Int) - (illinois.res.nondet_4 Int) - (illinois.res.nondet_3 Int) - (illinois.res.nondet_2 Int) - (illinois.res.nondet_1 Int) - (illinois.res.nondet_0 Int) - (illinois.usr.invalid_a_1 Int) - (illinois.usr.dirty_a_1 Int) - (illinois.usr.exclusive_a_1 Int) - (illinois.usr.shared_a_1 Int) - (illinois.res.init_flag_a_1 Bool) - (illinois.usr.e1_a_0 Bool) - (illinois.usr.e2_a_0 Bool) - (illinois.usr.e3_a_0 Bool) - (illinois.usr.e4_a_0 Bool) - (illinois.usr.e5_a_0 Bool) - (illinois.usr.e6_a_0 Bool) - (illinois.usr.e7_a_0 Bool) - (illinois.usr.e8_a_0 Bool) - (illinois.usr.e9_a_0 Bool) - (illinois.usr.init_invalid_a_0 Int) - (illinois.usr.invalid_a_0 Int) - (illinois.usr.dirty_a_0 Int) - (illinois.usr.exclusive_a_0 Int) - (illinois.usr.shared_a_0 Int) - (illinois.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= illinois.usr.exclusive_a_0 1))) - (let - ((X2 Bool (>= illinois.usr.shared_a_0 1))) - (let - ((X3 Bool (>= illinois.usr.dirty_a_0 1))) - (let - ((X4 Bool (>= illinois.usr.invalid_a_0 1))) - (let - ((X5 Bool (>= illinois.usr.shared_a_0 1))) - (let - ((X6 - Bool (and - (>= illinois.usr.invalid_a_0 1) - (>= (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1)))) - (let - ((X7 - Bool (and - (>= illinois.usr.invalid_a_0 1) - (>= illinois.usr.dirty_a_0 1)))) - (let - ((X8 - Bool (and - (and - (and - (>= illinois.usr.invalid_a_0 1) - (= illinois.usr.dirty_a_0 0)) - (= illinois.usr.shared_a_0 0)) - (= illinois.usr.exclusive_a_0 0)))) - (and - (= - illinois.usr.invalid_a_1 - (ite - illinois.usr.e1_a_1 - (ite X8 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) - (ite - illinois.usr.e2_a_1 - (ite X7 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) - (ite - illinois.usr.e3_a_1 - (ite X6 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) - (ite - illinois.usr.e5_a_1 - (ite - X5 - (- (+ illinois.usr.invalid_a_0 illinois.usr.shared_a_0) 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e6_a_1 - (ite - X4 - (- - (+ - (+ - (+ illinois.usr.invalid_a_0 illinois.usr.dirty_a_0) - illinois.usr.shared_a_0) - illinois.usr.exclusive_a_0) - 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e7_a_1 - (ite - X3 - (+ illinois.usr.invalid_a_0 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e8_a_1 - (ite - X2 - (+ illinois.usr.invalid_a_0 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e9_a_1 - (ite - X1 - (+ illinois.usr.invalid_a_0 1) - illinois.usr.invalid_a_0) - illinois.usr.invalid_a_0))))))))) - (let - ((X9 Bool (>= illinois.usr.exclusive_a_0 1))) - (and - (= - illinois.usr.dirty_a_1 - (ite - illinois.usr.e2_a_1 - (ite X7 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - (ite - illinois.usr.e4_a_1 - (ite X9 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - (ite - illinois.usr.e5_a_1 - (ite X5 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - (ite - illinois.usr.e6_a_1 - (ite X4 1 illinois.usr.dirty_a_0) - (ite - illinois.usr.e7_a_1 - (ite X3 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - illinois.usr.dirty_a_0)))))) - (= - illinois.usr.exclusive_a_1 - (ite - illinois.usr.e1_a_1 - (ite - X8 - (+ illinois.usr.exclusive_a_0 1) - illinois.usr.exclusive_a_0) - (ite - illinois.usr.e3_a_1 - (ite X6 0 illinois.usr.exclusive_a_0) - (ite - illinois.usr.e4_a_1 - (ite - X9 - (- illinois.usr.exclusive_a_0 1) - illinois.usr.exclusive_a_0) - (ite - illinois.usr.e6_a_1 - (ite X4 0 illinois.usr.exclusive_a_0) - (ite - illinois.usr.e9_a_1 - (ite - X1 - (- illinois.usr.exclusive_a_0 1) - illinois.usr.exclusive_a_0) - illinois.usr.exclusive_a_0)))))) - (= - illinois.usr.shared_a_1 - (ite - illinois.usr.e2_a_1 - (ite X7 (+ illinois.usr.shared_a_0 2) illinois.usr.shared_a_0) - (ite - illinois.usr.e3_a_1 - (ite - X6 - (+ (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1) - illinois.usr.shared_a_0) - (ite - illinois.usr.e5_a_1 - (ite X5 0 illinois.usr.shared_a_0) - (ite - illinois.usr.e6_a_1 - (ite X4 0 illinois.usr.shared_a_0) - (ite - illinois.usr.e8_a_1 - (ite X2 (- illinois.usr.shared_a_0 1) illinois.usr.shared_a_0) - illinois.usr.shared_a_0)))))) - (not illinois.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_illinois_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes9_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.e9_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_1_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_illinois_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes9_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.e9 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_1)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_illinois_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_invalid - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes9_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.e9! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_1!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_illinois_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.usr.init_invalid! - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes9_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes9_0 ((excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (not excludes9.usr.X1_a_0) (and (and (and (and (and (and (and (not excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) excludes9.usr.X3_a_0) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) excludes9.usr.X4_a_0) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) excludes9.usr.X5_a_0) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) excludes9.usr.X6_a_0) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) excludes9.usr.X7_a_0) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) excludes9.usr.X8_a_0) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) excludes9.usr.X9_a_0))) excludes9.res.init_flag_a_0)) +(define-fun __node_trans_excludes9_0 ((excludes9.usr.X1_a_1 Bool) (excludes9.usr.X2_a_1 Bool) (excludes9.usr.X3_a_1 Bool) (excludes9.usr.X4_a_1 Bool) (excludes9.usr.X5_a_1 Bool) (excludes9.usr.X6_a_1 Bool) (excludes9.usr.X7_a_1 Bool) (excludes9.usr.X8_a_1 Bool) (excludes9.usr.X9_a_1 Bool) (excludes9.usr.excludes_a_1 Bool) (excludes9.res.init_flag_a_1 Bool) (excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (not excludes9.usr.X1_a_1) (and (and (and (and (and (and (and (not excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) excludes9.usr.X3_a_1) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) excludes9.usr.X4_a_1) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) excludes9.usr.X5_a_1) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) excludes9.usr.X6_a_1) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) excludes9.usr.X7_a_1) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) excludes9.usr.X8_a_1) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) excludes9.usr.X9_a_1))) (not excludes9.res.init_flag_a_1))) +(define-fun __node_init_illinois_0 ((illinois.usr.e1_a_0 Bool) (illinois.usr.e2_a_0 Bool) (illinois.usr.e3_a_0 Bool) (illinois.usr.e4_a_0 Bool) (illinois.usr.e5_a_0 Bool) (illinois.usr.e6_a_0 Bool) (illinois.usr.e7_a_0 Bool) (illinois.usr.e8_a_0 Bool) (illinois.usr.e9_a_0 Bool) (illinois.usr.init_invalid_a_0 Int) (illinois.res.nondet_14 Int) (illinois.res.nondet_13 Int) (illinois.res.nondet_12 Int) (illinois.res.nondet_11 Int) (illinois.res.nondet_10 Int) (illinois.res.nondet_9 Int) (illinois.res.nondet_8 Int) (illinois.res.nondet_7 Int) (illinois.res.nondet_6 Int) (illinois.res.nondet_5 Int) (illinois.res.nondet_4 Int) (illinois.res.nondet_3 Int) (illinois.res.nondet_2 Int) (illinois.res.nondet_1 Int) (illinois.res.nondet_0 Int) (illinois.usr.invalid_a_0 Int) (illinois.usr.dirty_a_0 Int) (illinois.usr.exclusive_a_0 Int) (illinois.usr.shared_a_0 Int) (illinois.res.init_flag_a_0 Bool)) Bool + (and (= illinois.usr.invalid_a_0 (ite (> illinois.usr.init_invalid_a_0 0) illinois.usr.init_invalid_a_0 (- 1 illinois.usr.init_invalid_a_0))) (= illinois.usr.dirty_a_0 0) (let ((X1 (let ((X1 illinois.res.nondet_5) (X2 illinois.res.nondet_4)) (and (>= X2 1) (>= X1 1))))) (let ((X2 (let ((X2 illinois.res.nondet_9)) (>= X2 1)))) (and (= illinois.usr.exclusive_a_0 0) (let ((X3 (let ((X3 illinois.res.nondet_3) (X4 illinois.res.nondet_2) (X5 illinois.res.nondet_1) (X6 illinois.res.nondet_0)) (and (and (and (>= X6 1) (= X5 0)) (= X4 0)) (= X3 0))))) (and (= illinois.usr.shared_a_0 0) (let ((X4 (let ((X4 illinois.res.nondet_8) (X5 illinois.res.nondet_7) (X6 illinois.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (let ((X5 (let ((X5 illinois.res.nondet_10)) (>= X5 1)))) (let ((X6 (let ((X6 illinois.res.nondet_11)) (>= X6 1)))) (let ((X7 (let ((X7 illinois.res.nondet_13)) (>= X7 1)))) (let ((X8 (let ((X8 illinois.res.nondet_14)) (>= X8 1)))) (let ((X9 (let ((X9 illinois.res.nondet_12)) (>= X9 1)))) illinois.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_illinois_0 ((illinois.usr.e1_a_1 Bool) (illinois.usr.e2_a_1 Bool) (illinois.usr.e3_a_1 Bool) (illinois.usr.e4_a_1 Bool) (illinois.usr.e5_a_1 Bool) (illinois.usr.e6_a_1 Bool) (illinois.usr.e7_a_1 Bool) (illinois.usr.e8_a_1 Bool) (illinois.usr.e9_a_1 Bool) (illinois.usr.init_invalid_a_1 Int) (illinois.res.nondet_14 Int) (illinois.res.nondet_13 Int) (illinois.res.nondet_12 Int) (illinois.res.nondet_11 Int) (illinois.res.nondet_10 Int) (illinois.res.nondet_9 Int) (illinois.res.nondet_8 Int) (illinois.res.nondet_7 Int) (illinois.res.nondet_6 Int) (illinois.res.nondet_5 Int) (illinois.res.nondet_4 Int) (illinois.res.nondet_3 Int) (illinois.res.nondet_2 Int) (illinois.res.nondet_1 Int) (illinois.res.nondet_0 Int) (illinois.usr.invalid_a_1 Int) (illinois.usr.dirty_a_1 Int) (illinois.usr.exclusive_a_1 Int) (illinois.usr.shared_a_1 Int) (illinois.res.init_flag_a_1 Bool) (illinois.usr.e1_a_0 Bool) (illinois.usr.e2_a_0 Bool) (illinois.usr.e3_a_0 Bool) (illinois.usr.e4_a_0 Bool) (illinois.usr.e5_a_0 Bool) (illinois.usr.e6_a_0 Bool) (illinois.usr.e7_a_0 Bool) (illinois.usr.e8_a_0 Bool) (illinois.usr.e9_a_0 Bool) (illinois.usr.init_invalid_a_0 Int) (illinois.usr.invalid_a_0 Int) (illinois.usr.dirty_a_0 Int) (illinois.usr.exclusive_a_0 Int) (illinois.usr.shared_a_0 Int) (illinois.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= illinois.usr.exclusive_a_0 1))) (let ((X2 (>= illinois.usr.shared_a_0 1))) (let ((X3 (>= illinois.usr.dirty_a_0 1))) (let ((X4 (>= illinois.usr.invalid_a_0 1))) (let ((X5 (>= illinois.usr.shared_a_0 1))) (let ((X6 (and (>= illinois.usr.invalid_a_0 1) (>= (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1)))) (let ((X7 (and (>= illinois.usr.invalid_a_0 1) (>= illinois.usr.dirty_a_0 1)))) (let ((X8 (and (and (and (>= illinois.usr.invalid_a_0 1) (= illinois.usr.dirty_a_0 0)) (= illinois.usr.shared_a_0 0)) (= illinois.usr.exclusive_a_0 0)))) (and (= illinois.usr.invalid_a_1 (ite illinois.usr.e1_a_1 (ite X8 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e2_a_1 (ite X7 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e3_a_1 (ite X6 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e5_a_1 (ite X5 (- (+ illinois.usr.invalid_a_0 illinois.usr.shared_a_0) 1) illinois.usr.invalid_a_0) (ite illinois.usr.e6_a_1 (ite X4 (- (+ (+ (+ illinois.usr.invalid_a_0 illinois.usr.dirty_a_0) illinois.usr.shared_a_0) illinois.usr.exclusive_a_0) 1) illinois.usr.invalid_a_0) (ite illinois.usr.e7_a_1 (ite X3 (+ illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e8_a_1 (ite X2 (+ illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e9_a_1 (ite X1 (+ illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) illinois.usr.invalid_a_0))))))))) (let ((X9 (>= illinois.usr.exclusive_a_0 1))) (and (= illinois.usr.dirty_a_1 (ite illinois.usr.e2_a_1 (ite X7 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) (ite illinois.usr.e4_a_1 (ite X9 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) (ite illinois.usr.e5_a_1 (ite X5 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) (ite illinois.usr.e6_a_1 (ite X4 1 illinois.usr.dirty_a_0) (ite illinois.usr.e7_a_1 (ite X3 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) illinois.usr.dirty_a_0)))))) (= illinois.usr.exclusive_a_1 (ite illinois.usr.e1_a_1 (ite X8 (+ illinois.usr.exclusive_a_0 1) illinois.usr.exclusive_a_0) (ite illinois.usr.e3_a_1 (ite X6 0 illinois.usr.exclusive_a_0) (ite illinois.usr.e4_a_1 (ite X9 (- illinois.usr.exclusive_a_0 1) illinois.usr.exclusive_a_0) (ite illinois.usr.e6_a_1 (ite X4 0 illinois.usr.exclusive_a_0) (ite illinois.usr.e9_a_1 (ite X1 (- illinois.usr.exclusive_a_0 1) illinois.usr.exclusive_a_0) illinois.usr.exclusive_a_0)))))) (= illinois.usr.shared_a_1 (ite illinois.usr.e2_a_1 (ite X7 (+ illinois.usr.shared_a_0 2) illinois.usr.shared_a_0) (ite illinois.usr.e3_a_1 (ite X6 (+ (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1) illinois.usr.shared_a_0) (ite illinois.usr.e5_a_1 (ite X5 0 illinois.usr.shared_a_0) (ite illinois.usr.e6_a_1 (ite X4 0 illinois.usr.shared_a_0) (ite illinois.usr.e8_a_1 (ite X2 (- illinois.usr.shared_a_0 1) illinois.usr.shared_a_0) illinois.usr.shared_a_0)))))) (not illinois.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_1_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_illinois_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_invalid_a_0 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes9_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.e9_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_illinois_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.usr.init_invalid_a_1 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes9_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_1)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_illinois_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_invalid top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes9_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.e9! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_1!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_illinois_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.usr.init_invalid! top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes9_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ILLINOIS_5.sl b/benchmarks/LIA/Lustre/ILLINOIS_5.sl index 58dcd82..79ced23 100644 --- a/benchmarks/LIA/Lustre/ILLINOIS_5.sl +++ b/benchmarks/LIA/Lustre/ILLINOIS_5.sl @@ -1,1259 +1,46 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes9_0 ( - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - excludes9.usr.X3_a_0) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - excludes9.usr.X4_a_0) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - excludes9.usr.X5_a_0) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - excludes9.usr.X6_a_0) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - excludes9.usr.X7_a_0) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - excludes9.usr.X8_a_0) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - excludes9.usr.X9_a_0))) - excludes9.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes9_0 ( - (excludes9.usr.X1_a_1 Bool) - (excludes9.usr.X2_a_1 Bool) - (excludes9.usr.X3_a_1 Bool) - (excludes9.usr.X4_a_1 Bool) - (excludes9.usr.X5_a_1 Bool) - (excludes9.usr.X6_a_1 Bool) - (excludes9.usr.X7_a_1 Bool) - (excludes9.usr.X8_a_1 Bool) - (excludes9.usr.X9_a_1 Bool) - (excludes9.usr.excludes_a_1 Bool) - (excludes9.res.init_flag_a_1 Bool) - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - excludes9.usr.X3_a_1) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - excludes9.usr.X4_a_1) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - excludes9.usr.X5_a_1) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - excludes9.usr.X6_a_1) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - excludes9.usr.X7_a_1) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - excludes9.usr.X8_a_1) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - excludes9.usr.X9_a_1))) - (not excludes9.res.init_flag_a_1)) -) - -(define-fun - __node_init_illinois_0 ( - (illinois.usr.e1_a_0 Bool) - (illinois.usr.e2_a_0 Bool) - (illinois.usr.e3_a_0 Bool) - (illinois.usr.e4_a_0 Bool) - (illinois.usr.e5_a_0 Bool) - (illinois.usr.e6_a_0 Bool) - (illinois.usr.e7_a_0 Bool) - (illinois.usr.e8_a_0 Bool) - (illinois.usr.e9_a_0 Bool) - (illinois.usr.init_invalid_a_0 Int) - (illinois.res.nondet_14 Int) - (illinois.res.nondet_13 Int) - (illinois.res.nondet_12 Int) - (illinois.res.nondet_11 Int) - (illinois.res.nondet_10 Int) - (illinois.res.nondet_9 Int) - (illinois.res.nondet_8 Int) - (illinois.res.nondet_7 Int) - (illinois.res.nondet_6 Int) - (illinois.res.nondet_5 Int) - (illinois.res.nondet_4 Int) - (illinois.res.nondet_3 Int) - (illinois.res.nondet_2 Int) - (illinois.res.nondet_1 Int) - (illinois.res.nondet_0 Int) - (illinois.usr.invalid_a_0 Int) - (illinois.usr.dirty_a_0 Int) - (illinois.usr.exclusive_a_0 Int) - (illinois.usr.shared_a_0 Int) - (illinois.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - illinois.usr.invalid_a_0 - (ite - (> illinois.usr.init_invalid_a_0 0) - illinois.usr.init_invalid_a_0 - (- 1 illinois.usr.init_invalid_a_0))) - (= illinois.usr.dirty_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int illinois.res.nondet_5) (X2 Int illinois.res.nondet_4)) - (and (>= X2 1) (>= X1 1))))) - (let - ((X2 Bool (let ((X2 Int illinois.res.nondet_9)) (>= X2 1)))) - (and - (= illinois.usr.exclusive_a_0 0) - (let - ((X3 - Bool (let - ((X3 Int illinois.res.nondet_3) - (X4 Int illinois.res.nondet_2) - (X5 Int illinois.res.nondet_1) - (X6 Int illinois.res.nondet_0)) - (and (and (and (>= X6 1) (= X5 0)) (= X4 0)) (= X3 0))))) - (and - (= illinois.usr.shared_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int illinois.res.nondet_8) - (X5 Int illinois.res.nondet_7) - (X6 Int illinois.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (let - ((X5 Bool (let ((X5 Int illinois.res.nondet_10)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int illinois.res.nondet_11)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int illinois.res.nondet_13)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int illinois.res.nondet_14)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int illinois.res.nondet_12)) (>= X9 1)))) - illinois.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_illinois_0 ( - (illinois.usr.e1_a_1 Bool) - (illinois.usr.e2_a_1 Bool) - (illinois.usr.e3_a_1 Bool) - (illinois.usr.e4_a_1 Bool) - (illinois.usr.e5_a_1 Bool) - (illinois.usr.e6_a_1 Bool) - (illinois.usr.e7_a_1 Bool) - (illinois.usr.e8_a_1 Bool) - (illinois.usr.e9_a_1 Bool) - (illinois.usr.init_invalid_a_1 Int) - (illinois.res.nondet_14 Int) - (illinois.res.nondet_13 Int) - (illinois.res.nondet_12 Int) - (illinois.res.nondet_11 Int) - (illinois.res.nondet_10 Int) - (illinois.res.nondet_9 Int) - (illinois.res.nondet_8 Int) - (illinois.res.nondet_7 Int) - (illinois.res.nondet_6 Int) - (illinois.res.nondet_5 Int) - (illinois.res.nondet_4 Int) - (illinois.res.nondet_3 Int) - (illinois.res.nondet_2 Int) - (illinois.res.nondet_1 Int) - (illinois.res.nondet_0 Int) - (illinois.usr.invalid_a_1 Int) - (illinois.usr.dirty_a_1 Int) - (illinois.usr.exclusive_a_1 Int) - (illinois.usr.shared_a_1 Int) - (illinois.res.init_flag_a_1 Bool) - (illinois.usr.e1_a_0 Bool) - (illinois.usr.e2_a_0 Bool) - (illinois.usr.e3_a_0 Bool) - (illinois.usr.e4_a_0 Bool) - (illinois.usr.e5_a_0 Bool) - (illinois.usr.e6_a_0 Bool) - (illinois.usr.e7_a_0 Bool) - (illinois.usr.e8_a_0 Bool) - (illinois.usr.e9_a_0 Bool) - (illinois.usr.init_invalid_a_0 Int) - (illinois.usr.invalid_a_0 Int) - (illinois.usr.dirty_a_0 Int) - (illinois.usr.exclusive_a_0 Int) - (illinois.usr.shared_a_0 Int) - (illinois.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= illinois.usr.exclusive_a_0 1))) - (let - ((X2 Bool (>= illinois.usr.shared_a_0 1))) - (let - ((X3 Bool (>= illinois.usr.dirty_a_0 1))) - (let - ((X4 Bool (>= illinois.usr.invalid_a_0 1))) - (let - ((X5 Bool (>= illinois.usr.shared_a_0 1))) - (let - ((X6 - Bool (and - (>= illinois.usr.invalid_a_0 1) - (>= (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1)))) - (let - ((X7 - Bool (and - (>= illinois.usr.invalid_a_0 1) - (>= illinois.usr.dirty_a_0 1)))) - (let - ((X8 - Bool (and - (and - (and - (>= illinois.usr.invalid_a_0 1) - (= illinois.usr.dirty_a_0 0)) - (= illinois.usr.shared_a_0 0)) - (= illinois.usr.exclusive_a_0 0)))) - (and - (= - illinois.usr.invalid_a_1 - (ite - illinois.usr.e1_a_1 - (ite X8 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) - (ite - illinois.usr.e2_a_1 - (ite X7 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) - (ite - illinois.usr.e3_a_1 - (ite X6 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) - (ite - illinois.usr.e5_a_1 - (ite - X5 - (- (+ illinois.usr.invalid_a_0 illinois.usr.shared_a_0) 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e6_a_1 - (ite - X4 - (- - (+ - (+ - (+ illinois.usr.invalid_a_0 illinois.usr.dirty_a_0) - illinois.usr.shared_a_0) - illinois.usr.exclusive_a_0) - 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e7_a_1 - (ite - X3 - (+ illinois.usr.invalid_a_0 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e8_a_1 - (ite - X2 - (+ illinois.usr.invalid_a_0 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e9_a_1 - (ite - X1 - (+ illinois.usr.invalid_a_0 1) - illinois.usr.invalid_a_0) - illinois.usr.invalid_a_0))))))))) - (let - ((X9 Bool (>= illinois.usr.exclusive_a_0 1))) - (and - (= - illinois.usr.dirty_a_1 - (ite - illinois.usr.e2_a_1 - (ite X7 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - (ite - illinois.usr.e4_a_1 - (ite X9 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - (ite - illinois.usr.e5_a_1 - (ite X5 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - (ite - illinois.usr.e6_a_1 - (ite X4 1 illinois.usr.dirty_a_0) - (ite - illinois.usr.e7_a_1 - (ite X3 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - illinois.usr.dirty_a_0)))))) - (= - illinois.usr.exclusive_a_1 - (ite - illinois.usr.e1_a_1 - (ite - X8 - (+ illinois.usr.exclusive_a_0 1) - illinois.usr.exclusive_a_0) - (ite - illinois.usr.e3_a_1 - (ite X6 0 illinois.usr.exclusive_a_0) - (ite - illinois.usr.e4_a_1 - (ite - X9 - (- illinois.usr.exclusive_a_0 1) - illinois.usr.exclusive_a_0) - (ite - illinois.usr.e6_a_1 - (ite X4 0 illinois.usr.exclusive_a_0) - (ite - illinois.usr.e9_a_1 - (ite - X1 - (- illinois.usr.exclusive_a_0 1) - illinois.usr.exclusive_a_0) - illinois.usr.exclusive_a_0)))))) - (= - illinois.usr.shared_a_1 - (ite - illinois.usr.e2_a_1 - (ite X7 (+ illinois.usr.shared_a_0 2) illinois.usr.shared_a_0) - (ite - illinois.usr.e3_a_1 - (ite - X6 - (+ (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1) - illinois.usr.shared_a_0) - (ite - illinois.usr.e5_a_1 - (ite X5 0 illinois.usr.shared_a_0) - (ite - illinois.usr.e6_a_1 - (ite X4 0 illinois.usr.shared_a_0) - (ite - illinois.usr.e8_a_1 - (ite X2 (- illinois.usr.shared_a_0 1) illinois.usr.shared_a_0) - illinois.usr.shared_a_0)))))) - (not illinois.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_illinois_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes9_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.e9_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_illinois_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes9_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.e9 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_2)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_illinois_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_invalid - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes9_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.e9! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_2!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_illinois_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.usr.init_invalid! - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes9_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes9_0 ((excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) excludes9.usr.X3_a_0) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) excludes9.usr.X4_a_0) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) excludes9.usr.X5_a_0) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) excludes9.usr.X6_a_0) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) excludes9.usr.X7_a_0) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) excludes9.usr.X8_a_0) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) excludes9.usr.X9_a_0))) excludes9.res.init_flag_a_0)) +(define-fun __node_trans_excludes9_0 ((excludes9.usr.X1_a_1 Bool) (excludes9.usr.X2_a_1 Bool) (excludes9.usr.X3_a_1 Bool) (excludes9.usr.X4_a_1 Bool) (excludes9.usr.X5_a_1 Bool) (excludes9.usr.X6_a_1 Bool) (excludes9.usr.X7_a_1 Bool) (excludes9.usr.X8_a_1 Bool) (excludes9.usr.X9_a_1 Bool) (excludes9.usr.excludes_a_1 Bool) (excludes9.res.init_flag_a_1 Bool) (excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) excludes9.usr.X3_a_1) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) excludes9.usr.X4_a_1) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) excludes9.usr.X5_a_1) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) excludes9.usr.X6_a_1) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) excludes9.usr.X7_a_1) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) excludes9.usr.X8_a_1) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) excludes9.usr.X9_a_1))) (not excludes9.res.init_flag_a_1))) +(define-fun __node_init_illinois_0 ((illinois.usr.e1_a_0 Bool) (illinois.usr.e2_a_0 Bool) (illinois.usr.e3_a_0 Bool) (illinois.usr.e4_a_0 Bool) (illinois.usr.e5_a_0 Bool) (illinois.usr.e6_a_0 Bool) (illinois.usr.e7_a_0 Bool) (illinois.usr.e8_a_0 Bool) (illinois.usr.e9_a_0 Bool) (illinois.usr.init_invalid_a_0 Int) (illinois.res.nondet_14 Int) (illinois.res.nondet_13 Int) (illinois.res.nondet_12 Int) (illinois.res.nondet_11 Int) (illinois.res.nondet_10 Int) (illinois.res.nondet_9 Int) (illinois.res.nondet_8 Int) (illinois.res.nondet_7 Int) (illinois.res.nondet_6 Int) (illinois.res.nondet_5 Int) (illinois.res.nondet_4 Int) (illinois.res.nondet_3 Int) (illinois.res.nondet_2 Int) (illinois.res.nondet_1 Int) (illinois.res.nondet_0 Int) (illinois.usr.invalid_a_0 Int) (illinois.usr.dirty_a_0 Int) (illinois.usr.exclusive_a_0 Int) (illinois.usr.shared_a_0 Int) (illinois.res.init_flag_a_0 Bool)) Bool + (and (= illinois.usr.invalid_a_0 (ite (> illinois.usr.init_invalid_a_0 0) illinois.usr.init_invalid_a_0 (- 1 illinois.usr.init_invalid_a_0))) (= illinois.usr.dirty_a_0 0) (let ((X1 (let ((X1 illinois.res.nondet_5) (X2 illinois.res.nondet_4)) (and (>= X2 1) (>= X1 1))))) (let ((X2 (let ((X2 illinois.res.nondet_9)) (>= X2 1)))) (and (= illinois.usr.exclusive_a_0 0) (let ((X3 (let ((X3 illinois.res.nondet_3) (X4 illinois.res.nondet_2) (X5 illinois.res.nondet_1) (X6 illinois.res.nondet_0)) (and (and (and (>= X6 1) (= X5 0)) (= X4 0)) (= X3 0))))) (and (= illinois.usr.shared_a_0 0) (let ((X4 (let ((X4 illinois.res.nondet_8) (X5 illinois.res.nondet_7) (X6 illinois.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (let ((X5 (let ((X5 illinois.res.nondet_10)) (>= X5 1)))) (let ((X6 (let ((X6 illinois.res.nondet_11)) (>= X6 1)))) (let ((X7 (let ((X7 illinois.res.nondet_13)) (>= X7 1)))) (let ((X8 (let ((X8 illinois.res.nondet_14)) (>= X8 1)))) (let ((X9 (let ((X9 illinois.res.nondet_12)) (>= X9 1)))) illinois.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_illinois_0 ((illinois.usr.e1_a_1 Bool) (illinois.usr.e2_a_1 Bool) (illinois.usr.e3_a_1 Bool) (illinois.usr.e4_a_1 Bool) (illinois.usr.e5_a_1 Bool) (illinois.usr.e6_a_1 Bool) (illinois.usr.e7_a_1 Bool) (illinois.usr.e8_a_1 Bool) (illinois.usr.e9_a_1 Bool) (illinois.usr.init_invalid_a_1 Int) (illinois.res.nondet_14 Int) (illinois.res.nondet_13 Int) (illinois.res.nondet_12 Int) (illinois.res.nondet_11 Int) (illinois.res.nondet_10 Int) (illinois.res.nondet_9 Int) (illinois.res.nondet_8 Int) (illinois.res.nondet_7 Int) (illinois.res.nondet_6 Int) (illinois.res.nondet_5 Int) (illinois.res.nondet_4 Int) (illinois.res.nondet_3 Int) (illinois.res.nondet_2 Int) (illinois.res.nondet_1 Int) (illinois.res.nondet_0 Int) (illinois.usr.invalid_a_1 Int) (illinois.usr.dirty_a_1 Int) (illinois.usr.exclusive_a_1 Int) (illinois.usr.shared_a_1 Int) (illinois.res.init_flag_a_1 Bool) (illinois.usr.e1_a_0 Bool) (illinois.usr.e2_a_0 Bool) (illinois.usr.e3_a_0 Bool) (illinois.usr.e4_a_0 Bool) (illinois.usr.e5_a_0 Bool) (illinois.usr.e6_a_0 Bool) (illinois.usr.e7_a_0 Bool) (illinois.usr.e8_a_0 Bool) (illinois.usr.e9_a_0 Bool) (illinois.usr.init_invalid_a_0 Int) (illinois.usr.invalid_a_0 Int) (illinois.usr.dirty_a_0 Int) (illinois.usr.exclusive_a_0 Int) (illinois.usr.shared_a_0 Int) (illinois.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= illinois.usr.exclusive_a_0 1))) (let ((X2 (>= illinois.usr.shared_a_0 1))) (let ((X3 (>= illinois.usr.dirty_a_0 1))) (let ((X4 (>= illinois.usr.invalid_a_0 1))) (let ((X5 (>= illinois.usr.shared_a_0 1))) (let ((X6 (and (>= illinois.usr.invalid_a_0 1) (>= (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1)))) (let ((X7 (and (>= illinois.usr.invalid_a_0 1) (>= illinois.usr.dirty_a_0 1)))) (let ((X8 (and (and (and (>= illinois.usr.invalid_a_0 1) (= illinois.usr.dirty_a_0 0)) (= illinois.usr.shared_a_0 0)) (= illinois.usr.exclusive_a_0 0)))) (and (= illinois.usr.invalid_a_1 (ite illinois.usr.e1_a_1 (ite X8 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e2_a_1 (ite X7 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e3_a_1 (ite X6 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e5_a_1 (ite X5 (- (+ illinois.usr.invalid_a_0 illinois.usr.shared_a_0) 1) illinois.usr.invalid_a_0) (ite illinois.usr.e6_a_1 (ite X4 (- (+ (+ (+ illinois.usr.invalid_a_0 illinois.usr.dirty_a_0) illinois.usr.shared_a_0) illinois.usr.exclusive_a_0) 1) illinois.usr.invalid_a_0) (ite illinois.usr.e7_a_1 (ite X3 (+ illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e8_a_1 (ite X2 (+ illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e9_a_1 (ite X1 (+ illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) illinois.usr.invalid_a_0))))))))) (let ((X9 (>= illinois.usr.exclusive_a_0 1))) (and (= illinois.usr.dirty_a_1 (ite illinois.usr.e2_a_1 (ite X7 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) (ite illinois.usr.e4_a_1 (ite X9 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) (ite illinois.usr.e5_a_1 (ite X5 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) (ite illinois.usr.e6_a_1 (ite X4 1 illinois.usr.dirty_a_0) (ite illinois.usr.e7_a_1 (ite X3 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) illinois.usr.dirty_a_0)))))) (= illinois.usr.exclusive_a_1 (ite illinois.usr.e1_a_1 (ite X8 (+ illinois.usr.exclusive_a_0 1) illinois.usr.exclusive_a_0) (ite illinois.usr.e3_a_1 (ite X6 0 illinois.usr.exclusive_a_0) (ite illinois.usr.e4_a_1 (ite X9 (- illinois.usr.exclusive_a_0 1) illinois.usr.exclusive_a_0) (ite illinois.usr.e6_a_1 (ite X4 0 illinois.usr.exclusive_a_0) (ite illinois.usr.e9_a_1 (ite X1 (- illinois.usr.exclusive_a_0 1) illinois.usr.exclusive_a_0) illinois.usr.exclusive_a_0)))))) (= illinois.usr.shared_a_1 (ite illinois.usr.e2_a_1 (ite X7 (+ illinois.usr.shared_a_0 2) illinois.usr.shared_a_0) (ite illinois.usr.e3_a_1 (ite X6 (+ (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1) illinois.usr.shared_a_0) (ite illinois.usr.e5_a_1 (ite X5 0 illinois.usr.shared_a_0) (ite illinois.usr.e6_a_1 (ite X4 0 illinois.usr.shared_a_0) (ite illinois.usr.e8_a_1 (ite X2 (- illinois.usr.shared_a_0 1) illinois.usr.shared_a_0) illinois.usr.shared_a_0)))))) (not illinois.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_2_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_illinois_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_invalid_a_0 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes9_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.e9_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_2_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_illinois_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.usr.init_invalid_a_1 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes9_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_2)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_illinois_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_invalid top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes9_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.e9! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_2!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_illinois_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.usr.init_invalid! top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes9_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ILLINOIS_5_e7_692_e7_2865.sl b/benchmarks/LIA/Lustre/ILLINOIS_5_e7_692_e7_2865.sl index 1d1e6c2..0521b76 100644 --- a/benchmarks/LIA/Lustre/ILLINOIS_5_e7_692_e7_2865.sl +++ b/benchmarks/LIA/Lustre/ILLINOIS_5_e7_692_e7_2865.sl @@ -1,1259 +1,46 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes9_0 ( - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (not excludes9.usr.X1_a_0) - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - excludes9.usr.X3_a_0) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - excludes9.usr.X4_a_0) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - excludes9.usr.X5_a_0) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - excludes9.usr.X6_a_0) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - excludes9.usr.X7_a_0) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - excludes9.usr.X8_a_0) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - excludes9.usr.X9_a_0))) - excludes9.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes9_0 ( - (excludes9.usr.X1_a_1 Bool) - (excludes9.usr.X2_a_1 Bool) - (excludes9.usr.X3_a_1 Bool) - (excludes9.usr.X4_a_1 Bool) - (excludes9.usr.X5_a_1 Bool) - (excludes9.usr.X6_a_1 Bool) - (excludes9.usr.X7_a_1 Bool) - (excludes9.usr.X8_a_1 Bool) - (excludes9.usr.X9_a_1 Bool) - (excludes9.usr.excludes_a_1 Bool) - (excludes9.res.init_flag_a_1 Bool) - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (not excludes9.usr.X1_a_1) - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - excludes9.usr.X3_a_1) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - excludes9.usr.X4_a_1) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - excludes9.usr.X5_a_1) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - excludes9.usr.X6_a_1) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - excludes9.usr.X7_a_1) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - excludes9.usr.X8_a_1) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - excludes9.usr.X9_a_1))) - (not excludes9.res.init_flag_a_1)) -) - -(define-fun - __node_init_illinois_0 ( - (illinois.usr.e1_a_0 Bool) - (illinois.usr.e2_a_0 Bool) - (illinois.usr.e3_a_0 Bool) - (illinois.usr.e4_a_0 Bool) - (illinois.usr.e5_a_0 Bool) - (illinois.usr.e6_a_0 Bool) - (illinois.usr.e7_a_0 Bool) - (illinois.usr.e8_a_0 Bool) - (illinois.usr.e9_a_0 Bool) - (illinois.usr.init_invalid_a_0 Int) - (illinois.res.nondet_14 Int) - (illinois.res.nondet_13 Int) - (illinois.res.nondet_12 Int) - (illinois.res.nondet_11 Int) - (illinois.res.nondet_10 Int) - (illinois.res.nondet_9 Int) - (illinois.res.nondet_8 Int) - (illinois.res.nondet_7 Int) - (illinois.res.nondet_6 Int) - (illinois.res.nondet_5 Int) - (illinois.res.nondet_4 Int) - (illinois.res.nondet_3 Int) - (illinois.res.nondet_2 Int) - (illinois.res.nondet_1 Int) - (illinois.res.nondet_0 Int) - (illinois.usr.invalid_a_0 Int) - (illinois.usr.dirty_a_0 Int) - (illinois.usr.exclusive_a_0 Int) - (illinois.usr.shared_a_0 Int) - (illinois.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - illinois.usr.invalid_a_0 - (ite - (> illinois.usr.init_invalid_a_0 0) - illinois.usr.init_invalid_a_0 - (- 1 illinois.usr.init_invalid_a_0))) - (= illinois.usr.dirty_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int illinois.res.nondet_5) (X2 Int illinois.res.nondet_4)) - (and (>= X2 1) (>= X1 1))))) - (let - ((X2 Bool (let ((X2 Int illinois.res.nondet_9)) (>= X2 1)))) - (and - (= illinois.usr.exclusive_a_0 0) - (let - ((X3 - Bool (let - ((X3 Int illinois.res.nondet_3) - (X4 Int illinois.res.nondet_2) - (X5 Int illinois.res.nondet_1) - (X6 Int illinois.res.nondet_0)) - (and (and (and (>= X6 1) (= X5 0)) (= X4 0)) (= X3 0))))) - (and - (= illinois.usr.shared_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int illinois.res.nondet_8) - (X5 Int illinois.res.nondet_7) - (X6 Int illinois.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (let - ((X5 Bool (let ((X5 Int illinois.res.nondet_10)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int illinois.res.nondet_11)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int illinois.res.nondet_13)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int illinois.res.nondet_14)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int illinois.res.nondet_12)) (>= X9 1)))) - illinois.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_illinois_0 ( - (illinois.usr.e1_a_1 Bool) - (illinois.usr.e2_a_1 Bool) - (illinois.usr.e3_a_1 Bool) - (illinois.usr.e4_a_1 Bool) - (illinois.usr.e5_a_1 Bool) - (illinois.usr.e6_a_1 Bool) - (illinois.usr.e7_a_1 Bool) - (illinois.usr.e8_a_1 Bool) - (illinois.usr.e9_a_1 Bool) - (illinois.usr.init_invalid_a_1 Int) - (illinois.res.nondet_14 Int) - (illinois.res.nondet_13 Int) - (illinois.res.nondet_12 Int) - (illinois.res.nondet_11 Int) - (illinois.res.nondet_10 Int) - (illinois.res.nondet_9 Int) - (illinois.res.nondet_8 Int) - (illinois.res.nondet_7 Int) - (illinois.res.nondet_6 Int) - (illinois.res.nondet_5 Int) - (illinois.res.nondet_4 Int) - (illinois.res.nondet_3 Int) - (illinois.res.nondet_2 Int) - (illinois.res.nondet_1 Int) - (illinois.res.nondet_0 Int) - (illinois.usr.invalid_a_1 Int) - (illinois.usr.dirty_a_1 Int) - (illinois.usr.exclusive_a_1 Int) - (illinois.usr.shared_a_1 Int) - (illinois.res.init_flag_a_1 Bool) - (illinois.usr.e1_a_0 Bool) - (illinois.usr.e2_a_0 Bool) - (illinois.usr.e3_a_0 Bool) - (illinois.usr.e4_a_0 Bool) - (illinois.usr.e5_a_0 Bool) - (illinois.usr.e6_a_0 Bool) - (illinois.usr.e7_a_0 Bool) - (illinois.usr.e8_a_0 Bool) - (illinois.usr.e9_a_0 Bool) - (illinois.usr.init_invalid_a_0 Int) - (illinois.usr.invalid_a_0 Int) - (illinois.usr.dirty_a_0 Int) - (illinois.usr.exclusive_a_0 Int) - (illinois.usr.shared_a_0 Int) - (illinois.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= illinois.usr.exclusive_a_0 1))) - (let - ((X2 Bool (>= illinois.usr.shared_a_0 1))) - (let - ((X3 Bool (>= illinois.usr.dirty_a_0 1))) - (let - ((X4 Bool (>= illinois.usr.invalid_a_0 1))) - (let - ((X5 Bool (>= illinois.usr.shared_a_0 1))) - (let - ((X6 - Bool (and - (>= illinois.usr.invalid_a_0 1) - (>= (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1)))) - (let - ((X7 - Bool (and - (>= illinois.usr.invalid_a_0 1) - (>= illinois.usr.dirty_a_0 1)))) - (let - ((X8 - Bool (and - (and - (and - (>= illinois.usr.invalid_a_0 1) - (= illinois.usr.dirty_a_0 0)) - (= illinois.usr.shared_a_0 0)) - (= illinois.usr.exclusive_a_0 0)))) - (and - (= - illinois.usr.invalid_a_1 - (ite - illinois.usr.e1_a_1 - (ite X8 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) - (ite - illinois.usr.e2_a_1 - (ite X7 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) - (ite - illinois.usr.e3_a_1 - (ite X6 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) - (ite - illinois.usr.e5_a_1 - (ite - X5 - (- (+ illinois.usr.invalid_a_0 illinois.usr.shared_a_0) 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e6_a_1 - (ite - X4 - (- - (+ - (+ - (+ illinois.usr.invalid_a_0 illinois.usr.dirty_a_0) - illinois.usr.shared_a_0) - illinois.usr.exclusive_a_0) - 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e7_a_1 - (ite - X3 - (+ illinois.usr.invalid_a_0 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e8_a_1 - (ite - X2 - (+ illinois.usr.invalid_a_0 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e9_a_1 - (ite - X1 - (+ illinois.usr.invalid_a_0 1) - illinois.usr.invalid_a_0) - illinois.usr.invalid_a_0))))))))) - (let - ((X9 Bool (>= illinois.usr.exclusive_a_0 1))) - (and - (= - illinois.usr.dirty_a_1 - (ite - illinois.usr.e2_a_1 - (ite X7 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - (ite - illinois.usr.e4_a_1 - (ite X9 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - (ite - illinois.usr.e5_a_1 - (ite X5 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - (ite - illinois.usr.e6_a_1 - (ite X4 1 illinois.usr.dirty_a_0) - (ite - illinois.usr.e7_a_1 - (ite X3 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - illinois.usr.dirty_a_0)))))) - (= - illinois.usr.exclusive_a_1 - (ite - illinois.usr.e1_a_1 - (ite - X8 - (+ illinois.usr.exclusive_a_0 1) - illinois.usr.exclusive_a_0) - (ite - illinois.usr.e3_a_1 - (ite X6 0 illinois.usr.exclusive_a_0) - (ite - illinois.usr.e4_a_1 - (ite - X9 - (- illinois.usr.exclusive_a_0 1) - illinois.usr.exclusive_a_0) - (ite - illinois.usr.e6_a_1 - (ite X4 0 illinois.usr.exclusive_a_0) - (ite - illinois.usr.e9_a_1 - (ite - X1 - (- illinois.usr.exclusive_a_0 1) - illinois.usr.exclusive_a_0) - illinois.usr.exclusive_a_0)))))) - (= - illinois.usr.shared_a_1 - (ite - illinois.usr.e2_a_1 - (ite X7 (+ illinois.usr.shared_a_0 2) illinois.usr.shared_a_0) - (ite - illinois.usr.e3_a_1 - (ite - X6 - (+ (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1) - illinois.usr.shared_a_0) - (ite - illinois.usr.e5_a_1 - (ite X5 0 illinois.usr.shared_a_0) - (ite - illinois.usr.e6_a_1 - (ite X4 0 illinois.usr.shared_a_0) - (ite - illinois.usr.e8_a_1 - (ite X2 (- illinois.usr.shared_a_0 1) illinois.usr.shared_a_0) - illinois.usr.shared_a_0)))))) - (not illinois.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_illinois_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes9_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.e9_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_illinois_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes9_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.e9 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_2)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_illinois_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_invalid - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes9_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.e9! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_2!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_illinois_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.usr.init_invalid! - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes9_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes9_0 ((excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (not excludes9.usr.X1_a_0) (and (and (and (and (and (and (and (not excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) excludes9.usr.X3_a_0) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) excludes9.usr.X4_a_0) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) excludes9.usr.X5_a_0) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) excludes9.usr.X6_a_0) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) excludes9.usr.X7_a_0) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) excludes9.usr.X8_a_0) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) excludes9.usr.X9_a_0))) excludes9.res.init_flag_a_0)) +(define-fun __node_trans_excludes9_0 ((excludes9.usr.X1_a_1 Bool) (excludes9.usr.X2_a_1 Bool) (excludes9.usr.X3_a_1 Bool) (excludes9.usr.X4_a_1 Bool) (excludes9.usr.X5_a_1 Bool) (excludes9.usr.X6_a_1 Bool) (excludes9.usr.X7_a_1 Bool) (excludes9.usr.X8_a_1 Bool) (excludes9.usr.X9_a_1 Bool) (excludes9.usr.excludes_a_1 Bool) (excludes9.res.init_flag_a_1 Bool) (excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (not excludes9.usr.X1_a_1) (and (and (and (and (and (and (and (not excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) excludes9.usr.X3_a_1) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) excludes9.usr.X4_a_1) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) excludes9.usr.X5_a_1) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) excludes9.usr.X6_a_1) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) excludes9.usr.X7_a_1) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) excludes9.usr.X8_a_1) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) excludes9.usr.X9_a_1))) (not excludes9.res.init_flag_a_1))) +(define-fun __node_init_illinois_0 ((illinois.usr.e1_a_0 Bool) (illinois.usr.e2_a_0 Bool) (illinois.usr.e3_a_0 Bool) (illinois.usr.e4_a_0 Bool) (illinois.usr.e5_a_0 Bool) (illinois.usr.e6_a_0 Bool) (illinois.usr.e7_a_0 Bool) (illinois.usr.e8_a_0 Bool) (illinois.usr.e9_a_0 Bool) (illinois.usr.init_invalid_a_0 Int) (illinois.res.nondet_14 Int) (illinois.res.nondet_13 Int) (illinois.res.nondet_12 Int) (illinois.res.nondet_11 Int) (illinois.res.nondet_10 Int) (illinois.res.nondet_9 Int) (illinois.res.nondet_8 Int) (illinois.res.nondet_7 Int) (illinois.res.nondet_6 Int) (illinois.res.nondet_5 Int) (illinois.res.nondet_4 Int) (illinois.res.nondet_3 Int) (illinois.res.nondet_2 Int) (illinois.res.nondet_1 Int) (illinois.res.nondet_0 Int) (illinois.usr.invalid_a_0 Int) (illinois.usr.dirty_a_0 Int) (illinois.usr.exclusive_a_0 Int) (illinois.usr.shared_a_0 Int) (illinois.res.init_flag_a_0 Bool)) Bool + (and (= illinois.usr.invalid_a_0 (ite (> illinois.usr.init_invalid_a_0 0) illinois.usr.init_invalid_a_0 (- 1 illinois.usr.init_invalid_a_0))) (= illinois.usr.dirty_a_0 0) (let ((X1 (let ((X1 illinois.res.nondet_5) (X2 illinois.res.nondet_4)) (and (>= X2 1) (>= X1 1))))) (let ((X2 (let ((X2 illinois.res.nondet_9)) (>= X2 1)))) (and (= illinois.usr.exclusive_a_0 0) (let ((X3 (let ((X3 illinois.res.nondet_3) (X4 illinois.res.nondet_2) (X5 illinois.res.nondet_1) (X6 illinois.res.nondet_0)) (and (and (and (>= X6 1) (= X5 0)) (= X4 0)) (= X3 0))))) (and (= illinois.usr.shared_a_0 0) (let ((X4 (let ((X4 illinois.res.nondet_8) (X5 illinois.res.nondet_7) (X6 illinois.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (let ((X5 (let ((X5 illinois.res.nondet_10)) (>= X5 1)))) (let ((X6 (let ((X6 illinois.res.nondet_11)) (>= X6 1)))) (let ((X7 (let ((X7 illinois.res.nondet_13)) (>= X7 1)))) (let ((X8 (let ((X8 illinois.res.nondet_14)) (>= X8 1)))) (let ((X9 (let ((X9 illinois.res.nondet_12)) (>= X9 1)))) illinois.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_illinois_0 ((illinois.usr.e1_a_1 Bool) (illinois.usr.e2_a_1 Bool) (illinois.usr.e3_a_1 Bool) (illinois.usr.e4_a_1 Bool) (illinois.usr.e5_a_1 Bool) (illinois.usr.e6_a_1 Bool) (illinois.usr.e7_a_1 Bool) (illinois.usr.e8_a_1 Bool) (illinois.usr.e9_a_1 Bool) (illinois.usr.init_invalid_a_1 Int) (illinois.res.nondet_14 Int) (illinois.res.nondet_13 Int) (illinois.res.nondet_12 Int) (illinois.res.nondet_11 Int) (illinois.res.nondet_10 Int) (illinois.res.nondet_9 Int) (illinois.res.nondet_8 Int) (illinois.res.nondet_7 Int) (illinois.res.nondet_6 Int) (illinois.res.nondet_5 Int) (illinois.res.nondet_4 Int) (illinois.res.nondet_3 Int) (illinois.res.nondet_2 Int) (illinois.res.nondet_1 Int) (illinois.res.nondet_0 Int) (illinois.usr.invalid_a_1 Int) (illinois.usr.dirty_a_1 Int) (illinois.usr.exclusive_a_1 Int) (illinois.usr.shared_a_1 Int) (illinois.res.init_flag_a_1 Bool) (illinois.usr.e1_a_0 Bool) (illinois.usr.e2_a_0 Bool) (illinois.usr.e3_a_0 Bool) (illinois.usr.e4_a_0 Bool) (illinois.usr.e5_a_0 Bool) (illinois.usr.e6_a_0 Bool) (illinois.usr.e7_a_0 Bool) (illinois.usr.e8_a_0 Bool) (illinois.usr.e9_a_0 Bool) (illinois.usr.init_invalid_a_0 Int) (illinois.usr.invalid_a_0 Int) (illinois.usr.dirty_a_0 Int) (illinois.usr.exclusive_a_0 Int) (illinois.usr.shared_a_0 Int) (illinois.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= illinois.usr.exclusive_a_0 1))) (let ((X2 (>= illinois.usr.shared_a_0 1))) (let ((X3 (>= illinois.usr.dirty_a_0 1))) (let ((X4 (>= illinois.usr.invalid_a_0 1))) (let ((X5 (>= illinois.usr.shared_a_0 1))) (let ((X6 (and (>= illinois.usr.invalid_a_0 1) (>= (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1)))) (let ((X7 (and (>= illinois.usr.invalid_a_0 1) (>= illinois.usr.dirty_a_0 1)))) (let ((X8 (and (and (and (>= illinois.usr.invalid_a_0 1) (= illinois.usr.dirty_a_0 0)) (= illinois.usr.shared_a_0 0)) (= illinois.usr.exclusive_a_0 0)))) (and (= illinois.usr.invalid_a_1 (ite illinois.usr.e1_a_1 (ite X8 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e2_a_1 (ite X7 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e3_a_1 (ite X6 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e5_a_1 (ite X5 (- (+ illinois.usr.invalid_a_0 illinois.usr.shared_a_0) 1) illinois.usr.invalid_a_0) (ite illinois.usr.e6_a_1 (ite X4 (- (+ (+ (+ illinois.usr.invalid_a_0 illinois.usr.dirty_a_0) illinois.usr.shared_a_0) illinois.usr.exclusive_a_0) 1) illinois.usr.invalid_a_0) (ite illinois.usr.e7_a_1 (ite X3 (+ illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e8_a_1 (ite X2 (+ illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e9_a_1 (ite X1 (+ illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) illinois.usr.invalid_a_0))))))))) (let ((X9 (>= illinois.usr.exclusive_a_0 1))) (and (= illinois.usr.dirty_a_1 (ite illinois.usr.e2_a_1 (ite X7 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) (ite illinois.usr.e4_a_1 (ite X9 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) (ite illinois.usr.e5_a_1 (ite X5 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) (ite illinois.usr.e6_a_1 (ite X4 1 illinois.usr.dirty_a_0) (ite illinois.usr.e7_a_1 (ite X3 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) illinois.usr.dirty_a_0)))))) (= illinois.usr.exclusive_a_1 (ite illinois.usr.e1_a_1 (ite X8 (+ illinois.usr.exclusive_a_0 1) illinois.usr.exclusive_a_0) (ite illinois.usr.e3_a_1 (ite X6 0 illinois.usr.exclusive_a_0) (ite illinois.usr.e4_a_1 (ite X9 (- illinois.usr.exclusive_a_0 1) illinois.usr.exclusive_a_0) (ite illinois.usr.e6_a_1 (ite X4 0 illinois.usr.exclusive_a_0) (ite illinois.usr.e9_a_1 (ite X1 (- illinois.usr.exclusive_a_0 1) illinois.usr.exclusive_a_0) illinois.usr.exclusive_a_0)))))) (= illinois.usr.shared_a_1 (ite illinois.usr.e2_a_1 (ite X7 (+ illinois.usr.shared_a_0 2) illinois.usr.shared_a_0) (ite illinois.usr.e3_a_1 (ite X6 (+ (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1) illinois.usr.shared_a_0) (ite illinois.usr.e5_a_1 (ite X5 0 illinois.usr.shared_a_0) (ite illinois.usr.e6_a_1 (ite X4 0 illinois.usr.shared_a_0) (ite illinois.usr.e8_a_1 (ite X2 (- illinois.usr.shared_a_0 1) illinois.usr.shared_a_0) illinois.usr.shared_a_0)))))) (not illinois.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_2_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_illinois_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_invalid_a_0 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes9_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.e9_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_2_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_illinois_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.usr.init_invalid_a_1 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes9_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_2)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_illinois_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_invalid top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes9_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.e9! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_2!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_illinois_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.usr.init_invalid! top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes9_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ILLINOIS_a1.sl b/benchmarks/LIA/Lustre/ILLINOIS_a1.sl index 6afb006..df8554e 100644 --- a/benchmarks/LIA/Lustre/ILLINOIS_a1.sl +++ b/benchmarks/LIA/Lustre/ILLINOIS_a1.sl @@ -1,1277 +1,46 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes9_0 ( - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - excludes9.usr.X3_a_0) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - excludes9.usr.X4_a_0) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - excludes9.usr.X5_a_0) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - excludes9.usr.X6_a_0) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - excludes9.usr.X7_a_0) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - excludes9.usr.X8_a_0) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - excludes9.usr.X9_a_0))) - excludes9.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes9_0 ( - (excludes9.usr.X1_a_1 Bool) - (excludes9.usr.X2_a_1 Bool) - (excludes9.usr.X3_a_1 Bool) - (excludes9.usr.X4_a_1 Bool) - (excludes9.usr.X5_a_1 Bool) - (excludes9.usr.X6_a_1 Bool) - (excludes9.usr.X7_a_1 Bool) - (excludes9.usr.X8_a_1 Bool) - (excludes9.usr.X9_a_1 Bool) - (excludes9.usr.excludes_a_1 Bool) - (excludes9.res.init_flag_a_1 Bool) - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - excludes9.usr.X3_a_1) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - excludes9.usr.X4_a_1) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - excludes9.usr.X5_a_1) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - excludes9.usr.X6_a_1) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - excludes9.usr.X7_a_1) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - excludes9.usr.X8_a_1) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - excludes9.usr.X9_a_1))) - (not excludes9.res.init_flag_a_1)) -) - -(define-fun - __node_init_illinois_0 ( - (illinois.usr.e1_a_0 Bool) - (illinois.usr.e2_a_0 Bool) - (illinois.usr.e3_a_0 Bool) - (illinois.usr.e4_a_0 Bool) - (illinois.usr.e5_a_0 Bool) - (illinois.usr.e6_a_0 Bool) - (illinois.usr.e7_a_0 Bool) - (illinois.usr.e8_a_0 Bool) - (illinois.usr.e9_a_0 Bool) - (illinois.usr.init_invalid_a_0 Int) - (illinois.res.nondet_14 Int) - (illinois.res.nondet_13 Int) - (illinois.res.nondet_12 Int) - (illinois.res.nondet_11 Int) - (illinois.res.nondet_10 Int) - (illinois.res.nondet_9 Int) - (illinois.res.nondet_8 Int) - (illinois.res.nondet_7 Int) - (illinois.res.nondet_6 Int) - (illinois.res.nondet_5 Int) - (illinois.res.nondet_4 Int) - (illinois.res.nondet_3 Int) - (illinois.res.nondet_2 Int) - (illinois.res.nondet_1 Int) - (illinois.res.nondet_0 Int) - (illinois.usr.invalid_a_0 Int) - (illinois.usr.dirty_a_0 Int) - (illinois.usr.exclusive_a_0 Int) - (illinois.usr.shared_a_0 Int) - (illinois.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - illinois.usr.invalid_a_0 - (ite - (> illinois.usr.init_invalid_a_0 0) - illinois.usr.init_invalid_a_0 - (- 1 illinois.usr.init_invalid_a_0))) - (= illinois.usr.dirty_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int illinois.res.nondet_5) (X2 Int illinois.res.nondet_4)) - (and (>= X2 1) (>= X1 1))))) - (let - ((X2 Bool (let ((X2 Int illinois.res.nondet_9)) (>= X2 1)))) - (and - (= illinois.usr.exclusive_a_0 0) - (let - ((X3 - Bool (let - ((X3 Int illinois.res.nondet_3) - (X4 Int illinois.res.nondet_2) - (X5 Int illinois.res.nondet_1) - (X6 Int illinois.res.nondet_0)) - (and (and (and (>= X6 1) (= X5 0)) (= X4 0)) (= X3 0))))) - (and - (= illinois.usr.shared_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int illinois.res.nondet_8) - (X5 Int illinois.res.nondet_7) - (X6 Int illinois.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (let - ((X5 Bool (let ((X5 Int illinois.res.nondet_10)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int illinois.res.nondet_11)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int illinois.res.nondet_13)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int illinois.res.nondet_14)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int illinois.res.nondet_12)) (>= X9 1)))) - illinois.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_illinois_0 ( - (illinois.usr.e1_a_1 Bool) - (illinois.usr.e2_a_1 Bool) - (illinois.usr.e3_a_1 Bool) - (illinois.usr.e4_a_1 Bool) - (illinois.usr.e5_a_1 Bool) - (illinois.usr.e6_a_1 Bool) - (illinois.usr.e7_a_1 Bool) - (illinois.usr.e8_a_1 Bool) - (illinois.usr.e9_a_1 Bool) - (illinois.usr.init_invalid_a_1 Int) - (illinois.res.nondet_14 Int) - (illinois.res.nondet_13 Int) - (illinois.res.nondet_12 Int) - (illinois.res.nondet_11 Int) - (illinois.res.nondet_10 Int) - (illinois.res.nondet_9 Int) - (illinois.res.nondet_8 Int) - (illinois.res.nondet_7 Int) - (illinois.res.nondet_6 Int) - (illinois.res.nondet_5 Int) - (illinois.res.nondet_4 Int) - (illinois.res.nondet_3 Int) - (illinois.res.nondet_2 Int) - (illinois.res.nondet_1 Int) - (illinois.res.nondet_0 Int) - (illinois.usr.invalid_a_1 Int) - (illinois.usr.dirty_a_1 Int) - (illinois.usr.exclusive_a_1 Int) - (illinois.usr.shared_a_1 Int) - (illinois.res.init_flag_a_1 Bool) - (illinois.usr.e1_a_0 Bool) - (illinois.usr.e2_a_0 Bool) - (illinois.usr.e3_a_0 Bool) - (illinois.usr.e4_a_0 Bool) - (illinois.usr.e5_a_0 Bool) - (illinois.usr.e6_a_0 Bool) - (illinois.usr.e7_a_0 Bool) - (illinois.usr.e8_a_0 Bool) - (illinois.usr.e9_a_0 Bool) - (illinois.usr.init_invalid_a_0 Int) - (illinois.usr.invalid_a_0 Int) - (illinois.usr.dirty_a_0 Int) - (illinois.usr.exclusive_a_0 Int) - (illinois.usr.shared_a_0 Int) - (illinois.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= illinois.usr.exclusive_a_0 1))) - (let - ((X2 Bool (>= illinois.usr.shared_a_0 1))) - (let - ((X3 Bool (>= illinois.usr.dirty_a_0 1))) - (let - ((X4 Bool (>= illinois.usr.invalid_a_0 1))) - (let - ((X5 Bool (>= illinois.usr.shared_a_0 1))) - (let - ((X6 - Bool (and - (>= illinois.usr.invalid_a_0 1) - (>= (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1)))) - (let - ((X7 - Bool (and - (>= illinois.usr.invalid_a_0 1) - (>= illinois.usr.dirty_a_0 1)))) - (let - ((X8 - Bool (and - (and - (and - (>= illinois.usr.invalid_a_0 1) - (= illinois.usr.dirty_a_0 0)) - (= illinois.usr.shared_a_0 0)) - (= illinois.usr.exclusive_a_0 0)))) - (and - (= - illinois.usr.invalid_a_1 - (ite - illinois.usr.e1_a_1 - (ite X8 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) - (ite - illinois.usr.e2_a_1 - (ite X7 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) - (ite - illinois.usr.e3_a_1 - (ite X6 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) - (ite - illinois.usr.e5_a_1 - (ite - X5 - (- (+ illinois.usr.invalid_a_0 illinois.usr.shared_a_0) 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e6_a_1 - (ite - X4 - (- - (+ - (+ - (+ illinois.usr.invalid_a_0 illinois.usr.dirty_a_0) - illinois.usr.shared_a_0) - illinois.usr.exclusive_a_0) - 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e7_a_1 - (ite - X3 - (+ illinois.usr.invalid_a_0 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e8_a_1 - (ite - X2 - (+ illinois.usr.invalid_a_0 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e9_a_1 - (ite - X1 - (+ illinois.usr.invalid_a_0 1) - illinois.usr.invalid_a_0) - illinois.usr.invalid_a_0))))))))) - (let - ((X9 Bool (>= illinois.usr.exclusive_a_0 1))) - (and - (= - illinois.usr.dirty_a_1 - (ite - illinois.usr.e2_a_1 - (ite X7 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - (ite - illinois.usr.e4_a_1 - (ite X9 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - (ite - illinois.usr.e5_a_1 - (ite X5 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - (ite - illinois.usr.e6_a_1 - (ite X4 1 illinois.usr.dirty_a_0) - (ite - illinois.usr.e7_a_1 - (ite X3 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - illinois.usr.dirty_a_0)))))) - (= - illinois.usr.exclusive_a_1 - (ite - illinois.usr.e1_a_1 - (ite - X8 - (+ illinois.usr.exclusive_a_0 1) - illinois.usr.exclusive_a_0) - (ite - illinois.usr.e3_a_1 - (ite X6 0 illinois.usr.exclusive_a_0) - (ite - illinois.usr.e4_a_1 - (ite - X9 - (- illinois.usr.exclusive_a_0 1) - illinois.usr.exclusive_a_0) - (ite - illinois.usr.e6_a_1 - (ite X4 0 illinois.usr.exclusive_a_0) - (ite - illinois.usr.e9_a_1 - (ite - X1 - (- illinois.usr.exclusive_a_0 1) - illinois.usr.exclusive_a_0) - illinois.usr.exclusive_a_0)))))) - (= - illinois.usr.shared_a_1 - (ite - illinois.usr.e2_a_1 - (ite X7 (+ illinois.usr.shared_a_0 2) illinois.usr.shared_a_0) - (ite - illinois.usr.e3_a_1 - (ite - X6 - (+ (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1) - illinois.usr.shared_a_0) - (ite - illinois.usr.e5_a_1 - (ite X5 0 illinois.usr.shared_a_0) - (ite - illinois.usr.e6_a_1 - (ite X4 0 illinois.usr.shared_a_0) - (ite - illinois.usr.e8_a_1 - (ite X2 (- illinois.usr.shared_a_0 1) illinois.usr.shared_a_0) - illinois.usr.shared_a_0)))))) - (not illinois.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_5_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (let - ((X3 Bool (=> X1 (>= X2 0)))) - (let - ((X4 Bool true)) - (let - ((X5 Int top.res.abs_1_a_0)) - (let - ((X6 Bool (=> X1 (< X5 2)))) - (and - (= top.usr.OK_a_0 (and (and (and X4 X4) X3) X6)) - (__node_init_illinois_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_1_a_0) - (__node_init_excludes9_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.e9_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_5_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (let - ((X3 Bool (=> X1 (>= X2 0)))) - (let - ((X4 Bool true)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Bool (=> X1 (< X5 2)))) - (and - (= top.usr.OK_a_1 (and (and (and X4 X4) X3) X6)) - (__node_trans_illinois_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_1_a_1 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes9_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.e9 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_5)) - (let - ((X2 Int top.res.abs_2)) - (let - ((X3 Bool (=> X1 (>= X2 0)))) - (let - ((X4 Bool true)) - (let - ((X5 Int top.res.abs_1)) - (let - ((X6 Bool (=> X1 (< X5 2)))) - (and - (= top.usr.OK (and (and (and X4 X4) X3) X6)) - (__node_init_illinois_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_invalid - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_4 top.res.abs_5 top.res.inst_1) - (__node_init_excludes9_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.e9! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Bool top.res.abs_5!)) - (let - ((X2 Int top.res.abs_2!)) - (let - ((X3 Bool (=> X1 (>= X2 0)))) - (let - ((X4 Bool true)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Bool (=> X1 (< X5 2)))) - (and - (= top.usr.OK! (and (and (and X4 X4) X3) X6)) - (__node_trans_illinois_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.usr.init_invalid! - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_4! - top.res.abs_5! - top.res.inst_1! - top.res.abs_4 - top.res.abs_5 - top.res.inst_1) - (__node_trans_excludes9_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes9_0 ((excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) excludes9.usr.X3_a_0) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) excludes9.usr.X4_a_0) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) excludes9.usr.X5_a_0) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) excludes9.usr.X6_a_0) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) excludes9.usr.X7_a_0) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) excludes9.usr.X8_a_0) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) excludes9.usr.X9_a_0))) excludes9.res.init_flag_a_0)) +(define-fun __node_trans_excludes9_0 ((excludes9.usr.X1_a_1 Bool) (excludes9.usr.X2_a_1 Bool) (excludes9.usr.X3_a_1 Bool) (excludes9.usr.X4_a_1 Bool) (excludes9.usr.X5_a_1 Bool) (excludes9.usr.X6_a_1 Bool) (excludes9.usr.X7_a_1 Bool) (excludes9.usr.X8_a_1 Bool) (excludes9.usr.X9_a_1 Bool) (excludes9.usr.excludes_a_1 Bool) (excludes9.res.init_flag_a_1 Bool) (excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) excludes9.usr.X3_a_1) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) excludes9.usr.X4_a_1) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) excludes9.usr.X5_a_1) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) excludes9.usr.X6_a_1) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) excludes9.usr.X7_a_1) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) excludes9.usr.X8_a_1) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) excludes9.usr.X9_a_1))) (not excludes9.res.init_flag_a_1))) +(define-fun __node_init_illinois_0 ((illinois.usr.e1_a_0 Bool) (illinois.usr.e2_a_0 Bool) (illinois.usr.e3_a_0 Bool) (illinois.usr.e4_a_0 Bool) (illinois.usr.e5_a_0 Bool) (illinois.usr.e6_a_0 Bool) (illinois.usr.e7_a_0 Bool) (illinois.usr.e8_a_0 Bool) (illinois.usr.e9_a_0 Bool) (illinois.usr.init_invalid_a_0 Int) (illinois.res.nondet_14 Int) (illinois.res.nondet_13 Int) (illinois.res.nondet_12 Int) (illinois.res.nondet_11 Int) (illinois.res.nondet_10 Int) (illinois.res.nondet_9 Int) (illinois.res.nondet_8 Int) (illinois.res.nondet_7 Int) (illinois.res.nondet_6 Int) (illinois.res.nondet_5 Int) (illinois.res.nondet_4 Int) (illinois.res.nondet_3 Int) (illinois.res.nondet_2 Int) (illinois.res.nondet_1 Int) (illinois.res.nondet_0 Int) (illinois.usr.invalid_a_0 Int) (illinois.usr.dirty_a_0 Int) (illinois.usr.exclusive_a_0 Int) (illinois.usr.shared_a_0 Int) (illinois.res.init_flag_a_0 Bool)) Bool + (and (= illinois.usr.invalid_a_0 (ite (> illinois.usr.init_invalid_a_0 0) illinois.usr.init_invalid_a_0 (- 1 illinois.usr.init_invalid_a_0))) (= illinois.usr.dirty_a_0 0) (let ((X1 (let ((X1 illinois.res.nondet_5) (X2 illinois.res.nondet_4)) (and (>= X2 1) (>= X1 1))))) (let ((X2 (let ((X2 illinois.res.nondet_9)) (>= X2 1)))) (and (= illinois.usr.exclusive_a_0 0) (let ((X3 (let ((X3 illinois.res.nondet_3) (X4 illinois.res.nondet_2) (X5 illinois.res.nondet_1) (X6 illinois.res.nondet_0)) (and (and (and (>= X6 1) (= X5 0)) (= X4 0)) (= X3 0))))) (and (= illinois.usr.shared_a_0 0) (let ((X4 (let ((X4 illinois.res.nondet_8) (X5 illinois.res.nondet_7) (X6 illinois.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (let ((X5 (let ((X5 illinois.res.nondet_10)) (>= X5 1)))) (let ((X6 (let ((X6 illinois.res.nondet_11)) (>= X6 1)))) (let ((X7 (let ((X7 illinois.res.nondet_13)) (>= X7 1)))) (let ((X8 (let ((X8 illinois.res.nondet_14)) (>= X8 1)))) (let ((X9 (let ((X9 illinois.res.nondet_12)) (>= X9 1)))) illinois.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_illinois_0 ((illinois.usr.e1_a_1 Bool) (illinois.usr.e2_a_1 Bool) (illinois.usr.e3_a_1 Bool) (illinois.usr.e4_a_1 Bool) (illinois.usr.e5_a_1 Bool) (illinois.usr.e6_a_1 Bool) (illinois.usr.e7_a_1 Bool) (illinois.usr.e8_a_1 Bool) (illinois.usr.e9_a_1 Bool) (illinois.usr.init_invalid_a_1 Int) (illinois.res.nondet_14 Int) (illinois.res.nondet_13 Int) (illinois.res.nondet_12 Int) (illinois.res.nondet_11 Int) (illinois.res.nondet_10 Int) (illinois.res.nondet_9 Int) (illinois.res.nondet_8 Int) (illinois.res.nondet_7 Int) (illinois.res.nondet_6 Int) (illinois.res.nondet_5 Int) (illinois.res.nondet_4 Int) (illinois.res.nondet_3 Int) (illinois.res.nondet_2 Int) (illinois.res.nondet_1 Int) (illinois.res.nondet_0 Int) (illinois.usr.invalid_a_1 Int) (illinois.usr.dirty_a_1 Int) (illinois.usr.exclusive_a_1 Int) (illinois.usr.shared_a_1 Int) (illinois.res.init_flag_a_1 Bool) (illinois.usr.e1_a_0 Bool) (illinois.usr.e2_a_0 Bool) (illinois.usr.e3_a_0 Bool) (illinois.usr.e4_a_0 Bool) (illinois.usr.e5_a_0 Bool) (illinois.usr.e6_a_0 Bool) (illinois.usr.e7_a_0 Bool) (illinois.usr.e8_a_0 Bool) (illinois.usr.e9_a_0 Bool) (illinois.usr.init_invalid_a_0 Int) (illinois.usr.invalid_a_0 Int) (illinois.usr.dirty_a_0 Int) (illinois.usr.exclusive_a_0 Int) (illinois.usr.shared_a_0 Int) (illinois.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= illinois.usr.exclusive_a_0 1))) (let ((X2 (>= illinois.usr.shared_a_0 1))) (let ((X3 (>= illinois.usr.dirty_a_0 1))) (let ((X4 (>= illinois.usr.invalid_a_0 1))) (let ((X5 (>= illinois.usr.shared_a_0 1))) (let ((X6 (and (>= illinois.usr.invalid_a_0 1) (>= (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1)))) (let ((X7 (and (>= illinois.usr.invalid_a_0 1) (>= illinois.usr.dirty_a_0 1)))) (let ((X8 (and (and (and (>= illinois.usr.invalid_a_0 1) (= illinois.usr.dirty_a_0 0)) (= illinois.usr.shared_a_0 0)) (= illinois.usr.exclusive_a_0 0)))) (and (= illinois.usr.invalid_a_1 (ite illinois.usr.e1_a_1 (ite X8 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e2_a_1 (ite X7 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e3_a_1 (ite X6 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e5_a_1 (ite X5 (- (+ illinois.usr.invalid_a_0 illinois.usr.shared_a_0) 1) illinois.usr.invalid_a_0) (ite illinois.usr.e6_a_1 (ite X4 (- (+ (+ (+ illinois.usr.invalid_a_0 illinois.usr.dirty_a_0) illinois.usr.shared_a_0) illinois.usr.exclusive_a_0) 1) illinois.usr.invalid_a_0) (ite illinois.usr.e7_a_1 (ite X3 (+ illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e8_a_1 (ite X2 (+ illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e9_a_1 (ite X1 (+ illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) illinois.usr.invalid_a_0))))))))) (let ((X9 (>= illinois.usr.exclusive_a_0 1))) (and (= illinois.usr.dirty_a_1 (ite illinois.usr.e2_a_1 (ite X7 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) (ite illinois.usr.e4_a_1 (ite X9 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) (ite illinois.usr.e5_a_1 (ite X5 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) (ite illinois.usr.e6_a_1 (ite X4 1 illinois.usr.dirty_a_0) (ite illinois.usr.e7_a_1 (ite X3 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) illinois.usr.dirty_a_0)))))) (= illinois.usr.exclusive_a_1 (ite illinois.usr.e1_a_1 (ite X8 (+ illinois.usr.exclusive_a_0 1) illinois.usr.exclusive_a_0) (ite illinois.usr.e3_a_1 (ite X6 0 illinois.usr.exclusive_a_0) (ite illinois.usr.e4_a_1 (ite X9 (- illinois.usr.exclusive_a_0 1) illinois.usr.exclusive_a_0) (ite illinois.usr.e6_a_1 (ite X4 0 illinois.usr.exclusive_a_0) (ite illinois.usr.e9_a_1 (ite X1 (- illinois.usr.exclusive_a_0 1) illinois.usr.exclusive_a_0) illinois.usr.exclusive_a_0)))))) (= illinois.usr.shared_a_1 (ite illinois.usr.e2_a_1 (ite X7 (+ illinois.usr.shared_a_0 2) illinois.usr.shared_a_0) (ite illinois.usr.e3_a_1 (ite X6 (+ (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1) illinois.usr.shared_a_0) (ite illinois.usr.e5_a_1 (ite X5 0 illinois.usr.shared_a_0) (ite illinois.usr.e6_a_1 (ite X4 0 illinois.usr.shared_a_0) (ite illinois.usr.e8_a_1 (ite X2 (- illinois.usr.shared_a_0 1) illinois.usr.shared_a_0) illinois.usr.shared_a_0)))))) (not illinois.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_5_a_0)) (let ((X2 top.res.abs_2_a_0)) (let ((X3 (=> X1 (>= X2 0)))) (let ((X4 true)) (let ((X5 top.res.abs_1_a_0)) (let ((X6 (=> X1 (< X5 2)))) (and (= top.usr.OK_a_0 (and (and (and X4 X4) X3) X6)) (__node_init_illinois_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_invalid_a_0 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_1_a_0) (__node_init_excludes9_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.e9_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_5_a_1)) (let ((X2 top.res.abs_2_a_1)) (let ((X3 (=> X1 (>= X2 0)))) (let ((X4 true)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 (=> X1 (< X5 2)))) (and (= top.usr.OK_a_1 (and (and (and X4 X4) X3) X6)) (__node_trans_illinois_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.usr.init_invalid_a_1 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_1_a_1 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_1_a_0) (__node_trans_excludes9_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_5)) (let ((X2 top.res.abs_2)) (let ((X3 (=> X1 (>= X2 0)))) (let ((X4 true)) (let ((X5 top.res.abs_1)) (let ((X6 (=> X1 (< X5 2)))) (and (= top.usr.OK (and (and (and X4 X4) X3) X6)) (__node_init_illinois_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_invalid top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_4 top.res.abs_5 top.res.inst_1) (__node_init_excludes9_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_4 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.e9! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_5!)) (let ((X2 top.res.abs_2!)) (let ((X3 (=> X1 (>= X2 0)))) (let ((X4 true)) (let ((X5 top.res.abs_1!)) (let ((X6 (=> X1 (< X5 2)))) (and (= top.usr.OK! (and (and (and X4 X4) X3) X6)) (__node_trans_illinois_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.usr.init_invalid! top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_4! top.res.abs_5! top.res.inst_1! top.res.abs_4 top.res.abs_5 top.res.inst_1) (__node_trans_excludes9_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ILLINOIS_all.sl b/benchmarks/LIA/Lustre/ILLINOIS_all.sl index 6f47596..9d0786e 100644 --- a/benchmarks/LIA/Lustre/ILLINOIS_all.sl +++ b/benchmarks/LIA/Lustre/ILLINOIS_all.sl @@ -1,1390 +1,50 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes9_0 ( - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - excludes9.usr.X3_a_0) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - excludes9.usr.X4_a_0) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - excludes9.usr.X5_a_0) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - excludes9.usr.X6_a_0) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - excludes9.usr.X7_a_0) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - excludes9.usr.X8_a_0) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - excludes9.usr.X9_a_0))) - excludes9.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes9_0 ( - (excludes9.usr.X1_a_1 Bool) - (excludes9.usr.X2_a_1 Bool) - (excludes9.usr.X3_a_1 Bool) - (excludes9.usr.X4_a_1 Bool) - (excludes9.usr.X5_a_1 Bool) - (excludes9.usr.X6_a_1 Bool) - (excludes9.usr.X7_a_1 Bool) - (excludes9.usr.X8_a_1 Bool) - (excludes9.usr.X9_a_1 Bool) - (excludes9.usr.excludes_a_1 Bool) - (excludes9.res.init_flag_a_1 Bool) - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - excludes9.usr.X3_a_1) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - excludes9.usr.X4_a_1) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - excludes9.usr.X5_a_1) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - excludes9.usr.X6_a_1) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - excludes9.usr.X7_a_1) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - excludes9.usr.X8_a_1) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - excludes9.usr.X9_a_1))) - (not excludes9.res.init_flag_a_1)) -) - -(define-fun - __node_init_illinois_0 ( - (illinois.usr.e1_a_0 Bool) - (illinois.usr.e2_a_0 Bool) - (illinois.usr.e3_a_0 Bool) - (illinois.usr.e4_a_0 Bool) - (illinois.usr.e5_a_0 Bool) - (illinois.usr.e6_a_0 Bool) - (illinois.usr.e7_a_0 Bool) - (illinois.usr.e8_a_0 Bool) - (illinois.usr.e9_a_0 Bool) - (illinois.usr.init_invalid_a_0 Int) - (illinois.res.nondet_14 Int) - (illinois.res.nondet_13 Int) - (illinois.res.nondet_12 Int) - (illinois.res.nondet_11 Int) - (illinois.res.nondet_10 Int) - (illinois.res.nondet_9 Int) - (illinois.res.nondet_8 Int) - (illinois.res.nondet_7 Int) - (illinois.res.nondet_6 Int) - (illinois.res.nondet_5 Int) - (illinois.res.nondet_4 Int) - (illinois.res.nondet_3 Int) - (illinois.res.nondet_2 Int) - (illinois.res.nondet_1 Int) - (illinois.res.nondet_0 Int) - (illinois.usr.invalid_a_0 Int) - (illinois.usr.dirty_a_0 Int) - (illinois.usr.exclusive_a_0 Int) - (illinois.usr.shared_a_0 Int) - (illinois.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - illinois.usr.invalid_a_0 - (ite - (> illinois.usr.init_invalid_a_0 0) - illinois.usr.init_invalid_a_0 - (- 1 illinois.usr.init_invalid_a_0))) - (= illinois.usr.dirty_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int illinois.res.nondet_5) (X2 Int illinois.res.nondet_4)) - (and (>= X2 1) (>= X1 1))))) - (let - ((X2 Bool (let ((X2 Int illinois.res.nondet_9)) (>= X2 1)))) - (and - (= illinois.usr.exclusive_a_0 0) - (let - ((X3 - Bool (let - ((X3 Int illinois.res.nondet_3) - (X4 Int illinois.res.nondet_2) - (X5 Int illinois.res.nondet_1) - (X6 Int illinois.res.nondet_0)) - (and (and (and (>= X6 1) (= X5 0)) (= X4 0)) (= X3 0))))) - (and - (= illinois.usr.shared_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int illinois.res.nondet_8) - (X5 Int illinois.res.nondet_7) - (X6 Int illinois.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (let - ((X5 Bool (let ((X5 Int illinois.res.nondet_10)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int illinois.res.nondet_11)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int illinois.res.nondet_13)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int illinois.res.nondet_14)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int illinois.res.nondet_12)) (>= X9 1)))) - illinois.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_illinois_0 ( - (illinois.usr.e1_a_1 Bool) - (illinois.usr.e2_a_1 Bool) - (illinois.usr.e3_a_1 Bool) - (illinois.usr.e4_a_1 Bool) - (illinois.usr.e5_a_1 Bool) - (illinois.usr.e6_a_1 Bool) - (illinois.usr.e7_a_1 Bool) - (illinois.usr.e8_a_1 Bool) - (illinois.usr.e9_a_1 Bool) - (illinois.usr.init_invalid_a_1 Int) - (illinois.res.nondet_14 Int) - (illinois.res.nondet_13 Int) - (illinois.res.nondet_12 Int) - (illinois.res.nondet_11 Int) - (illinois.res.nondet_10 Int) - (illinois.res.nondet_9 Int) - (illinois.res.nondet_8 Int) - (illinois.res.nondet_7 Int) - (illinois.res.nondet_6 Int) - (illinois.res.nondet_5 Int) - (illinois.res.nondet_4 Int) - (illinois.res.nondet_3 Int) - (illinois.res.nondet_2 Int) - (illinois.res.nondet_1 Int) - (illinois.res.nondet_0 Int) - (illinois.usr.invalid_a_1 Int) - (illinois.usr.dirty_a_1 Int) - (illinois.usr.exclusive_a_1 Int) - (illinois.usr.shared_a_1 Int) - (illinois.res.init_flag_a_1 Bool) - (illinois.usr.e1_a_0 Bool) - (illinois.usr.e2_a_0 Bool) - (illinois.usr.e3_a_0 Bool) - (illinois.usr.e4_a_0 Bool) - (illinois.usr.e5_a_0 Bool) - (illinois.usr.e6_a_0 Bool) - (illinois.usr.e7_a_0 Bool) - (illinois.usr.e8_a_0 Bool) - (illinois.usr.e9_a_0 Bool) - (illinois.usr.init_invalid_a_0 Int) - (illinois.usr.invalid_a_0 Int) - (illinois.usr.dirty_a_0 Int) - (illinois.usr.exclusive_a_0 Int) - (illinois.usr.shared_a_0 Int) - (illinois.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= illinois.usr.exclusive_a_0 1))) - (let - ((X2 Bool (>= illinois.usr.shared_a_0 1))) - (let - ((X3 Bool (>= illinois.usr.dirty_a_0 1))) - (let - ((X4 Bool (>= illinois.usr.invalid_a_0 1))) - (let - ((X5 Bool (>= illinois.usr.shared_a_0 1))) - (let - ((X6 - Bool (and - (>= illinois.usr.invalid_a_0 1) - (>= (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1)))) - (let - ((X7 - Bool (and - (>= illinois.usr.invalid_a_0 1) - (>= illinois.usr.dirty_a_0 1)))) - (let - ((X8 - Bool (and - (and - (and - (>= illinois.usr.invalid_a_0 1) - (= illinois.usr.dirty_a_0 0)) - (= illinois.usr.shared_a_0 0)) - (= illinois.usr.exclusive_a_0 0)))) - (and - (= - illinois.usr.invalid_a_1 - (ite - illinois.usr.e1_a_1 - (ite X8 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) - (ite - illinois.usr.e2_a_1 - (ite X7 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) - (ite - illinois.usr.e3_a_1 - (ite X6 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) - (ite - illinois.usr.e5_a_1 - (ite - X5 - (- (+ illinois.usr.invalid_a_0 illinois.usr.shared_a_0) 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e6_a_1 - (ite - X4 - (- - (+ - (+ - (+ illinois.usr.invalid_a_0 illinois.usr.dirty_a_0) - illinois.usr.shared_a_0) - illinois.usr.exclusive_a_0) - 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e7_a_1 - (ite - X3 - (+ illinois.usr.invalid_a_0 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e8_a_1 - (ite - X2 - (+ illinois.usr.invalid_a_0 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e9_a_1 - (ite - X1 - (+ illinois.usr.invalid_a_0 1) - illinois.usr.invalid_a_0) - illinois.usr.invalid_a_0))))))))) - (let - ((X9 Bool (>= illinois.usr.exclusive_a_0 1))) - (and - (= - illinois.usr.dirty_a_1 - (ite - illinois.usr.e2_a_1 - (ite X7 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - (ite - illinois.usr.e4_a_1 - (ite X9 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - (ite - illinois.usr.e5_a_1 - (ite X5 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - (ite - illinois.usr.e6_a_1 - (ite X4 1 illinois.usr.dirty_a_0) - (ite - illinois.usr.e7_a_1 - (ite X3 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - illinois.usr.dirty_a_0)))))) - (= - illinois.usr.exclusive_a_1 - (ite - illinois.usr.e1_a_1 - (ite - X8 - (+ illinois.usr.exclusive_a_0 1) - illinois.usr.exclusive_a_0) - (ite - illinois.usr.e3_a_1 - (ite X6 0 illinois.usr.exclusive_a_0) - (ite - illinois.usr.e4_a_1 - (ite - X9 - (- illinois.usr.exclusive_a_0 1) - illinois.usr.exclusive_a_0) - (ite - illinois.usr.e6_a_1 - (ite X4 0 illinois.usr.exclusive_a_0) - (ite - illinois.usr.e9_a_1 - (ite - X1 - (- illinois.usr.exclusive_a_0 1) - illinois.usr.exclusive_a_0) - illinois.usr.exclusive_a_0)))))) - (= - illinois.usr.shared_a_1 - (ite - illinois.usr.e2_a_1 - (ite X7 (+ illinois.usr.shared_a_0 2) illinois.usr.shared_a_0) - (ite - illinois.usr.e3_a_1 - (ite - X6 - (+ (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1) - illinois.usr.shared_a_0) - (ite - illinois.usr.e5_a_1 - (ite X5 0 illinois.usr.shared_a_0) - (ite - illinois.usr.e6_a_1 - (ite X4 0 illinois.usr.shared_a_0) - (ite - illinois.usr.e8_a_1 - (ite X2 (- illinois.usr.shared_a_0 1) illinois.usr.shared_a_0) - illinois.usr.shared_a_0)))))) - (not illinois.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (> top.usr.init_invalid_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_1_a_0)) - (let - ((X5 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (and - (and (< X3 2) (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_8_a_0)) - (>= X3 0)))) - (= top.res.abs_7_a_0 (+ (+ (+ X5 X4) X3) X2)) - (__node_init_illinois_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_init_excludes9_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_a_0 - top.res.abs_8_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.e9_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (> top.usr.init_invalid_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (let - ((X3 Int top.res.abs_2_a_1)) - (let - ((X4 Int top.res.abs_1_a_1)) - (let - ((X5 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (and - (and - (and (< X3 2) (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7_a_0)) - (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_8_a_1)) - (>= X3 0)))) - (= top.res.abs_7_a_1 (+ (+ (+ X5 X4) X3) X2)) - (__node_trans_illinois_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_2_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes9_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_a_1 - top.res.abs_8_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_a_0 - top.res.abs_8_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.e9 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (> top.usr.init_invalid 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_3)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_1)) - (let - ((X5 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> - X1 - (and - (and (< X3 2) (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_8)) - (>= X3 0)))) - (= top.res.abs_7 (+ (+ (+ X5 X4) X3) X2)) - (__node_init_illinois_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_invalid - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) - (__node_init_excludes9_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_4 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid - top.res.abs_8 - top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.e9! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (> top.usr.init_invalid! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_3!)) - (let - ((X3 Int top.res.abs_2!)) - (let - ((X4 Int top.res.abs_1!)) - (let - ((X5 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> - X1 - (and - (and - (and (< X3 2) (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7)) - (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_8!)) - (>= X3 0)))) - (= top.res.abs_7! (+ (+ (+ X5 X4) X3) X2)) - (__node_trans_illinois_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.usr.init_invalid! - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_2! - top.res.abs_5 - top.res.abs_6 - top.res.inst_2) - (__node_trans_excludes9_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.res.abs_4! - top.res.inst_1! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_4 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid! - top.res.abs_8! - top.res.inst_0! - top.usr.init_invalid - top.res.abs_8 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes9_0 ((excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) excludes9.usr.X3_a_0) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) excludes9.usr.X4_a_0) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) excludes9.usr.X5_a_0) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) excludes9.usr.X6_a_0) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) excludes9.usr.X7_a_0) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) excludes9.usr.X8_a_0) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) excludes9.usr.X9_a_0))) excludes9.res.init_flag_a_0)) +(define-fun __node_trans_excludes9_0 ((excludes9.usr.X1_a_1 Bool) (excludes9.usr.X2_a_1 Bool) (excludes9.usr.X3_a_1 Bool) (excludes9.usr.X4_a_1 Bool) (excludes9.usr.X5_a_1 Bool) (excludes9.usr.X6_a_1 Bool) (excludes9.usr.X7_a_1 Bool) (excludes9.usr.X8_a_1 Bool) (excludes9.usr.X9_a_1 Bool) (excludes9.usr.excludes_a_1 Bool) (excludes9.res.init_flag_a_1 Bool) (excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) excludes9.usr.X3_a_1) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) excludes9.usr.X4_a_1) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) excludes9.usr.X5_a_1) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) excludes9.usr.X6_a_1) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) excludes9.usr.X7_a_1) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) excludes9.usr.X8_a_1) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) excludes9.usr.X9_a_1))) (not excludes9.res.init_flag_a_1))) +(define-fun __node_init_illinois_0 ((illinois.usr.e1_a_0 Bool) (illinois.usr.e2_a_0 Bool) (illinois.usr.e3_a_0 Bool) (illinois.usr.e4_a_0 Bool) (illinois.usr.e5_a_0 Bool) (illinois.usr.e6_a_0 Bool) (illinois.usr.e7_a_0 Bool) (illinois.usr.e8_a_0 Bool) (illinois.usr.e9_a_0 Bool) (illinois.usr.init_invalid_a_0 Int) (illinois.res.nondet_14 Int) (illinois.res.nondet_13 Int) (illinois.res.nondet_12 Int) (illinois.res.nondet_11 Int) (illinois.res.nondet_10 Int) (illinois.res.nondet_9 Int) (illinois.res.nondet_8 Int) (illinois.res.nondet_7 Int) (illinois.res.nondet_6 Int) (illinois.res.nondet_5 Int) (illinois.res.nondet_4 Int) (illinois.res.nondet_3 Int) (illinois.res.nondet_2 Int) (illinois.res.nondet_1 Int) (illinois.res.nondet_0 Int) (illinois.usr.invalid_a_0 Int) (illinois.usr.dirty_a_0 Int) (illinois.usr.exclusive_a_0 Int) (illinois.usr.shared_a_0 Int) (illinois.res.init_flag_a_0 Bool)) Bool + (and (= illinois.usr.invalid_a_0 (ite (> illinois.usr.init_invalid_a_0 0) illinois.usr.init_invalid_a_0 (- 1 illinois.usr.init_invalid_a_0))) (= illinois.usr.dirty_a_0 0) (let ((X1 (let ((X1 illinois.res.nondet_5) (X2 illinois.res.nondet_4)) (and (>= X2 1) (>= X1 1))))) (let ((X2 (let ((X2 illinois.res.nondet_9)) (>= X2 1)))) (and (= illinois.usr.exclusive_a_0 0) (let ((X3 (let ((X3 illinois.res.nondet_3) (X4 illinois.res.nondet_2) (X5 illinois.res.nondet_1) (X6 illinois.res.nondet_0)) (and (and (and (>= X6 1) (= X5 0)) (= X4 0)) (= X3 0))))) (and (= illinois.usr.shared_a_0 0) (let ((X4 (let ((X4 illinois.res.nondet_8) (X5 illinois.res.nondet_7) (X6 illinois.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (let ((X5 (let ((X5 illinois.res.nondet_10)) (>= X5 1)))) (let ((X6 (let ((X6 illinois.res.nondet_11)) (>= X6 1)))) (let ((X7 (let ((X7 illinois.res.nondet_13)) (>= X7 1)))) (let ((X8 (let ((X8 illinois.res.nondet_14)) (>= X8 1)))) (let ((X9 (let ((X9 illinois.res.nondet_12)) (>= X9 1)))) illinois.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_illinois_0 ((illinois.usr.e1_a_1 Bool) (illinois.usr.e2_a_1 Bool) (illinois.usr.e3_a_1 Bool) (illinois.usr.e4_a_1 Bool) (illinois.usr.e5_a_1 Bool) (illinois.usr.e6_a_1 Bool) (illinois.usr.e7_a_1 Bool) (illinois.usr.e8_a_1 Bool) (illinois.usr.e9_a_1 Bool) (illinois.usr.init_invalid_a_1 Int) (illinois.res.nondet_14 Int) (illinois.res.nondet_13 Int) (illinois.res.nondet_12 Int) (illinois.res.nondet_11 Int) (illinois.res.nondet_10 Int) (illinois.res.nondet_9 Int) (illinois.res.nondet_8 Int) (illinois.res.nondet_7 Int) (illinois.res.nondet_6 Int) (illinois.res.nondet_5 Int) (illinois.res.nondet_4 Int) (illinois.res.nondet_3 Int) (illinois.res.nondet_2 Int) (illinois.res.nondet_1 Int) (illinois.res.nondet_0 Int) (illinois.usr.invalid_a_1 Int) (illinois.usr.dirty_a_1 Int) (illinois.usr.exclusive_a_1 Int) (illinois.usr.shared_a_1 Int) (illinois.res.init_flag_a_1 Bool) (illinois.usr.e1_a_0 Bool) (illinois.usr.e2_a_0 Bool) (illinois.usr.e3_a_0 Bool) (illinois.usr.e4_a_0 Bool) (illinois.usr.e5_a_0 Bool) (illinois.usr.e6_a_0 Bool) (illinois.usr.e7_a_0 Bool) (illinois.usr.e8_a_0 Bool) (illinois.usr.e9_a_0 Bool) (illinois.usr.init_invalid_a_0 Int) (illinois.usr.invalid_a_0 Int) (illinois.usr.dirty_a_0 Int) (illinois.usr.exclusive_a_0 Int) (illinois.usr.shared_a_0 Int) (illinois.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= illinois.usr.exclusive_a_0 1))) (let ((X2 (>= illinois.usr.shared_a_0 1))) (let ((X3 (>= illinois.usr.dirty_a_0 1))) (let ((X4 (>= illinois.usr.invalid_a_0 1))) (let ((X5 (>= illinois.usr.shared_a_0 1))) (let ((X6 (and (>= illinois.usr.invalid_a_0 1) (>= (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1)))) (let ((X7 (and (>= illinois.usr.invalid_a_0 1) (>= illinois.usr.dirty_a_0 1)))) (let ((X8 (and (and (and (>= illinois.usr.invalid_a_0 1) (= illinois.usr.dirty_a_0 0)) (= illinois.usr.shared_a_0 0)) (= illinois.usr.exclusive_a_0 0)))) (and (= illinois.usr.invalid_a_1 (ite illinois.usr.e1_a_1 (ite X8 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e2_a_1 (ite X7 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e3_a_1 (ite X6 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e5_a_1 (ite X5 (- (+ illinois.usr.invalid_a_0 illinois.usr.shared_a_0) 1) illinois.usr.invalid_a_0) (ite illinois.usr.e6_a_1 (ite X4 (- (+ (+ (+ illinois.usr.invalid_a_0 illinois.usr.dirty_a_0) illinois.usr.shared_a_0) illinois.usr.exclusive_a_0) 1) illinois.usr.invalid_a_0) (ite illinois.usr.e7_a_1 (ite X3 (+ illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e8_a_1 (ite X2 (+ illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e9_a_1 (ite X1 (+ illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) illinois.usr.invalid_a_0))))))))) (let ((X9 (>= illinois.usr.exclusive_a_0 1))) (and (= illinois.usr.dirty_a_1 (ite illinois.usr.e2_a_1 (ite X7 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) (ite illinois.usr.e4_a_1 (ite X9 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) (ite illinois.usr.e5_a_1 (ite X5 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) (ite illinois.usr.e6_a_1 (ite X4 1 illinois.usr.dirty_a_0) (ite illinois.usr.e7_a_1 (ite X3 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) illinois.usr.dirty_a_0)))))) (= illinois.usr.exclusive_a_1 (ite illinois.usr.e1_a_1 (ite X8 (+ illinois.usr.exclusive_a_0 1) illinois.usr.exclusive_a_0) (ite illinois.usr.e3_a_1 (ite X6 0 illinois.usr.exclusive_a_0) (ite illinois.usr.e4_a_1 (ite X9 (- illinois.usr.exclusive_a_0 1) illinois.usr.exclusive_a_0) (ite illinois.usr.e6_a_1 (ite X4 0 illinois.usr.exclusive_a_0) (ite illinois.usr.e9_a_1 (ite X1 (- illinois.usr.exclusive_a_0 1) illinois.usr.exclusive_a_0) illinois.usr.exclusive_a_0)))))) (= illinois.usr.shared_a_1 (ite illinois.usr.e2_a_1 (ite X7 (+ illinois.usr.shared_a_0 2) illinois.usr.shared_a_0) (ite illinois.usr.e3_a_1 (ite X6 (+ (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1) illinois.usr.shared_a_0) (ite illinois.usr.e5_a_1 (ite X5 0 illinois.usr.shared_a_0) (ite illinois.usr.e6_a_1 (ite X4 0 illinois.usr.shared_a_0) (ite illinois.usr.e8_a_1 (ite X2 (- illinois.usr.shared_a_0 1) illinois.usr.shared_a_0) illinois.usr.shared_a_0)))))) (not illinois.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (> top.usr.init_invalid_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_3_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_1_a_0)) (let ((X5 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (and (< X3 2) (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_8_a_0)) (>= X3 0)))) (= top.res.abs_7_a_0 (+ (+ (+ X5 X4) X3) X2)) (__node_init_illinois_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_invalid_a_0 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_init_excludes9_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_a_0 top.res.abs_8_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.e9_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (> top.usr.init_invalid_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_3_a_1)) (let ((X3 top.res.abs_2_a_1)) (let ((X4 top.res.abs_1_a_1)) (let ((X5 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (and (and (< X3 2) (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7_a_0)) (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_8_a_1)) (>= X3 0)))) (= top.res.abs_7_a_1 (+ (+ (+ X5 X4) X3) X2)) (__node_trans_illinois_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.usr.init_invalid_a_1 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_2_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_trans_excludes9_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_a_1 top.res.abs_8_a_1 top.res.inst_0_a_1 top.usr.init_invalid_a_0 top.res.abs_8_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (> top.usr.init_invalid 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_3)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_1)) (let ((X5 top.res.abs_0)) (and (= top.usr.OK (=> X1 (and (and (< X3 2) (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_8)) (>= X3 0)))) (= top.res.abs_7 (+ (+ (+ X5 X4) X3) X2)) (__node_init_illinois_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_invalid top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_init_excludes9_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_4 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid top.res.abs_8 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.e9! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (> top.usr.init_invalid! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_3!)) (let ((X3 top.res.abs_2!)) (let ((X4 top.res.abs_1!)) (let ((X5 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (and (and (< X3 2) (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_7)) (= (+ (+ (+ X5 X4) X3) X2) top.res.abs_8!)) (>= X3 0)))) (= top.res.abs_7! (+ (+ (+ X5 X4) X3) X2)) (__node_trans_illinois_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.usr.init_invalid! top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_2! top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_trans_excludes9_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.res.abs_4! top.res.inst_1! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_4 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid! top.res.abs_8! top.res.inst_0! top.usr.init_invalid top.res.abs_8 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ILLINOIS_r4a.sl b/benchmarks/LIA/Lustre/ILLINOIS_r4a.sl index 65927f2..bfa1ede 100644 --- a/benchmarks/LIA/Lustre/ILLINOIS_r4a.sl +++ b/benchmarks/LIA/Lustre/ILLINOIS_r4a.sl @@ -1,1250 +1,46 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes9_0 ( - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - excludes9.usr.X3_a_0) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - excludes9.usr.X4_a_0) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - excludes9.usr.X5_a_0) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - excludes9.usr.X6_a_0) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - excludes9.usr.X7_a_0) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - excludes9.usr.X8_a_0) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - excludes9.usr.X9_a_0))) - excludes9.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes9_0 ( - (excludes9.usr.X1_a_1 Bool) - (excludes9.usr.X2_a_1 Bool) - (excludes9.usr.X3_a_1 Bool) - (excludes9.usr.X4_a_1 Bool) - (excludes9.usr.X5_a_1 Bool) - (excludes9.usr.X6_a_1 Bool) - (excludes9.usr.X7_a_1 Bool) - (excludes9.usr.X8_a_1 Bool) - (excludes9.usr.X9_a_1 Bool) - (excludes9.usr.excludes_a_1 Bool) - (excludes9.res.init_flag_a_1 Bool) - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - excludes9.usr.X3_a_1) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - excludes9.usr.X4_a_1) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - excludes9.usr.X5_a_1) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - excludes9.usr.X6_a_1) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - excludes9.usr.X7_a_1) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - excludes9.usr.X8_a_1) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - excludes9.usr.X9_a_1))) - (not excludes9.res.init_flag_a_1)) -) - -(define-fun - __node_init_illinois_0 ( - (illinois.usr.e1_a_0 Bool) - (illinois.usr.e2_a_0 Bool) - (illinois.usr.e3_a_0 Bool) - (illinois.usr.e4_a_0 Bool) - (illinois.usr.e5_a_0 Bool) - (illinois.usr.e6_a_0 Bool) - (illinois.usr.e7_a_0 Bool) - (illinois.usr.e8_a_0 Bool) - (illinois.usr.e9_a_0 Bool) - (illinois.usr.init_invalid_a_0 Int) - (illinois.res.nondet_14 Int) - (illinois.res.nondet_13 Int) - (illinois.res.nondet_12 Int) - (illinois.res.nondet_11 Int) - (illinois.res.nondet_10 Int) - (illinois.res.nondet_9 Int) - (illinois.res.nondet_8 Int) - (illinois.res.nondet_7 Int) - (illinois.res.nondet_6 Int) - (illinois.res.nondet_5 Int) - (illinois.res.nondet_4 Int) - (illinois.res.nondet_3 Int) - (illinois.res.nondet_2 Int) - (illinois.res.nondet_1 Int) - (illinois.res.nondet_0 Int) - (illinois.usr.invalid_a_0 Int) - (illinois.usr.dirty_a_0 Int) - (illinois.usr.exclusive_a_0 Int) - (illinois.usr.shared_a_0 Int) - (illinois.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - illinois.usr.invalid_a_0 - (ite - (> illinois.usr.init_invalid_a_0 0) - illinois.usr.init_invalid_a_0 - (- 1 illinois.usr.init_invalid_a_0))) - (= illinois.usr.dirty_a_0 0) - (let - ((X1 - Bool (let - ((X1 Int illinois.res.nondet_5) (X2 Int illinois.res.nondet_4)) - (and (>= X2 1) (>= X1 1))))) - (let - ((X2 Bool (let ((X2 Int illinois.res.nondet_9)) (>= X2 1)))) - (and - (= illinois.usr.exclusive_a_0 0) - (let - ((X3 - Bool (let - ((X3 Int illinois.res.nondet_3) - (X4 Int illinois.res.nondet_2) - (X5 Int illinois.res.nondet_1) - (X6 Int illinois.res.nondet_0)) - (and (and (and (>= X6 1) (= X5 0)) (= X4 0)) (= X3 0))))) - (and - (= illinois.usr.shared_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int illinois.res.nondet_8) - (X5 Int illinois.res.nondet_7) - (X6 Int illinois.res.nondet_6)) - (and (>= X6 1) (>= (+ X5 X4) 1))))) - (let - ((X5 Bool (let ((X5 Int illinois.res.nondet_10)) (>= X5 1)))) - (let - ((X6 Bool (let ((X6 Int illinois.res.nondet_11)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int illinois.res.nondet_13)) (>= X7 1)))) - (let - ((X8 Bool (let ((X8 Int illinois.res.nondet_14)) (>= X8 1)))) - (let - ((X9 Bool (let ((X9 Int illinois.res.nondet_12)) (>= X9 1)))) - illinois.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_illinois_0 ( - (illinois.usr.e1_a_1 Bool) - (illinois.usr.e2_a_1 Bool) - (illinois.usr.e3_a_1 Bool) - (illinois.usr.e4_a_1 Bool) - (illinois.usr.e5_a_1 Bool) - (illinois.usr.e6_a_1 Bool) - (illinois.usr.e7_a_1 Bool) - (illinois.usr.e8_a_1 Bool) - (illinois.usr.e9_a_1 Bool) - (illinois.usr.init_invalid_a_1 Int) - (illinois.res.nondet_14 Int) - (illinois.res.nondet_13 Int) - (illinois.res.nondet_12 Int) - (illinois.res.nondet_11 Int) - (illinois.res.nondet_10 Int) - (illinois.res.nondet_9 Int) - (illinois.res.nondet_8 Int) - (illinois.res.nondet_7 Int) - (illinois.res.nondet_6 Int) - (illinois.res.nondet_5 Int) - (illinois.res.nondet_4 Int) - (illinois.res.nondet_3 Int) - (illinois.res.nondet_2 Int) - (illinois.res.nondet_1 Int) - (illinois.res.nondet_0 Int) - (illinois.usr.invalid_a_1 Int) - (illinois.usr.dirty_a_1 Int) - (illinois.usr.exclusive_a_1 Int) - (illinois.usr.shared_a_1 Int) - (illinois.res.init_flag_a_1 Bool) - (illinois.usr.e1_a_0 Bool) - (illinois.usr.e2_a_0 Bool) - (illinois.usr.e3_a_0 Bool) - (illinois.usr.e4_a_0 Bool) - (illinois.usr.e5_a_0 Bool) - (illinois.usr.e6_a_0 Bool) - (illinois.usr.e7_a_0 Bool) - (illinois.usr.e8_a_0 Bool) - (illinois.usr.e9_a_0 Bool) - (illinois.usr.init_invalid_a_0 Int) - (illinois.usr.invalid_a_0 Int) - (illinois.usr.dirty_a_0 Int) - (illinois.usr.exclusive_a_0 Int) - (illinois.usr.shared_a_0 Int) - (illinois.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= illinois.usr.exclusive_a_0 1))) - (let - ((X2 Bool (>= illinois.usr.shared_a_0 1))) - (let - ((X3 Bool (>= illinois.usr.dirty_a_0 1))) - (let - ((X4 Bool (>= illinois.usr.invalid_a_0 1))) - (let - ((X5 Bool (>= illinois.usr.shared_a_0 1))) - (let - ((X6 - Bool (and - (>= illinois.usr.invalid_a_0 1) - (>= (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1)))) - (let - ((X7 - Bool (and - (>= illinois.usr.invalid_a_0 1) - (>= illinois.usr.dirty_a_0 1)))) - (let - ((X8 - Bool (and - (and - (and - (>= illinois.usr.invalid_a_0 1) - (= illinois.usr.dirty_a_0 0)) - (= illinois.usr.shared_a_0 0)) - (= illinois.usr.exclusive_a_0 0)))) - (and - (= - illinois.usr.invalid_a_1 - (ite - illinois.usr.e1_a_1 - (ite X8 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) - (ite - illinois.usr.e2_a_1 - (ite X7 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) - (ite - illinois.usr.e3_a_1 - (ite X6 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) - (ite - illinois.usr.e5_a_1 - (ite - X5 - (- (+ illinois.usr.invalid_a_0 illinois.usr.shared_a_0) 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e6_a_1 - (ite - X4 - (- - (+ - (+ - (+ illinois.usr.invalid_a_0 illinois.usr.dirty_a_0) - illinois.usr.shared_a_0) - illinois.usr.exclusive_a_0) - 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e7_a_1 - (ite - X3 - (+ illinois.usr.invalid_a_0 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e8_a_1 - (ite - X2 - (+ illinois.usr.invalid_a_0 1) - illinois.usr.invalid_a_0) - (ite - illinois.usr.e9_a_1 - (ite - X1 - (+ illinois.usr.invalid_a_0 1) - illinois.usr.invalid_a_0) - illinois.usr.invalid_a_0))))))))) - (let - ((X9 Bool (>= illinois.usr.exclusive_a_0 1))) - (and - (= - illinois.usr.dirty_a_1 - (ite - illinois.usr.e2_a_1 - (ite X7 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - (ite - illinois.usr.e4_a_1 - (ite X9 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - (ite - illinois.usr.e5_a_1 - (ite X5 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - (ite - illinois.usr.e6_a_1 - (ite X4 1 illinois.usr.dirty_a_0) - (ite - illinois.usr.e7_a_1 - (ite X3 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) - illinois.usr.dirty_a_0)))))) - (= - illinois.usr.exclusive_a_1 - (ite - illinois.usr.e1_a_1 - (ite - X8 - (+ illinois.usr.exclusive_a_0 1) - illinois.usr.exclusive_a_0) - (ite - illinois.usr.e3_a_1 - (ite X6 0 illinois.usr.exclusive_a_0) - (ite - illinois.usr.e4_a_1 - (ite - X9 - (- illinois.usr.exclusive_a_0 1) - illinois.usr.exclusive_a_0) - (ite - illinois.usr.e6_a_1 - (ite X4 0 illinois.usr.exclusive_a_0) - (ite - illinois.usr.e9_a_1 - (ite - X1 - (- illinois.usr.exclusive_a_0 1) - illinois.usr.exclusive_a_0) - illinois.usr.exclusive_a_0)))))) - (= - illinois.usr.shared_a_1 - (ite - illinois.usr.e2_a_1 - (ite X7 (+ illinois.usr.shared_a_0 2) illinois.usr.shared_a_0) - (ite - illinois.usr.e3_a_1 - (ite - X6 - (+ (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1) - illinois.usr.shared_a_0) - (ite - illinois.usr.e5_a_1 - (ite X5 0 illinois.usr.shared_a_0) - (ite - illinois.usr.e6_a_1 - (ite X4 0 illinois.usr.shared_a_0) - (ite - illinois.usr.e8_a_1 - (ite X2 (- illinois.usr.shared_a_0 1) illinois.usr.shared_a_0) - illinois.usr.shared_a_0)))))) - (not illinois.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_5_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (let - ((X3 Int top.res.abs_1_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (not (and (> X3 1) (> X2 1))))) - (__node_init_illinois_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_invalid_a_0 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_1_a_0) - (__node_init_excludes9_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.e9_a_1 Bool) - (top.usr.init_invalid_a_1 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_invalid_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_5_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (let - ((X3 Int top.res.abs_1_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (not (and (> X3 1) (> X2 1))))) - (__node_trans_illinois_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.usr.init_invalid_a_1 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_invalid_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_1_a_1 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes9_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.e9 Bool) -(declare-primed-var top.usr.init_invalid Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_5)) - (let - ((X2 Int top.res.abs_3)) - (let - ((X3 Int top.res.abs_1)) - (and - (= top.usr.OK (=> X1 (not (and (> X3 1) (> X2 1))))) - (__node_init_illinois_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_invalid - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_4 top.res.abs_5 top.res.inst_1) - (__node_init_excludes9_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.e9! Bool) - (top.usr.init_invalid! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Bool top.res.abs_5!)) - (let - ((X2 Int top.res.abs_3!)) - (let - ((X3 Int top.res.abs_1!)) - (and - (= top.usr.OK! (=> X1 (not (and (> X3 1) (> X2 1))))) - (__node_trans_illinois_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.usr.init_invalid! - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_invalid - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_4! - top.res.abs_5! - top.res.inst_1! - top.res.abs_4 - top.res.abs_5 - top.res.inst_1) - (__node_trans_excludes9_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.res.abs_4! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_invalid Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes9_0 ((excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) excludes9.usr.X3_a_0) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) excludes9.usr.X4_a_0) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) excludes9.usr.X5_a_0) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) excludes9.usr.X6_a_0) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) excludes9.usr.X7_a_0) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) excludes9.usr.X8_a_0) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) excludes9.usr.X9_a_0))) excludes9.res.init_flag_a_0)) +(define-fun __node_trans_excludes9_0 ((excludes9.usr.X1_a_1 Bool) (excludes9.usr.X2_a_1 Bool) (excludes9.usr.X3_a_1 Bool) (excludes9.usr.X4_a_1 Bool) (excludes9.usr.X5_a_1 Bool) (excludes9.usr.X6_a_1 Bool) (excludes9.usr.X7_a_1 Bool) (excludes9.usr.X8_a_1 Bool) (excludes9.usr.X9_a_1 Bool) (excludes9.usr.excludes_a_1 Bool) (excludes9.res.init_flag_a_1 Bool) (excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) excludes9.usr.X3_a_1) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) excludes9.usr.X4_a_1) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) excludes9.usr.X5_a_1) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) excludes9.usr.X6_a_1) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) excludes9.usr.X7_a_1) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) excludes9.usr.X8_a_1) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) excludes9.usr.X9_a_1))) (not excludes9.res.init_flag_a_1))) +(define-fun __node_init_illinois_0 ((illinois.usr.e1_a_0 Bool) (illinois.usr.e2_a_0 Bool) (illinois.usr.e3_a_0 Bool) (illinois.usr.e4_a_0 Bool) (illinois.usr.e5_a_0 Bool) (illinois.usr.e6_a_0 Bool) (illinois.usr.e7_a_0 Bool) (illinois.usr.e8_a_0 Bool) (illinois.usr.e9_a_0 Bool) (illinois.usr.init_invalid_a_0 Int) (illinois.res.nondet_14 Int) (illinois.res.nondet_13 Int) (illinois.res.nondet_12 Int) (illinois.res.nondet_11 Int) (illinois.res.nondet_10 Int) (illinois.res.nondet_9 Int) (illinois.res.nondet_8 Int) (illinois.res.nondet_7 Int) (illinois.res.nondet_6 Int) (illinois.res.nondet_5 Int) (illinois.res.nondet_4 Int) (illinois.res.nondet_3 Int) (illinois.res.nondet_2 Int) (illinois.res.nondet_1 Int) (illinois.res.nondet_0 Int) (illinois.usr.invalid_a_0 Int) (illinois.usr.dirty_a_0 Int) (illinois.usr.exclusive_a_0 Int) (illinois.usr.shared_a_0 Int) (illinois.res.init_flag_a_0 Bool)) Bool + (and (= illinois.usr.invalid_a_0 (ite (> illinois.usr.init_invalid_a_0 0) illinois.usr.init_invalid_a_0 (- 1 illinois.usr.init_invalid_a_0))) (= illinois.usr.dirty_a_0 0) (let ((X1 (let ((X1 illinois.res.nondet_5) (X2 illinois.res.nondet_4)) (and (>= X2 1) (>= X1 1))))) (let ((X2 (let ((X2 illinois.res.nondet_9)) (>= X2 1)))) (and (= illinois.usr.exclusive_a_0 0) (let ((X3 (let ((X3 illinois.res.nondet_3) (X4 illinois.res.nondet_2) (X5 illinois.res.nondet_1) (X6 illinois.res.nondet_0)) (and (and (and (>= X6 1) (= X5 0)) (= X4 0)) (= X3 0))))) (and (= illinois.usr.shared_a_0 0) (let ((X4 (let ((X4 illinois.res.nondet_8) (X5 illinois.res.nondet_7) (X6 illinois.res.nondet_6)) (and (>= X6 1) (>= (+ X5 X4) 1))))) (let ((X5 (let ((X5 illinois.res.nondet_10)) (>= X5 1)))) (let ((X6 (let ((X6 illinois.res.nondet_11)) (>= X6 1)))) (let ((X7 (let ((X7 illinois.res.nondet_13)) (>= X7 1)))) (let ((X8 (let ((X8 illinois.res.nondet_14)) (>= X8 1)))) (let ((X9 (let ((X9 illinois.res.nondet_12)) (>= X9 1)))) illinois.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_illinois_0 ((illinois.usr.e1_a_1 Bool) (illinois.usr.e2_a_1 Bool) (illinois.usr.e3_a_1 Bool) (illinois.usr.e4_a_1 Bool) (illinois.usr.e5_a_1 Bool) (illinois.usr.e6_a_1 Bool) (illinois.usr.e7_a_1 Bool) (illinois.usr.e8_a_1 Bool) (illinois.usr.e9_a_1 Bool) (illinois.usr.init_invalid_a_1 Int) (illinois.res.nondet_14 Int) (illinois.res.nondet_13 Int) (illinois.res.nondet_12 Int) (illinois.res.nondet_11 Int) (illinois.res.nondet_10 Int) (illinois.res.nondet_9 Int) (illinois.res.nondet_8 Int) (illinois.res.nondet_7 Int) (illinois.res.nondet_6 Int) (illinois.res.nondet_5 Int) (illinois.res.nondet_4 Int) (illinois.res.nondet_3 Int) (illinois.res.nondet_2 Int) (illinois.res.nondet_1 Int) (illinois.res.nondet_0 Int) (illinois.usr.invalid_a_1 Int) (illinois.usr.dirty_a_1 Int) (illinois.usr.exclusive_a_1 Int) (illinois.usr.shared_a_1 Int) (illinois.res.init_flag_a_1 Bool) (illinois.usr.e1_a_0 Bool) (illinois.usr.e2_a_0 Bool) (illinois.usr.e3_a_0 Bool) (illinois.usr.e4_a_0 Bool) (illinois.usr.e5_a_0 Bool) (illinois.usr.e6_a_0 Bool) (illinois.usr.e7_a_0 Bool) (illinois.usr.e8_a_0 Bool) (illinois.usr.e9_a_0 Bool) (illinois.usr.init_invalid_a_0 Int) (illinois.usr.invalid_a_0 Int) (illinois.usr.dirty_a_0 Int) (illinois.usr.exclusive_a_0 Int) (illinois.usr.shared_a_0 Int) (illinois.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= illinois.usr.exclusive_a_0 1))) (let ((X2 (>= illinois.usr.shared_a_0 1))) (let ((X3 (>= illinois.usr.dirty_a_0 1))) (let ((X4 (>= illinois.usr.invalid_a_0 1))) (let ((X5 (>= illinois.usr.shared_a_0 1))) (let ((X6 (and (>= illinois.usr.invalid_a_0 1) (>= (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1)))) (let ((X7 (and (>= illinois.usr.invalid_a_0 1) (>= illinois.usr.dirty_a_0 1)))) (let ((X8 (and (and (and (>= illinois.usr.invalid_a_0 1) (= illinois.usr.dirty_a_0 0)) (= illinois.usr.shared_a_0 0)) (= illinois.usr.exclusive_a_0 0)))) (and (= illinois.usr.invalid_a_1 (ite illinois.usr.e1_a_1 (ite X8 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e2_a_1 (ite X7 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e3_a_1 (ite X6 (- illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e5_a_1 (ite X5 (- (+ illinois.usr.invalid_a_0 illinois.usr.shared_a_0) 1) illinois.usr.invalid_a_0) (ite illinois.usr.e6_a_1 (ite X4 (- (+ (+ (+ illinois.usr.invalid_a_0 illinois.usr.dirty_a_0) illinois.usr.shared_a_0) illinois.usr.exclusive_a_0) 1) illinois.usr.invalid_a_0) (ite illinois.usr.e7_a_1 (ite X3 (+ illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e8_a_1 (ite X2 (+ illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) (ite illinois.usr.e9_a_1 (ite X1 (+ illinois.usr.invalid_a_0 1) illinois.usr.invalid_a_0) illinois.usr.invalid_a_0))))))))) (let ((X9 (>= illinois.usr.exclusive_a_0 1))) (and (= illinois.usr.dirty_a_1 (ite illinois.usr.e2_a_1 (ite X7 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) (ite illinois.usr.e4_a_1 (ite X9 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) (ite illinois.usr.e5_a_1 (ite X5 (+ illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) (ite illinois.usr.e6_a_1 (ite X4 1 illinois.usr.dirty_a_0) (ite illinois.usr.e7_a_1 (ite X3 (- illinois.usr.dirty_a_0 1) illinois.usr.dirty_a_0) illinois.usr.dirty_a_0)))))) (= illinois.usr.exclusive_a_1 (ite illinois.usr.e1_a_1 (ite X8 (+ illinois.usr.exclusive_a_0 1) illinois.usr.exclusive_a_0) (ite illinois.usr.e3_a_1 (ite X6 0 illinois.usr.exclusive_a_0) (ite illinois.usr.e4_a_1 (ite X9 (- illinois.usr.exclusive_a_0 1) illinois.usr.exclusive_a_0) (ite illinois.usr.e6_a_1 (ite X4 0 illinois.usr.exclusive_a_0) (ite illinois.usr.e9_a_1 (ite X1 (- illinois.usr.exclusive_a_0 1) illinois.usr.exclusive_a_0) illinois.usr.exclusive_a_0)))))) (= illinois.usr.shared_a_1 (ite illinois.usr.e2_a_1 (ite X7 (+ illinois.usr.shared_a_0 2) illinois.usr.shared_a_0) (ite illinois.usr.e3_a_1 (ite X6 (+ (+ illinois.usr.shared_a_0 illinois.usr.exclusive_a_0) 1) illinois.usr.shared_a_0) (ite illinois.usr.e5_a_1 (ite X5 0 illinois.usr.shared_a_0) (ite illinois.usr.e6_a_1 (ite X4 0 illinois.usr.shared_a_0) (ite illinois.usr.e8_a_1 (ite X2 (- illinois.usr.shared_a_0 1) illinois.usr.shared_a_0) illinois.usr.shared_a_0)))))) (not illinois.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_5_a_0)) (let ((X2 top.res.abs_3_a_0)) (let ((X3 top.res.abs_1_a_0)) (and (= top.usr.OK_a_0 (=> X1 (not (and (> X3 1) (> X2 1))))) (__node_init_illinois_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_invalid_a_0 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_1_a_0) (__node_init_excludes9_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.e9_a_1 Bool) (top.usr.init_invalid_a_1 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_invalid_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_5_a_1)) (let ((X2 top.res.abs_3_a_1)) (let ((X3 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (=> X1 (not (and (> X3 1) (> X2 1))))) (__node_trans_illinois_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.usr.init_invalid_a_1 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_invalid_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_1_a_1 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_1_a_0) (__node_trans_excludes9_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_5)) (let ((X2 top.res.abs_3)) (let ((X3 top.res.abs_1)) (and (= top.usr.OK (=> X1 (not (and (> X3 1) (> X2 1))))) (__node_init_illinois_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_invalid top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_4 top.res.abs_5 top.res.inst_1) (__node_init_excludes9_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.e9! Bool) (top.usr.init_invalid! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_5!)) (let ((X2 top.res.abs_3!)) (let ((X3 top.res.abs_1!)) (and (= top.usr.OK! (=> X1 (not (and (> X3 1) (> X2 1))))) (__node_trans_illinois_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.usr.init_invalid! top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_invalid top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_4! top.res.abs_5! top.res.inst_1! top.res.abs_4 top.res.abs_5 top.res.inst_1) (__node_trans_excludes9_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.res.abs_4! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_invalid Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/MESI_1.sl b/benchmarks/LIA/Lustre/MESI_1.sl index 05e3de9..d8b2167 100644 --- a/benchmarks/LIA/Lustre/MESI_1.sl +++ b/benchmarks/LIA/Lustre/MESI_1.sl @@ -1,620 +1,35 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes4_0 ( - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_0 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) - (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) - excludes4.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes4_0 ( - (excludes4.usr.X1_a_1 Bool) - (excludes4.usr.X2_a_1 Bool) - (excludes4.usr.X3_a_1 Bool) - (excludes4.usr.X4_a_1 Bool) - (excludes4.usr.excludes_a_1 Bool) - (excludes4.res.init_flag_a_1 Bool) - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_1 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) - (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) - (not excludes4.res.init_flag_a_1)) -) - -(define-fun - __node_init_mesi_0 ( - (mesi.usr.etat_me1_a_0 Bool) - (mesi.usr.etat_me2_a_0 Bool) - (mesi.usr.etat_me3_a_0 Bool) - (mesi.usr.etat_me4_a_0 Bool) - (mesi.res.nondet_3 Int) - (mesi.res.nondet_2 Int) - (mesi.res.nondet_1 Int) - (mesi.res.nondet_0 Int) - (mesi.usr.modified_me_a_0 Int) - (mesi.usr.exclusive_me_a_0 Int) - (mesi.usr.shared_me_a_0 Int) - (mesi.usr.invalid_me_a_0 Int) - (mesi.res.init_flag_a_0 Bool) - ) Bool - - (and - (= mesi.usr.modified_me_a_0 0) - (let - ((X1 Bool (let ((X1 Int mesi.res.nondet_0)) (>= X1 1)))) - (and - (= mesi.usr.invalid_me_a_0 3) - (= mesi.usr.exclusive_me_a_0 0) - (let - ((X2 Bool (let ((X2 Int mesi.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int mesi.res.nondet_2)) (>= X3 1)))) - (and - (= mesi.usr.shared_me_a_0 0) - (let - ((X4 Bool (let ((X4 Int mesi.res.nondet_3)) (>= X4 1)))) - mesi.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_mesi_0 ( - (mesi.usr.etat_me1_a_1 Bool) - (mesi.usr.etat_me2_a_1 Bool) - (mesi.usr.etat_me3_a_1 Bool) - (mesi.usr.etat_me4_a_1 Bool) - (mesi.res.nondet_3 Int) - (mesi.res.nondet_2 Int) - (mesi.res.nondet_1 Int) - (mesi.res.nondet_0 Int) - (mesi.usr.modified_me_a_1 Int) - (mesi.usr.exclusive_me_a_1 Int) - (mesi.usr.shared_me_a_1 Int) - (mesi.usr.invalid_me_a_1 Int) - (mesi.res.init_flag_a_1 Bool) - (mesi.usr.etat_me1_a_0 Bool) - (mesi.usr.etat_me2_a_0 Bool) - (mesi.usr.etat_me3_a_0 Bool) - (mesi.usr.etat_me4_a_0 Bool) - (mesi.usr.modified_me_a_0 Int) - (mesi.usr.exclusive_me_a_0 Int) - (mesi.usr.shared_me_a_0 Int) - (mesi.usr.invalid_me_a_0 Int) - (mesi.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= mesi.usr.invalid_me_a_0 1))) - (let - ((X2 Bool (>= mesi.usr.shared_me_a_0 1))) - (let - ((X3 Bool (>= mesi.usr.exclusive_me_a_0 1))) - (let - ((X4 Bool (>= mesi.usr.invalid_me_a_0 1))) - (and - (= - mesi.usr.modified_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 0 mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - (ite X3 (- mesi.usr.modified_me_a_0 1) mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me3_a_1 - (ite X2 0 mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 0 mesi.usr.modified_me_a_0) - mesi.usr.modified_me_a_0))))) - (= - mesi.usr.invalid_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 (- mesi.usr.invalid_me_a_0 1) mesi.usr.invalid_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - mesi.usr.invalid_me_a_0 - (ite - mesi.usr.etat_me3_a_1 - (ite - X2 - (- - (+ - (+ - (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) - mesi.usr.exclusive_me_a_0) - mesi.usr.shared_me_a_0) - 1) - mesi.usr.invalid_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite - X1 - (- - (+ - (+ - (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) - mesi.usr.exclusive_me_a_0) - mesi.usr.shared_me_a_0) - 1) - mesi.usr.invalid_me_a_0) - mesi.usr.invalid_me_a_0))))) - (= - mesi.usr.exclusive_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 0 mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - (ite X3 (- mesi.usr.exclusive_me_a_0 1) mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me3_a_1 - (ite X2 1 mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 1 mesi.usr.exclusive_me_a_0) - mesi.usr.exclusive_me_a_0))))) - (= - mesi.usr.shared_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite - X4 - (- - (+ - (+ mesi.usr.shared_me_a_0 mesi.usr.exclusive_me_a_0) - mesi.usr.modified_me_a_0) - 1) - mesi.usr.shared_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - mesi.usr.shared_me_a_0 - (ite - mesi.usr.etat_me3_a_1 - (ite X2 0 mesi.usr.shared_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 0 mesi.usr.shared_me_a_0) - mesi.usr.shared_me_a_0))))) - (not mesi.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.etat_me1_a_0 Bool) - (top.usr.etat_me2_a_0 Bool) - (top.usr.etat_me3_a_0 Bool) - (top.usr.etat_me4_a_0 Bool) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_0_a_0)) - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= X1 0))) - (let - ((X2 Bool top.res.abs_6_a_0)) - (and - (= top.usr.OK_a_0 (=> X2 (not (> X1 2)))) - (__node_init_mesi_0 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes4_0 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.etat_me1_a_1 Bool) - (top.usr.etat_me2_a_1 Bool) - (top.usr.etat_me3_a_1 Bool) - (top.usr.etat_me4_a_1 Bool) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.etat_me1_a_0 Bool) - (top.usr.etat_me2_a_0 Bool) - (top.usr.etat_me3_a_0 Bool) - (top.usr.etat_me4_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_0_a_1)) - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= X1 0))) - (let - ((X2 Bool top.res.abs_6_a_1)) - (and - (= top.usr.OK_a_1 (=> X2 (not (> X1 2)))) - (__node_trans_mesi_0 - top.usr.etat_me1_a_1 - top.usr.etat_me2_a_1 - top.usr.etat_me3_a_1 - top.usr.etat_me4_a_1 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes4_0 - top.usr.etat_me1_a_1 - top.usr.etat_me2_a_1 - top.usr.etat_me3_a_1 - top.usr.etat_me4_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.etat_me1 Bool) -(declare-primed-var top.usr.etat_me2 Bool) -(declare-primed-var top.usr.etat_me3 Bool) -(declare-primed-var top.usr.etat_me4 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_0)) - (and - (= top.res.abs_5 (and top.res.abs_4 (>= X1 0))) - (let - ((X2 Bool top.res.abs_6)) - (and - (= top.usr.OK (=> X2 (not (> X1 2)))) - (__node_init_mesi_0 - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes4_0 - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.etat_me1! Bool) - (top.usr.etat_me2! Bool) - (top.usr.etat_me3! Bool) - (top.usr.etat_me4! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Int top.res.abs_0!)) - (and - (= top.res.abs_5! (and top.res.abs_4! (>= X1 0))) - (let - ((X2 Bool top.res.abs_6!)) - (and - (= top.usr.OK! (=> X2 (not (> X1 2)))) - (__node_trans_mesi_0 - top.usr.etat_me1! - top.usr.etat_me2! - top.usr.etat_me3! - top.usr.etat_me4! - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes4_0 - top.usr.etat_me1! - top.usr.etat_me2! - top.usr.etat_me3! - top.usr.etat_me4! - top.res.abs_4! - top.res.inst_0! - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes4_0 ((excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_0 (not (or (or (or (or (or (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) excludes4.res.init_flag_a_0)) +(define-fun __node_trans_excludes4_0 ((excludes4.usr.X1_a_1 Bool) (excludes4.usr.X2_a_1 Bool) (excludes4.usr.X3_a_1 Bool) (excludes4.usr.X4_a_1 Bool) (excludes4.usr.excludes_a_1 Bool) (excludes4.res.init_flag_a_1 Bool) (excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_1 (not (or (or (or (or (or (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) (not excludes4.res.init_flag_a_1))) +(define-fun __node_init_mesi_0 ((mesi.usr.etat_me1_a_0 Bool) (mesi.usr.etat_me2_a_0 Bool) (mesi.usr.etat_me3_a_0 Bool) (mesi.usr.etat_me4_a_0 Bool) (mesi.res.nondet_3 Int) (mesi.res.nondet_2 Int) (mesi.res.nondet_1 Int) (mesi.res.nondet_0 Int) (mesi.usr.modified_me_a_0 Int) (mesi.usr.exclusive_me_a_0 Int) (mesi.usr.shared_me_a_0 Int) (mesi.usr.invalid_me_a_0 Int) (mesi.res.init_flag_a_0 Bool)) Bool + (and (= mesi.usr.modified_me_a_0 0) (let ((X1 (let ((X1 mesi.res.nondet_0)) (>= X1 1)))) (and (= mesi.usr.invalid_me_a_0 3) (= mesi.usr.exclusive_me_a_0 0) (let ((X2 (let ((X2 mesi.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 mesi.res.nondet_2)) (>= X3 1)))) (and (= mesi.usr.shared_me_a_0 0) (let ((X4 (let ((X4 mesi.res.nondet_3)) (>= X4 1)))) mesi.res.init_flag_a_0)))))))) +(define-fun __node_trans_mesi_0 ((mesi.usr.etat_me1_a_1 Bool) (mesi.usr.etat_me2_a_1 Bool) (mesi.usr.etat_me3_a_1 Bool) (mesi.usr.etat_me4_a_1 Bool) (mesi.res.nondet_3 Int) (mesi.res.nondet_2 Int) (mesi.res.nondet_1 Int) (mesi.res.nondet_0 Int) (mesi.usr.modified_me_a_1 Int) (mesi.usr.exclusive_me_a_1 Int) (mesi.usr.shared_me_a_1 Int) (mesi.usr.invalid_me_a_1 Int) (mesi.res.init_flag_a_1 Bool) (mesi.usr.etat_me1_a_0 Bool) (mesi.usr.etat_me2_a_0 Bool) (mesi.usr.etat_me3_a_0 Bool) (mesi.usr.etat_me4_a_0 Bool) (mesi.usr.modified_me_a_0 Int) (mesi.usr.exclusive_me_a_0 Int) (mesi.usr.shared_me_a_0 Int) (mesi.usr.invalid_me_a_0 Int) (mesi.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= mesi.usr.invalid_me_a_0 1))) (let ((X2 (>= mesi.usr.shared_me_a_0 1))) (let ((X3 (>= mesi.usr.exclusive_me_a_0 1))) (let ((X4 (>= mesi.usr.invalid_me_a_0 1))) (and (= mesi.usr.modified_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 0 mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me2_a_1 (ite X3 (- mesi.usr.modified_me_a_0 1) mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me3_a_1 (ite X2 0 mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 0 mesi.usr.modified_me_a_0) mesi.usr.modified_me_a_0))))) (= mesi.usr.invalid_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 (- mesi.usr.invalid_me_a_0 1) mesi.usr.invalid_me_a_0) (ite mesi.usr.etat_me2_a_1 mesi.usr.invalid_me_a_0 (ite mesi.usr.etat_me3_a_1 (ite X2 (- (+ (+ (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) mesi.usr.exclusive_me_a_0) mesi.usr.shared_me_a_0) 1) mesi.usr.invalid_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 (- (+ (+ (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) mesi.usr.exclusive_me_a_0) mesi.usr.shared_me_a_0) 1) mesi.usr.invalid_me_a_0) mesi.usr.invalid_me_a_0))))) (= mesi.usr.exclusive_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 0 mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me2_a_1 (ite X3 (- mesi.usr.exclusive_me_a_0 1) mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me3_a_1 (ite X2 1 mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 1 mesi.usr.exclusive_me_a_0) mesi.usr.exclusive_me_a_0))))) (= mesi.usr.shared_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 (- (+ (+ mesi.usr.shared_me_a_0 mesi.usr.exclusive_me_a_0) mesi.usr.modified_me_a_0) 1) mesi.usr.shared_me_a_0) (ite mesi.usr.etat_me2_a_1 mesi.usr.shared_me_a_0 (ite mesi.usr.etat_me3_a_1 (ite X2 0 mesi.usr.shared_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 0 mesi.usr.shared_me_a_0) mesi.usr.shared_me_a_0))))) (not mesi.res.init_flag_a_1))))))) +(define-fun __node_init_top_0 ((top.usr.etat_me1_a_0 Bool) (top.usr.etat_me2_a_0 Bool) (top.usr.etat_me3_a_0 Bool) (top.usr.etat_me4_a_0 Bool) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_0)) (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= X1 0))) (let ((X2 top.res.abs_6_a_0)) (and (= top.usr.OK_a_0 (=> X2 (not (> X1 2)))) (__node_init_mesi_0 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes4_0 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.etat_me1_a_1 Bool) (top.usr.etat_me2_a_1 Bool) (top.usr.etat_me3_a_1 Bool) (top.usr.etat_me4_a_1 Bool) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.etat_me1_a_0 Bool) (top.usr.etat_me2_a_0 Bool) (top.usr.etat_me3_a_0 Bool) (top.usr.etat_me4_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_1)) (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= X1 0))) (let ((X2 top.res.abs_6_a_1)) (and (= top.usr.OK_a_1 (=> X2 (not (> X1 2)))) (__node_trans_mesi_0 top.usr.etat_me1_a_1 top.usr.etat_me2_a_1 top.usr.etat_me3_a_1 top.usr.etat_me4_a_1 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes4_0 top.usr.etat_me1_a_1 top.usr.etat_me2_a_1 top.usr.etat_me3_a_1 top.usr.etat_me4_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_0)) (and (= top.res.abs_5 (and top.res.abs_4 (>= X1 0))) (let ((X2 top.res.abs_6)) (and (= top.usr.OK (=> X2 (not (> X1 2)))) (__node_init_mesi_0 top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes4_0 top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.etat_me1! Bool) (top.usr.etat_me2! Bool) (top.usr.etat_me3! Bool) (top.usr.etat_me4! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_0!)) (and (= top.res.abs_5! (and top.res.abs_4! (>= X1 0))) (let ((X2 top.res.abs_6!)) (and (= top.usr.OK! (=> X2 (not (> X1 2)))) (__node_trans_mesi_0 top.usr.etat_me1! top.usr.etat_me2! top.usr.etat_me3! top.usr.etat_me4! top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_2! top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes4_0 top.usr.etat_me1! top.usr.etat_me2! top.usr.etat_me3! top.usr.etat_me4! top.res.abs_4! top.res.inst_0! top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/MESI_1_e2_162_e7_1545.sl b/benchmarks/LIA/Lustre/MESI_1_e2_162_e7_1545.sl index 72d63a2..5356fe7 100644 --- a/benchmarks/LIA/Lustre/MESI_1_e2_162_e7_1545.sl +++ b/benchmarks/LIA/Lustre/MESI_1_e2_162_e7_1545.sl @@ -1,620 +1,35 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes4_0 ( - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_0 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) - (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) - excludes4.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes4_0 ( - (excludes4.usr.X1_a_1 Bool) - (excludes4.usr.X2_a_1 Bool) - (excludes4.usr.X3_a_1 Bool) - (excludes4.usr.X4_a_1 Bool) - (excludes4.usr.excludes_a_1 Bool) - (excludes4.res.init_flag_a_1 Bool) - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_1 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) - (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) - (not excludes4.res.init_flag_a_1)) -) - -(define-fun - __node_init_mesi_0 ( - (mesi.usr.etat_me1_a_0 Bool) - (mesi.usr.etat_me2_a_0 Bool) - (mesi.usr.etat_me3_a_0 Bool) - (mesi.usr.etat_me4_a_0 Bool) - (mesi.res.nondet_3 Int) - (mesi.res.nondet_2 Int) - (mesi.res.nondet_1 Int) - (mesi.res.nondet_0 Int) - (mesi.usr.modified_me_a_0 Int) - (mesi.usr.exclusive_me_a_0 Int) - (mesi.usr.shared_me_a_0 Int) - (mesi.usr.invalid_me_a_0 Int) - (mesi.res.init_flag_a_0 Bool) - ) Bool - - (and - (= mesi.usr.modified_me_a_0 0) - (let - ((X1 Bool (let ((X1 Int mesi.res.nondet_0)) (>= X1 1)))) - (and - (= mesi.usr.invalid_me_a_0 3) - (= mesi.usr.exclusive_me_a_0 0) - (let - ((X2 Bool (let ((X2 Int mesi.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int mesi.res.nondet_2)) (>= X3 1)))) - (and - (= mesi.usr.shared_me_a_0 0) - (let - ((X4 Bool (let ((X4 Int mesi.res.nondet_3)) (>= X4 1)))) - mesi.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_mesi_0 ( - (mesi.usr.etat_me1_a_1 Bool) - (mesi.usr.etat_me2_a_1 Bool) - (mesi.usr.etat_me3_a_1 Bool) - (mesi.usr.etat_me4_a_1 Bool) - (mesi.res.nondet_3 Int) - (mesi.res.nondet_2 Int) - (mesi.res.nondet_1 Int) - (mesi.res.nondet_0 Int) - (mesi.usr.modified_me_a_1 Int) - (mesi.usr.exclusive_me_a_1 Int) - (mesi.usr.shared_me_a_1 Int) - (mesi.usr.invalid_me_a_1 Int) - (mesi.res.init_flag_a_1 Bool) - (mesi.usr.etat_me1_a_0 Bool) - (mesi.usr.etat_me2_a_0 Bool) - (mesi.usr.etat_me3_a_0 Bool) - (mesi.usr.etat_me4_a_0 Bool) - (mesi.usr.modified_me_a_0 Int) - (mesi.usr.exclusive_me_a_0 Int) - (mesi.usr.shared_me_a_0 Int) - (mesi.usr.invalid_me_a_0 Int) - (mesi.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= mesi.usr.invalid_me_a_0 1))) - (let - ((X2 Bool (>= mesi.usr.shared_me_a_0 1))) - (let - ((X3 Bool (>= mesi.usr.exclusive_me_a_0 1))) - (let - ((X4 Bool (>= mesi.usr.invalid_me_a_0 1))) - (and - (= - mesi.usr.modified_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 0 mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - (ite X3 (- mesi.usr.modified_me_a_0 1) mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me3_a_1 - (ite X2 0 mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 0 mesi.usr.modified_me_a_0) - mesi.usr.modified_me_a_0))))) - (= - mesi.usr.invalid_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 (- mesi.usr.invalid_me_a_0 1) mesi.usr.invalid_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - mesi.usr.invalid_me_a_0 - (ite - mesi.usr.etat_me3_a_1 - (ite - X2 - (- - (+ - (+ - (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) - mesi.usr.exclusive_me_a_0) - mesi.usr.shared_me_a_0) - 1) - mesi.usr.invalid_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite - X1 - (- - (+ - (+ - (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) - mesi.usr.exclusive_me_a_0) - mesi.usr.shared_me_a_0) - 1) - mesi.usr.invalid_me_a_0) - mesi.usr.invalid_me_a_0))))) - (= - mesi.usr.exclusive_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 0 mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - (ite X3 (- mesi.usr.exclusive_me_a_0 1) mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me3_a_1 - (ite X2 1 mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 1 mesi.usr.exclusive_me_a_0) - mesi.usr.exclusive_me_a_0))))) - (= - mesi.usr.shared_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite - X4 - (- - (+ - (+ (- mesi.usr.shared_me_a_0 1) mesi.usr.exclusive_me_a_0) - mesi.usr.modified_me_a_0) - 1) - mesi.usr.shared_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - mesi.usr.shared_me_a_0 - (ite - mesi.usr.etat_me3_a_1 - (ite X2 0 mesi.usr.shared_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 0 mesi.usr.shared_me_a_0) - mesi.usr.shared_me_a_0))))) - (not mesi.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.etat_me1_a_0 Bool) - (top.usr.etat_me2_a_0 Bool) - (top.usr.etat_me3_a_0 Bool) - (top.usr.etat_me4_a_0 Bool) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_0_a_0)) - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= X1 0))) - (let - ((X2 Bool top.res.abs_6_a_0)) - (and - (= top.usr.OK_a_0 (=> X2 (not (> X1 2)))) - (__node_init_mesi_0 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes4_0 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.etat_me1_a_1 Bool) - (top.usr.etat_me2_a_1 Bool) - (top.usr.etat_me3_a_1 Bool) - (top.usr.etat_me4_a_1 Bool) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.etat_me1_a_0 Bool) - (top.usr.etat_me2_a_0 Bool) - (top.usr.etat_me3_a_0 Bool) - (top.usr.etat_me4_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_0_a_1)) - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= X1 0))) - (let - ((X2 Bool top.res.abs_6_a_1)) - (and - (= top.usr.OK_a_1 (=> X2 (not (> X1 2)))) - (__node_trans_mesi_0 - top.usr.etat_me1_a_1 - top.usr.etat_me2_a_1 - top.usr.etat_me3_a_1 - top.usr.etat_me4_a_1 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes4_0 - top.usr.etat_me1_a_1 - top.usr.etat_me2_a_1 - top.usr.etat_me3_a_1 - top.usr.etat_me4_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.etat_me1 Bool) -(declare-primed-var top.usr.etat_me2 Bool) -(declare-primed-var top.usr.etat_me3 Bool) -(declare-primed-var top.usr.etat_me4 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_0)) - (and - (= top.res.abs_5 (and top.res.abs_4 (>= X1 0))) - (let - ((X2 Bool top.res.abs_6)) - (and - (= top.usr.OK (=> X2 (not (> X1 2)))) - (__node_init_mesi_0 - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes4_0 - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.etat_me1! Bool) - (top.usr.etat_me2! Bool) - (top.usr.etat_me3! Bool) - (top.usr.etat_me4! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Int top.res.abs_0!)) - (and - (= top.res.abs_5! (and top.res.abs_4! (>= X1 0))) - (let - ((X2 Bool top.res.abs_6!)) - (and - (= top.usr.OK! (=> X2 (not (> X1 2)))) - (__node_trans_mesi_0 - top.usr.etat_me1! - top.usr.etat_me2! - top.usr.etat_me3! - top.usr.etat_me4! - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes4_0 - top.usr.etat_me1! - top.usr.etat_me2! - top.usr.etat_me3! - top.usr.etat_me4! - top.res.abs_4! - top.res.inst_0! - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes4_0 ((excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_0 (not (or (or (or (or (or (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) excludes4.res.init_flag_a_0)) +(define-fun __node_trans_excludes4_0 ((excludes4.usr.X1_a_1 Bool) (excludes4.usr.X2_a_1 Bool) (excludes4.usr.X3_a_1 Bool) (excludes4.usr.X4_a_1 Bool) (excludes4.usr.excludes_a_1 Bool) (excludes4.res.init_flag_a_1 Bool) (excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_1 (not (or (or (or (or (or (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) (not excludes4.res.init_flag_a_1))) +(define-fun __node_init_mesi_0 ((mesi.usr.etat_me1_a_0 Bool) (mesi.usr.etat_me2_a_0 Bool) (mesi.usr.etat_me3_a_0 Bool) (mesi.usr.etat_me4_a_0 Bool) (mesi.res.nondet_3 Int) (mesi.res.nondet_2 Int) (mesi.res.nondet_1 Int) (mesi.res.nondet_0 Int) (mesi.usr.modified_me_a_0 Int) (mesi.usr.exclusive_me_a_0 Int) (mesi.usr.shared_me_a_0 Int) (mesi.usr.invalid_me_a_0 Int) (mesi.res.init_flag_a_0 Bool)) Bool + (and (= mesi.usr.modified_me_a_0 0) (let ((X1 (let ((X1 mesi.res.nondet_0)) (>= X1 1)))) (and (= mesi.usr.invalid_me_a_0 3) (= mesi.usr.exclusive_me_a_0 0) (let ((X2 (let ((X2 mesi.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 mesi.res.nondet_2)) (>= X3 1)))) (and (= mesi.usr.shared_me_a_0 0) (let ((X4 (let ((X4 mesi.res.nondet_3)) (>= X4 1)))) mesi.res.init_flag_a_0)))))))) +(define-fun __node_trans_mesi_0 ((mesi.usr.etat_me1_a_1 Bool) (mesi.usr.etat_me2_a_1 Bool) (mesi.usr.etat_me3_a_1 Bool) (mesi.usr.etat_me4_a_1 Bool) (mesi.res.nondet_3 Int) (mesi.res.nondet_2 Int) (mesi.res.nondet_1 Int) (mesi.res.nondet_0 Int) (mesi.usr.modified_me_a_1 Int) (mesi.usr.exclusive_me_a_1 Int) (mesi.usr.shared_me_a_1 Int) (mesi.usr.invalid_me_a_1 Int) (mesi.res.init_flag_a_1 Bool) (mesi.usr.etat_me1_a_0 Bool) (mesi.usr.etat_me2_a_0 Bool) (mesi.usr.etat_me3_a_0 Bool) (mesi.usr.etat_me4_a_0 Bool) (mesi.usr.modified_me_a_0 Int) (mesi.usr.exclusive_me_a_0 Int) (mesi.usr.shared_me_a_0 Int) (mesi.usr.invalid_me_a_0 Int) (mesi.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= mesi.usr.invalid_me_a_0 1))) (let ((X2 (>= mesi.usr.shared_me_a_0 1))) (let ((X3 (>= mesi.usr.exclusive_me_a_0 1))) (let ((X4 (>= mesi.usr.invalid_me_a_0 1))) (and (= mesi.usr.modified_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 0 mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me2_a_1 (ite X3 (- mesi.usr.modified_me_a_0 1) mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me3_a_1 (ite X2 0 mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 0 mesi.usr.modified_me_a_0) mesi.usr.modified_me_a_0))))) (= mesi.usr.invalid_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 (- mesi.usr.invalid_me_a_0 1) mesi.usr.invalid_me_a_0) (ite mesi.usr.etat_me2_a_1 mesi.usr.invalid_me_a_0 (ite mesi.usr.etat_me3_a_1 (ite X2 (- (+ (+ (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) mesi.usr.exclusive_me_a_0) mesi.usr.shared_me_a_0) 1) mesi.usr.invalid_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 (- (+ (+ (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) mesi.usr.exclusive_me_a_0) mesi.usr.shared_me_a_0) 1) mesi.usr.invalid_me_a_0) mesi.usr.invalid_me_a_0))))) (= mesi.usr.exclusive_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 0 mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me2_a_1 (ite X3 (- mesi.usr.exclusive_me_a_0 1) mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me3_a_1 (ite X2 1 mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 1 mesi.usr.exclusive_me_a_0) mesi.usr.exclusive_me_a_0))))) (= mesi.usr.shared_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 (- (+ (+ (- mesi.usr.shared_me_a_0 1) mesi.usr.exclusive_me_a_0) mesi.usr.modified_me_a_0) 1) mesi.usr.shared_me_a_0) (ite mesi.usr.etat_me2_a_1 mesi.usr.shared_me_a_0 (ite mesi.usr.etat_me3_a_1 (ite X2 0 mesi.usr.shared_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 0 mesi.usr.shared_me_a_0) mesi.usr.shared_me_a_0))))) (not mesi.res.init_flag_a_1))))))) +(define-fun __node_init_top_0 ((top.usr.etat_me1_a_0 Bool) (top.usr.etat_me2_a_0 Bool) (top.usr.etat_me3_a_0 Bool) (top.usr.etat_me4_a_0 Bool) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_0)) (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= X1 0))) (let ((X2 top.res.abs_6_a_0)) (and (= top.usr.OK_a_0 (=> X2 (not (> X1 2)))) (__node_init_mesi_0 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes4_0 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.etat_me1_a_1 Bool) (top.usr.etat_me2_a_1 Bool) (top.usr.etat_me3_a_1 Bool) (top.usr.etat_me4_a_1 Bool) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.etat_me1_a_0 Bool) (top.usr.etat_me2_a_0 Bool) (top.usr.etat_me3_a_0 Bool) (top.usr.etat_me4_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_1)) (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= X1 0))) (let ((X2 top.res.abs_6_a_1)) (and (= top.usr.OK_a_1 (=> X2 (not (> X1 2)))) (__node_trans_mesi_0 top.usr.etat_me1_a_1 top.usr.etat_me2_a_1 top.usr.etat_me3_a_1 top.usr.etat_me4_a_1 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes4_0 top.usr.etat_me1_a_1 top.usr.etat_me2_a_1 top.usr.etat_me3_a_1 top.usr.etat_me4_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_0)) (and (= top.res.abs_5 (and top.res.abs_4 (>= X1 0))) (let ((X2 top.res.abs_6)) (and (= top.usr.OK (=> X2 (not (> X1 2)))) (__node_init_mesi_0 top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes4_0 top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.etat_me1! Bool) (top.usr.etat_me2! Bool) (top.usr.etat_me3! Bool) (top.usr.etat_me4! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_0!)) (and (= top.res.abs_5! (and top.res.abs_4! (>= X1 0))) (let ((X2 top.res.abs_6!)) (and (= top.usr.OK! (=> X2 (not (> X1 2)))) (__node_trans_mesi_0 top.usr.etat_me1! top.usr.etat_me2! top.usr.etat_me3! top.usr.etat_me4! top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_2! top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes4_0 top.usr.etat_me1! top.usr.etat_me2! top.usr.etat_me3! top.usr.etat_me4! top.res.abs_4! top.res.inst_0! top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/MESI_2.sl b/benchmarks/LIA/Lustre/MESI_2.sl index 2a011dc..186e5ac 100644 --- a/benchmarks/LIA/Lustre/MESI_2.sl +++ b/benchmarks/LIA/Lustre/MESI_2.sl @@ -1,603 +1,35 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes4_0 ( - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_0 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) - (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) - excludes4.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes4_0 ( - (excludes4.usr.X1_a_1 Bool) - (excludes4.usr.X2_a_1 Bool) - (excludes4.usr.X3_a_1 Bool) - (excludes4.usr.X4_a_1 Bool) - (excludes4.usr.excludes_a_1 Bool) - (excludes4.res.init_flag_a_1 Bool) - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_1 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) - (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) - (not excludes4.res.init_flag_a_1)) -) - -(define-fun - __node_init_mesi_0 ( - (mesi.usr.etat_me1_a_0 Bool) - (mesi.usr.etat_me2_a_0 Bool) - (mesi.usr.etat_me3_a_0 Bool) - (mesi.usr.etat_me4_a_0 Bool) - (mesi.res.nondet_3 Int) - (mesi.res.nondet_2 Int) - (mesi.res.nondet_1 Int) - (mesi.res.nondet_0 Int) - (mesi.usr.modified_me_a_0 Int) - (mesi.usr.exclusive_me_a_0 Int) - (mesi.usr.shared_me_a_0 Int) - (mesi.usr.invalid_me_a_0 Int) - (mesi.res.init_flag_a_0 Bool) - ) Bool - - (and - (= mesi.usr.modified_me_a_0 0) - (let - ((X1 Bool (let ((X1 Int mesi.res.nondet_0)) (>= X1 1)))) - (and - (= mesi.usr.invalid_me_a_0 3) - (= mesi.usr.exclusive_me_a_0 0) - (let - ((X2 Bool (let ((X2 Int mesi.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int mesi.res.nondet_2)) (>= X3 1)))) - (and - (= mesi.usr.shared_me_a_0 0) - (let - ((X4 Bool (let ((X4 Int mesi.res.nondet_3)) (>= X4 1)))) - mesi.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_mesi_0 ( - (mesi.usr.etat_me1_a_1 Bool) - (mesi.usr.etat_me2_a_1 Bool) - (mesi.usr.etat_me3_a_1 Bool) - (mesi.usr.etat_me4_a_1 Bool) - (mesi.res.nondet_3 Int) - (mesi.res.nondet_2 Int) - (mesi.res.nondet_1 Int) - (mesi.res.nondet_0 Int) - (mesi.usr.modified_me_a_1 Int) - (mesi.usr.exclusive_me_a_1 Int) - (mesi.usr.shared_me_a_1 Int) - (mesi.usr.invalid_me_a_1 Int) - (mesi.res.init_flag_a_1 Bool) - (mesi.usr.etat_me1_a_0 Bool) - (mesi.usr.etat_me2_a_0 Bool) - (mesi.usr.etat_me3_a_0 Bool) - (mesi.usr.etat_me4_a_0 Bool) - (mesi.usr.modified_me_a_0 Int) - (mesi.usr.exclusive_me_a_0 Int) - (mesi.usr.shared_me_a_0 Int) - (mesi.usr.invalid_me_a_0 Int) - (mesi.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= mesi.usr.invalid_me_a_0 1))) - (let - ((X2 Bool (>= mesi.usr.shared_me_a_0 1))) - (let - ((X3 Bool (>= mesi.usr.exclusive_me_a_0 1))) - (let - ((X4 Bool (>= mesi.usr.invalid_me_a_0 1))) - (and - (= - mesi.usr.modified_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 0 mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - (ite X3 (- mesi.usr.modified_me_a_0 1) mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me3_a_1 - (ite X2 0 mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 0 mesi.usr.modified_me_a_0) - mesi.usr.modified_me_a_0))))) - (= - mesi.usr.invalid_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 (- mesi.usr.invalid_me_a_0 1) mesi.usr.invalid_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - mesi.usr.invalid_me_a_0 - (ite - mesi.usr.etat_me3_a_1 - (ite - X2 - (- - (+ - (+ - (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) - mesi.usr.exclusive_me_a_0) - mesi.usr.shared_me_a_0) - 1) - mesi.usr.invalid_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite - X1 - (- - (+ - (+ - (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) - mesi.usr.exclusive_me_a_0) - mesi.usr.shared_me_a_0) - 1) - mesi.usr.invalid_me_a_0) - mesi.usr.invalid_me_a_0))))) - (= - mesi.usr.exclusive_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 0 mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - (ite X3 (- mesi.usr.exclusive_me_a_0 1) mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me3_a_1 - (ite X2 1 mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 1 mesi.usr.exclusive_me_a_0) - mesi.usr.exclusive_me_a_0))))) - (= - mesi.usr.shared_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite - X4 - (- - (+ - (+ mesi.usr.shared_me_a_0 mesi.usr.exclusive_me_a_0) - mesi.usr.modified_me_a_0) - 1) - mesi.usr.shared_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - mesi.usr.shared_me_a_0 - (ite - mesi.usr.etat_me3_a_1 - (ite X2 0 mesi.usr.shared_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 0 mesi.usr.shared_me_a_0) - mesi.usr.shared_me_a_0))))) - (not mesi.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.etat_me1_a_0 Bool) - (top.usr.etat_me2_a_0 Bool) - (top.usr.etat_me3_a_0 Bool) - (top.usr.etat_me4_a_0 Bool) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_5_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_mesi_0 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_1_a_0) - (__node_init_excludes4_0 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.etat_me1_a_1 Bool) - (top.usr.etat_me2_a_1 Bool) - (top.usr.etat_me3_a_1 Bool) - (top.usr.etat_me4_a_1 Bool) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.etat_me1_a_0 Bool) - (top.usr.etat_me2_a_0 Bool) - (top.usr.etat_me3_a_0 Bool) - (top.usr.etat_me4_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_5_a_1)) - (let - ((X2 Int top.res.abs_1_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_mesi_0 - top.usr.etat_me1_a_1 - top.usr.etat_me2_a_1 - top.usr.etat_me3_a_1 - top.usr.etat_me4_a_1 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_1_a_1 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes4_0 - top.usr.etat_me1_a_1 - top.usr.etat_me2_a_1 - top.usr.etat_me3_a_1 - top.usr.etat_me4_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.etat_me1 Bool) -(declare-primed-var top.usr.etat_me2 Bool) -(declare-primed-var top.usr.etat_me3 Bool) -(declare-primed-var top.usr.etat_me4 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_5)) - (let - ((X2 Int top.res.abs_1)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_mesi_0 - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_4 top.res.abs_5 top.res.inst_1) - (__node_init_excludes4_0 - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.etat_me1! Bool) - (top.usr.etat_me2! Bool) - (top.usr.etat_me3! Bool) - (top.usr.etat_me4! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Bool top.res.abs_5!)) - (let - ((X2 Int top.res.abs_1!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_mesi_0 - top.usr.etat_me1! - top.usr.etat_me2! - top.usr.etat_me3! - top.usr.etat_me4! - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_4! - top.res.abs_5! - top.res.inst_1! - top.res.abs_4 - top.res.abs_5 - top.res.inst_1) - (__node_trans_excludes4_0 - top.usr.etat_me1! - top.usr.etat_me2! - top.usr.etat_me3! - top.usr.etat_me4! - top.res.abs_4! - top.res.inst_0! - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!)))) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes4_0 ((excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_0 (not (or (or (or (or (or (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) excludes4.res.init_flag_a_0)) +(define-fun __node_trans_excludes4_0 ((excludes4.usr.X1_a_1 Bool) (excludes4.usr.X2_a_1 Bool) (excludes4.usr.X3_a_1 Bool) (excludes4.usr.X4_a_1 Bool) (excludes4.usr.excludes_a_1 Bool) (excludes4.res.init_flag_a_1 Bool) (excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_1 (not (or (or (or (or (or (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) (not excludes4.res.init_flag_a_1))) +(define-fun __node_init_mesi_0 ((mesi.usr.etat_me1_a_0 Bool) (mesi.usr.etat_me2_a_0 Bool) (mesi.usr.etat_me3_a_0 Bool) (mesi.usr.etat_me4_a_0 Bool) (mesi.res.nondet_3 Int) (mesi.res.nondet_2 Int) (mesi.res.nondet_1 Int) (mesi.res.nondet_0 Int) (mesi.usr.modified_me_a_0 Int) (mesi.usr.exclusive_me_a_0 Int) (mesi.usr.shared_me_a_0 Int) (mesi.usr.invalid_me_a_0 Int) (mesi.res.init_flag_a_0 Bool)) Bool + (and (= mesi.usr.modified_me_a_0 0) (let ((X1 (let ((X1 mesi.res.nondet_0)) (>= X1 1)))) (and (= mesi.usr.invalid_me_a_0 3) (= mesi.usr.exclusive_me_a_0 0) (let ((X2 (let ((X2 mesi.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 mesi.res.nondet_2)) (>= X3 1)))) (and (= mesi.usr.shared_me_a_0 0) (let ((X4 (let ((X4 mesi.res.nondet_3)) (>= X4 1)))) mesi.res.init_flag_a_0)))))))) +(define-fun __node_trans_mesi_0 ((mesi.usr.etat_me1_a_1 Bool) (mesi.usr.etat_me2_a_1 Bool) (mesi.usr.etat_me3_a_1 Bool) (mesi.usr.etat_me4_a_1 Bool) (mesi.res.nondet_3 Int) (mesi.res.nondet_2 Int) (mesi.res.nondet_1 Int) (mesi.res.nondet_0 Int) (mesi.usr.modified_me_a_1 Int) (mesi.usr.exclusive_me_a_1 Int) (mesi.usr.shared_me_a_1 Int) (mesi.usr.invalid_me_a_1 Int) (mesi.res.init_flag_a_1 Bool) (mesi.usr.etat_me1_a_0 Bool) (mesi.usr.etat_me2_a_0 Bool) (mesi.usr.etat_me3_a_0 Bool) (mesi.usr.etat_me4_a_0 Bool) (mesi.usr.modified_me_a_0 Int) (mesi.usr.exclusive_me_a_0 Int) (mesi.usr.shared_me_a_0 Int) (mesi.usr.invalid_me_a_0 Int) (mesi.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= mesi.usr.invalid_me_a_0 1))) (let ((X2 (>= mesi.usr.shared_me_a_0 1))) (let ((X3 (>= mesi.usr.exclusive_me_a_0 1))) (let ((X4 (>= mesi.usr.invalid_me_a_0 1))) (and (= mesi.usr.modified_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 0 mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me2_a_1 (ite X3 (- mesi.usr.modified_me_a_0 1) mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me3_a_1 (ite X2 0 mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 0 mesi.usr.modified_me_a_0) mesi.usr.modified_me_a_0))))) (= mesi.usr.invalid_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 (- mesi.usr.invalid_me_a_0 1) mesi.usr.invalid_me_a_0) (ite mesi.usr.etat_me2_a_1 mesi.usr.invalid_me_a_0 (ite mesi.usr.etat_me3_a_1 (ite X2 (- (+ (+ (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) mesi.usr.exclusive_me_a_0) mesi.usr.shared_me_a_0) 1) mesi.usr.invalid_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 (- (+ (+ (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) mesi.usr.exclusive_me_a_0) mesi.usr.shared_me_a_0) 1) mesi.usr.invalid_me_a_0) mesi.usr.invalid_me_a_0))))) (= mesi.usr.exclusive_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 0 mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me2_a_1 (ite X3 (- mesi.usr.exclusive_me_a_0 1) mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me3_a_1 (ite X2 1 mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 1 mesi.usr.exclusive_me_a_0) mesi.usr.exclusive_me_a_0))))) (= mesi.usr.shared_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 (- (+ (+ mesi.usr.shared_me_a_0 mesi.usr.exclusive_me_a_0) mesi.usr.modified_me_a_0) 1) mesi.usr.shared_me_a_0) (ite mesi.usr.etat_me2_a_1 mesi.usr.shared_me_a_0 (ite mesi.usr.etat_me3_a_1 (ite X2 0 mesi.usr.shared_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 0 mesi.usr.shared_me_a_0) mesi.usr.shared_me_a_0))))) (not mesi.res.init_flag_a_1))))))) +(define-fun __node_init_top_0 ((top.usr.etat_me1_a_0 Bool) (top.usr.etat_me2_a_0 Bool) (top.usr.etat_me3_a_0 Bool) (top.usr.etat_me4_a_0 Bool) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_5_a_0)) (let ((X2 top.res.abs_1_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_mesi_0 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_1_a_0) (__node_init_excludes4_0 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.etat_me1_a_1 Bool) (top.usr.etat_me2_a_1 Bool) (top.usr.etat_me3_a_1 Bool) (top.usr.etat_me4_a_1 Bool) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.etat_me1_a_0 Bool) (top.usr.etat_me2_a_0 Bool) (top.usr.etat_me3_a_0 Bool) (top.usr.etat_me4_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_5_a_1)) (let ((X2 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_mesi_0 top.usr.etat_me1_a_1 top.usr.etat_me2_a_1 top.usr.etat_me3_a_1 top.usr.etat_me4_a_1 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_1_a_1 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_1_a_0) (__node_trans_excludes4_0 top.usr.etat_me1_a_1 top.usr.etat_me2_a_1 top.usr.etat_me3_a_1 top.usr.etat_me4_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_5)) (let ((X2 top.res.abs_1)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_mesi_0 top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_4 top.res.abs_5 top.res.inst_1) (__node_init_excludes4_0 top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_4 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.etat_me1! Bool) (top.usr.etat_me2! Bool) (top.usr.etat_me3! Bool) (top.usr.etat_me4! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_5!)) (let ((X2 top.res.abs_1!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_mesi_0 top.usr.etat_me1! top.usr.etat_me2! top.usr.etat_me3! top.usr.etat_me4! top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_2! top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_4! top.res.abs_5! top.res.inst_1! top.res.abs_4 top.res.abs_5 top.res.inst_1) (__node_trans_excludes4_0 top.usr.etat_me1! top.usr.etat_me2! top.usr.etat_me3! top.usr.etat_me4! top.res.abs_4! top.res.inst_0! top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!)))) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/MESI_3.sl b/benchmarks/LIA/Lustre/MESI_3.sl index caca4f6..9026e66 100644 --- a/benchmarks/LIA/Lustre/MESI_3.sl +++ b/benchmarks/LIA/Lustre/MESI_3.sl @@ -1,862 +1,39 @@ (set-logic LIA) -(define-fun - __node_init_excludes4_0 ( - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_0 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) - (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) - excludes4.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes4_0 ( - (excludes4.usr.X1_a_1 Bool) - (excludes4.usr.X2_a_1 Bool) - (excludes4.usr.X3_a_1 Bool) - (excludes4.usr.X4_a_1 Bool) - (excludes4.usr.excludes_a_1 Bool) - (excludes4.res.init_flag_a_1 Bool) - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_1 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) - (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) - (not excludes4.res.init_flag_a_1)) -) - -(define-fun - __node_init_Abs_0 ( - (Abs.usr.X_a_0 Int) - (Abs.usr.Abs_a_0 Int) - (Abs.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Abs.usr.Abs_a_0 (ite (< Abs.usr.X_a_0 0) (- Abs.usr.X_a_0) Abs.usr.X_a_0)) - Abs.res.init_flag_a_0) -) - -(define-fun - __node_trans_Abs_0 ( - (Abs.usr.X_a_1 Int) - (Abs.usr.Abs_a_1 Int) - (Abs.res.init_flag_a_1 Bool) - (Abs.usr.X_a_0 Int) - (Abs.usr.Abs_a_0 Int) - (Abs.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Abs.usr.Abs_a_1 (ite (< Abs.usr.X_a_1 0) (- Abs.usr.X_a_1) Abs.usr.X_a_1)) - (not Abs.res.init_flag_a_1)) -) - -(define-fun - __node_init_mesi_0 ( - (mesi.usr.etat_me1_a_0 Bool) - (mesi.usr.etat_me2_a_0 Bool) - (mesi.usr.etat_me3_a_0 Bool) - (mesi.usr.etat_me4_a_0 Bool) - (mesi.res.nondet_3 Int) - (mesi.res.nondet_2 Int) - (mesi.res.nondet_1 Int) - (mesi.res.nondet_0 Int) - (mesi.usr.modified_me_a_0 Int) - (mesi.usr.exclusive_me_a_0 Int) - (mesi.usr.shared_me_a_0 Int) - (mesi.usr.invalid_me_a_0 Int) - (mesi.res.init_flag_a_0 Bool) - ) Bool - - (and - (= mesi.usr.modified_me_a_0 0) - (let - ((X1 Bool (let ((X1 Int mesi.res.nondet_0)) (>= X1 1)))) - (and - (= mesi.usr.invalid_me_a_0 3) - (= mesi.usr.exclusive_me_a_0 0) - (let - ((X2 Bool (let ((X2 Int mesi.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int mesi.res.nondet_2)) (>= X3 1)))) - (and - (= mesi.usr.shared_me_a_0 0) - (let - ((X4 Bool (let ((X4 Int mesi.res.nondet_3)) (>= X4 1)))) - mesi.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_mesi_0 ( - (mesi.usr.etat_me1_a_1 Bool) - (mesi.usr.etat_me2_a_1 Bool) - (mesi.usr.etat_me3_a_1 Bool) - (mesi.usr.etat_me4_a_1 Bool) - (mesi.res.nondet_3 Int) - (mesi.res.nondet_2 Int) - (mesi.res.nondet_1 Int) - (mesi.res.nondet_0 Int) - (mesi.usr.modified_me_a_1 Int) - (mesi.usr.exclusive_me_a_1 Int) - (mesi.usr.shared_me_a_1 Int) - (mesi.usr.invalid_me_a_1 Int) - (mesi.res.init_flag_a_1 Bool) - (mesi.usr.etat_me1_a_0 Bool) - (mesi.usr.etat_me2_a_0 Bool) - (mesi.usr.etat_me3_a_0 Bool) - (mesi.usr.etat_me4_a_0 Bool) - (mesi.usr.modified_me_a_0 Int) - (mesi.usr.exclusive_me_a_0 Int) - (mesi.usr.shared_me_a_0 Int) - (mesi.usr.invalid_me_a_0 Int) - (mesi.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= mesi.usr.invalid_me_a_0 1))) - (let - ((X2 Bool (>= mesi.usr.shared_me_a_0 1))) - (let - ((X3 Bool (>= mesi.usr.exclusive_me_a_0 1))) - (let - ((X4 Bool (>= mesi.usr.invalid_me_a_0 1))) - (and - (= - mesi.usr.modified_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 0 mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - (ite X3 (- mesi.usr.modified_me_a_0 1) mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me3_a_1 - (ite X2 0 mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 0 mesi.usr.modified_me_a_0) - mesi.usr.modified_me_a_0))))) - (= - mesi.usr.invalid_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 (- mesi.usr.invalid_me_a_0 1) mesi.usr.invalid_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - mesi.usr.invalid_me_a_0 - (ite - mesi.usr.etat_me3_a_1 - (ite - X2 - (- - (+ - (+ - (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) - mesi.usr.exclusive_me_a_0) - mesi.usr.shared_me_a_0) - 1) - mesi.usr.invalid_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite - X1 - (- - (+ - (+ - (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) - mesi.usr.exclusive_me_a_0) - mesi.usr.shared_me_a_0) - 1) - mesi.usr.invalid_me_a_0) - mesi.usr.invalid_me_a_0))))) - (= - mesi.usr.exclusive_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 0 mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - (ite X3 (- mesi.usr.exclusive_me_a_0 1) mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me3_a_1 - (ite X2 1 mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 1 mesi.usr.exclusive_me_a_0) - mesi.usr.exclusive_me_a_0))))) - (= - mesi.usr.shared_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite - X4 - (- - (+ - (+ mesi.usr.shared_me_a_0 mesi.usr.exclusive_me_a_0) - mesi.usr.modified_me_a_0) - 1) - mesi.usr.shared_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - mesi.usr.shared_me_a_0 - (ite - mesi.usr.etat_me3_a_1 - (ite X2 0 mesi.usr.shared_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 0 mesi.usr.shared_me_a_0) - mesi.usr.shared_me_a_0))))) - (not mesi.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.etat_me1_a_0 Bool) - (top.usr.etat_me2_a_0 Bool) - (top.usr.etat_me3_a_0 Bool) - (top.usr.etat_me4_a_0 Bool) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.modified_me_a_0 Int) - (top.impl.usr.exclusive_me_a_0 Int) - (top.impl.usr.shared_me_a_0 Int) - (top.impl.usr.invalid_me_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Int) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.invalid_me_a_0 top.res.abs_3_a_0) - (= top.impl.usr.shared_me_a_0 top.res.abs_2_a_0) - (= top.impl.usr.exclusive_me_a_0 top.res.abs_1_a_0) - (= top.impl.usr.modified_me_a_0 top.res.abs_0_a_0) - (let - ((X1 Bool top.res.abs_5_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (<= - (+ - (+ (+ top.res.abs_6_a_0 top.res.abs_7_a_0) top.res.abs_8_a_0) - top.res.abs_9_a_0) - 3))) - (__node_init_Sofar_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_6_a_0) - (__node_init_excludes4_0 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_4_a_0 - top.res.inst_5_a_0) - (__node_init_Abs_0 - top.impl.usr.modified_me_a_0 - top.res.abs_6_a_0 - top.res.inst_4_a_0) - (__node_init_mesi_0 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_init_Abs_0 - top.impl.usr.exclusive_me_a_0 - top.res.abs_7_a_0 - top.res.inst_2_a_0) - (__node_init_Abs_0 - top.impl.usr.shared_me_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_init_Abs_0 - top.impl.usr.invalid_me_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.etat_me1_a_1 Bool) - (top.usr.etat_me2_a_1 Bool) - (top.usr.etat_me3_a_1 Bool) - (top.usr.etat_me4_a_1 Bool) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.modified_me_a_1 Int) - (top.impl.usr.exclusive_me_a_1 Int) - (top.impl.usr.shared_me_a_1 Int) - (top.impl.usr.invalid_me_a_1 Int) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.abs_9_a_1 Int) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Bool) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.etat_me1_a_0 Bool) - (top.usr.etat_me2_a_0 Bool) - (top.usr.etat_me3_a_0 Bool) - (top.usr.etat_me4_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.modified_me_a_0 Int) - (top.impl.usr.exclusive_me_a_0 Int) - (top.impl.usr.shared_me_a_0 Int) - (top.impl.usr.invalid_me_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Int) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.invalid_me_a_1 top.res.abs_3_a_1) - (= top.impl.usr.shared_me_a_1 top.res.abs_2_a_1) - (= top.impl.usr.exclusive_me_a_1 top.res.abs_1_a_1) - (= top.impl.usr.modified_me_a_1 top.res.abs_0_a_1) - (let - ((X1 Bool top.res.abs_5_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (<= - (+ - (+ (+ top.res.abs_6_a_1 top.res.abs_7_a_1) top.res.abs_8_a_1) - top.res.abs_9_a_1) - 3))) - (__node_trans_Sofar_0 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_6_a_1 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_6_a_0) - (__node_trans_excludes4_0 - top.usr.etat_me1_a_1 - top.usr.etat_me2_a_1 - top.usr.etat_me3_a_1 - top.usr.etat_me4_a_1 - top.res.abs_4_a_1 - top.res.inst_5_a_1 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_4_a_0 - top.res.inst_5_a_0) - (__node_trans_Abs_0 - top.impl.usr.modified_me_a_1 - top.res.abs_6_a_1 - top.res.inst_4_a_1 - top.impl.usr.modified_me_a_0 - top.res.abs_6_a_0 - top.res.inst_4_a_0) - (__node_trans_mesi_0 - top.usr.etat_me1_a_1 - top.usr.etat_me2_a_1 - top.usr.etat_me3_a_1 - top.usr.etat_me4_a_1 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_trans_Abs_0 - top.impl.usr.exclusive_me_a_1 - top.res.abs_7_a_1 - top.res.inst_2_a_1 - top.impl.usr.exclusive_me_a_0 - top.res.abs_7_a_0 - top.res.inst_2_a_0) - (__node_trans_Abs_0 - top.impl.usr.shared_me_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.impl.usr.shared_me_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_Abs_0 - top.impl.usr.invalid_me_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.impl.usr.invalid_me_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.modified_me Int) - (top.impl.usr.exclusive_me Int) - (top.impl.usr.shared_me Int) - (top.impl.usr.invalid_me Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.etat_me1 Bool) -(declare-primed-var top.usr.etat_me2 Bool) -(declare-primed-var top.usr.etat_me3 Bool) -(declare-primed-var top.usr.etat_me4 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.modified_me Int) -(declare-primed-var top.impl.usr.exclusive_me Int) -(declare-primed-var top.impl.usr.shared_me Int) -(declare-primed-var top.impl.usr.invalid_me Int) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Bool) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.modified_me Int) - (top.impl.usr.exclusive_me Int) - (top.impl.usr.shared_me Int) - (top.impl.usr.invalid_me Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.impl.usr.invalid_me top.res.abs_3) - (= top.impl.usr.shared_me top.res.abs_2) - (= top.impl.usr.exclusive_me top.res.abs_1) - (= top.impl.usr.modified_me top.res.abs_0) - (let - ((X1 Bool top.res.abs_5)) - (and - (= - top.usr.OK - (=> - X1 - (<= - (+ (+ (+ top.res.abs_6 top.res.abs_7) top.res.abs_8) top.res.abs_9) - 3))) - (__node_init_Sofar_0 top.res.abs_4 top.res.abs_5 top.res.inst_6) - (__node_init_excludes4_0 - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_4 - top.res.inst_5) - (__node_init_Abs_0 - top.impl.usr.modified_me - top.res.abs_6 - top.res.inst_4) - (__node_init_mesi_0 - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_init_Abs_0 - top.impl.usr.exclusive_me - top.res.abs_7 - top.res.inst_2) - (__node_init_Abs_0 top.impl.usr.shared_me top.res.abs_8 top.res.inst_1) - (__node_init_Abs_0 top.impl.usr.invalid_me top.res.abs_9 top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.modified_me Int) - (top.impl.usr.exclusive_me Int) - (top.impl.usr.shared_me Int) - (top.impl.usr.invalid_me Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.etat_me1! Bool) - (top.usr.etat_me2! Bool) - (top.usr.etat_me3! Bool) - (top.usr.etat_me4! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.modified_me! Int) - (top.impl.usr.exclusive_me! Int) - (top.impl.usr.shared_me! Int) - (top.impl.usr.invalid_me! Int) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.abs_9! Int) - (top.res.inst_6! Bool) - (top.res.inst_5! Bool) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.impl.usr.invalid_me! top.res.abs_3!) - (= top.impl.usr.shared_me! top.res.abs_2!) - (= top.impl.usr.exclusive_me! top.res.abs_1!) - (= top.impl.usr.modified_me! top.res.abs_0!) - (let - ((X1 Bool top.res.abs_5!)) - (and - (= - top.usr.OK! - (=> - X1 - (<= - (+ - (+ (+ top.res.abs_6! top.res.abs_7!) top.res.abs_8!) - top.res.abs_9!) - 3))) - (__node_trans_Sofar_0 - top.res.abs_4! - top.res.abs_5! - top.res.inst_6! - top.res.abs_4 - top.res.abs_5 - top.res.inst_6) - (__node_trans_excludes4_0 - top.usr.etat_me1! - top.usr.etat_me2! - top.usr.etat_me3! - top.usr.etat_me4! - top.res.abs_4! - top.res.inst_5! - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_4 - top.res.inst_5) - (__node_trans_Abs_0 - top.impl.usr.modified_me! - top.res.abs_6! - top.res.inst_4! - top.impl.usr.modified_me - top.res.abs_6 - top.res.inst_4) - (__node_trans_mesi_0 - top.usr.etat_me1! - top.usr.etat_me2! - top.usr.etat_me3! - top.usr.etat_me4! - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_trans_Abs_0 - top.impl.usr.exclusive_me! - top.res.abs_7! - top.res.inst_2! - top.impl.usr.exclusive_me - top.res.abs_7 - top.res.inst_2) - (__node_trans_Abs_0 - top.impl.usr.shared_me! - top.res.abs_8! - top.res.inst_1! - top.impl.usr.shared_me - top.res.abs_8 - top.res.inst_1) - (__node_trans_Abs_0 - top.impl.usr.invalid_me! - top.res.abs_9! - top.res.inst_0! - top.impl.usr.invalid_me - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.modified_me Int) - (top.impl.usr.exclusive_me Int) - (top.impl.usr.shared_me Int) - (top.impl.usr.invalid_me Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_excludes4_0 ((excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_0 (not (or (or (or (or (or (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) excludes4.res.init_flag_a_0)) +(define-fun __node_trans_excludes4_0 ((excludes4.usr.X1_a_1 Bool) (excludes4.usr.X2_a_1 Bool) (excludes4.usr.X3_a_1 Bool) (excludes4.usr.X4_a_1 Bool) (excludes4.usr.excludes_a_1 Bool) (excludes4.res.init_flag_a_1 Bool) (excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_1 (not (or (or (or (or (or (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) (not excludes4.res.init_flag_a_1))) +(define-fun __node_init_Abs_0 ((Abs.usr.X_a_0 Int) (Abs.usr.Abs_a_0 Int) (Abs.res.init_flag_a_0 Bool)) Bool + (and (= Abs.usr.Abs_a_0 (ite (< Abs.usr.X_a_0 0) (- Abs.usr.X_a_0) Abs.usr.X_a_0)) Abs.res.init_flag_a_0)) +(define-fun __node_trans_Abs_0 ((Abs.usr.X_a_1 Int) (Abs.usr.Abs_a_1 Int) (Abs.res.init_flag_a_1 Bool) (Abs.usr.X_a_0 Int) (Abs.usr.Abs_a_0 Int) (Abs.res.init_flag_a_0 Bool)) Bool + (and (= Abs.usr.Abs_a_1 (ite (< Abs.usr.X_a_1 0) (- Abs.usr.X_a_1) Abs.usr.X_a_1)) (not Abs.res.init_flag_a_1))) +(define-fun __node_init_mesi_0 ((mesi.usr.etat_me1_a_0 Bool) (mesi.usr.etat_me2_a_0 Bool) (mesi.usr.etat_me3_a_0 Bool) (mesi.usr.etat_me4_a_0 Bool) (mesi.res.nondet_3 Int) (mesi.res.nondet_2 Int) (mesi.res.nondet_1 Int) (mesi.res.nondet_0 Int) (mesi.usr.modified_me_a_0 Int) (mesi.usr.exclusive_me_a_0 Int) (mesi.usr.shared_me_a_0 Int) (mesi.usr.invalid_me_a_0 Int) (mesi.res.init_flag_a_0 Bool)) Bool + (and (= mesi.usr.modified_me_a_0 0) (let ((X1 (let ((X1 mesi.res.nondet_0)) (>= X1 1)))) (and (= mesi.usr.invalid_me_a_0 3) (= mesi.usr.exclusive_me_a_0 0) (let ((X2 (let ((X2 mesi.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 mesi.res.nondet_2)) (>= X3 1)))) (and (= mesi.usr.shared_me_a_0 0) (let ((X4 (let ((X4 mesi.res.nondet_3)) (>= X4 1)))) mesi.res.init_flag_a_0)))))))) +(define-fun __node_trans_mesi_0 ((mesi.usr.etat_me1_a_1 Bool) (mesi.usr.etat_me2_a_1 Bool) (mesi.usr.etat_me3_a_1 Bool) (mesi.usr.etat_me4_a_1 Bool) (mesi.res.nondet_3 Int) (mesi.res.nondet_2 Int) (mesi.res.nondet_1 Int) (mesi.res.nondet_0 Int) (mesi.usr.modified_me_a_1 Int) (mesi.usr.exclusive_me_a_1 Int) (mesi.usr.shared_me_a_1 Int) (mesi.usr.invalid_me_a_1 Int) (mesi.res.init_flag_a_1 Bool) (mesi.usr.etat_me1_a_0 Bool) (mesi.usr.etat_me2_a_0 Bool) (mesi.usr.etat_me3_a_0 Bool) (mesi.usr.etat_me4_a_0 Bool) (mesi.usr.modified_me_a_0 Int) (mesi.usr.exclusive_me_a_0 Int) (mesi.usr.shared_me_a_0 Int) (mesi.usr.invalid_me_a_0 Int) (mesi.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= mesi.usr.invalid_me_a_0 1))) (let ((X2 (>= mesi.usr.shared_me_a_0 1))) (let ((X3 (>= mesi.usr.exclusive_me_a_0 1))) (let ((X4 (>= mesi.usr.invalid_me_a_0 1))) (and (= mesi.usr.modified_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 0 mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me2_a_1 (ite X3 (- mesi.usr.modified_me_a_0 1) mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me3_a_1 (ite X2 0 mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 0 mesi.usr.modified_me_a_0) mesi.usr.modified_me_a_0))))) (= mesi.usr.invalid_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 (- mesi.usr.invalid_me_a_0 1) mesi.usr.invalid_me_a_0) (ite mesi.usr.etat_me2_a_1 mesi.usr.invalid_me_a_0 (ite mesi.usr.etat_me3_a_1 (ite X2 (- (+ (+ (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) mesi.usr.exclusive_me_a_0) mesi.usr.shared_me_a_0) 1) mesi.usr.invalid_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 (- (+ (+ (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) mesi.usr.exclusive_me_a_0) mesi.usr.shared_me_a_0) 1) mesi.usr.invalid_me_a_0) mesi.usr.invalid_me_a_0))))) (= mesi.usr.exclusive_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 0 mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me2_a_1 (ite X3 (- mesi.usr.exclusive_me_a_0 1) mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me3_a_1 (ite X2 1 mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 1 mesi.usr.exclusive_me_a_0) mesi.usr.exclusive_me_a_0))))) (= mesi.usr.shared_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 (- (+ (+ mesi.usr.shared_me_a_0 mesi.usr.exclusive_me_a_0) mesi.usr.modified_me_a_0) 1) mesi.usr.shared_me_a_0) (ite mesi.usr.etat_me2_a_1 mesi.usr.shared_me_a_0 (ite mesi.usr.etat_me3_a_1 (ite X2 0 mesi.usr.shared_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 0 mesi.usr.shared_me_a_0) mesi.usr.shared_me_a_0))))) (not mesi.res.init_flag_a_1))))))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.etat_me1_a_0 Bool) (top.usr.etat_me2_a_0 Bool) (top.usr.etat_me3_a_0 Bool) (top.usr.etat_me4_a_0 Bool) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.modified_me_a_0 Int) (top.impl.usr.exclusive_me_a_0 Int) (top.impl.usr.shared_me_a_0 Int) (top.impl.usr.invalid_me_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Int) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.invalid_me_a_0 top.res.abs_3_a_0) (= top.impl.usr.shared_me_a_0 top.res.abs_2_a_0) (= top.impl.usr.exclusive_me_a_0 top.res.abs_1_a_0) (= top.impl.usr.modified_me_a_0 top.res.abs_0_a_0) (let ((X1 top.res.abs_5_a_0)) (and (= top.usr.OK_a_0 (=> X1 (<= (+ (+ (+ top.res.abs_6_a_0 top.res.abs_7_a_0) top.res.abs_8_a_0) top.res.abs_9_a_0) 3))) (__node_init_Sofar_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_6_a_0) (__node_init_excludes4_0 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_4_a_0 top.res.inst_5_a_0) (__node_init_Abs_0 top.impl.usr.modified_me_a_0 top.res.abs_6_a_0 top.res.inst_4_a_0) (__node_init_mesi_0 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Abs_0 top.impl.usr.exclusive_me_a_0 top.res.abs_7_a_0 top.res.inst_2_a_0) (__node_init_Abs_0 top.impl.usr.shared_me_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_Abs_0 top.impl.usr.invalid_me_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.etat_me1_a_1 Bool) (top.usr.etat_me2_a_1 Bool) (top.usr.etat_me3_a_1 Bool) (top.usr.etat_me4_a_1 Bool) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.modified_me_a_1 Int) (top.impl.usr.exclusive_me_a_1 Int) (top.impl.usr.shared_me_a_1 Int) (top.impl.usr.invalid_me_a_1 Int) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.abs_9_a_1 Int) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Bool) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.etat_me1_a_0 Bool) (top.usr.etat_me2_a_0 Bool) (top.usr.etat_me3_a_0 Bool) (top.usr.etat_me4_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.modified_me_a_0 Int) (top.impl.usr.exclusive_me_a_0 Int) (top.impl.usr.shared_me_a_0 Int) (top.impl.usr.invalid_me_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Int) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.invalid_me_a_1 top.res.abs_3_a_1) (= top.impl.usr.shared_me_a_1 top.res.abs_2_a_1) (= top.impl.usr.exclusive_me_a_1 top.res.abs_1_a_1) (= top.impl.usr.modified_me_a_1 top.res.abs_0_a_1) (let ((X1 top.res.abs_5_a_1)) (and (= top.usr.OK_a_1 (=> X1 (<= (+ (+ (+ top.res.abs_6_a_1 top.res.abs_7_a_1) top.res.abs_8_a_1) top.res.abs_9_a_1) 3))) (__node_trans_Sofar_0 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_6_a_1 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_6_a_0) (__node_trans_excludes4_0 top.usr.etat_me1_a_1 top.usr.etat_me2_a_1 top.usr.etat_me3_a_1 top.usr.etat_me4_a_1 top.res.abs_4_a_1 top.res.inst_5_a_1 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_4_a_0 top.res.inst_5_a_0) (__node_trans_Abs_0 top.impl.usr.modified_me_a_1 top.res.abs_6_a_1 top.res.inst_4_a_1 top.impl.usr.modified_me_a_0 top.res.abs_6_a_0 top.res.inst_4_a_0) (__node_trans_mesi_0 top.usr.etat_me1_a_1 top.usr.etat_me2_a_1 top.usr.etat_me3_a_1 top.usr.etat_me4_a_1 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Abs_0 top.impl.usr.exclusive_me_a_1 top.res.abs_7_a_1 top.res.inst_2_a_1 top.impl.usr.exclusive_me_a_0 top.res.abs_7_a_0 top.res.inst_2_a_0) (__node_trans_Abs_0 top.impl.usr.shared_me_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.impl.usr.shared_me_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_Abs_0 top.impl.usr.invalid_me_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.impl.usr.invalid_me_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.modified_me Int) (top.impl.usr.exclusive_me Int) (top.impl.usr.shared_me Int) (top.impl.usr.invalid_me Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.modified_me Int) (top.impl.usr.exclusive_me Int) (top.impl.usr.shared_me Int) (top.impl.usr.invalid_me Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.invalid_me top.res.abs_3) (= top.impl.usr.shared_me top.res.abs_2) (= top.impl.usr.exclusive_me top.res.abs_1) (= top.impl.usr.modified_me top.res.abs_0) (let ((X1 top.res.abs_5)) (and (= top.usr.OK (=> X1 (<= (+ (+ (+ top.res.abs_6 top.res.abs_7) top.res.abs_8) top.res.abs_9) 3))) (__node_init_Sofar_0 top.res.abs_4 top.res.abs_5 top.res.inst_6) (__node_init_excludes4_0 top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_4 top.res.inst_5) (__node_init_Abs_0 top.impl.usr.modified_me top.res.abs_6 top.res.inst_4) (__node_init_mesi_0 top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Abs_0 top.impl.usr.exclusive_me top.res.abs_7 top.res.inst_2) (__node_init_Abs_0 top.impl.usr.shared_me top.res.abs_8 top.res.inst_1) (__node_init_Abs_0 top.impl.usr.invalid_me top.res.abs_9 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.modified_me Int) (top.impl.usr.exclusive_me Int) (top.impl.usr.shared_me Int) (top.impl.usr.invalid_me Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.etat_me1! Bool) (top.usr.etat_me2! Bool) (top.usr.etat_me3! Bool) (top.usr.etat_me4! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.modified_me! Int) (top.impl.usr.exclusive_me! Int) (top.impl.usr.shared_me! Int) (top.impl.usr.invalid_me! Int) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.abs_9! Int) (top.res.inst_6! Bool) (top.res.inst_5! Bool) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.impl.usr.invalid_me! top.res.abs_3!) (= top.impl.usr.shared_me! top.res.abs_2!) (= top.impl.usr.exclusive_me! top.res.abs_1!) (= top.impl.usr.modified_me! top.res.abs_0!) (let ((X1 top.res.abs_5!)) (and (= top.usr.OK! (=> X1 (<= (+ (+ (+ top.res.abs_6! top.res.abs_7!) top.res.abs_8!) top.res.abs_9!) 3))) (__node_trans_Sofar_0 top.res.abs_4! top.res.abs_5! top.res.inst_6! top.res.abs_4 top.res.abs_5 top.res.inst_6) (__node_trans_excludes4_0 top.usr.etat_me1! top.usr.etat_me2! top.usr.etat_me3! top.usr.etat_me4! top.res.abs_4! top.res.inst_5! top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_4 top.res.inst_5) (__node_trans_Abs_0 top.impl.usr.modified_me! top.res.abs_6! top.res.inst_4! top.impl.usr.modified_me top.res.abs_6 top.res.inst_4) (__node_trans_mesi_0 top.usr.etat_me1! top.usr.etat_me2! top.usr.etat_me3! top.usr.etat_me4! top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Abs_0 top.impl.usr.exclusive_me! top.res.abs_7! top.res.inst_2! top.impl.usr.exclusive_me top.res.abs_7 top.res.inst_2) (__node_trans_Abs_0 top.impl.usr.shared_me! top.res.abs_8! top.res.inst_1! top.impl.usr.shared_me top.res.abs_8 top.res.inst_1) (__node_trans_Abs_0 top.impl.usr.invalid_me! top.res.abs_9! top.res.inst_0! top.impl.usr.invalid_me top.res.abs_9 top.res.inst_0) (not top.res.init_flag!)))) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.modified_me Int) (top.impl.usr.exclusive_me Int) (top.impl.usr.shared_me Int) (top.impl.usr.invalid_me Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/MESI_3_e1_2517_e8_2163.sl b/benchmarks/LIA/Lustre/MESI_3_e1_2517_e8_2163.sl index 315a310..f00d4a6 100644 --- a/benchmarks/LIA/Lustre/MESI_3_e1_2517_e8_2163.sl +++ b/benchmarks/LIA/Lustre/MESI_3_e1_2517_e8_2163.sl @@ -1,866 +1,39 @@ (set-logic LIA) -(define-fun - __node_init_excludes4_0 ( - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_0 - (not - (or - (or - (or - (or - (and - (and - (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) - excludes4.usr.X1_a_0) - excludes4.usr.X3_a_0) - (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) - excludes4.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes4_0 ( - (excludes4.usr.X1_a_1 Bool) - (excludes4.usr.X2_a_1 Bool) - (excludes4.usr.X3_a_1 Bool) - (excludes4.usr.X4_a_1 Bool) - (excludes4.usr.excludes_a_1 Bool) - (excludes4.res.init_flag_a_1 Bool) - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_1 - (not - (or - (or - (or - (or - (and - (and - (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) - excludes4.usr.X1_a_1) - excludes4.usr.X3_a_1) - (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) - (not excludes4.res.init_flag_a_1)) -) - -(define-fun - __node_init_Abs_0 ( - (Abs.usr.X_a_0 Int) - (Abs.usr.Abs_a_0 Int) - (Abs.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Abs.usr.Abs_a_0 (ite (< Abs.usr.X_a_0 0) (- Abs.usr.X_a_0) Abs.usr.X_a_0)) - Abs.res.init_flag_a_0) -) - -(define-fun - __node_trans_Abs_0 ( - (Abs.usr.X_a_1 Int) - (Abs.usr.Abs_a_1 Int) - (Abs.res.init_flag_a_1 Bool) - (Abs.usr.X_a_0 Int) - (Abs.usr.Abs_a_0 Int) - (Abs.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Abs.usr.Abs_a_1 (ite (< Abs.usr.X_a_1 0) (- Abs.usr.X_a_1) Abs.usr.X_a_1)) - (not Abs.res.init_flag_a_1)) -) - -(define-fun - __node_init_mesi_0 ( - (mesi.usr.etat_me1_a_0 Bool) - (mesi.usr.etat_me2_a_0 Bool) - (mesi.usr.etat_me3_a_0 Bool) - (mesi.usr.etat_me4_a_0 Bool) - (mesi.res.nondet_3 Int) - (mesi.res.nondet_2 Int) - (mesi.res.nondet_1 Int) - (mesi.res.nondet_0 Int) - (mesi.usr.modified_me_a_0 Int) - (mesi.usr.exclusive_me_a_0 Int) - (mesi.usr.shared_me_a_0 Int) - (mesi.usr.invalid_me_a_0 Int) - (mesi.res.init_flag_a_0 Bool) - ) Bool - - (and - (= mesi.usr.modified_me_a_0 0) - (let - ((X1 Bool (let ((X1 Int mesi.res.nondet_0)) (>= X1 1)))) - (and - (= mesi.usr.invalid_me_a_0 3) - (= mesi.usr.exclusive_me_a_0 0) - (let - ((X2 Bool (let ((X2 Int mesi.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int mesi.res.nondet_2)) (>= X3 1)))) - (and - (= mesi.usr.shared_me_a_0 0) - (let - ((X4 Bool (let ((X4 Int mesi.res.nondet_3)) (>= X4 1)))) - mesi.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_mesi_0 ( - (mesi.usr.etat_me1_a_1 Bool) - (mesi.usr.etat_me2_a_1 Bool) - (mesi.usr.etat_me3_a_1 Bool) - (mesi.usr.etat_me4_a_1 Bool) - (mesi.res.nondet_3 Int) - (mesi.res.nondet_2 Int) - (mesi.res.nondet_1 Int) - (mesi.res.nondet_0 Int) - (mesi.usr.modified_me_a_1 Int) - (mesi.usr.exclusive_me_a_1 Int) - (mesi.usr.shared_me_a_1 Int) - (mesi.usr.invalid_me_a_1 Int) - (mesi.res.init_flag_a_1 Bool) - (mesi.usr.etat_me1_a_0 Bool) - (mesi.usr.etat_me2_a_0 Bool) - (mesi.usr.etat_me3_a_0 Bool) - (mesi.usr.etat_me4_a_0 Bool) - (mesi.usr.modified_me_a_0 Int) - (mesi.usr.exclusive_me_a_0 Int) - (mesi.usr.shared_me_a_0 Int) - (mesi.usr.invalid_me_a_0 Int) - (mesi.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= mesi.usr.invalid_me_a_0 1))) - (let - ((X2 Bool (>= mesi.usr.shared_me_a_0 1))) - (let - ((X3 Bool (>= mesi.usr.exclusive_me_a_0 1))) - (let - ((X4 Bool (>= mesi.usr.invalid_me_a_0 1))) - (and - (= - mesi.usr.modified_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 0 mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - (ite X3 (- mesi.usr.modified_me_a_0 1) mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me3_a_1 - (ite X2 0 mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 0 mesi.usr.modified_me_a_0) - mesi.usr.modified_me_a_0))))) - (= - mesi.usr.invalid_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 (- mesi.usr.invalid_me_a_0 1) mesi.usr.invalid_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - mesi.usr.invalid_me_a_0 - (ite - mesi.usr.etat_me3_a_1 - (ite - X2 - (- - (+ - (+ - (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) - mesi.usr.exclusive_me_a_0) - mesi.usr.shared_me_a_0) - 1) - mesi.usr.invalid_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite - X1 - (- - (+ - (+ - (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) - mesi.usr.exclusive_me_a_0) - mesi.usr.shared_me_a_0) - 1) - mesi.usr.invalid_me_a_0) - mesi.usr.invalid_me_a_0))))) - (= - mesi.usr.exclusive_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 0 mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - (ite X3 (- mesi.usr.exclusive_me_a_0 1) mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me3_a_1 - (ite X2 1 mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 1 mesi.usr.exclusive_me_a_0) - mesi.usr.exclusive_me_a_0))))) - (= - mesi.usr.shared_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite - X4 - (- - (+ - (+ (+ mesi.usr.shared_me_a_0 1) mesi.usr.exclusive_me_a_0) - mesi.usr.modified_me_a_0) - 1) - mesi.usr.shared_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - mesi.usr.shared_me_a_0 - (ite - mesi.usr.etat_me3_a_1 - (ite X2 0 mesi.usr.shared_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 0 mesi.usr.shared_me_a_0) - mesi.usr.shared_me_a_0))))) - (not mesi.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.etat_me1_a_0 Bool) - (top.usr.etat_me2_a_0 Bool) - (top.usr.etat_me3_a_0 Bool) - (top.usr.etat_me4_a_0 Bool) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.modified_me_a_0 Int) - (top.impl.usr.exclusive_me_a_0 Int) - (top.impl.usr.shared_me_a_0 Int) - (top.impl.usr.invalid_me_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Int) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.invalid_me_a_0 top.res.abs_3_a_0) - (= top.impl.usr.shared_me_a_0 top.res.abs_2_a_0) - (= top.impl.usr.exclusive_me_a_0 top.res.abs_1_a_0) - (= top.impl.usr.modified_me_a_0 top.res.abs_0_a_0) - (let - ((X1 Bool top.res.abs_5_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (<= - (+ - (+ (+ top.res.abs_6_a_0 top.res.abs_7_a_0) top.res.abs_8_a_0) - top.res.abs_9_a_0) - 3))) - (__node_init_Sofar_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_6_a_0) - (__node_init_excludes4_0 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_4_a_0 - top.res.inst_5_a_0) - (__node_init_Abs_0 - top.impl.usr.modified_me_a_0 - top.res.abs_6_a_0 - top.res.inst_4_a_0) - (__node_init_mesi_0 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_init_Abs_0 - top.impl.usr.exclusive_me_a_0 - top.res.abs_7_a_0 - top.res.inst_2_a_0) - (__node_init_Abs_0 - top.impl.usr.shared_me_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_init_Abs_0 - top.impl.usr.invalid_me_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.etat_me1_a_1 Bool) - (top.usr.etat_me2_a_1 Bool) - (top.usr.etat_me3_a_1 Bool) - (top.usr.etat_me4_a_1 Bool) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.modified_me_a_1 Int) - (top.impl.usr.exclusive_me_a_1 Int) - (top.impl.usr.shared_me_a_1 Int) - (top.impl.usr.invalid_me_a_1 Int) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.abs_9_a_1 Int) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Bool) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.etat_me1_a_0 Bool) - (top.usr.etat_me2_a_0 Bool) - (top.usr.etat_me3_a_0 Bool) - (top.usr.etat_me4_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.modified_me_a_0 Int) - (top.impl.usr.exclusive_me_a_0 Int) - (top.impl.usr.shared_me_a_0 Int) - (top.impl.usr.invalid_me_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Int) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.invalid_me_a_1 top.res.abs_3_a_1) - (= top.impl.usr.shared_me_a_1 top.res.abs_2_a_1) - (= top.impl.usr.exclusive_me_a_1 top.res.abs_1_a_1) - (= top.impl.usr.modified_me_a_1 top.res.abs_0_a_1) - (let - ((X1 Bool top.res.abs_5_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (<= - (+ - (+ (+ top.res.abs_6_a_1 top.res.abs_7_a_1) top.res.abs_8_a_1) - top.res.abs_9_a_1) - 3))) - (__node_trans_Sofar_0 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_6_a_1 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_6_a_0) - (__node_trans_excludes4_0 - top.usr.etat_me1_a_1 - top.usr.etat_me2_a_1 - top.usr.etat_me3_a_1 - top.usr.etat_me4_a_1 - top.res.abs_4_a_1 - top.res.inst_5_a_1 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_4_a_0 - top.res.inst_5_a_0) - (__node_trans_Abs_0 - top.impl.usr.modified_me_a_1 - top.res.abs_6_a_1 - top.res.inst_4_a_1 - top.impl.usr.modified_me_a_0 - top.res.abs_6_a_0 - top.res.inst_4_a_0) - (__node_trans_mesi_0 - top.usr.etat_me1_a_1 - top.usr.etat_me2_a_1 - top.usr.etat_me3_a_1 - top.usr.etat_me4_a_1 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_trans_Abs_0 - top.impl.usr.exclusive_me_a_1 - top.res.abs_7_a_1 - top.res.inst_2_a_1 - top.impl.usr.exclusive_me_a_0 - top.res.abs_7_a_0 - top.res.inst_2_a_0) - (__node_trans_Abs_0 - top.impl.usr.shared_me_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.impl.usr.shared_me_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_Abs_0 - top.impl.usr.invalid_me_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.impl.usr.invalid_me_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.modified_me Int) - (top.impl.usr.exclusive_me Int) - (top.impl.usr.shared_me Int) - (top.impl.usr.invalid_me Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.etat_me1 Bool) -(declare-primed-var top.usr.etat_me2 Bool) -(declare-primed-var top.usr.etat_me3 Bool) -(declare-primed-var top.usr.etat_me4 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.modified_me Int) -(declare-primed-var top.impl.usr.exclusive_me Int) -(declare-primed-var top.impl.usr.shared_me Int) -(declare-primed-var top.impl.usr.invalid_me Int) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Bool) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.modified_me Int) - (top.impl.usr.exclusive_me Int) - (top.impl.usr.shared_me Int) - (top.impl.usr.invalid_me Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.impl.usr.invalid_me top.res.abs_3) - (= top.impl.usr.shared_me top.res.abs_2) - (= top.impl.usr.exclusive_me top.res.abs_1) - (= top.impl.usr.modified_me top.res.abs_0) - (let - ((X1 Bool top.res.abs_5)) - (and - (= - top.usr.OK - (=> - X1 - (<= - (+ (+ (+ top.res.abs_6 top.res.abs_7) top.res.abs_8) top.res.abs_9) - 3))) - (__node_init_Sofar_0 top.res.abs_4 top.res.abs_5 top.res.inst_6) - (__node_init_excludes4_0 - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_4 - top.res.inst_5) - (__node_init_Abs_0 - top.impl.usr.modified_me - top.res.abs_6 - top.res.inst_4) - (__node_init_mesi_0 - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_init_Abs_0 - top.impl.usr.exclusive_me - top.res.abs_7 - top.res.inst_2) - (__node_init_Abs_0 top.impl.usr.shared_me top.res.abs_8 top.res.inst_1) - (__node_init_Abs_0 top.impl.usr.invalid_me top.res.abs_9 top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.modified_me Int) - (top.impl.usr.exclusive_me Int) - (top.impl.usr.shared_me Int) - (top.impl.usr.invalid_me Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.etat_me1! Bool) - (top.usr.etat_me2! Bool) - (top.usr.etat_me3! Bool) - (top.usr.etat_me4! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.modified_me! Int) - (top.impl.usr.exclusive_me! Int) - (top.impl.usr.shared_me! Int) - (top.impl.usr.invalid_me! Int) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.abs_9! Int) - (top.res.inst_6! Bool) - (top.res.inst_5! Bool) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.impl.usr.invalid_me! top.res.abs_3!) - (= top.impl.usr.shared_me! top.res.abs_2!) - (= top.impl.usr.exclusive_me! top.res.abs_1!) - (= top.impl.usr.modified_me! top.res.abs_0!) - (let - ((X1 Bool top.res.abs_5!)) - (and - (= - top.usr.OK! - (=> - X1 - (<= - (+ - (+ (+ top.res.abs_6! top.res.abs_7!) top.res.abs_8!) - top.res.abs_9!) - 3))) - (__node_trans_Sofar_0 - top.res.abs_4! - top.res.abs_5! - top.res.inst_6! - top.res.abs_4 - top.res.abs_5 - top.res.inst_6) - (__node_trans_excludes4_0 - top.usr.etat_me1! - top.usr.etat_me2! - top.usr.etat_me3! - top.usr.etat_me4! - top.res.abs_4! - top.res.inst_5! - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_4 - top.res.inst_5) - (__node_trans_Abs_0 - top.impl.usr.modified_me! - top.res.abs_6! - top.res.inst_4! - top.impl.usr.modified_me - top.res.abs_6 - top.res.inst_4) - (__node_trans_mesi_0 - top.usr.etat_me1! - top.usr.etat_me2! - top.usr.etat_me3! - top.usr.etat_me4! - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_trans_Abs_0 - top.impl.usr.exclusive_me! - top.res.abs_7! - top.res.inst_2! - top.impl.usr.exclusive_me - top.res.abs_7 - top.res.inst_2) - (__node_trans_Abs_0 - top.impl.usr.shared_me! - top.res.abs_8! - top.res.inst_1! - top.impl.usr.shared_me - top.res.abs_8 - top.res.inst_1) - (__node_trans_Abs_0 - top.impl.usr.invalid_me! - top.res.abs_9! - top.res.inst_0! - top.impl.usr.invalid_me - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.modified_me Int) - (top.impl.usr.exclusive_me Int) - (top.impl.usr.shared_me Int) - (top.impl.usr.invalid_me Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_excludes4_0 ((excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_0 (not (or (or (or (or (and (and (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) excludes4.usr.X1_a_0) excludes4.usr.X3_a_0) (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) excludes4.res.init_flag_a_0)) +(define-fun __node_trans_excludes4_0 ((excludes4.usr.X1_a_1 Bool) (excludes4.usr.X2_a_1 Bool) (excludes4.usr.X3_a_1 Bool) (excludes4.usr.X4_a_1 Bool) (excludes4.usr.excludes_a_1 Bool) (excludes4.res.init_flag_a_1 Bool) (excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_1 (not (or (or (or (or (and (and (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) excludes4.usr.X1_a_1) excludes4.usr.X3_a_1) (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) (not excludes4.res.init_flag_a_1))) +(define-fun __node_init_Abs_0 ((Abs.usr.X_a_0 Int) (Abs.usr.Abs_a_0 Int) (Abs.res.init_flag_a_0 Bool)) Bool + (and (= Abs.usr.Abs_a_0 (ite (< Abs.usr.X_a_0 0) (- Abs.usr.X_a_0) Abs.usr.X_a_0)) Abs.res.init_flag_a_0)) +(define-fun __node_trans_Abs_0 ((Abs.usr.X_a_1 Int) (Abs.usr.Abs_a_1 Int) (Abs.res.init_flag_a_1 Bool) (Abs.usr.X_a_0 Int) (Abs.usr.Abs_a_0 Int) (Abs.res.init_flag_a_0 Bool)) Bool + (and (= Abs.usr.Abs_a_1 (ite (< Abs.usr.X_a_1 0) (- Abs.usr.X_a_1) Abs.usr.X_a_1)) (not Abs.res.init_flag_a_1))) +(define-fun __node_init_mesi_0 ((mesi.usr.etat_me1_a_0 Bool) (mesi.usr.etat_me2_a_0 Bool) (mesi.usr.etat_me3_a_0 Bool) (mesi.usr.etat_me4_a_0 Bool) (mesi.res.nondet_3 Int) (mesi.res.nondet_2 Int) (mesi.res.nondet_1 Int) (mesi.res.nondet_0 Int) (mesi.usr.modified_me_a_0 Int) (mesi.usr.exclusive_me_a_0 Int) (mesi.usr.shared_me_a_0 Int) (mesi.usr.invalid_me_a_0 Int) (mesi.res.init_flag_a_0 Bool)) Bool + (and (= mesi.usr.modified_me_a_0 0) (let ((X1 (let ((X1 mesi.res.nondet_0)) (>= X1 1)))) (and (= mesi.usr.invalid_me_a_0 3) (= mesi.usr.exclusive_me_a_0 0) (let ((X2 (let ((X2 mesi.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 mesi.res.nondet_2)) (>= X3 1)))) (and (= mesi.usr.shared_me_a_0 0) (let ((X4 (let ((X4 mesi.res.nondet_3)) (>= X4 1)))) mesi.res.init_flag_a_0)))))))) +(define-fun __node_trans_mesi_0 ((mesi.usr.etat_me1_a_1 Bool) (mesi.usr.etat_me2_a_1 Bool) (mesi.usr.etat_me3_a_1 Bool) (mesi.usr.etat_me4_a_1 Bool) (mesi.res.nondet_3 Int) (mesi.res.nondet_2 Int) (mesi.res.nondet_1 Int) (mesi.res.nondet_0 Int) (mesi.usr.modified_me_a_1 Int) (mesi.usr.exclusive_me_a_1 Int) (mesi.usr.shared_me_a_1 Int) (mesi.usr.invalid_me_a_1 Int) (mesi.res.init_flag_a_1 Bool) (mesi.usr.etat_me1_a_0 Bool) (mesi.usr.etat_me2_a_0 Bool) (mesi.usr.etat_me3_a_0 Bool) (mesi.usr.etat_me4_a_0 Bool) (mesi.usr.modified_me_a_0 Int) (mesi.usr.exclusive_me_a_0 Int) (mesi.usr.shared_me_a_0 Int) (mesi.usr.invalid_me_a_0 Int) (mesi.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= mesi.usr.invalid_me_a_0 1))) (let ((X2 (>= mesi.usr.shared_me_a_0 1))) (let ((X3 (>= mesi.usr.exclusive_me_a_0 1))) (let ((X4 (>= mesi.usr.invalid_me_a_0 1))) (and (= mesi.usr.modified_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 0 mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me2_a_1 (ite X3 (- mesi.usr.modified_me_a_0 1) mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me3_a_1 (ite X2 0 mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 0 mesi.usr.modified_me_a_0) mesi.usr.modified_me_a_0))))) (= mesi.usr.invalid_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 (- mesi.usr.invalid_me_a_0 1) mesi.usr.invalid_me_a_0) (ite mesi.usr.etat_me2_a_1 mesi.usr.invalid_me_a_0 (ite mesi.usr.etat_me3_a_1 (ite X2 (- (+ (+ (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) mesi.usr.exclusive_me_a_0) mesi.usr.shared_me_a_0) 1) mesi.usr.invalid_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 (- (+ (+ (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) mesi.usr.exclusive_me_a_0) mesi.usr.shared_me_a_0) 1) mesi.usr.invalid_me_a_0) mesi.usr.invalid_me_a_0))))) (= mesi.usr.exclusive_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 0 mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me2_a_1 (ite X3 (- mesi.usr.exclusive_me_a_0 1) mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me3_a_1 (ite X2 1 mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 1 mesi.usr.exclusive_me_a_0) mesi.usr.exclusive_me_a_0))))) (= mesi.usr.shared_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 (- (+ (+ (+ mesi.usr.shared_me_a_0 1) mesi.usr.exclusive_me_a_0) mesi.usr.modified_me_a_0) 1) mesi.usr.shared_me_a_0) (ite mesi.usr.etat_me2_a_1 mesi.usr.shared_me_a_0 (ite mesi.usr.etat_me3_a_1 (ite X2 0 mesi.usr.shared_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 0 mesi.usr.shared_me_a_0) mesi.usr.shared_me_a_0))))) (not mesi.res.init_flag_a_1))))))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.etat_me1_a_0 Bool) (top.usr.etat_me2_a_0 Bool) (top.usr.etat_me3_a_0 Bool) (top.usr.etat_me4_a_0 Bool) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.modified_me_a_0 Int) (top.impl.usr.exclusive_me_a_0 Int) (top.impl.usr.shared_me_a_0 Int) (top.impl.usr.invalid_me_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Int) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.invalid_me_a_0 top.res.abs_3_a_0) (= top.impl.usr.shared_me_a_0 top.res.abs_2_a_0) (= top.impl.usr.exclusive_me_a_0 top.res.abs_1_a_0) (= top.impl.usr.modified_me_a_0 top.res.abs_0_a_0) (let ((X1 top.res.abs_5_a_0)) (and (= top.usr.OK_a_0 (=> X1 (<= (+ (+ (+ top.res.abs_6_a_0 top.res.abs_7_a_0) top.res.abs_8_a_0) top.res.abs_9_a_0) 3))) (__node_init_Sofar_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_6_a_0) (__node_init_excludes4_0 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_4_a_0 top.res.inst_5_a_0) (__node_init_Abs_0 top.impl.usr.modified_me_a_0 top.res.abs_6_a_0 top.res.inst_4_a_0) (__node_init_mesi_0 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Abs_0 top.impl.usr.exclusive_me_a_0 top.res.abs_7_a_0 top.res.inst_2_a_0) (__node_init_Abs_0 top.impl.usr.shared_me_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_Abs_0 top.impl.usr.invalid_me_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.etat_me1_a_1 Bool) (top.usr.etat_me2_a_1 Bool) (top.usr.etat_me3_a_1 Bool) (top.usr.etat_me4_a_1 Bool) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.modified_me_a_1 Int) (top.impl.usr.exclusive_me_a_1 Int) (top.impl.usr.shared_me_a_1 Int) (top.impl.usr.invalid_me_a_1 Int) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.abs_9_a_1 Int) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Bool) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.etat_me1_a_0 Bool) (top.usr.etat_me2_a_0 Bool) (top.usr.etat_me3_a_0 Bool) (top.usr.etat_me4_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.modified_me_a_0 Int) (top.impl.usr.exclusive_me_a_0 Int) (top.impl.usr.shared_me_a_0 Int) (top.impl.usr.invalid_me_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Int) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.invalid_me_a_1 top.res.abs_3_a_1) (= top.impl.usr.shared_me_a_1 top.res.abs_2_a_1) (= top.impl.usr.exclusive_me_a_1 top.res.abs_1_a_1) (= top.impl.usr.modified_me_a_1 top.res.abs_0_a_1) (let ((X1 top.res.abs_5_a_1)) (and (= top.usr.OK_a_1 (=> X1 (<= (+ (+ (+ top.res.abs_6_a_1 top.res.abs_7_a_1) top.res.abs_8_a_1) top.res.abs_9_a_1) 3))) (__node_trans_Sofar_0 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_6_a_1 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_6_a_0) (__node_trans_excludes4_0 top.usr.etat_me1_a_1 top.usr.etat_me2_a_1 top.usr.etat_me3_a_1 top.usr.etat_me4_a_1 top.res.abs_4_a_1 top.res.inst_5_a_1 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_4_a_0 top.res.inst_5_a_0) (__node_trans_Abs_0 top.impl.usr.modified_me_a_1 top.res.abs_6_a_1 top.res.inst_4_a_1 top.impl.usr.modified_me_a_0 top.res.abs_6_a_0 top.res.inst_4_a_0) (__node_trans_mesi_0 top.usr.etat_me1_a_1 top.usr.etat_me2_a_1 top.usr.etat_me3_a_1 top.usr.etat_me4_a_1 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Abs_0 top.impl.usr.exclusive_me_a_1 top.res.abs_7_a_1 top.res.inst_2_a_1 top.impl.usr.exclusive_me_a_0 top.res.abs_7_a_0 top.res.inst_2_a_0) (__node_trans_Abs_0 top.impl.usr.shared_me_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.impl.usr.shared_me_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_Abs_0 top.impl.usr.invalid_me_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.impl.usr.invalid_me_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.modified_me Int) (top.impl.usr.exclusive_me Int) (top.impl.usr.shared_me Int) (top.impl.usr.invalid_me Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.modified_me Int) (top.impl.usr.exclusive_me Int) (top.impl.usr.shared_me Int) (top.impl.usr.invalid_me Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.invalid_me top.res.abs_3) (= top.impl.usr.shared_me top.res.abs_2) (= top.impl.usr.exclusive_me top.res.abs_1) (= top.impl.usr.modified_me top.res.abs_0) (let ((X1 top.res.abs_5)) (and (= top.usr.OK (=> X1 (<= (+ (+ (+ top.res.abs_6 top.res.abs_7) top.res.abs_8) top.res.abs_9) 3))) (__node_init_Sofar_0 top.res.abs_4 top.res.abs_5 top.res.inst_6) (__node_init_excludes4_0 top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_4 top.res.inst_5) (__node_init_Abs_0 top.impl.usr.modified_me top.res.abs_6 top.res.inst_4) (__node_init_mesi_0 top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Abs_0 top.impl.usr.exclusive_me top.res.abs_7 top.res.inst_2) (__node_init_Abs_0 top.impl.usr.shared_me top.res.abs_8 top.res.inst_1) (__node_init_Abs_0 top.impl.usr.invalid_me top.res.abs_9 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.modified_me Int) (top.impl.usr.exclusive_me Int) (top.impl.usr.shared_me Int) (top.impl.usr.invalid_me Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.etat_me1! Bool) (top.usr.etat_me2! Bool) (top.usr.etat_me3! Bool) (top.usr.etat_me4! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.modified_me! Int) (top.impl.usr.exclusive_me! Int) (top.impl.usr.shared_me! Int) (top.impl.usr.invalid_me! Int) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.abs_9! Int) (top.res.inst_6! Bool) (top.res.inst_5! Bool) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.impl.usr.invalid_me! top.res.abs_3!) (= top.impl.usr.shared_me! top.res.abs_2!) (= top.impl.usr.exclusive_me! top.res.abs_1!) (= top.impl.usr.modified_me! top.res.abs_0!) (let ((X1 top.res.abs_5!)) (and (= top.usr.OK! (=> X1 (<= (+ (+ (+ top.res.abs_6! top.res.abs_7!) top.res.abs_8!) top.res.abs_9!) 3))) (__node_trans_Sofar_0 top.res.abs_4! top.res.abs_5! top.res.inst_6! top.res.abs_4 top.res.abs_5 top.res.inst_6) (__node_trans_excludes4_0 top.usr.etat_me1! top.usr.etat_me2! top.usr.etat_me3! top.usr.etat_me4! top.res.abs_4! top.res.inst_5! top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_4 top.res.inst_5) (__node_trans_Abs_0 top.impl.usr.modified_me! top.res.abs_6! top.res.inst_4! top.impl.usr.modified_me top.res.abs_6 top.res.inst_4) (__node_trans_mesi_0 top.usr.etat_me1! top.usr.etat_me2! top.usr.etat_me3! top.usr.etat_me4! top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Abs_0 top.impl.usr.exclusive_me! top.res.abs_7! top.res.inst_2! top.impl.usr.exclusive_me top.res.abs_7 top.res.inst_2) (__node_trans_Abs_0 top.impl.usr.shared_me! top.res.abs_8! top.res.inst_1! top.impl.usr.shared_me top.res.abs_8 top.res.inst_1) (__node_trans_Abs_0 top.impl.usr.invalid_me! top.res.abs_9! top.res.inst_0! top.impl.usr.invalid_me top.res.abs_9 top.res.inst_0) (not top.res.init_flag!)))) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.modified_me Int) (top.impl.usr.exclusive_me Int) (top.impl.usr.shared_me Int) (top.impl.usr.invalid_me Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/MESI_3_e2_819_e1_1145.sl b/benchmarks/LIA/Lustre/MESI_3_e2_819_e1_1145.sl index acb0844..25ec6e8 100644 --- a/benchmarks/LIA/Lustre/MESI_3_e2_819_e1_1145.sl +++ b/benchmarks/LIA/Lustre/MESI_3_e2_819_e1_1145.sl @@ -1,862 +1,39 @@ (set-logic LIA) -(define-fun - __node_init_excludes4_0 ( - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_0 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) - (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) - excludes4.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes4_0 ( - (excludes4.usr.X1_a_1 Bool) - (excludes4.usr.X2_a_1 Bool) - (excludes4.usr.X3_a_1 Bool) - (excludes4.usr.X4_a_1 Bool) - (excludes4.usr.excludes_a_1 Bool) - (excludes4.res.init_flag_a_1 Bool) - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_1 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) - (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) - (not excludes4.res.init_flag_a_1)) -) - -(define-fun - __node_init_Abs_0 ( - (Abs.usr.X_a_0 Int) - (Abs.usr.Abs_a_0 Int) - (Abs.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Abs.usr.Abs_a_0 (ite (< Abs.usr.X_a_0 0) (- Abs.usr.X_a_0) Abs.usr.X_a_0)) - Abs.res.init_flag_a_0) -) - -(define-fun - __node_trans_Abs_0 ( - (Abs.usr.X_a_1 Int) - (Abs.usr.Abs_a_1 Int) - (Abs.res.init_flag_a_1 Bool) - (Abs.usr.X_a_0 Int) - (Abs.usr.Abs_a_0 Int) - (Abs.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Abs.usr.Abs_a_1 (ite (< Abs.usr.X_a_1 0) (- Abs.usr.X_a_1) Abs.usr.X_a_1)) - (not Abs.res.init_flag_a_1)) -) - -(define-fun - __node_init_mesi_0 ( - (mesi.usr.etat_me1_a_0 Bool) - (mesi.usr.etat_me2_a_0 Bool) - (mesi.usr.etat_me3_a_0 Bool) - (mesi.usr.etat_me4_a_0 Bool) - (mesi.res.nondet_3 Int) - (mesi.res.nondet_2 Int) - (mesi.res.nondet_1 Int) - (mesi.res.nondet_0 Int) - (mesi.usr.modified_me_a_0 Int) - (mesi.usr.exclusive_me_a_0 Int) - (mesi.usr.shared_me_a_0 Int) - (mesi.usr.invalid_me_a_0 Int) - (mesi.res.init_flag_a_0 Bool) - ) Bool - - (and - (= mesi.usr.modified_me_a_0 0) - (let - ((X1 Bool (let ((X1 Int mesi.res.nondet_0)) (>= X1 1)))) - (and - (= mesi.usr.invalid_me_a_0 3) - (= mesi.usr.exclusive_me_a_0 0) - (let - ((X2 Bool (let ((X2 Int mesi.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int mesi.res.nondet_2)) (>= X3 1)))) - (and - (= mesi.usr.shared_me_a_0 0) - (let - ((X4 Bool (let ((X4 Int mesi.res.nondet_3)) (>= X4 1)))) - mesi.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_mesi_0 ( - (mesi.usr.etat_me1_a_1 Bool) - (mesi.usr.etat_me2_a_1 Bool) - (mesi.usr.etat_me3_a_1 Bool) - (mesi.usr.etat_me4_a_1 Bool) - (mesi.res.nondet_3 Int) - (mesi.res.nondet_2 Int) - (mesi.res.nondet_1 Int) - (mesi.res.nondet_0 Int) - (mesi.usr.modified_me_a_1 Int) - (mesi.usr.exclusive_me_a_1 Int) - (mesi.usr.shared_me_a_1 Int) - (mesi.usr.invalid_me_a_1 Int) - (mesi.res.init_flag_a_1 Bool) - (mesi.usr.etat_me1_a_0 Bool) - (mesi.usr.etat_me2_a_0 Bool) - (mesi.usr.etat_me3_a_0 Bool) - (mesi.usr.etat_me4_a_0 Bool) - (mesi.usr.modified_me_a_0 Int) - (mesi.usr.exclusive_me_a_0 Int) - (mesi.usr.shared_me_a_0 Int) - (mesi.usr.invalid_me_a_0 Int) - (mesi.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= mesi.usr.invalid_me_a_0 1))) - (let - ((X2 Bool (>= mesi.usr.shared_me_a_0 1))) - (let - ((X3 Bool (>= mesi.usr.exclusive_me_a_0 1))) - (let - ((X4 Bool (>= mesi.usr.invalid_me_a_0 1))) - (and - (= - mesi.usr.modified_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 0 mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - (ite X3 (- mesi.usr.modified_me_a_0 1) mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me3_a_1 - (ite X2 0 mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 0 mesi.usr.modified_me_a_0) - mesi.usr.modified_me_a_0))))) - (= - mesi.usr.invalid_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 (- mesi.usr.invalid_me_a_0 1) mesi.usr.invalid_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - mesi.usr.invalid_me_a_0 - (ite - mesi.usr.etat_me3_a_1 - (ite - X2 - (- - (+ - (+ - (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) - mesi.usr.exclusive_me_a_0) - mesi.usr.shared_me_a_0) - 1) - mesi.usr.invalid_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite - X1 - (- - (+ - (+ - (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) - mesi.usr.exclusive_me_a_0) - mesi.usr.shared_me_a_0) - 1) - mesi.usr.invalid_me_a_0) - mesi.usr.invalid_me_a_0))))) - (= - mesi.usr.exclusive_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 0 mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - (ite X3 (- mesi.usr.exclusive_me_a_0 1) mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me3_a_1 - (ite X2 1 mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 1 mesi.usr.exclusive_me_a_0) - mesi.usr.exclusive_me_a_0))))) - (= - mesi.usr.shared_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite - X4 - (- - (+ - (+ (+ (- mesi.usr.shared_me_a_0 1) mesi.usr.exclusive_me_a_0) 1) - mesi.usr.modified_me_a_0) - 1) - mesi.usr.shared_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - mesi.usr.shared_me_a_0 - (ite - mesi.usr.etat_me3_a_1 - (ite X2 0 mesi.usr.shared_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 0 mesi.usr.shared_me_a_0) - mesi.usr.shared_me_a_0))))) - (not mesi.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.etat_me1_a_0 Bool) - (top.usr.etat_me2_a_0 Bool) - (top.usr.etat_me3_a_0 Bool) - (top.usr.etat_me4_a_0 Bool) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.modified_me_a_0 Int) - (top.impl.usr.exclusive_me_a_0 Int) - (top.impl.usr.shared_me_a_0 Int) - (top.impl.usr.invalid_me_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Int) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.invalid_me_a_0 top.res.abs_3_a_0) - (= top.impl.usr.shared_me_a_0 top.res.abs_2_a_0) - (= top.impl.usr.exclusive_me_a_0 top.res.abs_1_a_0) - (= top.impl.usr.modified_me_a_0 top.res.abs_0_a_0) - (let - ((X1 Bool top.res.abs_5_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (<= - (+ - (+ (+ top.res.abs_6_a_0 top.res.abs_7_a_0) top.res.abs_8_a_0) - top.res.abs_9_a_0) - 3))) - (__node_init_Sofar_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_6_a_0) - (__node_init_excludes4_0 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_4_a_0 - top.res.inst_5_a_0) - (__node_init_Abs_0 - top.impl.usr.modified_me_a_0 - top.res.abs_6_a_0 - top.res.inst_4_a_0) - (__node_init_mesi_0 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_init_Abs_0 - top.impl.usr.exclusive_me_a_0 - top.res.abs_7_a_0 - top.res.inst_2_a_0) - (__node_init_Abs_0 - top.impl.usr.shared_me_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_init_Abs_0 - top.impl.usr.invalid_me_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.etat_me1_a_1 Bool) - (top.usr.etat_me2_a_1 Bool) - (top.usr.etat_me3_a_1 Bool) - (top.usr.etat_me4_a_1 Bool) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.modified_me_a_1 Int) - (top.impl.usr.exclusive_me_a_1 Int) - (top.impl.usr.shared_me_a_1 Int) - (top.impl.usr.invalid_me_a_1 Int) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.abs_9_a_1 Int) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Bool) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.etat_me1_a_0 Bool) - (top.usr.etat_me2_a_0 Bool) - (top.usr.etat_me3_a_0 Bool) - (top.usr.etat_me4_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.modified_me_a_0 Int) - (top.impl.usr.exclusive_me_a_0 Int) - (top.impl.usr.shared_me_a_0 Int) - (top.impl.usr.invalid_me_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Int) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.invalid_me_a_1 top.res.abs_3_a_1) - (= top.impl.usr.shared_me_a_1 top.res.abs_2_a_1) - (= top.impl.usr.exclusive_me_a_1 top.res.abs_1_a_1) - (= top.impl.usr.modified_me_a_1 top.res.abs_0_a_1) - (let - ((X1 Bool top.res.abs_5_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (<= - (+ - (+ (+ top.res.abs_6_a_1 top.res.abs_7_a_1) top.res.abs_8_a_1) - top.res.abs_9_a_1) - 3))) - (__node_trans_Sofar_0 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_6_a_1 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_6_a_0) - (__node_trans_excludes4_0 - top.usr.etat_me1_a_1 - top.usr.etat_me2_a_1 - top.usr.etat_me3_a_1 - top.usr.etat_me4_a_1 - top.res.abs_4_a_1 - top.res.inst_5_a_1 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_4_a_0 - top.res.inst_5_a_0) - (__node_trans_Abs_0 - top.impl.usr.modified_me_a_1 - top.res.abs_6_a_1 - top.res.inst_4_a_1 - top.impl.usr.modified_me_a_0 - top.res.abs_6_a_0 - top.res.inst_4_a_0) - (__node_trans_mesi_0 - top.usr.etat_me1_a_1 - top.usr.etat_me2_a_1 - top.usr.etat_me3_a_1 - top.usr.etat_me4_a_1 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_trans_Abs_0 - top.impl.usr.exclusive_me_a_1 - top.res.abs_7_a_1 - top.res.inst_2_a_1 - top.impl.usr.exclusive_me_a_0 - top.res.abs_7_a_0 - top.res.inst_2_a_0) - (__node_trans_Abs_0 - top.impl.usr.shared_me_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.impl.usr.shared_me_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_Abs_0 - top.impl.usr.invalid_me_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.impl.usr.invalid_me_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.modified_me Int) - (top.impl.usr.exclusive_me Int) - (top.impl.usr.shared_me Int) - (top.impl.usr.invalid_me Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.etat_me1 Bool) -(declare-primed-var top.usr.etat_me2 Bool) -(declare-primed-var top.usr.etat_me3 Bool) -(declare-primed-var top.usr.etat_me4 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.modified_me Int) -(declare-primed-var top.impl.usr.exclusive_me Int) -(declare-primed-var top.impl.usr.shared_me Int) -(declare-primed-var top.impl.usr.invalid_me Int) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Bool) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.modified_me Int) - (top.impl.usr.exclusive_me Int) - (top.impl.usr.shared_me Int) - (top.impl.usr.invalid_me Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.impl.usr.invalid_me top.res.abs_3) - (= top.impl.usr.shared_me top.res.abs_2) - (= top.impl.usr.exclusive_me top.res.abs_1) - (= top.impl.usr.modified_me top.res.abs_0) - (let - ((X1 Bool top.res.abs_5)) - (and - (= - top.usr.OK - (=> - X1 - (<= - (+ (+ (+ top.res.abs_6 top.res.abs_7) top.res.abs_8) top.res.abs_9) - 3))) - (__node_init_Sofar_0 top.res.abs_4 top.res.abs_5 top.res.inst_6) - (__node_init_excludes4_0 - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_4 - top.res.inst_5) - (__node_init_Abs_0 - top.impl.usr.modified_me - top.res.abs_6 - top.res.inst_4) - (__node_init_mesi_0 - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_init_Abs_0 - top.impl.usr.exclusive_me - top.res.abs_7 - top.res.inst_2) - (__node_init_Abs_0 top.impl.usr.shared_me top.res.abs_8 top.res.inst_1) - (__node_init_Abs_0 top.impl.usr.invalid_me top.res.abs_9 top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.modified_me Int) - (top.impl.usr.exclusive_me Int) - (top.impl.usr.shared_me Int) - (top.impl.usr.invalid_me Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.etat_me1! Bool) - (top.usr.etat_me2! Bool) - (top.usr.etat_me3! Bool) - (top.usr.etat_me4! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.modified_me! Int) - (top.impl.usr.exclusive_me! Int) - (top.impl.usr.shared_me! Int) - (top.impl.usr.invalid_me! Int) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.abs_9! Int) - (top.res.inst_6! Bool) - (top.res.inst_5! Bool) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.impl.usr.invalid_me! top.res.abs_3!) - (= top.impl.usr.shared_me! top.res.abs_2!) - (= top.impl.usr.exclusive_me! top.res.abs_1!) - (= top.impl.usr.modified_me! top.res.abs_0!) - (let - ((X1 Bool top.res.abs_5!)) - (and - (= - top.usr.OK! - (=> - X1 - (<= - (+ - (+ (+ top.res.abs_6! top.res.abs_7!) top.res.abs_8!) - top.res.abs_9!) - 3))) - (__node_trans_Sofar_0 - top.res.abs_4! - top.res.abs_5! - top.res.inst_6! - top.res.abs_4 - top.res.abs_5 - top.res.inst_6) - (__node_trans_excludes4_0 - top.usr.etat_me1! - top.usr.etat_me2! - top.usr.etat_me3! - top.usr.etat_me4! - top.res.abs_4! - top.res.inst_5! - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_4 - top.res.inst_5) - (__node_trans_Abs_0 - top.impl.usr.modified_me! - top.res.abs_6! - top.res.inst_4! - top.impl.usr.modified_me - top.res.abs_6 - top.res.inst_4) - (__node_trans_mesi_0 - top.usr.etat_me1! - top.usr.etat_me2! - top.usr.etat_me3! - top.usr.etat_me4! - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_trans_Abs_0 - top.impl.usr.exclusive_me! - top.res.abs_7! - top.res.inst_2! - top.impl.usr.exclusive_me - top.res.abs_7 - top.res.inst_2) - (__node_trans_Abs_0 - top.impl.usr.shared_me! - top.res.abs_8! - top.res.inst_1! - top.impl.usr.shared_me - top.res.abs_8 - top.res.inst_1) - (__node_trans_Abs_0 - top.impl.usr.invalid_me! - top.res.abs_9! - top.res.inst_0! - top.impl.usr.invalid_me - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.modified_me Int) - (top.impl.usr.exclusive_me Int) - (top.impl.usr.shared_me Int) - (top.impl.usr.invalid_me Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_excludes4_0 ((excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_0 (not (or (or (or (or (or (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) excludes4.res.init_flag_a_0)) +(define-fun __node_trans_excludes4_0 ((excludes4.usr.X1_a_1 Bool) (excludes4.usr.X2_a_1 Bool) (excludes4.usr.X3_a_1 Bool) (excludes4.usr.X4_a_1 Bool) (excludes4.usr.excludes_a_1 Bool) (excludes4.res.init_flag_a_1 Bool) (excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_1 (not (or (or (or (or (or (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) (not excludes4.res.init_flag_a_1))) +(define-fun __node_init_Abs_0 ((Abs.usr.X_a_0 Int) (Abs.usr.Abs_a_0 Int) (Abs.res.init_flag_a_0 Bool)) Bool + (and (= Abs.usr.Abs_a_0 (ite (< Abs.usr.X_a_0 0) (- Abs.usr.X_a_0) Abs.usr.X_a_0)) Abs.res.init_flag_a_0)) +(define-fun __node_trans_Abs_0 ((Abs.usr.X_a_1 Int) (Abs.usr.Abs_a_1 Int) (Abs.res.init_flag_a_1 Bool) (Abs.usr.X_a_0 Int) (Abs.usr.Abs_a_0 Int) (Abs.res.init_flag_a_0 Bool)) Bool + (and (= Abs.usr.Abs_a_1 (ite (< Abs.usr.X_a_1 0) (- Abs.usr.X_a_1) Abs.usr.X_a_1)) (not Abs.res.init_flag_a_1))) +(define-fun __node_init_mesi_0 ((mesi.usr.etat_me1_a_0 Bool) (mesi.usr.etat_me2_a_0 Bool) (mesi.usr.etat_me3_a_0 Bool) (mesi.usr.etat_me4_a_0 Bool) (mesi.res.nondet_3 Int) (mesi.res.nondet_2 Int) (mesi.res.nondet_1 Int) (mesi.res.nondet_0 Int) (mesi.usr.modified_me_a_0 Int) (mesi.usr.exclusive_me_a_0 Int) (mesi.usr.shared_me_a_0 Int) (mesi.usr.invalid_me_a_0 Int) (mesi.res.init_flag_a_0 Bool)) Bool + (and (= mesi.usr.modified_me_a_0 0) (let ((X1 (let ((X1 mesi.res.nondet_0)) (>= X1 1)))) (and (= mesi.usr.invalid_me_a_0 3) (= mesi.usr.exclusive_me_a_0 0) (let ((X2 (let ((X2 mesi.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 mesi.res.nondet_2)) (>= X3 1)))) (and (= mesi.usr.shared_me_a_0 0) (let ((X4 (let ((X4 mesi.res.nondet_3)) (>= X4 1)))) mesi.res.init_flag_a_0)))))))) +(define-fun __node_trans_mesi_0 ((mesi.usr.etat_me1_a_1 Bool) (mesi.usr.etat_me2_a_1 Bool) (mesi.usr.etat_me3_a_1 Bool) (mesi.usr.etat_me4_a_1 Bool) (mesi.res.nondet_3 Int) (mesi.res.nondet_2 Int) (mesi.res.nondet_1 Int) (mesi.res.nondet_0 Int) (mesi.usr.modified_me_a_1 Int) (mesi.usr.exclusive_me_a_1 Int) (mesi.usr.shared_me_a_1 Int) (mesi.usr.invalid_me_a_1 Int) (mesi.res.init_flag_a_1 Bool) (mesi.usr.etat_me1_a_0 Bool) (mesi.usr.etat_me2_a_0 Bool) (mesi.usr.etat_me3_a_0 Bool) (mesi.usr.etat_me4_a_0 Bool) (mesi.usr.modified_me_a_0 Int) (mesi.usr.exclusive_me_a_0 Int) (mesi.usr.shared_me_a_0 Int) (mesi.usr.invalid_me_a_0 Int) (mesi.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= mesi.usr.invalid_me_a_0 1))) (let ((X2 (>= mesi.usr.shared_me_a_0 1))) (let ((X3 (>= mesi.usr.exclusive_me_a_0 1))) (let ((X4 (>= mesi.usr.invalid_me_a_0 1))) (and (= mesi.usr.modified_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 0 mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me2_a_1 (ite X3 (- mesi.usr.modified_me_a_0 1) mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me3_a_1 (ite X2 0 mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 0 mesi.usr.modified_me_a_0) mesi.usr.modified_me_a_0))))) (= mesi.usr.invalid_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 (- mesi.usr.invalid_me_a_0 1) mesi.usr.invalid_me_a_0) (ite mesi.usr.etat_me2_a_1 mesi.usr.invalid_me_a_0 (ite mesi.usr.etat_me3_a_1 (ite X2 (- (+ (+ (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) mesi.usr.exclusive_me_a_0) mesi.usr.shared_me_a_0) 1) mesi.usr.invalid_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 (- (+ (+ (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) mesi.usr.exclusive_me_a_0) mesi.usr.shared_me_a_0) 1) mesi.usr.invalid_me_a_0) mesi.usr.invalid_me_a_0))))) (= mesi.usr.exclusive_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 0 mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me2_a_1 (ite X3 (- mesi.usr.exclusive_me_a_0 1) mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me3_a_1 (ite X2 1 mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 1 mesi.usr.exclusive_me_a_0) mesi.usr.exclusive_me_a_0))))) (= mesi.usr.shared_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 (- (+ (+ (+ (- mesi.usr.shared_me_a_0 1) mesi.usr.exclusive_me_a_0) 1) mesi.usr.modified_me_a_0) 1) mesi.usr.shared_me_a_0) (ite mesi.usr.etat_me2_a_1 mesi.usr.shared_me_a_0 (ite mesi.usr.etat_me3_a_1 (ite X2 0 mesi.usr.shared_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 0 mesi.usr.shared_me_a_0) mesi.usr.shared_me_a_0))))) (not mesi.res.init_flag_a_1))))))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.etat_me1_a_0 Bool) (top.usr.etat_me2_a_0 Bool) (top.usr.etat_me3_a_0 Bool) (top.usr.etat_me4_a_0 Bool) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.modified_me_a_0 Int) (top.impl.usr.exclusive_me_a_0 Int) (top.impl.usr.shared_me_a_0 Int) (top.impl.usr.invalid_me_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Int) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.invalid_me_a_0 top.res.abs_3_a_0) (= top.impl.usr.shared_me_a_0 top.res.abs_2_a_0) (= top.impl.usr.exclusive_me_a_0 top.res.abs_1_a_0) (= top.impl.usr.modified_me_a_0 top.res.abs_0_a_0) (let ((X1 top.res.abs_5_a_0)) (and (= top.usr.OK_a_0 (=> X1 (<= (+ (+ (+ top.res.abs_6_a_0 top.res.abs_7_a_0) top.res.abs_8_a_0) top.res.abs_9_a_0) 3))) (__node_init_Sofar_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_6_a_0) (__node_init_excludes4_0 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_4_a_0 top.res.inst_5_a_0) (__node_init_Abs_0 top.impl.usr.modified_me_a_0 top.res.abs_6_a_0 top.res.inst_4_a_0) (__node_init_mesi_0 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Abs_0 top.impl.usr.exclusive_me_a_0 top.res.abs_7_a_0 top.res.inst_2_a_0) (__node_init_Abs_0 top.impl.usr.shared_me_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_Abs_0 top.impl.usr.invalid_me_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.etat_me1_a_1 Bool) (top.usr.etat_me2_a_1 Bool) (top.usr.etat_me3_a_1 Bool) (top.usr.etat_me4_a_1 Bool) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.modified_me_a_1 Int) (top.impl.usr.exclusive_me_a_1 Int) (top.impl.usr.shared_me_a_1 Int) (top.impl.usr.invalid_me_a_1 Int) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.abs_9_a_1 Int) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Bool) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.etat_me1_a_0 Bool) (top.usr.etat_me2_a_0 Bool) (top.usr.etat_me3_a_0 Bool) (top.usr.etat_me4_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.modified_me_a_0 Int) (top.impl.usr.exclusive_me_a_0 Int) (top.impl.usr.shared_me_a_0 Int) (top.impl.usr.invalid_me_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Int) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.invalid_me_a_1 top.res.abs_3_a_1) (= top.impl.usr.shared_me_a_1 top.res.abs_2_a_1) (= top.impl.usr.exclusive_me_a_1 top.res.abs_1_a_1) (= top.impl.usr.modified_me_a_1 top.res.abs_0_a_1) (let ((X1 top.res.abs_5_a_1)) (and (= top.usr.OK_a_1 (=> X1 (<= (+ (+ (+ top.res.abs_6_a_1 top.res.abs_7_a_1) top.res.abs_8_a_1) top.res.abs_9_a_1) 3))) (__node_trans_Sofar_0 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_6_a_1 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_6_a_0) (__node_trans_excludes4_0 top.usr.etat_me1_a_1 top.usr.etat_me2_a_1 top.usr.etat_me3_a_1 top.usr.etat_me4_a_1 top.res.abs_4_a_1 top.res.inst_5_a_1 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_4_a_0 top.res.inst_5_a_0) (__node_trans_Abs_0 top.impl.usr.modified_me_a_1 top.res.abs_6_a_1 top.res.inst_4_a_1 top.impl.usr.modified_me_a_0 top.res.abs_6_a_0 top.res.inst_4_a_0) (__node_trans_mesi_0 top.usr.etat_me1_a_1 top.usr.etat_me2_a_1 top.usr.etat_me3_a_1 top.usr.etat_me4_a_1 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Abs_0 top.impl.usr.exclusive_me_a_1 top.res.abs_7_a_1 top.res.inst_2_a_1 top.impl.usr.exclusive_me_a_0 top.res.abs_7_a_0 top.res.inst_2_a_0) (__node_trans_Abs_0 top.impl.usr.shared_me_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.impl.usr.shared_me_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_Abs_0 top.impl.usr.invalid_me_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.impl.usr.invalid_me_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.modified_me Int) (top.impl.usr.exclusive_me Int) (top.impl.usr.shared_me Int) (top.impl.usr.invalid_me Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.modified_me Int) (top.impl.usr.exclusive_me Int) (top.impl.usr.shared_me Int) (top.impl.usr.invalid_me Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.invalid_me top.res.abs_3) (= top.impl.usr.shared_me top.res.abs_2) (= top.impl.usr.exclusive_me top.res.abs_1) (= top.impl.usr.modified_me top.res.abs_0) (let ((X1 top.res.abs_5)) (and (= top.usr.OK (=> X1 (<= (+ (+ (+ top.res.abs_6 top.res.abs_7) top.res.abs_8) top.res.abs_9) 3))) (__node_init_Sofar_0 top.res.abs_4 top.res.abs_5 top.res.inst_6) (__node_init_excludes4_0 top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_4 top.res.inst_5) (__node_init_Abs_0 top.impl.usr.modified_me top.res.abs_6 top.res.inst_4) (__node_init_mesi_0 top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Abs_0 top.impl.usr.exclusive_me top.res.abs_7 top.res.inst_2) (__node_init_Abs_0 top.impl.usr.shared_me top.res.abs_8 top.res.inst_1) (__node_init_Abs_0 top.impl.usr.invalid_me top.res.abs_9 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.modified_me Int) (top.impl.usr.exclusive_me Int) (top.impl.usr.shared_me Int) (top.impl.usr.invalid_me Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.etat_me1! Bool) (top.usr.etat_me2! Bool) (top.usr.etat_me3! Bool) (top.usr.etat_me4! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.modified_me! Int) (top.impl.usr.exclusive_me! Int) (top.impl.usr.shared_me! Int) (top.impl.usr.invalid_me! Int) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.abs_9! Int) (top.res.inst_6! Bool) (top.res.inst_5! Bool) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.impl.usr.invalid_me! top.res.abs_3!) (= top.impl.usr.shared_me! top.res.abs_2!) (= top.impl.usr.exclusive_me! top.res.abs_1!) (= top.impl.usr.modified_me! top.res.abs_0!) (let ((X1 top.res.abs_5!)) (and (= top.usr.OK! (=> X1 (<= (+ (+ (+ top.res.abs_6! top.res.abs_7!) top.res.abs_8!) top.res.abs_9!) 3))) (__node_trans_Sofar_0 top.res.abs_4! top.res.abs_5! top.res.inst_6! top.res.abs_4 top.res.abs_5 top.res.inst_6) (__node_trans_excludes4_0 top.usr.etat_me1! top.usr.etat_me2! top.usr.etat_me3! top.usr.etat_me4! top.res.abs_4! top.res.inst_5! top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_4 top.res.inst_5) (__node_trans_Abs_0 top.impl.usr.modified_me! top.res.abs_6! top.res.inst_4! top.impl.usr.modified_me top.res.abs_6 top.res.inst_4) (__node_trans_mesi_0 top.usr.etat_me1! top.usr.etat_me2! top.usr.etat_me3! top.usr.etat_me4! top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Abs_0 top.impl.usr.exclusive_me! top.res.abs_7! top.res.inst_2! top.impl.usr.exclusive_me top.res.abs_7 top.res.inst_2) (__node_trans_Abs_0 top.impl.usr.shared_me! top.res.abs_8! top.res.inst_1! top.impl.usr.shared_me top.res.abs_8 top.res.inst_1) (__node_trans_Abs_0 top.impl.usr.invalid_me! top.res.abs_9! top.res.inst_0! top.impl.usr.invalid_me top.res.abs_9 top.res.inst_0) (not top.res.init_flag!)))) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.modified_me Int) (top.impl.usr.exclusive_me Int) (top.impl.usr.shared_me Int) (top.impl.usr.invalid_me Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/MESI_3_e2_819_e4_1595.sl b/benchmarks/LIA/Lustre/MESI_3_e2_819_e4_1595.sl index 245e8da..d604320 100644 --- a/benchmarks/LIA/Lustre/MESI_3_e2_819_e4_1595.sl +++ b/benchmarks/LIA/Lustre/MESI_3_e2_819_e4_1595.sl @@ -1,864 +1,39 @@ (set-logic LIA) -(define-fun - __node_init_excludes4_0 ( - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_0 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) - (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) - excludes4.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes4_0 ( - (excludes4.usr.X1_a_1 Bool) - (excludes4.usr.X2_a_1 Bool) - (excludes4.usr.X3_a_1 Bool) - (excludes4.usr.X4_a_1 Bool) - (excludes4.usr.excludes_a_1 Bool) - (excludes4.res.init_flag_a_1 Bool) - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_1 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) - (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) - (not excludes4.res.init_flag_a_1)) -) - -(define-fun - __node_init_Abs_0 ( - (Abs.usr.X_a_0 Int) - (Abs.usr.Abs_a_0 Int) - (Abs.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Abs.usr.Abs_a_0 (ite (< Abs.usr.X_a_0 0) (- Abs.usr.X_a_0) Abs.usr.X_a_0)) - Abs.res.init_flag_a_0) -) - -(define-fun - __node_trans_Abs_0 ( - (Abs.usr.X_a_1 Int) - (Abs.usr.Abs_a_1 Int) - (Abs.res.init_flag_a_1 Bool) - (Abs.usr.X_a_0 Int) - (Abs.usr.Abs_a_0 Int) - (Abs.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Abs.usr.Abs_a_1 (ite (< Abs.usr.X_a_1 0) (- Abs.usr.X_a_1) Abs.usr.X_a_1)) - (not Abs.res.init_flag_a_1)) -) - -(define-fun - __node_init_mesi_0 ( - (mesi.usr.etat_me1_a_0 Bool) - (mesi.usr.etat_me2_a_0 Bool) - (mesi.usr.etat_me3_a_0 Bool) - (mesi.usr.etat_me4_a_0 Bool) - (mesi.res.nondet_3 Int) - (mesi.res.nondet_2 Int) - (mesi.res.nondet_1 Int) - (mesi.res.nondet_0 Int) - (mesi.usr.modified_me_a_0 Int) - (mesi.usr.exclusive_me_a_0 Int) - (mesi.usr.shared_me_a_0 Int) - (mesi.usr.invalid_me_a_0 Int) - (mesi.res.init_flag_a_0 Bool) - ) Bool - - (and - (= mesi.usr.modified_me_a_0 0) - (let - ((X1 Bool (let ((X1 Int mesi.res.nondet_0)) (>= X1 1)))) - (and - (= mesi.usr.invalid_me_a_0 3) - (= mesi.usr.exclusive_me_a_0 0) - (let - ((X2 Bool (let ((X2 Int mesi.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int mesi.res.nondet_2)) (>= X3 1)))) - (and - (= mesi.usr.shared_me_a_0 0) - (let - ((X4 Bool (let ((X4 Int mesi.res.nondet_3)) (>= X4 1)))) - mesi.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_mesi_0 ( - (mesi.usr.etat_me1_a_1 Bool) - (mesi.usr.etat_me2_a_1 Bool) - (mesi.usr.etat_me3_a_1 Bool) - (mesi.usr.etat_me4_a_1 Bool) - (mesi.res.nondet_3 Int) - (mesi.res.nondet_2 Int) - (mesi.res.nondet_1 Int) - (mesi.res.nondet_0 Int) - (mesi.usr.modified_me_a_1 Int) - (mesi.usr.exclusive_me_a_1 Int) - (mesi.usr.shared_me_a_1 Int) - (mesi.usr.invalid_me_a_1 Int) - (mesi.res.init_flag_a_1 Bool) - (mesi.usr.etat_me1_a_0 Bool) - (mesi.usr.etat_me2_a_0 Bool) - (mesi.usr.etat_me3_a_0 Bool) - (mesi.usr.etat_me4_a_0 Bool) - (mesi.usr.modified_me_a_0 Int) - (mesi.usr.exclusive_me_a_0 Int) - (mesi.usr.shared_me_a_0 Int) - (mesi.usr.invalid_me_a_0 Int) - (mesi.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= mesi.usr.invalid_me_a_0 1))) - (let - ((X2 Bool (>= mesi.usr.shared_me_a_0 1))) - (let - ((X3 Bool (>= mesi.usr.exclusive_me_a_0 1))) - (let - ((X4 Bool (>= mesi.usr.invalid_me_a_0 1))) - (and - (= - mesi.usr.modified_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 0 mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - (ite X3 (- mesi.usr.modified_me_a_0 1) mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me3_a_1 - (ite X2 0 mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 0 mesi.usr.modified_me_a_0) - mesi.usr.modified_me_a_0))))) - (= - mesi.usr.invalid_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 (- mesi.usr.invalid_me_a_0 1) mesi.usr.invalid_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - mesi.usr.invalid_me_a_0 - (ite - mesi.usr.etat_me3_a_1 - (ite - X2 - (- - (+ - (+ - (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) - mesi.usr.exclusive_me_a_0) - mesi.usr.shared_me_a_0) - 1) - mesi.usr.invalid_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite - X1 - (- - (+ - (+ - (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) - mesi.usr.exclusive_me_a_0) - mesi.usr.shared_me_a_0) - 1) - mesi.usr.invalid_me_a_0) - mesi.usr.invalid_me_a_0))))) - (= - mesi.usr.exclusive_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 0 mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - (ite X3 (- mesi.usr.exclusive_me_a_0 1) mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me3_a_1 - (ite X2 1 mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 1 mesi.usr.exclusive_me_a_0) - mesi.usr.exclusive_me_a_0))))) - (= - mesi.usr.shared_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite - X4 - (- - (+ - (+ - (+ (- mesi.usr.shared_me_a_0 1) mesi.usr.exclusive_me_a_0) - mesi.usr.modified_me_a_0) - 1) - 1) - mesi.usr.shared_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - mesi.usr.shared_me_a_0 - (ite - mesi.usr.etat_me3_a_1 - (ite X2 0 mesi.usr.shared_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 0 mesi.usr.shared_me_a_0) - mesi.usr.shared_me_a_0))))) - (not mesi.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.etat_me1_a_0 Bool) - (top.usr.etat_me2_a_0 Bool) - (top.usr.etat_me3_a_0 Bool) - (top.usr.etat_me4_a_0 Bool) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.modified_me_a_0 Int) - (top.impl.usr.exclusive_me_a_0 Int) - (top.impl.usr.shared_me_a_0 Int) - (top.impl.usr.invalid_me_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Int) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.invalid_me_a_0 top.res.abs_3_a_0) - (= top.impl.usr.shared_me_a_0 top.res.abs_2_a_0) - (= top.impl.usr.exclusive_me_a_0 top.res.abs_1_a_0) - (= top.impl.usr.modified_me_a_0 top.res.abs_0_a_0) - (let - ((X1 Bool top.res.abs_5_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (<= - (+ - (+ (+ top.res.abs_6_a_0 top.res.abs_7_a_0) top.res.abs_8_a_0) - top.res.abs_9_a_0) - 3))) - (__node_init_Sofar_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_6_a_0) - (__node_init_excludes4_0 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_4_a_0 - top.res.inst_5_a_0) - (__node_init_Abs_0 - top.impl.usr.modified_me_a_0 - top.res.abs_6_a_0 - top.res.inst_4_a_0) - (__node_init_mesi_0 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_init_Abs_0 - top.impl.usr.exclusive_me_a_0 - top.res.abs_7_a_0 - top.res.inst_2_a_0) - (__node_init_Abs_0 - top.impl.usr.shared_me_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_init_Abs_0 - top.impl.usr.invalid_me_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.etat_me1_a_1 Bool) - (top.usr.etat_me2_a_1 Bool) - (top.usr.etat_me3_a_1 Bool) - (top.usr.etat_me4_a_1 Bool) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.modified_me_a_1 Int) - (top.impl.usr.exclusive_me_a_1 Int) - (top.impl.usr.shared_me_a_1 Int) - (top.impl.usr.invalid_me_a_1 Int) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.abs_9_a_1 Int) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Bool) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.etat_me1_a_0 Bool) - (top.usr.etat_me2_a_0 Bool) - (top.usr.etat_me3_a_0 Bool) - (top.usr.etat_me4_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.modified_me_a_0 Int) - (top.impl.usr.exclusive_me_a_0 Int) - (top.impl.usr.shared_me_a_0 Int) - (top.impl.usr.invalid_me_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Int) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.invalid_me_a_1 top.res.abs_3_a_1) - (= top.impl.usr.shared_me_a_1 top.res.abs_2_a_1) - (= top.impl.usr.exclusive_me_a_1 top.res.abs_1_a_1) - (= top.impl.usr.modified_me_a_1 top.res.abs_0_a_1) - (let - ((X1 Bool top.res.abs_5_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (<= - (+ - (+ (+ top.res.abs_6_a_1 top.res.abs_7_a_1) top.res.abs_8_a_1) - top.res.abs_9_a_1) - 3))) - (__node_trans_Sofar_0 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_6_a_1 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_6_a_0) - (__node_trans_excludes4_0 - top.usr.etat_me1_a_1 - top.usr.etat_me2_a_1 - top.usr.etat_me3_a_1 - top.usr.etat_me4_a_1 - top.res.abs_4_a_1 - top.res.inst_5_a_1 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_4_a_0 - top.res.inst_5_a_0) - (__node_trans_Abs_0 - top.impl.usr.modified_me_a_1 - top.res.abs_6_a_1 - top.res.inst_4_a_1 - top.impl.usr.modified_me_a_0 - top.res.abs_6_a_0 - top.res.inst_4_a_0) - (__node_trans_mesi_0 - top.usr.etat_me1_a_1 - top.usr.etat_me2_a_1 - top.usr.etat_me3_a_1 - top.usr.etat_me4_a_1 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_trans_Abs_0 - top.impl.usr.exclusive_me_a_1 - top.res.abs_7_a_1 - top.res.inst_2_a_1 - top.impl.usr.exclusive_me_a_0 - top.res.abs_7_a_0 - top.res.inst_2_a_0) - (__node_trans_Abs_0 - top.impl.usr.shared_me_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.impl.usr.shared_me_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_Abs_0 - top.impl.usr.invalid_me_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.impl.usr.invalid_me_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.modified_me Int) - (top.impl.usr.exclusive_me Int) - (top.impl.usr.shared_me Int) - (top.impl.usr.invalid_me Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.etat_me1 Bool) -(declare-primed-var top.usr.etat_me2 Bool) -(declare-primed-var top.usr.etat_me3 Bool) -(declare-primed-var top.usr.etat_me4 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.modified_me Int) -(declare-primed-var top.impl.usr.exclusive_me Int) -(declare-primed-var top.impl.usr.shared_me Int) -(declare-primed-var top.impl.usr.invalid_me Int) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Bool) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.modified_me Int) - (top.impl.usr.exclusive_me Int) - (top.impl.usr.shared_me Int) - (top.impl.usr.invalid_me Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.impl.usr.invalid_me top.res.abs_3) - (= top.impl.usr.shared_me top.res.abs_2) - (= top.impl.usr.exclusive_me top.res.abs_1) - (= top.impl.usr.modified_me top.res.abs_0) - (let - ((X1 Bool top.res.abs_5)) - (and - (= - top.usr.OK - (=> - X1 - (<= - (+ (+ (+ top.res.abs_6 top.res.abs_7) top.res.abs_8) top.res.abs_9) - 3))) - (__node_init_Sofar_0 top.res.abs_4 top.res.abs_5 top.res.inst_6) - (__node_init_excludes4_0 - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_4 - top.res.inst_5) - (__node_init_Abs_0 - top.impl.usr.modified_me - top.res.abs_6 - top.res.inst_4) - (__node_init_mesi_0 - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_init_Abs_0 - top.impl.usr.exclusive_me - top.res.abs_7 - top.res.inst_2) - (__node_init_Abs_0 top.impl.usr.shared_me top.res.abs_8 top.res.inst_1) - (__node_init_Abs_0 top.impl.usr.invalid_me top.res.abs_9 top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.modified_me Int) - (top.impl.usr.exclusive_me Int) - (top.impl.usr.shared_me Int) - (top.impl.usr.invalid_me Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.etat_me1! Bool) - (top.usr.etat_me2! Bool) - (top.usr.etat_me3! Bool) - (top.usr.etat_me4! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.modified_me! Int) - (top.impl.usr.exclusive_me! Int) - (top.impl.usr.shared_me! Int) - (top.impl.usr.invalid_me! Int) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.abs_9! Int) - (top.res.inst_6! Bool) - (top.res.inst_5! Bool) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.impl.usr.invalid_me! top.res.abs_3!) - (= top.impl.usr.shared_me! top.res.abs_2!) - (= top.impl.usr.exclusive_me! top.res.abs_1!) - (= top.impl.usr.modified_me! top.res.abs_0!) - (let - ((X1 Bool top.res.abs_5!)) - (and - (= - top.usr.OK! - (=> - X1 - (<= - (+ - (+ (+ top.res.abs_6! top.res.abs_7!) top.res.abs_8!) - top.res.abs_9!) - 3))) - (__node_trans_Sofar_0 - top.res.abs_4! - top.res.abs_5! - top.res.inst_6! - top.res.abs_4 - top.res.abs_5 - top.res.inst_6) - (__node_trans_excludes4_0 - top.usr.etat_me1! - top.usr.etat_me2! - top.usr.etat_me3! - top.usr.etat_me4! - top.res.abs_4! - top.res.inst_5! - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_4 - top.res.inst_5) - (__node_trans_Abs_0 - top.impl.usr.modified_me! - top.res.abs_6! - top.res.inst_4! - top.impl.usr.modified_me - top.res.abs_6 - top.res.inst_4) - (__node_trans_mesi_0 - top.usr.etat_me1! - top.usr.etat_me2! - top.usr.etat_me3! - top.usr.etat_me4! - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_trans_Abs_0 - top.impl.usr.exclusive_me! - top.res.abs_7! - top.res.inst_2! - top.impl.usr.exclusive_me - top.res.abs_7 - top.res.inst_2) - (__node_trans_Abs_0 - top.impl.usr.shared_me! - top.res.abs_8! - top.res.inst_1! - top.impl.usr.shared_me - top.res.abs_8 - top.res.inst_1) - (__node_trans_Abs_0 - top.impl.usr.invalid_me! - top.res.abs_9! - top.res.inst_0! - top.impl.usr.invalid_me - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.modified_me Int) - (top.impl.usr.exclusive_me Int) - (top.impl.usr.shared_me Int) - (top.impl.usr.invalid_me Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_excludes4_0 ((excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_0 (not (or (or (or (or (or (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) excludes4.res.init_flag_a_0)) +(define-fun __node_trans_excludes4_0 ((excludes4.usr.X1_a_1 Bool) (excludes4.usr.X2_a_1 Bool) (excludes4.usr.X3_a_1 Bool) (excludes4.usr.X4_a_1 Bool) (excludes4.usr.excludes_a_1 Bool) (excludes4.res.init_flag_a_1 Bool) (excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_1 (not (or (or (or (or (or (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) (not excludes4.res.init_flag_a_1))) +(define-fun __node_init_Abs_0 ((Abs.usr.X_a_0 Int) (Abs.usr.Abs_a_0 Int) (Abs.res.init_flag_a_0 Bool)) Bool + (and (= Abs.usr.Abs_a_0 (ite (< Abs.usr.X_a_0 0) (- Abs.usr.X_a_0) Abs.usr.X_a_0)) Abs.res.init_flag_a_0)) +(define-fun __node_trans_Abs_0 ((Abs.usr.X_a_1 Int) (Abs.usr.Abs_a_1 Int) (Abs.res.init_flag_a_1 Bool) (Abs.usr.X_a_0 Int) (Abs.usr.Abs_a_0 Int) (Abs.res.init_flag_a_0 Bool)) Bool + (and (= Abs.usr.Abs_a_1 (ite (< Abs.usr.X_a_1 0) (- Abs.usr.X_a_1) Abs.usr.X_a_1)) (not Abs.res.init_flag_a_1))) +(define-fun __node_init_mesi_0 ((mesi.usr.etat_me1_a_0 Bool) (mesi.usr.etat_me2_a_0 Bool) (mesi.usr.etat_me3_a_0 Bool) (mesi.usr.etat_me4_a_0 Bool) (mesi.res.nondet_3 Int) (mesi.res.nondet_2 Int) (mesi.res.nondet_1 Int) (mesi.res.nondet_0 Int) (mesi.usr.modified_me_a_0 Int) (mesi.usr.exclusive_me_a_0 Int) (mesi.usr.shared_me_a_0 Int) (mesi.usr.invalid_me_a_0 Int) (mesi.res.init_flag_a_0 Bool)) Bool + (and (= mesi.usr.modified_me_a_0 0) (let ((X1 (let ((X1 mesi.res.nondet_0)) (>= X1 1)))) (and (= mesi.usr.invalid_me_a_0 3) (= mesi.usr.exclusive_me_a_0 0) (let ((X2 (let ((X2 mesi.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 mesi.res.nondet_2)) (>= X3 1)))) (and (= mesi.usr.shared_me_a_0 0) (let ((X4 (let ((X4 mesi.res.nondet_3)) (>= X4 1)))) mesi.res.init_flag_a_0)))))))) +(define-fun __node_trans_mesi_0 ((mesi.usr.etat_me1_a_1 Bool) (mesi.usr.etat_me2_a_1 Bool) (mesi.usr.etat_me3_a_1 Bool) (mesi.usr.etat_me4_a_1 Bool) (mesi.res.nondet_3 Int) (mesi.res.nondet_2 Int) (mesi.res.nondet_1 Int) (mesi.res.nondet_0 Int) (mesi.usr.modified_me_a_1 Int) (mesi.usr.exclusive_me_a_1 Int) (mesi.usr.shared_me_a_1 Int) (mesi.usr.invalid_me_a_1 Int) (mesi.res.init_flag_a_1 Bool) (mesi.usr.etat_me1_a_0 Bool) (mesi.usr.etat_me2_a_0 Bool) (mesi.usr.etat_me3_a_0 Bool) (mesi.usr.etat_me4_a_0 Bool) (mesi.usr.modified_me_a_0 Int) (mesi.usr.exclusive_me_a_0 Int) (mesi.usr.shared_me_a_0 Int) (mesi.usr.invalid_me_a_0 Int) (mesi.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= mesi.usr.invalid_me_a_0 1))) (let ((X2 (>= mesi.usr.shared_me_a_0 1))) (let ((X3 (>= mesi.usr.exclusive_me_a_0 1))) (let ((X4 (>= mesi.usr.invalid_me_a_0 1))) (and (= mesi.usr.modified_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 0 mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me2_a_1 (ite X3 (- mesi.usr.modified_me_a_0 1) mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me3_a_1 (ite X2 0 mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 0 mesi.usr.modified_me_a_0) mesi.usr.modified_me_a_0))))) (= mesi.usr.invalid_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 (- mesi.usr.invalid_me_a_0 1) mesi.usr.invalid_me_a_0) (ite mesi.usr.etat_me2_a_1 mesi.usr.invalid_me_a_0 (ite mesi.usr.etat_me3_a_1 (ite X2 (- (+ (+ (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) mesi.usr.exclusive_me_a_0) mesi.usr.shared_me_a_0) 1) mesi.usr.invalid_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 (- (+ (+ (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) mesi.usr.exclusive_me_a_0) mesi.usr.shared_me_a_0) 1) mesi.usr.invalid_me_a_0) mesi.usr.invalid_me_a_0))))) (= mesi.usr.exclusive_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 0 mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me2_a_1 (ite X3 (- mesi.usr.exclusive_me_a_0 1) mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me3_a_1 (ite X2 1 mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 1 mesi.usr.exclusive_me_a_0) mesi.usr.exclusive_me_a_0))))) (= mesi.usr.shared_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 (- (+ (+ (+ (- mesi.usr.shared_me_a_0 1) mesi.usr.exclusive_me_a_0) mesi.usr.modified_me_a_0) 1) 1) mesi.usr.shared_me_a_0) (ite mesi.usr.etat_me2_a_1 mesi.usr.shared_me_a_0 (ite mesi.usr.etat_me3_a_1 (ite X2 0 mesi.usr.shared_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 0 mesi.usr.shared_me_a_0) mesi.usr.shared_me_a_0))))) (not mesi.res.init_flag_a_1))))))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.etat_me1_a_0 Bool) (top.usr.etat_me2_a_0 Bool) (top.usr.etat_me3_a_0 Bool) (top.usr.etat_me4_a_0 Bool) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.modified_me_a_0 Int) (top.impl.usr.exclusive_me_a_0 Int) (top.impl.usr.shared_me_a_0 Int) (top.impl.usr.invalid_me_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Int) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.invalid_me_a_0 top.res.abs_3_a_0) (= top.impl.usr.shared_me_a_0 top.res.abs_2_a_0) (= top.impl.usr.exclusive_me_a_0 top.res.abs_1_a_0) (= top.impl.usr.modified_me_a_0 top.res.abs_0_a_0) (let ((X1 top.res.abs_5_a_0)) (and (= top.usr.OK_a_0 (=> X1 (<= (+ (+ (+ top.res.abs_6_a_0 top.res.abs_7_a_0) top.res.abs_8_a_0) top.res.abs_9_a_0) 3))) (__node_init_Sofar_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_6_a_0) (__node_init_excludes4_0 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_4_a_0 top.res.inst_5_a_0) (__node_init_Abs_0 top.impl.usr.modified_me_a_0 top.res.abs_6_a_0 top.res.inst_4_a_0) (__node_init_mesi_0 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Abs_0 top.impl.usr.exclusive_me_a_0 top.res.abs_7_a_0 top.res.inst_2_a_0) (__node_init_Abs_0 top.impl.usr.shared_me_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_Abs_0 top.impl.usr.invalid_me_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.etat_me1_a_1 Bool) (top.usr.etat_me2_a_1 Bool) (top.usr.etat_me3_a_1 Bool) (top.usr.etat_me4_a_1 Bool) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.modified_me_a_1 Int) (top.impl.usr.exclusive_me_a_1 Int) (top.impl.usr.shared_me_a_1 Int) (top.impl.usr.invalid_me_a_1 Int) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.abs_9_a_1 Int) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Bool) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.etat_me1_a_0 Bool) (top.usr.etat_me2_a_0 Bool) (top.usr.etat_me3_a_0 Bool) (top.usr.etat_me4_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.modified_me_a_0 Int) (top.impl.usr.exclusive_me_a_0 Int) (top.impl.usr.shared_me_a_0 Int) (top.impl.usr.invalid_me_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Int) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.invalid_me_a_1 top.res.abs_3_a_1) (= top.impl.usr.shared_me_a_1 top.res.abs_2_a_1) (= top.impl.usr.exclusive_me_a_1 top.res.abs_1_a_1) (= top.impl.usr.modified_me_a_1 top.res.abs_0_a_1) (let ((X1 top.res.abs_5_a_1)) (and (= top.usr.OK_a_1 (=> X1 (<= (+ (+ (+ top.res.abs_6_a_1 top.res.abs_7_a_1) top.res.abs_8_a_1) top.res.abs_9_a_1) 3))) (__node_trans_Sofar_0 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_6_a_1 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_6_a_0) (__node_trans_excludes4_0 top.usr.etat_me1_a_1 top.usr.etat_me2_a_1 top.usr.etat_me3_a_1 top.usr.etat_me4_a_1 top.res.abs_4_a_1 top.res.inst_5_a_1 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_4_a_0 top.res.inst_5_a_0) (__node_trans_Abs_0 top.impl.usr.modified_me_a_1 top.res.abs_6_a_1 top.res.inst_4_a_1 top.impl.usr.modified_me_a_0 top.res.abs_6_a_0 top.res.inst_4_a_0) (__node_trans_mesi_0 top.usr.etat_me1_a_1 top.usr.etat_me2_a_1 top.usr.etat_me3_a_1 top.usr.etat_me4_a_1 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Abs_0 top.impl.usr.exclusive_me_a_1 top.res.abs_7_a_1 top.res.inst_2_a_1 top.impl.usr.exclusive_me_a_0 top.res.abs_7_a_0 top.res.inst_2_a_0) (__node_trans_Abs_0 top.impl.usr.shared_me_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.impl.usr.shared_me_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_Abs_0 top.impl.usr.invalid_me_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.impl.usr.invalid_me_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.modified_me Int) (top.impl.usr.exclusive_me Int) (top.impl.usr.shared_me Int) (top.impl.usr.invalid_me Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.modified_me Int) (top.impl.usr.exclusive_me Int) (top.impl.usr.shared_me Int) (top.impl.usr.invalid_me Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.invalid_me top.res.abs_3) (= top.impl.usr.shared_me top.res.abs_2) (= top.impl.usr.exclusive_me top.res.abs_1) (= top.impl.usr.modified_me top.res.abs_0) (let ((X1 top.res.abs_5)) (and (= top.usr.OK (=> X1 (<= (+ (+ (+ top.res.abs_6 top.res.abs_7) top.res.abs_8) top.res.abs_9) 3))) (__node_init_Sofar_0 top.res.abs_4 top.res.abs_5 top.res.inst_6) (__node_init_excludes4_0 top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_4 top.res.inst_5) (__node_init_Abs_0 top.impl.usr.modified_me top.res.abs_6 top.res.inst_4) (__node_init_mesi_0 top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Abs_0 top.impl.usr.exclusive_me top.res.abs_7 top.res.inst_2) (__node_init_Abs_0 top.impl.usr.shared_me top.res.abs_8 top.res.inst_1) (__node_init_Abs_0 top.impl.usr.invalid_me top.res.abs_9 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.modified_me Int) (top.impl.usr.exclusive_me Int) (top.impl.usr.shared_me Int) (top.impl.usr.invalid_me Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.etat_me1! Bool) (top.usr.etat_me2! Bool) (top.usr.etat_me3! Bool) (top.usr.etat_me4! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.modified_me! Int) (top.impl.usr.exclusive_me! Int) (top.impl.usr.shared_me! Int) (top.impl.usr.invalid_me! Int) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.abs_9! Int) (top.res.inst_6! Bool) (top.res.inst_5! Bool) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.impl.usr.invalid_me! top.res.abs_3!) (= top.impl.usr.shared_me! top.res.abs_2!) (= top.impl.usr.exclusive_me! top.res.abs_1!) (= top.impl.usr.modified_me! top.res.abs_0!) (let ((X1 top.res.abs_5!)) (and (= top.usr.OK! (=> X1 (<= (+ (+ (+ top.res.abs_6! top.res.abs_7!) top.res.abs_8!) top.res.abs_9!) 3))) (__node_trans_Sofar_0 top.res.abs_4! top.res.abs_5! top.res.inst_6! top.res.abs_4 top.res.abs_5 top.res.inst_6) (__node_trans_excludes4_0 top.usr.etat_me1! top.usr.etat_me2! top.usr.etat_me3! top.usr.etat_me4! top.res.abs_4! top.res.inst_5! top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_4 top.res.inst_5) (__node_trans_Abs_0 top.impl.usr.modified_me! top.res.abs_6! top.res.inst_4! top.impl.usr.modified_me top.res.abs_6 top.res.inst_4) (__node_trans_mesi_0 top.usr.etat_me1! top.usr.etat_me2! top.usr.etat_me3! top.usr.etat_me4! top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Abs_0 top.impl.usr.exclusive_me! top.res.abs_7! top.res.inst_2! top.impl.usr.exclusive_me top.res.abs_7 top.res.inst_2) (__node_trans_Abs_0 top.impl.usr.shared_me! top.res.abs_8! top.res.inst_1! top.impl.usr.shared_me top.res.abs_8 top.res.inst_1) (__node_trans_Abs_0 top.impl.usr.invalid_me! top.res.abs_9! top.res.inst_0! top.impl.usr.invalid_me top.res.abs_9 top.res.inst_0) (not top.res.init_flag!)))) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.modified_me Int) (top.impl.usr.exclusive_me Int) (top.impl.usr.shared_me Int) (top.impl.usr.invalid_me Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/MESI_3_e2_819_e6_1459.sl b/benchmarks/LIA/Lustre/MESI_3_e2_819_e6_1459.sl index 8cc87a5..cd698e0 100644 --- a/benchmarks/LIA/Lustre/MESI_3_e2_819_e6_1459.sl +++ b/benchmarks/LIA/Lustre/MESI_3_e2_819_e6_1459.sl @@ -1,862 +1,39 @@ (set-logic LIA) -(define-fun - __node_init_excludes4_0 ( - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_0 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) - (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) - excludes4.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes4_0 ( - (excludes4.usr.X1_a_1 Bool) - (excludes4.usr.X2_a_1 Bool) - (excludes4.usr.X3_a_1 Bool) - (excludes4.usr.X4_a_1 Bool) - (excludes4.usr.excludes_a_1 Bool) - (excludes4.res.init_flag_a_1 Bool) - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_1 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) - (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) - (not excludes4.res.init_flag_a_1)) -) - -(define-fun - __node_init_Abs_0 ( - (Abs.usr.X_a_0 Int) - (Abs.usr.Abs_a_0 Int) - (Abs.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Abs.usr.Abs_a_0 (ite (< Abs.usr.X_a_0 0) (- Abs.usr.X_a_0) Abs.usr.X_a_0)) - Abs.res.init_flag_a_0) -) - -(define-fun - __node_trans_Abs_0 ( - (Abs.usr.X_a_1 Int) - (Abs.usr.Abs_a_1 Int) - (Abs.res.init_flag_a_1 Bool) - (Abs.usr.X_a_0 Int) - (Abs.usr.Abs_a_0 Int) - (Abs.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Abs.usr.Abs_a_1 (ite (< Abs.usr.X_a_1 0) (- Abs.usr.X_a_1) Abs.usr.X_a_1)) - (not Abs.res.init_flag_a_1)) -) - -(define-fun - __node_init_mesi_0 ( - (mesi.usr.etat_me1_a_0 Bool) - (mesi.usr.etat_me2_a_0 Bool) - (mesi.usr.etat_me3_a_0 Bool) - (mesi.usr.etat_me4_a_0 Bool) - (mesi.res.nondet_3 Int) - (mesi.res.nondet_2 Int) - (mesi.res.nondet_1 Int) - (mesi.res.nondet_0 Int) - (mesi.usr.modified_me_a_0 Int) - (mesi.usr.exclusive_me_a_0 Int) - (mesi.usr.shared_me_a_0 Int) - (mesi.usr.invalid_me_a_0 Int) - (mesi.res.init_flag_a_0 Bool) - ) Bool - - (and - (= mesi.usr.modified_me_a_0 0) - (let - ((X1 Bool (let ((X1 Int mesi.res.nondet_0)) (>= X1 1)))) - (and - (= mesi.usr.invalid_me_a_0 3) - (= mesi.usr.exclusive_me_a_0 0) - (let - ((X2 Bool (let ((X2 Int mesi.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int mesi.res.nondet_2)) (>= X3 1)))) - (and - (= mesi.usr.shared_me_a_0 0) - (let - ((X4 Bool (let ((X4 Int mesi.res.nondet_3)) (>= X4 1)))) - mesi.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_mesi_0 ( - (mesi.usr.etat_me1_a_1 Bool) - (mesi.usr.etat_me2_a_1 Bool) - (mesi.usr.etat_me3_a_1 Bool) - (mesi.usr.etat_me4_a_1 Bool) - (mesi.res.nondet_3 Int) - (mesi.res.nondet_2 Int) - (mesi.res.nondet_1 Int) - (mesi.res.nondet_0 Int) - (mesi.usr.modified_me_a_1 Int) - (mesi.usr.exclusive_me_a_1 Int) - (mesi.usr.shared_me_a_1 Int) - (mesi.usr.invalid_me_a_1 Int) - (mesi.res.init_flag_a_1 Bool) - (mesi.usr.etat_me1_a_0 Bool) - (mesi.usr.etat_me2_a_0 Bool) - (mesi.usr.etat_me3_a_0 Bool) - (mesi.usr.etat_me4_a_0 Bool) - (mesi.usr.modified_me_a_0 Int) - (mesi.usr.exclusive_me_a_0 Int) - (mesi.usr.shared_me_a_0 Int) - (mesi.usr.invalid_me_a_0 Int) - (mesi.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= mesi.usr.invalid_me_a_0 1))) - (let - ((X2 Bool (>= mesi.usr.shared_me_a_0 1))) - (let - ((X3 Bool (>= mesi.usr.exclusive_me_a_0 1))) - (let - ((X4 Bool (>= mesi.usr.invalid_me_a_0 1))) - (and - (= - mesi.usr.modified_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 0 mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - (ite X3 (- mesi.usr.modified_me_a_0 1) mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me3_a_1 - (ite X2 0 mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 0 mesi.usr.modified_me_a_0) - mesi.usr.modified_me_a_0))))) - (= - mesi.usr.invalid_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 (- mesi.usr.invalid_me_a_0 1) mesi.usr.invalid_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - mesi.usr.invalid_me_a_0 - (ite - mesi.usr.etat_me3_a_1 - (ite - X2 - (- - (+ - (+ - (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) - mesi.usr.exclusive_me_a_0) - mesi.usr.shared_me_a_0) - 1) - mesi.usr.invalid_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite - X1 - (- - (+ - (+ - (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) - mesi.usr.exclusive_me_a_0) - mesi.usr.shared_me_a_0) - 1) - mesi.usr.invalid_me_a_0) - mesi.usr.invalid_me_a_0))))) - (= - mesi.usr.exclusive_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 0 mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - (ite X3 (- mesi.usr.exclusive_me_a_0 1) mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me3_a_1 - (ite X2 1 mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 1 mesi.usr.exclusive_me_a_0) - mesi.usr.exclusive_me_a_0))))) - (= - mesi.usr.shared_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite - X4 - (+ - (+ - (+ (- mesi.usr.shared_me_a_0 1) mesi.usr.exclusive_me_a_0) - mesi.usr.modified_me_a_0) - 1) - mesi.usr.shared_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - mesi.usr.shared_me_a_0 - (ite - mesi.usr.etat_me3_a_1 - (ite X2 0 mesi.usr.shared_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 0 mesi.usr.shared_me_a_0) - mesi.usr.shared_me_a_0))))) - (not mesi.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.etat_me1_a_0 Bool) - (top.usr.etat_me2_a_0 Bool) - (top.usr.etat_me3_a_0 Bool) - (top.usr.etat_me4_a_0 Bool) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.modified_me_a_0 Int) - (top.impl.usr.exclusive_me_a_0 Int) - (top.impl.usr.shared_me_a_0 Int) - (top.impl.usr.invalid_me_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Int) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.invalid_me_a_0 top.res.abs_3_a_0) - (= top.impl.usr.shared_me_a_0 top.res.abs_2_a_0) - (= top.impl.usr.exclusive_me_a_0 top.res.abs_1_a_0) - (= top.impl.usr.modified_me_a_0 top.res.abs_0_a_0) - (let - ((X1 Bool top.res.abs_5_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (<= - (+ - (+ (+ top.res.abs_6_a_0 top.res.abs_7_a_0) top.res.abs_8_a_0) - top.res.abs_9_a_0) - 3))) - (__node_init_Sofar_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_6_a_0) - (__node_init_excludes4_0 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_4_a_0 - top.res.inst_5_a_0) - (__node_init_Abs_0 - top.impl.usr.modified_me_a_0 - top.res.abs_6_a_0 - top.res.inst_4_a_0) - (__node_init_mesi_0 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_init_Abs_0 - top.impl.usr.exclusive_me_a_0 - top.res.abs_7_a_0 - top.res.inst_2_a_0) - (__node_init_Abs_0 - top.impl.usr.shared_me_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_init_Abs_0 - top.impl.usr.invalid_me_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.etat_me1_a_1 Bool) - (top.usr.etat_me2_a_1 Bool) - (top.usr.etat_me3_a_1 Bool) - (top.usr.etat_me4_a_1 Bool) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.modified_me_a_1 Int) - (top.impl.usr.exclusive_me_a_1 Int) - (top.impl.usr.shared_me_a_1 Int) - (top.impl.usr.invalid_me_a_1 Int) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.abs_9_a_1 Int) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Bool) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.etat_me1_a_0 Bool) - (top.usr.etat_me2_a_0 Bool) - (top.usr.etat_me3_a_0 Bool) - (top.usr.etat_me4_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.modified_me_a_0 Int) - (top.impl.usr.exclusive_me_a_0 Int) - (top.impl.usr.shared_me_a_0 Int) - (top.impl.usr.invalid_me_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Int) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.invalid_me_a_1 top.res.abs_3_a_1) - (= top.impl.usr.shared_me_a_1 top.res.abs_2_a_1) - (= top.impl.usr.exclusive_me_a_1 top.res.abs_1_a_1) - (= top.impl.usr.modified_me_a_1 top.res.abs_0_a_1) - (let - ((X1 Bool top.res.abs_5_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (<= - (+ - (+ (+ top.res.abs_6_a_1 top.res.abs_7_a_1) top.res.abs_8_a_1) - top.res.abs_9_a_1) - 3))) - (__node_trans_Sofar_0 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_6_a_1 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_6_a_0) - (__node_trans_excludes4_0 - top.usr.etat_me1_a_1 - top.usr.etat_me2_a_1 - top.usr.etat_me3_a_1 - top.usr.etat_me4_a_1 - top.res.abs_4_a_1 - top.res.inst_5_a_1 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_4_a_0 - top.res.inst_5_a_0) - (__node_trans_Abs_0 - top.impl.usr.modified_me_a_1 - top.res.abs_6_a_1 - top.res.inst_4_a_1 - top.impl.usr.modified_me_a_0 - top.res.abs_6_a_0 - top.res.inst_4_a_0) - (__node_trans_mesi_0 - top.usr.etat_me1_a_1 - top.usr.etat_me2_a_1 - top.usr.etat_me3_a_1 - top.usr.etat_me4_a_1 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_trans_Abs_0 - top.impl.usr.exclusive_me_a_1 - top.res.abs_7_a_1 - top.res.inst_2_a_1 - top.impl.usr.exclusive_me_a_0 - top.res.abs_7_a_0 - top.res.inst_2_a_0) - (__node_trans_Abs_0 - top.impl.usr.shared_me_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.impl.usr.shared_me_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_Abs_0 - top.impl.usr.invalid_me_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.impl.usr.invalid_me_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.modified_me Int) - (top.impl.usr.exclusive_me Int) - (top.impl.usr.shared_me Int) - (top.impl.usr.invalid_me Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.etat_me1 Bool) -(declare-primed-var top.usr.etat_me2 Bool) -(declare-primed-var top.usr.etat_me3 Bool) -(declare-primed-var top.usr.etat_me4 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.modified_me Int) -(declare-primed-var top.impl.usr.exclusive_me Int) -(declare-primed-var top.impl.usr.shared_me Int) -(declare-primed-var top.impl.usr.invalid_me Int) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Bool) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.modified_me Int) - (top.impl.usr.exclusive_me Int) - (top.impl.usr.shared_me Int) - (top.impl.usr.invalid_me Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.impl.usr.invalid_me top.res.abs_3) - (= top.impl.usr.shared_me top.res.abs_2) - (= top.impl.usr.exclusive_me top.res.abs_1) - (= top.impl.usr.modified_me top.res.abs_0) - (let - ((X1 Bool top.res.abs_5)) - (and - (= - top.usr.OK - (=> - X1 - (<= - (+ (+ (+ top.res.abs_6 top.res.abs_7) top.res.abs_8) top.res.abs_9) - 3))) - (__node_init_Sofar_0 top.res.abs_4 top.res.abs_5 top.res.inst_6) - (__node_init_excludes4_0 - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_4 - top.res.inst_5) - (__node_init_Abs_0 - top.impl.usr.modified_me - top.res.abs_6 - top.res.inst_4) - (__node_init_mesi_0 - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_init_Abs_0 - top.impl.usr.exclusive_me - top.res.abs_7 - top.res.inst_2) - (__node_init_Abs_0 top.impl.usr.shared_me top.res.abs_8 top.res.inst_1) - (__node_init_Abs_0 top.impl.usr.invalid_me top.res.abs_9 top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.modified_me Int) - (top.impl.usr.exclusive_me Int) - (top.impl.usr.shared_me Int) - (top.impl.usr.invalid_me Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.etat_me1! Bool) - (top.usr.etat_me2! Bool) - (top.usr.etat_me3! Bool) - (top.usr.etat_me4! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.modified_me! Int) - (top.impl.usr.exclusive_me! Int) - (top.impl.usr.shared_me! Int) - (top.impl.usr.invalid_me! Int) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.abs_9! Int) - (top.res.inst_6! Bool) - (top.res.inst_5! Bool) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.impl.usr.invalid_me! top.res.abs_3!) - (= top.impl.usr.shared_me! top.res.abs_2!) - (= top.impl.usr.exclusive_me! top.res.abs_1!) - (= top.impl.usr.modified_me! top.res.abs_0!) - (let - ((X1 Bool top.res.abs_5!)) - (and - (= - top.usr.OK! - (=> - X1 - (<= - (+ - (+ (+ top.res.abs_6! top.res.abs_7!) top.res.abs_8!) - top.res.abs_9!) - 3))) - (__node_trans_Sofar_0 - top.res.abs_4! - top.res.abs_5! - top.res.inst_6! - top.res.abs_4 - top.res.abs_5 - top.res.inst_6) - (__node_trans_excludes4_0 - top.usr.etat_me1! - top.usr.etat_me2! - top.usr.etat_me3! - top.usr.etat_me4! - top.res.abs_4! - top.res.inst_5! - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_4 - top.res.inst_5) - (__node_trans_Abs_0 - top.impl.usr.modified_me! - top.res.abs_6! - top.res.inst_4! - top.impl.usr.modified_me - top.res.abs_6 - top.res.inst_4) - (__node_trans_mesi_0 - top.usr.etat_me1! - top.usr.etat_me2! - top.usr.etat_me3! - top.usr.etat_me4! - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_trans_Abs_0 - top.impl.usr.exclusive_me! - top.res.abs_7! - top.res.inst_2! - top.impl.usr.exclusive_me - top.res.abs_7 - top.res.inst_2) - (__node_trans_Abs_0 - top.impl.usr.shared_me! - top.res.abs_8! - top.res.inst_1! - top.impl.usr.shared_me - top.res.abs_8 - top.res.inst_1) - (__node_trans_Abs_0 - top.impl.usr.invalid_me! - top.res.abs_9! - top.res.inst_0! - top.impl.usr.invalid_me - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.modified_me Int) - (top.impl.usr.exclusive_me Int) - (top.impl.usr.shared_me Int) - (top.impl.usr.invalid_me Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_excludes4_0 ((excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_0 (not (or (or (or (or (or (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) excludes4.res.init_flag_a_0)) +(define-fun __node_trans_excludes4_0 ((excludes4.usr.X1_a_1 Bool) (excludes4.usr.X2_a_1 Bool) (excludes4.usr.X3_a_1 Bool) (excludes4.usr.X4_a_1 Bool) (excludes4.usr.excludes_a_1 Bool) (excludes4.res.init_flag_a_1 Bool) (excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_1 (not (or (or (or (or (or (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) (not excludes4.res.init_flag_a_1))) +(define-fun __node_init_Abs_0 ((Abs.usr.X_a_0 Int) (Abs.usr.Abs_a_0 Int) (Abs.res.init_flag_a_0 Bool)) Bool + (and (= Abs.usr.Abs_a_0 (ite (< Abs.usr.X_a_0 0) (- Abs.usr.X_a_0) Abs.usr.X_a_0)) Abs.res.init_flag_a_0)) +(define-fun __node_trans_Abs_0 ((Abs.usr.X_a_1 Int) (Abs.usr.Abs_a_1 Int) (Abs.res.init_flag_a_1 Bool) (Abs.usr.X_a_0 Int) (Abs.usr.Abs_a_0 Int) (Abs.res.init_flag_a_0 Bool)) Bool + (and (= Abs.usr.Abs_a_1 (ite (< Abs.usr.X_a_1 0) (- Abs.usr.X_a_1) Abs.usr.X_a_1)) (not Abs.res.init_flag_a_1))) +(define-fun __node_init_mesi_0 ((mesi.usr.etat_me1_a_0 Bool) (mesi.usr.etat_me2_a_0 Bool) (mesi.usr.etat_me3_a_0 Bool) (mesi.usr.etat_me4_a_0 Bool) (mesi.res.nondet_3 Int) (mesi.res.nondet_2 Int) (mesi.res.nondet_1 Int) (mesi.res.nondet_0 Int) (mesi.usr.modified_me_a_0 Int) (mesi.usr.exclusive_me_a_0 Int) (mesi.usr.shared_me_a_0 Int) (mesi.usr.invalid_me_a_0 Int) (mesi.res.init_flag_a_0 Bool)) Bool + (and (= mesi.usr.modified_me_a_0 0) (let ((X1 (let ((X1 mesi.res.nondet_0)) (>= X1 1)))) (and (= mesi.usr.invalid_me_a_0 3) (= mesi.usr.exclusive_me_a_0 0) (let ((X2 (let ((X2 mesi.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 mesi.res.nondet_2)) (>= X3 1)))) (and (= mesi.usr.shared_me_a_0 0) (let ((X4 (let ((X4 mesi.res.nondet_3)) (>= X4 1)))) mesi.res.init_flag_a_0)))))))) +(define-fun __node_trans_mesi_0 ((mesi.usr.etat_me1_a_1 Bool) (mesi.usr.etat_me2_a_1 Bool) (mesi.usr.etat_me3_a_1 Bool) (mesi.usr.etat_me4_a_1 Bool) (mesi.res.nondet_3 Int) (mesi.res.nondet_2 Int) (mesi.res.nondet_1 Int) (mesi.res.nondet_0 Int) (mesi.usr.modified_me_a_1 Int) (mesi.usr.exclusive_me_a_1 Int) (mesi.usr.shared_me_a_1 Int) (mesi.usr.invalid_me_a_1 Int) (mesi.res.init_flag_a_1 Bool) (mesi.usr.etat_me1_a_0 Bool) (mesi.usr.etat_me2_a_0 Bool) (mesi.usr.etat_me3_a_0 Bool) (mesi.usr.etat_me4_a_0 Bool) (mesi.usr.modified_me_a_0 Int) (mesi.usr.exclusive_me_a_0 Int) (mesi.usr.shared_me_a_0 Int) (mesi.usr.invalid_me_a_0 Int) (mesi.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= mesi.usr.invalid_me_a_0 1))) (let ((X2 (>= mesi.usr.shared_me_a_0 1))) (let ((X3 (>= mesi.usr.exclusive_me_a_0 1))) (let ((X4 (>= mesi.usr.invalid_me_a_0 1))) (and (= mesi.usr.modified_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 0 mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me2_a_1 (ite X3 (- mesi.usr.modified_me_a_0 1) mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me3_a_1 (ite X2 0 mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 0 mesi.usr.modified_me_a_0) mesi.usr.modified_me_a_0))))) (= mesi.usr.invalid_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 (- mesi.usr.invalid_me_a_0 1) mesi.usr.invalid_me_a_0) (ite mesi.usr.etat_me2_a_1 mesi.usr.invalid_me_a_0 (ite mesi.usr.etat_me3_a_1 (ite X2 (- (+ (+ (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) mesi.usr.exclusive_me_a_0) mesi.usr.shared_me_a_0) 1) mesi.usr.invalid_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 (- (+ (+ (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) mesi.usr.exclusive_me_a_0) mesi.usr.shared_me_a_0) 1) mesi.usr.invalid_me_a_0) mesi.usr.invalid_me_a_0))))) (= mesi.usr.exclusive_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 0 mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me2_a_1 (ite X3 (- mesi.usr.exclusive_me_a_0 1) mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me3_a_1 (ite X2 1 mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 1 mesi.usr.exclusive_me_a_0) mesi.usr.exclusive_me_a_0))))) (= mesi.usr.shared_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 (+ (+ (+ (- mesi.usr.shared_me_a_0 1) mesi.usr.exclusive_me_a_0) mesi.usr.modified_me_a_0) 1) mesi.usr.shared_me_a_0) (ite mesi.usr.etat_me2_a_1 mesi.usr.shared_me_a_0 (ite mesi.usr.etat_me3_a_1 (ite X2 0 mesi.usr.shared_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 0 mesi.usr.shared_me_a_0) mesi.usr.shared_me_a_0))))) (not mesi.res.init_flag_a_1))))))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.etat_me1_a_0 Bool) (top.usr.etat_me2_a_0 Bool) (top.usr.etat_me3_a_0 Bool) (top.usr.etat_me4_a_0 Bool) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.modified_me_a_0 Int) (top.impl.usr.exclusive_me_a_0 Int) (top.impl.usr.shared_me_a_0 Int) (top.impl.usr.invalid_me_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Int) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.invalid_me_a_0 top.res.abs_3_a_0) (= top.impl.usr.shared_me_a_0 top.res.abs_2_a_0) (= top.impl.usr.exclusive_me_a_0 top.res.abs_1_a_0) (= top.impl.usr.modified_me_a_0 top.res.abs_0_a_0) (let ((X1 top.res.abs_5_a_0)) (and (= top.usr.OK_a_0 (=> X1 (<= (+ (+ (+ top.res.abs_6_a_0 top.res.abs_7_a_0) top.res.abs_8_a_0) top.res.abs_9_a_0) 3))) (__node_init_Sofar_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_6_a_0) (__node_init_excludes4_0 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_4_a_0 top.res.inst_5_a_0) (__node_init_Abs_0 top.impl.usr.modified_me_a_0 top.res.abs_6_a_0 top.res.inst_4_a_0) (__node_init_mesi_0 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Abs_0 top.impl.usr.exclusive_me_a_0 top.res.abs_7_a_0 top.res.inst_2_a_0) (__node_init_Abs_0 top.impl.usr.shared_me_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_Abs_0 top.impl.usr.invalid_me_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.etat_me1_a_1 Bool) (top.usr.etat_me2_a_1 Bool) (top.usr.etat_me3_a_1 Bool) (top.usr.etat_me4_a_1 Bool) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.modified_me_a_1 Int) (top.impl.usr.exclusive_me_a_1 Int) (top.impl.usr.shared_me_a_1 Int) (top.impl.usr.invalid_me_a_1 Int) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.abs_9_a_1 Int) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Bool) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.etat_me1_a_0 Bool) (top.usr.etat_me2_a_0 Bool) (top.usr.etat_me3_a_0 Bool) (top.usr.etat_me4_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.modified_me_a_0 Int) (top.impl.usr.exclusive_me_a_0 Int) (top.impl.usr.shared_me_a_0 Int) (top.impl.usr.invalid_me_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Int) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.invalid_me_a_1 top.res.abs_3_a_1) (= top.impl.usr.shared_me_a_1 top.res.abs_2_a_1) (= top.impl.usr.exclusive_me_a_1 top.res.abs_1_a_1) (= top.impl.usr.modified_me_a_1 top.res.abs_0_a_1) (let ((X1 top.res.abs_5_a_1)) (and (= top.usr.OK_a_1 (=> X1 (<= (+ (+ (+ top.res.abs_6_a_1 top.res.abs_7_a_1) top.res.abs_8_a_1) top.res.abs_9_a_1) 3))) (__node_trans_Sofar_0 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_6_a_1 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_6_a_0) (__node_trans_excludes4_0 top.usr.etat_me1_a_1 top.usr.etat_me2_a_1 top.usr.etat_me3_a_1 top.usr.etat_me4_a_1 top.res.abs_4_a_1 top.res.inst_5_a_1 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_4_a_0 top.res.inst_5_a_0) (__node_trans_Abs_0 top.impl.usr.modified_me_a_1 top.res.abs_6_a_1 top.res.inst_4_a_1 top.impl.usr.modified_me_a_0 top.res.abs_6_a_0 top.res.inst_4_a_0) (__node_trans_mesi_0 top.usr.etat_me1_a_1 top.usr.etat_me2_a_1 top.usr.etat_me3_a_1 top.usr.etat_me4_a_1 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Abs_0 top.impl.usr.exclusive_me_a_1 top.res.abs_7_a_1 top.res.inst_2_a_1 top.impl.usr.exclusive_me_a_0 top.res.abs_7_a_0 top.res.inst_2_a_0) (__node_trans_Abs_0 top.impl.usr.shared_me_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.impl.usr.shared_me_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_Abs_0 top.impl.usr.invalid_me_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.impl.usr.invalid_me_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.modified_me Int) (top.impl.usr.exclusive_me Int) (top.impl.usr.shared_me Int) (top.impl.usr.invalid_me Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.modified_me Int) (top.impl.usr.exclusive_me Int) (top.impl.usr.shared_me Int) (top.impl.usr.invalid_me Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.invalid_me top.res.abs_3) (= top.impl.usr.shared_me top.res.abs_2) (= top.impl.usr.exclusive_me top.res.abs_1) (= top.impl.usr.modified_me top.res.abs_0) (let ((X1 top.res.abs_5)) (and (= top.usr.OK (=> X1 (<= (+ (+ (+ top.res.abs_6 top.res.abs_7) top.res.abs_8) top.res.abs_9) 3))) (__node_init_Sofar_0 top.res.abs_4 top.res.abs_5 top.res.inst_6) (__node_init_excludes4_0 top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_4 top.res.inst_5) (__node_init_Abs_0 top.impl.usr.modified_me top.res.abs_6 top.res.inst_4) (__node_init_mesi_0 top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Abs_0 top.impl.usr.exclusive_me top.res.abs_7 top.res.inst_2) (__node_init_Abs_0 top.impl.usr.shared_me top.res.abs_8 top.res.inst_1) (__node_init_Abs_0 top.impl.usr.invalid_me top.res.abs_9 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.modified_me Int) (top.impl.usr.exclusive_me Int) (top.impl.usr.shared_me Int) (top.impl.usr.invalid_me Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.etat_me1! Bool) (top.usr.etat_me2! Bool) (top.usr.etat_me3! Bool) (top.usr.etat_me4! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.modified_me! Int) (top.impl.usr.exclusive_me! Int) (top.impl.usr.shared_me! Int) (top.impl.usr.invalid_me! Int) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.abs_9! Int) (top.res.inst_6! Bool) (top.res.inst_5! Bool) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.impl.usr.invalid_me! top.res.abs_3!) (= top.impl.usr.shared_me! top.res.abs_2!) (= top.impl.usr.exclusive_me! top.res.abs_1!) (= top.impl.usr.modified_me! top.res.abs_0!) (let ((X1 top.res.abs_5!)) (and (= top.usr.OK! (=> X1 (<= (+ (+ (+ top.res.abs_6! top.res.abs_7!) top.res.abs_8!) top.res.abs_9!) 3))) (__node_trans_Sofar_0 top.res.abs_4! top.res.abs_5! top.res.inst_6! top.res.abs_4 top.res.abs_5 top.res.inst_6) (__node_trans_excludes4_0 top.usr.etat_me1! top.usr.etat_me2! top.usr.etat_me3! top.usr.etat_me4! top.res.abs_4! top.res.inst_5! top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_4 top.res.inst_5) (__node_trans_Abs_0 top.impl.usr.modified_me! top.res.abs_6! top.res.inst_4! top.impl.usr.modified_me top.res.abs_6 top.res.inst_4) (__node_trans_mesi_0 top.usr.etat_me1! top.usr.etat_me2! top.usr.etat_me3! top.usr.etat_me4! top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Abs_0 top.impl.usr.exclusive_me! top.res.abs_7! top.res.inst_2! top.impl.usr.exclusive_me top.res.abs_7 top.res.inst_2) (__node_trans_Abs_0 top.impl.usr.shared_me! top.res.abs_8! top.res.inst_1! top.impl.usr.shared_me top.res.abs_8 top.res.inst_1) (__node_trans_Abs_0 top.impl.usr.invalid_me! top.res.abs_9! top.res.inst_0! top.impl.usr.invalid_me top.res.abs_9 top.res.inst_0) (not top.res.init_flag!)))) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.modified_me Int) (top.impl.usr.exclusive_me Int) (top.impl.usr.shared_me Int) (top.impl.usr.invalid_me Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/MESI_3_e3_2669.sl b/benchmarks/LIA/Lustre/MESI_3_e3_2669.sl index 6746af3..cbf983e 100644 --- a/benchmarks/LIA/Lustre/MESI_3_e3_2669.sl +++ b/benchmarks/LIA/Lustre/MESI_3_e3_2669.sl @@ -1,862 +1,39 @@ (set-logic LIA) -(define-fun - __node_init_excludes4_0 ( - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_0 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) - (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) - excludes4.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes4_0 ( - (excludes4.usr.X1_a_1 Bool) - (excludes4.usr.X2_a_1 Bool) - (excludes4.usr.X3_a_1 Bool) - (excludes4.usr.X4_a_1 Bool) - (excludes4.usr.excludes_a_1 Bool) - (excludes4.res.init_flag_a_1 Bool) - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_1 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) - (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) - (not excludes4.res.init_flag_a_1)) -) - -(define-fun - __node_init_Abs_0 ( - (Abs.usr.X_a_0 Int) - (Abs.usr.Abs_a_0 Int) - (Abs.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Abs.usr.Abs_a_0 (ite (< Abs.usr.X_a_0 0) (- Abs.usr.X_a_0) Abs.usr.X_a_0)) - Abs.res.init_flag_a_0) -) - -(define-fun - __node_trans_Abs_0 ( - (Abs.usr.X_a_1 Int) - (Abs.usr.Abs_a_1 Int) - (Abs.res.init_flag_a_1 Bool) - (Abs.usr.X_a_0 Int) - (Abs.usr.Abs_a_0 Int) - (Abs.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Abs.usr.Abs_a_1 (ite (< Abs.usr.X_a_1 0) (- Abs.usr.X_a_1) Abs.usr.X_a_1)) - (not Abs.res.init_flag_a_1)) -) - -(define-fun - __node_init_mesi_0 ( - (mesi.usr.etat_me1_a_0 Bool) - (mesi.usr.etat_me2_a_0 Bool) - (mesi.usr.etat_me3_a_0 Bool) - (mesi.usr.etat_me4_a_0 Bool) - (mesi.res.nondet_3 Int) - (mesi.res.nondet_2 Int) - (mesi.res.nondet_1 Int) - (mesi.res.nondet_0 Int) - (mesi.usr.modified_me_a_0 Int) - (mesi.usr.exclusive_me_a_0 Int) - (mesi.usr.shared_me_a_0 Int) - (mesi.usr.invalid_me_a_0 Int) - (mesi.res.init_flag_a_0 Bool) - ) Bool - - (and - (= mesi.usr.modified_me_a_0 0) - (let - ((X1 Bool (let ((X1 Int mesi.res.nondet_0)) (>= X1 1)))) - (and - (= mesi.usr.invalid_me_a_0 3) - (= mesi.usr.exclusive_me_a_0 0) - (let - ((X2 Bool (let ((X2 Int mesi.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int mesi.res.nondet_2)) (>= X3 1)))) - (and - (= mesi.usr.shared_me_a_0 0) - (let - ((X4 Bool (let ((X4 Int mesi.res.nondet_3)) (>= X4 1)))) - mesi.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_mesi_0 ( - (mesi.usr.etat_me1_a_1 Bool) - (mesi.usr.etat_me2_a_1 Bool) - (mesi.usr.etat_me3_a_1 Bool) - (mesi.usr.etat_me4_a_1 Bool) - (mesi.res.nondet_3 Int) - (mesi.res.nondet_2 Int) - (mesi.res.nondet_1 Int) - (mesi.res.nondet_0 Int) - (mesi.usr.modified_me_a_1 Int) - (mesi.usr.exclusive_me_a_1 Int) - (mesi.usr.shared_me_a_1 Int) - (mesi.usr.invalid_me_a_1 Int) - (mesi.res.init_flag_a_1 Bool) - (mesi.usr.etat_me1_a_0 Bool) - (mesi.usr.etat_me2_a_0 Bool) - (mesi.usr.etat_me3_a_0 Bool) - (mesi.usr.etat_me4_a_0 Bool) - (mesi.usr.modified_me_a_0 Int) - (mesi.usr.exclusive_me_a_0 Int) - (mesi.usr.shared_me_a_0 Int) - (mesi.usr.invalid_me_a_0 Int) - (mesi.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= mesi.usr.invalid_me_a_0 1))) - (let - ((X2 Bool (>= mesi.usr.shared_me_a_0 1))) - (let - ((X3 Bool (>= mesi.usr.exclusive_me_a_0 1))) - (let - ((X4 Bool (>= mesi.usr.invalid_me_a_0 1))) - (and - (= - mesi.usr.modified_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 0 mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - (ite X3 (- mesi.usr.modified_me_a_0 1) mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me3_a_1 - (ite X2 0 mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 0 mesi.usr.modified_me_a_0) - mesi.usr.modified_me_a_0))))) - (= - mesi.usr.invalid_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 (- mesi.usr.invalid_me_a_0 1) mesi.usr.invalid_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - mesi.usr.invalid_me_a_0 - (ite - mesi.usr.etat_me3_a_1 - (ite - X2 - (- - (+ - (+ - (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) - mesi.usr.exclusive_me_a_0) - mesi.usr.shared_me_a_0) - 1) - mesi.usr.invalid_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite - X1 - (- - (+ - (+ - (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) - mesi.usr.exclusive_me_a_0) - mesi.usr.shared_me_a_0) - 1) - mesi.usr.invalid_me_a_0) - mesi.usr.invalid_me_a_0))))) - (= - mesi.usr.exclusive_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 0 mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - (ite X3 (- mesi.usr.exclusive_me_a_0 1) mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me3_a_1 - (ite X2 1 mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 1 mesi.usr.exclusive_me_a_0) - mesi.usr.exclusive_me_a_0))))) - (= - mesi.usr.shared_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite - X4 - (- - (+ - (- mesi.usr.shared_me_a_0 mesi.usr.exclusive_me_a_0) - mesi.usr.modified_me_a_0) - 1) - mesi.usr.shared_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - mesi.usr.shared_me_a_0 - (ite - mesi.usr.etat_me3_a_1 - (ite X2 0 mesi.usr.shared_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 0 mesi.usr.shared_me_a_0) - mesi.usr.shared_me_a_0))))) - (not mesi.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.etat_me1_a_0 Bool) - (top.usr.etat_me2_a_0 Bool) - (top.usr.etat_me3_a_0 Bool) - (top.usr.etat_me4_a_0 Bool) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.modified_me_a_0 Int) - (top.impl.usr.exclusive_me_a_0 Int) - (top.impl.usr.shared_me_a_0 Int) - (top.impl.usr.invalid_me_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Int) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.invalid_me_a_0 top.res.abs_3_a_0) - (= top.impl.usr.shared_me_a_0 top.res.abs_2_a_0) - (= top.impl.usr.exclusive_me_a_0 top.res.abs_1_a_0) - (= top.impl.usr.modified_me_a_0 top.res.abs_0_a_0) - (let - ((X1 Bool top.res.abs_5_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (<= - (+ - (+ (+ top.res.abs_6_a_0 top.res.abs_7_a_0) top.res.abs_8_a_0) - top.res.abs_9_a_0) - 3))) - (__node_init_Sofar_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_6_a_0) - (__node_init_excludes4_0 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_4_a_0 - top.res.inst_5_a_0) - (__node_init_Abs_0 - top.impl.usr.modified_me_a_0 - top.res.abs_6_a_0 - top.res.inst_4_a_0) - (__node_init_mesi_0 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_init_Abs_0 - top.impl.usr.exclusive_me_a_0 - top.res.abs_7_a_0 - top.res.inst_2_a_0) - (__node_init_Abs_0 - top.impl.usr.shared_me_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_init_Abs_0 - top.impl.usr.invalid_me_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.etat_me1_a_1 Bool) - (top.usr.etat_me2_a_1 Bool) - (top.usr.etat_me3_a_1 Bool) - (top.usr.etat_me4_a_1 Bool) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.modified_me_a_1 Int) - (top.impl.usr.exclusive_me_a_1 Int) - (top.impl.usr.shared_me_a_1 Int) - (top.impl.usr.invalid_me_a_1 Int) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.abs_9_a_1 Int) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Bool) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.etat_me1_a_0 Bool) - (top.usr.etat_me2_a_0 Bool) - (top.usr.etat_me3_a_0 Bool) - (top.usr.etat_me4_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.modified_me_a_0 Int) - (top.impl.usr.exclusive_me_a_0 Int) - (top.impl.usr.shared_me_a_0 Int) - (top.impl.usr.invalid_me_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Int) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.invalid_me_a_1 top.res.abs_3_a_1) - (= top.impl.usr.shared_me_a_1 top.res.abs_2_a_1) - (= top.impl.usr.exclusive_me_a_1 top.res.abs_1_a_1) - (= top.impl.usr.modified_me_a_1 top.res.abs_0_a_1) - (let - ((X1 Bool top.res.abs_5_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (<= - (+ - (+ (+ top.res.abs_6_a_1 top.res.abs_7_a_1) top.res.abs_8_a_1) - top.res.abs_9_a_1) - 3))) - (__node_trans_Sofar_0 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_6_a_1 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_6_a_0) - (__node_trans_excludes4_0 - top.usr.etat_me1_a_1 - top.usr.etat_me2_a_1 - top.usr.etat_me3_a_1 - top.usr.etat_me4_a_1 - top.res.abs_4_a_1 - top.res.inst_5_a_1 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_4_a_0 - top.res.inst_5_a_0) - (__node_trans_Abs_0 - top.impl.usr.modified_me_a_1 - top.res.abs_6_a_1 - top.res.inst_4_a_1 - top.impl.usr.modified_me_a_0 - top.res.abs_6_a_0 - top.res.inst_4_a_0) - (__node_trans_mesi_0 - top.usr.etat_me1_a_1 - top.usr.etat_me2_a_1 - top.usr.etat_me3_a_1 - top.usr.etat_me4_a_1 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_trans_Abs_0 - top.impl.usr.exclusive_me_a_1 - top.res.abs_7_a_1 - top.res.inst_2_a_1 - top.impl.usr.exclusive_me_a_0 - top.res.abs_7_a_0 - top.res.inst_2_a_0) - (__node_trans_Abs_0 - top.impl.usr.shared_me_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.impl.usr.shared_me_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_Abs_0 - top.impl.usr.invalid_me_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.impl.usr.invalid_me_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.modified_me Int) - (top.impl.usr.exclusive_me Int) - (top.impl.usr.shared_me Int) - (top.impl.usr.invalid_me Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.etat_me1 Bool) -(declare-primed-var top.usr.etat_me2 Bool) -(declare-primed-var top.usr.etat_me3 Bool) -(declare-primed-var top.usr.etat_me4 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.modified_me Int) -(declare-primed-var top.impl.usr.exclusive_me Int) -(declare-primed-var top.impl.usr.shared_me Int) -(declare-primed-var top.impl.usr.invalid_me Int) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Bool) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.modified_me Int) - (top.impl.usr.exclusive_me Int) - (top.impl.usr.shared_me Int) - (top.impl.usr.invalid_me Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.impl.usr.invalid_me top.res.abs_3) - (= top.impl.usr.shared_me top.res.abs_2) - (= top.impl.usr.exclusive_me top.res.abs_1) - (= top.impl.usr.modified_me top.res.abs_0) - (let - ((X1 Bool top.res.abs_5)) - (and - (= - top.usr.OK - (=> - X1 - (<= - (+ (+ (+ top.res.abs_6 top.res.abs_7) top.res.abs_8) top.res.abs_9) - 3))) - (__node_init_Sofar_0 top.res.abs_4 top.res.abs_5 top.res.inst_6) - (__node_init_excludes4_0 - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_4 - top.res.inst_5) - (__node_init_Abs_0 - top.impl.usr.modified_me - top.res.abs_6 - top.res.inst_4) - (__node_init_mesi_0 - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_init_Abs_0 - top.impl.usr.exclusive_me - top.res.abs_7 - top.res.inst_2) - (__node_init_Abs_0 top.impl.usr.shared_me top.res.abs_8 top.res.inst_1) - (__node_init_Abs_0 top.impl.usr.invalid_me top.res.abs_9 top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.modified_me Int) - (top.impl.usr.exclusive_me Int) - (top.impl.usr.shared_me Int) - (top.impl.usr.invalid_me Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.etat_me1! Bool) - (top.usr.etat_me2! Bool) - (top.usr.etat_me3! Bool) - (top.usr.etat_me4! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.modified_me! Int) - (top.impl.usr.exclusive_me! Int) - (top.impl.usr.shared_me! Int) - (top.impl.usr.invalid_me! Int) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.abs_9! Int) - (top.res.inst_6! Bool) - (top.res.inst_5! Bool) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.impl.usr.invalid_me! top.res.abs_3!) - (= top.impl.usr.shared_me! top.res.abs_2!) - (= top.impl.usr.exclusive_me! top.res.abs_1!) - (= top.impl.usr.modified_me! top.res.abs_0!) - (let - ((X1 Bool top.res.abs_5!)) - (and - (= - top.usr.OK! - (=> - X1 - (<= - (+ - (+ (+ top.res.abs_6! top.res.abs_7!) top.res.abs_8!) - top.res.abs_9!) - 3))) - (__node_trans_Sofar_0 - top.res.abs_4! - top.res.abs_5! - top.res.inst_6! - top.res.abs_4 - top.res.abs_5 - top.res.inst_6) - (__node_trans_excludes4_0 - top.usr.etat_me1! - top.usr.etat_me2! - top.usr.etat_me3! - top.usr.etat_me4! - top.res.abs_4! - top.res.inst_5! - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_4 - top.res.inst_5) - (__node_trans_Abs_0 - top.impl.usr.modified_me! - top.res.abs_6! - top.res.inst_4! - top.impl.usr.modified_me - top.res.abs_6 - top.res.inst_4) - (__node_trans_mesi_0 - top.usr.etat_me1! - top.usr.etat_me2! - top.usr.etat_me3! - top.usr.etat_me4! - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_trans_Abs_0 - top.impl.usr.exclusive_me! - top.res.abs_7! - top.res.inst_2! - top.impl.usr.exclusive_me - top.res.abs_7 - top.res.inst_2) - (__node_trans_Abs_0 - top.impl.usr.shared_me! - top.res.abs_8! - top.res.inst_1! - top.impl.usr.shared_me - top.res.abs_8 - top.res.inst_1) - (__node_trans_Abs_0 - top.impl.usr.invalid_me! - top.res.abs_9! - top.res.inst_0! - top.impl.usr.invalid_me - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.modified_me Int) - (top.impl.usr.exclusive_me Int) - (top.impl.usr.shared_me Int) - (top.impl.usr.invalid_me Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_excludes4_0 ((excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_0 (not (or (or (or (or (or (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) excludes4.res.init_flag_a_0)) +(define-fun __node_trans_excludes4_0 ((excludes4.usr.X1_a_1 Bool) (excludes4.usr.X2_a_1 Bool) (excludes4.usr.X3_a_1 Bool) (excludes4.usr.X4_a_1 Bool) (excludes4.usr.excludes_a_1 Bool) (excludes4.res.init_flag_a_1 Bool) (excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_1 (not (or (or (or (or (or (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) (not excludes4.res.init_flag_a_1))) +(define-fun __node_init_Abs_0 ((Abs.usr.X_a_0 Int) (Abs.usr.Abs_a_0 Int) (Abs.res.init_flag_a_0 Bool)) Bool + (and (= Abs.usr.Abs_a_0 (ite (< Abs.usr.X_a_0 0) (- Abs.usr.X_a_0) Abs.usr.X_a_0)) Abs.res.init_flag_a_0)) +(define-fun __node_trans_Abs_0 ((Abs.usr.X_a_1 Int) (Abs.usr.Abs_a_1 Int) (Abs.res.init_flag_a_1 Bool) (Abs.usr.X_a_0 Int) (Abs.usr.Abs_a_0 Int) (Abs.res.init_flag_a_0 Bool)) Bool + (and (= Abs.usr.Abs_a_1 (ite (< Abs.usr.X_a_1 0) (- Abs.usr.X_a_1) Abs.usr.X_a_1)) (not Abs.res.init_flag_a_1))) +(define-fun __node_init_mesi_0 ((mesi.usr.etat_me1_a_0 Bool) (mesi.usr.etat_me2_a_0 Bool) (mesi.usr.etat_me3_a_0 Bool) (mesi.usr.etat_me4_a_0 Bool) (mesi.res.nondet_3 Int) (mesi.res.nondet_2 Int) (mesi.res.nondet_1 Int) (mesi.res.nondet_0 Int) (mesi.usr.modified_me_a_0 Int) (mesi.usr.exclusive_me_a_0 Int) (mesi.usr.shared_me_a_0 Int) (mesi.usr.invalid_me_a_0 Int) (mesi.res.init_flag_a_0 Bool)) Bool + (and (= mesi.usr.modified_me_a_0 0) (let ((X1 (let ((X1 mesi.res.nondet_0)) (>= X1 1)))) (and (= mesi.usr.invalid_me_a_0 3) (= mesi.usr.exclusive_me_a_0 0) (let ((X2 (let ((X2 mesi.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 mesi.res.nondet_2)) (>= X3 1)))) (and (= mesi.usr.shared_me_a_0 0) (let ((X4 (let ((X4 mesi.res.nondet_3)) (>= X4 1)))) mesi.res.init_flag_a_0)))))))) +(define-fun __node_trans_mesi_0 ((mesi.usr.etat_me1_a_1 Bool) (mesi.usr.etat_me2_a_1 Bool) (mesi.usr.etat_me3_a_1 Bool) (mesi.usr.etat_me4_a_1 Bool) (mesi.res.nondet_3 Int) (mesi.res.nondet_2 Int) (mesi.res.nondet_1 Int) (mesi.res.nondet_0 Int) (mesi.usr.modified_me_a_1 Int) (mesi.usr.exclusive_me_a_1 Int) (mesi.usr.shared_me_a_1 Int) (mesi.usr.invalid_me_a_1 Int) (mesi.res.init_flag_a_1 Bool) (mesi.usr.etat_me1_a_0 Bool) (mesi.usr.etat_me2_a_0 Bool) (mesi.usr.etat_me3_a_0 Bool) (mesi.usr.etat_me4_a_0 Bool) (mesi.usr.modified_me_a_0 Int) (mesi.usr.exclusive_me_a_0 Int) (mesi.usr.shared_me_a_0 Int) (mesi.usr.invalid_me_a_0 Int) (mesi.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= mesi.usr.invalid_me_a_0 1))) (let ((X2 (>= mesi.usr.shared_me_a_0 1))) (let ((X3 (>= mesi.usr.exclusive_me_a_0 1))) (let ((X4 (>= mesi.usr.invalid_me_a_0 1))) (and (= mesi.usr.modified_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 0 mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me2_a_1 (ite X3 (- mesi.usr.modified_me_a_0 1) mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me3_a_1 (ite X2 0 mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 0 mesi.usr.modified_me_a_0) mesi.usr.modified_me_a_0))))) (= mesi.usr.invalid_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 (- mesi.usr.invalid_me_a_0 1) mesi.usr.invalid_me_a_0) (ite mesi.usr.etat_me2_a_1 mesi.usr.invalid_me_a_0 (ite mesi.usr.etat_me3_a_1 (ite X2 (- (+ (+ (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) mesi.usr.exclusive_me_a_0) mesi.usr.shared_me_a_0) 1) mesi.usr.invalid_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 (- (+ (+ (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) mesi.usr.exclusive_me_a_0) mesi.usr.shared_me_a_0) 1) mesi.usr.invalid_me_a_0) mesi.usr.invalid_me_a_0))))) (= mesi.usr.exclusive_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 0 mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me2_a_1 (ite X3 (- mesi.usr.exclusive_me_a_0 1) mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me3_a_1 (ite X2 1 mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 1 mesi.usr.exclusive_me_a_0) mesi.usr.exclusive_me_a_0))))) (= mesi.usr.shared_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 (- (+ (- mesi.usr.shared_me_a_0 mesi.usr.exclusive_me_a_0) mesi.usr.modified_me_a_0) 1) mesi.usr.shared_me_a_0) (ite mesi.usr.etat_me2_a_1 mesi.usr.shared_me_a_0 (ite mesi.usr.etat_me3_a_1 (ite X2 0 mesi.usr.shared_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 0 mesi.usr.shared_me_a_0) mesi.usr.shared_me_a_0))))) (not mesi.res.init_flag_a_1))))))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.etat_me1_a_0 Bool) (top.usr.etat_me2_a_0 Bool) (top.usr.etat_me3_a_0 Bool) (top.usr.etat_me4_a_0 Bool) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.modified_me_a_0 Int) (top.impl.usr.exclusive_me_a_0 Int) (top.impl.usr.shared_me_a_0 Int) (top.impl.usr.invalid_me_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Int) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.invalid_me_a_0 top.res.abs_3_a_0) (= top.impl.usr.shared_me_a_0 top.res.abs_2_a_0) (= top.impl.usr.exclusive_me_a_0 top.res.abs_1_a_0) (= top.impl.usr.modified_me_a_0 top.res.abs_0_a_0) (let ((X1 top.res.abs_5_a_0)) (and (= top.usr.OK_a_0 (=> X1 (<= (+ (+ (+ top.res.abs_6_a_0 top.res.abs_7_a_0) top.res.abs_8_a_0) top.res.abs_9_a_0) 3))) (__node_init_Sofar_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_6_a_0) (__node_init_excludes4_0 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_4_a_0 top.res.inst_5_a_0) (__node_init_Abs_0 top.impl.usr.modified_me_a_0 top.res.abs_6_a_0 top.res.inst_4_a_0) (__node_init_mesi_0 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Abs_0 top.impl.usr.exclusive_me_a_0 top.res.abs_7_a_0 top.res.inst_2_a_0) (__node_init_Abs_0 top.impl.usr.shared_me_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_Abs_0 top.impl.usr.invalid_me_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.etat_me1_a_1 Bool) (top.usr.etat_me2_a_1 Bool) (top.usr.etat_me3_a_1 Bool) (top.usr.etat_me4_a_1 Bool) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.modified_me_a_1 Int) (top.impl.usr.exclusive_me_a_1 Int) (top.impl.usr.shared_me_a_1 Int) (top.impl.usr.invalid_me_a_1 Int) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.abs_9_a_1 Int) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Bool) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.etat_me1_a_0 Bool) (top.usr.etat_me2_a_0 Bool) (top.usr.etat_me3_a_0 Bool) (top.usr.etat_me4_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.modified_me_a_0 Int) (top.impl.usr.exclusive_me_a_0 Int) (top.impl.usr.shared_me_a_0 Int) (top.impl.usr.invalid_me_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Int) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.invalid_me_a_1 top.res.abs_3_a_1) (= top.impl.usr.shared_me_a_1 top.res.abs_2_a_1) (= top.impl.usr.exclusive_me_a_1 top.res.abs_1_a_1) (= top.impl.usr.modified_me_a_1 top.res.abs_0_a_1) (let ((X1 top.res.abs_5_a_1)) (and (= top.usr.OK_a_1 (=> X1 (<= (+ (+ (+ top.res.abs_6_a_1 top.res.abs_7_a_1) top.res.abs_8_a_1) top.res.abs_9_a_1) 3))) (__node_trans_Sofar_0 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_6_a_1 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_6_a_0) (__node_trans_excludes4_0 top.usr.etat_me1_a_1 top.usr.etat_me2_a_1 top.usr.etat_me3_a_1 top.usr.etat_me4_a_1 top.res.abs_4_a_1 top.res.inst_5_a_1 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_4_a_0 top.res.inst_5_a_0) (__node_trans_Abs_0 top.impl.usr.modified_me_a_1 top.res.abs_6_a_1 top.res.inst_4_a_1 top.impl.usr.modified_me_a_0 top.res.abs_6_a_0 top.res.inst_4_a_0) (__node_trans_mesi_0 top.usr.etat_me1_a_1 top.usr.etat_me2_a_1 top.usr.etat_me3_a_1 top.usr.etat_me4_a_1 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Abs_0 top.impl.usr.exclusive_me_a_1 top.res.abs_7_a_1 top.res.inst_2_a_1 top.impl.usr.exclusive_me_a_0 top.res.abs_7_a_0 top.res.inst_2_a_0) (__node_trans_Abs_0 top.impl.usr.shared_me_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.impl.usr.shared_me_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_Abs_0 top.impl.usr.invalid_me_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.impl.usr.invalid_me_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.modified_me Int) (top.impl.usr.exclusive_me Int) (top.impl.usr.shared_me Int) (top.impl.usr.invalid_me Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.modified_me Int) (top.impl.usr.exclusive_me Int) (top.impl.usr.shared_me Int) (top.impl.usr.invalid_me Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.invalid_me top.res.abs_3) (= top.impl.usr.shared_me top.res.abs_2) (= top.impl.usr.exclusive_me top.res.abs_1) (= top.impl.usr.modified_me top.res.abs_0) (let ((X1 top.res.abs_5)) (and (= top.usr.OK (=> X1 (<= (+ (+ (+ top.res.abs_6 top.res.abs_7) top.res.abs_8) top.res.abs_9) 3))) (__node_init_Sofar_0 top.res.abs_4 top.res.abs_5 top.res.inst_6) (__node_init_excludes4_0 top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_4 top.res.inst_5) (__node_init_Abs_0 top.impl.usr.modified_me top.res.abs_6 top.res.inst_4) (__node_init_mesi_0 top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Abs_0 top.impl.usr.exclusive_me top.res.abs_7 top.res.inst_2) (__node_init_Abs_0 top.impl.usr.shared_me top.res.abs_8 top.res.inst_1) (__node_init_Abs_0 top.impl.usr.invalid_me top.res.abs_9 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.modified_me Int) (top.impl.usr.exclusive_me Int) (top.impl.usr.shared_me Int) (top.impl.usr.invalid_me Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.etat_me1! Bool) (top.usr.etat_me2! Bool) (top.usr.etat_me3! Bool) (top.usr.etat_me4! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.modified_me! Int) (top.impl.usr.exclusive_me! Int) (top.impl.usr.shared_me! Int) (top.impl.usr.invalid_me! Int) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.abs_9! Int) (top.res.inst_6! Bool) (top.res.inst_5! Bool) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.impl.usr.invalid_me! top.res.abs_3!) (= top.impl.usr.shared_me! top.res.abs_2!) (= top.impl.usr.exclusive_me! top.res.abs_1!) (= top.impl.usr.modified_me! top.res.abs_0!) (let ((X1 top.res.abs_5!)) (and (= top.usr.OK! (=> X1 (<= (+ (+ (+ top.res.abs_6! top.res.abs_7!) top.res.abs_8!) top.res.abs_9!) 3))) (__node_trans_Sofar_0 top.res.abs_4! top.res.abs_5! top.res.inst_6! top.res.abs_4 top.res.abs_5 top.res.inst_6) (__node_trans_excludes4_0 top.usr.etat_me1! top.usr.etat_me2! top.usr.etat_me3! top.usr.etat_me4! top.res.abs_4! top.res.inst_5! top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_4 top.res.inst_5) (__node_trans_Abs_0 top.impl.usr.modified_me! top.res.abs_6! top.res.inst_4! top.impl.usr.modified_me top.res.abs_6 top.res.inst_4) (__node_trans_mesi_0 top.usr.etat_me1! top.usr.etat_me2! top.usr.etat_me3! top.usr.etat_me4! top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Abs_0 top.impl.usr.exclusive_me! top.res.abs_7! top.res.inst_2! top.impl.usr.exclusive_me top.res.abs_7 top.res.inst_2) (__node_trans_Abs_0 top.impl.usr.shared_me! top.res.abs_8! top.res.inst_1! top.impl.usr.shared_me top.res.abs_8 top.res.inst_1) (__node_trans_Abs_0 top.impl.usr.invalid_me! top.res.abs_9! top.res.inst_0! top.impl.usr.invalid_me top.res.abs_9 top.res.inst_0) (not top.res.init_flag!)))) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.modified_me Int) (top.impl.usr.exclusive_me Int) (top.impl.usr.shared_me Int) (top.impl.usr.invalid_me Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/MESI_4.sl b/benchmarks/LIA/Lustre/MESI_4.sl index d2dfe12..0cc9d76 100644 --- a/benchmarks/LIA/Lustre/MESI_4.sl +++ b/benchmarks/LIA/Lustre/MESI_4.sl @@ -1,628 +1,35 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes4_0 ( - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_0 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) - (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) - excludes4.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes4_0 ( - (excludes4.usr.X1_a_1 Bool) - (excludes4.usr.X2_a_1 Bool) - (excludes4.usr.X3_a_1 Bool) - (excludes4.usr.X4_a_1 Bool) - (excludes4.usr.excludes_a_1 Bool) - (excludes4.res.init_flag_a_1 Bool) - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_1 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) - (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) - (not excludes4.res.init_flag_a_1)) -) - -(define-fun - __node_init_mesi_0 ( - (mesi.usr.etat_me1_a_0 Bool) - (mesi.usr.etat_me2_a_0 Bool) - (mesi.usr.etat_me3_a_0 Bool) - (mesi.usr.etat_me4_a_0 Bool) - (mesi.res.nondet_3 Int) - (mesi.res.nondet_2 Int) - (mesi.res.nondet_1 Int) - (mesi.res.nondet_0 Int) - (mesi.usr.modified_me_a_0 Int) - (mesi.usr.exclusive_me_a_0 Int) - (mesi.usr.shared_me_a_0 Int) - (mesi.usr.invalid_me_a_0 Int) - (mesi.res.init_flag_a_0 Bool) - ) Bool - - (and - (= mesi.usr.modified_me_a_0 0) - (let - ((X1 Bool (let ((X1 Int mesi.res.nondet_0)) (>= X1 1)))) - (and - (= mesi.usr.invalid_me_a_0 3) - (= mesi.usr.exclusive_me_a_0 0) - (let - ((X2 Bool (let ((X2 Int mesi.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int mesi.res.nondet_2)) (>= X3 1)))) - (and - (= mesi.usr.shared_me_a_0 0) - (let - ((X4 Bool (let ((X4 Int mesi.res.nondet_3)) (>= X4 1)))) - mesi.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_mesi_0 ( - (mesi.usr.etat_me1_a_1 Bool) - (mesi.usr.etat_me2_a_1 Bool) - (mesi.usr.etat_me3_a_1 Bool) - (mesi.usr.etat_me4_a_1 Bool) - (mesi.res.nondet_3 Int) - (mesi.res.nondet_2 Int) - (mesi.res.nondet_1 Int) - (mesi.res.nondet_0 Int) - (mesi.usr.modified_me_a_1 Int) - (mesi.usr.exclusive_me_a_1 Int) - (mesi.usr.shared_me_a_1 Int) - (mesi.usr.invalid_me_a_1 Int) - (mesi.res.init_flag_a_1 Bool) - (mesi.usr.etat_me1_a_0 Bool) - (mesi.usr.etat_me2_a_0 Bool) - (mesi.usr.etat_me3_a_0 Bool) - (mesi.usr.etat_me4_a_0 Bool) - (mesi.usr.modified_me_a_0 Int) - (mesi.usr.exclusive_me_a_0 Int) - (mesi.usr.shared_me_a_0 Int) - (mesi.usr.invalid_me_a_0 Int) - (mesi.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= mesi.usr.invalid_me_a_0 1))) - (let - ((X2 Bool (>= mesi.usr.shared_me_a_0 1))) - (let - ((X3 Bool (>= mesi.usr.exclusive_me_a_0 1))) - (let - ((X4 Bool (>= mesi.usr.invalid_me_a_0 1))) - (and - (= - mesi.usr.modified_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 0 mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - (ite X3 (- mesi.usr.modified_me_a_0 1) mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me3_a_1 - (ite X2 0 mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 0 mesi.usr.modified_me_a_0) - mesi.usr.modified_me_a_0))))) - (= - mesi.usr.invalid_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 (- mesi.usr.invalid_me_a_0 1) mesi.usr.invalid_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - mesi.usr.invalid_me_a_0 - (ite - mesi.usr.etat_me3_a_1 - (ite - X2 - (- - (+ - (+ - (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) - mesi.usr.exclusive_me_a_0) - mesi.usr.shared_me_a_0) - 1) - mesi.usr.invalid_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite - X1 - (- - (+ - (+ - (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) - mesi.usr.exclusive_me_a_0) - mesi.usr.shared_me_a_0) - 1) - mesi.usr.invalid_me_a_0) - mesi.usr.invalid_me_a_0))))) - (= - mesi.usr.exclusive_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 0 mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - (ite X3 (- mesi.usr.exclusive_me_a_0 1) mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me3_a_1 - (ite X2 1 mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 1 mesi.usr.exclusive_me_a_0) - mesi.usr.exclusive_me_a_0))))) - (= - mesi.usr.shared_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite - X4 - (- - (+ - (+ mesi.usr.shared_me_a_0 mesi.usr.exclusive_me_a_0) - mesi.usr.modified_me_a_0) - 1) - mesi.usr.shared_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - mesi.usr.shared_me_a_0 - (ite - mesi.usr.etat_me3_a_1 - (ite X2 0 mesi.usr.shared_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 0 mesi.usr.shared_me_a_0) - mesi.usr.shared_me_a_0))))) - (not mesi.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.etat_me1_a_0 Bool) - (top.usr.etat_me2_a_0 Bool) - (top.usr.etat_me3_a_0 Bool) - (top.usr.etat_me4_a_0 Bool) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_0_a_0)) - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= X1 0))) - (let - ((X2 Bool top.res.abs_6_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (and - (= top.usr.OK_a_0 (=> X2 (or (<= X1 1) (<= X3 1)))) - (__node_init_mesi_0 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes4_0 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.etat_me1_a_1 Bool) - (top.usr.etat_me2_a_1 Bool) - (top.usr.etat_me3_a_1 Bool) - (top.usr.etat_me4_a_1 Bool) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.etat_me1_a_0 Bool) - (top.usr.etat_me2_a_0 Bool) - (top.usr.etat_me3_a_0 Bool) - (top.usr.etat_me4_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_0_a_1)) - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= X1 0))) - (let - ((X2 Bool top.res.abs_6_a_1)) - (let - ((X3 Int top.res.abs_2_a_1)) - (and - (= top.usr.OK_a_1 (=> X2 (or (<= X1 1) (<= X3 1)))) - (__node_trans_mesi_0 - top.usr.etat_me1_a_1 - top.usr.etat_me2_a_1 - top.usr.etat_me3_a_1 - top.usr.etat_me4_a_1 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes4_0 - top.usr.etat_me1_a_1 - top.usr.etat_me2_a_1 - top.usr.etat_me3_a_1 - top.usr.etat_me4_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))) -) - - - -(synth-inv str_invariant( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.etat_me1 Bool) -(declare-primed-var top.usr.etat_me2 Bool) -(declare-primed-var top.usr.etat_me3 Bool) -(declare-primed-var top.usr.etat_me4 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_0)) - (and - (= top.res.abs_5 (and top.res.abs_4 (>= X1 0))) - (let - ((X2 Bool top.res.abs_6)) - (let - ((X3 Int top.res.abs_2)) - (and - (= top.usr.OK (=> X2 (or (<= X1 1) (<= X3 1)))) - (__node_init_mesi_0 - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes4_0 - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.etat_me1! Bool) - (top.usr.etat_me2! Bool) - (top.usr.etat_me3! Bool) - (top.usr.etat_me4! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Int top.res.abs_0!)) - (and - (= top.res.abs_5! (and top.res.abs_4! (>= X1 0))) - (let - ((X2 Bool top.res.abs_6!)) - (let - ((X3 Int top.res.abs_2!)) - (and - (= top.usr.OK! (=> X2 (or (<= X1 1) (<= X3 1)))) - (__node_trans_mesi_0 - top.usr.etat_me1! - top.usr.etat_me2! - top.usr.etat_me3! - top.usr.etat_me4! - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes4_0 - top.usr.etat_me1! - top.usr.etat_me2! - top.usr.etat_me3! - top.usr.etat_me4! - top.res.abs_4! - top.res.inst_0! - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!)))))) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes4_0 ((excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_0 (not (or (or (or (or (or (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) excludes4.res.init_flag_a_0)) +(define-fun __node_trans_excludes4_0 ((excludes4.usr.X1_a_1 Bool) (excludes4.usr.X2_a_1 Bool) (excludes4.usr.X3_a_1 Bool) (excludes4.usr.X4_a_1 Bool) (excludes4.usr.excludes_a_1 Bool) (excludes4.res.init_flag_a_1 Bool) (excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_1 (not (or (or (or (or (or (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) (not excludes4.res.init_flag_a_1))) +(define-fun __node_init_mesi_0 ((mesi.usr.etat_me1_a_0 Bool) (mesi.usr.etat_me2_a_0 Bool) (mesi.usr.etat_me3_a_0 Bool) (mesi.usr.etat_me4_a_0 Bool) (mesi.res.nondet_3 Int) (mesi.res.nondet_2 Int) (mesi.res.nondet_1 Int) (mesi.res.nondet_0 Int) (mesi.usr.modified_me_a_0 Int) (mesi.usr.exclusive_me_a_0 Int) (mesi.usr.shared_me_a_0 Int) (mesi.usr.invalid_me_a_0 Int) (mesi.res.init_flag_a_0 Bool)) Bool + (and (= mesi.usr.modified_me_a_0 0) (let ((X1 (let ((X1 mesi.res.nondet_0)) (>= X1 1)))) (and (= mesi.usr.invalid_me_a_0 3) (= mesi.usr.exclusive_me_a_0 0) (let ((X2 (let ((X2 mesi.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 mesi.res.nondet_2)) (>= X3 1)))) (and (= mesi.usr.shared_me_a_0 0) (let ((X4 (let ((X4 mesi.res.nondet_3)) (>= X4 1)))) mesi.res.init_flag_a_0)))))))) +(define-fun __node_trans_mesi_0 ((mesi.usr.etat_me1_a_1 Bool) (mesi.usr.etat_me2_a_1 Bool) (mesi.usr.etat_me3_a_1 Bool) (mesi.usr.etat_me4_a_1 Bool) (mesi.res.nondet_3 Int) (mesi.res.nondet_2 Int) (mesi.res.nondet_1 Int) (mesi.res.nondet_0 Int) (mesi.usr.modified_me_a_1 Int) (mesi.usr.exclusive_me_a_1 Int) (mesi.usr.shared_me_a_1 Int) (mesi.usr.invalid_me_a_1 Int) (mesi.res.init_flag_a_1 Bool) (mesi.usr.etat_me1_a_0 Bool) (mesi.usr.etat_me2_a_0 Bool) (mesi.usr.etat_me3_a_0 Bool) (mesi.usr.etat_me4_a_0 Bool) (mesi.usr.modified_me_a_0 Int) (mesi.usr.exclusive_me_a_0 Int) (mesi.usr.shared_me_a_0 Int) (mesi.usr.invalid_me_a_0 Int) (mesi.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= mesi.usr.invalid_me_a_0 1))) (let ((X2 (>= mesi.usr.shared_me_a_0 1))) (let ((X3 (>= mesi.usr.exclusive_me_a_0 1))) (let ((X4 (>= mesi.usr.invalid_me_a_0 1))) (and (= mesi.usr.modified_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 0 mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me2_a_1 (ite X3 (- mesi.usr.modified_me_a_0 1) mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me3_a_1 (ite X2 0 mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 0 mesi.usr.modified_me_a_0) mesi.usr.modified_me_a_0))))) (= mesi.usr.invalid_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 (- mesi.usr.invalid_me_a_0 1) mesi.usr.invalid_me_a_0) (ite mesi.usr.etat_me2_a_1 mesi.usr.invalid_me_a_0 (ite mesi.usr.etat_me3_a_1 (ite X2 (- (+ (+ (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) mesi.usr.exclusive_me_a_0) mesi.usr.shared_me_a_0) 1) mesi.usr.invalid_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 (- (+ (+ (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) mesi.usr.exclusive_me_a_0) mesi.usr.shared_me_a_0) 1) mesi.usr.invalid_me_a_0) mesi.usr.invalid_me_a_0))))) (= mesi.usr.exclusive_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 0 mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me2_a_1 (ite X3 (- mesi.usr.exclusive_me_a_0 1) mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me3_a_1 (ite X2 1 mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 1 mesi.usr.exclusive_me_a_0) mesi.usr.exclusive_me_a_0))))) (= mesi.usr.shared_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 (- (+ (+ mesi.usr.shared_me_a_0 mesi.usr.exclusive_me_a_0) mesi.usr.modified_me_a_0) 1) mesi.usr.shared_me_a_0) (ite mesi.usr.etat_me2_a_1 mesi.usr.shared_me_a_0 (ite mesi.usr.etat_me3_a_1 (ite X2 0 mesi.usr.shared_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 0 mesi.usr.shared_me_a_0) mesi.usr.shared_me_a_0))))) (not mesi.res.init_flag_a_1))))))) +(define-fun __node_init_top_0 ((top.usr.etat_me1_a_0 Bool) (top.usr.etat_me2_a_0 Bool) (top.usr.etat_me3_a_0 Bool) (top.usr.etat_me4_a_0 Bool) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_0)) (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= X1 0))) (let ((X2 top.res.abs_6_a_0)) (let ((X3 top.res.abs_2_a_0)) (and (= top.usr.OK_a_0 (=> X2 (or (<= X1 1) (<= X3 1)))) (__node_init_mesi_0 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes4_0 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))) +(define-fun __node_trans_top_0 ((top.usr.etat_me1_a_1 Bool) (top.usr.etat_me2_a_1 Bool) (top.usr.etat_me3_a_1 Bool) (top.usr.etat_me4_a_1 Bool) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.etat_me1_a_0 Bool) (top.usr.etat_me2_a_0 Bool) (top.usr.etat_me3_a_0 Bool) (top.usr.etat_me4_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_1)) (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= X1 0))) (let ((X2 top.res.abs_6_a_1)) (let ((X3 top.res.abs_2_a_1)) (and (= top.usr.OK_a_1 (=> X2 (or (<= X1 1) (<= X3 1)))) (__node_trans_mesi_0 top.usr.etat_me1_a_1 top.usr.etat_me2_a_1 top.usr.etat_me3_a_1 top.usr.etat_me4_a_1 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes4_0 top.usr.etat_me1_a_1 top.usr.etat_me2_a_1 top.usr.etat_me3_a_1 top.usr.etat_me4_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))) +(synth-inv str_invariant ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_0)) (and (= top.res.abs_5 (and top.res.abs_4 (>= X1 0))) (let ((X2 top.res.abs_6)) (let ((X3 top.res.abs_2)) (and (= top.usr.OK (=> X2 (or (<= X1 1) (<= X3 1)))) (__node_init_mesi_0 top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes4_0 top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_4 top.res.inst_0) top.res.init_flag)))))) +(define-fun trans ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.etat_me1! Bool) (top.usr.etat_me2! Bool) (top.usr.etat_me3! Bool) (top.usr.etat_me4! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_0!)) (and (= top.res.abs_5! (and top.res.abs_4! (>= X1 0))) (let ((X2 top.res.abs_6!)) (let ((X3 top.res.abs_2!)) (and (= top.usr.OK! (=> X2 (or (<= X1 1) (<= X3 1)))) (__node_trans_mesi_0 top.usr.etat_me1! top.usr.etat_me2! top.usr.etat_me3! top.usr.etat_me4! top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_2! top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes4_0 top.usr.etat_me1! top.usr.etat_me2! top.usr.etat_me3! top.usr.etat_me4! top.res.abs_4! top.res.inst_0! top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!)))))) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/MESI_4_e7_1140_e7_433.sl b/benchmarks/LIA/Lustre/MESI_4_e7_1140_e7_433.sl index 902a39d..ea59698 100644 --- a/benchmarks/LIA/Lustre/MESI_4_e7_1140_e7_433.sl +++ b/benchmarks/LIA/Lustre/MESI_4_e7_1140_e7_433.sl @@ -1,628 +1,35 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes4_0 ( - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_0 - (not - (or - (or - (or - (or - (or - (or excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) - (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) - excludes4.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes4_0 ( - (excludes4.usr.X1_a_1 Bool) - (excludes4.usr.X2_a_1 Bool) - (excludes4.usr.X3_a_1 Bool) - (excludes4.usr.X4_a_1 Bool) - (excludes4.usr.excludes_a_1 Bool) - (excludes4.res.init_flag_a_1 Bool) - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_1 - (not - (or - (or - (or - (or - (or - (or excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) - (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) - (not excludes4.res.init_flag_a_1)) -) - -(define-fun - __node_init_mesi_0 ( - (mesi.usr.etat_me1_a_0 Bool) - (mesi.usr.etat_me2_a_0 Bool) - (mesi.usr.etat_me3_a_0 Bool) - (mesi.usr.etat_me4_a_0 Bool) - (mesi.res.nondet_3 Int) - (mesi.res.nondet_2 Int) - (mesi.res.nondet_1 Int) - (mesi.res.nondet_0 Int) - (mesi.usr.modified_me_a_0 Int) - (mesi.usr.exclusive_me_a_0 Int) - (mesi.usr.shared_me_a_0 Int) - (mesi.usr.invalid_me_a_0 Int) - (mesi.res.init_flag_a_0 Bool) - ) Bool - - (and - (= mesi.usr.modified_me_a_0 0) - (let - ((X1 Bool (let ((X1 Int mesi.res.nondet_0)) (>= X1 1)))) - (and - (= mesi.usr.invalid_me_a_0 3) - (= mesi.usr.exclusive_me_a_0 0) - (let - ((X2 Bool (let ((X2 Int mesi.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int mesi.res.nondet_2)) (>= X3 1)))) - (and - (= mesi.usr.shared_me_a_0 0) - (let - ((X4 Bool (let ((X4 Int mesi.res.nondet_3)) (>= X4 1)))) - mesi.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_mesi_0 ( - (mesi.usr.etat_me1_a_1 Bool) - (mesi.usr.etat_me2_a_1 Bool) - (mesi.usr.etat_me3_a_1 Bool) - (mesi.usr.etat_me4_a_1 Bool) - (mesi.res.nondet_3 Int) - (mesi.res.nondet_2 Int) - (mesi.res.nondet_1 Int) - (mesi.res.nondet_0 Int) - (mesi.usr.modified_me_a_1 Int) - (mesi.usr.exclusive_me_a_1 Int) - (mesi.usr.shared_me_a_1 Int) - (mesi.usr.invalid_me_a_1 Int) - (mesi.res.init_flag_a_1 Bool) - (mesi.usr.etat_me1_a_0 Bool) - (mesi.usr.etat_me2_a_0 Bool) - (mesi.usr.etat_me3_a_0 Bool) - (mesi.usr.etat_me4_a_0 Bool) - (mesi.usr.modified_me_a_0 Int) - (mesi.usr.exclusive_me_a_0 Int) - (mesi.usr.shared_me_a_0 Int) - (mesi.usr.invalid_me_a_0 Int) - (mesi.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= mesi.usr.invalid_me_a_0 1))) - (let - ((X2 Bool (>= mesi.usr.shared_me_a_0 1))) - (let - ((X3 Bool (>= mesi.usr.exclusive_me_a_0 1))) - (let - ((X4 Bool (>= mesi.usr.invalid_me_a_0 1))) - (and - (= - mesi.usr.modified_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 0 mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - (ite X3 (- mesi.usr.modified_me_a_0 1) mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me3_a_1 - (ite X2 0 mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 0 mesi.usr.modified_me_a_0) - mesi.usr.modified_me_a_0))))) - (= - mesi.usr.invalid_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 (- mesi.usr.invalid_me_a_0 1) mesi.usr.invalid_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - mesi.usr.invalid_me_a_0 - (ite - mesi.usr.etat_me3_a_1 - (ite - X2 - (- - (+ - (+ - (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) - mesi.usr.exclusive_me_a_0) - mesi.usr.shared_me_a_0) - 1) - mesi.usr.invalid_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite - X1 - (- - (+ - (+ - (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) - mesi.usr.exclusive_me_a_0) - mesi.usr.shared_me_a_0) - 1) - mesi.usr.invalid_me_a_0) - mesi.usr.invalid_me_a_0))))) - (= - mesi.usr.exclusive_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 0 mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - (ite X3 (- mesi.usr.exclusive_me_a_0 1) mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me3_a_1 - (ite X2 1 mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 1 mesi.usr.exclusive_me_a_0) - mesi.usr.exclusive_me_a_0))))) - (= - mesi.usr.shared_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite - X4 - (- - (+ - (+ mesi.usr.shared_me_a_0 mesi.usr.exclusive_me_a_0) - mesi.usr.modified_me_a_0) - 1) - mesi.usr.shared_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - mesi.usr.shared_me_a_0 - (ite - mesi.usr.etat_me3_a_1 - (ite X2 0 mesi.usr.shared_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 0 mesi.usr.shared_me_a_0) - mesi.usr.shared_me_a_0))))) - (not mesi.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.etat_me1_a_0 Bool) - (top.usr.etat_me2_a_0 Bool) - (top.usr.etat_me3_a_0 Bool) - (top.usr.etat_me4_a_0 Bool) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_0_a_0)) - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= X1 0))) - (let - ((X2 Bool top.res.abs_6_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (and - (= top.usr.OK_a_0 (=> X2 (or (<= X1 1) (<= X3 1)))) - (__node_init_mesi_0 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes4_0 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.etat_me1_a_1 Bool) - (top.usr.etat_me2_a_1 Bool) - (top.usr.etat_me3_a_1 Bool) - (top.usr.etat_me4_a_1 Bool) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.etat_me1_a_0 Bool) - (top.usr.etat_me2_a_0 Bool) - (top.usr.etat_me3_a_0 Bool) - (top.usr.etat_me4_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_0_a_1)) - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= X1 0))) - (let - ((X2 Bool top.res.abs_6_a_1)) - (let - ((X3 Int top.res.abs_2_a_1)) - (and - (= top.usr.OK_a_1 (=> X2 (or (<= X1 1) (<= X3 1)))) - (__node_trans_mesi_0 - top.usr.etat_me1_a_1 - top.usr.etat_me2_a_1 - top.usr.etat_me3_a_1 - top.usr.etat_me4_a_1 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes4_0 - top.usr.etat_me1_a_1 - top.usr.etat_me2_a_1 - top.usr.etat_me3_a_1 - top.usr.etat_me4_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))) -) - - - -(synth-inv str_invariant( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.etat_me1 Bool) -(declare-primed-var top.usr.etat_me2 Bool) -(declare-primed-var top.usr.etat_me3 Bool) -(declare-primed-var top.usr.etat_me4 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_0)) - (and - (= top.res.abs_5 (and top.res.abs_4 (>= X1 0))) - (let - ((X2 Bool top.res.abs_6)) - (let - ((X3 Int top.res.abs_2)) - (and - (= top.usr.OK (=> X2 (or (<= X1 1) (<= X3 1)))) - (__node_init_mesi_0 - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes4_0 - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.etat_me1! Bool) - (top.usr.etat_me2! Bool) - (top.usr.etat_me3! Bool) - (top.usr.etat_me4! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Int top.res.abs_0!)) - (and - (= top.res.abs_5! (and top.res.abs_4! (>= X1 0))) - (let - ((X2 Bool top.res.abs_6!)) - (let - ((X3 Int top.res.abs_2!)) - (and - (= top.usr.OK! (=> X2 (or (<= X1 1) (<= X3 1)))) - (__node_trans_mesi_0 - top.usr.etat_me1! - top.usr.etat_me2! - top.usr.etat_me3! - top.usr.etat_me4! - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes4_0 - top.usr.etat_me1! - top.usr.etat_me2! - top.usr.etat_me3! - top.usr.etat_me4! - top.res.abs_4! - top.res.inst_0! - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!)))))) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes4_0 ((excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_0 (not (or (or (or (or (or (or excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) excludes4.res.init_flag_a_0)) +(define-fun __node_trans_excludes4_0 ((excludes4.usr.X1_a_1 Bool) (excludes4.usr.X2_a_1 Bool) (excludes4.usr.X3_a_1 Bool) (excludes4.usr.X4_a_1 Bool) (excludes4.usr.excludes_a_1 Bool) (excludes4.res.init_flag_a_1 Bool) (excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_1 (not (or (or (or (or (or (or excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) (not excludes4.res.init_flag_a_1))) +(define-fun __node_init_mesi_0 ((mesi.usr.etat_me1_a_0 Bool) (mesi.usr.etat_me2_a_0 Bool) (mesi.usr.etat_me3_a_0 Bool) (mesi.usr.etat_me4_a_0 Bool) (mesi.res.nondet_3 Int) (mesi.res.nondet_2 Int) (mesi.res.nondet_1 Int) (mesi.res.nondet_0 Int) (mesi.usr.modified_me_a_0 Int) (mesi.usr.exclusive_me_a_0 Int) (mesi.usr.shared_me_a_0 Int) (mesi.usr.invalid_me_a_0 Int) (mesi.res.init_flag_a_0 Bool)) Bool + (and (= mesi.usr.modified_me_a_0 0) (let ((X1 (let ((X1 mesi.res.nondet_0)) (>= X1 1)))) (and (= mesi.usr.invalid_me_a_0 3) (= mesi.usr.exclusive_me_a_0 0) (let ((X2 (let ((X2 mesi.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 mesi.res.nondet_2)) (>= X3 1)))) (and (= mesi.usr.shared_me_a_0 0) (let ((X4 (let ((X4 mesi.res.nondet_3)) (>= X4 1)))) mesi.res.init_flag_a_0)))))))) +(define-fun __node_trans_mesi_0 ((mesi.usr.etat_me1_a_1 Bool) (mesi.usr.etat_me2_a_1 Bool) (mesi.usr.etat_me3_a_1 Bool) (mesi.usr.etat_me4_a_1 Bool) (mesi.res.nondet_3 Int) (mesi.res.nondet_2 Int) (mesi.res.nondet_1 Int) (mesi.res.nondet_0 Int) (mesi.usr.modified_me_a_1 Int) (mesi.usr.exclusive_me_a_1 Int) (mesi.usr.shared_me_a_1 Int) (mesi.usr.invalid_me_a_1 Int) (mesi.res.init_flag_a_1 Bool) (mesi.usr.etat_me1_a_0 Bool) (mesi.usr.etat_me2_a_0 Bool) (mesi.usr.etat_me3_a_0 Bool) (mesi.usr.etat_me4_a_0 Bool) (mesi.usr.modified_me_a_0 Int) (mesi.usr.exclusive_me_a_0 Int) (mesi.usr.shared_me_a_0 Int) (mesi.usr.invalid_me_a_0 Int) (mesi.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= mesi.usr.invalid_me_a_0 1))) (let ((X2 (>= mesi.usr.shared_me_a_0 1))) (let ((X3 (>= mesi.usr.exclusive_me_a_0 1))) (let ((X4 (>= mesi.usr.invalid_me_a_0 1))) (and (= mesi.usr.modified_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 0 mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me2_a_1 (ite X3 (- mesi.usr.modified_me_a_0 1) mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me3_a_1 (ite X2 0 mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 0 mesi.usr.modified_me_a_0) mesi.usr.modified_me_a_0))))) (= mesi.usr.invalid_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 (- mesi.usr.invalid_me_a_0 1) mesi.usr.invalid_me_a_0) (ite mesi.usr.etat_me2_a_1 mesi.usr.invalid_me_a_0 (ite mesi.usr.etat_me3_a_1 (ite X2 (- (+ (+ (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) mesi.usr.exclusive_me_a_0) mesi.usr.shared_me_a_0) 1) mesi.usr.invalid_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 (- (+ (+ (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) mesi.usr.exclusive_me_a_0) mesi.usr.shared_me_a_0) 1) mesi.usr.invalid_me_a_0) mesi.usr.invalid_me_a_0))))) (= mesi.usr.exclusive_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 0 mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me2_a_1 (ite X3 (- mesi.usr.exclusive_me_a_0 1) mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me3_a_1 (ite X2 1 mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 1 mesi.usr.exclusive_me_a_0) mesi.usr.exclusive_me_a_0))))) (= mesi.usr.shared_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 (- (+ (+ mesi.usr.shared_me_a_0 mesi.usr.exclusive_me_a_0) mesi.usr.modified_me_a_0) 1) mesi.usr.shared_me_a_0) (ite mesi.usr.etat_me2_a_1 mesi.usr.shared_me_a_0 (ite mesi.usr.etat_me3_a_1 (ite X2 0 mesi.usr.shared_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 0 mesi.usr.shared_me_a_0) mesi.usr.shared_me_a_0))))) (not mesi.res.init_flag_a_1))))))) +(define-fun __node_init_top_0 ((top.usr.etat_me1_a_0 Bool) (top.usr.etat_me2_a_0 Bool) (top.usr.etat_me3_a_0 Bool) (top.usr.etat_me4_a_0 Bool) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_0)) (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= X1 0))) (let ((X2 top.res.abs_6_a_0)) (let ((X3 top.res.abs_2_a_0)) (and (= top.usr.OK_a_0 (=> X2 (or (<= X1 1) (<= X3 1)))) (__node_init_mesi_0 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes4_0 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))) +(define-fun __node_trans_top_0 ((top.usr.etat_me1_a_1 Bool) (top.usr.etat_me2_a_1 Bool) (top.usr.etat_me3_a_1 Bool) (top.usr.etat_me4_a_1 Bool) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.etat_me1_a_0 Bool) (top.usr.etat_me2_a_0 Bool) (top.usr.etat_me3_a_0 Bool) (top.usr.etat_me4_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_1)) (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= X1 0))) (let ((X2 top.res.abs_6_a_1)) (let ((X3 top.res.abs_2_a_1)) (and (= top.usr.OK_a_1 (=> X2 (or (<= X1 1) (<= X3 1)))) (__node_trans_mesi_0 top.usr.etat_me1_a_1 top.usr.etat_me2_a_1 top.usr.etat_me3_a_1 top.usr.etat_me4_a_1 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes4_0 top.usr.etat_me1_a_1 top.usr.etat_me2_a_1 top.usr.etat_me3_a_1 top.usr.etat_me4_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))) +(synth-inv str_invariant ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_0)) (and (= top.res.abs_5 (and top.res.abs_4 (>= X1 0))) (let ((X2 top.res.abs_6)) (let ((X3 top.res.abs_2)) (and (= top.usr.OK (=> X2 (or (<= X1 1) (<= X3 1)))) (__node_init_mesi_0 top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes4_0 top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_4 top.res.inst_0) top.res.init_flag)))))) +(define-fun trans ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.etat_me1! Bool) (top.usr.etat_me2! Bool) (top.usr.etat_me3! Bool) (top.usr.etat_me4! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_0!)) (and (= top.res.abs_5! (and top.res.abs_4! (>= X1 0))) (let ((X2 top.res.abs_6!)) (let ((X3 top.res.abs_2!)) (and (= top.usr.OK! (=> X2 (or (<= X1 1) (<= X3 1)))) (__node_trans_mesi_0 top.usr.etat_me1! top.usr.etat_me2! top.usr.etat_me3! top.usr.etat_me4! top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_2! top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes4_0 top.usr.etat_me1! top.usr.etat_me2! top.usr.etat_me3! top.usr.etat_me4! top.res.abs_4! top.res.inst_0! top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!)))))) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/MESI_all.sl b/benchmarks/LIA/Lustre/MESI_all.sl index 9136830..f7272cf 100644 --- a/benchmarks/LIA/Lustre/MESI_all.sl +++ b/benchmarks/LIA/Lustre/MESI_all.sl @@ -1,655 +1,35 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes4_0 ( - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_0 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) - (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) - excludes4.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes4_0 ( - (excludes4.usr.X1_a_1 Bool) - (excludes4.usr.X2_a_1 Bool) - (excludes4.usr.X3_a_1 Bool) - (excludes4.usr.X4_a_1 Bool) - (excludes4.usr.excludes_a_1 Bool) - (excludes4.res.init_flag_a_1 Bool) - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_1 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) - (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) - (not excludes4.res.init_flag_a_1)) -) - -(define-fun - __node_init_mesi_0 ( - (mesi.usr.etat_me1_a_0 Bool) - (mesi.usr.etat_me2_a_0 Bool) - (mesi.usr.etat_me3_a_0 Bool) - (mesi.usr.etat_me4_a_0 Bool) - (mesi.res.nondet_3 Int) - (mesi.res.nondet_2 Int) - (mesi.res.nondet_1 Int) - (mesi.res.nondet_0 Int) - (mesi.usr.modified_me_a_0 Int) - (mesi.usr.exclusive_me_a_0 Int) - (mesi.usr.shared_me_a_0 Int) - (mesi.usr.invalid_me_a_0 Int) - (mesi.res.init_flag_a_0 Bool) - ) Bool - - (and - (= mesi.usr.modified_me_a_0 0) - (let - ((X1 Bool (let ((X1 Int mesi.res.nondet_0)) (>= X1 1)))) - (and - (= mesi.usr.invalid_me_a_0 3) - (= mesi.usr.exclusive_me_a_0 0) - (let - ((X2 Bool (let ((X2 Int mesi.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int mesi.res.nondet_2)) (>= X3 1)))) - (and - (= mesi.usr.shared_me_a_0 0) - (let - ((X4 Bool (let ((X4 Int mesi.res.nondet_3)) (>= X4 1)))) - mesi.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_mesi_0 ( - (mesi.usr.etat_me1_a_1 Bool) - (mesi.usr.etat_me2_a_1 Bool) - (mesi.usr.etat_me3_a_1 Bool) - (mesi.usr.etat_me4_a_1 Bool) - (mesi.res.nondet_3 Int) - (mesi.res.nondet_2 Int) - (mesi.res.nondet_1 Int) - (mesi.res.nondet_0 Int) - (mesi.usr.modified_me_a_1 Int) - (mesi.usr.exclusive_me_a_1 Int) - (mesi.usr.shared_me_a_1 Int) - (mesi.usr.invalid_me_a_1 Int) - (mesi.res.init_flag_a_1 Bool) - (mesi.usr.etat_me1_a_0 Bool) - (mesi.usr.etat_me2_a_0 Bool) - (mesi.usr.etat_me3_a_0 Bool) - (mesi.usr.etat_me4_a_0 Bool) - (mesi.usr.modified_me_a_0 Int) - (mesi.usr.exclusive_me_a_0 Int) - (mesi.usr.shared_me_a_0 Int) - (mesi.usr.invalid_me_a_0 Int) - (mesi.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= mesi.usr.invalid_me_a_0 1))) - (let - ((X2 Bool (>= mesi.usr.shared_me_a_0 1))) - (let - ((X3 Bool (>= mesi.usr.exclusive_me_a_0 1))) - (let - ((X4 Bool (>= mesi.usr.invalid_me_a_0 1))) - (and - (= - mesi.usr.modified_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 0 mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - (ite X3 (- mesi.usr.modified_me_a_0 1) mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me3_a_1 - (ite X2 0 mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 0 mesi.usr.modified_me_a_0) - mesi.usr.modified_me_a_0))))) - (= - mesi.usr.invalid_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 (- mesi.usr.invalid_me_a_0 1) mesi.usr.invalid_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - mesi.usr.invalid_me_a_0 - (ite - mesi.usr.etat_me3_a_1 - (ite - X2 - (- - (+ - (+ - (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) - mesi.usr.exclusive_me_a_0) - mesi.usr.shared_me_a_0) - 1) - mesi.usr.invalid_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite - X1 - (- - (+ - (+ - (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) - mesi.usr.exclusive_me_a_0) - mesi.usr.shared_me_a_0) - 1) - mesi.usr.invalid_me_a_0) - mesi.usr.invalid_me_a_0))))) - (= - mesi.usr.exclusive_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 0 mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - (ite X3 (- mesi.usr.exclusive_me_a_0 1) mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me3_a_1 - (ite X2 1 mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 1 mesi.usr.exclusive_me_a_0) - mesi.usr.exclusive_me_a_0))))) - (= - mesi.usr.shared_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite - X4 - (- - (+ - (+ mesi.usr.shared_me_a_0 mesi.usr.exclusive_me_a_0) - mesi.usr.modified_me_a_0) - 1) - mesi.usr.shared_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - mesi.usr.shared_me_a_0 - (ite - mesi.usr.etat_me3_a_1 - (ite X2 0 mesi.usr.shared_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 0 mesi.usr.shared_me_a_0) - mesi.usr.shared_me_a_0))))) - (not mesi.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.etat_me1_a_0 Bool) - (top.usr.etat_me2_a_0 Bool) - (top.usr.etat_me3_a_0 Bool) - (top.usr.etat_me4_a_0 Bool) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_0_a_0)) - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= X1 0))) - (let - ((X2 Bool top.res.abs_6_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_1_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X2 - (and (and (not (> X1 2)) (>= X4 0)) (or (<= X1 1) (<= X3 1))))) - (__node_init_mesi_0 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_excludes4_0 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.etat_me1_a_1 Bool) - (top.usr.etat_me2_a_1 Bool) - (top.usr.etat_me3_a_1 Bool) - (top.usr.etat_me4_a_1 Bool) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.etat_me1_a_0 Bool) - (top.usr.etat_me2_a_0 Bool) - (top.usr.etat_me3_a_0 Bool) - (top.usr.etat_me4_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_0_a_1)) - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= X1 0))) - (let - ((X2 Bool top.res.abs_6_a_1)) - (let - ((X3 Int top.res.abs_2_a_1)) - (let - ((X4 Int top.res.abs_1_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X2 - (and (and (not (> X1 2)) (>= X4 0)) (or (<= X1 1) (<= X3 1))))) - (__node_trans_mesi_0 - top.usr.etat_me1_a_1 - top.usr.etat_me2_a_1 - top.usr.etat_me3_a_1 - top.usr.etat_me4_a_1 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes4_0 - top.usr.etat_me1_a_1 - top.usr.etat_me2_a_1 - top.usr.etat_me3_a_1 - top.usr.etat_me4_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.etat_me1 Bool) -(declare-primed-var top.usr.etat_me2 Bool) -(declare-primed-var top.usr.etat_me3 Bool) -(declare-primed-var top.usr.etat_me4 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_0)) - (and - (= top.res.abs_5 (and top.res.abs_4 (>= X1 0))) - (let - ((X2 Bool top.res.abs_6)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_1)) - (and - (= - top.usr.OK - (=> - X2 - (and (and (not (> X1 2)) (>= X4 0)) (or (<= X1 1) (<= X3 1))))) - (__node_init_mesi_0 - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes4_0 - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.etat_me1! Bool) - (top.usr.etat_me2! Bool) - (top.usr.etat_me3! Bool) - (top.usr.etat_me4! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Int top.res.abs_0!)) - (and - (= top.res.abs_5! (and top.res.abs_4! (>= X1 0))) - (let - ((X2 Bool top.res.abs_6!)) - (let - ((X3 Int top.res.abs_2!)) - (let - ((X4 Int top.res.abs_1!)) - (and - (= - top.usr.OK! - (=> - X2 - (and (and (not (> X1 2)) (>= X4 0)) (or (<= X1 1) (<= X3 1))))) - (__node_trans_mesi_0 - top.usr.etat_me1! - top.usr.etat_me2! - top.usr.etat_me3! - top.usr.etat_me4! - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes4_0 - top.usr.etat_me1! - top.usr.etat_me2! - top.usr.etat_me3! - top.usr.etat_me4! - top.res.abs_4! - top.res.inst_0! - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))))) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes4_0 ((excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_0 (not (or (or (or (or (or (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) excludes4.res.init_flag_a_0)) +(define-fun __node_trans_excludes4_0 ((excludes4.usr.X1_a_1 Bool) (excludes4.usr.X2_a_1 Bool) (excludes4.usr.X3_a_1 Bool) (excludes4.usr.X4_a_1 Bool) (excludes4.usr.excludes_a_1 Bool) (excludes4.res.init_flag_a_1 Bool) (excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_1 (not (or (or (or (or (or (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) (not excludes4.res.init_flag_a_1))) +(define-fun __node_init_mesi_0 ((mesi.usr.etat_me1_a_0 Bool) (mesi.usr.etat_me2_a_0 Bool) (mesi.usr.etat_me3_a_0 Bool) (mesi.usr.etat_me4_a_0 Bool) (mesi.res.nondet_3 Int) (mesi.res.nondet_2 Int) (mesi.res.nondet_1 Int) (mesi.res.nondet_0 Int) (mesi.usr.modified_me_a_0 Int) (mesi.usr.exclusive_me_a_0 Int) (mesi.usr.shared_me_a_0 Int) (mesi.usr.invalid_me_a_0 Int) (mesi.res.init_flag_a_0 Bool)) Bool + (and (= mesi.usr.modified_me_a_0 0) (let ((X1 (let ((X1 mesi.res.nondet_0)) (>= X1 1)))) (and (= mesi.usr.invalid_me_a_0 3) (= mesi.usr.exclusive_me_a_0 0) (let ((X2 (let ((X2 mesi.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 mesi.res.nondet_2)) (>= X3 1)))) (and (= mesi.usr.shared_me_a_0 0) (let ((X4 (let ((X4 mesi.res.nondet_3)) (>= X4 1)))) mesi.res.init_flag_a_0)))))))) +(define-fun __node_trans_mesi_0 ((mesi.usr.etat_me1_a_1 Bool) (mesi.usr.etat_me2_a_1 Bool) (mesi.usr.etat_me3_a_1 Bool) (mesi.usr.etat_me4_a_1 Bool) (mesi.res.nondet_3 Int) (mesi.res.nondet_2 Int) (mesi.res.nondet_1 Int) (mesi.res.nondet_0 Int) (mesi.usr.modified_me_a_1 Int) (mesi.usr.exclusive_me_a_1 Int) (mesi.usr.shared_me_a_1 Int) (mesi.usr.invalid_me_a_1 Int) (mesi.res.init_flag_a_1 Bool) (mesi.usr.etat_me1_a_0 Bool) (mesi.usr.etat_me2_a_0 Bool) (mesi.usr.etat_me3_a_0 Bool) (mesi.usr.etat_me4_a_0 Bool) (mesi.usr.modified_me_a_0 Int) (mesi.usr.exclusive_me_a_0 Int) (mesi.usr.shared_me_a_0 Int) (mesi.usr.invalid_me_a_0 Int) (mesi.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= mesi.usr.invalid_me_a_0 1))) (let ((X2 (>= mesi.usr.shared_me_a_0 1))) (let ((X3 (>= mesi.usr.exclusive_me_a_0 1))) (let ((X4 (>= mesi.usr.invalid_me_a_0 1))) (and (= mesi.usr.modified_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 0 mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me2_a_1 (ite X3 (- mesi.usr.modified_me_a_0 1) mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me3_a_1 (ite X2 0 mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 0 mesi.usr.modified_me_a_0) mesi.usr.modified_me_a_0))))) (= mesi.usr.invalid_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 (- mesi.usr.invalid_me_a_0 1) mesi.usr.invalid_me_a_0) (ite mesi.usr.etat_me2_a_1 mesi.usr.invalid_me_a_0 (ite mesi.usr.etat_me3_a_1 (ite X2 (- (+ (+ (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) mesi.usr.exclusive_me_a_0) mesi.usr.shared_me_a_0) 1) mesi.usr.invalid_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 (- (+ (+ (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) mesi.usr.exclusive_me_a_0) mesi.usr.shared_me_a_0) 1) mesi.usr.invalid_me_a_0) mesi.usr.invalid_me_a_0))))) (= mesi.usr.exclusive_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 0 mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me2_a_1 (ite X3 (- mesi.usr.exclusive_me_a_0 1) mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me3_a_1 (ite X2 1 mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 1 mesi.usr.exclusive_me_a_0) mesi.usr.exclusive_me_a_0))))) (= mesi.usr.shared_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 (- (+ (+ mesi.usr.shared_me_a_0 mesi.usr.exclusive_me_a_0) mesi.usr.modified_me_a_0) 1) mesi.usr.shared_me_a_0) (ite mesi.usr.etat_me2_a_1 mesi.usr.shared_me_a_0 (ite mesi.usr.etat_me3_a_1 (ite X2 0 mesi.usr.shared_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 0 mesi.usr.shared_me_a_0) mesi.usr.shared_me_a_0))))) (not mesi.res.init_flag_a_1))))))) +(define-fun __node_init_top_0 ((top.usr.etat_me1_a_0 Bool) (top.usr.etat_me2_a_0 Bool) (top.usr.etat_me3_a_0 Bool) (top.usr.etat_me4_a_0 Bool) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_0)) (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= X1 0))) (let ((X2 top.res.abs_6_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_1_a_0)) (and (= top.usr.OK_a_0 (=> X2 (and (and (not (> X1 2)) (>= X4 0)) (or (<= X1 1) (<= X3 1))))) (__node_init_mesi_0 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes4_0 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))) +(define-fun __node_trans_top_0 ((top.usr.etat_me1_a_1 Bool) (top.usr.etat_me2_a_1 Bool) (top.usr.etat_me3_a_1 Bool) (top.usr.etat_me4_a_1 Bool) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.etat_me1_a_0 Bool) (top.usr.etat_me2_a_0 Bool) (top.usr.etat_me3_a_0 Bool) (top.usr.etat_me4_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_1)) (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= X1 0))) (let ((X2 top.res.abs_6_a_1)) (let ((X3 top.res.abs_2_a_1)) (let ((X4 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (=> X2 (and (and (not (> X1 2)) (>= X4 0)) (or (<= X1 1) (<= X3 1))))) (__node_trans_mesi_0 top.usr.etat_me1_a_1 top.usr.etat_me2_a_1 top.usr.etat_me3_a_1 top.usr.etat_me4_a_1 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes4_0 top.usr.etat_me1_a_1 top.usr.etat_me2_a_1 top.usr.etat_me3_a_1 top.usr.etat_me4_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_0)) (and (= top.res.abs_5 (and top.res.abs_4 (>= X1 0))) (let ((X2 top.res.abs_6)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_1)) (and (= top.usr.OK (=> X2 (and (and (not (> X1 2)) (>= X4 0)) (or (<= X1 1) (<= X3 1))))) (__node_init_mesi_0 top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes4_0 top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_4 top.res.inst_0) top.res.init_flag))))))) +(define-fun trans ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.etat_me1! Bool) (top.usr.etat_me2! Bool) (top.usr.etat_me3! Bool) (top.usr.etat_me4! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_0!)) (and (= top.res.abs_5! (and top.res.abs_4! (>= X1 0))) (let ((X2 top.res.abs_6!)) (let ((X3 top.res.abs_2!)) (let ((X4 top.res.abs_1!)) (and (= top.usr.OK! (=> X2 (and (and (not (> X1 2)) (>= X4 0)) (or (<= X1 1) (<= X3 1))))) (__node_trans_mesi_0 top.usr.etat_me1! top.usr.etat_me2! top.usr.etat_me3! top.usr.etat_me4! top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_2! top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes4_0 top.usr.etat_me1! top.usr.etat_me2! top.usr.etat_me3! top.usr.etat_me4! top.res.abs_4! top.res.inst_0! top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))))) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/MESI_all_e4_1147_e7_497.sl b/benchmarks/LIA/Lustre/MESI_all_e4_1147_e7_497.sl index 860ff08..414a666 100644 --- a/benchmarks/LIA/Lustre/MESI_all_e4_1147_e7_497.sl +++ b/benchmarks/LIA/Lustre/MESI_all_e4_1147_e7_497.sl @@ -1,657 +1,35 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes4_0 ( - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_0 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) - (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) - excludes4.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes4_0 ( - (excludes4.usr.X1_a_1 Bool) - (excludes4.usr.X2_a_1 Bool) - (excludes4.usr.X3_a_1 Bool) - (excludes4.usr.X4_a_1 Bool) - (excludes4.usr.excludes_a_1 Bool) - (excludes4.res.init_flag_a_1 Bool) - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_1 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) - (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) - (not excludes4.res.init_flag_a_1)) -) - -(define-fun - __node_init_mesi_0 ( - (mesi.usr.etat_me1_a_0 Bool) - (mesi.usr.etat_me2_a_0 Bool) - (mesi.usr.etat_me3_a_0 Bool) - (mesi.usr.etat_me4_a_0 Bool) - (mesi.res.nondet_3 Int) - (mesi.res.nondet_2 Int) - (mesi.res.nondet_1 Int) - (mesi.res.nondet_0 Int) - (mesi.usr.modified_me_a_0 Int) - (mesi.usr.exclusive_me_a_0 Int) - (mesi.usr.shared_me_a_0 Int) - (mesi.usr.invalid_me_a_0 Int) - (mesi.res.init_flag_a_0 Bool) - ) Bool - - (and - (= mesi.usr.modified_me_a_0 0) - (let - ((X1 Bool (let ((X1 Int mesi.res.nondet_0)) (>= X1 1)))) - (and - (= mesi.usr.invalid_me_a_0 3) - (= mesi.usr.exclusive_me_a_0 0) - (let - ((X2 Bool (let ((X2 Int mesi.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int mesi.res.nondet_2)) (>= X3 1)))) - (and - (= mesi.usr.shared_me_a_0 0) - (let - ((X4 Bool (let ((X4 Int mesi.res.nondet_3)) (>= X4 1)))) - mesi.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_mesi_0 ( - (mesi.usr.etat_me1_a_1 Bool) - (mesi.usr.etat_me2_a_1 Bool) - (mesi.usr.etat_me3_a_1 Bool) - (mesi.usr.etat_me4_a_1 Bool) - (mesi.res.nondet_3 Int) - (mesi.res.nondet_2 Int) - (mesi.res.nondet_1 Int) - (mesi.res.nondet_0 Int) - (mesi.usr.modified_me_a_1 Int) - (mesi.usr.exclusive_me_a_1 Int) - (mesi.usr.shared_me_a_1 Int) - (mesi.usr.invalid_me_a_1 Int) - (mesi.res.init_flag_a_1 Bool) - (mesi.usr.etat_me1_a_0 Bool) - (mesi.usr.etat_me2_a_0 Bool) - (mesi.usr.etat_me3_a_0 Bool) - (mesi.usr.etat_me4_a_0 Bool) - (mesi.usr.modified_me_a_0 Int) - (mesi.usr.exclusive_me_a_0 Int) - (mesi.usr.shared_me_a_0 Int) - (mesi.usr.invalid_me_a_0 Int) - (mesi.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= mesi.usr.invalid_me_a_0 1))) - (let - ((X2 Bool (>= mesi.usr.shared_me_a_0 1))) - (let - ((X3 Bool (>= mesi.usr.exclusive_me_a_0 1))) - (let - ((X4 Bool (>= mesi.usr.invalid_me_a_0 1))) - (and - (= - mesi.usr.modified_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 0 mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - (ite X3 (- mesi.usr.modified_me_a_0 1) mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me3_a_1 - (ite X2 0 mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 0 mesi.usr.modified_me_a_0) - mesi.usr.modified_me_a_0))))) - (= - mesi.usr.invalid_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 (- mesi.usr.invalid_me_a_0 1) mesi.usr.invalid_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - mesi.usr.invalid_me_a_0 - (ite - mesi.usr.etat_me3_a_1 - (ite - X2 - (- - (+ - (+ - (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) - mesi.usr.exclusive_me_a_0) - mesi.usr.shared_me_a_0) - 1) - mesi.usr.invalid_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite - X1 - (- - (+ - (+ - (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) - mesi.usr.exclusive_me_a_0) - mesi.usr.shared_me_a_0) - 1) - mesi.usr.invalid_me_a_0) - mesi.usr.invalid_me_a_0))))) - (= - mesi.usr.exclusive_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 0 mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - (ite X3 (- mesi.usr.exclusive_me_a_0 1) mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me3_a_1 - (ite X2 1 mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 1 mesi.usr.exclusive_me_a_0) - mesi.usr.exclusive_me_a_0))))) - (= - mesi.usr.shared_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite - X4 - (- - (+ - (+ - (+ mesi.usr.shared_me_a_0 mesi.usr.exclusive_me_a_0) - mesi.usr.modified_me_a_0) - 1) - 1) - mesi.usr.shared_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - mesi.usr.shared_me_a_0 - (ite - mesi.usr.etat_me3_a_1 - (ite X2 0 mesi.usr.shared_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 0 mesi.usr.shared_me_a_0) - mesi.usr.shared_me_a_0))))) - (not mesi.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.etat_me1_a_0 Bool) - (top.usr.etat_me2_a_0 Bool) - (top.usr.etat_me3_a_0 Bool) - (top.usr.etat_me4_a_0 Bool) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_0_a_0)) - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= X1 0))) - (let - ((X2 Bool top.res.abs_6_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_1_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X2 - (and (and (not (> X1 2)) (>= X4 0)) (or (<= X1 1) (<= X3 1))))) - (__node_init_mesi_0 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_excludes4_0 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.etat_me1_a_1 Bool) - (top.usr.etat_me2_a_1 Bool) - (top.usr.etat_me3_a_1 Bool) - (top.usr.etat_me4_a_1 Bool) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.etat_me1_a_0 Bool) - (top.usr.etat_me2_a_0 Bool) - (top.usr.etat_me3_a_0 Bool) - (top.usr.etat_me4_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_0_a_1)) - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= X1 0))) - (let - ((X2 Bool top.res.abs_6_a_1)) - (let - ((X3 Int top.res.abs_2_a_1)) - (let - ((X4 Int top.res.abs_1_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X2 - (and (and (not (> X1 2)) (>= X4 0)) (or (<= X1 1) (<= X3 1))))) - (__node_trans_mesi_0 - top.usr.etat_me1_a_1 - top.usr.etat_me2_a_1 - top.usr.etat_me3_a_1 - top.usr.etat_me4_a_1 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes4_0 - top.usr.etat_me1_a_1 - top.usr.etat_me2_a_1 - top.usr.etat_me3_a_1 - top.usr.etat_me4_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.etat_me1 Bool) -(declare-primed-var top.usr.etat_me2 Bool) -(declare-primed-var top.usr.etat_me3 Bool) -(declare-primed-var top.usr.etat_me4 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_0)) - (and - (= top.res.abs_5 (and top.res.abs_4 (>= X1 0))) - (let - ((X2 Bool top.res.abs_6)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_1)) - (and - (= - top.usr.OK - (=> - X2 - (and (and (not (> X1 2)) (>= X4 0)) (or (<= X1 1) (<= X3 1))))) - (__node_init_mesi_0 - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes4_0 - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.etat_me1! Bool) - (top.usr.etat_me2! Bool) - (top.usr.etat_me3! Bool) - (top.usr.etat_me4! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Int top.res.abs_0!)) - (and - (= top.res.abs_5! (and top.res.abs_4! (>= X1 0))) - (let - ((X2 Bool top.res.abs_6!)) - (let - ((X3 Int top.res.abs_2!)) - (let - ((X4 Int top.res.abs_1!)) - (and - (= - top.usr.OK! - (=> - X2 - (and (and (not (> X1 2)) (>= X4 0)) (or (<= X1 1) (<= X3 1))))) - (__node_trans_mesi_0 - top.usr.etat_me1! - top.usr.etat_me2! - top.usr.etat_me3! - top.usr.etat_me4! - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes4_0 - top.usr.etat_me1! - top.usr.etat_me2! - top.usr.etat_me3! - top.usr.etat_me4! - top.res.abs_4! - top.res.inst_0! - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))))) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes4_0 ((excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_0 (not (or (or (or (or (or (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) excludes4.res.init_flag_a_0)) +(define-fun __node_trans_excludes4_0 ((excludes4.usr.X1_a_1 Bool) (excludes4.usr.X2_a_1 Bool) (excludes4.usr.X3_a_1 Bool) (excludes4.usr.X4_a_1 Bool) (excludes4.usr.excludes_a_1 Bool) (excludes4.res.init_flag_a_1 Bool) (excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_1 (not (or (or (or (or (or (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) (not excludes4.res.init_flag_a_1))) +(define-fun __node_init_mesi_0 ((mesi.usr.etat_me1_a_0 Bool) (mesi.usr.etat_me2_a_0 Bool) (mesi.usr.etat_me3_a_0 Bool) (mesi.usr.etat_me4_a_0 Bool) (mesi.res.nondet_3 Int) (mesi.res.nondet_2 Int) (mesi.res.nondet_1 Int) (mesi.res.nondet_0 Int) (mesi.usr.modified_me_a_0 Int) (mesi.usr.exclusive_me_a_0 Int) (mesi.usr.shared_me_a_0 Int) (mesi.usr.invalid_me_a_0 Int) (mesi.res.init_flag_a_0 Bool)) Bool + (and (= mesi.usr.modified_me_a_0 0) (let ((X1 (let ((X1 mesi.res.nondet_0)) (>= X1 1)))) (and (= mesi.usr.invalid_me_a_0 3) (= mesi.usr.exclusive_me_a_0 0) (let ((X2 (let ((X2 mesi.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 mesi.res.nondet_2)) (>= X3 1)))) (and (= mesi.usr.shared_me_a_0 0) (let ((X4 (let ((X4 mesi.res.nondet_3)) (>= X4 1)))) mesi.res.init_flag_a_0)))))))) +(define-fun __node_trans_mesi_0 ((mesi.usr.etat_me1_a_1 Bool) (mesi.usr.etat_me2_a_1 Bool) (mesi.usr.etat_me3_a_1 Bool) (mesi.usr.etat_me4_a_1 Bool) (mesi.res.nondet_3 Int) (mesi.res.nondet_2 Int) (mesi.res.nondet_1 Int) (mesi.res.nondet_0 Int) (mesi.usr.modified_me_a_1 Int) (mesi.usr.exclusive_me_a_1 Int) (mesi.usr.shared_me_a_1 Int) (mesi.usr.invalid_me_a_1 Int) (mesi.res.init_flag_a_1 Bool) (mesi.usr.etat_me1_a_0 Bool) (mesi.usr.etat_me2_a_0 Bool) (mesi.usr.etat_me3_a_0 Bool) (mesi.usr.etat_me4_a_0 Bool) (mesi.usr.modified_me_a_0 Int) (mesi.usr.exclusive_me_a_0 Int) (mesi.usr.shared_me_a_0 Int) (mesi.usr.invalid_me_a_0 Int) (mesi.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= mesi.usr.invalid_me_a_0 1))) (let ((X2 (>= mesi.usr.shared_me_a_0 1))) (let ((X3 (>= mesi.usr.exclusive_me_a_0 1))) (let ((X4 (>= mesi.usr.invalid_me_a_0 1))) (and (= mesi.usr.modified_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 0 mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me2_a_1 (ite X3 (- mesi.usr.modified_me_a_0 1) mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me3_a_1 (ite X2 0 mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 0 mesi.usr.modified_me_a_0) mesi.usr.modified_me_a_0))))) (= mesi.usr.invalid_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 (- mesi.usr.invalid_me_a_0 1) mesi.usr.invalid_me_a_0) (ite mesi.usr.etat_me2_a_1 mesi.usr.invalid_me_a_0 (ite mesi.usr.etat_me3_a_1 (ite X2 (- (+ (+ (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) mesi.usr.exclusive_me_a_0) mesi.usr.shared_me_a_0) 1) mesi.usr.invalid_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 (- (+ (+ (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) mesi.usr.exclusive_me_a_0) mesi.usr.shared_me_a_0) 1) mesi.usr.invalid_me_a_0) mesi.usr.invalid_me_a_0))))) (= mesi.usr.exclusive_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 0 mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me2_a_1 (ite X3 (- mesi.usr.exclusive_me_a_0 1) mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me3_a_1 (ite X2 1 mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 1 mesi.usr.exclusive_me_a_0) mesi.usr.exclusive_me_a_0))))) (= mesi.usr.shared_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 (- (+ (+ (+ mesi.usr.shared_me_a_0 mesi.usr.exclusive_me_a_0) mesi.usr.modified_me_a_0) 1) 1) mesi.usr.shared_me_a_0) (ite mesi.usr.etat_me2_a_1 mesi.usr.shared_me_a_0 (ite mesi.usr.etat_me3_a_1 (ite X2 0 mesi.usr.shared_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 0 mesi.usr.shared_me_a_0) mesi.usr.shared_me_a_0))))) (not mesi.res.init_flag_a_1))))))) +(define-fun __node_init_top_0 ((top.usr.etat_me1_a_0 Bool) (top.usr.etat_me2_a_0 Bool) (top.usr.etat_me3_a_0 Bool) (top.usr.etat_me4_a_0 Bool) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_0)) (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= X1 0))) (let ((X2 top.res.abs_6_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_1_a_0)) (and (= top.usr.OK_a_0 (=> X2 (and (and (not (> X1 2)) (>= X4 0)) (or (<= X1 1) (<= X3 1))))) (__node_init_mesi_0 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes4_0 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))) +(define-fun __node_trans_top_0 ((top.usr.etat_me1_a_1 Bool) (top.usr.etat_me2_a_1 Bool) (top.usr.etat_me3_a_1 Bool) (top.usr.etat_me4_a_1 Bool) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.etat_me1_a_0 Bool) (top.usr.etat_me2_a_0 Bool) (top.usr.etat_me3_a_0 Bool) (top.usr.etat_me4_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_1)) (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= X1 0))) (let ((X2 top.res.abs_6_a_1)) (let ((X3 top.res.abs_2_a_1)) (let ((X4 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (=> X2 (and (and (not (> X1 2)) (>= X4 0)) (or (<= X1 1) (<= X3 1))))) (__node_trans_mesi_0 top.usr.etat_me1_a_1 top.usr.etat_me2_a_1 top.usr.etat_me3_a_1 top.usr.etat_me4_a_1 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes4_0 top.usr.etat_me1_a_1 top.usr.etat_me2_a_1 top.usr.etat_me3_a_1 top.usr.etat_me4_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_0)) (and (= top.res.abs_5 (and top.res.abs_4 (>= X1 0))) (let ((X2 top.res.abs_6)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_1)) (and (= top.usr.OK (=> X2 (and (and (not (> X1 2)) (>= X4 0)) (or (<= X1 1) (<= X3 1))))) (__node_init_mesi_0 top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes4_0 top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_4 top.res.inst_0) top.res.init_flag))))))) +(define-fun trans ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.etat_me1! Bool) (top.usr.etat_me2! Bool) (top.usr.etat_me3! Bool) (top.usr.etat_me4! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_0!)) (and (= top.res.abs_5! (and top.res.abs_4! (>= X1 0))) (let ((X2 top.res.abs_6!)) (let ((X3 top.res.abs_2!)) (let ((X4 top.res.abs_1!)) (and (= top.usr.OK! (=> X2 (and (and (not (> X1 2)) (>= X4 0)) (or (<= X1 1) (<= X3 1))))) (__node_trans_mesi_0 top.usr.etat_me1! top.usr.etat_me2! top.usr.etat_me3! top.usr.etat_me4! top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_2! top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes4_0 top.usr.etat_me1! top.usr.etat_me2! top.usr.etat_me3! top.usr.etat_me4! top.res.abs_4! top.res.inst_0! top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))))) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/MESI_i3_e1_447_e1_1292.sl b/benchmarks/LIA/Lustre/MESI_i3_e1_447_e1_1292.sl index e9476d5..0180c3d 100644 --- a/benchmarks/LIA/Lustre/MESI_i3_e1_447_e1_1292.sl +++ b/benchmarks/LIA/Lustre/MESI_i3_e1_447_e1_1292.sl @@ -1,603 +1,35 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes4_0 ( - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_0 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) - (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) - excludes4.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes4_0 ( - (excludes4.usr.X1_a_1 Bool) - (excludes4.usr.X2_a_1 Bool) - (excludes4.usr.X3_a_1 Bool) - (excludes4.usr.X4_a_1 Bool) - (excludes4.usr.excludes_a_1 Bool) - (excludes4.res.init_flag_a_1 Bool) - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_1 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) - (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) - (not excludes4.res.init_flag_a_1)) -) - -(define-fun - __node_init_mesi_0 ( - (mesi.usr.etat_me1_a_0 Bool) - (mesi.usr.etat_me2_a_0 Bool) - (mesi.usr.etat_me3_a_0 Bool) - (mesi.usr.etat_me4_a_0 Bool) - (mesi.res.nondet_3 Int) - (mesi.res.nondet_2 Int) - (mesi.res.nondet_1 Int) - (mesi.res.nondet_0 Int) - (mesi.usr.modified_me_a_0 Int) - (mesi.usr.exclusive_me_a_0 Int) - (mesi.usr.shared_me_a_0 Int) - (mesi.usr.invalid_me_a_0 Int) - (mesi.res.init_flag_a_0 Bool) - ) Bool - - (and - (= mesi.usr.modified_me_a_0 0) - (let - ((X1 Bool (let ((X1 Int mesi.res.nondet_0)) (>= X1 1)))) - (and - (= mesi.usr.invalid_me_a_0 3) - (= mesi.usr.exclusive_me_a_0 0) - (let - ((X2 Bool (let ((X2 Int mesi.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int mesi.res.nondet_2)) (>= X3 1)))) - (and - (= mesi.usr.shared_me_a_0 0) - (let - ((X4 Bool (let ((X4 Int mesi.res.nondet_3)) (>= X4 1)))) - mesi.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_mesi_0 ( - (mesi.usr.etat_me1_a_1 Bool) - (mesi.usr.etat_me2_a_1 Bool) - (mesi.usr.etat_me3_a_1 Bool) - (mesi.usr.etat_me4_a_1 Bool) - (mesi.res.nondet_3 Int) - (mesi.res.nondet_2 Int) - (mesi.res.nondet_1 Int) - (mesi.res.nondet_0 Int) - (mesi.usr.modified_me_a_1 Int) - (mesi.usr.exclusive_me_a_1 Int) - (mesi.usr.shared_me_a_1 Int) - (mesi.usr.invalid_me_a_1 Int) - (mesi.res.init_flag_a_1 Bool) - (mesi.usr.etat_me1_a_0 Bool) - (mesi.usr.etat_me2_a_0 Bool) - (mesi.usr.etat_me3_a_0 Bool) - (mesi.usr.etat_me4_a_0 Bool) - (mesi.usr.modified_me_a_0 Int) - (mesi.usr.exclusive_me_a_0 Int) - (mesi.usr.shared_me_a_0 Int) - (mesi.usr.invalid_me_a_0 Int) - (mesi.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= mesi.usr.invalid_me_a_0 1))) - (let - ((X2 Bool (>= mesi.usr.shared_me_a_0 1))) - (let - ((X3 Bool (>= mesi.usr.exclusive_me_a_0 1))) - (let - ((X4 Bool (>= mesi.usr.invalid_me_a_0 1))) - (and - (= - mesi.usr.modified_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 0 mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - (ite X3 (- mesi.usr.modified_me_a_0 1) mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me3_a_1 - (ite X2 0 mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 0 mesi.usr.modified_me_a_0) - mesi.usr.modified_me_a_0))))) - (= - mesi.usr.invalid_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 (- mesi.usr.invalid_me_a_0 1) mesi.usr.invalid_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - mesi.usr.invalid_me_a_0 - (ite - mesi.usr.etat_me3_a_1 - (ite - X2 - (- - (+ - (+ - (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) - mesi.usr.exclusive_me_a_0) - mesi.usr.shared_me_a_0) - 1) - mesi.usr.invalid_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite - X1 - (- - (+ - (+ - (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) - mesi.usr.exclusive_me_a_0) - mesi.usr.shared_me_a_0) - 1) - mesi.usr.invalid_me_a_0) - mesi.usr.invalid_me_a_0))))) - (= - mesi.usr.exclusive_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 0 mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - (ite X3 (- mesi.usr.exclusive_me_a_0 1) mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me3_a_1 - (ite X2 1 mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 1 mesi.usr.exclusive_me_a_0) - mesi.usr.exclusive_me_a_0))))) - (= - mesi.usr.shared_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite - X4 - (- - (+ - (+ (+ (+ mesi.usr.shared_me_a_0 1) mesi.usr.exclusive_me_a_0) 1) - mesi.usr.modified_me_a_0) - 1) - mesi.usr.shared_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - mesi.usr.shared_me_a_0 - (ite - mesi.usr.etat_me3_a_1 - (ite X2 0 mesi.usr.shared_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 0 mesi.usr.shared_me_a_0) - mesi.usr.shared_me_a_0))))) - (not mesi.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.etat_me1_a_0 Bool) - (top.usr.etat_me2_a_0 Bool) - (top.usr.etat_me3_a_0 Bool) - (top.usr.etat_me4_a_0 Bool) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_5_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_mesi_0 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_1_a_0) - (__node_init_excludes4_0 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.etat_me1_a_1 Bool) - (top.usr.etat_me2_a_1 Bool) - (top.usr.etat_me3_a_1 Bool) - (top.usr.etat_me4_a_1 Bool) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.etat_me1_a_0 Bool) - (top.usr.etat_me2_a_0 Bool) - (top.usr.etat_me3_a_0 Bool) - (top.usr.etat_me4_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_5_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_mesi_0 - top.usr.etat_me1_a_1 - top.usr.etat_me2_a_1 - top.usr.etat_me3_a_1 - top.usr.etat_me4_a_1 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_1_a_1 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes4_0 - top.usr.etat_me1_a_1 - top.usr.etat_me2_a_1 - top.usr.etat_me3_a_1 - top.usr.etat_me4_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.etat_me1 Bool) -(declare-primed-var top.usr.etat_me2 Bool) -(declare-primed-var top.usr.etat_me3 Bool) -(declare-primed-var top.usr.etat_me4 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_5)) - (let - ((X2 Int top.res.abs_2)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_mesi_0 - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_4 top.res.abs_5 top.res.inst_1) - (__node_init_excludes4_0 - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.etat_me1! Bool) - (top.usr.etat_me2! Bool) - (top.usr.etat_me3! Bool) - (top.usr.etat_me4! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Bool top.res.abs_5!)) - (let - ((X2 Int top.res.abs_2!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_mesi_0 - top.usr.etat_me1! - top.usr.etat_me2! - top.usr.etat_me3! - top.usr.etat_me4! - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_4! - top.res.abs_5! - top.res.inst_1! - top.res.abs_4 - top.res.abs_5 - top.res.inst_1) - (__node_trans_excludes4_0 - top.usr.etat_me1! - top.usr.etat_me2! - top.usr.etat_me3! - top.usr.etat_me4! - top.res.abs_4! - top.res.inst_0! - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!)))) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes4_0 ((excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_0 (not (or (or (or (or (or (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) excludes4.res.init_flag_a_0)) +(define-fun __node_trans_excludes4_0 ((excludes4.usr.X1_a_1 Bool) (excludes4.usr.X2_a_1 Bool) (excludes4.usr.X3_a_1 Bool) (excludes4.usr.X4_a_1 Bool) (excludes4.usr.excludes_a_1 Bool) (excludes4.res.init_flag_a_1 Bool) (excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_1 (not (or (or (or (or (or (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) (not excludes4.res.init_flag_a_1))) +(define-fun __node_init_mesi_0 ((mesi.usr.etat_me1_a_0 Bool) (mesi.usr.etat_me2_a_0 Bool) (mesi.usr.etat_me3_a_0 Bool) (mesi.usr.etat_me4_a_0 Bool) (mesi.res.nondet_3 Int) (mesi.res.nondet_2 Int) (mesi.res.nondet_1 Int) (mesi.res.nondet_0 Int) (mesi.usr.modified_me_a_0 Int) (mesi.usr.exclusive_me_a_0 Int) (mesi.usr.shared_me_a_0 Int) (mesi.usr.invalid_me_a_0 Int) (mesi.res.init_flag_a_0 Bool)) Bool + (and (= mesi.usr.modified_me_a_0 0) (let ((X1 (let ((X1 mesi.res.nondet_0)) (>= X1 1)))) (and (= mesi.usr.invalid_me_a_0 3) (= mesi.usr.exclusive_me_a_0 0) (let ((X2 (let ((X2 mesi.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 mesi.res.nondet_2)) (>= X3 1)))) (and (= mesi.usr.shared_me_a_0 0) (let ((X4 (let ((X4 mesi.res.nondet_3)) (>= X4 1)))) mesi.res.init_flag_a_0)))))))) +(define-fun __node_trans_mesi_0 ((mesi.usr.etat_me1_a_1 Bool) (mesi.usr.etat_me2_a_1 Bool) (mesi.usr.etat_me3_a_1 Bool) (mesi.usr.etat_me4_a_1 Bool) (mesi.res.nondet_3 Int) (mesi.res.nondet_2 Int) (mesi.res.nondet_1 Int) (mesi.res.nondet_0 Int) (mesi.usr.modified_me_a_1 Int) (mesi.usr.exclusive_me_a_1 Int) (mesi.usr.shared_me_a_1 Int) (mesi.usr.invalid_me_a_1 Int) (mesi.res.init_flag_a_1 Bool) (mesi.usr.etat_me1_a_0 Bool) (mesi.usr.etat_me2_a_0 Bool) (mesi.usr.etat_me3_a_0 Bool) (mesi.usr.etat_me4_a_0 Bool) (mesi.usr.modified_me_a_0 Int) (mesi.usr.exclusive_me_a_0 Int) (mesi.usr.shared_me_a_0 Int) (mesi.usr.invalid_me_a_0 Int) (mesi.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= mesi.usr.invalid_me_a_0 1))) (let ((X2 (>= mesi.usr.shared_me_a_0 1))) (let ((X3 (>= mesi.usr.exclusive_me_a_0 1))) (let ((X4 (>= mesi.usr.invalid_me_a_0 1))) (and (= mesi.usr.modified_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 0 mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me2_a_1 (ite X3 (- mesi.usr.modified_me_a_0 1) mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me3_a_1 (ite X2 0 mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 0 mesi.usr.modified_me_a_0) mesi.usr.modified_me_a_0))))) (= mesi.usr.invalid_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 (- mesi.usr.invalid_me_a_0 1) mesi.usr.invalid_me_a_0) (ite mesi.usr.etat_me2_a_1 mesi.usr.invalid_me_a_0 (ite mesi.usr.etat_me3_a_1 (ite X2 (- (+ (+ (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) mesi.usr.exclusive_me_a_0) mesi.usr.shared_me_a_0) 1) mesi.usr.invalid_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 (- (+ (+ (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) mesi.usr.exclusive_me_a_0) mesi.usr.shared_me_a_0) 1) mesi.usr.invalid_me_a_0) mesi.usr.invalid_me_a_0))))) (= mesi.usr.exclusive_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 0 mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me2_a_1 (ite X3 (- mesi.usr.exclusive_me_a_0 1) mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me3_a_1 (ite X2 1 mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 1 mesi.usr.exclusive_me_a_0) mesi.usr.exclusive_me_a_0))))) (= mesi.usr.shared_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 (- (+ (+ (+ (+ mesi.usr.shared_me_a_0 1) mesi.usr.exclusive_me_a_0) 1) mesi.usr.modified_me_a_0) 1) mesi.usr.shared_me_a_0) (ite mesi.usr.etat_me2_a_1 mesi.usr.shared_me_a_0 (ite mesi.usr.etat_me3_a_1 (ite X2 0 mesi.usr.shared_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 0 mesi.usr.shared_me_a_0) mesi.usr.shared_me_a_0))))) (not mesi.res.init_flag_a_1))))))) +(define-fun __node_init_top_0 ((top.usr.etat_me1_a_0 Bool) (top.usr.etat_me2_a_0 Bool) (top.usr.etat_me3_a_0 Bool) (top.usr.etat_me4_a_0 Bool) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_5_a_0)) (let ((X2 top.res.abs_2_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_mesi_0 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_1_a_0) (__node_init_excludes4_0 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.etat_me1_a_1 Bool) (top.usr.etat_me2_a_1 Bool) (top.usr.etat_me3_a_1 Bool) (top.usr.etat_me4_a_1 Bool) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.etat_me1_a_0 Bool) (top.usr.etat_me2_a_0 Bool) (top.usr.etat_me3_a_0 Bool) (top.usr.etat_me4_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_5_a_1)) (let ((X2 top.res.abs_2_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_mesi_0 top.usr.etat_me1_a_1 top.usr.etat_me2_a_1 top.usr.etat_me3_a_1 top.usr.etat_me4_a_1 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_1_a_1 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_1_a_0) (__node_trans_excludes4_0 top.usr.etat_me1_a_1 top.usr.etat_me2_a_1 top.usr.etat_me3_a_1 top.usr.etat_me4_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_5)) (let ((X2 top.res.abs_2)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_mesi_0 top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_4 top.res.abs_5 top.res.inst_1) (__node_init_excludes4_0 top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_4 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.etat_me1! Bool) (top.usr.etat_me2! Bool) (top.usr.etat_me3! Bool) (top.usr.etat_me4! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_5!)) (let ((X2 top.res.abs_2!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_mesi_0 top.usr.etat_me1! top.usr.etat_me2! top.usr.etat_me3! top.usr.etat_me4! top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_2! top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_4! top.res.abs_5! top.res.inst_1! top.res.abs_4 top.res.abs_5 top.res.inst_1) (__node_trans_excludes4_0 top.usr.etat_me1! top.usr.etat_me2! top.usr.etat_me3! top.usr.etat_me4! top.res.abs_4! top.res.inst_0! top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!)))) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/MESI_i3_e1_447_e3_1180.sl b/benchmarks/LIA/Lustre/MESI_i3_e1_447_e3_1180.sl index af71f77..85e2006 100644 --- a/benchmarks/LIA/Lustre/MESI_i3_e1_447_e3_1180.sl +++ b/benchmarks/LIA/Lustre/MESI_i3_e1_447_e3_1180.sl @@ -1,603 +1,35 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes4_0 ( - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_0 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) - (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) - excludes4.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes4_0 ( - (excludes4.usr.X1_a_1 Bool) - (excludes4.usr.X2_a_1 Bool) - (excludes4.usr.X3_a_1 Bool) - (excludes4.usr.X4_a_1 Bool) - (excludes4.usr.excludes_a_1 Bool) - (excludes4.res.init_flag_a_1 Bool) - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_1 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) - (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) - (not excludes4.res.init_flag_a_1)) -) - -(define-fun - __node_init_mesi_0 ( - (mesi.usr.etat_me1_a_0 Bool) - (mesi.usr.etat_me2_a_0 Bool) - (mesi.usr.etat_me3_a_0 Bool) - (mesi.usr.etat_me4_a_0 Bool) - (mesi.res.nondet_3 Int) - (mesi.res.nondet_2 Int) - (mesi.res.nondet_1 Int) - (mesi.res.nondet_0 Int) - (mesi.usr.modified_me_a_0 Int) - (mesi.usr.exclusive_me_a_0 Int) - (mesi.usr.shared_me_a_0 Int) - (mesi.usr.invalid_me_a_0 Int) - (mesi.res.init_flag_a_0 Bool) - ) Bool - - (and - (= mesi.usr.modified_me_a_0 0) - (let - ((X1 Bool (let ((X1 Int mesi.res.nondet_0)) (>= X1 1)))) - (and - (= mesi.usr.invalid_me_a_0 3) - (= mesi.usr.exclusive_me_a_0 0) - (let - ((X2 Bool (let ((X2 Int mesi.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int mesi.res.nondet_2)) (>= X3 1)))) - (and - (= mesi.usr.shared_me_a_0 0) - (let - ((X4 Bool (let ((X4 Int mesi.res.nondet_3)) (>= X4 1)))) - mesi.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_mesi_0 ( - (mesi.usr.etat_me1_a_1 Bool) - (mesi.usr.etat_me2_a_1 Bool) - (mesi.usr.etat_me3_a_1 Bool) - (mesi.usr.etat_me4_a_1 Bool) - (mesi.res.nondet_3 Int) - (mesi.res.nondet_2 Int) - (mesi.res.nondet_1 Int) - (mesi.res.nondet_0 Int) - (mesi.usr.modified_me_a_1 Int) - (mesi.usr.exclusive_me_a_1 Int) - (mesi.usr.shared_me_a_1 Int) - (mesi.usr.invalid_me_a_1 Int) - (mesi.res.init_flag_a_1 Bool) - (mesi.usr.etat_me1_a_0 Bool) - (mesi.usr.etat_me2_a_0 Bool) - (mesi.usr.etat_me3_a_0 Bool) - (mesi.usr.etat_me4_a_0 Bool) - (mesi.usr.modified_me_a_0 Int) - (mesi.usr.exclusive_me_a_0 Int) - (mesi.usr.shared_me_a_0 Int) - (mesi.usr.invalid_me_a_0 Int) - (mesi.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= mesi.usr.invalid_me_a_0 1))) - (let - ((X2 Bool (>= mesi.usr.shared_me_a_0 1))) - (let - ((X3 Bool (>= mesi.usr.exclusive_me_a_0 1))) - (let - ((X4 Bool (>= mesi.usr.invalid_me_a_0 1))) - (and - (= - mesi.usr.modified_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 0 mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - (ite X3 (- mesi.usr.modified_me_a_0 1) mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me3_a_1 - (ite X2 0 mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 0 mesi.usr.modified_me_a_0) - mesi.usr.modified_me_a_0))))) - (= - mesi.usr.invalid_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 (- mesi.usr.invalid_me_a_0 1) mesi.usr.invalid_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - mesi.usr.invalid_me_a_0 - (ite - mesi.usr.etat_me3_a_1 - (ite - X2 - (- - (+ - (+ - (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) - mesi.usr.exclusive_me_a_0) - mesi.usr.shared_me_a_0) - 1) - mesi.usr.invalid_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite - X1 - (- - (+ - (+ - (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) - mesi.usr.exclusive_me_a_0) - mesi.usr.shared_me_a_0) - 1) - mesi.usr.invalid_me_a_0) - mesi.usr.invalid_me_a_0))))) - (= - mesi.usr.exclusive_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 0 mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - (ite X3 (- mesi.usr.exclusive_me_a_0 1) mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me3_a_1 - (ite X2 1 mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 1 mesi.usr.exclusive_me_a_0) - mesi.usr.exclusive_me_a_0))))) - (= - mesi.usr.shared_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite - X4 - (- - (- - (+ (+ mesi.usr.shared_me_a_0 1) mesi.usr.exclusive_me_a_0) - mesi.usr.modified_me_a_0) - 1) - mesi.usr.shared_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - mesi.usr.shared_me_a_0 - (ite - mesi.usr.etat_me3_a_1 - (ite X2 0 mesi.usr.shared_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 0 mesi.usr.shared_me_a_0) - mesi.usr.shared_me_a_0))))) - (not mesi.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.etat_me1_a_0 Bool) - (top.usr.etat_me2_a_0 Bool) - (top.usr.etat_me3_a_0 Bool) - (top.usr.etat_me4_a_0 Bool) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_5_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_mesi_0 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_1_a_0) - (__node_init_excludes4_0 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.etat_me1_a_1 Bool) - (top.usr.etat_me2_a_1 Bool) - (top.usr.etat_me3_a_1 Bool) - (top.usr.etat_me4_a_1 Bool) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.etat_me1_a_0 Bool) - (top.usr.etat_me2_a_0 Bool) - (top.usr.etat_me3_a_0 Bool) - (top.usr.etat_me4_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_5_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_mesi_0 - top.usr.etat_me1_a_1 - top.usr.etat_me2_a_1 - top.usr.etat_me3_a_1 - top.usr.etat_me4_a_1 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_1_a_1 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes4_0 - top.usr.etat_me1_a_1 - top.usr.etat_me2_a_1 - top.usr.etat_me3_a_1 - top.usr.etat_me4_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.etat_me1 Bool) -(declare-primed-var top.usr.etat_me2 Bool) -(declare-primed-var top.usr.etat_me3 Bool) -(declare-primed-var top.usr.etat_me4 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_5)) - (let - ((X2 Int top.res.abs_2)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_mesi_0 - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_4 top.res.abs_5 top.res.inst_1) - (__node_init_excludes4_0 - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.etat_me1! Bool) - (top.usr.etat_me2! Bool) - (top.usr.etat_me3! Bool) - (top.usr.etat_me4! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Bool top.res.abs_5!)) - (let - ((X2 Int top.res.abs_2!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_mesi_0 - top.usr.etat_me1! - top.usr.etat_me2! - top.usr.etat_me3! - top.usr.etat_me4! - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_4! - top.res.abs_5! - top.res.inst_1! - top.res.abs_4 - top.res.abs_5 - top.res.inst_1) - (__node_trans_excludes4_0 - top.usr.etat_me1! - top.usr.etat_me2! - top.usr.etat_me3! - top.usr.etat_me4! - top.res.abs_4! - top.res.inst_0! - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!)))) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes4_0 ((excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_0 (not (or (or (or (or (or (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) excludes4.res.init_flag_a_0)) +(define-fun __node_trans_excludes4_0 ((excludes4.usr.X1_a_1 Bool) (excludes4.usr.X2_a_1 Bool) (excludes4.usr.X3_a_1 Bool) (excludes4.usr.X4_a_1 Bool) (excludes4.usr.excludes_a_1 Bool) (excludes4.res.init_flag_a_1 Bool) (excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_1 (not (or (or (or (or (or (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) (not excludes4.res.init_flag_a_1))) +(define-fun __node_init_mesi_0 ((mesi.usr.etat_me1_a_0 Bool) (mesi.usr.etat_me2_a_0 Bool) (mesi.usr.etat_me3_a_0 Bool) (mesi.usr.etat_me4_a_0 Bool) (mesi.res.nondet_3 Int) (mesi.res.nondet_2 Int) (mesi.res.nondet_1 Int) (mesi.res.nondet_0 Int) (mesi.usr.modified_me_a_0 Int) (mesi.usr.exclusive_me_a_0 Int) (mesi.usr.shared_me_a_0 Int) (mesi.usr.invalid_me_a_0 Int) (mesi.res.init_flag_a_0 Bool)) Bool + (and (= mesi.usr.modified_me_a_0 0) (let ((X1 (let ((X1 mesi.res.nondet_0)) (>= X1 1)))) (and (= mesi.usr.invalid_me_a_0 3) (= mesi.usr.exclusive_me_a_0 0) (let ((X2 (let ((X2 mesi.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 mesi.res.nondet_2)) (>= X3 1)))) (and (= mesi.usr.shared_me_a_0 0) (let ((X4 (let ((X4 mesi.res.nondet_3)) (>= X4 1)))) mesi.res.init_flag_a_0)))))))) +(define-fun __node_trans_mesi_0 ((mesi.usr.etat_me1_a_1 Bool) (mesi.usr.etat_me2_a_1 Bool) (mesi.usr.etat_me3_a_1 Bool) (mesi.usr.etat_me4_a_1 Bool) (mesi.res.nondet_3 Int) (mesi.res.nondet_2 Int) (mesi.res.nondet_1 Int) (mesi.res.nondet_0 Int) (mesi.usr.modified_me_a_1 Int) (mesi.usr.exclusive_me_a_1 Int) (mesi.usr.shared_me_a_1 Int) (mesi.usr.invalid_me_a_1 Int) (mesi.res.init_flag_a_1 Bool) (mesi.usr.etat_me1_a_0 Bool) (mesi.usr.etat_me2_a_0 Bool) (mesi.usr.etat_me3_a_0 Bool) (mesi.usr.etat_me4_a_0 Bool) (mesi.usr.modified_me_a_0 Int) (mesi.usr.exclusive_me_a_0 Int) (mesi.usr.shared_me_a_0 Int) (mesi.usr.invalid_me_a_0 Int) (mesi.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= mesi.usr.invalid_me_a_0 1))) (let ((X2 (>= mesi.usr.shared_me_a_0 1))) (let ((X3 (>= mesi.usr.exclusive_me_a_0 1))) (let ((X4 (>= mesi.usr.invalid_me_a_0 1))) (and (= mesi.usr.modified_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 0 mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me2_a_1 (ite X3 (- mesi.usr.modified_me_a_0 1) mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me3_a_1 (ite X2 0 mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 0 mesi.usr.modified_me_a_0) mesi.usr.modified_me_a_0))))) (= mesi.usr.invalid_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 (- mesi.usr.invalid_me_a_0 1) mesi.usr.invalid_me_a_0) (ite mesi.usr.etat_me2_a_1 mesi.usr.invalid_me_a_0 (ite mesi.usr.etat_me3_a_1 (ite X2 (- (+ (+ (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) mesi.usr.exclusive_me_a_0) mesi.usr.shared_me_a_0) 1) mesi.usr.invalid_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 (- (+ (+ (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) mesi.usr.exclusive_me_a_0) mesi.usr.shared_me_a_0) 1) mesi.usr.invalid_me_a_0) mesi.usr.invalid_me_a_0))))) (= mesi.usr.exclusive_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 0 mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me2_a_1 (ite X3 (- mesi.usr.exclusive_me_a_0 1) mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me3_a_1 (ite X2 1 mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 1 mesi.usr.exclusive_me_a_0) mesi.usr.exclusive_me_a_0))))) (= mesi.usr.shared_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 (- (- (+ (+ mesi.usr.shared_me_a_0 1) mesi.usr.exclusive_me_a_0) mesi.usr.modified_me_a_0) 1) mesi.usr.shared_me_a_0) (ite mesi.usr.etat_me2_a_1 mesi.usr.shared_me_a_0 (ite mesi.usr.etat_me3_a_1 (ite X2 0 mesi.usr.shared_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 0 mesi.usr.shared_me_a_0) mesi.usr.shared_me_a_0))))) (not mesi.res.init_flag_a_1))))))) +(define-fun __node_init_top_0 ((top.usr.etat_me1_a_0 Bool) (top.usr.etat_me2_a_0 Bool) (top.usr.etat_me3_a_0 Bool) (top.usr.etat_me4_a_0 Bool) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_5_a_0)) (let ((X2 top.res.abs_2_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_mesi_0 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_1_a_0) (__node_init_excludes4_0 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.etat_me1_a_1 Bool) (top.usr.etat_me2_a_1 Bool) (top.usr.etat_me3_a_1 Bool) (top.usr.etat_me4_a_1 Bool) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.etat_me1_a_0 Bool) (top.usr.etat_me2_a_0 Bool) (top.usr.etat_me3_a_0 Bool) (top.usr.etat_me4_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_5_a_1)) (let ((X2 top.res.abs_2_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_mesi_0 top.usr.etat_me1_a_1 top.usr.etat_me2_a_1 top.usr.etat_me3_a_1 top.usr.etat_me4_a_1 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_1_a_1 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_1_a_0) (__node_trans_excludes4_0 top.usr.etat_me1_a_1 top.usr.etat_me2_a_1 top.usr.etat_me3_a_1 top.usr.etat_me4_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_5)) (let ((X2 top.res.abs_2)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_mesi_0 top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_4 top.res.abs_5 top.res.inst_1) (__node_init_excludes4_0 top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_4 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.etat_me1! Bool) (top.usr.etat_me2! Bool) (top.usr.etat_me3! Bool) (top.usr.etat_me4! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_5!)) (let ((X2 top.res.abs_2!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_mesi_0 top.usr.etat_me1! top.usr.etat_me2! top.usr.etat_me3! top.usr.etat_me4! top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_2! top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_4! top.res.abs_5! top.res.inst_1! top.res.abs_4 top.res.abs_5 top.res.inst_1) (__node_trans_excludes4_0 top.usr.etat_me1! top.usr.etat_me2! top.usr.etat_me3! top.usr.etat_me4! top.res.abs_4! top.res.inst_0! top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!)))) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/MESI_i3_e1_447_e6_2281.sl b/benchmarks/LIA/Lustre/MESI_i3_e1_447_e6_2281.sl index 6b84e92..538b980 100644 --- a/benchmarks/LIA/Lustre/MESI_i3_e1_447_e6_2281.sl +++ b/benchmarks/LIA/Lustre/MESI_i3_e1_447_e6_2281.sl @@ -1,603 +1,35 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes4_0 ( - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_0 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) - (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) - excludes4.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes4_0 ( - (excludes4.usr.X1_a_1 Bool) - (excludes4.usr.X2_a_1 Bool) - (excludes4.usr.X3_a_1 Bool) - (excludes4.usr.X4_a_1 Bool) - (excludes4.usr.excludes_a_1 Bool) - (excludes4.res.init_flag_a_1 Bool) - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_1 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) - (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) - (not excludes4.res.init_flag_a_1)) -) - -(define-fun - __node_init_mesi_0 ( - (mesi.usr.etat_me1_a_0 Bool) - (mesi.usr.etat_me2_a_0 Bool) - (mesi.usr.etat_me3_a_0 Bool) - (mesi.usr.etat_me4_a_0 Bool) - (mesi.res.nondet_3 Int) - (mesi.res.nondet_2 Int) - (mesi.res.nondet_1 Int) - (mesi.res.nondet_0 Int) - (mesi.usr.modified_me_a_0 Int) - (mesi.usr.exclusive_me_a_0 Int) - (mesi.usr.shared_me_a_0 Int) - (mesi.usr.invalid_me_a_0 Int) - (mesi.res.init_flag_a_0 Bool) - ) Bool - - (and - (= mesi.usr.modified_me_a_0 0) - (let - ((X1 Bool (let ((X1 Int mesi.res.nondet_0)) (>= X1 1)))) - (and - (= mesi.usr.invalid_me_a_0 3) - (= mesi.usr.exclusive_me_a_0 0) - (let - ((X2 Bool (let ((X2 Int mesi.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int mesi.res.nondet_2)) (>= X3 1)))) - (and - (= mesi.usr.shared_me_a_0 0) - (let - ((X4 Bool (let ((X4 Int mesi.res.nondet_3)) (>= X4 1)))) - mesi.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_mesi_0 ( - (mesi.usr.etat_me1_a_1 Bool) - (mesi.usr.etat_me2_a_1 Bool) - (mesi.usr.etat_me3_a_1 Bool) - (mesi.usr.etat_me4_a_1 Bool) - (mesi.res.nondet_3 Int) - (mesi.res.nondet_2 Int) - (mesi.res.nondet_1 Int) - (mesi.res.nondet_0 Int) - (mesi.usr.modified_me_a_1 Int) - (mesi.usr.exclusive_me_a_1 Int) - (mesi.usr.shared_me_a_1 Int) - (mesi.usr.invalid_me_a_1 Int) - (mesi.res.init_flag_a_1 Bool) - (mesi.usr.etat_me1_a_0 Bool) - (mesi.usr.etat_me2_a_0 Bool) - (mesi.usr.etat_me3_a_0 Bool) - (mesi.usr.etat_me4_a_0 Bool) - (mesi.usr.modified_me_a_0 Int) - (mesi.usr.exclusive_me_a_0 Int) - (mesi.usr.shared_me_a_0 Int) - (mesi.usr.invalid_me_a_0 Int) - (mesi.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= mesi.usr.invalid_me_a_0 1))) - (let - ((X2 Bool (>= mesi.usr.shared_me_a_0 1))) - (let - ((X3 Bool (>= mesi.usr.exclusive_me_a_0 1))) - (let - ((X4 Bool (>= mesi.usr.invalid_me_a_0 1))) - (and - (= - mesi.usr.modified_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 0 mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - (ite X3 (- mesi.usr.modified_me_a_0 1) mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me3_a_1 - (ite X2 0 mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 0 mesi.usr.modified_me_a_0) - mesi.usr.modified_me_a_0))))) - (= - mesi.usr.invalid_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 (- mesi.usr.invalid_me_a_0 1) mesi.usr.invalid_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - mesi.usr.invalid_me_a_0 - (ite - mesi.usr.etat_me3_a_1 - (ite - X2 - (- - (+ - (+ - (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) - mesi.usr.exclusive_me_a_0) - mesi.usr.shared_me_a_0) - 1) - mesi.usr.invalid_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite - X1 - (- - (+ - (+ - (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) - mesi.usr.exclusive_me_a_0) - mesi.usr.shared_me_a_0) - 1) - mesi.usr.invalid_me_a_0) - mesi.usr.invalid_me_a_0))))) - (= - mesi.usr.exclusive_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 0 mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - (ite X3 (- mesi.usr.exclusive_me_a_0 1) mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me3_a_1 - (ite X2 1 mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 1 mesi.usr.exclusive_me_a_0) - mesi.usr.exclusive_me_a_0))))) - (= - mesi.usr.shared_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite - X4 - (+ - (+ - (+ (+ mesi.usr.shared_me_a_0 1) mesi.usr.exclusive_me_a_0) - mesi.usr.modified_me_a_0) - 1) - mesi.usr.shared_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - mesi.usr.shared_me_a_0 - (ite - mesi.usr.etat_me3_a_1 - (ite X2 0 mesi.usr.shared_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 0 mesi.usr.shared_me_a_0) - mesi.usr.shared_me_a_0))))) - (not mesi.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.etat_me1_a_0 Bool) - (top.usr.etat_me2_a_0 Bool) - (top.usr.etat_me3_a_0 Bool) - (top.usr.etat_me4_a_0 Bool) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_5_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_mesi_0 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_1_a_0) - (__node_init_excludes4_0 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.etat_me1_a_1 Bool) - (top.usr.etat_me2_a_1 Bool) - (top.usr.etat_me3_a_1 Bool) - (top.usr.etat_me4_a_1 Bool) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.etat_me1_a_0 Bool) - (top.usr.etat_me2_a_0 Bool) - (top.usr.etat_me3_a_0 Bool) - (top.usr.etat_me4_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_5_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_mesi_0 - top.usr.etat_me1_a_1 - top.usr.etat_me2_a_1 - top.usr.etat_me3_a_1 - top.usr.etat_me4_a_1 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_1_a_1 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes4_0 - top.usr.etat_me1_a_1 - top.usr.etat_me2_a_1 - top.usr.etat_me3_a_1 - top.usr.etat_me4_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.etat_me1 Bool) -(declare-primed-var top.usr.etat_me2 Bool) -(declare-primed-var top.usr.etat_me3 Bool) -(declare-primed-var top.usr.etat_me4 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_5)) - (let - ((X2 Int top.res.abs_2)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_mesi_0 - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_4 top.res.abs_5 top.res.inst_1) - (__node_init_excludes4_0 - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.etat_me1! Bool) - (top.usr.etat_me2! Bool) - (top.usr.etat_me3! Bool) - (top.usr.etat_me4! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Bool top.res.abs_5!)) - (let - ((X2 Int top.res.abs_2!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_mesi_0 - top.usr.etat_me1! - top.usr.etat_me2! - top.usr.etat_me3! - top.usr.etat_me4! - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_4! - top.res.abs_5! - top.res.inst_1! - top.res.abs_4 - top.res.abs_5 - top.res.inst_1) - (__node_trans_excludes4_0 - top.usr.etat_me1! - top.usr.etat_me2! - top.usr.etat_me3! - top.usr.etat_me4! - top.res.abs_4! - top.res.inst_0! - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!)))) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes4_0 ((excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_0 (not (or (or (or (or (or (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) excludes4.res.init_flag_a_0)) +(define-fun __node_trans_excludes4_0 ((excludes4.usr.X1_a_1 Bool) (excludes4.usr.X2_a_1 Bool) (excludes4.usr.X3_a_1 Bool) (excludes4.usr.X4_a_1 Bool) (excludes4.usr.excludes_a_1 Bool) (excludes4.res.init_flag_a_1 Bool) (excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_1 (not (or (or (or (or (or (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) (not excludes4.res.init_flag_a_1))) +(define-fun __node_init_mesi_0 ((mesi.usr.etat_me1_a_0 Bool) (mesi.usr.etat_me2_a_0 Bool) (mesi.usr.etat_me3_a_0 Bool) (mesi.usr.etat_me4_a_0 Bool) (mesi.res.nondet_3 Int) (mesi.res.nondet_2 Int) (mesi.res.nondet_1 Int) (mesi.res.nondet_0 Int) (mesi.usr.modified_me_a_0 Int) (mesi.usr.exclusive_me_a_0 Int) (mesi.usr.shared_me_a_0 Int) (mesi.usr.invalid_me_a_0 Int) (mesi.res.init_flag_a_0 Bool)) Bool + (and (= mesi.usr.modified_me_a_0 0) (let ((X1 (let ((X1 mesi.res.nondet_0)) (>= X1 1)))) (and (= mesi.usr.invalid_me_a_0 3) (= mesi.usr.exclusive_me_a_0 0) (let ((X2 (let ((X2 mesi.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 mesi.res.nondet_2)) (>= X3 1)))) (and (= mesi.usr.shared_me_a_0 0) (let ((X4 (let ((X4 mesi.res.nondet_3)) (>= X4 1)))) mesi.res.init_flag_a_0)))))))) +(define-fun __node_trans_mesi_0 ((mesi.usr.etat_me1_a_1 Bool) (mesi.usr.etat_me2_a_1 Bool) (mesi.usr.etat_me3_a_1 Bool) (mesi.usr.etat_me4_a_1 Bool) (mesi.res.nondet_3 Int) (mesi.res.nondet_2 Int) (mesi.res.nondet_1 Int) (mesi.res.nondet_0 Int) (mesi.usr.modified_me_a_1 Int) (mesi.usr.exclusive_me_a_1 Int) (mesi.usr.shared_me_a_1 Int) (mesi.usr.invalid_me_a_1 Int) (mesi.res.init_flag_a_1 Bool) (mesi.usr.etat_me1_a_0 Bool) (mesi.usr.etat_me2_a_0 Bool) (mesi.usr.etat_me3_a_0 Bool) (mesi.usr.etat_me4_a_0 Bool) (mesi.usr.modified_me_a_0 Int) (mesi.usr.exclusive_me_a_0 Int) (mesi.usr.shared_me_a_0 Int) (mesi.usr.invalid_me_a_0 Int) (mesi.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= mesi.usr.invalid_me_a_0 1))) (let ((X2 (>= mesi.usr.shared_me_a_0 1))) (let ((X3 (>= mesi.usr.exclusive_me_a_0 1))) (let ((X4 (>= mesi.usr.invalid_me_a_0 1))) (and (= mesi.usr.modified_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 0 mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me2_a_1 (ite X3 (- mesi.usr.modified_me_a_0 1) mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me3_a_1 (ite X2 0 mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 0 mesi.usr.modified_me_a_0) mesi.usr.modified_me_a_0))))) (= mesi.usr.invalid_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 (- mesi.usr.invalid_me_a_0 1) mesi.usr.invalid_me_a_0) (ite mesi.usr.etat_me2_a_1 mesi.usr.invalid_me_a_0 (ite mesi.usr.etat_me3_a_1 (ite X2 (- (+ (+ (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) mesi.usr.exclusive_me_a_0) mesi.usr.shared_me_a_0) 1) mesi.usr.invalid_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 (- (+ (+ (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) mesi.usr.exclusive_me_a_0) mesi.usr.shared_me_a_0) 1) mesi.usr.invalid_me_a_0) mesi.usr.invalid_me_a_0))))) (= mesi.usr.exclusive_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 0 mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me2_a_1 (ite X3 (- mesi.usr.exclusive_me_a_0 1) mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me3_a_1 (ite X2 1 mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 1 mesi.usr.exclusive_me_a_0) mesi.usr.exclusive_me_a_0))))) (= mesi.usr.shared_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 (+ (+ (+ (+ mesi.usr.shared_me_a_0 1) mesi.usr.exclusive_me_a_0) mesi.usr.modified_me_a_0) 1) mesi.usr.shared_me_a_0) (ite mesi.usr.etat_me2_a_1 mesi.usr.shared_me_a_0 (ite mesi.usr.etat_me3_a_1 (ite X2 0 mesi.usr.shared_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 0 mesi.usr.shared_me_a_0) mesi.usr.shared_me_a_0))))) (not mesi.res.init_flag_a_1))))))) +(define-fun __node_init_top_0 ((top.usr.etat_me1_a_0 Bool) (top.usr.etat_me2_a_0 Bool) (top.usr.etat_me3_a_0 Bool) (top.usr.etat_me4_a_0 Bool) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_5_a_0)) (let ((X2 top.res.abs_2_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_mesi_0 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_1_a_0) (__node_init_excludes4_0 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.etat_me1_a_1 Bool) (top.usr.etat_me2_a_1 Bool) (top.usr.etat_me3_a_1 Bool) (top.usr.etat_me4_a_1 Bool) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.etat_me1_a_0 Bool) (top.usr.etat_me2_a_0 Bool) (top.usr.etat_me3_a_0 Bool) (top.usr.etat_me4_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_5_a_1)) (let ((X2 top.res.abs_2_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_mesi_0 top.usr.etat_me1_a_1 top.usr.etat_me2_a_1 top.usr.etat_me3_a_1 top.usr.etat_me4_a_1 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_1_a_1 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_1_a_0) (__node_trans_excludes4_0 top.usr.etat_me1_a_1 top.usr.etat_me2_a_1 top.usr.etat_me3_a_1 top.usr.etat_me4_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_5)) (let ((X2 top.res.abs_2)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_mesi_0 top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_4 top.res.abs_5 top.res.inst_1) (__node_init_excludes4_0 top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_4 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.etat_me1! Bool) (top.usr.etat_me2! Bool) (top.usr.etat_me3! Bool) (top.usr.etat_me4! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_5!)) (let ((X2 top.res.abs_2!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_mesi_0 top.usr.etat_me1! top.usr.etat_me2! top.usr.etat_me3! top.usr.etat_me4! top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_2! top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_4! top.res.abs_5! top.res.inst_1! top.res.abs_4 top.res.abs_5 top.res.inst_1) (__node_trans_excludes4_0 top.usr.etat_me1! top.usr.etat_me2! top.usr.etat_me3! top.usr.etat_me4! top.res.abs_4! top.res.inst_0! top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!)))) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/MESI_i4_e6_2175.sl b/benchmarks/LIA/Lustre/MESI_i4_e6_2175.sl index a23a08a..7f8310a 100644 --- a/benchmarks/LIA/Lustre/MESI_i4_e6_2175.sl +++ b/benchmarks/LIA/Lustre/MESI_i4_e6_2175.sl @@ -1,603 +1,35 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes4_0 ( - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_0 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) - (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) - excludes4.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes4_0 ( - (excludes4.usr.X1_a_1 Bool) - (excludes4.usr.X2_a_1 Bool) - (excludes4.usr.X3_a_1 Bool) - (excludes4.usr.X4_a_1 Bool) - (excludes4.usr.excludes_a_1 Bool) - (excludes4.res.init_flag_a_1 Bool) - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_1 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) - (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) - (not excludes4.res.init_flag_a_1)) -) - -(define-fun - __node_init_mesi_0 ( - (mesi.usr.etat_me1_a_0 Bool) - (mesi.usr.etat_me2_a_0 Bool) - (mesi.usr.etat_me3_a_0 Bool) - (mesi.usr.etat_me4_a_0 Bool) - (mesi.res.nondet_3 Int) - (mesi.res.nondet_2 Int) - (mesi.res.nondet_1 Int) - (mesi.res.nondet_0 Int) - (mesi.usr.modified_me_a_0 Int) - (mesi.usr.exclusive_me_a_0 Int) - (mesi.usr.shared_me_a_0 Int) - (mesi.usr.invalid_me_a_0 Int) - (mesi.res.init_flag_a_0 Bool) - ) Bool - - (and - (= mesi.usr.modified_me_a_0 0) - (let - ((X1 Bool (let ((X1 Int mesi.res.nondet_0)) (>= X1 1)))) - (and - (= mesi.usr.invalid_me_a_0 3) - (= mesi.usr.exclusive_me_a_0 0) - (let - ((X2 Bool (let ((X2 Int mesi.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int mesi.res.nondet_2)) (>= X3 1)))) - (and - (= mesi.usr.shared_me_a_0 0) - (let - ((X4 Bool (let ((X4 Int mesi.res.nondet_3)) (>= X4 1)))) - mesi.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_mesi_0 ( - (mesi.usr.etat_me1_a_1 Bool) - (mesi.usr.etat_me2_a_1 Bool) - (mesi.usr.etat_me3_a_1 Bool) - (mesi.usr.etat_me4_a_1 Bool) - (mesi.res.nondet_3 Int) - (mesi.res.nondet_2 Int) - (mesi.res.nondet_1 Int) - (mesi.res.nondet_0 Int) - (mesi.usr.modified_me_a_1 Int) - (mesi.usr.exclusive_me_a_1 Int) - (mesi.usr.shared_me_a_1 Int) - (mesi.usr.invalid_me_a_1 Int) - (mesi.res.init_flag_a_1 Bool) - (mesi.usr.etat_me1_a_0 Bool) - (mesi.usr.etat_me2_a_0 Bool) - (mesi.usr.etat_me3_a_0 Bool) - (mesi.usr.etat_me4_a_0 Bool) - (mesi.usr.modified_me_a_0 Int) - (mesi.usr.exclusive_me_a_0 Int) - (mesi.usr.shared_me_a_0 Int) - (mesi.usr.invalid_me_a_0 Int) - (mesi.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= mesi.usr.invalid_me_a_0 1))) - (let - ((X2 Bool (>= mesi.usr.shared_me_a_0 1))) - (let - ((X3 Bool (>= mesi.usr.exclusive_me_a_0 1))) - (let - ((X4 Bool (>= mesi.usr.invalid_me_a_0 1))) - (and - (= - mesi.usr.modified_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 0 mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - (ite X3 (- mesi.usr.modified_me_a_0 1) mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me3_a_1 - (ite X2 0 mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 0 mesi.usr.modified_me_a_0) - mesi.usr.modified_me_a_0))))) - (= - mesi.usr.invalid_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 (- mesi.usr.invalid_me_a_0 1) mesi.usr.invalid_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - mesi.usr.invalid_me_a_0 - (ite - mesi.usr.etat_me3_a_1 - (ite - X2 - (- - (+ - (+ - (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) - mesi.usr.exclusive_me_a_0) - mesi.usr.shared_me_a_0) - 1) - mesi.usr.invalid_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite - X1 - (- - (+ - (+ - (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) - mesi.usr.exclusive_me_a_0) - mesi.usr.shared_me_a_0) - 1) - mesi.usr.invalid_me_a_0) - mesi.usr.invalid_me_a_0))))) - (= - mesi.usr.exclusive_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 0 mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - (ite X3 (- mesi.usr.exclusive_me_a_0 1) mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me3_a_1 - (ite X2 1 mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 1 mesi.usr.exclusive_me_a_0) - mesi.usr.exclusive_me_a_0))))) - (= - mesi.usr.shared_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite - X4 - (+ - (+ - (+ mesi.usr.shared_me_a_0 mesi.usr.exclusive_me_a_0) - mesi.usr.modified_me_a_0) - 1) - mesi.usr.shared_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - mesi.usr.shared_me_a_0 - (ite - mesi.usr.etat_me3_a_1 - (ite X2 0 mesi.usr.shared_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 0 mesi.usr.shared_me_a_0) - mesi.usr.shared_me_a_0))))) - (not mesi.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.etat_me1_a_0 Bool) - (top.usr.etat_me2_a_0 Bool) - (top.usr.etat_me3_a_0 Bool) - (top.usr.etat_me4_a_0 Bool) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_5_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_mesi_0 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_1_a_0) - (__node_init_excludes4_0 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.etat_me1_a_1 Bool) - (top.usr.etat_me2_a_1 Bool) - (top.usr.etat_me3_a_1 Bool) - (top.usr.etat_me4_a_1 Bool) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.etat_me1_a_0 Bool) - (top.usr.etat_me2_a_0 Bool) - (top.usr.etat_me3_a_0 Bool) - (top.usr.etat_me4_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_5_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_mesi_0 - top.usr.etat_me1_a_1 - top.usr.etat_me2_a_1 - top.usr.etat_me3_a_1 - top.usr.etat_me4_a_1 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_1_a_1 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes4_0 - top.usr.etat_me1_a_1 - top.usr.etat_me2_a_1 - top.usr.etat_me3_a_1 - top.usr.etat_me4_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.etat_me1 Bool) -(declare-primed-var top.usr.etat_me2 Bool) -(declare-primed-var top.usr.etat_me3 Bool) -(declare-primed-var top.usr.etat_me4 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_5)) - (let - ((X2 Int top.res.abs_3)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_mesi_0 - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_4 top.res.abs_5 top.res.inst_1) - (__node_init_excludes4_0 - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.etat_me1! Bool) - (top.usr.etat_me2! Bool) - (top.usr.etat_me3! Bool) - (top.usr.etat_me4! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Bool top.res.abs_5!)) - (let - ((X2 Int top.res.abs_3!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_mesi_0 - top.usr.etat_me1! - top.usr.etat_me2! - top.usr.etat_me3! - top.usr.etat_me4! - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_4! - top.res.abs_5! - top.res.inst_1! - top.res.abs_4 - top.res.abs_5 - top.res.inst_1) - (__node_trans_excludes4_0 - top.usr.etat_me1! - top.usr.etat_me2! - top.usr.etat_me3! - top.usr.etat_me4! - top.res.abs_4! - top.res.inst_0! - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!)))) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes4_0 ((excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_0 (not (or (or (or (or (or (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) excludes4.res.init_flag_a_0)) +(define-fun __node_trans_excludes4_0 ((excludes4.usr.X1_a_1 Bool) (excludes4.usr.X2_a_1 Bool) (excludes4.usr.X3_a_1 Bool) (excludes4.usr.X4_a_1 Bool) (excludes4.usr.excludes_a_1 Bool) (excludes4.res.init_flag_a_1 Bool) (excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_1 (not (or (or (or (or (or (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) (not excludes4.res.init_flag_a_1))) +(define-fun __node_init_mesi_0 ((mesi.usr.etat_me1_a_0 Bool) (mesi.usr.etat_me2_a_0 Bool) (mesi.usr.etat_me3_a_0 Bool) (mesi.usr.etat_me4_a_0 Bool) (mesi.res.nondet_3 Int) (mesi.res.nondet_2 Int) (mesi.res.nondet_1 Int) (mesi.res.nondet_0 Int) (mesi.usr.modified_me_a_0 Int) (mesi.usr.exclusive_me_a_0 Int) (mesi.usr.shared_me_a_0 Int) (mesi.usr.invalid_me_a_0 Int) (mesi.res.init_flag_a_0 Bool)) Bool + (and (= mesi.usr.modified_me_a_0 0) (let ((X1 (let ((X1 mesi.res.nondet_0)) (>= X1 1)))) (and (= mesi.usr.invalid_me_a_0 3) (= mesi.usr.exclusive_me_a_0 0) (let ((X2 (let ((X2 mesi.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 mesi.res.nondet_2)) (>= X3 1)))) (and (= mesi.usr.shared_me_a_0 0) (let ((X4 (let ((X4 mesi.res.nondet_3)) (>= X4 1)))) mesi.res.init_flag_a_0)))))))) +(define-fun __node_trans_mesi_0 ((mesi.usr.etat_me1_a_1 Bool) (mesi.usr.etat_me2_a_1 Bool) (mesi.usr.etat_me3_a_1 Bool) (mesi.usr.etat_me4_a_1 Bool) (mesi.res.nondet_3 Int) (mesi.res.nondet_2 Int) (mesi.res.nondet_1 Int) (mesi.res.nondet_0 Int) (mesi.usr.modified_me_a_1 Int) (mesi.usr.exclusive_me_a_1 Int) (mesi.usr.shared_me_a_1 Int) (mesi.usr.invalid_me_a_1 Int) (mesi.res.init_flag_a_1 Bool) (mesi.usr.etat_me1_a_0 Bool) (mesi.usr.etat_me2_a_0 Bool) (mesi.usr.etat_me3_a_0 Bool) (mesi.usr.etat_me4_a_0 Bool) (mesi.usr.modified_me_a_0 Int) (mesi.usr.exclusive_me_a_0 Int) (mesi.usr.shared_me_a_0 Int) (mesi.usr.invalid_me_a_0 Int) (mesi.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= mesi.usr.invalid_me_a_0 1))) (let ((X2 (>= mesi.usr.shared_me_a_0 1))) (let ((X3 (>= mesi.usr.exclusive_me_a_0 1))) (let ((X4 (>= mesi.usr.invalid_me_a_0 1))) (and (= mesi.usr.modified_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 0 mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me2_a_1 (ite X3 (- mesi.usr.modified_me_a_0 1) mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me3_a_1 (ite X2 0 mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 0 mesi.usr.modified_me_a_0) mesi.usr.modified_me_a_0))))) (= mesi.usr.invalid_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 (- mesi.usr.invalid_me_a_0 1) mesi.usr.invalid_me_a_0) (ite mesi.usr.etat_me2_a_1 mesi.usr.invalid_me_a_0 (ite mesi.usr.etat_me3_a_1 (ite X2 (- (+ (+ (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) mesi.usr.exclusive_me_a_0) mesi.usr.shared_me_a_0) 1) mesi.usr.invalid_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 (- (+ (+ (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) mesi.usr.exclusive_me_a_0) mesi.usr.shared_me_a_0) 1) mesi.usr.invalid_me_a_0) mesi.usr.invalid_me_a_0))))) (= mesi.usr.exclusive_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 0 mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me2_a_1 (ite X3 (- mesi.usr.exclusive_me_a_0 1) mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me3_a_1 (ite X2 1 mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 1 mesi.usr.exclusive_me_a_0) mesi.usr.exclusive_me_a_0))))) (= mesi.usr.shared_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 (+ (+ (+ mesi.usr.shared_me_a_0 mesi.usr.exclusive_me_a_0) mesi.usr.modified_me_a_0) 1) mesi.usr.shared_me_a_0) (ite mesi.usr.etat_me2_a_1 mesi.usr.shared_me_a_0 (ite mesi.usr.etat_me3_a_1 (ite X2 0 mesi.usr.shared_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 0 mesi.usr.shared_me_a_0) mesi.usr.shared_me_a_0))))) (not mesi.res.init_flag_a_1))))))) +(define-fun __node_init_top_0 ((top.usr.etat_me1_a_0 Bool) (top.usr.etat_me2_a_0 Bool) (top.usr.etat_me3_a_0 Bool) (top.usr.etat_me4_a_0 Bool) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_5_a_0)) (let ((X2 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_mesi_0 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_1_a_0) (__node_init_excludes4_0 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.etat_me1_a_1 Bool) (top.usr.etat_me2_a_1 Bool) (top.usr.etat_me3_a_1 Bool) (top.usr.etat_me4_a_1 Bool) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.etat_me1_a_0 Bool) (top.usr.etat_me2_a_0 Bool) (top.usr.etat_me3_a_0 Bool) (top.usr.etat_me4_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_5_a_1)) (let ((X2 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_mesi_0 top.usr.etat_me1_a_1 top.usr.etat_me2_a_1 top.usr.etat_me3_a_1 top.usr.etat_me4_a_1 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_1_a_1 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_1_a_0) (__node_trans_excludes4_0 top.usr.etat_me1_a_1 top.usr.etat_me2_a_1 top.usr.etat_me3_a_1 top.usr.etat_me4_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_5)) (let ((X2 top.res.abs_3)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_mesi_0 top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_4 top.res.abs_5 top.res.inst_1) (__node_init_excludes4_0 top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_4 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.etat_me1! Bool) (top.usr.etat_me2! Bool) (top.usr.etat_me3! Bool) (top.usr.etat_me4! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_5!)) (let ((X2 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_mesi_0 top.usr.etat_me1! top.usr.etat_me2! top.usr.etat_me3! top.usr.etat_me4! top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_2! top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_4! top.res.abs_5! top.res.inst_1! top.res.abs_4 top.res.abs_5 top.res.inst_1) (__node_trans_excludes4_0 top.usr.etat_me1! top.usr.etat_me2! top.usr.etat_me3! top.usr.etat_me4! top.res.abs_4! top.res.inst_0! top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!)))) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/MESI_i4_e7_1017_e6_1132.sl b/benchmarks/LIA/Lustre/MESI_i4_e7_1017_e6_1132.sl index 088fd99..02d98de 100644 --- a/benchmarks/LIA/Lustre/MESI_i4_e7_1017_e6_1132.sl +++ b/benchmarks/LIA/Lustre/MESI_i4_e7_1017_e6_1132.sl @@ -1,603 +1,35 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes4_0 ( - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_0 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) - (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) - excludes4.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes4_0 ( - (excludes4.usr.X1_a_1 Bool) - (excludes4.usr.X2_a_1 Bool) - (excludes4.usr.X3_a_1 Bool) - (excludes4.usr.X4_a_1 Bool) - (excludes4.usr.excludes_a_1 Bool) - (excludes4.res.init_flag_a_1 Bool) - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_1 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) - (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) - (not excludes4.res.init_flag_a_1)) -) - -(define-fun - __node_init_mesi_0 ( - (mesi.usr.etat_me1_a_0 Bool) - (mesi.usr.etat_me2_a_0 Bool) - (mesi.usr.etat_me3_a_0 Bool) - (mesi.usr.etat_me4_a_0 Bool) - (mesi.res.nondet_3 Int) - (mesi.res.nondet_2 Int) - (mesi.res.nondet_1 Int) - (mesi.res.nondet_0 Int) - (mesi.usr.modified_me_a_0 Int) - (mesi.usr.exclusive_me_a_0 Int) - (mesi.usr.shared_me_a_0 Int) - (mesi.usr.invalid_me_a_0 Int) - (mesi.res.init_flag_a_0 Bool) - ) Bool - - (and - (= mesi.usr.modified_me_a_0 0) - (let - ((X1 Bool (let ((X1 Int mesi.res.nondet_0)) (>= X1 1)))) - (and - (= mesi.usr.invalid_me_a_0 3) - (= mesi.usr.exclusive_me_a_0 0) - (let - ((X2 Bool (let ((X2 Int mesi.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int mesi.res.nondet_2)) (>= X3 1)))) - (and - (= mesi.usr.shared_me_a_0 0) - (let - ((X4 Bool (let ((X4 Int mesi.res.nondet_3)) (>= X4 1)))) - mesi.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_mesi_0 ( - (mesi.usr.etat_me1_a_1 Bool) - (mesi.usr.etat_me2_a_1 Bool) - (mesi.usr.etat_me3_a_1 Bool) - (mesi.usr.etat_me4_a_1 Bool) - (mesi.res.nondet_3 Int) - (mesi.res.nondet_2 Int) - (mesi.res.nondet_1 Int) - (mesi.res.nondet_0 Int) - (mesi.usr.modified_me_a_1 Int) - (mesi.usr.exclusive_me_a_1 Int) - (mesi.usr.shared_me_a_1 Int) - (mesi.usr.invalid_me_a_1 Int) - (mesi.res.init_flag_a_1 Bool) - (mesi.usr.etat_me1_a_0 Bool) - (mesi.usr.etat_me2_a_0 Bool) - (mesi.usr.etat_me3_a_0 Bool) - (mesi.usr.etat_me4_a_0 Bool) - (mesi.usr.modified_me_a_0 Int) - (mesi.usr.exclusive_me_a_0 Int) - (mesi.usr.shared_me_a_0 Int) - (mesi.usr.invalid_me_a_0 Int) - (mesi.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= mesi.usr.invalid_me_a_0 1))) - (let - ((X2 Bool (>= mesi.usr.shared_me_a_0 1))) - (let - ((X3 Bool (>= mesi.usr.exclusive_me_a_0 1))) - (let - ((X4 Bool (>= mesi.usr.invalid_me_a_0 1))) - (and - (= - mesi.usr.modified_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 0 mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - (ite X3 (- mesi.usr.modified_me_a_0 1) mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me3_a_1 - (ite X2 0 mesi.usr.modified_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 0 mesi.usr.modified_me_a_0) - mesi.usr.modified_me_a_0))))) - (= - mesi.usr.invalid_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 (- mesi.usr.invalid_me_a_0 1) mesi.usr.invalid_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - mesi.usr.invalid_me_a_0 - (ite - mesi.usr.etat_me3_a_1 - (ite - X2 - (- - (+ - (+ - (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) - mesi.usr.exclusive_me_a_0) - mesi.usr.shared_me_a_0) - 1) - mesi.usr.invalid_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite - X1 - (- - (+ - (+ - (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) - mesi.usr.exclusive_me_a_0) - mesi.usr.shared_me_a_0) - 1) - mesi.usr.invalid_me_a_0) - mesi.usr.invalid_me_a_0))))) - (= - mesi.usr.exclusive_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite X4 0 mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - (ite X3 (- mesi.usr.exclusive_me_a_0 1) mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me3_a_1 - (ite X2 1 mesi.usr.exclusive_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 1 mesi.usr.exclusive_me_a_0) - mesi.usr.exclusive_me_a_0))))) - (= - mesi.usr.shared_me_a_1 - (ite - mesi.usr.etat_me1_a_1 - (ite - X4 - (+ - (+ - (+ mesi.usr.shared_me_a_0 mesi.usr.exclusive_me_a_0) - mesi.usr.modified_me_a_0) - 1) - mesi.usr.shared_me_a_0) - (ite - mesi.usr.etat_me2_a_1 - mesi.usr.shared_me_a_0 - (ite - mesi.usr.etat_me3_a_1 - (ite X2 0 mesi.usr.shared_me_a_0) - (ite - mesi.usr.etat_me4_a_1 - (ite X1 0 mesi.usr.shared_me_a_0) - mesi.usr.shared_me_a_0))))) - (not mesi.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.etat_me1_a_0 Bool) - (top.usr.etat_me2_a_0 Bool) - (top.usr.etat_me3_a_0 Bool) - (top.usr.etat_me4_a_0 Bool) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_5_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_mesi_0 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_1_a_0) - (__node_init_excludes4_0 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.etat_me1_a_1 Bool) - (top.usr.etat_me2_a_1 Bool) - (top.usr.etat_me3_a_1 Bool) - (top.usr.etat_me4_a_1 Bool) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.etat_me1_a_0 Bool) - (top.usr.etat_me2_a_0 Bool) - (top.usr.etat_me3_a_0 Bool) - (top.usr.etat_me4_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_5_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_mesi_0 - top.usr.etat_me1_a_1 - top.usr.etat_me2_a_1 - top.usr.etat_me3_a_1 - top.usr.etat_me4_a_1 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_1_a_1 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes4_0 - top.usr.etat_me1_a_1 - top.usr.etat_me2_a_1 - top.usr.etat_me3_a_1 - top.usr.etat_me4_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.etat_me1_a_0 - top.usr.etat_me2_a_0 - top.usr.etat_me3_a_0 - top.usr.etat_me4_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.etat_me1 Bool) -(declare-primed-var top.usr.etat_me2 Bool) -(declare-primed-var top.usr.etat_me3 Bool) -(declare-primed-var top.usr.etat_me4 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_5)) - (let - ((X2 Int top.res.abs_3)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_mesi_0 - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_4 top.res.abs_5 top.res.inst_1) - (__node_init_excludes4_0 - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.etat_me1! Bool) - (top.usr.etat_me2! Bool) - (top.usr.etat_me3! Bool) - (top.usr.etat_me4! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Bool top.res.abs_5!)) - (let - ((X2 Int top.res.abs_3!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_mesi_0 - top.usr.etat_me1! - top.usr.etat_me2! - top.usr.etat_me3! - top.usr.etat_me4! - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_4! - top.res.abs_5! - top.res.inst_1! - top.res.abs_4 - top.res.abs_5 - top.res.inst_1) - (__node_trans_excludes4_0 - top.usr.etat_me1! - top.usr.etat_me2! - top.usr.etat_me3! - top.usr.etat_me4! - top.res.abs_4! - top.res.inst_0! - top.usr.etat_me1 - top.usr.etat_me2 - top.usr.etat_me3 - top.usr.etat_me4 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!)))) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.etat_me1 Bool) - (top.usr.etat_me2 Bool) - (top.usr.etat_me3 Bool) - (top.usr.etat_me4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes4_0 ((excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_0 (not (or (or (or (or (or (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) excludes4.res.init_flag_a_0)) +(define-fun __node_trans_excludes4_0 ((excludes4.usr.X1_a_1 Bool) (excludes4.usr.X2_a_1 Bool) (excludes4.usr.X3_a_1 Bool) (excludes4.usr.X4_a_1 Bool) (excludes4.usr.excludes_a_1 Bool) (excludes4.res.init_flag_a_1 Bool) (excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_1 (not (or (or (or (or (or (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) (not excludes4.res.init_flag_a_1))) +(define-fun __node_init_mesi_0 ((mesi.usr.etat_me1_a_0 Bool) (mesi.usr.etat_me2_a_0 Bool) (mesi.usr.etat_me3_a_0 Bool) (mesi.usr.etat_me4_a_0 Bool) (mesi.res.nondet_3 Int) (mesi.res.nondet_2 Int) (mesi.res.nondet_1 Int) (mesi.res.nondet_0 Int) (mesi.usr.modified_me_a_0 Int) (mesi.usr.exclusive_me_a_0 Int) (mesi.usr.shared_me_a_0 Int) (mesi.usr.invalid_me_a_0 Int) (mesi.res.init_flag_a_0 Bool)) Bool + (and (= mesi.usr.modified_me_a_0 0) (let ((X1 (let ((X1 mesi.res.nondet_0)) (>= X1 1)))) (and (= mesi.usr.invalid_me_a_0 3) (= mesi.usr.exclusive_me_a_0 0) (let ((X2 (let ((X2 mesi.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 mesi.res.nondet_2)) (>= X3 1)))) (and (= mesi.usr.shared_me_a_0 0) (let ((X4 (let ((X4 mesi.res.nondet_3)) (>= X4 1)))) mesi.res.init_flag_a_0)))))))) +(define-fun __node_trans_mesi_0 ((mesi.usr.etat_me1_a_1 Bool) (mesi.usr.etat_me2_a_1 Bool) (mesi.usr.etat_me3_a_1 Bool) (mesi.usr.etat_me4_a_1 Bool) (mesi.res.nondet_3 Int) (mesi.res.nondet_2 Int) (mesi.res.nondet_1 Int) (mesi.res.nondet_0 Int) (mesi.usr.modified_me_a_1 Int) (mesi.usr.exclusive_me_a_1 Int) (mesi.usr.shared_me_a_1 Int) (mesi.usr.invalid_me_a_1 Int) (mesi.res.init_flag_a_1 Bool) (mesi.usr.etat_me1_a_0 Bool) (mesi.usr.etat_me2_a_0 Bool) (mesi.usr.etat_me3_a_0 Bool) (mesi.usr.etat_me4_a_0 Bool) (mesi.usr.modified_me_a_0 Int) (mesi.usr.exclusive_me_a_0 Int) (mesi.usr.shared_me_a_0 Int) (mesi.usr.invalid_me_a_0 Int) (mesi.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= mesi.usr.invalid_me_a_0 1))) (let ((X2 (>= mesi.usr.shared_me_a_0 1))) (let ((X3 (>= mesi.usr.exclusive_me_a_0 1))) (let ((X4 (>= mesi.usr.invalid_me_a_0 1))) (and (= mesi.usr.modified_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 0 mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me2_a_1 (ite X3 (- mesi.usr.modified_me_a_0 1) mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me3_a_1 (ite X2 0 mesi.usr.modified_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 0 mesi.usr.modified_me_a_0) mesi.usr.modified_me_a_0))))) (= mesi.usr.invalid_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 (- mesi.usr.invalid_me_a_0 1) mesi.usr.invalid_me_a_0) (ite mesi.usr.etat_me2_a_1 mesi.usr.invalid_me_a_0 (ite mesi.usr.etat_me3_a_1 (ite X2 (- (+ (+ (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) mesi.usr.exclusive_me_a_0) mesi.usr.shared_me_a_0) 1) mesi.usr.invalid_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 (- (+ (+ (+ mesi.usr.invalid_me_a_0 mesi.usr.modified_me_a_0) mesi.usr.exclusive_me_a_0) mesi.usr.shared_me_a_0) 1) mesi.usr.invalid_me_a_0) mesi.usr.invalid_me_a_0))))) (= mesi.usr.exclusive_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 0 mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me2_a_1 (ite X3 (- mesi.usr.exclusive_me_a_0 1) mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me3_a_1 (ite X2 1 mesi.usr.exclusive_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 1 mesi.usr.exclusive_me_a_0) mesi.usr.exclusive_me_a_0))))) (= mesi.usr.shared_me_a_1 (ite mesi.usr.etat_me1_a_1 (ite X4 (+ (+ (+ mesi.usr.shared_me_a_0 mesi.usr.exclusive_me_a_0) mesi.usr.modified_me_a_0) 1) mesi.usr.shared_me_a_0) (ite mesi.usr.etat_me2_a_1 mesi.usr.shared_me_a_0 (ite mesi.usr.etat_me3_a_1 (ite X2 0 mesi.usr.shared_me_a_0) (ite mesi.usr.etat_me4_a_1 (ite X1 0 mesi.usr.shared_me_a_0) mesi.usr.shared_me_a_0))))) (not mesi.res.init_flag_a_1))))))) +(define-fun __node_init_top_0 ((top.usr.etat_me1_a_0 Bool) (top.usr.etat_me2_a_0 Bool) (top.usr.etat_me3_a_0 Bool) (top.usr.etat_me4_a_0 Bool) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_5_a_0)) (let ((X2 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_mesi_0 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_1_a_0) (__node_init_excludes4_0 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.etat_me1_a_1 Bool) (top.usr.etat_me2_a_1 Bool) (top.usr.etat_me3_a_1 Bool) (top.usr.etat_me4_a_1 Bool) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.etat_me1_a_0 Bool) (top.usr.etat_me2_a_0 Bool) (top.usr.etat_me3_a_0 Bool) (top.usr.etat_me4_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_5_a_1)) (let ((X2 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_mesi_0 top.usr.etat_me1_a_1 top.usr.etat_me2_a_1 top.usr.etat_me3_a_1 top.usr.etat_me4_a_1 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_1_a_1 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_1_a_0) (__node_trans_excludes4_0 top.usr.etat_me1_a_1 top.usr.etat_me2_a_1 top.usr.etat_me3_a_1 top.usr.etat_me4_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.etat_me1_a_0 top.usr.etat_me2_a_0 top.usr.etat_me3_a_0 top.usr.etat_me4_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_5)) (let ((X2 top.res.abs_3)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_mesi_0 top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_4 top.res.abs_5 top.res.inst_1) (__node_init_excludes4_0 top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_4 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.etat_me1! Bool) (top.usr.etat_me2! Bool) (top.usr.etat_me3! Bool) (top.usr.etat_me4! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_5!)) (let ((X2 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_mesi_0 top.usr.etat_me1! top.usr.etat_me2! top.usr.etat_me3! top.usr.etat_me4! top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_2! top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_4! top.res.abs_5! top.res.inst_1! top.res.abs_4 top.res.abs_5 top.res.inst_1) (__node_trans_excludes4_0 top.usr.etat_me1! top.usr.etat_me2! top.usr.etat_me3! top.usr.etat_me4! top.res.abs_4! top.res.inst_0! top.usr.etat_me1 top.usr.etat_me2 top.usr.etat_me3 top.usr.etat_me4 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!)))) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.etat_me1 Bool) (top.usr.etat_me2 Bool) (top.usr.etat_me3 Bool) (top.usr.etat_me4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/MOESI_1.sl b/benchmarks/LIA/Lustre/MOESI_1.sl index 0dd6b15..77a5ca7 100644 --- a/benchmarks/LIA/Lustre/MOESI_1.sl +++ b/benchmarks/LIA/Lustre/MOESI_1.sl @@ -1,692 +1,36 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes4_0 ( - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_0 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) - (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) - excludes4.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes4_0 ( - (excludes4.usr.X1_a_1 Bool) - (excludes4.usr.X2_a_1 Bool) - (excludes4.usr.X3_a_1 Bool) - (excludes4.usr.X4_a_1 Bool) - (excludes4.usr.excludes_a_1 Bool) - (excludes4.res.init_flag_a_1 Bool) - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_1 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) - (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) - (not excludes4.res.init_flag_a_1)) -) - -(define-fun - __node_init_moesi_0 ( - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (and - (= moesi.usr.modified_mo_a_0 0) - (let - ((X1 Bool (let ((X1 Int moesi.res.nondet_0)) (>= X1 1)))) - (and - (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) - (= moesi.usr.exclusive_mo_a_0 0) - (let - ((X2 Bool (let ((X2 Int moesi.res.nondet_1)) (>= X2 1)))) - (let - ((X3 - Bool (let - ((X3 Int moesi.res.nondet_3) (X4 Int moesi.res.nondet_2)) - (>= (+ X4 X3) 1)))) - (and - (= moesi.usr.shared_mo_a_0 0) - (let - ((X4 Bool (let ((X4 Int moesi.res.nondet_4)) (>= X4 1)))) - (and - (= moesi.usr.owned_mo_a_0 0) - (= moesi.usr.erreur_mo_a_0 false) - moesi.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_moesi_0 ( - (moesi.usr.init_invalid_mo_a_1 Int) - (moesi.usr.etat_mo1_a_1 Bool) - (moesi.usr.etat_mo2_a_1 Bool) - (moesi.usr.etat_mo3_a_1 Bool) - (moesi.usr.etat_mo4_a_1 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_1 Int) - (moesi.usr.exclusive_mo_a_1 Int) - (moesi.usr.shared_mo_a_1 Int) - (moesi.usr.invalid_mo_a_1 Int) - (moesi.usr.owned_mo_a_1 Int) - (moesi.usr.erreur_mo_a_1 Bool) - (moesi.res.init_flag_a_1 Bool) - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (let - ((X2 Bool (>= (+ moesi.usr.shared_mo_a_0 moesi.usr.owned_mo_a_0) 1))) - (let - ((X3 Bool (>= moesi.usr.exclusive_mo_a_0 1))) - (let - ((X4 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (and - (= - moesi.usr.modified_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.modified_mo_a_0) - moesi.usr.modified_mo_a_0))))) - (= - moesi.usr.invalid_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite - X2 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite - X1 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - moesi.usr.invalid_mo_a_0)))) - (= - moesi.usr.exclusive_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 1 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 1 moesi.usr.exclusive_mo_a_0) - moesi.usr.exclusive_mo_a_0))))) - (= - moesi.usr.shared_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) - moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.shared_mo_a_0) - moesi.usr.shared_mo_a_0)))) - (= - moesi.usr.owned_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.owned_mo_a_0) - moesi.usr.owned_mo_a_0)))) - (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) - (not moesi.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_mo_a_0 0))) - (let - ((X1 Bool top.res.abs_5_a_0)) - (and - (= top.usr.OK_a_0 (=> top.res.abs_8_a_0 (not X1))) - (__node_init_moesi_0 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes4_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.init_invalid_mo_a_1 Int) - (top.usr.etat_mo1_a_1 Bool) - (top.usr.etat_mo2_a_1 Bool) - (top.usr.etat_mo3_a_1 Bool) - (top.usr.etat_mo4_a_1 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_mo_a_1 0))) - (let - ((X1 Bool top.res.abs_5_a_1)) - (and - (= top.usr.OK_a_1 (=> top.res.abs_8_a_1 (not X1))) - (__node_trans_moesi_0 - top.usr.init_invalid_mo_a_1 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_2_a_1 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes4_0 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.init_invalid_mo Int) -(declare-primed-var top.usr.etat_mo1 Bool) -(declare-primed-var top.usr.etat_mo2 Bool) -(declare-primed-var top.usr.etat_mo3 Bool) -(declare-primed-var top.usr.etat_mo4 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid_mo 0))) - (let - ((X1 Bool top.res.abs_5)) - (and - (= top.usr.OK (=> top.res.abs_8 (not X1))) - (__node_init_moesi_0 - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes4_0 - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.init_invalid_mo! Int) - (top.usr.etat_mo1! Bool) - (top.usr.etat_mo2! Bool) - (top.usr.etat_mo3! Bool) - (top.usr.etat_mo4! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid_mo! 0))) - (let - ((X1 Bool top.res.abs_5!)) - (and - (= top.usr.OK! (=> top.res.abs_8! (not X1))) - (__node_trans_moesi_0 - top.usr.init_invalid_mo! - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_2! - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes4_0 - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.abs_6! - top.res.inst_0! - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!)))) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes4_0 ((excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_0 (not (or (or (or (or (or (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) excludes4.res.init_flag_a_0)) +(define-fun __node_trans_excludes4_0 ((excludes4.usr.X1_a_1 Bool) (excludes4.usr.X2_a_1 Bool) (excludes4.usr.X3_a_1 Bool) (excludes4.usr.X4_a_1 Bool) (excludes4.usr.excludes_a_1 Bool) (excludes4.res.init_flag_a_1 Bool) (excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_1 (not (or (or (or (or (or (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) (not excludes4.res.init_flag_a_1))) +(define-fun __node_init_moesi_0 ((moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (and (= moesi.usr.modified_mo_a_0 0) (let ((X1 (let ((X1 moesi.res.nondet_0)) (>= X1 1)))) (and (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) (= moesi.usr.exclusive_mo_a_0 0) (let ((X2 (let ((X2 moesi.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 moesi.res.nondet_3) (X4 moesi.res.nondet_2)) (>= (+ X4 X3) 1)))) (and (= moesi.usr.shared_mo_a_0 0) (let ((X4 (let ((X4 moesi.res.nondet_4)) (>= X4 1)))) (and (= moesi.usr.owned_mo_a_0 0) (= moesi.usr.erreur_mo_a_0 false) moesi.res.init_flag_a_0))))))))) +(define-fun __node_trans_moesi_0 ((moesi.usr.init_invalid_mo_a_1 Int) (moesi.usr.etat_mo1_a_1 Bool) (moesi.usr.etat_mo2_a_1 Bool) (moesi.usr.etat_mo3_a_1 Bool) (moesi.usr.etat_mo4_a_1 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_1 Int) (moesi.usr.exclusive_mo_a_1 Int) (moesi.usr.shared_mo_a_1 Int) (moesi.usr.invalid_mo_a_1 Int) (moesi.usr.owned_mo_a_1 Int) (moesi.usr.erreur_mo_a_1 Bool) (moesi.res.init_flag_a_1 Bool) (moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= moesi.usr.invalid_mo_a_0 1))) (let ((X2 (>= (+ moesi.usr.shared_mo_a_0 moesi.usr.owned_mo_a_0) 1))) (let ((X3 (>= moesi.usr.exclusive_mo_a_0 1))) (let ((X4 (>= moesi.usr.invalid_mo_a_0 1))) (and (= moesi.usr.modified_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.modified_mo_a_0) moesi.usr.modified_mo_a_0))))) (= moesi.usr.invalid_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) moesi.usr.invalid_mo_a_0)))) (= moesi.usr.exclusive_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 1 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 1 moesi.usr.exclusive_mo_a_0) moesi.usr.exclusive_mo_a_0))))) (= moesi.usr.shared_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.shared_mo_a_0) moesi.usr.shared_mo_a_0)))) (= moesi.usr.owned_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.owned_mo_a_0) moesi.usr.owned_mo_a_0)))) (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) (not moesi.res.init_flag_a_1))))))) +(define-fun __node_init_top_0 ((top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_mo_a_0 0))) (let ((X1 top.res.abs_5_a_0)) (and (= top.usr.OK_a_0 (=> top.res.abs_8_a_0 (not X1))) (__node_init_moesi_0 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes4_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.init_invalid_mo_a_1 Int) (top.usr.etat_mo1_a_1 Bool) (top.usr.etat_mo2_a_1 Bool) (top.usr.etat_mo3_a_1 Bool) (top.usr.etat_mo4_a_1 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_mo_a_1 0))) (let ((X1 top.res.abs_5_a_1)) (and (= top.usr.OK_a_1 (=> top.res.abs_8_a_1 (not X1))) (__node_trans_moesi_0 top.usr.init_invalid_mo_a_1 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_2_a_1 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes4_0 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid_mo 0))) (let ((X1 top.res.abs_5)) (and (= top.usr.OK (=> top.res.abs_8 (not X1))) (__node_init_moesi_0 top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes4_0 top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.init_invalid_mo! Int) (top.usr.etat_mo1! Bool) (top.usr.etat_mo2! Bool) (top.usr.etat_mo3! Bool) (top.usr.etat_mo4! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid_mo! 0))) (let ((X1 top.res.abs_5!)) (and (= top.usr.OK! (=> top.res.abs_8! (not X1))) (__node_trans_moesi_0 top.usr.init_invalid_mo! top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_2! top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes4_0 top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.abs_6! top.res.inst_0! top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!)))) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/MOESI_1_e2_982_e7_492.sl b/benchmarks/LIA/Lustre/MOESI_1_e2_982_e7_492.sl index d4a2cb6..1a8130f 100644 --- a/benchmarks/LIA/Lustre/MOESI_1_e2_982_e7_492.sl +++ b/benchmarks/LIA/Lustre/MOESI_1_e2_982_e7_492.sl @@ -1,692 +1,36 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes4_0 ( - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_0 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) - (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) - excludes4.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes4_0 ( - (excludes4.usr.X1_a_1 Bool) - (excludes4.usr.X2_a_1 Bool) - (excludes4.usr.X3_a_1 Bool) - (excludes4.usr.X4_a_1 Bool) - (excludes4.usr.excludes_a_1 Bool) - (excludes4.res.init_flag_a_1 Bool) - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_1 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) - (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) - (not excludes4.res.init_flag_a_1)) -) - -(define-fun - __node_init_moesi_0 ( - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (and - (= moesi.usr.modified_mo_a_0 0) - (let - ((X1 Bool (let ((X1 Int moesi.res.nondet_0)) (>= X1 1)))) - (and - (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) - (= moesi.usr.exclusive_mo_a_0 0) - (let - ((X2 Bool (let ((X2 Int moesi.res.nondet_1)) (>= X2 1)))) - (let - ((X3 - Bool (let - ((X3 Int moesi.res.nondet_3) (X4 Int moesi.res.nondet_2)) - (>= (+ (- X4 1) X3) 1)))) - (and - (= moesi.usr.shared_mo_a_0 0) - (let - ((X4 Bool (let ((X4 Int moesi.res.nondet_4)) (>= X4 1)))) - (and - (= moesi.usr.owned_mo_a_0 0) - (= moesi.usr.erreur_mo_a_0 false) - moesi.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_moesi_0 ( - (moesi.usr.init_invalid_mo_a_1 Int) - (moesi.usr.etat_mo1_a_1 Bool) - (moesi.usr.etat_mo2_a_1 Bool) - (moesi.usr.etat_mo3_a_1 Bool) - (moesi.usr.etat_mo4_a_1 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_1 Int) - (moesi.usr.exclusive_mo_a_1 Int) - (moesi.usr.shared_mo_a_1 Int) - (moesi.usr.invalid_mo_a_1 Int) - (moesi.usr.owned_mo_a_1 Int) - (moesi.usr.erreur_mo_a_1 Bool) - (moesi.res.init_flag_a_1 Bool) - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (let - ((X2 Bool (>= (+ (- moesi.usr.shared_mo_a_0 1) moesi.usr.owned_mo_a_0) 1))) - (let - ((X3 Bool (>= moesi.usr.exclusive_mo_a_0 1))) - (let - ((X4 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (and - (= - moesi.usr.modified_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.modified_mo_a_0) - moesi.usr.modified_mo_a_0))))) - (= - moesi.usr.invalid_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite - X2 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite - X1 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - moesi.usr.invalid_mo_a_0)))) - (= - moesi.usr.exclusive_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 1 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 1 moesi.usr.exclusive_mo_a_0) - moesi.usr.exclusive_mo_a_0))))) - (= - moesi.usr.shared_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) - moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.shared_mo_a_0) - moesi.usr.shared_mo_a_0)))) - (= - moesi.usr.owned_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.owned_mo_a_0) - moesi.usr.owned_mo_a_0)))) - (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) - (not moesi.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_mo_a_0 0))) - (let - ((X1 Bool top.res.abs_5_a_0)) - (and - (= top.usr.OK_a_0 (=> top.res.abs_8_a_0 (not X1))) - (__node_init_moesi_0 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes4_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.init_invalid_mo_a_1 Int) - (top.usr.etat_mo1_a_1 Bool) - (top.usr.etat_mo2_a_1 Bool) - (top.usr.etat_mo3_a_1 Bool) - (top.usr.etat_mo4_a_1 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_mo_a_1 0))) - (let - ((X1 Bool top.res.abs_5_a_1)) - (and - (= top.usr.OK_a_1 (=> top.res.abs_8_a_1 (not X1))) - (__node_trans_moesi_0 - top.usr.init_invalid_mo_a_1 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_2_a_1 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes4_0 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.init_invalid_mo Int) -(declare-primed-var top.usr.etat_mo1 Bool) -(declare-primed-var top.usr.etat_mo2 Bool) -(declare-primed-var top.usr.etat_mo3 Bool) -(declare-primed-var top.usr.etat_mo4 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid_mo 0))) - (let - ((X1 Bool top.res.abs_5)) - (and - (= top.usr.OK (=> top.res.abs_8 (not X1))) - (__node_init_moesi_0 - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes4_0 - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.init_invalid_mo! Int) - (top.usr.etat_mo1! Bool) - (top.usr.etat_mo2! Bool) - (top.usr.etat_mo3! Bool) - (top.usr.etat_mo4! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid_mo! 0))) - (let - ((X1 Bool top.res.abs_5!)) - (and - (= top.usr.OK! (=> top.res.abs_8! (not X1))) - (__node_trans_moesi_0 - top.usr.init_invalid_mo! - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_2! - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes4_0 - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.abs_6! - top.res.inst_0! - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!)))) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes4_0 ((excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_0 (not (or (or (or (or (or (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) excludes4.res.init_flag_a_0)) +(define-fun __node_trans_excludes4_0 ((excludes4.usr.X1_a_1 Bool) (excludes4.usr.X2_a_1 Bool) (excludes4.usr.X3_a_1 Bool) (excludes4.usr.X4_a_1 Bool) (excludes4.usr.excludes_a_1 Bool) (excludes4.res.init_flag_a_1 Bool) (excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_1 (not (or (or (or (or (or (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) (not excludes4.res.init_flag_a_1))) +(define-fun __node_init_moesi_0 ((moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (and (= moesi.usr.modified_mo_a_0 0) (let ((X1 (let ((X1 moesi.res.nondet_0)) (>= X1 1)))) (and (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) (= moesi.usr.exclusive_mo_a_0 0) (let ((X2 (let ((X2 moesi.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 moesi.res.nondet_3) (X4 moesi.res.nondet_2)) (>= (+ (- X4 1) X3) 1)))) (and (= moesi.usr.shared_mo_a_0 0) (let ((X4 (let ((X4 moesi.res.nondet_4)) (>= X4 1)))) (and (= moesi.usr.owned_mo_a_0 0) (= moesi.usr.erreur_mo_a_0 false) moesi.res.init_flag_a_0))))))))) +(define-fun __node_trans_moesi_0 ((moesi.usr.init_invalid_mo_a_1 Int) (moesi.usr.etat_mo1_a_1 Bool) (moesi.usr.etat_mo2_a_1 Bool) (moesi.usr.etat_mo3_a_1 Bool) (moesi.usr.etat_mo4_a_1 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_1 Int) (moesi.usr.exclusive_mo_a_1 Int) (moesi.usr.shared_mo_a_1 Int) (moesi.usr.invalid_mo_a_1 Int) (moesi.usr.owned_mo_a_1 Int) (moesi.usr.erreur_mo_a_1 Bool) (moesi.res.init_flag_a_1 Bool) (moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= moesi.usr.invalid_mo_a_0 1))) (let ((X2 (>= (+ (- moesi.usr.shared_mo_a_0 1) moesi.usr.owned_mo_a_0) 1))) (let ((X3 (>= moesi.usr.exclusive_mo_a_0 1))) (let ((X4 (>= moesi.usr.invalid_mo_a_0 1))) (and (= moesi.usr.modified_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.modified_mo_a_0) moesi.usr.modified_mo_a_0))))) (= moesi.usr.invalid_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) moesi.usr.invalid_mo_a_0)))) (= moesi.usr.exclusive_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 1 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 1 moesi.usr.exclusive_mo_a_0) moesi.usr.exclusive_mo_a_0))))) (= moesi.usr.shared_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.shared_mo_a_0) moesi.usr.shared_mo_a_0)))) (= moesi.usr.owned_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.owned_mo_a_0) moesi.usr.owned_mo_a_0)))) (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) (not moesi.res.init_flag_a_1))))))) +(define-fun __node_init_top_0 ((top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_mo_a_0 0))) (let ((X1 top.res.abs_5_a_0)) (and (= top.usr.OK_a_0 (=> top.res.abs_8_a_0 (not X1))) (__node_init_moesi_0 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes4_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.init_invalid_mo_a_1 Int) (top.usr.etat_mo1_a_1 Bool) (top.usr.etat_mo2_a_1 Bool) (top.usr.etat_mo3_a_1 Bool) (top.usr.etat_mo4_a_1 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_mo_a_1 0))) (let ((X1 top.res.abs_5_a_1)) (and (= top.usr.OK_a_1 (=> top.res.abs_8_a_1 (not X1))) (__node_trans_moesi_0 top.usr.init_invalid_mo_a_1 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_2_a_1 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes4_0 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid_mo 0))) (let ((X1 top.res.abs_5)) (and (= top.usr.OK (=> top.res.abs_8 (not X1))) (__node_init_moesi_0 top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes4_0 top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.init_invalid_mo! Int) (top.usr.etat_mo1! Bool) (top.usr.etat_mo2! Bool) (top.usr.etat_mo3! Bool) (top.usr.etat_mo4! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid_mo! 0))) (let ((X1 top.res.abs_5!)) (and (= top.usr.OK! (=> top.res.abs_8! (not X1))) (__node_trans_moesi_0 top.usr.init_invalid_mo! top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_2! top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes4_0 top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.abs_6! top.res.inst_0! top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!)))) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/MOESI_1_e3_1884_e7_1875.sl b/benchmarks/LIA/Lustre/MOESI_1_e3_1884_e7_1875.sl index 1869046..1a7d5d6 100644 --- a/benchmarks/LIA/Lustre/MOESI_1_e3_1884_e7_1875.sl +++ b/benchmarks/LIA/Lustre/MOESI_1_e3_1884_e7_1875.sl @@ -1,692 +1,36 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes4_0 ( - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_0 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) - (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) - excludes4.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes4_0 ( - (excludes4.usr.X1_a_1 Bool) - (excludes4.usr.X2_a_1 Bool) - (excludes4.usr.X3_a_1 Bool) - (excludes4.usr.X4_a_1 Bool) - (excludes4.usr.excludes_a_1 Bool) - (excludes4.res.init_flag_a_1 Bool) - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_1 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) - (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) - (not excludes4.res.init_flag_a_1)) -) - -(define-fun - __node_init_moesi_0 ( - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (and - (= moesi.usr.modified_mo_a_0 0) - (let - ((X1 Bool (let ((X1 Int moesi.res.nondet_0)) (>= X1 1)))) - (and - (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) - (= moesi.usr.exclusive_mo_a_0 0) - (let - ((X2 Bool (let ((X2 Int moesi.res.nondet_1)) (>= X2 1)))) - (let - ((X3 - Bool (let - ((X3 Int moesi.res.nondet_3) (X4 Int moesi.res.nondet_2)) - (>= (- X4 X3) 1)))) - (and - (= moesi.usr.shared_mo_a_0 0) - (let - ((X4 Bool (let ((X4 Int moesi.res.nondet_4)) (>= X4 1)))) - (and - (= moesi.usr.owned_mo_a_0 0) - (= moesi.usr.erreur_mo_a_0 false) - moesi.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_moesi_0 ( - (moesi.usr.init_invalid_mo_a_1 Int) - (moesi.usr.etat_mo1_a_1 Bool) - (moesi.usr.etat_mo2_a_1 Bool) - (moesi.usr.etat_mo3_a_1 Bool) - (moesi.usr.etat_mo4_a_1 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_1 Int) - (moesi.usr.exclusive_mo_a_1 Int) - (moesi.usr.shared_mo_a_1 Int) - (moesi.usr.invalid_mo_a_1 Int) - (moesi.usr.owned_mo_a_1 Int) - (moesi.usr.erreur_mo_a_1 Bool) - (moesi.res.init_flag_a_1 Bool) - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (let - ((X2 Bool (>= (- moesi.usr.shared_mo_a_0 moesi.usr.owned_mo_a_0) 1))) - (let - ((X3 Bool (>= moesi.usr.exclusive_mo_a_0 1))) - (let - ((X4 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (and - (= - moesi.usr.modified_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.modified_mo_a_0) - moesi.usr.modified_mo_a_0))))) - (= - moesi.usr.invalid_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite - X2 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite - X1 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - moesi.usr.invalid_mo_a_0)))) - (= - moesi.usr.exclusive_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 1 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 1 moesi.usr.exclusive_mo_a_0) - moesi.usr.exclusive_mo_a_0))))) - (= - moesi.usr.shared_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) - moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.shared_mo_a_0) - moesi.usr.shared_mo_a_0)))) - (= - moesi.usr.owned_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.owned_mo_a_0) - moesi.usr.owned_mo_a_0)))) - (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) - (not moesi.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_mo_a_0 0))) - (let - ((X1 Bool top.res.abs_5_a_0)) - (and - (= top.usr.OK_a_0 (=> top.res.abs_8_a_0 (not X1))) - (__node_init_moesi_0 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) - (__node_init_excludes4_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.init_invalid_mo_a_1 Int) - (top.usr.etat_mo1_a_1 Bool) - (top.usr.etat_mo2_a_1 Bool) - (top.usr.etat_mo3_a_1 Bool) - (top.usr.etat_mo4_a_1 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_mo_a_1 0))) - (let - ((X1 Bool top.res.abs_5_a_1)) - (and - (= top.usr.OK_a_1 (=> top.res.abs_8_a_1 (not X1))) - (__node_trans_moesi_0 - top.usr.init_invalid_mo_a_1 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_2_a_1 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_1_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes4_0 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.init_invalid_mo Int) -(declare-primed-var top.usr.etat_mo1 Bool) -(declare-primed-var top.usr.etat_mo2 Bool) -(declare-primed-var top.usr.etat_mo3 Bool) -(declare-primed-var top.usr.etat_mo4 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid_mo 0))) - (let - ((X1 Bool top.res.abs_5)) - (and - (= top.usr.OK (=> top.res.abs_8 (not X1))) - (__node_init_moesi_0 - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) - (__node_init_excludes4_0 - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.init_invalid_mo! Int) - (top.usr.etat_mo1! Bool) - (top.usr.etat_mo2! Bool) - (top.usr.etat_mo3! Bool) - (top.usr.etat_mo4! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid_mo! 0))) - (let - ((X1 Bool top.res.abs_5!)) - (and - (= top.usr.OK! (=> top.res.abs_8! (not X1))) - (__node_trans_moesi_0 - top.usr.init_invalid_mo! - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_2! - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_7! - top.res.abs_8! - top.res.inst_1! - top.res.abs_7 - top.res.abs_8 - top.res.inst_1) - (__node_trans_excludes4_0 - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.abs_6! - top.res.inst_0! - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!)))) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes4_0 ((excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_0 (not (or (or (or (or (or (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) excludes4.res.init_flag_a_0)) +(define-fun __node_trans_excludes4_0 ((excludes4.usr.X1_a_1 Bool) (excludes4.usr.X2_a_1 Bool) (excludes4.usr.X3_a_1 Bool) (excludes4.usr.X4_a_1 Bool) (excludes4.usr.excludes_a_1 Bool) (excludes4.res.init_flag_a_1 Bool) (excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_1 (not (or (or (or (or (or (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) (not excludes4.res.init_flag_a_1))) +(define-fun __node_init_moesi_0 ((moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (and (= moesi.usr.modified_mo_a_0 0) (let ((X1 (let ((X1 moesi.res.nondet_0)) (>= X1 1)))) (and (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) (= moesi.usr.exclusive_mo_a_0 0) (let ((X2 (let ((X2 moesi.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 moesi.res.nondet_3) (X4 moesi.res.nondet_2)) (>= (- X4 X3) 1)))) (and (= moesi.usr.shared_mo_a_0 0) (let ((X4 (let ((X4 moesi.res.nondet_4)) (>= X4 1)))) (and (= moesi.usr.owned_mo_a_0 0) (= moesi.usr.erreur_mo_a_0 false) moesi.res.init_flag_a_0))))))))) +(define-fun __node_trans_moesi_0 ((moesi.usr.init_invalid_mo_a_1 Int) (moesi.usr.etat_mo1_a_1 Bool) (moesi.usr.etat_mo2_a_1 Bool) (moesi.usr.etat_mo3_a_1 Bool) (moesi.usr.etat_mo4_a_1 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_1 Int) (moesi.usr.exclusive_mo_a_1 Int) (moesi.usr.shared_mo_a_1 Int) (moesi.usr.invalid_mo_a_1 Int) (moesi.usr.owned_mo_a_1 Int) (moesi.usr.erreur_mo_a_1 Bool) (moesi.res.init_flag_a_1 Bool) (moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= moesi.usr.invalid_mo_a_0 1))) (let ((X2 (>= (- moesi.usr.shared_mo_a_0 moesi.usr.owned_mo_a_0) 1))) (let ((X3 (>= moesi.usr.exclusive_mo_a_0 1))) (let ((X4 (>= moesi.usr.invalid_mo_a_0 1))) (and (= moesi.usr.modified_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.modified_mo_a_0) moesi.usr.modified_mo_a_0))))) (= moesi.usr.invalid_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) moesi.usr.invalid_mo_a_0)))) (= moesi.usr.exclusive_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 1 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 1 moesi.usr.exclusive_mo_a_0) moesi.usr.exclusive_mo_a_0))))) (= moesi.usr.shared_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.shared_mo_a_0) moesi.usr.shared_mo_a_0)))) (= moesi.usr.owned_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.owned_mo_a_0) moesi.usr.owned_mo_a_0)))) (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) (not moesi.res.init_flag_a_1))))))) +(define-fun __node_init_top_0 ((top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_0 (and top.res.abs_6_a_0 (> top.usr.init_invalid_mo_a_0 0))) (let ((X1 top.res.abs_5_a_0)) (and (= top.usr.OK_a_0 (=> top.res.abs_8_a_0 (not X1))) (__node_init_moesi_0 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_init_excludes4_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.init_invalid_mo_a_1 Int) (top.usr.etat_mo1_a_1 Bool) (top.usr.etat_mo2_a_1 Bool) (top.usr.etat_mo3_a_1 Bool) (top.usr.etat_mo4_a_1 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_7_a_1 (and top.res.abs_6_a_1 (> top.usr.init_invalid_mo_a_1 0))) (let ((X1 top.res.abs_5_a_1)) (and (= top.usr.OK_a_1 (=> top.res.abs_8_a_1 (not X1))) (__node_trans_moesi_0 top.usr.init_invalid_mo_a_1 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_2_a_1 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_1_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_1_a_0) (__node_trans_excludes4_0 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_7 (and top.res.abs_6 (> top.usr.init_invalid_mo 0))) (let ((X1 top.res.abs_5)) (and (= top.usr.OK (=> top.res.abs_8 (not X1))) (__node_init_moesi_0 top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_init_excludes4_0 top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.init_invalid_mo! Int) (top.usr.etat_mo1! Bool) (top.usr.etat_mo2! Bool) (top.usr.etat_mo3! Bool) (top.usr.etat_mo4! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_7! (and top.res.abs_6! (> top.usr.init_invalid_mo! 0))) (let ((X1 top.res.abs_5!)) (and (= top.usr.OK! (=> top.res.abs_8! (not X1))) (__node_trans_moesi_0 top.usr.init_invalid_mo! top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_2! top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_7! top.res.abs_8! top.res.inst_1! top.res.abs_7 top.res.abs_8 top.res.inst_1) (__node_trans_excludes4_0 top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.abs_6! top.res.inst_0! top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!)))) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/MOESI_2.sl b/benchmarks/LIA/Lustre/MOESI_2.sl index ede70a3..f8b74ae 100644 --- a/benchmarks/LIA/Lustre/MOESI_2.sl +++ b/benchmarks/LIA/Lustre/MOESI_2.sl @@ -1,737 +1,36 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes4_0 ( - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_0 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) - (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) - excludes4.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes4_0 ( - (excludes4.usr.X1_a_1 Bool) - (excludes4.usr.X2_a_1 Bool) - (excludes4.usr.X3_a_1 Bool) - (excludes4.usr.X4_a_1 Bool) - (excludes4.usr.excludes_a_1 Bool) - (excludes4.res.init_flag_a_1 Bool) - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_1 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) - (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) - (not excludes4.res.init_flag_a_1)) -) - -(define-fun - __node_init_moesi_0 ( - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (and - (= moesi.usr.modified_mo_a_0 0) - (let - ((X1 Bool (let ((X1 Int moesi.res.nondet_0)) (>= X1 1)))) - (and - (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) - (= moesi.usr.exclusive_mo_a_0 0) - (let - ((X2 Bool (let ((X2 Int moesi.res.nondet_1)) (>= X2 1)))) - (let - ((X3 - Bool (let - ((X3 Int moesi.res.nondet_3) (X4 Int moesi.res.nondet_2)) - (>= (+ X4 X3) 1)))) - (and - (= moesi.usr.shared_mo_a_0 0) - (let - ((X4 Bool (let ((X4 Int moesi.res.nondet_4)) (>= X4 1)))) - (and - (= moesi.usr.owned_mo_a_0 0) - (= moesi.usr.erreur_mo_a_0 false) - moesi.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_moesi_0 ( - (moesi.usr.init_invalid_mo_a_1 Int) - (moesi.usr.etat_mo1_a_1 Bool) - (moesi.usr.etat_mo2_a_1 Bool) - (moesi.usr.etat_mo3_a_1 Bool) - (moesi.usr.etat_mo4_a_1 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_1 Int) - (moesi.usr.exclusive_mo_a_1 Int) - (moesi.usr.shared_mo_a_1 Int) - (moesi.usr.invalid_mo_a_1 Int) - (moesi.usr.owned_mo_a_1 Int) - (moesi.usr.erreur_mo_a_1 Bool) - (moesi.res.init_flag_a_1 Bool) - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (let - ((X2 Bool (>= (+ moesi.usr.shared_mo_a_0 moesi.usr.owned_mo_a_0) 1))) - (let - ((X3 Bool (>= moesi.usr.exclusive_mo_a_0 1))) - (let - ((X4 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (and - (= - moesi.usr.modified_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.modified_mo_a_0) - moesi.usr.modified_mo_a_0))))) - (= - moesi.usr.invalid_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite - X2 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite - X1 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - moesi.usr.invalid_mo_a_0)))) - (= - moesi.usr.exclusive_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 1 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 1 moesi.usr.exclusive_mo_a_0) - moesi.usr.exclusive_mo_a_0))))) - (= - moesi.usr.shared_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) - moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.shared_mo_a_0) - moesi.usr.shared_mo_a_0)))) - (= - moesi.usr.owned_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.owned_mo_a_0) - moesi.usr.owned_mo_a_0)))) - (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) - (not moesi.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Int top.res.abs_4_a_0)) - (let - ((X6 Bool top.res.abs_7_a_0)) - (and - (= top.res.abs_8_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_moesi_0 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_1_a_0) - (__node_init_excludes4_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.init_invalid_mo_a_1 Int) - (top.usr.etat_mo1_a_1 Bool) - (top.usr.etat_mo2_a_1 Bool) - (top.usr.etat_mo3_a_1 Bool) - (top.usr.etat_mo4_a_1 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_7_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8_a_0))) - (= top.res.abs_8_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_moesi_0 - top.usr.init_invalid_mo_a_1 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_2_a_1 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.inst_1_a_1 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes4_0 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.init_invalid_mo Int) -(declare-primed-var top.usr.etat_mo1 Bool) -(declare-primed-var top.usr.etat_mo2 Bool) -(declare-primed-var top.usr.etat_mo3 Bool) -(declare-primed-var top.usr.etat_mo4 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int top.res.abs_0)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Int top.res.abs_4)) - (let - ((X6 Bool top.res.abs_7)) - (and - (= top.res.abs_8 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_moesi_0 - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_1) - (__node_init_excludes4_0 - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.init_invalid_mo! Int) - (top.usr.etat_mo1! Bool) - (top.usr.etat_mo2! Bool) - (top.usr.etat_mo3! Bool) - (top.usr.etat_mo4! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Bool top.res.abs_7!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8))) - (= top.res.abs_8! (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_moesi_0 - top.usr.init_invalid_mo! - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_2! - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_6! - top.res.abs_7! - top.res.inst_1! - top.res.abs_6 - top.res.abs_7 - top.res.inst_1) - (__node_trans_excludes4_0 - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.abs_6! - top.res.inst_0! - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes4_0 ((excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_0 (not (or (or (or (or (or (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) excludes4.res.init_flag_a_0)) +(define-fun __node_trans_excludes4_0 ((excludes4.usr.X1_a_1 Bool) (excludes4.usr.X2_a_1 Bool) (excludes4.usr.X3_a_1 Bool) (excludes4.usr.X4_a_1 Bool) (excludes4.usr.excludes_a_1 Bool) (excludes4.res.init_flag_a_1 Bool) (excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_1 (not (or (or (or (or (or (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) (not excludes4.res.init_flag_a_1))) +(define-fun __node_init_moesi_0 ((moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (and (= moesi.usr.modified_mo_a_0 0) (let ((X1 (let ((X1 moesi.res.nondet_0)) (>= X1 1)))) (and (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) (= moesi.usr.exclusive_mo_a_0 0) (let ((X2 (let ((X2 moesi.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 moesi.res.nondet_3) (X4 moesi.res.nondet_2)) (>= (+ X4 X3) 1)))) (and (= moesi.usr.shared_mo_a_0 0) (let ((X4 (let ((X4 moesi.res.nondet_4)) (>= X4 1)))) (and (= moesi.usr.owned_mo_a_0 0) (= moesi.usr.erreur_mo_a_0 false) moesi.res.init_flag_a_0))))))))) +(define-fun __node_trans_moesi_0 ((moesi.usr.init_invalid_mo_a_1 Int) (moesi.usr.etat_mo1_a_1 Bool) (moesi.usr.etat_mo2_a_1 Bool) (moesi.usr.etat_mo3_a_1 Bool) (moesi.usr.etat_mo4_a_1 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_1 Int) (moesi.usr.exclusive_mo_a_1 Int) (moesi.usr.shared_mo_a_1 Int) (moesi.usr.invalid_mo_a_1 Int) (moesi.usr.owned_mo_a_1 Int) (moesi.usr.erreur_mo_a_1 Bool) (moesi.res.init_flag_a_1 Bool) (moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= moesi.usr.invalid_mo_a_0 1))) (let ((X2 (>= (+ moesi.usr.shared_mo_a_0 moesi.usr.owned_mo_a_0) 1))) (let ((X3 (>= moesi.usr.exclusive_mo_a_0 1))) (let ((X4 (>= moesi.usr.invalid_mo_a_0 1))) (and (= moesi.usr.modified_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.modified_mo_a_0) moesi.usr.modified_mo_a_0))))) (= moesi.usr.invalid_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) moesi.usr.invalid_mo_a_0)))) (= moesi.usr.exclusive_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 1 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 1 moesi.usr.exclusive_mo_a_0) moesi.usr.exclusive_mo_a_0))))) (= moesi.usr.shared_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.shared_mo_a_0) moesi.usr.shared_mo_a_0)))) (= moesi.usr.owned_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.owned_mo_a_0) moesi.usr.owned_mo_a_0)))) (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) (not moesi.res.init_flag_a_1))))))) +(define-fun __node_init_top_0 ((top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_4_a_0)) (let ((X6 top.res.abs_7_a_0)) (and (= top.res.abs_8_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_moesi_0 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_1_a_0) (__node_init_excludes4_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.init_invalid_mo_a_1 Int) (top.usr.etat_mo1_a_1 Bool) (top.usr.etat_mo2_a_1 Bool) (top.usr.etat_mo3_a_1 Bool) (top.usr.etat_mo4_a_1 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_7_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8_a_0))) (= top.res.abs_8_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_moesi_0 top.usr.init_invalid_mo_a_1 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_2_a_1 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.inst_1_a_1 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_1_a_0) (__node_trans_excludes4_0 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_4)) (let ((X6 top.res.abs_7)) (and (= top.res.abs_8 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_moesi_0 top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_1) (__node_init_excludes4_0 top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.init_invalid_mo! Int) (top.usr.etat_mo1! Bool) (top.usr.etat_mo2! Bool) (top.usr.etat_mo3! Bool) (top.usr.etat_mo4! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_7!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8))) (= top.res.abs_8! (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_moesi_0 top.usr.init_invalid_mo! top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_2! top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_6! top.res.abs_7! top.res.inst_1! top.res.abs_6 top.res.abs_7 top.res.inst_1) (__node_trans_excludes4_0 top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.abs_6! top.res.inst_0! top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/MOESI_2_e1_1753.sl b/benchmarks/LIA/Lustre/MOESI_2_e1_1753.sl index a7e3c29..99319de 100644 --- a/benchmarks/LIA/Lustre/MOESI_2_e1_1753.sl +++ b/benchmarks/LIA/Lustre/MOESI_2_e1_1753.sl @@ -1,737 +1,36 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes4_0 ( - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_0 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) - (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) - excludes4.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes4_0 ( - (excludes4.usr.X1_a_1 Bool) - (excludes4.usr.X2_a_1 Bool) - (excludes4.usr.X3_a_1 Bool) - (excludes4.usr.X4_a_1 Bool) - (excludes4.usr.excludes_a_1 Bool) - (excludes4.res.init_flag_a_1 Bool) - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_1 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) - (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) - (not excludes4.res.init_flag_a_1)) -) - -(define-fun - __node_init_moesi_0 ( - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (and - (= moesi.usr.modified_mo_a_0 0) - (let - ((X1 Bool (let ((X1 Int moesi.res.nondet_0)) (>= X1 1)))) - (and - (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) - (= moesi.usr.exclusive_mo_a_0 0) - (let - ((X2 Bool (let ((X2 Int moesi.res.nondet_1)) (>= X2 1)))) - (let - ((X3 - Bool (let - ((X3 Int moesi.res.nondet_3) (X4 Int moesi.res.nondet_2)) - (>= (+ (+ X4 1) X3) 1)))) - (and - (= moesi.usr.shared_mo_a_0 0) - (let - ((X4 Bool (let ((X4 Int moesi.res.nondet_4)) (>= X4 1)))) - (and - (= moesi.usr.owned_mo_a_0 0) - (= moesi.usr.erreur_mo_a_0 false) - moesi.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_moesi_0 ( - (moesi.usr.init_invalid_mo_a_1 Int) - (moesi.usr.etat_mo1_a_1 Bool) - (moesi.usr.etat_mo2_a_1 Bool) - (moesi.usr.etat_mo3_a_1 Bool) - (moesi.usr.etat_mo4_a_1 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_1 Int) - (moesi.usr.exclusive_mo_a_1 Int) - (moesi.usr.shared_mo_a_1 Int) - (moesi.usr.invalid_mo_a_1 Int) - (moesi.usr.owned_mo_a_1 Int) - (moesi.usr.erreur_mo_a_1 Bool) - (moesi.res.init_flag_a_1 Bool) - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (let - ((X2 Bool (>= (+ (+ moesi.usr.shared_mo_a_0 1) moesi.usr.owned_mo_a_0) 1))) - (let - ((X3 Bool (>= moesi.usr.exclusive_mo_a_0 1))) - (let - ((X4 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (and - (= - moesi.usr.modified_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.modified_mo_a_0) - moesi.usr.modified_mo_a_0))))) - (= - moesi.usr.invalid_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite - X2 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite - X1 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - moesi.usr.invalid_mo_a_0)))) - (= - moesi.usr.exclusive_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 1 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 1 moesi.usr.exclusive_mo_a_0) - moesi.usr.exclusive_mo_a_0))))) - (= - moesi.usr.shared_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) - moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.shared_mo_a_0) - moesi.usr.shared_mo_a_0)))) - (= - moesi.usr.owned_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.owned_mo_a_0) - moesi.usr.owned_mo_a_0)))) - (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) - (not moesi.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Int top.res.abs_4_a_0)) - (let - ((X6 Bool top.res.abs_7_a_0)) - (and - (= top.res.abs_8_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_moesi_0 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_1_a_0) - (__node_init_excludes4_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.init_invalid_mo_a_1 Int) - (top.usr.etat_mo1_a_1 Bool) - (top.usr.etat_mo2_a_1 Bool) - (top.usr.etat_mo3_a_1 Bool) - (top.usr.etat_mo4_a_1 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_7_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8_a_0))) - (= top.res.abs_8_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_moesi_0 - top.usr.init_invalid_mo_a_1 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_2_a_1 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.inst_1_a_1 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes4_0 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.init_invalid_mo Int) -(declare-primed-var top.usr.etat_mo1 Bool) -(declare-primed-var top.usr.etat_mo2 Bool) -(declare-primed-var top.usr.etat_mo3 Bool) -(declare-primed-var top.usr.etat_mo4 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int top.res.abs_0)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Int top.res.abs_4)) - (let - ((X6 Bool top.res.abs_7)) - (and - (= top.res.abs_8 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_moesi_0 - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_1) - (__node_init_excludes4_0 - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.init_invalid_mo! Int) - (top.usr.etat_mo1! Bool) - (top.usr.etat_mo2! Bool) - (top.usr.etat_mo3! Bool) - (top.usr.etat_mo4! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Bool top.res.abs_7!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8))) - (= top.res.abs_8! (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_moesi_0 - top.usr.init_invalid_mo! - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_2! - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_6! - top.res.abs_7! - top.res.inst_1! - top.res.abs_6 - top.res.abs_7 - top.res.inst_1) - (__node_trans_excludes4_0 - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.abs_6! - top.res.inst_0! - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes4_0 ((excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_0 (not (or (or (or (or (or (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) excludes4.res.init_flag_a_0)) +(define-fun __node_trans_excludes4_0 ((excludes4.usr.X1_a_1 Bool) (excludes4.usr.X2_a_1 Bool) (excludes4.usr.X3_a_1 Bool) (excludes4.usr.X4_a_1 Bool) (excludes4.usr.excludes_a_1 Bool) (excludes4.res.init_flag_a_1 Bool) (excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_1 (not (or (or (or (or (or (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) (not excludes4.res.init_flag_a_1))) +(define-fun __node_init_moesi_0 ((moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (and (= moesi.usr.modified_mo_a_0 0) (let ((X1 (let ((X1 moesi.res.nondet_0)) (>= X1 1)))) (and (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) (= moesi.usr.exclusive_mo_a_0 0) (let ((X2 (let ((X2 moesi.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 moesi.res.nondet_3) (X4 moesi.res.nondet_2)) (>= (+ (+ X4 1) X3) 1)))) (and (= moesi.usr.shared_mo_a_0 0) (let ((X4 (let ((X4 moesi.res.nondet_4)) (>= X4 1)))) (and (= moesi.usr.owned_mo_a_0 0) (= moesi.usr.erreur_mo_a_0 false) moesi.res.init_flag_a_0))))))))) +(define-fun __node_trans_moesi_0 ((moesi.usr.init_invalid_mo_a_1 Int) (moesi.usr.etat_mo1_a_1 Bool) (moesi.usr.etat_mo2_a_1 Bool) (moesi.usr.etat_mo3_a_1 Bool) (moesi.usr.etat_mo4_a_1 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_1 Int) (moesi.usr.exclusive_mo_a_1 Int) (moesi.usr.shared_mo_a_1 Int) (moesi.usr.invalid_mo_a_1 Int) (moesi.usr.owned_mo_a_1 Int) (moesi.usr.erreur_mo_a_1 Bool) (moesi.res.init_flag_a_1 Bool) (moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= moesi.usr.invalid_mo_a_0 1))) (let ((X2 (>= (+ (+ moesi.usr.shared_mo_a_0 1) moesi.usr.owned_mo_a_0) 1))) (let ((X3 (>= moesi.usr.exclusive_mo_a_0 1))) (let ((X4 (>= moesi.usr.invalid_mo_a_0 1))) (and (= moesi.usr.modified_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.modified_mo_a_0) moesi.usr.modified_mo_a_0))))) (= moesi.usr.invalid_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) moesi.usr.invalid_mo_a_0)))) (= moesi.usr.exclusive_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 1 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 1 moesi.usr.exclusive_mo_a_0) moesi.usr.exclusive_mo_a_0))))) (= moesi.usr.shared_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.shared_mo_a_0) moesi.usr.shared_mo_a_0)))) (= moesi.usr.owned_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.owned_mo_a_0) moesi.usr.owned_mo_a_0)))) (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) (not moesi.res.init_flag_a_1))))))) +(define-fun __node_init_top_0 ((top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_4_a_0)) (let ((X6 top.res.abs_7_a_0)) (and (= top.res.abs_8_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_moesi_0 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_1_a_0) (__node_init_excludes4_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.init_invalid_mo_a_1 Int) (top.usr.etat_mo1_a_1 Bool) (top.usr.etat_mo2_a_1 Bool) (top.usr.etat_mo3_a_1 Bool) (top.usr.etat_mo4_a_1 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_7_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8_a_0))) (= top.res.abs_8_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_moesi_0 top.usr.init_invalid_mo_a_1 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_2_a_1 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.inst_1_a_1 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_1_a_0) (__node_trans_excludes4_0 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_4)) (let ((X6 top.res.abs_7)) (and (= top.res.abs_8 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_moesi_0 top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_1) (__node_init_excludes4_0 top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.init_invalid_mo! Int) (top.usr.etat_mo1! Bool) (top.usr.etat_mo2! Bool) (top.usr.etat_mo3! Bool) (top.usr.etat_mo4! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_7!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8))) (= top.res.abs_8! (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_moesi_0 top.usr.init_invalid_mo! top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_2! top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_6! top.res.abs_7! top.res.inst_1! top.res.abs_6 top.res.abs_7 top.res.inst_1) (__node_trans_excludes4_0 top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.abs_6! top.res.inst_0! top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/MOESI_2_e2_155.sl b/benchmarks/LIA/Lustre/MOESI_2_e2_155.sl index 59d929c..91e6e16 100644 --- a/benchmarks/LIA/Lustre/MOESI_2_e2_155.sl +++ b/benchmarks/LIA/Lustre/MOESI_2_e2_155.sl @@ -1,737 +1,36 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes4_0 ( - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_0 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) - (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) - excludes4.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes4_0 ( - (excludes4.usr.X1_a_1 Bool) - (excludes4.usr.X2_a_1 Bool) - (excludes4.usr.X3_a_1 Bool) - (excludes4.usr.X4_a_1 Bool) - (excludes4.usr.excludes_a_1 Bool) - (excludes4.res.init_flag_a_1 Bool) - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_1 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) - (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) - (not excludes4.res.init_flag_a_1)) -) - -(define-fun - __node_init_moesi_0 ( - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (and - (= moesi.usr.modified_mo_a_0 0) - (let - ((X1 Bool (let ((X1 Int moesi.res.nondet_0)) (>= X1 1)))) - (and - (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) - (= moesi.usr.exclusive_mo_a_0 0) - (let - ((X2 Bool (let ((X2 Int moesi.res.nondet_1)) (>= X2 1)))) - (let - ((X3 - Bool (let - ((X3 Int moesi.res.nondet_3) (X4 Int moesi.res.nondet_2)) - (>= (+ (- X4 1) X3) 1)))) - (and - (= moesi.usr.shared_mo_a_0 0) - (let - ((X4 Bool (let ((X4 Int moesi.res.nondet_4)) (>= X4 1)))) - (and - (= moesi.usr.owned_mo_a_0 0) - (= moesi.usr.erreur_mo_a_0 false) - moesi.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_moesi_0 ( - (moesi.usr.init_invalid_mo_a_1 Int) - (moesi.usr.etat_mo1_a_1 Bool) - (moesi.usr.etat_mo2_a_1 Bool) - (moesi.usr.etat_mo3_a_1 Bool) - (moesi.usr.etat_mo4_a_1 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_1 Int) - (moesi.usr.exclusive_mo_a_1 Int) - (moesi.usr.shared_mo_a_1 Int) - (moesi.usr.invalid_mo_a_1 Int) - (moesi.usr.owned_mo_a_1 Int) - (moesi.usr.erreur_mo_a_1 Bool) - (moesi.res.init_flag_a_1 Bool) - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (let - ((X2 Bool (>= (+ (- moesi.usr.shared_mo_a_0 1) moesi.usr.owned_mo_a_0) 1))) - (let - ((X3 Bool (>= moesi.usr.exclusive_mo_a_0 1))) - (let - ((X4 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (and - (= - moesi.usr.modified_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.modified_mo_a_0) - moesi.usr.modified_mo_a_0))))) - (= - moesi.usr.invalid_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite - X2 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite - X1 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - moesi.usr.invalid_mo_a_0)))) - (= - moesi.usr.exclusive_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 1 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 1 moesi.usr.exclusive_mo_a_0) - moesi.usr.exclusive_mo_a_0))))) - (= - moesi.usr.shared_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) - moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.shared_mo_a_0) - moesi.usr.shared_mo_a_0)))) - (= - moesi.usr.owned_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.owned_mo_a_0) - moesi.usr.owned_mo_a_0)))) - (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) - (not moesi.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Int top.res.abs_4_a_0)) - (let - ((X6 Bool top.res.abs_7_a_0)) - (and - (= top.res.abs_8_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_moesi_0 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_1_a_0) - (__node_init_excludes4_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.init_invalid_mo_a_1 Int) - (top.usr.etat_mo1_a_1 Bool) - (top.usr.etat_mo2_a_1 Bool) - (top.usr.etat_mo3_a_1 Bool) - (top.usr.etat_mo4_a_1 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_7_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8_a_0))) - (= top.res.abs_8_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_moesi_0 - top.usr.init_invalid_mo_a_1 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_2_a_1 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.inst_1_a_1 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes4_0 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.init_invalid_mo Int) -(declare-primed-var top.usr.etat_mo1 Bool) -(declare-primed-var top.usr.etat_mo2 Bool) -(declare-primed-var top.usr.etat_mo3 Bool) -(declare-primed-var top.usr.etat_mo4 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int top.res.abs_0)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Int top.res.abs_4)) - (let - ((X6 Bool top.res.abs_7)) - (and - (= top.res.abs_8 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_moesi_0 - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_1) - (__node_init_excludes4_0 - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.init_invalid_mo! Int) - (top.usr.etat_mo1! Bool) - (top.usr.etat_mo2! Bool) - (top.usr.etat_mo3! Bool) - (top.usr.etat_mo4! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Bool top.res.abs_7!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8))) - (= top.res.abs_8! (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_moesi_0 - top.usr.init_invalid_mo! - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_2! - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_6! - top.res.abs_7! - top.res.inst_1! - top.res.abs_6 - top.res.abs_7 - top.res.inst_1) - (__node_trans_excludes4_0 - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.abs_6! - top.res.inst_0! - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes4_0 ((excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_0 (not (or (or (or (or (or (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) excludes4.res.init_flag_a_0)) +(define-fun __node_trans_excludes4_0 ((excludes4.usr.X1_a_1 Bool) (excludes4.usr.X2_a_1 Bool) (excludes4.usr.X3_a_1 Bool) (excludes4.usr.X4_a_1 Bool) (excludes4.usr.excludes_a_1 Bool) (excludes4.res.init_flag_a_1 Bool) (excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_1 (not (or (or (or (or (or (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) (not excludes4.res.init_flag_a_1))) +(define-fun __node_init_moesi_0 ((moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (and (= moesi.usr.modified_mo_a_0 0) (let ((X1 (let ((X1 moesi.res.nondet_0)) (>= X1 1)))) (and (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) (= moesi.usr.exclusive_mo_a_0 0) (let ((X2 (let ((X2 moesi.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 moesi.res.nondet_3) (X4 moesi.res.nondet_2)) (>= (+ (- X4 1) X3) 1)))) (and (= moesi.usr.shared_mo_a_0 0) (let ((X4 (let ((X4 moesi.res.nondet_4)) (>= X4 1)))) (and (= moesi.usr.owned_mo_a_0 0) (= moesi.usr.erreur_mo_a_0 false) moesi.res.init_flag_a_0))))))))) +(define-fun __node_trans_moesi_0 ((moesi.usr.init_invalid_mo_a_1 Int) (moesi.usr.etat_mo1_a_1 Bool) (moesi.usr.etat_mo2_a_1 Bool) (moesi.usr.etat_mo3_a_1 Bool) (moesi.usr.etat_mo4_a_1 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_1 Int) (moesi.usr.exclusive_mo_a_1 Int) (moesi.usr.shared_mo_a_1 Int) (moesi.usr.invalid_mo_a_1 Int) (moesi.usr.owned_mo_a_1 Int) (moesi.usr.erreur_mo_a_1 Bool) (moesi.res.init_flag_a_1 Bool) (moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= moesi.usr.invalid_mo_a_0 1))) (let ((X2 (>= (+ (- moesi.usr.shared_mo_a_0 1) moesi.usr.owned_mo_a_0) 1))) (let ((X3 (>= moesi.usr.exclusive_mo_a_0 1))) (let ((X4 (>= moesi.usr.invalid_mo_a_0 1))) (and (= moesi.usr.modified_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.modified_mo_a_0) moesi.usr.modified_mo_a_0))))) (= moesi.usr.invalid_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) moesi.usr.invalid_mo_a_0)))) (= moesi.usr.exclusive_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 1 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 1 moesi.usr.exclusive_mo_a_0) moesi.usr.exclusive_mo_a_0))))) (= moesi.usr.shared_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.shared_mo_a_0) moesi.usr.shared_mo_a_0)))) (= moesi.usr.owned_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.owned_mo_a_0) moesi.usr.owned_mo_a_0)))) (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) (not moesi.res.init_flag_a_1))))))) +(define-fun __node_init_top_0 ((top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_4_a_0)) (let ((X6 top.res.abs_7_a_0)) (and (= top.res.abs_8_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_moesi_0 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_1_a_0) (__node_init_excludes4_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.init_invalid_mo_a_1 Int) (top.usr.etat_mo1_a_1 Bool) (top.usr.etat_mo2_a_1 Bool) (top.usr.etat_mo3_a_1 Bool) (top.usr.etat_mo4_a_1 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_7_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8_a_0))) (= top.res.abs_8_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_moesi_0 top.usr.init_invalid_mo_a_1 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_2_a_1 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.inst_1_a_1 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_1_a_0) (__node_trans_excludes4_0 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_4)) (let ((X6 top.res.abs_7)) (and (= top.res.abs_8 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_moesi_0 top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_1) (__node_init_excludes4_0 top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.init_invalid_mo! Int) (top.usr.etat_mo1! Bool) (top.usr.etat_mo2! Bool) (top.usr.etat_mo3! Bool) (top.usr.etat_mo4! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_7!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8))) (= top.res.abs_8! (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_moesi_0 top.usr.init_invalid_mo! top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_2! top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_6! top.res.abs_7! top.res.inst_1! top.res.abs_6 top.res.abs_7 top.res.inst_1) (__node_trans_excludes4_0 top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.abs_6! top.res.inst_0! top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/MOESI_2_e2_1599.sl b/benchmarks/LIA/Lustre/MOESI_2_e2_1599.sl index 59d929c..91e6e16 100644 --- a/benchmarks/LIA/Lustre/MOESI_2_e2_1599.sl +++ b/benchmarks/LIA/Lustre/MOESI_2_e2_1599.sl @@ -1,737 +1,36 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes4_0 ( - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_0 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) - (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) - excludes4.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes4_0 ( - (excludes4.usr.X1_a_1 Bool) - (excludes4.usr.X2_a_1 Bool) - (excludes4.usr.X3_a_1 Bool) - (excludes4.usr.X4_a_1 Bool) - (excludes4.usr.excludes_a_1 Bool) - (excludes4.res.init_flag_a_1 Bool) - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_1 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) - (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) - (not excludes4.res.init_flag_a_1)) -) - -(define-fun - __node_init_moesi_0 ( - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (and - (= moesi.usr.modified_mo_a_0 0) - (let - ((X1 Bool (let ((X1 Int moesi.res.nondet_0)) (>= X1 1)))) - (and - (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) - (= moesi.usr.exclusive_mo_a_0 0) - (let - ((X2 Bool (let ((X2 Int moesi.res.nondet_1)) (>= X2 1)))) - (let - ((X3 - Bool (let - ((X3 Int moesi.res.nondet_3) (X4 Int moesi.res.nondet_2)) - (>= (+ (- X4 1) X3) 1)))) - (and - (= moesi.usr.shared_mo_a_0 0) - (let - ((X4 Bool (let ((X4 Int moesi.res.nondet_4)) (>= X4 1)))) - (and - (= moesi.usr.owned_mo_a_0 0) - (= moesi.usr.erreur_mo_a_0 false) - moesi.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_moesi_0 ( - (moesi.usr.init_invalid_mo_a_1 Int) - (moesi.usr.etat_mo1_a_1 Bool) - (moesi.usr.etat_mo2_a_1 Bool) - (moesi.usr.etat_mo3_a_1 Bool) - (moesi.usr.etat_mo4_a_1 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_1 Int) - (moesi.usr.exclusive_mo_a_1 Int) - (moesi.usr.shared_mo_a_1 Int) - (moesi.usr.invalid_mo_a_1 Int) - (moesi.usr.owned_mo_a_1 Int) - (moesi.usr.erreur_mo_a_1 Bool) - (moesi.res.init_flag_a_1 Bool) - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (let - ((X2 Bool (>= (+ (- moesi.usr.shared_mo_a_0 1) moesi.usr.owned_mo_a_0) 1))) - (let - ((X3 Bool (>= moesi.usr.exclusive_mo_a_0 1))) - (let - ((X4 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (and - (= - moesi.usr.modified_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.modified_mo_a_0) - moesi.usr.modified_mo_a_0))))) - (= - moesi.usr.invalid_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite - X2 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite - X1 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - moesi.usr.invalid_mo_a_0)))) - (= - moesi.usr.exclusive_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 1 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 1 moesi.usr.exclusive_mo_a_0) - moesi.usr.exclusive_mo_a_0))))) - (= - moesi.usr.shared_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) - moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.shared_mo_a_0) - moesi.usr.shared_mo_a_0)))) - (= - moesi.usr.owned_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.owned_mo_a_0) - moesi.usr.owned_mo_a_0)))) - (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) - (not moesi.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Int top.res.abs_4_a_0)) - (let - ((X6 Bool top.res.abs_7_a_0)) - (and - (= top.res.abs_8_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_moesi_0 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_1_a_0) - (__node_init_excludes4_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.init_invalid_mo_a_1 Int) - (top.usr.etat_mo1_a_1 Bool) - (top.usr.etat_mo2_a_1 Bool) - (top.usr.etat_mo3_a_1 Bool) - (top.usr.etat_mo4_a_1 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_7_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8_a_0))) - (= top.res.abs_8_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_moesi_0 - top.usr.init_invalid_mo_a_1 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_2_a_1 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.inst_1_a_1 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes4_0 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.init_invalid_mo Int) -(declare-primed-var top.usr.etat_mo1 Bool) -(declare-primed-var top.usr.etat_mo2 Bool) -(declare-primed-var top.usr.etat_mo3 Bool) -(declare-primed-var top.usr.etat_mo4 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int top.res.abs_0)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Int top.res.abs_4)) - (let - ((X6 Bool top.res.abs_7)) - (and - (= top.res.abs_8 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_moesi_0 - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_1) - (__node_init_excludes4_0 - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.init_invalid_mo! Int) - (top.usr.etat_mo1! Bool) - (top.usr.etat_mo2! Bool) - (top.usr.etat_mo3! Bool) - (top.usr.etat_mo4! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Bool top.res.abs_7!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8))) - (= top.res.abs_8! (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_moesi_0 - top.usr.init_invalid_mo! - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_2! - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_6! - top.res.abs_7! - top.res.inst_1! - top.res.abs_6 - top.res.abs_7 - top.res.inst_1) - (__node_trans_excludes4_0 - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.abs_6! - top.res.inst_0! - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes4_0 ((excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_0 (not (or (or (or (or (or (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) excludes4.res.init_flag_a_0)) +(define-fun __node_trans_excludes4_0 ((excludes4.usr.X1_a_1 Bool) (excludes4.usr.X2_a_1 Bool) (excludes4.usr.X3_a_1 Bool) (excludes4.usr.X4_a_1 Bool) (excludes4.usr.excludes_a_1 Bool) (excludes4.res.init_flag_a_1 Bool) (excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_1 (not (or (or (or (or (or (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) (not excludes4.res.init_flag_a_1))) +(define-fun __node_init_moesi_0 ((moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (and (= moesi.usr.modified_mo_a_0 0) (let ((X1 (let ((X1 moesi.res.nondet_0)) (>= X1 1)))) (and (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) (= moesi.usr.exclusive_mo_a_0 0) (let ((X2 (let ((X2 moesi.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 moesi.res.nondet_3) (X4 moesi.res.nondet_2)) (>= (+ (- X4 1) X3) 1)))) (and (= moesi.usr.shared_mo_a_0 0) (let ((X4 (let ((X4 moesi.res.nondet_4)) (>= X4 1)))) (and (= moesi.usr.owned_mo_a_0 0) (= moesi.usr.erreur_mo_a_0 false) moesi.res.init_flag_a_0))))))))) +(define-fun __node_trans_moesi_0 ((moesi.usr.init_invalid_mo_a_1 Int) (moesi.usr.etat_mo1_a_1 Bool) (moesi.usr.etat_mo2_a_1 Bool) (moesi.usr.etat_mo3_a_1 Bool) (moesi.usr.etat_mo4_a_1 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_1 Int) (moesi.usr.exclusive_mo_a_1 Int) (moesi.usr.shared_mo_a_1 Int) (moesi.usr.invalid_mo_a_1 Int) (moesi.usr.owned_mo_a_1 Int) (moesi.usr.erreur_mo_a_1 Bool) (moesi.res.init_flag_a_1 Bool) (moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= moesi.usr.invalid_mo_a_0 1))) (let ((X2 (>= (+ (- moesi.usr.shared_mo_a_0 1) moesi.usr.owned_mo_a_0) 1))) (let ((X3 (>= moesi.usr.exclusive_mo_a_0 1))) (let ((X4 (>= moesi.usr.invalid_mo_a_0 1))) (and (= moesi.usr.modified_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.modified_mo_a_0) moesi.usr.modified_mo_a_0))))) (= moesi.usr.invalid_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) moesi.usr.invalid_mo_a_0)))) (= moesi.usr.exclusive_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 1 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 1 moesi.usr.exclusive_mo_a_0) moesi.usr.exclusive_mo_a_0))))) (= moesi.usr.shared_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.shared_mo_a_0) moesi.usr.shared_mo_a_0)))) (= moesi.usr.owned_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.owned_mo_a_0) moesi.usr.owned_mo_a_0)))) (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) (not moesi.res.init_flag_a_1))))))) +(define-fun __node_init_top_0 ((top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_4_a_0)) (let ((X6 top.res.abs_7_a_0)) (and (= top.res.abs_8_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_moesi_0 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_1_a_0) (__node_init_excludes4_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.init_invalid_mo_a_1 Int) (top.usr.etat_mo1_a_1 Bool) (top.usr.etat_mo2_a_1 Bool) (top.usr.etat_mo3_a_1 Bool) (top.usr.etat_mo4_a_1 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_7_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8_a_0))) (= top.res.abs_8_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_moesi_0 top.usr.init_invalid_mo_a_1 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_2_a_1 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.inst_1_a_1 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_1_a_0) (__node_trans_excludes4_0 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_4)) (let ((X6 top.res.abs_7)) (and (= top.res.abs_8 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_moesi_0 top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_1) (__node_init_excludes4_0 top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.init_invalid_mo! Int) (top.usr.etat_mo1! Bool) (top.usr.etat_mo2! Bool) (top.usr.etat_mo3! Bool) (top.usr.etat_mo4! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_7!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8))) (= top.res.abs_8! (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_moesi_0 top.usr.init_invalid_mo! top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_2! top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_6! top.res.abs_7! top.res.inst_1! top.res.abs_6 top.res.abs_7 top.res.inst_1) (__node_trans_excludes4_0 top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.abs_6! top.res.inst_0! top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/MOESI_2_e2_1599_e8_1334.sl b/benchmarks/LIA/Lustre/MOESI_2_e2_1599_e8_1334.sl index 9e68400..69d1234 100644 --- a/benchmarks/LIA/Lustre/MOESI_2_e2_1599_e8_1334.sl +++ b/benchmarks/LIA/Lustre/MOESI_2_e2_1599_e8_1334.sl @@ -1,741 +1,36 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes4_0 ( - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_0 - (not - (or - (or - (or - (or - (and - (and - (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) - excludes4.usr.X1_a_0) - excludes4.usr.X3_a_0) - (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) - excludes4.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes4_0 ( - (excludes4.usr.X1_a_1 Bool) - (excludes4.usr.X2_a_1 Bool) - (excludes4.usr.X3_a_1 Bool) - (excludes4.usr.X4_a_1 Bool) - (excludes4.usr.excludes_a_1 Bool) - (excludes4.res.init_flag_a_1 Bool) - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_1 - (not - (or - (or - (or - (or - (and - (and - (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) - excludes4.usr.X1_a_1) - excludes4.usr.X3_a_1) - (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) - (not excludes4.res.init_flag_a_1)) -) - -(define-fun - __node_init_moesi_0 ( - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (and - (= moesi.usr.modified_mo_a_0 0) - (let - ((X1 Bool (let ((X1 Int moesi.res.nondet_0)) (>= X1 1)))) - (and - (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) - (= moesi.usr.exclusive_mo_a_0 0) - (let - ((X2 Bool (let ((X2 Int moesi.res.nondet_1)) (>= X2 1)))) - (let - ((X3 - Bool (let - ((X3 Int moesi.res.nondet_3) (X4 Int moesi.res.nondet_2)) - (>= (+ (- X4 1) X3) 1)))) - (and - (= moesi.usr.shared_mo_a_0 0) - (let - ((X4 Bool (let ((X4 Int moesi.res.nondet_4)) (>= X4 1)))) - (and - (= moesi.usr.owned_mo_a_0 0) - (= moesi.usr.erreur_mo_a_0 false) - moesi.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_moesi_0 ( - (moesi.usr.init_invalid_mo_a_1 Int) - (moesi.usr.etat_mo1_a_1 Bool) - (moesi.usr.etat_mo2_a_1 Bool) - (moesi.usr.etat_mo3_a_1 Bool) - (moesi.usr.etat_mo4_a_1 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_1 Int) - (moesi.usr.exclusive_mo_a_1 Int) - (moesi.usr.shared_mo_a_1 Int) - (moesi.usr.invalid_mo_a_1 Int) - (moesi.usr.owned_mo_a_1 Int) - (moesi.usr.erreur_mo_a_1 Bool) - (moesi.res.init_flag_a_1 Bool) - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (let - ((X2 Bool (>= (+ (- moesi.usr.shared_mo_a_0 1) moesi.usr.owned_mo_a_0) 1))) - (let - ((X3 Bool (>= moesi.usr.exclusive_mo_a_0 1))) - (let - ((X4 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (and - (= - moesi.usr.modified_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.modified_mo_a_0) - moesi.usr.modified_mo_a_0))))) - (= - moesi.usr.invalid_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite - X2 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite - X1 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - moesi.usr.invalid_mo_a_0)))) - (= - moesi.usr.exclusive_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 1 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 1 moesi.usr.exclusive_mo_a_0) - moesi.usr.exclusive_mo_a_0))))) - (= - moesi.usr.shared_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) - moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.shared_mo_a_0) - moesi.usr.shared_mo_a_0)))) - (= - moesi.usr.owned_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.owned_mo_a_0) - moesi.usr.owned_mo_a_0)))) - (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) - (not moesi.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Int top.res.abs_4_a_0)) - (let - ((X6 Bool top.res.abs_7_a_0)) - (and - (= top.res.abs_8_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_moesi_0 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_1_a_0) - (__node_init_excludes4_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.init_invalid_mo_a_1 Int) - (top.usr.etat_mo1_a_1 Bool) - (top.usr.etat_mo2_a_1 Bool) - (top.usr.etat_mo3_a_1 Bool) - (top.usr.etat_mo4_a_1 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_7_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8_a_0))) - (= top.res.abs_8_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_moesi_0 - top.usr.init_invalid_mo_a_1 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_2_a_1 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.inst_1_a_1 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes4_0 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.init_invalid_mo Int) -(declare-primed-var top.usr.etat_mo1 Bool) -(declare-primed-var top.usr.etat_mo2 Bool) -(declare-primed-var top.usr.etat_mo3 Bool) -(declare-primed-var top.usr.etat_mo4 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int top.res.abs_0)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Int top.res.abs_4)) - (let - ((X6 Bool top.res.abs_7)) - (and - (= top.res.abs_8 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_moesi_0 - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_1) - (__node_init_excludes4_0 - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.init_invalid_mo! Int) - (top.usr.etat_mo1! Bool) - (top.usr.etat_mo2! Bool) - (top.usr.etat_mo3! Bool) - (top.usr.etat_mo4! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Bool top.res.abs_7!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8))) - (= top.res.abs_8! (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_moesi_0 - top.usr.init_invalid_mo! - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_2! - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_6! - top.res.abs_7! - top.res.inst_1! - top.res.abs_6 - top.res.abs_7 - top.res.inst_1) - (__node_trans_excludes4_0 - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.abs_6! - top.res.inst_0! - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes4_0 ((excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_0 (not (or (or (or (or (and (and (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) excludes4.usr.X1_a_0) excludes4.usr.X3_a_0) (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) excludes4.res.init_flag_a_0)) +(define-fun __node_trans_excludes4_0 ((excludes4.usr.X1_a_1 Bool) (excludes4.usr.X2_a_1 Bool) (excludes4.usr.X3_a_1 Bool) (excludes4.usr.X4_a_1 Bool) (excludes4.usr.excludes_a_1 Bool) (excludes4.res.init_flag_a_1 Bool) (excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_1 (not (or (or (or (or (and (and (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) excludes4.usr.X1_a_1) excludes4.usr.X3_a_1) (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) (not excludes4.res.init_flag_a_1))) +(define-fun __node_init_moesi_0 ((moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (and (= moesi.usr.modified_mo_a_0 0) (let ((X1 (let ((X1 moesi.res.nondet_0)) (>= X1 1)))) (and (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) (= moesi.usr.exclusive_mo_a_0 0) (let ((X2 (let ((X2 moesi.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 moesi.res.nondet_3) (X4 moesi.res.nondet_2)) (>= (+ (- X4 1) X3) 1)))) (and (= moesi.usr.shared_mo_a_0 0) (let ((X4 (let ((X4 moesi.res.nondet_4)) (>= X4 1)))) (and (= moesi.usr.owned_mo_a_0 0) (= moesi.usr.erreur_mo_a_0 false) moesi.res.init_flag_a_0))))))))) +(define-fun __node_trans_moesi_0 ((moesi.usr.init_invalid_mo_a_1 Int) (moesi.usr.etat_mo1_a_1 Bool) (moesi.usr.etat_mo2_a_1 Bool) (moesi.usr.etat_mo3_a_1 Bool) (moesi.usr.etat_mo4_a_1 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_1 Int) (moesi.usr.exclusive_mo_a_1 Int) (moesi.usr.shared_mo_a_1 Int) (moesi.usr.invalid_mo_a_1 Int) (moesi.usr.owned_mo_a_1 Int) (moesi.usr.erreur_mo_a_1 Bool) (moesi.res.init_flag_a_1 Bool) (moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= moesi.usr.invalid_mo_a_0 1))) (let ((X2 (>= (+ (- moesi.usr.shared_mo_a_0 1) moesi.usr.owned_mo_a_0) 1))) (let ((X3 (>= moesi.usr.exclusive_mo_a_0 1))) (let ((X4 (>= moesi.usr.invalid_mo_a_0 1))) (and (= moesi.usr.modified_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.modified_mo_a_0) moesi.usr.modified_mo_a_0))))) (= moesi.usr.invalid_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) moesi.usr.invalid_mo_a_0)))) (= moesi.usr.exclusive_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 1 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 1 moesi.usr.exclusive_mo_a_0) moesi.usr.exclusive_mo_a_0))))) (= moesi.usr.shared_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.shared_mo_a_0) moesi.usr.shared_mo_a_0)))) (= moesi.usr.owned_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.owned_mo_a_0) moesi.usr.owned_mo_a_0)))) (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) (not moesi.res.init_flag_a_1))))))) +(define-fun __node_init_top_0 ((top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_4_a_0)) (let ((X6 top.res.abs_7_a_0)) (and (= top.res.abs_8_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_moesi_0 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_1_a_0) (__node_init_excludes4_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.init_invalid_mo_a_1 Int) (top.usr.etat_mo1_a_1 Bool) (top.usr.etat_mo2_a_1 Bool) (top.usr.etat_mo3_a_1 Bool) (top.usr.etat_mo4_a_1 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_7_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8_a_0))) (= top.res.abs_8_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_moesi_0 top.usr.init_invalid_mo_a_1 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_2_a_1 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.inst_1_a_1 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_1_a_0) (__node_trans_excludes4_0 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_4)) (let ((X6 top.res.abs_7)) (and (= top.res.abs_8 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_moesi_0 top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_1) (__node_init_excludes4_0 top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.init_invalid_mo! Int) (top.usr.etat_mo1! Bool) (top.usr.etat_mo2! Bool) (top.usr.etat_mo3! Bool) (top.usr.etat_mo4! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_7!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8))) (= top.res.abs_8! (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_moesi_0 top.usr.init_invalid_mo! top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_2! top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_6! top.res.abs_7! top.res.inst_1! top.res.abs_6 top.res.abs_7 top.res.inst_1) (__node_trans_excludes4_0 top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.abs_6! top.res.inst_0! top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/MOESI_2_e3_1523.sl b/benchmarks/LIA/Lustre/MOESI_2_e3_1523.sl index b24f21b..3a2831d 100644 --- a/benchmarks/LIA/Lustre/MOESI_2_e3_1523.sl +++ b/benchmarks/LIA/Lustre/MOESI_2_e3_1523.sl @@ -1,737 +1,36 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes4_0 ( - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_0 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) - (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) - excludes4.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes4_0 ( - (excludes4.usr.X1_a_1 Bool) - (excludes4.usr.X2_a_1 Bool) - (excludes4.usr.X3_a_1 Bool) - (excludes4.usr.X4_a_1 Bool) - (excludes4.usr.excludes_a_1 Bool) - (excludes4.res.init_flag_a_1 Bool) - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_1 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) - (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) - (not excludes4.res.init_flag_a_1)) -) - -(define-fun - __node_init_moesi_0 ( - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (and - (= moesi.usr.modified_mo_a_0 0) - (let - ((X1 Bool (let ((X1 Int moesi.res.nondet_0)) (>= X1 1)))) - (and - (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) - (= moesi.usr.exclusive_mo_a_0 0) - (let - ((X2 Bool (let ((X2 Int moesi.res.nondet_1)) (>= X2 1)))) - (let - ((X3 - Bool (let - ((X3 Int moesi.res.nondet_3) (X4 Int moesi.res.nondet_2)) - (>= (- X4 X3) 1)))) - (and - (= moesi.usr.shared_mo_a_0 0) - (let - ((X4 Bool (let ((X4 Int moesi.res.nondet_4)) (>= X4 1)))) - (and - (= moesi.usr.owned_mo_a_0 0) - (= moesi.usr.erreur_mo_a_0 false) - moesi.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_moesi_0 ( - (moesi.usr.init_invalid_mo_a_1 Int) - (moesi.usr.etat_mo1_a_1 Bool) - (moesi.usr.etat_mo2_a_1 Bool) - (moesi.usr.etat_mo3_a_1 Bool) - (moesi.usr.etat_mo4_a_1 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_1 Int) - (moesi.usr.exclusive_mo_a_1 Int) - (moesi.usr.shared_mo_a_1 Int) - (moesi.usr.invalid_mo_a_1 Int) - (moesi.usr.owned_mo_a_1 Int) - (moesi.usr.erreur_mo_a_1 Bool) - (moesi.res.init_flag_a_1 Bool) - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (let - ((X2 Bool (>= (- moesi.usr.shared_mo_a_0 moesi.usr.owned_mo_a_0) 1))) - (let - ((X3 Bool (>= moesi.usr.exclusive_mo_a_0 1))) - (let - ((X4 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (and - (= - moesi.usr.modified_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.modified_mo_a_0) - moesi.usr.modified_mo_a_0))))) - (= - moesi.usr.invalid_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite - X2 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite - X1 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - moesi.usr.invalid_mo_a_0)))) - (= - moesi.usr.exclusive_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 1 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 1 moesi.usr.exclusive_mo_a_0) - moesi.usr.exclusive_mo_a_0))))) - (= - moesi.usr.shared_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) - moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.shared_mo_a_0) - moesi.usr.shared_mo_a_0)))) - (= - moesi.usr.owned_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.owned_mo_a_0) - moesi.usr.owned_mo_a_0)))) - (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) - (not moesi.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Int top.res.abs_4_a_0)) - (let - ((X6 Bool top.res.abs_7_a_0)) - (and - (= top.res.abs_8_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_moesi_0 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_1_a_0) - (__node_init_excludes4_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.init_invalid_mo_a_1 Int) - (top.usr.etat_mo1_a_1 Bool) - (top.usr.etat_mo2_a_1 Bool) - (top.usr.etat_mo3_a_1 Bool) - (top.usr.etat_mo4_a_1 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_7_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8_a_0))) - (= top.res.abs_8_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_moesi_0 - top.usr.init_invalid_mo_a_1 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_2_a_1 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.inst_1_a_1 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes4_0 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.init_invalid_mo Int) -(declare-primed-var top.usr.etat_mo1 Bool) -(declare-primed-var top.usr.etat_mo2 Bool) -(declare-primed-var top.usr.etat_mo3 Bool) -(declare-primed-var top.usr.etat_mo4 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int top.res.abs_0)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Int top.res.abs_4)) - (let - ((X6 Bool top.res.abs_7)) - (and - (= top.res.abs_8 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_moesi_0 - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_1) - (__node_init_excludes4_0 - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.init_invalid_mo! Int) - (top.usr.etat_mo1! Bool) - (top.usr.etat_mo2! Bool) - (top.usr.etat_mo3! Bool) - (top.usr.etat_mo4! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Bool top.res.abs_7!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8))) - (= top.res.abs_8! (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_moesi_0 - top.usr.init_invalid_mo! - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_2! - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_6! - top.res.abs_7! - top.res.inst_1! - top.res.abs_6 - top.res.abs_7 - top.res.inst_1) - (__node_trans_excludes4_0 - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.abs_6! - top.res.inst_0! - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes4_0 ((excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_0 (not (or (or (or (or (or (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) excludes4.res.init_flag_a_0)) +(define-fun __node_trans_excludes4_0 ((excludes4.usr.X1_a_1 Bool) (excludes4.usr.X2_a_1 Bool) (excludes4.usr.X3_a_1 Bool) (excludes4.usr.X4_a_1 Bool) (excludes4.usr.excludes_a_1 Bool) (excludes4.res.init_flag_a_1 Bool) (excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_1 (not (or (or (or (or (or (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) (not excludes4.res.init_flag_a_1))) +(define-fun __node_init_moesi_0 ((moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (and (= moesi.usr.modified_mo_a_0 0) (let ((X1 (let ((X1 moesi.res.nondet_0)) (>= X1 1)))) (and (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) (= moesi.usr.exclusive_mo_a_0 0) (let ((X2 (let ((X2 moesi.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 moesi.res.nondet_3) (X4 moesi.res.nondet_2)) (>= (- X4 X3) 1)))) (and (= moesi.usr.shared_mo_a_0 0) (let ((X4 (let ((X4 moesi.res.nondet_4)) (>= X4 1)))) (and (= moesi.usr.owned_mo_a_0 0) (= moesi.usr.erreur_mo_a_0 false) moesi.res.init_flag_a_0))))))))) +(define-fun __node_trans_moesi_0 ((moesi.usr.init_invalid_mo_a_1 Int) (moesi.usr.etat_mo1_a_1 Bool) (moesi.usr.etat_mo2_a_1 Bool) (moesi.usr.etat_mo3_a_1 Bool) (moesi.usr.etat_mo4_a_1 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_1 Int) (moesi.usr.exclusive_mo_a_1 Int) (moesi.usr.shared_mo_a_1 Int) (moesi.usr.invalid_mo_a_1 Int) (moesi.usr.owned_mo_a_1 Int) (moesi.usr.erreur_mo_a_1 Bool) (moesi.res.init_flag_a_1 Bool) (moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= moesi.usr.invalid_mo_a_0 1))) (let ((X2 (>= (- moesi.usr.shared_mo_a_0 moesi.usr.owned_mo_a_0) 1))) (let ((X3 (>= moesi.usr.exclusive_mo_a_0 1))) (let ((X4 (>= moesi.usr.invalid_mo_a_0 1))) (and (= moesi.usr.modified_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.modified_mo_a_0) moesi.usr.modified_mo_a_0))))) (= moesi.usr.invalid_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) moesi.usr.invalid_mo_a_0)))) (= moesi.usr.exclusive_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 1 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 1 moesi.usr.exclusive_mo_a_0) moesi.usr.exclusive_mo_a_0))))) (= moesi.usr.shared_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.shared_mo_a_0) moesi.usr.shared_mo_a_0)))) (= moesi.usr.owned_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.owned_mo_a_0) moesi.usr.owned_mo_a_0)))) (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) (not moesi.res.init_flag_a_1))))))) +(define-fun __node_init_top_0 ((top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_4_a_0)) (let ((X6 top.res.abs_7_a_0)) (and (= top.res.abs_8_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_moesi_0 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_1_a_0) (__node_init_excludes4_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.init_invalid_mo_a_1 Int) (top.usr.etat_mo1_a_1 Bool) (top.usr.etat_mo2_a_1 Bool) (top.usr.etat_mo3_a_1 Bool) (top.usr.etat_mo4_a_1 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_7_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8_a_0))) (= top.res.abs_8_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_moesi_0 top.usr.init_invalid_mo_a_1 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_2_a_1 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.inst_1_a_1 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_1_a_0) (__node_trans_excludes4_0 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_4)) (let ((X6 top.res.abs_7)) (and (= top.res.abs_8 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_moesi_0 top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_1) (__node_init_excludes4_0 top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.init_invalid_mo! Int) (top.usr.etat_mo1! Bool) (top.usr.etat_mo2! Bool) (top.usr.etat_mo3! Bool) (top.usr.etat_mo4! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_7!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8))) (= top.res.abs_8! (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_moesi_0 top.usr.init_invalid_mo! top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_2! top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_6! top.res.abs_7! top.res.inst_1! top.res.abs_6 top.res.abs_7 top.res.inst_1) (__node_trans_excludes4_0 top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.abs_6! top.res.inst_0! top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/MOESI_2_e3_929.sl b/benchmarks/LIA/Lustre/MOESI_2_e3_929.sl index b24f21b..3a2831d 100644 --- a/benchmarks/LIA/Lustre/MOESI_2_e3_929.sl +++ b/benchmarks/LIA/Lustre/MOESI_2_e3_929.sl @@ -1,737 +1,36 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes4_0 ( - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_0 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) - (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) - excludes4.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes4_0 ( - (excludes4.usr.X1_a_1 Bool) - (excludes4.usr.X2_a_1 Bool) - (excludes4.usr.X3_a_1 Bool) - (excludes4.usr.X4_a_1 Bool) - (excludes4.usr.excludes_a_1 Bool) - (excludes4.res.init_flag_a_1 Bool) - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_1 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) - (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) - (not excludes4.res.init_flag_a_1)) -) - -(define-fun - __node_init_moesi_0 ( - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (and - (= moesi.usr.modified_mo_a_0 0) - (let - ((X1 Bool (let ((X1 Int moesi.res.nondet_0)) (>= X1 1)))) - (and - (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) - (= moesi.usr.exclusive_mo_a_0 0) - (let - ((X2 Bool (let ((X2 Int moesi.res.nondet_1)) (>= X2 1)))) - (let - ((X3 - Bool (let - ((X3 Int moesi.res.nondet_3) (X4 Int moesi.res.nondet_2)) - (>= (- X4 X3) 1)))) - (and - (= moesi.usr.shared_mo_a_0 0) - (let - ((X4 Bool (let ((X4 Int moesi.res.nondet_4)) (>= X4 1)))) - (and - (= moesi.usr.owned_mo_a_0 0) - (= moesi.usr.erreur_mo_a_0 false) - moesi.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_moesi_0 ( - (moesi.usr.init_invalid_mo_a_1 Int) - (moesi.usr.etat_mo1_a_1 Bool) - (moesi.usr.etat_mo2_a_1 Bool) - (moesi.usr.etat_mo3_a_1 Bool) - (moesi.usr.etat_mo4_a_1 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_1 Int) - (moesi.usr.exclusive_mo_a_1 Int) - (moesi.usr.shared_mo_a_1 Int) - (moesi.usr.invalid_mo_a_1 Int) - (moesi.usr.owned_mo_a_1 Int) - (moesi.usr.erreur_mo_a_1 Bool) - (moesi.res.init_flag_a_1 Bool) - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (let - ((X2 Bool (>= (- moesi.usr.shared_mo_a_0 moesi.usr.owned_mo_a_0) 1))) - (let - ((X3 Bool (>= moesi.usr.exclusive_mo_a_0 1))) - (let - ((X4 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (and - (= - moesi.usr.modified_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.modified_mo_a_0) - moesi.usr.modified_mo_a_0))))) - (= - moesi.usr.invalid_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite - X2 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite - X1 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - moesi.usr.invalid_mo_a_0)))) - (= - moesi.usr.exclusive_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 1 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 1 moesi.usr.exclusive_mo_a_0) - moesi.usr.exclusive_mo_a_0))))) - (= - moesi.usr.shared_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) - moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.shared_mo_a_0) - moesi.usr.shared_mo_a_0)))) - (= - moesi.usr.owned_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.owned_mo_a_0) - moesi.usr.owned_mo_a_0)))) - (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) - (not moesi.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Int top.res.abs_4_a_0)) - (let - ((X6 Bool top.res.abs_7_a_0)) - (and - (= top.res.abs_8_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_moesi_0 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_1_a_0) - (__node_init_excludes4_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.init_invalid_mo_a_1 Int) - (top.usr.etat_mo1_a_1 Bool) - (top.usr.etat_mo2_a_1 Bool) - (top.usr.etat_mo3_a_1 Bool) - (top.usr.etat_mo4_a_1 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_7_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8_a_0))) - (= top.res.abs_8_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_moesi_0 - top.usr.init_invalid_mo_a_1 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_2_a_1 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.inst_1_a_1 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes4_0 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.init_invalid_mo Int) -(declare-primed-var top.usr.etat_mo1 Bool) -(declare-primed-var top.usr.etat_mo2 Bool) -(declare-primed-var top.usr.etat_mo3 Bool) -(declare-primed-var top.usr.etat_mo4 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int top.res.abs_0)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Int top.res.abs_4)) - (let - ((X6 Bool top.res.abs_7)) - (and - (= top.res.abs_8 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_moesi_0 - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_1) - (__node_init_excludes4_0 - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.init_invalid_mo! Int) - (top.usr.etat_mo1! Bool) - (top.usr.etat_mo2! Bool) - (top.usr.etat_mo3! Bool) - (top.usr.etat_mo4! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Bool top.res.abs_7!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8))) - (= top.res.abs_8! (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_moesi_0 - top.usr.init_invalid_mo! - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_2! - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_6! - top.res.abs_7! - top.res.inst_1! - top.res.abs_6 - top.res.abs_7 - top.res.inst_1) - (__node_trans_excludes4_0 - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.abs_6! - top.res.inst_0! - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes4_0 ((excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_0 (not (or (or (or (or (or (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) excludes4.res.init_flag_a_0)) +(define-fun __node_trans_excludes4_0 ((excludes4.usr.X1_a_1 Bool) (excludes4.usr.X2_a_1 Bool) (excludes4.usr.X3_a_1 Bool) (excludes4.usr.X4_a_1 Bool) (excludes4.usr.excludes_a_1 Bool) (excludes4.res.init_flag_a_1 Bool) (excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_1 (not (or (or (or (or (or (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) (not excludes4.res.init_flag_a_1))) +(define-fun __node_init_moesi_0 ((moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (and (= moesi.usr.modified_mo_a_0 0) (let ((X1 (let ((X1 moesi.res.nondet_0)) (>= X1 1)))) (and (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) (= moesi.usr.exclusive_mo_a_0 0) (let ((X2 (let ((X2 moesi.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 moesi.res.nondet_3) (X4 moesi.res.nondet_2)) (>= (- X4 X3) 1)))) (and (= moesi.usr.shared_mo_a_0 0) (let ((X4 (let ((X4 moesi.res.nondet_4)) (>= X4 1)))) (and (= moesi.usr.owned_mo_a_0 0) (= moesi.usr.erreur_mo_a_0 false) moesi.res.init_flag_a_0))))))))) +(define-fun __node_trans_moesi_0 ((moesi.usr.init_invalid_mo_a_1 Int) (moesi.usr.etat_mo1_a_1 Bool) (moesi.usr.etat_mo2_a_1 Bool) (moesi.usr.etat_mo3_a_1 Bool) (moesi.usr.etat_mo4_a_1 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_1 Int) (moesi.usr.exclusive_mo_a_1 Int) (moesi.usr.shared_mo_a_1 Int) (moesi.usr.invalid_mo_a_1 Int) (moesi.usr.owned_mo_a_1 Int) (moesi.usr.erreur_mo_a_1 Bool) (moesi.res.init_flag_a_1 Bool) (moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= moesi.usr.invalid_mo_a_0 1))) (let ((X2 (>= (- moesi.usr.shared_mo_a_0 moesi.usr.owned_mo_a_0) 1))) (let ((X3 (>= moesi.usr.exclusive_mo_a_0 1))) (let ((X4 (>= moesi.usr.invalid_mo_a_0 1))) (and (= moesi.usr.modified_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.modified_mo_a_0) moesi.usr.modified_mo_a_0))))) (= moesi.usr.invalid_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) moesi.usr.invalid_mo_a_0)))) (= moesi.usr.exclusive_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 1 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 1 moesi.usr.exclusive_mo_a_0) moesi.usr.exclusive_mo_a_0))))) (= moesi.usr.shared_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.shared_mo_a_0) moesi.usr.shared_mo_a_0)))) (= moesi.usr.owned_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.owned_mo_a_0) moesi.usr.owned_mo_a_0)))) (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) (not moesi.res.init_flag_a_1))))))) +(define-fun __node_init_top_0 ((top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_4_a_0)) (let ((X6 top.res.abs_7_a_0)) (and (= top.res.abs_8_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_moesi_0 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_1_a_0) (__node_init_excludes4_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.init_invalid_mo_a_1 Int) (top.usr.etat_mo1_a_1 Bool) (top.usr.etat_mo2_a_1 Bool) (top.usr.etat_mo3_a_1 Bool) (top.usr.etat_mo4_a_1 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_7_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8_a_0))) (= top.res.abs_8_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_moesi_0 top.usr.init_invalid_mo_a_1 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_2_a_1 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.inst_1_a_1 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_1_a_0) (__node_trans_excludes4_0 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_4)) (let ((X6 top.res.abs_7)) (and (= top.res.abs_8 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_moesi_0 top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_1) (__node_init_excludes4_0 top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.init_invalid_mo! Int) (top.usr.etat_mo1! Bool) (top.usr.etat_mo2! Bool) (top.usr.etat_mo3! Bool) (top.usr.etat_mo4! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_7!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8))) (= top.res.abs_8! (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_moesi_0 top.usr.init_invalid_mo! top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_2! top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_6! top.res.abs_7! top.res.inst_1! top.res.abs_6 top.res.abs_7 top.res.inst_1) (__node_trans_excludes4_0 top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.abs_6! top.res.inst_0! top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/MOESI_2_e3_929_e4_578.sl b/benchmarks/LIA/Lustre/MOESI_2_e3_929_e4_578.sl index 1e05e2d..8192452 100644 --- a/benchmarks/LIA/Lustre/MOESI_2_e3_929_e4_578.sl +++ b/benchmarks/LIA/Lustre/MOESI_2_e3_929_e4_578.sl @@ -1,737 +1,36 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes4_0 ( - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_0 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) - (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) - excludes4.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes4_0 ( - (excludes4.usr.X1_a_1 Bool) - (excludes4.usr.X2_a_1 Bool) - (excludes4.usr.X3_a_1 Bool) - (excludes4.usr.X4_a_1 Bool) - (excludes4.usr.excludes_a_1 Bool) - (excludes4.res.init_flag_a_1 Bool) - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_1 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) - (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) - (not excludes4.res.init_flag_a_1)) -) - -(define-fun - __node_init_moesi_0 ( - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (and - (= moesi.usr.modified_mo_a_0 0) - (let - ((X1 Bool (let ((X1 Int moesi.res.nondet_0)) (>= X1 1)))) - (and - (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) - (= moesi.usr.exclusive_mo_a_0 0) - (let - ((X2 Bool (let ((X2 Int moesi.res.nondet_1)) (>= X2 1)))) - (let - ((X3 - Bool (let - ((X3 Int moesi.res.nondet_3) (X4 Int moesi.res.nondet_2)) - (>= (- (+ X4 1) X3) 1)))) - (and - (= moesi.usr.shared_mo_a_0 0) - (let - ((X4 Bool (let ((X4 Int moesi.res.nondet_4)) (>= X4 1)))) - (and - (= moesi.usr.owned_mo_a_0 0) - (= moesi.usr.erreur_mo_a_0 false) - moesi.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_moesi_0 ( - (moesi.usr.init_invalid_mo_a_1 Int) - (moesi.usr.etat_mo1_a_1 Bool) - (moesi.usr.etat_mo2_a_1 Bool) - (moesi.usr.etat_mo3_a_1 Bool) - (moesi.usr.etat_mo4_a_1 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_1 Int) - (moesi.usr.exclusive_mo_a_1 Int) - (moesi.usr.shared_mo_a_1 Int) - (moesi.usr.invalid_mo_a_1 Int) - (moesi.usr.owned_mo_a_1 Int) - (moesi.usr.erreur_mo_a_1 Bool) - (moesi.res.init_flag_a_1 Bool) - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (let - ((X2 Bool (>= (- (+ moesi.usr.shared_mo_a_0 1) moesi.usr.owned_mo_a_0) 1))) - (let - ((X3 Bool (>= moesi.usr.exclusive_mo_a_0 1))) - (let - ((X4 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (and - (= - moesi.usr.modified_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.modified_mo_a_0) - moesi.usr.modified_mo_a_0))))) - (= - moesi.usr.invalid_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite - X2 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite - X1 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - moesi.usr.invalid_mo_a_0)))) - (= - moesi.usr.exclusive_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 1 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 1 moesi.usr.exclusive_mo_a_0) - moesi.usr.exclusive_mo_a_0))))) - (= - moesi.usr.shared_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) - moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.shared_mo_a_0) - moesi.usr.shared_mo_a_0)))) - (= - moesi.usr.owned_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.owned_mo_a_0) - moesi.usr.owned_mo_a_0)))) - (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) - (not moesi.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Int top.res.abs_4_a_0)) - (let - ((X6 Bool top.res.abs_7_a_0)) - (and - (= top.res.abs_8_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_moesi_0 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_1_a_0) - (__node_init_excludes4_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.init_invalid_mo_a_1 Int) - (top.usr.etat_mo1_a_1 Bool) - (top.usr.etat_mo2_a_1 Bool) - (top.usr.etat_mo3_a_1 Bool) - (top.usr.etat_mo4_a_1 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_7_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8_a_0))) - (= top.res.abs_8_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_moesi_0 - top.usr.init_invalid_mo_a_1 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_2_a_1 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.inst_1_a_1 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes4_0 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.init_invalid_mo Int) -(declare-primed-var top.usr.etat_mo1 Bool) -(declare-primed-var top.usr.etat_mo2 Bool) -(declare-primed-var top.usr.etat_mo3 Bool) -(declare-primed-var top.usr.etat_mo4 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int top.res.abs_0)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Int top.res.abs_4)) - (let - ((X6 Bool top.res.abs_7)) - (and - (= top.res.abs_8 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_moesi_0 - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_1) - (__node_init_excludes4_0 - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.init_invalid_mo! Int) - (top.usr.etat_mo1! Bool) - (top.usr.etat_mo2! Bool) - (top.usr.etat_mo3! Bool) - (top.usr.etat_mo4! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Bool top.res.abs_7!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8))) - (= top.res.abs_8! (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_moesi_0 - top.usr.init_invalid_mo! - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_2! - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_6! - top.res.abs_7! - top.res.inst_1! - top.res.abs_6 - top.res.abs_7 - top.res.inst_1) - (__node_trans_excludes4_0 - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.abs_6! - top.res.inst_0! - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes4_0 ((excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_0 (not (or (or (or (or (or (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) excludes4.res.init_flag_a_0)) +(define-fun __node_trans_excludes4_0 ((excludes4.usr.X1_a_1 Bool) (excludes4.usr.X2_a_1 Bool) (excludes4.usr.X3_a_1 Bool) (excludes4.usr.X4_a_1 Bool) (excludes4.usr.excludes_a_1 Bool) (excludes4.res.init_flag_a_1 Bool) (excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_1 (not (or (or (or (or (or (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) (not excludes4.res.init_flag_a_1))) +(define-fun __node_init_moesi_0 ((moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (and (= moesi.usr.modified_mo_a_0 0) (let ((X1 (let ((X1 moesi.res.nondet_0)) (>= X1 1)))) (and (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) (= moesi.usr.exclusive_mo_a_0 0) (let ((X2 (let ((X2 moesi.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 moesi.res.nondet_3) (X4 moesi.res.nondet_2)) (>= (- (+ X4 1) X3) 1)))) (and (= moesi.usr.shared_mo_a_0 0) (let ((X4 (let ((X4 moesi.res.nondet_4)) (>= X4 1)))) (and (= moesi.usr.owned_mo_a_0 0) (= moesi.usr.erreur_mo_a_0 false) moesi.res.init_flag_a_0))))))))) +(define-fun __node_trans_moesi_0 ((moesi.usr.init_invalid_mo_a_1 Int) (moesi.usr.etat_mo1_a_1 Bool) (moesi.usr.etat_mo2_a_1 Bool) (moesi.usr.etat_mo3_a_1 Bool) (moesi.usr.etat_mo4_a_1 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_1 Int) (moesi.usr.exclusive_mo_a_1 Int) (moesi.usr.shared_mo_a_1 Int) (moesi.usr.invalid_mo_a_1 Int) (moesi.usr.owned_mo_a_1 Int) (moesi.usr.erreur_mo_a_1 Bool) (moesi.res.init_flag_a_1 Bool) (moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= moesi.usr.invalid_mo_a_0 1))) (let ((X2 (>= (- (+ moesi.usr.shared_mo_a_0 1) moesi.usr.owned_mo_a_0) 1))) (let ((X3 (>= moesi.usr.exclusive_mo_a_0 1))) (let ((X4 (>= moesi.usr.invalid_mo_a_0 1))) (and (= moesi.usr.modified_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.modified_mo_a_0) moesi.usr.modified_mo_a_0))))) (= moesi.usr.invalid_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) moesi.usr.invalid_mo_a_0)))) (= moesi.usr.exclusive_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 1 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 1 moesi.usr.exclusive_mo_a_0) moesi.usr.exclusive_mo_a_0))))) (= moesi.usr.shared_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.shared_mo_a_0) moesi.usr.shared_mo_a_0)))) (= moesi.usr.owned_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.owned_mo_a_0) moesi.usr.owned_mo_a_0)))) (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) (not moesi.res.init_flag_a_1))))))) +(define-fun __node_init_top_0 ((top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_4_a_0)) (let ((X6 top.res.abs_7_a_0)) (and (= top.res.abs_8_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_moesi_0 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_1_a_0) (__node_init_excludes4_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.init_invalid_mo_a_1 Int) (top.usr.etat_mo1_a_1 Bool) (top.usr.etat_mo2_a_1 Bool) (top.usr.etat_mo3_a_1 Bool) (top.usr.etat_mo4_a_1 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_7_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8_a_0))) (= top.res.abs_8_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_moesi_0 top.usr.init_invalid_mo_a_1 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_2_a_1 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.inst_1_a_1 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_1_a_0) (__node_trans_excludes4_0 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_4)) (let ((X6 top.res.abs_7)) (and (= top.res.abs_8 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_moesi_0 top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_1) (__node_init_excludes4_0 top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.init_invalid_mo! Int) (top.usr.etat_mo1! Bool) (top.usr.etat_mo2! Bool) (top.usr.etat_mo3! Bool) (top.usr.etat_mo4! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_7!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8))) (= top.res.abs_8! (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_moesi_0 top.usr.init_invalid_mo! top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_2! top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_6! top.res.abs_7! top.res.inst_1! top.res.abs_6 top.res.abs_7 top.res.inst_1) (__node_trans_excludes4_0 top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.abs_6! top.res.inst_0! top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/MOESI_2_e3_929_e5_1826.sl b/benchmarks/LIA/Lustre/MOESI_2_e3_929_e5_1826.sl index 2f3d28b..ed39d8a 100644 --- a/benchmarks/LIA/Lustre/MOESI_2_e3_929_e5_1826.sl +++ b/benchmarks/LIA/Lustre/MOESI_2_e3_929_e5_1826.sl @@ -1,737 +1,36 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes4_0 ( - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_0 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) - (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) - excludes4.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes4_0 ( - (excludes4.usr.X1_a_1 Bool) - (excludes4.usr.X2_a_1 Bool) - (excludes4.usr.X3_a_1 Bool) - (excludes4.usr.X4_a_1 Bool) - (excludes4.usr.excludes_a_1 Bool) - (excludes4.res.init_flag_a_1 Bool) - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_1 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) - (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) - (not excludes4.res.init_flag_a_1)) -) - -(define-fun - __node_init_moesi_0 ( - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (and - (= moesi.usr.modified_mo_a_0 0) - (let - ((X1 Bool (let ((X1 Int moesi.res.nondet_0)) (>= X1 1)))) - (and - (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) - (= moesi.usr.exclusive_mo_a_0 0) - (let - ((X2 Bool (let ((X2 Int moesi.res.nondet_1)) (>= X2 1)))) - (let - ((X3 - Bool (let - ((X3 Int moesi.res.nondet_3) (X4 Int moesi.res.nondet_2)) - (>= (- (- X4 1) X3) 1)))) - (and - (= moesi.usr.shared_mo_a_0 0) - (let - ((X4 Bool (let ((X4 Int moesi.res.nondet_4)) (>= X4 1)))) - (and - (= moesi.usr.owned_mo_a_0 0) - (= moesi.usr.erreur_mo_a_0 false) - moesi.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_moesi_0 ( - (moesi.usr.init_invalid_mo_a_1 Int) - (moesi.usr.etat_mo1_a_1 Bool) - (moesi.usr.etat_mo2_a_1 Bool) - (moesi.usr.etat_mo3_a_1 Bool) - (moesi.usr.etat_mo4_a_1 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_1 Int) - (moesi.usr.exclusive_mo_a_1 Int) - (moesi.usr.shared_mo_a_1 Int) - (moesi.usr.invalid_mo_a_1 Int) - (moesi.usr.owned_mo_a_1 Int) - (moesi.usr.erreur_mo_a_1 Bool) - (moesi.res.init_flag_a_1 Bool) - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (let - ((X2 Bool (>= (- (- moesi.usr.shared_mo_a_0 1) moesi.usr.owned_mo_a_0) 1))) - (let - ((X3 Bool (>= moesi.usr.exclusive_mo_a_0 1))) - (let - ((X4 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (and - (= - moesi.usr.modified_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.modified_mo_a_0) - moesi.usr.modified_mo_a_0))))) - (= - moesi.usr.invalid_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite - X2 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite - X1 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - moesi.usr.invalid_mo_a_0)))) - (= - moesi.usr.exclusive_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 1 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 1 moesi.usr.exclusive_mo_a_0) - moesi.usr.exclusive_mo_a_0))))) - (= - moesi.usr.shared_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) - moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.shared_mo_a_0) - moesi.usr.shared_mo_a_0)))) - (= - moesi.usr.owned_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.owned_mo_a_0) - moesi.usr.owned_mo_a_0)))) - (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) - (not moesi.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Int top.res.abs_4_a_0)) - (let - ((X6 Bool top.res.abs_7_a_0)) - (and - (= top.res.abs_8_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_moesi_0 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_1_a_0) - (__node_init_excludes4_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.init_invalid_mo_a_1 Int) - (top.usr.etat_mo1_a_1 Bool) - (top.usr.etat_mo2_a_1 Bool) - (top.usr.etat_mo3_a_1 Bool) - (top.usr.etat_mo4_a_1 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_7_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8_a_0))) - (= top.res.abs_8_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_moesi_0 - top.usr.init_invalid_mo_a_1 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_2_a_1 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.inst_1_a_1 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes4_0 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.init_invalid_mo Int) -(declare-primed-var top.usr.etat_mo1 Bool) -(declare-primed-var top.usr.etat_mo2 Bool) -(declare-primed-var top.usr.etat_mo3 Bool) -(declare-primed-var top.usr.etat_mo4 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int top.res.abs_0)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Int top.res.abs_4)) - (let - ((X6 Bool top.res.abs_7)) - (and - (= top.res.abs_8 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_moesi_0 - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_1) - (__node_init_excludes4_0 - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.init_invalid_mo! Int) - (top.usr.etat_mo1! Bool) - (top.usr.etat_mo2! Bool) - (top.usr.etat_mo3! Bool) - (top.usr.etat_mo4! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Bool top.res.abs_7!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8))) - (= top.res.abs_8! (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_moesi_0 - top.usr.init_invalid_mo! - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_2! - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_6! - top.res.abs_7! - top.res.inst_1! - top.res.abs_6 - top.res.abs_7 - top.res.inst_1) - (__node_trans_excludes4_0 - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.abs_6! - top.res.inst_0! - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes4_0 ((excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_0 (not (or (or (or (or (or (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) excludes4.res.init_flag_a_0)) +(define-fun __node_trans_excludes4_0 ((excludes4.usr.X1_a_1 Bool) (excludes4.usr.X2_a_1 Bool) (excludes4.usr.X3_a_1 Bool) (excludes4.usr.X4_a_1 Bool) (excludes4.usr.excludes_a_1 Bool) (excludes4.res.init_flag_a_1 Bool) (excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_1 (not (or (or (or (or (or (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) (not excludes4.res.init_flag_a_1))) +(define-fun __node_init_moesi_0 ((moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (and (= moesi.usr.modified_mo_a_0 0) (let ((X1 (let ((X1 moesi.res.nondet_0)) (>= X1 1)))) (and (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) (= moesi.usr.exclusive_mo_a_0 0) (let ((X2 (let ((X2 moesi.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 moesi.res.nondet_3) (X4 moesi.res.nondet_2)) (>= (- (- X4 1) X3) 1)))) (and (= moesi.usr.shared_mo_a_0 0) (let ((X4 (let ((X4 moesi.res.nondet_4)) (>= X4 1)))) (and (= moesi.usr.owned_mo_a_0 0) (= moesi.usr.erreur_mo_a_0 false) moesi.res.init_flag_a_0))))))))) +(define-fun __node_trans_moesi_0 ((moesi.usr.init_invalid_mo_a_1 Int) (moesi.usr.etat_mo1_a_1 Bool) (moesi.usr.etat_mo2_a_1 Bool) (moesi.usr.etat_mo3_a_1 Bool) (moesi.usr.etat_mo4_a_1 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_1 Int) (moesi.usr.exclusive_mo_a_1 Int) (moesi.usr.shared_mo_a_1 Int) (moesi.usr.invalid_mo_a_1 Int) (moesi.usr.owned_mo_a_1 Int) (moesi.usr.erreur_mo_a_1 Bool) (moesi.res.init_flag_a_1 Bool) (moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= moesi.usr.invalid_mo_a_0 1))) (let ((X2 (>= (- (- moesi.usr.shared_mo_a_0 1) moesi.usr.owned_mo_a_0) 1))) (let ((X3 (>= moesi.usr.exclusive_mo_a_0 1))) (let ((X4 (>= moesi.usr.invalid_mo_a_0 1))) (and (= moesi.usr.modified_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.modified_mo_a_0) moesi.usr.modified_mo_a_0))))) (= moesi.usr.invalid_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) moesi.usr.invalid_mo_a_0)))) (= moesi.usr.exclusive_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 1 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 1 moesi.usr.exclusive_mo_a_0) moesi.usr.exclusive_mo_a_0))))) (= moesi.usr.shared_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.shared_mo_a_0) moesi.usr.shared_mo_a_0)))) (= moesi.usr.owned_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.owned_mo_a_0) moesi.usr.owned_mo_a_0)))) (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) (not moesi.res.init_flag_a_1))))))) +(define-fun __node_init_top_0 ((top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_4_a_0)) (let ((X6 top.res.abs_7_a_0)) (and (= top.res.abs_8_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_moesi_0 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_1_a_0) (__node_init_excludes4_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.init_invalid_mo_a_1 Int) (top.usr.etat_mo1_a_1 Bool) (top.usr.etat_mo2_a_1 Bool) (top.usr.etat_mo3_a_1 Bool) (top.usr.etat_mo4_a_1 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_7_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8_a_0))) (= top.res.abs_8_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_moesi_0 top.usr.init_invalid_mo_a_1 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_2_a_1 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.inst_1_a_1 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_1_a_0) (__node_trans_excludes4_0 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_4)) (let ((X6 top.res.abs_7)) (and (= top.res.abs_8 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_moesi_0 top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_1) (__node_init_excludes4_0 top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.init_invalid_mo! Int) (top.usr.etat_mo1! Bool) (top.usr.etat_mo2! Bool) (top.usr.etat_mo3! Bool) (top.usr.etat_mo4! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_7!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8))) (= top.res.abs_8! (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_moesi_0 top.usr.init_invalid_mo! top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_2! top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_6! top.res.abs_7! top.res.inst_1! top.res.abs_6 top.res.abs_7 top.res.inst_1) (__node_trans_excludes4_0 top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.abs_6! top.res.inst_0! top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/MOESI_2_e3_929_e6_2707.sl b/benchmarks/LIA/Lustre/MOESI_2_e3_929_e6_2707.sl index ede70a3..f8b74ae 100644 --- a/benchmarks/LIA/Lustre/MOESI_2_e3_929_e6_2707.sl +++ b/benchmarks/LIA/Lustre/MOESI_2_e3_929_e6_2707.sl @@ -1,737 +1,36 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes4_0 ( - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_0 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) - (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) - excludes4.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes4_0 ( - (excludes4.usr.X1_a_1 Bool) - (excludes4.usr.X2_a_1 Bool) - (excludes4.usr.X3_a_1 Bool) - (excludes4.usr.X4_a_1 Bool) - (excludes4.usr.excludes_a_1 Bool) - (excludes4.res.init_flag_a_1 Bool) - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_1 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) - (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) - (not excludes4.res.init_flag_a_1)) -) - -(define-fun - __node_init_moesi_0 ( - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (and - (= moesi.usr.modified_mo_a_0 0) - (let - ((X1 Bool (let ((X1 Int moesi.res.nondet_0)) (>= X1 1)))) - (and - (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) - (= moesi.usr.exclusive_mo_a_0 0) - (let - ((X2 Bool (let ((X2 Int moesi.res.nondet_1)) (>= X2 1)))) - (let - ((X3 - Bool (let - ((X3 Int moesi.res.nondet_3) (X4 Int moesi.res.nondet_2)) - (>= (+ X4 X3) 1)))) - (and - (= moesi.usr.shared_mo_a_0 0) - (let - ((X4 Bool (let ((X4 Int moesi.res.nondet_4)) (>= X4 1)))) - (and - (= moesi.usr.owned_mo_a_0 0) - (= moesi.usr.erreur_mo_a_0 false) - moesi.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_moesi_0 ( - (moesi.usr.init_invalid_mo_a_1 Int) - (moesi.usr.etat_mo1_a_1 Bool) - (moesi.usr.etat_mo2_a_1 Bool) - (moesi.usr.etat_mo3_a_1 Bool) - (moesi.usr.etat_mo4_a_1 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_1 Int) - (moesi.usr.exclusive_mo_a_1 Int) - (moesi.usr.shared_mo_a_1 Int) - (moesi.usr.invalid_mo_a_1 Int) - (moesi.usr.owned_mo_a_1 Int) - (moesi.usr.erreur_mo_a_1 Bool) - (moesi.res.init_flag_a_1 Bool) - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (let - ((X2 Bool (>= (+ moesi.usr.shared_mo_a_0 moesi.usr.owned_mo_a_0) 1))) - (let - ((X3 Bool (>= moesi.usr.exclusive_mo_a_0 1))) - (let - ((X4 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (and - (= - moesi.usr.modified_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.modified_mo_a_0) - moesi.usr.modified_mo_a_0))))) - (= - moesi.usr.invalid_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite - X2 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite - X1 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - moesi.usr.invalid_mo_a_0)))) - (= - moesi.usr.exclusive_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 1 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 1 moesi.usr.exclusive_mo_a_0) - moesi.usr.exclusive_mo_a_0))))) - (= - moesi.usr.shared_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) - moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.shared_mo_a_0) - moesi.usr.shared_mo_a_0)))) - (= - moesi.usr.owned_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.owned_mo_a_0) - moesi.usr.owned_mo_a_0)))) - (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) - (not moesi.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Int top.res.abs_4_a_0)) - (let - ((X6 Bool top.res.abs_7_a_0)) - (and - (= top.res.abs_8_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_moesi_0 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_1_a_0) - (__node_init_excludes4_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.init_invalid_mo_a_1 Int) - (top.usr.etat_mo1_a_1 Bool) - (top.usr.etat_mo2_a_1 Bool) - (top.usr.etat_mo3_a_1 Bool) - (top.usr.etat_mo4_a_1 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_7_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8_a_0))) - (= top.res.abs_8_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_moesi_0 - top.usr.init_invalid_mo_a_1 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_2_a_1 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.inst_1_a_1 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes4_0 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.init_invalid_mo Int) -(declare-primed-var top.usr.etat_mo1 Bool) -(declare-primed-var top.usr.etat_mo2 Bool) -(declare-primed-var top.usr.etat_mo3 Bool) -(declare-primed-var top.usr.etat_mo4 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int top.res.abs_0)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Int top.res.abs_4)) - (let - ((X6 Bool top.res.abs_7)) - (and - (= top.res.abs_8 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_moesi_0 - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_1) - (__node_init_excludes4_0 - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.init_invalid_mo! Int) - (top.usr.etat_mo1! Bool) - (top.usr.etat_mo2! Bool) - (top.usr.etat_mo3! Bool) - (top.usr.etat_mo4! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Bool top.res.abs_7!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8))) - (= top.res.abs_8! (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_moesi_0 - top.usr.init_invalid_mo! - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_2! - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_6! - top.res.abs_7! - top.res.inst_1! - top.res.abs_6 - top.res.abs_7 - top.res.inst_1) - (__node_trans_excludes4_0 - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.abs_6! - top.res.inst_0! - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes4_0 ((excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_0 (not (or (or (or (or (or (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) excludes4.res.init_flag_a_0)) +(define-fun __node_trans_excludes4_0 ((excludes4.usr.X1_a_1 Bool) (excludes4.usr.X2_a_1 Bool) (excludes4.usr.X3_a_1 Bool) (excludes4.usr.X4_a_1 Bool) (excludes4.usr.excludes_a_1 Bool) (excludes4.res.init_flag_a_1 Bool) (excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_1 (not (or (or (or (or (or (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) (not excludes4.res.init_flag_a_1))) +(define-fun __node_init_moesi_0 ((moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (and (= moesi.usr.modified_mo_a_0 0) (let ((X1 (let ((X1 moesi.res.nondet_0)) (>= X1 1)))) (and (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) (= moesi.usr.exclusive_mo_a_0 0) (let ((X2 (let ((X2 moesi.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 moesi.res.nondet_3) (X4 moesi.res.nondet_2)) (>= (+ X4 X3) 1)))) (and (= moesi.usr.shared_mo_a_0 0) (let ((X4 (let ((X4 moesi.res.nondet_4)) (>= X4 1)))) (and (= moesi.usr.owned_mo_a_0 0) (= moesi.usr.erreur_mo_a_0 false) moesi.res.init_flag_a_0))))))))) +(define-fun __node_trans_moesi_0 ((moesi.usr.init_invalid_mo_a_1 Int) (moesi.usr.etat_mo1_a_1 Bool) (moesi.usr.etat_mo2_a_1 Bool) (moesi.usr.etat_mo3_a_1 Bool) (moesi.usr.etat_mo4_a_1 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_1 Int) (moesi.usr.exclusive_mo_a_1 Int) (moesi.usr.shared_mo_a_1 Int) (moesi.usr.invalid_mo_a_1 Int) (moesi.usr.owned_mo_a_1 Int) (moesi.usr.erreur_mo_a_1 Bool) (moesi.res.init_flag_a_1 Bool) (moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= moesi.usr.invalid_mo_a_0 1))) (let ((X2 (>= (+ moesi.usr.shared_mo_a_0 moesi.usr.owned_mo_a_0) 1))) (let ((X3 (>= moesi.usr.exclusive_mo_a_0 1))) (let ((X4 (>= moesi.usr.invalid_mo_a_0 1))) (and (= moesi.usr.modified_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.modified_mo_a_0) moesi.usr.modified_mo_a_0))))) (= moesi.usr.invalid_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) moesi.usr.invalid_mo_a_0)))) (= moesi.usr.exclusive_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 1 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 1 moesi.usr.exclusive_mo_a_0) moesi.usr.exclusive_mo_a_0))))) (= moesi.usr.shared_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.shared_mo_a_0) moesi.usr.shared_mo_a_0)))) (= moesi.usr.owned_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.owned_mo_a_0) moesi.usr.owned_mo_a_0)))) (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) (not moesi.res.init_flag_a_1))))))) +(define-fun __node_init_top_0 ((top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_4_a_0)) (let ((X6 top.res.abs_7_a_0)) (and (= top.res.abs_8_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_moesi_0 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_1_a_0) (__node_init_excludes4_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.init_invalid_mo_a_1 Int) (top.usr.etat_mo1_a_1 Bool) (top.usr.etat_mo2_a_1 Bool) (top.usr.etat_mo3_a_1 Bool) (top.usr.etat_mo4_a_1 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_7_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8_a_0))) (= top.res.abs_8_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_moesi_0 top.usr.init_invalid_mo_a_1 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_2_a_1 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.inst_1_a_1 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_1_a_0) (__node_trans_excludes4_0 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_4)) (let ((X6 top.res.abs_7)) (and (= top.res.abs_8 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_moesi_0 top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_1) (__node_init_excludes4_0 top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.init_invalid_mo! Int) (top.usr.etat_mo1! Bool) (top.usr.etat_mo2! Bool) (top.usr.etat_mo3! Bool) (top.usr.etat_mo4! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_7!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8))) (= top.res.abs_8! (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_moesi_0 top.usr.init_invalid_mo! top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_2! top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_6! top.res.abs_7! top.res.inst_1! top.res.abs_6 top.res.abs_7 top.res.inst_1) (__node_trans_excludes4_0 top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.abs_6! top.res.inst_0! top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/MOESI_2_e3_929_e8_1167.sl b/benchmarks/LIA/Lustre/MOESI_2_e3_929_e8_1167.sl index 1172df0..d3cd1bc 100644 --- a/benchmarks/LIA/Lustre/MOESI_2_e3_929_e8_1167.sl +++ b/benchmarks/LIA/Lustre/MOESI_2_e3_929_e8_1167.sl @@ -1,741 +1,36 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes4_0 ( - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_0 - (not - (or - (or - (or - (or - (and - (and - (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) - excludes4.usr.X1_a_0) - excludes4.usr.X3_a_0) - (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) - excludes4.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes4_0 ( - (excludes4.usr.X1_a_1 Bool) - (excludes4.usr.X2_a_1 Bool) - (excludes4.usr.X3_a_1 Bool) - (excludes4.usr.X4_a_1 Bool) - (excludes4.usr.excludes_a_1 Bool) - (excludes4.res.init_flag_a_1 Bool) - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_1 - (not - (or - (or - (or - (or - (and - (and - (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) - excludes4.usr.X1_a_1) - excludes4.usr.X3_a_1) - (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) - (not excludes4.res.init_flag_a_1)) -) - -(define-fun - __node_init_moesi_0 ( - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (and - (= moesi.usr.modified_mo_a_0 0) - (let - ((X1 Bool (let ((X1 Int moesi.res.nondet_0)) (>= X1 1)))) - (and - (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) - (= moesi.usr.exclusive_mo_a_0 0) - (let - ((X2 Bool (let ((X2 Int moesi.res.nondet_1)) (>= X2 1)))) - (let - ((X3 - Bool (let - ((X3 Int moesi.res.nondet_3) (X4 Int moesi.res.nondet_2)) - (>= (- X4 X3) 1)))) - (and - (= moesi.usr.shared_mo_a_0 0) - (let - ((X4 Bool (let ((X4 Int moesi.res.nondet_4)) (>= X4 1)))) - (and - (= moesi.usr.owned_mo_a_0 0) - (= moesi.usr.erreur_mo_a_0 false) - moesi.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_moesi_0 ( - (moesi.usr.init_invalid_mo_a_1 Int) - (moesi.usr.etat_mo1_a_1 Bool) - (moesi.usr.etat_mo2_a_1 Bool) - (moesi.usr.etat_mo3_a_1 Bool) - (moesi.usr.etat_mo4_a_1 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_1 Int) - (moesi.usr.exclusive_mo_a_1 Int) - (moesi.usr.shared_mo_a_1 Int) - (moesi.usr.invalid_mo_a_1 Int) - (moesi.usr.owned_mo_a_1 Int) - (moesi.usr.erreur_mo_a_1 Bool) - (moesi.res.init_flag_a_1 Bool) - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (let - ((X2 Bool (>= (- moesi.usr.shared_mo_a_0 moesi.usr.owned_mo_a_0) 1))) - (let - ((X3 Bool (>= moesi.usr.exclusive_mo_a_0 1))) - (let - ((X4 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (and - (= - moesi.usr.modified_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.modified_mo_a_0) - moesi.usr.modified_mo_a_0))))) - (= - moesi.usr.invalid_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite - X2 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite - X1 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - moesi.usr.invalid_mo_a_0)))) - (= - moesi.usr.exclusive_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 1 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 1 moesi.usr.exclusive_mo_a_0) - moesi.usr.exclusive_mo_a_0))))) - (= - moesi.usr.shared_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) - moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.shared_mo_a_0) - moesi.usr.shared_mo_a_0)))) - (= - moesi.usr.owned_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.owned_mo_a_0) - moesi.usr.owned_mo_a_0)))) - (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) - (not moesi.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Int top.res.abs_4_a_0)) - (let - ((X6 Bool top.res.abs_7_a_0)) - (and - (= top.res.abs_8_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_moesi_0 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_1_a_0) - (__node_init_excludes4_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.init_invalid_mo_a_1 Int) - (top.usr.etat_mo1_a_1 Bool) - (top.usr.etat_mo2_a_1 Bool) - (top.usr.etat_mo3_a_1 Bool) - (top.usr.etat_mo4_a_1 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_7_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8_a_0))) - (= top.res.abs_8_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_moesi_0 - top.usr.init_invalid_mo_a_1 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_2_a_1 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.inst_1_a_1 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes4_0 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.init_invalid_mo Int) -(declare-primed-var top.usr.etat_mo1 Bool) -(declare-primed-var top.usr.etat_mo2 Bool) -(declare-primed-var top.usr.etat_mo3 Bool) -(declare-primed-var top.usr.etat_mo4 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int top.res.abs_0)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Int top.res.abs_4)) - (let - ((X6 Bool top.res.abs_7)) - (and - (= top.res.abs_8 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_moesi_0 - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_1) - (__node_init_excludes4_0 - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.init_invalid_mo! Int) - (top.usr.etat_mo1! Bool) - (top.usr.etat_mo2! Bool) - (top.usr.etat_mo3! Bool) - (top.usr.etat_mo4! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Bool top.res.abs_7!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8))) - (= top.res.abs_8! (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_moesi_0 - top.usr.init_invalid_mo! - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_2! - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_6! - top.res.abs_7! - top.res.inst_1! - top.res.abs_6 - top.res.abs_7 - top.res.inst_1) - (__node_trans_excludes4_0 - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.abs_6! - top.res.inst_0! - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes4_0 ((excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_0 (not (or (or (or (or (and (and (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) excludes4.usr.X1_a_0) excludes4.usr.X3_a_0) (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) excludes4.res.init_flag_a_0)) +(define-fun __node_trans_excludes4_0 ((excludes4.usr.X1_a_1 Bool) (excludes4.usr.X2_a_1 Bool) (excludes4.usr.X3_a_1 Bool) (excludes4.usr.X4_a_1 Bool) (excludes4.usr.excludes_a_1 Bool) (excludes4.res.init_flag_a_1 Bool) (excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_1 (not (or (or (or (or (and (and (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) excludes4.usr.X1_a_1) excludes4.usr.X3_a_1) (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) (not excludes4.res.init_flag_a_1))) +(define-fun __node_init_moesi_0 ((moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (and (= moesi.usr.modified_mo_a_0 0) (let ((X1 (let ((X1 moesi.res.nondet_0)) (>= X1 1)))) (and (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) (= moesi.usr.exclusive_mo_a_0 0) (let ((X2 (let ((X2 moesi.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 moesi.res.nondet_3) (X4 moesi.res.nondet_2)) (>= (- X4 X3) 1)))) (and (= moesi.usr.shared_mo_a_0 0) (let ((X4 (let ((X4 moesi.res.nondet_4)) (>= X4 1)))) (and (= moesi.usr.owned_mo_a_0 0) (= moesi.usr.erreur_mo_a_0 false) moesi.res.init_flag_a_0))))))))) +(define-fun __node_trans_moesi_0 ((moesi.usr.init_invalid_mo_a_1 Int) (moesi.usr.etat_mo1_a_1 Bool) (moesi.usr.etat_mo2_a_1 Bool) (moesi.usr.etat_mo3_a_1 Bool) (moesi.usr.etat_mo4_a_1 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_1 Int) (moesi.usr.exclusive_mo_a_1 Int) (moesi.usr.shared_mo_a_1 Int) (moesi.usr.invalid_mo_a_1 Int) (moesi.usr.owned_mo_a_1 Int) (moesi.usr.erreur_mo_a_1 Bool) (moesi.res.init_flag_a_1 Bool) (moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= moesi.usr.invalid_mo_a_0 1))) (let ((X2 (>= (- moesi.usr.shared_mo_a_0 moesi.usr.owned_mo_a_0) 1))) (let ((X3 (>= moesi.usr.exclusive_mo_a_0 1))) (let ((X4 (>= moesi.usr.invalid_mo_a_0 1))) (and (= moesi.usr.modified_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.modified_mo_a_0) moesi.usr.modified_mo_a_0))))) (= moesi.usr.invalid_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) moesi.usr.invalid_mo_a_0)))) (= moesi.usr.exclusive_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 1 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 1 moesi.usr.exclusive_mo_a_0) moesi.usr.exclusive_mo_a_0))))) (= moesi.usr.shared_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.shared_mo_a_0) moesi.usr.shared_mo_a_0)))) (= moesi.usr.owned_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.owned_mo_a_0) moesi.usr.owned_mo_a_0)))) (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) (not moesi.res.init_flag_a_1))))))) +(define-fun __node_init_top_0 ((top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_4_a_0)) (let ((X6 top.res.abs_7_a_0)) (and (= top.res.abs_8_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_moesi_0 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_1_a_0) (__node_init_excludes4_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.init_invalid_mo_a_1 Int) (top.usr.etat_mo1_a_1 Bool) (top.usr.etat_mo2_a_1 Bool) (top.usr.etat_mo3_a_1 Bool) (top.usr.etat_mo4_a_1 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_7_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8_a_0))) (= top.res.abs_8_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_moesi_0 top.usr.init_invalid_mo_a_1 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_2_a_1 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.inst_1_a_1 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_1_a_0) (__node_trans_excludes4_0 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_4)) (let ((X6 top.res.abs_7)) (and (= top.res.abs_8 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_moesi_0 top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_1) (__node_init_excludes4_0 top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.init_invalid_mo! Int) (top.usr.etat_mo1! Bool) (top.usr.etat_mo2! Bool) (top.usr.etat_mo3! Bool) (top.usr.etat_mo4! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_7!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8))) (= top.res.abs_8! (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_moesi_0 top.usr.init_invalid_mo! top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_2! top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_6! top.res.abs_7! top.res.inst_1! top.res.abs_6 top.res.abs_7 top.res.inst_1) (__node_trans_excludes4_0 top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.abs_6! top.res.inst_0! top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/MOESI_2_e7_2910_e8_2590.sl b/benchmarks/LIA/Lustre/MOESI_2_e7_2910_e8_2590.sl index ede70a3..f8b74ae 100644 --- a/benchmarks/LIA/Lustre/MOESI_2_e7_2910_e8_2590.sl +++ b/benchmarks/LIA/Lustre/MOESI_2_e7_2910_e8_2590.sl @@ -1,737 +1,36 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes4_0 ( - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_0 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) - (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) - excludes4.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes4_0 ( - (excludes4.usr.X1_a_1 Bool) - (excludes4.usr.X2_a_1 Bool) - (excludes4.usr.X3_a_1 Bool) - (excludes4.usr.X4_a_1 Bool) - (excludes4.usr.excludes_a_1 Bool) - (excludes4.res.init_flag_a_1 Bool) - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_1 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) - (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) - (not excludes4.res.init_flag_a_1)) -) - -(define-fun - __node_init_moesi_0 ( - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (and - (= moesi.usr.modified_mo_a_0 0) - (let - ((X1 Bool (let ((X1 Int moesi.res.nondet_0)) (>= X1 1)))) - (and - (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) - (= moesi.usr.exclusive_mo_a_0 0) - (let - ((X2 Bool (let ((X2 Int moesi.res.nondet_1)) (>= X2 1)))) - (let - ((X3 - Bool (let - ((X3 Int moesi.res.nondet_3) (X4 Int moesi.res.nondet_2)) - (>= (+ X4 X3) 1)))) - (and - (= moesi.usr.shared_mo_a_0 0) - (let - ((X4 Bool (let ((X4 Int moesi.res.nondet_4)) (>= X4 1)))) - (and - (= moesi.usr.owned_mo_a_0 0) - (= moesi.usr.erreur_mo_a_0 false) - moesi.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_moesi_0 ( - (moesi.usr.init_invalid_mo_a_1 Int) - (moesi.usr.etat_mo1_a_1 Bool) - (moesi.usr.etat_mo2_a_1 Bool) - (moesi.usr.etat_mo3_a_1 Bool) - (moesi.usr.etat_mo4_a_1 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_1 Int) - (moesi.usr.exclusive_mo_a_1 Int) - (moesi.usr.shared_mo_a_1 Int) - (moesi.usr.invalid_mo_a_1 Int) - (moesi.usr.owned_mo_a_1 Int) - (moesi.usr.erreur_mo_a_1 Bool) - (moesi.res.init_flag_a_1 Bool) - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (let - ((X2 Bool (>= (+ moesi.usr.shared_mo_a_0 moesi.usr.owned_mo_a_0) 1))) - (let - ((X3 Bool (>= moesi.usr.exclusive_mo_a_0 1))) - (let - ((X4 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (and - (= - moesi.usr.modified_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.modified_mo_a_0) - moesi.usr.modified_mo_a_0))))) - (= - moesi.usr.invalid_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite - X2 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite - X1 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - moesi.usr.invalid_mo_a_0)))) - (= - moesi.usr.exclusive_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 1 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 1 moesi.usr.exclusive_mo_a_0) - moesi.usr.exclusive_mo_a_0))))) - (= - moesi.usr.shared_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) - moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.shared_mo_a_0) - moesi.usr.shared_mo_a_0)))) - (= - moesi.usr.owned_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.owned_mo_a_0) - moesi.usr.owned_mo_a_0)))) - (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) - (not moesi.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Int top.res.abs_4_a_0)) - (let - ((X6 Bool top.res.abs_7_a_0)) - (and - (= top.res.abs_8_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_moesi_0 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_1_a_0) - (__node_init_excludes4_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.init_invalid_mo_a_1 Int) - (top.usr.etat_mo1_a_1 Bool) - (top.usr.etat_mo2_a_1 Bool) - (top.usr.etat_mo3_a_1 Bool) - (top.usr.etat_mo4_a_1 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_7_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8_a_0))) - (= top.res.abs_8_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_moesi_0 - top.usr.init_invalid_mo_a_1 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_2_a_1 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.inst_1_a_1 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes4_0 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.init_invalid_mo Int) -(declare-primed-var top.usr.etat_mo1 Bool) -(declare-primed-var top.usr.etat_mo2 Bool) -(declare-primed-var top.usr.etat_mo3 Bool) -(declare-primed-var top.usr.etat_mo4 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int top.res.abs_0)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Int top.res.abs_4)) - (let - ((X6 Bool top.res.abs_7)) - (and - (= top.res.abs_8 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_moesi_0 - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_1) - (__node_init_excludes4_0 - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.init_invalid_mo! Int) - (top.usr.etat_mo1! Bool) - (top.usr.etat_mo2! Bool) - (top.usr.etat_mo3! Bool) - (top.usr.etat_mo4! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Bool top.res.abs_7!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8))) - (= top.res.abs_8! (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_moesi_0 - top.usr.init_invalid_mo! - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_2! - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_6! - top.res.abs_7! - top.res.inst_1! - top.res.abs_6 - top.res.abs_7 - top.res.inst_1) - (__node_trans_excludes4_0 - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.abs_6! - top.res.inst_0! - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes4_0 ((excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_0 (not (or (or (or (or (or (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) excludes4.res.init_flag_a_0)) +(define-fun __node_trans_excludes4_0 ((excludes4.usr.X1_a_1 Bool) (excludes4.usr.X2_a_1 Bool) (excludes4.usr.X3_a_1 Bool) (excludes4.usr.X4_a_1 Bool) (excludes4.usr.excludes_a_1 Bool) (excludes4.res.init_flag_a_1 Bool) (excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_1 (not (or (or (or (or (or (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) (not excludes4.res.init_flag_a_1))) +(define-fun __node_init_moesi_0 ((moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (and (= moesi.usr.modified_mo_a_0 0) (let ((X1 (let ((X1 moesi.res.nondet_0)) (>= X1 1)))) (and (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) (= moesi.usr.exclusive_mo_a_0 0) (let ((X2 (let ((X2 moesi.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 moesi.res.nondet_3) (X4 moesi.res.nondet_2)) (>= (+ X4 X3) 1)))) (and (= moesi.usr.shared_mo_a_0 0) (let ((X4 (let ((X4 moesi.res.nondet_4)) (>= X4 1)))) (and (= moesi.usr.owned_mo_a_0 0) (= moesi.usr.erreur_mo_a_0 false) moesi.res.init_flag_a_0))))))))) +(define-fun __node_trans_moesi_0 ((moesi.usr.init_invalid_mo_a_1 Int) (moesi.usr.etat_mo1_a_1 Bool) (moesi.usr.etat_mo2_a_1 Bool) (moesi.usr.etat_mo3_a_1 Bool) (moesi.usr.etat_mo4_a_1 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_1 Int) (moesi.usr.exclusive_mo_a_1 Int) (moesi.usr.shared_mo_a_1 Int) (moesi.usr.invalid_mo_a_1 Int) (moesi.usr.owned_mo_a_1 Int) (moesi.usr.erreur_mo_a_1 Bool) (moesi.res.init_flag_a_1 Bool) (moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= moesi.usr.invalid_mo_a_0 1))) (let ((X2 (>= (+ moesi.usr.shared_mo_a_0 moesi.usr.owned_mo_a_0) 1))) (let ((X3 (>= moesi.usr.exclusive_mo_a_0 1))) (let ((X4 (>= moesi.usr.invalid_mo_a_0 1))) (and (= moesi.usr.modified_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.modified_mo_a_0) moesi.usr.modified_mo_a_0))))) (= moesi.usr.invalid_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) moesi.usr.invalid_mo_a_0)))) (= moesi.usr.exclusive_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 1 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 1 moesi.usr.exclusive_mo_a_0) moesi.usr.exclusive_mo_a_0))))) (= moesi.usr.shared_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.shared_mo_a_0) moesi.usr.shared_mo_a_0)))) (= moesi.usr.owned_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.owned_mo_a_0) moesi.usr.owned_mo_a_0)))) (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) (not moesi.res.init_flag_a_1))))))) +(define-fun __node_init_top_0 ((top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_4_a_0)) (let ((X6 top.res.abs_7_a_0)) (and (= top.res.abs_8_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_moesi_0 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_1_a_0) (__node_init_excludes4_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.init_invalid_mo_a_1 Int) (top.usr.etat_mo1_a_1 Bool) (top.usr.etat_mo2_a_1 Bool) (top.usr.etat_mo3_a_1 Bool) (top.usr.etat_mo4_a_1 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_7_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8_a_0))) (= top.res.abs_8_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_moesi_0 top.usr.init_invalid_mo_a_1 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_2_a_1 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.inst_1_a_1 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_1_a_0) (__node_trans_excludes4_0 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_4)) (let ((X6 top.res.abs_7)) (and (= top.res.abs_8 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_moesi_0 top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_1) (__node_init_excludes4_0 top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.init_invalid_mo! Int) (top.usr.etat_mo1! Bool) (top.usr.etat_mo2! Bool) (top.usr.etat_mo3! Bool) (top.usr.etat_mo4! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_7!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8))) (= top.res.abs_8! (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_moesi_0 top.usr.init_invalid_mo! top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_2! top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_6! top.res.abs_7! top.res.inst_1! top.res.abs_6 top.res.abs_7 top.res.inst_1) (__node_trans_excludes4_0 top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.abs_6! top.res.inst_0! top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/MOESI_2_e8_101.sl b/benchmarks/LIA/Lustre/MOESI_2_e8_101.sl index 79f8dd2..a6bede5 100644 --- a/benchmarks/LIA/Lustre/MOESI_2_e8_101.sl +++ b/benchmarks/LIA/Lustre/MOESI_2_e8_101.sl @@ -1,741 +1,36 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes4_0 ( - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_0 - (not - (or - (or - (or - (or - (and - (and - (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) - excludes4.usr.X1_a_0) - excludes4.usr.X3_a_0) - (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) - excludes4.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes4_0 ( - (excludes4.usr.X1_a_1 Bool) - (excludes4.usr.X2_a_1 Bool) - (excludes4.usr.X3_a_1 Bool) - (excludes4.usr.X4_a_1 Bool) - (excludes4.usr.excludes_a_1 Bool) - (excludes4.res.init_flag_a_1 Bool) - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_1 - (not - (or - (or - (or - (or - (and - (and - (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) - excludes4.usr.X1_a_1) - excludes4.usr.X3_a_1) - (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) - (not excludes4.res.init_flag_a_1)) -) - -(define-fun - __node_init_moesi_0 ( - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (and - (= moesi.usr.modified_mo_a_0 0) - (let - ((X1 Bool (let ((X1 Int moesi.res.nondet_0)) (>= X1 1)))) - (and - (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) - (= moesi.usr.exclusive_mo_a_0 0) - (let - ((X2 Bool (let ((X2 Int moesi.res.nondet_1)) (>= X2 1)))) - (let - ((X3 - Bool (let - ((X3 Int moesi.res.nondet_3) (X4 Int moesi.res.nondet_2)) - (>= (+ X4 X3) 1)))) - (and - (= moesi.usr.shared_mo_a_0 0) - (let - ((X4 Bool (let ((X4 Int moesi.res.nondet_4)) (>= X4 1)))) - (and - (= moesi.usr.owned_mo_a_0 0) - (= moesi.usr.erreur_mo_a_0 false) - moesi.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_moesi_0 ( - (moesi.usr.init_invalid_mo_a_1 Int) - (moesi.usr.etat_mo1_a_1 Bool) - (moesi.usr.etat_mo2_a_1 Bool) - (moesi.usr.etat_mo3_a_1 Bool) - (moesi.usr.etat_mo4_a_1 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_1 Int) - (moesi.usr.exclusive_mo_a_1 Int) - (moesi.usr.shared_mo_a_1 Int) - (moesi.usr.invalid_mo_a_1 Int) - (moesi.usr.owned_mo_a_1 Int) - (moesi.usr.erreur_mo_a_1 Bool) - (moesi.res.init_flag_a_1 Bool) - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (let - ((X2 Bool (>= (+ moesi.usr.shared_mo_a_0 moesi.usr.owned_mo_a_0) 1))) - (let - ((X3 Bool (>= moesi.usr.exclusive_mo_a_0 1))) - (let - ((X4 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (and - (= - moesi.usr.modified_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.modified_mo_a_0) - moesi.usr.modified_mo_a_0))))) - (= - moesi.usr.invalid_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite - X2 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite - X1 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - moesi.usr.invalid_mo_a_0)))) - (= - moesi.usr.exclusive_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 1 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 1 moesi.usr.exclusive_mo_a_0) - moesi.usr.exclusive_mo_a_0))))) - (= - moesi.usr.shared_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) - moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.shared_mo_a_0) - moesi.usr.shared_mo_a_0)))) - (= - moesi.usr.owned_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.owned_mo_a_0) - moesi.usr.owned_mo_a_0)))) - (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) - (not moesi.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Int top.res.abs_4_a_0)) - (let - ((X6 Bool top.res.abs_7_a_0)) - (and - (= top.res.abs_8_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_moesi_0 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_1_a_0) - (__node_init_excludes4_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.init_invalid_mo_a_1 Int) - (top.usr.etat_mo1_a_1 Bool) - (top.usr.etat_mo2_a_1 Bool) - (top.usr.etat_mo3_a_1 Bool) - (top.usr.etat_mo4_a_1 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_7_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8_a_0))) - (= top.res.abs_8_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_moesi_0 - top.usr.init_invalid_mo_a_1 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_2_a_1 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.inst_1_a_1 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes4_0 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.init_invalid_mo Int) -(declare-primed-var top.usr.etat_mo1 Bool) -(declare-primed-var top.usr.etat_mo2 Bool) -(declare-primed-var top.usr.etat_mo3 Bool) -(declare-primed-var top.usr.etat_mo4 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int top.res.abs_0)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Int top.res.abs_4)) - (let - ((X6 Bool top.res.abs_7)) - (and - (= top.res.abs_8 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_moesi_0 - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_1) - (__node_init_excludes4_0 - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.init_invalid_mo! Int) - (top.usr.etat_mo1! Bool) - (top.usr.etat_mo2! Bool) - (top.usr.etat_mo3! Bool) - (top.usr.etat_mo4! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Bool top.res.abs_7!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8))) - (= top.res.abs_8! (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_moesi_0 - top.usr.init_invalid_mo! - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_2! - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_6! - top.res.abs_7! - top.res.inst_1! - top.res.abs_6 - top.res.abs_7 - top.res.inst_1) - (__node_trans_excludes4_0 - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.abs_6! - top.res.inst_0! - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes4_0 ((excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_0 (not (or (or (or (or (and (and (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) excludes4.usr.X1_a_0) excludes4.usr.X3_a_0) (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) excludes4.res.init_flag_a_0)) +(define-fun __node_trans_excludes4_0 ((excludes4.usr.X1_a_1 Bool) (excludes4.usr.X2_a_1 Bool) (excludes4.usr.X3_a_1 Bool) (excludes4.usr.X4_a_1 Bool) (excludes4.usr.excludes_a_1 Bool) (excludes4.res.init_flag_a_1 Bool) (excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_1 (not (or (or (or (or (and (and (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) excludes4.usr.X1_a_1) excludes4.usr.X3_a_1) (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) (not excludes4.res.init_flag_a_1))) +(define-fun __node_init_moesi_0 ((moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (and (= moesi.usr.modified_mo_a_0 0) (let ((X1 (let ((X1 moesi.res.nondet_0)) (>= X1 1)))) (and (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) (= moesi.usr.exclusive_mo_a_0 0) (let ((X2 (let ((X2 moesi.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 moesi.res.nondet_3) (X4 moesi.res.nondet_2)) (>= (+ X4 X3) 1)))) (and (= moesi.usr.shared_mo_a_0 0) (let ((X4 (let ((X4 moesi.res.nondet_4)) (>= X4 1)))) (and (= moesi.usr.owned_mo_a_0 0) (= moesi.usr.erreur_mo_a_0 false) moesi.res.init_flag_a_0))))))))) +(define-fun __node_trans_moesi_0 ((moesi.usr.init_invalid_mo_a_1 Int) (moesi.usr.etat_mo1_a_1 Bool) (moesi.usr.etat_mo2_a_1 Bool) (moesi.usr.etat_mo3_a_1 Bool) (moesi.usr.etat_mo4_a_1 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_1 Int) (moesi.usr.exclusive_mo_a_1 Int) (moesi.usr.shared_mo_a_1 Int) (moesi.usr.invalid_mo_a_1 Int) (moesi.usr.owned_mo_a_1 Int) (moesi.usr.erreur_mo_a_1 Bool) (moesi.res.init_flag_a_1 Bool) (moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= moesi.usr.invalid_mo_a_0 1))) (let ((X2 (>= (+ moesi.usr.shared_mo_a_0 moesi.usr.owned_mo_a_0) 1))) (let ((X3 (>= moesi.usr.exclusive_mo_a_0 1))) (let ((X4 (>= moesi.usr.invalid_mo_a_0 1))) (and (= moesi.usr.modified_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.modified_mo_a_0) moesi.usr.modified_mo_a_0))))) (= moesi.usr.invalid_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) moesi.usr.invalid_mo_a_0)))) (= moesi.usr.exclusive_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 1 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 1 moesi.usr.exclusive_mo_a_0) moesi.usr.exclusive_mo_a_0))))) (= moesi.usr.shared_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.shared_mo_a_0) moesi.usr.shared_mo_a_0)))) (= moesi.usr.owned_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.owned_mo_a_0) moesi.usr.owned_mo_a_0)))) (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) (not moesi.res.init_flag_a_1))))))) +(define-fun __node_init_top_0 ((top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_4_a_0)) (let ((X6 top.res.abs_7_a_0)) (and (= top.res.abs_8_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_moesi_0 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_1_a_0) (__node_init_excludes4_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.init_invalid_mo_a_1 Int) (top.usr.etat_mo1_a_1 Bool) (top.usr.etat_mo2_a_1 Bool) (top.usr.etat_mo3_a_1 Bool) (top.usr.etat_mo4_a_1 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_7_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8_a_0))) (= top.res.abs_8_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_moesi_0 top.usr.init_invalid_mo_a_1 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_2_a_1 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.inst_1_a_1 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_1_a_0) (__node_trans_excludes4_0 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_4)) (let ((X6 top.res.abs_7)) (and (= top.res.abs_8 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_moesi_0 top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_1) (__node_init_excludes4_0 top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.init_invalid_mo! Int) (top.usr.etat_mo1! Bool) (top.usr.etat_mo2! Bool) (top.usr.etat_mo3! Bool) (top.usr.etat_mo4! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_7!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8))) (= top.res.abs_8! (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_moesi_0 top.usr.init_invalid_mo! top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_2! top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_6! top.res.abs_7! top.res.inst_1! top.res.abs_6 top.res.abs_7 top.res.inst_1) (__node_trans_excludes4_0 top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.abs_6! top.res.inst_0! top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/MOESI_2_e8_926.sl b/benchmarks/LIA/Lustre/MOESI_2_e8_926.sl index 79f8dd2..a6bede5 100644 --- a/benchmarks/LIA/Lustre/MOESI_2_e8_926.sl +++ b/benchmarks/LIA/Lustre/MOESI_2_e8_926.sl @@ -1,741 +1,36 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes4_0 ( - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_0 - (not - (or - (or - (or - (or - (and - (and - (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) - excludes4.usr.X1_a_0) - excludes4.usr.X3_a_0) - (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) - excludes4.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes4_0 ( - (excludes4.usr.X1_a_1 Bool) - (excludes4.usr.X2_a_1 Bool) - (excludes4.usr.X3_a_1 Bool) - (excludes4.usr.X4_a_1 Bool) - (excludes4.usr.excludes_a_1 Bool) - (excludes4.res.init_flag_a_1 Bool) - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_1 - (not - (or - (or - (or - (or - (and - (and - (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) - excludes4.usr.X1_a_1) - excludes4.usr.X3_a_1) - (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) - (not excludes4.res.init_flag_a_1)) -) - -(define-fun - __node_init_moesi_0 ( - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (and - (= moesi.usr.modified_mo_a_0 0) - (let - ((X1 Bool (let ((X1 Int moesi.res.nondet_0)) (>= X1 1)))) - (and - (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) - (= moesi.usr.exclusive_mo_a_0 0) - (let - ((X2 Bool (let ((X2 Int moesi.res.nondet_1)) (>= X2 1)))) - (let - ((X3 - Bool (let - ((X3 Int moesi.res.nondet_3) (X4 Int moesi.res.nondet_2)) - (>= (+ X4 X3) 1)))) - (and - (= moesi.usr.shared_mo_a_0 0) - (let - ((X4 Bool (let ((X4 Int moesi.res.nondet_4)) (>= X4 1)))) - (and - (= moesi.usr.owned_mo_a_0 0) - (= moesi.usr.erreur_mo_a_0 false) - moesi.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_moesi_0 ( - (moesi.usr.init_invalid_mo_a_1 Int) - (moesi.usr.etat_mo1_a_1 Bool) - (moesi.usr.etat_mo2_a_1 Bool) - (moesi.usr.etat_mo3_a_1 Bool) - (moesi.usr.etat_mo4_a_1 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_1 Int) - (moesi.usr.exclusive_mo_a_1 Int) - (moesi.usr.shared_mo_a_1 Int) - (moesi.usr.invalid_mo_a_1 Int) - (moesi.usr.owned_mo_a_1 Int) - (moesi.usr.erreur_mo_a_1 Bool) - (moesi.res.init_flag_a_1 Bool) - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (let - ((X2 Bool (>= (+ moesi.usr.shared_mo_a_0 moesi.usr.owned_mo_a_0) 1))) - (let - ((X3 Bool (>= moesi.usr.exclusive_mo_a_0 1))) - (let - ((X4 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (and - (= - moesi.usr.modified_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.modified_mo_a_0) - moesi.usr.modified_mo_a_0))))) - (= - moesi.usr.invalid_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite - X2 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite - X1 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - moesi.usr.invalid_mo_a_0)))) - (= - moesi.usr.exclusive_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 1 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 1 moesi.usr.exclusive_mo_a_0) - moesi.usr.exclusive_mo_a_0))))) - (= - moesi.usr.shared_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) - moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.shared_mo_a_0) - moesi.usr.shared_mo_a_0)))) - (= - moesi.usr.owned_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.owned_mo_a_0) - moesi.usr.owned_mo_a_0)))) - (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) - (not moesi.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Int top.res.abs_4_a_0)) - (let - ((X6 Bool top.res.abs_7_a_0)) - (and - (= top.res.abs_8_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_moesi_0 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_1_a_0) - (__node_init_excludes4_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.init_invalid_mo_a_1 Int) - (top.usr.etat_mo1_a_1 Bool) - (top.usr.etat_mo2_a_1 Bool) - (top.usr.etat_mo3_a_1 Bool) - (top.usr.etat_mo4_a_1 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_7_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8_a_0))) - (= top.res.abs_8_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_moesi_0 - top.usr.init_invalid_mo_a_1 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_2_a_1 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.inst_1_a_1 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes4_0 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.init_invalid_mo Int) -(declare-primed-var top.usr.etat_mo1 Bool) -(declare-primed-var top.usr.etat_mo2 Bool) -(declare-primed-var top.usr.etat_mo3 Bool) -(declare-primed-var top.usr.etat_mo4 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int top.res.abs_0)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Int top.res.abs_4)) - (let - ((X6 Bool top.res.abs_7)) - (and - (= top.res.abs_8 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_moesi_0 - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_1) - (__node_init_excludes4_0 - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.init_invalid_mo! Int) - (top.usr.etat_mo1! Bool) - (top.usr.etat_mo2! Bool) - (top.usr.etat_mo3! Bool) - (top.usr.etat_mo4! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Bool top.res.abs_7!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8))) - (= top.res.abs_8! (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_moesi_0 - top.usr.init_invalid_mo! - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_2! - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_6! - top.res.abs_7! - top.res.inst_1! - top.res.abs_6 - top.res.abs_7 - top.res.inst_1) - (__node_trans_excludes4_0 - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.abs_6! - top.res.inst_0! - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes4_0 ((excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_0 (not (or (or (or (or (and (and (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) excludes4.usr.X1_a_0) excludes4.usr.X3_a_0) (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) excludes4.res.init_flag_a_0)) +(define-fun __node_trans_excludes4_0 ((excludes4.usr.X1_a_1 Bool) (excludes4.usr.X2_a_1 Bool) (excludes4.usr.X3_a_1 Bool) (excludes4.usr.X4_a_1 Bool) (excludes4.usr.excludes_a_1 Bool) (excludes4.res.init_flag_a_1 Bool) (excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_1 (not (or (or (or (or (and (and (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) excludes4.usr.X1_a_1) excludes4.usr.X3_a_1) (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) (not excludes4.res.init_flag_a_1))) +(define-fun __node_init_moesi_0 ((moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (and (= moesi.usr.modified_mo_a_0 0) (let ((X1 (let ((X1 moesi.res.nondet_0)) (>= X1 1)))) (and (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) (= moesi.usr.exclusive_mo_a_0 0) (let ((X2 (let ((X2 moesi.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 moesi.res.nondet_3) (X4 moesi.res.nondet_2)) (>= (+ X4 X3) 1)))) (and (= moesi.usr.shared_mo_a_0 0) (let ((X4 (let ((X4 moesi.res.nondet_4)) (>= X4 1)))) (and (= moesi.usr.owned_mo_a_0 0) (= moesi.usr.erreur_mo_a_0 false) moesi.res.init_flag_a_0))))))))) +(define-fun __node_trans_moesi_0 ((moesi.usr.init_invalid_mo_a_1 Int) (moesi.usr.etat_mo1_a_1 Bool) (moesi.usr.etat_mo2_a_1 Bool) (moesi.usr.etat_mo3_a_1 Bool) (moesi.usr.etat_mo4_a_1 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_1 Int) (moesi.usr.exclusive_mo_a_1 Int) (moesi.usr.shared_mo_a_1 Int) (moesi.usr.invalid_mo_a_1 Int) (moesi.usr.owned_mo_a_1 Int) (moesi.usr.erreur_mo_a_1 Bool) (moesi.res.init_flag_a_1 Bool) (moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= moesi.usr.invalid_mo_a_0 1))) (let ((X2 (>= (+ moesi.usr.shared_mo_a_0 moesi.usr.owned_mo_a_0) 1))) (let ((X3 (>= moesi.usr.exclusive_mo_a_0 1))) (let ((X4 (>= moesi.usr.invalid_mo_a_0 1))) (and (= moesi.usr.modified_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.modified_mo_a_0) moesi.usr.modified_mo_a_0))))) (= moesi.usr.invalid_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) moesi.usr.invalid_mo_a_0)))) (= moesi.usr.exclusive_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 1 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 1 moesi.usr.exclusive_mo_a_0) moesi.usr.exclusive_mo_a_0))))) (= moesi.usr.shared_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.shared_mo_a_0) moesi.usr.shared_mo_a_0)))) (= moesi.usr.owned_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.owned_mo_a_0) moesi.usr.owned_mo_a_0)))) (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) (not moesi.res.init_flag_a_1))))))) +(define-fun __node_init_top_0 ((top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_4_a_0)) (let ((X6 top.res.abs_7_a_0)) (and (= top.res.abs_8_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_moesi_0 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_1_a_0) (__node_init_excludes4_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.init_invalid_mo_a_1 Int) (top.usr.etat_mo1_a_1 Bool) (top.usr.etat_mo2_a_1 Bool) (top.usr.etat_mo3_a_1 Bool) (top.usr.etat_mo4_a_1 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_7_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8_a_0))) (= top.res.abs_8_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_moesi_0 top.usr.init_invalid_mo_a_1 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_2_a_1 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.inst_1_a_1 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_1_a_0) (__node_trans_excludes4_0 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_4)) (let ((X6 top.res.abs_7)) (and (= top.res.abs_8 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_moesi_0 top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_1) (__node_init_excludes4_0 top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.init_invalid_mo! Int) (top.usr.etat_mo1! Bool) (top.usr.etat_mo2! Bool) (top.usr.etat_mo3! Bool) (top.usr.etat_mo4! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_7!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8))) (= top.res.abs_8! (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_moesi_0 top.usr.init_invalid_mo! top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_2! top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_6! top.res.abs_7! top.res.inst_1! top.res.abs_6 top.res.abs_7 top.res.inst_1) (__node_trans_excludes4_0 top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.abs_6! top.res.inst_0! top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/MOESI_2_e8_926_e1_1065.sl b/benchmarks/LIA/Lustre/MOESI_2_e8_926_e1_1065.sl index 0ffbc06..f596bf5 100644 --- a/benchmarks/LIA/Lustre/MOESI_2_e8_926_e1_1065.sl +++ b/benchmarks/LIA/Lustre/MOESI_2_e8_926_e1_1065.sl @@ -1,741 +1,36 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes4_0 ( - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_0 - (not - (or - (or - (or - (or - (and - (and - (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) - excludes4.usr.X1_a_0) - excludes4.usr.X3_a_0) - (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) - excludes4.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes4_0 ( - (excludes4.usr.X1_a_1 Bool) - (excludes4.usr.X2_a_1 Bool) - (excludes4.usr.X3_a_1 Bool) - (excludes4.usr.X4_a_1 Bool) - (excludes4.usr.excludes_a_1 Bool) - (excludes4.res.init_flag_a_1 Bool) - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_1 - (not - (or - (or - (or - (or - (and - (and - (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) - excludes4.usr.X1_a_1) - excludes4.usr.X3_a_1) - (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) - (not excludes4.res.init_flag_a_1)) -) - -(define-fun - __node_init_moesi_0 ( - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (and - (= moesi.usr.modified_mo_a_0 0) - (let - ((X1 Bool (let ((X1 Int moesi.res.nondet_0)) (>= X1 1)))) - (and - (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) - (= moesi.usr.exclusive_mo_a_0 0) - (let - ((X2 Bool (let ((X2 Int moesi.res.nondet_1)) (>= X2 1)))) - (let - ((X3 - Bool (let - ((X3 Int moesi.res.nondet_3) (X4 Int moesi.res.nondet_2)) - (>= (+ (+ X4 1) X3) 1)))) - (and - (= moesi.usr.shared_mo_a_0 0) - (let - ((X4 Bool (let ((X4 Int moesi.res.nondet_4)) (>= X4 1)))) - (and - (= moesi.usr.owned_mo_a_0 0) - (= moesi.usr.erreur_mo_a_0 false) - moesi.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_moesi_0 ( - (moesi.usr.init_invalid_mo_a_1 Int) - (moesi.usr.etat_mo1_a_1 Bool) - (moesi.usr.etat_mo2_a_1 Bool) - (moesi.usr.etat_mo3_a_1 Bool) - (moesi.usr.etat_mo4_a_1 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_1 Int) - (moesi.usr.exclusive_mo_a_1 Int) - (moesi.usr.shared_mo_a_1 Int) - (moesi.usr.invalid_mo_a_1 Int) - (moesi.usr.owned_mo_a_1 Int) - (moesi.usr.erreur_mo_a_1 Bool) - (moesi.res.init_flag_a_1 Bool) - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (let - ((X2 Bool (>= (+ (+ moesi.usr.shared_mo_a_0 1) moesi.usr.owned_mo_a_0) 1))) - (let - ((X3 Bool (>= moesi.usr.exclusive_mo_a_0 1))) - (let - ((X4 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (and - (= - moesi.usr.modified_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.modified_mo_a_0) - moesi.usr.modified_mo_a_0))))) - (= - moesi.usr.invalid_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite - X2 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite - X1 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - moesi.usr.invalid_mo_a_0)))) - (= - moesi.usr.exclusive_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 1 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 1 moesi.usr.exclusive_mo_a_0) - moesi.usr.exclusive_mo_a_0))))) - (= - moesi.usr.shared_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) - moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.shared_mo_a_0) - moesi.usr.shared_mo_a_0)))) - (= - moesi.usr.owned_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.owned_mo_a_0) - moesi.usr.owned_mo_a_0)))) - (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) - (not moesi.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Int top.res.abs_4_a_0)) - (let - ((X6 Bool top.res.abs_7_a_0)) - (and - (= top.res.abs_8_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_moesi_0 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_1_a_0) - (__node_init_excludes4_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.init_invalid_mo_a_1 Int) - (top.usr.etat_mo1_a_1 Bool) - (top.usr.etat_mo2_a_1 Bool) - (top.usr.etat_mo3_a_1 Bool) - (top.usr.etat_mo4_a_1 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_7_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8_a_0))) - (= top.res.abs_8_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_moesi_0 - top.usr.init_invalid_mo_a_1 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_2_a_1 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.inst_1_a_1 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes4_0 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.init_invalid_mo Int) -(declare-primed-var top.usr.etat_mo1 Bool) -(declare-primed-var top.usr.etat_mo2 Bool) -(declare-primed-var top.usr.etat_mo3 Bool) -(declare-primed-var top.usr.etat_mo4 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int top.res.abs_0)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Int top.res.abs_4)) - (let - ((X6 Bool top.res.abs_7)) - (and - (= top.res.abs_8 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_moesi_0 - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_1) - (__node_init_excludes4_0 - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.init_invalid_mo! Int) - (top.usr.etat_mo1! Bool) - (top.usr.etat_mo2! Bool) - (top.usr.etat_mo3! Bool) - (top.usr.etat_mo4! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Bool top.res.abs_7!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8))) - (= top.res.abs_8! (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_moesi_0 - top.usr.init_invalid_mo! - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_2! - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_6! - top.res.abs_7! - top.res.inst_1! - top.res.abs_6 - top.res.abs_7 - top.res.inst_1) - (__node_trans_excludes4_0 - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.abs_6! - top.res.inst_0! - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes4_0 ((excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_0 (not (or (or (or (or (and (and (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) excludes4.usr.X1_a_0) excludes4.usr.X3_a_0) (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) excludes4.res.init_flag_a_0)) +(define-fun __node_trans_excludes4_0 ((excludes4.usr.X1_a_1 Bool) (excludes4.usr.X2_a_1 Bool) (excludes4.usr.X3_a_1 Bool) (excludes4.usr.X4_a_1 Bool) (excludes4.usr.excludes_a_1 Bool) (excludes4.res.init_flag_a_1 Bool) (excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_1 (not (or (or (or (or (and (and (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) excludes4.usr.X1_a_1) excludes4.usr.X3_a_1) (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) (not excludes4.res.init_flag_a_1))) +(define-fun __node_init_moesi_0 ((moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (and (= moesi.usr.modified_mo_a_0 0) (let ((X1 (let ((X1 moesi.res.nondet_0)) (>= X1 1)))) (and (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) (= moesi.usr.exclusive_mo_a_0 0) (let ((X2 (let ((X2 moesi.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 moesi.res.nondet_3) (X4 moesi.res.nondet_2)) (>= (+ (+ X4 1) X3) 1)))) (and (= moesi.usr.shared_mo_a_0 0) (let ((X4 (let ((X4 moesi.res.nondet_4)) (>= X4 1)))) (and (= moesi.usr.owned_mo_a_0 0) (= moesi.usr.erreur_mo_a_0 false) moesi.res.init_flag_a_0))))))))) +(define-fun __node_trans_moesi_0 ((moesi.usr.init_invalid_mo_a_1 Int) (moesi.usr.etat_mo1_a_1 Bool) (moesi.usr.etat_mo2_a_1 Bool) (moesi.usr.etat_mo3_a_1 Bool) (moesi.usr.etat_mo4_a_1 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_1 Int) (moesi.usr.exclusive_mo_a_1 Int) (moesi.usr.shared_mo_a_1 Int) (moesi.usr.invalid_mo_a_1 Int) (moesi.usr.owned_mo_a_1 Int) (moesi.usr.erreur_mo_a_1 Bool) (moesi.res.init_flag_a_1 Bool) (moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= moesi.usr.invalid_mo_a_0 1))) (let ((X2 (>= (+ (+ moesi.usr.shared_mo_a_0 1) moesi.usr.owned_mo_a_0) 1))) (let ((X3 (>= moesi.usr.exclusive_mo_a_0 1))) (let ((X4 (>= moesi.usr.invalid_mo_a_0 1))) (and (= moesi.usr.modified_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.modified_mo_a_0) moesi.usr.modified_mo_a_0))))) (= moesi.usr.invalid_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) moesi.usr.invalid_mo_a_0)))) (= moesi.usr.exclusive_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 1 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 1 moesi.usr.exclusive_mo_a_0) moesi.usr.exclusive_mo_a_0))))) (= moesi.usr.shared_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.shared_mo_a_0) moesi.usr.shared_mo_a_0)))) (= moesi.usr.owned_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.owned_mo_a_0) moesi.usr.owned_mo_a_0)))) (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) (not moesi.res.init_flag_a_1))))))) +(define-fun __node_init_top_0 ((top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_4_a_0)) (let ((X6 top.res.abs_7_a_0)) (and (= top.res.abs_8_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_moesi_0 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_1_a_0) (__node_init_excludes4_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.init_invalid_mo_a_1 Int) (top.usr.etat_mo1_a_1 Bool) (top.usr.etat_mo2_a_1 Bool) (top.usr.etat_mo3_a_1 Bool) (top.usr.etat_mo4_a_1 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_7_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8_a_0))) (= top.res.abs_8_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_moesi_0 top.usr.init_invalid_mo_a_1 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_2_a_1 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.inst_1_a_1 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_1_a_0) (__node_trans_excludes4_0 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_4)) (let ((X6 top.res.abs_7)) (and (= top.res.abs_8 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_moesi_0 top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_1) (__node_init_excludes4_0 top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.init_invalid_mo! Int) (top.usr.etat_mo1! Bool) (top.usr.etat_mo2! Bool) (top.usr.etat_mo3! Bool) (top.usr.etat_mo4! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_7!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8))) (= top.res.abs_8! (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_moesi_0 top.usr.init_invalid_mo! top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_2! top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_6! top.res.abs_7! top.res.inst_1! top.res.abs_6 top.res.abs_7 top.res.inst_1) (__node_trans_excludes4_0 top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.abs_6! top.res.inst_0! top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/MOESI_2_e8_926_e2_349.sl b/benchmarks/LIA/Lustre/MOESI_2_e8_926_e2_349.sl index 9e68400..69d1234 100644 --- a/benchmarks/LIA/Lustre/MOESI_2_e8_926_e2_349.sl +++ b/benchmarks/LIA/Lustre/MOESI_2_e8_926_e2_349.sl @@ -1,741 +1,36 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes4_0 ( - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_0 - (not - (or - (or - (or - (or - (and - (and - (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) - excludes4.usr.X1_a_0) - excludes4.usr.X3_a_0) - (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) - excludes4.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes4_0 ( - (excludes4.usr.X1_a_1 Bool) - (excludes4.usr.X2_a_1 Bool) - (excludes4.usr.X3_a_1 Bool) - (excludes4.usr.X4_a_1 Bool) - (excludes4.usr.excludes_a_1 Bool) - (excludes4.res.init_flag_a_1 Bool) - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_1 - (not - (or - (or - (or - (or - (and - (and - (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) - excludes4.usr.X1_a_1) - excludes4.usr.X3_a_1) - (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) - (not excludes4.res.init_flag_a_1)) -) - -(define-fun - __node_init_moesi_0 ( - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (and - (= moesi.usr.modified_mo_a_0 0) - (let - ((X1 Bool (let ((X1 Int moesi.res.nondet_0)) (>= X1 1)))) - (and - (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) - (= moesi.usr.exclusive_mo_a_0 0) - (let - ((X2 Bool (let ((X2 Int moesi.res.nondet_1)) (>= X2 1)))) - (let - ((X3 - Bool (let - ((X3 Int moesi.res.nondet_3) (X4 Int moesi.res.nondet_2)) - (>= (+ (- X4 1) X3) 1)))) - (and - (= moesi.usr.shared_mo_a_0 0) - (let - ((X4 Bool (let ((X4 Int moesi.res.nondet_4)) (>= X4 1)))) - (and - (= moesi.usr.owned_mo_a_0 0) - (= moesi.usr.erreur_mo_a_0 false) - moesi.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_moesi_0 ( - (moesi.usr.init_invalid_mo_a_1 Int) - (moesi.usr.etat_mo1_a_1 Bool) - (moesi.usr.etat_mo2_a_1 Bool) - (moesi.usr.etat_mo3_a_1 Bool) - (moesi.usr.etat_mo4_a_1 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_1 Int) - (moesi.usr.exclusive_mo_a_1 Int) - (moesi.usr.shared_mo_a_1 Int) - (moesi.usr.invalid_mo_a_1 Int) - (moesi.usr.owned_mo_a_1 Int) - (moesi.usr.erreur_mo_a_1 Bool) - (moesi.res.init_flag_a_1 Bool) - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (let - ((X2 Bool (>= (+ (- moesi.usr.shared_mo_a_0 1) moesi.usr.owned_mo_a_0) 1))) - (let - ((X3 Bool (>= moesi.usr.exclusive_mo_a_0 1))) - (let - ((X4 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (and - (= - moesi.usr.modified_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.modified_mo_a_0) - moesi.usr.modified_mo_a_0))))) - (= - moesi.usr.invalid_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite - X2 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite - X1 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - moesi.usr.invalid_mo_a_0)))) - (= - moesi.usr.exclusive_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 1 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 1 moesi.usr.exclusive_mo_a_0) - moesi.usr.exclusive_mo_a_0))))) - (= - moesi.usr.shared_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) - moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.shared_mo_a_0) - moesi.usr.shared_mo_a_0)))) - (= - moesi.usr.owned_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.owned_mo_a_0) - moesi.usr.owned_mo_a_0)))) - (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) - (not moesi.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Int top.res.abs_4_a_0)) - (let - ((X6 Bool top.res.abs_7_a_0)) - (and - (= top.res.abs_8_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_moesi_0 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_1_a_0) - (__node_init_excludes4_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.init_invalid_mo_a_1 Int) - (top.usr.etat_mo1_a_1 Bool) - (top.usr.etat_mo2_a_1 Bool) - (top.usr.etat_mo3_a_1 Bool) - (top.usr.etat_mo4_a_1 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_7_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8_a_0))) - (= top.res.abs_8_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_moesi_0 - top.usr.init_invalid_mo_a_1 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_2_a_1 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.inst_1_a_1 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes4_0 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.init_invalid_mo Int) -(declare-primed-var top.usr.etat_mo1 Bool) -(declare-primed-var top.usr.etat_mo2 Bool) -(declare-primed-var top.usr.etat_mo3 Bool) -(declare-primed-var top.usr.etat_mo4 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int top.res.abs_0)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Int top.res.abs_4)) - (let - ((X6 Bool top.res.abs_7)) - (and - (= top.res.abs_8 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_moesi_0 - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_1) - (__node_init_excludes4_0 - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.init_invalid_mo! Int) - (top.usr.etat_mo1! Bool) - (top.usr.etat_mo2! Bool) - (top.usr.etat_mo3! Bool) - (top.usr.etat_mo4! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Bool top.res.abs_7!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8))) - (= top.res.abs_8! (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_moesi_0 - top.usr.init_invalid_mo! - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_2! - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_6! - top.res.abs_7! - top.res.inst_1! - top.res.abs_6 - top.res.abs_7 - top.res.inst_1) - (__node_trans_excludes4_0 - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.abs_6! - top.res.inst_0! - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes4_0 ((excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_0 (not (or (or (or (or (and (and (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) excludes4.usr.X1_a_0) excludes4.usr.X3_a_0) (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) excludes4.res.init_flag_a_0)) +(define-fun __node_trans_excludes4_0 ((excludes4.usr.X1_a_1 Bool) (excludes4.usr.X2_a_1 Bool) (excludes4.usr.X3_a_1 Bool) (excludes4.usr.X4_a_1 Bool) (excludes4.usr.excludes_a_1 Bool) (excludes4.res.init_flag_a_1 Bool) (excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_1 (not (or (or (or (or (and (and (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) excludes4.usr.X1_a_1) excludes4.usr.X3_a_1) (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) (not excludes4.res.init_flag_a_1))) +(define-fun __node_init_moesi_0 ((moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (and (= moesi.usr.modified_mo_a_0 0) (let ((X1 (let ((X1 moesi.res.nondet_0)) (>= X1 1)))) (and (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) (= moesi.usr.exclusive_mo_a_0 0) (let ((X2 (let ((X2 moesi.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 moesi.res.nondet_3) (X4 moesi.res.nondet_2)) (>= (+ (- X4 1) X3) 1)))) (and (= moesi.usr.shared_mo_a_0 0) (let ((X4 (let ((X4 moesi.res.nondet_4)) (>= X4 1)))) (and (= moesi.usr.owned_mo_a_0 0) (= moesi.usr.erreur_mo_a_0 false) moesi.res.init_flag_a_0))))))))) +(define-fun __node_trans_moesi_0 ((moesi.usr.init_invalid_mo_a_1 Int) (moesi.usr.etat_mo1_a_1 Bool) (moesi.usr.etat_mo2_a_1 Bool) (moesi.usr.etat_mo3_a_1 Bool) (moesi.usr.etat_mo4_a_1 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_1 Int) (moesi.usr.exclusive_mo_a_1 Int) (moesi.usr.shared_mo_a_1 Int) (moesi.usr.invalid_mo_a_1 Int) (moesi.usr.owned_mo_a_1 Int) (moesi.usr.erreur_mo_a_1 Bool) (moesi.res.init_flag_a_1 Bool) (moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= moesi.usr.invalid_mo_a_0 1))) (let ((X2 (>= (+ (- moesi.usr.shared_mo_a_0 1) moesi.usr.owned_mo_a_0) 1))) (let ((X3 (>= moesi.usr.exclusive_mo_a_0 1))) (let ((X4 (>= moesi.usr.invalid_mo_a_0 1))) (and (= moesi.usr.modified_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.modified_mo_a_0) moesi.usr.modified_mo_a_0))))) (= moesi.usr.invalid_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) moesi.usr.invalid_mo_a_0)))) (= moesi.usr.exclusive_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 1 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 1 moesi.usr.exclusive_mo_a_0) moesi.usr.exclusive_mo_a_0))))) (= moesi.usr.shared_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.shared_mo_a_0) moesi.usr.shared_mo_a_0)))) (= moesi.usr.owned_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.owned_mo_a_0) moesi.usr.owned_mo_a_0)))) (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) (not moesi.res.init_flag_a_1))))))) +(define-fun __node_init_top_0 ((top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_4_a_0)) (let ((X6 top.res.abs_7_a_0)) (and (= top.res.abs_8_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_moesi_0 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_1_a_0) (__node_init_excludes4_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.init_invalid_mo_a_1 Int) (top.usr.etat_mo1_a_1 Bool) (top.usr.etat_mo2_a_1 Bool) (top.usr.etat_mo3_a_1 Bool) (top.usr.etat_mo4_a_1 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_7_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8_a_0))) (= top.res.abs_8_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_moesi_0 top.usr.init_invalid_mo_a_1 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_2_a_1 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.inst_1_a_1 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_1_a_0) (__node_trans_excludes4_0 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_4)) (let ((X6 top.res.abs_7)) (and (= top.res.abs_8 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_moesi_0 top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_1) (__node_init_excludes4_0 top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.init_invalid_mo! Int) (top.usr.etat_mo1! Bool) (top.usr.etat_mo2! Bool) (top.usr.etat_mo3! Bool) (top.usr.etat_mo4! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_7!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8))) (= top.res.abs_8! (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_moesi_0 top.usr.init_invalid_mo! top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_2! top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_6! top.res.abs_7! top.res.inst_1! top.res.abs_6 top.res.abs_7 top.res.inst_1) (__node_trans_excludes4_0 top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.abs_6! top.res.inst_0! top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/MOESI_2_e8_926_e3_1758.sl b/benchmarks/LIA/Lustre/MOESI_2_e8_926_e3_1758.sl index 1172df0..d3cd1bc 100644 --- a/benchmarks/LIA/Lustre/MOESI_2_e8_926_e3_1758.sl +++ b/benchmarks/LIA/Lustre/MOESI_2_e8_926_e3_1758.sl @@ -1,741 +1,36 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes4_0 ( - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_0 - (not - (or - (or - (or - (or - (and - (and - (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) - excludes4.usr.X1_a_0) - excludes4.usr.X3_a_0) - (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) - excludes4.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes4_0 ( - (excludes4.usr.X1_a_1 Bool) - (excludes4.usr.X2_a_1 Bool) - (excludes4.usr.X3_a_1 Bool) - (excludes4.usr.X4_a_1 Bool) - (excludes4.usr.excludes_a_1 Bool) - (excludes4.res.init_flag_a_1 Bool) - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_1 - (not - (or - (or - (or - (or - (and - (and - (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) - excludes4.usr.X1_a_1) - excludes4.usr.X3_a_1) - (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) - (not excludes4.res.init_flag_a_1)) -) - -(define-fun - __node_init_moesi_0 ( - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (and - (= moesi.usr.modified_mo_a_0 0) - (let - ((X1 Bool (let ((X1 Int moesi.res.nondet_0)) (>= X1 1)))) - (and - (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) - (= moesi.usr.exclusive_mo_a_0 0) - (let - ((X2 Bool (let ((X2 Int moesi.res.nondet_1)) (>= X2 1)))) - (let - ((X3 - Bool (let - ((X3 Int moesi.res.nondet_3) (X4 Int moesi.res.nondet_2)) - (>= (- X4 X3) 1)))) - (and - (= moesi.usr.shared_mo_a_0 0) - (let - ((X4 Bool (let ((X4 Int moesi.res.nondet_4)) (>= X4 1)))) - (and - (= moesi.usr.owned_mo_a_0 0) - (= moesi.usr.erreur_mo_a_0 false) - moesi.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_moesi_0 ( - (moesi.usr.init_invalid_mo_a_1 Int) - (moesi.usr.etat_mo1_a_1 Bool) - (moesi.usr.etat_mo2_a_1 Bool) - (moesi.usr.etat_mo3_a_1 Bool) - (moesi.usr.etat_mo4_a_1 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_1 Int) - (moesi.usr.exclusive_mo_a_1 Int) - (moesi.usr.shared_mo_a_1 Int) - (moesi.usr.invalid_mo_a_1 Int) - (moesi.usr.owned_mo_a_1 Int) - (moesi.usr.erreur_mo_a_1 Bool) - (moesi.res.init_flag_a_1 Bool) - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (let - ((X2 Bool (>= (- moesi.usr.shared_mo_a_0 moesi.usr.owned_mo_a_0) 1))) - (let - ((X3 Bool (>= moesi.usr.exclusive_mo_a_0 1))) - (let - ((X4 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (and - (= - moesi.usr.modified_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.modified_mo_a_0) - moesi.usr.modified_mo_a_0))))) - (= - moesi.usr.invalid_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite - X2 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite - X1 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - moesi.usr.invalid_mo_a_0)))) - (= - moesi.usr.exclusive_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 1 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 1 moesi.usr.exclusive_mo_a_0) - moesi.usr.exclusive_mo_a_0))))) - (= - moesi.usr.shared_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) - moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.shared_mo_a_0) - moesi.usr.shared_mo_a_0)))) - (= - moesi.usr.owned_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.owned_mo_a_0) - moesi.usr.owned_mo_a_0)))) - (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) - (not moesi.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Int top.res.abs_4_a_0)) - (let - ((X6 Bool top.res.abs_7_a_0)) - (and - (= top.res.abs_8_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_moesi_0 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_1_a_0) - (__node_init_excludes4_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.init_invalid_mo_a_1 Int) - (top.usr.etat_mo1_a_1 Bool) - (top.usr.etat_mo2_a_1 Bool) - (top.usr.etat_mo3_a_1 Bool) - (top.usr.etat_mo4_a_1 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_7_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8_a_0))) - (= top.res.abs_8_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_moesi_0 - top.usr.init_invalid_mo_a_1 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_2_a_1 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.inst_1_a_1 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes4_0 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.init_invalid_mo Int) -(declare-primed-var top.usr.etat_mo1 Bool) -(declare-primed-var top.usr.etat_mo2 Bool) -(declare-primed-var top.usr.etat_mo3 Bool) -(declare-primed-var top.usr.etat_mo4 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int top.res.abs_0)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Int top.res.abs_4)) - (let - ((X6 Bool top.res.abs_7)) - (and - (= top.res.abs_8 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_moesi_0 - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_1) - (__node_init_excludes4_0 - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.init_invalid_mo! Int) - (top.usr.etat_mo1! Bool) - (top.usr.etat_mo2! Bool) - (top.usr.etat_mo3! Bool) - (top.usr.etat_mo4! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Bool top.res.abs_7!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8))) - (= top.res.abs_8! (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_moesi_0 - top.usr.init_invalid_mo! - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_2! - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_6! - top.res.abs_7! - top.res.inst_1! - top.res.abs_6 - top.res.abs_7 - top.res.inst_1) - (__node_trans_excludes4_0 - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.abs_6! - top.res.inst_0! - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes4_0 ((excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_0 (not (or (or (or (or (and (and (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) excludes4.usr.X1_a_0) excludes4.usr.X3_a_0) (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) excludes4.res.init_flag_a_0)) +(define-fun __node_trans_excludes4_0 ((excludes4.usr.X1_a_1 Bool) (excludes4.usr.X2_a_1 Bool) (excludes4.usr.X3_a_1 Bool) (excludes4.usr.X4_a_1 Bool) (excludes4.usr.excludes_a_1 Bool) (excludes4.res.init_flag_a_1 Bool) (excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_1 (not (or (or (or (or (and (and (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) excludes4.usr.X1_a_1) excludes4.usr.X3_a_1) (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) (not excludes4.res.init_flag_a_1))) +(define-fun __node_init_moesi_0 ((moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (and (= moesi.usr.modified_mo_a_0 0) (let ((X1 (let ((X1 moesi.res.nondet_0)) (>= X1 1)))) (and (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) (= moesi.usr.exclusive_mo_a_0 0) (let ((X2 (let ((X2 moesi.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 moesi.res.nondet_3) (X4 moesi.res.nondet_2)) (>= (- X4 X3) 1)))) (and (= moesi.usr.shared_mo_a_0 0) (let ((X4 (let ((X4 moesi.res.nondet_4)) (>= X4 1)))) (and (= moesi.usr.owned_mo_a_0 0) (= moesi.usr.erreur_mo_a_0 false) moesi.res.init_flag_a_0))))))))) +(define-fun __node_trans_moesi_0 ((moesi.usr.init_invalid_mo_a_1 Int) (moesi.usr.etat_mo1_a_1 Bool) (moesi.usr.etat_mo2_a_1 Bool) (moesi.usr.etat_mo3_a_1 Bool) (moesi.usr.etat_mo4_a_1 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_1 Int) (moesi.usr.exclusive_mo_a_1 Int) (moesi.usr.shared_mo_a_1 Int) (moesi.usr.invalid_mo_a_1 Int) (moesi.usr.owned_mo_a_1 Int) (moesi.usr.erreur_mo_a_1 Bool) (moesi.res.init_flag_a_1 Bool) (moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= moesi.usr.invalid_mo_a_0 1))) (let ((X2 (>= (- moesi.usr.shared_mo_a_0 moesi.usr.owned_mo_a_0) 1))) (let ((X3 (>= moesi.usr.exclusive_mo_a_0 1))) (let ((X4 (>= moesi.usr.invalid_mo_a_0 1))) (and (= moesi.usr.modified_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.modified_mo_a_0) moesi.usr.modified_mo_a_0))))) (= moesi.usr.invalid_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) moesi.usr.invalid_mo_a_0)))) (= moesi.usr.exclusive_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 1 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 1 moesi.usr.exclusive_mo_a_0) moesi.usr.exclusive_mo_a_0))))) (= moesi.usr.shared_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.shared_mo_a_0) moesi.usr.shared_mo_a_0)))) (= moesi.usr.owned_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.owned_mo_a_0) moesi.usr.owned_mo_a_0)))) (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) (not moesi.res.init_flag_a_1))))))) +(define-fun __node_init_top_0 ((top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_4_a_0)) (let ((X6 top.res.abs_7_a_0)) (and (= top.res.abs_8_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_moesi_0 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_1_a_0) (__node_init_excludes4_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.init_invalid_mo_a_1 Int) (top.usr.etat_mo1_a_1 Bool) (top.usr.etat_mo2_a_1 Bool) (top.usr.etat_mo3_a_1 Bool) (top.usr.etat_mo4_a_1 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_7_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8_a_0))) (= top.res.abs_8_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_moesi_0 top.usr.init_invalid_mo_a_1 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_2_a_1 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.inst_1_a_1 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_1_a_0) (__node_trans_excludes4_0 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_4)) (let ((X6 top.res.abs_7)) (and (= top.res.abs_8 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_moesi_0 top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_1) (__node_init_excludes4_0 top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.init_invalid_mo! Int) (top.usr.etat_mo1! Bool) (top.usr.etat_mo2! Bool) (top.usr.etat_mo3! Bool) (top.usr.etat_mo4! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_7!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8))) (= top.res.abs_8! (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_moesi_0 top.usr.init_invalid_mo! top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_2! top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_6! top.res.abs_7! top.res.inst_1! top.res.abs_6 top.res.abs_7 top.res.inst_1) (__node_trans_excludes4_0 top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.abs_6! top.res.inst_0! top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/MOESI_2_e8_926_e8_2138.sl b/benchmarks/LIA/Lustre/MOESI_2_e8_926_e8_2138.sl index 8918251..4f12a73 100644 --- a/benchmarks/LIA/Lustre/MOESI_2_e8_926_e8_2138.sl +++ b/benchmarks/LIA/Lustre/MOESI_2_e8_926_e8_2138.sl @@ -1,745 +1,36 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes4_0 ( - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_0 - (not - (or - (or - (or - (and - (and - (and - (and - (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) - excludes4.usr.X1_a_0) - excludes4.usr.X3_a_0) - excludes4.usr.X1_a_0) - excludes4.usr.X4_a_0) - (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) - excludes4.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes4_0 ( - (excludes4.usr.X1_a_1 Bool) - (excludes4.usr.X2_a_1 Bool) - (excludes4.usr.X3_a_1 Bool) - (excludes4.usr.X4_a_1 Bool) - (excludes4.usr.excludes_a_1 Bool) - (excludes4.res.init_flag_a_1 Bool) - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_1 - (not - (or - (or - (or - (and - (and - (and - (and - (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) - excludes4.usr.X1_a_1) - excludes4.usr.X3_a_1) - excludes4.usr.X1_a_1) - excludes4.usr.X4_a_1) - (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) - (not excludes4.res.init_flag_a_1)) -) - -(define-fun - __node_init_moesi_0 ( - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (and - (= moesi.usr.modified_mo_a_0 0) - (let - ((X1 Bool (let ((X1 Int moesi.res.nondet_0)) (>= X1 1)))) - (and - (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) - (= moesi.usr.exclusive_mo_a_0 0) - (let - ((X2 Bool (let ((X2 Int moesi.res.nondet_1)) (>= X2 1)))) - (let - ((X3 - Bool (let - ((X3 Int moesi.res.nondet_3) (X4 Int moesi.res.nondet_2)) - (>= (+ X4 X3) 1)))) - (and - (= moesi.usr.shared_mo_a_0 0) - (let - ((X4 Bool (let ((X4 Int moesi.res.nondet_4)) (>= X4 1)))) - (and - (= moesi.usr.owned_mo_a_0 0) - (= moesi.usr.erreur_mo_a_0 false) - moesi.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_moesi_0 ( - (moesi.usr.init_invalid_mo_a_1 Int) - (moesi.usr.etat_mo1_a_1 Bool) - (moesi.usr.etat_mo2_a_1 Bool) - (moesi.usr.etat_mo3_a_1 Bool) - (moesi.usr.etat_mo4_a_1 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_1 Int) - (moesi.usr.exclusive_mo_a_1 Int) - (moesi.usr.shared_mo_a_1 Int) - (moesi.usr.invalid_mo_a_1 Int) - (moesi.usr.owned_mo_a_1 Int) - (moesi.usr.erreur_mo_a_1 Bool) - (moesi.res.init_flag_a_1 Bool) - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (let - ((X2 Bool (>= (+ moesi.usr.shared_mo_a_0 moesi.usr.owned_mo_a_0) 1))) - (let - ((X3 Bool (>= moesi.usr.exclusive_mo_a_0 1))) - (let - ((X4 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (and - (= - moesi.usr.modified_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.modified_mo_a_0) - moesi.usr.modified_mo_a_0))))) - (= - moesi.usr.invalid_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite - X2 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite - X1 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - moesi.usr.invalid_mo_a_0)))) - (= - moesi.usr.exclusive_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 1 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 1 moesi.usr.exclusive_mo_a_0) - moesi.usr.exclusive_mo_a_0))))) - (= - moesi.usr.shared_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) - moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.shared_mo_a_0) - moesi.usr.shared_mo_a_0)))) - (= - moesi.usr.owned_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.owned_mo_a_0) - moesi.usr.owned_mo_a_0)))) - (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) - (not moesi.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (let - ((X5 Int top.res.abs_4_a_0)) - (let - ((X6 Bool top.res.abs_7_a_0)) - (and - (= top.res.abs_8_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_moesi_0 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_1_a_0) - (__node_init_excludes4_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.init_invalid_mo_a_1 Int) - (top.usr.etat_mo1_a_1 Bool) - (top.usr.etat_mo2_a_1 Bool) - (top.usr.etat_mo3_a_1 Bool) - (top.usr.etat_mo4_a_1 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_7_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (let - ((X6 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8_a_0))) - (= top.res.abs_8_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_moesi_0 - top.usr.init_invalid_mo_a_1 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_2_a_1 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.inst_1_a_1 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes4_0 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.init_invalid_mo Int) -(declare-primed-var top.usr.etat_mo1 Bool) -(declare-primed-var top.usr.etat_mo2 Bool) -(declare-primed-var top.usr.etat_mo3 Bool) -(declare-primed-var top.usr.etat_mo4 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int top.res.abs_0)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_3)) - (let - ((X5 Int top.res.abs_4)) - (let - ((X6 Bool top.res.abs_7)) - (and - (= top.res.abs_8 (+ (+ (+ (+ X1 X2) X3) X4) X5)) - (__node_init_moesi_0 - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_1) - (__node_init_excludes4_0 - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag)))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.init_invalid_mo! Int) - (top.usr.etat_mo1! Bool) - (top.usr.etat_mo2! Bool) - (top.usr.etat_mo3! Bool) - (top.usr.etat_mo4! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Bool top.res.abs_7!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (let - ((X6 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8))) - (= top.res.abs_8! (+ (+ (+ (+ X6 X5) X4) X3) X2)) - (__node_trans_moesi_0 - top.usr.init_invalid_mo! - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_2! - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_6! - top.res.abs_7! - top.res.inst_1! - top.res.abs_6 - top.res.abs_7 - top.res.inst_1) - (__node_trans_excludes4_0 - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.abs_6! - top.res.inst_0! - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes4_0 ((excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_0 (not (or (or (or (and (and (and (and (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) excludes4.usr.X1_a_0) excludes4.usr.X3_a_0) excludes4.usr.X1_a_0) excludes4.usr.X4_a_0) (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) excludes4.res.init_flag_a_0)) +(define-fun __node_trans_excludes4_0 ((excludes4.usr.X1_a_1 Bool) (excludes4.usr.X2_a_1 Bool) (excludes4.usr.X3_a_1 Bool) (excludes4.usr.X4_a_1 Bool) (excludes4.usr.excludes_a_1 Bool) (excludes4.res.init_flag_a_1 Bool) (excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_1 (not (or (or (or (and (and (and (and (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) excludes4.usr.X1_a_1) excludes4.usr.X3_a_1) excludes4.usr.X1_a_1) excludes4.usr.X4_a_1) (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) (not excludes4.res.init_flag_a_1))) +(define-fun __node_init_moesi_0 ((moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (and (= moesi.usr.modified_mo_a_0 0) (let ((X1 (let ((X1 moesi.res.nondet_0)) (>= X1 1)))) (and (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) (= moesi.usr.exclusive_mo_a_0 0) (let ((X2 (let ((X2 moesi.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 moesi.res.nondet_3) (X4 moesi.res.nondet_2)) (>= (+ X4 X3) 1)))) (and (= moesi.usr.shared_mo_a_0 0) (let ((X4 (let ((X4 moesi.res.nondet_4)) (>= X4 1)))) (and (= moesi.usr.owned_mo_a_0 0) (= moesi.usr.erreur_mo_a_0 false) moesi.res.init_flag_a_0))))))))) +(define-fun __node_trans_moesi_0 ((moesi.usr.init_invalid_mo_a_1 Int) (moesi.usr.etat_mo1_a_1 Bool) (moesi.usr.etat_mo2_a_1 Bool) (moesi.usr.etat_mo3_a_1 Bool) (moesi.usr.etat_mo4_a_1 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_1 Int) (moesi.usr.exclusive_mo_a_1 Int) (moesi.usr.shared_mo_a_1 Int) (moesi.usr.invalid_mo_a_1 Int) (moesi.usr.owned_mo_a_1 Int) (moesi.usr.erreur_mo_a_1 Bool) (moesi.res.init_flag_a_1 Bool) (moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= moesi.usr.invalid_mo_a_0 1))) (let ((X2 (>= (+ moesi.usr.shared_mo_a_0 moesi.usr.owned_mo_a_0) 1))) (let ((X3 (>= moesi.usr.exclusive_mo_a_0 1))) (let ((X4 (>= moesi.usr.invalid_mo_a_0 1))) (and (= moesi.usr.modified_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.modified_mo_a_0) moesi.usr.modified_mo_a_0))))) (= moesi.usr.invalid_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) moesi.usr.invalid_mo_a_0)))) (= moesi.usr.exclusive_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 1 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 1 moesi.usr.exclusive_mo_a_0) moesi.usr.exclusive_mo_a_0))))) (= moesi.usr.shared_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.shared_mo_a_0) moesi.usr.shared_mo_a_0)))) (= moesi.usr.owned_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.owned_mo_a_0) moesi.usr.owned_mo_a_0)))) (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) (not moesi.res.init_flag_a_1))))))) +(define-fun __node_init_top_0 ((top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_3_a_0)) (let ((X5 top.res.abs_4_a_0)) (let ((X6 top.res.abs_7_a_0)) (and (= top.res.abs_8_a_0 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_moesi_0 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_1_a_0) (__node_init_excludes4_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))) +(define-fun __node_trans_top_0 ((top.usr.init_invalid_mo_a_1 Int) (top.usr.etat_mo1_a_1 Bool) (top.usr.etat_mo2_a_1 Bool) (top.usr.etat_mo3_a_1 Bool) (top.usr.etat_mo4_a_1 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_7_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (let ((X6 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8_a_0))) (= top.res.abs_8_a_1 (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_moesi_0 top.usr.init_invalid_mo_a_1 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_2_a_1 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.inst_1_a_1 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_1_a_0) (__node_trans_excludes4_0 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_3)) (let ((X5 top.res.abs_4)) (let ((X6 top.res.abs_7)) (and (= top.res.abs_8 (+ (+ (+ (+ X1 X2) X3) X4) X5)) (__node_init_moesi_0 top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_1) (__node_init_excludes4_0 top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) top.res.init_flag))))))))) +(define-fun trans ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.init_invalid_mo! Int) (top.usr.etat_mo1! Bool) (top.usr.etat_mo2! Bool) (top.usr.etat_mo3! Bool) (top.usr.etat_mo4! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_7!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (let ((X6 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ (+ (+ X6 X5) X4) X3) X2) top.res.abs_8))) (= top.res.abs_8! (+ (+ (+ (+ X6 X5) X4) X3) X2)) (__node_trans_moesi_0 top.usr.init_invalid_mo! top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_2! top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_6! top.res.abs_7! top.res.inst_1! top.res.abs_6 top.res.abs_7 top.res.inst_1) (__node_trans_excludes4_0 top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.abs_6! top.res.inst_0! top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/MOESI_all.sl b/benchmarks/LIA/Lustre/MOESI_all.sl index 2e1048c..d07db5e 100644 --- a/benchmarks/LIA/Lustre/MOESI_all.sl +++ b/benchmarks/LIA/Lustre/MOESI_all.sl @@ -1,749 +1,36 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes4_0 ( - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_0 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) - (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) - (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) - (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) - excludes4.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes4_0 ( - (excludes4.usr.X1_a_1 Bool) - (excludes4.usr.X2_a_1 Bool) - (excludes4.usr.X3_a_1 Bool) - (excludes4.usr.X4_a_1 Bool) - (excludes4.usr.excludes_a_1 Bool) - (excludes4.res.init_flag_a_1 Bool) - (excludes4.usr.X1_a_0 Bool) - (excludes4.usr.X2_a_0 Bool) - (excludes4.usr.X3_a_0 Bool) - (excludes4.usr.X4_a_0 Bool) - (excludes4.usr.excludes_a_0 Bool) - (excludes4.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes4.usr.excludes_a_1 - (not - (or - (or - (or - (or - (or - (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) - (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) - (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) - (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) - (not excludes4.res.init_flag_a_1)) -) - -(define-fun - __node_init_moesi_0 ( - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (and - (= moesi.usr.modified_mo_a_0 0) - (let - ((X1 Bool (let ((X1 Int moesi.res.nondet_0)) (>= X1 1)))) - (and - (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) - (= moesi.usr.exclusive_mo_a_0 0) - (let - ((X2 Bool (let ((X2 Int moesi.res.nondet_1)) (>= X2 1)))) - (let - ((X3 - Bool (let - ((X3 Int moesi.res.nondet_3) (X4 Int moesi.res.nondet_2)) - (>= (+ X4 X3) 1)))) - (and - (= moesi.usr.shared_mo_a_0 0) - (let - ((X4 Bool (let ((X4 Int moesi.res.nondet_4)) (>= X4 1)))) - (and - (= moesi.usr.owned_mo_a_0 0) - (= moesi.usr.erreur_mo_a_0 false) - moesi.res.init_flag_a_0)))))))) -) - -(define-fun - __node_trans_moesi_0 ( - (moesi.usr.init_invalid_mo_a_1 Int) - (moesi.usr.etat_mo1_a_1 Bool) - (moesi.usr.etat_mo2_a_1 Bool) - (moesi.usr.etat_mo3_a_1 Bool) - (moesi.usr.etat_mo4_a_1 Bool) - (moesi.res.nondet_4 Int) - (moesi.res.nondet_3 Int) - (moesi.res.nondet_2 Int) - (moesi.res.nondet_1 Int) - (moesi.res.nondet_0 Int) - (moesi.usr.modified_mo_a_1 Int) - (moesi.usr.exclusive_mo_a_1 Int) - (moesi.usr.shared_mo_a_1 Int) - (moesi.usr.invalid_mo_a_1 Int) - (moesi.usr.owned_mo_a_1 Int) - (moesi.usr.erreur_mo_a_1 Bool) - (moesi.res.init_flag_a_1 Bool) - (moesi.usr.init_invalid_mo_a_0 Int) - (moesi.usr.etat_mo1_a_0 Bool) - (moesi.usr.etat_mo2_a_0 Bool) - (moesi.usr.etat_mo3_a_0 Bool) - (moesi.usr.etat_mo4_a_0 Bool) - (moesi.usr.modified_mo_a_0 Int) - (moesi.usr.exclusive_mo_a_0 Int) - (moesi.usr.shared_mo_a_0 Int) - (moesi.usr.invalid_mo_a_0 Int) - (moesi.usr.owned_mo_a_0 Int) - (moesi.usr.erreur_mo_a_0 Bool) - (moesi.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (let - ((X2 Bool (>= (+ moesi.usr.shared_mo_a_0 moesi.usr.owned_mo_a_0) 1))) - (let - ((X3 Bool (>= moesi.usr.exclusive_mo_a_0 1))) - (let - ((X4 Bool (>= moesi.usr.invalid_mo_a_0 1))) - (and - (= - moesi.usr.modified_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.modified_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.modified_mo_a_0) - moesi.usr.modified_mo_a_0))))) - (= - moesi.usr.invalid_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite - X2 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite - X1 - (- - (+ - (+ - (+ - (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.exclusive_mo_a_0) - moesi.usr.shared_mo_a_0) - moesi.usr.owned_mo_a_0) - 1) - moesi.usr.invalid_mo_a_0) - moesi.usr.invalid_mo_a_0)))) - (= - moesi.usr.exclusive_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite X4 0 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo2_a_1 - (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 1 moesi.usr.exclusive_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 1 moesi.usr.exclusive_mo_a_0) - moesi.usr.exclusive_mo_a_0))))) - (= - moesi.usr.shared_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) - moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.shared_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.shared_mo_a_0) - moesi.usr.shared_mo_a_0)))) - (= - moesi.usr.owned_mo_a_1 - (ite - moesi.usr.etat_mo1_a_1 - (ite - X4 - (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) - moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo3_a_1 - (ite X2 0 moesi.usr.owned_mo_a_0) - (ite - moesi.usr.etat_mo4_a_1 - (ite X1 0 moesi.usr.owned_mo_a_0) - moesi.usr.owned_mo_a_0)))) - (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) - (not moesi.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_7_a_0)) - (let - ((X2 Bool top.res.abs_5_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (not X2))) - (let - ((X3 Int top.res.abs_0_a_0)) - (let - ((X4 Int top.res.abs_1_a_0)) - (let - ((X5 Int top.res.abs_2_a_0)) - (let - ((X6 Int top.res.abs_3_a_0)) - (let - ((X7 Int top.res.abs_4_a_0)) - (and - (= top.res.abs_8_a_0 (+ (+ (+ (+ X3 X4) X5) X6) X7)) - (__node_init_moesi_0 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_1_a_0) - (__node_init_excludes4_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.init_invalid_mo_a_1 Int) - (top.usr.etat_mo1_a_1 Bool) - (top.usr.etat_mo2_a_1 Bool) - (top.usr.etat_mo3_a_1 Bool) - (top.usr.etat_mo4_a_1 Bool) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.init_invalid_mo_a_0 Int) - (top.usr.etat_mo1_a_0 Bool) - (top.usr.etat_mo2_a_0 Bool) - (top.usr.etat_mo3_a_0 Bool) - (top.usr.etat_mo4_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_7_a_1)) - (let - ((X2 Bool top.res.abs_5_a_1)) - (let - ((X3 Int top.res.abs_4_a_1)) - (let - ((X4 Int top.res.abs_3_a_1)) - (let - ((X5 Int top.res.abs_2_a_1)) - (let - ((X6 Int top.res.abs_1_a_1)) - (let - ((X7 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_8_a_0)))) - (= top.res.abs_8_a_1 (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_trans_moesi_0 - top.usr.init_invalid_mo_a_1 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_2_a_1 - top.usr.init_invalid_mo_a_0 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.inst_1_a_1 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes4_0 - top.usr.etat_mo1_a_1 - top.usr.etat_mo2_a_1 - top.usr.etat_mo3_a_1 - top.usr.etat_mo4_a_1 - top.res.abs_6_a_1 - top.res.inst_0_a_1 - top.usr.etat_mo1_a_0 - top.usr.etat_mo2_a_0 - top.usr.etat_mo3_a_0 - top.usr.etat_mo4_a_0 - top.res.abs_6_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.init_invalid_mo Int) -(declare-primed-var top.usr.etat_mo1 Bool) -(declare-primed-var top.usr.etat_mo2 Bool) -(declare-primed-var top.usr.etat_mo3 Bool) -(declare-primed-var top.usr.etat_mo4 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_7)) - (let - ((X2 Bool top.res.abs_5)) - (and - (= top.usr.OK (=> X1 (not X2))) - (let - ((X3 Int top.res.abs_0)) - (let - ((X4 Int top.res.abs_1)) - (let - ((X5 Int top.res.abs_2)) - (let - ((X6 Int top.res.abs_3)) - (let - ((X7 Int top.res.abs_4)) - (and - (= top.res.abs_8 (+ (+ (+ (+ X3 X4) X5) X6) X7)) - (__node_init_moesi_0 - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_1) - (__node_init_excludes4_0 - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - top.res.init_flag))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.init_invalid_mo! Int) - (top.usr.etat_mo1! Bool) - (top.usr.etat_mo2! Bool) - (top.usr.etat_mo3! Bool) - (top.usr.etat_mo4! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Bool top.res.abs_7!)) - (let - ((X2 Bool top.res.abs_5!)) - (let - ((X3 Int top.res.abs_4!)) - (let - ((X4 Int top.res.abs_3!)) - (let - ((X5 Int top.res.abs_2!)) - (let - ((X6 Int top.res.abs_1!)) - (let - ((X7 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> - X1 - (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_8)))) - (= top.res.abs_8! (+ (+ (+ (+ X7 X6) X5) X4) X3)) - (__node_trans_moesi_0 - top.usr.init_invalid_mo! - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.inst_2! - top.usr.init_invalid_mo - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_6! - top.res.abs_7! - top.res.inst_1! - top.res.abs_6 - top.res.abs_7 - top.res.inst_1) - (__node_trans_excludes4_0 - top.usr.etat_mo1! - top.usr.etat_mo2! - top.usr.etat_mo3! - top.usr.etat_mo4! - top.res.abs_6! - top.res.inst_0! - top.usr.etat_mo1 - top.usr.etat_mo2 - top.usr.etat_mo3 - top.usr.etat_mo4 - top.res.abs_6 - top.res.inst_0) - (not top.res.init_flag!))))))))) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.init_invalid_mo Int) - (top.usr.etat_mo1 Bool) - (top.usr.etat_mo2 Bool) - (top.usr.etat_mo3 Bool) - (top.usr.etat_mo4 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes4_0 ((excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_0 (not (or (or (or (or (or (and excludes4.usr.X1_a_0 excludes4.usr.X2_a_0) (and excludes4.usr.X1_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X1_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X3_a_0)) (and excludes4.usr.X2_a_0 excludes4.usr.X4_a_0)) (and excludes4.usr.X3_a_0 excludes4.usr.X4_a_0)))) excludes4.res.init_flag_a_0)) +(define-fun __node_trans_excludes4_0 ((excludes4.usr.X1_a_1 Bool) (excludes4.usr.X2_a_1 Bool) (excludes4.usr.X3_a_1 Bool) (excludes4.usr.X4_a_1 Bool) (excludes4.usr.excludes_a_1 Bool) (excludes4.res.init_flag_a_1 Bool) (excludes4.usr.X1_a_0 Bool) (excludes4.usr.X2_a_0 Bool) (excludes4.usr.X3_a_0 Bool) (excludes4.usr.X4_a_0 Bool) (excludes4.usr.excludes_a_0 Bool) (excludes4.res.init_flag_a_0 Bool)) Bool + (and (= excludes4.usr.excludes_a_1 (not (or (or (or (or (or (and excludes4.usr.X1_a_1 excludes4.usr.X2_a_1) (and excludes4.usr.X1_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X1_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X3_a_1)) (and excludes4.usr.X2_a_1 excludes4.usr.X4_a_1)) (and excludes4.usr.X3_a_1 excludes4.usr.X4_a_1)))) (not excludes4.res.init_flag_a_1))) +(define-fun __node_init_moesi_0 ((moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (and (= moesi.usr.modified_mo_a_0 0) (let ((X1 (let ((X1 moesi.res.nondet_0)) (>= X1 1)))) (and (= moesi.usr.invalid_mo_a_0 moesi.usr.init_invalid_mo_a_0) (= moesi.usr.exclusive_mo_a_0 0) (let ((X2 (let ((X2 moesi.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 moesi.res.nondet_3) (X4 moesi.res.nondet_2)) (>= (+ X4 X3) 1)))) (and (= moesi.usr.shared_mo_a_0 0) (let ((X4 (let ((X4 moesi.res.nondet_4)) (>= X4 1)))) (and (= moesi.usr.owned_mo_a_0 0) (= moesi.usr.erreur_mo_a_0 false) moesi.res.init_flag_a_0))))))))) +(define-fun __node_trans_moesi_0 ((moesi.usr.init_invalid_mo_a_1 Int) (moesi.usr.etat_mo1_a_1 Bool) (moesi.usr.etat_mo2_a_1 Bool) (moesi.usr.etat_mo3_a_1 Bool) (moesi.usr.etat_mo4_a_1 Bool) (moesi.res.nondet_4 Int) (moesi.res.nondet_3 Int) (moesi.res.nondet_2 Int) (moesi.res.nondet_1 Int) (moesi.res.nondet_0 Int) (moesi.usr.modified_mo_a_1 Int) (moesi.usr.exclusive_mo_a_1 Int) (moesi.usr.shared_mo_a_1 Int) (moesi.usr.invalid_mo_a_1 Int) (moesi.usr.owned_mo_a_1 Int) (moesi.usr.erreur_mo_a_1 Bool) (moesi.res.init_flag_a_1 Bool) (moesi.usr.init_invalid_mo_a_0 Int) (moesi.usr.etat_mo1_a_0 Bool) (moesi.usr.etat_mo2_a_0 Bool) (moesi.usr.etat_mo3_a_0 Bool) (moesi.usr.etat_mo4_a_0 Bool) (moesi.usr.modified_mo_a_0 Int) (moesi.usr.exclusive_mo_a_0 Int) (moesi.usr.shared_mo_a_0 Int) (moesi.usr.invalid_mo_a_0 Int) (moesi.usr.owned_mo_a_0 Int) (moesi.usr.erreur_mo_a_0 Bool) (moesi.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= moesi.usr.invalid_mo_a_0 1))) (let ((X2 (>= (+ moesi.usr.shared_mo_a_0 moesi.usr.owned_mo_a_0) 1))) (let ((X3 (>= moesi.usr.exclusive_mo_a_0 1))) (let ((X4 (>= moesi.usr.invalid_mo_a_0 1))) (and (= moesi.usr.modified_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (+ moesi.usr.modified_mo_a_0 1) moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.modified_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.modified_mo_a_0) moesi.usr.modified_mo_a_0))))) (= moesi.usr.invalid_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (- moesi.usr.invalid_mo_a_0 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 (- (+ (+ (+ (+ moesi.usr.invalid_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.exclusive_mo_a_0) moesi.usr.shared_mo_a_0) moesi.usr.owned_mo_a_0) 1) moesi.usr.invalid_mo_a_0) moesi.usr.invalid_mo_a_0)))) (= moesi.usr.exclusive_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 0 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo2_a_1 (ite X3 (- moesi.usr.exclusive_mo_a_0 1) moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 1 moesi.usr.exclusive_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 1 moesi.usr.exclusive_mo_a_0) moesi.usr.exclusive_mo_a_0))))) (= moesi.usr.shared_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ (+ moesi.usr.shared_mo_a_0 moesi.usr.exclusive_mo_a_0) 1) moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.shared_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.shared_mo_a_0) moesi.usr.shared_mo_a_0)))) (= moesi.usr.owned_mo_a_1 (ite moesi.usr.etat_mo1_a_1 (ite X4 (+ moesi.usr.owned_mo_a_0 moesi.usr.modified_mo_a_0) moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo3_a_1 (ite X2 0 moesi.usr.owned_mo_a_0) (ite moesi.usr.etat_mo4_a_1 (ite X1 0 moesi.usr.owned_mo_a_0) moesi.usr.owned_mo_a_0)))) (= moesi.usr.erreur_mo_a_1 (>= moesi.usr.exclusive_mo_a_1 2)) (not moesi.res.init_flag_a_1))))))) +(define-fun __node_init_top_0 ((top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_7_a_0)) (let ((X2 top.res.abs_5_a_0)) (and (= top.usr.OK_a_0 (=> X1 (not X2))) (let ((X3 top.res.abs_0_a_0)) (let ((X4 top.res.abs_1_a_0)) (let ((X5 top.res.abs_2_a_0)) (let ((X6 top.res.abs_3_a_0)) (let ((X7 top.res.abs_4_a_0)) (and (= top.res.abs_8_a_0 (+ (+ (+ (+ X3 X4) X5) X6) X7)) (__node_init_moesi_0 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_1_a_0) (__node_init_excludes4_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))))) +(define-fun __node_trans_top_0 ((top.usr.init_invalid_mo_a_1 Int) (top.usr.etat_mo1_a_1 Bool) (top.usr.etat_mo2_a_1 Bool) (top.usr.etat_mo3_a_1 Bool) (top.usr.etat_mo4_a_1 Bool) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.init_invalid_mo_a_0 Int) (top.usr.etat_mo1_a_0 Bool) (top.usr.etat_mo2_a_0 Bool) (top.usr.etat_mo3_a_0 Bool) (top.usr.etat_mo4_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_7_a_1)) (let ((X2 top.res.abs_5_a_1)) (let ((X3 top.res.abs_4_a_1)) (let ((X4 top.res.abs_3_a_1)) (let ((X5 top.res.abs_2_a_1)) (let ((X6 top.res.abs_1_a_1)) (let ((X7 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_8_a_0)))) (= top.res.abs_8_a_1 (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_trans_moesi_0 top.usr.init_invalid_mo_a_1 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_2_a_1 top.usr.init_invalid_mo_a_0 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.inst_1_a_1 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_1_a_0) (__node_trans_excludes4_0 top.usr.etat_mo1_a_1 top.usr.etat_mo2_a_1 top.usr.etat_mo3_a_1 top.usr.etat_mo4_a_1 top.res.abs_6_a_1 top.res.inst_0_a_1 top.usr.etat_mo1_a_0 top.usr.etat_mo2_a_0 top.usr.etat_mo3_a_0 top.usr.etat_mo4_a_0 top.res.abs_6_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))))) +(synth-inv str_invariant ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_7)) (let ((X2 top.res.abs_5)) (and (= top.usr.OK (=> X1 (not X2))) (let ((X3 top.res.abs_0)) (let ((X4 top.res.abs_1)) (let ((X5 top.res.abs_2)) (let ((X6 top.res.abs_3)) (let ((X7 top.res.abs_4)) (and (= top.res.abs_8 (+ (+ (+ (+ X3 X4) X5) X6) X7)) (__node_init_moesi_0 top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_1) (__node_init_excludes4_0 top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) top.res.init_flag)))))))))) +(define-fun trans ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.init_invalid_mo! Int) (top.usr.etat_mo1! Bool) (top.usr.etat_mo2! Bool) (top.usr.etat_mo3! Bool) (top.usr.etat_mo4! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_7!)) (let ((X2 top.res.abs_5!)) (let ((X3 top.res.abs_4!)) (let ((X4 top.res.abs_3!)) (let ((X5 top.res.abs_2!)) (let ((X6 top.res.abs_1!)) (let ((X7 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (not X2) (= (+ (+ (+ (+ X7 X6) X5) X4) X3) top.res.abs_8)))) (= top.res.abs_8! (+ (+ (+ (+ X7 X6) X5) X4) X3)) (__node_trans_moesi_0 top.usr.init_invalid_mo! top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.inst_2! top.usr.init_invalid_mo top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_6! top.res.abs_7! top.res.inst_1! top.res.abs_6 top.res.abs_7 top.res.inst_1) (__node_trans_excludes4_0 top.usr.etat_mo1! top.usr.etat_mo2! top.usr.etat_mo3! top.usr.etat_mo4! top.res.abs_6! top.res.inst_0! top.usr.etat_mo1 top.usr.etat_mo2 top.usr.etat_mo3 top.usr.etat_mo4 top.res.abs_6 top.res.inst_0) (not top.res.init_flag!))))))))) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.init_invalid_mo Int) (top.usr.etat_mo1 Bool) (top.usr.etat_mo2 Bool) (top.usr.etat_mo3 Bool) (top.usr.etat_mo4 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/PRODUCER_CONSUMER_1.sl b/benchmarks/LIA/Lustre/PRODUCER_CONSUMER_1.sl index 51cac7b..144f846 100644 --- a/benchmarks/LIA/Lustre/PRODUCER_CONSUMER_1.sl +++ b/benchmarks/LIA/Lustre/PRODUCER_CONSUMER_1.sl @@ -1,561 +1,34 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_PRODUCER_CONSUMMER_0 ( - (PRODUCER_CONSUMMER.usr.etat1_a_0 Bool) - (PRODUCER_CONSUMMER.usr.etat2_a_0 Bool) - (PRODUCER_CONSUMMER.usr.etat3_a_0 Bool) - (PRODUCER_CONSUMMER.usr.a_init_a_0 Int) - (PRODUCER_CONSUMMER.res.nondet_2 Int) - (PRODUCER_CONSUMMER.res.nondet_1 Int) - (PRODUCER_CONSUMMER.res.nondet_0 Int) - (PRODUCER_CONSUMMER.usr.i_a_0 Int) - (PRODUCER_CONSUMMER.usr.b_a_0 Int) - (PRODUCER_CONSUMMER.usr.a_a_0 Int) - (PRODUCER_CONSUMMER.usr.o1_a_0 Int) - (PRODUCER_CONSUMMER.usr.o2_a_0 Int) - (PRODUCER_CONSUMMER.res.init_flag_a_0 Bool) - ) Bool - - (and - (= PRODUCER_CONSUMMER.usr.a_a_0 PRODUCER_CONSUMMER.usr.a_init_a_0) - (= PRODUCER_CONSUMMER.usr.i_a_0 PRODUCER_CONSUMMER.usr.a_a_0) - (let - ((X1 Bool (let ((X1 Int PRODUCER_CONSUMMER.res.nondet_0)) (>= X1 1)))) - (and - (= PRODUCER_CONSUMMER.usr.b_a_0 0) - (let - ((X2 Bool (let ((X2 Int PRODUCER_CONSUMMER.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int PRODUCER_CONSUMMER.res.nondet_2)) (>= X3 1)))) - (and - (= PRODUCER_CONSUMMER.usr.o1_a_0 0) - (= PRODUCER_CONSUMMER.usr.o2_a_0 0) - PRODUCER_CONSUMMER.res.init_flag_a_0)))))) -) - -(define-fun - __node_trans_PRODUCER_CONSUMMER_0 ( - (PRODUCER_CONSUMMER.usr.etat1_a_1 Bool) - (PRODUCER_CONSUMMER.usr.etat2_a_1 Bool) - (PRODUCER_CONSUMMER.usr.etat3_a_1 Bool) - (PRODUCER_CONSUMMER.usr.a_init_a_1 Int) - (PRODUCER_CONSUMMER.res.nondet_2 Int) - (PRODUCER_CONSUMMER.res.nondet_1 Int) - (PRODUCER_CONSUMMER.res.nondet_0 Int) - (PRODUCER_CONSUMMER.usr.i_a_1 Int) - (PRODUCER_CONSUMMER.usr.b_a_1 Int) - (PRODUCER_CONSUMMER.usr.a_a_1 Int) - (PRODUCER_CONSUMMER.usr.o1_a_1 Int) - (PRODUCER_CONSUMMER.usr.o2_a_1 Int) - (PRODUCER_CONSUMMER.res.init_flag_a_1 Bool) - (PRODUCER_CONSUMMER.usr.etat1_a_0 Bool) - (PRODUCER_CONSUMMER.usr.etat2_a_0 Bool) - (PRODUCER_CONSUMMER.usr.etat3_a_0 Bool) - (PRODUCER_CONSUMMER.usr.a_init_a_0 Int) - (PRODUCER_CONSUMMER.usr.i_a_0 Int) - (PRODUCER_CONSUMMER.usr.b_a_0 Int) - (PRODUCER_CONSUMMER.usr.a_a_0 Int) - (PRODUCER_CONSUMMER.usr.o1_a_0 Int) - (PRODUCER_CONSUMMER.usr.o2_a_0 Int) - (PRODUCER_CONSUMMER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= PRODUCER_CONSUMMER.usr.i_a_0 1))) - (and - (= - PRODUCER_CONSUMMER.usr.i_a_1 - (ite - PRODUCER_CONSUMMER.usr.etat1_a_1 - (ite X1 (- PRODUCER_CONSUMMER.usr.i_a_0 1) PRODUCER_CONSUMMER.usr.i_a_0) - PRODUCER_CONSUMMER.usr.i_a_0)) - (= PRODUCER_CONSUMMER.usr.a_a_1 PRODUCER_CONSUMMER.usr.a_a_0) - (let - ((X2 Bool (>= PRODUCER_CONSUMMER.usr.b_a_0 1))) - (let - ((X3 Bool (>= PRODUCER_CONSUMMER.usr.b_a_0 1))) - (and - (= - PRODUCER_CONSUMMER.usr.b_a_1 - (ite - PRODUCER_CONSUMMER.usr.etat1_a_1 - (ite X1 (+ PRODUCER_CONSUMMER.usr.b_a_0 1) PRODUCER_CONSUMMER.usr.b_a_0) - (ite - PRODUCER_CONSUMMER.usr.etat2_a_1 - (ite - X3 - (- PRODUCER_CONSUMMER.usr.b_a_0 1) - PRODUCER_CONSUMMER.usr.b_a_0) - (ite - X2 - (- PRODUCER_CONSUMMER.usr.b_a_0 1) - PRODUCER_CONSUMMER.usr.b_a_0)))) - (= - PRODUCER_CONSUMMER.usr.o1_a_1 - (ite - PRODUCER_CONSUMMER.usr.etat2_a_1 - (ite - X3 - (+ PRODUCER_CONSUMMER.usr.o1_a_0 1) - PRODUCER_CONSUMMER.usr.o1_a_0) - PRODUCER_CONSUMMER.usr.o1_a_0)) - (= - PRODUCER_CONSUMMER.usr.o2_a_1 - (ite - PRODUCER_CONSUMMER.usr.etat3_a_1 - (ite - X2 - (+ PRODUCER_CONSUMMER.usr.o2_a_0 1) - PRODUCER_CONSUMMER.usr.o2_a_0) - PRODUCER_CONSUMMER.usr.o2_a_0)) - (not PRODUCER_CONSUMMER.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.etat1_a_0 Bool) - (top.usr.etat2_a_0 Bool) - (top.usr.etat3_a_0 Bool) - (top.usr.a_init_a_0 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_4_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (and - (= - top.res.abs_5_a_0 - (and - (and (not (and top.usr.etat2_a_0 top.usr.etat3_a_0)) (<= X2 32767)) - (<= X1 32767))) - (let - ((X3 - Bool (and - (and - (and top.res.abs_6_a_0 (not top.usr.etat1_a_0)) - (> top.res.abs_7_a_0 0)) - (< top.res.abs_7_a_0 10)))) - (and - (= top.usr.OK_a_0 (=> X3 (>= X2 0))) - (__node_init_PRODUCER_CONSUMMER_0 - top.usr.etat1_a_0 - top.usr.etat2_a_0 - top.usr.etat3_a_0 - top.usr.a_init_a_0 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.a_init_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.etat1_a_1 Bool) - (top.usr.etat2_a_1 Bool) - (top.usr.etat3_a_1 Bool) - (top.usr.a_init_a_1 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.etat1_a_0 Bool) - (top.usr.etat2_a_0 Bool) - (top.usr.etat3_a_0 Bool) - (top.usr.a_init_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_4_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (and - (= - top.res.abs_5_a_1 - (and - (and (not (and top.usr.etat2_a_1 top.usr.etat3_a_1)) (<= X2 32767)) - (<= X1 32767))) - (let - ((X3 - Bool (and - (and top.res.abs_6_a_1 (> top.res.abs_7_a_1 0)) - (< top.res.abs_7_a_1 10)))) - (and - (= top.usr.OK_a_1 (=> X3 (>= X2 0))) - (__node_trans_PRODUCER_CONSUMMER_0 - top.usr.etat1_a_1 - top.usr.etat2_a_1 - top.usr.etat3_a_1 - top.usr.a_init_a_1 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.inst_2_a_1 - top.usr.etat1_a_0 - top.usr.etat2_a_0 - top.usr.etat3_a_0 - top.usr.a_init_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.a_init_a_1 - top.res.abs_7_a_1 - top.res.inst_0_a_1 - top.usr.a_init_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))) -) - - - -(synth-inv str_invariant( - (top.usr.etat1 Bool) - (top.usr.etat2 Bool) - (top.usr.etat3 Bool) - (top.usr.a_init Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.etat1 Bool) -(declare-primed-var top.usr.etat2 Bool) -(declare-primed-var top.usr.etat3 Bool) -(declare-primed-var top.usr.a_init Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.etat1 Bool) - (top.usr.etat2 Bool) - (top.usr.etat3 Bool) - (top.usr.a_init Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_4)) - (let - ((X2 Int top.res.abs_3)) - (and - (= - top.res.abs_5 - (and - (and (not (and top.usr.etat2 top.usr.etat3)) (<= X2 32767)) - (<= X1 32767))) - (let - ((X3 - Bool (and - (and - (and top.res.abs_6 (not top.usr.etat1)) - (> top.res.abs_7 0)) - (< top.res.abs_7 10)))) - (and - (= top.usr.OK (=> X3 (>= X2 0))) - (__node_init_PRODUCER_CONSUMMER_0 - top.usr.etat1 - top.usr.etat2 - top.usr.etat3 - top.usr.a_init - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_First_0 top.usr.a_init top.res.abs_7 top.res.inst_0) - top.res.init_flag))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.etat1 Bool) - (top.usr.etat2 Bool) - (top.usr.etat3 Bool) - (top.usr.a_init Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.etat1! Bool) - (top.usr.etat2! Bool) - (top.usr.etat3! Bool) - (top.usr.a_init! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Int top.res.abs_4!)) - (let - ((X2 Int top.res.abs_3!)) - (and - (= - top.res.abs_5! - (and - (and (not (and top.usr.etat2! top.usr.etat3!)) (<= X2 32767)) - (<= X1 32767))) - (let - ((X3 - Bool (and - (and top.res.abs_6! (> top.res.abs_7! 0)) - (< top.res.abs_7! 10)))) - (and - (= top.usr.OK! (=> X3 (>= X2 0))) - (__node_trans_PRODUCER_CONSUMMER_0 - top.usr.etat1! - top.usr.etat2! - top.usr.etat3! - top.usr.a_init! - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.inst_2! - top.usr.etat1 - top.usr.etat2 - top.usr.etat3 - top.usr.a_init - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_First_0 - top.usr.a_init! - top.res.abs_7! - top.res.inst_0! - top.usr.a_init - top.res.abs_7 - top.res.inst_0) - (not top.res.init_flag!)))))) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.etat1 Bool) - (top.usr.etat2 Bool) - (top.usr.etat3 Bool) - (top.usr.a_init Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_PRODUCER_CONSUMMER_0 ((PRODUCER_CONSUMMER.usr.etat1_a_0 Bool) (PRODUCER_CONSUMMER.usr.etat2_a_0 Bool) (PRODUCER_CONSUMMER.usr.etat3_a_0 Bool) (PRODUCER_CONSUMMER.usr.a_init_a_0 Int) (PRODUCER_CONSUMMER.res.nondet_2 Int) (PRODUCER_CONSUMMER.res.nondet_1 Int) (PRODUCER_CONSUMMER.res.nondet_0 Int) (PRODUCER_CONSUMMER.usr.i_a_0 Int) (PRODUCER_CONSUMMER.usr.b_a_0 Int) (PRODUCER_CONSUMMER.usr.a_a_0 Int) (PRODUCER_CONSUMMER.usr.o1_a_0 Int) (PRODUCER_CONSUMMER.usr.o2_a_0 Int) (PRODUCER_CONSUMMER.res.init_flag_a_0 Bool)) Bool + (and (= PRODUCER_CONSUMMER.usr.a_a_0 PRODUCER_CONSUMMER.usr.a_init_a_0) (= PRODUCER_CONSUMMER.usr.i_a_0 PRODUCER_CONSUMMER.usr.a_a_0) (let ((X1 (let ((X1 PRODUCER_CONSUMMER.res.nondet_0)) (>= X1 1)))) (and (= PRODUCER_CONSUMMER.usr.b_a_0 0) (let ((X2 (let ((X2 PRODUCER_CONSUMMER.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 PRODUCER_CONSUMMER.res.nondet_2)) (>= X3 1)))) (and (= PRODUCER_CONSUMMER.usr.o1_a_0 0) (= PRODUCER_CONSUMMER.usr.o2_a_0 0) PRODUCER_CONSUMMER.res.init_flag_a_0))))))) +(define-fun __node_trans_PRODUCER_CONSUMMER_0 ((PRODUCER_CONSUMMER.usr.etat1_a_1 Bool) (PRODUCER_CONSUMMER.usr.etat2_a_1 Bool) (PRODUCER_CONSUMMER.usr.etat3_a_1 Bool) (PRODUCER_CONSUMMER.usr.a_init_a_1 Int) (PRODUCER_CONSUMMER.res.nondet_2 Int) (PRODUCER_CONSUMMER.res.nondet_1 Int) (PRODUCER_CONSUMMER.res.nondet_0 Int) (PRODUCER_CONSUMMER.usr.i_a_1 Int) (PRODUCER_CONSUMMER.usr.b_a_1 Int) (PRODUCER_CONSUMMER.usr.a_a_1 Int) (PRODUCER_CONSUMMER.usr.o1_a_1 Int) (PRODUCER_CONSUMMER.usr.o2_a_1 Int) (PRODUCER_CONSUMMER.res.init_flag_a_1 Bool) (PRODUCER_CONSUMMER.usr.etat1_a_0 Bool) (PRODUCER_CONSUMMER.usr.etat2_a_0 Bool) (PRODUCER_CONSUMMER.usr.etat3_a_0 Bool) (PRODUCER_CONSUMMER.usr.a_init_a_0 Int) (PRODUCER_CONSUMMER.usr.i_a_0 Int) (PRODUCER_CONSUMMER.usr.b_a_0 Int) (PRODUCER_CONSUMMER.usr.a_a_0 Int) (PRODUCER_CONSUMMER.usr.o1_a_0 Int) (PRODUCER_CONSUMMER.usr.o2_a_0 Int) (PRODUCER_CONSUMMER.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= PRODUCER_CONSUMMER.usr.i_a_0 1))) (and (= PRODUCER_CONSUMMER.usr.i_a_1 (ite PRODUCER_CONSUMMER.usr.etat1_a_1 (ite X1 (- PRODUCER_CONSUMMER.usr.i_a_0 1) PRODUCER_CONSUMMER.usr.i_a_0) PRODUCER_CONSUMMER.usr.i_a_0)) (= PRODUCER_CONSUMMER.usr.a_a_1 PRODUCER_CONSUMMER.usr.a_a_0) (let ((X2 (>= PRODUCER_CONSUMMER.usr.b_a_0 1))) (let ((X3 (>= PRODUCER_CONSUMMER.usr.b_a_0 1))) (and (= PRODUCER_CONSUMMER.usr.b_a_1 (ite PRODUCER_CONSUMMER.usr.etat1_a_1 (ite X1 (+ PRODUCER_CONSUMMER.usr.b_a_0 1) PRODUCER_CONSUMMER.usr.b_a_0) (ite PRODUCER_CONSUMMER.usr.etat2_a_1 (ite X3 (- PRODUCER_CONSUMMER.usr.b_a_0 1) PRODUCER_CONSUMMER.usr.b_a_0) (ite X2 (- PRODUCER_CONSUMMER.usr.b_a_0 1) PRODUCER_CONSUMMER.usr.b_a_0)))) (= PRODUCER_CONSUMMER.usr.o1_a_1 (ite PRODUCER_CONSUMMER.usr.etat2_a_1 (ite X3 (+ PRODUCER_CONSUMMER.usr.o1_a_0 1) PRODUCER_CONSUMMER.usr.o1_a_0) PRODUCER_CONSUMMER.usr.o1_a_0)) (= PRODUCER_CONSUMMER.usr.o2_a_1 (ite PRODUCER_CONSUMMER.usr.etat3_a_1 (ite X2 (+ PRODUCER_CONSUMMER.usr.o2_a_0 1) PRODUCER_CONSUMMER.usr.o2_a_0) PRODUCER_CONSUMMER.usr.o2_a_0)) (not PRODUCER_CONSUMMER.res.init_flag_a_1))))))) +(define-fun __node_init_top_0 ((top.usr.etat1_a_0 Bool) (top.usr.etat2_a_0 Bool) (top.usr.etat3_a_0 Bool) (top.usr.a_init_a_0 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_4_a_0)) (let ((X2 top.res.abs_3_a_0)) (and (= top.res.abs_5_a_0 (and (and (not (and top.usr.etat2_a_0 top.usr.etat3_a_0)) (<= X2 32767)) (<= X1 32767))) (let ((X3 (and (and (and top.res.abs_6_a_0 (not top.usr.etat1_a_0)) (> top.res.abs_7_a_0 0)) (< top.res.abs_7_a_0 10)))) (and (= top.usr.OK_a_0 (=> X3 (>= X2 0))) (__node_init_PRODUCER_CONSUMMER_0 top.usr.etat1_a_0 top.usr.etat2_a_0 top.usr.etat3_a_0 top.usr.a_init_a_0 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.a_init_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))) +(define-fun __node_trans_top_0 ((top.usr.etat1_a_1 Bool) (top.usr.etat2_a_1 Bool) (top.usr.etat3_a_1 Bool) (top.usr.a_init_a_1 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.etat1_a_0 Bool) (top.usr.etat2_a_0 Bool) (top.usr.etat3_a_0 Bool) (top.usr.a_init_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_4_a_1)) (let ((X2 top.res.abs_3_a_1)) (and (= top.res.abs_5_a_1 (and (and (not (and top.usr.etat2_a_1 top.usr.etat3_a_1)) (<= X2 32767)) (<= X1 32767))) (let ((X3 (and (and top.res.abs_6_a_1 (> top.res.abs_7_a_1 0)) (< top.res.abs_7_a_1 10)))) (and (= top.usr.OK_a_1 (=> X3 (>= X2 0))) (__node_trans_PRODUCER_CONSUMMER_0 top.usr.etat1_a_1 top.usr.etat2_a_1 top.usr.etat3_a_1 top.usr.a_init_a_1 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.inst_2_a_1 top.usr.etat1_a_0 top.usr.etat2_a_0 top.usr.etat3_a_0 top.usr.a_init_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.a_init_a_1 top.res.abs_7_a_1 top.res.inst_0_a_1 top.usr.a_init_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))) +(synth-inv str_invariant ((top.usr.etat1 Bool) (top.usr.etat2 Bool) (top.usr.etat3 Bool) (top.usr.a_init Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.etat1 Bool) (top.usr.etat2 Bool) (top.usr.etat3 Bool) (top.usr.a_init Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_4)) (let ((X2 top.res.abs_3)) (and (= top.res.abs_5 (and (and (not (and top.usr.etat2 top.usr.etat3)) (<= X2 32767)) (<= X1 32767))) (let ((X3 (and (and (and top.res.abs_6 (not top.usr.etat1)) (> top.res.abs_7 0)) (< top.res.abs_7 10)))) (and (= top.usr.OK (=> X3 (>= X2 0))) (__node_init_PRODUCER_CONSUMMER_0 top.usr.etat1 top.usr.etat2 top.usr.etat3 top.usr.a_init top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_First_0 top.usr.a_init top.res.abs_7 top.res.inst_0) top.res.init_flag)))))) +(define-fun trans ((top.usr.etat1 Bool) (top.usr.etat2 Bool) (top.usr.etat3 Bool) (top.usr.a_init Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.etat1! Bool) (top.usr.etat2! Bool) (top.usr.etat3! Bool) (top.usr.a_init! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_4!)) (let ((X2 top.res.abs_3!)) (and (= top.res.abs_5! (and (and (not (and top.usr.etat2! top.usr.etat3!)) (<= X2 32767)) (<= X1 32767))) (let ((X3 (and (and top.res.abs_6! (> top.res.abs_7! 0)) (< top.res.abs_7! 10)))) (and (= top.usr.OK! (=> X3 (>= X2 0))) (__node_trans_PRODUCER_CONSUMMER_0 top.usr.etat1! top.usr.etat2! top.usr.etat3! top.usr.a_init! top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.inst_2! top.usr.etat1 top.usr.etat2 top.usr.etat3 top.usr.a_init top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_First_0 top.usr.a_init! top.res.abs_7! top.res.inst_0! top.usr.a_init top.res.abs_7 top.res.inst_0) (not top.res.init_flag!)))))) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.etat1 Bool) (top.usr.etat2 Bool) (top.usr.etat3 Bool) (top.usr.a_init Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/PRODUCER_CONSUMER_2.sl b/benchmarks/LIA/Lustre/PRODUCER_CONSUMER_2.sl index 302239c..2f70f9c 100644 --- a/benchmarks/LIA/Lustre/PRODUCER_CONSUMER_2.sl +++ b/benchmarks/LIA/Lustre/PRODUCER_CONSUMER_2.sl @@ -1,522 +1,34 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_PRODUCER_CONSUMMER_0 ( - (PRODUCER_CONSUMMER.usr.etat1_a_0 Bool) - (PRODUCER_CONSUMMER.usr.etat2_a_0 Bool) - (PRODUCER_CONSUMMER.usr.etat3_a_0 Bool) - (PRODUCER_CONSUMMER.usr.a_init_a_0 Int) - (PRODUCER_CONSUMMER.res.nondet_2 Int) - (PRODUCER_CONSUMMER.res.nondet_1 Int) - (PRODUCER_CONSUMMER.res.nondet_0 Int) - (PRODUCER_CONSUMMER.usr.i_a_0 Int) - (PRODUCER_CONSUMMER.usr.b_a_0 Int) - (PRODUCER_CONSUMMER.usr.a_a_0 Int) - (PRODUCER_CONSUMMER.usr.o1_a_0 Int) - (PRODUCER_CONSUMMER.usr.o2_a_0 Int) - (PRODUCER_CONSUMMER.res.init_flag_a_0 Bool) - ) Bool - - (and - (= PRODUCER_CONSUMMER.usr.a_a_0 PRODUCER_CONSUMMER.usr.a_init_a_0) - (= PRODUCER_CONSUMMER.usr.i_a_0 PRODUCER_CONSUMMER.usr.a_a_0) - (let - ((X1 Bool (let ((X1 Int PRODUCER_CONSUMMER.res.nondet_0)) (>= X1 1)))) - (and - (= PRODUCER_CONSUMMER.usr.b_a_0 0) - (let - ((X2 Bool (let ((X2 Int PRODUCER_CONSUMMER.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int PRODUCER_CONSUMMER.res.nondet_2)) (>= X3 1)))) - (and - (= PRODUCER_CONSUMMER.usr.o1_a_0 0) - (= PRODUCER_CONSUMMER.usr.o2_a_0 0) - PRODUCER_CONSUMMER.res.init_flag_a_0)))))) -) - -(define-fun - __node_trans_PRODUCER_CONSUMMER_0 ( - (PRODUCER_CONSUMMER.usr.etat1_a_1 Bool) - (PRODUCER_CONSUMMER.usr.etat2_a_1 Bool) - (PRODUCER_CONSUMMER.usr.etat3_a_1 Bool) - (PRODUCER_CONSUMMER.usr.a_init_a_1 Int) - (PRODUCER_CONSUMMER.res.nondet_2 Int) - (PRODUCER_CONSUMMER.res.nondet_1 Int) - (PRODUCER_CONSUMMER.res.nondet_0 Int) - (PRODUCER_CONSUMMER.usr.i_a_1 Int) - (PRODUCER_CONSUMMER.usr.b_a_1 Int) - (PRODUCER_CONSUMMER.usr.a_a_1 Int) - (PRODUCER_CONSUMMER.usr.o1_a_1 Int) - (PRODUCER_CONSUMMER.usr.o2_a_1 Int) - (PRODUCER_CONSUMMER.res.init_flag_a_1 Bool) - (PRODUCER_CONSUMMER.usr.etat1_a_0 Bool) - (PRODUCER_CONSUMMER.usr.etat2_a_0 Bool) - (PRODUCER_CONSUMMER.usr.etat3_a_0 Bool) - (PRODUCER_CONSUMMER.usr.a_init_a_0 Int) - (PRODUCER_CONSUMMER.usr.i_a_0 Int) - (PRODUCER_CONSUMMER.usr.b_a_0 Int) - (PRODUCER_CONSUMMER.usr.a_a_0 Int) - (PRODUCER_CONSUMMER.usr.o1_a_0 Int) - (PRODUCER_CONSUMMER.usr.o2_a_0 Int) - (PRODUCER_CONSUMMER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= PRODUCER_CONSUMMER.usr.i_a_0 1))) - (and - (= - PRODUCER_CONSUMMER.usr.i_a_1 - (ite - PRODUCER_CONSUMMER.usr.etat1_a_1 - (ite X1 (- PRODUCER_CONSUMMER.usr.i_a_0 1) PRODUCER_CONSUMMER.usr.i_a_0) - PRODUCER_CONSUMMER.usr.i_a_0)) - (= PRODUCER_CONSUMMER.usr.a_a_1 PRODUCER_CONSUMMER.usr.a_a_0) - (let - ((X2 Bool (>= PRODUCER_CONSUMMER.usr.b_a_0 1))) - (let - ((X3 Bool (>= PRODUCER_CONSUMMER.usr.b_a_0 1))) - (and - (= - PRODUCER_CONSUMMER.usr.b_a_1 - (ite - PRODUCER_CONSUMMER.usr.etat1_a_1 - (ite X1 (+ PRODUCER_CONSUMMER.usr.b_a_0 1) PRODUCER_CONSUMMER.usr.b_a_0) - (ite - PRODUCER_CONSUMMER.usr.etat2_a_1 - (ite - X3 - (- PRODUCER_CONSUMMER.usr.b_a_0 1) - PRODUCER_CONSUMMER.usr.b_a_0) - (ite - X2 - (- PRODUCER_CONSUMMER.usr.b_a_0 1) - PRODUCER_CONSUMMER.usr.b_a_0)))) - (= - PRODUCER_CONSUMMER.usr.o1_a_1 - (ite - PRODUCER_CONSUMMER.usr.etat2_a_1 - (ite - X3 - (+ PRODUCER_CONSUMMER.usr.o1_a_0 1) - PRODUCER_CONSUMMER.usr.o1_a_0) - PRODUCER_CONSUMMER.usr.o1_a_0)) - (= - PRODUCER_CONSUMMER.usr.o2_a_1 - (ite - PRODUCER_CONSUMMER.usr.etat3_a_1 - (ite - X2 - (+ PRODUCER_CONSUMMER.usr.o2_a_0 1) - PRODUCER_CONSUMMER.usr.o2_a_0) - PRODUCER_CONSUMMER.usr.o2_a_0)) - (not PRODUCER_CONSUMMER.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.etat1_a_0 Bool) - (top.usr.etat2_a_0 Bool) - (top.usr.etat3_a_0 Bool) - (top.usr.a_init_a_0 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (not (and top.usr.etat2_a_0 top.usr.etat3_a_0))) - (let - ((X1 - Bool (and - (and top.res.abs_6_a_0 (not top.usr.etat1_a_0)) - (> top.res.abs_7_a_0 0)))) - (let - ((X2 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_PRODUCER_CONSUMMER_0 - top.usr.etat1_a_0 - top.usr.etat2_a_0 - top.usr.etat3_a_0 - top.usr.a_init_a_0 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_First_0 top.usr.a_init_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.etat1_a_1 Bool) - (top.usr.etat2_a_1 Bool) - (top.usr.etat3_a_1 Bool) - (top.usr.a_init_a_1 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.etat1_a_0 Bool) - (top.usr.etat2_a_0 Bool) - (top.usr.etat3_a_0 Bool) - (top.usr.a_init_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (not (and top.usr.etat2_a_1 top.usr.etat3_a_1))) - (let - ((X1 Bool (and top.res.abs_6_a_1 (> top.res.abs_7_a_1 0)))) - (let - ((X2 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_PRODUCER_CONSUMMER_0 - top.usr.etat1_a_1 - top.usr.etat2_a_1 - top.usr.etat3_a_1 - top.usr.a_init_a_1 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.inst_2_a_1 - top.usr.etat1_a_0 - top.usr.etat2_a_0 - top.usr.etat3_a_0 - top.usr.a_init_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.a_init_a_1 - top.res.abs_7_a_1 - top.res.inst_0_a_1 - top.usr.a_init_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.etat1 Bool) - (top.usr.etat2 Bool) - (top.usr.etat3 Bool) - (top.usr.a_init Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.etat1 Bool) -(declare-primed-var top.usr.etat2 Bool) -(declare-primed-var top.usr.etat3 Bool) -(declare-primed-var top.usr.a_init Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.etat1 Bool) - (top.usr.etat2 Bool) - (top.usr.etat3 Bool) - (top.usr.a_init Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (not (and top.usr.etat2 top.usr.etat3))) - (let - ((X1 - Bool (and (and top.res.abs_6 (not top.usr.etat1)) (> top.res.abs_7 0)))) - (let - ((X2 Int top.res.abs_0)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_PRODUCER_CONSUMMER_0 - top.usr.etat1 - top.usr.etat2 - top.usr.etat3 - top.usr.a_init - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_First_0 top.usr.a_init top.res.abs_7 top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.etat1 Bool) - (top.usr.etat2 Bool) - (top.usr.etat3 Bool) - (top.usr.a_init Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.etat1! Bool) - (top.usr.etat2! Bool) - (top.usr.etat3! Bool) - (top.usr.a_init! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (not (and top.usr.etat2! top.usr.etat3!))) - (let - ((X1 Bool (and top.res.abs_6! (> top.res.abs_7! 0)))) - (let - ((X2 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_PRODUCER_CONSUMMER_0 - top.usr.etat1! - top.usr.etat2! - top.usr.etat3! - top.usr.a_init! - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.inst_2! - top.usr.etat1 - top.usr.etat2 - top.usr.etat3 - top.usr.a_init - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_First_0 - top.usr.a_init! - top.res.abs_7! - top.res.inst_0! - top.usr.a_init - top.res.abs_7 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.etat1 Bool) - (top.usr.etat2 Bool) - (top.usr.etat3 Bool) - (top.usr.a_init Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_PRODUCER_CONSUMMER_0 ((PRODUCER_CONSUMMER.usr.etat1_a_0 Bool) (PRODUCER_CONSUMMER.usr.etat2_a_0 Bool) (PRODUCER_CONSUMMER.usr.etat3_a_0 Bool) (PRODUCER_CONSUMMER.usr.a_init_a_0 Int) (PRODUCER_CONSUMMER.res.nondet_2 Int) (PRODUCER_CONSUMMER.res.nondet_1 Int) (PRODUCER_CONSUMMER.res.nondet_0 Int) (PRODUCER_CONSUMMER.usr.i_a_0 Int) (PRODUCER_CONSUMMER.usr.b_a_0 Int) (PRODUCER_CONSUMMER.usr.a_a_0 Int) (PRODUCER_CONSUMMER.usr.o1_a_0 Int) (PRODUCER_CONSUMMER.usr.o2_a_0 Int) (PRODUCER_CONSUMMER.res.init_flag_a_0 Bool)) Bool + (and (= PRODUCER_CONSUMMER.usr.a_a_0 PRODUCER_CONSUMMER.usr.a_init_a_0) (= PRODUCER_CONSUMMER.usr.i_a_0 PRODUCER_CONSUMMER.usr.a_a_0) (let ((X1 (let ((X1 PRODUCER_CONSUMMER.res.nondet_0)) (>= X1 1)))) (and (= PRODUCER_CONSUMMER.usr.b_a_0 0) (let ((X2 (let ((X2 PRODUCER_CONSUMMER.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 PRODUCER_CONSUMMER.res.nondet_2)) (>= X3 1)))) (and (= PRODUCER_CONSUMMER.usr.o1_a_0 0) (= PRODUCER_CONSUMMER.usr.o2_a_0 0) PRODUCER_CONSUMMER.res.init_flag_a_0))))))) +(define-fun __node_trans_PRODUCER_CONSUMMER_0 ((PRODUCER_CONSUMMER.usr.etat1_a_1 Bool) (PRODUCER_CONSUMMER.usr.etat2_a_1 Bool) (PRODUCER_CONSUMMER.usr.etat3_a_1 Bool) (PRODUCER_CONSUMMER.usr.a_init_a_1 Int) (PRODUCER_CONSUMMER.res.nondet_2 Int) (PRODUCER_CONSUMMER.res.nondet_1 Int) (PRODUCER_CONSUMMER.res.nondet_0 Int) (PRODUCER_CONSUMMER.usr.i_a_1 Int) (PRODUCER_CONSUMMER.usr.b_a_1 Int) (PRODUCER_CONSUMMER.usr.a_a_1 Int) (PRODUCER_CONSUMMER.usr.o1_a_1 Int) (PRODUCER_CONSUMMER.usr.o2_a_1 Int) (PRODUCER_CONSUMMER.res.init_flag_a_1 Bool) (PRODUCER_CONSUMMER.usr.etat1_a_0 Bool) (PRODUCER_CONSUMMER.usr.etat2_a_0 Bool) (PRODUCER_CONSUMMER.usr.etat3_a_0 Bool) (PRODUCER_CONSUMMER.usr.a_init_a_0 Int) (PRODUCER_CONSUMMER.usr.i_a_0 Int) (PRODUCER_CONSUMMER.usr.b_a_0 Int) (PRODUCER_CONSUMMER.usr.a_a_0 Int) (PRODUCER_CONSUMMER.usr.o1_a_0 Int) (PRODUCER_CONSUMMER.usr.o2_a_0 Int) (PRODUCER_CONSUMMER.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= PRODUCER_CONSUMMER.usr.i_a_0 1))) (and (= PRODUCER_CONSUMMER.usr.i_a_1 (ite PRODUCER_CONSUMMER.usr.etat1_a_1 (ite X1 (- PRODUCER_CONSUMMER.usr.i_a_0 1) PRODUCER_CONSUMMER.usr.i_a_0) PRODUCER_CONSUMMER.usr.i_a_0)) (= PRODUCER_CONSUMMER.usr.a_a_1 PRODUCER_CONSUMMER.usr.a_a_0) (let ((X2 (>= PRODUCER_CONSUMMER.usr.b_a_0 1))) (let ((X3 (>= PRODUCER_CONSUMMER.usr.b_a_0 1))) (and (= PRODUCER_CONSUMMER.usr.b_a_1 (ite PRODUCER_CONSUMMER.usr.etat1_a_1 (ite X1 (+ PRODUCER_CONSUMMER.usr.b_a_0 1) PRODUCER_CONSUMMER.usr.b_a_0) (ite PRODUCER_CONSUMMER.usr.etat2_a_1 (ite X3 (- PRODUCER_CONSUMMER.usr.b_a_0 1) PRODUCER_CONSUMMER.usr.b_a_0) (ite X2 (- PRODUCER_CONSUMMER.usr.b_a_0 1) PRODUCER_CONSUMMER.usr.b_a_0)))) (= PRODUCER_CONSUMMER.usr.o1_a_1 (ite PRODUCER_CONSUMMER.usr.etat2_a_1 (ite X3 (+ PRODUCER_CONSUMMER.usr.o1_a_0 1) PRODUCER_CONSUMMER.usr.o1_a_0) PRODUCER_CONSUMMER.usr.o1_a_0)) (= PRODUCER_CONSUMMER.usr.o2_a_1 (ite PRODUCER_CONSUMMER.usr.etat3_a_1 (ite X2 (+ PRODUCER_CONSUMMER.usr.o2_a_0 1) PRODUCER_CONSUMMER.usr.o2_a_0) PRODUCER_CONSUMMER.usr.o2_a_0)) (not PRODUCER_CONSUMMER.res.init_flag_a_1))))))) +(define-fun __node_init_top_0 ((top.usr.etat1_a_0 Bool) (top.usr.etat2_a_0 Bool) (top.usr.etat3_a_0 Bool) (top.usr.a_init_a_0 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (not (and top.usr.etat2_a_0 top.usr.etat3_a_0))) (let ((X1 (and (and top.res.abs_6_a_0 (not top.usr.etat1_a_0)) (> top.res.abs_7_a_0 0)))) (let ((X2 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_PRODUCER_CONSUMMER_0 top.usr.etat1_a_0 top.usr.etat2_a_0 top.usr.etat3_a_0 top.usr.a_init_a_0 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.a_init_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.etat1_a_1 Bool) (top.usr.etat2_a_1 Bool) (top.usr.etat3_a_1 Bool) (top.usr.a_init_a_1 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.etat1_a_0 Bool) (top.usr.etat2_a_0 Bool) (top.usr.etat3_a_0 Bool) (top.usr.a_init_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (not (and top.usr.etat2_a_1 top.usr.etat3_a_1))) (let ((X1 (and top.res.abs_6_a_1 (> top.res.abs_7_a_1 0)))) (let ((X2 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_PRODUCER_CONSUMMER_0 top.usr.etat1_a_1 top.usr.etat2_a_1 top.usr.etat3_a_1 top.usr.a_init_a_1 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.inst_2_a_1 top.usr.etat1_a_0 top.usr.etat2_a_0 top.usr.etat3_a_0 top.usr.a_init_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.a_init_a_1 top.res.abs_7_a_1 top.res.inst_0_a_1 top.usr.a_init_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.etat1 Bool) (top.usr.etat2 Bool) (top.usr.etat3 Bool) (top.usr.a_init Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.etat1 Bool) (top.usr.etat2 Bool) (top.usr.etat3 Bool) (top.usr.a_init Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (not (and top.usr.etat2 top.usr.etat3))) (let ((X1 (and (and top.res.abs_6 (not top.usr.etat1)) (> top.res.abs_7 0)))) (let ((X2 top.res.abs_0)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_PRODUCER_CONSUMMER_0 top.usr.etat1 top.usr.etat2 top.usr.etat3 top.usr.a_init top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_First_0 top.usr.a_init top.res.abs_7 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.etat1 Bool) (top.usr.etat2 Bool) (top.usr.etat3 Bool) (top.usr.a_init Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.etat1! Bool) (top.usr.etat2! Bool) (top.usr.etat3! Bool) (top.usr.a_init! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (not (and top.usr.etat2! top.usr.etat3!))) (let ((X1 (and top.res.abs_6! (> top.res.abs_7! 0)))) (let ((X2 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_PRODUCER_CONSUMMER_0 top.usr.etat1! top.usr.etat2! top.usr.etat3! top.usr.a_init! top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.inst_2! top.usr.etat1 top.usr.etat2 top.usr.etat3 top.usr.a_init top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_First_0 top.usr.a_init! top.res.abs_7! top.res.inst_0! top.usr.a_init top.res.abs_7 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.etat1 Bool) (top.usr.etat2 Bool) (top.usr.etat3 Bool) (top.usr.a_init Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/PRODUCER_CONSUMER_3.sl b/benchmarks/LIA/Lustre/PRODUCER_CONSUMER_3.sl index d195d4d..b7379dc 100644 --- a/benchmarks/LIA/Lustre/PRODUCER_CONSUMER_3.sl +++ b/benchmarks/LIA/Lustre/PRODUCER_CONSUMER_3.sl @@ -1,737 +1,42 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_FirstB_0 ( - (FirstB.usr.X_a_0 Bool) - (FirstB.usr.First_a_0 Bool) - (FirstB.res.init_flag_a_0 Bool) - ) Bool - - (and (= FirstB.usr.First_a_0 FirstB.usr.X_a_0) FirstB.res.init_flag_a_0) -) - -(define-fun - __node_trans_FirstB_0 ( - (FirstB.usr.X_a_1 Bool) - (FirstB.usr.First_a_1 Bool) - (FirstB.res.init_flag_a_1 Bool) - (FirstB.usr.X_a_0 Bool) - (FirstB.usr.First_a_0 Bool) - (FirstB.res.init_flag_a_0 Bool) - ) Bool - - (and - (= FirstB.usr.First_a_1 FirstB.usr.First_a_0) - (not FirstB.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes3_0 ( - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_0 - (not - (or - (or - (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) - (and excludes3.usr.X1_a_0 excludes3.usr.X3_a_0)) - (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) - excludes3.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes3_0 ( - (excludes3.usr.X1_a_1 Bool) - (excludes3.usr.X2_a_1 Bool) - (excludes3.usr.X3_a_1 Bool) - (excludes3.usr.excludes_a_1 Bool) - (excludes3.res.init_flag_a_1 Bool) - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_1 - (not - (or - (or - (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) - (and excludes3.usr.X1_a_1 excludes3.usr.X3_a_1)) - (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) - (not excludes3.res.init_flag_a_1)) -) - -(define-fun - __node_init_PRODUCER_CONSUMMER_0 ( - (PRODUCER_CONSUMMER.usr.etat1_a_0 Bool) - (PRODUCER_CONSUMMER.usr.etat2_a_0 Bool) - (PRODUCER_CONSUMMER.usr.etat3_a_0 Bool) - (PRODUCER_CONSUMMER.usr.a_init_a_0 Int) - (PRODUCER_CONSUMMER.res.nondet_2 Int) - (PRODUCER_CONSUMMER.res.nondet_1 Int) - (PRODUCER_CONSUMMER.res.nondet_0 Int) - (PRODUCER_CONSUMMER.usr.i_a_0 Int) - (PRODUCER_CONSUMMER.usr.b_a_0 Int) - (PRODUCER_CONSUMMER.usr.a_a_0 Int) - (PRODUCER_CONSUMMER.usr.o1_a_0 Int) - (PRODUCER_CONSUMMER.usr.o2_a_0 Int) - (PRODUCER_CONSUMMER.res.init_flag_a_0 Bool) - ) Bool - - (and - (= PRODUCER_CONSUMMER.usr.a_a_0 PRODUCER_CONSUMMER.usr.a_init_a_0) - (= PRODUCER_CONSUMMER.usr.i_a_0 PRODUCER_CONSUMMER.usr.a_a_0) - (let - ((X1 Bool (let ((X1 Int PRODUCER_CONSUMMER.res.nondet_0)) (>= X1 1)))) - (and - (= PRODUCER_CONSUMMER.usr.b_a_0 0) - (let - ((X2 Bool (let ((X2 Int PRODUCER_CONSUMMER.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int PRODUCER_CONSUMMER.res.nondet_2)) (>= X3 1)))) - (and - (= PRODUCER_CONSUMMER.usr.o1_a_0 0) - (= PRODUCER_CONSUMMER.usr.o2_a_0 0) - PRODUCER_CONSUMMER.res.init_flag_a_0)))))) -) - -(define-fun - __node_trans_PRODUCER_CONSUMMER_0 ( - (PRODUCER_CONSUMMER.usr.etat1_a_1 Bool) - (PRODUCER_CONSUMMER.usr.etat2_a_1 Bool) - (PRODUCER_CONSUMMER.usr.etat3_a_1 Bool) - (PRODUCER_CONSUMMER.usr.a_init_a_1 Int) - (PRODUCER_CONSUMMER.res.nondet_2 Int) - (PRODUCER_CONSUMMER.res.nondet_1 Int) - (PRODUCER_CONSUMMER.res.nondet_0 Int) - (PRODUCER_CONSUMMER.usr.i_a_1 Int) - (PRODUCER_CONSUMMER.usr.b_a_1 Int) - (PRODUCER_CONSUMMER.usr.a_a_1 Int) - (PRODUCER_CONSUMMER.usr.o1_a_1 Int) - (PRODUCER_CONSUMMER.usr.o2_a_1 Int) - (PRODUCER_CONSUMMER.res.init_flag_a_1 Bool) - (PRODUCER_CONSUMMER.usr.etat1_a_0 Bool) - (PRODUCER_CONSUMMER.usr.etat2_a_0 Bool) - (PRODUCER_CONSUMMER.usr.etat3_a_0 Bool) - (PRODUCER_CONSUMMER.usr.a_init_a_0 Int) - (PRODUCER_CONSUMMER.usr.i_a_0 Int) - (PRODUCER_CONSUMMER.usr.b_a_0 Int) - (PRODUCER_CONSUMMER.usr.a_a_0 Int) - (PRODUCER_CONSUMMER.usr.o1_a_0 Int) - (PRODUCER_CONSUMMER.usr.o2_a_0 Int) - (PRODUCER_CONSUMMER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= PRODUCER_CONSUMMER.usr.i_a_0 1))) - (and - (= - PRODUCER_CONSUMMER.usr.i_a_1 - (ite - PRODUCER_CONSUMMER.usr.etat1_a_1 - (ite X1 (- PRODUCER_CONSUMMER.usr.i_a_0 1) PRODUCER_CONSUMMER.usr.i_a_0) - PRODUCER_CONSUMMER.usr.i_a_0)) - (= PRODUCER_CONSUMMER.usr.a_a_1 PRODUCER_CONSUMMER.usr.a_a_0) - (let - ((X2 Bool (>= PRODUCER_CONSUMMER.usr.b_a_0 1))) - (let - ((X3 Bool (>= PRODUCER_CONSUMMER.usr.b_a_0 1))) - (and - (= - PRODUCER_CONSUMMER.usr.b_a_1 - (ite - PRODUCER_CONSUMMER.usr.etat1_a_1 - (ite X1 (+ PRODUCER_CONSUMMER.usr.b_a_0 1) PRODUCER_CONSUMMER.usr.b_a_0) - (ite - PRODUCER_CONSUMMER.usr.etat2_a_1 - (ite - X3 - (- PRODUCER_CONSUMMER.usr.b_a_0 1) - PRODUCER_CONSUMMER.usr.b_a_0) - (ite - X2 - (- PRODUCER_CONSUMMER.usr.b_a_0 1) - PRODUCER_CONSUMMER.usr.b_a_0)))) - (= - PRODUCER_CONSUMMER.usr.o1_a_1 - (ite - PRODUCER_CONSUMMER.usr.etat2_a_1 - (ite - X3 - (+ PRODUCER_CONSUMMER.usr.o1_a_0 1) - PRODUCER_CONSUMMER.usr.o1_a_0) - PRODUCER_CONSUMMER.usr.o1_a_0)) - (= - PRODUCER_CONSUMMER.usr.o2_a_1 - (ite - PRODUCER_CONSUMMER.usr.etat3_a_1 - (ite - X2 - (+ PRODUCER_CONSUMMER.usr.o2_a_0 1) - PRODUCER_CONSUMMER.usr.o2_a_0) - PRODUCER_CONSUMMER.usr.o2_a_0)) - (not PRODUCER_CONSUMMER.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.etat1_a_0 Bool) - (top.usr.etat2_a_0 Bool) - (top.usr.etat3_a_0 Bool) - (top.usr.a_init_a_0 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.o1_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= top.impl.usr.o1_a_0 top.res.abs_3_a_0) - (= - top.res.abs_8_a_0 - (not (or (or top.usr.etat1_a_0 top.usr.etat2_a_0) top.usr.etat3_a_0))) - (= - top.res.abs_6_a_0 - (or - top.res.abs_5_a_0 - (not (or (or top.usr.etat1_a_0 top.usr.etat2_a_0) top.usr.etat3_a_0)))) - (let - ((X1 - Bool (and (and top.res.abs_7_a_0 top.res.abs_9_a_0) (> top.res.abs_10_a_0 0)))) - (and - (__node_init_PRODUCER_CONSUMMER_0 - top.usr.etat1_a_0 - top.usr.etat2_a_0 - top.usr.etat3_a_0 - top.usr.a_init_a_0 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.inst_4_a_0) - (__node_init_Sofar_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_3_a_0) - (__node_init_excludes3_0 - top.usr.etat1_a_0 - top.usr.etat2_a_0 - top.usr.etat3_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_init_FirstB_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_1_a_0) - (__node_init_First_0 top.usr.a_init_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.etat1_a_1 Bool) - (top.usr.etat2_a_1 Bool) - (top.usr.etat3_a_1 Bool) - (top.usr.a_init_a_1 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.o1_a_1 Int) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.etat1_a_0 Bool) - (top.usr.etat2_a_0 Bool) - (top.usr.etat3_a_0 Bool) - (top.usr.a_init_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.o1_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_6_a_1 - (or - top.res.abs_5_a_1 - (not (or (or top.usr.etat1_a_1 top.usr.etat2_a_1) top.usr.etat3_a_1)))) - (let - ((X1 - Bool (and (and top.res.abs_7_a_1 top.res.abs_9_a_1) (> top.res.abs_10_a_1 0)))) - (and - (= top.impl.usr.o1_a_1 top.res.abs_3_a_1) - (= - top.usr.OK_a_1 - (=> - X1 - (=> - (and top.usr.etat1_a_0 top.usr.etat2_a_1) - (or - (= top.impl.usr.o1_a_1 (+ top.impl.usr.o1_a_0 1)) - (= top.impl.usr.o1_a_1 top.impl.usr.o1_a_0))))) - (= - top.res.abs_8_a_1 - (not (or (or top.usr.etat1_a_1 top.usr.etat2_a_1) top.usr.etat3_a_1))) - (__node_trans_PRODUCER_CONSUMMER_0 - top.usr.etat1_a_1 - top.usr.etat2_a_1 - top.usr.etat3_a_1 - top.usr.a_init_a_1 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.inst_4_a_1 - top.usr.etat1_a_0 - top.usr.etat2_a_0 - top.usr.etat3_a_0 - top.usr.a_init_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.inst_4_a_0) - (__node_trans_Sofar_0 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.inst_3_a_1 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_3_a_0) - (__node_trans_excludes3_0 - top.usr.etat1_a_1 - top.usr.etat2_a_1 - top.usr.etat3_a_1 - top.res.abs_5_a_1 - top.res.inst_2_a_1 - top.usr.etat1_a_0 - top.usr.etat2_a_0 - top.usr.etat3_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_trans_FirstB_0 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_1_a_1 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.a_init_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.usr.a_init_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.etat1 Bool) - (top.usr.etat2 Bool) - (top.usr.etat3 Bool) - (top.usr.a_init Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.o1 Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.etat1 Bool) -(declare-primed-var top.usr.etat2 Bool) -(declare-primed-var top.usr.etat3 Bool) -(declare-primed-var top.usr.a_init Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.o1 Int) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.etat1 Bool) - (top.usr.etat2 Bool) - (top.usr.etat3 Bool) - (top.usr.a_init Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.o1 Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.o1 top.res.abs_3) - (= - top.res.abs_8 - (not (or (or top.usr.etat1 top.usr.etat2) top.usr.etat3))) - (= - top.res.abs_6 - (or - top.res.abs_5 - (not (or (or top.usr.etat1 top.usr.etat2) top.usr.etat3)))) - (let - ((X1 Bool (and (and top.res.abs_7 top.res.abs_9) (> top.res.abs_10 0)))) - (and - (__node_init_PRODUCER_CONSUMMER_0 - top.usr.etat1 - top.usr.etat2 - top.usr.etat3 - top.usr.a_init - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.inst_4) - (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_3) - (__node_init_excludes3_0 - top.usr.etat1 - top.usr.etat2 - top.usr.etat3 - top.res.abs_5 - top.res.inst_2) - (__node_init_FirstB_0 top.res.abs_8 top.res.abs_9 top.res.inst_1) - (__node_init_First_0 top.usr.a_init top.res.abs_10 top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.etat1 Bool) - (top.usr.etat2 Bool) - (top.usr.etat3 Bool) - (top.usr.a_init Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.o1 Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.etat1! Bool) - (top.usr.etat2! Bool) - (top.usr.etat3! Bool) - (top.usr.a_init! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.o1! Int) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_6! - (or - top.res.abs_5! - (not (or (or top.usr.etat1! top.usr.etat2!) top.usr.etat3!)))) - (let - ((X1 - Bool (and (and top.res.abs_7! top.res.abs_9!) (> top.res.abs_10! 0)))) - (and - (= top.impl.usr.o1! top.res.abs_3!) - (= - top.usr.OK! - (=> - X1 - (=> - (and top.usr.etat1 top.usr.etat2!) - (or - (= top.impl.usr.o1! (+ top.impl.usr.o1 1)) - (= top.impl.usr.o1! top.impl.usr.o1))))) - (= - top.res.abs_8! - (not (or (or top.usr.etat1! top.usr.etat2!) top.usr.etat3!))) - (__node_trans_PRODUCER_CONSUMMER_0 - top.usr.etat1! - top.usr.etat2! - top.usr.etat3! - top.usr.a_init! - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.inst_4! - top.usr.etat1 - top.usr.etat2 - top.usr.etat3 - top.usr.a_init - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.inst_4) - (__node_trans_Sofar_0 - top.res.abs_6! - top.res.abs_7! - top.res.inst_3! - top.res.abs_6 - top.res.abs_7 - top.res.inst_3) - (__node_trans_excludes3_0 - top.usr.etat1! - top.usr.etat2! - top.usr.etat3! - top.res.abs_5! - top.res.inst_2! - top.usr.etat1 - top.usr.etat2 - top.usr.etat3 - top.res.abs_5 - top.res.inst_2) - (__node_trans_FirstB_0 - top.res.abs_8! - top.res.abs_9! - top.res.inst_1! - top.res.abs_8 - top.res.abs_9 - top.res.inst_1) - (__node_trans_First_0 - top.usr.a_init! - top.res.abs_10! - top.res.inst_0! - top.usr.a_init - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!)))) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.etat1 Bool) - (top.usr.etat2 Bool) - (top.usr.etat3 Bool) - (top.usr.a_init Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.o1 Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_FirstB_0 ((FirstB.usr.X_a_0 Bool) (FirstB.usr.First_a_0 Bool) (FirstB.res.init_flag_a_0 Bool)) Bool + (and (= FirstB.usr.First_a_0 FirstB.usr.X_a_0) FirstB.res.init_flag_a_0)) +(define-fun __node_trans_FirstB_0 ((FirstB.usr.X_a_1 Bool) (FirstB.usr.First_a_1 Bool) (FirstB.res.init_flag_a_1 Bool) (FirstB.usr.X_a_0 Bool) (FirstB.usr.First_a_0 Bool) (FirstB.res.init_flag_a_0 Bool)) Bool + (and (= FirstB.usr.First_a_1 FirstB.usr.First_a_0) (not FirstB.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes3_0 ((excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_0 (not (or (or (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) (and excludes3.usr.X1_a_0 excludes3.usr.X3_a_0)) (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) excludes3.res.init_flag_a_0)) +(define-fun __node_trans_excludes3_0 ((excludes3.usr.X1_a_1 Bool) (excludes3.usr.X2_a_1 Bool) (excludes3.usr.X3_a_1 Bool) (excludes3.usr.excludes_a_1 Bool) (excludes3.res.init_flag_a_1 Bool) (excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_1 (not (or (or (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) (and excludes3.usr.X1_a_1 excludes3.usr.X3_a_1)) (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) (not excludes3.res.init_flag_a_1))) +(define-fun __node_init_PRODUCER_CONSUMMER_0 ((PRODUCER_CONSUMMER.usr.etat1_a_0 Bool) (PRODUCER_CONSUMMER.usr.etat2_a_0 Bool) (PRODUCER_CONSUMMER.usr.etat3_a_0 Bool) (PRODUCER_CONSUMMER.usr.a_init_a_0 Int) (PRODUCER_CONSUMMER.res.nondet_2 Int) (PRODUCER_CONSUMMER.res.nondet_1 Int) (PRODUCER_CONSUMMER.res.nondet_0 Int) (PRODUCER_CONSUMMER.usr.i_a_0 Int) (PRODUCER_CONSUMMER.usr.b_a_0 Int) (PRODUCER_CONSUMMER.usr.a_a_0 Int) (PRODUCER_CONSUMMER.usr.o1_a_0 Int) (PRODUCER_CONSUMMER.usr.o2_a_0 Int) (PRODUCER_CONSUMMER.res.init_flag_a_0 Bool)) Bool + (and (= PRODUCER_CONSUMMER.usr.a_a_0 PRODUCER_CONSUMMER.usr.a_init_a_0) (= PRODUCER_CONSUMMER.usr.i_a_0 PRODUCER_CONSUMMER.usr.a_a_0) (let ((X1 (let ((X1 PRODUCER_CONSUMMER.res.nondet_0)) (>= X1 1)))) (and (= PRODUCER_CONSUMMER.usr.b_a_0 0) (let ((X2 (let ((X2 PRODUCER_CONSUMMER.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 PRODUCER_CONSUMMER.res.nondet_2)) (>= X3 1)))) (and (= PRODUCER_CONSUMMER.usr.o1_a_0 0) (= PRODUCER_CONSUMMER.usr.o2_a_0 0) PRODUCER_CONSUMMER.res.init_flag_a_0))))))) +(define-fun __node_trans_PRODUCER_CONSUMMER_0 ((PRODUCER_CONSUMMER.usr.etat1_a_1 Bool) (PRODUCER_CONSUMMER.usr.etat2_a_1 Bool) (PRODUCER_CONSUMMER.usr.etat3_a_1 Bool) (PRODUCER_CONSUMMER.usr.a_init_a_1 Int) (PRODUCER_CONSUMMER.res.nondet_2 Int) (PRODUCER_CONSUMMER.res.nondet_1 Int) (PRODUCER_CONSUMMER.res.nondet_0 Int) (PRODUCER_CONSUMMER.usr.i_a_1 Int) (PRODUCER_CONSUMMER.usr.b_a_1 Int) (PRODUCER_CONSUMMER.usr.a_a_1 Int) (PRODUCER_CONSUMMER.usr.o1_a_1 Int) (PRODUCER_CONSUMMER.usr.o2_a_1 Int) (PRODUCER_CONSUMMER.res.init_flag_a_1 Bool) (PRODUCER_CONSUMMER.usr.etat1_a_0 Bool) (PRODUCER_CONSUMMER.usr.etat2_a_0 Bool) (PRODUCER_CONSUMMER.usr.etat3_a_0 Bool) (PRODUCER_CONSUMMER.usr.a_init_a_0 Int) (PRODUCER_CONSUMMER.usr.i_a_0 Int) (PRODUCER_CONSUMMER.usr.b_a_0 Int) (PRODUCER_CONSUMMER.usr.a_a_0 Int) (PRODUCER_CONSUMMER.usr.o1_a_0 Int) (PRODUCER_CONSUMMER.usr.o2_a_0 Int) (PRODUCER_CONSUMMER.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= PRODUCER_CONSUMMER.usr.i_a_0 1))) (and (= PRODUCER_CONSUMMER.usr.i_a_1 (ite PRODUCER_CONSUMMER.usr.etat1_a_1 (ite X1 (- PRODUCER_CONSUMMER.usr.i_a_0 1) PRODUCER_CONSUMMER.usr.i_a_0) PRODUCER_CONSUMMER.usr.i_a_0)) (= PRODUCER_CONSUMMER.usr.a_a_1 PRODUCER_CONSUMMER.usr.a_a_0) (let ((X2 (>= PRODUCER_CONSUMMER.usr.b_a_0 1))) (let ((X3 (>= PRODUCER_CONSUMMER.usr.b_a_0 1))) (and (= PRODUCER_CONSUMMER.usr.b_a_1 (ite PRODUCER_CONSUMMER.usr.etat1_a_1 (ite X1 (+ PRODUCER_CONSUMMER.usr.b_a_0 1) PRODUCER_CONSUMMER.usr.b_a_0) (ite PRODUCER_CONSUMMER.usr.etat2_a_1 (ite X3 (- PRODUCER_CONSUMMER.usr.b_a_0 1) PRODUCER_CONSUMMER.usr.b_a_0) (ite X2 (- PRODUCER_CONSUMMER.usr.b_a_0 1) PRODUCER_CONSUMMER.usr.b_a_0)))) (= PRODUCER_CONSUMMER.usr.o1_a_1 (ite PRODUCER_CONSUMMER.usr.etat2_a_1 (ite X3 (+ PRODUCER_CONSUMMER.usr.o1_a_0 1) PRODUCER_CONSUMMER.usr.o1_a_0) PRODUCER_CONSUMMER.usr.o1_a_0)) (= PRODUCER_CONSUMMER.usr.o2_a_1 (ite PRODUCER_CONSUMMER.usr.etat3_a_1 (ite X2 (+ PRODUCER_CONSUMMER.usr.o2_a_0 1) PRODUCER_CONSUMMER.usr.o2_a_0) PRODUCER_CONSUMMER.usr.o2_a_0)) (not PRODUCER_CONSUMMER.res.init_flag_a_1))))))) +(define-fun __node_init_top_0 ((top.usr.etat1_a_0 Bool) (top.usr.etat2_a_0 Bool) (top.usr.etat3_a_0 Bool) (top.usr.a_init_a_0 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.o1_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.o1_a_0 top.res.abs_3_a_0) (= top.res.abs_8_a_0 (not (or (or top.usr.etat1_a_0 top.usr.etat2_a_0) top.usr.etat3_a_0))) (= top.res.abs_6_a_0 (or top.res.abs_5_a_0 (not (or (or top.usr.etat1_a_0 top.usr.etat2_a_0) top.usr.etat3_a_0)))) (let ((X1 (and (and top.res.abs_7_a_0 top.res.abs_9_a_0) (> top.res.abs_10_a_0 0)))) (and (__node_init_PRODUCER_CONSUMMER_0 top.usr.etat1_a_0 top.usr.etat2_a_0 top.usr.etat3_a_0 top.usr.a_init_a_0 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.inst_4_a_0) (__node_init_Sofar_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_3_a_0) (__node_init_excludes3_0 top.usr.etat1_a_0 top.usr.etat2_a_0 top.usr.etat3_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_init_FirstB_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.a_init_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.etat1_a_1 Bool) (top.usr.etat2_a_1 Bool) (top.usr.etat3_a_1 Bool) (top.usr.a_init_a_1 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.o1_a_1 Int) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.etat1_a_0 Bool) (top.usr.etat2_a_0 Bool) (top.usr.etat3_a_0 Bool) (top.usr.a_init_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.o1_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_6_a_1 (or top.res.abs_5_a_1 (not (or (or top.usr.etat1_a_1 top.usr.etat2_a_1) top.usr.etat3_a_1)))) (let ((X1 (and (and top.res.abs_7_a_1 top.res.abs_9_a_1) (> top.res.abs_10_a_1 0)))) (and (= top.impl.usr.o1_a_1 top.res.abs_3_a_1) (= top.usr.OK_a_1 (=> X1 (=> (and top.usr.etat1_a_0 top.usr.etat2_a_1) (or (= top.impl.usr.o1_a_1 (+ top.impl.usr.o1_a_0 1)) (= top.impl.usr.o1_a_1 top.impl.usr.o1_a_0))))) (= top.res.abs_8_a_1 (not (or (or top.usr.etat1_a_1 top.usr.etat2_a_1) top.usr.etat3_a_1))) (__node_trans_PRODUCER_CONSUMMER_0 top.usr.etat1_a_1 top.usr.etat2_a_1 top.usr.etat3_a_1 top.usr.a_init_a_1 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.inst_4_a_1 top.usr.etat1_a_0 top.usr.etat2_a_0 top.usr.etat3_a_0 top.usr.a_init_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.inst_4_a_0) (__node_trans_Sofar_0 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.inst_3_a_1 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_3_a_0) (__node_trans_excludes3_0 top.usr.etat1_a_1 top.usr.etat2_a_1 top.usr.etat3_a_1 top.res.abs_5_a_1 top.res.inst_2_a_1 top.usr.etat1_a_0 top.usr.etat2_a_0 top.usr.etat3_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_trans_FirstB_0 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_1_a_1 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.a_init_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.usr.a_init_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.etat1 Bool) (top.usr.etat2 Bool) (top.usr.etat3 Bool) (top.usr.a_init Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.o1 Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.etat1 Bool) (top.usr.etat2 Bool) (top.usr.etat3 Bool) (top.usr.a_init Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.o1 Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.o1 top.res.abs_3) (= top.res.abs_8 (not (or (or top.usr.etat1 top.usr.etat2) top.usr.etat3))) (= top.res.abs_6 (or top.res.abs_5 (not (or (or top.usr.etat1 top.usr.etat2) top.usr.etat3)))) (let ((X1 (and (and top.res.abs_7 top.res.abs_9) (> top.res.abs_10 0)))) (and (__node_init_PRODUCER_CONSUMMER_0 top.usr.etat1 top.usr.etat2 top.usr.etat3 top.usr.a_init top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.inst_4) (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_3) (__node_init_excludes3_0 top.usr.etat1 top.usr.etat2 top.usr.etat3 top.res.abs_5 top.res.inst_2) (__node_init_FirstB_0 top.res.abs_8 top.res.abs_9 top.res.inst_1) (__node_init_First_0 top.usr.a_init top.res.abs_10 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.etat1 Bool) (top.usr.etat2 Bool) (top.usr.etat3 Bool) (top.usr.a_init Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.o1 Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.etat1! Bool) (top.usr.etat2! Bool) (top.usr.etat3! Bool) (top.usr.a_init! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.o1! Int) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Int) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_6! (or top.res.abs_5! (not (or (or top.usr.etat1! top.usr.etat2!) top.usr.etat3!)))) (let ((X1 (and (and top.res.abs_7! top.res.abs_9!) (> top.res.abs_10! 0)))) (and (= top.impl.usr.o1! top.res.abs_3!) (= top.usr.OK! (=> X1 (=> (and top.usr.etat1 top.usr.etat2!) (or (= top.impl.usr.o1! (+ top.impl.usr.o1 1)) (= top.impl.usr.o1! top.impl.usr.o1))))) (= top.res.abs_8! (not (or (or top.usr.etat1! top.usr.etat2!) top.usr.etat3!))) (__node_trans_PRODUCER_CONSUMMER_0 top.usr.etat1! top.usr.etat2! top.usr.etat3! top.usr.a_init! top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.inst_4! top.usr.etat1 top.usr.etat2 top.usr.etat3 top.usr.a_init top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.inst_4) (__node_trans_Sofar_0 top.res.abs_6! top.res.abs_7! top.res.inst_3! top.res.abs_6 top.res.abs_7 top.res.inst_3) (__node_trans_excludes3_0 top.usr.etat1! top.usr.etat2! top.usr.etat3! top.res.abs_5! top.res.inst_2! top.usr.etat1 top.usr.etat2 top.usr.etat3 top.res.abs_5 top.res.inst_2) (__node_trans_FirstB_0 top.res.abs_8! top.res.abs_9! top.res.inst_1! top.res.abs_8 top.res.abs_9 top.res.inst_1) (__node_trans_First_0 top.usr.a_init! top.res.abs_10! top.res.inst_0! top.usr.a_init top.res.abs_10 top.res.inst_0) (not top.res.init_flag!)))) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.etat1 Bool) (top.usr.etat2 Bool) (top.usr.etat3 Bool) (top.usr.a_init Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.o1 Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/PRODUCER_CONSUMER_all.sl b/benchmarks/LIA/Lustre/PRODUCER_CONSUMER_all.sl index f05f175..965359f 100644 --- a/benchmarks/LIA/Lustre/PRODUCER_CONSUMER_all.sl +++ b/benchmarks/LIA/Lustre/PRODUCER_CONSUMER_all.sl @@ -1,754 +1,42 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_FirstB_0 ( - (FirstB.usr.X_a_0 Bool) - (FirstB.usr.First_a_0 Bool) - (FirstB.res.init_flag_a_0 Bool) - ) Bool - - (and (= FirstB.usr.First_a_0 FirstB.usr.X_a_0) FirstB.res.init_flag_a_0) -) - -(define-fun - __node_trans_FirstB_0 ( - (FirstB.usr.X_a_1 Bool) - (FirstB.usr.First_a_1 Bool) - (FirstB.res.init_flag_a_1 Bool) - (FirstB.usr.X_a_0 Bool) - (FirstB.usr.First_a_0 Bool) - (FirstB.res.init_flag_a_0 Bool) - ) Bool - - (and - (= FirstB.usr.First_a_1 FirstB.usr.First_a_0) - (not FirstB.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes3_0 ( - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_0 - (not - (or - (or - (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) - (and excludes3.usr.X1_a_0 excludes3.usr.X3_a_0)) - (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) - excludes3.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes3_0 ( - (excludes3.usr.X1_a_1 Bool) - (excludes3.usr.X2_a_1 Bool) - (excludes3.usr.X3_a_1 Bool) - (excludes3.usr.excludes_a_1 Bool) - (excludes3.res.init_flag_a_1 Bool) - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_1 - (not - (or - (or - (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) - (and excludes3.usr.X1_a_1 excludes3.usr.X3_a_1)) - (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) - (not excludes3.res.init_flag_a_1)) -) - -(define-fun - __node_init_PRODUCER_CONSUMMER_0 ( - (PRODUCER_CONSUMMER.usr.etat1_a_0 Bool) - (PRODUCER_CONSUMMER.usr.etat2_a_0 Bool) - (PRODUCER_CONSUMMER.usr.etat3_a_0 Bool) - (PRODUCER_CONSUMMER.usr.a_init_a_0 Int) - (PRODUCER_CONSUMMER.res.nondet_2 Int) - (PRODUCER_CONSUMMER.res.nondet_1 Int) - (PRODUCER_CONSUMMER.res.nondet_0 Int) - (PRODUCER_CONSUMMER.usr.i_a_0 Int) - (PRODUCER_CONSUMMER.usr.b_a_0 Int) - (PRODUCER_CONSUMMER.usr.a_a_0 Int) - (PRODUCER_CONSUMMER.usr.o1_a_0 Int) - (PRODUCER_CONSUMMER.usr.o2_a_0 Int) - (PRODUCER_CONSUMMER.res.init_flag_a_0 Bool) - ) Bool - - (and - (= PRODUCER_CONSUMMER.usr.a_a_0 PRODUCER_CONSUMMER.usr.a_init_a_0) - (= PRODUCER_CONSUMMER.usr.i_a_0 PRODUCER_CONSUMMER.usr.a_a_0) - (let - ((X1 Bool (let ((X1 Int PRODUCER_CONSUMMER.res.nondet_0)) (>= X1 1)))) - (and - (= PRODUCER_CONSUMMER.usr.b_a_0 0) - (let - ((X2 Bool (let ((X2 Int PRODUCER_CONSUMMER.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int PRODUCER_CONSUMMER.res.nondet_2)) (>= X3 1)))) - (and - (= PRODUCER_CONSUMMER.usr.o1_a_0 0) - (= PRODUCER_CONSUMMER.usr.o2_a_0 0) - PRODUCER_CONSUMMER.res.init_flag_a_0)))))) -) - -(define-fun - __node_trans_PRODUCER_CONSUMMER_0 ( - (PRODUCER_CONSUMMER.usr.etat1_a_1 Bool) - (PRODUCER_CONSUMMER.usr.etat2_a_1 Bool) - (PRODUCER_CONSUMMER.usr.etat3_a_1 Bool) - (PRODUCER_CONSUMMER.usr.a_init_a_1 Int) - (PRODUCER_CONSUMMER.res.nondet_2 Int) - (PRODUCER_CONSUMMER.res.nondet_1 Int) - (PRODUCER_CONSUMMER.res.nondet_0 Int) - (PRODUCER_CONSUMMER.usr.i_a_1 Int) - (PRODUCER_CONSUMMER.usr.b_a_1 Int) - (PRODUCER_CONSUMMER.usr.a_a_1 Int) - (PRODUCER_CONSUMMER.usr.o1_a_1 Int) - (PRODUCER_CONSUMMER.usr.o2_a_1 Int) - (PRODUCER_CONSUMMER.res.init_flag_a_1 Bool) - (PRODUCER_CONSUMMER.usr.etat1_a_0 Bool) - (PRODUCER_CONSUMMER.usr.etat2_a_0 Bool) - (PRODUCER_CONSUMMER.usr.etat3_a_0 Bool) - (PRODUCER_CONSUMMER.usr.a_init_a_0 Int) - (PRODUCER_CONSUMMER.usr.i_a_0 Int) - (PRODUCER_CONSUMMER.usr.b_a_0 Int) - (PRODUCER_CONSUMMER.usr.a_a_0 Int) - (PRODUCER_CONSUMMER.usr.o1_a_0 Int) - (PRODUCER_CONSUMMER.usr.o2_a_0 Int) - (PRODUCER_CONSUMMER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= PRODUCER_CONSUMMER.usr.i_a_0 1))) - (and - (= - PRODUCER_CONSUMMER.usr.i_a_1 - (ite - PRODUCER_CONSUMMER.usr.etat1_a_1 - (ite X1 (- PRODUCER_CONSUMMER.usr.i_a_0 1) PRODUCER_CONSUMMER.usr.i_a_0) - PRODUCER_CONSUMMER.usr.i_a_0)) - (= PRODUCER_CONSUMMER.usr.a_a_1 PRODUCER_CONSUMMER.usr.a_a_0) - (let - ((X2 Bool (>= PRODUCER_CONSUMMER.usr.b_a_0 1))) - (let - ((X3 Bool (>= PRODUCER_CONSUMMER.usr.b_a_0 1))) - (and - (= - PRODUCER_CONSUMMER.usr.b_a_1 - (ite - PRODUCER_CONSUMMER.usr.etat1_a_1 - (ite X1 (+ PRODUCER_CONSUMMER.usr.b_a_0 1) PRODUCER_CONSUMMER.usr.b_a_0) - (ite - PRODUCER_CONSUMMER.usr.etat2_a_1 - (ite - X3 - (- PRODUCER_CONSUMMER.usr.b_a_0 1) - PRODUCER_CONSUMMER.usr.b_a_0) - (ite - X2 - (- PRODUCER_CONSUMMER.usr.b_a_0 1) - PRODUCER_CONSUMMER.usr.b_a_0)))) - (= - PRODUCER_CONSUMMER.usr.o1_a_1 - (ite - PRODUCER_CONSUMMER.usr.etat2_a_1 - (ite - X3 - (+ PRODUCER_CONSUMMER.usr.o1_a_0 1) - PRODUCER_CONSUMMER.usr.o1_a_0) - PRODUCER_CONSUMMER.usr.o1_a_0)) - (= - PRODUCER_CONSUMMER.usr.o2_a_1 - (ite - PRODUCER_CONSUMMER.usr.etat3_a_1 - (ite - X2 - (+ PRODUCER_CONSUMMER.usr.o2_a_0 1) - PRODUCER_CONSUMMER.usr.o2_a_0) - PRODUCER_CONSUMMER.usr.o2_a_0)) - (not PRODUCER_CONSUMMER.res.init_flag_a_1)))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.etat1_a_0 Bool) - (top.usr.etat2_a_0 Bool) - (top.usr.etat3_a_0 Bool) - (top.usr.a_init_a_0 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.o1_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_8_a_0 - (not (or (or top.usr.etat1_a_0 top.usr.etat2_a_0) top.usr.etat3_a_0))) - (= - top.res.abs_6_a_0 - (or - top.res.abs_5_a_0 - (not (or (or top.usr.etat1_a_0 top.usr.etat2_a_0) top.usr.etat3_a_0)))) - (let - ((X1 - Bool (and (and top.res.abs_7_a_0 top.res.abs_9_a_0) (> top.res.abs_10_a_0 0)))) - (let - ((X2 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (= top.impl.usr.o1_a_0 top.res.abs_3_a_0) - (__node_init_PRODUCER_CONSUMMER_0 - top.usr.etat1_a_0 - top.usr.etat2_a_0 - top.usr.etat3_a_0 - top.usr.a_init_a_0 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.inst_4_a_0) - (__node_init_Sofar_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_3_a_0) - (__node_init_excludes3_0 - top.usr.etat1_a_0 - top.usr.etat2_a_0 - top.usr.etat3_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_init_FirstB_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.a_init_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.etat1_a_1 Bool) - (top.usr.etat2_a_1 Bool) - (top.usr.etat3_a_1 Bool) - (top.usr.a_init_a_1 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.o1_a_1 Int) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.etat1_a_0 Bool) - (top.usr.etat2_a_0 Bool) - (top.usr.etat3_a_0 Bool) - (top.usr.a_init_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.o1_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_6_a_1 - (or - top.res.abs_5_a_1 - (not (or (or top.usr.etat1_a_1 top.usr.etat2_a_1) top.usr.etat3_a_1)))) - (let - ((X1 - Bool (and (and top.res.abs_7_a_1 top.res.abs_9_a_1) (> top.res.abs_10_a_1 0)))) - (and - (= top.impl.usr.o1_a_1 top.res.abs_3_a_1) - (let - ((X2 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (and - (>= X2 0) - (=> - (and top.usr.etat1_a_0 top.usr.etat2_a_1) - (or - (= top.impl.usr.o1_a_1 (+ top.impl.usr.o1_a_0 1)) - (= top.impl.usr.o1_a_1 top.impl.usr.o1_a_0)))))) - (= - top.res.abs_8_a_1 - (not (or (or top.usr.etat1_a_1 top.usr.etat2_a_1) top.usr.etat3_a_1))) - (__node_trans_PRODUCER_CONSUMMER_0 - top.usr.etat1_a_1 - top.usr.etat2_a_1 - top.usr.etat3_a_1 - top.usr.a_init_a_1 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.inst_4_a_1 - top.usr.etat1_a_0 - top.usr.etat2_a_0 - top.usr.etat3_a_0 - top.usr.a_init_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.inst_4_a_0) - (__node_trans_Sofar_0 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.inst_3_a_1 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_3_a_0) - (__node_trans_excludes3_0 - top.usr.etat1_a_1 - top.usr.etat2_a_1 - top.usr.etat3_a_1 - top.res.abs_5_a_1 - top.res.inst_2_a_1 - top.usr.etat1_a_0 - top.usr.etat2_a_0 - top.usr.etat3_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_trans_FirstB_0 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_1_a_1 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.a_init_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.usr.a_init_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))) -) - - - -(synth-inv str_invariant( - (top.usr.etat1 Bool) - (top.usr.etat2 Bool) - (top.usr.etat3 Bool) - (top.usr.a_init Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.o1 Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.etat1 Bool) -(declare-primed-var top.usr.etat2 Bool) -(declare-primed-var top.usr.etat3 Bool) -(declare-primed-var top.usr.a_init Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.o1 Int) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.etat1 Bool) - (top.usr.etat2 Bool) - (top.usr.etat3 Bool) - (top.usr.a_init Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.o1 Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_8 - (not (or (or top.usr.etat1 top.usr.etat2) top.usr.etat3))) - (= - top.res.abs_6 - (or - top.res.abs_5 - (not (or (or top.usr.etat1 top.usr.etat2) top.usr.etat3)))) - (let - ((X1 Bool (and (and top.res.abs_7 top.res.abs_9) (> top.res.abs_10 0)))) - (let - ((X2 Int top.res.abs_0)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (= top.impl.usr.o1 top.res.abs_3) - (__node_init_PRODUCER_CONSUMMER_0 - top.usr.etat1 - top.usr.etat2 - top.usr.etat3 - top.usr.a_init - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.inst_4) - (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_3) - (__node_init_excludes3_0 - top.usr.etat1 - top.usr.etat2 - top.usr.etat3 - top.res.abs_5 - top.res.inst_2) - (__node_init_FirstB_0 top.res.abs_8 top.res.abs_9 top.res.inst_1) - (__node_init_First_0 top.usr.a_init top.res.abs_10 top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.etat1 Bool) - (top.usr.etat2 Bool) - (top.usr.etat3 Bool) - (top.usr.a_init Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.o1 Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.etat1! Bool) - (top.usr.etat2! Bool) - (top.usr.etat3! Bool) - (top.usr.a_init! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.o1! Int) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_6! - (or - top.res.abs_5! - (not (or (or top.usr.etat1! top.usr.etat2!) top.usr.etat3!)))) - (let - ((X1 - Bool (and (and top.res.abs_7! top.res.abs_9!) (> top.res.abs_10! 0)))) - (and - (= top.impl.usr.o1! top.res.abs_3!) - (let - ((X2 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> - X1 - (and - (>= X2 0) - (=> - (and top.usr.etat1 top.usr.etat2!) - (or - (= top.impl.usr.o1! (+ top.impl.usr.o1 1)) - (= top.impl.usr.o1! top.impl.usr.o1)))))) - (= - top.res.abs_8! - (not (or (or top.usr.etat1! top.usr.etat2!) top.usr.etat3!))) - (__node_trans_PRODUCER_CONSUMMER_0 - top.usr.etat1! - top.usr.etat2! - top.usr.etat3! - top.usr.a_init! - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.inst_4! - top.usr.etat1 - top.usr.etat2 - top.usr.etat3 - top.usr.a_init - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.inst_4) - (__node_trans_Sofar_0 - top.res.abs_6! - top.res.abs_7! - top.res.inst_3! - top.res.abs_6 - top.res.abs_7 - top.res.inst_3) - (__node_trans_excludes3_0 - top.usr.etat1! - top.usr.etat2! - top.usr.etat3! - top.res.abs_5! - top.res.inst_2! - top.usr.etat1 - top.usr.etat2 - top.usr.etat3 - top.res.abs_5 - top.res.inst_2) - (__node_trans_FirstB_0 - top.res.abs_8! - top.res.abs_9! - top.res.inst_1! - top.res.abs_8 - top.res.abs_9 - top.res.inst_1) - (__node_trans_First_0 - top.usr.a_init! - top.res.abs_10! - top.res.inst_0! - top.usr.a_init - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!)))))) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.etat1 Bool) - (top.usr.etat2 Bool) - (top.usr.etat3 Bool) - (top.usr.a_init Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.o1 Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_FirstB_0 ((FirstB.usr.X_a_0 Bool) (FirstB.usr.First_a_0 Bool) (FirstB.res.init_flag_a_0 Bool)) Bool + (and (= FirstB.usr.First_a_0 FirstB.usr.X_a_0) FirstB.res.init_flag_a_0)) +(define-fun __node_trans_FirstB_0 ((FirstB.usr.X_a_1 Bool) (FirstB.usr.First_a_1 Bool) (FirstB.res.init_flag_a_1 Bool) (FirstB.usr.X_a_0 Bool) (FirstB.usr.First_a_0 Bool) (FirstB.res.init_flag_a_0 Bool)) Bool + (and (= FirstB.usr.First_a_1 FirstB.usr.First_a_0) (not FirstB.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes3_0 ((excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_0 (not (or (or (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) (and excludes3.usr.X1_a_0 excludes3.usr.X3_a_0)) (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) excludes3.res.init_flag_a_0)) +(define-fun __node_trans_excludes3_0 ((excludes3.usr.X1_a_1 Bool) (excludes3.usr.X2_a_1 Bool) (excludes3.usr.X3_a_1 Bool) (excludes3.usr.excludes_a_1 Bool) (excludes3.res.init_flag_a_1 Bool) (excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_1 (not (or (or (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) (and excludes3.usr.X1_a_1 excludes3.usr.X3_a_1)) (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) (not excludes3.res.init_flag_a_1))) +(define-fun __node_init_PRODUCER_CONSUMMER_0 ((PRODUCER_CONSUMMER.usr.etat1_a_0 Bool) (PRODUCER_CONSUMMER.usr.etat2_a_0 Bool) (PRODUCER_CONSUMMER.usr.etat3_a_0 Bool) (PRODUCER_CONSUMMER.usr.a_init_a_0 Int) (PRODUCER_CONSUMMER.res.nondet_2 Int) (PRODUCER_CONSUMMER.res.nondet_1 Int) (PRODUCER_CONSUMMER.res.nondet_0 Int) (PRODUCER_CONSUMMER.usr.i_a_0 Int) (PRODUCER_CONSUMMER.usr.b_a_0 Int) (PRODUCER_CONSUMMER.usr.a_a_0 Int) (PRODUCER_CONSUMMER.usr.o1_a_0 Int) (PRODUCER_CONSUMMER.usr.o2_a_0 Int) (PRODUCER_CONSUMMER.res.init_flag_a_0 Bool)) Bool + (and (= PRODUCER_CONSUMMER.usr.a_a_0 PRODUCER_CONSUMMER.usr.a_init_a_0) (= PRODUCER_CONSUMMER.usr.i_a_0 PRODUCER_CONSUMMER.usr.a_a_0) (let ((X1 (let ((X1 PRODUCER_CONSUMMER.res.nondet_0)) (>= X1 1)))) (and (= PRODUCER_CONSUMMER.usr.b_a_0 0) (let ((X2 (let ((X2 PRODUCER_CONSUMMER.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 PRODUCER_CONSUMMER.res.nondet_2)) (>= X3 1)))) (and (= PRODUCER_CONSUMMER.usr.o1_a_0 0) (= PRODUCER_CONSUMMER.usr.o2_a_0 0) PRODUCER_CONSUMMER.res.init_flag_a_0))))))) +(define-fun __node_trans_PRODUCER_CONSUMMER_0 ((PRODUCER_CONSUMMER.usr.etat1_a_1 Bool) (PRODUCER_CONSUMMER.usr.etat2_a_1 Bool) (PRODUCER_CONSUMMER.usr.etat3_a_1 Bool) (PRODUCER_CONSUMMER.usr.a_init_a_1 Int) (PRODUCER_CONSUMMER.res.nondet_2 Int) (PRODUCER_CONSUMMER.res.nondet_1 Int) (PRODUCER_CONSUMMER.res.nondet_0 Int) (PRODUCER_CONSUMMER.usr.i_a_1 Int) (PRODUCER_CONSUMMER.usr.b_a_1 Int) (PRODUCER_CONSUMMER.usr.a_a_1 Int) (PRODUCER_CONSUMMER.usr.o1_a_1 Int) (PRODUCER_CONSUMMER.usr.o2_a_1 Int) (PRODUCER_CONSUMMER.res.init_flag_a_1 Bool) (PRODUCER_CONSUMMER.usr.etat1_a_0 Bool) (PRODUCER_CONSUMMER.usr.etat2_a_0 Bool) (PRODUCER_CONSUMMER.usr.etat3_a_0 Bool) (PRODUCER_CONSUMMER.usr.a_init_a_0 Int) (PRODUCER_CONSUMMER.usr.i_a_0 Int) (PRODUCER_CONSUMMER.usr.b_a_0 Int) (PRODUCER_CONSUMMER.usr.a_a_0 Int) (PRODUCER_CONSUMMER.usr.o1_a_0 Int) (PRODUCER_CONSUMMER.usr.o2_a_0 Int) (PRODUCER_CONSUMMER.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= PRODUCER_CONSUMMER.usr.i_a_0 1))) (and (= PRODUCER_CONSUMMER.usr.i_a_1 (ite PRODUCER_CONSUMMER.usr.etat1_a_1 (ite X1 (- PRODUCER_CONSUMMER.usr.i_a_0 1) PRODUCER_CONSUMMER.usr.i_a_0) PRODUCER_CONSUMMER.usr.i_a_0)) (= PRODUCER_CONSUMMER.usr.a_a_1 PRODUCER_CONSUMMER.usr.a_a_0) (let ((X2 (>= PRODUCER_CONSUMMER.usr.b_a_0 1))) (let ((X3 (>= PRODUCER_CONSUMMER.usr.b_a_0 1))) (and (= PRODUCER_CONSUMMER.usr.b_a_1 (ite PRODUCER_CONSUMMER.usr.etat1_a_1 (ite X1 (+ PRODUCER_CONSUMMER.usr.b_a_0 1) PRODUCER_CONSUMMER.usr.b_a_0) (ite PRODUCER_CONSUMMER.usr.etat2_a_1 (ite X3 (- PRODUCER_CONSUMMER.usr.b_a_0 1) PRODUCER_CONSUMMER.usr.b_a_0) (ite X2 (- PRODUCER_CONSUMMER.usr.b_a_0 1) PRODUCER_CONSUMMER.usr.b_a_0)))) (= PRODUCER_CONSUMMER.usr.o1_a_1 (ite PRODUCER_CONSUMMER.usr.etat2_a_1 (ite X3 (+ PRODUCER_CONSUMMER.usr.o1_a_0 1) PRODUCER_CONSUMMER.usr.o1_a_0) PRODUCER_CONSUMMER.usr.o1_a_0)) (= PRODUCER_CONSUMMER.usr.o2_a_1 (ite PRODUCER_CONSUMMER.usr.etat3_a_1 (ite X2 (+ PRODUCER_CONSUMMER.usr.o2_a_0 1) PRODUCER_CONSUMMER.usr.o2_a_0) PRODUCER_CONSUMMER.usr.o2_a_0)) (not PRODUCER_CONSUMMER.res.init_flag_a_1))))))) +(define-fun __node_init_top_0 ((top.usr.etat1_a_0 Bool) (top.usr.etat2_a_0 Bool) (top.usr.etat3_a_0 Bool) (top.usr.a_init_a_0 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.o1_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_8_a_0 (not (or (or top.usr.etat1_a_0 top.usr.etat2_a_0) top.usr.etat3_a_0))) (= top.res.abs_6_a_0 (or top.res.abs_5_a_0 (not (or (or top.usr.etat1_a_0 top.usr.etat2_a_0) top.usr.etat3_a_0)))) (let ((X1 (and (and top.res.abs_7_a_0 top.res.abs_9_a_0) (> top.res.abs_10_a_0 0)))) (let ((X2 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (= top.impl.usr.o1_a_0 top.res.abs_3_a_0) (__node_init_PRODUCER_CONSUMMER_0 top.usr.etat1_a_0 top.usr.etat2_a_0 top.usr.etat3_a_0 top.usr.a_init_a_0 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.inst_4_a_0) (__node_init_Sofar_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_3_a_0) (__node_init_excludes3_0 top.usr.etat1_a_0 top.usr.etat2_a_0 top.usr.etat3_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_init_FirstB_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.a_init_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.etat1_a_1 Bool) (top.usr.etat2_a_1 Bool) (top.usr.etat3_a_1 Bool) (top.usr.a_init_a_1 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.o1_a_1 Int) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.etat1_a_0 Bool) (top.usr.etat2_a_0 Bool) (top.usr.etat3_a_0 Bool) (top.usr.a_init_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.o1_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_6_a_1 (or top.res.abs_5_a_1 (not (or (or top.usr.etat1_a_1 top.usr.etat2_a_1) top.usr.etat3_a_1)))) (let ((X1 (and (and top.res.abs_7_a_1 top.res.abs_9_a_1) (> top.res.abs_10_a_1 0)))) (and (= top.impl.usr.o1_a_1 top.res.abs_3_a_1) (let ((X2 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (>= X2 0) (=> (and top.usr.etat1_a_0 top.usr.etat2_a_1) (or (= top.impl.usr.o1_a_1 (+ top.impl.usr.o1_a_0 1)) (= top.impl.usr.o1_a_1 top.impl.usr.o1_a_0)))))) (= top.res.abs_8_a_1 (not (or (or top.usr.etat1_a_1 top.usr.etat2_a_1) top.usr.etat3_a_1))) (__node_trans_PRODUCER_CONSUMMER_0 top.usr.etat1_a_1 top.usr.etat2_a_1 top.usr.etat3_a_1 top.usr.a_init_a_1 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.inst_4_a_1 top.usr.etat1_a_0 top.usr.etat2_a_0 top.usr.etat3_a_0 top.usr.a_init_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.inst_4_a_0) (__node_trans_Sofar_0 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.inst_3_a_1 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_3_a_0) (__node_trans_excludes3_0 top.usr.etat1_a_1 top.usr.etat2_a_1 top.usr.etat3_a_1 top.res.abs_5_a_1 top.res.inst_2_a_1 top.usr.etat1_a_0 top.usr.etat2_a_0 top.usr.etat3_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_trans_FirstB_0 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_1_a_1 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.a_init_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.usr.a_init_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))) +(synth-inv str_invariant ((top.usr.etat1 Bool) (top.usr.etat2 Bool) (top.usr.etat3 Bool) (top.usr.a_init Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.o1 Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.etat1 Bool) (top.usr.etat2 Bool) (top.usr.etat3 Bool) (top.usr.a_init Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.o1 Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_8 (not (or (or top.usr.etat1 top.usr.etat2) top.usr.etat3))) (= top.res.abs_6 (or top.res.abs_5 (not (or (or top.usr.etat1 top.usr.etat2) top.usr.etat3)))) (let ((X1 (and (and top.res.abs_7 top.res.abs_9) (> top.res.abs_10 0)))) (let ((X2 top.res.abs_0)) (and (= top.usr.OK (=> X1 (>= X2 0))) (= top.impl.usr.o1 top.res.abs_3) (__node_init_PRODUCER_CONSUMMER_0 top.usr.etat1 top.usr.etat2 top.usr.etat3 top.usr.a_init top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.inst_4) (__node_init_Sofar_0 top.res.abs_6 top.res.abs_7 top.res.inst_3) (__node_init_excludes3_0 top.usr.etat1 top.usr.etat2 top.usr.etat3 top.res.abs_5 top.res.inst_2) (__node_init_FirstB_0 top.res.abs_8 top.res.abs_9 top.res.inst_1) (__node_init_First_0 top.usr.a_init top.res.abs_10 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.etat1 Bool) (top.usr.etat2 Bool) (top.usr.etat3 Bool) (top.usr.a_init Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.o1 Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.etat1! Bool) (top.usr.etat2! Bool) (top.usr.etat3! Bool) (top.usr.a_init! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.o1! Int) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Int) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_6! (or top.res.abs_5! (not (or (or top.usr.etat1! top.usr.etat2!) top.usr.etat3!)))) (let ((X1 (and (and top.res.abs_7! top.res.abs_9!) (> top.res.abs_10! 0)))) (and (= top.impl.usr.o1! top.res.abs_3!) (let ((X2 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (>= X2 0) (=> (and top.usr.etat1 top.usr.etat2!) (or (= top.impl.usr.o1! (+ top.impl.usr.o1 1)) (= top.impl.usr.o1! top.impl.usr.o1)))))) (= top.res.abs_8! (not (or (or top.usr.etat1! top.usr.etat2!) top.usr.etat3!))) (__node_trans_PRODUCER_CONSUMMER_0 top.usr.etat1! top.usr.etat2! top.usr.etat3! top.usr.a_init! top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.inst_4! top.usr.etat1 top.usr.etat2 top.usr.etat3 top.usr.a_init top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.inst_4) (__node_trans_Sofar_0 top.res.abs_6! top.res.abs_7! top.res.inst_3! top.res.abs_6 top.res.abs_7 top.res.inst_3) (__node_trans_excludes3_0 top.usr.etat1! top.usr.etat2! top.usr.etat3! top.res.abs_5! top.res.inst_2! top.usr.etat1 top.usr.etat2 top.usr.etat3 top.res.abs_5 top.res.inst_2) (__node_trans_FirstB_0 top.res.abs_8! top.res.abs_9! top.res.inst_1! top.res.abs_8 top.res.abs_9 top.res.inst_1) (__node_trans_First_0 top.usr.a_init! top.res.abs_10! top.res.inst_0! top.usr.a_init top.res.abs_10 top.res.inst_0) (not top.res.init_flag!)))))) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.etat1 Bool) (top.usr.etat2 Bool) (top.usr.etat3 Bool) (top.usr.a_init Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.o1 Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/SYNAPSE_1.sl b/benchmarks/LIA/Lustre/SYNAPSE_1.sl index 8d37cbc..ae1b3a9 100644 --- a/benchmarks/LIA/Lustre/SYNAPSE_1.sl +++ b/benchmarks/LIA/Lustre/SYNAPSE_1.sl @@ -1,551 +1,34 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes3_0 ( - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_0 - (not - (or - (or - (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) - (and excludes3.usr.X1_a_0 excludes3.usr.X3_a_0)) - (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) - excludes3.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes3_0 ( - (excludes3.usr.X1_a_1 Bool) - (excludes3.usr.X2_a_1 Bool) - (excludes3.usr.X3_a_1 Bool) - (excludes3.usr.excludes_a_1 Bool) - (excludes3.res.init_flag_a_1 Bool) - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_1 - (not - (or - (or - (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) - (and excludes3.usr.X1_a_1 excludes3.usr.X3_a_1)) - (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) - (not excludes3.res.init_flag_a_1)) -) - -(define-fun - __node_init_synapse_0 ( - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (and - (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) - (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) - (= synapse.usr.valid_s_a_0 0) - (let - ((X1 Bool (let ((X1 Int synapse.res.nondet_0)) (>= X1 1)))) - (let - ((X2 Bool (let ((X2 Int synapse.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int synapse.res.nondet_2)) (>= X3 1)))) - (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_synapse_0 ( - (synapse.usr.e_s1_a_1 Bool) - (synapse.usr.e_s2_a_1 Bool) - (synapse.usr.e_s3_a_1 Bool) - (synapse.usr.init_invalid_s_a_1 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_1 Int) - (synapse.usr.valid_s_a_1 Int) - (synapse.usr.dirty_s_a_1 Int) - (synapse.usr.mem_init_s_a_1 Int) - (synapse.res.init_flag_a_1 Bool) - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= synapse.usr.invalid_s_a_0 1))) - (let - ((X2 Bool (>= synapse.usr.valid_s_a_0 1))) - (let - ((X3 Bool (>= synapse.usr.invalid_s_a_0 1))) - (and - (= - synapse.usr.invalid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite - X3 - (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite - X2 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite - X1 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - synapse.usr.invalid_s_a_0)))) - (= - synapse.usr.valid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 0 synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 0 synapse.usr.valid_s_a_0) - synapse.usr.valid_s_a_0)))) - (= - synapse.usr.dirty_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 0 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 1 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 1 synapse.usr.dirty_s_a_0) - synapse.usr.dirty_s_a_0)))) - (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) - (not synapse.res.init_flag_a_1))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (< X2 2))) - (__node_init_synapse_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes3_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e_s1_a_1 Bool) - (top.usr.e_s2_a_1 Bool) - (top.usr.e_s3_a_1 Bool) - (top.usr.init_invalid_s_a_1 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (< X2 2))) - (__node_trans_synapse_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.usr.init_invalid_s_a_1 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes3_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e_s1 Bool) -(declare-primed-var top.usr.e_s2 Bool) -(declare-primed-var top.usr.e_s3 Bool) -(declare-primed-var top.usr.init_invalid_s Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_2)) - (and - (= top.usr.OK (=> X1 (< X2 2))) - (__node_init_synapse_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes3_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e_s1! Bool) - (top.usr.e_s2! Bool) - (top.usr.e_s3! Bool) - (top.usr.init_invalid_s! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_2!)) - (and - (= top.usr.OK! (=> X1 (< X2 2))) - (__node_trans_synapse_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.usr.init_invalid_s! - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes3_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.res.abs_4! - top.res.inst_0! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes3_0 ((excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_0 (not (or (or (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) (and excludes3.usr.X1_a_0 excludes3.usr.X3_a_0)) (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) excludes3.res.init_flag_a_0)) +(define-fun __node_trans_excludes3_0 ((excludes3.usr.X1_a_1 Bool) (excludes3.usr.X2_a_1 Bool) (excludes3.usr.X3_a_1 Bool) (excludes3.usr.excludes_a_1 Bool) (excludes3.res.init_flag_a_1 Bool) (excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_1 (not (or (or (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) (and excludes3.usr.X1_a_1 excludes3.usr.X3_a_1)) (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) (not excludes3.res.init_flag_a_1))) +(define-fun __node_init_synapse_0 ((synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (and (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) (= synapse.usr.valid_s_a_0 0) (let ((X1 (let ((X1 synapse.res.nondet_0)) (>= X1 1)))) (let ((X2 (let ((X2 synapse.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 synapse.res.nondet_2)) (>= X3 1)))) (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0)))))) +(define-fun __node_trans_synapse_0 ((synapse.usr.e_s1_a_1 Bool) (synapse.usr.e_s2_a_1 Bool) (synapse.usr.e_s3_a_1 Bool) (synapse.usr.init_invalid_s_a_1 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_1 Int) (synapse.usr.valid_s_a_1 Int) (synapse.usr.dirty_s_a_1 Int) (synapse.usr.mem_init_s_a_1 Int) (synapse.res.init_flag_a_1 Bool) (synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= synapse.usr.invalid_s_a_0 1))) (let ((X2 (>= synapse.usr.valid_s_a_0 1))) (let ((X3 (>= synapse.usr.invalid_s_a_0 1))) (and (= synapse.usr.invalid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) synapse.usr.invalid_s_a_0)))) (= synapse.usr.valid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 0 synapse.usr.valid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 0 synapse.usr.valid_s_a_0) synapse.usr.valid_s_a_0)))) (= synapse.usr.dirty_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 0 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 1 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 1 synapse.usr.dirty_s_a_0) synapse.usr.dirty_s_a_0)))) (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) (not synapse.res.init_flag_a_1)))))) +(define-fun __node_init_top_0 ((top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_2_a_0)) (and (= top.usr.OK_a_0 (=> X1 (< X2 2))) (__node_init_synapse_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes3_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e_s1_a_1 Bool) (top.usr.e_s2_a_1 Bool) (top.usr.e_s3_a_1 Bool) (top.usr.init_invalid_s_a_1 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_2_a_1)) (and (= top.usr.OK_a_1 (=> X1 (< X2 2))) (__node_trans_synapse_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.usr.init_invalid_s_a_1 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes3_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_2)) (and (= top.usr.OK (=> X1 (< X2 2))) (__node_init_synapse_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes3_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e_s1! Bool) (top.usr.e_s2! Bool) (top.usr.e_s3! Bool) (top.usr.init_invalid_s! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_2!)) (and (= top.usr.OK! (=> X1 (< X2 2))) (__node_trans_synapse_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.usr.init_invalid_s! top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_2! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes3_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.res.abs_4! top.res.inst_0! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/SYNAPSE_123.sl b/benchmarks/LIA/Lustre/SYNAPSE_123.sl index 9b2045a..0bc1bfe 100644 --- a/benchmarks/LIA/Lustre/SYNAPSE_123.sl +++ b/benchmarks/LIA/Lustre/SYNAPSE_123.sl @@ -1,670 +1,38 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes3_0 ( - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_0 - (not - (or - (or - (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) - (and excludes3.usr.X1_a_0 excludes3.usr.X3_a_0)) - (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) - excludes3.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes3_0 ( - (excludes3.usr.X1_a_1 Bool) - (excludes3.usr.X2_a_1 Bool) - (excludes3.usr.X3_a_1 Bool) - (excludes3.usr.excludes_a_1 Bool) - (excludes3.res.init_flag_a_1 Bool) - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_1 - (not - (or - (or - (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) - (and excludes3.usr.X1_a_1 excludes3.usr.X3_a_1)) - (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) - (not excludes3.res.init_flag_a_1)) -) - -(define-fun - __node_init_synapse_0 ( - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (and - (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) - (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) - (= synapse.usr.valid_s_a_0 0) - (let - ((X1 Bool (let ((X1 Int synapse.res.nondet_0)) (>= X1 1)))) - (let - ((X2 Bool (let ((X2 Int synapse.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int synapse.res.nondet_2)) (>= X3 1)))) - (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_synapse_0 ( - (synapse.usr.e_s1_a_1 Bool) - (synapse.usr.e_s2_a_1 Bool) - (synapse.usr.e_s3_a_1 Bool) - (synapse.usr.init_invalid_s_a_1 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_1 Int) - (synapse.usr.valid_s_a_1 Int) - (synapse.usr.dirty_s_a_1 Int) - (synapse.usr.mem_init_s_a_1 Int) - (synapse.res.init_flag_a_1 Bool) - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= synapse.usr.invalid_s_a_0 1))) - (let - ((X2 Bool (>= synapse.usr.valid_s_a_0 1))) - (let - ((X3 Bool (>= synapse.usr.invalid_s_a_0 1))) - (and - (= - synapse.usr.invalid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite - X3 - (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite - X2 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite - X1 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - synapse.usr.invalid_s_a_0)))) - (= - synapse.usr.valid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 0 synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 0 synapse.usr.valid_s_a_0) - synapse.usr.valid_s_a_0)))) - (= - synapse.usr.dirty_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 0 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 1 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 1 synapse.usr.dirty_s_a_0) - synapse.usr.dirty_s_a_0)))) - (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) - (not synapse.res.init_flag_a_1))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (let - ((X3 Int top.res.abs_1_a_0)) - (let - ((X4 Int top.res.abs_0_a_0)) - (let - ((X5 Bool (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8_a_0)))) - (let - ((X6 Bool true)) - (let - ((X7 Bool (=> X1 (< X2 2)))) - (and - (= top.usr.OK_a_0 (and (and X6 X7) X5)) - (= top.res.abs_7_a_0 (+ (+ X4 X3) X2)) - (__node_init_synapse_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_init_excludes3_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_s_a_0 - top.res.abs_8_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e_s1_a_1 Bool) - (top.usr.e_s2_a_1 Bool) - (top.usr.e_s3_a_1 Bool) - (top.usr.init_invalid_s_a_1 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (let - ((X3 Int top.res.abs_1_a_1)) - (let - ((X4 Int top.res.abs_0_a_1)) - (let - ((X5 Bool (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8_a_1)))) - (let - ((X6 Bool (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_0)))) - (let - ((X7 Bool (=> X1 (< X2 2)))) - (and - (= top.usr.OK_a_1 (and (and X6 X7) X5)) - (= top.res.abs_7_a_1 (+ (+ X4 X3) X2)) - (__node_trans_synapse_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.usr.init_invalid_s_a_1 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_2_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes3_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_s_a_1 - top.res.abs_8_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_s_a_0 - top.res.abs_8_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e_s1 Bool) -(declare-primed-var top.usr.e_s2 Bool) -(declare-primed-var top.usr.e_s3 Bool) -(declare-primed-var top.usr.init_invalid_s Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_2)) - (let - ((X3 Int top.res.abs_1)) - (let - ((X4 Int top.res.abs_0)) - (let - ((X5 Bool (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8)))) - (let - ((X6 Bool true)) - (let - ((X7 Bool (=> X1 (< X2 2)))) - (and - (= top.usr.OK (and (and X6 X7) X5)) - (= top.res.abs_7 (+ (+ X4 X3) X2)) - (__node_init_synapse_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) - (__node_init_excludes3_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid_s - top.res.abs_8 - top.res.inst_0) - top.res.init_flag))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e_s1! Bool) - (top.usr.e_s2! Bool) - (top.usr.e_s3! Bool) - (top.usr.init_invalid_s! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_2!)) - (let - ((X3 Int top.res.abs_1!)) - (let - ((X4 Int top.res.abs_0!)) - (let - ((X5 Bool (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8!)))) - (let - ((X6 Bool (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7)))) - (let - ((X7 Bool (=> X1 (< X2 2)))) - (and - (= top.usr.OK! (and (and X6 X7) X5)) - (= top.res.abs_7! (+ (+ X4 X3) X2)) - (__node_trans_synapse_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.usr.init_invalid_s! - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_2! - top.res.abs_5 - top.res.abs_6 - top.res.inst_2) - (__node_trans_excludes3_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.res.abs_4! - top.res.inst_1! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid_s! - top.res.abs_8! - top.res.inst_0! - top.usr.init_invalid_s - top.res.abs_8 - top.res.inst_0) - (not top.res.init_flag!)))))))))) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes3_0 ((excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_0 (not (or (or (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) (and excludes3.usr.X1_a_0 excludes3.usr.X3_a_0)) (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) excludes3.res.init_flag_a_0)) +(define-fun __node_trans_excludes3_0 ((excludes3.usr.X1_a_1 Bool) (excludes3.usr.X2_a_1 Bool) (excludes3.usr.X3_a_1 Bool) (excludes3.usr.excludes_a_1 Bool) (excludes3.res.init_flag_a_1 Bool) (excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_1 (not (or (or (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) (and excludes3.usr.X1_a_1 excludes3.usr.X3_a_1)) (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) (not excludes3.res.init_flag_a_1))) +(define-fun __node_init_synapse_0 ((synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (and (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) (= synapse.usr.valid_s_a_0 0) (let ((X1 (let ((X1 synapse.res.nondet_0)) (>= X1 1)))) (let ((X2 (let ((X2 synapse.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 synapse.res.nondet_2)) (>= X3 1)))) (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0)))))) +(define-fun __node_trans_synapse_0 ((synapse.usr.e_s1_a_1 Bool) (synapse.usr.e_s2_a_1 Bool) (synapse.usr.e_s3_a_1 Bool) (synapse.usr.init_invalid_s_a_1 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_1 Int) (synapse.usr.valid_s_a_1 Int) (synapse.usr.dirty_s_a_1 Int) (synapse.usr.mem_init_s_a_1 Int) (synapse.res.init_flag_a_1 Bool) (synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= synapse.usr.invalid_s_a_0 1))) (let ((X2 (>= synapse.usr.valid_s_a_0 1))) (let ((X3 (>= synapse.usr.invalid_s_a_0 1))) (and (= synapse.usr.invalid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) synapse.usr.invalid_s_a_0)))) (= synapse.usr.valid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 0 synapse.usr.valid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 0 synapse.usr.valid_s_a_0) synapse.usr.valid_s_a_0)))) (= synapse.usr.dirty_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 0 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 1 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 1 synapse.usr.dirty_s_a_0) synapse.usr.dirty_s_a_0)))) (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) (not synapse.res.init_flag_a_1)))))) +(define-fun __node_init_top_0 ((top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_2_a_0)) (let ((X3 top.res.abs_1_a_0)) (let ((X4 top.res.abs_0_a_0)) (let ((X5 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8_a_0)))) (let ((X6 true)) (let ((X7 (=> X1 (< X2 2)))) (and (= top.usr.OK_a_0 (and (and X6 X7) X5)) (= top.res.abs_7_a_0 (+ (+ X4 X3) X2)) (__node_init_synapse_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_init_excludes3_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_s_a_0 top.res.abs_8_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))))) +(define-fun __node_trans_top_0 ((top.usr.e_s1_a_1 Bool) (top.usr.e_s2_a_1 Bool) (top.usr.e_s3_a_1 Bool) (top.usr.init_invalid_s_a_1 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_2_a_1)) (let ((X3 top.res.abs_1_a_1)) (let ((X4 top.res.abs_0_a_1)) (let ((X5 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8_a_1)))) (let ((X6 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_0)))) (let ((X7 (=> X1 (< X2 2)))) (and (= top.usr.OK_a_1 (and (and X6 X7) X5)) (= top.res.abs_7_a_1 (+ (+ X4 X3) X2)) (__node_trans_synapse_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.usr.init_invalid_s_a_1 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_2_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_trans_excludes3_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_s_a_1 top.res.abs_8_a_1 top.res.inst_0_a_1 top.usr.init_invalid_s_a_0 top.res.abs_8_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))))) +(synth-inv str_invariant ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_2)) (let ((X3 top.res.abs_1)) (let ((X4 top.res.abs_0)) (let ((X5 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8)))) (let ((X6 true)) (let ((X7 (=> X1 (< X2 2)))) (and (= top.usr.OK (and (and X6 X7) X5)) (= top.res.abs_7 (+ (+ X4 X3) X2)) (__node_init_synapse_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_init_excludes3_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid_s top.res.abs_8 top.res.inst_0) top.res.init_flag)))))))))) +(define-fun trans ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e_s1! Bool) (top.usr.e_s2! Bool) (top.usr.e_s3! Bool) (top.usr.init_invalid_s! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_2!)) (let ((X3 top.res.abs_1!)) (let ((X4 top.res.abs_0!)) (let ((X5 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8!)))) (let ((X6 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7)))) (let ((X7 (=> X1 (< X2 2)))) (and (= top.usr.OK! (and (and X6 X7) X5)) (= top.res.abs_7! (+ (+ X4 X3) X2)) (__node_trans_synapse_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.usr.init_invalid_s! top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_2! top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_trans_excludes3_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.res.abs_4! top.res.inst_1! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid_s! top.res.abs_8! top.res.inst_0! top.usr.init_invalid_s top.res.abs_8 top.res.inst_0) (not top.res.init_flag!)))))))))) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/SYNAPSE_123_e7_837_e7_1262.sl b/benchmarks/LIA/Lustre/SYNAPSE_123_e7_837_e7_1262.sl index 7f48bca..1f63fe2 100644 --- a/benchmarks/LIA/Lustre/SYNAPSE_123_e7_837_e7_1262.sl +++ b/benchmarks/LIA/Lustre/SYNAPSE_123_e7_837_e7_1262.sl @@ -1,670 +1,38 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes3_0 ( - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_0 - (not - (or - (or - (or excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) - (and excludes3.usr.X1_a_0 excludes3.usr.X3_a_0)) - (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) - excludes3.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes3_0 ( - (excludes3.usr.X1_a_1 Bool) - (excludes3.usr.X2_a_1 Bool) - (excludes3.usr.X3_a_1 Bool) - (excludes3.usr.excludes_a_1 Bool) - (excludes3.res.init_flag_a_1 Bool) - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_1 - (not - (or - (or - (or excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) - (and excludes3.usr.X1_a_1 excludes3.usr.X3_a_1)) - (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) - (not excludes3.res.init_flag_a_1)) -) - -(define-fun - __node_init_synapse_0 ( - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (and - (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) - (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) - (= synapse.usr.valid_s_a_0 0) - (let - ((X1 Bool (let ((X1 Int synapse.res.nondet_0)) (>= X1 1)))) - (let - ((X2 Bool (let ((X2 Int synapse.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int synapse.res.nondet_2)) (>= X3 1)))) - (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_synapse_0 ( - (synapse.usr.e_s1_a_1 Bool) - (synapse.usr.e_s2_a_1 Bool) - (synapse.usr.e_s3_a_1 Bool) - (synapse.usr.init_invalid_s_a_1 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_1 Int) - (synapse.usr.valid_s_a_1 Int) - (synapse.usr.dirty_s_a_1 Int) - (synapse.usr.mem_init_s_a_1 Int) - (synapse.res.init_flag_a_1 Bool) - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= synapse.usr.invalid_s_a_0 1))) - (let - ((X2 Bool (>= synapse.usr.valid_s_a_0 1))) - (let - ((X3 Bool (>= synapse.usr.invalid_s_a_0 1))) - (and - (= - synapse.usr.invalid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite - X3 - (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite - X2 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite - X1 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - synapse.usr.invalid_s_a_0)))) - (= - synapse.usr.valid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 0 synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 0 synapse.usr.valid_s_a_0) - synapse.usr.valid_s_a_0)))) - (= - synapse.usr.dirty_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 0 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 1 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 1 synapse.usr.dirty_s_a_0) - synapse.usr.dirty_s_a_0)))) - (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) - (not synapse.res.init_flag_a_1))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (let - ((X3 Int top.res.abs_1_a_0)) - (let - ((X4 Int top.res.abs_0_a_0)) - (let - ((X5 Bool (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8_a_0)))) - (let - ((X6 Bool true)) - (let - ((X7 Bool (=> X1 (< X2 2)))) - (and - (= top.usr.OK_a_0 (and (and X6 X7) X5)) - (= top.res.abs_7_a_0 (+ (+ X4 X3) X2)) - (__node_init_synapse_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_init_excludes3_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_s_a_0 - top.res.abs_8_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e_s1_a_1 Bool) - (top.usr.e_s2_a_1 Bool) - (top.usr.e_s3_a_1 Bool) - (top.usr.init_invalid_s_a_1 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (let - ((X3 Int top.res.abs_1_a_1)) - (let - ((X4 Int top.res.abs_0_a_1)) - (let - ((X5 Bool (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8_a_1)))) - (let - ((X6 Bool (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_0)))) - (let - ((X7 Bool (=> X1 (< X2 2)))) - (and - (= top.usr.OK_a_1 (and (and X6 X7) X5)) - (= top.res.abs_7_a_1 (+ (+ X4 X3) X2)) - (__node_trans_synapse_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.usr.init_invalid_s_a_1 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_2_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes3_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_s_a_1 - top.res.abs_8_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_s_a_0 - top.res.abs_8_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e_s1 Bool) -(declare-primed-var top.usr.e_s2 Bool) -(declare-primed-var top.usr.e_s3 Bool) -(declare-primed-var top.usr.init_invalid_s Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_2)) - (let - ((X3 Int top.res.abs_1)) - (let - ((X4 Int top.res.abs_0)) - (let - ((X5 Bool (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8)))) - (let - ((X6 Bool true)) - (let - ((X7 Bool (=> X1 (< X2 2)))) - (and - (= top.usr.OK (and (and X6 X7) X5)) - (= top.res.abs_7 (+ (+ X4 X3) X2)) - (__node_init_synapse_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) - (__node_init_excludes3_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid_s - top.res.abs_8 - top.res.inst_0) - top.res.init_flag))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e_s1! Bool) - (top.usr.e_s2! Bool) - (top.usr.e_s3! Bool) - (top.usr.init_invalid_s! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_2!)) - (let - ((X3 Int top.res.abs_1!)) - (let - ((X4 Int top.res.abs_0!)) - (let - ((X5 Bool (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8!)))) - (let - ((X6 Bool (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7)))) - (let - ((X7 Bool (=> X1 (< X2 2)))) - (and - (= top.usr.OK! (and (and X6 X7) X5)) - (= top.res.abs_7! (+ (+ X4 X3) X2)) - (__node_trans_synapse_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.usr.init_invalid_s! - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_2! - top.res.abs_5 - top.res.abs_6 - top.res.inst_2) - (__node_trans_excludes3_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.res.abs_4! - top.res.inst_1! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid_s! - top.res.abs_8! - top.res.inst_0! - top.usr.init_invalid_s - top.res.abs_8 - top.res.inst_0) - (not top.res.init_flag!)))))))))) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes3_0 ((excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_0 (not (or (or (or excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) (and excludes3.usr.X1_a_0 excludes3.usr.X3_a_0)) (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) excludes3.res.init_flag_a_0)) +(define-fun __node_trans_excludes3_0 ((excludes3.usr.X1_a_1 Bool) (excludes3.usr.X2_a_1 Bool) (excludes3.usr.X3_a_1 Bool) (excludes3.usr.excludes_a_1 Bool) (excludes3.res.init_flag_a_1 Bool) (excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_1 (not (or (or (or excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) (and excludes3.usr.X1_a_1 excludes3.usr.X3_a_1)) (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) (not excludes3.res.init_flag_a_1))) +(define-fun __node_init_synapse_0 ((synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (and (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) (= synapse.usr.valid_s_a_0 0) (let ((X1 (let ((X1 synapse.res.nondet_0)) (>= X1 1)))) (let ((X2 (let ((X2 synapse.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 synapse.res.nondet_2)) (>= X3 1)))) (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0)))))) +(define-fun __node_trans_synapse_0 ((synapse.usr.e_s1_a_1 Bool) (synapse.usr.e_s2_a_1 Bool) (synapse.usr.e_s3_a_1 Bool) (synapse.usr.init_invalid_s_a_1 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_1 Int) (synapse.usr.valid_s_a_1 Int) (synapse.usr.dirty_s_a_1 Int) (synapse.usr.mem_init_s_a_1 Int) (synapse.res.init_flag_a_1 Bool) (synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= synapse.usr.invalid_s_a_0 1))) (let ((X2 (>= synapse.usr.valid_s_a_0 1))) (let ((X3 (>= synapse.usr.invalid_s_a_0 1))) (and (= synapse.usr.invalid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) synapse.usr.invalid_s_a_0)))) (= synapse.usr.valid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 0 synapse.usr.valid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 0 synapse.usr.valid_s_a_0) synapse.usr.valid_s_a_0)))) (= synapse.usr.dirty_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 0 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 1 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 1 synapse.usr.dirty_s_a_0) synapse.usr.dirty_s_a_0)))) (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) (not synapse.res.init_flag_a_1)))))) +(define-fun __node_init_top_0 ((top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_2_a_0)) (let ((X3 top.res.abs_1_a_0)) (let ((X4 top.res.abs_0_a_0)) (let ((X5 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8_a_0)))) (let ((X6 true)) (let ((X7 (=> X1 (< X2 2)))) (and (= top.usr.OK_a_0 (and (and X6 X7) X5)) (= top.res.abs_7_a_0 (+ (+ X4 X3) X2)) (__node_init_synapse_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_init_excludes3_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_s_a_0 top.res.abs_8_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))))) +(define-fun __node_trans_top_0 ((top.usr.e_s1_a_1 Bool) (top.usr.e_s2_a_1 Bool) (top.usr.e_s3_a_1 Bool) (top.usr.init_invalid_s_a_1 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_2_a_1)) (let ((X3 top.res.abs_1_a_1)) (let ((X4 top.res.abs_0_a_1)) (let ((X5 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8_a_1)))) (let ((X6 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_0)))) (let ((X7 (=> X1 (< X2 2)))) (and (= top.usr.OK_a_1 (and (and X6 X7) X5)) (= top.res.abs_7_a_1 (+ (+ X4 X3) X2)) (__node_trans_synapse_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.usr.init_invalid_s_a_1 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_2_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_trans_excludes3_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_s_a_1 top.res.abs_8_a_1 top.res.inst_0_a_1 top.usr.init_invalid_s_a_0 top.res.abs_8_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))))) +(synth-inv str_invariant ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_2)) (let ((X3 top.res.abs_1)) (let ((X4 top.res.abs_0)) (let ((X5 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8)))) (let ((X6 true)) (let ((X7 (=> X1 (< X2 2)))) (and (= top.usr.OK (and (and X6 X7) X5)) (= top.res.abs_7 (+ (+ X4 X3) X2)) (__node_init_synapse_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_init_excludes3_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid_s top.res.abs_8 top.res.inst_0) top.res.init_flag)))))))))) +(define-fun trans ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e_s1! Bool) (top.usr.e_s2! Bool) (top.usr.e_s3! Bool) (top.usr.init_invalid_s! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_2!)) (let ((X3 top.res.abs_1!)) (let ((X4 top.res.abs_0!)) (let ((X5 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8!)))) (let ((X6 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7)))) (let ((X7 (=> X1 (< X2 2)))) (and (= top.usr.OK! (and (and X6 X7) X5)) (= top.res.abs_7! (+ (+ X4 X3) X2)) (__node_trans_synapse_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.usr.init_invalid_s! top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_2! top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_trans_excludes3_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.res.abs_4! top.res.inst_1! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid_s! top.res.abs_8! top.res.inst_0! top.usr.init_invalid_s top.res.abs_8 top.res.inst_0) (not top.res.init_flag!)))))))))) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/SYNAPSE_123_e7_856.sl b/benchmarks/LIA/Lustre/SYNAPSE_123_e7_856.sl index ea944d3..ff4d939 100644 --- a/benchmarks/LIA/Lustre/SYNAPSE_123_e7_856.sl +++ b/benchmarks/LIA/Lustre/SYNAPSE_123_e7_856.sl @@ -1,670 +1,38 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes3_0 ( - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_0 - (not - (or - (or - (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) - (and excludes3.usr.X1_a_0 excludes3.usr.X3_a_0)) - (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) - excludes3.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes3_0 ( - (excludes3.usr.X1_a_1 Bool) - (excludes3.usr.X2_a_1 Bool) - (excludes3.usr.X3_a_1 Bool) - (excludes3.usr.excludes_a_1 Bool) - (excludes3.res.init_flag_a_1 Bool) - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_1 - (not - (or - (or - (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) - (and excludes3.usr.X1_a_1 excludes3.usr.X3_a_1)) - (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) - (not excludes3.res.init_flag_a_1)) -) - -(define-fun - __node_init_synapse_0 ( - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (and - (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) - (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) - (= synapse.usr.valid_s_a_0 0) - (let - ((X1 Bool (let ((X1 Int synapse.res.nondet_0)) (>= X1 1)))) - (let - ((X2 Bool (let ((X2 Int synapse.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int synapse.res.nondet_2)) (>= X3 1)))) - (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_synapse_0 ( - (synapse.usr.e_s1_a_1 Bool) - (synapse.usr.e_s2_a_1 Bool) - (synapse.usr.e_s3_a_1 Bool) - (synapse.usr.init_invalid_s_a_1 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_1 Int) - (synapse.usr.valid_s_a_1 Int) - (synapse.usr.dirty_s_a_1 Int) - (synapse.usr.mem_init_s_a_1 Int) - (synapse.res.init_flag_a_1 Bool) - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= synapse.usr.invalid_s_a_0 1))) - (let - ((X2 Bool (>= synapse.usr.valid_s_a_0 1))) - (let - ((X3 Bool (>= synapse.usr.invalid_s_a_0 1))) - (and - (= - synapse.usr.invalid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite - X3 - (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite - X2 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite - X1 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - synapse.usr.invalid_s_a_0)))) - (= - synapse.usr.valid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 0 synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 0 synapse.usr.valid_s_a_0) - synapse.usr.valid_s_a_0)))) - (= - synapse.usr.dirty_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 0 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 1 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 1 synapse.usr.dirty_s_a_0) - synapse.usr.dirty_s_a_0)))) - (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) - (not synapse.res.init_flag_a_1))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (let - ((X3 Int top.res.abs_1_a_0)) - (let - ((X4 Int top.res.abs_0_a_0)) - (let - ((X5 Bool (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8_a_0)))) - (let - ((X6 Bool true)) - (let - ((X7 Bool (=> X1 (< X2 2)))) - (and - (= top.usr.OK_a_0 (and (and X6 X7) X5)) - (= top.res.abs_7_a_0 (+ (+ X4 X3) X2)) - (__node_init_synapse_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_init_excludes3_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_s_a_0 - top.res.abs_8_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e_s1_a_1 Bool) - (top.usr.e_s2_a_1 Bool) - (top.usr.e_s3_a_1 Bool) - (top.usr.init_invalid_s_a_1 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (let - ((X3 Int top.res.abs_1_a_1)) - (let - ((X4 Int top.res.abs_0_a_1)) - (let - ((X5 Bool (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8_a_1)))) - (let - ((X6 Bool (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_0)))) - (let - ((X7 Bool (=> X1 (< X2 2)))) - (and - (= top.usr.OK_a_1 (and (and X6 X7) X5)) - (= top.res.abs_7_a_1 (+ (+ X4 X3) X2)) - (__node_trans_synapse_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.usr.init_invalid_s_a_1 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_2_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes3_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_s_a_1 - top.res.abs_8_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_s_a_0 - top.res.abs_8_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e_s1 Bool) -(declare-primed-var top.usr.e_s2 Bool) -(declare-primed-var top.usr.e_s3 Bool) -(declare-primed-var top.usr.init_invalid_s Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_2)) - (let - ((X3 Int top.res.abs_1)) - (let - ((X4 Int top.res.abs_0)) - (let - ((X5 Bool (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8)))) - (let - ((X6 Bool true)) - (let - ((X7 Bool (=> X1 (< X2 2)))) - (and - (= top.usr.OK (and (and X6 X7) X5)) - (= top.res.abs_7 (+ (+ X4 X3) X2)) - (__node_init_synapse_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) - (__node_init_excludes3_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid_s - top.res.abs_8 - top.res.inst_0) - top.res.init_flag))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e_s1! Bool) - (top.usr.e_s2! Bool) - (top.usr.e_s3! Bool) - (top.usr.init_invalid_s! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_2!)) - (let - ((X3 Int top.res.abs_1!)) - (let - ((X4 Int top.res.abs_0!)) - (let - ((X5 Bool (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8!)))) - (let - ((X6 Bool (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7)))) - (let - ((X7 Bool (=> X1 (< X2 2)))) - (and - (= top.usr.OK! (and (and X6 X7) X5)) - (= top.res.abs_7! (+ (+ X4 X3) X2)) - (__node_trans_synapse_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.usr.init_invalid_s! - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_2! - top.res.abs_5 - top.res.abs_6 - top.res.inst_2) - (__node_trans_excludes3_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.res.abs_4! - top.res.inst_1! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid_s! - top.res.abs_8! - top.res.inst_0! - top.usr.init_invalid_s - top.res.abs_8 - top.res.inst_0) - (not top.res.init_flag!)))))))))) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes3_0 ((excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_0 (not (or (or (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) (and excludes3.usr.X1_a_0 excludes3.usr.X3_a_0)) (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) excludes3.res.init_flag_a_0)) +(define-fun __node_trans_excludes3_0 ((excludes3.usr.X1_a_1 Bool) (excludes3.usr.X2_a_1 Bool) (excludes3.usr.X3_a_1 Bool) (excludes3.usr.excludes_a_1 Bool) (excludes3.res.init_flag_a_1 Bool) (excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_1 (not (or (or (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) (and excludes3.usr.X1_a_1 excludes3.usr.X3_a_1)) (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) (not excludes3.res.init_flag_a_1))) +(define-fun __node_init_synapse_0 ((synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (and (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) (= synapse.usr.valid_s_a_0 0) (let ((X1 (let ((X1 synapse.res.nondet_0)) (>= X1 1)))) (let ((X2 (let ((X2 synapse.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 synapse.res.nondet_2)) (>= X3 1)))) (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0)))))) +(define-fun __node_trans_synapse_0 ((synapse.usr.e_s1_a_1 Bool) (synapse.usr.e_s2_a_1 Bool) (synapse.usr.e_s3_a_1 Bool) (synapse.usr.init_invalid_s_a_1 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_1 Int) (synapse.usr.valid_s_a_1 Int) (synapse.usr.dirty_s_a_1 Int) (synapse.usr.mem_init_s_a_1 Int) (synapse.res.init_flag_a_1 Bool) (synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= synapse.usr.invalid_s_a_0 1))) (let ((X2 (>= synapse.usr.valid_s_a_0 1))) (let ((X3 (>= synapse.usr.invalid_s_a_0 1))) (and (= synapse.usr.invalid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) synapse.usr.invalid_s_a_0)))) (= synapse.usr.valid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 0 synapse.usr.valid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 0 synapse.usr.valid_s_a_0) synapse.usr.valid_s_a_0)))) (= synapse.usr.dirty_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 0 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 1 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 1 synapse.usr.dirty_s_a_0) synapse.usr.dirty_s_a_0)))) (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) (not synapse.res.init_flag_a_1)))))) +(define-fun __node_init_top_0 ((top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_2_a_0)) (let ((X3 top.res.abs_1_a_0)) (let ((X4 top.res.abs_0_a_0)) (let ((X5 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8_a_0)))) (let ((X6 true)) (let ((X7 (=> X1 (< X2 2)))) (and (= top.usr.OK_a_0 (and (and X6 X7) X5)) (= top.res.abs_7_a_0 (+ (+ X4 X3) X2)) (__node_init_synapse_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_init_excludes3_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_s_a_0 top.res.abs_8_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))))) +(define-fun __node_trans_top_0 ((top.usr.e_s1_a_1 Bool) (top.usr.e_s2_a_1 Bool) (top.usr.e_s3_a_1 Bool) (top.usr.init_invalid_s_a_1 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_2_a_1)) (let ((X3 top.res.abs_1_a_1)) (let ((X4 top.res.abs_0_a_1)) (let ((X5 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8_a_1)))) (let ((X6 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_0)))) (let ((X7 (=> X1 (< X2 2)))) (and (= top.usr.OK_a_1 (and (and X6 X7) X5)) (= top.res.abs_7_a_1 (+ (+ X4 X3) X2)) (__node_trans_synapse_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.usr.init_invalid_s_a_1 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_2_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_trans_excludes3_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_s_a_1 top.res.abs_8_a_1 top.res.inst_0_a_1 top.usr.init_invalid_s_a_0 top.res.abs_8_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))))) +(synth-inv str_invariant ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_2)) (let ((X3 top.res.abs_1)) (let ((X4 top.res.abs_0)) (let ((X5 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8)))) (let ((X6 true)) (let ((X7 (=> X1 (< X2 2)))) (and (= top.usr.OK (and (and X6 X7) X5)) (= top.res.abs_7 (+ (+ X4 X3) X2)) (__node_init_synapse_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_init_excludes3_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid_s top.res.abs_8 top.res.inst_0) top.res.init_flag)))))))))) +(define-fun trans ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e_s1! Bool) (top.usr.e_s2! Bool) (top.usr.e_s3! Bool) (top.usr.init_invalid_s! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_2!)) (let ((X3 top.res.abs_1!)) (let ((X4 top.res.abs_0!)) (let ((X5 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8!)))) (let ((X6 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7)))) (let ((X7 (=> X1 (< X2 2)))) (and (= top.usr.OK! (and (and X6 X7) X5)) (= top.res.abs_7! (+ (+ X4 X3) X2)) (__node_trans_synapse_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.usr.init_invalid_s! top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_2! top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_trans_excludes3_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.res.abs_4! top.res.inst_1! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid_s! top.res.abs_8! top.res.inst_0! top.usr.init_invalid_s top.res.abs_8 top.res.inst_0) (not top.res.init_flag!)))))))))) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/SYNAPSE_123_e8_953.sl b/benchmarks/LIA/Lustre/SYNAPSE_123_e8_953.sl index a72af93..f5e9949 100644 --- a/benchmarks/LIA/Lustre/SYNAPSE_123_e8_953.sl +++ b/benchmarks/LIA/Lustre/SYNAPSE_123_e8_953.sl @@ -1,670 +1,38 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes3_0 ( - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_0 - (not - (or - (and - (and (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) excludes3.usr.X1_a_0) - excludes3.usr.X3_a_0) - (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) - excludes3.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes3_0 ( - (excludes3.usr.X1_a_1 Bool) - (excludes3.usr.X2_a_1 Bool) - (excludes3.usr.X3_a_1 Bool) - (excludes3.usr.excludes_a_1 Bool) - (excludes3.res.init_flag_a_1 Bool) - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_1 - (not - (or - (and - (and (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) excludes3.usr.X1_a_1) - excludes3.usr.X3_a_1) - (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) - (not excludes3.res.init_flag_a_1)) -) - -(define-fun - __node_init_synapse_0 ( - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (and - (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) - (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) - (= synapse.usr.valid_s_a_0 0) - (let - ((X1 Bool (let ((X1 Int synapse.res.nondet_0)) (>= X1 1)))) - (let - ((X2 Bool (let ((X2 Int synapse.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int synapse.res.nondet_2)) (>= X3 1)))) - (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_synapse_0 ( - (synapse.usr.e_s1_a_1 Bool) - (synapse.usr.e_s2_a_1 Bool) - (synapse.usr.e_s3_a_1 Bool) - (synapse.usr.init_invalid_s_a_1 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_1 Int) - (synapse.usr.valid_s_a_1 Int) - (synapse.usr.dirty_s_a_1 Int) - (synapse.usr.mem_init_s_a_1 Int) - (synapse.res.init_flag_a_1 Bool) - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= synapse.usr.invalid_s_a_0 1))) - (let - ((X2 Bool (>= synapse.usr.valid_s_a_0 1))) - (let - ((X3 Bool (>= synapse.usr.invalid_s_a_0 1))) - (and - (= - synapse.usr.invalid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite - X3 - (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite - X2 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite - X1 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - synapse.usr.invalid_s_a_0)))) - (= - synapse.usr.valid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 0 synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 0 synapse.usr.valid_s_a_0) - synapse.usr.valid_s_a_0)))) - (= - synapse.usr.dirty_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 0 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 1 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 1 synapse.usr.dirty_s_a_0) - synapse.usr.dirty_s_a_0)))) - (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) - (not synapse.res.init_flag_a_1))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (let - ((X3 Int top.res.abs_1_a_0)) - (let - ((X4 Int top.res.abs_0_a_0)) - (let - ((X5 Bool (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8_a_0)))) - (let - ((X6 Bool true)) - (let - ((X7 Bool (=> X1 (< X2 2)))) - (and - (= top.usr.OK_a_0 (and (and X6 X7) X5)) - (= top.res.abs_7_a_0 (+ (+ X4 X3) X2)) - (__node_init_synapse_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_init_excludes3_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_s_a_0 - top.res.abs_8_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e_s1_a_1 Bool) - (top.usr.e_s2_a_1 Bool) - (top.usr.e_s3_a_1 Bool) - (top.usr.init_invalid_s_a_1 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (let - ((X3 Int top.res.abs_1_a_1)) - (let - ((X4 Int top.res.abs_0_a_1)) - (let - ((X5 Bool (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8_a_1)))) - (let - ((X6 Bool (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_0)))) - (let - ((X7 Bool (=> X1 (< X2 2)))) - (and - (= top.usr.OK_a_1 (and (and X6 X7) X5)) - (= top.res.abs_7_a_1 (+ (+ X4 X3) X2)) - (__node_trans_synapse_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.usr.init_invalid_s_a_1 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_2_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes3_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_s_a_1 - top.res.abs_8_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_s_a_0 - top.res.abs_8_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e_s1 Bool) -(declare-primed-var top.usr.e_s2 Bool) -(declare-primed-var top.usr.e_s3 Bool) -(declare-primed-var top.usr.init_invalid_s Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_2)) - (let - ((X3 Int top.res.abs_1)) - (let - ((X4 Int top.res.abs_0)) - (let - ((X5 Bool (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8)))) - (let - ((X6 Bool true)) - (let - ((X7 Bool (=> X1 (< X2 2)))) - (and - (= top.usr.OK (and (and X6 X7) X5)) - (= top.res.abs_7 (+ (+ X4 X3) X2)) - (__node_init_synapse_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) - (__node_init_excludes3_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid_s - top.res.abs_8 - top.res.inst_0) - top.res.init_flag))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e_s1! Bool) - (top.usr.e_s2! Bool) - (top.usr.e_s3! Bool) - (top.usr.init_invalid_s! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_2!)) - (let - ((X3 Int top.res.abs_1!)) - (let - ((X4 Int top.res.abs_0!)) - (let - ((X5 Bool (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8!)))) - (let - ((X6 Bool (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7)))) - (let - ((X7 Bool (=> X1 (< X2 2)))) - (and - (= top.usr.OK! (and (and X6 X7) X5)) - (= top.res.abs_7! (+ (+ X4 X3) X2)) - (__node_trans_synapse_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.usr.init_invalid_s! - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_2! - top.res.abs_5 - top.res.abs_6 - top.res.inst_2) - (__node_trans_excludes3_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.res.abs_4! - top.res.inst_1! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid_s! - top.res.abs_8! - top.res.inst_0! - top.usr.init_invalid_s - top.res.abs_8 - top.res.inst_0) - (not top.res.init_flag!)))))))))) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes3_0 ((excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_0 (not (or (and (and (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) excludes3.usr.X1_a_0) excludes3.usr.X3_a_0) (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) excludes3.res.init_flag_a_0)) +(define-fun __node_trans_excludes3_0 ((excludes3.usr.X1_a_1 Bool) (excludes3.usr.X2_a_1 Bool) (excludes3.usr.X3_a_1 Bool) (excludes3.usr.excludes_a_1 Bool) (excludes3.res.init_flag_a_1 Bool) (excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_1 (not (or (and (and (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) excludes3.usr.X1_a_1) excludes3.usr.X3_a_1) (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) (not excludes3.res.init_flag_a_1))) +(define-fun __node_init_synapse_0 ((synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (and (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) (= synapse.usr.valid_s_a_0 0) (let ((X1 (let ((X1 synapse.res.nondet_0)) (>= X1 1)))) (let ((X2 (let ((X2 synapse.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 synapse.res.nondet_2)) (>= X3 1)))) (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0)))))) +(define-fun __node_trans_synapse_0 ((synapse.usr.e_s1_a_1 Bool) (synapse.usr.e_s2_a_1 Bool) (synapse.usr.e_s3_a_1 Bool) (synapse.usr.init_invalid_s_a_1 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_1 Int) (synapse.usr.valid_s_a_1 Int) (synapse.usr.dirty_s_a_1 Int) (synapse.usr.mem_init_s_a_1 Int) (synapse.res.init_flag_a_1 Bool) (synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= synapse.usr.invalid_s_a_0 1))) (let ((X2 (>= synapse.usr.valid_s_a_0 1))) (let ((X3 (>= synapse.usr.invalid_s_a_0 1))) (and (= synapse.usr.invalid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) synapse.usr.invalid_s_a_0)))) (= synapse.usr.valid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 0 synapse.usr.valid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 0 synapse.usr.valid_s_a_0) synapse.usr.valid_s_a_0)))) (= synapse.usr.dirty_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 0 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 1 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 1 synapse.usr.dirty_s_a_0) synapse.usr.dirty_s_a_0)))) (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) (not synapse.res.init_flag_a_1)))))) +(define-fun __node_init_top_0 ((top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_2_a_0)) (let ((X3 top.res.abs_1_a_0)) (let ((X4 top.res.abs_0_a_0)) (let ((X5 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8_a_0)))) (let ((X6 true)) (let ((X7 (=> X1 (< X2 2)))) (and (= top.usr.OK_a_0 (and (and X6 X7) X5)) (= top.res.abs_7_a_0 (+ (+ X4 X3) X2)) (__node_init_synapse_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_init_excludes3_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_s_a_0 top.res.abs_8_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))))) +(define-fun __node_trans_top_0 ((top.usr.e_s1_a_1 Bool) (top.usr.e_s2_a_1 Bool) (top.usr.e_s3_a_1 Bool) (top.usr.init_invalid_s_a_1 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_2_a_1)) (let ((X3 top.res.abs_1_a_1)) (let ((X4 top.res.abs_0_a_1)) (let ((X5 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8_a_1)))) (let ((X6 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_0)))) (let ((X7 (=> X1 (< X2 2)))) (and (= top.usr.OK_a_1 (and (and X6 X7) X5)) (= top.res.abs_7_a_1 (+ (+ X4 X3) X2)) (__node_trans_synapse_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.usr.init_invalid_s_a_1 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_2_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_trans_excludes3_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_s_a_1 top.res.abs_8_a_1 top.res.inst_0_a_1 top.usr.init_invalid_s_a_0 top.res.abs_8_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))))) +(synth-inv str_invariant ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_2)) (let ((X3 top.res.abs_1)) (let ((X4 top.res.abs_0)) (let ((X5 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8)))) (let ((X6 true)) (let ((X7 (=> X1 (< X2 2)))) (and (= top.usr.OK (and (and X6 X7) X5)) (= top.res.abs_7 (+ (+ X4 X3) X2)) (__node_init_synapse_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_init_excludes3_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid_s top.res.abs_8 top.res.inst_0) top.res.init_flag)))))))))) +(define-fun trans ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e_s1! Bool) (top.usr.e_s2! Bool) (top.usr.e_s3! Bool) (top.usr.init_invalid_s! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_2!)) (let ((X3 top.res.abs_1!)) (let ((X4 top.res.abs_0!)) (let ((X5 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8!)))) (let ((X6 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7)))) (let ((X7 (=> X1 (< X2 2)))) (and (= top.usr.OK! (and (and X6 X7) X5)) (= top.res.abs_7! (+ (+ X4 X3) X2)) (__node_trans_synapse_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.usr.init_invalid_s! top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_2! top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_trans_excludes3_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.res.abs_4! top.res.inst_1! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid_s! top.res.abs_8! top.res.inst_0! top.usr.init_invalid_s top.res.abs_8 top.res.inst_0) (not top.res.init_flag!)))))))))) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/SYNAPSE_123_e8_953_e7_1465.sl b/benchmarks/LIA/Lustre/SYNAPSE_123_e8_953_e7_1465.sl index f249553..b7ee78a 100644 --- a/benchmarks/LIA/Lustre/SYNAPSE_123_e8_953_e7_1465.sl +++ b/benchmarks/LIA/Lustre/SYNAPSE_123_e8_953_e7_1465.sl @@ -1,670 +1,38 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes3_0 ( - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_0 - (not - (or - (and - (and (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) excludes3.usr.X1_a_0) - excludes3.usr.X3_a_0) - (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) - excludes3.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes3_0 ( - (excludes3.usr.X1_a_1 Bool) - (excludes3.usr.X2_a_1 Bool) - (excludes3.usr.X3_a_1 Bool) - (excludes3.usr.excludes_a_1 Bool) - (excludes3.res.init_flag_a_1 Bool) - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_1 - (not - (or - (and - (and (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) excludes3.usr.X1_a_1) - excludes3.usr.X3_a_1) - (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) - (not excludes3.res.init_flag_a_1)) -) - -(define-fun - __node_init_synapse_0 ( - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (and - (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) - (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) - (= synapse.usr.valid_s_a_0 0) - (let - ((X1 Bool (let ((X1 Int synapse.res.nondet_0)) (>= X1 1)))) - (let - ((X2 Bool (let ((X2 Int synapse.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int synapse.res.nondet_2)) (>= X3 1)))) - (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_synapse_0 ( - (synapse.usr.e_s1_a_1 Bool) - (synapse.usr.e_s2_a_1 Bool) - (synapse.usr.e_s3_a_1 Bool) - (synapse.usr.init_invalid_s_a_1 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_1 Int) - (synapse.usr.valid_s_a_1 Int) - (synapse.usr.dirty_s_a_1 Int) - (synapse.usr.mem_init_s_a_1 Int) - (synapse.res.init_flag_a_1 Bool) - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= synapse.usr.invalid_s_a_0 1))) - (let - ((X2 Bool (>= synapse.usr.valid_s_a_0 1))) - (let - ((X3 Bool (>= synapse.usr.invalid_s_a_0 1))) - (and - (= - synapse.usr.invalid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite - X3 - (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite - X2 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite - X1 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - synapse.usr.invalid_s_a_0)))) - (= - synapse.usr.valid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 0 synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 0 synapse.usr.valid_s_a_0) - synapse.usr.valid_s_a_0)))) - (= - synapse.usr.dirty_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 0 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 1 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 1 synapse.usr.dirty_s_a_0) - synapse.usr.dirty_s_a_0)))) - (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) - (not synapse.res.init_flag_a_1))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (let - ((X3 Int top.res.abs_1_a_0)) - (let - ((X4 Int top.res.abs_0_a_0)) - (let - ((X5 Bool (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8_a_0)))) - (let - ((X6 Bool true)) - (let - ((X7 Bool (=> X1 (< X2 2)))) - (and - (= top.usr.OK_a_0 (and (and X6 X7) X5)) - (= top.res.abs_7_a_0 (+ (+ X4 X3) X2)) - (__node_init_synapse_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_init_excludes3_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_s_a_0 - top.res.abs_8_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e_s1_a_1 Bool) - (top.usr.e_s2_a_1 Bool) - (top.usr.e_s3_a_1 Bool) - (top.usr.init_invalid_s_a_1 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (let - ((X3 Int top.res.abs_1_a_1)) - (let - ((X4 Int top.res.abs_0_a_1)) - (let - ((X5 Bool (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8_a_1)))) - (let - ((X6 Bool (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_0)))) - (let - ((X7 Bool (=> X1 (< X2 2)))) - (and - (= top.usr.OK_a_1 (and (and X6 X7) X5)) - (= top.res.abs_7_a_1 (+ (+ X4 X3) X2)) - (__node_trans_synapse_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.usr.init_invalid_s_a_1 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_2_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes3_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_s_a_1 - top.res.abs_8_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_s_a_0 - top.res.abs_8_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e_s1 Bool) -(declare-primed-var top.usr.e_s2 Bool) -(declare-primed-var top.usr.e_s3 Bool) -(declare-primed-var top.usr.init_invalid_s Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_2)) - (let - ((X3 Int top.res.abs_1)) - (let - ((X4 Int top.res.abs_0)) - (let - ((X5 Bool (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8)))) - (let - ((X6 Bool true)) - (let - ((X7 Bool (=> X1 (< X2 2)))) - (and - (= top.usr.OK (and (and X6 X7) X5)) - (= top.res.abs_7 (+ (+ X4 X3) X2)) - (__node_init_synapse_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) - (__node_init_excludes3_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid_s - top.res.abs_8 - top.res.inst_0) - top.res.init_flag))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e_s1! Bool) - (top.usr.e_s2! Bool) - (top.usr.e_s3! Bool) - (top.usr.init_invalid_s! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_2!)) - (let - ((X3 Int top.res.abs_1!)) - (let - ((X4 Int top.res.abs_0!)) - (let - ((X5 Bool (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8!)))) - (let - ((X6 Bool (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7)))) - (let - ((X7 Bool (=> X1 (< X2 2)))) - (and - (= top.usr.OK! (and (and X6 X7) X5)) - (= top.res.abs_7! (+ (+ X4 X3) X2)) - (__node_trans_synapse_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.usr.init_invalid_s! - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_2! - top.res.abs_5 - top.res.abs_6 - top.res.inst_2) - (__node_trans_excludes3_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.res.abs_4! - top.res.inst_1! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid_s! - top.res.abs_8! - top.res.inst_0! - top.usr.init_invalid_s - top.res.abs_8 - top.res.inst_0) - (not top.res.init_flag!)))))))))) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes3_0 ((excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_0 (not (or (and (and (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) excludes3.usr.X1_a_0) excludes3.usr.X3_a_0) (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) excludes3.res.init_flag_a_0)) +(define-fun __node_trans_excludes3_0 ((excludes3.usr.X1_a_1 Bool) (excludes3.usr.X2_a_1 Bool) (excludes3.usr.X3_a_1 Bool) (excludes3.usr.excludes_a_1 Bool) (excludes3.res.init_flag_a_1 Bool) (excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_1 (not (or (and (and (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) excludes3.usr.X1_a_1) excludes3.usr.X3_a_1) (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) (not excludes3.res.init_flag_a_1))) +(define-fun __node_init_synapse_0 ((synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (and (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) (= synapse.usr.valid_s_a_0 0) (let ((X1 (let ((X1 synapse.res.nondet_0)) (>= X1 1)))) (let ((X2 (let ((X2 synapse.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 synapse.res.nondet_2)) (>= X3 1)))) (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0)))))) +(define-fun __node_trans_synapse_0 ((synapse.usr.e_s1_a_1 Bool) (synapse.usr.e_s2_a_1 Bool) (synapse.usr.e_s3_a_1 Bool) (synapse.usr.init_invalid_s_a_1 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_1 Int) (synapse.usr.valid_s_a_1 Int) (synapse.usr.dirty_s_a_1 Int) (synapse.usr.mem_init_s_a_1 Int) (synapse.res.init_flag_a_1 Bool) (synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= synapse.usr.invalid_s_a_0 1))) (let ((X2 (>= synapse.usr.valid_s_a_0 1))) (let ((X3 (>= synapse.usr.invalid_s_a_0 1))) (and (= synapse.usr.invalid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) synapse.usr.invalid_s_a_0)))) (= synapse.usr.valid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 0 synapse.usr.valid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 0 synapse.usr.valid_s_a_0) synapse.usr.valid_s_a_0)))) (= synapse.usr.dirty_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 0 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 1 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 1 synapse.usr.dirty_s_a_0) synapse.usr.dirty_s_a_0)))) (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) (not synapse.res.init_flag_a_1)))))) +(define-fun __node_init_top_0 ((top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_2_a_0)) (let ((X3 top.res.abs_1_a_0)) (let ((X4 top.res.abs_0_a_0)) (let ((X5 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8_a_0)))) (let ((X6 true)) (let ((X7 (=> X1 (< X2 2)))) (and (= top.usr.OK_a_0 (and (and X6 X7) X5)) (= top.res.abs_7_a_0 (+ (+ X4 X3) X2)) (__node_init_synapse_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_init_excludes3_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_s_a_0 top.res.abs_8_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))))) +(define-fun __node_trans_top_0 ((top.usr.e_s1_a_1 Bool) (top.usr.e_s2_a_1 Bool) (top.usr.e_s3_a_1 Bool) (top.usr.init_invalid_s_a_1 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_2_a_1)) (let ((X3 top.res.abs_1_a_1)) (let ((X4 top.res.abs_0_a_1)) (let ((X5 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8_a_1)))) (let ((X6 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_0)))) (let ((X7 (=> X1 (< X2 2)))) (and (= top.usr.OK_a_1 (and (and X6 X7) X5)) (= top.res.abs_7_a_1 (+ (+ X4 X3) X2)) (__node_trans_synapse_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.usr.init_invalid_s_a_1 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_2_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_trans_excludes3_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_s_a_1 top.res.abs_8_a_1 top.res.inst_0_a_1 top.usr.init_invalid_s_a_0 top.res.abs_8_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))))) +(synth-inv str_invariant ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_2)) (let ((X3 top.res.abs_1)) (let ((X4 top.res.abs_0)) (let ((X5 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8)))) (let ((X6 true)) (let ((X7 (=> X1 (< X2 2)))) (and (= top.usr.OK (and (and X6 X7) X5)) (= top.res.abs_7 (+ (+ X4 X3) X2)) (__node_init_synapse_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_init_excludes3_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid_s top.res.abs_8 top.res.inst_0) top.res.init_flag)))))))))) +(define-fun trans ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e_s1! Bool) (top.usr.e_s2! Bool) (top.usr.e_s3! Bool) (top.usr.init_invalid_s! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_2!)) (let ((X3 top.res.abs_1!)) (let ((X4 top.res.abs_0!)) (let ((X5 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8!)))) (let ((X6 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7)))) (let ((X7 (=> X1 (< X2 2)))) (and (= top.usr.OK! (and (and X6 X7) X5)) (= top.res.abs_7! (+ (+ X4 X3) X2)) (__node_trans_synapse_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.usr.init_invalid_s! top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_2! top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_trans_excludes3_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.res.abs_4! top.res.inst_1! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid_s! top.res.abs_8! top.res.inst_0! top.usr.init_invalid_s top.res.abs_8 top.res.inst_0) (not top.res.init_flag!)))))))))) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/SYNAPSE_123_e8_953_e8_941.sl b/benchmarks/LIA/Lustre/SYNAPSE_123_e8_953_e8_941.sl index dba21b4..367f5d8 100644 --- a/benchmarks/LIA/Lustre/SYNAPSE_123_e8_953_e8_941.sl +++ b/benchmarks/LIA/Lustre/SYNAPSE_123_e8_953_e8_941.sl @@ -1,674 +1,38 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes3_0 ( - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_0 - (not - (and - (and - (and - (and (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) excludes3.usr.X1_a_0) - excludes3.usr.X3_a_0) - excludes3.usr.X2_a_0) - excludes3.usr.X3_a_0))) - excludes3.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes3_0 ( - (excludes3.usr.X1_a_1 Bool) - (excludes3.usr.X2_a_1 Bool) - (excludes3.usr.X3_a_1 Bool) - (excludes3.usr.excludes_a_1 Bool) - (excludes3.res.init_flag_a_1 Bool) - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_1 - (not - (and - (and - (and - (and (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) excludes3.usr.X1_a_1) - excludes3.usr.X3_a_1) - excludes3.usr.X2_a_1) - excludes3.usr.X3_a_1))) - (not excludes3.res.init_flag_a_1)) -) - -(define-fun - __node_init_synapse_0 ( - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (and - (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) - (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) - (= synapse.usr.valid_s_a_0 0) - (let - ((X1 Bool (let ((X1 Int synapse.res.nondet_0)) (>= X1 1)))) - (let - ((X2 Bool (let ((X2 Int synapse.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int synapse.res.nondet_2)) (>= X3 1)))) - (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_synapse_0 ( - (synapse.usr.e_s1_a_1 Bool) - (synapse.usr.e_s2_a_1 Bool) - (synapse.usr.e_s3_a_1 Bool) - (synapse.usr.init_invalid_s_a_1 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_1 Int) - (synapse.usr.valid_s_a_1 Int) - (synapse.usr.dirty_s_a_1 Int) - (synapse.usr.mem_init_s_a_1 Int) - (synapse.res.init_flag_a_1 Bool) - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= synapse.usr.invalid_s_a_0 1))) - (let - ((X2 Bool (>= synapse.usr.valid_s_a_0 1))) - (let - ((X3 Bool (>= synapse.usr.invalid_s_a_0 1))) - (and - (= - synapse.usr.invalid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite - X3 - (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite - X2 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite - X1 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - synapse.usr.invalid_s_a_0)))) - (= - synapse.usr.valid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 0 synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 0 synapse.usr.valid_s_a_0) - synapse.usr.valid_s_a_0)))) - (= - synapse.usr.dirty_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 0 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 1 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 1 synapse.usr.dirty_s_a_0) - synapse.usr.dirty_s_a_0)))) - (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) - (not synapse.res.init_flag_a_1))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (let - ((X3 Int top.res.abs_1_a_0)) - (let - ((X4 Int top.res.abs_0_a_0)) - (let - ((X5 Bool (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8_a_0)))) - (let - ((X6 Bool true)) - (let - ((X7 Bool (=> X1 (< X2 2)))) - (and - (= top.usr.OK_a_0 (and (and X6 X7) X5)) - (= top.res.abs_7_a_0 (+ (+ X4 X3) X2)) - (__node_init_synapse_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_init_excludes3_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_s_a_0 - top.res.abs_8_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e_s1_a_1 Bool) - (top.usr.e_s2_a_1 Bool) - (top.usr.e_s3_a_1 Bool) - (top.usr.init_invalid_s_a_1 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (let - ((X3 Int top.res.abs_1_a_1)) - (let - ((X4 Int top.res.abs_0_a_1)) - (let - ((X5 Bool (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8_a_1)))) - (let - ((X6 Bool (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_0)))) - (let - ((X7 Bool (=> X1 (< X2 2)))) - (and - (= top.usr.OK_a_1 (and (and X6 X7) X5)) - (= top.res.abs_7_a_1 (+ (+ X4 X3) X2)) - (__node_trans_synapse_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.usr.init_invalid_s_a_1 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_2_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes3_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_s_a_1 - top.res.abs_8_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_s_a_0 - top.res.abs_8_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e_s1 Bool) -(declare-primed-var top.usr.e_s2 Bool) -(declare-primed-var top.usr.e_s3 Bool) -(declare-primed-var top.usr.init_invalid_s Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_2)) - (let - ((X3 Int top.res.abs_1)) - (let - ((X4 Int top.res.abs_0)) - (let - ((X5 Bool (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8)))) - (let - ((X6 Bool true)) - (let - ((X7 Bool (=> X1 (< X2 2)))) - (and - (= top.usr.OK (and (and X6 X7) X5)) - (= top.res.abs_7 (+ (+ X4 X3) X2)) - (__node_init_synapse_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) - (__node_init_excludes3_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid_s - top.res.abs_8 - top.res.inst_0) - top.res.init_flag))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e_s1! Bool) - (top.usr.e_s2! Bool) - (top.usr.e_s3! Bool) - (top.usr.init_invalid_s! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_2!)) - (let - ((X3 Int top.res.abs_1!)) - (let - ((X4 Int top.res.abs_0!)) - (let - ((X5 Bool (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8!)))) - (let - ((X6 Bool (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7)))) - (let - ((X7 Bool (=> X1 (< X2 2)))) - (and - (= top.usr.OK! (and (and X6 X7) X5)) - (= top.res.abs_7! (+ (+ X4 X3) X2)) - (__node_trans_synapse_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.usr.init_invalid_s! - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_2! - top.res.abs_5 - top.res.abs_6 - top.res.inst_2) - (__node_trans_excludes3_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.res.abs_4! - top.res.inst_1! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid_s! - top.res.abs_8! - top.res.inst_0! - top.usr.init_invalid_s - top.res.abs_8 - top.res.inst_0) - (not top.res.init_flag!)))))))))) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes3_0 ((excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_0 (not (and (and (and (and (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) excludes3.usr.X1_a_0) excludes3.usr.X3_a_0) excludes3.usr.X2_a_0) excludes3.usr.X3_a_0))) excludes3.res.init_flag_a_0)) +(define-fun __node_trans_excludes3_0 ((excludes3.usr.X1_a_1 Bool) (excludes3.usr.X2_a_1 Bool) (excludes3.usr.X3_a_1 Bool) (excludes3.usr.excludes_a_1 Bool) (excludes3.res.init_flag_a_1 Bool) (excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_1 (not (and (and (and (and (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) excludes3.usr.X1_a_1) excludes3.usr.X3_a_1) excludes3.usr.X2_a_1) excludes3.usr.X3_a_1))) (not excludes3.res.init_flag_a_1))) +(define-fun __node_init_synapse_0 ((synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (and (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) (= synapse.usr.valid_s_a_0 0) (let ((X1 (let ((X1 synapse.res.nondet_0)) (>= X1 1)))) (let ((X2 (let ((X2 synapse.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 synapse.res.nondet_2)) (>= X3 1)))) (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0)))))) +(define-fun __node_trans_synapse_0 ((synapse.usr.e_s1_a_1 Bool) (synapse.usr.e_s2_a_1 Bool) (synapse.usr.e_s3_a_1 Bool) (synapse.usr.init_invalid_s_a_1 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_1 Int) (synapse.usr.valid_s_a_1 Int) (synapse.usr.dirty_s_a_1 Int) (synapse.usr.mem_init_s_a_1 Int) (synapse.res.init_flag_a_1 Bool) (synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= synapse.usr.invalid_s_a_0 1))) (let ((X2 (>= synapse.usr.valid_s_a_0 1))) (let ((X3 (>= synapse.usr.invalid_s_a_0 1))) (and (= synapse.usr.invalid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) synapse.usr.invalid_s_a_0)))) (= synapse.usr.valid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 0 synapse.usr.valid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 0 synapse.usr.valid_s_a_0) synapse.usr.valid_s_a_0)))) (= synapse.usr.dirty_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 0 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 1 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 1 synapse.usr.dirty_s_a_0) synapse.usr.dirty_s_a_0)))) (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) (not synapse.res.init_flag_a_1)))))) +(define-fun __node_init_top_0 ((top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_2_a_0)) (let ((X3 top.res.abs_1_a_0)) (let ((X4 top.res.abs_0_a_0)) (let ((X5 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8_a_0)))) (let ((X6 true)) (let ((X7 (=> X1 (< X2 2)))) (and (= top.usr.OK_a_0 (and (and X6 X7) X5)) (= top.res.abs_7_a_0 (+ (+ X4 X3) X2)) (__node_init_synapse_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_init_excludes3_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_s_a_0 top.res.abs_8_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))))) +(define-fun __node_trans_top_0 ((top.usr.e_s1_a_1 Bool) (top.usr.e_s2_a_1 Bool) (top.usr.e_s3_a_1 Bool) (top.usr.init_invalid_s_a_1 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_2_a_1)) (let ((X3 top.res.abs_1_a_1)) (let ((X4 top.res.abs_0_a_1)) (let ((X5 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8_a_1)))) (let ((X6 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_0)))) (let ((X7 (=> X1 (< X2 2)))) (and (= top.usr.OK_a_1 (and (and X6 X7) X5)) (= top.res.abs_7_a_1 (+ (+ X4 X3) X2)) (__node_trans_synapse_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.usr.init_invalid_s_a_1 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_2_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_trans_excludes3_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_s_a_1 top.res.abs_8_a_1 top.res.inst_0_a_1 top.usr.init_invalid_s_a_0 top.res.abs_8_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))))) +(synth-inv str_invariant ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_2)) (let ((X3 top.res.abs_1)) (let ((X4 top.res.abs_0)) (let ((X5 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8)))) (let ((X6 true)) (let ((X7 (=> X1 (< X2 2)))) (and (= top.usr.OK (and (and X6 X7) X5)) (= top.res.abs_7 (+ (+ X4 X3) X2)) (__node_init_synapse_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_init_excludes3_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid_s top.res.abs_8 top.res.inst_0) top.res.init_flag)))))))))) +(define-fun trans ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e_s1! Bool) (top.usr.e_s2! Bool) (top.usr.e_s3! Bool) (top.usr.init_invalid_s! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_2!)) (let ((X3 top.res.abs_1!)) (let ((X4 top.res.abs_0!)) (let ((X5 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_8!)))) (let ((X6 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7)))) (let ((X7 (=> X1 (< X2 2)))) (and (= top.usr.OK! (and (and X6 X7) X5)) (= top.res.abs_7! (+ (+ X4 X3) X2)) (__node_trans_synapse_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.usr.init_invalid_s! top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_2! top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_trans_excludes3_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.res.abs_4! top.res.inst_1! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid_s! top.res.abs_8! top.res.inst_0! top.usr.init_invalid_s top.res.abs_8 top.res.inst_0) (not top.res.init_flag!)))))))))) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/SYNAPSE_2.sl b/benchmarks/LIA/Lustre/SYNAPSE_2.sl index ad34e1a..de2fde8 100644 --- a/benchmarks/LIA/Lustre/SYNAPSE_2.sl +++ b/benchmarks/LIA/Lustre/SYNAPSE_2.sl @@ -1,587 +1,34 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes3_0 ( - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_0 - (not - (or - (or - (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) - (and excludes3.usr.X1_a_0 excludes3.usr.X3_a_0)) - (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) - excludes3.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes3_0 ( - (excludes3.usr.X1_a_1 Bool) - (excludes3.usr.X2_a_1 Bool) - (excludes3.usr.X3_a_1 Bool) - (excludes3.usr.excludes_a_1 Bool) - (excludes3.res.init_flag_a_1 Bool) - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_1 - (not - (or - (or - (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) - (and excludes3.usr.X1_a_1 excludes3.usr.X3_a_1)) - (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) - (not excludes3.res.init_flag_a_1)) -) - -(define-fun - __node_init_synapse_0 ( - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (and - (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) - (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) - (= synapse.usr.valid_s_a_0 0) - (let - ((X1 Bool (let ((X1 Int synapse.res.nondet_0)) (>= X1 1)))) - (let - ((X2 Bool (let ((X2 Int synapse.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int synapse.res.nondet_2)) (>= X3 1)))) - (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_synapse_0 ( - (synapse.usr.e_s1_a_1 Bool) - (synapse.usr.e_s2_a_1 Bool) - (synapse.usr.e_s3_a_1 Bool) - (synapse.usr.init_invalid_s_a_1 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_1 Int) - (synapse.usr.valid_s_a_1 Int) - (synapse.usr.dirty_s_a_1 Int) - (synapse.usr.mem_init_s_a_1 Int) - (synapse.res.init_flag_a_1 Bool) - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= synapse.usr.invalid_s_a_0 1))) - (let - ((X2 Bool (>= synapse.usr.valid_s_a_0 1))) - (let - ((X3 Bool (>= synapse.usr.invalid_s_a_0 1))) - (and - (= - synapse.usr.invalid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite - X3 - (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite - X2 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite - X1 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - synapse.usr.invalid_s_a_0)))) - (= - synapse.usr.valid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 0 synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 0 synapse.usr.valid_s_a_0) - synapse.usr.valid_s_a_0)))) - (= - synapse.usr.dirty_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 0 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 1 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 1 synapse.usr.dirty_s_a_0) - synapse.usr.dirty_s_a_0)))) - (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) - (not synapse.res.init_flag_a_1))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (and - (= - top.res.abs_5_a_0 - (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) - (let - ((X4 Bool top.res.abs_6_a_0)) - (and - (= top.res.abs_7_a_0 (+ (+ X1 X2) X3)) - (__node_init_synapse_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_excludes3_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e_s1_a_1 Bool) - (top.usr.e_s2_a_1 Bool) - (top.usr.e_s3_a_1 Bool) - (top.usr.init_invalid_s_a_1 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (let - ((X3 Int top.res.abs_1_a_1)) - (let - ((X4 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_0))) - (= top.res.abs_7_a_1 (+ (+ X4 X3) X2)) - (__node_trans_synapse_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.usr.init_invalid_s_a_1 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes3_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e_s1 Bool) -(declare-primed-var top.usr.e_s2 Bool) -(declare-primed-var top.usr.e_s3 Bool) -(declare-primed-var top.usr.init_invalid_s Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int top.res.abs_0)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_2)) - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) - (let - ((X4 Bool top.res.abs_6)) - (and - (= top.res.abs_7 (+ (+ X1 X2) X3)) - (__node_init_synapse_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes3_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e_s1! Bool) - (top.usr.e_s2! Bool) - (top.usr.e_s3! Bool) - (top.usr.init_invalid_s! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_2!)) - (let - ((X3 Int top.res.abs_1!)) - (let - ((X4 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7))) - (= top.res.abs_7! (+ (+ X4 X3) X2)) - (__node_trans_synapse_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.usr.init_invalid_s! - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes3_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.res.abs_4! - top.res.inst_0! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))))) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes3_0 ((excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_0 (not (or (or (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) (and excludes3.usr.X1_a_0 excludes3.usr.X3_a_0)) (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) excludes3.res.init_flag_a_0)) +(define-fun __node_trans_excludes3_0 ((excludes3.usr.X1_a_1 Bool) (excludes3.usr.X2_a_1 Bool) (excludes3.usr.X3_a_1 Bool) (excludes3.usr.excludes_a_1 Bool) (excludes3.res.init_flag_a_1 Bool) (excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_1 (not (or (or (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) (and excludes3.usr.X1_a_1 excludes3.usr.X3_a_1)) (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) (not excludes3.res.init_flag_a_1))) +(define-fun __node_init_synapse_0 ((synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (and (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) (= synapse.usr.valid_s_a_0 0) (let ((X1 (let ((X1 synapse.res.nondet_0)) (>= X1 1)))) (let ((X2 (let ((X2 synapse.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 synapse.res.nondet_2)) (>= X3 1)))) (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0)))))) +(define-fun __node_trans_synapse_0 ((synapse.usr.e_s1_a_1 Bool) (synapse.usr.e_s2_a_1 Bool) (synapse.usr.e_s3_a_1 Bool) (synapse.usr.init_invalid_s_a_1 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_1 Int) (synapse.usr.valid_s_a_1 Int) (synapse.usr.dirty_s_a_1 Int) (synapse.usr.mem_init_s_a_1 Int) (synapse.res.init_flag_a_1 Bool) (synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= synapse.usr.invalid_s_a_0 1))) (let ((X2 (>= synapse.usr.valid_s_a_0 1))) (let ((X3 (>= synapse.usr.invalid_s_a_0 1))) (and (= synapse.usr.invalid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) synapse.usr.invalid_s_a_0)))) (= synapse.usr.valid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 0 synapse.usr.valid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 0 synapse.usr.valid_s_a_0) synapse.usr.valid_s_a_0)))) (= synapse.usr.dirty_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 0 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 1 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 1 synapse.usr.dirty_s_a_0) synapse.usr.dirty_s_a_0)))) (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) (not synapse.res.init_flag_a_1)))))) +(define-fun __node_init_top_0 ((top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_2_a_0)) (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) (let ((X4 top.res.abs_6_a_0)) (and (= top.res.abs_7_a_0 (+ (+ X1 X2) X3)) (__node_init_synapse_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes3_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.e_s1_a_1 Bool) (top.usr.e_s2_a_1 Bool) (top.usr.e_s3_a_1 Bool) (top.usr.init_invalid_s_a_1 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_2_a_1)) (let ((X3 top.res.abs_1_a_1)) (let ((X4 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_0))) (= top.res.abs_7_a_1 (+ (+ X4 X3) X2)) (__node_trans_synapse_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.usr.init_invalid_s_a_1 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes3_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_2)) (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) (let ((X4 top.res.abs_6)) (and (= top.res.abs_7 (+ (+ X1 X2) X3)) (__node_init_synapse_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes3_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e_s1! Bool) (top.usr.e_s2! Bool) (top.usr.e_s3! Bool) (top.usr.init_invalid_s! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_2!)) (let ((X3 top.res.abs_1!)) (let ((X4 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7))) (= top.res.abs_7! (+ (+ X4 X3) X2)) (__node_trans_synapse_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.usr.init_invalid_s! top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_2! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes3_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.res.abs_4! top.res.inst_0! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))))) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/SYNAPSE_2_e8_1118_e7_1043.sl b/benchmarks/LIA/Lustre/SYNAPSE_2_e8_1118_e7_1043.sl index 5a292bd..bf06c20 100644 --- a/benchmarks/LIA/Lustre/SYNAPSE_2_e8_1118_e7_1043.sl +++ b/benchmarks/LIA/Lustre/SYNAPSE_2_e8_1118_e7_1043.sl @@ -1,587 +1,34 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes3_0 ( - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_0 - (not - (or - (and - (and (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) excludes3.usr.X1_a_0) - excludes3.usr.X3_a_0) - (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) - excludes3.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes3_0 ( - (excludes3.usr.X1_a_1 Bool) - (excludes3.usr.X2_a_1 Bool) - (excludes3.usr.X3_a_1 Bool) - (excludes3.usr.excludes_a_1 Bool) - (excludes3.res.init_flag_a_1 Bool) - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_1 - (not - (or - (and - (and (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) excludes3.usr.X1_a_1) - excludes3.usr.X3_a_1) - (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) - (not excludes3.res.init_flag_a_1)) -) - -(define-fun - __node_init_synapse_0 ( - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (and - (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) - (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) - (= synapse.usr.valid_s_a_0 0) - (let - ((X1 Bool (let ((X1 Int synapse.res.nondet_0)) (>= X1 1)))) - (let - ((X2 Bool (let ((X2 Int synapse.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int synapse.res.nondet_2)) (>= X3 1)))) - (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_synapse_0 ( - (synapse.usr.e_s1_a_1 Bool) - (synapse.usr.e_s2_a_1 Bool) - (synapse.usr.e_s3_a_1 Bool) - (synapse.usr.init_invalid_s_a_1 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_1 Int) - (synapse.usr.valid_s_a_1 Int) - (synapse.usr.dirty_s_a_1 Int) - (synapse.usr.mem_init_s_a_1 Int) - (synapse.res.init_flag_a_1 Bool) - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= synapse.usr.invalid_s_a_0 1))) - (let - ((X2 Bool (>= synapse.usr.valid_s_a_0 1))) - (let - ((X3 Bool (>= synapse.usr.invalid_s_a_0 1))) - (and - (= - synapse.usr.invalid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite - X3 - (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite - X2 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite - X1 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - synapse.usr.invalid_s_a_0)))) - (= - synapse.usr.valid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 0 synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 0 synapse.usr.valid_s_a_0) - synapse.usr.valid_s_a_0)))) - (= - synapse.usr.dirty_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 0 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 1 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 1 synapse.usr.dirty_s_a_0) - synapse.usr.dirty_s_a_0)))) - (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) - (not synapse.res.init_flag_a_1))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (and - (= - top.res.abs_5_a_0 - (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) - (let - ((X4 Bool top.res.abs_6_a_0)) - (and - (= top.res.abs_7_a_0 (+ (+ X1 X2) X3)) - (__node_init_synapse_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_excludes3_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e_s1_a_1 Bool) - (top.usr.e_s2_a_1 Bool) - (top.usr.e_s3_a_1 Bool) - (top.usr.init_invalid_s_a_1 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (let - ((X3 Int top.res.abs_1_a_1)) - (let - ((X4 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_0))) - (= top.res.abs_7_a_1 (+ (+ X4 X3) X2)) - (__node_trans_synapse_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.usr.init_invalid_s_a_1 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes3_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e_s1 Bool) -(declare-primed-var top.usr.e_s2 Bool) -(declare-primed-var top.usr.e_s3 Bool) -(declare-primed-var top.usr.init_invalid_s Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int top.res.abs_0)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_2)) - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) - (let - ((X4 Bool top.res.abs_6)) - (and - (= top.res.abs_7 (+ (+ X1 X2) X3)) - (__node_init_synapse_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes3_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e_s1! Bool) - (top.usr.e_s2! Bool) - (top.usr.e_s3! Bool) - (top.usr.init_invalid_s! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_2!)) - (let - ((X3 Int top.res.abs_1!)) - (let - ((X4 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7))) - (= top.res.abs_7! (+ (+ X4 X3) X2)) - (__node_trans_synapse_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.usr.init_invalid_s! - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes3_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.res.abs_4! - top.res.inst_0! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))))) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes3_0 ((excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_0 (not (or (and (and (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) excludes3.usr.X1_a_0) excludes3.usr.X3_a_0) (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) excludes3.res.init_flag_a_0)) +(define-fun __node_trans_excludes3_0 ((excludes3.usr.X1_a_1 Bool) (excludes3.usr.X2_a_1 Bool) (excludes3.usr.X3_a_1 Bool) (excludes3.usr.excludes_a_1 Bool) (excludes3.res.init_flag_a_1 Bool) (excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_1 (not (or (and (and (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) excludes3.usr.X1_a_1) excludes3.usr.X3_a_1) (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) (not excludes3.res.init_flag_a_1))) +(define-fun __node_init_synapse_0 ((synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (and (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) (= synapse.usr.valid_s_a_0 0) (let ((X1 (let ((X1 synapse.res.nondet_0)) (>= X1 1)))) (let ((X2 (let ((X2 synapse.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 synapse.res.nondet_2)) (>= X3 1)))) (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0)))))) +(define-fun __node_trans_synapse_0 ((synapse.usr.e_s1_a_1 Bool) (synapse.usr.e_s2_a_1 Bool) (synapse.usr.e_s3_a_1 Bool) (synapse.usr.init_invalid_s_a_1 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_1 Int) (synapse.usr.valid_s_a_1 Int) (synapse.usr.dirty_s_a_1 Int) (synapse.usr.mem_init_s_a_1 Int) (synapse.res.init_flag_a_1 Bool) (synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= synapse.usr.invalid_s_a_0 1))) (let ((X2 (>= synapse.usr.valid_s_a_0 1))) (let ((X3 (>= synapse.usr.invalid_s_a_0 1))) (and (= synapse.usr.invalid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) synapse.usr.invalid_s_a_0)))) (= synapse.usr.valid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 0 synapse.usr.valid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 0 synapse.usr.valid_s_a_0) synapse.usr.valid_s_a_0)))) (= synapse.usr.dirty_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 0 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 1 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 1 synapse.usr.dirty_s_a_0) synapse.usr.dirty_s_a_0)))) (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) (not synapse.res.init_flag_a_1)))))) +(define-fun __node_init_top_0 ((top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_2_a_0)) (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) (let ((X4 top.res.abs_6_a_0)) (and (= top.res.abs_7_a_0 (+ (+ X1 X2) X3)) (__node_init_synapse_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes3_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.e_s1_a_1 Bool) (top.usr.e_s2_a_1 Bool) (top.usr.e_s3_a_1 Bool) (top.usr.init_invalid_s_a_1 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_2_a_1)) (let ((X3 top.res.abs_1_a_1)) (let ((X4 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_0))) (= top.res.abs_7_a_1 (+ (+ X4 X3) X2)) (__node_trans_synapse_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.usr.init_invalid_s_a_1 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes3_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_2)) (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) (let ((X4 top.res.abs_6)) (and (= top.res.abs_7 (+ (+ X1 X2) X3)) (__node_init_synapse_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes3_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e_s1! Bool) (top.usr.e_s2! Bool) (top.usr.e_s3! Bool) (top.usr.init_invalid_s! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_2!)) (let ((X3 top.res.abs_1!)) (let ((X4 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7))) (= top.res.abs_7! (+ (+ X4 X3) X2)) (__node_trans_synapse_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.usr.init_invalid_s! top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_2! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes3_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.res.abs_4! top.res.inst_0! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))))) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/SYNAPSE_2_e8_1118_e8_1177.sl b/benchmarks/LIA/Lustre/SYNAPSE_2_e8_1118_e8_1177.sl index 6919f97..acf5b45 100644 --- a/benchmarks/LIA/Lustre/SYNAPSE_2_e8_1118_e8_1177.sl +++ b/benchmarks/LIA/Lustre/SYNAPSE_2_e8_1118_e8_1177.sl @@ -1,591 +1,34 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes3_0 ( - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_0 - (not - (and - (and - (and - (and (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) excludes3.usr.X1_a_0) - excludes3.usr.X3_a_0) - excludes3.usr.X2_a_0) - excludes3.usr.X3_a_0))) - excludes3.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes3_0 ( - (excludes3.usr.X1_a_1 Bool) - (excludes3.usr.X2_a_1 Bool) - (excludes3.usr.X3_a_1 Bool) - (excludes3.usr.excludes_a_1 Bool) - (excludes3.res.init_flag_a_1 Bool) - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_1 - (not - (and - (and - (and - (and (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) excludes3.usr.X1_a_1) - excludes3.usr.X3_a_1) - excludes3.usr.X2_a_1) - excludes3.usr.X3_a_1))) - (not excludes3.res.init_flag_a_1)) -) - -(define-fun - __node_init_synapse_0 ( - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (and - (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) - (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) - (= synapse.usr.valid_s_a_0 0) - (let - ((X1 Bool (let ((X1 Int synapse.res.nondet_0)) (>= X1 1)))) - (let - ((X2 Bool (let ((X2 Int synapse.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int synapse.res.nondet_2)) (>= X3 1)))) - (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_synapse_0 ( - (synapse.usr.e_s1_a_1 Bool) - (synapse.usr.e_s2_a_1 Bool) - (synapse.usr.e_s3_a_1 Bool) - (synapse.usr.init_invalid_s_a_1 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_1 Int) - (synapse.usr.valid_s_a_1 Int) - (synapse.usr.dirty_s_a_1 Int) - (synapse.usr.mem_init_s_a_1 Int) - (synapse.res.init_flag_a_1 Bool) - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= synapse.usr.invalid_s_a_0 1))) - (let - ((X2 Bool (>= synapse.usr.valid_s_a_0 1))) - (let - ((X3 Bool (>= synapse.usr.invalid_s_a_0 1))) - (and - (= - synapse.usr.invalid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite - X3 - (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite - X2 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite - X1 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - synapse.usr.invalid_s_a_0)))) - (= - synapse.usr.valid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 0 synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 0 synapse.usr.valid_s_a_0) - synapse.usr.valid_s_a_0)))) - (= - synapse.usr.dirty_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 0 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 1 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 1 synapse.usr.dirty_s_a_0) - synapse.usr.dirty_s_a_0)))) - (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) - (not synapse.res.init_flag_a_1))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (and - (= - top.res.abs_5_a_0 - (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) - (let - ((X4 Bool top.res.abs_6_a_0)) - (and - (= top.res.abs_7_a_0 (+ (+ X1 X2) X3)) - (__node_init_synapse_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_excludes3_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e_s1_a_1 Bool) - (top.usr.e_s2_a_1 Bool) - (top.usr.e_s3_a_1 Bool) - (top.usr.init_invalid_s_a_1 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (let - ((X3 Int top.res.abs_1_a_1)) - (let - ((X4 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_0))) - (= top.res.abs_7_a_1 (+ (+ X4 X3) X2)) - (__node_trans_synapse_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.usr.init_invalid_s_a_1 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes3_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e_s1 Bool) -(declare-primed-var top.usr.e_s2 Bool) -(declare-primed-var top.usr.e_s3 Bool) -(declare-primed-var top.usr.init_invalid_s Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int top.res.abs_0)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_2)) - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) - (let - ((X4 Bool top.res.abs_6)) - (and - (= top.res.abs_7 (+ (+ X1 X2) X3)) - (__node_init_synapse_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes3_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e_s1! Bool) - (top.usr.e_s2! Bool) - (top.usr.e_s3! Bool) - (top.usr.init_invalid_s! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_2!)) - (let - ((X3 Int top.res.abs_1!)) - (let - ((X4 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7))) - (= top.res.abs_7! (+ (+ X4 X3) X2)) - (__node_trans_synapse_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.usr.init_invalid_s! - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes3_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.res.abs_4! - top.res.inst_0! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))))) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes3_0 ((excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_0 (not (and (and (and (and (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) excludes3.usr.X1_a_0) excludes3.usr.X3_a_0) excludes3.usr.X2_a_0) excludes3.usr.X3_a_0))) excludes3.res.init_flag_a_0)) +(define-fun __node_trans_excludes3_0 ((excludes3.usr.X1_a_1 Bool) (excludes3.usr.X2_a_1 Bool) (excludes3.usr.X3_a_1 Bool) (excludes3.usr.excludes_a_1 Bool) (excludes3.res.init_flag_a_1 Bool) (excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_1 (not (and (and (and (and (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) excludes3.usr.X1_a_1) excludes3.usr.X3_a_1) excludes3.usr.X2_a_1) excludes3.usr.X3_a_1))) (not excludes3.res.init_flag_a_1))) +(define-fun __node_init_synapse_0 ((synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (and (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) (= synapse.usr.valid_s_a_0 0) (let ((X1 (let ((X1 synapse.res.nondet_0)) (>= X1 1)))) (let ((X2 (let ((X2 synapse.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 synapse.res.nondet_2)) (>= X3 1)))) (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0)))))) +(define-fun __node_trans_synapse_0 ((synapse.usr.e_s1_a_1 Bool) (synapse.usr.e_s2_a_1 Bool) (synapse.usr.e_s3_a_1 Bool) (synapse.usr.init_invalid_s_a_1 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_1 Int) (synapse.usr.valid_s_a_1 Int) (synapse.usr.dirty_s_a_1 Int) (synapse.usr.mem_init_s_a_1 Int) (synapse.res.init_flag_a_1 Bool) (synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= synapse.usr.invalid_s_a_0 1))) (let ((X2 (>= synapse.usr.valid_s_a_0 1))) (let ((X3 (>= synapse.usr.invalid_s_a_0 1))) (and (= synapse.usr.invalid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) synapse.usr.invalid_s_a_0)))) (= synapse.usr.valid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 0 synapse.usr.valid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 0 synapse.usr.valid_s_a_0) synapse.usr.valid_s_a_0)))) (= synapse.usr.dirty_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 0 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 1 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 1 synapse.usr.dirty_s_a_0) synapse.usr.dirty_s_a_0)))) (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) (not synapse.res.init_flag_a_1)))))) +(define-fun __node_init_top_0 ((top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_2_a_0)) (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) (let ((X4 top.res.abs_6_a_0)) (and (= top.res.abs_7_a_0 (+ (+ X1 X2) X3)) (__node_init_synapse_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes3_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.e_s1_a_1 Bool) (top.usr.e_s2_a_1 Bool) (top.usr.e_s3_a_1 Bool) (top.usr.init_invalid_s_a_1 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_2_a_1)) (let ((X3 top.res.abs_1_a_1)) (let ((X4 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_0))) (= top.res.abs_7_a_1 (+ (+ X4 X3) X2)) (__node_trans_synapse_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.usr.init_invalid_s_a_1 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes3_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_2)) (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) (let ((X4 top.res.abs_6)) (and (= top.res.abs_7 (+ (+ X1 X2) X3)) (__node_init_synapse_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes3_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e_s1! Bool) (top.usr.e_s2! Bool) (top.usr.e_s3! Bool) (top.usr.init_invalid_s! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_2!)) (let ((X3 top.res.abs_1!)) (let ((X4 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7))) (= top.res.abs_7! (+ (+ X4 X3) X2)) (__node_trans_synapse_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.usr.init_invalid_s! top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_2! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes3_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.res.abs_4! top.res.inst_0! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))))) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/SYNAPSE_2_e8_656.sl b/benchmarks/LIA/Lustre/SYNAPSE_2_e8_656.sl index 0f8fe03..49373c7 100644 --- a/benchmarks/LIA/Lustre/SYNAPSE_2_e8_656.sl +++ b/benchmarks/LIA/Lustre/SYNAPSE_2_e8_656.sl @@ -1,587 +1,34 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes3_0 ( - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_0 - (not - (or - (and - (and (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) excludes3.usr.X1_a_0) - excludes3.usr.X3_a_0) - (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) - excludes3.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes3_0 ( - (excludes3.usr.X1_a_1 Bool) - (excludes3.usr.X2_a_1 Bool) - (excludes3.usr.X3_a_1 Bool) - (excludes3.usr.excludes_a_1 Bool) - (excludes3.res.init_flag_a_1 Bool) - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_1 - (not - (or - (and - (and (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) excludes3.usr.X1_a_1) - excludes3.usr.X3_a_1) - (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) - (not excludes3.res.init_flag_a_1)) -) - -(define-fun - __node_init_synapse_0 ( - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (and - (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) - (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) - (= synapse.usr.valid_s_a_0 0) - (let - ((X1 Bool (let ((X1 Int synapse.res.nondet_0)) (>= X1 1)))) - (let - ((X2 Bool (let ((X2 Int synapse.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int synapse.res.nondet_2)) (>= X3 1)))) - (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_synapse_0 ( - (synapse.usr.e_s1_a_1 Bool) - (synapse.usr.e_s2_a_1 Bool) - (synapse.usr.e_s3_a_1 Bool) - (synapse.usr.init_invalid_s_a_1 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_1 Int) - (synapse.usr.valid_s_a_1 Int) - (synapse.usr.dirty_s_a_1 Int) - (synapse.usr.mem_init_s_a_1 Int) - (synapse.res.init_flag_a_1 Bool) - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= synapse.usr.invalid_s_a_0 1))) - (let - ((X2 Bool (>= synapse.usr.valid_s_a_0 1))) - (let - ((X3 Bool (>= synapse.usr.invalid_s_a_0 1))) - (and - (= - synapse.usr.invalid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite - X3 - (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite - X2 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite - X1 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - synapse.usr.invalid_s_a_0)))) - (= - synapse.usr.valid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 0 synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 0 synapse.usr.valid_s_a_0) - synapse.usr.valid_s_a_0)))) - (= - synapse.usr.dirty_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 0 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 1 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 1 synapse.usr.dirty_s_a_0) - synapse.usr.dirty_s_a_0)))) - (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) - (not synapse.res.init_flag_a_1))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (and - (= - top.res.abs_5_a_0 - (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) - (let - ((X4 Bool top.res.abs_6_a_0)) - (and - (= top.res.abs_7_a_0 (+ (+ X1 X2) X3)) - (__node_init_synapse_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_init_excludes3_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e_s1_a_1 Bool) - (top.usr.e_s2_a_1 Bool) - (top.usr.e_s3_a_1 Bool) - (top.usr.init_invalid_s_a_1 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (let - ((X3 Int top.res.abs_1_a_1)) - (let - ((X4 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_0))) - (= top.res.abs_7_a_1 (+ (+ X4 X3) X2)) - (__node_trans_synapse_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.usr.init_invalid_s_a_1 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes3_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e_s1 Bool) -(declare-primed-var top.usr.e_s2 Bool) -(declare-primed-var top.usr.e_s3 Bool) -(declare-primed-var top.usr.init_invalid_s Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int top.res.abs_0)) - (let - ((X2 Int top.res.abs_1)) - (let - ((X3 Int top.res.abs_2)) - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) - (let - ((X4 Bool top.res.abs_6)) - (and - (= top.res.abs_7 (+ (+ X1 X2) X3)) - (__node_init_synapse_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes3_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e_s1! Bool) - (top.usr.e_s2! Bool) - (top.usr.e_s3! Bool) - (top.usr.init_invalid_s! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_2!)) - (let - ((X3 Int top.res.abs_1!)) - (let - ((X4 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7))) - (= top.res.abs_7! (+ (+ X4 X3) X2)) - (__node_trans_synapse_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.usr.init_invalid_s! - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes3_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.res.abs_4! - top.res.inst_0! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!))))))) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes3_0 ((excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_0 (not (or (and (and (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) excludes3.usr.X1_a_0) excludes3.usr.X3_a_0) (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) excludes3.res.init_flag_a_0)) +(define-fun __node_trans_excludes3_0 ((excludes3.usr.X1_a_1 Bool) (excludes3.usr.X2_a_1 Bool) (excludes3.usr.X3_a_1 Bool) (excludes3.usr.excludes_a_1 Bool) (excludes3.res.init_flag_a_1 Bool) (excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_1 (not (or (and (and (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) excludes3.usr.X1_a_1) excludes3.usr.X3_a_1) (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) (not excludes3.res.init_flag_a_1))) +(define-fun __node_init_synapse_0 ((synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (and (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) (= synapse.usr.valid_s_a_0 0) (let ((X1 (let ((X1 synapse.res.nondet_0)) (>= X1 1)))) (let ((X2 (let ((X2 synapse.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 synapse.res.nondet_2)) (>= X3 1)))) (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0)))))) +(define-fun __node_trans_synapse_0 ((synapse.usr.e_s1_a_1 Bool) (synapse.usr.e_s2_a_1 Bool) (synapse.usr.e_s3_a_1 Bool) (synapse.usr.init_invalid_s_a_1 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_1 Int) (synapse.usr.valid_s_a_1 Int) (synapse.usr.dirty_s_a_1 Int) (synapse.usr.mem_init_s_a_1 Int) (synapse.res.init_flag_a_1 Bool) (synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= synapse.usr.invalid_s_a_0 1))) (let ((X2 (>= synapse.usr.valid_s_a_0 1))) (let ((X3 (>= synapse.usr.invalid_s_a_0 1))) (and (= synapse.usr.invalid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) synapse.usr.invalid_s_a_0)))) (= synapse.usr.valid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 0 synapse.usr.valid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 0 synapse.usr.valid_s_a_0) synapse.usr.valid_s_a_0)))) (= synapse.usr.dirty_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 0 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 1 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 1 synapse.usr.dirty_s_a_0) synapse.usr.dirty_s_a_0)))) (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) (not synapse.res.init_flag_a_1)))))) +(define-fun __node_init_top_0 ((top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (let ((X3 top.res.abs_2_a_0)) (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) (let ((X4 top.res.abs_6_a_0)) (and (= top.res.abs_7_a_0 (+ (+ X1 X2) X3)) (__node_init_synapse_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes3_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.e_s1_a_1 Bool) (top.usr.e_s2_a_1 Bool) (top.usr.e_s3_a_1 Bool) (top.usr.init_invalid_s_a_1 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_2_a_1)) (let ((X3 top.res.abs_1_a_1)) (let ((X4 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_0))) (= top.res.abs_7_a_1 (+ (+ X4 X3) X2)) (__node_trans_synapse_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.usr.init_invalid_s_a_1 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes3_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (let ((X3 top.res.abs_2)) (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) (let ((X4 top.res.abs_6)) (and (= top.res.abs_7 (+ (+ X1 X2) X3)) (__node_init_synapse_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes3_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e_s1! Bool) (top.usr.e_s2! Bool) (top.usr.e_s3! Bool) (top.usr.init_invalid_s! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_2!)) (let ((X3 top.res.abs_1!)) (let ((X4 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7))) (= top.res.abs_7! (+ (+ X4 X3) X2)) (__node_trans_synapse_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.usr.init_invalid_s! top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_2! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes3_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.res.abs_4! top.res.inst_0! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!))))))) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/SYNAPSE_3.sl b/benchmarks/LIA/Lustre/SYNAPSE_3.sl index e48baac..59a7ee0 100644 --- a/benchmarks/LIA/Lustre/SYNAPSE_3.sl +++ b/benchmarks/LIA/Lustre/SYNAPSE_3.sl @@ -1,633 +1,38 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes3_0 ( - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_0 - (not - (or - (or - (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) - (and excludes3.usr.X1_a_0 excludes3.usr.X3_a_0)) - (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) - excludes3.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes3_0 ( - (excludes3.usr.X1_a_1 Bool) - (excludes3.usr.X2_a_1 Bool) - (excludes3.usr.X3_a_1 Bool) - (excludes3.usr.excludes_a_1 Bool) - (excludes3.res.init_flag_a_1 Bool) - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_1 - (not - (or - (or - (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) - (and excludes3.usr.X1_a_1 excludes3.usr.X3_a_1)) - (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) - (not excludes3.res.init_flag_a_1)) -) - -(define-fun - __node_init_synapse_0 ( - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (and - (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) - (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) - (= synapse.usr.valid_s_a_0 0) - (let - ((X1 Bool (let ((X1 Int synapse.res.nondet_0)) (>= X1 1)))) - (let - ((X2 Bool (let ((X2 Int synapse.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int synapse.res.nondet_2)) (>= X3 1)))) - (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_synapse_0 ( - (synapse.usr.e_s1_a_1 Bool) - (synapse.usr.e_s2_a_1 Bool) - (synapse.usr.e_s3_a_1 Bool) - (synapse.usr.init_invalid_s_a_1 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_1 Int) - (synapse.usr.valid_s_a_1 Int) - (synapse.usr.dirty_s_a_1 Int) - (synapse.usr.mem_init_s_a_1 Int) - (synapse.res.init_flag_a_1 Bool) - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= synapse.usr.invalid_s_a_0 1))) - (let - ((X2 Bool (>= synapse.usr.valid_s_a_0 1))) - (let - ((X3 Bool (>= synapse.usr.invalid_s_a_0 1))) - (and - (= - synapse.usr.invalid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite - X3 - (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite - X2 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite - X1 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - synapse.usr.invalid_s_a_0)))) - (= - synapse.usr.valid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 0 synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 0 synapse.usr.valid_s_a_0) - synapse.usr.valid_s_a_0)))) - (= - synapse.usr.dirty_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 0 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 1 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 1 synapse.usr.dirty_s_a_0) - synapse.usr.dirty_s_a_0)))) - (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) - (not synapse.res.init_flag_a_1))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (let - ((X3 Int top.res.abs_1_a_0)) - (let - ((X4 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_0))) - (__node_init_synapse_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_init_excludes3_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_s_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e_s1_a_1 Bool) - (top.usr.e_s2_a_1 Bool) - (top.usr.e_s3_a_1 Bool) - (top.usr.init_invalid_s_a_1 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (let - ((X3 Int top.res.abs_1_a_1)) - (let - ((X4 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_1))) - (__node_trans_synapse_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.usr.init_invalid_s_a_1 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_2_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes3_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_s_a_1 - top.res.abs_7_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_s_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e_s1 Bool) -(declare-primed-var top.usr.e_s2 Bool) -(declare-primed-var top.usr.e_s3 Bool) -(declare-primed-var top.usr.init_invalid_s Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_2)) - (let - ((X3 Int top.res.abs_1)) - (let - ((X4 Int top.res.abs_0)) - (and - (= top.usr.OK (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7))) - (__node_init_synapse_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) - (__node_init_excludes3_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid_s - top.res.abs_7 - top.res.inst_0) - top.res.init_flag)))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e_s1! Bool) - (top.usr.e_s2! Bool) - (top.usr.e_s3! Bool) - (top.usr.init_invalid_s! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_2!)) - (let - ((X3 Int top.res.abs_1!)) - (let - ((X4 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7!))) - (__node_trans_synapse_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.usr.init_invalid_s! - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_2! - top.res.abs_5 - top.res.abs_6 - top.res.inst_2) - (__node_trans_excludes3_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.res.abs_4! - top.res.inst_1! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid_s! - top.res.abs_7! - top.res.inst_0! - top.usr.init_invalid_s - top.res.abs_7 - top.res.inst_0) - (not top.res.init_flag!))))))) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes3_0 ((excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_0 (not (or (or (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) (and excludes3.usr.X1_a_0 excludes3.usr.X3_a_0)) (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) excludes3.res.init_flag_a_0)) +(define-fun __node_trans_excludes3_0 ((excludes3.usr.X1_a_1 Bool) (excludes3.usr.X2_a_1 Bool) (excludes3.usr.X3_a_1 Bool) (excludes3.usr.excludes_a_1 Bool) (excludes3.res.init_flag_a_1 Bool) (excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_1 (not (or (or (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) (and excludes3.usr.X1_a_1 excludes3.usr.X3_a_1)) (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) (not excludes3.res.init_flag_a_1))) +(define-fun __node_init_synapse_0 ((synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (and (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) (= synapse.usr.valid_s_a_0 0) (let ((X1 (let ((X1 synapse.res.nondet_0)) (>= X1 1)))) (let ((X2 (let ((X2 synapse.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 synapse.res.nondet_2)) (>= X3 1)))) (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0)))))) +(define-fun __node_trans_synapse_0 ((synapse.usr.e_s1_a_1 Bool) (synapse.usr.e_s2_a_1 Bool) (synapse.usr.e_s3_a_1 Bool) (synapse.usr.init_invalid_s_a_1 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_1 Int) (synapse.usr.valid_s_a_1 Int) (synapse.usr.dirty_s_a_1 Int) (synapse.usr.mem_init_s_a_1 Int) (synapse.res.init_flag_a_1 Bool) (synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= synapse.usr.invalid_s_a_0 1))) (let ((X2 (>= synapse.usr.valid_s_a_0 1))) (let ((X3 (>= synapse.usr.invalid_s_a_0 1))) (and (= synapse.usr.invalid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) synapse.usr.invalid_s_a_0)))) (= synapse.usr.valid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 0 synapse.usr.valid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 0 synapse.usr.valid_s_a_0) synapse.usr.valid_s_a_0)))) (= synapse.usr.dirty_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 0 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 1 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 1 synapse.usr.dirty_s_a_0) synapse.usr.dirty_s_a_0)))) (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) (not synapse.res.init_flag_a_1)))))) +(define-fun __node_init_top_0 ((top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_2_a_0)) (let ((X3 top.res.abs_1_a_0)) (let ((X4 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_0))) (__node_init_synapse_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_init_excludes3_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_s_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))) +(define-fun __node_trans_top_0 ((top.usr.e_s1_a_1 Bool) (top.usr.e_s2_a_1 Bool) (top.usr.e_s3_a_1 Bool) (top.usr.init_invalid_s_a_1 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_2_a_1)) (let ((X3 top.res.abs_1_a_1)) (let ((X4 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_1))) (__node_trans_synapse_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.usr.init_invalid_s_a_1 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_2_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_trans_excludes3_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_s_a_1 top.res.abs_7_a_1 top.res.inst_0_a_1 top.usr.init_invalid_s_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_2)) (let ((X3 top.res.abs_1)) (let ((X4 top.res.abs_0)) (and (= top.usr.OK (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7))) (__node_init_synapse_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_init_excludes3_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid_s top.res.abs_7 top.res.inst_0) top.res.init_flag))))))) +(define-fun trans ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e_s1! Bool) (top.usr.e_s2! Bool) (top.usr.e_s3! Bool) (top.usr.init_invalid_s! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_2!)) (let ((X3 top.res.abs_1!)) (let ((X4 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7!))) (__node_trans_synapse_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.usr.init_invalid_s! top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_2! top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_trans_excludes3_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.res.abs_4! top.res.inst_1! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid_s! top.res.abs_7! top.res.inst_0! top.usr.init_invalid_s top.res.abs_7 top.res.inst_0) (not top.res.init_flag!))))))) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/SYNAPSE_3_e7_1444_e7_638.sl b/benchmarks/LIA/Lustre/SYNAPSE_3_e7_1444_e7_638.sl index 355b158..07f0e83 100644 --- a/benchmarks/LIA/Lustre/SYNAPSE_3_e7_1444_e7_638.sl +++ b/benchmarks/LIA/Lustre/SYNAPSE_3_e7_1444_e7_638.sl @@ -1,633 +1,38 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes3_0 ( - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_0 - (not - (or - (or - (or excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) - (and excludes3.usr.X1_a_0 excludes3.usr.X3_a_0)) - (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) - excludes3.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes3_0 ( - (excludes3.usr.X1_a_1 Bool) - (excludes3.usr.X2_a_1 Bool) - (excludes3.usr.X3_a_1 Bool) - (excludes3.usr.excludes_a_1 Bool) - (excludes3.res.init_flag_a_1 Bool) - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_1 - (not - (or - (or - (or excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) - (and excludes3.usr.X1_a_1 excludes3.usr.X3_a_1)) - (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) - (not excludes3.res.init_flag_a_1)) -) - -(define-fun - __node_init_synapse_0 ( - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (and - (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) - (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) - (= synapse.usr.valid_s_a_0 0) - (let - ((X1 Bool (let ((X1 Int synapse.res.nondet_0)) (>= X1 1)))) - (let - ((X2 Bool (let ((X2 Int synapse.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int synapse.res.nondet_2)) (>= X3 1)))) - (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_synapse_0 ( - (synapse.usr.e_s1_a_1 Bool) - (synapse.usr.e_s2_a_1 Bool) - (synapse.usr.e_s3_a_1 Bool) - (synapse.usr.init_invalid_s_a_1 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_1 Int) - (synapse.usr.valid_s_a_1 Int) - (synapse.usr.dirty_s_a_1 Int) - (synapse.usr.mem_init_s_a_1 Int) - (synapse.res.init_flag_a_1 Bool) - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= synapse.usr.invalid_s_a_0 1))) - (let - ((X2 Bool (>= synapse.usr.valid_s_a_0 1))) - (let - ((X3 Bool (>= synapse.usr.invalid_s_a_0 1))) - (and - (= - synapse.usr.invalid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite - X3 - (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite - X2 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite - X1 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - synapse.usr.invalid_s_a_0)))) - (= - synapse.usr.valid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 0 synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 0 synapse.usr.valid_s_a_0) - synapse.usr.valid_s_a_0)))) - (= - synapse.usr.dirty_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 0 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 1 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 1 synapse.usr.dirty_s_a_0) - synapse.usr.dirty_s_a_0)))) - (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) - (not synapse.res.init_flag_a_1))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (let - ((X3 Int top.res.abs_1_a_0)) - (let - ((X4 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_0))) - (__node_init_synapse_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_init_excludes3_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_s_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e_s1_a_1 Bool) - (top.usr.e_s2_a_1 Bool) - (top.usr.e_s3_a_1 Bool) - (top.usr.init_invalid_s_a_1 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (let - ((X3 Int top.res.abs_1_a_1)) - (let - ((X4 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_1))) - (__node_trans_synapse_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.usr.init_invalid_s_a_1 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_2_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes3_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_s_a_1 - top.res.abs_7_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_s_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e_s1 Bool) -(declare-primed-var top.usr.e_s2 Bool) -(declare-primed-var top.usr.e_s3 Bool) -(declare-primed-var top.usr.init_invalid_s Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_2)) - (let - ((X3 Int top.res.abs_1)) - (let - ((X4 Int top.res.abs_0)) - (and - (= top.usr.OK (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7))) - (__node_init_synapse_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) - (__node_init_excludes3_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid_s - top.res.abs_7 - top.res.inst_0) - top.res.init_flag)))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e_s1! Bool) - (top.usr.e_s2! Bool) - (top.usr.e_s3! Bool) - (top.usr.init_invalid_s! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_2!)) - (let - ((X3 Int top.res.abs_1!)) - (let - ((X4 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7!))) - (__node_trans_synapse_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.usr.init_invalid_s! - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_2! - top.res.abs_5 - top.res.abs_6 - top.res.inst_2) - (__node_trans_excludes3_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.res.abs_4! - top.res.inst_1! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid_s! - top.res.abs_7! - top.res.inst_0! - top.usr.init_invalid_s - top.res.abs_7 - top.res.inst_0) - (not top.res.init_flag!))))))) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes3_0 ((excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_0 (not (or (or (or excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) (and excludes3.usr.X1_a_0 excludes3.usr.X3_a_0)) (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) excludes3.res.init_flag_a_0)) +(define-fun __node_trans_excludes3_0 ((excludes3.usr.X1_a_1 Bool) (excludes3.usr.X2_a_1 Bool) (excludes3.usr.X3_a_1 Bool) (excludes3.usr.excludes_a_1 Bool) (excludes3.res.init_flag_a_1 Bool) (excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_1 (not (or (or (or excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) (and excludes3.usr.X1_a_1 excludes3.usr.X3_a_1)) (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) (not excludes3.res.init_flag_a_1))) +(define-fun __node_init_synapse_0 ((synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (and (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) (= synapse.usr.valid_s_a_0 0) (let ((X1 (let ((X1 synapse.res.nondet_0)) (>= X1 1)))) (let ((X2 (let ((X2 synapse.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 synapse.res.nondet_2)) (>= X3 1)))) (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0)))))) +(define-fun __node_trans_synapse_0 ((synapse.usr.e_s1_a_1 Bool) (synapse.usr.e_s2_a_1 Bool) (synapse.usr.e_s3_a_1 Bool) (synapse.usr.init_invalid_s_a_1 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_1 Int) (synapse.usr.valid_s_a_1 Int) (synapse.usr.dirty_s_a_1 Int) (synapse.usr.mem_init_s_a_1 Int) (synapse.res.init_flag_a_1 Bool) (synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= synapse.usr.invalid_s_a_0 1))) (let ((X2 (>= synapse.usr.valid_s_a_0 1))) (let ((X3 (>= synapse.usr.invalid_s_a_0 1))) (and (= synapse.usr.invalid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) synapse.usr.invalid_s_a_0)))) (= synapse.usr.valid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 0 synapse.usr.valid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 0 synapse.usr.valid_s_a_0) synapse.usr.valid_s_a_0)))) (= synapse.usr.dirty_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 0 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 1 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 1 synapse.usr.dirty_s_a_0) synapse.usr.dirty_s_a_0)))) (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) (not synapse.res.init_flag_a_1)))))) +(define-fun __node_init_top_0 ((top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_2_a_0)) (let ((X3 top.res.abs_1_a_0)) (let ((X4 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_0))) (__node_init_synapse_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_init_excludes3_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_s_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))) +(define-fun __node_trans_top_0 ((top.usr.e_s1_a_1 Bool) (top.usr.e_s2_a_1 Bool) (top.usr.e_s3_a_1 Bool) (top.usr.init_invalid_s_a_1 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_2_a_1)) (let ((X3 top.res.abs_1_a_1)) (let ((X4 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_1))) (__node_trans_synapse_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.usr.init_invalid_s_a_1 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_2_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_trans_excludes3_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_s_a_1 top.res.abs_7_a_1 top.res.inst_0_a_1 top.usr.init_invalid_s_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_2)) (let ((X3 top.res.abs_1)) (let ((X4 top.res.abs_0)) (and (= top.usr.OK (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7))) (__node_init_synapse_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_init_excludes3_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid_s top.res.abs_7 top.res.inst_0) top.res.init_flag))))))) +(define-fun trans ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e_s1! Bool) (top.usr.e_s2! Bool) (top.usr.e_s3! Bool) (top.usr.init_invalid_s! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_2!)) (let ((X3 top.res.abs_1!)) (let ((X4 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7!))) (__node_trans_synapse_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.usr.init_invalid_s! top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_2! top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_trans_excludes3_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.res.abs_4! top.res.inst_1! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid_s! top.res.abs_7! top.res.inst_0! top.usr.init_invalid_s top.res.abs_7 top.res.inst_0) (not top.res.init_flag!))))))) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/SYNAPSE_3_e7_425.sl b/benchmarks/LIA/Lustre/SYNAPSE_3_e7_425.sl index 94f788e..5403d19 100644 --- a/benchmarks/LIA/Lustre/SYNAPSE_3_e7_425.sl +++ b/benchmarks/LIA/Lustre/SYNAPSE_3_e7_425.sl @@ -1,633 +1,38 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes3_0 ( - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_0 - (not - (or - (or - (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) - (and excludes3.usr.X1_a_0 excludes3.usr.X3_a_0)) - (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) - excludes3.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes3_0 ( - (excludes3.usr.X1_a_1 Bool) - (excludes3.usr.X2_a_1 Bool) - (excludes3.usr.X3_a_1 Bool) - (excludes3.usr.excludes_a_1 Bool) - (excludes3.res.init_flag_a_1 Bool) - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_1 - (not - (or - (or - (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) - (and excludes3.usr.X1_a_1 excludes3.usr.X3_a_1)) - (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) - (not excludes3.res.init_flag_a_1)) -) - -(define-fun - __node_init_synapse_0 ( - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (and - (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) - (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) - (= synapse.usr.valid_s_a_0 0) - (let - ((X1 Bool (let ((X1 Int synapse.res.nondet_0)) (>= X1 1)))) - (let - ((X2 Bool (let ((X2 Int synapse.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int synapse.res.nondet_2)) (>= X3 1)))) - (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_synapse_0 ( - (synapse.usr.e_s1_a_1 Bool) - (synapse.usr.e_s2_a_1 Bool) - (synapse.usr.e_s3_a_1 Bool) - (synapse.usr.init_invalid_s_a_1 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_1 Int) - (synapse.usr.valid_s_a_1 Int) - (synapse.usr.dirty_s_a_1 Int) - (synapse.usr.mem_init_s_a_1 Int) - (synapse.res.init_flag_a_1 Bool) - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= synapse.usr.invalid_s_a_0 1))) - (let - ((X2 Bool (>= synapse.usr.valid_s_a_0 1))) - (let - ((X3 Bool (>= synapse.usr.invalid_s_a_0 1))) - (and - (= - synapse.usr.invalid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite - X3 - (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite - X2 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite - X1 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - synapse.usr.invalid_s_a_0)))) - (= - synapse.usr.valid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 0 synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 0 synapse.usr.valid_s_a_0) - synapse.usr.valid_s_a_0)))) - (= - synapse.usr.dirty_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 0 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 1 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 1 synapse.usr.dirty_s_a_0) - synapse.usr.dirty_s_a_0)))) - (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) - (not synapse.res.init_flag_a_1))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (let - ((X3 Int top.res.abs_1_a_0)) - (let - ((X4 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_0))) - (__node_init_synapse_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_init_excludes3_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_s_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e_s1_a_1 Bool) - (top.usr.e_s2_a_1 Bool) - (top.usr.e_s3_a_1 Bool) - (top.usr.init_invalid_s_a_1 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (let - ((X3 Int top.res.abs_1_a_1)) - (let - ((X4 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_1))) - (__node_trans_synapse_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.usr.init_invalid_s_a_1 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_2_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes3_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_s_a_1 - top.res.abs_7_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_s_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e_s1 Bool) -(declare-primed-var top.usr.e_s2 Bool) -(declare-primed-var top.usr.e_s3 Bool) -(declare-primed-var top.usr.init_invalid_s Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_2)) - (let - ((X3 Int top.res.abs_1)) - (let - ((X4 Int top.res.abs_0)) - (and - (= top.usr.OK (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7))) - (__node_init_synapse_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) - (__node_init_excludes3_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid_s - top.res.abs_7 - top.res.inst_0) - top.res.init_flag)))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e_s1! Bool) - (top.usr.e_s2! Bool) - (top.usr.e_s3! Bool) - (top.usr.init_invalid_s! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_2!)) - (let - ((X3 Int top.res.abs_1!)) - (let - ((X4 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7!))) - (__node_trans_synapse_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.usr.init_invalid_s! - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_2! - top.res.abs_5 - top.res.abs_6 - top.res.inst_2) - (__node_trans_excludes3_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.res.abs_4! - top.res.inst_1! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid_s! - top.res.abs_7! - top.res.inst_0! - top.usr.init_invalid_s - top.res.abs_7 - top.res.inst_0) - (not top.res.init_flag!))))))) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes3_0 ((excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_0 (not (or (or (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) (and excludes3.usr.X1_a_0 excludes3.usr.X3_a_0)) (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) excludes3.res.init_flag_a_0)) +(define-fun __node_trans_excludes3_0 ((excludes3.usr.X1_a_1 Bool) (excludes3.usr.X2_a_1 Bool) (excludes3.usr.X3_a_1 Bool) (excludes3.usr.excludes_a_1 Bool) (excludes3.res.init_flag_a_1 Bool) (excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_1 (not (or (or (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) (and excludes3.usr.X1_a_1 excludes3.usr.X3_a_1)) (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) (not excludes3.res.init_flag_a_1))) +(define-fun __node_init_synapse_0 ((synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (and (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) (= synapse.usr.valid_s_a_0 0) (let ((X1 (let ((X1 synapse.res.nondet_0)) (>= X1 1)))) (let ((X2 (let ((X2 synapse.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 synapse.res.nondet_2)) (>= X3 1)))) (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0)))))) +(define-fun __node_trans_synapse_0 ((synapse.usr.e_s1_a_1 Bool) (synapse.usr.e_s2_a_1 Bool) (synapse.usr.e_s3_a_1 Bool) (synapse.usr.init_invalid_s_a_1 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_1 Int) (synapse.usr.valid_s_a_1 Int) (synapse.usr.dirty_s_a_1 Int) (synapse.usr.mem_init_s_a_1 Int) (synapse.res.init_flag_a_1 Bool) (synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= synapse.usr.invalid_s_a_0 1))) (let ((X2 (>= synapse.usr.valid_s_a_0 1))) (let ((X3 (>= synapse.usr.invalid_s_a_0 1))) (and (= synapse.usr.invalid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) synapse.usr.invalid_s_a_0)))) (= synapse.usr.valid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 0 synapse.usr.valid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 0 synapse.usr.valid_s_a_0) synapse.usr.valid_s_a_0)))) (= synapse.usr.dirty_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 0 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 1 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 1 synapse.usr.dirty_s_a_0) synapse.usr.dirty_s_a_0)))) (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) (not synapse.res.init_flag_a_1)))))) +(define-fun __node_init_top_0 ((top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_2_a_0)) (let ((X3 top.res.abs_1_a_0)) (let ((X4 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_0))) (__node_init_synapse_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_init_excludes3_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_s_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))) +(define-fun __node_trans_top_0 ((top.usr.e_s1_a_1 Bool) (top.usr.e_s2_a_1 Bool) (top.usr.e_s3_a_1 Bool) (top.usr.init_invalid_s_a_1 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_2_a_1)) (let ((X3 top.res.abs_1_a_1)) (let ((X4 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_1))) (__node_trans_synapse_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.usr.init_invalid_s_a_1 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_2_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_trans_excludes3_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_s_a_1 top.res.abs_7_a_1 top.res.inst_0_a_1 top.usr.init_invalid_s_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_2)) (let ((X3 top.res.abs_1)) (let ((X4 top.res.abs_0)) (and (= top.usr.OK (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7))) (__node_init_synapse_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_init_excludes3_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid_s top.res.abs_7 top.res.inst_0) top.res.init_flag))))))) +(define-fun trans ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e_s1! Bool) (top.usr.e_s2! Bool) (top.usr.e_s3! Bool) (top.usr.init_invalid_s! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_2!)) (let ((X3 top.res.abs_1!)) (let ((X4 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7!))) (__node_trans_synapse_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.usr.init_invalid_s! top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_2! top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_trans_excludes3_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.res.abs_4! top.res.inst_1! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid_s! top.res.abs_7! top.res.inst_0! top.usr.init_invalid_s top.res.abs_7 top.res.inst_0) (not top.res.init_flag!))))))) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/SYNAPSE_3_e8_1329_e7_1062.sl b/benchmarks/LIA/Lustre/SYNAPSE_3_e8_1329_e7_1062.sl index 2d8a779..d66fc5b 100644 --- a/benchmarks/LIA/Lustre/SYNAPSE_3_e8_1329_e7_1062.sl +++ b/benchmarks/LIA/Lustre/SYNAPSE_3_e8_1329_e7_1062.sl @@ -1,633 +1,38 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes3_0 ( - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_0 - (not - (or - (and - (and (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) excludes3.usr.X1_a_0) - excludes3.usr.X3_a_0) - (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) - excludes3.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes3_0 ( - (excludes3.usr.X1_a_1 Bool) - (excludes3.usr.X2_a_1 Bool) - (excludes3.usr.X3_a_1 Bool) - (excludes3.usr.excludes_a_1 Bool) - (excludes3.res.init_flag_a_1 Bool) - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_1 - (not - (or - (and - (and (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) excludes3.usr.X1_a_1) - excludes3.usr.X3_a_1) - (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) - (not excludes3.res.init_flag_a_1)) -) - -(define-fun - __node_init_synapse_0 ( - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (and - (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) - (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) - (= synapse.usr.valid_s_a_0 0) - (let - ((X1 Bool (let ((X1 Int synapse.res.nondet_0)) (>= X1 1)))) - (let - ((X2 Bool (let ((X2 Int synapse.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int synapse.res.nondet_2)) (>= X3 1)))) - (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_synapse_0 ( - (synapse.usr.e_s1_a_1 Bool) - (synapse.usr.e_s2_a_1 Bool) - (synapse.usr.e_s3_a_1 Bool) - (synapse.usr.init_invalid_s_a_1 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_1 Int) - (synapse.usr.valid_s_a_1 Int) - (synapse.usr.dirty_s_a_1 Int) - (synapse.usr.mem_init_s_a_1 Int) - (synapse.res.init_flag_a_1 Bool) - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= synapse.usr.invalid_s_a_0 1))) - (let - ((X2 Bool (>= synapse.usr.valid_s_a_0 1))) - (let - ((X3 Bool (>= synapse.usr.invalid_s_a_0 1))) - (and - (= - synapse.usr.invalid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite - X3 - (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite - X2 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite - X1 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - synapse.usr.invalid_s_a_0)))) - (= - synapse.usr.valid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 0 synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 0 synapse.usr.valid_s_a_0) - synapse.usr.valid_s_a_0)))) - (= - synapse.usr.dirty_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 0 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 1 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 1 synapse.usr.dirty_s_a_0) - synapse.usr.dirty_s_a_0)))) - (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) - (not synapse.res.init_flag_a_1))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (let - ((X3 Int top.res.abs_1_a_0)) - (let - ((X4 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_0))) - (__node_init_synapse_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_init_excludes3_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_s_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e_s1_a_1 Bool) - (top.usr.e_s2_a_1 Bool) - (top.usr.e_s3_a_1 Bool) - (top.usr.init_invalid_s_a_1 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (let - ((X3 Int top.res.abs_1_a_1)) - (let - ((X4 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_1))) - (__node_trans_synapse_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.usr.init_invalid_s_a_1 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_2_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes3_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_s_a_1 - top.res.abs_7_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_s_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e_s1 Bool) -(declare-primed-var top.usr.e_s2 Bool) -(declare-primed-var top.usr.e_s3 Bool) -(declare-primed-var top.usr.init_invalid_s Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_2)) - (let - ((X3 Int top.res.abs_1)) - (let - ((X4 Int top.res.abs_0)) - (and - (= top.usr.OK (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7))) - (__node_init_synapse_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) - (__node_init_excludes3_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid_s - top.res.abs_7 - top.res.inst_0) - top.res.init_flag)))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e_s1! Bool) - (top.usr.e_s2! Bool) - (top.usr.e_s3! Bool) - (top.usr.init_invalid_s! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_2!)) - (let - ((X3 Int top.res.abs_1!)) - (let - ((X4 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7!))) - (__node_trans_synapse_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.usr.init_invalid_s! - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_2! - top.res.abs_5 - top.res.abs_6 - top.res.inst_2) - (__node_trans_excludes3_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.res.abs_4! - top.res.inst_1! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid_s! - top.res.abs_7! - top.res.inst_0! - top.usr.init_invalid_s - top.res.abs_7 - top.res.inst_0) - (not top.res.init_flag!))))))) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes3_0 ((excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_0 (not (or (and (and (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) excludes3.usr.X1_a_0) excludes3.usr.X3_a_0) (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) excludes3.res.init_flag_a_0)) +(define-fun __node_trans_excludes3_0 ((excludes3.usr.X1_a_1 Bool) (excludes3.usr.X2_a_1 Bool) (excludes3.usr.X3_a_1 Bool) (excludes3.usr.excludes_a_1 Bool) (excludes3.res.init_flag_a_1 Bool) (excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_1 (not (or (and (and (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) excludes3.usr.X1_a_1) excludes3.usr.X3_a_1) (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) (not excludes3.res.init_flag_a_1))) +(define-fun __node_init_synapse_0 ((synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (and (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) (= synapse.usr.valid_s_a_0 0) (let ((X1 (let ((X1 synapse.res.nondet_0)) (>= X1 1)))) (let ((X2 (let ((X2 synapse.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 synapse.res.nondet_2)) (>= X3 1)))) (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0)))))) +(define-fun __node_trans_synapse_0 ((synapse.usr.e_s1_a_1 Bool) (synapse.usr.e_s2_a_1 Bool) (synapse.usr.e_s3_a_1 Bool) (synapse.usr.init_invalid_s_a_1 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_1 Int) (synapse.usr.valid_s_a_1 Int) (synapse.usr.dirty_s_a_1 Int) (synapse.usr.mem_init_s_a_1 Int) (synapse.res.init_flag_a_1 Bool) (synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= synapse.usr.invalid_s_a_0 1))) (let ((X2 (>= synapse.usr.valid_s_a_0 1))) (let ((X3 (>= synapse.usr.invalid_s_a_0 1))) (and (= synapse.usr.invalid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) synapse.usr.invalid_s_a_0)))) (= synapse.usr.valid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 0 synapse.usr.valid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 0 synapse.usr.valid_s_a_0) synapse.usr.valid_s_a_0)))) (= synapse.usr.dirty_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 0 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 1 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 1 synapse.usr.dirty_s_a_0) synapse.usr.dirty_s_a_0)))) (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) (not synapse.res.init_flag_a_1)))))) +(define-fun __node_init_top_0 ((top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_2_a_0)) (let ((X3 top.res.abs_1_a_0)) (let ((X4 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_0))) (__node_init_synapse_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_init_excludes3_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_s_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))) +(define-fun __node_trans_top_0 ((top.usr.e_s1_a_1 Bool) (top.usr.e_s2_a_1 Bool) (top.usr.e_s3_a_1 Bool) (top.usr.init_invalid_s_a_1 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_2_a_1)) (let ((X3 top.res.abs_1_a_1)) (let ((X4 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_1))) (__node_trans_synapse_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.usr.init_invalid_s_a_1 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_2_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_trans_excludes3_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_s_a_1 top.res.abs_7_a_1 top.res.inst_0_a_1 top.usr.init_invalid_s_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_2)) (let ((X3 top.res.abs_1)) (let ((X4 top.res.abs_0)) (and (= top.usr.OK (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7))) (__node_init_synapse_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_init_excludes3_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid_s top.res.abs_7 top.res.inst_0) top.res.init_flag))))))) +(define-fun trans ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e_s1! Bool) (top.usr.e_s2! Bool) (top.usr.e_s3! Bool) (top.usr.init_invalid_s! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_2!)) (let ((X3 top.res.abs_1!)) (let ((X4 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7!))) (__node_trans_synapse_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.usr.init_invalid_s! top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_2! top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_trans_excludes3_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.res.abs_4! top.res.inst_1! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid_s! top.res.abs_7! top.res.inst_0! top.usr.init_invalid_s top.res.abs_7 top.res.inst_0) (not top.res.init_flag!))))))) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/SYNAPSE_3_e8_1329_e8_320.sl b/benchmarks/LIA/Lustre/SYNAPSE_3_e8_1329_e8_320.sl index 8cf0467..06d1818 100644 --- a/benchmarks/LIA/Lustre/SYNAPSE_3_e8_1329_e8_320.sl +++ b/benchmarks/LIA/Lustre/SYNAPSE_3_e8_1329_e8_320.sl @@ -1,637 +1,38 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes3_0 ( - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_0 - (not - (and - (and - (and - (and (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) excludes3.usr.X1_a_0) - excludes3.usr.X3_a_0) - excludes3.usr.X2_a_0) - excludes3.usr.X3_a_0))) - excludes3.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes3_0 ( - (excludes3.usr.X1_a_1 Bool) - (excludes3.usr.X2_a_1 Bool) - (excludes3.usr.X3_a_1 Bool) - (excludes3.usr.excludes_a_1 Bool) - (excludes3.res.init_flag_a_1 Bool) - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_1 - (not - (and - (and - (and - (and (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) excludes3.usr.X1_a_1) - excludes3.usr.X3_a_1) - excludes3.usr.X2_a_1) - excludes3.usr.X3_a_1))) - (not excludes3.res.init_flag_a_1)) -) - -(define-fun - __node_init_synapse_0 ( - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (and - (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) - (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) - (= synapse.usr.valid_s_a_0 0) - (let - ((X1 Bool (let ((X1 Int synapse.res.nondet_0)) (>= X1 1)))) - (let - ((X2 Bool (let ((X2 Int synapse.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int synapse.res.nondet_2)) (>= X3 1)))) - (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_synapse_0 ( - (synapse.usr.e_s1_a_1 Bool) - (synapse.usr.e_s2_a_1 Bool) - (synapse.usr.e_s3_a_1 Bool) - (synapse.usr.init_invalid_s_a_1 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_1 Int) - (synapse.usr.valid_s_a_1 Int) - (synapse.usr.dirty_s_a_1 Int) - (synapse.usr.mem_init_s_a_1 Int) - (synapse.res.init_flag_a_1 Bool) - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= synapse.usr.invalid_s_a_0 1))) - (let - ((X2 Bool (>= synapse.usr.valid_s_a_0 1))) - (let - ((X3 Bool (>= synapse.usr.invalid_s_a_0 1))) - (and - (= - synapse.usr.invalid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite - X3 - (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite - X2 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite - X1 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - synapse.usr.invalid_s_a_0)))) - (= - synapse.usr.valid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 0 synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 0 synapse.usr.valid_s_a_0) - synapse.usr.valid_s_a_0)))) - (= - synapse.usr.dirty_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 0 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 1 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 1 synapse.usr.dirty_s_a_0) - synapse.usr.dirty_s_a_0)))) - (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) - (not synapse.res.init_flag_a_1))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (let - ((X3 Int top.res.abs_1_a_0)) - (let - ((X4 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_0))) - (__node_init_synapse_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_init_excludes3_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_s_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e_s1_a_1 Bool) - (top.usr.e_s2_a_1 Bool) - (top.usr.e_s3_a_1 Bool) - (top.usr.init_invalid_s_a_1 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (let - ((X3 Int top.res.abs_1_a_1)) - (let - ((X4 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_1))) - (__node_trans_synapse_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.usr.init_invalid_s_a_1 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_2_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes3_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_s_a_1 - top.res.abs_7_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_s_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e_s1 Bool) -(declare-primed-var top.usr.e_s2 Bool) -(declare-primed-var top.usr.e_s3 Bool) -(declare-primed-var top.usr.init_invalid_s Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_2)) - (let - ((X3 Int top.res.abs_1)) - (let - ((X4 Int top.res.abs_0)) - (and - (= top.usr.OK (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7))) - (__node_init_synapse_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) - (__node_init_excludes3_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid_s - top.res.abs_7 - top.res.inst_0) - top.res.init_flag)))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e_s1! Bool) - (top.usr.e_s2! Bool) - (top.usr.e_s3! Bool) - (top.usr.init_invalid_s! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_2!)) - (let - ((X3 Int top.res.abs_1!)) - (let - ((X4 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7!))) - (__node_trans_synapse_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.usr.init_invalid_s! - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_2! - top.res.abs_5 - top.res.abs_6 - top.res.inst_2) - (__node_trans_excludes3_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.res.abs_4! - top.res.inst_1! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid_s! - top.res.abs_7! - top.res.inst_0! - top.usr.init_invalid_s - top.res.abs_7 - top.res.inst_0) - (not top.res.init_flag!))))))) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes3_0 ((excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_0 (not (and (and (and (and (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) excludes3.usr.X1_a_0) excludes3.usr.X3_a_0) excludes3.usr.X2_a_0) excludes3.usr.X3_a_0))) excludes3.res.init_flag_a_0)) +(define-fun __node_trans_excludes3_0 ((excludes3.usr.X1_a_1 Bool) (excludes3.usr.X2_a_1 Bool) (excludes3.usr.X3_a_1 Bool) (excludes3.usr.excludes_a_1 Bool) (excludes3.res.init_flag_a_1 Bool) (excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_1 (not (and (and (and (and (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) excludes3.usr.X1_a_1) excludes3.usr.X3_a_1) excludes3.usr.X2_a_1) excludes3.usr.X3_a_1))) (not excludes3.res.init_flag_a_1))) +(define-fun __node_init_synapse_0 ((synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (and (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) (= synapse.usr.valid_s_a_0 0) (let ((X1 (let ((X1 synapse.res.nondet_0)) (>= X1 1)))) (let ((X2 (let ((X2 synapse.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 synapse.res.nondet_2)) (>= X3 1)))) (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0)))))) +(define-fun __node_trans_synapse_0 ((synapse.usr.e_s1_a_1 Bool) (synapse.usr.e_s2_a_1 Bool) (synapse.usr.e_s3_a_1 Bool) (synapse.usr.init_invalid_s_a_1 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_1 Int) (synapse.usr.valid_s_a_1 Int) (synapse.usr.dirty_s_a_1 Int) (synapse.usr.mem_init_s_a_1 Int) (synapse.res.init_flag_a_1 Bool) (synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= synapse.usr.invalid_s_a_0 1))) (let ((X2 (>= synapse.usr.valid_s_a_0 1))) (let ((X3 (>= synapse.usr.invalid_s_a_0 1))) (and (= synapse.usr.invalid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) synapse.usr.invalid_s_a_0)))) (= synapse.usr.valid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 0 synapse.usr.valid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 0 synapse.usr.valid_s_a_0) synapse.usr.valid_s_a_0)))) (= synapse.usr.dirty_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 0 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 1 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 1 synapse.usr.dirty_s_a_0) synapse.usr.dirty_s_a_0)))) (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) (not synapse.res.init_flag_a_1)))))) +(define-fun __node_init_top_0 ((top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_2_a_0)) (let ((X3 top.res.abs_1_a_0)) (let ((X4 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_0))) (__node_init_synapse_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_init_excludes3_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_s_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))) +(define-fun __node_trans_top_0 ((top.usr.e_s1_a_1 Bool) (top.usr.e_s2_a_1 Bool) (top.usr.e_s3_a_1 Bool) (top.usr.init_invalid_s_a_1 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_2_a_1)) (let ((X3 top.res.abs_1_a_1)) (let ((X4 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_1))) (__node_trans_synapse_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.usr.init_invalid_s_a_1 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_2_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_trans_excludes3_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_s_a_1 top.res.abs_7_a_1 top.res.inst_0_a_1 top.usr.init_invalid_s_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_2)) (let ((X3 top.res.abs_1)) (let ((X4 top.res.abs_0)) (and (= top.usr.OK (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7))) (__node_init_synapse_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_init_excludes3_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid_s top.res.abs_7 top.res.inst_0) top.res.init_flag))))))) +(define-fun trans ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e_s1! Bool) (top.usr.e_s2! Bool) (top.usr.e_s3! Bool) (top.usr.init_invalid_s! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_2!)) (let ((X3 top.res.abs_1!)) (let ((X4 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7!))) (__node_trans_synapse_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.usr.init_invalid_s! top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_2! top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_trans_excludes3_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.res.abs_4! top.res.inst_1! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid_s! top.res.abs_7! top.res.inst_0! top.usr.init_invalid_s top.res.abs_7 top.res.inst_0) (not top.res.init_flag!))))))) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/SYNAPSE_3_e8_1708.sl b/benchmarks/LIA/Lustre/SYNAPSE_3_e8_1708.sl index 032e841..9942a3a 100644 --- a/benchmarks/LIA/Lustre/SYNAPSE_3_e8_1708.sl +++ b/benchmarks/LIA/Lustre/SYNAPSE_3_e8_1708.sl @@ -1,633 +1,38 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes3_0 ( - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_0 - (not - (or - (and - (and (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) excludes3.usr.X1_a_0) - excludes3.usr.X3_a_0) - (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) - excludes3.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes3_0 ( - (excludes3.usr.X1_a_1 Bool) - (excludes3.usr.X2_a_1 Bool) - (excludes3.usr.X3_a_1 Bool) - (excludes3.usr.excludes_a_1 Bool) - (excludes3.res.init_flag_a_1 Bool) - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_1 - (not - (or - (and - (and (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) excludes3.usr.X1_a_1) - excludes3.usr.X3_a_1) - (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) - (not excludes3.res.init_flag_a_1)) -) - -(define-fun - __node_init_synapse_0 ( - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (and - (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) - (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) - (= synapse.usr.valid_s_a_0 0) - (let - ((X1 Bool (let ((X1 Int synapse.res.nondet_0)) (>= X1 1)))) - (let - ((X2 Bool (let ((X2 Int synapse.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int synapse.res.nondet_2)) (>= X3 1)))) - (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_synapse_0 ( - (synapse.usr.e_s1_a_1 Bool) - (synapse.usr.e_s2_a_1 Bool) - (synapse.usr.e_s3_a_1 Bool) - (synapse.usr.init_invalid_s_a_1 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_1 Int) - (synapse.usr.valid_s_a_1 Int) - (synapse.usr.dirty_s_a_1 Int) - (synapse.usr.mem_init_s_a_1 Int) - (synapse.res.init_flag_a_1 Bool) - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= synapse.usr.invalid_s_a_0 1))) - (let - ((X2 Bool (>= synapse.usr.valid_s_a_0 1))) - (let - ((X3 Bool (>= synapse.usr.invalid_s_a_0 1))) - (and - (= - synapse.usr.invalid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite - X3 - (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite - X2 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite - X1 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - synapse.usr.invalid_s_a_0)))) - (= - synapse.usr.valid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 0 synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 0 synapse.usr.valid_s_a_0) - synapse.usr.valid_s_a_0)))) - (= - synapse.usr.dirty_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 0 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 1 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 1 synapse.usr.dirty_s_a_0) - synapse.usr.dirty_s_a_0)))) - (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) - (not synapse.res.init_flag_a_1))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (let - ((X3 Int top.res.abs_1_a_0)) - (let - ((X4 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_0))) - (__node_init_synapse_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_init_excludes3_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_s_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e_s1_a_1 Bool) - (top.usr.e_s2_a_1 Bool) - (top.usr.e_s3_a_1 Bool) - (top.usr.init_invalid_s_a_1 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (let - ((X3 Int top.res.abs_1_a_1)) - (let - ((X4 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_1))) - (__node_trans_synapse_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.usr.init_invalid_s_a_1 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_2_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes3_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_s_a_1 - top.res.abs_7_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_s_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e_s1 Bool) -(declare-primed-var top.usr.e_s2 Bool) -(declare-primed-var top.usr.e_s3 Bool) -(declare-primed-var top.usr.init_invalid_s Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_2)) - (let - ((X3 Int top.res.abs_1)) - (let - ((X4 Int top.res.abs_0)) - (and - (= top.usr.OK (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7))) - (__node_init_synapse_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) - (__node_init_excludes3_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid_s - top.res.abs_7 - top.res.inst_0) - top.res.init_flag)))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e_s1! Bool) - (top.usr.e_s2! Bool) - (top.usr.e_s3! Bool) - (top.usr.init_invalid_s! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_2!)) - (let - ((X3 Int top.res.abs_1!)) - (let - ((X4 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7!))) - (__node_trans_synapse_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.usr.init_invalid_s! - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_2! - top.res.abs_5 - top.res.abs_6 - top.res.inst_2) - (__node_trans_excludes3_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.res.abs_4! - top.res.inst_1! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid_s! - top.res.abs_7! - top.res.inst_0! - top.usr.init_invalid_s - top.res.abs_7 - top.res.inst_0) - (not top.res.init_flag!))))))) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes3_0 ((excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_0 (not (or (and (and (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) excludes3.usr.X1_a_0) excludes3.usr.X3_a_0) (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) excludes3.res.init_flag_a_0)) +(define-fun __node_trans_excludes3_0 ((excludes3.usr.X1_a_1 Bool) (excludes3.usr.X2_a_1 Bool) (excludes3.usr.X3_a_1 Bool) (excludes3.usr.excludes_a_1 Bool) (excludes3.res.init_flag_a_1 Bool) (excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_1 (not (or (and (and (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) excludes3.usr.X1_a_1) excludes3.usr.X3_a_1) (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) (not excludes3.res.init_flag_a_1))) +(define-fun __node_init_synapse_0 ((synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (and (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) (= synapse.usr.valid_s_a_0 0) (let ((X1 (let ((X1 synapse.res.nondet_0)) (>= X1 1)))) (let ((X2 (let ((X2 synapse.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 synapse.res.nondet_2)) (>= X3 1)))) (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0)))))) +(define-fun __node_trans_synapse_0 ((synapse.usr.e_s1_a_1 Bool) (synapse.usr.e_s2_a_1 Bool) (synapse.usr.e_s3_a_1 Bool) (synapse.usr.init_invalid_s_a_1 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_1 Int) (synapse.usr.valid_s_a_1 Int) (synapse.usr.dirty_s_a_1 Int) (synapse.usr.mem_init_s_a_1 Int) (synapse.res.init_flag_a_1 Bool) (synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= synapse.usr.invalid_s_a_0 1))) (let ((X2 (>= synapse.usr.valid_s_a_0 1))) (let ((X3 (>= synapse.usr.invalid_s_a_0 1))) (and (= synapse.usr.invalid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) synapse.usr.invalid_s_a_0)))) (= synapse.usr.valid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 0 synapse.usr.valid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 0 synapse.usr.valid_s_a_0) synapse.usr.valid_s_a_0)))) (= synapse.usr.dirty_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 0 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 1 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 1 synapse.usr.dirty_s_a_0) synapse.usr.dirty_s_a_0)))) (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) (not synapse.res.init_flag_a_1)))))) +(define-fun __node_init_top_0 ((top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_2_a_0)) (let ((X3 top.res.abs_1_a_0)) (let ((X4 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_0))) (__node_init_synapse_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_init_excludes3_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_s_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))) +(define-fun __node_trans_top_0 ((top.usr.e_s1_a_1 Bool) (top.usr.e_s2_a_1 Bool) (top.usr.e_s3_a_1 Bool) (top.usr.init_invalid_s_a_1 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_2_a_1)) (let ((X3 top.res.abs_1_a_1)) (let ((X4 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7_a_1))) (__node_trans_synapse_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.usr.init_invalid_s_a_1 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_2_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_trans_excludes3_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_s_a_1 top.res.abs_7_a_1 top.res.inst_0_a_1 top.usr.init_invalid_s_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_2)) (let ((X3 top.res.abs_1)) (let ((X4 top.res.abs_0)) (and (= top.usr.OK (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7))) (__node_init_synapse_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_init_excludes3_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid_s top.res.abs_7 top.res.inst_0) top.res.init_flag))))))) +(define-fun trans ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e_s1! Bool) (top.usr.e_s2! Bool) (top.usr.e_s3! Bool) (top.usr.init_invalid_s! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_2!)) (let ((X3 top.res.abs_1!)) (let ((X4 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (= (+ (+ X4 X3) X2) top.res.abs_7!))) (__node_trans_synapse_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.usr.init_invalid_s! top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_2! top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_trans_excludes3_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.res.abs_4! top.res.inst_1! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid_s! top.res.abs_7! top.res.inst_0! top.usr.init_invalid_s top.res.abs_7 top.res.inst_0) (not top.res.init_flag!))))))) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/SYNAPSE_4.sl b/benchmarks/LIA/Lustre/SYNAPSE_4.sl index 6f0ffe2..227c93c 100644 --- a/benchmarks/LIA/Lustre/SYNAPSE_4.sl +++ b/benchmarks/LIA/Lustre/SYNAPSE_4.sl @@ -1,559 +1,34 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes3_0 ( - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_0 - (not - (or - (or - (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) - (and excludes3.usr.X1_a_0 excludes3.usr.X3_a_0)) - (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) - excludes3.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes3_0 ( - (excludes3.usr.X1_a_1 Bool) - (excludes3.usr.X2_a_1 Bool) - (excludes3.usr.X3_a_1 Bool) - (excludes3.usr.excludes_a_1 Bool) - (excludes3.res.init_flag_a_1 Bool) - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_1 - (not - (or - (or - (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) - (and excludes3.usr.X1_a_1 excludes3.usr.X3_a_1)) - (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) - (not excludes3.res.init_flag_a_1)) -) - -(define-fun - __node_init_synapse_0 ( - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (and - (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) - (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) - (= synapse.usr.valid_s_a_0 0) - (let - ((X1 Bool (let ((X1 Int synapse.res.nondet_0)) (>= X1 1)))) - (let - ((X2 Bool (let ((X2 Int synapse.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int synapse.res.nondet_2)) (>= X3 1)))) - (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_synapse_0 ( - (synapse.usr.e_s1_a_1 Bool) - (synapse.usr.e_s2_a_1 Bool) - (synapse.usr.e_s3_a_1 Bool) - (synapse.usr.init_invalid_s_a_1 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_1 Int) - (synapse.usr.valid_s_a_1 Int) - (synapse.usr.dirty_s_a_1 Int) - (synapse.usr.mem_init_s_a_1 Int) - (synapse.res.init_flag_a_1 Bool) - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= synapse.usr.invalid_s_a_0 1))) - (let - ((X2 Bool (>= synapse.usr.valid_s_a_0 1))) - (let - ((X3 Bool (>= synapse.usr.invalid_s_a_0 1))) - (and - (= - synapse.usr.invalid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite - X3 - (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite - X2 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite - X1 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - synapse.usr.invalid_s_a_0)))) - (= - synapse.usr.valid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 0 synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 0 synapse.usr.valid_s_a_0) - synapse.usr.valid_s_a_0)))) - (= - synapse.usr.dirty_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 0 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 1 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 1 synapse.usr.dirty_s_a_0) - synapse.usr.dirty_s_a_0)))) - (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) - (not synapse.res.init_flag_a_1))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (let - ((X3 Int top.res.abs_1_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (or (< X2 1) (< X3 1)))) - (__node_init_synapse_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes3_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e_s1_a_1 Bool) - (top.usr.e_s2_a_1 Bool) - (top.usr.e_s3_a_1 Bool) - (top.usr.init_invalid_s_a_1 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (let - ((X3 Int top.res.abs_1_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (or (< X2 1) (< X3 1)))) - (__node_trans_synapse_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.usr.init_invalid_s_a_1 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes3_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))) -) - - - -(synth-inv str_invariant( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e_s1 Bool) -(declare-primed-var top.usr.e_s2 Bool) -(declare-primed-var top.usr.e_s3 Bool) -(declare-primed-var top.usr.init_invalid_s Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_2)) - (let - ((X3 Int top.res.abs_1)) - (and - (= top.usr.OK (=> X1 (or (< X2 1) (< X3 1)))) - (__node_init_synapse_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes3_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e_s1! Bool) - (top.usr.e_s2! Bool) - (top.usr.e_s3! Bool) - (top.usr.init_invalid_s! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_2!)) - (let - ((X3 Int top.res.abs_1!)) - (and - (= top.usr.OK! (=> X1 (or (< X2 1) (< X3 1)))) - (__node_trans_synapse_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.usr.init_invalid_s! - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes3_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.res.abs_4! - top.res.inst_0! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!)))))) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes3_0 ((excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_0 (not (or (or (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) (and excludes3.usr.X1_a_0 excludes3.usr.X3_a_0)) (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) excludes3.res.init_flag_a_0)) +(define-fun __node_trans_excludes3_0 ((excludes3.usr.X1_a_1 Bool) (excludes3.usr.X2_a_1 Bool) (excludes3.usr.X3_a_1 Bool) (excludes3.usr.excludes_a_1 Bool) (excludes3.res.init_flag_a_1 Bool) (excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_1 (not (or (or (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) (and excludes3.usr.X1_a_1 excludes3.usr.X3_a_1)) (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) (not excludes3.res.init_flag_a_1))) +(define-fun __node_init_synapse_0 ((synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (and (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) (= synapse.usr.valid_s_a_0 0) (let ((X1 (let ((X1 synapse.res.nondet_0)) (>= X1 1)))) (let ((X2 (let ((X2 synapse.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 synapse.res.nondet_2)) (>= X3 1)))) (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0)))))) +(define-fun __node_trans_synapse_0 ((synapse.usr.e_s1_a_1 Bool) (synapse.usr.e_s2_a_1 Bool) (synapse.usr.e_s3_a_1 Bool) (synapse.usr.init_invalid_s_a_1 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_1 Int) (synapse.usr.valid_s_a_1 Int) (synapse.usr.dirty_s_a_1 Int) (synapse.usr.mem_init_s_a_1 Int) (synapse.res.init_flag_a_1 Bool) (synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= synapse.usr.invalid_s_a_0 1))) (let ((X2 (>= synapse.usr.valid_s_a_0 1))) (let ((X3 (>= synapse.usr.invalid_s_a_0 1))) (and (= synapse.usr.invalid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) synapse.usr.invalid_s_a_0)))) (= synapse.usr.valid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 0 synapse.usr.valid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 0 synapse.usr.valid_s_a_0) synapse.usr.valid_s_a_0)))) (= synapse.usr.dirty_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 0 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 1 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 1 synapse.usr.dirty_s_a_0) synapse.usr.dirty_s_a_0)))) (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) (not synapse.res.init_flag_a_1)))))) +(define-fun __node_init_top_0 ((top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_2_a_0)) (let ((X3 top.res.abs_1_a_0)) (and (= top.usr.OK_a_0 (=> X1 (or (< X2 1) (< X3 1)))) (__node_init_synapse_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes3_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))) +(define-fun __node_trans_top_0 ((top.usr.e_s1_a_1 Bool) (top.usr.e_s2_a_1 Bool) (top.usr.e_s3_a_1 Bool) (top.usr.init_invalid_s_a_1 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_2_a_1)) (let ((X3 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (=> X1 (or (< X2 1) (< X3 1)))) (__node_trans_synapse_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.usr.init_invalid_s_a_1 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes3_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))) +(synth-inv str_invariant ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_2)) (let ((X3 top.res.abs_1)) (and (= top.usr.OK (=> X1 (or (< X2 1) (< X3 1)))) (__node_init_synapse_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes3_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_0) top.res.init_flag)))))) +(define-fun trans ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e_s1! Bool) (top.usr.e_s2! Bool) (top.usr.e_s3! Bool) (top.usr.init_invalid_s! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_2!)) (let ((X3 top.res.abs_1!)) (and (= top.usr.OK! (=> X1 (or (< X2 1) (< X3 1)))) (__node_trans_synapse_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.usr.init_invalid_s! top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_2! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes3_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.res.abs_4! top.res.inst_0! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!)))))) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/SYNAPSE_4_e8_420_e7_572.sl b/benchmarks/LIA/Lustre/SYNAPSE_4_e8_420_e7_572.sl index b9d6968..73b0bb3 100644 --- a/benchmarks/LIA/Lustre/SYNAPSE_4_e8_420_e7_572.sl +++ b/benchmarks/LIA/Lustre/SYNAPSE_4_e8_420_e7_572.sl @@ -1,559 +1,34 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes3_0 ( - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_0 - (not - (or - (and - (and (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) excludes3.usr.X1_a_0) - excludes3.usr.X3_a_0) - (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) - excludes3.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes3_0 ( - (excludes3.usr.X1_a_1 Bool) - (excludes3.usr.X2_a_1 Bool) - (excludes3.usr.X3_a_1 Bool) - (excludes3.usr.excludes_a_1 Bool) - (excludes3.res.init_flag_a_1 Bool) - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_1 - (not - (or - (and - (and (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) excludes3.usr.X1_a_1) - excludes3.usr.X3_a_1) - (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) - (not excludes3.res.init_flag_a_1)) -) - -(define-fun - __node_init_synapse_0 ( - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (and - (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) - (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) - (= synapse.usr.valid_s_a_0 0) - (let - ((X1 Bool (let ((X1 Int synapse.res.nondet_0)) (>= X1 1)))) - (let - ((X2 Bool (let ((X2 Int synapse.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int synapse.res.nondet_2)) (>= X3 1)))) - (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_synapse_0 ( - (synapse.usr.e_s1_a_1 Bool) - (synapse.usr.e_s2_a_1 Bool) - (synapse.usr.e_s3_a_1 Bool) - (synapse.usr.init_invalid_s_a_1 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_1 Int) - (synapse.usr.valid_s_a_1 Int) - (synapse.usr.dirty_s_a_1 Int) - (synapse.usr.mem_init_s_a_1 Int) - (synapse.res.init_flag_a_1 Bool) - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= synapse.usr.invalid_s_a_0 1))) - (let - ((X2 Bool (>= synapse.usr.valid_s_a_0 1))) - (let - ((X3 Bool (>= synapse.usr.invalid_s_a_0 1))) - (and - (= - synapse.usr.invalid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite - X3 - (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite - X2 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite - X1 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - synapse.usr.invalid_s_a_0)))) - (= - synapse.usr.valid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 0 synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 0 synapse.usr.valid_s_a_0) - synapse.usr.valid_s_a_0)))) - (= - synapse.usr.dirty_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 0 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 1 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 1 synapse.usr.dirty_s_a_0) - synapse.usr.dirty_s_a_0)))) - (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) - (not synapse.res.init_flag_a_1))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (let - ((X3 Int top.res.abs_1_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (or (< X2 1) (< X3 1)))) - (__node_init_synapse_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes3_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e_s1_a_1 Bool) - (top.usr.e_s2_a_1 Bool) - (top.usr.e_s3_a_1 Bool) - (top.usr.init_invalid_s_a_1 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (let - ((X3 Int top.res.abs_1_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (or (< X2 1) (< X3 1)))) - (__node_trans_synapse_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.usr.init_invalid_s_a_1 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes3_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))) -) - - - -(synth-inv str_invariant( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e_s1 Bool) -(declare-primed-var top.usr.e_s2 Bool) -(declare-primed-var top.usr.e_s3 Bool) -(declare-primed-var top.usr.init_invalid_s Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_2)) - (let - ((X3 Int top.res.abs_1)) - (and - (= top.usr.OK (=> X1 (or (< X2 1) (< X3 1)))) - (__node_init_synapse_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes3_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e_s1! Bool) - (top.usr.e_s2! Bool) - (top.usr.e_s3! Bool) - (top.usr.init_invalid_s! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_2!)) - (let - ((X3 Int top.res.abs_1!)) - (and - (= top.usr.OK! (=> X1 (or (< X2 1) (< X3 1)))) - (__node_trans_synapse_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.usr.init_invalid_s! - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes3_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.res.abs_4! - top.res.inst_0! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!)))))) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes3_0 ((excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_0 (not (or (and (and (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) excludes3.usr.X1_a_0) excludes3.usr.X3_a_0) (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) excludes3.res.init_flag_a_0)) +(define-fun __node_trans_excludes3_0 ((excludes3.usr.X1_a_1 Bool) (excludes3.usr.X2_a_1 Bool) (excludes3.usr.X3_a_1 Bool) (excludes3.usr.excludes_a_1 Bool) (excludes3.res.init_flag_a_1 Bool) (excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_1 (not (or (and (and (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) excludes3.usr.X1_a_1) excludes3.usr.X3_a_1) (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) (not excludes3.res.init_flag_a_1))) +(define-fun __node_init_synapse_0 ((synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (and (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) (= synapse.usr.valid_s_a_0 0) (let ((X1 (let ((X1 synapse.res.nondet_0)) (>= X1 1)))) (let ((X2 (let ((X2 synapse.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 synapse.res.nondet_2)) (>= X3 1)))) (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0)))))) +(define-fun __node_trans_synapse_0 ((synapse.usr.e_s1_a_1 Bool) (synapse.usr.e_s2_a_1 Bool) (synapse.usr.e_s3_a_1 Bool) (synapse.usr.init_invalid_s_a_1 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_1 Int) (synapse.usr.valid_s_a_1 Int) (synapse.usr.dirty_s_a_1 Int) (synapse.usr.mem_init_s_a_1 Int) (synapse.res.init_flag_a_1 Bool) (synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= synapse.usr.invalid_s_a_0 1))) (let ((X2 (>= synapse.usr.valid_s_a_0 1))) (let ((X3 (>= synapse.usr.invalid_s_a_0 1))) (and (= synapse.usr.invalid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) synapse.usr.invalid_s_a_0)))) (= synapse.usr.valid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 0 synapse.usr.valid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 0 synapse.usr.valid_s_a_0) synapse.usr.valid_s_a_0)))) (= synapse.usr.dirty_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 0 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 1 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 1 synapse.usr.dirty_s_a_0) synapse.usr.dirty_s_a_0)))) (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) (not synapse.res.init_flag_a_1)))))) +(define-fun __node_init_top_0 ((top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_2_a_0)) (let ((X3 top.res.abs_1_a_0)) (and (= top.usr.OK_a_0 (=> X1 (or (< X2 1) (< X3 1)))) (__node_init_synapse_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes3_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))) +(define-fun __node_trans_top_0 ((top.usr.e_s1_a_1 Bool) (top.usr.e_s2_a_1 Bool) (top.usr.e_s3_a_1 Bool) (top.usr.init_invalid_s_a_1 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_2_a_1)) (let ((X3 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (=> X1 (or (< X2 1) (< X3 1)))) (__node_trans_synapse_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.usr.init_invalid_s_a_1 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes3_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))) +(synth-inv str_invariant ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_2)) (let ((X3 top.res.abs_1)) (and (= top.usr.OK (=> X1 (or (< X2 1) (< X3 1)))) (__node_init_synapse_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes3_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_0) top.res.init_flag)))))) +(define-fun trans ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e_s1! Bool) (top.usr.e_s2! Bool) (top.usr.e_s3! Bool) (top.usr.init_invalid_s! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_2!)) (let ((X3 top.res.abs_1!)) (and (= top.usr.OK! (=> X1 (or (< X2 1) (< X3 1)))) (__node_trans_synapse_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.usr.init_invalid_s! top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_2! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes3_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.res.abs_4! top.res.inst_0! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!)))))) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/SYNAPSE_4_e8_420_e8_1525.sl b/benchmarks/LIA/Lustre/SYNAPSE_4_e8_420_e8_1525.sl index 9f8b67c..a89232b 100644 --- a/benchmarks/LIA/Lustre/SYNAPSE_4_e8_420_e8_1525.sl +++ b/benchmarks/LIA/Lustre/SYNAPSE_4_e8_420_e8_1525.sl @@ -1,563 +1,34 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes3_0 ( - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_0 - (not - (and - (and - (and - (and (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) excludes3.usr.X1_a_0) - excludes3.usr.X3_a_0) - excludes3.usr.X2_a_0) - excludes3.usr.X3_a_0))) - excludes3.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes3_0 ( - (excludes3.usr.X1_a_1 Bool) - (excludes3.usr.X2_a_1 Bool) - (excludes3.usr.X3_a_1 Bool) - (excludes3.usr.excludes_a_1 Bool) - (excludes3.res.init_flag_a_1 Bool) - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_1 - (not - (and - (and - (and - (and (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) excludes3.usr.X1_a_1) - excludes3.usr.X3_a_1) - excludes3.usr.X2_a_1) - excludes3.usr.X3_a_1))) - (not excludes3.res.init_flag_a_1)) -) - -(define-fun - __node_init_synapse_0 ( - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (and - (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) - (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) - (= synapse.usr.valid_s_a_0 0) - (let - ((X1 Bool (let ((X1 Int synapse.res.nondet_0)) (>= X1 1)))) - (let - ((X2 Bool (let ((X2 Int synapse.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int synapse.res.nondet_2)) (>= X3 1)))) - (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_synapse_0 ( - (synapse.usr.e_s1_a_1 Bool) - (synapse.usr.e_s2_a_1 Bool) - (synapse.usr.e_s3_a_1 Bool) - (synapse.usr.init_invalid_s_a_1 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_1 Int) - (synapse.usr.valid_s_a_1 Int) - (synapse.usr.dirty_s_a_1 Int) - (synapse.usr.mem_init_s_a_1 Int) - (synapse.res.init_flag_a_1 Bool) - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= synapse.usr.invalid_s_a_0 1))) - (let - ((X2 Bool (>= synapse.usr.valid_s_a_0 1))) - (let - ((X3 Bool (>= synapse.usr.invalid_s_a_0 1))) - (and - (= - synapse.usr.invalid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite - X3 - (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite - X2 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite - X1 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - synapse.usr.invalid_s_a_0)))) - (= - synapse.usr.valid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 0 synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 0 synapse.usr.valid_s_a_0) - synapse.usr.valid_s_a_0)))) - (= - synapse.usr.dirty_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 0 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 1 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 1 synapse.usr.dirty_s_a_0) - synapse.usr.dirty_s_a_0)))) - (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) - (not synapse.res.init_flag_a_1))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (let - ((X3 Int top.res.abs_1_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (or (< X2 1) (< X3 1)))) - (__node_init_synapse_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes3_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e_s1_a_1 Bool) - (top.usr.e_s2_a_1 Bool) - (top.usr.e_s3_a_1 Bool) - (top.usr.init_invalid_s_a_1 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (let - ((X3 Int top.res.abs_1_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (or (< X2 1) (< X3 1)))) - (__node_trans_synapse_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.usr.init_invalid_s_a_1 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes3_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))) -) - - - -(synth-inv str_invariant( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e_s1 Bool) -(declare-primed-var top.usr.e_s2 Bool) -(declare-primed-var top.usr.e_s3 Bool) -(declare-primed-var top.usr.init_invalid_s Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_2)) - (let - ((X3 Int top.res.abs_1)) - (and - (= top.usr.OK (=> X1 (or (< X2 1) (< X3 1)))) - (__node_init_synapse_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes3_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e_s1! Bool) - (top.usr.e_s2! Bool) - (top.usr.e_s3! Bool) - (top.usr.init_invalid_s! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_2!)) - (let - ((X3 Int top.res.abs_1!)) - (and - (= top.usr.OK! (=> X1 (or (< X2 1) (< X3 1)))) - (__node_trans_synapse_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.usr.init_invalid_s! - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes3_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.res.abs_4! - top.res.inst_0! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!)))))) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes3_0 ((excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_0 (not (and (and (and (and (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) excludes3.usr.X1_a_0) excludes3.usr.X3_a_0) excludes3.usr.X2_a_0) excludes3.usr.X3_a_0))) excludes3.res.init_flag_a_0)) +(define-fun __node_trans_excludes3_0 ((excludes3.usr.X1_a_1 Bool) (excludes3.usr.X2_a_1 Bool) (excludes3.usr.X3_a_1 Bool) (excludes3.usr.excludes_a_1 Bool) (excludes3.res.init_flag_a_1 Bool) (excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_1 (not (and (and (and (and (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) excludes3.usr.X1_a_1) excludes3.usr.X3_a_1) excludes3.usr.X2_a_1) excludes3.usr.X3_a_1))) (not excludes3.res.init_flag_a_1))) +(define-fun __node_init_synapse_0 ((synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (and (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) (= synapse.usr.valid_s_a_0 0) (let ((X1 (let ((X1 synapse.res.nondet_0)) (>= X1 1)))) (let ((X2 (let ((X2 synapse.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 synapse.res.nondet_2)) (>= X3 1)))) (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0)))))) +(define-fun __node_trans_synapse_0 ((synapse.usr.e_s1_a_1 Bool) (synapse.usr.e_s2_a_1 Bool) (synapse.usr.e_s3_a_1 Bool) (synapse.usr.init_invalid_s_a_1 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_1 Int) (synapse.usr.valid_s_a_1 Int) (synapse.usr.dirty_s_a_1 Int) (synapse.usr.mem_init_s_a_1 Int) (synapse.res.init_flag_a_1 Bool) (synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= synapse.usr.invalid_s_a_0 1))) (let ((X2 (>= synapse.usr.valid_s_a_0 1))) (let ((X3 (>= synapse.usr.invalid_s_a_0 1))) (and (= synapse.usr.invalid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) synapse.usr.invalid_s_a_0)))) (= synapse.usr.valid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 0 synapse.usr.valid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 0 synapse.usr.valid_s_a_0) synapse.usr.valid_s_a_0)))) (= synapse.usr.dirty_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 0 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 1 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 1 synapse.usr.dirty_s_a_0) synapse.usr.dirty_s_a_0)))) (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) (not synapse.res.init_flag_a_1)))))) +(define-fun __node_init_top_0 ((top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_2_a_0)) (let ((X3 top.res.abs_1_a_0)) (and (= top.usr.OK_a_0 (=> X1 (or (< X2 1) (< X3 1)))) (__node_init_synapse_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes3_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))) +(define-fun __node_trans_top_0 ((top.usr.e_s1_a_1 Bool) (top.usr.e_s2_a_1 Bool) (top.usr.e_s3_a_1 Bool) (top.usr.init_invalid_s_a_1 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_2_a_1)) (let ((X3 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (=> X1 (or (< X2 1) (< X3 1)))) (__node_trans_synapse_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.usr.init_invalid_s_a_1 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes3_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))) +(synth-inv str_invariant ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_2)) (let ((X3 top.res.abs_1)) (and (= top.usr.OK (=> X1 (or (< X2 1) (< X3 1)))) (__node_init_synapse_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes3_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_0) top.res.init_flag)))))) +(define-fun trans ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e_s1! Bool) (top.usr.e_s2! Bool) (top.usr.e_s3! Bool) (top.usr.init_invalid_s! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_2!)) (let ((X3 top.res.abs_1!)) (and (= top.usr.OK! (=> X1 (or (< X2 1) (< X3 1)))) (__node_trans_synapse_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.usr.init_invalid_s! top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_2! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes3_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.res.abs_4! top.res.inst_0! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!)))))) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/SYNAPSE_4_e8_974.sl b/benchmarks/LIA/Lustre/SYNAPSE_4_e8_974.sl index 5033d38..73c6434 100644 --- a/benchmarks/LIA/Lustre/SYNAPSE_4_e8_974.sl +++ b/benchmarks/LIA/Lustre/SYNAPSE_4_e8_974.sl @@ -1,559 +1,34 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes3_0 ( - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_0 - (not - (or - (and - (and (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) excludes3.usr.X1_a_0) - excludes3.usr.X3_a_0) - (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) - excludes3.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes3_0 ( - (excludes3.usr.X1_a_1 Bool) - (excludes3.usr.X2_a_1 Bool) - (excludes3.usr.X3_a_1 Bool) - (excludes3.usr.excludes_a_1 Bool) - (excludes3.res.init_flag_a_1 Bool) - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_1 - (not - (or - (and - (and (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) excludes3.usr.X1_a_1) - excludes3.usr.X3_a_1) - (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) - (not excludes3.res.init_flag_a_1)) -) - -(define-fun - __node_init_synapse_0 ( - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (and - (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) - (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) - (= synapse.usr.valid_s_a_0 0) - (let - ((X1 Bool (let ((X1 Int synapse.res.nondet_0)) (>= X1 1)))) - (let - ((X2 Bool (let ((X2 Int synapse.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int synapse.res.nondet_2)) (>= X3 1)))) - (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_synapse_0 ( - (synapse.usr.e_s1_a_1 Bool) - (synapse.usr.e_s2_a_1 Bool) - (synapse.usr.e_s3_a_1 Bool) - (synapse.usr.init_invalid_s_a_1 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_1 Int) - (synapse.usr.valid_s_a_1 Int) - (synapse.usr.dirty_s_a_1 Int) - (synapse.usr.mem_init_s_a_1 Int) - (synapse.res.init_flag_a_1 Bool) - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= synapse.usr.invalid_s_a_0 1))) - (let - ((X2 Bool (>= synapse.usr.valid_s_a_0 1))) - (let - ((X3 Bool (>= synapse.usr.invalid_s_a_0 1))) - (and - (= - synapse.usr.invalid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite - X3 - (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite - X2 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite - X1 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - synapse.usr.invalid_s_a_0)))) - (= - synapse.usr.valid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 0 synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 0 synapse.usr.valid_s_a_0) - synapse.usr.valid_s_a_0)))) - (= - synapse.usr.dirty_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 0 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 1 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 1 synapse.usr.dirty_s_a_0) - synapse.usr.dirty_s_a_0)))) - (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) - (not synapse.res.init_flag_a_1))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (let - ((X3 Int top.res.abs_1_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (or (< X2 1) (< X3 1)))) - (__node_init_synapse_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_excludes3_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e_s1_a_1 Bool) - (top.usr.e_s2_a_1 Bool) - (top.usr.e_s3_a_1 Bool) - (top.usr.init_invalid_s_a_1 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (let - ((X3 Int top.res.abs_1_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (or (< X2 1) (< X3 1)))) - (__node_trans_synapse_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.usr.init_invalid_s_a_1 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes3_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.res.abs_4_a_1 - top.res.inst_0_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))) -) - - - -(synth-inv str_invariant( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e_s1 Bool) -(declare-primed-var top.usr.e_s2 Bool) -(declare-primed-var top.usr.e_s3 Bool) -(declare-primed-var top.usr.init_invalid_s Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_2)) - (let - ((X3 Int top.res.abs_1)) - (and - (= top.usr.OK (=> X1 (or (< X2 1) (< X3 1)))) - (__node_init_synapse_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) - (__node_init_excludes3_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_0) - top.res.init_flag))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e_s1! Bool) - (top.usr.e_s2! Bool) - (top.usr.e_s3! Bool) - (top.usr.init_invalid_s! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_2!)) - (let - ((X3 Int top.res.abs_1!)) - (and - (= top.usr.OK! (=> X1 (or (< X2 1) (< X3 1)))) - (__node_trans_synapse_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.usr.init_invalid_s! - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_1! - top.res.abs_5 - top.res.abs_6 - top.res.inst_1) - (__node_trans_excludes3_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.res.abs_4! - top.res.inst_0! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_0) - (not top.res.init_flag!)))))) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes3_0 ((excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_0 (not (or (and (and (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) excludes3.usr.X1_a_0) excludes3.usr.X3_a_0) (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) excludes3.res.init_flag_a_0)) +(define-fun __node_trans_excludes3_0 ((excludes3.usr.X1_a_1 Bool) (excludes3.usr.X2_a_1 Bool) (excludes3.usr.X3_a_1 Bool) (excludes3.usr.excludes_a_1 Bool) (excludes3.res.init_flag_a_1 Bool) (excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_1 (not (or (and (and (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) excludes3.usr.X1_a_1) excludes3.usr.X3_a_1) (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) (not excludes3.res.init_flag_a_1))) +(define-fun __node_init_synapse_0 ((synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (and (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) (= synapse.usr.valid_s_a_0 0) (let ((X1 (let ((X1 synapse.res.nondet_0)) (>= X1 1)))) (let ((X2 (let ((X2 synapse.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 synapse.res.nondet_2)) (>= X3 1)))) (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0)))))) +(define-fun __node_trans_synapse_0 ((synapse.usr.e_s1_a_1 Bool) (synapse.usr.e_s2_a_1 Bool) (synapse.usr.e_s3_a_1 Bool) (synapse.usr.init_invalid_s_a_1 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_1 Int) (synapse.usr.valid_s_a_1 Int) (synapse.usr.dirty_s_a_1 Int) (synapse.usr.mem_init_s_a_1 Int) (synapse.res.init_flag_a_1 Bool) (synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= synapse.usr.invalid_s_a_0 1))) (let ((X2 (>= synapse.usr.valid_s_a_0 1))) (let ((X3 (>= synapse.usr.invalid_s_a_0 1))) (and (= synapse.usr.invalid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) synapse.usr.invalid_s_a_0)))) (= synapse.usr.valid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 0 synapse.usr.valid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 0 synapse.usr.valid_s_a_0) synapse.usr.valid_s_a_0)))) (= synapse.usr.dirty_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 0 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 1 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 1 synapse.usr.dirty_s_a_0) synapse.usr.dirty_s_a_0)))) (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) (not synapse.res.init_flag_a_1)))))) +(define-fun __node_init_top_0 ((top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_2_a_0)) (let ((X3 top.res.abs_1_a_0)) (and (= top.usr.OK_a_0 (=> X1 (or (< X2 1) (< X3 1)))) (__node_init_synapse_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_excludes3_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))) +(define-fun __node_trans_top_0 ((top.usr.e_s1_a_1 Bool) (top.usr.e_s2_a_1 Bool) (top.usr.e_s3_a_1 Bool) (top.usr.init_invalid_s_a_1 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_2_a_1)) (let ((X3 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (=> X1 (or (< X2 1) (< X3 1)))) (__node_trans_synapse_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.usr.init_invalid_s_a_1 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_excludes3_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.res.abs_4_a_1 top.res.inst_0_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))) +(synth-inv str_invariant ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_2)) (let ((X3 top.res.abs_1)) (and (= top.usr.OK (=> X1 (or (< X2 1) (< X3 1)))) (__node_init_synapse_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_init_excludes3_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_0) top.res.init_flag)))))) +(define-fun trans ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e_s1! Bool) (top.usr.e_s2! Bool) (top.usr.e_s3! Bool) (top.usr.init_invalid_s! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_2!)) (let ((X3 top.res.abs_1!)) (and (= top.usr.OK! (=> X1 (or (< X2 1) (< X3 1)))) (__node_trans_synapse_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.usr.init_invalid_s! top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_2! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_1! top.res.abs_5 top.res.abs_6 top.res.inst_1) (__node_trans_excludes3_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.res.abs_4! top.res.inst_0! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_0) (not top.res.init_flag!)))))) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/SYNAPSE_5.sl b/benchmarks/LIA/Lustre/SYNAPSE_5.sl index cf2b58b..716f88f 100644 --- a/benchmarks/LIA/Lustre/SYNAPSE_5.sl +++ b/benchmarks/LIA/Lustre/SYNAPSE_5.sl @@ -1,614 +1,38 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes3_0 ( - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_0 - (not - (or - (or - (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) - (and excludes3.usr.X1_a_0 excludes3.usr.X3_a_0)) - (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) - excludes3.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes3_0 ( - (excludes3.usr.X1_a_1 Bool) - (excludes3.usr.X2_a_1 Bool) - (excludes3.usr.X3_a_1 Bool) - (excludes3.usr.excludes_a_1 Bool) - (excludes3.res.init_flag_a_1 Bool) - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_1 - (not - (or - (or - (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) - (and excludes3.usr.X1_a_1 excludes3.usr.X3_a_1)) - (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) - (not excludes3.res.init_flag_a_1)) -) - -(define-fun - __node_init_synapse_0 ( - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (and - (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) - (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) - (= synapse.usr.valid_s_a_0 0) - (let - ((X1 Bool (let ((X1 Int synapse.res.nondet_0)) (>= X1 1)))) - (let - ((X2 Bool (let ((X2 Int synapse.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int synapse.res.nondet_2)) (>= X3 1)))) - (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_synapse_0 ( - (synapse.usr.e_s1_a_1 Bool) - (synapse.usr.e_s2_a_1 Bool) - (synapse.usr.e_s3_a_1 Bool) - (synapse.usr.init_invalid_s_a_1 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_1 Int) - (synapse.usr.valid_s_a_1 Int) - (synapse.usr.dirty_s_a_1 Int) - (synapse.usr.mem_init_s_a_1 Int) - (synapse.res.init_flag_a_1 Bool) - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= synapse.usr.invalid_s_a_0 1))) - (let - ((X2 Bool (>= synapse.usr.valid_s_a_0 1))) - (let - ((X3 Bool (>= synapse.usr.invalid_s_a_0 1))) - (and - (= - synapse.usr.invalid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite - X3 - (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite - X2 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite - X1 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - synapse.usr.invalid_s_a_0)))) - (= - synapse.usr.valid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 0 synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 0 synapse.usr.valid_s_a_0) - synapse.usr.valid_s_a_0)))) - (= - synapse.usr.dirty_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 0 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 1 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 1 synapse.usr.dirty_s_a_0) - synapse.usr.dirty_s_a_0)))) - (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) - (not synapse.res.init_flag_a_1))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (<= X2 top.res.abs_7_a_0))) - (__node_init_synapse_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) - (__node_init_excludes3_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_s_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e_s1_a_1 Bool) - (top.usr.e_s2_a_1 Bool) - (top.usr.e_s3_a_1 Bool) - (top.usr.init_invalid_s_a_1 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_1_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (<= X2 top.res.abs_7_a_1))) - (__node_trans_synapse_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.usr.init_invalid_s_a_1 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_2_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes3_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_s_a_1 - top.res.abs_7_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_s_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e_s1 Bool) -(declare-primed-var top.usr.e_s2 Bool) -(declare-primed-var top.usr.e_s3 Bool) -(declare-primed-var top.usr.init_invalid_s Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_1)) - (and - (= top.usr.OK (=> X1 (<= X2 top.res.abs_7))) - (__node_init_synapse_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) - (__node_init_excludes3_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid_s - top.res.abs_7 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e_s1! Bool) - (top.usr.e_s2! Bool) - (top.usr.e_s3! Bool) - (top.usr.init_invalid_s! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_1!)) - (and - (= top.usr.OK! (=> X1 (<= X2 top.res.abs_7!))) - (__node_trans_synapse_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.usr.init_invalid_s! - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_2! - top.res.abs_5 - top.res.abs_6 - top.res.inst_2) - (__node_trans_excludes3_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.res.abs_4! - top.res.inst_1! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid_s! - top.res.abs_7! - top.res.inst_0! - top.usr.init_invalid_s - top.res.abs_7 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes3_0 ((excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_0 (not (or (or (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) (and excludes3.usr.X1_a_0 excludes3.usr.X3_a_0)) (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) excludes3.res.init_flag_a_0)) +(define-fun __node_trans_excludes3_0 ((excludes3.usr.X1_a_1 Bool) (excludes3.usr.X2_a_1 Bool) (excludes3.usr.X3_a_1 Bool) (excludes3.usr.excludes_a_1 Bool) (excludes3.res.init_flag_a_1 Bool) (excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_1 (not (or (or (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) (and excludes3.usr.X1_a_1 excludes3.usr.X3_a_1)) (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) (not excludes3.res.init_flag_a_1))) +(define-fun __node_init_synapse_0 ((synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (and (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) (= synapse.usr.valid_s_a_0 0) (let ((X1 (let ((X1 synapse.res.nondet_0)) (>= X1 1)))) (let ((X2 (let ((X2 synapse.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 synapse.res.nondet_2)) (>= X3 1)))) (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0)))))) +(define-fun __node_trans_synapse_0 ((synapse.usr.e_s1_a_1 Bool) (synapse.usr.e_s2_a_1 Bool) (synapse.usr.e_s3_a_1 Bool) (synapse.usr.init_invalid_s_a_1 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_1 Int) (synapse.usr.valid_s_a_1 Int) (synapse.usr.dirty_s_a_1 Int) (synapse.usr.mem_init_s_a_1 Int) (synapse.res.init_flag_a_1 Bool) (synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= synapse.usr.invalid_s_a_0 1))) (let ((X2 (>= synapse.usr.valid_s_a_0 1))) (let ((X3 (>= synapse.usr.invalid_s_a_0 1))) (and (= synapse.usr.invalid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) synapse.usr.invalid_s_a_0)))) (= synapse.usr.valid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 0 synapse.usr.valid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 0 synapse.usr.valid_s_a_0) synapse.usr.valid_s_a_0)))) (= synapse.usr.dirty_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 0 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 1 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 1 synapse.usr.dirty_s_a_0) synapse.usr.dirty_s_a_0)))) (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) (not synapse.res.init_flag_a_1)))))) +(define-fun __node_init_top_0 ((top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_1_a_0)) (and (= top.usr.OK_a_0 (=> X1 (<= X2 top.res.abs_7_a_0))) (__node_init_synapse_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_init_excludes3_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_s_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e_s1_a_1 Bool) (top.usr.e_s2_a_1 Bool) (top.usr.e_s3_a_1 Bool) (top.usr.init_invalid_s_a_1 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (=> X1 (<= X2 top.res.abs_7_a_1))) (__node_trans_synapse_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.usr.init_invalid_s_a_1 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_2_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_trans_excludes3_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_s_a_1 top.res.abs_7_a_1 top.res.inst_0_a_1 top.usr.init_invalid_s_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_1)) (and (= top.usr.OK (=> X1 (<= X2 top.res.abs_7))) (__node_init_synapse_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_init_excludes3_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid_s top.res.abs_7 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e_s1! Bool) (top.usr.e_s2! Bool) (top.usr.e_s3! Bool) (top.usr.init_invalid_s! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_1!)) (and (= top.usr.OK! (=> X1 (<= X2 top.res.abs_7!))) (__node_trans_synapse_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.usr.init_invalid_s! top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_2! top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_trans_excludes3_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.res.abs_4! top.res.inst_1! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid_s! top.res.abs_7! top.res.inst_0! top.usr.init_invalid_s top.res.abs_7 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/SYNAPSE_5_e2_1525.sl b/benchmarks/LIA/Lustre/SYNAPSE_5_e2_1525.sl index b16be2b..b5fa7c6 100644 --- a/benchmarks/LIA/Lustre/SYNAPSE_5_e2_1525.sl +++ b/benchmarks/LIA/Lustre/SYNAPSE_5_e2_1525.sl @@ -1,614 +1,38 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes3_0 ( - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_0 - (not - (or - (or - (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) - (and excludes3.usr.X1_a_0 excludes3.usr.X3_a_0)) - (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) - excludes3.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes3_0 ( - (excludes3.usr.X1_a_1 Bool) - (excludes3.usr.X2_a_1 Bool) - (excludes3.usr.X3_a_1 Bool) - (excludes3.usr.excludes_a_1 Bool) - (excludes3.res.init_flag_a_1 Bool) - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_1 - (not - (or - (or - (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) - (and excludes3.usr.X1_a_1 excludes3.usr.X3_a_1)) - (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) - (not excludes3.res.init_flag_a_1)) -) - -(define-fun - __node_init_synapse_0 ( - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (and - (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) - (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) - (= synapse.usr.valid_s_a_0 0) - (let - ((X1 Bool (let ((X1 Int synapse.res.nondet_0)) (>= X1 1)))) - (let - ((X2 Bool (let ((X2 Int synapse.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int synapse.res.nondet_2)) (>= X3 1)))) - (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_synapse_0 ( - (synapse.usr.e_s1_a_1 Bool) - (synapse.usr.e_s2_a_1 Bool) - (synapse.usr.e_s3_a_1 Bool) - (synapse.usr.init_invalid_s_a_1 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_1 Int) - (synapse.usr.valid_s_a_1 Int) - (synapse.usr.dirty_s_a_1 Int) - (synapse.usr.mem_init_s_a_1 Int) - (synapse.res.init_flag_a_1 Bool) - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= synapse.usr.invalid_s_a_0 1))) - (let - ((X2 Bool (>= synapse.usr.valid_s_a_0 1))) - (let - ((X3 Bool (>= synapse.usr.invalid_s_a_0 1))) - (and - (= - synapse.usr.invalid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite - X3 - (- (+ (- synapse.usr.invalid_s_a_0 1) synapse.usr.dirty_s_a_0) 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite - X2 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite - X1 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - synapse.usr.invalid_s_a_0)))) - (= - synapse.usr.valid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 0 synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 0 synapse.usr.valid_s_a_0) - synapse.usr.valid_s_a_0)))) - (= - synapse.usr.dirty_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 0 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 1 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 1 synapse.usr.dirty_s_a_0) - synapse.usr.dirty_s_a_0)))) - (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) - (not synapse.res.init_flag_a_1))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (<= X2 top.res.abs_7_a_0))) - (__node_init_synapse_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) - (__node_init_excludes3_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_s_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e_s1_a_1 Bool) - (top.usr.e_s2_a_1 Bool) - (top.usr.e_s3_a_1 Bool) - (top.usr.init_invalid_s_a_1 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_1_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (<= X2 top.res.abs_7_a_1))) - (__node_trans_synapse_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.usr.init_invalid_s_a_1 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_2_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes3_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_s_a_1 - top.res.abs_7_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_s_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e_s1 Bool) -(declare-primed-var top.usr.e_s2 Bool) -(declare-primed-var top.usr.e_s3 Bool) -(declare-primed-var top.usr.init_invalid_s Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_1)) - (and - (= top.usr.OK (=> X1 (<= X2 top.res.abs_7))) - (__node_init_synapse_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) - (__node_init_excludes3_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid_s - top.res.abs_7 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e_s1! Bool) - (top.usr.e_s2! Bool) - (top.usr.e_s3! Bool) - (top.usr.init_invalid_s! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_1!)) - (and - (= top.usr.OK! (=> X1 (<= X2 top.res.abs_7!))) - (__node_trans_synapse_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.usr.init_invalid_s! - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_2! - top.res.abs_5 - top.res.abs_6 - top.res.inst_2) - (__node_trans_excludes3_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.res.abs_4! - top.res.inst_1! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid_s! - top.res.abs_7! - top.res.inst_0! - top.usr.init_invalid_s - top.res.abs_7 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes3_0 ((excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_0 (not (or (or (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) (and excludes3.usr.X1_a_0 excludes3.usr.X3_a_0)) (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) excludes3.res.init_flag_a_0)) +(define-fun __node_trans_excludes3_0 ((excludes3.usr.X1_a_1 Bool) (excludes3.usr.X2_a_1 Bool) (excludes3.usr.X3_a_1 Bool) (excludes3.usr.excludes_a_1 Bool) (excludes3.res.init_flag_a_1 Bool) (excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_1 (not (or (or (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) (and excludes3.usr.X1_a_1 excludes3.usr.X3_a_1)) (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) (not excludes3.res.init_flag_a_1))) +(define-fun __node_init_synapse_0 ((synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (and (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) (= synapse.usr.valid_s_a_0 0) (let ((X1 (let ((X1 synapse.res.nondet_0)) (>= X1 1)))) (let ((X2 (let ((X2 synapse.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 synapse.res.nondet_2)) (>= X3 1)))) (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0)))))) +(define-fun __node_trans_synapse_0 ((synapse.usr.e_s1_a_1 Bool) (synapse.usr.e_s2_a_1 Bool) (synapse.usr.e_s3_a_1 Bool) (synapse.usr.init_invalid_s_a_1 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_1 Int) (synapse.usr.valid_s_a_1 Int) (synapse.usr.dirty_s_a_1 Int) (synapse.usr.mem_init_s_a_1 Int) (synapse.res.init_flag_a_1 Bool) (synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= synapse.usr.invalid_s_a_0 1))) (let ((X2 (>= synapse.usr.valid_s_a_0 1))) (let ((X3 (>= synapse.usr.invalid_s_a_0 1))) (and (= synapse.usr.invalid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (- (+ (- synapse.usr.invalid_s_a_0 1) synapse.usr.dirty_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) synapse.usr.invalid_s_a_0)))) (= synapse.usr.valid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 0 synapse.usr.valid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 0 synapse.usr.valid_s_a_0) synapse.usr.valid_s_a_0)))) (= synapse.usr.dirty_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 0 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 1 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 1 synapse.usr.dirty_s_a_0) synapse.usr.dirty_s_a_0)))) (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) (not synapse.res.init_flag_a_1)))))) +(define-fun __node_init_top_0 ((top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_1_a_0)) (and (= top.usr.OK_a_0 (=> X1 (<= X2 top.res.abs_7_a_0))) (__node_init_synapse_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_init_excludes3_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_s_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e_s1_a_1 Bool) (top.usr.e_s2_a_1 Bool) (top.usr.e_s3_a_1 Bool) (top.usr.init_invalid_s_a_1 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (=> X1 (<= X2 top.res.abs_7_a_1))) (__node_trans_synapse_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.usr.init_invalid_s_a_1 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_2_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_trans_excludes3_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_s_a_1 top.res.abs_7_a_1 top.res.inst_0_a_1 top.usr.init_invalid_s_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_1)) (and (= top.usr.OK (=> X1 (<= X2 top.res.abs_7))) (__node_init_synapse_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_init_excludes3_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid_s top.res.abs_7 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e_s1! Bool) (top.usr.e_s2! Bool) (top.usr.e_s3! Bool) (top.usr.init_invalid_s! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_1!)) (and (= top.usr.OK! (=> X1 (<= X2 top.res.abs_7!))) (__node_trans_synapse_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.usr.init_invalid_s! top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_2! top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_trans_excludes3_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.res.abs_4! top.res.inst_1! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid_s! top.res.abs_7! top.res.inst_0! top.usr.init_invalid_s top.res.abs_7 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/SYNAPSE_6.sl b/benchmarks/LIA/Lustre/SYNAPSE_6.sl index 2406053..a2fb969 100644 --- a/benchmarks/LIA/Lustre/SYNAPSE_6.sl +++ b/benchmarks/LIA/Lustre/SYNAPSE_6.sl @@ -1,614 +1,38 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes3_0 ( - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_0 - (not - (or - (or - (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) - (and excludes3.usr.X1_a_0 excludes3.usr.X3_a_0)) - (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) - excludes3.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes3_0 ( - (excludes3.usr.X1_a_1 Bool) - (excludes3.usr.X2_a_1 Bool) - (excludes3.usr.X3_a_1 Bool) - (excludes3.usr.excludes_a_1 Bool) - (excludes3.res.init_flag_a_1 Bool) - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_1 - (not - (or - (or - (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) - (and excludes3.usr.X1_a_1 excludes3.usr.X3_a_1)) - (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) - (not excludes3.res.init_flag_a_1)) -) - -(define-fun - __node_init_synapse_0 ( - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (and - (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) - (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) - (= synapse.usr.valid_s_a_0 0) - (let - ((X1 Bool (let ((X1 Int synapse.res.nondet_0)) (>= X1 1)))) - (let - ((X2 Bool (let ((X2 Int synapse.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int synapse.res.nondet_2)) (>= X3 1)))) - (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_synapse_0 ( - (synapse.usr.e_s1_a_1 Bool) - (synapse.usr.e_s2_a_1 Bool) - (synapse.usr.e_s3_a_1 Bool) - (synapse.usr.init_invalid_s_a_1 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_1 Int) - (synapse.usr.valid_s_a_1 Int) - (synapse.usr.dirty_s_a_1 Int) - (synapse.usr.mem_init_s_a_1 Int) - (synapse.res.init_flag_a_1 Bool) - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= synapse.usr.invalid_s_a_0 1))) - (let - ((X2 Bool (>= synapse.usr.valid_s_a_0 1))) - (let - ((X3 Bool (>= synapse.usr.invalid_s_a_0 1))) - (and - (= - synapse.usr.invalid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite - X3 - (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite - X2 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite - X1 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - synapse.usr.invalid_s_a_0)))) - (= - synapse.usr.valid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 0 synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 0 synapse.usr.valid_s_a_0) - synapse.usr.valid_s_a_0)))) - (= - synapse.usr.dirty_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 0 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 1 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 1 synapse.usr.dirty_s_a_0) - synapse.usr.dirty_s_a_0)))) - (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) - (not synapse.res.init_flag_a_1))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (<= X2 top.res.abs_7_a_0))) - (__node_init_synapse_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) - (__node_init_excludes3_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_s_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e_s1_a_1 Bool) - (top.usr.e_s2_a_1 Bool) - (top.usr.e_s3_a_1 Bool) - (top.usr.init_invalid_s_a_1 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (<= X2 top.res.abs_7_a_1))) - (__node_trans_synapse_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.usr.init_invalid_s_a_1 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_2_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes3_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_s_a_1 - top.res.abs_7_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_s_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e_s1 Bool) -(declare-primed-var top.usr.e_s2 Bool) -(declare-primed-var top.usr.e_s3 Bool) -(declare-primed-var top.usr.init_invalid_s Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_0)) - (and - (= top.usr.OK (=> X1 (<= X2 top.res.abs_7))) - (__node_init_synapse_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) - (__node_init_excludes3_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid_s - top.res.abs_7 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e_s1! Bool) - (top.usr.e_s2! Bool) - (top.usr.e_s3! Bool) - (top.usr.init_invalid_s! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (<= X2 top.res.abs_7!))) - (__node_trans_synapse_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.usr.init_invalid_s! - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_2! - top.res.abs_5 - top.res.abs_6 - top.res.inst_2) - (__node_trans_excludes3_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.res.abs_4! - top.res.inst_1! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid_s! - top.res.abs_7! - top.res.inst_0! - top.usr.init_invalid_s - top.res.abs_7 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes3_0 ((excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_0 (not (or (or (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) (and excludes3.usr.X1_a_0 excludes3.usr.X3_a_0)) (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) excludes3.res.init_flag_a_0)) +(define-fun __node_trans_excludes3_0 ((excludes3.usr.X1_a_1 Bool) (excludes3.usr.X2_a_1 Bool) (excludes3.usr.X3_a_1 Bool) (excludes3.usr.excludes_a_1 Bool) (excludes3.res.init_flag_a_1 Bool) (excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_1 (not (or (or (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) (and excludes3.usr.X1_a_1 excludes3.usr.X3_a_1)) (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) (not excludes3.res.init_flag_a_1))) +(define-fun __node_init_synapse_0 ((synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (and (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) (= synapse.usr.valid_s_a_0 0) (let ((X1 (let ((X1 synapse.res.nondet_0)) (>= X1 1)))) (let ((X2 (let ((X2 synapse.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 synapse.res.nondet_2)) (>= X3 1)))) (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0)))))) +(define-fun __node_trans_synapse_0 ((synapse.usr.e_s1_a_1 Bool) (synapse.usr.e_s2_a_1 Bool) (synapse.usr.e_s3_a_1 Bool) (synapse.usr.init_invalid_s_a_1 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_1 Int) (synapse.usr.valid_s_a_1 Int) (synapse.usr.dirty_s_a_1 Int) (synapse.usr.mem_init_s_a_1 Int) (synapse.res.init_flag_a_1 Bool) (synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= synapse.usr.invalid_s_a_0 1))) (let ((X2 (>= synapse.usr.valid_s_a_0 1))) (let ((X3 (>= synapse.usr.invalid_s_a_0 1))) (and (= synapse.usr.invalid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) synapse.usr.invalid_s_a_0)))) (= synapse.usr.valid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 0 synapse.usr.valid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 0 synapse.usr.valid_s_a_0) synapse.usr.valid_s_a_0)))) (= synapse.usr.dirty_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 0 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 1 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 1 synapse.usr.dirty_s_a_0) synapse.usr.dirty_s_a_0)))) (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) (not synapse.res.init_flag_a_1)))))) +(define-fun __node_init_top_0 ((top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (<= X2 top.res.abs_7_a_0))) (__node_init_synapse_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_init_excludes3_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_s_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e_s1_a_1 Bool) (top.usr.e_s2_a_1 Bool) (top.usr.e_s3_a_1 Bool) (top.usr.init_invalid_s_a_1 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (<= X2 top.res.abs_7_a_1))) (__node_trans_synapse_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.usr.init_invalid_s_a_1 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_2_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_trans_excludes3_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_s_a_1 top.res.abs_7_a_1 top.res.inst_0_a_1 top.usr.init_invalid_s_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_0)) (and (= top.usr.OK (=> X1 (<= X2 top.res.abs_7))) (__node_init_synapse_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_init_excludes3_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid_s top.res.abs_7 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e_s1! Bool) (top.usr.e_s2! Bool) (top.usr.e_s3! Bool) (top.usr.init_invalid_s! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (<= X2 top.res.abs_7!))) (__node_trans_synapse_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.usr.init_invalid_s! top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_2! top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_trans_excludes3_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.res.abs_4! top.res.inst_1! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid_s! top.res.abs_7! top.res.inst_0! top.usr.init_invalid_s top.res.abs_7 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/SYNAPSE_6_e2_1439_e1_954.sl b/benchmarks/LIA/Lustre/SYNAPSE_6_e2_1439_e1_954.sl index c7a47ce..40eab02 100644 --- a/benchmarks/LIA/Lustre/SYNAPSE_6_e2_1439_e1_954.sl +++ b/benchmarks/LIA/Lustre/SYNAPSE_6_e2_1439_e1_954.sl @@ -1,614 +1,38 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes3_0 ( - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_0 - (not - (or - (or - (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) - (and excludes3.usr.X1_a_0 excludes3.usr.X3_a_0)) - (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) - excludes3.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes3_0 ( - (excludes3.usr.X1_a_1 Bool) - (excludes3.usr.X2_a_1 Bool) - (excludes3.usr.X3_a_1 Bool) - (excludes3.usr.excludes_a_1 Bool) - (excludes3.res.init_flag_a_1 Bool) - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_1 - (not - (or - (or - (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) - (and excludes3.usr.X1_a_1 excludes3.usr.X3_a_1)) - (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) - (not excludes3.res.init_flag_a_1)) -) - -(define-fun - __node_init_synapse_0 ( - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (and - (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) - (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) - (= synapse.usr.valid_s_a_0 0) - (let - ((X1 Bool (let ((X1 Int synapse.res.nondet_0)) (>= X1 1)))) - (let - ((X2 Bool (let ((X2 Int synapse.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int synapse.res.nondet_2)) (>= X3 1)))) - (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_synapse_0 ( - (synapse.usr.e_s1_a_1 Bool) - (synapse.usr.e_s2_a_1 Bool) - (synapse.usr.e_s3_a_1 Bool) - (synapse.usr.init_invalid_s_a_1 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_1 Int) - (synapse.usr.valid_s_a_1 Int) - (synapse.usr.dirty_s_a_1 Int) - (synapse.usr.mem_init_s_a_1 Int) - (synapse.res.init_flag_a_1 Bool) - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= synapse.usr.invalid_s_a_0 1))) - (let - ((X2 Bool (>= synapse.usr.valid_s_a_0 1))) - (let - ((X3 Bool (>= synapse.usr.invalid_s_a_0 1))) - (and - (= - synapse.usr.invalid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite - X3 - (- (+ (- synapse.usr.invalid_s_a_0 1) synapse.usr.dirty_s_a_0) 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite - X2 - (- - (+ - (+ (+ synapse.usr.invalid_s_a_0 1) synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite - X1 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - synapse.usr.invalid_s_a_0)))) - (= - synapse.usr.valid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 0 synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 0 synapse.usr.valid_s_a_0) - synapse.usr.valid_s_a_0)))) - (= - synapse.usr.dirty_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 0 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 1 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 1 synapse.usr.dirty_s_a_0) - synapse.usr.dirty_s_a_0)))) - (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) - (not synapse.res.init_flag_a_1))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (<= X2 top.res.abs_7_a_0))) - (__node_init_synapse_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) - (__node_init_excludes3_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_s_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e_s1_a_1 Bool) - (top.usr.e_s2_a_1 Bool) - (top.usr.e_s3_a_1 Bool) - (top.usr.init_invalid_s_a_1 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (<= X2 top.res.abs_7_a_1))) - (__node_trans_synapse_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.usr.init_invalid_s_a_1 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_2_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes3_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_s_a_1 - top.res.abs_7_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_s_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e_s1 Bool) -(declare-primed-var top.usr.e_s2 Bool) -(declare-primed-var top.usr.e_s3 Bool) -(declare-primed-var top.usr.init_invalid_s Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_0)) - (and - (= top.usr.OK (=> X1 (<= X2 top.res.abs_7))) - (__node_init_synapse_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) - (__node_init_excludes3_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid_s - top.res.abs_7 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e_s1! Bool) - (top.usr.e_s2! Bool) - (top.usr.e_s3! Bool) - (top.usr.init_invalid_s! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (<= X2 top.res.abs_7!))) - (__node_trans_synapse_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.usr.init_invalid_s! - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_2! - top.res.abs_5 - top.res.abs_6 - top.res.inst_2) - (__node_trans_excludes3_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.res.abs_4! - top.res.inst_1! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid_s! - top.res.abs_7! - top.res.inst_0! - top.usr.init_invalid_s - top.res.abs_7 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes3_0 ((excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_0 (not (or (or (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) (and excludes3.usr.X1_a_0 excludes3.usr.X3_a_0)) (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) excludes3.res.init_flag_a_0)) +(define-fun __node_trans_excludes3_0 ((excludes3.usr.X1_a_1 Bool) (excludes3.usr.X2_a_1 Bool) (excludes3.usr.X3_a_1 Bool) (excludes3.usr.excludes_a_1 Bool) (excludes3.res.init_flag_a_1 Bool) (excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_1 (not (or (or (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) (and excludes3.usr.X1_a_1 excludes3.usr.X3_a_1)) (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) (not excludes3.res.init_flag_a_1))) +(define-fun __node_init_synapse_0 ((synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (and (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) (= synapse.usr.valid_s_a_0 0) (let ((X1 (let ((X1 synapse.res.nondet_0)) (>= X1 1)))) (let ((X2 (let ((X2 synapse.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 synapse.res.nondet_2)) (>= X3 1)))) (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0)))))) +(define-fun __node_trans_synapse_0 ((synapse.usr.e_s1_a_1 Bool) (synapse.usr.e_s2_a_1 Bool) (synapse.usr.e_s3_a_1 Bool) (synapse.usr.init_invalid_s_a_1 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_1 Int) (synapse.usr.valid_s_a_1 Int) (synapse.usr.dirty_s_a_1 Int) (synapse.usr.mem_init_s_a_1 Int) (synapse.res.init_flag_a_1 Bool) (synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= synapse.usr.invalid_s_a_0 1))) (let ((X2 (>= synapse.usr.valid_s_a_0 1))) (let ((X3 (>= synapse.usr.invalid_s_a_0 1))) (and (= synapse.usr.invalid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (- (+ (- synapse.usr.invalid_s_a_0 1) synapse.usr.dirty_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 (- (+ (+ (+ synapse.usr.invalid_s_a_0 1) synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) synapse.usr.invalid_s_a_0)))) (= synapse.usr.valid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 0 synapse.usr.valid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 0 synapse.usr.valid_s_a_0) synapse.usr.valid_s_a_0)))) (= synapse.usr.dirty_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 0 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 1 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 1 synapse.usr.dirty_s_a_0) synapse.usr.dirty_s_a_0)))) (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) (not synapse.res.init_flag_a_1)))))) +(define-fun __node_init_top_0 ((top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (<= X2 top.res.abs_7_a_0))) (__node_init_synapse_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_init_excludes3_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_s_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e_s1_a_1 Bool) (top.usr.e_s2_a_1 Bool) (top.usr.e_s3_a_1 Bool) (top.usr.init_invalid_s_a_1 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (<= X2 top.res.abs_7_a_1))) (__node_trans_synapse_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.usr.init_invalid_s_a_1 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_2_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_trans_excludes3_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_s_a_1 top.res.abs_7_a_1 top.res.inst_0_a_1 top.usr.init_invalid_s_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_0)) (and (= top.usr.OK (=> X1 (<= X2 top.res.abs_7))) (__node_init_synapse_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_init_excludes3_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid_s top.res.abs_7 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e_s1! Bool) (top.usr.e_s2! Bool) (top.usr.e_s3! Bool) (top.usr.init_invalid_s! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (<= X2 top.res.abs_7!))) (__node_trans_synapse_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.usr.init_invalid_s! top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_2! top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_trans_excludes3_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.res.abs_4! top.res.inst_1! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid_s! top.res.abs_7! top.res.inst_0! top.usr.init_invalid_s top.res.abs_7 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/SYNAPSE_6_e3_1666_e5_1558.sl b/benchmarks/LIA/Lustre/SYNAPSE_6_e3_1666_e5_1558.sl index 309cf82..79fcd2e 100644 --- a/benchmarks/LIA/Lustre/SYNAPSE_6_e3_1666_e5_1558.sl +++ b/benchmarks/LIA/Lustre/SYNAPSE_6_e3_1666_e5_1558.sl @@ -1,614 +1,38 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes3_0 ( - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_0 - (not - (or - (or - (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) - (and excludes3.usr.X1_a_0 excludes3.usr.X3_a_0)) - (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) - excludes3.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes3_0 ( - (excludes3.usr.X1_a_1 Bool) - (excludes3.usr.X2_a_1 Bool) - (excludes3.usr.X3_a_1 Bool) - (excludes3.usr.excludes_a_1 Bool) - (excludes3.res.init_flag_a_1 Bool) - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_1 - (not - (or - (or - (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) - (and excludes3.usr.X1_a_1 excludes3.usr.X3_a_1)) - (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) - (not excludes3.res.init_flag_a_1)) -) - -(define-fun - __node_init_synapse_0 ( - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (and - (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) - (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) - (= synapse.usr.valid_s_a_0 0) - (let - ((X1 Bool (let ((X1 Int synapse.res.nondet_0)) (>= X1 1)))) - (let - ((X2 Bool (let ((X2 Int synapse.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int synapse.res.nondet_2)) (>= X3 1)))) - (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_synapse_0 ( - (synapse.usr.e_s1_a_1 Bool) - (synapse.usr.e_s2_a_1 Bool) - (synapse.usr.e_s3_a_1 Bool) - (synapse.usr.init_invalid_s_a_1 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_1 Int) - (synapse.usr.valid_s_a_1 Int) - (synapse.usr.dirty_s_a_1 Int) - (synapse.usr.mem_init_s_a_1 Int) - (synapse.res.init_flag_a_1 Bool) - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= synapse.usr.invalid_s_a_0 1))) - (let - ((X2 Bool (>= synapse.usr.valid_s_a_0 1))) - (let - ((X3 Bool (>= synapse.usr.invalid_s_a_0 1))) - (and - (= - synapse.usr.invalid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite - X3 - (- (- (- synapse.usr.invalid_s_a_0 1) synapse.usr.dirty_s_a_0) 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite - X2 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite - X1 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - synapse.usr.invalid_s_a_0)))) - (= - synapse.usr.valid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 0 synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 0 synapse.usr.valid_s_a_0) - synapse.usr.valid_s_a_0)))) - (= - synapse.usr.dirty_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 0 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 1 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 1 synapse.usr.dirty_s_a_0) - synapse.usr.dirty_s_a_0)))) - (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) - (not synapse.res.init_flag_a_1))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (<= X2 top.res.abs_7_a_0))) - (__node_init_synapse_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) - (__node_init_excludes3_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_s_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e_s1_a_1 Bool) - (top.usr.e_s2_a_1 Bool) - (top.usr.e_s3_a_1 Bool) - (top.usr.init_invalid_s_a_1 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (<= X2 top.res.abs_7_a_1))) - (__node_trans_synapse_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.usr.init_invalid_s_a_1 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_2_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes3_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_s_a_1 - top.res.abs_7_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_s_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e_s1 Bool) -(declare-primed-var top.usr.e_s2 Bool) -(declare-primed-var top.usr.e_s3 Bool) -(declare-primed-var top.usr.init_invalid_s Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_0)) - (and - (= top.usr.OK (=> X1 (<= X2 top.res.abs_7))) - (__node_init_synapse_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) - (__node_init_excludes3_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid_s - top.res.abs_7 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e_s1! Bool) - (top.usr.e_s2! Bool) - (top.usr.e_s3! Bool) - (top.usr.init_invalid_s! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (<= X2 top.res.abs_7!))) - (__node_trans_synapse_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.usr.init_invalid_s! - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_2! - top.res.abs_5 - top.res.abs_6 - top.res.inst_2) - (__node_trans_excludes3_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.res.abs_4! - top.res.inst_1! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid_s! - top.res.abs_7! - top.res.inst_0! - top.usr.init_invalid_s - top.res.abs_7 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes3_0 ((excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_0 (not (or (or (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) (and excludes3.usr.X1_a_0 excludes3.usr.X3_a_0)) (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) excludes3.res.init_flag_a_0)) +(define-fun __node_trans_excludes3_0 ((excludes3.usr.X1_a_1 Bool) (excludes3.usr.X2_a_1 Bool) (excludes3.usr.X3_a_1 Bool) (excludes3.usr.excludes_a_1 Bool) (excludes3.res.init_flag_a_1 Bool) (excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_1 (not (or (or (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) (and excludes3.usr.X1_a_1 excludes3.usr.X3_a_1)) (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) (not excludes3.res.init_flag_a_1))) +(define-fun __node_init_synapse_0 ((synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (and (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) (= synapse.usr.valid_s_a_0 0) (let ((X1 (let ((X1 synapse.res.nondet_0)) (>= X1 1)))) (let ((X2 (let ((X2 synapse.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 synapse.res.nondet_2)) (>= X3 1)))) (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0)))))) +(define-fun __node_trans_synapse_0 ((synapse.usr.e_s1_a_1 Bool) (synapse.usr.e_s2_a_1 Bool) (synapse.usr.e_s3_a_1 Bool) (synapse.usr.init_invalid_s_a_1 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_1 Int) (synapse.usr.valid_s_a_1 Int) (synapse.usr.dirty_s_a_1 Int) (synapse.usr.mem_init_s_a_1 Int) (synapse.res.init_flag_a_1 Bool) (synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= synapse.usr.invalid_s_a_0 1))) (let ((X2 (>= synapse.usr.valid_s_a_0 1))) (let ((X3 (>= synapse.usr.invalid_s_a_0 1))) (and (= synapse.usr.invalid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (- (- (- synapse.usr.invalid_s_a_0 1) synapse.usr.dirty_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) synapse.usr.invalid_s_a_0)))) (= synapse.usr.valid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 0 synapse.usr.valid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 0 synapse.usr.valid_s_a_0) synapse.usr.valid_s_a_0)))) (= synapse.usr.dirty_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 0 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 1 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 1 synapse.usr.dirty_s_a_0) synapse.usr.dirty_s_a_0)))) (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) (not synapse.res.init_flag_a_1)))))) +(define-fun __node_init_top_0 ((top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (<= X2 top.res.abs_7_a_0))) (__node_init_synapse_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_init_excludes3_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_s_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e_s1_a_1 Bool) (top.usr.e_s2_a_1 Bool) (top.usr.e_s3_a_1 Bool) (top.usr.init_invalid_s_a_1 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (<= X2 top.res.abs_7_a_1))) (__node_trans_synapse_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.usr.init_invalid_s_a_1 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_2_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_trans_excludes3_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_s_a_1 top.res.abs_7_a_1 top.res.inst_0_a_1 top.usr.init_invalid_s_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_0)) (and (= top.usr.OK (=> X1 (<= X2 top.res.abs_7))) (__node_init_synapse_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_init_excludes3_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid_s top.res.abs_7 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e_s1! Bool) (top.usr.e_s2! Bool) (top.usr.e_s3! Bool) (top.usr.init_invalid_s! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (<= X2 top.res.abs_7!))) (__node_trans_synapse_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.usr.init_invalid_s! top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_2! top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_trans_excludes3_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.res.abs_4! top.res.inst_1! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid_s! top.res.abs_7! top.res.inst_0! top.usr.init_invalid_s top.res.abs_7 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/SYNAPSE_6_e7_938_e2_1012.sl b/benchmarks/LIA/Lustre/SYNAPSE_6_e7_938_e2_1012.sl index eb0422d..f6bf204 100644 --- a/benchmarks/LIA/Lustre/SYNAPSE_6_e7_938_e2_1012.sl +++ b/benchmarks/LIA/Lustre/SYNAPSE_6_e7_938_e2_1012.sl @@ -1,614 +1,38 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes3_0 ( - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_0 - (not - (or - (or - (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) - (and excludes3.usr.X1_a_0 excludes3.usr.X3_a_0)) - (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) - excludes3.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes3_0 ( - (excludes3.usr.X1_a_1 Bool) - (excludes3.usr.X2_a_1 Bool) - (excludes3.usr.X3_a_1 Bool) - (excludes3.usr.excludes_a_1 Bool) - (excludes3.res.init_flag_a_1 Bool) - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_1 - (not - (or - (or - (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) - (and excludes3.usr.X1_a_1 excludes3.usr.X3_a_1)) - (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) - (not excludes3.res.init_flag_a_1)) -) - -(define-fun - __node_init_synapse_0 ( - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (and - (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) - (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) - (= synapse.usr.valid_s_a_0 0) - (let - ((X1 Bool (let ((X1 Int synapse.res.nondet_0)) (>= X1 1)))) - (let - ((X2 Bool (let ((X2 Int synapse.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int synapse.res.nondet_2)) (>= X3 1)))) - (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_synapse_0 ( - (synapse.usr.e_s1_a_1 Bool) - (synapse.usr.e_s2_a_1 Bool) - (synapse.usr.e_s3_a_1 Bool) - (synapse.usr.init_invalid_s_a_1 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_1 Int) - (synapse.usr.valid_s_a_1 Int) - (synapse.usr.dirty_s_a_1 Int) - (synapse.usr.mem_init_s_a_1 Int) - (synapse.res.init_flag_a_1 Bool) - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= synapse.usr.invalid_s_a_0 1))) - (let - ((X2 Bool (>= synapse.usr.valid_s_a_0 1))) - (let - ((X3 Bool (>= synapse.usr.invalid_s_a_0 1))) - (and - (= - synapse.usr.invalid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite - X3 - (- (+ (- synapse.usr.invalid_s_a_0 1) synapse.usr.dirty_s_a_0) 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite - X2 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite - X1 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - synapse.usr.invalid_s_a_0)))) - (= - synapse.usr.valid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 0 synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 0 synapse.usr.valid_s_a_0) - synapse.usr.valid_s_a_0)))) - (= - synapse.usr.dirty_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 0 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 1 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 1 synapse.usr.dirty_s_a_0) - synapse.usr.dirty_s_a_0)))) - (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) - (not synapse.res.init_flag_a_1))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (<= X2 top.res.abs_7_a_0))) - (__node_init_synapse_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) - (__node_init_excludes3_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_s_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e_s1_a_1 Bool) - (top.usr.e_s2_a_1 Bool) - (top.usr.e_s3_a_1 Bool) - (top.usr.init_invalid_s_a_1 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (<= X2 top.res.abs_7_a_1))) - (__node_trans_synapse_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.usr.init_invalid_s_a_1 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_2_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes3_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_s_a_1 - top.res.abs_7_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_s_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e_s1 Bool) -(declare-primed-var top.usr.e_s2 Bool) -(declare-primed-var top.usr.e_s3 Bool) -(declare-primed-var top.usr.init_invalid_s Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_0)) - (and - (= top.usr.OK (=> X1 (<= X2 top.res.abs_7))) - (__node_init_synapse_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) - (__node_init_excludes3_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid_s - top.res.abs_7 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e_s1! Bool) - (top.usr.e_s2! Bool) - (top.usr.e_s3! Bool) - (top.usr.init_invalid_s! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (<= X2 top.res.abs_7!))) - (__node_trans_synapse_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.usr.init_invalid_s! - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_2! - top.res.abs_5 - top.res.abs_6 - top.res.inst_2) - (__node_trans_excludes3_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.res.abs_4! - top.res.inst_1! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid_s! - top.res.abs_7! - top.res.inst_0! - top.usr.init_invalid_s - top.res.abs_7 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes3_0 ((excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_0 (not (or (or (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) (and excludes3.usr.X1_a_0 excludes3.usr.X3_a_0)) (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) excludes3.res.init_flag_a_0)) +(define-fun __node_trans_excludes3_0 ((excludes3.usr.X1_a_1 Bool) (excludes3.usr.X2_a_1 Bool) (excludes3.usr.X3_a_1 Bool) (excludes3.usr.excludes_a_1 Bool) (excludes3.res.init_flag_a_1 Bool) (excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_1 (not (or (or (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) (and excludes3.usr.X1_a_1 excludes3.usr.X3_a_1)) (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) (not excludes3.res.init_flag_a_1))) +(define-fun __node_init_synapse_0 ((synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (and (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) (= synapse.usr.valid_s_a_0 0) (let ((X1 (let ((X1 synapse.res.nondet_0)) (>= X1 1)))) (let ((X2 (let ((X2 synapse.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 synapse.res.nondet_2)) (>= X3 1)))) (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0)))))) +(define-fun __node_trans_synapse_0 ((synapse.usr.e_s1_a_1 Bool) (synapse.usr.e_s2_a_1 Bool) (synapse.usr.e_s3_a_1 Bool) (synapse.usr.init_invalid_s_a_1 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_1 Int) (synapse.usr.valid_s_a_1 Int) (synapse.usr.dirty_s_a_1 Int) (synapse.usr.mem_init_s_a_1 Int) (synapse.res.init_flag_a_1 Bool) (synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= synapse.usr.invalid_s_a_0 1))) (let ((X2 (>= synapse.usr.valid_s_a_0 1))) (let ((X3 (>= synapse.usr.invalid_s_a_0 1))) (and (= synapse.usr.invalid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (- (+ (- synapse.usr.invalid_s_a_0 1) synapse.usr.dirty_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) synapse.usr.invalid_s_a_0)))) (= synapse.usr.valid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 0 synapse.usr.valid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 0 synapse.usr.valid_s_a_0) synapse.usr.valid_s_a_0)))) (= synapse.usr.dirty_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 0 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 1 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 1 synapse.usr.dirty_s_a_0) synapse.usr.dirty_s_a_0)))) (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) (not synapse.res.init_flag_a_1)))))) +(define-fun __node_init_top_0 ((top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (<= X2 top.res.abs_7_a_0))) (__node_init_synapse_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_init_excludes3_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_s_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e_s1_a_1 Bool) (top.usr.e_s2_a_1 Bool) (top.usr.e_s3_a_1 Bool) (top.usr.init_invalid_s_a_1 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (<= X2 top.res.abs_7_a_1))) (__node_trans_synapse_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.usr.init_invalid_s_a_1 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_2_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_trans_excludes3_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_s_a_1 top.res.abs_7_a_1 top.res.inst_0_a_1 top.usr.init_invalid_s_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_0)) (and (= top.usr.OK (=> X1 (<= X2 top.res.abs_7))) (__node_init_synapse_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_init_excludes3_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid_s top.res.abs_7 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e_s1! Bool) (top.usr.e_s2! Bool) (top.usr.e_s3! Bool) (top.usr.init_invalid_s! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (<= X2 top.res.abs_7!))) (__node_trans_synapse_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.usr.init_invalid_s! top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_2! top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_trans_excludes3_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.res.abs_4! top.res.inst_1! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid_s! top.res.abs_7! top.res.inst_0! top.usr.init_invalid_s top.res.abs_7 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/SYNAPSE_6_e8_1147_e2_1326.sl b/benchmarks/LIA/Lustre/SYNAPSE_6_e8_1147_e2_1326.sl index 2c53ef3..568c8c3 100644 --- a/benchmarks/LIA/Lustre/SYNAPSE_6_e8_1147_e2_1326.sl +++ b/benchmarks/LIA/Lustre/SYNAPSE_6_e8_1147_e2_1326.sl @@ -1,614 +1,38 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes3_0 ( - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_0 - (not - (or - (and - (and (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) excludes3.usr.X1_a_0) - excludes3.usr.X3_a_0) - (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) - excludes3.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes3_0 ( - (excludes3.usr.X1_a_1 Bool) - (excludes3.usr.X2_a_1 Bool) - (excludes3.usr.X3_a_1 Bool) - (excludes3.usr.excludes_a_1 Bool) - (excludes3.res.init_flag_a_1 Bool) - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_1 - (not - (or - (and - (and (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) excludes3.usr.X1_a_1) - excludes3.usr.X3_a_1) - (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) - (not excludes3.res.init_flag_a_1)) -) - -(define-fun - __node_init_synapse_0 ( - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (and - (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) - (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) - (= synapse.usr.valid_s_a_0 0) - (let - ((X1 Bool (let ((X1 Int synapse.res.nondet_0)) (>= X1 1)))) - (let - ((X2 Bool (let ((X2 Int synapse.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int synapse.res.nondet_2)) (>= X3 1)))) - (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_synapse_0 ( - (synapse.usr.e_s1_a_1 Bool) - (synapse.usr.e_s2_a_1 Bool) - (synapse.usr.e_s3_a_1 Bool) - (synapse.usr.init_invalid_s_a_1 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_1 Int) - (synapse.usr.valid_s_a_1 Int) - (synapse.usr.dirty_s_a_1 Int) - (synapse.usr.mem_init_s_a_1 Int) - (synapse.res.init_flag_a_1 Bool) - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= synapse.usr.invalid_s_a_0 1))) - (let - ((X2 Bool (>= synapse.usr.valid_s_a_0 1))) - (let - ((X3 Bool (>= synapse.usr.invalid_s_a_0 1))) - (and - (= - synapse.usr.invalid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite - X3 - (- (+ (- synapse.usr.invalid_s_a_0 1) synapse.usr.dirty_s_a_0) 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite - X2 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite - X1 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - synapse.usr.invalid_s_a_0)))) - (= - synapse.usr.valid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 0 synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 0 synapse.usr.valid_s_a_0) - synapse.usr.valid_s_a_0)))) - (= - synapse.usr.dirty_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 0 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 1 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 1 synapse.usr.dirty_s_a_0) - synapse.usr.dirty_s_a_0)))) - (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) - (not synapse.res.init_flag_a_1))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (<= X2 top.res.abs_7_a_0))) - (__node_init_synapse_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) - (__node_init_excludes3_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_s_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e_s1_a_1 Bool) - (top.usr.e_s2_a_1 Bool) - (top.usr.e_s3_a_1 Bool) - (top.usr.init_invalid_s_a_1 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (<= X2 top.res.abs_7_a_1))) - (__node_trans_synapse_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.usr.init_invalid_s_a_1 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_2_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes3_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_s_a_1 - top.res.abs_7_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_s_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e_s1 Bool) -(declare-primed-var top.usr.e_s2 Bool) -(declare-primed-var top.usr.e_s3 Bool) -(declare-primed-var top.usr.init_invalid_s Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_0)) - (and - (= top.usr.OK (=> X1 (<= X2 top.res.abs_7))) - (__node_init_synapse_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) - (__node_init_excludes3_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid_s - top.res.abs_7 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e_s1! Bool) - (top.usr.e_s2! Bool) - (top.usr.e_s3! Bool) - (top.usr.init_invalid_s! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (<= X2 top.res.abs_7!))) - (__node_trans_synapse_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.usr.init_invalid_s! - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_2! - top.res.abs_5 - top.res.abs_6 - top.res.inst_2) - (__node_trans_excludes3_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.res.abs_4! - top.res.inst_1! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid_s! - top.res.abs_7! - top.res.inst_0! - top.usr.init_invalid_s - top.res.abs_7 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes3_0 ((excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_0 (not (or (and (and (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) excludes3.usr.X1_a_0) excludes3.usr.X3_a_0) (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) excludes3.res.init_flag_a_0)) +(define-fun __node_trans_excludes3_0 ((excludes3.usr.X1_a_1 Bool) (excludes3.usr.X2_a_1 Bool) (excludes3.usr.X3_a_1 Bool) (excludes3.usr.excludes_a_1 Bool) (excludes3.res.init_flag_a_1 Bool) (excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_1 (not (or (and (and (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) excludes3.usr.X1_a_1) excludes3.usr.X3_a_1) (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) (not excludes3.res.init_flag_a_1))) +(define-fun __node_init_synapse_0 ((synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (and (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) (= synapse.usr.valid_s_a_0 0) (let ((X1 (let ((X1 synapse.res.nondet_0)) (>= X1 1)))) (let ((X2 (let ((X2 synapse.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 synapse.res.nondet_2)) (>= X3 1)))) (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0)))))) +(define-fun __node_trans_synapse_0 ((synapse.usr.e_s1_a_1 Bool) (synapse.usr.e_s2_a_1 Bool) (synapse.usr.e_s3_a_1 Bool) (synapse.usr.init_invalid_s_a_1 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_1 Int) (synapse.usr.valid_s_a_1 Int) (synapse.usr.dirty_s_a_1 Int) (synapse.usr.mem_init_s_a_1 Int) (synapse.res.init_flag_a_1 Bool) (synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= synapse.usr.invalid_s_a_0 1))) (let ((X2 (>= synapse.usr.valid_s_a_0 1))) (let ((X3 (>= synapse.usr.invalid_s_a_0 1))) (and (= synapse.usr.invalid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (- (+ (- synapse.usr.invalid_s_a_0 1) synapse.usr.dirty_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) synapse.usr.invalid_s_a_0)))) (= synapse.usr.valid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 0 synapse.usr.valid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 0 synapse.usr.valid_s_a_0) synapse.usr.valid_s_a_0)))) (= synapse.usr.dirty_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 0 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 1 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 1 synapse.usr.dirty_s_a_0) synapse.usr.dirty_s_a_0)))) (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) (not synapse.res.init_flag_a_1)))))) +(define-fun __node_init_top_0 ((top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (<= X2 top.res.abs_7_a_0))) (__node_init_synapse_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_init_excludes3_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_s_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e_s1_a_1 Bool) (top.usr.e_s2_a_1 Bool) (top.usr.e_s3_a_1 Bool) (top.usr.init_invalid_s_a_1 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (<= X2 top.res.abs_7_a_1))) (__node_trans_synapse_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.usr.init_invalid_s_a_1 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_2_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_trans_excludes3_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_s_a_1 top.res.abs_7_a_1 top.res.inst_0_a_1 top.usr.init_invalid_s_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_0)) (and (= top.usr.OK (=> X1 (<= X2 top.res.abs_7))) (__node_init_synapse_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_init_excludes3_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid_s top.res.abs_7 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e_s1! Bool) (top.usr.e_s2! Bool) (top.usr.e_s3! Bool) (top.usr.init_invalid_s! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (<= X2 top.res.abs_7!))) (__node_trans_synapse_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.usr.init_invalid_s! top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_2! top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_trans_excludes3_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.res.abs_4! top.res.inst_1! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid_s! top.res.abs_7! top.res.inst_0! top.usr.init_invalid_s top.res.abs_7 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/SYNAPSE_all.sl b/benchmarks/LIA/Lustre/SYNAPSE_all.sl index fabd7cc..093bd75 100644 --- a/benchmarks/LIA/Lustre/SYNAPSE_all.sl +++ b/benchmarks/LIA/Lustre/SYNAPSE_all.sl @@ -1,674 +1,38 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes3_0 ( - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_0 - (not - (or - (or - (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) - (and excludes3.usr.X1_a_0 excludes3.usr.X3_a_0)) - (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) - excludes3.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes3_0 ( - (excludes3.usr.X1_a_1 Bool) - (excludes3.usr.X2_a_1 Bool) - (excludes3.usr.X3_a_1 Bool) - (excludes3.usr.excludes_a_1 Bool) - (excludes3.res.init_flag_a_1 Bool) - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_1 - (not - (or - (or - (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) - (and excludes3.usr.X1_a_1 excludes3.usr.X3_a_1)) - (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) - (not excludes3.res.init_flag_a_1)) -) - -(define-fun - __node_init_synapse_0 ( - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (and - (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) - (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) - (= synapse.usr.valid_s_a_0 0) - (let - ((X1 Bool (let ((X1 Int synapse.res.nondet_0)) (>= X1 1)))) - (let - ((X2 Bool (let ((X2 Int synapse.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int synapse.res.nondet_2)) (>= X3 1)))) - (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_synapse_0 ( - (synapse.usr.e_s1_a_1 Bool) - (synapse.usr.e_s2_a_1 Bool) - (synapse.usr.e_s3_a_1 Bool) - (synapse.usr.init_invalid_s_a_1 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_1 Int) - (synapse.usr.valid_s_a_1 Int) - (synapse.usr.dirty_s_a_1 Int) - (synapse.usr.mem_init_s_a_1 Int) - (synapse.res.init_flag_a_1 Bool) - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= synapse.usr.invalid_s_a_0 1))) - (let - ((X2 Bool (>= synapse.usr.valid_s_a_0 1))) - (let - ((X3 Bool (>= synapse.usr.invalid_s_a_0 1))) - (and - (= - synapse.usr.invalid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite - X3 - (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite - X2 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite - X1 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - synapse.usr.invalid_s_a_0)))) - (= - synapse.usr.valid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 0 synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 0 synapse.usr.valid_s_a_0) - synapse.usr.valid_s_a_0)))) - (= - synapse.usr.dirty_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 0 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 1 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 1 synapse.usr.dirty_s_a_0) - synapse.usr.dirty_s_a_0)))) - (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) - (not synapse.res.init_flag_a_1))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (let - ((X3 Int top.res.abs_1_a_0)) - (let - ((X4 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (and - (and (< X2 2) (= (+ (+ X4 X3) X2) top.res.abs_8_a_0)) - (or (< X2 1) (< X3 1))))) - (= top.res.abs_7_a_0 (+ (+ X4 X3) X2)) - (__node_init_synapse_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_init_excludes3_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_s_a_0 - top.res.abs_8_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e_s1_a_1 Bool) - (top.usr.e_s2_a_1 Bool) - (top.usr.e_s3_a_1 Bool) - (top.usr.init_invalid_s_a_1 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (let - ((X3 Int top.res.abs_1_a_1)) - (let - ((X4 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (and - (and - (and (< X2 2) (= (+ (+ X4 X3) X2) top.res.abs_7_a_0)) - (= (+ (+ X4 X3) X2) top.res.abs_8_a_1)) - (or (< X2 1) (< X3 1))))) - (= top.res.abs_7_a_1 (+ (+ X4 X3) X2)) - (__node_trans_synapse_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.usr.init_invalid_s_a_1 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_2_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes3_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_s_a_1 - top.res.abs_8_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_s_a_0 - top.res.abs_8_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e_s1 Bool) -(declare-primed-var top.usr.e_s2 Bool) -(declare-primed-var top.usr.e_s3 Bool) -(declare-primed-var top.usr.init_invalid_s Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_2)) - (let - ((X3 Int top.res.abs_1)) - (let - ((X4 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> - X1 - (and - (and (< X2 2) (= (+ (+ X4 X3) X2) top.res.abs_8)) - (or (< X2 1) (< X3 1))))) - (= top.res.abs_7 (+ (+ X4 X3) X2)) - (__node_init_synapse_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) - (__node_init_excludes3_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid_s - top.res.abs_8 - top.res.inst_0) - top.res.init_flag)))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e_s1! Bool) - (top.usr.e_s2! Bool) - (top.usr.e_s3! Bool) - (top.usr.init_invalid_s! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_2!)) - (let - ((X3 Int top.res.abs_1!)) - (let - ((X4 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> - X1 - (and - (and - (and (< X2 2) (= (+ (+ X4 X3) X2) top.res.abs_7)) - (= (+ (+ X4 X3) X2) top.res.abs_8!)) - (or (< X2 1) (< X3 1))))) - (= top.res.abs_7! (+ (+ X4 X3) X2)) - (__node_trans_synapse_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.usr.init_invalid_s! - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_2! - top.res.abs_5 - top.res.abs_6 - top.res.inst_2) - (__node_trans_excludes3_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.res.abs_4! - top.res.inst_1! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid_s! - top.res.abs_8! - top.res.inst_0! - top.usr.init_invalid_s - top.res.abs_8 - top.res.inst_0) - (not top.res.init_flag!))))))) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes3_0 ((excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_0 (not (or (or (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) (and excludes3.usr.X1_a_0 excludes3.usr.X3_a_0)) (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) excludes3.res.init_flag_a_0)) +(define-fun __node_trans_excludes3_0 ((excludes3.usr.X1_a_1 Bool) (excludes3.usr.X2_a_1 Bool) (excludes3.usr.X3_a_1 Bool) (excludes3.usr.excludes_a_1 Bool) (excludes3.res.init_flag_a_1 Bool) (excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_1 (not (or (or (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) (and excludes3.usr.X1_a_1 excludes3.usr.X3_a_1)) (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) (not excludes3.res.init_flag_a_1))) +(define-fun __node_init_synapse_0 ((synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (and (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) (= synapse.usr.valid_s_a_0 0) (let ((X1 (let ((X1 synapse.res.nondet_0)) (>= X1 1)))) (let ((X2 (let ((X2 synapse.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 synapse.res.nondet_2)) (>= X3 1)))) (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0)))))) +(define-fun __node_trans_synapse_0 ((synapse.usr.e_s1_a_1 Bool) (synapse.usr.e_s2_a_1 Bool) (synapse.usr.e_s3_a_1 Bool) (synapse.usr.init_invalid_s_a_1 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_1 Int) (synapse.usr.valid_s_a_1 Int) (synapse.usr.dirty_s_a_1 Int) (synapse.usr.mem_init_s_a_1 Int) (synapse.res.init_flag_a_1 Bool) (synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= synapse.usr.invalid_s_a_0 1))) (let ((X2 (>= synapse.usr.valid_s_a_0 1))) (let ((X3 (>= synapse.usr.invalid_s_a_0 1))) (and (= synapse.usr.invalid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) synapse.usr.invalid_s_a_0)))) (= synapse.usr.valid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 0 synapse.usr.valid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 0 synapse.usr.valid_s_a_0) synapse.usr.valid_s_a_0)))) (= synapse.usr.dirty_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 0 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 1 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 1 synapse.usr.dirty_s_a_0) synapse.usr.dirty_s_a_0)))) (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) (not synapse.res.init_flag_a_1)))))) +(define-fun __node_init_top_0 ((top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_2_a_0)) (let ((X3 top.res.abs_1_a_0)) (let ((X4 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (and (< X2 2) (= (+ (+ X4 X3) X2) top.res.abs_8_a_0)) (or (< X2 1) (< X3 1))))) (= top.res.abs_7_a_0 (+ (+ X4 X3) X2)) (__node_init_synapse_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_init_excludes3_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_s_a_0 top.res.abs_8_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))) +(define-fun __node_trans_top_0 ((top.usr.e_s1_a_1 Bool) (top.usr.e_s2_a_1 Bool) (top.usr.e_s3_a_1 Bool) (top.usr.init_invalid_s_a_1 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_2_a_1)) (let ((X3 top.res.abs_1_a_1)) (let ((X4 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (and (and (< X2 2) (= (+ (+ X4 X3) X2) top.res.abs_7_a_0)) (= (+ (+ X4 X3) X2) top.res.abs_8_a_1)) (or (< X2 1) (< X3 1))))) (= top.res.abs_7_a_1 (+ (+ X4 X3) X2)) (__node_trans_synapse_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.usr.init_invalid_s_a_1 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_2_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_trans_excludes3_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_s_a_1 top.res.abs_8_a_1 top.res.inst_0_a_1 top.usr.init_invalid_s_a_0 top.res.abs_8_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_2)) (let ((X3 top.res.abs_1)) (let ((X4 top.res.abs_0)) (and (= top.usr.OK (=> X1 (and (and (< X2 2) (= (+ (+ X4 X3) X2) top.res.abs_8)) (or (< X2 1) (< X3 1))))) (= top.res.abs_7 (+ (+ X4 X3) X2)) (__node_init_synapse_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_init_excludes3_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid_s top.res.abs_8 top.res.inst_0) top.res.init_flag))))))) +(define-fun trans ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e_s1! Bool) (top.usr.e_s2! Bool) (top.usr.e_s3! Bool) (top.usr.init_invalid_s! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_2!)) (let ((X3 top.res.abs_1!)) (let ((X4 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (and (and (< X2 2) (= (+ (+ X4 X3) X2) top.res.abs_7)) (= (+ (+ X4 X3) X2) top.res.abs_8!)) (or (< X2 1) (< X3 1))))) (= top.res.abs_7! (+ (+ X4 X3) X2)) (__node_trans_synapse_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.usr.init_invalid_s! top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_2! top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_trans_excludes3_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.res.abs_4! top.res.inst_1! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid_s! top.res.abs_8! top.res.inst_0! top.usr.init_invalid_s top.res.abs_8 top.res.inst_0) (not top.res.init_flag!))))))) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/SYNAPSE_all_e7_907.sl b/benchmarks/LIA/Lustre/SYNAPSE_all_e7_907.sl index 7956eb9..c0cf7f4 100644 --- a/benchmarks/LIA/Lustre/SYNAPSE_all_e7_907.sl +++ b/benchmarks/LIA/Lustre/SYNAPSE_all_e7_907.sl @@ -1,674 +1,38 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes3_0 ( - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_0 - (not - (or - (or - (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) - (and excludes3.usr.X1_a_0 excludes3.usr.X3_a_0)) - (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) - excludes3.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes3_0 ( - (excludes3.usr.X1_a_1 Bool) - (excludes3.usr.X2_a_1 Bool) - (excludes3.usr.X3_a_1 Bool) - (excludes3.usr.excludes_a_1 Bool) - (excludes3.res.init_flag_a_1 Bool) - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_1 - (not - (or - (or - (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) - (and excludes3.usr.X1_a_1 excludes3.usr.X3_a_1)) - (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) - (not excludes3.res.init_flag_a_1)) -) - -(define-fun - __node_init_synapse_0 ( - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (and - (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) - (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) - (= synapse.usr.valid_s_a_0 0) - (let - ((X1 Bool (let ((X1 Int synapse.res.nondet_0)) (>= X1 1)))) - (let - ((X2 Bool (let ((X2 Int synapse.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int synapse.res.nondet_2)) (>= X3 1)))) - (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_synapse_0 ( - (synapse.usr.e_s1_a_1 Bool) - (synapse.usr.e_s2_a_1 Bool) - (synapse.usr.e_s3_a_1 Bool) - (synapse.usr.init_invalid_s_a_1 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_1 Int) - (synapse.usr.valid_s_a_1 Int) - (synapse.usr.dirty_s_a_1 Int) - (synapse.usr.mem_init_s_a_1 Int) - (synapse.res.init_flag_a_1 Bool) - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= synapse.usr.invalid_s_a_0 1))) - (let - ((X2 Bool (>= synapse.usr.valid_s_a_0 1))) - (let - ((X3 Bool (>= synapse.usr.invalid_s_a_0 1))) - (and - (= - synapse.usr.invalid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite - X3 - (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite - X2 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite - X1 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - synapse.usr.invalid_s_a_0)))) - (= - synapse.usr.valid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 0 synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 0 synapse.usr.valid_s_a_0) - synapse.usr.valid_s_a_0)))) - (= - synapse.usr.dirty_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 0 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 1 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 1 synapse.usr.dirty_s_a_0) - synapse.usr.dirty_s_a_0)))) - (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) - (not synapse.res.init_flag_a_1))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (let - ((X3 Int top.res.abs_1_a_0)) - (let - ((X4 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (and - (and (< X2 2) (= (+ (+ X4 X3) X2) top.res.abs_8_a_0)) - (or (< X2 1) (< X3 1))))) - (= top.res.abs_7_a_0 (+ (+ X4 X3) X2)) - (__node_init_synapse_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_init_excludes3_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_s_a_0 - top.res.abs_8_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e_s1_a_1 Bool) - (top.usr.e_s2_a_1 Bool) - (top.usr.e_s3_a_1 Bool) - (top.usr.init_invalid_s_a_1 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (let - ((X3 Int top.res.abs_1_a_1)) - (let - ((X4 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (and - (and - (and (< X2 2) (= (+ (+ X4 X3) X2) top.res.abs_7_a_0)) - (= (+ (+ X4 X3) X2) top.res.abs_8_a_1)) - (or (< X2 1) (< X3 1))))) - (= top.res.abs_7_a_1 (+ (+ X4 X3) X2)) - (__node_trans_synapse_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.usr.init_invalid_s_a_1 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_2_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes3_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_s_a_1 - top.res.abs_8_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_s_a_0 - top.res.abs_8_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e_s1 Bool) -(declare-primed-var top.usr.e_s2 Bool) -(declare-primed-var top.usr.e_s3 Bool) -(declare-primed-var top.usr.init_invalid_s Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_2)) - (let - ((X3 Int top.res.abs_1)) - (let - ((X4 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> - X1 - (and - (and (< X2 2) (= (+ (+ X4 X3) X2) top.res.abs_8)) - (or (< X2 1) (< X3 1))))) - (= top.res.abs_7 (+ (+ X4 X3) X2)) - (__node_init_synapse_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) - (__node_init_excludes3_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid_s - top.res.abs_8 - top.res.inst_0) - top.res.init_flag)))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e_s1! Bool) - (top.usr.e_s2! Bool) - (top.usr.e_s3! Bool) - (top.usr.init_invalid_s! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_2!)) - (let - ((X3 Int top.res.abs_1!)) - (let - ((X4 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> - X1 - (and - (and - (and (< X2 2) (= (+ (+ X4 X3) X2) top.res.abs_7)) - (= (+ (+ X4 X3) X2) top.res.abs_8!)) - (or (< X2 1) (< X3 1))))) - (= top.res.abs_7! (+ (+ X4 X3) X2)) - (__node_trans_synapse_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.usr.init_invalid_s! - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_2! - top.res.abs_5 - top.res.abs_6 - top.res.inst_2) - (__node_trans_excludes3_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.res.abs_4! - top.res.inst_1! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid_s! - top.res.abs_8! - top.res.inst_0! - top.usr.init_invalid_s - top.res.abs_8 - top.res.inst_0) - (not top.res.init_flag!))))))) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes3_0 ((excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_0 (not (or (or (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) (and excludes3.usr.X1_a_0 excludes3.usr.X3_a_0)) (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) excludes3.res.init_flag_a_0)) +(define-fun __node_trans_excludes3_0 ((excludes3.usr.X1_a_1 Bool) (excludes3.usr.X2_a_1 Bool) (excludes3.usr.X3_a_1 Bool) (excludes3.usr.excludes_a_1 Bool) (excludes3.res.init_flag_a_1 Bool) (excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_1 (not (or (or (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) (and excludes3.usr.X1_a_1 excludes3.usr.X3_a_1)) (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) (not excludes3.res.init_flag_a_1))) +(define-fun __node_init_synapse_0 ((synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (and (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) (= synapse.usr.valid_s_a_0 0) (let ((X1 (let ((X1 synapse.res.nondet_0)) (>= X1 1)))) (let ((X2 (let ((X2 synapse.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 synapse.res.nondet_2)) (>= X3 1)))) (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0)))))) +(define-fun __node_trans_synapse_0 ((synapse.usr.e_s1_a_1 Bool) (synapse.usr.e_s2_a_1 Bool) (synapse.usr.e_s3_a_1 Bool) (synapse.usr.init_invalid_s_a_1 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_1 Int) (synapse.usr.valid_s_a_1 Int) (synapse.usr.dirty_s_a_1 Int) (synapse.usr.mem_init_s_a_1 Int) (synapse.res.init_flag_a_1 Bool) (synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= synapse.usr.invalid_s_a_0 1))) (let ((X2 (>= synapse.usr.valid_s_a_0 1))) (let ((X3 (>= synapse.usr.invalid_s_a_0 1))) (and (= synapse.usr.invalid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) synapse.usr.invalid_s_a_0)))) (= synapse.usr.valid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 0 synapse.usr.valid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 0 synapse.usr.valid_s_a_0) synapse.usr.valid_s_a_0)))) (= synapse.usr.dirty_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 0 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 1 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 1 synapse.usr.dirty_s_a_0) synapse.usr.dirty_s_a_0)))) (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) (not synapse.res.init_flag_a_1)))))) +(define-fun __node_init_top_0 ((top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_2_a_0)) (let ((X3 top.res.abs_1_a_0)) (let ((X4 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (and (< X2 2) (= (+ (+ X4 X3) X2) top.res.abs_8_a_0)) (or (< X2 1) (< X3 1))))) (= top.res.abs_7_a_0 (+ (+ X4 X3) X2)) (__node_init_synapse_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_init_excludes3_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_s_a_0 top.res.abs_8_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))) +(define-fun __node_trans_top_0 ((top.usr.e_s1_a_1 Bool) (top.usr.e_s2_a_1 Bool) (top.usr.e_s3_a_1 Bool) (top.usr.init_invalid_s_a_1 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_2_a_1)) (let ((X3 top.res.abs_1_a_1)) (let ((X4 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (and (and (< X2 2) (= (+ (+ X4 X3) X2) top.res.abs_7_a_0)) (= (+ (+ X4 X3) X2) top.res.abs_8_a_1)) (or (< X2 1) (< X3 1))))) (= top.res.abs_7_a_1 (+ (+ X4 X3) X2)) (__node_trans_synapse_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.usr.init_invalid_s_a_1 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_2_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_trans_excludes3_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_s_a_1 top.res.abs_8_a_1 top.res.inst_0_a_1 top.usr.init_invalid_s_a_0 top.res.abs_8_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_2)) (let ((X3 top.res.abs_1)) (let ((X4 top.res.abs_0)) (and (= top.usr.OK (=> X1 (and (and (< X2 2) (= (+ (+ X4 X3) X2) top.res.abs_8)) (or (< X2 1) (< X3 1))))) (= top.res.abs_7 (+ (+ X4 X3) X2)) (__node_init_synapse_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_init_excludes3_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid_s top.res.abs_8 top.res.inst_0) top.res.init_flag))))))) +(define-fun trans ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e_s1! Bool) (top.usr.e_s2! Bool) (top.usr.e_s3! Bool) (top.usr.init_invalid_s! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_2!)) (let ((X3 top.res.abs_1!)) (let ((X4 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (and (and (< X2 2) (= (+ (+ X4 X3) X2) top.res.abs_7)) (= (+ (+ X4 X3) X2) top.res.abs_8!)) (or (< X2 1) (< X3 1))))) (= top.res.abs_7! (+ (+ X4 X3) X2)) (__node_trans_synapse_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.usr.init_invalid_s! top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_2! top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_trans_excludes3_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.res.abs_4! top.res.inst_1! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid_s! top.res.abs_8! top.res.inst_0! top.usr.init_invalid_s top.res.abs_8 top.res.inst_0) (not top.res.init_flag!))))))) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/SYNAPSE_all_e7_907_e7_1363.sl b/benchmarks/LIA/Lustre/SYNAPSE_all_e7_907_e7_1363.sl index 382e078..07f3c82 100644 --- a/benchmarks/LIA/Lustre/SYNAPSE_all_e7_907_e7_1363.sl +++ b/benchmarks/LIA/Lustre/SYNAPSE_all_e7_907_e7_1363.sl @@ -1,674 +1,38 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes3_0 ( - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_0 - (not - (or - (or - (or excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) - (and excludes3.usr.X1_a_0 excludes3.usr.X3_a_0)) - (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) - excludes3.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes3_0 ( - (excludes3.usr.X1_a_1 Bool) - (excludes3.usr.X2_a_1 Bool) - (excludes3.usr.X3_a_1 Bool) - (excludes3.usr.excludes_a_1 Bool) - (excludes3.res.init_flag_a_1 Bool) - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_1 - (not - (or - (or - (or excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) - (and excludes3.usr.X1_a_1 excludes3.usr.X3_a_1)) - (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) - (not excludes3.res.init_flag_a_1)) -) - -(define-fun - __node_init_synapse_0 ( - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (and - (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) - (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) - (= synapse.usr.valid_s_a_0 0) - (let - ((X1 Bool (let ((X1 Int synapse.res.nondet_0)) (>= X1 1)))) - (let - ((X2 Bool (let ((X2 Int synapse.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int synapse.res.nondet_2)) (>= X3 1)))) - (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_synapse_0 ( - (synapse.usr.e_s1_a_1 Bool) - (synapse.usr.e_s2_a_1 Bool) - (synapse.usr.e_s3_a_1 Bool) - (synapse.usr.init_invalid_s_a_1 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_1 Int) - (synapse.usr.valid_s_a_1 Int) - (synapse.usr.dirty_s_a_1 Int) - (synapse.usr.mem_init_s_a_1 Int) - (synapse.res.init_flag_a_1 Bool) - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= synapse.usr.invalid_s_a_0 1))) - (let - ((X2 Bool (>= synapse.usr.valid_s_a_0 1))) - (let - ((X3 Bool (>= synapse.usr.invalid_s_a_0 1))) - (and - (= - synapse.usr.invalid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite - X3 - (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite - X2 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite - X1 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - synapse.usr.invalid_s_a_0)))) - (= - synapse.usr.valid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 0 synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 0 synapse.usr.valid_s_a_0) - synapse.usr.valid_s_a_0)))) - (= - synapse.usr.dirty_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 0 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 1 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 1 synapse.usr.dirty_s_a_0) - synapse.usr.dirty_s_a_0)))) - (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) - (not synapse.res.init_flag_a_1))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (let - ((X3 Int top.res.abs_1_a_0)) - (let - ((X4 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (and - (and (< X2 2) (= (+ (+ X4 X3) X2) top.res.abs_8_a_0)) - (or (< X2 1) (< X3 1))))) - (= top.res.abs_7_a_0 (+ (+ X4 X3) X2)) - (__node_init_synapse_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_init_excludes3_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_s_a_0 - top.res.abs_8_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e_s1_a_1 Bool) - (top.usr.e_s2_a_1 Bool) - (top.usr.e_s3_a_1 Bool) - (top.usr.init_invalid_s_a_1 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (let - ((X3 Int top.res.abs_1_a_1)) - (let - ((X4 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (and - (and - (and (< X2 2) (= (+ (+ X4 X3) X2) top.res.abs_7_a_0)) - (= (+ (+ X4 X3) X2) top.res.abs_8_a_1)) - (or (< X2 1) (< X3 1))))) - (= top.res.abs_7_a_1 (+ (+ X4 X3) X2)) - (__node_trans_synapse_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.usr.init_invalid_s_a_1 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_2_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes3_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_s_a_1 - top.res.abs_8_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_s_a_0 - top.res.abs_8_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e_s1 Bool) -(declare-primed-var top.usr.e_s2 Bool) -(declare-primed-var top.usr.e_s3 Bool) -(declare-primed-var top.usr.init_invalid_s Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_2)) - (let - ((X3 Int top.res.abs_1)) - (let - ((X4 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> - X1 - (and - (and (< X2 2) (= (+ (+ X4 X3) X2) top.res.abs_8)) - (or (< X2 1) (< X3 1))))) - (= top.res.abs_7 (+ (+ X4 X3) X2)) - (__node_init_synapse_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) - (__node_init_excludes3_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid_s - top.res.abs_8 - top.res.inst_0) - top.res.init_flag)))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e_s1! Bool) - (top.usr.e_s2! Bool) - (top.usr.e_s3! Bool) - (top.usr.init_invalid_s! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_2!)) - (let - ((X3 Int top.res.abs_1!)) - (let - ((X4 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> - X1 - (and - (and - (and (< X2 2) (= (+ (+ X4 X3) X2) top.res.abs_7)) - (= (+ (+ X4 X3) X2) top.res.abs_8!)) - (or (< X2 1) (< X3 1))))) - (= top.res.abs_7! (+ (+ X4 X3) X2)) - (__node_trans_synapse_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.usr.init_invalid_s! - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_2! - top.res.abs_5 - top.res.abs_6 - top.res.inst_2) - (__node_trans_excludes3_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.res.abs_4! - top.res.inst_1! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid_s! - top.res.abs_8! - top.res.inst_0! - top.usr.init_invalid_s - top.res.abs_8 - top.res.inst_0) - (not top.res.init_flag!))))))) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes3_0 ((excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_0 (not (or (or (or excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) (and excludes3.usr.X1_a_0 excludes3.usr.X3_a_0)) (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) excludes3.res.init_flag_a_0)) +(define-fun __node_trans_excludes3_0 ((excludes3.usr.X1_a_1 Bool) (excludes3.usr.X2_a_1 Bool) (excludes3.usr.X3_a_1 Bool) (excludes3.usr.excludes_a_1 Bool) (excludes3.res.init_flag_a_1 Bool) (excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_1 (not (or (or (or excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) (and excludes3.usr.X1_a_1 excludes3.usr.X3_a_1)) (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) (not excludes3.res.init_flag_a_1))) +(define-fun __node_init_synapse_0 ((synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (and (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) (= synapse.usr.valid_s_a_0 0) (let ((X1 (let ((X1 synapse.res.nondet_0)) (>= X1 1)))) (let ((X2 (let ((X2 synapse.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 synapse.res.nondet_2)) (>= X3 1)))) (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0)))))) +(define-fun __node_trans_synapse_0 ((synapse.usr.e_s1_a_1 Bool) (synapse.usr.e_s2_a_1 Bool) (synapse.usr.e_s3_a_1 Bool) (synapse.usr.init_invalid_s_a_1 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_1 Int) (synapse.usr.valid_s_a_1 Int) (synapse.usr.dirty_s_a_1 Int) (synapse.usr.mem_init_s_a_1 Int) (synapse.res.init_flag_a_1 Bool) (synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= synapse.usr.invalid_s_a_0 1))) (let ((X2 (>= synapse.usr.valid_s_a_0 1))) (let ((X3 (>= synapse.usr.invalid_s_a_0 1))) (and (= synapse.usr.invalid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) synapse.usr.invalid_s_a_0)))) (= synapse.usr.valid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 0 synapse.usr.valid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 0 synapse.usr.valid_s_a_0) synapse.usr.valid_s_a_0)))) (= synapse.usr.dirty_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 0 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 1 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 1 synapse.usr.dirty_s_a_0) synapse.usr.dirty_s_a_0)))) (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) (not synapse.res.init_flag_a_1)))))) +(define-fun __node_init_top_0 ((top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_2_a_0)) (let ((X3 top.res.abs_1_a_0)) (let ((X4 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (and (< X2 2) (= (+ (+ X4 X3) X2) top.res.abs_8_a_0)) (or (< X2 1) (< X3 1))))) (= top.res.abs_7_a_0 (+ (+ X4 X3) X2)) (__node_init_synapse_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_init_excludes3_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_s_a_0 top.res.abs_8_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))) +(define-fun __node_trans_top_0 ((top.usr.e_s1_a_1 Bool) (top.usr.e_s2_a_1 Bool) (top.usr.e_s3_a_1 Bool) (top.usr.init_invalid_s_a_1 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_2_a_1)) (let ((X3 top.res.abs_1_a_1)) (let ((X4 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (and (and (< X2 2) (= (+ (+ X4 X3) X2) top.res.abs_7_a_0)) (= (+ (+ X4 X3) X2) top.res.abs_8_a_1)) (or (< X2 1) (< X3 1))))) (= top.res.abs_7_a_1 (+ (+ X4 X3) X2)) (__node_trans_synapse_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.usr.init_invalid_s_a_1 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_2_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_trans_excludes3_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_s_a_1 top.res.abs_8_a_1 top.res.inst_0_a_1 top.usr.init_invalid_s_a_0 top.res.abs_8_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_2)) (let ((X3 top.res.abs_1)) (let ((X4 top.res.abs_0)) (and (= top.usr.OK (=> X1 (and (and (< X2 2) (= (+ (+ X4 X3) X2) top.res.abs_8)) (or (< X2 1) (< X3 1))))) (= top.res.abs_7 (+ (+ X4 X3) X2)) (__node_init_synapse_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_init_excludes3_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid_s top.res.abs_8 top.res.inst_0) top.res.init_flag))))))) +(define-fun trans ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e_s1! Bool) (top.usr.e_s2! Bool) (top.usr.e_s3! Bool) (top.usr.init_invalid_s! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_2!)) (let ((X3 top.res.abs_1!)) (let ((X4 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (and (and (< X2 2) (= (+ (+ X4 X3) X2) top.res.abs_7)) (= (+ (+ X4 X3) X2) top.res.abs_8!)) (or (< X2 1) (< X3 1))))) (= top.res.abs_7! (+ (+ X4 X3) X2)) (__node_trans_synapse_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.usr.init_invalid_s! top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_2! top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_trans_excludes3_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.res.abs_4! top.res.inst_1! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid_s! top.res.abs_8! top.res.inst_0! top.usr.init_invalid_s top.res.abs_8 top.res.inst_0) (not top.res.init_flag!))))))) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/SYNAPSE_all_e8_251.sl b/benchmarks/LIA/Lustre/SYNAPSE_all_e8_251.sl index 836add1..5a9f4a2 100644 --- a/benchmarks/LIA/Lustre/SYNAPSE_all_e8_251.sl +++ b/benchmarks/LIA/Lustre/SYNAPSE_all_e8_251.sl @@ -1,674 +1,38 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_First_0 ( - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0) -) - -(define-fun - __node_trans_First_0 ( - (First.usr.X_a_1 Int) - (First.usr.First_a_1 Int) - (First.res.init_flag_a_1 Bool) - (First.usr.X_a_0 Int) - (First.usr.First_a_0 Int) - (First.res.init_flag_a_0 Bool) - ) Bool - - (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes3_0 ( - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_0 - (not - (or - (and - (and (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) excludes3.usr.X1_a_0) - excludes3.usr.X3_a_0) - (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) - excludes3.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes3_0 ( - (excludes3.usr.X1_a_1 Bool) - (excludes3.usr.X2_a_1 Bool) - (excludes3.usr.X3_a_1 Bool) - (excludes3.usr.excludes_a_1 Bool) - (excludes3.res.init_flag_a_1 Bool) - (excludes3.usr.X1_a_0 Bool) - (excludes3.usr.X2_a_0 Bool) - (excludes3.usr.X3_a_0 Bool) - (excludes3.usr.excludes_a_0 Bool) - (excludes3.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes3.usr.excludes_a_1 - (not - (or - (and - (and (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) excludes3.usr.X1_a_1) - excludes3.usr.X3_a_1) - (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) - (not excludes3.res.init_flag_a_1)) -) - -(define-fun - __node_init_synapse_0 ( - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (and - (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) - (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) - (= synapse.usr.valid_s_a_0 0) - (let - ((X1 Bool (let ((X1 Int synapse.res.nondet_0)) (>= X1 1)))) - (let - ((X2 Bool (let ((X2 Int synapse.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int synapse.res.nondet_2)) (>= X3 1)))) - (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_synapse_0 ( - (synapse.usr.e_s1_a_1 Bool) - (synapse.usr.e_s2_a_1 Bool) - (synapse.usr.e_s3_a_1 Bool) - (synapse.usr.init_invalid_s_a_1 Int) - (synapse.res.nondet_2 Int) - (synapse.res.nondet_1 Int) - (synapse.res.nondet_0 Int) - (synapse.usr.invalid_s_a_1 Int) - (synapse.usr.valid_s_a_1 Int) - (synapse.usr.dirty_s_a_1 Int) - (synapse.usr.mem_init_s_a_1 Int) - (synapse.res.init_flag_a_1 Bool) - (synapse.usr.e_s1_a_0 Bool) - (synapse.usr.e_s2_a_0 Bool) - (synapse.usr.e_s3_a_0 Bool) - (synapse.usr.init_invalid_s_a_0 Int) - (synapse.usr.invalid_s_a_0 Int) - (synapse.usr.valid_s_a_0 Int) - (synapse.usr.dirty_s_a_0 Int) - (synapse.usr.mem_init_s_a_0 Int) - (synapse.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= synapse.usr.invalid_s_a_0 1))) - (let - ((X2 Bool (>= synapse.usr.valid_s_a_0 1))) - (let - ((X3 Bool (>= synapse.usr.invalid_s_a_0 1))) - (and - (= - synapse.usr.invalid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite - X3 - (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite - X2 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite - X1 - (- - (+ - (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) - synapse.usr.valid_s_a_0) - 1) - synapse.usr.invalid_s_a_0) - synapse.usr.invalid_s_a_0)))) - (= - synapse.usr.valid_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 0 synapse.usr.valid_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 0 synapse.usr.valid_s_a_0) - synapse.usr.valid_s_a_0)))) - (= - synapse.usr.dirty_s_a_1 - (ite - synapse.usr.e_s1_a_1 - (ite X3 0 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s2_a_1 - (ite X2 1 synapse.usr.dirty_s_a_0) - (ite - synapse.usr.e_s3_a_1 - (ite X1 1 synapse.usr.dirty_s_a_0) - synapse.usr.dirty_s_a_0)))) - (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) - (not synapse.res.init_flag_a_1))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) - (let - ((X1 Bool top.res.abs_6_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (let - ((X3 Int top.res.abs_1_a_0)) - (let - ((X4 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (and - (and (< X2 2) (= (+ (+ X4 X3) X2) top.res.abs_8_a_0)) - (or (< X2 1) (< X3 1))))) - (= top.res.abs_7_a_0 (+ (+ X4 X3) X2)) - (__node_init_synapse_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_init_Sofar_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_init_excludes3_0 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_init_First_0 - top.usr.init_invalid_s_a_0 - top.res.abs_8_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e_s1_a_1 Bool) - (top.usr.e_s2_a_1 Bool) - (top.usr.e_s3_a_1 Bool) - (top.usr.init_invalid_s_a_1 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e_s1_a_0 Bool) - (top.usr.e_s2_a_0 Bool) - (top.usr.e_s3_a_0 Bool) - (top.usr.init_invalid_s_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) - (let - ((X1 Bool top.res.abs_6_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (let - ((X3 Int top.res.abs_1_a_1)) - (let - ((X4 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (and - (and - (and (< X2 2) (= (+ (+ X4 X3) X2) top.res.abs_7_a_0)) - (= (+ (+ X4 X3) X2) top.res.abs_8_a_1)) - (or (< X2 1) (< X3 1))))) - (= top.res.abs_7_a_1 (+ (+ X4 X3) X2)) - (__node_trans_synapse_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.usr.init_invalid_s_a_1 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.usr.init_invalid_s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_trans_Sofar_0 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.inst_2_a_1 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.inst_2_a_0) - (__node_trans_excludes3_0 - top.usr.e_s1_a_1 - top.usr.e_s2_a_1 - top.usr.e_s3_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.e_s1_a_0 - top.usr.e_s2_a_0 - top.usr.e_s3_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_First_0 - top.usr.init_invalid_s_a_1 - top.res.abs_8_a_1 - top.res.inst_0_a_1 - top.usr.init_invalid_s_a_0 - top.res.abs_8_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e_s1 Bool) -(declare-primed-var top.usr.e_s2 Bool) -(declare-primed-var top.usr.e_s3 Bool) -(declare-primed-var top.usr.init_invalid_s Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) - (let - ((X1 Bool top.res.abs_6)) - (let - ((X2 Int top.res.abs_2)) - (let - ((X3 Int top.res.abs_1)) - (let - ((X4 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> - X1 - (and - (and (< X2 2) (= (+ (+ X4 X3) X2) top.res.abs_8)) - (or (< X2 1) (< X3 1))))) - (= top.res.abs_7 (+ (+ X4 X3) X2)) - (__node_init_synapse_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) - (__node_init_excludes3_0 - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_init_First_0 - top.usr.init_invalid_s - top.res.abs_8 - top.res.inst_0) - top.res.init_flag)))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e_s1! Bool) - (top.usr.e_s2! Bool) - (top.usr.e_s3! Bool) - (top.usr.init_invalid_s! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) - (let - ((X1 Bool top.res.abs_6!)) - (let - ((X2 Int top.res.abs_2!)) - (let - ((X3 Int top.res.abs_1!)) - (let - ((X4 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> - X1 - (and - (and - (and (< X2 2) (= (+ (+ X4 X3) X2) top.res.abs_7)) - (= (+ (+ X4 X3) X2) top.res.abs_8!)) - (or (< X2 1) (< X3 1))))) - (= top.res.abs_7! (+ (+ X4 X3) X2)) - (__node_trans_synapse_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.usr.init_invalid_s! - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.usr.init_invalid_s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_trans_Sofar_0 - top.res.abs_5! - top.res.abs_6! - top.res.inst_2! - top.res.abs_5 - top.res.abs_6 - top.res.inst_2) - (__node_trans_excludes3_0 - top.usr.e_s1! - top.usr.e_s2! - top.usr.e_s3! - top.res.abs_4! - top.res.inst_1! - top.usr.e_s1 - top.usr.e_s2 - top.usr.e_s3 - top.res.abs_4 - top.res.inst_1) - (__node_trans_First_0 - top.usr.init_invalid_s! - top.res.abs_8! - top.res.inst_0! - top.usr.init_invalid_s - top.res.abs_8 - top.res.inst_0) - (not top.res.init_flag!))))))) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e_s1 Bool) - (top.usr.e_s2 Bool) - (top.usr.e_s3 Bool) - (top.usr.init_invalid_s Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_First_0 ((First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_0 First.usr.X_a_0) First.res.init_flag_a_0)) +(define-fun __node_trans_First_0 ((First.usr.X_a_1 Int) (First.usr.First_a_1 Int) (First.res.init_flag_a_1 Bool) (First.usr.X_a_0 Int) (First.usr.First_a_0 Int) (First.res.init_flag_a_0 Bool)) Bool + (and (= First.usr.First_a_1 First.usr.First_a_0) (not First.res.init_flag_a_1))) +(define-fun __node_init_excludes3_0 ((excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_0 (not (or (and (and (and excludes3.usr.X1_a_0 excludes3.usr.X2_a_0) excludes3.usr.X1_a_0) excludes3.usr.X3_a_0) (and excludes3.usr.X2_a_0 excludes3.usr.X3_a_0)))) excludes3.res.init_flag_a_0)) +(define-fun __node_trans_excludes3_0 ((excludes3.usr.X1_a_1 Bool) (excludes3.usr.X2_a_1 Bool) (excludes3.usr.X3_a_1 Bool) (excludes3.usr.excludes_a_1 Bool) (excludes3.res.init_flag_a_1 Bool) (excludes3.usr.X1_a_0 Bool) (excludes3.usr.X2_a_0 Bool) (excludes3.usr.X3_a_0 Bool) (excludes3.usr.excludes_a_0 Bool) (excludes3.res.init_flag_a_0 Bool)) Bool + (and (= excludes3.usr.excludes_a_1 (not (or (and (and (and excludes3.usr.X1_a_1 excludes3.usr.X2_a_1) excludes3.usr.X1_a_1) excludes3.usr.X3_a_1) (and excludes3.usr.X2_a_1 excludes3.usr.X3_a_1)))) (not excludes3.res.init_flag_a_1))) +(define-fun __node_init_synapse_0 ((synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (and (= synapse.usr.mem_init_s_a_0 synapse.usr.init_invalid_s_a_0) (= synapse.usr.invalid_s_a_0 synapse.usr.mem_init_s_a_0) (= synapse.usr.valid_s_a_0 0) (let ((X1 (let ((X1 synapse.res.nondet_0)) (>= X1 1)))) (let ((X2 (let ((X2 synapse.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 synapse.res.nondet_2)) (>= X3 1)))) (and (= synapse.usr.dirty_s_a_0 0) synapse.res.init_flag_a_0)))))) +(define-fun __node_trans_synapse_0 ((synapse.usr.e_s1_a_1 Bool) (synapse.usr.e_s2_a_1 Bool) (synapse.usr.e_s3_a_1 Bool) (synapse.usr.init_invalid_s_a_1 Int) (synapse.res.nondet_2 Int) (synapse.res.nondet_1 Int) (synapse.res.nondet_0 Int) (synapse.usr.invalid_s_a_1 Int) (synapse.usr.valid_s_a_1 Int) (synapse.usr.dirty_s_a_1 Int) (synapse.usr.mem_init_s_a_1 Int) (synapse.res.init_flag_a_1 Bool) (synapse.usr.e_s1_a_0 Bool) (synapse.usr.e_s2_a_0 Bool) (synapse.usr.e_s3_a_0 Bool) (synapse.usr.init_invalid_s_a_0 Int) (synapse.usr.invalid_s_a_0 Int) (synapse.usr.valid_s_a_0 Int) (synapse.usr.dirty_s_a_0 Int) (synapse.usr.mem_init_s_a_0 Int) (synapse.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= synapse.usr.invalid_s_a_0 1))) (let ((X2 (>= synapse.usr.valid_s_a_0 1))) (let ((X3 (>= synapse.usr.invalid_s_a_0 1))) (and (= synapse.usr.invalid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (- (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 (- (+ (+ synapse.usr.invalid_s_a_0 synapse.usr.dirty_s_a_0) synapse.usr.valid_s_a_0) 1) synapse.usr.invalid_s_a_0) synapse.usr.invalid_s_a_0)))) (= synapse.usr.valid_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 (+ synapse.usr.valid_s_a_0 1) synapse.usr.valid_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 0 synapse.usr.valid_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 0 synapse.usr.valid_s_a_0) synapse.usr.valid_s_a_0)))) (= synapse.usr.dirty_s_a_1 (ite synapse.usr.e_s1_a_1 (ite X3 0 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s2_a_1 (ite X2 1 synapse.usr.dirty_s_a_0) (ite synapse.usr.e_s3_a_1 (ite X1 1 synapse.usr.dirty_s_a_0) synapse.usr.dirty_s_a_0)))) (= synapse.usr.mem_init_s_a_1 synapse.usr.mem_init_s_a_0) (not synapse.res.init_flag_a_1)))))) +(define-fun __node_init_top_0 ((top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_0 (and top.res.abs_4_a_0 (>= top.usr.init_invalid_s_a_0 0))) (let ((X1 top.res.abs_6_a_0)) (let ((X2 top.res.abs_2_a_0)) (let ((X3 top.res.abs_1_a_0)) (let ((X4 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (and (< X2 2) (= (+ (+ X4 X3) X2) top.res.abs_8_a_0)) (or (< X2 1) (< X3 1))))) (= top.res.abs_7_a_0 (+ (+ X4 X3) X2)) (__node_init_synapse_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Sofar_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_init_excludes3_0 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_First_0 top.usr.init_invalid_s_a_0 top.res.abs_8_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))) +(define-fun __node_trans_top_0 ((top.usr.e_s1_a_1 Bool) (top.usr.e_s2_a_1 Bool) (top.usr.e_s3_a_1 Bool) (top.usr.init_invalid_s_a_1 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e_s1_a_0 Bool) (top.usr.e_s2_a_0 Bool) (top.usr.e_s3_a_0 Bool) (top.usr.init_invalid_s_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_5_a_1 (and top.res.abs_4_a_1 (>= top.usr.init_invalid_s_a_1 0))) (let ((X1 top.res.abs_6_a_1)) (let ((X2 top.res.abs_2_a_1)) (let ((X3 top.res.abs_1_a_1)) (let ((X4 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (and (and (< X2 2) (= (+ (+ X4 X3) X2) top.res.abs_7_a_0)) (= (+ (+ X4 X3) X2) top.res.abs_8_a_1)) (or (< X2 1) (< X3 1))))) (= top.res.abs_7_a_1 (+ (+ X4 X3) X2)) (__node_trans_synapse_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.usr.init_invalid_s_a_1 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.usr.init_invalid_s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Sofar_0 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.inst_2_a_1 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.inst_2_a_0) (__node_trans_excludes3_0 top.usr.e_s1_a_1 top.usr.e_s2_a_1 top.usr.e_s3_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.e_s1_a_0 top.usr.e_s2_a_0 top.usr.e_s3_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_First_0 top.usr.init_invalid_s_a_1 top.res.abs_8_a_1 top.res.inst_0_a_1 top.usr.init_invalid_s_a_0 top.res.abs_8_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_5 (and top.res.abs_4 (>= top.usr.init_invalid_s 0))) (let ((X1 top.res.abs_6)) (let ((X2 top.res.abs_2)) (let ((X3 top.res.abs_1)) (let ((X4 top.res.abs_0)) (and (= top.usr.OK (=> X1 (and (and (< X2 2) (= (+ (+ X4 X3) X2) top.res.abs_8)) (or (< X2 1) (< X3 1))))) (= top.res.abs_7 (+ (+ X4 X3) X2)) (__node_init_synapse_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Sofar_0 top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_init_excludes3_0 top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_init_First_0 top.usr.init_invalid_s top.res.abs_8 top.res.inst_0) top.res.init_flag))))))) +(define-fun trans ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e_s1! Bool) (top.usr.e_s2! Bool) (top.usr.e_s3! Bool) (top.usr.init_invalid_s! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_5! (and top.res.abs_4! (>= top.usr.init_invalid_s! 0))) (let ((X1 top.res.abs_6!)) (let ((X2 top.res.abs_2!)) (let ((X3 top.res.abs_1!)) (let ((X4 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (and (and (< X2 2) (= (+ (+ X4 X3) X2) top.res.abs_7)) (= (+ (+ X4 X3) X2) top.res.abs_8!)) (or (< X2 1) (< X3 1))))) (= top.res.abs_7! (+ (+ X4 X3) X2)) (__node_trans_synapse_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.usr.init_invalid_s! top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_3! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.usr.init_invalid_s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Sofar_0 top.res.abs_5! top.res.abs_6! top.res.inst_2! top.res.abs_5 top.res.abs_6 top.res.inst_2) (__node_trans_excludes3_0 top.usr.e_s1! top.usr.e_s2! top.usr.e_s3! top.res.abs_4! top.res.inst_1! top.usr.e_s1 top.usr.e_s2 top.usr.e_s3 top.res.abs_4 top.res.inst_1) (__node_trans_First_0 top.usr.init_invalid_s! top.res.abs_8! top.res.inst_0! top.usr.init_invalid_s top.res.abs_8 top.res.inst_0) (not top.res.init_flag!))))))) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e_s1 Bool) (top.usr.e_s2 Bool) (top.usr.e_s3 Bool) (top.usr.init_invalid_s Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/car_1.sl b/benchmarks/LIA/Lustre/car_1.sl index 3d0e70c..c23d599 100644 --- a/benchmarks/LIA/Lustre/car_1.sl +++ b/benchmarks/LIA/Lustre/car_1.sl @@ -1,554 +1,31 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes2_0 ( - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_0 - (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) - excludes2.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes2_0 ( - (excludes2.usr.X1_a_1 Bool) - (excludes2.usr.X2_a_1 Bool) - (excludes2.usr.excludes_a_1 Bool) - (excludes2.res.init_flag_a_1 Bool) - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_1 - (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) - (not excludes2.res.init_flag_a_1)) -) - -(define-fun - __node_init_voiture_0 ( - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.speed_a_0 0) - (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) - (= voiture.usr.move_a_0 true) - (= voiture.usr.time_a_0 0) - (= voiture.usr.dist_a_0 0) - (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) - (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) - (= - voiture.res.abs_0_a_0 - (and - (and - (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) - (not voiture.usr.toofast_a_0)) - (not voiture.usr.bump_a_0))) - (= voiture.usr.second_a_0 false) - (= voiture.usr.meter_a_0 false) - voiture.res.init_flag_a_0) -) - -(define-fun - __node_trans_voiture_0 ( - (voiture.usr.m_a_1 Bool) - (voiture.usr.s_a_1 Bool) - (voiture.usr.toofast_a_1 Bool) - (voiture.usr.stop_a_1 Bool) - (voiture.usr.bump_a_1 Bool) - (voiture.usr.dist_a_1 Int) - (voiture.usr.speed_a_1 Int) - (voiture.usr.time_a_1 Int) - (voiture.usr.move_a_1 Bool) - (voiture.usr.second_a_1 Bool) - (voiture.usr.meter_a_1 Bool) - (voiture.res.init_flag_a_1 Bool) - (voiture.res.abs_0_a_1 Bool) - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) - (= voiture.usr.second_a_1 voiture.usr.s_a_1) - (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) - (= - voiture.usr.speed_a_1 - (ite - (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) - 0 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.speed_a_0 1) - voiture.usr.speed_a_0))) - (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) - (= - voiture.usr.time_a_1 - (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) - (= - voiture.usr.dist_a_1 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.dist_a_0 1) - voiture.usr.dist_a_0)) - (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) - (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) - (= - voiture.res.abs_0_a_1 - (and - (and - (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) - (not voiture.usr.toofast_a_1)) - (not voiture.usr.bump_a_1))) - (not voiture.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_3_a_0)) - (and - (= top.res.abs_10_a_0 (and top.res.abs_9_a_0 (< X1 32767))) - (let - ((X2 Bool top.res.abs_11_a_0)) - (and - (= top.usr.OK_a_0 (=> X2 (>= X1 0))) - (__node_init_voiture_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_init_excludes2_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.m_a_1 Bool) - (top.usr.s_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_3_a_1)) - (and - (= top.res.abs_10_a_1 (and top.res.abs_9_a_1 (< X1 32767))) - (let - ((X2 Bool top.res.abs_11_a_1)) - (and - (= top.usr.OK_a_1 (=> X2 (>= X1 0))) - (__node_trans_voiture_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes2_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.m Bool) -(declare-primed-var top.usr.s Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_3)) - (and - (= top.res.abs_10 (and top.res.abs_9 (< X1 32767))) - (let - ((X2 Bool top.res.abs_11)) - (and - (= top.usr.OK (=> X2 (>= X1 0))) - (__node_init_voiture_0 - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) - (__node_init_excludes2_0 - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.m! Bool) - (top.usr.s! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Int top.res.abs_3!)) - (and - (= top.res.abs_10! (and top.res.abs_9! (< X1 32767))) - (let - ((X2 Bool top.res.abs_11!)) - (and - (= top.usr.OK! (=> X2 (>= X1 0))) - (__node_trans_voiture_0 - top.usr.m! - top.usr.s! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_3! - top.res.inst_2! - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_1! - top.res.abs_10 - top.res.abs_11 - top.res.inst_1) - (__node_trans_excludes2_0 - top.usr.m! - top.usr.s! - top.res.abs_9! - top.res.inst_0! - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!))))) -) - -(define-fun - prop ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes2_0 ((excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_0 (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) excludes2.res.init_flag_a_0)) +(define-fun __node_trans_excludes2_0 ((excludes2.usr.X1_a_1 Bool) (excludes2.usr.X2_a_1 Bool) (excludes2.usr.excludes_a_1 Bool) (excludes2.res.init_flag_a_1 Bool) (excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_1 (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) (not excludes2.res.init_flag_a_1))) +(define-fun __node_init_voiture_0 ((voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.speed_a_0 0) (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) (= voiture.usr.move_a_0 true) (= voiture.usr.time_a_0 0) (= voiture.usr.dist_a_0 0) (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) (= voiture.res.abs_0_a_0 (and (and (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) (not voiture.usr.toofast_a_0)) (not voiture.usr.bump_a_0))) (= voiture.usr.second_a_0 false) (= voiture.usr.meter_a_0 false) voiture.res.init_flag_a_0)) +(define-fun __node_trans_voiture_0 ((voiture.usr.m_a_1 Bool) (voiture.usr.s_a_1 Bool) (voiture.usr.toofast_a_1 Bool) (voiture.usr.stop_a_1 Bool) (voiture.usr.bump_a_1 Bool) (voiture.usr.dist_a_1 Int) (voiture.usr.speed_a_1 Int) (voiture.usr.time_a_1 Int) (voiture.usr.move_a_1 Bool) (voiture.usr.second_a_1 Bool) (voiture.usr.meter_a_1 Bool) (voiture.res.init_flag_a_1 Bool) (voiture.res.abs_0_a_1 Bool) (voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) (= voiture.usr.second_a_1 voiture.usr.s_a_1) (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) (= voiture.usr.speed_a_1 (ite (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) 0 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.speed_a_0 1) voiture.usr.speed_a_0))) (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) (= voiture.usr.time_a_1 (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) (= voiture.usr.dist_a_1 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.dist_a_0 1) voiture.usr.dist_a_0)) (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) (= voiture.res.abs_0_a_1 (and (and (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) (not voiture.usr.toofast_a_1)) (not voiture.usr.bump_a_1))) (not voiture.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_3_a_0)) (and (= top.res.abs_10_a_0 (and top.res.abs_9_a_0 (< X1 32767))) (let ((X2 top.res.abs_11_a_0)) (and (= top.usr.OK_a_0 (=> X2 (>= X1 0))) (__node_init_voiture_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_init_excludes2_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.m_a_1 Bool) (top.usr.s_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_3_a_1)) (and (= top.res.abs_10_a_1 (and top.res.abs_9_a_1 (< X1 32767))) (let ((X2 top.res.abs_11_a_1)) (and (= top.usr.OK_a_1 (=> X2 (>= X1 0))) (__node_trans_voiture_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_trans_excludes2_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_3)) (and (= top.res.abs_10 (and top.res.abs_9 (< X1 32767))) (let ((X2 top.res.abs_11)) (and (= top.usr.OK (=> X2 (>= X1 0))) (__node_init_voiture_0 top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_init_excludes2_0 top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.m! Bool) (top.usr.s! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_3!)) (and (= top.res.abs_10! (and top.res.abs_9! (< X1 32767))) (let ((X2 top.res.abs_11!)) (and (= top.usr.OK! (=> X2 (>= X1 0))) (__node_trans_voiture_0 top.usr.m! top.usr.s! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_3! top.res.inst_2! top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_1! top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_trans_excludes2_0 top.usr.m! top.usr.s! top.res.abs_9! top.res.inst_0! top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) (not top.res.init_flag!)))))) +(define-fun prop ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/car_1_e7_184_e3_299.sl b/benchmarks/LIA/Lustre/car_1_e7_184_e3_299.sl index d176c82..3801e0d 100644 --- a/benchmarks/LIA/Lustre/car_1_e7_184_e3_299.sl +++ b/benchmarks/LIA/Lustre/car_1_e7_184_e3_299.sl @@ -1,554 +1,31 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes2_0 ( - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_0 - (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) - excludes2.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes2_0 ( - (excludes2.usr.X1_a_1 Bool) - (excludes2.usr.X2_a_1 Bool) - (excludes2.usr.excludes_a_1 Bool) - (excludes2.res.init_flag_a_1 Bool) - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_1 - (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) - (not excludes2.res.init_flag_a_1)) -) - -(define-fun - __node_init_voiture_0 ( - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.speed_a_0 0) - (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) - (= voiture.usr.move_a_0 true) - (= voiture.usr.time_a_0 0) - (= voiture.usr.dist_a_0 0) - (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) - (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) - (= - voiture.res.abs_0_a_0 - (and - (and - (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) - (not voiture.usr.toofast_a_0)) - (not voiture.usr.bump_a_0))) - (= voiture.usr.second_a_0 false) - (= voiture.usr.meter_a_0 false) - voiture.res.init_flag_a_0) -) - -(define-fun - __node_trans_voiture_0 ( - (voiture.usr.m_a_1 Bool) - (voiture.usr.s_a_1 Bool) - (voiture.usr.toofast_a_1 Bool) - (voiture.usr.stop_a_1 Bool) - (voiture.usr.bump_a_1 Bool) - (voiture.usr.dist_a_1 Int) - (voiture.usr.speed_a_1 Int) - (voiture.usr.time_a_1 Int) - (voiture.usr.move_a_1 Bool) - (voiture.usr.second_a_1 Bool) - (voiture.usr.meter_a_1 Bool) - (voiture.res.init_flag_a_1 Bool) - (voiture.res.abs_0_a_1 Bool) - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) - (= voiture.usr.second_a_1 voiture.usr.s_a_1) - (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) - (= - voiture.usr.speed_a_1 - (ite - (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) - 0 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (- voiture.usr.speed_a_0 1) - voiture.usr.speed_a_0))) - (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) - (= - voiture.usr.time_a_1 - (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) - (= - voiture.usr.dist_a_1 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.dist_a_0 1) - voiture.usr.dist_a_0)) - (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) - (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) - (= - voiture.res.abs_0_a_1 - (and - (and - (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) - (not voiture.usr.toofast_a_1)) - (not voiture.usr.bump_a_1))) - (not voiture.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_3_a_0)) - (and - (= top.res.abs_10_a_0 (and top.res.abs_9_a_0 (< X1 32767))) - (let - ((X2 Bool top.res.abs_11_a_0)) - (and - (= top.usr.OK_a_0 (=> X2 (>= X1 0))) - (__node_init_voiture_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_init_excludes2_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.m_a_1 Bool) - (top.usr.s_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_3_a_1)) - (and - (= top.res.abs_10_a_1 (and top.res.abs_9_a_1 (< X1 32767))) - (let - ((X2 Bool top.res.abs_11_a_1)) - (and - (= top.usr.OK_a_1 (=> X2 (>= X1 0))) - (__node_trans_voiture_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes2_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.m Bool) -(declare-primed-var top.usr.s Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_3)) - (and - (= top.res.abs_10 (and top.res.abs_9 (< X1 32767))) - (let - ((X2 Bool top.res.abs_11)) - (and - (= top.usr.OK (=> X2 (>= X1 0))) - (__node_init_voiture_0 - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) - (__node_init_excludes2_0 - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.m! Bool) - (top.usr.s! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Int top.res.abs_3!)) - (and - (= top.res.abs_10! (and top.res.abs_9! (< X1 32767))) - (let - ((X2 Bool top.res.abs_11!)) - (and - (= top.usr.OK! (=> X2 (>= X1 0))) - (__node_trans_voiture_0 - top.usr.m! - top.usr.s! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_3! - top.res.inst_2! - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_1! - top.res.abs_10 - top.res.abs_11 - top.res.inst_1) - (__node_trans_excludes2_0 - top.usr.m! - top.usr.s! - top.res.abs_9! - top.res.inst_0! - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!))))) -) - -(define-fun - prop ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes2_0 ((excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_0 (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) excludes2.res.init_flag_a_0)) +(define-fun __node_trans_excludes2_0 ((excludes2.usr.X1_a_1 Bool) (excludes2.usr.X2_a_1 Bool) (excludes2.usr.excludes_a_1 Bool) (excludes2.res.init_flag_a_1 Bool) (excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_1 (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) (not excludes2.res.init_flag_a_1))) +(define-fun __node_init_voiture_0 ((voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.speed_a_0 0) (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) (= voiture.usr.move_a_0 true) (= voiture.usr.time_a_0 0) (= voiture.usr.dist_a_0 0) (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) (= voiture.res.abs_0_a_0 (and (and (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) (not voiture.usr.toofast_a_0)) (not voiture.usr.bump_a_0))) (= voiture.usr.second_a_0 false) (= voiture.usr.meter_a_0 false) voiture.res.init_flag_a_0)) +(define-fun __node_trans_voiture_0 ((voiture.usr.m_a_1 Bool) (voiture.usr.s_a_1 Bool) (voiture.usr.toofast_a_1 Bool) (voiture.usr.stop_a_1 Bool) (voiture.usr.bump_a_1 Bool) (voiture.usr.dist_a_1 Int) (voiture.usr.speed_a_1 Int) (voiture.usr.time_a_1 Int) (voiture.usr.move_a_1 Bool) (voiture.usr.second_a_1 Bool) (voiture.usr.meter_a_1 Bool) (voiture.res.init_flag_a_1 Bool) (voiture.res.abs_0_a_1 Bool) (voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) (= voiture.usr.second_a_1 voiture.usr.s_a_1) (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) (= voiture.usr.speed_a_1 (ite (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) 0 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (- voiture.usr.speed_a_0 1) voiture.usr.speed_a_0))) (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) (= voiture.usr.time_a_1 (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) (= voiture.usr.dist_a_1 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.dist_a_0 1) voiture.usr.dist_a_0)) (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) (= voiture.res.abs_0_a_1 (and (and (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) (not voiture.usr.toofast_a_1)) (not voiture.usr.bump_a_1))) (not voiture.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_3_a_0)) (and (= top.res.abs_10_a_0 (and top.res.abs_9_a_0 (< X1 32767))) (let ((X2 top.res.abs_11_a_0)) (and (= top.usr.OK_a_0 (=> X2 (>= X1 0))) (__node_init_voiture_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_init_excludes2_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.m_a_1 Bool) (top.usr.s_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_3_a_1)) (and (= top.res.abs_10_a_1 (and top.res.abs_9_a_1 (< X1 32767))) (let ((X2 top.res.abs_11_a_1)) (and (= top.usr.OK_a_1 (=> X2 (>= X1 0))) (__node_trans_voiture_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_trans_excludes2_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_3)) (and (= top.res.abs_10 (and top.res.abs_9 (< X1 32767))) (let ((X2 top.res.abs_11)) (and (= top.usr.OK (=> X2 (>= X1 0))) (__node_init_voiture_0 top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_init_excludes2_0 top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.m! Bool) (top.usr.s! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_3!)) (and (= top.res.abs_10! (and top.res.abs_9! (< X1 32767))) (let ((X2 top.res.abs_11!)) (and (= top.usr.OK! (=> X2 (>= X1 0))) (__node_trans_voiture_0 top.usr.m! top.usr.s! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_3! top.res.inst_2! top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_1! top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_trans_excludes2_0 top.usr.m! top.usr.s! top.res.abs_9! top.res.inst_0! top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) (not top.res.init_flag!)))))) +(define-fun prop ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/car_2.sl b/benchmarks/LIA/Lustre/car_2.sl index 59deffa..5b4931b 100644 --- a/benchmarks/LIA/Lustre/car_2.sl +++ b/benchmarks/LIA/Lustre/car_2.sl @@ -1,534 +1,31 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes2_0 ( - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_0 - (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) - excludes2.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes2_0 ( - (excludes2.usr.X1_a_1 Bool) - (excludes2.usr.X2_a_1 Bool) - (excludes2.usr.excludes_a_1 Bool) - (excludes2.res.init_flag_a_1 Bool) - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_1 - (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) - (not excludes2.res.init_flag_a_1)) -) - -(define-fun - __node_init_voiture_0 ( - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.speed_a_0 0) - (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) - (= voiture.usr.move_a_0 true) - (= voiture.usr.time_a_0 0) - (= voiture.usr.dist_a_0 0) - (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) - (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) - (= - voiture.res.abs_0_a_0 - (and - (and - (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) - (not voiture.usr.toofast_a_0)) - (not voiture.usr.bump_a_0))) - (= voiture.usr.second_a_0 false) - (= voiture.usr.meter_a_0 false) - voiture.res.init_flag_a_0) -) - -(define-fun - __node_trans_voiture_0 ( - (voiture.usr.m_a_1 Bool) - (voiture.usr.s_a_1 Bool) - (voiture.usr.toofast_a_1 Bool) - (voiture.usr.stop_a_1 Bool) - (voiture.usr.bump_a_1 Bool) - (voiture.usr.dist_a_1 Int) - (voiture.usr.speed_a_1 Int) - (voiture.usr.time_a_1 Int) - (voiture.usr.move_a_1 Bool) - (voiture.usr.second_a_1 Bool) - (voiture.usr.meter_a_1 Bool) - (voiture.res.init_flag_a_1 Bool) - (voiture.res.abs_0_a_1 Bool) - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) - (= voiture.usr.second_a_1 voiture.usr.s_a_1) - (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) - (= - voiture.usr.speed_a_1 - (ite - (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) - 0 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.speed_a_0 1) - voiture.usr.speed_a_0))) - (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) - (= - voiture.usr.time_a_1 - (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) - (= - voiture.usr.dist_a_1 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.dist_a_0 1) - voiture.usr.dist_a_0)) - (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) - (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) - (= - voiture.res.abs_0_a_1 - (and - (and - (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) - (not voiture.usr.toofast_a_1)) - (not voiture.usr.bump_a_1))) - (not voiture.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (< X2 11))) - (__node_init_voiture_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) - (__node_init_excludes2_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.m_a_1 Bool) - (top.usr.s_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (< X2 11))) - (__node_trans_voiture_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_9_a_1 - top.res.abs_10_a_1 - top.res.inst_1_a_1 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes2_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.m Bool) -(declare-primed-var top.usr.s Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10)) - (let - ((X2 Int top.res.abs_3)) - (and - (= top.usr.OK (=> X1 (< X2 11))) - (__node_init_voiture_0 - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) - (__node_init_excludes2_0 - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.m! Bool) - (top.usr.s! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_10!)) - (let - ((X2 Int top.res.abs_3!)) - (and - (= top.usr.OK! (=> X1 (< X2 11))) - (__node_trans_voiture_0 - top.usr.m! - top.usr.s! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_3! - top.res.inst_2! - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_9! - top.res.abs_10! - top.res.inst_1! - top.res.abs_9 - top.res.abs_10 - top.res.inst_1) - (__node_trans_excludes2_0 - top.usr.m! - top.usr.s! - top.res.abs_9! - top.res.inst_0! - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes2_0 ((excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_0 (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) excludes2.res.init_flag_a_0)) +(define-fun __node_trans_excludes2_0 ((excludes2.usr.X1_a_1 Bool) (excludes2.usr.X2_a_1 Bool) (excludes2.usr.excludes_a_1 Bool) (excludes2.res.init_flag_a_1 Bool) (excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_1 (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) (not excludes2.res.init_flag_a_1))) +(define-fun __node_init_voiture_0 ((voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.speed_a_0 0) (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) (= voiture.usr.move_a_0 true) (= voiture.usr.time_a_0 0) (= voiture.usr.dist_a_0 0) (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) (= voiture.res.abs_0_a_0 (and (and (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) (not voiture.usr.toofast_a_0)) (not voiture.usr.bump_a_0))) (= voiture.usr.second_a_0 false) (= voiture.usr.meter_a_0 false) voiture.res.init_flag_a_0)) +(define-fun __node_trans_voiture_0 ((voiture.usr.m_a_1 Bool) (voiture.usr.s_a_1 Bool) (voiture.usr.toofast_a_1 Bool) (voiture.usr.stop_a_1 Bool) (voiture.usr.bump_a_1 Bool) (voiture.usr.dist_a_1 Int) (voiture.usr.speed_a_1 Int) (voiture.usr.time_a_1 Int) (voiture.usr.move_a_1 Bool) (voiture.usr.second_a_1 Bool) (voiture.usr.meter_a_1 Bool) (voiture.res.init_flag_a_1 Bool) (voiture.res.abs_0_a_1 Bool) (voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) (= voiture.usr.second_a_1 voiture.usr.s_a_1) (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) (= voiture.usr.speed_a_1 (ite (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) 0 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.speed_a_0 1) voiture.usr.speed_a_0))) (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) (= voiture.usr.time_a_1 (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) (= voiture.usr.dist_a_1 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.dist_a_0 1) voiture.usr.dist_a_0)) (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) (= voiture.res.abs_0_a_1 (and (and (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) (not voiture.usr.toofast_a_1)) (not voiture.usr.bump_a_1))) (not voiture.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_0)) (let ((X2 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (< X2 11))) (__node_init_voiture_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_init_excludes2_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.m_a_1 Bool) (top.usr.s_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_1)) (let ((X2 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (< X2 11))) (__node_trans_voiture_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_9_a_1 top.res.abs_10_a_1 top.res.inst_1_a_1 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_trans_excludes2_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_10)) (let ((X2 top.res.abs_3)) (and (= top.usr.OK (=> X1 (< X2 11))) (__node_init_voiture_0 top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_init_excludes2_0 top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.m! Bool) (top.usr.s! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_10!)) (let ((X2 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (< X2 11))) (__node_trans_voiture_0 top.usr.m! top.usr.s! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_3! top.res.inst_2! top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_9! top.res.abs_10! top.res.inst_1! top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_trans_excludes2_0 top.usr.m! top.usr.s! top.res.abs_9! top.res.inst_0! top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/car_2_e7_1027_e1_1047.sl b/benchmarks/LIA/Lustre/car_2_e7_1027_e1_1047.sl index ba3b106..3b5c5ba 100644 --- a/benchmarks/LIA/Lustre/car_2_e7_1027_e1_1047.sl +++ b/benchmarks/LIA/Lustre/car_2_e7_1027_e1_1047.sl @@ -1,534 +1,31 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes2_0 ( - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_0 - (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) - excludes2.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes2_0 ( - (excludes2.usr.X1_a_1 Bool) - (excludes2.usr.X2_a_1 Bool) - (excludes2.usr.excludes_a_1 Bool) - (excludes2.res.init_flag_a_1 Bool) - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_1 - (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) - (not excludes2.res.init_flag_a_1)) -) - -(define-fun - __node_init_voiture_0 ( - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.speed_a_0 0) - (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) - (= voiture.usr.move_a_0 true) - (= voiture.usr.time_a_0 0) - (= voiture.usr.dist_a_0 0) - (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) - (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) - (= - voiture.res.abs_0_a_0 - (and - (and - (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) - (not voiture.usr.toofast_a_0)) - (not voiture.usr.bump_a_0))) - (= voiture.usr.second_a_0 false) - (= voiture.usr.meter_a_0 false) - voiture.res.init_flag_a_0) -) - -(define-fun - __node_trans_voiture_0 ( - (voiture.usr.m_a_1 Bool) - (voiture.usr.s_a_1 Bool) - (voiture.usr.toofast_a_1 Bool) - (voiture.usr.stop_a_1 Bool) - (voiture.usr.bump_a_1 Bool) - (voiture.usr.dist_a_1 Int) - (voiture.usr.speed_a_1 Int) - (voiture.usr.time_a_1 Int) - (voiture.usr.move_a_1 Bool) - (voiture.usr.second_a_1 Bool) - (voiture.usr.meter_a_1 Bool) - (voiture.res.init_flag_a_1 Bool) - (voiture.res.abs_0_a_1 Bool) - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) - (= voiture.usr.second_a_1 voiture.usr.s_a_1) - (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) - (= - voiture.usr.speed_a_1 - (ite - (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) - 0 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ (+ voiture.usr.speed_a_0 1) 1) - voiture.usr.speed_a_0))) - (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) - (= - voiture.usr.time_a_1 - (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) - (= - voiture.usr.dist_a_1 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.dist_a_0 1) - voiture.usr.dist_a_0)) - (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) - (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) - (= - voiture.res.abs_0_a_1 - (and - (and - (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) - (not voiture.usr.toofast_a_1)) - (not voiture.usr.bump_a_1))) - (not voiture.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (< X2 11))) - (__node_init_voiture_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) - (__node_init_excludes2_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.m_a_1 Bool) - (top.usr.s_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (< X2 11))) - (__node_trans_voiture_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_9_a_1 - top.res.abs_10_a_1 - top.res.inst_1_a_1 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes2_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.m Bool) -(declare-primed-var top.usr.s Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10)) - (let - ((X2 Int top.res.abs_3)) - (and - (= top.usr.OK (=> X1 (< X2 11))) - (__node_init_voiture_0 - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) - (__node_init_excludes2_0 - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.m! Bool) - (top.usr.s! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_10!)) - (let - ((X2 Int top.res.abs_3!)) - (and - (= top.usr.OK! (=> X1 (< X2 11))) - (__node_trans_voiture_0 - top.usr.m! - top.usr.s! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_3! - top.res.inst_2! - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_9! - top.res.abs_10! - top.res.inst_1! - top.res.abs_9 - top.res.abs_10 - top.res.inst_1) - (__node_trans_excludes2_0 - top.usr.m! - top.usr.s! - top.res.abs_9! - top.res.inst_0! - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes2_0 ((excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_0 (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) excludes2.res.init_flag_a_0)) +(define-fun __node_trans_excludes2_0 ((excludes2.usr.X1_a_1 Bool) (excludes2.usr.X2_a_1 Bool) (excludes2.usr.excludes_a_1 Bool) (excludes2.res.init_flag_a_1 Bool) (excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_1 (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) (not excludes2.res.init_flag_a_1))) +(define-fun __node_init_voiture_0 ((voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.speed_a_0 0) (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) (= voiture.usr.move_a_0 true) (= voiture.usr.time_a_0 0) (= voiture.usr.dist_a_0 0) (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) (= voiture.res.abs_0_a_0 (and (and (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) (not voiture.usr.toofast_a_0)) (not voiture.usr.bump_a_0))) (= voiture.usr.second_a_0 false) (= voiture.usr.meter_a_0 false) voiture.res.init_flag_a_0)) +(define-fun __node_trans_voiture_0 ((voiture.usr.m_a_1 Bool) (voiture.usr.s_a_1 Bool) (voiture.usr.toofast_a_1 Bool) (voiture.usr.stop_a_1 Bool) (voiture.usr.bump_a_1 Bool) (voiture.usr.dist_a_1 Int) (voiture.usr.speed_a_1 Int) (voiture.usr.time_a_1 Int) (voiture.usr.move_a_1 Bool) (voiture.usr.second_a_1 Bool) (voiture.usr.meter_a_1 Bool) (voiture.res.init_flag_a_1 Bool) (voiture.res.abs_0_a_1 Bool) (voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) (= voiture.usr.second_a_1 voiture.usr.s_a_1) (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) (= voiture.usr.speed_a_1 (ite (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) 0 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ (+ voiture.usr.speed_a_0 1) 1) voiture.usr.speed_a_0))) (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) (= voiture.usr.time_a_1 (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) (= voiture.usr.dist_a_1 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.dist_a_0 1) voiture.usr.dist_a_0)) (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) (= voiture.res.abs_0_a_1 (and (and (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) (not voiture.usr.toofast_a_1)) (not voiture.usr.bump_a_1))) (not voiture.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_0)) (let ((X2 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (< X2 11))) (__node_init_voiture_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_init_excludes2_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.m_a_1 Bool) (top.usr.s_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_1)) (let ((X2 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (< X2 11))) (__node_trans_voiture_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_9_a_1 top.res.abs_10_a_1 top.res.inst_1_a_1 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_trans_excludes2_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_10)) (let ((X2 top.res.abs_3)) (and (= top.usr.OK (=> X1 (< X2 11))) (__node_init_voiture_0 top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_init_excludes2_0 top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.m! Bool) (top.usr.s! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_10!)) (let ((X2 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (< X2 11))) (__node_trans_voiture_0 top.usr.m! top.usr.s! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_3! top.res.inst_2! top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_9! top.res.abs_10! top.res.inst_1! top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_trans_excludes2_0 top.usr.m! top.usr.s! top.res.abs_9! top.res.inst_0! top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/car_2_e7_1027_e7_359.sl b/benchmarks/LIA/Lustre/car_2_e7_1027_e7_359.sl index 462ffdf..8e2a548 100644 --- a/benchmarks/LIA/Lustre/car_2_e7_1027_e7_359.sl +++ b/benchmarks/LIA/Lustre/car_2_e7_1027_e7_359.sl @@ -1,534 +1,31 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes2_0 ( - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_0 - (not (or excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) - excludes2.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes2_0 ( - (excludes2.usr.X1_a_1 Bool) - (excludes2.usr.X2_a_1 Bool) - (excludes2.usr.excludes_a_1 Bool) - (excludes2.res.init_flag_a_1 Bool) - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_1 - (not (or excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) - (not excludes2.res.init_flag_a_1)) -) - -(define-fun - __node_init_voiture_0 ( - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.speed_a_0 0) - (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) - (= voiture.usr.move_a_0 true) - (= voiture.usr.time_a_0 0) - (= voiture.usr.dist_a_0 0) - (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) - (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) - (= - voiture.res.abs_0_a_0 - (and - (and - (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) - (not voiture.usr.toofast_a_0)) - (not voiture.usr.bump_a_0))) - (= voiture.usr.second_a_0 false) - (= voiture.usr.meter_a_0 false) - voiture.res.init_flag_a_0) -) - -(define-fun - __node_trans_voiture_0 ( - (voiture.usr.m_a_1 Bool) - (voiture.usr.s_a_1 Bool) - (voiture.usr.toofast_a_1 Bool) - (voiture.usr.stop_a_1 Bool) - (voiture.usr.bump_a_1 Bool) - (voiture.usr.dist_a_1 Int) - (voiture.usr.speed_a_1 Int) - (voiture.usr.time_a_1 Int) - (voiture.usr.move_a_1 Bool) - (voiture.usr.second_a_1 Bool) - (voiture.usr.meter_a_1 Bool) - (voiture.res.init_flag_a_1 Bool) - (voiture.res.abs_0_a_1 Bool) - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) - (= voiture.usr.second_a_1 voiture.usr.s_a_1) - (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) - (= - voiture.usr.speed_a_1 - (ite - (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) - 0 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.speed_a_0 1) - voiture.usr.speed_a_0))) - (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) - (= - voiture.usr.time_a_1 - (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) - (= - voiture.usr.dist_a_1 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.dist_a_0 1) - voiture.usr.dist_a_0)) - (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) - (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) - (= - voiture.res.abs_0_a_1 - (and - (and - (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) - (not voiture.usr.toofast_a_1)) - (not voiture.usr.bump_a_1))) - (not voiture.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (< X2 11))) - (__node_init_voiture_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) - (__node_init_excludes2_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.m_a_1 Bool) - (top.usr.s_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (< X2 11))) - (__node_trans_voiture_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_9_a_1 - top.res.abs_10_a_1 - top.res.inst_1_a_1 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes2_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.m Bool) -(declare-primed-var top.usr.s Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10)) - (let - ((X2 Int top.res.abs_3)) - (and - (= top.usr.OK (=> X1 (< X2 11))) - (__node_init_voiture_0 - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) - (__node_init_excludes2_0 - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.m! Bool) - (top.usr.s! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_10!)) - (let - ((X2 Int top.res.abs_3!)) - (and - (= top.usr.OK! (=> X1 (< X2 11))) - (__node_trans_voiture_0 - top.usr.m! - top.usr.s! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_3! - top.res.inst_2! - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_9! - top.res.abs_10! - top.res.inst_1! - top.res.abs_9 - top.res.abs_10 - top.res.inst_1) - (__node_trans_excludes2_0 - top.usr.m! - top.usr.s! - top.res.abs_9! - top.res.inst_0! - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes2_0 ((excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_0 (not (or excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) excludes2.res.init_flag_a_0)) +(define-fun __node_trans_excludes2_0 ((excludes2.usr.X1_a_1 Bool) (excludes2.usr.X2_a_1 Bool) (excludes2.usr.excludes_a_1 Bool) (excludes2.res.init_flag_a_1 Bool) (excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_1 (not (or excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) (not excludes2.res.init_flag_a_1))) +(define-fun __node_init_voiture_0 ((voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.speed_a_0 0) (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) (= voiture.usr.move_a_0 true) (= voiture.usr.time_a_0 0) (= voiture.usr.dist_a_0 0) (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) (= voiture.res.abs_0_a_0 (and (and (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) (not voiture.usr.toofast_a_0)) (not voiture.usr.bump_a_0))) (= voiture.usr.second_a_0 false) (= voiture.usr.meter_a_0 false) voiture.res.init_flag_a_0)) +(define-fun __node_trans_voiture_0 ((voiture.usr.m_a_1 Bool) (voiture.usr.s_a_1 Bool) (voiture.usr.toofast_a_1 Bool) (voiture.usr.stop_a_1 Bool) (voiture.usr.bump_a_1 Bool) (voiture.usr.dist_a_1 Int) (voiture.usr.speed_a_1 Int) (voiture.usr.time_a_1 Int) (voiture.usr.move_a_1 Bool) (voiture.usr.second_a_1 Bool) (voiture.usr.meter_a_1 Bool) (voiture.res.init_flag_a_1 Bool) (voiture.res.abs_0_a_1 Bool) (voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) (= voiture.usr.second_a_1 voiture.usr.s_a_1) (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) (= voiture.usr.speed_a_1 (ite (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) 0 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.speed_a_0 1) voiture.usr.speed_a_0))) (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) (= voiture.usr.time_a_1 (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) (= voiture.usr.dist_a_1 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.dist_a_0 1) voiture.usr.dist_a_0)) (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) (= voiture.res.abs_0_a_1 (and (and (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) (not voiture.usr.toofast_a_1)) (not voiture.usr.bump_a_1))) (not voiture.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_0)) (let ((X2 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (< X2 11))) (__node_init_voiture_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_init_excludes2_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.m_a_1 Bool) (top.usr.s_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_1)) (let ((X2 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (< X2 11))) (__node_trans_voiture_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_9_a_1 top.res.abs_10_a_1 top.res.inst_1_a_1 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_trans_excludes2_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_10)) (let ((X2 top.res.abs_3)) (and (= top.usr.OK (=> X1 (< X2 11))) (__node_init_voiture_0 top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_init_excludes2_0 top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.m! Bool) (top.usr.s! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_10!)) (let ((X2 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (< X2 11))) (__node_trans_voiture_0 top.usr.m! top.usr.s! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_3! top.res.inst_2! top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_9! top.res.abs_10! top.res.inst_1! top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_trans_excludes2_0 top.usr.m! top.usr.s! top.res.abs_9! top.res.inst_0! top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/car_2_e8_491_e7_826.sl b/benchmarks/LIA/Lustre/car_2_e8_491_e7_826.sl index 2a88968..50d7e7a 100644 --- a/benchmarks/LIA/Lustre/car_2_e8_491_e7_826.sl +++ b/benchmarks/LIA/Lustre/car_2_e8_491_e7_826.sl @@ -1,534 +1,31 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes2_0 ( - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_0 - (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) - excludes2.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes2_0 ( - (excludes2.usr.X1_a_1 Bool) - (excludes2.usr.X2_a_1 Bool) - (excludes2.usr.excludes_a_1 Bool) - (excludes2.res.init_flag_a_1 Bool) - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_1 - (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) - (not excludes2.res.init_flag_a_1)) -) - -(define-fun - __node_init_voiture_0 ( - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.speed_a_0 0) - (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) - (= voiture.usr.move_a_0 true) - (= voiture.usr.time_a_0 0) - (= voiture.usr.dist_a_0 0) - (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) - (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) - (= - voiture.res.abs_0_a_0 - (and - (and - (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) - (not voiture.usr.toofast_a_0)) - (not voiture.usr.bump_a_0))) - (= voiture.usr.second_a_0 false) - (= voiture.usr.meter_a_0 false) - voiture.res.init_flag_a_0) -) - -(define-fun - __node_trans_voiture_0 ( - (voiture.usr.m_a_1 Bool) - (voiture.usr.s_a_1 Bool) - (voiture.usr.toofast_a_1 Bool) - (voiture.usr.stop_a_1 Bool) - (voiture.usr.bump_a_1 Bool) - (voiture.usr.dist_a_1 Int) - (voiture.usr.speed_a_1 Int) - (voiture.usr.time_a_1 Int) - (voiture.usr.move_a_1 Bool) - (voiture.usr.second_a_1 Bool) - (voiture.usr.meter_a_1 Bool) - (voiture.res.init_flag_a_1 Bool) - (voiture.res.abs_0_a_1 Bool) - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) - (= voiture.usr.second_a_1 voiture.usr.s_a_1) - (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) - (= - voiture.usr.speed_a_1 - (ite - (and (not voiture.usr.move_a_1) voiture.usr.second_a_1) - 0 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.speed_a_0 1) - voiture.usr.speed_a_0))) - (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) - (= - voiture.usr.time_a_1 - (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) - (= - voiture.usr.dist_a_1 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.dist_a_0 1) - voiture.usr.dist_a_0)) - (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) - (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) - (= - voiture.res.abs_0_a_1 - (and - (and - (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) - (not voiture.usr.toofast_a_1)) - (not voiture.usr.bump_a_1))) - (not voiture.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (< X2 11))) - (__node_init_voiture_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) - (__node_init_excludes2_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.m_a_1 Bool) - (top.usr.s_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (< X2 11))) - (__node_trans_voiture_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_9_a_1 - top.res.abs_10_a_1 - top.res.inst_1_a_1 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes2_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.m Bool) -(declare-primed-var top.usr.s Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10)) - (let - ((X2 Int top.res.abs_3)) - (and - (= top.usr.OK (=> X1 (< X2 11))) - (__node_init_voiture_0 - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) - (__node_init_excludes2_0 - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.m! Bool) - (top.usr.s! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_10!)) - (let - ((X2 Int top.res.abs_3!)) - (and - (= top.usr.OK! (=> X1 (< X2 11))) - (__node_trans_voiture_0 - top.usr.m! - top.usr.s! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_3! - top.res.inst_2! - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_9! - top.res.abs_10! - top.res.inst_1! - top.res.abs_9 - top.res.abs_10 - top.res.inst_1) - (__node_trans_excludes2_0 - top.usr.m! - top.usr.s! - top.res.abs_9! - top.res.inst_0! - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes2_0 ((excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_0 (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) excludes2.res.init_flag_a_0)) +(define-fun __node_trans_excludes2_0 ((excludes2.usr.X1_a_1 Bool) (excludes2.usr.X2_a_1 Bool) (excludes2.usr.excludes_a_1 Bool) (excludes2.res.init_flag_a_1 Bool) (excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_1 (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) (not excludes2.res.init_flag_a_1))) +(define-fun __node_init_voiture_0 ((voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.speed_a_0 0) (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) (= voiture.usr.move_a_0 true) (= voiture.usr.time_a_0 0) (= voiture.usr.dist_a_0 0) (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) (= voiture.res.abs_0_a_0 (and (and (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) (not voiture.usr.toofast_a_0)) (not voiture.usr.bump_a_0))) (= voiture.usr.second_a_0 false) (= voiture.usr.meter_a_0 false) voiture.res.init_flag_a_0)) +(define-fun __node_trans_voiture_0 ((voiture.usr.m_a_1 Bool) (voiture.usr.s_a_1 Bool) (voiture.usr.toofast_a_1 Bool) (voiture.usr.stop_a_1 Bool) (voiture.usr.bump_a_1 Bool) (voiture.usr.dist_a_1 Int) (voiture.usr.speed_a_1 Int) (voiture.usr.time_a_1 Int) (voiture.usr.move_a_1 Bool) (voiture.usr.second_a_1 Bool) (voiture.usr.meter_a_1 Bool) (voiture.res.init_flag_a_1 Bool) (voiture.res.abs_0_a_1 Bool) (voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) (= voiture.usr.second_a_1 voiture.usr.s_a_1) (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) (= voiture.usr.speed_a_1 (ite (and (not voiture.usr.move_a_1) voiture.usr.second_a_1) 0 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.speed_a_0 1) voiture.usr.speed_a_0))) (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) (= voiture.usr.time_a_1 (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) (= voiture.usr.dist_a_1 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.dist_a_0 1) voiture.usr.dist_a_0)) (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) (= voiture.res.abs_0_a_1 (and (and (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) (not voiture.usr.toofast_a_1)) (not voiture.usr.bump_a_1))) (not voiture.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_0)) (let ((X2 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (< X2 11))) (__node_init_voiture_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_init_excludes2_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.m_a_1 Bool) (top.usr.s_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_1)) (let ((X2 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (< X2 11))) (__node_trans_voiture_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_9_a_1 top.res.abs_10_a_1 top.res.inst_1_a_1 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_trans_excludes2_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_10)) (let ((X2 top.res.abs_3)) (and (= top.usr.OK (=> X1 (< X2 11))) (__node_init_voiture_0 top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_init_excludes2_0 top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.m! Bool) (top.usr.s! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_10!)) (let ((X2 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (< X2 11))) (__node_trans_voiture_0 top.usr.m! top.usr.s! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_3! top.res.inst_2! top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_9! top.res.abs_10! top.res.inst_1! top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_trans_excludes2_0 top.usr.m! top.usr.s! top.res.abs_9! top.res.inst_0! top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/car_3.sl b/benchmarks/LIA/Lustre/car_3.sl index 666731e..a6dc95f 100644 --- a/benchmarks/LIA/Lustre/car_3.sl +++ b/benchmarks/LIA/Lustre/car_3.sl @@ -1,534 +1,31 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes2_0 ( - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_0 - (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) - excludes2.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes2_0 ( - (excludes2.usr.X1_a_1 Bool) - (excludes2.usr.X2_a_1 Bool) - (excludes2.usr.excludes_a_1 Bool) - (excludes2.res.init_flag_a_1 Bool) - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_1 - (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) - (not excludes2.res.init_flag_a_1)) -) - -(define-fun - __node_init_voiture_0 ( - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.speed_a_0 0) - (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) - (= voiture.usr.move_a_0 true) - (= voiture.usr.time_a_0 0) - (= voiture.usr.dist_a_0 0) - (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) - (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) - (= - voiture.res.abs_0_a_0 - (and - (and - (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) - (not voiture.usr.toofast_a_0)) - (not voiture.usr.bump_a_0))) - (= voiture.usr.second_a_0 false) - (= voiture.usr.meter_a_0 false) - voiture.res.init_flag_a_0) -) - -(define-fun - __node_trans_voiture_0 ( - (voiture.usr.m_a_1 Bool) - (voiture.usr.s_a_1 Bool) - (voiture.usr.toofast_a_1 Bool) - (voiture.usr.stop_a_1 Bool) - (voiture.usr.bump_a_1 Bool) - (voiture.usr.dist_a_1 Int) - (voiture.usr.speed_a_1 Int) - (voiture.usr.time_a_1 Int) - (voiture.usr.move_a_1 Bool) - (voiture.usr.second_a_1 Bool) - (voiture.usr.meter_a_1 Bool) - (voiture.res.init_flag_a_1 Bool) - (voiture.res.abs_0_a_1 Bool) - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) - (= voiture.usr.second_a_1 voiture.usr.s_a_1) - (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) - (= - voiture.usr.speed_a_1 - (ite - (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) - 0 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.speed_a_0 1) - voiture.usr.speed_a_0))) - (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) - (= - voiture.usr.time_a_1 - (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) - (= - voiture.usr.dist_a_1 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.dist_a_0 1) - voiture.usr.dist_a_0)) - (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) - (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) - (= - voiture.res.abs_0_a_1 - (and - (and - (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) - (not voiture.usr.toofast_a_1)) - (not voiture.usr.bump_a_1))) - (not voiture.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (< X2 4))) - (__node_init_voiture_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) - (__node_init_excludes2_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.m_a_1 Bool) - (top.usr.s_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (< X2 4))) - (__node_trans_voiture_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_9_a_1 - top.res.abs_10_a_1 - top.res.inst_1_a_1 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes2_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.m Bool) -(declare-primed-var top.usr.s Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10)) - (let - ((X2 Int top.res.abs_4)) - (and - (= top.usr.OK (=> X1 (< X2 4))) - (__node_init_voiture_0 - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) - (__node_init_excludes2_0 - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.m! Bool) - (top.usr.s! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_10!)) - (let - ((X2 Int top.res.abs_4!)) - (and - (= top.usr.OK! (=> X1 (< X2 4))) - (__node_trans_voiture_0 - top.usr.m! - top.usr.s! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_3! - top.res.inst_2! - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_9! - top.res.abs_10! - top.res.inst_1! - top.res.abs_9 - top.res.abs_10 - top.res.inst_1) - (__node_trans_excludes2_0 - top.usr.m! - top.usr.s! - top.res.abs_9! - top.res.inst_0! - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes2_0 ((excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_0 (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) excludes2.res.init_flag_a_0)) +(define-fun __node_trans_excludes2_0 ((excludes2.usr.X1_a_1 Bool) (excludes2.usr.X2_a_1 Bool) (excludes2.usr.excludes_a_1 Bool) (excludes2.res.init_flag_a_1 Bool) (excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_1 (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) (not excludes2.res.init_flag_a_1))) +(define-fun __node_init_voiture_0 ((voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.speed_a_0 0) (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) (= voiture.usr.move_a_0 true) (= voiture.usr.time_a_0 0) (= voiture.usr.dist_a_0 0) (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) (= voiture.res.abs_0_a_0 (and (and (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) (not voiture.usr.toofast_a_0)) (not voiture.usr.bump_a_0))) (= voiture.usr.second_a_0 false) (= voiture.usr.meter_a_0 false) voiture.res.init_flag_a_0)) +(define-fun __node_trans_voiture_0 ((voiture.usr.m_a_1 Bool) (voiture.usr.s_a_1 Bool) (voiture.usr.toofast_a_1 Bool) (voiture.usr.stop_a_1 Bool) (voiture.usr.bump_a_1 Bool) (voiture.usr.dist_a_1 Int) (voiture.usr.speed_a_1 Int) (voiture.usr.time_a_1 Int) (voiture.usr.move_a_1 Bool) (voiture.usr.second_a_1 Bool) (voiture.usr.meter_a_1 Bool) (voiture.res.init_flag_a_1 Bool) (voiture.res.abs_0_a_1 Bool) (voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) (= voiture.usr.second_a_1 voiture.usr.s_a_1) (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) (= voiture.usr.speed_a_1 (ite (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) 0 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.speed_a_0 1) voiture.usr.speed_a_0))) (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) (= voiture.usr.time_a_1 (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) (= voiture.usr.dist_a_1 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.dist_a_0 1) voiture.usr.dist_a_0)) (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) (= voiture.res.abs_0_a_1 (and (and (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) (not voiture.usr.toofast_a_1)) (not voiture.usr.bump_a_1))) (not voiture.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_0)) (let ((X2 top.res.abs_4_a_0)) (and (= top.usr.OK_a_0 (=> X1 (< X2 4))) (__node_init_voiture_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_init_excludes2_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.m_a_1 Bool) (top.usr.s_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_1)) (let ((X2 top.res.abs_4_a_1)) (and (= top.usr.OK_a_1 (=> X1 (< X2 4))) (__node_trans_voiture_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_9_a_1 top.res.abs_10_a_1 top.res.inst_1_a_1 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_trans_excludes2_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_10)) (let ((X2 top.res.abs_4)) (and (= top.usr.OK (=> X1 (< X2 4))) (__node_init_voiture_0 top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_init_excludes2_0 top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.m! Bool) (top.usr.s! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_10!)) (let ((X2 top.res.abs_4!)) (and (= top.usr.OK! (=> X1 (< X2 4))) (__node_trans_voiture_0 top.usr.m! top.usr.s! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_3! top.res.inst_2! top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_9! top.res.abs_10! top.res.inst_1! top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_trans_excludes2_0 top.usr.m! top.usr.s! top.res.abs_9! top.res.inst_0! top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/car_3_e2_695.sl b/benchmarks/LIA/Lustre/car_3_e2_695.sl index 2c21a8b..e6c1217 100644 --- a/benchmarks/LIA/Lustre/car_3_e2_695.sl +++ b/benchmarks/LIA/Lustre/car_3_e2_695.sl @@ -1,534 +1,31 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes2_0 ( - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_0 - (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) - excludes2.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes2_0 ( - (excludes2.usr.X1_a_1 Bool) - (excludes2.usr.X2_a_1 Bool) - (excludes2.usr.excludes_a_1 Bool) - (excludes2.res.init_flag_a_1 Bool) - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_1 - (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) - (not excludes2.res.init_flag_a_1)) -) - -(define-fun - __node_init_voiture_0 ( - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.speed_a_0 0) - (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) - (= voiture.usr.move_a_0 true) - (= voiture.usr.time_a_0 0) - (= voiture.usr.dist_a_0 0) - (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) - (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) - (= - voiture.res.abs_0_a_0 - (and - (and - (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) - (not voiture.usr.toofast_a_0)) - (not voiture.usr.bump_a_0))) - (= voiture.usr.second_a_0 false) - (= voiture.usr.meter_a_0 false) - voiture.res.init_flag_a_0) -) - -(define-fun - __node_trans_voiture_0 ( - (voiture.usr.m_a_1 Bool) - (voiture.usr.s_a_1 Bool) - (voiture.usr.toofast_a_1 Bool) - (voiture.usr.stop_a_1 Bool) - (voiture.usr.bump_a_1 Bool) - (voiture.usr.dist_a_1 Int) - (voiture.usr.speed_a_1 Int) - (voiture.usr.time_a_1 Int) - (voiture.usr.move_a_1 Bool) - (voiture.usr.second_a_1 Bool) - (voiture.usr.meter_a_1 Bool) - (voiture.res.init_flag_a_1 Bool) - (voiture.res.abs_0_a_1 Bool) - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) - (= voiture.usr.second_a_1 voiture.usr.s_a_1) - (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) - (= - voiture.usr.speed_a_1 - (ite - (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) - 0 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ (- voiture.usr.speed_a_0 1) 1) - voiture.usr.speed_a_0))) - (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) - (= - voiture.usr.time_a_1 - (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) - (= - voiture.usr.dist_a_1 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.dist_a_0 1) - voiture.usr.dist_a_0)) - (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) - (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) - (= - voiture.res.abs_0_a_1 - (and - (and - (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) - (not voiture.usr.toofast_a_1)) - (not voiture.usr.bump_a_1))) - (not voiture.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (< X2 4))) - (__node_init_voiture_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) - (__node_init_excludes2_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.m_a_1 Bool) - (top.usr.s_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (< X2 4))) - (__node_trans_voiture_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_9_a_1 - top.res.abs_10_a_1 - top.res.inst_1_a_1 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes2_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.m Bool) -(declare-primed-var top.usr.s Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10)) - (let - ((X2 Int top.res.abs_4)) - (and - (= top.usr.OK (=> X1 (< X2 4))) - (__node_init_voiture_0 - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) - (__node_init_excludes2_0 - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.m! Bool) - (top.usr.s! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_10!)) - (let - ((X2 Int top.res.abs_4!)) - (and - (= top.usr.OK! (=> X1 (< X2 4))) - (__node_trans_voiture_0 - top.usr.m! - top.usr.s! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_3! - top.res.inst_2! - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_9! - top.res.abs_10! - top.res.inst_1! - top.res.abs_9 - top.res.abs_10 - top.res.inst_1) - (__node_trans_excludes2_0 - top.usr.m! - top.usr.s! - top.res.abs_9! - top.res.inst_0! - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes2_0 ((excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_0 (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) excludes2.res.init_flag_a_0)) +(define-fun __node_trans_excludes2_0 ((excludes2.usr.X1_a_1 Bool) (excludes2.usr.X2_a_1 Bool) (excludes2.usr.excludes_a_1 Bool) (excludes2.res.init_flag_a_1 Bool) (excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_1 (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) (not excludes2.res.init_flag_a_1))) +(define-fun __node_init_voiture_0 ((voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.speed_a_0 0) (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) (= voiture.usr.move_a_0 true) (= voiture.usr.time_a_0 0) (= voiture.usr.dist_a_0 0) (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) (= voiture.res.abs_0_a_0 (and (and (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) (not voiture.usr.toofast_a_0)) (not voiture.usr.bump_a_0))) (= voiture.usr.second_a_0 false) (= voiture.usr.meter_a_0 false) voiture.res.init_flag_a_0)) +(define-fun __node_trans_voiture_0 ((voiture.usr.m_a_1 Bool) (voiture.usr.s_a_1 Bool) (voiture.usr.toofast_a_1 Bool) (voiture.usr.stop_a_1 Bool) (voiture.usr.bump_a_1 Bool) (voiture.usr.dist_a_1 Int) (voiture.usr.speed_a_1 Int) (voiture.usr.time_a_1 Int) (voiture.usr.move_a_1 Bool) (voiture.usr.second_a_1 Bool) (voiture.usr.meter_a_1 Bool) (voiture.res.init_flag_a_1 Bool) (voiture.res.abs_0_a_1 Bool) (voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) (= voiture.usr.second_a_1 voiture.usr.s_a_1) (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) (= voiture.usr.speed_a_1 (ite (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) 0 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ (- voiture.usr.speed_a_0 1) 1) voiture.usr.speed_a_0))) (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) (= voiture.usr.time_a_1 (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) (= voiture.usr.dist_a_1 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.dist_a_0 1) voiture.usr.dist_a_0)) (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) (= voiture.res.abs_0_a_1 (and (and (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) (not voiture.usr.toofast_a_1)) (not voiture.usr.bump_a_1))) (not voiture.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_0)) (let ((X2 top.res.abs_4_a_0)) (and (= top.usr.OK_a_0 (=> X1 (< X2 4))) (__node_init_voiture_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_init_excludes2_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.m_a_1 Bool) (top.usr.s_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_1)) (let ((X2 top.res.abs_4_a_1)) (and (= top.usr.OK_a_1 (=> X1 (< X2 4))) (__node_trans_voiture_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_9_a_1 top.res.abs_10_a_1 top.res.inst_1_a_1 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_trans_excludes2_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_10)) (let ((X2 top.res.abs_4)) (and (= top.usr.OK (=> X1 (< X2 4))) (__node_init_voiture_0 top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_init_excludes2_0 top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.m! Bool) (top.usr.s! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_10!)) (let ((X2 top.res.abs_4!)) (and (= top.usr.OK! (=> X1 (< X2 4))) (__node_trans_voiture_0 top.usr.m! top.usr.s! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_3! top.res.inst_2! top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_9! top.res.abs_10! top.res.inst_1! top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_trans_excludes2_0 top.usr.m! top.usr.s! top.res.abs_9! top.res.inst_0! top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/car_3_e2_777.sl b/benchmarks/LIA/Lustre/car_3_e2_777.sl index 2c21a8b..e6c1217 100644 --- a/benchmarks/LIA/Lustre/car_3_e2_777.sl +++ b/benchmarks/LIA/Lustre/car_3_e2_777.sl @@ -1,534 +1,31 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes2_0 ( - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_0 - (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) - excludes2.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes2_0 ( - (excludes2.usr.X1_a_1 Bool) - (excludes2.usr.X2_a_1 Bool) - (excludes2.usr.excludes_a_1 Bool) - (excludes2.res.init_flag_a_1 Bool) - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_1 - (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) - (not excludes2.res.init_flag_a_1)) -) - -(define-fun - __node_init_voiture_0 ( - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.speed_a_0 0) - (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) - (= voiture.usr.move_a_0 true) - (= voiture.usr.time_a_0 0) - (= voiture.usr.dist_a_0 0) - (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) - (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) - (= - voiture.res.abs_0_a_0 - (and - (and - (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) - (not voiture.usr.toofast_a_0)) - (not voiture.usr.bump_a_0))) - (= voiture.usr.second_a_0 false) - (= voiture.usr.meter_a_0 false) - voiture.res.init_flag_a_0) -) - -(define-fun - __node_trans_voiture_0 ( - (voiture.usr.m_a_1 Bool) - (voiture.usr.s_a_1 Bool) - (voiture.usr.toofast_a_1 Bool) - (voiture.usr.stop_a_1 Bool) - (voiture.usr.bump_a_1 Bool) - (voiture.usr.dist_a_1 Int) - (voiture.usr.speed_a_1 Int) - (voiture.usr.time_a_1 Int) - (voiture.usr.move_a_1 Bool) - (voiture.usr.second_a_1 Bool) - (voiture.usr.meter_a_1 Bool) - (voiture.res.init_flag_a_1 Bool) - (voiture.res.abs_0_a_1 Bool) - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) - (= voiture.usr.second_a_1 voiture.usr.s_a_1) - (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) - (= - voiture.usr.speed_a_1 - (ite - (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) - 0 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ (- voiture.usr.speed_a_0 1) 1) - voiture.usr.speed_a_0))) - (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) - (= - voiture.usr.time_a_1 - (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) - (= - voiture.usr.dist_a_1 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.dist_a_0 1) - voiture.usr.dist_a_0)) - (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) - (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) - (= - voiture.res.abs_0_a_1 - (and - (and - (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) - (not voiture.usr.toofast_a_1)) - (not voiture.usr.bump_a_1))) - (not voiture.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (< X2 4))) - (__node_init_voiture_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) - (__node_init_excludes2_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.m_a_1 Bool) - (top.usr.s_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (< X2 4))) - (__node_trans_voiture_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_9_a_1 - top.res.abs_10_a_1 - top.res.inst_1_a_1 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes2_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.m Bool) -(declare-primed-var top.usr.s Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10)) - (let - ((X2 Int top.res.abs_4)) - (and - (= top.usr.OK (=> X1 (< X2 4))) - (__node_init_voiture_0 - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) - (__node_init_excludes2_0 - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.m! Bool) - (top.usr.s! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_10!)) - (let - ((X2 Int top.res.abs_4!)) - (and - (= top.usr.OK! (=> X1 (< X2 4))) - (__node_trans_voiture_0 - top.usr.m! - top.usr.s! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_3! - top.res.inst_2! - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_9! - top.res.abs_10! - top.res.inst_1! - top.res.abs_9 - top.res.abs_10 - top.res.inst_1) - (__node_trans_excludes2_0 - top.usr.m! - top.usr.s! - top.res.abs_9! - top.res.inst_0! - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes2_0 ((excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_0 (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) excludes2.res.init_flag_a_0)) +(define-fun __node_trans_excludes2_0 ((excludes2.usr.X1_a_1 Bool) (excludes2.usr.X2_a_1 Bool) (excludes2.usr.excludes_a_1 Bool) (excludes2.res.init_flag_a_1 Bool) (excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_1 (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) (not excludes2.res.init_flag_a_1))) +(define-fun __node_init_voiture_0 ((voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.speed_a_0 0) (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) (= voiture.usr.move_a_0 true) (= voiture.usr.time_a_0 0) (= voiture.usr.dist_a_0 0) (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) (= voiture.res.abs_0_a_0 (and (and (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) (not voiture.usr.toofast_a_0)) (not voiture.usr.bump_a_0))) (= voiture.usr.second_a_0 false) (= voiture.usr.meter_a_0 false) voiture.res.init_flag_a_0)) +(define-fun __node_trans_voiture_0 ((voiture.usr.m_a_1 Bool) (voiture.usr.s_a_1 Bool) (voiture.usr.toofast_a_1 Bool) (voiture.usr.stop_a_1 Bool) (voiture.usr.bump_a_1 Bool) (voiture.usr.dist_a_1 Int) (voiture.usr.speed_a_1 Int) (voiture.usr.time_a_1 Int) (voiture.usr.move_a_1 Bool) (voiture.usr.second_a_1 Bool) (voiture.usr.meter_a_1 Bool) (voiture.res.init_flag_a_1 Bool) (voiture.res.abs_0_a_1 Bool) (voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) (= voiture.usr.second_a_1 voiture.usr.s_a_1) (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) (= voiture.usr.speed_a_1 (ite (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) 0 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ (- voiture.usr.speed_a_0 1) 1) voiture.usr.speed_a_0))) (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) (= voiture.usr.time_a_1 (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) (= voiture.usr.dist_a_1 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.dist_a_0 1) voiture.usr.dist_a_0)) (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) (= voiture.res.abs_0_a_1 (and (and (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) (not voiture.usr.toofast_a_1)) (not voiture.usr.bump_a_1))) (not voiture.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_0)) (let ((X2 top.res.abs_4_a_0)) (and (= top.usr.OK_a_0 (=> X1 (< X2 4))) (__node_init_voiture_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_init_excludes2_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.m_a_1 Bool) (top.usr.s_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_1)) (let ((X2 top.res.abs_4_a_1)) (and (= top.usr.OK_a_1 (=> X1 (< X2 4))) (__node_trans_voiture_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_9_a_1 top.res.abs_10_a_1 top.res.inst_1_a_1 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_trans_excludes2_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_10)) (let ((X2 top.res.abs_4)) (and (= top.usr.OK (=> X1 (< X2 4))) (__node_init_voiture_0 top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_init_excludes2_0 top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.m! Bool) (top.usr.s! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_10!)) (let ((X2 top.res.abs_4!)) (and (= top.usr.OK! (=> X1 (< X2 4))) (__node_trans_voiture_0 top.usr.m! top.usr.s! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_3! top.res.inst_2! top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_9! top.res.abs_10! top.res.inst_1! top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_trans_excludes2_0 top.usr.m! top.usr.s! top.res.abs_9! top.res.inst_0! top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/car_3_e7_626.sl b/benchmarks/LIA/Lustre/car_3_e7_626.sl index 4257090..25e2784 100644 --- a/benchmarks/LIA/Lustre/car_3_e7_626.sl +++ b/benchmarks/LIA/Lustre/car_3_e7_626.sl @@ -1,534 +1,31 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes2_0 ( - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_0 - (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) - excludes2.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes2_0 ( - (excludes2.usr.X1_a_1 Bool) - (excludes2.usr.X2_a_1 Bool) - (excludes2.usr.excludes_a_1 Bool) - (excludes2.res.init_flag_a_1 Bool) - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_1 - (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) - (not excludes2.res.init_flag_a_1)) -) - -(define-fun - __node_init_voiture_0 ( - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.speed_a_0 0) - (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) - (= voiture.usr.move_a_0 true) - (= voiture.usr.time_a_0 0) - (= voiture.usr.dist_a_0 0) - (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) - (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) - (= - voiture.res.abs_0_a_0 - (and - (and - (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) - (not voiture.usr.toofast_a_0)) - (not voiture.usr.bump_a_0))) - (= voiture.usr.second_a_0 false) - (= voiture.usr.meter_a_0 false) - voiture.res.init_flag_a_0) -) - -(define-fun - __node_trans_voiture_0 ( - (voiture.usr.m_a_1 Bool) - (voiture.usr.s_a_1 Bool) - (voiture.usr.toofast_a_1 Bool) - (voiture.usr.stop_a_1 Bool) - (voiture.usr.bump_a_1 Bool) - (voiture.usr.dist_a_1 Int) - (voiture.usr.speed_a_1 Int) - (voiture.usr.time_a_1 Int) - (voiture.usr.move_a_1 Bool) - (voiture.usr.second_a_1 Bool) - (voiture.usr.meter_a_1 Bool) - (voiture.res.init_flag_a_1 Bool) - (voiture.res.abs_0_a_1 Bool) - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) - (= voiture.usr.second_a_1 voiture.usr.s_a_1) - (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) - (= - voiture.usr.speed_a_1 - (ite - (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) - 0 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.speed_a_0 1) - voiture.usr.speed_a_0))) - (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) - (= - voiture.usr.time_a_1 - (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) - (= - voiture.usr.dist_a_1 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.dist_a_0 1) - voiture.usr.dist_a_0)) - (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) - (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) - (= - voiture.res.abs_0_a_1 - (and - (and - (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) - (not voiture.usr.toofast_a_1)) - (not voiture.usr.bump_a_1))) - (not voiture.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (< X2 4))) - (__node_init_voiture_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) - (__node_init_excludes2_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.m_a_1 Bool) - (top.usr.s_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (< X2 4))) - (__node_trans_voiture_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_9_a_1 - top.res.abs_10_a_1 - top.res.inst_1_a_1 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes2_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.m Bool) -(declare-primed-var top.usr.s Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10)) - (let - ((X2 Int top.res.abs_4)) - (and - (= top.usr.OK (=> X1 (< X2 4))) - (__node_init_voiture_0 - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) - (__node_init_excludes2_0 - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.m! Bool) - (top.usr.s! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_10!)) - (let - ((X2 Int top.res.abs_4!)) - (and - (= top.usr.OK! (=> X1 (< X2 4))) - (__node_trans_voiture_0 - top.usr.m! - top.usr.s! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_3! - top.res.inst_2! - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_9! - top.res.abs_10! - top.res.inst_1! - top.res.abs_9 - top.res.abs_10 - top.res.inst_1) - (__node_trans_excludes2_0 - top.usr.m! - top.usr.s! - top.res.abs_9! - top.res.inst_0! - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes2_0 ((excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_0 (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) excludes2.res.init_flag_a_0)) +(define-fun __node_trans_excludes2_0 ((excludes2.usr.X1_a_1 Bool) (excludes2.usr.X2_a_1 Bool) (excludes2.usr.excludes_a_1 Bool) (excludes2.res.init_flag_a_1 Bool) (excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_1 (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) (not excludes2.res.init_flag_a_1))) +(define-fun __node_init_voiture_0 ((voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.speed_a_0 0) (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) (= voiture.usr.move_a_0 true) (= voiture.usr.time_a_0 0) (= voiture.usr.dist_a_0 0) (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) (= voiture.res.abs_0_a_0 (and (and (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) (not voiture.usr.toofast_a_0)) (not voiture.usr.bump_a_0))) (= voiture.usr.second_a_0 false) (= voiture.usr.meter_a_0 false) voiture.res.init_flag_a_0)) +(define-fun __node_trans_voiture_0 ((voiture.usr.m_a_1 Bool) (voiture.usr.s_a_1 Bool) (voiture.usr.toofast_a_1 Bool) (voiture.usr.stop_a_1 Bool) (voiture.usr.bump_a_1 Bool) (voiture.usr.dist_a_1 Int) (voiture.usr.speed_a_1 Int) (voiture.usr.time_a_1 Int) (voiture.usr.move_a_1 Bool) (voiture.usr.second_a_1 Bool) (voiture.usr.meter_a_1 Bool) (voiture.res.init_flag_a_1 Bool) (voiture.res.abs_0_a_1 Bool) (voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) (= voiture.usr.second_a_1 voiture.usr.s_a_1) (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) (= voiture.usr.speed_a_1 (ite (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) 0 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.speed_a_0 1) voiture.usr.speed_a_0))) (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) (= voiture.usr.time_a_1 (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) (= voiture.usr.dist_a_1 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.dist_a_0 1) voiture.usr.dist_a_0)) (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) (= voiture.res.abs_0_a_1 (and (and (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) (not voiture.usr.toofast_a_1)) (not voiture.usr.bump_a_1))) (not voiture.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_0)) (let ((X2 top.res.abs_4_a_0)) (and (= top.usr.OK_a_0 (=> X1 (< X2 4))) (__node_init_voiture_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_init_excludes2_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.m_a_1 Bool) (top.usr.s_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_1)) (let ((X2 top.res.abs_4_a_1)) (and (= top.usr.OK_a_1 (=> X1 (< X2 4))) (__node_trans_voiture_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_9_a_1 top.res.abs_10_a_1 top.res.inst_1_a_1 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_trans_excludes2_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_10)) (let ((X2 top.res.abs_4)) (and (= top.usr.OK (=> X1 (< X2 4))) (__node_init_voiture_0 top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_init_excludes2_0 top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.m! Bool) (top.usr.s! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_10!)) (let ((X2 top.res.abs_4!)) (and (= top.usr.OK! (=> X1 (< X2 4))) (__node_trans_voiture_0 top.usr.m! top.usr.s! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_3! top.res.inst_2! top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_9! top.res.abs_10! top.res.inst_1! top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_trans_excludes2_0 top.usr.m! top.usr.s! top.res.abs_9! top.res.inst_0! top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/car_3_e8_33.sl b/benchmarks/LIA/Lustre/car_3_e8_33.sl index f9f415f..bcb78e3 100644 --- a/benchmarks/LIA/Lustre/car_3_e8_33.sl +++ b/benchmarks/LIA/Lustre/car_3_e8_33.sl @@ -1,534 +1,31 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes2_0 ( - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_0 - (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) - excludes2.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes2_0 ( - (excludes2.usr.X1_a_1 Bool) - (excludes2.usr.X2_a_1 Bool) - (excludes2.usr.excludes_a_1 Bool) - (excludes2.res.init_flag_a_1 Bool) - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_1 - (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) - (not excludes2.res.init_flag_a_1)) -) - -(define-fun - __node_init_voiture_0 ( - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.speed_a_0 0) - (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) - (= voiture.usr.move_a_0 true) - (= voiture.usr.time_a_0 0) - (= voiture.usr.dist_a_0 0) - (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) - (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) - (= - voiture.res.abs_0_a_0 - (and - (and - (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) - (not voiture.usr.toofast_a_0)) - (not voiture.usr.bump_a_0))) - (= voiture.usr.second_a_0 false) - (= voiture.usr.meter_a_0 false) - voiture.res.init_flag_a_0) -) - -(define-fun - __node_trans_voiture_0 ( - (voiture.usr.m_a_1 Bool) - (voiture.usr.s_a_1 Bool) - (voiture.usr.toofast_a_1 Bool) - (voiture.usr.stop_a_1 Bool) - (voiture.usr.bump_a_1 Bool) - (voiture.usr.dist_a_1 Int) - (voiture.usr.speed_a_1 Int) - (voiture.usr.time_a_1 Int) - (voiture.usr.move_a_1 Bool) - (voiture.usr.second_a_1 Bool) - (voiture.usr.meter_a_1 Bool) - (voiture.res.init_flag_a_1 Bool) - (voiture.res.abs_0_a_1 Bool) - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) - (= voiture.usr.second_a_1 voiture.usr.s_a_1) - (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) - (= - voiture.usr.speed_a_1 - (ite - (and (not voiture.usr.move_a_1) voiture.usr.second_a_1) - 0 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.speed_a_0 1) - voiture.usr.speed_a_0))) - (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) - (= - voiture.usr.time_a_1 - (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) - (= - voiture.usr.dist_a_1 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.dist_a_0 1) - voiture.usr.dist_a_0)) - (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) - (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) - (= - voiture.res.abs_0_a_1 - (and - (and - (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) - (not voiture.usr.toofast_a_1)) - (not voiture.usr.bump_a_1))) - (not voiture.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (< X2 4))) - (__node_init_voiture_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) - (__node_init_excludes2_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.m_a_1 Bool) - (top.usr.s_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (< X2 4))) - (__node_trans_voiture_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_9_a_1 - top.res.abs_10_a_1 - top.res.inst_1_a_1 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes2_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.m Bool) -(declare-primed-var top.usr.s Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10)) - (let - ((X2 Int top.res.abs_4)) - (and - (= top.usr.OK (=> X1 (< X2 4))) - (__node_init_voiture_0 - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) - (__node_init_excludes2_0 - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.m! Bool) - (top.usr.s! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_10!)) - (let - ((X2 Int top.res.abs_4!)) - (and - (= top.usr.OK! (=> X1 (< X2 4))) - (__node_trans_voiture_0 - top.usr.m! - top.usr.s! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_3! - top.res.inst_2! - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_9! - top.res.abs_10! - top.res.inst_1! - top.res.abs_9 - top.res.abs_10 - top.res.inst_1) - (__node_trans_excludes2_0 - top.usr.m! - top.usr.s! - top.res.abs_9! - top.res.inst_0! - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes2_0 ((excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_0 (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) excludes2.res.init_flag_a_0)) +(define-fun __node_trans_excludes2_0 ((excludes2.usr.X1_a_1 Bool) (excludes2.usr.X2_a_1 Bool) (excludes2.usr.excludes_a_1 Bool) (excludes2.res.init_flag_a_1 Bool) (excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_1 (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) (not excludes2.res.init_flag_a_1))) +(define-fun __node_init_voiture_0 ((voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.speed_a_0 0) (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) (= voiture.usr.move_a_0 true) (= voiture.usr.time_a_0 0) (= voiture.usr.dist_a_0 0) (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) (= voiture.res.abs_0_a_0 (and (and (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) (not voiture.usr.toofast_a_0)) (not voiture.usr.bump_a_0))) (= voiture.usr.second_a_0 false) (= voiture.usr.meter_a_0 false) voiture.res.init_flag_a_0)) +(define-fun __node_trans_voiture_0 ((voiture.usr.m_a_1 Bool) (voiture.usr.s_a_1 Bool) (voiture.usr.toofast_a_1 Bool) (voiture.usr.stop_a_1 Bool) (voiture.usr.bump_a_1 Bool) (voiture.usr.dist_a_1 Int) (voiture.usr.speed_a_1 Int) (voiture.usr.time_a_1 Int) (voiture.usr.move_a_1 Bool) (voiture.usr.second_a_1 Bool) (voiture.usr.meter_a_1 Bool) (voiture.res.init_flag_a_1 Bool) (voiture.res.abs_0_a_1 Bool) (voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) (= voiture.usr.second_a_1 voiture.usr.s_a_1) (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) (= voiture.usr.speed_a_1 (ite (and (not voiture.usr.move_a_1) voiture.usr.second_a_1) 0 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.speed_a_0 1) voiture.usr.speed_a_0))) (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) (= voiture.usr.time_a_1 (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) (= voiture.usr.dist_a_1 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.dist_a_0 1) voiture.usr.dist_a_0)) (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) (= voiture.res.abs_0_a_1 (and (and (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) (not voiture.usr.toofast_a_1)) (not voiture.usr.bump_a_1))) (not voiture.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_0)) (let ((X2 top.res.abs_4_a_0)) (and (= top.usr.OK_a_0 (=> X1 (< X2 4))) (__node_init_voiture_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_init_excludes2_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.m_a_1 Bool) (top.usr.s_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_1)) (let ((X2 top.res.abs_4_a_1)) (and (= top.usr.OK_a_1 (=> X1 (< X2 4))) (__node_trans_voiture_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_9_a_1 top.res.abs_10_a_1 top.res.inst_1_a_1 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_trans_excludes2_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_10)) (let ((X2 top.res.abs_4)) (and (= top.usr.OK (=> X1 (< X2 4))) (__node_init_voiture_0 top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_init_excludes2_0 top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.m! Bool) (top.usr.s! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_10!)) (let ((X2 top.res.abs_4!)) (and (= top.usr.OK! (=> X1 (< X2 4))) (__node_trans_voiture_0 top.usr.m! top.usr.s! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_3! top.res.inst_2! top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_9! top.res.abs_10! top.res.inst_1! top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_trans_excludes2_0 top.usr.m! top.usr.s! top.res.abs_9! top.res.inst_0! top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/car_3_e8_33_e2_1010.sl b/benchmarks/LIA/Lustre/car_3_e8_33_e2_1010.sl index e6ba5bc..d08b13a 100644 --- a/benchmarks/LIA/Lustre/car_3_e8_33_e2_1010.sl +++ b/benchmarks/LIA/Lustre/car_3_e8_33_e2_1010.sl @@ -1,534 +1,31 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes2_0 ( - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_0 - (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) - excludes2.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes2_0 ( - (excludes2.usr.X1_a_1 Bool) - (excludes2.usr.X2_a_1 Bool) - (excludes2.usr.excludes_a_1 Bool) - (excludes2.res.init_flag_a_1 Bool) - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_1 - (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) - (not excludes2.res.init_flag_a_1)) -) - -(define-fun - __node_init_voiture_0 ( - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.speed_a_0 0) - (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) - (= voiture.usr.move_a_0 true) - (= voiture.usr.time_a_0 0) - (= voiture.usr.dist_a_0 0) - (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) - (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) - (= - voiture.res.abs_0_a_0 - (and - (and - (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) - (not voiture.usr.toofast_a_0)) - (not voiture.usr.bump_a_0))) - (= voiture.usr.second_a_0 false) - (= voiture.usr.meter_a_0 false) - voiture.res.init_flag_a_0) -) - -(define-fun - __node_trans_voiture_0 ( - (voiture.usr.m_a_1 Bool) - (voiture.usr.s_a_1 Bool) - (voiture.usr.toofast_a_1 Bool) - (voiture.usr.stop_a_1 Bool) - (voiture.usr.bump_a_1 Bool) - (voiture.usr.dist_a_1 Int) - (voiture.usr.speed_a_1 Int) - (voiture.usr.time_a_1 Int) - (voiture.usr.move_a_1 Bool) - (voiture.usr.second_a_1 Bool) - (voiture.usr.meter_a_1 Bool) - (voiture.res.init_flag_a_1 Bool) - (voiture.res.abs_0_a_1 Bool) - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) - (= voiture.usr.second_a_1 voiture.usr.s_a_1) - (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) - (= - voiture.usr.speed_a_1 - (ite - (and (not voiture.usr.move_a_1) voiture.usr.second_a_1) - 0 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ (- voiture.usr.speed_a_0 1) 1) - voiture.usr.speed_a_0))) - (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) - (= - voiture.usr.time_a_1 - (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) - (= - voiture.usr.dist_a_1 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.dist_a_0 1) - voiture.usr.dist_a_0)) - (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) - (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) - (= - voiture.res.abs_0_a_1 - (and - (and - (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) - (not voiture.usr.toofast_a_1)) - (not voiture.usr.bump_a_1))) - (not voiture.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (< X2 4))) - (__node_init_voiture_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) - (__node_init_excludes2_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.m_a_1 Bool) - (top.usr.s_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (< X2 4))) - (__node_trans_voiture_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_9_a_1 - top.res.abs_10_a_1 - top.res.inst_1_a_1 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes2_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.m Bool) -(declare-primed-var top.usr.s Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10)) - (let - ((X2 Int top.res.abs_4)) - (and - (= top.usr.OK (=> X1 (< X2 4))) - (__node_init_voiture_0 - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) - (__node_init_excludes2_0 - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.m! Bool) - (top.usr.s! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_10!)) - (let - ((X2 Int top.res.abs_4!)) - (and - (= top.usr.OK! (=> X1 (< X2 4))) - (__node_trans_voiture_0 - top.usr.m! - top.usr.s! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_3! - top.res.inst_2! - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_9! - top.res.abs_10! - top.res.inst_1! - top.res.abs_9 - top.res.abs_10 - top.res.inst_1) - (__node_trans_excludes2_0 - top.usr.m! - top.usr.s! - top.res.abs_9! - top.res.inst_0! - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes2_0 ((excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_0 (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) excludes2.res.init_flag_a_0)) +(define-fun __node_trans_excludes2_0 ((excludes2.usr.X1_a_1 Bool) (excludes2.usr.X2_a_1 Bool) (excludes2.usr.excludes_a_1 Bool) (excludes2.res.init_flag_a_1 Bool) (excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_1 (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) (not excludes2.res.init_flag_a_1))) +(define-fun __node_init_voiture_0 ((voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.speed_a_0 0) (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) (= voiture.usr.move_a_0 true) (= voiture.usr.time_a_0 0) (= voiture.usr.dist_a_0 0) (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) (= voiture.res.abs_0_a_0 (and (and (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) (not voiture.usr.toofast_a_0)) (not voiture.usr.bump_a_0))) (= voiture.usr.second_a_0 false) (= voiture.usr.meter_a_0 false) voiture.res.init_flag_a_0)) +(define-fun __node_trans_voiture_0 ((voiture.usr.m_a_1 Bool) (voiture.usr.s_a_1 Bool) (voiture.usr.toofast_a_1 Bool) (voiture.usr.stop_a_1 Bool) (voiture.usr.bump_a_1 Bool) (voiture.usr.dist_a_1 Int) (voiture.usr.speed_a_1 Int) (voiture.usr.time_a_1 Int) (voiture.usr.move_a_1 Bool) (voiture.usr.second_a_1 Bool) (voiture.usr.meter_a_1 Bool) (voiture.res.init_flag_a_1 Bool) (voiture.res.abs_0_a_1 Bool) (voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) (= voiture.usr.second_a_1 voiture.usr.s_a_1) (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) (= voiture.usr.speed_a_1 (ite (and (not voiture.usr.move_a_1) voiture.usr.second_a_1) 0 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ (- voiture.usr.speed_a_0 1) 1) voiture.usr.speed_a_0))) (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) (= voiture.usr.time_a_1 (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) (= voiture.usr.dist_a_1 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.dist_a_0 1) voiture.usr.dist_a_0)) (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) (= voiture.res.abs_0_a_1 (and (and (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) (not voiture.usr.toofast_a_1)) (not voiture.usr.bump_a_1))) (not voiture.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_0)) (let ((X2 top.res.abs_4_a_0)) (and (= top.usr.OK_a_0 (=> X1 (< X2 4))) (__node_init_voiture_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_init_excludes2_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.m_a_1 Bool) (top.usr.s_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_1)) (let ((X2 top.res.abs_4_a_1)) (and (= top.usr.OK_a_1 (=> X1 (< X2 4))) (__node_trans_voiture_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_9_a_1 top.res.abs_10_a_1 top.res.inst_1_a_1 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_trans_excludes2_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_10)) (let ((X2 top.res.abs_4)) (and (= top.usr.OK (=> X1 (< X2 4))) (__node_init_voiture_0 top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_init_excludes2_0 top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.m! Bool) (top.usr.s! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_10!)) (let ((X2 top.res.abs_4!)) (and (= top.usr.OK! (=> X1 (< X2 4))) (__node_trans_voiture_0 top.usr.m! top.usr.s! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_3! top.res.inst_2! top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_9! top.res.abs_10! top.res.inst_1! top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_trans_excludes2_0 top.usr.m! top.usr.s! top.res.abs_9! top.res.inst_0! top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/car_3_e8_33_e7_220.sl b/benchmarks/LIA/Lustre/car_3_e8_33_e7_220.sl index 37b90d6..394e070 100644 --- a/benchmarks/LIA/Lustre/car_3_e8_33_e7_220.sl +++ b/benchmarks/LIA/Lustre/car_3_e8_33_e7_220.sl @@ -1,534 +1,31 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes2_0 ( - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_0 - (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) - excludes2.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes2_0 ( - (excludes2.usr.X1_a_1 Bool) - (excludes2.usr.X2_a_1 Bool) - (excludes2.usr.excludes_a_1 Bool) - (excludes2.res.init_flag_a_1 Bool) - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_1 - (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) - (not excludes2.res.init_flag_a_1)) -) - -(define-fun - __node_init_voiture_0 ( - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.speed_a_0 0) - (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) - (= voiture.usr.move_a_0 true) - (= voiture.usr.time_a_0 0) - (= voiture.usr.dist_a_0 0) - (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) - (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) - (= - voiture.res.abs_0_a_0 - (and - (and - (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) - (not voiture.usr.toofast_a_0)) - (not voiture.usr.bump_a_0))) - (= voiture.usr.second_a_0 false) - (= voiture.usr.meter_a_0 false) - voiture.res.init_flag_a_0) -) - -(define-fun - __node_trans_voiture_0 ( - (voiture.usr.m_a_1 Bool) - (voiture.usr.s_a_1 Bool) - (voiture.usr.toofast_a_1 Bool) - (voiture.usr.stop_a_1 Bool) - (voiture.usr.bump_a_1 Bool) - (voiture.usr.dist_a_1 Int) - (voiture.usr.speed_a_1 Int) - (voiture.usr.time_a_1 Int) - (voiture.usr.move_a_1 Bool) - (voiture.usr.second_a_1 Bool) - (voiture.usr.meter_a_1 Bool) - (voiture.res.init_flag_a_1 Bool) - (voiture.res.abs_0_a_1 Bool) - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) - (= voiture.usr.second_a_1 voiture.usr.s_a_1) - (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) - (= - voiture.usr.speed_a_1 - (ite - (and (not voiture.usr.move_a_1) voiture.usr.second_a_1) - 0 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.speed_a_0 1) - voiture.usr.speed_a_0))) - (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) - (= - voiture.usr.time_a_1 - (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) - (= - voiture.usr.dist_a_1 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.dist_a_0 1) - voiture.usr.dist_a_0)) - (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) - (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) - (= - voiture.res.abs_0_a_1 - (and - (and - (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) - (not voiture.usr.toofast_a_1)) - (not voiture.usr.bump_a_1))) - (not voiture.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (< X2 4))) - (__node_init_voiture_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) - (__node_init_excludes2_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.m_a_1 Bool) - (top.usr.s_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (< X2 4))) - (__node_trans_voiture_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_9_a_1 - top.res.abs_10_a_1 - top.res.inst_1_a_1 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes2_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.m Bool) -(declare-primed-var top.usr.s Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10)) - (let - ((X2 Int top.res.abs_4)) - (and - (= top.usr.OK (=> X1 (< X2 4))) - (__node_init_voiture_0 - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) - (__node_init_excludes2_0 - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.m! Bool) - (top.usr.s! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_10!)) - (let - ((X2 Int top.res.abs_4!)) - (and - (= top.usr.OK! (=> X1 (< X2 4))) - (__node_trans_voiture_0 - top.usr.m! - top.usr.s! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_3! - top.res.inst_2! - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_9! - top.res.abs_10! - top.res.inst_1! - top.res.abs_9 - top.res.abs_10 - top.res.inst_1) - (__node_trans_excludes2_0 - top.usr.m! - top.usr.s! - top.res.abs_9! - top.res.inst_0! - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes2_0 ((excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_0 (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) excludes2.res.init_flag_a_0)) +(define-fun __node_trans_excludes2_0 ((excludes2.usr.X1_a_1 Bool) (excludes2.usr.X2_a_1 Bool) (excludes2.usr.excludes_a_1 Bool) (excludes2.res.init_flag_a_1 Bool) (excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_1 (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) (not excludes2.res.init_flag_a_1))) +(define-fun __node_init_voiture_0 ((voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.speed_a_0 0) (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) (= voiture.usr.move_a_0 true) (= voiture.usr.time_a_0 0) (= voiture.usr.dist_a_0 0) (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) (= voiture.res.abs_0_a_0 (and (and (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) (not voiture.usr.toofast_a_0)) (not voiture.usr.bump_a_0))) (= voiture.usr.second_a_0 false) (= voiture.usr.meter_a_0 false) voiture.res.init_flag_a_0)) +(define-fun __node_trans_voiture_0 ((voiture.usr.m_a_1 Bool) (voiture.usr.s_a_1 Bool) (voiture.usr.toofast_a_1 Bool) (voiture.usr.stop_a_1 Bool) (voiture.usr.bump_a_1 Bool) (voiture.usr.dist_a_1 Int) (voiture.usr.speed_a_1 Int) (voiture.usr.time_a_1 Int) (voiture.usr.move_a_1 Bool) (voiture.usr.second_a_1 Bool) (voiture.usr.meter_a_1 Bool) (voiture.res.init_flag_a_1 Bool) (voiture.res.abs_0_a_1 Bool) (voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) (= voiture.usr.second_a_1 voiture.usr.s_a_1) (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) (= voiture.usr.speed_a_1 (ite (and (not voiture.usr.move_a_1) voiture.usr.second_a_1) 0 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.speed_a_0 1) voiture.usr.speed_a_0))) (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) (= voiture.usr.time_a_1 (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) (= voiture.usr.dist_a_1 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.dist_a_0 1) voiture.usr.dist_a_0)) (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) (= voiture.res.abs_0_a_1 (and (and (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) (not voiture.usr.toofast_a_1)) (not voiture.usr.bump_a_1))) (not voiture.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_0)) (let ((X2 top.res.abs_4_a_0)) (and (= top.usr.OK_a_0 (=> X1 (< X2 4))) (__node_init_voiture_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_init_excludes2_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.m_a_1 Bool) (top.usr.s_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_1)) (let ((X2 top.res.abs_4_a_1)) (and (= top.usr.OK_a_1 (=> X1 (< X2 4))) (__node_trans_voiture_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_9_a_1 top.res.abs_10_a_1 top.res.inst_1_a_1 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_trans_excludes2_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_10)) (let ((X2 top.res.abs_4)) (and (= top.usr.OK (=> X1 (< X2 4))) (__node_init_voiture_0 top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_init_excludes2_0 top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.m! Bool) (top.usr.s! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_10!)) (let ((X2 top.res.abs_4!)) (and (= top.usr.OK! (=> X1 (< X2 4))) (__node_trans_voiture_0 top.usr.m! top.usr.s! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_3! top.res.inst_2! top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_9! top.res.abs_10! top.res.inst_1! top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_trans_excludes2_0 top.usr.m! top.usr.s! top.res.abs_9! top.res.inst_0! top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/car_4.sl b/benchmarks/LIA/Lustre/car_4.sl index 32c4593..1f9d3fd 100644 --- a/benchmarks/LIA/Lustre/car_4.sl +++ b/benchmarks/LIA/Lustre/car_4.sl @@ -1,534 +1,31 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes2_0 ( - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_0 - (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) - excludes2.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes2_0 ( - (excludes2.usr.X1_a_1 Bool) - (excludes2.usr.X2_a_1 Bool) - (excludes2.usr.excludes_a_1 Bool) - (excludes2.res.init_flag_a_1 Bool) - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_1 - (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) - (not excludes2.res.init_flag_a_1)) -) - -(define-fun - __node_init_voiture_0 ( - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.speed_a_0 0) - (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) - (= voiture.usr.move_a_0 true) - (= voiture.usr.time_a_0 0) - (= voiture.usr.dist_a_0 0) - (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) - (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) - (= - voiture.res.abs_0_a_0 - (and - (and - (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) - (not voiture.usr.toofast_a_0)) - (not voiture.usr.bump_a_0))) - (= voiture.usr.second_a_0 false) - (= voiture.usr.meter_a_0 false) - voiture.res.init_flag_a_0) -) - -(define-fun - __node_trans_voiture_0 ( - (voiture.usr.m_a_1 Bool) - (voiture.usr.s_a_1 Bool) - (voiture.usr.toofast_a_1 Bool) - (voiture.usr.stop_a_1 Bool) - (voiture.usr.bump_a_1 Bool) - (voiture.usr.dist_a_1 Int) - (voiture.usr.speed_a_1 Int) - (voiture.usr.time_a_1 Int) - (voiture.usr.move_a_1 Bool) - (voiture.usr.second_a_1 Bool) - (voiture.usr.meter_a_1 Bool) - (voiture.res.init_flag_a_1 Bool) - (voiture.res.abs_0_a_1 Bool) - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) - (= voiture.usr.second_a_1 voiture.usr.s_a_1) - (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) - (= - voiture.usr.speed_a_1 - (ite - (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) - 0 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.speed_a_0 1) - voiture.usr.speed_a_0))) - (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) - (= - voiture.usr.time_a_1 - (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) - (= - voiture.usr.dist_a_1 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.dist_a_0 1) - voiture.usr.dist_a_0)) - (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) - (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) - (= - voiture.res.abs_0_a_1 - (and - (and - (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) - (not voiture.usr.toofast_a_1)) - (not voiture.usr.bump_a_1))) - (not voiture.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_voiture_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) - (__node_init_excludes2_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.m_a_1 Bool) - (top.usr.s_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_voiture_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_9_a_1 - top.res.abs_10_a_1 - top.res.inst_1_a_1 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes2_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.m Bool) -(declare-primed-var top.usr.s Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10)) - (let - ((X2 Int top.res.abs_4)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_voiture_0 - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) - (__node_init_excludes2_0 - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.m! Bool) - (top.usr.s! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_10!)) - (let - ((X2 Int top.res.abs_4!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_voiture_0 - top.usr.m! - top.usr.s! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_3! - top.res.inst_2! - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_9! - top.res.abs_10! - top.res.inst_1! - top.res.abs_9 - top.res.abs_10 - top.res.inst_1) - (__node_trans_excludes2_0 - top.usr.m! - top.usr.s! - top.res.abs_9! - top.res.inst_0! - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes2_0 ((excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_0 (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) excludes2.res.init_flag_a_0)) +(define-fun __node_trans_excludes2_0 ((excludes2.usr.X1_a_1 Bool) (excludes2.usr.X2_a_1 Bool) (excludes2.usr.excludes_a_1 Bool) (excludes2.res.init_flag_a_1 Bool) (excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_1 (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) (not excludes2.res.init_flag_a_1))) +(define-fun __node_init_voiture_0 ((voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.speed_a_0 0) (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) (= voiture.usr.move_a_0 true) (= voiture.usr.time_a_0 0) (= voiture.usr.dist_a_0 0) (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) (= voiture.res.abs_0_a_0 (and (and (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) (not voiture.usr.toofast_a_0)) (not voiture.usr.bump_a_0))) (= voiture.usr.second_a_0 false) (= voiture.usr.meter_a_0 false) voiture.res.init_flag_a_0)) +(define-fun __node_trans_voiture_0 ((voiture.usr.m_a_1 Bool) (voiture.usr.s_a_1 Bool) (voiture.usr.toofast_a_1 Bool) (voiture.usr.stop_a_1 Bool) (voiture.usr.bump_a_1 Bool) (voiture.usr.dist_a_1 Int) (voiture.usr.speed_a_1 Int) (voiture.usr.time_a_1 Int) (voiture.usr.move_a_1 Bool) (voiture.usr.second_a_1 Bool) (voiture.usr.meter_a_1 Bool) (voiture.res.init_flag_a_1 Bool) (voiture.res.abs_0_a_1 Bool) (voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) (= voiture.usr.second_a_1 voiture.usr.s_a_1) (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) (= voiture.usr.speed_a_1 (ite (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) 0 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.speed_a_0 1) voiture.usr.speed_a_0))) (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) (= voiture.usr.time_a_1 (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) (= voiture.usr.dist_a_1 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.dist_a_0 1) voiture.usr.dist_a_0)) (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) (= voiture.res.abs_0_a_1 (and (and (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) (not voiture.usr.toofast_a_1)) (not voiture.usr.bump_a_1))) (not voiture.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_0)) (let ((X2 top.res.abs_4_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_voiture_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_init_excludes2_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.m_a_1 Bool) (top.usr.s_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_1)) (let ((X2 top.res.abs_4_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_voiture_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_9_a_1 top.res.abs_10_a_1 top.res.inst_1_a_1 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_trans_excludes2_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_10)) (let ((X2 top.res.abs_4)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_voiture_0 top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_init_excludes2_0 top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.m! Bool) (top.usr.s! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_10!)) (let ((X2 top.res.abs_4!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_voiture_0 top.usr.m! top.usr.s! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_3! top.res.inst_2! top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_9! top.res.abs_10! top.res.inst_1! top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_trans_excludes2_0 top.usr.m! top.usr.s! top.res.abs_9! top.res.inst_0! top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/car_4_e3_57_e4_1047.sl b/benchmarks/LIA/Lustre/car_4_e3_57_e4_1047.sl index a8e59aa..dee1b49 100644 --- a/benchmarks/LIA/Lustre/car_4_e3_57_e4_1047.sl +++ b/benchmarks/LIA/Lustre/car_4_e3_57_e4_1047.sl @@ -1,534 +1,31 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes2_0 ( - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_0 - (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) - excludes2.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes2_0 ( - (excludes2.usr.X1_a_1 Bool) - (excludes2.usr.X2_a_1 Bool) - (excludes2.usr.excludes_a_1 Bool) - (excludes2.res.init_flag_a_1 Bool) - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_1 - (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) - (not excludes2.res.init_flag_a_1)) -) - -(define-fun - __node_init_voiture_0 ( - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.speed_a_0 0) - (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) - (= voiture.usr.move_a_0 true) - (= voiture.usr.time_a_0 0) - (= voiture.usr.dist_a_0 0) - (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) - (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) - (= - voiture.res.abs_0_a_0 - (and - (and - (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) - (not voiture.usr.toofast_a_0)) - (not voiture.usr.bump_a_0))) - (= voiture.usr.second_a_0 false) - (= voiture.usr.meter_a_0 false) - voiture.res.init_flag_a_0) -) - -(define-fun - __node_trans_voiture_0 ( - (voiture.usr.m_a_1 Bool) - (voiture.usr.s_a_1 Bool) - (voiture.usr.toofast_a_1 Bool) - (voiture.usr.stop_a_1 Bool) - (voiture.usr.bump_a_1 Bool) - (voiture.usr.dist_a_1 Int) - (voiture.usr.speed_a_1 Int) - (voiture.usr.time_a_1 Int) - (voiture.usr.move_a_1 Bool) - (voiture.usr.second_a_1 Bool) - (voiture.usr.meter_a_1 Bool) - (voiture.res.init_flag_a_1 Bool) - (voiture.res.abs_0_a_1 Bool) - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) - (= voiture.usr.second_a_1 voiture.usr.s_a_1) - (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) - (= - voiture.usr.speed_a_1 - (ite - (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) - 0 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (- (+ voiture.usr.speed_a_0 1) 1) - voiture.usr.speed_a_0))) - (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) - (= - voiture.usr.time_a_1 - (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) - (= - voiture.usr.dist_a_1 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.dist_a_0 1) - voiture.usr.dist_a_0)) - (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) - (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) - (= - voiture.res.abs_0_a_1 - (and - (and - (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) - (not voiture.usr.toofast_a_1)) - (not voiture.usr.bump_a_1))) - (not voiture.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_voiture_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) - (__node_init_excludes2_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.m_a_1 Bool) - (top.usr.s_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_voiture_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_9_a_1 - top.res.abs_10_a_1 - top.res.inst_1_a_1 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes2_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.m Bool) -(declare-primed-var top.usr.s Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10)) - (let - ((X2 Int top.res.abs_4)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_voiture_0 - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) - (__node_init_excludes2_0 - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.m! Bool) - (top.usr.s! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_10!)) - (let - ((X2 Int top.res.abs_4!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_voiture_0 - top.usr.m! - top.usr.s! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_3! - top.res.inst_2! - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_9! - top.res.abs_10! - top.res.inst_1! - top.res.abs_9 - top.res.abs_10 - top.res.inst_1) - (__node_trans_excludes2_0 - top.usr.m! - top.usr.s! - top.res.abs_9! - top.res.inst_0! - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes2_0 ((excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_0 (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) excludes2.res.init_flag_a_0)) +(define-fun __node_trans_excludes2_0 ((excludes2.usr.X1_a_1 Bool) (excludes2.usr.X2_a_1 Bool) (excludes2.usr.excludes_a_1 Bool) (excludes2.res.init_flag_a_1 Bool) (excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_1 (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) (not excludes2.res.init_flag_a_1))) +(define-fun __node_init_voiture_0 ((voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.speed_a_0 0) (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) (= voiture.usr.move_a_0 true) (= voiture.usr.time_a_0 0) (= voiture.usr.dist_a_0 0) (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) (= voiture.res.abs_0_a_0 (and (and (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) (not voiture.usr.toofast_a_0)) (not voiture.usr.bump_a_0))) (= voiture.usr.second_a_0 false) (= voiture.usr.meter_a_0 false) voiture.res.init_flag_a_0)) +(define-fun __node_trans_voiture_0 ((voiture.usr.m_a_1 Bool) (voiture.usr.s_a_1 Bool) (voiture.usr.toofast_a_1 Bool) (voiture.usr.stop_a_1 Bool) (voiture.usr.bump_a_1 Bool) (voiture.usr.dist_a_1 Int) (voiture.usr.speed_a_1 Int) (voiture.usr.time_a_1 Int) (voiture.usr.move_a_1 Bool) (voiture.usr.second_a_1 Bool) (voiture.usr.meter_a_1 Bool) (voiture.res.init_flag_a_1 Bool) (voiture.res.abs_0_a_1 Bool) (voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) (= voiture.usr.second_a_1 voiture.usr.s_a_1) (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) (= voiture.usr.speed_a_1 (ite (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) 0 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (- (+ voiture.usr.speed_a_0 1) 1) voiture.usr.speed_a_0))) (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) (= voiture.usr.time_a_1 (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) (= voiture.usr.dist_a_1 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.dist_a_0 1) voiture.usr.dist_a_0)) (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) (= voiture.res.abs_0_a_1 (and (and (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) (not voiture.usr.toofast_a_1)) (not voiture.usr.bump_a_1))) (not voiture.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_0)) (let ((X2 top.res.abs_4_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_voiture_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_init_excludes2_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.m_a_1 Bool) (top.usr.s_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_1)) (let ((X2 top.res.abs_4_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_voiture_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_9_a_1 top.res.abs_10_a_1 top.res.inst_1_a_1 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_trans_excludes2_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_10)) (let ((X2 top.res.abs_4)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_voiture_0 top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_init_excludes2_0 top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.m! Bool) (top.usr.s! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_10!)) (let ((X2 top.res.abs_4!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_voiture_0 top.usr.m! top.usr.s! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_3! top.res.inst_2! top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_9! top.res.abs_10! top.res.inst_1! top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_trans_excludes2_0 top.usr.m! top.usr.s! top.res.abs_9! top.res.inst_0! top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/car_4_e3_57_e6_784.sl b/benchmarks/LIA/Lustre/car_4_e3_57_e6_784.sl index 32c4593..1f9d3fd 100644 --- a/benchmarks/LIA/Lustre/car_4_e3_57_e6_784.sl +++ b/benchmarks/LIA/Lustre/car_4_e3_57_e6_784.sl @@ -1,534 +1,31 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes2_0 ( - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_0 - (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) - excludes2.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes2_0 ( - (excludes2.usr.X1_a_1 Bool) - (excludes2.usr.X2_a_1 Bool) - (excludes2.usr.excludes_a_1 Bool) - (excludes2.res.init_flag_a_1 Bool) - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_1 - (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) - (not excludes2.res.init_flag_a_1)) -) - -(define-fun - __node_init_voiture_0 ( - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.speed_a_0 0) - (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) - (= voiture.usr.move_a_0 true) - (= voiture.usr.time_a_0 0) - (= voiture.usr.dist_a_0 0) - (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) - (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) - (= - voiture.res.abs_0_a_0 - (and - (and - (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) - (not voiture.usr.toofast_a_0)) - (not voiture.usr.bump_a_0))) - (= voiture.usr.second_a_0 false) - (= voiture.usr.meter_a_0 false) - voiture.res.init_flag_a_0) -) - -(define-fun - __node_trans_voiture_0 ( - (voiture.usr.m_a_1 Bool) - (voiture.usr.s_a_1 Bool) - (voiture.usr.toofast_a_1 Bool) - (voiture.usr.stop_a_1 Bool) - (voiture.usr.bump_a_1 Bool) - (voiture.usr.dist_a_1 Int) - (voiture.usr.speed_a_1 Int) - (voiture.usr.time_a_1 Int) - (voiture.usr.move_a_1 Bool) - (voiture.usr.second_a_1 Bool) - (voiture.usr.meter_a_1 Bool) - (voiture.res.init_flag_a_1 Bool) - (voiture.res.abs_0_a_1 Bool) - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) - (= voiture.usr.second_a_1 voiture.usr.s_a_1) - (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) - (= - voiture.usr.speed_a_1 - (ite - (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) - 0 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.speed_a_0 1) - voiture.usr.speed_a_0))) - (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) - (= - voiture.usr.time_a_1 - (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) - (= - voiture.usr.dist_a_1 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.dist_a_0 1) - voiture.usr.dist_a_0)) - (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) - (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) - (= - voiture.res.abs_0_a_1 - (and - (and - (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) - (not voiture.usr.toofast_a_1)) - (not voiture.usr.bump_a_1))) - (not voiture.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_voiture_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) - (__node_init_excludes2_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.m_a_1 Bool) - (top.usr.s_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_voiture_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_9_a_1 - top.res.abs_10_a_1 - top.res.inst_1_a_1 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes2_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.m Bool) -(declare-primed-var top.usr.s Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10)) - (let - ((X2 Int top.res.abs_4)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_voiture_0 - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) - (__node_init_excludes2_0 - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.m! Bool) - (top.usr.s! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_10!)) - (let - ((X2 Int top.res.abs_4!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_voiture_0 - top.usr.m! - top.usr.s! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_3! - top.res.inst_2! - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_9! - top.res.abs_10! - top.res.inst_1! - top.res.abs_9 - top.res.abs_10 - top.res.inst_1) - (__node_trans_excludes2_0 - top.usr.m! - top.usr.s! - top.res.abs_9! - top.res.inst_0! - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes2_0 ((excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_0 (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) excludes2.res.init_flag_a_0)) +(define-fun __node_trans_excludes2_0 ((excludes2.usr.X1_a_1 Bool) (excludes2.usr.X2_a_1 Bool) (excludes2.usr.excludes_a_1 Bool) (excludes2.res.init_flag_a_1 Bool) (excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_1 (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) (not excludes2.res.init_flag_a_1))) +(define-fun __node_init_voiture_0 ((voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.speed_a_0 0) (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) (= voiture.usr.move_a_0 true) (= voiture.usr.time_a_0 0) (= voiture.usr.dist_a_0 0) (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) (= voiture.res.abs_0_a_0 (and (and (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) (not voiture.usr.toofast_a_0)) (not voiture.usr.bump_a_0))) (= voiture.usr.second_a_0 false) (= voiture.usr.meter_a_0 false) voiture.res.init_flag_a_0)) +(define-fun __node_trans_voiture_0 ((voiture.usr.m_a_1 Bool) (voiture.usr.s_a_1 Bool) (voiture.usr.toofast_a_1 Bool) (voiture.usr.stop_a_1 Bool) (voiture.usr.bump_a_1 Bool) (voiture.usr.dist_a_1 Int) (voiture.usr.speed_a_1 Int) (voiture.usr.time_a_1 Int) (voiture.usr.move_a_1 Bool) (voiture.usr.second_a_1 Bool) (voiture.usr.meter_a_1 Bool) (voiture.res.init_flag_a_1 Bool) (voiture.res.abs_0_a_1 Bool) (voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) (= voiture.usr.second_a_1 voiture.usr.s_a_1) (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) (= voiture.usr.speed_a_1 (ite (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) 0 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.speed_a_0 1) voiture.usr.speed_a_0))) (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) (= voiture.usr.time_a_1 (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) (= voiture.usr.dist_a_1 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.dist_a_0 1) voiture.usr.dist_a_0)) (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) (= voiture.res.abs_0_a_1 (and (and (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) (not voiture.usr.toofast_a_1)) (not voiture.usr.bump_a_1))) (not voiture.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_0)) (let ((X2 top.res.abs_4_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_voiture_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_init_excludes2_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.m_a_1 Bool) (top.usr.s_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_1)) (let ((X2 top.res.abs_4_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_voiture_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_9_a_1 top.res.abs_10_a_1 top.res.inst_1_a_1 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_trans_excludes2_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_10)) (let ((X2 top.res.abs_4)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_voiture_0 top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_init_excludes2_0 top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.m! Bool) (top.usr.s! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_10!)) (let ((X2 top.res.abs_4!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_voiture_0 top.usr.m! top.usr.s! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_3! top.res.inst_2! top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_9! top.res.abs_10! top.res.inst_1! top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_trans_excludes2_0 top.usr.m! top.usr.s! top.res.abs_9! top.res.inst_0! top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/car_4_e7_592.sl b/benchmarks/LIA/Lustre/car_4_e7_592.sl index 6e74106..19d6285 100644 --- a/benchmarks/LIA/Lustre/car_4_e7_592.sl +++ b/benchmarks/LIA/Lustre/car_4_e7_592.sl @@ -1,534 +1,31 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes2_0 ( - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_0 - (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) - excludes2.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes2_0 ( - (excludes2.usr.X1_a_1 Bool) - (excludes2.usr.X2_a_1 Bool) - (excludes2.usr.excludes_a_1 Bool) - (excludes2.res.init_flag_a_1 Bool) - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_1 - (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) - (not excludes2.res.init_flag_a_1)) -) - -(define-fun - __node_init_voiture_0 ( - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.speed_a_0 0) - (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) - (= voiture.usr.move_a_0 true) - (= voiture.usr.time_a_0 0) - (= voiture.usr.dist_a_0 0) - (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) - (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) - (= - voiture.res.abs_0_a_0 - (and - (and - (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) - (not voiture.usr.toofast_a_0)) - (not voiture.usr.bump_a_0))) - (= voiture.usr.second_a_0 false) - (= voiture.usr.meter_a_0 false) - voiture.res.init_flag_a_0) -) - -(define-fun - __node_trans_voiture_0 ( - (voiture.usr.m_a_1 Bool) - (voiture.usr.s_a_1 Bool) - (voiture.usr.toofast_a_1 Bool) - (voiture.usr.stop_a_1 Bool) - (voiture.usr.bump_a_1 Bool) - (voiture.usr.dist_a_1 Int) - (voiture.usr.speed_a_1 Int) - (voiture.usr.time_a_1 Int) - (voiture.usr.move_a_1 Bool) - (voiture.usr.second_a_1 Bool) - (voiture.usr.meter_a_1 Bool) - (voiture.res.init_flag_a_1 Bool) - (voiture.res.abs_0_a_1 Bool) - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) - (= voiture.usr.second_a_1 voiture.usr.s_a_1) - (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) - (= - voiture.usr.speed_a_1 - (ite - (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) - 0 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.speed_a_0 1) - voiture.usr.speed_a_0))) - (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) - (= - voiture.usr.time_a_1 - (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) - (= - voiture.usr.dist_a_1 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.dist_a_0 1) - voiture.usr.dist_a_0)) - (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) - (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) - (= - voiture.res.abs_0_a_1 - (and - (and - (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) - (not voiture.usr.toofast_a_1)) - (not voiture.usr.bump_a_1))) - (not voiture.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_voiture_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) - (__node_init_excludes2_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.m_a_1 Bool) - (top.usr.s_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_voiture_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_9_a_1 - top.res.abs_10_a_1 - top.res.inst_1_a_1 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes2_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.m Bool) -(declare-primed-var top.usr.s Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10)) - (let - ((X2 Int top.res.abs_4)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_voiture_0 - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) - (__node_init_excludes2_0 - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.m! Bool) - (top.usr.s! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_10!)) - (let - ((X2 Int top.res.abs_4!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_voiture_0 - top.usr.m! - top.usr.s! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_3! - top.res.inst_2! - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_9! - top.res.abs_10! - top.res.inst_1! - top.res.abs_9 - top.res.abs_10 - top.res.inst_1) - (__node_trans_excludes2_0 - top.usr.m! - top.usr.s! - top.res.abs_9! - top.res.inst_0! - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes2_0 ((excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_0 (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) excludes2.res.init_flag_a_0)) +(define-fun __node_trans_excludes2_0 ((excludes2.usr.X1_a_1 Bool) (excludes2.usr.X2_a_1 Bool) (excludes2.usr.excludes_a_1 Bool) (excludes2.res.init_flag_a_1 Bool) (excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_1 (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) (not excludes2.res.init_flag_a_1))) +(define-fun __node_init_voiture_0 ((voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.speed_a_0 0) (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) (= voiture.usr.move_a_0 true) (= voiture.usr.time_a_0 0) (= voiture.usr.dist_a_0 0) (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) (= voiture.res.abs_0_a_0 (and (and (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) (not voiture.usr.toofast_a_0)) (not voiture.usr.bump_a_0))) (= voiture.usr.second_a_0 false) (= voiture.usr.meter_a_0 false) voiture.res.init_flag_a_0)) +(define-fun __node_trans_voiture_0 ((voiture.usr.m_a_1 Bool) (voiture.usr.s_a_1 Bool) (voiture.usr.toofast_a_1 Bool) (voiture.usr.stop_a_1 Bool) (voiture.usr.bump_a_1 Bool) (voiture.usr.dist_a_1 Int) (voiture.usr.speed_a_1 Int) (voiture.usr.time_a_1 Int) (voiture.usr.move_a_1 Bool) (voiture.usr.second_a_1 Bool) (voiture.usr.meter_a_1 Bool) (voiture.res.init_flag_a_1 Bool) (voiture.res.abs_0_a_1 Bool) (voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) (= voiture.usr.second_a_1 voiture.usr.s_a_1) (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) (= voiture.usr.speed_a_1 (ite (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) 0 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.speed_a_0 1) voiture.usr.speed_a_0))) (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) (= voiture.usr.time_a_1 (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) (= voiture.usr.dist_a_1 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.dist_a_0 1) voiture.usr.dist_a_0)) (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) (= voiture.res.abs_0_a_1 (and (and (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) (not voiture.usr.toofast_a_1)) (not voiture.usr.bump_a_1))) (not voiture.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_0)) (let ((X2 top.res.abs_4_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_voiture_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_init_excludes2_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.m_a_1 Bool) (top.usr.s_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_1)) (let ((X2 top.res.abs_4_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_voiture_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_9_a_1 top.res.abs_10_a_1 top.res.inst_1_a_1 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_trans_excludes2_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_10)) (let ((X2 top.res.abs_4)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_voiture_0 top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_init_excludes2_0 top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.m! Bool) (top.usr.s! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_10!)) (let ((X2 top.res.abs_4!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_voiture_0 top.usr.m! top.usr.s! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_3! top.res.inst_2! top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_9! top.res.abs_10! top.res.inst_1! top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_trans_excludes2_0 top.usr.m! top.usr.s! top.res.abs_9! top.res.inst_0! top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/car_4_e7_592_e7_265.sl b/benchmarks/LIA/Lustre/car_4_e7_592_e7_265.sl index 6a98d38..f8f9e05 100644 --- a/benchmarks/LIA/Lustre/car_4_e7_592_e7_265.sl +++ b/benchmarks/LIA/Lustre/car_4_e7_592_e7_265.sl @@ -1,534 +1,31 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes2_0 ( - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_0 - (not (or excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) - excludes2.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes2_0 ( - (excludes2.usr.X1_a_1 Bool) - (excludes2.usr.X2_a_1 Bool) - (excludes2.usr.excludes_a_1 Bool) - (excludes2.res.init_flag_a_1 Bool) - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_1 - (not (or excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) - (not excludes2.res.init_flag_a_1)) -) - -(define-fun - __node_init_voiture_0 ( - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.speed_a_0 0) - (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) - (= voiture.usr.move_a_0 true) - (= voiture.usr.time_a_0 0) - (= voiture.usr.dist_a_0 0) - (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) - (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) - (= - voiture.res.abs_0_a_0 - (and - (and - (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) - (not voiture.usr.toofast_a_0)) - (not voiture.usr.bump_a_0))) - (= voiture.usr.second_a_0 false) - (= voiture.usr.meter_a_0 false) - voiture.res.init_flag_a_0) -) - -(define-fun - __node_trans_voiture_0 ( - (voiture.usr.m_a_1 Bool) - (voiture.usr.s_a_1 Bool) - (voiture.usr.toofast_a_1 Bool) - (voiture.usr.stop_a_1 Bool) - (voiture.usr.bump_a_1 Bool) - (voiture.usr.dist_a_1 Int) - (voiture.usr.speed_a_1 Int) - (voiture.usr.time_a_1 Int) - (voiture.usr.move_a_1 Bool) - (voiture.usr.second_a_1 Bool) - (voiture.usr.meter_a_1 Bool) - (voiture.res.init_flag_a_1 Bool) - (voiture.res.abs_0_a_1 Bool) - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) - (= voiture.usr.second_a_1 voiture.usr.s_a_1) - (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) - (= - voiture.usr.speed_a_1 - (ite - (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) - 0 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.speed_a_0 1) - voiture.usr.speed_a_0))) - (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) - (= - voiture.usr.time_a_1 - (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) - (= - voiture.usr.dist_a_1 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.dist_a_0 1) - voiture.usr.dist_a_0)) - (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) - (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) - (= - voiture.res.abs_0_a_1 - (and - (and - (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) - (not voiture.usr.toofast_a_1)) - (not voiture.usr.bump_a_1))) - (not voiture.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_voiture_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) - (__node_init_excludes2_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.m_a_1 Bool) - (top.usr.s_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_voiture_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_9_a_1 - top.res.abs_10_a_1 - top.res.inst_1_a_1 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes2_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.m Bool) -(declare-primed-var top.usr.s Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10)) - (let - ((X2 Int top.res.abs_4)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_voiture_0 - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) - (__node_init_excludes2_0 - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.m! Bool) - (top.usr.s! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_10!)) - (let - ((X2 Int top.res.abs_4!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_voiture_0 - top.usr.m! - top.usr.s! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_3! - top.res.inst_2! - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_9! - top.res.abs_10! - top.res.inst_1! - top.res.abs_9 - top.res.abs_10 - top.res.inst_1) - (__node_trans_excludes2_0 - top.usr.m! - top.usr.s! - top.res.abs_9! - top.res.inst_0! - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes2_0 ((excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_0 (not (or excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) excludes2.res.init_flag_a_0)) +(define-fun __node_trans_excludes2_0 ((excludes2.usr.X1_a_1 Bool) (excludes2.usr.X2_a_1 Bool) (excludes2.usr.excludes_a_1 Bool) (excludes2.res.init_flag_a_1 Bool) (excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_1 (not (or excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) (not excludes2.res.init_flag_a_1))) +(define-fun __node_init_voiture_0 ((voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.speed_a_0 0) (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) (= voiture.usr.move_a_0 true) (= voiture.usr.time_a_0 0) (= voiture.usr.dist_a_0 0) (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) (= voiture.res.abs_0_a_0 (and (and (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) (not voiture.usr.toofast_a_0)) (not voiture.usr.bump_a_0))) (= voiture.usr.second_a_0 false) (= voiture.usr.meter_a_0 false) voiture.res.init_flag_a_0)) +(define-fun __node_trans_voiture_0 ((voiture.usr.m_a_1 Bool) (voiture.usr.s_a_1 Bool) (voiture.usr.toofast_a_1 Bool) (voiture.usr.stop_a_1 Bool) (voiture.usr.bump_a_1 Bool) (voiture.usr.dist_a_1 Int) (voiture.usr.speed_a_1 Int) (voiture.usr.time_a_1 Int) (voiture.usr.move_a_1 Bool) (voiture.usr.second_a_1 Bool) (voiture.usr.meter_a_1 Bool) (voiture.res.init_flag_a_1 Bool) (voiture.res.abs_0_a_1 Bool) (voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) (= voiture.usr.second_a_1 voiture.usr.s_a_1) (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) (= voiture.usr.speed_a_1 (ite (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) 0 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.speed_a_0 1) voiture.usr.speed_a_0))) (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) (= voiture.usr.time_a_1 (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) (= voiture.usr.dist_a_1 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.dist_a_0 1) voiture.usr.dist_a_0)) (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) (= voiture.res.abs_0_a_1 (and (and (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) (not voiture.usr.toofast_a_1)) (not voiture.usr.bump_a_1))) (not voiture.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_0)) (let ((X2 top.res.abs_4_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_voiture_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_init_excludes2_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.m_a_1 Bool) (top.usr.s_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_1)) (let ((X2 top.res.abs_4_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_voiture_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_9_a_1 top.res.abs_10_a_1 top.res.inst_1_a_1 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_trans_excludes2_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_10)) (let ((X2 top.res.abs_4)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_voiture_0 top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_init_excludes2_0 top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.m! Bool) (top.usr.s! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_10!)) (let ((X2 top.res.abs_4!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_voiture_0 top.usr.m! top.usr.s! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_3! top.res.inst_2! top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_9! top.res.abs_10! top.res.inst_1! top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_trans_excludes2_0 top.usr.m! top.usr.s! top.res.abs_9! top.res.inst_0! top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/car_4_e8_118.sl b/benchmarks/LIA/Lustre/car_4_e8_118.sl index f9e9f93..4e2b627 100644 --- a/benchmarks/LIA/Lustre/car_4_e8_118.sl +++ b/benchmarks/LIA/Lustre/car_4_e8_118.sl @@ -1,534 +1,31 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes2_0 ( - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_0 - (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) - excludes2.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes2_0 ( - (excludes2.usr.X1_a_1 Bool) - (excludes2.usr.X2_a_1 Bool) - (excludes2.usr.excludes_a_1 Bool) - (excludes2.res.init_flag_a_1 Bool) - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_1 - (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) - (not excludes2.res.init_flag_a_1)) -) - -(define-fun - __node_init_voiture_0 ( - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.speed_a_0 0) - (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) - (= voiture.usr.move_a_0 true) - (= voiture.usr.time_a_0 0) - (= voiture.usr.dist_a_0 0) - (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) - (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) - (= - voiture.res.abs_0_a_0 - (and - (and - (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) - (not voiture.usr.toofast_a_0)) - (not voiture.usr.bump_a_0))) - (= voiture.usr.second_a_0 false) - (= voiture.usr.meter_a_0 false) - voiture.res.init_flag_a_0) -) - -(define-fun - __node_trans_voiture_0 ( - (voiture.usr.m_a_1 Bool) - (voiture.usr.s_a_1 Bool) - (voiture.usr.toofast_a_1 Bool) - (voiture.usr.stop_a_1 Bool) - (voiture.usr.bump_a_1 Bool) - (voiture.usr.dist_a_1 Int) - (voiture.usr.speed_a_1 Int) - (voiture.usr.time_a_1 Int) - (voiture.usr.move_a_1 Bool) - (voiture.usr.second_a_1 Bool) - (voiture.usr.meter_a_1 Bool) - (voiture.res.init_flag_a_1 Bool) - (voiture.res.abs_0_a_1 Bool) - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) - (= voiture.usr.second_a_1 voiture.usr.s_a_1) - (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) - (= - voiture.usr.speed_a_1 - (ite - (and (not voiture.usr.move_a_1) voiture.usr.second_a_1) - 0 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.speed_a_0 1) - voiture.usr.speed_a_0))) - (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) - (= - voiture.usr.time_a_1 - (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) - (= - voiture.usr.dist_a_1 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.dist_a_0 1) - voiture.usr.dist_a_0)) - (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) - (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) - (= - voiture.res.abs_0_a_1 - (and - (and - (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) - (not voiture.usr.toofast_a_1)) - (not voiture.usr.bump_a_1))) - (not voiture.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_voiture_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) - (__node_init_excludes2_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.m_a_1 Bool) - (top.usr.s_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_voiture_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_9_a_1 - top.res.abs_10_a_1 - top.res.inst_1_a_1 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes2_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.m Bool) -(declare-primed-var top.usr.s Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10)) - (let - ((X2 Int top.res.abs_4)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_voiture_0 - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) - (__node_init_excludes2_0 - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.m! Bool) - (top.usr.s! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_10!)) - (let - ((X2 Int top.res.abs_4!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_voiture_0 - top.usr.m! - top.usr.s! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_3! - top.res.inst_2! - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_9! - top.res.abs_10! - top.res.inst_1! - top.res.abs_9 - top.res.abs_10 - top.res.inst_1) - (__node_trans_excludes2_0 - top.usr.m! - top.usr.s! - top.res.abs_9! - top.res.inst_0! - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes2_0 ((excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_0 (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) excludes2.res.init_flag_a_0)) +(define-fun __node_trans_excludes2_0 ((excludes2.usr.X1_a_1 Bool) (excludes2.usr.X2_a_1 Bool) (excludes2.usr.excludes_a_1 Bool) (excludes2.res.init_flag_a_1 Bool) (excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_1 (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) (not excludes2.res.init_flag_a_1))) +(define-fun __node_init_voiture_0 ((voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.speed_a_0 0) (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) (= voiture.usr.move_a_0 true) (= voiture.usr.time_a_0 0) (= voiture.usr.dist_a_0 0) (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) (= voiture.res.abs_0_a_0 (and (and (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) (not voiture.usr.toofast_a_0)) (not voiture.usr.bump_a_0))) (= voiture.usr.second_a_0 false) (= voiture.usr.meter_a_0 false) voiture.res.init_flag_a_0)) +(define-fun __node_trans_voiture_0 ((voiture.usr.m_a_1 Bool) (voiture.usr.s_a_1 Bool) (voiture.usr.toofast_a_1 Bool) (voiture.usr.stop_a_1 Bool) (voiture.usr.bump_a_1 Bool) (voiture.usr.dist_a_1 Int) (voiture.usr.speed_a_1 Int) (voiture.usr.time_a_1 Int) (voiture.usr.move_a_1 Bool) (voiture.usr.second_a_1 Bool) (voiture.usr.meter_a_1 Bool) (voiture.res.init_flag_a_1 Bool) (voiture.res.abs_0_a_1 Bool) (voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) (= voiture.usr.second_a_1 voiture.usr.s_a_1) (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) (= voiture.usr.speed_a_1 (ite (and (not voiture.usr.move_a_1) voiture.usr.second_a_1) 0 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.speed_a_0 1) voiture.usr.speed_a_0))) (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) (= voiture.usr.time_a_1 (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) (= voiture.usr.dist_a_1 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.dist_a_0 1) voiture.usr.dist_a_0)) (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) (= voiture.res.abs_0_a_1 (and (and (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) (not voiture.usr.toofast_a_1)) (not voiture.usr.bump_a_1))) (not voiture.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_0)) (let ((X2 top.res.abs_4_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_voiture_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_init_excludes2_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.m_a_1 Bool) (top.usr.s_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_1)) (let ((X2 top.res.abs_4_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_voiture_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_9_a_1 top.res.abs_10_a_1 top.res.inst_1_a_1 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_trans_excludes2_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_10)) (let ((X2 top.res.abs_4)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_voiture_0 top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_init_excludes2_0 top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.m! Bool) (top.usr.s! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_10!)) (let ((X2 top.res.abs_4!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_voiture_0 top.usr.m! top.usr.s! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_3! top.res.inst_2! top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_9! top.res.abs_10! top.res.inst_1! top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_trans_excludes2_0 top.usr.m! top.usr.s! top.res.abs_9! top.res.inst_0! top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/car_4_e8_118_e7_178.sl b/benchmarks/LIA/Lustre/car_4_e8_118_e7_178.sl index 29265ab..d5f0964 100644 --- a/benchmarks/LIA/Lustre/car_4_e8_118_e7_178.sl +++ b/benchmarks/LIA/Lustre/car_4_e8_118_e7_178.sl @@ -1,534 +1,31 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes2_0 ( - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_0 - (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) - excludes2.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes2_0 ( - (excludes2.usr.X1_a_1 Bool) - (excludes2.usr.X2_a_1 Bool) - (excludes2.usr.excludes_a_1 Bool) - (excludes2.res.init_flag_a_1 Bool) - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_1 - (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) - (not excludes2.res.init_flag_a_1)) -) - -(define-fun - __node_init_voiture_0 ( - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.speed_a_0 0) - (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) - (= voiture.usr.move_a_0 true) - (= voiture.usr.time_a_0 0) - (= voiture.usr.dist_a_0 0) - (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) - (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) - (= - voiture.res.abs_0_a_0 - (and - (and - (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) - (not voiture.usr.toofast_a_0)) - (not voiture.usr.bump_a_0))) - (= voiture.usr.second_a_0 false) - (= voiture.usr.meter_a_0 false) - voiture.res.init_flag_a_0) -) - -(define-fun - __node_trans_voiture_0 ( - (voiture.usr.m_a_1 Bool) - (voiture.usr.s_a_1 Bool) - (voiture.usr.toofast_a_1 Bool) - (voiture.usr.stop_a_1 Bool) - (voiture.usr.bump_a_1 Bool) - (voiture.usr.dist_a_1 Int) - (voiture.usr.speed_a_1 Int) - (voiture.usr.time_a_1 Int) - (voiture.usr.move_a_1 Bool) - (voiture.usr.second_a_1 Bool) - (voiture.usr.meter_a_1 Bool) - (voiture.res.init_flag_a_1 Bool) - (voiture.res.abs_0_a_1 Bool) - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) - (= voiture.usr.second_a_1 voiture.usr.s_a_1) - (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) - (= - voiture.usr.speed_a_1 - (ite - (and (not voiture.usr.move_a_1) voiture.usr.second_a_1) - 0 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.speed_a_0 1) - voiture.usr.speed_a_0))) - (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) - (= - voiture.usr.time_a_1 - (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) - (= - voiture.usr.dist_a_1 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.dist_a_0 1) - voiture.usr.dist_a_0)) - (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) - (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) - (= - voiture.res.abs_0_a_1 - (and - (and - (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) - (not voiture.usr.toofast_a_1)) - (not voiture.usr.bump_a_1))) - (not voiture.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_voiture_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) - (__node_init_excludes2_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.m_a_1 Bool) - (top.usr.s_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_voiture_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_9_a_1 - top.res.abs_10_a_1 - top.res.inst_1_a_1 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes2_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.m Bool) -(declare-primed-var top.usr.s Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10)) - (let - ((X2 Int top.res.abs_4)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_voiture_0 - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) - (__node_init_excludes2_0 - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.m! Bool) - (top.usr.s! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_10!)) - (let - ((X2 Int top.res.abs_4!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_voiture_0 - top.usr.m! - top.usr.s! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_3! - top.res.inst_2! - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_9! - top.res.abs_10! - top.res.inst_1! - top.res.abs_9 - top.res.abs_10 - top.res.inst_1) - (__node_trans_excludes2_0 - top.usr.m! - top.usr.s! - top.res.abs_9! - top.res.inst_0! - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes2_0 ((excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_0 (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) excludes2.res.init_flag_a_0)) +(define-fun __node_trans_excludes2_0 ((excludes2.usr.X1_a_1 Bool) (excludes2.usr.X2_a_1 Bool) (excludes2.usr.excludes_a_1 Bool) (excludes2.res.init_flag_a_1 Bool) (excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_1 (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) (not excludes2.res.init_flag_a_1))) +(define-fun __node_init_voiture_0 ((voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.speed_a_0 0) (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) (= voiture.usr.move_a_0 true) (= voiture.usr.time_a_0 0) (= voiture.usr.dist_a_0 0) (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) (= voiture.res.abs_0_a_0 (and (and (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) (not voiture.usr.toofast_a_0)) (not voiture.usr.bump_a_0))) (= voiture.usr.second_a_0 false) (= voiture.usr.meter_a_0 false) voiture.res.init_flag_a_0)) +(define-fun __node_trans_voiture_0 ((voiture.usr.m_a_1 Bool) (voiture.usr.s_a_1 Bool) (voiture.usr.toofast_a_1 Bool) (voiture.usr.stop_a_1 Bool) (voiture.usr.bump_a_1 Bool) (voiture.usr.dist_a_1 Int) (voiture.usr.speed_a_1 Int) (voiture.usr.time_a_1 Int) (voiture.usr.move_a_1 Bool) (voiture.usr.second_a_1 Bool) (voiture.usr.meter_a_1 Bool) (voiture.res.init_flag_a_1 Bool) (voiture.res.abs_0_a_1 Bool) (voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) (= voiture.usr.second_a_1 voiture.usr.s_a_1) (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) (= voiture.usr.speed_a_1 (ite (and (not voiture.usr.move_a_1) voiture.usr.second_a_1) 0 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.speed_a_0 1) voiture.usr.speed_a_0))) (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) (= voiture.usr.time_a_1 (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) (= voiture.usr.dist_a_1 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.dist_a_0 1) voiture.usr.dist_a_0)) (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) (= voiture.res.abs_0_a_1 (and (and (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) (not voiture.usr.toofast_a_1)) (not voiture.usr.bump_a_1))) (not voiture.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_0)) (let ((X2 top.res.abs_4_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_voiture_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_init_excludes2_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.m_a_1 Bool) (top.usr.s_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_1)) (let ((X2 top.res.abs_4_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_voiture_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_9_a_1 top.res.abs_10_a_1 top.res.inst_1_a_1 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_trans_excludes2_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_10)) (let ((X2 top.res.abs_4)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_voiture_0 top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_init_excludes2_0 top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.m! Bool) (top.usr.s! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_10!)) (let ((X2 top.res.abs_4!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_voiture_0 top.usr.m! top.usr.s! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_3! top.res.inst_2! top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_9! top.res.abs_10! top.res.inst_1! top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_trans_excludes2_0 top.usr.m! top.usr.s! top.res.abs_9! top.res.inst_0! top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/car_5.sl b/benchmarks/LIA/Lustre/car_5.sl index 3776e93..f0de1c8 100644 --- a/benchmarks/LIA/Lustre/car_5.sl +++ b/benchmarks/LIA/Lustre/car_5.sl @@ -1,553 +1,31 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes2_0 ( - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_0 - (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) - excludes2.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes2_0 ( - (excludes2.usr.X1_a_1 Bool) - (excludes2.usr.X2_a_1 Bool) - (excludes2.usr.excludes_a_1 Bool) - (excludes2.res.init_flag_a_1 Bool) - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_1 - (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) - (not excludes2.res.init_flag_a_1)) -) - -(define-fun - __node_init_voiture_0 ( - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.speed_a_0 0) - (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) - (= voiture.usr.move_a_0 true) - (= voiture.usr.time_a_0 0) - (= voiture.usr.dist_a_0 0) - (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) - (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) - (= - voiture.res.abs_0_a_0 - (and - (and - (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) - (not voiture.usr.toofast_a_0)) - (not voiture.usr.bump_a_0))) - (= voiture.usr.second_a_0 false) - (= voiture.usr.meter_a_0 false) - voiture.res.init_flag_a_0) -) - -(define-fun - __node_trans_voiture_0 ( - (voiture.usr.m_a_1 Bool) - (voiture.usr.s_a_1 Bool) - (voiture.usr.toofast_a_1 Bool) - (voiture.usr.stop_a_1 Bool) - (voiture.usr.bump_a_1 Bool) - (voiture.usr.dist_a_1 Int) - (voiture.usr.speed_a_1 Int) - (voiture.usr.time_a_1 Int) - (voiture.usr.move_a_1 Bool) - (voiture.usr.second_a_1 Bool) - (voiture.usr.meter_a_1 Bool) - (voiture.res.init_flag_a_1 Bool) - (voiture.res.abs_0_a_1 Bool) - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) - (= voiture.usr.second_a_1 voiture.usr.s_a_1) - (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) - (= - voiture.usr.speed_a_1 - (ite - (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) - 0 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.speed_a_0 1) - voiture.usr.speed_a_0))) - (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) - (= - voiture.usr.time_a_1 - (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) - (= - voiture.usr.dist_a_1 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.dist_a_0 1) - voiture.usr.dist_a_0)) - (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) - (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) - (= - voiture.res.abs_0_a_1 - (and - (and - (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) - (not voiture.usr.toofast_a_1)) - (not voiture.usr.bump_a_1))) - (not voiture.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_0)) - (let - ((X2 Bool top.res.abs_8_a_0)) - (let - ((X3 Bool top.res.abs_6_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (=> (> X4 9) (not (and X3 X2))))) - (__node_init_voiture_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.inst_1_a_0) - (__node_init_excludes2_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.m_a_1 Bool) - (top.usr.s_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_1)) - (let - ((X2 Bool top.res.abs_8_a_1)) - (let - ((X3 Bool top.res.abs_6_a_1)) - (let - ((X4 Int top.res.abs_3_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (=> (> X4 9) (not (and X3 X2))))) - (__node_trans_voiture_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_9_a_1 - top.res.abs_10_a_1 - top.res.inst_1_a_1 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes2_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))) -) - - - -(synth-inv str_invariant( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.m Bool) -(declare-primed-var top.usr.s Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10)) - (let - ((X2 Bool top.res.abs_8)) - (let - ((X3 Bool top.res.abs_6)) - (let - ((X4 Int top.res.abs_3)) - (and - (= top.usr.OK (=> X1 (=> (> X4 9) (not (and X3 X2))))) - (__node_init_voiture_0 - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) - (__node_init_excludes2_0 - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.m! Bool) - (top.usr.s! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_10!)) - (let - ((X2 Bool top.res.abs_8!)) - (let - ((X3 Bool top.res.abs_6!)) - (let - ((X4 Int top.res.abs_3!)) - (and - (= top.usr.OK! (=> X1 (=> (> X4 9) (not (and X3 X2))))) - (__node_trans_voiture_0 - top.usr.m! - top.usr.s! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_3! - top.res.inst_2! - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_9! - top.res.abs_10! - top.res.inst_1! - top.res.abs_9 - top.res.abs_10 - top.res.inst_1) - (__node_trans_excludes2_0 - top.usr.m! - top.usr.s! - top.res.abs_9! - top.res.inst_0! - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))))) -) - -(define-fun - prop ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes2_0 ((excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_0 (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) excludes2.res.init_flag_a_0)) +(define-fun __node_trans_excludes2_0 ((excludes2.usr.X1_a_1 Bool) (excludes2.usr.X2_a_1 Bool) (excludes2.usr.excludes_a_1 Bool) (excludes2.res.init_flag_a_1 Bool) (excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_1 (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) (not excludes2.res.init_flag_a_1))) +(define-fun __node_init_voiture_0 ((voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.speed_a_0 0) (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) (= voiture.usr.move_a_0 true) (= voiture.usr.time_a_0 0) (= voiture.usr.dist_a_0 0) (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) (= voiture.res.abs_0_a_0 (and (and (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) (not voiture.usr.toofast_a_0)) (not voiture.usr.bump_a_0))) (= voiture.usr.second_a_0 false) (= voiture.usr.meter_a_0 false) voiture.res.init_flag_a_0)) +(define-fun __node_trans_voiture_0 ((voiture.usr.m_a_1 Bool) (voiture.usr.s_a_1 Bool) (voiture.usr.toofast_a_1 Bool) (voiture.usr.stop_a_1 Bool) (voiture.usr.bump_a_1 Bool) (voiture.usr.dist_a_1 Int) (voiture.usr.speed_a_1 Int) (voiture.usr.time_a_1 Int) (voiture.usr.move_a_1 Bool) (voiture.usr.second_a_1 Bool) (voiture.usr.meter_a_1 Bool) (voiture.res.init_flag_a_1 Bool) (voiture.res.abs_0_a_1 Bool) (voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) (= voiture.usr.second_a_1 voiture.usr.s_a_1) (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) (= voiture.usr.speed_a_1 (ite (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) 0 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.speed_a_0 1) voiture.usr.speed_a_0))) (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) (= voiture.usr.time_a_1 (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) (= voiture.usr.dist_a_1 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.dist_a_0 1) voiture.usr.dist_a_0)) (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) (= voiture.res.abs_0_a_1 (and (and (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) (not voiture.usr.toofast_a_1)) (not voiture.usr.bump_a_1))) (not voiture.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_0)) (let ((X2 top.res.abs_8_a_0)) (let ((X3 top.res.abs_6_a_0)) (let ((X4 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (=> (> X4 9) (not (and X3 X2))))) (__node_init_voiture_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_init_excludes2_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))) +(define-fun __node_trans_top_0 ((top.usr.m_a_1 Bool) (top.usr.s_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_1)) (let ((X2 top.res.abs_8_a_1)) (let ((X3 top.res.abs_6_a_1)) (let ((X4 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (=> (> X4 9) (not (and X3 X2))))) (__node_trans_voiture_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_9_a_1 top.res.abs_10_a_1 top.res.inst_1_a_1 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_trans_excludes2_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))) +(synth-inv str_invariant ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_10)) (let ((X2 top.res.abs_8)) (let ((X3 top.res.abs_6)) (let ((X4 top.res.abs_3)) (and (= top.usr.OK (=> X1 (=> (> X4 9) (not (and X3 X2))))) (__node_init_voiture_0 top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_init_excludes2_0 top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) top.res.init_flag)))))) +(define-fun trans ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.m! Bool) (top.usr.s! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_10!)) (let ((X2 top.res.abs_8!)) (let ((X3 top.res.abs_6!)) (let ((X4 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (=> (> X4 9) (not (and X3 X2))))) (__node_trans_voiture_0 top.usr.m! top.usr.s! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_3! top.res.inst_2! top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_9! top.res.abs_10! top.res.inst_1! top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_trans_excludes2_0 top.usr.m! top.usr.s! top.res.abs_9! top.res.inst_0! top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))))) +(define-fun prop ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/car_5_e7_244.sl b/benchmarks/LIA/Lustre/car_5_e7_244.sl index 38847db..d42fa49 100644 --- a/benchmarks/LIA/Lustre/car_5_e7_244.sl +++ b/benchmarks/LIA/Lustre/car_5_e7_244.sl @@ -1,553 +1,31 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes2_0 ( - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_0 - (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) - excludes2.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes2_0 ( - (excludes2.usr.X1_a_1 Bool) - (excludes2.usr.X2_a_1 Bool) - (excludes2.usr.excludes_a_1 Bool) - (excludes2.res.init_flag_a_1 Bool) - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_1 - (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) - (not excludes2.res.init_flag_a_1)) -) - -(define-fun - __node_init_voiture_0 ( - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.speed_a_0 0) - (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) - (= voiture.usr.move_a_0 true) - (= voiture.usr.time_a_0 0) - (= voiture.usr.dist_a_0 0) - (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) - (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) - (= - voiture.res.abs_0_a_0 - (and - (and - (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) - (not voiture.usr.toofast_a_0)) - (not voiture.usr.bump_a_0))) - (= voiture.usr.second_a_0 false) - (= voiture.usr.meter_a_0 false) - voiture.res.init_flag_a_0) -) - -(define-fun - __node_trans_voiture_0 ( - (voiture.usr.m_a_1 Bool) - (voiture.usr.s_a_1 Bool) - (voiture.usr.toofast_a_1 Bool) - (voiture.usr.stop_a_1 Bool) - (voiture.usr.bump_a_1 Bool) - (voiture.usr.dist_a_1 Int) - (voiture.usr.speed_a_1 Int) - (voiture.usr.time_a_1 Int) - (voiture.usr.move_a_1 Bool) - (voiture.usr.second_a_1 Bool) - (voiture.usr.meter_a_1 Bool) - (voiture.res.init_flag_a_1 Bool) - (voiture.res.abs_0_a_1 Bool) - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) - (= voiture.usr.second_a_1 voiture.usr.s_a_1) - (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) - (= - voiture.usr.speed_a_1 - (ite - (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) - 0 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.speed_a_0 1) - voiture.usr.speed_a_0))) - (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) - (= - voiture.usr.time_a_1 - (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) - (= - voiture.usr.dist_a_1 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.dist_a_0 1) - voiture.usr.dist_a_0)) - (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) - (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) - (= - voiture.res.abs_0_a_1 - (and - (and - (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) - (not voiture.usr.toofast_a_1)) - (not voiture.usr.bump_a_1))) - (not voiture.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_0)) - (let - ((X2 Bool top.res.abs_8_a_0)) - (let - ((X3 Bool top.res.abs_6_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (=> (> X4 9) (not (and X3 X2))))) - (__node_init_voiture_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.inst_1_a_0) - (__node_init_excludes2_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.m_a_1 Bool) - (top.usr.s_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_1)) - (let - ((X2 Bool top.res.abs_8_a_1)) - (let - ((X3 Bool top.res.abs_6_a_1)) - (let - ((X4 Int top.res.abs_3_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (=> (> X4 9) (not (and X3 X2))))) - (__node_trans_voiture_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_9_a_1 - top.res.abs_10_a_1 - top.res.inst_1_a_1 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes2_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))) -) - - - -(synth-inv str_invariant( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.m Bool) -(declare-primed-var top.usr.s Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10)) - (let - ((X2 Bool top.res.abs_8)) - (let - ((X3 Bool top.res.abs_6)) - (let - ((X4 Int top.res.abs_3)) - (and - (= top.usr.OK (=> X1 (=> (> X4 9) (not (and X3 X2))))) - (__node_init_voiture_0 - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) - (__node_init_excludes2_0 - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.m! Bool) - (top.usr.s! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_10!)) - (let - ((X2 Bool top.res.abs_8!)) - (let - ((X3 Bool top.res.abs_6!)) - (let - ((X4 Int top.res.abs_3!)) - (and - (= top.usr.OK! (=> X1 (=> (> X4 9) (not (and X3 X2))))) - (__node_trans_voiture_0 - top.usr.m! - top.usr.s! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_3! - top.res.inst_2! - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_9! - top.res.abs_10! - top.res.inst_1! - top.res.abs_9 - top.res.abs_10 - top.res.inst_1) - (__node_trans_excludes2_0 - top.usr.m! - top.usr.s! - top.res.abs_9! - top.res.inst_0! - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))))) -) - -(define-fun - prop ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes2_0 ((excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_0 (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) excludes2.res.init_flag_a_0)) +(define-fun __node_trans_excludes2_0 ((excludes2.usr.X1_a_1 Bool) (excludes2.usr.X2_a_1 Bool) (excludes2.usr.excludes_a_1 Bool) (excludes2.res.init_flag_a_1 Bool) (excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_1 (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) (not excludes2.res.init_flag_a_1))) +(define-fun __node_init_voiture_0 ((voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.speed_a_0 0) (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) (= voiture.usr.move_a_0 true) (= voiture.usr.time_a_0 0) (= voiture.usr.dist_a_0 0) (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) (= voiture.res.abs_0_a_0 (and (and (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) (not voiture.usr.toofast_a_0)) (not voiture.usr.bump_a_0))) (= voiture.usr.second_a_0 false) (= voiture.usr.meter_a_0 false) voiture.res.init_flag_a_0)) +(define-fun __node_trans_voiture_0 ((voiture.usr.m_a_1 Bool) (voiture.usr.s_a_1 Bool) (voiture.usr.toofast_a_1 Bool) (voiture.usr.stop_a_1 Bool) (voiture.usr.bump_a_1 Bool) (voiture.usr.dist_a_1 Int) (voiture.usr.speed_a_1 Int) (voiture.usr.time_a_1 Int) (voiture.usr.move_a_1 Bool) (voiture.usr.second_a_1 Bool) (voiture.usr.meter_a_1 Bool) (voiture.res.init_flag_a_1 Bool) (voiture.res.abs_0_a_1 Bool) (voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) (= voiture.usr.second_a_1 voiture.usr.s_a_1) (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) (= voiture.usr.speed_a_1 (ite (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) 0 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.speed_a_0 1) voiture.usr.speed_a_0))) (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) (= voiture.usr.time_a_1 (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) (= voiture.usr.dist_a_1 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.dist_a_0 1) voiture.usr.dist_a_0)) (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) (= voiture.res.abs_0_a_1 (and (and (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) (not voiture.usr.toofast_a_1)) (not voiture.usr.bump_a_1))) (not voiture.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_0)) (let ((X2 top.res.abs_8_a_0)) (let ((X3 top.res.abs_6_a_0)) (let ((X4 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (=> (> X4 9) (not (and X3 X2))))) (__node_init_voiture_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_init_excludes2_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))) +(define-fun __node_trans_top_0 ((top.usr.m_a_1 Bool) (top.usr.s_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_1)) (let ((X2 top.res.abs_8_a_1)) (let ((X3 top.res.abs_6_a_1)) (let ((X4 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (=> (> X4 9) (not (and X3 X2))))) (__node_trans_voiture_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_9_a_1 top.res.abs_10_a_1 top.res.inst_1_a_1 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_trans_excludes2_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))) +(synth-inv str_invariant ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_10)) (let ((X2 top.res.abs_8)) (let ((X3 top.res.abs_6)) (let ((X4 top.res.abs_3)) (and (= top.usr.OK (=> X1 (=> (> X4 9) (not (and X3 X2))))) (__node_init_voiture_0 top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_init_excludes2_0 top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) top.res.init_flag)))))) +(define-fun trans ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.m! Bool) (top.usr.s! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_10!)) (let ((X2 top.res.abs_8!)) (let ((X3 top.res.abs_6!)) (let ((X4 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (=> (> X4 9) (not (and X3 X2))))) (__node_trans_voiture_0 top.usr.m! top.usr.s! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_3! top.res.inst_2! top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_9! top.res.abs_10! top.res.inst_1! top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_trans_excludes2_0 top.usr.m! top.usr.s! top.res.abs_9! top.res.inst_0! top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))))) +(define-fun prop ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/car_5_e7_244_e1_823.sl b/benchmarks/LIA/Lustre/car_5_e7_244_e1_823.sl index 77454fb..600c7f2 100644 --- a/benchmarks/LIA/Lustre/car_5_e7_244_e1_823.sl +++ b/benchmarks/LIA/Lustre/car_5_e7_244_e1_823.sl @@ -1,553 +1,31 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes2_0 ( - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_0 - (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) - excludes2.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes2_0 ( - (excludes2.usr.X1_a_1 Bool) - (excludes2.usr.X2_a_1 Bool) - (excludes2.usr.excludes_a_1 Bool) - (excludes2.res.init_flag_a_1 Bool) - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_1 - (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) - (not excludes2.res.init_flag_a_1)) -) - -(define-fun - __node_init_voiture_0 ( - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.speed_a_0 0) - (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) - (= voiture.usr.move_a_0 true) - (= voiture.usr.time_a_0 0) - (= voiture.usr.dist_a_0 0) - (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) - (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) - (= - voiture.res.abs_0_a_0 - (and - (and - (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) - (not voiture.usr.toofast_a_0)) - (not voiture.usr.bump_a_0))) - (= voiture.usr.second_a_0 false) - (= voiture.usr.meter_a_0 false) - voiture.res.init_flag_a_0) -) - -(define-fun - __node_trans_voiture_0 ( - (voiture.usr.m_a_1 Bool) - (voiture.usr.s_a_1 Bool) - (voiture.usr.toofast_a_1 Bool) - (voiture.usr.stop_a_1 Bool) - (voiture.usr.bump_a_1 Bool) - (voiture.usr.dist_a_1 Int) - (voiture.usr.speed_a_1 Int) - (voiture.usr.time_a_1 Int) - (voiture.usr.move_a_1 Bool) - (voiture.usr.second_a_1 Bool) - (voiture.usr.meter_a_1 Bool) - (voiture.res.init_flag_a_1 Bool) - (voiture.res.abs_0_a_1 Bool) - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) - (= voiture.usr.second_a_1 voiture.usr.s_a_1) - (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) - (= - voiture.usr.speed_a_1 - (ite - (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) - 0 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ (+ voiture.usr.speed_a_0 1) 1) - voiture.usr.speed_a_0))) - (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) - (= - voiture.usr.time_a_1 - (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) - (= - voiture.usr.dist_a_1 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.dist_a_0 1) - voiture.usr.dist_a_0)) - (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) - (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) - (= - voiture.res.abs_0_a_1 - (and - (and - (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) - (not voiture.usr.toofast_a_1)) - (not voiture.usr.bump_a_1))) - (not voiture.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_0)) - (let - ((X2 Bool top.res.abs_8_a_0)) - (let - ((X3 Bool top.res.abs_6_a_0)) - (let - ((X4 Int top.res.abs_3_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (=> (> X4 9) (not (and X3 X2))))) - (__node_init_voiture_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.inst_1_a_0) - (__node_init_excludes2_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.m_a_1 Bool) - (top.usr.s_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_1)) - (let - ((X2 Bool top.res.abs_8_a_1)) - (let - ((X3 Bool top.res.abs_6_a_1)) - (let - ((X4 Int top.res.abs_3_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (=> (> X4 9) (not (and X3 X2))))) - (__node_trans_voiture_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_9_a_1 - top.res.abs_10_a_1 - top.res.inst_1_a_1 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes2_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))) -) - - - -(synth-inv str_invariant( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.m Bool) -(declare-primed-var top.usr.s Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10)) - (let - ((X2 Bool top.res.abs_8)) - (let - ((X3 Bool top.res.abs_6)) - (let - ((X4 Int top.res.abs_3)) - (and - (= top.usr.OK (=> X1 (=> (> X4 9) (not (and X3 X2))))) - (__node_init_voiture_0 - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) - (__node_init_excludes2_0 - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.m! Bool) - (top.usr.s! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_10!)) - (let - ((X2 Bool top.res.abs_8!)) - (let - ((X3 Bool top.res.abs_6!)) - (let - ((X4 Int top.res.abs_3!)) - (and - (= top.usr.OK! (=> X1 (=> (> X4 9) (not (and X3 X2))))) - (__node_trans_voiture_0 - top.usr.m! - top.usr.s! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_3! - top.res.inst_2! - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_9! - top.res.abs_10! - top.res.inst_1! - top.res.abs_9 - top.res.abs_10 - top.res.inst_1) - (__node_trans_excludes2_0 - top.usr.m! - top.usr.s! - top.res.abs_9! - top.res.inst_0! - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))))) -) - -(define-fun - prop ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes2_0 ((excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_0 (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) excludes2.res.init_flag_a_0)) +(define-fun __node_trans_excludes2_0 ((excludes2.usr.X1_a_1 Bool) (excludes2.usr.X2_a_1 Bool) (excludes2.usr.excludes_a_1 Bool) (excludes2.res.init_flag_a_1 Bool) (excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_1 (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) (not excludes2.res.init_flag_a_1))) +(define-fun __node_init_voiture_0 ((voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.speed_a_0 0) (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) (= voiture.usr.move_a_0 true) (= voiture.usr.time_a_0 0) (= voiture.usr.dist_a_0 0) (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) (= voiture.res.abs_0_a_0 (and (and (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) (not voiture.usr.toofast_a_0)) (not voiture.usr.bump_a_0))) (= voiture.usr.second_a_0 false) (= voiture.usr.meter_a_0 false) voiture.res.init_flag_a_0)) +(define-fun __node_trans_voiture_0 ((voiture.usr.m_a_1 Bool) (voiture.usr.s_a_1 Bool) (voiture.usr.toofast_a_1 Bool) (voiture.usr.stop_a_1 Bool) (voiture.usr.bump_a_1 Bool) (voiture.usr.dist_a_1 Int) (voiture.usr.speed_a_1 Int) (voiture.usr.time_a_1 Int) (voiture.usr.move_a_1 Bool) (voiture.usr.second_a_1 Bool) (voiture.usr.meter_a_1 Bool) (voiture.res.init_flag_a_1 Bool) (voiture.res.abs_0_a_1 Bool) (voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) (= voiture.usr.second_a_1 voiture.usr.s_a_1) (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) (= voiture.usr.speed_a_1 (ite (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) 0 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ (+ voiture.usr.speed_a_0 1) 1) voiture.usr.speed_a_0))) (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) (= voiture.usr.time_a_1 (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) (= voiture.usr.dist_a_1 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.dist_a_0 1) voiture.usr.dist_a_0)) (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) (= voiture.res.abs_0_a_1 (and (and (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) (not voiture.usr.toofast_a_1)) (not voiture.usr.bump_a_1))) (not voiture.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_0)) (let ((X2 top.res.abs_8_a_0)) (let ((X3 top.res.abs_6_a_0)) (let ((X4 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (=> (> X4 9) (not (and X3 X2))))) (__node_init_voiture_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_init_excludes2_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))) +(define-fun __node_trans_top_0 ((top.usr.m_a_1 Bool) (top.usr.s_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_1)) (let ((X2 top.res.abs_8_a_1)) (let ((X3 top.res.abs_6_a_1)) (let ((X4 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (=> (> X4 9) (not (and X3 X2))))) (__node_trans_voiture_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_9_a_1 top.res.abs_10_a_1 top.res.inst_1_a_1 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_trans_excludes2_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))) +(synth-inv str_invariant ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_10)) (let ((X2 top.res.abs_8)) (let ((X3 top.res.abs_6)) (let ((X4 top.res.abs_3)) (and (= top.usr.OK (=> X1 (=> (> X4 9) (not (and X3 X2))))) (__node_init_voiture_0 top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_init_excludes2_0 top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) top.res.init_flag)))))) +(define-fun trans ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.m! Bool) (top.usr.s! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_10!)) (let ((X2 top.res.abs_8!)) (let ((X3 top.res.abs_6!)) (let ((X4 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (=> (> X4 9) (not (and X3 X2))))) (__node_trans_voiture_0 top.usr.m! top.usr.s! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_3! top.res.inst_2! top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_9! top.res.abs_10! top.res.inst_1! top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_trans_excludes2_0 top.usr.m! top.usr.s! top.res.abs_9! top.res.inst_0! top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))))) +(define-fun prop ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/car_6.sl b/benchmarks/LIA/Lustre/car_6.sl index a6f6e7a..4c5c034 100644 --- a/benchmarks/LIA/Lustre/car_6.sl +++ b/benchmarks/LIA/Lustre/car_6.sl @@ -1,541 +1,31 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes2_0 ( - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_0 - (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) - excludes2.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes2_0 ( - (excludes2.usr.X1_a_1 Bool) - (excludes2.usr.X2_a_1 Bool) - (excludes2.usr.excludes_a_1 Bool) - (excludes2.res.init_flag_a_1 Bool) - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_1 - (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) - (not excludes2.res.init_flag_a_1)) -) - -(define-fun - __node_init_voiture_0 ( - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.speed_a_0 0) - (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) - (= voiture.usr.move_a_0 true) - (= voiture.usr.time_a_0 0) - (= voiture.usr.dist_a_0 0) - (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) - (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) - (= - voiture.res.abs_0_a_0 - (and - (and - (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) - (not voiture.usr.toofast_a_0)) - (not voiture.usr.bump_a_0))) - (= voiture.usr.second_a_0 false) - (= voiture.usr.meter_a_0 false) - voiture.res.init_flag_a_0) -) - -(define-fun - __node_trans_voiture_0 ( - (voiture.usr.m_a_1 Bool) - (voiture.usr.s_a_1 Bool) - (voiture.usr.toofast_a_1 Bool) - (voiture.usr.stop_a_1 Bool) - (voiture.usr.bump_a_1 Bool) - (voiture.usr.dist_a_1 Int) - (voiture.usr.speed_a_1 Int) - (voiture.usr.time_a_1 Int) - (voiture.usr.move_a_1 Bool) - (voiture.usr.second_a_1 Bool) - (voiture.usr.meter_a_1 Bool) - (voiture.res.init_flag_a_1 Bool) - (voiture.res.abs_0_a_1 Bool) - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) - (= voiture.usr.second_a_1 voiture.usr.s_a_1) - (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) - (= - voiture.usr.speed_a_1 - (ite - (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) - 0 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.speed_a_0 1) - voiture.usr.speed_a_0))) - (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) - (= - voiture.usr.time_a_1 - (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) - (= - voiture.usr.dist_a_1 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.dist_a_0 1) - voiture.usr.dist_a_0)) - (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) - (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) - (= - voiture.res.abs_0_a_1 - (and - (and - (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) - (not voiture.usr.toofast_a_1)) - (not voiture.usr.bump_a_1))) - (not voiture.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.bump_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= top.impl.usr.bump_a_0 top.res.abs_2_a_0) - (let - ((X1 Bool top.res.abs_10_a_0)) - (and - (__node_init_voiture_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) - (__node_init_excludes2_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.m_a_1 Bool) - (top.usr.s_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.bump_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.bump_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (not top.impl.usr.bump_a_0))) - (= top.impl.usr.bump_a_1 top.res.abs_2_a_1) - (__node_trans_voiture_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_9_a_1 - top.res.abs_10_a_1 - top.res.inst_1_a_1 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes2_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))) -) - - - -(synth-inv str_invariant( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.bump Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.m Bool) -(declare-primed-var top.usr.s Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.bump Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.bump Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.bump top.res.abs_2) - (let - ((X1 Bool top.res.abs_10)) - (and - (__node_init_voiture_0 - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) - (__node_init_excludes2_0 - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.bump Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.m! Bool) - (top.usr.s! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.bump! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_10!)) - (and - (= top.usr.OK! (=> X1 (not top.impl.usr.bump))) - (= top.impl.usr.bump! top.res.abs_2!) - (__node_trans_voiture_0 - top.usr.m! - top.usr.s! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_3! - top.res.inst_2! - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_9! - top.res.abs_10! - top.res.inst_1! - top.res.abs_9 - top.res.abs_10 - top.res.inst_1) - (__node_trans_excludes2_0 - top.usr.m! - top.usr.s! - top.res.abs_9! - top.res.inst_0! - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!))) -) - -(define-fun - prop ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.bump Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes2_0 ((excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_0 (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) excludes2.res.init_flag_a_0)) +(define-fun __node_trans_excludes2_0 ((excludes2.usr.X1_a_1 Bool) (excludes2.usr.X2_a_1 Bool) (excludes2.usr.excludes_a_1 Bool) (excludes2.res.init_flag_a_1 Bool) (excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_1 (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) (not excludes2.res.init_flag_a_1))) +(define-fun __node_init_voiture_0 ((voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.speed_a_0 0) (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) (= voiture.usr.move_a_0 true) (= voiture.usr.time_a_0 0) (= voiture.usr.dist_a_0 0) (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) (= voiture.res.abs_0_a_0 (and (and (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) (not voiture.usr.toofast_a_0)) (not voiture.usr.bump_a_0))) (= voiture.usr.second_a_0 false) (= voiture.usr.meter_a_0 false) voiture.res.init_flag_a_0)) +(define-fun __node_trans_voiture_0 ((voiture.usr.m_a_1 Bool) (voiture.usr.s_a_1 Bool) (voiture.usr.toofast_a_1 Bool) (voiture.usr.stop_a_1 Bool) (voiture.usr.bump_a_1 Bool) (voiture.usr.dist_a_1 Int) (voiture.usr.speed_a_1 Int) (voiture.usr.time_a_1 Int) (voiture.usr.move_a_1 Bool) (voiture.usr.second_a_1 Bool) (voiture.usr.meter_a_1 Bool) (voiture.res.init_flag_a_1 Bool) (voiture.res.abs_0_a_1 Bool) (voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) (= voiture.usr.second_a_1 voiture.usr.s_a_1) (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) (= voiture.usr.speed_a_1 (ite (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) 0 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.speed_a_0 1) voiture.usr.speed_a_0))) (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) (= voiture.usr.time_a_1 (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) (= voiture.usr.dist_a_1 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.dist_a_0 1) voiture.usr.dist_a_0)) (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) (= voiture.res.abs_0_a_1 (and (and (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) (not voiture.usr.toofast_a_1)) (not voiture.usr.bump_a_1))) (not voiture.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.bump_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.bump_a_0 top.res.abs_2_a_0) (let ((X1 top.res.abs_10_a_0)) (and (__node_init_voiture_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_init_excludes2_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.m_a_1 Bool) (top.usr.s_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.bump_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.bump_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_1)) (and (= top.usr.OK_a_1 (=> X1 (not top.impl.usr.bump_a_0))) (= top.impl.usr.bump_a_1 top.res.abs_2_a_1) (__node_trans_voiture_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_9_a_1 top.res.abs_10_a_1 top.res.inst_1_a_1 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_trans_excludes2_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))) +(synth-inv str_invariant ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.bump Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.bump Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.bump top.res.abs_2) (let ((X1 top.res.abs_10)) (and (__node_init_voiture_0 top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_init_excludes2_0 top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.bump Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.m! Bool) (top.usr.s! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.bump! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_10!)) (and (= top.usr.OK! (=> X1 (not top.impl.usr.bump))) (= top.impl.usr.bump! top.res.abs_2!) (__node_trans_voiture_0 top.usr.m! top.usr.s! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_3! top.res.inst_2! top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_9! top.res.abs_10! top.res.inst_1! top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_trans_excludes2_0 top.usr.m! top.usr.s! top.res.abs_9! top.res.inst_0! top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) (not top.res.init_flag!)))) +(define-fun prop ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.bump Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/car_6_e1_152.sl b/benchmarks/LIA/Lustre/car_6_e1_152.sl index f7d2f68..55bdfb5 100644 --- a/benchmarks/LIA/Lustre/car_6_e1_152.sl +++ b/benchmarks/LIA/Lustre/car_6_e1_152.sl @@ -1,541 +1,31 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes2_0 ( - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_0 - (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) - excludes2.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes2_0 ( - (excludes2.usr.X1_a_1 Bool) - (excludes2.usr.X2_a_1 Bool) - (excludes2.usr.excludes_a_1 Bool) - (excludes2.res.init_flag_a_1 Bool) - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_1 - (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) - (not excludes2.res.init_flag_a_1)) -) - -(define-fun - __node_init_voiture_0 ( - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.speed_a_0 0) - (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) - (= voiture.usr.move_a_0 true) - (= voiture.usr.time_a_0 0) - (= voiture.usr.dist_a_0 0) - (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) - (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) - (= - voiture.res.abs_0_a_0 - (and - (and - (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) - (not voiture.usr.toofast_a_0)) - (not voiture.usr.bump_a_0))) - (= voiture.usr.second_a_0 false) - (= voiture.usr.meter_a_0 false) - voiture.res.init_flag_a_0) -) - -(define-fun - __node_trans_voiture_0 ( - (voiture.usr.m_a_1 Bool) - (voiture.usr.s_a_1 Bool) - (voiture.usr.toofast_a_1 Bool) - (voiture.usr.stop_a_1 Bool) - (voiture.usr.bump_a_1 Bool) - (voiture.usr.dist_a_1 Int) - (voiture.usr.speed_a_1 Int) - (voiture.usr.time_a_1 Int) - (voiture.usr.move_a_1 Bool) - (voiture.usr.second_a_1 Bool) - (voiture.usr.meter_a_1 Bool) - (voiture.res.init_flag_a_1 Bool) - (voiture.res.abs_0_a_1 Bool) - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) - (= voiture.usr.second_a_1 voiture.usr.s_a_1) - (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) - (= - voiture.usr.speed_a_1 - (ite - (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) - 0 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ (+ voiture.usr.speed_a_0 1) 1) - voiture.usr.speed_a_0))) - (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) - (= - voiture.usr.time_a_1 - (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) - (= - voiture.usr.dist_a_1 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.dist_a_0 1) - voiture.usr.dist_a_0)) - (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) - (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) - (= - voiture.res.abs_0_a_1 - (and - (and - (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) - (not voiture.usr.toofast_a_1)) - (not voiture.usr.bump_a_1))) - (not voiture.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.bump_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= top.impl.usr.bump_a_0 top.res.abs_2_a_0) - (let - ((X1 Bool top.res.abs_10_a_0)) - (and - (__node_init_voiture_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) - (__node_init_excludes2_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.m_a_1 Bool) - (top.usr.s_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.bump_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.bump_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (not top.impl.usr.bump_a_0))) - (= top.impl.usr.bump_a_1 top.res.abs_2_a_1) - (__node_trans_voiture_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_9_a_1 - top.res.abs_10_a_1 - top.res.inst_1_a_1 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes2_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))) -) - - - -(synth-inv str_invariant( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.bump Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.m Bool) -(declare-primed-var top.usr.s Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.bump Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.bump Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.bump top.res.abs_2) - (let - ((X1 Bool top.res.abs_10)) - (and - (__node_init_voiture_0 - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) - (__node_init_excludes2_0 - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.bump Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.m! Bool) - (top.usr.s! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.bump! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_10!)) - (and - (= top.usr.OK! (=> X1 (not top.impl.usr.bump))) - (= top.impl.usr.bump! top.res.abs_2!) - (__node_trans_voiture_0 - top.usr.m! - top.usr.s! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_3! - top.res.inst_2! - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_9! - top.res.abs_10! - top.res.inst_1! - top.res.abs_9 - top.res.abs_10 - top.res.inst_1) - (__node_trans_excludes2_0 - top.usr.m! - top.usr.s! - top.res.abs_9! - top.res.inst_0! - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!))) -) - -(define-fun - prop ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.bump Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes2_0 ((excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_0 (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) excludes2.res.init_flag_a_0)) +(define-fun __node_trans_excludes2_0 ((excludes2.usr.X1_a_1 Bool) (excludes2.usr.X2_a_1 Bool) (excludes2.usr.excludes_a_1 Bool) (excludes2.res.init_flag_a_1 Bool) (excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_1 (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) (not excludes2.res.init_flag_a_1))) +(define-fun __node_init_voiture_0 ((voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.speed_a_0 0) (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) (= voiture.usr.move_a_0 true) (= voiture.usr.time_a_0 0) (= voiture.usr.dist_a_0 0) (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) (= voiture.res.abs_0_a_0 (and (and (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) (not voiture.usr.toofast_a_0)) (not voiture.usr.bump_a_0))) (= voiture.usr.second_a_0 false) (= voiture.usr.meter_a_0 false) voiture.res.init_flag_a_0)) +(define-fun __node_trans_voiture_0 ((voiture.usr.m_a_1 Bool) (voiture.usr.s_a_1 Bool) (voiture.usr.toofast_a_1 Bool) (voiture.usr.stop_a_1 Bool) (voiture.usr.bump_a_1 Bool) (voiture.usr.dist_a_1 Int) (voiture.usr.speed_a_1 Int) (voiture.usr.time_a_1 Int) (voiture.usr.move_a_1 Bool) (voiture.usr.second_a_1 Bool) (voiture.usr.meter_a_1 Bool) (voiture.res.init_flag_a_1 Bool) (voiture.res.abs_0_a_1 Bool) (voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) (= voiture.usr.second_a_1 voiture.usr.s_a_1) (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) (= voiture.usr.speed_a_1 (ite (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) 0 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ (+ voiture.usr.speed_a_0 1) 1) voiture.usr.speed_a_0))) (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) (= voiture.usr.time_a_1 (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) (= voiture.usr.dist_a_1 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.dist_a_0 1) voiture.usr.dist_a_0)) (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) (= voiture.res.abs_0_a_1 (and (and (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) (not voiture.usr.toofast_a_1)) (not voiture.usr.bump_a_1))) (not voiture.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.bump_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.bump_a_0 top.res.abs_2_a_0) (let ((X1 top.res.abs_10_a_0)) (and (__node_init_voiture_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_init_excludes2_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.m_a_1 Bool) (top.usr.s_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.bump_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.bump_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_1)) (and (= top.usr.OK_a_1 (=> X1 (not top.impl.usr.bump_a_0))) (= top.impl.usr.bump_a_1 top.res.abs_2_a_1) (__node_trans_voiture_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_9_a_1 top.res.abs_10_a_1 top.res.inst_1_a_1 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_trans_excludes2_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))) +(synth-inv str_invariant ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.bump Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.bump Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.bump top.res.abs_2) (let ((X1 top.res.abs_10)) (and (__node_init_voiture_0 top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_init_excludes2_0 top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.bump Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.m! Bool) (top.usr.s! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.bump! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_10!)) (and (= top.usr.OK! (=> X1 (not top.impl.usr.bump))) (= top.impl.usr.bump! top.res.abs_2!) (__node_trans_voiture_0 top.usr.m! top.usr.s! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_3! top.res.inst_2! top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_9! top.res.abs_10! top.res.inst_1! top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_trans_excludes2_0 top.usr.m! top.usr.s! top.res.abs_9! top.res.inst_0! top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) (not top.res.init_flag!)))) +(define-fun prop ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.bump Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/car_6_e1_152_e1_391.sl b/benchmarks/LIA/Lustre/car_6_e1_152_e1_391.sl index bf92e43..c78fead 100644 --- a/benchmarks/LIA/Lustre/car_6_e1_152_e1_391.sl +++ b/benchmarks/LIA/Lustre/car_6_e1_152_e1_391.sl @@ -1,544 +1,31 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes2_0 ( - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_0 - (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) - excludes2.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes2_0 ( - (excludes2.usr.X1_a_1 Bool) - (excludes2.usr.X2_a_1 Bool) - (excludes2.usr.excludes_a_1 Bool) - (excludes2.res.init_flag_a_1 Bool) - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_1 - (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) - (not excludes2.res.init_flag_a_1)) -) - -(define-fun - __node_init_voiture_0 ( - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.speed_a_0 0) - (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) - (= voiture.usr.move_a_0 true) - (= voiture.usr.time_a_0 0) - (= voiture.usr.dist_a_0 0) - (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) - (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) - (= - voiture.res.abs_0_a_0 - (and - (and - (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) - (not voiture.usr.toofast_a_0)) - (not voiture.usr.bump_a_0))) - (= voiture.usr.second_a_0 false) - (= voiture.usr.meter_a_0 false) - voiture.res.init_flag_a_0) -) - -(define-fun - __node_trans_voiture_0 ( - (voiture.usr.m_a_1 Bool) - (voiture.usr.s_a_1 Bool) - (voiture.usr.toofast_a_1 Bool) - (voiture.usr.stop_a_1 Bool) - (voiture.usr.bump_a_1 Bool) - (voiture.usr.dist_a_1 Int) - (voiture.usr.speed_a_1 Int) - (voiture.usr.time_a_1 Int) - (voiture.usr.move_a_1 Bool) - (voiture.usr.second_a_1 Bool) - (voiture.usr.meter_a_1 Bool) - (voiture.res.init_flag_a_1 Bool) - (voiture.res.abs_0_a_1 Bool) - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) - (= voiture.usr.second_a_1 voiture.usr.s_a_1) - (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) - (= - voiture.usr.speed_a_1 - (ite - (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) - 0 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ (+ voiture.usr.speed_a_0 1) 1) - voiture.usr.speed_a_0))) - (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) - (= - voiture.usr.time_a_1 - (ite - voiture.usr.second_a_1 - (+ (+ voiture.usr.time_a_0 1) 1) - voiture.usr.time_a_0)) - (= - voiture.usr.dist_a_1 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.dist_a_0 1) - voiture.usr.dist_a_0)) - (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) - (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) - (= - voiture.res.abs_0_a_1 - (and - (and - (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) - (not voiture.usr.toofast_a_1)) - (not voiture.usr.bump_a_1))) - (not voiture.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.bump_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= top.impl.usr.bump_a_0 top.res.abs_2_a_0) - (let - ((X1 Bool top.res.abs_10_a_0)) - (and - (__node_init_voiture_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) - (__node_init_excludes2_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.m_a_1 Bool) - (top.usr.s_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.bump_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.bump_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_10_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (not top.impl.usr.bump_a_0))) - (= top.impl.usr.bump_a_1 top.res.abs_2_a_1) - (__node_trans_voiture_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_9_a_1 - top.res.abs_10_a_1 - top.res.inst_1_a_1 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes2_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))) -) - - - -(synth-inv str_invariant( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.bump Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.m Bool) -(declare-primed-var top.usr.s Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.bump Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.bump Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.bump top.res.abs_2) - (let - ((X1 Bool top.res.abs_10)) - (and - (__node_init_voiture_0 - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) - (__node_init_excludes2_0 - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.bump Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.m! Bool) - (top.usr.s! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.bump! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_10!)) - (and - (= top.usr.OK! (=> X1 (not top.impl.usr.bump))) - (= top.impl.usr.bump! top.res.abs_2!) - (__node_trans_voiture_0 - top.usr.m! - top.usr.s! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_3! - top.res.inst_2! - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_9! - top.res.abs_10! - top.res.inst_1! - top.res.abs_9 - top.res.abs_10 - top.res.inst_1) - (__node_trans_excludes2_0 - top.usr.m! - top.usr.s! - top.res.abs_9! - top.res.inst_0! - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!))) -) - -(define-fun - prop ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.bump Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes2_0 ((excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_0 (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) excludes2.res.init_flag_a_0)) +(define-fun __node_trans_excludes2_0 ((excludes2.usr.X1_a_1 Bool) (excludes2.usr.X2_a_1 Bool) (excludes2.usr.excludes_a_1 Bool) (excludes2.res.init_flag_a_1 Bool) (excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_1 (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) (not excludes2.res.init_flag_a_1))) +(define-fun __node_init_voiture_0 ((voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.speed_a_0 0) (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) (= voiture.usr.move_a_0 true) (= voiture.usr.time_a_0 0) (= voiture.usr.dist_a_0 0) (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) (= voiture.res.abs_0_a_0 (and (and (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) (not voiture.usr.toofast_a_0)) (not voiture.usr.bump_a_0))) (= voiture.usr.second_a_0 false) (= voiture.usr.meter_a_0 false) voiture.res.init_flag_a_0)) +(define-fun __node_trans_voiture_0 ((voiture.usr.m_a_1 Bool) (voiture.usr.s_a_1 Bool) (voiture.usr.toofast_a_1 Bool) (voiture.usr.stop_a_1 Bool) (voiture.usr.bump_a_1 Bool) (voiture.usr.dist_a_1 Int) (voiture.usr.speed_a_1 Int) (voiture.usr.time_a_1 Int) (voiture.usr.move_a_1 Bool) (voiture.usr.second_a_1 Bool) (voiture.usr.meter_a_1 Bool) (voiture.res.init_flag_a_1 Bool) (voiture.res.abs_0_a_1 Bool) (voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) (= voiture.usr.second_a_1 voiture.usr.s_a_1) (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) (= voiture.usr.speed_a_1 (ite (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) 0 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ (+ voiture.usr.speed_a_0 1) 1) voiture.usr.speed_a_0))) (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) (= voiture.usr.time_a_1 (ite voiture.usr.second_a_1 (+ (+ voiture.usr.time_a_0 1) 1) voiture.usr.time_a_0)) (= voiture.usr.dist_a_1 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.dist_a_0 1) voiture.usr.dist_a_0)) (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) (= voiture.res.abs_0_a_1 (and (and (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) (not voiture.usr.toofast_a_1)) (not voiture.usr.bump_a_1))) (not voiture.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.bump_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.bump_a_0 top.res.abs_2_a_0) (let ((X1 top.res.abs_10_a_0)) (and (__node_init_voiture_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_init_excludes2_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.m_a_1 Bool) (top.usr.s_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.bump_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.bump_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_10_a_1)) (and (= top.usr.OK_a_1 (=> X1 (not top.impl.usr.bump_a_0))) (= top.impl.usr.bump_a_1 top.res.abs_2_a_1) (__node_trans_voiture_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_9_a_1 top.res.abs_10_a_1 top.res.inst_1_a_1 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.inst_1_a_0) (__node_trans_excludes2_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))) +(synth-inv str_invariant ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.bump Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.bump Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.bump top.res.abs_2) (let ((X1 top.res.abs_10)) (and (__node_init_voiture_0 top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_init_excludes2_0 top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.bump Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.m! Bool) (top.usr.s! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.bump! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_10!)) (and (= top.usr.OK! (=> X1 (not top.impl.usr.bump))) (= top.impl.usr.bump! top.res.abs_2!) (__node_trans_voiture_0 top.usr.m! top.usr.s! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_3! top.res.inst_2! top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_9! top.res.abs_10! top.res.inst_1! top.res.abs_9 top.res.abs_10 top.res.inst_1) (__node_trans_excludes2_0 top.usr.m! top.usr.s! top.res.abs_9! top.res.inst_0! top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) (not top.res.init_flag!)))) +(define-fun prop ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.bump Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/car_all.sl b/benchmarks/LIA/Lustre/car_all.sl index cb78f75..b01b7dc 100644 --- a/benchmarks/LIA/Lustre/car_all.sl +++ b/benchmarks/LIA/Lustre/car_all.sl @@ -1,570 +1,31 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes2_0 ( - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_0 - (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) - excludes2.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes2_0 ( - (excludes2.usr.X1_a_1 Bool) - (excludes2.usr.X2_a_1 Bool) - (excludes2.usr.excludes_a_1 Bool) - (excludes2.res.init_flag_a_1 Bool) - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_1 - (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) - (not excludes2.res.init_flag_a_1)) -) - -(define-fun - __node_init_voiture_0 ( - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.speed_a_0 0) - (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) - (= voiture.usr.move_a_0 true) - (= voiture.usr.time_a_0 0) - (= voiture.usr.dist_a_0 0) - (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) - (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) - (= - voiture.res.abs_0_a_0 - (and - (and - (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) - (not voiture.usr.toofast_a_0)) - (not voiture.usr.bump_a_0))) - (= voiture.usr.second_a_0 false) - (= voiture.usr.meter_a_0 false) - voiture.res.init_flag_a_0) -) - -(define-fun - __node_trans_voiture_0 ( - (voiture.usr.m_a_1 Bool) - (voiture.usr.s_a_1 Bool) - (voiture.usr.toofast_a_1 Bool) - (voiture.usr.stop_a_1 Bool) - (voiture.usr.bump_a_1 Bool) - (voiture.usr.dist_a_1 Int) - (voiture.usr.speed_a_1 Int) - (voiture.usr.time_a_1 Int) - (voiture.usr.move_a_1 Bool) - (voiture.usr.second_a_1 Bool) - (voiture.usr.meter_a_1 Bool) - (voiture.res.init_flag_a_1 Bool) - (voiture.res.abs_0_a_1 Bool) - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) - (= voiture.usr.second_a_1 voiture.usr.s_a_1) - (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) - (= - voiture.usr.speed_a_1 - (ite - (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) - 0 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.speed_a_0 1) - voiture.usr.speed_a_0))) - (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) - (= - voiture.usr.time_a_1 - (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) - (= - voiture.usr.dist_a_1 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.dist_a_0 1) - voiture.usr.dist_a_0)) - (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) - (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) - (= - voiture.res.abs_0_a_1 - (and - (and - (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) - (not voiture.usr.toofast_a_1)) - (not voiture.usr.bump_a_1))) - (not voiture.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_3_a_0)) - (and - (= top.res.abs_10_a_0 (and top.res.abs_9_a_0 (< X1 32767))) - (let - ((X2 Bool top.res.abs_11_a_0)) - (let - ((X3 Int top.res.abs_4_a_0)) - (and - (= - top.usr.OK_a_0 - (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) - (__node_init_voiture_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_init_excludes2_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.m_a_1 Bool) - (top.usr.s_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_3_a_1)) - (and - (= top.res.abs_10_a_1 (and top.res.abs_9_a_1 (< X1 32767))) - (let - ((X2 Bool top.res.abs_11_a_1)) - (let - ((X3 Int top.res.abs_4_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) - (__node_trans_voiture_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes2_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))) -) - - - -(synth-inv str_invariant( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.m Bool) -(declare-primed-var top.usr.s Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_3)) - (and - (= top.res.abs_10 (and top.res.abs_9 (< X1 32767))) - (let - ((X2 Bool top.res.abs_11)) - (let - ((X3 Int top.res.abs_4)) - (and - (= - top.usr.OK - (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) - (__node_init_voiture_0 - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) - (__node_init_excludes2_0 - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.m! Bool) - (top.usr.s! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Int top.res.abs_3!)) - (and - (= top.res.abs_10! (and top.res.abs_9! (< X1 32767))) - (let - ((X2 Bool top.res.abs_11!)) - (let - ((X3 Int top.res.abs_4!)) - (and - (= - top.usr.OK! - (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) - (__node_trans_voiture_0 - top.usr.m! - top.usr.s! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_3! - top.res.inst_2! - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_1! - top.res.abs_10 - top.res.abs_11 - top.res.inst_1) - (__node_trans_excludes2_0 - top.usr.m! - top.usr.s! - top.res.abs_9! - top.res.inst_0! - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))))) -) - -(define-fun - prop ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes2_0 ((excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_0 (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) excludes2.res.init_flag_a_0)) +(define-fun __node_trans_excludes2_0 ((excludes2.usr.X1_a_1 Bool) (excludes2.usr.X2_a_1 Bool) (excludes2.usr.excludes_a_1 Bool) (excludes2.res.init_flag_a_1 Bool) (excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_1 (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) (not excludes2.res.init_flag_a_1))) +(define-fun __node_init_voiture_0 ((voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.speed_a_0 0) (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) (= voiture.usr.move_a_0 true) (= voiture.usr.time_a_0 0) (= voiture.usr.dist_a_0 0) (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) (= voiture.res.abs_0_a_0 (and (and (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) (not voiture.usr.toofast_a_0)) (not voiture.usr.bump_a_0))) (= voiture.usr.second_a_0 false) (= voiture.usr.meter_a_0 false) voiture.res.init_flag_a_0)) +(define-fun __node_trans_voiture_0 ((voiture.usr.m_a_1 Bool) (voiture.usr.s_a_1 Bool) (voiture.usr.toofast_a_1 Bool) (voiture.usr.stop_a_1 Bool) (voiture.usr.bump_a_1 Bool) (voiture.usr.dist_a_1 Int) (voiture.usr.speed_a_1 Int) (voiture.usr.time_a_1 Int) (voiture.usr.move_a_1 Bool) (voiture.usr.second_a_1 Bool) (voiture.usr.meter_a_1 Bool) (voiture.res.init_flag_a_1 Bool) (voiture.res.abs_0_a_1 Bool) (voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) (= voiture.usr.second_a_1 voiture.usr.s_a_1) (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) (= voiture.usr.speed_a_1 (ite (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) 0 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.speed_a_0 1) voiture.usr.speed_a_0))) (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) (= voiture.usr.time_a_1 (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) (= voiture.usr.dist_a_1 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.dist_a_0 1) voiture.usr.dist_a_0)) (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) (= voiture.res.abs_0_a_1 (and (and (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) (not voiture.usr.toofast_a_1)) (not voiture.usr.bump_a_1))) (not voiture.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_3_a_0)) (and (= top.res.abs_10_a_0 (and top.res.abs_9_a_0 (< X1 32767))) (let ((X2 top.res.abs_11_a_0)) (let ((X3 top.res.abs_4_a_0)) (and (= top.usr.OK_a_0 (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) (__node_init_voiture_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_init_excludes2_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))) +(define-fun __node_trans_top_0 ((top.usr.m_a_1 Bool) (top.usr.s_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_3_a_1)) (and (= top.res.abs_10_a_1 (and top.res.abs_9_a_1 (< X1 32767))) (let ((X2 top.res.abs_11_a_1)) (let ((X3 top.res.abs_4_a_1)) (and (= top.usr.OK_a_1 (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) (__node_trans_voiture_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_trans_excludes2_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))) +(synth-inv str_invariant ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_3)) (and (= top.res.abs_10 (and top.res.abs_9 (< X1 32767))) (let ((X2 top.res.abs_11)) (let ((X3 top.res.abs_4)) (and (= top.usr.OK (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) (__node_init_voiture_0 top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_init_excludes2_0 top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) top.res.init_flag)))))) +(define-fun trans ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.m! Bool) (top.usr.s! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_3!)) (and (= top.res.abs_10! (and top.res.abs_9! (< X1 32767))) (let ((X2 top.res.abs_11!)) (let ((X3 top.res.abs_4!)) (and (= top.usr.OK! (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) (__node_trans_voiture_0 top.usr.m! top.usr.s! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_3! top.res.inst_2! top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_1! top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_trans_excludes2_0 top.usr.m! top.usr.s! top.res.abs_9! top.res.inst_0! top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))))) +(define-fun prop ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/car_all_e2_142.sl b/benchmarks/LIA/Lustre/car_all_e2_142.sl index 97a5065..2a282c0 100644 --- a/benchmarks/LIA/Lustre/car_all_e2_142.sl +++ b/benchmarks/LIA/Lustre/car_all_e2_142.sl @@ -1,570 +1,31 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes2_0 ( - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_0 - (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) - excludes2.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes2_0 ( - (excludes2.usr.X1_a_1 Bool) - (excludes2.usr.X2_a_1 Bool) - (excludes2.usr.excludes_a_1 Bool) - (excludes2.res.init_flag_a_1 Bool) - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_1 - (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) - (not excludes2.res.init_flag_a_1)) -) - -(define-fun - __node_init_voiture_0 ( - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.speed_a_0 0) - (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) - (= voiture.usr.move_a_0 true) - (= voiture.usr.time_a_0 0) - (= voiture.usr.dist_a_0 0) - (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) - (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) - (= - voiture.res.abs_0_a_0 - (and - (and - (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) - (not voiture.usr.toofast_a_0)) - (not voiture.usr.bump_a_0))) - (= voiture.usr.second_a_0 false) - (= voiture.usr.meter_a_0 false) - voiture.res.init_flag_a_0) -) - -(define-fun - __node_trans_voiture_0 ( - (voiture.usr.m_a_1 Bool) - (voiture.usr.s_a_1 Bool) - (voiture.usr.toofast_a_1 Bool) - (voiture.usr.stop_a_1 Bool) - (voiture.usr.bump_a_1 Bool) - (voiture.usr.dist_a_1 Int) - (voiture.usr.speed_a_1 Int) - (voiture.usr.time_a_1 Int) - (voiture.usr.move_a_1 Bool) - (voiture.usr.second_a_1 Bool) - (voiture.usr.meter_a_1 Bool) - (voiture.res.init_flag_a_1 Bool) - (voiture.res.abs_0_a_1 Bool) - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) - (= voiture.usr.second_a_1 voiture.usr.s_a_1) - (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) - (= - voiture.usr.speed_a_1 - (ite - (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) - 0 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ (- voiture.usr.speed_a_0 1) 1) - voiture.usr.speed_a_0))) - (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) - (= - voiture.usr.time_a_1 - (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) - (= - voiture.usr.dist_a_1 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.dist_a_0 1) - voiture.usr.dist_a_0)) - (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) - (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) - (= - voiture.res.abs_0_a_1 - (and - (and - (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) - (not voiture.usr.toofast_a_1)) - (not voiture.usr.bump_a_1))) - (not voiture.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_3_a_0)) - (and - (= top.res.abs_10_a_0 (and top.res.abs_9_a_0 (< X1 32767))) - (let - ((X2 Bool top.res.abs_11_a_0)) - (let - ((X3 Int top.res.abs_4_a_0)) - (and - (= - top.usr.OK_a_0 - (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) - (__node_init_voiture_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_init_excludes2_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.m_a_1 Bool) - (top.usr.s_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_3_a_1)) - (and - (= top.res.abs_10_a_1 (and top.res.abs_9_a_1 (< X1 32767))) - (let - ((X2 Bool top.res.abs_11_a_1)) - (let - ((X3 Int top.res.abs_4_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) - (__node_trans_voiture_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes2_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))) -) - - - -(synth-inv str_invariant( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.m Bool) -(declare-primed-var top.usr.s Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_3)) - (and - (= top.res.abs_10 (and top.res.abs_9 (< X1 32767))) - (let - ((X2 Bool top.res.abs_11)) - (let - ((X3 Int top.res.abs_4)) - (and - (= - top.usr.OK - (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) - (__node_init_voiture_0 - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) - (__node_init_excludes2_0 - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.m! Bool) - (top.usr.s! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Int top.res.abs_3!)) - (and - (= top.res.abs_10! (and top.res.abs_9! (< X1 32767))) - (let - ((X2 Bool top.res.abs_11!)) - (let - ((X3 Int top.res.abs_4!)) - (and - (= - top.usr.OK! - (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) - (__node_trans_voiture_0 - top.usr.m! - top.usr.s! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_3! - top.res.inst_2! - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_1! - top.res.abs_10 - top.res.abs_11 - top.res.inst_1) - (__node_trans_excludes2_0 - top.usr.m! - top.usr.s! - top.res.abs_9! - top.res.inst_0! - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))))) -) - -(define-fun - prop ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes2_0 ((excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_0 (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) excludes2.res.init_flag_a_0)) +(define-fun __node_trans_excludes2_0 ((excludes2.usr.X1_a_1 Bool) (excludes2.usr.X2_a_1 Bool) (excludes2.usr.excludes_a_1 Bool) (excludes2.res.init_flag_a_1 Bool) (excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_1 (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) (not excludes2.res.init_flag_a_1))) +(define-fun __node_init_voiture_0 ((voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.speed_a_0 0) (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) (= voiture.usr.move_a_0 true) (= voiture.usr.time_a_0 0) (= voiture.usr.dist_a_0 0) (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) (= voiture.res.abs_0_a_0 (and (and (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) (not voiture.usr.toofast_a_0)) (not voiture.usr.bump_a_0))) (= voiture.usr.second_a_0 false) (= voiture.usr.meter_a_0 false) voiture.res.init_flag_a_0)) +(define-fun __node_trans_voiture_0 ((voiture.usr.m_a_1 Bool) (voiture.usr.s_a_1 Bool) (voiture.usr.toofast_a_1 Bool) (voiture.usr.stop_a_1 Bool) (voiture.usr.bump_a_1 Bool) (voiture.usr.dist_a_1 Int) (voiture.usr.speed_a_1 Int) (voiture.usr.time_a_1 Int) (voiture.usr.move_a_1 Bool) (voiture.usr.second_a_1 Bool) (voiture.usr.meter_a_1 Bool) (voiture.res.init_flag_a_1 Bool) (voiture.res.abs_0_a_1 Bool) (voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) (= voiture.usr.second_a_1 voiture.usr.s_a_1) (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) (= voiture.usr.speed_a_1 (ite (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) 0 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ (- voiture.usr.speed_a_0 1) 1) voiture.usr.speed_a_0))) (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) (= voiture.usr.time_a_1 (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) (= voiture.usr.dist_a_1 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.dist_a_0 1) voiture.usr.dist_a_0)) (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) (= voiture.res.abs_0_a_1 (and (and (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) (not voiture.usr.toofast_a_1)) (not voiture.usr.bump_a_1))) (not voiture.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_3_a_0)) (and (= top.res.abs_10_a_0 (and top.res.abs_9_a_0 (< X1 32767))) (let ((X2 top.res.abs_11_a_0)) (let ((X3 top.res.abs_4_a_0)) (and (= top.usr.OK_a_0 (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) (__node_init_voiture_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_init_excludes2_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))) +(define-fun __node_trans_top_0 ((top.usr.m_a_1 Bool) (top.usr.s_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_3_a_1)) (and (= top.res.abs_10_a_1 (and top.res.abs_9_a_1 (< X1 32767))) (let ((X2 top.res.abs_11_a_1)) (let ((X3 top.res.abs_4_a_1)) (and (= top.usr.OK_a_1 (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) (__node_trans_voiture_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_trans_excludes2_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))) +(synth-inv str_invariant ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_3)) (and (= top.res.abs_10 (and top.res.abs_9 (< X1 32767))) (let ((X2 top.res.abs_11)) (let ((X3 top.res.abs_4)) (and (= top.usr.OK (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) (__node_init_voiture_0 top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_init_excludes2_0 top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) top.res.init_flag)))))) +(define-fun trans ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.m! Bool) (top.usr.s! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_3!)) (and (= top.res.abs_10! (and top.res.abs_9! (< X1 32767))) (let ((X2 top.res.abs_11!)) (let ((X3 top.res.abs_4!)) (and (= top.usr.OK! (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) (__node_trans_voiture_0 top.usr.m! top.usr.s! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_3! top.res.inst_2! top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_1! top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_trans_excludes2_0 top.usr.m! top.usr.s! top.res.abs_9! top.res.inst_0! top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))))) +(define-fun prop ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/car_all_e2_142_e7_209.sl b/benchmarks/LIA/Lustre/car_all_e2_142_e7_209.sl index af94419..b117987 100644 --- a/benchmarks/LIA/Lustre/car_all_e2_142_e7_209.sl +++ b/benchmarks/LIA/Lustre/car_all_e2_142_e7_209.sl @@ -1,570 +1,31 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes2_0 ( - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_0 - (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) - excludes2.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes2_0 ( - (excludes2.usr.X1_a_1 Bool) - (excludes2.usr.X2_a_1 Bool) - (excludes2.usr.excludes_a_1 Bool) - (excludes2.res.init_flag_a_1 Bool) - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_1 - (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) - (not excludes2.res.init_flag_a_1)) -) - -(define-fun - __node_init_voiture_0 ( - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.speed_a_0 0) - (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) - (= voiture.usr.move_a_0 true) - (= voiture.usr.time_a_0 0) - (= voiture.usr.dist_a_0 0) - (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) - (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) - (= - voiture.res.abs_0_a_0 - (and - (and - (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) - (not voiture.usr.toofast_a_0)) - (not voiture.usr.bump_a_0))) - (= voiture.usr.second_a_0 false) - (= voiture.usr.meter_a_0 false) - voiture.res.init_flag_a_0) -) - -(define-fun - __node_trans_voiture_0 ( - (voiture.usr.m_a_1 Bool) - (voiture.usr.s_a_1 Bool) - (voiture.usr.toofast_a_1 Bool) - (voiture.usr.stop_a_1 Bool) - (voiture.usr.bump_a_1 Bool) - (voiture.usr.dist_a_1 Int) - (voiture.usr.speed_a_1 Int) - (voiture.usr.time_a_1 Int) - (voiture.usr.move_a_1 Bool) - (voiture.usr.second_a_1 Bool) - (voiture.usr.meter_a_1 Bool) - (voiture.res.init_flag_a_1 Bool) - (voiture.res.abs_0_a_1 Bool) - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) - (= voiture.usr.second_a_1 voiture.usr.s_a_1) - (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) - (= - voiture.usr.speed_a_1 - (ite - (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) - 0 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ (- voiture.usr.speed_a_0 1) 1) - voiture.usr.speed_a_0))) - (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) - (= - voiture.usr.time_a_1 - (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) - (= - voiture.usr.dist_a_1 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.dist_a_0 1) - voiture.usr.dist_a_0)) - (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) - (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) - (= - voiture.res.abs_0_a_1 - (and - (and - (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) - (not voiture.usr.toofast_a_1)) - (not voiture.usr.bump_a_1))) - (not voiture.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_3_a_0)) - (and - (= top.res.abs_10_a_0 (and top.res.abs_9_a_0 (< X1 32767))) - (let - ((X2 Bool top.res.abs_11_a_0)) - (let - ((X3 Int top.res.abs_4_a_0)) - (and - (= - top.usr.OK_a_0 - (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) - (__node_init_voiture_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_init_excludes2_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.m_a_1 Bool) - (top.usr.s_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_3_a_1)) - (and - (= top.res.abs_10_a_1 (and top.res.abs_9_a_1 (< X1 32767))) - (let - ((X2 Bool top.res.abs_11_a_1)) - (let - ((X3 Int top.res.abs_4_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) - (__node_trans_voiture_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes2_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))) -) - - - -(synth-inv str_invariant( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.m Bool) -(declare-primed-var top.usr.s Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_3)) - (and - (= top.res.abs_10 (and top.res.abs_9 (< X1 32767))) - (let - ((X2 Bool top.res.abs_11)) - (let - ((X3 Int top.res.abs_4)) - (and - (= - top.usr.OK - (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) - (__node_init_voiture_0 - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) - (__node_init_excludes2_0 - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.m! Bool) - (top.usr.s! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Int top.res.abs_3!)) - (and - (= top.res.abs_10! (and top.res.abs_9! (< X1 32767))) - (let - ((X2 Bool top.res.abs_11!)) - (let - ((X3 Int top.res.abs_4!)) - (and - (= - top.usr.OK! - (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) - (__node_trans_voiture_0 - top.usr.m! - top.usr.s! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_3! - top.res.inst_2! - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_1! - top.res.abs_10 - top.res.abs_11 - top.res.inst_1) - (__node_trans_excludes2_0 - top.usr.m! - top.usr.s! - top.res.abs_9! - top.res.inst_0! - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))))) -) - -(define-fun - prop ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes2_0 ((excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_0 (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) excludes2.res.init_flag_a_0)) +(define-fun __node_trans_excludes2_0 ((excludes2.usr.X1_a_1 Bool) (excludes2.usr.X2_a_1 Bool) (excludes2.usr.excludes_a_1 Bool) (excludes2.res.init_flag_a_1 Bool) (excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_1 (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) (not excludes2.res.init_flag_a_1))) +(define-fun __node_init_voiture_0 ((voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.speed_a_0 0) (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) (= voiture.usr.move_a_0 true) (= voiture.usr.time_a_0 0) (= voiture.usr.dist_a_0 0) (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) (= voiture.res.abs_0_a_0 (and (and (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) (not voiture.usr.toofast_a_0)) (not voiture.usr.bump_a_0))) (= voiture.usr.second_a_0 false) (= voiture.usr.meter_a_0 false) voiture.res.init_flag_a_0)) +(define-fun __node_trans_voiture_0 ((voiture.usr.m_a_1 Bool) (voiture.usr.s_a_1 Bool) (voiture.usr.toofast_a_1 Bool) (voiture.usr.stop_a_1 Bool) (voiture.usr.bump_a_1 Bool) (voiture.usr.dist_a_1 Int) (voiture.usr.speed_a_1 Int) (voiture.usr.time_a_1 Int) (voiture.usr.move_a_1 Bool) (voiture.usr.second_a_1 Bool) (voiture.usr.meter_a_1 Bool) (voiture.res.init_flag_a_1 Bool) (voiture.res.abs_0_a_1 Bool) (voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) (= voiture.usr.second_a_1 voiture.usr.s_a_1) (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) (= voiture.usr.speed_a_1 (ite (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) 0 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ (- voiture.usr.speed_a_0 1) 1) voiture.usr.speed_a_0))) (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) (= voiture.usr.time_a_1 (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) (= voiture.usr.dist_a_1 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.dist_a_0 1) voiture.usr.dist_a_0)) (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) (= voiture.res.abs_0_a_1 (and (and (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) (not voiture.usr.toofast_a_1)) (not voiture.usr.bump_a_1))) (not voiture.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_3_a_0)) (and (= top.res.abs_10_a_0 (and top.res.abs_9_a_0 (< X1 32767))) (let ((X2 top.res.abs_11_a_0)) (let ((X3 top.res.abs_4_a_0)) (and (= top.usr.OK_a_0 (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) (__node_init_voiture_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_init_excludes2_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))) +(define-fun __node_trans_top_0 ((top.usr.m_a_1 Bool) (top.usr.s_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_3_a_1)) (and (= top.res.abs_10_a_1 (and top.res.abs_9_a_1 (< X1 32767))) (let ((X2 top.res.abs_11_a_1)) (let ((X3 top.res.abs_4_a_1)) (and (= top.usr.OK_a_1 (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) (__node_trans_voiture_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_trans_excludes2_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))) +(synth-inv str_invariant ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_3)) (and (= top.res.abs_10 (and top.res.abs_9 (< X1 32767))) (let ((X2 top.res.abs_11)) (let ((X3 top.res.abs_4)) (and (= top.usr.OK (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) (__node_init_voiture_0 top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_init_excludes2_0 top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) top.res.init_flag)))))) +(define-fun trans ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.m! Bool) (top.usr.s! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_3!)) (and (= top.res.abs_10! (and top.res.abs_9! (< X1 32767))) (let ((X2 top.res.abs_11!)) (let ((X3 top.res.abs_4!)) (and (= top.usr.OK! (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) (__node_trans_voiture_0 top.usr.m! top.usr.s! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_3! top.res.inst_2! top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_1! top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_trans_excludes2_0 top.usr.m! top.usr.s! top.res.abs_9! top.res.inst_0! top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))))) +(define-fun prop ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/car_all_e3_1068_e4_275.sl b/benchmarks/LIA/Lustre/car_all_e3_1068_e4_275.sl index 775de7f..71201ad 100644 --- a/benchmarks/LIA/Lustre/car_all_e3_1068_e4_275.sl +++ b/benchmarks/LIA/Lustre/car_all_e3_1068_e4_275.sl @@ -1,570 +1,31 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes2_0 ( - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_0 - (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) - excludes2.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes2_0 ( - (excludes2.usr.X1_a_1 Bool) - (excludes2.usr.X2_a_1 Bool) - (excludes2.usr.excludes_a_1 Bool) - (excludes2.res.init_flag_a_1 Bool) - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_1 - (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) - (not excludes2.res.init_flag_a_1)) -) - -(define-fun - __node_init_voiture_0 ( - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.speed_a_0 0) - (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) - (= voiture.usr.move_a_0 true) - (= voiture.usr.time_a_0 0) - (= voiture.usr.dist_a_0 0) - (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) - (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) - (= - voiture.res.abs_0_a_0 - (and - (and - (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) - (not voiture.usr.toofast_a_0)) - (not voiture.usr.bump_a_0))) - (= voiture.usr.second_a_0 false) - (= voiture.usr.meter_a_0 false) - voiture.res.init_flag_a_0) -) - -(define-fun - __node_trans_voiture_0 ( - (voiture.usr.m_a_1 Bool) - (voiture.usr.s_a_1 Bool) - (voiture.usr.toofast_a_1 Bool) - (voiture.usr.stop_a_1 Bool) - (voiture.usr.bump_a_1 Bool) - (voiture.usr.dist_a_1 Int) - (voiture.usr.speed_a_1 Int) - (voiture.usr.time_a_1 Int) - (voiture.usr.move_a_1 Bool) - (voiture.usr.second_a_1 Bool) - (voiture.usr.meter_a_1 Bool) - (voiture.res.init_flag_a_1 Bool) - (voiture.res.abs_0_a_1 Bool) - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) - (= voiture.usr.second_a_1 voiture.usr.s_a_1) - (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) - (= - voiture.usr.speed_a_1 - (ite - (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) - 0 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (- (+ voiture.usr.speed_a_0 1) 1) - voiture.usr.speed_a_0))) - (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) - (= - voiture.usr.time_a_1 - (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) - (= - voiture.usr.dist_a_1 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.dist_a_0 1) - voiture.usr.dist_a_0)) - (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) - (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) - (= - voiture.res.abs_0_a_1 - (and - (and - (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) - (not voiture.usr.toofast_a_1)) - (not voiture.usr.bump_a_1))) - (not voiture.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_3_a_0)) - (and - (= top.res.abs_10_a_0 (and top.res.abs_9_a_0 (< X1 32767))) - (let - ((X2 Bool top.res.abs_11_a_0)) - (let - ((X3 Int top.res.abs_4_a_0)) - (and - (= - top.usr.OK_a_0 - (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) - (__node_init_voiture_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_init_excludes2_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.m_a_1 Bool) - (top.usr.s_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_3_a_1)) - (and - (= top.res.abs_10_a_1 (and top.res.abs_9_a_1 (< X1 32767))) - (let - ((X2 Bool top.res.abs_11_a_1)) - (let - ((X3 Int top.res.abs_4_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) - (__node_trans_voiture_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes2_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))) -) - - - -(synth-inv str_invariant( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.m Bool) -(declare-primed-var top.usr.s Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_3)) - (and - (= top.res.abs_10 (and top.res.abs_9 (< X1 32767))) - (let - ((X2 Bool top.res.abs_11)) - (let - ((X3 Int top.res.abs_4)) - (and - (= - top.usr.OK - (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) - (__node_init_voiture_0 - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) - (__node_init_excludes2_0 - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.m! Bool) - (top.usr.s! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Int top.res.abs_3!)) - (and - (= top.res.abs_10! (and top.res.abs_9! (< X1 32767))) - (let - ((X2 Bool top.res.abs_11!)) - (let - ((X3 Int top.res.abs_4!)) - (and - (= - top.usr.OK! - (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) - (__node_trans_voiture_0 - top.usr.m! - top.usr.s! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_3! - top.res.inst_2! - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_1! - top.res.abs_10 - top.res.abs_11 - top.res.inst_1) - (__node_trans_excludes2_0 - top.usr.m! - top.usr.s! - top.res.abs_9! - top.res.inst_0! - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))))) -) - -(define-fun - prop ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes2_0 ((excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_0 (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) excludes2.res.init_flag_a_0)) +(define-fun __node_trans_excludes2_0 ((excludes2.usr.X1_a_1 Bool) (excludes2.usr.X2_a_1 Bool) (excludes2.usr.excludes_a_1 Bool) (excludes2.res.init_flag_a_1 Bool) (excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_1 (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) (not excludes2.res.init_flag_a_1))) +(define-fun __node_init_voiture_0 ((voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.speed_a_0 0) (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) (= voiture.usr.move_a_0 true) (= voiture.usr.time_a_0 0) (= voiture.usr.dist_a_0 0) (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) (= voiture.res.abs_0_a_0 (and (and (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) (not voiture.usr.toofast_a_0)) (not voiture.usr.bump_a_0))) (= voiture.usr.second_a_0 false) (= voiture.usr.meter_a_0 false) voiture.res.init_flag_a_0)) +(define-fun __node_trans_voiture_0 ((voiture.usr.m_a_1 Bool) (voiture.usr.s_a_1 Bool) (voiture.usr.toofast_a_1 Bool) (voiture.usr.stop_a_1 Bool) (voiture.usr.bump_a_1 Bool) (voiture.usr.dist_a_1 Int) (voiture.usr.speed_a_1 Int) (voiture.usr.time_a_1 Int) (voiture.usr.move_a_1 Bool) (voiture.usr.second_a_1 Bool) (voiture.usr.meter_a_1 Bool) (voiture.res.init_flag_a_1 Bool) (voiture.res.abs_0_a_1 Bool) (voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) (= voiture.usr.second_a_1 voiture.usr.s_a_1) (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) (= voiture.usr.speed_a_1 (ite (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) 0 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (- (+ voiture.usr.speed_a_0 1) 1) voiture.usr.speed_a_0))) (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) (= voiture.usr.time_a_1 (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) (= voiture.usr.dist_a_1 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.dist_a_0 1) voiture.usr.dist_a_0)) (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) (= voiture.res.abs_0_a_1 (and (and (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) (not voiture.usr.toofast_a_1)) (not voiture.usr.bump_a_1))) (not voiture.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_3_a_0)) (and (= top.res.abs_10_a_0 (and top.res.abs_9_a_0 (< X1 32767))) (let ((X2 top.res.abs_11_a_0)) (let ((X3 top.res.abs_4_a_0)) (and (= top.usr.OK_a_0 (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) (__node_init_voiture_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_init_excludes2_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))) +(define-fun __node_trans_top_0 ((top.usr.m_a_1 Bool) (top.usr.s_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_3_a_1)) (and (= top.res.abs_10_a_1 (and top.res.abs_9_a_1 (< X1 32767))) (let ((X2 top.res.abs_11_a_1)) (let ((X3 top.res.abs_4_a_1)) (and (= top.usr.OK_a_1 (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) (__node_trans_voiture_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_trans_excludes2_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))) +(synth-inv str_invariant ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_3)) (and (= top.res.abs_10 (and top.res.abs_9 (< X1 32767))) (let ((X2 top.res.abs_11)) (let ((X3 top.res.abs_4)) (and (= top.usr.OK (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) (__node_init_voiture_0 top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_init_excludes2_0 top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) top.res.init_flag)))))) +(define-fun trans ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.m! Bool) (top.usr.s! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_3!)) (and (= top.res.abs_10! (and top.res.abs_9! (< X1 32767))) (let ((X2 top.res.abs_11!)) (let ((X3 top.res.abs_4!)) (and (= top.usr.OK! (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) (__node_trans_voiture_0 top.usr.m! top.usr.s! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_3! top.res.inst_2! top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_1! top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_trans_excludes2_0 top.usr.m! top.usr.s! top.res.abs_9! top.res.inst_0! top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))))) +(define-fun prop ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/car_all_e7_188_e7_743.sl b/benchmarks/LIA/Lustre/car_all_e7_188_e7_743.sl index 1b25dfc..592d064 100644 --- a/benchmarks/LIA/Lustre/car_all_e7_188_e7_743.sl +++ b/benchmarks/LIA/Lustre/car_all_e7_188_e7_743.sl @@ -1,570 +1,31 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes2_0 ( - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_0 - (not (or excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) - excludes2.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes2_0 ( - (excludes2.usr.X1_a_1 Bool) - (excludes2.usr.X2_a_1 Bool) - (excludes2.usr.excludes_a_1 Bool) - (excludes2.res.init_flag_a_1 Bool) - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_1 - (not (or excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) - (not excludes2.res.init_flag_a_1)) -) - -(define-fun - __node_init_voiture_0 ( - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.speed_a_0 0) - (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) - (= voiture.usr.move_a_0 true) - (= voiture.usr.time_a_0 0) - (= voiture.usr.dist_a_0 0) - (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) - (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) - (= - voiture.res.abs_0_a_0 - (and - (and - (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) - (not voiture.usr.toofast_a_0)) - (not voiture.usr.bump_a_0))) - (= voiture.usr.second_a_0 false) - (= voiture.usr.meter_a_0 false) - voiture.res.init_flag_a_0) -) - -(define-fun - __node_trans_voiture_0 ( - (voiture.usr.m_a_1 Bool) - (voiture.usr.s_a_1 Bool) - (voiture.usr.toofast_a_1 Bool) - (voiture.usr.stop_a_1 Bool) - (voiture.usr.bump_a_1 Bool) - (voiture.usr.dist_a_1 Int) - (voiture.usr.speed_a_1 Int) - (voiture.usr.time_a_1 Int) - (voiture.usr.move_a_1 Bool) - (voiture.usr.second_a_1 Bool) - (voiture.usr.meter_a_1 Bool) - (voiture.res.init_flag_a_1 Bool) - (voiture.res.abs_0_a_1 Bool) - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) - (= voiture.usr.second_a_1 voiture.usr.s_a_1) - (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) - (= - voiture.usr.speed_a_1 - (ite - (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) - 0 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.speed_a_0 1) - voiture.usr.speed_a_0))) - (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) - (= - voiture.usr.time_a_1 - (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) - (= - voiture.usr.dist_a_1 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.dist_a_0 1) - voiture.usr.dist_a_0)) - (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) - (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) - (= - voiture.res.abs_0_a_1 - (and - (and - (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) - (not voiture.usr.toofast_a_1)) - (not voiture.usr.bump_a_1))) - (not voiture.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_3_a_0)) - (and - (= top.res.abs_10_a_0 (and top.res.abs_9_a_0 (< X1 32767))) - (let - ((X2 Bool top.res.abs_11_a_0)) - (let - ((X3 Int top.res.abs_4_a_0)) - (and - (= - top.usr.OK_a_0 - (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) - (__node_init_voiture_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_init_excludes2_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.m_a_1 Bool) - (top.usr.s_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_3_a_1)) - (and - (= top.res.abs_10_a_1 (and top.res.abs_9_a_1 (< X1 32767))) - (let - ((X2 Bool top.res.abs_11_a_1)) - (let - ((X3 Int top.res.abs_4_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) - (__node_trans_voiture_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes2_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))) -) - - - -(synth-inv str_invariant( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.m Bool) -(declare-primed-var top.usr.s Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_3)) - (and - (= top.res.abs_10 (and top.res.abs_9 (< X1 32767))) - (let - ((X2 Bool top.res.abs_11)) - (let - ((X3 Int top.res.abs_4)) - (and - (= - top.usr.OK - (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) - (__node_init_voiture_0 - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) - (__node_init_excludes2_0 - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.m! Bool) - (top.usr.s! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Int top.res.abs_3!)) - (and - (= top.res.abs_10! (and top.res.abs_9! (< X1 32767))) - (let - ((X2 Bool top.res.abs_11!)) - (let - ((X3 Int top.res.abs_4!)) - (and - (= - top.usr.OK! - (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) - (__node_trans_voiture_0 - top.usr.m! - top.usr.s! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_3! - top.res.inst_2! - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_1! - top.res.abs_10 - top.res.abs_11 - top.res.inst_1) - (__node_trans_excludes2_0 - top.usr.m! - top.usr.s! - top.res.abs_9! - top.res.inst_0! - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))))) -) - -(define-fun - prop ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes2_0 ((excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_0 (not (or excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) excludes2.res.init_flag_a_0)) +(define-fun __node_trans_excludes2_0 ((excludes2.usr.X1_a_1 Bool) (excludes2.usr.X2_a_1 Bool) (excludes2.usr.excludes_a_1 Bool) (excludes2.res.init_flag_a_1 Bool) (excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_1 (not (or excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) (not excludes2.res.init_flag_a_1))) +(define-fun __node_init_voiture_0 ((voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.speed_a_0 0) (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) (= voiture.usr.move_a_0 true) (= voiture.usr.time_a_0 0) (= voiture.usr.dist_a_0 0) (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) (= voiture.res.abs_0_a_0 (and (and (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) (not voiture.usr.toofast_a_0)) (not voiture.usr.bump_a_0))) (= voiture.usr.second_a_0 false) (= voiture.usr.meter_a_0 false) voiture.res.init_flag_a_0)) +(define-fun __node_trans_voiture_0 ((voiture.usr.m_a_1 Bool) (voiture.usr.s_a_1 Bool) (voiture.usr.toofast_a_1 Bool) (voiture.usr.stop_a_1 Bool) (voiture.usr.bump_a_1 Bool) (voiture.usr.dist_a_1 Int) (voiture.usr.speed_a_1 Int) (voiture.usr.time_a_1 Int) (voiture.usr.move_a_1 Bool) (voiture.usr.second_a_1 Bool) (voiture.usr.meter_a_1 Bool) (voiture.res.init_flag_a_1 Bool) (voiture.res.abs_0_a_1 Bool) (voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) (= voiture.usr.second_a_1 voiture.usr.s_a_1) (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) (= voiture.usr.speed_a_1 (ite (or (not voiture.usr.move_a_1) voiture.usr.second_a_1) 0 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.speed_a_0 1) voiture.usr.speed_a_0))) (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) (= voiture.usr.time_a_1 (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) (= voiture.usr.dist_a_1 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.dist_a_0 1) voiture.usr.dist_a_0)) (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) (= voiture.res.abs_0_a_1 (and (and (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) (not voiture.usr.toofast_a_1)) (not voiture.usr.bump_a_1))) (not voiture.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_3_a_0)) (and (= top.res.abs_10_a_0 (and top.res.abs_9_a_0 (< X1 32767))) (let ((X2 top.res.abs_11_a_0)) (let ((X3 top.res.abs_4_a_0)) (and (= top.usr.OK_a_0 (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) (__node_init_voiture_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_init_excludes2_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))) +(define-fun __node_trans_top_0 ((top.usr.m_a_1 Bool) (top.usr.s_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_3_a_1)) (and (= top.res.abs_10_a_1 (and top.res.abs_9_a_1 (< X1 32767))) (let ((X2 top.res.abs_11_a_1)) (let ((X3 top.res.abs_4_a_1)) (and (= top.usr.OK_a_1 (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) (__node_trans_voiture_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_trans_excludes2_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))) +(synth-inv str_invariant ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_3)) (and (= top.res.abs_10 (and top.res.abs_9 (< X1 32767))) (let ((X2 top.res.abs_11)) (let ((X3 top.res.abs_4)) (and (= top.usr.OK (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) (__node_init_voiture_0 top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_init_excludes2_0 top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) top.res.init_flag)))))) +(define-fun trans ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.m! Bool) (top.usr.s! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_3!)) (and (= top.res.abs_10! (and top.res.abs_9! (< X1 32767))) (let ((X2 top.res.abs_11!)) (let ((X3 top.res.abs_4!)) (and (= top.usr.OK! (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) (__node_trans_voiture_0 top.usr.m! top.usr.s! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_3! top.res.inst_2! top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_1! top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_trans_excludes2_0 top.usr.m! top.usr.s! top.res.abs_9! top.res.inst_0! top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))))) +(define-fun prop ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/car_all_e8_856.sl b/benchmarks/LIA/Lustre/car_all_e8_856.sl index 567127b..8c92650 100644 --- a/benchmarks/LIA/Lustre/car_all_e8_856.sl +++ b/benchmarks/LIA/Lustre/car_all_e8_856.sl @@ -1,570 +1,31 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes2_0 ( - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_0 - (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) - excludes2.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes2_0 ( - (excludes2.usr.X1_a_1 Bool) - (excludes2.usr.X2_a_1 Bool) - (excludes2.usr.excludes_a_1 Bool) - (excludes2.res.init_flag_a_1 Bool) - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_1 - (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) - (not excludes2.res.init_flag_a_1)) -) - -(define-fun - __node_init_voiture_0 ( - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.speed_a_0 0) - (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) - (= voiture.usr.move_a_0 true) - (= voiture.usr.time_a_0 0) - (= voiture.usr.dist_a_0 0) - (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) - (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) - (= - voiture.res.abs_0_a_0 - (and - (and - (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) - (not voiture.usr.toofast_a_0)) - (not voiture.usr.bump_a_0))) - (= voiture.usr.second_a_0 false) - (= voiture.usr.meter_a_0 false) - voiture.res.init_flag_a_0) -) - -(define-fun - __node_trans_voiture_0 ( - (voiture.usr.m_a_1 Bool) - (voiture.usr.s_a_1 Bool) - (voiture.usr.toofast_a_1 Bool) - (voiture.usr.stop_a_1 Bool) - (voiture.usr.bump_a_1 Bool) - (voiture.usr.dist_a_1 Int) - (voiture.usr.speed_a_1 Int) - (voiture.usr.time_a_1 Int) - (voiture.usr.move_a_1 Bool) - (voiture.usr.second_a_1 Bool) - (voiture.usr.meter_a_1 Bool) - (voiture.res.init_flag_a_1 Bool) - (voiture.res.abs_0_a_1 Bool) - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) - (= voiture.usr.second_a_1 voiture.usr.s_a_1) - (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) - (= - voiture.usr.speed_a_1 - (ite - (and (not voiture.usr.move_a_1) voiture.usr.second_a_1) - 0 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.speed_a_0 1) - voiture.usr.speed_a_0))) - (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) - (= - voiture.usr.time_a_1 - (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) - (= - voiture.usr.dist_a_1 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.dist_a_0 1) - voiture.usr.dist_a_0)) - (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) - (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) - (= - voiture.res.abs_0_a_1 - (and - (and - (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) - (not voiture.usr.toofast_a_1)) - (not voiture.usr.bump_a_1))) - (not voiture.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_3_a_0)) - (and - (= top.res.abs_10_a_0 (and top.res.abs_9_a_0 (< X1 32767))) - (let - ((X2 Bool top.res.abs_11_a_0)) - (let - ((X3 Int top.res.abs_4_a_0)) - (and - (= - top.usr.OK_a_0 - (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) - (__node_init_voiture_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_init_excludes2_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.m_a_1 Bool) - (top.usr.s_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_3_a_1)) - (and - (= top.res.abs_10_a_1 (and top.res.abs_9_a_1 (< X1 32767))) - (let - ((X2 Bool top.res.abs_11_a_1)) - (let - ((X3 Int top.res.abs_4_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) - (__node_trans_voiture_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes2_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))) -) - - - -(synth-inv str_invariant( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.m Bool) -(declare-primed-var top.usr.s Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_3)) - (and - (= top.res.abs_10 (and top.res.abs_9 (< X1 32767))) - (let - ((X2 Bool top.res.abs_11)) - (let - ((X3 Int top.res.abs_4)) - (and - (= - top.usr.OK - (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) - (__node_init_voiture_0 - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) - (__node_init_excludes2_0 - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.m! Bool) - (top.usr.s! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Int top.res.abs_3!)) - (and - (= top.res.abs_10! (and top.res.abs_9! (< X1 32767))) - (let - ((X2 Bool top.res.abs_11!)) - (let - ((X3 Int top.res.abs_4!)) - (and - (= - top.usr.OK! - (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) - (__node_trans_voiture_0 - top.usr.m! - top.usr.s! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_3! - top.res.inst_2! - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_1! - top.res.abs_10 - top.res.abs_11 - top.res.inst_1) - (__node_trans_excludes2_0 - top.usr.m! - top.usr.s! - top.res.abs_9! - top.res.inst_0! - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))))) -) - -(define-fun - prop ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes2_0 ((excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_0 (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) excludes2.res.init_flag_a_0)) +(define-fun __node_trans_excludes2_0 ((excludes2.usr.X1_a_1 Bool) (excludes2.usr.X2_a_1 Bool) (excludes2.usr.excludes_a_1 Bool) (excludes2.res.init_flag_a_1 Bool) (excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_1 (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) (not excludes2.res.init_flag_a_1))) +(define-fun __node_init_voiture_0 ((voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.speed_a_0 0) (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) (= voiture.usr.move_a_0 true) (= voiture.usr.time_a_0 0) (= voiture.usr.dist_a_0 0) (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) (= voiture.res.abs_0_a_0 (and (and (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) (not voiture.usr.toofast_a_0)) (not voiture.usr.bump_a_0))) (= voiture.usr.second_a_0 false) (= voiture.usr.meter_a_0 false) voiture.res.init_flag_a_0)) +(define-fun __node_trans_voiture_0 ((voiture.usr.m_a_1 Bool) (voiture.usr.s_a_1 Bool) (voiture.usr.toofast_a_1 Bool) (voiture.usr.stop_a_1 Bool) (voiture.usr.bump_a_1 Bool) (voiture.usr.dist_a_1 Int) (voiture.usr.speed_a_1 Int) (voiture.usr.time_a_1 Int) (voiture.usr.move_a_1 Bool) (voiture.usr.second_a_1 Bool) (voiture.usr.meter_a_1 Bool) (voiture.res.init_flag_a_1 Bool) (voiture.res.abs_0_a_1 Bool) (voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) (= voiture.usr.second_a_1 voiture.usr.s_a_1) (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) (= voiture.usr.speed_a_1 (ite (and (not voiture.usr.move_a_1) voiture.usr.second_a_1) 0 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.speed_a_0 1) voiture.usr.speed_a_0))) (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) (= voiture.usr.time_a_1 (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) (= voiture.usr.dist_a_1 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.dist_a_0 1) voiture.usr.dist_a_0)) (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) (= voiture.res.abs_0_a_1 (and (and (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) (not voiture.usr.toofast_a_1)) (not voiture.usr.bump_a_1))) (not voiture.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_3_a_0)) (and (= top.res.abs_10_a_0 (and top.res.abs_9_a_0 (< X1 32767))) (let ((X2 top.res.abs_11_a_0)) (let ((X3 top.res.abs_4_a_0)) (and (= top.usr.OK_a_0 (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) (__node_init_voiture_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_init_excludes2_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))) +(define-fun __node_trans_top_0 ((top.usr.m_a_1 Bool) (top.usr.s_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_3_a_1)) (and (= top.res.abs_10_a_1 (and top.res.abs_9_a_1 (< X1 32767))) (let ((X2 top.res.abs_11_a_1)) (let ((X3 top.res.abs_4_a_1)) (and (= top.usr.OK_a_1 (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) (__node_trans_voiture_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_trans_excludes2_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))) +(synth-inv str_invariant ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_3)) (and (= top.res.abs_10 (and top.res.abs_9 (< X1 32767))) (let ((X2 top.res.abs_11)) (let ((X3 top.res.abs_4)) (and (= top.usr.OK (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) (__node_init_voiture_0 top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_init_excludes2_0 top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) top.res.init_flag)))))) +(define-fun trans ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.m! Bool) (top.usr.s! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_3!)) (and (= top.res.abs_10! (and top.res.abs_9! (< X1 32767))) (let ((X2 top.res.abs_11!)) (let ((X3 top.res.abs_4!)) (and (= top.usr.OK! (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) (__node_trans_voiture_0 top.usr.m! top.usr.s! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_3! top.res.inst_2! top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_1! top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_trans_excludes2_0 top.usr.m! top.usr.s! top.res.abs_9! top.res.inst_0! top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))))) +(define-fun prop ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/car_all_e8_856_e2_585.sl b/benchmarks/LIA/Lustre/car_all_e8_856_e2_585.sl index 5a55560..7b3698e 100644 --- a/benchmarks/LIA/Lustre/car_all_e8_856_e2_585.sl +++ b/benchmarks/LIA/Lustre/car_all_e8_856_e2_585.sl @@ -1,570 +1,31 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes2_0 ( - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_0 - (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) - excludes2.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes2_0 ( - (excludes2.usr.X1_a_1 Bool) - (excludes2.usr.X2_a_1 Bool) - (excludes2.usr.excludes_a_1 Bool) - (excludes2.res.init_flag_a_1 Bool) - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_1 - (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) - (not excludes2.res.init_flag_a_1)) -) - -(define-fun - __node_init_voiture_0 ( - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.speed_a_0 0) - (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) - (= voiture.usr.move_a_0 true) - (= voiture.usr.time_a_0 0) - (= voiture.usr.dist_a_0 0) - (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) - (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) - (= - voiture.res.abs_0_a_0 - (and - (and - (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) - (not voiture.usr.toofast_a_0)) - (not voiture.usr.bump_a_0))) - (= voiture.usr.second_a_0 false) - (= voiture.usr.meter_a_0 false) - voiture.res.init_flag_a_0) -) - -(define-fun - __node_trans_voiture_0 ( - (voiture.usr.m_a_1 Bool) - (voiture.usr.s_a_1 Bool) - (voiture.usr.toofast_a_1 Bool) - (voiture.usr.stop_a_1 Bool) - (voiture.usr.bump_a_1 Bool) - (voiture.usr.dist_a_1 Int) - (voiture.usr.speed_a_1 Int) - (voiture.usr.time_a_1 Int) - (voiture.usr.move_a_1 Bool) - (voiture.usr.second_a_1 Bool) - (voiture.usr.meter_a_1 Bool) - (voiture.res.init_flag_a_1 Bool) - (voiture.res.abs_0_a_1 Bool) - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) - (= voiture.usr.second_a_1 voiture.usr.s_a_1) - (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) - (= - voiture.usr.speed_a_1 - (ite - (and (not voiture.usr.move_a_1) voiture.usr.second_a_1) - 0 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ (- voiture.usr.speed_a_0 1) 1) - voiture.usr.speed_a_0))) - (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) - (= - voiture.usr.time_a_1 - (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) - (= - voiture.usr.dist_a_1 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.dist_a_0 1) - voiture.usr.dist_a_0)) - (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) - (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) - (= - voiture.res.abs_0_a_1 - (and - (and - (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) - (not voiture.usr.toofast_a_1)) - (not voiture.usr.bump_a_1))) - (not voiture.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_3_a_0)) - (and - (= top.res.abs_10_a_0 (and top.res.abs_9_a_0 (< X1 32767))) - (let - ((X2 Bool top.res.abs_11_a_0)) - (let - ((X3 Int top.res.abs_4_a_0)) - (and - (= - top.usr.OK_a_0 - (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) - (__node_init_voiture_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_init_excludes2_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.m_a_1 Bool) - (top.usr.s_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_3_a_1)) - (and - (= top.res.abs_10_a_1 (and top.res.abs_9_a_1 (< X1 32767))) - (let - ((X2 Bool top.res.abs_11_a_1)) - (let - ((X3 Int top.res.abs_4_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) - (__node_trans_voiture_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes2_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))) -) - - - -(synth-inv str_invariant( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.m Bool) -(declare-primed-var top.usr.s Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_3)) - (and - (= top.res.abs_10 (and top.res.abs_9 (< X1 32767))) - (let - ((X2 Bool top.res.abs_11)) - (let - ((X3 Int top.res.abs_4)) - (and - (= - top.usr.OK - (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) - (__node_init_voiture_0 - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) - (__node_init_excludes2_0 - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.m! Bool) - (top.usr.s! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Int top.res.abs_3!)) - (and - (= top.res.abs_10! (and top.res.abs_9! (< X1 32767))) - (let - ((X2 Bool top.res.abs_11!)) - (let - ((X3 Int top.res.abs_4!)) - (and - (= - top.usr.OK! - (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) - (__node_trans_voiture_0 - top.usr.m! - top.usr.s! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_3! - top.res.inst_2! - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_1! - top.res.abs_10 - top.res.abs_11 - top.res.inst_1) - (__node_trans_excludes2_0 - top.usr.m! - top.usr.s! - top.res.abs_9! - top.res.inst_0! - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))))) -) - -(define-fun - prop ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes2_0 ((excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_0 (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) excludes2.res.init_flag_a_0)) +(define-fun __node_trans_excludes2_0 ((excludes2.usr.X1_a_1 Bool) (excludes2.usr.X2_a_1 Bool) (excludes2.usr.excludes_a_1 Bool) (excludes2.res.init_flag_a_1 Bool) (excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_1 (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) (not excludes2.res.init_flag_a_1))) +(define-fun __node_init_voiture_0 ((voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.speed_a_0 0) (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) (= voiture.usr.move_a_0 true) (= voiture.usr.time_a_0 0) (= voiture.usr.dist_a_0 0) (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) (= voiture.res.abs_0_a_0 (and (and (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) (not voiture.usr.toofast_a_0)) (not voiture.usr.bump_a_0))) (= voiture.usr.second_a_0 false) (= voiture.usr.meter_a_0 false) voiture.res.init_flag_a_0)) +(define-fun __node_trans_voiture_0 ((voiture.usr.m_a_1 Bool) (voiture.usr.s_a_1 Bool) (voiture.usr.toofast_a_1 Bool) (voiture.usr.stop_a_1 Bool) (voiture.usr.bump_a_1 Bool) (voiture.usr.dist_a_1 Int) (voiture.usr.speed_a_1 Int) (voiture.usr.time_a_1 Int) (voiture.usr.move_a_1 Bool) (voiture.usr.second_a_1 Bool) (voiture.usr.meter_a_1 Bool) (voiture.res.init_flag_a_1 Bool) (voiture.res.abs_0_a_1 Bool) (voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) (= voiture.usr.second_a_1 voiture.usr.s_a_1) (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) (= voiture.usr.speed_a_1 (ite (and (not voiture.usr.move_a_1) voiture.usr.second_a_1) 0 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ (- voiture.usr.speed_a_0 1) 1) voiture.usr.speed_a_0))) (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) (= voiture.usr.time_a_1 (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) (= voiture.usr.dist_a_1 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.dist_a_0 1) voiture.usr.dist_a_0)) (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) (= voiture.res.abs_0_a_1 (and (and (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) (not voiture.usr.toofast_a_1)) (not voiture.usr.bump_a_1))) (not voiture.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_3_a_0)) (and (= top.res.abs_10_a_0 (and top.res.abs_9_a_0 (< X1 32767))) (let ((X2 top.res.abs_11_a_0)) (let ((X3 top.res.abs_4_a_0)) (and (= top.usr.OK_a_0 (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) (__node_init_voiture_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_init_excludes2_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))) +(define-fun __node_trans_top_0 ((top.usr.m_a_1 Bool) (top.usr.s_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_3_a_1)) (and (= top.res.abs_10_a_1 (and top.res.abs_9_a_1 (< X1 32767))) (let ((X2 top.res.abs_11_a_1)) (let ((X3 top.res.abs_4_a_1)) (and (= top.usr.OK_a_1 (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) (__node_trans_voiture_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_trans_excludes2_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))) +(synth-inv str_invariant ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_3)) (and (= top.res.abs_10 (and top.res.abs_9 (< X1 32767))) (let ((X2 top.res.abs_11)) (let ((X3 top.res.abs_4)) (and (= top.usr.OK (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) (__node_init_voiture_0 top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_init_excludes2_0 top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) top.res.init_flag)))))) +(define-fun trans ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.m! Bool) (top.usr.s! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_3!)) (and (= top.res.abs_10! (and top.res.abs_9! (< X1 32767))) (let ((X2 top.res.abs_11!)) (let ((X3 top.res.abs_4!)) (and (= top.usr.OK! (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) (__node_trans_voiture_0 top.usr.m! top.usr.s! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_3! top.res.inst_2! top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_1! top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_trans_excludes2_0 top.usr.m! top.usr.s! top.res.abs_9! top.res.inst_0! top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))))) +(define-fun prop ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/car_all_e8_856_e7_578.sl b/benchmarks/LIA/Lustre/car_all_e8_856_e7_578.sl index e5be0ce..5a12d7b 100644 --- a/benchmarks/LIA/Lustre/car_all_e8_856_e7_578.sl +++ b/benchmarks/LIA/Lustre/car_all_e8_856_e7_578.sl @@ -1,570 +1,31 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes2_0 ( - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_0 - (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) - excludes2.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes2_0 ( - (excludes2.usr.X1_a_1 Bool) - (excludes2.usr.X2_a_1 Bool) - (excludes2.usr.excludes_a_1 Bool) - (excludes2.res.init_flag_a_1 Bool) - (excludes2.usr.X1_a_0 Bool) - (excludes2.usr.X2_a_0 Bool) - (excludes2.usr.excludes_a_0 Bool) - (excludes2.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes2.usr.excludes_a_1 - (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) - (not excludes2.res.init_flag_a_1)) -) - -(define-fun - __node_init_voiture_0 ( - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.speed_a_0 0) - (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) - (= voiture.usr.move_a_0 true) - (= voiture.usr.time_a_0 0) - (= voiture.usr.dist_a_0 0) - (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) - (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) - (= - voiture.res.abs_0_a_0 - (and - (and - (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) - (not voiture.usr.toofast_a_0)) - (not voiture.usr.bump_a_0))) - (= voiture.usr.second_a_0 false) - (= voiture.usr.meter_a_0 false) - voiture.res.init_flag_a_0) -) - -(define-fun - __node_trans_voiture_0 ( - (voiture.usr.m_a_1 Bool) - (voiture.usr.s_a_1 Bool) - (voiture.usr.toofast_a_1 Bool) - (voiture.usr.stop_a_1 Bool) - (voiture.usr.bump_a_1 Bool) - (voiture.usr.dist_a_1 Int) - (voiture.usr.speed_a_1 Int) - (voiture.usr.time_a_1 Int) - (voiture.usr.move_a_1 Bool) - (voiture.usr.second_a_1 Bool) - (voiture.usr.meter_a_1 Bool) - (voiture.res.init_flag_a_1 Bool) - (voiture.res.abs_0_a_1 Bool) - (voiture.usr.m_a_0 Bool) - (voiture.usr.s_a_0 Bool) - (voiture.usr.toofast_a_0 Bool) - (voiture.usr.stop_a_0 Bool) - (voiture.usr.bump_a_0 Bool) - (voiture.usr.dist_a_0 Int) - (voiture.usr.speed_a_0 Int) - (voiture.usr.time_a_0 Int) - (voiture.usr.move_a_0 Bool) - (voiture.usr.second_a_0 Bool) - (voiture.usr.meter_a_0 Bool) - (voiture.res.init_flag_a_0 Bool) - (voiture.res.abs_0_a_0 Bool) - ) Bool - - (and - (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) - (= voiture.usr.second_a_1 voiture.usr.s_a_1) - (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) - (= - voiture.usr.speed_a_1 - (ite - (and (not voiture.usr.move_a_1) voiture.usr.second_a_1) - 0 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.speed_a_0 1) - voiture.usr.speed_a_0))) - (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) - (= - voiture.usr.time_a_1 - (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) - (= - voiture.usr.dist_a_1 - (ite - (and voiture.usr.move_a_1 voiture.usr.meter_a_1) - (+ voiture.usr.dist_a_0 1) - voiture.usr.dist_a_0)) - (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) - (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) - (= - voiture.res.abs_0_a_1 - (and - (and - (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) - (not voiture.usr.toofast_a_1)) - (not voiture.usr.bump_a_1))) - (not voiture.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_3_a_0)) - (and - (= top.res.abs_10_a_0 (and top.res.abs_9_a_0 (< X1 32767))) - (let - ((X2 Bool top.res.abs_11_a_0)) - (let - ((X3 Int top.res.abs_4_a_0)) - (and - (= - top.usr.OK_a_0 - (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) - (__node_init_voiture_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_init_excludes2_0 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.m_a_1 Bool) - (top.usr.s_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.m_a_0 Bool) - (top.usr.s_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_3_a_1)) - (and - (= top.res.abs_10_a_1 (and top.res.abs_9_a_1 (< X1 32767))) - (let - ((X2 Bool top.res.abs_11_a_1)) - (let - ((X3 Int top.res.abs_4_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) - (__node_trans_voiture_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes2_0 - top.usr.m_a_1 - top.usr.s_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.m_a_0 - top.usr.s_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))) -) - - - -(synth-inv str_invariant( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.m Bool) -(declare-primed-var top.usr.s Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_3)) - (and - (= top.res.abs_10 (and top.res.abs_9 (< X1 32767))) - (let - ((X2 Bool top.res.abs_11)) - (let - ((X3 Int top.res.abs_4)) - (and - (= - top.usr.OK - (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) - (__node_init_voiture_0 - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) - (__node_init_excludes2_0 - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.m! Bool) - (top.usr.s! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Int top.res.abs_3!)) - (and - (= top.res.abs_10! (and top.res.abs_9! (< X1 32767))) - (let - ((X2 Bool top.res.abs_11!)) - (let - ((X3 Int top.res.abs_4!)) - (and - (= - top.usr.OK! - (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) - (__node_trans_voiture_0 - top.usr.m! - top.usr.s! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_3! - top.res.inst_2! - top.usr.m - top.usr.s - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_3 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_1! - top.res.abs_10 - top.res.abs_11 - top.res.inst_1) - (__node_trans_excludes2_0 - top.usr.m! - top.usr.s! - top.res.abs_9! - top.res.inst_0! - top.usr.m - top.usr.s - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))))) -) - -(define-fun - prop ( - (top.usr.m Bool) - (top.usr.s Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes2_0 ((excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_0 (not (and excludes2.usr.X1_a_0 excludes2.usr.X2_a_0))) excludes2.res.init_flag_a_0)) +(define-fun __node_trans_excludes2_0 ((excludes2.usr.X1_a_1 Bool) (excludes2.usr.X2_a_1 Bool) (excludes2.usr.excludes_a_1 Bool) (excludes2.res.init_flag_a_1 Bool) (excludes2.usr.X1_a_0 Bool) (excludes2.usr.X2_a_0 Bool) (excludes2.usr.excludes_a_0 Bool) (excludes2.res.init_flag_a_0 Bool)) Bool + (and (= excludes2.usr.excludes_a_1 (not (and excludes2.usr.X1_a_1 excludes2.usr.X2_a_1))) (not excludes2.res.init_flag_a_1))) +(define-fun __node_init_voiture_0 ((voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.speed_a_0 0) (= voiture.usr.toofast_a_0 (>= voiture.usr.speed_a_0 3)) (= voiture.usr.move_a_0 true) (= voiture.usr.time_a_0 0) (= voiture.usr.dist_a_0 0) (= voiture.usr.bump_a_0 (= voiture.usr.dist_a_0 10)) (= voiture.usr.stop_a_0 (>= voiture.usr.time_a_0 4)) (= voiture.res.abs_0_a_0 (and (and (and voiture.usr.move_a_0 (not voiture.usr.stop_a_0)) (not voiture.usr.toofast_a_0)) (not voiture.usr.bump_a_0))) (= voiture.usr.second_a_0 false) (= voiture.usr.meter_a_0 false) voiture.res.init_flag_a_0)) +(define-fun __node_trans_voiture_0 ((voiture.usr.m_a_1 Bool) (voiture.usr.s_a_1 Bool) (voiture.usr.toofast_a_1 Bool) (voiture.usr.stop_a_1 Bool) (voiture.usr.bump_a_1 Bool) (voiture.usr.dist_a_1 Int) (voiture.usr.speed_a_1 Int) (voiture.usr.time_a_1 Int) (voiture.usr.move_a_1 Bool) (voiture.usr.second_a_1 Bool) (voiture.usr.meter_a_1 Bool) (voiture.res.init_flag_a_1 Bool) (voiture.res.abs_0_a_1 Bool) (voiture.usr.m_a_0 Bool) (voiture.usr.s_a_0 Bool) (voiture.usr.toofast_a_0 Bool) (voiture.usr.stop_a_0 Bool) (voiture.usr.bump_a_0 Bool) (voiture.usr.dist_a_0 Int) (voiture.usr.speed_a_0 Int) (voiture.usr.time_a_0 Int) (voiture.usr.move_a_0 Bool) (voiture.usr.second_a_0 Bool) (voiture.usr.meter_a_0 Bool) (voiture.res.init_flag_a_0 Bool) (voiture.res.abs_0_a_0 Bool)) Bool + (and (= voiture.usr.meter_a_1 (and voiture.usr.m_a_1 (not voiture.usr.s_a_1))) (= voiture.usr.second_a_1 voiture.usr.s_a_1) (= voiture.usr.move_a_1 voiture.res.abs_0_a_0) (= voiture.usr.speed_a_1 (ite (and (not voiture.usr.move_a_1) voiture.usr.second_a_1) 0 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.speed_a_0 1) voiture.usr.speed_a_0))) (= voiture.usr.toofast_a_1 (>= voiture.usr.speed_a_1 3)) (= voiture.usr.time_a_1 (ite voiture.usr.second_a_1 (+ voiture.usr.time_a_0 1) voiture.usr.time_a_0)) (= voiture.usr.dist_a_1 (ite (and voiture.usr.move_a_1 voiture.usr.meter_a_1) (+ voiture.usr.dist_a_0 1) voiture.usr.dist_a_0)) (= voiture.usr.bump_a_1 (= voiture.usr.dist_a_1 10)) (= voiture.usr.stop_a_1 (>= voiture.usr.time_a_1 4)) (= voiture.res.abs_0_a_1 (and (and (and voiture.usr.move_a_1 (not voiture.usr.stop_a_1)) (not voiture.usr.toofast_a_1)) (not voiture.usr.bump_a_1))) (not voiture.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_3_a_0)) (and (= top.res.abs_10_a_0 (and top.res.abs_9_a_0 (< X1 32767))) (let ((X2 top.res.abs_11_a_0)) (let ((X3 top.res.abs_4_a_0)) (and (= top.usr.OK_a_0 (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) (__node_init_voiture_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_init_excludes2_0 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))) +(define-fun __node_trans_top_0 ((top.usr.m_a_1 Bool) (top.usr.s_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.m_a_0 Bool) (top.usr.s_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_3_a_1)) (and (= top.res.abs_10_a_1 (and top.res.abs_9_a_1 (< X1 32767))) (let ((X2 top.res.abs_11_a_1)) (let ((X3 top.res.abs_4_a_1)) (and (= top.usr.OK_a_1 (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) (__node_trans_voiture_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_trans_excludes2_0 top.usr.m_a_1 top.usr.s_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.m_a_0 top.usr.s_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))) +(synth-inv str_invariant ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_3)) (and (= top.res.abs_10 (and top.res.abs_9 (< X1 32767))) (let ((X2 top.res.abs_11)) (let ((X3 top.res.abs_4)) (and (= top.usr.OK (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) (__node_init_voiture_0 top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_init_excludes2_0 top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) top.res.init_flag)))))) +(define-fun trans ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.m! Bool) (top.usr.s! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_3!)) (and (= top.res.abs_10! (and top.res.abs_9! (< X1 32767))) (let ((X2 top.res.abs_11!)) (let ((X3 top.res.abs_4!)) (and (= top.usr.OK! (=> X2 (and (and (and (>= X1 0) (< X1 11)) (< X3 4)) (>= X3 0)))) (__node_trans_voiture_0 top.usr.m! top.usr.s! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_3! top.res.inst_2! top.usr.m top.usr.s top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_3 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_1! top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_trans_excludes2_0 top.usr.m! top.usr.s! top.res.abs_9! top.res.inst_0! top.usr.m top.usr.s top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))))) +(define-fun prop ((top.usr.m Bool) (top.usr.s Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ccp16.sl b/benchmarks/LIA/Lustre/ccp16.sl index 44740c4..782f84e 100644 --- a/benchmarks/LIA/Lustre/ccp16.sl +++ b/benchmarks/LIA/Lustre/ccp16.sl @@ -1,14 +1,19 @@ (set-logic LIA) -(define-fun __node_init_top_0 ((top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool)) Bool (and (= top.usr.OK_a_0 true) top.res.init_flag_a_0)) -(define-fun __node_trans_top_0 ((top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool)) Bool (and (= top.usr.OK_a_1 true) (not top.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) top.res.init_flag_a_0)) +(define-fun __node_trans_top_0 ((top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool)) Bool + (and (= top.usr.OK_a_1 true) (not top.res.init_flag_a_1))) (synth-inv str_invariant ((top.usr.OK Bool) (top.res.init_flag Bool))) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(define-fun init ((top.usr.OK Bool) (top.res.init_flag Bool)) Bool (and (= top.usr.OK true) top.res.init_flag)) -(define-fun trans ((top.usr.OK Bool) (top.res.init_flag Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool)) Bool (and (= top.usr.OK! true) (not top.res.init_flag!))) -(define-fun prop ((top.usr.OK Bool) (top.res.init_flag Bool)) Bool top.usr.OK) + +(define-fun init ((top.usr.OK Bool) (top.res.init_flag Bool)) Bool + (and (= top.usr.OK true) top.res.init_flag)) +(define-fun trans ((top.usr.OK Bool) (top.res.init_flag Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool)) Bool + (and (= top.usr.OK! true) (not top.res.init_flag!))) +(define-fun prop ((top.usr.OK Bool) (top.res.init_flag Bool)) Bool + top.usr.OK) + (inv-constraint str_invariant init trans prop) -(check-synth) +(check-synth) diff --git a/benchmarks/LIA/Lustre/cd.sl b/benchmarks/LIA/Lustre/cd.sl index 4e94436..695e06b 100644 --- a/benchmarks/LIA/Lustre/cd.sl +++ b/benchmarks/LIA/Lustre/cd.sl @@ -1,510 +1,35 @@ (set-logic LIA) -(define-fun - __node_init_Controller_0 ( - (Controller.usr.diff_a_0 Int) - (Controller.usr.speed_a_0 Int) - (Controller.usr.plus_a_0 Bool) - (Controller.usr.minus_a_0 Bool) - (Controller.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Controller.usr.speed_a_0 0) - (= Controller.usr.plus_a_0 (<= Controller.usr.speed_a_0 9)) - (= Controller.usr.minus_a_0 (>= Controller.usr.speed_a_0 11)) - Controller.res.init_flag_a_0) -) - -(define-fun - __node_trans_Controller_0 ( - (Controller.usr.diff_a_1 Int) - (Controller.usr.speed_a_1 Int) - (Controller.usr.plus_a_1 Bool) - (Controller.usr.minus_a_1 Bool) - (Controller.res.init_flag_a_1 Bool) - (Controller.usr.diff_a_0 Int) - (Controller.usr.speed_a_0 Int) - (Controller.usr.plus_a_0 Bool) - (Controller.usr.minus_a_0 Bool) - (Controller.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - Controller.usr.speed_a_1 - (+ Controller.usr.speed_a_0 Controller.usr.diff_a_1)) - (= Controller.usr.plus_a_1 (<= Controller.usr.speed_a_1 9)) - (= Controller.usr.minus_a_1 (>= Controller.usr.speed_a_1 11)) - (not Controller.res.init_flag_a_1)) -) - -(define-fun - __node_init_Property_0 ( - (Property.usr.speed_a_0 Int) - (Property.usr.ok_a_0 Bool) - (Property.res.init_flag_a_0 Bool) - (Property.impl.usr.cpt_a_0 Int) - ) Bool - - (and - (= Property.usr.ok_a_0 true) - (= Property.impl.usr.cpt_a_0 0) - (let - ((X1 Bool (and (<= 8 Property.usr.speed_a_0) (<= Property.usr.speed_a_0 12)))) - Property.res.init_flag_a_0)) -) - -(define-fun - __node_trans_Property_0 ( - (Property.usr.speed_a_1 Int) - (Property.usr.ok_a_1 Bool) - (Property.res.init_flag_a_1 Bool) - (Property.impl.usr.cpt_a_1 Int) - (Property.usr.speed_a_0 Int) - (Property.usr.ok_a_0 Bool) - (Property.res.init_flag_a_0 Bool) - (Property.impl.usr.cpt_a_0 Int) - ) Bool - - (and - (= Property.usr.ok_a_1 (<= Property.impl.usr.cpt_a_0 7)) - (let - ((X1 Bool (and (<= 8 Property.usr.speed_a_1) (<= Property.usr.speed_a_1 12)))) - (and - (= Property.impl.usr.cpt_a_1 (ite X1 0 (+ Property.impl.usr.cpt_a_0 1))) - (not Property.res.init_flag_a_1)))) -) - -(define-fun - __node_init_Environment_0 ( - (Environment.usr.diff_a_0 Int) - (Environment.usr.plus_a_0 Bool) - (Environment.usr.minus_a_0 Bool) - (Environment.usr.ok_a_0 Bool) - (Environment.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - Environment.usr.ok_a_0 - (and - (and (<= (- 4) Environment.usr.diff_a_0) (<= Environment.usr.diff_a_0 4)) - (>= Environment.usr.diff_a_0 1))) - Environment.res.init_flag_a_0) -) - -(define-fun - __node_trans_Environment_0 ( - (Environment.usr.diff_a_1 Int) - (Environment.usr.plus_a_1 Bool) - (Environment.usr.minus_a_1 Bool) - (Environment.usr.ok_a_1 Bool) - (Environment.res.init_flag_a_1 Bool) - (Environment.usr.diff_a_0 Int) - (Environment.usr.plus_a_0 Bool) - (Environment.usr.minus_a_0 Bool) - (Environment.usr.ok_a_0 Bool) - (Environment.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - Environment.usr.ok_a_1 - (and - (and - (and (<= (- 4) Environment.usr.diff_a_1) (<= Environment.usr.diff_a_1 4)) - (ite Environment.usr.plus_a_0 (>= Environment.usr.diff_a_1 1) true)) - (ite Environment.usr.minus_a_0 (<= Environment.usr.diff_a_1 (- 1)) true))) - (not Environment.res.init_flag_a_1)) -) - -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.diff_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.speed_a_0 Int) - (top.impl.usr.plus_a_0 Bool) - (top.impl.usr.minus_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Int) - ) Bool - - (let - ((X1 Bool top.res.abs_3_a_0)) - (and - (= top.impl.usr.speed_a_0 top.res.abs_0_a_0) - (= - top.res.abs_4_a_0 - (and (and X1 (<= 0 top.impl.usr.speed_a_0)) (< top.impl.usr.speed_a_0 16))) - (= top.usr.OK_a_0 (=> top.res.abs_5_a_0 top.res.abs_6_a_0)) - (= top.impl.usr.plus_a_0 top.res.abs_1_a_0) - (= top.impl.usr.minus_a_0 top.res.abs_2_a_0) - (__node_init_Sofar_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0) - (__node_init_Controller_0 - top.usr.diff_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.inst_3_a_0) - (__node_init_Environment_0 - top.usr.diff_a_0 - top.impl.usr.plus_a_0 - top.impl.usr.minus_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_init_Property_0 - top.impl.usr.speed_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.diff_a_1 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.speed_a_1 Int) - (top.impl.usr.plus_a_1 Bool) - (top.impl.usr.minus_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Int) - (top.usr.diff_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.speed_a_0 Int) - (top.impl.usr.plus_a_0 Bool) - (top.impl.usr.minus_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Int) - ) Bool - - (let - ((X1 Bool top.res.abs_3_a_1)) - (and - (= top.impl.usr.speed_a_1 top.res.abs_0_a_1) - (= - top.res.abs_4_a_1 - (and (and X1 (<= 0 top.impl.usr.speed_a_1)) (< top.impl.usr.speed_a_1 16))) - (= top.usr.OK_a_1 (=> top.res.abs_5_a_1 top.res.abs_6_a_1)) - (= top.impl.usr.plus_a_1 top.res.abs_1_a_1) - (= top.impl.usr.minus_a_1 top.res.abs_2_a_1) - (__node_trans_Sofar_0 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_4_a_1 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_4_a_0) - (__node_trans_Controller_0 - top.usr.diff_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.inst_3_a_1 - top.usr.diff_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.inst_3_a_0) - (__node_trans_Environment_0 - top.usr.diff_a_1 - top.impl.usr.plus_a_1 - top.impl.usr.minus_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.usr.diff_a_0 - top.impl.usr.plus_a_0 - top.impl.usr.minus_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Property_0 - top.impl.usr.speed_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.res.inst_0_a_1 - top.impl.usr.speed_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))) -) - - - -(synth-inv str_invariant( - (top.usr.diff Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.speed Int) - (top.impl.usr.plus Bool) - (top.impl.usr.minus Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Int) -)) - - -(declare-primed-var top.usr.diff Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.speed Int) -(declare-primed-var top.impl.usr.plus Bool) -(declare-primed-var top.impl.usr.minus Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Int) - -(define-fun - init ( - (top.usr.diff Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.speed Int) - (top.impl.usr.plus Bool) - (top.impl.usr.minus Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Int) - ) Bool - - (let - ((X1 Bool top.res.abs_3)) - (and - (= top.impl.usr.speed top.res.abs_0) - (= - top.res.abs_4 - (and (and X1 (<= 0 top.impl.usr.speed)) (< top.impl.usr.speed 16))) - (= top.usr.OK (=> top.res.abs_5 top.res.abs_6)) - (= top.impl.usr.plus top.res.abs_1) - (= top.impl.usr.minus top.res.abs_2) - (__node_init_Sofar_0 top.res.abs_4 top.res.abs_5 top.res.inst_4) - (__node_init_Controller_0 - top.usr.diff - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.inst_3) - (__node_init_Environment_0 - top.usr.diff - top.impl.usr.plus - top.impl.usr.minus - top.res.abs_3 - top.res.inst_2) - (__node_init_Property_0 - top.impl.usr.speed - top.res.abs_6 - top.res.inst_1 - top.res.inst_0) - top.res.init_flag)) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.diff Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.speed Int) - (top.impl.usr.plus Bool) - (top.impl.usr.minus Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Int) - - ;; Next state. - (top.usr.diff! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.speed! Int) - (top.impl.usr.plus! Bool) - (top.impl.usr.minus! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Int) - - ) Bool - - (let - ((X1 Bool top.res.abs_3!)) - (and - (= top.impl.usr.speed! top.res.abs_0!) - (= - top.res.abs_4! - (and (and X1 (<= 0 top.impl.usr.speed!)) (< top.impl.usr.speed! 16))) - (= top.usr.OK! (=> top.res.abs_5! top.res.abs_6!)) - (= top.impl.usr.plus! top.res.abs_1!) - (= top.impl.usr.minus! top.res.abs_2!) - (__node_trans_Sofar_0 - top.res.abs_4! - top.res.abs_5! - top.res.inst_4! - top.res.abs_4 - top.res.abs_5 - top.res.inst_4) - (__node_trans_Controller_0 - top.usr.diff! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.inst_3! - top.usr.diff - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.inst_3) - (__node_trans_Environment_0 - top.usr.diff! - top.impl.usr.plus! - top.impl.usr.minus! - top.res.abs_3! - top.res.inst_2! - top.usr.diff - top.impl.usr.plus - top.impl.usr.minus - top.res.abs_3 - top.res.inst_2) - (__node_trans_Property_0 - top.impl.usr.speed! - top.res.abs_6! - top.res.inst_1! - top.res.inst_0! - top.impl.usr.speed - top.res.abs_6 - top.res.inst_1 - top.res.inst_0) - (not top.res.init_flag!))) -) - -(define-fun - prop ( - (top.usr.diff Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.speed Int) - (top.impl.usr.plus Bool) - (top.impl.usr.minus Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Int) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Controller_0 ((Controller.usr.diff_a_0 Int) (Controller.usr.speed_a_0 Int) (Controller.usr.plus_a_0 Bool) (Controller.usr.minus_a_0 Bool) (Controller.res.init_flag_a_0 Bool)) Bool + (and (= Controller.usr.speed_a_0 0) (= Controller.usr.plus_a_0 (<= Controller.usr.speed_a_0 9)) (= Controller.usr.minus_a_0 (>= Controller.usr.speed_a_0 11)) Controller.res.init_flag_a_0)) +(define-fun __node_trans_Controller_0 ((Controller.usr.diff_a_1 Int) (Controller.usr.speed_a_1 Int) (Controller.usr.plus_a_1 Bool) (Controller.usr.minus_a_1 Bool) (Controller.res.init_flag_a_1 Bool) (Controller.usr.diff_a_0 Int) (Controller.usr.speed_a_0 Int) (Controller.usr.plus_a_0 Bool) (Controller.usr.minus_a_0 Bool) (Controller.res.init_flag_a_0 Bool)) Bool + (and (= Controller.usr.speed_a_1 (+ Controller.usr.speed_a_0 Controller.usr.diff_a_1)) (= Controller.usr.plus_a_1 (<= Controller.usr.speed_a_1 9)) (= Controller.usr.minus_a_1 (>= Controller.usr.speed_a_1 11)) (not Controller.res.init_flag_a_1))) +(define-fun __node_init_Property_0 ((Property.usr.speed_a_0 Int) (Property.usr.ok_a_0 Bool) (Property.res.init_flag_a_0 Bool) (Property.impl.usr.cpt_a_0 Int)) Bool + (and (= Property.usr.ok_a_0 true) (= Property.impl.usr.cpt_a_0 0) (let ((X1 (and (<= 8 Property.usr.speed_a_0) (<= Property.usr.speed_a_0 12)))) Property.res.init_flag_a_0))) +(define-fun __node_trans_Property_0 ((Property.usr.speed_a_1 Int) (Property.usr.ok_a_1 Bool) (Property.res.init_flag_a_1 Bool) (Property.impl.usr.cpt_a_1 Int) (Property.usr.speed_a_0 Int) (Property.usr.ok_a_0 Bool) (Property.res.init_flag_a_0 Bool) (Property.impl.usr.cpt_a_0 Int)) Bool + (and (= Property.usr.ok_a_1 (<= Property.impl.usr.cpt_a_0 7)) (let ((X1 (and (<= 8 Property.usr.speed_a_1) (<= Property.usr.speed_a_1 12)))) (and (= Property.impl.usr.cpt_a_1 (ite X1 0 (+ Property.impl.usr.cpt_a_0 1))) (not Property.res.init_flag_a_1))))) +(define-fun __node_init_Environment_0 ((Environment.usr.diff_a_0 Int) (Environment.usr.plus_a_0 Bool) (Environment.usr.minus_a_0 Bool) (Environment.usr.ok_a_0 Bool) (Environment.res.init_flag_a_0 Bool)) Bool + (and (= Environment.usr.ok_a_0 (and (and (<= (- 4) Environment.usr.diff_a_0) (<= Environment.usr.diff_a_0 4)) (>= Environment.usr.diff_a_0 1))) Environment.res.init_flag_a_0)) +(define-fun __node_trans_Environment_0 ((Environment.usr.diff_a_1 Int) (Environment.usr.plus_a_1 Bool) (Environment.usr.minus_a_1 Bool) (Environment.usr.ok_a_1 Bool) (Environment.res.init_flag_a_1 Bool) (Environment.usr.diff_a_0 Int) (Environment.usr.plus_a_0 Bool) (Environment.usr.minus_a_0 Bool) (Environment.usr.ok_a_0 Bool) (Environment.res.init_flag_a_0 Bool)) Bool + (and (= Environment.usr.ok_a_1 (and (and (and (<= (- 4) Environment.usr.diff_a_1) (<= Environment.usr.diff_a_1 4)) (ite Environment.usr.plus_a_0 (>= Environment.usr.diff_a_1 1) true)) (ite Environment.usr.minus_a_0 (<= Environment.usr.diff_a_1 (- 1)) true))) (not Environment.res.init_flag_a_1))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.diff_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.speed_a_0 Int) (top.impl.usr.plus_a_0 Bool) (top.impl.usr.minus_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Int)) Bool + (let ((X1 top.res.abs_3_a_0)) (and (= top.impl.usr.speed_a_0 top.res.abs_0_a_0) (= top.res.abs_4_a_0 (and (and X1 (<= 0 top.impl.usr.speed_a_0)) (< top.impl.usr.speed_a_0 16))) (= top.usr.OK_a_0 (=> top.res.abs_5_a_0 top.res.abs_6_a_0)) (= top.impl.usr.plus_a_0 top.res.abs_1_a_0) (= top.impl.usr.minus_a_0 top.res.abs_2_a_0) (__node_init_Sofar_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0) (__node_init_Controller_0 top.usr.diff_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.inst_3_a_0) (__node_init_Environment_0 top.usr.diff_a_0 top.impl.usr.plus_a_0 top.impl.usr.minus_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Property_0 top.impl.usr.speed_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))) +(define-fun __node_trans_top_0 ((top.usr.diff_a_1 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.speed_a_1 Int) (top.impl.usr.plus_a_1 Bool) (top.impl.usr.minus_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Int) (top.usr.diff_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.speed_a_0 Int) (top.impl.usr.plus_a_0 Bool) (top.impl.usr.minus_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Int)) Bool + (let ((X1 top.res.abs_3_a_1)) (and (= top.impl.usr.speed_a_1 top.res.abs_0_a_1) (= top.res.abs_4_a_1 (and (and X1 (<= 0 top.impl.usr.speed_a_1)) (< top.impl.usr.speed_a_1 16))) (= top.usr.OK_a_1 (=> top.res.abs_5_a_1 top.res.abs_6_a_1)) (= top.impl.usr.plus_a_1 top.res.abs_1_a_1) (= top.impl.usr.minus_a_1 top.res.abs_2_a_1) (__node_trans_Sofar_0 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_4_a_1 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_4_a_0) (__node_trans_Controller_0 top.usr.diff_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.inst_3_a_1 top.usr.diff_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.inst_3_a_0) (__node_trans_Environment_0 top.usr.diff_a_1 top.impl.usr.plus_a_1 top.impl.usr.minus_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.usr.diff_a_0 top.impl.usr.plus_a_0 top.impl.usr.minus_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Property_0 top.impl.usr.speed_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.res.inst_0_a_1 top.impl.usr.speed_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))) +(synth-inv str_invariant ((top.usr.diff Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.speed Int) (top.impl.usr.plus Bool) (top.impl.usr.minus Bool) (top.res.abs_0 Int) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Int))) + +(define-fun init ((top.usr.diff Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.speed Int) (top.impl.usr.plus Bool) (top.impl.usr.minus Bool) (top.res.abs_0 Int) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Int)) Bool + (let ((X1 top.res.abs_3)) (and (= top.impl.usr.speed top.res.abs_0) (= top.res.abs_4 (and (and X1 (<= 0 top.impl.usr.speed)) (< top.impl.usr.speed 16))) (= top.usr.OK (=> top.res.abs_5 top.res.abs_6)) (= top.impl.usr.plus top.res.abs_1) (= top.impl.usr.minus top.res.abs_2) (__node_init_Sofar_0 top.res.abs_4 top.res.abs_5 top.res.inst_4) (__node_init_Controller_0 top.usr.diff top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.inst_3) (__node_init_Environment_0 top.usr.diff top.impl.usr.plus top.impl.usr.minus top.res.abs_3 top.res.inst_2) (__node_init_Property_0 top.impl.usr.speed top.res.abs_6 top.res.inst_1 top.res.inst_0) top.res.init_flag))) +(define-fun trans ((top.usr.diff Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.speed Int) (top.impl.usr.plus Bool) (top.impl.usr.minus Bool) (top.res.abs_0 Int) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Int) (top.usr.diff! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.speed! Int) (top.impl.usr.plus! Bool) (top.impl.usr.minus! Bool) (top.res.abs_0! Int) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Int)) Bool + (let ((X1 top.res.abs_3!)) (and (= top.impl.usr.speed! top.res.abs_0!) (= top.res.abs_4! (and (and X1 (<= 0 top.impl.usr.speed!)) (< top.impl.usr.speed! 16))) (= top.usr.OK! (=> top.res.abs_5! top.res.abs_6!)) (= top.impl.usr.plus! top.res.abs_1!) (= top.impl.usr.minus! top.res.abs_2!) (__node_trans_Sofar_0 top.res.abs_4! top.res.abs_5! top.res.inst_4! top.res.abs_4 top.res.abs_5 top.res.inst_4) (__node_trans_Controller_0 top.usr.diff! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.inst_3! top.usr.diff top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.inst_3) (__node_trans_Environment_0 top.usr.diff! top.impl.usr.plus! top.impl.usr.minus! top.res.abs_3! top.res.inst_2! top.usr.diff top.impl.usr.plus top.impl.usr.minus top.res.abs_3 top.res.inst_2) (__node_trans_Property_0 top.impl.usr.speed! top.res.abs_6! top.res.inst_1! top.res.inst_0! top.impl.usr.speed top.res.abs_6 top.res.inst_1 top.res.inst_0) (not top.res.init_flag!)))) +(define-fun prop ((top.usr.diff Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.speed Int) (top.impl.usr.plus Bool) (top.impl.usr.minus Bool) (top.res.abs_0 Int) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Int)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/durationThm_1_e2_3.sl b/benchmarks/LIA/Lustre/durationThm_1_e2_3.sl index 9882235..0ba9cc9 100644 --- a/benchmarks/LIA/Lustre/durationThm_1_e2_3.sl +++ b/benchmarks/LIA/Lustre/durationThm_1_e2_3.sl @@ -1,362 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_Age_0 ( - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0) -) - -(define-fun - __node_trans_Age_0 ( - (Age.usr.p_a_1 Bool) - (Age.usr.age_of_p_a_1 Int) - (Age.res.init_flag_a_1 Bool) - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (+ (- Age.usr.age_of_p_a_0 1) 1) 0)) - (not Age.res.init_flag_a_1)) -) - -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.ik_a_0 Int) - (top.usr.im_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.r_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.impl.usr.m_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= top.impl.usr.k_a_0 top.usr.ik_a_0) - (= top.impl.usr.m_a_0 top.usr.im_a_0) - (= - top.res.abs_2_a_0 - (and - (and - (and (>= top.impl.usr.k_a_0 1) (>= top.impl.usr.m_a_0 1)) - (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) - (=> (>= top.res.abs_1_a_0 top.impl.usr.m_a_0) top.usr.r_a_0))) - (let - ((X1 Bool top.res.abs_3_a_0)) - (and - (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) - (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) - (__node_init_Age_0 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.ik_a_1 Int) - (top.usr.im_a_1 Int) - (top.usr.p_a_1 Bool) - (top.usr.q_a_1 Bool) - (top.usr.r_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.k_a_1 Int) - (top.impl.usr.m_a_1 Int) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.ik_a_0 Int) - (top.usr.im_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.r_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.impl.usr.m_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.m_a_1 top.impl.usr.m_a_0) - (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) - (= - top.res.abs_2_a_1 - (and - (and - (and (>= top.impl.usr.k_a_1 1) (>= top.impl.usr.m_a_1 1)) - (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) - (=> (>= top.res.abs_1_a_1 top.impl.usr.m_a_1) top.usr.r_a_1))) - (let - ((X1 Bool top.res.abs_3_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (=> - (>= top.res.abs_0_a_1 (+ top.impl.usr.k_a_1 top.impl.usr.m_a_1)) - top.usr.r_a_1))) - (__node_trans_Sofar_0 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Age_0 - top.usr.p_a_1 - top.res.abs_0_a_1 - top.res.inst_1_a_1 - top.usr.p_a_0 - top.res.abs_0_a_0 - top.res.inst_1_a_0) - (__node_trans_Age_0 - top.usr.q_a_1 - top.res.abs_1_a_1 - top.res.inst_0_a_1 - top.usr.q_a_0 - top.res.abs_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.ik Int) - (top.usr.im Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.ik Int) -(declare-primed-var top.usr.im Int) -(declare-primed-var top.usr.p Bool) -(declare-primed-var top.usr.q Bool) -(declare-primed-var top.usr.r Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.k Int) -(declare-primed-var top.impl.usr.m Int) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.ik Int) - (top.usr.im Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.k top.usr.ik) - (= top.impl.usr.m top.usr.im) - (= - top.res.abs_2 - (and - (and - (and (>= top.impl.usr.k 1) (>= top.impl.usr.m 1)) - (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) - (=> (>= top.res.abs_1 top.impl.usr.m) top.usr.r))) - (let - ((X1 Bool top.res.abs_3)) - (and - (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_2) - (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_1) - (__node_init_Age_0 top.usr.q top.res.abs_1 top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.ik Int) - (top.usr.im Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.ik! Int) - (top.usr.im! Int) - (top.usr.p! Bool) - (top.usr.q! Bool) - (top.usr.r! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.k! Int) - (top.impl.usr.m! Int) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.impl.usr.m! top.impl.usr.m) - (= top.impl.usr.k! top.impl.usr.k) - (= - top.res.abs_2! - (and - (and - (and (>= top.impl.usr.k! 1) (>= top.impl.usr.m! 1)) - (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) - (=> (>= top.res.abs_1! top.impl.usr.m!) top.usr.r!))) - (let - ((X1 Bool top.res.abs_3!)) - (and - (= - top.usr.OK! - (=> - X1 - (=> - (>= top.res.abs_0! (+ top.impl.usr.k! top.impl.usr.m!)) - top.usr.r!))) - (__node_trans_Sofar_0 - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Age_0 - top.usr.p! - top.res.abs_0! - top.res.inst_1! - top.usr.p - top.res.abs_0 - top.res.inst_1) - (__node_trans_Age_0 - top.usr.q! - top.res.abs_1! - top.res.inst_0! - top.usr.q - top.res.abs_1 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.ik Int) - (top.usr.im Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Age_0 ((Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0)) +(define-fun __node_trans_Age_0 ((Age.usr.p_a_1 Bool) (Age.usr.age_of_p_a_1 Int) (Age.res.init_flag_a_1 Bool) (Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (+ (- Age.usr.age_of_p_a_0 1) 1) 0)) (not Age.res.init_flag_a_1))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.ik_a_0 Int) (top.usr.im_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.r_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.impl.usr.m_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.k_a_0 top.usr.ik_a_0) (= top.impl.usr.m_a_0 top.usr.im_a_0) (= top.res.abs_2_a_0 (and (and (and (>= top.impl.usr.k_a_0 1) (>= top.impl.usr.m_a_0 1)) (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) (=> (>= top.res.abs_1_a_0 top.impl.usr.m_a_0) top.usr.r_a_0))) (let ((X1 top.res.abs_3_a_0)) (and (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) (__node_init_Age_0 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.ik_a_1 Int) (top.usr.im_a_1 Int) (top.usr.p_a_1 Bool) (top.usr.q_a_1 Bool) (top.usr.r_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.k_a_1 Int) (top.impl.usr.m_a_1 Int) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.ik_a_0 Int) (top.usr.im_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.r_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.impl.usr.m_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.m_a_1 top.impl.usr.m_a_0) (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) (= top.res.abs_2_a_1 (and (and (and (>= top.impl.usr.k_a_1 1) (>= top.impl.usr.m_a_1 1)) (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) (=> (>= top.res.abs_1_a_1 top.impl.usr.m_a_1) top.usr.r_a_1))) (let ((X1 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (=> (>= top.res.abs_0_a_1 (+ top.impl.usr.k_a_1 top.impl.usr.m_a_1)) top.usr.r_a_1))) (__node_trans_Sofar_0 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Age_0 top.usr.p_a_1 top.res.abs_0_a_1 top.res.inst_1_a_1 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) (__node_trans_Age_0 top.usr.q_a_1 top.res.abs_1_a_1 top.res.inst_0_a_1 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.ik Int) (top.usr.im Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.ik Int) (top.usr.im Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.k top.usr.ik) (= top.impl.usr.m top.usr.im) (= top.res.abs_2 (and (and (and (>= top.impl.usr.k 1) (>= top.impl.usr.m 1)) (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) (=> (>= top.res.abs_1 top.impl.usr.m) top.usr.r))) (let ((X1 top.res.abs_3)) (and (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_1) (__node_init_Age_0 top.usr.q top.res.abs_1 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.ik Int) (top.usr.im Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.ik! Int) (top.usr.im! Int) (top.usr.p! Bool) (top.usr.q! Bool) (top.usr.r! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.k! Int) (top.impl.usr.m! Int) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.m! top.impl.usr.m) (= top.impl.usr.k! top.impl.usr.k) (= top.res.abs_2! (and (and (and (>= top.impl.usr.k! 1) (>= top.impl.usr.m! 1)) (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) (=> (>= top.res.abs_1! top.impl.usr.m!) top.usr.r!))) (let ((X1 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (=> (>= top.res.abs_0! (+ top.impl.usr.k! top.impl.usr.m!)) top.usr.r!))) (__node_trans_Sofar_0 top.res.abs_2! top.res.abs_3! top.res.inst_2! top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Age_0 top.usr.p! top.res.abs_0! top.res.inst_1! top.usr.p top.res.abs_0 top.res.inst_1) (__node_trans_Age_0 top.usr.q! top.res.abs_1! top.res.inst_0! top.usr.q top.res.abs_1 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.ik Int) (top.usr.im Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/durationThm_1_e3_389.sl b/benchmarks/LIA/Lustre/durationThm_1_e3_389.sl index d8c1975..3176ff2 100644 --- a/benchmarks/LIA/Lustre/durationThm_1_e3_389.sl +++ b/benchmarks/LIA/Lustre/durationThm_1_e3_389.sl @@ -1,362 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_Age_0 ( - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0) -) - -(define-fun - __node_trans_Age_0 ( - (Age.usr.p_a_1 Bool) - (Age.usr.age_of_p_a_1 Int) - (Age.res.init_flag_a_1 Bool) - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (- Age.usr.age_of_p_a_0 1) 0)) - (not Age.res.init_flag_a_1)) -) - -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.ik_a_0 Int) - (top.usr.im_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.r_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.impl.usr.m_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= top.impl.usr.k_a_0 top.usr.ik_a_0) - (= top.impl.usr.m_a_0 top.usr.im_a_0) - (= - top.res.abs_2_a_0 - (and - (and - (and (>= top.impl.usr.k_a_0 1) (>= top.impl.usr.m_a_0 1)) - (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) - (=> (>= top.res.abs_1_a_0 top.impl.usr.m_a_0) top.usr.r_a_0))) - (let - ((X1 Bool top.res.abs_3_a_0)) - (and - (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) - (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) - (__node_init_Age_0 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.ik_a_1 Int) - (top.usr.im_a_1 Int) - (top.usr.p_a_1 Bool) - (top.usr.q_a_1 Bool) - (top.usr.r_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.k_a_1 Int) - (top.impl.usr.m_a_1 Int) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.ik_a_0 Int) - (top.usr.im_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.r_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.impl.usr.m_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.m_a_1 top.impl.usr.m_a_0) - (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) - (= - top.res.abs_2_a_1 - (and - (and - (and (>= top.impl.usr.k_a_1 1) (>= top.impl.usr.m_a_1 1)) - (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) - (=> (>= top.res.abs_1_a_1 top.impl.usr.m_a_1) top.usr.r_a_1))) - (let - ((X1 Bool top.res.abs_3_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (=> - (>= top.res.abs_0_a_1 (+ top.impl.usr.k_a_1 top.impl.usr.m_a_1)) - top.usr.r_a_1))) - (__node_trans_Sofar_0 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Age_0 - top.usr.p_a_1 - top.res.abs_0_a_1 - top.res.inst_1_a_1 - top.usr.p_a_0 - top.res.abs_0_a_0 - top.res.inst_1_a_0) - (__node_trans_Age_0 - top.usr.q_a_1 - top.res.abs_1_a_1 - top.res.inst_0_a_1 - top.usr.q_a_0 - top.res.abs_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.ik Int) - (top.usr.im Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.ik Int) -(declare-primed-var top.usr.im Int) -(declare-primed-var top.usr.p Bool) -(declare-primed-var top.usr.q Bool) -(declare-primed-var top.usr.r Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.k Int) -(declare-primed-var top.impl.usr.m Int) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.ik Int) - (top.usr.im Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.k top.usr.ik) - (= top.impl.usr.m top.usr.im) - (= - top.res.abs_2 - (and - (and - (and (>= top.impl.usr.k 1) (>= top.impl.usr.m 1)) - (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) - (=> (>= top.res.abs_1 top.impl.usr.m) top.usr.r))) - (let - ((X1 Bool top.res.abs_3)) - (and - (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_2) - (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_1) - (__node_init_Age_0 top.usr.q top.res.abs_1 top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.ik Int) - (top.usr.im Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.ik! Int) - (top.usr.im! Int) - (top.usr.p! Bool) - (top.usr.q! Bool) - (top.usr.r! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.k! Int) - (top.impl.usr.m! Int) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.impl.usr.m! top.impl.usr.m) - (= top.impl.usr.k! top.impl.usr.k) - (= - top.res.abs_2! - (and - (and - (and (>= top.impl.usr.k! 1) (>= top.impl.usr.m! 1)) - (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) - (=> (>= top.res.abs_1! top.impl.usr.m!) top.usr.r!))) - (let - ((X1 Bool top.res.abs_3!)) - (and - (= - top.usr.OK! - (=> - X1 - (=> - (>= top.res.abs_0! (+ top.impl.usr.k! top.impl.usr.m!)) - top.usr.r!))) - (__node_trans_Sofar_0 - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Age_0 - top.usr.p! - top.res.abs_0! - top.res.inst_1! - top.usr.p - top.res.abs_0 - top.res.inst_1) - (__node_trans_Age_0 - top.usr.q! - top.res.abs_1! - top.res.inst_0! - top.usr.q - top.res.abs_1 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.ik Int) - (top.usr.im Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Age_0 ((Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0)) +(define-fun __node_trans_Age_0 ((Age.usr.p_a_1 Bool) (Age.usr.age_of_p_a_1 Int) (Age.res.init_flag_a_1 Bool) (Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (- Age.usr.age_of_p_a_0 1) 0)) (not Age.res.init_flag_a_1))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.ik_a_0 Int) (top.usr.im_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.r_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.impl.usr.m_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.k_a_0 top.usr.ik_a_0) (= top.impl.usr.m_a_0 top.usr.im_a_0) (= top.res.abs_2_a_0 (and (and (and (>= top.impl.usr.k_a_0 1) (>= top.impl.usr.m_a_0 1)) (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) (=> (>= top.res.abs_1_a_0 top.impl.usr.m_a_0) top.usr.r_a_0))) (let ((X1 top.res.abs_3_a_0)) (and (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) (__node_init_Age_0 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.ik_a_1 Int) (top.usr.im_a_1 Int) (top.usr.p_a_1 Bool) (top.usr.q_a_1 Bool) (top.usr.r_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.k_a_1 Int) (top.impl.usr.m_a_1 Int) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.ik_a_0 Int) (top.usr.im_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.r_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.impl.usr.m_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.m_a_1 top.impl.usr.m_a_0) (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) (= top.res.abs_2_a_1 (and (and (and (>= top.impl.usr.k_a_1 1) (>= top.impl.usr.m_a_1 1)) (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) (=> (>= top.res.abs_1_a_1 top.impl.usr.m_a_1) top.usr.r_a_1))) (let ((X1 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (=> (>= top.res.abs_0_a_1 (+ top.impl.usr.k_a_1 top.impl.usr.m_a_1)) top.usr.r_a_1))) (__node_trans_Sofar_0 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Age_0 top.usr.p_a_1 top.res.abs_0_a_1 top.res.inst_1_a_1 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) (__node_trans_Age_0 top.usr.q_a_1 top.res.abs_1_a_1 top.res.inst_0_a_1 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.ik Int) (top.usr.im Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.ik Int) (top.usr.im Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.k top.usr.ik) (= top.impl.usr.m top.usr.im) (= top.res.abs_2 (and (and (and (>= top.impl.usr.k 1) (>= top.impl.usr.m 1)) (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) (=> (>= top.res.abs_1 top.impl.usr.m) top.usr.r))) (let ((X1 top.res.abs_3)) (and (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_1) (__node_init_Age_0 top.usr.q top.res.abs_1 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.ik Int) (top.usr.im Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.ik! Int) (top.usr.im! Int) (top.usr.p! Bool) (top.usr.q! Bool) (top.usr.r! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.k! Int) (top.impl.usr.m! Int) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.m! top.impl.usr.m) (= top.impl.usr.k! top.impl.usr.k) (= top.res.abs_2! (and (and (and (>= top.impl.usr.k! 1) (>= top.impl.usr.m! 1)) (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) (=> (>= top.res.abs_1! top.impl.usr.m!) top.usr.r!))) (let ((X1 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (=> (>= top.res.abs_0! (+ top.impl.usr.k! top.impl.usr.m!)) top.usr.r!))) (__node_trans_Sofar_0 top.res.abs_2! top.res.abs_3! top.res.inst_2! top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Age_0 top.usr.p! top.res.abs_0! top.res.inst_1! top.usr.p top.res.abs_0 top.res.inst_1) (__node_trans_Age_0 top.usr.q! top.res.abs_1! top.res.inst_0! top.usr.q top.res.abs_1 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.ik Int) (top.usr.im Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/durationThm_1_e3_389_e4_294.sl b/benchmarks/LIA/Lustre/durationThm_1_e3_389_e4_294.sl index 73db6b2..628967a 100644 --- a/benchmarks/LIA/Lustre/durationThm_1_e3_389_e4_294.sl +++ b/benchmarks/LIA/Lustre/durationThm_1_e3_389_e4_294.sl @@ -1,362 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_Age_0 ( - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0) -) - -(define-fun - __node_trans_Age_0 ( - (Age.usr.p_a_1 Bool) - (Age.usr.age_of_p_a_1 Int) - (Age.res.init_flag_a_1 Bool) - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (- (+ Age.usr.age_of_p_a_0 1) 1) 0)) - (not Age.res.init_flag_a_1)) -) - -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.ik_a_0 Int) - (top.usr.im_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.r_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.impl.usr.m_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= top.impl.usr.k_a_0 top.usr.ik_a_0) - (= top.impl.usr.m_a_0 top.usr.im_a_0) - (= - top.res.abs_2_a_0 - (and - (and - (and (>= top.impl.usr.k_a_0 1) (>= top.impl.usr.m_a_0 1)) - (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) - (=> (>= top.res.abs_1_a_0 top.impl.usr.m_a_0) top.usr.r_a_0))) - (let - ((X1 Bool top.res.abs_3_a_0)) - (and - (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) - (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) - (__node_init_Age_0 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.ik_a_1 Int) - (top.usr.im_a_1 Int) - (top.usr.p_a_1 Bool) - (top.usr.q_a_1 Bool) - (top.usr.r_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.k_a_1 Int) - (top.impl.usr.m_a_1 Int) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.ik_a_0 Int) - (top.usr.im_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.r_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.impl.usr.m_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.m_a_1 top.impl.usr.m_a_0) - (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) - (= - top.res.abs_2_a_1 - (and - (and - (and (>= top.impl.usr.k_a_1 1) (>= top.impl.usr.m_a_1 1)) - (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) - (=> (>= top.res.abs_1_a_1 top.impl.usr.m_a_1) top.usr.r_a_1))) - (let - ((X1 Bool top.res.abs_3_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (=> - (>= top.res.abs_0_a_1 (+ top.impl.usr.k_a_1 top.impl.usr.m_a_1)) - top.usr.r_a_1))) - (__node_trans_Sofar_0 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Age_0 - top.usr.p_a_1 - top.res.abs_0_a_1 - top.res.inst_1_a_1 - top.usr.p_a_0 - top.res.abs_0_a_0 - top.res.inst_1_a_0) - (__node_trans_Age_0 - top.usr.q_a_1 - top.res.abs_1_a_1 - top.res.inst_0_a_1 - top.usr.q_a_0 - top.res.abs_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.ik Int) - (top.usr.im Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.ik Int) -(declare-primed-var top.usr.im Int) -(declare-primed-var top.usr.p Bool) -(declare-primed-var top.usr.q Bool) -(declare-primed-var top.usr.r Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.k Int) -(declare-primed-var top.impl.usr.m Int) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.ik Int) - (top.usr.im Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.k top.usr.ik) - (= top.impl.usr.m top.usr.im) - (= - top.res.abs_2 - (and - (and - (and (>= top.impl.usr.k 1) (>= top.impl.usr.m 1)) - (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) - (=> (>= top.res.abs_1 top.impl.usr.m) top.usr.r))) - (let - ((X1 Bool top.res.abs_3)) - (and - (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_2) - (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_1) - (__node_init_Age_0 top.usr.q top.res.abs_1 top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.ik Int) - (top.usr.im Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.ik! Int) - (top.usr.im! Int) - (top.usr.p! Bool) - (top.usr.q! Bool) - (top.usr.r! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.k! Int) - (top.impl.usr.m! Int) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.impl.usr.m! top.impl.usr.m) - (= top.impl.usr.k! top.impl.usr.k) - (= - top.res.abs_2! - (and - (and - (and (>= top.impl.usr.k! 1) (>= top.impl.usr.m! 1)) - (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) - (=> (>= top.res.abs_1! top.impl.usr.m!) top.usr.r!))) - (let - ((X1 Bool top.res.abs_3!)) - (and - (= - top.usr.OK! - (=> - X1 - (=> - (>= top.res.abs_0! (+ top.impl.usr.k! top.impl.usr.m!)) - top.usr.r!))) - (__node_trans_Sofar_0 - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Age_0 - top.usr.p! - top.res.abs_0! - top.res.inst_1! - top.usr.p - top.res.abs_0 - top.res.inst_1) - (__node_trans_Age_0 - top.usr.q! - top.res.abs_1! - top.res.inst_0! - top.usr.q - top.res.abs_1 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.ik Int) - (top.usr.im Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Age_0 ((Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0)) +(define-fun __node_trans_Age_0 ((Age.usr.p_a_1 Bool) (Age.usr.age_of_p_a_1 Int) (Age.res.init_flag_a_1 Bool) (Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (- (+ Age.usr.age_of_p_a_0 1) 1) 0)) (not Age.res.init_flag_a_1))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.ik_a_0 Int) (top.usr.im_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.r_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.impl.usr.m_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.k_a_0 top.usr.ik_a_0) (= top.impl.usr.m_a_0 top.usr.im_a_0) (= top.res.abs_2_a_0 (and (and (and (>= top.impl.usr.k_a_0 1) (>= top.impl.usr.m_a_0 1)) (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) (=> (>= top.res.abs_1_a_0 top.impl.usr.m_a_0) top.usr.r_a_0))) (let ((X1 top.res.abs_3_a_0)) (and (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) (__node_init_Age_0 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.ik_a_1 Int) (top.usr.im_a_1 Int) (top.usr.p_a_1 Bool) (top.usr.q_a_1 Bool) (top.usr.r_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.k_a_1 Int) (top.impl.usr.m_a_1 Int) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.ik_a_0 Int) (top.usr.im_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.r_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.impl.usr.m_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.m_a_1 top.impl.usr.m_a_0) (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) (= top.res.abs_2_a_1 (and (and (and (>= top.impl.usr.k_a_1 1) (>= top.impl.usr.m_a_1 1)) (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) (=> (>= top.res.abs_1_a_1 top.impl.usr.m_a_1) top.usr.r_a_1))) (let ((X1 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (=> (>= top.res.abs_0_a_1 (+ top.impl.usr.k_a_1 top.impl.usr.m_a_1)) top.usr.r_a_1))) (__node_trans_Sofar_0 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Age_0 top.usr.p_a_1 top.res.abs_0_a_1 top.res.inst_1_a_1 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) (__node_trans_Age_0 top.usr.q_a_1 top.res.abs_1_a_1 top.res.inst_0_a_1 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.ik Int) (top.usr.im Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.ik Int) (top.usr.im Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.k top.usr.ik) (= top.impl.usr.m top.usr.im) (= top.res.abs_2 (and (and (and (>= top.impl.usr.k 1) (>= top.impl.usr.m 1)) (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) (=> (>= top.res.abs_1 top.impl.usr.m) top.usr.r))) (let ((X1 top.res.abs_3)) (and (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_1) (__node_init_Age_0 top.usr.q top.res.abs_1 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.ik Int) (top.usr.im Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.ik! Int) (top.usr.im! Int) (top.usr.p! Bool) (top.usr.q! Bool) (top.usr.r! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.k! Int) (top.impl.usr.m! Int) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.m! top.impl.usr.m) (= top.impl.usr.k! top.impl.usr.k) (= top.res.abs_2! (and (and (and (>= top.impl.usr.k! 1) (>= top.impl.usr.m! 1)) (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) (=> (>= top.res.abs_1! top.impl.usr.m!) top.usr.r!))) (let ((X1 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (=> (>= top.res.abs_0! (+ top.impl.usr.k! top.impl.usr.m!)) top.usr.r!))) (__node_trans_Sofar_0 top.res.abs_2! top.res.abs_3! top.res.inst_2! top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Age_0 top.usr.p! top.res.abs_0! top.res.inst_1! top.usr.p top.res.abs_0 top.res.inst_1) (__node_trans_Age_0 top.usr.q! top.res.abs_1! top.res.inst_0! top.usr.q top.res.abs_1 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.ik Int) (top.usr.im Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/durationThm_1_e3_389_e5_5.sl b/benchmarks/LIA/Lustre/durationThm_1_e3_389_e5_5.sl index 1da6327..c73b429 100644 --- a/benchmarks/LIA/Lustre/durationThm_1_e3_389_e5_5.sl +++ b/benchmarks/LIA/Lustre/durationThm_1_e3_389_e5_5.sl @@ -1,362 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_Age_0 ( - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0) -) - -(define-fun - __node_trans_Age_0 ( - (Age.usr.p_a_1 Bool) - (Age.usr.age_of_p_a_1 Int) - (Age.res.init_flag_a_1 Bool) - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (- (- Age.usr.age_of_p_a_0 1) 1) 0)) - (not Age.res.init_flag_a_1)) -) - -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.ik_a_0 Int) - (top.usr.im_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.r_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.impl.usr.m_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= top.impl.usr.k_a_0 top.usr.ik_a_0) - (= top.impl.usr.m_a_0 top.usr.im_a_0) - (= - top.res.abs_2_a_0 - (and - (and - (and (>= top.impl.usr.k_a_0 1) (>= top.impl.usr.m_a_0 1)) - (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) - (=> (>= top.res.abs_1_a_0 top.impl.usr.m_a_0) top.usr.r_a_0))) - (let - ((X1 Bool top.res.abs_3_a_0)) - (and - (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) - (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) - (__node_init_Age_0 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.ik_a_1 Int) - (top.usr.im_a_1 Int) - (top.usr.p_a_1 Bool) - (top.usr.q_a_1 Bool) - (top.usr.r_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.k_a_1 Int) - (top.impl.usr.m_a_1 Int) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.ik_a_0 Int) - (top.usr.im_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.r_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.impl.usr.m_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.m_a_1 top.impl.usr.m_a_0) - (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) - (= - top.res.abs_2_a_1 - (and - (and - (and (>= top.impl.usr.k_a_1 1) (>= top.impl.usr.m_a_1 1)) - (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) - (=> (>= top.res.abs_1_a_1 top.impl.usr.m_a_1) top.usr.r_a_1))) - (let - ((X1 Bool top.res.abs_3_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (=> - (>= top.res.abs_0_a_1 (+ top.impl.usr.k_a_1 top.impl.usr.m_a_1)) - top.usr.r_a_1))) - (__node_trans_Sofar_0 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Age_0 - top.usr.p_a_1 - top.res.abs_0_a_1 - top.res.inst_1_a_1 - top.usr.p_a_0 - top.res.abs_0_a_0 - top.res.inst_1_a_0) - (__node_trans_Age_0 - top.usr.q_a_1 - top.res.abs_1_a_1 - top.res.inst_0_a_1 - top.usr.q_a_0 - top.res.abs_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.ik Int) - (top.usr.im Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.ik Int) -(declare-primed-var top.usr.im Int) -(declare-primed-var top.usr.p Bool) -(declare-primed-var top.usr.q Bool) -(declare-primed-var top.usr.r Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.k Int) -(declare-primed-var top.impl.usr.m Int) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.ik Int) - (top.usr.im Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.k top.usr.ik) - (= top.impl.usr.m top.usr.im) - (= - top.res.abs_2 - (and - (and - (and (>= top.impl.usr.k 1) (>= top.impl.usr.m 1)) - (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) - (=> (>= top.res.abs_1 top.impl.usr.m) top.usr.r))) - (let - ((X1 Bool top.res.abs_3)) - (and - (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_2) - (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_1) - (__node_init_Age_0 top.usr.q top.res.abs_1 top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.ik Int) - (top.usr.im Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.ik! Int) - (top.usr.im! Int) - (top.usr.p! Bool) - (top.usr.q! Bool) - (top.usr.r! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.k! Int) - (top.impl.usr.m! Int) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.impl.usr.m! top.impl.usr.m) - (= top.impl.usr.k! top.impl.usr.k) - (= - top.res.abs_2! - (and - (and - (and (>= top.impl.usr.k! 1) (>= top.impl.usr.m! 1)) - (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) - (=> (>= top.res.abs_1! top.impl.usr.m!) top.usr.r!))) - (let - ((X1 Bool top.res.abs_3!)) - (and - (= - top.usr.OK! - (=> - X1 - (=> - (>= top.res.abs_0! (+ top.impl.usr.k! top.impl.usr.m!)) - top.usr.r!))) - (__node_trans_Sofar_0 - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Age_0 - top.usr.p! - top.res.abs_0! - top.res.inst_1! - top.usr.p - top.res.abs_0 - top.res.inst_1) - (__node_trans_Age_0 - top.usr.q! - top.res.abs_1! - top.res.inst_0! - top.usr.q - top.res.abs_1 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.ik Int) - (top.usr.im Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Age_0 ((Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0)) +(define-fun __node_trans_Age_0 ((Age.usr.p_a_1 Bool) (Age.usr.age_of_p_a_1 Int) (Age.res.init_flag_a_1 Bool) (Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (- (- Age.usr.age_of_p_a_0 1) 1) 0)) (not Age.res.init_flag_a_1))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.ik_a_0 Int) (top.usr.im_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.r_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.impl.usr.m_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.k_a_0 top.usr.ik_a_0) (= top.impl.usr.m_a_0 top.usr.im_a_0) (= top.res.abs_2_a_0 (and (and (and (>= top.impl.usr.k_a_0 1) (>= top.impl.usr.m_a_0 1)) (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) (=> (>= top.res.abs_1_a_0 top.impl.usr.m_a_0) top.usr.r_a_0))) (let ((X1 top.res.abs_3_a_0)) (and (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) (__node_init_Age_0 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.ik_a_1 Int) (top.usr.im_a_1 Int) (top.usr.p_a_1 Bool) (top.usr.q_a_1 Bool) (top.usr.r_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.k_a_1 Int) (top.impl.usr.m_a_1 Int) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.ik_a_0 Int) (top.usr.im_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.r_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.impl.usr.m_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.m_a_1 top.impl.usr.m_a_0) (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) (= top.res.abs_2_a_1 (and (and (and (>= top.impl.usr.k_a_1 1) (>= top.impl.usr.m_a_1 1)) (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) (=> (>= top.res.abs_1_a_1 top.impl.usr.m_a_1) top.usr.r_a_1))) (let ((X1 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (=> (>= top.res.abs_0_a_1 (+ top.impl.usr.k_a_1 top.impl.usr.m_a_1)) top.usr.r_a_1))) (__node_trans_Sofar_0 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Age_0 top.usr.p_a_1 top.res.abs_0_a_1 top.res.inst_1_a_1 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) (__node_trans_Age_0 top.usr.q_a_1 top.res.abs_1_a_1 top.res.inst_0_a_1 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.ik Int) (top.usr.im Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.ik Int) (top.usr.im Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.k top.usr.ik) (= top.impl.usr.m top.usr.im) (= top.res.abs_2 (and (and (and (>= top.impl.usr.k 1) (>= top.impl.usr.m 1)) (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) (=> (>= top.res.abs_1 top.impl.usr.m) top.usr.r))) (let ((X1 top.res.abs_3)) (and (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_1) (__node_init_Age_0 top.usr.q top.res.abs_1 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.ik Int) (top.usr.im Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.ik! Int) (top.usr.im! Int) (top.usr.p! Bool) (top.usr.q! Bool) (top.usr.r! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.k! Int) (top.impl.usr.m! Int) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.m! top.impl.usr.m) (= top.impl.usr.k! top.impl.usr.k) (= top.res.abs_2! (and (and (and (>= top.impl.usr.k! 1) (>= top.impl.usr.m! 1)) (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) (=> (>= top.res.abs_1! top.impl.usr.m!) top.usr.r!))) (let ((X1 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (=> (>= top.res.abs_0! (+ top.impl.usr.k! top.impl.usr.m!)) top.usr.r!))) (__node_trans_Sofar_0 top.res.abs_2! top.res.abs_3! top.res.inst_2! top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Age_0 top.usr.p! top.res.abs_0! top.res.inst_1! top.usr.p top.res.abs_0 top.res.inst_1) (__node_trans_Age_0 top.usr.q! top.res.abs_1! top.res.inst_0! top.usr.q top.res.abs_1 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.ik Int) (top.usr.im Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/durationThm_1_e7_217_e2_352.sl b/benchmarks/LIA/Lustre/durationThm_1_e7_217_e2_352.sl index ec0eaba..e2ff27e 100644 --- a/benchmarks/LIA/Lustre/durationThm_1_e7_217_e2_352.sl +++ b/benchmarks/LIA/Lustre/durationThm_1_e7_217_e2_352.sl @@ -1,362 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_Age_0 ( - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0) -) - -(define-fun - __node_trans_Age_0 ( - (Age.usr.p_a_1 Bool) - (Age.usr.age_of_p_a_1 Int) - (Age.res.init_flag_a_1 Bool) - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (+ (- Age.usr.age_of_p_a_0 1) 1) 0)) - (not Age.res.init_flag_a_1)) -) - -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.ik_a_0 Int) - (top.usr.im_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.r_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.impl.usr.m_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= top.impl.usr.k_a_0 top.usr.ik_a_0) - (= top.impl.usr.m_a_0 top.usr.im_a_0) - (= - top.res.abs_2_a_0 - (and - (and - (and (>= top.impl.usr.k_a_0 1) (>= top.impl.usr.m_a_0 1)) - (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) - (=> (>= top.res.abs_1_a_0 top.impl.usr.m_a_0) top.usr.r_a_0))) - (let - ((X1 Bool top.res.abs_3_a_0)) - (and - (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) - (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) - (__node_init_Age_0 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.ik_a_1 Int) - (top.usr.im_a_1 Int) - (top.usr.p_a_1 Bool) - (top.usr.q_a_1 Bool) - (top.usr.r_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.k_a_1 Int) - (top.impl.usr.m_a_1 Int) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.ik_a_0 Int) - (top.usr.im_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.r_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.impl.usr.m_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.m_a_1 top.impl.usr.m_a_0) - (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) - (= - top.res.abs_2_a_1 - (and - (and - (and (>= top.impl.usr.k_a_1 1) (>= top.impl.usr.m_a_1 1)) - (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) - (=> (>= top.res.abs_1_a_1 top.impl.usr.m_a_1) top.usr.r_a_1))) - (let - ((X1 Bool top.res.abs_3_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (=> - (>= top.res.abs_0_a_1 (+ top.impl.usr.k_a_1 top.impl.usr.m_a_1)) - top.usr.r_a_1))) - (__node_trans_Sofar_0 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Age_0 - top.usr.p_a_1 - top.res.abs_0_a_1 - top.res.inst_1_a_1 - top.usr.p_a_0 - top.res.abs_0_a_0 - top.res.inst_1_a_0) - (__node_trans_Age_0 - top.usr.q_a_1 - top.res.abs_1_a_1 - top.res.inst_0_a_1 - top.usr.q_a_0 - top.res.abs_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.ik Int) - (top.usr.im Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.ik Int) -(declare-primed-var top.usr.im Int) -(declare-primed-var top.usr.p Bool) -(declare-primed-var top.usr.q Bool) -(declare-primed-var top.usr.r Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.k Int) -(declare-primed-var top.impl.usr.m Int) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.ik Int) - (top.usr.im Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.k top.usr.ik) - (= top.impl.usr.m top.usr.im) - (= - top.res.abs_2 - (and - (and - (and (>= top.impl.usr.k 1) (>= top.impl.usr.m 1)) - (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) - (=> (>= top.res.abs_1 top.impl.usr.m) top.usr.r))) - (let - ((X1 Bool top.res.abs_3)) - (and - (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_2) - (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_1) - (__node_init_Age_0 top.usr.q top.res.abs_1 top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.ik Int) - (top.usr.im Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.ik! Int) - (top.usr.im! Int) - (top.usr.p! Bool) - (top.usr.q! Bool) - (top.usr.r! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.k! Int) - (top.impl.usr.m! Int) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.impl.usr.m! top.impl.usr.m) - (= top.impl.usr.k! top.impl.usr.k) - (= - top.res.abs_2! - (and - (and - (and (>= top.impl.usr.k! 1) (>= top.impl.usr.m! 1)) - (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) - (=> (>= top.res.abs_1! top.impl.usr.m!) top.usr.r!))) - (let - ((X1 Bool top.res.abs_3!)) - (and - (= - top.usr.OK! - (=> - X1 - (=> - (>= top.res.abs_0! (+ top.impl.usr.k! top.impl.usr.m!)) - top.usr.r!))) - (__node_trans_Sofar_0 - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Age_0 - top.usr.p! - top.res.abs_0! - top.res.inst_1! - top.usr.p - top.res.abs_0 - top.res.inst_1) - (__node_trans_Age_0 - top.usr.q! - top.res.abs_1! - top.res.inst_0! - top.usr.q - top.res.abs_1 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.ik Int) - (top.usr.im Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Age_0 ((Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0)) +(define-fun __node_trans_Age_0 ((Age.usr.p_a_1 Bool) (Age.usr.age_of_p_a_1 Int) (Age.res.init_flag_a_1 Bool) (Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (+ (- Age.usr.age_of_p_a_0 1) 1) 0)) (not Age.res.init_flag_a_1))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.ik_a_0 Int) (top.usr.im_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.r_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.impl.usr.m_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.k_a_0 top.usr.ik_a_0) (= top.impl.usr.m_a_0 top.usr.im_a_0) (= top.res.abs_2_a_0 (and (and (and (>= top.impl.usr.k_a_0 1) (>= top.impl.usr.m_a_0 1)) (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) (=> (>= top.res.abs_1_a_0 top.impl.usr.m_a_0) top.usr.r_a_0))) (let ((X1 top.res.abs_3_a_0)) (and (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) (__node_init_Age_0 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.ik_a_1 Int) (top.usr.im_a_1 Int) (top.usr.p_a_1 Bool) (top.usr.q_a_1 Bool) (top.usr.r_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.k_a_1 Int) (top.impl.usr.m_a_1 Int) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.ik_a_0 Int) (top.usr.im_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.r_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.impl.usr.m_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.m_a_1 top.impl.usr.m_a_0) (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) (= top.res.abs_2_a_1 (and (and (and (>= top.impl.usr.k_a_1 1) (>= top.impl.usr.m_a_1 1)) (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) (=> (>= top.res.abs_1_a_1 top.impl.usr.m_a_1) top.usr.r_a_1))) (let ((X1 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (=> (>= top.res.abs_0_a_1 (+ top.impl.usr.k_a_1 top.impl.usr.m_a_1)) top.usr.r_a_1))) (__node_trans_Sofar_0 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Age_0 top.usr.p_a_1 top.res.abs_0_a_1 top.res.inst_1_a_1 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) (__node_trans_Age_0 top.usr.q_a_1 top.res.abs_1_a_1 top.res.inst_0_a_1 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.ik Int) (top.usr.im Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.ik Int) (top.usr.im Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.k top.usr.ik) (= top.impl.usr.m top.usr.im) (= top.res.abs_2 (and (and (and (>= top.impl.usr.k 1) (>= top.impl.usr.m 1)) (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) (=> (>= top.res.abs_1 top.impl.usr.m) top.usr.r))) (let ((X1 top.res.abs_3)) (and (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_1) (__node_init_Age_0 top.usr.q top.res.abs_1 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.ik Int) (top.usr.im Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.ik! Int) (top.usr.im! Int) (top.usr.p! Bool) (top.usr.q! Bool) (top.usr.r! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.k! Int) (top.impl.usr.m! Int) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.m! top.impl.usr.m) (= top.impl.usr.k! top.impl.usr.k) (= top.res.abs_2! (and (and (and (>= top.impl.usr.k! 1) (>= top.impl.usr.m! 1)) (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) (=> (>= top.res.abs_1! top.impl.usr.m!) top.usr.r!))) (let ((X1 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (=> (>= top.res.abs_0! (+ top.impl.usr.k! top.impl.usr.m!)) top.usr.r!))) (__node_trans_Sofar_0 top.res.abs_2! top.res.abs_3! top.res.inst_2! top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Age_0 top.usr.p! top.res.abs_0! top.res.inst_1! top.usr.p top.res.abs_0 top.res.inst_1) (__node_trans_Age_0 top.usr.q! top.res.abs_1! top.res.inst_0! top.usr.q top.res.abs_1 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.ik Int) (top.usr.im Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/durationThm_1_e7_217_e3_132.sl b/benchmarks/LIA/Lustre/durationThm_1_e7_217_e3_132.sl index 8280656..4c6b6ac 100644 --- a/benchmarks/LIA/Lustre/durationThm_1_e7_217_e3_132.sl +++ b/benchmarks/LIA/Lustre/durationThm_1_e7_217_e3_132.sl @@ -1,362 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_Age_0 ( - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0) -) - -(define-fun - __node_trans_Age_0 ( - (Age.usr.p_a_1 Bool) - (Age.usr.age_of_p_a_1 Int) - (Age.res.init_flag_a_1 Bool) - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (- Age.usr.age_of_p_a_0 1) 0)) - (not Age.res.init_flag_a_1)) -) - -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.ik_a_0 Int) - (top.usr.im_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.r_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.impl.usr.m_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= top.impl.usr.k_a_0 top.usr.ik_a_0) - (= top.impl.usr.m_a_0 top.usr.im_a_0) - (= - top.res.abs_2_a_0 - (and - (and - (and (>= top.impl.usr.k_a_0 1) (>= top.impl.usr.m_a_0 1)) - (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) - (=> (>= top.res.abs_1_a_0 top.impl.usr.m_a_0) top.usr.r_a_0))) - (let - ((X1 Bool top.res.abs_3_a_0)) - (and - (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) - (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) - (__node_init_Age_0 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.ik_a_1 Int) - (top.usr.im_a_1 Int) - (top.usr.p_a_1 Bool) - (top.usr.q_a_1 Bool) - (top.usr.r_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.k_a_1 Int) - (top.impl.usr.m_a_1 Int) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.ik_a_0 Int) - (top.usr.im_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.r_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.impl.usr.m_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.m_a_1 top.impl.usr.m_a_0) - (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) - (= - top.res.abs_2_a_1 - (and - (and - (and (>= top.impl.usr.k_a_1 1) (>= top.impl.usr.m_a_1 1)) - (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) - (=> (>= top.res.abs_1_a_1 top.impl.usr.m_a_1) top.usr.r_a_1))) - (let - ((X1 Bool top.res.abs_3_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (=> - (>= top.res.abs_0_a_1 (+ top.impl.usr.k_a_1 top.impl.usr.m_a_1)) - top.usr.r_a_1))) - (__node_trans_Sofar_0 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Age_0 - top.usr.p_a_1 - top.res.abs_0_a_1 - top.res.inst_1_a_1 - top.usr.p_a_0 - top.res.abs_0_a_0 - top.res.inst_1_a_0) - (__node_trans_Age_0 - top.usr.q_a_1 - top.res.abs_1_a_1 - top.res.inst_0_a_1 - top.usr.q_a_0 - top.res.abs_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.ik Int) - (top.usr.im Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.ik Int) -(declare-primed-var top.usr.im Int) -(declare-primed-var top.usr.p Bool) -(declare-primed-var top.usr.q Bool) -(declare-primed-var top.usr.r Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.k Int) -(declare-primed-var top.impl.usr.m Int) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.ik Int) - (top.usr.im Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.k top.usr.ik) - (= top.impl.usr.m top.usr.im) - (= - top.res.abs_2 - (and - (and - (and (>= top.impl.usr.k 1) (>= top.impl.usr.m 1)) - (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) - (=> (>= top.res.abs_1 top.impl.usr.m) top.usr.r))) - (let - ((X1 Bool top.res.abs_3)) - (and - (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_2) - (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_1) - (__node_init_Age_0 top.usr.q top.res.abs_1 top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.ik Int) - (top.usr.im Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.ik! Int) - (top.usr.im! Int) - (top.usr.p! Bool) - (top.usr.q! Bool) - (top.usr.r! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.k! Int) - (top.impl.usr.m! Int) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.impl.usr.m! top.impl.usr.m) - (= top.impl.usr.k! top.impl.usr.k) - (= - top.res.abs_2! - (and - (and - (and (>= top.impl.usr.k! 1) (>= top.impl.usr.m! 1)) - (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) - (=> (>= top.res.abs_1! top.impl.usr.m!) top.usr.r!))) - (let - ((X1 Bool top.res.abs_3!)) - (and - (= - top.usr.OK! - (=> - X1 - (=> - (>= top.res.abs_0! (+ top.impl.usr.k! top.impl.usr.m!)) - top.usr.r!))) - (__node_trans_Sofar_0 - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Age_0 - top.usr.p! - top.res.abs_0! - top.res.inst_1! - top.usr.p - top.res.abs_0 - top.res.inst_1) - (__node_trans_Age_0 - top.usr.q! - top.res.abs_1! - top.res.inst_0! - top.usr.q - top.res.abs_1 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.ik Int) - (top.usr.im Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Age_0 ((Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0)) +(define-fun __node_trans_Age_0 ((Age.usr.p_a_1 Bool) (Age.usr.age_of_p_a_1 Int) (Age.res.init_flag_a_1 Bool) (Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (- Age.usr.age_of_p_a_0 1) 0)) (not Age.res.init_flag_a_1))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.ik_a_0 Int) (top.usr.im_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.r_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.impl.usr.m_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.k_a_0 top.usr.ik_a_0) (= top.impl.usr.m_a_0 top.usr.im_a_0) (= top.res.abs_2_a_0 (and (and (and (>= top.impl.usr.k_a_0 1) (>= top.impl.usr.m_a_0 1)) (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) (=> (>= top.res.abs_1_a_0 top.impl.usr.m_a_0) top.usr.r_a_0))) (let ((X1 top.res.abs_3_a_0)) (and (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) (__node_init_Age_0 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.ik_a_1 Int) (top.usr.im_a_1 Int) (top.usr.p_a_1 Bool) (top.usr.q_a_1 Bool) (top.usr.r_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.k_a_1 Int) (top.impl.usr.m_a_1 Int) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.ik_a_0 Int) (top.usr.im_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.r_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.impl.usr.m_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.m_a_1 top.impl.usr.m_a_0) (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) (= top.res.abs_2_a_1 (and (and (and (>= top.impl.usr.k_a_1 1) (>= top.impl.usr.m_a_1 1)) (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) (=> (>= top.res.abs_1_a_1 top.impl.usr.m_a_1) top.usr.r_a_1))) (let ((X1 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (=> (>= top.res.abs_0_a_1 (+ top.impl.usr.k_a_1 top.impl.usr.m_a_1)) top.usr.r_a_1))) (__node_trans_Sofar_0 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Age_0 top.usr.p_a_1 top.res.abs_0_a_1 top.res.inst_1_a_1 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) (__node_trans_Age_0 top.usr.q_a_1 top.res.abs_1_a_1 top.res.inst_0_a_1 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.ik Int) (top.usr.im Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.ik Int) (top.usr.im Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.k top.usr.ik) (= top.impl.usr.m top.usr.im) (= top.res.abs_2 (and (and (and (>= top.impl.usr.k 1) (>= top.impl.usr.m 1)) (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) (=> (>= top.res.abs_1 top.impl.usr.m) top.usr.r))) (let ((X1 top.res.abs_3)) (and (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_1) (__node_init_Age_0 top.usr.q top.res.abs_1 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.ik Int) (top.usr.im Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.ik! Int) (top.usr.im! Int) (top.usr.p! Bool) (top.usr.q! Bool) (top.usr.r! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.k! Int) (top.impl.usr.m! Int) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.m! top.impl.usr.m) (= top.impl.usr.k! top.impl.usr.k) (= top.res.abs_2! (and (and (and (>= top.impl.usr.k! 1) (>= top.impl.usr.m! 1)) (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) (=> (>= top.res.abs_1! top.impl.usr.m!) top.usr.r!))) (let ((X1 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (=> (>= top.res.abs_0! (+ top.impl.usr.k! top.impl.usr.m!)) top.usr.r!))) (__node_trans_Sofar_0 top.res.abs_2! top.res.abs_3! top.res.inst_2! top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Age_0 top.usr.p! top.res.abs_0! top.res.inst_1! top.usr.p top.res.abs_0 top.res.inst_1) (__node_trans_Age_0 top.usr.q! top.res.abs_1! top.res.inst_0! top.usr.q top.res.abs_1 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.ik Int) (top.usr.im Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/durationThm_2.sl b/benchmarks/LIA/Lustre/durationThm_2.sl index be4fc35..aa55e70 100644 --- a/benchmarks/LIA/Lustre/durationThm_2.sl +++ b/benchmarks/LIA/Lustre/durationThm_2.sl @@ -1,404 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_Age_0 ( - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0) -) - -(define-fun - __node_trans_Age_0 ( - (Age.usr.p_a_1 Bool) - (Age.usr.age_of_p_a_1 Int) - (Age.res.init_flag_a_1 Bool) - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (+ Age.usr.age_of_p_a_0 1) 0)) - (not Age.res.init_flag_a_1)) -) - -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.k0_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.r_a_0 Bool) - (top.usr.t_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.k_a_0 top.usr.k0_a_0) - (= - top.res.abs_2_a_0 - (and - (and - (>= top.impl.usr.k_a_0 1) - (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) - (=> (>= top.res.abs_1_a_0 top.impl.usr.k_a_0) top.usr.t_a_0))) - (let - ((X1 Bool top.res.abs_3_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (=> - (>= top.res.abs_5_a_0 top.impl.usr.k_a_0) - (and top.usr.q_a_0 top.usr.t_a_0)))) - (= top.res.abs_4_a_0 (and top.usr.p_a_0 top.usr.r_a_0)) - (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) - (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_2_a_0) - (__node_init_Age_0 top.usr.r_a_0 top.res.abs_1_a_0 top.res.inst_1_a_0) - (__node_init_Age_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.k0_a_1 Int) - (top.usr.p_a_1 Bool) - (top.usr.q_a_1 Bool) - (top.usr.r_a_1 Bool) - (top.usr.t_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.k_a_1 Int) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.k0_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.r_a_0 Bool) - (top.usr.t_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) - (= - top.res.abs_2_a_1 - (and - (and - (>= top.impl.usr.k_a_1 1) - (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) - (=> (>= top.res.abs_1_a_1 top.impl.usr.k_a_1) top.usr.t_a_1))) - (let - ((X1 Bool top.res.abs_3_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (=> - (>= top.res.abs_5_a_1 top.impl.usr.k_a_1) - (and top.usr.q_a_1 top.usr.t_a_1)))) - (= top.res.abs_4_a_1 (and top.usr.p_a_1 top.usr.r_a_1)) - (__node_trans_Sofar_0 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_trans_Age_0 - top.usr.p_a_1 - top.res.abs_0_a_1 - top.res.inst_2_a_1 - top.usr.p_a_0 - top.res.abs_0_a_0 - top.res.inst_2_a_0) - (__node_trans_Age_0 - top.usr.r_a_1 - top.res.abs_1_a_1 - top.res.inst_1_a_1 - top.usr.r_a_0 - top.res.abs_1_a_0 - top.res.inst_1_a_0) - (__node_trans_Age_0 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_0_a_1 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.k0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.t Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.k0 Int) -(declare-primed-var top.usr.p Bool) -(declare-primed-var top.usr.q Bool) -(declare-primed-var top.usr.r Bool) -(declare-primed-var top.usr.t Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.k Int) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.k0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.t Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.impl.usr.k top.usr.k0) - (= - top.res.abs_2 - (and - (and - (>= top.impl.usr.k 1) - (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) - (=> (>= top.res.abs_1 top.impl.usr.k) top.usr.t))) - (let - ((X1 Bool top.res.abs_3)) - (and - (= - top.usr.OK - (=> - X1 - (=> (>= top.res.abs_5 top.impl.usr.k) (and top.usr.q top.usr.t)))) - (= top.res.abs_4 (and top.usr.p top.usr.r)) - (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_3) - (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_2) - (__node_init_Age_0 top.usr.r top.res.abs_1 top.res.inst_1) - (__node_init_Age_0 top.res.abs_4 top.res.abs_5 top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.k0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.t Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.k0! Int) - (top.usr.p! Bool) - (top.usr.q! Bool) - (top.usr.r! Bool) - (top.usr.t! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.k! Int) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.abs_4! Bool) - (top.res.abs_5! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.impl.usr.k! top.impl.usr.k) - (= - top.res.abs_2! - (and - (and - (>= top.impl.usr.k! 1) - (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) - (=> (>= top.res.abs_1! top.impl.usr.k!) top.usr.t!))) - (let - ((X1 Bool top.res.abs_3!)) - (and - (= - top.usr.OK! - (=> - X1 - (=> (>= top.res.abs_5! top.impl.usr.k!) (and top.usr.q! top.usr.t!)))) - (= top.res.abs_4! (and top.usr.p! top.usr.r!)) - (__node_trans_Sofar_0 - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_trans_Age_0 - top.usr.p! - top.res.abs_0! - top.res.inst_2! - top.usr.p - top.res.abs_0 - top.res.inst_2) - (__node_trans_Age_0 - top.usr.r! - top.res.abs_1! - top.res.inst_1! - top.usr.r - top.res.abs_1 - top.res.inst_1) - (__node_trans_Age_0 - top.res.abs_4! - top.res.abs_5! - top.res.inst_0! - top.res.abs_4 - top.res.abs_5 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.k0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.t Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Age_0 ((Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0)) +(define-fun __node_trans_Age_0 ((Age.usr.p_a_1 Bool) (Age.usr.age_of_p_a_1 Int) (Age.res.init_flag_a_1 Bool) (Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (+ Age.usr.age_of_p_a_0 1) 0)) (not Age.res.init_flag_a_1))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.k0_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.r_a_0 Bool) (top.usr.t_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.k_a_0 top.usr.k0_a_0) (= top.res.abs_2_a_0 (and (and (>= top.impl.usr.k_a_0 1) (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) (=> (>= top.res.abs_1_a_0 top.impl.usr.k_a_0) top.usr.t_a_0))) (let ((X1 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (=> (>= top.res.abs_5_a_0 top.impl.usr.k_a_0) (and top.usr.q_a_0 top.usr.t_a_0)))) (= top.res.abs_4_a_0 (and top.usr.p_a_0 top.usr.r_a_0)) (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_2_a_0) (__node_init_Age_0 top.usr.r_a_0 top.res.abs_1_a_0 top.res.inst_1_a_0) (__node_init_Age_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.k0_a_1 Int) (top.usr.p_a_1 Bool) (top.usr.q_a_1 Bool) (top.usr.r_a_1 Bool) (top.usr.t_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.k_a_1 Int) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.k0_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.r_a_0 Bool) (top.usr.t_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) (= top.res.abs_2_a_1 (and (and (>= top.impl.usr.k_a_1 1) (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) (=> (>= top.res.abs_1_a_1 top.impl.usr.k_a_1) top.usr.t_a_1))) (let ((X1 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (=> (>= top.res.abs_5_a_1 top.impl.usr.k_a_1) (and top.usr.q_a_1 top.usr.t_a_1)))) (= top.res.abs_4_a_1 (and top.usr.p_a_1 top.usr.r_a_1)) (__node_trans_Sofar_0 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Age_0 top.usr.p_a_1 top.res.abs_0_a_1 top.res.inst_2_a_1 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_2_a_0) (__node_trans_Age_0 top.usr.r_a_1 top.res.abs_1_a_1 top.res.inst_1_a_1 top.usr.r_a_0 top.res.abs_1_a_0 top.res.inst_1_a_0) (__node_trans_Age_0 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_0_a_1 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.k top.usr.k0) (= top.res.abs_2 (and (and (>= top.impl.usr.k 1) (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) (=> (>= top.res.abs_1 top.impl.usr.k) top.usr.t))) (let ((X1 top.res.abs_3)) (and (= top.usr.OK (=> X1 (=> (>= top.res.abs_5 top.impl.usr.k) (and top.usr.q top.usr.t)))) (= top.res.abs_4 (and top.usr.p top.usr.r)) (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_2) (__node_init_Age_0 top.usr.r top.res.abs_1 top.res.inst_1) (__node_init_Age_0 top.res.abs_4 top.res.abs_5 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.k0! Int) (top.usr.p! Bool) (top.usr.q! Bool) (top.usr.r! Bool) (top.usr.t! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.k! Int) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.abs_4! Bool) (top.res.abs_5! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.k! top.impl.usr.k) (= top.res.abs_2! (and (and (>= top.impl.usr.k! 1) (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) (=> (>= top.res.abs_1! top.impl.usr.k!) top.usr.t!))) (let ((X1 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (=> (>= top.res.abs_5! top.impl.usr.k!) (and top.usr.q! top.usr.t!)))) (= top.res.abs_4! (and top.usr.p! top.usr.r!)) (__node_trans_Sofar_0 top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Age_0 top.usr.p! top.res.abs_0! top.res.inst_2! top.usr.p top.res.abs_0 top.res.inst_2) (__node_trans_Age_0 top.usr.r! top.res.abs_1! top.res.inst_1! top.usr.r top.res.abs_1 top.res.inst_1) (__node_trans_Age_0 top.res.abs_4! top.res.abs_5! top.res.inst_0! top.res.abs_4 top.res.abs_5 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/durationThm_2_e1_301.sl b/benchmarks/LIA/Lustre/durationThm_2_e1_301.sl index 0536681..d08b1b0 100644 --- a/benchmarks/LIA/Lustre/durationThm_2_e1_301.sl +++ b/benchmarks/LIA/Lustre/durationThm_2_e1_301.sl @@ -1,404 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_Age_0 ( - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0) -) - -(define-fun - __node_trans_Age_0 ( - (Age.usr.p_a_1 Bool) - (Age.usr.age_of_p_a_1 Int) - (Age.res.init_flag_a_1 Bool) - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (+ (+ Age.usr.age_of_p_a_0 1) 1) 0)) - (not Age.res.init_flag_a_1)) -) - -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.k0_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.r_a_0 Bool) - (top.usr.t_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.k_a_0 top.usr.k0_a_0) - (= - top.res.abs_2_a_0 - (and - (and - (>= top.impl.usr.k_a_0 1) - (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) - (=> (>= top.res.abs_1_a_0 top.impl.usr.k_a_0) top.usr.t_a_0))) - (let - ((X1 Bool top.res.abs_3_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (=> - (>= top.res.abs_5_a_0 top.impl.usr.k_a_0) - (and top.usr.q_a_0 top.usr.t_a_0)))) - (= top.res.abs_4_a_0 (and top.usr.p_a_0 top.usr.r_a_0)) - (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) - (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_2_a_0) - (__node_init_Age_0 top.usr.r_a_0 top.res.abs_1_a_0 top.res.inst_1_a_0) - (__node_init_Age_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.k0_a_1 Int) - (top.usr.p_a_1 Bool) - (top.usr.q_a_1 Bool) - (top.usr.r_a_1 Bool) - (top.usr.t_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.k_a_1 Int) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.k0_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.r_a_0 Bool) - (top.usr.t_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) - (= - top.res.abs_2_a_1 - (and - (and - (>= top.impl.usr.k_a_1 1) - (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) - (=> (>= top.res.abs_1_a_1 top.impl.usr.k_a_1) top.usr.t_a_1))) - (let - ((X1 Bool top.res.abs_3_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (=> - (>= top.res.abs_5_a_1 top.impl.usr.k_a_1) - (and top.usr.q_a_1 top.usr.t_a_1)))) - (= top.res.abs_4_a_1 (and top.usr.p_a_1 top.usr.r_a_1)) - (__node_trans_Sofar_0 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_trans_Age_0 - top.usr.p_a_1 - top.res.abs_0_a_1 - top.res.inst_2_a_1 - top.usr.p_a_0 - top.res.abs_0_a_0 - top.res.inst_2_a_0) - (__node_trans_Age_0 - top.usr.r_a_1 - top.res.abs_1_a_1 - top.res.inst_1_a_1 - top.usr.r_a_0 - top.res.abs_1_a_0 - top.res.inst_1_a_0) - (__node_trans_Age_0 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_0_a_1 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.k0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.t Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.k0 Int) -(declare-primed-var top.usr.p Bool) -(declare-primed-var top.usr.q Bool) -(declare-primed-var top.usr.r Bool) -(declare-primed-var top.usr.t Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.k Int) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.k0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.t Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.impl.usr.k top.usr.k0) - (= - top.res.abs_2 - (and - (and - (>= top.impl.usr.k 1) - (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) - (=> (>= top.res.abs_1 top.impl.usr.k) top.usr.t))) - (let - ((X1 Bool top.res.abs_3)) - (and - (= - top.usr.OK - (=> - X1 - (=> (>= top.res.abs_5 top.impl.usr.k) (and top.usr.q top.usr.t)))) - (= top.res.abs_4 (and top.usr.p top.usr.r)) - (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_3) - (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_2) - (__node_init_Age_0 top.usr.r top.res.abs_1 top.res.inst_1) - (__node_init_Age_0 top.res.abs_4 top.res.abs_5 top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.k0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.t Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.k0! Int) - (top.usr.p! Bool) - (top.usr.q! Bool) - (top.usr.r! Bool) - (top.usr.t! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.k! Int) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.abs_4! Bool) - (top.res.abs_5! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.impl.usr.k! top.impl.usr.k) - (= - top.res.abs_2! - (and - (and - (>= top.impl.usr.k! 1) - (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) - (=> (>= top.res.abs_1! top.impl.usr.k!) top.usr.t!))) - (let - ((X1 Bool top.res.abs_3!)) - (and - (= - top.usr.OK! - (=> - X1 - (=> (>= top.res.abs_5! top.impl.usr.k!) (and top.usr.q! top.usr.t!)))) - (= top.res.abs_4! (and top.usr.p! top.usr.r!)) - (__node_trans_Sofar_0 - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_trans_Age_0 - top.usr.p! - top.res.abs_0! - top.res.inst_2! - top.usr.p - top.res.abs_0 - top.res.inst_2) - (__node_trans_Age_0 - top.usr.r! - top.res.abs_1! - top.res.inst_1! - top.usr.r - top.res.abs_1 - top.res.inst_1) - (__node_trans_Age_0 - top.res.abs_4! - top.res.abs_5! - top.res.inst_0! - top.res.abs_4 - top.res.abs_5 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.k0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.t Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Age_0 ((Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0)) +(define-fun __node_trans_Age_0 ((Age.usr.p_a_1 Bool) (Age.usr.age_of_p_a_1 Int) (Age.res.init_flag_a_1 Bool) (Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (+ (+ Age.usr.age_of_p_a_0 1) 1) 0)) (not Age.res.init_flag_a_1))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.k0_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.r_a_0 Bool) (top.usr.t_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.k_a_0 top.usr.k0_a_0) (= top.res.abs_2_a_0 (and (and (>= top.impl.usr.k_a_0 1) (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) (=> (>= top.res.abs_1_a_0 top.impl.usr.k_a_0) top.usr.t_a_0))) (let ((X1 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (=> (>= top.res.abs_5_a_0 top.impl.usr.k_a_0) (and top.usr.q_a_0 top.usr.t_a_0)))) (= top.res.abs_4_a_0 (and top.usr.p_a_0 top.usr.r_a_0)) (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_2_a_0) (__node_init_Age_0 top.usr.r_a_0 top.res.abs_1_a_0 top.res.inst_1_a_0) (__node_init_Age_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.k0_a_1 Int) (top.usr.p_a_1 Bool) (top.usr.q_a_1 Bool) (top.usr.r_a_1 Bool) (top.usr.t_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.k_a_1 Int) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.k0_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.r_a_0 Bool) (top.usr.t_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) (= top.res.abs_2_a_1 (and (and (>= top.impl.usr.k_a_1 1) (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) (=> (>= top.res.abs_1_a_1 top.impl.usr.k_a_1) top.usr.t_a_1))) (let ((X1 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (=> (>= top.res.abs_5_a_1 top.impl.usr.k_a_1) (and top.usr.q_a_1 top.usr.t_a_1)))) (= top.res.abs_4_a_1 (and top.usr.p_a_1 top.usr.r_a_1)) (__node_trans_Sofar_0 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Age_0 top.usr.p_a_1 top.res.abs_0_a_1 top.res.inst_2_a_1 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_2_a_0) (__node_trans_Age_0 top.usr.r_a_1 top.res.abs_1_a_1 top.res.inst_1_a_1 top.usr.r_a_0 top.res.abs_1_a_0 top.res.inst_1_a_0) (__node_trans_Age_0 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_0_a_1 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.k top.usr.k0) (= top.res.abs_2 (and (and (>= top.impl.usr.k 1) (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) (=> (>= top.res.abs_1 top.impl.usr.k) top.usr.t))) (let ((X1 top.res.abs_3)) (and (= top.usr.OK (=> X1 (=> (>= top.res.abs_5 top.impl.usr.k) (and top.usr.q top.usr.t)))) (= top.res.abs_4 (and top.usr.p top.usr.r)) (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_2) (__node_init_Age_0 top.usr.r top.res.abs_1 top.res.inst_1) (__node_init_Age_0 top.res.abs_4 top.res.abs_5 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.k0! Int) (top.usr.p! Bool) (top.usr.q! Bool) (top.usr.r! Bool) (top.usr.t! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.k! Int) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.abs_4! Bool) (top.res.abs_5! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.k! top.impl.usr.k) (= top.res.abs_2! (and (and (>= top.impl.usr.k! 1) (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) (=> (>= top.res.abs_1! top.impl.usr.k!) top.usr.t!))) (let ((X1 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (=> (>= top.res.abs_5! top.impl.usr.k!) (and top.usr.q! top.usr.t!)))) (= top.res.abs_4! (and top.usr.p! top.usr.r!)) (__node_trans_Sofar_0 top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Age_0 top.usr.p! top.res.abs_0! top.res.inst_2! top.usr.p top.res.abs_0 top.res.inst_2) (__node_trans_Age_0 top.usr.r! top.res.abs_1! top.res.inst_1! top.usr.r top.res.abs_1 top.res.inst_1) (__node_trans_Age_0 top.res.abs_4! top.res.abs_5! top.res.inst_0! top.res.abs_4 top.res.abs_5 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/durationThm_2_e2_63.sl b/benchmarks/LIA/Lustre/durationThm_2_e2_63.sl index b40e28b..f1a95d5 100644 --- a/benchmarks/LIA/Lustre/durationThm_2_e2_63.sl +++ b/benchmarks/LIA/Lustre/durationThm_2_e2_63.sl @@ -1,404 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_Age_0 ( - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0) -) - -(define-fun - __node_trans_Age_0 ( - (Age.usr.p_a_1 Bool) - (Age.usr.age_of_p_a_1 Int) - (Age.res.init_flag_a_1 Bool) - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (+ (- Age.usr.age_of_p_a_0 1) 1) 0)) - (not Age.res.init_flag_a_1)) -) - -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.k0_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.r_a_0 Bool) - (top.usr.t_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.k_a_0 top.usr.k0_a_0) - (= - top.res.abs_2_a_0 - (and - (and - (>= top.impl.usr.k_a_0 1) - (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) - (=> (>= top.res.abs_1_a_0 top.impl.usr.k_a_0) top.usr.t_a_0))) - (let - ((X1 Bool top.res.abs_3_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (=> - (>= top.res.abs_5_a_0 top.impl.usr.k_a_0) - (and top.usr.q_a_0 top.usr.t_a_0)))) - (= top.res.abs_4_a_0 (and top.usr.p_a_0 top.usr.r_a_0)) - (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) - (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_2_a_0) - (__node_init_Age_0 top.usr.r_a_0 top.res.abs_1_a_0 top.res.inst_1_a_0) - (__node_init_Age_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.k0_a_1 Int) - (top.usr.p_a_1 Bool) - (top.usr.q_a_1 Bool) - (top.usr.r_a_1 Bool) - (top.usr.t_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.k_a_1 Int) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.k0_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.r_a_0 Bool) - (top.usr.t_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) - (= - top.res.abs_2_a_1 - (and - (and - (>= top.impl.usr.k_a_1 1) - (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) - (=> (>= top.res.abs_1_a_1 top.impl.usr.k_a_1) top.usr.t_a_1))) - (let - ((X1 Bool top.res.abs_3_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (=> - (>= top.res.abs_5_a_1 top.impl.usr.k_a_1) - (and top.usr.q_a_1 top.usr.t_a_1)))) - (= top.res.abs_4_a_1 (and top.usr.p_a_1 top.usr.r_a_1)) - (__node_trans_Sofar_0 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_trans_Age_0 - top.usr.p_a_1 - top.res.abs_0_a_1 - top.res.inst_2_a_1 - top.usr.p_a_0 - top.res.abs_0_a_0 - top.res.inst_2_a_0) - (__node_trans_Age_0 - top.usr.r_a_1 - top.res.abs_1_a_1 - top.res.inst_1_a_1 - top.usr.r_a_0 - top.res.abs_1_a_0 - top.res.inst_1_a_0) - (__node_trans_Age_0 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_0_a_1 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.k0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.t Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.k0 Int) -(declare-primed-var top.usr.p Bool) -(declare-primed-var top.usr.q Bool) -(declare-primed-var top.usr.r Bool) -(declare-primed-var top.usr.t Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.k Int) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.k0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.t Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.impl.usr.k top.usr.k0) - (= - top.res.abs_2 - (and - (and - (>= top.impl.usr.k 1) - (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) - (=> (>= top.res.abs_1 top.impl.usr.k) top.usr.t))) - (let - ((X1 Bool top.res.abs_3)) - (and - (= - top.usr.OK - (=> - X1 - (=> (>= top.res.abs_5 top.impl.usr.k) (and top.usr.q top.usr.t)))) - (= top.res.abs_4 (and top.usr.p top.usr.r)) - (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_3) - (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_2) - (__node_init_Age_0 top.usr.r top.res.abs_1 top.res.inst_1) - (__node_init_Age_0 top.res.abs_4 top.res.abs_5 top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.k0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.t Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.k0! Int) - (top.usr.p! Bool) - (top.usr.q! Bool) - (top.usr.r! Bool) - (top.usr.t! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.k! Int) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.abs_4! Bool) - (top.res.abs_5! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.impl.usr.k! top.impl.usr.k) - (= - top.res.abs_2! - (and - (and - (>= top.impl.usr.k! 1) - (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) - (=> (>= top.res.abs_1! top.impl.usr.k!) top.usr.t!))) - (let - ((X1 Bool top.res.abs_3!)) - (and - (= - top.usr.OK! - (=> - X1 - (=> (>= top.res.abs_5! top.impl.usr.k!) (and top.usr.q! top.usr.t!)))) - (= top.res.abs_4! (and top.usr.p! top.usr.r!)) - (__node_trans_Sofar_0 - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_trans_Age_0 - top.usr.p! - top.res.abs_0! - top.res.inst_2! - top.usr.p - top.res.abs_0 - top.res.inst_2) - (__node_trans_Age_0 - top.usr.r! - top.res.abs_1! - top.res.inst_1! - top.usr.r - top.res.abs_1 - top.res.inst_1) - (__node_trans_Age_0 - top.res.abs_4! - top.res.abs_5! - top.res.inst_0! - top.res.abs_4 - top.res.abs_5 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.k0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.t Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Age_0 ((Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0)) +(define-fun __node_trans_Age_0 ((Age.usr.p_a_1 Bool) (Age.usr.age_of_p_a_1 Int) (Age.res.init_flag_a_1 Bool) (Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (+ (- Age.usr.age_of_p_a_0 1) 1) 0)) (not Age.res.init_flag_a_1))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.k0_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.r_a_0 Bool) (top.usr.t_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.k_a_0 top.usr.k0_a_0) (= top.res.abs_2_a_0 (and (and (>= top.impl.usr.k_a_0 1) (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) (=> (>= top.res.abs_1_a_0 top.impl.usr.k_a_0) top.usr.t_a_0))) (let ((X1 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (=> (>= top.res.abs_5_a_0 top.impl.usr.k_a_0) (and top.usr.q_a_0 top.usr.t_a_0)))) (= top.res.abs_4_a_0 (and top.usr.p_a_0 top.usr.r_a_0)) (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_2_a_0) (__node_init_Age_0 top.usr.r_a_0 top.res.abs_1_a_0 top.res.inst_1_a_0) (__node_init_Age_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.k0_a_1 Int) (top.usr.p_a_1 Bool) (top.usr.q_a_1 Bool) (top.usr.r_a_1 Bool) (top.usr.t_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.k_a_1 Int) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.k0_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.r_a_0 Bool) (top.usr.t_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) (= top.res.abs_2_a_1 (and (and (>= top.impl.usr.k_a_1 1) (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) (=> (>= top.res.abs_1_a_1 top.impl.usr.k_a_1) top.usr.t_a_1))) (let ((X1 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (=> (>= top.res.abs_5_a_1 top.impl.usr.k_a_1) (and top.usr.q_a_1 top.usr.t_a_1)))) (= top.res.abs_4_a_1 (and top.usr.p_a_1 top.usr.r_a_1)) (__node_trans_Sofar_0 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Age_0 top.usr.p_a_1 top.res.abs_0_a_1 top.res.inst_2_a_1 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_2_a_0) (__node_trans_Age_0 top.usr.r_a_1 top.res.abs_1_a_1 top.res.inst_1_a_1 top.usr.r_a_0 top.res.abs_1_a_0 top.res.inst_1_a_0) (__node_trans_Age_0 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_0_a_1 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.k top.usr.k0) (= top.res.abs_2 (and (and (>= top.impl.usr.k 1) (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) (=> (>= top.res.abs_1 top.impl.usr.k) top.usr.t))) (let ((X1 top.res.abs_3)) (and (= top.usr.OK (=> X1 (=> (>= top.res.abs_5 top.impl.usr.k) (and top.usr.q top.usr.t)))) (= top.res.abs_4 (and top.usr.p top.usr.r)) (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_2) (__node_init_Age_0 top.usr.r top.res.abs_1 top.res.inst_1) (__node_init_Age_0 top.res.abs_4 top.res.abs_5 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.k0! Int) (top.usr.p! Bool) (top.usr.q! Bool) (top.usr.r! Bool) (top.usr.t! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.k! Int) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.abs_4! Bool) (top.res.abs_5! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.k! top.impl.usr.k) (= top.res.abs_2! (and (and (>= top.impl.usr.k! 1) (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) (=> (>= top.res.abs_1! top.impl.usr.k!) top.usr.t!))) (let ((X1 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (=> (>= top.res.abs_5! top.impl.usr.k!) (and top.usr.q! top.usr.t!)))) (= top.res.abs_4! (and top.usr.p! top.usr.r!)) (__node_trans_Sofar_0 top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Age_0 top.usr.p! top.res.abs_0! top.res.inst_2! top.usr.p top.res.abs_0 top.res.inst_2) (__node_trans_Age_0 top.usr.r! top.res.abs_1! top.res.inst_1! top.usr.r top.res.abs_1 top.res.inst_1) (__node_trans_Age_0 top.res.abs_4! top.res.abs_5! top.res.inst_0! top.res.abs_4 top.res.abs_5 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/durationThm_2_e3_329_e4_1.sl b/benchmarks/LIA/Lustre/durationThm_2_e3_329_e4_1.sl index 4f9b7b9..da4ee57 100644 --- a/benchmarks/LIA/Lustre/durationThm_2_e3_329_e4_1.sl +++ b/benchmarks/LIA/Lustre/durationThm_2_e3_329_e4_1.sl @@ -1,404 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_Age_0 ( - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0) -) - -(define-fun - __node_trans_Age_0 ( - (Age.usr.p_a_1 Bool) - (Age.usr.age_of_p_a_1 Int) - (Age.res.init_flag_a_1 Bool) - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (- (+ Age.usr.age_of_p_a_0 1) 1) 0)) - (not Age.res.init_flag_a_1)) -) - -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.k0_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.r_a_0 Bool) - (top.usr.t_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.k_a_0 top.usr.k0_a_0) - (= - top.res.abs_2_a_0 - (and - (and - (>= top.impl.usr.k_a_0 1) - (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) - (=> (>= top.res.abs_1_a_0 top.impl.usr.k_a_0) top.usr.t_a_0))) - (let - ((X1 Bool top.res.abs_3_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (=> - (>= top.res.abs_5_a_0 top.impl.usr.k_a_0) - (and top.usr.q_a_0 top.usr.t_a_0)))) - (= top.res.abs_4_a_0 (and top.usr.p_a_0 top.usr.r_a_0)) - (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) - (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_2_a_0) - (__node_init_Age_0 top.usr.r_a_0 top.res.abs_1_a_0 top.res.inst_1_a_0) - (__node_init_Age_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.k0_a_1 Int) - (top.usr.p_a_1 Bool) - (top.usr.q_a_1 Bool) - (top.usr.r_a_1 Bool) - (top.usr.t_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.k_a_1 Int) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.k0_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.r_a_0 Bool) - (top.usr.t_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) - (= - top.res.abs_2_a_1 - (and - (and - (>= top.impl.usr.k_a_1 1) - (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) - (=> (>= top.res.abs_1_a_1 top.impl.usr.k_a_1) top.usr.t_a_1))) - (let - ((X1 Bool top.res.abs_3_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (=> - (>= top.res.abs_5_a_1 top.impl.usr.k_a_1) - (and top.usr.q_a_1 top.usr.t_a_1)))) - (= top.res.abs_4_a_1 (and top.usr.p_a_1 top.usr.r_a_1)) - (__node_trans_Sofar_0 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_trans_Age_0 - top.usr.p_a_1 - top.res.abs_0_a_1 - top.res.inst_2_a_1 - top.usr.p_a_0 - top.res.abs_0_a_0 - top.res.inst_2_a_0) - (__node_trans_Age_0 - top.usr.r_a_1 - top.res.abs_1_a_1 - top.res.inst_1_a_1 - top.usr.r_a_0 - top.res.abs_1_a_0 - top.res.inst_1_a_0) - (__node_trans_Age_0 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_0_a_1 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.k0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.t Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.k0 Int) -(declare-primed-var top.usr.p Bool) -(declare-primed-var top.usr.q Bool) -(declare-primed-var top.usr.r Bool) -(declare-primed-var top.usr.t Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.k Int) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.k0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.t Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.impl.usr.k top.usr.k0) - (= - top.res.abs_2 - (and - (and - (>= top.impl.usr.k 1) - (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) - (=> (>= top.res.abs_1 top.impl.usr.k) top.usr.t))) - (let - ((X1 Bool top.res.abs_3)) - (and - (= - top.usr.OK - (=> - X1 - (=> (>= top.res.abs_5 top.impl.usr.k) (and top.usr.q top.usr.t)))) - (= top.res.abs_4 (and top.usr.p top.usr.r)) - (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_3) - (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_2) - (__node_init_Age_0 top.usr.r top.res.abs_1 top.res.inst_1) - (__node_init_Age_0 top.res.abs_4 top.res.abs_5 top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.k0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.t Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.k0! Int) - (top.usr.p! Bool) - (top.usr.q! Bool) - (top.usr.r! Bool) - (top.usr.t! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.k! Int) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.abs_4! Bool) - (top.res.abs_5! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.impl.usr.k! top.impl.usr.k) - (= - top.res.abs_2! - (and - (and - (>= top.impl.usr.k! 1) - (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) - (=> (>= top.res.abs_1! top.impl.usr.k!) top.usr.t!))) - (let - ((X1 Bool top.res.abs_3!)) - (and - (= - top.usr.OK! - (=> - X1 - (=> (>= top.res.abs_5! top.impl.usr.k!) (and top.usr.q! top.usr.t!)))) - (= top.res.abs_4! (and top.usr.p! top.usr.r!)) - (__node_trans_Sofar_0 - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_trans_Age_0 - top.usr.p! - top.res.abs_0! - top.res.inst_2! - top.usr.p - top.res.abs_0 - top.res.inst_2) - (__node_trans_Age_0 - top.usr.r! - top.res.abs_1! - top.res.inst_1! - top.usr.r - top.res.abs_1 - top.res.inst_1) - (__node_trans_Age_0 - top.res.abs_4! - top.res.abs_5! - top.res.inst_0! - top.res.abs_4 - top.res.abs_5 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.k0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.t Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Age_0 ((Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0)) +(define-fun __node_trans_Age_0 ((Age.usr.p_a_1 Bool) (Age.usr.age_of_p_a_1 Int) (Age.res.init_flag_a_1 Bool) (Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (- (+ Age.usr.age_of_p_a_0 1) 1) 0)) (not Age.res.init_flag_a_1))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.k0_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.r_a_0 Bool) (top.usr.t_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.k_a_0 top.usr.k0_a_0) (= top.res.abs_2_a_0 (and (and (>= top.impl.usr.k_a_0 1) (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) (=> (>= top.res.abs_1_a_0 top.impl.usr.k_a_0) top.usr.t_a_0))) (let ((X1 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (=> (>= top.res.abs_5_a_0 top.impl.usr.k_a_0) (and top.usr.q_a_0 top.usr.t_a_0)))) (= top.res.abs_4_a_0 (and top.usr.p_a_0 top.usr.r_a_0)) (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_2_a_0) (__node_init_Age_0 top.usr.r_a_0 top.res.abs_1_a_0 top.res.inst_1_a_0) (__node_init_Age_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.k0_a_1 Int) (top.usr.p_a_1 Bool) (top.usr.q_a_1 Bool) (top.usr.r_a_1 Bool) (top.usr.t_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.k_a_1 Int) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.k0_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.r_a_0 Bool) (top.usr.t_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) (= top.res.abs_2_a_1 (and (and (>= top.impl.usr.k_a_1 1) (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) (=> (>= top.res.abs_1_a_1 top.impl.usr.k_a_1) top.usr.t_a_1))) (let ((X1 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (=> (>= top.res.abs_5_a_1 top.impl.usr.k_a_1) (and top.usr.q_a_1 top.usr.t_a_1)))) (= top.res.abs_4_a_1 (and top.usr.p_a_1 top.usr.r_a_1)) (__node_trans_Sofar_0 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Age_0 top.usr.p_a_1 top.res.abs_0_a_1 top.res.inst_2_a_1 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_2_a_0) (__node_trans_Age_0 top.usr.r_a_1 top.res.abs_1_a_1 top.res.inst_1_a_1 top.usr.r_a_0 top.res.abs_1_a_0 top.res.inst_1_a_0) (__node_trans_Age_0 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_0_a_1 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.k top.usr.k0) (= top.res.abs_2 (and (and (>= top.impl.usr.k 1) (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) (=> (>= top.res.abs_1 top.impl.usr.k) top.usr.t))) (let ((X1 top.res.abs_3)) (and (= top.usr.OK (=> X1 (=> (>= top.res.abs_5 top.impl.usr.k) (and top.usr.q top.usr.t)))) (= top.res.abs_4 (and top.usr.p top.usr.r)) (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_2) (__node_init_Age_0 top.usr.r top.res.abs_1 top.res.inst_1) (__node_init_Age_0 top.res.abs_4 top.res.abs_5 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.k0! Int) (top.usr.p! Bool) (top.usr.q! Bool) (top.usr.r! Bool) (top.usr.t! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.k! Int) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.abs_4! Bool) (top.res.abs_5! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.k! top.impl.usr.k) (= top.res.abs_2! (and (and (>= top.impl.usr.k! 1) (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) (=> (>= top.res.abs_1! top.impl.usr.k!) top.usr.t!))) (let ((X1 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (=> (>= top.res.abs_5! top.impl.usr.k!) (and top.usr.q! top.usr.t!)))) (= top.res.abs_4! (and top.usr.p! top.usr.r!)) (__node_trans_Sofar_0 top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Age_0 top.usr.p! top.res.abs_0! top.res.inst_2! top.usr.p top.res.abs_0 top.res.inst_2) (__node_trans_Age_0 top.usr.r! top.res.abs_1! top.res.inst_1! top.usr.r top.res.abs_1 top.res.inst_1) (__node_trans_Age_0 top.res.abs_4! top.res.abs_5! top.res.inst_0! top.res.abs_4 top.res.abs_5 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/durationThm_2_e3_329_e5_124.sl b/benchmarks/LIA/Lustre/durationThm_2_e3_329_e5_124.sl index 132a042..8be8107 100644 --- a/benchmarks/LIA/Lustre/durationThm_2_e3_329_e5_124.sl +++ b/benchmarks/LIA/Lustre/durationThm_2_e3_329_e5_124.sl @@ -1,404 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_Age_0 ( - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0) -) - -(define-fun - __node_trans_Age_0 ( - (Age.usr.p_a_1 Bool) - (Age.usr.age_of_p_a_1 Int) - (Age.res.init_flag_a_1 Bool) - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (- (- Age.usr.age_of_p_a_0 1) 1) 0)) - (not Age.res.init_flag_a_1)) -) - -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.k0_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.r_a_0 Bool) - (top.usr.t_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.k_a_0 top.usr.k0_a_0) - (= - top.res.abs_2_a_0 - (and - (and - (>= top.impl.usr.k_a_0 1) - (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) - (=> (>= top.res.abs_1_a_0 top.impl.usr.k_a_0) top.usr.t_a_0))) - (let - ((X1 Bool top.res.abs_3_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (=> - (>= top.res.abs_5_a_0 top.impl.usr.k_a_0) - (and top.usr.q_a_0 top.usr.t_a_0)))) - (= top.res.abs_4_a_0 (and top.usr.p_a_0 top.usr.r_a_0)) - (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) - (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_2_a_0) - (__node_init_Age_0 top.usr.r_a_0 top.res.abs_1_a_0 top.res.inst_1_a_0) - (__node_init_Age_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.k0_a_1 Int) - (top.usr.p_a_1 Bool) - (top.usr.q_a_1 Bool) - (top.usr.r_a_1 Bool) - (top.usr.t_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.k_a_1 Int) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.k0_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.r_a_0 Bool) - (top.usr.t_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) - (= - top.res.abs_2_a_1 - (and - (and - (>= top.impl.usr.k_a_1 1) - (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) - (=> (>= top.res.abs_1_a_1 top.impl.usr.k_a_1) top.usr.t_a_1))) - (let - ((X1 Bool top.res.abs_3_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (=> - (>= top.res.abs_5_a_1 top.impl.usr.k_a_1) - (and top.usr.q_a_1 top.usr.t_a_1)))) - (= top.res.abs_4_a_1 (and top.usr.p_a_1 top.usr.r_a_1)) - (__node_trans_Sofar_0 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_trans_Age_0 - top.usr.p_a_1 - top.res.abs_0_a_1 - top.res.inst_2_a_1 - top.usr.p_a_0 - top.res.abs_0_a_0 - top.res.inst_2_a_0) - (__node_trans_Age_0 - top.usr.r_a_1 - top.res.abs_1_a_1 - top.res.inst_1_a_1 - top.usr.r_a_0 - top.res.abs_1_a_0 - top.res.inst_1_a_0) - (__node_trans_Age_0 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_0_a_1 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.k0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.t Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.k0 Int) -(declare-primed-var top.usr.p Bool) -(declare-primed-var top.usr.q Bool) -(declare-primed-var top.usr.r Bool) -(declare-primed-var top.usr.t Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.k Int) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.k0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.t Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.impl.usr.k top.usr.k0) - (= - top.res.abs_2 - (and - (and - (>= top.impl.usr.k 1) - (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) - (=> (>= top.res.abs_1 top.impl.usr.k) top.usr.t))) - (let - ((X1 Bool top.res.abs_3)) - (and - (= - top.usr.OK - (=> - X1 - (=> (>= top.res.abs_5 top.impl.usr.k) (and top.usr.q top.usr.t)))) - (= top.res.abs_4 (and top.usr.p top.usr.r)) - (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_3) - (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_2) - (__node_init_Age_0 top.usr.r top.res.abs_1 top.res.inst_1) - (__node_init_Age_0 top.res.abs_4 top.res.abs_5 top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.k0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.t Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.k0! Int) - (top.usr.p! Bool) - (top.usr.q! Bool) - (top.usr.r! Bool) - (top.usr.t! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.k! Int) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.abs_4! Bool) - (top.res.abs_5! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.impl.usr.k! top.impl.usr.k) - (= - top.res.abs_2! - (and - (and - (>= top.impl.usr.k! 1) - (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) - (=> (>= top.res.abs_1! top.impl.usr.k!) top.usr.t!))) - (let - ((X1 Bool top.res.abs_3!)) - (and - (= - top.usr.OK! - (=> - X1 - (=> (>= top.res.abs_5! top.impl.usr.k!) (and top.usr.q! top.usr.t!)))) - (= top.res.abs_4! (and top.usr.p! top.usr.r!)) - (__node_trans_Sofar_0 - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_trans_Age_0 - top.usr.p! - top.res.abs_0! - top.res.inst_2! - top.usr.p - top.res.abs_0 - top.res.inst_2) - (__node_trans_Age_0 - top.usr.r! - top.res.abs_1! - top.res.inst_1! - top.usr.r - top.res.abs_1 - top.res.inst_1) - (__node_trans_Age_0 - top.res.abs_4! - top.res.abs_5! - top.res.inst_0! - top.res.abs_4 - top.res.abs_5 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.k0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.t Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Age_0 ((Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0)) +(define-fun __node_trans_Age_0 ((Age.usr.p_a_1 Bool) (Age.usr.age_of_p_a_1 Int) (Age.res.init_flag_a_1 Bool) (Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (- (- Age.usr.age_of_p_a_0 1) 1) 0)) (not Age.res.init_flag_a_1))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.k0_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.r_a_0 Bool) (top.usr.t_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.k_a_0 top.usr.k0_a_0) (= top.res.abs_2_a_0 (and (and (>= top.impl.usr.k_a_0 1) (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) (=> (>= top.res.abs_1_a_0 top.impl.usr.k_a_0) top.usr.t_a_0))) (let ((X1 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (=> (>= top.res.abs_5_a_0 top.impl.usr.k_a_0) (and top.usr.q_a_0 top.usr.t_a_0)))) (= top.res.abs_4_a_0 (and top.usr.p_a_0 top.usr.r_a_0)) (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_2_a_0) (__node_init_Age_0 top.usr.r_a_0 top.res.abs_1_a_0 top.res.inst_1_a_0) (__node_init_Age_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.k0_a_1 Int) (top.usr.p_a_1 Bool) (top.usr.q_a_1 Bool) (top.usr.r_a_1 Bool) (top.usr.t_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.k_a_1 Int) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.k0_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.r_a_0 Bool) (top.usr.t_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) (= top.res.abs_2_a_1 (and (and (>= top.impl.usr.k_a_1 1) (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) (=> (>= top.res.abs_1_a_1 top.impl.usr.k_a_1) top.usr.t_a_1))) (let ((X1 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (=> (>= top.res.abs_5_a_1 top.impl.usr.k_a_1) (and top.usr.q_a_1 top.usr.t_a_1)))) (= top.res.abs_4_a_1 (and top.usr.p_a_1 top.usr.r_a_1)) (__node_trans_Sofar_0 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Age_0 top.usr.p_a_1 top.res.abs_0_a_1 top.res.inst_2_a_1 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_2_a_0) (__node_trans_Age_0 top.usr.r_a_1 top.res.abs_1_a_1 top.res.inst_1_a_1 top.usr.r_a_0 top.res.abs_1_a_0 top.res.inst_1_a_0) (__node_trans_Age_0 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_0_a_1 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.k top.usr.k0) (= top.res.abs_2 (and (and (>= top.impl.usr.k 1) (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) (=> (>= top.res.abs_1 top.impl.usr.k) top.usr.t))) (let ((X1 top.res.abs_3)) (and (= top.usr.OK (=> X1 (=> (>= top.res.abs_5 top.impl.usr.k) (and top.usr.q top.usr.t)))) (= top.res.abs_4 (and top.usr.p top.usr.r)) (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_2) (__node_init_Age_0 top.usr.r top.res.abs_1 top.res.inst_1) (__node_init_Age_0 top.res.abs_4 top.res.abs_5 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.k0! Int) (top.usr.p! Bool) (top.usr.q! Bool) (top.usr.r! Bool) (top.usr.t! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.k! Int) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.abs_4! Bool) (top.res.abs_5! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.k! top.impl.usr.k) (= top.res.abs_2! (and (and (>= top.impl.usr.k! 1) (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) (=> (>= top.res.abs_1! top.impl.usr.k!) top.usr.t!))) (let ((X1 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (=> (>= top.res.abs_5! top.impl.usr.k!) (and top.usr.q! top.usr.t!)))) (= top.res.abs_4! (and top.usr.p! top.usr.r!)) (__node_trans_Sofar_0 top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Age_0 top.usr.p! top.res.abs_0! top.res.inst_2! top.usr.p top.res.abs_0 top.res.inst_2) (__node_trans_Age_0 top.usr.r! top.res.abs_1! top.res.inst_1! top.usr.r top.res.abs_1 top.res.inst_1) (__node_trans_Age_0 top.res.abs_4! top.res.abs_5! top.res.inst_0! top.res.abs_4 top.res.abs_5 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/durationThm_2_e3_99.sl b/benchmarks/LIA/Lustre/durationThm_2_e3_99.sl index 2e54f1c..66e8243 100644 --- a/benchmarks/LIA/Lustre/durationThm_2_e3_99.sl +++ b/benchmarks/LIA/Lustre/durationThm_2_e3_99.sl @@ -1,404 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_Age_0 ( - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0) -) - -(define-fun - __node_trans_Age_0 ( - (Age.usr.p_a_1 Bool) - (Age.usr.age_of_p_a_1 Int) - (Age.res.init_flag_a_1 Bool) - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (- Age.usr.age_of_p_a_0 1) 0)) - (not Age.res.init_flag_a_1)) -) - -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.k0_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.r_a_0 Bool) - (top.usr.t_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.k_a_0 top.usr.k0_a_0) - (= - top.res.abs_2_a_0 - (and - (and - (>= top.impl.usr.k_a_0 1) - (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) - (=> (>= top.res.abs_1_a_0 top.impl.usr.k_a_0) top.usr.t_a_0))) - (let - ((X1 Bool top.res.abs_3_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (=> - (>= top.res.abs_5_a_0 top.impl.usr.k_a_0) - (and top.usr.q_a_0 top.usr.t_a_0)))) - (= top.res.abs_4_a_0 (and top.usr.p_a_0 top.usr.r_a_0)) - (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) - (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_2_a_0) - (__node_init_Age_0 top.usr.r_a_0 top.res.abs_1_a_0 top.res.inst_1_a_0) - (__node_init_Age_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.k0_a_1 Int) - (top.usr.p_a_1 Bool) - (top.usr.q_a_1 Bool) - (top.usr.r_a_1 Bool) - (top.usr.t_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.k_a_1 Int) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.k0_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.r_a_0 Bool) - (top.usr.t_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) - (= - top.res.abs_2_a_1 - (and - (and - (>= top.impl.usr.k_a_1 1) - (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) - (=> (>= top.res.abs_1_a_1 top.impl.usr.k_a_1) top.usr.t_a_1))) - (let - ((X1 Bool top.res.abs_3_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (=> - (>= top.res.abs_5_a_1 top.impl.usr.k_a_1) - (and top.usr.q_a_1 top.usr.t_a_1)))) - (= top.res.abs_4_a_1 (and top.usr.p_a_1 top.usr.r_a_1)) - (__node_trans_Sofar_0 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_trans_Age_0 - top.usr.p_a_1 - top.res.abs_0_a_1 - top.res.inst_2_a_1 - top.usr.p_a_0 - top.res.abs_0_a_0 - top.res.inst_2_a_0) - (__node_trans_Age_0 - top.usr.r_a_1 - top.res.abs_1_a_1 - top.res.inst_1_a_1 - top.usr.r_a_0 - top.res.abs_1_a_0 - top.res.inst_1_a_0) - (__node_trans_Age_0 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_0_a_1 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.k0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.t Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.k0 Int) -(declare-primed-var top.usr.p Bool) -(declare-primed-var top.usr.q Bool) -(declare-primed-var top.usr.r Bool) -(declare-primed-var top.usr.t Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.k Int) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.k0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.t Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.impl.usr.k top.usr.k0) - (= - top.res.abs_2 - (and - (and - (>= top.impl.usr.k 1) - (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) - (=> (>= top.res.abs_1 top.impl.usr.k) top.usr.t))) - (let - ((X1 Bool top.res.abs_3)) - (and - (= - top.usr.OK - (=> - X1 - (=> (>= top.res.abs_5 top.impl.usr.k) (and top.usr.q top.usr.t)))) - (= top.res.abs_4 (and top.usr.p top.usr.r)) - (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_3) - (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_2) - (__node_init_Age_0 top.usr.r top.res.abs_1 top.res.inst_1) - (__node_init_Age_0 top.res.abs_4 top.res.abs_5 top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.k0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.t Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.k0! Int) - (top.usr.p! Bool) - (top.usr.q! Bool) - (top.usr.r! Bool) - (top.usr.t! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.k! Int) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.abs_4! Bool) - (top.res.abs_5! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.impl.usr.k! top.impl.usr.k) - (= - top.res.abs_2! - (and - (and - (>= top.impl.usr.k! 1) - (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) - (=> (>= top.res.abs_1! top.impl.usr.k!) top.usr.t!))) - (let - ((X1 Bool top.res.abs_3!)) - (and - (= - top.usr.OK! - (=> - X1 - (=> (>= top.res.abs_5! top.impl.usr.k!) (and top.usr.q! top.usr.t!)))) - (= top.res.abs_4! (and top.usr.p! top.usr.r!)) - (__node_trans_Sofar_0 - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_trans_Age_0 - top.usr.p! - top.res.abs_0! - top.res.inst_2! - top.usr.p - top.res.abs_0 - top.res.inst_2) - (__node_trans_Age_0 - top.usr.r! - top.res.abs_1! - top.res.inst_1! - top.usr.r - top.res.abs_1 - top.res.inst_1) - (__node_trans_Age_0 - top.res.abs_4! - top.res.abs_5! - top.res.inst_0! - top.res.abs_4 - top.res.abs_5 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.k0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.t Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Age_0 ((Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0)) +(define-fun __node_trans_Age_0 ((Age.usr.p_a_1 Bool) (Age.usr.age_of_p_a_1 Int) (Age.res.init_flag_a_1 Bool) (Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (- Age.usr.age_of_p_a_0 1) 0)) (not Age.res.init_flag_a_1))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.k0_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.r_a_0 Bool) (top.usr.t_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.k_a_0 top.usr.k0_a_0) (= top.res.abs_2_a_0 (and (and (>= top.impl.usr.k_a_0 1) (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) (=> (>= top.res.abs_1_a_0 top.impl.usr.k_a_0) top.usr.t_a_0))) (let ((X1 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (=> (>= top.res.abs_5_a_0 top.impl.usr.k_a_0) (and top.usr.q_a_0 top.usr.t_a_0)))) (= top.res.abs_4_a_0 (and top.usr.p_a_0 top.usr.r_a_0)) (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_2_a_0) (__node_init_Age_0 top.usr.r_a_0 top.res.abs_1_a_0 top.res.inst_1_a_0) (__node_init_Age_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.k0_a_1 Int) (top.usr.p_a_1 Bool) (top.usr.q_a_1 Bool) (top.usr.r_a_1 Bool) (top.usr.t_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.k_a_1 Int) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.k0_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.r_a_0 Bool) (top.usr.t_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) (= top.res.abs_2_a_1 (and (and (>= top.impl.usr.k_a_1 1) (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) (=> (>= top.res.abs_1_a_1 top.impl.usr.k_a_1) top.usr.t_a_1))) (let ((X1 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (=> (>= top.res.abs_5_a_1 top.impl.usr.k_a_1) (and top.usr.q_a_1 top.usr.t_a_1)))) (= top.res.abs_4_a_1 (and top.usr.p_a_1 top.usr.r_a_1)) (__node_trans_Sofar_0 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Age_0 top.usr.p_a_1 top.res.abs_0_a_1 top.res.inst_2_a_1 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_2_a_0) (__node_trans_Age_0 top.usr.r_a_1 top.res.abs_1_a_1 top.res.inst_1_a_1 top.usr.r_a_0 top.res.abs_1_a_0 top.res.inst_1_a_0) (__node_trans_Age_0 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_0_a_1 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.k top.usr.k0) (= top.res.abs_2 (and (and (>= top.impl.usr.k 1) (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) (=> (>= top.res.abs_1 top.impl.usr.k) top.usr.t))) (let ((X1 top.res.abs_3)) (and (= top.usr.OK (=> X1 (=> (>= top.res.abs_5 top.impl.usr.k) (and top.usr.q top.usr.t)))) (= top.res.abs_4 (and top.usr.p top.usr.r)) (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_2) (__node_init_Age_0 top.usr.r top.res.abs_1 top.res.inst_1) (__node_init_Age_0 top.res.abs_4 top.res.abs_5 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.k0! Int) (top.usr.p! Bool) (top.usr.q! Bool) (top.usr.r! Bool) (top.usr.t! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.k! Int) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.abs_4! Bool) (top.res.abs_5! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.k! top.impl.usr.k) (= top.res.abs_2! (and (and (>= top.impl.usr.k! 1) (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) (=> (>= top.res.abs_1! top.impl.usr.k!) top.usr.t!))) (let ((X1 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (=> (>= top.res.abs_5! top.impl.usr.k!) (and top.usr.q! top.usr.t!)))) (= top.res.abs_4! (and top.usr.p! top.usr.r!)) (__node_trans_Sofar_0 top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Age_0 top.usr.p! top.res.abs_0! top.res.inst_2! top.usr.p top.res.abs_0 top.res.inst_2) (__node_trans_Age_0 top.usr.r! top.res.abs_1! top.res.inst_1! top.usr.r top.res.abs_1 top.res.inst_1) (__node_trans_Age_0 top.res.abs_4! top.res.abs_5! top.res.inst_0! top.res.abs_4 top.res.abs_5 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/durationThm_2_e7_145_e2_169-flat.sl b/benchmarks/LIA/Lustre/durationThm_2_e7_145_e2_169-flat.sl index f767d8f..33afc87 100644 --- a/benchmarks/LIA/Lustre/durationThm_2_e7_145_e2_169-flat.sl +++ b/benchmarks/LIA/Lustre/durationThm_2_e7_145_e2_169-flat.sl @@ -1,34 +1,27 @@ (set-logic LIA) -(define-fun __node_init_Age_0 ((Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0)) -(define-fun __node_trans_Age_0 ((Age.usr.p_a_1 Bool) (Age.usr.age_of_p_a_1 Int) (Age.res.init_flag_a_1 Bool) (Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool (and (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (+ (- Age.usr.age_of_p_a_0 1) 1) 0)) (not Age.res.init_flag_a_1))) -(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) -(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) -(define-fun __node_init_top_0 ((top.usr.k0_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.r_a_0 Bool) (top.usr.t_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool (and (= top.impl.usr.k_a_0 top.usr.k0_a_0) (= top.res.abs_2_a_0 (and (and (>= top.impl.usr.k_a_0 1) (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) (=> (>= top.res.abs_1_a_0 top.impl.usr.k_a_0) top.usr.t_a_0))) (and (= top.usr.OK_a_0 (=> top.res.abs_3_a_0 (=> (>= top.res.abs_5_a_0 top.impl.usr.k_a_0) (and top.usr.q_a_0 top.usr.t_a_0)))) (= top.res.abs_4_a_0 (and top.usr.p_a_0 top.usr.r_a_0)) (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_2_a_0) (__node_init_Age_0 top.usr.r_a_0 top.res.abs_1_a_0 top.res.inst_1_a_0) (__node_init_Age_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))) -(define-fun __node_trans_top_0 ((top.usr.k0_a_1 Int) (top.usr.p_a_1 Bool) (top.usr.q_a_1 Bool) (top.usr.r_a_1 Bool) (top.usr.t_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.k_a_1 Int) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.k0_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.r_a_0 Bool) (top.usr.t_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool (and (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) (= top.res.abs_2_a_1 (and (and (>= top.impl.usr.k_a_1 1) (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) (=> (>= top.res.abs_1_a_1 top.impl.usr.k_a_1) top.usr.t_a_1))) (and (= top.usr.OK_a_1 (=> top.res.abs_3_a_1 (=> (>= top.res.abs_5_a_1 top.impl.usr.k_a_1) (and top.usr.q_a_1 top.usr.t_a_1)))) (= top.res.abs_4_a_1 (and top.usr.p_a_1 top.usr.r_a_1)) (__node_trans_Sofar_0 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Age_0 top.usr.p_a_1 top.res.abs_0_a_1 top.res.inst_2_a_1 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_2_a_0) (__node_trans_Age_0 top.usr.r_a_1 top.res.abs_1_a_1 top.res.inst_1_a_1 top.usr.r_a_0 top.res.abs_1_a_0 top.res.inst_1_a_0) (__node_trans_Age_0 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_0_a_1 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))) +(define-fun __node_init_Age_0 ((Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0)) +(define-fun __node_trans_Age_0 ((Age.usr.p_a_1 Bool) (Age.usr.age_of_p_a_1 Int) (Age.res.init_flag_a_1 Bool) (Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (+ (- Age.usr.age_of_p_a_0 1) 1) 0)) (not Age.res.init_flag_a_1))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.k0_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.r_a_0 Bool) (top.usr.t_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.k_a_0 top.usr.k0_a_0) (= top.res.abs_2_a_0 (and (and (>= top.impl.usr.k_a_0 1) (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) (=> (>= top.res.abs_1_a_0 top.impl.usr.k_a_0) top.usr.t_a_0))) (and (= top.usr.OK_a_0 (=> top.res.abs_3_a_0 (=> (>= top.res.abs_5_a_0 top.impl.usr.k_a_0) (and top.usr.q_a_0 top.usr.t_a_0)))) (= top.res.abs_4_a_0 (and top.usr.p_a_0 top.usr.r_a_0)) (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_2_a_0) (__node_init_Age_0 top.usr.r_a_0 top.res.abs_1_a_0 top.res.inst_1_a_0) (__node_init_Age_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))) +(define-fun __node_trans_top_0 ((top.usr.k0_a_1 Int) (top.usr.p_a_1 Bool) (top.usr.q_a_1 Bool) (top.usr.r_a_1 Bool) (top.usr.t_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.k_a_1 Int) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.k0_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.r_a_0 Bool) (top.usr.t_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) (= top.res.abs_2_a_1 (and (and (>= top.impl.usr.k_a_1 1) (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) (=> (>= top.res.abs_1_a_1 top.impl.usr.k_a_1) top.usr.t_a_1))) (and (= top.usr.OK_a_1 (=> top.res.abs_3_a_1 (=> (>= top.res.abs_5_a_1 top.impl.usr.k_a_1) (and top.usr.q_a_1 top.usr.t_a_1)))) (= top.res.abs_4_a_1 (and top.usr.p_a_1 top.usr.r_a_1)) (__node_trans_Sofar_0 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Age_0 top.usr.p_a_1 top.res.abs_0_a_1 top.res.inst_2_a_1 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_2_a_0) (__node_trans_Age_0 top.usr.r_a_1 top.res.abs_1_a_1 top.res.inst_1_a_1 top.usr.r_a_0 top.res.abs_1_a_0 top.res.inst_1_a_0) (__node_trans_Age_0 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_0_a_1 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))) (synth-inv str_invariant ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) -(declare-primed-var top.usr.k0 Int) -(declare-primed-var top.usr.p Bool) -(declare-primed-var top.usr.q Bool) -(declare-primed-var top.usr.r Bool) -(declare-primed-var top.usr.t Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.k Int) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) -(define-fun init ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool (and (= top.impl.usr.k top.usr.k0) (= top.res.abs_2 (and (and (>= top.impl.usr.k 1) (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) (=> (>= top.res.abs_1 top.impl.usr.k) top.usr.t))) (and (= top.usr.OK (=> top.res.abs_3 (=> (>= top.res.abs_5 top.impl.usr.k) (and top.usr.q top.usr.t)))) (= top.res.abs_4 (and top.usr.p top.usr.r)) (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_2) (__node_init_Age_0 top.usr.r top.res.abs_1 top.res.inst_1) (__node_init_Age_0 top.res.abs_4 top.res.abs_5 top.res.inst_0) top.res.init_flag))) -(define-fun trans ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.k0! Int) (top.usr.p! Bool) (top.usr.q! Bool) (top.usr.r! Bool) (top.usr.t! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.k! Int) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.abs_4! Bool) (top.res.abs_5! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool (and (= top.impl.usr.k! top.impl.usr.k) (= top.res.abs_2! (and (and (>= top.impl.usr.k! 1) (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) (=> (>= top.res.abs_1! top.impl.usr.k!) top.usr.t!))) (and (= top.usr.OK! (=> top.res.abs_3! (=> (>= top.res.abs_5! top.impl.usr.k!) (and top.usr.q! top.usr.t!)))) (= top.res.abs_4! (and top.usr.p! top.usr.r!)) (__node_trans_Sofar_0 top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Age_0 top.usr.p! top.res.abs_0! top.res.inst_2! top.usr.p top.res.abs_0 top.res.inst_2) (__node_trans_Age_0 top.usr.r! top.res.abs_1! top.res.inst_1! top.usr.r top.res.abs_1 top.res.inst_1) (__node_trans_Age_0 top.res.abs_4! top.res.abs_5! top.res.inst_0! top.res.abs_4 top.res.abs_5 top.res.inst_0) (not top.res.init_flag!)))) -(define-fun prop ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool top.usr.OK) + +(define-fun init ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.k top.usr.k0) (= top.res.abs_2 (and (and (>= top.impl.usr.k 1) (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) (=> (>= top.res.abs_1 top.impl.usr.k) top.usr.t))) (and (= top.usr.OK (=> top.res.abs_3 (=> (>= top.res.abs_5 top.impl.usr.k) (and top.usr.q top.usr.t)))) (= top.res.abs_4 (and top.usr.p top.usr.r)) (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_2) (__node_init_Age_0 top.usr.r top.res.abs_1 top.res.inst_1) (__node_init_Age_0 top.res.abs_4 top.res.abs_5 top.res.inst_0) top.res.init_flag))) +(define-fun trans ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.k0! Int) (top.usr.p! Bool) (top.usr.q! Bool) (top.usr.r! Bool) (top.usr.t! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.k! Int) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.abs_4! Bool) (top.res.abs_5! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.k! top.impl.usr.k) (= top.res.abs_2! (and (and (>= top.impl.usr.k! 1) (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) (=> (>= top.res.abs_1! top.impl.usr.k!) top.usr.t!))) (and (= top.usr.OK! (=> top.res.abs_3! (=> (>= top.res.abs_5! top.impl.usr.k!) (and top.usr.q! top.usr.t!)))) (= top.res.abs_4! (and top.usr.p! top.usr.r!)) (__node_trans_Sofar_0 top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Age_0 top.usr.p! top.res.abs_0! top.res.inst_2! top.usr.p top.res.abs_0 top.res.inst_2) (__node_trans_Age_0 top.usr.r! top.res.abs_1! top.res.inst_1! top.usr.r top.res.abs_1 top.res.inst_1) (__node_trans_Age_0 top.res.abs_4! top.res.abs_5! top.res.inst_0! top.res.abs_4 top.res.abs_5 top.res.inst_0) (not top.res.init_flag!)))) +(define-fun prop ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) + (inv-constraint str_invariant init trans prop) -(check-synth) +(check-synth) diff --git a/benchmarks/LIA/Lustre/durationThm_2_e7_145_e2_169.sl b/benchmarks/LIA/Lustre/durationThm_2_e7_145_e2_169.sl index 4c70373..eae0f66 100644 --- a/benchmarks/LIA/Lustre/durationThm_2_e7_145_e2_169.sl +++ b/benchmarks/LIA/Lustre/durationThm_2_e7_145_e2_169.sl @@ -1,404 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_Age_0 ( - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0) -) - -(define-fun - __node_trans_Age_0 ( - (Age.usr.p_a_1 Bool) - (Age.usr.age_of_p_a_1 Int) - (Age.res.init_flag_a_1 Bool) - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (+ (- Age.usr.age_of_p_a_0 1) 1) 0)) - (not Age.res.init_flag_a_1)) -) - -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.k0_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.r_a_0 Bool) - (top.usr.t_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.k_a_0 top.usr.k0_a_0) - (= - top.res.abs_2_a_0 - (and - (and - (>= top.impl.usr.k_a_0 1) - (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) - (=> (>= top.res.abs_1_a_0 top.impl.usr.k_a_0) top.usr.t_a_0))) - (let - ((X1 Bool top.res.abs_3_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (=> - (>= top.res.abs_5_a_0 top.impl.usr.k_a_0) - (and top.usr.q_a_0 top.usr.t_a_0)))) - (= top.res.abs_4_a_0 (and top.usr.p_a_0 top.usr.r_a_0)) - (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) - (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_2_a_0) - (__node_init_Age_0 top.usr.r_a_0 top.res.abs_1_a_0 top.res.inst_1_a_0) - (__node_init_Age_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.k0_a_1 Int) - (top.usr.p_a_1 Bool) - (top.usr.q_a_1 Bool) - (top.usr.r_a_1 Bool) - (top.usr.t_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.k_a_1 Int) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.k0_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.r_a_0 Bool) - (top.usr.t_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) - (= - top.res.abs_2_a_1 - (and - (and - (>= top.impl.usr.k_a_1 1) - (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) - (=> (>= top.res.abs_1_a_1 top.impl.usr.k_a_1) top.usr.t_a_1))) - (let - ((X1 Bool top.res.abs_3_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (=> - (>= top.res.abs_5_a_1 top.impl.usr.k_a_1) - (and top.usr.q_a_1 top.usr.t_a_1)))) - (= top.res.abs_4_a_1 (and top.usr.p_a_1 top.usr.r_a_1)) - (__node_trans_Sofar_0 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_trans_Age_0 - top.usr.p_a_1 - top.res.abs_0_a_1 - top.res.inst_2_a_1 - top.usr.p_a_0 - top.res.abs_0_a_0 - top.res.inst_2_a_0) - (__node_trans_Age_0 - top.usr.r_a_1 - top.res.abs_1_a_1 - top.res.inst_1_a_1 - top.usr.r_a_0 - top.res.abs_1_a_0 - top.res.inst_1_a_0) - (__node_trans_Age_0 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_0_a_1 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.k0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.t Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.k0 Int) -(declare-primed-var top.usr.p Bool) -(declare-primed-var top.usr.q Bool) -(declare-primed-var top.usr.r Bool) -(declare-primed-var top.usr.t Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.k Int) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.k0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.t Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.impl.usr.k top.usr.k0) - (= - top.res.abs_2 - (and - (and - (>= top.impl.usr.k 1) - (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) - (=> (>= top.res.abs_1 top.impl.usr.k) top.usr.t))) - (let - ((X1 Bool top.res.abs_3)) - (and - (= - top.usr.OK - (=> - X1 - (=> (>= top.res.abs_5 top.impl.usr.k) (and top.usr.q top.usr.t)))) - (= top.res.abs_4 (and top.usr.p top.usr.r)) - (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_3) - (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_2) - (__node_init_Age_0 top.usr.r top.res.abs_1 top.res.inst_1) - (__node_init_Age_0 top.res.abs_4 top.res.abs_5 top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.k0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.t Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.k0! Int) - (top.usr.p! Bool) - (top.usr.q! Bool) - (top.usr.r! Bool) - (top.usr.t! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.k! Int) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.abs_4! Bool) - (top.res.abs_5! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.impl.usr.k! top.impl.usr.k) - (= - top.res.abs_2! - (and - (and - (>= top.impl.usr.k! 1) - (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) - (=> (>= top.res.abs_1! top.impl.usr.k!) top.usr.t!))) - (let - ((X1 Bool top.res.abs_3!)) - (and - (= - top.usr.OK! - (=> - X1 - (=> (>= top.res.abs_5! top.impl.usr.k!) (and top.usr.q! top.usr.t!)))) - (= top.res.abs_4! (and top.usr.p! top.usr.r!)) - (__node_trans_Sofar_0 - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_trans_Age_0 - top.usr.p! - top.res.abs_0! - top.res.inst_2! - top.usr.p - top.res.abs_0 - top.res.inst_2) - (__node_trans_Age_0 - top.usr.r! - top.res.abs_1! - top.res.inst_1! - top.usr.r - top.res.abs_1 - top.res.inst_1) - (__node_trans_Age_0 - top.res.abs_4! - top.res.abs_5! - top.res.inst_0! - top.res.abs_4 - top.res.abs_5 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.k0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.t Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Age_0 ((Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0)) +(define-fun __node_trans_Age_0 ((Age.usr.p_a_1 Bool) (Age.usr.age_of_p_a_1 Int) (Age.res.init_flag_a_1 Bool) (Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (+ (- Age.usr.age_of_p_a_0 1) 1) 0)) (not Age.res.init_flag_a_1))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.k0_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.r_a_0 Bool) (top.usr.t_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.k_a_0 top.usr.k0_a_0) (= top.res.abs_2_a_0 (and (and (>= top.impl.usr.k_a_0 1) (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) (=> (>= top.res.abs_1_a_0 top.impl.usr.k_a_0) top.usr.t_a_0))) (let ((X1 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (=> (>= top.res.abs_5_a_0 top.impl.usr.k_a_0) (and top.usr.q_a_0 top.usr.t_a_0)))) (= top.res.abs_4_a_0 (and top.usr.p_a_0 top.usr.r_a_0)) (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_2_a_0) (__node_init_Age_0 top.usr.r_a_0 top.res.abs_1_a_0 top.res.inst_1_a_0) (__node_init_Age_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.k0_a_1 Int) (top.usr.p_a_1 Bool) (top.usr.q_a_1 Bool) (top.usr.r_a_1 Bool) (top.usr.t_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.k_a_1 Int) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.k0_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.r_a_0 Bool) (top.usr.t_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) (= top.res.abs_2_a_1 (and (and (>= top.impl.usr.k_a_1 1) (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) (=> (>= top.res.abs_1_a_1 top.impl.usr.k_a_1) top.usr.t_a_1))) (let ((X1 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (=> (>= top.res.abs_5_a_1 top.impl.usr.k_a_1) (and top.usr.q_a_1 top.usr.t_a_1)))) (= top.res.abs_4_a_1 (and top.usr.p_a_1 top.usr.r_a_1)) (__node_trans_Sofar_0 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Age_0 top.usr.p_a_1 top.res.abs_0_a_1 top.res.inst_2_a_1 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_2_a_0) (__node_trans_Age_0 top.usr.r_a_1 top.res.abs_1_a_1 top.res.inst_1_a_1 top.usr.r_a_0 top.res.abs_1_a_0 top.res.inst_1_a_0) (__node_trans_Age_0 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_0_a_1 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.k top.usr.k0) (= top.res.abs_2 (and (and (>= top.impl.usr.k 1) (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) (=> (>= top.res.abs_1 top.impl.usr.k) top.usr.t))) (let ((X1 top.res.abs_3)) (and (= top.usr.OK (=> X1 (=> (>= top.res.abs_5 top.impl.usr.k) (and top.usr.q top.usr.t)))) (= top.res.abs_4 (and top.usr.p top.usr.r)) (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_2) (__node_init_Age_0 top.usr.r top.res.abs_1 top.res.inst_1) (__node_init_Age_0 top.res.abs_4 top.res.abs_5 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.k0! Int) (top.usr.p! Bool) (top.usr.q! Bool) (top.usr.r! Bool) (top.usr.t! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.k! Int) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.abs_4! Bool) (top.res.abs_5! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.k! top.impl.usr.k) (= top.res.abs_2! (and (and (>= top.impl.usr.k! 1) (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) (=> (>= top.res.abs_1! top.impl.usr.k!) top.usr.t!))) (let ((X1 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (=> (>= top.res.abs_5! top.impl.usr.k!) (and top.usr.q! top.usr.t!)))) (= top.res.abs_4! (and top.usr.p! top.usr.r!)) (__node_trans_Sofar_0 top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Age_0 top.usr.p! top.res.abs_0! top.res.inst_2! top.usr.p top.res.abs_0 top.res.inst_2) (__node_trans_Age_0 top.usr.r! top.res.abs_1! top.res.inst_1! top.usr.r top.res.abs_1 top.res.inst_1) (__node_trans_Age_0 top.res.abs_4! top.res.abs_5! top.res.inst_0! top.res.abs_4 top.res.abs_5 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/durationThm_2_e7_145_e3_222.sl b/benchmarks/LIA/Lustre/durationThm_2_e7_145_e3_222.sl index 6c95c4b..9141784 100644 --- a/benchmarks/LIA/Lustre/durationThm_2_e7_145_e3_222.sl +++ b/benchmarks/LIA/Lustre/durationThm_2_e7_145_e3_222.sl @@ -1,404 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_Age_0 ( - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0) -) - -(define-fun - __node_trans_Age_0 ( - (Age.usr.p_a_1 Bool) - (Age.usr.age_of_p_a_1 Int) - (Age.res.init_flag_a_1 Bool) - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (- Age.usr.age_of_p_a_0 1) 0)) - (not Age.res.init_flag_a_1)) -) - -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.k0_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.r_a_0 Bool) - (top.usr.t_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.k_a_0 top.usr.k0_a_0) - (= - top.res.abs_2_a_0 - (and - (and - (>= top.impl.usr.k_a_0 1) - (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) - (=> (>= top.res.abs_1_a_0 top.impl.usr.k_a_0) top.usr.t_a_0))) - (let - ((X1 Bool top.res.abs_3_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (=> - (>= top.res.abs_5_a_0 top.impl.usr.k_a_0) - (and top.usr.q_a_0 top.usr.t_a_0)))) - (= top.res.abs_4_a_0 (and top.usr.p_a_0 top.usr.r_a_0)) - (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) - (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_2_a_0) - (__node_init_Age_0 top.usr.r_a_0 top.res.abs_1_a_0 top.res.inst_1_a_0) - (__node_init_Age_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.k0_a_1 Int) - (top.usr.p_a_1 Bool) - (top.usr.q_a_1 Bool) - (top.usr.r_a_1 Bool) - (top.usr.t_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.k_a_1 Int) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.k0_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.r_a_0 Bool) - (top.usr.t_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) - (= - top.res.abs_2_a_1 - (and - (and - (>= top.impl.usr.k_a_1 1) - (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) - (=> (>= top.res.abs_1_a_1 top.impl.usr.k_a_1) top.usr.t_a_1))) - (let - ((X1 Bool top.res.abs_3_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (=> - (>= top.res.abs_5_a_1 top.impl.usr.k_a_1) - (and top.usr.q_a_1 top.usr.t_a_1)))) - (= top.res.abs_4_a_1 (and top.usr.p_a_1 top.usr.r_a_1)) - (__node_trans_Sofar_0 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_trans_Age_0 - top.usr.p_a_1 - top.res.abs_0_a_1 - top.res.inst_2_a_1 - top.usr.p_a_0 - top.res.abs_0_a_0 - top.res.inst_2_a_0) - (__node_trans_Age_0 - top.usr.r_a_1 - top.res.abs_1_a_1 - top.res.inst_1_a_1 - top.usr.r_a_0 - top.res.abs_1_a_0 - top.res.inst_1_a_0) - (__node_trans_Age_0 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_0_a_1 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.k0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.t Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.k0 Int) -(declare-primed-var top.usr.p Bool) -(declare-primed-var top.usr.q Bool) -(declare-primed-var top.usr.r Bool) -(declare-primed-var top.usr.t Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.k Int) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.k0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.t Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.impl.usr.k top.usr.k0) - (= - top.res.abs_2 - (and - (and - (>= top.impl.usr.k 1) - (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) - (=> (>= top.res.abs_1 top.impl.usr.k) top.usr.t))) - (let - ((X1 Bool top.res.abs_3)) - (and - (= - top.usr.OK - (=> - X1 - (=> (>= top.res.abs_5 top.impl.usr.k) (and top.usr.q top.usr.t)))) - (= top.res.abs_4 (and top.usr.p top.usr.r)) - (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_3) - (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_2) - (__node_init_Age_0 top.usr.r top.res.abs_1 top.res.inst_1) - (__node_init_Age_0 top.res.abs_4 top.res.abs_5 top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.k0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.t Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.k0! Int) - (top.usr.p! Bool) - (top.usr.q! Bool) - (top.usr.r! Bool) - (top.usr.t! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.k! Int) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.abs_4! Bool) - (top.res.abs_5! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.impl.usr.k! top.impl.usr.k) - (= - top.res.abs_2! - (and - (and - (>= top.impl.usr.k! 1) - (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) - (=> (>= top.res.abs_1! top.impl.usr.k!) top.usr.t!))) - (let - ((X1 Bool top.res.abs_3!)) - (and - (= - top.usr.OK! - (=> - X1 - (=> (>= top.res.abs_5! top.impl.usr.k!) (and top.usr.q! top.usr.t!)))) - (= top.res.abs_4! (and top.usr.p! top.usr.r!)) - (__node_trans_Sofar_0 - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_trans_Age_0 - top.usr.p! - top.res.abs_0! - top.res.inst_2! - top.usr.p - top.res.abs_0 - top.res.inst_2) - (__node_trans_Age_0 - top.usr.r! - top.res.abs_1! - top.res.inst_1! - top.usr.r - top.res.abs_1 - top.res.inst_1) - (__node_trans_Age_0 - top.res.abs_4! - top.res.abs_5! - top.res.inst_0! - top.res.abs_4 - top.res.abs_5 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.k0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.t Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Age_0 ((Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0)) +(define-fun __node_trans_Age_0 ((Age.usr.p_a_1 Bool) (Age.usr.age_of_p_a_1 Int) (Age.res.init_flag_a_1 Bool) (Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (- Age.usr.age_of_p_a_0 1) 0)) (not Age.res.init_flag_a_1))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.k0_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.r_a_0 Bool) (top.usr.t_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.k_a_0 top.usr.k0_a_0) (= top.res.abs_2_a_0 (and (and (>= top.impl.usr.k_a_0 1) (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) (=> (>= top.res.abs_1_a_0 top.impl.usr.k_a_0) top.usr.t_a_0))) (let ((X1 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (=> (>= top.res.abs_5_a_0 top.impl.usr.k_a_0) (and top.usr.q_a_0 top.usr.t_a_0)))) (= top.res.abs_4_a_0 (and top.usr.p_a_0 top.usr.r_a_0)) (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_2_a_0) (__node_init_Age_0 top.usr.r_a_0 top.res.abs_1_a_0 top.res.inst_1_a_0) (__node_init_Age_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.k0_a_1 Int) (top.usr.p_a_1 Bool) (top.usr.q_a_1 Bool) (top.usr.r_a_1 Bool) (top.usr.t_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.k_a_1 Int) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.k0_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.r_a_0 Bool) (top.usr.t_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) (= top.res.abs_2_a_1 (and (and (>= top.impl.usr.k_a_1 1) (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) (=> (>= top.res.abs_1_a_1 top.impl.usr.k_a_1) top.usr.t_a_1))) (let ((X1 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (=> (>= top.res.abs_5_a_1 top.impl.usr.k_a_1) (and top.usr.q_a_1 top.usr.t_a_1)))) (= top.res.abs_4_a_1 (and top.usr.p_a_1 top.usr.r_a_1)) (__node_trans_Sofar_0 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Age_0 top.usr.p_a_1 top.res.abs_0_a_1 top.res.inst_2_a_1 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_2_a_0) (__node_trans_Age_0 top.usr.r_a_1 top.res.abs_1_a_1 top.res.inst_1_a_1 top.usr.r_a_0 top.res.abs_1_a_0 top.res.inst_1_a_0) (__node_trans_Age_0 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_0_a_1 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.k top.usr.k0) (= top.res.abs_2 (and (and (>= top.impl.usr.k 1) (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) (=> (>= top.res.abs_1 top.impl.usr.k) top.usr.t))) (let ((X1 top.res.abs_3)) (and (= top.usr.OK (=> X1 (=> (>= top.res.abs_5 top.impl.usr.k) (and top.usr.q top.usr.t)))) (= top.res.abs_4 (and top.usr.p top.usr.r)) (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_2) (__node_init_Age_0 top.usr.r top.res.abs_1 top.res.inst_1) (__node_init_Age_0 top.res.abs_4 top.res.abs_5 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.k0! Int) (top.usr.p! Bool) (top.usr.q! Bool) (top.usr.r! Bool) (top.usr.t! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.k! Int) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.abs_4! Bool) (top.res.abs_5! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.k! top.impl.usr.k) (= top.res.abs_2! (and (and (>= top.impl.usr.k! 1) (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) (=> (>= top.res.abs_1! top.impl.usr.k!) top.usr.t!))) (let ((X1 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (=> (>= top.res.abs_5! top.impl.usr.k!) (and top.usr.q! top.usr.t!)))) (= top.res.abs_4! (and top.usr.p! top.usr.r!)) (__node_trans_Sofar_0 top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Age_0 top.usr.p! top.res.abs_0! top.res.inst_2! top.usr.p top.res.abs_0 top.res.inst_2) (__node_trans_Age_0 top.usr.r! top.res.abs_1! top.res.inst_1! top.usr.r top.res.abs_1 top.res.inst_1) (__node_trans_Age_0 top.res.abs_4! top.res.abs_5! top.res.inst_0! top.res.abs_4 top.res.abs_5 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/durationThm_2_e7_145_e8_73.sl b/benchmarks/LIA/Lustre/durationThm_2_e7_145_e8_73.sl index be4fc35..aa55e70 100644 --- a/benchmarks/LIA/Lustre/durationThm_2_e7_145_e8_73.sl +++ b/benchmarks/LIA/Lustre/durationThm_2_e7_145_e8_73.sl @@ -1,404 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_Age_0 ( - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0) -) - -(define-fun - __node_trans_Age_0 ( - (Age.usr.p_a_1 Bool) - (Age.usr.age_of_p_a_1 Int) - (Age.res.init_flag_a_1 Bool) - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (+ Age.usr.age_of_p_a_0 1) 0)) - (not Age.res.init_flag_a_1)) -) - -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.k0_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.r_a_0 Bool) - (top.usr.t_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.k_a_0 top.usr.k0_a_0) - (= - top.res.abs_2_a_0 - (and - (and - (>= top.impl.usr.k_a_0 1) - (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) - (=> (>= top.res.abs_1_a_0 top.impl.usr.k_a_0) top.usr.t_a_0))) - (let - ((X1 Bool top.res.abs_3_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (=> - (>= top.res.abs_5_a_0 top.impl.usr.k_a_0) - (and top.usr.q_a_0 top.usr.t_a_0)))) - (= top.res.abs_4_a_0 (and top.usr.p_a_0 top.usr.r_a_0)) - (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) - (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_2_a_0) - (__node_init_Age_0 top.usr.r_a_0 top.res.abs_1_a_0 top.res.inst_1_a_0) - (__node_init_Age_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.k0_a_1 Int) - (top.usr.p_a_1 Bool) - (top.usr.q_a_1 Bool) - (top.usr.r_a_1 Bool) - (top.usr.t_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.k_a_1 Int) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.k0_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.r_a_0 Bool) - (top.usr.t_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) - (= - top.res.abs_2_a_1 - (and - (and - (>= top.impl.usr.k_a_1 1) - (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) - (=> (>= top.res.abs_1_a_1 top.impl.usr.k_a_1) top.usr.t_a_1))) - (let - ((X1 Bool top.res.abs_3_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (=> - (>= top.res.abs_5_a_1 top.impl.usr.k_a_1) - (and top.usr.q_a_1 top.usr.t_a_1)))) - (= top.res.abs_4_a_1 (and top.usr.p_a_1 top.usr.r_a_1)) - (__node_trans_Sofar_0 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_3_a_1 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_3_a_0) - (__node_trans_Age_0 - top.usr.p_a_1 - top.res.abs_0_a_1 - top.res.inst_2_a_1 - top.usr.p_a_0 - top.res.abs_0_a_0 - top.res.inst_2_a_0) - (__node_trans_Age_0 - top.usr.r_a_1 - top.res.abs_1_a_1 - top.res.inst_1_a_1 - top.usr.r_a_0 - top.res.abs_1_a_0 - top.res.inst_1_a_0) - (__node_trans_Age_0 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.inst_0_a_1 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.k0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.t Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.k0 Int) -(declare-primed-var top.usr.p Bool) -(declare-primed-var top.usr.q Bool) -(declare-primed-var top.usr.r Bool) -(declare-primed-var top.usr.t Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.k Int) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.k0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.t Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.impl.usr.k top.usr.k0) - (= - top.res.abs_2 - (and - (and - (>= top.impl.usr.k 1) - (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) - (=> (>= top.res.abs_1 top.impl.usr.k) top.usr.t))) - (let - ((X1 Bool top.res.abs_3)) - (and - (= - top.usr.OK - (=> - X1 - (=> (>= top.res.abs_5 top.impl.usr.k) (and top.usr.q top.usr.t)))) - (= top.res.abs_4 (and top.usr.p top.usr.r)) - (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_3) - (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_2) - (__node_init_Age_0 top.usr.r top.res.abs_1 top.res.inst_1) - (__node_init_Age_0 top.res.abs_4 top.res.abs_5 top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.k0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.t Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.k0! Int) - (top.usr.p! Bool) - (top.usr.q! Bool) - (top.usr.r! Bool) - (top.usr.t! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.k! Int) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.abs_4! Bool) - (top.res.abs_5! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.impl.usr.k! top.impl.usr.k) - (= - top.res.abs_2! - (and - (and - (>= top.impl.usr.k! 1) - (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) - (=> (>= top.res.abs_1! top.impl.usr.k!) top.usr.t!))) - (let - ((X1 Bool top.res.abs_3!)) - (and - (= - top.usr.OK! - (=> - X1 - (=> (>= top.res.abs_5! top.impl.usr.k!) (and top.usr.q! top.usr.t!)))) - (= top.res.abs_4! (and top.usr.p! top.usr.r!)) - (__node_trans_Sofar_0 - top.res.abs_2! - top.res.abs_3! - top.res.inst_3! - top.res.abs_2 - top.res.abs_3 - top.res.inst_3) - (__node_trans_Age_0 - top.usr.p! - top.res.abs_0! - top.res.inst_2! - top.usr.p - top.res.abs_0 - top.res.inst_2) - (__node_trans_Age_0 - top.usr.r! - top.res.abs_1! - top.res.inst_1! - top.usr.r - top.res.abs_1 - top.res.inst_1) - (__node_trans_Age_0 - top.res.abs_4! - top.res.abs_5! - top.res.inst_0! - top.res.abs_4 - top.res.abs_5 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.k0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.r Bool) - (top.usr.t Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Age_0 ((Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0)) +(define-fun __node_trans_Age_0 ((Age.usr.p_a_1 Bool) (Age.usr.age_of_p_a_1 Int) (Age.res.init_flag_a_1 Bool) (Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (+ Age.usr.age_of_p_a_0 1) 0)) (not Age.res.init_flag_a_1))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.k0_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.r_a_0 Bool) (top.usr.t_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.k_a_0 top.usr.k0_a_0) (= top.res.abs_2_a_0 (and (and (>= top.impl.usr.k_a_0 1) (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) (=> (>= top.res.abs_1_a_0 top.impl.usr.k_a_0) top.usr.t_a_0))) (let ((X1 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (=> (>= top.res.abs_5_a_0 top.impl.usr.k_a_0) (and top.usr.q_a_0 top.usr.t_a_0)))) (= top.res.abs_4_a_0 (and top.usr.p_a_0 top.usr.r_a_0)) (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_2_a_0) (__node_init_Age_0 top.usr.r_a_0 top.res.abs_1_a_0 top.res.inst_1_a_0) (__node_init_Age_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.k0_a_1 Int) (top.usr.p_a_1 Bool) (top.usr.q_a_1 Bool) (top.usr.r_a_1 Bool) (top.usr.t_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.k_a_1 Int) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.k0_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.r_a_0 Bool) (top.usr.t_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) (= top.res.abs_2_a_1 (and (and (>= top.impl.usr.k_a_1 1) (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) (=> (>= top.res.abs_1_a_1 top.impl.usr.k_a_1) top.usr.t_a_1))) (let ((X1 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (=> (>= top.res.abs_5_a_1 top.impl.usr.k_a_1) (and top.usr.q_a_1 top.usr.t_a_1)))) (= top.res.abs_4_a_1 (and top.usr.p_a_1 top.usr.r_a_1)) (__node_trans_Sofar_0 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_3_a_1 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_3_a_0) (__node_trans_Age_0 top.usr.p_a_1 top.res.abs_0_a_1 top.res.inst_2_a_1 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_2_a_0) (__node_trans_Age_0 top.usr.r_a_1 top.res.abs_1_a_1 top.res.inst_1_a_1 top.usr.r_a_0 top.res.abs_1_a_0 top.res.inst_1_a_0) (__node_trans_Age_0 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.inst_0_a_1 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.k top.usr.k0) (= top.res.abs_2 (and (and (>= top.impl.usr.k 1) (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) (=> (>= top.res.abs_1 top.impl.usr.k) top.usr.t))) (let ((X1 top.res.abs_3)) (and (= top.usr.OK (=> X1 (=> (>= top.res.abs_5 top.impl.usr.k) (and top.usr.q top.usr.t)))) (= top.res.abs_4 (and top.usr.p top.usr.r)) (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_2) (__node_init_Age_0 top.usr.r top.res.abs_1 top.res.inst_1) (__node_init_Age_0 top.res.abs_4 top.res.abs_5 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.k0! Int) (top.usr.p! Bool) (top.usr.q! Bool) (top.usr.r! Bool) (top.usr.t! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.k! Int) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.abs_4! Bool) (top.res.abs_5! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.k! top.impl.usr.k) (= top.res.abs_2! (and (and (>= top.impl.usr.k! 1) (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) (=> (>= top.res.abs_1! top.impl.usr.k!) top.usr.t!))) (let ((X1 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (=> (>= top.res.abs_5! top.impl.usr.k!) (and top.usr.q! top.usr.t!)))) (= top.res.abs_4! (and top.usr.p! top.usr.r!)) (__node_trans_Sofar_0 top.res.abs_2! top.res.abs_3! top.res.inst_3! top.res.abs_2 top.res.abs_3 top.res.inst_3) (__node_trans_Age_0 top.usr.p! top.res.abs_0! top.res.inst_2! top.usr.p top.res.abs_0 top.res.inst_2) (__node_trans_Age_0 top.usr.r! top.res.abs_1! top.res.inst_1! top.usr.r top.res.abs_1 top.res.inst_1) (__node_trans_Age_0 top.res.abs_4! top.res.abs_5! top.res.inst_0! top.res.abs_4 top.res.abs_5 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.k0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.r Bool) (top.usr.t Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/durationThm_3_e2_148.sl b/benchmarks/LIA/Lustre/durationThm_3_e2_148.sl index a230b5d..7269204 100644 --- a/benchmarks/LIA/Lustre/durationThm_3_e2_148.sl +++ b/benchmarks/LIA/Lustre/durationThm_3_e2_148.sl @@ -1,349 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_Age_0 ( - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0) -) - -(define-fun - __node_trans_Age_0 ( - (Age.usr.p_a_1 Bool) - (Age.usr.age_of_p_a_1 Int) - (Age.res.init_flag_a_1 Bool) - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (+ (- Age.usr.age_of_p_a_0 1) 1) 0)) - (not Age.res.init_flag_a_1)) -) - -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.k0_a_0 Int) - (top.usr.m0_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.impl.usr.m_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.m_a_0 top.usr.m0_a_0) - (= top.impl.usr.k_a_0 top.usr.k0_a_0) - (= - top.res.abs_2_a_0 - (and - (and - (and (>= top.impl.usr.k_a_0 1) (>= top.impl.usr.m_a_0 1)) - (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) - (<= top.res.abs_1_a_0 top.impl.usr.m_a_0))) - (let - ((X1 Bool top.res.abs_3_a_0)) - (and - (= - top.usr.OK_a_0 - (=> X1 (<= top.res.abs_0_a_0 (+ top.impl.usr.k_a_0 top.impl.usr.m_a_0)))) - (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) - (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) - (__node_init_Age_0 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.k0_a_1 Int) - (top.usr.m0_a_1 Int) - (top.usr.p_a_1 Bool) - (top.usr.q_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.k_a_1 Int) - (top.impl.usr.m_a_1 Int) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.k0_a_0 Int) - (top.usr.m0_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.impl.usr.m_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.m_a_1 top.impl.usr.m_a_0) - (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) - (= - top.res.abs_2_a_1 - (and - (and - (and (>= top.impl.usr.k_a_1 1) (>= top.impl.usr.m_a_1 1)) - (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) - (<= top.res.abs_1_a_1 top.impl.usr.m_a_1))) - (let - ((X1 Bool top.res.abs_3_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (<= top.res.abs_0_a_1 (+ top.impl.usr.k_a_1 top.impl.usr.m_a_1)))) - (__node_trans_Sofar_0 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Age_0 - top.usr.p_a_1 - top.res.abs_0_a_1 - top.res.inst_1_a_1 - top.usr.p_a_0 - top.res.abs_0_a_0 - top.res.inst_1_a_0) - (__node_trans_Age_0 - top.usr.q_a_1 - top.res.abs_1_a_1 - top.res.inst_0_a_1 - top.usr.q_a_0 - top.res.abs_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.k0 Int) - (top.usr.m0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.k0 Int) -(declare-primed-var top.usr.m0 Int) -(declare-primed-var top.usr.p Bool) -(declare-primed-var top.usr.q Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.k Int) -(declare-primed-var top.impl.usr.m Int) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.k0 Int) - (top.usr.m0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.impl.usr.m top.usr.m0) - (= top.impl.usr.k top.usr.k0) - (= - top.res.abs_2 - (and - (and - (and (>= top.impl.usr.k 1) (>= top.impl.usr.m 1)) - (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) - (<= top.res.abs_1 top.impl.usr.m))) - (let - ((X1 Bool top.res.abs_3)) - (and - (= - top.usr.OK - (=> X1 (<= top.res.abs_0 (+ top.impl.usr.k top.impl.usr.m)))) - (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_2) - (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_1) - (__node_init_Age_0 top.usr.q top.res.abs_1 top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.k0 Int) - (top.usr.m0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.k0! Int) - (top.usr.m0! Int) - (top.usr.p! Bool) - (top.usr.q! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.k! Int) - (top.impl.usr.m! Int) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.impl.usr.m! top.impl.usr.m) - (= top.impl.usr.k! top.impl.usr.k) - (= - top.res.abs_2! - (and - (and - (and (>= top.impl.usr.k! 1) (>= top.impl.usr.m! 1)) - (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) - (<= top.res.abs_1! top.impl.usr.m!))) - (let - ((X1 Bool top.res.abs_3!)) - (and - (= - top.usr.OK! - (=> X1 (<= top.res.abs_0! (+ top.impl.usr.k! top.impl.usr.m!)))) - (__node_trans_Sofar_0 - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Age_0 - top.usr.p! - top.res.abs_0! - top.res.inst_1! - top.usr.p - top.res.abs_0 - top.res.inst_1) - (__node_trans_Age_0 - top.usr.q! - top.res.abs_1! - top.res.inst_0! - top.usr.q - top.res.abs_1 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.k0 Int) - (top.usr.m0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Age_0 ((Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0)) +(define-fun __node_trans_Age_0 ((Age.usr.p_a_1 Bool) (Age.usr.age_of_p_a_1 Int) (Age.res.init_flag_a_1 Bool) (Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (+ (- Age.usr.age_of_p_a_0 1) 1) 0)) (not Age.res.init_flag_a_1))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.k0_a_0 Int) (top.usr.m0_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.impl.usr.m_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.m_a_0 top.usr.m0_a_0) (= top.impl.usr.k_a_0 top.usr.k0_a_0) (= top.res.abs_2_a_0 (and (and (and (>= top.impl.usr.k_a_0 1) (>= top.impl.usr.m_a_0 1)) (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) (<= top.res.abs_1_a_0 top.impl.usr.m_a_0))) (let ((X1 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (<= top.res.abs_0_a_0 (+ top.impl.usr.k_a_0 top.impl.usr.m_a_0)))) (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) (__node_init_Age_0 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.k0_a_1 Int) (top.usr.m0_a_1 Int) (top.usr.p_a_1 Bool) (top.usr.q_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.k_a_1 Int) (top.impl.usr.m_a_1 Int) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.k0_a_0 Int) (top.usr.m0_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.impl.usr.m_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.m_a_1 top.impl.usr.m_a_0) (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) (= top.res.abs_2_a_1 (and (and (and (>= top.impl.usr.k_a_1 1) (>= top.impl.usr.m_a_1 1)) (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) (<= top.res.abs_1_a_1 top.impl.usr.m_a_1))) (let ((X1 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (<= top.res.abs_0_a_1 (+ top.impl.usr.k_a_1 top.impl.usr.m_a_1)))) (__node_trans_Sofar_0 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Age_0 top.usr.p_a_1 top.res.abs_0_a_1 top.res.inst_1_a_1 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) (__node_trans_Age_0 top.usr.q_a_1 top.res.abs_1_a_1 top.res.inst_0_a_1 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.k0 Int) (top.usr.m0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.k0 Int) (top.usr.m0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.m top.usr.m0) (= top.impl.usr.k top.usr.k0) (= top.res.abs_2 (and (and (and (>= top.impl.usr.k 1) (>= top.impl.usr.m 1)) (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) (<= top.res.abs_1 top.impl.usr.m))) (let ((X1 top.res.abs_3)) (and (= top.usr.OK (=> X1 (<= top.res.abs_0 (+ top.impl.usr.k top.impl.usr.m)))) (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_1) (__node_init_Age_0 top.usr.q top.res.abs_1 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.k0 Int) (top.usr.m0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.k0! Int) (top.usr.m0! Int) (top.usr.p! Bool) (top.usr.q! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.k! Int) (top.impl.usr.m! Int) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.m! top.impl.usr.m) (= top.impl.usr.k! top.impl.usr.k) (= top.res.abs_2! (and (and (and (>= top.impl.usr.k! 1) (>= top.impl.usr.m! 1)) (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) (<= top.res.abs_1! top.impl.usr.m!))) (let ((X1 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (<= top.res.abs_0! (+ top.impl.usr.k! top.impl.usr.m!)))) (__node_trans_Sofar_0 top.res.abs_2! top.res.abs_3! top.res.inst_2! top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Age_0 top.usr.p! top.res.abs_0! top.res.inst_1! top.usr.p top.res.abs_0 top.res.inst_1) (__node_trans_Age_0 top.usr.q! top.res.abs_1! top.res.inst_0! top.usr.q top.res.abs_1 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.k0 Int) (top.usr.m0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/durationThm_3_e2_63.sl b/benchmarks/LIA/Lustre/durationThm_3_e2_63.sl index a230b5d..7269204 100644 --- a/benchmarks/LIA/Lustre/durationThm_3_e2_63.sl +++ b/benchmarks/LIA/Lustre/durationThm_3_e2_63.sl @@ -1,349 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_Age_0 ( - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0) -) - -(define-fun - __node_trans_Age_0 ( - (Age.usr.p_a_1 Bool) - (Age.usr.age_of_p_a_1 Int) - (Age.res.init_flag_a_1 Bool) - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (+ (- Age.usr.age_of_p_a_0 1) 1) 0)) - (not Age.res.init_flag_a_1)) -) - -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.k0_a_0 Int) - (top.usr.m0_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.impl.usr.m_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.m_a_0 top.usr.m0_a_0) - (= top.impl.usr.k_a_0 top.usr.k0_a_0) - (= - top.res.abs_2_a_0 - (and - (and - (and (>= top.impl.usr.k_a_0 1) (>= top.impl.usr.m_a_0 1)) - (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) - (<= top.res.abs_1_a_0 top.impl.usr.m_a_0))) - (let - ((X1 Bool top.res.abs_3_a_0)) - (and - (= - top.usr.OK_a_0 - (=> X1 (<= top.res.abs_0_a_0 (+ top.impl.usr.k_a_0 top.impl.usr.m_a_0)))) - (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) - (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) - (__node_init_Age_0 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.k0_a_1 Int) - (top.usr.m0_a_1 Int) - (top.usr.p_a_1 Bool) - (top.usr.q_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.k_a_1 Int) - (top.impl.usr.m_a_1 Int) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.k0_a_0 Int) - (top.usr.m0_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.impl.usr.m_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.m_a_1 top.impl.usr.m_a_0) - (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) - (= - top.res.abs_2_a_1 - (and - (and - (and (>= top.impl.usr.k_a_1 1) (>= top.impl.usr.m_a_1 1)) - (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) - (<= top.res.abs_1_a_1 top.impl.usr.m_a_1))) - (let - ((X1 Bool top.res.abs_3_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (<= top.res.abs_0_a_1 (+ top.impl.usr.k_a_1 top.impl.usr.m_a_1)))) - (__node_trans_Sofar_0 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Age_0 - top.usr.p_a_1 - top.res.abs_0_a_1 - top.res.inst_1_a_1 - top.usr.p_a_0 - top.res.abs_0_a_0 - top.res.inst_1_a_0) - (__node_trans_Age_0 - top.usr.q_a_1 - top.res.abs_1_a_1 - top.res.inst_0_a_1 - top.usr.q_a_0 - top.res.abs_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.k0 Int) - (top.usr.m0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.k0 Int) -(declare-primed-var top.usr.m0 Int) -(declare-primed-var top.usr.p Bool) -(declare-primed-var top.usr.q Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.k Int) -(declare-primed-var top.impl.usr.m Int) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.k0 Int) - (top.usr.m0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.impl.usr.m top.usr.m0) - (= top.impl.usr.k top.usr.k0) - (= - top.res.abs_2 - (and - (and - (and (>= top.impl.usr.k 1) (>= top.impl.usr.m 1)) - (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) - (<= top.res.abs_1 top.impl.usr.m))) - (let - ((X1 Bool top.res.abs_3)) - (and - (= - top.usr.OK - (=> X1 (<= top.res.abs_0 (+ top.impl.usr.k top.impl.usr.m)))) - (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_2) - (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_1) - (__node_init_Age_0 top.usr.q top.res.abs_1 top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.k0 Int) - (top.usr.m0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.k0! Int) - (top.usr.m0! Int) - (top.usr.p! Bool) - (top.usr.q! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.k! Int) - (top.impl.usr.m! Int) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.impl.usr.m! top.impl.usr.m) - (= top.impl.usr.k! top.impl.usr.k) - (= - top.res.abs_2! - (and - (and - (and (>= top.impl.usr.k! 1) (>= top.impl.usr.m! 1)) - (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) - (<= top.res.abs_1! top.impl.usr.m!))) - (let - ((X1 Bool top.res.abs_3!)) - (and - (= - top.usr.OK! - (=> X1 (<= top.res.abs_0! (+ top.impl.usr.k! top.impl.usr.m!)))) - (__node_trans_Sofar_0 - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Age_0 - top.usr.p! - top.res.abs_0! - top.res.inst_1! - top.usr.p - top.res.abs_0 - top.res.inst_1) - (__node_trans_Age_0 - top.usr.q! - top.res.abs_1! - top.res.inst_0! - top.usr.q - top.res.abs_1 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.k0 Int) - (top.usr.m0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Age_0 ((Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0)) +(define-fun __node_trans_Age_0 ((Age.usr.p_a_1 Bool) (Age.usr.age_of_p_a_1 Int) (Age.res.init_flag_a_1 Bool) (Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (+ (- Age.usr.age_of_p_a_0 1) 1) 0)) (not Age.res.init_flag_a_1))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.k0_a_0 Int) (top.usr.m0_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.impl.usr.m_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.m_a_0 top.usr.m0_a_0) (= top.impl.usr.k_a_0 top.usr.k0_a_0) (= top.res.abs_2_a_0 (and (and (and (>= top.impl.usr.k_a_0 1) (>= top.impl.usr.m_a_0 1)) (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) (<= top.res.abs_1_a_0 top.impl.usr.m_a_0))) (let ((X1 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (<= top.res.abs_0_a_0 (+ top.impl.usr.k_a_0 top.impl.usr.m_a_0)))) (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) (__node_init_Age_0 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.k0_a_1 Int) (top.usr.m0_a_1 Int) (top.usr.p_a_1 Bool) (top.usr.q_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.k_a_1 Int) (top.impl.usr.m_a_1 Int) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.k0_a_0 Int) (top.usr.m0_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.impl.usr.m_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.m_a_1 top.impl.usr.m_a_0) (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) (= top.res.abs_2_a_1 (and (and (and (>= top.impl.usr.k_a_1 1) (>= top.impl.usr.m_a_1 1)) (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) (<= top.res.abs_1_a_1 top.impl.usr.m_a_1))) (let ((X1 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (<= top.res.abs_0_a_1 (+ top.impl.usr.k_a_1 top.impl.usr.m_a_1)))) (__node_trans_Sofar_0 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Age_0 top.usr.p_a_1 top.res.abs_0_a_1 top.res.inst_1_a_1 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) (__node_trans_Age_0 top.usr.q_a_1 top.res.abs_1_a_1 top.res.inst_0_a_1 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.k0 Int) (top.usr.m0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.k0 Int) (top.usr.m0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.m top.usr.m0) (= top.impl.usr.k top.usr.k0) (= top.res.abs_2 (and (and (and (>= top.impl.usr.k 1) (>= top.impl.usr.m 1)) (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) (<= top.res.abs_1 top.impl.usr.m))) (let ((X1 top.res.abs_3)) (and (= top.usr.OK (=> X1 (<= top.res.abs_0 (+ top.impl.usr.k top.impl.usr.m)))) (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_1) (__node_init_Age_0 top.usr.q top.res.abs_1 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.k0 Int) (top.usr.m0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.k0! Int) (top.usr.m0! Int) (top.usr.p! Bool) (top.usr.q! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.k! Int) (top.impl.usr.m! Int) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.m! top.impl.usr.m) (= top.impl.usr.k! top.impl.usr.k) (= top.res.abs_2! (and (and (and (>= top.impl.usr.k! 1) (>= top.impl.usr.m! 1)) (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) (<= top.res.abs_1! top.impl.usr.m!))) (let ((X1 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (<= top.res.abs_0! (+ top.impl.usr.k! top.impl.usr.m!)))) (__node_trans_Sofar_0 top.res.abs_2! top.res.abs_3! top.res.inst_2! top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Age_0 top.usr.p! top.res.abs_0! top.res.inst_1! top.usr.p top.res.abs_0 top.res.inst_1) (__node_trans_Age_0 top.usr.q! top.res.abs_1! top.res.inst_0! top.usr.q top.res.abs_1 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.k0 Int) (top.usr.m0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/durationThm_3_e3_207.sl b/benchmarks/LIA/Lustre/durationThm_3_e3_207.sl index 56834c5..7766381 100644 --- a/benchmarks/LIA/Lustre/durationThm_3_e3_207.sl +++ b/benchmarks/LIA/Lustre/durationThm_3_e3_207.sl @@ -1,349 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_Age_0 ( - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0) -) - -(define-fun - __node_trans_Age_0 ( - (Age.usr.p_a_1 Bool) - (Age.usr.age_of_p_a_1 Int) - (Age.res.init_flag_a_1 Bool) - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (- Age.usr.age_of_p_a_0 1) 0)) - (not Age.res.init_flag_a_1)) -) - -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.k0_a_0 Int) - (top.usr.m0_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.impl.usr.m_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.m_a_0 top.usr.m0_a_0) - (= top.impl.usr.k_a_0 top.usr.k0_a_0) - (= - top.res.abs_2_a_0 - (and - (and - (and (>= top.impl.usr.k_a_0 1) (>= top.impl.usr.m_a_0 1)) - (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) - (<= top.res.abs_1_a_0 top.impl.usr.m_a_0))) - (let - ((X1 Bool top.res.abs_3_a_0)) - (and - (= - top.usr.OK_a_0 - (=> X1 (<= top.res.abs_0_a_0 (+ top.impl.usr.k_a_0 top.impl.usr.m_a_0)))) - (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) - (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) - (__node_init_Age_0 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.k0_a_1 Int) - (top.usr.m0_a_1 Int) - (top.usr.p_a_1 Bool) - (top.usr.q_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.k_a_1 Int) - (top.impl.usr.m_a_1 Int) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.k0_a_0 Int) - (top.usr.m0_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.impl.usr.m_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.m_a_1 top.impl.usr.m_a_0) - (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) - (= - top.res.abs_2_a_1 - (and - (and - (and (>= top.impl.usr.k_a_1 1) (>= top.impl.usr.m_a_1 1)) - (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) - (<= top.res.abs_1_a_1 top.impl.usr.m_a_1))) - (let - ((X1 Bool top.res.abs_3_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (<= top.res.abs_0_a_1 (+ top.impl.usr.k_a_1 top.impl.usr.m_a_1)))) - (__node_trans_Sofar_0 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Age_0 - top.usr.p_a_1 - top.res.abs_0_a_1 - top.res.inst_1_a_1 - top.usr.p_a_0 - top.res.abs_0_a_0 - top.res.inst_1_a_0) - (__node_trans_Age_0 - top.usr.q_a_1 - top.res.abs_1_a_1 - top.res.inst_0_a_1 - top.usr.q_a_0 - top.res.abs_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.k0 Int) - (top.usr.m0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.k0 Int) -(declare-primed-var top.usr.m0 Int) -(declare-primed-var top.usr.p Bool) -(declare-primed-var top.usr.q Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.k Int) -(declare-primed-var top.impl.usr.m Int) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.k0 Int) - (top.usr.m0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.impl.usr.m top.usr.m0) - (= top.impl.usr.k top.usr.k0) - (= - top.res.abs_2 - (and - (and - (and (>= top.impl.usr.k 1) (>= top.impl.usr.m 1)) - (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) - (<= top.res.abs_1 top.impl.usr.m))) - (let - ((X1 Bool top.res.abs_3)) - (and - (= - top.usr.OK - (=> X1 (<= top.res.abs_0 (+ top.impl.usr.k top.impl.usr.m)))) - (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_2) - (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_1) - (__node_init_Age_0 top.usr.q top.res.abs_1 top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.k0 Int) - (top.usr.m0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.k0! Int) - (top.usr.m0! Int) - (top.usr.p! Bool) - (top.usr.q! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.k! Int) - (top.impl.usr.m! Int) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.impl.usr.m! top.impl.usr.m) - (= top.impl.usr.k! top.impl.usr.k) - (= - top.res.abs_2! - (and - (and - (and (>= top.impl.usr.k! 1) (>= top.impl.usr.m! 1)) - (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) - (<= top.res.abs_1! top.impl.usr.m!))) - (let - ((X1 Bool top.res.abs_3!)) - (and - (= - top.usr.OK! - (=> X1 (<= top.res.abs_0! (+ top.impl.usr.k! top.impl.usr.m!)))) - (__node_trans_Sofar_0 - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Age_0 - top.usr.p! - top.res.abs_0! - top.res.inst_1! - top.usr.p - top.res.abs_0 - top.res.inst_1) - (__node_trans_Age_0 - top.usr.q! - top.res.abs_1! - top.res.inst_0! - top.usr.q - top.res.abs_1 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.k0 Int) - (top.usr.m0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Age_0 ((Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0)) +(define-fun __node_trans_Age_0 ((Age.usr.p_a_1 Bool) (Age.usr.age_of_p_a_1 Int) (Age.res.init_flag_a_1 Bool) (Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (- Age.usr.age_of_p_a_0 1) 0)) (not Age.res.init_flag_a_1))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.k0_a_0 Int) (top.usr.m0_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.impl.usr.m_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.m_a_0 top.usr.m0_a_0) (= top.impl.usr.k_a_0 top.usr.k0_a_0) (= top.res.abs_2_a_0 (and (and (and (>= top.impl.usr.k_a_0 1) (>= top.impl.usr.m_a_0 1)) (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) (<= top.res.abs_1_a_0 top.impl.usr.m_a_0))) (let ((X1 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (<= top.res.abs_0_a_0 (+ top.impl.usr.k_a_0 top.impl.usr.m_a_0)))) (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) (__node_init_Age_0 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.k0_a_1 Int) (top.usr.m0_a_1 Int) (top.usr.p_a_1 Bool) (top.usr.q_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.k_a_1 Int) (top.impl.usr.m_a_1 Int) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.k0_a_0 Int) (top.usr.m0_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.impl.usr.m_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.m_a_1 top.impl.usr.m_a_0) (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) (= top.res.abs_2_a_1 (and (and (and (>= top.impl.usr.k_a_1 1) (>= top.impl.usr.m_a_1 1)) (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) (<= top.res.abs_1_a_1 top.impl.usr.m_a_1))) (let ((X1 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (<= top.res.abs_0_a_1 (+ top.impl.usr.k_a_1 top.impl.usr.m_a_1)))) (__node_trans_Sofar_0 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Age_0 top.usr.p_a_1 top.res.abs_0_a_1 top.res.inst_1_a_1 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) (__node_trans_Age_0 top.usr.q_a_1 top.res.abs_1_a_1 top.res.inst_0_a_1 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.k0 Int) (top.usr.m0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.k0 Int) (top.usr.m0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.m top.usr.m0) (= top.impl.usr.k top.usr.k0) (= top.res.abs_2 (and (and (and (>= top.impl.usr.k 1) (>= top.impl.usr.m 1)) (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) (<= top.res.abs_1 top.impl.usr.m))) (let ((X1 top.res.abs_3)) (and (= top.usr.OK (=> X1 (<= top.res.abs_0 (+ top.impl.usr.k top.impl.usr.m)))) (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_1) (__node_init_Age_0 top.usr.q top.res.abs_1 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.k0 Int) (top.usr.m0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.k0! Int) (top.usr.m0! Int) (top.usr.p! Bool) (top.usr.q! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.k! Int) (top.impl.usr.m! Int) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.m! top.impl.usr.m) (= top.impl.usr.k! top.impl.usr.k) (= top.res.abs_2! (and (and (and (>= top.impl.usr.k! 1) (>= top.impl.usr.m! 1)) (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) (<= top.res.abs_1! top.impl.usr.m!))) (let ((X1 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (<= top.res.abs_0! (+ top.impl.usr.k! top.impl.usr.m!)))) (__node_trans_Sofar_0 top.res.abs_2! top.res.abs_3! top.res.inst_2! top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Age_0 top.usr.p! top.res.abs_0! top.res.inst_1! top.usr.p top.res.abs_0 top.res.inst_1) (__node_trans_Age_0 top.usr.q! top.res.abs_1! top.res.inst_0! top.usr.q top.res.abs_1 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.k0 Int) (top.usr.m0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/durationThm_3_e3_442.sl b/benchmarks/LIA/Lustre/durationThm_3_e3_442.sl index 56834c5..7766381 100644 --- a/benchmarks/LIA/Lustre/durationThm_3_e3_442.sl +++ b/benchmarks/LIA/Lustre/durationThm_3_e3_442.sl @@ -1,349 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_Age_0 ( - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0) -) - -(define-fun - __node_trans_Age_0 ( - (Age.usr.p_a_1 Bool) - (Age.usr.age_of_p_a_1 Int) - (Age.res.init_flag_a_1 Bool) - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (- Age.usr.age_of_p_a_0 1) 0)) - (not Age.res.init_flag_a_1)) -) - -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.k0_a_0 Int) - (top.usr.m0_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.impl.usr.m_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.m_a_0 top.usr.m0_a_0) - (= top.impl.usr.k_a_0 top.usr.k0_a_0) - (= - top.res.abs_2_a_0 - (and - (and - (and (>= top.impl.usr.k_a_0 1) (>= top.impl.usr.m_a_0 1)) - (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) - (<= top.res.abs_1_a_0 top.impl.usr.m_a_0))) - (let - ((X1 Bool top.res.abs_3_a_0)) - (and - (= - top.usr.OK_a_0 - (=> X1 (<= top.res.abs_0_a_0 (+ top.impl.usr.k_a_0 top.impl.usr.m_a_0)))) - (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) - (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) - (__node_init_Age_0 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.k0_a_1 Int) - (top.usr.m0_a_1 Int) - (top.usr.p_a_1 Bool) - (top.usr.q_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.k_a_1 Int) - (top.impl.usr.m_a_1 Int) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.k0_a_0 Int) - (top.usr.m0_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.impl.usr.m_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.m_a_1 top.impl.usr.m_a_0) - (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) - (= - top.res.abs_2_a_1 - (and - (and - (and (>= top.impl.usr.k_a_1 1) (>= top.impl.usr.m_a_1 1)) - (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) - (<= top.res.abs_1_a_1 top.impl.usr.m_a_1))) - (let - ((X1 Bool top.res.abs_3_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (<= top.res.abs_0_a_1 (+ top.impl.usr.k_a_1 top.impl.usr.m_a_1)))) - (__node_trans_Sofar_0 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Age_0 - top.usr.p_a_1 - top.res.abs_0_a_1 - top.res.inst_1_a_1 - top.usr.p_a_0 - top.res.abs_0_a_0 - top.res.inst_1_a_0) - (__node_trans_Age_0 - top.usr.q_a_1 - top.res.abs_1_a_1 - top.res.inst_0_a_1 - top.usr.q_a_0 - top.res.abs_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.k0 Int) - (top.usr.m0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.k0 Int) -(declare-primed-var top.usr.m0 Int) -(declare-primed-var top.usr.p Bool) -(declare-primed-var top.usr.q Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.k Int) -(declare-primed-var top.impl.usr.m Int) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.k0 Int) - (top.usr.m0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.impl.usr.m top.usr.m0) - (= top.impl.usr.k top.usr.k0) - (= - top.res.abs_2 - (and - (and - (and (>= top.impl.usr.k 1) (>= top.impl.usr.m 1)) - (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) - (<= top.res.abs_1 top.impl.usr.m))) - (let - ((X1 Bool top.res.abs_3)) - (and - (= - top.usr.OK - (=> X1 (<= top.res.abs_0 (+ top.impl.usr.k top.impl.usr.m)))) - (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_2) - (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_1) - (__node_init_Age_0 top.usr.q top.res.abs_1 top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.k0 Int) - (top.usr.m0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.k0! Int) - (top.usr.m0! Int) - (top.usr.p! Bool) - (top.usr.q! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.k! Int) - (top.impl.usr.m! Int) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.impl.usr.m! top.impl.usr.m) - (= top.impl.usr.k! top.impl.usr.k) - (= - top.res.abs_2! - (and - (and - (and (>= top.impl.usr.k! 1) (>= top.impl.usr.m! 1)) - (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) - (<= top.res.abs_1! top.impl.usr.m!))) - (let - ((X1 Bool top.res.abs_3!)) - (and - (= - top.usr.OK! - (=> X1 (<= top.res.abs_0! (+ top.impl.usr.k! top.impl.usr.m!)))) - (__node_trans_Sofar_0 - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Age_0 - top.usr.p! - top.res.abs_0! - top.res.inst_1! - top.usr.p - top.res.abs_0 - top.res.inst_1) - (__node_trans_Age_0 - top.usr.q! - top.res.abs_1! - top.res.inst_0! - top.usr.q - top.res.abs_1 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.k0 Int) - (top.usr.m0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Age_0 ((Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0)) +(define-fun __node_trans_Age_0 ((Age.usr.p_a_1 Bool) (Age.usr.age_of_p_a_1 Int) (Age.res.init_flag_a_1 Bool) (Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (- Age.usr.age_of_p_a_0 1) 0)) (not Age.res.init_flag_a_1))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.k0_a_0 Int) (top.usr.m0_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.impl.usr.m_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.m_a_0 top.usr.m0_a_0) (= top.impl.usr.k_a_0 top.usr.k0_a_0) (= top.res.abs_2_a_0 (and (and (and (>= top.impl.usr.k_a_0 1) (>= top.impl.usr.m_a_0 1)) (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) (<= top.res.abs_1_a_0 top.impl.usr.m_a_0))) (let ((X1 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (<= top.res.abs_0_a_0 (+ top.impl.usr.k_a_0 top.impl.usr.m_a_0)))) (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) (__node_init_Age_0 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.k0_a_1 Int) (top.usr.m0_a_1 Int) (top.usr.p_a_1 Bool) (top.usr.q_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.k_a_1 Int) (top.impl.usr.m_a_1 Int) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.k0_a_0 Int) (top.usr.m0_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.impl.usr.m_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.m_a_1 top.impl.usr.m_a_0) (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) (= top.res.abs_2_a_1 (and (and (and (>= top.impl.usr.k_a_1 1) (>= top.impl.usr.m_a_1 1)) (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) (<= top.res.abs_1_a_1 top.impl.usr.m_a_1))) (let ((X1 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (<= top.res.abs_0_a_1 (+ top.impl.usr.k_a_1 top.impl.usr.m_a_1)))) (__node_trans_Sofar_0 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Age_0 top.usr.p_a_1 top.res.abs_0_a_1 top.res.inst_1_a_1 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) (__node_trans_Age_0 top.usr.q_a_1 top.res.abs_1_a_1 top.res.inst_0_a_1 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.k0 Int) (top.usr.m0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.k0 Int) (top.usr.m0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.m top.usr.m0) (= top.impl.usr.k top.usr.k0) (= top.res.abs_2 (and (and (and (>= top.impl.usr.k 1) (>= top.impl.usr.m 1)) (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) (<= top.res.abs_1 top.impl.usr.m))) (let ((X1 top.res.abs_3)) (and (= top.usr.OK (=> X1 (<= top.res.abs_0 (+ top.impl.usr.k top.impl.usr.m)))) (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_1) (__node_init_Age_0 top.usr.q top.res.abs_1 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.k0 Int) (top.usr.m0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.k0! Int) (top.usr.m0! Int) (top.usr.p! Bool) (top.usr.q! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.k! Int) (top.impl.usr.m! Int) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.m! top.impl.usr.m) (= top.impl.usr.k! top.impl.usr.k) (= top.res.abs_2! (and (and (and (>= top.impl.usr.k! 1) (>= top.impl.usr.m! 1)) (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) (<= top.res.abs_1! top.impl.usr.m!))) (let ((X1 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (<= top.res.abs_0! (+ top.impl.usr.k! top.impl.usr.m!)))) (__node_trans_Sofar_0 top.res.abs_2! top.res.abs_3! top.res.inst_2! top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Age_0 top.usr.p! top.res.abs_0! top.res.inst_1! top.usr.p top.res.abs_0 top.res.inst_1) (__node_trans_Age_0 top.usr.q! top.res.abs_1! top.res.inst_0! top.usr.q top.res.abs_1 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.k0 Int) (top.usr.m0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/durationThm_3_e3_442_e4_165.sl b/benchmarks/LIA/Lustre/durationThm_3_e3_442_e4_165.sl index 4e62717..925b595 100644 --- a/benchmarks/LIA/Lustre/durationThm_3_e3_442_e4_165.sl +++ b/benchmarks/LIA/Lustre/durationThm_3_e3_442_e4_165.sl @@ -1,349 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_Age_0 ( - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0) -) - -(define-fun - __node_trans_Age_0 ( - (Age.usr.p_a_1 Bool) - (Age.usr.age_of_p_a_1 Int) - (Age.res.init_flag_a_1 Bool) - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (- (+ Age.usr.age_of_p_a_0 1) 1) 0)) - (not Age.res.init_flag_a_1)) -) - -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.k0_a_0 Int) - (top.usr.m0_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.impl.usr.m_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.m_a_0 top.usr.m0_a_0) - (= top.impl.usr.k_a_0 top.usr.k0_a_0) - (= - top.res.abs_2_a_0 - (and - (and - (and (>= top.impl.usr.k_a_0 1) (>= top.impl.usr.m_a_0 1)) - (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) - (<= top.res.abs_1_a_0 top.impl.usr.m_a_0))) - (let - ((X1 Bool top.res.abs_3_a_0)) - (and - (= - top.usr.OK_a_0 - (=> X1 (<= top.res.abs_0_a_0 (+ top.impl.usr.k_a_0 top.impl.usr.m_a_0)))) - (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) - (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) - (__node_init_Age_0 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.k0_a_1 Int) - (top.usr.m0_a_1 Int) - (top.usr.p_a_1 Bool) - (top.usr.q_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.k_a_1 Int) - (top.impl.usr.m_a_1 Int) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.k0_a_0 Int) - (top.usr.m0_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.impl.usr.m_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.m_a_1 top.impl.usr.m_a_0) - (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) - (= - top.res.abs_2_a_1 - (and - (and - (and (>= top.impl.usr.k_a_1 1) (>= top.impl.usr.m_a_1 1)) - (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) - (<= top.res.abs_1_a_1 top.impl.usr.m_a_1))) - (let - ((X1 Bool top.res.abs_3_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (<= top.res.abs_0_a_1 (+ top.impl.usr.k_a_1 top.impl.usr.m_a_1)))) - (__node_trans_Sofar_0 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Age_0 - top.usr.p_a_1 - top.res.abs_0_a_1 - top.res.inst_1_a_1 - top.usr.p_a_0 - top.res.abs_0_a_0 - top.res.inst_1_a_0) - (__node_trans_Age_0 - top.usr.q_a_1 - top.res.abs_1_a_1 - top.res.inst_0_a_1 - top.usr.q_a_0 - top.res.abs_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.k0 Int) - (top.usr.m0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.k0 Int) -(declare-primed-var top.usr.m0 Int) -(declare-primed-var top.usr.p Bool) -(declare-primed-var top.usr.q Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.k Int) -(declare-primed-var top.impl.usr.m Int) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.k0 Int) - (top.usr.m0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.impl.usr.m top.usr.m0) - (= top.impl.usr.k top.usr.k0) - (= - top.res.abs_2 - (and - (and - (and (>= top.impl.usr.k 1) (>= top.impl.usr.m 1)) - (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) - (<= top.res.abs_1 top.impl.usr.m))) - (let - ((X1 Bool top.res.abs_3)) - (and - (= - top.usr.OK - (=> X1 (<= top.res.abs_0 (+ top.impl.usr.k top.impl.usr.m)))) - (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_2) - (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_1) - (__node_init_Age_0 top.usr.q top.res.abs_1 top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.k0 Int) - (top.usr.m0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.k0! Int) - (top.usr.m0! Int) - (top.usr.p! Bool) - (top.usr.q! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.k! Int) - (top.impl.usr.m! Int) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.impl.usr.m! top.impl.usr.m) - (= top.impl.usr.k! top.impl.usr.k) - (= - top.res.abs_2! - (and - (and - (and (>= top.impl.usr.k! 1) (>= top.impl.usr.m! 1)) - (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) - (<= top.res.abs_1! top.impl.usr.m!))) - (let - ((X1 Bool top.res.abs_3!)) - (and - (= - top.usr.OK! - (=> X1 (<= top.res.abs_0! (+ top.impl.usr.k! top.impl.usr.m!)))) - (__node_trans_Sofar_0 - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Age_0 - top.usr.p! - top.res.abs_0! - top.res.inst_1! - top.usr.p - top.res.abs_0 - top.res.inst_1) - (__node_trans_Age_0 - top.usr.q! - top.res.abs_1! - top.res.inst_0! - top.usr.q - top.res.abs_1 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.k0 Int) - (top.usr.m0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Age_0 ((Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0)) +(define-fun __node_trans_Age_0 ((Age.usr.p_a_1 Bool) (Age.usr.age_of_p_a_1 Int) (Age.res.init_flag_a_1 Bool) (Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (- (+ Age.usr.age_of_p_a_0 1) 1) 0)) (not Age.res.init_flag_a_1))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.k0_a_0 Int) (top.usr.m0_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.impl.usr.m_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.m_a_0 top.usr.m0_a_0) (= top.impl.usr.k_a_0 top.usr.k0_a_0) (= top.res.abs_2_a_0 (and (and (and (>= top.impl.usr.k_a_0 1) (>= top.impl.usr.m_a_0 1)) (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) (<= top.res.abs_1_a_0 top.impl.usr.m_a_0))) (let ((X1 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (<= top.res.abs_0_a_0 (+ top.impl.usr.k_a_0 top.impl.usr.m_a_0)))) (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) (__node_init_Age_0 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.k0_a_1 Int) (top.usr.m0_a_1 Int) (top.usr.p_a_1 Bool) (top.usr.q_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.k_a_1 Int) (top.impl.usr.m_a_1 Int) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.k0_a_0 Int) (top.usr.m0_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.impl.usr.m_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.m_a_1 top.impl.usr.m_a_0) (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) (= top.res.abs_2_a_1 (and (and (and (>= top.impl.usr.k_a_1 1) (>= top.impl.usr.m_a_1 1)) (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) (<= top.res.abs_1_a_1 top.impl.usr.m_a_1))) (let ((X1 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (<= top.res.abs_0_a_1 (+ top.impl.usr.k_a_1 top.impl.usr.m_a_1)))) (__node_trans_Sofar_0 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Age_0 top.usr.p_a_1 top.res.abs_0_a_1 top.res.inst_1_a_1 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) (__node_trans_Age_0 top.usr.q_a_1 top.res.abs_1_a_1 top.res.inst_0_a_1 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.k0 Int) (top.usr.m0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.k0 Int) (top.usr.m0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.m top.usr.m0) (= top.impl.usr.k top.usr.k0) (= top.res.abs_2 (and (and (and (>= top.impl.usr.k 1) (>= top.impl.usr.m 1)) (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) (<= top.res.abs_1 top.impl.usr.m))) (let ((X1 top.res.abs_3)) (and (= top.usr.OK (=> X1 (<= top.res.abs_0 (+ top.impl.usr.k top.impl.usr.m)))) (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_1) (__node_init_Age_0 top.usr.q top.res.abs_1 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.k0 Int) (top.usr.m0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.k0! Int) (top.usr.m0! Int) (top.usr.p! Bool) (top.usr.q! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.k! Int) (top.impl.usr.m! Int) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.m! top.impl.usr.m) (= top.impl.usr.k! top.impl.usr.k) (= top.res.abs_2! (and (and (and (>= top.impl.usr.k! 1) (>= top.impl.usr.m! 1)) (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) (<= top.res.abs_1! top.impl.usr.m!))) (let ((X1 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (<= top.res.abs_0! (+ top.impl.usr.k! top.impl.usr.m!)))) (__node_trans_Sofar_0 top.res.abs_2! top.res.abs_3! top.res.inst_2! top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Age_0 top.usr.p! top.res.abs_0! top.res.inst_1! top.usr.p top.res.abs_0 top.res.inst_1) (__node_trans_Age_0 top.usr.q! top.res.abs_1! top.res.inst_0! top.usr.q top.res.abs_1 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.k0 Int) (top.usr.m0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/durationThm_3_e3_442_e5_260.sl b/benchmarks/LIA/Lustre/durationThm_3_e3_442_e5_260.sl index 7ef680a..30c05d6 100644 --- a/benchmarks/LIA/Lustre/durationThm_3_e3_442_e5_260.sl +++ b/benchmarks/LIA/Lustre/durationThm_3_e3_442_e5_260.sl @@ -1,349 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_Age_0 ( - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0) -) - -(define-fun - __node_trans_Age_0 ( - (Age.usr.p_a_1 Bool) - (Age.usr.age_of_p_a_1 Int) - (Age.res.init_flag_a_1 Bool) - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (- (- Age.usr.age_of_p_a_0 1) 1) 0)) - (not Age.res.init_flag_a_1)) -) - -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.k0_a_0 Int) - (top.usr.m0_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.impl.usr.m_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.m_a_0 top.usr.m0_a_0) - (= top.impl.usr.k_a_0 top.usr.k0_a_0) - (= - top.res.abs_2_a_0 - (and - (and - (and (>= top.impl.usr.k_a_0 1) (>= top.impl.usr.m_a_0 1)) - (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) - (<= top.res.abs_1_a_0 top.impl.usr.m_a_0))) - (let - ((X1 Bool top.res.abs_3_a_0)) - (and - (= - top.usr.OK_a_0 - (=> X1 (<= top.res.abs_0_a_0 (+ top.impl.usr.k_a_0 top.impl.usr.m_a_0)))) - (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) - (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) - (__node_init_Age_0 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.k0_a_1 Int) - (top.usr.m0_a_1 Int) - (top.usr.p_a_1 Bool) - (top.usr.q_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.k_a_1 Int) - (top.impl.usr.m_a_1 Int) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.k0_a_0 Int) - (top.usr.m0_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.impl.usr.m_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.m_a_1 top.impl.usr.m_a_0) - (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) - (= - top.res.abs_2_a_1 - (and - (and - (and (>= top.impl.usr.k_a_1 1) (>= top.impl.usr.m_a_1 1)) - (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) - (<= top.res.abs_1_a_1 top.impl.usr.m_a_1))) - (let - ((X1 Bool top.res.abs_3_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (<= top.res.abs_0_a_1 (+ top.impl.usr.k_a_1 top.impl.usr.m_a_1)))) - (__node_trans_Sofar_0 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Age_0 - top.usr.p_a_1 - top.res.abs_0_a_1 - top.res.inst_1_a_1 - top.usr.p_a_0 - top.res.abs_0_a_0 - top.res.inst_1_a_0) - (__node_trans_Age_0 - top.usr.q_a_1 - top.res.abs_1_a_1 - top.res.inst_0_a_1 - top.usr.q_a_0 - top.res.abs_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.k0 Int) - (top.usr.m0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.k0 Int) -(declare-primed-var top.usr.m0 Int) -(declare-primed-var top.usr.p Bool) -(declare-primed-var top.usr.q Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.k Int) -(declare-primed-var top.impl.usr.m Int) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.k0 Int) - (top.usr.m0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.impl.usr.m top.usr.m0) - (= top.impl.usr.k top.usr.k0) - (= - top.res.abs_2 - (and - (and - (and (>= top.impl.usr.k 1) (>= top.impl.usr.m 1)) - (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) - (<= top.res.abs_1 top.impl.usr.m))) - (let - ((X1 Bool top.res.abs_3)) - (and - (= - top.usr.OK - (=> X1 (<= top.res.abs_0 (+ top.impl.usr.k top.impl.usr.m)))) - (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_2) - (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_1) - (__node_init_Age_0 top.usr.q top.res.abs_1 top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.k0 Int) - (top.usr.m0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.k0! Int) - (top.usr.m0! Int) - (top.usr.p! Bool) - (top.usr.q! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.k! Int) - (top.impl.usr.m! Int) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.impl.usr.m! top.impl.usr.m) - (= top.impl.usr.k! top.impl.usr.k) - (= - top.res.abs_2! - (and - (and - (and (>= top.impl.usr.k! 1) (>= top.impl.usr.m! 1)) - (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) - (<= top.res.abs_1! top.impl.usr.m!))) - (let - ((X1 Bool top.res.abs_3!)) - (and - (= - top.usr.OK! - (=> X1 (<= top.res.abs_0! (+ top.impl.usr.k! top.impl.usr.m!)))) - (__node_trans_Sofar_0 - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Age_0 - top.usr.p! - top.res.abs_0! - top.res.inst_1! - top.usr.p - top.res.abs_0 - top.res.inst_1) - (__node_trans_Age_0 - top.usr.q! - top.res.abs_1! - top.res.inst_0! - top.usr.q - top.res.abs_1 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.k0 Int) - (top.usr.m0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Age_0 ((Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0)) +(define-fun __node_trans_Age_0 ((Age.usr.p_a_1 Bool) (Age.usr.age_of_p_a_1 Int) (Age.res.init_flag_a_1 Bool) (Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (- (- Age.usr.age_of_p_a_0 1) 1) 0)) (not Age.res.init_flag_a_1))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.k0_a_0 Int) (top.usr.m0_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.impl.usr.m_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.m_a_0 top.usr.m0_a_0) (= top.impl.usr.k_a_0 top.usr.k0_a_0) (= top.res.abs_2_a_0 (and (and (and (>= top.impl.usr.k_a_0 1) (>= top.impl.usr.m_a_0 1)) (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) (<= top.res.abs_1_a_0 top.impl.usr.m_a_0))) (let ((X1 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (<= top.res.abs_0_a_0 (+ top.impl.usr.k_a_0 top.impl.usr.m_a_0)))) (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) (__node_init_Age_0 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.k0_a_1 Int) (top.usr.m0_a_1 Int) (top.usr.p_a_1 Bool) (top.usr.q_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.k_a_1 Int) (top.impl.usr.m_a_1 Int) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.k0_a_0 Int) (top.usr.m0_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.impl.usr.m_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.m_a_1 top.impl.usr.m_a_0) (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) (= top.res.abs_2_a_1 (and (and (and (>= top.impl.usr.k_a_1 1) (>= top.impl.usr.m_a_1 1)) (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) (<= top.res.abs_1_a_1 top.impl.usr.m_a_1))) (let ((X1 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (<= top.res.abs_0_a_1 (+ top.impl.usr.k_a_1 top.impl.usr.m_a_1)))) (__node_trans_Sofar_0 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Age_0 top.usr.p_a_1 top.res.abs_0_a_1 top.res.inst_1_a_1 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) (__node_trans_Age_0 top.usr.q_a_1 top.res.abs_1_a_1 top.res.inst_0_a_1 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.k0 Int) (top.usr.m0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.k0 Int) (top.usr.m0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.m top.usr.m0) (= top.impl.usr.k top.usr.k0) (= top.res.abs_2 (and (and (and (>= top.impl.usr.k 1) (>= top.impl.usr.m 1)) (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) (<= top.res.abs_1 top.impl.usr.m))) (let ((X1 top.res.abs_3)) (and (= top.usr.OK (=> X1 (<= top.res.abs_0 (+ top.impl.usr.k top.impl.usr.m)))) (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_1) (__node_init_Age_0 top.usr.q top.res.abs_1 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.k0 Int) (top.usr.m0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.k0! Int) (top.usr.m0! Int) (top.usr.p! Bool) (top.usr.q! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.k! Int) (top.impl.usr.m! Int) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.m! top.impl.usr.m) (= top.impl.usr.k! top.impl.usr.k) (= top.res.abs_2! (and (and (and (>= top.impl.usr.k! 1) (>= top.impl.usr.m! 1)) (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) (<= top.res.abs_1! top.impl.usr.m!))) (let ((X1 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (<= top.res.abs_0! (+ top.impl.usr.k! top.impl.usr.m!)))) (__node_trans_Sofar_0 top.res.abs_2! top.res.abs_3! top.res.inst_2! top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Age_0 top.usr.p! top.res.abs_0! top.res.inst_1! top.usr.p top.res.abs_0 top.res.inst_1) (__node_trans_Age_0 top.usr.q! top.res.abs_1! top.res.inst_0! top.usr.q top.res.abs_1 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.k0 Int) (top.usr.m0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/durationThm_3_e7_334_e2_62.sl b/benchmarks/LIA/Lustre/durationThm_3_e7_334_e2_62.sl index b3561eb..c4ef2c4 100644 --- a/benchmarks/LIA/Lustre/durationThm_3_e7_334_e2_62.sl +++ b/benchmarks/LIA/Lustre/durationThm_3_e7_334_e2_62.sl @@ -1,349 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_Age_0 ( - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0) -) - -(define-fun - __node_trans_Age_0 ( - (Age.usr.p_a_1 Bool) - (Age.usr.age_of_p_a_1 Int) - (Age.res.init_flag_a_1 Bool) - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (+ (- Age.usr.age_of_p_a_0 1) 1) 0)) - (not Age.res.init_flag_a_1)) -) - -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.k0_a_0 Int) - (top.usr.m0_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.impl.usr.m_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.m_a_0 top.usr.m0_a_0) - (= top.impl.usr.k_a_0 top.usr.k0_a_0) - (= - top.res.abs_2_a_0 - (and - (and - (and (>= top.impl.usr.k_a_0 1) (>= top.impl.usr.m_a_0 1)) - (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) - (<= top.res.abs_1_a_0 top.impl.usr.m_a_0))) - (let - ((X1 Bool top.res.abs_3_a_0)) - (and - (= - top.usr.OK_a_0 - (=> X1 (<= top.res.abs_0_a_0 (+ top.impl.usr.k_a_0 top.impl.usr.m_a_0)))) - (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) - (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) - (__node_init_Age_0 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.k0_a_1 Int) - (top.usr.m0_a_1 Int) - (top.usr.p_a_1 Bool) - (top.usr.q_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.k_a_1 Int) - (top.impl.usr.m_a_1 Int) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.k0_a_0 Int) - (top.usr.m0_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.impl.usr.m_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.m_a_1 top.impl.usr.m_a_0) - (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) - (= - top.res.abs_2_a_1 - (and - (and - (and (>= top.impl.usr.k_a_1 1) (>= top.impl.usr.m_a_1 1)) - (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) - (<= top.res.abs_1_a_1 top.impl.usr.m_a_1))) - (let - ((X1 Bool top.res.abs_3_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (<= top.res.abs_0_a_1 (+ top.impl.usr.k_a_1 top.impl.usr.m_a_1)))) - (__node_trans_Sofar_0 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Age_0 - top.usr.p_a_1 - top.res.abs_0_a_1 - top.res.inst_1_a_1 - top.usr.p_a_0 - top.res.abs_0_a_0 - top.res.inst_1_a_0) - (__node_trans_Age_0 - top.usr.q_a_1 - top.res.abs_1_a_1 - top.res.inst_0_a_1 - top.usr.q_a_0 - top.res.abs_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.k0 Int) - (top.usr.m0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.k0 Int) -(declare-primed-var top.usr.m0 Int) -(declare-primed-var top.usr.p Bool) -(declare-primed-var top.usr.q Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.k Int) -(declare-primed-var top.impl.usr.m Int) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.k0 Int) - (top.usr.m0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.impl.usr.m top.usr.m0) - (= top.impl.usr.k top.usr.k0) - (= - top.res.abs_2 - (and - (and - (and (>= top.impl.usr.k 1) (>= top.impl.usr.m 1)) - (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) - (<= top.res.abs_1 top.impl.usr.m))) - (let - ((X1 Bool top.res.abs_3)) - (and - (= - top.usr.OK - (=> X1 (<= top.res.abs_0 (+ top.impl.usr.k top.impl.usr.m)))) - (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_2) - (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_1) - (__node_init_Age_0 top.usr.q top.res.abs_1 top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.k0 Int) - (top.usr.m0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.k0! Int) - (top.usr.m0! Int) - (top.usr.p! Bool) - (top.usr.q! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.k! Int) - (top.impl.usr.m! Int) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.impl.usr.m! top.impl.usr.m) - (= top.impl.usr.k! top.impl.usr.k) - (= - top.res.abs_2! - (and - (and - (and (>= top.impl.usr.k! 1) (>= top.impl.usr.m! 1)) - (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) - (<= top.res.abs_1! top.impl.usr.m!))) - (let - ((X1 Bool top.res.abs_3!)) - (and - (= - top.usr.OK! - (=> X1 (<= top.res.abs_0! (+ top.impl.usr.k! top.impl.usr.m!)))) - (__node_trans_Sofar_0 - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Age_0 - top.usr.p! - top.res.abs_0! - top.res.inst_1! - top.usr.p - top.res.abs_0 - top.res.inst_1) - (__node_trans_Age_0 - top.usr.q! - top.res.abs_1! - top.res.inst_0! - top.usr.q - top.res.abs_1 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.k0 Int) - (top.usr.m0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Age_0 ((Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0)) +(define-fun __node_trans_Age_0 ((Age.usr.p_a_1 Bool) (Age.usr.age_of_p_a_1 Int) (Age.res.init_flag_a_1 Bool) (Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (+ (- Age.usr.age_of_p_a_0 1) 1) 0)) (not Age.res.init_flag_a_1))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.k0_a_0 Int) (top.usr.m0_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.impl.usr.m_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.m_a_0 top.usr.m0_a_0) (= top.impl.usr.k_a_0 top.usr.k0_a_0) (= top.res.abs_2_a_0 (and (and (and (>= top.impl.usr.k_a_0 1) (>= top.impl.usr.m_a_0 1)) (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) (<= top.res.abs_1_a_0 top.impl.usr.m_a_0))) (let ((X1 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (<= top.res.abs_0_a_0 (+ top.impl.usr.k_a_0 top.impl.usr.m_a_0)))) (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) (__node_init_Age_0 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.k0_a_1 Int) (top.usr.m0_a_1 Int) (top.usr.p_a_1 Bool) (top.usr.q_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.k_a_1 Int) (top.impl.usr.m_a_1 Int) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.k0_a_0 Int) (top.usr.m0_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.impl.usr.m_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.m_a_1 top.impl.usr.m_a_0) (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) (= top.res.abs_2_a_1 (and (and (and (>= top.impl.usr.k_a_1 1) (>= top.impl.usr.m_a_1 1)) (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) (<= top.res.abs_1_a_1 top.impl.usr.m_a_1))) (let ((X1 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (<= top.res.abs_0_a_1 (+ top.impl.usr.k_a_1 top.impl.usr.m_a_1)))) (__node_trans_Sofar_0 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Age_0 top.usr.p_a_1 top.res.abs_0_a_1 top.res.inst_1_a_1 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) (__node_trans_Age_0 top.usr.q_a_1 top.res.abs_1_a_1 top.res.inst_0_a_1 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.k0 Int) (top.usr.m0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.k0 Int) (top.usr.m0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.m top.usr.m0) (= top.impl.usr.k top.usr.k0) (= top.res.abs_2 (and (and (and (>= top.impl.usr.k 1) (>= top.impl.usr.m 1)) (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) (<= top.res.abs_1 top.impl.usr.m))) (let ((X1 top.res.abs_3)) (and (= top.usr.OK (=> X1 (<= top.res.abs_0 (+ top.impl.usr.k top.impl.usr.m)))) (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_1) (__node_init_Age_0 top.usr.q top.res.abs_1 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.k0 Int) (top.usr.m0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.k0! Int) (top.usr.m0! Int) (top.usr.p! Bool) (top.usr.q! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.k! Int) (top.impl.usr.m! Int) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.m! top.impl.usr.m) (= top.impl.usr.k! top.impl.usr.k) (= top.res.abs_2! (and (and (and (>= top.impl.usr.k! 1) (>= top.impl.usr.m! 1)) (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) (<= top.res.abs_1! top.impl.usr.m!))) (let ((X1 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (<= top.res.abs_0! (+ top.impl.usr.k! top.impl.usr.m!)))) (__node_trans_Sofar_0 top.res.abs_2! top.res.abs_3! top.res.inst_2! top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Age_0 top.usr.p! top.res.abs_0! top.res.inst_1! top.usr.p top.res.abs_0 top.res.inst_1) (__node_trans_Age_0 top.usr.q! top.res.abs_1! top.res.inst_0! top.usr.q top.res.abs_1 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.k0 Int) (top.usr.m0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/durationThm_3_e7_334_e3_42.sl b/benchmarks/LIA/Lustre/durationThm_3_e7_334_e3_42.sl index c482d1a..1f68af0 100644 --- a/benchmarks/LIA/Lustre/durationThm_3_e7_334_e3_42.sl +++ b/benchmarks/LIA/Lustre/durationThm_3_e7_334_e3_42.sl @@ -1,349 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_Age_0 ( - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0) -) - -(define-fun - __node_trans_Age_0 ( - (Age.usr.p_a_1 Bool) - (Age.usr.age_of_p_a_1 Int) - (Age.res.init_flag_a_1 Bool) - (Age.usr.p_a_0 Bool) - (Age.usr.age_of_p_a_0 Int) - (Age.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (- Age.usr.age_of_p_a_0 1) 0)) - (not Age.res.init_flag_a_1)) -) - -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.k0_a_0 Int) - (top.usr.m0_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.impl.usr.m_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.m_a_0 top.usr.m0_a_0) - (= top.impl.usr.k_a_0 top.usr.k0_a_0) - (= - top.res.abs_2_a_0 - (and - (and - (and (>= top.impl.usr.k_a_0 1) (>= top.impl.usr.m_a_0 1)) - (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) - (<= top.res.abs_1_a_0 top.impl.usr.m_a_0))) - (let - ((X1 Bool top.res.abs_3_a_0)) - (and - (= - top.usr.OK_a_0 - (=> X1 (<= top.res.abs_0_a_0 (+ top.impl.usr.k_a_0 top.impl.usr.m_a_0)))) - (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) - (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) - (__node_init_Age_0 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.k0_a_1 Int) - (top.usr.m0_a_1 Int) - (top.usr.p_a_1 Bool) - (top.usr.q_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.k_a_1 Int) - (top.impl.usr.m_a_1 Int) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.k0_a_0 Int) - (top.usr.m0_a_0 Int) - (top.usr.p_a_0 Bool) - (top.usr.q_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.k_a_0 Int) - (top.impl.usr.m_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.m_a_1 top.impl.usr.m_a_0) - (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) - (= - top.res.abs_2_a_1 - (and - (and - (and (>= top.impl.usr.k_a_1 1) (>= top.impl.usr.m_a_1 1)) - (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) - (<= top.res.abs_1_a_1 top.impl.usr.m_a_1))) - (let - ((X1 Bool top.res.abs_3_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X1 (<= top.res.abs_0_a_1 (+ top.impl.usr.k_a_1 top.impl.usr.m_a_1)))) - (__node_trans_Sofar_0 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_Age_0 - top.usr.p_a_1 - top.res.abs_0_a_1 - top.res.inst_1_a_1 - top.usr.p_a_0 - top.res.abs_0_a_0 - top.res.inst_1_a_0) - (__node_trans_Age_0 - top.usr.q_a_1 - top.res.abs_1_a_1 - top.res.inst_0_a_1 - top.usr.q_a_0 - top.res.abs_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.k0 Int) - (top.usr.m0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.k0 Int) -(declare-primed-var top.usr.m0 Int) -(declare-primed-var top.usr.p Bool) -(declare-primed-var top.usr.q Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.k Int) -(declare-primed-var top.impl.usr.m Int) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.k0 Int) - (top.usr.m0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.impl.usr.m top.usr.m0) - (= top.impl.usr.k top.usr.k0) - (= - top.res.abs_2 - (and - (and - (and (>= top.impl.usr.k 1) (>= top.impl.usr.m 1)) - (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) - (<= top.res.abs_1 top.impl.usr.m))) - (let - ((X1 Bool top.res.abs_3)) - (and - (= - top.usr.OK - (=> X1 (<= top.res.abs_0 (+ top.impl.usr.k top.impl.usr.m)))) - (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_2) - (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_1) - (__node_init_Age_0 top.usr.q top.res.abs_1 top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.k0 Int) - (top.usr.m0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.k0! Int) - (top.usr.m0! Int) - (top.usr.p! Bool) - (top.usr.q! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.k! Int) - (top.impl.usr.m! Int) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.impl.usr.m! top.impl.usr.m) - (= top.impl.usr.k! top.impl.usr.k) - (= - top.res.abs_2! - (and - (and - (and (>= top.impl.usr.k! 1) (>= top.impl.usr.m! 1)) - (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) - (<= top.res.abs_1! top.impl.usr.m!))) - (let - ((X1 Bool top.res.abs_3!)) - (and - (= - top.usr.OK! - (=> X1 (<= top.res.abs_0! (+ top.impl.usr.k! top.impl.usr.m!)))) - (__node_trans_Sofar_0 - top.res.abs_2! - top.res.abs_3! - top.res.inst_2! - top.res.abs_2 - top.res.abs_3 - top.res.inst_2) - (__node_trans_Age_0 - top.usr.p! - top.res.abs_0! - top.res.inst_1! - top.usr.p - top.res.abs_0 - top.res.inst_1) - (__node_trans_Age_0 - top.usr.q! - top.res.abs_1! - top.res.inst_0! - top.usr.q - top.res.abs_1 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.k0 Int) - (top.usr.m0 Int) - (top.usr.p Bool) - (top.usr.q Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.k Int) - (top.impl.usr.m Int) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Age_0 ((Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_0 0) Age.res.init_flag_a_0)) +(define-fun __node_trans_Age_0 ((Age.usr.p_a_1 Bool) (Age.usr.age_of_p_a_1 Int) (Age.res.init_flag_a_1 Bool) (Age.usr.p_a_0 Bool) (Age.usr.age_of_p_a_0 Int) (Age.res.init_flag_a_0 Bool)) Bool + (and (= Age.usr.age_of_p_a_1 (ite Age.usr.p_a_0 (- Age.usr.age_of_p_a_0 1) 0)) (not Age.res.init_flag_a_1))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.k0_a_0 Int) (top.usr.m0_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.impl.usr.m_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.m_a_0 top.usr.m0_a_0) (= top.impl.usr.k_a_0 top.usr.k0_a_0) (= top.res.abs_2_a_0 (and (and (and (>= top.impl.usr.k_a_0 1) (>= top.impl.usr.m_a_0 1)) (=> (>= top.res.abs_0_a_0 top.impl.usr.k_a_0) top.usr.q_a_0)) (<= top.res.abs_1_a_0 top.impl.usr.m_a_0))) (let ((X1 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (<= top.res.abs_0_a_0 (+ top.impl.usr.k_a_0 top.impl.usr.m_a_0)))) (__node_init_Sofar_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_Age_0 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) (__node_init_Age_0 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.k0_a_1 Int) (top.usr.m0_a_1 Int) (top.usr.p_a_1 Bool) (top.usr.q_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.k_a_1 Int) (top.impl.usr.m_a_1 Int) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.k0_a_0 Int) (top.usr.m0_a_0 Int) (top.usr.p_a_0 Bool) (top.usr.q_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.k_a_0 Int) (top.impl.usr.m_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.m_a_1 top.impl.usr.m_a_0) (= top.impl.usr.k_a_1 top.impl.usr.k_a_0) (= top.res.abs_2_a_1 (and (and (and (>= top.impl.usr.k_a_1 1) (>= top.impl.usr.m_a_1 1)) (=> (>= top.res.abs_0_a_1 top.impl.usr.k_a_1) top.usr.q_a_1)) (<= top.res.abs_1_a_1 top.impl.usr.m_a_1))) (let ((X1 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (<= top.res.abs_0_a_1 (+ top.impl.usr.k_a_1 top.impl.usr.m_a_1)))) (__node_trans_Sofar_0 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_Age_0 top.usr.p_a_1 top.res.abs_0_a_1 top.res.inst_1_a_1 top.usr.p_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) (__node_trans_Age_0 top.usr.q_a_1 top.res.abs_1_a_1 top.res.inst_0_a_1 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.k0 Int) (top.usr.m0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.k0 Int) (top.usr.m0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.m top.usr.m0) (= top.impl.usr.k top.usr.k0) (= top.res.abs_2 (and (and (and (>= top.impl.usr.k 1) (>= top.impl.usr.m 1)) (=> (>= top.res.abs_0 top.impl.usr.k) top.usr.q)) (<= top.res.abs_1 top.impl.usr.m))) (let ((X1 top.res.abs_3)) (and (= top.usr.OK (=> X1 (<= top.res.abs_0 (+ top.impl.usr.k top.impl.usr.m)))) (__node_init_Sofar_0 top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_init_Age_0 top.usr.p top.res.abs_0 top.res.inst_1) (__node_init_Age_0 top.usr.q top.res.abs_1 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.k0 Int) (top.usr.m0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.k0! Int) (top.usr.m0! Int) (top.usr.p! Bool) (top.usr.q! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.k! Int) (top.impl.usr.m! Int) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.m! top.impl.usr.m) (= top.impl.usr.k! top.impl.usr.k) (= top.res.abs_2! (and (and (and (>= top.impl.usr.k! 1) (>= top.impl.usr.m! 1)) (=> (>= top.res.abs_0! top.impl.usr.k!) top.usr.q!)) (<= top.res.abs_1! top.impl.usr.m!))) (let ((X1 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (<= top.res.abs_0! (+ top.impl.usr.k! top.impl.usr.m!)))) (__node_trans_Sofar_0 top.res.abs_2! top.res.abs_3! top.res.inst_2! top.res.abs_2 top.res.abs_3 top.res.inst_2) (__node_trans_Age_0 top.usr.p! top.res.abs_0! top.res.inst_1! top.usr.p top.res.abs_0 top.res.inst_1) (__node_trans_Age_0 top.usr.q! top.res.abs_1! top.res.inst_0! top.usr.q top.res.abs_1 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.k0 Int) (top.usr.m0 Int) (top.usr.p Bool) (top.usr.q Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.k Int) (top.impl.usr.m Int) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ex3.sl b/benchmarks/LIA/Lustre/ex3.sl index 0c2419c..307016e 100644 --- a/benchmarks/LIA/Lustre/ex3.sl +++ b/benchmarks/LIA/Lustre/ex3.sl @@ -1,421 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_COUNTER_0 ( - (COUNTER.usr.init_a_0 Int) - (COUNTER.usr.incr_a_0 Int) - (COUNTER.usr.X_a_0 Bool) - (COUNTER.usr.reset_a_0 Bool) - (COUNTER.usr.C_a_0 Int) - (COUNTER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int COUNTER.usr.init_a_0)) - (and - (= - COUNTER.usr.C_a_0 - (ite - COUNTER.usr.reset_a_0 - COUNTER.usr.init_a_0 - (ite COUNTER.usr.X_a_0 (+ X1 COUNTER.usr.incr_a_0) X1))) - COUNTER.res.init_flag_a_0)) -) - -(define-fun - __node_trans_COUNTER_0 ( - (COUNTER.usr.init_a_1 Int) - (COUNTER.usr.incr_a_1 Int) - (COUNTER.usr.X_a_1 Bool) - (COUNTER.usr.reset_a_1 Bool) - (COUNTER.usr.C_a_1 Int) - (COUNTER.res.init_flag_a_1 Bool) - (COUNTER.usr.init_a_0 Int) - (COUNTER.usr.incr_a_0 Int) - (COUNTER.usr.X_a_0 Bool) - (COUNTER.usr.reset_a_0 Bool) - (COUNTER.usr.C_a_0 Int) - (COUNTER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int COUNTER.usr.C_a_0)) - (and - (= - COUNTER.usr.C_a_1 - (ite - COUNTER.usr.reset_a_1 - COUNTER.usr.init_a_1 - (ite COUNTER.usr.X_a_1 (+ X1 COUNTER.usr.incr_a_1) X1))) - (not COUNTER.res.init_flag_a_1))) -) - -(define-fun - __node_init_speed_0 ( - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.usr.late_a_0 false) - (= speed.res.abs_2_a_0 false) - (= speed.res.abs_1_a_0 (or speed.usr.beacon_a_0 speed.usr.second_a_0)) - (= speed.res.abs_0_a_0 0) - (= - speed.impl.usr.incr_a_0 - (ite - (and speed.usr.beacon_a_0 (not speed.usr.second_a_0)) - 1 - (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) 2 0))) - (let - ((X1 Int speed.res.abs_3_a_0)) - (and - (= speed.usr.early_a_0 false) - (__node_init_COUNTER_0 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_0 0) - (<= 0 speed.impl.usr.incr_a_0 2) - speed.res.init_flag_a_0))) -) - -(define-fun - __node_trans_speed_0 ( - (speed.usr.beacon_a_1 Bool) - (speed.usr.second_a_1 Bool) - (speed.usr.late_a_1 Bool) - (speed.usr.early_a_1 Bool) - (speed.res.init_flag_a_1 Bool) - (speed.impl.usr.incr_a_1 Int) - (speed.res.abs_0_a_1 Int) - (speed.res.abs_1_a_1 Bool) - (speed.res.abs_2_a_1 Bool) - (speed.res.abs_3_a_1 Int) - (speed.res.inst_0_a_1 Bool) - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.res.abs_2_a_1 false) - (= speed.res.abs_1_a_1 (or speed.usr.beacon_a_1 speed.usr.second_a_1)) - (= speed.res.abs_0_a_1 0) - (= - speed.impl.usr.incr_a_1 - (ite - (and speed.usr.beacon_a_1 (not speed.usr.second_a_1)) - 1 - (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) 2 0))) - (let - ((X1 Int speed.res.abs_3_a_1)) - (and - (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) - (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) - (__node_trans_COUNTER_0 - speed.res.abs_0_a_1 - speed.impl.usr.incr_a_1 - speed.res.abs_1_a_1 - speed.res.abs_2_a_1 - speed.res.abs_3_a_1 - speed.res.inst_0_a_1 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_1 0) - (<= 0 speed.impl.usr.incr_a_1 2) - (not speed.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.early_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Bool top.res.abs_0_a_0)) - (and - (= top.impl.usr.early_a_0 top.res.abs_1_a_0) - (__node_init_speed_0 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.beacon_a_1 Bool) - (top.usr.second_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.early_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Int) - (top.res.inst_0_a_1 Bool) - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.early_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (or (not top.impl.usr.early_a_0) (not X1))) - (= top.impl.usr.early_a_1 top.res.abs_1_a_1) - (__node_trans_speed_0 - top.usr.beacon_a_1 - top.usr.second_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.res.inst_0_a_1 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))) -) - - - -(synth-inv str_invariant( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.beacon Bool) -(declare-primed-var top.usr.second Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.early Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Int) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Bool top.res.abs_0)) - (and - (= top.impl.usr.early top.res.abs_1) - (__node_init_speed_0 - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.beacon! Bool) - (top.usr.second! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.early! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Int) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_0!)) - (and - (= top.usr.OK! (or (not top.impl.usr.early) (not X1))) - (= top.impl.usr.early! top.res.abs_1!) - (__node_trans_speed_0 - top.usr.beacon! - top.usr.second! - top.res.abs_0! - top.res.abs_1! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.res.inst_0! - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - (not top.res.init_flag!))) -) - -(define-fun - prop ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_COUNTER_0 ((COUNTER.usr.init_a_0 Int) (COUNTER.usr.incr_a_0 Int) (COUNTER.usr.X_a_0 Bool) (COUNTER.usr.reset_a_0 Bool) (COUNTER.usr.C_a_0 Int) (COUNTER.res.init_flag_a_0 Bool)) Bool + (let ((X1 COUNTER.usr.init_a_0)) (and (= COUNTER.usr.C_a_0 (ite COUNTER.usr.reset_a_0 COUNTER.usr.init_a_0 (ite COUNTER.usr.X_a_0 (+ X1 COUNTER.usr.incr_a_0) X1))) COUNTER.res.init_flag_a_0))) +(define-fun __node_trans_COUNTER_0 ((COUNTER.usr.init_a_1 Int) (COUNTER.usr.incr_a_1 Int) (COUNTER.usr.X_a_1 Bool) (COUNTER.usr.reset_a_1 Bool) (COUNTER.usr.C_a_1 Int) (COUNTER.res.init_flag_a_1 Bool) (COUNTER.usr.init_a_0 Int) (COUNTER.usr.incr_a_0 Int) (COUNTER.usr.X_a_0 Bool) (COUNTER.usr.reset_a_0 Bool) (COUNTER.usr.C_a_0 Int) (COUNTER.res.init_flag_a_0 Bool)) Bool + (let ((X1 COUNTER.usr.C_a_0)) (and (= COUNTER.usr.C_a_1 (ite COUNTER.usr.reset_a_1 COUNTER.usr.init_a_1 (ite COUNTER.usr.X_a_1 (+ X1 COUNTER.usr.incr_a_1) X1))) (not COUNTER.res.init_flag_a_1)))) +(define-fun __node_init_speed_0 ((speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.usr.late_a_0 false) (= speed.res.abs_2_a_0 false) (= speed.res.abs_1_a_0 (or speed.usr.beacon_a_0 speed.usr.second_a_0)) (= speed.res.abs_0_a_0 0) (= speed.impl.usr.incr_a_0 (ite (and speed.usr.beacon_a_0 (not speed.usr.second_a_0)) 1 (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) 2 0))) (let ((X1 speed.res.abs_3_a_0)) (and (= speed.usr.early_a_0 false) (__node_init_COUNTER_0 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_0 0) (<= 0 speed.impl.usr.incr_a_0 2) speed.res.init_flag_a_0)))) +(define-fun __node_trans_speed_0 ((speed.usr.beacon_a_1 Bool) (speed.usr.second_a_1 Bool) (speed.usr.late_a_1 Bool) (speed.usr.early_a_1 Bool) (speed.res.init_flag_a_1 Bool) (speed.impl.usr.incr_a_1 Int) (speed.res.abs_0_a_1 Int) (speed.res.abs_1_a_1 Bool) (speed.res.abs_2_a_1 Bool) (speed.res.abs_3_a_1 Int) (speed.res.inst_0_a_1 Bool) (speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.res.abs_2_a_1 false) (= speed.res.abs_1_a_1 (or speed.usr.beacon_a_1 speed.usr.second_a_1)) (= speed.res.abs_0_a_1 0) (= speed.impl.usr.incr_a_1 (ite (and speed.usr.beacon_a_1 (not speed.usr.second_a_1)) 1 (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) 2 0))) (let ((X1 speed.res.abs_3_a_1)) (and (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) (__node_trans_COUNTER_0 speed.res.abs_0_a_1 speed.impl.usr.incr_a_1 speed.res.abs_1_a_1 speed.res.abs_2_a_1 speed.res.abs_3_a_1 speed.res.inst_0_a_1 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_1 0) (<= 0 speed.impl.usr.incr_a_1 2) (not speed.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.early_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (and (= top.impl.usr.early_a_0 top.res.abs_1_a_0) (__node_init_speed_0 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.beacon_a_1 Bool) (top.usr.second_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.early_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Int) (top.res.inst_0_a_1 Bool) (top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.early_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (or (not top.impl.usr.early_a_0) (not X1))) (= top.impl.usr.early_a_1 top.res.abs_1_a_1) (__node_trans_speed_0 top.usr.beacon_a_1 top.usr.second_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.res.inst_0_a_1 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))) +(synth-inv str_invariant ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (and (= top.impl.usr.early top.res.abs_1) (__node_init_speed_0 top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool) (top.usr.beacon! Bool) (top.usr.second! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.early! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Int) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_0!)) (and (= top.usr.OK! (or (not top.impl.usr.early) (not X1))) (= top.impl.usr.early! top.res.abs_1!) (__node_trans_speed_0 top.usr.beacon! top.usr.second! top.res.abs_0! top.res.abs_1! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.res.inst_0! top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) (not top.res.init_flag!)))) +(define-fun prop ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ex3_e7_590_e7_590.sl b/benchmarks/LIA/Lustre/ex3_e7_590_e7_590.sl index 8be6ac9..cd1c25d 100644 --- a/benchmarks/LIA/Lustre/ex3_e7_590_e7_590.sl +++ b/benchmarks/LIA/Lustre/ex3_e7_590_e7_590.sl @@ -1,421 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_COUNTER_0 ( - (COUNTER.usr.init_a_0 Int) - (COUNTER.usr.incr_a_0 Int) - (COUNTER.usr.X_a_0 Bool) - (COUNTER.usr.reset_a_0 Bool) - (COUNTER.usr.C_a_0 Int) - (COUNTER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int COUNTER.usr.init_a_0)) - (and - (= - COUNTER.usr.C_a_0 - (ite - COUNTER.usr.reset_a_0 - COUNTER.usr.init_a_0 - (ite COUNTER.usr.X_a_0 (+ X1 COUNTER.usr.incr_a_0) X1))) - COUNTER.res.init_flag_a_0)) -) - -(define-fun - __node_trans_COUNTER_0 ( - (COUNTER.usr.init_a_1 Int) - (COUNTER.usr.incr_a_1 Int) - (COUNTER.usr.X_a_1 Bool) - (COUNTER.usr.reset_a_1 Bool) - (COUNTER.usr.C_a_1 Int) - (COUNTER.res.init_flag_a_1 Bool) - (COUNTER.usr.init_a_0 Int) - (COUNTER.usr.incr_a_0 Int) - (COUNTER.usr.X_a_0 Bool) - (COUNTER.usr.reset_a_0 Bool) - (COUNTER.usr.C_a_0 Int) - (COUNTER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int COUNTER.usr.C_a_0)) - (and - (= - COUNTER.usr.C_a_1 - (ite - COUNTER.usr.reset_a_1 - COUNTER.usr.init_a_1 - (ite COUNTER.usr.X_a_1 (+ X1 COUNTER.usr.incr_a_1) X1))) - (not COUNTER.res.init_flag_a_1))) -) - -(define-fun - __node_init_speed_0 ( - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.usr.late_a_0 false) - (= speed.res.abs_2_a_0 false) - (= speed.res.abs_1_a_0 (or speed.usr.beacon_a_0 speed.usr.second_a_0)) - (= speed.res.abs_0_a_0 0) - (= - speed.impl.usr.incr_a_0 - (ite - (or speed.usr.beacon_a_0 (not speed.usr.second_a_0)) - 1 - (ite (or speed.usr.second_a_0 (not speed.usr.beacon_a_0)) 2 0))) - (let - ((X1 Int speed.res.abs_3_a_0)) - (and - (= speed.usr.early_a_0 false) - (__node_init_COUNTER_0 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_0 0) - (<= 0 speed.impl.usr.incr_a_0 2) - speed.res.init_flag_a_0))) -) - -(define-fun - __node_trans_speed_0 ( - (speed.usr.beacon_a_1 Bool) - (speed.usr.second_a_1 Bool) - (speed.usr.late_a_1 Bool) - (speed.usr.early_a_1 Bool) - (speed.res.init_flag_a_1 Bool) - (speed.impl.usr.incr_a_1 Int) - (speed.res.abs_0_a_1 Int) - (speed.res.abs_1_a_1 Bool) - (speed.res.abs_2_a_1 Bool) - (speed.res.abs_3_a_1 Int) - (speed.res.inst_0_a_1 Bool) - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.res.abs_2_a_1 false) - (= speed.res.abs_1_a_1 (or speed.usr.beacon_a_1 speed.usr.second_a_1)) - (= speed.res.abs_0_a_1 0) - (= - speed.impl.usr.incr_a_1 - (ite - (or speed.usr.beacon_a_1 (not speed.usr.second_a_1)) - 1 - (ite (or speed.usr.second_a_1 (not speed.usr.beacon_a_1)) 2 0))) - (let - ((X1 Int speed.res.abs_3_a_1)) - (and - (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) - (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) - (__node_trans_COUNTER_0 - speed.res.abs_0_a_1 - speed.impl.usr.incr_a_1 - speed.res.abs_1_a_1 - speed.res.abs_2_a_1 - speed.res.abs_3_a_1 - speed.res.inst_0_a_1 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_1 0) - (<= 0 speed.impl.usr.incr_a_1 2) - (not speed.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.early_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Bool top.res.abs_0_a_0)) - (and - (= top.impl.usr.early_a_0 top.res.abs_1_a_0) - (__node_init_speed_0 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.beacon_a_1 Bool) - (top.usr.second_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.early_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Int) - (top.res.inst_0_a_1 Bool) - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.early_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (or (not top.impl.usr.early_a_0) (not X1))) - (= top.impl.usr.early_a_1 top.res.abs_1_a_1) - (__node_trans_speed_0 - top.usr.beacon_a_1 - top.usr.second_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.res.inst_0_a_1 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))) -) - - - -(synth-inv str_invariant( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.beacon Bool) -(declare-primed-var top.usr.second Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.early Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Int) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Bool top.res.abs_0)) - (and - (= top.impl.usr.early top.res.abs_1) - (__node_init_speed_0 - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.beacon! Bool) - (top.usr.second! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.early! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Int) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_0!)) - (and - (= top.usr.OK! (or (not top.impl.usr.early) (not X1))) - (= top.impl.usr.early! top.res.abs_1!) - (__node_trans_speed_0 - top.usr.beacon! - top.usr.second! - top.res.abs_0! - top.res.abs_1! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.res.inst_0! - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - (not top.res.init_flag!))) -) - -(define-fun - prop ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_COUNTER_0 ((COUNTER.usr.init_a_0 Int) (COUNTER.usr.incr_a_0 Int) (COUNTER.usr.X_a_0 Bool) (COUNTER.usr.reset_a_0 Bool) (COUNTER.usr.C_a_0 Int) (COUNTER.res.init_flag_a_0 Bool)) Bool + (let ((X1 COUNTER.usr.init_a_0)) (and (= COUNTER.usr.C_a_0 (ite COUNTER.usr.reset_a_0 COUNTER.usr.init_a_0 (ite COUNTER.usr.X_a_0 (+ X1 COUNTER.usr.incr_a_0) X1))) COUNTER.res.init_flag_a_0))) +(define-fun __node_trans_COUNTER_0 ((COUNTER.usr.init_a_1 Int) (COUNTER.usr.incr_a_1 Int) (COUNTER.usr.X_a_1 Bool) (COUNTER.usr.reset_a_1 Bool) (COUNTER.usr.C_a_1 Int) (COUNTER.res.init_flag_a_1 Bool) (COUNTER.usr.init_a_0 Int) (COUNTER.usr.incr_a_0 Int) (COUNTER.usr.X_a_0 Bool) (COUNTER.usr.reset_a_0 Bool) (COUNTER.usr.C_a_0 Int) (COUNTER.res.init_flag_a_0 Bool)) Bool + (let ((X1 COUNTER.usr.C_a_0)) (and (= COUNTER.usr.C_a_1 (ite COUNTER.usr.reset_a_1 COUNTER.usr.init_a_1 (ite COUNTER.usr.X_a_1 (+ X1 COUNTER.usr.incr_a_1) X1))) (not COUNTER.res.init_flag_a_1)))) +(define-fun __node_init_speed_0 ((speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.usr.late_a_0 false) (= speed.res.abs_2_a_0 false) (= speed.res.abs_1_a_0 (or speed.usr.beacon_a_0 speed.usr.second_a_0)) (= speed.res.abs_0_a_0 0) (= speed.impl.usr.incr_a_0 (ite (or speed.usr.beacon_a_0 (not speed.usr.second_a_0)) 1 (ite (or speed.usr.second_a_0 (not speed.usr.beacon_a_0)) 2 0))) (let ((X1 speed.res.abs_3_a_0)) (and (= speed.usr.early_a_0 false) (__node_init_COUNTER_0 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_0 0) (<= 0 speed.impl.usr.incr_a_0 2) speed.res.init_flag_a_0)))) +(define-fun __node_trans_speed_0 ((speed.usr.beacon_a_1 Bool) (speed.usr.second_a_1 Bool) (speed.usr.late_a_1 Bool) (speed.usr.early_a_1 Bool) (speed.res.init_flag_a_1 Bool) (speed.impl.usr.incr_a_1 Int) (speed.res.abs_0_a_1 Int) (speed.res.abs_1_a_1 Bool) (speed.res.abs_2_a_1 Bool) (speed.res.abs_3_a_1 Int) (speed.res.inst_0_a_1 Bool) (speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.res.abs_2_a_1 false) (= speed.res.abs_1_a_1 (or speed.usr.beacon_a_1 speed.usr.second_a_1)) (= speed.res.abs_0_a_1 0) (= speed.impl.usr.incr_a_1 (ite (or speed.usr.beacon_a_1 (not speed.usr.second_a_1)) 1 (ite (or speed.usr.second_a_1 (not speed.usr.beacon_a_1)) 2 0))) (let ((X1 speed.res.abs_3_a_1)) (and (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) (__node_trans_COUNTER_0 speed.res.abs_0_a_1 speed.impl.usr.incr_a_1 speed.res.abs_1_a_1 speed.res.abs_2_a_1 speed.res.abs_3_a_1 speed.res.inst_0_a_1 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_1 0) (<= 0 speed.impl.usr.incr_a_1 2) (not speed.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.early_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (and (= top.impl.usr.early_a_0 top.res.abs_1_a_0) (__node_init_speed_0 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.beacon_a_1 Bool) (top.usr.second_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.early_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Int) (top.res.inst_0_a_1 Bool) (top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.early_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (or (not top.impl.usr.early_a_0) (not X1))) (= top.impl.usr.early_a_1 top.res.abs_1_a_1) (__node_trans_speed_0 top.usr.beacon_a_1 top.usr.second_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.res.inst_0_a_1 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))) +(synth-inv str_invariant ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (and (= top.impl.usr.early top.res.abs_1) (__node_init_speed_0 top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool) (top.usr.beacon! Bool) (top.usr.second! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.early! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Int) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_0!)) (and (= top.usr.OK! (or (not top.impl.usr.early) (not X1))) (= top.impl.usr.early! top.res.abs_1!) (__node_trans_speed_0 top.usr.beacon! top.usr.second! top.res.abs_0! top.res.abs_1! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.res.inst_0! top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) (not top.res.init_flag!)))) +(define-fun prop ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ex3_e7_655.sl b/benchmarks/LIA/Lustre/ex3_e7_655.sl index 4c40b94..6ddc6cb 100644 --- a/benchmarks/LIA/Lustre/ex3_e7_655.sl +++ b/benchmarks/LIA/Lustre/ex3_e7_655.sl @@ -1,421 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_COUNTER_0 ( - (COUNTER.usr.init_a_0 Int) - (COUNTER.usr.incr_a_0 Int) - (COUNTER.usr.X_a_0 Bool) - (COUNTER.usr.reset_a_0 Bool) - (COUNTER.usr.C_a_0 Int) - (COUNTER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int COUNTER.usr.init_a_0)) - (and - (= - COUNTER.usr.C_a_0 - (ite - COUNTER.usr.reset_a_0 - COUNTER.usr.init_a_0 - (ite COUNTER.usr.X_a_0 (+ X1 COUNTER.usr.incr_a_0) X1))) - COUNTER.res.init_flag_a_0)) -) - -(define-fun - __node_trans_COUNTER_0 ( - (COUNTER.usr.init_a_1 Int) - (COUNTER.usr.incr_a_1 Int) - (COUNTER.usr.X_a_1 Bool) - (COUNTER.usr.reset_a_1 Bool) - (COUNTER.usr.C_a_1 Int) - (COUNTER.res.init_flag_a_1 Bool) - (COUNTER.usr.init_a_0 Int) - (COUNTER.usr.incr_a_0 Int) - (COUNTER.usr.X_a_0 Bool) - (COUNTER.usr.reset_a_0 Bool) - (COUNTER.usr.C_a_0 Int) - (COUNTER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int COUNTER.usr.C_a_0)) - (and - (= - COUNTER.usr.C_a_1 - (ite - COUNTER.usr.reset_a_1 - COUNTER.usr.init_a_1 - (ite COUNTER.usr.X_a_1 (+ X1 COUNTER.usr.incr_a_1) X1))) - (not COUNTER.res.init_flag_a_1))) -) - -(define-fun - __node_init_speed_0 ( - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.usr.late_a_0 false) - (= speed.res.abs_2_a_0 false) - (= speed.res.abs_1_a_0 (or speed.usr.beacon_a_0 speed.usr.second_a_0)) - (= speed.res.abs_0_a_0 0) - (= - speed.impl.usr.incr_a_0 - (ite - (or speed.usr.beacon_a_0 (not speed.usr.second_a_0)) - 1 - (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) 2 0))) - (let - ((X1 Int speed.res.abs_3_a_0)) - (and - (= speed.usr.early_a_0 false) - (__node_init_COUNTER_0 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_0 0) - (<= 0 speed.impl.usr.incr_a_0 2) - speed.res.init_flag_a_0))) -) - -(define-fun - __node_trans_speed_0 ( - (speed.usr.beacon_a_1 Bool) - (speed.usr.second_a_1 Bool) - (speed.usr.late_a_1 Bool) - (speed.usr.early_a_1 Bool) - (speed.res.init_flag_a_1 Bool) - (speed.impl.usr.incr_a_1 Int) - (speed.res.abs_0_a_1 Int) - (speed.res.abs_1_a_1 Bool) - (speed.res.abs_2_a_1 Bool) - (speed.res.abs_3_a_1 Int) - (speed.res.inst_0_a_1 Bool) - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.res.abs_2_a_1 false) - (= speed.res.abs_1_a_1 (or speed.usr.beacon_a_1 speed.usr.second_a_1)) - (= speed.res.abs_0_a_1 0) - (= - speed.impl.usr.incr_a_1 - (ite - (or speed.usr.beacon_a_1 (not speed.usr.second_a_1)) - 1 - (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) 2 0))) - (let - ((X1 Int speed.res.abs_3_a_1)) - (and - (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) - (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) - (__node_trans_COUNTER_0 - speed.res.abs_0_a_1 - speed.impl.usr.incr_a_1 - speed.res.abs_1_a_1 - speed.res.abs_2_a_1 - speed.res.abs_3_a_1 - speed.res.inst_0_a_1 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_1 0) - (<= 0 speed.impl.usr.incr_a_1 2) - (not speed.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.early_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Bool top.res.abs_0_a_0)) - (and - (= top.impl.usr.early_a_0 top.res.abs_1_a_0) - (__node_init_speed_0 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.beacon_a_1 Bool) - (top.usr.second_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.early_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Int) - (top.res.inst_0_a_1 Bool) - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.early_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (or (not top.impl.usr.early_a_0) (not X1))) - (= top.impl.usr.early_a_1 top.res.abs_1_a_1) - (__node_trans_speed_0 - top.usr.beacon_a_1 - top.usr.second_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.res.inst_0_a_1 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))) -) - - - -(synth-inv str_invariant( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.beacon Bool) -(declare-primed-var top.usr.second Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.early Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Int) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Bool top.res.abs_0)) - (and - (= top.impl.usr.early top.res.abs_1) - (__node_init_speed_0 - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.beacon! Bool) - (top.usr.second! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.early! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Int) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_0!)) - (and - (= top.usr.OK! (or (not top.impl.usr.early) (not X1))) - (= top.impl.usr.early! top.res.abs_1!) - (__node_trans_speed_0 - top.usr.beacon! - top.usr.second! - top.res.abs_0! - top.res.abs_1! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.res.inst_0! - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - (not top.res.init_flag!))) -) - -(define-fun - prop ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_COUNTER_0 ((COUNTER.usr.init_a_0 Int) (COUNTER.usr.incr_a_0 Int) (COUNTER.usr.X_a_0 Bool) (COUNTER.usr.reset_a_0 Bool) (COUNTER.usr.C_a_0 Int) (COUNTER.res.init_flag_a_0 Bool)) Bool + (let ((X1 COUNTER.usr.init_a_0)) (and (= COUNTER.usr.C_a_0 (ite COUNTER.usr.reset_a_0 COUNTER.usr.init_a_0 (ite COUNTER.usr.X_a_0 (+ X1 COUNTER.usr.incr_a_0) X1))) COUNTER.res.init_flag_a_0))) +(define-fun __node_trans_COUNTER_0 ((COUNTER.usr.init_a_1 Int) (COUNTER.usr.incr_a_1 Int) (COUNTER.usr.X_a_1 Bool) (COUNTER.usr.reset_a_1 Bool) (COUNTER.usr.C_a_1 Int) (COUNTER.res.init_flag_a_1 Bool) (COUNTER.usr.init_a_0 Int) (COUNTER.usr.incr_a_0 Int) (COUNTER.usr.X_a_0 Bool) (COUNTER.usr.reset_a_0 Bool) (COUNTER.usr.C_a_0 Int) (COUNTER.res.init_flag_a_0 Bool)) Bool + (let ((X1 COUNTER.usr.C_a_0)) (and (= COUNTER.usr.C_a_1 (ite COUNTER.usr.reset_a_1 COUNTER.usr.init_a_1 (ite COUNTER.usr.X_a_1 (+ X1 COUNTER.usr.incr_a_1) X1))) (not COUNTER.res.init_flag_a_1)))) +(define-fun __node_init_speed_0 ((speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.usr.late_a_0 false) (= speed.res.abs_2_a_0 false) (= speed.res.abs_1_a_0 (or speed.usr.beacon_a_0 speed.usr.second_a_0)) (= speed.res.abs_0_a_0 0) (= speed.impl.usr.incr_a_0 (ite (or speed.usr.beacon_a_0 (not speed.usr.second_a_0)) 1 (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) 2 0))) (let ((X1 speed.res.abs_3_a_0)) (and (= speed.usr.early_a_0 false) (__node_init_COUNTER_0 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_0 0) (<= 0 speed.impl.usr.incr_a_0 2) speed.res.init_flag_a_0)))) +(define-fun __node_trans_speed_0 ((speed.usr.beacon_a_1 Bool) (speed.usr.second_a_1 Bool) (speed.usr.late_a_1 Bool) (speed.usr.early_a_1 Bool) (speed.res.init_flag_a_1 Bool) (speed.impl.usr.incr_a_1 Int) (speed.res.abs_0_a_1 Int) (speed.res.abs_1_a_1 Bool) (speed.res.abs_2_a_1 Bool) (speed.res.abs_3_a_1 Int) (speed.res.inst_0_a_1 Bool) (speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.res.abs_2_a_1 false) (= speed.res.abs_1_a_1 (or speed.usr.beacon_a_1 speed.usr.second_a_1)) (= speed.res.abs_0_a_1 0) (= speed.impl.usr.incr_a_1 (ite (or speed.usr.beacon_a_1 (not speed.usr.second_a_1)) 1 (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) 2 0))) (let ((X1 speed.res.abs_3_a_1)) (and (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) (__node_trans_COUNTER_0 speed.res.abs_0_a_1 speed.impl.usr.incr_a_1 speed.res.abs_1_a_1 speed.res.abs_2_a_1 speed.res.abs_3_a_1 speed.res.inst_0_a_1 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_1 0) (<= 0 speed.impl.usr.incr_a_1 2) (not speed.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.early_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (and (= top.impl.usr.early_a_0 top.res.abs_1_a_0) (__node_init_speed_0 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.beacon_a_1 Bool) (top.usr.second_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.early_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Int) (top.res.inst_0_a_1 Bool) (top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.early_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (or (not top.impl.usr.early_a_0) (not X1))) (= top.impl.usr.early_a_1 top.res.abs_1_a_1) (__node_trans_speed_0 top.usr.beacon_a_1 top.usr.second_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.res.inst_0_a_1 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))) +(synth-inv str_invariant ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (and (= top.impl.usr.early top.res.abs_1) (__node_init_speed_0 top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool) (top.usr.beacon! Bool) (top.usr.second! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.early! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Int) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_0!)) (and (= top.usr.OK! (or (not top.impl.usr.early) (not X1))) (= top.impl.usr.early! top.res.abs_1!) (__node_trans_speed_0 top.usr.beacon! top.usr.second! top.res.abs_0! top.res.abs_1! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.res.inst_0! top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) (not top.res.init_flag!)))) +(define-fun prop ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ex3_e8_381.sl b/benchmarks/LIA/Lustre/ex3_e8_381.sl index cd03e51..f965b9d 100644 --- a/benchmarks/LIA/Lustre/ex3_e8_381.sl +++ b/benchmarks/LIA/Lustre/ex3_e8_381.sl @@ -1,421 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_COUNTER_0 ( - (COUNTER.usr.init_a_0 Int) - (COUNTER.usr.incr_a_0 Int) - (COUNTER.usr.X_a_0 Bool) - (COUNTER.usr.reset_a_0 Bool) - (COUNTER.usr.C_a_0 Int) - (COUNTER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int COUNTER.usr.init_a_0)) - (and - (= - COUNTER.usr.C_a_0 - (ite - COUNTER.usr.reset_a_0 - COUNTER.usr.init_a_0 - (ite COUNTER.usr.X_a_0 (+ X1 COUNTER.usr.incr_a_0) X1))) - COUNTER.res.init_flag_a_0)) -) - -(define-fun - __node_trans_COUNTER_0 ( - (COUNTER.usr.init_a_1 Int) - (COUNTER.usr.incr_a_1 Int) - (COUNTER.usr.X_a_1 Bool) - (COUNTER.usr.reset_a_1 Bool) - (COUNTER.usr.C_a_1 Int) - (COUNTER.res.init_flag_a_1 Bool) - (COUNTER.usr.init_a_0 Int) - (COUNTER.usr.incr_a_0 Int) - (COUNTER.usr.X_a_0 Bool) - (COUNTER.usr.reset_a_0 Bool) - (COUNTER.usr.C_a_0 Int) - (COUNTER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int COUNTER.usr.C_a_0)) - (and - (= - COUNTER.usr.C_a_1 - (ite - COUNTER.usr.reset_a_1 - COUNTER.usr.init_a_1 - (ite COUNTER.usr.X_a_1 (+ X1 COUNTER.usr.incr_a_1) X1))) - (not COUNTER.res.init_flag_a_1))) -) - -(define-fun - __node_init_speed_0 ( - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.usr.late_a_0 false) - (= speed.res.abs_2_a_0 false) - (= speed.res.abs_1_a_0 (and speed.usr.beacon_a_0 speed.usr.second_a_0)) - (= speed.res.abs_0_a_0 0) - (= - speed.impl.usr.incr_a_0 - (ite - (and speed.usr.beacon_a_0 (not speed.usr.second_a_0)) - 1 - (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) 2 0))) - (let - ((X1 Int speed.res.abs_3_a_0)) - (and - (= speed.usr.early_a_0 false) - (__node_init_COUNTER_0 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_0 0) - (<= 0 speed.impl.usr.incr_a_0 2) - speed.res.init_flag_a_0))) -) - -(define-fun - __node_trans_speed_0 ( - (speed.usr.beacon_a_1 Bool) - (speed.usr.second_a_1 Bool) - (speed.usr.late_a_1 Bool) - (speed.usr.early_a_1 Bool) - (speed.res.init_flag_a_1 Bool) - (speed.impl.usr.incr_a_1 Int) - (speed.res.abs_0_a_1 Int) - (speed.res.abs_1_a_1 Bool) - (speed.res.abs_2_a_1 Bool) - (speed.res.abs_3_a_1 Int) - (speed.res.inst_0_a_1 Bool) - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.res.abs_2_a_1 false) - (= speed.res.abs_1_a_1 (and speed.usr.beacon_a_1 speed.usr.second_a_1)) - (= speed.res.abs_0_a_1 0) - (= - speed.impl.usr.incr_a_1 - (ite - (and speed.usr.beacon_a_1 (not speed.usr.second_a_1)) - 1 - (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) 2 0))) - (let - ((X1 Int speed.res.abs_3_a_1)) - (and - (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) - (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) - (__node_trans_COUNTER_0 - speed.res.abs_0_a_1 - speed.impl.usr.incr_a_1 - speed.res.abs_1_a_1 - speed.res.abs_2_a_1 - speed.res.abs_3_a_1 - speed.res.inst_0_a_1 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_1 0) - (<= 0 speed.impl.usr.incr_a_1 2) - (not speed.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.early_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Bool top.res.abs_0_a_0)) - (and - (= top.impl.usr.early_a_0 top.res.abs_1_a_0) - (__node_init_speed_0 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.beacon_a_1 Bool) - (top.usr.second_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.early_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Int) - (top.res.inst_0_a_1 Bool) - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.early_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (or (not top.impl.usr.early_a_0) (not X1))) - (= top.impl.usr.early_a_1 top.res.abs_1_a_1) - (__node_trans_speed_0 - top.usr.beacon_a_1 - top.usr.second_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.res.inst_0_a_1 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))) -) - - - -(synth-inv str_invariant( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.beacon Bool) -(declare-primed-var top.usr.second Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.early Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Int) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Bool top.res.abs_0)) - (and - (= top.impl.usr.early top.res.abs_1) - (__node_init_speed_0 - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.beacon! Bool) - (top.usr.second! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.early! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Int) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_0!)) - (and - (= top.usr.OK! (or (not top.impl.usr.early) (not X1))) - (= top.impl.usr.early! top.res.abs_1!) - (__node_trans_speed_0 - top.usr.beacon! - top.usr.second! - top.res.abs_0! - top.res.abs_1! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.res.inst_0! - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - (not top.res.init_flag!))) -) - -(define-fun - prop ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_COUNTER_0 ((COUNTER.usr.init_a_0 Int) (COUNTER.usr.incr_a_0 Int) (COUNTER.usr.X_a_0 Bool) (COUNTER.usr.reset_a_0 Bool) (COUNTER.usr.C_a_0 Int) (COUNTER.res.init_flag_a_0 Bool)) Bool + (let ((X1 COUNTER.usr.init_a_0)) (and (= COUNTER.usr.C_a_0 (ite COUNTER.usr.reset_a_0 COUNTER.usr.init_a_0 (ite COUNTER.usr.X_a_0 (+ X1 COUNTER.usr.incr_a_0) X1))) COUNTER.res.init_flag_a_0))) +(define-fun __node_trans_COUNTER_0 ((COUNTER.usr.init_a_1 Int) (COUNTER.usr.incr_a_1 Int) (COUNTER.usr.X_a_1 Bool) (COUNTER.usr.reset_a_1 Bool) (COUNTER.usr.C_a_1 Int) (COUNTER.res.init_flag_a_1 Bool) (COUNTER.usr.init_a_0 Int) (COUNTER.usr.incr_a_0 Int) (COUNTER.usr.X_a_0 Bool) (COUNTER.usr.reset_a_0 Bool) (COUNTER.usr.C_a_0 Int) (COUNTER.res.init_flag_a_0 Bool)) Bool + (let ((X1 COUNTER.usr.C_a_0)) (and (= COUNTER.usr.C_a_1 (ite COUNTER.usr.reset_a_1 COUNTER.usr.init_a_1 (ite COUNTER.usr.X_a_1 (+ X1 COUNTER.usr.incr_a_1) X1))) (not COUNTER.res.init_flag_a_1)))) +(define-fun __node_init_speed_0 ((speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.usr.late_a_0 false) (= speed.res.abs_2_a_0 false) (= speed.res.abs_1_a_0 (and speed.usr.beacon_a_0 speed.usr.second_a_0)) (= speed.res.abs_0_a_0 0) (= speed.impl.usr.incr_a_0 (ite (and speed.usr.beacon_a_0 (not speed.usr.second_a_0)) 1 (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) 2 0))) (let ((X1 speed.res.abs_3_a_0)) (and (= speed.usr.early_a_0 false) (__node_init_COUNTER_0 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_0 0) (<= 0 speed.impl.usr.incr_a_0 2) speed.res.init_flag_a_0)))) +(define-fun __node_trans_speed_0 ((speed.usr.beacon_a_1 Bool) (speed.usr.second_a_1 Bool) (speed.usr.late_a_1 Bool) (speed.usr.early_a_1 Bool) (speed.res.init_flag_a_1 Bool) (speed.impl.usr.incr_a_1 Int) (speed.res.abs_0_a_1 Int) (speed.res.abs_1_a_1 Bool) (speed.res.abs_2_a_1 Bool) (speed.res.abs_3_a_1 Int) (speed.res.inst_0_a_1 Bool) (speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.res.abs_2_a_1 false) (= speed.res.abs_1_a_1 (and speed.usr.beacon_a_1 speed.usr.second_a_1)) (= speed.res.abs_0_a_1 0) (= speed.impl.usr.incr_a_1 (ite (and speed.usr.beacon_a_1 (not speed.usr.second_a_1)) 1 (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) 2 0))) (let ((X1 speed.res.abs_3_a_1)) (and (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) (__node_trans_COUNTER_0 speed.res.abs_0_a_1 speed.impl.usr.incr_a_1 speed.res.abs_1_a_1 speed.res.abs_2_a_1 speed.res.abs_3_a_1 speed.res.inst_0_a_1 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_1 0) (<= 0 speed.impl.usr.incr_a_1 2) (not speed.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.early_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (and (= top.impl.usr.early_a_0 top.res.abs_1_a_0) (__node_init_speed_0 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.beacon_a_1 Bool) (top.usr.second_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.early_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Int) (top.res.inst_0_a_1 Bool) (top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.early_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (or (not top.impl.usr.early_a_0) (not X1))) (= top.impl.usr.early_a_1 top.res.abs_1_a_1) (__node_trans_speed_0 top.usr.beacon_a_1 top.usr.second_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.res.inst_0_a_1 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))) +(synth-inv str_invariant ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (and (= top.impl.usr.early top.res.abs_1) (__node_init_speed_0 top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool) (top.usr.beacon! Bool) (top.usr.second! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.early! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Int) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_0!)) (and (= top.usr.OK! (or (not top.impl.usr.early) (not X1))) (= top.impl.usr.early! top.res.abs_1!) (__node_trans_speed_0 top.usr.beacon! top.usr.second! top.res.abs_0! top.res.abs_1! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.res.inst_0! top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) (not top.res.init_flag!)))) +(define-fun prop ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ex3_e8_381_e7_224.sl b/benchmarks/LIA/Lustre/ex3_e8_381_e7_224.sl index 6a7009c..7a1c1fc 100644 --- a/benchmarks/LIA/Lustre/ex3_e8_381_e7_224.sl +++ b/benchmarks/LIA/Lustre/ex3_e8_381_e7_224.sl @@ -1,421 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_COUNTER_0 ( - (COUNTER.usr.init_a_0 Int) - (COUNTER.usr.incr_a_0 Int) - (COUNTER.usr.X_a_0 Bool) - (COUNTER.usr.reset_a_0 Bool) - (COUNTER.usr.C_a_0 Int) - (COUNTER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int COUNTER.usr.init_a_0)) - (and - (= - COUNTER.usr.C_a_0 - (ite - COUNTER.usr.reset_a_0 - COUNTER.usr.init_a_0 - (ite COUNTER.usr.X_a_0 (+ X1 COUNTER.usr.incr_a_0) X1))) - COUNTER.res.init_flag_a_0)) -) - -(define-fun - __node_trans_COUNTER_0 ( - (COUNTER.usr.init_a_1 Int) - (COUNTER.usr.incr_a_1 Int) - (COUNTER.usr.X_a_1 Bool) - (COUNTER.usr.reset_a_1 Bool) - (COUNTER.usr.C_a_1 Int) - (COUNTER.res.init_flag_a_1 Bool) - (COUNTER.usr.init_a_0 Int) - (COUNTER.usr.incr_a_0 Int) - (COUNTER.usr.X_a_0 Bool) - (COUNTER.usr.reset_a_0 Bool) - (COUNTER.usr.C_a_0 Int) - (COUNTER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int COUNTER.usr.C_a_0)) - (and - (= - COUNTER.usr.C_a_1 - (ite - COUNTER.usr.reset_a_1 - COUNTER.usr.init_a_1 - (ite COUNTER.usr.X_a_1 (+ X1 COUNTER.usr.incr_a_1) X1))) - (not COUNTER.res.init_flag_a_1))) -) - -(define-fun - __node_init_speed_0 ( - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.usr.late_a_0 false) - (= speed.res.abs_2_a_0 false) - (= speed.res.abs_1_a_0 (and speed.usr.beacon_a_0 speed.usr.second_a_0)) - (= speed.res.abs_0_a_0 0) - (= - speed.impl.usr.incr_a_0 - (ite - (or speed.usr.beacon_a_0 (not speed.usr.second_a_0)) - 1 - (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) 2 0))) - (let - ((X1 Int speed.res.abs_3_a_0)) - (and - (= speed.usr.early_a_0 false) - (__node_init_COUNTER_0 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_0 0) - (<= 0 speed.impl.usr.incr_a_0 2) - speed.res.init_flag_a_0))) -) - -(define-fun - __node_trans_speed_0 ( - (speed.usr.beacon_a_1 Bool) - (speed.usr.second_a_1 Bool) - (speed.usr.late_a_1 Bool) - (speed.usr.early_a_1 Bool) - (speed.res.init_flag_a_1 Bool) - (speed.impl.usr.incr_a_1 Int) - (speed.res.abs_0_a_1 Int) - (speed.res.abs_1_a_1 Bool) - (speed.res.abs_2_a_1 Bool) - (speed.res.abs_3_a_1 Int) - (speed.res.inst_0_a_1 Bool) - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.res.abs_2_a_1 false) - (= speed.res.abs_1_a_1 (and speed.usr.beacon_a_1 speed.usr.second_a_1)) - (= speed.res.abs_0_a_1 0) - (= - speed.impl.usr.incr_a_1 - (ite - (or speed.usr.beacon_a_1 (not speed.usr.second_a_1)) - 1 - (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) 2 0))) - (let - ((X1 Int speed.res.abs_3_a_1)) - (and - (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) - (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) - (__node_trans_COUNTER_0 - speed.res.abs_0_a_1 - speed.impl.usr.incr_a_1 - speed.res.abs_1_a_1 - speed.res.abs_2_a_1 - speed.res.abs_3_a_1 - speed.res.inst_0_a_1 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_1 0) - (<= 0 speed.impl.usr.incr_a_1 2) - (not speed.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.early_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Bool top.res.abs_0_a_0)) - (and - (= top.impl.usr.early_a_0 top.res.abs_1_a_0) - (__node_init_speed_0 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.beacon_a_1 Bool) - (top.usr.second_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.early_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Int) - (top.res.inst_0_a_1 Bool) - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.early_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (or (not top.impl.usr.early_a_0) (not X1))) - (= top.impl.usr.early_a_1 top.res.abs_1_a_1) - (__node_trans_speed_0 - top.usr.beacon_a_1 - top.usr.second_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.res.inst_0_a_1 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))) -) - - - -(synth-inv str_invariant( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.beacon Bool) -(declare-primed-var top.usr.second Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.early Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Int) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Bool top.res.abs_0)) - (and - (= top.impl.usr.early top.res.abs_1) - (__node_init_speed_0 - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.beacon! Bool) - (top.usr.second! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.early! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Int) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_0!)) - (and - (= top.usr.OK! (or (not top.impl.usr.early) (not X1))) - (= top.impl.usr.early! top.res.abs_1!) - (__node_trans_speed_0 - top.usr.beacon! - top.usr.second! - top.res.abs_0! - top.res.abs_1! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.res.inst_0! - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - (not top.res.init_flag!))) -) - -(define-fun - prop ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_COUNTER_0 ((COUNTER.usr.init_a_0 Int) (COUNTER.usr.incr_a_0 Int) (COUNTER.usr.X_a_0 Bool) (COUNTER.usr.reset_a_0 Bool) (COUNTER.usr.C_a_0 Int) (COUNTER.res.init_flag_a_0 Bool)) Bool + (let ((X1 COUNTER.usr.init_a_0)) (and (= COUNTER.usr.C_a_0 (ite COUNTER.usr.reset_a_0 COUNTER.usr.init_a_0 (ite COUNTER.usr.X_a_0 (+ X1 COUNTER.usr.incr_a_0) X1))) COUNTER.res.init_flag_a_0))) +(define-fun __node_trans_COUNTER_0 ((COUNTER.usr.init_a_1 Int) (COUNTER.usr.incr_a_1 Int) (COUNTER.usr.X_a_1 Bool) (COUNTER.usr.reset_a_1 Bool) (COUNTER.usr.C_a_1 Int) (COUNTER.res.init_flag_a_1 Bool) (COUNTER.usr.init_a_0 Int) (COUNTER.usr.incr_a_0 Int) (COUNTER.usr.X_a_0 Bool) (COUNTER.usr.reset_a_0 Bool) (COUNTER.usr.C_a_0 Int) (COUNTER.res.init_flag_a_0 Bool)) Bool + (let ((X1 COUNTER.usr.C_a_0)) (and (= COUNTER.usr.C_a_1 (ite COUNTER.usr.reset_a_1 COUNTER.usr.init_a_1 (ite COUNTER.usr.X_a_1 (+ X1 COUNTER.usr.incr_a_1) X1))) (not COUNTER.res.init_flag_a_1)))) +(define-fun __node_init_speed_0 ((speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.usr.late_a_0 false) (= speed.res.abs_2_a_0 false) (= speed.res.abs_1_a_0 (and speed.usr.beacon_a_0 speed.usr.second_a_0)) (= speed.res.abs_0_a_0 0) (= speed.impl.usr.incr_a_0 (ite (or speed.usr.beacon_a_0 (not speed.usr.second_a_0)) 1 (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) 2 0))) (let ((X1 speed.res.abs_3_a_0)) (and (= speed.usr.early_a_0 false) (__node_init_COUNTER_0 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_0 0) (<= 0 speed.impl.usr.incr_a_0 2) speed.res.init_flag_a_0)))) +(define-fun __node_trans_speed_0 ((speed.usr.beacon_a_1 Bool) (speed.usr.second_a_1 Bool) (speed.usr.late_a_1 Bool) (speed.usr.early_a_1 Bool) (speed.res.init_flag_a_1 Bool) (speed.impl.usr.incr_a_1 Int) (speed.res.abs_0_a_1 Int) (speed.res.abs_1_a_1 Bool) (speed.res.abs_2_a_1 Bool) (speed.res.abs_3_a_1 Int) (speed.res.inst_0_a_1 Bool) (speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.res.abs_2_a_1 false) (= speed.res.abs_1_a_1 (and speed.usr.beacon_a_1 speed.usr.second_a_1)) (= speed.res.abs_0_a_1 0) (= speed.impl.usr.incr_a_1 (ite (or speed.usr.beacon_a_1 (not speed.usr.second_a_1)) 1 (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) 2 0))) (let ((X1 speed.res.abs_3_a_1)) (and (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) (__node_trans_COUNTER_0 speed.res.abs_0_a_1 speed.impl.usr.incr_a_1 speed.res.abs_1_a_1 speed.res.abs_2_a_1 speed.res.abs_3_a_1 speed.res.inst_0_a_1 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_1 0) (<= 0 speed.impl.usr.incr_a_1 2) (not speed.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.early_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (and (= top.impl.usr.early_a_0 top.res.abs_1_a_0) (__node_init_speed_0 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.beacon_a_1 Bool) (top.usr.second_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.early_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Int) (top.res.inst_0_a_1 Bool) (top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.early_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (or (not top.impl.usr.early_a_0) (not X1))) (= top.impl.usr.early_a_1 top.res.abs_1_a_1) (__node_trans_speed_0 top.usr.beacon_a_1 top.usr.second_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.res.inst_0_a_1 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))) +(synth-inv str_invariant ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (and (= top.impl.usr.early top.res.abs_1) (__node_init_speed_0 top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool) (top.usr.beacon! Bool) (top.usr.second! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.early! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Int) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_0!)) (and (= top.usr.OK! (or (not top.impl.usr.early) (not X1))) (= top.impl.usr.early! top.res.abs_1!) (__node_trans_speed_0 top.usr.beacon! top.usr.second! top.res.abs_0! top.res.abs_1! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.res.inst_0! top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) (not top.res.init_flag!)))) +(define-fun prop ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ex3_e8_381_e8_477.sl b/benchmarks/LIA/Lustre/ex3_e8_381_e8_477.sl index b786730..2734cb4 100644 --- a/benchmarks/LIA/Lustre/ex3_e8_381_e8_477.sl +++ b/benchmarks/LIA/Lustre/ex3_e8_381_e8_477.sl @@ -1,421 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_COUNTER_0 ( - (COUNTER.usr.init_a_0 Int) - (COUNTER.usr.incr_a_0 Int) - (COUNTER.usr.X_a_0 Bool) - (COUNTER.usr.reset_a_0 Bool) - (COUNTER.usr.C_a_0 Int) - (COUNTER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int COUNTER.usr.init_a_0)) - (and - (= - COUNTER.usr.C_a_0 - (ite - COUNTER.usr.reset_a_0 - COUNTER.usr.init_a_0 - (ite COUNTER.usr.X_a_0 (+ X1 COUNTER.usr.incr_a_0) X1))) - COUNTER.res.init_flag_a_0)) -) - -(define-fun - __node_trans_COUNTER_0 ( - (COUNTER.usr.init_a_1 Int) - (COUNTER.usr.incr_a_1 Int) - (COUNTER.usr.X_a_1 Bool) - (COUNTER.usr.reset_a_1 Bool) - (COUNTER.usr.C_a_1 Int) - (COUNTER.res.init_flag_a_1 Bool) - (COUNTER.usr.init_a_0 Int) - (COUNTER.usr.incr_a_0 Int) - (COUNTER.usr.X_a_0 Bool) - (COUNTER.usr.reset_a_0 Bool) - (COUNTER.usr.C_a_0 Int) - (COUNTER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int COUNTER.usr.C_a_0)) - (and - (= - COUNTER.usr.C_a_1 - (ite - COUNTER.usr.reset_a_1 - COUNTER.usr.init_a_1 - (ite COUNTER.usr.X_a_1 (+ X1 COUNTER.usr.incr_a_1) X1))) - (not COUNTER.res.init_flag_a_1))) -) - -(define-fun - __node_init_speed_0 ( - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.usr.late_a_0 false) - (= speed.res.abs_2_a_0 false) - (= speed.res.abs_1_a_0 (and speed.usr.beacon_a_0 speed.usr.second_a_0)) - (= speed.res.abs_0_a_0 0) - (= - speed.impl.usr.incr_a_0 - (ite - (and speed.usr.beacon_a_0 (not speed.usr.second_a_0)) - 1 - (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) 2 0))) - (let - ((X1 Int speed.res.abs_3_a_0)) - (and - (= speed.usr.early_a_0 false) - (__node_init_COUNTER_0 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_0 0) - (<= 0 speed.impl.usr.incr_a_0 2) - speed.res.init_flag_a_0))) -) - -(define-fun - __node_trans_speed_0 ( - (speed.usr.beacon_a_1 Bool) - (speed.usr.second_a_1 Bool) - (speed.usr.late_a_1 Bool) - (speed.usr.early_a_1 Bool) - (speed.res.init_flag_a_1 Bool) - (speed.impl.usr.incr_a_1 Int) - (speed.res.abs_0_a_1 Int) - (speed.res.abs_1_a_1 Bool) - (speed.res.abs_2_a_1 Bool) - (speed.res.abs_3_a_1 Int) - (speed.res.inst_0_a_1 Bool) - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.res.abs_2_a_1 false) - (= speed.res.abs_1_a_1 (and speed.usr.beacon_a_1 speed.usr.second_a_1)) - (= speed.res.abs_0_a_1 0) - (= - speed.impl.usr.incr_a_1 - (ite - (and speed.usr.beacon_a_1 (not speed.usr.second_a_1)) - 1 - (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) 2 0))) - (let - ((X1 Int speed.res.abs_3_a_1)) - (and - (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) - (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) - (__node_trans_COUNTER_0 - speed.res.abs_0_a_1 - speed.impl.usr.incr_a_1 - speed.res.abs_1_a_1 - speed.res.abs_2_a_1 - speed.res.abs_3_a_1 - speed.res.inst_0_a_1 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_1 0) - (<= 0 speed.impl.usr.incr_a_1 2) - (not speed.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.early_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Bool top.res.abs_0_a_0)) - (and - (= top.impl.usr.early_a_0 top.res.abs_1_a_0) - (__node_init_speed_0 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.beacon_a_1 Bool) - (top.usr.second_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.early_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Int) - (top.res.inst_0_a_1 Bool) - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.early_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (and (not top.impl.usr.early_a_0) (not X1))) - (= top.impl.usr.early_a_1 top.res.abs_1_a_1) - (__node_trans_speed_0 - top.usr.beacon_a_1 - top.usr.second_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.res.inst_0_a_1 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))) -) - - - -(synth-inv str_invariant( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.beacon Bool) -(declare-primed-var top.usr.second Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.early Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Int) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Bool top.res.abs_0)) - (and - (= top.impl.usr.early top.res.abs_1) - (__node_init_speed_0 - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.beacon! Bool) - (top.usr.second! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.early! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Int) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_0!)) - (and - (= top.usr.OK! (and (not top.impl.usr.early) (not X1))) - (= top.impl.usr.early! top.res.abs_1!) - (__node_trans_speed_0 - top.usr.beacon! - top.usr.second! - top.res.abs_0! - top.res.abs_1! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.res.inst_0! - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - (not top.res.init_flag!))) -) - -(define-fun - prop ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_COUNTER_0 ((COUNTER.usr.init_a_0 Int) (COUNTER.usr.incr_a_0 Int) (COUNTER.usr.X_a_0 Bool) (COUNTER.usr.reset_a_0 Bool) (COUNTER.usr.C_a_0 Int) (COUNTER.res.init_flag_a_0 Bool)) Bool + (let ((X1 COUNTER.usr.init_a_0)) (and (= COUNTER.usr.C_a_0 (ite COUNTER.usr.reset_a_0 COUNTER.usr.init_a_0 (ite COUNTER.usr.X_a_0 (+ X1 COUNTER.usr.incr_a_0) X1))) COUNTER.res.init_flag_a_0))) +(define-fun __node_trans_COUNTER_0 ((COUNTER.usr.init_a_1 Int) (COUNTER.usr.incr_a_1 Int) (COUNTER.usr.X_a_1 Bool) (COUNTER.usr.reset_a_1 Bool) (COUNTER.usr.C_a_1 Int) (COUNTER.res.init_flag_a_1 Bool) (COUNTER.usr.init_a_0 Int) (COUNTER.usr.incr_a_0 Int) (COUNTER.usr.X_a_0 Bool) (COUNTER.usr.reset_a_0 Bool) (COUNTER.usr.C_a_0 Int) (COUNTER.res.init_flag_a_0 Bool)) Bool + (let ((X1 COUNTER.usr.C_a_0)) (and (= COUNTER.usr.C_a_1 (ite COUNTER.usr.reset_a_1 COUNTER.usr.init_a_1 (ite COUNTER.usr.X_a_1 (+ X1 COUNTER.usr.incr_a_1) X1))) (not COUNTER.res.init_flag_a_1)))) +(define-fun __node_init_speed_0 ((speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.usr.late_a_0 false) (= speed.res.abs_2_a_0 false) (= speed.res.abs_1_a_0 (and speed.usr.beacon_a_0 speed.usr.second_a_0)) (= speed.res.abs_0_a_0 0) (= speed.impl.usr.incr_a_0 (ite (and speed.usr.beacon_a_0 (not speed.usr.second_a_0)) 1 (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) 2 0))) (let ((X1 speed.res.abs_3_a_0)) (and (= speed.usr.early_a_0 false) (__node_init_COUNTER_0 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_0 0) (<= 0 speed.impl.usr.incr_a_0 2) speed.res.init_flag_a_0)))) +(define-fun __node_trans_speed_0 ((speed.usr.beacon_a_1 Bool) (speed.usr.second_a_1 Bool) (speed.usr.late_a_1 Bool) (speed.usr.early_a_1 Bool) (speed.res.init_flag_a_1 Bool) (speed.impl.usr.incr_a_1 Int) (speed.res.abs_0_a_1 Int) (speed.res.abs_1_a_1 Bool) (speed.res.abs_2_a_1 Bool) (speed.res.abs_3_a_1 Int) (speed.res.inst_0_a_1 Bool) (speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.res.abs_2_a_1 false) (= speed.res.abs_1_a_1 (and speed.usr.beacon_a_1 speed.usr.second_a_1)) (= speed.res.abs_0_a_1 0) (= speed.impl.usr.incr_a_1 (ite (and speed.usr.beacon_a_1 (not speed.usr.second_a_1)) 1 (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) 2 0))) (let ((X1 speed.res.abs_3_a_1)) (and (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) (__node_trans_COUNTER_0 speed.res.abs_0_a_1 speed.impl.usr.incr_a_1 speed.res.abs_1_a_1 speed.res.abs_2_a_1 speed.res.abs_3_a_1 speed.res.inst_0_a_1 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_1 0) (<= 0 speed.impl.usr.incr_a_1 2) (not speed.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.early_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (and (= top.impl.usr.early_a_0 top.res.abs_1_a_0) (__node_init_speed_0 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.beacon_a_1 Bool) (top.usr.second_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.early_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Int) (top.res.inst_0_a_1 Bool) (top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.early_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (and (not top.impl.usr.early_a_0) (not X1))) (= top.impl.usr.early_a_1 top.res.abs_1_a_1) (__node_trans_speed_0 top.usr.beacon_a_1 top.usr.second_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.res.inst_0_a_1 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))) +(synth-inv str_invariant ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (and (= top.impl.usr.early top.res.abs_1) (__node_init_speed_0 top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool) (top.usr.beacon! Bool) (top.usr.second! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.early! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Int) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_0!)) (and (= top.usr.OK! (and (not top.impl.usr.early) (not X1))) (= top.impl.usr.early! top.res.abs_1!) (__node_trans_speed_0 top.usr.beacon! top.usr.second! top.res.abs_0! top.res.abs_1! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.res.inst_0! top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) (not top.res.init_flag!)))) +(define-fun prop ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/fast_1.sl b/benchmarks/LIA/Lustre/fast_1.sl index 02344a9..aea0991 100644 --- a/benchmarks/LIA/Lustre/fast_1.sl +++ b/benchmarks/LIA/Lustre/fast_1.sl @@ -1,1710 +1,60 @@ (set-logic LIA) -(define-fun - __node_init_PosEdge_0 ( - (PosEdge.usr.X_a_0 Bool) - (PosEdge.usr.Y_a_0 Bool) - (PosEdge.res.init_flag_a_0 Bool) - ) Bool - - (and (= PosEdge.usr.Y_a_0 false) PosEdge.res.init_flag_a_0) -) - -(define-fun - __node_trans_PosEdge_0 ( - (PosEdge.usr.X_a_1 Bool) - (PosEdge.usr.Y_a_1 Bool) - (PosEdge.res.init_flag_a_1 Bool) - (PosEdge.usr.X_a_0 Bool) - (PosEdge.usr.Y_a_0 Bool) - (PosEdge.res.init_flag_a_0 Bool) - ) Bool - - (and - (= PosEdge.usr.Y_a_1 (and PosEdge.usr.X_a_1 (not PosEdge.usr.X_a_0))) - (not PosEdge.res.init_flag_a_1)) -) - -(define-fun - __node_init_prev_no_button_0 ( - (prev_no_button.usr.ccseti_a_0 Bool) - (prev_no_button.usr.ccsetd_a_0 Bool) - (prev_no_button.usr.ccr_a_0 Bool) - (prev_no_button.usr.pnb_a_0 Bool) - (prev_no_button.res.init_flag_a_0 Bool) - (prev_no_button.res.abs_0_a_0 Bool) - ) Bool - - (and - (= prev_no_button.usr.pnb_a_0 true) - (= - prev_no_button.res.abs_0_a_0 - (and - (and - (not prev_no_button.usr.ccseti_a_0) - (not prev_no_button.usr.ccsetd_a_0)) - (not prev_no_button.usr.ccr_a_0))) - prev_no_button.res.init_flag_a_0) -) - -(define-fun - __node_trans_prev_no_button_0 ( - (prev_no_button.usr.ccseti_a_1 Bool) - (prev_no_button.usr.ccsetd_a_1 Bool) - (prev_no_button.usr.ccr_a_1 Bool) - (prev_no_button.usr.pnb_a_1 Bool) - (prev_no_button.res.init_flag_a_1 Bool) - (prev_no_button.res.abs_0_a_1 Bool) - (prev_no_button.usr.ccseti_a_0 Bool) - (prev_no_button.usr.ccsetd_a_0 Bool) - (prev_no_button.usr.ccr_a_0 Bool) - (prev_no_button.usr.pnb_a_0 Bool) - (prev_no_button.res.init_flag_a_0 Bool) - (prev_no_button.res.abs_0_a_0 Bool) - ) Bool - - (and - (= prev_no_button.usr.pnb_a_1 prev_no_button.res.abs_0_a_0) - (= - prev_no_button.res.abs_0_a_1 - (and - (and - (not prev_no_button.usr.ccseti_a_1) - (not prev_no_button.usr.ccsetd_a_1)) - (not prev_no_button.usr.ccr_a_1))) - (not prev_no_button.res.init_flag_a_1)) -) - -(define-fun - __node_init_AtLeastOnceSince_0 ( - (AtLeastOnceSince.usr.X_a_0 Bool) - (AtLeastOnceSince.usr.Y_a_0 Bool) - (AtLeastOnceSince.usr.XsinceY_a_0 Bool) - (AtLeastOnceSince.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - AtLeastOnceSince.usr.XsinceY_a_0 - (ite AtLeastOnceSince.usr.Y_a_0 AtLeastOnceSince.usr.X_a_0 true)) - AtLeastOnceSince.res.init_flag_a_0) -) - -(define-fun - __node_trans_AtLeastOnceSince_0 ( - (AtLeastOnceSince.usr.X_a_1 Bool) - (AtLeastOnceSince.usr.Y_a_1 Bool) - (AtLeastOnceSince.usr.XsinceY_a_1 Bool) - (AtLeastOnceSince.res.init_flag_a_1 Bool) - (AtLeastOnceSince.usr.X_a_0 Bool) - (AtLeastOnceSince.usr.Y_a_0 Bool) - (AtLeastOnceSince.usr.XsinceY_a_0 Bool) - (AtLeastOnceSince.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - AtLeastOnceSince.usr.XsinceY_a_1 - (ite - AtLeastOnceSince.usr.Y_a_1 - AtLeastOnceSince.usr.X_a_1 - (or AtLeastOnceSince.usr.X_a_1 AtLeastOnceSince.usr.XsinceY_a_0))) - (not AtLeastOnceSince.res.init_flag_a_1)) -) - -(define-fun - __node_init_one_button_0 ( - (one_button.usr.ccseti_a_0 Bool) - (one_button.usr.ccsetd_a_0 Bool) - (one_button.usr.ccr_a_0 Bool) - (one_button.usr.ob_a_0 Bool) - (one_button.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - one_button.usr.ob_a_0 - (or - (or - (and - (and one_button.usr.ccseti_a_0 (not one_button.usr.ccsetd_a_0)) - (not one_button.usr.ccr_a_0)) - (and - (and (not one_button.usr.ccseti_a_0) one_button.usr.ccsetd_a_0) - (not one_button.usr.ccr_a_0))) - (and - (and (not one_button.usr.ccseti_a_0) (not one_button.usr.ccsetd_a_0)) - one_button.usr.ccr_a_0))) - one_button.res.init_flag_a_0) -) - -(define-fun - __node_trans_one_button_0 ( - (one_button.usr.ccseti_a_1 Bool) - (one_button.usr.ccsetd_a_1 Bool) - (one_button.usr.ccr_a_1 Bool) - (one_button.usr.ob_a_1 Bool) - (one_button.res.init_flag_a_1 Bool) - (one_button.usr.ccseti_a_0 Bool) - (one_button.usr.ccsetd_a_0 Bool) - (one_button.usr.ccr_a_0 Bool) - (one_button.usr.ob_a_0 Bool) - (one_button.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - one_button.usr.ob_a_1 - (or - (or - (and - (and one_button.usr.ccseti_a_1 (not one_button.usr.ccsetd_a_1)) - (not one_button.usr.ccr_a_1)) - (and - (and (not one_button.usr.ccseti_a_1) one_button.usr.ccsetd_a_1) - (not one_button.usr.ccr_a_1))) - (and - (and (not one_button.usr.ccseti_a_1) (not one_button.usr.ccsetd_a_1)) - one_button.usr.ccr_a_1))) - (not one_button.res.init_flag_a_1)) -) - -(define-fun - __node_init_one_button_accept_0 ( - (one_button_accept.usr.ccseti_a_0 Bool) - (one_button_accept.usr.ccsetd_a_0 Bool) - (one_button_accept.usr.ccr_a_0 Bool) - (one_button_accept.usr.ccont_a_0 Bool) - (one_button_accept.usr.cca_a_0 Bool) - (one_button_accept.usr.oba_a_0 Bool) - (one_button_accept.res.init_flag_a_0 Bool) - (one_button_accept.res.abs_0_a_0 Bool) - (one_button_accept.res.abs_1_a_0 Bool) - (one_button_accept.res.abs_2_a_0 Bool) - (one_button_accept.res.abs_3_a_0 Bool) - (one_button_accept.res.inst_4_a_0 Bool) - (one_button_accept.res.inst_3_a_0 Bool) - (one_button_accept.res.inst_2_a_0 Bool) - (one_button_accept.res.inst_1_a_0 Bool) - (one_button_accept.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool one_button_accept.res.abs_0_a_0)) - (let - ((X2 Bool one_button_accept.res.abs_1_a_0)) - (and - (= - one_button_accept.usr.oba_a_0 - (ite - (and X1 X2) - (ite - (not one_button_accept.usr.ccr_a_0) - true - one_button_accept.res.abs_3_a_0) - false)) - (__node_init_one_button_0 - one_button_accept.usr.ccseti_a_0 - one_button_accept.usr.ccsetd_a_0 - one_button_accept.usr.ccr_a_0 - one_button_accept.res.abs_1_a_0 - one_button_accept.res.inst_4_a_0) - (__node_init_prev_no_button_0 - one_button_accept.usr.ccseti_a_0 - one_button_accept.usr.ccsetd_a_0 - one_button_accept.usr.ccr_a_0 - one_button_accept.res.abs_0_a_0 - one_button_accept.res.inst_3_a_0 - one_button_accept.res.inst_2_a_0) - (__node_init_AtLeastOnceSince_0 - one_button_accept.usr.cca_a_0 - one_button_accept.res.abs_2_a_0 - one_button_accept.res.abs_3_a_0 - one_button_accept.res.inst_1_a_0) - (__node_init_PosEdge_0 - one_button_accept.usr.ccont_a_0 - one_button_accept.res.abs_2_a_0 - one_button_accept.res.inst_0_a_0) - one_button_accept.res.init_flag_a_0))) -) - -(define-fun - __node_trans_one_button_accept_0 ( - (one_button_accept.usr.ccseti_a_1 Bool) - (one_button_accept.usr.ccsetd_a_1 Bool) - (one_button_accept.usr.ccr_a_1 Bool) - (one_button_accept.usr.ccont_a_1 Bool) - (one_button_accept.usr.cca_a_1 Bool) - (one_button_accept.usr.oba_a_1 Bool) - (one_button_accept.res.init_flag_a_1 Bool) - (one_button_accept.res.abs_0_a_1 Bool) - (one_button_accept.res.abs_1_a_1 Bool) - (one_button_accept.res.abs_2_a_1 Bool) - (one_button_accept.res.abs_3_a_1 Bool) - (one_button_accept.res.inst_4_a_1 Bool) - (one_button_accept.res.inst_3_a_1 Bool) - (one_button_accept.res.inst_2_a_1 Bool) - (one_button_accept.res.inst_1_a_1 Bool) - (one_button_accept.res.inst_0_a_1 Bool) - (one_button_accept.usr.ccseti_a_0 Bool) - (one_button_accept.usr.ccsetd_a_0 Bool) - (one_button_accept.usr.ccr_a_0 Bool) - (one_button_accept.usr.ccont_a_0 Bool) - (one_button_accept.usr.cca_a_0 Bool) - (one_button_accept.usr.oba_a_0 Bool) - (one_button_accept.res.init_flag_a_0 Bool) - (one_button_accept.res.abs_0_a_0 Bool) - (one_button_accept.res.abs_1_a_0 Bool) - (one_button_accept.res.abs_2_a_0 Bool) - (one_button_accept.res.abs_3_a_0 Bool) - (one_button_accept.res.inst_4_a_0 Bool) - (one_button_accept.res.inst_3_a_0 Bool) - (one_button_accept.res.inst_2_a_0 Bool) - (one_button_accept.res.inst_1_a_0 Bool) - (one_button_accept.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool one_button_accept.res.abs_0_a_1)) - (let - ((X2 Bool one_button_accept.res.abs_1_a_1)) - (and - (= - one_button_accept.usr.oba_a_1 - (ite - (and X1 X2) - (ite - (not one_button_accept.usr.ccr_a_1) - true - one_button_accept.res.abs_3_a_1) - false)) - (__node_trans_one_button_0 - one_button_accept.usr.ccseti_a_1 - one_button_accept.usr.ccsetd_a_1 - one_button_accept.usr.ccr_a_1 - one_button_accept.res.abs_1_a_1 - one_button_accept.res.inst_4_a_1 - one_button_accept.usr.ccseti_a_0 - one_button_accept.usr.ccsetd_a_0 - one_button_accept.usr.ccr_a_0 - one_button_accept.res.abs_1_a_0 - one_button_accept.res.inst_4_a_0) - (__node_trans_prev_no_button_0 - one_button_accept.usr.ccseti_a_1 - one_button_accept.usr.ccsetd_a_1 - one_button_accept.usr.ccr_a_1 - one_button_accept.res.abs_0_a_1 - one_button_accept.res.inst_3_a_1 - one_button_accept.res.inst_2_a_1 - one_button_accept.usr.ccseti_a_0 - one_button_accept.usr.ccsetd_a_0 - one_button_accept.usr.ccr_a_0 - one_button_accept.res.abs_0_a_0 - one_button_accept.res.inst_3_a_0 - one_button_accept.res.inst_2_a_0) - (__node_trans_AtLeastOnceSince_0 - one_button_accept.usr.cca_a_1 - one_button_accept.res.abs_2_a_1 - one_button_accept.res.abs_3_a_1 - one_button_accept.res.inst_1_a_1 - one_button_accept.usr.cca_a_0 - one_button_accept.res.abs_2_a_0 - one_button_accept.res.abs_3_a_0 - one_button_accept.res.inst_1_a_0) - (__node_trans_PosEdge_0 - one_button_accept.usr.ccont_a_1 - one_button_accept.res.abs_2_a_1 - one_button_accept.res.inst_0_a_1 - one_button_accept.usr.ccont_a_0 - one_button_accept.res.abs_2_a_0 - one_button_accept.res.inst_0_a_0) - (not one_button_accept.res.init_flag_a_1)))) -) - -(define-fun - __node_init_MoreThanTwoSec_0 ( - (MoreThanTwoSec.usr.X_a_0 Bool) - (MoreThanTwoSec.usr.Y_a_0 Bool) - (MoreThanTwoSec.res.init_flag_a_0 Bool) - (MoreThanTwoSec.res.abs_0_a_0 Bool) - ) Bool - - (and - (= MoreThanTwoSec.usr.Y_a_0 false) - (= MoreThanTwoSec.res.abs_0_a_0 false) - MoreThanTwoSec.res.init_flag_a_0) -) - -(define-fun - __node_trans_MoreThanTwoSec_0 ( - (MoreThanTwoSec.usr.X_a_1 Bool) - (MoreThanTwoSec.usr.Y_a_1 Bool) - (MoreThanTwoSec.res.init_flag_a_1 Bool) - (MoreThanTwoSec.res.abs_0_a_1 Bool) - (MoreThanTwoSec.usr.X_a_0 Bool) - (MoreThanTwoSec.usr.Y_a_0 Bool) - (MoreThanTwoSec.res.init_flag_a_0 Bool) - (MoreThanTwoSec.res.abs_0_a_0 Bool) - ) Bool - - (and - (= - MoreThanTwoSec.usr.Y_a_1 - (and MoreThanTwoSec.res.abs_0_a_0 MoreThanTwoSec.usr.X_a_1)) - (= - MoreThanTwoSec.res.abs_0_a_1 - (and MoreThanTwoSec.usr.X_a_0 MoreThanTwoSec.usr.X_a_1)) - (not MoreThanTwoSec.res.init_flag_a_1)) -) - -(define-fun - __node_init_MoreThanOneSec_0 ( - (MoreThanOneSec.usr.X_a_0 Bool) - (MoreThanOneSec.usr.Y_a_0 Bool) - (MoreThanOneSec.res.init_flag_a_0 Bool) - ) Bool - - (and (= MoreThanOneSec.usr.Y_a_0 false) MoreThanOneSec.res.init_flag_a_0) -) - -(define-fun - __node_trans_MoreThanOneSec_0 ( - (MoreThanOneSec.usr.X_a_1 Bool) - (MoreThanOneSec.usr.Y_a_1 Bool) - (MoreThanOneSec.res.init_flag_a_1 Bool) - (MoreThanOneSec.usr.X_a_0 Bool) - (MoreThanOneSec.usr.Y_a_0 Bool) - (MoreThanOneSec.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - MoreThanOneSec.usr.Y_a_1 - (and MoreThanOneSec.usr.X_a_0 MoreThanOneSec.usr.X_a_1)) - (not MoreThanOneSec.res.init_flag_a_1)) -) - -(define-fun - __node_init_cc_allowed_0 ( - (cc_allowed.usr.ccont_a_0 Bool) - (cc_allowed.usr.igsw_a_0 Bool) - (cc_allowed.usr.bpa_a_0 Bool) - (cc_allowed.usr.cccanc_a_0 Bool) - (cc_allowed.usr.battok_a_0 Bool) - (cc_allowed.usr.gearok_a_0 Bool) - (cc_allowed.usr.qfok_a_0 Bool) - (cc_allowed.usr.sdok_a_0 Bool) - (cc_allowed.usr.accok_a_0 Bool) - (cc_allowed.usr.vs_a_0 Int) - (cc_allowed.usr.ccall_a_0 Bool) - (cc_allowed.res.init_flag_a_0 Bool) - (cc_allowed.res.abs_0_a_0 Bool) - (cc_allowed.res.abs_1_a_0 Bool) - (cc_allowed.res.inst_2_a_0 Bool) - (cc_allowed.res.inst_1_a_0 Bool) - (cc_allowed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - cc_allowed.usr.ccall_a_0 - (and - (and - (and - (and - (and - (and - (and - (and - (and cc_allowed.usr.ccont_a_0 (not cc_allowed.usr.bpa_a_0)) - cc_allowed.usr.battok_a_0) - cc_allowed.usr.gearok_a_0) - cc_allowed.usr.qfok_a_0) - cc_allowed.res.abs_0_a_0) - (<= 35 cc_allowed.usr.vs_a_0)) - (<= cc_allowed.usr.vs_a_0 200)) - cc_allowed.res.abs_1_a_0) - (not cc_allowed.usr.cccanc_a_0))) - (__node_init_MoreThanOneSec_0 - cc_allowed.usr.sdok_a_0 - cc_allowed.res.abs_0_a_0 - cc_allowed.res.inst_2_a_0) - (__node_init_MoreThanTwoSec_0 - cc_allowed.usr.accok_a_0 - cc_allowed.res.abs_1_a_0 - cc_allowed.res.inst_1_a_0 - cc_allowed.res.inst_0_a_0) - cc_allowed.res.init_flag_a_0) -) - -(define-fun - __node_trans_cc_allowed_0 ( - (cc_allowed.usr.ccont_a_1 Bool) - (cc_allowed.usr.igsw_a_1 Bool) - (cc_allowed.usr.bpa_a_1 Bool) - (cc_allowed.usr.cccanc_a_1 Bool) - (cc_allowed.usr.battok_a_1 Bool) - (cc_allowed.usr.gearok_a_1 Bool) - (cc_allowed.usr.qfok_a_1 Bool) - (cc_allowed.usr.sdok_a_1 Bool) - (cc_allowed.usr.accok_a_1 Bool) - (cc_allowed.usr.vs_a_1 Int) - (cc_allowed.usr.ccall_a_1 Bool) - (cc_allowed.res.init_flag_a_1 Bool) - (cc_allowed.res.abs_0_a_1 Bool) - (cc_allowed.res.abs_1_a_1 Bool) - (cc_allowed.res.inst_2_a_1 Bool) - (cc_allowed.res.inst_1_a_1 Bool) - (cc_allowed.res.inst_0_a_1 Bool) - (cc_allowed.usr.ccont_a_0 Bool) - (cc_allowed.usr.igsw_a_0 Bool) - (cc_allowed.usr.bpa_a_0 Bool) - (cc_allowed.usr.cccanc_a_0 Bool) - (cc_allowed.usr.battok_a_0 Bool) - (cc_allowed.usr.gearok_a_0 Bool) - (cc_allowed.usr.qfok_a_0 Bool) - (cc_allowed.usr.sdok_a_0 Bool) - (cc_allowed.usr.accok_a_0 Bool) - (cc_allowed.usr.vs_a_0 Int) - (cc_allowed.usr.ccall_a_0 Bool) - (cc_allowed.res.init_flag_a_0 Bool) - (cc_allowed.res.abs_0_a_0 Bool) - (cc_allowed.res.abs_1_a_0 Bool) - (cc_allowed.res.inst_2_a_0 Bool) - (cc_allowed.res.inst_1_a_0 Bool) - (cc_allowed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - cc_allowed.usr.ccall_a_1 - (and - (and - (and - (and - (and - (and - (and - (and - (and cc_allowed.usr.ccont_a_1 (not cc_allowed.usr.bpa_a_1)) - cc_allowed.usr.battok_a_1) - cc_allowed.usr.gearok_a_1) - cc_allowed.usr.qfok_a_1) - cc_allowed.res.abs_0_a_1) - (<= 35 cc_allowed.usr.vs_a_1)) - (<= cc_allowed.usr.vs_a_1 200)) - cc_allowed.res.abs_1_a_1) - (not cc_allowed.usr.cccanc_a_1))) - (__node_trans_MoreThanOneSec_0 - cc_allowed.usr.sdok_a_1 - cc_allowed.res.abs_0_a_1 - cc_allowed.res.inst_2_a_1 - cc_allowed.usr.sdok_a_0 - cc_allowed.res.abs_0_a_0 - cc_allowed.res.inst_2_a_0) - (__node_trans_MoreThanTwoSec_0 - cc_allowed.usr.accok_a_1 - cc_allowed.res.abs_1_a_1 - cc_allowed.res.inst_1_a_1 - cc_allowed.res.inst_0_a_1 - cc_allowed.usr.accok_a_0 - cc_allowed.res.abs_1_a_0 - cc_allowed.res.inst_1_a_0 - cc_allowed.res.inst_0_a_0) - (not cc_allowed.res.init_flag_a_1)) -) - -(define-fun - __node_init_Edge_0 ( - (Edge.usr.X_a_0 Bool) - (Edge.usr.Y_a_0 Bool) - (Edge.res.init_flag_a_0 Bool) - ) Bool - - (and (= Edge.usr.Y_a_0 false) Edge.res.init_flag_a_0) -) - -(define-fun - __node_trans_Edge_0 ( - (Edge.usr.X_a_1 Bool) - (Edge.usr.Y_a_1 Bool) - (Edge.res.init_flag_a_1 Bool) - (Edge.usr.X_a_0 Bool) - (Edge.usr.Y_a_0 Bool) - (Edge.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - Edge.usr.Y_a_1 - (or - (and Edge.usr.X_a_1 (not Edge.usr.X_a_0)) - (and (not Edge.usr.X_a_1) Edge.usr.X_a_0))) - (not Edge.res.init_flag_a_1)) -) - -(define-fun - __node_init_main_0 ( - (main.usr.igsw_a_0 Bool) - (main.usr.ccd_a_0 Bool) - (main.usr.cconoff_a_0 Bool) - (main.usr.bpa_a_0 Bool) - (main.usr.cccanc_a_0 Bool) - (main.usr.battok_a_0 Bool) - (main.usr.gearok_a_0 Bool) - (main.usr.qfok_a_0 Bool) - (main.usr.sdok_a_0 Bool) - (main.usr.accok_a_0 Bool) - (main.usr.ccseti_a_0 Bool) - (main.usr.ccsetd_a_0 Bool) - (main.usr.ccr_a_0 Bool) - (main.usr.vs_a_0 Int) - (main.res.nondet_0 Bool) - (main.usr.ccont_a_0 Bool) - (main.usr.cca_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Bool) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Bool) - (main.res.inst_17_a_0 Bool) - (main.res.inst_16_a_0 Bool) - (main.res.inst_15_a_0 Bool) - (main.res.inst_14_a_0 Bool) - (main.res.inst_13_a_0 Bool) - (main.res.inst_12_a_0 Bool) - (main.res.inst_11_a_0 Bool) - (main.res.inst_10_a_0 Bool) - (main.res.inst_9_a_0 Bool) - (main.res.inst_8_a_0 Bool) - (main.res.inst_7_a_0 Bool) - (main.res.inst_6_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Bool) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Bool) - (main.res.inst_0_a_0 Bool) - ) Bool - - (and - (= main.usr.ccont_a_0 false) - (= main.res.abs_2_a_0 (not main.usr.ccont_a_0)) - (= main.usr.cca_a_0 false) - (let - ((X1 Bool main.res.abs_3_a_0)) - (and - (= main.res.abs_4_a_0 (let ((X2 Bool main.res.nondet_0)) X2)) - (__node_init_Edge_0 main.usr.igsw_a_0 main.res.abs_0_a_0 main.res.inst_17_a_0) - (__node_init_PosEdge_0 - main.usr.cconoff_a_0 - main.res.abs_1_a_0 - main.res.inst_16_a_0) - (__node_init_cc_allowed_0 - main.usr.ccont_a_0 - main.usr.igsw_a_0 - main.usr.bpa_a_0 - main.usr.cccanc_a_0 - main.usr.battok_a_0 - main.usr.gearok_a_0 - main.usr.qfok_a_0 - main.usr.sdok_a_0 - main.usr.accok_a_0 - main.usr.vs_a_0 - main.res.abs_3_a_0 - main.res.inst_15_a_0 - main.res.inst_14_a_0 - main.res.inst_13_a_0 - main.res.inst_12_a_0 - main.res.inst_11_a_0 - main.res.inst_10_a_0) - (__node_init_one_button_accept_0 - main.usr.ccseti_a_0 - main.usr.ccsetd_a_0 - main.usr.ccr_a_0 - main.usr.ccont_a_0 - main.res.abs_4_a_0 - main.res.abs_5_a_0 - main.res.inst_9_a_0 - main.res.inst_8_a_0 - main.res.inst_7_a_0 - main.res.inst_6_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0 - main.res.inst_3_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0 - main.res.inst_0_a_0) - main.res.init_flag_a_0))) -) - -(define-fun - __node_trans_main_0 ( - (main.usr.igsw_a_1 Bool) - (main.usr.ccd_a_1 Bool) - (main.usr.cconoff_a_1 Bool) - (main.usr.bpa_a_1 Bool) - (main.usr.cccanc_a_1 Bool) - (main.usr.battok_a_1 Bool) - (main.usr.gearok_a_1 Bool) - (main.usr.qfok_a_1 Bool) - (main.usr.sdok_a_1 Bool) - (main.usr.accok_a_1 Bool) - (main.usr.ccseti_a_1 Bool) - (main.usr.ccsetd_a_1 Bool) - (main.usr.ccr_a_1 Bool) - (main.usr.vs_a_1 Int) - (main.res.nondet_0 Bool) - (main.usr.ccont_a_1 Bool) - (main.usr.cca_a_1 Bool) - (main.res.init_flag_a_1 Bool) - (main.res.abs_0_a_1 Bool) - (main.res.abs_1_a_1 Bool) - (main.res.abs_2_a_1 Bool) - (main.res.abs_3_a_1 Bool) - (main.res.abs_4_a_1 Bool) - (main.res.abs_5_a_1 Bool) - (main.res.inst_17_a_1 Bool) - (main.res.inst_16_a_1 Bool) - (main.res.inst_15_a_1 Bool) - (main.res.inst_14_a_1 Bool) - (main.res.inst_13_a_1 Bool) - (main.res.inst_12_a_1 Bool) - (main.res.inst_11_a_1 Bool) - (main.res.inst_10_a_1 Bool) - (main.res.inst_9_a_1 Bool) - (main.res.inst_8_a_1 Bool) - (main.res.inst_7_a_1 Bool) - (main.res.inst_6_a_1 Bool) - (main.res.inst_5_a_1 Bool) - (main.res.inst_4_a_1 Bool) - (main.res.inst_3_a_1 Bool) - (main.res.inst_2_a_1 Bool) - (main.res.inst_1_a_1 Bool) - (main.res.inst_0_a_1 Bool) - (main.usr.igsw_a_0 Bool) - (main.usr.ccd_a_0 Bool) - (main.usr.cconoff_a_0 Bool) - (main.usr.bpa_a_0 Bool) - (main.usr.cccanc_a_0 Bool) - (main.usr.battok_a_0 Bool) - (main.usr.gearok_a_0 Bool) - (main.usr.qfok_a_0 Bool) - (main.usr.sdok_a_0 Bool) - (main.usr.accok_a_0 Bool) - (main.usr.ccseti_a_0 Bool) - (main.usr.ccsetd_a_0 Bool) - (main.usr.ccr_a_0 Bool) - (main.usr.vs_a_0 Int) - (main.usr.ccont_a_0 Bool) - (main.usr.cca_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Bool) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Bool) - (main.res.inst_17_a_0 Bool) - (main.res.inst_16_a_0 Bool) - (main.res.inst_15_a_0 Bool) - (main.res.inst_14_a_0 Bool) - (main.res.inst_13_a_0 Bool) - (main.res.inst_12_a_0 Bool) - (main.res.inst_11_a_0 Bool) - (main.res.inst_10_a_0 Bool) - (main.res.inst_9_a_0 Bool) - (main.res.inst_8_a_0 Bool) - (main.res.inst_7_a_0 Bool) - (main.res.inst_6_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Bool) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Bool) - (main.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - main.usr.ccont_a_1 - (ite - (or - (or main.res.abs_0_a_1 main.usr.ccd_a_1) - (and main.usr.ccont_a_0 main.res.abs_1_a_1)) - false - (ite (and main.res.abs_2_a_0 main.res.abs_1_a_1) true main.usr.ccont_a_0))) - (= main.res.abs_2_a_1 (not main.usr.ccont_a_1)) - (= main.res.abs_4_a_1 main.usr.cca_a_0) - (let - ((X1 Bool main.res.abs_3_a_1)) - (and - (= - main.usr.cca_a_1 - (ite - (and main.res.abs_5_a_1 X1) - true - (ite (not X1) false main.usr.cca_a_0))) - (__node_trans_Edge_0 - main.usr.igsw_a_1 - main.res.abs_0_a_1 - main.res.inst_17_a_1 - main.usr.igsw_a_0 - main.res.abs_0_a_0 - main.res.inst_17_a_0) - (__node_trans_PosEdge_0 - main.usr.cconoff_a_1 - main.res.abs_1_a_1 - main.res.inst_16_a_1 - main.usr.cconoff_a_0 - main.res.abs_1_a_0 - main.res.inst_16_a_0) - (__node_trans_cc_allowed_0 - main.usr.ccont_a_1 - main.usr.igsw_a_1 - main.usr.bpa_a_1 - main.usr.cccanc_a_1 - main.usr.battok_a_1 - main.usr.gearok_a_1 - main.usr.qfok_a_1 - main.usr.sdok_a_1 - main.usr.accok_a_1 - main.usr.vs_a_1 - main.res.abs_3_a_1 - main.res.inst_15_a_1 - main.res.inst_14_a_1 - main.res.inst_13_a_1 - main.res.inst_12_a_1 - main.res.inst_11_a_1 - main.res.inst_10_a_1 - main.usr.ccont_a_0 - main.usr.igsw_a_0 - main.usr.bpa_a_0 - main.usr.cccanc_a_0 - main.usr.battok_a_0 - main.usr.gearok_a_0 - main.usr.qfok_a_0 - main.usr.sdok_a_0 - main.usr.accok_a_0 - main.usr.vs_a_0 - main.res.abs_3_a_0 - main.res.inst_15_a_0 - main.res.inst_14_a_0 - main.res.inst_13_a_0 - main.res.inst_12_a_0 - main.res.inst_11_a_0 - main.res.inst_10_a_0) - (__node_trans_one_button_accept_0 - main.usr.ccseti_a_1 - main.usr.ccsetd_a_1 - main.usr.ccr_a_1 - main.usr.ccont_a_1 - main.res.abs_4_a_1 - main.res.abs_5_a_1 - main.res.inst_9_a_1 - main.res.inst_8_a_1 - main.res.inst_7_a_1 - main.res.inst_6_a_1 - main.res.inst_5_a_1 - main.res.inst_4_a_1 - main.res.inst_3_a_1 - main.res.inst_2_a_1 - main.res.inst_1_a_1 - main.res.inst_0_a_1 - main.usr.ccseti_a_0 - main.usr.ccsetd_a_0 - main.usr.ccr_a_0 - main.usr.ccont_a_0 - main.res.abs_4_a_0 - main.res.abs_5_a_0 - main.res.inst_9_a_0 - main.res.inst_8_a_0 - main.res.inst_7_a_0 - main.res.inst_6_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0 - main.res.inst_3_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0 - main.res.inst_0_a_0) - (not main.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.igsw_a_0 Bool) - (top.usr.ccd_a_0 Bool) - (top.usr.cconoff_a_0 Bool) - (top.usr.bpa_a_0 Bool) - (top.usr.cccanc_a_0 Bool) - (top.usr.battok_a_0 Bool) - (top.usr.gearok_a_0 Bool) - (top.usr.qfok_a_0 Bool) - (top.usr.sdok_a_0 Bool) - (top.usr.accok_a_0 Bool) - (top.usr.ccseti_a_0 Bool) - (top.usr.ccsetd_a_0 Bool) - (top.usr.ccr_a_0 Bool) - (top.usr.vs_a_0 Int) - (top.res.nondet_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.cca_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Bool) - (top.res.inst_23_a_0 Bool) - (top.res.inst_22_a_0 Bool) - (top.res.inst_21_a_0 Bool) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.usr.OK_a_0 - (ite - top.res.abs_2_a_0 - (or (or top.res.abs_3_a_0 top.res.abs_4_a_0) top.res.abs_5_a_0) - true)) - (= top.impl.usr.cca_a_0 top.res.abs_1_a_0) - (__node_init_PosEdge_0 - top.impl.usr.cca_a_0 - top.res.abs_2_a_0 - top.res.inst_28_a_0) - (__node_init_main_0 - top.usr.igsw_a_0 - top.usr.ccd_a_0 - top.usr.cconoff_a_0 - top.usr.bpa_a_0 - top.usr.cccanc_a_0 - top.usr.battok_a_0 - top.usr.gearok_a_0 - top.usr.qfok_a_0 - top.usr.sdok_a_0 - top.usr.accok_a_0 - top.usr.ccseti_a_0 - top.usr.ccsetd_a_0 - top.usr.ccr_a_0 - top.usr.vs_a_0 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_27_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_PosEdge_0 top.usr.ccseti_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) - (__node_init_PosEdge_0 top.usr.ccsetd_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) - (__node_init_PosEdge_0 top.usr.ccr_a_0 top.res.abs_5_a_0 top.res.inst_0_a_0) - top.res.init_flag_a_0) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.igsw_a_1 Bool) - (top.usr.ccd_a_1 Bool) - (top.usr.cconoff_a_1 Bool) - (top.usr.bpa_a_1 Bool) - (top.usr.cccanc_a_1 Bool) - (top.usr.battok_a_1 Bool) - (top.usr.gearok_a_1 Bool) - (top.usr.qfok_a_1 Bool) - (top.usr.sdok_a_1 Bool) - (top.usr.accok_a_1 Bool) - (top.usr.ccseti_a_1 Bool) - (top.usr.ccsetd_a_1 Bool) - (top.usr.ccr_a_1 Bool) - (top.usr.vs_a_1 Int) - (top.res.nondet_0 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.cca_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.inst_28_a_1 Bool) - (top.res.inst_27_a_1 Bool) - (top.res.inst_26_a_1 Bool) - (top.res.inst_25_a_1 Bool) - (top.res.inst_24_a_1 Bool) - (top.res.inst_23_a_1 Bool) - (top.res.inst_22_a_1 Bool) - (top.res.inst_21_a_1 Bool) - (top.res.inst_20_a_1 Bool) - (top.res.inst_19_a_1 Bool) - (top.res.inst_18_a_1 Bool) - (top.res.inst_17_a_1 Bool) - (top.res.inst_16_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Bool) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Bool) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Bool) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.igsw_a_0 Bool) - (top.usr.ccd_a_0 Bool) - (top.usr.cconoff_a_0 Bool) - (top.usr.bpa_a_0 Bool) - (top.usr.cccanc_a_0 Bool) - (top.usr.battok_a_0 Bool) - (top.usr.gearok_a_0 Bool) - (top.usr.qfok_a_0 Bool) - (top.usr.sdok_a_0 Bool) - (top.usr.accok_a_0 Bool) - (top.usr.ccseti_a_0 Bool) - (top.usr.ccsetd_a_0 Bool) - (top.usr.ccr_a_0 Bool) - (top.usr.vs_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.cca_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Bool) - (top.res.inst_23_a_0 Bool) - (top.res.inst_22_a_0 Bool) - (top.res.inst_21_a_0 Bool) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.cca_a_1 top.res.abs_1_a_1) - (= - top.usr.OK_a_1 - (ite - top.res.abs_2_a_1 - (or (or top.res.abs_3_a_1 top.res.abs_4_a_1) top.res.abs_5_a_1) - true)) - (__node_trans_PosEdge_0 - top.impl.usr.cca_a_1 - top.res.abs_2_a_1 - top.res.inst_28_a_1 - top.impl.usr.cca_a_0 - top.res.abs_2_a_0 - top.res.inst_28_a_0) - (__node_trans_main_0 - top.usr.igsw_a_1 - top.usr.ccd_a_1 - top.usr.cconoff_a_1 - top.usr.bpa_a_1 - top.usr.cccanc_a_1 - top.usr.battok_a_1 - top.usr.gearok_a_1 - top.usr.qfok_a_1 - top.usr.sdok_a_1 - top.usr.accok_a_1 - top.usr.ccseti_a_1 - top.usr.ccsetd_a_1 - top.usr.ccr_a_1 - top.usr.vs_a_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.inst_27_a_1 - top.res.inst_26_a_1 - top.res.inst_25_a_1 - top.res.inst_24_a_1 - top.res.inst_23_a_1 - top.res.inst_22_a_1 - top.res.inst_21_a_1 - top.res.inst_20_a_1 - top.res.inst_19_a_1 - top.res.inst_18_a_1 - top.res.inst_17_a_1 - top.res.inst_16_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.igsw_a_0 - top.usr.ccd_a_0 - top.usr.cconoff_a_0 - top.usr.bpa_a_0 - top.usr.cccanc_a_0 - top.usr.battok_a_0 - top.usr.gearok_a_0 - top.usr.qfok_a_0 - top.usr.sdok_a_0 - top.usr.accok_a_0 - top.usr.ccseti_a_0 - top.usr.ccsetd_a_0 - top.usr.ccr_a_0 - top.usr.vs_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_27_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_PosEdge_0 - top.usr.ccseti_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.usr.ccseti_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_PosEdge_0 - top.usr.ccsetd_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.ccsetd_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_PosEdge_0 - top.usr.ccr_a_1 - top.res.abs_5_a_1 - top.res.inst_0_a_1 - top.usr.ccr_a_0 - top.res.abs_5_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)) -) - - - -(synth-inv str_invariant( - (top.usr.igsw Bool) - (top.usr.ccd Bool) - (top.usr.cconoff Bool) - (top.usr.bpa Bool) - (top.usr.cccanc Bool) - (top.usr.battok Bool) - (top.usr.gearok Bool) - (top.usr.qfok Bool) - (top.usr.sdok Bool) - (top.usr.accok Bool) - (top.usr.ccseti Bool) - (top.usr.ccsetd Bool) - (top.usr.ccr Bool) - (top.usr.vs Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.cca Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_0 () Bool) - -(declare-primed-var top.usr.igsw Bool) -(declare-primed-var top.usr.ccd Bool) -(declare-primed-var top.usr.cconoff Bool) -(declare-primed-var top.usr.bpa Bool) -(declare-primed-var top.usr.cccanc Bool) -(declare-primed-var top.usr.battok Bool) -(declare-primed-var top.usr.gearok Bool) -(declare-primed-var top.usr.qfok Bool) -(declare-primed-var top.usr.sdok Bool) -(declare-primed-var top.usr.accok Bool) -(declare-primed-var top.usr.ccseti Bool) -(declare-primed-var top.usr.ccsetd Bool) -(declare-primed-var top.usr.ccr Bool) -(declare-primed-var top.usr.vs Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.cca Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.inst_28 Bool) -(declare-primed-var top.res.inst_27 Bool) -(declare-primed-var top.res.inst_26 Bool) -(declare-primed-var top.res.inst_25 Bool) -(declare-primed-var top.res.inst_24 Bool) -(declare-primed-var top.res.inst_23 Bool) -(declare-primed-var top.res.inst_22 Bool) -(declare-primed-var top.res.inst_21 Bool) -(declare-primed-var top.res.inst_20 Bool) -(declare-primed-var top.res.inst_19 Bool) -(declare-primed-var top.res.inst_18 Bool) -(declare-primed-var top.res.inst_17 Bool) -(declare-primed-var top.res.inst_16 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Bool) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Bool) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Bool) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.igsw Bool) - (top.usr.ccd Bool) - (top.usr.cconoff Bool) - (top.usr.bpa Bool) - (top.usr.cccanc Bool) - (top.usr.battok Bool) - (top.usr.gearok Bool) - (top.usr.qfok Bool) - (top.usr.sdok Bool) - (top.usr.accok Bool) - (top.usr.ccseti Bool) - (top.usr.ccsetd Bool) - (top.usr.ccr Bool) - (top.usr.vs Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.cca Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.usr.OK - (ite - top.res.abs_2 - (or (or top.res.abs_3 top.res.abs_4) top.res.abs_5) - true)) - (= top.impl.usr.cca top.res.abs_1) - (__node_init_PosEdge_0 top.impl.usr.cca top.res.abs_2 top.res.inst_28) - (__node_init_main_0 - top.usr.igsw - top.usr.ccd - top.usr.cconoff - top.usr.bpa - top.usr.cccanc - top.usr.battok - top.usr.gearok - top.usr.qfok - top.usr.sdok - top.usr.accok - top.usr.ccseti - top.usr.ccsetd - top.usr.ccr - top.usr.vs - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.inst_27 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_PosEdge_0 top.usr.ccseti top.res.abs_3 top.res.inst_2) - (__node_init_PosEdge_0 top.usr.ccsetd top.res.abs_4 top.res.inst_1) - (__node_init_PosEdge_0 top.usr.ccr top.res.abs_5 top.res.inst_0) - top.res.init_flag) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.igsw Bool) - (top.usr.ccd Bool) - (top.usr.cconoff Bool) - (top.usr.bpa Bool) - (top.usr.cccanc Bool) - (top.usr.battok Bool) - (top.usr.gearok Bool) - (top.usr.qfok Bool) - (top.usr.sdok Bool) - (top.usr.accok Bool) - (top.usr.ccseti Bool) - (top.usr.ccsetd Bool) - (top.usr.ccr Bool) - (top.usr.vs Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.cca Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.igsw! Bool) - (top.usr.ccd! Bool) - (top.usr.cconoff! Bool) - (top.usr.bpa! Bool) - (top.usr.cccanc! Bool) - (top.usr.battok! Bool) - (top.usr.gearok! Bool) - (top.usr.qfok! Bool) - (top.usr.sdok! Bool) - (top.usr.accok! Bool) - (top.usr.ccseti! Bool) - (top.usr.ccsetd! Bool) - (top.usr.ccr! Bool) - (top.usr.vs! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.cca! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.inst_28! Bool) - (top.res.inst_27! Bool) - (top.res.inst_26! Bool) - (top.res.inst_25! Bool) - (top.res.inst_24! Bool) - (top.res.inst_23! Bool) - (top.res.inst_22! Bool) - (top.res.inst_21! Bool) - (top.res.inst_20! Bool) - (top.res.inst_19! Bool) - (top.res.inst_18! Bool) - (top.res.inst_17! Bool) - (top.res.inst_16! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Bool) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Bool) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Bool) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.impl.usr.cca! top.res.abs_1!) - (= - top.usr.OK! - (ite - top.res.abs_2! - (or (or top.res.abs_3! top.res.abs_4!) top.res.abs_5!) - true)) - (__node_trans_PosEdge_0 - top.impl.usr.cca! - top.res.abs_2! - top.res.inst_28! - top.impl.usr.cca - top.res.abs_2 - top.res.inst_28) - (__node_trans_main_0 - top.usr.igsw! - top.usr.ccd! - top.usr.cconoff! - top.usr.bpa! - top.usr.cccanc! - top.usr.battok! - top.usr.gearok! - top.usr.qfok! - top.usr.sdok! - top.usr.accok! - top.usr.ccseti! - top.usr.ccsetd! - top.usr.ccr! - top.usr.vs! - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.inst_27! - top.res.inst_26! - top.res.inst_25! - top.res.inst_24! - top.res.inst_23! - top.res.inst_22! - top.res.inst_21! - top.res.inst_20! - top.res.inst_19! - top.res.inst_18! - top.res.inst_17! - top.res.inst_16! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.usr.igsw - top.usr.ccd - top.usr.cconoff - top.usr.bpa - top.usr.cccanc - top.usr.battok - top.usr.gearok - top.usr.qfok - top.usr.sdok - top.usr.accok - top.usr.ccseti - top.usr.ccsetd - top.usr.ccr - top.usr.vs - top.res.abs_0 - top.res.abs_1 - top.res.inst_27 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_PosEdge_0 - top.usr.ccseti! - top.res.abs_3! - top.res.inst_2! - top.usr.ccseti - top.res.abs_3 - top.res.inst_2) - (__node_trans_PosEdge_0 - top.usr.ccsetd! - top.res.abs_4! - top.res.inst_1! - top.usr.ccsetd - top.res.abs_4 - top.res.inst_1) - (__node_trans_PosEdge_0 - top.usr.ccr! - top.res.abs_5! - top.res.inst_0! - top.usr.ccr - top.res.abs_5 - top.res.inst_0) - (not top.res.init_flag!)) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.igsw Bool) - (top.usr.ccd Bool) - (top.usr.cconoff Bool) - (top.usr.bpa Bool) - (top.usr.cccanc Bool) - (top.usr.battok Bool) - (top.usr.gearok Bool) - (top.usr.qfok Bool) - (top.usr.sdok Bool) - (top.usr.accok Bool) - (top.usr.ccseti Bool) - (top.usr.ccsetd Bool) - (top.usr.ccr Bool) - (top.usr.vs Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.cca Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_PosEdge_0 ((PosEdge.usr.X_a_0 Bool) (PosEdge.usr.Y_a_0 Bool) (PosEdge.res.init_flag_a_0 Bool)) Bool + (and (= PosEdge.usr.Y_a_0 false) PosEdge.res.init_flag_a_0)) +(define-fun __node_trans_PosEdge_0 ((PosEdge.usr.X_a_1 Bool) (PosEdge.usr.Y_a_1 Bool) (PosEdge.res.init_flag_a_1 Bool) (PosEdge.usr.X_a_0 Bool) (PosEdge.usr.Y_a_0 Bool) (PosEdge.res.init_flag_a_0 Bool)) Bool + (and (= PosEdge.usr.Y_a_1 (and PosEdge.usr.X_a_1 (not PosEdge.usr.X_a_0))) (not PosEdge.res.init_flag_a_1))) +(define-fun __node_init_prev_no_button_0 ((prev_no_button.usr.ccseti_a_0 Bool) (prev_no_button.usr.ccsetd_a_0 Bool) (prev_no_button.usr.ccr_a_0 Bool) (prev_no_button.usr.pnb_a_0 Bool) (prev_no_button.res.init_flag_a_0 Bool) (prev_no_button.res.abs_0_a_0 Bool)) Bool + (and (= prev_no_button.usr.pnb_a_0 true) (= prev_no_button.res.abs_0_a_0 (and (and (not prev_no_button.usr.ccseti_a_0) (not prev_no_button.usr.ccsetd_a_0)) (not prev_no_button.usr.ccr_a_0))) prev_no_button.res.init_flag_a_0)) +(define-fun __node_trans_prev_no_button_0 ((prev_no_button.usr.ccseti_a_1 Bool) (prev_no_button.usr.ccsetd_a_1 Bool) (prev_no_button.usr.ccr_a_1 Bool) (prev_no_button.usr.pnb_a_1 Bool) (prev_no_button.res.init_flag_a_1 Bool) (prev_no_button.res.abs_0_a_1 Bool) (prev_no_button.usr.ccseti_a_0 Bool) (prev_no_button.usr.ccsetd_a_0 Bool) (prev_no_button.usr.ccr_a_0 Bool) (prev_no_button.usr.pnb_a_0 Bool) (prev_no_button.res.init_flag_a_0 Bool) (prev_no_button.res.abs_0_a_0 Bool)) Bool + (and (= prev_no_button.usr.pnb_a_1 prev_no_button.res.abs_0_a_0) (= prev_no_button.res.abs_0_a_1 (and (and (not prev_no_button.usr.ccseti_a_1) (not prev_no_button.usr.ccsetd_a_1)) (not prev_no_button.usr.ccr_a_1))) (not prev_no_button.res.init_flag_a_1))) +(define-fun __node_init_AtLeastOnceSince_0 ((AtLeastOnceSince.usr.X_a_0 Bool) (AtLeastOnceSince.usr.Y_a_0 Bool) (AtLeastOnceSince.usr.XsinceY_a_0 Bool) (AtLeastOnceSince.res.init_flag_a_0 Bool)) Bool + (and (= AtLeastOnceSince.usr.XsinceY_a_0 (ite AtLeastOnceSince.usr.Y_a_0 AtLeastOnceSince.usr.X_a_0 true)) AtLeastOnceSince.res.init_flag_a_0)) +(define-fun __node_trans_AtLeastOnceSince_0 ((AtLeastOnceSince.usr.X_a_1 Bool) (AtLeastOnceSince.usr.Y_a_1 Bool) (AtLeastOnceSince.usr.XsinceY_a_1 Bool) (AtLeastOnceSince.res.init_flag_a_1 Bool) (AtLeastOnceSince.usr.X_a_0 Bool) (AtLeastOnceSince.usr.Y_a_0 Bool) (AtLeastOnceSince.usr.XsinceY_a_0 Bool) (AtLeastOnceSince.res.init_flag_a_0 Bool)) Bool + (and (= AtLeastOnceSince.usr.XsinceY_a_1 (ite AtLeastOnceSince.usr.Y_a_1 AtLeastOnceSince.usr.X_a_1 (or AtLeastOnceSince.usr.X_a_1 AtLeastOnceSince.usr.XsinceY_a_0))) (not AtLeastOnceSince.res.init_flag_a_1))) +(define-fun __node_init_one_button_0 ((one_button.usr.ccseti_a_0 Bool) (one_button.usr.ccsetd_a_0 Bool) (one_button.usr.ccr_a_0 Bool) (one_button.usr.ob_a_0 Bool) (one_button.res.init_flag_a_0 Bool)) Bool + (and (= one_button.usr.ob_a_0 (or (or (and (and one_button.usr.ccseti_a_0 (not one_button.usr.ccsetd_a_0)) (not one_button.usr.ccr_a_0)) (and (and (not one_button.usr.ccseti_a_0) one_button.usr.ccsetd_a_0) (not one_button.usr.ccr_a_0))) (and (and (not one_button.usr.ccseti_a_0) (not one_button.usr.ccsetd_a_0)) one_button.usr.ccr_a_0))) one_button.res.init_flag_a_0)) +(define-fun __node_trans_one_button_0 ((one_button.usr.ccseti_a_1 Bool) (one_button.usr.ccsetd_a_1 Bool) (one_button.usr.ccr_a_1 Bool) (one_button.usr.ob_a_1 Bool) (one_button.res.init_flag_a_1 Bool) (one_button.usr.ccseti_a_0 Bool) (one_button.usr.ccsetd_a_0 Bool) (one_button.usr.ccr_a_0 Bool) (one_button.usr.ob_a_0 Bool) (one_button.res.init_flag_a_0 Bool)) Bool + (and (= one_button.usr.ob_a_1 (or (or (and (and one_button.usr.ccseti_a_1 (not one_button.usr.ccsetd_a_1)) (not one_button.usr.ccr_a_1)) (and (and (not one_button.usr.ccseti_a_1) one_button.usr.ccsetd_a_1) (not one_button.usr.ccr_a_1))) (and (and (not one_button.usr.ccseti_a_1) (not one_button.usr.ccsetd_a_1)) one_button.usr.ccr_a_1))) (not one_button.res.init_flag_a_1))) +(define-fun __node_init_one_button_accept_0 ((one_button_accept.usr.ccseti_a_0 Bool) (one_button_accept.usr.ccsetd_a_0 Bool) (one_button_accept.usr.ccr_a_0 Bool) (one_button_accept.usr.ccont_a_0 Bool) (one_button_accept.usr.cca_a_0 Bool) (one_button_accept.usr.oba_a_0 Bool) (one_button_accept.res.init_flag_a_0 Bool) (one_button_accept.res.abs_0_a_0 Bool) (one_button_accept.res.abs_1_a_0 Bool) (one_button_accept.res.abs_2_a_0 Bool) (one_button_accept.res.abs_3_a_0 Bool) (one_button_accept.res.inst_4_a_0 Bool) (one_button_accept.res.inst_3_a_0 Bool) (one_button_accept.res.inst_2_a_0 Bool) (one_button_accept.res.inst_1_a_0 Bool) (one_button_accept.res.inst_0_a_0 Bool)) Bool + (let ((X1 one_button_accept.res.abs_0_a_0)) (let ((X2 one_button_accept.res.abs_1_a_0)) (and (= one_button_accept.usr.oba_a_0 (ite (and X1 X2) (ite (not one_button_accept.usr.ccr_a_0) true one_button_accept.res.abs_3_a_0) false)) (__node_init_one_button_0 one_button_accept.usr.ccseti_a_0 one_button_accept.usr.ccsetd_a_0 one_button_accept.usr.ccr_a_0 one_button_accept.res.abs_1_a_0 one_button_accept.res.inst_4_a_0) (__node_init_prev_no_button_0 one_button_accept.usr.ccseti_a_0 one_button_accept.usr.ccsetd_a_0 one_button_accept.usr.ccr_a_0 one_button_accept.res.abs_0_a_0 one_button_accept.res.inst_3_a_0 one_button_accept.res.inst_2_a_0) (__node_init_AtLeastOnceSince_0 one_button_accept.usr.cca_a_0 one_button_accept.res.abs_2_a_0 one_button_accept.res.abs_3_a_0 one_button_accept.res.inst_1_a_0) (__node_init_PosEdge_0 one_button_accept.usr.ccont_a_0 one_button_accept.res.abs_2_a_0 one_button_accept.res.inst_0_a_0) one_button_accept.res.init_flag_a_0)))) +(define-fun __node_trans_one_button_accept_0 ((one_button_accept.usr.ccseti_a_1 Bool) (one_button_accept.usr.ccsetd_a_1 Bool) (one_button_accept.usr.ccr_a_1 Bool) (one_button_accept.usr.ccont_a_1 Bool) (one_button_accept.usr.cca_a_1 Bool) (one_button_accept.usr.oba_a_1 Bool) (one_button_accept.res.init_flag_a_1 Bool) (one_button_accept.res.abs_0_a_1 Bool) (one_button_accept.res.abs_1_a_1 Bool) (one_button_accept.res.abs_2_a_1 Bool) (one_button_accept.res.abs_3_a_1 Bool) (one_button_accept.res.inst_4_a_1 Bool) (one_button_accept.res.inst_3_a_1 Bool) (one_button_accept.res.inst_2_a_1 Bool) (one_button_accept.res.inst_1_a_1 Bool) (one_button_accept.res.inst_0_a_1 Bool) (one_button_accept.usr.ccseti_a_0 Bool) (one_button_accept.usr.ccsetd_a_0 Bool) (one_button_accept.usr.ccr_a_0 Bool) (one_button_accept.usr.ccont_a_0 Bool) (one_button_accept.usr.cca_a_0 Bool) (one_button_accept.usr.oba_a_0 Bool) (one_button_accept.res.init_flag_a_0 Bool) (one_button_accept.res.abs_0_a_0 Bool) (one_button_accept.res.abs_1_a_0 Bool) (one_button_accept.res.abs_2_a_0 Bool) (one_button_accept.res.abs_3_a_0 Bool) (one_button_accept.res.inst_4_a_0 Bool) (one_button_accept.res.inst_3_a_0 Bool) (one_button_accept.res.inst_2_a_0 Bool) (one_button_accept.res.inst_1_a_0 Bool) (one_button_accept.res.inst_0_a_0 Bool)) Bool + (let ((X1 one_button_accept.res.abs_0_a_1)) (let ((X2 one_button_accept.res.abs_1_a_1)) (and (= one_button_accept.usr.oba_a_1 (ite (and X1 X2) (ite (not one_button_accept.usr.ccr_a_1) true one_button_accept.res.abs_3_a_1) false)) (__node_trans_one_button_0 one_button_accept.usr.ccseti_a_1 one_button_accept.usr.ccsetd_a_1 one_button_accept.usr.ccr_a_1 one_button_accept.res.abs_1_a_1 one_button_accept.res.inst_4_a_1 one_button_accept.usr.ccseti_a_0 one_button_accept.usr.ccsetd_a_0 one_button_accept.usr.ccr_a_0 one_button_accept.res.abs_1_a_0 one_button_accept.res.inst_4_a_0) (__node_trans_prev_no_button_0 one_button_accept.usr.ccseti_a_1 one_button_accept.usr.ccsetd_a_1 one_button_accept.usr.ccr_a_1 one_button_accept.res.abs_0_a_1 one_button_accept.res.inst_3_a_1 one_button_accept.res.inst_2_a_1 one_button_accept.usr.ccseti_a_0 one_button_accept.usr.ccsetd_a_0 one_button_accept.usr.ccr_a_0 one_button_accept.res.abs_0_a_0 one_button_accept.res.inst_3_a_0 one_button_accept.res.inst_2_a_0) (__node_trans_AtLeastOnceSince_0 one_button_accept.usr.cca_a_1 one_button_accept.res.abs_2_a_1 one_button_accept.res.abs_3_a_1 one_button_accept.res.inst_1_a_1 one_button_accept.usr.cca_a_0 one_button_accept.res.abs_2_a_0 one_button_accept.res.abs_3_a_0 one_button_accept.res.inst_1_a_0) (__node_trans_PosEdge_0 one_button_accept.usr.ccont_a_1 one_button_accept.res.abs_2_a_1 one_button_accept.res.inst_0_a_1 one_button_accept.usr.ccont_a_0 one_button_accept.res.abs_2_a_0 one_button_accept.res.inst_0_a_0) (not one_button_accept.res.init_flag_a_1))))) +(define-fun __node_init_MoreThanTwoSec_0 ((MoreThanTwoSec.usr.X_a_0 Bool) (MoreThanTwoSec.usr.Y_a_0 Bool) (MoreThanTwoSec.res.init_flag_a_0 Bool) (MoreThanTwoSec.res.abs_0_a_0 Bool)) Bool + (and (= MoreThanTwoSec.usr.Y_a_0 false) (= MoreThanTwoSec.res.abs_0_a_0 false) MoreThanTwoSec.res.init_flag_a_0)) +(define-fun __node_trans_MoreThanTwoSec_0 ((MoreThanTwoSec.usr.X_a_1 Bool) (MoreThanTwoSec.usr.Y_a_1 Bool) (MoreThanTwoSec.res.init_flag_a_1 Bool) (MoreThanTwoSec.res.abs_0_a_1 Bool) (MoreThanTwoSec.usr.X_a_0 Bool) (MoreThanTwoSec.usr.Y_a_0 Bool) (MoreThanTwoSec.res.init_flag_a_0 Bool) (MoreThanTwoSec.res.abs_0_a_0 Bool)) Bool + (and (= MoreThanTwoSec.usr.Y_a_1 (and MoreThanTwoSec.res.abs_0_a_0 MoreThanTwoSec.usr.X_a_1)) (= MoreThanTwoSec.res.abs_0_a_1 (and MoreThanTwoSec.usr.X_a_0 MoreThanTwoSec.usr.X_a_1)) (not MoreThanTwoSec.res.init_flag_a_1))) +(define-fun __node_init_MoreThanOneSec_0 ((MoreThanOneSec.usr.X_a_0 Bool) (MoreThanOneSec.usr.Y_a_0 Bool) (MoreThanOneSec.res.init_flag_a_0 Bool)) Bool + (and (= MoreThanOneSec.usr.Y_a_0 false) MoreThanOneSec.res.init_flag_a_0)) +(define-fun __node_trans_MoreThanOneSec_0 ((MoreThanOneSec.usr.X_a_1 Bool) (MoreThanOneSec.usr.Y_a_1 Bool) (MoreThanOneSec.res.init_flag_a_1 Bool) (MoreThanOneSec.usr.X_a_0 Bool) (MoreThanOneSec.usr.Y_a_0 Bool) (MoreThanOneSec.res.init_flag_a_0 Bool)) Bool + (and (= MoreThanOneSec.usr.Y_a_1 (and MoreThanOneSec.usr.X_a_0 MoreThanOneSec.usr.X_a_1)) (not MoreThanOneSec.res.init_flag_a_1))) +(define-fun __node_init_cc_allowed_0 ((cc_allowed.usr.ccont_a_0 Bool) (cc_allowed.usr.igsw_a_0 Bool) (cc_allowed.usr.bpa_a_0 Bool) (cc_allowed.usr.cccanc_a_0 Bool) (cc_allowed.usr.battok_a_0 Bool) (cc_allowed.usr.gearok_a_0 Bool) (cc_allowed.usr.qfok_a_0 Bool) (cc_allowed.usr.sdok_a_0 Bool) (cc_allowed.usr.accok_a_0 Bool) (cc_allowed.usr.vs_a_0 Int) (cc_allowed.usr.ccall_a_0 Bool) (cc_allowed.res.init_flag_a_0 Bool) (cc_allowed.res.abs_0_a_0 Bool) (cc_allowed.res.abs_1_a_0 Bool) (cc_allowed.res.inst_2_a_0 Bool) (cc_allowed.res.inst_1_a_0 Bool) (cc_allowed.res.inst_0_a_0 Bool)) Bool + (and (= cc_allowed.usr.ccall_a_0 (and (and (and (and (and (and (and (and (and cc_allowed.usr.ccont_a_0 (not cc_allowed.usr.bpa_a_0)) cc_allowed.usr.battok_a_0) cc_allowed.usr.gearok_a_0) cc_allowed.usr.qfok_a_0) cc_allowed.res.abs_0_a_0) (<= 35 cc_allowed.usr.vs_a_0)) (<= cc_allowed.usr.vs_a_0 200)) cc_allowed.res.abs_1_a_0) (not cc_allowed.usr.cccanc_a_0))) (__node_init_MoreThanOneSec_0 cc_allowed.usr.sdok_a_0 cc_allowed.res.abs_0_a_0 cc_allowed.res.inst_2_a_0) (__node_init_MoreThanTwoSec_0 cc_allowed.usr.accok_a_0 cc_allowed.res.abs_1_a_0 cc_allowed.res.inst_1_a_0 cc_allowed.res.inst_0_a_0) cc_allowed.res.init_flag_a_0)) +(define-fun __node_trans_cc_allowed_0 ((cc_allowed.usr.ccont_a_1 Bool) (cc_allowed.usr.igsw_a_1 Bool) (cc_allowed.usr.bpa_a_1 Bool) (cc_allowed.usr.cccanc_a_1 Bool) (cc_allowed.usr.battok_a_1 Bool) (cc_allowed.usr.gearok_a_1 Bool) (cc_allowed.usr.qfok_a_1 Bool) (cc_allowed.usr.sdok_a_1 Bool) (cc_allowed.usr.accok_a_1 Bool) (cc_allowed.usr.vs_a_1 Int) (cc_allowed.usr.ccall_a_1 Bool) (cc_allowed.res.init_flag_a_1 Bool) (cc_allowed.res.abs_0_a_1 Bool) (cc_allowed.res.abs_1_a_1 Bool) (cc_allowed.res.inst_2_a_1 Bool) (cc_allowed.res.inst_1_a_1 Bool) (cc_allowed.res.inst_0_a_1 Bool) (cc_allowed.usr.ccont_a_0 Bool) (cc_allowed.usr.igsw_a_0 Bool) (cc_allowed.usr.bpa_a_0 Bool) (cc_allowed.usr.cccanc_a_0 Bool) (cc_allowed.usr.battok_a_0 Bool) (cc_allowed.usr.gearok_a_0 Bool) (cc_allowed.usr.qfok_a_0 Bool) (cc_allowed.usr.sdok_a_0 Bool) (cc_allowed.usr.accok_a_0 Bool) (cc_allowed.usr.vs_a_0 Int) (cc_allowed.usr.ccall_a_0 Bool) (cc_allowed.res.init_flag_a_0 Bool) (cc_allowed.res.abs_0_a_0 Bool) (cc_allowed.res.abs_1_a_0 Bool) (cc_allowed.res.inst_2_a_0 Bool) (cc_allowed.res.inst_1_a_0 Bool) (cc_allowed.res.inst_0_a_0 Bool)) Bool + (and (= cc_allowed.usr.ccall_a_1 (and (and (and (and (and (and (and (and (and cc_allowed.usr.ccont_a_1 (not cc_allowed.usr.bpa_a_1)) cc_allowed.usr.battok_a_1) cc_allowed.usr.gearok_a_1) cc_allowed.usr.qfok_a_1) cc_allowed.res.abs_0_a_1) (<= 35 cc_allowed.usr.vs_a_1)) (<= cc_allowed.usr.vs_a_1 200)) cc_allowed.res.abs_1_a_1) (not cc_allowed.usr.cccanc_a_1))) (__node_trans_MoreThanOneSec_0 cc_allowed.usr.sdok_a_1 cc_allowed.res.abs_0_a_1 cc_allowed.res.inst_2_a_1 cc_allowed.usr.sdok_a_0 cc_allowed.res.abs_0_a_0 cc_allowed.res.inst_2_a_0) (__node_trans_MoreThanTwoSec_0 cc_allowed.usr.accok_a_1 cc_allowed.res.abs_1_a_1 cc_allowed.res.inst_1_a_1 cc_allowed.res.inst_0_a_1 cc_allowed.usr.accok_a_0 cc_allowed.res.abs_1_a_0 cc_allowed.res.inst_1_a_0 cc_allowed.res.inst_0_a_0) (not cc_allowed.res.init_flag_a_1))) +(define-fun __node_init_Edge_0 ((Edge.usr.X_a_0 Bool) (Edge.usr.Y_a_0 Bool) (Edge.res.init_flag_a_0 Bool)) Bool + (and (= Edge.usr.Y_a_0 false) Edge.res.init_flag_a_0)) +(define-fun __node_trans_Edge_0 ((Edge.usr.X_a_1 Bool) (Edge.usr.Y_a_1 Bool) (Edge.res.init_flag_a_1 Bool) (Edge.usr.X_a_0 Bool) (Edge.usr.Y_a_0 Bool) (Edge.res.init_flag_a_0 Bool)) Bool + (and (= Edge.usr.Y_a_1 (or (and Edge.usr.X_a_1 (not Edge.usr.X_a_0)) (and (not Edge.usr.X_a_1) Edge.usr.X_a_0))) (not Edge.res.init_flag_a_1))) +(define-fun __node_init_main_0 ((main.usr.igsw_a_0 Bool) (main.usr.ccd_a_0 Bool) (main.usr.cconoff_a_0 Bool) (main.usr.bpa_a_0 Bool) (main.usr.cccanc_a_0 Bool) (main.usr.battok_a_0 Bool) (main.usr.gearok_a_0 Bool) (main.usr.qfok_a_0 Bool) (main.usr.sdok_a_0 Bool) (main.usr.accok_a_0 Bool) (main.usr.ccseti_a_0 Bool) (main.usr.ccsetd_a_0 Bool) (main.usr.ccr_a_0 Bool) (main.usr.vs_a_0 Int) (main.res.nondet_0 Bool) (main.usr.ccont_a_0 Bool) (main.usr.cca_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Bool) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Bool) (main.res.inst_17_a_0 Bool) (main.res.inst_16_a_0 Bool) (main.res.inst_15_a_0 Bool) (main.res.inst_14_a_0 Bool) (main.res.inst_13_a_0 Bool) (main.res.inst_12_a_0 Bool) (main.res.inst_11_a_0 Bool) (main.res.inst_10_a_0 Bool) (main.res.inst_9_a_0 Bool) (main.res.inst_8_a_0 Bool) (main.res.inst_7_a_0 Bool) (main.res.inst_6_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Bool) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Bool) (main.res.inst_0_a_0 Bool)) Bool + (and (= main.usr.ccont_a_0 false) (= main.res.abs_2_a_0 (not main.usr.ccont_a_0)) (= main.usr.cca_a_0 false) (let ((X1 main.res.abs_3_a_0)) (and (= main.res.abs_4_a_0 (let ((X2 main.res.nondet_0)) X2)) (__node_init_Edge_0 main.usr.igsw_a_0 main.res.abs_0_a_0 main.res.inst_17_a_0) (__node_init_PosEdge_0 main.usr.cconoff_a_0 main.res.abs_1_a_0 main.res.inst_16_a_0) (__node_init_cc_allowed_0 main.usr.ccont_a_0 main.usr.igsw_a_0 main.usr.bpa_a_0 main.usr.cccanc_a_0 main.usr.battok_a_0 main.usr.gearok_a_0 main.usr.qfok_a_0 main.usr.sdok_a_0 main.usr.accok_a_0 main.usr.vs_a_0 main.res.abs_3_a_0 main.res.inst_15_a_0 main.res.inst_14_a_0 main.res.inst_13_a_0 main.res.inst_12_a_0 main.res.inst_11_a_0 main.res.inst_10_a_0) (__node_init_one_button_accept_0 main.usr.ccseti_a_0 main.usr.ccsetd_a_0 main.usr.ccr_a_0 main.usr.ccont_a_0 main.res.abs_4_a_0 main.res.abs_5_a_0 main.res.inst_9_a_0 main.res.inst_8_a_0 main.res.inst_7_a_0 main.res.inst_6_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0 main.res.inst_3_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0 main.res.inst_0_a_0) main.res.init_flag_a_0)))) +(define-fun __node_trans_main_0 ((main.usr.igsw_a_1 Bool) (main.usr.ccd_a_1 Bool) (main.usr.cconoff_a_1 Bool) (main.usr.bpa_a_1 Bool) (main.usr.cccanc_a_1 Bool) (main.usr.battok_a_1 Bool) (main.usr.gearok_a_1 Bool) (main.usr.qfok_a_1 Bool) (main.usr.sdok_a_1 Bool) (main.usr.accok_a_1 Bool) (main.usr.ccseti_a_1 Bool) (main.usr.ccsetd_a_1 Bool) (main.usr.ccr_a_1 Bool) (main.usr.vs_a_1 Int) (main.res.nondet_0 Bool) (main.usr.ccont_a_1 Bool) (main.usr.cca_a_1 Bool) (main.res.init_flag_a_1 Bool) (main.res.abs_0_a_1 Bool) (main.res.abs_1_a_1 Bool) (main.res.abs_2_a_1 Bool) (main.res.abs_3_a_1 Bool) (main.res.abs_4_a_1 Bool) (main.res.abs_5_a_1 Bool) (main.res.inst_17_a_1 Bool) (main.res.inst_16_a_1 Bool) (main.res.inst_15_a_1 Bool) (main.res.inst_14_a_1 Bool) (main.res.inst_13_a_1 Bool) (main.res.inst_12_a_1 Bool) (main.res.inst_11_a_1 Bool) (main.res.inst_10_a_1 Bool) (main.res.inst_9_a_1 Bool) (main.res.inst_8_a_1 Bool) (main.res.inst_7_a_1 Bool) (main.res.inst_6_a_1 Bool) (main.res.inst_5_a_1 Bool) (main.res.inst_4_a_1 Bool) (main.res.inst_3_a_1 Bool) (main.res.inst_2_a_1 Bool) (main.res.inst_1_a_1 Bool) (main.res.inst_0_a_1 Bool) (main.usr.igsw_a_0 Bool) (main.usr.ccd_a_0 Bool) (main.usr.cconoff_a_0 Bool) (main.usr.bpa_a_0 Bool) (main.usr.cccanc_a_0 Bool) (main.usr.battok_a_0 Bool) (main.usr.gearok_a_0 Bool) (main.usr.qfok_a_0 Bool) (main.usr.sdok_a_0 Bool) (main.usr.accok_a_0 Bool) (main.usr.ccseti_a_0 Bool) (main.usr.ccsetd_a_0 Bool) (main.usr.ccr_a_0 Bool) (main.usr.vs_a_0 Int) (main.usr.ccont_a_0 Bool) (main.usr.cca_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Bool) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Bool) (main.res.inst_17_a_0 Bool) (main.res.inst_16_a_0 Bool) (main.res.inst_15_a_0 Bool) (main.res.inst_14_a_0 Bool) (main.res.inst_13_a_0 Bool) (main.res.inst_12_a_0 Bool) (main.res.inst_11_a_0 Bool) (main.res.inst_10_a_0 Bool) (main.res.inst_9_a_0 Bool) (main.res.inst_8_a_0 Bool) (main.res.inst_7_a_0 Bool) (main.res.inst_6_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Bool) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Bool) (main.res.inst_0_a_0 Bool)) Bool + (and (= main.usr.ccont_a_1 (ite (or (or main.res.abs_0_a_1 main.usr.ccd_a_1) (and main.usr.ccont_a_0 main.res.abs_1_a_1)) false (ite (and main.res.abs_2_a_0 main.res.abs_1_a_1) true main.usr.ccont_a_0))) (= main.res.abs_2_a_1 (not main.usr.ccont_a_1)) (= main.res.abs_4_a_1 main.usr.cca_a_0) (let ((X1 main.res.abs_3_a_1)) (and (= main.usr.cca_a_1 (ite (and main.res.abs_5_a_1 X1) true (ite (not X1) false main.usr.cca_a_0))) (__node_trans_Edge_0 main.usr.igsw_a_1 main.res.abs_0_a_1 main.res.inst_17_a_1 main.usr.igsw_a_0 main.res.abs_0_a_0 main.res.inst_17_a_0) (__node_trans_PosEdge_0 main.usr.cconoff_a_1 main.res.abs_1_a_1 main.res.inst_16_a_1 main.usr.cconoff_a_0 main.res.abs_1_a_0 main.res.inst_16_a_0) (__node_trans_cc_allowed_0 main.usr.ccont_a_1 main.usr.igsw_a_1 main.usr.bpa_a_1 main.usr.cccanc_a_1 main.usr.battok_a_1 main.usr.gearok_a_1 main.usr.qfok_a_1 main.usr.sdok_a_1 main.usr.accok_a_1 main.usr.vs_a_1 main.res.abs_3_a_1 main.res.inst_15_a_1 main.res.inst_14_a_1 main.res.inst_13_a_1 main.res.inst_12_a_1 main.res.inst_11_a_1 main.res.inst_10_a_1 main.usr.ccont_a_0 main.usr.igsw_a_0 main.usr.bpa_a_0 main.usr.cccanc_a_0 main.usr.battok_a_0 main.usr.gearok_a_0 main.usr.qfok_a_0 main.usr.sdok_a_0 main.usr.accok_a_0 main.usr.vs_a_0 main.res.abs_3_a_0 main.res.inst_15_a_0 main.res.inst_14_a_0 main.res.inst_13_a_0 main.res.inst_12_a_0 main.res.inst_11_a_0 main.res.inst_10_a_0) (__node_trans_one_button_accept_0 main.usr.ccseti_a_1 main.usr.ccsetd_a_1 main.usr.ccr_a_1 main.usr.ccont_a_1 main.res.abs_4_a_1 main.res.abs_5_a_1 main.res.inst_9_a_1 main.res.inst_8_a_1 main.res.inst_7_a_1 main.res.inst_6_a_1 main.res.inst_5_a_1 main.res.inst_4_a_1 main.res.inst_3_a_1 main.res.inst_2_a_1 main.res.inst_1_a_1 main.res.inst_0_a_1 main.usr.ccseti_a_0 main.usr.ccsetd_a_0 main.usr.ccr_a_0 main.usr.ccont_a_0 main.res.abs_4_a_0 main.res.abs_5_a_0 main.res.inst_9_a_0 main.res.inst_8_a_0 main.res.inst_7_a_0 main.res.inst_6_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0 main.res.inst_3_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0 main.res.inst_0_a_0) (not main.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.igsw_a_0 Bool) (top.usr.ccd_a_0 Bool) (top.usr.cconoff_a_0 Bool) (top.usr.bpa_a_0 Bool) (top.usr.cccanc_a_0 Bool) (top.usr.battok_a_0 Bool) (top.usr.gearok_a_0 Bool) (top.usr.qfok_a_0 Bool) (top.usr.sdok_a_0 Bool) (top.usr.accok_a_0 Bool) (top.usr.ccseti_a_0 Bool) (top.usr.ccsetd_a_0 Bool) (top.usr.ccr_a_0 Bool) (top.usr.vs_a_0 Int) (top.res.nondet_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.cca_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 (ite top.res.abs_2_a_0 (or (or top.res.abs_3_a_0 top.res.abs_4_a_0) top.res.abs_5_a_0) true)) (= top.impl.usr.cca_a_0 top.res.abs_1_a_0) (__node_init_PosEdge_0 top.impl.usr.cca_a_0 top.res.abs_2_a_0 top.res.inst_28_a_0) (__node_init_main_0 top.usr.igsw_a_0 top.usr.ccd_a_0 top.usr.cconoff_a_0 top.usr.bpa_a_0 top.usr.cccanc_a_0 top.usr.battok_a_0 top.usr.gearok_a_0 top.usr.qfok_a_0 top.usr.sdok_a_0 top.usr.accok_a_0 top.usr.ccseti_a_0 top.usr.ccsetd_a_0 top.usr.ccr_a_0 top.usr.vs_a_0 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_27_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_PosEdge_0 top.usr.ccseti_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_PosEdge_0 top.usr.ccsetd_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_PosEdge_0 top.usr.ccr_a_0 top.res.abs_5_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)) +(define-fun __node_trans_top_0 ((top.usr.igsw_a_1 Bool) (top.usr.ccd_a_1 Bool) (top.usr.cconoff_a_1 Bool) (top.usr.bpa_a_1 Bool) (top.usr.cccanc_a_1 Bool) (top.usr.battok_a_1 Bool) (top.usr.gearok_a_1 Bool) (top.usr.qfok_a_1 Bool) (top.usr.sdok_a_1 Bool) (top.usr.accok_a_1 Bool) (top.usr.ccseti_a_1 Bool) (top.usr.ccsetd_a_1 Bool) (top.usr.ccr_a_1 Bool) (top.usr.vs_a_1 Int) (top.res.nondet_0 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.cca_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.inst_28_a_1 Bool) (top.res.inst_27_a_1 Bool) (top.res.inst_26_a_1 Bool) (top.res.inst_25_a_1 Bool) (top.res.inst_24_a_1 Bool) (top.res.inst_23_a_1 Bool) (top.res.inst_22_a_1 Bool) (top.res.inst_21_a_1 Bool) (top.res.inst_20_a_1 Bool) (top.res.inst_19_a_1 Bool) (top.res.inst_18_a_1 Bool) (top.res.inst_17_a_1 Bool) (top.res.inst_16_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Bool) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Bool) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Bool) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.igsw_a_0 Bool) (top.usr.ccd_a_0 Bool) (top.usr.cconoff_a_0 Bool) (top.usr.bpa_a_0 Bool) (top.usr.cccanc_a_0 Bool) (top.usr.battok_a_0 Bool) (top.usr.gearok_a_0 Bool) (top.usr.qfok_a_0 Bool) (top.usr.sdok_a_0 Bool) (top.usr.accok_a_0 Bool) (top.usr.ccseti_a_0 Bool) (top.usr.ccsetd_a_0 Bool) (top.usr.ccr_a_0 Bool) (top.usr.vs_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.cca_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.cca_a_1 top.res.abs_1_a_1) (= top.usr.OK_a_1 (ite top.res.abs_2_a_1 (or (or top.res.abs_3_a_1 top.res.abs_4_a_1) top.res.abs_5_a_1) true)) (__node_trans_PosEdge_0 top.impl.usr.cca_a_1 top.res.abs_2_a_1 top.res.inst_28_a_1 top.impl.usr.cca_a_0 top.res.abs_2_a_0 top.res.inst_28_a_0) (__node_trans_main_0 top.usr.igsw_a_1 top.usr.ccd_a_1 top.usr.cconoff_a_1 top.usr.bpa_a_1 top.usr.cccanc_a_1 top.usr.battok_a_1 top.usr.gearok_a_1 top.usr.qfok_a_1 top.usr.sdok_a_1 top.usr.accok_a_1 top.usr.ccseti_a_1 top.usr.ccsetd_a_1 top.usr.ccr_a_1 top.usr.vs_a_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.inst_27_a_1 top.res.inst_26_a_1 top.res.inst_25_a_1 top.res.inst_24_a_1 top.res.inst_23_a_1 top.res.inst_22_a_1 top.res.inst_21_a_1 top.res.inst_20_a_1 top.res.inst_19_a_1 top.res.inst_18_a_1 top.res.inst_17_a_1 top.res.inst_16_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.igsw_a_0 top.usr.ccd_a_0 top.usr.cconoff_a_0 top.usr.bpa_a_0 top.usr.cccanc_a_0 top.usr.battok_a_0 top.usr.gearok_a_0 top.usr.qfok_a_0 top.usr.sdok_a_0 top.usr.accok_a_0 top.usr.ccseti_a_0 top.usr.ccsetd_a_0 top.usr.ccr_a_0 top.usr.vs_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_27_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_PosEdge_0 top.usr.ccseti_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.usr.ccseti_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_PosEdge_0 top.usr.ccsetd_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.ccsetd_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_PosEdge_0 top.usr.ccr_a_1 top.res.abs_5_a_1 top.res.inst_0_a_1 top.usr.ccr_a_0 top.res.abs_5_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))) +(synth-inv str_invariant ((top.usr.igsw Bool) (top.usr.ccd Bool) (top.usr.cconoff Bool) (top.usr.bpa Bool) (top.usr.cccanc Bool) (top.usr.battok Bool) (top.usr.gearok Bool) (top.usr.qfok Bool) (top.usr.sdok Bool) (top.usr.accok Bool) (top.usr.ccseti Bool) (top.usr.ccsetd Bool) (top.usr.ccr Bool) (top.usr.vs Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.cca Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_0 Bool) +(define-fun init ((top.usr.igsw Bool) (top.usr.ccd Bool) (top.usr.cconoff Bool) (top.usr.bpa Bool) (top.usr.cccanc Bool) (top.usr.battok Bool) (top.usr.gearok Bool) (top.usr.qfok Bool) (top.usr.sdok Bool) (top.usr.accok Bool) (top.usr.ccseti Bool) (top.usr.ccsetd Bool) (top.usr.ccr Bool) (top.usr.vs Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.cca Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK (ite top.res.abs_2 (or (or top.res.abs_3 top.res.abs_4) top.res.abs_5) true)) (= top.impl.usr.cca top.res.abs_1) (__node_init_PosEdge_0 top.impl.usr.cca top.res.abs_2 top.res.inst_28) (__node_init_main_0 top.usr.igsw top.usr.ccd top.usr.cconoff top.usr.bpa top.usr.cccanc top.usr.battok top.usr.gearok top.usr.qfok top.usr.sdok top.usr.accok top.usr.ccseti top.usr.ccsetd top.usr.ccr top.usr.vs top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.inst_27 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3) (__node_init_PosEdge_0 top.usr.ccseti top.res.abs_3 top.res.inst_2) (__node_init_PosEdge_0 top.usr.ccsetd top.res.abs_4 top.res.inst_1) (__node_init_PosEdge_0 top.usr.ccr top.res.abs_5 top.res.inst_0) top.res.init_flag)) +(define-fun trans ((top.usr.igsw Bool) (top.usr.ccd Bool) (top.usr.cconoff Bool) (top.usr.bpa Bool) (top.usr.cccanc Bool) (top.usr.battok Bool) (top.usr.gearok Bool) (top.usr.qfok Bool) (top.usr.sdok Bool) (top.usr.accok Bool) (top.usr.ccseti Bool) (top.usr.ccsetd Bool) (top.usr.ccr Bool) (top.usr.vs Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.cca Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.igsw! Bool) (top.usr.ccd! Bool) (top.usr.cconoff! Bool) (top.usr.bpa! Bool) (top.usr.cccanc! Bool) (top.usr.battok! Bool) (top.usr.gearok! Bool) (top.usr.qfok! Bool) (top.usr.sdok! Bool) (top.usr.accok! Bool) (top.usr.ccseti! Bool) (top.usr.ccsetd! Bool) (top.usr.ccr! Bool) (top.usr.vs! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.cca! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.inst_28! Bool) (top.res.inst_27! Bool) (top.res.inst_26! Bool) (top.res.inst_25! Bool) (top.res.inst_24! Bool) (top.res.inst_23! Bool) (top.res.inst_22! Bool) (top.res.inst_21! Bool) (top.res.inst_20! Bool) (top.res.inst_19! Bool) (top.res.inst_18! Bool) (top.res.inst_17! Bool) (top.res.inst_16! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Bool) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Bool) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Bool) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.impl.usr.cca! top.res.abs_1!) (= top.usr.OK! (ite top.res.abs_2! (or (or top.res.abs_3! top.res.abs_4!) top.res.abs_5!) true)) (__node_trans_PosEdge_0 top.impl.usr.cca! top.res.abs_2! top.res.inst_28! top.impl.usr.cca top.res.abs_2 top.res.inst_28) (__node_trans_main_0 top.usr.igsw! top.usr.ccd! top.usr.cconoff! top.usr.bpa! top.usr.cccanc! top.usr.battok! top.usr.gearok! top.usr.qfok! top.usr.sdok! top.usr.accok! top.usr.ccseti! top.usr.ccsetd! top.usr.ccr! top.usr.vs! top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.inst_27! top.res.inst_26! top.res.inst_25! top.res.inst_24! top.res.inst_23! top.res.inst_22! top.res.inst_21! top.res.inst_20! top.res.inst_19! top.res.inst_18! top.res.inst_17! top.res.inst_16! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.usr.igsw top.usr.ccd top.usr.cconoff top.usr.bpa top.usr.cccanc top.usr.battok top.usr.gearok top.usr.qfok top.usr.sdok top.usr.accok top.usr.ccseti top.usr.ccsetd top.usr.ccr top.usr.vs top.res.abs_0 top.res.abs_1 top.res.inst_27 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3) (__node_trans_PosEdge_0 top.usr.ccseti! top.res.abs_3! top.res.inst_2! top.usr.ccseti top.res.abs_3 top.res.inst_2) (__node_trans_PosEdge_0 top.usr.ccsetd! top.res.abs_4! top.res.inst_1! top.usr.ccsetd top.res.abs_4 top.res.inst_1) (__node_trans_PosEdge_0 top.usr.ccr! top.res.abs_5! top.res.inst_0! top.usr.ccr top.res.abs_5 top.res.inst_0) (not top.res.init_flag!)) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.igsw Bool) (top.usr.ccd Bool) (top.usr.cconoff Bool) (top.usr.bpa Bool) (top.usr.cccanc Bool) (top.usr.battok Bool) (top.usr.gearok Bool) (top.usr.qfok Bool) (top.usr.sdok Bool) (top.usr.accok Bool) (top.usr.ccseti Bool) (top.usr.ccsetd Bool) (top.usr.ccr Bool) (top.usr.vs Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.cca Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/fast_1_e8_747_e8_1041.sl b/benchmarks/LIA/Lustre/fast_1_e8_747_e8_1041.sl index a9a6fd6..59f665b 100644 --- a/benchmarks/LIA/Lustre/fast_1_e8_747_e8_1041.sl +++ b/benchmarks/LIA/Lustre/fast_1_e8_747_e8_1041.sl @@ -1,1710 +1,60 @@ (set-logic LIA) -(define-fun - __node_init_PosEdge_0 ( - (PosEdge.usr.X_a_0 Bool) - (PosEdge.usr.Y_a_0 Bool) - (PosEdge.res.init_flag_a_0 Bool) - ) Bool - - (and (= PosEdge.usr.Y_a_0 false) PosEdge.res.init_flag_a_0) -) - -(define-fun - __node_trans_PosEdge_0 ( - (PosEdge.usr.X_a_1 Bool) - (PosEdge.usr.Y_a_1 Bool) - (PosEdge.res.init_flag_a_1 Bool) - (PosEdge.usr.X_a_0 Bool) - (PosEdge.usr.Y_a_0 Bool) - (PosEdge.res.init_flag_a_0 Bool) - ) Bool - - (and - (= PosEdge.usr.Y_a_1 (and PosEdge.usr.X_a_1 (not PosEdge.usr.X_a_0))) - (not PosEdge.res.init_flag_a_1)) -) - -(define-fun - __node_init_prev_no_button_0 ( - (prev_no_button.usr.ccseti_a_0 Bool) - (prev_no_button.usr.ccsetd_a_0 Bool) - (prev_no_button.usr.ccr_a_0 Bool) - (prev_no_button.usr.pnb_a_0 Bool) - (prev_no_button.res.init_flag_a_0 Bool) - (prev_no_button.res.abs_0_a_0 Bool) - ) Bool - - (and - (= prev_no_button.usr.pnb_a_0 true) - (= - prev_no_button.res.abs_0_a_0 - (and - (and - (not prev_no_button.usr.ccseti_a_0) - (not prev_no_button.usr.ccsetd_a_0)) - (not prev_no_button.usr.ccr_a_0))) - prev_no_button.res.init_flag_a_0) -) - -(define-fun - __node_trans_prev_no_button_0 ( - (prev_no_button.usr.ccseti_a_1 Bool) - (prev_no_button.usr.ccsetd_a_1 Bool) - (prev_no_button.usr.ccr_a_1 Bool) - (prev_no_button.usr.pnb_a_1 Bool) - (prev_no_button.res.init_flag_a_1 Bool) - (prev_no_button.res.abs_0_a_1 Bool) - (prev_no_button.usr.ccseti_a_0 Bool) - (prev_no_button.usr.ccsetd_a_0 Bool) - (prev_no_button.usr.ccr_a_0 Bool) - (prev_no_button.usr.pnb_a_0 Bool) - (prev_no_button.res.init_flag_a_0 Bool) - (prev_no_button.res.abs_0_a_0 Bool) - ) Bool - - (and - (= prev_no_button.usr.pnb_a_1 prev_no_button.res.abs_0_a_0) - (= - prev_no_button.res.abs_0_a_1 - (and - (and - (not prev_no_button.usr.ccseti_a_1) - (not prev_no_button.usr.ccsetd_a_1)) - (not prev_no_button.usr.ccr_a_1))) - (not prev_no_button.res.init_flag_a_1)) -) - -(define-fun - __node_init_AtLeastOnceSince_0 ( - (AtLeastOnceSince.usr.X_a_0 Bool) - (AtLeastOnceSince.usr.Y_a_0 Bool) - (AtLeastOnceSince.usr.XsinceY_a_0 Bool) - (AtLeastOnceSince.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - AtLeastOnceSince.usr.XsinceY_a_0 - (ite AtLeastOnceSince.usr.Y_a_0 AtLeastOnceSince.usr.X_a_0 true)) - AtLeastOnceSince.res.init_flag_a_0) -) - -(define-fun - __node_trans_AtLeastOnceSince_0 ( - (AtLeastOnceSince.usr.X_a_1 Bool) - (AtLeastOnceSince.usr.Y_a_1 Bool) - (AtLeastOnceSince.usr.XsinceY_a_1 Bool) - (AtLeastOnceSince.res.init_flag_a_1 Bool) - (AtLeastOnceSince.usr.X_a_0 Bool) - (AtLeastOnceSince.usr.Y_a_0 Bool) - (AtLeastOnceSince.usr.XsinceY_a_0 Bool) - (AtLeastOnceSince.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - AtLeastOnceSince.usr.XsinceY_a_1 - (ite - AtLeastOnceSince.usr.Y_a_1 - AtLeastOnceSince.usr.X_a_1 - (and AtLeastOnceSince.usr.X_a_1 AtLeastOnceSince.usr.XsinceY_a_0))) - (not AtLeastOnceSince.res.init_flag_a_1)) -) - -(define-fun - __node_init_one_button_0 ( - (one_button.usr.ccseti_a_0 Bool) - (one_button.usr.ccsetd_a_0 Bool) - (one_button.usr.ccr_a_0 Bool) - (one_button.usr.ob_a_0 Bool) - (one_button.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - one_button.usr.ob_a_0 - (or - (or - (and - (and one_button.usr.ccseti_a_0 (not one_button.usr.ccsetd_a_0)) - (not one_button.usr.ccr_a_0)) - (and - (and (not one_button.usr.ccseti_a_0) one_button.usr.ccsetd_a_0) - (not one_button.usr.ccr_a_0))) - (and - (and (not one_button.usr.ccseti_a_0) (not one_button.usr.ccsetd_a_0)) - one_button.usr.ccr_a_0))) - one_button.res.init_flag_a_0) -) - -(define-fun - __node_trans_one_button_0 ( - (one_button.usr.ccseti_a_1 Bool) - (one_button.usr.ccsetd_a_1 Bool) - (one_button.usr.ccr_a_1 Bool) - (one_button.usr.ob_a_1 Bool) - (one_button.res.init_flag_a_1 Bool) - (one_button.usr.ccseti_a_0 Bool) - (one_button.usr.ccsetd_a_0 Bool) - (one_button.usr.ccr_a_0 Bool) - (one_button.usr.ob_a_0 Bool) - (one_button.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - one_button.usr.ob_a_1 - (or - (or - (and - (and one_button.usr.ccseti_a_1 (not one_button.usr.ccsetd_a_1)) - (not one_button.usr.ccr_a_1)) - (and - (and (not one_button.usr.ccseti_a_1) one_button.usr.ccsetd_a_1) - (not one_button.usr.ccr_a_1))) - (and - (and (not one_button.usr.ccseti_a_1) (not one_button.usr.ccsetd_a_1)) - one_button.usr.ccr_a_1))) - (not one_button.res.init_flag_a_1)) -) - -(define-fun - __node_init_one_button_accept_0 ( - (one_button_accept.usr.ccseti_a_0 Bool) - (one_button_accept.usr.ccsetd_a_0 Bool) - (one_button_accept.usr.ccr_a_0 Bool) - (one_button_accept.usr.ccont_a_0 Bool) - (one_button_accept.usr.cca_a_0 Bool) - (one_button_accept.usr.oba_a_0 Bool) - (one_button_accept.res.init_flag_a_0 Bool) - (one_button_accept.res.abs_0_a_0 Bool) - (one_button_accept.res.abs_1_a_0 Bool) - (one_button_accept.res.abs_2_a_0 Bool) - (one_button_accept.res.abs_3_a_0 Bool) - (one_button_accept.res.inst_4_a_0 Bool) - (one_button_accept.res.inst_3_a_0 Bool) - (one_button_accept.res.inst_2_a_0 Bool) - (one_button_accept.res.inst_1_a_0 Bool) - (one_button_accept.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool one_button_accept.res.abs_0_a_0)) - (let - ((X2 Bool one_button_accept.res.abs_1_a_0)) - (and - (= - one_button_accept.usr.oba_a_0 - (ite - (and X1 X2) - (ite - (not one_button_accept.usr.ccr_a_0) - true - one_button_accept.res.abs_3_a_0) - false)) - (__node_init_one_button_0 - one_button_accept.usr.ccseti_a_0 - one_button_accept.usr.ccsetd_a_0 - one_button_accept.usr.ccr_a_0 - one_button_accept.res.abs_1_a_0 - one_button_accept.res.inst_4_a_0) - (__node_init_prev_no_button_0 - one_button_accept.usr.ccseti_a_0 - one_button_accept.usr.ccsetd_a_0 - one_button_accept.usr.ccr_a_0 - one_button_accept.res.abs_0_a_0 - one_button_accept.res.inst_3_a_0 - one_button_accept.res.inst_2_a_0) - (__node_init_AtLeastOnceSince_0 - one_button_accept.usr.cca_a_0 - one_button_accept.res.abs_2_a_0 - one_button_accept.res.abs_3_a_0 - one_button_accept.res.inst_1_a_0) - (__node_init_PosEdge_0 - one_button_accept.usr.ccont_a_0 - one_button_accept.res.abs_2_a_0 - one_button_accept.res.inst_0_a_0) - one_button_accept.res.init_flag_a_0))) -) - -(define-fun - __node_trans_one_button_accept_0 ( - (one_button_accept.usr.ccseti_a_1 Bool) - (one_button_accept.usr.ccsetd_a_1 Bool) - (one_button_accept.usr.ccr_a_1 Bool) - (one_button_accept.usr.ccont_a_1 Bool) - (one_button_accept.usr.cca_a_1 Bool) - (one_button_accept.usr.oba_a_1 Bool) - (one_button_accept.res.init_flag_a_1 Bool) - (one_button_accept.res.abs_0_a_1 Bool) - (one_button_accept.res.abs_1_a_1 Bool) - (one_button_accept.res.abs_2_a_1 Bool) - (one_button_accept.res.abs_3_a_1 Bool) - (one_button_accept.res.inst_4_a_1 Bool) - (one_button_accept.res.inst_3_a_1 Bool) - (one_button_accept.res.inst_2_a_1 Bool) - (one_button_accept.res.inst_1_a_1 Bool) - (one_button_accept.res.inst_0_a_1 Bool) - (one_button_accept.usr.ccseti_a_0 Bool) - (one_button_accept.usr.ccsetd_a_0 Bool) - (one_button_accept.usr.ccr_a_0 Bool) - (one_button_accept.usr.ccont_a_0 Bool) - (one_button_accept.usr.cca_a_0 Bool) - (one_button_accept.usr.oba_a_0 Bool) - (one_button_accept.res.init_flag_a_0 Bool) - (one_button_accept.res.abs_0_a_0 Bool) - (one_button_accept.res.abs_1_a_0 Bool) - (one_button_accept.res.abs_2_a_0 Bool) - (one_button_accept.res.abs_3_a_0 Bool) - (one_button_accept.res.inst_4_a_0 Bool) - (one_button_accept.res.inst_3_a_0 Bool) - (one_button_accept.res.inst_2_a_0 Bool) - (one_button_accept.res.inst_1_a_0 Bool) - (one_button_accept.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool one_button_accept.res.abs_0_a_1)) - (let - ((X2 Bool one_button_accept.res.abs_1_a_1)) - (and - (= - one_button_accept.usr.oba_a_1 - (ite - (and X1 X2) - (ite - (not one_button_accept.usr.ccr_a_1) - true - one_button_accept.res.abs_3_a_1) - false)) - (__node_trans_one_button_0 - one_button_accept.usr.ccseti_a_1 - one_button_accept.usr.ccsetd_a_1 - one_button_accept.usr.ccr_a_1 - one_button_accept.res.abs_1_a_1 - one_button_accept.res.inst_4_a_1 - one_button_accept.usr.ccseti_a_0 - one_button_accept.usr.ccsetd_a_0 - one_button_accept.usr.ccr_a_0 - one_button_accept.res.abs_1_a_0 - one_button_accept.res.inst_4_a_0) - (__node_trans_prev_no_button_0 - one_button_accept.usr.ccseti_a_1 - one_button_accept.usr.ccsetd_a_1 - one_button_accept.usr.ccr_a_1 - one_button_accept.res.abs_0_a_1 - one_button_accept.res.inst_3_a_1 - one_button_accept.res.inst_2_a_1 - one_button_accept.usr.ccseti_a_0 - one_button_accept.usr.ccsetd_a_0 - one_button_accept.usr.ccr_a_0 - one_button_accept.res.abs_0_a_0 - one_button_accept.res.inst_3_a_0 - one_button_accept.res.inst_2_a_0) - (__node_trans_AtLeastOnceSince_0 - one_button_accept.usr.cca_a_1 - one_button_accept.res.abs_2_a_1 - one_button_accept.res.abs_3_a_1 - one_button_accept.res.inst_1_a_1 - one_button_accept.usr.cca_a_0 - one_button_accept.res.abs_2_a_0 - one_button_accept.res.abs_3_a_0 - one_button_accept.res.inst_1_a_0) - (__node_trans_PosEdge_0 - one_button_accept.usr.ccont_a_1 - one_button_accept.res.abs_2_a_1 - one_button_accept.res.inst_0_a_1 - one_button_accept.usr.ccont_a_0 - one_button_accept.res.abs_2_a_0 - one_button_accept.res.inst_0_a_0) - (not one_button_accept.res.init_flag_a_1)))) -) - -(define-fun - __node_init_MoreThanTwoSec_0 ( - (MoreThanTwoSec.usr.X_a_0 Bool) - (MoreThanTwoSec.usr.Y_a_0 Bool) - (MoreThanTwoSec.res.init_flag_a_0 Bool) - (MoreThanTwoSec.res.abs_0_a_0 Bool) - ) Bool - - (and - (= MoreThanTwoSec.usr.Y_a_0 false) - (= MoreThanTwoSec.res.abs_0_a_0 false) - MoreThanTwoSec.res.init_flag_a_0) -) - -(define-fun - __node_trans_MoreThanTwoSec_0 ( - (MoreThanTwoSec.usr.X_a_1 Bool) - (MoreThanTwoSec.usr.Y_a_1 Bool) - (MoreThanTwoSec.res.init_flag_a_1 Bool) - (MoreThanTwoSec.res.abs_0_a_1 Bool) - (MoreThanTwoSec.usr.X_a_0 Bool) - (MoreThanTwoSec.usr.Y_a_0 Bool) - (MoreThanTwoSec.res.init_flag_a_0 Bool) - (MoreThanTwoSec.res.abs_0_a_0 Bool) - ) Bool - - (and - (= - MoreThanTwoSec.usr.Y_a_1 - (and MoreThanTwoSec.res.abs_0_a_0 MoreThanTwoSec.usr.X_a_1)) - (= - MoreThanTwoSec.res.abs_0_a_1 - (and MoreThanTwoSec.usr.X_a_0 MoreThanTwoSec.usr.X_a_1)) - (not MoreThanTwoSec.res.init_flag_a_1)) -) - -(define-fun - __node_init_MoreThanOneSec_0 ( - (MoreThanOneSec.usr.X_a_0 Bool) - (MoreThanOneSec.usr.Y_a_0 Bool) - (MoreThanOneSec.res.init_flag_a_0 Bool) - ) Bool - - (and (= MoreThanOneSec.usr.Y_a_0 false) MoreThanOneSec.res.init_flag_a_0) -) - -(define-fun - __node_trans_MoreThanOneSec_0 ( - (MoreThanOneSec.usr.X_a_1 Bool) - (MoreThanOneSec.usr.Y_a_1 Bool) - (MoreThanOneSec.res.init_flag_a_1 Bool) - (MoreThanOneSec.usr.X_a_0 Bool) - (MoreThanOneSec.usr.Y_a_0 Bool) - (MoreThanOneSec.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - MoreThanOneSec.usr.Y_a_1 - (and MoreThanOneSec.usr.X_a_0 MoreThanOneSec.usr.X_a_1)) - (not MoreThanOneSec.res.init_flag_a_1)) -) - -(define-fun - __node_init_cc_allowed_0 ( - (cc_allowed.usr.ccont_a_0 Bool) - (cc_allowed.usr.igsw_a_0 Bool) - (cc_allowed.usr.bpa_a_0 Bool) - (cc_allowed.usr.cccanc_a_0 Bool) - (cc_allowed.usr.battok_a_0 Bool) - (cc_allowed.usr.gearok_a_0 Bool) - (cc_allowed.usr.qfok_a_0 Bool) - (cc_allowed.usr.sdok_a_0 Bool) - (cc_allowed.usr.accok_a_0 Bool) - (cc_allowed.usr.vs_a_0 Int) - (cc_allowed.usr.ccall_a_0 Bool) - (cc_allowed.res.init_flag_a_0 Bool) - (cc_allowed.res.abs_0_a_0 Bool) - (cc_allowed.res.abs_1_a_0 Bool) - (cc_allowed.res.inst_2_a_0 Bool) - (cc_allowed.res.inst_1_a_0 Bool) - (cc_allowed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - cc_allowed.usr.ccall_a_0 - (and - (and - (and - (and - (and - (and - (and - (and - (and cc_allowed.usr.ccont_a_0 (not cc_allowed.usr.bpa_a_0)) - cc_allowed.usr.battok_a_0) - cc_allowed.usr.gearok_a_0) - cc_allowed.usr.qfok_a_0) - cc_allowed.res.abs_0_a_0) - (<= 35 cc_allowed.usr.vs_a_0)) - (<= cc_allowed.usr.vs_a_0 200)) - cc_allowed.res.abs_1_a_0) - (not cc_allowed.usr.cccanc_a_0))) - (__node_init_MoreThanOneSec_0 - cc_allowed.usr.sdok_a_0 - cc_allowed.res.abs_0_a_0 - cc_allowed.res.inst_2_a_0) - (__node_init_MoreThanTwoSec_0 - cc_allowed.usr.accok_a_0 - cc_allowed.res.abs_1_a_0 - cc_allowed.res.inst_1_a_0 - cc_allowed.res.inst_0_a_0) - cc_allowed.res.init_flag_a_0) -) - -(define-fun - __node_trans_cc_allowed_0 ( - (cc_allowed.usr.ccont_a_1 Bool) - (cc_allowed.usr.igsw_a_1 Bool) - (cc_allowed.usr.bpa_a_1 Bool) - (cc_allowed.usr.cccanc_a_1 Bool) - (cc_allowed.usr.battok_a_1 Bool) - (cc_allowed.usr.gearok_a_1 Bool) - (cc_allowed.usr.qfok_a_1 Bool) - (cc_allowed.usr.sdok_a_1 Bool) - (cc_allowed.usr.accok_a_1 Bool) - (cc_allowed.usr.vs_a_1 Int) - (cc_allowed.usr.ccall_a_1 Bool) - (cc_allowed.res.init_flag_a_1 Bool) - (cc_allowed.res.abs_0_a_1 Bool) - (cc_allowed.res.abs_1_a_1 Bool) - (cc_allowed.res.inst_2_a_1 Bool) - (cc_allowed.res.inst_1_a_1 Bool) - (cc_allowed.res.inst_0_a_1 Bool) - (cc_allowed.usr.ccont_a_0 Bool) - (cc_allowed.usr.igsw_a_0 Bool) - (cc_allowed.usr.bpa_a_0 Bool) - (cc_allowed.usr.cccanc_a_0 Bool) - (cc_allowed.usr.battok_a_0 Bool) - (cc_allowed.usr.gearok_a_0 Bool) - (cc_allowed.usr.qfok_a_0 Bool) - (cc_allowed.usr.sdok_a_0 Bool) - (cc_allowed.usr.accok_a_0 Bool) - (cc_allowed.usr.vs_a_0 Int) - (cc_allowed.usr.ccall_a_0 Bool) - (cc_allowed.res.init_flag_a_0 Bool) - (cc_allowed.res.abs_0_a_0 Bool) - (cc_allowed.res.abs_1_a_0 Bool) - (cc_allowed.res.inst_2_a_0 Bool) - (cc_allowed.res.inst_1_a_0 Bool) - (cc_allowed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - cc_allowed.usr.ccall_a_1 - (and - (and - (and - (and - (and - (and - (and - (and - (and cc_allowed.usr.ccont_a_1 (not cc_allowed.usr.bpa_a_1)) - cc_allowed.usr.battok_a_1) - cc_allowed.usr.gearok_a_1) - cc_allowed.usr.qfok_a_1) - cc_allowed.res.abs_0_a_1) - (<= 35 cc_allowed.usr.vs_a_1)) - (<= cc_allowed.usr.vs_a_1 200)) - cc_allowed.res.abs_1_a_1) - (not cc_allowed.usr.cccanc_a_1))) - (__node_trans_MoreThanOneSec_0 - cc_allowed.usr.sdok_a_1 - cc_allowed.res.abs_0_a_1 - cc_allowed.res.inst_2_a_1 - cc_allowed.usr.sdok_a_0 - cc_allowed.res.abs_0_a_0 - cc_allowed.res.inst_2_a_0) - (__node_trans_MoreThanTwoSec_0 - cc_allowed.usr.accok_a_1 - cc_allowed.res.abs_1_a_1 - cc_allowed.res.inst_1_a_1 - cc_allowed.res.inst_0_a_1 - cc_allowed.usr.accok_a_0 - cc_allowed.res.abs_1_a_0 - cc_allowed.res.inst_1_a_0 - cc_allowed.res.inst_0_a_0) - (not cc_allowed.res.init_flag_a_1)) -) - -(define-fun - __node_init_Edge_0 ( - (Edge.usr.X_a_0 Bool) - (Edge.usr.Y_a_0 Bool) - (Edge.res.init_flag_a_0 Bool) - ) Bool - - (and (= Edge.usr.Y_a_0 false) Edge.res.init_flag_a_0) -) - -(define-fun - __node_trans_Edge_0 ( - (Edge.usr.X_a_1 Bool) - (Edge.usr.Y_a_1 Bool) - (Edge.res.init_flag_a_1 Bool) - (Edge.usr.X_a_0 Bool) - (Edge.usr.Y_a_0 Bool) - (Edge.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - Edge.usr.Y_a_1 - (and - (and (and Edge.usr.X_a_1 (not Edge.usr.X_a_0)) (not Edge.usr.X_a_1)) - Edge.usr.X_a_0)) - (not Edge.res.init_flag_a_1)) -) - -(define-fun - __node_init_main_0 ( - (main.usr.igsw_a_0 Bool) - (main.usr.ccd_a_0 Bool) - (main.usr.cconoff_a_0 Bool) - (main.usr.bpa_a_0 Bool) - (main.usr.cccanc_a_0 Bool) - (main.usr.battok_a_0 Bool) - (main.usr.gearok_a_0 Bool) - (main.usr.qfok_a_0 Bool) - (main.usr.sdok_a_0 Bool) - (main.usr.accok_a_0 Bool) - (main.usr.ccseti_a_0 Bool) - (main.usr.ccsetd_a_0 Bool) - (main.usr.ccr_a_0 Bool) - (main.usr.vs_a_0 Int) - (main.res.nondet_0 Bool) - (main.usr.ccont_a_0 Bool) - (main.usr.cca_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Bool) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Bool) - (main.res.inst_17_a_0 Bool) - (main.res.inst_16_a_0 Bool) - (main.res.inst_15_a_0 Bool) - (main.res.inst_14_a_0 Bool) - (main.res.inst_13_a_0 Bool) - (main.res.inst_12_a_0 Bool) - (main.res.inst_11_a_0 Bool) - (main.res.inst_10_a_0 Bool) - (main.res.inst_9_a_0 Bool) - (main.res.inst_8_a_0 Bool) - (main.res.inst_7_a_0 Bool) - (main.res.inst_6_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Bool) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Bool) - (main.res.inst_0_a_0 Bool) - ) Bool - - (and - (= main.usr.ccont_a_0 false) - (= main.res.abs_2_a_0 (not main.usr.ccont_a_0)) - (= main.usr.cca_a_0 false) - (let - ((X1 Bool main.res.abs_3_a_0)) - (and - (= main.res.abs_4_a_0 (let ((X2 Bool main.res.nondet_0)) X2)) - (__node_init_Edge_0 main.usr.igsw_a_0 main.res.abs_0_a_0 main.res.inst_17_a_0) - (__node_init_PosEdge_0 - main.usr.cconoff_a_0 - main.res.abs_1_a_0 - main.res.inst_16_a_0) - (__node_init_cc_allowed_0 - main.usr.ccont_a_0 - main.usr.igsw_a_0 - main.usr.bpa_a_0 - main.usr.cccanc_a_0 - main.usr.battok_a_0 - main.usr.gearok_a_0 - main.usr.qfok_a_0 - main.usr.sdok_a_0 - main.usr.accok_a_0 - main.usr.vs_a_0 - main.res.abs_3_a_0 - main.res.inst_15_a_0 - main.res.inst_14_a_0 - main.res.inst_13_a_0 - main.res.inst_12_a_0 - main.res.inst_11_a_0 - main.res.inst_10_a_0) - (__node_init_one_button_accept_0 - main.usr.ccseti_a_0 - main.usr.ccsetd_a_0 - main.usr.ccr_a_0 - main.usr.ccont_a_0 - main.res.abs_4_a_0 - main.res.abs_5_a_0 - main.res.inst_9_a_0 - main.res.inst_8_a_0 - main.res.inst_7_a_0 - main.res.inst_6_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0 - main.res.inst_3_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0 - main.res.inst_0_a_0) - main.res.init_flag_a_0))) -) - -(define-fun - __node_trans_main_0 ( - (main.usr.igsw_a_1 Bool) - (main.usr.ccd_a_1 Bool) - (main.usr.cconoff_a_1 Bool) - (main.usr.bpa_a_1 Bool) - (main.usr.cccanc_a_1 Bool) - (main.usr.battok_a_1 Bool) - (main.usr.gearok_a_1 Bool) - (main.usr.qfok_a_1 Bool) - (main.usr.sdok_a_1 Bool) - (main.usr.accok_a_1 Bool) - (main.usr.ccseti_a_1 Bool) - (main.usr.ccsetd_a_1 Bool) - (main.usr.ccr_a_1 Bool) - (main.usr.vs_a_1 Int) - (main.res.nondet_0 Bool) - (main.usr.ccont_a_1 Bool) - (main.usr.cca_a_1 Bool) - (main.res.init_flag_a_1 Bool) - (main.res.abs_0_a_1 Bool) - (main.res.abs_1_a_1 Bool) - (main.res.abs_2_a_1 Bool) - (main.res.abs_3_a_1 Bool) - (main.res.abs_4_a_1 Bool) - (main.res.abs_5_a_1 Bool) - (main.res.inst_17_a_1 Bool) - (main.res.inst_16_a_1 Bool) - (main.res.inst_15_a_1 Bool) - (main.res.inst_14_a_1 Bool) - (main.res.inst_13_a_1 Bool) - (main.res.inst_12_a_1 Bool) - (main.res.inst_11_a_1 Bool) - (main.res.inst_10_a_1 Bool) - (main.res.inst_9_a_1 Bool) - (main.res.inst_8_a_1 Bool) - (main.res.inst_7_a_1 Bool) - (main.res.inst_6_a_1 Bool) - (main.res.inst_5_a_1 Bool) - (main.res.inst_4_a_1 Bool) - (main.res.inst_3_a_1 Bool) - (main.res.inst_2_a_1 Bool) - (main.res.inst_1_a_1 Bool) - (main.res.inst_0_a_1 Bool) - (main.usr.igsw_a_0 Bool) - (main.usr.ccd_a_0 Bool) - (main.usr.cconoff_a_0 Bool) - (main.usr.bpa_a_0 Bool) - (main.usr.cccanc_a_0 Bool) - (main.usr.battok_a_0 Bool) - (main.usr.gearok_a_0 Bool) - (main.usr.qfok_a_0 Bool) - (main.usr.sdok_a_0 Bool) - (main.usr.accok_a_0 Bool) - (main.usr.ccseti_a_0 Bool) - (main.usr.ccsetd_a_0 Bool) - (main.usr.ccr_a_0 Bool) - (main.usr.vs_a_0 Int) - (main.usr.ccont_a_0 Bool) - (main.usr.cca_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Bool) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Bool) - (main.res.inst_17_a_0 Bool) - (main.res.inst_16_a_0 Bool) - (main.res.inst_15_a_0 Bool) - (main.res.inst_14_a_0 Bool) - (main.res.inst_13_a_0 Bool) - (main.res.inst_12_a_0 Bool) - (main.res.inst_11_a_0 Bool) - (main.res.inst_10_a_0 Bool) - (main.res.inst_9_a_0 Bool) - (main.res.inst_8_a_0 Bool) - (main.res.inst_7_a_0 Bool) - (main.res.inst_6_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Bool) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Bool) - (main.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - main.usr.ccont_a_1 - (ite - (or - (or main.res.abs_0_a_1 main.usr.ccd_a_1) - (and main.usr.ccont_a_0 main.res.abs_1_a_1)) - false - (ite (and main.res.abs_2_a_0 main.res.abs_1_a_1) true main.usr.ccont_a_0))) - (= main.res.abs_2_a_1 (not main.usr.ccont_a_1)) - (= main.res.abs_4_a_1 main.usr.cca_a_0) - (let - ((X1 Bool main.res.abs_3_a_1)) - (and - (= - main.usr.cca_a_1 - (ite - (and main.res.abs_5_a_1 X1) - true - (ite (not X1) false main.usr.cca_a_0))) - (__node_trans_Edge_0 - main.usr.igsw_a_1 - main.res.abs_0_a_1 - main.res.inst_17_a_1 - main.usr.igsw_a_0 - main.res.abs_0_a_0 - main.res.inst_17_a_0) - (__node_trans_PosEdge_0 - main.usr.cconoff_a_1 - main.res.abs_1_a_1 - main.res.inst_16_a_1 - main.usr.cconoff_a_0 - main.res.abs_1_a_0 - main.res.inst_16_a_0) - (__node_trans_cc_allowed_0 - main.usr.ccont_a_1 - main.usr.igsw_a_1 - main.usr.bpa_a_1 - main.usr.cccanc_a_1 - main.usr.battok_a_1 - main.usr.gearok_a_1 - main.usr.qfok_a_1 - main.usr.sdok_a_1 - main.usr.accok_a_1 - main.usr.vs_a_1 - main.res.abs_3_a_1 - main.res.inst_15_a_1 - main.res.inst_14_a_1 - main.res.inst_13_a_1 - main.res.inst_12_a_1 - main.res.inst_11_a_1 - main.res.inst_10_a_1 - main.usr.ccont_a_0 - main.usr.igsw_a_0 - main.usr.bpa_a_0 - main.usr.cccanc_a_0 - main.usr.battok_a_0 - main.usr.gearok_a_0 - main.usr.qfok_a_0 - main.usr.sdok_a_0 - main.usr.accok_a_0 - main.usr.vs_a_0 - main.res.abs_3_a_0 - main.res.inst_15_a_0 - main.res.inst_14_a_0 - main.res.inst_13_a_0 - main.res.inst_12_a_0 - main.res.inst_11_a_0 - main.res.inst_10_a_0) - (__node_trans_one_button_accept_0 - main.usr.ccseti_a_1 - main.usr.ccsetd_a_1 - main.usr.ccr_a_1 - main.usr.ccont_a_1 - main.res.abs_4_a_1 - main.res.abs_5_a_1 - main.res.inst_9_a_1 - main.res.inst_8_a_1 - main.res.inst_7_a_1 - main.res.inst_6_a_1 - main.res.inst_5_a_1 - main.res.inst_4_a_1 - main.res.inst_3_a_1 - main.res.inst_2_a_1 - main.res.inst_1_a_1 - main.res.inst_0_a_1 - main.usr.ccseti_a_0 - main.usr.ccsetd_a_0 - main.usr.ccr_a_0 - main.usr.ccont_a_0 - main.res.abs_4_a_0 - main.res.abs_5_a_0 - main.res.inst_9_a_0 - main.res.inst_8_a_0 - main.res.inst_7_a_0 - main.res.inst_6_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0 - main.res.inst_3_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0 - main.res.inst_0_a_0) - (not main.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.igsw_a_0 Bool) - (top.usr.ccd_a_0 Bool) - (top.usr.cconoff_a_0 Bool) - (top.usr.bpa_a_0 Bool) - (top.usr.cccanc_a_0 Bool) - (top.usr.battok_a_0 Bool) - (top.usr.gearok_a_0 Bool) - (top.usr.qfok_a_0 Bool) - (top.usr.sdok_a_0 Bool) - (top.usr.accok_a_0 Bool) - (top.usr.ccseti_a_0 Bool) - (top.usr.ccsetd_a_0 Bool) - (top.usr.ccr_a_0 Bool) - (top.usr.vs_a_0 Int) - (top.res.nondet_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.cca_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Bool) - (top.res.inst_23_a_0 Bool) - (top.res.inst_22_a_0 Bool) - (top.res.inst_21_a_0 Bool) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.usr.OK_a_0 - (ite - top.res.abs_2_a_0 - (or (or top.res.abs_3_a_0 top.res.abs_4_a_0) top.res.abs_5_a_0) - true)) - (= top.impl.usr.cca_a_0 top.res.abs_1_a_0) - (__node_init_PosEdge_0 - top.impl.usr.cca_a_0 - top.res.abs_2_a_0 - top.res.inst_28_a_0) - (__node_init_main_0 - top.usr.igsw_a_0 - top.usr.ccd_a_0 - top.usr.cconoff_a_0 - top.usr.bpa_a_0 - top.usr.cccanc_a_0 - top.usr.battok_a_0 - top.usr.gearok_a_0 - top.usr.qfok_a_0 - top.usr.sdok_a_0 - top.usr.accok_a_0 - top.usr.ccseti_a_0 - top.usr.ccsetd_a_0 - top.usr.ccr_a_0 - top.usr.vs_a_0 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_27_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_PosEdge_0 top.usr.ccseti_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) - (__node_init_PosEdge_0 top.usr.ccsetd_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) - (__node_init_PosEdge_0 top.usr.ccr_a_0 top.res.abs_5_a_0 top.res.inst_0_a_0) - top.res.init_flag_a_0) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.igsw_a_1 Bool) - (top.usr.ccd_a_1 Bool) - (top.usr.cconoff_a_1 Bool) - (top.usr.bpa_a_1 Bool) - (top.usr.cccanc_a_1 Bool) - (top.usr.battok_a_1 Bool) - (top.usr.gearok_a_1 Bool) - (top.usr.qfok_a_1 Bool) - (top.usr.sdok_a_1 Bool) - (top.usr.accok_a_1 Bool) - (top.usr.ccseti_a_1 Bool) - (top.usr.ccsetd_a_1 Bool) - (top.usr.ccr_a_1 Bool) - (top.usr.vs_a_1 Int) - (top.res.nondet_0 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.cca_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.inst_28_a_1 Bool) - (top.res.inst_27_a_1 Bool) - (top.res.inst_26_a_1 Bool) - (top.res.inst_25_a_1 Bool) - (top.res.inst_24_a_1 Bool) - (top.res.inst_23_a_1 Bool) - (top.res.inst_22_a_1 Bool) - (top.res.inst_21_a_1 Bool) - (top.res.inst_20_a_1 Bool) - (top.res.inst_19_a_1 Bool) - (top.res.inst_18_a_1 Bool) - (top.res.inst_17_a_1 Bool) - (top.res.inst_16_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Bool) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Bool) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Bool) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.igsw_a_0 Bool) - (top.usr.ccd_a_0 Bool) - (top.usr.cconoff_a_0 Bool) - (top.usr.bpa_a_0 Bool) - (top.usr.cccanc_a_0 Bool) - (top.usr.battok_a_0 Bool) - (top.usr.gearok_a_0 Bool) - (top.usr.qfok_a_0 Bool) - (top.usr.sdok_a_0 Bool) - (top.usr.accok_a_0 Bool) - (top.usr.ccseti_a_0 Bool) - (top.usr.ccsetd_a_0 Bool) - (top.usr.ccr_a_0 Bool) - (top.usr.vs_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.cca_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Bool) - (top.res.inst_23_a_0 Bool) - (top.res.inst_22_a_0 Bool) - (top.res.inst_21_a_0 Bool) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.cca_a_1 top.res.abs_1_a_1) - (= - top.usr.OK_a_1 - (ite - top.res.abs_2_a_1 - (or (or top.res.abs_3_a_1 top.res.abs_4_a_1) top.res.abs_5_a_1) - true)) - (__node_trans_PosEdge_0 - top.impl.usr.cca_a_1 - top.res.abs_2_a_1 - top.res.inst_28_a_1 - top.impl.usr.cca_a_0 - top.res.abs_2_a_0 - top.res.inst_28_a_0) - (__node_trans_main_0 - top.usr.igsw_a_1 - top.usr.ccd_a_1 - top.usr.cconoff_a_1 - top.usr.bpa_a_1 - top.usr.cccanc_a_1 - top.usr.battok_a_1 - top.usr.gearok_a_1 - top.usr.qfok_a_1 - top.usr.sdok_a_1 - top.usr.accok_a_1 - top.usr.ccseti_a_1 - top.usr.ccsetd_a_1 - top.usr.ccr_a_1 - top.usr.vs_a_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.inst_27_a_1 - top.res.inst_26_a_1 - top.res.inst_25_a_1 - top.res.inst_24_a_1 - top.res.inst_23_a_1 - top.res.inst_22_a_1 - top.res.inst_21_a_1 - top.res.inst_20_a_1 - top.res.inst_19_a_1 - top.res.inst_18_a_1 - top.res.inst_17_a_1 - top.res.inst_16_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.igsw_a_0 - top.usr.ccd_a_0 - top.usr.cconoff_a_0 - top.usr.bpa_a_0 - top.usr.cccanc_a_0 - top.usr.battok_a_0 - top.usr.gearok_a_0 - top.usr.qfok_a_0 - top.usr.sdok_a_0 - top.usr.accok_a_0 - top.usr.ccseti_a_0 - top.usr.ccsetd_a_0 - top.usr.ccr_a_0 - top.usr.vs_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_27_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_PosEdge_0 - top.usr.ccseti_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.usr.ccseti_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_PosEdge_0 - top.usr.ccsetd_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.ccsetd_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_PosEdge_0 - top.usr.ccr_a_1 - top.res.abs_5_a_1 - top.res.inst_0_a_1 - top.usr.ccr_a_0 - top.res.abs_5_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)) -) - - - -(synth-inv str_invariant( - (top.usr.igsw Bool) - (top.usr.ccd Bool) - (top.usr.cconoff Bool) - (top.usr.bpa Bool) - (top.usr.cccanc Bool) - (top.usr.battok Bool) - (top.usr.gearok Bool) - (top.usr.qfok Bool) - (top.usr.sdok Bool) - (top.usr.accok Bool) - (top.usr.ccseti Bool) - (top.usr.ccsetd Bool) - (top.usr.ccr Bool) - (top.usr.vs Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.cca Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_0 () Bool) - -(declare-primed-var top.usr.igsw Bool) -(declare-primed-var top.usr.ccd Bool) -(declare-primed-var top.usr.cconoff Bool) -(declare-primed-var top.usr.bpa Bool) -(declare-primed-var top.usr.cccanc Bool) -(declare-primed-var top.usr.battok Bool) -(declare-primed-var top.usr.gearok Bool) -(declare-primed-var top.usr.qfok Bool) -(declare-primed-var top.usr.sdok Bool) -(declare-primed-var top.usr.accok Bool) -(declare-primed-var top.usr.ccseti Bool) -(declare-primed-var top.usr.ccsetd Bool) -(declare-primed-var top.usr.ccr Bool) -(declare-primed-var top.usr.vs Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.cca Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.inst_28 Bool) -(declare-primed-var top.res.inst_27 Bool) -(declare-primed-var top.res.inst_26 Bool) -(declare-primed-var top.res.inst_25 Bool) -(declare-primed-var top.res.inst_24 Bool) -(declare-primed-var top.res.inst_23 Bool) -(declare-primed-var top.res.inst_22 Bool) -(declare-primed-var top.res.inst_21 Bool) -(declare-primed-var top.res.inst_20 Bool) -(declare-primed-var top.res.inst_19 Bool) -(declare-primed-var top.res.inst_18 Bool) -(declare-primed-var top.res.inst_17 Bool) -(declare-primed-var top.res.inst_16 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Bool) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Bool) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Bool) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.igsw Bool) - (top.usr.ccd Bool) - (top.usr.cconoff Bool) - (top.usr.bpa Bool) - (top.usr.cccanc Bool) - (top.usr.battok Bool) - (top.usr.gearok Bool) - (top.usr.qfok Bool) - (top.usr.sdok Bool) - (top.usr.accok Bool) - (top.usr.ccseti Bool) - (top.usr.ccsetd Bool) - (top.usr.ccr Bool) - (top.usr.vs Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.cca Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.usr.OK - (ite - top.res.abs_2 - (or (or top.res.abs_3 top.res.abs_4) top.res.abs_5) - true)) - (= top.impl.usr.cca top.res.abs_1) - (__node_init_PosEdge_0 top.impl.usr.cca top.res.abs_2 top.res.inst_28) - (__node_init_main_0 - top.usr.igsw - top.usr.ccd - top.usr.cconoff - top.usr.bpa - top.usr.cccanc - top.usr.battok - top.usr.gearok - top.usr.qfok - top.usr.sdok - top.usr.accok - top.usr.ccseti - top.usr.ccsetd - top.usr.ccr - top.usr.vs - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.inst_27 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_PosEdge_0 top.usr.ccseti top.res.abs_3 top.res.inst_2) - (__node_init_PosEdge_0 top.usr.ccsetd top.res.abs_4 top.res.inst_1) - (__node_init_PosEdge_0 top.usr.ccr top.res.abs_5 top.res.inst_0) - top.res.init_flag) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.igsw Bool) - (top.usr.ccd Bool) - (top.usr.cconoff Bool) - (top.usr.bpa Bool) - (top.usr.cccanc Bool) - (top.usr.battok Bool) - (top.usr.gearok Bool) - (top.usr.qfok Bool) - (top.usr.sdok Bool) - (top.usr.accok Bool) - (top.usr.ccseti Bool) - (top.usr.ccsetd Bool) - (top.usr.ccr Bool) - (top.usr.vs Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.cca Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.igsw! Bool) - (top.usr.ccd! Bool) - (top.usr.cconoff! Bool) - (top.usr.bpa! Bool) - (top.usr.cccanc! Bool) - (top.usr.battok! Bool) - (top.usr.gearok! Bool) - (top.usr.qfok! Bool) - (top.usr.sdok! Bool) - (top.usr.accok! Bool) - (top.usr.ccseti! Bool) - (top.usr.ccsetd! Bool) - (top.usr.ccr! Bool) - (top.usr.vs! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.cca! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.inst_28! Bool) - (top.res.inst_27! Bool) - (top.res.inst_26! Bool) - (top.res.inst_25! Bool) - (top.res.inst_24! Bool) - (top.res.inst_23! Bool) - (top.res.inst_22! Bool) - (top.res.inst_21! Bool) - (top.res.inst_20! Bool) - (top.res.inst_19! Bool) - (top.res.inst_18! Bool) - (top.res.inst_17! Bool) - (top.res.inst_16! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Bool) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Bool) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Bool) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.impl.usr.cca! top.res.abs_1!) - (= - top.usr.OK! - (ite - top.res.abs_2! - (or (or top.res.abs_3! top.res.abs_4!) top.res.abs_5!) - true)) - (__node_trans_PosEdge_0 - top.impl.usr.cca! - top.res.abs_2! - top.res.inst_28! - top.impl.usr.cca - top.res.abs_2 - top.res.inst_28) - (__node_trans_main_0 - top.usr.igsw! - top.usr.ccd! - top.usr.cconoff! - top.usr.bpa! - top.usr.cccanc! - top.usr.battok! - top.usr.gearok! - top.usr.qfok! - top.usr.sdok! - top.usr.accok! - top.usr.ccseti! - top.usr.ccsetd! - top.usr.ccr! - top.usr.vs! - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.inst_27! - top.res.inst_26! - top.res.inst_25! - top.res.inst_24! - top.res.inst_23! - top.res.inst_22! - top.res.inst_21! - top.res.inst_20! - top.res.inst_19! - top.res.inst_18! - top.res.inst_17! - top.res.inst_16! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.usr.igsw - top.usr.ccd - top.usr.cconoff - top.usr.bpa - top.usr.cccanc - top.usr.battok - top.usr.gearok - top.usr.qfok - top.usr.sdok - top.usr.accok - top.usr.ccseti - top.usr.ccsetd - top.usr.ccr - top.usr.vs - top.res.abs_0 - top.res.abs_1 - top.res.inst_27 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_PosEdge_0 - top.usr.ccseti! - top.res.abs_3! - top.res.inst_2! - top.usr.ccseti - top.res.abs_3 - top.res.inst_2) - (__node_trans_PosEdge_0 - top.usr.ccsetd! - top.res.abs_4! - top.res.inst_1! - top.usr.ccsetd - top.res.abs_4 - top.res.inst_1) - (__node_trans_PosEdge_0 - top.usr.ccr! - top.res.abs_5! - top.res.inst_0! - top.usr.ccr - top.res.abs_5 - top.res.inst_0) - (not top.res.init_flag!)) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.igsw Bool) - (top.usr.ccd Bool) - (top.usr.cconoff Bool) - (top.usr.bpa Bool) - (top.usr.cccanc Bool) - (top.usr.battok Bool) - (top.usr.gearok Bool) - (top.usr.qfok Bool) - (top.usr.sdok Bool) - (top.usr.accok Bool) - (top.usr.ccseti Bool) - (top.usr.ccsetd Bool) - (top.usr.ccr Bool) - (top.usr.vs Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.cca Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_PosEdge_0 ((PosEdge.usr.X_a_0 Bool) (PosEdge.usr.Y_a_0 Bool) (PosEdge.res.init_flag_a_0 Bool)) Bool + (and (= PosEdge.usr.Y_a_0 false) PosEdge.res.init_flag_a_0)) +(define-fun __node_trans_PosEdge_0 ((PosEdge.usr.X_a_1 Bool) (PosEdge.usr.Y_a_1 Bool) (PosEdge.res.init_flag_a_1 Bool) (PosEdge.usr.X_a_0 Bool) (PosEdge.usr.Y_a_0 Bool) (PosEdge.res.init_flag_a_0 Bool)) Bool + (and (= PosEdge.usr.Y_a_1 (and PosEdge.usr.X_a_1 (not PosEdge.usr.X_a_0))) (not PosEdge.res.init_flag_a_1))) +(define-fun __node_init_prev_no_button_0 ((prev_no_button.usr.ccseti_a_0 Bool) (prev_no_button.usr.ccsetd_a_0 Bool) (prev_no_button.usr.ccr_a_0 Bool) (prev_no_button.usr.pnb_a_0 Bool) (prev_no_button.res.init_flag_a_0 Bool) (prev_no_button.res.abs_0_a_0 Bool)) Bool + (and (= prev_no_button.usr.pnb_a_0 true) (= prev_no_button.res.abs_0_a_0 (and (and (not prev_no_button.usr.ccseti_a_0) (not prev_no_button.usr.ccsetd_a_0)) (not prev_no_button.usr.ccr_a_0))) prev_no_button.res.init_flag_a_0)) +(define-fun __node_trans_prev_no_button_0 ((prev_no_button.usr.ccseti_a_1 Bool) (prev_no_button.usr.ccsetd_a_1 Bool) (prev_no_button.usr.ccr_a_1 Bool) (prev_no_button.usr.pnb_a_1 Bool) (prev_no_button.res.init_flag_a_1 Bool) (prev_no_button.res.abs_0_a_1 Bool) (prev_no_button.usr.ccseti_a_0 Bool) (prev_no_button.usr.ccsetd_a_0 Bool) (prev_no_button.usr.ccr_a_0 Bool) (prev_no_button.usr.pnb_a_0 Bool) (prev_no_button.res.init_flag_a_0 Bool) (prev_no_button.res.abs_0_a_0 Bool)) Bool + (and (= prev_no_button.usr.pnb_a_1 prev_no_button.res.abs_0_a_0) (= prev_no_button.res.abs_0_a_1 (and (and (not prev_no_button.usr.ccseti_a_1) (not prev_no_button.usr.ccsetd_a_1)) (not prev_no_button.usr.ccr_a_1))) (not prev_no_button.res.init_flag_a_1))) +(define-fun __node_init_AtLeastOnceSince_0 ((AtLeastOnceSince.usr.X_a_0 Bool) (AtLeastOnceSince.usr.Y_a_0 Bool) (AtLeastOnceSince.usr.XsinceY_a_0 Bool) (AtLeastOnceSince.res.init_flag_a_0 Bool)) Bool + (and (= AtLeastOnceSince.usr.XsinceY_a_0 (ite AtLeastOnceSince.usr.Y_a_0 AtLeastOnceSince.usr.X_a_0 true)) AtLeastOnceSince.res.init_flag_a_0)) +(define-fun __node_trans_AtLeastOnceSince_0 ((AtLeastOnceSince.usr.X_a_1 Bool) (AtLeastOnceSince.usr.Y_a_1 Bool) (AtLeastOnceSince.usr.XsinceY_a_1 Bool) (AtLeastOnceSince.res.init_flag_a_1 Bool) (AtLeastOnceSince.usr.X_a_0 Bool) (AtLeastOnceSince.usr.Y_a_0 Bool) (AtLeastOnceSince.usr.XsinceY_a_0 Bool) (AtLeastOnceSince.res.init_flag_a_0 Bool)) Bool + (and (= AtLeastOnceSince.usr.XsinceY_a_1 (ite AtLeastOnceSince.usr.Y_a_1 AtLeastOnceSince.usr.X_a_1 (and AtLeastOnceSince.usr.X_a_1 AtLeastOnceSince.usr.XsinceY_a_0))) (not AtLeastOnceSince.res.init_flag_a_1))) +(define-fun __node_init_one_button_0 ((one_button.usr.ccseti_a_0 Bool) (one_button.usr.ccsetd_a_0 Bool) (one_button.usr.ccr_a_0 Bool) (one_button.usr.ob_a_0 Bool) (one_button.res.init_flag_a_0 Bool)) Bool + (and (= one_button.usr.ob_a_0 (or (or (and (and one_button.usr.ccseti_a_0 (not one_button.usr.ccsetd_a_0)) (not one_button.usr.ccr_a_0)) (and (and (not one_button.usr.ccseti_a_0) one_button.usr.ccsetd_a_0) (not one_button.usr.ccr_a_0))) (and (and (not one_button.usr.ccseti_a_0) (not one_button.usr.ccsetd_a_0)) one_button.usr.ccr_a_0))) one_button.res.init_flag_a_0)) +(define-fun __node_trans_one_button_0 ((one_button.usr.ccseti_a_1 Bool) (one_button.usr.ccsetd_a_1 Bool) (one_button.usr.ccr_a_1 Bool) (one_button.usr.ob_a_1 Bool) (one_button.res.init_flag_a_1 Bool) (one_button.usr.ccseti_a_0 Bool) (one_button.usr.ccsetd_a_0 Bool) (one_button.usr.ccr_a_0 Bool) (one_button.usr.ob_a_0 Bool) (one_button.res.init_flag_a_0 Bool)) Bool + (and (= one_button.usr.ob_a_1 (or (or (and (and one_button.usr.ccseti_a_1 (not one_button.usr.ccsetd_a_1)) (not one_button.usr.ccr_a_1)) (and (and (not one_button.usr.ccseti_a_1) one_button.usr.ccsetd_a_1) (not one_button.usr.ccr_a_1))) (and (and (not one_button.usr.ccseti_a_1) (not one_button.usr.ccsetd_a_1)) one_button.usr.ccr_a_1))) (not one_button.res.init_flag_a_1))) +(define-fun __node_init_one_button_accept_0 ((one_button_accept.usr.ccseti_a_0 Bool) (one_button_accept.usr.ccsetd_a_0 Bool) (one_button_accept.usr.ccr_a_0 Bool) (one_button_accept.usr.ccont_a_0 Bool) (one_button_accept.usr.cca_a_0 Bool) (one_button_accept.usr.oba_a_0 Bool) (one_button_accept.res.init_flag_a_0 Bool) (one_button_accept.res.abs_0_a_0 Bool) (one_button_accept.res.abs_1_a_0 Bool) (one_button_accept.res.abs_2_a_0 Bool) (one_button_accept.res.abs_3_a_0 Bool) (one_button_accept.res.inst_4_a_0 Bool) (one_button_accept.res.inst_3_a_0 Bool) (one_button_accept.res.inst_2_a_0 Bool) (one_button_accept.res.inst_1_a_0 Bool) (one_button_accept.res.inst_0_a_0 Bool)) Bool + (let ((X1 one_button_accept.res.abs_0_a_0)) (let ((X2 one_button_accept.res.abs_1_a_0)) (and (= one_button_accept.usr.oba_a_0 (ite (and X1 X2) (ite (not one_button_accept.usr.ccr_a_0) true one_button_accept.res.abs_3_a_0) false)) (__node_init_one_button_0 one_button_accept.usr.ccseti_a_0 one_button_accept.usr.ccsetd_a_0 one_button_accept.usr.ccr_a_0 one_button_accept.res.abs_1_a_0 one_button_accept.res.inst_4_a_0) (__node_init_prev_no_button_0 one_button_accept.usr.ccseti_a_0 one_button_accept.usr.ccsetd_a_0 one_button_accept.usr.ccr_a_0 one_button_accept.res.abs_0_a_0 one_button_accept.res.inst_3_a_0 one_button_accept.res.inst_2_a_0) (__node_init_AtLeastOnceSince_0 one_button_accept.usr.cca_a_0 one_button_accept.res.abs_2_a_0 one_button_accept.res.abs_3_a_0 one_button_accept.res.inst_1_a_0) (__node_init_PosEdge_0 one_button_accept.usr.ccont_a_0 one_button_accept.res.abs_2_a_0 one_button_accept.res.inst_0_a_0) one_button_accept.res.init_flag_a_0)))) +(define-fun __node_trans_one_button_accept_0 ((one_button_accept.usr.ccseti_a_1 Bool) (one_button_accept.usr.ccsetd_a_1 Bool) (one_button_accept.usr.ccr_a_1 Bool) (one_button_accept.usr.ccont_a_1 Bool) (one_button_accept.usr.cca_a_1 Bool) (one_button_accept.usr.oba_a_1 Bool) (one_button_accept.res.init_flag_a_1 Bool) (one_button_accept.res.abs_0_a_1 Bool) (one_button_accept.res.abs_1_a_1 Bool) (one_button_accept.res.abs_2_a_1 Bool) (one_button_accept.res.abs_3_a_1 Bool) (one_button_accept.res.inst_4_a_1 Bool) (one_button_accept.res.inst_3_a_1 Bool) (one_button_accept.res.inst_2_a_1 Bool) (one_button_accept.res.inst_1_a_1 Bool) (one_button_accept.res.inst_0_a_1 Bool) (one_button_accept.usr.ccseti_a_0 Bool) (one_button_accept.usr.ccsetd_a_0 Bool) (one_button_accept.usr.ccr_a_0 Bool) (one_button_accept.usr.ccont_a_0 Bool) (one_button_accept.usr.cca_a_0 Bool) (one_button_accept.usr.oba_a_0 Bool) (one_button_accept.res.init_flag_a_0 Bool) (one_button_accept.res.abs_0_a_0 Bool) (one_button_accept.res.abs_1_a_0 Bool) (one_button_accept.res.abs_2_a_0 Bool) (one_button_accept.res.abs_3_a_0 Bool) (one_button_accept.res.inst_4_a_0 Bool) (one_button_accept.res.inst_3_a_0 Bool) (one_button_accept.res.inst_2_a_0 Bool) (one_button_accept.res.inst_1_a_0 Bool) (one_button_accept.res.inst_0_a_0 Bool)) Bool + (let ((X1 one_button_accept.res.abs_0_a_1)) (let ((X2 one_button_accept.res.abs_1_a_1)) (and (= one_button_accept.usr.oba_a_1 (ite (and X1 X2) (ite (not one_button_accept.usr.ccr_a_1) true one_button_accept.res.abs_3_a_1) false)) (__node_trans_one_button_0 one_button_accept.usr.ccseti_a_1 one_button_accept.usr.ccsetd_a_1 one_button_accept.usr.ccr_a_1 one_button_accept.res.abs_1_a_1 one_button_accept.res.inst_4_a_1 one_button_accept.usr.ccseti_a_0 one_button_accept.usr.ccsetd_a_0 one_button_accept.usr.ccr_a_0 one_button_accept.res.abs_1_a_0 one_button_accept.res.inst_4_a_0) (__node_trans_prev_no_button_0 one_button_accept.usr.ccseti_a_1 one_button_accept.usr.ccsetd_a_1 one_button_accept.usr.ccr_a_1 one_button_accept.res.abs_0_a_1 one_button_accept.res.inst_3_a_1 one_button_accept.res.inst_2_a_1 one_button_accept.usr.ccseti_a_0 one_button_accept.usr.ccsetd_a_0 one_button_accept.usr.ccr_a_0 one_button_accept.res.abs_0_a_0 one_button_accept.res.inst_3_a_0 one_button_accept.res.inst_2_a_0) (__node_trans_AtLeastOnceSince_0 one_button_accept.usr.cca_a_1 one_button_accept.res.abs_2_a_1 one_button_accept.res.abs_3_a_1 one_button_accept.res.inst_1_a_1 one_button_accept.usr.cca_a_0 one_button_accept.res.abs_2_a_0 one_button_accept.res.abs_3_a_0 one_button_accept.res.inst_1_a_0) (__node_trans_PosEdge_0 one_button_accept.usr.ccont_a_1 one_button_accept.res.abs_2_a_1 one_button_accept.res.inst_0_a_1 one_button_accept.usr.ccont_a_0 one_button_accept.res.abs_2_a_0 one_button_accept.res.inst_0_a_0) (not one_button_accept.res.init_flag_a_1))))) +(define-fun __node_init_MoreThanTwoSec_0 ((MoreThanTwoSec.usr.X_a_0 Bool) (MoreThanTwoSec.usr.Y_a_0 Bool) (MoreThanTwoSec.res.init_flag_a_0 Bool) (MoreThanTwoSec.res.abs_0_a_0 Bool)) Bool + (and (= MoreThanTwoSec.usr.Y_a_0 false) (= MoreThanTwoSec.res.abs_0_a_0 false) MoreThanTwoSec.res.init_flag_a_0)) +(define-fun __node_trans_MoreThanTwoSec_0 ((MoreThanTwoSec.usr.X_a_1 Bool) (MoreThanTwoSec.usr.Y_a_1 Bool) (MoreThanTwoSec.res.init_flag_a_1 Bool) (MoreThanTwoSec.res.abs_0_a_1 Bool) (MoreThanTwoSec.usr.X_a_0 Bool) (MoreThanTwoSec.usr.Y_a_0 Bool) (MoreThanTwoSec.res.init_flag_a_0 Bool) (MoreThanTwoSec.res.abs_0_a_0 Bool)) Bool + (and (= MoreThanTwoSec.usr.Y_a_1 (and MoreThanTwoSec.res.abs_0_a_0 MoreThanTwoSec.usr.X_a_1)) (= MoreThanTwoSec.res.abs_0_a_1 (and MoreThanTwoSec.usr.X_a_0 MoreThanTwoSec.usr.X_a_1)) (not MoreThanTwoSec.res.init_flag_a_1))) +(define-fun __node_init_MoreThanOneSec_0 ((MoreThanOneSec.usr.X_a_0 Bool) (MoreThanOneSec.usr.Y_a_0 Bool) (MoreThanOneSec.res.init_flag_a_0 Bool)) Bool + (and (= MoreThanOneSec.usr.Y_a_0 false) MoreThanOneSec.res.init_flag_a_0)) +(define-fun __node_trans_MoreThanOneSec_0 ((MoreThanOneSec.usr.X_a_1 Bool) (MoreThanOneSec.usr.Y_a_1 Bool) (MoreThanOneSec.res.init_flag_a_1 Bool) (MoreThanOneSec.usr.X_a_0 Bool) (MoreThanOneSec.usr.Y_a_0 Bool) (MoreThanOneSec.res.init_flag_a_0 Bool)) Bool + (and (= MoreThanOneSec.usr.Y_a_1 (and MoreThanOneSec.usr.X_a_0 MoreThanOneSec.usr.X_a_1)) (not MoreThanOneSec.res.init_flag_a_1))) +(define-fun __node_init_cc_allowed_0 ((cc_allowed.usr.ccont_a_0 Bool) (cc_allowed.usr.igsw_a_0 Bool) (cc_allowed.usr.bpa_a_0 Bool) (cc_allowed.usr.cccanc_a_0 Bool) (cc_allowed.usr.battok_a_0 Bool) (cc_allowed.usr.gearok_a_0 Bool) (cc_allowed.usr.qfok_a_0 Bool) (cc_allowed.usr.sdok_a_0 Bool) (cc_allowed.usr.accok_a_0 Bool) (cc_allowed.usr.vs_a_0 Int) (cc_allowed.usr.ccall_a_0 Bool) (cc_allowed.res.init_flag_a_0 Bool) (cc_allowed.res.abs_0_a_0 Bool) (cc_allowed.res.abs_1_a_0 Bool) (cc_allowed.res.inst_2_a_0 Bool) (cc_allowed.res.inst_1_a_0 Bool) (cc_allowed.res.inst_0_a_0 Bool)) Bool + (and (= cc_allowed.usr.ccall_a_0 (and (and (and (and (and (and (and (and (and cc_allowed.usr.ccont_a_0 (not cc_allowed.usr.bpa_a_0)) cc_allowed.usr.battok_a_0) cc_allowed.usr.gearok_a_0) cc_allowed.usr.qfok_a_0) cc_allowed.res.abs_0_a_0) (<= 35 cc_allowed.usr.vs_a_0)) (<= cc_allowed.usr.vs_a_0 200)) cc_allowed.res.abs_1_a_0) (not cc_allowed.usr.cccanc_a_0))) (__node_init_MoreThanOneSec_0 cc_allowed.usr.sdok_a_0 cc_allowed.res.abs_0_a_0 cc_allowed.res.inst_2_a_0) (__node_init_MoreThanTwoSec_0 cc_allowed.usr.accok_a_0 cc_allowed.res.abs_1_a_0 cc_allowed.res.inst_1_a_0 cc_allowed.res.inst_0_a_0) cc_allowed.res.init_flag_a_0)) +(define-fun __node_trans_cc_allowed_0 ((cc_allowed.usr.ccont_a_1 Bool) (cc_allowed.usr.igsw_a_1 Bool) (cc_allowed.usr.bpa_a_1 Bool) (cc_allowed.usr.cccanc_a_1 Bool) (cc_allowed.usr.battok_a_1 Bool) (cc_allowed.usr.gearok_a_1 Bool) (cc_allowed.usr.qfok_a_1 Bool) (cc_allowed.usr.sdok_a_1 Bool) (cc_allowed.usr.accok_a_1 Bool) (cc_allowed.usr.vs_a_1 Int) (cc_allowed.usr.ccall_a_1 Bool) (cc_allowed.res.init_flag_a_1 Bool) (cc_allowed.res.abs_0_a_1 Bool) (cc_allowed.res.abs_1_a_1 Bool) (cc_allowed.res.inst_2_a_1 Bool) (cc_allowed.res.inst_1_a_1 Bool) (cc_allowed.res.inst_0_a_1 Bool) (cc_allowed.usr.ccont_a_0 Bool) (cc_allowed.usr.igsw_a_0 Bool) (cc_allowed.usr.bpa_a_0 Bool) (cc_allowed.usr.cccanc_a_0 Bool) (cc_allowed.usr.battok_a_0 Bool) (cc_allowed.usr.gearok_a_0 Bool) (cc_allowed.usr.qfok_a_0 Bool) (cc_allowed.usr.sdok_a_0 Bool) (cc_allowed.usr.accok_a_0 Bool) (cc_allowed.usr.vs_a_0 Int) (cc_allowed.usr.ccall_a_0 Bool) (cc_allowed.res.init_flag_a_0 Bool) (cc_allowed.res.abs_0_a_0 Bool) (cc_allowed.res.abs_1_a_0 Bool) (cc_allowed.res.inst_2_a_0 Bool) (cc_allowed.res.inst_1_a_0 Bool) (cc_allowed.res.inst_0_a_0 Bool)) Bool + (and (= cc_allowed.usr.ccall_a_1 (and (and (and (and (and (and (and (and (and cc_allowed.usr.ccont_a_1 (not cc_allowed.usr.bpa_a_1)) cc_allowed.usr.battok_a_1) cc_allowed.usr.gearok_a_1) cc_allowed.usr.qfok_a_1) cc_allowed.res.abs_0_a_1) (<= 35 cc_allowed.usr.vs_a_1)) (<= cc_allowed.usr.vs_a_1 200)) cc_allowed.res.abs_1_a_1) (not cc_allowed.usr.cccanc_a_1))) (__node_trans_MoreThanOneSec_0 cc_allowed.usr.sdok_a_1 cc_allowed.res.abs_0_a_1 cc_allowed.res.inst_2_a_1 cc_allowed.usr.sdok_a_0 cc_allowed.res.abs_0_a_0 cc_allowed.res.inst_2_a_0) (__node_trans_MoreThanTwoSec_0 cc_allowed.usr.accok_a_1 cc_allowed.res.abs_1_a_1 cc_allowed.res.inst_1_a_1 cc_allowed.res.inst_0_a_1 cc_allowed.usr.accok_a_0 cc_allowed.res.abs_1_a_0 cc_allowed.res.inst_1_a_0 cc_allowed.res.inst_0_a_0) (not cc_allowed.res.init_flag_a_1))) +(define-fun __node_init_Edge_0 ((Edge.usr.X_a_0 Bool) (Edge.usr.Y_a_0 Bool) (Edge.res.init_flag_a_0 Bool)) Bool + (and (= Edge.usr.Y_a_0 false) Edge.res.init_flag_a_0)) +(define-fun __node_trans_Edge_0 ((Edge.usr.X_a_1 Bool) (Edge.usr.Y_a_1 Bool) (Edge.res.init_flag_a_1 Bool) (Edge.usr.X_a_0 Bool) (Edge.usr.Y_a_0 Bool) (Edge.res.init_flag_a_0 Bool)) Bool + (and (= Edge.usr.Y_a_1 (and (and (and Edge.usr.X_a_1 (not Edge.usr.X_a_0)) (not Edge.usr.X_a_1)) Edge.usr.X_a_0)) (not Edge.res.init_flag_a_1))) +(define-fun __node_init_main_0 ((main.usr.igsw_a_0 Bool) (main.usr.ccd_a_0 Bool) (main.usr.cconoff_a_0 Bool) (main.usr.bpa_a_0 Bool) (main.usr.cccanc_a_0 Bool) (main.usr.battok_a_0 Bool) (main.usr.gearok_a_0 Bool) (main.usr.qfok_a_0 Bool) (main.usr.sdok_a_0 Bool) (main.usr.accok_a_0 Bool) (main.usr.ccseti_a_0 Bool) (main.usr.ccsetd_a_0 Bool) (main.usr.ccr_a_0 Bool) (main.usr.vs_a_0 Int) (main.res.nondet_0 Bool) (main.usr.ccont_a_0 Bool) (main.usr.cca_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Bool) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Bool) (main.res.inst_17_a_0 Bool) (main.res.inst_16_a_0 Bool) (main.res.inst_15_a_0 Bool) (main.res.inst_14_a_0 Bool) (main.res.inst_13_a_0 Bool) (main.res.inst_12_a_0 Bool) (main.res.inst_11_a_0 Bool) (main.res.inst_10_a_0 Bool) (main.res.inst_9_a_0 Bool) (main.res.inst_8_a_0 Bool) (main.res.inst_7_a_0 Bool) (main.res.inst_6_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Bool) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Bool) (main.res.inst_0_a_0 Bool)) Bool + (and (= main.usr.ccont_a_0 false) (= main.res.abs_2_a_0 (not main.usr.ccont_a_0)) (= main.usr.cca_a_0 false) (let ((X1 main.res.abs_3_a_0)) (and (= main.res.abs_4_a_0 (let ((X2 main.res.nondet_0)) X2)) (__node_init_Edge_0 main.usr.igsw_a_0 main.res.abs_0_a_0 main.res.inst_17_a_0) (__node_init_PosEdge_0 main.usr.cconoff_a_0 main.res.abs_1_a_0 main.res.inst_16_a_0) (__node_init_cc_allowed_0 main.usr.ccont_a_0 main.usr.igsw_a_0 main.usr.bpa_a_0 main.usr.cccanc_a_0 main.usr.battok_a_0 main.usr.gearok_a_0 main.usr.qfok_a_0 main.usr.sdok_a_0 main.usr.accok_a_0 main.usr.vs_a_0 main.res.abs_3_a_0 main.res.inst_15_a_0 main.res.inst_14_a_0 main.res.inst_13_a_0 main.res.inst_12_a_0 main.res.inst_11_a_0 main.res.inst_10_a_0) (__node_init_one_button_accept_0 main.usr.ccseti_a_0 main.usr.ccsetd_a_0 main.usr.ccr_a_0 main.usr.ccont_a_0 main.res.abs_4_a_0 main.res.abs_5_a_0 main.res.inst_9_a_0 main.res.inst_8_a_0 main.res.inst_7_a_0 main.res.inst_6_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0 main.res.inst_3_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0 main.res.inst_0_a_0) main.res.init_flag_a_0)))) +(define-fun __node_trans_main_0 ((main.usr.igsw_a_1 Bool) (main.usr.ccd_a_1 Bool) (main.usr.cconoff_a_1 Bool) (main.usr.bpa_a_1 Bool) (main.usr.cccanc_a_1 Bool) (main.usr.battok_a_1 Bool) (main.usr.gearok_a_1 Bool) (main.usr.qfok_a_1 Bool) (main.usr.sdok_a_1 Bool) (main.usr.accok_a_1 Bool) (main.usr.ccseti_a_1 Bool) (main.usr.ccsetd_a_1 Bool) (main.usr.ccr_a_1 Bool) (main.usr.vs_a_1 Int) (main.res.nondet_0 Bool) (main.usr.ccont_a_1 Bool) (main.usr.cca_a_1 Bool) (main.res.init_flag_a_1 Bool) (main.res.abs_0_a_1 Bool) (main.res.abs_1_a_1 Bool) (main.res.abs_2_a_1 Bool) (main.res.abs_3_a_1 Bool) (main.res.abs_4_a_1 Bool) (main.res.abs_5_a_1 Bool) (main.res.inst_17_a_1 Bool) (main.res.inst_16_a_1 Bool) (main.res.inst_15_a_1 Bool) (main.res.inst_14_a_1 Bool) (main.res.inst_13_a_1 Bool) (main.res.inst_12_a_1 Bool) (main.res.inst_11_a_1 Bool) (main.res.inst_10_a_1 Bool) (main.res.inst_9_a_1 Bool) (main.res.inst_8_a_1 Bool) (main.res.inst_7_a_1 Bool) (main.res.inst_6_a_1 Bool) (main.res.inst_5_a_1 Bool) (main.res.inst_4_a_1 Bool) (main.res.inst_3_a_1 Bool) (main.res.inst_2_a_1 Bool) (main.res.inst_1_a_1 Bool) (main.res.inst_0_a_1 Bool) (main.usr.igsw_a_0 Bool) (main.usr.ccd_a_0 Bool) (main.usr.cconoff_a_0 Bool) (main.usr.bpa_a_0 Bool) (main.usr.cccanc_a_0 Bool) (main.usr.battok_a_0 Bool) (main.usr.gearok_a_0 Bool) (main.usr.qfok_a_0 Bool) (main.usr.sdok_a_0 Bool) (main.usr.accok_a_0 Bool) (main.usr.ccseti_a_0 Bool) (main.usr.ccsetd_a_0 Bool) (main.usr.ccr_a_0 Bool) (main.usr.vs_a_0 Int) (main.usr.ccont_a_0 Bool) (main.usr.cca_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Bool) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Bool) (main.res.inst_17_a_0 Bool) (main.res.inst_16_a_0 Bool) (main.res.inst_15_a_0 Bool) (main.res.inst_14_a_0 Bool) (main.res.inst_13_a_0 Bool) (main.res.inst_12_a_0 Bool) (main.res.inst_11_a_0 Bool) (main.res.inst_10_a_0 Bool) (main.res.inst_9_a_0 Bool) (main.res.inst_8_a_0 Bool) (main.res.inst_7_a_0 Bool) (main.res.inst_6_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Bool) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Bool) (main.res.inst_0_a_0 Bool)) Bool + (and (= main.usr.ccont_a_1 (ite (or (or main.res.abs_0_a_1 main.usr.ccd_a_1) (and main.usr.ccont_a_0 main.res.abs_1_a_1)) false (ite (and main.res.abs_2_a_0 main.res.abs_1_a_1) true main.usr.ccont_a_0))) (= main.res.abs_2_a_1 (not main.usr.ccont_a_1)) (= main.res.abs_4_a_1 main.usr.cca_a_0) (let ((X1 main.res.abs_3_a_1)) (and (= main.usr.cca_a_1 (ite (and main.res.abs_5_a_1 X1) true (ite (not X1) false main.usr.cca_a_0))) (__node_trans_Edge_0 main.usr.igsw_a_1 main.res.abs_0_a_1 main.res.inst_17_a_1 main.usr.igsw_a_0 main.res.abs_0_a_0 main.res.inst_17_a_0) (__node_trans_PosEdge_0 main.usr.cconoff_a_1 main.res.abs_1_a_1 main.res.inst_16_a_1 main.usr.cconoff_a_0 main.res.abs_1_a_0 main.res.inst_16_a_0) (__node_trans_cc_allowed_0 main.usr.ccont_a_1 main.usr.igsw_a_1 main.usr.bpa_a_1 main.usr.cccanc_a_1 main.usr.battok_a_1 main.usr.gearok_a_1 main.usr.qfok_a_1 main.usr.sdok_a_1 main.usr.accok_a_1 main.usr.vs_a_1 main.res.abs_3_a_1 main.res.inst_15_a_1 main.res.inst_14_a_1 main.res.inst_13_a_1 main.res.inst_12_a_1 main.res.inst_11_a_1 main.res.inst_10_a_1 main.usr.ccont_a_0 main.usr.igsw_a_0 main.usr.bpa_a_0 main.usr.cccanc_a_0 main.usr.battok_a_0 main.usr.gearok_a_0 main.usr.qfok_a_0 main.usr.sdok_a_0 main.usr.accok_a_0 main.usr.vs_a_0 main.res.abs_3_a_0 main.res.inst_15_a_0 main.res.inst_14_a_0 main.res.inst_13_a_0 main.res.inst_12_a_0 main.res.inst_11_a_0 main.res.inst_10_a_0) (__node_trans_one_button_accept_0 main.usr.ccseti_a_1 main.usr.ccsetd_a_1 main.usr.ccr_a_1 main.usr.ccont_a_1 main.res.abs_4_a_1 main.res.abs_5_a_1 main.res.inst_9_a_1 main.res.inst_8_a_1 main.res.inst_7_a_1 main.res.inst_6_a_1 main.res.inst_5_a_1 main.res.inst_4_a_1 main.res.inst_3_a_1 main.res.inst_2_a_1 main.res.inst_1_a_1 main.res.inst_0_a_1 main.usr.ccseti_a_0 main.usr.ccsetd_a_0 main.usr.ccr_a_0 main.usr.ccont_a_0 main.res.abs_4_a_0 main.res.abs_5_a_0 main.res.inst_9_a_0 main.res.inst_8_a_0 main.res.inst_7_a_0 main.res.inst_6_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0 main.res.inst_3_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0 main.res.inst_0_a_0) (not main.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.igsw_a_0 Bool) (top.usr.ccd_a_0 Bool) (top.usr.cconoff_a_0 Bool) (top.usr.bpa_a_0 Bool) (top.usr.cccanc_a_0 Bool) (top.usr.battok_a_0 Bool) (top.usr.gearok_a_0 Bool) (top.usr.qfok_a_0 Bool) (top.usr.sdok_a_0 Bool) (top.usr.accok_a_0 Bool) (top.usr.ccseti_a_0 Bool) (top.usr.ccsetd_a_0 Bool) (top.usr.ccr_a_0 Bool) (top.usr.vs_a_0 Int) (top.res.nondet_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.cca_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 (ite top.res.abs_2_a_0 (or (or top.res.abs_3_a_0 top.res.abs_4_a_0) top.res.abs_5_a_0) true)) (= top.impl.usr.cca_a_0 top.res.abs_1_a_0) (__node_init_PosEdge_0 top.impl.usr.cca_a_0 top.res.abs_2_a_0 top.res.inst_28_a_0) (__node_init_main_0 top.usr.igsw_a_0 top.usr.ccd_a_0 top.usr.cconoff_a_0 top.usr.bpa_a_0 top.usr.cccanc_a_0 top.usr.battok_a_0 top.usr.gearok_a_0 top.usr.qfok_a_0 top.usr.sdok_a_0 top.usr.accok_a_0 top.usr.ccseti_a_0 top.usr.ccsetd_a_0 top.usr.ccr_a_0 top.usr.vs_a_0 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_27_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_PosEdge_0 top.usr.ccseti_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_PosEdge_0 top.usr.ccsetd_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_PosEdge_0 top.usr.ccr_a_0 top.res.abs_5_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)) +(define-fun __node_trans_top_0 ((top.usr.igsw_a_1 Bool) (top.usr.ccd_a_1 Bool) (top.usr.cconoff_a_1 Bool) (top.usr.bpa_a_1 Bool) (top.usr.cccanc_a_1 Bool) (top.usr.battok_a_1 Bool) (top.usr.gearok_a_1 Bool) (top.usr.qfok_a_1 Bool) (top.usr.sdok_a_1 Bool) (top.usr.accok_a_1 Bool) (top.usr.ccseti_a_1 Bool) (top.usr.ccsetd_a_1 Bool) (top.usr.ccr_a_1 Bool) (top.usr.vs_a_1 Int) (top.res.nondet_0 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.cca_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.inst_28_a_1 Bool) (top.res.inst_27_a_1 Bool) (top.res.inst_26_a_1 Bool) (top.res.inst_25_a_1 Bool) (top.res.inst_24_a_1 Bool) (top.res.inst_23_a_1 Bool) (top.res.inst_22_a_1 Bool) (top.res.inst_21_a_1 Bool) (top.res.inst_20_a_1 Bool) (top.res.inst_19_a_1 Bool) (top.res.inst_18_a_1 Bool) (top.res.inst_17_a_1 Bool) (top.res.inst_16_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Bool) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Bool) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Bool) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.igsw_a_0 Bool) (top.usr.ccd_a_0 Bool) (top.usr.cconoff_a_0 Bool) (top.usr.bpa_a_0 Bool) (top.usr.cccanc_a_0 Bool) (top.usr.battok_a_0 Bool) (top.usr.gearok_a_0 Bool) (top.usr.qfok_a_0 Bool) (top.usr.sdok_a_0 Bool) (top.usr.accok_a_0 Bool) (top.usr.ccseti_a_0 Bool) (top.usr.ccsetd_a_0 Bool) (top.usr.ccr_a_0 Bool) (top.usr.vs_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.cca_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.cca_a_1 top.res.abs_1_a_1) (= top.usr.OK_a_1 (ite top.res.abs_2_a_1 (or (or top.res.abs_3_a_1 top.res.abs_4_a_1) top.res.abs_5_a_1) true)) (__node_trans_PosEdge_0 top.impl.usr.cca_a_1 top.res.abs_2_a_1 top.res.inst_28_a_1 top.impl.usr.cca_a_0 top.res.abs_2_a_0 top.res.inst_28_a_0) (__node_trans_main_0 top.usr.igsw_a_1 top.usr.ccd_a_1 top.usr.cconoff_a_1 top.usr.bpa_a_1 top.usr.cccanc_a_1 top.usr.battok_a_1 top.usr.gearok_a_1 top.usr.qfok_a_1 top.usr.sdok_a_1 top.usr.accok_a_1 top.usr.ccseti_a_1 top.usr.ccsetd_a_1 top.usr.ccr_a_1 top.usr.vs_a_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.inst_27_a_1 top.res.inst_26_a_1 top.res.inst_25_a_1 top.res.inst_24_a_1 top.res.inst_23_a_1 top.res.inst_22_a_1 top.res.inst_21_a_1 top.res.inst_20_a_1 top.res.inst_19_a_1 top.res.inst_18_a_1 top.res.inst_17_a_1 top.res.inst_16_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.igsw_a_0 top.usr.ccd_a_0 top.usr.cconoff_a_0 top.usr.bpa_a_0 top.usr.cccanc_a_0 top.usr.battok_a_0 top.usr.gearok_a_0 top.usr.qfok_a_0 top.usr.sdok_a_0 top.usr.accok_a_0 top.usr.ccseti_a_0 top.usr.ccsetd_a_0 top.usr.ccr_a_0 top.usr.vs_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_27_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_PosEdge_0 top.usr.ccseti_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.usr.ccseti_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_PosEdge_0 top.usr.ccsetd_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.ccsetd_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_PosEdge_0 top.usr.ccr_a_1 top.res.abs_5_a_1 top.res.inst_0_a_1 top.usr.ccr_a_0 top.res.abs_5_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))) +(synth-inv str_invariant ((top.usr.igsw Bool) (top.usr.ccd Bool) (top.usr.cconoff Bool) (top.usr.bpa Bool) (top.usr.cccanc Bool) (top.usr.battok Bool) (top.usr.gearok Bool) (top.usr.qfok Bool) (top.usr.sdok Bool) (top.usr.accok Bool) (top.usr.ccseti Bool) (top.usr.ccsetd Bool) (top.usr.ccr Bool) (top.usr.vs Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.cca Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_0 Bool) +(define-fun init ((top.usr.igsw Bool) (top.usr.ccd Bool) (top.usr.cconoff Bool) (top.usr.bpa Bool) (top.usr.cccanc Bool) (top.usr.battok Bool) (top.usr.gearok Bool) (top.usr.qfok Bool) (top.usr.sdok Bool) (top.usr.accok Bool) (top.usr.ccseti Bool) (top.usr.ccsetd Bool) (top.usr.ccr Bool) (top.usr.vs Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.cca Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK (ite top.res.abs_2 (or (or top.res.abs_3 top.res.abs_4) top.res.abs_5) true)) (= top.impl.usr.cca top.res.abs_1) (__node_init_PosEdge_0 top.impl.usr.cca top.res.abs_2 top.res.inst_28) (__node_init_main_0 top.usr.igsw top.usr.ccd top.usr.cconoff top.usr.bpa top.usr.cccanc top.usr.battok top.usr.gearok top.usr.qfok top.usr.sdok top.usr.accok top.usr.ccseti top.usr.ccsetd top.usr.ccr top.usr.vs top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.inst_27 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3) (__node_init_PosEdge_0 top.usr.ccseti top.res.abs_3 top.res.inst_2) (__node_init_PosEdge_0 top.usr.ccsetd top.res.abs_4 top.res.inst_1) (__node_init_PosEdge_0 top.usr.ccr top.res.abs_5 top.res.inst_0) top.res.init_flag)) +(define-fun trans ((top.usr.igsw Bool) (top.usr.ccd Bool) (top.usr.cconoff Bool) (top.usr.bpa Bool) (top.usr.cccanc Bool) (top.usr.battok Bool) (top.usr.gearok Bool) (top.usr.qfok Bool) (top.usr.sdok Bool) (top.usr.accok Bool) (top.usr.ccseti Bool) (top.usr.ccsetd Bool) (top.usr.ccr Bool) (top.usr.vs Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.cca Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.igsw! Bool) (top.usr.ccd! Bool) (top.usr.cconoff! Bool) (top.usr.bpa! Bool) (top.usr.cccanc! Bool) (top.usr.battok! Bool) (top.usr.gearok! Bool) (top.usr.qfok! Bool) (top.usr.sdok! Bool) (top.usr.accok! Bool) (top.usr.ccseti! Bool) (top.usr.ccsetd! Bool) (top.usr.ccr! Bool) (top.usr.vs! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.cca! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.inst_28! Bool) (top.res.inst_27! Bool) (top.res.inst_26! Bool) (top.res.inst_25! Bool) (top.res.inst_24! Bool) (top.res.inst_23! Bool) (top.res.inst_22! Bool) (top.res.inst_21! Bool) (top.res.inst_20! Bool) (top.res.inst_19! Bool) (top.res.inst_18! Bool) (top.res.inst_17! Bool) (top.res.inst_16! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Bool) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Bool) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Bool) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.impl.usr.cca! top.res.abs_1!) (= top.usr.OK! (ite top.res.abs_2! (or (or top.res.abs_3! top.res.abs_4!) top.res.abs_5!) true)) (__node_trans_PosEdge_0 top.impl.usr.cca! top.res.abs_2! top.res.inst_28! top.impl.usr.cca top.res.abs_2 top.res.inst_28) (__node_trans_main_0 top.usr.igsw! top.usr.ccd! top.usr.cconoff! top.usr.bpa! top.usr.cccanc! top.usr.battok! top.usr.gearok! top.usr.qfok! top.usr.sdok! top.usr.accok! top.usr.ccseti! top.usr.ccsetd! top.usr.ccr! top.usr.vs! top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.inst_27! top.res.inst_26! top.res.inst_25! top.res.inst_24! top.res.inst_23! top.res.inst_22! top.res.inst_21! top.res.inst_20! top.res.inst_19! top.res.inst_18! top.res.inst_17! top.res.inst_16! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.usr.igsw top.usr.ccd top.usr.cconoff top.usr.bpa top.usr.cccanc top.usr.battok top.usr.gearok top.usr.qfok top.usr.sdok top.usr.accok top.usr.ccseti top.usr.ccsetd top.usr.ccr top.usr.vs top.res.abs_0 top.res.abs_1 top.res.inst_27 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3) (__node_trans_PosEdge_0 top.usr.ccseti! top.res.abs_3! top.res.inst_2! top.usr.ccseti top.res.abs_3 top.res.inst_2) (__node_trans_PosEdge_0 top.usr.ccsetd! top.res.abs_4! top.res.inst_1! top.usr.ccsetd top.res.abs_4 top.res.inst_1) (__node_trans_PosEdge_0 top.usr.ccr! top.res.abs_5! top.res.inst_0! top.usr.ccr top.res.abs_5 top.res.inst_0) (not top.res.init_flag!)) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.igsw Bool) (top.usr.ccd Bool) (top.usr.cconoff Bool) (top.usr.bpa Bool) (top.usr.cccanc Bool) (top.usr.battok Bool) (top.usr.gearok Bool) (top.usr.qfok Bool) (top.usr.sdok Bool) (top.usr.accok Bool) (top.usr.ccseti Bool) (top.usr.ccsetd Bool) (top.usr.ccr Bool) (top.usr.vs Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.cca Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/fast_1_e8_751.sl b/benchmarks/LIA/Lustre/fast_1_e8_751.sl index 80c04f6..ddd9ace 100644 --- a/benchmarks/LIA/Lustre/fast_1_e8_751.sl +++ b/benchmarks/LIA/Lustre/fast_1_e8_751.sl @@ -1,1710 +1,60 @@ (set-logic LIA) -(define-fun - __node_init_PosEdge_0 ( - (PosEdge.usr.X_a_0 Bool) - (PosEdge.usr.Y_a_0 Bool) - (PosEdge.res.init_flag_a_0 Bool) - ) Bool - - (and (= PosEdge.usr.Y_a_0 false) PosEdge.res.init_flag_a_0) -) - -(define-fun - __node_trans_PosEdge_0 ( - (PosEdge.usr.X_a_1 Bool) - (PosEdge.usr.Y_a_1 Bool) - (PosEdge.res.init_flag_a_1 Bool) - (PosEdge.usr.X_a_0 Bool) - (PosEdge.usr.Y_a_0 Bool) - (PosEdge.res.init_flag_a_0 Bool) - ) Bool - - (and - (= PosEdge.usr.Y_a_1 (and PosEdge.usr.X_a_1 (not PosEdge.usr.X_a_0))) - (not PosEdge.res.init_flag_a_1)) -) - -(define-fun - __node_init_prev_no_button_0 ( - (prev_no_button.usr.ccseti_a_0 Bool) - (prev_no_button.usr.ccsetd_a_0 Bool) - (prev_no_button.usr.ccr_a_0 Bool) - (prev_no_button.usr.pnb_a_0 Bool) - (prev_no_button.res.init_flag_a_0 Bool) - (prev_no_button.res.abs_0_a_0 Bool) - ) Bool - - (and - (= prev_no_button.usr.pnb_a_0 true) - (= - prev_no_button.res.abs_0_a_0 - (and - (and - (not prev_no_button.usr.ccseti_a_0) - (not prev_no_button.usr.ccsetd_a_0)) - (not prev_no_button.usr.ccr_a_0))) - prev_no_button.res.init_flag_a_0) -) - -(define-fun - __node_trans_prev_no_button_0 ( - (prev_no_button.usr.ccseti_a_1 Bool) - (prev_no_button.usr.ccsetd_a_1 Bool) - (prev_no_button.usr.ccr_a_1 Bool) - (prev_no_button.usr.pnb_a_1 Bool) - (prev_no_button.res.init_flag_a_1 Bool) - (prev_no_button.res.abs_0_a_1 Bool) - (prev_no_button.usr.ccseti_a_0 Bool) - (prev_no_button.usr.ccsetd_a_0 Bool) - (prev_no_button.usr.ccr_a_0 Bool) - (prev_no_button.usr.pnb_a_0 Bool) - (prev_no_button.res.init_flag_a_0 Bool) - (prev_no_button.res.abs_0_a_0 Bool) - ) Bool - - (and - (= prev_no_button.usr.pnb_a_1 prev_no_button.res.abs_0_a_0) - (= - prev_no_button.res.abs_0_a_1 - (and - (and - (not prev_no_button.usr.ccseti_a_1) - (not prev_no_button.usr.ccsetd_a_1)) - (not prev_no_button.usr.ccr_a_1))) - (not prev_no_button.res.init_flag_a_1)) -) - -(define-fun - __node_init_AtLeastOnceSince_0 ( - (AtLeastOnceSince.usr.X_a_0 Bool) - (AtLeastOnceSince.usr.Y_a_0 Bool) - (AtLeastOnceSince.usr.XsinceY_a_0 Bool) - (AtLeastOnceSince.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - AtLeastOnceSince.usr.XsinceY_a_0 - (ite AtLeastOnceSince.usr.Y_a_0 AtLeastOnceSince.usr.X_a_0 true)) - AtLeastOnceSince.res.init_flag_a_0) -) - -(define-fun - __node_trans_AtLeastOnceSince_0 ( - (AtLeastOnceSince.usr.X_a_1 Bool) - (AtLeastOnceSince.usr.Y_a_1 Bool) - (AtLeastOnceSince.usr.XsinceY_a_1 Bool) - (AtLeastOnceSince.res.init_flag_a_1 Bool) - (AtLeastOnceSince.usr.X_a_0 Bool) - (AtLeastOnceSince.usr.Y_a_0 Bool) - (AtLeastOnceSince.usr.XsinceY_a_0 Bool) - (AtLeastOnceSince.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - AtLeastOnceSince.usr.XsinceY_a_1 - (ite - AtLeastOnceSince.usr.Y_a_1 - AtLeastOnceSince.usr.X_a_1 - (or AtLeastOnceSince.usr.X_a_1 AtLeastOnceSince.usr.XsinceY_a_0))) - (not AtLeastOnceSince.res.init_flag_a_1)) -) - -(define-fun - __node_init_one_button_0 ( - (one_button.usr.ccseti_a_0 Bool) - (one_button.usr.ccsetd_a_0 Bool) - (one_button.usr.ccr_a_0 Bool) - (one_button.usr.ob_a_0 Bool) - (one_button.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - one_button.usr.ob_a_0 - (or - (or - (and - (and one_button.usr.ccseti_a_0 (not one_button.usr.ccsetd_a_0)) - (not one_button.usr.ccr_a_0)) - (and - (and (not one_button.usr.ccseti_a_0) one_button.usr.ccsetd_a_0) - (not one_button.usr.ccr_a_0))) - (and - (and (not one_button.usr.ccseti_a_0) (not one_button.usr.ccsetd_a_0)) - one_button.usr.ccr_a_0))) - one_button.res.init_flag_a_0) -) - -(define-fun - __node_trans_one_button_0 ( - (one_button.usr.ccseti_a_1 Bool) - (one_button.usr.ccsetd_a_1 Bool) - (one_button.usr.ccr_a_1 Bool) - (one_button.usr.ob_a_1 Bool) - (one_button.res.init_flag_a_1 Bool) - (one_button.usr.ccseti_a_0 Bool) - (one_button.usr.ccsetd_a_0 Bool) - (one_button.usr.ccr_a_0 Bool) - (one_button.usr.ob_a_0 Bool) - (one_button.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - one_button.usr.ob_a_1 - (or - (or - (and - (and one_button.usr.ccseti_a_1 (not one_button.usr.ccsetd_a_1)) - (not one_button.usr.ccr_a_1)) - (and - (and (not one_button.usr.ccseti_a_1) one_button.usr.ccsetd_a_1) - (not one_button.usr.ccr_a_1))) - (and - (and (not one_button.usr.ccseti_a_1) (not one_button.usr.ccsetd_a_1)) - one_button.usr.ccr_a_1))) - (not one_button.res.init_flag_a_1)) -) - -(define-fun - __node_init_one_button_accept_0 ( - (one_button_accept.usr.ccseti_a_0 Bool) - (one_button_accept.usr.ccsetd_a_0 Bool) - (one_button_accept.usr.ccr_a_0 Bool) - (one_button_accept.usr.ccont_a_0 Bool) - (one_button_accept.usr.cca_a_0 Bool) - (one_button_accept.usr.oba_a_0 Bool) - (one_button_accept.res.init_flag_a_0 Bool) - (one_button_accept.res.abs_0_a_0 Bool) - (one_button_accept.res.abs_1_a_0 Bool) - (one_button_accept.res.abs_2_a_0 Bool) - (one_button_accept.res.abs_3_a_0 Bool) - (one_button_accept.res.inst_4_a_0 Bool) - (one_button_accept.res.inst_3_a_0 Bool) - (one_button_accept.res.inst_2_a_0 Bool) - (one_button_accept.res.inst_1_a_0 Bool) - (one_button_accept.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool one_button_accept.res.abs_0_a_0)) - (let - ((X2 Bool one_button_accept.res.abs_1_a_0)) - (and - (= - one_button_accept.usr.oba_a_0 - (ite - (and X1 X2) - (ite - (not one_button_accept.usr.ccr_a_0) - true - one_button_accept.res.abs_3_a_0) - false)) - (__node_init_one_button_0 - one_button_accept.usr.ccseti_a_0 - one_button_accept.usr.ccsetd_a_0 - one_button_accept.usr.ccr_a_0 - one_button_accept.res.abs_1_a_0 - one_button_accept.res.inst_4_a_0) - (__node_init_prev_no_button_0 - one_button_accept.usr.ccseti_a_0 - one_button_accept.usr.ccsetd_a_0 - one_button_accept.usr.ccr_a_0 - one_button_accept.res.abs_0_a_0 - one_button_accept.res.inst_3_a_0 - one_button_accept.res.inst_2_a_0) - (__node_init_AtLeastOnceSince_0 - one_button_accept.usr.cca_a_0 - one_button_accept.res.abs_2_a_0 - one_button_accept.res.abs_3_a_0 - one_button_accept.res.inst_1_a_0) - (__node_init_PosEdge_0 - one_button_accept.usr.ccont_a_0 - one_button_accept.res.abs_2_a_0 - one_button_accept.res.inst_0_a_0) - one_button_accept.res.init_flag_a_0))) -) - -(define-fun - __node_trans_one_button_accept_0 ( - (one_button_accept.usr.ccseti_a_1 Bool) - (one_button_accept.usr.ccsetd_a_1 Bool) - (one_button_accept.usr.ccr_a_1 Bool) - (one_button_accept.usr.ccont_a_1 Bool) - (one_button_accept.usr.cca_a_1 Bool) - (one_button_accept.usr.oba_a_1 Bool) - (one_button_accept.res.init_flag_a_1 Bool) - (one_button_accept.res.abs_0_a_1 Bool) - (one_button_accept.res.abs_1_a_1 Bool) - (one_button_accept.res.abs_2_a_1 Bool) - (one_button_accept.res.abs_3_a_1 Bool) - (one_button_accept.res.inst_4_a_1 Bool) - (one_button_accept.res.inst_3_a_1 Bool) - (one_button_accept.res.inst_2_a_1 Bool) - (one_button_accept.res.inst_1_a_1 Bool) - (one_button_accept.res.inst_0_a_1 Bool) - (one_button_accept.usr.ccseti_a_0 Bool) - (one_button_accept.usr.ccsetd_a_0 Bool) - (one_button_accept.usr.ccr_a_0 Bool) - (one_button_accept.usr.ccont_a_0 Bool) - (one_button_accept.usr.cca_a_0 Bool) - (one_button_accept.usr.oba_a_0 Bool) - (one_button_accept.res.init_flag_a_0 Bool) - (one_button_accept.res.abs_0_a_0 Bool) - (one_button_accept.res.abs_1_a_0 Bool) - (one_button_accept.res.abs_2_a_0 Bool) - (one_button_accept.res.abs_3_a_0 Bool) - (one_button_accept.res.inst_4_a_0 Bool) - (one_button_accept.res.inst_3_a_0 Bool) - (one_button_accept.res.inst_2_a_0 Bool) - (one_button_accept.res.inst_1_a_0 Bool) - (one_button_accept.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool one_button_accept.res.abs_0_a_1)) - (let - ((X2 Bool one_button_accept.res.abs_1_a_1)) - (and - (= - one_button_accept.usr.oba_a_1 - (ite - (and X1 X2) - (ite - (not one_button_accept.usr.ccr_a_1) - true - one_button_accept.res.abs_3_a_1) - false)) - (__node_trans_one_button_0 - one_button_accept.usr.ccseti_a_1 - one_button_accept.usr.ccsetd_a_1 - one_button_accept.usr.ccr_a_1 - one_button_accept.res.abs_1_a_1 - one_button_accept.res.inst_4_a_1 - one_button_accept.usr.ccseti_a_0 - one_button_accept.usr.ccsetd_a_0 - one_button_accept.usr.ccr_a_0 - one_button_accept.res.abs_1_a_0 - one_button_accept.res.inst_4_a_0) - (__node_trans_prev_no_button_0 - one_button_accept.usr.ccseti_a_1 - one_button_accept.usr.ccsetd_a_1 - one_button_accept.usr.ccr_a_1 - one_button_accept.res.abs_0_a_1 - one_button_accept.res.inst_3_a_1 - one_button_accept.res.inst_2_a_1 - one_button_accept.usr.ccseti_a_0 - one_button_accept.usr.ccsetd_a_0 - one_button_accept.usr.ccr_a_0 - one_button_accept.res.abs_0_a_0 - one_button_accept.res.inst_3_a_0 - one_button_accept.res.inst_2_a_0) - (__node_trans_AtLeastOnceSince_0 - one_button_accept.usr.cca_a_1 - one_button_accept.res.abs_2_a_1 - one_button_accept.res.abs_3_a_1 - one_button_accept.res.inst_1_a_1 - one_button_accept.usr.cca_a_0 - one_button_accept.res.abs_2_a_0 - one_button_accept.res.abs_3_a_0 - one_button_accept.res.inst_1_a_0) - (__node_trans_PosEdge_0 - one_button_accept.usr.ccont_a_1 - one_button_accept.res.abs_2_a_1 - one_button_accept.res.inst_0_a_1 - one_button_accept.usr.ccont_a_0 - one_button_accept.res.abs_2_a_0 - one_button_accept.res.inst_0_a_0) - (not one_button_accept.res.init_flag_a_1)))) -) - -(define-fun - __node_init_MoreThanTwoSec_0 ( - (MoreThanTwoSec.usr.X_a_0 Bool) - (MoreThanTwoSec.usr.Y_a_0 Bool) - (MoreThanTwoSec.res.init_flag_a_0 Bool) - (MoreThanTwoSec.res.abs_0_a_0 Bool) - ) Bool - - (and - (= MoreThanTwoSec.usr.Y_a_0 false) - (= MoreThanTwoSec.res.abs_0_a_0 false) - MoreThanTwoSec.res.init_flag_a_0) -) - -(define-fun - __node_trans_MoreThanTwoSec_0 ( - (MoreThanTwoSec.usr.X_a_1 Bool) - (MoreThanTwoSec.usr.Y_a_1 Bool) - (MoreThanTwoSec.res.init_flag_a_1 Bool) - (MoreThanTwoSec.res.abs_0_a_1 Bool) - (MoreThanTwoSec.usr.X_a_0 Bool) - (MoreThanTwoSec.usr.Y_a_0 Bool) - (MoreThanTwoSec.res.init_flag_a_0 Bool) - (MoreThanTwoSec.res.abs_0_a_0 Bool) - ) Bool - - (and - (= - MoreThanTwoSec.usr.Y_a_1 - (and MoreThanTwoSec.res.abs_0_a_0 MoreThanTwoSec.usr.X_a_1)) - (= - MoreThanTwoSec.res.abs_0_a_1 - (and MoreThanTwoSec.usr.X_a_0 MoreThanTwoSec.usr.X_a_1)) - (not MoreThanTwoSec.res.init_flag_a_1)) -) - -(define-fun - __node_init_MoreThanOneSec_0 ( - (MoreThanOneSec.usr.X_a_0 Bool) - (MoreThanOneSec.usr.Y_a_0 Bool) - (MoreThanOneSec.res.init_flag_a_0 Bool) - ) Bool - - (and (= MoreThanOneSec.usr.Y_a_0 false) MoreThanOneSec.res.init_flag_a_0) -) - -(define-fun - __node_trans_MoreThanOneSec_0 ( - (MoreThanOneSec.usr.X_a_1 Bool) - (MoreThanOneSec.usr.Y_a_1 Bool) - (MoreThanOneSec.res.init_flag_a_1 Bool) - (MoreThanOneSec.usr.X_a_0 Bool) - (MoreThanOneSec.usr.Y_a_0 Bool) - (MoreThanOneSec.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - MoreThanOneSec.usr.Y_a_1 - (and MoreThanOneSec.usr.X_a_0 MoreThanOneSec.usr.X_a_1)) - (not MoreThanOneSec.res.init_flag_a_1)) -) - -(define-fun - __node_init_cc_allowed_0 ( - (cc_allowed.usr.ccont_a_0 Bool) - (cc_allowed.usr.igsw_a_0 Bool) - (cc_allowed.usr.bpa_a_0 Bool) - (cc_allowed.usr.cccanc_a_0 Bool) - (cc_allowed.usr.battok_a_0 Bool) - (cc_allowed.usr.gearok_a_0 Bool) - (cc_allowed.usr.qfok_a_0 Bool) - (cc_allowed.usr.sdok_a_0 Bool) - (cc_allowed.usr.accok_a_0 Bool) - (cc_allowed.usr.vs_a_0 Int) - (cc_allowed.usr.ccall_a_0 Bool) - (cc_allowed.res.init_flag_a_0 Bool) - (cc_allowed.res.abs_0_a_0 Bool) - (cc_allowed.res.abs_1_a_0 Bool) - (cc_allowed.res.inst_2_a_0 Bool) - (cc_allowed.res.inst_1_a_0 Bool) - (cc_allowed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - cc_allowed.usr.ccall_a_0 - (and - (and - (and - (and - (and - (and - (and - (and - (and cc_allowed.usr.ccont_a_0 (not cc_allowed.usr.bpa_a_0)) - cc_allowed.usr.battok_a_0) - cc_allowed.usr.gearok_a_0) - cc_allowed.usr.qfok_a_0) - cc_allowed.res.abs_0_a_0) - (<= 35 cc_allowed.usr.vs_a_0)) - (<= cc_allowed.usr.vs_a_0 200)) - cc_allowed.res.abs_1_a_0) - (not cc_allowed.usr.cccanc_a_0))) - (__node_init_MoreThanOneSec_0 - cc_allowed.usr.sdok_a_0 - cc_allowed.res.abs_0_a_0 - cc_allowed.res.inst_2_a_0) - (__node_init_MoreThanTwoSec_0 - cc_allowed.usr.accok_a_0 - cc_allowed.res.abs_1_a_0 - cc_allowed.res.inst_1_a_0 - cc_allowed.res.inst_0_a_0) - cc_allowed.res.init_flag_a_0) -) - -(define-fun - __node_trans_cc_allowed_0 ( - (cc_allowed.usr.ccont_a_1 Bool) - (cc_allowed.usr.igsw_a_1 Bool) - (cc_allowed.usr.bpa_a_1 Bool) - (cc_allowed.usr.cccanc_a_1 Bool) - (cc_allowed.usr.battok_a_1 Bool) - (cc_allowed.usr.gearok_a_1 Bool) - (cc_allowed.usr.qfok_a_1 Bool) - (cc_allowed.usr.sdok_a_1 Bool) - (cc_allowed.usr.accok_a_1 Bool) - (cc_allowed.usr.vs_a_1 Int) - (cc_allowed.usr.ccall_a_1 Bool) - (cc_allowed.res.init_flag_a_1 Bool) - (cc_allowed.res.abs_0_a_1 Bool) - (cc_allowed.res.abs_1_a_1 Bool) - (cc_allowed.res.inst_2_a_1 Bool) - (cc_allowed.res.inst_1_a_1 Bool) - (cc_allowed.res.inst_0_a_1 Bool) - (cc_allowed.usr.ccont_a_0 Bool) - (cc_allowed.usr.igsw_a_0 Bool) - (cc_allowed.usr.bpa_a_0 Bool) - (cc_allowed.usr.cccanc_a_0 Bool) - (cc_allowed.usr.battok_a_0 Bool) - (cc_allowed.usr.gearok_a_0 Bool) - (cc_allowed.usr.qfok_a_0 Bool) - (cc_allowed.usr.sdok_a_0 Bool) - (cc_allowed.usr.accok_a_0 Bool) - (cc_allowed.usr.vs_a_0 Int) - (cc_allowed.usr.ccall_a_0 Bool) - (cc_allowed.res.init_flag_a_0 Bool) - (cc_allowed.res.abs_0_a_0 Bool) - (cc_allowed.res.abs_1_a_0 Bool) - (cc_allowed.res.inst_2_a_0 Bool) - (cc_allowed.res.inst_1_a_0 Bool) - (cc_allowed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - cc_allowed.usr.ccall_a_1 - (and - (and - (and - (and - (and - (and - (and - (and - (and cc_allowed.usr.ccont_a_1 (not cc_allowed.usr.bpa_a_1)) - cc_allowed.usr.battok_a_1) - cc_allowed.usr.gearok_a_1) - cc_allowed.usr.qfok_a_1) - cc_allowed.res.abs_0_a_1) - (<= 35 cc_allowed.usr.vs_a_1)) - (<= cc_allowed.usr.vs_a_1 200)) - cc_allowed.res.abs_1_a_1) - (not cc_allowed.usr.cccanc_a_1))) - (__node_trans_MoreThanOneSec_0 - cc_allowed.usr.sdok_a_1 - cc_allowed.res.abs_0_a_1 - cc_allowed.res.inst_2_a_1 - cc_allowed.usr.sdok_a_0 - cc_allowed.res.abs_0_a_0 - cc_allowed.res.inst_2_a_0) - (__node_trans_MoreThanTwoSec_0 - cc_allowed.usr.accok_a_1 - cc_allowed.res.abs_1_a_1 - cc_allowed.res.inst_1_a_1 - cc_allowed.res.inst_0_a_1 - cc_allowed.usr.accok_a_0 - cc_allowed.res.abs_1_a_0 - cc_allowed.res.inst_1_a_0 - cc_allowed.res.inst_0_a_0) - (not cc_allowed.res.init_flag_a_1)) -) - -(define-fun - __node_init_Edge_0 ( - (Edge.usr.X_a_0 Bool) - (Edge.usr.Y_a_0 Bool) - (Edge.res.init_flag_a_0 Bool) - ) Bool - - (and (= Edge.usr.Y_a_0 false) Edge.res.init_flag_a_0) -) - -(define-fun - __node_trans_Edge_0 ( - (Edge.usr.X_a_1 Bool) - (Edge.usr.Y_a_1 Bool) - (Edge.res.init_flag_a_1 Bool) - (Edge.usr.X_a_0 Bool) - (Edge.usr.Y_a_0 Bool) - (Edge.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - Edge.usr.Y_a_1 - (and - (and (and Edge.usr.X_a_1 (not Edge.usr.X_a_0)) (not Edge.usr.X_a_1)) - Edge.usr.X_a_0)) - (not Edge.res.init_flag_a_1)) -) - -(define-fun - __node_init_main_0 ( - (main.usr.igsw_a_0 Bool) - (main.usr.ccd_a_0 Bool) - (main.usr.cconoff_a_0 Bool) - (main.usr.bpa_a_0 Bool) - (main.usr.cccanc_a_0 Bool) - (main.usr.battok_a_0 Bool) - (main.usr.gearok_a_0 Bool) - (main.usr.qfok_a_0 Bool) - (main.usr.sdok_a_0 Bool) - (main.usr.accok_a_0 Bool) - (main.usr.ccseti_a_0 Bool) - (main.usr.ccsetd_a_0 Bool) - (main.usr.ccr_a_0 Bool) - (main.usr.vs_a_0 Int) - (main.res.nondet_0 Bool) - (main.usr.ccont_a_0 Bool) - (main.usr.cca_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Bool) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Bool) - (main.res.inst_17_a_0 Bool) - (main.res.inst_16_a_0 Bool) - (main.res.inst_15_a_0 Bool) - (main.res.inst_14_a_0 Bool) - (main.res.inst_13_a_0 Bool) - (main.res.inst_12_a_0 Bool) - (main.res.inst_11_a_0 Bool) - (main.res.inst_10_a_0 Bool) - (main.res.inst_9_a_0 Bool) - (main.res.inst_8_a_0 Bool) - (main.res.inst_7_a_0 Bool) - (main.res.inst_6_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Bool) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Bool) - (main.res.inst_0_a_0 Bool) - ) Bool - - (and - (= main.usr.ccont_a_0 false) - (= main.res.abs_2_a_0 (not main.usr.ccont_a_0)) - (= main.usr.cca_a_0 false) - (let - ((X1 Bool main.res.abs_3_a_0)) - (and - (= main.res.abs_4_a_0 (let ((X2 Bool main.res.nondet_0)) X2)) - (__node_init_Edge_0 main.usr.igsw_a_0 main.res.abs_0_a_0 main.res.inst_17_a_0) - (__node_init_PosEdge_0 - main.usr.cconoff_a_0 - main.res.abs_1_a_0 - main.res.inst_16_a_0) - (__node_init_cc_allowed_0 - main.usr.ccont_a_0 - main.usr.igsw_a_0 - main.usr.bpa_a_0 - main.usr.cccanc_a_0 - main.usr.battok_a_0 - main.usr.gearok_a_0 - main.usr.qfok_a_0 - main.usr.sdok_a_0 - main.usr.accok_a_0 - main.usr.vs_a_0 - main.res.abs_3_a_0 - main.res.inst_15_a_0 - main.res.inst_14_a_0 - main.res.inst_13_a_0 - main.res.inst_12_a_0 - main.res.inst_11_a_0 - main.res.inst_10_a_0) - (__node_init_one_button_accept_0 - main.usr.ccseti_a_0 - main.usr.ccsetd_a_0 - main.usr.ccr_a_0 - main.usr.ccont_a_0 - main.res.abs_4_a_0 - main.res.abs_5_a_0 - main.res.inst_9_a_0 - main.res.inst_8_a_0 - main.res.inst_7_a_0 - main.res.inst_6_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0 - main.res.inst_3_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0 - main.res.inst_0_a_0) - main.res.init_flag_a_0))) -) - -(define-fun - __node_trans_main_0 ( - (main.usr.igsw_a_1 Bool) - (main.usr.ccd_a_1 Bool) - (main.usr.cconoff_a_1 Bool) - (main.usr.bpa_a_1 Bool) - (main.usr.cccanc_a_1 Bool) - (main.usr.battok_a_1 Bool) - (main.usr.gearok_a_1 Bool) - (main.usr.qfok_a_1 Bool) - (main.usr.sdok_a_1 Bool) - (main.usr.accok_a_1 Bool) - (main.usr.ccseti_a_1 Bool) - (main.usr.ccsetd_a_1 Bool) - (main.usr.ccr_a_1 Bool) - (main.usr.vs_a_1 Int) - (main.res.nondet_0 Bool) - (main.usr.ccont_a_1 Bool) - (main.usr.cca_a_1 Bool) - (main.res.init_flag_a_1 Bool) - (main.res.abs_0_a_1 Bool) - (main.res.abs_1_a_1 Bool) - (main.res.abs_2_a_1 Bool) - (main.res.abs_3_a_1 Bool) - (main.res.abs_4_a_1 Bool) - (main.res.abs_5_a_1 Bool) - (main.res.inst_17_a_1 Bool) - (main.res.inst_16_a_1 Bool) - (main.res.inst_15_a_1 Bool) - (main.res.inst_14_a_1 Bool) - (main.res.inst_13_a_1 Bool) - (main.res.inst_12_a_1 Bool) - (main.res.inst_11_a_1 Bool) - (main.res.inst_10_a_1 Bool) - (main.res.inst_9_a_1 Bool) - (main.res.inst_8_a_1 Bool) - (main.res.inst_7_a_1 Bool) - (main.res.inst_6_a_1 Bool) - (main.res.inst_5_a_1 Bool) - (main.res.inst_4_a_1 Bool) - (main.res.inst_3_a_1 Bool) - (main.res.inst_2_a_1 Bool) - (main.res.inst_1_a_1 Bool) - (main.res.inst_0_a_1 Bool) - (main.usr.igsw_a_0 Bool) - (main.usr.ccd_a_0 Bool) - (main.usr.cconoff_a_0 Bool) - (main.usr.bpa_a_0 Bool) - (main.usr.cccanc_a_0 Bool) - (main.usr.battok_a_0 Bool) - (main.usr.gearok_a_0 Bool) - (main.usr.qfok_a_0 Bool) - (main.usr.sdok_a_0 Bool) - (main.usr.accok_a_0 Bool) - (main.usr.ccseti_a_0 Bool) - (main.usr.ccsetd_a_0 Bool) - (main.usr.ccr_a_0 Bool) - (main.usr.vs_a_0 Int) - (main.usr.ccont_a_0 Bool) - (main.usr.cca_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Bool) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Bool) - (main.res.inst_17_a_0 Bool) - (main.res.inst_16_a_0 Bool) - (main.res.inst_15_a_0 Bool) - (main.res.inst_14_a_0 Bool) - (main.res.inst_13_a_0 Bool) - (main.res.inst_12_a_0 Bool) - (main.res.inst_11_a_0 Bool) - (main.res.inst_10_a_0 Bool) - (main.res.inst_9_a_0 Bool) - (main.res.inst_8_a_0 Bool) - (main.res.inst_7_a_0 Bool) - (main.res.inst_6_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Bool) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Bool) - (main.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - main.usr.ccont_a_1 - (ite - (or - (or main.res.abs_0_a_1 main.usr.ccd_a_1) - (and main.usr.ccont_a_0 main.res.abs_1_a_1)) - false - (ite (and main.res.abs_2_a_0 main.res.abs_1_a_1) true main.usr.ccont_a_0))) - (= main.res.abs_2_a_1 (not main.usr.ccont_a_1)) - (= main.res.abs_4_a_1 main.usr.cca_a_0) - (let - ((X1 Bool main.res.abs_3_a_1)) - (and - (= - main.usr.cca_a_1 - (ite - (and main.res.abs_5_a_1 X1) - true - (ite (not X1) false main.usr.cca_a_0))) - (__node_trans_Edge_0 - main.usr.igsw_a_1 - main.res.abs_0_a_1 - main.res.inst_17_a_1 - main.usr.igsw_a_0 - main.res.abs_0_a_0 - main.res.inst_17_a_0) - (__node_trans_PosEdge_0 - main.usr.cconoff_a_1 - main.res.abs_1_a_1 - main.res.inst_16_a_1 - main.usr.cconoff_a_0 - main.res.abs_1_a_0 - main.res.inst_16_a_0) - (__node_trans_cc_allowed_0 - main.usr.ccont_a_1 - main.usr.igsw_a_1 - main.usr.bpa_a_1 - main.usr.cccanc_a_1 - main.usr.battok_a_1 - main.usr.gearok_a_1 - main.usr.qfok_a_1 - main.usr.sdok_a_1 - main.usr.accok_a_1 - main.usr.vs_a_1 - main.res.abs_3_a_1 - main.res.inst_15_a_1 - main.res.inst_14_a_1 - main.res.inst_13_a_1 - main.res.inst_12_a_1 - main.res.inst_11_a_1 - main.res.inst_10_a_1 - main.usr.ccont_a_0 - main.usr.igsw_a_0 - main.usr.bpa_a_0 - main.usr.cccanc_a_0 - main.usr.battok_a_0 - main.usr.gearok_a_0 - main.usr.qfok_a_0 - main.usr.sdok_a_0 - main.usr.accok_a_0 - main.usr.vs_a_0 - main.res.abs_3_a_0 - main.res.inst_15_a_0 - main.res.inst_14_a_0 - main.res.inst_13_a_0 - main.res.inst_12_a_0 - main.res.inst_11_a_0 - main.res.inst_10_a_0) - (__node_trans_one_button_accept_0 - main.usr.ccseti_a_1 - main.usr.ccsetd_a_1 - main.usr.ccr_a_1 - main.usr.ccont_a_1 - main.res.abs_4_a_1 - main.res.abs_5_a_1 - main.res.inst_9_a_1 - main.res.inst_8_a_1 - main.res.inst_7_a_1 - main.res.inst_6_a_1 - main.res.inst_5_a_1 - main.res.inst_4_a_1 - main.res.inst_3_a_1 - main.res.inst_2_a_1 - main.res.inst_1_a_1 - main.res.inst_0_a_1 - main.usr.ccseti_a_0 - main.usr.ccsetd_a_0 - main.usr.ccr_a_0 - main.usr.ccont_a_0 - main.res.abs_4_a_0 - main.res.abs_5_a_0 - main.res.inst_9_a_0 - main.res.inst_8_a_0 - main.res.inst_7_a_0 - main.res.inst_6_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0 - main.res.inst_3_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0 - main.res.inst_0_a_0) - (not main.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.igsw_a_0 Bool) - (top.usr.ccd_a_0 Bool) - (top.usr.cconoff_a_0 Bool) - (top.usr.bpa_a_0 Bool) - (top.usr.cccanc_a_0 Bool) - (top.usr.battok_a_0 Bool) - (top.usr.gearok_a_0 Bool) - (top.usr.qfok_a_0 Bool) - (top.usr.sdok_a_0 Bool) - (top.usr.accok_a_0 Bool) - (top.usr.ccseti_a_0 Bool) - (top.usr.ccsetd_a_0 Bool) - (top.usr.ccr_a_0 Bool) - (top.usr.vs_a_0 Int) - (top.res.nondet_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.cca_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Bool) - (top.res.inst_23_a_0 Bool) - (top.res.inst_22_a_0 Bool) - (top.res.inst_21_a_0 Bool) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.usr.OK_a_0 - (ite - top.res.abs_2_a_0 - (or (or top.res.abs_3_a_0 top.res.abs_4_a_0) top.res.abs_5_a_0) - true)) - (= top.impl.usr.cca_a_0 top.res.abs_1_a_0) - (__node_init_PosEdge_0 - top.impl.usr.cca_a_0 - top.res.abs_2_a_0 - top.res.inst_28_a_0) - (__node_init_main_0 - top.usr.igsw_a_0 - top.usr.ccd_a_0 - top.usr.cconoff_a_0 - top.usr.bpa_a_0 - top.usr.cccanc_a_0 - top.usr.battok_a_0 - top.usr.gearok_a_0 - top.usr.qfok_a_0 - top.usr.sdok_a_0 - top.usr.accok_a_0 - top.usr.ccseti_a_0 - top.usr.ccsetd_a_0 - top.usr.ccr_a_0 - top.usr.vs_a_0 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_27_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_PosEdge_0 top.usr.ccseti_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) - (__node_init_PosEdge_0 top.usr.ccsetd_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) - (__node_init_PosEdge_0 top.usr.ccr_a_0 top.res.abs_5_a_0 top.res.inst_0_a_0) - top.res.init_flag_a_0) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.igsw_a_1 Bool) - (top.usr.ccd_a_1 Bool) - (top.usr.cconoff_a_1 Bool) - (top.usr.bpa_a_1 Bool) - (top.usr.cccanc_a_1 Bool) - (top.usr.battok_a_1 Bool) - (top.usr.gearok_a_1 Bool) - (top.usr.qfok_a_1 Bool) - (top.usr.sdok_a_1 Bool) - (top.usr.accok_a_1 Bool) - (top.usr.ccseti_a_1 Bool) - (top.usr.ccsetd_a_1 Bool) - (top.usr.ccr_a_1 Bool) - (top.usr.vs_a_1 Int) - (top.res.nondet_0 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.cca_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.inst_28_a_1 Bool) - (top.res.inst_27_a_1 Bool) - (top.res.inst_26_a_1 Bool) - (top.res.inst_25_a_1 Bool) - (top.res.inst_24_a_1 Bool) - (top.res.inst_23_a_1 Bool) - (top.res.inst_22_a_1 Bool) - (top.res.inst_21_a_1 Bool) - (top.res.inst_20_a_1 Bool) - (top.res.inst_19_a_1 Bool) - (top.res.inst_18_a_1 Bool) - (top.res.inst_17_a_1 Bool) - (top.res.inst_16_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Bool) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Bool) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Bool) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.igsw_a_0 Bool) - (top.usr.ccd_a_0 Bool) - (top.usr.cconoff_a_0 Bool) - (top.usr.bpa_a_0 Bool) - (top.usr.cccanc_a_0 Bool) - (top.usr.battok_a_0 Bool) - (top.usr.gearok_a_0 Bool) - (top.usr.qfok_a_0 Bool) - (top.usr.sdok_a_0 Bool) - (top.usr.accok_a_0 Bool) - (top.usr.ccseti_a_0 Bool) - (top.usr.ccsetd_a_0 Bool) - (top.usr.ccr_a_0 Bool) - (top.usr.vs_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.cca_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Bool) - (top.res.inst_23_a_0 Bool) - (top.res.inst_22_a_0 Bool) - (top.res.inst_21_a_0 Bool) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.cca_a_1 top.res.abs_1_a_1) - (= - top.usr.OK_a_1 - (ite - top.res.abs_2_a_1 - (or (or top.res.abs_3_a_1 top.res.abs_4_a_1) top.res.abs_5_a_1) - true)) - (__node_trans_PosEdge_0 - top.impl.usr.cca_a_1 - top.res.abs_2_a_1 - top.res.inst_28_a_1 - top.impl.usr.cca_a_0 - top.res.abs_2_a_0 - top.res.inst_28_a_0) - (__node_trans_main_0 - top.usr.igsw_a_1 - top.usr.ccd_a_1 - top.usr.cconoff_a_1 - top.usr.bpa_a_1 - top.usr.cccanc_a_1 - top.usr.battok_a_1 - top.usr.gearok_a_1 - top.usr.qfok_a_1 - top.usr.sdok_a_1 - top.usr.accok_a_1 - top.usr.ccseti_a_1 - top.usr.ccsetd_a_1 - top.usr.ccr_a_1 - top.usr.vs_a_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.inst_27_a_1 - top.res.inst_26_a_1 - top.res.inst_25_a_1 - top.res.inst_24_a_1 - top.res.inst_23_a_1 - top.res.inst_22_a_1 - top.res.inst_21_a_1 - top.res.inst_20_a_1 - top.res.inst_19_a_1 - top.res.inst_18_a_1 - top.res.inst_17_a_1 - top.res.inst_16_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.usr.igsw_a_0 - top.usr.ccd_a_0 - top.usr.cconoff_a_0 - top.usr.bpa_a_0 - top.usr.cccanc_a_0 - top.usr.battok_a_0 - top.usr.gearok_a_0 - top.usr.qfok_a_0 - top.usr.sdok_a_0 - top.usr.accok_a_0 - top.usr.ccseti_a_0 - top.usr.ccsetd_a_0 - top.usr.ccr_a_0 - top.usr.vs_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_27_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_PosEdge_0 - top.usr.ccseti_a_1 - top.res.abs_3_a_1 - top.res.inst_2_a_1 - top.usr.ccseti_a_0 - top.res.abs_3_a_0 - top.res.inst_2_a_0) - (__node_trans_PosEdge_0 - top.usr.ccsetd_a_1 - top.res.abs_4_a_1 - top.res.inst_1_a_1 - top.usr.ccsetd_a_0 - top.res.abs_4_a_0 - top.res.inst_1_a_0) - (__node_trans_PosEdge_0 - top.usr.ccr_a_1 - top.res.abs_5_a_1 - top.res.inst_0_a_1 - top.usr.ccr_a_0 - top.res.abs_5_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)) -) - - - -(synth-inv str_invariant( - (top.usr.igsw Bool) - (top.usr.ccd Bool) - (top.usr.cconoff Bool) - (top.usr.bpa Bool) - (top.usr.cccanc Bool) - (top.usr.battok Bool) - (top.usr.gearok Bool) - (top.usr.qfok Bool) - (top.usr.sdok Bool) - (top.usr.accok Bool) - (top.usr.ccseti Bool) - (top.usr.ccsetd Bool) - (top.usr.ccr Bool) - (top.usr.vs Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.cca Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_0 () Bool) - -(declare-primed-var top.usr.igsw Bool) -(declare-primed-var top.usr.ccd Bool) -(declare-primed-var top.usr.cconoff Bool) -(declare-primed-var top.usr.bpa Bool) -(declare-primed-var top.usr.cccanc Bool) -(declare-primed-var top.usr.battok Bool) -(declare-primed-var top.usr.gearok Bool) -(declare-primed-var top.usr.qfok Bool) -(declare-primed-var top.usr.sdok Bool) -(declare-primed-var top.usr.accok Bool) -(declare-primed-var top.usr.ccseti Bool) -(declare-primed-var top.usr.ccsetd Bool) -(declare-primed-var top.usr.ccr Bool) -(declare-primed-var top.usr.vs Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.cca Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.inst_28 Bool) -(declare-primed-var top.res.inst_27 Bool) -(declare-primed-var top.res.inst_26 Bool) -(declare-primed-var top.res.inst_25 Bool) -(declare-primed-var top.res.inst_24 Bool) -(declare-primed-var top.res.inst_23 Bool) -(declare-primed-var top.res.inst_22 Bool) -(declare-primed-var top.res.inst_21 Bool) -(declare-primed-var top.res.inst_20 Bool) -(declare-primed-var top.res.inst_19 Bool) -(declare-primed-var top.res.inst_18 Bool) -(declare-primed-var top.res.inst_17 Bool) -(declare-primed-var top.res.inst_16 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Bool) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Bool) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Bool) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.igsw Bool) - (top.usr.ccd Bool) - (top.usr.cconoff Bool) - (top.usr.bpa Bool) - (top.usr.cccanc Bool) - (top.usr.battok Bool) - (top.usr.gearok Bool) - (top.usr.qfok Bool) - (top.usr.sdok Bool) - (top.usr.accok Bool) - (top.usr.ccseti Bool) - (top.usr.ccsetd Bool) - (top.usr.ccr Bool) - (top.usr.vs Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.cca Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.usr.OK - (ite - top.res.abs_2 - (or (or top.res.abs_3 top.res.abs_4) top.res.abs_5) - true)) - (= top.impl.usr.cca top.res.abs_1) - (__node_init_PosEdge_0 top.impl.usr.cca top.res.abs_2 top.res.inst_28) - (__node_init_main_0 - top.usr.igsw - top.usr.ccd - top.usr.cconoff - top.usr.bpa - top.usr.cccanc - top.usr.battok - top.usr.gearok - top.usr.qfok - top.usr.sdok - top.usr.accok - top.usr.ccseti - top.usr.ccsetd - top.usr.ccr - top.usr.vs - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.inst_27 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_PosEdge_0 top.usr.ccseti top.res.abs_3 top.res.inst_2) - (__node_init_PosEdge_0 top.usr.ccsetd top.res.abs_4 top.res.inst_1) - (__node_init_PosEdge_0 top.usr.ccr top.res.abs_5 top.res.inst_0) - top.res.init_flag) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.igsw Bool) - (top.usr.ccd Bool) - (top.usr.cconoff Bool) - (top.usr.bpa Bool) - (top.usr.cccanc Bool) - (top.usr.battok Bool) - (top.usr.gearok Bool) - (top.usr.qfok Bool) - (top.usr.sdok Bool) - (top.usr.accok Bool) - (top.usr.ccseti Bool) - (top.usr.ccsetd Bool) - (top.usr.ccr Bool) - (top.usr.vs Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.cca Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.igsw! Bool) - (top.usr.ccd! Bool) - (top.usr.cconoff! Bool) - (top.usr.bpa! Bool) - (top.usr.cccanc! Bool) - (top.usr.battok! Bool) - (top.usr.gearok! Bool) - (top.usr.qfok! Bool) - (top.usr.sdok! Bool) - (top.usr.accok! Bool) - (top.usr.ccseti! Bool) - (top.usr.ccsetd! Bool) - (top.usr.ccr! Bool) - (top.usr.vs! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.cca! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.inst_28! Bool) - (top.res.inst_27! Bool) - (top.res.inst_26! Bool) - (top.res.inst_25! Bool) - (top.res.inst_24! Bool) - (top.res.inst_23! Bool) - (top.res.inst_22! Bool) - (top.res.inst_21! Bool) - (top.res.inst_20! Bool) - (top.res.inst_19! Bool) - (top.res.inst_18! Bool) - (top.res.inst_17! Bool) - (top.res.inst_16! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Bool) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Bool) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Bool) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.impl.usr.cca! top.res.abs_1!) - (= - top.usr.OK! - (ite - top.res.abs_2! - (or (or top.res.abs_3! top.res.abs_4!) top.res.abs_5!) - true)) - (__node_trans_PosEdge_0 - top.impl.usr.cca! - top.res.abs_2! - top.res.inst_28! - top.impl.usr.cca - top.res.abs_2 - top.res.inst_28) - (__node_trans_main_0 - top.usr.igsw! - top.usr.ccd! - top.usr.cconoff! - top.usr.bpa! - top.usr.cccanc! - top.usr.battok! - top.usr.gearok! - top.usr.qfok! - top.usr.sdok! - top.usr.accok! - top.usr.ccseti! - top.usr.ccsetd! - top.usr.ccr! - top.usr.vs! - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.inst_27! - top.res.inst_26! - top.res.inst_25! - top.res.inst_24! - top.res.inst_23! - top.res.inst_22! - top.res.inst_21! - top.res.inst_20! - top.res.inst_19! - top.res.inst_18! - top.res.inst_17! - top.res.inst_16! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.usr.igsw - top.usr.ccd - top.usr.cconoff - top.usr.bpa - top.usr.cccanc - top.usr.battok - top.usr.gearok - top.usr.qfok - top.usr.sdok - top.usr.accok - top.usr.ccseti - top.usr.ccsetd - top.usr.ccr - top.usr.vs - top.res.abs_0 - top.res.abs_1 - top.res.inst_27 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_PosEdge_0 - top.usr.ccseti! - top.res.abs_3! - top.res.inst_2! - top.usr.ccseti - top.res.abs_3 - top.res.inst_2) - (__node_trans_PosEdge_0 - top.usr.ccsetd! - top.res.abs_4! - top.res.inst_1! - top.usr.ccsetd - top.res.abs_4 - top.res.inst_1) - (__node_trans_PosEdge_0 - top.usr.ccr! - top.res.abs_5! - top.res.inst_0! - top.usr.ccr - top.res.abs_5 - top.res.inst_0) - (not top.res.init_flag!)) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.igsw Bool) - (top.usr.ccd Bool) - (top.usr.cconoff Bool) - (top.usr.bpa Bool) - (top.usr.cccanc Bool) - (top.usr.battok Bool) - (top.usr.gearok Bool) - (top.usr.qfok Bool) - (top.usr.sdok Bool) - (top.usr.accok Bool) - (top.usr.ccseti Bool) - (top.usr.ccsetd Bool) - (top.usr.ccr Bool) - (top.usr.vs Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.cca Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_PosEdge_0 ((PosEdge.usr.X_a_0 Bool) (PosEdge.usr.Y_a_0 Bool) (PosEdge.res.init_flag_a_0 Bool)) Bool + (and (= PosEdge.usr.Y_a_0 false) PosEdge.res.init_flag_a_0)) +(define-fun __node_trans_PosEdge_0 ((PosEdge.usr.X_a_1 Bool) (PosEdge.usr.Y_a_1 Bool) (PosEdge.res.init_flag_a_1 Bool) (PosEdge.usr.X_a_0 Bool) (PosEdge.usr.Y_a_0 Bool) (PosEdge.res.init_flag_a_0 Bool)) Bool + (and (= PosEdge.usr.Y_a_1 (and PosEdge.usr.X_a_1 (not PosEdge.usr.X_a_0))) (not PosEdge.res.init_flag_a_1))) +(define-fun __node_init_prev_no_button_0 ((prev_no_button.usr.ccseti_a_0 Bool) (prev_no_button.usr.ccsetd_a_0 Bool) (prev_no_button.usr.ccr_a_0 Bool) (prev_no_button.usr.pnb_a_0 Bool) (prev_no_button.res.init_flag_a_0 Bool) (prev_no_button.res.abs_0_a_0 Bool)) Bool + (and (= prev_no_button.usr.pnb_a_0 true) (= prev_no_button.res.abs_0_a_0 (and (and (not prev_no_button.usr.ccseti_a_0) (not prev_no_button.usr.ccsetd_a_0)) (not prev_no_button.usr.ccr_a_0))) prev_no_button.res.init_flag_a_0)) +(define-fun __node_trans_prev_no_button_0 ((prev_no_button.usr.ccseti_a_1 Bool) (prev_no_button.usr.ccsetd_a_1 Bool) (prev_no_button.usr.ccr_a_1 Bool) (prev_no_button.usr.pnb_a_1 Bool) (prev_no_button.res.init_flag_a_1 Bool) (prev_no_button.res.abs_0_a_1 Bool) (prev_no_button.usr.ccseti_a_0 Bool) (prev_no_button.usr.ccsetd_a_0 Bool) (prev_no_button.usr.ccr_a_0 Bool) (prev_no_button.usr.pnb_a_0 Bool) (prev_no_button.res.init_flag_a_0 Bool) (prev_no_button.res.abs_0_a_0 Bool)) Bool + (and (= prev_no_button.usr.pnb_a_1 prev_no_button.res.abs_0_a_0) (= prev_no_button.res.abs_0_a_1 (and (and (not prev_no_button.usr.ccseti_a_1) (not prev_no_button.usr.ccsetd_a_1)) (not prev_no_button.usr.ccr_a_1))) (not prev_no_button.res.init_flag_a_1))) +(define-fun __node_init_AtLeastOnceSince_0 ((AtLeastOnceSince.usr.X_a_0 Bool) (AtLeastOnceSince.usr.Y_a_0 Bool) (AtLeastOnceSince.usr.XsinceY_a_0 Bool) (AtLeastOnceSince.res.init_flag_a_0 Bool)) Bool + (and (= AtLeastOnceSince.usr.XsinceY_a_0 (ite AtLeastOnceSince.usr.Y_a_0 AtLeastOnceSince.usr.X_a_0 true)) AtLeastOnceSince.res.init_flag_a_0)) +(define-fun __node_trans_AtLeastOnceSince_0 ((AtLeastOnceSince.usr.X_a_1 Bool) (AtLeastOnceSince.usr.Y_a_1 Bool) (AtLeastOnceSince.usr.XsinceY_a_1 Bool) (AtLeastOnceSince.res.init_flag_a_1 Bool) (AtLeastOnceSince.usr.X_a_0 Bool) (AtLeastOnceSince.usr.Y_a_0 Bool) (AtLeastOnceSince.usr.XsinceY_a_0 Bool) (AtLeastOnceSince.res.init_flag_a_0 Bool)) Bool + (and (= AtLeastOnceSince.usr.XsinceY_a_1 (ite AtLeastOnceSince.usr.Y_a_1 AtLeastOnceSince.usr.X_a_1 (or AtLeastOnceSince.usr.X_a_1 AtLeastOnceSince.usr.XsinceY_a_0))) (not AtLeastOnceSince.res.init_flag_a_1))) +(define-fun __node_init_one_button_0 ((one_button.usr.ccseti_a_0 Bool) (one_button.usr.ccsetd_a_0 Bool) (one_button.usr.ccr_a_0 Bool) (one_button.usr.ob_a_0 Bool) (one_button.res.init_flag_a_0 Bool)) Bool + (and (= one_button.usr.ob_a_0 (or (or (and (and one_button.usr.ccseti_a_0 (not one_button.usr.ccsetd_a_0)) (not one_button.usr.ccr_a_0)) (and (and (not one_button.usr.ccseti_a_0) one_button.usr.ccsetd_a_0) (not one_button.usr.ccr_a_0))) (and (and (not one_button.usr.ccseti_a_0) (not one_button.usr.ccsetd_a_0)) one_button.usr.ccr_a_0))) one_button.res.init_flag_a_0)) +(define-fun __node_trans_one_button_0 ((one_button.usr.ccseti_a_1 Bool) (one_button.usr.ccsetd_a_1 Bool) (one_button.usr.ccr_a_1 Bool) (one_button.usr.ob_a_1 Bool) (one_button.res.init_flag_a_1 Bool) (one_button.usr.ccseti_a_0 Bool) (one_button.usr.ccsetd_a_0 Bool) (one_button.usr.ccr_a_0 Bool) (one_button.usr.ob_a_0 Bool) (one_button.res.init_flag_a_0 Bool)) Bool + (and (= one_button.usr.ob_a_1 (or (or (and (and one_button.usr.ccseti_a_1 (not one_button.usr.ccsetd_a_1)) (not one_button.usr.ccr_a_1)) (and (and (not one_button.usr.ccseti_a_1) one_button.usr.ccsetd_a_1) (not one_button.usr.ccr_a_1))) (and (and (not one_button.usr.ccseti_a_1) (not one_button.usr.ccsetd_a_1)) one_button.usr.ccr_a_1))) (not one_button.res.init_flag_a_1))) +(define-fun __node_init_one_button_accept_0 ((one_button_accept.usr.ccseti_a_0 Bool) (one_button_accept.usr.ccsetd_a_0 Bool) (one_button_accept.usr.ccr_a_0 Bool) (one_button_accept.usr.ccont_a_0 Bool) (one_button_accept.usr.cca_a_0 Bool) (one_button_accept.usr.oba_a_0 Bool) (one_button_accept.res.init_flag_a_0 Bool) (one_button_accept.res.abs_0_a_0 Bool) (one_button_accept.res.abs_1_a_0 Bool) (one_button_accept.res.abs_2_a_0 Bool) (one_button_accept.res.abs_3_a_0 Bool) (one_button_accept.res.inst_4_a_0 Bool) (one_button_accept.res.inst_3_a_0 Bool) (one_button_accept.res.inst_2_a_0 Bool) (one_button_accept.res.inst_1_a_0 Bool) (one_button_accept.res.inst_0_a_0 Bool)) Bool + (let ((X1 one_button_accept.res.abs_0_a_0)) (let ((X2 one_button_accept.res.abs_1_a_0)) (and (= one_button_accept.usr.oba_a_0 (ite (and X1 X2) (ite (not one_button_accept.usr.ccr_a_0) true one_button_accept.res.abs_3_a_0) false)) (__node_init_one_button_0 one_button_accept.usr.ccseti_a_0 one_button_accept.usr.ccsetd_a_0 one_button_accept.usr.ccr_a_0 one_button_accept.res.abs_1_a_0 one_button_accept.res.inst_4_a_0) (__node_init_prev_no_button_0 one_button_accept.usr.ccseti_a_0 one_button_accept.usr.ccsetd_a_0 one_button_accept.usr.ccr_a_0 one_button_accept.res.abs_0_a_0 one_button_accept.res.inst_3_a_0 one_button_accept.res.inst_2_a_0) (__node_init_AtLeastOnceSince_0 one_button_accept.usr.cca_a_0 one_button_accept.res.abs_2_a_0 one_button_accept.res.abs_3_a_0 one_button_accept.res.inst_1_a_0) (__node_init_PosEdge_0 one_button_accept.usr.ccont_a_0 one_button_accept.res.abs_2_a_0 one_button_accept.res.inst_0_a_0) one_button_accept.res.init_flag_a_0)))) +(define-fun __node_trans_one_button_accept_0 ((one_button_accept.usr.ccseti_a_1 Bool) (one_button_accept.usr.ccsetd_a_1 Bool) (one_button_accept.usr.ccr_a_1 Bool) (one_button_accept.usr.ccont_a_1 Bool) (one_button_accept.usr.cca_a_1 Bool) (one_button_accept.usr.oba_a_1 Bool) (one_button_accept.res.init_flag_a_1 Bool) (one_button_accept.res.abs_0_a_1 Bool) (one_button_accept.res.abs_1_a_1 Bool) (one_button_accept.res.abs_2_a_1 Bool) (one_button_accept.res.abs_3_a_1 Bool) (one_button_accept.res.inst_4_a_1 Bool) (one_button_accept.res.inst_3_a_1 Bool) (one_button_accept.res.inst_2_a_1 Bool) (one_button_accept.res.inst_1_a_1 Bool) (one_button_accept.res.inst_0_a_1 Bool) (one_button_accept.usr.ccseti_a_0 Bool) (one_button_accept.usr.ccsetd_a_0 Bool) (one_button_accept.usr.ccr_a_0 Bool) (one_button_accept.usr.ccont_a_0 Bool) (one_button_accept.usr.cca_a_0 Bool) (one_button_accept.usr.oba_a_0 Bool) (one_button_accept.res.init_flag_a_0 Bool) (one_button_accept.res.abs_0_a_0 Bool) (one_button_accept.res.abs_1_a_0 Bool) (one_button_accept.res.abs_2_a_0 Bool) (one_button_accept.res.abs_3_a_0 Bool) (one_button_accept.res.inst_4_a_0 Bool) (one_button_accept.res.inst_3_a_0 Bool) (one_button_accept.res.inst_2_a_0 Bool) (one_button_accept.res.inst_1_a_0 Bool) (one_button_accept.res.inst_0_a_0 Bool)) Bool + (let ((X1 one_button_accept.res.abs_0_a_1)) (let ((X2 one_button_accept.res.abs_1_a_1)) (and (= one_button_accept.usr.oba_a_1 (ite (and X1 X2) (ite (not one_button_accept.usr.ccr_a_1) true one_button_accept.res.abs_3_a_1) false)) (__node_trans_one_button_0 one_button_accept.usr.ccseti_a_1 one_button_accept.usr.ccsetd_a_1 one_button_accept.usr.ccr_a_1 one_button_accept.res.abs_1_a_1 one_button_accept.res.inst_4_a_1 one_button_accept.usr.ccseti_a_0 one_button_accept.usr.ccsetd_a_0 one_button_accept.usr.ccr_a_0 one_button_accept.res.abs_1_a_0 one_button_accept.res.inst_4_a_0) (__node_trans_prev_no_button_0 one_button_accept.usr.ccseti_a_1 one_button_accept.usr.ccsetd_a_1 one_button_accept.usr.ccr_a_1 one_button_accept.res.abs_0_a_1 one_button_accept.res.inst_3_a_1 one_button_accept.res.inst_2_a_1 one_button_accept.usr.ccseti_a_0 one_button_accept.usr.ccsetd_a_0 one_button_accept.usr.ccr_a_0 one_button_accept.res.abs_0_a_0 one_button_accept.res.inst_3_a_0 one_button_accept.res.inst_2_a_0) (__node_trans_AtLeastOnceSince_0 one_button_accept.usr.cca_a_1 one_button_accept.res.abs_2_a_1 one_button_accept.res.abs_3_a_1 one_button_accept.res.inst_1_a_1 one_button_accept.usr.cca_a_0 one_button_accept.res.abs_2_a_0 one_button_accept.res.abs_3_a_0 one_button_accept.res.inst_1_a_0) (__node_trans_PosEdge_0 one_button_accept.usr.ccont_a_1 one_button_accept.res.abs_2_a_1 one_button_accept.res.inst_0_a_1 one_button_accept.usr.ccont_a_0 one_button_accept.res.abs_2_a_0 one_button_accept.res.inst_0_a_0) (not one_button_accept.res.init_flag_a_1))))) +(define-fun __node_init_MoreThanTwoSec_0 ((MoreThanTwoSec.usr.X_a_0 Bool) (MoreThanTwoSec.usr.Y_a_0 Bool) (MoreThanTwoSec.res.init_flag_a_0 Bool) (MoreThanTwoSec.res.abs_0_a_0 Bool)) Bool + (and (= MoreThanTwoSec.usr.Y_a_0 false) (= MoreThanTwoSec.res.abs_0_a_0 false) MoreThanTwoSec.res.init_flag_a_0)) +(define-fun __node_trans_MoreThanTwoSec_0 ((MoreThanTwoSec.usr.X_a_1 Bool) (MoreThanTwoSec.usr.Y_a_1 Bool) (MoreThanTwoSec.res.init_flag_a_1 Bool) (MoreThanTwoSec.res.abs_0_a_1 Bool) (MoreThanTwoSec.usr.X_a_0 Bool) (MoreThanTwoSec.usr.Y_a_0 Bool) (MoreThanTwoSec.res.init_flag_a_0 Bool) (MoreThanTwoSec.res.abs_0_a_0 Bool)) Bool + (and (= MoreThanTwoSec.usr.Y_a_1 (and MoreThanTwoSec.res.abs_0_a_0 MoreThanTwoSec.usr.X_a_1)) (= MoreThanTwoSec.res.abs_0_a_1 (and MoreThanTwoSec.usr.X_a_0 MoreThanTwoSec.usr.X_a_1)) (not MoreThanTwoSec.res.init_flag_a_1))) +(define-fun __node_init_MoreThanOneSec_0 ((MoreThanOneSec.usr.X_a_0 Bool) (MoreThanOneSec.usr.Y_a_0 Bool) (MoreThanOneSec.res.init_flag_a_0 Bool)) Bool + (and (= MoreThanOneSec.usr.Y_a_0 false) MoreThanOneSec.res.init_flag_a_0)) +(define-fun __node_trans_MoreThanOneSec_0 ((MoreThanOneSec.usr.X_a_1 Bool) (MoreThanOneSec.usr.Y_a_1 Bool) (MoreThanOneSec.res.init_flag_a_1 Bool) (MoreThanOneSec.usr.X_a_0 Bool) (MoreThanOneSec.usr.Y_a_0 Bool) (MoreThanOneSec.res.init_flag_a_0 Bool)) Bool + (and (= MoreThanOneSec.usr.Y_a_1 (and MoreThanOneSec.usr.X_a_0 MoreThanOneSec.usr.X_a_1)) (not MoreThanOneSec.res.init_flag_a_1))) +(define-fun __node_init_cc_allowed_0 ((cc_allowed.usr.ccont_a_0 Bool) (cc_allowed.usr.igsw_a_0 Bool) (cc_allowed.usr.bpa_a_0 Bool) (cc_allowed.usr.cccanc_a_0 Bool) (cc_allowed.usr.battok_a_0 Bool) (cc_allowed.usr.gearok_a_0 Bool) (cc_allowed.usr.qfok_a_0 Bool) (cc_allowed.usr.sdok_a_0 Bool) (cc_allowed.usr.accok_a_0 Bool) (cc_allowed.usr.vs_a_0 Int) (cc_allowed.usr.ccall_a_0 Bool) (cc_allowed.res.init_flag_a_0 Bool) (cc_allowed.res.abs_0_a_0 Bool) (cc_allowed.res.abs_1_a_0 Bool) (cc_allowed.res.inst_2_a_0 Bool) (cc_allowed.res.inst_1_a_0 Bool) (cc_allowed.res.inst_0_a_0 Bool)) Bool + (and (= cc_allowed.usr.ccall_a_0 (and (and (and (and (and (and (and (and (and cc_allowed.usr.ccont_a_0 (not cc_allowed.usr.bpa_a_0)) cc_allowed.usr.battok_a_0) cc_allowed.usr.gearok_a_0) cc_allowed.usr.qfok_a_0) cc_allowed.res.abs_0_a_0) (<= 35 cc_allowed.usr.vs_a_0)) (<= cc_allowed.usr.vs_a_0 200)) cc_allowed.res.abs_1_a_0) (not cc_allowed.usr.cccanc_a_0))) (__node_init_MoreThanOneSec_0 cc_allowed.usr.sdok_a_0 cc_allowed.res.abs_0_a_0 cc_allowed.res.inst_2_a_0) (__node_init_MoreThanTwoSec_0 cc_allowed.usr.accok_a_0 cc_allowed.res.abs_1_a_0 cc_allowed.res.inst_1_a_0 cc_allowed.res.inst_0_a_0) cc_allowed.res.init_flag_a_0)) +(define-fun __node_trans_cc_allowed_0 ((cc_allowed.usr.ccont_a_1 Bool) (cc_allowed.usr.igsw_a_1 Bool) (cc_allowed.usr.bpa_a_1 Bool) (cc_allowed.usr.cccanc_a_1 Bool) (cc_allowed.usr.battok_a_1 Bool) (cc_allowed.usr.gearok_a_1 Bool) (cc_allowed.usr.qfok_a_1 Bool) (cc_allowed.usr.sdok_a_1 Bool) (cc_allowed.usr.accok_a_1 Bool) (cc_allowed.usr.vs_a_1 Int) (cc_allowed.usr.ccall_a_1 Bool) (cc_allowed.res.init_flag_a_1 Bool) (cc_allowed.res.abs_0_a_1 Bool) (cc_allowed.res.abs_1_a_1 Bool) (cc_allowed.res.inst_2_a_1 Bool) (cc_allowed.res.inst_1_a_1 Bool) (cc_allowed.res.inst_0_a_1 Bool) (cc_allowed.usr.ccont_a_0 Bool) (cc_allowed.usr.igsw_a_0 Bool) (cc_allowed.usr.bpa_a_0 Bool) (cc_allowed.usr.cccanc_a_0 Bool) (cc_allowed.usr.battok_a_0 Bool) (cc_allowed.usr.gearok_a_0 Bool) (cc_allowed.usr.qfok_a_0 Bool) (cc_allowed.usr.sdok_a_0 Bool) (cc_allowed.usr.accok_a_0 Bool) (cc_allowed.usr.vs_a_0 Int) (cc_allowed.usr.ccall_a_0 Bool) (cc_allowed.res.init_flag_a_0 Bool) (cc_allowed.res.abs_0_a_0 Bool) (cc_allowed.res.abs_1_a_0 Bool) (cc_allowed.res.inst_2_a_0 Bool) (cc_allowed.res.inst_1_a_0 Bool) (cc_allowed.res.inst_0_a_0 Bool)) Bool + (and (= cc_allowed.usr.ccall_a_1 (and (and (and (and (and (and (and (and (and cc_allowed.usr.ccont_a_1 (not cc_allowed.usr.bpa_a_1)) cc_allowed.usr.battok_a_1) cc_allowed.usr.gearok_a_1) cc_allowed.usr.qfok_a_1) cc_allowed.res.abs_0_a_1) (<= 35 cc_allowed.usr.vs_a_1)) (<= cc_allowed.usr.vs_a_1 200)) cc_allowed.res.abs_1_a_1) (not cc_allowed.usr.cccanc_a_1))) (__node_trans_MoreThanOneSec_0 cc_allowed.usr.sdok_a_1 cc_allowed.res.abs_0_a_1 cc_allowed.res.inst_2_a_1 cc_allowed.usr.sdok_a_0 cc_allowed.res.abs_0_a_0 cc_allowed.res.inst_2_a_0) (__node_trans_MoreThanTwoSec_0 cc_allowed.usr.accok_a_1 cc_allowed.res.abs_1_a_1 cc_allowed.res.inst_1_a_1 cc_allowed.res.inst_0_a_1 cc_allowed.usr.accok_a_0 cc_allowed.res.abs_1_a_0 cc_allowed.res.inst_1_a_0 cc_allowed.res.inst_0_a_0) (not cc_allowed.res.init_flag_a_1))) +(define-fun __node_init_Edge_0 ((Edge.usr.X_a_0 Bool) (Edge.usr.Y_a_0 Bool) (Edge.res.init_flag_a_0 Bool)) Bool + (and (= Edge.usr.Y_a_0 false) Edge.res.init_flag_a_0)) +(define-fun __node_trans_Edge_0 ((Edge.usr.X_a_1 Bool) (Edge.usr.Y_a_1 Bool) (Edge.res.init_flag_a_1 Bool) (Edge.usr.X_a_0 Bool) (Edge.usr.Y_a_0 Bool) (Edge.res.init_flag_a_0 Bool)) Bool + (and (= Edge.usr.Y_a_1 (and (and (and Edge.usr.X_a_1 (not Edge.usr.X_a_0)) (not Edge.usr.X_a_1)) Edge.usr.X_a_0)) (not Edge.res.init_flag_a_1))) +(define-fun __node_init_main_0 ((main.usr.igsw_a_0 Bool) (main.usr.ccd_a_0 Bool) (main.usr.cconoff_a_0 Bool) (main.usr.bpa_a_0 Bool) (main.usr.cccanc_a_0 Bool) (main.usr.battok_a_0 Bool) (main.usr.gearok_a_0 Bool) (main.usr.qfok_a_0 Bool) (main.usr.sdok_a_0 Bool) (main.usr.accok_a_0 Bool) (main.usr.ccseti_a_0 Bool) (main.usr.ccsetd_a_0 Bool) (main.usr.ccr_a_0 Bool) (main.usr.vs_a_0 Int) (main.res.nondet_0 Bool) (main.usr.ccont_a_0 Bool) (main.usr.cca_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Bool) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Bool) (main.res.inst_17_a_0 Bool) (main.res.inst_16_a_0 Bool) (main.res.inst_15_a_0 Bool) (main.res.inst_14_a_0 Bool) (main.res.inst_13_a_0 Bool) (main.res.inst_12_a_0 Bool) (main.res.inst_11_a_0 Bool) (main.res.inst_10_a_0 Bool) (main.res.inst_9_a_0 Bool) (main.res.inst_8_a_0 Bool) (main.res.inst_7_a_0 Bool) (main.res.inst_6_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Bool) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Bool) (main.res.inst_0_a_0 Bool)) Bool + (and (= main.usr.ccont_a_0 false) (= main.res.abs_2_a_0 (not main.usr.ccont_a_0)) (= main.usr.cca_a_0 false) (let ((X1 main.res.abs_3_a_0)) (and (= main.res.abs_4_a_0 (let ((X2 main.res.nondet_0)) X2)) (__node_init_Edge_0 main.usr.igsw_a_0 main.res.abs_0_a_0 main.res.inst_17_a_0) (__node_init_PosEdge_0 main.usr.cconoff_a_0 main.res.abs_1_a_0 main.res.inst_16_a_0) (__node_init_cc_allowed_0 main.usr.ccont_a_0 main.usr.igsw_a_0 main.usr.bpa_a_0 main.usr.cccanc_a_0 main.usr.battok_a_0 main.usr.gearok_a_0 main.usr.qfok_a_0 main.usr.sdok_a_0 main.usr.accok_a_0 main.usr.vs_a_0 main.res.abs_3_a_0 main.res.inst_15_a_0 main.res.inst_14_a_0 main.res.inst_13_a_0 main.res.inst_12_a_0 main.res.inst_11_a_0 main.res.inst_10_a_0) (__node_init_one_button_accept_0 main.usr.ccseti_a_0 main.usr.ccsetd_a_0 main.usr.ccr_a_0 main.usr.ccont_a_0 main.res.abs_4_a_0 main.res.abs_5_a_0 main.res.inst_9_a_0 main.res.inst_8_a_0 main.res.inst_7_a_0 main.res.inst_6_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0 main.res.inst_3_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0 main.res.inst_0_a_0) main.res.init_flag_a_0)))) +(define-fun __node_trans_main_0 ((main.usr.igsw_a_1 Bool) (main.usr.ccd_a_1 Bool) (main.usr.cconoff_a_1 Bool) (main.usr.bpa_a_1 Bool) (main.usr.cccanc_a_1 Bool) (main.usr.battok_a_1 Bool) (main.usr.gearok_a_1 Bool) (main.usr.qfok_a_1 Bool) (main.usr.sdok_a_1 Bool) (main.usr.accok_a_1 Bool) (main.usr.ccseti_a_1 Bool) (main.usr.ccsetd_a_1 Bool) (main.usr.ccr_a_1 Bool) (main.usr.vs_a_1 Int) (main.res.nondet_0 Bool) (main.usr.ccont_a_1 Bool) (main.usr.cca_a_1 Bool) (main.res.init_flag_a_1 Bool) (main.res.abs_0_a_1 Bool) (main.res.abs_1_a_1 Bool) (main.res.abs_2_a_1 Bool) (main.res.abs_3_a_1 Bool) (main.res.abs_4_a_1 Bool) (main.res.abs_5_a_1 Bool) (main.res.inst_17_a_1 Bool) (main.res.inst_16_a_1 Bool) (main.res.inst_15_a_1 Bool) (main.res.inst_14_a_1 Bool) (main.res.inst_13_a_1 Bool) (main.res.inst_12_a_1 Bool) (main.res.inst_11_a_1 Bool) (main.res.inst_10_a_1 Bool) (main.res.inst_9_a_1 Bool) (main.res.inst_8_a_1 Bool) (main.res.inst_7_a_1 Bool) (main.res.inst_6_a_1 Bool) (main.res.inst_5_a_1 Bool) (main.res.inst_4_a_1 Bool) (main.res.inst_3_a_1 Bool) (main.res.inst_2_a_1 Bool) (main.res.inst_1_a_1 Bool) (main.res.inst_0_a_1 Bool) (main.usr.igsw_a_0 Bool) (main.usr.ccd_a_0 Bool) (main.usr.cconoff_a_0 Bool) (main.usr.bpa_a_0 Bool) (main.usr.cccanc_a_0 Bool) (main.usr.battok_a_0 Bool) (main.usr.gearok_a_0 Bool) (main.usr.qfok_a_0 Bool) (main.usr.sdok_a_0 Bool) (main.usr.accok_a_0 Bool) (main.usr.ccseti_a_0 Bool) (main.usr.ccsetd_a_0 Bool) (main.usr.ccr_a_0 Bool) (main.usr.vs_a_0 Int) (main.usr.ccont_a_0 Bool) (main.usr.cca_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Bool) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Bool) (main.res.inst_17_a_0 Bool) (main.res.inst_16_a_0 Bool) (main.res.inst_15_a_0 Bool) (main.res.inst_14_a_0 Bool) (main.res.inst_13_a_0 Bool) (main.res.inst_12_a_0 Bool) (main.res.inst_11_a_0 Bool) (main.res.inst_10_a_0 Bool) (main.res.inst_9_a_0 Bool) (main.res.inst_8_a_0 Bool) (main.res.inst_7_a_0 Bool) (main.res.inst_6_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Bool) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Bool) (main.res.inst_0_a_0 Bool)) Bool + (and (= main.usr.ccont_a_1 (ite (or (or main.res.abs_0_a_1 main.usr.ccd_a_1) (and main.usr.ccont_a_0 main.res.abs_1_a_1)) false (ite (and main.res.abs_2_a_0 main.res.abs_1_a_1) true main.usr.ccont_a_0))) (= main.res.abs_2_a_1 (not main.usr.ccont_a_1)) (= main.res.abs_4_a_1 main.usr.cca_a_0) (let ((X1 main.res.abs_3_a_1)) (and (= main.usr.cca_a_1 (ite (and main.res.abs_5_a_1 X1) true (ite (not X1) false main.usr.cca_a_0))) (__node_trans_Edge_0 main.usr.igsw_a_1 main.res.abs_0_a_1 main.res.inst_17_a_1 main.usr.igsw_a_0 main.res.abs_0_a_0 main.res.inst_17_a_0) (__node_trans_PosEdge_0 main.usr.cconoff_a_1 main.res.abs_1_a_1 main.res.inst_16_a_1 main.usr.cconoff_a_0 main.res.abs_1_a_0 main.res.inst_16_a_0) (__node_trans_cc_allowed_0 main.usr.ccont_a_1 main.usr.igsw_a_1 main.usr.bpa_a_1 main.usr.cccanc_a_1 main.usr.battok_a_1 main.usr.gearok_a_1 main.usr.qfok_a_1 main.usr.sdok_a_1 main.usr.accok_a_1 main.usr.vs_a_1 main.res.abs_3_a_1 main.res.inst_15_a_1 main.res.inst_14_a_1 main.res.inst_13_a_1 main.res.inst_12_a_1 main.res.inst_11_a_1 main.res.inst_10_a_1 main.usr.ccont_a_0 main.usr.igsw_a_0 main.usr.bpa_a_0 main.usr.cccanc_a_0 main.usr.battok_a_0 main.usr.gearok_a_0 main.usr.qfok_a_0 main.usr.sdok_a_0 main.usr.accok_a_0 main.usr.vs_a_0 main.res.abs_3_a_0 main.res.inst_15_a_0 main.res.inst_14_a_0 main.res.inst_13_a_0 main.res.inst_12_a_0 main.res.inst_11_a_0 main.res.inst_10_a_0) (__node_trans_one_button_accept_0 main.usr.ccseti_a_1 main.usr.ccsetd_a_1 main.usr.ccr_a_1 main.usr.ccont_a_1 main.res.abs_4_a_1 main.res.abs_5_a_1 main.res.inst_9_a_1 main.res.inst_8_a_1 main.res.inst_7_a_1 main.res.inst_6_a_1 main.res.inst_5_a_1 main.res.inst_4_a_1 main.res.inst_3_a_1 main.res.inst_2_a_1 main.res.inst_1_a_1 main.res.inst_0_a_1 main.usr.ccseti_a_0 main.usr.ccsetd_a_0 main.usr.ccr_a_0 main.usr.ccont_a_0 main.res.abs_4_a_0 main.res.abs_5_a_0 main.res.inst_9_a_0 main.res.inst_8_a_0 main.res.inst_7_a_0 main.res.inst_6_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0 main.res.inst_3_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0 main.res.inst_0_a_0) (not main.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.igsw_a_0 Bool) (top.usr.ccd_a_0 Bool) (top.usr.cconoff_a_0 Bool) (top.usr.bpa_a_0 Bool) (top.usr.cccanc_a_0 Bool) (top.usr.battok_a_0 Bool) (top.usr.gearok_a_0 Bool) (top.usr.qfok_a_0 Bool) (top.usr.sdok_a_0 Bool) (top.usr.accok_a_0 Bool) (top.usr.ccseti_a_0 Bool) (top.usr.ccsetd_a_0 Bool) (top.usr.ccr_a_0 Bool) (top.usr.vs_a_0 Int) (top.res.nondet_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.cca_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 (ite top.res.abs_2_a_0 (or (or top.res.abs_3_a_0 top.res.abs_4_a_0) top.res.abs_5_a_0) true)) (= top.impl.usr.cca_a_0 top.res.abs_1_a_0) (__node_init_PosEdge_0 top.impl.usr.cca_a_0 top.res.abs_2_a_0 top.res.inst_28_a_0) (__node_init_main_0 top.usr.igsw_a_0 top.usr.ccd_a_0 top.usr.cconoff_a_0 top.usr.bpa_a_0 top.usr.cccanc_a_0 top.usr.battok_a_0 top.usr.gearok_a_0 top.usr.qfok_a_0 top.usr.sdok_a_0 top.usr.accok_a_0 top.usr.ccseti_a_0 top.usr.ccsetd_a_0 top.usr.ccr_a_0 top.usr.vs_a_0 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_27_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_PosEdge_0 top.usr.ccseti_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_init_PosEdge_0 top.usr.ccsetd_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_init_PosEdge_0 top.usr.ccr_a_0 top.res.abs_5_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)) +(define-fun __node_trans_top_0 ((top.usr.igsw_a_1 Bool) (top.usr.ccd_a_1 Bool) (top.usr.cconoff_a_1 Bool) (top.usr.bpa_a_1 Bool) (top.usr.cccanc_a_1 Bool) (top.usr.battok_a_1 Bool) (top.usr.gearok_a_1 Bool) (top.usr.qfok_a_1 Bool) (top.usr.sdok_a_1 Bool) (top.usr.accok_a_1 Bool) (top.usr.ccseti_a_1 Bool) (top.usr.ccsetd_a_1 Bool) (top.usr.ccr_a_1 Bool) (top.usr.vs_a_1 Int) (top.res.nondet_0 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.cca_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.inst_28_a_1 Bool) (top.res.inst_27_a_1 Bool) (top.res.inst_26_a_1 Bool) (top.res.inst_25_a_1 Bool) (top.res.inst_24_a_1 Bool) (top.res.inst_23_a_1 Bool) (top.res.inst_22_a_1 Bool) (top.res.inst_21_a_1 Bool) (top.res.inst_20_a_1 Bool) (top.res.inst_19_a_1 Bool) (top.res.inst_18_a_1 Bool) (top.res.inst_17_a_1 Bool) (top.res.inst_16_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Bool) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Bool) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Bool) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.igsw_a_0 Bool) (top.usr.ccd_a_0 Bool) (top.usr.cconoff_a_0 Bool) (top.usr.bpa_a_0 Bool) (top.usr.cccanc_a_0 Bool) (top.usr.battok_a_0 Bool) (top.usr.gearok_a_0 Bool) (top.usr.qfok_a_0 Bool) (top.usr.sdok_a_0 Bool) (top.usr.accok_a_0 Bool) (top.usr.ccseti_a_0 Bool) (top.usr.ccsetd_a_0 Bool) (top.usr.ccr_a_0 Bool) (top.usr.vs_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.cca_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.cca_a_1 top.res.abs_1_a_1) (= top.usr.OK_a_1 (ite top.res.abs_2_a_1 (or (or top.res.abs_3_a_1 top.res.abs_4_a_1) top.res.abs_5_a_1) true)) (__node_trans_PosEdge_0 top.impl.usr.cca_a_1 top.res.abs_2_a_1 top.res.inst_28_a_1 top.impl.usr.cca_a_0 top.res.abs_2_a_0 top.res.inst_28_a_0) (__node_trans_main_0 top.usr.igsw_a_1 top.usr.ccd_a_1 top.usr.cconoff_a_1 top.usr.bpa_a_1 top.usr.cccanc_a_1 top.usr.battok_a_1 top.usr.gearok_a_1 top.usr.qfok_a_1 top.usr.sdok_a_1 top.usr.accok_a_1 top.usr.ccseti_a_1 top.usr.ccsetd_a_1 top.usr.ccr_a_1 top.usr.vs_a_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.inst_27_a_1 top.res.inst_26_a_1 top.res.inst_25_a_1 top.res.inst_24_a_1 top.res.inst_23_a_1 top.res.inst_22_a_1 top.res.inst_21_a_1 top.res.inst_20_a_1 top.res.inst_19_a_1 top.res.inst_18_a_1 top.res.inst_17_a_1 top.res.inst_16_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.usr.igsw_a_0 top.usr.ccd_a_0 top.usr.cconoff_a_0 top.usr.bpa_a_0 top.usr.cccanc_a_0 top.usr.battok_a_0 top.usr.gearok_a_0 top.usr.qfok_a_0 top.usr.sdok_a_0 top.usr.accok_a_0 top.usr.ccseti_a_0 top.usr.ccsetd_a_0 top.usr.ccr_a_0 top.usr.vs_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_27_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_PosEdge_0 top.usr.ccseti_a_1 top.res.abs_3_a_1 top.res.inst_2_a_1 top.usr.ccseti_a_0 top.res.abs_3_a_0 top.res.inst_2_a_0) (__node_trans_PosEdge_0 top.usr.ccsetd_a_1 top.res.abs_4_a_1 top.res.inst_1_a_1 top.usr.ccsetd_a_0 top.res.abs_4_a_0 top.res.inst_1_a_0) (__node_trans_PosEdge_0 top.usr.ccr_a_1 top.res.abs_5_a_1 top.res.inst_0_a_1 top.usr.ccr_a_0 top.res.abs_5_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))) +(synth-inv str_invariant ((top.usr.igsw Bool) (top.usr.ccd Bool) (top.usr.cconoff Bool) (top.usr.bpa Bool) (top.usr.cccanc Bool) (top.usr.battok Bool) (top.usr.gearok Bool) (top.usr.qfok Bool) (top.usr.sdok Bool) (top.usr.accok Bool) (top.usr.ccseti Bool) (top.usr.ccsetd Bool) (top.usr.ccr Bool) (top.usr.vs Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.cca Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_0 Bool) +(define-fun init ((top.usr.igsw Bool) (top.usr.ccd Bool) (top.usr.cconoff Bool) (top.usr.bpa Bool) (top.usr.cccanc Bool) (top.usr.battok Bool) (top.usr.gearok Bool) (top.usr.qfok Bool) (top.usr.sdok Bool) (top.usr.accok Bool) (top.usr.ccseti Bool) (top.usr.ccsetd Bool) (top.usr.ccr Bool) (top.usr.vs Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.cca Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK (ite top.res.abs_2 (or (or top.res.abs_3 top.res.abs_4) top.res.abs_5) true)) (= top.impl.usr.cca top.res.abs_1) (__node_init_PosEdge_0 top.impl.usr.cca top.res.abs_2 top.res.inst_28) (__node_init_main_0 top.usr.igsw top.usr.ccd top.usr.cconoff top.usr.bpa top.usr.cccanc top.usr.battok top.usr.gearok top.usr.qfok top.usr.sdok top.usr.accok top.usr.ccseti top.usr.ccsetd top.usr.ccr top.usr.vs top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.inst_27 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3) (__node_init_PosEdge_0 top.usr.ccseti top.res.abs_3 top.res.inst_2) (__node_init_PosEdge_0 top.usr.ccsetd top.res.abs_4 top.res.inst_1) (__node_init_PosEdge_0 top.usr.ccr top.res.abs_5 top.res.inst_0) top.res.init_flag)) +(define-fun trans ((top.usr.igsw Bool) (top.usr.ccd Bool) (top.usr.cconoff Bool) (top.usr.bpa Bool) (top.usr.cccanc Bool) (top.usr.battok Bool) (top.usr.gearok Bool) (top.usr.qfok Bool) (top.usr.sdok Bool) (top.usr.accok Bool) (top.usr.ccseti Bool) (top.usr.ccsetd Bool) (top.usr.ccr Bool) (top.usr.vs Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.cca Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.igsw! Bool) (top.usr.ccd! Bool) (top.usr.cconoff! Bool) (top.usr.bpa! Bool) (top.usr.cccanc! Bool) (top.usr.battok! Bool) (top.usr.gearok! Bool) (top.usr.qfok! Bool) (top.usr.sdok! Bool) (top.usr.accok! Bool) (top.usr.ccseti! Bool) (top.usr.ccsetd! Bool) (top.usr.ccr! Bool) (top.usr.vs! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.cca! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.inst_28! Bool) (top.res.inst_27! Bool) (top.res.inst_26! Bool) (top.res.inst_25! Bool) (top.res.inst_24! Bool) (top.res.inst_23! Bool) (top.res.inst_22! Bool) (top.res.inst_21! Bool) (top.res.inst_20! Bool) (top.res.inst_19! Bool) (top.res.inst_18! Bool) (top.res.inst_17! Bool) (top.res.inst_16! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Bool) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Bool) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Bool) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.impl.usr.cca! top.res.abs_1!) (= top.usr.OK! (ite top.res.abs_2! (or (or top.res.abs_3! top.res.abs_4!) top.res.abs_5!) true)) (__node_trans_PosEdge_0 top.impl.usr.cca! top.res.abs_2! top.res.inst_28! top.impl.usr.cca top.res.abs_2 top.res.inst_28) (__node_trans_main_0 top.usr.igsw! top.usr.ccd! top.usr.cconoff! top.usr.bpa! top.usr.cccanc! top.usr.battok! top.usr.gearok! top.usr.qfok! top.usr.sdok! top.usr.accok! top.usr.ccseti! top.usr.ccsetd! top.usr.ccr! top.usr.vs! top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.inst_27! top.res.inst_26! top.res.inst_25! top.res.inst_24! top.res.inst_23! top.res.inst_22! top.res.inst_21! top.res.inst_20! top.res.inst_19! top.res.inst_18! top.res.inst_17! top.res.inst_16! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.usr.igsw top.usr.ccd top.usr.cconoff top.usr.bpa top.usr.cccanc top.usr.battok top.usr.gearok top.usr.qfok top.usr.sdok top.usr.accok top.usr.ccseti top.usr.ccsetd top.usr.ccr top.usr.vs top.res.abs_0 top.res.abs_1 top.res.inst_27 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3) (__node_trans_PosEdge_0 top.usr.ccseti! top.res.abs_3! top.res.inst_2! top.usr.ccseti top.res.abs_3 top.res.inst_2) (__node_trans_PosEdge_0 top.usr.ccsetd! top.res.abs_4! top.res.inst_1! top.usr.ccsetd top.res.abs_4 top.res.inst_1) (__node_trans_PosEdge_0 top.usr.ccr! top.res.abs_5! top.res.inst_0! top.usr.ccr top.res.abs_5 top.res.inst_0) (not top.res.init_flag!)) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.igsw Bool) (top.usr.ccd Bool) (top.usr.cconoff Bool) (top.usr.bpa Bool) (top.usr.cccanc Bool) (top.usr.battok Bool) (top.usr.gearok Bool) (top.usr.qfok Bool) (top.usr.sdok Bool) (top.usr.accok Bool) (top.usr.ccseti Bool) (top.usr.ccsetd Bool) (top.usr.ccr Bool) (top.usr.vs Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.cca Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/fast_2.sl b/benchmarks/LIA/Lustre/fast_2.sl index a2bd135..6d5f007 100644 --- a/benchmarks/LIA/Lustre/fast_2.sl +++ b/benchmarks/LIA/Lustre/fast_2.sl @@ -1,2069 +1,60 @@ (set-logic LIA) -(define-fun - __node_init_MoreThanTwoSec_0 ( - (MoreThanTwoSec.usr.X_a_0 Bool) - (MoreThanTwoSec.usr.Y_a_0 Bool) - (MoreThanTwoSec.res.init_flag_a_0 Bool) - (MoreThanTwoSec.res.abs_0_a_0 Bool) - ) Bool - - (and - (= MoreThanTwoSec.usr.Y_a_0 false) - (= MoreThanTwoSec.res.abs_0_a_0 false) - MoreThanTwoSec.res.init_flag_a_0) -) - -(define-fun - __node_trans_MoreThanTwoSec_0 ( - (MoreThanTwoSec.usr.X_a_1 Bool) - (MoreThanTwoSec.usr.Y_a_1 Bool) - (MoreThanTwoSec.res.init_flag_a_1 Bool) - (MoreThanTwoSec.res.abs_0_a_1 Bool) - (MoreThanTwoSec.usr.X_a_0 Bool) - (MoreThanTwoSec.usr.Y_a_0 Bool) - (MoreThanTwoSec.res.init_flag_a_0 Bool) - (MoreThanTwoSec.res.abs_0_a_0 Bool) - ) Bool - - (and - (= - MoreThanTwoSec.usr.Y_a_1 - (and MoreThanTwoSec.res.abs_0_a_0 MoreThanTwoSec.usr.X_a_1)) - (= - MoreThanTwoSec.res.abs_0_a_1 - (and MoreThanTwoSec.usr.X_a_0 MoreThanTwoSec.usr.X_a_1)) - (not MoreThanTwoSec.res.init_flag_a_1)) -) - -(define-fun - __node_init_MoreThanOneSec_0 ( - (MoreThanOneSec.usr.X_a_0 Bool) - (MoreThanOneSec.usr.Y_a_0 Bool) - (MoreThanOneSec.res.init_flag_a_0 Bool) - ) Bool - - (and (= MoreThanOneSec.usr.Y_a_0 false) MoreThanOneSec.res.init_flag_a_0) -) - -(define-fun - __node_trans_MoreThanOneSec_0 ( - (MoreThanOneSec.usr.X_a_1 Bool) - (MoreThanOneSec.usr.Y_a_1 Bool) - (MoreThanOneSec.res.init_flag_a_1 Bool) - (MoreThanOneSec.usr.X_a_0 Bool) - (MoreThanOneSec.usr.Y_a_0 Bool) - (MoreThanOneSec.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - MoreThanOneSec.usr.Y_a_1 - (and MoreThanOneSec.usr.X_a_0 MoreThanOneSec.usr.X_a_1)) - (not MoreThanOneSec.res.init_flag_a_1)) -) - -(define-fun - __node_init_cc_allowed_0 ( - (cc_allowed.usr.ccont_a_0 Bool) - (cc_allowed.usr.igsw_a_0 Bool) - (cc_allowed.usr.bpa_a_0 Bool) - (cc_allowed.usr.cccanc_a_0 Bool) - (cc_allowed.usr.battok_a_0 Bool) - (cc_allowed.usr.gearok_a_0 Bool) - (cc_allowed.usr.qfok_a_0 Bool) - (cc_allowed.usr.sdok_a_0 Bool) - (cc_allowed.usr.accok_a_0 Bool) - (cc_allowed.usr.vs_a_0 Int) - (cc_allowed.usr.ccall_a_0 Bool) - (cc_allowed.res.init_flag_a_0 Bool) - (cc_allowed.res.abs_0_a_0 Bool) - (cc_allowed.res.abs_1_a_0 Bool) - (cc_allowed.res.inst_2_a_0 Bool) - (cc_allowed.res.inst_1_a_0 Bool) - (cc_allowed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - cc_allowed.usr.ccall_a_0 - (and - (and - (and - (and - (and - (and - (and - (and - (and cc_allowed.usr.ccont_a_0 (not cc_allowed.usr.bpa_a_0)) - cc_allowed.usr.battok_a_0) - cc_allowed.usr.gearok_a_0) - cc_allowed.usr.qfok_a_0) - cc_allowed.res.abs_0_a_0) - (<= 35 cc_allowed.usr.vs_a_0)) - (<= cc_allowed.usr.vs_a_0 200)) - cc_allowed.res.abs_1_a_0) - (not cc_allowed.usr.cccanc_a_0))) - (__node_init_MoreThanOneSec_0 - cc_allowed.usr.sdok_a_0 - cc_allowed.res.abs_0_a_0 - cc_allowed.res.inst_2_a_0) - (__node_init_MoreThanTwoSec_0 - cc_allowed.usr.accok_a_0 - cc_allowed.res.abs_1_a_0 - cc_allowed.res.inst_1_a_0 - cc_allowed.res.inst_0_a_0) - cc_allowed.res.init_flag_a_0) -) - -(define-fun - __node_trans_cc_allowed_0 ( - (cc_allowed.usr.ccont_a_1 Bool) - (cc_allowed.usr.igsw_a_1 Bool) - (cc_allowed.usr.bpa_a_1 Bool) - (cc_allowed.usr.cccanc_a_1 Bool) - (cc_allowed.usr.battok_a_1 Bool) - (cc_allowed.usr.gearok_a_1 Bool) - (cc_allowed.usr.qfok_a_1 Bool) - (cc_allowed.usr.sdok_a_1 Bool) - (cc_allowed.usr.accok_a_1 Bool) - (cc_allowed.usr.vs_a_1 Int) - (cc_allowed.usr.ccall_a_1 Bool) - (cc_allowed.res.init_flag_a_1 Bool) - (cc_allowed.res.abs_0_a_1 Bool) - (cc_allowed.res.abs_1_a_1 Bool) - (cc_allowed.res.inst_2_a_1 Bool) - (cc_allowed.res.inst_1_a_1 Bool) - (cc_allowed.res.inst_0_a_1 Bool) - (cc_allowed.usr.ccont_a_0 Bool) - (cc_allowed.usr.igsw_a_0 Bool) - (cc_allowed.usr.bpa_a_0 Bool) - (cc_allowed.usr.cccanc_a_0 Bool) - (cc_allowed.usr.battok_a_0 Bool) - (cc_allowed.usr.gearok_a_0 Bool) - (cc_allowed.usr.qfok_a_0 Bool) - (cc_allowed.usr.sdok_a_0 Bool) - (cc_allowed.usr.accok_a_0 Bool) - (cc_allowed.usr.vs_a_0 Int) - (cc_allowed.usr.ccall_a_0 Bool) - (cc_allowed.res.init_flag_a_0 Bool) - (cc_allowed.res.abs_0_a_0 Bool) - (cc_allowed.res.abs_1_a_0 Bool) - (cc_allowed.res.inst_2_a_0 Bool) - (cc_allowed.res.inst_1_a_0 Bool) - (cc_allowed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - cc_allowed.usr.ccall_a_1 - (and - (and - (and - (and - (and - (and - (and - (and - (and cc_allowed.usr.ccont_a_1 (not cc_allowed.usr.bpa_a_1)) - cc_allowed.usr.battok_a_1) - cc_allowed.usr.gearok_a_1) - cc_allowed.usr.qfok_a_1) - cc_allowed.res.abs_0_a_1) - (<= 35 cc_allowed.usr.vs_a_1)) - (<= cc_allowed.usr.vs_a_1 200)) - cc_allowed.res.abs_1_a_1) - (not cc_allowed.usr.cccanc_a_1))) - (__node_trans_MoreThanOneSec_0 - cc_allowed.usr.sdok_a_1 - cc_allowed.res.abs_0_a_1 - cc_allowed.res.inst_2_a_1 - cc_allowed.usr.sdok_a_0 - cc_allowed.res.abs_0_a_0 - cc_allowed.res.inst_2_a_0) - (__node_trans_MoreThanTwoSec_0 - cc_allowed.usr.accok_a_1 - cc_allowed.res.abs_1_a_1 - cc_allowed.res.inst_1_a_1 - cc_allowed.res.inst_0_a_1 - cc_allowed.usr.accok_a_0 - cc_allowed.res.abs_1_a_0 - cc_allowed.res.inst_1_a_0 - cc_allowed.res.inst_0_a_0) - (not cc_allowed.res.init_flag_a_1)) -) - -(define-fun - __node_init_PosEdge_0 ( - (PosEdge.usr.X_a_0 Bool) - (PosEdge.usr.Y_a_0 Bool) - (PosEdge.res.init_flag_a_0 Bool) - ) Bool - - (and (= PosEdge.usr.Y_a_0 false) PosEdge.res.init_flag_a_0) -) - -(define-fun - __node_trans_PosEdge_0 ( - (PosEdge.usr.X_a_1 Bool) - (PosEdge.usr.Y_a_1 Bool) - (PosEdge.res.init_flag_a_1 Bool) - (PosEdge.usr.X_a_0 Bool) - (PosEdge.usr.Y_a_0 Bool) - (PosEdge.res.init_flag_a_0 Bool) - ) Bool - - (and - (= PosEdge.usr.Y_a_1 (and PosEdge.usr.X_a_1 (not PosEdge.usr.X_a_0))) - (not PosEdge.res.init_flag_a_1)) -) - -(define-fun - __node_init_Edge_0 ( - (Edge.usr.X_a_0 Bool) - (Edge.usr.Y_a_0 Bool) - (Edge.res.init_flag_a_0 Bool) - ) Bool - - (and (= Edge.usr.Y_a_0 false) Edge.res.init_flag_a_0) -) - -(define-fun - __node_trans_Edge_0 ( - (Edge.usr.X_a_1 Bool) - (Edge.usr.Y_a_1 Bool) - (Edge.res.init_flag_a_1 Bool) - (Edge.usr.X_a_0 Bool) - (Edge.usr.Y_a_0 Bool) - (Edge.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - Edge.usr.Y_a_1 - (or - (and Edge.usr.X_a_1 (not Edge.usr.X_a_0)) - (and (not Edge.usr.X_a_1) Edge.usr.X_a_0))) - (not Edge.res.init_flag_a_1)) -) - -(define-fun - __node_init_prev_no_button_0 ( - (prev_no_button.usr.ccseti_a_0 Bool) - (prev_no_button.usr.ccsetd_a_0 Bool) - (prev_no_button.usr.ccr_a_0 Bool) - (prev_no_button.usr.pnb_a_0 Bool) - (prev_no_button.res.init_flag_a_0 Bool) - (prev_no_button.res.abs_0_a_0 Bool) - ) Bool - - (and - (= prev_no_button.usr.pnb_a_0 true) - (= - prev_no_button.res.abs_0_a_0 - (and - (and - (not prev_no_button.usr.ccseti_a_0) - (not prev_no_button.usr.ccsetd_a_0)) - (not prev_no_button.usr.ccr_a_0))) - prev_no_button.res.init_flag_a_0) -) - -(define-fun - __node_trans_prev_no_button_0 ( - (prev_no_button.usr.ccseti_a_1 Bool) - (prev_no_button.usr.ccsetd_a_1 Bool) - (prev_no_button.usr.ccr_a_1 Bool) - (prev_no_button.usr.pnb_a_1 Bool) - (prev_no_button.res.init_flag_a_1 Bool) - (prev_no_button.res.abs_0_a_1 Bool) - (prev_no_button.usr.ccseti_a_0 Bool) - (prev_no_button.usr.ccsetd_a_0 Bool) - (prev_no_button.usr.ccr_a_0 Bool) - (prev_no_button.usr.pnb_a_0 Bool) - (prev_no_button.res.init_flag_a_0 Bool) - (prev_no_button.res.abs_0_a_0 Bool) - ) Bool - - (and - (= prev_no_button.usr.pnb_a_1 prev_no_button.res.abs_0_a_0) - (= - prev_no_button.res.abs_0_a_1 - (and - (and - (not prev_no_button.usr.ccseti_a_1) - (not prev_no_button.usr.ccsetd_a_1)) - (not prev_no_button.usr.ccr_a_1))) - (not prev_no_button.res.init_flag_a_1)) -) - -(define-fun - __node_init_AtLeastOnceSince_0 ( - (AtLeastOnceSince.usr.X_a_0 Bool) - (AtLeastOnceSince.usr.Y_a_0 Bool) - (AtLeastOnceSince.usr.XsinceY_a_0 Bool) - (AtLeastOnceSince.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - AtLeastOnceSince.usr.XsinceY_a_0 - (ite AtLeastOnceSince.usr.Y_a_0 AtLeastOnceSince.usr.X_a_0 true)) - AtLeastOnceSince.res.init_flag_a_0) -) - -(define-fun - __node_trans_AtLeastOnceSince_0 ( - (AtLeastOnceSince.usr.X_a_1 Bool) - (AtLeastOnceSince.usr.Y_a_1 Bool) - (AtLeastOnceSince.usr.XsinceY_a_1 Bool) - (AtLeastOnceSince.res.init_flag_a_1 Bool) - (AtLeastOnceSince.usr.X_a_0 Bool) - (AtLeastOnceSince.usr.Y_a_0 Bool) - (AtLeastOnceSince.usr.XsinceY_a_0 Bool) - (AtLeastOnceSince.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - AtLeastOnceSince.usr.XsinceY_a_1 - (ite - AtLeastOnceSince.usr.Y_a_1 - AtLeastOnceSince.usr.X_a_1 - (or AtLeastOnceSince.usr.X_a_1 AtLeastOnceSince.usr.XsinceY_a_0))) - (not AtLeastOnceSince.res.init_flag_a_1)) -) - -(define-fun - __node_init_one_button_0 ( - (one_button.usr.ccseti_a_0 Bool) - (one_button.usr.ccsetd_a_0 Bool) - (one_button.usr.ccr_a_0 Bool) - (one_button.usr.ob_a_0 Bool) - (one_button.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - one_button.usr.ob_a_0 - (or - (or - (and - (and one_button.usr.ccseti_a_0 (not one_button.usr.ccsetd_a_0)) - (not one_button.usr.ccr_a_0)) - (and - (and (not one_button.usr.ccseti_a_0) one_button.usr.ccsetd_a_0) - (not one_button.usr.ccr_a_0))) - (and - (and (not one_button.usr.ccseti_a_0) (not one_button.usr.ccsetd_a_0)) - one_button.usr.ccr_a_0))) - one_button.res.init_flag_a_0) -) - -(define-fun - __node_trans_one_button_0 ( - (one_button.usr.ccseti_a_1 Bool) - (one_button.usr.ccsetd_a_1 Bool) - (one_button.usr.ccr_a_1 Bool) - (one_button.usr.ob_a_1 Bool) - (one_button.res.init_flag_a_1 Bool) - (one_button.usr.ccseti_a_0 Bool) - (one_button.usr.ccsetd_a_0 Bool) - (one_button.usr.ccr_a_0 Bool) - (one_button.usr.ob_a_0 Bool) - (one_button.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - one_button.usr.ob_a_1 - (or - (or - (and - (and one_button.usr.ccseti_a_1 (not one_button.usr.ccsetd_a_1)) - (not one_button.usr.ccr_a_1)) - (and - (and (not one_button.usr.ccseti_a_1) one_button.usr.ccsetd_a_1) - (not one_button.usr.ccr_a_1))) - (and - (and (not one_button.usr.ccseti_a_1) (not one_button.usr.ccsetd_a_1)) - one_button.usr.ccr_a_1))) - (not one_button.res.init_flag_a_1)) -) - -(define-fun - __node_init_one_button_accept_0 ( - (one_button_accept.usr.ccseti_a_0 Bool) - (one_button_accept.usr.ccsetd_a_0 Bool) - (one_button_accept.usr.ccr_a_0 Bool) - (one_button_accept.usr.ccont_a_0 Bool) - (one_button_accept.usr.cca_a_0 Bool) - (one_button_accept.usr.oba_a_0 Bool) - (one_button_accept.res.init_flag_a_0 Bool) - (one_button_accept.res.abs_0_a_0 Bool) - (one_button_accept.res.abs_1_a_0 Bool) - (one_button_accept.res.abs_2_a_0 Bool) - (one_button_accept.res.abs_3_a_0 Bool) - (one_button_accept.res.inst_4_a_0 Bool) - (one_button_accept.res.inst_3_a_0 Bool) - (one_button_accept.res.inst_2_a_0 Bool) - (one_button_accept.res.inst_1_a_0 Bool) - (one_button_accept.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool one_button_accept.res.abs_0_a_0)) - (let - ((X2 Bool one_button_accept.res.abs_1_a_0)) - (and - (= - one_button_accept.usr.oba_a_0 - (ite - (and X1 X2) - (ite - (not one_button_accept.usr.ccr_a_0) - true - one_button_accept.res.abs_3_a_0) - false)) - (__node_init_one_button_0 - one_button_accept.usr.ccseti_a_0 - one_button_accept.usr.ccsetd_a_0 - one_button_accept.usr.ccr_a_0 - one_button_accept.res.abs_1_a_0 - one_button_accept.res.inst_4_a_0) - (__node_init_prev_no_button_0 - one_button_accept.usr.ccseti_a_0 - one_button_accept.usr.ccsetd_a_0 - one_button_accept.usr.ccr_a_0 - one_button_accept.res.abs_0_a_0 - one_button_accept.res.inst_3_a_0 - one_button_accept.res.inst_2_a_0) - (__node_init_AtLeastOnceSince_0 - one_button_accept.usr.cca_a_0 - one_button_accept.res.abs_2_a_0 - one_button_accept.res.abs_3_a_0 - one_button_accept.res.inst_1_a_0) - (__node_init_PosEdge_0 - one_button_accept.usr.ccont_a_0 - one_button_accept.res.abs_2_a_0 - one_button_accept.res.inst_0_a_0) - one_button_accept.res.init_flag_a_0))) -) - -(define-fun - __node_trans_one_button_accept_0 ( - (one_button_accept.usr.ccseti_a_1 Bool) - (one_button_accept.usr.ccsetd_a_1 Bool) - (one_button_accept.usr.ccr_a_1 Bool) - (one_button_accept.usr.ccont_a_1 Bool) - (one_button_accept.usr.cca_a_1 Bool) - (one_button_accept.usr.oba_a_1 Bool) - (one_button_accept.res.init_flag_a_1 Bool) - (one_button_accept.res.abs_0_a_1 Bool) - (one_button_accept.res.abs_1_a_1 Bool) - (one_button_accept.res.abs_2_a_1 Bool) - (one_button_accept.res.abs_3_a_1 Bool) - (one_button_accept.res.inst_4_a_1 Bool) - (one_button_accept.res.inst_3_a_1 Bool) - (one_button_accept.res.inst_2_a_1 Bool) - (one_button_accept.res.inst_1_a_1 Bool) - (one_button_accept.res.inst_0_a_1 Bool) - (one_button_accept.usr.ccseti_a_0 Bool) - (one_button_accept.usr.ccsetd_a_0 Bool) - (one_button_accept.usr.ccr_a_0 Bool) - (one_button_accept.usr.ccont_a_0 Bool) - (one_button_accept.usr.cca_a_0 Bool) - (one_button_accept.usr.oba_a_0 Bool) - (one_button_accept.res.init_flag_a_0 Bool) - (one_button_accept.res.abs_0_a_0 Bool) - (one_button_accept.res.abs_1_a_0 Bool) - (one_button_accept.res.abs_2_a_0 Bool) - (one_button_accept.res.abs_3_a_0 Bool) - (one_button_accept.res.inst_4_a_0 Bool) - (one_button_accept.res.inst_3_a_0 Bool) - (one_button_accept.res.inst_2_a_0 Bool) - (one_button_accept.res.inst_1_a_0 Bool) - (one_button_accept.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool one_button_accept.res.abs_0_a_1)) - (let - ((X2 Bool one_button_accept.res.abs_1_a_1)) - (and - (= - one_button_accept.usr.oba_a_1 - (ite - (and X1 X2) - (ite - (not one_button_accept.usr.ccr_a_1) - true - one_button_accept.res.abs_3_a_1) - false)) - (__node_trans_one_button_0 - one_button_accept.usr.ccseti_a_1 - one_button_accept.usr.ccsetd_a_1 - one_button_accept.usr.ccr_a_1 - one_button_accept.res.abs_1_a_1 - one_button_accept.res.inst_4_a_1 - one_button_accept.usr.ccseti_a_0 - one_button_accept.usr.ccsetd_a_0 - one_button_accept.usr.ccr_a_0 - one_button_accept.res.abs_1_a_0 - one_button_accept.res.inst_4_a_0) - (__node_trans_prev_no_button_0 - one_button_accept.usr.ccseti_a_1 - one_button_accept.usr.ccsetd_a_1 - one_button_accept.usr.ccr_a_1 - one_button_accept.res.abs_0_a_1 - one_button_accept.res.inst_3_a_1 - one_button_accept.res.inst_2_a_1 - one_button_accept.usr.ccseti_a_0 - one_button_accept.usr.ccsetd_a_0 - one_button_accept.usr.ccr_a_0 - one_button_accept.res.abs_0_a_0 - one_button_accept.res.inst_3_a_0 - one_button_accept.res.inst_2_a_0) - (__node_trans_AtLeastOnceSince_0 - one_button_accept.usr.cca_a_1 - one_button_accept.res.abs_2_a_1 - one_button_accept.res.abs_3_a_1 - one_button_accept.res.inst_1_a_1 - one_button_accept.usr.cca_a_0 - one_button_accept.res.abs_2_a_0 - one_button_accept.res.abs_3_a_0 - one_button_accept.res.inst_1_a_0) - (__node_trans_PosEdge_0 - one_button_accept.usr.ccont_a_1 - one_button_accept.res.abs_2_a_1 - one_button_accept.res.inst_0_a_1 - one_button_accept.usr.ccont_a_0 - one_button_accept.res.abs_2_a_0 - one_button_accept.res.inst_0_a_0) - (not one_button_accept.res.init_flag_a_1)))) -) - -(define-fun - __node_init_main_0 ( - (main.usr.igsw_a_0 Bool) - (main.usr.ccd_a_0 Bool) - (main.usr.cconoff_a_0 Bool) - (main.usr.bpa_a_0 Bool) - (main.usr.cccanc_a_0 Bool) - (main.usr.battok_a_0 Bool) - (main.usr.gearok_a_0 Bool) - (main.usr.qfok_a_0 Bool) - (main.usr.sdok_a_0 Bool) - (main.usr.accok_a_0 Bool) - (main.usr.ccseti_a_0 Bool) - (main.usr.ccsetd_a_0 Bool) - (main.usr.ccr_a_0 Bool) - (main.usr.vs_a_0 Int) - (main.res.nondet_0 Bool) - (main.usr.ccont_a_0 Bool) - (main.usr.cca_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Bool) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Bool) - (main.res.inst_17_a_0 Bool) - (main.res.inst_16_a_0 Bool) - (main.res.inst_15_a_0 Bool) - (main.res.inst_14_a_0 Bool) - (main.res.inst_13_a_0 Bool) - (main.res.inst_12_a_0 Bool) - (main.res.inst_11_a_0 Bool) - (main.res.inst_10_a_0 Bool) - (main.res.inst_9_a_0 Bool) - (main.res.inst_8_a_0 Bool) - (main.res.inst_7_a_0 Bool) - (main.res.inst_6_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Bool) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Bool) - (main.res.inst_0_a_0 Bool) - ) Bool - - (and - (= main.usr.ccont_a_0 false) - (= main.res.abs_2_a_0 (not main.usr.ccont_a_0)) - (= main.usr.cca_a_0 false) - (let - ((X1 Bool main.res.abs_3_a_0)) - (and - (= main.res.abs_4_a_0 (let ((X2 Bool main.res.nondet_0)) X2)) - (__node_init_Edge_0 main.usr.igsw_a_0 main.res.abs_0_a_0 main.res.inst_17_a_0) - (__node_init_PosEdge_0 - main.usr.cconoff_a_0 - main.res.abs_1_a_0 - main.res.inst_16_a_0) - (__node_init_cc_allowed_0 - main.usr.ccont_a_0 - main.usr.igsw_a_0 - main.usr.bpa_a_0 - main.usr.cccanc_a_0 - main.usr.battok_a_0 - main.usr.gearok_a_0 - main.usr.qfok_a_0 - main.usr.sdok_a_0 - main.usr.accok_a_0 - main.usr.vs_a_0 - main.res.abs_3_a_0 - main.res.inst_15_a_0 - main.res.inst_14_a_0 - main.res.inst_13_a_0 - main.res.inst_12_a_0 - main.res.inst_11_a_0 - main.res.inst_10_a_0) - (__node_init_one_button_accept_0 - main.usr.ccseti_a_0 - main.usr.ccsetd_a_0 - main.usr.ccr_a_0 - main.usr.ccont_a_0 - main.res.abs_4_a_0 - main.res.abs_5_a_0 - main.res.inst_9_a_0 - main.res.inst_8_a_0 - main.res.inst_7_a_0 - main.res.inst_6_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0 - main.res.inst_3_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0 - main.res.inst_0_a_0) - main.res.init_flag_a_0))) -) - -(define-fun - __node_trans_main_0 ( - (main.usr.igsw_a_1 Bool) - (main.usr.ccd_a_1 Bool) - (main.usr.cconoff_a_1 Bool) - (main.usr.bpa_a_1 Bool) - (main.usr.cccanc_a_1 Bool) - (main.usr.battok_a_1 Bool) - (main.usr.gearok_a_1 Bool) - (main.usr.qfok_a_1 Bool) - (main.usr.sdok_a_1 Bool) - (main.usr.accok_a_1 Bool) - (main.usr.ccseti_a_1 Bool) - (main.usr.ccsetd_a_1 Bool) - (main.usr.ccr_a_1 Bool) - (main.usr.vs_a_1 Int) - (main.res.nondet_0 Bool) - (main.usr.ccont_a_1 Bool) - (main.usr.cca_a_1 Bool) - (main.res.init_flag_a_1 Bool) - (main.res.abs_0_a_1 Bool) - (main.res.abs_1_a_1 Bool) - (main.res.abs_2_a_1 Bool) - (main.res.abs_3_a_1 Bool) - (main.res.abs_4_a_1 Bool) - (main.res.abs_5_a_1 Bool) - (main.res.inst_17_a_1 Bool) - (main.res.inst_16_a_1 Bool) - (main.res.inst_15_a_1 Bool) - (main.res.inst_14_a_1 Bool) - (main.res.inst_13_a_1 Bool) - (main.res.inst_12_a_1 Bool) - (main.res.inst_11_a_1 Bool) - (main.res.inst_10_a_1 Bool) - (main.res.inst_9_a_1 Bool) - (main.res.inst_8_a_1 Bool) - (main.res.inst_7_a_1 Bool) - (main.res.inst_6_a_1 Bool) - (main.res.inst_5_a_1 Bool) - (main.res.inst_4_a_1 Bool) - (main.res.inst_3_a_1 Bool) - (main.res.inst_2_a_1 Bool) - (main.res.inst_1_a_1 Bool) - (main.res.inst_0_a_1 Bool) - (main.usr.igsw_a_0 Bool) - (main.usr.ccd_a_0 Bool) - (main.usr.cconoff_a_0 Bool) - (main.usr.bpa_a_0 Bool) - (main.usr.cccanc_a_0 Bool) - (main.usr.battok_a_0 Bool) - (main.usr.gearok_a_0 Bool) - (main.usr.qfok_a_0 Bool) - (main.usr.sdok_a_0 Bool) - (main.usr.accok_a_0 Bool) - (main.usr.ccseti_a_0 Bool) - (main.usr.ccsetd_a_0 Bool) - (main.usr.ccr_a_0 Bool) - (main.usr.vs_a_0 Int) - (main.usr.ccont_a_0 Bool) - (main.usr.cca_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Bool) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Bool) - (main.res.inst_17_a_0 Bool) - (main.res.inst_16_a_0 Bool) - (main.res.inst_15_a_0 Bool) - (main.res.inst_14_a_0 Bool) - (main.res.inst_13_a_0 Bool) - (main.res.inst_12_a_0 Bool) - (main.res.inst_11_a_0 Bool) - (main.res.inst_10_a_0 Bool) - (main.res.inst_9_a_0 Bool) - (main.res.inst_8_a_0 Bool) - (main.res.inst_7_a_0 Bool) - (main.res.inst_6_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Bool) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Bool) - (main.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - main.usr.ccont_a_1 - (ite - (or - (or main.res.abs_0_a_1 main.usr.ccd_a_1) - (and main.usr.ccont_a_0 main.res.abs_1_a_1)) - false - (ite (and main.res.abs_2_a_0 main.res.abs_1_a_1) true main.usr.ccont_a_0))) - (= main.res.abs_2_a_1 (not main.usr.ccont_a_1)) - (= main.res.abs_4_a_1 main.usr.cca_a_0) - (let - ((X1 Bool main.res.abs_3_a_1)) - (and - (= - main.usr.cca_a_1 - (ite - (and main.res.abs_5_a_1 X1) - true - (ite (not X1) false main.usr.cca_a_0))) - (__node_trans_Edge_0 - main.usr.igsw_a_1 - main.res.abs_0_a_1 - main.res.inst_17_a_1 - main.usr.igsw_a_0 - main.res.abs_0_a_0 - main.res.inst_17_a_0) - (__node_trans_PosEdge_0 - main.usr.cconoff_a_1 - main.res.abs_1_a_1 - main.res.inst_16_a_1 - main.usr.cconoff_a_0 - main.res.abs_1_a_0 - main.res.inst_16_a_0) - (__node_trans_cc_allowed_0 - main.usr.ccont_a_1 - main.usr.igsw_a_1 - main.usr.bpa_a_1 - main.usr.cccanc_a_1 - main.usr.battok_a_1 - main.usr.gearok_a_1 - main.usr.qfok_a_1 - main.usr.sdok_a_1 - main.usr.accok_a_1 - main.usr.vs_a_1 - main.res.abs_3_a_1 - main.res.inst_15_a_1 - main.res.inst_14_a_1 - main.res.inst_13_a_1 - main.res.inst_12_a_1 - main.res.inst_11_a_1 - main.res.inst_10_a_1 - main.usr.ccont_a_0 - main.usr.igsw_a_0 - main.usr.bpa_a_0 - main.usr.cccanc_a_0 - main.usr.battok_a_0 - main.usr.gearok_a_0 - main.usr.qfok_a_0 - main.usr.sdok_a_0 - main.usr.accok_a_0 - main.usr.vs_a_0 - main.res.abs_3_a_0 - main.res.inst_15_a_0 - main.res.inst_14_a_0 - main.res.inst_13_a_0 - main.res.inst_12_a_0 - main.res.inst_11_a_0 - main.res.inst_10_a_0) - (__node_trans_one_button_accept_0 - main.usr.ccseti_a_1 - main.usr.ccsetd_a_1 - main.usr.ccr_a_1 - main.usr.ccont_a_1 - main.res.abs_4_a_1 - main.res.abs_5_a_1 - main.res.inst_9_a_1 - main.res.inst_8_a_1 - main.res.inst_7_a_1 - main.res.inst_6_a_1 - main.res.inst_5_a_1 - main.res.inst_4_a_1 - main.res.inst_3_a_1 - main.res.inst_2_a_1 - main.res.inst_1_a_1 - main.res.inst_0_a_1 - main.usr.ccseti_a_0 - main.usr.ccsetd_a_0 - main.usr.ccr_a_0 - main.usr.ccont_a_0 - main.res.abs_4_a_0 - main.res.abs_5_a_0 - main.res.inst_9_a_0 - main.res.inst_8_a_0 - main.res.inst_7_a_0 - main.res.inst_6_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0 - main.res.inst_3_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0 - main.res.inst_0_a_0) - (not main.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.igsw_a_0 Bool) - (top.usr.ccd_a_0 Bool) - (top.usr.cconoff_a_0 Bool) - (top.usr.bpa_a_0 Bool) - (top.usr.cccanc_a_0 Bool) - (top.usr.battok_a_0 Bool) - (top.usr.gearok_a_0 Bool) - (top.usr.qfok_a_0 Bool) - (top.usr.sdok_a_0 Bool) - (top.usr.accok_a_0 Bool) - (top.usr.ccseti_a_0 Bool) - (top.usr.ccsetd_a_0 Bool) - (top.usr.ccr_a_0 Bool) - (top.usr.vs_a_0 Int) - (top.res.nondet_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.ccont_a_0 Bool) - (top.impl.usr.cca_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.inst_37_a_0 Bool) - (top.res.inst_36_a_0 Bool) - (top.res.inst_35_a_0 Bool) - (top.res.inst_34_a_0 Bool) - (top.res.inst_33_a_0 Bool) - (top.res.inst_32_a_0 Bool) - (top.res.inst_31_a_0 Bool) - (top.res.inst_30_a_0 Bool) - (top.res.inst_29_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Bool) - (top.res.inst_23_a_0 Bool) - (top.res.inst_22_a_0 Bool) - (top.res.inst_21_a_0 Bool) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.ccont_a_0 top.res.abs_8_a_0) - (= top.impl.usr.cca_a_0 top.res.abs_9_a_0) - (let - ((X1 Bool (ite top.res.abs_6_a_0 (not top.impl.usr.cca_a_0) true))) - (let - ((X2 - Bool (ite - top.res.abs_5_a_0 - (and - (and (not top.res.abs_6_a_0) (not top.usr.ccd_a_0)) - top.res.abs_7_a_0) - true))) - (let - ((X3 Bool (ite (not top.res.abs_4_a_0) (not top.impl.usr.cca_a_0) true))) - (let - ((X4 - Bool (ite - top.res.abs_0_a_0 - (or (or top.res.abs_1_a_0 top.res.abs_2_a_0) top.res.abs_3_a_0) - true))) - (and - (= top.usr.OK_a_0 (and (and (and X4 X3) X2) X1)) - (__node_init_PosEdge_0 - top.impl.usr.cca_a_0 - top.res.abs_0_a_0 - top.res.inst_37_a_0) - (__node_init_main_0 - top.usr.igsw_a_0 - top.usr.ccd_a_0 - top.usr.cconoff_a_0 - top.usr.bpa_a_0 - top.usr.cccanc_a_0 - top.usr.battok_a_0 - top.usr.gearok_a_0 - top.usr.qfok_a_0 - top.usr.sdok_a_0 - top.usr.accok_a_0 - top.usr.ccseti_a_0 - top.usr.ccsetd_a_0 - top.usr.ccr_a_0 - top.usr.vs_a_0 - top.res.nondet_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_36_a_0 - top.res.inst_35_a_0 - top.res.inst_34_a_0 - top.res.inst_33_a_0 - top.res.inst_32_a_0 - top.res.inst_31_a_0 - top.res.inst_30_a_0 - top.res.inst_29_a_0 - top.res.inst_28_a_0 - top.res.inst_27_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0) - (__node_init_PosEdge_0 - top.usr.ccseti_a_0 - top.res.abs_1_a_0 - top.res.inst_11_a_0) - (__node_init_PosEdge_0 - top.usr.ccsetd_a_0 - top.res.abs_2_a_0 - top.res.inst_10_a_0) - (__node_init_PosEdge_0 - top.usr.ccr_a_0 - top.res.abs_3_a_0 - top.res.inst_9_a_0) - (__node_init_cc_allowed_0 - top.impl.usr.ccont_a_0 - top.usr.igsw_a_0 - top.usr.bpa_a_0 - top.usr.cccanc_a_0 - top.usr.battok_a_0 - top.usr.gearok_a_0 - top.usr.qfok_a_0 - top.usr.sdok_a_0 - top.usr.accok_a_0 - top.usr.vs_a_0 - top.res.abs_4_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_PosEdge_0 - top.impl.usr.ccont_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_init_Edge_0 top.usr.igsw_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_PosEdge_0 - top.usr.cconoff_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.igsw_a_1 Bool) - (top.usr.ccd_a_1 Bool) - (top.usr.cconoff_a_1 Bool) - (top.usr.bpa_a_1 Bool) - (top.usr.cccanc_a_1 Bool) - (top.usr.battok_a_1 Bool) - (top.usr.gearok_a_1 Bool) - (top.usr.qfok_a_1 Bool) - (top.usr.sdok_a_1 Bool) - (top.usr.accok_a_1 Bool) - (top.usr.ccseti_a_1 Bool) - (top.usr.ccsetd_a_1 Bool) - (top.usr.ccr_a_1 Bool) - (top.usr.vs_a_1 Int) - (top.res.nondet_0 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.ccont_a_1 Bool) - (top.impl.usr.cca_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.inst_37_a_1 Bool) - (top.res.inst_36_a_1 Bool) - (top.res.inst_35_a_1 Bool) - (top.res.inst_34_a_1 Bool) - (top.res.inst_33_a_1 Bool) - (top.res.inst_32_a_1 Bool) - (top.res.inst_31_a_1 Bool) - (top.res.inst_30_a_1 Bool) - (top.res.inst_29_a_1 Bool) - (top.res.inst_28_a_1 Bool) - (top.res.inst_27_a_1 Bool) - (top.res.inst_26_a_1 Bool) - (top.res.inst_25_a_1 Bool) - (top.res.inst_24_a_1 Bool) - (top.res.inst_23_a_1 Bool) - (top.res.inst_22_a_1 Bool) - (top.res.inst_21_a_1 Bool) - (top.res.inst_20_a_1 Bool) - (top.res.inst_19_a_1 Bool) - (top.res.inst_18_a_1 Bool) - (top.res.inst_17_a_1 Bool) - (top.res.inst_16_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Bool) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Bool) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Bool) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.igsw_a_0 Bool) - (top.usr.ccd_a_0 Bool) - (top.usr.cconoff_a_0 Bool) - (top.usr.bpa_a_0 Bool) - (top.usr.cccanc_a_0 Bool) - (top.usr.battok_a_0 Bool) - (top.usr.gearok_a_0 Bool) - (top.usr.qfok_a_0 Bool) - (top.usr.sdok_a_0 Bool) - (top.usr.accok_a_0 Bool) - (top.usr.ccseti_a_0 Bool) - (top.usr.ccsetd_a_0 Bool) - (top.usr.ccr_a_0 Bool) - (top.usr.vs_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.ccont_a_0 Bool) - (top.impl.usr.cca_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.inst_37_a_0 Bool) - (top.res.inst_36_a_0 Bool) - (top.res.inst_35_a_0 Bool) - (top.res.inst_34_a_0 Bool) - (top.res.inst_33_a_0 Bool) - (top.res.inst_32_a_0 Bool) - (top.res.inst_31_a_0 Bool) - (top.res.inst_30_a_0 Bool) - (top.res.inst_29_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Bool) - (top.res.inst_23_a_0 Bool) - (top.res.inst_22_a_0 Bool) - (top.res.inst_21_a_0 Bool) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.ccont_a_1 top.res.abs_8_a_1) - (= top.impl.usr.cca_a_1 top.res.abs_9_a_1) - (let - ((X1 Bool (ite top.res.abs_6_a_1 (not top.impl.usr.cca_a_1) true))) - (let - ((X2 - Bool (ite - top.res.abs_5_a_1 - (and - (and (not top.res.abs_6_a_1) (not top.usr.ccd_a_1)) - top.res.abs_7_a_1) - true))) - (let - ((X3 Bool (ite (not top.res.abs_4_a_1) (not top.impl.usr.cca_a_1) true))) - (let - ((X4 - Bool (ite - top.res.abs_0_a_1 - (or (or top.res.abs_1_a_1 top.res.abs_2_a_1) top.res.abs_3_a_1) - true))) - (and - (= top.usr.OK_a_1 (and (and (and X4 X3) X2) X1)) - (__node_trans_PosEdge_0 - top.impl.usr.cca_a_1 - top.res.abs_0_a_1 - top.res.inst_37_a_1 - top.impl.usr.cca_a_0 - top.res.abs_0_a_0 - top.res.inst_37_a_0) - (__node_trans_main_0 - top.usr.igsw_a_1 - top.usr.ccd_a_1 - top.usr.cconoff_a_1 - top.usr.bpa_a_1 - top.usr.cccanc_a_1 - top.usr.battok_a_1 - top.usr.gearok_a_1 - top.usr.qfok_a_1 - top.usr.sdok_a_1 - top.usr.accok_a_1 - top.usr.ccseti_a_1 - top.usr.ccsetd_a_1 - top.usr.ccr_a_1 - top.usr.vs_a_1 - top.res.nondet_0 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_36_a_1 - top.res.inst_35_a_1 - top.res.inst_34_a_1 - top.res.inst_33_a_1 - top.res.inst_32_a_1 - top.res.inst_31_a_1 - top.res.inst_30_a_1 - top.res.inst_29_a_1 - top.res.inst_28_a_1 - top.res.inst_27_a_1 - top.res.inst_26_a_1 - top.res.inst_25_a_1 - top.res.inst_24_a_1 - top.res.inst_23_a_1 - top.res.inst_22_a_1 - top.res.inst_21_a_1 - top.res.inst_20_a_1 - top.res.inst_19_a_1 - top.res.inst_18_a_1 - top.res.inst_17_a_1 - top.res.inst_16_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.usr.igsw_a_0 - top.usr.ccd_a_0 - top.usr.cconoff_a_0 - top.usr.bpa_a_0 - top.usr.cccanc_a_0 - top.usr.battok_a_0 - top.usr.gearok_a_0 - top.usr.qfok_a_0 - top.usr.sdok_a_0 - top.usr.accok_a_0 - top.usr.ccseti_a_0 - top.usr.ccsetd_a_0 - top.usr.ccr_a_0 - top.usr.vs_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_36_a_0 - top.res.inst_35_a_0 - top.res.inst_34_a_0 - top.res.inst_33_a_0 - top.res.inst_32_a_0 - top.res.inst_31_a_0 - top.res.inst_30_a_0 - top.res.inst_29_a_0 - top.res.inst_28_a_0 - top.res.inst_27_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0) - (__node_trans_PosEdge_0 - top.usr.ccseti_a_1 - top.res.abs_1_a_1 - top.res.inst_11_a_1 - top.usr.ccseti_a_0 - top.res.abs_1_a_0 - top.res.inst_11_a_0) - (__node_trans_PosEdge_0 - top.usr.ccsetd_a_1 - top.res.abs_2_a_1 - top.res.inst_10_a_1 - top.usr.ccsetd_a_0 - top.res.abs_2_a_0 - top.res.inst_10_a_0) - (__node_trans_PosEdge_0 - top.usr.ccr_a_1 - top.res.abs_3_a_1 - top.res.inst_9_a_1 - top.usr.ccr_a_0 - top.res.abs_3_a_0 - top.res.inst_9_a_0) - (__node_trans_cc_allowed_0 - top.impl.usr.ccont_a_1 - top.usr.igsw_a_1 - top.usr.bpa_a_1 - top.usr.cccanc_a_1 - top.usr.battok_a_1 - top.usr.gearok_a_1 - top.usr.qfok_a_1 - top.usr.sdok_a_1 - top.usr.accok_a_1 - top.usr.vs_a_1 - top.res.abs_4_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.impl.usr.ccont_a_0 - top.usr.igsw_a_0 - top.usr.bpa_a_0 - top.usr.cccanc_a_0 - top.usr.battok_a_0 - top.usr.gearok_a_0 - top.usr.qfok_a_0 - top.usr.sdok_a_0 - top.usr.accok_a_0 - top.usr.vs_a_0 - top.res.abs_4_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_PosEdge_0 - top.impl.usr.ccont_a_1 - top.res.abs_5_a_1 - top.res.inst_2_a_1 - top.impl.usr.ccont_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_trans_Edge_0 - top.usr.igsw_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.usr.igsw_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_PosEdge_0 - top.usr.cconoff_a_1 - top.res.abs_7_a_1 - top.res.inst_0_a_1 - top.usr.cconoff_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.igsw Bool) - (top.usr.ccd Bool) - (top.usr.cconoff Bool) - (top.usr.bpa Bool) - (top.usr.cccanc Bool) - (top.usr.battok Bool) - (top.usr.gearok Bool) - (top.usr.qfok Bool) - (top.usr.sdok Bool) - (top.usr.accok Bool) - (top.usr.ccseti Bool) - (top.usr.ccsetd Bool) - (top.usr.ccr Bool) - (top.usr.vs Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.ccont Bool) - (top.impl.usr.cca Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_0 () Bool) - -(declare-primed-var top.usr.igsw Bool) -(declare-primed-var top.usr.ccd Bool) -(declare-primed-var top.usr.cconoff Bool) -(declare-primed-var top.usr.bpa Bool) -(declare-primed-var top.usr.cccanc Bool) -(declare-primed-var top.usr.battok Bool) -(declare-primed-var top.usr.gearok Bool) -(declare-primed-var top.usr.qfok Bool) -(declare-primed-var top.usr.sdok Bool) -(declare-primed-var top.usr.accok Bool) -(declare-primed-var top.usr.ccseti Bool) -(declare-primed-var top.usr.ccsetd Bool) -(declare-primed-var top.usr.ccr Bool) -(declare-primed-var top.usr.vs Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.ccont Bool) -(declare-primed-var top.impl.usr.cca Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.inst_37 Bool) -(declare-primed-var top.res.inst_36 Bool) -(declare-primed-var top.res.inst_35 Bool) -(declare-primed-var top.res.inst_34 Bool) -(declare-primed-var top.res.inst_33 Bool) -(declare-primed-var top.res.inst_32 Bool) -(declare-primed-var top.res.inst_31 Bool) -(declare-primed-var top.res.inst_30 Bool) -(declare-primed-var top.res.inst_29 Bool) -(declare-primed-var top.res.inst_28 Bool) -(declare-primed-var top.res.inst_27 Bool) -(declare-primed-var top.res.inst_26 Bool) -(declare-primed-var top.res.inst_25 Bool) -(declare-primed-var top.res.inst_24 Bool) -(declare-primed-var top.res.inst_23 Bool) -(declare-primed-var top.res.inst_22 Bool) -(declare-primed-var top.res.inst_21 Bool) -(declare-primed-var top.res.inst_20 Bool) -(declare-primed-var top.res.inst_19 Bool) -(declare-primed-var top.res.inst_18 Bool) -(declare-primed-var top.res.inst_17 Bool) -(declare-primed-var top.res.inst_16 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Bool) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Bool) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Bool) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.igsw Bool) - (top.usr.ccd Bool) - (top.usr.cconoff Bool) - (top.usr.bpa Bool) - (top.usr.cccanc Bool) - (top.usr.battok Bool) - (top.usr.gearok Bool) - (top.usr.qfok Bool) - (top.usr.sdok Bool) - (top.usr.accok Bool) - (top.usr.ccseti Bool) - (top.usr.ccsetd Bool) - (top.usr.ccr Bool) - (top.usr.vs Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.ccont Bool) - (top.impl.usr.cca Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.impl.usr.ccont top.res.abs_8) - (= top.impl.usr.cca top.res.abs_9) - (let - ((X1 Bool (ite top.res.abs_6 (not top.impl.usr.cca) true))) - (let - ((X2 - Bool (ite - top.res.abs_5 - (and (and (not top.res.abs_6) (not top.usr.ccd)) top.res.abs_7) - true))) - (let - ((X3 Bool (ite (not top.res.abs_4) (not top.impl.usr.cca) true))) - (let - ((X4 - Bool (ite - top.res.abs_0 - (or (or top.res.abs_1 top.res.abs_2) top.res.abs_3) - true))) - (and - (= top.usr.OK (and (and (and X4 X3) X2) X1)) - (__node_init_PosEdge_0 - top.impl.usr.cca - top.res.abs_0 - top.res.inst_37) - (__node_init_main_0 - top.usr.igsw - top.usr.ccd - top.usr.cconoff - top.usr.bpa - top.usr.cccanc - top.usr.battok - top.usr.gearok - top.usr.qfok - top.usr.sdok - top.usr.accok - top.usr.ccseti - top.usr.ccsetd - top.usr.ccr - top.usr.vs - top.res.nondet_0 - top.res.abs_8 - top.res.abs_9 - top.res.inst_36 - top.res.inst_35 - top.res.inst_34 - top.res.inst_33 - top.res.inst_32 - top.res.inst_31 - top.res.inst_30 - top.res.inst_29 - top.res.inst_28 - top.res.inst_27 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12) - (__node_init_PosEdge_0 top.usr.ccseti top.res.abs_1 top.res.inst_11) - (__node_init_PosEdge_0 top.usr.ccsetd top.res.abs_2 top.res.inst_10) - (__node_init_PosEdge_0 top.usr.ccr top.res.abs_3 top.res.inst_9) - (__node_init_cc_allowed_0 - top.impl.usr.ccont - top.usr.igsw - top.usr.bpa - top.usr.cccanc - top.usr.battok - top.usr.gearok - top.usr.qfok - top.usr.sdok - top.usr.accok - top.usr.vs - top.res.abs_4 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_PosEdge_0 - top.impl.usr.ccont - top.res.abs_5 - top.res.inst_2) - (__node_init_Edge_0 top.usr.igsw top.res.abs_6 top.res.inst_1) - (__node_init_PosEdge_0 top.usr.cconoff top.res.abs_7 top.res.inst_0) - top.res.init_flag)))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.igsw Bool) - (top.usr.ccd Bool) - (top.usr.cconoff Bool) - (top.usr.bpa Bool) - (top.usr.cccanc Bool) - (top.usr.battok Bool) - (top.usr.gearok Bool) - (top.usr.qfok Bool) - (top.usr.sdok Bool) - (top.usr.accok Bool) - (top.usr.ccseti Bool) - (top.usr.ccsetd Bool) - (top.usr.ccr Bool) - (top.usr.vs Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.ccont Bool) - (top.impl.usr.cca Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.igsw! Bool) - (top.usr.ccd! Bool) - (top.usr.cconoff! Bool) - (top.usr.bpa! Bool) - (top.usr.cccanc! Bool) - (top.usr.battok! Bool) - (top.usr.gearok! Bool) - (top.usr.qfok! Bool) - (top.usr.sdok! Bool) - (top.usr.accok! Bool) - (top.usr.ccseti! Bool) - (top.usr.ccsetd! Bool) - (top.usr.ccr! Bool) - (top.usr.vs! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.ccont! Bool) - (top.impl.usr.cca! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.inst_37! Bool) - (top.res.inst_36! Bool) - (top.res.inst_35! Bool) - (top.res.inst_34! Bool) - (top.res.inst_33! Bool) - (top.res.inst_32! Bool) - (top.res.inst_31! Bool) - (top.res.inst_30! Bool) - (top.res.inst_29! Bool) - (top.res.inst_28! Bool) - (top.res.inst_27! Bool) - (top.res.inst_26! Bool) - (top.res.inst_25! Bool) - (top.res.inst_24! Bool) - (top.res.inst_23! Bool) - (top.res.inst_22! Bool) - (top.res.inst_21! Bool) - (top.res.inst_20! Bool) - (top.res.inst_19! Bool) - (top.res.inst_18! Bool) - (top.res.inst_17! Bool) - (top.res.inst_16! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Bool) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Bool) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Bool) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.impl.usr.ccont! top.res.abs_8!) - (= top.impl.usr.cca! top.res.abs_9!) - (let - ((X1 Bool (ite top.res.abs_6! (not top.impl.usr.cca!) true))) - (let - ((X2 - Bool (ite - top.res.abs_5! - (and - (and (not top.res.abs_6!) (not top.usr.ccd!)) - top.res.abs_7!) - true))) - (let - ((X3 Bool (ite (not top.res.abs_4!) (not top.impl.usr.cca!) true))) - (let - ((X4 - Bool (ite - top.res.abs_0! - (or (or top.res.abs_1! top.res.abs_2!) top.res.abs_3!) - true))) - (and - (= top.usr.OK! (and (and (and X4 X3) X2) X1)) - (__node_trans_PosEdge_0 - top.impl.usr.cca! - top.res.abs_0! - top.res.inst_37! - top.impl.usr.cca - top.res.abs_0 - top.res.inst_37) - (__node_trans_main_0 - top.usr.igsw! - top.usr.ccd! - top.usr.cconoff! - top.usr.bpa! - top.usr.cccanc! - top.usr.battok! - top.usr.gearok! - top.usr.qfok! - top.usr.sdok! - top.usr.accok! - top.usr.ccseti! - top.usr.ccsetd! - top.usr.ccr! - top.usr.vs! - top.res.nondet_0 - top.res.abs_8! - top.res.abs_9! - top.res.inst_36! - top.res.inst_35! - top.res.inst_34! - top.res.inst_33! - top.res.inst_32! - top.res.inst_31! - top.res.inst_30! - top.res.inst_29! - top.res.inst_28! - top.res.inst_27! - top.res.inst_26! - top.res.inst_25! - top.res.inst_24! - top.res.inst_23! - top.res.inst_22! - top.res.inst_21! - top.res.inst_20! - top.res.inst_19! - top.res.inst_18! - top.res.inst_17! - top.res.inst_16! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.usr.igsw - top.usr.ccd - top.usr.cconoff - top.usr.bpa - top.usr.cccanc - top.usr.battok - top.usr.gearok - top.usr.qfok - top.usr.sdok - top.usr.accok - top.usr.ccseti - top.usr.ccsetd - top.usr.ccr - top.usr.vs - top.res.abs_8 - top.res.abs_9 - top.res.inst_36 - top.res.inst_35 - top.res.inst_34 - top.res.inst_33 - top.res.inst_32 - top.res.inst_31 - top.res.inst_30 - top.res.inst_29 - top.res.inst_28 - top.res.inst_27 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12) - (__node_trans_PosEdge_0 - top.usr.ccseti! - top.res.abs_1! - top.res.inst_11! - top.usr.ccseti - top.res.abs_1 - top.res.inst_11) - (__node_trans_PosEdge_0 - top.usr.ccsetd! - top.res.abs_2! - top.res.inst_10! - top.usr.ccsetd - top.res.abs_2 - top.res.inst_10) - (__node_trans_PosEdge_0 - top.usr.ccr! - top.res.abs_3! - top.res.inst_9! - top.usr.ccr - top.res.abs_3 - top.res.inst_9) - (__node_trans_cc_allowed_0 - top.impl.usr.ccont! - top.usr.igsw! - top.usr.bpa! - top.usr.cccanc! - top.usr.battok! - top.usr.gearok! - top.usr.qfok! - top.usr.sdok! - top.usr.accok! - top.usr.vs! - top.res.abs_4! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.impl.usr.ccont - top.usr.igsw - top.usr.bpa - top.usr.cccanc - top.usr.battok - top.usr.gearok - top.usr.qfok - top.usr.sdok - top.usr.accok - top.usr.vs - top.res.abs_4 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_PosEdge_0 - top.impl.usr.ccont! - top.res.abs_5! - top.res.inst_2! - top.impl.usr.ccont - top.res.abs_5 - top.res.inst_2) - (__node_trans_Edge_0 - top.usr.igsw! - top.res.abs_6! - top.res.inst_1! - top.usr.igsw - top.res.abs_6 - top.res.inst_1) - (__node_trans_PosEdge_0 - top.usr.cconoff! - top.res.abs_7! - top.res.inst_0! - top.usr.cconoff - top.res.abs_7 - top.res.inst_0) - (not top.res.init_flag!))))))) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.igsw Bool) - (top.usr.ccd Bool) - (top.usr.cconoff Bool) - (top.usr.bpa Bool) - (top.usr.cccanc Bool) - (top.usr.battok Bool) - (top.usr.gearok Bool) - (top.usr.qfok Bool) - (top.usr.sdok Bool) - (top.usr.accok Bool) - (top.usr.ccseti Bool) - (top.usr.ccsetd Bool) - (top.usr.ccr Bool) - (top.usr.vs Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.ccont Bool) - (top.impl.usr.cca Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_MoreThanTwoSec_0 ((MoreThanTwoSec.usr.X_a_0 Bool) (MoreThanTwoSec.usr.Y_a_0 Bool) (MoreThanTwoSec.res.init_flag_a_0 Bool) (MoreThanTwoSec.res.abs_0_a_0 Bool)) Bool + (and (= MoreThanTwoSec.usr.Y_a_0 false) (= MoreThanTwoSec.res.abs_0_a_0 false) MoreThanTwoSec.res.init_flag_a_0)) +(define-fun __node_trans_MoreThanTwoSec_0 ((MoreThanTwoSec.usr.X_a_1 Bool) (MoreThanTwoSec.usr.Y_a_1 Bool) (MoreThanTwoSec.res.init_flag_a_1 Bool) (MoreThanTwoSec.res.abs_0_a_1 Bool) (MoreThanTwoSec.usr.X_a_0 Bool) (MoreThanTwoSec.usr.Y_a_0 Bool) (MoreThanTwoSec.res.init_flag_a_0 Bool) (MoreThanTwoSec.res.abs_0_a_0 Bool)) Bool + (and (= MoreThanTwoSec.usr.Y_a_1 (and MoreThanTwoSec.res.abs_0_a_0 MoreThanTwoSec.usr.X_a_1)) (= MoreThanTwoSec.res.abs_0_a_1 (and MoreThanTwoSec.usr.X_a_0 MoreThanTwoSec.usr.X_a_1)) (not MoreThanTwoSec.res.init_flag_a_1))) +(define-fun __node_init_MoreThanOneSec_0 ((MoreThanOneSec.usr.X_a_0 Bool) (MoreThanOneSec.usr.Y_a_0 Bool) (MoreThanOneSec.res.init_flag_a_0 Bool)) Bool + (and (= MoreThanOneSec.usr.Y_a_0 false) MoreThanOneSec.res.init_flag_a_0)) +(define-fun __node_trans_MoreThanOneSec_0 ((MoreThanOneSec.usr.X_a_1 Bool) (MoreThanOneSec.usr.Y_a_1 Bool) (MoreThanOneSec.res.init_flag_a_1 Bool) (MoreThanOneSec.usr.X_a_0 Bool) (MoreThanOneSec.usr.Y_a_0 Bool) (MoreThanOneSec.res.init_flag_a_0 Bool)) Bool + (and (= MoreThanOneSec.usr.Y_a_1 (and MoreThanOneSec.usr.X_a_0 MoreThanOneSec.usr.X_a_1)) (not MoreThanOneSec.res.init_flag_a_1))) +(define-fun __node_init_cc_allowed_0 ((cc_allowed.usr.ccont_a_0 Bool) (cc_allowed.usr.igsw_a_0 Bool) (cc_allowed.usr.bpa_a_0 Bool) (cc_allowed.usr.cccanc_a_0 Bool) (cc_allowed.usr.battok_a_0 Bool) (cc_allowed.usr.gearok_a_0 Bool) (cc_allowed.usr.qfok_a_0 Bool) (cc_allowed.usr.sdok_a_0 Bool) (cc_allowed.usr.accok_a_0 Bool) (cc_allowed.usr.vs_a_0 Int) (cc_allowed.usr.ccall_a_0 Bool) (cc_allowed.res.init_flag_a_0 Bool) (cc_allowed.res.abs_0_a_0 Bool) (cc_allowed.res.abs_1_a_0 Bool) (cc_allowed.res.inst_2_a_0 Bool) (cc_allowed.res.inst_1_a_0 Bool) (cc_allowed.res.inst_0_a_0 Bool)) Bool + (and (= cc_allowed.usr.ccall_a_0 (and (and (and (and (and (and (and (and (and cc_allowed.usr.ccont_a_0 (not cc_allowed.usr.bpa_a_0)) cc_allowed.usr.battok_a_0) cc_allowed.usr.gearok_a_0) cc_allowed.usr.qfok_a_0) cc_allowed.res.abs_0_a_0) (<= 35 cc_allowed.usr.vs_a_0)) (<= cc_allowed.usr.vs_a_0 200)) cc_allowed.res.abs_1_a_0) (not cc_allowed.usr.cccanc_a_0))) (__node_init_MoreThanOneSec_0 cc_allowed.usr.sdok_a_0 cc_allowed.res.abs_0_a_0 cc_allowed.res.inst_2_a_0) (__node_init_MoreThanTwoSec_0 cc_allowed.usr.accok_a_0 cc_allowed.res.abs_1_a_0 cc_allowed.res.inst_1_a_0 cc_allowed.res.inst_0_a_0) cc_allowed.res.init_flag_a_0)) +(define-fun __node_trans_cc_allowed_0 ((cc_allowed.usr.ccont_a_1 Bool) (cc_allowed.usr.igsw_a_1 Bool) (cc_allowed.usr.bpa_a_1 Bool) (cc_allowed.usr.cccanc_a_1 Bool) (cc_allowed.usr.battok_a_1 Bool) (cc_allowed.usr.gearok_a_1 Bool) (cc_allowed.usr.qfok_a_1 Bool) (cc_allowed.usr.sdok_a_1 Bool) (cc_allowed.usr.accok_a_1 Bool) (cc_allowed.usr.vs_a_1 Int) (cc_allowed.usr.ccall_a_1 Bool) (cc_allowed.res.init_flag_a_1 Bool) (cc_allowed.res.abs_0_a_1 Bool) (cc_allowed.res.abs_1_a_1 Bool) (cc_allowed.res.inst_2_a_1 Bool) (cc_allowed.res.inst_1_a_1 Bool) (cc_allowed.res.inst_0_a_1 Bool) (cc_allowed.usr.ccont_a_0 Bool) (cc_allowed.usr.igsw_a_0 Bool) (cc_allowed.usr.bpa_a_0 Bool) (cc_allowed.usr.cccanc_a_0 Bool) (cc_allowed.usr.battok_a_0 Bool) (cc_allowed.usr.gearok_a_0 Bool) (cc_allowed.usr.qfok_a_0 Bool) (cc_allowed.usr.sdok_a_0 Bool) (cc_allowed.usr.accok_a_0 Bool) (cc_allowed.usr.vs_a_0 Int) (cc_allowed.usr.ccall_a_0 Bool) (cc_allowed.res.init_flag_a_0 Bool) (cc_allowed.res.abs_0_a_0 Bool) (cc_allowed.res.abs_1_a_0 Bool) (cc_allowed.res.inst_2_a_0 Bool) (cc_allowed.res.inst_1_a_0 Bool) (cc_allowed.res.inst_0_a_0 Bool)) Bool + (and (= cc_allowed.usr.ccall_a_1 (and (and (and (and (and (and (and (and (and cc_allowed.usr.ccont_a_1 (not cc_allowed.usr.bpa_a_1)) cc_allowed.usr.battok_a_1) cc_allowed.usr.gearok_a_1) cc_allowed.usr.qfok_a_1) cc_allowed.res.abs_0_a_1) (<= 35 cc_allowed.usr.vs_a_1)) (<= cc_allowed.usr.vs_a_1 200)) cc_allowed.res.abs_1_a_1) (not cc_allowed.usr.cccanc_a_1))) (__node_trans_MoreThanOneSec_0 cc_allowed.usr.sdok_a_1 cc_allowed.res.abs_0_a_1 cc_allowed.res.inst_2_a_1 cc_allowed.usr.sdok_a_0 cc_allowed.res.abs_0_a_0 cc_allowed.res.inst_2_a_0) (__node_trans_MoreThanTwoSec_0 cc_allowed.usr.accok_a_1 cc_allowed.res.abs_1_a_1 cc_allowed.res.inst_1_a_1 cc_allowed.res.inst_0_a_1 cc_allowed.usr.accok_a_0 cc_allowed.res.abs_1_a_0 cc_allowed.res.inst_1_a_0 cc_allowed.res.inst_0_a_0) (not cc_allowed.res.init_flag_a_1))) +(define-fun __node_init_PosEdge_0 ((PosEdge.usr.X_a_0 Bool) (PosEdge.usr.Y_a_0 Bool) (PosEdge.res.init_flag_a_0 Bool)) Bool + (and (= PosEdge.usr.Y_a_0 false) PosEdge.res.init_flag_a_0)) +(define-fun __node_trans_PosEdge_0 ((PosEdge.usr.X_a_1 Bool) (PosEdge.usr.Y_a_1 Bool) (PosEdge.res.init_flag_a_1 Bool) (PosEdge.usr.X_a_0 Bool) (PosEdge.usr.Y_a_0 Bool) (PosEdge.res.init_flag_a_0 Bool)) Bool + (and (= PosEdge.usr.Y_a_1 (and PosEdge.usr.X_a_1 (not PosEdge.usr.X_a_0))) (not PosEdge.res.init_flag_a_1))) +(define-fun __node_init_Edge_0 ((Edge.usr.X_a_0 Bool) (Edge.usr.Y_a_0 Bool) (Edge.res.init_flag_a_0 Bool)) Bool + (and (= Edge.usr.Y_a_0 false) Edge.res.init_flag_a_0)) +(define-fun __node_trans_Edge_0 ((Edge.usr.X_a_1 Bool) (Edge.usr.Y_a_1 Bool) (Edge.res.init_flag_a_1 Bool) (Edge.usr.X_a_0 Bool) (Edge.usr.Y_a_0 Bool) (Edge.res.init_flag_a_0 Bool)) Bool + (and (= Edge.usr.Y_a_1 (or (and Edge.usr.X_a_1 (not Edge.usr.X_a_0)) (and (not Edge.usr.X_a_1) Edge.usr.X_a_0))) (not Edge.res.init_flag_a_1))) +(define-fun __node_init_prev_no_button_0 ((prev_no_button.usr.ccseti_a_0 Bool) (prev_no_button.usr.ccsetd_a_0 Bool) (prev_no_button.usr.ccr_a_0 Bool) (prev_no_button.usr.pnb_a_0 Bool) (prev_no_button.res.init_flag_a_0 Bool) (prev_no_button.res.abs_0_a_0 Bool)) Bool + (and (= prev_no_button.usr.pnb_a_0 true) (= prev_no_button.res.abs_0_a_0 (and (and (not prev_no_button.usr.ccseti_a_0) (not prev_no_button.usr.ccsetd_a_0)) (not prev_no_button.usr.ccr_a_0))) prev_no_button.res.init_flag_a_0)) +(define-fun __node_trans_prev_no_button_0 ((prev_no_button.usr.ccseti_a_1 Bool) (prev_no_button.usr.ccsetd_a_1 Bool) (prev_no_button.usr.ccr_a_1 Bool) (prev_no_button.usr.pnb_a_1 Bool) (prev_no_button.res.init_flag_a_1 Bool) (prev_no_button.res.abs_0_a_1 Bool) (prev_no_button.usr.ccseti_a_0 Bool) (prev_no_button.usr.ccsetd_a_0 Bool) (prev_no_button.usr.ccr_a_0 Bool) (prev_no_button.usr.pnb_a_0 Bool) (prev_no_button.res.init_flag_a_0 Bool) (prev_no_button.res.abs_0_a_0 Bool)) Bool + (and (= prev_no_button.usr.pnb_a_1 prev_no_button.res.abs_0_a_0) (= prev_no_button.res.abs_0_a_1 (and (and (not prev_no_button.usr.ccseti_a_1) (not prev_no_button.usr.ccsetd_a_1)) (not prev_no_button.usr.ccr_a_1))) (not prev_no_button.res.init_flag_a_1))) +(define-fun __node_init_AtLeastOnceSince_0 ((AtLeastOnceSince.usr.X_a_0 Bool) (AtLeastOnceSince.usr.Y_a_0 Bool) (AtLeastOnceSince.usr.XsinceY_a_0 Bool) (AtLeastOnceSince.res.init_flag_a_0 Bool)) Bool + (and (= AtLeastOnceSince.usr.XsinceY_a_0 (ite AtLeastOnceSince.usr.Y_a_0 AtLeastOnceSince.usr.X_a_0 true)) AtLeastOnceSince.res.init_flag_a_0)) +(define-fun __node_trans_AtLeastOnceSince_0 ((AtLeastOnceSince.usr.X_a_1 Bool) (AtLeastOnceSince.usr.Y_a_1 Bool) (AtLeastOnceSince.usr.XsinceY_a_1 Bool) (AtLeastOnceSince.res.init_flag_a_1 Bool) (AtLeastOnceSince.usr.X_a_0 Bool) (AtLeastOnceSince.usr.Y_a_0 Bool) (AtLeastOnceSince.usr.XsinceY_a_0 Bool) (AtLeastOnceSince.res.init_flag_a_0 Bool)) Bool + (and (= AtLeastOnceSince.usr.XsinceY_a_1 (ite AtLeastOnceSince.usr.Y_a_1 AtLeastOnceSince.usr.X_a_1 (or AtLeastOnceSince.usr.X_a_1 AtLeastOnceSince.usr.XsinceY_a_0))) (not AtLeastOnceSince.res.init_flag_a_1))) +(define-fun __node_init_one_button_0 ((one_button.usr.ccseti_a_0 Bool) (one_button.usr.ccsetd_a_0 Bool) (one_button.usr.ccr_a_0 Bool) (one_button.usr.ob_a_0 Bool) (one_button.res.init_flag_a_0 Bool)) Bool + (and (= one_button.usr.ob_a_0 (or (or (and (and one_button.usr.ccseti_a_0 (not one_button.usr.ccsetd_a_0)) (not one_button.usr.ccr_a_0)) (and (and (not one_button.usr.ccseti_a_0) one_button.usr.ccsetd_a_0) (not one_button.usr.ccr_a_0))) (and (and (not one_button.usr.ccseti_a_0) (not one_button.usr.ccsetd_a_0)) one_button.usr.ccr_a_0))) one_button.res.init_flag_a_0)) +(define-fun __node_trans_one_button_0 ((one_button.usr.ccseti_a_1 Bool) (one_button.usr.ccsetd_a_1 Bool) (one_button.usr.ccr_a_1 Bool) (one_button.usr.ob_a_1 Bool) (one_button.res.init_flag_a_1 Bool) (one_button.usr.ccseti_a_0 Bool) (one_button.usr.ccsetd_a_0 Bool) (one_button.usr.ccr_a_0 Bool) (one_button.usr.ob_a_0 Bool) (one_button.res.init_flag_a_0 Bool)) Bool + (and (= one_button.usr.ob_a_1 (or (or (and (and one_button.usr.ccseti_a_1 (not one_button.usr.ccsetd_a_1)) (not one_button.usr.ccr_a_1)) (and (and (not one_button.usr.ccseti_a_1) one_button.usr.ccsetd_a_1) (not one_button.usr.ccr_a_1))) (and (and (not one_button.usr.ccseti_a_1) (not one_button.usr.ccsetd_a_1)) one_button.usr.ccr_a_1))) (not one_button.res.init_flag_a_1))) +(define-fun __node_init_one_button_accept_0 ((one_button_accept.usr.ccseti_a_0 Bool) (one_button_accept.usr.ccsetd_a_0 Bool) (one_button_accept.usr.ccr_a_0 Bool) (one_button_accept.usr.ccont_a_0 Bool) (one_button_accept.usr.cca_a_0 Bool) (one_button_accept.usr.oba_a_0 Bool) (one_button_accept.res.init_flag_a_0 Bool) (one_button_accept.res.abs_0_a_0 Bool) (one_button_accept.res.abs_1_a_0 Bool) (one_button_accept.res.abs_2_a_0 Bool) (one_button_accept.res.abs_3_a_0 Bool) (one_button_accept.res.inst_4_a_0 Bool) (one_button_accept.res.inst_3_a_0 Bool) (one_button_accept.res.inst_2_a_0 Bool) (one_button_accept.res.inst_1_a_0 Bool) (one_button_accept.res.inst_0_a_0 Bool)) Bool + (let ((X1 one_button_accept.res.abs_0_a_0)) (let ((X2 one_button_accept.res.abs_1_a_0)) (and (= one_button_accept.usr.oba_a_0 (ite (and X1 X2) (ite (not one_button_accept.usr.ccr_a_0) true one_button_accept.res.abs_3_a_0) false)) (__node_init_one_button_0 one_button_accept.usr.ccseti_a_0 one_button_accept.usr.ccsetd_a_0 one_button_accept.usr.ccr_a_0 one_button_accept.res.abs_1_a_0 one_button_accept.res.inst_4_a_0) (__node_init_prev_no_button_0 one_button_accept.usr.ccseti_a_0 one_button_accept.usr.ccsetd_a_0 one_button_accept.usr.ccr_a_0 one_button_accept.res.abs_0_a_0 one_button_accept.res.inst_3_a_0 one_button_accept.res.inst_2_a_0) (__node_init_AtLeastOnceSince_0 one_button_accept.usr.cca_a_0 one_button_accept.res.abs_2_a_0 one_button_accept.res.abs_3_a_0 one_button_accept.res.inst_1_a_0) (__node_init_PosEdge_0 one_button_accept.usr.ccont_a_0 one_button_accept.res.abs_2_a_0 one_button_accept.res.inst_0_a_0) one_button_accept.res.init_flag_a_0)))) +(define-fun __node_trans_one_button_accept_0 ((one_button_accept.usr.ccseti_a_1 Bool) (one_button_accept.usr.ccsetd_a_1 Bool) (one_button_accept.usr.ccr_a_1 Bool) (one_button_accept.usr.ccont_a_1 Bool) (one_button_accept.usr.cca_a_1 Bool) (one_button_accept.usr.oba_a_1 Bool) (one_button_accept.res.init_flag_a_1 Bool) (one_button_accept.res.abs_0_a_1 Bool) (one_button_accept.res.abs_1_a_1 Bool) (one_button_accept.res.abs_2_a_1 Bool) (one_button_accept.res.abs_3_a_1 Bool) (one_button_accept.res.inst_4_a_1 Bool) (one_button_accept.res.inst_3_a_1 Bool) (one_button_accept.res.inst_2_a_1 Bool) (one_button_accept.res.inst_1_a_1 Bool) (one_button_accept.res.inst_0_a_1 Bool) (one_button_accept.usr.ccseti_a_0 Bool) (one_button_accept.usr.ccsetd_a_0 Bool) (one_button_accept.usr.ccr_a_0 Bool) (one_button_accept.usr.ccont_a_0 Bool) (one_button_accept.usr.cca_a_0 Bool) (one_button_accept.usr.oba_a_0 Bool) (one_button_accept.res.init_flag_a_0 Bool) (one_button_accept.res.abs_0_a_0 Bool) (one_button_accept.res.abs_1_a_0 Bool) (one_button_accept.res.abs_2_a_0 Bool) (one_button_accept.res.abs_3_a_0 Bool) (one_button_accept.res.inst_4_a_0 Bool) (one_button_accept.res.inst_3_a_0 Bool) (one_button_accept.res.inst_2_a_0 Bool) (one_button_accept.res.inst_1_a_0 Bool) (one_button_accept.res.inst_0_a_0 Bool)) Bool + (let ((X1 one_button_accept.res.abs_0_a_1)) (let ((X2 one_button_accept.res.abs_1_a_1)) (and (= one_button_accept.usr.oba_a_1 (ite (and X1 X2) (ite (not one_button_accept.usr.ccr_a_1) true one_button_accept.res.abs_3_a_1) false)) (__node_trans_one_button_0 one_button_accept.usr.ccseti_a_1 one_button_accept.usr.ccsetd_a_1 one_button_accept.usr.ccr_a_1 one_button_accept.res.abs_1_a_1 one_button_accept.res.inst_4_a_1 one_button_accept.usr.ccseti_a_0 one_button_accept.usr.ccsetd_a_0 one_button_accept.usr.ccr_a_0 one_button_accept.res.abs_1_a_0 one_button_accept.res.inst_4_a_0) (__node_trans_prev_no_button_0 one_button_accept.usr.ccseti_a_1 one_button_accept.usr.ccsetd_a_1 one_button_accept.usr.ccr_a_1 one_button_accept.res.abs_0_a_1 one_button_accept.res.inst_3_a_1 one_button_accept.res.inst_2_a_1 one_button_accept.usr.ccseti_a_0 one_button_accept.usr.ccsetd_a_0 one_button_accept.usr.ccr_a_0 one_button_accept.res.abs_0_a_0 one_button_accept.res.inst_3_a_0 one_button_accept.res.inst_2_a_0) (__node_trans_AtLeastOnceSince_0 one_button_accept.usr.cca_a_1 one_button_accept.res.abs_2_a_1 one_button_accept.res.abs_3_a_1 one_button_accept.res.inst_1_a_1 one_button_accept.usr.cca_a_0 one_button_accept.res.abs_2_a_0 one_button_accept.res.abs_3_a_0 one_button_accept.res.inst_1_a_0) (__node_trans_PosEdge_0 one_button_accept.usr.ccont_a_1 one_button_accept.res.abs_2_a_1 one_button_accept.res.inst_0_a_1 one_button_accept.usr.ccont_a_0 one_button_accept.res.abs_2_a_0 one_button_accept.res.inst_0_a_0) (not one_button_accept.res.init_flag_a_1))))) +(define-fun __node_init_main_0 ((main.usr.igsw_a_0 Bool) (main.usr.ccd_a_0 Bool) (main.usr.cconoff_a_0 Bool) (main.usr.bpa_a_0 Bool) (main.usr.cccanc_a_0 Bool) (main.usr.battok_a_0 Bool) (main.usr.gearok_a_0 Bool) (main.usr.qfok_a_0 Bool) (main.usr.sdok_a_0 Bool) (main.usr.accok_a_0 Bool) (main.usr.ccseti_a_0 Bool) (main.usr.ccsetd_a_0 Bool) (main.usr.ccr_a_0 Bool) (main.usr.vs_a_0 Int) (main.res.nondet_0 Bool) (main.usr.ccont_a_0 Bool) (main.usr.cca_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Bool) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Bool) (main.res.inst_17_a_0 Bool) (main.res.inst_16_a_0 Bool) (main.res.inst_15_a_0 Bool) (main.res.inst_14_a_0 Bool) (main.res.inst_13_a_0 Bool) (main.res.inst_12_a_0 Bool) (main.res.inst_11_a_0 Bool) (main.res.inst_10_a_0 Bool) (main.res.inst_9_a_0 Bool) (main.res.inst_8_a_0 Bool) (main.res.inst_7_a_0 Bool) (main.res.inst_6_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Bool) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Bool) (main.res.inst_0_a_0 Bool)) Bool + (and (= main.usr.ccont_a_0 false) (= main.res.abs_2_a_0 (not main.usr.ccont_a_0)) (= main.usr.cca_a_0 false) (let ((X1 main.res.abs_3_a_0)) (and (= main.res.abs_4_a_0 (let ((X2 main.res.nondet_0)) X2)) (__node_init_Edge_0 main.usr.igsw_a_0 main.res.abs_0_a_0 main.res.inst_17_a_0) (__node_init_PosEdge_0 main.usr.cconoff_a_0 main.res.abs_1_a_0 main.res.inst_16_a_0) (__node_init_cc_allowed_0 main.usr.ccont_a_0 main.usr.igsw_a_0 main.usr.bpa_a_0 main.usr.cccanc_a_0 main.usr.battok_a_0 main.usr.gearok_a_0 main.usr.qfok_a_0 main.usr.sdok_a_0 main.usr.accok_a_0 main.usr.vs_a_0 main.res.abs_3_a_0 main.res.inst_15_a_0 main.res.inst_14_a_0 main.res.inst_13_a_0 main.res.inst_12_a_0 main.res.inst_11_a_0 main.res.inst_10_a_0) (__node_init_one_button_accept_0 main.usr.ccseti_a_0 main.usr.ccsetd_a_0 main.usr.ccr_a_0 main.usr.ccont_a_0 main.res.abs_4_a_0 main.res.abs_5_a_0 main.res.inst_9_a_0 main.res.inst_8_a_0 main.res.inst_7_a_0 main.res.inst_6_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0 main.res.inst_3_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0 main.res.inst_0_a_0) main.res.init_flag_a_0)))) +(define-fun __node_trans_main_0 ((main.usr.igsw_a_1 Bool) (main.usr.ccd_a_1 Bool) (main.usr.cconoff_a_1 Bool) (main.usr.bpa_a_1 Bool) (main.usr.cccanc_a_1 Bool) (main.usr.battok_a_1 Bool) (main.usr.gearok_a_1 Bool) (main.usr.qfok_a_1 Bool) (main.usr.sdok_a_1 Bool) (main.usr.accok_a_1 Bool) (main.usr.ccseti_a_1 Bool) (main.usr.ccsetd_a_1 Bool) (main.usr.ccr_a_1 Bool) (main.usr.vs_a_1 Int) (main.res.nondet_0 Bool) (main.usr.ccont_a_1 Bool) (main.usr.cca_a_1 Bool) (main.res.init_flag_a_1 Bool) (main.res.abs_0_a_1 Bool) (main.res.abs_1_a_1 Bool) (main.res.abs_2_a_1 Bool) (main.res.abs_3_a_1 Bool) (main.res.abs_4_a_1 Bool) (main.res.abs_5_a_1 Bool) (main.res.inst_17_a_1 Bool) (main.res.inst_16_a_1 Bool) (main.res.inst_15_a_1 Bool) (main.res.inst_14_a_1 Bool) (main.res.inst_13_a_1 Bool) (main.res.inst_12_a_1 Bool) (main.res.inst_11_a_1 Bool) (main.res.inst_10_a_1 Bool) (main.res.inst_9_a_1 Bool) (main.res.inst_8_a_1 Bool) (main.res.inst_7_a_1 Bool) (main.res.inst_6_a_1 Bool) (main.res.inst_5_a_1 Bool) (main.res.inst_4_a_1 Bool) (main.res.inst_3_a_1 Bool) (main.res.inst_2_a_1 Bool) (main.res.inst_1_a_1 Bool) (main.res.inst_0_a_1 Bool) (main.usr.igsw_a_0 Bool) (main.usr.ccd_a_0 Bool) (main.usr.cconoff_a_0 Bool) (main.usr.bpa_a_0 Bool) (main.usr.cccanc_a_0 Bool) (main.usr.battok_a_0 Bool) (main.usr.gearok_a_0 Bool) (main.usr.qfok_a_0 Bool) (main.usr.sdok_a_0 Bool) (main.usr.accok_a_0 Bool) (main.usr.ccseti_a_0 Bool) (main.usr.ccsetd_a_0 Bool) (main.usr.ccr_a_0 Bool) (main.usr.vs_a_0 Int) (main.usr.ccont_a_0 Bool) (main.usr.cca_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Bool) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Bool) (main.res.inst_17_a_0 Bool) (main.res.inst_16_a_0 Bool) (main.res.inst_15_a_0 Bool) (main.res.inst_14_a_0 Bool) (main.res.inst_13_a_0 Bool) (main.res.inst_12_a_0 Bool) (main.res.inst_11_a_0 Bool) (main.res.inst_10_a_0 Bool) (main.res.inst_9_a_0 Bool) (main.res.inst_8_a_0 Bool) (main.res.inst_7_a_0 Bool) (main.res.inst_6_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Bool) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Bool) (main.res.inst_0_a_0 Bool)) Bool + (and (= main.usr.ccont_a_1 (ite (or (or main.res.abs_0_a_1 main.usr.ccd_a_1) (and main.usr.ccont_a_0 main.res.abs_1_a_1)) false (ite (and main.res.abs_2_a_0 main.res.abs_1_a_1) true main.usr.ccont_a_0))) (= main.res.abs_2_a_1 (not main.usr.ccont_a_1)) (= main.res.abs_4_a_1 main.usr.cca_a_0) (let ((X1 main.res.abs_3_a_1)) (and (= main.usr.cca_a_1 (ite (and main.res.abs_5_a_1 X1) true (ite (not X1) false main.usr.cca_a_0))) (__node_trans_Edge_0 main.usr.igsw_a_1 main.res.abs_0_a_1 main.res.inst_17_a_1 main.usr.igsw_a_0 main.res.abs_0_a_0 main.res.inst_17_a_0) (__node_trans_PosEdge_0 main.usr.cconoff_a_1 main.res.abs_1_a_1 main.res.inst_16_a_1 main.usr.cconoff_a_0 main.res.abs_1_a_0 main.res.inst_16_a_0) (__node_trans_cc_allowed_0 main.usr.ccont_a_1 main.usr.igsw_a_1 main.usr.bpa_a_1 main.usr.cccanc_a_1 main.usr.battok_a_1 main.usr.gearok_a_1 main.usr.qfok_a_1 main.usr.sdok_a_1 main.usr.accok_a_1 main.usr.vs_a_1 main.res.abs_3_a_1 main.res.inst_15_a_1 main.res.inst_14_a_1 main.res.inst_13_a_1 main.res.inst_12_a_1 main.res.inst_11_a_1 main.res.inst_10_a_1 main.usr.ccont_a_0 main.usr.igsw_a_0 main.usr.bpa_a_0 main.usr.cccanc_a_0 main.usr.battok_a_0 main.usr.gearok_a_0 main.usr.qfok_a_0 main.usr.sdok_a_0 main.usr.accok_a_0 main.usr.vs_a_0 main.res.abs_3_a_0 main.res.inst_15_a_0 main.res.inst_14_a_0 main.res.inst_13_a_0 main.res.inst_12_a_0 main.res.inst_11_a_0 main.res.inst_10_a_0) (__node_trans_one_button_accept_0 main.usr.ccseti_a_1 main.usr.ccsetd_a_1 main.usr.ccr_a_1 main.usr.ccont_a_1 main.res.abs_4_a_1 main.res.abs_5_a_1 main.res.inst_9_a_1 main.res.inst_8_a_1 main.res.inst_7_a_1 main.res.inst_6_a_1 main.res.inst_5_a_1 main.res.inst_4_a_1 main.res.inst_3_a_1 main.res.inst_2_a_1 main.res.inst_1_a_1 main.res.inst_0_a_1 main.usr.ccseti_a_0 main.usr.ccsetd_a_0 main.usr.ccr_a_0 main.usr.ccont_a_0 main.res.abs_4_a_0 main.res.abs_5_a_0 main.res.inst_9_a_0 main.res.inst_8_a_0 main.res.inst_7_a_0 main.res.inst_6_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0 main.res.inst_3_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0 main.res.inst_0_a_0) (not main.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.igsw_a_0 Bool) (top.usr.ccd_a_0 Bool) (top.usr.cconoff_a_0 Bool) (top.usr.bpa_a_0 Bool) (top.usr.cccanc_a_0 Bool) (top.usr.battok_a_0 Bool) (top.usr.gearok_a_0 Bool) (top.usr.qfok_a_0 Bool) (top.usr.sdok_a_0 Bool) (top.usr.accok_a_0 Bool) (top.usr.ccseti_a_0 Bool) (top.usr.ccsetd_a_0 Bool) (top.usr.ccr_a_0 Bool) (top.usr.vs_a_0 Int) (top.res.nondet_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.ccont_a_0 Bool) (top.impl.usr.cca_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.inst_37_a_0 Bool) (top.res.inst_36_a_0 Bool) (top.res.inst_35_a_0 Bool) (top.res.inst_34_a_0 Bool) (top.res.inst_33_a_0 Bool) (top.res.inst_32_a_0 Bool) (top.res.inst_31_a_0 Bool) (top.res.inst_30_a_0 Bool) (top.res.inst_29_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.ccont_a_0 top.res.abs_8_a_0) (= top.impl.usr.cca_a_0 top.res.abs_9_a_0) (let ((X1 (ite top.res.abs_6_a_0 (not top.impl.usr.cca_a_0) true))) (let ((X2 (ite top.res.abs_5_a_0 (and (and (not top.res.abs_6_a_0) (not top.usr.ccd_a_0)) top.res.abs_7_a_0) true))) (let ((X3 (ite (not top.res.abs_4_a_0) (not top.impl.usr.cca_a_0) true))) (let ((X4 (ite top.res.abs_0_a_0 (or (or top.res.abs_1_a_0 top.res.abs_2_a_0) top.res.abs_3_a_0) true))) (and (= top.usr.OK_a_0 (and (and (and X4 X3) X2) X1)) (__node_init_PosEdge_0 top.impl.usr.cca_a_0 top.res.abs_0_a_0 top.res.inst_37_a_0) (__node_init_main_0 top.usr.igsw_a_0 top.usr.ccd_a_0 top.usr.cconoff_a_0 top.usr.bpa_a_0 top.usr.cccanc_a_0 top.usr.battok_a_0 top.usr.gearok_a_0 top.usr.qfok_a_0 top.usr.sdok_a_0 top.usr.accok_a_0 top.usr.ccseti_a_0 top.usr.ccsetd_a_0 top.usr.ccr_a_0 top.usr.vs_a_0 top.res.nondet_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_36_a_0 top.res.inst_35_a_0 top.res.inst_34_a_0 top.res.inst_33_a_0 top.res.inst_32_a_0 top.res.inst_31_a_0 top.res.inst_30_a_0 top.res.inst_29_a_0 top.res.inst_28_a_0 top.res.inst_27_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0) (__node_init_PosEdge_0 top.usr.ccseti_a_0 top.res.abs_1_a_0 top.res.inst_11_a_0) (__node_init_PosEdge_0 top.usr.ccsetd_a_0 top.res.abs_2_a_0 top.res.inst_10_a_0) (__node_init_PosEdge_0 top.usr.ccr_a_0 top.res.abs_3_a_0 top.res.inst_9_a_0) (__node_init_cc_allowed_0 top.impl.usr.ccont_a_0 top.usr.igsw_a_0 top.usr.bpa_a_0 top.usr.cccanc_a_0 top.usr.battok_a_0 top.usr.gearok_a_0 top.usr.qfok_a_0 top.usr.sdok_a_0 top.usr.accok_a_0 top.usr.vs_a_0 top.res.abs_4_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_PosEdge_0 top.impl.usr.ccont_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_init_Edge_0 top.usr.igsw_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_PosEdge_0 top.usr.cconoff_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))) +(define-fun __node_trans_top_0 ((top.usr.igsw_a_1 Bool) (top.usr.ccd_a_1 Bool) (top.usr.cconoff_a_1 Bool) (top.usr.bpa_a_1 Bool) (top.usr.cccanc_a_1 Bool) (top.usr.battok_a_1 Bool) (top.usr.gearok_a_1 Bool) (top.usr.qfok_a_1 Bool) (top.usr.sdok_a_1 Bool) (top.usr.accok_a_1 Bool) (top.usr.ccseti_a_1 Bool) (top.usr.ccsetd_a_1 Bool) (top.usr.ccr_a_1 Bool) (top.usr.vs_a_1 Int) (top.res.nondet_0 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.ccont_a_1 Bool) (top.impl.usr.cca_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.inst_37_a_1 Bool) (top.res.inst_36_a_1 Bool) (top.res.inst_35_a_1 Bool) (top.res.inst_34_a_1 Bool) (top.res.inst_33_a_1 Bool) (top.res.inst_32_a_1 Bool) (top.res.inst_31_a_1 Bool) (top.res.inst_30_a_1 Bool) (top.res.inst_29_a_1 Bool) (top.res.inst_28_a_1 Bool) (top.res.inst_27_a_1 Bool) (top.res.inst_26_a_1 Bool) (top.res.inst_25_a_1 Bool) (top.res.inst_24_a_1 Bool) (top.res.inst_23_a_1 Bool) (top.res.inst_22_a_1 Bool) (top.res.inst_21_a_1 Bool) (top.res.inst_20_a_1 Bool) (top.res.inst_19_a_1 Bool) (top.res.inst_18_a_1 Bool) (top.res.inst_17_a_1 Bool) (top.res.inst_16_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Bool) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Bool) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Bool) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.igsw_a_0 Bool) (top.usr.ccd_a_0 Bool) (top.usr.cconoff_a_0 Bool) (top.usr.bpa_a_0 Bool) (top.usr.cccanc_a_0 Bool) (top.usr.battok_a_0 Bool) (top.usr.gearok_a_0 Bool) (top.usr.qfok_a_0 Bool) (top.usr.sdok_a_0 Bool) (top.usr.accok_a_0 Bool) (top.usr.ccseti_a_0 Bool) (top.usr.ccsetd_a_0 Bool) (top.usr.ccr_a_0 Bool) (top.usr.vs_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.ccont_a_0 Bool) (top.impl.usr.cca_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.inst_37_a_0 Bool) (top.res.inst_36_a_0 Bool) (top.res.inst_35_a_0 Bool) (top.res.inst_34_a_0 Bool) (top.res.inst_33_a_0 Bool) (top.res.inst_32_a_0 Bool) (top.res.inst_31_a_0 Bool) (top.res.inst_30_a_0 Bool) (top.res.inst_29_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.ccont_a_1 top.res.abs_8_a_1) (= top.impl.usr.cca_a_1 top.res.abs_9_a_1) (let ((X1 (ite top.res.abs_6_a_1 (not top.impl.usr.cca_a_1) true))) (let ((X2 (ite top.res.abs_5_a_1 (and (and (not top.res.abs_6_a_1) (not top.usr.ccd_a_1)) top.res.abs_7_a_1) true))) (let ((X3 (ite (not top.res.abs_4_a_1) (not top.impl.usr.cca_a_1) true))) (let ((X4 (ite top.res.abs_0_a_1 (or (or top.res.abs_1_a_1 top.res.abs_2_a_1) top.res.abs_3_a_1) true))) (and (= top.usr.OK_a_1 (and (and (and X4 X3) X2) X1)) (__node_trans_PosEdge_0 top.impl.usr.cca_a_1 top.res.abs_0_a_1 top.res.inst_37_a_1 top.impl.usr.cca_a_0 top.res.abs_0_a_0 top.res.inst_37_a_0) (__node_trans_main_0 top.usr.igsw_a_1 top.usr.ccd_a_1 top.usr.cconoff_a_1 top.usr.bpa_a_1 top.usr.cccanc_a_1 top.usr.battok_a_1 top.usr.gearok_a_1 top.usr.qfok_a_1 top.usr.sdok_a_1 top.usr.accok_a_1 top.usr.ccseti_a_1 top.usr.ccsetd_a_1 top.usr.ccr_a_1 top.usr.vs_a_1 top.res.nondet_0 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_36_a_1 top.res.inst_35_a_1 top.res.inst_34_a_1 top.res.inst_33_a_1 top.res.inst_32_a_1 top.res.inst_31_a_1 top.res.inst_30_a_1 top.res.inst_29_a_1 top.res.inst_28_a_1 top.res.inst_27_a_1 top.res.inst_26_a_1 top.res.inst_25_a_1 top.res.inst_24_a_1 top.res.inst_23_a_1 top.res.inst_22_a_1 top.res.inst_21_a_1 top.res.inst_20_a_1 top.res.inst_19_a_1 top.res.inst_18_a_1 top.res.inst_17_a_1 top.res.inst_16_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.usr.igsw_a_0 top.usr.ccd_a_0 top.usr.cconoff_a_0 top.usr.bpa_a_0 top.usr.cccanc_a_0 top.usr.battok_a_0 top.usr.gearok_a_0 top.usr.qfok_a_0 top.usr.sdok_a_0 top.usr.accok_a_0 top.usr.ccseti_a_0 top.usr.ccsetd_a_0 top.usr.ccr_a_0 top.usr.vs_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_36_a_0 top.res.inst_35_a_0 top.res.inst_34_a_0 top.res.inst_33_a_0 top.res.inst_32_a_0 top.res.inst_31_a_0 top.res.inst_30_a_0 top.res.inst_29_a_0 top.res.inst_28_a_0 top.res.inst_27_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0) (__node_trans_PosEdge_0 top.usr.ccseti_a_1 top.res.abs_1_a_1 top.res.inst_11_a_1 top.usr.ccseti_a_0 top.res.abs_1_a_0 top.res.inst_11_a_0) (__node_trans_PosEdge_0 top.usr.ccsetd_a_1 top.res.abs_2_a_1 top.res.inst_10_a_1 top.usr.ccsetd_a_0 top.res.abs_2_a_0 top.res.inst_10_a_0) (__node_trans_PosEdge_0 top.usr.ccr_a_1 top.res.abs_3_a_1 top.res.inst_9_a_1 top.usr.ccr_a_0 top.res.abs_3_a_0 top.res.inst_9_a_0) (__node_trans_cc_allowed_0 top.impl.usr.ccont_a_1 top.usr.igsw_a_1 top.usr.bpa_a_1 top.usr.cccanc_a_1 top.usr.battok_a_1 top.usr.gearok_a_1 top.usr.qfok_a_1 top.usr.sdok_a_1 top.usr.accok_a_1 top.usr.vs_a_1 top.res.abs_4_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.impl.usr.ccont_a_0 top.usr.igsw_a_0 top.usr.bpa_a_0 top.usr.cccanc_a_0 top.usr.battok_a_0 top.usr.gearok_a_0 top.usr.qfok_a_0 top.usr.sdok_a_0 top.usr.accok_a_0 top.usr.vs_a_0 top.res.abs_4_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_PosEdge_0 top.impl.usr.ccont_a_1 top.res.abs_5_a_1 top.res.inst_2_a_1 top.impl.usr.ccont_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_trans_Edge_0 top.usr.igsw_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.usr.igsw_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_PosEdge_0 top.usr.cconoff_a_1 top.res.abs_7_a_1 top.res.inst_0_a_1 top.usr.cconoff_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.igsw Bool) (top.usr.ccd Bool) (top.usr.cconoff Bool) (top.usr.bpa Bool) (top.usr.cccanc Bool) (top.usr.battok Bool) (top.usr.gearok Bool) (top.usr.qfok Bool) (top.usr.sdok Bool) (top.usr.accok Bool) (top.usr.ccseti Bool) (top.usr.ccsetd Bool) (top.usr.ccr Bool) (top.usr.vs Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.ccont Bool) (top.impl.usr.cca Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_0 Bool) +(define-fun init ((top.usr.igsw Bool) (top.usr.ccd Bool) (top.usr.cconoff Bool) (top.usr.bpa Bool) (top.usr.cccanc Bool) (top.usr.battok Bool) (top.usr.gearok Bool) (top.usr.qfok Bool) (top.usr.sdok Bool) (top.usr.accok Bool) (top.usr.ccseti Bool) (top.usr.ccsetd Bool) (top.usr.ccr Bool) (top.usr.vs Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.ccont Bool) (top.impl.usr.cca Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.ccont top.res.abs_8) (= top.impl.usr.cca top.res.abs_9) (let ((X1 (ite top.res.abs_6 (not top.impl.usr.cca) true))) (let ((X2 (ite top.res.abs_5 (and (and (not top.res.abs_6) (not top.usr.ccd)) top.res.abs_7) true))) (let ((X3 (ite (not top.res.abs_4) (not top.impl.usr.cca) true))) (let ((X4 (ite top.res.abs_0 (or (or top.res.abs_1 top.res.abs_2) top.res.abs_3) true))) (and (= top.usr.OK (and (and (and X4 X3) X2) X1)) (__node_init_PosEdge_0 top.impl.usr.cca top.res.abs_0 top.res.inst_37) (__node_init_main_0 top.usr.igsw top.usr.ccd top.usr.cconoff top.usr.bpa top.usr.cccanc top.usr.battok top.usr.gearok top.usr.qfok top.usr.sdok top.usr.accok top.usr.ccseti top.usr.ccsetd top.usr.ccr top.usr.vs top.res.nondet_0 top.res.abs_8 top.res.abs_9 top.res.inst_36 top.res.inst_35 top.res.inst_34 top.res.inst_33 top.res.inst_32 top.res.inst_31 top.res.inst_30 top.res.inst_29 top.res.inst_28 top.res.inst_27 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12) (__node_init_PosEdge_0 top.usr.ccseti top.res.abs_1 top.res.inst_11) (__node_init_PosEdge_0 top.usr.ccsetd top.res.abs_2 top.res.inst_10) (__node_init_PosEdge_0 top.usr.ccr top.res.abs_3 top.res.inst_9) (__node_init_cc_allowed_0 top.impl.usr.ccont top.usr.igsw top.usr.bpa top.usr.cccanc top.usr.battok top.usr.gearok top.usr.qfok top.usr.sdok top.usr.accok top.usr.vs top.res.abs_4 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3) (__node_init_PosEdge_0 top.impl.usr.ccont top.res.abs_5 top.res.inst_2) (__node_init_Edge_0 top.usr.igsw top.res.abs_6 top.res.inst_1) (__node_init_PosEdge_0 top.usr.cconoff top.res.abs_7 top.res.inst_0) top.res.init_flag))))))) +(define-fun trans ((top.usr.igsw Bool) (top.usr.ccd Bool) (top.usr.cconoff Bool) (top.usr.bpa Bool) (top.usr.cccanc Bool) (top.usr.battok Bool) (top.usr.gearok Bool) (top.usr.qfok Bool) (top.usr.sdok Bool) (top.usr.accok Bool) (top.usr.ccseti Bool) (top.usr.ccsetd Bool) (top.usr.ccr Bool) (top.usr.vs Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.ccont Bool) (top.impl.usr.cca Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.igsw! Bool) (top.usr.ccd! Bool) (top.usr.cconoff! Bool) (top.usr.bpa! Bool) (top.usr.cccanc! Bool) (top.usr.battok! Bool) (top.usr.gearok! Bool) (top.usr.qfok! Bool) (top.usr.sdok! Bool) (top.usr.accok! Bool) (top.usr.ccseti! Bool) (top.usr.ccsetd! Bool) (top.usr.ccr! Bool) (top.usr.vs! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.ccont! Bool) (top.impl.usr.cca! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.inst_37! Bool) (top.res.inst_36! Bool) (top.res.inst_35! Bool) (top.res.inst_34! Bool) (top.res.inst_33! Bool) (top.res.inst_32! Bool) (top.res.inst_31! Bool) (top.res.inst_30! Bool) (top.res.inst_29! Bool) (top.res.inst_28! Bool) (top.res.inst_27! Bool) (top.res.inst_26! Bool) (top.res.inst_25! Bool) (top.res.inst_24! Bool) (top.res.inst_23! Bool) (top.res.inst_22! Bool) (top.res.inst_21! Bool) (top.res.inst_20! Bool) (top.res.inst_19! Bool) (top.res.inst_18! Bool) (top.res.inst_17! Bool) (top.res.inst_16! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Bool) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Bool) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Bool) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.impl.usr.ccont! top.res.abs_8!) (= top.impl.usr.cca! top.res.abs_9!) (let ((X1 (ite top.res.abs_6! (not top.impl.usr.cca!) true))) (let ((X2 (ite top.res.abs_5! (and (and (not top.res.abs_6!) (not top.usr.ccd!)) top.res.abs_7!) true))) (let ((X3 (ite (not top.res.abs_4!) (not top.impl.usr.cca!) true))) (let ((X4 (ite top.res.abs_0! (or (or top.res.abs_1! top.res.abs_2!) top.res.abs_3!) true))) (and (= top.usr.OK! (and (and (and X4 X3) X2) X1)) (__node_trans_PosEdge_0 top.impl.usr.cca! top.res.abs_0! top.res.inst_37! top.impl.usr.cca top.res.abs_0 top.res.inst_37) (__node_trans_main_0 top.usr.igsw! top.usr.ccd! top.usr.cconoff! top.usr.bpa! top.usr.cccanc! top.usr.battok! top.usr.gearok! top.usr.qfok! top.usr.sdok! top.usr.accok! top.usr.ccseti! top.usr.ccsetd! top.usr.ccr! top.usr.vs! top.res.nondet_0 top.res.abs_8! top.res.abs_9! top.res.inst_36! top.res.inst_35! top.res.inst_34! top.res.inst_33! top.res.inst_32! top.res.inst_31! top.res.inst_30! top.res.inst_29! top.res.inst_28! top.res.inst_27! top.res.inst_26! top.res.inst_25! top.res.inst_24! top.res.inst_23! top.res.inst_22! top.res.inst_21! top.res.inst_20! top.res.inst_19! top.res.inst_18! top.res.inst_17! top.res.inst_16! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.usr.igsw top.usr.ccd top.usr.cconoff top.usr.bpa top.usr.cccanc top.usr.battok top.usr.gearok top.usr.qfok top.usr.sdok top.usr.accok top.usr.ccseti top.usr.ccsetd top.usr.ccr top.usr.vs top.res.abs_8 top.res.abs_9 top.res.inst_36 top.res.inst_35 top.res.inst_34 top.res.inst_33 top.res.inst_32 top.res.inst_31 top.res.inst_30 top.res.inst_29 top.res.inst_28 top.res.inst_27 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12) (__node_trans_PosEdge_0 top.usr.ccseti! top.res.abs_1! top.res.inst_11! top.usr.ccseti top.res.abs_1 top.res.inst_11) (__node_trans_PosEdge_0 top.usr.ccsetd! top.res.abs_2! top.res.inst_10! top.usr.ccsetd top.res.abs_2 top.res.inst_10) (__node_trans_PosEdge_0 top.usr.ccr! top.res.abs_3! top.res.inst_9! top.usr.ccr top.res.abs_3 top.res.inst_9) (__node_trans_cc_allowed_0 top.impl.usr.ccont! top.usr.igsw! top.usr.bpa! top.usr.cccanc! top.usr.battok! top.usr.gearok! top.usr.qfok! top.usr.sdok! top.usr.accok! top.usr.vs! top.res.abs_4! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.impl.usr.ccont top.usr.igsw top.usr.bpa top.usr.cccanc top.usr.battok top.usr.gearok top.usr.qfok top.usr.sdok top.usr.accok top.usr.vs top.res.abs_4 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3) (__node_trans_PosEdge_0 top.impl.usr.ccont! top.res.abs_5! top.res.inst_2! top.impl.usr.ccont top.res.abs_5 top.res.inst_2) (__node_trans_Edge_0 top.usr.igsw! top.res.abs_6! top.res.inst_1! top.usr.igsw top.res.abs_6 top.res.inst_1) (__node_trans_PosEdge_0 top.usr.cconoff! top.res.abs_7! top.res.inst_0! top.usr.cconoff top.res.abs_7 top.res.inst_0) (not top.res.init_flag!))))))) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.igsw Bool) (top.usr.ccd Bool) (top.usr.cconoff Bool) (top.usr.bpa Bool) (top.usr.cccanc Bool) (top.usr.battok Bool) (top.usr.gearok Bool) (top.usr.qfok Bool) (top.usr.sdok Bool) (top.usr.accok Bool) (top.usr.ccseti Bool) (top.usr.ccsetd Bool) (top.usr.ccr Bool) (top.usr.vs Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.ccont Bool) (top.impl.usr.cca Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/fast_2_e8_460_e8_1920.sl b/benchmarks/LIA/Lustre/fast_2_e8_460_e8_1920.sl index ba75b6b..8781fd8 100644 --- a/benchmarks/LIA/Lustre/fast_2_e8_460_e8_1920.sl +++ b/benchmarks/LIA/Lustre/fast_2_e8_460_e8_1920.sl @@ -1,2069 +1,60 @@ (set-logic LIA) -(define-fun - __node_init_MoreThanTwoSec_0 ( - (MoreThanTwoSec.usr.X_a_0 Bool) - (MoreThanTwoSec.usr.Y_a_0 Bool) - (MoreThanTwoSec.res.init_flag_a_0 Bool) - (MoreThanTwoSec.res.abs_0_a_0 Bool) - ) Bool - - (and - (= MoreThanTwoSec.usr.Y_a_0 false) - (= MoreThanTwoSec.res.abs_0_a_0 false) - MoreThanTwoSec.res.init_flag_a_0) -) - -(define-fun - __node_trans_MoreThanTwoSec_0 ( - (MoreThanTwoSec.usr.X_a_1 Bool) - (MoreThanTwoSec.usr.Y_a_1 Bool) - (MoreThanTwoSec.res.init_flag_a_1 Bool) - (MoreThanTwoSec.res.abs_0_a_1 Bool) - (MoreThanTwoSec.usr.X_a_0 Bool) - (MoreThanTwoSec.usr.Y_a_0 Bool) - (MoreThanTwoSec.res.init_flag_a_0 Bool) - (MoreThanTwoSec.res.abs_0_a_0 Bool) - ) Bool - - (and - (= - MoreThanTwoSec.usr.Y_a_1 - (and MoreThanTwoSec.res.abs_0_a_0 MoreThanTwoSec.usr.X_a_1)) - (= - MoreThanTwoSec.res.abs_0_a_1 - (and MoreThanTwoSec.usr.X_a_0 MoreThanTwoSec.usr.X_a_1)) - (not MoreThanTwoSec.res.init_flag_a_1)) -) - -(define-fun - __node_init_MoreThanOneSec_0 ( - (MoreThanOneSec.usr.X_a_0 Bool) - (MoreThanOneSec.usr.Y_a_0 Bool) - (MoreThanOneSec.res.init_flag_a_0 Bool) - ) Bool - - (and (= MoreThanOneSec.usr.Y_a_0 false) MoreThanOneSec.res.init_flag_a_0) -) - -(define-fun - __node_trans_MoreThanOneSec_0 ( - (MoreThanOneSec.usr.X_a_1 Bool) - (MoreThanOneSec.usr.Y_a_1 Bool) - (MoreThanOneSec.res.init_flag_a_1 Bool) - (MoreThanOneSec.usr.X_a_0 Bool) - (MoreThanOneSec.usr.Y_a_0 Bool) - (MoreThanOneSec.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - MoreThanOneSec.usr.Y_a_1 - (and MoreThanOneSec.usr.X_a_0 MoreThanOneSec.usr.X_a_1)) - (not MoreThanOneSec.res.init_flag_a_1)) -) - -(define-fun - __node_init_cc_allowed_0 ( - (cc_allowed.usr.ccont_a_0 Bool) - (cc_allowed.usr.igsw_a_0 Bool) - (cc_allowed.usr.bpa_a_0 Bool) - (cc_allowed.usr.cccanc_a_0 Bool) - (cc_allowed.usr.battok_a_0 Bool) - (cc_allowed.usr.gearok_a_0 Bool) - (cc_allowed.usr.qfok_a_0 Bool) - (cc_allowed.usr.sdok_a_0 Bool) - (cc_allowed.usr.accok_a_0 Bool) - (cc_allowed.usr.vs_a_0 Int) - (cc_allowed.usr.ccall_a_0 Bool) - (cc_allowed.res.init_flag_a_0 Bool) - (cc_allowed.res.abs_0_a_0 Bool) - (cc_allowed.res.abs_1_a_0 Bool) - (cc_allowed.res.inst_2_a_0 Bool) - (cc_allowed.res.inst_1_a_0 Bool) - (cc_allowed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - cc_allowed.usr.ccall_a_0 - (and - (and - (and - (and - (and - (and - (and - (and - (and cc_allowed.usr.ccont_a_0 (not cc_allowed.usr.bpa_a_0)) - cc_allowed.usr.battok_a_0) - cc_allowed.usr.gearok_a_0) - cc_allowed.usr.qfok_a_0) - cc_allowed.res.abs_0_a_0) - (<= 35 cc_allowed.usr.vs_a_0)) - (<= cc_allowed.usr.vs_a_0 200)) - cc_allowed.res.abs_1_a_0) - (not cc_allowed.usr.cccanc_a_0))) - (__node_init_MoreThanOneSec_0 - cc_allowed.usr.sdok_a_0 - cc_allowed.res.abs_0_a_0 - cc_allowed.res.inst_2_a_0) - (__node_init_MoreThanTwoSec_0 - cc_allowed.usr.accok_a_0 - cc_allowed.res.abs_1_a_0 - cc_allowed.res.inst_1_a_0 - cc_allowed.res.inst_0_a_0) - cc_allowed.res.init_flag_a_0) -) - -(define-fun - __node_trans_cc_allowed_0 ( - (cc_allowed.usr.ccont_a_1 Bool) - (cc_allowed.usr.igsw_a_1 Bool) - (cc_allowed.usr.bpa_a_1 Bool) - (cc_allowed.usr.cccanc_a_1 Bool) - (cc_allowed.usr.battok_a_1 Bool) - (cc_allowed.usr.gearok_a_1 Bool) - (cc_allowed.usr.qfok_a_1 Bool) - (cc_allowed.usr.sdok_a_1 Bool) - (cc_allowed.usr.accok_a_1 Bool) - (cc_allowed.usr.vs_a_1 Int) - (cc_allowed.usr.ccall_a_1 Bool) - (cc_allowed.res.init_flag_a_1 Bool) - (cc_allowed.res.abs_0_a_1 Bool) - (cc_allowed.res.abs_1_a_1 Bool) - (cc_allowed.res.inst_2_a_1 Bool) - (cc_allowed.res.inst_1_a_1 Bool) - (cc_allowed.res.inst_0_a_1 Bool) - (cc_allowed.usr.ccont_a_0 Bool) - (cc_allowed.usr.igsw_a_0 Bool) - (cc_allowed.usr.bpa_a_0 Bool) - (cc_allowed.usr.cccanc_a_0 Bool) - (cc_allowed.usr.battok_a_0 Bool) - (cc_allowed.usr.gearok_a_0 Bool) - (cc_allowed.usr.qfok_a_0 Bool) - (cc_allowed.usr.sdok_a_0 Bool) - (cc_allowed.usr.accok_a_0 Bool) - (cc_allowed.usr.vs_a_0 Int) - (cc_allowed.usr.ccall_a_0 Bool) - (cc_allowed.res.init_flag_a_0 Bool) - (cc_allowed.res.abs_0_a_0 Bool) - (cc_allowed.res.abs_1_a_0 Bool) - (cc_allowed.res.inst_2_a_0 Bool) - (cc_allowed.res.inst_1_a_0 Bool) - (cc_allowed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - cc_allowed.usr.ccall_a_1 - (and - (and - (and - (and - (and - (and - (and - (and - (and cc_allowed.usr.ccont_a_1 (not cc_allowed.usr.bpa_a_1)) - cc_allowed.usr.battok_a_1) - cc_allowed.usr.gearok_a_1) - cc_allowed.usr.qfok_a_1) - cc_allowed.res.abs_0_a_1) - (<= 35 cc_allowed.usr.vs_a_1)) - (<= cc_allowed.usr.vs_a_1 200)) - cc_allowed.res.abs_1_a_1) - (not cc_allowed.usr.cccanc_a_1))) - (__node_trans_MoreThanOneSec_0 - cc_allowed.usr.sdok_a_1 - cc_allowed.res.abs_0_a_1 - cc_allowed.res.inst_2_a_1 - cc_allowed.usr.sdok_a_0 - cc_allowed.res.abs_0_a_0 - cc_allowed.res.inst_2_a_0) - (__node_trans_MoreThanTwoSec_0 - cc_allowed.usr.accok_a_1 - cc_allowed.res.abs_1_a_1 - cc_allowed.res.inst_1_a_1 - cc_allowed.res.inst_0_a_1 - cc_allowed.usr.accok_a_0 - cc_allowed.res.abs_1_a_0 - cc_allowed.res.inst_1_a_0 - cc_allowed.res.inst_0_a_0) - (not cc_allowed.res.init_flag_a_1)) -) - -(define-fun - __node_init_PosEdge_0 ( - (PosEdge.usr.X_a_0 Bool) - (PosEdge.usr.Y_a_0 Bool) - (PosEdge.res.init_flag_a_0 Bool) - ) Bool - - (and (= PosEdge.usr.Y_a_0 false) PosEdge.res.init_flag_a_0) -) - -(define-fun - __node_trans_PosEdge_0 ( - (PosEdge.usr.X_a_1 Bool) - (PosEdge.usr.Y_a_1 Bool) - (PosEdge.res.init_flag_a_1 Bool) - (PosEdge.usr.X_a_0 Bool) - (PosEdge.usr.Y_a_0 Bool) - (PosEdge.res.init_flag_a_0 Bool) - ) Bool - - (and - (= PosEdge.usr.Y_a_1 (and PosEdge.usr.X_a_1 (not PosEdge.usr.X_a_0))) - (not PosEdge.res.init_flag_a_1)) -) - -(define-fun - __node_init_Edge_0 ( - (Edge.usr.X_a_0 Bool) - (Edge.usr.Y_a_0 Bool) - (Edge.res.init_flag_a_0 Bool) - ) Bool - - (and (= Edge.usr.Y_a_0 false) Edge.res.init_flag_a_0) -) - -(define-fun - __node_trans_Edge_0 ( - (Edge.usr.X_a_1 Bool) - (Edge.usr.Y_a_1 Bool) - (Edge.res.init_flag_a_1 Bool) - (Edge.usr.X_a_0 Bool) - (Edge.usr.Y_a_0 Bool) - (Edge.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - Edge.usr.Y_a_1 - (and - (and (and Edge.usr.X_a_1 (not Edge.usr.X_a_0)) (not Edge.usr.X_a_1)) - Edge.usr.X_a_0)) - (not Edge.res.init_flag_a_1)) -) - -(define-fun - __node_init_prev_no_button_0 ( - (prev_no_button.usr.ccseti_a_0 Bool) - (prev_no_button.usr.ccsetd_a_0 Bool) - (prev_no_button.usr.ccr_a_0 Bool) - (prev_no_button.usr.pnb_a_0 Bool) - (prev_no_button.res.init_flag_a_0 Bool) - (prev_no_button.res.abs_0_a_0 Bool) - ) Bool - - (and - (= prev_no_button.usr.pnb_a_0 true) - (= - prev_no_button.res.abs_0_a_0 - (and - (and - (not prev_no_button.usr.ccseti_a_0) - (not prev_no_button.usr.ccsetd_a_0)) - (not prev_no_button.usr.ccr_a_0))) - prev_no_button.res.init_flag_a_0) -) - -(define-fun - __node_trans_prev_no_button_0 ( - (prev_no_button.usr.ccseti_a_1 Bool) - (prev_no_button.usr.ccsetd_a_1 Bool) - (prev_no_button.usr.ccr_a_1 Bool) - (prev_no_button.usr.pnb_a_1 Bool) - (prev_no_button.res.init_flag_a_1 Bool) - (prev_no_button.res.abs_0_a_1 Bool) - (prev_no_button.usr.ccseti_a_0 Bool) - (prev_no_button.usr.ccsetd_a_0 Bool) - (prev_no_button.usr.ccr_a_0 Bool) - (prev_no_button.usr.pnb_a_0 Bool) - (prev_no_button.res.init_flag_a_0 Bool) - (prev_no_button.res.abs_0_a_0 Bool) - ) Bool - - (and - (= prev_no_button.usr.pnb_a_1 prev_no_button.res.abs_0_a_0) - (= - prev_no_button.res.abs_0_a_1 - (and - (and - (not prev_no_button.usr.ccseti_a_1) - (not prev_no_button.usr.ccsetd_a_1)) - (not prev_no_button.usr.ccr_a_1))) - (not prev_no_button.res.init_flag_a_1)) -) - -(define-fun - __node_init_AtLeastOnceSince_0 ( - (AtLeastOnceSince.usr.X_a_0 Bool) - (AtLeastOnceSince.usr.Y_a_0 Bool) - (AtLeastOnceSince.usr.XsinceY_a_0 Bool) - (AtLeastOnceSince.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - AtLeastOnceSince.usr.XsinceY_a_0 - (ite AtLeastOnceSince.usr.Y_a_0 AtLeastOnceSince.usr.X_a_0 true)) - AtLeastOnceSince.res.init_flag_a_0) -) - -(define-fun - __node_trans_AtLeastOnceSince_0 ( - (AtLeastOnceSince.usr.X_a_1 Bool) - (AtLeastOnceSince.usr.Y_a_1 Bool) - (AtLeastOnceSince.usr.XsinceY_a_1 Bool) - (AtLeastOnceSince.res.init_flag_a_1 Bool) - (AtLeastOnceSince.usr.X_a_0 Bool) - (AtLeastOnceSince.usr.Y_a_0 Bool) - (AtLeastOnceSince.usr.XsinceY_a_0 Bool) - (AtLeastOnceSince.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - AtLeastOnceSince.usr.XsinceY_a_1 - (ite - AtLeastOnceSince.usr.Y_a_1 - AtLeastOnceSince.usr.X_a_1 - (and AtLeastOnceSince.usr.X_a_1 AtLeastOnceSince.usr.XsinceY_a_0))) - (not AtLeastOnceSince.res.init_flag_a_1)) -) - -(define-fun - __node_init_one_button_0 ( - (one_button.usr.ccseti_a_0 Bool) - (one_button.usr.ccsetd_a_0 Bool) - (one_button.usr.ccr_a_0 Bool) - (one_button.usr.ob_a_0 Bool) - (one_button.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - one_button.usr.ob_a_0 - (or - (or - (and - (and one_button.usr.ccseti_a_0 (not one_button.usr.ccsetd_a_0)) - (not one_button.usr.ccr_a_0)) - (and - (and (not one_button.usr.ccseti_a_0) one_button.usr.ccsetd_a_0) - (not one_button.usr.ccr_a_0))) - (and - (and (not one_button.usr.ccseti_a_0) (not one_button.usr.ccsetd_a_0)) - one_button.usr.ccr_a_0))) - one_button.res.init_flag_a_0) -) - -(define-fun - __node_trans_one_button_0 ( - (one_button.usr.ccseti_a_1 Bool) - (one_button.usr.ccsetd_a_1 Bool) - (one_button.usr.ccr_a_1 Bool) - (one_button.usr.ob_a_1 Bool) - (one_button.res.init_flag_a_1 Bool) - (one_button.usr.ccseti_a_0 Bool) - (one_button.usr.ccsetd_a_0 Bool) - (one_button.usr.ccr_a_0 Bool) - (one_button.usr.ob_a_0 Bool) - (one_button.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - one_button.usr.ob_a_1 - (or - (or - (and - (and one_button.usr.ccseti_a_1 (not one_button.usr.ccsetd_a_1)) - (not one_button.usr.ccr_a_1)) - (and - (and (not one_button.usr.ccseti_a_1) one_button.usr.ccsetd_a_1) - (not one_button.usr.ccr_a_1))) - (and - (and (not one_button.usr.ccseti_a_1) (not one_button.usr.ccsetd_a_1)) - one_button.usr.ccr_a_1))) - (not one_button.res.init_flag_a_1)) -) - -(define-fun - __node_init_one_button_accept_0 ( - (one_button_accept.usr.ccseti_a_0 Bool) - (one_button_accept.usr.ccsetd_a_0 Bool) - (one_button_accept.usr.ccr_a_0 Bool) - (one_button_accept.usr.ccont_a_0 Bool) - (one_button_accept.usr.cca_a_0 Bool) - (one_button_accept.usr.oba_a_0 Bool) - (one_button_accept.res.init_flag_a_0 Bool) - (one_button_accept.res.abs_0_a_0 Bool) - (one_button_accept.res.abs_1_a_0 Bool) - (one_button_accept.res.abs_2_a_0 Bool) - (one_button_accept.res.abs_3_a_0 Bool) - (one_button_accept.res.inst_4_a_0 Bool) - (one_button_accept.res.inst_3_a_0 Bool) - (one_button_accept.res.inst_2_a_0 Bool) - (one_button_accept.res.inst_1_a_0 Bool) - (one_button_accept.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool one_button_accept.res.abs_0_a_0)) - (let - ((X2 Bool one_button_accept.res.abs_1_a_0)) - (and - (= - one_button_accept.usr.oba_a_0 - (ite - (and X1 X2) - (ite - (not one_button_accept.usr.ccr_a_0) - true - one_button_accept.res.abs_3_a_0) - false)) - (__node_init_one_button_0 - one_button_accept.usr.ccseti_a_0 - one_button_accept.usr.ccsetd_a_0 - one_button_accept.usr.ccr_a_0 - one_button_accept.res.abs_1_a_0 - one_button_accept.res.inst_4_a_0) - (__node_init_prev_no_button_0 - one_button_accept.usr.ccseti_a_0 - one_button_accept.usr.ccsetd_a_0 - one_button_accept.usr.ccr_a_0 - one_button_accept.res.abs_0_a_0 - one_button_accept.res.inst_3_a_0 - one_button_accept.res.inst_2_a_0) - (__node_init_AtLeastOnceSince_0 - one_button_accept.usr.cca_a_0 - one_button_accept.res.abs_2_a_0 - one_button_accept.res.abs_3_a_0 - one_button_accept.res.inst_1_a_0) - (__node_init_PosEdge_0 - one_button_accept.usr.ccont_a_0 - one_button_accept.res.abs_2_a_0 - one_button_accept.res.inst_0_a_0) - one_button_accept.res.init_flag_a_0))) -) - -(define-fun - __node_trans_one_button_accept_0 ( - (one_button_accept.usr.ccseti_a_1 Bool) - (one_button_accept.usr.ccsetd_a_1 Bool) - (one_button_accept.usr.ccr_a_1 Bool) - (one_button_accept.usr.ccont_a_1 Bool) - (one_button_accept.usr.cca_a_1 Bool) - (one_button_accept.usr.oba_a_1 Bool) - (one_button_accept.res.init_flag_a_1 Bool) - (one_button_accept.res.abs_0_a_1 Bool) - (one_button_accept.res.abs_1_a_1 Bool) - (one_button_accept.res.abs_2_a_1 Bool) - (one_button_accept.res.abs_3_a_1 Bool) - (one_button_accept.res.inst_4_a_1 Bool) - (one_button_accept.res.inst_3_a_1 Bool) - (one_button_accept.res.inst_2_a_1 Bool) - (one_button_accept.res.inst_1_a_1 Bool) - (one_button_accept.res.inst_0_a_1 Bool) - (one_button_accept.usr.ccseti_a_0 Bool) - (one_button_accept.usr.ccsetd_a_0 Bool) - (one_button_accept.usr.ccr_a_0 Bool) - (one_button_accept.usr.ccont_a_0 Bool) - (one_button_accept.usr.cca_a_0 Bool) - (one_button_accept.usr.oba_a_0 Bool) - (one_button_accept.res.init_flag_a_0 Bool) - (one_button_accept.res.abs_0_a_0 Bool) - (one_button_accept.res.abs_1_a_0 Bool) - (one_button_accept.res.abs_2_a_0 Bool) - (one_button_accept.res.abs_3_a_0 Bool) - (one_button_accept.res.inst_4_a_0 Bool) - (one_button_accept.res.inst_3_a_0 Bool) - (one_button_accept.res.inst_2_a_0 Bool) - (one_button_accept.res.inst_1_a_0 Bool) - (one_button_accept.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool one_button_accept.res.abs_0_a_1)) - (let - ((X2 Bool one_button_accept.res.abs_1_a_1)) - (and - (= - one_button_accept.usr.oba_a_1 - (ite - (and X1 X2) - (ite - (not one_button_accept.usr.ccr_a_1) - true - one_button_accept.res.abs_3_a_1) - false)) - (__node_trans_one_button_0 - one_button_accept.usr.ccseti_a_1 - one_button_accept.usr.ccsetd_a_1 - one_button_accept.usr.ccr_a_1 - one_button_accept.res.abs_1_a_1 - one_button_accept.res.inst_4_a_1 - one_button_accept.usr.ccseti_a_0 - one_button_accept.usr.ccsetd_a_0 - one_button_accept.usr.ccr_a_0 - one_button_accept.res.abs_1_a_0 - one_button_accept.res.inst_4_a_0) - (__node_trans_prev_no_button_0 - one_button_accept.usr.ccseti_a_1 - one_button_accept.usr.ccsetd_a_1 - one_button_accept.usr.ccr_a_1 - one_button_accept.res.abs_0_a_1 - one_button_accept.res.inst_3_a_1 - one_button_accept.res.inst_2_a_1 - one_button_accept.usr.ccseti_a_0 - one_button_accept.usr.ccsetd_a_0 - one_button_accept.usr.ccr_a_0 - one_button_accept.res.abs_0_a_0 - one_button_accept.res.inst_3_a_0 - one_button_accept.res.inst_2_a_0) - (__node_trans_AtLeastOnceSince_0 - one_button_accept.usr.cca_a_1 - one_button_accept.res.abs_2_a_1 - one_button_accept.res.abs_3_a_1 - one_button_accept.res.inst_1_a_1 - one_button_accept.usr.cca_a_0 - one_button_accept.res.abs_2_a_0 - one_button_accept.res.abs_3_a_0 - one_button_accept.res.inst_1_a_0) - (__node_trans_PosEdge_0 - one_button_accept.usr.ccont_a_1 - one_button_accept.res.abs_2_a_1 - one_button_accept.res.inst_0_a_1 - one_button_accept.usr.ccont_a_0 - one_button_accept.res.abs_2_a_0 - one_button_accept.res.inst_0_a_0) - (not one_button_accept.res.init_flag_a_1)))) -) - -(define-fun - __node_init_main_0 ( - (main.usr.igsw_a_0 Bool) - (main.usr.ccd_a_0 Bool) - (main.usr.cconoff_a_0 Bool) - (main.usr.bpa_a_0 Bool) - (main.usr.cccanc_a_0 Bool) - (main.usr.battok_a_0 Bool) - (main.usr.gearok_a_0 Bool) - (main.usr.qfok_a_0 Bool) - (main.usr.sdok_a_0 Bool) - (main.usr.accok_a_0 Bool) - (main.usr.ccseti_a_0 Bool) - (main.usr.ccsetd_a_0 Bool) - (main.usr.ccr_a_0 Bool) - (main.usr.vs_a_0 Int) - (main.res.nondet_0 Bool) - (main.usr.ccont_a_0 Bool) - (main.usr.cca_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Bool) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Bool) - (main.res.inst_17_a_0 Bool) - (main.res.inst_16_a_0 Bool) - (main.res.inst_15_a_0 Bool) - (main.res.inst_14_a_0 Bool) - (main.res.inst_13_a_0 Bool) - (main.res.inst_12_a_0 Bool) - (main.res.inst_11_a_0 Bool) - (main.res.inst_10_a_0 Bool) - (main.res.inst_9_a_0 Bool) - (main.res.inst_8_a_0 Bool) - (main.res.inst_7_a_0 Bool) - (main.res.inst_6_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Bool) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Bool) - (main.res.inst_0_a_0 Bool) - ) Bool - - (and - (= main.usr.ccont_a_0 false) - (= main.res.abs_2_a_0 (not main.usr.ccont_a_0)) - (= main.usr.cca_a_0 false) - (let - ((X1 Bool main.res.abs_3_a_0)) - (and - (= main.res.abs_4_a_0 (let ((X2 Bool main.res.nondet_0)) X2)) - (__node_init_Edge_0 main.usr.igsw_a_0 main.res.abs_0_a_0 main.res.inst_17_a_0) - (__node_init_PosEdge_0 - main.usr.cconoff_a_0 - main.res.abs_1_a_0 - main.res.inst_16_a_0) - (__node_init_cc_allowed_0 - main.usr.ccont_a_0 - main.usr.igsw_a_0 - main.usr.bpa_a_0 - main.usr.cccanc_a_0 - main.usr.battok_a_0 - main.usr.gearok_a_0 - main.usr.qfok_a_0 - main.usr.sdok_a_0 - main.usr.accok_a_0 - main.usr.vs_a_0 - main.res.abs_3_a_0 - main.res.inst_15_a_0 - main.res.inst_14_a_0 - main.res.inst_13_a_0 - main.res.inst_12_a_0 - main.res.inst_11_a_0 - main.res.inst_10_a_0) - (__node_init_one_button_accept_0 - main.usr.ccseti_a_0 - main.usr.ccsetd_a_0 - main.usr.ccr_a_0 - main.usr.ccont_a_0 - main.res.abs_4_a_0 - main.res.abs_5_a_0 - main.res.inst_9_a_0 - main.res.inst_8_a_0 - main.res.inst_7_a_0 - main.res.inst_6_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0 - main.res.inst_3_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0 - main.res.inst_0_a_0) - main.res.init_flag_a_0))) -) - -(define-fun - __node_trans_main_0 ( - (main.usr.igsw_a_1 Bool) - (main.usr.ccd_a_1 Bool) - (main.usr.cconoff_a_1 Bool) - (main.usr.bpa_a_1 Bool) - (main.usr.cccanc_a_1 Bool) - (main.usr.battok_a_1 Bool) - (main.usr.gearok_a_1 Bool) - (main.usr.qfok_a_1 Bool) - (main.usr.sdok_a_1 Bool) - (main.usr.accok_a_1 Bool) - (main.usr.ccseti_a_1 Bool) - (main.usr.ccsetd_a_1 Bool) - (main.usr.ccr_a_1 Bool) - (main.usr.vs_a_1 Int) - (main.res.nondet_0 Bool) - (main.usr.ccont_a_1 Bool) - (main.usr.cca_a_1 Bool) - (main.res.init_flag_a_1 Bool) - (main.res.abs_0_a_1 Bool) - (main.res.abs_1_a_1 Bool) - (main.res.abs_2_a_1 Bool) - (main.res.abs_3_a_1 Bool) - (main.res.abs_4_a_1 Bool) - (main.res.abs_5_a_1 Bool) - (main.res.inst_17_a_1 Bool) - (main.res.inst_16_a_1 Bool) - (main.res.inst_15_a_1 Bool) - (main.res.inst_14_a_1 Bool) - (main.res.inst_13_a_1 Bool) - (main.res.inst_12_a_1 Bool) - (main.res.inst_11_a_1 Bool) - (main.res.inst_10_a_1 Bool) - (main.res.inst_9_a_1 Bool) - (main.res.inst_8_a_1 Bool) - (main.res.inst_7_a_1 Bool) - (main.res.inst_6_a_1 Bool) - (main.res.inst_5_a_1 Bool) - (main.res.inst_4_a_1 Bool) - (main.res.inst_3_a_1 Bool) - (main.res.inst_2_a_1 Bool) - (main.res.inst_1_a_1 Bool) - (main.res.inst_0_a_1 Bool) - (main.usr.igsw_a_0 Bool) - (main.usr.ccd_a_0 Bool) - (main.usr.cconoff_a_0 Bool) - (main.usr.bpa_a_0 Bool) - (main.usr.cccanc_a_0 Bool) - (main.usr.battok_a_0 Bool) - (main.usr.gearok_a_0 Bool) - (main.usr.qfok_a_0 Bool) - (main.usr.sdok_a_0 Bool) - (main.usr.accok_a_0 Bool) - (main.usr.ccseti_a_0 Bool) - (main.usr.ccsetd_a_0 Bool) - (main.usr.ccr_a_0 Bool) - (main.usr.vs_a_0 Int) - (main.usr.ccont_a_0 Bool) - (main.usr.cca_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Bool) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Bool) - (main.res.inst_17_a_0 Bool) - (main.res.inst_16_a_0 Bool) - (main.res.inst_15_a_0 Bool) - (main.res.inst_14_a_0 Bool) - (main.res.inst_13_a_0 Bool) - (main.res.inst_12_a_0 Bool) - (main.res.inst_11_a_0 Bool) - (main.res.inst_10_a_0 Bool) - (main.res.inst_9_a_0 Bool) - (main.res.inst_8_a_0 Bool) - (main.res.inst_7_a_0 Bool) - (main.res.inst_6_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Bool) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Bool) - (main.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - main.usr.ccont_a_1 - (ite - (or - (or main.res.abs_0_a_1 main.usr.ccd_a_1) - (and main.usr.ccont_a_0 main.res.abs_1_a_1)) - false - (ite (and main.res.abs_2_a_0 main.res.abs_1_a_1) true main.usr.ccont_a_0))) - (= main.res.abs_2_a_1 (not main.usr.ccont_a_1)) - (= main.res.abs_4_a_1 main.usr.cca_a_0) - (let - ((X1 Bool main.res.abs_3_a_1)) - (and - (= - main.usr.cca_a_1 - (ite - (and main.res.abs_5_a_1 X1) - true - (ite (not X1) false main.usr.cca_a_0))) - (__node_trans_Edge_0 - main.usr.igsw_a_1 - main.res.abs_0_a_1 - main.res.inst_17_a_1 - main.usr.igsw_a_0 - main.res.abs_0_a_0 - main.res.inst_17_a_0) - (__node_trans_PosEdge_0 - main.usr.cconoff_a_1 - main.res.abs_1_a_1 - main.res.inst_16_a_1 - main.usr.cconoff_a_0 - main.res.abs_1_a_0 - main.res.inst_16_a_0) - (__node_trans_cc_allowed_0 - main.usr.ccont_a_1 - main.usr.igsw_a_1 - main.usr.bpa_a_1 - main.usr.cccanc_a_1 - main.usr.battok_a_1 - main.usr.gearok_a_1 - main.usr.qfok_a_1 - main.usr.sdok_a_1 - main.usr.accok_a_1 - main.usr.vs_a_1 - main.res.abs_3_a_1 - main.res.inst_15_a_1 - main.res.inst_14_a_1 - main.res.inst_13_a_1 - main.res.inst_12_a_1 - main.res.inst_11_a_1 - main.res.inst_10_a_1 - main.usr.ccont_a_0 - main.usr.igsw_a_0 - main.usr.bpa_a_0 - main.usr.cccanc_a_0 - main.usr.battok_a_0 - main.usr.gearok_a_0 - main.usr.qfok_a_0 - main.usr.sdok_a_0 - main.usr.accok_a_0 - main.usr.vs_a_0 - main.res.abs_3_a_0 - main.res.inst_15_a_0 - main.res.inst_14_a_0 - main.res.inst_13_a_0 - main.res.inst_12_a_0 - main.res.inst_11_a_0 - main.res.inst_10_a_0) - (__node_trans_one_button_accept_0 - main.usr.ccseti_a_1 - main.usr.ccsetd_a_1 - main.usr.ccr_a_1 - main.usr.ccont_a_1 - main.res.abs_4_a_1 - main.res.abs_5_a_1 - main.res.inst_9_a_1 - main.res.inst_8_a_1 - main.res.inst_7_a_1 - main.res.inst_6_a_1 - main.res.inst_5_a_1 - main.res.inst_4_a_1 - main.res.inst_3_a_1 - main.res.inst_2_a_1 - main.res.inst_1_a_1 - main.res.inst_0_a_1 - main.usr.ccseti_a_0 - main.usr.ccsetd_a_0 - main.usr.ccr_a_0 - main.usr.ccont_a_0 - main.res.abs_4_a_0 - main.res.abs_5_a_0 - main.res.inst_9_a_0 - main.res.inst_8_a_0 - main.res.inst_7_a_0 - main.res.inst_6_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0 - main.res.inst_3_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0 - main.res.inst_0_a_0) - (not main.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.igsw_a_0 Bool) - (top.usr.ccd_a_0 Bool) - (top.usr.cconoff_a_0 Bool) - (top.usr.bpa_a_0 Bool) - (top.usr.cccanc_a_0 Bool) - (top.usr.battok_a_0 Bool) - (top.usr.gearok_a_0 Bool) - (top.usr.qfok_a_0 Bool) - (top.usr.sdok_a_0 Bool) - (top.usr.accok_a_0 Bool) - (top.usr.ccseti_a_0 Bool) - (top.usr.ccsetd_a_0 Bool) - (top.usr.ccr_a_0 Bool) - (top.usr.vs_a_0 Int) - (top.res.nondet_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.ccont_a_0 Bool) - (top.impl.usr.cca_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.inst_37_a_0 Bool) - (top.res.inst_36_a_0 Bool) - (top.res.inst_35_a_0 Bool) - (top.res.inst_34_a_0 Bool) - (top.res.inst_33_a_0 Bool) - (top.res.inst_32_a_0 Bool) - (top.res.inst_31_a_0 Bool) - (top.res.inst_30_a_0 Bool) - (top.res.inst_29_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Bool) - (top.res.inst_23_a_0 Bool) - (top.res.inst_22_a_0 Bool) - (top.res.inst_21_a_0 Bool) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.ccont_a_0 top.res.abs_8_a_0) - (= top.impl.usr.cca_a_0 top.res.abs_9_a_0) - (let - ((X1 Bool (ite top.res.abs_6_a_0 (not top.impl.usr.cca_a_0) true))) - (let - ((X2 - Bool (ite - top.res.abs_5_a_0 - (and - (and (not top.res.abs_6_a_0) (not top.usr.ccd_a_0)) - top.res.abs_7_a_0) - true))) - (let - ((X3 Bool (ite (not top.res.abs_4_a_0) (not top.impl.usr.cca_a_0) true))) - (let - ((X4 - Bool (ite - top.res.abs_0_a_0 - (or (or top.res.abs_1_a_0 top.res.abs_2_a_0) top.res.abs_3_a_0) - true))) - (and - (= top.usr.OK_a_0 (and (and (and X4 X3) X2) X1)) - (__node_init_PosEdge_0 - top.impl.usr.cca_a_0 - top.res.abs_0_a_0 - top.res.inst_37_a_0) - (__node_init_main_0 - top.usr.igsw_a_0 - top.usr.ccd_a_0 - top.usr.cconoff_a_0 - top.usr.bpa_a_0 - top.usr.cccanc_a_0 - top.usr.battok_a_0 - top.usr.gearok_a_0 - top.usr.qfok_a_0 - top.usr.sdok_a_0 - top.usr.accok_a_0 - top.usr.ccseti_a_0 - top.usr.ccsetd_a_0 - top.usr.ccr_a_0 - top.usr.vs_a_0 - top.res.nondet_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_36_a_0 - top.res.inst_35_a_0 - top.res.inst_34_a_0 - top.res.inst_33_a_0 - top.res.inst_32_a_0 - top.res.inst_31_a_0 - top.res.inst_30_a_0 - top.res.inst_29_a_0 - top.res.inst_28_a_0 - top.res.inst_27_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0) - (__node_init_PosEdge_0 - top.usr.ccseti_a_0 - top.res.abs_1_a_0 - top.res.inst_11_a_0) - (__node_init_PosEdge_0 - top.usr.ccsetd_a_0 - top.res.abs_2_a_0 - top.res.inst_10_a_0) - (__node_init_PosEdge_0 - top.usr.ccr_a_0 - top.res.abs_3_a_0 - top.res.inst_9_a_0) - (__node_init_cc_allowed_0 - top.impl.usr.ccont_a_0 - top.usr.igsw_a_0 - top.usr.bpa_a_0 - top.usr.cccanc_a_0 - top.usr.battok_a_0 - top.usr.gearok_a_0 - top.usr.qfok_a_0 - top.usr.sdok_a_0 - top.usr.accok_a_0 - top.usr.vs_a_0 - top.res.abs_4_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_PosEdge_0 - top.impl.usr.ccont_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_init_Edge_0 top.usr.igsw_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_PosEdge_0 - top.usr.cconoff_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.igsw_a_1 Bool) - (top.usr.ccd_a_1 Bool) - (top.usr.cconoff_a_1 Bool) - (top.usr.bpa_a_1 Bool) - (top.usr.cccanc_a_1 Bool) - (top.usr.battok_a_1 Bool) - (top.usr.gearok_a_1 Bool) - (top.usr.qfok_a_1 Bool) - (top.usr.sdok_a_1 Bool) - (top.usr.accok_a_1 Bool) - (top.usr.ccseti_a_1 Bool) - (top.usr.ccsetd_a_1 Bool) - (top.usr.ccr_a_1 Bool) - (top.usr.vs_a_1 Int) - (top.res.nondet_0 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.ccont_a_1 Bool) - (top.impl.usr.cca_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.inst_37_a_1 Bool) - (top.res.inst_36_a_1 Bool) - (top.res.inst_35_a_1 Bool) - (top.res.inst_34_a_1 Bool) - (top.res.inst_33_a_1 Bool) - (top.res.inst_32_a_1 Bool) - (top.res.inst_31_a_1 Bool) - (top.res.inst_30_a_1 Bool) - (top.res.inst_29_a_1 Bool) - (top.res.inst_28_a_1 Bool) - (top.res.inst_27_a_1 Bool) - (top.res.inst_26_a_1 Bool) - (top.res.inst_25_a_1 Bool) - (top.res.inst_24_a_1 Bool) - (top.res.inst_23_a_1 Bool) - (top.res.inst_22_a_1 Bool) - (top.res.inst_21_a_1 Bool) - (top.res.inst_20_a_1 Bool) - (top.res.inst_19_a_1 Bool) - (top.res.inst_18_a_1 Bool) - (top.res.inst_17_a_1 Bool) - (top.res.inst_16_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Bool) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Bool) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Bool) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.igsw_a_0 Bool) - (top.usr.ccd_a_0 Bool) - (top.usr.cconoff_a_0 Bool) - (top.usr.bpa_a_0 Bool) - (top.usr.cccanc_a_0 Bool) - (top.usr.battok_a_0 Bool) - (top.usr.gearok_a_0 Bool) - (top.usr.qfok_a_0 Bool) - (top.usr.sdok_a_0 Bool) - (top.usr.accok_a_0 Bool) - (top.usr.ccseti_a_0 Bool) - (top.usr.ccsetd_a_0 Bool) - (top.usr.ccr_a_0 Bool) - (top.usr.vs_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.ccont_a_0 Bool) - (top.impl.usr.cca_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.inst_37_a_0 Bool) - (top.res.inst_36_a_0 Bool) - (top.res.inst_35_a_0 Bool) - (top.res.inst_34_a_0 Bool) - (top.res.inst_33_a_0 Bool) - (top.res.inst_32_a_0 Bool) - (top.res.inst_31_a_0 Bool) - (top.res.inst_30_a_0 Bool) - (top.res.inst_29_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Bool) - (top.res.inst_23_a_0 Bool) - (top.res.inst_22_a_0 Bool) - (top.res.inst_21_a_0 Bool) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.ccont_a_1 top.res.abs_8_a_1) - (= top.impl.usr.cca_a_1 top.res.abs_9_a_1) - (let - ((X1 Bool (ite top.res.abs_6_a_1 (not top.impl.usr.cca_a_1) true))) - (let - ((X2 - Bool (ite - top.res.abs_5_a_1 - (and - (and (not top.res.abs_6_a_1) (not top.usr.ccd_a_1)) - top.res.abs_7_a_1) - true))) - (let - ((X3 Bool (ite (not top.res.abs_4_a_1) (not top.impl.usr.cca_a_1) true))) - (let - ((X4 - Bool (ite - top.res.abs_0_a_1 - (or (or top.res.abs_1_a_1 top.res.abs_2_a_1) top.res.abs_3_a_1) - true))) - (and - (= top.usr.OK_a_1 (and (and (and X4 X3) X2) X1)) - (__node_trans_PosEdge_0 - top.impl.usr.cca_a_1 - top.res.abs_0_a_1 - top.res.inst_37_a_1 - top.impl.usr.cca_a_0 - top.res.abs_0_a_0 - top.res.inst_37_a_0) - (__node_trans_main_0 - top.usr.igsw_a_1 - top.usr.ccd_a_1 - top.usr.cconoff_a_1 - top.usr.bpa_a_1 - top.usr.cccanc_a_1 - top.usr.battok_a_1 - top.usr.gearok_a_1 - top.usr.qfok_a_1 - top.usr.sdok_a_1 - top.usr.accok_a_1 - top.usr.ccseti_a_1 - top.usr.ccsetd_a_1 - top.usr.ccr_a_1 - top.usr.vs_a_1 - top.res.nondet_0 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_36_a_1 - top.res.inst_35_a_1 - top.res.inst_34_a_1 - top.res.inst_33_a_1 - top.res.inst_32_a_1 - top.res.inst_31_a_1 - top.res.inst_30_a_1 - top.res.inst_29_a_1 - top.res.inst_28_a_1 - top.res.inst_27_a_1 - top.res.inst_26_a_1 - top.res.inst_25_a_1 - top.res.inst_24_a_1 - top.res.inst_23_a_1 - top.res.inst_22_a_1 - top.res.inst_21_a_1 - top.res.inst_20_a_1 - top.res.inst_19_a_1 - top.res.inst_18_a_1 - top.res.inst_17_a_1 - top.res.inst_16_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.usr.igsw_a_0 - top.usr.ccd_a_0 - top.usr.cconoff_a_0 - top.usr.bpa_a_0 - top.usr.cccanc_a_0 - top.usr.battok_a_0 - top.usr.gearok_a_0 - top.usr.qfok_a_0 - top.usr.sdok_a_0 - top.usr.accok_a_0 - top.usr.ccseti_a_0 - top.usr.ccsetd_a_0 - top.usr.ccr_a_0 - top.usr.vs_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_36_a_0 - top.res.inst_35_a_0 - top.res.inst_34_a_0 - top.res.inst_33_a_0 - top.res.inst_32_a_0 - top.res.inst_31_a_0 - top.res.inst_30_a_0 - top.res.inst_29_a_0 - top.res.inst_28_a_0 - top.res.inst_27_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0) - (__node_trans_PosEdge_0 - top.usr.ccseti_a_1 - top.res.abs_1_a_1 - top.res.inst_11_a_1 - top.usr.ccseti_a_0 - top.res.abs_1_a_0 - top.res.inst_11_a_0) - (__node_trans_PosEdge_0 - top.usr.ccsetd_a_1 - top.res.abs_2_a_1 - top.res.inst_10_a_1 - top.usr.ccsetd_a_0 - top.res.abs_2_a_0 - top.res.inst_10_a_0) - (__node_trans_PosEdge_0 - top.usr.ccr_a_1 - top.res.abs_3_a_1 - top.res.inst_9_a_1 - top.usr.ccr_a_0 - top.res.abs_3_a_0 - top.res.inst_9_a_0) - (__node_trans_cc_allowed_0 - top.impl.usr.ccont_a_1 - top.usr.igsw_a_1 - top.usr.bpa_a_1 - top.usr.cccanc_a_1 - top.usr.battok_a_1 - top.usr.gearok_a_1 - top.usr.qfok_a_1 - top.usr.sdok_a_1 - top.usr.accok_a_1 - top.usr.vs_a_1 - top.res.abs_4_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.impl.usr.ccont_a_0 - top.usr.igsw_a_0 - top.usr.bpa_a_0 - top.usr.cccanc_a_0 - top.usr.battok_a_0 - top.usr.gearok_a_0 - top.usr.qfok_a_0 - top.usr.sdok_a_0 - top.usr.accok_a_0 - top.usr.vs_a_0 - top.res.abs_4_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_PosEdge_0 - top.impl.usr.ccont_a_1 - top.res.abs_5_a_1 - top.res.inst_2_a_1 - top.impl.usr.ccont_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_trans_Edge_0 - top.usr.igsw_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.usr.igsw_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_PosEdge_0 - top.usr.cconoff_a_1 - top.res.abs_7_a_1 - top.res.inst_0_a_1 - top.usr.cconoff_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.igsw Bool) - (top.usr.ccd Bool) - (top.usr.cconoff Bool) - (top.usr.bpa Bool) - (top.usr.cccanc Bool) - (top.usr.battok Bool) - (top.usr.gearok Bool) - (top.usr.qfok Bool) - (top.usr.sdok Bool) - (top.usr.accok Bool) - (top.usr.ccseti Bool) - (top.usr.ccsetd Bool) - (top.usr.ccr Bool) - (top.usr.vs Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.ccont Bool) - (top.impl.usr.cca Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_0 () Bool) - -(declare-primed-var top.usr.igsw Bool) -(declare-primed-var top.usr.ccd Bool) -(declare-primed-var top.usr.cconoff Bool) -(declare-primed-var top.usr.bpa Bool) -(declare-primed-var top.usr.cccanc Bool) -(declare-primed-var top.usr.battok Bool) -(declare-primed-var top.usr.gearok Bool) -(declare-primed-var top.usr.qfok Bool) -(declare-primed-var top.usr.sdok Bool) -(declare-primed-var top.usr.accok Bool) -(declare-primed-var top.usr.ccseti Bool) -(declare-primed-var top.usr.ccsetd Bool) -(declare-primed-var top.usr.ccr Bool) -(declare-primed-var top.usr.vs Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.ccont Bool) -(declare-primed-var top.impl.usr.cca Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.inst_37 Bool) -(declare-primed-var top.res.inst_36 Bool) -(declare-primed-var top.res.inst_35 Bool) -(declare-primed-var top.res.inst_34 Bool) -(declare-primed-var top.res.inst_33 Bool) -(declare-primed-var top.res.inst_32 Bool) -(declare-primed-var top.res.inst_31 Bool) -(declare-primed-var top.res.inst_30 Bool) -(declare-primed-var top.res.inst_29 Bool) -(declare-primed-var top.res.inst_28 Bool) -(declare-primed-var top.res.inst_27 Bool) -(declare-primed-var top.res.inst_26 Bool) -(declare-primed-var top.res.inst_25 Bool) -(declare-primed-var top.res.inst_24 Bool) -(declare-primed-var top.res.inst_23 Bool) -(declare-primed-var top.res.inst_22 Bool) -(declare-primed-var top.res.inst_21 Bool) -(declare-primed-var top.res.inst_20 Bool) -(declare-primed-var top.res.inst_19 Bool) -(declare-primed-var top.res.inst_18 Bool) -(declare-primed-var top.res.inst_17 Bool) -(declare-primed-var top.res.inst_16 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Bool) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Bool) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Bool) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.igsw Bool) - (top.usr.ccd Bool) - (top.usr.cconoff Bool) - (top.usr.bpa Bool) - (top.usr.cccanc Bool) - (top.usr.battok Bool) - (top.usr.gearok Bool) - (top.usr.qfok Bool) - (top.usr.sdok Bool) - (top.usr.accok Bool) - (top.usr.ccseti Bool) - (top.usr.ccsetd Bool) - (top.usr.ccr Bool) - (top.usr.vs Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.ccont Bool) - (top.impl.usr.cca Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.impl.usr.ccont top.res.abs_8) - (= top.impl.usr.cca top.res.abs_9) - (let - ((X1 Bool (ite top.res.abs_6 (not top.impl.usr.cca) true))) - (let - ((X2 - Bool (ite - top.res.abs_5 - (and (and (not top.res.abs_6) (not top.usr.ccd)) top.res.abs_7) - true))) - (let - ((X3 Bool (ite (not top.res.abs_4) (not top.impl.usr.cca) true))) - (let - ((X4 - Bool (ite - top.res.abs_0 - (or (or top.res.abs_1 top.res.abs_2) top.res.abs_3) - true))) - (and - (= top.usr.OK (and (and (and X4 X3) X2) X1)) - (__node_init_PosEdge_0 - top.impl.usr.cca - top.res.abs_0 - top.res.inst_37) - (__node_init_main_0 - top.usr.igsw - top.usr.ccd - top.usr.cconoff - top.usr.bpa - top.usr.cccanc - top.usr.battok - top.usr.gearok - top.usr.qfok - top.usr.sdok - top.usr.accok - top.usr.ccseti - top.usr.ccsetd - top.usr.ccr - top.usr.vs - top.res.nondet_0 - top.res.abs_8 - top.res.abs_9 - top.res.inst_36 - top.res.inst_35 - top.res.inst_34 - top.res.inst_33 - top.res.inst_32 - top.res.inst_31 - top.res.inst_30 - top.res.inst_29 - top.res.inst_28 - top.res.inst_27 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12) - (__node_init_PosEdge_0 top.usr.ccseti top.res.abs_1 top.res.inst_11) - (__node_init_PosEdge_0 top.usr.ccsetd top.res.abs_2 top.res.inst_10) - (__node_init_PosEdge_0 top.usr.ccr top.res.abs_3 top.res.inst_9) - (__node_init_cc_allowed_0 - top.impl.usr.ccont - top.usr.igsw - top.usr.bpa - top.usr.cccanc - top.usr.battok - top.usr.gearok - top.usr.qfok - top.usr.sdok - top.usr.accok - top.usr.vs - top.res.abs_4 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_PosEdge_0 - top.impl.usr.ccont - top.res.abs_5 - top.res.inst_2) - (__node_init_Edge_0 top.usr.igsw top.res.abs_6 top.res.inst_1) - (__node_init_PosEdge_0 top.usr.cconoff top.res.abs_7 top.res.inst_0) - top.res.init_flag)))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.igsw Bool) - (top.usr.ccd Bool) - (top.usr.cconoff Bool) - (top.usr.bpa Bool) - (top.usr.cccanc Bool) - (top.usr.battok Bool) - (top.usr.gearok Bool) - (top.usr.qfok Bool) - (top.usr.sdok Bool) - (top.usr.accok Bool) - (top.usr.ccseti Bool) - (top.usr.ccsetd Bool) - (top.usr.ccr Bool) - (top.usr.vs Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.ccont Bool) - (top.impl.usr.cca Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.igsw! Bool) - (top.usr.ccd! Bool) - (top.usr.cconoff! Bool) - (top.usr.bpa! Bool) - (top.usr.cccanc! Bool) - (top.usr.battok! Bool) - (top.usr.gearok! Bool) - (top.usr.qfok! Bool) - (top.usr.sdok! Bool) - (top.usr.accok! Bool) - (top.usr.ccseti! Bool) - (top.usr.ccsetd! Bool) - (top.usr.ccr! Bool) - (top.usr.vs! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.ccont! Bool) - (top.impl.usr.cca! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.inst_37! Bool) - (top.res.inst_36! Bool) - (top.res.inst_35! Bool) - (top.res.inst_34! Bool) - (top.res.inst_33! Bool) - (top.res.inst_32! Bool) - (top.res.inst_31! Bool) - (top.res.inst_30! Bool) - (top.res.inst_29! Bool) - (top.res.inst_28! Bool) - (top.res.inst_27! Bool) - (top.res.inst_26! Bool) - (top.res.inst_25! Bool) - (top.res.inst_24! Bool) - (top.res.inst_23! Bool) - (top.res.inst_22! Bool) - (top.res.inst_21! Bool) - (top.res.inst_20! Bool) - (top.res.inst_19! Bool) - (top.res.inst_18! Bool) - (top.res.inst_17! Bool) - (top.res.inst_16! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Bool) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Bool) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Bool) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.impl.usr.ccont! top.res.abs_8!) - (= top.impl.usr.cca! top.res.abs_9!) - (let - ((X1 Bool (ite top.res.abs_6! (not top.impl.usr.cca!) true))) - (let - ((X2 - Bool (ite - top.res.abs_5! - (and - (and (not top.res.abs_6!) (not top.usr.ccd!)) - top.res.abs_7!) - true))) - (let - ((X3 Bool (ite (not top.res.abs_4!) (not top.impl.usr.cca!) true))) - (let - ((X4 - Bool (ite - top.res.abs_0! - (or (or top.res.abs_1! top.res.abs_2!) top.res.abs_3!) - true))) - (and - (= top.usr.OK! (and (and (and X4 X3) X2) X1)) - (__node_trans_PosEdge_0 - top.impl.usr.cca! - top.res.abs_0! - top.res.inst_37! - top.impl.usr.cca - top.res.abs_0 - top.res.inst_37) - (__node_trans_main_0 - top.usr.igsw! - top.usr.ccd! - top.usr.cconoff! - top.usr.bpa! - top.usr.cccanc! - top.usr.battok! - top.usr.gearok! - top.usr.qfok! - top.usr.sdok! - top.usr.accok! - top.usr.ccseti! - top.usr.ccsetd! - top.usr.ccr! - top.usr.vs! - top.res.nondet_0 - top.res.abs_8! - top.res.abs_9! - top.res.inst_36! - top.res.inst_35! - top.res.inst_34! - top.res.inst_33! - top.res.inst_32! - top.res.inst_31! - top.res.inst_30! - top.res.inst_29! - top.res.inst_28! - top.res.inst_27! - top.res.inst_26! - top.res.inst_25! - top.res.inst_24! - top.res.inst_23! - top.res.inst_22! - top.res.inst_21! - top.res.inst_20! - top.res.inst_19! - top.res.inst_18! - top.res.inst_17! - top.res.inst_16! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.usr.igsw - top.usr.ccd - top.usr.cconoff - top.usr.bpa - top.usr.cccanc - top.usr.battok - top.usr.gearok - top.usr.qfok - top.usr.sdok - top.usr.accok - top.usr.ccseti - top.usr.ccsetd - top.usr.ccr - top.usr.vs - top.res.abs_8 - top.res.abs_9 - top.res.inst_36 - top.res.inst_35 - top.res.inst_34 - top.res.inst_33 - top.res.inst_32 - top.res.inst_31 - top.res.inst_30 - top.res.inst_29 - top.res.inst_28 - top.res.inst_27 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12) - (__node_trans_PosEdge_0 - top.usr.ccseti! - top.res.abs_1! - top.res.inst_11! - top.usr.ccseti - top.res.abs_1 - top.res.inst_11) - (__node_trans_PosEdge_0 - top.usr.ccsetd! - top.res.abs_2! - top.res.inst_10! - top.usr.ccsetd - top.res.abs_2 - top.res.inst_10) - (__node_trans_PosEdge_0 - top.usr.ccr! - top.res.abs_3! - top.res.inst_9! - top.usr.ccr - top.res.abs_3 - top.res.inst_9) - (__node_trans_cc_allowed_0 - top.impl.usr.ccont! - top.usr.igsw! - top.usr.bpa! - top.usr.cccanc! - top.usr.battok! - top.usr.gearok! - top.usr.qfok! - top.usr.sdok! - top.usr.accok! - top.usr.vs! - top.res.abs_4! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.impl.usr.ccont - top.usr.igsw - top.usr.bpa - top.usr.cccanc - top.usr.battok - top.usr.gearok - top.usr.qfok - top.usr.sdok - top.usr.accok - top.usr.vs - top.res.abs_4 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_PosEdge_0 - top.impl.usr.ccont! - top.res.abs_5! - top.res.inst_2! - top.impl.usr.ccont - top.res.abs_5 - top.res.inst_2) - (__node_trans_Edge_0 - top.usr.igsw! - top.res.abs_6! - top.res.inst_1! - top.usr.igsw - top.res.abs_6 - top.res.inst_1) - (__node_trans_PosEdge_0 - top.usr.cconoff! - top.res.abs_7! - top.res.inst_0! - top.usr.cconoff - top.res.abs_7 - top.res.inst_0) - (not top.res.init_flag!))))))) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.igsw Bool) - (top.usr.ccd Bool) - (top.usr.cconoff Bool) - (top.usr.bpa Bool) - (top.usr.cccanc Bool) - (top.usr.battok Bool) - (top.usr.gearok Bool) - (top.usr.qfok Bool) - (top.usr.sdok Bool) - (top.usr.accok Bool) - (top.usr.ccseti Bool) - (top.usr.ccsetd Bool) - (top.usr.ccr Bool) - (top.usr.vs Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.ccont Bool) - (top.impl.usr.cca Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_MoreThanTwoSec_0 ((MoreThanTwoSec.usr.X_a_0 Bool) (MoreThanTwoSec.usr.Y_a_0 Bool) (MoreThanTwoSec.res.init_flag_a_0 Bool) (MoreThanTwoSec.res.abs_0_a_0 Bool)) Bool + (and (= MoreThanTwoSec.usr.Y_a_0 false) (= MoreThanTwoSec.res.abs_0_a_0 false) MoreThanTwoSec.res.init_flag_a_0)) +(define-fun __node_trans_MoreThanTwoSec_0 ((MoreThanTwoSec.usr.X_a_1 Bool) (MoreThanTwoSec.usr.Y_a_1 Bool) (MoreThanTwoSec.res.init_flag_a_1 Bool) (MoreThanTwoSec.res.abs_0_a_1 Bool) (MoreThanTwoSec.usr.X_a_0 Bool) (MoreThanTwoSec.usr.Y_a_0 Bool) (MoreThanTwoSec.res.init_flag_a_0 Bool) (MoreThanTwoSec.res.abs_0_a_0 Bool)) Bool + (and (= MoreThanTwoSec.usr.Y_a_1 (and MoreThanTwoSec.res.abs_0_a_0 MoreThanTwoSec.usr.X_a_1)) (= MoreThanTwoSec.res.abs_0_a_1 (and MoreThanTwoSec.usr.X_a_0 MoreThanTwoSec.usr.X_a_1)) (not MoreThanTwoSec.res.init_flag_a_1))) +(define-fun __node_init_MoreThanOneSec_0 ((MoreThanOneSec.usr.X_a_0 Bool) (MoreThanOneSec.usr.Y_a_0 Bool) (MoreThanOneSec.res.init_flag_a_0 Bool)) Bool + (and (= MoreThanOneSec.usr.Y_a_0 false) MoreThanOneSec.res.init_flag_a_0)) +(define-fun __node_trans_MoreThanOneSec_0 ((MoreThanOneSec.usr.X_a_1 Bool) (MoreThanOneSec.usr.Y_a_1 Bool) (MoreThanOneSec.res.init_flag_a_1 Bool) (MoreThanOneSec.usr.X_a_0 Bool) (MoreThanOneSec.usr.Y_a_0 Bool) (MoreThanOneSec.res.init_flag_a_0 Bool)) Bool + (and (= MoreThanOneSec.usr.Y_a_1 (and MoreThanOneSec.usr.X_a_0 MoreThanOneSec.usr.X_a_1)) (not MoreThanOneSec.res.init_flag_a_1))) +(define-fun __node_init_cc_allowed_0 ((cc_allowed.usr.ccont_a_0 Bool) (cc_allowed.usr.igsw_a_0 Bool) (cc_allowed.usr.bpa_a_0 Bool) (cc_allowed.usr.cccanc_a_0 Bool) (cc_allowed.usr.battok_a_0 Bool) (cc_allowed.usr.gearok_a_0 Bool) (cc_allowed.usr.qfok_a_0 Bool) (cc_allowed.usr.sdok_a_0 Bool) (cc_allowed.usr.accok_a_0 Bool) (cc_allowed.usr.vs_a_0 Int) (cc_allowed.usr.ccall_a_0 Bool) (cc_allowed.res.init_flag_a_0 Bool) (cc_allowed.res.abs_0_a_0 Bool) (cc_allowed.res.abs_1_a_0 Bool) (cc_allowed.res.inst_2_a_0 Bool) (cc_allowed.res.inst_1_a_0 Bool) (cc_allowed.res.inst_0_a_0 Bool)) Bool + (and (= cc_allowed.usr.ccall_a_0 (and (and (and (and (and (and (and (and (and cc_allowed.usr.ccont_a_0 (not cc_allowed.usr.bpa_a_0)) cc_allowed.usr.battok_a_0) cc_allowed.usr.gearok_a_0) cc_allowed.usr.qfok_a_0) cc_allowed.res.abs_0_a_0) (<= 35 cc_allowed.usr.vs_a_0)) (<= cc_allowed.usr.vs_a_0 200)) cc_allowed.res.abs_1_a_0) (not cc_allowed.usr.cccanc_a_0))) (__node_init_MoreThanOneSec_0 cc_allowed.usr.sdok_a_0 cc_allowed.res.abs_0_a_0 cc_allowed.res.inst_2_a_0) (__node_init_MoreThanTwoSec_0 cc_allowed.usr.accok_a_0 cc_allowed.res.abs_1_a_0 cc_allowed.res.inst_1_a_0 cc_allowed.res.inst_0_a_0) cc_allowed.res.init_flag_a_0)) +(define-fun __node_trans_cc_allowed_0 ((cc_allowed.usr.ccont_a_1 Bool) (cc_allowed.usr.igsw_a_1 Bool) (cc_allowed.usr.bpa_a_1 Bool) (cc_allowed.usr.cccanc_a_1 Bool) (cc_allowed.usr.battok_a_1 Bool) (cc_allowed.usr.gearok_a_1 Bool) (cc_allowed.usr.qfok_a_1 Bool) (cc_allowed.usr.sdok_a_1 Bool) (cc_allowed.usr.accok_a_1 Bool) (cc_allowed.usr.vs_a_1 Int) (cc_allowed.usr.ccall_a_1 Bool) (cc_allowed.res.init_flag_a_1 Bool) (cc_allowed.res.abs_0_a_1 Bool) (cc_allowed.res.abs_1_a_1 Bool) (cc_allowed.res.inst_2_a_1 Bool) (cc_allowed.res.inst_1_a_1 Bool) (cc_allowed.res.inst_0_a_1 Bool) (cc_allowed.usr.ccont_a_0 Bool) (cc_allowed.usr.igsw_a_0 Bool) (cc_allowed.usr.bpa_a_0 Bool) (cc_allowed.usr.cccanc_a_0 Bool) (cc_allowed.usr.battok_a_0 Bool) (cc_allowed.usr.gearok_a_0 Bool) (cc_allowed.usr.qfok_a_0 Bool) (cc_allowed.usr.sdok_a_0 Bool) (cc_allowed.usr.accok_a_0 Bool) (cc_allowed.usr.vs_a_0 Int) (cc_allowed.usr.ccall_a_0 Bool) (cc_allowed.res.init_flag_a_0 Bool) (cc_allowed.res.abs_0_a_0 Bool) (cc_allowed.res.abs_1_a_0 Bool) (cc_allowed.res.inst_2_a_0 Bool) (cc_allowed.res.inst_1_a_0 Bool) (cc_allowed.res.inst_0_a_0 Bool)) Bool + (and (= cc_allowed.usr.ccall_a_1 (and (and (and (and (and (and (and (and (and cc_allowed.usr.ccont_a_1 (not cc_allowed.usr.bpa_a_1)) cc_allowed.usr.battok_a_1) cc_allowed.usr.gearok_a_1) cc_allowed.usr.qfok_a_1) cc_allowed.res.abs_0_a_1) (<= 35 cc_allowed.usr.vs_a_1)) (<= cc_allowed.usr.vs_a_1 200)) cc_allowed.res.abs_1_a_1) (not cc_allowed.usr.cccanc_a_1))) (__node_trans_MoreThanOneSec_0 cc_allowed.usr.sdok_a_1 cc_allowed.res.abs_0_a_1 cc_allowed.res.inst_2_a_1 cc_allowed.usr.sdok_a_0 cc_allowed.res.abs_0_a_0 cc_allowed.res.inst_2_a_0) (__node_trans_MoreThanTwoSec_0 cc_allowed.usr.accok_a_1 cc_allowed.res.abs_1_a_1 cc_allowed.res.inst_1_a_1 cc_allowed.res.inst_0_a_1 cc_allowed.usr.accok_a_0 cc_allowed.res.abs_1_a_0 cc_allowed.res.inst_1_a_0 cc_allowed.res.inst_0_a_0) (not cc_allowed.res.init_flag_a_1))) +(define-fun __node_init_PosEdge_0 ((PosEdge.usr.X_a_0 Bool) (PosEdge.usr.Y_a_0 Bool) (PosEdge.res.init_flag_a_0 Bool)) Bool + (and (= PosEdge.usr.Y_a_0 false) PosEdge.res.init_flag_a_0)) +(define-fun __node_trans_PosEdge_0 ((PosEdge.usr.X_a_1 Bool) (PosEdge.usr.Y_a_1 Bool) (PosEdge.res.init_flag_a_1 Bool) (PosEdge.usr.X_a_0 Bool) (PosEdge.usr.Y_a_0 Bool) (PosEdge.res.init_flag_a_0 Bool)) Bool + (and (= PosEdge.usr.Y_a_1 (and PosEdge.usr.X_a_1 (not PosEdge.usr.X_a_0))) (not PosEdge.res.init_flag_a_1))) +(define-fun __node_init_Edge_0 ((Edge.usr.X_a_0 Bool) (Edge.usr.Y_a_0 Bool) (Edge.res.init_flag_a_0 Bool)) Bool + (and (= Edge.usr.Y_a_0 false) Edge.res.init_flag_a_0)) +(define-fun __node_trans_Edge_0 ((Edge.usr.X_a_1 Bool) (Edge.usr.Y_a_1 Bool) (Edge.res.init_flag_a_1 Bool) (Edge.usr.X_a_0 Bool) (Edge.usr.Y_a_0 Bool) (Edge.res.init_flag_a_0 Bool)) Bool + (and (= Edge.usr.Y_a_1 (and (and (and Edge.usr.X_a_1 (not Edge.usr.X_a_0)) (not Edge.usr.X_a_1)) Edge.usr.X_a_0)) (not Edge.res.init_flag_a_1))) +(define-fun __node_init_prev_no_button_0 ((prev_no_button.usr.ccseti_a_0 Bool) (prev_no_button.usr.ccsetd_a_0 Bool) (prev_no_button.usr.ccr_a_0 Bool) (prev_no_button.usr.pnb_a_0 Bool) (prev_no_button.res.init_flag_a_0 Bool) (prev_no_button.res.abs_0_a_0 Bool)) Bool + (and (= prev_no_button.usr.pnb_a_0 true) (= prev_no_button.res.abs_0_a_0 (and (and (not prev_no_button.usr.ccseti_a_0) (not prev_no_button.usr.ccsetd_a_0)) (not prev_no_button.usr.ccr_a_0))) prev_no_button.res.init_flag_a_0)) +(define-fun __node_trans_prev_no_button_0 ((prev_no_button.usr.ccseti_a_1 Bool) (prev_no_button.usr.ccsetd_a_1 Bool) (prev_no_button.usr.ccr_a_1 Bool) (prev_no_button.usr.pnb_a_1 Bool) (prev_no_button.res.init_flag_a_1 Bool) (prev_no_button.res.abs_0_a_1 Bool) (prev_no_button.usr.ccseti_a_0 Bool) (prev_no_button.usr.ccsetd_a_0 Bool) (prev_no_button.usr.ccr_a_0 Bool) (prev_no_button.usr.pnb_a_0 Bool) (prev_no_button.res.init_flag_a_0 Bool) (prev_no_button.res.abs_0_a_0 Bool)) Bool + (and (= prev_no_button.usr.pnb_a_1 prev_no_button.res.abs_0_a_0) (= prev_no_button.res.abs_0_a_1 (and (and (not prev_no_button.usr.ccseti_a_1) (not prev_no_button.usr.ccsetd_a_1)) (not prev_no_button.usr.ccr_a_1))) (not prev_no_button.res.init_flag_a_1))) +(define-fun __node_init_AtLeastOnceSince_0 ((AtLeastOnceSince.usr.X_a_0 Bool) (AtLeastOnceSince.usr.Y_a_0 Bool) (AtLeastOnceSince.usr.XsinceY_a_0 Bool) (AtLeastOnceSince.res.init_flag_a_0 Bool)) Bool + (and (= AtLeastOnceSince.usr.XsinceY_a_0 (ite AtLeastOnceSince.usr.Y_a_0 AtLeastOnceSince.usr.X_a_0 true)) AtLeastOnceSince.res.init_flag_a_0)) +(define-fun __node_trans_AtLeastOnceSince_0 ((AtLeastOnceSince.usr.X_a_1 Bool) (AtLeastOnceSince.usr.Y_a_1 Bool) (AtLeastOnceSince.usr.XsinceY_a_1 Bool) (AtLeastOnceSince.res.init_flag_a_1 Bool) (AtLeastOnceSince.usr.X_a_0 Bool) (AtLeastOnceSince.usr.Y_a_0 Bool) (AtLeastOnceSince.usr.XsinceY_a_0 Bool) (AtLeastOnceSince.res.init_flag_a_0 Bool)) Bool + (and (= AtLeastOnceSince.usr.XsinceY_a_1 (ite AtLeastOnceSince.usr.Y_a_1 AtLeastOnceSince.usr.X_a_1 (and AtLeastOnceSince.usr.X_a_1 AtLeastOnceSince.usr.XsinceY_a_0))) (not AtLeastOnceSince.res.init_flag_a_1))) +(define-fun __node_init_one_button_0 ((one_button.usr.ccseti_a_0 Bool) (one_button.usr.ccsetd_a_0 Bool) (one_button.usr.ccr_a_0 Bool) (one_button.usr.ob_a_0 Bool) (one_button.res.init_flag_a_0 Bool)) Bool + (and (= one_button.usr.ob_a_0 (or (or (and (and one_button.usr.ccseti_a_0 (not one_button.usr.ccsetd_a_0)) (not one_button.usr.ccr_a_0)) (and (and (not one_button.usr.ccseti_a_0) one_button.usr.ccsetd_a_0) (not one_button.usr.ccr_a_0))) (and (and (not one_button.usr.ccseti_a_0) (not one_button.usr.ccsetd_a_0)) one_button.usr.ccr_a_0))) one_button.res.init_flag_a_0)) +(define-fun __node_trans_one_button_0 ((one_button.usr.ccseti_a_1 Bool) (one_button.usr.ccsetd_a_1 Bool) (one_button.usr.ccr_a_1 Bool) (one_button.usr.ob_a_1 Bool) (one_button.res.init_flag_a_1 Bool) (one_button.usr.ccseti_a_0 Bool) (one_button.usr.ccsetd_a_0 Bool) (one_button.usr.ccr_a_0 Bool) (one_button.usr.ob_a_0 Bool) (one_button.res.init_flag_a_0 Bool)) Bool + (and (= one_button.usr.ob_a_1 (or (or (and (and one_button.usr.ccseti_a_1 (not one_button.usr.ccsetd_a_1)) (not one_button.usr.ccr_a_1)) (and (and (not one_button.usr.ccseti_a_1) one_button.usr.ccsetd_a_1) (not one_button.usr.ccr_a_1))) (and (and (not one_button.usr.ccseti_a_1) (not one_button.usr.ccsetd_a_1)) one_button.usr.ccr_a_1))) (not one_button.res.init_flag_a_1))) +(define-fun __node_init_one_button_accept_0 ((one_button_accept.usr.ccseti_a_0 Bool) (one_button_accept.usr.ccsetd_a_0 Bool) (one_button_accept.usr.ccr_a_0 Bool) (one_button_accept.usr.ccont_a_0 Bool) (one_button_accept.usr.cca_a_0 Bool) (one_button_accept.usr.oba_a_0 Bool) (one_button_accept.res.init_flag_a_0 Bool) (one_button_accept.res.abs_0_a_0 Bool) (one_button_accept.res.abs_1_a_0 Bool) (one_button_accept.res.abs_2_a_0 Bool) (one_button_accept.res.abs_3_a_0 Bool) (one_button_accept.res.inst_4_a_0 Bool) (one_button_accept.res.inst_3_a_0 Bool) (one_button_accept.res.inst_2_a_0 Bool) (one_button_accept.res.inst_1_a_0 Bool) (one_button_accept.res.inst_0_a_0 Bool)) Bool + (let ((X1 one_button_accept.res.abs_0_a_0)) (let ((X2 one_button_accept.res.abs_1_a_0)) (and (= one_button_accept.usr.oba_a_0 (ite (and X1 X2) (ite (not one_button_accept.usr.ccr_a_0) true one_button_accept.res.abs_3_a_0) false)) (__node_init_one_button_0 one_button_accept.usr.ccseti_a_0 one_button_accept.usr.ccsetd_a_0 one_button_accept.usr.ccr_a_0 one_button_accept.res.abs_1_a_0 one_button_accept.res.inst_4_a_0) (__node_init_prev_no_button_0 one_button_accept.usr.ccseti_a_0 one_button_accept.usr.ccsetd_a_0 one_button_accept.usr.ccr_a_0 one_button_accept.res.abs_0_a_0 one_button_accept.res.inst_3_a_0 one_button_accept.res.inst_2_a_0) (__node_init_AtLeastOnceSince_0 one_button_accept.usr.cca_a_0 one_button_accept.res.abs_2_a_0 one_button_accept.res.abs_3_a_0 one_button_accept.res.inst_1_a_0) (__node_init_PosEdge_0 one_button_accept.usr.ccont_a_0 one_button_accept.res.abs_2_a_0 one_button_accept.res.inst_0_a_0) one_button_accept.res.init_flag_a_0)))) +(define-fun __node_trans_one_button_accept_0 ((one_button_accept.usr.ccseti_a_1 Bool) (one_button_accept.usr.ccsetd_a_1 Bool) (one_button_accept.usr.ccr_a_1 Bool) (one_button_accept.usr.ccont_a_1 Bool) (one_button_accept.usr.cca_a_1 Bool) (one_button_accept.usr.oba_a_1 Bool) (one_button_accept.res.init_flag_a_1 Bool) (one_button_accept.res.abs_0_a_1 Bool) (one_button_accept.res.abs_1_a_1 Bool) (one_button_accept.res.abs_2_a_1 Bool) (one_button_accept.res.abs_3_a_1 Bool) (one_button_accept.res.inst_4_a_1 Bool) (one_button_accept.res.inst_3_a_1 Bool) (one_button_accept.res.inst_2_a_1 Bool) (one_button_accept.res.inst_1_a_1 Bool) (one_button_accept.res.inst_0_a_1 Bool) (one_button_accept.usr.ccseti_a_0 Bool) (one_button_accept.usr.ccsetd_a_0 Bool) (one_button_accept.usr.ccr_a_0 Bool) (one_button_accept.usr.ccont_a_0 Bool) (one_button_accept.usr.cca_a_0 Bool) (one_button_accept.usr.oba_a_0 Bool) (one_button_accept.res.init_flag_a_0 Bool) (one_button_accept.res.abs_0_a_0 Bool) (one_button_accept.res.abs_1_a_0 Bool) (one_button_accept.res.abs_2_a_0 Bool) (one_button_accept.res.abs_3_a_0 Bool) (one_button_accept.res.inst_4_a_0 Bool) (one_button_accept.res.inst_3_a_0 Bool) (one_button_accept.res.inst_2_a_0 Bool) (one_button_accept.res.inst_1_a_0 Bool) (one_button_accept.res.inst_0_a_0 Bool)) Bool + (let ((X1 one_button_accept.res.abs_0_a_1)) (let ((X2 one_button_accept.res.abs_1_a_1)) (and (= one_button_accept.usr.oba_a_1 (ite (and X1 X2) (ite (not one_button_accept.usr.ccr_a_1) true one_button_accept.res.abs_3_a_1) false)) (__node_trans_one_button_0 one_button_accept.usr.ccseti_a_1 one_button_accept.usr.ccsetd_a_1 one_button_accept.usr.ccr_a_1 one_button_accept.res.abs_1_a_1 one_button_accept.res.inst_4_a_1 one_button_accept.usr.ccseti_a_0 one_button_accept.usr.ccsetd_a_0 one_button_accept.usr.ccr_a_0 one_button_accept.res.abs_1_a_0 one_button_accept.res.inst_4_a_0) (__node_trans_prev_no_button_0 one_button_accept.usr.ccseti_a_1 one_button_accept.usr.ccsetd_a_1 one_button_accept.usr.ccr_a_1 one_button_accept.res.abs_0_a_1 one_button_accept.res.inst_3_a_1 one_button_accept.res.inst_2_a_1 one_button_accept.usr.ccseti_a_0 one_button_accept.usr.ccsetd_a_0 one_button_accept.usr.ccr_a_0 one_button_accept.res.abs_0_a_0 one_button_accept.res.inst_3_a_0 one_button_accept.res.inst_2_a_0) (__node_trans_AtLeastOnceSince_0 one_button_accept.usr.cca_a_1 one_button_accept.res.abs_2_a_1 one_button_accept.res.abs_3_a_1 one_button_accept.res.inst_1_a_1 one_button_accept.usr.cca_a_0 one_button_accept.res.abs_2_a_0 one_button_accept.res.abs_3_a_0 one_button_accept.res.inst_1_a_0) (__node_trans_PosEdge_0 one_button_accept.usr.ccont_a_1 one_button_accept.res.abs_2_a_1 one_button_accept.res.inst_0_a_1 one_button_accept.usr.ccont_a_0 one_button_accept.res.abs_2_a_0 one_button_accept.res.inst_0_a_0) (not one_button_accept.res.init_flag_a_1))))) +(define-fun __node_init_main_0 ((main.usr.igsw_a_0 Bool) (main.usr.ccd_a_0 Bool) (main.usr.cconoff_a_0 Bool) (main.usr.bpa_a_0 Bool) (main.usr.cccanc_a_0 Bool) (main.usr.battok_a_0 Bool) (main.usr.gearok_a_0 Bool) (main.usr.qfok_a_0 Bool) (main.usr.sdok_a_0 Bool) (main.usr.accok_a_0 Bool) (main.usr.ccseti_a_0 Bool) (main.usr.ccsetd_a_0 Bool) (main.usr.ccr_a_0 Bool) (main.usr.vs_a_0 Int) (main.res.nondet_0 Bool) (main.usr.ccont_a_0 Bool) (main.usr.cca_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Bool) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Bool) (main.res.inst_17_a_0 Bool) (main.res.inst_16_a_0 Bool) (main.res.inst_15_a_0 Bool) (main.res.inst_14_a_0 Bool) (main.res.inst_13_a_0 Bool) (main.res.inst_12_a_0 Bool) (main.res.inst_11_a_0 Bool) (main.res.inst_10_a_0 Bool) (main.res.inst_9_a_0 Bool) (main.res.inst_8_a_0 Bool) (main.res.inst_7_a_0 Bool) (main.res.inst_6_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Bool) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Bool) (main.res.inst_0_a_0 Bool)) Bool + (and (= main.usr.ccont_a_0 false) (= main.res.abs_2_a_0 (not main.usr.ccont_a_0)) (= main.usr.cca_a_0 false) (let ((X1 main.res.abs_3_a_0)) (and (= main.res.abs_4_a_0 (let ((X2 main.res.nondet_0)) X2)) (__node_init_Edge_0 main.usr.igsw_a_0 main.res.abs_0_a_0 main.res.inst_17_a_0) (__node_init_PosEdge_0 main.usr.cconoff_a_0 main.res.abs_1_a_0 main.res.inst_16_a_0) (__node_init_cc_allowed_0 main.usr.ccont_a_0 main.usr.igsw_a_0 main.usr.bpa_a_0 main.usr.cccanc_a_0 main.usr.battok_a_0 main.usr.gearok_a_0 main.usr.qfok_a_0 main.usr.sdok_a_0 main.usr.accok_a_0 main.usr.vs_a_0 main.res.abs_3_a_0 main.res.inst_15_a_0 main.res.inst_14_a_0 main.res.inst_13_a_0 main.res.inst_12_a_0 main.res.inst_11_a_0 main.res.inst_10_a_0) (__node_init_one_button_accept_0 main.usr.ccseti_a_0 main.usr.ccsetd_a_0 main.usr.ccr_a_0 main.usr.ccont_a_0 main.res.abs_4_a_0 main.res.abs_5_a_0 main.res.inst_9_a_0 main.res.inst_8_a_0 main.res.inst_7_a_0 main.res.inst_6_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0 main.res.inst_3_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0 main.res.inst_0_a_0) main.res.init_flag_a_0)))) +(define-fun __node_trans_main_0 ((main.usr.igsw_a_1 Bool) (main.usr.ccd_a_1 Bool) (main.usr.cconoff_a_1 Bool) (main.usr.bpa_a_1 Bool) (main.usr.cccanc_a_1 Bool) (main.usr.battok_a_1 Bool) (main.usr.gearok_a_1 Bool) (main.usr.qfok_a_1 Bool) (main.usr.sdok_a_1 Bool) (main.usr.accok_a_1 Bool) (main.usr.ccseti_a_1 Bool) (main.usr.ccsetd_a_1 Bool) (main.usr.ccr_a_1 Bool) (main.usr.vs_a_1 Int) (main.res.nondet_0 Bool) (main.usr.ccont_a_1 Bool) (main.usr.cca_a_1 Bool) (main.res.init_flag_a_1 Bool) (main.res.abs_0_a_1 Bool) (main.res.abs_1_a_1 Bool) (main.res.abs_2_a_1 Bool) (main.res.abs_3_a_1 Bool) (main.res.abs_4_a_1 Bool) (main.res.abs_5_a_1 Bool) (main.res.inst_17_a_1 Bool) (main.res.inst_16_a_1 Bool) (main.res.inst_15_a_1 Bool) (main.res.inst_14_a_1 Bool) (main.res.inst_13_a_1 Bool) (main.res.inst_12_a_1 Bool) (main.res.inst_11_a_1 Bool) (main.res.inst_10_a_1 Bool) (main.res.inst_9_a_1 Bool) (main.res.inst_8_a_1 Bool) (main.res.inst_7_a_1 Bool) (main.res.inst_6_a_1 Bool) (main.res.inst_5_a_1 Bool) (main.res.inst_4_a_1 Bool) (main.res.inst_3_a_1 Bool) (main.res.inst_2_a_1 Bool) (main.res.inst_1_a_1 Bool) (main.res.inst_0_a_1 Bool) (main.usr.igsw_a_0 Bool) (main.usr.ccd_a_0 Bool) (main.usr.cconoff_a_0 Bool) (main.usr.bpa_a_0 Bool) (main.usr.cccanc_a_0 Bool) (main.usr.battok_a_0 Bool) (main.usr.gearok_a_0 Bool) (main.usr.qfok_a_0 Bool) (main.usr.sdok_a_0 Bool) (main.usr.accok_a_0 Bool) (main.usr.ccseti_a_0 Bool) (main.usr.ccsetd_a_0 Bool) (main.usr.ccr_a_0 Bool) (main.usr.vs_a_0 Int) (main.usr.ccont_a_0 Bool) (main.usr.cca_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Bool) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Bool) (main.res.inst_17_a_0 Bool) (main.res.inst_16_a_0 Bool) (main.res.inst_15_a_0 Bool) (main.res.inst_14_a_0 Bool) (main.res.inst_13_a_0 Bool) (main.res.inst_12_a_0 Bool) (main.res.inst_11_a_0 Bool) (main.res.inst_10_a_0 Bool) (main.res.inst_9_a_0 Bool) (main.res.inst_8_a_0 Bool) (main.res.inst_7_a_0 Bool) (main.res.inst_6_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Bool) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Bool) (main.res.inst_0_a_0 Bool)) Bool + (and (= main.usr.ccont_a_1 (ite (or (or main.res.abs_0_a_1 main.usr.ccd_a_1) (and main.usr.ccont_a_0 main.res.abs_1_a_1)) false (ite (and main.res.abs_2_a_0 main.res.abs_1_a_1) true main.usr.ccont_a_0))) (= main.res.abs_2_a_1 (not main.usr.ccont_a_1)) (= main.res.abs_4_a_1 main.usr.cca_a_0) (let ((X1 main.res.abs_3_a_1)) (and (= main.usr.cca_a_1 (ite (and main.res.abs_5_a_1 X1) true (ite (not X1) false main.usr.cca_a_0))) (__node_trans_Edge_0 main.usr.igsw_a_1 main.res.abs_0_a_1 main.res.inst_17_a_1 main.usr.igsw_a_0 main.res.abs_0_a_0 main.res.inst_17_a_0) (__node_trans_PosEdge_0 main.usr.cconoff_a_1 main.res.abs_1_a_1 main.res.inst_16_a_1 main.usr.cconoff_a_0 main.res.abs_1_a_0 main.res.inst_16_a_0) (__node_trans_cc_allowed_0 main.usr.ccont_a_1 main.usr.igsw_a_1 main.usr.bpa_a_1 main.usr.cccanc_a_1 main.usr.battok_a_1 main.usr.gearok_a_1 main.usr.qfok_a_1 main.usr.sdok_a_1 main.usr.accok_a_1 main.usr.vs_a_1 main.res.abs_3_a_1 main.res.inst_15_a_1 main.res.inst_14_a_1 main.res.inst_13_a_1 main.res.inst_12_a_1 main.res.inst_11_a_1 main.res.inst_10_a_1 main.usr.ccont_a_0 main.usr.igsw_a_0 main.usr.bpa_a_0 main.usr.cccanc_a_0 main.usr.battok_a_0 main.usr.gearok_a_0 main.usr.qfok_a_0 main.usr.sdok_a_0 main.usr.accok_a_0 main.usr.vs_a_0 main.res.abs_3_a_0 main.res.inst_15_a_0 main.res.inst_14_a_0 main.res.inst_13_a_0 main.res.inst_12_a_0 main.res.inst_11_a_0 main.res.inst_10_a_0) (__node_trans_one_button_accept_0 main.usr.ccseti_a_1 main.usr.ccsetd_a_1 main.usr.ccr_a_1 main.usr.ccont_a_1 main.res.abs_4_a_1 main.res.abs_5_a_1 main.res.inst_9_a_1 main.res.inst_8_a_1 main.res.inst_7_a_1 main.res.inst_6_a_1 main.res.inst_5_a_1 main.res.inst_4_a_1 main.res.inst_3_a_1 main.res.inst_2_a_1 main.res.inst_1_a_1 main.res.inst_0_a_1 main.usr.ccseti_a_0 main.usr.ccsetd_a_0 main.usr.ccr_a_0 main.usr.ccont_a_0 main.res.abs_4_a_0 main.res.abs_5_a_0 main.res.inst_9_a_0 main.res.inst_8_a_0 main.res.inst_7_a_0 main.res.inst_6_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0 main.res.inst_3_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0 main.res.inst_0_a_0) (not main.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.igsw_a_0 Bool) (top.usr.ccd_a_0 Bool) (top.usr.cconoff_a_0 Bool) (top.usr.bpa_a_0 Bool) (top.usr.cccanc_a_0 Bool) (top.usr.battok_a_0 Bool) (top.usr.gearok_a_0 Bool) (top.usr.qfok_a_0 Bool) (top.usr.sdok_a_0 Bool) (top.usr.accok_a_0 Bool) (top.usr.ccseti_a_0 Bool) (top.usr.ccsetd_a_0 Bool) (top.usr.ccr_a_0 Bool) (top.usr.vs_a_0 Int) (top.res.nondet_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.ccont_a_0 Bool) (top.impl.usr.cca_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.inst_37_a_0 Bool) (top.res.inst_36_a_0 Bool) (top.res.inst_35_a_0 Bool) (top.res.inst_34_a_0 Bool) (top.res.inst_33_a_0 Bool) (top.res.inst_32_a_0 Bool) (top.res.inst_31_a_0 Bool) (top.res.inst_30_a_0 Bool) (top.res.inst_29_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.ccont_a_0 top.res.abs_8_a_0) (= top.impl.usr.cca_a_0 top.res.abs_9_a_0) (let ((X1 (ite top.res.abs_6_a_0 (not top.impl.usr.cca_a_0) true))) (let ((X2 (ite top.res.abs_5_a_0 (and (and (not top.res.abs_6_a_0) (not top.usr.ccd_a_0)) top.res.abs_7_a_0) true))) (let ((X3 (ite (not top.res.abs_4_a_0) (not top.impl.usr.cca_a_0) true))) (let ((X4 (ite top.res.abs_0_a_0 (or (or top.res.abs_1_a_0 top.res.abs_2_a_0) top.res.abs_3_a_0) true))) (and (= top.usr.OK_a_0 (and (and (and X4 X3) X2) X1)) (__node_init_PosEdge_0 top.impl.usr.cca_a_0 top.res.abs_0_a_0 top.res.inst_37_a_0) (__node_init_main_0 top.usr.igsw_a_0 top.usr.ccd_a_0 top.usr.cconoff_a_0 top.usr.bpa_a_0 top.usr.cccanc_a_0 top.usr.battok_a_0 top.usr.gearok_a_0 top.usr.qfok_a_0 top.usr.sdok_a_0 top.usr.accok_a_0 top.usr.ccseti_a_0 top.usr.ccsetd_a_0 top.usr.ccr_a_0 top.usr.vs_a_0 top.res.nondet_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_36_a_0 top.res.inst_35_a_0 top.res.inst_34_a_0 top.res.inst_33_a_0 top.res.inst_32_a_0 top.res.inst_31_a_0 top.res.inst_30_a_0 top.res.inst_29_a_0 top.res.inst_28_a_0 top.res.inst_27_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0) (__node_init_PosEdge_0 top.usr.ccseti_a_0 top.res.abs_1_a_0 top.res.inst_11_a_0) (__node_init_PosEdge_0 top.usr.ccsetd_a_0 top.res.abs_2_a_0 top.res.inst_10_a_0) (__node_init_PosEdge_0 top.usr.ccr_a_0 top.res.abs_3_a_0 top.res.inst_9_a_0) (__node_init_cc_allowed_0 top.impl.usr.ccont_a_0 top.usr.igsw_a_0 top.usr.bpa_a_0 top.usr.cccanc_a_0 top.usr.battok_a_0 top.usr.gearok_a_0 top.usr.qfok_a_0 top.usr.sdok_a_0 top.usr.accok_a_0 top.usr.vs_a_0 top.res.abs_4_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_PosEdge_0 top.impl.usr.ccont_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_init_Edge_0 top.usr.igsw_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_PosEdge_0 top.usr.cconoff_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))) +(define-fun __node_trans_top_0 ((top.usr.igsw_a_1 Bool) (top.usr.ccd_a_1 Bool) (top.usr.cconoff_a_1 Bool) (top.usr.bpa_a_1 Bool) (top.usr.cccanc_a_1 Bool) (top.usr.battok_a_1 Bool) (top.usr.gearok_a_1 Bool) (top.usr.qfok_a_1 Bool) (top.usr.sdok_a_1 Bool) (top.usr.accok_a_1 Bool) (top.usr.ccseti_a_1 Bool) (top.usr.ccsetd_a_1 Bool) (top.usr.ccr_a_1 Bool) (top.usr.vs_a_1 Int) (top.res.nondet_0 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.ccont_a_1 Bool) (top.impl.usr.cca_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.inst_37_a_1 Bool) (top.res.inst_36_a_1 Bool) (top.res.inst_35_a_1 Bool) (top.res.inst_34_a_1 Bool) (top.res.inst_33_a_1 Bool) (top.res.inst_32_a_1 Bool) (top.res.inst_31_a_1 Bool) (top.res.inst_30_a_1 Bool) (top.res.inst_29_a_1 Bool) (top.res.inst_28_a_1 Bool) (top.res.inst_27_a_1 Bool) (top.res.inst_26_a_1 Bool) (top.res.inst_25_a_1 Bool) (top.res.inst_24_a_1 Bool) (top.res.inst_23_a_1 Bool) (top.res.inst_22_a_1 Bool) (top.res.inst_21_a_1 Bool) (top.res.inst_20_a_1 Bool) (top.res.inst_19_a_1 Bool) (top.res.inst_18_a_1 Bool) (top.res.inst_17_a_1 Bool) (top.res.inst_16_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Bool) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Bool) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Bool) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.igsw_a_0 Bool) (top.usr.ccd_a_0 Bool) (top.usr.cconoff_a_0 Bool) (top.usr.bpa_a_0 Bool) (top.usr.cccanc_a_0 Bool) (top.usr.battok_a_0 Bool) (top.usr.gearok_a_0 Bool) (top.usr.qfok_a_0 Bool) (top.usr.sdok_a_0 Bool) (top.usr.accok_a_0 Bool) (top.usr.ccseti_a_0 Bool) (top.usr.ccsetd_a_0 Bool) (top.usr.ccr_a_0 Bool) (top.usr.vs_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.ccont_a_0 Bool) (top.impl.usr.cca_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.inst_37_a_0 Bool) (top.res.inst_36_a_0 Bool) (top.res.inst_35_a_0 Bool) (top.res.inst_34_a_0 Bool) (top.res.inst_33_a_0 Bool) (top.res.inst_32_a_0 Bool) (top.res.inst_31_a_0 Bool) (top.res.inst_30_a_0 Bool) (top.res.inst_29_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.ccont_a_1 top.res.abs_8_a_1) (= top.impl.usr.cca_a_1 top.res.abs_9_a_1) (let ((X1 (ite top.res.abs_6_a_1 (not top.impl.usr.cca_a_1) true))) (let ((X2 (ite top.res.abs_5_a_1 (and (and (not top.res.abs_6_a_1) (not top.usr.ccd_a_1)) top.res.abs_7_a_1) true))) (let ((X3 (ite (not top.res.abs_4_a_1) (not top.impl.usr.cca_a_1) true))) (let ((X4 (ite top.res.abs_0_a_1 (or (or top.res.abs_1_a_1 top.res.abs_2_a_1) top.res.abs_3_a_1) true))) (and (= top.usr.OK_a_1 (and (and (and X4 X3) X2) X1)) (__node_trans_PosEdge_0 top.impl.usr.cca_a_1 top.res.abs_0_a_1 top.res.inst_37_a_1 top.impl.usr.cca_a_0 top.res.abs_0_a_0 top.res.inst_37_a_0) (__node_trans_main_0 top.usr.igsw_a_1 top.usr.ccd_a_1 top.usr.cconoff_a_1 top.usr.bpa_a_1 top.usr.cccanc_a_1 top.usr.battok_a_1 top.usr.gearok_a_1 top.usr.qfok_a_1 top.usr.sdok_a_1 top.usr.accok_a_1 top.usr.ccseti_a_1 top.usr.ccsetd_a_1 top.usr.ccr_a_1 top.usr.vs_a_1 top.res.nondet_0 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_36_a_1 top.res.inst_35_a_1 top.res.inst_34_a_1 top.res.inst_33_a_1 top.res.inst_32_a_1 top.res.inst_31_a_1 top.res.inst_30_a_1 top.res.inst_29_a_1 top.res.inst_28_a_1 top.res.inst_27_a_1 top.res.inst_26_a_1 top.res.inst_25_a_1 top.res.inst_24_a_1 top.res.inst_23_a_1 top.res.inst_22_a_1 top.res.inst_21_a_1 top.res.inst_20_a_1 top.res.inst_19_a_1 top.res.inst_18_a_1 top.res.inst_17_a_1 top.res.inst_16_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.usr.igsw_a_0 top.usr.ccd_a_0 top.usr.cconoff_a_0 top.usr.bpa_a_0 top.usr.cccanc_a_0 top.usr.battok_a_0 top.usr.gearok_a_0 top.usr.qfok_a_0 top.usr.sdok_a_0 top.usr.accok_a_0 top.usr.ccseti_a_0 top.usr.ccsetd_a_0 top.usr.ccr_a_0 top.usr.vs_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_36_a_0 top.res.inst_35_a_0 top.res.inst_34_a_0 top.res.inst_33_a_0 top.res.inst_32_a_0 top.res.inst_31_a_0 top.res.inst_30_a_0 top.res.inst_29_a_0 top.res.inst_28_a_0 top.res.inst_27_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0) (__node_trans_PosEdge_0 top.usr.ccseti_a_1 top.res.abs_1_a_1 top.res.inst_11_a_1 top.usr.ccseti_a_0 top.res.abs_1_a_0 top.res.inst_11_a_0) (__node_trans_PosEdge_0 top.usr.ccsetd_a_1 top.res.abs_2_a_1 top.res.inst_10_a_1 top.usr.ccsetd_a_0 top.res.abs_2_a_0 top.res.inst_10_a_0) (__node_trans_PosEdge_0 top.usr.ccr_a_1 top.res.abs_3_a_1 top.res.inst_9_a_1 top.usr.ccr_a_0 top.res.abs_3_a_0 top.res.inst_9_a_0) (__node_trans_cc_allowed_0 top.impl.usr.ccont_a_1 top.usr.igsw_a_1 top.usr.bpa_a_1 top.usr.cccanc_a_1 top.usr.battok_a_1 top.usr.gearok_a_1 top.usr.qfok_a_1 top.usr.sdok_a_1 top.usr.accok_a_1 top.usr.vs_a_1 top.res.abs_4_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.impl.usr.ccont_a_0 top.usr.igsw_a_0 top.usr.bpa_a_0 top.usr.cccanc_a_0 top.usr.battok_a_0 top.usr.gearok_a_0 top.usr.qfok_a_0 top.usr.sdok_a_0 top.usr.accok_a_0 top.usr.vs_a_0 top.res.abs_4_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_PosEdge_0 top.impl.usr.ccont_a_1 top.res.abs_5_a_1 top.res.inst_2_a_1 top.impl.usr.ccont_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_trans_Edge_0 top.usr.igsw_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.usr.igsw_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_PosEdge_0 top.usr.cconoff_a_1 top.res.abs_7_a_1 top.res.inst_0_a_1 top.usr.cconoff_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.igsw Bool) (top.usr.ccd Bool) (top.usr.cconoff Bool) (top.usr.bpa Bool) (top.usr.cccanc Bool) (top.usr.battok Bool) (top.usr.gearok Bool) (top.usr.qfok Bool) (top.usr.sdok Bool) (top.usr.accok Bool) (top.usr.ccseti Bool) (top.usr.ccsetd Bool) (top.usr.ccr Bool) (top.usr.vs Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.ccont Bool) (top.impl.usr.cca Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_0 Bool) +(define-fun init ((top.usr.igsw Bool) (top.usr.ccd Bool) (top.usr.cconoff Bool) (top.usr.bpa Bool) (top.usr.cccanc Bool) (top.usr.battok Bool) (top.usr.gearok Bool) (top.usr.qfok Bool) (top.usr.sdok Bool) (top.usr.accok Bool) (top.usr.ccseti Bool) (top.usr.ccsetd Bool) (top.usr.ccr Bool) (top.usr.vs Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.ccont Bool) (top.impl.usr.cca Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.ccont top.res.abs_8) (= top.impl.usr.cca top.res.abs_9) (let ((X1 (ite top.res.abs_6 (not top.impl.usr.cca) true))) (let ((X2 (ite top.res.abs_5 (and (and (not top.res.abs_6) (not top.usr.ccd)) top.res.abs_7) true))) (let ((X3 (ite (not top.res.abs_4) (not top.impl.usr.cca) true))) (let ((X4 (ite top.res.abs_0 (or (or top.res.abs_1 top.res.abs_2) top.res.abs_3) true))) (and (= top.usr.OK (and (and (and X4 X3) X2) X1)) (__node_init_PosEdge_0 top.impl.usr.cca top.res.abs_0 top.res.inst_37) (__node_init_main_0 top.usr.igsw top.usr.ccd top.usr.cconoff top.usr.bpa top.usr.cccanc top.usr.battok top.usr.gearok top.usr.qfok top.usr.sdok top.usr.accok top.usr.ccseti top.usr.ccsetd top.usr.ccr top.usr.vs top.res.nondet_0 top.res.abs_8 top.res.abs_9 top.res.inst_36 top.res.inst_35 top.res.inst_34 top.res.inst_33 top.res.inst_32 top.res.inst_31 top.res.inst_30 top.res.inst_29 top.res.inst_28 top.res.inst_27 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12) (__node_init_PosEdge_0 top.usr.ccseti top.res.abs_1 top.res.inst_11) (__node_init_PosEdge_0 top.usr.ccsetd top.res.abs_2 top.res.inst_10) (__node_init_PosEdge_0 top.usr.ccr top.res.abs_3 top.res.inst_9) (__node_init_cc_allowed_0 top.impl.usr.ccont top.usr.igsw top.usr.bpa top.usr.cccanc top.usr.battok top.usr.gearok top.usr.qfok top.usr.sdok top.usr.accok top.usr.vs top.res.abs_4 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3) (__node_init_PosEdge_0 top.impl.usr.ccont top.res.abs_5 top.res.inst_2) (__node_init_Edge_0 top.usr.igsw top.res.abs_6 top.res.inst_1) (__node_init_PosEdge_0 top.usr.cconoff top.res.abs_7 top.res.inst_0) top.res.init_flag))))))) +(define-fun trans ((top.usr.igsw Bool) (top.usr.ccd Bool) (top.usr.cconoff Bool) (top.usr.bpa Bool) (top.usr.cccanc Bool) (top.usr.battok Bool) (top.usr.gearok Bool) (top.usr.qfok Bool) (top.usr.sdok Bool) (top.usr.accok Bool) (top.usr.ccseti Bool) (top.usr.ccsetd Bool) (top.usr.ccr Bool) (top.usr.vs Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.ccont Bool) (top.impl.usr.cca Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.igsw! Bool) (top.usr.ccd! Bool) (top.usr.cconoff! Bool) (top.usr.bpa! Bool) (top.usr.cccanc! Bool) (top.usr.battok! Bool) (top.usr.gearok! Bool) (top.usr.qfok! Bool) (top.usr.sdok! Bool) (top.usr.accok! Bool) (top.usr.ccseti! Bool) (top.usr.ccsetd! Bool) (top.usr.ccr! Bool) (top.usr.vs! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.ccont! Bool) (top.impl.usr.cca! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.inst_37! Bool) (top.res.inst_36! Bool) (top.res.inst_35! Bool) (top.res.inst_34! Bool) (top.res.inst_33! Bool) (top.res.inst_32! Bool) (top.res.inst_31! Bool) (top.res.inst_30! Bool) (top.res.inst_29! Bool) (top.res.inst_28! Bool) (top.res.inst_27! Bool) (top.res.inst_26! Bool) (top.res.inst_25! Bool) (top.res.inst_24! Bool) (top.res.inst_23! Bool) (top.res.inst_22! Bool) (top.res.inst_21! Bool) (top.res.inst_20! Bool) (top.res.inst_19! Bool) (top.res.inst_18! Bool) (top.res.inst_17! Bool) (top.res.inst_16! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Bool) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Bool) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Bool) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.impl.usr.ccont! top.res.abs_8!) (= top.impl.usr.cca! top.res.abs_9!) (let ((X1 (ite top.res.abs_6! (not top.impl.usr.cca!) true))) (let ((X2 (ite top.res.abs_5! (and (and (not top.res.abs_6!) (not top.usr.ccd!)) top.res.abs_7!) true))) (let ((X3 (ite (not top.res.abs_4!) (not top.impl.usr.cca!) true))) (let ((X4 (ite top.res.abs_0! (or (or top.res.abs_1! top.res.abs_2!) top.res.abs_3!) true))) (and (= top.usr.OK! (and (and (and X4 X3) X2) X1)) (__node_trans_PosEdge_0 top.impl.usr.cca! top.res.abs_0! top.res.inst_37! top.impl.usr.cca top.res.abs_0 top.res.inst_37) (__node_trans_main_0 top.usr.igsw! top.usr.ccd! top.usr.cconoff! top.usr.bpa! top.usr.cccanc! top.usr.battok! top.usr.gearok! top.usr.qfok! top.usr.sdok! top.usr.accok! top.usr.ccseti! top.usr.ccsetd! top.usr.ccr! top.usr.vs! top.res.nondet_0 top.res.abs_8! top.res.abs_9! top.res.inst_36! top.res.inst_35! top.res.inst_34! top.res.inst_33! top.res.inst_32! top.res.inst_31! top.res.inst_30! top.res.inst_29! top.res.inst_28! top.res.inst_27! top.res.inst_26! top.res.inst_25! top.res.inst_24! top.res.inst_23! top.res.inst_22! top.res.inst_21! top.res.inst_20! top.res.inst_19! top.res.inst_18! top.res.inst_17! top.res.inst_16! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.usr.igsw top.usr.ccd top.usr.cconoff top.usr.bpa top.usr.cccanc top.usr.battok top.usr.gearok top.usr.qfok top.usr.sdok top.usr.accok top.usr.ccseti top.usr.ccsetd top.usr.ccr top.usr.vs top.res.abs_8 top.res.abs_9 top.res.inst_36 top.res.inst_35 top.res.inst_34 top.res.inst_33 top.res.inst_32 top.res.inst_31 top.res.inst_30 top.res.inst_29 top.res.inst_28 top.res.inst_27 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12) (__node_trans_PosEdge_0 top.usr.ccseti! top.res.abs_1! top.res.inst_11! top.usr.ccseti top.res.abs_1 top.res.inst_11) (__node_trans_PosEdge_0 top.usr.ccsetd! top.res.abs_2! top.res.inst_10! top.usr.ccsetd top.res.abs_2 top.res.inst_10) (__node_trans_PosEdge_0 top.usr.ccr! top.res.abs_3! top.res.inst_9! top.usr.ccr top.res.abs_3 top.res.inst_9) (__node_trans_cc_allowed_0 top.impl.usr.ccont! top.usr.igsw! top.usr.bpa! top.usr.cccanc! top.usr.battok! top.usr.gearok! top.usr.qfok! top.usr.sdok! top.usr.accok! top.usr.vs! top.res.abs_4! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.impl.usr.ccont top.usr.igsw top.usr.bpa top.usr.cccanc top.usr.battok top.usr.gearok top.usr.qfok top.usr.sdok top.usr.accok top.usr.vs top.res.abs_4 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3) (__node_trans_PosEdge_0 top.impl.usr.ccont! top.res.abs_5! top.res.inst_2! top.impl.usr.ccont top.res.abs_5 top.res.inst_2) (__node_trans_Edge_0 top.usr.igsw! top.res.abs_6! top.res.inst_1! top.usr.igsw top.res.abs_6 top.res.inst_1) (__node_trans_PosEdge_0 top.usr.cconoff! top.res.abs_7! top.res.inst_0! top.usr.cconoff top.res.abs_7 top.res.inst_0) (not top.res.init_flag!))))))) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.igsw Bool) (top.usr.ccd Bool) (top.usr.cconoff Bool) (top.usr.bpa Bool) (top.usr.cccanc Bool) (top.usr.battok Bool) (top.usr.gearok Bool) (top.usr.qfok Bool) (top.usr.sdok Bool) (top.usr.accok Bool) (top.usr.ccseti Bool) (top.usr.ccsetd Bool) (top.usr.ccr Bool) (top.usr.vs Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.ccont Bool) (top.impl.usr.cca Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/fast_2_e8_976.sl b/benchmarks/LIA/Lustre/fast_2_e8_976.sl index 82ead25..812263f 100644 --- a/benchmarks/LIA/Lustre/fast_2_e8_976.sl +++ b/benchmarks/LIA/Lustre/fast_2_e8_976.sl @@ -1,2069 +1,60 @@ (set-logic LIA) -(define-fun - __node_init_MoreThanTwoSec_0 ( - (MoreThanTwoSec.usr.X_a_0 Bool) - (MoreThanTwoSec.usr.Y_a_0 Bool) - (MoreThanTwoSec.res.init_flag_a_0 Bool) - (MoreThanTwoSec.res.abs_0_a_0 Bool) - ) Bool - - (and - (= MoreThanTwoSec.usr.Y_a_0 false) - (= MoreThanTwoSec.res.abs_0_a_0 false) - MoreThanTwoSec.res.init_flag_a_0) -) - -(define-fun - __node_trans_MoreThanTwoSec_0 ( - (MoreThanTwoSec.usr.X_a_1 Bool) - (MoreThanTwoSec.usr.Y_a_1 Bool) - (MoreThanTwoSec.res.init_flag_a_1 Bool) - (MoreThanTwoSec.res.abs_0_a_1 Bool) - (MoreThanTwoSec.usr.X_a_0 Bool) - (MoreThanTwoSec.usr.Y_a_0 Bool) - (MoreThanTwoSec.res.init_flag_a_0 Bool) - (MoreThanTwoSec.res.abs_0_a_0 Bool) - ) Bool - - (and - (= - MoreThanTwoSec.usr.Y_a_1 - (and MoreThanTwoSec.res.abs_0_a_0 MoreThanTwoSec.usr.X_a_1)) - (= - MoreThanTwoSec.res.abs_0_a_1 - (and MoreThanTwoSec.usr.X_a_0 MoreThanTwoSec.usr.X_a_1)) - (not MoreThanTwoSec.res.init_flag_a_1)) -) - -(define-fun - __node_init_MoreThanOneSec_0 ( - (MoreThanOneSec.usr.X_a_0 Bool) - (MoreThanOneSec.usr.Y_a_0 Bool) - (MoreThanOneSec.res.init_flag_a_0 Bool) - ) Bool - - (and (= MoreThanOneSec.usr.Y_a_0 false) MoreThanOneSec.res.init_flag_a_0) -) - -(define-fun - __node_trans_MoreThanOneSec_0 ( - (MoreThanOneSec.usr.X_a_1 Bool) - (MoreThanOneSec.usr.Y_a_1 Bool) - (MoreThanOneSec.res.init_flag_a_1 Bool) - (MoreThanOneSec.usr.X_a_0 Bool) - (MoreThanOneSec.usr.Y_a_0 Bool) - (MoreThanOneSec.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - MoreThanOneSec.usr.Y_a_1 - (and MoreThanOneSec.usr.X_a_0 MoreThanOneSec.usr.X_a_1)) - (not MoreThanOneSec.res.init_flag_a_1)) -) - -(define-fun - __node_init_cc_allowed_0 ( - (cc_allowed.usr.ccont_a_0 Bool) - (cc_allowed.usr.igsw_a_0 Bool) - (cc_allowed.usr.bpa_a_0 Bool) - (cc_allowed.usr.cccanc_a_0 Bool) - (cc_allowed.usr.battok_a_0 Bool) - (cc_allowed.usr.gearok_a_0 Bool) - (cc_allowed.usr.qfok_a_0 Bool) - (cc_allowed.usr.sdok_a_0 Bool) - (cc_allowed.usr.accok_a_0 Bool) - (cc_allowed.usr.vs_a_0 Int) - (cc_allowed.usr.ccall_a_0 Bool) - (cc_allowed.res.init_flag_a_0 Bool) - (cc_allowed.res.abs_0_a_0 Bool) - (cc_allowed.res.abs_1_a_0 Bool) - (cc_allowed.res.inst_2_a_0 Bool) - (cc_allowed.res.inst_1_a_0 Bool) - (cc_allowed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - cc_allowed.usr.ccall_a_0 - (and - (and - (and - (and - (and - (and - (and - (and - (and cc_allowed.usr.ccont_a_0 (not cc_allowed.usr.bpa_a_0)) - cc_allowed.usr.battok_a_0) - cc_allowed.usr.gearok_a_0) - cc_allowed.usr.qfok_a_0) - cc_allowed.res.abs_0_a_0) - (<= 35 cc_allowed.usr.vs_a_0)) - (<= cc_allowed.usr.vs_a_0 200)) - cc_allowed.res.abs_1_a_0) - (not cc_allowed.usr.cccanc_a_0))) - (__node_init_MoreThanOneSec_0 - cc_allowed.usr.sdok_a_0 - cc_allowed.res.abs_0_a_0 - cc_allowed.res.inst_2_a_0) - (__node_init_MoreThanTwoSec_0 - cc_allowed.usr.accok_a_0 - cc_allowed.res.abs_1_a_0 - cc_allowed.res.inst_1_a_0 - cc_allowed.res.inst_0_a_0) - cc_allowed.res.init_flag_a_0) -) - -(define-fun - __node_trans_cc_allowed_0 ( - (cc_allowed.usr.ccont_a_1 Bool) - (cc_allowed.usr.igsw_a_1 Bool) - (cc_allowed.usr.bpa_a_1 Bool) - (cc_allowed.usr.cccanc_a_1 Bool) - (cc_allowed.usr.battok_a_1 Bool) - (cc_allowed.usr.gearok_a_1 Bool) - (cc_allowed.usr.qfok_a_1 Bool) - (cc_allowed.usr.sdok_a_1 Bool) - (cc_allowed.usr.accok_a_1 Bool) - (cc_allowed.usr.vs_a_1 Int) - (cc_allowed.usr.ccall_a_1 Bool) - (cc_allowed.res.init_flag_a_1 Bool) - (cc_allowed.res.abs_0_a_1 Bool) - (cc_allowed.res.abs_1_a_1 Bool) - (cc_allowed.res.inst_2_a_1 Bool) - (cc_allowed.res.inst_1_a_1 Bool) - (cc_allowed.res.inst_0_a_1 Bool) - (cc_allowed.usr.ccont_a_0 Bool) - (cc_allowed.usr.igsw_a_0 Bool) - (cc_allowed.usr.bpa_a_0 Bool) - (cc_allowed.usr.cccanc_a_0 Bool) - (cc_allowed.usr.battok_a_0 Bool) - (cc_allowed.usr.gearok_a_0 Bool) - (cc_allowed.usr.qfok_a_0 Bool) - (cc_allowed.usr.sdok_a_0 Bool) - (cc_allowed.usr.accok_a_0 Bool) - (cc_allowed.usr.vs_a_0 Int) - (cc_allowed.usr.ccall_a_0 Bool) - (cc_allowed.res.init_flag_a_0 Bool) - (cc_allowed.res.abs_0_a_0 Bool) - (cc_allowed.res.abs_1_a_0 Bool) - (cc_allowed.res.inst_2_a_0 Bool) - (cc_allowed.res.inst_1_a_0 Bool) - (cc_allowed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - cc_allowed.usr.ccall_a_1 - (and - (and - (and - (and - (and - (and - (and - (and - (and cc_allowed.usr.ccont_a_1 (not cc_allowed.usr.bpa_a_1)) - cc_allowed.usr.battok_a_1) - cc_allowed.usr.gearok_a_1) - cc_allowed.usr.qfok_a_1) - cc_allowed.res.abs_0_a_1) - (<= 35 cc_allowed.usr.vs_a_1)) - (<= cc_allowed.usr.vs_a_1 200)) - cc_allowed.res.abs_1_a_1) - (not cc_allowed.usr.cccanc_a_1))) - (__node_trans_MoreThanOneSec_0 - cc_allowed.usr.sdok_a_1 - cc_allowed.res.abs_0_a_1 - cc_allowed.res.inst_2_a_1 - cc_allowed.usr.sdok_a_0 - cc_allowed.res.abs_0_a_0 - cc_allowed.res.inst_2_a_0) - (__node_trans_MoreThanTwoSec_0 - cc_allowed.usr.accok_a_1 - cc_allowed.res.abs_1_a_1 - cc_allowed.res.inst_1_a_1 - cc_allowed.res.inst_0_a_1 - cc_allowed.usr.accok_a_0 - cc_allowed.res.abs_1_a_0 - cc_allowed.res.inst_1_a_0 - cc_allowed.res.inst_0_a_0) - (not cc_allowed.res.init_flag_a_1)) -) - -(define-fun - __node_init_PosEdge_0 ( - (PosEdge.usr.X_a_0 Bool) - (PosEdge.usr.Y_a_0 Bool) - (PosEdge.res.init_flag_a_0 Bool) - ) Bool - - (and (= PosEdge.usr.Y_a_0 false) PosEdge.res.init_flag_a_0) -) - -(define-fun - __node_trans_PosEdge_0 ( - (PosEdge.usr.X_a_1 Bool) - (PosEdge.usr.Y_a_1 Bool) - (PosEdge.res.init_flag_a_1 Bool) - (PosEdge.usr.X_a_0 Bool) - (PosEdge.usr.Y_a_0 Bool) - (PosEdge.res.init_flag_a_0 Bool) - ) Bool - - (and - (= PosEdge.usr.Y_a_1 (and PosEdge.usr.X_a_1 (not PosEdge.usr.X_a_0))) - (not PosEdge.res.init_flag_a_1)) -) - -(define-fun - __node_init_Edge_0 ( - (Edge.usr.X_a_0 Bool) - (Edge.usr.Y_a_0 Bool) - (Edge.res.init_flag_a_0 Bool) - ) Bool - - (and (= Edge.usr.Y_a_0 false) Edge.res.init_flag_a_0) -) - -(define-fun - __node_trans_Edge_0 ( - (Edge.usr.X_a_1 Bool) - (Edge.usr.Y_a_1 Bool) - (Edge.res.init_flag_a_1 Bool) - (Edge.usr.X_a_0 Bool) - (Edge.usr.Y_a_0 Bool) - (Edge.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - Edge.usr.Y_a_1 - (and - (and (and Edge.usr.X_a_1 (not Edge.usr.X_a_0)) (not Edge.usr.X_a_1)) - Edge.usr.X_a_0)) - (not Edge.res.init_flag_a_1)) -) - -(define-fun - __node_init_prev_no_button_0 ( - (prev_no_button.usr.ccseti_a_0 Bool) - (prev_no_button.usr.ccsetd_a_0 Bool) - (prev_no_button.usr.ccr_a_0 Bool) - (prev_no_button.usr.pnb_a_0 Bool) - (prev_no_button.res.init_flag_a_0 Bool) - (prev_no_button.res.abs_0_a_0 Bool) - ) Bool - - (and - (= prev_no_button.usr.pnb_a_0 true) - (= - prev_no_button.res.abs_0_a_0 - (and - (and - (not prev_no_button.usr.ccseti_a_0) - (not prev_no_button.usr.ccsetd_a_0)) - (not prev_no_button.usr.ccr_a_0))) - prev_no_button.res.init_flag_a_0) -) - -(define-fun - __node_trans_prev_no_button_0 ( - (prev_no_button.usr.ccseti_a_1 Bool) - (prev_no_button.usr.ccsetd_a_1 Bool) - (prev_no_button.usr.ccr_a_1 Bool) - (prev_no_button.usr.pnb_a_1 Bool) - (prev_no_button.res.init_flag_a_1 Bool) - (prev_no_button.res.abs_0_a_1 Bool) - (prev_no_button.usr.ccseti_a_0 Bool) - (prev_no_button.usr.ccsetd_a_0 Bool) - (prev_no_button.usr.ccr_a_0 Bool) - (prev_no_button.usr.pnb_a_0 Bool) - (prev_no_button.res.init_flag_a_0 Bool) - (prev_no_button.res.abs_0_a_0 Bool) - ) Bool - - (and - (= prev_no_button.usr.pnb_a_1 prev_no_button.res.abs_0_a_0) - (= - prev_no_button.res.abs_0_a_1 - (and - (and - (not prev_no_button.usr.ccseti_a_1) - (not prev_no_button.usr.ccsetd_a_1)) - (not prev_no_button.usr.ccr_a_1))) - (not prev_no_button.res.init_flag_a_1)) -) - -(define-fun - __node_init_AtLeastOnceSince_0 ( - (AtLeastOnceSince.usr.X_a_0 Bool) - (AtLeastOnceSince.usr.Y_a_0 Bool) - (AtLeastOnceSince.usr.XsinceY_a_0 Bool) - (AtLeastOnceSince.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - AtLeastOnceSince.usr.XsinceY_a_0 - (ite AtLeastOnceSince.usr.Y_a_0 AtLeastOnceSince.usr.X_a_0 true)) - AtLeastOnceSince.res.init_flag_a_0) -) - -(define-fun - __node_trans_AtLeastOnceSince_0 ( - (AtLeastOnceSince.usr.X_a_1 Bool) - (AtLeastOnceSince.usr.Y_a_1 Bool) - (AtLeastOnceSince.usr.XsinceY_a_1 Bool) - (AtLeastOnceSince.res.init_flag_a_1 Bool) - (AtLeastOnceSince.usr.X_a_0 Bool) - (AtLeastOnceSince.usr.Y_a_0 Bool) - (AtLeastOnceSince.usr.XsinceY_a_0 Bool) - (AtLeastOnceSince.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - AtLeastOnceSince.usr.XsinceY_a_1 - (ite - AtLeastOnceSince.usr.Y_a_1 - AtLeastOnceSince.usr.X_a_1 - (or AtLeastOnceSince.usr.X_a_1 AtLeastOnceSince.usr.XsinceY_a_0))) - (not AtLeastOnceSince.res.init_flag_a_1)) -) - -(define-fun - __node_init_one_button_0 ( - (one_button.usr.ccseti_a_0 Bool) - (one_button.usr.ccsetd_a_0 Bool) - (one_button.usr.ccr_a_0 Bool) - (one_button.usr.ob_a_0 Bool) - (one_button.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - one_button.usr.ob_a_0 - (or - (or - (and - (and one_button.usr.ccseti_a_0 (not one_button.usr.ccsetd_a_0)) - (not one_button.usr.ccr_a_0)) - (and - (and (not one_button.usr.ccseti_a_0) one_button.usr.ccsetd_a_0) - (not one_button.usr.ccr_a_0))) - (and - (and (not one_button.usr.ccseti_a_0) (not one_button.usr.ccsetd_a_0)) - one_button.usr.ccr_a_0))) - one_button.res.init_flag_a_0) -) - -(define-fun - __node_trans_one_button_0 ( - (one_button.usr.ccseti_a_1 Bool) - (one_button.usr.ccsetd_a_1 Bool) - (one_button.usr.ccr_a_1 Bool) - (one_button.usr.ob_a_1 Bool) - (one_button.res.init_flag_a_1 Bool) - (one_button.usr.ccseti_a_0 Bool) - (one_button.usr.ccsetd_a_0 Bool) - (one_button.usr.ccr_a_0 Bool) - (one_button.usr.ob_a_0 Bool) - (one_button.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - one_button.usr.ob_a_1 - (or - (or - (and - (and one_button.usr.ccseti_a_1 (not one_button.usr.ccsetd_a_1)) - (not one_button.usr.ccr_a_1)) - (and - (and (not one_button.usr.ccseti_a_1) one_button.usr.ccsetd_a_1) - (not one_button.usr.ccr_a_1))) - (and - (and (not one_button.usr.ccseti_a_1) (not one_button.usr.ccsetd_a_1)) - one_button.usr.ccr_a_1))) - (not one_button.res.init_flag_a_1)) -) - -(define-fun - __node_init_one_button_accept_0 ( - (one_button_accept.usr.ccseti_a_0 Bool) - (one_button_accept.usr.ccsetd_a_0 Bool) - (one_button_accept.usr.ccr_a_0 Bool) - (one_button_accept.usr.ccont_a_0 Bool) - (one_button_accept.usr.cca_a_0 Bool) - (one_button_accept.usr.oba_a_0 Bool) - (one_button_accept.res.init_flag_a_0 Bool) - (one_button_accept.res.abs_0_a_0 Bool) - (one_button_accept.res.abs_1_a_0 Bool) - (one_button_accept.res.abs_2_a_0 Bool) - (one_button_accept.res.abs_3_a_0 Bool) - (one_button_accept.res.inst_4_a_0 Bool) - (one_button_accept.res.inst_3_a_0 Bool) - (one_button_accept.res.inst_2_a_0 Bool) - (one_button_accept.res.inst_1_a_0 Bool) - (one_button_accept.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool one_button_accept.res.abs_0_a_0)) - (let - ((X2 Bool one_button_accept.res.abs_1_a_0)) - (and - (= - one_button_accept.usr.oba_a_0 - (ite - (and X1 X2) - (ite - (not one_button_accept.usr.ccr_a_0) - true - one_button_accept.res.abs_3_a_0) - false)) - (__node_init_one_button_0 - one_button_accept.usr.ccseti_a_0 - one_button_accept.usr.ccsetd_a_0 - one_button_accept.usr.ccr_a_0 - one_button_accept.res.abs_1_a_0 - one_button_accept.res.inst_4_a_0) - (__node_init_prev_no_button_0 - one_button_accept.usr.ccseti_a_0 - one_button_accept.usr.ccsetd_a_0 - one_button_accept.usr.ccr_a_0 - one_button_accept.res.abs_0_a_0 - one_button_accept.res.inst_3_a_0 - one_button_accept.res.inst_2_a_0) - (__node_init_AtLeastOnceSince_0 - one_button_accept.usr.cca_a_0 - one_button_accept.res.abs_2_a_0 - one_button_accept.res.abs_3_a_0 - one_button_accept.res.inst_1_a_0) - (__node_init_PosEdge_0 - one_button_accept.usr.ccont_a_0 - one_button_accept.res.abs_2_a_0 - one_button_accept.res.inst_0_a_0) - one_button_accept.res.init_flag_a_0))) -) - -(define-fun - __node_trans_one_button_accept_0 ( - (one_button_accept.usr.ccseti_a_1 Bool) - (one_button_accept.usr.ccsetd_a_1 Bool) - (one_button_accept.usr.ccr_a_1 Bool) - (one_button_accept.usr.ccont_a_1 Bool) - (one_button_accept.usr.cca_a_1 Bool) - (one_button_accept.usr.oba_a_1 Bool) - (one_button_accept.res.init_flag_a_1 Bool) - (one_button_accept.res.abs_0_a_1 Bool) - (one_button_accept.res.abs_1_a_1 Bool) - (one_button_accept.res.abs_2_a_1 Bool) - (one_button_accept.res.abs_3_a_1 Bool) - (one_button_accept.res.inst_4_a_1 Bool) - (one_button_accept.res.inst_3_a_1 Bool) - (one_button_accept.res.inst_2_a_1 Bool) - (one_button_accept.res.inst_1_a_1 Bool) - (one_button_accept.res.inst_0_a_1 Bool) - (one_button_accept.usr.ccseti_a_0 Bool) - (one_button_accept.usr.ccsetd_a_0 Bool) - (one_button_accept.usr.ccr_a_0 Bool) - (one_button_accept.usr.ccont_a_0 Bool) - (one_button_accept.usr.cca_a_0 Bool) - (one_button_accept.usr.oba_a_0 Bool) - (one_button_accept.res.init_flag_a_0 Bool) - (one_button_accept.res.abs_0_a_0 Bool) - (one_button_accept.res.abs_1_a_0 Bool) - (one_button_accept.res.abs_2_a_0 Bool) - (one_button_accept.res.abs_3_a_0 Bool) - (one_button_accept.res.inst_4_a_0 Bool) - (one_button_accept.res.inst_3_a_0 Bool) - (one_button_accept.res.inst_2_a_0 Bool) - (one_button_accept.res.inst_1_a_0 Bool) - (one_button_accept.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool one_button_accept.res.abs_0_a_1)) - (let - ((X2 Bool one_button_accept.res.abs_1_a_1)) - (and - (= - one_button_accept.usr.oba_a_1 - (ite - (and X1 X2) - (ite - (not one_button_accept.usr.ccr_a_1) - true - one_button_accept.res.abs_3_a_1) - false)) - (__node_trans_one_button_0 - one_button_accept.usr.ccseti_a_1 - one_button_accept.usr.ccsetd_a_1 - one_button_accept.usr.ccr_a_1 - one_button_accept.res.abs_1_a_1 - one_button_accept.res.inst_4_a_1 - one_button_accept.usr.ccseti_a_0 - one_button_accept.usr.ccsetd_a_0 - one_button_accept.usr.ccr_a_0 - one_button_accept.res.abs_1_a_0 - one_button_accept.res.inst_4_a_0) - (__node_trans_prev_no_button_0 - one_button_accept.usr.ccseti_a_1 - one_button_accept.usr.ccsetd_a_1 - one_button_accept.usr.ccr_a_1 - one_button_accept.res.abs_0_a_1 - one_button_accept.res.inst_3_a_1 - one_button_accept.res.inst_2_a_1 - one_button_accept.usr.ccseti_a_0 - one_button_accept.usr.ccsetd_a_0 - one_button_accept.usr.ccr_a_0 - one_button_accept.res.abs_0_a_0 - one_button_accept.res.inst_3_a_0 - one_button_accept.res.inst_2_a_0) - (__node_trans_AtLeastOnceSince_0 - one_button_accept.usr.cca_a_1 - one_button_accept.res.abs_2_a_1 - one_button_accept.res.abs_3_a_1 - one_button_accept.res.inst_1_a_1 - one_button_accept.usr.cca_a_0 - one_button_accept.res.abs_2_a_0 - one_button_accept.res.abs_3_a_0 - one_button_accept.res.inst_1_a_0) - (__node_trans_PosEdge_0 - one_button_accept.usr.ccont_a_1 - one_button_accept.res.abs_2_a_1 - one_button_accept.res.inst_0_a_1 - one_button_accept.usr.ccont_a_0 - one_button_accept.res.abs_2_a_0 - one_button_accept.res.inst_0_a_0) - (not one_button_accept.res.init_flag_a_1)))) -) - -(define-fun - __node_init_main_0 ( - (main.usr.igsw_a_0 Bool) - (main.usr.ccd_a_0 Bool) - (main.usr.cconoff_a_0 Bool) - (main.usr.bpa_a_0 Bool) - (main.usr.cccanc_a_0 Bool) - (main.usr.battok_a_0 Bool) - (main.usr.gearok_a_0 Bool) - (main.usr.qfok_a_0 Bool) - (main.usr.sdok_a_0 Bool) - (main.usr.accok_a_0 Bool) - (main.usr.ccseti_a_0 Bool) - (main.usr.ccsetd_a_0 Bool) - (main.usr.ccr_a_0 Bool) - (main.usr.vs_a_0 Int) - (main.res.nondet_0 Bool) - (main.usr.ccont_a_0 Bool) - (main.usr.cca_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Bool) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Bool) - (main.res.inst_17_a_0 Bool) - (main.res.inst_16_a_0 Bool) - (main.res.inst_15_a_0 Bool) - (main.res.inst_14_a_0 Bool) - (main.res.inst_13_a_0 Bool) - (main.res.inst_12_a_0 Bool) - (main.res.inst_11_a_0 Bool) - (main.res.inst_10_a_0 Bool) - (main.res.inst_9_a_0 Bool) - (main.res.inst_8_a_0 Bool) - (main.res.inst_7_a_0 Bool) - (main.res.inst_6_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Bool) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Bool) - (main.res.inst_0_a_0 Bool) - ) Bool - - (and - (= main.usr.ccont_a_0 false) - (= main.res.abs_2_a_0 (not main.usr.ccont_a_0)) - (= main.usr.cca_a_0 false) - (let - ((X1 Bool main.res.abs_3_a_0)) - (and - (= main.res.abs_4_a_0 (let ((X2 Bool main.res.nondet_0)) X2)) - (__node_init_Edge_0 main.usr.igsw_a_0 main.res.abs_0_a_0 main.res.inst_17_a_0) - (__node_init_PosEdge_0 - main.usr.cconoff_a_0 - main.res.abs_1_a_0 - main.res.inst_16_a_0) - (__node_init_cc_allowed_0 - main.usr.ccont_a_0 - main.usr.igsw_a_0 - main.usr.bpa_a_0 - main.usr.cccanc_a_0 - main.usr.battok_a_0 - main.usr.gearok_a_0 - main.usr.qfok_a_0 - main.usr.sdok_a_0 - main.usr.accok_a_0 - main.usr.vs_a_0 - main.res.abs_3_a_0 - main.res.inst_15_a_0 - main.res.inst_14_a_0 - main.res.inst_13_a_0 - main.res.inst_12_a_0 - main.res.inst_11_a_0 - main.res.inst_10_a_0) - (__node_init_one_button_accept_0 - main.usr.ccseti_a_0 - main.usr.ccsetd_a_0 - main.usr.ccr_a_0 - main.usr.ccont_a_0 - main.res.abs_4_a_0 - main.res.abs_5_a_0 - main.res.inst_9_a_0 - main.res.inst_8_a_0 - main.res.inst_7_a_0 - main.res.inst_6_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0 - main.res.inst_3_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0 - main.res.inst_0_a_0) - main.res.init_flag_a_0))) -) - -(define-fun - __node_trans_main_0 ( - (main.usr.igsw_a_1 Bool) - (main.usr.ccd_a_1 Bool) - (main.usr.cconoff_a_1 Bool) - (main.usr.bpa_a_1 Bool) - (main.usr.cccanc_a_1 Bool) - (main.usr.battok_a_1 Bool) - (main.usr.gearok_a_1 Bool) - (main.usr.qfok_a_1 Bool) - (main.usr.sdok_a_1 Bool) - (main.usr.accok_a_1 Bool) - (main.usr.ccseti_a_1 Bool) - (main.usr.ccsetd_a_1 Bool) - (main.usr.ccr_a_1 Bool) - (main.usr.vs_a_1 Int) - (main.res.nondet_0 Bool) - (main.usr.ccont_a_1 Bool) - (main.usr.cca_a_1 Bool) - (main.res.init_flag_a_1 Bool) - (main.res.abs_0_a_1 Bool) - (main.res.abs_1_a_1 Bool) - (main.res.abs_2_a_1 Bool) - (main.res.abs_3_a_1 Bool) - (main.res.abs_4_a_1 Bool) - (main.res.abs_5_a_1 Bool) - (main.res.inst_17_a_1 Bool) - (main.res.inst_16_a_1 Bool) - (main.res.inst_15_a_1 Bool) - (main.res.inst_14_a_1 Bool) - (main.res.inst_13_a_1 Bool) - (main.res.inst_12_a_1 Bool) - (main.res.inst_11_a_1 Bool) - (main.res.inst_10_a_1 Bool) - (main.res.inst_9_a_1 Bool) - (main.res.inst_8_a_1 Bool) - (main.res.inst_7_a_1 Bool) - (main.res.inst_6_a_1 Bool) - (main.res.inst_5_a_1 Bool) - (main.res.inst_4_a_1 Bool) - (main.res.inst_3_a_1 Bool) - (main.res.inst_2_a_1 Bool) - (main.res.inst_1_a_1 Bool) - (main.res.inst_0_a_1 Bool) - (main.usr.igsw_a_0 Bool) - (main.usr.ccd_a_0 Bool) - (main.usr.cconoff_a_0 Bool) - (main.usr.bpa_a_0 Bool) - (main.usr.cccanc_a_0 Bool) - (main.usr.battok_a_0 Bool) - (main.usr.gearok_a_0 Bool) - (main.usr.qfok_a_0 Bool) - (main.usr.sdok_a_0 Bool) - (main.usr.accok_a_0 Bool) - (main.usr.ccseti_a_0 Bool) - (main.usr.ccsetd_a_0 Bool) - (main.usr.ccr_a_0 Bool) - (main.usr.vs_a_0 Int) - (main.usr.ccont_a_0 Bool) - (main.usr.cca_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Bool) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Bool) - (main.res.inst_17_a_0 Bool) - (main.res.inst_16_a_0 Bool) - (main.res.inst_15_a_0 Bool) - (main.res.inst_14_a_0 Bool) - (main.res.inst_13_a_0 Bool) - (main.res.inst_12_a_0 Bool) - (main.res.inst_11_a_0 Bool) - (main.res.inst_10_a_0 Bool) - (main.res.inst_9_a_0 Bool) - (main.res.inst_8_a_0 Bool) - (main.res.inst_7_a_0 Bool) - (main.res.inst_6_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Bool) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Bool) - (main.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - main.usr.ccont_a_1 - (ite - (or - (or main.res.abs_0_a_1 main.usr.ccd_a_1) - (and main.usr.ccont_a_0 main.res.abs_1_a_1)) - false - (ite (and main.res.abs_2_a_0 main.res.abs_1_a_1) true main.usr.ccont_a_0))) - (= main.res.abs_2_a_1 (not main.usr.ccont_a_1)) - (= main.res.abs_4_a_1 main.usr.cca_a_0) - (let - ((X1 Bool main.res.abs_3_a_1)) - (and - (= - main.usr.cca_a_1 - (ite - (and main.res.abs_5_a_1 X1) - true - (ite (not X1) false main.usr.cca_a_0))) - (__node_trans_Edge_0 - main.usr.igsw_a_1 - main.res.abs_0_a_1 - main.res.inst_17_a_1 - main.usr.igsw_a_0 - main.res.abs_0_a_0 - main.res.inst_17_a_0) - (__node_trans_PosEdge_0 - main.usr.cconoff_a_1 - main.res.abs_1_a_1 - main.res.inst_16_a_1 - main.usr.cconoff_a_0 - main.res.abs_1_a_0 - main.res.inst_16_a_0) - (__node_trans_cc_allowed_0 - main.usr.ccont_a_1 - main.usr.igsw_a_1 - main.usr.bpa_a_1 - main.usr.cccanc_a_1 - main.usr.battok_a_1 - main.usr.gearok_a_1 - main.usr.qfok_a_1 - main.usr.sdok_a_1 - main.usr.accok_a_1 - main.usr.vs_a_1 - main.res.abs_3_a_1 - main.res.inst_15_a_1 - main.res.inst_14_a_1 - main.res.inst_13_a_1 - main.res.inst_12_a_1 - main.res.inst_11_a_1 - main.res.inst_10_a_1 - main.usr.ccont_a_0 - main.usr.igsw_a_0 - main.usr.bpa_a_0 - main.usr.cccanc_a_0 - main.usr.battok_a_0 - main.usr.gearok_a_0 - main.usr.qfok_a_0 - main.usr.sdok_a_0 - main.usr.accok_a_0 - main.usr.vs_a_0 - main.res.abs_3_a_0 - main.res.inst_15_a_0 - main.res.inst_14_a_0 - main.res.inst_13_a_0 - main.res.inst_12_a_0 - main.res.inst_11_a_0 - main.res.inst_10_a_0) - (__node_trans_one_button_accept_0 - main.usr.ccseti_a_1 - main.usr.ccsetd_a_1 - main.usr.ccr_a_1 - main.usr.ccont_a_1 - main.res.abs_4_a_1 - main.res.abs_5_a_1 - main.res.inst_9_a_1 - main.res.inst_8_a_1 - main.res.inst_7_a_1 - main.res.inst_6_a_1 - main.res.inst_5_a_1 - main.res.inst_4_a_1 - main.res.inst_3_a_1 - main.res.inst_2_a_1 - main.res.inst_1_a_1 - main.res.inst_0_a_1 - main.usr.ccseti_a_0 - main.usr.ccsetd_a_0 - main.usr.ccr_a_0 - main.usr.ccont_a_0 - main.res.abs_4_a_0 - main.res.abs_5_a_0 - main.res.inst_9_a_0 - main.res.inst_8_a_0 - main.res.inst_7_a_0 - main.res.inst_6_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0 - main.res.inst_3_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0 - main.res.inst_0_a_0) - (not main.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.igsw_a_0 Bool) - (top.usr.ccd_a_0 Bool) - (top.usr.cconoff_a_0 Bool) - (top.usr.bpa_a_0 Bool) - (top.usr.cccanc_a_0 Bool) - (top.usr.battok_a_0 Bool) - (top.usr.gearok_a_0 Bool) - (top.usr.qfok_a_0 Bool) - (top.usr.sdok_a_0 Bool) - (top.usr.accok_a_0 Bool) - (top.usr.ccseti_a_0 Bool) - (top.usr.ccsetd_a_0 Bool) - (top.usr.ccr_a_0 Bool) - (top.usr.vs_a_0 Int) - (top.res.nondet_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.ccont_a_0 Bool) - (top.impl.usr.cca_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.inst_37_a_0 Bool) - (top.res.inst_36_a_0 Bool) - (top.res.inst_35_a_0 Bool) - (top.res.inst_34_a_0 Bool) - (top.res.inst_33_a_0 Bool) - (top.res.inst_32_a_0 Bool) - (top.res.inst_31_a_0 Bool) - (top.res.inst_30_a_0 Bool) - (top.res.inst_29_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Bool) - (top.res.inst_23_a_0 Bool) - (top.res.inst_22_a_0 Bool) - (top.res.inst_21_a_0 Bool) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.ccont_a_0 top.res.abs_8_a_0) - (= top.impl.usr.cca_a_0 top.res.abs_9_a_0) - (let - ((X1 Bool (ite top.res.abs_6_a_0 (not top.impl.usr.cca_a_0) true))) - (let - ((X2 - Bool (ite - top.res.abs_5_a_0 - (and - (and (not top.res.abs_6_a_0) (not top.usr.ccd_a_0)) - top.res.abs_7_a_0) - true))) - (let - ((X3 Bool (ite (not top.res.abs_4_a_0) (not top.impl.usr.cca_a_0) true))) - (let - ((X4 - Bool (ite - top.res.abs_0_a_0 - (or (or top.res.abs_1_a_0 top.res.abs_2_a_0) top.res.abs_3_a_0) - true))) - (and - (= top.usr.OK_a_0 (and (and (and X4 X3) X2) X1)) - (__node_init_PosEdge_0 - top.impl.usr.cca_a_0 - top.res.abs_0_a_0 - top.res.inst_37_a_0) - (__node_init_main_0 - top.usr.igsw_a_0 - top.usr.ccd_a_0 - top.usr.cconoff_a_0 - top.usr.bpa_a_0 - top.usr.cccanc_a_0 - top.usr.battok_a_0 - top.usr.gearok_a_0 - top.usr.qfok_a_0 - top.usr.sdok_a_0 - top.usr.accok_a_0 - top.usr.ccseti_a_0 - top.usr.ccsetd_a_0 - top.usr.ccr_a_0 - top.usr.vs_a_0 - top.res.nondet_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_36_a_0 - top.res.inst_35_a_0 - top.res.inst_34_a_0 - top.res.inst_33_a_0 - top.res.inst_32_a_0 - top.res.inst_31_a_0 - top.res.inst_30_a_0 - top.res.inst_29_a_0 - top.res.inst_28_a_0 - top.res.inst_27_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0) - (__node_init_PosEdge_0 - top.usr.ccseti_a_0 - top.res.abs_1_a_0 - top.res.inst_11_a_0) - (__node_init_PosEdge_0 - top.usr.ccsetd_a_0 - top.res.abs_2_a_0 - top.res.inst_10_a_0) - (__node_init_PosEdge_0 - top.usr.ccr_a_0 - top.res.abs_3_a_0 - top.res.inst_9_a_0) - (__node_init_cc_allowed_0 - top.impl.usr.ccont_a_0 - top.usr.igsw_a_0 - top.usr.bpa_a_0 - top.usr.cccanc_a_0 - top.usr.battok_a_0 - top.usr.gearok_a_0 - top.usr.qfok_a_0 - top.usr.sdok_a_0 - top.usr.accok_a_0 - top.usr.vs_a_0 - top.res.abs_4_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_init_PosEdge_0 - top.impl.usr.ccont_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_init_Edge_0 top.usr.igsw_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) - (__node_init_PosEdge_0 - top.usr.cconoff_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.igsw_a_1 Bool) - (top.usr.ccd_a_1 Bool) - (top.usr.cconoff_a_1 Bool) - (top.usr.bpa_a_1 Bool) - (top.usr.cccanc_a_1 Bool) - (top.usr.battok_a_1 Bool) - (top.usr.gearok_a_1 Bool) - (top.usr.qfok_a_1 Bool) - (top.usr.sdok_a_1 Bool) - (top.usr.accok_a_1 Bool) - (top.usr.ccseti_a_1 Bool) - (top.usr.ccsetd_a_1 Bool) - (top.usr.ccr_a_1 Bool) - (top.usr.vs_a_1 Int) - (top.res.nondet_0 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.ccont_a_1 Bool) - (top.impl.usr.cca_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.inst_37_a_1 Bool) - (top.res.inst_36_a_1 Bool) - (top.res.inst_35_a_1 Bool) - (top.res.inst_34_a_1 Bool) - (top.res.inst_33_a_1 Bool) - (top.res.inst_32_a_1 Bool) - (top.res.inst_31_a_1 Bool) - (top.res.inst_30_a_1 Bool) - (top.res.inst_29_a_1 Bool) - (top.res.inst_28_a_1 Bool) - (top.res.inst_27_a_1 Bool) - (top.res.inst_26_a_1 Bool) - (top.res.inst_25_a_1 Bool) - (top.res.inst_24_a_1 Bool) - (top.res.inst_23_a_1 Bool) - (top.res.inst_22_a_1 Bool) - (top.res.inst_21_a_1 Bool) - (top.res.inst_20_a_1 Bool) - (top.res.inst_19_a_1 Bool) - (top.res.inst_18_a_1 Bool) - (top.res.inst_17_a_1 Bool) - (top.res.inst_16_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Bool) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Bool) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Bool) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.igsw_a_0 Bool) - (top.usr.ccd_a_0 Bool) - (top.usr.cconoff_a_0 Bool) - (top.usr.bpa_a_0 Bool) - (top.usr.cccanc_a_0 Bool) - (top.usr.battok_a_0 Bool) - (top.usr.gearok_a_0 Bool) - (top.usr.qfok_a_0 Bool) - (top.usr.sdok_a_0 Bool) - (top.usr.accok_a_0 Bool) - (top.usr.ccseti_a_0 Bool) - (top.usr.ccsetd_a_0 Bool) - (top.usr.ccr_a_0 Bool) - (top.usr.vs_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.ccont_a_0 Bool) - (top.impl.usr.cca_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.inst_37_a_0 Bool) - (top.res.inst_36_a_0 Bool) - (top.res.inst_35_a_0 Bool) - (top.res.inst_34_a_0 Bool) - (top.res.inst_33_a_0 Bool) - (top.res.inst_32_a_0 Bool) - (top.res.inst_31_a_0 Bool) - (top.res.inst_30_a_0 Bool) - (top.res.inst_29_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Bool) - (top.res.inst_23_a_0 Bool) - (top.res.inst_22_a_0 Bool) - (top.res.inst_21_a_0 Bool) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.ccont_a_1 top.res.abs_8_a_1) - (= top.impl.usr.cca_a_1 top.res.abs_9_a_1) - (let - ((X1 Bool (ite top.res.abs_6_a_1 (not top.impl.usr.cca_a_1) true))) - (let - ((X2 - Bool (ite - top.res.abs_5_a_1 - (and - (and (not top.res.abs_6_a_1) (not top.usr.ccd_a_1)) - top.res.abs_7_a_1) - true))) - (let - ((X3 Bool (ite (not top.res.abs_4_a_1) (not top.impl.usr.cca_a_1) true))) - (let - ((X4 - Bool (ite - top.res.abs_0_a_1 - (or (or top.res.abs_1_a_1 top.res.abs_2_a_1) top.res.abs_3_a_1) - true))) - (and - (= top.usr.OK_a_1 (and (and (and X4 X3) X2) X1)) - (__node_trans_PosEdge_0 - top.impl.usr.cca_a_1 - top.res.abs_0_a_1 - top.res.inst_37_a_1 - top.impl.usr.cca_a_0 - top.res.abs_0_a_0 - top.res.inst_37_a_0) - (__node_trans_main_0 - top.usr.igsw_a_1 - top.usr.ccd_a_1 - top.usr.cconoff_a_1 - top.usr.bpa_a_1 - top.usr.cccanc_a_1 - top.usr.battok_a_1 - top.usr.gearok_a_1 - top.usr.qfok_a_1 - top.usr.sdok_a_1 - top.usr.accok_a_1 - top.usr.ccseti_a_1 - top.usr.ccsetd_a_1 - top.usr.ccr_a_1 - top.usr.vs_a_1 - top.res.nondet_0 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_36_a_1 - top.res.inst_35_a_1 - top.res.inst_34_a_1 - top.res.inst_33_a_1 - top.res.inst_32_a_1 - top.res.inst_31_a_1 - top.res.inst_30_a_1 - top.res.inst_29_a_1 - top.res.inst_28_a_1 - top.res.inst_27_a_1 - top.res.inst_26_a_1 - top.res.inst_25_a_1 - top.res.inst_24_a_1 - top.res.inst_23_a_1 - top.res.inst_22_a_1 - top.res.inst_21_a_1 - top.res.inst_20_a_1 - top.res.inst_19_a_1 - top.res.inst_18_a_1 - top.res.inst_17_a_1 - top.res.inst_16_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.usr.igsw_a_0 - top.usr.ccd_a_0 - top.usr.cconoff_a_0 - top.usr.bpa_a_0 - top.usr.cccanc_a_0 - top.usr.battok_a_0 - top.usr.gearok_a_0 - top.usr.qfok_a_0 - top.usr.sdok_a_0 - top.usr.accok_a_0 - top.usr.ccseti_a_0 - top.usr.ccsetd_a_0 - top.usr.ccr_a_0 - top.usr.vs_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_36_a_0 - top.res.inst_35_a_0 - top.res.inst_34_a_0 - top.res.inst_33_a_0 - top.res.inst_32_a_0 - top.res.inst_31_a_0 - top.res.inst_30_a_0 - top.res.inst_29_a_0 - top.res.inst_28_a_0 - top.res.inst_27_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0) - (__node_trans_PosEdge_0 - top.usr.ccseti_a_1 - top.res.abs_1_a_1 - top.res.inst_11_a_1 - top.usr.ccseti_a_0 - top.res.abs_1_a_0 - top.res.inst_11_a_0) - (__node_trans_PosEdge_0 - top.usr.ccsetd_a_1 - top.res.abs_2_a_1 - top.res.inst_10_a_1 - top.usr.ccsetd_a_0 - top.res.abs_2_a_0 - top.res.inst_10_a_0) - (__node_trans_PosEdge_0 - top.usr.ccr_a_1 - top.res.abs_3_a_1 - top.res.inst_9_a_1 - top.usr.ccr_a_0 - top.res.abs_3_a_0 - top.res.inst_9_a_0) - (__node_trans_cc_allowed_0 - top.impl.usr.ccont_a_1 - top.usr.igsw_a_1 - top.usr.bpa_a_1 - top.usr.cccanc_a_1 - top.usr.battok_a_1 - top.usr.gearok_a_1 - top.usr.qfok_a_1 - top.usr.sdok_a_1 - top.usr.accok_a_1 - top.usr.vs_a_1 - top.res.abs_4_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.impl.usr.ccont_a_0 - top.usr.igsw_a_0 - top.usr.bpa_a_0 - top.usr.cccanc_a_0 - top.usr.battok_a_0 - top.usr.gearok_a_0 - top.usr.qfok_a_0 - top.usr.sdok_a_0 - top.usr.accok_a_0 - top.usr.vs_a_0 - top.res.abs_4_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0) - (__node_trans_PosEdge_0 - top.impl.usr.ccont_a_1 - top.res.abs_5_a_1 - top.res.inst_2_a_1 - top.impl.usr.ccont_a_0 - top.res.abs_5_a_0 - top.res.inst_2_a_0) - (__node_trans_Edge_0 - top.usr.igsw_a_1 - top.res.abs_6_a_1 - top.res.inst_1_a_1 - top.usr.igsw_a_0 - top.res.abs_6_a_0 - top.res.inst_1_a_0) - (__node_trans_PosEdge_0 - top.usr.cconoff_a_1 - top.res.abs_7_a_1 - top.res.inst_0_a_1 - top.usr.cconoff_a_0 - top.res.abs_7_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.igsw Bool) - (top.usr.ccd Bool) - (top.usr.cconoff Bool) - (top.usr.bpa Bool) - (top.usr.cccanc Bool) - (top.usr.battok Bool) - (top.usr.gearok Bool) - (top.usr.qfok Bool) - (top.usr.sdok Bool) - (top.usr.accok Bool) - (top.usr.ccseti Bool) - (top.usr.ccsetd Bool) - (top.usr.ccr Bool) - (top.usr.vs Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.ccont Bool) - (top.impl.usr.cca Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_0 () Bool) - -(declare-primed-var top.usr.igsw Bool) -(declare-primed-var top.usr.ccd Bool) -(declare-primed-var top.usr.cconoff Bool) -(declare-primed-var top.usr.bpa Bool) -(declare-primed-var top.usr.cccanc Bool) -(declare-primed-var top.usr.battok Bool) -(declare-primed-var top.usr.gearok Bool) -(declare-primed-var top.usr.qfok Bool) -(declare-primed-var top.usr.sdok Bool) -(declare-primed-var top.usr.accok Bool) -(declare-primed-var top.usr.ccseti Bool) -(declare-primed-var top.usr.ccsetd Bool) -(declare-primed-var top.usr.ccr Bool) -(declare-primed-var top.usr.vs Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.ccont Bool) -(declare-primed-var top.impl.usr.cca Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.inst_37 Bool) -(declare-primed-var top.res.inst_36 Bool) -(declare-primed-var top.res.inst_35 Bool) -(declare-primed-var top.res.inst_34 Bool) -(declare-primed-var top.res.inst_33 Bool) -(declare-primed-var top.res.inst_32 Bool) -(declare-primed-var top.res.inst_31 Bool) -(declare-primed-var top.res.inst_30 Bool) -(declare-primed-var top.res.inst_29 Bool) -(declare-primed-var top.res.inst_28 Bool) -(declare-primed-var top.res.inst_27 Bool) -(declare-primed-var top.res.inst_26 Bool) -(declare-primed-var top.res.inst_25 Bool) -(declare-primed-var top.res.inst_24 Bool) -(declare-primed-var top.res.inst_23 Bool) -(declare-primed-var top.res.inst_22 Bool) -(declare-primed-var top.res.inst_21 Bool) -(declare-primed-var top.res.inst_20 Bool) -(declare-primed-var top.res.inst_19 Bool) -(declare-primed-var top.res.inst_18 Bool) -(declare-primed-var top.res.inst_17 Bool) -(declare-primed-var top.res.inst_16 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Bool) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Bool) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Bool) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.igsw Bool) - (top.usr.ccd Bool) - (top.usr.cconoff Bool) - (top.usr.bpa Bool) - (top.usr.cccanc Bool) - (top.usr.battok Bool) - (top.usr.gearok Bool) - (top.usr.qfok Bool) - (top.usr.sdok Bool) - (top.usr.accok Bool) - (top.usr.ccseti Bool) - (top.usr.ccsetd Bool) - (top.usr.ccr Bool) - (top.usr.vs Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.ccont Bool) - (top.impl.usr.cca Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.impl.usr.ccont top.res.abs_8) - (= top.impl.usr.cca top.res.abs_9) - (let - ((X1 Bool (ite top.res.abs_6 (not top.impl.usr.cca) true))) - (let - ((X2 - Bool (ite - top.res.abs_5 - (and (and (not top.res.abs_6) (not top.usr.ccd)) top.res.abs_7) - true))) - (let - ((X3 Bool (ite (not top.res.abs_4) (not top.impl.usr.cca) true))) - (let - ((X4 - Bool (ite - top.res.abs_0 - (or (or top.res.abs_1 top.res.abs_2) top.res.abs_3) - true))) - (and - (= top.usr.OK (and (and (and X4 X3) X2) X1)) - (__node_init_PosEdge_0 - top.impl.usr.cca - top.res.abs_0 - top.res.inst_37) - (__node_init_main_0 - top.usr.igsw - top.usr.ccd - top.usr.cconoff - top.usr.bpa - top.usr.cccanc - top.usr.battok - top.usr.gearok - top.usr.qfok - top.usr.sdok - top.usr.accok - top.usr.ccseti - top.usr.ccsetd - top.usr.ccr - top.usr.vs - top.res.nondet_0 - top.res.abs_8 - top.res.abs_9 - top.res.inst_36 - top.res.inst_35 - top.res.inst_34 - top.res.inst_33 - top.res.inst_32 - top.res.inst_31 - top.res.inst_30 - top.res.inst_29 - top.res.inst_28 - top.res.inst_27 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12) - (__node_init_PosEdge_0 top.usr.ccseti top.res.abs_1 top.res.inst_11) - (__node_init_PosEdge_0 top.usr.ccsetd top.res.abs_2 top.res.inst_10) - (__node_init_PosEdge_0 top.usr.ccr top.res.abs_3 top.res.inst_9) - (__node_init_cc_allowed_0 - top.impl.usr.ccont - top.usr.igsw - top.usr.bpa - top.usr.cccanc - top.usr.battok - top.usr.gearok - top.usr.qfok - top.usr.sdok - top.usr.accok - top.usr.vs - top.res.abs_4 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3) - (__node_init_PosEdge_0 - top.impl.usr.ccont - top.res.abs_5 - top.res.inst_2) - (__node_init_Edge_0 top.usr.igsw top.res.abs_6 top.res.inst_1) - (__node_init_PosEdge_0 top.usr.cconoff top.res.abs_7 top.res.inst_0) - top.res.init_flag)))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.igsw Bool) - (top.usr.ccd Bool) - (top.usr.cconoff Bool) - (top.usr.bpa Bool) - (top.usr.cccanc Bool) - (top.usr.battok Bool) - (top.usr.gearok Bool) - (top.usr.qfok Bool) - (top.usr.sdok Bool) - (top.usr.accok Bool) - (top.usr.ccseti Bool) - (top.usr.ccsetd Bool) - (top.usr.ccr Bool) - (top.usr.vs Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.ccont Bool) - (top.impl.usr.cca Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.igsw! Bool) - (top.usr.ccd! Bool) - (top.usr.cconoff! Bool) - (top.usr.bpa! Bool) - (top.usr.cccanc! Bool) - (top.usr.battok! Bool) - (top.usr.gearok! Bool) - (top.usr.qfok! Bool) - (top.usr.sdok! Bool) - (top.usr.accok! Bool) - (top.usr.ccseti! Bool) - (top.usr.ccsetd! Bool) - (top.usr.ccr! Bool) - (top.usr.vs! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.ccont! Bool) - (top.impl.usr.cca! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.inst_37! Bool) - (top.res.inst_36! Bool) - (top.res.inst_35! Bool) - (top.res.inst_34! Bool) - (top.res.inst_33! Bool) - (top.res.inst_32! Bool) - (top.res.inst_31! Bool) - (top.res.inst_30! Bool) - (top.res.inst_29! Bool) - (top.res.inst_28! Bool) - (top.res.inst_27! Bool) - (top.res.inst_26! Bool) - (top.res.inst_25! Bool) - (top.res.inst_24! Bool) - (top.res.inst_23! Bool) - (top.res.inst_22! Bool) - (top.res.inst_21! Bool) - (top.res.inst_20! Bool) - (top.res.inst_19! Bool) - (top.res.inst_18! Bool) - (top.res.inst_17! Bool) - (top.res.inst_16! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Bool) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Bool) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Bool) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.impl.usr.ccont! top.res.abs_8!) - (= top.impl.usr.cca! top.res.abs_9!) - (let - ((X1 Bool (ite top.res.abs_6! (not top.impl.usr.cca!) true))) - (let - ((X2 - Bool (ite - top.res.abs_5! - (and - (and (not top.res.abs_6!) (not top.usr.ccd!)) - top.res.abs_7!) - true))) - (let - ((X3 Bool (ite (not top.res.abs_4!) (not top.impl.usr.cca!) true))) - (let - ((X4 - Bool (ite - top.res.abs_0! - (or (or top.res.abs_1! top.res.abs_2!) top.res.abs_3!) - true))) - (and - (= top.usr.OK! (and (and (and X4 X3) X2) X1)) - (__node_trans_PosEdge_0 - top.impl.usr.cca! - top.res.abs_0! - top.res.inst_37! - top.impl.usr.cca - top.res.abs_0 - top.res.inst_37) - (__node_trans_main_0 - top.usr.igsw! - top.usr.ccd! - top.usr.cconoff! - top.usr.bpa! - top.usr.cccanc! - top.usr.battok! - top.usr.gearok! - top.usr.qfok! - top.usr.sdok! - top.usr.accok! - top.usr.ccseti! - top.usr.ccsetd! - top.usr.ccr! - top.usr.vs! - top.res.nondet_0 - top.res.abs_8! - top.res.abs_9! - top.res.inst_36! - top.res.inst_35! - top.res.inst_34! - top.res.inst_33! - top.res.inst_32! - top.res.inst_31! - top.res.inst_30! - top.res.inst_29! - top.res.inst_28! - top.res.inst_27! - top.res.inst_26! - top.res.inst_25! - top.res.inst_24! - top.res.inst_23! - top.res.inst_22! - top.res.inst_21! - top.res.inst_20! - top.res.inst_19! - top.res.inst_18! - top.res.inst_17! - top.res.inst_16! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.usr.igsw - top.usr.ccd - top.usr.cconoff - top.usr.bpa - top.usr.cccanc - top.usr.battok - top.usr.gearok - top.usr.qfok - top.usr.sdok - top.usr.accok - top.usr.ccseti - top.usr.ccsetd - top.usr.ccr - top.usr.vs - top.res.abs_8 - top.res.abs_9 - top.res.inst_36 - top.res.inst_35 - top.res.inst_34 - top.res.inst_33 - top.res.inst_32 - top.res.inst_31 - top.res.inst_30 - top.res.inst_29 - top.res.inst_28 - top.res.inst_27 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12) - (__node_trans_PosEdge_0 - top.usr.ccseti! - top.res.abs_1! - top.res.inst_11! - top.usr.ccseti - top.res.abs_1 - top.res.inst_11) - (__node_trans_PosEdge_0 - top.usr.ccsetd! - top.res.abs_2! - top.res.inst_10! - top.usr.ccsetd - top.res.abs_2 - top.res.inst_10) - (__node_trans_PosEdge_0 - top.usr.ccr! - top.res.abs_3! - top.res.inst_9! - top.usr.ccr - top.res.abs_3 - top.res.inst_9) - (__node_trans_cc_allowed_0 - top.impl.usr.ccont! - top.usr.igsw! - top.usr.bpa! - top.usr.cccanc! - top.usr.battok! - top.usr.gearok! - top.usr.qfok! - top.usr.sdok! - top.usr.accok! - top.usr.vs! - top.res.abs_4! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.impl.usr.ccont - top.usr.igsw - top.usr.bpa - top.usr.cccanc - top.usr.battok - top.usr.gearok - top.usr.qfok - top.usr.sdok - top.usr.accok - top.usr.vs - top.res.abs_4 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3) - (__node_trans_PosEdge_0 - top.impl.usr.ccont! - top.res.abs_5! - top.res.inst_2! - top.impl.usr.ccont - top.res.abs_5 - top.res.inst_2) - (__node_trans_Edge_0 - top.usr.igsw! - top.res.abs_6! - top.res.inst_1! - top.usr.igsw - top.res.abs_6 - top.res.inst_1) - (__node_trans_PosEdge_0 - top.usr.cconoff! - top.res.abs_7! - top.res.inst_0! - top.usr.cconoff - top.res.abs_7 - top.res.inst_0) - (not top.res.init_flag!))))))) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.igsw Bool) - (top.usr.ccd Bool) - (top.usr.cconoff Bool) - (top.usr.bpa Bool) - (top.usr.cccanc Bool) - (top.usr.battok Bool) - (top.usr.gearok Bool) - (top.usr.qfok Bool) - (top.usr.sdok Bool) - (top.usr.accok Bool) - (top.usr.ccseti Bool) - (top.usr.ccsetd Bool) - (top.usr.ccr Bool) - (top.usr.vs Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.ccont Bool) - (top.impl.usr.cca Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_MoreThanTwoSec_0 ((MoreThanTwoSec.usr.X_a_0 Bool) (MoreThanTwoSec.usr.Y_a_0 Bool) (MoreThanTwoSec.res.init_flag_a_0 Bool) (MoreThanTwoSec.res.abs_0_a_0 Bool)) Bool + (and (= MoreThanTwoSec.usr.Y_a_0 false) (= MoreThanTwoSec.res.abs_0_a_0 false) MoreThanTwoSec.res.init_flag_a_0)) +(define-fun __node_trans_MoreThanTwoSec_0 ((MoreThanTwoSec.usr.X_a_1 Bool) (MoreThanTwoSec.usr.Y_a_1 Bool) (MoreThanTwoSec.res.init_flag_a_1 Bool) (MoreThanTwoSec.res.abs_0_a_1 Bool) (MoreThanTwoSec.usr.X_a_0 Bool) (MoreThanTwoSec.usr.Y_a_0 Bool) (MoreThanTwoSec.res.init_flag_a_0 Bool) (MoreThanTwoSec.res.abs_0_a_0 Bool)) Bool + (and (= MoreThanTwoSec.usr.Y_a_1 (and MoreThanTwoSec.res.abs_0_a_0 MoreThanTwoSec.usr.X_a_1)) (= MoreThanTwoSec.res.abs_0_a_1 (and MoreThanTwoSec.usr.X_a_0 MoreThanTwoSec.usr.X_a_1)) (not MoreThanTwoSec.res.init_flag_a_1))) +(define-fun __node_init_MoreThanOneSec_0 ((MoreThanOneSec.usr.X_a_0 Bool) (MoreThanOneSec.usr.Y_a_0 Bool) (MoreThanOneSec.res.init_flag_a_0 Bool)) Bool + (and (= MoreThanOneSec.usr.Y_a_0 false) MoreThanOneSec.res.init_flag_a_0)) +(define-fun __node_trans_MoreThanOneSec_0 ((MoreThanOneSec.usr.X_a_1 Bool) (MoreThanOneSec.usr.Y_a_1 Bool) (MoreThanOneSec.res.init_flag_a_1 Bool) (MoreThanOneSec.usr.X_a_0 Bool) (MoreThanOneSec.usr.Y_a_0 Bool) (MoreThanOneSec.res.init_flag_a_0 Bool)) Bool + (and (= MoreThanOneSec.usr.Y_a_1 (and MoreThanOneSec.usr.X_a_0 MoreThanOneSec.usr.X_a_1)) (not MoreThanOneSec.res.init_flag_a_1))) +(define-fun __node_init_cc_allowed_0 ((cc_allowed.usr.ccont_a_0 Bool) (cc_allowed.usr.igsw_a_0 Bool) (cc_allowed.usr.bpa_a_0 Bool) (cc_allowed.usr.cccanc_a_0 Bool) (cc_allowed.usr.battok_a_0 Bool) (cc_allowed.usr.gearok_a_0 Bool) (cc_allowed.usr.qfok_a_0 Bool) (cc_allowed.usr.sdok_a_0 Bool) (cc_allowed.usr.accok_a_0 Bool) (cc_allowed.usr.vs_a_0 Int) (cc_allowed.usr.ccall_a_0 Bool) (cc_allowed.res.init_flag_a_0 Bool) (cc_allowed.res.abs_0_a_0 Bool) (cc_allowed.res.abs_1_a_0 Bool) (cc_allowed.res.inst_2_a_0 Bool) (cc_allowed.res.inst_1_a_0 Bool) (cc_allowed.res.inst_0_a_0 Bool)) Bool + (and (= cc_allowed.usr.ccall_a_0 (and (and (and (and (and (and (and (and (and cc_allowed.usr.ccont_a_0 (not cc_allowed.usr.bpa_a_0)) cc_allowed.usr.battok_a_0) cc_allowed.usr.gearok_a_0) cc_allowed.usr.qfok_a_0) cc_allowed.res.abs_0_a_0) (<= 35 cc_allowed.usr.vs_a_0)) (<= cc_allowed.usr.vs_a_0 200)) cc_allowed.res.abs_1_a_0) (not cc_allowed.usr.cccanc_a_0))) (__node_init_MoreThanOneSec_0 cc_allowed.usr.sdok_a_0 cc_allowed.res.abs_0_a_0 cc_allowed.res.inst_2_a_0) (__node_init_MoreThanTwoSec_0 cc_allowed.usr.accok_a_0 cc_allowed.res.abs_1_a_0 cc_allowed.res.inst_1_a_0 cc_allowed.res.inst_0_a_0) cc_allowed.res.init_flag_a_0)) +(define-fun __node_trans_cc_allowed_0 ((cc_allowed.usr.ccont_a_1 Bool) (cc_allowed.usr.igsw_a_1 Bool) (cc_allowed.usr.bpa_a_1 Bool) (cc_allowed.usr.cccanc_a_1 Bool) (cc_allowed.usr.battok_a_1 Bool) (cc_allowed.usr.gearok_a_1 Bool) (cc_allowed.usr.qfok_a_1 Bool) (cc_allowed.usr.sdok_a_1 Bool) (cc_allowed.usr.accok_a_1 Bool) (cc_allowed.usr.vs_a_1 Int) (cc_allowed.usr.ccall_a_1 Bool) (cc_allowed.res.init_flag_a_1 Bool) (cc_allowed.res.abs_0_a_1 Bool) (cc_allowed.res.abs_1_a_1 Bool) (cc_allowed.res.inst_2_a_1 Bool) (cc_allowed.res.inst_1_a_1 Bool) (cc_allowed.res.inst_0_a_1 Bool) (cc_allowed.usr.ccont_a_0 Bool) (cc_allowed.usr.igsw_a_0 Bool) (cc_allowed.usr.bpa_a_0 Bool) (cc_allowed.usr.cccanc_a_0 Bool) (cc_allowed.usr.battok_a_0 Bool) (cc_allowed.usr.gearok_a_0 Bool) (cc_allowed.usr.qfok_a_0 Bool) (cc_allowed.usr.sdok_a_0 Bool) (cc_allowed.usr.accok_a_0 Bool) (cc_allowed.usr.vs_a_0 Int) (cc_allowed.usr.ccall_a_0 Bool) (cc_allowed.res.init_flag_a_0 Bool) (cc_allowed.res.abs_0_a_0 Bool) (cc_allowed.res.abs_1_a_0 Bool) (cc_allowed.res.inst_2_a_0 Bool) (cc_allowed.res.inst_1_a_0 Bool) (cc_allowed.res.inst_0_a_0 Bool)) Bool + (and (= cc_allowed.usr.ccall_a_1 (and (and (and (and (and (and (and (and (and cc_allowed.usr.ccont_a_1 (not cc_allowed.usr.bpa_a_1)) cc_allowed.usr.battok_a_1) cc_allowed.usr.gearok_a_1) cc_allowed.usr.qfok_a_1) cc_allowed.res.abs_0_a_1) (<= 35 cc_allowed.usr.vs_a_1)) (<= cc_allowed.usr.vs_a_1 200)) cc_allowed.res.abs_1_a_1) (not cc_allowed.usr.cccanc_a_1))) (__node_trans_MoreThanOneSec_0 cc_allowed.usr.sdok_a_1 cc_allowed.res.abs_0_a_1 cc_allowed.res.inst_2_a_1 cc_allowed.usr.sdok_a_0 cc_allowed.res.abs_0_a_0 cc_allowed.res.inst_2_a_0) (__node_trans_MoreThanTwoSec_0 cc_allowed.usr.accok_a_1 cc_allowed.res.abs_1_a_1 cc_allowed.res.inst_1_a_1 cc_allowed.res.inst_0_a_1 cc_allowed.usr.accok_a_0 cc_allowed.res.abs_1_a_0 cc_allowed.res.inst_1_a_0 cc_allowed.res.inst_0_a_0) (not cc_allowed.res.init_flag_a_1))) +(define-fun __node_init_PosEdge_0 ((PosEdge.usr.X_a_0 Bool) (PosEdge.usr.Y_a_0 Bool) (PosEdge.res.init_flag_a_0 Bool)) Bool + (and (= PosEdge.usr.Y_a_0 false) PosEdge.res.init_flag_a_0)) +(define-fun __node_trans_PosEdge_0 ((PosEdge.usr.X_a_1 Bool) (PosEdge.usr.Y_a_1 Bool) (PosEdge.res.init_flag_a_1 Bool) (PosEdge.usr.X_a_0 Bool) (PosEdge.usr.Y_a_0 Bool) (PosEdge.res.init_flag_a_0 Bool)) Bool + (and (= PosEdge.usr.Y_a_1 (and PosEdge.usr.X_a_1 (not PosEdge.usr.X_a_0))) (not PosEdge.res.init_flag_a_1))) +(define-fun __node_init_Edge_0 ((Edge.usr.X_a_0 Bool) (Edge.usr.Y_a_0 Bool) (Edge.res.init_flag_a_0 Bool)) Bool + (and (= Edge.usr.Y_a_0 false) Edge.res.init_flag_a_0)) +(define-fun __node_trans_Edge_0 ((Edge.usr.X_a_1 Bool) (Edge.usr.Y_a_1 Bool) (Edge.res.init_flag_a_1 Bool) (Edge.usr.X_a_0 Bool) (Edge.usr.Y_a_0 Bool) (Edge.res.init_flag_a_0 Bool)) Bool + (and (= Edge.usr.Y_a_1 (and (and (and Edge.usr.X_a_1 (not Edge.usr.X_a_0)) (not Edge.usr.X_a_1)) Edge.usr.X_a_0)) (not Edge.res.init_flag_a_1))) +(define-fun __node_init_prev_no_button_0 ((prev_no_button.usr.ccseti_a_0 Bool) (prev_no_button.usr.ccsetd_a_0 Bool) (prev_no_button.usr.ccr_a_0 Bool) (prev_no_button.usr.pnb_a_0 Bool) (prev_no_button.res.init_flag_a_0 Bool) (prev_no_button.res.abs_0_a_0 Bool)) Bool + (and (= prev_no_button.usr.pnb_a_0 true) (= prev_no_button.res.abs_0_a_0 (and (and (not prev_no_button.usr.ccseti_a_0) (not prev_no_button.usr.ccsetd_a_0)) (not prev_no_button.usr.ccr_a_0))) prev_no_button.res.init_flag_a_0)) +(define-fun __node_trans_prev_no_button_0 ((prev_no_button.usr.ccseti_a_1 Bool) (prev_no_button.usr.ccsetd_a_1 Bool) (prev_no_button.usr.ccr_a_1 Bool) (prev_no_button.usr.pnb_a_1 Bool) (prev_no_button.res.init_flag_a_1 Bool) (prev_no_button.res.abs_0_a_1 Bool) (prev_no_button.usr.ccseti_a_0 Bool) (prev_no_button.usr.ccsetd_a_0 Bool) (prev_no_button.usr.ccr_a_0 Bool) (prev_no_button.usr.pnb_a_0 Bool) (prev_no_button.res.init_flag_a_0 Bool) (prev_no_button.res.abs_0_a_0 Bool)) Bool + (and (= prev_no_button.usr.pnb_a_1 prev_no_button.res.abs_0_a_0) (= prev_no_button.res.abs_0_a_1 (and (and (not prev_no_button.usr.ccseti_a_1) (not prev_no_button.usr.ccsetd_a_1)) (not prev_no_button.usr.ccr_a_1))) (not prev_no_button.res.init_flag_a_1))) +(define-fun __node_init_AtLeastOnceSince_0 ((AtLeastOnceSince.usr.X_a_0 Bool) (AtLeastOnceSince.usr.Y_a_0 Bool) (AtLeastOnceSince.usr.XsinceY_a_0 Bool) (AtLeastOnceSince.res.init_flag_a_0 Bool)) Bool + (and (= AtLeastOnceSince.usr.XsinceY_a_0 (ite AtLeastOnceSince.usr.Y_a_0 AtLeastOnceSince.usr.X_a_0 true)) AtLeastOnceSince.res.init_flag_a_0)) +(define-fun __node_trans_AtLeastOnceSince_0 ((AtLeastOnceSince.usr.X_a_1 Bool) (AtLeastOnceSince.usr.Y_a_1 Bool) (AtLeastOnceSince.usr.XsinceY_a_1 Bool) (AtLeastOnceSince.res.init_flag_a_1 Bool) (AtLeastOnceSince.usr.X_a_0 Bool) (AtLeastOnceSince.usr.Y_a_0 Bool) (AtLeastOnceSince.usr.XsinceY_a_0 Bool) (AtLeastOnceSince.res.init_flag_a_0 Bool)) Bool + (and (= AtLeastOnceSince.usr.XsinceY_a_1 (ite AtLeastOnceSince.usr.Y_a_1 AtLeastOnceSince.usr.X_a_1 (or AtLeastOnceSince.usr.X_a_1 AtLeastOnceSince.usr.XsinceY_a_0))) (not AtLeastOnceSince.res.init_flag_a_1))) +(define-fun __node_init_one_button_0 ((one_button.usr.ccseti_a_0 Bool) (one_button.usr.ccsetd_a_0 Bool) (one_button.usr.ccr_a_0 Bool) (one_button.usr.ob_a_0 Bool) (one_button.res.init_flag_a_0 Bool)) Bool + (and (= one_button.usr.ob_a_0 (or (or (and (and one_button.usr.ccseti_a_0 (not one_button.usr.ccsetd_a_0)) (not one_button.usr.ccr_a_0)) (and (and (not one_button.usr.ccseti_a_0) one_button.usr.ccsetd_a_0) (not one_button.usr.ccr_a_0))) (and (and (not one_button.usr.ccseti_a_0) (not one_button.usr.ccsetd_a_0)) one_button.usr.ccr_a_0))) one_button.res.init_flag_a_0)) +(define-fun __node_trans_one_button_0 ((one_button.usr.ccseti_a_1 Bool) (one_button.usr.ccsetd_a_1 Bool) (one_button.usr.ccr_a_1 Bool) (one_button.usr.ob_a_1 Bool) (one_button.res.init_flag_a_1 Bool) (one_button.usr.ccseti_a_0 Bool) (one_button.usr.ccsetd_a_0 Bool) (one_button.usr.ccr_a_0 Bool) (one_button.usr.ob_a_0 Bool) (one_button.res.init_flag_a_0 Bool)) Bool + (and (= one_button.usr.ob_a_1 (or (or (and (and one_button.usr.ccseti_a_1 (not one_button.usr.ccsetd_a_1)) (not one_button.usr.ccr_a_1)) (and (and (not one_button.usr.ccseti_a_1) one_button.usr.ccsetd_a_1) (not one_button.usr.ccr_a_1))) (and (and (not one_button.usr.ccseti_a_1) (not one_button.usr.ccsetd_a_1)) one_button.usr.ccr_a_1))) (not one_button.res.init_flag_a_1))) +(define-fun __node_init_one_button_accept_0 ((one_button_accept.usr.ccseti_a_0 Bool) (one_button_accept.usr.ccsetd_a_0 Bool) (one_button_accept.usr.ccr_a_0 Bool) (one_button_accept.usr.ccont_a_0 Bool) (one_button_accept.usr.cca_a_0 Bool) (one_button_accept.usr.oba_a_0 Bool) (one_button_accept.res.init_flag_a_0 Bool) (one_button_accept.res.abs_0_a_0 Bool) (one_button_accept.res.abs_1_a_0 Bool) (one_button_accept.res.abs_2_a_0 Bool) (one_button_accept.res.abs_3_a_0 Bool) (one_button_accept.res.inst_4_a_0 Bool) (one_button_accept.res.inst_3_a_0 Bool) (one_button_accept.res.inst_2_a_0 Bool) (one_button_accept.res.inst_1_a_0 Bool) (one_button_accept.res.inst_0_a_0 Bool)) Bool + (let ((X1 one_button_accept.res.abs_0_a_0)) (let ((X2 one_button_accept.res.abs_1_a_0)) (and (= one_button_accept.usr.oba_a_0 (ite (and X1 X2) (ite (not one_button_accept.usr.ccr_a_0) true one_button_accept.res.abs_3_a_0) false)) (__node_init_one_button_0 one_button_accept.usr.ccseti_a_0 one_button_accept.usr.ccsetd_a_0 one_button_accept.usr.ccr_a_0 one_button_accept.res.abs_1_a_0 one_button_accept.res.inst_4_a_0) (__node_init_prev_no_button_0 one_button_accept.usr.ccseti_a_0 one_button_accept.usr.ccsetd_a_0 one_button_accept.usr.ccr_a_0 one_button_accept.res.abs_0_a_0 one_button_accept.res.inst_3_a_0 one_button_accept.res.inst_2_a_0) (__node_init_AtLeastOnceSince_0 one_button_accept.usr.cca_a_0 one_button_accept.res.abs_2_a_0 one_button_accept.res.abs_3_a_0 one_button_accept.res.inst_1_a_0) (__node_init_PosEdge_0 one_button_accept.usr.ccont_a_0 one_button_accept.res.abs_2_a_0 one_button_accept.res.inst_0_a_0) one_button_accept.res.init_flag_a_0)))) +(define-fun __node_trans_one_button_accept_0 ((one_button_accept.usr.ccseti_a_1 Bool) (one_button_accept.usr.ccsetd_a_1 Bool) (one_button_accept.usr.ccr_a_1 Bool) (one_button_accept.usr.ccont_a_1 Bool) (one_button_accept.usr.cca_a_1 Bool) (one_button_accept.usr.oba_a_1 Bool) (one_button_accept.res.init_flag_a_1 Bool) (one_button_accept.res.abs_0_a_1 Bool) (one_button_accept.res.abs_1_a_1 Bool) (one_button_accept.res.abs_2_a_1 Bool) (one_button_accept.res.abs_3_a_1 Bool) (one_button_accept.res.inst_4_a_1 Bool) (one_button_accept.res.inst_3_a_1 Bool) (one_button_accept.res.inst_2_a_1 Bool) (one_button_accept.res.inst_1_a_1 Bool) (one_button_accept.res.inst_0_a_1 Bool) (one_button_accept.usr.ccseti_a_0 Bool) (one_button_accept.usr.ccsetd_a_0 Bool) (one_button_accept.usr.ccr_a_0 Bool) (one_button_accept.usr.ccont_a_0 Bool) (one_button_accept.usr.cca_a_0 Bool) (one_button_accept.usr.oba_a_0 Bool) (one_button_accept.res.init_flag_a_0 Bool) (one_button_accept.res.abs_0_a_0 Bool) (one_button_accept.res.abs_1_a_0 Bool) (one_button_accept.res.abs_2_a_0 Bool) (one_button_accept.res.abs_3_a_0 Bool) (one_button_accept.res.inst_4_a_0 Bool) (one_button_accept.res.inst_3_a_0 Bool) (one_button_accept.res.inst_2_a_0 Bool) (one_button_accept.res.inst_1_a_0 Bool) (one_button_accept.res.inst_0_a_0 Bool)) Bool + (let ((X1 one_button_accept.res.abs_0_a_1)) (let ((X2 one_button_accept.res.abs_1_a_1)) (and (= one_button_accept.usr.oba_a_1 (ite (and X1 X2) (ite (not one_button_accept.usr.ccr_a_1) true one_button_accept.res.abs_3_a_1) false)) (__node_trans_one_button_0 one_button_accept.usr.ccseti_a_1 one_button_accept.usr.ccsetd_a_1 one_button_accept.usr.ccr_a_1 one_button_accept.res.abs_1_a_1 one_button_accept.res.inst_4_a_1 one_button_accept.usr.ccseti_a_0 one_button_accept.usr.ccsetd_a_0 one_button_accept.usr.ccr_a_0 one_button_accept.res.abs_1_a_0 one_button_accept.res.inst_4_a_0) (__node_trans_prev_no_button_0 one_button_accept.usr.ccseti_a_1 one_button_accept.usr.ccsetd_a_1 one_button_accept.usr.ccr_a_1 one_button_accept.res.abs_0_a_1 one_button_accept.res.inst_3_a_1 one_button_accept.res.inst_2_a_1 one_button_accept.usr.ccseti_a_0 one_button_accept.usr.ccsetd_a_0 one_button_accept.usr.ccr_a_0 one_button_accept.res.abs_0_a_0 one_button_accept.res.inst_3_a_0 one_button_accept.res.inst_2_a_0) (__node_trans_AtLeastOnceSince_0 one_button_accept.usr.cca_a_1 one_button_accept.res.abs_2_a_1 one_button_accept.res.abs_3_a_1 one_button_accept.res.inst_1_a_1 one_button_accept.usr.cca_a_0 one_button_accept.res.abs_2_a_0 one_button_accept.res.abs_3_a_0 one_button_accept.res.inst_1_a_0) (__node_trans_PosEdge_0 one_button_accept.usr.ccont_a_1 one_button_accept.res.abs_2_a_1 one_button_accept.res.inst_0_a_1 one_button_accept.usr.ccont_a_0 one_button_accept.res.abs_2_a_0 one_button_accept.res.inst_0_a_0) (not one_button_accept.res.init_flag_a_1))))) +(define-fun __node_init_main_0 ((main.usr.igsw_a_0 Bool) (main.usr.ccd_a_0 Bool) (main.usr.cconoff_a_0 Bool) (main.usr.bpa_a_0 Bool) (main.usr.cccanc_a_0 Bool) (main.usr.battok_a_0 Bool) (main.usr.gearok_a_0 Bool) (main.usr.qfok_a_0 Bool) (main.usr.sdok_a_0 Bool) (main.usr.accok_a_0 Bool) (main.usr.ccseti_a_0 Bool) (main.usr.ccsetd_a_0 Bool) (main.usr.ccr_a_0 Bool) (main.usr.vs_a_0 Int) (main.res.nondet_0 Bool) (main.usr.ccont_a_0 Bool) (main.usr.cca_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Bool) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Bool) (main.res.inst_17_a_0 Bool) (main.res.inst_16_a_0 Bool) (main.res.inst_15_a_0 Bool) (main.res.inst_14_a_0 Bool) (main.res.inst_13_a_0 Bool) (main.res.inst_12_a_0 Bool) (main.res.inst_11_a_0 Bool) (main.res.inst_10_a_0 Bool) (main.res.inst_9_a_0 Bool) (main.res.inst_8_a_0 Bool) (main.res.inst_7_a_0 Bool) (main.res.inst_6_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Bool) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Bool) (main.res.inst_0_a_0 Bool)) Bool + (and (= main.usr.ccont_a_0 false) (= main.res.abs_2_a_0 (not main.usr.ccont_a_0)) (= main.usr.cca_a_0 false) (let ((X1 main.res.abs_3_a_0)) (and (= main.res.abs_4_a_0 (let ((X2 main.res.nondet_0)) X2)) (__node_init_Edge_0 main.usr.igsw_a_0 main.res.abs_0_a_0 main.res.inst_17_a_0) (__node_init_PosEdge_0 main.usr.cconoff_a_0 main.res.abs_1_a_0 main.res.inst_16_a_0) (__node_init_cc_allowed_0 main.usr.ccont_a_0 main.usr.igsw_a_0 main.usr.bpa_a_0 main.usr.cccanc_a_0 main.usr.battok_a_0 main.usr.gearok_a_0 main.usr.qfok_a_0 main.usr.sdok_a_0 main.usr.accok_a_0 main.usr.vs_a_0 main.res.abs_3_a_0 main.res.inst_15_a_0 main.res.inst_14_a_0 main.res.inst_13_a_0 main.res.inst_12_a_0 main.res.inst_11_a_0 main.res.inst_10_a_0) (__node_init_one_button_accept_0 main.usr.ccseti_a_0 main.usr.ccsetd_a_0 main.usr.ccr_a_0 main.usr.ccont_a_0 main.res.abs_4_a_0 main.res.abs_5_a_0 main.res.inst_9_a_0 main.res.inst_8_a_0 main.res.inst_7_a_0 main.res.inst_6_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0 main.res.inst_3_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0 main.res.inst_0_a_0) main.res.init_flag_a_0)))) +(define-fun __node_trans_main_0 ((main.usr.igsw_a_1 Bool) (main.usr.ccd_a_1 Bool) (main.usr.cconoff_a_1 Bool) (main.usr.bpa_a_1 Bool) (main.usr.cccanc_a_1 Bool) (main.usr.battok_a_1 Bool) (main.usr.gearok_a_1 Bool) (main.usr.qfok_a_1 Bool) (main.usr.sdok_a_1 Bool) (main.usr.accok_a_1 Bool) (main.usr.ccseti_a_1 Bool) (main.usr.ccsetd_a_1 Bool) (main.usr.ccr_a_1 Bool) (main.usr.vs_a_1 Int) (main.res.nondet_0 Bool) (main.usr.ccont_a_1 Bool) (main.usr.cca_a_1 Bool) (main.res.init_flag_a_1 Bool) (main.res.abs_0_a_1 Bool) (main.res.abs_1_a_1 Bool) (main.res.abs_2_a_1 Bool) (main.res.abs_3_a_1 Bool) (main.res.abs_4_a_1 Bool) (main.res.abs_5_a_1 Bool) (main.res.inst_17_a_1 Bool) (main.res.inst_16_a_1 Bool) (main.res.inst_15_a_1 Bool) (main.res.inst_14_a_1 Bool) (main.res.inst_13_a_1 Bool) (main.res.inst_12_a_1 Bool) (main.res.inst_11_a_1 Bool) (main.res.inst_10_a_1 Bool) (main.res.inst_9_a_1 Bool) (main.res.inst_8_a_1 Bool) (main.res.inst_7_a_1 Bool) (main.res.inst_6_a_1 Bool) (main.res.inst_5_a_1 Bool) (main.res.inst_4_a_1 Bool) (main.res.inst_3_a_1 Bool) (main.res.inst_2_a_1 Bool) (main.res.inst_1_a_1 Bool) (main.res.inst_0_a_1 Bool) (main.usr.igsw_a_0 Bool) (main.usr.ccd_a_0 Bool) (main.usr.cconoff_a_0 Bool) (main.usr.bpa_a_0 Bool) (main.usr.cccanc_a_0 Bool) (main.usr.battok_a_0 Bool) (main.usr.gearok_a_0 Bool) (main.usr.qfok_a_0 Bool) (main.usr.sdok_a_0 Bool) (main.usr.accok_a_0 Bool) (main.usr.ccseti_a_0 Bool) (main.usr.ccsetd_a_0 Bool) (main.usr.ccr_a_0 Bool) (main.usr.vs_a_0 Int) (main.usr.ccont_a_0 Bool) (main.usr.cca_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Bool) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Bool) (main.res.inst_17_a_0 Bool) (main.res.inst_16_a_0 Bool) (main.res.inst_15_a_0 Bool) (main.res.inst_14_a_0 Bool) (main.res.inst_13_a_0 Bool) (main.res.inst_12_a_0 Bool) (main.res.inst_11_a_0 Bool) (main.res.inst_10_a_0 Bool) (main.res.inst_9_a_0 Bool) (main.res.inst_8_a_0 Bool) (main.res.inst_7_a_0 Bool) (main.res.inst_6_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Bool) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Bool) (main.res.inst_0_a_0 Bool)) Bool + (and (= main.usr.ccont_a_1 (ite (or (or main.res.abs_0_a_1 main.usr.ccd_a_1) (and main.usr.ccont_a_0 main.res.abs_1_a_1)) false (ite (and main.res.abs_2_a_0 main.res.abs_1_a_1) true main.usr.ccont_a_0))) (= main.res.abs_2_a_1 (not main.usr.ccont_a_1)) (= main.res.abs_4_a_1 main.usr.cca_a_0) (let ((X1 main.res.abs_3_a_1)) (and (= main.usr.cca_a_1 (ite (and main.res.abs_5_a_1 X1) true (ite (not X1) false main.usr.cca_a_0))) (__node_trans_Edge_0 main.usr.igsw_a_1 main.res.abs_0_a_1 main.res.inst_17_a_1 main.usr.igsw_a_0 main.res.abs_0_a_0 main.res.inst_17_a_0) (__node_trans_PosEdge_0 main.usr.cconoff_a_1 main.res.abs_1_a_1 main.res.inst_16_a_1 main.usr.cconoff_a_0 main.res.abs_1_a_0 main.res.inst_16_a_0) (__node_trans_cc_allowed_0 main.usr.ccont_a_1 main.usr.igsw_a_1 main.usr.bpa_a_1 main.usr.cccanc_a_1 main.usr.battok_a_1 main.usr.gearok_a_1 main.usr.qfok_a_1 main.usr.sdok_a_1 main.usr.accok_a_1 main.usr.vs_a_1 main.res.abs_3_a_1 main.res.inst_15_a_1 main.res.inst_14_a_1 main.res.inst_13_a_1 main.res.inst_12_a_1 main.res.inst_11_a_1 main.res.inst_10_a_1 main.usr.ccont_a_0 main.usr.igsw_a_0 main.usr.bpa_a_0 main.usr.cccanc_a_0 main.usr.battok_a_0 main.usr.gearok_a_0 main.usr.qfok_a_0 main.usr.sdok_a_0 main.usr.accok_a_0 main.usr.vs_a_0 main.res.abs_3_a_0 main.res.inst_15_a_0 main.res.inst_14_a_0 main.res.inst_13_a_0 main.res.inst_12_a_0 main.res.inst_11_a_0 main.res.inst_10_a_0) (__node_trans_one_button_accept_0 main.usr.ccseti_a_1 main.usr.ccsetd_a_1 main.usr.ccr_a_1 main.usr.ccont_a_1 main.res.abs_4_a_1 main.res.abs_5_a_1 main.res.inst_9_a_1 main.res.inst_8_a_1 main.res.inst_7_a_1 main.res.inst_6_a_1 main.res.inst_5_a_1 main.res.inst_4_a_1 main.res.inst_3_a_1 main.res.inst_2_a_1 main.res.inst_1_a_1 main.res.inst_0_a_1 main.usr.ccseti_a_0 main.usr.ccsetd_a_0 main.usr.ccr_a_0 main.usr.ccont_a_0 main.res.abs_4_a_0 main.res.abs_5_a_0 main.res.inst_9_a_0 main.res.inst_8_a_0 main.res.inst_7_a_0 main.res.inst_6_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0 main.res.inst_3_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0 main.res.inst_0_a_0) (not main.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.igsw_a_0 Bool) (top.usr.ccd_a_0 Bool) (top.usr.cconoff_a_0 Bool) (top.usr.bpa_a_0 Bool) (top.usr.cccanc_a_0 Bool) (top.usr.battok_a_0 Bool) (top.usr.gearok_a_0 Bool) (top.usr.qfok_a_0 Bool) (top.usr.sdok_a_0 Bool) (top.usr.accok_a_0 Bool) (top.usr.ccseti_a_0 Bool) (top.usr.ccsetd_a_0 Bool) (top.usr.ccr_a_0 Bool) (top.usr.vs_a_0 Int) (top.res.nondet_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.ccont_a_0 Bool) (top.impl.usr.cca_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.inst_37_a_0 Bool) (top.res.inst_36_a_0 Bool) (top.res.inst_35_a_0 Bool) (top.res.inst_34_a_0 Bool) (top.res.inst_33_a_0 Bool) (top.res.inst_32_a_0 Bool) (top.res.inst_31_a_0 Bool) (top.res.inst_30_a_0 Bool) (top.res.inst_29_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.ccont_a_0 top.res.abs_8_a_0) (= top.impl.usr.cca_a_0 top.res.abs_9_a_0) (let ((X1 (ite top.res.abs_6_a_0 (not top.impl.usr.cca_a_0) true))) (let ((X2 (ite top.res.abs_5_a_0 (and (and (not top.res.abs_6_a_0) (not top.usr.ccd_a_0)) top.res.abs_7_a_0) true))) (let ((X3 (ite (not top.res.abs_4_a_0) (not top.impl.usr.cca_a_0) true))) (let ((X4 (ite top.res.abs_0_a_0 (or (or top.res.abs_1_a_0 top.res.abs_2_a_0) top.res.abs_3_a_0) true))) (and (= top.usr.OK_a_0 (and (and (and X4 X3) X2) X1)) (__node_init_PosEdge_0 top.impl.usr.cca_a_0 top.res.abs_0_a_0 top.res.inst_37_a_0) (__node_init_main_0 top.usr.igsw_a_0 top.usr.ccd_a_0 top.usr.cconoff_a_0 top.usr.bpa_a_0 top.usr.cccanc_a_0 top.usr.battok_a_0 top.usr.gearok_a_0 top.usr.qfok_a_0 top.usr.sdok_a_0 top.usr.accok_a_0 top.usr.ccseti_a_0 top.usr.ccsetd_a_0 top.usr.ccr_a_0 top.usr.vs_a_0 top.res.nondet_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_36_a_0 top.res.inst_35_a_0 top.res.inst_34_a_0 top.res.inst_33_a_0 top.res.inst_32_a_0 top.res.inst_31_a_0 top.res.inst_30_a_0 top.res.inst_29_a_0 top.res.inst_28_a_0 top.res.inst_27_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0) (__node_init_PosEdge_0 top.usr.ccseti_a_0 top.res.abs_1_a_0 top.res.inst_11_a_0) (__node_init_PosEdge_0 top.usr.ccsetd_a_0 top.res.abs_2_a_0 top.res.inst_10_a_0) (__node_init_PosEdge_0 top.usr.ccr_a_0 top.res.abs_3_a_0 top.res.inst_9_a_0) (__node_init_cc_allowed_0 top.impl.usr.ccont_a_0 top.usr.igsw_a_0 top.usr.bpa_a_0 top.usr.cccanc_a_0 top.usr.battok_a_0 top.usr.gearok_a_0 top.usr.qfok_a_0 top.usr.sdok_a_0 top.usr.accok_a_0 top.usr.vs_a_0 top.res.abs_4_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_init_PosEdge_0 top.impl.usr.ccont_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_init_Edge_0 top.usr.igsw_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_init_PosEdge_0 top.usr.cconoff_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))) +(define-fun __node_trans_top_0 ((top.usr.igsw_a_1 Bool) (top.usr.ccd_a_1 Bool) (top.usr.cconoff_a_1 Bool) (top.usr.bpa_a_1 Bool) (top.usr.cccanc_a_1 Bool) (top.usr.battok_a_1 Bool) (top.usr.gearok_a_1 Bool) (top.usr.qfok_a_1 Bool) (top.usr.sdok_a_1 Bool) (top.usr.accok_a_1 Bool) (top.usr.ccseti_a_1 Bool) (top.usr.ccsetd_a_1 Bool) (top.usr.ccr_a_1 Bool) (top.usr.vs_a_1 Int) (top.res.nondet_0 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.ccont_a_1 Bool) (top.impl.usr.cca_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.inst_37_a_1 Bool) (top.res.inst_36_a_1 Bool) (top.res.inst_35_a_1 Bool) (top.res.inst_34_a_1 Bool) (top.res.inst_33_a_1 Bool) (top.res.inst_32_a_1 Bool) (top.res.inst_31_a_1 Bool) (top.res.inst_30_a_1 Bool) (top.res.inst_29_a_1 Bool) (top.res.inst_28_a_1 Bool) (top.res.inst_27_a_1 Bool) (top.res.inst_26_a_1 Bool) (top.res.inst_25_a_1 Bool) (top.res.inst_24_a_1 Bool) (top.res.inst_23_a_1 Bool) (top.res.inst_22_a_1 Bool) (top.res.inst_21_a_1 Bool) (top.res.inst_20_a_1 Bool) (top.res.inst_19_a_1 Bool) (top.res.inst_18_a_1 Bool) (top.res.inst_17_a_1 Bool) (top.res.inst_16_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Bool) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Bool) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Bool) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.igsw_a_0 Bool) (top.usr.ccd_a_0 Bool) (top.usr.cconoff_a_0 Bool) (top.usr.bpa_a_0 Bool) (top.usr.cccanc_a_0 Bool) (top.usr.battok_a_0 Bool) (top.usr.gearok_a_0 Bool) (top.usr.qfok_a_0 Bool) (top.usr.sdok_a_0 Bool) (top.usr.accok_a_0 Bool) (top.usr.ccseti_a_0 Bool) (top.usr.ccsetd_a_0 Bool) (top.usr.ccr_a_0 Bool) (top.usr.vs_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.ccont_a_0 Bool) (top.impl.usr.cca_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.inst_37_a_0 Bool) (top.res.inst_36_a_0 Bool) (top.res.inst_35_a_0 Bool) (top.res.inst_34_a_0 Bool) (top.res.inst_33_a_0 Bool) (top.res.inst_32_a_0 Bool) (top.res.inst_31_a_0 Bool) (top.res.inst_30_a_0 Bool) (top.res.inst_29_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.ccont_a_1 top.res.abs_8_a_1) (= top.impl.usr.cca_a_1 top.res.abs_9_a_1) (let ((X1 (ite top.res.abs_6_a_1 (not top.impl.usr.cca_a_1) true))) (let ((X2 (ite top.res.abs_5_a_1 (and (and (not top.res.abs_6_a_1) (not top.usr.ccd_a_1)) top.res.abs_7_a_1) true))) (let ((X3 (ite (not top.res.abs_4_a_1) (not top.impl.usr.cca_a_1) true))) (let ((X4 (ite top.res.abs_0_a_1 (or (or top.res.abs_1_a_1 top.res.abs_2_a_1) top.res.abs_3_a_1) true))) (and (= top.usr.OK_a_1 (and (and (and X4 X3) X2) X1)) (__node_trans_PosEdge_0 top.impl.usr.cca_a_1 top.res.abs_0_a_1 top.res.inst_37_a_1 top.impl.usr.cca_a_0 top.res.abs_0_a_0 top.res.inst_37_a_0) (__node_trans_main_0 top.usr.igsw_a_1 top.usr.ccd_a_1 top.usr.cconoff_a_1 top.usr.bpa_a_1 top.usr.cccanc_a_1 top.usr.battok_a_1 top.usr.gearok_a_1 top.usr.qfok_a_1 top.usr.sdok_a_1 top.usr.accok_a_1 top.usr.ccseti_a_1 top.usr.ccsetd_a_1 top.usr.ccr_a_1 top.usr.vs_a_1 top.res.nondet_0 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_36_a_1 top.res.inst_35_a_1 top.res.inst_34_a_1 top.res.inst_33_a_1 top.res.inst_32_a_1 top.res.inst_31_a_1 top.res.inst_30_a_1 top.res.inst_29_a_1 top.res.inst_28_a_1 top.res.inst_27_a_1 top.res.inst_26_a_1 top.res.inst_25_a_1 top.res.inst_24_a_1 top.res.inst_23_a_1 top.res.inst_22_a_1 top.res.inst_21_a_1 top.res.inst_20_a_1 top.res.inst_19_a_1 top.res.inst_18_a_1 top.res.inst_17_a_1 top.res.inst_16_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.usr.igsw_a_0 top.usr.ccd_a_0 top.usr.cconoff_a_0 top.usr.bpa_a_0 top.usr.cccanc_a_0 top.usr.battok_a_0 top.usr.gearok_a_0 top.usr.qfok_a_0 top.usr.sdok_a_0 top.usr.accok_a_0 top.usr.ccseti_a_0 top.usr.ccsetd_a_0 top.usr.ccr_a_0 top.usr.vs_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_36_a_0 top.res.inst_35_a_0 top.res.inst_34_a_0 top.res.inst_33_a_0 top.res.inst_32_a_0 top.res.inst_31_a_0 top.res.inst_30_a_0 top.res.inst_29_a_0 top.res.inst_28_a_0 top.res.inst_27_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0) (__node_trans_PosEdge_0 top.usr.ccseti_a_1 top.res.abs_1_a_1 top.res.inst_11_a_1 top.usr.ccseti_a_0 top.res.abs_1_a_0 top.res.inst_11_a_0) (__node_trans_PosEdge_0 top.usr.ccsetd_a_1 top.res.abs_2_a_1 top.res.inst_10_a_1 top.usr.ccsetd_a_0 top.res.abs_2_a_0 top.res.inst_10_a_0) (__node_trans_PosEdge_0 top.usr.ccr_a_1 top.res.abs_3_a_1 top.res.inst_9_a_1 top.usr.ccr_a_0 top.res.abs_3_a_0 top.res.inst_9_a_0) (__node_trans_cc_allowed_0 top.impl.usr.ccont_a_1 top.usr.igsw_a_1 top.usr.bpa_a_1 top.usr.cccanc_a_1 top.usr.battok_a_1 top.usr.gearok_a_1 top.usr.qfok_a_1 top.usr.sdok_a_1 top.usr.accok_a_1 top.usr.vs_a_1 top.res.abs_4_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.impl.usr.ccont_a_0 top.usr.igsw_a_0 top.usr.bpa_a_0 top.usr.cccanc_a_0 top.usr.battok_a_0 top.usr.gearok_a_0 top.usr.qfok_a_0 top.usr.sdok_a_0 top.usr.accok_a_0 top.usr.vs_a_0 top.res.abs_4_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0) (__node_trans_PosEdge_0 top.impl.usr.ccont_a_1 top.res.abs_5_a_1 top.res.inst_2_a_1 top.impl.usr.ccont_a_0 top.res.abs_5_a_0 top.res.inst_2_a_0) (__node_trans_Edge_0 top.usr.igsw_a_1 top.res.abs_6_a_1 top.res.inst_1_a_1 top.usr.igsw_a_0 top.res.abs_6_a_0 top.res.inst_1_a_0) (__node_trans_PosEdge_0 top.usr.cconoff_a_1 top.res.abs_7_a_1 top.res.inst_0_a_1 top.usr.cconoff_a_0 top.res.abs_7_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.igsw Bool) (top.usr.ccd Bool) (top.usr.cconoff Bool) (top.usr.bpa Bool) (top.usr.cccanc Bool) (top.usr.battok Bool) (top.usr.gearok Bool) (top.usr.qfok Bool) (top.usr.sdok Bool) (top.usr.accok Bool) (top.usr.ccseti Bool) (top.usr.ccsetd Bool) (top.usr.ccr Bool) (top.usr.vs Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.ccont Bool) (top.impl.usr.cca Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_0 Bool) +(define-fun init ((top.usr.igsw Bool) (top.usr.ccd Bool) (top.usr.cconoff Bool) (top.usr.bpa Bool) (top.usr.cccanc Bool) (top.usr.battok Bool) (top.usr.gearok Bool) (top.usr.qfok Bool) (top.usr.sdok Bool) (top.usr.accok Bool) (top.usr.ccseti Bool) (top.usr.ccsetd Bool) (top.usr.ccr Bool) (top.usr.vs Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.ccont Bool) (top.impl.usr.cca Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.ccont top.res.abs_8) (= top.impl.usr.cca top.res.abs_9) (let ((X1 (ite top.res.abs_6 (not top.impl.usr.cca) true))) (let ((X2 (ite top.res.abs_5 (and (and (not top.res.abs_6) (not top.usr.ccd)) top.res.abs_7) true))) (let ((X3 (ite (not top.res.abs_4) (not top.impl.usr.cca) true))) (let ((X4 (ite top.res.abs_0 (or (or top.res.abs_1 top.res.abs_2) top.res.abs_3) true))) (and (= top.usr.OK (and (and (and X4 X3) X2) X1)) (__node_init_PosEdge_0 top.impl.usr.cca top.res.abs_0 top.res.inst_37) (__node_init_main_0 top.usr.igsw top.usr.ccd top.usr.cconoff top.usr.bpa top.usr.cccanc top.usr.battok top.usr.gearok top.usr.qfok top.usr.sdok top.usr.accok top.usr.ccseti top.usr.ccsetd top.usr.ccr top.usr.vs top.res.nondet_0 top.res.abs_8 top.res.abs_9 top.res.inst_36 top.res.inst_35 top.res.inst_34 top.res.inst_33 top.res.inst_32 top.res.inst_31 top.res.inst_30 top.res.inst_29 top.res.inst_28 top.res.inst_27 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12) (__node_init_PosEdge_0 top.usr.ccseti top.res.abs_1 top.res.inst_11) (__node_init_PosEdge_0 top.usr.ccsetd top.res.abs_2 top.res.inst_10) (__node_init_PosEdge_0 top.usr.ccr top.res.abs_3 top.res.inst_9) (__node_init_cc_allowed_0 top.impl.usr.ccont top.usr.igsw top.usr.bpa top.usr.cccanc top.usr.battok top.usr.gearok top.usr.qfok top.usr.sdok top.usr.accok top.usr.vs top.res.abs_4 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3) (__node_init_PosEdge_0 top.impl.usr.ccont top.res.abs_5 top.res.inst_2) (__node_init_Edge_0 top.usr.igsw top.res.abs_6 top.res.inst_1) (__node_init_PosEdge_0 top.usr.cconoff top.res.abs_7 top.res.inst_0) top.res.init_flag))))))) +(define-fun trans ((top.usr.igsw Bool) (top.usr.ccd Bool) (top.usr.cconoff Bool) (top.usr.bpa Bool) (top.usr.cccanc Bool) (top.usr.battok Bool) (top.usr.gearok Bool) (top.usr.qfok Bool) (top.usr.sdok Bool) (top.usr.accok Bool) (top.usr.ccseti Bool) (top.usr.ccsetd Bool) (top.usr.ccr Bool) (top.usr.vs Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.ccont Bool) (top.impl.usr.cca Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.igsw! Bool) (top.usr.ccd! Bool) (top.usr.cconoff! Bool) (top.usr.bpa! Bool) (top.usr.cccanc! Bool) (top.usr.battok! Bool) (top.usr.gearok! Bool) (top.usr.qfok! Bool) (top.usr.sdok! Bool) (top.usr.accok! Bool) (top.usr.ccseti! Bool) (top.usr.ccsetd! Bool) (top.usr.ccr! Bool) (top.usr.vs! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.ccont! Bool) (top.impl.usr.cca! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.inst_37! Bool) (top.res.inst_36! Bool) (top.res.inst_35! Bool) (top.res.inst_34! Bool) (top.res.inst_33! Bool) (top.res.inst_32! Bool) (top.res.inst_31! Bool) (top.res.inst_30! Bool) (top.res.inst_29! Bool) (top.res.inst_28! Bool) (top.res.inst_27! Bool) (top.res.inst_26! Bool) (top.res.inst_25! Bool) (top.res.inst_24! Bool) (top.res.inst_23! Bool) (top.res.inst_22! Bool) (top.res.inst_21! Bool) (top.res.inst_20! Bool) (top.res.inst_19! Bool) (top.res.inst_18! Bool) (top.res.inst_17! Bool) (top.res.inst_16! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Bool) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Bool) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Bool) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.impl.usr.ccont! top.res.abs_8!) (= top.impl.usr.cca! top.res.abs_9!) (let ((X1 (ite top.res.abs_6! (not top.impl.usr.cca!) true))) (let ((X2 (ite top.res.abs_5! (and (and (not top.res.abs_6!) (not top.usr.ccd!)) top.res.abs_7!) true))) (let ((X3 (ite (not top.res.abs_4!) (not top.impl.usr.cca!) true))) (let ((X4 (ite top.res.abs_0! (or (or top.res.abs_1! top.res.abs_2!) top.res.abs_3!) true))) (and (= top.usr.OK! (and (and (and X4 X3) X2) X1)) (__node_trans_PosEdge_0 top.impl.usr.cca! top.res.abs_0! top.res.inst_37! top.impl.usr.cca top.res.abs_0 top.res.inst_37) (__node_trans_main_0 top.usr.igsw! top.usr.ccd! top.usr.cconoff! top.usr.bpa! top.usr.cccanc! top.usr.battok! top.usr.gearok! top.usr.qfok! top.usr.sdok! top.usr.accok! top.usr.ccseti! top.usr.ccsetd! top.usr.ccr! top.usr.vs! top.res.nondet_0 top.res.abs_8! top.res.abs_9! top.res.inst_36! top.res.inst_35! top.res.inst_34! top.res.inst_33! top.res.inst_32! top.res.inst_31! top.res.inst_30! top.res.inst_29! top.res.inst_28! top.res.inst_27! top.res.inst_26! top.res.inst_25! top.res.inst_24! top.res.inst_23! top.res.inst_22! top.res.inst_21! top.res.inst_20! top.res.inst_19! top.res.inst_18! top.res.inst_17! top.res.inst_16! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.usr.igsw top.usr.ccd top.usr.cconoff top.usr.bpa top.usr.cccanc top.usr.battok top.usr.gearok top.usr.qfok top.usr.sdok top.usr.accok top.usr.ccseti top.usr.ccsetd top.usr.ccr top.usr.vs top.res.abs_8 top.res.abs_9 top.res.inst_36 top.res.inst_35 top.res.inst_34 top.res.inst_33 top.res.inst_32 top.res.inst_31 top.res.inst_30 top.res.inst_29 top.res.inst_28 top.res.inst_27 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12) (__node_trans_PosEdge_0 top.usr.ccseti! top.res.abs_1! top.res.inst_11! top.usr.ccseti top.res.abs_1 top.res.inst_11) (__node_trans_PosEdge_0 top.usr.ccsetd! top.res.abs_2! top.res.inst_10! top.usr.ccsetd top.res.abs_2 top.res.inst_10) (__node_trans_PosEdge_0 top.usr.ccr! top.res.abs_3! top.res.inst_9! top.usr.ccr top.res.abs_3 top.res.inst_9) (__node_trans_cc_allowed_0 top.impl.usr.ccont! top.usr.igsw! top.usr.bpa! top.usr.cccanc! top.usr.battok! top.usr.gearok! top.usr.qfok! top.usr.sdok! top.usr.accok! top.usr.vs! top.res.abs_4! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.impl.usr.ccont top.usr.igsw top.usr.bpa top.usr.cccanc top.usr.battok top.usr.gearok top.usr.qfok top.usr.sdok top.usr.accok top.usr.vs top.res.abs_4 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3) (__node_trans_PosEdge_0 top.impl.usr.ccont! top.res.abs_5! top.res.inst_2! top.impl.usr.ccont top.res.abs_5 top.res.inst_2) (__node_trans_Edge_0 top.usr.igsw! top.res.abs_6! top.res.inst_1! top.usr.igsw top.res.abs_6 top.res.inst_1) (__node_trans_PosEdge_0 top.usr.cconoff! top.res.abs_7! top.res.inst_0! top.usr.cconoff top.res.abs_7 top.res.inst_0) (not top.res.init_flag!))))))) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.igsw Bool) (top.usr.ccd Bool) (top.usr.cconoff Bool) (top.usr.bpa Bool) (top.usr.cccanc Bool) (top.usr.battok Bool) (top.usr.gearok Bool) (top.usr.qfok Bool) (top.usr.sdok Bool) (top.usr.accok Bool) (top.usr.ccseti Bool) (top.usr.ccsetd Bool) (top.usr.ccr Bool) (top.usr.vs Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.ccont Bool) (top.impl.usr.cca Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/hysteresis_1.sl b/benchmarks/LIA/Lustre/hysteresis_1.sl index 77d467c..5ebe4f8 100644 --- a/benchmarks/LIA/Lustre/hysteresis_1.sl +++ b/benchmarks/LIA/Lustre/hysteresis_1.sl @@ -1,420 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_counter_0 ( - (counter.usr.init_a_0 Int) - (counter.usr.incr_a_0 Int) - (counter.usr.x_a_0 Bool) - (counter.usr.reset_a_0 Bool) - (counter.usr.c_a_0 Int) - (counter.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int counter.usr.init_a_0)) - (and - (= - counter.usr.c_a_0 - (ite - counter.usr.reset_a_0 - counter.usr.init_a_0 - (ite - (and (and counter.usr.x_a_0 (> X1 (- 1000))) (< X1 1000)) - (+ X1 counter.usr.incr_a_0) - X1))) - counter.res.init_flag_a_0)) -) - -(define-fun - __node_trans_counter_0 ( - (counter.usr.init_a_1 Int) - (counter.usr.incr_a_1 Int) - (counter.usr.x_a_1 Bool) - (counter.usr.reset_a_1 Bool) - (counter.usr.c_a_1 Int) - (counter.res.init_flag_a_1 Bool) - (counter.usr.init_a_0 Int) - (counter.usr.incr_a_0 Int) - (counter.usr.x_a_0 Bool) - (counter.usr.reset_a_0 Bool) - (counter.usr.c_a_0 Int) - (counter.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int counter.usr.c_a_0)) - (and - (= - counter.usr.c_a_1 - (ite - counter.usr.reset_a_1 - counter.usr.init_a_1 - (ite - (and (and counter.usr.x_a_1 (> X1 (- 1000))) (< X1 1000)) - (+ X1 counter.usr.incr_a_1) - X1))) - (not counter.res.init_flag_a_1))) -) - -(define-fun - __node_init_speed_0 ( - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.usr.late_a_0 false) - (= speed.res.abs_2_a_0 false) - (= speed.res.abs_1_a_0 (or speed.usr.beacon_a_0 speed.usr.second_a_0)) - (= speed.res.abs_0_a_0 0) - (= - speed.impl.usr.incr_a_0 - (ite - (and speed.usr.beacon_a_0 (not speed.usr.second_a_0)) - 1 - (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) (- 1) 0))) - (let - ((X1 Int speed.res.abs_3_a_0)) - (and - (= speed.usr.early_a_0 false) - (__node_init_counter_0 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_0 0) - (<= (- 1) speed.impl.usr.incr_a_0 1) - speed.res.init_flag_a_0))) -) - -(define-fun - __node_trans_speed_0 ( - (speed.usr.beacon_a_1 Bool) - (speed.usr.second_a_1 Bool) - (speed.usr.late_a_1 Bool) - (speed.usr.early_a_1 Bool) - (speed.res.init_flag_a_1 Bool) - (speed.impl.usr.incr_a_1 Int) - (speed.res.abs_0_a_1 Int) - (speed.res.abs_1_a_1 Bool) - (speed.res.abs_2_a_1 Bool) - (speed.res.abs_3_a_1 Int) - (speed.res.inst_0_a_1 Bool) - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.res.abs_2_a_1 false) - (= speed.res.abs_1_a_1 (or speed.usr.beacon_a_1 speed.usr.second_a_1)) - (= speed.res.abs_0_a_1 0) - (= - speed.impl.usr.incr_a_1 - (ite - (and speed.usr.beacon_a_1 (not speed.usr.second_a_1)) - 1 - (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) (- 1) 0))) - (let - ((X1 Int speed.res.abs_3_a_1)) - (and - (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) - (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) - (__node_trans_counter_0 - speed.res.abs_0_a_1 - speed.impl.usr.incr_a_1 - speed.res.abs_1_a_1 - speed.res.abs_2_a_1 - speed.res.abs_3_a_1 - speed.res.inst_0_a_1 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_1 0) - (<= (- 1) speed.impl.usr.incr_a_1 1) - (not speed.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_1_a_0)) - (let - ((X2 Bool top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (not (and X2 X1))) - (__node_init_speed_0 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.beacon_a_1 Bool) - (top.usr.second_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Int) - (top.res.inst_0_a_1 Bool) - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_1_a_1)) - (let - ((X2 Bool top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (not (and X2 X1))) - (__node_trans_speed_0 - top.usr.beacon_a_1 - top.usr.second_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.res.inst_0_a_1 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.beacon Bool) -(declare-primed-var top.usr.second Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Int) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_1)) - (let - ((X2 Bool top.res.abs_0)) - (and - (= top.usr.OK (not (and X2 X1))) - (__node_init_speed_0 - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.beacon! Bool) - (top.usr.second! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Int) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_1!)) - (let - ((X2 Bool top.res.abs_0!)) - (and - (= top.usr.OK! (not (and X2 X1))) - (__node_trans_speed_0 - top.usr.beacon! - top.usr.second! - top.res.abs_0! - top.res.abs_1! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.res.inst_0! - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_counter_0 ((counter.usr.init_a_0 Int) (counter.usr.incr_a_0 Int) (counter.usr.x_a_0 Bool) (counter.usr.reset_a_0 Bool) (counter.usr.c_a_0 Int) (counter.res.init_flag_a_0 Bool)) Bool + (let ((X1 counter.usr.init_a_0)) (and (= counter.usr.c_a_0 (ite counter.usr.reset_a_0 counter.usr.init_a_0 (ite (and (and counter.usr.x_a_0 (> X1 (- 1000))) (< X1 1000)) (+ X1 counter.usr.incr_a_0) X1))) counter.res.init_flag_a_0))) +(define-fun __node_trans_counter_0 ((counter.usr.init_a_1 Int) (counter.usr.incr_a_1 Int) (counter.usr.x_a_1 Bool) (counter.usr.reset_a_1 Bool) (counter.usr.c_a_1 Int) (counter.res.init_flag_a_1 Bool) (counter.usr.init_a_0 Int) (counter.usr.incr_a_0 Int) (counter.usr.x_a_0 Bool) (counter.usr.reset_a_0 Bool) (counter.usr.c_a_0 Int) (counter.res.init_flag_a_0 Bool)) Bool + (let ((X1 counter.usr.c_a_0)) (and (= counter.usr.c_a_1 (ite counter.usr.reset_a_1 counter.usr.init_a_1 (ite (and (and counter.usr.x_a_1 (> X1 (- 1000))) (< X1 1000)) (+ X1 counter.usr.incr_a_1) X1))) (not counter.res.init_flag_a_1)))) +(define-fun __node_init_speed_0 ((speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.usr.late_a_0 false) (= speed.res.abs_2_a_0 false) (= speed.res.abs_1_a_0 (or speed.usr.beacon_a_0 speed.usr.second_a_0)) (= speed.res.abs_0_a_0 0) (= speed.impl.usr.incr_a_0 (ite (and speed.usr.beacon_a_0 (not speed.usr.second_a_0)) 1 (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) (- 1) 0))) (let ((X1 speed.res.abs_3_a_0)) (and (= speed.usr.early_a_0 false) (__node_init_counter_0 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_0 0) (<= (- 1) speed.impl.usr.incr_a_0 1) speed.res.init_flag_a_0)))) +(define-fun __node_trans_speed_0 ((speed.usr.beacon_a_1 Bool) (speed.usr.second_a_1 Bool) (speed.usr.late_a_1 Bool) (speed.usr.early_a_1 Bool) (speed.res.init_flag_a_1 Bool) (speed.impl.usr.incr_a_1 Int) (speed.res.abs_0_a_1 Int) (speed.res.abs_1_a_1 Bool) (speed.res.abs_2_a_1 Bool) (speed.res.abs_3_a_1 Int) (speed.res.inst_0_a_1 Bool) (speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.res.abs_2_a_1 false) (= speed.res.abs_1_a_1 (or speed.usr.beacon_a_1 speed.usr.second_a_1)) (= speed.res.abs_0_a_1 0) (= speed.impl.usr.incr_a_1 (ite (and speed.usr.beacon_a_1 (not speed.usr.second_a_1)) 1 (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) (- 1) 0))) (let ((X1 speed.res.abs_3_a_1)) (and (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) (__node_trans_counter_0 speed.res.abs_0_a_1 speed.impl.usr.incr_a_1 speed.res.abs_1_a_1 speed.res.abs_2_a_1 speed.res.abs_3_a_1 speed.res.inst_0_a_1 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_1 0) (<= (- 1) speed.impl.usr.incr_a_1 1) (not speed.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_1_a_0)) (let ((X2 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (not (and X2 X1))) (__node_init_speed_0 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.beacon_a_1 Bool) (top.usr.second_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Int) (top.res.inst_0_a_1 Bool) (top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_1_a_1)) (let ((X2 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (not (and X2 X1))) (__node_trans_speed_0 top.usr.beacon_a_1 top.usr.second_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.res.inst_0_a_1 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_1)) (let ((X2 top.res.abs_0)) (and (= top.usr.OK (not (and X2 X1))) (__node_init_speed_0 top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool) (top.usr.beacon! Bool) (top.usr.second! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Int) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_1!)) (let ((X2 top.res.abs_0!)) (and (= top.usr.OK! (not (and X2 X1))) (__node_trans_speed_0 top.usr.beacon! top.usr.second! top.res.abs_0! top.res.abs_1! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.res.inst_0! top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/hysteresis_2.sl b/benchmarks/LIA/Lustre/hysteresis_2.sl index a40ec44..d8031cd 100644 --- a/benchmarks/LIA/Lustre/hysteresis_2.sl +++ b/benchmarks/LIA/Lustre/hysteresis_2.sl @@ -1,427 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_counter_0 ( - (counter.usr.init_a_0 Int) - (counter.usr.incr_a_0 Int) - (counter.usr.x_a_0 Bool) - (counter.usr.reset_a_0 Bool) - (counter.usr.c_a_0 Int) - (counter.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int counter.usr.init_a_0)) - (and - (= - counter.usr.c_a_0 - (ite - counter.usr.reset_a_0 - counter.usr.init_a_0 - (ite - (and (and counter.usr.x_a_0 (> X1 (- 1000))) (< X1 1000)) - (+ X1 counter.usr.incr_a_0) - X1))) - counter.res.init_flag_a_0)) -) - -(define-fun - __node_trans_counter_0 ( - (counter.usr.init_a_1 Int) - (counter.usr.incr_a_1 Int) - (counter.usr.x_a_1 Bool) - (counter.usr.reset_a_1 Bool) - (counter.usr.c_a_1 Int) - (counter.res.init_flag_a_1 Bool) - (counter.usr.init_a_0 Int) - (counter.usr.incr_a_0 Int) - (counter.usr.x_a_0 Bool) - (counter.usr.reset_a_0 Bool) - (counter.usr.c_a_0 Int) - (counter.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int counter.usr.c_a_0)) - (and - (= - counter.usr.c_a_1 - (ite - counter.usr.reset_a_1 - counter.usr.init_a_1 - (ite - (and (and counter.usr.x_a_1 (> X1 (- 1000))) (< X1 1000)) - (+ X1 counter.usr.incr_a_1) - X1))) - (not counter.res.init_flag_a_1))) -) - -(define-fun - __node_init_speed_0 ( - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.usr.late_a_0 false) - (= speed.res.abs_2_a_0 false) - (= speed.res.abs_1_a_0 (or speed.usr.beacon_a_0 speed.usr.second_a_0)) - (= speed.res.abs_0_a_0 0) - (= - speed.impl.usr.incr_a_0 - (ite - (and speed.usr.beacon_a_0 (not speed.usr.second_a_0)) - 1 - (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) (- 1) 0))) - (let - ((X1 Int speed.res.abs_3_a_0)) - (and - (= speed.usr.early_a_0 false) - (__node_init_counter_0 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_0 0) - (<= (- 1) speed.impl.usr.incr_a_0 1) - speed.res.init_flag_a_0))) -) - -(define-fun - __node_trans_speed_0 ( - (speed.usr.beacon_a_1 Bool) - (speed.usr.second_a_1 Bool) - (speed.usr.late_a_1 Bool) - (speed.usr.early_a_1 Bool) - (speed.res.init_flag_a_1 Bool) - (speed.impl.usr.incr_a_1 Int) - (speed.res.abs_0_a_1 Int) - (speed.res.abs_1_a_1 Bool) - (speed.res.abs_2_a_1 Bool) - (speed.res.abs_3_a_1 Int) - (speed.res.inst_0_a_1 Bool) - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.res.abs_2_a_1 false) - (= speed.res.abs_1_a_1 (or speed.usr.beacon_a_1 speed.usr.second_a_1)) - (= speed.res.abs_0_a_1 0) - (= - speed.impl.usr.incr_a_1 - (ite - (and speed.usr.beacon_a_1 (not speed.usr.second_a_1)) - 1 - (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) (- 1) 0))) - (let - ((X1 Int speed.res.abs_3_a_1)) - (and - (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) - (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) - (__node_trans_counter_0 - speed.res.abs_0_a_1 - speed.impl.usr.incr_a_1 - speed.res.abs_1_a_1 - speed.res.abs_2_a_1 - speed.res.abs_3_a_1 - speed.res.inst_0_a_1 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_1 0) - (<= (- 1) speed.impl.usr.incr_a_1 1) - (not speed.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.early_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Bool top.res.abs_0_a_0)) - (and - (= top.impl.usr.early_a_0 top.res.abs_1_a_0) - (__node_init_speed_0 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.beacon_a_1 Bool) - (top.usr.second_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.early_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Int) - (top.res.inst_0_a_1 Bool) - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.early_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (not (and X1 top.impl.usr.early_a_0))) - (= top.impl.usr.early_a_1 top.res.abs_1_a_1) - (__node_trans_speed_0 - top.usr.beacon_a_1 - top.usr.second_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.res.inst_0_a_1 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))) -) - - - -(synth-inv str_invariant( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.beacon Bool) -(declare-primed-var top.usr.second Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.early Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Int) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Bool top.res.abs_0)) - (and - (= top.impl.usr.early top.res.abs_1) - (__node_init_speed_0 - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.beacon! Bool) - (top.usr.second! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.early! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Int) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_0!)) - (and - (= top.usr.OK! (not (and X1 top.impl.usr.early))) - (= top.impl.usr.early! top.res.abs_1!) - (__node_trans_speed_0 - top.usr.beacon! - top.usr.second! - top.res.abs_0! - top.res.abs_1! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.res.inst_0! - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - (not top.res.init_flag!))) -) - -(define-fun - prop ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_counter_0 ((counter.usr.init_a_0 Int) (counter.usr.incr_a_0 Int) (counter.usr.x_a_0 Bool) (counter.usr.reset_a_0 Bool) (counter.usr.c_a_0 Int) (counter.res.init_flag_a_0 Bool)) Bool + (let ((X1 counter.usr.init_a_0)) (and (= counter.usr.c_a_0 (ite counter.usr.reset_a_0 counter.usr.init_a_0 (ite (and (and counter.usr.x_a_0 (> X1 (- 1000))) (< X1 1000)) (+ X1 counter.usr.incr_a_0) X1))) counter.res.init_flag_a_0))) +(define-fun __node_trans_counter_0 ((counter.usr.init_a_1 Int) (counter.usr.incr_a_1 Int) (counter.usr.x_a_1 Bool) (counter.usr.reset_a_1 Bool) (counter.usr.c_a_1 Int) (counter.res.init_flag_a_1 Bool) (counter.usr.init_a_0 Int) (counter.usr.incr_a_0 Int) (counter.usr.x_a_0 Bool) (counter.usr.reset_a_0 Bool) (counter.usr.c_a_0 Int) (counter.res.init_flag_a_0 Bool)) Bool + (let ((X1 counter.usr.c_a_0)) (and (= counter.usr.c_a_1 (ite counter.usr.reset_a_1 counter.usr.init_a_1 (ite (and (and counter.usr.x_a_1 (> X1 (- 1000))) (< X1 1000)) (+ X1 counter.usr.incr_a_1) X1))) (not counter.res.init_flag_a_1)))) +(define-fun __node_init_speed_0 ((speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.usr.late_a_0 false) (= speed.res.abs_2_a_0 false) (= speed.res.abs_1_a_0 (or speed.usr.beacon_a_0 speed.usr.second_a_0)) (= speed.res.abs_0_a_0 0) (= speed.impl.usr.incr_a_0 (ite (and speed.usr.beacon_a_0 (not speed.usr.second_a_0)) 1 (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) (- 1) 0))) (let ((X1 speed.res.abs_3_a_0)) (and (= speed.usr.early_a_0 false) (__node_init_counter_0 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_0 0) (<= (- 1) speed.impl.usr.incr_a_0 1) speed.res.init_flag_a_0)))) +(define-fun __node_trans_speed_0 ((speed.usr.beacon_a_1 Bool) (speed.usr.second_a_1 Bool) (speed.usr.late_a_1 Bool) (speed.usr.early_a_1 Bool) (speed.res.init_flag_a_1 Bool) (speed.impl.usr.incr_a_1 Int) (speed.res.abs_0_a_1 Int) (speed.res.abs_1_a_1 Bool) (speed.res.abs_2_a_1 Bool) (speed.res.abs_3_a_1 Int) (speed.res.inst_0_a_1 Bool) (speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.res.abs_2_a_1 false) (= speed.res.abs_1_a_1 (or speed.usr.beacon_a_1 speed.usr.second_a_1)) (= speed.res.abs_0_a_1 0) (= speed.impl.usr.incr_a_1 (ite (and speed.usr.beacon_a_1 (not speed.usr.second_a_1)) 1 (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) (- 1) 0))) (let ((X1 speed.res.abs_3_a_1)) (and (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) (__node_trans_counter_0 speed.res.abs_0_a_1 speed.impl.usr.incr_a_1 speed.res.abs_1_a_1 speed.res.abs_2_a_1 speed.res.abs_3_a_1 speed.res.inst_0_a_1 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_1 0) (<= (- 1) speed.impl.usr.incr_a_1 1) (not speed.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.early_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (and (= top.impl.usr.early_a_0 top.res.abs_1_a_0) (__node_init_speed_0 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.beacon_a_1 Bool) (top.usr.second_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.early_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Int) (top.res.inst_0_a_1 Bool) (top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.early_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (not (and X1 top.impl.usr.early_a_0))) (= top.impl.usr.early_a_1 top.res.abs_1_a_1) (__node_trans_speed_0 top.usr.beacon_a_1 top.usr.second_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.res.inst_0_a_1 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))) +(synth-inv str_invariant ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (and (= top.impl.usr.early top.res.abs_1) (__node_init_speed_0 top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool) (top.usr.beacon! Bool) (top.usr.second! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.early! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Int) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_0!)) (and (= top.usr.OK! (not (and X1 top.impl.usr.early))) (= top.impl.usr.early! top.res.abs_1!) (__node_trans_speed_0 top.usr.beacon! top.usr.second! top.res.abs_0! top.res.abs_1! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.res.inst_0! top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) (not top.res.init_flag!)))) +(define-fun prop ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/hysteresis_3.sl b/benchmarks/LIA/Lustre/hysteresis_3.sl index 7b7f7e8..3073e73 100644 --- a/benchmarks/LIA/Lustre/hysteresis_3.sl +++ b/benchmarks/LIA/Lustre/hysteresis_3.sl @@ -1,427 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_counter_0 ( - (counter.usr.init_a_0 Int) - (counter.usr.incr_a_0 Int) - (counter.usr.x_a_0 Bool) - (counter.usr.reset_a_0 Bool) - (counter.usr.c_a_0 Int) - (counter.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int counter.usr.init_a_0)) - (and - (= - counter.usr.c_a_0 - (ite - counter.usr.reset_a_0 - counter.usr.init_a_0 - (ite - (and (and counter.usr.x_a_0 (> X1 (- 1000))) (< X1 1000)) - (+ X1 counter.usr.incr_a_0) - X1))) - counter.res.init_flag_a_0)) -) - -(define-fun - __node_trans_counter_0 ( - (counter.usr.init_a_1 Int) - (counter.usr.incr_a_1 Int) - (counter.usr.x_a_1 Bool) - (counter.usr.reset_a_1 Bool) - (counter.usr.c_a_1 Int) - (counter.res.init_flag_a_1 Bool) - (counter.usr.init_a_0 Int) - (counter.usr.incr_a_0 Int) - (counter.usr.x_a_0 Bool) - (counter.usr.reset_a_0 Bool) - (counter.usr.c_a_0 Int) - (counter.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int counter.usr.c_a_0)) - (and - (= - counter.usr.c_a_1 - (ite - counter.usr.reset_a_1 - counter.usr.init_a_1 - (ite - (and (and counter.usr.x_a_1 (> X1 (- 1000))) (< X1 1000)) - (+ X1 counter.usr.incr_a_1) - X1))) - (not counter.res.init_flag_a_1))) -) - -(define-fun - __node_init_speed_0 ( - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.usr.late_a_0 false) - (= speed.res.abs_2_a_0 false) - (= speed.res.abs_1_a_0 (or speed.usr.beacon_a_0 speed.usr.second_a_0)) - (= speed.res.abs_0_a_0 0) - (= - speed.impl.usr.incr_a_0 - (ite - (and speed.usr.beacon_a_0 (not speed.usr.second_a_0)) - 1 - (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) (- 1) 0))) - (let - ((X1 Int speed.res.abs_3_a_0)) - (and - (= speed.usr.early_a_0 false) - (__node_init_counter_0 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_0 0) - (<= (- 1) speed.impl.usr.incr_a_0 1) - speed.res.init_flag_a_0))) -) - -(define-fun - __node_trans_speed_0 ( - (speed.usr.beacon_a_1 Bool) - (speed.usr.second_a_1 Bool) - (speed.usr.late_a_1 Bool) - (speed.usr.early_a_1 Bool) - (speed.res.init_flag_a_1 Bool) - (speed.impl.usr.incr_a_1 Int) - (speed.res.abs_0_a_1 Int) - (speed.res.abs_1_a_1 Bool) - (speed.res.abs_2_a_1 Bool) - (speed.res.abs_3_a_1 Int) - (speed.res.inst_0_a_1 Bool) - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.res.abs_2_a_1 false) - (= speed.res.abs_1_a_1 (or speed.usr.beacon_a_1 speed.usr.second_a_1)) - (= speed.res.abs_0_a_1 0) - (= - speed.impl.usr.incr_a_1 - (ite - (and speed.usr.beacon_a_1 (not speed.usr.second_a_1)) - 1 - (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) (- 1) 0))) - (let - ((X1 Int speed.res.abs_3_a_1)) - (and - (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) - (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) - (__node_trans_counter_0 - speed.res.abs_0_a_1 - speed.impl.usr.incr_a_1 - speed.res.abs_1_a_1 - speed.res.abs_2_a_1 - speed.res.abs_3_a_1 - speed.res.inst_0_a_1 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_1 0) - (<= (- 1) speed.impl.usr.incr_a_1 1) - (not speed.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.late_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= top.impl.usr.late_a_0 top.res.abs_0_a_0) - (let - ((X1 Bool top.res.abs_1_a_0)) - (and - (__node_init_speed_0 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.beacon_a_1 Bool) - (top.usr.second_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.late_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Int) - (top.res.inst_0_a_1 Bool) - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.late_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_1_a_1)) - (and - (= top.usr.OK_a_1 (not (and top.impl.usr.late_a_0 X1))) - (= top.impl.usr.late_a_1 top.res.abs_0_a_1) - (__node_trans_speed_0 - top.usr.beacon_a_1 - top.usr.second_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.res.inst_0_a_1 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))) -) - - - -(synth-inv str_invariant( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.late Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.beacon Bool) -(declare-primed-var top.usr.second Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.late Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Int) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.late Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.late top.res.abs_0) - (let - ((X1 Bool top.res.abs_1)) - (and - (__node_init_speed_0 - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.late Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.beacon! Bool) - (top.usr.second! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.late! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Int) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_1!)) - (and - (= top.usr.OK! (not (and top.impl.usr.late X1))) - (= top.impl.usr.late! top.res.abs_0!) - (__node_trans_speed_0 - top.usr.beacon! - top.usr.second! - top.res.abs_0! - top.res.abs_1! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.res.inst_0! - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - (not top.res.init_flag!))) -) - -(define-fun - prop ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.late Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_counter_0 ((counter.usr.init_a_0 Int) (counter.usr.incr_a_0 Int) (counter.usr.x_a_0 Bool) (counter.usr.reset_a_0 Bool) (counter.usr.c_a_0 Int) (counter.res.init_flag_a_0 Bool)) Bool + (let ((X1 counter.usr.init_a_0)) (and (= counter.usr.c_a_0 (ite counter.usr.reset_a_0 counter.usr.init_a_0 (ite (and (and counter.usr.x_a_0 (> X1 (- 1000))) (< X1 1000)) (+ X1 counter.usr.incr_a_0) X1))) counter.res.init_flag_a_0))) +(define-fun __node_trans_counter_0 ((counter.usr.init_a_1 Int) (counter.usr.incr_a_1 Int) (counter.usr.x_a_1 Bool) (counter.usr.reset_a_1 Bool) (counter.usr.c_a_1 Int) (counter.res.init_flag_a_1 Bool) (counter.usr.init_a_0 Int) (counter.usr.incr_a_0 Int) (counter.usr.x_a_0 Bool) (counter.usr.reset_a_0 Bool) (counter.usr.c_a_0 Int) (counter.res.init_flag_a_0 Bool)) Bool + (let ((X1 counter.usr.c_a_0)) (and (= counter.usr.c_a_1 (ite counter.usr.reset_a_1 counter.usr.init_a_1 (ite (and (and counter.usr.x_a_1 (> X1 (- 1000))) (< X1 1000)) (+ X1 counter.usr.incr_a_1) X1))) (not counter.res.init_flag_a_1)))) +(define-fun __node_init_speed_0 ((speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.usr.late_a_0 false) (= speed.res.abs_2_a_0 false) (= speed.res.abs_1_a_0 (or speed.usr.beacon_a_0 speed.usr.second_a_0)) (= speed.res.abs_0_a_0 0) (= speed.impl.usr.incr_a_0 (ite (and speed.usr.beacon_a_0 (not speed.usr.second_a_0)) 1 (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) (- 1) 0))) (let ((X1 speed.res.abs_3_a_0)) (and (= speed.usr.early_a_0 false) (__node_init_counter_0 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_0 0) (<= (- 1) speed.impl.usr.incr_a_0 1) speed.res.init_flag_a_0)))) +(define-fun __node_trans_speed_0 ((speed.usr.beacon_a_1 Bool) (speed.usr.second_a_1 Bool) (speed.usr.late_a_1 Bool) (speed.usr.early_a_1 Bool) (speed.res.init_flag_a_1 Bool) (speed.impl.usr.incr_a_1 Int) (speed.res.abs_0_a_1 Int) (speed.res.abs_1_a_1 Bool) (speed.res.abs_2_a_1 Bool) (speed.res.abs_3_a_1 Int) (speed.res.inst_0_a_1 Bool) (speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.res.abs_2_a_1 false) (= speed.res.abs_1_a_1 (or speed.usr.beacon_a_1 speed.usr.second_a_1)) (= speed.res.abs_0_a_1 0) (= speed.impl.usr.incr_a_1 (ite (and speed.usr.beacon_a_1 (not speed.usr.second_a_1)) 1 (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) (- 1) 0))) (let ((X1 speed.res.abs_3_a_1)) (and (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) (__node_trans_counter_0 speed.res.abs_0_a_1 speed.impl.usr.incr_a_1 speed.res.abs_1_a_1 speed.res.abs_2_a_1 speed.res.abs_3_a_1 speed.res.inst_0_a_1 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_1 0) (<= (- 1) speed.impl.usr.incr_a_1 1) (not speed.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.late_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.late_a_0 top.res.abs_0_a_0) (let ((X1 top.res.abs_1_a_0)) (and (__node_init_speed_0 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.beacon_a_1 Bool) (top.usr.second_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.late_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Int) (top.res.inst_0_a_1 Bool) (top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.late_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (not (and top.impl.usr.late_a_0 X1))) (= top.impl.usr.late_a_1 top.res.abs_0_a_1) (__node_trans_speed_0 top.usr.beacon_a_1 top.usr.second_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.res.inst_0_a_1 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))) +(synth-inv str_invariant ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.late Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.late Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.late top.res.abs_0) (let ((X1 top.res.abs_1)) (and (__node_init_speed_0 top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.late Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool) (top.usr.beacon! Bool) (top.usr.second! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.late! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Int) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_1!)) (and (= top.usr.OK! (not (and top.impl.usr.late X1))) (= top.impl.usr.late! top.res.abs_0!) (__node_trans_speed_0 top.usr.beacon! top.usr.second! top.res.abs_0! top.res.abs_1! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.res.inst_0! top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) (not top.res.init_flag!)))) +(define-fun prop ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.late Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/hysteresis_all.sl b/benchmarks/LIA/Lustre/hysteresis_all.sl index 279a8f8..bc4a932 100644 --- a/benchmarks/LIA/Lustre/hysteresis_all.sl +++ b/benchmarks/LIA/Lustre/hysteresis_all.sl @@ -1,442 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_counter_0 ( - (counter.usr.init_a_0 Int) - (counter.usr.incr_a_0 Int) - (counter.usr.x_a_0 Bool) - (counter.usr.reset_a_0 Bool) - (counter.usr.c_a_0 Int) - (counter.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int counter.usr.init_a_0)) - (and - (= - counter.usr.c_a_0 - (ite - counter.usr.reset_a_0 - counter.usr.init_a_0 - (ite - (and (and counter.usr.x_a_0 (> X1 (- 1000))) (< X1 1000)) - (+ X1 counter.usr.incr_a_0) - X1))) - counter.res.init_flag_a_0)) -) - -(define-fun - __node_trans_counter_0 ( - (counter.usr.init_a_1 Int) - (counter.usr.incr_a_1 Int) - (counter.usr.x_a_1 Bool) - (counter.usr.reset_a_1 Bool) - (counter.usr.c_a_1 Int) - (counter.res.init_flag_a_1 Bool) - (counter.usr.init_a_0 Int) - (counter.usr.incr_a_0 Int) - (counter.usr.x_a_0 Bool) - (counter.usr.reset_a_0 Bool) - (counter.usr.c_a_0 Int) - (counter.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int counter.usr.c_a_0)) - (and - (= - counter.usr.c_a_1 - (ite - counter.usr.reset_a_1 - counter.usr.init_a_1 - (ite - (and (and counter.usr.x_a_1 (> X1 (- 1000))) (< X1 1000)) - (+ X1 counter.usr.incr_a_1) - X1))) - (not counter.res.init_flag_a_1))) -) - -(define-fun - __node_init_speed_0 ( - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.usr.late_a_0 false) - (= speed.res.abs_2_a_0 false) - (= speed.res.abs_1_a_0 (or speed.usr.beacon_a_0 speed.usr.second_a_0)) - (= speed.res.abs_0_a_0 0) - (= - speed.impl.usr.incr_a_0 - (ite - (and speed.usr.beacon_a_0 (not speed.usr.second_a_0)) - 1 - (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) (- 1) 0))) - (let - ((X1 Int speed.res.abs_3_a_0)) - (and - (= speed.usr.early_a_0 false) - (__node_init_counter_0 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_0 0) - (<= (- 1) speed.impl.usr.incr_a_0 1) - speed.res.init_flag_a_0))) -) - -(define-fun - __node_trans_speed_0 ( - (speed.usr.beacon_a_1 Bool) - (speed.usr.second_a_1 Bool) - (speed.usr.late_a_1 Bool) - (speed.usr.early_a_1 Bool) - (speed.res.init_flag_a_1 Bool) - (speed.impl.usr.incr_a_1 Int) - (speed.res.abs_0_a_1 Int) - (speed.res.abs_1_a_1 Bool) - (speed.res.abs_2_a_1 Bool) - (speed.res.abs_3_a_1 Int) - (speed.res.inst_0_a_1 Bool) - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.res.abs_2_a_1 false) - (= speed.res.abs_1_a_1 (or speed.usr.beacon_a_1 speed.usr.second_a_1)) - (= speed.res.abs_0_a_1 0) - (= - speed.impl.usr.incr_a_1 - (ite - (and speed.usr.beacon_a_1 (not speed.usr.second_a_1)) - 1 - (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) (- 1) 0))) - (let - ((X1 Int speed.res.abs_3_a_1)) - (and - (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) - (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) - (__node_trans_counter_0 - speed.res.abs_0_a_1 - speed.impl.usr.incr_a_1 - speed.res.abs_1_a_1 - speed.res.abs_2_a_1 - speed.res.abs_3_a_1 - speed.res.inst_0_a_1 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_1 0) - (<= (- 1) speed.impl.usr.incr_a_1 1) - (not speed.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.late_a_0 Bool) - (top.impl.usr.early_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.early_a_0 top.res.abs_1_a_0) - (= top.impl.usr.late_a_0 top.res.abs_0_a_0) - (= top.usr.OK_a_0 (not (and top.impl.usr.late_a_0 top.impl.usr.early_a_0))) - (__node_init_speed_0 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.beacon_a_1 Bool) - (top.usr.second_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.late_a_1 Bool) - (top.impl.usr.early_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Int) - (top.res.inst_0_a_1 Bool) - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.late_a_0 Bool) - (top.impl.usr.early_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.early_a_1 top.res.abs_1_a_1) - (= top.impl.usr.late_a_1 top.res.abs_0_a_1) - (= - top.usr.OK_a_1 - (and - (and - (not (and top.impl.usr.late_a_1 top.impl.usr.early_a_1)) - (not (and top.impl.usr.late_a_1 top.impl.usr.early_a_0))) - (not (and top.impl.usr.late_a_0 top.impl.usr.early_a_1)))) - (__node_trans_speed_0 - top.usr.beacon_a_1 - top.usr.second_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.res.inst_0_a_1 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)) -) - - - -(synth-inv str_invariant( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.late Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.beacon Bool) -(declare-primed-var top.usr.second Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.late Bool) -(declare-primed-var top.impl.usr.early Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Int) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.late Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.impl.usr.early top.res.abs_1) - (= top.impl.usr.late top.res.abs_0) - (= top.usr.OK (not (and top.impl.usr.late top.impl.usr.early))) - (__node_init_speed_0 - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - top.res.init_flag) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.late Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.beacon! Bool) - (top.usr.second! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.late! Bool) - (top.impl.usr.early! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Int) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.impl.usr.early! top.res.abs_1!) - (= top.impl.usr.late! top.res.abs_0!) - (= - top.usr.OK! - (and - (and - (not (and top.impl.usr.late! top.impl.usr.early!)) - (not (and top.impl.usr.late! top.impl.usr.early))) - (not (and top.impl.usr.late top.impl.usr.early!)))) - (__node_trans_speed_0 - top.usr.beacon! - top.usr.second! - top.res.abs_0! - top.res.abs_1! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.res.inst_0! - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - (not top.res.init_flag!)) -) - -(define-fun - prop ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.late Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_counter_0 ((counter.usr.init_a_0 Int) (counter.usr.incr_a_0 Int) (counter.usr.x_a_0 Bool) (counter.usr.reset_a_0 Bool) (counter.usr.c_a_0 Int) (counter.res.init_flag_a_0 Bool)) Bool + (let ((X1 counter.usr.init_a_0)) (and (= counter.usr.c_a_0 (ite counter.usr.reset_a_0 counter.usr.init_a_0 (ite (and (and counter.usr.x_a_0 (> X1 (- 1000))) (< X1 1000)) (+ X1 counter.usr.incr_a_0) X1))) counter.res.init_flag_a_0))) +(define-fun __node_trans_counter_0 ((counter.usr.init_a_1 Int) (counter.usr.incr_a_1 Int) (counter.usr.x_a_1 Bool) (counter.usr.reset_a_1 Bool) (counter.usr.c_a_1 Int) (counter.res.init_flag_a_1 Bool) (counter.usr.init_a_0 Int) (counter.usr.incr_a_0 Int) (counter.usr.x_a_0 Bool) (counter.usr.reset_a_0 Bool) (counter.usr.c_a_0 Int) (counter.res.init_flag_a_0 Bool)) Bool + (let ((X1 counter.usr.c_a_0)) (and (= counter.usr.c_a_1 (ite counter.usr.reset_a_1 counter.usr.init_a_1 (ite (and (and counter.usr.x_a_1 (> X1 (- 1000))) (< X1 1000)) (+ X1 counter.usr.incr_a_1) X1))) (not counter.res.init_flag_a_1)))) +(define-fun __node_init_speed_0 ((speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.usr.late_a_0 false) (= speed.res.abs_2_a_0 false) (= speed.res.abs_1_a_0 (or speed.usr.beacon_a_0 speed.usr.second_a_0)) (= speed.res.abs_0_a_0 0) (= speed.impl.usr.incr_a_0 (ite (and speed.usr.beacon_a_0 (not speed.usr.second_a_0)) 1 (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) (- 1) 0))) (let ((X1 speed.res.abs_3_a_0)) (and (= speed.usr.early_a_0 false) (__node_init_counter_0 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_0 0) (<= (- 1) speed.impl.usr.incr_a_0 1) speed.res.init_flag_a_0)))) +(define-fun __node_trans_speed_0 ((speed.usr.beacon_a_1 Bool) (speed.usr.second_a_1 Bool) (speed.usr.late_a_1 Bool) (speed.usr.early_a_1 Bool) (speed.res.init_flag_a_1 Bool) (speed.impl.usr.incr_a_1 Int) (speed.res.abs_0_a_1 Int) (speed.res.abs_1_a_1 Bool) (speed.res.abs_2_a_1 Bool) (speed.res.abs_3_a_1 Int) (speed.res.inst_0_a_1 Bool) (speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.res.abs_2_a_1 false) (= speed.res.abs_1_a_1 (or speed.usr.beacon_a_1 speed.usr.second_a_1)) (= speed.res.abs_0_a_1 0) (= speed.impl.usr.incr_a_1 (ite (and speed.usr.beacon_a_1 (not speed.usr.second_a_1)) 1 (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) (- 1) 0))) (let ((X1 speed.res.abs_3_a_1)) (and (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) (__node_trans_counter_0 speed.res.abs_0_a_1 speed.impl.usr.incr_a_1 speed.res.abs_1_a_1 speed.res.abs_2_a_1 speed.res.abs_3_a_1 speed.res.inst_0_a_1 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_1 0) (<= (- 1) speed.impl.usr.incr_a_1 1) (not speed.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.late_a_0 Bool) (top.impl.usr.early_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.early_a_0 top.res.abs_1_a_0) (= top.impl.usr.late_a_0 top.res.abs_0_a_0) (= top.usr.OK_a_0 (not (and top.impl.usr.late_a_0 top.impl.usr.early_a_0))) (__node_init_speed_0 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)) +(define-fun __node_trans_top_0 ((top.usr.beacon_a_1 Bool) (top.usr.second_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.late_a_1 Bool) (top.impl.usr.early_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Int) (top.res.inst_0_a_1 Bool) (top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.late_a_0 Bool) (top.impl.usr.early_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.early_a_1 top.res.abs_1_a_1) (= top.impl.usr.late_a_1 top.res.abs_0_a_1) (= top.usr.OK_a_1 (and (and (not (and top.impl.usr.late_a_1 top.impl.usr.early_a_1)) (not (and top.impl.usr.late_a_1 top.impl.usr.early_a_0))) (not (and top.impl.usr.late_a_0 top.impl.usr.early_a_1)))) (__node_trans_speed_0 top.usr.beacon_a_1 top.usr.second_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.res.inst_0_a_1 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))) +(synth-inv str_invariant ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.late Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.late Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.early top.res.abs_1) (= top.impl.usr.late top.res.abs_0) (= top.usr.OK (not (and top.impl.usr.late top.impl.usr.early))) (__node_init_speed_0 top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) top.res.init_flag)) +(define-fun trans ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.late Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool) (top.usr.beacon! Bool) (top.usr.second! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.late! Bool) (top.impl.usr.early! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Int) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.early! top.res.abs_1!) (= top.impl.usr.late! top.res.abs_0!) (= top.usr.OK! (and (and (not (and top.impl.usr.late! top.impl.usr.early!)) (not (and top.impl.usr.late! top.impl.usr.early))) (not (and top.impl.usr.late top.impl.usr.early!)))) (__node_trans_speed_0 top.usr.beacon! top.usr.second! top.res.abs_0! top.res.abs_1! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.res.inst_0! top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) (not top.res.init_flag!))) +(define-fun prop ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.late Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/metros_1.sl b/benchmarks/LIA/Lustre/metros_1.sl index 4907482..381b5a5 100644 --- a/benchmarks/LIA/Lustre/metros_1.sl +++ b/benchmarks/LIA/Lustre/metros_1.sl @@ -1,997 +1,35 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_controleur_0 ( - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) - (= controleur.usr.avance_a_0 false) - (= controleur.usr.retard_a_0 false) - controleur.res.init_flag_a_0) -) - -(define-fun - __node_trans_controleur_0 ( - (controleur.usr.nB_a_1 Int) - (controleur.usr.nS_a_1 Int) - (controleur.usr.diff_a_1 Int) - (controleur.usr.avance_a_1 Bool) - (controleur.usr.retard_a_1 Bool) - (controleur.res.init_flag_a_1 Bool) - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) - (= - controleur.usr.avance_a_1 - (ite - (not controleur.usr.avance_a_0) - (>= controleur.usr.diff_a_1 10) - (> controleur.usr.diff_a_1 0))) - (= - controleur.usr.retard_a_1 - (ite - (not controleur.usr.retard_a_0) - (<= controleur.usr.diff_a_1 (- 10)) - (< controleur.usr.diff_a_1 0))) - (not controleur.res.init_flag_a_1)) -) - -(define-fun - __node_init_hypothese_0 ( - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= hypothese.usr.ok_a_0 true) - (= hypothese.impl.usr.c_a_0 0) - hypothese.res.init_flag_a_0) -) - -(define-fun - __node_trans_hypothese_0 ( - (hypothese.usr.B_a_1 Bool) - (hypothese.usr.S_a_1 Bool) - (hypothese.usr.avance_a_1 Bool) - (hypothese.usr.retard_a_1 Bool) - (hypothese.usr.ok_a_1 Bool) - (hypothese.res.init_flag_a_1 Bool) - (hypothese.impl.usr.c_a_1 Int) - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= - hypothese.usr.ok_a_1 - (and - (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) - (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) - (= - hypothese.impl.usr.c_a_1 - (ite - (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) - (ite - hypothese.usr.B_a_1 - (+ hypothese.impl.usr.c_a_0 1) - hypothese.impl.usr.c_a_0) - 0)) - (not hypothese.res.init_flag_a_1)) -) - -(define-fun - __node_init_main_0 ( - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_0)) - (let - ((X2 Bool main.res.abs_0_a_0)) - (and - (= main.usr.ast_a_0 (and X2 X1)) - (= main.usr.avance0_a_0 main.res.abs_3_a_0) - (= main.usr.nB0_a_0 0) - (= main.usr.nS_a_0 0) - (= main.usr.retard0_a_0 main.res.abs_4_a_0) - (= main.usr.avance1_a_0 main.res.abs_6_a_0) - (= main.usr.nB1_a_0 0) - (= main.usr.retard1_a_0 main.res.abs_7_a_0) - (= main.usr.diff0_a_0 main.res.abs_2_a_0) - (= main.usr.diff1_a_0 main.res.abs_5_a_0) - (__node_init_hypothese_0 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_init_controleur_0 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_init_hypothese_0 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_init_controleur_0 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - main.res.init_flag_a_0))) -) - -(define-fun - __node_trans_main_0 ( - (main.usr.B0_a_1 Bool) - (main.usr.B1_a_1 Bool) - (main.usr.S_a_1 Bool) - (main.usr.ast_a_1 Bool) - (main.usr.nB0_a_1 Int) - (main.usr.nB1_a_1 Int) - (main.usr.nS_a_1 Int) - (main.usr.diff0_a_1 Int) - (main.usr.diff1_a_1 Int) - (main.usr.avance0_a_1 Bool) - (main.usr.avance1_a_1 Bool) - (main.usr.retard0_a_1 Bool) - (main.usr.retard1_a_1 Bool) - (main.res.init_flag_a_1 Bool) - (main.res.abs_0_a_1 Bool) - (main.res.abs_1_a_1 Bool) - (main.res.abs_2_a_1 Int) - (main.res.abs_3_a_1 Bool) - (main.res.abs_4_a_1 Bool) - (main.res.abs_5_a_1 Int) - (main.res.abs_6_a_1 Bool) - (main.res.abs_7_a_1 Bool) - (main.res.inst_5_a_1 Bool) - (main.res.inst_4_a_1 Int) - (main.res.inst_3_a_1 Bool) - (main.res.inst_2_a_1 Bool) - (main.res.inst_1_a_1 Int) - (main.res.inst_0_a_1 Bool) - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_1)) - (let - ((X2 Bool main.res.abs_0_a_1)) - (and - (= main.usr.ast_a_1 (and X2 X1)) - (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) - (= - main.usr.nB0_a_1 - (ite main.usr.B0_a_1 (+ main.usr.nB0_a_0 1) main.usr.nB0_a_0)) - (= main.usr.avance0_a_1 main.res.abs_3_a_1) - (= main.usr.retard0_a_1 main.res.abs_4_a_1) - (= - main.usr.nB1_a_1 - (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) - (= main.usr.avance1_a_1 main.res.abs_6_a_1) - (= main.usr.retard1_a_1 main.res.abs_7_a_1) - (= main.usr.diff0_a_1 main.res.abs_2_a_1) - (= main.usr.diff1_a_1 main.res.abs_5_a_1) - (__node_trans_hypothese_0 - main.usr.B0_a_1 - main.usr.S_a_1 - main.usr.avance0_a_1 - main.usr.retard0_a_1 - main.res.abs_0_a_1 - main.res.inst_5_a_1 - main.res.inst_4_a_1 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_trans_controleur_0 - main.usr.nB0_a_1 - main.usr.nS_a_1 - main.res.abs_2_a_1 - main.res.abs_3_a_1 - main.res.abs_4_a_1 - main.res.inst_3_a_1 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_trans_hypothese_0 - main.usr.B1_a_1 - main.usr.S_a_1 - main.usr.avance1_a_1 - main.usr.retard1_a_1 - main.res.abs_1_a_1 - main.res.inst_2_a_1 - main.res.inst_1_a_1 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_trans_controleur_0 - main.usr.nB1_a_1 - main.usr.nS_a_1 - main.res.abs_5_a_1 - main.res.abs_6_a_1 - main.res.abs_7_a_1 - main.res.inst_0_a_1 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - (not main.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.avance0_a_0 Bool) - (top.impl.usr.retard0_a_0 Bool) - (top.impl.usr.pOK_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= top.impl.usr.pOK_a_0 true) - (= top.impl.usr.avance0_a_0 top.res.abs_6_a_0) - (= top.impl.usr.retard0_a_0 top.res.abs_8_a_0) - (let - ((X1 Bool top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (let - ((X3 Int top.res.abs_3_a_0)) - (let - ((X4 Int top.res.abs_2_a_0)) - (let - ((X5 Int top.res.abs_1_a_0)) - (and - (= - top.res.abs_10_a_0 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (__node_init_main_0 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.B0_a_1 Bool) - (top.usr.B1_a_1 Bool) - (top.usr.S_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.avance0_a_1 Bool) - (top.impl.usr.retard0_a_1 Bool) - (top.impl.usr.pOK_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Int) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Int) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.avance0_a_0 Bool) - (top.impl.usr.retard0_a_0 Bool) - (top.impl.usr.pOK_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_0_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (and - (= - top.res.abs_10_a_1 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (= top.usr.OK_a_1 (=> top.res.abs_11_a_1 top.impl.usr.pOK_a_0)) - (= top.impl.usr.retard0_a_1 top.res.abs_8_a_1) - (= top.impl.usr.avance0_a_1 top.res.abs_6_a_1) - (= - top.impl.usr.pOK_a_1 - (not - (or - (and top.impl.usr.avance0_a_0 top.impl.usr.retard0_a_1) - (and top.impl.usr.retard0_a_0 top.impl.usr.avance0_a_1)))) - (__node_trans_main_0 - top.usr.B0_a_1 - top.usr.B1_a_1 - top.usr.S_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_0_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.B0 Bool) -(declare-primed-var top.usr.B1 Bool) -(declare-primed-var top.usr.S Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.avance0 Bool) -(declare-primed-var top.impl.usr.retard0 Bool) -(declare-primed-var top.impl.usr.pOK Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Int) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Int) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.pOK true) - (= top.impl.usr.avance0 top.res.abs_6) - (= top.impl.usr.retard0 top.res.abs_8) - (let - ((X1 Bool top.res.abs_0)) - (let - ((X2 Int top.res.abs_4)) - (let - ((X3 Int top.res.abs_3)) - (let - ((X4 Int top.res.abs_2)) - (let - ((X5 Int top.res.abs_1)) - (and - (= - top.res.abs_10 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (__node_init_main_0 - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.B0! Bool) - (top.usr.B1! Bool) - (top.usr.S! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.avance0! Bool) - (top.impl.usr.retard0! Bool) - (top.impl.usr.pOK! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Int) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Int) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_0!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (and - (= - top.res.abs_10! - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (= top.usr.OK! (=> top.res.abs_11! top.impl.usr.pOK)) - (= top.impl.usr.retard0! top.res.abs_8!) - (= top.impl.usr.avance0! top.res.abs_6!) - (= - top.impl.usr.pOK! - (not - (or - (and top.impl.usr.avance0 top.impl.usr.retard0!) - (and top.impl.usr.retard0 top.impl.usr.avance0!)))) - (__node_trans_main_0 - top.usr.B0! - top.usr.B1! - top.usr.S! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_0! - top.res.abs_10 - top.res.abs_11 - top.res.inst_0) - (not top.res.init_flag!))))))) -) - -(define-fun - prop ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_controleur_0 ((controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) (= controleur.usr.avance_a_0 false) (= controleur.usr.retard_a_0 false) controleur.res.init_flag_a_0)) +(define-fun __node_trans_controleur_0 ((controleur.usr.nB_a_1 Int) (controleur.usr.nS_a_1 Int) (controleur.usr.diff_a_1 Int) (controleur.usr.avance_a_1 Bool) (controleur.usr.retard_a_1 Bool) (controleur.res.init_flag_a_1 Bool) (controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) (= controleur.usr.avance_a_1 (ite (not controleur.usr.avance_a_0) (>= controleur.usr.diff_a_1 10) (> controleur.usr.diff_a_1 0))) (= controleur.usr.retard_a_1 (ite (not controleur.usr.retard_a_0) (<= controleur.usr.diff_a_1 (- 10)) (< controleur.usr.diff_a_1 0))) (not controleur.res.init_flag_a_1))) +(define-fun __node_init_hypothese_0 ((hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_0 true) (= hypothese.impl.usr.c_a_0 0) hypothese.res.init_flag_a_0)) +(define-fun __node_trans_hypothese_0 ((hypothese.usr.B_a_1 Bool) (hypothese.usr.S_a_1 Bool) (hypothese.usr.avance_a_1 Bool) (hypothese.usr.retard_a_1 Bool) (hypothese.usr.ok_a_1 Bool) (hypothese.res.init_flag_a_1 Bool) (hypothese.impl.usr.c_a_1 Int) (hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_1 (and (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) (= hypothese.impl.usr.c_a_1 (ite (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) (ite hypothese.usr.B_a_1 (+ hypothese.impl.usr.c_a_0 1) hypothese.impl.usr.c_a_0) 0)) (not hypothese.res.init_flag_a_1))) +(define-fun __node_init_main_0 ((main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_0)) (let ((X2 main.res.abs_0_a_0)) (and (= main.usr.ast_a_0 (and X2 X1)) (= main.usr.avance0_a_0 main.res.abs_3_a_0) (= main.usr.nB0_a_0 0) (= main.usr.nS_a_0 0) (= main.usr.retard0_a_0 main.res.abs_4_a_0) (= main.usr.avance1_a_0 main.res.abs_6_a_0) (= main.usr.nB1_a_0 0) (= main.usr.retard1_a_0 main.res.abs_7_a_0) (= main.usr.diff0_a_0 main.res.abs_2_a_0) (= main.usr.diff1_a_0 main.res.abs_5_a_0) (__node_init_hypothese_0 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_init_controleur_0 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_init_hypothese_0 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_init_controleur_0 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) main.res.init_flag_a_0)))) +(define-fun __node_trans_main_0 ((main.usr.B0_a_1 Bool) (main.usr.B1_a_1 Bool) (main.usr.S_a_1 Bool) (main.usr.ast_a_1 Bool) (main.usr.nB0_a_1 Int) (main.usr.nB1_a_1 Int) (main.usr.nS_a_1 Int) (main.usr.diff0_a_1 Int) (main.usr.diff1_a_1 Int) (main.usr.avance0_a_1 Bool) (main.usr.avance1_a_1 Bool) (main.usr.retard0_a_1 Bool) (main.usr.retard1_a_1 Bool) (main.res.init_flag_a_1 Bool) (main.res.abs_0_a_1 Bool) (main.res.abs_1_a_1 Bool) (main.res.abs_2_a_1 Int) (main.res.abs_3_a_1 Bool) (main.res.abs_4_a_1 Bool) (main.res.abs_5_a_1 Int) (main.res.abs_6_a_1 Bool) (main.res.abs_7_a_1 Bool) (main.res.inst_5_a_1 Bool) (main.res.inst_4_a_1 Int) (main.res.inst_3_a_1 Bool) (main.res.inst_2_a_1 Bool) (main.res.inst_1_a_1 Int) (main.res.inst_0_a_1 Bool) (main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_1)) (let ((X2 main.res.abs_0_a_1)) (and (= main.usr.ast_a_1 (and X2 X1)) (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) (= main.usr.nB0_a_1 (ite main.usr.B0_a_1 (+ main.usr.nB0_a_0 1) main.usr.nB0_a_0)) (= main.usr.avance0_a_1 main.res.abs_3_a_1) (= main.usr.retard0_a_1 main.res.abs_4_a_1) (= main.usr.nB1_a_1 (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) (= main.usr.avance1_a_1 main.res.abs_6_a_1) (= main.usr.retard1_a_1 main.res.abs_7_a_1) (= main.usr.diff0_a_1 main.res.abs_2_a_1) (= main.usr.diff1_a_1 main.res.abs_5_a_1) (__node_trans_hypothese_0 main.usr.B0_a_1 main.usr.S_a_1 main.usr.avance0_a_1 main.usr.retard0_a_1 main.res.abs_0_a_1 main.res.inst_5_a_1 main.res.inst_4_a_1 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_trans_controleur_0 main.usr.nB0_a_1 main.usr.nS_a_1 main.res.abs_2_a_1 main.res.abs_3_a_1 main.res.abs_4_a_1 main.res.inst_3_a_1 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_trans_hypothese_0 main.usr.B1_a_1 main.usr.S_a_1 main.usr.avance1_a_1 main.usr.retard1_a_1 main.res.abs_1_a_1 main.res.inst_2_a_1 main.res.inst_1_a_1 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_trans_controleur_0 main.usr.nB1_a_1 main.usr.nS_a_1 main.res.abs_5_a_1 main.res.abs_6_a_1 main.res.abs_7_a_1 main.res.inst_0_a_1 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) (not main.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.avance0_a_0 Bool) (top.impl.usr.retard0_a_0 Bool) (top.impl.usr.pOK_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.pOK_a_0 true) (= top.impl.usr.avance0_a_0 top.res.abs_6_a_0) (= top.impl.usr.retard0_a_0 top.res.abs_8_a_0) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_4_a_0)) (let ((X3 top.res.abs_3_a_0)) (let ((X4 top.res.abs_2_a_0)) (let ((X5 top.res.abs_1_a_0)) (and (= top.res.abs_10_a_0 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (__node_init_main_0 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.B0_a_1 Bool) (top.usr.B1_a_1 Bool) (top.usr.S_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.avance0_a_1 Bool) (top.impl.usr.retard0_a_1 Bool) (top.impl.usr.pOK_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Int) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Int) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.avance0_a_0 Bool) (top.impl.usr.retard0_a_0 Bool) (top.impl.usr.pOK_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (and (= top.res.abs_10_a_1 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (= top.usr.OK_a_1 (=> top.res.abs_11_a_1 top.impl.usr.pOK_a_0)) (= top.impl.usr.retard0_a_1 top.res.abs_8_a_1) (= top.impl.usr.avance0_a_1 top.res.abs_6_a_1) (= top.impl.usr.pOK_a_1 (not (or (and top.impl.usr.avance0_a_0 top.impl.usr.retard0_a_1) (and top.impl.usr.retard0_a_0 top.impl.usr.avance0_a_1)))) (__node_trans_main_0 top.usr.B0_a_1 top.usr.B1_a_1 top.usr.S_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_0_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.pOK true) (= top.impl.usr.avance0 top.res.abs_6) (= top.impl.usr.retard0 top.res.abs_8) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_4)) (let ((X3 top.res.abs_3)) (let ((X4 top.res.abs_2)) (let ((X5 top.res.abs_1)) (and (= top.res.abs_10 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (__node_init_main_0 top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.B0! Bool) (top.usr.B1! Bool) (top.usr.S! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.avance0! Bool) (top.impl.usr.retard0! Bool) (top.impl.usr.pOK! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Int) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Int) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_0!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (and (= top.res.abs_10! (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (= top.usr.OK! (=> top.res.abs_11! top.impl.usr.pOK)) (= top.impl.usr.retard0! top.res.abs_8!) (= top.impl.usr.avance0! top.res.abs_6!) (= top.impl.usr.pOK! (not (or (and top.impl.usr.avance0 top.impl.usr.retard0!) (and top.impl.usr.retard0 top.impl.usr.avance0!)))) (__node_trans_main_0 top.usr.B0! top.usr.B1! top.usr.S! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_0! top.res.abs_10 top.res.abs_11 top.res.inst_0) (not top.res.init_flag!)))))))) +(define-fun prop ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/metros_1_e1_846_e1_1317.sl b/benchmarks/LIA/Lustre/metros_1_e1_846_e1_1317.sl index 0c7d058..b2508db 100644 --- a/benchmarks/LIA/Lustre/metros_1_e1_846_e1_1317.sl +++ b/benchmarks/LIA/Lustre/metros_1_e1_846_e1_1317.sl @@ -1,997 +1,35 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_controleur_0 ( - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) - (= controleur.usr.avance_a_0 false) - (= controleur.usr.retard_a_0 false) - controleur.res.init_flag_a_0) -) - -(define-fun - __node_trans_controleur_0 ( - (controleur.usr.nB_a_1 Int) - (controleur.usr.nS_a_1 Int) - (controleur.usr.diff_a_1 Int) - (controleur.usr.avance_a_1 Bool) - (controleur.usr.retard_a_1 Bool) - (controleur.res.init_flag_a_1 Bool) - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) - (= - controleur.usr.avance_a_1 - (ite - (not controleur.usr.avance_a_0) - (>= controleur.usr.diff_a_1 10) - (> controleur.usr.diff_a_1 0))) - (= - controleur.usr.retard_a_1 - (ite - (not controleur.usr.retard_a_0) - (<= controleur.usr.diff_a_1 (- 10)) - (< controleur.usr.diff_a_1 0))) - (not controleur.res.init_flag_a_1)) -) - -(define-fun - __node_init_hypothese_0 ( - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= hypothese.usr.ok_a_0 true) - (= hypothese.impl.usr.c_a_0 0) - hypothese.res.init_flag_a_0) -) - -(define-fun - __node_trans_hypothese_0 ( - (hypothese.usr.B_a_1 Bool) - (hypothese.usr.S_a_1 Bool) - (hypothese.usr.avance_a_1 Bool) - (hypothese.usr.retard_a_1 Bool) - (hypothese.usr.ok_a_1 Bool) - (hypothese.res.init_flag_a_1 Bool) - (hypothese.impl.usr.c_a_1 Int) - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= - hypothese.usr.ok_a_1 - (and - (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) - (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) - (= - hypothese.impl.usr.c_a_1 - (ite - (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) - (ite - hypothese.usr.B_a_1 - (+ (+ hypothese.impl.usr.c_a_0 1) 1) - hypothese.impl.usr.c_a_0) - 0)) - (not hypothese.res.init_flag_a_1)) -) - -(define-fun - __node_init_main_0 ( - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_0)) - (let - ((X2 Bool main.res.abs_0_a_0)) - (and - (= main.usr.ast_a_0 (and X2 X1)) - (= main.usr.avance0_a_0 main.res.abs_3_a_0) - (= main.usr.nB0_a_0 0) - (= main.usr.nS_a_0 0) - (= main.usr.retard0_a_0 main.res.abs_4_a_0) - (= main.usr.avance1_a_0 main.res.abs_6_a_0) - (= main.usr.nB1_a_0 0) - (= main.usr.retard1_a_0 main.res.abs_7_a_0) - (= main.usr.diff0_a_0 main.res.abs_2_a_0) - (= main.usr.diff1_a_0 main.res.abs_5_a_0) - (__node_init_hypothese_0 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_init_controleur_0 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_init_hypothese_0 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_init_controleur_0 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - main.res.init_flag_a_0))) -) - -(define-fun - __node_trans_main_0 ( - (main.usr.B0_a_1 Bool) - (main.usr.B1_a_1 Bool) - (main.usr.S_a_1 Bool) - (main.usr.ast_a_1 Bool) - (main.usr.nB0_a_1 Int) - (main.usr.nB1_a_1 Int) - (main.usr.nS_a_1 Int) - (main.usr.diff0_a_1 Int) - (main.usr.diff1_a_1 Int) - (main.usr.avance0_a_1 Bool) - (main.usr.avance1_a_1 Bool) - (main.usr.retard0_a_1 Bool) - (main.usr.retard1_a_1 Bool) - (main.res.init_flag_a_1 Bool) - (main.res.abs_0_a_1 Bool) - (main.res.abs_1_a_1 Bool) - (main.res.abs_2_a_1 Int) - (main.res.abs_3_a_1 Bool) - (main.res.abs_4_a_1 Bool) - (main.res.abs_5_a_1 Int) - (main.res.abs_6_a_1 Bool) - (main.res.abs_7_a_1 Bool) - (main.res.inst_5_a_1 Bool) - (main.res.inst_4_a_1 Int) - (main.res.inst_3_a_1 Bool) - (main.res.inst_2_a_1 Bool) - (main.res.inst_1_a_1 Int) - (main.res.inst_0_a_1 Bool) - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_1)) - (let - ((X2 Bool main.res.abs_0_a_1)) - (and - (= main.usr.ast_a_1 (and X2 X1)) - (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) - (= - main.usr.nB0_a_1 - (ite main.usr.B0_a_1 (+ (+ main.usr.nB0_a_0 1) 1) main.usr.nB0_a_0)) - (= main.usr.avance0_a_1 main.res.abs_3_a_1) - (= main.usr.retard0_a_1 main.res.abs_4_a_1) - (= - main.usr.nB1_a_1 - (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) - (= main.usr.avance1_a_1 main.res.abs_6_a_1) - (= main.usr.retard1_a_1 main.res.abs_7_a_1) - (= main.usr.diff0_a_1 main.res.abs_2_a_1) - (= main.usr.diff1_a_1 main.res.abs_5_a_1) - (__node_trans_hypothese_0 - main.usr.B0_a_1 - main.usr.S_a_1 - main.usr.avance0_a_1 - main.usr.retard0_a_1 - main.res.abs_0_a_1 - main.res.inst_5_a_1 - main.res.inst_4_a_1 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_trans_controleur_0 - main.usr.nB0_a_1 - main.usr.nS_a_1 - main.res.abs_2_a_1 - main.res.abs_3_a_1 - main.res.abs_4_a_1 - main.res.inst_3_a_1 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_trans_hypothese_0 - main.usr.B1_a_1 - main.usr.S_a_1 - main.usr.avance1_a_1 - main.usr.retard1_a_1 - main.res.abs_1_a_1 - main.res.inst_2_a_1 - main.res.inst_1_a_1 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_trans_controleur_0 - main.usr.nB1_a_1 - main.usr.nS_a_1 - main.res.abs_5_a_1 - main.res.abs_6_a_1 - main.res.abs_7_a_1 - main.res.inst_0_a_1 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - (not main.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.avance0_a_0 Bool) - (top.impl.usr.retard0_a_0 Bool) - (top.impl.usr.pOK_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= top.impl.usr.pOK_a_0 true) - (= top.impl.usr.avance0_a_0 top.res.abs_6_a_0) - (= top.impl.usr.retard0_a_0 top.res.abs_8_a_0) - (let - ((X1 Bool top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (let - ((X3 Int top.res.abs_3_a_0)) - (let - ((X4 Int top.res.abs_2_a_0)) - (let - ((X5 Int top.res.abs_1_a_0)) - (and - (= - top.res.abs_10_a_0 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (__node_init_main_0 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.B0_a_1 Bool) - (top.usr.B1_a_1 Bool) - (top.usr.S_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.avance0_a_1 Bool) - (top.impl.usr.retard0_a_1 Bool) - (top.impl.usr.pOK_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Int) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Int) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.avance0_a_0 Bool) - (top.impl.usr.retard0_a_0 Bool) - (top.impl.usr.pOK_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_0_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (and - (= - top.res.abs_10_a_1 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (= top.usr.OK_a_1 (=> top.res.abs_11_a_1 top.impl.usr.pOK_a_0)) - (= top.impl.usr.retard0_a_1 top.res.abs_8_a_1) - (= top.impl.usr.avance0_a_1 top.res.abs_6_a_1) - (= - top.impl.usr.pOK_a_1 - (not - (or - (and top.impl.usr.avance0_a_0 top.impl.usr.retard0_a_1) - (and top.impl.usr.retard0_a_0 top.impl.usr.avance0_a_1)))) - (__node_trans_main_0 - top.usr.B0_a_1 - top.usr.B1_a_1 - top.usr.S_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_0_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.B0 Bool) -(declare-primed-var top.usr.B1 Bool) -(declare-primed-var top.usr.S Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.avance0 Bool) -(declare-primed-var top.impl.usr.retard0 Bool) -(declare-primed-var top.impl.usr.pOK Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Int) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Int) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.pOK true) - (= top.impl.usr.avance0 top.res.abs_6) - (= top.impl.usr.retard0 top.res.abs_8) - (let - ((X1 Bool top.res.abs_0)) - (let - ((X2 Int top.res.abs_4)) - (let - ((X3 Int top.res.abs_3)) - (let - ((X4 Int top.res.abs_2)) - (let - ((X5 Int top.res.abs_1)) - (and - (= - top.res.abs_10 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (__node_init_main_0 - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.B0! Bool) - (top.usr.B1! Bool) - (top.usr.S! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.avance0! Bool) - (top.impl.usr.retard0! Bool) - (top.impl.usr.pOK! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Int) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Int) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_0!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (and - (= - top.res.abs_10! - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (= top.usr.OK! (=> top.res.abs_11! top.impl.usr.pOK)) - (= top.impl.usr.retard0! top.res.abs_8!) - (= top.impl.usr.avance0! top.res.abs_6!) - (= - top.impl.usr.pOK! - (not - (or - (and top.impl.usr.avance0 top.impl.usr.retard0!) - (and top.impl.usr.retard0 top.impl.usr.avance0!)))) - (__node_trans_main_0 - top.usr.B0! - top.usr.B1! - top.usr.S! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_0! - top.res.abs_10 - top.res.abs_11 - top.res.inst_0) - (not top.res.init_flag!))))))) -) - -(define-fun - prop ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_controleur_0 ((controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) (= controleur.usr.avance_a_0 false) (= controleur.usr.retard_a_0 false) controleur.res.init_flag_a_0)) +(define-fun __node_trans_controleur_0 ((controleur.usr.nB_a_1 Int) (controleur.usr.nS_a_1 Int) (controleur.usr.diff_a_1 Int) (controleur.usr.avance_a_1 Bool) (controleur.usr.retard_a_1 Bool) (controleur.res.init_flag_a_1 Bool) (controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) (= controleur.usr.avance_a_1 (ite (not controleur.usr.avance_a_0) (>= controleur.usr.diff_a_1 10) (> controleur.usr.diff_a_1 0))) (= controleur.usr.retard_a_1 (ite (not controleur.usr.retard_a_0) (<= controleur.usr.diff_a_1 (- 10)) (< controleur.usr.diff_a_1 0))) (not controleur.res.init_flag_a_1))) +(define-fun __node_init_hypothese_0 ((hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_0 true) (= hypothese.impl.usr.c_a_0 0) hypothese.res.init_flag_a_0)) +(define-fun __node_trans_hypothese_0 ((hypothese.usr.B_a_1 Bool) (hypothese.usr.S_a_1 Bool) (hypothese.usr.avance_a_1 Bool) (hypothese.usr.retard_a_1 Bool) (hypothese.usr.ok_a_1 Bool) (hypothese.res.init_flag_a_1 Bool) (hypothese.impl.usr.c_a_1 Int) (hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_1 (and (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) (= hypothese.impl.usr.c_a_1 (ite (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) (ite hypothese.usr.B_a_1 (+ (+ hypothese.impl.usr.c_a_0 1) 1) hypothese.impl.usr.c_a_0) 0)) (not hypothese.res.init_flag_a_1))) +(define-fun __node_init_main_0 ((main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_0)) (let ((X2 main.res.abs_0_a_0)) (and (= main.usr.ast_a_0 (and X2 X1)) (= main.usr.avance0_a_0 main.res.abs_3_a_0) (= main.usr.nB0_a_0 0) (= main.usr.nS_a_0 0) (= main.usr.retard0_a_0 main.res.abs_4_a_0) (= main.usr.avance1_a_0 main.res.abs_6_a_0) (= main.usr.nB1_a_0 0) (= main.usr.retard1_a_0 main.res.abs_7_a_0) (= main.usr.diff0_a_0 main.res.abs_2_a_0) (= main.usr.diff1_a_0 main.res.abs_5_a_0) (__node_init_hypothese_0 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_init_controleur_0 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_init_hypothese_0 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_init_controleur_0 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) main.res.init_flag_a_0)))) +(define-fun __node_trans_main_0 ((main.usr.B0_a_1 Bool) (main.usr.B1_a_1 Bool) (main.usr.S_a_1 Bool) (main.usr.ast_a_1 Bool) (main.usr.nB0_a_1 Int) (main.usr.nB1_a_1 Int) (main.usr.nS_a_1 Int) (main.usr.diff0_a_1 Int) (main.usr.diff1_a_1 Int) (main.usr.avance0_a_1 Bool) (main.usr.avance1_a_1 Bool) (main.usr.retard0_a_1 Bool) (main.usr.retard1_a_1 Bool) (main.res.init_flag_a_1 Bool) (main.res.abs_0_a_1 Bool) (main.res.abs_1_a_1 Bool) (main.res.abs_2_a_1 Int) (main.res.abs_3_a_1 Bool) (main.res.abs_4_a_1 Bool) (main.res.abs_5_a_1 Int) (main.res.abs_6_a_1 Bool) (main.res.abs_7_a_1 Bool) (main.res.inst_5_a_1 Bool) (main.res.inst_4_a_1 Int) (main.res.inst_3_a_1 Bool) (main.res.inst_2_a_1 Bool) (main.res.inst_1_a_1 Int) (main.res.inst_0_a_1 Bool) (main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_1)) (let ((X2 main.res.abs_0_a_1)) (and (= main.usr.ast_a_1 (and X2 X1)) (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) (= main.usr.nB0_a_1 (ite main.usr.B0_a_1 (+ (+ main.usr.nB0_a_0 1) 1) main.usr.nB0_a_0)) (= main.usr.avance0_a_1 main.res.abs_3_a_1) (= main.usr.retard0_a_1 main.res.abs_4_a_1) (= main.usr.nB1_a_1 (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) (= main.usr.avance1_a_1 main.res.abs_6_a_1) (= main.usr.retard1_a_1 main.res.abs_7_a_1) (= main.usr.diff0_a_1 main.res.abs_2_a_1) (= main.usr.diff1_a_1 main.res.abs_5_a_1) (__node_trans_hypothese_0 main.usr.B0_a_1 main.usr.S_a_1 main.usr.avance0_a_1 main.usr.retard0_a_1 main.res.abs_0_a_1 main.res.inst_5_a_1 main.res.inst_4_a_1 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_trans_controleur_0 main.usr.nB0_a_1 main.usr.nS_a_1 main.res.abs_2_a_1 main.res.abs_3_a_1 main.res.abs_4_a_1 main.res.inst_3_a_1 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_trans_hypothese_0 main.usr.B1_a_1 main.usr.S_a_1 main.usr.avance1_a_1 main.usr.retard1_a_1 main.res.abs_1_a_1 main.res.inst_2_a_1 main.res.inst_1_a_1 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_trans_controleur_0 main.usr.nB1_a_1 main.usr.nS_a_1 main.res.abs_5_a_1 main.res.abs_6_a_1 main.res.abs_7_a_1 main.res.inst_0_a_1 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) (not main.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.avance0_a_0 Bool) (top.impl.usr.retard0_a_0 Bool) (top.impl.usr.pOK_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.pOK_a_0 true) (= top.impl.usr.avance0_a_0 top.res.abs_6_a_0) (= top.impl.usr.retard0_a_0 top.res.abs_8_a_0) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_4_a_0)) (let ((X3 top.res.abs_3_a_0)) (let ((X4 top.res.abs_2_a_0)) (let ((X5 top.res.abs_1_a_0)) (and (= top.res.abs_10_a_0 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (__node_init_main_0 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.B0_a_1 Bool) (top.usr.B1_a_1 Bool) (top.usr.S_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.avance0_a_1 Bool) (top.impl.usr.retard0_a_1 Bool) (top.impl.usr.pOK_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Int) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Int) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.avance0_a_0 Bool) (top.impl.usr.retard0_a_0 Bool) (top.impl.usr.pOK_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (and (= top.res.abs_10_a_1 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (= top.usr.OK_a_1 (=> top.res.abs_11_a_1 top.impl.usr.pOK_a_0)) (= top.impl.usr.retard0_a_1 top.res.abs_8_a_1) (= top.impl.usr.avance0_a_1 top.res.abs_6_a_1) (= top.impl.usr.pOK_a_1 (not (or (and top.impl.usr.avance0_a_0 top.impl.usr.retard0_a_1) (and top.impl.usr.retard0_a_0 top.impl.usr.avance0_a_1)))) (__node_trans_main_0 top.usr.B0_a_1 top.usr.B1_a_1 top.usr.S_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_0_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.pOK true) (= top.impl.usr.avance0 top.res.abs_6) (= top.impl.usr.retard0 top.res.abs_8) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_4)) (let ((X3 top.res.abs_3)) (let ((X4 top.res.abs_2)) (let ((X5 top.res.abs_1)) (and (= top.res.abs_10 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (__node_init_main_0 top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.B0! Bool) (top.usr.B1! Bool) (top.usr.S! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.avance0! Bool) (top.impl.usr.retard0! Bool) (top.impl.usr.pOK! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Int) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Int) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_0!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (and (= top.res.abs_10! (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (= top.usr.OK! (=> top.res.abs_11! top.impl.usr.pOK)) (= top.impl.usr.retard0! top.res.abs_8!) (= top.impl.usr.avance0! top.res.abs_6!) (= top.impl.usr.pOK! (not (or (and top.impl.usr.avance0 top.impl.usr.retard0!) (and top.impl.usr.retard0 top.impl.usr.avance0!)))) (__node_trans_main_0 top.usr.B0! top.usr.B1! top.usr.S! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_0! top.res.abs_10 top.res.abs_11 top.res.inst_0) (not top.res.init_flag!)))))))) +(define-fun prop ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/metros_1_e1_846_e2_1394.sl b/benchmarks/LIA/Lustre/metros_1_e1_846_e2_1394.sl index 6e226f9..84e0745 100644 --- a/benchmarks/LIA/Lustre/metros_1_e1_846_e2_1394.sl +++ b/benchmarks/LIA/Lustre/metros_1_e1_846_e2_1394.sl @@ -1,997 +1,35 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_controleur_0 ( - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) - (= controleur.usr.avance_a_0 false) - (= controleur.usr.retard_a_0 false) - controleur.res.init_flag_a_0) -) - -(define-fun - __node_trans_controleur_0 ( - (controleur.usr.nB_a_1 Int) - (controleur.usr.nS_a_1 Int) - (controleur.usr.diff_a_1 Int) - (controleur.usr.avance_a_1 Bool) - (controleur.usr.retard_a_1 Bool) - (controleur.res.init_flag_a_1 Bool) - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) - (= - controleur.usr.avance_a_1 - (ite - (not controleur.usr.avance_a_0) - (>= controleur.usr.diff_a_1 10) - (> controleur.usr.diff_a_1 0))) - (= - controleur.usr.retard_a_1 - (ite - (not controleur.usr.retard_a_0) - (<= controleur.usr.diff_a_1 (- 10)) - (< controleur.usr.diff_a_1 0))) - (not controleur.res.init_flag_a_1)) -) - -(define-fun - __node_init_hypothese_0 ( - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= hypothese.usr.ok_a_0 true) - (= hypothese.impl.usr.c_a_0 0) - hypothese.res.init_flag_a_0) -) - -(define-fun - __node_trans_hypothese_0 ( - (hypothese.usr.B_a_1 Bool) - (hypothese.usr.S_a_1 Bool) - (hypothese.usr.avance_a_1 Bool) - (hypothese.usr.retard_a_1 Bool) - (hypothese.usr.ok_a_1 Bool) - (hypothese.res.init_flag_a_1 Bool) - (hypothese.impl.usr.c_a_1 Int) - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= - hypothese.usr.ok_a_1 - (and - (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) - (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) - (= - hypothese.impl.usr.c_a_1 - (ite - (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) - (ite - hypothese.usr.B_a_1 - (+ (+ hypothese.impl.usr.c_a_0 1) 1) - hypothese.impl.usr.c_a_0) - 0)) - (not hypothese.res.init_flag_a_1)) -) - -(define-fun - __node_init_main_0 ( - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_0)) - (let - ((X2 Bool main.res.abs_0_a_0)) - (and - (= main.usr.ast_a_0 (and X2 X1)) - (= main.usr.avance0_a_0 main.res.abs_3_a_0) - (= main.usr.nB0_a_0 0) - (= main.usr.nS_a_0 0) - (= main.usr.retard0_a_0 main.res.abs_4_a_0) - (= main.usr.avance1_a_0 main.res.abs_6_a_0) - (= main.usr.nB1_a_0 0) - (= main.usr.retard1_a_0 main.res.abs_7_a_0) - (= main.usr.diff0_a_0 main.res.abs_2_a_0) - (= main.usr.diff1_a_0 main.res.abs_5_a_0) - (__node_init_hypothese_0 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_init_controleur_0 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_init_hypothese_0 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_init_controleur_0 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - main.res.init_flag_a_0))) -) - -(define-fun - __node_trans_main_0 ( - (main.usr.B0_a_1 Bool) - (main.usr.B1_a_1 Bool) - (main.usr.S_a_1 Bool) - (main.usr.ast_a_1 Bool) - (main.usr.nB0_a_1 Int) - (main.usr.nB1_a_1 Int) - (main.usr.nS_a_1 Int) - (main.usr.diff0_a_1 Int) - (main.usr.diff1_a_1 Int) - (main.usr.avance0_a_1 Bool) - (main.usr.avance1_a_1 Bool) - (main.usr.retard0_a_1 Bool) - (main.usr.retard1_a_1 Bool) - (main.res.init_flag_a_1 Bool) - (main.res.abs_0_a_1 Bool) - (main.res.abs_1_a_1 Bool) - (main.res.abs_2_a_1 Int) - (main.res.abs_3_a_1 Bool) - (main.res.abs_4_a_1 Bool) - (main.res.abs_5_a_1 Int) - (main.res.abs_6_a_1 Bool) - (main.res.abs_7_a_1 Bool) - (main.res.inst_5_a_1 Bool) - (main.res.inst_4_a_1 Int) - (main.res.inst_3_a_1 Bool) - (main.res.inst_2_a_1 Bool) - (main.res.inst_1_a_1 Int) - (main.res.inst_0_a_1 Bool) - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_1)) - (let - ((X2 Bool main.res.abs_0_a_1)) - (and - (= main.usr.ast_a_1 (and X2 X1)) - (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) - (= - main.usr.nB0_a_1 - (ite main.usr.B0_a_1 (+ (- main.usr.nB0_a_0 1) 1) main.usr.nB0_a_0)) - (= main.usr.avance0_a_1 main.res.abs_3_a_1) - (= main.usr.retard0_a_1 main.res.abs_4_a_1) - (= - main.usr.nB1_a_1 - (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) - (= main.usr.avance1_a_1 main.res.abs_6_a_1) - (= main.usr.retard1_a_1 main.res.abs_7_a_1) - (= main.usr.diff0_a_1 main.res.abs_2_a_1) - (= main.usr.diff1_a_1 main.res.abs_5_a_1) - (__node_trans_hypothese_0 - main.usr.B0_a_1 - main.usr.S_a_1 - main.usr.avance0_a_1 - main.usr.retard0_a_1 - main.res.abs_0_a_1 - main.res.inst_5_a_1 - main.res.inst_4_a_1 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_trans_controleur_0 - main.usr.nB0_a_1 - main.usr.nS_a_1 - main.res.abs_2_a_1 - main.res.abs_3_a_1 - main.res.abs_4_a_1 - main.res.inst_3_a_1 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_trans_hypothese_0 - main.usr.B1_a_1 - main.usr.S_a_1 - main.usr.avance1_a_1 - main.usr.retard1_a_1 - main.res.abs_1_a_1 - main.res.inst_2_a_1 - main.res.inst_1_a_1 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_trans_controleur_0 - main.usr.nB1_a_1 - main.usr.nS_a_1 - main.res.abs_5_a_1 - main.res.abs_6_a_1 - main.res.abs_7_a_1 - main.res.inst_0_a_1 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - (not main.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.avance0_a_0 Bool) - (top.impl.usr.retard0_a_0 Bool) - (top.impl.usr.pOK_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= top.impl.usr.pOK_a_0 true) - (= top.impl.usr.avance0_a_0 top.res.abs_6_a_0) - (= top.impl.usr.retard0_a_0 top.res.abs_8_a_0) - (let - ((X1 Bool top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (let - ((X3 Int top.res.abs_3_a_0)) - (let - ((X4 Int top.res.abs_2_a_0)) - (let - ((X5 Int top.res.abs_1_a_0)) - (and - (= - top.res.abs_10_a_0 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (__node_init_main_0 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.B0_a_1 Bool) - (top.usr.B1_a_1 Bool) - (top.usr.S_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.avance0_a_1 Bool) - (top.impl.usr.retard0_a_1 Bool) - (top.impl.usr.pOK_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Int) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Int) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.avance0_a_0 Bool) - (top.impl.usr.retard0_a_0 Bool) - (top.impl.usr.pOK_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_0_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (and - (= - top.res.abs_10_a_1 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (= top.usr.OK_a_1 (=> top.res.abs_11_a_1 top.impl.usr.pOK_a_0)) - (= top.impl.usr.retard0_a_1 top.res.abs_8_a_1) - (= top.impl.usr.avance0_a_1 top.res.abs_6_a_1) - (= - top.impl.usr.pOK_a_1 - (not - (or - (and top.impl.usr.avance0_a_0 top.impl.usr.retard0_a_1) - (and top.impl.usr.retard0_a_0 top.impl.usr.avance0_a_1)))) - (__node_trans_main_0 - top.usr.B0_a_1 - top.usr.B1_a_1 - top.usr.S_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_0_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.B0 Bool) -(declare-primed-var top.usr.B1 Bool) -(declare-primed-var top.usr.S Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.avance0 Bool) -(declare-primed-var top.impl.usr.retard0 Bool) -(declare-primed-var top.impl.usr.pOK Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Int) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Int) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.pOK true) - (= top.impl.usr.avance0 top.res.abs_6) - (= top.impl.usr.retard0 top.res.abs_8) - (let - ((X1 Bool top.res.abs_0)) - (let - ((X2 Int top.res.abs_4)) - (let - ((X3 Int top.res.abs_3)) - (let - ((X4 Int top.res.abs_2)) - (let - ((X5 Int top.res.abs_1)) - (and - (= - top.res.abs_10 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (__node_init_main_0 - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.B0! Bool) - (top.usr.B1! Bool) - (top.usr.S! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.avance0! Bool) - (top.impl.usr.retard0! Bool) - (top.impl.usr.pOK! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Int) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Int) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_0!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (and - (= - top.res.abs_10! - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (= top.usr.OK! (=> top.res.abs_11! top.impl.usr.pOK)) - (= top.impl.usr.retard0! top.res.abs_8!) - (= top.impl.usr.avance0! top.res.abs_6!) - (= - top.impl.usr.pOK! - (not - (or - (and top.impl.usr.avance0 top.impl.usr.retard0!) - (and top.impl.usr.retard0 top.impl.usr.avance0!)))) - (__node_trans_main_0 - top.usr.B0! - top.usr.B1! - top.usr.S! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_0! - top.res.abs_10 - top.res.abs_11 - top.res.inst_0) - (not top.res.init_flag!))))))) -) - -(define-fun - prop ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_controleur_0 ((controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) (= controleur.usr.avance_a_0 false) (= controleur.usr.retard_a_0 false) controleur.res.init_flag_a_0)) +(define-fun __node_trans_controleur_0 ((controleur.usr.nB_a_1 Int) (controleur.usr.nS_a_1 Int) (controleur.usr.diff_a_1 Int) (controleur.usr.avance_a_1 Bool) (controleur.usr.retard_a_1 Bool) (controleur.res.init_flag_a_1 Bool) (controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) (= controleur.usr.avance_a_1 (ite (not controleur.usr.avance_a_0) (>= controleur.usr.diff_a_1 10) (> controleur.usr.diff_a_1 0))) (= controleur.usr.retard_a_1 (ite (not controleur.usr.retard_a_0) (<= controleur.usr.diff_a_1 (- 10)) (< controleur.usr.diff_a_1 0))) (not controleur.res.init_flag_a_1))) +(define-fun __node_init_hypothese_0 ((hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_0 true) (= hypothese.impl.usr.c_a_0 0) hypothese.res.init_flag_a_0)) +(define-fun __node_trans_hypothese_0 ((hypothese.usr.B_a_1 Bool) (hypothese.usr.S_a_1 Bool) (hypothese.usr.avance_a_1 Bool) (hypothese.usr.retard_a_1 Bool) (hypothese.usr.ok_a_1 Bool) (hypothese.res.init_flag_a_1 Bool) (hypothese.impl.usr.c_a_1 Int) (hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_1 (and (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) (= hypothese.impl.usr.c_a_1 (ite (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) (ite hypothese.usr.B_a_1 (+ (+ hypothese.impl.usr.c_a_0 1) 1) hypothese.impl.usr.c_a_0) 0)) (not hypothese.res.init_flag_a_1))) +(define-fun __node_init_main_0 ((main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_0)) (let ((X2 main.res.abs_0_a_0)) (and (= main.usr.ast_a_0 (and X2 X1)) (= main.usr.avance0_a_0 main.res.abs_3_a_0) (= main.usr.nB0_a_0 0) (= main.usr.nS_a_0 0) (= main.usr.retard0_a_0 main.res.abs_4_a_0) (= main.usr.avance1_a_0 main.res.abs_6_a_0) (= main.usr.nB1_a_0 0) (= main.usr.retard1_a_0 main.res.abs_7_a_0) (= main.usr.diff0_a_0 main.res.abs_2_a_0) (= main.usr.diff1_a_0 main.res.abs_5_a_0) (__node_init_hypothese_0 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_init_controleur_0 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_init_hypothese_0 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_init_controleur_0 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) main.res.init_flag_a_0)))) +(define-fun __node_trans_main_0 ((main.usr.B0_a_1 Bool) (main.usr.B1_a_1 Bool) (main.usr.S_a_1 Bool) (main.usr.ast_a_1 Bool) (main.usr.nB0_a_1 Int) (main.usr.nB1_a_1 Int) (main.usr.nS_a_1 Int) (main.usr.diff0_a_1 Int) (main.usr.diff1_a_1 Int) (main.usr.avance0_a_1 Bool) (main.usr.avance1_a_1 Bool) (main.usr.retard0_a_1 Bool) (main.usr.retard1_a_1 Bool) (main.res.init_flag_a_1 Bool) (main.res.abs_0_a_1 Bool) (main.res.abs_1_a_1 Bool) (main.res.abs_2_a_1 Int) (main.res.abs_3_a_1 Bool) (main.res.abs_4_a_1 Bool) (main.res.abs_5_a_1 Int) (main.res.abs_6_a_1 Bool) (main.res.abs_7_a_1 Bool) (main.res.inst_5_a_1 Bool) (main.res.inst_4_a_1 Int) (main.res.inst_3_a_1 Bool) (main.res.inst_2_a_1 Bool) (main.res.inst_1_a_1 Int) (main.res.inst_0_a_1 Bool) (main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_1)) (let ((X2 main.res.abs_0_a_1)) (and (= main.usr.ast_a_1 (and X2 X1)) (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) (= main.usr.nB0_a_1 (ite main.usr.B0_a_1 (+ (- main.usr.nB0_a_0 1) 1) main.usr.nB0_a_0)) (= main.usr.avance0_a_1 main.res.abs_3_a_1) (= main.usr.retard0_a_1 main.res.abs_4_a_1) (= main.usr.nB1_a_1 (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) (= main.usr.avance1_a_1 main.res.abs_6_a_1) (= main.usr.retard1_a_1 main.res.abs_7_a_1) (= main.usr.diff0_a_1 main.res.abs_2_a_1) (= main.usr.diff1_a_1 main.res.abs_5_a_1) (__node_trans_hypothese_0 main.usr.B0_a_1 main.usr.S_a_1 main.usr.avance0_a_1 main.usr.retard0_a_1 main.res.abs_0_a_1 main.res.inst_5_a_1 main.res.inst_4_a_1 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_trans_controleur_0 main.usr.nB0_a_1 main.usr.nS_a_1 main.res.abs_2_a_1 main.res.abs_3_a_1 main.res.abs_4_a_1 main.res.inst_3_a_1 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_trans_hypothese_0 main.usr.B1_a_1 main.usr.S_a_1 main.usr.avance1_a_1 main.usr.retard1_a_1 main.res.abs_1_a_1 main.res.inst_2_a_1 main.res.inst_1_a_1 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_trans_controleur_0 main.usr.nB1_a_1 main.usr.nS_a_1 main.res.abs_5_a_1 main.res.abs_6_a_1 main.res.abs_7_a_1 main.res.inst_0_a_1 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) (not main.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.avance0_a_0 Bool) (top.impl.usr.retard0_a_0 Bool) (top.impl.usr.pOK_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.pOK_a_0 true) (= top.impl.usr.avance0_a_0 top.res.abs_6_a_0) (= top.impl.usr.retard0_a_0 top.res.abs_8_a_0) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_4_a_0)) (let ((X3 top.res.abs_3_a_0)) (let ((X4 top.res.abs_2_a_0)) (let ((X5 top.res.abs_1_a_0)) (and (= top.res.abs_10_a_0 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (__node_init_main_0 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.B0_a_1 Bool) (top.usr.B1_a_1 Bool) (top.usr.S_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.avance0_a_1 Bool) (top.impl.usr.retard0_a_1 Bool) (top.impl.usr.pOK_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Int) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Int) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.avance0_a_0 Bool) (top.impl.usr.retard0_a_0 Bool) (top.impl.usr.pOK_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (and (= top.res.abs_10_a_1 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (= top.usr.OK_a_1 (=> top.res.abs_11_a_1 top.impl.usr.pOK_a_0)) (= top.impl.usr.retard0_a_1 top.res.abs_8_a_1) (= top.impl.usr.avance0_a_1 top.res.abs_6_a_1) (= top.impl.usr.pOK_a_1 (not (or (and top.impl.usr.avance0_a_0 top.impl.usr.retard0_a_1) (and top.impl.usr.retard0_a_0 top.impl.usr.avance0_a_1)))) (__node_trans_main_0 top.usr.B0_a_1 top.usr.B1_a_1 top.usr.S_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_0_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.pOK true) (= top.impl.usr.avance0 top.res.abs_6) (= top.impl.usr.retard0 top.res.abs_8) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_4)) (let ((X3 top.res.abs_3)) (let ((X4 top.res.abs_2)) (let ((X5 top.res.abs_1)) (and (= top.res.abs_10 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (__node_init_main_0 top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.B0! Bool) (top.usr.B1! Bool) (top.usr.S! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.avance0! Bool) (top.impl.usr.retard0! Bool) (top.impl.usr.pOK! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Int) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Int) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_0!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (and (= top.res.abs_10! (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (= top.usr.OK! (=> top.res.abs_11! top.impl.usr.pOK)) (= top.impl.usr.retard0! top.res.abs_8!) (= top.impl.usr.avance0! top.res.abs_6!) (= top.impl.usr.pOK! (not (or (and top.impl.usr.avance0 top.impl.usr.retard0!) (and top.impl.usr.retard0 top.impl.usr.avance0!)))) (__node_trans_main_0 top.usr.B0! top.usr.B1! top.usr.S! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_0! top.res.abs_10 top.res.abs_11 top.res.inst_0) (not top.res.init_flag!)))))))) +(define-fun prop ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/metros_1_e1_846_e3_1060.sl b/benchmarks/LIA/Lustre/metros_1_e1_846_e3_1060.sl index 3322c86..a080362 100644 --- a/benchmarks/LIA/Lustre/metros_1_e1_846_e3_1060.sl +++ b/benchmarks/LIA/Lustre/metros_1_e1_846_e3_1060.sl @@ -1,997 +1,35 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_controleur_0 ( - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) - (= controleur.usr.avance_a_0 false) - (= controleur.usr.retard_a_0 false) - controleur.res.init_flag_a_0) -) - -(define-fun - __node_trans_controleur_0 ( - (controleur.usr.nB_a_1 Int) - (controleur.usr.nS_a_1 Int) - (controleur.usr.diff_a_1 Int) - (controleur.usr.avance_a_1 Bool) - (controleur.usr.retard_a_1 Bool) - (controleur.res.init_flag_a_1 Bool) - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) - (= - controleur.usr.avance_a_1 - (ite - (not controleur.usr.avance_a_0) - (>= controleur.usr.diff_a_1 10) - (> controleur.usr.diff_a_1 0))) - (= - controleur.usr.retard_a_1 - (ite - (not controleur.usr.retard_a_0) - (<= controleur.usr.diff_a_1 (- 10)) - (< controleur.usr.diff_a_1 0))) - (not controleur.res.init_flag_a_1)) -) - -(define-fun - __node_init_hypothese_0 ( - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= hypothese.usr.ok_a_0 true) - (= hypothese.impl.usr.c_a_0 0) - hypothese.res.init_flag_a_0) -) - -(define-fun - __node_trans_hypothese_0 ( - (hypothese.usr.B_a_1 Bool) - (hypothese.usr.S_a_1 Bool) - (hypothese.usr.avance_a_1 Bool) - (hypothese.usr.retard_a_1 Bool) - (hypothese.usr.ok_a_1 Bool) - (hypothese.res.init_flag_a_1 Bool) - (hypothese.impl.usr.c_a_1 Int) - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= - hypothese.usr.ok_a_1 - (and - (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) - (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) - (= - hypothese.impl.usr.c_a_1 - (ite - (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) - (ite - hypothese.usr.B_a_1 - (+ (+ hypothese.impl.usr.c_a_0 1) 1) - hypothese.impl.usr.c_a_0) - 0)) - (not hypothese.res.init_flag_a_1)) -) - -(define-fun - __node_init_main_0 ( - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_0)) - (let - ((X2 Bool main.res.abs_0_a_0)) - (and - (= main.usr.ast_a_0 (and X2 X1)) - (= main.usr.avance0_a_0 main.res.abs_3_a_0) - (= main.usr.nB0_a_0 0) - (= main.usr.nS_a_0 0) - (= main.usr.retard0_a_0 main.res.abs_4_a_0) - (= main.usr.avance1_a_0 main.res.abs_6_a_0) - (= main.usr.nB1_a_0 0) - (= main.usr.retard1_a_0 main.res.abs_7_a_0) - (= main.usr.diff0_a_0 main.res.abs_2_a_0) - (= main.usr.diff1_a_0 main.res.abs_5_a_0) - (__node_init_hypothese_0 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_init_controleur_0 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_init_hypothese_0 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_init_controleur_0 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - main.res.init_flag_a_0))) -) - -(define-fun - __node_trans_main_0 ( - (main.usr.B0_a_1 Bool) - (main.usr.B1_a_1 Bool) - (main.usr.S_a_1 Bool) - (main.usr.ast_a_1 Bool) - (main.usr.nB0_a_1 Int) - (main.usr.nB1_a_1 Int) - (main.usr.nS_a_1 Int) - (main.usr.diff0_a_1 Int) - (main.usr.diff1_a_1 Int) - (main.usr.avance0_a_1 Bool) - (main.usr.avance1_a_1 Bool) - (main.usr.retard0_a_1 Bool) - (main.usr.retard1_a_1 Bool) - (main.res.init_flag_a_1 Bool) - (main.res.abs_0_a_1 Bool) - (main.res.abs_1_a_1 Bool) - (main.res.abs_2_a_1 Int) - (main.res.abs_3_a_1 Bool) - (main.res.abs_4_a_1 Bool) - (main.res.abs_5_a_1 Int) - (main.res.abs_6_a_1 Bool) - (main.res.abs_7_a_1 Bool) - (main.res.inst_5_a_1 Bool) - (main.res.inst_4_a_1 Int) - (main.res.inst_3_a_1 Bool) - (main.res.inst_2_a_1 Bool) - (main.res.inst_1_a_1 Int) - (main.res.inst_0_a_1 Bool) - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_1)) - (let - ((X2 Bool main.res.abs_0_a_1)) - (and - (= main.usr.ast_a_1 (and X2 X1)) - (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) - (= - main.usr.nB0_a_1 - (ite main.usr.B0_a_1 (- main.usr.nB0_a_0 1) main.usr.nB0_a_0)) - (= main.usr.avance0_a_1 main.res.abs_3_a_1) - (= main.usr.retard0_a_1 main.res.abs_4_a_1) - (= - main.usr.nB1_a_1 - (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) - (= main.usr.avance1_a_1 main.res.abs_6_a_1) - (= main.usr.retard1_a_1 main.res.abs_7_a_1) - (= main.usr.diff0_a_1 main.res.abs_2_a_1) - (= main.usr.diff1_a_1 main.res.abs_5_a_1) - (__node_trans_hypothese_0 - main.usr.B0_a_1 - main.usr.S_a_1 - main.usr.avance0_a_1 - main.usr.retard0_a_1 - main.res.abs_0_a_1 - main.res.inst_5_a_1 - main.res.inst_4_a_1 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_trans_controleur_0 - main.usr.nB0_a_1 - main.usr.nS_a_1 - main.res.abs_2_a_1 - main.res.abs_3_a_1 - main.res.abs_4_a_1 - main.res.inst_3_a_1 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_trans_hypothese_0 - main.usr.B1_a_1 - main.usr.S_a_1 - main.usr.avance1_a_1 - main.usr.retard1_a_1 - main.res.abs_1_a_1 - main.res.inst_2_a_1 - main.res.inst_1_a_1 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_trans_controleur_0 - main.usr.nB1_a_1 - main.usr.nS_a_1 - main.res.abs_5_a_1 - main.res.abs_6_a_1 - main.res.abs_7_a_1 - main.res.inst_0_a_1 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - (not main.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.avance0_a_0 Bool) - (top.impl.usr.retard0_a_0 Bool) - (top.impl.usr.pOK_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= top.impl.usr.pOK_a_0 true) - (= top.impl.usr.avance0_a_0 top.res.abs_6_a_0) - (= top.impl.usr.retard0_a_0 top.res.abs_8_a_0) - (let - ((X1 Bool top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (let - ((X3 Int top.res.abs_3_a_0)) - (let - ((X4 Int top.res.abs_2_a_0)) - (let - ((X5 Int top.res.abs_1_a_0)) - (and - (= - top.res.abs_10_a_0 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (__node_init_main_0 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.B0_a_1 Bool) - (top.usr.B1_a_1 Bool) - (top.usr.S_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.avance0_a_1 Bool) - (top.impl.usr.retard0_a_1 Bool) - (top.impl.usr.pOK_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Int) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Int) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.avance0_a_0 Bool) - (top.impl.usr.retard0_a_0 Bool) - (top.impl.usr.pOK_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_0_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (and - (= - top.res.abs_10_a_1 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (= top.usr.OK_a_1 (=> top.res.abs_11_a_1 top.impl.usr.pOK_a_0)) - (= top.impl.usr.retard0_a_1 top.res.abs_8_a_1) - (= top.impl.usr.avance0_a_1 top.res.abs_6_a_1) - (= - top.impl.usr.pOK_a_1 - (not - (or - (and top.impl.usr.avance0_a_0 top.impl.usr.retard0_a_1) - (and top.impl.usr.retard0_a_0 top.impl.usr.avance0_a_1)))) - (__node_trans_main_0 - top.usr.B0_a_1 - top.usr.B1_a_1 - top.usr.S_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_0_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.B0 Bool) -(declare-primed-var top.usr.B1 Bool) -(declare-primed-var top.usr.S Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.avance0 Bool) -(declare-primed-var top.impl.usr.retard0 Bool) -(declare-primed-var top.impl.usr.pOK Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Int) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Int) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.pOK true) - (= top.impl.usr.avance0 top.res.abs_6) - (= top.impl.usr.retard0 top.res.abs_8) - (let - ((X1 Bool top.res.abs_0)) - (let - ((X2 Int top.res.abs_4)) - (let - ((X3 Int top.res.abs_3)) - (let - ((X4 Int top.res.abs_2)) - (let - ((X5 Int top.res.abs_1)) - (and - (= - top.res.abs_10 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (__node_init_main_0 - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.B0! Bool) - (top.usr.B1! Bool) - (top.usr.S! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.avance0! Bool) - (top.impl.usr.retard0! Bool) - (top.impl.usr.pOK! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Int) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Int) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_0!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (and - (= - top.res.abs_10! - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (= top.usr.OK! (=> top.res.abs_11! top.impl.usr.pOK)) - (= top.impl.usr.retard0! top.res.abs_8!) - (= top.impl.usr.avance0! top.res.abs_6!) - (= - top.impl.usr.pOK! - (not - (or - (and top.impl.usr.avance0 top.impl.usr.retard0!) - (and top.impl.usr.retard0 top.impl.usr.avance0!)))) - (__node_trans_main_0 - top.usr.B0! - top.usr.B1! - top.usr.S! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_0! - top.res.abs_10 - top.res.abs_11 - top.res.inst_0) - (not top.res.init_flag!))))))) -) - -(define-fun - prop ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_controleur_0 ((controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) (= controleur.usr.avance_a_0 false) (= controleur.usr.retard_a_0 false) controleur.res.init_flag_a_0)) +(define-fun __node_trans_controleur_0 ((controleur.usr.nB_a_1 Int) (controleur.usr.nS_a_1 Int) (controleur.usr.diff_a_1 Int) (controleur.usr.avance_a_1 Bool) (controleur.usr.retard_a_1 Bool) (controleur.res.init_flag_a_1 Bool) (controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) (= controleur.usr.avance_a_1 (ite (not controleur.usr.avance_a_0) (>= controleur.usr.diff_a_1 10) (> controleur.usr.diff_a_1 0))) (= controleur.usr.retard_a_1 (ite (not controleur.usr.retard_a_0) (<= controleur.usr.diff_a_1 (- 10)) (< controleur.usr.diff_a_1 0))) (not controleur.res.init_flag_a_1))) +(define-fun __node_init_hypothese_0 ((hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_0 true) (= hypothese.impl.usr.c_a_0 0) hypothese.res.init_flag_a_0)) +(define-fun __node_trans_hypothese_0 ((hypothese.usr.B_a_1 Bool) (hypothese.usr.S_a_1 Bool) (hypothese.usr.avance_a_1 Bool) (hypothese.usr.retard_a_1 Bool) (hypothese.usr.ok_a_1 Bool) (hypothese.res.init_flag_a_1 Bool) (hypothese.impl.usr.c_a_1 Int) (hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_1 (and (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) (= hypothese.impl.usr.c_a_1 (ite (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) (ite hypothese.usr.B_a_1 (+ (+ hypothese.impl.usr.c_a_0 1) 1) hypothese.impl.usr.c_a_0) 0)) (not hypothese.res.init_flag_a_1))) +(define-fun __node_init_main_0 ((main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_0)) (let ((X2 main.res.abs_0_a_0)) (and (= main.usr.ast_a_0 (and X2 X1)) (= main.usr.avance0_a_0 main.res.abs_3_a_0) (= main.usr.nB0_a_0 0) (= main.usr.nS_a_0 0) (= main.usr.retard0_a_0 main.res.abs_4_a_0) (= main.usr.avance1_a_0 main.res.abs_6_a_0) (= main.usr.nB1_a_0 0) (= main.usr.retard1_a_0 main.res.abs_7_a_0) (= main.usr.diff0_a_0 main.res.abs_2_a_0) (= main.usr.diff1_a_0 main.res.abs_5_a_0) (__node_init_hypothese_0 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_init_controleur_0 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_init_hypothese_0 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_init_controleur_0 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) main.res.init_flag_a_0)))) +(define-fun __node_trans_main_0 ((main.usr.B0_a_1 Bool) (main.usr.B1_a_1 Bool) (main.usr.S_a_1 Bool) (main.usr.ast_a_1 Bool) (main.usr.nB0_a_1 Int) (main.usr.nB1_a_1 Int) (main.usr.nS_a_1 Int) (main.usr.diff0_a_1 Int) (main.usr.diff1_a_1 Int) (main.usr.avance0_a_1 Bool) (main.usr.avance1_a_1 Bool) (main.usr.retard0_a_1 Bool) (main.usr.retard1_a_1 Bool) (main.res.init_flag_a_1 Bool) (main.res.abs_0_a_1 Bool) (main.res.abs_1_a_1 Bool) (main.res.abs_2_a_1 Int) (main.res.abs_3_a_1 Bool) (main.res.abs_4_a_1 Bool) (main.res.abs_5_a_1 Int) (main.res.abs_6_a_1 Bool) (main.res.abs_7_a_1 Bool) (main.res.inst_5_a_1 Bool) (main.res.inst_4_a_1 Int) (main.res.inst_3_a_1 Bool) (main.res.inst_2_a_1 Bool) (main.res.inst_1_a_1 Int) (main.res.inst_0_a_1 Bool) (main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_1)) (let ((X2 main.res.abs_0_a_1)) (and (= main.usr.ast_a_1 (and X2 X1)) (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) (= main.usr.nB0_a_1 (ite main.usr.B0_a_1 (- main.usr.nB0_a_0 1) main.usr.nB0_a_0)) (= main.usr.avance0_a_1 main.res.abs_3_a_1) (= main.usr.retard0_a_1 main.res.abs_4_a_1) (= main.usr.nB1_a_1 (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) (= main.usr.avance1_a_1 main.res.abs_6_a_1) (= main.usr.retard1_a_1 main.res.abs_7_a_1) (= main.usr.diff0_a_1 main.res.abs_2_a_1) (= main.usr.diff1_a_1 main.res.abs_5_a_1) (__node_trans_hypothese_0 main.usr.B0_a_1 main.usr.S_a_1 main.usr.avance0_a_1 main.usr.retard0_a_1 main.res.abs_0_a_1 main.res.inst_5_a_1 main.res.inst_4_a_1 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_trans_controleur_0 main.usr.nB0_a_1 main.usr.nS_a_1 main.res.abs_2_a_1 main.res.abs_3_a_1 main.res.abs_4_a_1 main.res.inst_3_a_1 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_trans_hypothese_0 main.usr.B1_a_1 main.usr.S_a_1 main.usr.avance1_a_1 main.usr.retard1_a_1 main.res.abs_1_a_1 main.res.inst_2_a_1 main.res.inst_1_a_1 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_trans_controleur_0 main.usr.nB1_a_1 main.usr.nS_a_1 main.res.abs_5_a_1 main.res.abs_6_a_1 main.res.abs_7_a_1 main.res.inst_0_a_1 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) (not main.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.avance0_a_0 Bool) (top.impl.usr.retard0_a_0 Bool) (top.impl.usr.pOK_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.pOK_a_0 true) (= top.impl.usr.avance0_a_0 top.res.abs_6_a_0) (= top.impl.usr.retard0_a_0 top.res.abs_8_a_0) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_4_a_0)) (let ((X3 top.res.abs_3_a_0)) (let ((X4 top.res.abs_2_a_0)) (let ((X5 top.res.abs_1_a_0)) (and (= top.res.abs_10_a_0 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (__node_init_main_0 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.B0_a_1 Bool) (top.usr.B1_a_1 Bool) (top.usr.S_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.avance0_a_1 Bool) (top.impl.usr.retard0_a_1 Bool) (top.impl.usr.pOK_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Int) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Int) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.avance0_a_0 Bool) (top.impl.usr.retard0_a_0 Bool) (top.impl.usr.pOK_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (and (= top.res.abs_10_a_1 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (= top.usr.OK_a_1 (=> top.res.abs_11_a_1 top.impl.usr.pOK_a_0)) (= top.impl.usr.retard0_a_1 top.res.abs_8_a_1) (= top.impl.usr.avance0_a_1 top.res.abs_6_a_1) (= top.impl.usr.pOK_a_1 (not (or (and top.impl.usr.avance0_a_0 top.impl.usr.retard0_a_1) (and top.impl.usr.retard0_a_0 top.impl.usr.avance0_a_1)))) (__node_trans_main_0 top.usr.B0_a_1 top.usr.B1_a_1 top.usr.S_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_0_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.pOK true) (= top.impl.usr.avance0 top.res.abs_6) (= top.impl.usr.retard0 top.res.abs_8) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_4)) (let ((X3 top.res.abs_3)) (let ((X4 top.res.abs_2)) (let ((X5 top.res.abs_1)) (and (= top.res.abs_10 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (__node_init_main_0 top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.B0! Bool) (top.usr.B1! Bool) (top.usr.S! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.avance0! Bool) (top.impl.usr.retard0! Bool) (top.impl.usr.pOK! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Int) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Int) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_0!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (and (= top.res.abs_10! (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (= top.usr.OK! (=> top.res.abs_11! top.impl.usr.pOK)) (= top.impl.usr.retard0! top.res.abs_8!) (= top.impl.usr.avance0! top.res.abs_6!) (= top.impl.usr.pOK! (not (or (and top.impl.usr.avance0 top.impl.usr.retard0!) (and top.impl.usr.retard0 top.impl.usr.avance0!)))) (__node_trans_main_0 top.usr.B0! top.usr.B1! top.usr.S! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_0! top.res.abs_10 top.res.abs_11 top.res.inst_0) (not top.res.init_flag!)))))))) +(define-fun prop ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/metros_1_e1_846_e7_397.sl b/benchmarks/LIA/Lustre/metros_1_e1_846_e7_397.sl index 668ab62..fdb9008 100644 --- a/benchmarks/LIA/Lustre/metros_1_e1_846_e7_397.sl +++ b/benchmarks/LIA/Lustre/metros_1_e1_846_e7_397.sl @@ -1,997 +1,35 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_controleur_0 ( - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) - (= controleur.usr.avance_a_0 false) - (= controleur.usr.retard_a_0 false) - controleur.res.init_flag_a_0) -) - -(define-fun - __node_trans_controleur_0 ( - (controleur.usr.nB_a_1 Int) - (controleur.usr.nS_a_1 Int) - (controleur.usr.diff_a_1 Int) - (controleur.usr.avance_a_1 Bool) - (controleur.usr.retard_a_1 Bool) - (controleur.res.init_flag_a_1 Bool) - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) - (= - controleur.usr.avance_a_1 - (ite - (not controleur.usr.avance_a_0) - (>= controleur.usr.diff_a_1 10) - (> controleur.usr.diff_a_1 0))) - (= - controleur.usr.retard_a_1 - (ite - (not controleur.usr.retard_a_0) - (<= controleur.usr.diff_a_1 (- 10)) - (< controleur.usr.diff_a_1 0))) - (not controleur.res.init_flag_a_1)) -) - -(define-fun - __node_init_hypothese_0 ( - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= hypothese.usr.ok_a_0 true) - (= hypothese.impl.usr.c_a_0 0) - hypothese.res.init_flag_a_0) -) - -(define-fun - __node_trans_hypothese_0 ( - (hypothese.usr.B_a_1 Bool) - (hypothese.usr.S_a_1 Bool) - (hypothese.usr.avance_a_1 Bool) - (hypothese.usr.retard_a_1 Bool) - (hypothese.usr.ok_a_1 Bool) - (hypothese.res.init_flag_a_1 Bool) - (hypothese.impl.usr.c_a_1 Int) - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= - hypothese.usr.ok_a_1 - (and - (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) - (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) - (= - hypothese.impl.usr.c_a_1 - (ite - (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) - (ite - hypothese.usr.B_a_1 - (+ (+ hypothese.impl.usr.c_a_0 1) 1) - hypothese.impl.usr.c_a_0) - 0)) - (not hypothese.res.init_flag_a_1)) -) - -(define-fun - __node_init_main_0 ( - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_0)) - (let - ((X2 Bool main.res.abs_0_a_0)) - (and - (= main.usr.ast_a_0 (and X2 X1)) - (= main.usr.avance0_a_0 main.res.abs_3_a_0) - (= main.usr.nB0_a_0 0) - (= main.usr.nS_a_0 0) - (= main.usr.retard0_a_0 main.res.abs_4_a_0) - (= main.usr.avance1_a_0 main.res.abs_6_a_0) - (= main.usr.nB1_a_0 0) - (= main.usr.retard1_a_0 main.res.abs_7_a_0) - (= main.usr.diff0_a_0 main.res.abs_2_a_0) - (= main.usr.diff1_a_0 main.res.abs_5_a_0) - (__node_init_hypothese_0 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_init_controleur_0 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_init_hypothese_0 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_init_controleur_0 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - main.res.init_flag_a_0))) -) - -(define-fun - __node_trans_main_0 ( - (main.usr.B0_a_1 Bool) - (main.usr.B1_a_1 Bool) - (main.usr.S_a_1 Bool) - (main.usr.ast_a_1 Bool) - (main.usr.nB0_a_1 Int) - (main.usr.nB1_a_1 Int) - (main.usr.nS_a_1 Int) - (main.usr.diff0_a_1 Int) - (main.usr.diff1_a_1 Int) - (main.usr.avance0_a_1 Bool) - (main.usr.avance1_a_1 Bool) - (main.usr.retard0_a_1 Bool) - (main.usr.retard1_a_1 Bool) - (main.res.init_flag_a_1 Bool) - (main.res.abs_0_a_1 Bool) - (main.res.abs_1_a_1 Bool) - (main.res.abs_2_a_1 Int) - (main.res.abs_3_a_1 Bool) - (main.res.abs_4_a_1 Bool) - (main.res.abs_5_a_1 Int) - (main.res.abs_6_a_1 Bool) - (main.res.abs_7_a_1 Bool) - (main.res.inst_5_a_1 Bool) - (main.res.inst_4_a_1 Int) - (main.res.inst_3_a_1 Bool) - (main.res.inst_2_a_1 Bool) - (main.res.inst_1_a_1 Int) - (main.res.inst_0_a_1 Bool) - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_1)) - (let - ((X2 Bool main.res.abs_0_a_1)) - (and - (= main.usr.ast_a_1 (and X2 X1)) - (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) - (= - main.usr.nB0_a_1 - (ite main.usr.B0_a_1 (+ main.usr.nB0_a_0 1) main.usr.nB0_a_0)) - (= main.usr.avance0_a_1 main.res.abs_3_a_1) - (= main.usr.retard0_a_1 main.res.abs_4_a_1) - (= - main.usr.nB1_a_1 - (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) - (= main.usr.avance1_a_1 main.res.abs_6_a_1) - (= main.usr.retard1_a_1 main.res.abs_7_a_1) - (= main.usr.diff0_a_1 main.res.abs_2_a_1) - (= main.usr.diff1_a_1 main.res.abs_5_a_1) - (__node_trans_hypothese_0 - main.usr.B0_a_1 - main.usr.S_a_1 - main.usr.avance0_a_1 - main.usr.retard0_a_1 - main.res.abs_0_a_1 - main.res.inst_5_a_1 - main.res.inst_4_a_1 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_trans_controleur_0 - main.usr.nB0_a_1 - main.usr.nS_a_1 - main.res.abs_2_a_1 - main.res.abs_3_a_1 - main.res.abs_4_a_1 - main.res.inst_3_a_1 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_trans_hypothese_0 - main.usr.B1_a_1 - main.usr.S_a_1 - main.usr.avance1_a_1 - main.usr.retard1_a_1 - main.res.abs_1_a_1 - main.res.inst_2_a_1 - main.res.inst_1_a_1 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_trans_controleur_0 - main.usr.nB1_a_1 - main.usr.nS_a_1 - main.res.abs_5_a_1 - main.res.abs_6_a_1 - main.res.abs_7_a_1 - main.res.inst_0_a_1 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - (not main.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.avance0_a_0 Bool) - (top.impl.usr.retard0_a_0 Bool) - (top.impl.usr.pOK_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= top.impl.usr.pOK_a_0 true) - (= top.impl.usr.avance0_a_0 top.res.abs_6_a_0) - (= top.impl.usr.retard0_a_0 top.res.abs_8_a_0) - (let - ((X1 Bool top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (let - ((X3 Int top.res.abs_3_a_0)) - (let - ((X4 Int top.res.abs_2_a_0)) - (let - ((X5 Int top.res.abs_1_a_0)) - (and - (= - top.res.abs_10_a_0 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (__node_init_main_0 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.B0_a_1 Bool) - (top.usr.B1_a_1 Bool) - (top.usr.S_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.avance0_a_1 Bool) - (top.impl.usr.retard0_a_1 Bool) - (top.impl.usr.pOK_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Int) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Int) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.avance0_a_0 Bool) - (top.impl.usr.retard0_a_0 Bool) - (top.impl.usr.pOK_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_0_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (and - (= - top.res.abs_10_a_1 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (= top.usr.OK_a_1 (=> top.res.abs_11_a_1 top.impl.usr.pOK_a_0)) - (= top.impl.usr.retard0_a_1 top.res.abs_8_a_1) - (= top.impl.usr.avance0_a_1 top.res.abs_6_a_1) - (= - top.impl.usr.pOK_a_1 - (not - (or - (and top.impl.usr.avance0_a_0 top.impl.usr.retard0_a_1) - (and top.impl.usr.retard0_a_0 top.impl.usr.avance0_a_1)))) - (__node_trans_main_0 - top.usr.B0_a_1 - top.usr.B1_a_1 - top.usr.S_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_0_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.B0 Bool) -(declare-primed-var top.usr.B1 Bool) -(declare-primed-var top.usr.S Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.avance0 Bool) -(declare-primed-var top.impl.usr.retard0 Bool) -(declare-primed-var top.impl.usr.pOK Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Int) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Int) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.pOK true) - (= top.impl.usr.avance0 top.res.abs_6) - (= top.impl.usr.retard0 top.res.abs_8) - (let - ((X1 Bool top.res.abs_0)) - (let - ((X2 Int top.res.abs_4)) - (let - ((X3 Int top.res.abs_3)) - (let - ((X4 Int top.res.abs_2)) - (let - ((X5 Int top.res.abs_1)) - (and - (= - top.res.abs_10 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (__node_init_main_0 - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.B0! Bool) - (top.usr.B1! Bool) - (top.usr.S! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.avance0! Bool) - (top.impl.usr.retard0! Bool) - (top.impl.usr.pOK! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Int) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Int) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_0!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (and - (= - top.res.abs_10! - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (= top.usr.OK! (=> top.res.abs_11! top.impl.usr.pOK)) - (= top.impl.usr.retard0! top.res.abs_8!) - (= top.impl.usr.avance0! top.res.abs_6!) - (= - top.impl.usr.pOK! - (not - (or - (and top.impl.usr.avance0 top.impl.usr.retard0!) - (and top.impl.usr.retard0 top.impl.usr.avance0!)))) - (__node_trans_main_0 - top.usr.B0! - top.usr.B1! - top.usr.S! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_0! - top.res.abs_10 - top.res.abs_11 - top.res.inst_0) - (not top.res.init_flag!))))))) -) - -(define-fun - prop ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_controleur_0 ((controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) (= controleur.usr.avance_a_0 false) (= controleur.usr.retard_a_0 false) controleur.res.init_flag_a_0)) +(define-fun __node_trans_controleur_0 ((controleur.usr.nB_a_1 Int) (controleur.usr.nS_a_1 Int) (controleur.usr.diff_a_1 Int) (controleur.usr.avance_a_1 Bool) (controleur.usr.retard_a_1 Bool) (controleur.res.init_flag_a_1 Bool) (controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) (= controleur.usr.avance_a_1 (ite (not controleur.usr.avance_a_0) (>= controleur.usr.diff_a_1 10) (> controleur.usr.diff_a_1 0))) (= controleur.usr.retard_a_1 (ite (not controleur.usr.retard_a_0) (<= controleur.usr.diff_a_1 (- 10)) (< controleur.usr.diff_a_1 0))) (not controleur.res.init_flag_a_1))) +(define-fun __node_init_hypothese_0 ((hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_0 true) (= hypothese.impl.usr.c_a_0 0) hypothese.res.init_flag_a_0)) +(define-fun __node_trans_hypothese_0 ((hypothese.usr.B_a_1 Bool) (hypothese.usr.S_a_1 Bool) (hypothese.usr.avance_a_1 Bool) (hypothese.usr.retard_a_1 Bool) (hypothese.usr.ok_a_1 Bool) (hypothese.res.init_flag_a_1 Bool) (hypothese.impl.usr.c_a_1 Int) (hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_1 (and (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) (= hypothese.impl.usr.c_a_1 (ite (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) (ite hypothese.usr.B_a_1 (+ (+ hypothese.impl.usr.c_a_0 1) 1) hypothese.impl.usr.c_a_0) 0)) (not hypothese.res.init_flag_a_1))) +(define-fun __node_init_main_0 ((main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_0)) (let ((X2 main.res.abs_0_a_0)) (and (= main.usr.ast_a_0 (and X2 X1)) (= main.usr.avance0_a_0 main.res.abs_3_a_0) (= main.usr.nB0_a_0 0) (= main.usr.nS_a_0 0) (= main.usr.retard0_a_0 main.res.abs_4_a_0) (= main.usr.avance1_a_0 main.res.abs_6_a_0) (= main.usr.nB1_a_0 0) (= main.usr.retard1_a_0 main.res.abs_7_a_0) (= main.usr.diff0_a_0 main.res.abs_2_a_0) (= main.usr.diff1_a_0 main.res.abs_5_a_0) (__node_init_hypothese_0 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_init_controleur_0 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_init_hypothese_0 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_init_controleur_0 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) main.res.init_flag_a_0)))) +(define-fun __node_trans_main_0 ((main.usr.B0_a_1 Bool) (main.usr.B1_a_1 Bool) (main.usr.S_a_1 Bool) (main.usr.ast_a_1 Bool) (main.usr.nB0_a_1 Int) (main.usr.nB1_a_1 Int) (main.usr.nS_a_1 Int) (main.usr.diff0_a_1 Int) (main.usr.diff1_a_1 Int) (main.usr.avance0_a_1 Bool) (main.usr.avance1_a_1 Bool) (main.usr.retard0_a_1 Bool) (main.usr.retard1_a_1 Bool) (main.res.init_flag_a_1 Bool) (main.res.abs_0_a_1 Bool) (main.res.abs_1_a_1 Bool) (main.res.abs_2_a_1 Int) (main.res.abs_3_a_1 Bool) (main.res.abs_4_a_1 Bool) (main.res.abs_5_a_1 Int) (main.res.abs_6_a_1 Bool) (main.res.abs_7_a_1 Bool) (main.res.inst_5_a_1 Bool) (main.res.inst_4_a_1 Int) (main.res.inst_3_a_1 Bool) (main.res.inst_2_a_1 Bool) (main.res.inst_1_a_1 Int) (main.res.inst_0_a_1 Bool) (main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_1)) (let ((X2 main.res.abs_0_a_1)) (and (= main.usr.ast_a_1 (and X2 X1)) (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) (= main.usr.nB0_a_1 (ite main.usr.B0_a_1 (+ main.usr.nB0_a_0 1) main.usr.nB0_a_0)) (= main.usr.avance0_a_1 main.res.abs_3_a_1) (= main.usr.retard0_a_1 main.res.abs_4_a_1) (= main.usr.nB1_a_1 (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) (= main.usr.avance1_a_1 main.res.abs_6_a_1) (= main.usr.retard1_a_1 main.res.abs_7_a_1) (= main.usr.diff0_a_1 main.res.abs_2_a_1) (= main.usr.diff1_a_1 main.res.abs_5_a_1) (__node_trans_hypothese_0 main.usr.B0_a_1 main.usr.S_a_1 main.usr.avance0_a_1 main.usr.retard0_a_1 main.res.abs_0_a_1 main.res.inst_5_a_1 main.res.inst_4_a_1 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_trans_controleur_0 main.usr.nB0_a_1 main.usr.nS_a_1 main.res.abs_2_a_1 main.res.abs_3_a_1 main.res.abs_4_a_1 main.res.inst_3_a_1 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_trans_hypothese_0 main.usr.B1_a_1 main.usr.S_a_1 main.usr.avance1_a_1 main.usr.retard1_a_1 main.res.abs_1_a_1 main.res.inst_2_a_1 main.res.inst_1_a_1 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_trans_controleur_0 main.usr.nB1_a_1 main.usr.nS_a_1 main.res.abs_5_a_1 main.res.abs_6_a_1 main.res.abs_7_a_1 main.res.inst_0_a_1 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) (not main.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.avance0_a_0 Bool) (top.impl.usr.retard0_a_0 Bool) (top.impl.usr.pOK_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.pOK_a_0 true) (= top.impl.usr.avance0_a_0 top.res.abs_6_a_0) (= top.impl.usr.retard0_a_0 top.res.abs_8_a_0) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_4_a_0)) (let ((X3 top.res.abs_3_a_0)) (let ((X4 top.res.abs_2_a_0)) (let ((X5 top.res.abs_1_a_0)) (and (= top.res.abs_10_a_0 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (__node_init_main_0 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.B0_a_1 Bool) (top.usr.B1_a_1 Bool) (top.usr.S_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.avance0_a_1 Bool) (top.impl.usr.retard0_a_1 Bool) (top.impl.usr.pOK_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Int) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Int) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.avance0_a_0 Bool) (top.impl.usr.retard0_a_0 Bool) (top.impl.usr.pOK_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (and (= top.res.abs_10_a_1 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (= top.usr.OK_a_1 (=> top.res.abs_11_a_1 top.impl.usr.pOK_a_0)) (= top.impl.usr.retard0_a_1 top.res.abs_8_a_1) (= top.impl.usr.avance0_a_1 top.res.abs_6_a_1) (= top.impl.usr.pOK_a_1 (not (or (and top.impl.usr.avance0_a_0 top.impl.usr.retard0_a_1) (and top.impl.usr.retard0_a_0 top.impl.usr.avance0_a_1)))) (__node_trans_main_0 top.usr.B0_a_1 top.usr.B1_a_1 top.usr.S_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_0_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.pOK true) (= top.impl.usr.avance0 top.res.abs_6) (= top.impl.usr.retard0 top.res.abs_8) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_4)) (let ((X3 top.res.abs_3)) (let ((X4 top.res.abs_2)) (let ((X5 top.res.abs_1)) (and (= top.res.abs_10 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (__node_init_main_0 top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.B0! Bool) (top.usr.B1! Bool) (top.usr.S! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.avance0! Bool) (top.impl.usr.retard0! Bool) (top.impl.usr.pOK! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Int) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Int) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_0!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (and (= top.res.abs_10! (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (= top.usr.OK! (=> top.res.abs_11! top.impl.usr.pOK)) (= top.impl.usr.retard0! top.res.abs_8!) (= top.impl.usr.avance0! top.res.abs_6!) (= top.impl.usr.pOK! (not (or (and top.impl.usr.avance0 top.impl.usr.retard0!) (and top.impl.usr.retard0 top.impl.usr.avance0!)))) (__node_trans_main_0 top.usr.B0! top.usr.B1! top.usr.S! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_0! top.res.abs_10 top.res.abs_11 top.res.inst_0) (not top.res.init_flag!)))))))) +(define-fun prop ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/metros_1_e2_1102_e1_317.sl b/benchmarks/LIA/Lustre/metros_1_e2_1102_e1_317.sl index b53f2ea..34f18a3 100644 --- a/benchmarks/LIA/Lustre/metros_1_e2_1102_e1_317.sl +++ b/benchmarks/LIA/Lustre/metros_1_e2_1102_e1_317.sl @@ -1,997 +1,35 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_controleur_0 ( - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) - (= controleur.usr.avance_a_0 false) - (= controleur.usr.retard_a_0 false) - controleur.res.init_flag_a_0) -) - -(define-fun - __node_trans_controleur_0 ( - (controleur.usr.nB_a_1 Int) - (controleur.usr.nS_a_1 Int) - (controleur.usr.diff_a_1 Int) - (controleur.usr.avance_a_1 Bool) - (controleur.usr.retard_a_1 Bool) - (controleur.res.init_flag_a_1 Bool) - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) - (= - controleur.usr.avance_a_1 - (ite - (not controleur.usr.avance_a_0) - (>= controleur.usr.diff_a_1 10) - (> controleur.usr.diff_a_1 0))) - (= - controleur.usr.retard_a_1 - (ite - (not controleur.usr.retard_a_0) - (<= controleur.usr.diff_a_1 (- 10)) - (< controleur.usr.diff_a_1 0))) - (not controleur.res.init_flag_a_1)) -) - -(define-fun - __node_init_hypothese_0 ( - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= hypothese.usr.ok_a_0 true) - (= hypothese.impl.usr.c_a_0 0) - hypothese.res.init_flag_a_0) -) - -(define-fun - __node_trans_hypothese_0 ( - (hypothese.usr.B_a_1 Bool) - (hypothese.usr.S_a_1 Bool) - (hypothese.usr.avance_a_1 Bool) - (hypothese.usr.retard_a_1 Bool) - (hypothese.usr.ok_a_1 Bool) - (hypothese.res.init_flag_a_1 Bool) - (hypothese.impl.usr.c_a_1 Int) - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= - hypothese.usr.ok_a_1 - (and - (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) - (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) - (= - hypothese.impl.usr.c_a_1 - (ite - (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) - (ite - hypothese.usr.B_a_1 - (+ (- hypothese.impl.usr.c_a_0 1) 1) - hypothese.impl.usr.c_a_0) - 0)) - (not hypothese.res.init_flag_a_1)) -) - -(define-fun - __node_init_main_0 ( - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_0)) - (let - ((X2 Bool main.res.abs_0_a_0)) - (and - (= main.usr.ast_a_0 (and X2 X1)) - (= main.usr.avance0_a_0 main.res.abs_3_a_0) - (= main.usr.nB0_a_0 0) - (= main.usr.nS_a_0 0) - (= main.usr.retard0_a_0 main.res.abs_4_a_0) - (= main.usr.avance1_a_0 main.res.abs_6_a_0) - (= main.usr.nB1_a_0 0) - (= main.usr.retard1_a_0 main.res.abs_7_a_0) - (= main.usr.diff0_a_0 main.res.abs_2_a_0) - (= main.usr.diff1_a_0 main.res.abs_5_a_0) - (__node_init_hypothese_0 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_init_controleur_0 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_init_hypothese_0 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_init_controleur_0 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - main.res.init_flag_a_0))) -) - -(define-fun - __node_trans_main_0 ( - (main.usr.B0_a_1 Bool) - (main.usr.B1_a_1 Bool) - (main.usr.S_a_1 Bool) - (main.usr.ast_a_1 Bool) - (main.usr.nB0_a_1 Int) - (main.usr.nB1_a_1 Int) - (main.usr.nS_a_1 Int) - (main.usr.diff0_a_1 Int) - (main.usr.diff1_a_1 Int) - (main.usr.avance0_a_1 Bool) - (main.usr.avance1_a_1 Bool) - (main.usr.retard0_a_1 Bool) - (main.usr.retard1_a_1 Bool) - (main.res.init_flag_a_1 Bool) - (main.res.abs_0_a_1 Bool) - (main.res.abs_1_a_1 Bool) - (main.res.abs_2_a_1 Int) - (main.res.abs_3_a_1 Bool) - (main.res.abs_4_a_1 Bool) - (main.res.abs_5_a_1 Int) - (main.res.abs_6_a_1 Bool) - (main.res.abs_7_a_1 Bool) - (main.res.inst_5_a_1 Bool) - (main.res.inst_4_a_1 Int) - (main.res.inst_3_a_1 Bool) - (main.res.inst_2_a_1 Bool) - (main.res.inst_1_a_1 Int) - (main.res.inst_0_a_1 Bool) - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_1)) - (let - ((X2 Bool main.res.abs_0_a_1)) - (and - (= main.usr.ast_a_1 (and X2 X1)) - (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) - (= - main.usr.nB0_a_1 - (ite main.usr.B0_a_1 (+ (+ main.usr.nB0_a_0 1) 1) main.usr.nB0_a_0)) - (= main.usr.avance0_a_1 main.res.abs_3_a_1) - (= main.usr.retard0_a_1 main.res.abs_4_a_1) - (= - main.usr.nB1_a_1 - (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) - (= main.usr.avance1_a_1 main.res.abs_6_a_1) - (= main.usr.retard1_a_1 main.res.abs_7_a_1) - (= main.usr.diff0_a_1 main.res.abs_2_a_1) - (= main.usr.diff1_a_1 main.res.abs_5_a_1) - (__node_trans_hypothese_0 - main.usr.B0_a_1 - main.usr.S_a_1 - main.usr.avance0_a_1 - main.usr.retard0_a_1 - main.res.abs_0_a_1 - main.res.inst_5_a_1 - main.res.inst_4_a_1 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_trans_controleur_0 - main.usr.nB0_a_1 - main.usr.nS_a_1 - main.res.abs_2_a_1 - main.res.abs_3_a_1 - main.res.abs_4_a_1 - main.res.inst_3_a_1 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_trans_hypothese_0 - main.usr.B1_a_1 - main.usr.S_a_1 - main.usr.avance1_a_1 - main.usr.retard1_a_1 - main.res.abs_1_a_1 - main.res.inst_2_a_1 - main.res.inst_1_a_1 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_trans_controleur_0 - main.usr.nB1_a_1 - main.usr.nS_a_1 - main.res.abs_5_a_1 - main.res.abs_6_a_1 - main.res.abs_7_a_1 - main.res.inst_0_a_1 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - (not main.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.avance0_a_0 Bool) - (top.impl.usr.retard0_a_0 Bool) - (top.impl.usr.pOK_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= top.impl.usr.pOK_a_0 true) - (= top.impl.usr.avance0_a_0 top.res.abs_6_a_0) - (= top.impl.usr.retard0_a_0 top.res.abs_8_a_0) - (let - ((X1 Bool top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (let - ((X3 Int top.res.abs_3_a_0)) - (let - ((X4 Int top.res.abs_2_a_0)) - (let - ((X5 Int top.res.abs_1_a_0)) - (and - (= - top.res.abs_10_a_0 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (__node_init_main_0 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.B0_a_1 Bool) - (top.usr.B1_a_1 Bool) - (top.usr.S_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.avance0_a_1 Bool) - (top.impl.usr.retard0_a_1 Bool) - (top.impl.usr.pOK_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Int) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Int) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.avance0_a_0 Bool) - (top.impl.usr.retard0_a_0 Bool) - (top.impl.usr.pOK_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_0_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (and - (= - top.res.abs_10_a_1 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (= top.usr.OK_a_1 (=> top.res.abs_11_a_1 top.impl.usr.pOK_a_0)) - (= top.impl.usr.retard0_a_1 top.res.abs_8_a_1) - (= top.impl.usr.avance0_a_1 top.res.abs_6_a_1) - (= - top.impl.usr.pOK_a_1 - (not - (or - (and top.impl.usr.avance0_a_0 top.impl.usr.retard0_a_1) - (and top.impl.usr.retard0_a_0 top.impl.usr.avance0_a_1)))) - (__node_trans_main_0 - top.usr.B0_a_1 - top.usr.B1_a_1 - top.usr.S_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_0_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.B0 Bool) -(declare-primed-var top.usr.B1 Bool) -(declare-primed-var top.usr.S Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.avance0 Bool) -(declare-primed-var top.impl.usr.retard0 Bool) -(declare-primed-var top.impl.usr.pOK Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Int) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Int) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.pOK true) - (= top.impl.usr.avance0 top.res.abs_6) - (= top.impl.usr.retard0 top.res.abs_8) - (let - ((X1 Bool top.res.abs_0)) - (let - ((X2 Int top.res.abs_4)) - (let - ((X3 Int top.res.abs_3)) - (let - ((X4 Int top.res.abs_2)) - (let - ((X5 Int top.res.abs_1)) - (and - (= - top.res.abs_10 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (__node_init_main_0 - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.B0! Bool) - (top.usr.B1! Bool) - (top.usr.S! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.avance0! Bool) - (top.impl.usr.retard0! Bool) - (top.impl.usr.pOK! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Int) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Int) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_0!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (and - (= - top.res.abs_10! - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (= top.usr.OK! (=> top.res.abs_11! top.impl.usr.pOK)) - (= top.impl.usr.retard0! top.res.abs_8!) - (= top.impl.usr.avance0! top.res.abs_6!) - (= - top.impl.usr.pOK! - (not - (or - (and top.impl.usr.avance0 top.impl.usr.retard0!) - (and top.impl.usr.retard0 top.impl.usr.avance0!)))) - (__node_trans_main_0 - top.usr.B0! - top.usr.B1! - top.usr.S! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_0! - top.res.abs_10 - top.res.abs_11 - top.res.inst_0) - (not top.res.init_flag!))))))) -) - -(define-fun - prop ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_controleur_0 ((controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) (= controleur.usr.avance_a_0 false) (= controleur.usr.retard_a_0 false) controleur.res.init_flag_a_0)) +(define-fun __node_trans_controleur_0 ((controleur.usr.nB_a_1 Int) (controleur.usr.nS_a_1 Int) (controleur.usr.diff_a_1 Int) (controleur.usr.avance_a_1 Bool) (controleur.usr.retard_a_1 Bool) (controleur.res.init_flag_a_1 Bool) (controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) (= controleur.usr.avance_a_1 (ite (not controleur.usr.avance_a_0) (>= controleur.usr.diff_a_1 10) (> controleur.usr.diff_a_1 0))) (= controleur.usr.retard_a_1 (ite (not controleur.usr.retard_a_0) (<= controleur.usr.diff_a_1 (- 10)) (< controleur.usr.diff_a_1 0))) (not controleur.res.init_flag_a_1))) +(define-fun __node_init_hypothese_0 ((hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_0 true) (= hypothese.impl.usr.c_a_0 0) hypothese.res.init_flag_a_0)) +(define-fun __node_trans_hypothese_0 ((hypothese.usr.B_a_1 Bool) (hypothese.usr.S_a_1 Bool) (hypothese.usr.avance_a_1 Bool) (hypothese.usr.retard_a_1 Bool) (hypothese.usr.ok_a_1 Bool) (hypothese.res.init_flag_a_1 Bool) (hypothese.impl.usr.c_a_1 Int) (hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_1 (and (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) (= hypothese.impl.usr.c_a_1 (ite (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) (ite hypothese.usr.B_a_1 (+ (- hypothese.impl.usr.c_a_0 1) 1) hypothese.impl.usr.c_a_0) 0)) (not hypothese.res.init_flag_a_1))) +(define-fun __node_init_main_0 ((main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_0)) (let ((X2 main.res.abs_0_a_0)) (and (= main.usr.ast_a_0 (and X2 X1)) (= main.usr.avance0_a_0 main.res.abs_3_a_0) (= main.usr.nB0_a_0 0) (= main.usr.nS_a_0 0) (= main.usr.retard0_a_0 main.res.abs_4_a_0) (= main.usr.avance1_a_0 main.res.abs_6_a_0) (= main.usr.nB1_a_0 0) (= main.usr.retard1_a_0 main.res.abs_7_a_0) (= main.usr.diff0_a_0 main.res.abs_2_a_0) (= main.usr.diff1_a_0 main.res.abs_5_a_0) (__node_init_hypothese_0 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_init_controleur_0 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_init_hypothese_0 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_init_controleur_0 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) main.res.init_flag_a_0)))) +(define-fun __node_trans_main_0 ((main.usr.B0_a_1 Bool) (main.usr.B1_a_1 Bool) (main.usr.S_a_1 Bool) (main.usr.ast_a_1 Bool) (main.usr.nB0_a_1 Int) (main.usr.nB1_a_1 Int) (main.usr.nS_a_1 Int) (main.usr.diff0_a_1 Int) (main.usr.diff1_a_1 Int) (main.usr.avance0_a_1 Bool) (main.usr.avance1_a_1 Bool) (main.usr.retard0_a_1 Bool) (main.usr.retard1_a_1 Bool) (main.res.init_flag_a_1 Bool) (main.res.abs_0_a_1 Bool) (main.res.abs_1_a_1 Bool) (main.res.abs_2_a_1 Int) (main.res.abs_3_a_1 Bool) (main.res.abs_4_a_1 Bool) (main.res.abs_5_a_1 Int) (main.res.abs_6_a_1 Bool) (main.res.abs_7_a_1 Bool) (main.res.inst_5_a_1 Bool) (main.res.inst_4_a_1 Int) (main.res.inst_3_a_1 Bool) (main.res.inst_2_a_1 Bool) (main.res.inst_1_a_1 Int) (main.res.inst_0_a_1 Bool) (main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_1)) (let ((X2 main.res.abs_0_a_1)) (and (= main.usr.ast_a_1 (and X2 X1)) (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) (= main.usr.nB0_a_1 (ite main.usr.B0_a_1 (+ (+ main.usr.nB0_a_0 1) 1) main.usr.nB0_a_0)) (= main.usr.avance0_a_1 main.res.abs_3_a_1) (= main.usr.retard0_a_1 main.res.abs_4_a_1) (= main.usr.nB1_a_1 (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) (= main.usr.avance1_a_1 main.res.abs_6_a_1) (= main.usr.retard1_a_1 main.res.abs_7_a_1) (= main.usr.diff0_a_1 main.res.abs_2_a_1) (= main.usr.diff1_a_1 main.res.abs_5_a_1) (__node_trans_hypothese_0 main.usr.B0_a_1 main.usr.S_a_1 main.usr.avance0_a_1 main.usr.retard0_a_1 main.res.abs_0_a_1 main.res.inst_5_a_1 main.res.inst_4_a_1 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_trans_controleur_0 main.usr.nB0_a_1 main.usr.nS_a_1 main.res.abs_2_a_1 main.res.abs_3_a_1 main.res.abs_4_a_1 main.res.inst_3_a_1 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_trans_hypothese_0 main.usr.B1_a_1 main.usr.S_a_1 main.usr.avance1_a_1 main.usr.retard1_a_1 main.res.abs_1_a_1 main.res.inst_2_a_1 main.res.inst_1_a_1 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_trans_controleur_0 main.usr.nB1_a_1 main.usr.nS_a_1 main.res.abs_5_a_1 main.res.abs_6_a_1 main.res.abs_7_a_1 main.res.inst_0_a_1 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) (not main.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.avance0_a_0 Bool) (top.impl.usr.retard0_a_0 Bool) (top.impl.usr.pOK_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.pOK_a_0 true) (= top.impl.usr.avance0_a_0 top.res.abs_6_a_0) (= top.impl.usr.retard0_a_0 top.res.abs_8_a_0) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_4_a_0)) (let ((X3 top.res.abs_3_a_0)) (let ((X4 top.res.abs_2_a_0)) (let ((X5 top.res.abs_1_a_0)) (and (= top.res.abs_10_a_0 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (__node_init_main_0 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.B0_a_1 Bool) (top.usr.B1_a_1 Bool) (top.usr.S_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.avance0_a_1 Bool) (top.impl.usr.retard0_a_1 Bool) (top.impl.usr.pOK_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Int) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Int) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.avance0_a_0 Bool) (top.impl.usr.retard0_a_0 Bool) (top.impl.usr.pOK_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (and (= top.res.abs_10_a_1 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (= top.usr.OK_a_1 (=> top.res.abs_11_a_1 top.impl.usr.pOK_a_0)) (= top.impl.usr.retard0_a_1 top.res.abs_8_a_1) (= top.impl.usr.avance0_a_1 top.res.abs_6_a_1) (= top.impl.usr.pOK_a_1 (not (or (and top.impl.usr.avance0_a_0 top.impl.usr.retard0_a_1) (and top.impl.usr.retard0_a_0 top.impl.usr.avance0_a_1)))) (__node_trans_main_0 top.usr.B0_a_1 top.usr.B1_a_1 top.usr.S_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_0_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.pOK true) (= top.impl.usr.avance0 top.res.abs_6) (= top.impl.usr.retard0 top.res.abs_8) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_4)) (let ((X3 top.res.abs_3)) (let ((X4 top.res.abs_2)) (let ((X5 top.res.abs_1)) (and (= top.res.abs_10 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (__node_init_main_0 top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.B0! Bool) (top.usr.B1! Bool) (top.usr.S! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.avance0! Bool) (top.impl.usr.retard0! Bool) (top.impl.usr.pOK! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Int) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Int) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_0!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (and (= top.res.abs_10! (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (= top.usr.OK! (=> top.res.abs_11! top.impl.usr.pOK)) (= top.impl.usr.retard0! top.res.abs_8!) (= top.impl.usr.avance0! top.res.abs_6!) (= top.impl.usr.pOK! (not (or (and top.impl.usr.avance0 top.impl.usr.retard0!) (and top.impl.usr.retard0 top.impl.usr.avance0!)))) (__node_trans_main_0 top.usr.B0! top.usr.B1! top.usr.S! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_0! top.res.abs_10 top.res.abs_11 top.res.inst_0) (not top.res.init_flag!)))))))) +(define-fun prop ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/metros_1_e2_1102_e2_943.sl b/benchmarks/LIA/Lustre/metros_1_e2_1102_e2_943.sl index 4f13b7d..046fdf8 100644 --- a/benchmarks/LIA/Lustre/metros_1_e2_1102_e2_943.sl +++ b/benchmarks/LIA/Lustre/metros_1_e2_1102_e2_943.sl @@ -1,997 +1,35 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_controleur_0 ( - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) - (= controleur.usr.avance_a_0 false) - (= controleur.usr.retard_a_0 false) - controleur.res.init_flag_a_0) -) - -(define-fun - __node_trans_controleur_0 ( - (controleur.usr.nB_a_1 Int) - (controleur.usr.nS_a_1 Int) - (controleur.usr.diff_a_1 Int) - (controleur.usr.avance_a_1 Bool) - (controleur.usr.retard_a_1 Bool) - (controleur.res.init_flag_a_1 Bool) - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) - (= - controleur.usr.avance_a_1 - (ite - (not controleur.usr.avance_a_0) - (>= controleur.usr.diff_a_1 10) - (> controleur.usr.diff_a_1 0))) - (= - controleur.usr.retard_a_1 - (ite - (not controleur.usr.retard_a_0) - (<= controleur.usr.diff_a_1 (- 10)) - (< controleur.usr.diff_a_1 0))) - (not controleur.res.init_flag_a_1)) -) - -(define-fun - __node_init_hypothese_0 ( - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= hypothese.usr.ok_a_0 true) - (= hypothese.impl.usr.c_a_0 0) - hypothese.res.init_flag_a_0) -) - -(define-fun - __node_trans_hypothese_0 ( - (hypothese.usr.B_a_1 Bool) - (hypothese.usr.S_a_1 Bool) - (hypothese.usr.avance_a_1 Bool) - (hypothese.usr.retard_a_1 Bool) - (hypothese.usr.ok_a_1 Bool) - (hypothese.res.init_flag_a_1 Bool) - (hypothese.impl.usr.c_a_1 Int) - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= - hypothese.usr.ok_a_1 - (and - (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) - (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) - (= - hypothese.impl.usr.c_a_1 - (ite - (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) - (ite - hypothese.usr.B_a_1 - (+ (- hypothese.impl.usr.c_a_0 1) 1) - hypothese.impl.usr.c_a_0) - 0)) - (not hypothese.res.init_flag_a_1)) -) - -(define-fun - __node_init_main_0 ( - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_0)) - (let - ((X2 Bool main.res.abs_0_a_0)) - (and - (= main.usr.ast_a_0 (and X2 X1)) - (= main.usr.avance0_a_0 main.res.abs_3_a_0) - (= main.usr.nB0_a_0 0) - (= main.usr.nS_a_0 0) - (= main.usr.retard0_a_0 main.res.abs_4_a_0) - (= main.usr.avance1_a_0 main.res.abs_6_a_0) - (= main.usr.nB1_a_0 0) - (= main.usr.retard1_a_0 main.res.abs_7_a_0) - (= main.usr.diff0_a_0 main.res.abs_2_a_0) - (= main.usr.diff1_a_0 main.res.abs_5_a_0) - (__node_init_hypothese_0 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_init_controleur_0 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_init_hypothese_0 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_init_controleur_0 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - main.res.init_flag_a_0))) -) - -(define-fun - __node_trans_main_0 ( - (main.usr.B0_a_1 Bool) - (main.usr.B1_a_1 Bool) - (main.usr.S_a_1 Bool) - (main.usr.ast_a_1 Bool) - (main.usr.nB0_a_1 Int) - (main.usr.nB1_a_1 Int) - (main.usr.nS_a_1 Int) - (main.usr.diff0_a_1 Int) - (main.usr.diff1_a_1 Int) - (main.usr.avance0_a_1 Bool) - (main.usr.avance1_a_1 Bool) - (main.usr.retard0_a_1 Bool) - (main.usr.retard1_a_1 Bool) - (main.res.init_flag_a_1 Bool) - (main.res.abs_0_a_1 Bool) - (main.res.abs_1_a_1 Bool) - (main.res.abs_2_a_1 Int) - (main.res.abs_3_a_1 Bool) - (main.res.abs_4_a_1 Bool) - (main.res.abs_5_a_1 Int) - (main.res.abs_6_a_1 Bool) - (main.res.abs_7_a_1 Bool) - (main.res.inst_5_a_1 Bool) - (main.res.inst_4_a_1 Int) - (main.res.inst_3_a_1 Bool) - (main.res.inst_2_a_1 Bool) - (main.res.inst_1_a_1 Int) - (main.res.inst_0_a_1 Bool) - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_1)) - (let - ((X2 Bool main.res.abs_0_a_1)) - (and - (= main.usr.ast_a_1 (and X2 X1)) - (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) - (= - main.usr.nB0_a_1 - (ite main.usr.B0_a_1 (+ (- main.usr.nB0_a_0 1) 1) main.usr.nB0_a_0)) - (= main.usr.avance0_a_1 main.res.abs_3_a_1) - (= main.usr.retard0_a_1 main.res.abs_4_a_1) - (= - main.usr.nB1_a_1 - (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) - (= main.usr.avance1_a_1 main.res.abs_6_a_1) - (= main.usr.retard1_a_1 main.res.abs_7_a_1) - (= main.usr.diff0_a_1 main.res.abs_2_a_1) - (= main.usr.diff1_a_1 main.res.abs_5_a_1) - (__node_trans_hypothese_0 - main.usr.B0_a_1 - main.usr.S_a_1 - main.usr.avance0_a_1 - main.usr.retard0_a_1 - main.res.abs_0_a_1 - main.res.inst_5_a_1 - main.res.inst_4_a_1 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_trans_controleur_0 - main.usr.nB0_a_1 - main.usr.nS_a_1 - main.res.abs_2_a_1 - main.res.abs_3_a_1 - main.res.abs_4_a_1 - main.res.inst_3_a_1 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_trans_hypothese_0 - main.usr.B1_a_1 - main.usr.S_a_1 - main.usr.avance1_a_1 - main.usr.retard1_a_1 - main.res.abs_1_a_1 - main.res.inst_2_a_1 - main.res.inst_1_a_1 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_trans_controleur_0 - main.usr.nB1_a_1 - main.usr.nS_a_1 - main.res.abs_5_a_1 - main.res.abs_6_a_1 - main.res.abs_7_a_1 - main.res.inst_0_a_1 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - (not main.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.avance0_a_0 Bool) - (top.impl.usr.retard0_a_0 Bool) - (top.impl.usr.pOK_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= top.impl.usr.pOK_a_0 true) - (= top.impl.usr.avance0_a_0 top.res.abs_6_a_0) - (= top.impl.usr.retard0_a_0 top.res.abs_8_a_0) - (let - ((X1 Bool top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (let - ((X3 Int top.res.abs_3_a_0)) - (let - ((X4 Int top.res.abs_2_a_0)) - (let - ((X5 Int top.res.abs_1_a_0)) - (and - (= - top.res.abs_10_a_0 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (__node_init_main_0 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.B0_a_1 Bool) - (top.usr.B1_a_1 Bool) - (top.usr.S_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.avance0_a_1 Bool) - (top.impl.usr.retard0_a_1 Bool) - (top.impl.usr.pOK_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Int) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Int) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.avance0_a_0 Bool) - (top.impl.usr.retard0_a_0 Bool) - (top.impl.usr.pOK_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_0_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (and - (= - top.res.abs_10_a_1 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (= top.usr.OK_a_1 (=> top.res.abs_11_a_1 top.impl.usr.pOK_a_0)) - (= top.impl.usr.retard0_a_1 top.res.abs_8_a_1) - (= top.impl.usr.avance0_a_1 top.res.abs_6_a_1) - (= - top.impl.usr.pOK_a_1 - (not - (or - (and top.impl.usr.avance0_a_0 top.impl.usr.retard0_a_1) - (and top.impl.usr.retard0_a_0 top.impl.usr.avance0_a_1)))) - (__node_trans_main_0 - top.usr.B0_a_1 - top.usr.B1_a_1 - top.usr.S_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_0_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.B0 Bool) -(declare-primed-var top.usr.B1 Bool) -(declare-primed-var top.usr.S Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.avance0 Bool) -(declare-primed-var top.impl.usr.retard0 Bool) -(declare-primed-var top.impl.usr.pOK Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Int) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Int) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.pOK true) - (= top.impl.usr.avance0 top.res.abs_6) - (= top.impl.usr.retard0 top.res.abs_8) - (let - ((X1 Bool top.res.abs_0)) - (let - ((X2 Int top.res.abs_4)) - (let - ((X3 Int top.res.abs_3)) - (let - ((X4 Int top.res.abs_2)) - (let - ((X5 Int top.res.abs_1)) - (and - (= - top.res.abs_10 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (__node_init_main_0 - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.B0! Bool) - (top.usr.B1! Bool) - (top.usr.S! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.avance0! Bool) - (top.impl.usr.retard0! Bool) - (top.impl.usr.pOK! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Int) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Int) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_0!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (and - (= - top.res.abs_10! - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (= top.usr.OK! (=> top.res.abs_11! top.impl.usr.pOK)) - (= top.impl.usr.retard0! top.res.abs_8!) - (= top.impl.usr.avance0! top.res.abs_6!) - (= - top.impl.usr.pOK! - (not - (or - (and top.impl.usr.avance0 top.impl.usr.retard0!) - (and top.impl.usr.retard0 top.impl.usr.avance0!)))) - (__node_trans_main_0 - top.usr.B0! - top.usr.B1! - top.usr.S! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_0! - top.res.abs_10 - top.res.abs_11 - top.res.inst_0) - (not top.res.init_flag!))))))) -) - -(define-fun - prop ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_controleur_0 ((controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) (= controleur.usr.avance_a_0 false) (= controleur.usr.retard_a_0 false) controleur.res.init_flag_a_0)) +(define-fun __node_trans_controleur_0 ((controleur.usr.nB_a_1 Int) (controleur.usr.nS_a_1 Int) (controleur.usr.diff_a_1 Int) (controleur.usr.avance_a_1 Bool) (controleur.usr.retard_a_1 Bool) (controleur.res.init_flag_a_1 Bool) (controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) (= controleur.usr.avance_a_1 (ite (not controleur.usr.avance_a_0) (>= controleur.usr.diff_a_1 10) (> controleur.usr.diff_a_1 0))) (= controleur.usr.retard_a_1 (ite (not controleur.usr.retard_a_0) (<= controleur.usr.diff_a_1 (- 10)) (< controleur.usr.diff_a_1 0))) (not controleur.res.init_flag_a_1))) +(define-fun __node_init_hypothese_0 ((hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_0 true) (= hypothese.impl.usr.c_a_0 0) hypothese.res.init_flag_a_0)) +(define-fun __node_trans_hypothese_0 ((hypothese.usr.B_a_1 Bool) (hypothese.usr.S_a_1 Bool) (hypothese.usr.avance_a_1 Bool) (hypothese.usr.retard_a_1 Bool) (hypothese.usr.ok_a_1 Bool) (hypothese.res.init_flag_a_1 Bool) (hypothese.impl.usr.c_a_1 Int) (hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_1 (and (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) (= hypothese.impl.usr.c_a_1 (ite (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) (ite hypothese.usr.B_a_1 (+ (- hypothese.impl.usr.c_a_0 1) 1) hypothese.impl.usr.c_a_0) 0)) (not hypothese.res.init_flag_a_1))) +(define-fun __node_init_main_0 ((main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_0)) (let ((X2 main.res.abs_0_a_0)) (and (= main.usr.ast_a_0 (and X2 X1)) (= main.usr.avance0_a_0 main.res.abs_3_a_0) (= main.usr.nB0_a_0 0) (= main.usr.nS_a_0 0) (= main.usr.retard0_a_0 main.res.abs_4_a_0) (= main.usr.avance1_a_0 main.res.abs_6_a_0) (= main.usr.nB1_a_0 0) (= main.usr.retard1_a_0 main.res.abs_7_a_0) (= main.usr.diff0_a_0 main.res.abs_2_a_0) (= main.usr.diff1_a_0 main.res.abs_5_a_0) (__node_init_hypothese_0 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_init_controleur_0 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_init_hypothese_0 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_init_controleur_0 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) main.res.init_flag_a_0)))) +(define-fun __node_trans_main_0 ((main.usr.B0_a_1 Bool) (main.usr.B1_a_1 Bool) (main.usr.S_a_1 Bool) (main.usr.ast_a_1 Bool) (main.usr.nB0_a_1 Int) (main.usr.nB1_a_1 Int) (main.usr.nS_a_1 Int) (main.usr.diff0_a_1 Int) (main.usr.diff1_a_1 Int) (main.usr.avance0_a_1 Bool) (main.usr.avance1_a_1 Bool) (main.usr.retard0_a_1 Bool) (main.usr.retard1_a_1 Bool) (main.res.init_flag_a_1 Bool) (main.res.abs_0_a_1 Bool) (main.res.abs_1_a_1 Bool) (main.res.abs_2_a_1 Int) (main.res.abs_3_a_1 Bool) (main.res.abs_4_a_1 Bool) (main.res.abs_5_a_1 Int) (main.res.abs_6_a_1 Bool) (main.res.abs_7_a_1 Bool) (main.res.inst_5_a_1 Bool) (main.res.inst_4_a_1 Int) (main.res.inst_3_a_1 Bool) (main.res.inst_2_a_1 Bool) (main.res.inst_1_a_1 Int) (main.res.inst_0_a_1 Bool) (main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_1)) (let ((X2 main.res.abs_0_a_1)) (and (= main.usr.ast_a_1 (and X2 X1)) (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) (= main.usr.nB0_a_1 (ite main.usr.B0_a_1 (+ (- main.usr.nB0_a_0 1) 1) main.usr.nB0_a_0)) (= main.usr.avance0_a_1 main.res.abs_3_a_1) (= main.usr.retard0_a_1 main.res.abs_4_a_1) (= main.usr.nB1_a_1 (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) (= main.usr.avance1_a_1 main.res.abs_6_a_1) (= main.usr.retard1_a_1 main.res.abs_7_a_1) (= main.usr.diff0_a_1 main.res.abs_2_a_1) (= main.usr.diff1_a_1 main.res.abs_5_a_1) (__node_trans_hypothese_0 main.usr.B0_a_1 main.usr.S_a_1 main.usr.avance0_a_1 main.usr.retard0_a_1 main.res.abs_0_a_1 main.res.inst_5_a_1 main.res.inst_4_a_1 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_trans_controleur_0 main.usr.nB0_a_1 main.usr.nS_a_1 main.res.abs_2_a_1 main.res.abs_3_a_1 main.res.abs_4_a_1 main.res.inst_3_a_1 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_trans_hypothese_0 main.usr.B1_a_1 main.usr.S_a_1 main.usr.avance1_a_1 main.usr.retard1_a_1 main.res.abs_1_a_1 main.res.inst_2_a_1 main.res.inst_1_a_1 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_trans_controleur_0 main.usr.nB1_a_1 main.usr.nS_a_1 main.res.abs_5_a_1 main.res.abs_6_a_1 main.res.abs_7_a_1 main.res.inst_0_a_1 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) (not main.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.avance0_a_0 Bool) (top.impl.usr.retard0_a_0 Bool) (top.impl.usr.pOK_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.pOK_a_0 true) (= top.impl.usr.avance0_a_0 top.res.abs_6_a_0) (= top.impl.usr.retard0_a_0 top.res.abs_8_a_0) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_4_a_0)) (let ((X3 top.res.abs_3_a_0)) (let ((X4 top.res.abs_2_a_0)) (let ((X5 top.res.abs_1_a_0)) (and (= top.res.abs_10_a_0 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (__node_init_main_0 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.B0_a_1 Bool) (top.usr.B1_a_1 Bool) (top.usr.S_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.avance0_a_1 Bool) (top.impl.usr.retard0_a_1 Bool) (top.impl.usr.pOK_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Int) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Int) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.avance0_a_0 Bool) (top.impl.usr.retard0_a_0 Bool) (top.impl.usr.pOK_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (and (= top.res.abs_10_a_1 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (= top.usr.OK_a_1 (=> top.res.abs_11_a_1 top.impl.usr.pOK_a_0)) (= top.impl.usr.retard0_a_1 top.res.abs_8_a_1) (= top.impl.usr.avance0_a_1 top.res.abs_6_a_1) (= top.impl.usr.pOK_a_1 (not (or (and top.impl.usr.avance0_a_0 top.impl.usr.retard0_a_1) (and top.impl.usr.retard0_a_0 top.impl.usr.avance0_a_1)))) (__node_trans_main_0 top.usr.B0_a_1 top.usr.B1_a_1 top.usr.S_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_0_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.pOK true) (= top.impl.usr.avance0 top.res.abs_6) (= top.impl.usr.retard0 top.res.abs_8) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_4)) (let ((X3 top.res.abs_3)) (let ((X4 top.res.abs_2)) (let ((X5 top.res.abs_1)) (and (= top.res.abs_10 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (__node_init_main_0 top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.B0! Bool) (top.usr.B1! Bool) (top.usr.S! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.avance0! Bool) (top.impl.usr.retard0! Bool) (top.impl.usr.pOK! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Int) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Int) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_0!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (and (= top.res.abs_10! (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (= top.usr.OK! (=> top.res.abs_11! top.impl.usr.pOK)) (= top.impl.usr.retard0! top.res.abs_8!) (= top.impl.usr.avance0! top.res.abs_6!) (= top.impl.usr.pOK! (not (or (and top.impl.usr.avance0 top.impl.usr.retard0!) (and top.impl.usr.retard0 top.impl.usr.avance0!)))) (__node_trans_main_0 top.usr.B0! top.usr.B1! top.usr.S! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_0! top.res.abs_10 top.res.abs_11 top.res.inst_0) (not top.res.init_flag!)))))))) +(define-fun prop ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/metros_1_e2_1102_e3_961.sl b/benchmarks/LIA/Lustre/metros_1_e2_1102_e3_961.sl index 48a9b61..7c3c2ef 100644 --- a/benchmarks/LIA/Lustre/metros_1_e2_1102_e3_961.sl +++ b/benchmarks/LIA/Lustre/metros_1_e2_1102_e3_961.sl @@ -1,997 +1,35 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_controleur_0 ( - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) - (= controleur.usr.avance_a_0 false) - (= controleur.usr.retard_a_0 false) - controleur.res.init_flag_a_0) -) - -(define-fun - __node_trans_controleur_0 ( - (controleur.usr.nB_a_1 Int) - (controleur.usr.nS_a_1 Int) - (controleur.usr.diff_a_1 Int) - (controleur.usr.avance_a_1 Bool) - (controleur.usr.retard_a_1 Bool) - (controleur.res.init_flag_a_1 Bool) - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) - (= - controleur.usr.avance_a_1 - (ite - (not controleur.usr.avance_a_0) - (>= controleur.usr.diff_a_1 10) - (> controleur.usr.diff_a_1 0))) - (= - controleur.usr.retard_a_1 - (ite - (not controleur.usr.retard_a_0) - (<= controleur.usr.diff_a_1 (- 10)) - (< controleur.usr.diff_a_1 0))) - (not controleur.res.init_flag_a_1)) -) - -(define-fun - __node_init_hypothese_0 ( - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= hypothese.usr.ok_a_0 true) - (= hypothese.impl.usr.c_a_0 0) - hypothese.res.init_flag_a_0) -) - -(define-fun - __node_trans_hypothese_0 ( - (hypothese.usr.B_a_1 Bool) - (hypothese.usr.S_a_1 Bool) - (hypothese.usr.avance_a_1 Bool) - (hypothese.usr.retard_a_1 Bool) - (hypothese.usr.ok_a_1 Bool) - (hypothese.res.init_flag_a_1 Bool) - (hypothese.impl.usr.c_a_1 Int) - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= - hypothese.usr.ok_a_1 - (and - (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) - (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) - (= - hypothese.impl.usr.c_a_1 - (ite - (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) - (ite - hypothese.usr.B_a_1 - (+ (- hypothese.impl.usr.c_a_0 1) 1) - hypothese.impl.usr.c_a_0) - 0)) - (not hypothese.res.init_flag_a_1)) -) - -(define-fun - __node_init_main_0 ( - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_0)) - (let - ((X2 Bool main.res.abs_0_a_0)) - (and - (= main.usr.ast_a_0 (and X2 X1)) - (= main.usr.avance0_a_0 main.res.abs_3_a_0) - (= main.usr.nB0_a_0 0) - (= main.usr.nS_a_0 0) - (= main.usr.retard0_a_0 main.res.abs_4_a_0) - (= main.usr.avance1_a_0 main.res.abs_6_a_0) - (= main.usr.nB1_a_0 0) - (= main.usr.retard1_a_0 main.res.abs_7_a_0) - (= main.usr.diff0_a_0 main.res.abs_2_a_0) - (= main.usr.diff1_a_0 main.res.abs_5_a_0) - (__node_init_hypothese_0 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_init_controleur_0 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_init_hypothese_0 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_init_controleur_0 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - main.res.init_flag_a_0))) -) - -(define-fun - __node_trans_main_0 ( - (main.usr.B0_a_1 Bool) - (main.usr.B1_a_1 Bool) - (main.usr.S_a_1 Bool) - (main.usr.ast_a_1 Bool) - (main.usr.nB0_a_1 Int) - (main.usr.nB1_a_1 Int) - (main.usr.nS_a_1 Int) - (main.usr.diff0_a_1 Int) - (main.usr.diff1_a_1 Int) - (main.usr.avance0_a_1 Bool) - (main.usr.avance1_a_1 Bool) - (main.usr.retard0_a_1 Bool) - (main.usr.retard1_a_1 Bool) - (main.res.init_flag_a_1 Bool) - (main.res.abs_0_a_1 Bool) - (main.res.abs_1_a_1 Bool) - (main.res.abs_2_a_1 Int) - (main.res.abs_3_a_1 Bool) - (main.res.abs_4_a_1 Bool) - (main.res.abs_5_a_1 Int) - (main.res.abs_6_a_1 Bool) - (main.res.abs_7_a_1 Bool) - (main.res.inst_5_a_1 Bool) - (main.res.inst_4_a_1 Int) - (main.res.inst_3_a_1 Bool) - (main.res.inst_2_a_1 Bool) - (main.res.inst_1_a_1 Int) - (main.res.inst_0_a_1 Bool) - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_1)) - (let - ((X2 Bool main.res.abs_0_a_1)) - (and - (= main.usr.ast_a_1 (and X2 X1)) - (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) - (= - main.usr.nB0_a_1 - (ite main.usr.B0_a_1 (- main.usr.nB0_a_0 1) main.usr.nB0_a_0)) - (= main.usr.avance0_a_1 main.res.abs_3_a_1) - (= main.usr.retard0_a_1 main.res.abs_4_a_1) - (= - main.usr.nB1_a_1 - (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) - (= main.usr.avance1_a_1 main.res.abs_6_a_1) - (= main.usr.retard1_a_1 main.res.abs_7_a_1) - (= main.usr.diff0_a_1 main.res.abs_2_a_1) - (= main.usr.diff1_a_1 main.res.abs_5_a_1) - (__node_trans_hypothese_0 - main.usr.B0_a_1 - main.usr.S_a_1 - main.usr.avance0_a_1 - main.usr.retard0_a_1 - main.res.abs_0_a_1 - main.res.inst_5_a_1 - main.res.inst_4_a_1 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_trans_controleur_0 - main.usr.nB0_a_1 - main.usr.nS_a_1 - main.res.abs_2_a_1 - main.res.abs_3_a_1 - main.res.abs_4_a_1 - main.res.inst_3_a_1 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_trans_hypothese_0 - main.usr.B1_a_1 - main.usr.S_a_1 - main.usr.avance1_a_1 - main.usr.retard1_a_1 - main.res.abs_1_a_1 - main.res.inst_2_a_1 - main.res.inst_1_a_1 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_trans_controleur_0 - main.usr.nB1_a_1 - main.usr.nS_a_1 - main.res.abs_5_a_1 - main.res.abs_6_a_1 - main.res.abs_7_a_1 - main.res.inst_0_a_1 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - (not main.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.avance0_a_0 Bool) - (top.impl.usr.retard0_a_0 Bool) - (top.impl.usr.pOK_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= top.impl.usr.pOK_a_0 true) - (= top.impl.usr.avance0_a_0 top.res.abs_6_a_0) - (= top.impl.usr.retard0_a_0 top.res.abs_8_a_0) - (let - ((X1 Bool top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (let - ((X3 Int top.res.abs_3_a_0)) - (let - ((X4 Int top.res.abs_2_a_0)) - (let - ((X5 Int top.res.abs_1_a_0)) - (and - (= - top.res.abs_10_a_0 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (__node_init_main_0 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.B0_a_1 Bool) - (top.usr.B1_a_1 Bool) - (top.usr.S_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.avance0_a_1 Bool) - (top.impl.usr.retard0_a_1 Bool) - (top.impl.usr.pOK_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Int) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Int) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.avance0_a_0 Bool) - (top.impl.usr.retard0_a_0 Bool) - (top.impl.usr.pOK_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_0_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (and - (= - top.res.abs_10_a_1 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (= top.usr.OK_a_1 (=> top.res.abs_11_a_1 top.impl.usr.pOK_a_0)) - (= top.impl.usr.retard0_a_1 top.res.abs_8_a_1) - (= top.impl.usr.avance0_a_1 top.res.abs_6_a_1) - (= - top.impl.usr.pOK_a_1 - (not - (or - (and top.impl.usr.avance0_a_0 top.impl.usr.retard0_a_1) - (and top.impl.usr.retard0_a_0 top.impl.usr.avance0_a_1)))) - (__node_trans_main_0 - top.usr.B0_a_1 - top.usr.B1_a_1 - top.usr.S_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_0_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.B0 Bool) -(declare-primed-var top.usr.B1 Bool) -(declare-primed-var top.usr.S Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.avance0 Bool) -(declare-primed-var top.impl.usr.retard0 Bool) -(declare-primed-var top.impl.usr.pOK Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Int) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Int) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.pOK true) - (= top.impl.usr.avance0 top.res.abs_6) - (= top.impl.usr.retard0 top.res.abs_8) - (let - ((X1 Bool top.res.abs_0)) - (let - ((X2 Int top.res.abs_4)) - (let - ((X3 Int top.res.abs_3)) - (let - ((X4 Int top.res.abs_2)) - (let - ((X5 Int top.res.abs_1)) - (and - (= - top.res.abs_10 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (__node_init_main_0 - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.B0! Bool) - (top.usr.B1! Bool) - (top.usr.S! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.avance0! Bool) - (top.impl.usr.retard0! Bool) - (top.impl.usr.pOK! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Int) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Int) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_0!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (and - (= - top.res.abs_10! - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (= top.usr.OK! (=> top.res.abs_11! top.impl.usr.pOK)) - (= top.impl.usr.retard0! top.res.abs_8!) - (= top.impl.usr.avance0! top.res.abs_6!) - (= - top.impl.usr.pOK! - (not - (or - (and top.impl.usr.avance0 top.impl.usr.retard0!) - (and top.impl.usr.retard0 top.impl.usr.avance0!)))) - (__node_trans_main_0 - top.usr.B0! - top.usr.B1! - top.usr.S! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_0! - top.res.abs_10 - top.res.abs_11 - top.res.inst_0) - (not top.res.init_flag!))))))) -) - -(define-fun - prop ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_controleur_0 ((controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) (= controleur.usr.avance_a_0 false) (= controleur.usr.retard_a_0 false) controleur.res.init_flag_a_0)) +(define-fun __node_trans_controleur_0 ((controleur.usr.nB_a_1 Int) (controleur.usr.nS_a_1 Int) (controleur.usr.diff_a_1 Int) (controleur.usr.avance_a_1 Bool) (controleur.usr.retard_a_1 Bool) (controleur.res.init_flag_a_1 Bool) (controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) (= controleur.usr.avance_a_1 (ite (not controleur.usr.avance_a_0) (>= controleur.usr.diff_a_1 10) (> controleur.usr.diff_a_1 0))) (= controleur.usr.retard_a_1 (ite (not controleur.usr.retard_a_0) (<= controleur.usr.diff_a_1 (- 10)) (< controleur.usr.diff_a_1 0))) (not controleur.res.init_flag_a_1))) +(define-fun __node_init_hypothese_0 ((hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_0 true) (= hypothese.impl.usr.c_a_0 0) hypothese.res.init_flag_a_0)) +(define-fun __node_trans_hypothese_0 ((hypothese.usr.B_a_1 Bool) (hypothese.usr.S_a_1 Bool) (hypothese.usr.avance_a_1 Bool) (hypothese.usr.retard_a_1 Bool) (hypothese.usr.ok_a_1 Bool) (hypothese.res.init_flag_a_1 Bool) (hypothese.impl.usr.c_a_1 Int) (hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_1 (and (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) (= hypothese.impl.usr.c_a_1 (ite (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) (ite hypothese.usr.B_a_1 (+ (- hypothese.impl.usr.c_a_0 1) 1) hypothese.impl.usr.c_a_0) 0)) (not hypothese.res.init_flag_a_1))) +(define-fun __node_init_main_0 ((main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_0)) (let ((X2 main.res.abs_0_a_0)) (and (= main.usr.ast_a_0 (and X2 X1)) (= main.usr.avance0_a_0 main.res.abs_3_a_0) (= main.usr.nB0_a_0 0) (= main.usr.nS_a_0 0) (= main.usr.retard0_a_0 main.res.abs_4_a_0) (= main.usr.avance1_a_0 main.res.abs_6_a_0) (= main.usr.nB1_a_0 0) (= main.usr.retard1_a_0 main.res.abs_7_a_0) (= main.usr.diff0_a_0 main.res.abs_2_a_0) (= main.usr.diff1_a_0 main.res.abs_5_a_0) (__node_init_hypothese_0 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_init_controleur_0 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_init_hypothese_0 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_init_controleur_0 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) main.res.init_flag_a_0)))) +(define-fun __node_trans_main_0 ((main.usr.B0_a_1 Bool) (main.usr.B1_a_1 Bool) (main.usr.S_a_1 Bool) (main.usr.ast_a_1 Bool) (main.usr.nB0_a_1 Int) (main.usr.nB1_a_1 Int) (main.usr.nS_a_1 Int) (main.usr.diff0_a_1 Int) (main.usr.diff1_a_1 Int) (main.usr.avance0_a_1 Bool) (main.usr.avance1_a_1 Bool) (main.usr.retard0_a_1 Bool) (main.usr.retard1_a_1 Bool) (main.res.init_flag_a_1 Bool) (main.res.abs_0_a_1 Bool) (main.res.abs_1_a_1 Bool) (main.res.abs_2_a_1 Int) (main.res.abs_3_a_1 Bool) (main.res.abs_4_a_1 Bool) (main.res.abs_5_a_1 Int) (main.res.abs_6_a_1 Bool) (main.res.abs_7_a_1 Bool) (main.res.inst_5_a_1 Bool) (main.res.inst_4_a_1 Int) (main.res.inst_3_a_1 Bool) (main.res.inst_2_a_1 Bool) (main.res.inst_1_a_1 Int) (main.res.inst_0_a_1 Bool) (main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_1)) (let ((X2 main.res.abs_0_a_1)) (and (= main.usr.ast_a_1 (and X2 X1)) (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) (= main.usr.nB0_a_1 (ite main.usr.B0_a_1 (- main.usr.nB0_a_0 1) main.usr.nB0_a_0)) (= main.usr.avance0_a_1 main.res.abs_3_a_1) (= main.usr.retard0_a_1 main.res.abs_4_a_1) (= main.usr.nB1_a_1 (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) (= main.usr.avance1_a_1 main.res.abs_6_a_1) (= main.usr.retard1_a_1 main.res.abs_7_a_1) (= main.usr.diff0_a_1 main.res.abs_2_a_1) (= main.usr.diff1_a_1 main.res.abs_5_a_1) (__node_trans_hypothese_0 main.usr.B0_a_1 main.usr.S_a_1 main.usr.avance0_a_1 main.usr.retard0_a_1 main.res.abs_0_a_1 main.res.inst_5_a_1 main.res.inst_4_a_1 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_trans_controleur_0 main.usr.nB0_a_1 main.usr.nS_a_1 main.res.abs_2_a_1 main.res.abs_3_a_1 main.res.abs_4_a_1 main.res.inst_3_a_1 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_trans_hypothese_0 main.usr.B1_a_1 main.usr.S_a_1 main.usr.avance1_a_1 main.usr.retard1_a_1 main.res.abs_1_a_1 main.res.inst_2_a_1 main.res.inst_1_a_1 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_trans_controleur_0 main.usr.nB1_a_1 main.usr.nS_a_1 main.res.abs_5_a_1 main.res.abs_6_a_1 main.res.abs_7_a_1 main.res.inst_0_a_1 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) (not main.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.avance0_a_0 Bool) (top.impl.usr.retard0_a_0 Bool) (top.impl.usr.pOK_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.pOK_a_0 true) (= top.impl.usr.avance0_a_0 top.res.abs_6_a_0) (= top.impl.usr.retard0_a_0 top.res.abs_8_a_0) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_4_a_0)) (let ((X3 top.res.abs_3_a_0)) (let ((X4 top.res.abs_2_a_0)) (let ((X5 top.res.abs_1_a_0)) (and (= top.res.abs_10_a_0 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (__node_init_main_0 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.B0_a_1 Bool) (top.usr.B1_a_1 Bool) (top.usr.S_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.avance0_a_1 Bool) (top.impl.usr.retard0_a_1 Bool) (top.impl.usr.pOK_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Int) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Int) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.avance0_a_0 Bool) (top.impl.usr.retard0_a_0 Bool) (top.impl.usr.pOK_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (and (= top.res.abs_10_a_1 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (= top.usr.OK_a_1 (=> top.res.abs_11_a_1 top.impl.usr.pOK_a_0)) (= top.impl.usr.retard0_a_1 top.res.abs_8_a_1) (= top.impl.usr.avance0_a_1 top.res.abs_6_a_1) (= top.impl.usr.pOK_a_1 (not (or (and top.impl.usr.avance0_a_0 top.impl.usr.retard0_a_1) (and top.impl.usr.retard0_a_0 top.impl.usr.avance0_a_1)))) (__node_trans_main_0 top.usr.B0_a_1 top.usr.B1_a_1 top.usr.S_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_0_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.pOK true) (= top.impl.usr.avance0 top.res.abs_6) (= top.impl.usr.retard0 top.res.abs_8) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_4)) (let ((X3 top.res.abs_3)) (let ((X4 top.res.abs_2)) (let ((X5 top.res.abs_1)) (and (= top.res.abs_10 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (__node_init_main_0 top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.B0! Bool) (top.usr.B1! Bool) (top.usr.S! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.avance0! Bool) (top.impl.usr.retard0! Bool) (top.impl.usr.pOK! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Int) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Int) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_0!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (and (= top.res.abs_10! (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (= top.usr.OK! (=> top.res.abs_11! top.impl.usr.pOK)) (= top.impl.usr.retard0! top.res.abs_8!) (= top.impl.usr.avance0! top.res.abs_6!) (= top.impl.usr.pOK! (not (or (and top.impl.usr.avance0 top.impl.usr.retard0!) (and top.impl.usr.retard0 top.impl.usr.avance0!)))) (__node_trans_main_0 top.usr.B0! top.usr.B1! top.usr.S! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_0! top.res.abs_10 top.res.abs_11 top.res.inst_0) (not top.res.init_flag!)))))))) +(define-fun prop ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/metros_1_e2_1102_e7_1163.sl b/benchmarks/LIA/Lustre/metros_1_e2_1102_e7_1163.sl index eaa56bb..b983fe7 100644 --- a/benchmarks/LIA/Lustre/metros_1_e2_1102_e7_1163.sl +++ b/benchmarks/LIA/Lustre/metros_1_e2_1102_e7_1163.sl @@ -1,997 +1,35 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_controleur_0 ( - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) - (= controleur.usr.avance_a_0 false) - (= controleur.usr.retard_a_0 false) - controleur.res.init_flag_a_0) -) - -(define-fun - __node_trans_controleur_0 ( - (controleur.usr.nB_a_1 Int) - (controleur.usr.nS_a_1 Int) - (controleur.usr.diff_a_1 Int) - (controleur.usr.avance_a_1 Bool) - (controleur.usr.retard_a_1 Bool) - (controleur.res.init_flag_a_1 Bool) - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) - (= - controleur.usr.avance_a_1 - (ite - (not controleur.usr.avance_a_0) - (>= controleur.usr.diff_a_1 10) - (> controleur.usr.diff_a_1 0))) - (= - controleur.usr.retard_a_1 - (ite - (not controleur.usr.retard_a_0) - (<= controleur.usr.diff_a_1 (- 10)) - (< controleur.usr.diff_a_1 0))) - (not controleur.res.init_flag_a_1)) -) - -(define-fun - __node_init_hypothese_0 ( - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= hypothese.usr.ok_a_0 true) - (= hypothese.impl.usr.c_a_0 0) - hypothese.res.init_flag_a_0) -) - -(define-fun - __node_trans_hypothese_0 ( - (hypothese.usr.B_a_1 Bool) - (hypothese.usr.S_a_1 Bool) - (hypothese.usr.avance_a_1 Bool) - (hypothese.usr.retard_a_1 Bool) - (hypothese.usr.ok_a_1 Bool) - (hypothese.res.init_flag_a_1 Bool) - (hypothese.impl.usr.c_a_1 Int) - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= - hypothese.usr.ok_a_1 - (and - (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) - (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) - (= - hypothese.impl.usr.c_a_1 - (ite - (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) - (ite - hypothese.usr.B_a_1 - (+ (- hypothese.impl.usr.c_a_0 1) 1) - hypothese.impl.usr.c_a_0) - 0)) - (not hypothese.res.init_flag_a_1)) -) - -(define-fun - __node_init_main_0 ( - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_0)) - (let - ((X2 Bool main.res.abs_0_a_0)) - (and - (= main.usr.ast_a_0 (and X2 X1)) - (= main.usr.avance0_a_0 main.res.abs_3_a_0) - (= main.usr.nB0_a_0 0) - (= main.usr.nS_a_0 0) - (= main.usr.retard0_a_0 main.res.abs_4_a_0) - (= main.usr.avance1_a_0 main.res.abs_6_a_0) - (= main.usr.nB1_a_0 0) - (= main.usr.retard1_a_0 main.res.abs_7_a_0) - (= main.usr.diff0_a_0 main.res.abs_2_a_0) - (= main.usr.diff1_a_0 main.res.abs_5_a_0) - (__node_init_hypothese_0 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_init_controleur_0 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_init_hypothese_0 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_init_controleur_0 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - main.res.init_flag_a_0))) -) - -(define-fun - __node_trans_main_0 ( - (main.usr.B0_a_1 Bool) - (main.usr.B1_a_1 Bool) - (main.usr.S_a_1 Bool) - (main.usr.ast_a_1 Bool) - (main.usr.nB0_a_1 Int) - (main.usr.nB1_a_1 Int) - (main.usr.nS_a_1 Int) - (main.usr.diff0_a_1 Int) - (main.usr.diff1_a_1 Int) - (main.usr.avance0_a_1 Bool) - (main.usr.avance1_a_1 Bool) - (main.usr.retard0_a_1 Bool) - (main.usr.retard1_a_1 Bool) - (main.res.init_flag_a_1 Bool) - (main.res.abs_0_a_1 Bool) - (main.res.abs_1_a_1 Bool) - (main.res.abs_2_a_1 Int) - (main.res.abs_3_a_1 Bool) - (main.res.abs_4_a_1 Bool) - (main.res.abs_5_a_1 Int) - (main.res.abs_6_a_1 Bool) - (main.res.abs_7_a_1 Bool) - (main.res.inst_5_a_1 Bool) - (main.res.inst_4_a_1 Int) - (main.res.inst_3_a_1 Bool) - (main.res.inst_2_a_1 Bool) - (main.res.inst_1_a_1 Int) - (main.res.inst_0_a_1 Bool) - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_1)) - (let - ((X2 Bool main.res.abs_0_a_1)) - (and - (= main.usr.ast_a_1 (and X2 X1)) - (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) - (= - main.usr.nB0_a_1 - (ite main.usr.B0_a_1 (+ main.usr.nB0_a_0 1) main.usr.nB0_a_0)) - (= main.usr.avance0_a_1 main.res.abs_3_a_1) - (= main.usr.retard0_a_1 main.res.abs_4_a_1) - (= - main.usr.nB1_a_1 - (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) - (= main.usr.avance1_a_1 main.res.abs_6_a_1) - (= main.usr.retard1_a_1 main.res.abs_7_a_1) - (= main.usr.diff0_a_1 main.res.abs_2_a_1) - (= main.usr.diff1_a_1 main.res.abs_5_a_1) - (__node_trans_hypothese_0 - main.usr.B0_a_1 - main.usr.S_a_1 - main.usr.avance0_a_1 - main.usr.retard0_a_1 - main.res.abs_0_a_1 - main.res.inst_5_a_1 - main.res.inst_4_a_1 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_trans_controleur_0 - main.usr.nB0_a_1 - main.usr.nS_a_1 - main.res.abs_2_a_1 - main.res.abs_3_a_1 - main.res.abs_4_a_1 - main.res.inst_3_a_1 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_trans_hypothese_0 - main.usr.B1_a_1 - main.usr.S_a_1 - main.usr.avance1_a_1 - main.usr.retard1_a_1 - main.res.abs_1_a_1 - main.res.inst_2_a_1 - main.res.inst_1_a_1 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_trans_controleur_0 - main.usr.nB1_a_1 - main.usr.nS_a_1 - main.res.abs_5_a_1 - main.res.abs_6_a_1 - main.res.abs_7_a_1 - main.res.inst_0_a_1 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - (not main.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.avance0_a_0 Bool) - (top.impl.usr.retard0_a_0 Bool) - (top.impl.usr.pOK_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= top.impl.usr.pOK_a_0 true) - (= top.impl.usr.avance0_a_0 top.res.abs_6_a_0) - (= top.impl.usr.retard0_a_0 top.res.abs_8_a_0) - (let - ((X1 Bool top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (let - ((X3 Int top.res.abs_3_a_0)) - (let - ((X4 Int top.res.abs_2_a_0)) - (let - ((X5 Int top.res.abs_1_a_0)) - (and - (= - top.res.abs_10_a_0 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (__node_init_main_0 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.B0_a_1 Bool) - (top.usr.B1_a_1 Bool) - (top.usr.S_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.avance0_a_1 Bool) - (top.impl.usr.retard0_a_1 Bool) - (top.impl.usr.pOK_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Int) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Int) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.avance0_a_0 Bool) - (top.impl.usr.retard0_a_0 Bool) - (top.impl.usr.pOK_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_0_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (and - (= - top.res.abs_10_a_1 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (= top.usr.OK_a_1 (=> top.res.abs_11_a_1 top.impl.usr.pOK_a_0)) - (= top.impl.usr.retard0_a_1 top.res.abs_8_a_1) - (= top.impl.usr.avance0_a_1 top.res.abs_6_a_1) - (= - top.impl.usr.pOK_a_1 - (not - (or - (and top.impl.usr.avance0_a_0 top.impl.usr.retard0_a_1) - (and top.impl.usr.retard0_a_0 top.impl.usr.avance0_a_1)))) - (__node_trans_main_0 - top.usr.B0_a_1 - top.usr.B1_a_1 - top.usr.S_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_0_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.B0 Bool) -(declare-primed-var top.usr.B1 Bool) -(declare-primed-var top.usr.S Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.avance0 Bool) -(declare-primed-var top.impl.usr.retard0 Bool) -(declare-primed-var top.impl.usr.pOK Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Int) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Int) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.pOK true) - (= top.impl.usr.avance0 top.res.abs_6) - (= top.impl.usr.retard0 top.res.abs_8) - (let - ((X1 Bool top.res.abs_0)) - (let - ((X2 Int top.res.abs_4)) - (let - ((X3 Int top.res.abs_3)) - (let - ((X4 Int top.res.abs_2)) - (let - ((X5 Int top.res.abs_1)) - (and - (= - top.res.abs_10 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (__node_init_main_0 - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.B0! Bool) - (top.usr.B1! Bool) - (top.usr.S! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.avance0! Bool) - (top.impl.usr.retard0! Bool) - (top.impl.usr.pOK! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Int) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Int) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_0!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (and - (= - top.res.abs_10! - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (= top.usr.OK! (=> top.res.abs_11! top.impl.usr.pOK)) - (= top.impl.usr.retard0! top.res.abs_8!) - (= top.impl.usr.avance0! top.res.abs_6!) - (= - top.impl.usr.pOK! - (not - (or - (and top.impl.usr.avance0 top.impl.usr.retard0!) - (and top.impl.usr.retard0 top.impl.usr.avance0!)))) - (__node_trans_main_0 - top.usr.B0! - top.usr.B1! - top.usr.S! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_0! - top.res.abs_10 - top.res.abs_11 - top.res.inst_0) - (not top.res.init_flag!))))))) -) - -(define-fun - prop ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_controleur_0 ((controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) (= controleur.usr.avance_a_0 false) (= controleur.usr.retard_a_0 false) controleur.res.init_flag_a_0)) +(define-fun __node_trans_controleur_0 ((controleur.usr.nB_a_1 Int) (controleur.usr.nS_a_1 Int) (controleur.usr.diff_a_1 Int) (controleur.usr.avance_a_1 Bool) (controleur.usr.retard_a_1 Bool) (controleur.res.init_flag_a_1 Bool) (controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) (= controleur.usr.avance_a_1 (ite (not controleur.usr.avance_a_0) (>= controleur.usr.diff_a_1 10) (> controleur.usr.diff_a_1 0))) (= controleur.usr.retard_a_1 (ite (not controleur.usr.retard_a_0) (<= controleur.usr.diff_a_1 (- 10)) (< controleur.usr.diff_a_1 0))) (not controleur.res.init_flag_a_1))) +(define-fun __node_init_hypothese_0 ((hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_0 true) (= hypothese.impl.usr.c_a_0 0) hypothese.res.init_flag_a_0)) +(define-fun __node_trans_hypothese_0 ((hypothese.usr.B_a_1 Bool) (hypothese.usr.S_a_1 Bool) (hypothese.usr.avance_a_1 Bool) (hypothese.usr.retard_a_1 Bool) (hypothese.usr.ok_a_1 Bool) (hypothese.res.init_flag_a_1 Bool) (hypothese.impl.usr.c_a_1 Int) (hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_1 (and (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) (= hypothese.impl.usr.c_a_1 (ite (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) (ite hypothese.usr.B_a_1 (+ (- hypothese.impl.usr.c_a_0 1) 1) hypothese.impl.usr.c_a_0) 0)) (not hypothese.res.init_flag_a_1))) +(define-fun __node_init_main_0 ((main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_0)) (let ((X2 main.res.abs_0_a_0)) (and (= main.usr.ast_a_0 (and X2 X1)) (= main.usr.avance0_a_0 main.res.abs_3_a_0) (= main.usr.nB0_a_0 0) (= main.usr.nS_a_0 0) (= main.usr.retard0_a_0 main.res.abs_4_a_0) (= main.usr.avance1_a_0 main.res.abs_6_a_0) (= main.usr.nB1_a_0 0) (= main.usr.retard1_a_0 main.res.abs_7_a_0) (= main.usr.diff0_a_0 main.res.abs_2_a_0) (= main.usr.diff1_a_0 main.res.abs_5_a_0) (__node_init_hypothese_0 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_init_controleur_0 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_init_hypothese_0 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_init_controleur_0 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) main.res.init_flag_a_0)))) +(define-fun __node_trans_main_0 ((main.usr.B0_a_1 Bool) (main.usr.B1_a_1 Bool) (main.usr.S_a_1 Bool) (main.usr.ast_a_1 Bool) (main.usr.nB0_a_1 Int) (main.usr.nB1_a_1 Int) (main.usr.nS_a_1 Int) (main.usr.diff0_a_1 Int) (main.usr.diff1_a_1 Int) (main.usr.avance0_a_1 Bool) (main.usr.avance1_a_1 Bool) (main.usr.retard0_a_1 Bool) (main.usr.retard1_a_1 Bool) (main.res.init_flag_a_1 Bool) (main.res.abs_0_a_1 Bool) (main.res.abs_1_a_1 Bool) (main.res.abs_2_a_1 Int) (main.res.abs_3_a_1 Bool) (main.res.abs_4_a_1 Bool) (main.res.abs_5_a_1 Int) (main.res.abs_6_a_1 Bool) (main.res.abs_7_a_1 Bool) (main.res.inst_5_a_1 Bool) (main.res.inst_4_a_1 Int) (main.res.inst_3_a_1 Bool) (main.res.inst_2_a_1 Bool) (main.res.inst_1_a_1 Int) (main.res.inst_0_a_1 Bool) (main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_1)) (let ((X2 main.res.abs_0_a_1)) (and (= main.usr.ast_a_1 (and X2 X1)) (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) (= main.usr.nB0_a_1 (ite main.usr.B0_a_1 (+ main.usr.nB0_a_0 1) main.usr.nB0_a_0)) (= main.usr.avance0_a_1 main.res.abs_3_a_1) (= main.usr.retard0_a_1 main.res.abs_4_a_1) (= main.usr.nB1_a_1 (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) (= main.usr.avance1_a_1 main.res.abs_6_a_1) (= main.usr.retard1_a_1 main.res.abs_7_a_1) (= main.usr.diff0_a_1 main.res.abs_2_a_1) (= main.usr.diff1_a_1 main.res.abs_5_a_1) (__node_trans_hypothese_0 main.usr.B0_a_1 main.usr.S_a_1 main.usr.avance0_a_1 main.usr.retard0_a_1 main.res.abs_0_a_1 main.res.inst_5_a_1 main.res.inst_4_a_1 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_trans_controleur_0 main.usr.nB0_a_1 main.usr.nS_a_1 main.res.abs_2_a_1 main.res.abs_3_a_1 main.res.abs_4_a_1 main.res.inst_3_a_1 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_trans_hypothese_0 main.usr.B1_a_1 main.usr.S_a_1 main.usr.avance1_a_1 main.usr.retard1_a_1 main.res.abs_1_a_1 main.res.inst_2_a_1 main.res.inst_1_a_1 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_trans_controleur_0 main.usr.nB1_a_1 main.usr.nS_a_1 main.res.abs_5_a_1 main.res.abs_6_a_1 main.res.abs_7_a_1 main.res.inst_0_a_1 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) (not main.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.avance0_a_0 Bool) (top.impl.usr.retard0_a_0 Bool) (top.impl.usr.pOK_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.pOK_a_0 true) (= top.impl.usr.avance0_a_0 top.res.abs_6_a_0) (= top.impl.usr.retard0_a_0 top.res.abs_8_a_0) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_4_a_0)) (let ((X3 top.res.abs_3_a_0)) (let ((X4 top.res.abs_2_a_0)) (let ((X5 top.res.abs_1_a_0)) (and (= top.res.abs_10_a_0 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (__node_init_main_0 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.B0_a_1 Bool) (top.usr.B1_a_1 Bool) (top.usr.S_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.avance0_a_1 Bool) (top.impl.usr.retard0_a_1 Bool) (top.impl.usr.pOK_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Int) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Int) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.avance0_a_0 Bool) (top.impl.usr.retard0_a_0 Bool) (top.impl.usr.pOK_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (and (= top.res.abs_10_a_1 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (= top.usr.OK_a_1 (=> top.res.abs_11_a_1 top.impl.usr.pOK_a_0)) (= top.impl.usr.retard0_a_1 top.res.abs_8_a_1) (= top.impl.usr.avance0_a_1 top.res.abs_6_a_1) (= top.impl.usr.pOK_a_1 (not (or (and top.impl.usr.avance0_a_0 top.impl.usr.retard0_a_1) (and top.impl.usr.retard0_a_0 top.impl.usr.avance0_a_1)))) (__node_trans_main_0 top.usr.B0_a_1 top.usr.B1_a_1 top.usr.S_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_0_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.pOK true) (= top.impl.usr.avance0 top.res.abs_6) (= top.impl.usr.retard0 top.res.abs_8) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_4)) (let ((X3 top.res.abs_3)) (let ((X4 top.res.abs_2)) (let ((X5 top.res.abs_1)) (and (= top.res.abs_10 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (__node_init_main_0 top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.B0! Bool) (top.usr.B1! Bool) (top.usr.S! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.avance0! Bool) (top.impl.usr.retard0! Bool) (top.impl.usr.pOK! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Int) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Int) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_0!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (and (= top.res.abs_10! (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (= top.usr.OK! (=> top.res.abs_11! top.impl.usr.pOK)) (= top.impl.usr.retard0! top.res.abs_8!) (= top.impl.usr.avance0! top.res.abs_6!) (= top.impl.usr.pOK! (not (or (and top.impl.usr.avance0 top.impl.usr.retard0!) (and top.impl.usr.retard0 top.impl.usr.avance0!)))) (__node_trans_main_0 top.usr.B0! top.usr.B1! top.usr.S! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_0! top.res.abs_10 top.res.abs_11 top.res.inst_0) (not top.res.init_flag!)))))))) +(define-fun prop ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/metros_1_e2_627.sl b/benchmarks/LIA/Lustre/metros_1_e2_627.sl index 9eb0cca..e4c93d5 100644 --- a/benchmarks/LIA/Lustre/metros_1_e2_627.sl +++ b/benchmarks/LIA/Lustre/metros_1_e2_627.sl @@ -1,997 +1,35 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_controleur_0 ( - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) - (= controleur.usr.avance_a_0 false) - (= controleur.usr.retard_a_0 false) - controleur.res.init_flag_a_0) -) - -(define-fun - __node_trans_controleur_0 ( - (controleur.usr.nB_a_1 Int) - (controleur.usr.nS_a_1 Int) - (controleur.usr.diff_a_1 Int) - (controleur.usr.avance_a_1 Bool) - (controleur.usr.retard_a_1 Bool) - (controleur.res.init_flag_a_1 Bool) - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) - (= - controleur.usr.avance_a_1 - (ite - (not controleur.usr.avance_a_0) - (>= controleur.usr.diff_a_1 10) - (> controleur.usr.diff_a_1 0))) - (= - controleur.usr.retard_a_1 - (ite - (not controleur.usr.retard_a_0) - (<= controleur.usr.diff_a_1 (- 10)) - (< controleur.usr.diff_a_1 0))) - (not controleur.res.init_flag_a_1)) -) - -(define-fun - __node_init_hypothese_0 ( - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= hypothese.usr.ok_a_0 true) - (= hypothese.impl.usr.c_a_0 0) - hypothese.res.init_flag_a_0) -) - -(define-fun - __node_trans_hypothese_0 ( - (hypothese.usr.B_a_1 Bool) - (hypothese.usr.S_a_1 Bool) - (hypothese.usr.avance_a_1 Bool) - (hypothese.usr.retard_a_1 Bool) - (hypothese.usr.ok_a_1 Bool) - (hypothese.res.init_flag_a_1 Bool) - (hypothese.impl.usr.c_a_1 Int) - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= - hypothese.usr.ok_a_1 - (and - (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) - (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) - (= - hypothese.impl.usr.c_a_1 - (ite - (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) - (ite - hypothese.usr.B_a_1 - (+ (- hypothese.impl.usr.c_a_0 1) 1) - hypothese.impl.usr.c_a_0) - 0)) - (not hypothese.res.init_flag_a_1)) -) - -(define-fun - __node_init_main_0 ( - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_0)) - (let - ((X2 Bool main.res.abs_0_a_0)) - (and - (= main.usr.ast_a_0 (and X2 X1)) - (= main.usr.avance0_a_0 main.res.abs_3_a_0) - (= main.usr.nB0_a_0 0) - (= main.usr.nS_a_0 0) - (= main.usr.retard0_a_0 main.res.abs_4_a_0) - (= main.usr.avance1_a_0 main.res.abs_6_a_0) - (= main.usr.nB1_a_0 0) - (= main.usr.retard1_a_0 main.res.abs_7_a_0) - (= main.usr.diff0_a_0 main.res.abs_2_a_0) - (= main.usr.diff1_a_0 main.res.abs_5_a_0) - (__node_init_hypothese_0 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_init_controleur_0 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_init_hypothese_0 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_init_controleur_0 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - main.res.init_flag_a_0))) -) - -(define-fun - __node_trans_main_0 ( - (main.usr.B0_a_1 Bool) - (main.usr.B1_a_1 Bool) - (main.usr.S_a_1 Bool) - (main.usr.ast_a_1 Bool) - (main.usr.nB0_a_1 Int) - (main.usr.nB1_a_1 Int) - (main.usr.nS_a_1 Int) - (main.usr.diff0_a_1 Int) - (main.usr.diff1_a_1 Int) - (main.usr.avance0_a_1 Bool) - (main.usr.avance1_a_1 Bool) - (main.usr.retard0_a_1 Bool) - (main.usr.retard1_a_1 Bool) - (main.res.init_flag_a_1 Bool) - (main.res.abs_0_a_1 Bool) - (main.res.abs_1_a_1 Bool) - (main.res.abs_2_a_1 Int) - (main.res.abs_3_a_1 Bool) - (main.res.abs_4_a_1 Bool) - (main.res.abs_5_a_1 Int) - (main.res.abs_6_a_1 Bool) - (main.res.abs_7_a_1 Bool) - (main.res.inst_5_a_1 Bool) - (main.res.inst_4_a_1 Int) - (main.res.inst_3_a_1 Bool) - (main.res.inst_2_a_1 Bool) - (main.res.inst_1_a_1 Int) - (main.res.inst_0_a_1 Bool) - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_1)) - (let - ((X2 Bool main.res.abs_0_a_1)) - (and - (= main.usr.ast_a_1 (and X2 X1)) - (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) - (= - main.usr.nB0_a_1 - (ite main.usr.B0_a_1 (+ main.usr.nB0_a_0 1) main.usr.nB0_a_0)) - (= main.usr.avance0_a_1 main.res.abs_3_a_1) - (= main.usr.retard0_a_1 main.res.abs_4_a_1) - (= - main.usr.nB1_a_1 - (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) - (= main.usr.avance1_a_1 main.res.abs_6_a_1) - (= main.usr.retard1_a_1 main.res.abs_7_a_1) - (= main.usr.diff0_a_1 main.res.abs_2_a_1) - (= main.usr.diff1_a_1 main.res.abs_5_a_1) - (__node_trans_hypothese_0 - main.usr.B0_a_1 - main.usr.S_a_1 - main.usr.avance0_a_1 - main.usr.retard0_a_1 - main.res.abs_0_a_1 - main.res.inst_5_a_1 - main.res.inst_4_a_1 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_trans_controleur_0 - main.usr.nB0_a_1 - main.usr.nS_a_1 - main.res.abs_2_a_1 - main.res.abs_3_a_1 - main.res.abs_4_a_1 - main.res.inst_3_a_1 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_trans_hypothese_0 - main.usr.B1_a_1 - main.usr.S_a_1 - main.usr.avance1_a_1 - main.usr.retard1_a_1 - main.res.abs_1_a_1 - main.res.inst_2_a_1 - main.res.inst_1_a_1 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_trans_controleur_0 - main.usr.nB1_a_1 - main.usr.nS_a_1 - main.res.abs_5_a_1 - main.res.abs_6_a_1 - main.res.abs_7_a_1 - main.res.inst_0_a_1 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - (not main.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.avance0_a_0 Bool) - (top.impl.usr.retard0_a_0 Bool) - (top.impl.usr.pOK_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= top.impl.usr.pOK_a_0 true) - (= top.impl.usr.avance0_a_0 top.res.abs_6_a_0) - (= top.impl.usr.retard0_a_0 top.res.abs_8_a_0) - (let - ((X1 Bool top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (let - ((X3 Int top.res.abs_3_a_0)) - (let - ((X4 Int top.res.abs_2_a_0)) - (let - ((X5 Int top.res.abs_1_a_0)) - (and - (= - top.res.abs_10_a_0 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (__node_init_main_0 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.B0_a_1 Bool) - (top.usr.B1_a_1 Bool) - (top.usr.S_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.avance0_a_1 Bool) - (top.impl.usr.retard0_a_1 Bool) - (top.impl.usr.pOK_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Int) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Int) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.avance0_a_0 Bool) - (top.impl.usr.retard0_a_0 Bool) - (top.impl.usr.pOK_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_0_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (and - (= - top.res.abs_10_a_1 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (= top.usr.OK_a_1 (=> top.res.abs_11_a_1 top.impl.usr.pOK_a_0)) - (= top.impl.usr.retard0_a_1 top.res.abs_8_a_1) - (= top.impl.usr.avance0_a_1 top.res.abs_6_a_1) - (= - top.impl.usr.pOK_a_1 - (not - (or - (and top.impl.usr.avance0_a_0 top.impl.usr.retard0_a_1) - (and top.impl.usr.retard0_a_0 top.impl.usr.avance0_a_1)))) - (__node_trans_main_0 - top.usr.B0_a_1 - top.usr.B1_a_1 - top.usr.S_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_0_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.B0 Bool) -(declare-primed-var top.usr.B1 Bool) -(declare-primed-var top.usr.S Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.avance0 Bool) -(declare-primed-var top.impl.usr.retard0 Bool) -(declare-primed-var top.impl.usr.pOK Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Int) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Int) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.pOK true) - (= top.impl.usr.avance0 top.res.abs_6) - (= top.impl.usr.retard0 top.res.abs_8) - (let - ((X1 Bool top.res.abs_0)) - (let - ((X2 Int top.res.abs_4)) - (let - ((X3 Int top.res.abs_3)) - (let - ((X4 Int top.res.abs_2)) - (let - ((X5 Int top.res.abs_1)) - (and - (= - top.res.abs_10 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (__node_init_main_0 - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.B0! Bool) - (top.usr.B1! Bool) - (top.usr.S! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.avance0! Bool) - (top.impl.usr.retard0! Bool) - (top.impl.usr.pOK! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Int) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Int) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_0!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (and - (= - top.res.abs_10! - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (= top.usr.OK! (=> top.res.abs_11! top.impl.usr.pOK)) - (= top.impl.usr.retard0! top.res.abs_8!) - (= top.impl.usr.avance0! top.res.abs_6!) - (= - top.impl.usr.pOK! - (not - (or - (and top.impl.usr.avance0 top.impl.usr.retard0!) - (and top.impl.usr.retard0 top.impl.usr.avance0!)))) - (__node_trans_main_0 - top.usr.B0! - top.usr.B1! - top.usr.S! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_0! - top.res.abs_10 - top.res.abs_11 - top.res.inst_0) - (not top.res.init_flag!))))))) -) - -(define-fun - prop ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_controleur_0 ((controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) (= controleur.usr.avance_a_0 false) (= controleur.usr.retard_a_0 false) controleur.res.init_flag_a_0)) +(define-fun __node_trans_controleur_0 ((controleur.usr.nB_a_1 Int) (controleur.usr.nS_a_1 Int) (controleur.usr.diff_a_1 Int) (controleur.usr.avance_a_1 Bool) (controleur.usr.retard_a_1 Bool) (controleur.res.init_flag_a_1 Bool) (controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) (= controleur.usr.avance_a_1 (ite (not controleur.usr.avance_a_0) (>= controleur.usr.diff_a_1 10) (> controleur.usr.diff_a_1 0))) (= controleur.usr.retard_a_1 (ite (not controleur.usr.retard_a_0) (<= controleur.usr.diff_a_1 (- 10)) (< controleur.usr.diff_a_1 0))) (not controleur.res.init_flag_a_1))) +(define-fun __node_init_hypothese_0 ((hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_0 true) (= hypothese.impl.usr.c_a_0 0) hypothese.res.init_flag_a_0)) +(define-fun __node_trans_hypothese_0 ((hypothese.usr.B_a_1 Bool) (hypothese.usr.S_a_1 Bool) (hypothese.usr.avance_a_1 Bool) (hypothese.usr.retard_a_1 Bool) (hypothese.usr.ok_a_1 Bool) (hypothese.res.init_flag_a_1 Bool) (hypothese.impl.usr.c_a_1 Int) (hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_1 (and (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) (= hypothese.impl.usr.c_a_1 (ite (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) (ite hypothese.usr.B_a_1 (+ (- hypothese.impl.usr.c_a_0 1) 1) hypothese.impl.usr.c_a_0) 0)) (not hypothese.res.init_flag_a_1))) +(define-fun __node_init_main_0 ((main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_0)) (let ((X2 main.res.abs_0_a_0)) (and (= main.usr.ast_a_0 (and X2 X1)) (= main.usr.avance0_a_0 main.res.abs_3_a_0) (= main.usr.nB0_a_0 0) (= main.usr.nS_a_0 0) (= main.usr.retard0_a_0 main.res.abs_4_a_0) (= main.usr.avance1_a_0 main.res.abs_6_a_0) (= main.usr.nB1_a_0 0) (= main.usr.retard1_a_0 main.res.abs_7_a_0) (= main.usr.diff0_a_0 main.res.abs_2_a_0) (= main.usr.diff1_a_0 main.res.abs_5_a_0) (__node_init_hypothese_0 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_init_controleur_0 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_init_hypothese_0 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_init_controleur_0 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) main.res.init_flag_a_0)))) +(define-fun __node_trans_main_0 ((main.usr.B0_a_1 Bool) (main.usr.B1_a_1 Bool) (main.usr.S_a_1 Bool) (main.usr.ast_a_1 Bool) (main.usr.nB0_a_1 Int) (main.usr.nB1_a_1 Int) (main.usr.nS_a_1 Int) (main.usr.diff0_a_1 Int) (main.usr.diff1_a_1 Int) (main.usr.avance0_a_1 Bool) (main.usr.avance1_a_1 Bool) (main.usr.retard0_a_1 Bool) (main.usr.retard1_a_1 Bool) (main.res.init_flag_a_1 Bool) (main.res.abs_0_a_1 Bool) (main.res.abs_1_a_1 Bool) (main.res.abs_2_a_1 Int) (main.res.abs_3_a_1 Bool) (main.res.abs_4_a_1 Bool) (main.res.abs_5_a_1 Int) (main.res.abs_6_a_1 Bool) (main.res.abs_7_a_1 Bool) (main.res.inst_5_a_1 Bool) (main.res.inst_4_a_1 Int) (main.res.inst_3_a_1 Bool) (main.res.inst_2_a_1 Bool) (main.res.inst_1_a_1 Int) (main.res.inst_0_a_1 Bool) (main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_1)) (let ((X2 main.res.abs_0_a_1)) (and (= main.usr.ast_a_1 (and X2 X1)) (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) (= main.usr.nB0_a_1 (ite main.usr.B0_a_1 (+ main.usr.nB0_a_0 1) main.usr.nB0_a_0)) (= main.usr.avance0_a_1 main.res.abs_3_a_1) (= main.usr.retard0_a_1 main.res.abs_4_a_1) (= main.usr.nB1_a_1 (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) (= main.usr.avance1_a_1 main.res.abs_6_a_1) (= main.usr.retard1_a_1 main.res.abs_7_a_1) (= main.usr.diff0_a_1 main.res.abs_2_a_1) (= main.usr.diff1_a_1 main.res.abs_5_a_1) (__node_trans_hypothese_0 main.usr.B0_a_1 main.usr.S_a_1 main.usr.avance0_a_1 main.usr.retard0_a_1 main.res.abs_0_a_1 main.res.inst_5_a_1 main.res.inst_4_a_1 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_trans_controleur_0 main.usr.nB0_a_1 main.usr.nS_a_1 main.res.abs_2_a_1 main.res.abs_3_a_1 main.res.abs_4_a_1 main.res.inst_3_a_1 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_trans_hypothese_0 main.usr.B1_a_1 main.usr.S_a_1 main.usr.avance1_a_1 main.usr.retard1_a_1 main.res.abs_1_a_1 main.res.inst_2_a_1 main.res.inst_1_a_1 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_trans_controleur_0 main.usr.nB1_a_1 main.usr.nS_a_1 main.res.abs_5_a_1 main.res.abs_6_a_1 main.res.abs_7_a_1 main.res.inst_0_a_1 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) (not main.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.avance0_a_0 Bool) (top.impl.usr.retard0_a_0 Bool) (top.impl.usr.pOK_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.pOK_a_0 true) (= top.impl.usr.avance0_a_0 top.res.abs_6_a_0) (= top.impl.usr.retard0_a_0 top.res.abs_8_a_0) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_4_a_0)) (let ((X3 top.res.abs_3_a_0)) (let ((X4 top.res.abs_2_a_0)) (let ((X5 top.res.abs_1_a_0)) (and (= top.res.abs_10_a_0 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (__node_init_main_0 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.B0_a_1 Bool) (top.usr.B1_a_1 Bool) (top.usr.S_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.avance0_a_1 Bool) (top.impl.usr.retard0_a_1 Bool) (top.impl.usr.pOK_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Int) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Int) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.avance0_a_0 Bool) (top.impl.usr.retard0_a_0 Bool) (top.impl.usr.pOK_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (and (= top.res.abs_10_a_1 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (= top.usr.OK_a_1 (=> top.res.abs_11_a_1 top.impl.usr.pOK_a_0)) (= top.impl.usr.retard0_a_1 top.res.abs_8_a_1) (= top.impl.usr.avance0_a_1 top.res.abs_6_a_1) (= top.impl.usr.pOK_a_1 (not (or (and top.impl.usr.avance0_a_0 top.impl.usr.retard0_a_1) (and top.impl.usr.retard0_a_0 top.impl.usr.avance0_a_1)))) (__node_trans_main_0 top.usr.B0_a_1 top.usr.B1_a_1 top.usr.S_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_0_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.pOK true) (= top.impl.usr.avance0 top.res.abs_6) (= top.impl.usr.retard0 top.res.abs_8) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_4)) (let ((X3 top.res.abs_3)) (let ((X4 top.res.abs_2)) (let ((X5 top.res.abs_1)) (and (= top.res.abs_10 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (__node_init_main_0 top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.B0! Bool) (top.usr.B1! Bool) (top.usr.S! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.avance0! Bool) (top.impl.usr.retard0! Bool) (top.impl.usr.pOK! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Int) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Int) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_0!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (and (= top.res.abs_10! (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (= top.usr.OK! (=> top.res.abs_11! top.impl.usr.pOK)) (= top.impl.usr.retard0! top.res.abs_8!) (= top.impl.usr.avance0! top.res.abs_6!) (= top.impl.usr.pOK! (not (or (and top.impl.usr.avance0 top.impl.usr.retard0!) (and top.impl.usr.retard0 top.impl.usr.avance0!)))) (__node_trans_main_0 top.usr.B0! top.usr.B1! top.usr.S! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_0! top.res.abs_10 top.res.abs_11 top.res.inst_0) (not top.res.init_flag!)))))))) +(define-fun prop ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/metros_1_e7_1255_e7_12.sl b/benchmarks/LIA/Lustre/metros_1_e7_1255_e7_12.sl index 79c9d46..bf0105a 100644 --- a/benchmarks/LIA/Lustre/metros_1_e7_1255_e7_12.sl +++ b/benchmarks/LIA/Lustre/metros_1_e7_1255_e7_12.sl @@ -1,997 +1,35 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_controleur_0 ( - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) - (= controleur.usr.avance_a_0 false) - (= controleur.usr.retard_a_0 false) - controleur.res.init_flag_a_0) -) - -(define-fun - __node_trans_controleur_0 ( - (controleur.usr.nB_a_1 Int) - (controleur.usr.nS_a_1 Int) - (controleur.usr.diff_a_1 Int) - (controleur.usr.avance_a_1 Bool) - (controleur.usr.retard_a_1 Bool) - (controleur.res.init_flag_a_1 Bool) - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) - (= - controleur.usr.avance_a_1 - (ite - (not controleur.usr.avance_a_0) - (>= controleur.usr.diff_a_1 10) - (> controleur.usr.diff_a_1 0))) - (= - controleur.usr.retard_a_1 - (ite - (not controleur.usr.retard_a_0) - (<= controleur.usr.diff_a_1 (- 10)) - (< controleur.usr.diff_a_1 0))) - (not controleur.res.init_flag_a_1)) -) - -(define-fun - __node_init_hypothese_0 ( - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= hypothese.usr.ok_a_0 true) - (= hypothese.impl.usr.c_a_0 0) - hypothese.res.init_flag_a_0) -) - -(define-fun - __node_trans_hypothese_0 ( - (hypothese.usr.B_a_1 Bool) - (hypothese.usr.S_a_1 Bool) - (hypothese.usr.avance_a_1 Bool) - (hypothese.usr.retard_a_1 Bool) - (hypothese.usr.ok_a_1 Bool) - (hypothese.res.init_flag_a_1 Bool) - (hypothese.impl.usr.c_a_1 Int) - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= - hypothese.usr.ok_a_1 - (and - (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) - (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) - (= - hypothese.impl.usr.c_a_1 - (ite - (or hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) - (ite - hypothese.usr.B_a_1 - (+ hypothese.impl.usr.c_a_0 1) - hypothese.impl.usr.c_a_0) - 0)) - (not hypothese.res.init_flag_a_1)) -) - -(define-fun - __node_init_main_0 ( - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_0)) - (let - ((X2 Bool main.res.abs_0_a_0)) - (and - (= main.usr.ast_a_0 (and X2 X1)) - (= main.usr.avance0_a_0 main.res.abs_3_a_0) - (= main.usr.nB0_a_0 0) - (= main.usr.nS_a_0 0) - (= main.usr.retard0_a_0 main.res.abs_4_a_0) - (= main.usr.avance1_a_0 main.res.abs_6_a_0) - (= main.usr.nB1_a_0 0) - (= main.usr.retard1_a_0 main.res.abs_7_a_0) - (= main.usr.diff0_a_0 main.res.abs_2_a_0) - (= main.usr.diff1_a_0 main.res.abs_5_a_0) - (__node_init_hypothese_0 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_init_controleur_0 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_init_hypothese_0 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_init_controleur_0 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - main.res.init_flag_a_0))) -) - -(define-fun - __node_trans_main_0 ( - (main.usr.B0_a_1 Bool) - (main.usr.B1_a_1 Bool) - (main.usr.S_a_1 Bool) - (main.usr.ast_a_1 Bool) - (main.usr.nB0_a_1 Int) - (main.usr.nB1_a_1 Int) - (main.usr.nS_a_1 Int) - (main.usr.diff0_a_1 Int) - (main.usr.diff1_a_1 Int) - (main.usr.avance0_a_1 Bool) - (main.usr.avance1_a_1 Bool) - (main.usr.retard0_a_1 Bool) - (main.usr.retard1_a_1 Bool) - (main.res.init_flag_a_1 Bool) - (main.res.abs_0_a_1 Bool) - (main.res.abs_1_a_1 Bool) - (main.res.abs_2_a_1 Int) - (main.res.abs_3_a_1 Bool) - (main.res.abs_4_a_1 Bool) - (main.res.abs_5_a_1 Int) - (main.res.abs_6_a_1 Bool) - (main.res.abs_7_a_1 Bool) - (main.res.inst_5_a_1 Bool) - (main.res.inst_4_a_1 Int) - (main.res.inst_3_a_1 Bool) - (main.res.inst_2_a_1 Bool) - (main.res.inst_1_a_1 Int) - (main.res.inst_0_a_1 Bool) - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_1)) - (let - ((X2 Bool main.res.abs_0_a_1)) - (and - (= main.usr.ast_a_1 (and X2 X1)) - (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) - (= - main.usr.nB0_a_1 - (ite main.usr.B0_a_1 (+ main.usr.nB0_a_0 1) main.usr.nB0_a_0)) - (= main.usr.avance0_a_1 main.res.abs_3_a_1) - (= main.usr.retard0_a_1 main.res.abs_4_a_1) - (= - main.usr.nB1_a_1 - (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) - (= main.usr.avance1_a_1 main.res.abs_6_a_1) - (= main.usr.retard1_a_1 main.res.abs_7_a_1) - (= main.usr.diff0_a_1 main.res.abs_2_a_1) - (= main.usr.diff1_a_1 main.res.abs_5_a_1) - (__node_trans_hypothese_0 - main.usr.B0_a_1 - main.usr.S_a_1 - main.usr.avance0_a_1 - main.usr.retard0_a_1 - main.res.abs_0_a_1 - main.res.inst_5_a_1 - main.res.inst_4_a_1 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_trans_controleur_0 - main.usr.nB0_a_1 - main.usr.nS_a_1 - main.res.abs_2_a_1 - main.res.abs_3_a_1 - main.res.abs_4_a_1 - main.res.inst_3_a_1 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_trans_hypothese_0 - main.usr.B1_a_1 - main.usr.S_a_1 - main.usr.avance1_a_1 - main.usr.retard1_a_1 - main.res.abs_1_a_1 - main.res.inst_2_a_1 - main.res.inst_1_a_1 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_trans_controleur_0 - main.usr.nB1_a_1 - main.usr.nS_a_1 - main.res.abs_5_a_1 - main.res.abs_6_a_1 - main.res.abs_7_a_1 - main.res.inst_0_a_1 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - (not main.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.avance0_a_0 Bool) - (top.impl.usr.retard0_a_0 Bool) - (top.impl.usr.pOK_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= top.impl.usr.pOK_a_0 true) - (= top.impl.usr.avance0_a_0 top.res.abs_6_a_0) - (= top.impl.usr.retard0_a_0 top.res.abs_8_a_0) - (let - ((X1 Bool top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (let - ((X3 Int top.res.abs_3_a_0)) - (let - ((X4 Int top.res.abs_2_a_0)) - (let - ((X5 Int top.res.abs_1_a_0)) - (and - (= - top.res.abs_10_a_0 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (__node_init_main_0 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.B0_a_1 Bool) - (top.usr.B1_a_1 Bool) - (top.usr.S_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.avance0_a_1 Bool) - (top.impl.usr.retard0_a_1 Bool) - (top.impl.usr.pOK_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Int) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Int) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.avance0_a_0 Bool) - (top.impl.usr.retard0_a_0 Bool) - (top.impl.usr.pOK_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_0_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (and - (= - top.res.abs_10_a_1 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (= top.usr.OK_a_1 (=> top.res.abs_11_a_1 top.impl.usr.pOK_a_0)) - (= top.impl.usr.retard0_a_1 top.res.abs_8_a_1) - (= top.impl.usr.avance0_a_1 top.res.abs_6_a_1) - (= - top.impl.usr.pOK_a_1 - (not - (or - (and top.impl.usr.avance0_a_0 top.impl.usr.retard0_a_1) - (and top.impl.usr.retard0_a_0 top.impl.usr.avance0_a_1)))) - (__node_trans_main_0 - top.usr.B0_a_1 - top.usr.B1_a_1 - top.usr.S_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_0_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.B0 Bool) -(declare-primed-var top.usr.B1 Bool) -(declare-primed-var top.usr.S Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.avance0 Bool) -(declare-primed-var top.impl.usr.retard0 Bool) -(declare-primed-var top.impl.usr.pOK Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Int) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Int) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.pOK true) - (= top.impl.usr.avance0 top.res.abs_6) - (= top.impl.usr.retard0 top.res.abs_8) - (let - ((X1 Bool top.res.abs_0)) - (let - ((X2 Int top.res.abs_4)) - (let - ((X3 Int top.res.abs_3)) - (let - ((X4 Int top.res.abs_2)) - (let - ((X5 Int top.res.abs_1)) - (and - (= - top.res.abs_10 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (__node_init_main_0 - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.B0! Bool) - (top.usr.B1! Bool) - (top.usr.S! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.avance0! Bool) - (top.impl.usr.retard0! Bool) - (top.impl.usr.pOK! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Int) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Int) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_0!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (and - (= - top.res.abs_10! - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (= top.usr.OK! (=> top.res.abs_11! top.impl.usr.pOK)) - (= top.impl.usr.retard0! top.res.abs_8!) - (= top.impl.usr.avance0! top.res.abs_6!) - (= - top.impl.usr.pOK! - (not - (or - (and top.impl.usr.avance0 top.impl.usr.retard0!) - (and top.impl.usr.retard0 top.impl.usr.avance0!)))) - (__node_trans_main_0 - top.usr.B0! - top.usr.B1! - top.usr.S! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_0! - top.res.abs_10 - top.res.abs_11 - top.res.inst_0) - (not top.res.init_flag!))))))) -) - -(define-fun - prop ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_controleur_0 ((controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) (= controleur.usr.avance_a_0 false) (= controleur.usr.retard_a_0 false) controleur.res.init_flag_a_0)) +(define-fun __node_trans_controleur_0 ((controleur.usr.nB_a_1 Int) (controleur.usr.nS_a_1 Int) (controleur.usr.diff_a_1 Int) (controleur.usr.avance_a_1 Bool) (controleur.usr.retard_a_1 Bool) (controleur.res.init_flag_a_1 Bool) (controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) (= controleur.usr.avance_a_1 (ite (not controleur.usr.avance_a_0) (>= controleur.usr.diff_a_1 10) (> controleur.usr.diff_a_1 0))) (= controleur.usr.retard_a_1 (ite (not controleur.usr.retard_a_0) (<= controleur.usr.diff_a_1 (- 10)) (< controleur.usr.diff_a_1 0))) (not controleur.res.init_flag_a_1))) +(define-fun __node_init_hypothese_0 ((hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_0 true) (= hypothese.impl.usr.c_a_0 0) hypothese.res.init_flag_a_0)) +(define-fun __node_trans_hypothese_0 ((hypothese.usr.B_a_1 Bool) (hypothese.usr.S_a_1 Bool) (hypothese.usr.avance_a_1 Bool) (hypothese.usr.retard_a_1 Bool) (hypothese.usr.ok_a_1 Bool) (hypothese.res.init_flag_a_1 Bool) (hypothese.impl.usr.c_a_1 Int) (hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_1 (and (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) (= hypothese.impl.usr.c_a_1 (ite (or hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) (ite hypothese.usr.B_a_1 (+ hypothese.impl.usr.c_a_0 1) hypothese.impl.usr.c_a_0) 0)) (not hypothese.res.init_flag_a_1))) +(define-fun __node_init_main_0 ((main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_0)) (let ((X2 main.res.abs_0_a_0)) (and (= main.usr.ast_a_0 (and X2 X1)) (= main.usr.avance0_a_0 main.res.abs_3_a_0) (= main.usr.nB0_a_0 0) (= main.usr.nS_a_0 0) (= main.usr.retard0_a_0 main.res.abs_4_a_0) (= main.usr.avance1_a_0 main.res.abs_6_a_0) (= main.usr.nB1_a_0 0) (= main.usr.retard1_a_0 main.res.abs_7_a_0) (= main.usr.diff0_a_0 main.res.abs_2_a_0) (= main.usr.diff1_a_0 main.res.abs_5_a_0) (__node_init_hypothese_0 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_init_controleur_0 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_init_hypothese_0 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_init_controleur_0 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) main.res.init_flag_a_0)))) +(define-fun __node_trans_main_0 ((main.usr.B0_a_1 Bool) (main.usr.B1_a_1 Bool) (main.usr.S_a_1 Bool) (main.usr.ast_a_1 Bool) (main.usr.nB0_a_1 Int) (main.usr.nB1_a_1 Int) (main.usr.nS_a_1 Int) (main.usr.diff0_a_1 Int) (main.usr.diff1_a_1 Int) (main.usr.avance0_a_1 Bool) (main.usr.avance1_a_1 Bool) (main.usr.retard0_a_1 Bool) (main.usr.retard1_a_1 Bool) (main.res.init_flag_a_1 Bool) (main.res.abs_0_a_1 Bool) (main.res.abs_1_a_1 Bool) (main.res.abs_2_a_1 Int) (main.res.abs_3_a_1 Bool) (main.res.abs_4_a_1 Bool) (main.res.abs_5_a_1 Int) (main.res.abs_6_a_1 Bool) (main.res.abs_7_a_1 Bool) (main.res.inst_5_a_1 Bool) (main.res.inst_4_a_1 Int) (main.res.inst_3_a_1 Bool) (main.res.inst_2_a_1 Bool) (main.res.inst_1_a_1 Int) (main.res.inst_0_a_1 Bool) (main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_1)) (let ((X2 main.res.abs_0_a_1)) (and (= main.usr.ast_a_1 (and X2 X1)) (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) (= main.usr.nB0_a_1 (ite main.usr.B0_a_1 (+ main.usr.nB0_a_0 1) main.usr.nB0_a_0)) (= main.usr.avance0_a_1 main.res.abs_3_a_1) (= main.usr.retard0_a_1 main.res.abs_4_a_1) (= main.usr.nB1_a_1 (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) (= main.usr.avance1_a_1 main.res.abs_6_a_1) (= main.usr.retard1_a_1 main.res.abs_7_a_1) (= main.usr.diff0_a_1 main.res.abs_2_a_1) (= main.usr.diff1_a_1 main.res.abs_5_a_1) (__node_trans_hypothese_0 main.usr.B0_a_1 main.usr.S_a_1 main.usr.avance0_a_1 main.usr.retard0_a_1 main.res.abs_0_a_1 main.res.inst_5_a_1 main.res.inst_4_a_1 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_trans_controleur_0 main.usr.nB0_a_1 main.usr.nS_a_1 main.res.abs_2_a_1 main.res.abs_3_a_1 main.res.abs_4_a_1 main.res.inst_3_a_1 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_trans_hypothese_0 main.usr.B1_a_1 main.usr.S_a_1 main.usr.avance1_a_1 main.usr.retard1_a_1 main.res.abs_1_a_1 main.res.inst_2_a_1 main.res.inst_1_a_1 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_trans_controleur_0 main.usr.nB1_a_1 main.usr.nS_a_1 main.res.abs_5_a_1 main.res.abs_6_a_1 main.res.abs_7_a_1 main.res.inst_0_a_1 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) (not main.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.avance0_a_0 Bool) (top.impl.usr.retard0_a_0 Bool) (top.impl.usr.pOK_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.pOK_a_0 true) (= top.impl.usr.avance0_a_0 top.res.abs_6_a_0) (= top.impl.usr.retard0_a_0 top.res.abs_8_a_0) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_4_a_0)) (let ((X3 top.res.abs_3_a_0)) (let ((X4 top.res.abs_2_a_0)) (let ((X5 top.res.abs_1_a_0)) (and (= top.res.abs_10_a_0 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (__node_init_main_0 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.B0_a_1 Bool) (top.usr.B1_a_1 Bool) (top.usr.S_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.avance0_a_1 Bool) (top.impl.usr.retard0_a_1 Bool) (top.impl.usr.pOK_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Int) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Int) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.avance0_a_0 Bool) (top.impl.usr.retard0_a_0 Bool) (top.impl.usr.pOK_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (and (= top.res.abs_10_a_1 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (= top.usr.OK_a_1 (=> top.res.abs_11_a_1 top.impl.usr.pOK_a_0)) (= top.impl.usr.retard0_a_1 top.res.abs_8_a_1) (= top.impl.usr.avance0_a_1 top.res.abs_6_a_1) (= top.impl.usr.pOK_a_1 (not (or (and top.impl.usr.avance0_a_0 top.impl.usr.retard0_a_1) (and top.impl.usr.retard0_a_0 top.impl.usr.avance0_a_1)))) (__node_trans_main_0 top.usr.B0_a_1 top.usr.B1_a_1 top.usr.S_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_0_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.pOK true) (= top.impl.usr.avance0 top.res.abs_6) (= top.impl.usr.retard0 top.res.abs_8) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_4)) (let ((X3 top.res.abs_3)) (let ((X4 top.res.abs_2)) (let ((X5 top.res.abs_1)) (and (= top.res.abs_10 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (__node_init_main_0 top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.B0! Bool) (top.usr.B1! Bool) (top.usr.S! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.avance0! Bool) (top.impl.usr.retard0! Bool) (top.impl.usr.pOK! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Int) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Int) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_0!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (and (= top.res.abs_10! (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (= top.usr.OK! (=> top.res.abs_11! top.impl.usr.pOK)) (= top.impl.usr.retard0! top.res.abs_8!) (= top.impl.usr.avance0! top.res.abs_6!) (= top.impl.usr.pOK! (not (or (and top.impl.usr.avance0 top.impl.usr.retard0!) (and top.impl.usr.retard0 top.impl.usr.avance0!)))) (__node_trans_main_0 top.usr.B0! top.usr.B1! top.usr.S! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_0! top.res.abs_10 top.res.abs_11 top.res.inst_0) (not top.res.init_flag!)))))))) +(define-fun prop ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/metros_1_e7_606.sl b/benchmarks/LIA/Lustre/metros_1_e7_606.sl index 0096f7f..92dd249 100644 --- a/benchmarks/LIA/Lustre/metros_1_e7_606.sl +++ b/benchmarks/LIA/Lustre/metros_1_e7_606.sl @@ -1,997 +1,35 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_controleur_0 ( - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) - (= controleur.usr.avance_a_0 false) - (= controleur.usr.retard_a_0 false) - controleur.res.init_flag_a_0) -) - -(define-fun - __node_trans_controleur_0 ( - (controleur.usr.nB_a_1 Int) - (controleur.usr.nS_a_1 Int) - (controleur.usr.diff_a_1 Int) - (controleur.usr.avance_a_1 Bool) - (controleur.usr.retard_a_1 Bool) - (controleur.res.init_flag_a_1 Bool) - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) - (= - controleur.usr.avance_a_1 - (ite - (not controleur.usr.avance_a_0) - (>= controleur.usr.diff_a_1 10) - (> controleur.usr.diff_a_1 0))) - (= - controleur.usr.retard_a_1 - (ite - (not controleur.usr.retard_a_0) - (<= controleur.usr.diff_a_1 (- 10)) - (< controleur.usr.diff_a_1 0))) - (not controleur.res.init_flag_a_1)) -) - -(define-fun - __node_init_hypothese_0 ( - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= hypothese.usr.ok_a_0 true) - (= hypothese.impl.usr.c_a_0 0) - hypothese.res.init_flag_a_0) -) - -(define-fun - __node_trans_hypothese_0 ( - (hypothese.usr.B_a_1 Bool) - (hypothese.usr.S_a_1 Bool) - (hypothese.usr.avance_a_1 Bool) - (hypothese.usr.retard_a_1 Bool) - (hypothese.usr.ok_a_1 Bool) - (hypothese.res.init_flag_a_1 Bool) - (hypothese.impl.usr.c_a_1 Int) - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= - hypothese.usr.ok_a_1 - (and - (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) - (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) - (= - hypothese.impl.usr.c_a_1 - (ite - (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) - (ite - hypothese.usr.B_a_1 - (+ hypothese.impl.usr.c_a_0 1) - hypothese.impl.usr.c_a_0) - 0)) - (not hypothese.res.init_flag_a_1)) -) - -(define-fun - __node_init_main_0 ( - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_0)) - (let - ((X2 Bool main.res.abs_0_a_0)) - (and - (= main.usr.ast_a_0 (and X2 X1)) - (= main.usr.avance0_a_0 main.res.abs_3_a_0) - (= main.usr.nB0_a_0 0) - (= main.usr.nS_a_0 0) - (= main.usr.retard0_a_0 main.res.abs_4_a_0) - (= main.usr.avance1_a_0 main.res.abs_6_a_0) - (= main.usr.nB1_a_0 0) - (= main.usr.retard1_a_0 main.res.abs_7_a_0) - (= main.usr.diff0_a_0 main.res.abs_2_a_0) - (= main.usr.diff1_a_0 main.res.abs_5_a_0) - (__node_init_hypothese_0 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_init_controleur_0 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_init_hypothese_0 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_init_controleur_0 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - main.res.init_flag_a_0))) -) - -(define-fun - __node_trans_main_0 ( - (main.usr.B0_a_1 Bool) - (main.usr.B1_a_1 Bool) - (main.usr.S_a_1 Bool) - (main.usr.ast_a_1 Bool) - (main.usr.nB0_a_1 Int) - (main.usr.nB1_a_1 Int) - (main.usr.nS_a_1 Int) - (main.usr.diff0_a_1 Int) - (main.usr.diff1_a_1 Int) - (main.usr.avance0_a_1 Bool) - (main.usr.avance1_a_1 Bool) - (main.usr.retard0_a_1 Bool) - (main.usr.retard1_a_1 Bool) - (main.res.init_flag_a_1 Bool) - (main.res.abs_0_a_1 Bool) - (main.res.abs_1_a_1 Bool) - (main.res.abs_2_a_1 Int) - (main.res.abs_3_a_1 Bool) - (main.res.abs_4_a_1 Bool) - (main.res.abs_5_a_1 Int) - (main.res.abs_6_a_1 Bool) - (main.res.abs_7_a_1 Bool) - (main.res.inst_5_a_1 Bool) - (main.res.inst_4_a_1 Int) - (main.res.inst_3_a_1 Bool) - (main.res.inst_2_a_1 Bool) - (main.res.inst_1_a_1 Int) - (main.res.inst_0_a_1 Bool) - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_1)) - (let - ((X2 Bool main.res.abs_0_a_1)) - (and - (= main.usr.ast_a_1 (and X2 X1)) - (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) - (= - main.usr.nB0_a_1 - (ite main.usr.B0_a_1 (+ main.usr.nB0_a_0 1) main.usr.nB0_a_0)) - (= main.usr.avance0_a_1 main.res.abs_3_a_1) - (= main.usr.retard0_a_1 main.res.abs_4_a_1) - (= - main.usr.nB1_a_1 - (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) - (= main.usr.avance1_a_1 main.res.abs_6_a_1) - (= main.usr.retard1_a_1 main.res.abs_7_a_1) - (= main.usr.diff0_a_1 main.res.abs_2_a_1) - (= main.usr.diff1_a_1 main.res.abs_5_a_1) - (__node_trans_hypothese_0 - main.usr.B0_a_1 - main.usr.S_a_1 - main.usr.avance0_a_1 - main.usr.retard0_a_1 - main.res.abs_0_a_1 - main.res.inst_5_a_1 - main.res.inst_4_a_1 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_trans_controleur_0 - main.usr.nB0_a_1 - main.usr.nS_a_1 - main.res.abs_2_a_1 - main.res.abs_3_a_1 - main.res.abs_4_a_1 - main.res.inst_3_a_1 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_trans_hypothese_0 - main.usr.B1_a_1 - main.usr.S_a_1 - main.usr.avance1_a_1 - main.usr.retard1_a_1 - main.res.abs_1_a_1 - main.res.inst_2_a_1 - main.res.inst_1_a_1 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_trans_controleur_0 - main.usr.nB1_a_1 - main.usr.nS_a_1 - main.res.abs_5_a_1 - main.res.abs_6_a_1 - main.res.abs_7_a_1 - main.res.inst_0_a_1 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - (not main.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.avance0_a_0 Bool) - (top.impl.usr.retard0_a_0 Bool) - (top.impl.usr.pOK_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= top.impl.usr.pOK_a_0 true) - (= top.impl.usr.avance0_a_0 top.res.abs_6_a_0) - (= top.impl.usr.retard0_a_0 top.res.abs_8_a_0) - (let - ((X1 Bool top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (let - ((X3 Int top.res.abs_3_a_0)) - (let - ((X4 Int top.res.abs_2_a_0)) - (let - ((X5 Int top.res.abs_1_a_0)) - (and - (= - top.res.abs_10_a_0 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (__node_init_main_0 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.B0_a_1 Bool) - (top.usr.B1_a_1 Bool) - (top.usr.S_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.avance0_a_1 Bool) - (top.impl.usr.retard0_a_1 Bool) - (top.impl.usr.pOK_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Int) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Int) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.avance0_a_0 Bool) - (top.impl.usr.retard0_a_0 Bool) - (top.impl.usr.pOK_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_0_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (and - (= - top.res.abs_10_a_1 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (= top.usr.OK_a_1 (=> top.res.abs_11_a_1 top.impl.usr.pOK_a_0)) - (= top.impl.usr.retard0_a_1 top.res.abs_8_a_1) - (= top.impl.usr.avance0_a_1 top.res.abs_6_a_1) - (= - top.impl.usr.pOK_a_1 - (not - (or - (and top.impl.usr.avance0_a_0 top.impl.usr.retard0_a_1) - (and top.impl.usr.retard0_a_0 top.impl.usr.avance0_a_1)))) - (__node_trans_main_0 - top.usr.B0_a_1 - top.usr.B1_a_1 - top.usr.S_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_0_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.B0 Bool) -(declare-primed-var top.usr.B1 Bool) -(declare-primed-var top.usr.S Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.avance0 Bool) -(declare-primed-var top.impl.usr.retard0 Bool) -(declare-primed-var top.impl.usr.pOK Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Int) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Int) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.pOK true) - (= top.impl.usr.avance0 top.res.abs_6) - (= top.impl.usr.retard0 top.res.abs_8) - (let - ((X1 Bool top.res.abs_0)) - (let - ((X2 Int top.res.abs_4)) - (let - ((X3 Int top.res.abs_3)) - (let - ((X4 Int top.res.abs_2)) - (let - ((X5 Int top.res.abs_1)) - (and - (= - top.res.abs_10 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (__node_init_main_0 - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.B0! Bool) - (top.usr.B1! Bool) - (top.usr.S! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.avance0! Bool) - (top.impl.usr.retard0! Bool) - (top.impl.usr.pOK! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Int) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Int) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_0!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (and - (= - top.res.abs_10! - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (= top.usr.OK! (=> top.res.abs_11! top.impl.usr.pOK)) - (= top.impl.usr.retard0! top.res.abs_8!) - (= top.impl.usr.avance0! top.res.abs_6!) - (= - top.impl.usr.pOK! - (not - (or - (and top.impl.usr.avance0 top.impl.usr.retard0!) - (and top.impl.usr.retard0 top.impl.usr.avance0!)))) - (__node_trans_main_0 - top.usr.B0! - top.usr.B1! - top.usr.S! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_0! - top.res.abs_10 - top.res.abs_11 - top.res.inst_0) - (not top.res.init_flag!))))))) -) - -(define-fun - prop ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_controleur_0 ((controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) (= controleur.usr.avance_a_0 false) (= controleur.usr.retard_a_0 false) controleur.res.init_flag_a_0)) +(define-fun __node_trans_controleur_0 ((controleur.usr.nB_a_1 Int) (controleur.usr.nS_a_1 Int) (controleur.usr.diff_a_1 Int) (controleur.usr.avance_a_1 Bool) (controleur.usr.retard_a_1 Bool) (controleur.res.init_flag_a_1 Bool) (controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) (= controleur.usr.avance_a_1 (ite (not controleur.usr.avance_a_0) (>= controleur.usr.diff_a_1 10) (> controleur.usr.diff_a_1 0))) (= controleur.usr.retard_a_1 (ite (not controleur.usr.retard_a_0) (<= controleur.usr.diff_a_1 (- 10)) (< controleur.usr.diff_a_1 0))) (not controleur.res.init_flag_a_1))) +(define-fun __node_init_hypothese_0 ((hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_0 true) (= hypothese.impl.usr.c_a_0 0) hypothese.res.init_flag_a_0)) +(define-fun __node_trans_hypothese_0 ((hypothese.usr.B_a_1 Bool) (hypothese.usr.S_a_1 Bool) (hypothese.usr.avance_a_1 Bool) (hypothese.usr.retard_a_1 Bool) (hypothese.usr.ok_a_1 Bool) (hypothese.res.init_flag_a_1 Bool) (hypothese.impl.usr.c_a_1 Int) (hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_1 (and (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) (= hypothese.impl.usr.c_a_1 (ite (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) (ite hypothese.usr.B_a_1 (+ hypothese.impl.usr.c_a_0 1) hypothese.impl.usr.c_a_0) 0)) (not hypothese.res.init_flag_a_1))) +(define-fun __node_init_main_0 ((main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_0)) (let ((X2 main.res.abs_0_a_0)) (and (= main.usr.ast_a_0 (and X2 X1)) (= main.usr.avance0_a_0 main.res.abs_3_a_0) (= main.usr.nB0_a_0 0) (= main.usr.nS_a_0 0) (= main.usr.retard0_a_0 main.res.abs_4_a_0) (= main.usr.avance1_a_0 main.res.abs_6_a_0) (= main.usr.nB1_a_0 0) (= main.usr.retard1_a_0 main.res.abs_7_a_0) (= main.usr.diff0_a_0 main.res.abs_2_a_0) (= main.usr.diff1_a_0 main.res.abs_5_a_0) (__node_init_hypothese_0 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_init_controleur_0 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_init_hypothese_0 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_init_controleur_0 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) main.res.init_flag_a_0)))) +(define-fun __node_trans_main_0 ((main.usr.B0_a_1 Bool) (main.usr.B1_a_1 Bool) (main.usr.S_a_1 Bool) (main.usr.ast_a_1 Bool) (main.usr.nB0_a_1 Int) (main.usr.nB1_a_1 Int) (main.usr.nS_a_1 Int) (main.usr.diff0_a_1 Int) (main.usr.diff1_a_1 Int) (main.usr.avance0_a_1 Bool) (main.usr.avance1_a_1 Bool) (main.usr.retard0_a_1 Bool) (main.usr.retard1_a_1 Bool) (main.res.init_flag_a_1 Bool) (main.res.abs_0_a_1 Bool) (main.res.abs_1_a_1 Bool) (main.res.abs_2_a_1 Int) (main.res.abs_3_a_1 Bool) (main.res.abs_4_a_1 Bool) (main.res.abs_5_a_1 Int) (main.res.abs_6_a_1 Bool) (main.res.abs_7_a_1 Bool) (main.res.inst_5_a_1 Bool) (main.res.inst_4_a_1 Int) (main.res.inst_3_a_1 Bool) (main.res.inst_2_a_1 Bool) (main.res.inst_1_a_1 Int) (main.res.inst_0_a_1 Bool) (main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_1)) (let ((X2 main.res.abs_0_a_1)) (and (= main.usr.ast_a_1 (and X2 X1)) (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) (= main.usr.nB0_a_1 (ite main.usr.B0_a_1 (+ main.usr.nB0_a_0 1) main.usr.nB0_a_0)) (= main.usr.avance0_a_1 main.res.abs_3_a_1) (= main.usr.retard0_a_1 main.res.abs_4_a_1) (= main.usr.nB1_a_1 (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) (= main.usr.avance1_a_1 main.res.abs_6_a_1) (= main.usr.retard1_a_1 main.res.abs_7_a_1) (= main.usr.diff0_a_1 main.res.abs_2_a_1) (= main.usr.diff1_a_1 main.res.abs_5_a_1) (__node_trans_hypothese_0 main.usr.B0_a_1 main.usr.S_a_1 main.usr.avance0_a_1 main.usr.retard0_a_1 main.res.abs_0_a_1 main.res.inst_5_a_1 main.res.inst_4_a_1 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_trans_controleur_0 main.usr.nB0_a_1 main.usr.nS_a_1 main.res.abs_2_a_1 main.res.abs_3_a_1 main.res.abs_4_a_1 main.res.inst_3_a_1 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_trans_hypothese_0 main.usr.B1_a_1 main.usr.S_a_1 main.usr.avance1_a_1 main.usr.retard1_a_1 main.res.abs_1_a_1 main.res.inst_2_a_1 main.res.inst_1_a_1 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_trans_controleur_0 main.usr.nB1_a_1 main.usr.nS_a_1 main.res.abs_5_a_1 main.res.abs_6_a_1 main.res.abs_7_a_1 main.res.inst_0_a_1 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) (not main.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.avance0_a_0 Bool) (top.impl.usr.retard0_a_0 Bool) (top.impl.usr.pOK_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.pOK_a_0 true) (= top.impl.usr.avance0_a_0 top.res.abs_6_a_0) (= top.impl.usr.retard0_a_0 top.res.abs_8_a_0) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_4_a_0)) (let ((X3 top.res.abs_3_a_0)) (let ((X4 top.res.abs_2_a_0)) (let ((X5 top.res.abs_1_a_0)) (and (= top.res.abs_10_a_0 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (__node_init_main_0 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.B0_a_1 Bool) (top.usr.B1_a_1 Bool) (top.usr.S_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.avance0_a_1 Bool) (top.impl.usr.retard0_a_1 Bool) (top.impl.usr.pOK_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Int) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Int) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.avance0_a_0 Bool) (top.impl.usr.retard0_a_0 Bool) (top.impl.usr.pOK_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (and (= top.res.abs_10_a_1 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (= top.usr.OK_a_1 (=> top.res.abs_11_a_1 top.impl.usr.pOK_a_0)) (= top.impl.usr.retard0_a_1 top.res.abs_8_a_1) (= top.impl.usr.avance0_a_1 top.res.abs_6_a_1) (= top.impl.usr.pOK_a_1 (not (or (and top.impl.usr.avance0_a_0 top.impl.usr.retard0_a_1) (and top.impl.usr.retard0_a_0 top.impl.usr.avance0_a_1)))) (__node_trans_main_0 top.usr.B0_a_1 top.usr.B1_a_1 top.usr.S_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_0_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.pOK true) (= top.impl.usr.avance0 top.res.abs_6) (= top.impl.usr.retard0 top.res.abs_8) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_4)) (let ((X3 top.res.abs_3)) (let ((X4 top.res.abs_2)) (let ((X5 top.res.abs_1)) (and (= top.res.abs_10 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (__node_init_main_0 top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.B0! Bool) (top.usr.B1! Bool) (top.usr.S! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.avance0! Bool) (top.impl.usr.retard0! Bool) (top.impl.usr.pOK! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Int) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Int) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_0!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (and (= top.res.abs_10! (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (= top.usr.OK! (=> top.res.abs_11! top.impl.usr.pOK)) (= top.impl.usr.retard0! top.res.abs_8!) (= top.impl.usr.avance0! top.res.abs_6!) (= top.impl.usr.pOK! (not (or (and top.impl.usr.avance0 top.impl.usr.retard0!) (and top.impl.usr.retard0 top.impl.usr.avance0!)))) (__node_trans_main_0 top.usr.B0! top.usr.B1! top.usr.S! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_0! top.res.abs_10 top.res.abs_11 top.res.inst_0) (not top.res.init_flag!)))))))) +(define-fun prop ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/metros_1_e8_725.sl b/benchmarks/LIA/Lustre/metros_1_e8_725.sl index 795014f..c817c9b 100644 --- a/benchmarks/LIA/Lustre/metros_1_e8_725.sl +++ b/benchmarks/LIA/Lustre/metros_1_e8_725.sl @@ -1,1001 +1,35 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_controleur_0 ( - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) - (= controleur.usr.avance_a_0 false) - (= controleur.usr.retard_a_0 false) - controleur.res.init_flag_a_0) -) - -(define-fun - __node_trans_controleur_0 ( - (controleur.usr.nB_a_1 Int) - (controleur.usr.nS_a_1 Int) - (controleur.usr.diff_a_1 Int) - (controleur.usr.avance_a_1 Bool) - (controleur.usr.retard_a_1 Bool) - (controleur.res.init_flag_a_1 Bool) - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) - (= - controleur.usr.avance_a_1 - (ite - (not controleur.usr.avance_a_0) - (>= controleur.usr.diff_a_1 10) - (> controleur.usr.diff_a_1 0))) - (= - controleur.usr.retard_a_1 - (ite - (not controleur.usr.retard_a_0) - (<= controleur.usr.diff_a_1 (- 10)) - (< controleur.usr.diff_a_1 0))) - (not controleur.res.init_flag_a_1)) -) - -(define-fun - __node_init_hypothese_0 ( - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= hypothese.usr.ok_a_0 true) - (= hypothese.impl.usr.c_a_0 0) - hypothese.res.init_flag_a_0) -) - -(define-fun - __node_trans_hypothese_0 ( - (hypothese.usr.B_a_1 Bool) - (hypothese.usr.S_a_1 Bool) - (hypothese.usr.avance_a_1 Bool) - (hypothese.usr.retard_a_1 Bool) - (hypothese.usr.ok_a_1 Bool) - (hypothese.res.init_flag_a_1 Bool) - (hypothese.impl.usr.c_a_1 Int) - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= - hypothese.usr.ok_a_1 - (and - (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) - (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) - (= - hypothese.impl.usr.c_a_1 - (ite - (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) - (ite - hypothese.usr.B_a_1 - (+ hypothese.impl.usr.c_a_0 1) - hypothese.impl.usr.c_a_0) - 0)) - (not hypothese.res.init_flag_a_1)) -) - -(define-fun - __node_init_main_0 ( - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_0)) - (let - ((X2 Bool main.res.abs_0_a_0)) - (and - (= main.usr.ast_a_0 (and X2 X1)) - (= main.usr.avance0_a_0 main.res.abs_3_a_0) - (= main.usr.nB0_a_0 0) - (= main.usr.nS_a_0 0) - (= main.usr.retard0_a_0 main.res.abs_4_a_0) - (= main.usr.avance1_a_0 main.res.abs_6_a_0) - (= main.usr.nB1_a_0 0) - (= main.usr.retard1_a_0 main.res.abs_7_a_0) - (= main.usr.diff0_a_0 main.res.abs_2_a_0) - (= main.usr.diff1_a_0 main.res.abs_5_a_0) - (__node_init_hypothese_0 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_init_controleur_0 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_init_hypothese_0 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_init_controleur_0 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - main.res.init_flag_a_0))) -) - -(define-fun - __node_trans_main_0 ( - (main.usr.B0_a_1 Bool) - (main.usr.B1_a_1 Bool) - (main.usr.S_a_1 Bool) - (main.usr.ast_a_1 Bool) - (main.usr.nB0_a_1 Int) - (main.usr.nB1_a_1 Int) - (main.usr.nS_a_1 Int) - (main.usr.diff0_a_1 Int) - (main.usr.diff1_a_1 Int) - (main.usr.avance0_a_1 Bool) - (main.usr.avance1_a_1 Bool) - (main.usr.retard0_a_1 Bool) - (main.usr.retard1_a_1 Bool) - (main.res.init_flag_a_1 Bool) - (main.res.abs_0_a_1 Bool) - (main.res.abs_1_a_1 Bool) - (main.res.abs_2_a_1 Int) - (main.res.abs_3_a_1 Bool) - (main.res.abs_4_a_1 Bool) - (main.res.abs_5_a_1 Int) - (main.res.abs_6_a_1 Bool) - (main.res.abs_7_a_1 Bool) - (main.res.inst_5_a_1 Bool) - (main.res.inst_4_a_1 Int) - (main.res.inst_3_a_1 Bool) - (main.res.inst_2_a_1 Bool) - (main.res.inst_1_a_1 Int) - (main.res.inst_0_a_1 Bool) - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_1)) - (let - ((X2 Bool main.res.abs_0_a_1)) - (and - (= main.usr.ast_a_1 (and X2 X1)) - (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) - (= - main.usr.nB0_a_1 - (ite main.usr.B0_a_1 (+ main.usr.nB0_a_0 1) main.usr.nB0_a_0)) - (= main.usr.avance0_a_1 main.res.abs_3_a_1) - (= main.usr.retard0_a_1 main.res.abs_4_a_1) - (= - main.usr.nB1_a_1 - (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) - (= main.usr.avance1_a_1 main.res.abs_6_a_1) - (= main.usr.retard1_a_1 main.res.abs_7_a_1) - (= main.usr.diff0_a_1 main.res.abs_2_a_1) - (= main.usr.diff1_a_1 main.res.abs_5_a_1) - (__node_trans_hypothese_0 - main.usr.B0_a_1 - main.usr.S_a_1 - main.usr.avance0_a_1 - main.usr.retard0_a_1 - main.res.abs_0_a_1 - main.res.inst_5_a_1 - main.res.inst_4_a_1 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_trans_controleur_0 - main.usr.nB0_a_1 - main.usr.nS_a_1 - main.res.abs_2_a_1 - main.res.abs_3_a_1 - main.res.abs_4_a_1 - main.res.inst_3_a_1 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_trans_hypothese_0 - main.usr.B1_a_1 - main.usr.S_a_1 - main.usr.avance1_a_1 - main.usr.retard1_a_1 - main.res.abs_1_a_1 - main.res.inst_2_a_1 - main.res.inst_1_a_1 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_trans_controleur_0 - main.usr.nB1_a_1 - main.usr.nS_a_1 - main.res.abs_5_a_1 - main.res.abs_6_a_1 - main.res.abs_7_a_1 - main.res.inst_0_a_1 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - (not main.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.avance0_a_0 Bool) - (top.impl.usr.retard0_a_0 Bool) - (top.impl.usr.pOK_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= top.impl.usr.pOK_a_0 true) - (= top.impl.usr.avance0_a_0 top.res.abs_6_a_0) - (= top.impl.usr.retard0_a_0 top.res.abs_8_a_0) - (let - ((X1 Bool top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (let - ((X3 Int top.res.abs_3_a_0)) - (let - ((X4 Int top.res.abs_2_a_0)) - (let - ((X5 Int top.res.abs_1_a_0)) - (and - (= - top.res.abs_10_a_0 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (__node_init_main_0 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.B0_a_1 Bool) - (top.usr.B1_a_1 Bool) - (top.usr.S_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.avance0_a_1 Bool) - (top.impl.usr.retard0_a_1 Bool) - (top.impl.usr.pOK_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Int) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Int) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.avance0_a_0 Bool) - (top.impl.usr.retard0_a_0 Bool) - (top.impl.usr.pOK_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_0_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (and - (= - top.res.abs_10_a_1 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (= top.usr.OK_a_1 (=> top.res.abs_11_a_1 top.impl.usr.pOK_a_0)) - (= top.impl.usr.retard0_a_1 top.res.abs_8_a_1) - (= top.impl.usr.avance0_a_1 top.res.abs_6_a_1) - (= - top.impl.usr.pOK_a_1 - (not - (and - (and - (and top.impl.usr.avance0_a_0 top.impl.usr.retard0_a_1) - top.impl.usr.retard0_a_0) - top.impl.usr.avance0_a_1))) - (__node_trans_main_0 - top.usr.B0_a_1 - top.usr.B1_a_1 - top.usr.S_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_0_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.B0 Bool) -(declare-primed-var top.usr.B1 Bool) -(declare-primed-var top.usr.S Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.avance0 Bool) -(declare-primed-var top.impl.usr.retard0 Bool) -(declare-primed-var top.impl.usr.pOK Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Int) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Int) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.pOK true) - (= top.impl.usr.avance0 top.res.abs_6) - (= top.impl.usr.retard0 top.res.abs_8) - (let - ((X1 Bool top.res.abs_0)) - (let - ((X2 Int top.res.abs_4)) - (let - ((X3 Int top.res.abs_3)) - (let - ((X4 Int top.res.abs_2)) - (let - ((X5 Int top.res.abs_1)) - (and - (= - top.res.abs_10 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (__node_init_main_0 - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.B0! Bool) - (top.usr.B1! Bool) - (top.usr.S! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.avance0! Bool) - (top.impl.usr.retard0! Bool) - (top.impl.usr.pOK! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Int) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Int) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_0!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (and - (= - top.res.abs_10! - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (= top.usr.OK! (=> top.res.abs_11! top.impl.usr.pOK)) - (= top.impl.usr.retard0! top.res.abs_8!) - (= top.impl.usr.avance0! top.res.abs_6!) - (= - top.impl.usr.pOK! - (not - (and - (and - (and top.impl.usr.avance0 top.impl.usr.retard0!) - top.impl.usr.retard0) - top.impl.usr.avance0!))) - (__node_trans_main_0 - top.usr.B0! - top.usr.B1! - top.usr.S! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_0! - top.res.abs_10 - top.res.abs_11 - top.res.inst_0) - (not top.res.init_flag!))))))) -) - -(define-fun - prop ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_controleur_0 ((controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) (= controleur.usr.avance_a_0 false) (= controleur.usr.retard_a_0 false) controleur.res.init_flag_a_0)) +(define-fun __node_trans_controleur_0 ((controleur.usr.nB_a_1 Int) (controleur.usr.nS_a_1 Int) (controleur.usr.diff_a_1 Int) (controleur.usr.avance_a_1 Bool) (controleur.usr.retard_a_1 Bool) (controleur.res.init_flag_a_1 Bool) (controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) (= controleur.usr.avance_a_1 (ite (not controleur.usr.avance_a_0) (>= controleur.usr.diff_a_1 10) (> controleur.usr.diff_a_1 0))) (= controleur.usr.retard_a_1 (ite (not controleur.usr.retard_a_0) (<= controleur.usr.diff_a_1 (- 10)) (< controleur.usr.diff_a_1 0))) (not controleur.res.init_flag_a_1))) +(define-fun __node_init_hypothese_0 ((hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_0 true) (= hypothese.impl.usr.c_a_0 0) hypothese.res.init_flag_a_0)) +(define-fun __node_trans_hypothese_0 ((hypothese.usr.B_a_1 Bool) (hypothese.usr.S_a_1 Bool) (hypothese.usr.avance_a_1 Bool) (hypothese.usr.retard_a_1 Bool) (hypothese.usr.ok_a_1 Bool) (hypothese.res.init_flag_a_1 Bool) (hypothese.impl.usr.c_a_1 Int) (hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_1 (and (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) (= hypothese.impl.usr.c_a_1 (ite (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) (ite hypothese.usr.B_a_1 (+ hypothese.impl.usr.c_a_0 1) hypothese.impl.usr.c_a_0) 0)) (not hypothese.res.init_flag_a_1))) +(define-fun __node_init_main_0 ((main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_0)) (let ((X2 main.res.abs_0_a_0)) (and (= main.usr.ast_a_0 (and X2 X1)) (= main.usr.avance0_a_0 main.res.abs_3_a_0) (= main.usr.nB0_a_0 0) (= main.usr.nS_a_0 0) (= main.usr.retard0_a_0 main.res.abs_4_a_0) (= main.usr.avance1_a_0 main.res.abs_6_a_0) (= main.usr.nB1_a_0 0) (= main.usr.retard1_a_0 main.res.abs_7_a_0) (= main.usr.diff0_a_0 main.res.abs_2_a_0) (= main.usr.diff1_a_0 main.res.abs_5_a_0) (__node_init_hypothese_0 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_init_controleur_0 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_init_hypothese_0 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_init_controleur_0 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) main.res.init_flag_a_0)))) +(define-fun __node_trans_main_0 ((main.usr.B0_a_1 Bool) (main.usr.B1_a_1 Bool) (main.usr.S_a_1 Bool) (main.usr.ast_a_1 Bool) (main.usr.nB0_a_1 Int) (main.usr.nB1_a_1 Int) (main.usr.nS_a_1 Int) (main.usr.diff0_a_1 Int) (main.usr.diff1_a_1 Int) (main.usr.avance0_a_1 Bool) (main.usr.avance1_a_1 Bool) (main.usr.retard0_a_1 Bool) (main.usr.retard1_a_1 Bool) (main.res.init_flag_a_1 Bool) (main.res.abs_0_a_1 Bool) (main.res.abs_1_a_1 Bool) (main.res.abs_2_a_1 Int) (main.res.abs_3_a_1 Bool) (main.res.abs_4_a_1 Bool) (main.res.abs_5_a_1 Int) (main.res.abs_6_a_1 Bool) (main.res.abs_7_a_1 Bool) (main.res.inst_5_a_1 Bool) (main.res.inst_4_a_1 Int) (main.res.inst_3_a_1 Bool) (main.res.inst_2_a_1 Bool) (main.res.inst_1_a_1 Int) (main.res.inst_0_a_1 Bool) (main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_1)) (let ((X2 main.res.abs_0_a_1)) (and (= main.usr.ast_a_1 (and X2 X1)) (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) (= main.usr.nB0_a_1 (ite main.usr.B0_a_1 (+ main.usr.nB0_a_0 1) main.usr.nB0_a_0)) (= main.usr.avance0_a_1 main.res.abs_3_a_1) (= main.usr.retard0_a_1 main.res.abs_4_a_1) (= main.usr.nB1_a_1 (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) (= main.usr.avance1_a_1 main.res.abs_6_a_1) (= main.usr.retard1_a_1 main.res.abs_7_a_1) (= main.usr.diff0_a_1 main.res.abs_2_a_1) (= main.usr.diff1_a_1 main.res.abs_5_a_1) (__node_trans_hypothese_0 main.usr.B0_a_1 main.usr.S_a_1 main.usr.avance0_a_1 main.usr.retard0_a_1 main.res.abs_0_a_1 main.res.inst_5_a_1 main.res.inst_4_a_1 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_trans_controleur_0 main.usr.nB0_a_1 main.usr.nS_a_1 main.res.abs_2_a_1 main.res.abs_3_a_1 main.res.abs_4_a_1 main.res.inst_3_a_1 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_trans_hypothese_0 main.usr.B1_a_1 main.usr.S_a_1 main.usr.avance1_a_1 main.usr.retard1_a_1 main.res.abs_1_a_1 main.res.inst_2_a_1 main.res.inst_1_a_1 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_trans_controleur_0 main.usr.nB1_a_1 main.usr.nS_a_1 main.res.abs_5_a_1 main.res.abs_6_a_1 main.res.abs_7_a_1 main.res.inst_0_a_1 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) (not main.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.avance0_a_0 Bool) (top.impl.usr.retard0_a_0 Bool) (top.impl.usr.pOK_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.pOK_a_0 true) (= top.impl.usr.avance0_a_0 top.res.abs_6_a_0) (= top.impl.usr.retard0_a_0 top.res.abs_8_a_0) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_4_a_0)) (let ((X3 top.res.abs_3_a_0)) (let ((X4 top.res.abs_2_a_0)) (let ((X5 top.res.abs_1_a_0)) (and (= top.res.abs_10_a_0 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (__node_init_main_0 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.B0_a_1 Bool) (top.usr.B1_a_1 Bool) (top.usr.S_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.avance0_a_1 Bool) (top.impl.usr.retard0_a_1 Bool) (top.impl.usr.pOK_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Int) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Int) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.avance0_a_0 Bool) (top.impl.usr.retard0_a_0 Bool) (top.impl.usr.pOK_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (and (= top.res.abs_10_a_1 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (= top.usr.OK_a_1 (=> top.res.abs_11_a_1 top.impl.usr.pOK_a_0)) (= top.impl.usr.retard0_a_1 top.res.abs_8_a_1) (= top.impl.usr.avance0_a_1 top.res.abs_6_a_1) (= top.impl.usr.pOK_a_1 (not (and (and (and top.impl.usr.avance0_a_0 top.impl.usr.retard0_a_1) top.impl.usr.retard0_a_0) top.impl.usr.avance0_a_1))) (__node_trans_main_0 top.usr.B0_a_1 top.usr.B1_a_1 top.usr.S_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_0_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.pOK true) (= top.impl.usr.avance0 top.res.abs_6) (= top.impl.usr.retard0 top.res.abs_8) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_4)) (let ((X3 top.res.abs_3)) (let ((X4 top.res.abs_2)) (let ((X5 top.res.abs_1)) (and (= top.res.abs_10 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (__node_init_main_0 top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.B0! Bool) (top.usr.B1! Bool) (top.usr.S! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.avance0! Bool) (top.impl.usr.retard0! Bool) (top.impl.usr.pOK! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Int) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Int) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_0!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (and (= top.res.abs_10! (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (= top.usr.OK! (=> top.res.abs_11! top.impl.usr.pOK)) (= top.impl.usr.retard0! top.res.abs_8!) (= top.impl.usr.avance0! top.res.abs_6!) (= top.impl.usr.pOK! (not (and (and (and top.impl.usr.avance0 top.impl.usr.retard0!) top.impl.usr.retard0) top.impl.usr.avance0!))) (__node_trans_main_0 top.usr.B0! top.usr.B1! top.usr.S! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_0! top.res.abs_10 top.res.abs_11 top.res.inst_0) (not top.res.init_flag!)))))))) +(define-fun prop ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/metros_1_e8_725_e1_919.sl b/benchmarks/LIA/Lustre/metros_1_e8_725_e1_919.sl index e826d57..7a58a92 100644 --- a/benchmarks/LIA/Lustre/metros_1_e8_725_e1_919.sl +++ b/benchmarks/LIA/Lustre/metros_1_e8_725_e1_919.sl @@ -1,1001 +1,35 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_controleur_0 ( - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) - (= controleur.usr.avance_a_0 false) - (= controleur.usr.retard_a_0 false) - controleur.res.init_flag_a_0) -) - -(define-fun - __node_trans_controleur_0 ( - (controleur.usr.nB_a_1 Int) - (controleur.usr.nS_a_1 Int) - (controleur.usr.diff_a_1 Int) - (controleur.usr.avance_a_1 Bool) - (controleur.usr.retard_a_1 Bool) - (controleur.res.init_flag_a_1 Bool) - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) - (= - controleur.usr.avance_a_1 - (ite - (not controleur.usr.avance_a_0) - (>= controleur.usr.diff_a_1 10) - (> controleur.usr.diff_a_1 0))) - (= - controleur.usr.retard_a_1 - (ite - (not controleur.usr.retard_a_0) - (<= controleur.usr.diff_a_1 (- 10)) - (< controleur.usr.diff_a_1 0))) - (not controleur.res.init_flag_a_1)) -) - -(define-fun - __node_init_hypothese_0 ( - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= hypothese.usr.ok_a_0 true) - (= hypothese.impl.usr.c_a_0 0) - hypothese.res.init_flag_a_0) -) - -(define-fun - __node_trans_hypothese_0 ( - (hypothese.usr.B_a_1 Bool) - (hypothese.usr.S_a_1 Bool) - (hypothese.usr.avance_a_1 Bool) - (hypothese.usr.retard_a_1 Bool) - (hypothese.usr.ok_a_1 Bool) - (hypothese.res.init_flag_a_1 Bool) - (hypothese.impl.usr.c_a_1 Int) - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= - hypothese.usr.ok_a_1 - (and - (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) - (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) - (= - hypothese.impl.usr.c_a_1 - (ite - (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) - (ite - hypothese.usr.B_a_1 - (+ (+ hypothese.impl.usr.c_a_0 1) 1) - hypothese.impl.usr.c_a_0) - 0)) - (not hypothese.res.init_flag_a_1)) -) - -(define-fun - __node_init_main_0 ( - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_0)) - (let - ((X2 Bool main.res.abs_0_a_0)) - (and - (= main.usr.ast_a_0 (and X2 X1)) - (= main.usr.avance0_a_0 main.res.abs_3_a_0) - (= main.usr.nB0_a_0 0) - (= main.usr.nS_a_0 0) - (= main.usr.retard0_a_0 main.res.abs_4_a_0) - (= main.usr.avance1_a_0 main.res.abs_6_a_0) - (= main.usr.nB1_a_0 0) - (= main.usr.retard1_a_0 main.res.abs_7_a_0) - (= main.usr.diff0_a_0 main.res.abs_2_a_0) - (= main.usr.diff1_a_0 main.res.abs_5_a_0) - (__node_init_hypothese_0 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_init_controleur_0 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_init_hypothese_0 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_init_controleur_0 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - main.res.init_flag_a_0))) -) - -(define-fun - __node_trans_main_0 ( - (main.usr.B0_a_1 Bool) - (main.usr.B1_a_1 Bool) - (main.usr.S_a_1 Bool) - (main.usr.ast_a_1 Bool) - (main.usr.nB0_a_1 Int) - (main.usr.nB1_a_1 Int) - (main.usr.nS_a_1 Int) - (main.usr.diff0_a_1 Int) - (main.usr.diff1_a_1 Int) - (main.usr.avance0_a_1 Bool) - (main.usr.avance1_a_1 Bool) - (main.usr.retard0_a_1 Bool) - (main.usr.retard1_a_1 Bool) - (main.res.init_flag_a_1 Bool) - (main.res.abs_0_a_1 Bool) - (main.res.abs_1_a_1 Bool) - (main.res.abs_2_a_1 Int) - (main.res.abs_3_a_1 Bool) - (main.res.abs_4_a_1 Bool) - (main.res.abs_5_a_1 Int) - (main.res.abs_6_a_1 Bool) - (main.res.abs_7_a_1 Bool) - (main.res.inst_5_a_1 Bool) - (main.res.inst_4_a_1 Int) - (main.res.inst_3_a_1 Bool) - (main.res.inst_2_a_1 Bool) - (main.res.inst_1_a_1 Int) - (main.res.inst_0_a_1 Bool) - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_1)) - (let - ((X2 Bool main.res.abs_0_a_1)) - (and - (= main.usr.ast_a_1 (and X2 X1)) - (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) - (= - main.usr.nB0_a_1 - (ite main.usr.B0_a_1 (+ main.usr.nB0_a_0 1) main.usr.nB0_a_0)) - (= main.usr.avance0_a_1 main.res.abs_3_a_1) - (= main.usr.retard0_a_1 main.res.abs_4_a_1) - (= - main.usr.nB1_a_1 - (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) - (= main.usr.avance1_a_1 main.res.abs_6_a_1) - (= main.usr.retard1_a_1 main.res.abs_7_a_1) - (= main.usr.diff0_a_1 main.res.abs_2_a_1) - (= main.usr.diff1_a_1 main.res.abs_5_a_1) - (__node_trans_hypothese_0 - main.usr.B0_a_1 - main.usr.S_a_1 - main.usr.avance0_a_1 - main.usr.retard0_a_1 - main.res.abs_0_a_1 - main.res.inst_5_a_1 - main.res.inst_4_a_1 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_trans_controleur_0 - main.usr.nB0_a_1 - main.usr.nS_a_1 - main.res.abs_2_a_1 - main.res.abs_3_a_1 - main.res.abs_4_a_1 - main.res.inst_3_a_1 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_trans_hypothese_0 - main.usr.B1_a_1 - main.usr.S_a_1 - main.usr.avance1_a_1 - main.usr.retard1_a_1 - main.res.abs_1_a_1 - main.res.inst_2_a_1 - main.res.inst_1_a_1 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_trans_controleur_0 - main.usr.nB1_a_1 - main.usr.nS_a_1 - main.res.abs_5_a_1 - main.res.abs_6_a_1 - main.res.abs_7_a_1 - main.res.inst_0_a_1 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - (not main.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.avance0_a_0 Bool) - (top.impl.usr.retard0_a_0 Bool) - (top.impl.usr.pOK_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= top.impl.usr.pOK_a_0 true) - (= top.impl.usr.avance0_a_0 top.res.abs_6_a_0) - (= top.impl.usr.retard0_a_0 top.res.abs_8_a_0) - (let - ((X1 Bool top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (let - ((X3 Int top.res.abs_3_a_0)) - (let - ((X4 Int top.res.abs_2_a_0)) - (let - ((X5 Int top.res.abs_1_a_0)) - (and - (= - top.res.abs_10_a_0 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (__node_init_main_0 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.B0_a_1 Bool) - (top.usr.B1_a_1 Bool) - (top.usr.S_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.avance0_a_1 Bool) - (top.impl.usr.retard0_a_1 Bool) - (top.impl.usr.pOK_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Int) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Int) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.avance0_a_0 Bool) - (top.impl.usr.retard0_a_0 Bool) - (top.impl.usr.pOK_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_0_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (and - (= - top.res.abs_10_a_1 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (= top.usr.OK_a_1 (=> top.res.abs_11_a_1 top.impl.usr.pOK_a_0)) - (= top.impl.usr.retard0_a_1 top.res.abs_8_a_1) - (= top.impl.usr.avance0_a_1 top.res.abs_6_a_1) - (= - top.impl.usr.pOK_a_1 - (not - (and - (and - (and top.impl.usr.avance0_a_0 top.impl.usr.retard0_a_1) - top.impl.usr.retard0_a_0) - top.impl.usr.avance0_a_1))) - (__node_trans_main_0 - top.usr.B0_a_1 - top.usr.B1_a_1 - top.usr.S_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_0_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.B0 Bool) -(declare-primed-var top.usr.B1 Bool) -(declare-primed-var top.usr.S Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.avance0 Bool) -(declare-primed-var top.impl.usr.retard0 Bool) -(declare-primed-var top.impl.usr.pOK Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Int) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Int) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.pOK true) - (= top.impl.usr.avance0 top.res.abs_6) - (= top.impl.usr.retard0 top.res.abs_8) - (let - ((X1 Bool top.res.abs_0)) - (let - ((X2 Int top.res.abs_4)) - (let - ((X3 Int top.res.abs_3)) - (let - ((X4 Int top.res.abs_2)) - (let - ((X5 Int top.res.abs_1)) - (and - (= - top.res.abs_10 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (__node_init_main_0 - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.B0! Bool) - (top.usr.B1! Bool) - (top.usr.S! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.avance0! Bool) - (top.impl.usr.retard0! Bool) - (top.impl.usr.pOK! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Int) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Int) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_0!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (and - (= - top.res.abs_10! - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (= top.usr.OK! (=> top.res.abs_11! top.impl.usr.pOK)) - (= top.impl.usr.retard0! top.res.abs_8!) - (= top.impl.usr.avance0! top.res.abs_6!) - (= - top.impl.usr.pOK! - (not - (and - (and - (and top.impl.usr.avance0 top.impl.usr.retard0!) - top.impl.usr.retard0) - top.impl.usr.avance0!))) - (__node_trans_main_0 - top.usr.B0! - top.usr.B1! - top.usr.S! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_0! - top.res.abs_10 - top.res.abs_11 - top.res.inst_0) - (not top.res.init_flag!))))))) -) - -(define-fun - prop ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_controleur_0 ((controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) (= controleur.usr.avance_a_0 false) (= controleur.usr.retard_a_0 false) controleur.res.init_flag_a_0)) +(define-fun __node_trans_controleur_0 ((controleur.usr.nB_a_1 Int) (controleur.usr.nS_a_1 Int) (controleur.usr.diff_a_1 Int) (controleur.usr.avance_a_1 Bool) (controleur.usr.retard_a_1 Bool) (controleur.res.init_flag_a_1 Bool) (controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) (= controleur.usr.avance_a_1 (ite (not controleur.usr.avance_a_0) (>= controleur.usr.diff_a_1 10) (> controleur.usr.diff_a_1 0))) (= controleur.usr.retard_a_1 (ite (not controleur.usr.retard_a_0) (<= controleur.usr.diff_a_1 (- 10)) (< controleur.usr.diff_a_1 0))) (not controleur.res.init_flag_a_1))) +(define-fun __node_init_hypothese_0 ((hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_0 true) (= hypothese.impl.usr.c_a_0 0) hypothese.res.init_flag_a_0)) +(define-fun __node_trans_hypothese_0 ((hypothese.usr.B_a_1 Bool) (hypothese.usr.S_a_1 Bool) (hypothese.usr.avance_a_1 Bool) (hypothese.usr.retard_a_1 Bool) (hypothese.usr.ok_a_1 Bool) (hypothese.res.init_flag_a_1 Bool) (hypothese.impl.usr.c_a_1 Int) (hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_1 (and (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) (= hypothese.impl.usr.c_a_1 (ite (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) (ite hypothese.usr.B_a_1 (+ (+ hypothese.impl.usr.c_a_0 1) 1) hypothese.impl.usr.c_a_0) 0)) (not hypothese.res.init_flag_a_1))) +(define-fun __node_init_main_0 ((main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_0)) (let ((X2 main.res.abs_0_a_0)) (and (= main.usr.ast_a_0 (and X2 X1)) (= main.usr.avance0_a_0 main.res.abs_3_a_0) (= main.usr.nB0_a_0 0) (= main.usr.nS_a_0 0) (= main.usr.retard0_a_0 main.res.abs_4_a_0) (= main.usr.avance1_a_0 main.res.abs_6_a_0) (= main.usr.nB1_a_0 0) (= main.usr.retard1_a_0 main.res.abs_7_a_0) (= main.usr.diff0_a_0 main.res.abs_2_a_0) (= main.usr.diff1_a_0 main.res.abs_5_a_0) (__node_init_hypothese_0 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_init_controleur_0 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_init_hypothese_0 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_init_controleur_0 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) main.res.init_flag_a_0)))) +(define-fun __node_trans_main_0 ((main.usr.B0_a_1 Bool) (main.usr.B1_a_1 Bool) (main.usr.S_a_1 Bool) (main.usr.ast_a_1 Bool) (main.usr.nB0_a_1 Int) (main.usr.nB1_a_1 Int) (main.usr.nS_a_1 Int) (main.usr.diff0_a_1 Int) (main.usr.diff1_a_1 Int) (main.usr.avance0_a_1 Bool) (main.usr.avance1_a_1 Bool) (main.usr.retard0_a_1 Bool) (main.usr.retard1_a_1 Bool) (main.res.init_flag_a_1 Bool) (main.res.abs_0_a_1 Bool) (main.res.abs_1_a_1 Bool) (main.res.abs_2_a_1 Int) (main.res.abs_3_a_1 Bool) (main.res.abs_4_a_1 Bool) (main.res.abs_5_a_1 Int) (main.res.abs_6_a_1 Bool) (main.res.abs_7_a_1 Bool) (main.res.inst_5_a_1 Bool) (main.res.inst_4_a_1 Int) (main.res.inst_3_a_1 Bool) (main.res.inst_2_a_1 Bool) (main.res.inst_1_a_1 Int) (main.res.inst_0_a_1 Bool) (main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_1)) (let ((X2 main.res.abs_0_a_1)) (and (= main.usr.ast_a_1 (and X2 X1)) (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) (= main.usr.nB0_a_1 (ite main.usr.B0_a_1 (+ main.usr.nB0_a_0 1) main.usr.nB0_a_0)) (= main.usr.avance0_a_1 main.res.abs_3_a_1) (= main.usr.retard0_a_1 main.res.abs_4_a_1) (= main.usr.nB1_a_1 (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) (= main.usr.avance1_a_1 main.res.abs_6_a_1) (= main.usr.retard1_a_1 main.res.abs_7_a_1) (= main.usr.diff0_a_1 main.res.abs_2_a_1) (= main.usr.diff1_a_1 main.res.abs_5_a_1) (__node_trans_hypothese_0 main.usr.B0_a_1 main.usr.S_a_1 main.usr.avance0_a_1 main.usr.retard0_a_1 main.res.abs_0_a_1 main.res.inst_5_a_1 main.res.inst_4_a_1 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_trans_controleur_0 main.usr.nB0_a_1 main.usr.nS_a_1 main.res.abs_2_a_1 main.res.abs_3_a_1 main.res.abs_4_a_1 main.res.inst_3_a_1 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_trans_hypothese_0 main.usr.B1_a_1 main.usr.S_a_1 main.usr.avance1_a_1 main.usr.retard1_a_1 main.res.abs_1_a_1 main.res.inst_2_a_1 main.res.inst_1_a_1 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_trans_controleur_0 main.usr.nB1_a_1 main.usr.nS_a_1 main.res.abs_5_a_1 main.res.abs_6_a_1 main.res.abs_7_a_1 main.res.inst_0_a_1 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) (not main.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.avance0_a_0 Bool) (top.impl.usr.retard0_a_0 Bool) (top.impl.usr.pOK_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.pOK_a_0 true) (= top.impl.usr.avance0_a_0 top.res.abs_6_a_0) (= top.impl.usr.retard0_a_0 top.res.abs_8_a_0) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_4_a_0)) (let ((X3 top.res.abs_3_a_0)) (let ((X4 top.res.abs_2_a_0)) (let ((X5 top.res.abs_1_a_0)) (and (= top.res.abs_10_a_0 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (__node_init_main_0 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.B0_a_1 Bool) (top.usr.B1_a_1 Bool) (top.usr.S_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.avance0_a_1 Bool) (top.impl.usr.retard0_a_1 Bool) (top.impl.usr.pOK_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Int) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Int) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.avance0_a_0 Bool) (top.impl.usr.retard0_a_0 Bool) (top.impl.usr.pOK_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (and (= top.res.abs_10_a_1 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (= top.usr.OK_a_1 (=> top.res.abs_11_a_1 top.impl.usr.pOK_a_0)) (= top.impl.usr.retard0_a_1 top.res.abs_8_a_1) (= top.impl.usr.avance0_a_1 top.res.abs_6_a_1) (= top.impl.usr.pOK_a_1 (not (and (and (and top.impl.usr.avance0_a_0 top.impl.usr.retard0_a_1) top.impl.usr.retard0_a_0) top.impl.usr.avance0_a_1))) (__node_trans_main_0 top.usr.B0_a_1 top.usr.B1_a_1 top.usr.S_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_0_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.pOK true) (= top.impl.usr.avance0 top.res.abs_6) (= top.impl.usr.retard0 top.res.abs_8) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_4)) (let ((X3 top.res.abs_3)) (let ((X4 top.res.abs_2)) (let ((X5 top.res.abs_1)) (and (= top.res.abs_10 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (__node_init_main_0 top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.B0! Bool) (top.usr.B1! Bool) (top.usr.S! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.avance0! Bool) (top.impl.usr.retard0! Bool) (top.impl.usr.pOK! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Int) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Int) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_0!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (and (= top.res.abs_10! (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (= top.usr.OK! (=> top.res.abs_11! top.impl.usr.pOK)) (= top.impl.usr.retard0! top.res.abs_8!) (= top.impl.usr.avance0! top.res.abs_6!) (= top.impl.usr.pOK! (not (and (and (and top.impl.usr.avance0 top.impl.usr.retard0!) top.impl.usr.retard0) top.impl.usr.avance0!))) (__node_trans_main_0 top.usr.B0! top.usr.B1! top.usr.S! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_0! top.res.abs_10 top.res.abs_11 top.res.inst_0) (not top.res.init_flag!)))))))) +(define-fun prop ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/metros_1_e8_725_e2_1144.sl b/benchmarks/LIA/Lustre/metros_1_e8_725_e2_1144.sl index 3926a76..70114b0 100644 --- a/benchmarks/LIA/Lustre/metros_1_e8_725_e2_1144.sl +++ b/benchmarks/LIA/Lustre/metros_1_e8_725_e2_1144.sl @@ -1,1001 +1,35 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_controleur_0 ( - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) - (= controleur.usr.avance_a_0 false) - (= controleur.usr.retard_a_0 false) - controleur.res.init_flag_a_0) -) - -(define-fun - __node_trans_controleur_0 ( - (controleur.usr.nB_a_1 Int) - (controleur.usr.nS_a_1 Int) - (controleur.usr.diff_a_1 Int) - (controleur.usr.avance_a_1 Bool) - (controleur.usr.retard_a_1 Bool) - (controleur.res.init_flag_a_1 Bool) - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) - (= - controleur.usr.avance_a_1 - (ite - (not controleur.usr.avance_a_0) - (>= controleur.usr.diff_a_1 10) - (> controleur.usr.diff_a_1 0))) - (= - controleur.usr.retard_a_1 - (ite - (not controleur.usr.retard_a_0) - (<= controleur.usr.diff_a_1 (- 10)) - (< controleur.usr.diff_a_1 0))) - (not controleur.res.init_flag_a_1)) -) - -(define-fun - __node_init_hypothese_0 ( - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= hypothese.usr.ok_a_0 true) - (= hypothese.impl.usr.c_a_0 0) - hypothese.res.init_flag_a_0) -) - -(define-fun - __node_trans_hypothese_0 ( - (hypothese.usr.B_a_1 Bool) - (hypothese.usr.S_a_1 Bool) - (hypothese.usr.avance_a_1 Bool) - (hypothese.usr.retard_a_1 Bool) - (hypothese.usr.ok_a_1 Bool) - (hypothese.res.init_flag_a_1 Bool) - (hypothese.impl.usr.c_a_1 Int) - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= - hypothese.usr.ok_a_1 - (and - (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) - (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) - (= - hypothese.impl.usr.c_a_1 - (ite - (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) - (ite - hypothese.usr.B_a_1 - (+ (- hypothese.impl.usr.c_a_0 1) 1) - hypothese.impl.usr.c_a_0) - 0)) - (not hypothese.res.init_flag_a_1)) -) - -(define-fun - __node_init_main_0 ( - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_0)) - (let - ((X2 Bool main.res.abs_0_a_0)) - (and - (= main.usr.ast_a_0 (and X2 X1)) - (= main.usr.avance0_a_0 main.res.abs_3_a_0) - (= main.usr.nB0_a_0 0) - (= main.usr.nS_a_0 0) - (= main.usr.retard0_a_0 main.res.abs_4_a_0) - (= main.usr.avance1_a_0 main.res.abs_6_a_0) - (= main.usr.nB1_a_0 0) - (= main.usr.retard1_a_0 main.res.abs_7_a_0) - (= main.usr.diff0_a_0 main.res.abs_2_a_0) - (= main.usr.diff1_a_0 main.res.abs_5_a_0) - (__node_init_hypothese_0 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_init_controleur_0 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_init_hypothese_0 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_init_controleur_0 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - main.res.init_flag_a_0))) -) - -(define-fun - __node_trans_main_0 ( - (main.usr.B0_a_1 Bool) - (main.usr.B1_a_1 Bool) - (main.usr.S_a_1 Bool) - (main.usr.ast_a_1 Bool) - (main.usr.nB0_a_1 Int) - (main.usr.nB1_a_1 Int) - (main.usr.nS_a_1 Int) - (main.usr.diff0_a_1 Int) - (main.usr.diff1_a_1 Int) - (main.usr.avance0_a_1 Bool) - (main.usr.avance1_a_1 Bool) - (main.usr.retard0_a_1 Bool) - (main.usr.retard1_a_1 Bool) - (main.res.init_flag_a_1 Bool) - (main.res.abs_0_a_1 Bool) - (main.res.abs_1_a_1 Bool) - (main.res.abs_2_a_1 Int) - (main.res.abs_3_a_1 Bool) - (main.res.abs_4_a_1 Bool) - (main.res.abs_5_a_1 Int) - (main.res.abs_6_a_1 Bool) - (main.res.abs_7_a_1 Bool) - (main.res.inst_5_a_1 Bool) - (main.res.inst_4_a_1 Int) - (main.res.inst_3_a_1 Bool) - (main.res.inst_2_a_1 Bool) - (main.res.inst_1_a_1 Int) - (main.res.inst_0_a_1 Bool) - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_1)) - (let - ((X2 Bool main.res.abs_0_a_1)) - (and - (= main.usr.ast_a_1 (and X2 X1)) - (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) - (= - main.usr.nB0_a_1 - (ite main.usr.B0_a_1 (+ main.usr.nB0_a_0 1) main.usr.nB0_a_0)) - (= main.usr.avance0_a_1 main.res.abs_3_a_1) - (= main.usr.retard0_a_1 main.res.abs_4_a_1) - (= - main.usr.nB1_a_1 - (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) - (= main.usr.avance1_a_1 main.res.abs_6_a_1) - (= main.usr.retard1_a_1 main.res.abs_7_a_1) - (= main.usr.diff0_a_1 main.res.abs_2_a_1) - (= main.usr.diff1_a_1 main.res.abs_5_a_1) - (__node_trans_hypothese_0 - main.usr.B0_a_1 - main.usr.S_a_1 - main.usr.avance0_a_1 - main.usr.retard0_a_1 - main.res.abs_0_a_1 - main.res.inst_5_a_1 - main.res.inst_4_a_1 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_trans_controleur_0 - main.usr.nB0_a_1 - main.usr.nS_a_1 - main.res.abs_2_a_1 - main.res.abs_3_a_1 - main.res.abs_4_a_1 - main.res.inst_3_a_1 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_trans_hypothese_0 - main.usr.B1_a_1 - main.usr.S_a_1 - main.usr.avance1_a_1 - main.usr.retard1_a_1 - main.res.abs_1_a_1 - main.res.inst_2_a_1 - main.res.inst_1_a_1 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_trans_controleur_0 - main.usr.nB1_a_1 - main.usr.nS_a_1 - main.res.abs_5_a_1 - main.res.abs_6_a_1 - main.res.abs_7_a_1 - main.res.inst_0_a_1 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - (not main.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.avance0_a_0 Bool) - (top.impl.usr.retard0_a_0 Bool) - (top.impl.usr.pOK_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= top.impl.usr.pOK_a_0 true) - (= top.impl.usr.avance0_a_0 top.res.abs_6_a_0) - (= top.impl.usr.retard0_a_0 top.res.abs_8_a_0) - (let - ((X1 Bool top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (let - ((X3 Int top.res.abs_3_a_0)) - (let - ((X4 Int top.res.abs_2_a_0)) - (let - ((X5 Int top.res.abs_1_a_0)) - (and - (= - top.res.abs_10_a_0 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (__node_init_main_0 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.B0_a_1 Bool) - (top.usr.B1_a_1 Bool) - (top.usr.S_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.avance0_a_1 Bool) - (top.impl.usr.retard0_a_1 Bool) - (top.impl.usr.pOK_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Int) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Int) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.avance0_a_0 Bool) - (top.impl.usr.retard0_a_0 Bool) - (top.impl.usr.pOK_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_0_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (and - (= - top.res.abs_10_a_1 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (= top.usr.OK_a_1 (=> top.res.abs_11_a_1 top.impl.usr.pOK_a_0)) - (= top.impl.usr.retard0_a_1 top.res.abs_8_a_1) - (= top.impl.usr.avance0_a_1 top.res.abs_6_a_1) - (= - top.impl.usr.pOK_a_1 - (not - (and - (and - (and top.impl.usr.avance0_a_0 top.impl.usr.retard0_a_1) - top.impl.usr.retard0_a_0) - top.impl.usr.avance0_a_1))) - (__node_trans_main_0 - top.usr.B0_a_1 - top.usr.B1_a_1 - top.usr.S_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_0_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.B0 Bool) -(declare-primed-var top.usr.B1 Bool) -(declare-primed-var top.usr.S Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.avance0 Bool) -(declare-primed-var top.impl.usr.retard0 Bool) -(declare-primed-var top.impl.usr.pOK Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Int) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Int) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.pOK true) - (= top.impl.usr.avance0 top.res.abs_6) - (= top.impl.usr.retard0 top.res.abs_8) - (let - ((X1 Bool top.res.abs_0)) - (let - ((X2 Int top.res.abs_4)) - (let - ((X3 Int top.res.abs_3)) - (let - ((X4 Int top.res.abs_2)) - (let - ((X5 Int top.res.abs_1)) - (and - (= - top.res.abs_10 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (__node_init_main_0 - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.B0! Bool) - (top.usr.B1! Bool) - (top.usr.S! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.avance0! Bool) - (top.impl.usr.retard0! Bool) - (top.impl.usr.pOK! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Int) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Int) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_0!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (and - (= - top.res.abs_10! - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (= top.usr.OK! (=> top.res.abs_11! top.impl.usr.pOK)) - (= top.impl.usr.retard0! top.res.abs_8!) - (= top.impl.usr.avance0! top.res.abs_6!) - (= - top.impl.usr.pOK! - (not - (and - (and - (and top.impl.usr.avance0 top.impl.usr.retard0!) - top.impl.usr.retard0) - top.impl.usr.avance0!))) - (__node_trans_main_0 - top.usr.B0! - top.usr.B1! - top.usr.S! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_0! - top.res.abs_10 - top.res.abs_11 - top.res.inst_0) - (not top.res.init_flag!))))))) -) - -(define-fun - prop ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_controleur_0 ((controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) (= controleur.usr.avance_a_0 false) (= controleur.usr.retard_a_0 false) controleur.res.init_flag_a_0)) +(define-fun __node_trans_controleur_0 ((controleur.usr.nB_a_1 Int) (controleur.usr.nS_a_1 Int) (controleur.usr.diff_a_1 Int) (controleur.usr.avance_a_1 Bool) (controleur.usr.retard_a_1 Bool) (controleur.res.init_flag_a_1 Bool) (controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) (= controleur.usr.avance_a_1 (ite (not controleur.usr.avance_a_0) (>= controleur.usr.diff_a_1 10) (> controleur.usr.diff_a_1 0))) (= controleur.usr.retard_a_1 (ite (not controleur.usr.retard_a_0) (<= controleur.usr.diff_a_1 (- 10)) (< controleur.usr.diff_a_1 0))) (not controleur.res.init_flag_a_1))) +(define-fun __node_init_hypothese_0 ((hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_0 true) (= hypothese.impl.usr.c_a_0 0) hypothese.res.init_flag_a_0)) +(define-fun __node_trans_hypothese_0 ((hypothese.usr.B_a_1 Bool) (hypothese.usr.S_a_1 Bool) (hypothese.usr.avance_a_1 Bool) (hypothese.usr.retard_a_1 Bool) (hypothese.usr.ok_a_1 Bool) (hypothese.res.init_flag_a_1 Bool) (hypothese.impl.usr.c_a_1 Int) (hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_1 (and (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) (= hypothese.impl.usr.c_a_1 (ite (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) (ite hypothese.usr.B_a_1 (+ (- hypothese.impl.usr.c_a_0 1) 1) hypothese.impl.usr.c_a_0) 0)) (not hypothese.res.init_flag_a_1))) +(define-fun __node_init_main_0 ((main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_0)) (let ((X2 main.res.abs_0_a_0)) (and (= main.usr.ast_a_0 (and X2 X1)) (= main.usr.avance0_a_0 main.res.abs_3_a_0) (= main.usr.nB0_a_0 0) (= main.usr.nS_a_0 0) (= main.usr.retard0_a_0 main.res.abs_4_a_0) (= main.usr.avance1_a_0 main.res.abs_6_a_0) (= main.usr.nB1_a_0 0) (= main.usr.retard1_a_0 main.res.abs_7_a_0) (= main.usr.diff0_a_0 main.res.abs_2_a_0) (= main.usr.diff1_a_0 main.res.abs_5_a_0) (__node_init_hypothese_0 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_init_controleur_0 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_init_hypothese_0 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_init_controleur_0 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) main.res.init_flag_a_0)))) +(define-fun __node_trans_main_0 ((main.usr.B0_a_1 Bool) (main.usr.B1_a_1 Bool) (main.usr.S_a_1 Bool) (main.usr.ast_a_1 Bool) (main.usr.nB0_a_1 Int) (main.usr.nB1_a_1 Int) (main.usr.nS_a_1 Int) (main.usr.diff0_a_1 Int) (main.usr.diff1_a_1 Int) (main.usr.avance0_a_1 Bool) (main.usr.avance1_a_1 Bool) (main.usr.retard0_a_1 Bool) (main.usr.retard1_a_1 Bool) (main.res.init_flag_a_1 Bool) (main.res.abs_0_a_1 Bool) (main.res.abs_1_a_1 Bool) (main.res.abs_2_a_1 Int) (main.res.abs_3_a_1 Bool) (main.res.abs_4_a_1 Bool) (main.res.abs_5_a_1 Int) (main.res.abs_6_a_1 Bool) (main.res.abs_7_a_1 Bool) (main.res.inst_5_a_1 Bool) (main.res.inst_4_a_1 Int) (main.res.inst_3_a_1 Bool) (main.res.inst_2_a_1 Bool) (main.res.inst_1_a_1 Int) (main.res.inst_0_a_1 Bool) (main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_1)) (let ((X2 main.res.abs_0_a_1)) (and (= main.usr.ast_a_1 (and X2 X1)) (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) (= main.usr.nB0_a_1 (ite main.usr.B0_a_1 (+ main.usr.nB0_a_0 1) main.usr.nB0_a_0)) (= main.usr.avance0_a_1 main.res.abs_3_a_1) (= main.usr.retard0_a_1 main.res.abs_4_a_1) (= main.usr.nB1_a_1 (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) (= main.usr.avance1_a_1 main.res.abs_6_a_1) (= main.usr.retard1_a_1 main.res.abs_7_a_1) (= main.usr.diff0_a_1 main.res.abs_2_a_1) (= main.usr.diff1_a_1 main.res.abs_5_a_1) (__node_trans_hypothese_0 main.usr.B0_a_1 main.usr.S_a_1 main.usr.avance0_a_1 main.usr.retard0_a_1 main.res.abs_0_a_1 main.res.inst_5_a_1 main.res.inst_4_a_1 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_trans_controleur_0 main.usr.nB0_a_1 main.usr.nS_a_1 main.res.abs_2_a_1 main.res.abs_3_a_1 main.res.abs_4_a_1 main.res.inst_3_a_1 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_trans_hypothese_0 main.usr.B1_a_1 main.usr.S_a_1 main.usr.avance1_a_1 main.usr.retard1_a_1 main.res.abs_1_a_1 main.res.inst_2_a_1 main.res.inst_1_a_1 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_trans_controleur_0 main.usr.nB1_a_1 main.usr.nS_a_1 main.res.abs_5_a_1 main.res.abs_6_a_1 main.res.abs_7_a_1 main.res.inst_0_a_1 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) (not main.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.avance0_a_0 Bool) (top.impl.usr.retard0_a_0 Bool) (top.impl.usr.pOK_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.pOK_a_0 true) (= top.impl.usr.avance0_a_0 top.res.abs_6_a_0) (= top.impl.usr.retard0_a_0 top.res.abs_8_a_0) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_4_a_0)) (let ((X3 top.res.abs_3_a_0)) (let ((X4 top.res.abs_2_a_0)) (let ((X5 top.res.abs_1_a_0)) (and (= top.res.abs_10_a_0 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (__node_init_main_0 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.B0_a_1 Bool) (top.usr.B1_a_1 Bool) (top.usr.S_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.avance0_a_1 Bool) (top.impl.usr.retard0_a_1 Bool) (top.impl.usr.pOK_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Int) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Int) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.avance0_a_0 Bool) (top.impl.usr.retard0_a_0 Bool) (top.impl.usr.pOK_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (and (= top.res.abs_10_a_1 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (= top.usr.OK_a_1 (=> top.res.abs_11_a_1 top.impl.usr.pOK_a_0)) (= top.impl.usr.retard0_a_1 top.res.abs_8_a_1) (= top.impl.usr.avance0_a_1 top.res.abs_6_a_1) (= top.impl.usr.pOK_a_1 (not (and (and (and top.impl.usr.avance0_a_0 top.impl.usr.retard0_a_1) top.impl.usr.retard0_a_0) top.impl.usr.avance0_a_1))) (__node_trans_main_0 top.usr.B0_a_1 top.usr.B1_a_1 top.usr.S_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_0_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.pOK true) (= top.impl.usr.avance0 top.res.abs_6) (= top.impl.usr.retard0 top.res.abs_8) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_4)) (let ((X3 top.res.abs_3)) (let ((X4 top.res.abs_2)) (let ((X5 top.res.abs_1)) (and (= top.res.abs_10 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (__node_init_main_0 top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.B0! Bool) (top.usr.B1! Bool) (top.usr.S! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.avance0! Bool) (top.impl.usr.retard0! Bool) (top.impl.usr.pOK! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Int) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Int) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_0!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (and (= top.res.abs_10! (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (= top.usr.OK! (=> top.res.abs_11! top.impl.usr.pOK)) (= top.impl.usr.retard0! top.res.abs_8!) (= top.impl.usr.avance0! top.res.abs_6!) (= top.impl.usr.pOK! (not (and (and (and top.impl.usr.avance0 top.impl.usr.retard0!) top.impl.usr.retard0) top.impl.usr.avance0!))) (__node_trans_main_0 top.usr.B0! top.usr.B1! top.usr.S! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_0! top.res.abs_10 top.res.abs_11 top.res.inst_0) (not top.res.init_flag!)))))))) +(define-fun prop ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/metros_1_e8_725_e3_556.sl b/benchmarks/LIA/Lustre/metros_1_e8_725_e3_556.sl index 659cefd..0f8a192 100644 --- a/benchmarks/LIA/Lustre/metros_1_e8_725_e3_556.sl +++ b/benchmarks/LIA/Lustre/metros_1_e8_725_e3_556.sl @@ -1,1001 +1,35 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_controleur_0 ( - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) - (= controleur.usr.avance_a_0 false) - (= controleur.usr.retard_a_0 false) - controleur.res.init_flag_a_0) -) - -(define-fun - __node_trans_controleur_0 ( - (controleur.usr.nB_a_1 Int) - (controleur.usr.nS_a_1 Int) - (controleur.usr.diff_a_1 Int) - (controleur.usr.avance_a_1 Bool) - (controleur.usr.retard_a_1 Bool) - (controleur.res.init_flag_a_1 Bool) - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) - (= - controleur.usr.avance_a_1 - (ite - (not controleur.usr.avance_a_0) - (>= controleur.usr.diff_a_1 10) - (> controleur.usr.diff_a_1 0))) - (= - controleur.usr.retard_a_1 - (ite - (not controleur.usr.retard_a_0) - (<= controleur.usr.diff_a_1 (- 10)) - (< controleur.usr.diff_a_1 0))) - (not controleur.res.init_flag_a_1)) -) - -(define-fun - __node_init_hypothese_0 ( - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= hypothese.usr.ok_a_0 true) - (= hypothese.impl.usr.c_a_0 0) - hypothese.res.init_flag_a_0) -) - -(define-fun - __node_trans_hypothese_0 ( - (hypothese.usr.B_a_1 Bool) - (hypothese.usr.S_a_1 Bool) - (hypothese.usr.avance_a_1 Bool) - (hypothese.usr.retard_a_1 Bool) - (hypothese.usr.ok_a_1 Bool) - (hypothese.res.init_flag_a_1 Bool) - (hypothese.impl.usr.c_a_1 Int) - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= - hypothese.usr.ok_a_1 - (and - (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) - (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) - (= - hypothese.impl.usr.c_a_1 - (ite - (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) - (ite - hypothese.usr.B_a_1 - (- hypothese.impl.usr.c_a_0 1) - hypothese.impl.usr.c_a_0) - 0)) - (not hypothese.res.init_flag_a_1)) -) - -(define-fun - __node_init_main_0 ( - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_0)) - (let - ((X2 Bool main.res.abs_0_a_0)) - (and - (= main.usr.ast_a_0 (and X2 X1)) - (= main.usr.avance0_a_0 main.res.abs_3_a_0) - (= main.usr.nB0_a_0 0) - (= main.usr.nS_a_0 0) - (= main.usr.retard0_a_0 main.res.abs_4_a_0) - (= main.usr.avance1_a_0 main.res.abs_6_a_0) - (= main.usr.nB1_a_0 0) - (= main.usr.retard1_a_0 main.res.abs_7_a_0) - (= main.usr.diff0_a_0 main.res.abs_2_a_0) - (= main.usr.diff1_a_0 main.res.abs_5_a_0) - (__node_init_hypothese_0 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_init_controleur_0 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_init_hypothese_0 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_init_controleur_0 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - main.res.init_flag_a_0))) -) - -(define-fun - __node_trans_main_0 ( - (main.usr.B0_a_1 Bool) - (main.usr.B1_a_1 Bool) - (main.usr.S_a_1 Bool) - (main.usr.ast_a_1 Bool) - (main.usr.nB0_a_1 Int) - (main.usr.nB1_a_1 Int) - (main.usr.nS_a_1 Int) - (main.usr.diff0_a_1 Int) - (main.usr.diff1_a_1 Int) - (main.usr.avance0_a_1 Bool) - (main.usr.avance1_a_1 Bool) - (main.usr.retard0_a_1 Bool) - (main.usr.retard1_a_1 Bool) - (main.res.init_flag_a_1 Bool) - (main.res.abs_0_a_1 Bool) - (main.res.abs_1_a_1 Bool) - (main.res.abs_2_a_1 Int) - (main.res.abs_3_a_1 Bool) - (main.res.abs_4_a_1 Bool) - (main.res.abs_5_a_1 Int) - (main.res.abs_6_a_1 Bool) - (main.res.abs_7_a_1 Bool) - (main.res.inst_5_a_1 Bool) - (main.res.inst_4_a_1 Int) - (main.res.inst_3_a_1 Bool) - (main.res.inst_2_a_1 Bool) - (main.res.inst_1_a_1 Int) - (main.res.inst_0_a_1 Bool) - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_1)) - (let - ((X2 Bool main.res.abs_0_a_1)) - (and - (= main.usr.ast_a_1 (and X2 X1)) - (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) - (= - main.usr.nB0_a_1 - (ite main.usr.B0_a_1 (+ main.usr.nB0_a_0 1) main.usr.nB0_a_0)) - (= main.usr.avance0_a_1 main.res.abs_3_a_1) - (= main.usr.retard0_a_1 main.res.abs_4_a_1) - (= - main.usr.nB1_a_1 - (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) - (= main.usr.avance1_a_1 main.res.abs_6_a_1) - (= main.usr.retard1_a_1 main.res.abs_7_a_1) - (= main.usr.diff0_a_1 main.res.abs_2_a_1) - (= main.usr.diff1_a_1 main.res.abs_5_a_1) - (__node_trans_hypothese_0 - main.usr.B0_a_1 - main.usr.S_a_1 - main.usr.avance0_a_1 - main.usr.retard0_a_1 - main.res.abs_0_a_1 - main.res.inst_5_a_1 - main.res.inst_4_a_1 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_trans_controleur_0 - main.usr.nB0_a_1 - main.usr.nS_a_1 - main.res.abs_2_a_1 - main.res.abs_3_a_1 - main.res.abs_4_a_1 - main.res.inst_3_a_1 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_trans_hypothese_0 - main.usr.B1_a_1 - main.usr.S_a_1 - main.usr.avance1_a_1 - main.usr.retard1_a_1 - main.res.abs_1_a_1 - main.res.inst_2_a_1 - main.res.inst_1_a_1 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_trans_controleur_0 - main.usr.nB1_a_1 - main.usr.nS_a_1 - main.res.abs_5_a_1 - main.res.abs_6_a_1 - main.res.abs_7_a_1 - main.res.inst_0_a_1 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - (not main.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.avance0_a_0 Bool) - (top.impl.usr.retard0_a_0 Bool) - (top.impl.usr.pOK_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= top.impl.usr.pOK_a_0 true) - (= top.impl.usr.avance0_a_0 top.res.abs_6_a_0) - (= top.impl.usr.retard0_a_0 top.res.abs_8_a_0) - (let - ((X1 Bool top.res.abs_0_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (let - ((X3 Int top.res.abs_3_a_0)) - (let - ((X4 Int top.res.abs_2_a_0)) - (let - ((X5 Int top.res.abs_1_a_0)) - (and - (= - top.res.abs_10_a_0 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (__node_init_main_0 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.B0_a_1 Bool) - (top.usr.B1_a_1 Bool) - (top.usr.S_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.avance0_a_1 Bool) - (top.impl.usr.retard0_a_1 Bool) - (top.impl.usr.pOK_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Int) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Int) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.avance0_a_0 Bool) - (top.impl.usr.retard0_a_0 Bool) - (top.impl.usr.pOK_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_0_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (let - ((X3 Int top.res.abs_3_a_1)) - (let - ((X4 Int top.res.abs_2_a_1)) - (let - ((X5 Int top.res.abs_1_a_1)) - (and - (= - top.res.abs_10_a_1 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (= top.usr.OK_a_1 (=> top.res.abs_11_a_1 top.impl.usr.pOK_a_0)) - (= top.impl.usr.retard0_a_1 top.res.abs_8_a_1) - (= top.impl.usr.avance0_a_1 top.res.abs_6_a_1) - (= - top.impl.usr.pOK_a_1 - (not - (and - (and - (and top.impl.usr.avance0_a_0 top.impl.usr.retard0_a_1) - top.impl.usr.retard0_a_0) - top.impl.usr.avance0_a_1))) - (__node_trans_main_0 - top.usr.B0_a_1 - top.usr.B1_a_1 - top.usr.S_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_0_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.B0 Bool) -(declare-primed-var top.usr.B1 Bool) -(declare-primed-var top.usr.S Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.avance0 Bool) -(declare-primed-var top.impl.usr.retard0 Bool) -(declare-primed-var top.impl.usr.pOK Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Int) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Int) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.pOK true) - (= top.impl.usr.avance0 top.res.abs_6) - (= top.impl.usr.retard0 top.res.abs_8) - (let - ((X1 Bool top.res.abs_0)) - (let - ((X2 Int top.res.abs_4)) - (let - ((X3 Int top.res.abs_3)) - (let - ((X4 Int top.res.abs_2)) - (let - ((X5 Int top.res.abs_1)) - (and - (= - top.res.abs_10 - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (__node_init_main_0 - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.B0! Bool) - (top.usr.B1! Bool) - (top.usr.S! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.avance0! Bool) - (top.impl.usr.retard0! Bool) - (top.impl.usr.pOK! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Int) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Int) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_0!)) - (let - ((X2 Int top.res.abs_4!)) - (let - ((X3 Int top.res.abs_3!)) - (let - ((X4 Int top.res.abs_2!)) - (let - ((X5 Int top.res.abs_1!)) - (and - (= - top.res.abs_10! - (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) - (= top.usr.OK! (=> top.res.abs_11! top.impl.usr.pOK)) - (= top.impl.usr.retard0! top.res.abs_8!) - (= top.impl.usr.avance0! top.res.abs_6!) - (= - top.impl.usr.pOK! - (not - (and - (and - (and top.impl.usr.avance0 top.impl.usr.retard0!) - top.impl.usr.retard0) - top.impl.usr.avance0!))) - (__node_trans_main_0 - top.usr.B0! - top.usr.B1! - top.usr.S! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_0! - top.res.abs_10 - top.res.abs_11 - top.res.inst_0) - (not top.res.init_flag!))))))) -) - -(define-fun - prop ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.avance0 Bool) - (top.impl.usr.retard0 Bool) - (top.impl.usr.pOK Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_controleur_0 ((controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) (= controleur.usr.avance_a_0 false) (= controleur.usr.retard_a_0 false) controleur.res.init_flag_a_0)) +(define-fun __node_trans_controleur_0 ((controleur.usr.nB_a_1 Int) (controleur.usr.nS_a_1 Int) (controleur.usr.diff_a_1 Int) (controleur.usr.avance_a_1 Bool) (controleur.usr.retard_a_1 Bool) (controleur.res.init_flag_a_1 Bool) (controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) (= controleur.usr.avance_a_1 (ite (not controleur.usr.avance_a_0) (>= controleur.usr.diff_a_1 10) (> controleur.usr.diff_a_1 0))) (= controleur.usr.retard_a_1 (ite (not controleur.usr.retard_a_0) (<= controleur.usr.diff_a_1 (- 10)) (< controleur.usr.diff_a_1 0))) (not controleur.res.init_flag_a_1))) +(define-fun __node_init_hypothese_0 ((hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_0 true) (= hypothese.impl.usr.c_a_0 0) hypothese.res.init_flag_a_0)) +(define-fun __node_trans_hypothese_0 ((hypothese.usr.B_a_1 Bool) (hypothese.usr.S_a_1 Bool) (hypothese.usr.avance_a_1 Bool) (hypothese.usr.retard_a_1 Bool) (hypothese.usr.ok_a_1 Bool) (hypothese.res.init_flag_a_1 Bool) (hypothese.impl.usr.c_a_1 Int) (hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_1 (and (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) (= hypothese.impl.usr.c_a_1 (ite (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) (ite hypothese.usr.B_a_1 (- hypothese.impl.usr.c_a_0 1) hypothese.impl.usr.c_a_0) 0)) (not hypothese.res.init_flag_a_1))) +(define-fun __node_init_main_0 ((main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_0)) (let ((X2 main.res.abs_0_a_0)) (and (= main.usr.ast_a_0 (and X2 X1)) (= main.usr.avance0_a_0 main.res.abs_3_a_0) (= main.usr.nB0_a_0 0) (= main.usr.nS_a_0 0) (= main.usr.retard0_a_0 main.res.abs_4_a_0) (= main.usr.avance1_a_0 main.res.abs_6_a_0) (= main.usr.nB1_a_0 0) (= main.usr.retard1_a_0 main.res.abs_7_a_0) (= main.usr.diff0_a_0 main.res.abs_2_a_0) (= main.usr.diff1_a_0 main.res.abs_5_a_0) (__node_init_hypothese_0 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_init_controleur_0 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_init_hypothese_0 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_init_controleur_0 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) main.res.init_flag_a_0)))) +(define-fun __node_trans_main_0 ((main.usr.B0_a_1 Bool) (main.usr.B1_a_1 Bool) (main.usr.S_a_1 Bool) (main.usr.ast_a_1 Bool) (main.usr.nB0_a_1 Int) (main.usr.nB1_a_1 Int) (main.usr.nS_a_1 Int) (main.usr.diff0_a_1 Int) (main.usr.diff1_a_1 Int) (main.usr.avance0_a_1 Bool) (main.usr.avance1_a_1 Bool) (main.usr.retard0_a_1 Bool) (main.usr.retard1_a_1 Bool) (main.res.init_flag_a_1 Bool) (main.res.abs_0_a_1 Bool) (main.res.abs_1_a_1 Bool) (main.res.abs_2_a_1 Int) (main.res.abs_3_a_1 Bool) (main.res.abs_4_a_1 Bool) (main.res.abs_5_a_1 Int) (main.res.abs_6_a_1 Bool) (main.res.abs_7_a_1 Bool) (main.res.inst_5_a_1 Bool) (main.res.inst_4_a_1 Int) (main.res.inst_3_a_1 Bool) (main.res.inst_2_a_1 Bool) (main.res.inst_1_a_1 Int) (main.res.inst_0_a_1 Bool) (main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_1)) (let ((X2 main.res.abs_0_a_1)) (and (= main.usr.ast_a_1 (and X2 X1)) (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) (= main.usr.nB0_a_1 (ite main.usr.B0_a_1 (+ main.usr.nB0_a_0 1) main.usr.nB0_a_0)) (= main.usr.avance0_a_1 main.res.abs_3_a_1) (= main.usr.retard0_a_1 main.res.abs_4_a_1) (= main.usr.nB1_a_1 (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) (= main.usr.avance1_a_1 main.res.abs_6_a_1) (= main.usr.retard1_a_1 main.res.abs_7_a_1) (= main.usr.diff0_a_1 main.res.abs_2_a_1) (= main.usr.diff1_a_1 main.res.abs_5_a_1) (__node_trans_hypothese_0 main.usr.B0_a_1 main.usr.S_a_1 main.usr.avance0_a_1 main.usr.retard0_a_1 main.res.abs_0_a_1 main.res.inst_5_a_1 main.res.inst_4_a_1 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_trans_controleur_0 main.usr.nB0_a_1 main.usr.nS_a_1 main.res.abs_2_a_1 main.res.abs_3_a_1 main.res.abs_4_a_1 main.res.inst_3_a_1 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_trans_hypothese_0 main.usr.B1_a_1 main.usr.S_a_1 main.usr.avance1_a_1 main.usr.retard1_a_1 main.res.abs_1_a_1 main.res.inst_2_a_1 main.res.inst_1_a_1 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_trans_controleur_0 main.usr.nB1_a_1 main.usr.nS_a_1 main.res.abs_5_a_1 main.res.abs_6_a_1 main.res.abs_7_a_1 main.res.inst_0_a_1 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) (not main.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.avance0_a_0 Bool) (top.impl.usr.retard0_a_0 Bool) (top.impl.usr.pOK_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.pOK_a_0 true) (= top.impl.usr.avance0_a_0 top.res.abs_6_a_0) (= top.impl.usr.retard0_a_0 top.res.abs_8_a_0) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_4_a_0)) (let ((X3 top.res.abs_3_a_0)) (let ((X4 top.res.abs_2_a_0)) (let ((X5 top.res.abs_1_a_0)) (and (= top.res.abs_10_a_0 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (__node_init_main_0 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.B0_a_1 Bool) (top.usr.B1_a_1 Bool) (top.usr.S_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.avance0_a_1 Bool) (top.impl.usr.retard0_a_1 Bool) (top.impl.usr.pOK_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Int) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Int) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.avance0_a_0 Bool) (top.impl.usr.retard0_a_0 Bool) (top.impl.usr.pOK_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_1)) (let ((X2 top.res.abs_4_a_1)) (let ((X3 top.res.abs_3_a_1)) (let ((X4 top.res.abs_2_a_1)) (let ((X5 top.res.abs_1_a_1)) (and (= top.res.abs_10_a_1 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (= top.usr.OK_a_1 (=> top.res.abs_11_a_1 top.impl.usr.pOK_a_0)) (= top.impl.usr.retard0_a_1 top.res.abs_8_a_1) (= top.impl.usr.avance0_a_1 top.res.abs_6_a_1) (= top.impl.usr.pOK_a_1 (not (and (and (and top.impl.usr.avance0_a_0 top.impl.usr.retard0_a_1) top.impl.usr.retard0_a_0) top.impl.usr.avance0_a_1))) (__node_trans_main_0 top.usr.B0_a_1 top.usr.B1_a_1 top.usr.S_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_0_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.pOK true) (= top.impl.usr.avance0 top.res.abs_6) (= top.impl.usr.retard0 top.res.abs_8) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_4)) (let ((X3 top.res.abs_3)) (let ((X4 top.res.abs_2)) (let ((X5 top.res.abs_1)) (and (= top.res.abs_10 (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (__node_init_main_0 top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.B0! Bool) (top.usr.B1! Bool) (top.usr.S! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.avance0! Bool) (top.impl.usr.retard0! Bool) (top.impl.usr.pOK! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Int) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Int) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_0!)) (let ((X2 top.res.abs_4!)) (let ((X3 top.res.abs_3!)) (let ((X4 top.res.abs_2!)) (let ((X5 top.res.abs_1!)) (and (= top.res.abs_10! (and (and (and (and X1 (< X5 1)) (< X4 1)) (< X3 1)) (< X2 32767))) (= top.usr.OK! (=> top.res.abs_11! top.impl.usr.pOK)) (= top.impl.usr.retard0! top.res.abs_8!) (= top.impl.usr.avance0! top.res.abs_6!) (= top.impl.usr.pOK! (not (and (and (and top.impl.usr.avance0 top.impl.usr.retard0!) top.impl.usr.retard0) top.impl.usr.avance0!))) (__node_trans_main_0 top.usr.B0! top.usr.B1! top.usr.S! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_0! top.res.abs_10 top.res.abs_11 top.res.inst_0) (not top.res.init_flag!)))))))) +(define-fun prop ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.avance0 Bool) (top.impl.usr.retard0 Bool) (top.impl.usr.pOK Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/metros_2.sl b/benchmarks/LIA/Lustre/metros_2.sl index 26cc820..ab3644d 100644 --- a/benchmarks/LIA/Lustre/metros_2.sl +++ b/benchmarks/LIA/Lustre/metros_2.sl @@ -1,916 +1,35 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_controleur_0 ( - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) - (= controleur.usr.avance_a_0 false) - (= controleur.usr.retard_a_0 false) - controleur.res.init_flag_a_0) -) - -(define-fun - __node_trans_controleur_0 ( - (controleur.usr.nB_a_1 Int) - (controleur.usr.nS_a_1 Int) - (controleur.usr.diff_a_1 Int) - (controleur.usr.avance_a_1 Bool) - (controleur.usr.retard_a_1 Bool) - (controleur.res.init_flag_a_1 Bool) - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) - (= - controleur.usr.avance_a_1 - (ite - (not controleur.usr.avance_a_0) - (>= controleur.usr.diff_a_1 10) - (> controleur.usr.diff_a_1 0))) - (= - controleur.usr.retard_a_1 - (ite - (not controleur.usr.retard_a_0) - (<= controleur.usr.diff_a_1 (- 10)) - (< controleur.usr.diff_a_1 0))) - (not controleur.res.init_flag_a_1)) -) - -(define-fun - __node_init_hypothese_0 ( - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= hypothese.usr.ok_a_0 true) - (= hypothese.impl.usr.c_a_0 0) - hypothese.res.init_flag_a_0) -) - -(define-fun - __node_trans_hypothese_0 ( - (hypothese.usr.B_a_1 Bool) - (hypothese.usr.S_a_1 Bool) - (hypothese.usr.avance_a_1 Bool) - (hypothese.usr.retard_a_1 Bool) - (hypothese.usr.ok_a_1 Bool) - (hypothese.res.init_flag_a_1 Bool) - (hypothese.impl.usr.c_a_1 Int) - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= - hypothese.usr.ok_a_1 - (and - (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) - (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) - (= - hypothese.impl.usr.c_a_1 - (ite - (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) - (ite - hypothese.usr.B_a_1 - (+ hypothese.impl.usr.c_a_0 1) - hypothese.impl.usr.c_a_0) - 0)) - (not hypothese.res.init_flag_a_1)) -) - -(define-fun - __node_init_main_0 ( - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_0)) - (let - ((X2 Bool main.res.abs_0_a_0)) - (and - (= main.usr.ast_a_0 (and X2 X1)) - (= main.usr.avance0_a_0 main.res.abs_3_a_0) - (= main.usr.nB0_a_0 0) - (= main.usr.nS_a_0 0) - (= main.usr.retard0_a_0 main.res.abs_4_a_0) - (= main.usr.avance1_a_0 main.res.abs_6_a_0) - (= main.usr.nB1_a_0 0) - (= main.usr.retard1_a_0 main.res.abs_7_a_0) - (= main.usr.diff0_a_0 main.res.abs_2_a_0) - (= main.usr.diff1_a_0 main.res.abs_5_a_0) - (__node_init_hypothese_0 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_init_controleur_0 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_init_hypothese_0 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_init_controleur_0 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - main.res.init_flag_a_0))) -) - -(define-fun - __node_trans_main_0 ( - (main.usr.B0_a_1 Bool) - (main.usr.B1_a_1 Bool) - (main.usr.S_a_1 Bool) - (main.usr.ast_a_1 Bool) - (main.usr.nB0_a_1 Int) - (main.usr.nB1_a_1 Int) - (main.usr.nS_a_1 Int) - (main.usr.diff0_a_1 Int) - (main.usr.diff1_a_1 Int) - (main.usr.avance0_a_1 Bool) - (main.usr.avance1_a_1 Bool) - (main.usr.retard0_a_1 Bool) - (main.usr.retard1_a_1 Bool) - (main.res.init_flag_a_1 Bool) - (main.res.abs_0_a_1 Bool) - (main.res.abs_1_a_1 Bool) - (main.res.abs_2_a_1 Int) - (main.res.abs_3_a_1 Bool) - (main.res.abs_4_a_1 Bool) - (main.res.abs_5_a_1 Int) - (main.res.abs_6_a_1 Bool) - (main.res.abs_7_a_1 Bool) - (main.res.inst_5_a_1 Bool) - (main.res.inst_4_a_1 Int) - (main.res.inst_3_a_1 Bool) - (main.res.inst_2_a_1 Bool) - (main.res.inst_1_a_1 Int) - (main.res.inst_0_a_1 Bool) - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_1)) - (let - ((X2 Bool main.res.abs_0_a_1)) - (and - (= main.usr.ast_a_1 (and X2 X1)) - (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) - (= - main.usr.nB0_a_1 - (ite main.usr.B0_a_1 (+ main.usr.nB0_a_0 1) main.usr.nB0_a_0)) - (= main.usr.avance0_a_1 main.res.abs_3_a_1) - (= main.usr.retard0_a_1 main.res.abs_4_a_1) - (= - main.usr.nB1_a_1 - (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) - (= main.usr.avance1_a_1 main.res.abs_6_a_1) - (= main.usr.retard1_a_1 main.res.abs_7_a_1) - (= main.usr.diff0_a_1 main.res.abs_2_a_1) - (= main.usr.diff1_a_1 main.res.abs_5_a_1) - (__node_trans_hypothese_0 - main.usr.B0_a_1 - main.usr.S_a_1 - main.usr.avance0_a_1 - main.usr.retard0_a_1 - main.res.abs_0_a_1 - main.res.inst_5_a_1 - main.res.inst_4_a_1 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_trans_controleur_0 - main.usr.nB0_a_1 - main.usr.nS_a_1 - main.res.abs_2_a_1 - main.res.abs_3_a_1 - main.res.abs_4_a_1 - main.res.inst_3_a_1 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_trans_hypothese_0 - main.usr.B1_a_1 - main.usr.S_a_1 - main.usr.avance1_a_1 - main.usr.retard1_a_1 - main.res.abs_1_a_1 - main.res.inst_2_a_1 - main.res.inst_1_a_1 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_trans_controleur_0 - main.usr.nB1_a_1 - main.usr.nS_a_1 - main.res.abs_5_a_1 - main.res.abs_6_a_1 - main.res.abs_7_a_1 - main.res.inst_0_a_1 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - (not main.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.diff0_a_0 Int) - (top.impl.usr.ast_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= top.impl.usr.diff0_a_0 top.res.abs_4_a_0) - (= top.impl.usr.ast_a_0 top.res.abs_0_a_0) - (__node_init_main_0 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_init_Sofar_0 top.impl.usr.ast_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) - top.res.init_flag_a_0) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.B0_a_1 Bool) - (top.usr.B1_a_1 Bool) - (top.usr.S_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.diff0_a_1 Int) - (top.impl.usr.ast_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Int) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Int) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.diff0_a_0 Int) - (top.impl.usr.ast_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.ast_a_1 top.res.abs_0_a_1) - (= - top.usr.OK_a_1 - (=> - top.res.abs_10_a_1 - (and (<= (- 10) top.impl.usr.diff0_a_0) (<= top.impl.usr.diff0_a_0 20)))) - (= top.impl.usr.diff0_a_1 top.res.abs_4_a_1) - (__node_trans_main_0 - top.usr.B0_a_1 - top.usr.B1_a_1 - top.usr.S_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_trans_Sofar_0 - top.impl.usr.ast_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.impl.usr.ast_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)) -) - - - -(synth-inv str_invariant( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.diff0 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.B0 Bool) -(declare-primed-var top.usr.B1 Bool) -(declare-primed-var top.usr.S Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.diff0 Int) -(declare-primed-var top.impl.usr.ast Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Int) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Int) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.diff0 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.diff0 top.res.abs_4) - (= top.impl.usr.ast top.res.abs_0) - (__node_init_main_0 - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_init_Sofar_0 top.impl.usr.ast top.res.abs_10 top.res.inst_0) - top.res.init_flag) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.diff0 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.B0! Bool) - (top.usr.B1! Bool) - (top.usr.S! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.diff0! Int) - (top.impl.usr.ast! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Int) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Int) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.impl.usr.ast! top.res.abs_0!) - (= - top.usr.OK! - (=> - top.res.abs_10! - (and (<= (- 10) top.impl.usr.diff0) (<= top.impl.usr.diff0 20)))) - (= top.impl.usr.diff0! top.res.abs_4!) - (__node_trans_main_0 - top.usr.B0! - top.usr.B1! - top.usr.S! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_trans_Sofar_0 - top.impl.usr.ast! - top.res.abs_10! - top.res.inst_0! - top.impl.usr.ast - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!)) -) - -(define-fun - prop ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.diff0 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_controleur_0 ((controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) (= controleur.usr.avance_a_0 false) (= controleur.usr.retard_a_0 false) controleur.res.init_flag_a_0)) +(define-fun __node_trans_controleur_0 ((controleur.usr.nB_a_1 Int) (controleur.usr.nS_a_1 Int) (controleur.usr.diff_a_1 Int) (controleur.usr.avance_a_1 Bool) (controleur.usr.retard_a_1 Bool) (controleur.res.init_flag_a_1 Bool) (controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) (= controleur.usr.avance_a_1 (ite (not controleur.usr.avance_a_0) (>= controleur.usr.diff_a_1 10) (> controleur.usr.diff_a_1 0))) (= controleur.usr.retard_a_1 (ite (not controleur.usr.retard_a_0) (<= controleur.usr.diff_a_1 (- 10)) (< controleur.usr.diff_a_1 0))) (not controleur.res.init_flag_a_1))) +(define-fun __node_init_hypothese_0 ((hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_0 true) (= hypothese.impl.usr.c_a_0 0) hypothese.res.init_flag_a_0)) +(define-fun __node_trans_hypothese_0 ((hypothese.usr.B_a_1 Bool) (hypothese.usr.S_a_1 Bool) (hypothese.usr.avance_a_1 Bool) (hypothese.usr.retard_a_1 Bool) (hypothese.usr.ok_a_1 Bool) (hypothese.res.init_flag_a_1 Bool) (hypothese.impl.usr.c_a_1 Int) (hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_1 (and (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) (= hypothese.impl.usr.c_a_1 (ite (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) (ite hypothese.usr.B_a_1 (+ hypothese.impl.usr.c_a_0 1) hypothese.impl.usr.c_a_0) 0)) (not hypothese.res.init_flag_a_1))) +(define-fun __node_init_main_0 ((main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_0)) (let ((X2 main.res.abs_0_a_0)) (and (= main.usr.ast_a_0 (and X2 X1)) (= main.usr.avance0_a_0 main.res.abs_3_a_0) (= main.usr.nB0_a_0 0) (= main.usr.nS_a_0 0) (= main.usr.retard0_a_0 main.res.abs_4_a_0) (= main.usr.avance1_a_0 main.res.abs_6_a_0) (= main.usr.nB1_a_0 0) (= main.usr.retard1_a_0 main.res.abs_7_a_0) (= main.usr.diff0_a_0 main.res.abs_2_a_0) (= main.usr.diff1_a_0 main.res.abs_5_a_0) (__node_init_hypothese_0 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_init_controleur_0 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_init_hypothese_0 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_init_controleur_0 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) main.res.init_flag_a_0)))) +(define-fun __node_trans_main_0 ((main.usr.B0_a_1 Bool) (main.usr.B1_a_1 Bool) (main.usr.S_a_1 Bool) (main.usr.ast_a_1 Bool) (main.usr.nB0_a_1 Int) (main.usr.nB1_a_1 Int) (main.usr.nS_a_1 Int) (main.usr.diff0_a_1 Int) (main.usr.diff1_a_1 Int) (main.usr.avance0_a_1 Bool) (main.usr.avance1_a_1 Bool) (main.usr.retard0_a_1 Bool) (main.usr.retard1_a_1 Bool) (main.res.init_flag_a_1 Bool) (main.res.abs_0_a_1 Bool) (main.res.abs_1_a_1 Bool) (main.res.abs_2_a_1 Int) (main.res.abs_3_a_1 Bool) (main.res.abs_4_a_1 Bool) (main.res.abs_5_a_1 Int) (main.res.abs_6_a_1 Bool) (main.res.abs_7_a_1 Bool) (main.res.inst_5_a_1 Bool) (main.res.inst_4_a_1 Int) (main.res.inst_3_a_1 Bool) (main.res.inst_2_a_1 Bool) (main.res.inst_1_a_1 Int) (main.res.inst_0_a_1 Bool) (main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_1)) (let ((X2 main.res.abs_0_a_1)) (and (= main.usr.ast_a_1 (and X2 X1)) (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) (= main.usr.nB0_a_1 (ite main.usr.B0_a_1 (+ main.usr.nB0_a_0 1) main.usr.nB0_a_0)) (= main.usr.avance0_a_1 main.res.abs_3_a_1) (= main.usr.retard0_a_1 main.res.abs_4_a_1) (= main.usr.nB1_a_1 (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) (= main.usr.avance1_a_1 main.res.abs_6_a_1) (= main.usr.retard1_a_1 main.res.abs_7_a_1) (= main.usr.diff0_a_1 main.res.abs_2_a_1) (= main.usr.diff1_a_1 main.res.abs_5_a_1) (__node_trans_hypothese_0 main.usr.B0_a_1 main.usr.S_a_1 main.usr.avance0_a_1 main.usr.retard0_a_1 main.res.abs_0_a_1 main.res.inst_5_a_1 main.res.inst_4_a_1 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_trans_controleur_0 main.usr.nB0_a_1 main.usr.nS_a_1 main.res.abs_2_a_1 main.res.abs_3_a_1 main.res.abs_4_a_1 main.res.inst_3_a_1 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_trans_hypothese_0 main.usr.B1_a_1 main.usr.S_a_1 main.usr.avance1_a_1 main.usr.retard1_a_1 main.res.abs_1_a_1 main.res.inst_2_a_1 main.res.inst_1_a_1 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_trans_controleur_0 main.usr.nB1_a_1 main.usr.nS_a_1 main.res.abs_5_a_1 main.res.abs_6_a_1 main.res.abs_7_a_1 main.res.inst_0_a_1 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) (not main.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.diff0_a_0 Int) (top.impl.usr.ast_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.diff0_a_0 top.res.abs_4_a_0) (= top.impl.usr.ast_a_0 top.res.abs_0_a_0) (__node_init_main_0 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_init_Sofar_0 top.impl.usr.ast_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)) +(define-fun __node_trans_top_0 ((top.usr.B0_a_1 Bool) (top.usr.B1_a_1 Bool) (top.usr.S_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.diff0_a_1 Int) (top.impl.usr.ast_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Int) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Int) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.diff0_a_0 Int) (top.impl.usr.ast_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.ast_a_1 top.res.abs_0_a_1) (= top.usr.OK_a_1 (=> top.res.abs_10_a_1 (and (<= (- 10) top.impl.usr.diff0_a_0) (<= top.impl.usr.diff0_a_0 20)))) (= top.impl.usr.diff0_a_1 top.res.abs_4_a_1) (__node_trans_main_0 top.usr.B0_a_1 top.usr.B1_a_1 top.usr.S_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_trans_Sofar_0 top.impl.usr.ast_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.impl.usr.ast_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))) +(synth-inv str_invariant ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.diff0 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.diff0 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.diff0 top.res.abs_4) (= top.impl.usr.ast top.res.abs_0) (__node_init_main_0 top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_init_Sofar_0 top.impl.usr.ast top.res.abs_10 top.res.inst_0) top.res.init_flag)) +(define-fun trans ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.diff0 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.B0! Bool) (top.usr.B1! Bool) (top.usr.S! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.diff0! Int) (top.impl.usr.ast! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Int) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Int) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.ast! top.res.abs_0!) (= top.usr.OK! (=> top.res.abs_10! (and (<= (- 10) top.impl.usr.diff0) (<= top.impl.usr.diff0 20)))) (= top.impl.usr.diff0! top.res.abs_4!) (__node_trans_main_0 top.usr.B0! top.usr.B1! top.usr.S! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_trans_Sofar_0 top.impl.usr.ast! top.res.abs_10! top.res.inst_0! top.impl.usr.ast top.res.abs_10 top.res.inst_0) (not top.res.init_flag!))) +(define-fun prop ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.diff0 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/metros_2_e1_1116.sl b/benchmarks/LIA/Lustre/metros_2_e1_1116.sl index 10e852e..d0c2e3b 100644 --- a/benchmarks/LIA/Lustre/metros_2_e1_1116.sl +++ b/benchmarks/LIA/Lustre/metros_2_e1_1116.sl @@ -1,916 +1,35 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_controleur_0 ( - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) - (= controleur.usr.avance_a_0 false) - (= controleur.usr.retard_a_0 false) - controleur.res.init_flag_a_0) -) - -(define-fun - __node_trans_controleur_0 ( - (controleur.usr.nB_a_1 Int) - (controleur.usr.nS_a_1 Int) - (controleur.usr.diff_a_1 Int) - (controleur.usr.avance_a_1 Bool) - (controleur.usr.retard_a_1 Bool) - (controleur.res.init_flag_a_1 Bool) - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) - (= - controleur.usr.avance_a_1 - (ite - (not controleur.usr.avance_a_0) - (>= controleur.usr.diff_a_1 10) - (> controleur.usr.diff_a_1 0))) - (= - controleur.usr.retard_a_1 - (ite - (not controleur.usr.retard_a_0) - (<= controleur.usr.diff_a_1 (- 10)) - (< controleur.usr.diff_a_1 0))) - (not controleur.res.init_flag_a_1)) -) - -(define-fun - __node_init_hypothese_0 ( - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= hypothese.usr.ok_a_0 true) - (= hypothese.impl.usr.c_a_0 0) - hypothese.res.init_flag_a_0) -) - -(define-fun - __node_trans_hypothese_0 ( - (hypothese.usr.B_a_1 Bool) - (hypothese.usr.S_a_1 Bool) - (hypothese.usr.avance_a_1 Bool) - (hypothese.usr.retard_a_1 Bool) - (hypothese.usr.ok_a_1 Bool) - (hypothese.res.init_flag_a_1 Bool) - (hypothese.impl.usr.c_a_1 Int) - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= - hypothese.usr.ok_a_1 - (and - (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) - (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) - (= - hypothese.impl.usr.c_a_1 - (ite - (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) - (ite - hypothese.usr.B_a_1 - (+ (+ hypothese.impl.usr.c_a_0 1) 1) - hypothese.impl.usr.c_a_0) - 0)) - (not hypothese.res.init_flag_a_1)) -) - -(define-fun - __node_init_main_0 ( - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_0)) - (let - ((X2 Bool main.res.abs_0_a_0)) - (and - (= main.usr.ast_a_0 (and X2 X1)) - (= main.usr.avance0_a_0 main.res.abs_3_a_0) - (= main.usr.nB0_a_0 0) - (= main.usr.nS_a_0 0) - (= main.usr.retard0_a_0 main.res.abs_4_a_0) - (= main.usr.avance1_a_0 main.res.abs_6_a_0) - (= main.usr.nB1_a_0 0) - (= main.usr.retard1_a_0 main.res.abs_7_a_0) - (= main.usr.diff0_a_0 main.res.abs_2_a_0) - (= main.usr.diff1_a_0 main.res.abs_5_a_0) - (__node_init_hypothese_0 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_init_controleur_0 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_init_hypothese_0 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_init_controleur_0 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - main.res.init_flag_a_0))) -) - -(define-fun - __node_trans_main_0 ( - (main.usr.B0_a_1 Bool) - (main.usr.B1_a_1 Bool) - (main.usr.S_a_1 Bool) - (main.usr.ast_a_1 Bool) - (main.usr.nB0_a_1 Int) - (main.usr.nB1_a_1 Int) - (main.usr.nS_a_1 Int) - (main.usr.diff0_a_1 Int) - (main.usr.diff1_a_1 Int) - (main.usr.avance0_a_1 Bool) - (main.usr.avance1_a_1 Bool) - (main.usr.retard0_a_1 Bool) - (main.usr.retard1_a_1 Bool) - (main.res.init_flag_a_1 Bool) - (main.res.abs_0_a_1 Bool) - (main.res.abs_1_a_1 Bool) - (main.res.abs_2_a_1 Int) - (main.res.abs_3_a_1 Bool) - (main.res.abs_4_a_1 Bool) - (main.res.abs_5_a_1 Int) - (main.res.abs_6_a_1 Bool) - (main.res.abs_7_a_1 Bool) - (main.res.inst_5_a_1 Bool) - (main.res.inst_4_a_1 Int) - (main.res.inst_3_a_1 Bool) - (main.res.inst_2_a_1 Bool) - (main.res.inst_1_a_1 Int) - (main.res.inst_0_a_1 Bool) - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_1)) - (let - ((X2 Bool main.res.abs_0_a_1)) - (and - (= main.usr.ast_a_1 (and X2 X1)) - (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) - (= - main.usr.nB0_a_1 - (ite main.usr.B0_a_1 (+ main.usr.nB0_a_0 1) main.usr.nB0_a_0)) - (= main.usr.avance0_a_1 main.res.abs_3_a_1) - (= main.usr.retard0_a_1 main.res.abs_4_a_1) - (= - main.usr.nB1_a_1 - (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) - (= main.usr.avance1_a_1 main.res.abs_6_a_1) - (= main.usr.retard1_a_1 main.res.abs_7_a_1) - (= main.usr.diff0_a_1 main.res.abs_2_a_1) - (= main.usr.diff1_a_1 main.res.abs_5_a_1) - (__node_trans_hypothese_0 - main.usr.B0_a_1 - main.usr.S_a_1 - main.usr.avance0_a_1 - main.usr.retard0_a_1 - main.res.abs_0_a_1 - main.res.inst_5_a_1 - main.res.inst_4_a_1 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_trans_controleur_0 - main.usr.nB0_a_1 - main.usr.nS_a_1 - main.res.abs_2_a_1 - main.res.abs_3_a_1 - main.res.abs_4_a_1 - main.res.inst_3_a_1 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_trans_hypothese_0 - main.usr.B1_a_1 - main.usr.S_a_1 - main.usr.avance1_a_1 - main.usr.retard1_a_1 - main.res.abs_1_a_1 - main.res.inst_2_a_1 - main.res.inst_1_a_1 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_trans_controleur_0 - main.usr.nB1_a_1 - main.usr.nS_a_1 - main.res.abs_5_a_1 - main.res.abs_6_a_1 - main.res.abs_7_a_1 - main.res.inst_0_a_1 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - (not main.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.diff0_a_0 Int) - (top.impl.usr.ast_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= top.impl.usr.diff0_a_0 top.res.abs_4_a_0) - (= top.impl.usr.ast_a_0 top.res.abs_0_a_0) - (__node_init_main_0 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_init_Sofar_0 top.impl.usr.ast_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) - top.res.init_flag_a_0) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.B0_a_1 Bool) - (top.usr.B1_a_1 Bool) - (top.usr.S_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.diff0_a_1 Int) - (top.impl.usr.ast_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Int) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Int) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.diff0_a_0 Int) - (top.impl.usr.ast_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.ast_a_1 top.res.abs_0_a_1) - (= - top.usr.OK_a_1 - (=> - top.res.abs_10_a_1 - (and (<= (- 10) top.impl.usr.diff0_a_0) (<= top.impl.usr.diff0_a_0 20)))) - (= top.impl.usr.diff0_a_1 top.res.abs_4_a_1) - (__node_trans_main_0 - top.usr.B0_a_1 - top.usr.B1_a_1 - top.usr.S_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_trans_Sofar_0 - top.impl.usr.ast_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.impl.usr.ast_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)) -) - - - -(synth-inv str_invariant( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.diff0 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.B0 Bool) -(declare-primed-var top.usr.B1 Bool) -(declare-primed-var top.usr.S Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.diff0 Int) -(declare-primed-var top.impl.usr.ast Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Int) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Int) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.diff0 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.diff0 top.res.abs_4) - (= top.impl.usr.ast top.res.abs_0) - (__node_init_main_0 - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_init_Sofar_0 top.impl.usr.ast top.res.abs_10 top.res.inst_0) - top.res.init_flag) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.diff0 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.B0! Bool) - (top.usr.B1! Bool) - (top.usr.S! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.diff0! Int) - (top.impl.usr.ast! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Int) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Int) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.impl.usr.ast! top.res.abs_0!) - (= - top.usr.OK! - (=> - top.res.abs_10! - (and (<= (- 10) top.impl.usr.diff0) (<= top.impl.usr.diff0 20)))) - (= top.impl.usr.diff0! top.res.abs_4!) - (__node_trans_main_0 - top.usr.B0! - top.usr.B1! - top.usr.S! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_trans_Sofar_0 - top.impl.usr.ast! - top.res.abs_10! - top.res.inst_0! - top.impl.usr.ast - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!)) -) - -(define-fun - prop ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.diff0 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_controleur_0 ((controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) (= controleur.usr.avance_a_0 false) (= controleur.usr.retard_a_0 false) controleur.res.init_flag_a_0)) +(define-fun __node_trans_controleur_0 ((controleur.usr.nB_a_1 Int) (controleur.usr.nS_a_1 Int) (controleur.usr.diff_a_1 Int) (controleur.usr.avance_a_1 Bool) (controleur.usr.retard_a_1 Bool) (controleur.res.init_flag_a_1 Bool) (controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) (= controleur.usr.avance_a_1 (ite (not controleur.usr.avance_a_0) (>= controleur.usr.diff_a_1 10) (> controleur.usr.diff_a_1 0))) (= controleur.usr.retard_a_1 (ite (not controleur.usr.retard_a_0) (<= controleur.usr.diff_a_1 (- 10)) (< controleur.usr.diff_a_1 0))) (not controleur.res.init_flag_a_1))) +(define-fun __node_init_hypothese_0 ((hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_0 true) (= hypothese.impl.usr.c_a_0 0) hypothese.res.init_flag_a_0)) +(define-fun __node_trans_hypothese_0 ((hypothese.usr.B_a_1 Bool) (hypothese.usr.S_a_1 Bool) (hypothese.usr.avance_a_1 Bool) (hypothese.usr.retard_a_1 Bool) (hypothese.usr.ok_a_1 Bool) (hypothese.res.init_flag_a_1 Bool) (hypothese.impl.usr.c_a_1 Int) (hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_1 (and (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) (= hypothese.impl.usr.c_a_1 (ite (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) (ite hypothese.usr.B_a_1 (+ (+ hypothese.impl.usr.c_a_0 1) 1) hypothese.impl.usr.c_a_0) 0)) (not hypothese.res.init_flag_a_1))) +(define-fun __node_init_main_0 ((main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_0)) (let ((X2 main.res.abs_0_a_0)) (and (= main.usr.ast_a_0 (and X2 X1)) (= main.usr.avance0_a_0 main.res.abs_3_a_0) (= main.usr.nB0_a_0 0) (= main.usr.nS_a_0 0) (= main.usr.retard0_a_0 main.res.abs_4_a_0) (= main.usr.avance1_a_0 main.res.abs_6_a_0) (= main.usr.nB1_a_0 0) (= main.usr.retard1_a_0 main.res.abs_7_a_0) (= main.usr.diff0_a_0 main.res.abs_2_a_0) (= main.usr.diff1_a_0 main.res.abs_5_a_0) (__node_init_hypothese_0 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_init_controleur_0 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_init_hypothese_0 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_init_controleur_0 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) main.res.init_flag_a_0)))) +(define-fun __node_trans_main_0 ((main.usr.B0_a_1 Bool) (main.usr.B1_a_1 Bool) (main.usr.S_a_1 Bool) (main.usr.ast_a_1 Bool) (main.usr.nB0_a_1 Int) (main.usr.nB1_a_1 Int) (main.usr.nS_a_1 Int) (main.usr.diff0_a_1 Int) (main.usr.diff1_a_1 Int) (main.usr.avance0_a_1 Bool) (main.usr.avance1_a_1 Bool) (main.usr.retard0_a_1 Bool) (main.usr.retard1_a_1 Bool) (main.res.init_flag_a_1 Bool) (main.res.abs_0_a_1 Bool) (main.res.abs_1_a_1 Bool) (main.res.abs_2_a_1 Int) (main.res.abs_3_a_1 Bool) (main.res.abs_4_a_1 Bool) (main.res.abs_5_a_1 Int) (main.res.abs_6_a_1 Bool) (main.res.abs_7_a_1 Bool) (main.res.inst_5_a_1 Bool) (main.res.inst_4_a_1 Int) (main.res.inst_3_a_1 Bool) (main.res.inst_2_a_1 Bool) (main.res.inst_1_a_1 Int) (main.res.inst_0_a_1 Bool) (main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_1)) (let ((X2 main.res.abs_0_a_1)) (and (= main.usr.ast_a_1 (and X2 X1)) (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) (= main.usr.nB0_a_1 (ite main.usr.B0_a_1 (+ main.usr.nB0_a_0 1) main.usr.nB0_a_0)) (= main.usr.avance0_a_1 main.res.abs_3_a_1) (= main.usr.retard0_a_1 main.res.abs_4_a_1) (= main.usr.nB1_a_1 (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) (= main.usr.avance1_a_1 main.res.abs_6_a_1) (= main.usr.retard1_a_1 main.res.abs_7_a_1) (= main.usr.diff0_a_1 main.res.abs_2_a_1) (= main.usr.diff1_a_1 main.res.abs_5_a_1) (__node_trans_hypothese_0 main.usr.B0_a_1 main.usr.S_a_1 main.usr.avance0_a_1 main.usr.retard0_a_1 main.res.abs_0_a_1 main.res.inst_5_a_1 main.res.inst_4_a_1 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_trans_controleur_0 main.usr.nB0_a_1 main.usr.nS_a_1 main.res.abs_2_a_1 main.res.abs_3_a_1 main.res.abs_4_a_1 main.res.inst_3_a_1 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_trans_hypothese_0 main.usr.B1_a_1 main.usr.S_a_1 main.usr.avance1_a_1 main.usr.retard1_a_1 main.res.abs_1_a_1 main.res.inst_2_a_1 main.res.inst_1_a_1 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_trans_controleur_0 main.usr.nB1_a_1 main.usr.nS_a_1 main.res.abs_5_a_1 main.res.abs_6_a_1 main.res.abs_7_a_1 main.res.inst_0_a_1 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) (not main.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.diff0_a_0 Int) (top.impl.usr.ast_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.diff0_a_0 top.res.abs_4_a_0) (= top.impl.usr.ast_a_0 top.res.abs_0_a_0) (__node_init_main_0 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_init_Sofar_0 top.impl.usr.ast_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)) +(define-fun __node_trans_top_0 ((top.usr.B0_a_1 Bool) (top.usr.B1_a_1 Bool) (top.usr.S_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.diff0_a_1 Int) (top.impl.usr.ast_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Int) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Int) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.diff0_a_0 Int) (top.impl.usr.ast_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.ast_a_1 top.res.abs_0_a_1) (= top.usr.OK_a_1 (=> top.res.abs_10_a_1 (and (<= (- 10) top.impl.usr.diff0_a_0) (<= top.impl.usr.diff0_a_0 20)))) (= top.impl.usr.diff0_a_1 top.res.abs_4_a_1) (__node_trans_main_0 top.usr.B0_a_1 top.usr.B1_a_1 top.usr.S_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_trans_Sofar_0 top.impl.usr.ast_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.impl.usr.ast_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))) +(synth-inv str_invariant ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.diff0 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.diff0 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.diff0 top.res.abs_4) (= top.impl.usr.ast top.res.abs_0) (__node_init_main_0 top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_init_Sofar_0 top.impl.usr.ast top.res.abs_10 top.res.inst_0) top.res.init_flag)) +(define-fun trans ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.diff0 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.B0! Bool) (top.usr.B1! Bool) (top.usr.S! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.diff0! Int) (top.impl.usr.ast! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Int) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Int) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.ast! top.res.abs_0!) (= top.usr.OK! (=> top.res.abs_10! (and (<= (- 10) top.impl.usr.diff0) (<= top.impl.usr.diff0 20)))) (= top.impl.usr.diff0! top.res.abs_4!) (__node_trans_main_0 top.usr.B0! top.usr.B1! top.usr.S! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_trans_Sofar_0 top.impl.usr.ast! top.res.abs_10! top.res.inst_0! top.impl.usr.ast top.res.abs_10 top.res.inst_0) (not top.res.init_flag!))) +(define-fun prop ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.diff0 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/metros_2_e1_1116_e2_617.sl b/benchmarks/LIA/Lustre/metros_2_e1_1116_e2_617.sl index 26fd793..15ba91c 100644 --- a/benchmarks/LIA/Lustre/metros_2_e1_1116_e2_617.sl +++ b/benchmarks/LIA/Lustre/metros_2_e1_1116_e2_617.sl @@ -1,916 +1,35 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_controleur_0 ( - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) - (= controleur.usr.avance_a_0 false) - (= controleur.usr.retard_a_0 false) - controleur.res.init_flag_a_0) -) - -(define-fun - __node_trans_controleur_0 ( - (controleur.usr.nB_a_1 Int) - (controleur.usr.nS_a_1 Int) - (controleur.usr.diff_a_1 Int) - (controleur.usr.avance_a_1 Bool) - (controleur.usr.retard_a_1 Bool) - (controleur.res.init_flag_a_1 Bool) - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) - (= - controleur.usr.avance_a_1 - (ite - (not controleur.usr.avance_a_0) - (>= controleur.usr.diff_a_1 10) - (> controleur.usr.diff_a_1 0))) - (= - controleur.usr.retard_a_1 - (ite - (not controleur.usr.retard_a_0) - (<= controleur.usr.diff_a_1 (- 10)) - (< controleur.usr.diff_a_1 0))) - (not controleur.res.init_flag_a_1)) -) - -(define-fun - __node_init_hypothese_0 ( - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= hypothese.usr.ok_a_0 true) - (= hypothese.impl.usr.c_a_0 0) - hypothese.res.init_flag_a_0) -) - -(define-fun - __node_trans_hypothese_0 ( - (hypothese.usr.B_a_1 Bool) - (hypothese.usr.S_a_1 Bool) - (hypothese.usr.avance_a_1 Bool) - (hypothese.usr.retard_a_1 Bool) - (hypothese.usr.ok_a_1 Bool) - (hypothese.res.init_flag_a_1 Bool) - (hypothese.impl.usr.c_a_1 Int) - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= - hypothese.usr.ok_a_1 - (and - (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) - (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) - (= - hypothese.impl.usr.c_a_1 - (ite - (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) - (ite - hypothese.usr.B_a_1 - (+ (+ hypothese.impl.usr.c_a_0 1) 1) - hypothese.impl.usr.c_a_0) - 0)) - (not hypothese.res.init_flag_a_1)) -) - -(define-fun - __node_init_main_0 ( - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_0)) - (let - ((X2 Bool main.res.abs_0_a_0)) - (and - (= main.usr.ast_a_0 (and X2 X1)) - (= main.usr.avance0_a_0 main.res.abs_3_a_0) - (= main.usr.nB0_a_0 0) - (= main.usr.nS_a_0 0) - (= main.usr.retard0_a_0 main.res.abs_4_a_0) - (= main.usr.avance1_a_0 main.res.abs_6_a_0) - (= main.usr.nB1_a_0 0) - (= main.usr.retard1_a_0 main.res.abs_7_a_0) - (= main.usr.diff0_a_0 main.res.abs_2_a_0) - (= main.usr.diff1_a_0 main.res.abs_5_a_0) - (__node_init_hypothese_0 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_init_controleur_0 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_init_hypothese_0 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_init_controleur_0 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - main.res.init_flag_a_0))) -) - -(define-fun - __node_trans_main_0 ( - (main.usr.B0_a_1 Bool) - (main.usr.B1_a_1 Bool) - (main.usr.S_a_1 Bool) - (main.usr.ast_a_1 Bool) - (main.usr.nB0_a_1 Int) - (main.usr.nB1_a_1 Int) - (main.usr.nS_a_1 Int) - (main.usr.diff0_a_1 Int) - (main.usr.diff1_a_1 Int) - (main.usr.avance0_a_1 Bool) - (main.usr.avance1_a_1 Bool) - (main.usr.retard0_a_1 Bool) - (main.usr.retard1_a_1 Bool) - (main.res.init_flag_a_1 Bool) - (main.res.abs_0_a_1 Bool) - (main.res.abs_1_a_1 Bool) - (main.res.abs_2_a_1 Int) - (main.res.abs_3_a_1 Bool) - (main.res.abs_4_a_1 Bool) - (main.res.abs_5_a_1 Int) - (main.res.abs_6_a_1 Bool) - (main.res.abs_7_a_1 Bool) - (main.res.inst_5_a_1 Bool) - (main.res.inst_4_a_1 Int) - (main.res.inst_3_a_1 Bool) - (main.res.inst_2_a_1 Bool) - (main.res.inst_1_a_1 Int) - (main.res.inst_0_a_1 Bool) - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_1)) - (let - ((X2 Bool main.res.abs_0_a_1)) - (and - (= main.usr.ast_a_1 (and X2 X1)) - (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) - (= - main.usr.nB0_a_1 - (ite main.usr.B0_a_1 (+ (- main.usr.nB0_a_0 1) 1) main.usr.nB0_a_0)) - (= main.usr.avance0_a_1 main.res.abs_3_a_1) - (= main.usr.retard0_a_1 main.res.abs_4_a_1) - (= - main.usr.nB1_a_1 - (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) - (= main.usr.avance1_a_1 main.res.abs_6_a_1) - (= main.usr.retard1_a_1 main.res.abs_7_a_1) - (= main.usr.diff0_a_1 main.res.abs_2_a_1) - (= main.usr.diff1_a_1 main.res.abs_5_a_1) - (__node_trans_hypothese_0 - main.usr.B0_a_1 - main.usr.S_a_1 - main.usr.avance0_a_1 - main.usr.retard0_a_1 - main.res.abs_0_a_1 - main.res.inst_5_a_1 - main.res.inst_4_a_1 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_trans_controleur_0 - main.usr.nB0_a_1 - main.usr.nS_a_1 - main.res.abs_2_a_1 - main.res.abs_3_a_1 - main.res.abs_4_a_1 - main.res.inst_3_a_1 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_trans_hypothese_0 - main.usr.B1_a_1 - main.usr.S_a_1 - main.usr.avance1_a_1 - main.usr.retard1_a_1 - main.res.abs_1_a_1 - main.res.inst_2_a_1 - main.res.inst_1_a_1 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_trans_controleur_0 - main.usr.nB1_a_1 - main.usr.nS_a_1 - main.res.abs_5_a_1 - main.res.abs_6_a_1 - main.res.abs_7_a_1 - main.res.inst_0_a_1 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - (not main.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.diff0_a_0 Int) - (top.impl.usr.ast_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= top.impl.usr.diff0_a_0 top.res.abs_4_a_0) - (= top.impl.usr.ast_a_0 top.res.abs_0_a_0) - (__node_init_main_0 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_init_Sofar_0 top.impl.usr.ast_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) - top.res.init_flag_a_0) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.B0_a_1 Bool) - (top.usr.B1_a_1 Bool) - (top.usr.S_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.diff0_a_1 Int) - (top.impl.usr.ast_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Int) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Int) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.diff0_a_0 Int) - (top.impl.usr.ast_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.ast_a_1 top.res.abs_0_a_1) - (= - top.usr.OK_a_1 - (=> - top.res.abs_10_a_1 - (and (<= (- 10) top.impl.usr.diff0_a_0) (<= top.impl.usr.diff0_a_0 20)))) - (= top.impl.usr.diff0_a_1 top.res.abs_4_a_1) - (__node_trans_main_0 - top.usr.B0_a_1 - top.usr.B1_a_1 - top.usr.S_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_trans_Sofar_0 - top.impl.usr.ast_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.impl.usr.ast_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)) -) - - - -(synth-inv str_invariant( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.diff0 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.B0 Bool) -(declare-primed-var top.usr.B1 Bool) -(declare-primed-var top.usr.S Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.diff0 Int) -(declare-primed-var top.impl.usr.ast Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Int) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Int) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.diff0 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.diff0 top.res.abs_4) - (= top.impl.usr.ast top.res.abs_0) - (__node_init_main_0 - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_init_Sofar_0 top.impl.usr.ast top.res.abs_10 top.res.inst_0) - top.res.init_flag) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.diff0 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.B0! Bool) - (top.usr.B1! Bool) - (top.usr.S! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.diff0! Int) - (top.impl.usr.ast! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Int) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Int) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.impl.usr.ast! top.res.abs_0!) - (= - top.usr.OK! - (=> - top.res.abs_10! - (and (<= (- 10) top.impl.usr.diff0) (<= top.impl.usr.diff0 20)))) - (= top.impl.usr.diff0! top.res.abs_4!) - (__node_trans_main_0 - top.usr.B0! - top.usr.B1! - top.usr.S! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_trans_Sofar_0 - top.impl.usr.ast! - top.res.abs_10! - top.res.inst_0! - top.impl.usr.ast - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!)) -) - -(define-fun - prop ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.diff0 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_controleur_0 ((controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) (= controleur.usr.avance_a_0 false) (= controleur.usr.retard_a_0 false) controleur.res.init_flag_a_0)) +(define-fun __node_trans_controleur_0 ((controleur.usr.nB_a_1 Int) (controleur.usr.nS_a_1 Int) (controleur.usr.diff_a_1 Int) (controleur.usr.avance_a_1 Bool) (controleur.usr.retard_a_1 Bool) (controleur.res.init_flag_a_1 Bool) (controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) (= controleur.usr.avance_a_1 (ite (not controleur.usr.avance_a_0) (>= controleur.usr.diff_a_1 10) (> controleur.usr.diff_a_1 0))) (= controleur.usr.retard_a_1 (ite (not controleur.usr.retard_a_0) (<= controleur.usr.diff_a_1 (- 10)) (< controleur.usr.diff_a_1 0))) (not controleur.res.init_flag_a_1))) +(define-fun __node_init_hypothese_0 ((hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_0 true) (= hypothese.impl.usr.c_a_0 0) hypothese.res.init_flag_a_0)) +(define-fun __node_trans_hypothese_0 ((hypothese.usr.B_a_1 Bool) (hypothese.usr.S_a_1 Bool) (hypothese.usr.avance_a_1 Bool) (hypothese.usr.retard_a_1 Bool) (hypothese.usr.ok_a_1 Bool) (hypothese.res.init_flag_a_1 Bool) (hypothese.impl.usr.c_a_1 Int) (hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_1 (and (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) (= hypothese.impl.usr.c_a_1 (ite (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) (ite hypothese.usr.B_a_1 (+ (+ hypothese.impl.usr.c_a_0 1) 1) hypothese.impl.usr.c_a_0) 0)) (not hypothese.res.init_flag_a_1))) +(define-fun __node_init_main_0 ((main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_0)) (let ((X2 main.res.abs_0_a_0)) (and (= main.usr.ast_a_0 (and X2 X1)) (= main.usr.avance0_a_0 main.res.abs_3_a_0) (= main.usr.nB0_a_0 0) (= main.usr.nS_a_0 0) (= main.usr.retard0_a_0 main.res.abs_4_a_0) (= main.usr.avance1_a_0 main.res.abs_6_a_0) (= main.usr.nB1_a_0 0) (= main.usr.retard1_a_0 main.res.abs_7_a_0) (= main.usr.diff0_a_0 main.res.abs_2_a_0) (= main.usr.diff1_a_0 main.res.abs_5_a_0) (__node_init_hypothese_0 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_init_controleur_0 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_init_hypothese_0 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_init_controleur_0 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) main.res.init_flag_a_0)))) +(define-fun __node_trans_main_0 ((main.usr.B0_a_1 Bool) (main.usr.B1_a_1 Bool) (main.usr.S_a_1 Bool) (main.usr.ast_a_1 Bool) (main.usr.nB0_a_1 Int) (main.usr.nB1_a_1 Int) (main.usr.nS_a_1 Int) (main.usr.diff0_a_1 Int) (main.usr.diff1_a_1 Int) (main.usr.avance0_a_1 Bool) (main.usr.avance1_a_1 Bool) (main.usr.retard0_a_1 Bool) (main.usr.retard1_a_1 Bool) (main.res.init_flag_a_1 Bool) (main.res.abs_0_a_1 Bool) (main.res.abs_1_a_1 Bool) (main.res.abs_2_a_1 Int) (main.res.abs_3_a_1 Bool) (main.res.abs_4_a_1 Bool) (main.res.abs_5_a_1 Int) (main.res.abs_6_a_1 Bool) (main.res.abs_7_a_1 Bool) (main.res.inst_5_a_1 Bool) (main.res.inst_4_a_1 Int) (main.res.inst_3_a_1 Bool) (main.res.inst_2_a_1 Bool) (main.res.inst_1_a_1 Int) (main.res.inst_0_a_1 Bool) (main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_1)) (let ((X2 main.res.abs_0_a_1)) (and (= main.usr.ast_a_1 (and X2 X1)) (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) (= main.usr.nB0_a_1 (ite main.usr.B0_a_1 (+ (- main.usr.nB0_a_0 1) 1) main.usr.nB0_a_0)) (= main.usr.avance0_a_1 main.res.abs_3_a_1) (= main.usr.retard0_a_1 main.res.abs_4_a_1) (= main.usr.nB1_a_1 (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) (= main.usr.avance1_a_1 main.res.abs_6_a_1) (= main.usr.retard1_a_1 main.res.abs_7_a_1) (= main.usr.diff0_a_1 main.res.abs_2_a_1) (= main.usr.diff1_a_1 main.res.abs_5_a_1) (__node_trans_hypothese_0 main.usr.B0_a_1 main.usr.S_a_1 main.usr.avance0_a_1 main.usr.retard0_a_1 main.res.abs_0_a_1 main.res.inst_5_a_1 main.res.inst_4_a_1 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_trans_controleur_0 main.usr.nB0_a_1 main.usr.nS_a_1 main.res.abs_2_a_1 main.res.abs_3_a_1 main.res.abs_4_a_1 main.res.inst_3_a_1 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_trans_hypothese_0 main.usr.B1_a_1 main.usr.S_a_1 main.usr.avance1_a_1 main.usr.retard1_a_1 main.res.abs_1_a_1 main.res.inst_2_a_1 main.res.inst_1_a_1 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_trans_controleur_0 main.usr.nB1_a_1 main.usr.nS_a_1 main.res.abs_5_a_1 main.res.abs_6_a_1 main.res.abs_7_a_1 main.res.inst_0_a_1 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) (not main.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.diff0_a_0 Int) (top.impl.usr.ast_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.diff0_a_0 top.res.abs_4_a_0) (= top.impl.usr.ast_a_0 top.res.abs_0_a_0) (__node_init_main_0 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_init_Sofar_0 top.impl.usr.ast_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)) +(define-fun __node_trans_top_0 ((top.usr.B0_a_1 Bool) (top.usr.B1_a_1 Bool) (top.usr.S_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.diff0_a_1 Int) (top.impl.usr.ast_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Int) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Int) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.diff0_a_0 Int) (top.impl.usr.ast_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.ast_a_1 top.res.abs_0_a_1) (= top.usr.OK_a_1 (=> top.res.abs_10_a_1 (and (<= (- 10) top.impl.usr.diff0_a_0) (<= top.impl.usr.diff0_a_0 20)))) (= top.impl.usr.diff0_a_1 top.res.abs_4_a_1) (__node_trans_main_0 top.usr.B0_a_1 top.usr.B1_a_1 top.usr.S_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_trans_Sofar_0 top.impl.usr.ast_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.impl.usr.ast_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))) +(synth-inv str_invariant ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.diff0 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.diff0 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.diff0 top.res.abs_4) (= top.impl.usr.ast top.res.abs_0) (__node_init_main_0 top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_init_Sofar_0 top.impl.usr.ast top.res.abs_10 top.res.inst_0) top.res.init_flag)) +(define-fun trans ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.diff0 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.B0! Bool) (top.usr.B1! Bool) (top.usr.S! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.diff0! Int) (top.impl.usr.ast! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Int) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Int) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.ast! top.res.abs_0!) (= top.usr.OK! (=> top.res.abs_10! (and (<= (- 10) top.impl.usr.diff0) (<= top.impl.usr.diff0 20)))) (= top.impl.usr.diff0! top.res.abs_4!) (__node_trans_main_0 top.usr.B0! top.usr.B1! top.usr.S! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_trans_Sofar_0 top.impl.usr.ast! top.res.abs_10! top.res.inst_0! top.impl.usr.ast top.res.abs_10 top.res.inst_0) (not top.res.init_flag!))) +(define-fun prop ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.diff0 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/metros_2_e1_190.sl b/benchmarks/LIA/Lustre/metros_2_e1_190.sl index 10e852e..d0c2e3b 100644 --- a/benchmarks/LIA/Lustre/metros_2_e1_190.sl +++ b/benchmarks/LIA/Lustre/metros_2_e1_190.sl @@ -1,916 +1,35 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_controleur_0 ( - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) - (= controleur.usr.avance_a_0 false) - (= controleur.usr.retard_a_0 false) - controleur.res.init_flag_a_0) -) - -(define-fun - __node_trans_controleur_0 ( - (controleur.usr.nB_a_1 Int) - (controleur.usr.nS_a_1 Int) - (controleur.usr.diff_a_1 Int) - (controleur.usr.avance_a_1 Bool) - (controleur.usr.retard_a_1 Bool) - (controleur.res.init_flag_a_1 Bool) - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) - (= - controleur.usr.avance_a_1 - (ite - (not controleur.usr.avance_a_0) - (>= controleur.usr.diff_a_1 10) - (> controleur.usr.diff_a_1 0))) - (= - controleur.usr.retard_a_1 - (ite - (not controleur.usr.retard_a_0) - (<= controleur.usr.diff_a_1 (- 10)) - (< controleur.usr.diff_a_1 0))) - (not controleur.res.init_flag_a_1)) -) - -(define-fun - __node_init_hypothese_0 ( - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= hypothese.usr.ok_a_0 true) - (= hypothese.impl.usr.c_a_0 0) - hypothese.res.init_flag_a_0) -) - -(define-fun - __node_trans_hypothese_0 ( - (hypothese.usr.B_a_1 Bool) - (hypothese.usr.S_a_1 Bool) - (hypothese.usr.avance_a_1 Bool) - (hypothese.usr.retard_a_1 Bool) - (hypothese.usr.ok_a_1 Bool) - (hypothese.res.init_flag_a_1 Bool) - (hypothese.impl.usr.c_a_1 Int) - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= - hypothese.usr.ok_a_1 - (and - (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) - (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) - (= - hypothese.impl.usr.c_a_1 - (ite - (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) - (ite - hypothese.usr.B_a_1 - (+ (+ hypothese.impl.usr.c_a_0 1) 1) - hypothese.impl.usr.c_a_0) - 0)) - (not hypothese.res.init_flag_a_1)) -) - -(define-fun - __node_init_main_0 ( - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_0)) - (let - ((X2 Bool main.res.abs_0_a_0)) - (and - (= main.usr.ast_a_0 (and X2 X1)) - (= main.usr.avance0_a_0 main.res.abs_3_a_0) - (= main.usr.nB0_a_0 0) - (= main.usr.nS_a_0 0) - (= main.usr.retard0_a_0 main.res.abs_4_a_0) - (= main.usr.avance1_a_0 main.res.abs_6_a_0) - (= main.usr.nB1_a_0 0) - (= main.usr.retard1_a_0 main.res.abs_7_a_0) - (= main.usr.diff0_a_0 main.res.abs_2_a_0) - (= main.usr.diff1_a_0 main.res.abs_5_a_0) - (__node_init_hypothese_0 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_init_controleur_0 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_init_hypothese_0 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_init_controleur_0 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - main.res.init_flag_a_0))) -) - -(define-fun - __node_trans_main_0 ( - (main.usr.B0_a_1 Bool) - (main.usr.B1_a_1 Bool) - (main.usr.S_a_1 Bool) - (main.usr.ast_a_1 Bool) - (main.usr.nB0_a_1 Int) - (main.usr.nB1_a_1 Int) - (main.usr.nS_a_1 Int) - (main.usr.diff0_a_1 Int) - (main.usr.diff1_a_1 Int) - (main.usr.avance0_a_1 Bool) - (main.usr.avance1_a_1 Bool) - (main.usr.retard0_a_1 Bool) - (main.usr.retard1_a_1 Bool) - (main.res.init_flag_a_1 Bool) - (main.res.abs_0_a_1 Bool) - (main.res.abs_1_a_1 Bool) - (main.res.abs_2_a_1 Int) - (main.res.abs_3_a_1 Bool) - (main.res.abs_4_a_1 Bool) - (main.res.abs_5_a_1 Int) - (main.res.abs_6_a_1 Bool) - (main.res.abs_7_a_1 Bool) - (main.res.inst_5_a_1 Bool) - (main.res.inst_4_a_1 Int) - (main.res.inst_3_a_1 Bool) - (main.res.inst_2_a_1 Bool) - (main.res.inst_1_a_1 Int) - (main.res.inst_0_a_1 Bool) - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_1)) - (let - ((X2 Bool main.res.abs_0_a_1)) - (and - (= main.usr.ast_a_1 (and X2 X1)) - (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) - (= - main.usr.nB0_a_1 - (ite main.usr.B0_a_1 (+ main.usr.nB0_a_0 1) main.usr.nB0_a_0)) - (= main.usr.avance0_a_1 main.res.abs_3_a_1) - (= main.usr.retard0_a_1 main.res.abs_4_a_1) - (= - main.usr.nB1_a_1 - (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) - (= main.usr.avance1_a_1 main.res.abs_6_a_1) - (= main.usr.retard1_a_1 main.res.abs_7_a_1) - (= main.usr.diff0_a_1 main.res.abs_2_a_1) - (= main.usr.diff1_a_1 main.res.abs_5_a_1) - (__node_trans_hypothese_0 - main.usr.B0_a_1 - main.usr.S_a_1 - main.usr.avance0_a_1 - main.usr.retard0_a_1 - main.res.abs_0_a_1 - main.res.inst_5_a_1 - main.res.inst_4_a_1 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_trans_controleur_0 - main.usr.nB0_a_1 - main.usr.nS_a_1 - main.res.abs_2_a_1 - main.res.abs_3_a_1 - main.res.abs_4_a_1 - main.res.inst_3_a_1 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_trans_hypothese_0 - main.usr.B1_a_1 - main.usr.S_a_1 - main.usr.avance1_a_1 - main.usr.retard1_a_1 - main.res.abs_1_a_1 - main.res.inst_2_a_1 - main.res.inst_1_a_1 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_trans_controleur_0 - main.usr.nB1_a_1 - main.usr.nS_a_1 - main.res.abs_5_a_1 - main.res.abs_6_a_1 - main.res.abs_7_a_1 - main.res.inst_0_a_1 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - (not main.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.diff0_a_0 Int) - (top.impl.usr.ast_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= top.impl.usr.diff0_a_0 top.res.abs_4_a_0) - (= top.impl.usr.ast_a_0 top.res.abs_0_a_0) - (__node_init_main_0 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_init_Sofar_0 top.impl.usr.ast_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) - top.res.init_flag_a_0) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.B0_a_1 Bool) - (top.usr.B1_a_1 Bool) - (top.usr.S_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.diff0_a_1 Int) - (top.impl.usr.ast_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Int) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Int) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.diff0_a_0 Int) - (top.impl.usr.ast_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.ast_a_1 top.res.abs_0_a_1) - (= - top.usr.OK_a_1 - (=> - top.res.abs_10_a_1 - (and (<= (- 10) top.impl.usr.diff0_a_0) (<= top.impl.usr.diff0_a_0 20)))) - (= top.impl.usr.diff0_a_1 top.res.abs_4_a_1) - (__node_trans_main_0 - top.usr.B0_a_1 - top.usr.B1_a_1 - top.usr.S_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_trans_Sofar_0 - top.impl.usr.ast_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.impl.usr.ast_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)) -) - - - -(synth-inv str_invariant( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.diff0 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.B0 Bool) -(declare-primed-var top.usr.B1 Bool) -(declare-primed-var top.usr.S Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.diff0 Int) -(declare-primed-var top.impl.usr.ast Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Int) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Int) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.diff0 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.diff0 top.res.abs_4) - (= top.impl.usr.ast top.res.abs_0) - (__node_init_main_0 - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_init_Sofar_0 top.impl.usr.ast top.res.abs_10 top.res.inst_0) - top.res.init_flag) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.diff0 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.B0! Bool) - (top.usr.B1! Bool) - (top.usr.S! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.diff0! Int) - (top.impl.usr.ast! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Int) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Int) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.impl.usr.ast! top.res.abs_0!) - (= - top.usr.OK! - (=> - top.res.abs_10! - (and (<= (- 10) top.impl.usr.diff0) (<= top.impl.usr.diff0 20)))) - (= top.impl.usr.diff0! top.res.abs_4!) - (__node_trans_main_0 - top.usr.B0! - top.usr.B1! - top.usr.S! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_trans_Sofar_0 - top.impl.usr.ast! - top.res.abs_10! - top.res.inst_0! - top.impl.usr.ast - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!)) -) - -(define-fun - prop ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.diff0 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_controleur_0 ((controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) (= controleur.usr.avance_a_0 false) (= controleur.usr.retard_a_0 false) controleur.res.init_flag_a_0)) +(define-fun __node_trans_controleur_0 ((controleur.usr.nB_a_1 Int) (controleur.usr.nS_a_1 Int) (controleur.usr.diff_a_1 Int) (controleur.usr.avance_a_1 Bool) (controleur.usr.retard_a_1 Bool) (controleur.res.init_flag_a_1 Bool) (controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) (= controleur.usr.avance_a_1 (ite (not controleur.usr.avance_a_0) (>= controleur.usr.diff_a_1 10) (> controleur.usr.diff_a_1 0))) (= controleur.usr.retard_a_1 (ite (not controleur.usr.retard_a_0) (<= controleur.usr.diff_a_1 (- 10)) (< controleur.usr.diff_a_1 0))) (not controleur.res.init_flag_a_1))) +(define-fun __node_init_hypothese_0 ((hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_0 true) (= hypothese.impl.usr.c_a_0 0) hypothese.res.init_flag_a_0)) +(define-fun __node_trans_hypothese_0 ((hypothese.usr.B_a_1 Bool) (hypothese.usr.S_a_1 Bool) (hypothese.usr.avance_a_1 Bool) (hypothese.usr.retard_a_1 Bool) (hypothese.usr.ok_a_1 Bool) (hypothese.res.init_flag_a_1 Bool) (hypothese.impl.usr.c_a_1 Int) (hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_1 (and (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) (= hypothese.impl.usr.c_a_1 (ite (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) (ite hypothese.usr.B_a_1 (+ (+ hypothese.impl.usr.c_a_0 1) 1) hypothese.impl.usr.c_a_0) 0)) (not hypothese.res.init_flag_a_1))) +(define-fun __node_init_main_0 ((main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_0)) (let ((X2 main.res.abs_0_a_0)) (and (= main.usr.ast_a_0 (and X2 X1)) (= main.usr.avance0_a_0 main.res.abs_3_a_0) (= main.usr.nB0_a_0 0) (= main.usr.nS_a_0 0) (= main.usr.retard0_a_0 main.res.abs_4_a_0) (= main.usr.avance1_a_0 main.res.abs_6_a_0) (= main.usr.nB1_a_0 0) (= main.usr.retard1_a_0 main.res.abs_7_a_0) (= main.usr.diff0_a_0 main.res.abs_2_a_0) (= main.usr.diff1_a_0 main.res.abs_5_a_0) (__node_init_hypothese_0 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_init_controleur_0 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_init_hypothese_0 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_init_controleur_0 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) main.res.init_flag_a_0)))) +(define-fun __node_trans_main_0 ((main.usr.B0_a_1 Bool) (main.usr.B1_a_1 Bool) (main.usr.S_a_1 Bool) (main.usr.ast_a_1 Bool) (main.usr.nB0_a_1 Int) (main.usr.nB1_a_1 Int) (main.usr.nS_a_1 Int) (main.usr.diff0_a_1 Int) (main.usr.diff1_a_1 Int) (main.usr.avance0_a_1 Bool) (main.usr.avance1_a_1 Bool) (main.usr.retard0_a_1 Bool) (main.usr.retard1_a_1 Bool) (main.res.init_flag_a_1 Bool) (main.res.abs_0_a_1 Bool) (main.res.abs_1_a_1 Bool) (main.res.abs_2_a_1 Int) (main.res.abs_3_a_1 Bool) (main.res.abs_4_a_1 Bool) (main.res.abs_5_a_1 Int) (main.res.abs_6_a_1 Bool) (main.res.abs_7_a_1 Bool) (main.res.inst_5_a_1 Bool) (main.res.inst_4_a_1 Int) (main.res.inst_3_a_1 Bool) (main.res.inst_2_a_1 Bool) (main.res.inst_1_a_1 Int) (main.res.inst_0_a_1 Bool) (main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_1)) (let ((X2 main.res.abs_0_a_1)) (and (= main.usr.ast_a_1 (and X2 X1)) (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) (= main.usr.nB0_a_1 (ite main.usr.B0_a_1 (+ main.usr.nB0_a_0 1) main.usr.nB0_a_0)) (= main.usr.avance0_a_1 main.res.abs_3_a_1) (= main.usr.retard0_a_1 main.res.abs_4_a_1) (= main.usr.nB1_a_1 (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) (= main.usr.avance1_a_1 main.res.abs_6_a_1) (= main.usr.retard1_a_1 main.res.abs_7_a_1) (= main.usr.diff0_a_1 main.res.abs_2_a_1) (= main.usr.diff1_a_1 main.res.abs_5_a_1) (__node_trans_hypothese_0 main.usr.B0_a_1 main.usr.S_a_1 main.usr.avance0_a_1 main.usr.retard0_a_1 main.res.abs_0_a_1 main.res.inst_5_a_1 main.res.inst_4_a_1 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_trans_controleur_0 main.usr.nB0_a_1 main.usr.nS_a_1 main.res.abs_2_a_1 main.res.abs_3_a_1 main.res.abs_4_a_1 main.res.inst_3_a_1 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_trans_hypothese_0 main.usr.B1_a_1 main.usr.S_a_1 main.usr.avance1_a_1 main.usr.retard1_a_1 main.res.abs_1_a_1 main.res.inst_2_a_1 main.res.inst_1_a_1 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_trans_controleur_0 main.usr.nB1_a_1 main.usr.nS_a_1 main.res.abs_5_a_1 main.res.abs_6_a_1 main.res.abs_7_a_1 main.res.inst_0_a_1 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) (not main.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.diff0_a_0 Int) (top.impl.usr.ast_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.diff0_a_0 top.res.abs_4_a_0) (= top.impl.usr.ast_a_0 top.res.abs_0_a_0) (__node_init_main_0 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_init_Sofar_0 top.impl.usr.ast_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)) +(define-fun __node_trans_top_0 ((top.usr.B0_a_1 Bool) (top.usr.B1_a_1 Bool) (top.usr.S_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.diff0_a_1 Int) (top.impl.usr.ast_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Int) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Int) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.diff0_a_0 Int) (top.impl.usr.ast_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.ast_a_1 top.res.abs_0_a_1) (= top.usr.OK_a_1 (=> top.res.abs_10_a_1 (and (<= (- 10) top.impl.usr.diff0_a_0) (<= top.impl.usr.diff0_a_0 20)))) (= top.impl.usr.diff0_a_1 top.res.abs_4_a_1) (__node_trans_main_0 top.usr.B0_a_1 top.usr.B1_a_1 top.usr.S_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_trans_Sofar_0 top.impl.usr.ast_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.impl.usr.ast_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))) +(synth-inv str_invariant ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.diff0 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.diff0 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.diff0 top.res.abs_4) (= top.impl.usr.ast top.res.abs_0) (__node_init_main_0 top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_init_Sofar_0 top.impl.usr.ast top.res.abs_10 top.res.inst_0) top.res.init_flag)) +(define-fun trans ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.diff0 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.B0! Bool) (top.usr.B1! Bool) (top.usr.S! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.diff0! Int) (top.impl.usr.ast! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Int) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Int) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.ast! top.res.abs_0!) (= top.usr.OK! (=> top.res.abs_10! (and (<= (- 10) top.impl.usr.diff0) (<= top.impl.usr.diff0 20)))) (= top.impl.usr.diff0! top.res.abs_4!) (__node_trans_main_0 top.usr.B0! top.usr.B1! top.usr.S! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_trans_Sofar_0 top.impl.usr.ast! top.res.abs_10! top.res.inst_0! top.impl.usr.ast top.res.abs_10 top.res.inst_0) (not top.res.init_flag!))) +(define-fun prop ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.diff0 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/metros_2_e2_704_e2_13.sl b/benchmarks/LIA/Lustre/metros_2_e2_704_e2_13.sl index f0ad19c..199ed5b 100644 --- a/benchmarks/LIA/Lustre/metros_2_e2_704_e2_13.sl +++ b/benchmarks/LIA/Lustre/metros_2_e2_704_e2_13.sl @@ -1,916 +1,35 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_controleur_0 ( - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) - (= controleur.usr.avance_a_0 false) - (= controleur.usr.retard_a_0 false) - controleur.res.init_flag_a_0) -) - -(define-fun - __node_trans_controleur_0 ( - (controleur.usr.nB_a_1 Int) - (controleur.usr.nS_a_1 Int) - (controleur.usr.diff_a_1 Int) - (controleur.usr.avance_a_1 Bool) - (controleur.usr.retard_a_1 Bool) - (controleur.res.init_flag_a_1 Bool) - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) - (= - controleur.usr.avance_a_1 - (ite - (not controleur.usr.avance_a_0) - (>= controleur.usr.diff_a_1 10) - (> controleur.usr.diff_a_1 0))) - (= - controleur.usr.retard_a_1 - (ite - (not controleur.usr.retard_a_0) - (<= controleur.usr.diff_a_1 (- 10)) - (< controleur.usr.diff_a_1 0))) - (not controleur.res.init_flag_a_1)) -) - -(define-fun - __node_init_hypothese_0 ( - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= hypothese.usr.ok_a_0 true) - (= hypothese.impl.usr.c_a_0 0) - hypothese.res.init_flag_a_0) -) - -(define-fun - __node_trans_hypothese_0 ( - (hypothese.usr.B_a_1 Bool) - (hypothese.usr.S_a_1 Bool) - (hypothese.usr.avance_a_1 Bool) - (hypothese.usr.retard_a_1 Bool) - (hypothese.usr.ok_a_1 Bool) - (hypothese.res.init_flag_a_1 Bool) - (hypothese.impl.usr.c_a_1 Int) - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= - hypothese.usr.ok_a_1 - (and - (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) - (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) - (= - hypothese.impl.usr.c_a_1 - (ite - (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) - (ite - hypothese.usr.B_a_1 - (+ (- hypothese.impl.usr.c_a_0 1) 1) - hypothese.impl.usr.c_a_0) - 0)) - (not hypothese.res.init_flag_a_1)) -) - -(define-fun - __node_init_main_0 ( - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_0)) - (let - ((X2 Bool main.res.abs_0_a_0)) - (and - (= main.usr.ast_a_0 (and X2 X1)) - (= main.usr.avance0_a_0 main.res.abs_3_a_0) - (= main.usr.nB0_a_0 0) - (= main.usr.nS_a_0 0) - (= main.usr.retard0_a_0 main.res.abs_4_a_0) - (= main.usr.avance1_a_0 main.res.abs_6_a_0) - (= main.usr.nB1_a_0 0) - (= main.usr.retard1_a_0 main.res.abs_7_a_0) - (= main.usr.diff0_a_0 main.res.abs_2_a_0) - (= main.usr.diff1_a_0 main.res.abs_5_a_0) - (__node_init_hypothese_0 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_init_controleur_0 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_init_hypothese_0 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_init_controleur_0 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - main.res.init_flag_a_0))) -) - -(define-fun - __node_trans_main_0 ( - (main.usr.B0_a_1 Bool) - (main.usr.B1_a_1 Bool) - (main.usr.S_a_1 Bool) - (main.usr.ast_a_1 Bool) - (main.usr.nB0_a_1 Int) - (main.usr.nB1_a_1 Int) - (main.usr.nS_a_1 Int) - (main.usr.diff0_a_1 Int) - (main.usr.diff1_a_1 Int) - (main.usr.avance0_a_1 Bool) - (main.usr.avance1_a_1 Bool) - (main.usr.retard0_a_1 Bool) - (main.usr.retard1_a_1 Bool) - (main.res.init_flag_a_1 Bool) - (main.res.abs_0_a_1 Bool) - (main.res.abs_1_a_1 Bool) - (main.res.abs_2_a_1 Int) - (main.res.abs_3_a_1 Bool) - (main.res.abs_4_a_1 Bool) - (main.res.abs_5_a_1 Int) - (main.res.abs_6_a_1 Bool) - (main.res.abs_7_a_1 Bool) - (main.res.inst_5_a_1 Bool) - (main.res.inst_4_a_1 Int) - (main.res.inst_3_a_1 Bool) - (main.res.inst_2_a_1 Bool) - (main.res.inst_1_a_1 Int) - (main.res.inst_0_a_1 Bool) - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_1)) - (let - ((X2 Bool main.res.abs_0_a_1)) - (and - (= main.usr.ast_a_1 (and X2 X1)) - (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) - (= - main.usr.nB0_a_1 - (ite main.usr.B0_a_1 (+ (- main.usr.nB0_a_0 1) 1) main.usr.nB0_a_0)) - (= main.usr.avance0_a_1 main.res.abs_3_a_1) - (= main.usr.retard0_a_1 main.res.abs_4_a_1) - (= - main.usr.nB1_a_1 - (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) - (= main.usr.avance1_a_1 main.res.abs_6_a_1) - (= main.usr.retard1_a_1 main.res.abs_7_a_1) - (= main.usr.diff0_a_1 main.res.abs_2_a_1) - (= main.usr.diff1_a_1 main.res.abs_5_a_1) - (__node_trans_hypothese_0 - main.usr.B0_a_1 - main.usr.S_a_1 - main.usr.avance0_a_1 - main.usr.retard0_a_1 - main.res.abs_0_a_1 - main.res.inst_5_a_1 - main.res.inst_4_a_1 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_trans_controleur_0 - main.usr.nB0_a_1 - main.usr.nS_a_1 - main.res.abs_2_a_1 - main.res.abs_3_a_1 - main.res.abs_4_a_1 - main.res.inst_3_a_1 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_trans_hypothese_0 - main.usr.B1_a_1 - main.usr.S_a_1 - main.usr.avance1_a_1 - main.usr.retard1_a_1 - main.res.abs_1_a_1 - main.res.inst_2_a_1 - main.res.inst_1_a_1 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_trans_controleur_0 - main.usr.nB1_a_1 - main.usr.nS_a_1 - main.res.abs_5_a_1 - main.res.abs_6_a_1 - main.res.abs_7_a_1 - main.res.inst_0_a_1 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - (not main.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.diff0_a_0 Int) - (top.impl.usr.ast_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= top.impl.usr.diff0_a_0 top.res.abs_4_a_0) - (= top.impl.usr.ast_a_0 top.res.abs_0_a_0) - (__node_init_main_0 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_init_Sofar_0 top.impl.usr.ast_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) - top.res.init_flag_a_0) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.B0_a_1 Bool) - (top.usr.B1_a_1 Bool) - (top.usr.S_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.diff0_a_1 Int) - (top.impl.usr.ast_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Int) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Int) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.diff0_a_0 Int) - (top.impl.usr.ast_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.ast_a_1 top.res.abs_0_a_1) - (= - top.usr.OK_a_1 - (=> - top.res.abs_10_a_1 - (and (<= (- 10) top.impl.usr.diff0_a_0) (<= top.impl.usr.diff0_a_0 20)))) - (= top.impl.usr.diff0_a_1 top.res.abs_4_a_1) - (__node_trans_main_0 - top.usr.B0_a_1 - top.usr.B1_a_1 - top.usr.S_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_trans_Sofar_0 - top.impl.usr.ast_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.impl.usr.ast_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)) -) - - - -(synth-inv str_invariant( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.diff0 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.B0 Bool) -(declare-primed-var top.usr.B1 Bool) -(declare-primed-var top.usr.S Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.diff0 Int) -(declare-primed-var top.impl.usr.ast Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Int) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Int) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.diff0 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.diff0 top.res.abs_4) - (= top.impl.usr.ast top.res.abs_0) - (__node_init_main_0 - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_init_Sofar_0 top.impl.usr.ast top.res.abs_10 top.res.inst_0) - top.res.init_flag) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.diff0 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.B0! Bool) - (top.usr.B1! Bool) - (top.usr.S! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.diff0! Int) - (top.impl.usr.ast! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Int) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Int) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.impl.usr.ast! top.res.abs_0!) - (= - top.usr.OK! - (=> - top.res.abs_10! - (and (<= (- 10) top.impl.usr.diff0) (<= top.impl.usr.diff0 20)))) - (= top.impl.usr.diff0! top.res.abs_4!) - (__node_trans_main_0 - top.usr.B0! - top.usr.B1! - top.usr.S! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_trans_Sofar_0 - top.impl.usr.ast! - top.res.abs_10! - top.res.inst_0! - top.impl.usr.ast - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!)) -) - -(define-fun - prop ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.diff0 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_controleur_0 ((controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) (= controleur.usr.avance_a_0 false) (= controleur.usr.retard_a_0 false) controleur.res.init_flag_a_0)) +(define-fun __node_trans_controleur_0 ((controleur.usr.nB_a_1 Int) (controleur.usr.nS_a_1 Int) (controleur.usr.diff_a_1 Int) (controleur.usr.avance_a_1 Bool) (controleur.usr.retard_a_1 Bool) (controleur.res.init_flag_a_1 Bool) (controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) (= controleur.usr.avance_a_1 (ite (not controleur.usr.avance_a_0) (>= controleur.usr.diff_a_1 10) (> controleur.usr.diff_a_1 0))) (= controleur.usr.retard_a_1 (ite (not controleur.usr.retard_a_0) (<= controleur.usr.diff_a_1 (- 10)) (< controleur.usr.diff_a_1 0))) (not controleur.res.init_flag_a_1))) +(define-fun __node_init_hypothese_0 ((hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_0 true) (= hypothese.impl.usr.c_a_0 0) hypothese.res.init_flag_a_0)) +(define-fun __node_trans_hypothese_0 ((hypothese.usr.B_a_1 Bool) (hypothese.usr.S_a_1 Bool) (hypothese.usr.avance_a_1 Bool) (hypothese.usr.retard_a_1 Bool) (hypothese.usr.ok_a_1 Bool) (hypothese.res.init_flag_a_1 Bool) (hypothese.impl.usr.c_a_1 Int) (hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_1 (and (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) (= hypothese.impl.usr.c_a_1 (ite (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) (ite hypothese.usr.B_a_1 (+ (- hypothese.impl.usr.c_a_0 1) 1) hypothese.impl.usr.c_a_0) 0)) (not hypothese.res.init_flag_a_1))) +(define-fun __node_init_main_0 ((main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_0)) (let ((X2 main.res.abs_0_a_0)) (and (= main.usr.ast_a_0 (and X2 X1)) (= main.usr.avance0_a_0 main.res.abs_3_a_0) (= main.usr.nB0_a_0 0) (= main.usr.nS_a_0 0) (= main.usr.retard0_a_0 main.res.abs_4_a_0) (= main.usr.avance1_a_0 main.res.abs_6_a_0) (= main.usr.nB1_a_0 0) (= main.usr.retard1_a_0 main.res.abs_7_a_0) (= main.usr.diff0_a_0 main.res.abs_2_a_0) (= main.usr.diff1_a_0 main.res.abs_5_a_0) (__node_init_hypothese_0 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_init_controleur_0 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_init_hypothese_0 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_init_controleur_0 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) main.res.init_flag_a_0)))) +(define-fun __node_trans_main_0 ((main.usr.B0_a_1 Bool) (main.usr.B1_a_1 Bool) (main.usr.S_a_1 Bool) (main.usr.ast_a_1 Bool) (main.usr.nB0_a_1 Int) (main.usr.nB1_a_1 Int) (main.usr.nS_a_1 Int) (main.usr.diff0_a_1 Int) (main.usr.diff1_a_1 Int) (main.usr.avance0_a_1 Bool) (main.usr.avance1_a_1 Bool) (main.usr.retard0_a_1 Bool) (main.usr.retard1_a_1 Bool) (main.res.init_flag_a_1 Bool) (main.res.abs_0_a_1 Bool) (main.res.abs_1_a_1 Bool) (main.res.abs_2_a_1 Int) (main.res.abs_3_a_1 Bool) (main.res.abs_4_a_1 Bool) (main.res.abs_5_a_1 Int) (main.res.abs_6_a_1 Bool) (main.res.abs_7_a_1 Bool) (main.res.inst_5_a_1 Bool) (main.res.inst_4_a_1 Int) (main.res.inst_3_a_1 Bool) (main.res.inst_2_a_1 Bool) (main.res.inst_1_a_1 Int) (main.res.inst_0_a_1 Bool) (main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_1)) (let ((X2 main.res.abs_0_a_1)) (and (= main.usr.ast_a_1 (and X2 X1)) (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) (= main.usr.nB0_a_1 (ite main.usr.B0_a_1 (+ (- main.usr.nB0_a_0 1) 1) main.usr.nB0_a_0)) (= main.usr.avance0_a_1 main.res.abs_3_a_1) (= main.usr.retard0_a_1 main.res.abs_4_a_1) (= main.usr.nB1_a_1 (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) (= main.usr.avance1_a_1 main.res.abs_6_a_1) (= main.usr.retard1_a_1 main.res.abs_7_a_1) (= main.usr.diff0_a_1 main.res.abs_2_a_1) (= main.usr.diff1_a_1 main.res.abs_5_a_1) (__node_trans_hypothese_0 main.usr.B0_a_1 main.usr.S_a_1 main.usr.avance0_a_1 main.usr.retard0_a_1 main.res.abs_0_a_1 main.res.inst_5_a_1 main.res.inst_4_a_1 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_trans_controleur_0 main.usr.nB0_a_1 main.usr.nS_a_1 main.res.abs_2_a_1 main.res.abs_3_a_1 main.res.abs_4_a_1 main.res.inst_3_a_1 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_trans_hypothese_0 main.usr.B1_a_1 main.usr.S_a_1 main.usr.avance1_a_1 main.usr.retard1_a_1 main.res.abs_1_a_1 main.res.inst_2_a_1 main.res.inst_1_a_1 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_trans_controleur_0 main.usr.nB1_a_1 main.usr.nS_a_1 main.res.abs_5_a_1 main.res.abs_6_a_1 main.res.abs_7_a_1 main.res.inst_0_a_1 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) (not main.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.diff0_a_0 Int) (top.impl.usr.ast_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.diff0_a_0 top.res.abs_4_a_0) (= top.impl.usr.ast_a_0 top.res.abs_0_a_0) (__node_init_main_0 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_init_Sofar_0 top.impl.usr.ast_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)) +(define-fun __node_trans_top_0 ((top.usr.B0_a_1 Bool) (top.usr.B1_a_1 Bool) (top.usr.S_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.diff0_a_1 Int) (top.impl.usr.ast_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Int) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Int) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.diff0_a_0 Int) (top.impl.usr.ast_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.ast_a_1 top.res.abs_0_a_1) (= top.usr.OK_a_1 (=> top.res.abs_10_a_1 (and (<= (- 10) top.impl.usr.diff0_a_0) (<= top.impl.usr.diff0_a_0 20)))) (= top.impl.usr.diff0_a_1 top.res.abs_4_a_1) (__node_trans_main_0 top.usr.B0_a_1 top.usr.B1_a_1 top.usr.S_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_trans_Sofar_0 top.impl.usr.ast_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.impl.usr.ast_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))) +(synth-inv str_invariant ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.diff0 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.diff0 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.diff0 top.res.abs_4) (= top.impl.usr.ast top.res.abs_0) (__node_init_main_0 top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_init_Sofar_0 top.impl.usr.ast top.res.abs_10 top.res.inst_0) top.res.init_flag)) +(define-fun trans ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.diff0 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.B0! Bool) (top.usr.B1! Bool) (top.usr.S! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.diff0! Int) (top.impl.usr.ast! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Int) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Int) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.ast! top.res.abs_0!) (= top.usr.OK! (=> top.res.abs_10! (and (<= (- 10) top.impl.usr.diff0) (<= top.impl.usr.diff0 20)))) (= top.impl.usr.diff0! top.res.abs_4!) (__node_trans_main_0 top.usr.B0! top.usr.B1! top.usr.S! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_trans_Sofar_0 top.impl.usr.ast! top.res.abs_10! top.res.inst_0! top.impl.usr.ast top.res.abs_10 top.res.inst_0) (not top.res.init_flag!))) +(define-fun prop ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.diff0 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/metros_3_e3_1275_e2_454.sl b/benchmarks/LIA/Lustre/metros_3_e3_1275_e2_454.sl index f559b43..2e5e1fa 100644 --- a/benchmarks/LIA/Lustre/metros_3_e3_1275_e2_454.sl +++ b/benchmarks/LIA/Lustre/metros_3_e3_1275_e2_454.sl @@ -1,925 +1,35 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_controleur_0 ( - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) - (= controleur.usr.avance_a_0 false) - (= controleur.usr.retard_a_0 false) - controleur.res.init_flag_a_0) -) - -(define-fun - __node_trans_controleur_0 ( - (controleur.usr.nB_a_1 Int) - (controleur.usr.nS_a_1 Int) - (controleur.usr.diff_a_1 Int) - (controleur.usr.avance_a_1 Bool) - (controleur.usr.retard_a_1 Bool) - (controleur.res.init_flag_a_1 Bool) - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) - (= - controleur.usr.avance_a_1 - (ite - (not controleur.usr.avance_a_0) - (>= controleur.usr.diff_a_1 10) - (> controleur.usr.diff_a_1 0))) - (= - controleur.usr.retard_a_1 - (ite - (not controleur.usr.retard_a_0) - (<= controleur.usr.diff_a_1 (- 10)) - (< controleur.usr.diff_a_1 0))) - (not controleur.res.init_flag_a_1)) -) - -(define-fun - __node_init_hypothese_0 ( - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= hypothese.usr.ok_a_0 true) - (= hypothese.impl.usr.c_a_0 0) - hypothese.res.init_flag_a_0) -) - -(define-fun - __node_trans_hypothese_0 ( - (hypothese.usr.B_a_1 Bool) - (hypothese.usr.S_a_1 Bool) - (hypothese.usr.avance_a_1 Bool) - (hypothese.usr.retard_a_1 Bool) - (hypothese.usr.ok_a_1 Bool) - (hypothese.res.init_flag_a_1 Bool) - (hypothese.impl.usr.c_a_1 Int) - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= - hypothese.usr.ok_a_1 - (and - (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) - (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) - (= - hypothese.impl.usr.c_a_1 - (ite - (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) - (ite - hypothese.usr.B_a_1 - (- hypothese.impl.usr.c_a_0 1) - hypothese.impl.usr.c_a_0) - 0)) - (not hypothese.res.init_flag_a_1)) -) - -(define-fun - __node_init_main_0 ( - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_0)) - (let - ((X2 Bool main.res.abs_0_a_0)) - (and - (= main.usr.ast_a_0 (and X2 X1)) - (= main.usr.avance0_a_0 main.res.abs_3_a_0) - (= main.usr.nB0_a_0 0) - (= main.usr.nS_a_0 0) - (= main.usr.retard0_a_0 main.res.abs_4_a_0) - (= main.usr.avance1_a_0 main.res.abs_6_a_0) - (= main.usr.nB1_a_0 0) - (= main.usr.retard1_a_0 main.res.abs_7_a_0) - (= main.usr.diff0_a_0 main.res.abs_2_a_0) - (= main.usr.diff1_a_0 main.res.abs_5_a_0) - (__node_init_hypothese_0 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_init_controleur_0 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_init_hypothese_0 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_init_controleur_0 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - main.res.init_flag_a_0))) -) - -(define-fun - __node_trans_main_0 ( - (main.usr.B0_a_1 Bool) - (main.usr.B1_a_1 Bool) - (main.usr.S_a_1 Bool) - (main.usr.ast_a_1 Bool) - (main.usr.nB0_a_1 Int) - (main.usr.nB1_a_1 Int) - (main.usr.nS_a_1 Int) - (main.usr.diff0_a_1 Int) - (main.usr.diff1_a_1 Int) - (main.usr.avance0_a_1 Bool) - (main.usr.avance1_a_1 Bool) - (main.usr.retard0_a_1 Bool) - (main.usr.retard1_a_1 Bool) - (main.res.init_flag_a_1 Bool) - (main.res.abs_0_a_1 Bool) - (main.res.abs_1_a_1 Bool) - (main.res.abs_2_a_1 Int) - (main.res.abs_3_a_1 Bool) - (main.res.abs_4_a_1 Bool) - (main.res.abs_5_a_1 Int) - (main.res.abs_6_a_1 Bool) - (main.res.abs_7_a_1 Bool) - (main.res.inst_5_a_1 Bool) - (main.res.inst_4_a_1 Int) - (main.res.inst_3_a_1 Bool) - (main.res.inst_2_a_1 Bool) - (main.res.inst_1_a_1 Int) - (main.res.inst_0_a_1 Bool) - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_1)) - (let - ((X2 Bool main.res.abs_0_a_1)) - (and - (= main.usr.ast_a_1 (and X2 X1)) - (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) - (= - main.usr.nB0_a_1 - (ite main.usr.B0_a_1 (+ (- main.usr.nB0_a_0 1) 1) main.usr.nB0_a_0)) - (= main.usr.avance0_a_1 main.res.abs_3_a_1) - (= main.usr.retard0_a_1 main.res.abs_4_a_1) - (= - main.usr.nB1_a_1 - (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) - (= main.usr.avance1_a_1 main.res.abs_6_a_1) - (= main.usr.retard1_a_1 main.res.abs_7_a_1) - (= main.usr.diff0_a_1 main.res.abs_2_a_1) - (= main.usr.diff1_a_1 main.res.abs_5_a_1) - (__node_trans_hypothese_0 - main.usr.B0_a_1 - main.usr.S_a_1 - main.usr.avance0_a_1 - main.usr.retard0_a_1 - main.res.abs_0_a_1 - main.res.inst_5_a_1 - main.res.inst_4_a_1 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_trans_controleur_0 - main.usr.nB0_a_1 - main.usr.nS_a_1 - main.res.abs_2_a_1 - main.res.abs_3_a_1 - main.res.abs_4_a_1 - main.res.inst_3_a_1 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_trans_hypothese_0 - main.usr.B1_a_1 - main.usr.S_a_1 - main.usr.avance1_a_1 - main.usr.retard1_a_1 - main.res.abs_1_a_1 - main.res.inst_2_a_1 - main.res.inst_1_a_1 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_trans_controleur_0 - main.usr.nB1_a_1 - main.usr.nS_a_1 - main.res.abs_5_a_1 - main.res.abs_6_a_1 - main.res.abs_7_a_1 - main.res.inst_0_a_1 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - (not main.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.nB0_a_0 Int) - (top.impl.usr.nB1_a_0 Int) - (top.impl.usr.ast_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= top.impl.usr.nB0_a_0 top.res.abs_1_a_0) - (= top.impl.usr.nB1_a_0 top.res.abs_2_a_0) - (= top.impl.usr.ast_a_0 top.res.abs_0_a_0) - (__node_init_main_0 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_init_Sofar_0 top.impl.usr.ast_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) - top.res.init_flag_a_0) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.B0_a_1 Bool) - (top.usr.B1_a_1 Bool) - (top.usr.S_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.nB0_a_1 Int) - (top.impl.usr.nB1_a_1 Int) - (top.impl.usr.ast_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Int) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Int) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.nB0_a_0 Int) - (top.impl.usr.nB1_a_0 Int) - (top.impl.usr.ast_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.ast_a_1 top.res.abs_0_a_1) - (= - top.usr.OK_a_1 - (=> top.res.abs_10_a_1 (<= (- top.impl.usr.nB0_a_0 top.impl.usr.nB1_a_0) 40))) - (= top.impl.usr.nB0_a_1 top.res.abs_1_a_1) - (= top.impl.usr.nB1_a_1 top.res.abs_2_a_1) - (__node_trans_main_0 - top.usr.B0_a_1 - top.usr.B1_a_1 - top.usr.S_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_trans_Sofar_0 - top.impl.usr.ast_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.impl.usr.ast_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)) -) - - - -(synth-inv str_invariant( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.nB0 Int) - (top.impl.usr.nB1 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.B0 Bool) -(declare-primed-var top.usr.B1 Bool) -(declare-primed-var top.usr.S Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.nB0 Int) -(declare-primed-var top.impl.usr.nB1 Int) -(declare-primed-var top.impl.usr.ast Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Int) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Int) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.nB0 Int) - (top.impl.usr.nB1 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.nB0 top.res.abs_1) - (= top.impl.usr.nB1 top.res.abs_2) - (= top.impl.usr.ast top.res.abs_0) - (__node_init_main_0 - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_init_Sofar_0 top.impl.usr.ast top.res.abs_10 top.res.inst_0) - top.res.init_flag) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.nB0 Int) - (top.impl.usr.nB1 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.B0! Bool) - (top.usr.B1! Bool) - (top.usr.S! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.nB0! Int) - (top.impl.usr.nB1! Int) - (top.impl.usr.ast! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Int) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Int) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.impl.usr.ast! top.res.abs_0!) - (= - top.usr.OK! - (=> top.res.abs_10! (<= (- top.impl.usr.nB0 top.impl.usr.nB1) 40))) - (= top.impl.usr.nB0! top.res.abs_1!) - (= top.impl.usr.nB1! top.res.abs_2!) - (__node_trans_main_0 - top.usr.B0! - top.usr.B1! - top.usr.S! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_trans_Sofar_0 - top.impl.usr.ast! - top.res.abs_10! - top.res.inst_0! - top.impl.usr.ast - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!)) -) - -(define-fun - prop ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.nB0 Int) - (top.impl.usr.nB1 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_controleur_0 ((controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) (= controleur.usr.avance_a_0 false) (= controleur.usr.retard_a_0 false) controleur.res.init_flag_a_0)) +(define-fun __node_trans_controleur_0 ((controleur.usr.nB_a_1 Int) (controleur.usr.nS_a_1 Int) (controleur.usr.diff_a_1 Int) (controleur.usr.avance_a_1 Bool) (controleur.usr.retard_a_1 Bool) (controleur.res.init_flag_a_1 Bool) (controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) (= controleur.usr.avance_a_1 (ite (not controleur.usr.avance_a_0) (>= controleur.usr.diff_a_1 10) (> controleur.usr.diff_a_1 0))) (= controleur.usr.retard_a_1 (ite (not controleur.usr.retard_a_0) (<= controleur.usr.diff_a_1 (- 10)) (< controleur.usr.diff_a_1 0))) (not controleur.res.init_flag_a_1))) +(define-fun __node_init_hypothese_0 ((hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_0 true) (= hypothese.impl.usr.c_a_0 0) hypothese.res.init_flag_a_0)) +(define-fun __node_trans_hypothese_0 ((hypothese.usr.B_a_1 Bool) (hypothese.usr.S_a_1 Bool) (hypothese.usr.avance_a_1 Bool) (hypothese.usr.retard_a_1 Bool) (hypothese.usr.ok_a_1 Bool) (hypothese.res.init_flag_a_1 Bool) (hypothese.impl.usr.c_a_1 Int) (hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_1 (and (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) (= hypothese.impl.usr.c_a_1 (ite (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) (ite hypothese.usr.B_a_1 (- hypothese.impl.usr.c_a_0 1) hypothese.impl.usr.c_a_0) 0)) (not hypothese.res.init_flag_a_1))) +(define-fun __node_init_main_0 ((main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_0)) (let ((X2 main.res.abs_0_a_0)) (and (= main.usr.ast_a_0 (and X2 X1)) (= main.usr.avance0_a_0 main.res.abs_3_a_0) (= main.usr.nB0_a_0 0) (= main.usr.nS_a_0 0) (= main.usr.retard0_a_0 main.res.abs_4_a_0) (= main.usr.avance1_a_0 main.res.abs_6_a_0) (= main.usr.nB1_a_0 0) (= main.usr.retard1_a_0 main.res.abs_7_a_0) (= main.usr.diff0_a_0 main.res.abs_2_a_0) (= main.usr.diff1_a_0 main.res.abs_5_a_0) (__node_init_hypothese_0 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_init_controleur_0 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_init_hypothese_0 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_init_controleur_0 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) main.res.init_flag_a_0)))) +(define-fun __node_trans_main_0 ((main.usr.B0_a_1 Bool) (main.usr.B1_a_1 Bool) (main.usr.S_a_1 Bool) (main.usr.ast_a_1 Bool) (main.usr.nB0_a_1 Int) (main.usr.nB1_a_1 Int) (main.usr.nS_a_1 Int) (main.usr.diff0_a_1 Int) (main.usr.diff1_a_1 Int) (main.usr.avance0_a_1 Bool) (main.usr.avance1_a_1 Bool) (main.usr.retard0_a_1 Bool) (main.usr.retard1_a_1 Bool) (main.res.init_flag_a_1 Bool) (main.res.abs_0_a_1 Bool) (main.res.abs_1_a_1 Bool) (main.res.abs_2_a_1 Int) (main.res.abs_3_a_1 Bool) (main.res.abs_4_a_1 Bool) (main.res.abs_5_a_1 Int) (main.res.abs_6_a_1 Bool) (main.res.abs_7_a_1 Bool) (main.res.inst_5_a_1 Bool) (main.res.inst_4_a_1 Int) (main.res.inst_3_a_1 Bool) (main.res.inst_2_a_1 Bool) (main.res.inst_1_a_1 Int) (main.res.inst_0_a_1 Bool) (main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_1)) (let ((X2 main.res.abs_0_a_1)) (and (= main.usr.ast_a_1 (and X2 X1)) (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) (= main.usr.nB0_a_1 (ite main.usr.B0_a_1 (+ (- main.usr.nB0_a_0 1) 1) main.usr.nB0_a_0)) (= main.usr.avance0_a_1 main.res.abs_3_a_1) (= main.usr.retard0_a_1 main.res.abs_4_a_1) (= main.usr.nB1_a_1 (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) (= main.usr.avance1_a_1 main.res.abs_6_a_1) (= main.usr.retard1_a_1 main.res.abs_7_a_1) (= main.usr.diff0_a_1 main.res.abs_2_a_1) (= main.usr.diff1_a_1 main.res.abs_5_a_1) (__node_trans_hypothese_0 main.usr.B0_a_1 main.usr.S_a_1 main.usr.avance0_a_1 main.usr.retard0_a_1 main.res.abs_0_a_1 main.res.inst_5_a_1 main.res.inst_4_a_1 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_trans_controleur_0 main.usr.nB0_a_1 main.usr.nS_a_1 main.res.abs_2_a_1 main.res.abs_3_a_1 main.res.abs_4_a_1 main.res.inst_3_a_1 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_trans_hypothese_0 main.usr.B1_a_1 main.usr.S_a_1 main.usr.avance1_a_1 main.usr.retard1_a_1 main.res.abs_1_a_1 main.res.inst_2_a_1 main.res.inst_1_a_1 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_trans_controleur_0 main.usr.nB1_a_1 main.usr.nS_a_1 main.res.abs_5_a_1 main.res.abs_6_a_1 main.res.abs_7_a_1 main.res.inst_0_a_1 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) (not main.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.nB0_a_0 Int) (top.impl.usr.nB1_a_0 Int) (top.impl.usr.ast_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.nB0_a_0 top.res.abs_1_a_0) (= top.impl.usr.nB1_a_0 top.res.abs_2_a_0) (= top.impl.usr.ast_a_0 top.res.abs_0_a_0) (__node_init_main_0 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_init_Sofar_0 top.impl.usr.ast_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)) +(define-fun __node_trans_top_0 ((top.usr.B0_a_1 Bool) (top.usr.B1_a_1 Bool) (top.usr.S_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.nB0_a_1 Int) (top.impl.usr.nB1_a_1 Int) (top.impl.usr.ast_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Int) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Int) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.nB0_a_0 Int) (top.impl.usr.nB1_a_0 Int) (top.impl.usr.ast_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.ast_a_1 top.res.abs_0_a_1) (= top.usr.OK_a_1 (=> top.res.abs_10_a_1 (<= (- top.impl.usr.nB0_a_0 top.impl.usr.nB1_a_0) 40))) (= top.impl.usr.nB0_a_1 top.res.abs_1_a_1) (= top.impl.usr.nB1_a_1 top.res.abs_2_a_1) (__node_trans_main_0 top.usr.B0_a_1 top.usr.B1_a_1 top.usr.S_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_trans_Sofar_0 top.impl.usr.ast_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.impl.usr.ast_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))) +(synth-inv str_invariant ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.nB0 Int) (top.impl.usr.nB1 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.nB0 Int) (top.impl.usr.nB1 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.nB0 top.res.abs_1) (= top.impl.usr.nB1 top.res.abs_2) (= top.impl.usr.ast top.res.abs_0) (__node_init_main_0 top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_init_Sofar_0 top.impl.usr.ast top.res.abs_10 top.res.inst_0) top.res.init_flag)) +(define-fun trans ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.nB0 Int) (top.impl.usr.nB1 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.B0! Bool) (top.usr.B1! Bool) (top.usr.S! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.nB0! Int) (top.impl.usr.nB1! Int) (top.impl.usr.ast! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Int) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Int) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.ast! top.res.abs_0!) (= top.usr.OK! (=> top.res.abs_10! (<= (- top.impl.usr.nB0 top.impl.usr.nB1) 40))) (= top.impl.usr.nB0! top.res.abs_1!) (= top.impl.usr.nB1! top.res.abs_2!) (__node_trans_main_0 top.usr.B0! top.usr.B1! top.usr.S! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_trans_Sofar_0 top.impl.usr.ast! top.res.abs_10! top.res.inst_0! top.impl.usr.ast top.res.abs_10 top.res.inst_0) (not top.res.init_flag!))) +(define-fun prop ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.nB0 Int) (top.impl.usr.nB1 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/metros_3_e3_1275_e3_640.sl b/benchmarks/LIA/Lustre/metros_3_e3_1275_e3_640.sl index 0a48af8..9335668 100644 --- a/benchmarks/LIA/Lustre/metros_3_e3_1275_e3_640.sl +++ b/benchmarks/LIA/Lustre/metros_3_e3_1275_e3_640.sl @@ -1,925 +1,35 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_controleur_0 ( - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) - (= controleur.usr.avance_a_0 false) - (= controleur.usr.retard_a_0 false) - controleur.res.init_flag_a_0) -) - -(define-fun - __node_trans_controleur_0 ( - (controleur.usr.nB_a_1 Int) - (controleur.usr.nS_a_1 Int) - (controleur.usr.diff_a_1 Int) - (controleur.usr.avance_a_1 Bool) - (controleur.usr.retard_a_1 Bool) - (controleur.res.init_flag_a_1 Bool) - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) - (= - controleur.usr.avance_a_1 - (ite - (not controleur.usr.avance_a_0) - (>= controleur.usr.diff_a_1 10) - (> controleur.usr.diff_a_1 0))) - (= - controleur.usr.retard_a_1 - (ite - (not controleur.usr.retard_a_0) - (<= controleur.usr.diff_a_1 (- 10)) - (< controleur.usr.diff_a_1 0))) - (not controleur.res.init_flag_a_1)) -) - -(define-fun - __node_init_hypothese_0 ( - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= hypothese.usr.ok_a_0 true) - (= hypothese.impl.usr.c_a_0 0) - hypothese.res.init_flag_a_0) -) - -(define-fun - __node_trans_hypothese_0 ( - (hypothese.usr.B_a_1 Bool) - (hypothese.usr.S_a_1 Bool) - (hypothese.usr.avance_a_1 Bool) - (hypothese.usr.retard_a_1 Bool) - (hypothese.usr.ok_a_1 Bool) - (hypothese.res.init_flag_a_1 Bool) - (hypothese.impl.usr.c_a_1 Int) - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= - hypothese.usr.ok_a_1 - (and - (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) - (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) - (= - hypothese.impl.usr.c_a_1 - (ite - (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) - (ite - hypothese.usr.B_a_1 - (- hypothese.impl.usr.c_a_0 1) - hypothese.impl.usr.c_a_0) - 0)) - (not hypothese.res.init_flag_a_1)) -) - -(define-fun - __node_init_main_0 ( - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_0)) - (let - ((X2 Bool main.res.abs_0_a_0)) - (and - (= main.usr.ast_a_0 (and X2 X1)) - (= main.usr.avance0_a_0 main.res.abs_3_a_0) - (= main.usr.nB0_a_0 0) - (= main.usr.nS_a_0 0) - (= main.usr.retard0_a_0 main.res.abs_4_a_0) - (= main.usr.avance1_a_0 main.res.abs_6_a_0) - (= main.usr.nB1_a_0 0) - (= main.usr.retard1_a_0 main.res.abs_7_a_0) - (= main.usr.diff0_a_0 main.res.abs_2_a_0) - (= main.usr.diff1_a_0 main.res.abs_5_a_0) - (__node_init_hypothese_0 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_init_controleur_0 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_init_hypothese_0 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_init_controleur_0 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - main.res.init_flag_a_0))) -) - -(define-fun - __node_trans_main_0 ( - (main.usr.B0_a_1 Bool) - (main.usr.B1_a_1 Bool) - (main.usr.S_a_1 Bool) - (main.usr.ast_a_1 Bool) - (main.usr.nB0_a_1 Int) - (main.usr.nB1_a_1 Int) - (main.usr.nS_a_1 Int) - (main.usr.diff0_a_1 Int) - (main.usr.diff1_a_1 Int) - (main.usr.avance0_a_1 Bool) - (main.usr.avance1_a_1 Bool) - (main.usr.retard0_a_1 Bool) - (main.usr.retard1_a_1 Bool) - (main.res.init_flag_a_1 Bool) - (main.res.abs_0_a_1 Bool) - (main.res.abs_1_a_1 Bool) - (main.res.abs_2_a_1 Int) - (main.res.abs_3_a_1 Bool) - (main.res.abs_4_a_1 Bool) - (main.res.abs_5_a_1 Int) - (main.res.abs_6_a_1 Bool) - (main.res.abs_7_a_1 Bool) - (main.res.inst_5_a_1 Bool) - (main.res.inst_4_a_1 Int) - (main.res.inst_3_a_1 Bool) - (main.res.inst_2_a_1 Bool) - (main.res.inst_1_a_1 Int) - (main.res.inst_0_a_1 Bool) - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_1)) - (let - ((X2 Bool main.res.abs_0_a_1)) - (and - (= main.usr.ast_a_1 (and X2 X1)) - (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) - (= - main.usr.nB0_a_1 - (ite main.usr.B0_a_1 (- main.usr.nB0_a_0 1) main.usr.nB0_a_0)) - (= main.usr.avance0_a_1 main.res.abs_3_a_1) - (= main.usr.retard0_a_1 main.res.abs_4_a_1) - (= - main.usr.nB1_a_1 - (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) - (= main.usr.avance1_a_1 main.res.abs_6_a_1) - (= main.usr.retard1_a_1 main.res.abs_7_a_1) - (= main.usr.diff0_a_1 main.res.abs_2_a_1) - (= main.usr.diff1_a_1 main.res.abs_5_a_1) - (__node_trans_hypothese_0 - main.usr.B0_a_1 - main.usr.S_a_1 - main.usr.avance0_a_1 - main.usr.retard0_a_1 - main.res.abs_0_a_1 - main.res.inst_5_a_1 - main.res.inst_4_a_1 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_trans_controleur_0 - main.usr.nB0_a_1 - main.usr.nS_a_1 - main.res.abs_2_a_1 - main.res.abs_3_a_1 - main.res.abs_4_a_1 - main.res.inst_3_a_1 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_trans_hypothese_0 - main.usr.B1_a_1 - main.usr.S_a_1 - main.usr.avance1_a_1 - main.usr.retard1_a_1 - main.res.abs_1_a_1 - main.res.inst_2_a_1 - main.res.inst_1_a_1 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_trans_controleur_0 - main.usr.nB1_a_1 - main.usr.nS_a_1 - main.res.abs_5_a_1 - main.res.abs_6_a_1 - main.res.abs_7_a_1 - main.res.inst_0_a_1 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - (not main.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.nB0_a_0 Int) - (top.impl.usr.nB1_a_0 Int) - (top.impl.usr.ast_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= top.impl.usr.nB0_a_0 top.res.abs_1_a_0) - (= top.impl.usr.nB1_a_0 top.res.abs_2_a_0) - (= top.impl.usr.ast_a_0 top.res.abs_0_a_0) - (__node_init_main_0 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_init_Sofar_0 top.impl.usr.ast_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) - top.res.init_flag_a_0) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.B0_a_1 Bool) - (top.usr.B1_a_1 Bool) - (top.usr.S_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.nB0_a_1 Int) - (top.impl.usr.nB1_a_1 Int) - (top.impl.usr.ast_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Int) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Int) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.nB0_a_0 Int) - (top.impl.usr.nB1_a_0 Int) - (top.impl.usr.ast_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.ast_a_1 top.res.abs_0_a_1) - (= - top.usr.OK_a_1 - (=> top.res.abs_10_a_1 (<= (- top.impl.usr.nB0_a_0 top.impl.usr.nB1_a_0) 40))) - (= top.impl.usr.nB0_a_1 top.res.abs_1_a_1) - (= top.impl.usr.nB1_a_1 top.res.abs_2_a_1) - (__node_trans_main_0 - top.usr.B0_a_1 - top.usr.B1_a_1 - top.usr.S_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_trans_Sofar_0 - top.impl.usr.ast_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.impl.usr.ast_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)) -) - - - -(synth-inv str_invariant( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.nB0 Int) - (top.impl.usr.nB1 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.B0 Bool) -(declare-primed-var top.usr.B1 Bool) -(declare-primed-var top.usr.S Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.nB0 Int) -(declare-primed-var top.impl.usr.nB1 Int) -(declare-primed-var top.impl.usr.ast Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Int) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Int) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.nB0 Int) - (top.impl.usr.nB1 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.nB0 top.res.abs_1) - (= top.impl.usr.nB1 top.res.abs_2) - (= top.impl.usr.ast top.res.abs_0) - (__node_init_main_0 - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_init_Sofar_0 top.impl.usr.ast top.res.abs_10 top.res.inst_0) - top.res.init_flag) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.nB0 Int) - (top.impl.usr.nB1 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.B0! Bool) - (top.usr.B1! Bool) - (top.usr.S! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.nB0! Int) - (top.impl.usr.nB1! Int) - (top.impl.usr.ast! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Int) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Int) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.impl.usr.ast! top.res.abs_0!) - (= - top.usr.OK! - (=> top.res.abs_10! (<= (- top.impl.usr.nB0 top.impl.usr.nB1) 40))) - (= top.impl.usr.nB0! top.res.abs_1!) - (= top.impl.usr.nB1! top.res.abs_2!) - (__node_trans_main_0 - top.usr.B0! - top.usr.B1! - top.usr.S! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_trans_Sofar_0 - top.impl.usr.ast! - top.res.abs_10! - top.res.inst_0! - top.impl.usr.ast - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!)) -) - -(define-fun - prop ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.nB0 Int) - (top.impl.usr.nB1 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_controleur_0 ((controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) (= controleur.usr.avance_a_0 false) (= controleur.usr.retard_a_0 false) controleur.res.init_flag_a_0)) +(define-fun __node_trans_controleur_0 ((controleur.usr.nB_a_1 Int) (controleur.usr.nS_a_1 Int) (controleur.usr.diff_a_1 Int) (controleur.usr.avance_a_1 Bool) (controleur.usr.retard_a_1 Bool) (controleur.res.init_flag_a_1 Bool) (controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) (= controleur.usr.avance_a_1 (ite (not controleur.usr.avance_a_0) (>= controleur.usr.diff_a_1 10) (> controleur.usr.diff_a_1 0))) (= controleur.usr.retard_a_1 (ite (not controleur.usr.retard_a_0) (<= controleur.usr.diff_a_1 (- 10)) (< controleur.usr.diff_a_1 0))) (not controleur.res.init_flag_a_1))) +(define-fun __node_init_hypothese_0 ((hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_0 true) (= hypothese.impl.usr.c_a_0 0) hypothese.res.init_flag_a_0)) +(define-fun __node_trans_hypothese_0 ((hypothese.usr.B_a_1 Bool) (hypothese.usr.S_a_1 Bool) (hypothese.usr.avance_a_1 Bool) (hypothese.usr.retard_a_1 Bool) (hypothese.usr.ok_a_1 Bool) (hypothese.res.init_flag_a_1 Bool) (hypothese.impl.usr.c_a_1 Int) (hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_1 (and (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) (= hypothese.impl.usr.c_a_1 (ite (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) (ite hypothese.usr.B_a_1 (- hypothese.impl.usr.c_a_0 1) hypothese.impl.usr.c_a_0) 0)) (not hypothese.res.init_flag_a_1))) +(define-fun __node_init_main_0 ((main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_0)) (let ((X2 main.res.abs_0_a_0)) (and (= main.usr.ast_a_0 (and X2 X1)) (= main.usr.avance0_a_0 main.res.abs_3_a_0) (= main.usr.nB0_a_0 0) (= main.usr.nS_a_0 0) (= main.usr.retard0_a_0 main.res.abs_4_a_0) (= main.usr.avance1_a_0 main.res.abs_6_a_0) (= main.usr.nB1_a_0 0) (= main.usr.retard1_a_0 main.res.abs_7_a_0) (= main.usr.diff0_a_0 main.res.abs_2_a_0) (= main.usr.diff1_a_0 main.res.abs_5_a_0) (__node_init_hypothese_0 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_init_controleur_0 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_init_hypothese_0 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_init_controleur_0 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) main.res.init_flag_a_0)))) +(define-fun __node_trans_main_0 ((main.usr.B0_a_1 Bool) (main.usr.B1_a_1 Bool) (main.usr.S_a_1 Bool) (main.usr.ast_a_1 Bool) (main.usr.nB0_a_1 Int) (main.usr.nB1_a_1 Int) (main.usr.nS_a_1 Int) (main.usr.diff0_a_1 Int) (main.usr.diff1_a_1 Int) (main.usr.avance0_a_1 Bool) (main.usr.avance1_a_1 Bool) (main.usr.retard0_a_1 Bool) (main.usr.retard1_a_1 Bool) (main.res.init_flag_a_1 Bool) (main.res.abs_0_a_1 Bool) (main.res.abs_1_a_1 Bool) (main.res.abs_2_a_1 Int) (main.res.abs_3_a_1 Bool) (main.res.abs_4_a_1 Bool) (main.res.abs_5_a_1 Int) (main.res.abs_6_a_1 Bool) (main.res.abs_7_a_1 Bool) (main.res.inst_5_a_1 Bool) (main.res.inst_4_a_1 Int) (main.res.inst_3_a_1 Bool) (main.res.inst_2_a_1 Bool) (main.res.inst_1_a_1 Int) (main.res.inst_0_a_1 Bool) (main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_1)) (let ((X2 main.res.abs_0_a_1)) (and (= main.usr.ast_a_1 (and X2 X1)) (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) (= main.usr.nB0_a_1 (ite main.usr.B0_a_1 (- main.usr.nB0_a_0 1) main.usr.nB0_a_0)) (= main.usr.avance0_a_1 main.res.abs_3_a_1) (= main.usr.retard0_a_1 main.res.abs_4_a_1) (= main.usr.nB1_a_1 (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) (= main.usr.avance1_a_1 main.res.abs_6_a_1) (= main.usr.retard1_a_1 main.res.abs_7_a_1) (= main.usr.diff0_a_1 main.res.abs_2_a_1) (= main.usr.diff1_a_1 main.res.abs_5_a_1) (__node_trans_hypothese_0 main.usr.B0_a_1 main.usr.S_a_1 main.usr.avance0_a_1 main.usr.retard0_a_1 main.res.abs_0_a_1 main.res.inst_5_a_1 main.res.inst_4_a_1 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_trans_controleur_0 main.usr.nB0_a_1 main.usr.nS_a_1 main.res.abs_2_a_1 main.res.abs_3_a_1 main.res.abs_4_a_1 main.res.inst_3_a_1 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_trans_hypothese_0 main.usr.B1_a_1 main.usr.S_a_1 main.usr.avance1_a_1 main.usr.retard1_a_1 main.res.abs_1_a_1 main.res.inst_2_a_1 main.res.inst_1_a_1 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_trans_controleur_0 main.usr.nB1_a_1 main.usr.nS_a_1 main.res.abs_5_a_1 main.res.abs_6_a_1 main.res.abs_7_a_1 main.res.inst_0_a_1 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) (not main.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.nB0_a_0 Int) (top.impl.usr.nB1_a_0 Int) (top.impl.usr.ast_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.nB0_a_0 top.res.abs_1_a_0) (= top.impl.usr.nB1_a_0 top.res.abs_2_a_0) (= top.impl.usr.ast_a_0 top.res.abs_0_a_0) (__node_init_main_0 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_init_Sofar_0 top.impl.usr.ast_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)) +(define-fun __node_trans_top_0 ((top.usr.B0_a_1 Bool) (top.usr.B1_a_1 Bool) (top.usr.S_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.nB0_a_1 Int) (top.impl.usr.nB1_a_1 Int) (top.impl.usr.ast_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Int) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Int) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.nB0_a_0 Int) (top.impl.usr.nB1_a_0 Int) (top.impl.usr.ast_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.ast_a_1 top.res.abs_0_a_1) (= top.usr.OK_a_1 (=> top.res.abs_10_a_1 (<= (- top.impl.usr.nB0_a_0 top.impl.usr.nB1_a_0) 40))) (= top.impl.usr.nB0_a_1 top.res.abs_1_a_1) (= top.impl.usr.nB1_a_1 top.res.abs_2_a_1) (__node_trans_main_0 top.usr.B0_a_1 top.usr.B1_a_1 top.usr.S_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_trans_Sofar_0 top.impl.usr.ast_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.impl.usr.ast_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))) +(synth-inv str_invariant ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.nB0 Int) (top.impl.usr.nB1 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.nB0 Int) (top.impl.usr.nB1 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.nB0 top.res.abs_1) (= top.impl.usr.nB1 top.res.abs_2) (= top.impl.usr.ast top.res.abs_0) (__node_init_main_0 top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_init_Sofar_0 top.impl.usr.ast top.res.abs_10 top.res.inst_0) top.res.init_flag)) +(define-fun trans ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.nB0 Int) (top.impl.usr.nB1 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.B0! Bool) (top.usr.B1! Bool) (top.usr.S! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.nB0! Int) (top.impl.usr.nB1! Int) (top.impl.usr.ast! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Int) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Int) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.ast! top.res.abs_0!) (= top.usr.OK! (=> top.res.abs_10! (<= (- top.impl.usr.nB0 top.impl.usr.nB1) 40))) (= top.impl.usr.nB0! top.res.abs_1!) (= top.impl.usr.nB1! top.res.abs_2!) (__node_trans_main_0 top.usr.B0! top.usr.B1! top.usr.S! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_trans_Sofar_0 top.impl.usr.ast! top.res.abs_10! top.res.inst_0! top.impl.usr.ast top.res.abs_10 top.res.inst_0) (not top.res.init_flag!))) +(define-fun prop ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.nB0 Int) (top.impl.usr.nB1 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/metros_4_e2_968_e2_1166.sl b/benchmarks/LIA/Lustre/metros_4_e2_968_e2_1166.sl index 2fea37d..f1eab41 100644 --- a/benchmarks/LIA/Lustre/metros_4_e2_968_e2_1166.sl +++ b/benchmarks/LIA/Lustre/metros_4_e2_968_e2_1166.sl @@ -1,925 +1,35 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_controleur_0 ( - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) - (= controleur.usr.avance_a_0 false) - (= controleur.usr.retard_a_0 false) - controleur.res.init_flag_a_0) -) - -(define-fun - __node_trans_controleur_0 ( - (controleur.usr.nB_a_1 Int) - (controleur.usr.nS_a_1 Int) - (controleur.usr.diff_a_1 Int) - (controleur.usr.avance_a_1 Bool) - (controleur.usr.retard_a_1 Bool) - (controleur.res.init_flag_a_1 Bool) - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) - (= - controleur.usr.avance_a_1 - (ite - (not controleur.usr.avance_a_0) - (>= controleur.usr.diff_a_1 10) - (> controleur.usr.diff_a_1 0))) - (= - controleur.usr.retard_a_1 - (ite - (not controleur.usr.retard_a_0) - (<= controleur.usr.diff_a_1 (- 10)) - (< controleur.usr.diff_a_1 0))) - (not controleur.res.init_flag_a_1)) -) - -(define-fun - __node_init_hypothese_0 ( - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= hypothese.usr.ok_a_0 true) - (= hypothese.impl.usr.c_a_0 0) - hypothese.res.init_flag_a_0) -) - -(define-fun - __node_trans_hypothese_0 ( - (hypothese.usr.B_a_1 Bool) - (hypothese.usr.S_a_1 Bool) - (hypothese.usr.avance_a_1 Bool) - (hypothese.usr.retard_a_1 Bool) - (hypothese.usr.ok_a_1 Bool) - (hypothese.res.init_flag_a_1 Bool) - (hypothese.impl.usr.c_a_1 Int) - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= - hypothese.usr.ok_a_1 - (and - (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) - (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) - (= - hypothese.impl.usr.c_a_1 - (ite - (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) - (ite - hypothese.usr.B_a_1 - (+ (- hypothese.impl.usr.c_a_0 1) 1) - hypothese.impl.usr.c_a_0) - 0)) - (not hypothese.res.init_flag_a_1)) -) - -(define-fun - __node_init_main_0 ( - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_0)) - (let - ((X2 Bool main.res.abs_0_a_0)) - (and - (= main.usr.ast_a_0 (and X2 X1)) - (= main.usr.avance0_a_0 main.res.abs_3_a_0) - (= main.usr.nB0_a_0 0) - (= main.usr.nS_a_0 0) - (= main.usr.retard0_a_0 main.res.abs_4_a_0) - (= main.usr.avance1_a_0 main.res.abs_6_a_0) - (= main.usr.nB1_a_0 0) - (= main.usr.retard1_a_0 main.res.abs_7_a_0) - (= main.usr.diff0_a_0 main.res.abs_2_a_0) - (= main.usr.diff1_a_0 main.res.abs_5_a_0) - (__node_init_hypothese_0 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_init_controleur_0 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_init_hypothese_0 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_init_controleur_0 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - main.res.init_flag_a_0))) -) - -(define-fun - __node_trans_main_0 ( - (main.usr.B0_a_1 Bool) - (main.usr.B1_a_1 Bool) - (main.usr.S_a_1 Bool) - (main.usr.ast_a_1 Bool) - (main.usr.nB0_a_1 Int) - (main.usr.nB1_a_1 Int) - (main.usr.nS_a_1 Int) - (main.usr.diff0_a_1 Int) - (main.usr.diff1_a_1 Int) - (main.usr.avance0_a_1 Bool) - (main.usr.avance1_a_1 Bool) - (main.usr.retard0_a_1 Bool) - (main.usr.retard1_a_1 Bool) - (main.res.init_flag_a_1 Bool) - (main.res.abs_0_a_1 Bool) - (main.res.abs_1_a_1 Bool) - (main.res.abs_2_a_1 Int) - (main.res.abs_3_a_1 Bool) - (main.res.abs_4_a_1 Bool) - (main.res.abs_5_a_1 Int) - (main.res.abs_6_a_1 Bool) - (main.res.abs_7_a_1 Bool) - (main.res.inst_5_a_1 Bool) - (main.res.inst_4_a_1 Int) - (main.res.inst_3_a_1 Bool) - (main.res.inst_2_a_1 Bool) - (main.res.inst_1_a_1 Int) - (main.res.inst_0_a_1 Bool) - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_1)) - (let - ((X2 Bool main.res.abs_0_a_1)) - (and - (= main.usr.ast_a_1 (and X2 X1)) - (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) - (= - main.usr.nB0_a_1 - (ite main.usr.B0_a_1 (+ (- main.usr.nB0_a_0 1) 1) main.usr.nB0_a_0)) - (= main.usr.avance0_a_1 main.res.abs_3_a_1) - (= main.usr.retard0_a_1 main.res.abs_4_a_1) - (= - main.usr.nB1_a_1 - (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) - (= main.usr.avance1_a_1 main.res.abs_6_a_1) - (= main.usr.retard1_a_1 main.res.abs_7_a_1) - (= main.usr.diff0_a_1 main.res.abs_2_a_1) - (= main.usr.diff1_a_1 main.res.abs_5_a_1) - (__node_trans_hypothese_0 - main.usr.B0_a_1 - main.usr.S_a_1 - main.usr.avance0_a_1 - main.usr.retard0_a_1 - main.res.abs_0_a_1 - main.res.inst_5_a_1 - main.res.inst_4_a_1 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_trans_controleur_0 - main.usr.nB0_a_1 - main.usr.nS_a_1 - main.res.abs_2_a_1 - main.res.abs_3_a_1 - main.res.abs_4_a_1 - main.res.inst_3_a_1 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_trans_hypothese_0 - main.usr.B1_a_1 - main.usr.S_a_1 - main.usr.avance1_a_1 - main.usr.retard1_a_1 - main.res.abs_1_a_1 - main.res.inst_2_a_1 - main.res.inst_1_a_1 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_trans_controleur_0 - main.usr.nB1_a_1 - main.usr.nS_a_1 - main.res.abs_5_a_1 - main.res.abs_6_a_1 - main.res.abs_7_a_1 - main.res.inst_0_a_1 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - (not main.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.nB0_a_0 Int) - (top.impl.usr.nB1_a_0 Int) - (top.impl.usr.ast_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= top.impl.usr.nB0_a_0 top.res.abs_1_a_0) - (= top.impl.usr.nB1_a_0 top.res.abs_2_a_0) - (= top.impl.usr.ast_a_0 top.res.abs_0_a_0) - (__node_init_main_0 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_init_Sofar_0 top.impl.usr.ast_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) - top.res.init_flag_a_0) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.B0_a_1 Bool) - (top.usr.B1_a_1 Bool) - (top.usr.S_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.nB0_a_1 Int) - (top.impl.usr.nB1_a_1 Int) - (top.impl.usr.ast_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Int) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Int) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.nB0_a_0 Int) - (top.impl.usr.nB1_a_0 Int) - (top.impl.usr.ast_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.ast_a_1 top.res.abs_0_a_1) - (= - top.usr.OK_a_1 - (=> top.res.abs_10_a_1 (<= (- top.impl.usr.nB0_a_0 top.impl.usr.nB1_a_0) 30))) - (= top.impl.usr.nB0_a_1 top.res.abs_1_a_1) - (= top.impl.usr.nB1_a_1 top.res.abs_2_a_1) - (__node_trans_main_0 - top.usr.B0_a_1 - top.usr.B1_a_1 - top.usr.S_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_trans_Sofar_0 - top.impl.usr.ast_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.impl.usr.ast_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)) -) - - - -(synth-inv str_invariant( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.nB0 Int) - (top.impl.usr.nB1 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.B0 Bool) -(declare-primed-var top.usr.B1 Bool) -(declare-primed-var top.usr.S Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.nB0 Int) -(declare-primed-var top.impl.usr.nB1 Int) -(declare-primed-var top.impl.usr.ast Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Int) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Int) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.nB0 Int) - (top.impl.usr.nB1 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.nB0 top.res.abs_1) - (= top.impl.usr.nB1 top.res.abs_2) - (= top.impl.usr.ast top.res.abs_0) - (__node_init_main_0 - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_init_Sofar_0 top.impl.usr.ast top.res.abs_10 top.res.inst_0) - top.res.init_flag) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.nB0 Int) - (top.impl.usr.nB1 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.B0! Bool) - (top.usr.B1! Bool) - (top.usr.S! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.nB0! Int) - (top.impl.usr.nB1! Int) - (top.impl.usr.ast! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Int) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Int) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.impl.usr.ast! top.res.abs_0!) - (= - top.usr.OK! - (=> top.res.abs_10! (<= (- top.impl.usr.nB0 top.impl.usr.nB1) 30))) - (= top.impl.usr.nB0! top.res.abs_1!) - (= top.impl.usr.nB1! top.res.abs_2!) - (__node_trans_main_0 - top.usr.B0! - top.usr.B1! - top.usr.S! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_trans_Sofar_0 - top.impl.usr.ast! - top.res.abs_10! - top.res.inst_0! - top.impl.usr.ast - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!)) -) - -(define-fun - prop ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.nB0 Int) - (top.impl.usr.nB1 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_controleur_0 ((controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) (= controleur.usr.avance_a_0 false) (= controleur.usr.retard_a_0 false) controleur.res.init_flag_a_0)) +(define-fun __node_trans_controleur_0 ((controleur.usr.nB_a_1 Int) (controleur.usr.nS_a_1 Int) (controleur.usr.diff_a_1 Int) (controleur.usr.avance_a_1 Bool) (controleur.usr.retard_a_1 Bool) (controleur.res.init_flag_a_1 Bool) (controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) (= controleur.usr.avance_a_1 (ite (not controleur.usr.avance_a_0) (>= controleur.usr.diff_a_1 10) (> controleur.usr.diff_a_1 0))) (= controleur.usr.retard_a_1 (ite (not controleur.usr.retard_a_0) (<= controleur.usr.diff_a_1 (- 10)) (< controleur.usr.diff_a_1 0))) (not controleur.res.init_flag_a_1))) +(define-fun __node_init_hypothese_0 ((hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_0 true) (= hypothese.impl.usr.c_a_0 0) hypothese.res.init_flag_a_0)) +(define-fun __node_trans_hypothese_0 ((hypothese.usr.B_a_1 Bool) (hypothese.usr.S_a_1 Bool) (hypothese.usr.avance_a_1 Bool) (hypothese.usr.retard_a_1 Bool) (hypothese.usr.ok_a_1 Bool) (hypothese.res.init_flag_a_1 Bool) (hypothese.impl.usr.c_a_1 Int) (hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_1 (and (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) (= hypothese.impl.usr.c_a_1 (ite (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) (ite hypothese.usr.B_a_1 (+ (- hypothese.impl.usr.c_a_0 1) 1) hypothese.impl.usr.c_a_0) 0)) (not hypothese.res.init_flag_a_1))) +(define-fun __node_init_main_0 ((main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_0)) (let ((X2 main.res.abs_0_a_0)) (and (= main.usr.ast_a_0 (and X2 X1)) (= main.usr.avance0_a_0 main.res.abs_3_a_0) (= main.usr.nB0_a_0 0) (= main.usr.nS_a_0 0) (= main.usr.retard0_a_0 main.res.abs_4_a_0) (= main.usr.avance1_a_0 main.res.abs_6_a_0) (= main.usr.nB1_a_0 0) (= main.usr.retard1_a_0 main.res.abs_7_a_0) (= main.usr.diff0_a_0 main.res.abs_2_a_0) (= main.usr.diff1_a_0 main.res.abs_5_a_0) (__node_init_hypothese_0 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_init_controleur_0 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_init_hypothese_0 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_init_controleur_0 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) main.res.init_flag_a_0)))) +(define-fun __node_trans_main_0 ((main.usr.B0_a_1 Bool) (main.usr.B1_a_1 Bool) (main.usr.S_a_1 Bool) (main.usr.ast_a_1 Bool) (main.usr.nB0_a_1 Int) (main.usr.nB1_a_1 Int) (main.usr.nS_a_1 Int) (main.usr.diff0_a_1 Int) (main.usr.diff1_a_1 Int) (main.usr.avance0_a_1 Bool) (main.usr.avance1_a_1 Bool) (main.usr.retard0_a_1 Bool) (main.usr.retard1_a_1 Bool) (main.res.init_flag_a_1 Bool) (main.res.abs_0_a_1 Bool) (main.res.abs_1_a_1 Bool) (main.res.abs_2_a_1 Int) (main.res.abs_3_a_1 Bool) (main.res.abs_4_a_1 Bool) (main.res.abs_5_a_1 Int) (main.res.abs_6_a_1 Bool) (main.res.abs_7_a_1 Bool) (main.res.inst_5_a_1 Bool) (main.res.inst_4_a_1 Int) (main.res.inst_3_a_1 Bool) (main.res.inst_2_a_1 Bool) (main.res.inst_1_a_1 Int) (main.res.inst_0_a_1 Bool) (main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_1)) (let ((X2 main.res.abs_0_a_1)) (and (= main.usr.ast_a_1 (and X2 X1)) (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) (= main.usr.nB0_a_1 (ite main.usr.B0_a_1 (+ (- main.usr.nB0_a_0 1) 1) main.usr.nB0_a_0)) (= main.usr.avance0_a_1 main.res.abs_3_a_1) (= main.usr.retard0_a_1 main.res.abs_4_a_1) (= main.usr.nB1_a_1 (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) (= main.usr.avance1_a_1 main.res.abs_6_a_1) (= main.usr.retard1_a_1 main.res.abs_7_a_1) (= main.usr.diff0_a_1 main.res.abs_2_a_1) (= main.usr.diff1_a_1 main.res.abs_5_a_1) (__node_trans_hypothese_0 main.usr.B0_a_1 main.usr.S_a_1 main.usr.avance0_a_1 main.usr.retard0_a_1 main.res.abs_0_a_1 main.res.inst_5_a_1 main.res.inst_4_a_1 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_trans_controleur_0 main.usr.nB0_a_1 main.usr.nS_a_1 main.res.abs_2_a_1 main.res.abs_3_a_1 main.res.abs_4_a_1 main.res.inst_3_a_1 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_trans_hypothese_0 main.usr.B1_a_1 main.usr.S_a_1 main.usr.avance1_a_1 main.usr.retard1_a_1 main.res.abs_1_a_1 main.res.inst_2_a_1 main.res.inst_1_a_1 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_trans_controleur_0 main.usr.nB1_a_1 main.usr.nS_a_1 main.res.abs_5_a_1 main.res.abs_6_a_1 main.res.abs_7_a_1 main.res.inst_0_a_1 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) (not main.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.nB0_a_0 Int) (top.impl.usr.nB1_a_0 Int) (top.impl.usr.ast_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.nB0_a_0 top.res.abs_1_a_0) (= top.impl.usr.nB1_a_0 top.res.abs_2_a_0) (= top.impl.usr.ast_a_0 top.res.abs_0_a_0) (__node_init_main_0 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_init_Sofar_0 top.impl.usr.ast_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)) +(define-fun __node_trans_top_0 ((top.usr.B0_a_1 Bool) (top.usr.B1_a_1 Bool) (top.usr.S_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.nB0_a_1 Int) (top.impl.usr.nB1_a_1 Int) (top.impl.usr.ast_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Int) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Int) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.nB0_a_0 Int) (top.impl.usr.nB1_a_0 Int) (top.impl.usr.ast_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.ast_a_1 top.res.abs_0_a_1) (= top.usr.OK_a_1 (=> top.res.abs_10_a_1 (<= (- top.impl.usr.nB0_a_0 top.impl.usr.nB1_a_0) 30))) (= top.impl.usr.nB0_a_1 top.res.abs_1_a_1) (= top.impl.usr.nB1_a_1 top.res.abs_2_a_1) (__node_trans_main_0 top.usr.B0_a_1 top.usr.B1_a_1 top.usr.S_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_trans_Sofar_0 top.impl.usr.ast_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.impl.usr.ast_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))) +(synth-inv str_invariant ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.nB0 Int) (top.impl.usr.nB1 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.nB0 Int) (top.impl.usr.nB1 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.nB0 top.res.abs_1) (= top.impl.usr.nB1 top.res.abs_2) (= top.impl.usr.ast top.res.abs_0) (__node_init_main_0 top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_init_Sofar_0 top.impl.usr.ast top.res.abs_10 top.res.inst_0) top.res.init_flag)) +(define-fun trans ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.nB0 Int) (top.impl.usr.nB1 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.B0! Bool) (top.usr.B1! Bool) (top.usr.S! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.nB0! Int) (top.impl.usr.nB1! Int) (top.impl.usr.ast! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Int) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Int) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.ast! top.res.abs_0!) (= top.usr.OK! (=> top.res.abs_10! (<= (- top.impl.usr.nB0 top.impl.usr.nB1) 30))) (= top.impl.usr.nB0! top.res.abs_1!) (= top.impl.usr.nB1! top.res.abs_2!) (__node_trans_main_0 top.usr.B0! top.usr.B1! top.usr.S! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_trans_Sofar_0 top.impl.usr.ast! top.res.abs_10! top.res.inst_0! top.impl.usr.ast top.res.abs_10 top.res.inst_0) (not top.res.init_flag!))) +(define-fun prop ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.nB0 Int) (top.impl.usr.nB1 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/metros_4_e2_968_e3_931.sl b/benchmarks/LIA/Lustre/metros_4_e2_968_e3_931.sl index 1c21917..b7eb899 100644 --- a/benchmarks/LIA/Lustre/metros_4_e2_968_e3_931.sl +++ b/benchmarks/LIA/Lustre/metros_4_e2_968_e3_931.sl @@ -1,925 +1,35 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_controleur_0 ( - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) - (= controleur.usr.avance_a_0 false) - (= controleur.usr.retard_a_0 false) - controleur.res.init_flag_a_0) -) - -(define-fun - __node_trans_controleur_0 ( - (controleur.usr.nB_a_1 Int) - (controleur.usr.nS_a_1 Int) - (controleur.usr.diff_a_1 Int) - (controleur.usr.avance_a_1 Bool) - (controleur.usr.retard_a_1 Bool) - (controleur.res.init_flag_a_1 Bool) - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) - (= - controleur.usr.avance_a_1 - (ite - (not controleur.usr.avance_a_0) - (>= controleur.usr.diff_a_1 10) - (> controleur.usr.diff_a_1 0))) - (= - controleur.usr.retard_a_1 - (ite - (not controleur.usr.retard_a_0) - (<= controleur.usr.diff_a_1 (- 10)) - (< controleur.usr.diff_a_1 0))) - (not controleur.res.init_flag_a_1)) -) - -(define-fun - __node_init_hypothese_0 ( - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= hypothese.usr.ok_a_0 true) - (= hypothese.impl.usr.c_a_0 0) - hypothese.res.init_flag_a_0) -) - -(define-fun - __node_trans_hypothese_0 ( - (hypothese.usr.B_a_1 Bool) - (hypothese.usr.S_a_1 Bool) - (hypothese.usr.avance_a_1 Bool) - (hypothese.usr.retard_a_1 Bool) - (hypothese.usr.ok_a_1 Bool) - (hypothese.res.init_flag_a_1 Bool) - (hypothese.impl.usr.c_a_1 Int) - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= - hypothese.usr.ok_a_1 - (and - (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) - (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) - (= - hypothese.impl.usr.c_a_1 - (ite - (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) - (ite - hypothese.usr.B_a_1 - (+ (- hypothese.impl.usr.c_a_0 1) 1) - hypothese.impl.usr.c_a_0) - 0)) - (not hypothese.res.init_flag_a_1)) -) - -(define-fun - __node_init_main_0 ( - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_0)) - (let - ((X2 Bool main.res.abs_0_a_0)) - (and - (= main.usr.ast_a_0 (and X2 X1)) - (= main.usr.avance0_a_0 main.res.abs_3_a_0) - (= main.usr.nB0_a_0 0) - (= main.usr.nS_a_0 0) - (= main.usr.retard0_a_0 main.res.abs_4_a_0) - (= main.usr.avance1_a_0 main.res.abs_6_a_0) - (= main.usr.nB1_a_0 0) - (= main.usr.retard1_a_0 main.res.abs_7_a_0) - (= main.usr.diff0_a_0 main.res.abs_2_a_0) - (= main.usr.diff1_a_0 main.res.abs_5_a_0) - (__node_init_hypothese_0 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_init_controleur_0 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_init_hypothese_0 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_init_controleur_0 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - main.res.init_flag_a_0))) -) - -(define-fun - __node_trans_main_0 ( - (main.usr.B0_a_1 Bool) - (main.usr.B1_a_1 Bool) - (main.usr.S_a_1 Bool) - (main.usr.ast_a_1 Bool) - (main.usr.nB0_a_1 Int) - (main.usr.nB1_a_1 Int) - (main.usr.nS_a_1 Int) - (main.usr.diff0_a_1 Int) - (main.usr.diff1_a_1 Int) - (main.usr.avance0_a_1 Bool) - (main.usr.avance1_a_1 Bool) - (main.usr.retard0_a_1 Bool) - (main.usr.retard1_a_1 Bool) - (main.res.init_flag_a_1 Bool) - (main.res.abs_0_a_1 Bool) - (main.res.abs_1_a_1 Bool) - (main.res.abs_2_a_1 Int) - (main.res.abs_3_a_1 Bool) - (main.res.abs_4_a_1 Bool) - (main.res.abs_5_a_1 Int) - (main.res.abs_6_a_1 Bool) - (main.res.abs_7_a_1 Bool) - (main.res.inst_5_a_1 Bool) - (main.res.inst_4_a_1 Int) - (main.res.inst_3_a_1 Bool) - (main.res.inst_2_a_1 Bool) - (main.res.inst_1_a_1 Int) - (main.res.inst_0_a_1 Bool) - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_1)) - (let - ((X2 Bool main.res.abs_0_a_1)) - (and - (= main.usr.ast_a_1 (and X2 X1)) - (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) - (= - main.usr.nB0_a_1 - (ite main.usr.B0_a_1 (- main.usr.nB0_a_0 1) main.usr.nB0_a_0)) - (= main.usr.avance0_a_1 main.res.abs_3_a_1) - (= main.usr.retard0_a_1 main.res.abs_4_a_1) - (= - main.usr.nB1_a_1 - (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) - (= main.usr.avance1_a_1 main.res.abs_6_a_1) - (= main.usr.retard1_a_1 main.res.abs_7_a_1) - (= main.usr.diff0_a_1 main.res.abs_2_a_1) - (= main.usr.diff1_a_1 main.res.abs_5_a_1) - (__node_trans_hypothese_0 - main.usr.B0_a_1 - main.usr.S_a_1 - main.usr.avance0_a_1 - main.usr.retard0_a_1 - main.res.abs_0_a_1 - main.res.inst_5_a_1 - main.res.inst_4_a_1 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_trans_controleur_0 - main.usr.nB0_a_1 - main.usr.nS_a_1 - main.res.abs_2_a_1 - main.res.abs_3_a_1 - main.res.abs_4_a_1 - main.res.inst_3_a_1 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_trans_hypothese_0 - main.usr.B1_a_1 - main.usr.S_a_1 - main.usr.avance1_a_1 - main.usr.retard1_a_1 - main.res.abs_1_a_1 - main.res.inst_2_a_1 - main.res.inst_1_a_1 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_trans_controleur_0 - main.usr.nB1_a_1 - main.usr.nS_a_1 - main.res.abs_5_a_1 - main.res.abs_6_a_1 - main.res.abs_7_a_1 - main.res.inst_0_a_1 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - (not main.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.nB0_a_0 Int) - (top.impl.usr.nB1_a_0 Int) - (top.impl.usr.ast_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= top.impl.usr.nB0_a_0 top.res.abs_1_a_0) - (= top.impl.usr.nB1_a_0 top.res.abs_2_a_0) - (= top.impl.usr.ast_a_0 top.res.abs_0_a_0) - (__node_init_main_0 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_init_Sofar_0 top.impl.usr.ast_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) - top.res.init_flag_a_0) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.B0_a_1 Bool) - (top.usr.B1_a_1 Bool) - (top.usr.S_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.nB0_a_1 Int) - (top.impl.usr.nB1_a_1 Int) - (top.impl.usr.ast_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Int) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Int) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.nB0_a_0 Int) - (top.impl.usr.nB1_a_0 Int) - (top.impl.usr.ast_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.ast_a_1 top.res.abs_0_a_1) - (= - top.usr.OK_a_1 - (=> top.res.abs_10_a_1 (<= (- top.impl.usr.nB0_a_0 top.impl.usr.nB1_a_0) 30))) - (= top.impl.usr.nB0_a_1 top.res.abs_1_a_1) - (= top.impl.usr.nB1_a_1 top.res.abs_2_a_1) - (__node_trans_main_0 - top.usr.B0_a_1 - top.usr.B1_a_1 - top.usr.S_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_trans_Sofar_0 - top.impl.usr.ast_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.impl.usr.ast_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)) -) - - - -(synth-inv str_invariant( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.nB0 Int) - (top.impl.usr.nB1 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.B0 Bool) -(declare-primed-var top.usr.B1 Bool) -(declare-primed-var top.usr.S Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.nB0 Int) -(declare-primed-var top.impl.usr.nB1 Int) -(declare-primed-var top.impl.usr.ast Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Int) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Int) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.nB0 Int) - (top.impl.usr.nB1 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.nB0 top.res.abs_1) - (= top.impl.usr.nB1 top.res.abs_2) - (= top.impl.usr.ast top.res.abs_0) - (__node_init_main_0 - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_init_Sofar_0 top.impl.usr.ast top.res.abs_10 top.res.inst_0) - top.res.init_flag) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.nB0 Int) - (top.impl.usr.nB1 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.B0! Bool) - (top.usr.B1! Bool) - (top.usr.S! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.nB0! Int) - (top.impl.usr.nB1! Int) - (top.impl.usr.ast! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Int) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Int) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.impl.usr.ast! top.res.abs_0!) - (= - top.usr.OK! - (=> top.res.abs_10! (<= (- top.impl.usr.nB0 top.impl.usr.nB1) 30))) - (= top.impl.usr.nB0! top.res.abs_1!) - (= top.impl.usr.nB1! top.res.abs_2!) - (__node_trans_main_0 - top.usr.B0! - top.usr.B1! - top.usr.S! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_trans_Sofar_0 - top.impl.usr.ast! - top.res.abs_10! - top.res.inst_0! - top.impl.usr.ast - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!)) -) - -(define-fun - prop ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.nB0 Int) - (top.impl.usr.nB1 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_controleur_0 ((controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) (= controleur.usr.avance_a_0 false) (= controleur.usr.retard_a_0 false) controleur.res.init_flag_a_0)) +(define-fun __node_trans_controleur_0 ((controleur.usr.nB_a_1 Int) (controleur.usr.nS_a_1 Int) (controleur.usr.diff_a_1 Int) (controleur.usr.avance_a_1 Bool) (controleur.usr.retard_a_1 Bool) (controleur.res.init_flag_a_1 Bool) (controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) (= controleur.usr.avance_a_1 (ite (not controleur.usr.avance_a_0) (>= controleur.usr.diff_a_1 10) (> controleur.usr.diff_a_1 0))) (= controleur.usr.retard_a_1 (ite (not controleur.usr.retard_a_0) (<= controleur.usr.diff_a_1 (- 10)) (< controleur.usr.diff_a_1 0))) (not controleur.res.init_flag_a_1))) +(define-fun __node_init_hypothese_0 ((hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_0 true) (= hypothese.impl.usr.c_a_0 0) hypothese.res.init_flag_a_0)) +(define-fun __node_trans_hypothese_0 ((hypothese.usr.B_a_1 Bool) (hypothese.usr.S_a_1 Bool) (hypothese.usr.avance_a_1 Bool) (hypothese.usr.retard_a_1 Bool) (hypothese.usr.ok_a_1 Bool) (hypothese.res.init_flag_a_1 Bool) (hypothese.impl.usr.c_a_1 Int) (hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_1 (and (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) (= hypothese.impl.usr.c_a_1 (ite (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) (ite hypothese.usr.B_a_1 (+ (- hypothese.impl.usr.c_a_0 1) 1) hypothese.impl.usr.c_a_0) 0)) (not hypothese.res.init_flag_a_1))) +(define-fun __node_init_main_0 ((main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_0)) (let ((X2 main.res.abs_0_a_0)) (and (= main.usr.ast_a_0 (and X2 X1)) (= main.usr.avance0_a_0 main.res.abs_3_a_0) (= main.usr.nB0_a_0 0) (= main.usr.nS_a_0 0) (= main.usr.retard0_a_0 main.res.abs_4_a_0) (= main.usr.avance1_a_0 main.res.abs_6_a_0) (= main.usr.nB1_a_0 0) (= main.usr.retard1_a_0 main.res.abs_7_a_0) (= main.usr.diff0_a_0 main.res.abs_2_a_0) (= main.usr.diff1_a_0 main.res.abs_5_a_0) (__node_init_hypothese_0 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_init_controleur_0 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_init_hypothese_0 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_init_controleur_0 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) main.res.init_flag_a_0)))) +(define-fun __node_trans_main_0 ((main.usr.B0_a_1 Bool) (main.usr.B1_a_1 Bool) (main.usr.S_a_1 Bool) (main.usr.ast_a_1 Bool) (main.usr.nB0_a_1 Int) (main.usr.nB1_a_1 Int) (main.usr.nS_a_1 Int) (main.usr.diff0_a_1 Int) (main.usr.diff1_a_1 Int) (main.usr.avance0_a_1 Bool) (main.usr.avance1_a_1 Bool) (main.usr.retard0_a_1 Bool) (main.usr.retard1_a_1 Bool) (main.res.init_flag_a_1 Bool) (main.res.abs_0_a_1 Bool) (main.res.abs_1_a_1 Bool) (main.res.abs_2_a_1 Int) (main.res.abs_3_a_1 Bool) (main.res.abs_4_a_1 Bool) (main.res.abs_5_a_1 Int) (main.res.abs_6_a_1 Bool) (main.res.abs_7_a_1 Bool) (main.res.inst_5_a_1 Bool) (main.res.inst_4_a_1 Int) (main.res.inst_3_a_1 Bool) (main.res.inst_2_a_1 Bool) (main.res.inst_1_a_1 Int) (main.res.inst_0_a_1 Bool) (main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_1)) (let ((X2 main.res.abs_0_a_1)) (and (= main.usr.ast_a_1 (and X2 X1)) (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) (= main.usr.nB0_a_1 (ite main.usr.B0_a_1 (- main.usr.nB0_a_0 1) main.usr.nB0_a_0)) (= main.usr.avance0_a_1 main.res.abs_3_a_1) (= main.usr.retard0_a_1 main.res.abs_4_a_1) (= main.usr.nB1_a_1 (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) (= main.usr.avance1_a_1 main.res.abs_6_a_1) (= main.usr.retard1_a_1 main.res.abs_7_a_1) (= main.usr.diff0_a_1 main.res.abs_2_a_1) (= main.usr.diff1_a_1 main.res.abs_5_a_1) (__node_trans_hypothese_0 main.usr.B0_a_1 main.usr.S_a_1 main.usr.avance0_a_1 main.usr.retard0_a_1 main.res.abs_0_a_1 main.res.inst_5_a_1 main.res.inst_4_a_1 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_trans_controleur_0 main.usr.nB0_a_1 main.usr.nS_a_1 main.res.abs_2_a_1 main.res.abs_3_a_1 main.res.abs_4_a_1 main.res.inst_3_a_1 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_trans_hypothese_0 main.usr.B1_a_1 main.usr.S_a_1 main.usr.avance1_a_1 main.usr.retard1_a_1 main.res.abs_1_a_1 main.res.inst_2_a_1 main.res.inst_1_a_1 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_trans_controleur_0 main.usr.nB1_a_1 main.usr.nS_a_1 main.res.abs_5_a_1 main.res.abs_6_a_1 main.res.abs_7_a_1 main.res.inst_0_a_1 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) (not main.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.nB0_a_0 Int) (top.impl.usr.nB1_a_0 Int) (top.impl.usr.ast_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.nB0_a_0 top.res.abs_1_a_0) (= top.impl.usr.nB1_a_0 top.res.abs_2_a_0) (= top.impl.usr.ast_a_0 top.res.abs_0_a_0) (__node_init_main_0 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_init_Sofar_0 top.impl.usr.ast_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)) +(define-fun __node_trans_top_0 ((top.usr.B0_a_1 Bool) (top.usr.B1_a_1 Bool) (top.usr.S_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.nB0_a_1 Int) (top.impl.usr.nB1_a_1 Int) (top.impl.usr.ast_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Int) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Int) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.nB0_a_0 Int) (top.impl.usr.nB1_a_0 Int) (top.impl.usr.ast_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.ast_a_1 top.res.abs_0_a_1) (= top.usr.OK_a_1 (=> top.res.abs_10_a_1 (<= (- top.impl.usr.nB0_a_0 top.impl.usr.nB1_a_0) 30))) (= top.impl.usr.nB0_a_1 top.res.abs_1_a_1) (= top.impl.usr.nB1_a_1 top.res.abs_2_a_1) (__node_trans_main_0 top.usr.B0_a_1 top.usr.B1_a_1 top.usr.S_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_trans_Sofar_0 top.impl.usr.ast_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.impl.usr.ast_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))) +(synth-inv str_invariant ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.nB0 Int) (top.impl.usr.nB1 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.nB0 Int) (top.impl.usr.nB1 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.nB0 top.res.abs_1) (= top.impl.usr.nB1 top.res.abs_2) (= top.impl.usr.ast top.res.abs_0) (__node_init_main_0 top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_init_Sofar_0 top.impl.usr.ast top.res.abs_10 top.res.inst_0) top.res.init_flag)) +(define-fun trans ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.nB0 Int) (top.impl.usr.nB1 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.B0! Bool) (top.usr.B1! Bool) (top.usr.S! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.nB0! Int) (top.impl.usr.nB1! Int) (top.impl.usr.ast! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Int) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Int) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.ast! top.res.abs_0!) (= top.usr.OK! (=> top.res.abs_10! (<= (- top.impl.usr.nB0 top.impl.usr.nB1) 30))) (= top.impl.usr.nB0! top.res.abs_1!) (= top.impl.usr.nB1! top.res.abs_2!) (__node_trans_main_0 top.usr.B0! top.usr.B1! top.usr.S! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_trans_Sofar_0 top.impl.usr.ast! top.res.abs_10! top.res.inst_0! top.impl.usr.ast top.res.abs_10 top.res.inst_0) (not top.res.init_flag!))) +(define-fun prop ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.nB0 Int) (top.impl.usr.nB1 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/metros_4_e3_1091_e2_1317.sl b/benchmarks/LIA/Lustre/metros_4_e3_1091_e2_1317.sl index 5a4b2e4..1582a7a 100644 --- a/benchmarks/LIA/Lustre/metros_4_e3_1091_e2_1317.sl +++ b/benchmarks/LIA/Lustre/metros_4_e3_1091_e2_1317.sl @@ -1,925 +1,35 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_controleur_0 ( - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) - (= controleur.usr.avance_a_0 false) - (= controleur.usr.retard_a_0 false) - controleur.res.init_flag_a_0) -) - -(define-fun - __node_trans_controleur_0 ( - (controleur.usr.nB_a_1 Int) - (controleur.usr.nS_a_1 Int) - (controleur.usr.diff_a_1 Int) - (controleur.usr.avance_a_1 Bool) - (controleur.usr.retard_a_1 Bool) - (controleur.res.init_flag_a_1 Bool) - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) - (= - controleur.usr.avance_a_1 - (ite - (not controleur.usr.avance_a_0) - (>= controleur.usr.diff_a_1 10) - (> controleur.usr.diff_a_1 0))) - (= - controleur.usr.retard_a_1 - (ite - (not controleur.usr.retard_a_0) - (<= controleur.usr.diff_a_1 (- 10)) - (< controleur.usr.diff_a_1 0))) - (not controleur.res.init_flag_a_1)) -) - -(define-fun - __node_init_hypothese_0 ( - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= hypothese.usr.ok_a_0 true) - (= hypothese.impl.usr.c_a_0 0) - hypothese.res.init_flag_a_0) -) - -(define-fun - __node_trans_hypothese_0 ( - (hypothese.usr.B_a_1 Bool) - (hypothese.usr.S_a_1 Bool) - (hypothese.usr.avance_a_1 Bool) - (hypothese.usr.retard_a_1 Bool) - (hypothese.usr.ok_a_1 Bool) - (hypothese.res.init_flag_a_1 Bool) - (hypothese.impl.usr.c_a_1 Int) - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= - hypothese.usr.ok_a_1 - (and - (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) - (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) - (= - hypothese.impl.usr.c_a_1 - (ite - (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) - (ite - hypothese.usr.B_a_1 - (- hypothese.impl.usr.c_a_0 1) - hypothese.impl.usr.c_a_0) - 0)) - (not hypothese.res.init_flag_a_1)) -) - -(define-fun - __node_init_main_0 ( - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_0)) - (let - ((X2 Bool main.res.abs_0_a_0)) - (and - (= main.usr.ast_a_0 (and X2 X1)) - (= main.usr.avance0_a_0 main.res.abs_3_a_0) - (= main.usr.nB0_a_0 0) - (= main.usr.nS_a_0 0) - (= main.usr.retard0_a_0 main.res.abs_4_a_0) - (= main.usr.avance1_a_0 main.res.abs_6_a_0) - (= main.usr.nB1_a_0 0) - (= main.usr.retard1_a_0 main.res.abs_7_a_0) - (= main.usr.diff0_a_0 main.res.abs_2_a_0) - (= main.usr.diff1_a_0 main.res.abs_5_a_0) - (__node_init_hypothese_0 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_init_controleur_0 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_init_hypothese_0 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_init_controleur_0 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - main.res.init_flag_a_0))) -) - -(define-fun - __node_trans_main_0 ( - (main.usr.B0_a_1 Bool) - (main.usr.B1_a_1 Bool) - (main.usr.S_a_1 Bool) - (main.usr.ast_a_1 Bool) - (main.usr.nB0_a_1 Int) - (main.usr.nB1_a_1 Int) - (main.usr.nS_a_1 Int) - (main.usr.diff0_a_1 Int) - (main.usr.diff1_a_1 Int) - (main.usr.avance0_a_1 Bool) - (main.usr.avance1_a_1 Bool) - (main.usr.retard0_a_1 Bool) - (main.usr.retard1_a_1 Bool) - (main.res.init_flag_a_1 Bool) - (main.res.abs_0_a_1 Bool) - (main.res.abs_1_a_1 Bool) - (main.res.abs_2_a_1 Int) - (main.res.abs_3_a_1 Bool) - (main.res.abs_4_a_1 Bool) - (main.res.abs_5_a_1 Int) - (main.res.abs_6_a_1 Bool) - (main.res.abs_7_a_1 Bool) - (main.res.inst_5_a_1 Bool) - (main.res.inst_4_a_1 Int) - (main.res.inst_3_a_1 Bool) - (main.res.inst_2_a_1 Bool) - (main.res.inst_1_a_1 Int) - (main.res.inst_0_a_1 Bool) - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_1)) - (let - ((X2 Bool main.res.abs_0_a_1)) - (and - (= main.usr.ast_a_1 (and X2 X1)) - (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) - (= - main.usr.nB0_a_1 - (ite main.usr.B0_a_1 (+ (- main.usr.nB0_a_0 1) 1) main.usr.nB0_a_0)) - (= main.usr.avance0_a_1 main.res.abs_3_a_1) - (= main.usr.retard0_a_1 main.res.abs_4_a_1) - (= - main.usr.nB1_a_1 - (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) - (= main.usr.avance1_a_1 main.res.abs_6_a_1) - (= main.usr.retard1_a_1 main.res.abs_7_a_1) - (= main.usr.diff0_a_1 main.res.abs_2_a_1) - (= main.usr.diff1_a_1 main.res.abs_5_a_1) - (__node_trans_hypothese_0 - main.usr.B0_a_1 - main.usr.S_a_1 - main.usr.avance0_a_1 - main.usr.retard0_a_1 - main.res.abs_0_a_1 - main.res.inst_5_a_1 - main.res.inst_4_a_1 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_trans_controleur_0 - main.usr.nB0_a_1 - main.usr.nS_a_1 - main.res.abs_2_a_1 - main.res.abs_3_a_1 - main.res.abs_4_a_1 - main.res.inst_3_a_1 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_trans_hypothese_0 - main.usr.B1_a_1 - main.usr.S_a_1 - main.usr.avance1_a_1 - main.usr.retard1_a_1 - main.res.abs_1_a_1 - main.res.inst_2_a_1 - main.res.inst_1_a_1 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_trans_controleur_0 - main.usr.nB1_a_1 - main.usr.nS_a_1 - main.res.abs_5_a_1 - main.res.abs_6_a_1 - main.res.abs_7_a_1 - main.res.inst_0_a_1 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - (not main.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.nB0_a_0 Int) - (top.impl.usr.nB1_a_0 Int) - (top.impl.usr.ast_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= top.impl.usr.nB0_a_0 top.res.abs_1_a_0) - (= top.impl.usr.nB1_a_0 top.res.abs_2_a_0) - (= top.impl.usr.ast_a_0 top.res.abs_0_a_0) - (__node_init_main_0 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_init_Sofar_0 top.impl.usr.ast_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) - top.res.init_flag_a_0) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.B0_a_1 Bool) - (top.usr.B1_a_1 Bool) - (top.usr.S_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.nB0_a_1 Int) - (top.impl.usr.nB1_a_1 Int) - (top.impl.usr.ast_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Int) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Int) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.nB0_a_0 Int) - (top.impl.usr.nB1_a_0 Int) - (top.impl.usr.ast_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.ast_a_1 top.res.abs_0_a_1) - (= - top.usr.OK_a_1 - (=> top.res.abs_10_a_1 (<= (- top.impl.usr.nB0_a_0 top.impl.usr.nB1_a_0) 30))) - (= top.impl.usr.nB0_a_1 top.res.abs_1_a_1) - (= top.impl.usr.nB1_a_1 top.res.abs_2_a_1) - (__node_trans_main_0 - top.usr.B0_a_1 - top.usr.B1_a_1 - top.usr.S_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_trans_Sofar_0 - top.impl.usr.ast_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.impl.usr.ast_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)) -) - - - -(synth-inv str_invariant( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.nB0 Int) - (top.impl.usr.nB1 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.B0 Bool) -(declare-primed-var top.usr.B1 Bool) -(declare-primed-var top.usr.S Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.nB0 Int) -(declare-primed-var top.impl.usr.nB1 Int) -(declare-primed-var top.impl.usr.ast Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Int) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Int) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.nB0 Int) - (top.impl.usr.nB1 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.nB0 top.res.abs_1) - (= top.impl.usr.nB1 top.res.abs_2) - (= top.impl.usr.ast top.res.abs_0) - (__node_init_main_0 - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_init_Sofar_0 top.impl.usr.ast top.res.abs_10 top.res.inst_0) - top.res.init_flag) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.nB0 Int) - (top.impl.usr.nB1 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.B0! Bool) - (top.usr.B1! Bool) - (top.usr.S! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.nB0! Int) - (top.impl.usr.nB1! Int) - (top.impl.usr.ast! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Int) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Int) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.impl.usr.ast! top.res.abs_0!) - (= - top.usr.OK! - (=> top.res.abs_10! (<= (- top.impl.usr.nB0 top.impl.usr.nB1) 30))) - (= top.impl.usr.nB0! top.res.abs_1!) - (= top.impl.usr.nB1! top.res.abs_2!) - (__node_trans_main_0 - top.usr.B0! - top.usr.B1! - top.usr.S! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_trans_Sofar_0 - top.impl.usr.ast! - top.res.abs_10! - top.res.inst_0! - top.impl.usr.ast - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!)) -) - -(define-fun - prop ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.nB0 Int) - (top.impl.usr.nB1 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_controleur_0 ((controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) (= controleur.usr.avance_a_0 false) (= controleur.usr.retard_a_0 false) controleur.res.init_flag_a_0)) +(define-fun __node_trans_controleur_0 ((controleur.usr.nB_a_1 Int) (controleur.usr.nS_a_1 Int) (controleur.usr.diff_a_1 Int) (controleur.usr.avance_a_1 Bool) (controleur.usr.retard_a_1 Bool) (controleur.res.init_flag_a_1 Bool) (controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) (= controleur.usr.avance_a_1 (ite (not controleur.usr.avance_a_0) (>= controleur.usr.diff_a_1 10) (> controleur.usr.diff_a_1 0))) (= controleur.usr.retard_a_1 (ite (not controleur.usr.retard_a_0) (<= controleur.usr.diff_a_1 (- 10)) (< controleur.usr.diff_a_1 0))) (not controleur.res.init_flag_a_1))) +(define-fun __node_init_hypothese_0 ((hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_0 true) (= hypothese.impl.usr.c_a_0 0) hypothese.res.init_flag_a_0)) +(define-fun __node_trans_hypothese_0 ((hypothese.usr.B_a_1 Bool) (hypothese.usr.S_a_1 Bool) (hypothese.usr.avance_a_1 Bool) (hypothese.usr.retard_a_1 Bool) (hypothese.usr.ok_a_1 Bool) (hypothese.res.init_flag_a_1 Bool) (hypothese.impl.usr.c_a_1 Int) (hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_1 (and (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) (= hypothese.impl.usr.c_a_1 (ite (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) (ite hypothese.usr.B_a_1 (- hypothese.impl.usr.c_a_0 1) hypothese.impl.usr.c_a_0) 0)) (not hypothese.res.init_flag_a_1))) +(define-fun __node_init_main_0 ((main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_0)) (let ((X2 main.res.abs_0_a_0)) (and (= main.usr.ast_a_0 (and X2 X1)) (= main.usr.avance0_a_0 main.res.abs_3_a_0) (= main.usr.nB0_a_0 0) (= main.usr.nS_a_0 0) (= main.usr.retard0_a_0 main.res.abs_4_a_0) (= main.usr.avance1_a_0 main.res.abs_6_a_0) (= main.usr.nB1_a_0 0) (= main.usr.retard1_a_0 main.res.abs_7_a_0) (= main.usr.diff0_a_0 main.res.abs_2_a_0) (= main.usr.diff1_a_0 main.res.abs_5_a_0) (__node_init_hypothese_0 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_init_controleur_0 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_init_hypothese_0 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_init_controleur_0 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) main.res.init_flag_a_0)))) +(define-fun __node_trans_main_0 ((main.usr.B0_a_1 Bool) (main.usr.B1_a_1 Bool) (main.usr.S_a_1 Bool) (main.usr.ast_a_1 Bool) (main.usr.nB0_a_1 Int) (main.usr.nB1_a_1 Int) (main.usr.nS_a_1 Int) (main.usr.diff0_a_1 Int) (main.usr.diff1_a_1 Int) (main.usr.avance0_a_1 Bool) (main.usr.avance1_a_1 Bool) (main.usr.retard0_a_1 Bool) (main.usr.retard1_a_1 Bool) (main.res.init_flag_a_1 Bool) (main.res.abs_0_a_1 Bool) (main.res.abs_1_a_1 Bool) (main.res.abs_2_a_1 Int) (main.res.abs_3_a_1 Bool) (main.res.abs_4_a_1 Bool) (main.res.abs_5_a_1 Int) (main.res.abs_6_a_1 Bool) (main.res.abs_7_a_1 Bool) (main.res.inst_5_a_1 Bool) (main.res.inst_4_a_1 Int) (main.res.inst_3_a_1 Bool) (main.res.inst_2_a_1 Bool) (main.res.inst_1_a_1 Int) (main.res.inst_0_a_1 Bool) (main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_1)) (let ((X2 main.res.abs_0_a_1)) (and (= main.usr.ast_a_1 (and X2 X1)) (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) (= main.usr.nB0_a_1 (ite main.usr.B0_a_1 (+ (- main.usr.nB0_a_0 1) 1) main.usr.nB0_a_0)) (= main.usr.avance0_a_1 main.res.abs_3_a_1) (= main.usr.retard0_a_1 main.res.abs_4_a_1) (= main.usr.nB1_a_1 (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) (= main.usr.avance1_a_1 main.res.abs_6_a_1) (= main.usr.retard1_a_1 main.res.abs_7_a_1) (= main.usr.diff0_a_1 main.res.abs_2_a_1) (= main.usr.diff1_a_1 main.res.abs_5_a_1) (__node_trans_hypothese_0 main.usr.B0_a_1 main.usr.S_a_1 main.usr.avance0_a_1 main.usr.retard0_a_1 main.res.abs_0_a_1 main.res.inst_5_a_1 main.res.inst_4_a_1 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_trans_controleur_0 main.usr.nB0_a_1 main.usr.nS_a_1 main.res.abs_2_a_1 main.res.abs_3_a_1 main.res.abs_4_a_1 main.res.inst_3_a_1 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_trans_hypothese_0 main.usr.B1_a_1 main.usr.S_a_1 main.usr.avance1_a_1 main.usr.retard1_a_1 main.res.abs_1_a_1 main.res.inst_2_a_1 main.res.inst_1_a_1 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_trans_controleur_0 main.usr.nB1_a_1 main.usr.nS_a_1 main.res.abs_5_a_1 main.res.abs_6_a_1 main.res.abs_7_a_1 main.res.inst_0_a_1 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) (not main.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.nB0_a_0 Int) (top.impl.usr.nB1_a_0 Int) (top.impl.usr.ast_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.nB0_a_0 top.res.abs_1_a_0) (= top.impl.usr.nB1_a_0 top.res.abs_2_a_0) (= top.impl.usr.ast_a_0 top.res.abs_0_a_0) (__node_init_main_0 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_init_Sofar_0 top.impl.usr.ast_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)) +(define-fun __node_trans_top_0 ((top.usr.B0_a_1 Bool) (top.usr.B1_a_1 Bool) (top.usr.S_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.nB0_a_1 Int) (top.impl.usr.nB1_a_1 Int) (top.impl.usr.ast_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Int) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Int) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.nB0_a_0 Int) (top.impl.usr.nB1_a_0 Int) (top.impl.usr.ast_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.ast_a_1 top.res.abs_0_a_1) (= top.usr.OK_a_1 (=> top.res.abs_10_a_1 (<= (- top.impl.usr.nB0_a_0 top.impl.usr.nB1_a_0) 30))) (= top.impl.usr.nB0_a_1 top.res.abs_1_a_1) (= top.impl.usr.nB1_a_1 top.res.abs_2_a_1) (__node_trans_main_0 top.usr.B0_a_1 top.usr.B1_a_1 top.usr.S_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_trans_Sofar_0 top.impl.usr.ast_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.impl.usr.ast_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))) +(synth-inv str_invariant ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.nB0 Int) (top.impl.usr.nB1 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.nB0 Int) (top.impl.usr.nB1 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.nB0 top.res.abs_1) (= top.impl.usr.nB1 top.res.abs_2) (= top.impl.usr.ast top.res.abs_0) (__node_init_main_0 top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_init_Sofar_0 top.impl.usr.ast top.res.abs_10 top.res.inst_0) top.res.init_flag)) +(define-fun trans ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.nB0 Int) (top.impl.usr.nB1 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.B0! Bool) (top.usr.B1! Bool) (top.usr.S! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.nB0! Int) (top.impl.usr.nB1! Int) (top.impl.usr.ast! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Int) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Int) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.ast! top.res.abs_0!) (= top.usr.OK! (=> top.res.abs_10! (<= (- top.impl.usr.nB0 top.impl.usr.nB1) 30))) (= top.impl.usr.nB0! top.res.abs_1!) (= top.impl.usr.nB1! top.res.abs_2!) (__node_trans_main_0 top.usr.B0! top.usr.B1! top.usr.S! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_trans_Sofar_0 top.impl.usr.ast! top.res.abs_10! top.res.inst_0! top.impl.usr.ast top.res.abs_10 top.res.inst_0) (not top.res.init_flag!))) +(define-fun prop ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.nB0 Int) (top.impl.usr.nB1 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/metros_4_e3_1091_e3_522.sl b/benchmarks/LIA/Lustre/metros_4_e3_1091_e3_522.sl index daea37b..62edd9e 100644 --- a/benchmarks/LIA/Lustre/metros_4_e3_1091_e3_522.sl +++ b/benchmarks/LIA/Lustre/metros_4_e3_1091_e3_522.sl @@ -1,925 +1,35 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_controleur_0 ( - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) - (= controleur.usr.avance_a_0 false) - (= controleur.usr.retard_a_0 false) - controleur.res.init_flag_a_0) -) - -(define-fun - __node_trans_controleur_0 ( - (controleur.usr.nB_a_1 Int) - (controleur.usr.nS_a_1 Int) - (controleur.usr.diff_a_1 Int) - (controleur.usr.avance_a_1 Bool) - (controleur.usr.retard_a_1 Bool) - (controleur.res.init_flag_a_1 Bool) - (controleur.usr.nB_a_0 Int) - (controleur.usr.nS_a_0 Int) - (controleur.usr.diff_a_0 Int) - (controleur.usr.avance_a_0 Bool) - (controleur.usr.retard_a_0 Bool) - (controleur.res.init_flag_a_0 Bool) - ) Bool - - (and - (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) - (= - controleur.usr.avance_a_1 - (ite - (not controleur.usr.avance_a_0) - (>= controleur.usr.diff_a_1 10) - (> controleur.usr.diff_a_1 0))) - (= - controleur.usr.retard_a_1 - (ite - (not controleur.usr.retard_a_0) - (<= controleur.usr.diff_a_1 (- 10)) - (< controleur.usr.diff_a_1 0))) - (not controleur.res.init_flag_a_1)) -) - -(define-fun - __node_init_hypothese_0 ( - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= hypothese.usr.ok_a_0 true) - (= hypothese.impl.usr.c_a_0 0) - hypothese.res.init_flag_a_0) -) - -(define-fun - __node_trans_hypothese_0 ( - (hypothese.usr.B_a_1 Bool) - (hypothese.usr.S_a_1 Bool) - (hypothese.usr.avance_a_1 Bool) - (hypothese.usr.retard_a_1 Bool) - (hypothese.usr.ok_a_1 Bool) - (hypothese.res.init_flag_a_1 Bool) - (hypothese.impl.usr.c_a_1 Int) - (hypothese.usr.B_a_0 Bool) - (hypothese.usr.S_a_0 Bool) - (hypothese.usr.avance_a_0 Bool) - (hypothese.usr.retard_a_0 Bool) - (hypothese.usr.ok_a_0 Bool) - (hypothese.res.init_flag_a_0 Bool) - (hypothese.impl.usr.c_a_0 Int) - ) Bool - - (and - (= - hypothese.usr.ok_a_1 - (and - (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) - (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) - (= - hypothese.impl.usr.c_a_1 - (ite - (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) - (ite - hypothese.usr.B_a_1 - (- hypothese.impl.usr.c_a_0 1) - hypothese.impl.usr.c_a_0) - 0)) - (not hypothese.res.init_flag_a_1)) -) - -(define-fun - __node_init_main_0 ( - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_0)) - (let - ((X2 Bool main.res.abs_0_a_0)) - (and - (= main.usr.ast_a_0 (and X2 X1)) - (= main.usr.avance0_a_0 main.res.abs_3_a_0) - (= main.usr.nB0_a_0 0) - (= main.usr.nS_a_0 0) - (= main.usr.retard0_a_0 main.res.abs_4_a_0) - (= main.usr.avance1_a_0 main.res.abs_6_a_0) - (= main.usr.nB1_a_0 0) - (= main.usr.retard1_a_0 main.res.abs_7_a_0) - (= main.usr.diff0_a_0 main.res.abs_2_a_0) - (= main.usr.diff1_a_0 main.res.abs_5_a_0) - (__node_init_hypothese_0 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_init_controleur_0 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_init_hypothese_0 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_init_controleur_0 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - main.res.init_flag_a_0))) -) - -(define-fun - __node_trans_main_0 ( - (main.usr.B0_a_1 Bool) - (main.usr.B1_a_1 Bool) - (main.usr.S_a_1 Bool) - (main.usr.ast_a_1 Bool) - (main.usr.nB0_a_1 Int) - (main.usr.nB1_a_1 Int) - (main.usr.nS_a_1 Int) - (main.usr.diff0_a_1 Int) - (main.usr.diff1_a_1 Int) - (main.usr.avance0_a_1 Bool) - (main.usr.avance1_a_1 Bool) - (main.usr.retard0_a_1 Bool) - (main.usr.retard1_a_1 Bool) - (main.res.init_flag_a_1 Bool) - (main.res.abs_0_a_1 Bool) - (main.res.abs_1_a_1 Bool) - (main.res.abs_2_a_1 Int) - (main.res.abs_3_a_1 Bool) - (main.res.abs_4_a_1 Bool) - (main.res.abs_5_a_1 Int) - (main.res.abs_6_a_1 Bool) - (main.res.abs_7_a_1 Bool) - (main.res.inst_5_a_1 Bool) - (main.res.inst_4_a_1 Int) - (main.res.inst_3_a_1 Bool) - (main.res.inst_2_a_1 Bool) - (main.res.inst_1_a_1 Int) - (main.res.inst_0_a_1 Bool) - (main.usr.B0_a_0 Bool) - (main.usr.B1_a_0 Bool) - (main.usr.S_a_0 Bool) - (main.usr.ast_a_0 Bool) - (main.usr.nB0_a_0 Int) - (main.usr.nB1_a_0 Int) - (main.usr.nS_a_0 Int) - (main.usr.diff0_a_0 Int) - (main.usr.diff1_a_0 Int) - (main.usr.avance0_a_0 Bool) - (main.usr.avance1_a_0 Bool) - (main.usr.retard0_a_0 Bool) - (main.usr.retard1_a_0 Bool) - (main.res.init_flag_a_0 Bool) - (main.res.abs_0_a_0 Bool) - (main.res.abs_1_a_0 Bool) - (main.res.abs_2_a_0 Int) - (main.res.abs_3_a_0 Bool) - (main.res.abs_4_a_0 Bool) - (main.res.abs_5_a_0 Int) - (main.res.abs_6_a_0 Bool) - (main.res.abs_7_a_0 Bool) - (main.res.inst_5_a_0 Bool) - (main.res.inst_4_a_0 Int) - (main.res.inst_3_a_0 Bool) - (main.res.inst_2_a_0 Bool) - (main.res.inst_1_a_0 Int) - (main.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool main.res.abs_1_a_1)) - (let - ((X2 Bool main.res.abs_0_a_1)) - (and - (= main.usr.ast_a_1 (and X2 X1)) - (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) - (= - main.usr.nB0_a_1 - (ite main.usr.B0_a_1 (- main.usr.nB0_a_0 1) main.usr.nB0_a_0)) - (= main.usr.avance0_a_1 main.res.abs_3_a_1) - (= main.usr.retard0_a_1 main.res.abs_4_a_1) - (= - main.usr.nB1_a_1 - (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) - (= main.usr.avance1_a_1 main.res.abs_6_a_1) - (= main.usr.retard1_a_1 main.res.abs_7_a_1) - (= main.usr.diff0_a_1 main.res.abs_2_a_1) - (= main.usr.diff1_a_1 main.res.abs_5_a_1) - (__node_trans_hypothese_0 - main.usr.B0_a_1 - main.usr.S_a_1 - main.usr.avance0_a_1 - main.usr.retard0_a_1 - main.res.abs_0_a_1 - main.res.inst_5_a_1 - main.res.inst_4_a_1 - main.usr.B0_a_0 - main.usr.S_a_0 - main.usr.avance0_a_0 - main.usr.retard0_a_0 - main.res.abs_0_a_0 - main.res.inst_5_a_0 - main.res.inst_4_a_0) - (__node_trans_controleur_0 - main.usr.nB0_a_1 - main.usr.nS_a_1 - main.res.abs_2_a_1 - main.res.abs_3_a_1 - main.res.abs_4_a_1 - main.res.inst_3_a_1 - main.usr.nB0_a_0 - main.usr.nS_a_0 - main.res.abs_2_a_0 - main.res.abs_3_a_0 - main.res.abs_4_a_0 - main.res.inst_3_a_0) - (__node_trans_hypothese_0 - main.usr.B1_a_1 - main.usr.S_a_1 - main.usr.avance1_a_1 - main.usr.retard1_a_1 - main.res.abs_1_a_1 - main.res.inst_2_a_1 - main.res.inst_1_a_1 - main.usr.B1_a_0 - main.usr.S_a_0 - main.usr.avance1_a_0 - main.usr.retard1_a_0 - main.res.abs_1_a_0 - main.res.inst_2_a_0 - main.res.inst_1_a_0) - (__node_trans_controleur_0 - main.usr.nB1_a_1 - main.usr.nS_a_1 - main.res.abs_5_a_1 - main.res.abs_6_a_1 - main.res.abs_7_a_1 - main.res.inst_0_a_1 - main.usr.nB1_a_0 - main.usr.nS_a_0 - main.res.abs_5_a_0 - main.res.abs_6_a_0 - main.res.abs_7_a_0 - main.res.inst_0_a_0) - (not main.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.nB0_a_0 Int) - (top.impl.usr.nB1_a_0 Int) - (top.impl.usr.ast_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= top.impl.usr.nB0_a_0 top.res.abs_1_a_0) - (= top.impl.usr.nB1_a_0 top.res.abs_2_a_0) - (= top.impl.usr.ast_a_0 top.res.abs_0_a_0) - (__node_init_main_0 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_init_Sofar_0 top.impl.usr.ast_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) - top.res.init_flag_a_0) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.B0_a_1 Bool) - (top.usr.B1_a_1 Bool) - (top.usr.S_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.nB0_a_1 Int) - (top.impl.usr.nB1_a_1 Int) - (top.impl.usr.ast_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Int) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Int) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Int) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.B0_a_0 Bool) - (top.usr.B1_a_0 Bool) - (top.usr.S_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.nB0_a_0 Int) - (top.impl.usr.nB1_a_0 Int) - (top.impl.usr.ast_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Int) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Int) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.ast_a_1 top.res.abs_0_a_1) - (= - top.usr.OK_a_1 - (=> top.res.abs_10_a_1 (<= (- top.impl.usr.nB0_a_0 top.impl.usr.nB1_a_0) 30))) - (= top.impl.usr.nB0_a_1 top.res.abs_1_a_1) - (= top.impl.usr.nB1_a_1 top.res.abs_2_a_1) - (__node_trans_main_0 - top.usr.B0_a_1 - top.usr.B1_a_1 - top.usr.S_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.usr.B0_a_0 - top.usr.B1_a_0 - top.usr.S_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_trans_Sofar_0 - top.impl.usr.ast_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.impl.usr.ast_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)) -) - - - -(synth-inv str_invariant( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.nB0 Int) - (top.impl.usr.nB1 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.B0 Bool) -(declare-primed-var top.usr.B1 Bool) -(declare-primed-var top.usr.S Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.nB0 Int) -(declare-primed-var top.impl.usr.nB1 Int) -(declare-primed-var top.impl.usr.ast Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Int) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Int) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Int) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.nB0 Int) - (top.impl.usr.nB1 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.nB0 top.res.abs_1) - (= top.impl.usr.nB1 top.res.abs_2) - (= top.impl.usr.ast top.res.abs_0) - (__node_init_main_0 - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_init_Sofar_0 top.impl.usr.ast top.res.abs_10 top.res.inst_0) - top.res.init_flag) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.nB0 Int) - (top.impl.usr.nB1 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.B0! Bool) - (top.usr.B1! Bool) - (top.usr.S! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.nB0! Int) - (top.impl.usr.nB1! Int) - (top.impl.usr.ast! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Int) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Int) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Int) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.impl.usr.ast! top.res.abs_0!) - (= - top.usr.OK! - (=> top.res.abs_10! (<= (- top.impl.usr.nB0 top.impl.usr.nB1) 30))) - (= top.impl.usr.nB0! top.res.abs_1!) - (= top.impl.usr.nB1! top.res.abs_2!) - (__node_trans_main_0 - top.usr.B0! - top.usr.B1! - top.usr.S! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.usr.B0 - top.usr.B1 - top.usr.S - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_trans_Sofar_0 - top.impl.usr.ast! - top.res.abs_10! - top.res.inst_0! - top.impl.usr.ast - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!)) -) - -(define-fun - prop ( - (top.usr.B0 Bool) - (top.usr.B1 Bool) - (top.usr.S Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.nB0 Int) - (top.impl.usr.nB1 Int) - (top.impl.usr.ast Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Int) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Int) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Int) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_controleur_0 ((controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_0 (- controleur.usr.nB_a_0 controleur.usr.nS_a_0)) (= controleur.usr.avance_a_0 false) (= controleur.usr.retard_a_0 false) controleur.res.init_flag_a_0)) +(define-fun __node_trans_controleur_0 ((controleur.usr.nB_a_1 Int) (controleur.usr.nS_a_1 Int) (controleur.usr.diff_a_1 Int) (controleur.usr.avance_a_1 Bool) (controleur.usr.retard_a_1 Bool) (controleur.res.init_flag_a_1 Bool) (controleur.usr.nB_a_0 Int) (controleur.usr.nS_a_0 Int) (controleur.usr.diff_a_0 Int) (controleur.usr.avance_a_0 Bool) (controleur.usr.retard_a_0 Bool) (controleur.res.init_flag_a_0 Bool)) Bool + (and (= controleur.usr.diff_a_1 (- controleur.usr.nB_a_1 controleur.usr.nS_a_1)) (= controleur.usr.avance_a_1 (ite (not controleur.usr.avance_a_0) (>= controleur.usr.diff_a_1 10) (> controleur.usr.diff_a_1 0))) (= controleur.usr.retard_a_1 (ite (not controleur.usr.retard_a_0) (<= controleur.usr.diff_a_1 (- 10)) (< controleur.usr.diff_a_1 0))) (not controleur.res.init_flag_a_1))) +(define-fun __node_init_hypothese_0 ((hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_0 true) (= hypothese.impl.usr.c_a_0 0) hypothese.res.init_flag_a_0)) +(define-fun __node_trans_hypothese_0 ((hypothese.usr.B_a_1 Bool) (hypothese.usr.S_a_1 Bool) (hypothese.usr.avance_a_1 Bool) (hypothese.usr.retard_a_1 Bool) (hypothese.usr.ok_a_1 Bool) (hypothese.res.init_flag_a_1 Bool) (hypothese.impl.usr.c_a_1 Int) (hypothese.usr.B_a_0 Bool) (hypothese.usr.S_a_0 Bool) (hypothese.usr.avance_a_0 Bool) (hypothese.usr.retard_a_0 Bool) (hypothese.usr.ok_a_0 Bool) (hypothese.res.init_flag_a_0 Bool) (hypothese.impl.usr.c_a_0 Int)) Bool + (and (= hypothese.usr.ok_a_1 (and (ite hypothese.usr.retard_a_0 (not hypothese.usr.S_a_1) true) (ite (>= hypothese.impl.usr.c_a_0 9) (not hypothese.usr.B_a_1) true))) (= hypothese.impl.usr.c_a_1 (ite (and hypothese.usr.avance_a_0 hypothese.usr.avance_a_1) (ite hypothese.usr.B_a_1 (- hypothese.impl.usr.c_a_0 1) hypothese.impl.usr.c_a_0) 0)) (not hypothese.res.init_flag_a_1))) +(define-fun __node_init_main_0 ((main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_0)) (let ((X2 main.res.abs_0_a_0)) (and (= main.usr.ast_a_0 (and X2 X1)) (= main.usr.avance0_a_0 main.res.abs_3_a_0) (= main.usr.nB0_a_0 0) (= main.usr.nS_a_0 0) (= main.usr.retard0_a_0 main.res.abs_4_a_0) (= main.usr.avance1_a_0 main.res.abs_6_a_0) (= main.usr.nB1_a_0 0) (= main.usr.retard1_a_0 main.res.abs_7_a_0) (= main.usr.diff0_a_0 main.res.abs_2_a_0) (= main.usr.diff1_a_0 main.res.abs_5_a_0) (__node_init_hypothese_0 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_init_controleur_0 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_init_hypothese_0 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_init_controleur_0 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) main.res.init_flag_a_0)))) +(define-fun __node_trans_main_0 ((main.usr.B0_a_1 Bool) (main.usr.B1_a_1 Bool) (main.usr.S_a_1 Bool) (main.usr.ast_a_1 Bool) (main.usr.nB0_a_1 Int) (main.usr.nB1_a_1 Int) (main.usr.nS_a_1 Int) (main.usr.diff0_a_1 Int) (main.usr.diff1_a_1 Int) (main.usr.avance0_a_1 Bool) (main.usr.avance1_a_1 Bool) (main.usr.retard0_a_1 Bool) (main.usr.retard1_a_1 Bool) (main.res.init_flag_a_1 Bool) (main.res.abs_0_a_1 Bool) (main.res.abs_1_a_1 Bool) (main.res.abs_2_a_1 Int) (main.res.abs_3_a_1 Bool) (main.res.abs_4_a_1 Bool) (main.res.abs_5_a_1 Int) (main.res.abs_6_a_1 Bool) (main.res.abs_7_a_1 Bool) (main.res.inst_5_a_1 Bool) (main.res.inst_4_a_1 Int) (main.res.inst_3_a_1 Bool) (main.res.inst_2_a_1 Bool) (main.res.inst_1_a_1 Int) (main.res.inst_0_a_1 Bool) (main.usr.B0_a_0 Bool) (main.usr.B1_a_0 Bool) (main.usr.S_a_0 Bool) (main.usr.ast_a_0 Bool) (main.usr.nB0_a_0 Int) (main.usr.nB1_a_0 Int) (main.usr.nS_a_0 Int) (main.usr.diff0_a_0 Int) (main.usr.diff1_a_0 Int) (main.usr.avance0_a_0 Bool) (main.usr.avance1_a_0 Bool) (main.usr.retard0_a_0 Bool) (main.usr.retard1_a_0 Bool) (main.res.init_flag_a_0 Bool) (main.res.abs_0_a_0 Bool) (main.res.abs_1_a_0 Bool) (main.res.abs_2_a_0 Int) (main.res.abs_3_a_0 Bool) (main.res.abs_4_a_0 Bool) (main.res.abs_5_a_0 Int) (main.res.abs_6_a_0 Bool) (main.res.abs_7_a_0 Bool) (main.res.inst_5_a_0 Bool) (main.res.inst_4_a_0 Int) (main.res.inst_3_a_0 Bool) (main.res.inst_2_a_0 Bool) (main.res.inst_1_a_0 Int) (main.res.inst_0_a_0 Bool)) Bool + (let ((X1 main.res.abs_1_a_1)) (let ((X2 main.res.abs_0_a_1)) (and (= main.usr.ast_a_1 (and X2 X1)) (= main.usr.nS_a_1 (ite main.usr.S_a_1 (+ main.usr.nS_a_0 1) main.usr.nS_a_0)) (= main.usr.nB0_a_1 (ite main.usr.B0_a_1 (- main.usr.nB0_a_0 1) main.usr.nB0_a_0)) (= main.usr.avance0_a_1 main.res.abs_3_a_1) (= main.usr.retard0_a_1 main.res.abs_4_a_1) (= main.usr.nB1_a_1 (ite main.usr.B1_a_1 (+ main.usr.nB1_a_0 1) main.usr.nB1_a_0)) (= main.usr.avance1_a_1 main.res.abs_6_a_1) (= main.usr.retard1_a_1 main.res.abs_7_a_1) (= main.usr.diff0_a_1 main.res.abs_2_a_1) (= main.usr.diff1_a_1 main.res.abs_5_a_1) (__node_trans_hypothese_0 main.usr.B0_a_1 main.usr.S_a_1 main.usr.avance0_a_1 main.usr.retard0_a_1 main.res.abs_0_a_1 main.res.inst_5_a_1 main.res.inst_4_a_1 main.usr.B0_a_0 main.usr.S_a_0 main.usr.avance0_a_0 main.usr.retard0_a_0 main.res.abs_0_a_0 main.res.inst_5_a_0 main.res.inst_4_a_0) (__node_trans_controleur_0 main.usr.nB0_a_1 main.usr.nS_a_1 main.res.abs_2_a_1 main.res.abs_3_a_1 main.res.abs_4_a_1 main.res.inst_3_a_1 main.usr.nB0_a_0 main.usr.nS_a_0 main.res.abs_2_a_0 main.res.abs_3_a_0 main.res.abs_4_a_0 main.res.inst_3_a_0) (__node_trans_hypothese_0 main.usr.B1_a_1 main.usr.S_a_1 main.usr.avance1_a_1 main.usr.retard1_a_1 main.res.abs_1_a_1 main.res.inst_2_a_1 main.res.inst_1_a_1 main.usr.B1_a_0 main.usr.S_a_0 main.usr.avance1_a_0 main.usr.retard1_a_0 main.res.abs_1_a_0 main.res.inst_2_a_0 main.res.inst_1_a_0) (__node_trans_controleur_0 main.usr.nB1_a_1 main.usr.nS_a_1 main.res.abs_5_a_1 main.res.abs_6_a_1 main.res.abs_7_a_1 main.res.inst_0_a_1 main.usr.nB1_a_0 main.usr.nS_a_0 main.res.abs_5_a_0 main.res.abs_6_a_0 main.res.abs_7_a_0 main.res.inst_0_a_0) (not main.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.nB0_a_0 Int) (top.impl.usr.nB1_a_0 Int) (top.impl.usr.ast_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.nB0_a_0 top.res.abs_1_a_0) (= top.impl.usr.nB1_a_0 top.res.abs_2_a_0) (= top.impl.usr.ast_a_0 top.res.abs_0_a_0) (__node_init_main_0 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_init_Sofar_0 top.impl.usr.ast_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)) +(define-fun __node_trans_top_0 ((top.usr.B0_a_1 Bool) (top.usr.B1_a_1 Bool) (top.usr.S_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.nB0_a_1 Int) (top.impl.usr.nB1_a_1 Int) (top.impl.usr.ast_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Int) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Int) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Int) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.B0_a_0 Bool) (top.usr.B1_a_0 Bool) (top.usr.S_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.nB0_a_0 Int) (top.impl.usr.nB1_a_0 Int) (top.impl.usr.ast_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Int) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Int) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.ast_a_1 top.res.abs_0_a_1) (= top.usr.OK_a_1 (=> top.res.abs_10_a_1 (<= (- top.impl.usr.nB0_a_0 top.impl.usr.nB1_a_0) 30))) (= top.impl.usr.nB0_a_1 top.res.abs_1_a_1) (= top.impl.usr.nB1_a_1 top.res.abs_2_a_1) (__node_trans_main_0 top.usr.B0_a_1 top.usr.B1_a_1 top.usr.S_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.usr.B0_a_0 top.usr.B1_a_0 top.usr.S_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_trans_Sofar_0 top.impl.usr.ast_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.impl.usr.ast_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))) +(synth-inv str_invariant ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.nB0 Int) (top.impl.usr.nB1 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.nB0 Int) (top.impl.usr.nB1 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.nB0 top.res.abs_1) (= top.impl.usr.nB1 top.res.abs_2) (= top.impl.usr.ast top.res.abs_0) (__node_init_main_0 top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_init_Sofar_0 top.impl.usr.ast top.res.abs_10 top.res.inst_0) top.res.init_flag)) +(define-fun trans ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.nB0 Int) (top.impl.usr.nB1 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.B0! Bool) (top.usr.B1! Bool) (top.usr.S! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.nB0! Int) (top.impl.usr.nB1! Int) (top.impl.usr.ast! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Int) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Int) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Int) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.ast! top.res.abs_0!) (= top.usr.OK! (=> top.res.abs_10! (<= (- top.impl.usr.nB0 top.impl.usr.nB1) 30))) (= top.impl.usr.nB0! top.res.abs_1!) (= top.impl.usr.nB1! top.res.abs_2!) (__node_trans_main_0 top.usr.B0! top.usr.B1! top.usr.S! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.usr.B0 top.usr.B1 top.usr.S top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_trans_Sofar_0 top.impl.usr.ast! top.res.abs_10! top.res.inst_0! top.impl.usr.ast top.res.abs_10 top.res.inst_0) (not top.res.init_flag!))) +(define-fun prop ((top.usr.B0 Bool) (top.usr.B1 Bool) (top.usr.S Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.nB0 Int) (top.impl.usr.nB1 Int) (top.impl.usr.ast Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Int) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Int) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Int) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/microwave01.sl b/benchmarks/LIA/Lustre/microwave01.sl index 5d38034..eed9438 100644 --- a/benchmarks/LIA/Lustre/microwave01.sl +++ b/benchmarks/LIA/Lustre/microwave01.sl @@ -1,2419 +1,25 @@ (set-logic LIA) -(define-fun - __node_init_top_0 ( - (top.usr.KP_START_a_0 Bool) - (top.usr.KP_CLEAR_a_0 Bool) - (top.usr.KP_0_a_0 Bool) - (top.usr.KP_1_a_0 Bool) - (top.usr.KP_2_a_0 Bool) - (top.usr.KP_3_a_0 Bool) - (top.usr.KP_4_a_0 Bool) - (top.usr.KP_5_a_0 Bool) - (top.usr.KP_6_a_0 Bool) - (top.usr.KP_7_a_0 Bool) - (top.usr.KP_8_a_0 Bool) - (top.usr.KP_9_a_0 Bool) - (top.usr.DOOR_CLOSED_a_0 Bool) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.STEPS_TO_COOK_a_0 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) - (top.impl.usr.KP_01_a_0 Bool) - (top.impl.usr.KP_11_a_0 Bool) - (top.impl.usr.KP_21_a_0 Bool) - (top.impl.usr.KP_31_a_0 Bool) - (top.impl.usr.KP_41_a_0 Bool) - (top.impl.usr.KP_51_a_0 Bool) - (top.impl.usr.KP_61_a_0 Bool) - (top.impl.usr.KP_71_a_0 Bool) - (top.impl.usr.KP_81_a_0 Bool) - (top.impl.usr.KP_91_a_0 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int) - ) Bool - - (let - ((X1 Int 0)) - (let - ((X2 Bool (= X1 4))) - (let - ((X3 Bool top.usr.KP_START_a_0)) - (let - ((X4 Int (ite (not X3) 0 1))) - (and - (= top.impl.usr.KP_91_a_0 top.usr.KP_9_a_0) - (= top.impl.usr.KP_81_a_0 top.usr.KP_8_a_0) - (= top.impl.usr.KP_71_a_0 top.usr.KP_7_a_0) - (= top.impl.usr.KP_61_a_0 top.usr.KP_6_a_0) - (= top.impl.usr.KP_51_a_0 top.usr.KP_5_a_0) - (= top.impl.usr.KP_41_a_0 top.usr.KP_4_a_0) - (= top.impl.usr.KP_31_a_0 top.usr.KP_3_a_0) - (= top.impl.usr.KP_21_a_0 top.usr.KP_2_a_0) - (= top.impl.usr.KP_11_a_0 top.usr.KP_1_a_0) - (= top.impl.usr.KP_01_a_0 top.usr.KP_0_a_0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - (ite - top.usr.KP_CLEAR_a_0 - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01_a_0 - 0 - (ite - top.impl.usr.KP_11_a_0 - 1 - (ite - top.impl.usr.KP_21_a_0 - 2 - (ite - top.impl.usr.KP_31_a_0 - 3 - (ite - top.impl.usr.KP_41_a_0 - 4 - (ite - top.impl.usr.KP_51_a_0 - 5 - (ite - top.impl.usr.KP_61_a_0 - 6 - (ite - top.impl.usr.KP_71_a_0 - 7 - (ite - top.impl.usr.KP_81_a_0 - 8 - (ite top.impl.usr.KP_91_a_0 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01_a_0 - 0 - (ite - top.impl.usr.KP_11_a_0 - 1 - (ite - top.impl.usr.KP_21_a_0 - 2 - (ite - top.impl.usr.KP_31_a_0 - 3 - (ite - top.impl.usr.KP_41_a_0 - 4 - (ite - top.impl.usr.KP_51_a_0 - 5 - (ite - top.impl.usr.KP_61_a_0 - 6 - (ite - top.impl.usr.KP_71_a_0 - 7 - (ite - top.impl.usr.KP_81_a_0 - 8 - (ite top.impl.usr.KP_91_a_0 9 10)))))))))) - 0))) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - 0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 0) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 - true) - (let - ((X5 Bool true)) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 - X5) - (= - top.impl.usr.STEPS_TO_COOK_a_0 - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0)) - 0 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 60)) - 1))) - (let - ((X6 - Bool (and - X2 - (and - (= X1 4) - (and - (ite (not (= X4 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK_a_0 0)) 0 1) - 0)) - true - false)))))) - (let - ((X7 Int (ite X6 (ite (= X1 4) 0 X1) X1))) - (let - ((X8 Int (ite (not (and (>= X7 1) (<= X7 3))) 1 X7))) - (let - ((X9 - Bool (and - (not (and (>= X7 1) (<= X7 3))) - (and (>= X8 1) (<= X8 3))))) - (let - ((X10 Int (ite (not top.usr.DOOR_CLOSED_a_0) 0 1))) - (let - ((X11 - Bool (and - X9 - (and - (and (>= X8 1) (<= X8 3)) - (ite (not (= X10 0)) true false))))) - (let - ((X12 Int (ite X11 (ite (not (= X8 2)) 2 X8) X8))) - (let - ((X13 - Bool (and X9 (and (and (>= X12 1) (<= X12 3)) (not X11))))) - (let - ((X14 Int (ite X13 (ite (not (= X12 3)) 3 X12) X12))) - (and - (= top.usr.OK_a_0 (or (= X14 2) (= X14 3))) - (let - ((X15 Int 0)) - (let - ((X16 Int 0)) - (and - (= - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - true) - (let - ((X17 Int (ite X11 (ite (not (= X8 2)) 2 X16) X16))) - (let - ((X18 - Int (ite - X6 - (ite X13 (ite (not (= X12 3)) 3 X17) X17) - X16))) - (let - ((X19 Int (ite X6 X14 X7))) - (let - ((X20 - Int (ite X2 top.impl.usr.STEPS_TO_COOK_a_0 X15))) - (let - ((X21 - Bool (and (and (= X19 2) (<= X20 0)) (= X19 2)))) - (let - ((X22 - Int (ite - X21 - (ite (and (>= X19 1) (<= X19 3)) 0 X19) - X19))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 4)) 4 X22) X22))) - (let - ((X24 - Bool (and - (= X23 3) - (and - (and - (ite (not (= X4 0)) true false) - (ite (not (= X10 0)) true false)) - (not X21))))) - (let - ((X25 Int (ite X24 (ite (= X23 3) 1 X23) X23))) - (let - ((X26 - Int (ite - X24 - (ite (not (= X25 2)) 2 X25) - X25))) - (let - ((X27 Bool (or X24 X21))) - (let - ((X28 Bool top.usr.KP_CLEAR_a_0)) - (let - ((X29 Int (ite (not X28) 0 1))) - (let - ((X30 - Bool (and - (and - (= X26 3) - (and - (ite - (not (= X29 0)) - true - false) - (not X27))) - (and (= X26 3) (not X27))))) - (let - ((X31 - Int (ite - X30 - (ite - (and (>= X26 1) (<= X26 3)) - 0 - X26) - X26))) - (let - ((X32 - Int (ite - X30 - (ite (not (= X31 4)) 4 X31) - X31))) - (let - ((X33 Int (ite X30 0 X20))) - (let - ((X34 Bool (or X30 X27))) - (let - ((X35 - Bool (and - (= X32 2) - (and (> X33 0) (not X34))))) - (let - ((X36 - Int (ite - X35 - (ite (= X32 2) 1 X32) - X32))) - (let - ((X37 - Int (ite - X21 - (ite (not (= X22 4)) 1 X18) - X18))) - (let - ((X38 - Int (ite - X24 - (ite - (not (= X25 2)) - 2 - X37) - X37))) - (let - ((X39 - Int (ite - X30 - (ite - (not (= X31 4)) - 1 - X38) - X38))) - (let - ((X40 - Int (ite - X35 - (ite - (not (= X36 2)) - 2 - X39) - X39))) - (let - ((X41 - Int (ite - X35 - (ite - (not (= X36 2)) - 2 - X36) - X36))) - (let - ((X42 - Bool (and - (= X41 2) - (and - (or - (ite - (not (= X29 0)) - true - false) - (not - (ite - (not (= X10 0)) - true - false))) - (not (or X35 X34)))))) - (let - ((X43 - Int (ite - X42 - (ite (= X41 2) 1 X41) - X41))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - true) - (= - top.impl.usr.chart_microwave_mode_logic_mode_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - (ite - (not (= X1 4)) - 1 - X16) - (ite - (and - (not X6) - (and - (>= X19 1) - (<= X19 3))) - (ite - X42 - (ite - (not (= X43 3)) - 3 - X40) - X40) - X18)) - X16)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode_a_0 - top.impl.usr.chart_microwave_mode_logic_mode_a_0) - (let - ((X44 - Int (ite - (not (= X1 4)) - 4 - X1))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - X44 - (ite - (and - (not X6) - (and - (>= X19 1) - (<= X19 3))) - (ite - X42 - (ite - (not (= X43 3)) - 3 - X43) - X43) - X19)) - X1)) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - X15 - (ite - (and - (not X6) - (and - (>= X19 1) - (<= X19 3))) - (ite - X35 - (- X33 1) - X33) - X20)) - X15)) - (<= 0 X29 1) - (<= 0 X10 1) - (<= 0 X4 1) - top.res.init_flag_a_0)))))))))))))))))))))))))))))))))))))))))))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.KP_START_a_1 Bool) - (top.usr.KP_CLEAR_a_1 Bool) - (top.usr.KP_0_a_1 Bool) - (top.usr.KP_1_a_1 Bool) - (top.usr.KP_2_a_1 Bool) - (top.usr.KP_3_a_1 Bool) - (top.usr.KP_4_a_1 Bool) - (top.usr.KP_5_a_1 Bool) - (top.usr.KP_6_a_1 Bool) - (top.usr.KP_7_a_1 Bool) - (top.usr.KP_8_a_1 Bool) - (top.usr.KP_9_a_1 Bool) - (top.usr.DOOR_CLOSED_a_1 Bool) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.STEPS_TO_COOK_a_1 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 Bool) - (top.impl.usr.KP_01_a_1 Bool) - (top.impl.usr.KP_11_a_1 Bool) - (top.impl.usr.KP_21_a_1 Bool) - (top.impl.usr.KP_31_a_1 Bool) - (top.impl.usr.KP_41_a_1 Bool) - (top.impl.usr.KP_51_a_1 Bool) - (top.impl.usr.KP_61_a_1 Bool) - (top.impl.usr.KP_71_a_1 Bool) - (top.impl.usr.KP_81_a_1 Bool) - (top.impl.usr.KP_91_a_1 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_1 Int) - (top.usr.KP_START_a_0 Bool) - (top.usr.KP_CLEAR_a_0 Bool) - (top.usr.KP_0_a_0 Bool) - (top.usr.KP_1_a_0 Bool) - (top.usr.KP_2_a_0 Bool) - (top.usr.KP_3_a_0 Bool) - (top.usr.KP_4_a_0 Bool) - (top.usr.KP_5_a_0 Bool) - (top.usr.KP_6_a_0 Bool) - (top.usr.KP_7_a_0 Bool) - (top.usr.KP_8_a_0 Bool) - (top.usr.KP_9_a_0 Bool) - (top.usr.DOOR_CLOSED_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.STEPS_TO_COOK_a_0 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) - (top.impl.usr.KP_01_a_0 Bool) - (top.impl.usr.KP_11_a_0 Bool) - (top.impl.usr.KP_21_a_0 Bool) - (top.impl.usr.KP_31_a_0 Bool) - (top.impl.usr.KP_41_a_0 Bool) - (top.impl.usr.KP_51_a_0 Bool) - (top.impl.usr.KP_61_a_0 Bool) - (top.impl.usr.KP_71_a_0 Bool) - (top.impl.usr.KP_81_a_0 Bool) - (top.impl.usr.KP_91_a_0 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int) - ) Bool - - (let - ((X1 - Int top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0)) - (let - ((X2 Bool (= X1 4))) - (let - ((X3 Bool (and top.usr.KP_START_a_1 (not top.usr.KP_START_a_0)))) - (let - ((X4 Int (ite (not X3) 0 1))) - (let - ((X5 - Bool (ite - (= 1 top.impl.usr.microwave_microwave_mode_logic_mode_a_0) - true - false))) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - X5) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (ite - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1) - true - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 - false - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0))) - (= top.impl.usr.KP_91_a_1 top.usr.KP_9_a_1) - (= top.impl.usr.KP_81_a_1 top.usr.KP_8_a_1) - (= top.impl.usr.KP_71_a_1 top.usr.KP_7_a_1) - (= top.impl.usr.KP_61_a_1 top.usr.KP_6_a_1) - (= top.impl.usr.KP_51_a_1 top.usr.KP_5_a_1) - (= top.impl.usr.KP_41_a_1 top.usr.KP_4_a_1) - (= top.impl.usr.KP_31_a_1 top.usr.KP_3_a_1) - (= top.impl.usr.KP_21_a_1 top.usr.KP_2_a_1) - (= top.impl.usr.KP_11_a_1 top.usr.KP_1_a_1) - (= top.impl.usr.KP_01_a_1 top.usr.KP_0_a_1) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01_a_1 - 0 - (ite - top.impl.usr.KP_11_a_1 - 1 - (ite - top.impl.usr.KP_21_a_1 - 2 - (ite - top.impl.usr.KP_31_a_1 - 3 - (ite - top.impl.usr.KP_41_a_1 - 4 - (ite - top.impl.usr.KP_51_a_1 - 5 - (ite - top.impl.usr.KP_61_a_1 - 6 - (ite - top.impl.usr.KP_71_a_1 - 7 - (ite - top.impl.usr.KP_81_a_1 - 8 - (ite top.impl.usr.KP_91_a_1 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01_a_1 - 0 - (ite - top.impl.usr.KP_11_a_1 - 1 - (ite - top.impl.usr.KP_21_a_1 - 2 - (ite - top.impl.usr.KP_31_a_1 - 3 - (ite - top.impl.usr.KP_41_a_1 - 4 - (ite - top.impl.usr.KP_51_a_1 - 5 - (ite - top.impl.usr.KP_61_a_1 - 6 - (ite - top.impl.usr.KP_71_a_1 - 7 - (ite - top.impl.usr.KP_81_a_1 - 8 - (ite top.impl.usr.KP_91_a_1 9 10)))))))))) - 0)) - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - 0 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - 0 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.STEPS_TO_COOK_a_1 - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1)) - 0 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 - 60)) - 1) - top.impl.usr.STEPS_TO_COOK_a_0))) - (let - ((X6 - Bool (and - X2 - (and - (= X1 4) - (and - (ite (not (= X4 0)) true false) - (ite - (not - (= (ite (not (> top.impl.usr.STEPS_TO_COOK_a_1 0)) 0 1) 0)) - true - false)))))) - (let - ((X7 Int (ite X6 (ite (= X1 4) 0 X1) X1))) - (let - ((X8 Int (ite (not (and (>= X7 1) (<= X7 3))) 1 X7))) - (let - ((X9 - Bool (and - (not (and (>= X7 1) (<= X7 3))) - (and (>= X8 1) (<= X8 3))))) - (let - ((X10 Int (ite (not top.usr.DOOR_CLOSED_a_1) 0 1))) - (let - ((X11 - Bool (and - X9 - (and - (and (>= X8 1) (<= X8 3)) - (ite (not (= X10 0)) true false))))) - (let - ((X12 Int (ite X11 (ite (not (= X8 2)) 2 X8) X8))) - (let - ((X13 - Bool (and X9 (and (and (>= X12 1) (<= X12 3)) (not X11))))) - (let - ((X14 Int (ite X13 (ite (not (= X12 3)) 3 X12) X12))) - (and - (= top.usr.OK_a_1 (or (= X14 2) (= X14 3))) - (let - ((X15 - Int top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0)) - (let - ((X16 Int top.impl.usr.chart_microwave_mode_logic_mode_a_0)) - (and - (= - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - false - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0)) - (let - ((X17 Int (ite X11 (ite (not (= X8 2)) 2 X16) X16))) - (let - ((X18 - Int (ite - X6 - (ite X13 (ite (not (= X12 3)) 3 X17) X17) - X16))) - (let - ((X19 Int (ite X6 X14 X7))) - (let - ((X20 Int (ite X2 top.impl.usr.STEPS_TO_COOK_a_1 X15))) - (let - ((X21 - Bool (and (and (= X19 2) (<= X20 0)) (= X19 2)))) - (let - ((X22 - Int (ite - X21 - (ite (and (>= X19 1) (<= X19 3)) 0 X19) - X19))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 4)) 4 X22) X22))) - (let - ((X24 - Bool (and - (= X23 3) - (and - (and - (ite (not (= X4 0)) true false) - (ite (not (= X10 0)) true false)) - (not X21))))) - (let - ((X25 Int (ite X24 (ite (= X23 3) 1 X23) X23))) - (let - ((X26 - Int (ite - X24 - (ite (not (= X25 2)) 2 X25) - X25))) - (let - ((X27 Bool (or X24 X21))) - (let - ((X28 - Bool (and - top.usr.KP_CLEAR_a_1 - (not top.usr.KP_CLEAR_a_0)))) - (let - ((X29 Int (ite (not X28) 0 1))) - (let - ((X30 - Bool (and - (and - (= X26 3) - (and - (ite (not (= X29 0)) true false) - (not X27))) - (and (= X26 3) (not X27))))) - (let - ((X31 - Int (ite - X30 - (ite - (and (>= X26 1) (<= X26 3)) - 0 - X26) - X26))) - (let - ((X32 - Int (ite - X30 - (ite (not (= X31 4)) 4 X31) - X31))) - (let - ((X33 Int (ite X30 0 X20))) - (let - ((X34 Bool (or X30 X27))) - (let - ((X35 - Bool (and - (= X32 2) - (and (> X33 0) (not X34))))) - (let - ((X36 - Int (ite - X35 - (ite (= X32 2) 1 X32) - X32))) - (let - ((X37 - Int (ite - X21 - (ite (not (= X22 4)) 1 X18) - X18))) - (let - ((X38 - Int (ite - X24 - (ite (not (= X25 2)) 2 X37) - X37))) - (let - ((X39 - Int (ite - X30 - (ite - (not (= X31 4)) - 1 - X38) - X38))) - (let - ((X40 - Int (ite - X35 - (ite - (not (= X36 2)) - 2 - X39) - X39))) - (let - ((X41 - Int (ite - X35 - (ite - (not (= X36 2)) - 2 - X36) - X36))) - (let - ((X42 - Bool (and - (= X41 2) - (and - (or - (ite - (not (= X29 0)) - true - false) - (not - (ite - (not (= X10 0)) - true - false))) - (not (or X35 X34)))))) - (let - ((X43 - Int (ite - X42 - (ite (= X41 2) 1 X41) - X41))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - true) - (= - top.impl.usr.chart_microwave_mode_logic_mode_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - (ite - (not (= X1 4)) - 1 - X16) - (ite - (and - (not X6) - (and - (>= X19 1) - (<= X19 3))) - (ite - X42 - (ite - (not (= X43 3)) - 3 - X40) - X40) - X18)) - X16)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode_a_1 - top.impl.usr.chart_microwave_mode_logic_mode_a_1) - (let - ((X44 - Int (ite - (not (= X1 4)) - 4 - X1))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - X44 - (ite - (and - (not X6) - (and - (>= X19 1) - (<= X19 3))) - (ite - X42 - (ite - (not (= X43 3)) - 3 - X43) - X43) - X19)) - X1)) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - X15 - (ite - (and - (not X6) - (and - (>= X19 1) - (<= X19 3))) - (ite - X35 - (- X33 1) - X33) - X20)) - X15)) - (<= 0 X29 1) - (<= 0 X10 1) - (<= 0 X4 1) - (not top.res.init_flag_a_1)))))))))))))))))))))))))))))))))))))))))))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) -)) - -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.KP_START Bool) -(declare-primed-var top.usr.KP_CLEAR Bool) -(declare-primed-var top.usr.KP_0 Bool) -(declare-primed-var top.usr.KP_1 Bool) -(declare-primed-var top.usr.KP_2 Bool) -(declare-primed-var top.usr.KP_3 Bool) -(declare-primed-var top.usr.KP_4 Bool) -(declare-primed-var top.usr.KP_5 Bool) -(declare-primed-var top.usr.KP_6 Bool) -(declare-primed-var top.usr.KP_7 Bool) -(declare-primed-var top.usr.KP_8 Bool) -(declare-primed-var top.usr.KP_9 Bool) -(declare-primed-var top.usr.DOOR_CLOSED Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.STEPS_TO_COOK Int) -(declare-primed-var top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) -(declare-primed-var top.impl.usr.KP_01 Bool) -(declare-primed-var top.impl.usr.KP_11 Bool) -(declare-primed-var top.impl.usr.KP_21 Bool) -(declare-primed-var top.impl.usr.KP_31 Bool) -(declare-primed-var top.impl.usr.KP_41 Bool) -(declare-primed-var top.impl.usr.KP_51 Bool) -(declare-primed-var top.impl.usr.KP_61 Bool) -(declare-primed-var top.impl.usr.KP_71 Bool) -(declare-primed-var top.impl.usr.KP_81 Bool) -(declare-primed-var top.impl.usr.KP_91 Bool) -(declare-primed-var top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_mode Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) -(declare-primed-var top.impl.usr.microwave_microwave_mode_logic_mode Int) - -(define-fun - init ( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - ) Bool - - (let - ((X1 Int 0)) - (let - ((X2 Bool (= X1 4))) - (let - ((X3 Bool top.usr.KP_START)) - (let - ((X4 Int (ite (not X3) 0 1))) - (and - (= top.impl.usr.KP_91 top.usr.KP_9) - (= top.impl.usr.KP_81 top.usr.KP_8) - (= top.impl.usr.KP_71 top.usr.KP_7) - (= top.impl.usr.KP_61 top.usr.KP_6) - (= top.impl.usr.KP_51 top.usr.KP_5) - (= top.impl.usr.KP_41 top.usr.KP_4) - (= top.impl.usr.KP_31 top.usr.KP_3) - (= top.impl.usr.KP_21 top.usr.KP_2) - (= top.impl.usr.KP_11 top.usr.KP_1) - (= top.impl.usr.KP_01 top.usr.KP_0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - (ite - top.usr.KP_CLEAR - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01 - 0 - (ite - top.impl.usr.KP_11 - 1 - (ite - top.impl.usr.KP_21 - 2 - (ite - top.impl.usr.KP_31 - 3 - (ite - top.impl.usr.KP_41 - 4 - (ite - top.impl.usr.KP_51 - 5 - (ite - top.impl.usr.KP_61 - 6 - (ite - top.impl.usr.KP_71 - 7 - (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01 - 0 - (ite - top.impl.usr.KP_11 - 1 - (ite - top.impl.usr.KP_21 - 2 - (ite - top.impl.usr.KP_31 - 3 - (ite - top.impl.usr.KP_41 - 4 - (ite - top.impl.usr.KP_51 - 5 - (ite - top.impl.usr.KP_61 - 6 - (ite - top.impl.usr.KP_71 - 7 - (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) - 0))) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - 0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY - 0) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step - true) - (let - ((X5 Bool true)) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock - X5) - (= - top.impl.usr.STEPS_TO_COOK - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock)) - 0 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY - 60)) - 1))) - (let - ((X6 - Bool (and - X2 - (and - (= X1 4) - (and - (ite (not (= X4 0)) true false) - (ite - (not - (= (ite (not (> top.impl.usr.STEPS_TO_COOK 0)) 0 1) 0)) - true - false)))))) - (let - ((X7 Int (ite X6 (ite (= X1 4) 0 X1) X1))) - (let - ((X8 Int (ite (not (and (>= X7 1) (<= X7 3))) 1 X7))) - (let - ((X9 - Bool (and - (not (and (>= X7 1) (<= X7 3))) - (and (>= X8 1) (<= X8 3))))) - (let - ((X10 Int (ite (not top.usr.DOOR_CLOSED) 0 1))) - (let - ((X11 - Bool (and - X9 - (and - (and (>= X8 1) (<= X8 3)) - (ite (not (= X10 0)) true false))))) - (let - ((X12 Int (ite X11 (ite (not (= X8 2)) 2 X8) X8))) - (let - ((X13 - Bool (and X9 (and (and (>= X12 1) (<= X12 3)) (not X11))))) - (let - ((X14 Int (ite X13 (ite (not (= X12 3)) 3 X12) X12))) - (and - (= top.usr.OK (or (= X14 2) (= X14 3))) - (let - ((X15 Int 0)) - (let - ((X16 Int 0)) - (and - (= - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - true) - (let - ((X17 Int (ite X11 (ite (not (= X8 2)) 2 X16) X16))) - (let - ((X18 - Int (ite - X6 - (ite X13 (ite (not (= X12 3)) 3 X17) X17) - X16))) - (let - ((X19 Int (ite X6 X14 X7))) - (let - ((X20 Int (ite X2 top.impl.usr.STEPS_TO_COOK X15))) - (let - ((X21 - Bool (and (and (= X19 2) (<= X20 0)) (= X19 2)))) - (let - ((X22 - Int (ite - X21 - (ite (and (>= X19 1) (<= X19 3)) 0 X19) - X19))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 4)) 4 X22) X22))) - (let - ((X24 - Bool (and - (= X23 3) - (and - (and - (ite (not (= X4 0)) true false) - (ite (not (= X10 0)) true false)) - (not X21))))) - (let - ((X25 Int (ite X24 (ite (= X23 3) 1 X23) X23))) - (let - ((X26 - Int (ite - X24 - (ite (not (= X25 2)) 2 X25) - X25))) - (let - ((X27 Bool (or X24 X21))) - (let - ((X28 Bool top.usr.KP_CLEAR)) - (let - ((X29 Int (ite (not X28) 0 1))) - (let - ((X30 - Bool (and - (and - (= X26 3) - (and - (ite - (not (= X29 0)) - true - false) - (not X27))) - (and (= X26 3) (not X27))))) - (let - ((X31 - Int (ite - X30 - (ite - (and (>= X26 1) (<= X26 3)) - 0 - X26) - X26))) - (let - ((X32 - Int (ite - X30 - (ite (not (= X31 4)) 4 X31) - X31))) - (let - ((X33 Int (ite X30 0 X20))) - (let - ((X34 Bool (or X30 X27))) - (let - ((X35 - Bool (and - (= X32 2) - (and (> X33 0) (not X34))))) - (let - ((X36 - Int (ite - X35 - (ite (= X32 2) 1 X32) - X32))) - (let - ((X37 - Int (ite - X21 - (ite (not (= X22 4)) 1 X18) - X18))) - (let - ((X38 - Int (ite - X24 - (ite - (not (= X25 2)) - 2 - X37) - X37))) - (let - ((X39 - Int (ite - X30 - (ite - (not (= X31 4)) - 1 - X38) - X38))) - (let - ((X40 - Int (ite - X35 - (ite - (not (= X36 2)) - 2 - X39) - X39))) - (let - ((X41 - Int (ite - X35 - (ite - (not (= X36 2)) - 2 - X36) - X36))) - (let - ((X42 - Bool (and - (= X41 2) - (and - (or - (ite - (not (= X29 0)) - true - false) - (not - (ite - (not (= X10 0)) - true - false))) - (not (or X35 X34)))))) - (let - ((X43 - Int (ite - X42 - (ite (= X41 2) 1 X41) - X41))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup___ - true) - (= - top.impl.usr.chart_microwave_mode_logic_mode - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - (ite - (not (= X1 4)) - 1 - X16) - (ite - (and - (not X6) - (and - (>= X19 1) - (<= X19 3))) - (ite - X42 - (ite - (not (= X43 3)) - 3 - X40) - X40) - X18)) - X16)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode - top.impl.usr.chart_microwave_mode_logic_mode) - (let - ((X44 - Int (ite - (not (= X1 4)) - 4 - X1))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - X44 - (ite - (and - (not X6) - (and - (>= X19 1) - (<= X19 3))) - (ite - X42 - (ite - (not (= X43 3)) - 3 - X43) - X43) - X19)) - X1)) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - X15 - (ite - (and - (not X6) - (and - (>= X19 1) - (<= X19 3))) - (ite - X35 - (- X33 1) - X33) - X20)) - X15)) - (<= 0 X29 1) - (<= 0 X10 1) - (<= 0 X4 1) - top.res.init_flag)))))))))))))))))))))))))))))))))))))))))))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - - ;; Next state. - (top.usr.KP_START! Bool) - (top.usr.KP_CLEAR! Bool) - (top.usr.KP_0! Bool) - (top.usr.KP_1! Bool) - (top.usr.KP_2! Bool) - (top.usr.KP_3! Bool) - (top.usr.KP_4! Bool) - (top.usr.KP_5! Bool) - (top.usr.KP_6! Bool) - (top.usr.KP_7! Bool) - (top.usr.KP_8! Bool) - (top.usr.KP_9! Bool) - (top.usr.DOOR_CLOSED! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.STEPS_TO_COOK! Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! Bool) - (top.impl.usr.KP_01! Bool) - (top.impl.usr.KP_11! Bool) - (top.impl.usr.KP_21! Bool) - (top.impl.usr.KP_31! Bool) - (top.impl.usr.KP_41! Bool) - (top.impl.usr.KP_51! Bool) - (top.impl.usr.KP_61! Bool) - (top.impl.usr.KP_71! Bool) - (top.impl.usr.KP_81! Bool) - (top.impl.usr.KP_91! Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___! Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root! Int) - (top.impl.usr.chart_microwave_mode_logic_mode! Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining! Int) - (top.impl.usr.microwave_microwave_mode_logic_mode! Int) - - ) Bool - - (and - (let - ((X1 - Int top.impl.usr.chart_microwave_mode_logic_final_state_states___root)) - (let - ((X2 Bool (= X1 4))) - (let - ((X3 Bool (and top.usr.KP_START! (not top.usr.KP_START)))) - (let - ((X4 Int (ite (not X3) 0 1))) - (let - ((X5 - Bool (ite - (= 1 top.impl.usr.microwave_microwave_mode_logic_mode) - true - false))) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - X5) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (ite - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!) - true - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock - false - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step))) - (= top.impl.usr.KP_91! top.usr.KP_9!) - (= top.impl.usr.KP_81! top.usr.KP_8!) - (= top.impl.usr.KP_71! top.usr.KP_7!) - (= top.impl.usr.KP_61! top.usr.KP_6!) - (= top.impl.usr.KP_51! top.usr.KP_5!) - (= top.impl.usr.KP_41! top.usr.KP_4!) - (= top.impl.usr.KP_31! top.usr.KP_3!) - (= top.impl.usr.KP_21! top.usr.KP_2!) - (= top.impl.usr.KP_11! top.usr.KP_1!) - (= top.impl.usr.KP_01! top.usr.KP_0!) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01! - 0 - (ite - top.impl.usr.KP_11! - 1 - (ite - top.impl.usr.KP_21! - 2 - (ite - top.impl.usr.KP_31! - 3 - (ite - top.impl.usr.KP_41! - 4 - (ite - top.impl.usr.KP_51! - 5 - (ite - top.impl.usr.KP_61! - 6 - (ite - top.impl.usr.KP_71! - 7 - (ite - top.impl.usr.KP_81! - 8 - (ite top.impl.usr.KP_91! 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01! - 0 - (ite - top.impl.usr.KP_11! - 1 - (ite - top.impl.usr.KP_21! - 2 - (ite - top.impl.usr.KP_31! - 3 - (ite - top.impl.usr.KP_41! - 4 - (ite - top.impl.usr.KP_51! - 5 - (ite - top.impl.usr.KP_61! - 6 - (ite - top.impl.usr.KP_71! - 7 - (ite - top.impl.usr.KP_81! - 8 - (ite top.impl.usr.KP_91! 9 10)))))))))) - 0)) - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - 0 - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - 0 - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.STEPS_TO_COOK! - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!)) - 0 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! - 60)) - 1) - top.impl.usr.STEPS_TO_COOK))) - (let - ((X6 - Bool (and - X2 - (and - (= X1 4) - (and - (ite (not (= X4 0)) true false) - (ite - (not - (= (ite (not (> top.impl.usr.STEPS_TO_COOK! 0)) 0 1) 0)) - true - false)))))) - (let - ((X7 Int (ite X6 (ite (= X1 4) 0 X1) X1))) - (let - ((X8 Int (ite (not (and (>= X7 1) (<= X7 3))) 1 X7))) - (let - ((X9 - Bool (and - (not (and (>= X7 1) (<= X7 3))) - (and (>= X8 1) (<= X8 3))))) - (let - ((X10 Int (ite (not top.usr.DOOR_CLOSED!) 0 1))) - (let - ((X11 - Bool (and - X9 - (and - (and (>= X8 1) (<= X8 3)) - (ite (not (= X10 0)) true false))))) - (let - ((X12 Int (ite X11 (ite (not (= X8 2)) 2 X8) X8))) - (let - ((X13 - Bool (and X9 (and (and (>= X12 1) (<= X12 3)) (not X11))))) - (let - ((X14 Int (ite X13 (ite (not (= X12 3)) 3 X12) X12))) - (and - (= top.usr.OK! (or (= X14 2) (= X14 3))) - (let - ((X15 - Int top.impl.usr.chart_microwave_mode_logic_steps_remaining)) - (let - ((X16 Int top.impl.usr.chart_microwave_mode_logic_mode)) - (and - (= - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - false - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep)) - (let - ((X17 Int (ite X11 (ite (not (= X8 2)) 2 X16) X16))) - (let - ((X18 - Int (ite - X6 - (ite X13 (ite (not (= X12 3)) 3 X17) X17) - X16))) - (let - ((X19 Int (ite X6 X14 X7))) - (let - ((X20 Int (ite X2 top.impl.usr.STEPS_TO_COOK! X15))) - (let - ((X21 - Bool (and (and (= X19 2) (<= X20 0)) (= X19 2)))) - (let - ((X22 - Int (ite - X21 - (ite (and (>= X19 1) (<= X19 3)) 0 X19) - X19))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 4)) 4 X22) X22))) - (let - ((X24 - Bool (and - (= X23 3) - (and - (and - (ite (not (= X4 0)) true false) - (ite (not (= X10 0)) true false)) - (not X21))))) - (let - ((X25 Int (ite X24 (ite (= X23 3) 1 X23) X23))) - (let - ((X26 - Int (ite - X24 - (ite (not (= X25 2)) 2 X25) - X25))) - (let - ((X27 Bool (or X24 X21))) - (let - ((X28 - Bool (and - top.usr.KP_CLEAR! - (not top.usr.KP_CLEAR)))) - (let - ((X29 Int (ite (not X28) 0 1))) - (let - ((X30 - Bool (and - (and - (= X26 3) - (and - (ite - (not (= X29 0)) - true - false) - (not X27))) - (and (= X26 3) (not X27))))) - (let - ((X31 - Int (ite - X30 - (ite - (and (>= X26 1) (<= X26 3)) - 0 - X26) - X26))) - (let - ((X32 - Int (ite - X30 - (ite (not (= X31 4)) 4 X31) - X31))) - (let - ((X33 Int (ite X30 0 X20))) - (let - ((X34 Bool (or X30 X27))) - (let - ((X35 - Bool (and - (= X32 2) - (and (> X33 0) (not X34))))) - (let - ((X36 - Int (ite - X35 - (ite (= X32 2) 1 X32) - X32))) - (let - ((X37 - Int (ite - X21 - (ite (not (= X22 4)) 1 X18) - X18))) - (let - ((X38 - Int (ite - X24 - (ite - (not (= X25 2)) - 2 - X37) - X37))) - (let - ((X39 - Int (ite - X30 - (ite - (not (= X31 4)) - 1 - X38) - X38))) - (let - ((X40 - Int (ite - X35 - (ite - (not (= X36 2)) - 2 - X39) - X39))) - (let - ((X41 - Int (ite - X35 - (ite - (not (= X36 2)) - 2 - X36) - X36))) - (let - ((X42 - Bool (and - (= X41 2) - (and - (or - (ite - (not (= X29 0)) - true - false) - (not - (ite - (not (= X10 0)) - true - false))) - (not (or X35 X34)))))) - (let - ((X43 - Int (ite - X42 - (ite (= X41 2) 1 X41) - X41))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup___! - true) - (= - top.impl.usr.chart_microwave_mode_logic_mode! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - (ite - (not (= X1 4)) - 1 - X16) - (ite - (and - (not X6) - (and - (>= X19 1) - (<= X19 3))) - (ite - X42 - (ite - (not (= X43 3)) - 3 - X40) - X40) - X18)) - X16)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode! - top.impl.usr.chart_microwave_mode_logic_mode!) - (let - ((X44 - Int (ite - (not (= X1 4)) - 4 - X1))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - X44 - (ite - (and - (not X6) - (and - (>= X19 1) - (<= X19 3))) - (ite - X42 - (ite - (not (= X43 3)) - 3 - X43) - X43) - X19)) - X1)) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - X15 - (ite - (and - (not X6) - (and - (>= X19 1) - (<= X19 3))) - (ite - X35 - (- X33 1) - X33) - X20)) - X15)) - (<= 0 X29 1) - (<= 0 X10 1) - (<= 0 X4 1) - (not top.res.init_flag!)))))))))))))))))))))))))))))))))))))))))))))))))) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - ) Bool - - top.usr.OK -) +(define-fun __node_init_top_0 ((top.usr.KP_START_a_0 Bool) (top.usr.KP_CLEAR_a_0 Bool) (top.usr.KP_0_a_0 Bool) (top.usr.KP_1_a_0 Bool) (top.usr.KP_2_a_0 Bool) (top.usr.KP_3_a_0 Bool) (top.usr.KP_4_a_0 Bool) (top.usr.KP_5_a_0 Bool) (top.usr.KP_6_a_0 Bool) (top.usr.KP_7_a_0 Bool) (top.usr.KP_8_a_0 Bool) (top.usr.KP_9_a_0 Bool) (top.usr.DOOR_CLOSED_a_0 Bool) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.STEPS_TO_COOK_a_0 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) (top.impl.usr.KP_01_a_0 Bool) (top.impl.usr.KP_11_a_0 Bool) (top.impl.usr.KP_21_a_0 Bool) (top.impl.usr.KP_31_a_0 Bool) (top.impl.usr.KP_41_a_0 Bool) (top.impl.usr.KP_51_a_0 Bool) (top.impl.usr.KP_61_a_0 Bool) (top.impl.usr.KP_71_a_0 Bool) (top.impl.usr.KP_81_a_0 Bool) (top.impl.usr.KP_91_a_0 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int)) Bool + (let ((X1 0)) (let ((X2 (= X1 4))) (let ((X3 top.usr.KP_START_a_0)) (let ((X4 (ite (not X3) 0 1))) (and (= top.impl.usr.KP_91_a_0 top.usr.KP_9_a_0) (= top.impl.usr.KP_81_a_0 top.usr.KP_8_a_0) (= top.impl.usr.KP_71_a_0 top.usr.KP_7_a_0) (= top.impl.usr.KP_61_a_0 top.usr.KP_6_a_0) (= top.impl.usr.KP_51_a_0 top.usr.KP_5_a_0) (= top.impl.usr.KP_41_a_0 top.usr.KP_4_a_0) (= top.impl.usr.KP_31_a_0 top.usr.KP_3_a_0) (= top.impl.usr.KP_21_a_0 top.usr.KP_2_a_0) (= top.impl.usr.KP_11_a_0 top.usr.KP_1_a_0) (= top.impl.usr.KP_01_a_0 top.usr.KP_0_a_0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 (ite top.usr.KP_CLEAR_a_0 0 (ite (ite (<= (ite top.impl.usr.KP_01_a_0 0 (ite top.impl.usr.KP_11_a_0 1 (ite top.impl.usr.KP_21_a_0 2 (ite top.impl.usr.KP_31_a_0 3 (ite top.impl.usr.KP_41_a_0 4 (ite top.impl.usr.KP_51_a_0 5 (ite top.impl.usr.KP_61_a_0 6 (ite top.impl.usr.KP_71_a_0 7 (ite top.impl.usr.KP_81_a_0 8 (ite top.impl.usr.KP_91_a_0 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01_a_0 0 (ite top.impl.usr.KP_11_a_0 1 (ite top.impl.usr.KP_21_a_0 2 (ite top.impl.usr.KP_31_a_0 3 (ite top.impl.usr.KP_41_a_0 4 (ite top.impl.usr.KP_51_a_0 5 (ite top.impl.usr.KP_61_a_0 6 (ite top.impl.usr.KP_71_a_0 7 (ite top.impl.usr.KP_81_a_0 8 (ite top.impl.usr.KP_91_a_0 9 10)))))))))) 0))) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 0) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 true) (let ((X5 true)) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 X5) (= top.impl.usr.STEPS_TO_COOK_a_0 (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0)) 0 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 60)) 1))) (let ((X6 (and X2 (and (= X1 4) (and (ite (not (= X4 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK_a_0 0)) 0 1) 0)) true false)))))) (let ((X7 (ite X6 (ite (= X1 4) 0 X1) X1))) (let ((X8 (ite (not (and (>= X7 1) (<= X7 3))) 1 X7))) (let ((X9 (and (not (and (>= X7 1) (<= X7 3))) (and (>= X8 1) (<= X8 3))))) (let ((X10 (ite (not top.usr.DOOR_CLOSED_a_0) 0 1))) (let ((X11 (and X9 (and (and (>= X8 1) (<= X8 3)) (ite (not (= X10 0)) true false))))) (let ((X12 (ite X11 (ite (not (= X8 2)) 2 X8) X8))) (let ((X13 (and X9 (and (and (>= X12 1) (<= X12 3)) (not X11))))) (let ((X14 (ite X13 (ite (not (= X12 3)) 3 X12) X12))) (and (= top.usr.OK_a_0 (or (= X14 2) (= X14 3))) (let ((X15 0)) (let ((X16 0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 true) (let ((X17 (ite X11 (ite (not (= X8 2)) 2 X16) X16))) (let ((X18 (ite X6 (ite X13 (ite (not (= X12 3)) 3 X17) X17) X16))) (let ((X19 (ite X6 X14 X7))) (let ((X20 (ite X2 top.impl.usr.STEPS_TO_COOK_a_0 X15))) (let ((X21 (and (and (= X19 2) (<= X20 0)) (= X19 2)))) (let ((X22 (ite X21 (ite (and (>= X19 1) (<= X19 3)) 0 X19) X19))) (let ((X23 (ite X21 (ite (not (= X22 4)) 4 X22) X22))) (let ((X24 (and (= X23 3) (and (and (ite (not (= X4 0)) true false) (ite (not (= X10 0)) true false)) (not X21))))) (let ((X25 (ite X24 (ite (= X23 3) 1 X23) X23))) (let ((X26 (ite X24 (ite (not (= X25 2)) 2 X25) X25))) (let ((X27 (or X24 X21))) (let ((X28 top.usr.KP_CLEAR_a_0)) (let ((X29 (ite (not X28) 0 1))) (let ((X30 (and (and (= X26 3) (and (ite (not (= X29 0)) true false) (not X27))) (and (= X26 3) (not X27))))) (let ((X31 (ite X30 (ite (and (>= X26 1) (<= X26 3)) 0 X26) X26))) (let ((X32 (ite X30 (ite (not (= X31 4)) 4 X31) X31))) (let ((X33 (ite X30 0 X20))) (let ((X34 (or X30 X27))) (let ((X35 (and (= X32 2) (and (> X33 0) (not X34))))) (let ((X36 (ite X35 (ite (= X32 2) 1 X32) X32))) (let ((X37 (ite X21 (ite (not (= X22 4)) 1 X18) X18))) (let ((X38 (ite X24 (ite (not (= X25 2)) 2 X37) X37))) (let ((X39 (ite X30 (ite (not (= X31 4)) 1 X38) X38))) (let ((X40 (ite X35 (ite (not (= X36 2)) 2 X39) X39))) (let ((X41 (ite X35 (ite (not (= X36 2)) 2 X36) X36))) (let ((X42 (and (= X41 2) (and (or (ite (not (= X29 0)) true false) (not (ite (not (= X10 0)) true false))) (not (or X35 X34)))))) (let ((X43 (ite X42 (ite (= X41 2) 1 X41) X41))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 true) (= top.impl.usr.chart_microwave_mode_logic_mode_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 (ite (not (= X1 4)) 1 X16) (ite (and (not X6) (and (>= X19 1) (<= X19 3))) (ite X42 (ite (not (= X43 3)) 3 X40) X40) X18)) X16)) (= top.impl.usr.microwave_microwave_mode_logic_mode_a_0 top.impl.usr.chart_microwave_mode_logic_mode_a_0) (let ((X44 (ite (not (= X1 4)) 4 X1))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 X44 (ite (and (not X6) (and (>= X19 1) (<= X19 3))) (ite X42 (ite (not (= X43 3)) 3 X43) X43) X19)) X1)) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 X15 (ite (and (not X6) (and (>= X19 1) (<= X19 3))) (ite X35 (- X33 1) X33) X20)) X15)) (<= 0 X29 1) (<= 0 X10 1) (<= 0 X4 1) top.res.init_flag_a_0))))))))))))))))))))))))))))))))))))))))))))))))))) +(define-fun __node_trans_top_0 ((top.usr.KP_START_a_1 Bool) (top.usr.KP_CLEAR_a_1 Bool) (top.usr.KP_0_a_1 Bool) (top.usr.KP_1_a_1 Bool) (top.usr.KP_2_a_1 Bool) (top.usr.KP_3_a_1 Bool) (top.usr.KP_4_a_1 Bool) (top.usr.KP_5_a_1 Bool) (top.usr.KP_6_a_1 Bool) (top.usr.KP_7_a_1 Bool) (top.usr.KP_8_a_1 Bool) (top.usr.KP_9_a_1 Bool) (top.usr.DOOR_CLOSED_a_1 Bool) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.STEPS_TO_COOK_a_1 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 Bool) (top.impl.usr.KP_01_a_1 Bool) (top.impl.usr.KP_11_a_1 Bool) (top.impl.usr.KP_21_a_1 Bool) (top.impl.usr.KP_31_a_1 Bool) (top.impl.usr.KP_41_a_1 Bool) (top.impl.usr.KP_51_a_1 Bool) (top.impl.usr.KP_61_a_1 Bool) (top.impl.usr.KP_71_a_1 Bool) (top.impl.usr.KP_81_a_1 Bool) (top.impl.usr.KP_91_a_1 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_1 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_1 Int) (top.usr.KP_START_a_0 Bool) (top.usr.KP_CLEAR_a_0 Bool) (top.usr.KP_0_a_0 Bool) (top.usr.KP_1_a_0 Bool) (top.usr.KP_2_a_0 Bool) (top.usr.KP_3_a_0 Bool) (top.usr.KP_4_a_0 Bool) (top.usr.KP_5_a_0 Bool) (top.usr.KP_6_a_0 Bool) (top.usr.KP_7_a_0 Bool) (top.usr.KP_8_a_0 Bool) (top.usr.KP_9_a_0 Bool) (top.usr.DOOR_CLOSED_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.STEPS_TO_COOK_a_0 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) (top.impl.usr.KP_01_a_0 Bool) (top.impl.usr.KP_11_a_0 Bool) (top.impl.usr.KP_21_a_0 Bool) (top.impl.usr.KP_31_a_0 Bool) (top.impl.usr.KP_41_a_0 Bool) (top.impl.usr.KP_51_a_0 Bool) (top.impl.usr.KP_61_a_0 Bool) (top.impl.usr.KP_71_a_0 Bool) (top.impl.usr.KP_81_a_0 Bool) (top.impl.usr.KP_91_a_0 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int)) Bool + (let ((X1 top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0)) (let ((X2 (= X1 4))) (let ((X3 (and top.usr.KP_START_a_1 (not top.usr.KP_START_a_0)))) (let ((X4 (ite (not X3) 0 1))) (let ((X5 (ite (= 1 top.impl.usr.microwave_microwave_mode_logic_mode_a_0) true false))) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 X5) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (ite (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1) true (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 false top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0))) (= top.impl.usr.KP_91_a_1 top.usr.KP_9_a_1) (= top.impl.usr.KP_81_a_1 top.usr.KP_8_a_1) (= top.impl.usr.KP_71_a_1 top.usr.KP_7_a_1) (= top.impl.usr.KP_61_a_1 top.usr.KP_6_a_1) (= top.impl.usr.KP_51_a_1 top.usr.KP_5_a_1) (= top.impl.usr.KP_41_a_1 top.usr.KP_4_a_1) (= top.impl.usr.KP_31_a_1 top.usr.KP_3_a_1) (= top.impl.usr.KP_21_a_1 top.usr.KP_2_a_1) (= top.impl.usr.KP_11_a_1 top.usr.KP_1_a_1) (= top.impl.usr.KP_01_a_1 top.usr.KP_0_a_1) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite top.impl.usr.KP_01_a_1 0 (ite top.impl.usr.KP_11_a_1 1 (ite top.impl.usr.KP_21_a_1 2 (ite top.impl.usr.KP_31_a_1 3 (ite top.impl.usr.KP_41_a_1 4 (ite top.impl.usr.KP_51_a_1 5 (ite top.impl.usr.KP_61_a_1 6 (ite top.impl.usr.KP_71_a_1 7 (ite top.impl.usr.KP_81_a_1 8 (ite top.impl.usr.KP_91_a_1 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01_a_1 0 (ite top.impl.usr.KP_11_a_1 1 (ite top.impl.usr.KP_21_a_1 2 (ite top.impl.usr.KP_31_a_1 3 (ite top.impl.usr.KP_41_a_1 4 (ite top.impl.usr.KP_51_a_1 5 (ite top.impl.usr.KP_61_a_1 6 (ite top.impl.usr.KP_71_a_1 7 (ite top.impl.usr.KP_81_a_1 8 (ite top.impl.usr.KP_91_a_1 9 10)))))))))) 0)) (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 0 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 0 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.STEPS_TO_COOK_a_1 (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1)) 0 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 60)) 1) top.impl.usr.STEPS_TO_COOK_a_0))) (let ((X6 (and X2 (and (= X1 4) (and (ite (not (= X4 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK_a_1 0)) 0 1) 0)) true false)))))) (let ((X7 (ite X6 (ite (= X1 4) 0 X1) X1))) (let ((X8 (ite (not (and (>= X7 1) (<= X7 3))) 1 X7))) (let ((X9 (and (not (and (>= X7 1) (<= X7 3))) (and (>= X8 1) (<= X8 3))))) (let ((X10 (ite (not top.usr.DOOR_CLOSED_a_1) 0 1))) (let ((X11 (and X9 (and (and (>= X8 1) (<= X8 3)) (ite (not (= X10 0)) true false))))) (let ((X12 (ite X11 (ite (not (= X8 2)) 2 X8) X8))) (let ((X13 (and X9 (and (and (>= X12 1) (<= X12 3)) (not X11))))) (let ((X14 (ite X13 (ite (not (= X12 3)) 3 X12) X12))) (and (= top.usr.OK_a_1 (or (= X14 2) (= X14 3))) (let ((X15 top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0)) (let ((X16 top.impl.usr.chart_microwave_mode_logic_mode_a_0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 false top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0)) (let ((X17 (ite X11 (ite (not (= X8 2)) 2 X16) X16))) (let ((X18 (ite X6 (ite X13 (ite (not (= X12 3)) 3 X17) X17) X16))) (let ((X19 (ite X6 X14 X7))) (let ((X20 (ite X2 top.impl.usr.STEPS_TO_COOK_a_1 X15))) (let ((X21 (and (and (= X19 2) (<= X20 0)) (= X19 2)))) (let ((X22 (ite X21 (ite (and (>= X19 1) (<= X19 3)) 0 X19) X19))) (let ((X23 (ite X21 (ite (not (= X22 4)) 4 X22) X22))) (let ((X24 (and (= X23 3) (and (and (ite (not (= X4 0)) true false) (ite (not (= X10 0)) true false)) (not X21))))) (let ((X25 (ite X24 (ite (= X23 3) 1 X23) X23))) (let ((X26 (ite X24 (ite (not (= X25 2)) 2 X25) X25))) (let ((X27 (or X24 X21))) (let ((X28 (and top.usr.KP_CLEAR_a_1 (not top.usr.KP_CLEAR_a_0)))) (let ((X29 (ite (not X28) 0 1))) (let ((X30 (and (and (= X26 3) (and (ite (not (= X29 0)) true false) (not X27))) (and (= X26 3) (not X27))))) (let ((X31 (ite X30 (ite (and (>= X26 1) (<= X26 3)) 0 X26) X26))) (let ((X32 (ite X30 (ite (not (= X31 4)) 4 X31) X31))) (let ((X33 (ite X30 0 X20))) (let ((X34 (or X30 X27))) (let ((X35 (and (= X32 2) (and (> X33 0) (not X34))))) (let ((X36 (ite X35 (ite (= X32 2) 1 X32) X32))) (let ((X37 (ite X21 (ite (not (= X22 4)) 1 X18) X18))) (let ((X38 (ite X24 (ite (not (= X25 2)) 2 X37) X37))) (let ((X39 (ite X30 (ite (not (= X31 4)) 1 X38) X38))) (let ((X40 (ite X35 (ite (not (= X36 2)) 2 X39) X39))) (let ((X41 (ite X35 (ite (not (= X36 2)) 2 X36) X36))) (let ((X42 (and (= X41 2) (and (or (ite (not (= X29 0)) true false) (not (ite (not (= X10 0)) true false))) (not (or X35 X34)))))) (let ((X43 (ite X42 (ite (= X41 2) 1 X41) X41))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 true) (= top.impl.usr.chart_microwave_mode_logic_mode_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 (ite (not (= X1 4)) 1 X16) (ite (and (not X6) (and (>= X19 1) (<= X19 3))) (ite X42 (ite (not (= X43 3)) 3 X40) X40) X18)) X16)) (= top.impl.usr.microwave_microwave_mode_logic_mode_a_1 top.impl.usr.chart_microwave_mode_logic_mode_a_1) (let ((X44 (ite (not (= X1 4)) 4 X1))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 X44 (ite (and (not X6) (and (>= X19 1) (<= X19 3))) (ite X42 (ite (not (= X43 3)) 3 X43) X43) X19)) X1)) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 X15 (ite (and (not X6) (and (>= X19 1) (<= X19 3))) (ite X35 (- X33 1) X33) X20)) X15)) (<= 0 X29 1) (<= 0 X10 1) (<= 0 X4 1) (not top.res.init_flag_a_1))))))))))))))))))))))))))))))))))))))))))))))))))) +(synth-inv str_invariant ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int))) + +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int)) Bool + (let ((X1 0)) (let ((X2 (= X1 4))) (let ((X3 top.usr.KP_START)) (let ((X4 (ite (not X3) 0 1))) (and (= top.impl.usr.KP_91 top.usr.KP_9) (= top.impl.usr.KP_81 top.usr.KP_8) (= top.impl.usr.KP_71 top.usr.KP_7) (= top.impl.usr.KP_61 top.usr.KP_6) (= top.impl.usr.KP_51 top.usr.KP_5) (= top.impl.usr.KP_41 top.usr.KP_4) (= top.impl.usr.KP_31 top.usr.KP_3) (= top.impl.usr.KP_21 top.usr.KP_2) (= top.impl.usr.KP_11 top.usr.KP_1) (= top.impl.usr.KP_01 top.usr.KP_0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY (ite top.usr.KP_CLEAR 0 (ite (ite (<= (ite top.impl.usr.KP_01 0 (ite top.impl.usr.KP_11 1 (ite top.impl.usr.KP_21 2 (ite top.impl.usr.KP_31 3 (ite top.impl.usr.KP_41 4 (ite top.impl.usr.KP_51 5 (ite top.impl.usr.KP_61 6 (ite top.impl.usr.KP_71 7 (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01 0 (ite top.impl.usr.KP_11 1 (ite top.impl.usr.KP_21 2 (ite top.impl.usr.KP_31 3 (ite top.impl.usr.KP_41 4 (ite top.impl.usr.KP_51 5 (ite top.impl.usr.KP_61 6 (ite top.impl.usr.KP_71 7 (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) 0))) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY 0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY 0) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step true) (let ((X5 true)) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock X5) (= top.impl.usr.STEPS_TO_COOK (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock)) 0 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY 60)) 1))) (let ((X6 (and X2 (and (= X1 4) (and (ite (not (= X4 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK 0)) 0 1) 0)) true false)))))) (let ((X7 (ite X6 (ite (= X1 4) 0 X1) X1))) (let ((X8 (ite (not (and (>= X7 1) (<= X7 3))) 1 X7))) (let ((X9 (and (not (and (>= X7 1) (<= X7 3))) (and (>= X8 1) (<= X8 3))))) (let ((X10 (ite (not top.usr.DOOR_CLOSED) 0 1))) (let ((X11 (and X9 (and (and (>= X8 1) (<= X8 3)) (ite (not (= X10 0)) true false))))) (let ((X12 (ite X11 (ite (not (= X8 2)) 2 X8) X8))) (let ((X13 (and X9 (and (and (>= X12 1) (<= X12 3)) (not X11))))) (let ((X14 (ite X13 (ite (not (= X12 3)) 3 X12) X12))) (and (= top.usr.OK (or (= X14 2) (= X14 3))) (let ((X15 0)) (let ((X16 0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep true) (let ((X17 (ite X11 (ite (not (= X8 2)) 2 X16) X16))) (let ((X18 (ite X6 (ite X13 (ite (not (= X12 3)) 3 X17) X17) X16))) (let ((X19 (ite X6 X14 X7))) (let ((X20 (ite X2 top.impl.usr.STEPS_TO_COOK X15))) (let ((X21 (and (and (= X19 2) (<= X20 0)) (= X19 2)))) (let ((X22 (ite X21 (ite (and (>= X19 1) (<= X19 3)) 0 X19) X19))) (let ((X23 (ite X21 (ite (not (= X22 4)) 4 X22) X22))) (let ((X24 (and (= X23 3) (and (and (ite (not (= X4 0)) true false) (ite (not (= X10 0)) true false)) (not X21))))) (let ((X25 (ite X24 (ite (= X23 3) 1 X23) X23))) (let ((X26 (ite X24 (ite (not (= X25 2)) 2 X25) X25))) (let ((X27 (or X24 X21))) (let ((X28 top.usr.KP_CLEAR)) (let ((X29 (ite (not X28) 0 1))) (let ((X30 (and (and (= X26 3) (and (ite (not (= X29 0)) true false) (not X27))) (and (= X26 3) (not X27))))) (let ((X31 (ite X30 (ite (and (>= X26 1) (<= X26 3)) 0 X26) X26))) (let ((X32 (ite X30 (ite (not (= X31 4)) 4 X31) X31))) (let ((X33 (ite X30 0 X20))) (let ((X34 (or X30 X27))) (let ((X35 (and (= X32 2) (and (> X33 0) (not X34))))) (let ((X36 (ite X35 (ite (= X32 2) 1 X32) X32))) (let ((X37 (ite X21 (ite (not (= X22 4)) 1 X18) X18))) (let ((X38 (ite X24 (ite (not (= X25 2)) 2 X37) X37))) (let ((X39 (ite X30 (ite (not (= X31 4)) 1 X38) X38))) (let ((X40 (ite X35 (ite (not (= X36 2)) 2 X39) X39))) (let ((X41 (ite X35 (ite (not (= X36 2)) 2 X36) X36))) (let ((X42 (and (= X41 2) (and (or (ite (not (= X29 0)) true false) (not (ite (not (= X10 0)) true false))) (not (or X35 X34)))))) (let ((X43 (ite X42 (ite (= X41 2) 1 X41) X41))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup___ true) (= top.impl.usr.chart_microwave_mode_logic_mode (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep (ite (not (= X1 4)) 1 X16) (ite (and (not X6) (and (>= X19 1) (<= X19 3))) (ite X42 (ite (not (= X43 3)) 3 X40) X40) X18)) X16)) (= top.impl.usr.microwave_microwave_mode_logic_mode top.impl.usr.chart_microwave_mode_logic_mode) (let ((X44 (ite (not (= X1 4)) 4 X1))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep X44 (ite (and (not X6) (and (>= X19 1) (<= X19 3))) (ite X42 (ite (not (= X43 3)) 3 X43) X43) X19)) X1)) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep X15 (ite (and (not X6) (and (>= X19 1) (<= X19 3))) (ite X35 (- X33 1) X33) X20)) X15)) (<= 0 X29 1) (<= 0 X10 1) (<= 0 X4 1) top.res.init_flag))))))))))))))))))))))))))))))))))))))))))))))))))) +(define-fun trans ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int) (top.usr.KP_START! Bool) (top.usr.KP_CLEAR! Bool) (top.usr.KP_0! Bool) (top.usr.KP_1! Bool) (top.usr.KP_2! Bool) (top.usr.KP_3! Bool) (top.usr.KP_4! Bool) (top.usr.KP_5! Bool) (top.usr.KP_6! Bool) (top.usr.KP_7! Bool) (top.usr.KP_8! Bool) (top.usr.KP_9! Bool) (top.usr.DOOR_CLOSED! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.STEPS_TO_COOK! Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! Bool) (top.impl.usr.KP_01! Bool) (top.impl.usr.KP_11! Bool) (top.impl.usr.KP_21! Bool) (top.impl.usr.KP_31! Bool) (top.impl.usr.KP_41! Bool) (top.impl.usr.KP_51! Bool) (top.impl.usr.KP_61! Bool) (top.impl.usr.KP_71! Bool) (top.impl.usr.KP_81! Bool) (top.impl.usr.KP_91! Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___! Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root! Int) (top.impl.usr.chart_microwave_mode_logic_mode! Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining! Int) (top.impl.usr.microwave_microwave_mode_logic_mode! Int)) Bool + (and (let ((X1 top.impl.usr.chart_microwave_mode_logic_final_state_states___root)) (let ((X2 (= X1 4))) (let ((X3 (and top.usr.KP_START! (not top.usr.KP_START)))) (let ((X4 (ite (not X3) 0 1))) (let ((X5 (ite (= 1 top.impl.usr.microwave_microwave_mode_logic_mode) true false))) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! X5) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (ite (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!) true (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock false top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step))) (= top.impl.usr.KP_91! top.usr.KP_9!) (= top.impl.usr.KP_81! top.usr.KP_8!) (= top.impl.usr.KP_71! top.usr.KP_7!) (= top.impl.usr.KP_61! top.usr.KP_6!) (= top.impl.usr.KP_51! top.usr.KP_5!) (= top.impl.usr.KP_41! top.usr.KP_4!) (= top.impl.usr.KP_31! top.usr.KP_3!) (= top.impl.usr.KP_21! top.usr.KP_2!) (= top.impl.usr.KP_11! top.usr.KP_1!) (= top.impl.usr.KP_01! top.usr.KP_0!) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite top.impl.usr.KP_01! 0 (ite top.impl.usr.KP_11! 1 (ite top.impl.usr.KP_21! 2 (ite top.impl.usr.KP_31! 3 (ite top.impl.usr.KP_41! 4 (ite top.impl.usr.KP_51! 5 (ite top.impl.usr.KP_61! 6 (ite top.impl.usr.KP_71! 7 (ite top.impl.usr.KP_81! 8 (ite top.impl.usr.KP_91! 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01! 0 (ite top.impl.usr.KP_11! 1 (ite top.impl.usr.KP_21! 2 (ite top.impl.usr.KP_31! 3 (ite top.impl.usr.KP_41! 4 (ite top.impl.usr.KP_51! 5 (ite top.impl.usr.KP_61! 6 (ite top.impl.usr.KP_71! 7 (ite top.impl.usr.KP_81! 8 (ite top.impl.usr.KP_91! 9 10)))))))))) 0)) (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! 0 (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! 0 (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.STEPS_TO_COOK! (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!)) 0 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! 60)) 1) top.impl.usr.STEPS_TO_COOK))) (let ((X6 (and X2 (and (= X1 4) (and (ite (not (= X4 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK! 0)) 0 1) 0)) true false)))))) (let ((X7 (ite X6 (ite (= X1 4) 0 X1) X1))) (let ((X8 (ite (not (and (>= X7 1) (<= X7 3))) 1 X7))) (let ((X9 (and (not (and (>= X7 1) (<= X7 3))) (and (>= X8 1) (<= X8 3))))) (let ((X10 (ite (not top.usr.DOOR_CLOSED!) 0 1))) (let ((X11 (and X9 (and (and (>= X8 1) (<= X8 3)) (ite (not (= X10 0)) true false))))) (let ((X12 (ite X11 (ite (not (= X8 2)) 2 X8) X8))) (let ((X13 (and X9 (and (and (>= X12 1) (<= X12 3)) (not X11))))) (let ((X14 (ite X13 (ite (not (= X12 3)) 3 X12) X12))) (and (= top.usr.OK! (or (= X14 2) (= X14 3))) (let ((X15 top.impl.usr.chart_microwave_mode_logic_steps_remaining)) (let ((X16 top.impl.usr.chart_microwave_mode_logic_mode)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ false top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep)) (let ((X17 (ite X11 (ite (not (= X8 2)) 2 X16) X16))) (let ((X18 (ite X6 (ite X13 (ite (not (= X12 3)) 3 X17) X17) X16))) (let ((X19 (ite X6 X14 X7))) (let ((X20 (ite X2 top.impl.usr.STEPS_TO_COOK! X15))) (let ((X21 (and (and (= X19 2) (<= X20 0)) (= X19 2)))) (let ((X22 (ite X21 (ite (and (>= X19 1) (<= X19 3)) 0 X19) X19))) (let ((X23 (ite X21 (ite (not (= X22 4)) 4 X22) X22))) (let ((X24 (and (= X23 3) (and (and (ite (not (= X4 0)) true false) (ite (not (= X10 0)) true false)) (not X21))))) (let ((X25 (ite X24 (ite (= X23 3) 1 X23) X23))) (let ((X26 (ite X24 (ite (not (= X25 2)) 2 X25) X25))) (let ((X27 (or X24 X21))) (let ((X28 (and top.usr.KP_CLEAR! (not top.usr.KP_CLEAR)))) (let ((X29 (ite (not X28) 0 1))) (let ((X30 (and (and (= X26 3) (and (ite (not (= X29 0)) true false) (not X27))) (and (= X26 3) (not X27))))) (let ((X31 (ite X30 (ite (and (>= X26 1) (<= X26 3)) 0 X26) X26))) (let ((X32 (ite X30 (ite (not (= X31 4)) 4 X31) X31))) (let ((X33 (ite X30 0 X20))) (let ((X34 (or X30 X27))) (let ((X35 (and (= X32 2) (and (> X33 0) (not X34))))) (let ((X36 (ite X35 (ite (= X32 2) 1 X32) X32))) (let ((X37 (ite X21 (ite (not (= X22 4)) 1 X18) X18))) (let ((X38 (ite X24 (ite (not (= X25 2)) 2 X37) X37))) (let ((X39 (ite X30 (ite (not (= X31 4)) 1 X38) X38))) (let ((X40 (ite X35 (ite (not (= X36 2)) 2 X39) X39))) (let ((X41 (ite X35 (ite (not (= X36 2)) 2 X36) X36))) (let ((X42 (and (= X41 2) (and (or (ite (not (= X29 0)) true false) (not (ite (not (= X10 0)) true false))) (not (or X35 X34)))))) (let ((X43 (ite X42 (ite (= X41 2) 1 X41) X41))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup___! true) (= top.impl.usr.chart_microwave_mode_logic_mode! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! (ite (not (= X1 4)) 1 X16) (ite (and (not X6) (and (>= X19 1) (<= X19 3))) (ite X42 (ite (not (= X43 3)) 3 X40) X40) X18)) X16)) (= top.impl.usr.microwave_microwave_mode_logic_mode! top.impl.usr.chart_microwave_mode_logic_mode!) (let ((X44 (ite (not (= X1 4)) 4 X1))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! X44 (ite (and (not X6) (and (>= X19 1) (<= X19 3))) (ite X42 (ite (not (= X43 3)) 3 X43) X43) X19)) X1)) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! X15 (ite (and (not X6) (and (>= X19 1) (<= X19 3))) (ite X35 (- X33 1) X33) X20)) X15)) (<= 0 X29 1) (<= 0 X10 1) (<= 0 X4 1) (not top.res.init_flag!)))))))))))))))))))))))))))))))))))))))))))))))))) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/microwave02.sl b/benchmarks/LIA/Lustre/microwave02.sl index ab62e41..bc9de64 100644 --- a/benchmarks/LIA/Lustre/microwave02.sl +++ b/benchmarks/LIA/Lustre/microwave02.sl @@ -1,2482 +1,25 @@ (set-logic LIA) -(define-fun - __node_init_top_0 ( - (top.usr.KP_START_a_0 Bool) - (top.usr.KP_CLEAR_a_0 Bool) - (top.usr.KP_0_a_0 Bool) - (top.usr.KP_1_a_0 Bool) - (top.usr.KP_2_a_0 Bool) - (top.usr.KP_3_a_0 Bool) - (top.usr.KP_4_a_0 Bool) - (top.usr.KP_5_a_0 Bool) - (top.usr.KP_6_a_0 Bool) - (top.usr.KP_7_a_0 Bool) - (top.usr.KP_8_a_0 Bool) - (top.usr.KP_9_a_0 Bool) - (top.usr.DOOR_CLOSED_a_0 Bool) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.STEPS_TO_COOK_a_0 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) - (top.impl.usr.KP_01_a_0 Bool) - (top.impl.usr.KP_11_a_0 Bool) - (top.impl.usr.KP_21_a_0 Bool) - (top.impl.usr.KP_31_a_0 Bool) - (top.impl.usr.KP_41_a_0 Bool) - (top.impl.usr.KP_51_a_0 Bool) - (top.impl.usr.KP_61_a_0 Bool) - (top.impl.usr.KP_71_a_0 Bool) - (top.impl.usr.KP_81_a_0 Bool) - (top.impl.usr.KP_91_a_0 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int) - ) Bool - - (let - ((X1 Int 0)) - (let - ((X2 Int (ite (not (= X1 4)) 4 X1))) - (and - (= top.usr.OK_a_0 (or (and (>= X2 1) (<= X2 3)) (= X2 4))) - (let - ((X3 Int 0)) - (and - (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 true) - (let - ((X4 Bool (= X1 4))) - (let - ((X5 Bool top.usr.KP_START_a_0)) - (let - ((X6 Int (ite (not X5) 0 1))) - (and - (= top.impl.usr.KP_91_a_0 top.usr.KP_9_a_0) - (= top.impl.usr.KP_81_a_0 top.usr.KP_8_a_0) - (= top.impl.usr.KP_71_a_0 top.usr.KP_7_a_0) - (= top.impl.usr.KP_61_a_0 top.usr.KP_6_a_0) - (= top.impl.usr.KP_51_a_0 top.usr.KP_5_a_0) - (= top.impl.usr.KP_41_a_0 top.usr.KP_4_a_0) - (= top.impl.usr.KP_31_a_0 top.usr.KP_3_a_0) - (= top.impl.usr.KP_21_a_0 top.usr.KP_2_a_0) - (= top.impl.usr.KP_11_a_0 top.usr.KP_1_a_0) - (= top.impl.usr.KP_01_a_0 top.usr.KP_0_a_0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - (ite - top.usr.KP_CLEAR_a_0 - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01_a_0 - 0 - (ite - top.impl.usr.KP_11_a_0 - 1 - (ite - top.impl.usr.KP_21_a_0 - 2 - (ite - top.impl.usr.KP_31_a_0 - 3 - (ite - top.impl.usr.KP_41_a_0 - 4 - (ite - top.impl.usr.KP_51_a_0 - 5 - (ite - top.impl.usr.KP_61_a_0 - 6 - (ite - top.impl.usr.KP_71_a_0 - 7 - (ite - top.impl.usr.KP_81_a_0 - 8 - (ite top.impl.usr.KP_91_a_0 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01_a_0 - 0 - (ite - top.impl.usr.KP_11_a_0 - 1 - (ite - top.impl.usr.KP_21_a_0 - 2 - (ite - top.impl.usr.KP_31_a_0 - 3 - (ite - top.impl.usr.KP_41_a_0 - 4 - (ite - top.impl.usr.KP_51_a_0 - 5 - (ite - top.impl.usr.KP_61_a_0 - 6 - (ite - top.impl.usr.KP_71_a_0 - 7 - (ite - top.impl.usr.KP_81_a_0 - 8 - (ite top.impl.usr.KP_91_a_0 9 10)))))))))) - 0))) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - 0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 0) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 - true) - (let - ((X7 Bool true)) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 - X7) - (= - top.impl.usr.STEPS_TO_COOK_a_0 - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0)) - 0 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 60)) - 1))) - (let - ((X8 - Bool (and - X4 - (and - (= X1 4) - (and - (ite (not (= X6 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK_a_0 0)) 0 1) - 0)) - true - false)))))) - (let - ((X9 Int (ite X8 (ite (= X1 4) 0 X1) X1))) - (let - ((X10 Int (ite (not (and (>= X9 1) (<= X9 3))) 1 X9))) - (let - ((X11 - Bool (and - (not (and (>= X9 1) (<= X9 3))) - (and (>= X10 1) (<= X10 3))))) - (let - ((X12 Int (ite (not top.usr.DOOR_CLOSED_a_0) 0 1))) - (let - ((X13 - Bool (and - X11 - (and - (and (>= X10 1) (<= X10 3)) - (ite (not (= X12 0)) true false))))) - (let - ((X14 Int (ite X13 (ite (not (= X10 2)) 2 X10) X10))) - (let - ((X15 - Bool (and - X11 - (and (and (>= X14 1) (<= X14 3)) (not X13))))) - (let - ((X16 Int (ite X15 (ite (not (= X14 3)) 3 X14) X14))) - (let - ((X17 Int (ite X8 X16 X9))) - (let - ((X18 Int (ite X4 top.impl.usr.STEPS_TO_COOK_a_0 X3))) - (let - ((X19 - Bool (and (and (= X17 2) (<= X18 0)) (= X17 2)))) - (let - ((X20 - Int (ite - X19 - (ite (and (>= X17 1) (<= X17 3)) 0 X17) - X17))) - (let - ((X21 - Int (ite X19 (ite (not (= X20 4)) 4 X20) X20))) - (let - ((X22 - Bool (and - (= X21 3) - (and - (and - (ite (not (= X6 0)) true false) - (ite (not (= X12 0)) true false)) - (not X19))))) - (let - ((X23 Int (ite X22 (ite (= X21 3) 1 X21) X21))) - (let - ((X24 - Int (ite X22 (ite (not (= X23 2)) 2 X23) X23))) - (let - ((X25 Bool (or X22 X19))) - (let - ((X26 Bool top.usr.KP_CLEAR_a_0)) - (let - ((X27 Int (ite (not X26) 0 1))) - (let - ((X28 - Bool (and - (and - (= X24 3) - (and - (ite (not (= X27 0)) true false) - (not X25))) - (and (= X24 3) (not X25))))) - (let - ((X29 - Int (ite - X28 - (ite - (and (>= X24 1) (<= X24 3)) - 0 - X24) - X24))) - (let - ((X30 - Int (ite - X28 - (ite (not (= X29 4)) 4 X29) - X29))) - (let - ((X31 Int (ite X28 0 X18))) - (let - ((X32 Bool (or X28 X25))) - (let - ((X33 - Bool (and - (= X30 2) - (and (> X31 0) (not X32))))) - (let - ((X34 - Int (ite - X33 - (ite (= X30 2) 1 X30) - X30))) - (let - ((X35 - Int (ite - X33 - (ite (not (= X34 2)) 2 X34) - X34))) - (let - ((X36 - Bool (and - (= X35 2) - (and - (or - (ite - (not (= X27 0)) - true - false) - (not - (ite - (not (= X12 0)) - true - false))) - (not (or X33 X32)))))) - (let - ((X37 - Int (ite - X36 - (ite (= X35 2) 1 X35) - X35))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - true) - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - X2 - (ite - (and - (not X8) - (and (>= X17 1) (<= X17 3))) - (ite - X36 - (ite (not (= X37 3)) 3 X37) - X37) - X17)) - X1)) - (let - ((X38 Int 0)) - (let - ((X39 - Int (ite - X13 - (ite - (not (= X10 2)) - 2 - X38) - X38))) - (let - ((X40 - Int (ite - X8 - (ite - X15 - (ite - (not (= X14 3)) - 3 - X39) - X39) - X38))) - (let - ((X41 - Int (ite - X19 - (ite - (not (= X20 4)) - 1 - X40) - X40))) - (let - ((X42 - Int (ite - X22 - (ite - (not (= X23 2)) - 2 - X41) - X41))) - (let - ((X43 - Int (ite - X28 - (ite - (not (= X29 4)) - 1 - X42) - X42))) - (let - ((X44 - Int (ite - X33 - (ite - (not (= X34 2)) - 2 - X43) - X43))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - (ite - (not (= X1 4)) - 1 - X38) - (ite - (and - (not X8) - (and - (>= X17 1) - (<= X17 3))) - (ite - X36 - (ite - (not (= X37 3)) - 3 - X44) - X44) - X40)) - X38)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode_a_0 - top.impl.usr.chart_microwave_mode_logic_mode_a_0) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - X3 - (ite - (and - (not X8) - (and - (>= X17 1) - (<= X17 3))) - (ite - X33 - (- X31 1) - X31) - X18)) - X3)) - (<= 0 X27 1) - (<= 0 X12 1) - (<= 0 X6 1) - top.res.init_flag_a_0)))))))))))))))))))))))))))))))))))))))))))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.KP_START_a_1 Bool) - (top.usr.KP_CLEAR_a_1 Bool) - (top.usr.KP_0_a_1 Bool) - (top.usr.KP_1_a_1 Bool) - (top.usr.KP_2_a_1 Bool) - (top.usr.KP_3_a_1 Bool) - (top.usr.KP_4_a_1 Bool) - (top.usr.KP_5_a_1 Bool) - (top.usr.KP_6_a_1 Bool) - (top.usr.KP_7_a_1 Bool) - (top.usr.KP_8_a_1 Bool) - (top.usr.KP_9_a_1 Bool) - (top.usr.DOOR_CLOSED_a_1 Bool) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.STEPS_TO_COOK_a_1 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 Bool) - (top.impl.usr.KP_01_a_1 Bool) - (top.impl.usr.KP_11_a_1 Bool) - (top.impl.usr.KP_21_a_1 Bool) - (top.impl.usr.KP_31_a_1 Bool) - (top.impl.usr.KP_41_a_1 Bool) - (top.impl.usr.KP_51_a_1 Bool) - (top.impl.usr.KP_61_a_1 Bool) - (top.impl.usr.KP_71_a_1 Bool) - (top.impl.usr.KP_81_a_1 Bool) - (top.impl.usr.KP_91_a_1 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_1 Int) - (top.usr.KP_START_a_0 Bool) - (top.usr.KP_CLEAR_a_0 Bool) - (top.usr.KP_0_a_0 Bool) - (top.usr.KP_1_a_0 Bool) - (top.usr.KP_2_a_0 Bool) - (top.usr.KP_3_a_0 Bool) - (top.usr.KP_4_a_0 Bool) - (top.usr.KP_5_a_0 Bool) - (top.usr.KP_6_a_0 Bool) - (top.usr.KP_7_a_0 Bool) - (top.usr.KP_8_a_0 Bool) - (top.usr.KP_9_a_0 Bool) - (top.usr.DOOR_CLOSED_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.STEPS_TO_COOK_a_0 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) - (top.impl.usr.KP_01_a_0 Bool) - (top.impl.usr.KP_11_a_0 Bool) - (top.impl.usr.KP_21_a_0 Bool) - (top.impl.usr.KP_31_a_0 Bool) - (top.impl.usr.KP_41_a_0 Bool) - (top.impl.usr.KP_51_a_0 Bool) - (top.impl.usr.KP_61_a_0 Bool) - (top.impl.usr.KP_71_a_0 Bool) - (top.impl.usr.KP_81_a_0 Bool) - (top.impl.usr.KP_91_a_0 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int) - ) Bool - - (let - ((X1 - Int top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0)) - (let - ((X2 Int (ite (not (= X1 4)) 4 X1))) - (and - (= top.usr.OK_a_1 (or (and (>= X2 1) (<= X2 3)) (= X2 4))) - (let - ((X3 Int top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0)) - (and - (= - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - false - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0)) - (let - ((X4 Bool (= X1 4))) - (let - ((X5 Bool (and top.usr.KP_START_a_1 (not top.usr.KP_START_a_0)))) - (let - ((X6 Int (ite (not X5) 0 1))) - (let - ((X7 - Bool (ite - (= 1 top.impl.usr.microwave_microwave_mode_logic_mode_a_0) - true - false))) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - X7) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (ite - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1) - true - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 - false - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0))) - (= top.impl.usr.KP_91_a_1 top.usr.KP_9_a_1) - (= top.impl.usr.KP_81_a_1 top.usr.KP_8_a_1) - (= top.impl.usr.KP_71_a_1 top.usr.KP_7_a_1) - (= top.impl.usr.KP_61_a_1 top.usr.KP_6_a_1) - (= top.impl.usr.KP_51_a_1 top.usr.KP_5_a_1) - (= top.impl.usr.KP_41_a_1 top.usr.KP_4_a_1) - (= top.impl.usr.KP_31_a_1 top.usr.KP_3_a_1) - (= top.impl.usr.KP_21_a_1 top.usr.KP_2_a_1) - (= top.impl.usr.KP_11_a_1 top.usr.KP_1_a_1) - (= top.impl.usr.KP_01_a_1 top.usr.KP_0_a_1) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01_a_1 - 0 - (ite - top.impl.usr.KP_11_a_1 - 1 - (ite - top.impl.usr.KP_21_a_1 - 2 - (ite - top.impl.usr.KP_31_a_1 - 3 - (ite - top.impl.usr.KP_41_a_1 - 4 - (ite - top.impl.usr.KP_51_a_1 - 5 - (ite - top.impl.usr.KP_61_a_1 - 6 - (ite - top.impl.usr.KP_71_a_1 - 7 - (ite - top.impl.usr.KP_81_a_1 - 8 - (ite top.impl.usr.KP_91_a_1 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01_a_1 - 0 - (ite - top.impl.usr.KP_11_a_1 - 1 - (ite - top.impl.usr.KP_21_a_1 - 2 - (ite - top.impl.usr.KP_31_a_1 - 3 - (ite - top.impl.usr.KP_41_a_1 - 4 - (ite - top.impl.usr.KP_51_a_1 - 5 - (ite - top.impl.usr.KP_61_a_1 - 6 - (ite - top.impl.usr.KP_71_a_1 - 7 - (ite - top.impl.usr.KP_81_a_1 - 8 - (ite top.impl.usr.KP_91_a_1 9 10)))))))))) - 0)) - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and - top.impl.usr.KP_51_a_1 - (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and - top.impl.usr.KP_61_a_1 - (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and - top.impl.usr.KP_71_a_1 - (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and - top.impl.usr.KP_81_a_1 - (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and - top.impl.usr.KP_71_a_1 - (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and - top.impl.usr.KP_81_a_1 - (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - 0 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and - top.impl.usr.KP_51_a_1 - (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and - top.impl.usr.KP_61_a_1 - (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and - top.impl.usr.KP_71_a_1 - (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and - top.impl.usr.KP_81_a_1 - (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - 0 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and - top.impl.usr.KP_51_a_1 - (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and - top.impl.usr.KP_61_a_1 - (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and - top.impl.usr.KP_71_a_1 - (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and - top.impl.usr.KP_81_a_1 - (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.STEPS_TO_COOK_a_1 - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1)) - 0 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 - 60)) - 1) - top.impl.usr.STEPS_TO_COOK_a_0))) - (let - ((X8 - Bool (and - X4 - (and - (= X1 4) - (and - (ite (not (= X6 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK_a_1 0)) 0 1) - 0)) - true - false)))))) - (let - ((X9 Int (ite X8 (ite (= X1 4) 0 X1) X1))) - (let - ((X10 Int (ite (not (and (>= X9 1) (<= X9 3))) 1 X9))) - (let - ((X11 - Bool (and - (not (and (>= X9 1) (<= X9 3))) - (and (>= X10 1) (<= X10 3))))) - (let - ((X12 Int (ite (not top.usr.DOOR_CLOSED_a_1) 0 1))) - (let - ((X13 - Bool (and - X11 - (and - (and (>= X10 1) (<= X10 3)) - (ite (not (= X12 0)) true false))))) - (let - ((X14 Int (ite X13 (ite (not (= X10 2)) 2 X10) X10))) - (let - ((X15 - Bool (and - X11 - (and (and (>= X14 1) (<= X14 3)) (not X13))))) - (let - ((X16 Int (ite X15 (ite (not (= X14 3)) 3 X14) X14))) - (let - ((X17 Int (ite X8 X16 X9))) - (let - ((X18 Int (ite X4 top.impl.usr.STEPS_TO_COOK_a_1 X3))) - (let - ((X19 - Bool (and (and (= X17 2) (<= X18 0)) (= X17 2)))) - (let - ((X20 - Int (ite - X19 - (ite (and (>= X17 1) (<= X17 3)) 0 X17) - X17))) - (let - ((X21 - Int (ite X19 (ite (not (= X20 4)) 4 X20) X20))) - (let - ((X22 - Bool (and - (= X21 3) - (and - (and - (ite (not (= X6 0)) true false) - (ite (not (= X12 0)) true false)) - (not X19))))) - (let - ((X23 Int (ite X22 (ite (= X21 3) 1 X21) X21))) - (let - ((X24 - Int (ite X22 (ite (not (= X23 2)) 2 X23) X23))) - (let - ((X25 Bool (or X22 X19))) - (let - ((X26 - Bool (and - top.usr.KP_CLEAR_a_1 - (not top.usr.KP_CLEAR_a_0)))) - (let - ((X27 Int (ite (not X26) 0 1))) - (let - ((X28 - Bool (and - (and - (= X24 3) - (and - (ite (not (= X27 0)) true false) - (not X25))) - (and (= X24 3) (not X25))))) - (let - ((X29 - Int (ite - X28 - (ite - (and (>= X24 1) (<= X24 3)) - 0 - X24) - X24))) - (let - ((X30 - Int (ite - X28 - (ite (not (= X29 4)) 4 X29) - X29))) - (let - ((X31 Int (ite X28 0 X18))) - (let - ((X32 Bool (or X28 X25))) - (let - ((X33 - Bool (and - (= X30 2) - (and (> X31 0) (not X32))))) - (let - ((X34 - Int (ite - X33 - (ite (= X30 2) 1 X30) - X30))) - (let - ((X35 - Int (ite - X33 - (ite (not (= X34 2)) 2 X34) - X34))) - (let - ((X36 - Bool (and - (= X35 2) - (and - (or - (ite - (not (= X27 0)) - true - false) - (not - (ite - (not (= X12 0)) - true - false))) - (not (or X33 X32)))))) - (let - ((X37 - Int (ite - X36 - (ite (= X35 2) 1 X35) - X35))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - true) - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - X2 - (ite - (and - (not X8) - (and (>= X17 1) (<= X17 3))) - (ite - X36 - (ite (not (= X37 3)) 3 X37) - X37) - X17)) - X1)) - (let - ((X38 - Int top.impl.usr.chart_microwave_mode_logic_mode_a_0)) - (let - ((X39 - Int (ite - X13 - (ite - (not (= X10 2)) - 2 - X38) - X38))) - (let - ((X40 - Int (ite - X8 - (ite - X15 - (ite - (not (= X14 3)) - 3 - X39) - X39) - X38))) - (let - ((X41 - Int (ite - X19 - (ite - (not (= X20 4)) - 1 - X40) - X40))) - (let - ((X42 - Int (ite - X22 - (ite - (not (= X23 2)) - 2 - X41) - X41))) - (let - ((X43 - Int (ite - X28 - (ite - (not (= X29 4)) - 1 - X42) - X42))) - (let - ((X44 - Int (ite - X33 - (ite - (not (= X34 2)) - 2 - X43) - X43))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - (ite - (not (= X1 4)) - 1 - X38) - (ite - (and - (not X8) - (and - (>= X17 1) - (<= X17 3))) - (ite - X36 - (ite - (not (= X37 3)) - 3 - X44) - X44) - X40)) - X38)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode_a_1 - top.impl.usr.chart_microwave_mode_logic_mode_a_1) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - X3 - (ite - (and - (not X8) - (and - (>= X17 1) - (<= X17 3))) - (ite - X33 - (- X31 1) - X31) - X18)) - X3)) - (<= 0 X27 1) - (<= 0 X12 1) - (<= 0 X6 1) - (not top.res.init_flag_a_1)))))))))))))))))))))))))))))))))))))))))))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) -)) - -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.KP_START Bool) -(declare-primed-var top.usr.KP_CLEAR Bool) -(declare-primed-var top.usr.KP_0 Bool) -(declare-primed-var top.usr.KP_1 Bool) -(declare-primed-var top.usr.KP_2 Bool) -(declare-primed-var top.usr.KP_3 Bool) -(declare-primed-var top.usr.KP_4 Bool) -(declare-primed-var top.usr.KP_5 Bool) -(declare-primed-var top.usr.KP_6 Bool) -(declare-primed-var top.usr.KP_7 Bool) -(declare-primed-var top.usr.KP_8 Bool) -(declare-primed-var top.usr.KP_9 Bool) -(declare-primed-var top.usr.DOOR_CLOSED Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.STEPS_TO_COOK Int) -(declare-primed-var top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) -(declare-primed-var top.impl.usr.KP_01 Bool) -(declare-primed-var top.impl.usr.KP_11 Bool) -(declare-primed-var top.impl.usr.KP_21 Bool) -(declare-primed-var top.impl.usr.KP_31 Bool) -(declare-primed-var top.impl.usr.KP_41 Bool) -(declare-primed-var top.impl.usr.KP_51 Bool) -(declare-primed-var top.impl.usr.KP_61 Bool) -(declare-primed-var top.impl.usr.KP_71 Bool) -(declare-primed-var top.impl.usr.KP_81 Bool) -(declare-primed-var top.impl.usr.KP_91 Bool) -(declare-primed-var top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_mode Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) -(declare-primed-var top.impl.usr.microwave_microwave_mode_logic_mode Int) - -(define-fun - init ( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - ) Bool - - (let - ((X1 Int 0)) - (let - ((X2 Int (ite (not (= X1 4)) 4 X1))) - (and - (= top.usr.OK (or (and (>= X2 1) (<= X2 3)) (= X2 4))) - (let - ((X3 Int 0)) - (and - (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep true) - (let - ((X4 Bool (= X1 4))) - (let - ((X5 Bool top.usr.KP_START)) - (let - ((X6 Int (ite (not X5) 0 1))) - (and - (= top.impl.usr.KP_91 top.usr.KP_9) - (= top.impl.usr.KP_81 top.usr.KP_8) - (= top.impl.usr.KP_71 top.usr.KP_7) - (= top.impl.usr.KP_61 top.usr.KP_6) - (= top.impl.usr.KP_51 top.usr.KP_5) - (= top.impl.usr.KP_41 top.usr.KP_4) - (= top.impl.usr.KP_31 top.usr.KP_3) - (= top.impl.usr.KP_21 top.usr.KP_2) - (= top.impl.usr.KP_11 top.usr.KP_1) - (= top.impl.usr.KP_01 top.usr.KP_0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - (ite - top.usr.KP_CLEAR - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01 - 0 - (ite - top.impl.usr.KP_11 - 1 - (ite - top.impl.usr.KP_21 - 2 - (ite - top.impl.usr.KP_31 - 3 - (ite - top.impl.usr.KP_41 - 4 - (ite - top.impl.usr.KP_51 - 5 - (ite - top.impl.usr.KP_61 - 6 - (ite - top.impl.usr.KP_71 - 7 - (ite - top.impl.usr.KP_81 - 8 - (ite top.impl.usr.KP_91 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01 - 0 - (ite - top.impl.usr.KP_11 - 1 - (ite - top.impl.usr.KP_21 - 2 - (ite - top.impl.usr.KP_31 - 3 - (ite - top.impl.usr.KP_41 - 4 - (ite - top.impl.usr.KP_51 - 5 - (ite - top.impl.usr.KP_61 - 6 - (ite - top.impl.usr.KP_71 - 7 - (ite - top.impl.usr.KP_81 - 8 - (ite top.impl.usr.KP_91 9 10)))))))))) - 0))) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - 0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY - 0) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step - true) - (let - ((X7 Bool true)) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock - X7) - (= - top.impl.usr.STEPS_TO_COOK - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock)) - 0 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY - 60)) - 1))) - (let - ((X8 - Bool (and - X4 - (and - (= X1 4) - (and - (ite (not (= X6 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK 0)) 0 1) - 0)) - true - false)))))) - (let - ((X9 Int (ite X8 (ite (= X1 4) 0 X1) X1))) - (let - ((X10 Int (ite (not (and (>= X9 1) (<= X9 3))) 1 X9))) - (let - ((X11 - Bool (and - (not (and (>= X9 1) (<= X9 3))) - (and (>= X10 1) (<= X10 3))))) - (let - ((X12 Int (ite (not top.usr.DOOR_CLOSED) 0 1))) - (let - ((X13 - Bool (and - X11 - (and - (and (>= X10 1) (<= X10 3)) - (ite (not (= X12 0)) true false))))) - (let - ((X14 Int (ite X13 (ite (not (= X10 2)) 2 X10) X10))) - (let - ((X15 - Bool (and - X11 - (and (and (>= X14 1) (<= X14 3)) (not X13))))) - (let - ((X16 Int (ite X15 (ite (not (= X14 3)) 3 X14) X14))) - (let - ((X17 Int (ite X8 X16 X9))) - (let - ((X18 Int (ite X4 top.impl.usr.STEPS_TO_COOK X3))) - (let - ((X19 - Bool (and (and (= X17 2) (<= X18 0)) (= X17 2)))) - (let - ((X20 - Int (ite - X19 - (ite (and (>= X17 1) (<= X17 3)) 0 X17) - X17))) - (let - ((X21 - Int (ite X19 (ite (not (= X20 4)) 4 X20) X20))) - (let - ((X22 - Bool (and - (= X21 3) - (and - (and - (ite (not (= X6 0)) true false) - (ite (not (= X12 0)) true false)) - (not X19))))) - (let - ((X23 Int (ite X22 (ite (= X21 3) 1 X21) X21))) - (let - ((X24 - Int (ite X22 (ite (not (= X23 2)) 2 X23) X23))) - (let - ((X25 Bool (or X22 X19))) - (let - ((X26 Bool top.usr.KP_CLEAR)) - (let - ((X27 Int (ite (not X26) 0 1))) - (let - ((X28 - Bool (and - (and - (= X24 3) - (and - (ite (not (= X27 0)) true false) - (not X25))) - (and (= X24 3) (not X25))))) - (let - ((X29 - Int (ite - X28 - (ite - (and (>= X24 1) (<= X24 3)) - 0 - X24) - X24))) - (let - ((X30 - Int (ite - X28 - (ite (not (= X29 4)) 4 X29) - X29))) - (let - ((X31 Int (ite X28 0 X18))) - (let - ((X32 Bool (or X28 X25))) - (let - ((X33 - Bool (and - (= X30 2) - (and (> X31 0) (not X32))))) - (let - ((X34 - Int (ite - X33 - (ite (= X30 2) 1 X30) - X30))) - (let - ((X35 - Int (ite - X33 - (ite (not (= X34 2)) 2 X34) - X34))) - (let - ((X36 - Bool (and - (= X35 2) - (and - (or - (ite - (not (= X27 0)) - true - false) - (not - (ite - (not (= X12 0)) - true - false))) - (not (or X33 X32)))))) - (let - ((X37 - Int (ite - X36 - (ite (= X35 2) 1 X35) - X35))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup___ - true) - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - X2 - (ite - (and - (not X8) - (and (>= X17 1) (<= X17 3))) - (ite - X36 - (ite (not (= X37 3)) 3 X37) - X37) - X17)) - X1)) - (let - ((X38 Int 0)) - (let - ((X39 - Int (ite - X13 - (ite - (not (= X10 2)) - 2 - X38) - X38))) - (let - ((X40 - Int (ite - X8 - (ite - X15 - (ite - (not (= X14 3)) - 3 - X39) - X39) - X38))) - (let - ((X41 - Int (ite - X19 - (ite - (not (= X20 4)) - 1 - X40) - X40))) - (let - ((X42 - Int (ite - X22 - (ite - (not (= X23 2)) - 2 - X41) - X41))) - (let - ((X43 - Int (ite - X28 - (ite - (not (= X29 4)) - 1 - X42) - X42))) - (let - ((X44 - Int (ite - X33 - (ite - (not (= X34 2)) - 2 - X43) - X43))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - (ite - (not (= X1 4)) - 1 - X38) - (ite - (and - (not X8) - (and - (>= X17 1) - (<= X17 3))) - (ite - X36 - (ite - (not (= X37 3)) - 3 - X44) - X44) - X40)) - X38)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode - top.impl.usr.chart_microwave_mode_logic_mode) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - X3 - (ite - (and - (not X8) - (and - (>= X17 1) - (<= X17 3))) - (ite - X33 - (- X31 1) - X31) - X18)) - X3)) - (<= 0 X27 1) - (<= 0 X12 1) - (<= 0 X6 1) - top.res.init_flag)))))))))))))))))))))))))))))))))))))))))))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - - ;; Next state. - (top.usr.KP_START! Bool) - (top.usr.KP_CLEAR! Bool) - (top.usr.KP_0! Bool) - (top.usr.KP_1! Bool) - (top.usr.KP_2! Bool) - (top.usr.KP_3! Bool) - (top.usr.KP_4! Bool) - (top.usr.KP_5! Bool) - (top.usr.KP_6! Bool) - (top.usr.KP_7! Bool) - (top.usr.KP_8! Bool) - (top.usr.KP_9! Bool) - (top.usr.DOOR_CLOSED! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.STEPS_TO_COOK! Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! Bool) - (top.impl.usr.KP_01! Bool) - (top.impl.usr.KP_11! Bool) - (top.impl.usr.KP_21! Bool) - (top.impl.usr.KP_31! Bool) - (top.impl.usr.KP_41! Bool) - (top.impl.usr.KP_51! Bool) - (top.impl.usr.KP_61! Bool) - (top.impl.usr.KP_71! Bool) - (top.impl.usr.KP_81! Bool) - (top.impl.usr.KP_91! Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___! Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root! Int) - (top.impl.usr.chart_microwave_mode_logic_mode! Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining! Int) - (top.impl.usr.microwave_microwave_mode_logic_mode! Int) - - ) Bool - - (and - (let - ((X1 - Int top.impl.usr.chart_microwave_mode_logic_final_state_states___root)) - (let - ((X2 Int (ite (not (= X1 4)) 4 X1))) - (and - (= top.usr.OK! (or (and (>= X2 1) (<= X2 3)) (= X2 4))) - (let - ((X3 Int top.impl.usr.chart_microwave_mode_logic_steps_remaining)) - (and - (= - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - false - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep)) - (let - ((X4 Bool (= X1 4))) - (let - ((X5 Bool (and top.usr.KP_START! (not top.usr.KP_START)))) - (let - ((X6 Int (ite (not X5) 0 1))) - (let - ((X7 - Bool (ite - (= 1 top.impl.usr.microwave_microwave_mode_logic_mode) - true - false))) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - X7) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (ite - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!) - true - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock - false - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step))) - (= top.impl.usr.KP_91! top.usr.KP_9!) - (= top.impl.usr.KP_81! top.usr.KP_8!) - (= top.impl.usr.KP_71! top.usr.KP_7!) - (= top.impl.usr.KP_61! top.usr.KP_6!) - (= top.impl.usr.KP_51! top.usr.KP_5!) - (= top.impl.usr.KP_41! top.usr.KP_4!) - (= top.impl.usr.KP_31! top.usr.KP_3!) - (= top.impl.usr.KP_21! top.usr.KP_2!) - (= top.impl.usr.KP_11! top.usr.KP_1!) - (= top.impl.usr.KP_01! top.usr.KP_0!) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01! - 0 - (ite - top.impl.usr.KP_11! - 1 - (ite - top.impl.usr.KP_21! - 2 - (ite - top.impl.usr.KP_31! - 3 - (ite - top.impl.usr.KP_41! - 4 - (ite - top.impl.usr.KP_51! - 5 - (ite - top.impl.usr.KP_61! - 6 - (ite - top.impl.usr.KP_71! - 7 - (ite - top.impl.usr.KP_81! - 8 - (ite top.impl.usr.KP_91! 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01! - 0 - (ite - top.impl.usr.KP_11! - 1 - (ite - top.impl.usr.KP_21! - 2 - (ite - top.impl.usr.KP_31! - 3 - (ite - top.impl.usr.KP_41! - 4 - (ite - top.impl.usr.KP_51! - 5 - (ite - top.impl.usr.KP_61! - 6 - (ite - top.impl.usr.KP_71! - 7 - (ite - top.impl.usr.KP_81! - 8 - (ite top.impl.usr.KP_91! 9 10)))))))))) - 0)) - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and - top.impl.usr.KP_71! - (not top.impl.usr.KP_71)) - 7 - (ite - (and - top.impl.usr.KP_81! - (not top.impl.usr.KP_81)) - 8 - (ite - (and - top.impl.usr.KP_91! - (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and - top.impl.usr.KP_91! - (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - 0 - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and - top.impl.usr.KP_71! - (not top.impl.usr.KP_71)) - 7 - (ite - (and - top.impl.usr.KP_81! - (not top.impl.usr.KP_81)) - 8 - (ite - (and - top.impl.usr.KP_91! - (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - 0 - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and - top.impl.usr.KP_71! - (not top.impl.usr.KP_71)) - 7 - (ite - (and - top.impl.usr.KP_81! - (not top.impl.usr.KP_81)) - 8 - (ite - (and - top.impl.usr.KP_91! - (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.STEPS_TO_COOK! - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!)) - 0 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! - 60)) - 1) - top.impl.usr.STEPS_TO_COOK))) - (let - ((X8 - Bool (and - X4 - (and - (= X1 4) - (and - (ite (not (= X6 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK! 0)) 0 1) - 0)) - true - false)))))) - (let - ((X9 Int (ite X8 (ite (= X1 4) 0 X1) X1))) - (let - ((X10 Int (ite (not (and (>= X9 1) (<= X9 3))) 1 X9))) - (let - ((X11 - Bool (and - (not (and (>= X9 1) (<= X9 3))) - (and (>= X10 1) (<= X10 3))))) - (let - ((X12 Int (ite (not top.usr.DOOR_CLOSED!) 0 1))) - (let - ((X13 - Bool (and - X11 - (and - (and (>= X10 1) (<= X10 3)) - (ite (not (= X12 0)) true false))))) - (let - ((X14 Int (ite X13 (ite (not (= X10 2)) 2 X10) X10))) - (let - ((X15 - Bool (and - X11 - (and (and (>= X14 1) (<= X14 3)) (not X13))))) - (let - ((X16 Int (ite X15 (ite (not (= X14 3)) 3 X14) X14))) - (let - ((X17 Int (ite X8 X16 X9))) - (let - ((X18 Int (ite X4 top.impl.usr.STEPS_TO_COOK! X3))) - (let - ((X19 - Bool (and (and (= X17 2) (<= X18 0)) (= X17 2)))) - (let - ((X20 - Int (ite - X19 - (ite (and (>= X17 1) (<= X17 3)) 0 X17) - X17))) - (let - ((X21 - Int (ite X19 (ite (not (= X20 4)) 4 X20) X20))) - (let - ((X22 - Bool (and - (= X21 3) - (and - (and - (ite (not (= X6 0)) true false) - (ite (not (= X12 0)) true false)) - (not X19))))) - (let - ((X23 Int (ite X22 (ite (= X21 3) 1 X21) X21))) - (let - ((X24 - Int (ite X22 (ite (not (= X23 2)) 2 X23) X23))) - (let - ((X25 Bool (or X22 X19))) - (let - ((X26 - Bool (and - top.usr.KP_CLEAR! - (not top.usr.KP_CLEAR)))) - (let - ((X27 Int (ite (not X26) 0 1))) - (let - ((X28 - Bool (and - (and - (= X24 3) - (and - (ite (not (= X27 0)) true false) - (not X25))) - (and (= X24 3) (not X25))))) - (let - ((X29 - Int (ite - X28 - (ite - (and (>= X24 1) (<= X24 3)) - 0 - X24) - X24))) - (let - ((X30 - Int (ite - X28 - (ite (not (= X29 4)) 4 X29) - X29))) - (let - ((X31 Int (ite X28 0 X18))) - (let - ((X32 Bool (or X28 X25))) - (let - ((X33 - Bool (and - (= X30 2) - (and (> X31 0) (not X32))))) - (let - ((X34 - Int (ite - X33 - (ite (= X30 2) 1 X30) - X30))) - (let - ((X35 - Int (ite - X33 - (ite (not (= X34 2)) 2 X34) - X34))) - (let - ((X36 - Bool (and - (= X35 2) - (and - (or - (ite - (not (= X27 0)) - true - false) - (not - (ite - (not (= X12 0)) - true - false))) - (not (or X33 X32)))))) - (let - ((X37 - Int (ite - X36 - (ite (= X35 2) 1 X35) - X35))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup___! - true) - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - X2 - (ite - (and - (not X8) - (and (>= X17 1) (<= X17 3))) - (ite - X36 - (ite (not (= X37 3)) 3 X37) - X37) - X17)) - X1)) - (let - ((X38 - Int top.impl.usr.chart_microwave_mode_logic_mode)) - (let - ((X39 - Int (ite - X13 - (ite - (not (= X10 2)) - 2 - X38) - X38))) - (let - ((X40 - Int (ite - X8 - (ite - X15 - (ite - (not (= X14 3)) - 3 - X39) - X39) - X38))) - (let - ((X41 - Int (ite - X19 - (ite - (not (= X20 4)) - 1 - X40) - X40))) - (let - ((X42 - Int (ite - X22 - (ite - (not (= X23 2)) - 2 - X41) - X41))) - (let - ((X43 - Int (ite - X28 - (ite - (not (= X29 4)) - 1 - X42) - X42))) - (let - ((X44 - Int (ite - X33 - (ite - (not (= X34 2)) - 2 - X43) - X43))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - (ite - (not (= X1 4)) - 1 - X38) - (ite - (and - (not X8) - (and - (>= X17 1) - (<= X17 3))) - (ite - X36 - (ite - (not (= X37 3)) - 3 - X44) - X44) - X40)) - X38)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode! - top.impl.usr.chart_microwave_mode_logic_mode!) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - X3 - (ite - (and - (not X8) - (and - (>= X17 1) - (<= X17 3))) - (ite - X33 - (- X31 1) - X31) - X18)) - X3)) - (<= 0 X27 1) - (<= 0 X12 1) - (<= 0 X6 1) - (not top.res.init_flag!)))))))))))))))))))))))))))))))))))))))))))))))))) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - ) Bool - - top.usr.OK -) +(define-fun __node_init_top_0 ((top.usr.KP_START_a_0 Bool) (top.usr.KP_CLEAR_a_0 Bool) (top.usr.KP_0_a_0 Bool) (top.usr.KP_1_a_0 Bool) (top.usr.KP_2_a_0 Bool) (top.usr.KP_3_a_0 Bool) (top.usr.KP_4_a_0 Bool) (top.usr.KP_5_a_0 Bool) (top.usr.KP_6_a_0 Bool) (top.usr.KP_7_a_0 Bool) (top.usr.KP_8_a_0 Bool) (top.usr.KP_9_a_0 Bool) (top.usr.DOOR_CLOSED_a_0 Bool) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.STEPS_TO_COOK_a_0 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) (top.impl.usr.KP_01_a_0 Bool) (top.impl.usr.KP_11_a_0 Bool) (top.impl.usr.KP_21_a_0 Bool) (top.impl.usr.KP_31_a_0 Bool) (top.impl.usr.KP_41_a_0 Bool) (top.impl.usr.KP_51_a_0 Bool) (top.impl.usr.KP_61_a_0 Bool) (top.impl.usr.KP_71_a_0 Bool) (top.impl.usr.KP_81_a_0 Bool) (top.impl.usr.KP_91_a_0 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int)) Bool + (let ((X1 0)) (let ((X2 (ite (not (= X1 4)) 4 X1))) (and (= top.usr.OK_a_0 (or (and (>= X2 1) (<= X2 3)) (= X2 4))) (let ((X3 0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 true) (let ((X4 (= X1 4))) (let ((X5 top.usr.KP_START_a_0)) (let ((X6 (ite (not X5) 0 1))) (and (= top.impl.usr.KP_91_a_0 top.usr.KP_9_a_0) (= top.impl.usr.KP_81_a_0 top.usr.KP_8_a_0) (= top.impl.usr.KP_71_a_0 top.usr.KP_7_a_0) (= top.impl.usr.KP_61_a_0 top.usr.KP_6_a_0) (= top.impl.usr.KP_51_a_0 top.usr.KP_5_a_0) (= top.impl.usr.KP_41_a_0 top.usr.KP_4_a_0) (= top.impl.usr.KP_31_a_0 top.usr.KP_3_a_0) (= top.impl.usr.KP_21_a_0 top.usr.KP_2_a_0) (= top.impl.usr.KP_11_a_0 top.usr.KP_1_a_0) (= top.impl.usr.KP_01_a_0 top.usr.KP_0_a_0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 (ite top.usr.KP_CLEAR_a_0 0 (ite (ite (<= (ite top.impl.usr.KP_01_a_0 0 (ite top.impl.usr.KP_11_a_0 1 (ite top.impl.usr.KP_21_a_0 2 (ite top.impl.usr.KP_31_a_0 3 (ite top.impl.usr.KP_41_a_0 4 (ite top.impl.usr.KP_51_a_0 5 (ite top.impl.usr.KP_61_a_0 6 (ite top.impl.usr.KP_71_a_0 7 (ite top.impl.usr.KP_81_a_0 8 (ite top.impl.usr.KP_91_a_0 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01_a_0 0 (ite top.impl.usr.KP_11_a_0 1 (ite top.impl.usr.KP_21_a_0 2 (ite top.impl.usr.KP_31_a_0 3 (ite top.impl.usr.KP_41_a_0 4 (ite top.impl.usr.KP_51_a_0 5 (ite top.impl.usr.KP_61_a_0 6 (ite top.impl.usr.KP_71_a_0 7 (ite top.impl.usr.KP_81_a_0 8 (ite top.impl.usr.KP_91_a_0 9 10)))))))))) 0))) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 0) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 true) (let ((X7 true)) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 X7) (= top.impl.usr.STEPS_TO_COOK_a_0 (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0)) 0 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 60)) 1))) (let ((X8 (and X4 (and (= X1 4) (and (ite (not (= X6 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK_a_0 0)) 0 1) 0)) true false)))))) (let ((X9 (ite X8 (ite (= X1 4) 0 X1) X1))) (let ((X10 (ite (not (and (>= X9 1) (<= X9 3))) 1 X9))) (let ((X11 (and (not (and (>= X9 1) (<= X9 3))) (and (>= X10 1) (<= X10 3))))) (let ((X12 (ite (not top.usr.DOOR_CLOSED_a_0) 0 1))) (let ((X13 (and X11 (and (and (>= X10 1) (<= X10 3)) (ite (not (= X12 0)) true false))))) (let ((X14 (ite X13 (ite (not (= X10 2)) 2 X10) X10))) (let ((X15 (and X11 (and (and (>= X14 1) (<= X14 3)) (not X13))))) (let ((X16 (ite X15 (ite (not (= X14 3)) 3 X14) X14))) (let ((X17 (ite X8 X16 X9))) (let ((X18 (ite X4 top.impl.usr.STEPS_TO_COOK_a_0 X3))) (let ((X19 (and (and (= X17 2) (<= X18 0)) (= X17 2)))) (let ((X20 (ite X19 (ite (and (>= X17 1) (<= X17 3)) 0 X17) X17))) (let ((X21 (ite X19 (ite (not (= X20 4)) 4 X20) X20))) (let ((X22 (and (= X21 3) (and (and (ite (not (= X6 0)) true false) (ite (not (= X12 0)) true false)) (not X19))))) (let ((X23 (ite X22 (ite (= X21 3) 1 X21) X21))) (let ((X24 (ite X22 (ite (not (= X23 2)) 2 X23) X23))) (let ((X25 (or X22 X19))) (let ((X26 top.usr.KP_CLEAR_a_0)) (let ((X27 (ite (not X26) 0 1))) (let ((X28 (and (and (= X24 3) (and (ite (not (= X27 0)) true false) (not X25))) (and (= X24 3) (not X25))))) (let ((X29 (ite X28 (ite (and (>= X24 1) (<= X24 3)) 0 X24) X24))) (let ((X30 (ite X28 (ite (not (= X29 4)) 4 X29) X29))) (let ((X31 (ite X28 0 X18))) (let ((X32 (or X28 X25))) (let ((X33 (and (= X30 2) (and (> X31 0) (not X32))))) (let ((X34 (ite X33 (ite (= X30 2) 1 X30) X30))) (let ((X35 (ite X33 (ite (not (= X34 2)) 2 X34) X34))) (let ((X36 (and (= X35 2) (and (or (ite (not (= X27 0)) true false) (not (ite (not (= X12 0)) true false))) (not (or X33 X32)))))) (let ((X37 (ite X36 (ite (= X35 2) 1 X35) X35))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 true) (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 X2 (ite (and (not X8) (and (>= X17 1) (<= X17 3))) (ite X36 (ite (not (= X37 3)) 3 X37) X37) X17)) X1)) (let ((X38 0)) (let ((X39 (ite X13 (ite (not (= X10 2)) 2 X38) X38))) (let ((X40 (ite X8 (ite X15 (ite (not (= X14 3)) 3 X39) X39) X38))) (let ((X41 (ite X19 (ite (not (= X20 4)) 1 X40) X40))) (let ((X42 (ite X22 (ite (not (= X23 2)) 2 X41) X41))) (let ((X43 (ite X28 (ite (not (= X29 4)) 1 X42) X42))) (let ((X44 (ite X33 (ite (not (= X34 2)) 2 X43) X43))) (and (= top.impl.usr.chart_microwave_mode_logic_mode_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 (ite (not (= X1 4)) 1 X38) (ite (and (not X8) (and (>= X17 1) (<= X17 3))) (ite X36 (ite (not (= X37 3)) 3 X44) X44) X40)) X38)) (= top.impl.usr.microwave_microwave_mode_logic_mode_a_0 top.impl.usr.chart_microwave_mode_logic_mode_a_0) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 X3 (ite (and (not X8) (and (>= X17 1) (<= X17 3))) (ite X33 (- X31 1) X31) X18)) X3)) (<= 0 X27 1) (<= 0 X12 1) (<= 0 X6 1) top.res.init_flag_a_0))))))))))))))))))))))))))))))))))))))))))))))))))) +(define-fun __node_trans_top_0 ((top.usr.KP_START_a_1 Bool) (top.usr.KP_CLEAR_a_1 Bool) (top.usr.KP_0_a_1 Bool) (top.usr.KP_1_a_1 Bool) (top.usr.KP_2_a_1 Bool) (top.usr.KP_3_a_1 Bool) (top.usr.KP_4_a_1 Bool) (top.usr.KP_5_a_1 Bool) (top.usr.KP_6_a_1 Bool) (top.usr.KP_7_a_1 Bool) (top.usr.KP_8_a_1 Bool) (top.usr.KP_9_a_1 Bool) (top.usr.DOOR_CLOSED_a_1 Bool) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.STEPS_TO_COOK_a_1 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 Bool) (top.impl.usr.KP_01_a_1 Bool) (top.impl.usr.KP_11_a_1 Bool) (top.impl.usr.KP_21_a_1 Bool) (top.impl.usr.KP_31_a_1 Bool) (top.impl.usr.KP_41_a_1 Bool) (top.impl.usr.KP_51_a_1 Bool) (top.impl.usr.KP_61_a_1 Bool) (top.impl.usr.KP_71_a_1 Bool) (top.impl.usr.KP_81_a_1 Bool) (top.impl.usr.KP_91_a_1 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_1 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_1 Int) (top.usr.KP_START_a_0 Bool) (top.usr.KP_CLEAR_a_0 Bool) (top.usr.KP_0_a_0 Bool) (top.usr.KP_1_a_0 Bool) (top.usr.KP_2_a_0 Bool) (top.usr.KP_3_a_0 Bool) (top.usr.KP_4_a_0 Bool) (top.usr.KP_5_a_0 Bool) (top.usr.KP_6_a_0 Bool) (top.usr.KP_7_a_0 Bool) (top.usr.KP_8_a_0 Bool) (top.usr.KP_9_a_0 Bool) (top.usr.DOOR_CLOSED_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.STEPS_TO_COOK_a_0 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) (top.impl.usr.KP_01_a_0 Bool) (top.impl.usr.KP_11_a_0 Bool) (top.impl.usr.KP_21_a_0 Bool) (top.impl.usr.KP_31_a_0 Bool) (top.impl.usr.KP_41_a_0 Bool) (top.impl.usr.KP_51_a_0 Bool) (top.impl.usr.KP_61_a_0 Bool) (top.impl.usr.KP_71_a_0 Bool) (top.impl.usr.KP_81_a_0 Bool) (top.impl.usr.KP_91_a_0 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int)) Bool + (let ((X1 top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0)) (let ((X2 (ite (not (= X1 4)) 4 X1))) (and (= top.usr.OK_a_1 (or (and (>= X2 1) (<= X2 3)) (= X2 4))) (let ((X3 top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 false top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0)) (let ((X4 (= X1 4))) (let ((X5 (and top.usr.KP_START_a_1 (not top.usr.KP_START_a_0)))) (let ((X6 (ite (not X5) 0 1))) (let ((X7 (ite (= 1 top.impl.usr.microwave_microwave_mode_logic_mode_a_0) true false))) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 X7) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (ite (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1) true (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 false top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0))) (= top.impl.usr.KP_91_a_1 top.usr.KP_9_a_1) (= top.impl.usr.KP_81_a_1 top.usr.KP_8_a_1) (= top.impl.usr.KP_71_a_1 top.usr.KP_7_a_1) (= top.impl.usr.KP_61_a_1 top.usr.KP_6_a_1) (= top.impl.usr.KP_51_a_1 top.usr.KP_5_a_1) (= top.impl.usr.KP_41_a_1 top.usr.KP_4_a_1) (= top.impl.usr.KP_31_a_1 top.usr.KP_3_a_1) (= top.impl.usr.KP_21_a_1 top.usr.KP_2_a_1) (= top.impl.usr.KP_11_a_1 top.usr.KP_1_a_1) (= top.impl.usr.KP_01_a_1 top.usr.KP_0_a_1) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite top.impl.usr.KP_01_a_1 0 (ite top.impl.usr.KP_11_a_1 1 (ite top.impl.usr.KP_21_a_1 2 (ite top.impl.usr.KP_31_a_1 3 (ite top.impl.usr.KP_41_a_1 4 (ite top.impl.usr.KP_51_a_1 5 (ite top.impl.usr.KP_61_a_1 6 (ite top.impl.usr.KP_71_a_1 7 (ite top.impl.usr.KP_81_a_1 8 (ite top.impl.usr.KP_91_a_1 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01_a_1 0 (ite top.impl.usr.KP_11_a_1 1 (ite top.impl.usr.KP_21_a_1 2 (ite top.impl.usr.KP_31_a_1 3 (ite top.impl.usr.KP_41_a_1 4 (ite top.impl.usr.KP_51_a_1 5 (ite top.impl.usr.KP_61_a_1 6 (ite top.impl.usr.KP_71_a_1 7 (ite top.impl.usr.KP_81_a_1 8 (ite top.impl.usr.KP_91_a_1 9 10)))))))))) 0)) (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 0 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 0 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.STEPS_TO_COOK_a_1 (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1)) 0 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 60)) 1) top.impl.usr.STEPS_TO_COOK_a_0))) (let ((X8 (and X4 (and (= X1 4) (and (ite (not (= X6 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK_a_1 0)) 0 1) 0)) true false)))))) (let ((X9 (ite X8 (ite (= X1 4) 0 X1) X1))) (let ((X10 (ite (not (and (>= X9 1) (<= X9 3))) 1 X9))) (let ((X11 (and (not (and (>= X9 1) (<= X9 3))) (and (>= X10 1) (<= X10 3))))) (let ((X12 (ite (not top.usr.DOOR_CLOSED_a_1) 0 1))) (let ((X13 (and X11 (and (and (>= X10 1) (<= X10 3)) (ite (not (= X12 0)) true false))))) (let ((X14 (ite X13 (ite (not (= X10 2)) 2 X10) X10))) (let ((X15 (and X11 (and (and (>= X14 1) (<= X14 3)) (not X13))))) (let ((X16 (ite X15 (ite (not (= X14 3)) 3 X14) X14))) (let ((X17 (ite X8 X16 X9))) (let ((X18 (ite X4 top.impl.usr.STEPS_TO_COOK_a_1 X3))) (let ((X19 (and (and (= X17 2) (<= X18 0)) (= X17 2)))) (let ((X20 (ite X19 (ite (and (>= X17 1) (<= X17 3)) 0 X17) X17))) (let ((X21 (ite X19 (ite (not (= X20 4)) 4 X20) X20))) (let ((X22 (and (= X21 3) (and (and (ite (not (= X6 0)) true false) (ite (not (= X12 0)) true false)) (not X19))))) (let ((X23 (ite X22 (ite (= X21 3) 1 X21) X21))) (let ((X24 (ite X22 (ite (not (= X23 2)) 2 X23) X23))) (let ((X25 (or X22 X19))) (let ((X26 (and top.usr.KP_CLEAR_a_1 (not top.usr.KP_CLEAR_a_0)))) (let ((X27 (ite (not X26) 0 1))) (let ((X28 (and (and (= X24 3) (and (ite (not (= X27 0)) true false) (not X25))) (and (= X24 3) (not X25))))) (let ((X29 (ite X28 (ite (and (>= X24 1) (<= X24 3)) 0 X24) X24))) (let ((X30 (ite X28 (ite (not (= X29 4)) 4 X29) X29))) (let ((X31 (ite X28 0 X18))) (let ((X32 (or X28 X25))) (let ((X33 (and (= X30 2) (and (> X31 0) (not X32))))) (let ((X34 (ite X33 (ite (= X30 2) 1 X30) X30))) (let ((X35 (ite X33 (ite (not (= X34 2)) 2 X34) X34))) (let ((X36 (and (= X35 2) (and (or (ite (not (= X27 0)) true false) (not (ite (not (= X12 0)) true false))) (not (or X33 X32)))))) (let ((X37 (ite X36 (ite (= X35 2) 1 X35) X35))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 true) (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 X2 (ite (and (not X8) (and (>= X17 1) (<= X17 3))) (ite X36 (ite (not (= X37 3)) 3 X37) X37) X17)) X1)) (let ((X38 top.impl.usr.chart_microwave_mode_logic_mode_a_0)) (let ((X39 (ite X13 (ite (not (= X10 2)) 2 X38) X38))) (let ((X40 (ite X8 (ite X15 (ite (not (= X14 3)) 3 X39) X39) X38))) (let ((X41 (ite X19 (ite (not (= X20 4)) 1 X40) X40))) (let ((X42 (ite X22 (ite (not (= X23 2)) 2 X41) X41))) (let ((X43 (ite X28 (ite (not (= X29 4)) 1 X42) X42))) (let ((X44 (ite X33 (ite (not (= X34 2)) 2 X43) X43))) (and (= top.impl.usr.chart_microwave_mode_logic_mode_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 (ite (not (= X1 4)) 1 X38) (ite (and (not X8) (and (>= X17 1) (<= X17 3))) (ite X36 (ite (not (= X37 3)) 3 X44) X44) X40)) X38)) (= top.impl.usr.microwave_microwave_mode_logic_mode_a_1 top.impl.usr.chart_microwave_mode_logic_mode_a_1) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 X3 (ite (and (not X8) (and (>= X17 1) (<= X17 3))) (ite X33 (- X31 1) X31) X18)) X3)) (<= 0 X27 1) (<= 0 X12 1) (<= 0 X6 1) (not top.res.init_flag_a_1))))))))))))))))))))))))))))))))))))))))))))))))))) +(synth-inv str_invariant ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int))) + +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int)) Bool + (let ((X1 0)) (let ((X2 (ite (not (= X1 4)) 4 X1))) (and (= top.usr.OK (or (and (>= X2 1) (<= X2 3)) (= X2 4))) (let ((X3 0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep true) (let ((X4 (= X1 4))) (let ((X5 top.usr.KP_START)) (let ((X6 (ite (not X5) 0 1))) (and (= top.impl.usr.KP_91 top.usr.KP_9) (= top.impl.usr.KP_81 top.usr.KP_8) (= top.impl.usr.KP_71 top.usr.KP_7) (= top.impl.usr.KP_61 top.usr.KP_6) (= top.impl.usr.KP_51 top.usr.KP_5) (= top.impl.usr.KP_41 top.usr.KP_4) (= top.impl.usr.KP_31 top.usr.KP_3) (= top.impl.usr.KP_21 top.usr.KP_2) (= top.impl.usr.KP_11 top.usr.KP_1) (= top.impl.usr.KP_01 top.usr.KP_0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY (ite top.usr.KP_CLEAR 0 (ite (ite (<= (ite top.impl.usr.KP_01 0 (ite top.impl.usr.KP_11 1 (ite top.impl.usr.KP_21 2 (ite top.impl.usr.KP_31 3 (ite top.impl.usr.KP_41 4 (ite top.impl.usr.KP_51 5 (ite top.impl.usr.KP_61 6 (ite top.impl.usr.KP_71 7 (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01 0 (ite top.impl.usr.KP_11 1 (ite top.impl.usr.KP_21 2 (ite top.impl.usr.KP_31 3 (ite top.impl.usr.KP_41 4 (ite top.impl.usr.KP_51 5 (ite top.impl.usr.KP_61 6 (ite top.impl.usr.KP_71 7 (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) 0))) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY 0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY 0) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step true) (let ((X7 true)) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock X7) (= top.impl.usr.STEPS_TO_COOK (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock)) 0 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY 60)) 1))) (let ((X8 (and X4 (and (= X1 4) (and (ite (not (= X6 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK 0)) 0 1) 0)) true false)))))) (let ((X9 (ite X8 (ite (= X1 4) 0 X1) X1))) (let ((X10 (ite (not (and (>= X9 1) (<= X9 3))) 1 X9))) (let ((X11 (and (not (and (>= X9 1) (<= X9 3))) (and (>= X10 1) (<= X10 3))))) (let ((X12 (ite (not top.usr.DOOR_CLOSED) 0 1))) (let ((X13 (and X11 (and (and (>= X10 1) (<= X10 3)) (ite (not (= X12 0)) true false))))) (let ((X14 (ite X13 (ite (not (= X10 2)) 2 X10) X10))) (let ((X15 (and X11 (and (and (>= X14 1) (<= X14 3)) (not X13))))) (let ((X16 (ite X15 (ite (not (= X14 3)) 3 X14) X14))) (let ((X17 (ite X8 X16 X9))) (let ((X18 (ite X4 top.impl.usr.STEPS_TO_COOK X3))) (let ((X19 (and (and (= X17 2) (<= X18 0)) (= X17 2)))) (let ((X20 (ite X19 (ite (and (>= X17 1) (<= X17 3)) 0 X17) X17))) (let ((X21 (ite X19 (ite (not (= X20 4)) 4 X20) X20))) (let ((X22 (and (= X21 3) (and (and (ite (not (= X6 0)) true false) (ite (not (= X12 0)) true false)) (not X19))))) (let ((X23 (ite X22 (ite (= X21 3) 1 X21) X21))) (let ((X24 (ite X22 (ite (not (= X23 2)) 2 X23) X23))) (let ((X25 (or X22 X19))) (let ((X26 top.usr.KP_CLEAR)) (let ((X27 (ite (not X26) 0 1))) (let ((X28 (and (and (= X24 3) (and (ite (not (= X27 0)) true false) (not X25))) (and (= X24 3) (not X25))))) (let ((X29 (ite X28 (ite (and (>= X24 1) (<= X24 3)) 0 X24) X24))) (let ((X30 (ite X28 (ite (not (= X29 4)) 4 X29) X29))) (let ((X31 (ite X28 0 X18))) (let ((X32 (or X28 X25))) (let ((X33 (and (= X30 2) (and (> X31 0) (not X32))))) (let ((X34 (ite X33 (ite (= X30 2) 1 X30) X30))) (let ((X35 (ite X33 (ite (not (= X34 2)) 2 X34) X34))) (let ((X36 (and (= X35 2) (and (or (ite (not (= X27 0)) true false) (not (ite (not (= X12 0)) true false))) (not (or X33 X32)))))) (let ((X37 (ite X36 (ite (= X35 2) 1 X35) X35))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup___ true) (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep X2 (ite (and (not X8) (and (>= X17 1) (<= X17 3))) (ite X36 (ite (not (= X37 3)) 3 X37) X37) X17)) X1)) (let ((X38 0)) (let ((X39 (ite X13 (ite (not (= X10 2)) 2 X38) X38))) (let ((X40 (ite X8 (ite X15 (ite (not (= X14 3)) 3 X39) X39) X38))) (let ((X41 (ite X19 (ite (not (= X20 4)) 1 X40) X40))) (let ((X42 (ite X22 (ite (not (= X23 2)) 2 X41) X41))) (let ((X43 (ite X28 (ite (not (= X29 4)) 1 X42) X42))) (let ((X44 (ite X33 (ite (not (= X34 2)) 2 X43) X43))) (and (= top.impl.usr.chart_microwave_mode_logic_mode (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep (ite (not (= X1 4)) 1 X38) (ite (and (not X8) (and (>= X17 1) (<= X17 3))) (ite X36 (ite (not (= X37 3)) 3 X44) X44) X40)) X38)) (= top.impl.usr.microwave_microwave_mode_logic_mode top.impl.usr.chart_microwave_mode_logic_mode) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep X3 (ite (and (not X8) (and (>= X17 1) (<= X17 3))) (ite X33 (- X31 1) X31) X18)) X3)) (<= 0 X27 1) (<= 0 X12 1) (<= 0 X6 1) top.res.init_flag))))))))))))))))))))))))))))))))))))))))))))))))))) +(define-fun trans ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int) (top.usr.KP_START! Bool) (top.usr.KP_CLEAR! Bool) (top.usr.KP_0! Bool) (top.usr.KP_1! Bool) (top.usr.KP_2! Bool) (top.usr.KP_3! Bool) (top.usr.KP_4! Bool) (top.usr.KP_5! Bool) (top.usr.KP_6! Bool) (top.usr.KP_7! Bool) (top.usr.KP_8! Bool) (top.usr.KP_9! Bool) (top.usr.DOOR_CLOSED! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.STEPS_TO_COOK! Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! Bool) (top.impl.usr.KP_01! Bool) (top.impl.usr.KP_11! Bool) (top.impl.usr.KP_21! Bool) (top.impl.usr.KP_31! Bool) (top.impl.usr.KP_41! Bool) (top.impl.usr.KP_51! Bool) (top.impl.usr.KP_61! Bool) (top.impl.usr.KP_71! Bool) (top.impl.usr.KP_81! Bool) (top.impl.usr.KP_91! Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___! Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root! Int) (top.impl.usr.chart_microwave_mode_logic_mode! Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining! Int) (top.impl.usr.microwave_microwave_mode_logic_mode! Int)) Bool + (and (let ((X1 top.impl.usr.chart_microwave_mode_logic_final_state_states___root)) (let ((X2 (ite (not (= X1 4)) 4 X1))) (and (= top.usr.OK! (or (and (>= X2 1) (<= X2 3)) (= X2 4))) (let ((X3 top.impl.usr.chart_microwave_mode_logic_steps_remaining)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ false top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep)) (let ((X4 (= X1 4))) (let ((X5 (and top.usr.KP_START! (not top.usr.KP_START)))) (let ((X6 (ite (not X5) 0 1))) (let ((X7 (ite (= 1 top.impl.usr.microwave_microwave_mode_logic_mode) true false))) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! X7) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (ite (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!) true (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock false top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step))) (= top.impl.usr.KP_91! top.usr.KP_9!) (= top.impl.usr.KP_81! top.usr.KP_8!) (= top.impl.usr.KP_71! top.usr.KP_7!) (= top.impl.usr.KP_61! top.usr.KP_6!) (= top.impl.usr.KP_51! top.usr.KP_5!) (= top.impl.usr.KP_41! top.usr.KP_4!) (= top.impl.usr.KP_31! top.usr.KP_3!) (= top.impl.usr.KP_21! top.usr.KP_2!) (= top.impl.usr.KP_11! top.usr.KP_1!) (= top.impl.usr.KP_01! top.usr.KP_0!) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite top.impl.usr.KP_01! 0 (ite top.impl.usr.KP_11! 1 (ite top.impl.usr.KP_21! 2 (ite top.impl.usr.KP_31! 3 (ite top.impl.usr.KP_41! 4 (ite top.impl.usr.KP_51! 5 (ite top.impl.usr.KP_61! 6 (ite top.impl.usr.KP_71! 7 (ite top.impl.usr.KP_81! 8 (ite top.impl.usr.KP_91! 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01! 0 (ite top.impl.usr.KP_11! 1 (ite top.impl.usr.KP_21! 2 (ite top.impl.usr.KP_31! 3 (ite top.impl.usr.KP_41! 4 (ite top.impl.usr.KP_51! 5 (ite top.impl.usr.KP_61! 6 (ite top.impl.usr.KP_71! 7 (ite top.impl.usr.KP_81! 8 (ite top.impl.usr.KP_91! 9 10)))))))))) 0)) (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! 0 (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! 0 (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.STEPS_TO_COOK! (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!)) 0 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! 60)) 1) top.impl.usr.STEPS_TO_COOK))) (let ((X8 (and X4 (and (= X1 4) (and (ite (not (= X6 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK! 0)) 0 1) 0)) true false)))))) (let ((X9 (ite X8 (ite (= X1 4) 0 X1) X1))) (let ((X10 (ite (not (and (>= X9 1) (<= X9 3))) 1 X9))) (let ((X11 (and (not (and (>= X9 1) (<= X9 3))) (and (>= X10 1) (<= X10 3))))) (let ((X12 (ite (not top.usr.DOOR_CLOSED!) 0 1))) (let ((X13 (and X11 (and (and (>= X10 1) (<= X10 3)) (ite (not (= X12 0)) true false))))) (let ((X14 (ite X13 (ite (not (= X10 2)) 2 X10) X10))) (let ((X15 (and X11 (and (and (>= X14 1) (<= X14 3)) (not X13))))) (let ((X16 (ite X15 (ite (not (= X14 3)) 3 X14) X14))) (let ((X17 (ite X8 X16 X9))) (let ((X18 (ite X4 top.impl.usr.STEPS_TO_COOK! X3))) (let ((X19 (and (and (= X17 2) (<= X18 0)) (= X17 2)))) (let ((X20 (ite X19 (ite (and (>= X17 1) (<= X17 3)) 0 X17) X17))) (let ((X21 (ite X19 (ite (not (= X20 4)) 4 X20) X20))) (let ((X22 (and (= X21 3) (and (and (ite (not (= X6 0)) true false) (ite (not (= X12 0)) true false)) (not X19))))) (let ((X23 (ite X22 (ite (= X21 3) 1 X21) X21))) (let ((X24 (ite X22 (ite (not (= X23 2)) 2 X23) X23))) (let ((X25 (or X22 X19))) (let ((X26 (and top.usr.KP_CLEAR! (not top.usr.KP_CLEAR)))) (let ((X27 (ite (not X26) 0 1))) (let ((X28 (and (and (= X24 3) (and (ite (not (= X27 0)) true false) (not X25))) (and (= X24 3) (not X25))))) (let ((X29 (ite X28 (ite (and (>= X24 1) (<= X24 3)) 0 X24) X24))) (let ((X30 (ite X28 (ite (not (= X29 4)) 4 X29) X29))) (let ((X31 (ite X28 0 X18))) (let ((X32 (or X28 X25))) (let ((X33 (and (= X30 2) (and (> X31 0) (not X32))))) (let ((X34 (ite X33 (ite (= X30 2) 1 X30) X30))) (let ((X35 (ite X33 (ite (not (= X34 2)) 2 X34) X34))) (let ((X36 (and (= X35 2) (and (or (ite (not (= X27 0)) true false) (not (ite (not (= X12 0)) true false))) (not (or X33 X32)))))) (let ((X37 (ite X36 (ite (= X35 2) 1 X35) X35))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup___! true) (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! X2 (ite (and (not X8) (and (>= X17 1) (<= X17 3))) (ite X36 (ite (not (= X37 3)) 3 X37) X37) X17)) X1)) (let ((X38 top.impl.usr.chart_microwave_mode_logic_mode)) (let ((X39 (ite X13 (ite (not (= X10 2)) 2 X38) X38))) (let ((X40 (ite X8 (ite X15 (ite (not (= X14 3)) 3 X39) X39) X38))) (let ((X41 (ite X19 (ite (not (= X20 4)) 1 X40) X40))) (let ((X42 (ite X22 (ite (not (= X23 2)) 2 X41) X41))) (let ((X43 (ite X28 (ite (not (= X29 4)) 1 X42) X42))) (let ((X44 (ite X33 (ite (not (= X34 2)) 2 X43) X43))) (and (= top.impl.usr.chart_microwave_mode_logic_mode! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! (ite (not (= X1 4)) 1 X38) (ite (and (not X8) (and (>= X17 1) (<= X17 3))) (ite X36 (ite (not (= X37 3)) 3 X44) X44) X40)) X38)) (= top.impl.usr.microwave_microwave_mode_logic_mode! top.impl.usr.chart_microwave_mode_logic_mode!) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! X3 (ite (and (not X8) (and (>= X17 1) (<= X17 3))) (ite X33 (- X31 1) X31) X18)) X3)) (<= 0 X27 1) (<= 0 X12 1) (<= 0 X6 1) (not top.res.init_flag!)))))))))))))))))))))))))))))))))))))))))))))))))) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/microwave03.sl b/benchmarks/LIA/Lustre/microwave03.sl index 3694ad2..0d09fd3 100644 --- a/benchmarks/LIA/Lustre/microwave03.sl +++ b/benchmarks/LIA/Lustre/microwave03.sl @@ -1,2596 +1,25 @@ (set-logic LIA) -(define-fun - __node_init_top_0 ( - (top.usr.KP_START_a_0 Bool) - (top.usr.KP_CLEAR_a_0 Bool) - (top.usr.KP_0_a_0 Bool) - (top.usr.KP_1_a_0 Bool) - (top.usr.KP_2_a_0 Bool) - (top.usr.KP_3_a_0 Bool) - (top.usr.KP_4_a_0 Bool) - (top.usr.KP_5_a_0 Bool) - (top.usr.KP_6_a_0 Bool) - (top.usr.KP_7_a_0 Bool) - (top.usr.KP_8_a_0 Bool) - (top.usr.KP_9_a_0 Bool) - (top.usr.DOOR_CLOSED_a_0 Bool) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.STEPS_TO_COOK_a_0 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) - (top.impl.usr.KP_01_a_0 Bool) - (top.impl.usr.KP_11_a_0 Bool) - (top.impl.usr.KP_21_a_0 Bool) - (top.impl.usr.KP_31_a_0 Bool) - (top.impl.usr.KP_41_a_0 Bool) - (top.impl.usr.KP_51_a_0 Bool) - (top.impl.usr.KP_61_a_0 Bool) - (top.impl.usr.KP_71_a_0 Bool) - (top.impl.usr.KP_81_a_0 Bool) - (top.impl.usr.KP_91_a_0 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int) - ) Bool - - (let - ((X1 Int 0)) - (let - ((X2 Int 0)) - (and - (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 true) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool top.usr.KP_START_a_0)) - (let - ((X5 Int (ite (not X4) 0 1))) - (and - (= top.impl.usr.KP_91_a_0 top.usr.KP_9_a_0) - (= top.impl.usr.KP_81_a_0 top.usr.KP_8_a_0) - (= top.impl.usr.KP_71_a_0 top.usr.KP_7_a_0) - (= top.impl.usr.KP_61_a_0 top.usr.KP_6_a_0) - (= top.impl.usr.KP_51_a_0 top.usr.KP_5_a_0) - (= top.impl.usr.KP_41_a_0 top.usr.KP_4_a_0) - (= top.impl.usr.KP_31_a_0 top.usr.KP_3_a_0) - (= top.impl.usr.KP_21_a_0 top.usr.KP_2_a_0) - (= top.impl.usr.KP_11_a_0 top.usr.KP_1_a_0) - (= top.impl.usr.KP_01_a_0 top.usr.KP_0_a_0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - (ite - top.usr.KP_CLEAR_a_0 - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01_a_0 - 0 - (ite - top.impl.usr.KP_11_a_0 - 1 - (ite - top.impl.usr.KP_21_a_0 - 2 - (ite - top.impl.usr.KP_31_a_0 - 3 - (ite - top.impl.usr.KP_41_a_0 - 4 - (ite - top.impl.usr.KP_51_a_0 - 5 - (ite - top.impl.usr.KP_61_a_0 - 6 - (ite - top.impl.usr.KP_71_a_0 - 7 - (ite - top.impl.usr.KP_81_a_0 - 8 - (ite top.impl.usr.KP_91_a_0 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01_a_0 - 0 - (ite - top.impl.usr.KP_11_a_0 - 1 - (ite - top.impl.usr.KP_21_a_0 - 2 - (ite - top.impl.usr.KP_31_a_0 - 3 - (ite - top.impl.usr.KP_41_a_0 - 4 - (ite - top.impl.usr.KP_51_a_0 - 5 - (ite - top.impl.usr.KP_61_a_0 - 6 - (ite - top.impl.usr.KP_71_a_0 - 7 - (ite - top.impl.usr.KP_81_a_0 - 8 - (ite top.impl.usr.KP_91_a_0 9 10)))))))))) - 0))) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - 0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 0) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 - true) - (let - ((X6 Bool true)) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 - X6) - (= - top.impl.usr.STEPS_TO_COOK_a_0 - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0)) - 0 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 60)) - 1))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK_a_0 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED_a_0) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK_a_0 X1))) - (let - ((X18 Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 Bool top.usr.KP_CLEAR_a_0)) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (- - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - 1) - 60) - 60)) - (* - (div - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - 1) - 60) - 60)) - 10) - 10)))) - (and - (= - top.usr.OK_a_0 - (and (>= X33 0) (<= X33 256))) - (let - ((X34 Int 0)) - (let - ((X35 - Int (ite - X12 - (ite (not (= X9 2)) 2 X34) - X34))) - (let - ((X36 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X35) - X35) - X34))) - (let - ((X37 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X38 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X36) - X36))) - (let - ((X39 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X38) - X38))) - (let - ((X40 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X39) - X39))) - (let - ((X41 - Int (ite - X32 - (ite - (not (= X37 2)) - 2 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X37 2)) - 2 - X37) - X37))) - (let - ((X43 - Bool (and - (= X42 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not (= X11 0)) - true - false))) - (not (or X32 X31)))))) - (let - ((X44 - Int (ite - X43 - (ite - (= X42 2) - 1 - X42) - X42))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - (ite - (not (= X2 4)) - 1 - X34) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X43 - (ite - (not (= X44 3)) - 3 - X41) - X41) - X36)) - X34)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode_a_0 - top.impl.usr.chart_microwave_mode_logic_mode_a_0) - (let - ((X45 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - X45 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X43 - (ite - (not (= X44 3)) - 3 - X44) - X44) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - top.res.init_flag_a_0)))))))))))))))))))))))))))))))))))))))))))))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.KP_START_a_1 Bool) - (top.usr.KP_CLEAR_a_1 Bool) - (top.usr.KP_0_a_1 Bool) - (top.usr.KP_1_a_1 Bool) - (top.usr.KP_2_a_1 Bool) - (top.usr.KP_3_a_1 Bool) - (top.usr.KP_4_a_1 Bool) - (top.usr.KP_5_a_1 Bool) - (top.usr.KP_6_a_1 Bool) - (top.usr.KP_7_a_1 Bool) - (top.usr.KP_8_a_1 Bool) - (top.usr.KP_9_a_1 Bool) - (top.usr.DOOR_CLOSED_a_1 Bool) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.STEPS_TO_COOK_a_1 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 Bool) - (top.impl.usr.KP_01_a_1 Bool) - (top.impl.usr.KP_11_a_1 Bool) - (top.impl.usr.KP_21_a_1 Bool) - (top.impl.usr.KP_31_a_1 Bool) - (top.impl.usr.KP_41_a_1 Bool) - (top.impl.usr.KP_51_a_1 Bool) - (top.impl.usr.KP_61_a_1 Bool) - (top.impl.usr.KP_71_a_1 Bool) - (top.impl.usr.KP_81_a_1 Bool) - (top.impl.usr.KP_91_a_1 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_1 Int) - (top.usr.KP_START_a_0 Bool) - (top.usr.KP_CLEAR_a_0 Bool) - (top.usr.KP_0_a_0 Bool) - (top.usr.KP_1_a_0 Bool) - (top.usr.KP_2_a_0 Bool) - (top.usr.KP_3_a_0 Bool) - (top.usr.KP_4_a_0 Bool) - (top.usr.KP_5_a_0 Bool) - (top.usr.KP_6_a_0 Bool) - (top.usr.KP_7_a_0 Bool) - (top.usr.KP_8_a_0 Bool) - (top.usr.KP_9_a_0 Bool) - (top.usr.DOOR_CLOSED_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.STEPS_TO_COOK_a_0 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) - (top.impl.usr.KP_01_a_0 Bool) - (top.impl.usr.KP_11_a_0 Bool) - (top.impl.usr.KP_21_a_0 Bool) - (top.impl.usr.KP_31_a_0 Bool) - (top.impl.usr.KP_41_a_0 Bool) - (top.impl.usr.KP_51_a_0 Bool) - (top.impl.usr.KP_61_a_0 Bool) - (top.impl.usr.KP_71_a_0 Bool) - (top.impl.usr.KP_81_a_0 Bool) - (top.impl.usr.KP_91_a_0 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int) - ) Bool - - (let - ((X1 Int top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0)) - (let - ((X2 - Int top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0)) - (and - (= - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - false - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0)) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool (and top.usr.KP_START_a_1 (not top.usr.KP_START_a_0)))) - (let - ((X5 Int (ite (not X4) 0 1))) - (let - ((X6 - Bool (ite - (= 1 top.impl.usr.microwave_microwave_mode_logic_mode_a_0) - true - false))) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - X6) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (ite - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1) - true - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 - false - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0))) - (= top.impl.usr.KP_91_a_1 top.usr.KP_9_a_1) - (= top.impl.usr.KP_81_a_1 top.usr.KP_8_a_1) - (= top.impl.usr.KP_71_a_1 top.usr.KP_7_a_1) - (= top.impl.usr.KP_61_a_1 top.usr.KP_6_a_1) - (= top.impl.usr.KP_51_a_1 top.usr.KP_5_a_1) - (= top.impl.usr.KP_41_a_1 top.usr.KP_4_a_1) - (= top.impl.usr.KP_31_a_1 top.usr.KP_3_a_1) - (= top.impl.usr.KP_21_a_1 top.usr.KP_2_a_1) - (= top.impl.usr.KP_11_a_1 top.usr.KP_1_a_1) - (= top.impl.usr.KP_01_a_1 top.usr.KP_0_a_1) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01_a_1 - 0 - (ite - top.impl.usr.KP_11_a_1 - 1 - (ite - top.impl.usr.KP_21_a_1 - 2 - (ite - top.impl.usr.KP_31_a_1 - 3 - (ite - top.impl.usr.KP_41_a_1 - 4 - (ite - top.impl.usr.KP_51_a_1 - 5 - (ite - top.impl.usr.KP_61_a_1 - 6 - (ite - top.impl.usr.KP_71_a_1 - 7 - (ite - top.impl.usr.KP_81_a_1 - 8 - (ite top.impl.usr.KP_91_a_1 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01_a_1 - 0 - (ite - top.impl.usr.KP_11_a_1 - 1 - (ite - top.impl.usr.KP_21_a_1 - 2 - (ite - top.impl.usr.KP_31_a_1 - 3 - (ite - top.impl.usr.KP_41_a_1 - 4 - (ite - top.impl.usr.KP_51_a_1 - 5 - (ite - top.impl.usr.KP_61_a_1 - 6 - (ite - top.impl.usr.KP_71_a_1 - 7 - (ite - top.impl.usr.KP_81_a_1 - 8 - (ite top.impl.usr.KP_91_a_1 9 10)))))))))) - 0)) - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and - top.impl.usr.KP_71_a_1 - (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and - top.impl.usr.KP_81_a_1 - (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - 0 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and - top.impl.usr.KP_71_a_1 - (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and - top.impl.usr.KP_81_a_1 - (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - 0 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and - top.impl.usr.KP_71_a_1 - (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and - top.impl.usr.KP_81_a_1 - (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.STEPS_TO_COOK_a_1 - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1)) - 0 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 - 60)) - 1) - top.impl.usr.STEPS_TO_COOK_a_0))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK_a_1 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED_a_1) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK_a_1 X1))) - (let - ((X18 Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 - Bool (and - top.usr.KP_CLEAR_a_1 - (not top.usr.KP_CLEAR_a_0)))) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (- - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - 1) - 60) - 60)) - (* - (div - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - 1) - 60) - 60)) - 10) - 10)))) - (and - (= - top.usr.OK_a_1 - (and (>= X33 0) (<= X33 256))) - (let - ((X34 - Int top.impl.usr.chart_microwave_mode_logic_mode_a_0)) - (let - ((X35 - Int (ite - X12 - (ite (not (= X9 2)) 2 X34) - X34))) - (let - ((X36 - Int (ite - X7 - (ite - X14 - (ite (not (= X13 3)) 3 X35) - X35) - X34))) - (let - ((X37 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X38 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X36) - X36))) - (let - ((X39 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X38) - X38))) - (let - ((X40 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X39) - X39))) - (let - ((X41 - Int (ite - X32 - (ite - (not (= X37 2)) - 2 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X37 2)) - 2 - X37) - X37))) - (let - ((X43 - Bool (and - (= X42 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not (= X11 0)) - true - false))) - (not (or X32 X31)))))) - (let - ((X44 - Int (ite - X43 - (ite - (= X42 2) - 1 - X42) - X42))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - (ite - (not (= X2 4)) - 1 - X34) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X43 - (ite - (not (= X44 3)) - 3 - X41) - X41) - X36)) - X34)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode_a_1 - top.impl.usr.chart_microwave_mode_logic_mode_a_1) - (let - ((X45 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - X45 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X43 - (ite - (not (= X44 3)) - 3 - X44) - X44) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - (not - top.res.init_flag_a_1)))))))))))))))))))))))))))))))))))))))))))))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) -)) - -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.KP_START Bool) -(declare-primed-var top.usr.KP_CLEAR Bool) -(declare-primed-var top.usr.KP_0 Bool) -(declare-primed-var top.usr.KP_1 Bool) -(declare-primed-var top.usr.KP_2 Bool) -(declare-primed-var top.usr.KP_3 Bool) -(declare-primed-var top.usr.KP_4 Bool) -(declare-primed-var top.usr.KP_5 Bool) -(declare-primed-var top.usr.KP_6 Bool) -(declare-primed-var top.usr.KP_7 Bool) -(declare-primed-var top.usr.KP_8 Bool) -(declare-primed-var top.usr.KP_9 Bool) -(declare-primed-var top.usr.DOOR_CLOSED Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.STEPS_TO_COOK Int) -(declare-primed-var top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) -(declare-primed-var top.impl.usr.KP_01 Bool) -(declare-primed-var top.impl.usr.KP_11 Bool) -(declare-primed-var top.impl.usr.KP_21 Bool) -(declare-primed-var top.impl.usr.KP_31 Bool) -(declare-primed-var top.impl.usr.KP_41 Bool) -(declare-primed-var top.impl.usr.KP_51 Bool) -(declare-primed-var top.impl.usr.KP_61 Bool) -(declare-primed-var top.impl.usr.KP_71 Bool) -(declare-primed-var top.impl.usr.KP_81 Bool) -(declare-primed-var top.impl.usr.KP_91 Bool) -(declare-primed-var top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_mode Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) -(declare-primed-var top.impl.usr.microwave_microwave_mode_logic_mode Int) - -(define-fun - init ( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - ) Bool - - (let - ((X1 Int 0)) - (let - ((X2 Int 0)) - (and - (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep true) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool top.usr.KP_START)) - (let - ((X5 Int (ite (not X4) 0 1))) - (and - (= top.impl.usr.KP_91 top.usr.KP_9) - (= top.impl.usr.KP_81 top.usr.KP_8) - (= top.impl.usr.KP_71 top.usr.KP_7) - (= top.impl.usr.KP_61 top.usr.KP_6) - (= top.impl.usr.KP_51 top.usr.KP_5) - (= top.impl.usr.KP_41 top.usr.KP_4) - (= top.impl.usr.KP_31 top.usr.KP_3) - (= top.impl.usr.KP_21 top.usr.KP_2) - (= top.impl.usr.KP_11 top.usr.KP_1) - (= top.impl.usr.KP_01 top.usr.KP_0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - (ite - top.usr.KP_CLEAR - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01 - 0 - (ite - top.impl.usr.KP_11 - 1 - (ite - top.impl.usr.KP_21 - 2 - (ite - top.impl.usr.KP_31 - 3 - (ite - top.impl.usr.KP_41 - 4 - (ite - top.impl.usr.KP_51 - 5 - (ite - top.impl.usr.KP_61 - 6 - (ite - top.impl.usr.KP_71 - 7 - (ite - top.impl.usr.KP_81 - 8 - (ite top.impl.usr.KP_91 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01 - 0 - (ite - top.impl.usr.KP_11 - 1 - (ite - top.impl.usr.KP_21 - 2 - (ite - top.impl.usr.KP_31 - 3 - (ite - top.impl.usr.KP_41 - 4 - (ite - top.impl.usr.KP_51 - 5 - (ite - top.impl.usr.KP_61 - 6 - (ite - top.impl.usr.KP_71 - 7 - (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) - 0))) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - 0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY - 0) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step - true) - (let - ((X6 Bool true)) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock - X6) - (= - top.impl.usr.STEPS_TO_COOK - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock)) - 0 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY - 60)) - 1))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK X1))) - (let - ((X18 Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 Bool top.usr.KP_CLEAR)) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup___ - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (- - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining - 1) - 60) - 60)) - (* - (div - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining - 1) - 60) - 60)) - 10) - 10)))) - (and - (= - top.usr.OK - (and (>= X33 0) (<= X33 256))) - (let - ((X34 Int 0)) - (let - ((X35 - Int (ite - X12 - (ite (not (= X9 2)) 2 X34) - X34))) - (let - ((X36 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X35) - X35) - X34))) - (let - ((X37 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X38 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X36) - X36))) - (let - ((X39 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X38) - X38))) - (let - ((X40 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X39) - X39))) - (let - ((X41 - Int (ite - X32 - (ite - (not (= X37 2)) - 2 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X37 2)) - 2 - X37) - X37))) - (let - ((X43 - Bool (and - (= X42 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not (= X11 0)) - true - false))) - (not (or X32 X31)))))) - (let - ((X44 - Int (ite - X43 - (ite - (= X42 2) - 1 - X42) - X42))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - (ite - (not (= X2 4)) - 1 - X34) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X43 - (ite - (not (= X44 3)) - 3 - X41) - X41) - X36)) - X34)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode - top.impl.usr.chart_microwave_mode_logic_mode) - (let - ((X45 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - X45 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X43 - (ite - (not (= X44 3)) - 3 - X44) - X44) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - top.res.init_flag)))))))))))))))))))))))))))))))))))))))))))))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - - ;; Next state. - (top.usr.KP_START! Bool) - (top.usr.KP_CLEAR! Bool) - (top.usr.KP_0! Bool) - (top.usr.KP_1! Bool) - (top.usr.KP_2! Bool) - (top.usr.KP_3! Bool) - (top.usr.KP_4! Bool) - (top.usr.KP_5! Bool) - (top.usr.KP_6! Bool) - (top.usr.KP_7! Bool) - (top.usr.KP_8! Bool) - (top.usr.KP_9! Bool) - (top.usr.DOOR_CLOSED! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.STEPS_TO_COOK! Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! Bool) - (top.impl.usr.KP_01! Bool) - (top.impl.usr.KP_11! Bool) - (top.impl.usr.KP_21! Bool) - (top.impl.usr.KP_31! Bool) - (top.impl.usr.KP_41! Bool) - (top.impl.usr.KP_51! Bool) - (top.impl.usr.KP_61! Bool) - (top.impl.usr.KP_71! Bool) - (top.impl.usr.KP_81! Bool) - (top.impl.usr.KP_91! Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___! Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root! Int) - (top.impl.usr.chart_microwave_mode_logic_mode! Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining! Int) - (top.impl.usr.microwave_microwave_mode_logic_mode! Int) - - ) Bool - - (and - (let - ((X1 Int top.impl.usr.chart_microwave_mode_logic_steps_remaining)) - (let - ((X2 - Int top.impl.usr.chart_microwave_mode_logic_final_state_states___root)) - (and - (= - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - false - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep)) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool (and top.usr.KP_START! (not top.usr.KP_START)))) - (let - ((X5 Int (ite (not X4) 0 1))) - (let - ((X6 - Bool (ite - (= 1 top.impl.usr.microwave_microwave_mode_logic_mode) - true - false))) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - X6) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (ite - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!) - true - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock - false - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step))) - (= top.impl.usr.KP_91! top.usr.KP_9!) - (= top.impl.usr.KP_81! top.usr.KP_8!) - (= top.impl.usr.KP_71! top.usr.KP_7!) - (= top.impl.usr.KP_61! top.usr.KP_6!) - (= top.impl.usr.KP_51! top.usr.KP_5!) - (= top.impl.usr.KP_41! top.usr.KP_4!) - (= top.impl.usr.KP_31! top.usr.KP_3!) - (= top.impl.usr.KP_21! top.usr.KP_2!) - (= top.impl.usr.KP_11! top.usr.KP_1!) - (= top.impl.usr.KP_01! top.usr.KP_0!) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01! - 0 - (ite - top.impl.usr.KP_11! - 1 - (ite - top.impl.usr.KP_21! - 2 - (ite - top.impl.usr.KP_31! - 3 - (ite - top.impl.usr.KP_41! - 4 - (ite - top.impl.usr.KP_51! - 5 - (ite - top.impl.usr.KP_61! - 6 - (ite - top.impl.usr.KP_71! - 7 - (ite - top.impl.usr.KP_81! - 8 - (ite top.impl.usr.KP_91! 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01! - 0 - (ite - top.impl.usr.KP_11! - 1 - (ite - top.impl.usr.KP_21! - 2 - (ite - top.impl.usr.KP_31! - 3 - (ite - top.impl.usr.KP_41! - 4 - (ite - top.impl.usr.KP_51! - 5 - (ite - top.impl.usr.KP_61! - 6 - (ite - top.impl.usr.KP_71! - 7 - (ite - top.impl.usr.KP_81! - 8 - (ite top.impl.usr.KP_91! 9 10)))))))))) - 0)) - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and - top.impl.usr.KP_91! - (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - 0 - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and - top.impl.usr.KP_91! - (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - 0 - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and - top.impl.usr.KP_91! - (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.STEPS_TO_COOK! - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!)) - 0 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! - 60)) - 1) - top.impl.usr.STEPS_TO_COOK))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK! 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED!) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK! X1))) - (let - ((X18 Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 - Bool (and - top.usr.KP_CLEAR! - (not top.usr.KP_CLEAR)))) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup___! - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (- - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - 1) - 60) - 60)) - (* - (div - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - 1) - 60) - 60)) - 10) - 10)))) - (and - (= - top.usr.OK! - (and (>= X33 0) (<= X33 256))) - (let - ((X34 - Int top.impl.usr.chart_microwave_mode_logic_mode)) - (let - ((X35 - Int (ite - X12 - (ite (not (= X9 2)) 2 X34) - X34))) - (let - ((X36 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X35) - X35) - X34))) - (let - ((X37 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X38 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X36) - X36))) - (let - ((X39 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X38) - X38))) - (let - ((X40 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X39) - X39))) - (let - ((X41 - Int (ite - X32 - (ite - (not (= X37 2)) - 2 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X37 2)) - 2 - X37) - X37))) - (let - ((X43 - Bool (and - (= X42 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not (= X11 0)) - true - false))) - (not (or X32 X31)))))) - (let - ((X44 - Int (ite - X43 - (ite - (= X42 2) - 1 - X42) - X42))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - (ite - (not (= X2 4)) - 1 - X34) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X43 - (ite - (not (= X44 3)) - 3 - X41) - X41) - X36)) - X34)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode! - top.impl.usr.chart_microwave_mode_logic_mode!) - (let - ((X45 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - X45 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X43 - (ite - (not (= X44 3)) - 3 - X44) - X44) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - (not - top.res.init_flag!)))))))))))))))))))))))))))))))))))))))))))))))))))) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - ) Bool - - top.usr.OK -) +(define-fun __node_init_top_0 ((top.usr.KP_START_a_0 Bool) (top.usr.KP_CLEAR_a_0 Bool) (top.usr.KP_0_a_0 Bool) (top.usr.KP_1_a_0 Bool) (top.usr.KP_2_a_0 Bool) (top.usr.KP_3_a_0 Bool) (top.usr.KP_4_a_0 Bool) (top.usr.KP_5_a_0 Bool) (top.usr.KP_6_a_0 Bool) (top.usr.KP_7_a_0 Bool) (top.usr.KP_8_a_0 Bool) (top.usr.KP_9_a_0 Bool) (top.usr.DOOR_CLOSED_a_0 Bool) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.STEPS_TO_COOK_a_0 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) (top.impl.usr.KP_01_a_0 Bool) (top.impl.usr.KP_11_a_0 Bool) (top.impl.usr.KP_21_a_0 Bool) (top.impl.usr.KP_31_a_0 Bool) (top.impl.usr.KP_41_a_0 Bool) (top.impl.usr.KP_51_a_0 Bool) (top.impl.usr.KP_61_a_0 Bool) (top.impl.usr.KP_71_a_0 Bool) (top.impl.usr.KP_81_a_0 Bool) (top.impl.usr.KP_91_a_0 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int)) Bool + (let ((X1 0)) (let ((X2 0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 true) (let ((X3 (= X2 4))) (let ((X4 top.usr.KP_START_a_0)) (let ((X5 (ite (not X4) 0 1))) (and (= top.impl.usr.KP_91_a_0 top.usr.KP_9_a_0) (= top.impl.usr.KP_81_a_0 top.usr.KP_8_a_0) (= top.impl.usr.KP_71_a_0 top.usr.KP_7_a_0) (= top.impl.usr.KP_61_a_0 top.usr.KP_6_a_0) (= top.impl.usr.KP_51_a_0 top.usr.KP_5_a_0) (= top.impl.usr.KP_41_a_0 top.usr.KP_4_a_0) (= top.impl.usr.KP_31_a_0 top.usr.KP_3_a_0) (= top.impl.usr.KP_21_a_0 top.usr.KP_2_a_0) (= top.impl.usr.KP_11_a_0 top.usr.KP_1_a_0) (= top.impl.usr.KP_01_a_0 top.usr.KP_0_a_0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 (ite top.usr.KP_CLEAR_a_0 0 (ite (ite (<= (ite top.impl.usr.KP_01_a_0 0 (ite top.impl.usr.KP_11_a_0 1 (ite top.impl.usr.KP_21_a_0 2 (ite top.impl.usr.KP_31_a_0 3 (ite top.impl.usr.KP_41_a_0 4 (ite top.impl.usr.KP_51_a_0 5 (ite top.impl.usr.KP_61_a_0 6 (ite top.impl.usr.KP_71_a_0 7 (ite top.impl.usr.KP_81_a_0 8 (ite top.impl.usr.KP_91_a_0 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01_a_0 0 (ite top.impl.usr.KP_11_a_0 1 (ite top.impl.usr.KP_21_a_0 2 (ite top.impl.usr.KP_31_a_0 3 (ite top.impl.usr.KP_41_a_0 4 (ite top.impl.usr.KP_51_a_0 5 (ite top.impl.usr.KP_61_a_0 6 (ite top.impl.usr.KP_71_a_0 7 (ite top.impl.usr.KP_81_a_0 8 (ite top.impl.usr.KP_91_a_0 9 10)))))))))) 0))) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 0) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 true) (let ((X6 true)) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 X6) (= top.impl.usr.STEPS_TO_COOK_a_0 (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0)) 0 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 60)) 1))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK_a_0 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED_a_0) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK_a_0 X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 top.usr.KP_CLEAR_a_0)) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (- (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 1) 60) 60)) (* (div (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 1) 60) 60)) 10) 10)))) (and (= top.usr.OK_a_0 (and (>= X33 0) (<= X33 256))) (let ((X34 0)) (let ((X35 (ite X12 (ite (not (= X9 2)) 2 X34) X34))) (let ((X36 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X35) X35) X34))) (let ((X37 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X38 (ite X18 (ite (not (= X19 4)) 1 X36) X36))) (let ((X39 (ite X21 (ite (not (= X22 2)) 2 X38) X38))) (let ((X40 (ite X27 (ite (not (= X28 4)) 1 X39) X39))) (let ((X41 (ite X32 (ite (not (= X37 2)) 2 X40) X40))) (let ((X42 (ite X32 (ite (not (= X37 2)) 2 X37) X37))) (let ((X43 (and (= X42 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X44 (ite X43 (ite (= X42 2) 1 X42) X42))) (and (= top.impl.usr.chart_microwave_mode_logic_mode_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 (ite (not (= X2 4)) 1 X34) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X43 (ite (not (= X44 3)) 3 X41) X41) X36)) X34)) (= top.impl.usr.microwave_microwave_mode_logic_mode_a_0 top.impl.usr.chart_microwave_mode_logic_mode_a_0) (let ((X45 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 X45 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X43 (ite (not (= X44 3)) 3 X44) X44) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) top.res.init_flag_a_0))))))))))))))))))))))))))))))))))))))))))))))))))))) +(define-fun __node_trans_top_0 ((top.usr.KP_START_a_1 Bool) (top.usr.KP_CLEAR_a_1 Bool) (top.usr.KP_0_a_1 Bool) (top.usr.KP_1_a_1 Bool) (top.usr.KP_2_a_1 Bool) (top.usr.KP_3_a_1 Bool) (top.usr.KP_4_a_1 Bool) (top.usr.KP_5_a_1 Bool) (top.usr.KP_6_a_1 Bool) (top.usr.KP_7_a_1 Bool) (top.usr.KP_8_a_1 Bool) (top.usr.KP_9_a_1 Bool) (top.usr.DOOR_CLOSED_a_1 Bool) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.STEPS_TO_COOK_a_1 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 Bool) (top.impl.usr.KP_01_a_1 Bool) (top.impl.usr.KP_11_a_1 Bool) (top.impl.usr.KP_21_a_1 Bool) (top.impl.usr.KP_31_a_1 Bool) (top.impl.usr.KP_41_a_1 Bool) (top.impl.usr.KP_51_a_1 Bool) (top.impl.usr.KP_61_a_1 Bool) (top.impl.usr.KP_71_a_1 Bool) (top.impl.usr.KP_81_a_1 Bool) (top.impl.usr.KP_91_a_1 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_1 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_1 Int) (top.usr.KP_START_a_0 Bool) (top.usr.KP_CLEAR_a_0 Bool) (top.usr.KP_0_a_0 Bool) (top.usr.KP_1_a_0 Bool) (top.usr.KP_2_a_0 Bool) (top.usr.KP_3_a_0 Bool) (top.usr.KP_4_a_0 Bool) (top.usr.KP_5_a_0 Bool) (top.usr.KP_6_a_0 Bool) (top.usr.KP_7_a_0 Bool) (top.usr.KP_8_a_0 Bool) (top.usr.KP_9_a_0 Bool) (top.usr.DOOR_CLOSED_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.STEPS_TO_COOK_a_0 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) (top.impl.usr.KP_01_a_0 Bool) (top.impl.usr.KP_11_a_0 Bool) (top.impl.usr.KP_21_a_0 Bool) (top.impl.usr.KP_31_a_0 Bool) (top.impl.usr.KP_41_a_0 Bool) (top.impl.usr.KP_51_a_0 Bool) (top.impl.usr.KP_61_a_0 Bool) (top.impl.usr.KP_71_a_0 Bool) (top.impl.usr.KP_81_a_0 Bool) (top.impl.usr.KP_91_a_0 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int)) Bool + (let ((X1 top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0)) (let ((X2 top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 false top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0)) (let ((X3 (= X2 4))) (let ((X4 (and top.usr.KP_START_a_1 (not top.usr.KP_START_a_0)))) (let ((X5 (ite (not X4) 0 1))) (let ((X6 (ite (= 1 top.impl.usr.microwave_microwave_mode_logic_mode_a_0) true false))) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 X6) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (ite (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1) true (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 false top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0))) (= top.impl.usr.KP_91_a_1 top.usr.KP_9_a_1) (= top.impl.usr.KP_81_a_1 top.usr.KP_8_a_1) (= top.impl.usr.KP_71_a_1 top.usr.KP_7_a_1) (= top.impl.usr.KP_61_a_1 top.usr.KP_6_a_1) (= top.impl.usr.KP_51_a_1 top.usr.KP_5_a_1) (= top.impl.usr.KP_41_a_1 top.usr.KP_4_a_1) (= top.impl.usr.KP_31_a_1 top.usr.KP_3_a_1) (= top.impl.usr.KP_21_a_1 top.usr.KP_2_a_1) (= top.impl.usr.KP_11_a_1 top.usr.KP_1_a_1) (= top.impl.usr.KP_01_a_1 top.usr.KP_0_a_1) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite top.impl.usr.KP_01_a_1 0 (ite top.impl.usr.KP_11_a_1 1 (ite top.impl.usr.KP_21_a_1 2 (ite top.impl.usr.KP_31_a_1 3 (ite top.impl.usr.KP_41_a_1 4 (ite top.impl.usr.KP_51_a_1 5 (ite top.impl.usr.KP_61_a_1 6 (ite top.impl.usr.KP_71_a_1 7 (ite top.impl.usr.KP_81_a_1 8 (ite top.impl.usr.KP_91_a_1 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01_a_1 0 (ite top.impl.usr.KP_11_a_1 1 (ite top.impl.usr.KP_21_a_1 2 (ite top.impl.usr.KP_31_a_1 3 (ite top.impl.usr.KP_41_a_1 4 (ite top.impl.usr.KP_51_a_1 5 (ite top.impl.usr.KP_61_a_1 6 (ite top.impl.usr.KP_71_a_1 7 (ite top.impl.usr.KP_81_a_1 8 (ite top.impl.usr.KP_91_a_1 9 10)))))))))) 0)) (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 0 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 0 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.STEPS_TO_COOK_a_1 (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1)) 0 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 60)) 1) top.impl.usr.STEPS_TO_COOK_a_0))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK_a_1 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED_a_1) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK_a_1 X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 (and top.usr.KP_CLEAR_a_1 (not top.usr.KP_CLEAR_a_0)))) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (- (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 1) 60) 60)) (* (div (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 1) 60) 60)) 10) 10)))) (and (= top.usr.OK_a_1 (and (>= X33 0) (<= X33 256))) (let ((X34 top.impl.usr.chart_microwave_mode_logic_mode_a_0)) (let ((X35 (ite X12 (ite (not (= X9 2)) 2 X34) X34))) (let ((X36 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X35) X35) X34))) (let ((X37 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X38 (ite X18 (ite (not (= X19 4)) 1 X36) X36))) (let ((X39 (ite X21 (ite (not (= X22 2)) 2 X38) X38))) (let ((X40 (ite X27 (ite (not (= X28 4)) 1 X39) X39))) (let ((X41 (ite X32 (ite (not (= X37 2)) 2 X40) X40))) (let ((X42 (ite X32 (ite (not (= X37 2)) 2 X37) X37))) (let ((X43 (and (= X42 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X44 (ite X43 (ite (= X42 2) 1 X42) X42))) (and (= top.impl.usr.chart_microwave_mode_logic_mode_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 (ite (not (= X2 4)) 1 X34) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X43 (ite (not (= X44 3)) 3 X41) X41) X36)) X34)) (= top.impl.usr.microwave_microwave_mode_logic_mode_a_1 top.impl.usr.chart_microwave_mode_logic_mode_a_1) (let ((X45 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 X45 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X43 (ite (not (= X44 3)) 3 X44) X44) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) (not top.res.init_flag_a_1))))))))))))))))))))))))))))))))))))))))))))))))))))) +(synth-inv str_invariant ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int))) + +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int)) Bool + (let ((X1 0)) (let ((X2 0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep true) (let ((X3 (= X2 4))) (let ((X4 top.usr.KP_START)) (let ((X5 (ite (not X4) 0 1))) (and (= top.impl.usr.KP_91 top.usr.KP_9) (= top.impl.usr.KP_81 top.usr.KP_8) (= top.impl.usr.KP_71 top.usr.KP_7) (= top.impl.usr.KP_61 top.usr.KP_6) (= top.impl.usr.KP_51 top.usr.KP_5) (= top.impl.usr.KP_41 top.usr.KP_4) (= top.impl.usr.KP_31 top.usr.KP_3) (= top.impl.usr.KP_21 top.usr.KP_2) (= top.impl.usr.KP_11 top.usr.KP_1) (= top.impl.usr.KP_01 top.usr.KP_0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY (ite top.usr.KP_CLEAR 0 (ite (ite (<= (ite top.impl.usr.KP_01 0 (ite top.impl.usr.KP_11 1 (ite top.impl.usr.KP_21 2 (ite top.impl.usr.KP_31 3 (ite top.impl.usr.KP_41 4 (ite top.impl.usr.KP_51 5 (ite top.impl.usr.KP_61 6 (ite top.impl.usr.KP_71 7 (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01 0 (ite top.impl.usr.KP_11 1 (ite top.impl.usr.KP_21 2 (ite top.impl.usr.KP_31 3 (ite top.impl.usr.KP_41 4 (ite top.impl.usr.KP_51 5 (ite top.impl.usr.KP_61 6 (ite top.impl.usr.KP_71 7 (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) 0))) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY 0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY 0) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step true) (let ((X6 true)) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock X6) (= top.impl.usr.STEPS_TO_COOK (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock)) 0 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY 60)) 1))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 top.usr.KP_CLEAR)) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup___ true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (- (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining 1) 60) 60)) (* (div (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining 1) 60) 60)) 10) 10)))) (and (= top.usr.OK (and (>= X33 0) (<= X33 256))) (let ((X34 0)) (let ((X35 (ite X12 (ite (not (= X9 2)) 2 X34) X34))) (let ((X36 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X35) X35) X34))) (let ((X37 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X38 (ite X18 (ite (not (= X19 4)) 1 X36) X36))) (let ((X39 (ite X21 (ite (not (= X22 2)) 2 X38) X38))) (let ((X40 (ite X27 (ite (not (= X28 4)) 1 X39) X39))) (let ((X41 (ite X32 (ite (not (= X37 2)) 2 X40) X40))) (let ((X42 (ite X32 (ite (not (= X37 2)) 2 X37) X37))) (let ((X43 (and (= X42 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X44 (ite X43 (ite (= X42 2) 1 X42) X42))) (and (= top.impl.usr.chart_microwave_mode_logic_mode (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep (ite (not (= X2 4)) 1 X34) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X43 (ite (not (= X44 3)) 3 X41) X41) X36)) X34)) (= top.impl.usr.microwave_microwave_mode_logic_mode top.impl.usr.chart_microwave_mode_logic_mode) (let ((X45 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep X45 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X43 (ite (not (= X44 3)) 3 X44) X44) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) top.res.init_flag))))))))))))))))))))))))))))))))))))))))))))))))))))) +(define-fun trans ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int) (top.usr.KP_START! Bool) (top.usr.KP_CLEAR! Bool) (top.usr.KP_0! Bool) (top.usr.KP_1! Bool) (top.usr.KP_2! Bool) (top.usr.KP_3! Bool) (top.usr.KP_4! Bool) (top.usr.KP_5! Bool) (top.usr.KP_6! Bool) (top.usr.KP_7! Bool) (top.usr.KP_8! Bool) (top.usr.KP_9! Bool) (top.usr.DOOR_CLOSED! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.STEPS_TO_COOK! Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! Bool) (top.impl.usr.KP_01! Bool) (top.impl.usr.KP_11! Bool) (top.impl.usr.KP_21! Bool) (top.impl.usr.KP_31! Bool) (top.impl.usr.KP_41! Bool) (top.impl.usr.KP_51! Bool) (top.impl.usr.KP_61! Bool) (top.impl.usr.KP_71! Bool) (top.impl.usr.KP_81! Bool) (top.impl.usr.KP_91! Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___! Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root! Int) (top.impl.usr.chart_microwave_mode_logic_mode! Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining! Int) (top.impl.usr.microwave_microwave_mode_logic_mode! Int)) Bool + (and (let ((X1 top.impl.usr.chart_microwave_mode_logic_steps_remaining)) (let ((X2 top.impl.usr.chart_microwave_mode_logic_final_state_states___root)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ false top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep)) (let ((X3 (= X2 4))) (let ((X4 (and top.usr.KP_START! (not top.usr.KP_START)))) (let ((X5 (ite (not X4) 0 1))) (let ((X6 (ite (= 1 top.impl.usr.microwave_microwave_mode_logic_mode) true false))) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! X6) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (ite (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!) true (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock false top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step))) (= top.impl.usr.KP_91! top.usr.KP_9!) (= top.impl.usr.KP_81! top.usr.KP_8!) (= top.impl.usr.KP_71! top.usr.KP_7!) (= top.impl.usr.KP_61! top.usr.KP_6!) (= top.impl.usr.KP_51! top.usr.KP_5!) (= top.impl.usr.KP_41! top.usr.KP_4!) (= top.impl.usr.KP_31! top.usr.KP_3!) (= top.impl.usr.KP_21! top.usr.KP_2!) (= top.impl.usr.KP_11! top.usr.KP_1!) (= top.impl.usr.KP_01! top.usr.KP_0!) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite top.impl.usr.KP_01! 0 (ite top.impl.usr.KP_11! 1 (ite top.impl.usr.KP_21! 2 (ite top.impl.usr.KP_31! 3 (ite top.impl.usr.KP_41! 4 (ite top.impl.usr.KP_51! 5 (ite top.impl.usr.KP_61! 6 (ite top.impl.usr.KP_71! 7 (ite top.impl.usr.KP_81! 8 (ite top.impl.usr.KP_91! 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01! 0 (ite top.impl.usr.KP_11! 1 (ite top.impl.usr.KP_21! 2 (ite top.impl.usr.KP_31! 3 (ite top.impl.usr.KP_41! 4 (ite top.impl.usr.KP_51! 5 (ite top.impl.usr.KP_61! 6 (ite top.impl.usr.KP_71! 7 (ite top.impl.usr.KP_81! 8 (ite top.impl.usr.KP_91! 9 10)))))))))) 0)) (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! 0 (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! 0 (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.STEPS_TO_COOK! (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!)) 0 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! 60)) 1) top.impl.usr.STEPS_TO_COOK))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK! 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED!) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK! X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 (and top.usr.KP_CLEAR! (not top.usr.KP_CLEAR)))) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup___! true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (- (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining! 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining! 1) 60) 60)) (* (div (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining! 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining! 1) 60) 60)) 10) 10)))) (and (= top.usr.OK! (and (>= X33 0) (<= X33 256))) (let ((X34 top.impl.usr.chart_microwave_mode_logic_mode)) (let ((X35 (ite X12 (ite (not (= X9 2)) 2 X34) X34))) (let ((X36 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X35) X35) X34))) (let ((X37 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X38 (ite X18 (ite (not (= X19 4)) 1 X36) X36))) (let ((X39 (ite X21 (ite (not (= X22 2)) 2 X38) X38))) (let ((X40 (ite X27 (ite (not (= X28 4)) 1 X39) X39))) (let ((X41 (ite X32 (ite (not (= X37 2)) 2 X40) X40))) (let ((X42 (ite X32 (ite (not (= X37 2)) 2 X37) X37))) (let ((X43 (and (= X42 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X44 (ite X43 (ite (= X42 2) 1 X42) X42))) (and (= top.impl.usr.chart_microwave_mode_logic_mode! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! (ite (not (= X2 4)) 1 X34) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X43 (ite (not (= X44 3)) 3 X41) X41) X36)) X34)) (= top.impl.usr.microwave_microwave_mode_logic_mode! top.impl.usr.chart_microwave_mode_logic_mode!) (let ((X45 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! X45 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X43 (ite (not (= X44 3)) 3 X44) X44) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) (not top.res.init_flag!)))))))))))))))))))))))))))))))))))))))))))))))))))) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/microwave04.sl b/benchmarks/LIA/Lustre/microwave04.sl index 8f74869..ac62767 100644 --- a/benchmarks/LIA/Lustre/microwave04.sl +++ b/benchmarks/LIA/Lustre/microwave04.sl @@ -1,2540 +1,25 @@ (set-logic LIA) -(define-fun - __node_init_top_0 ( - (top.usr.KP_START_a_0 Bool) - (top.usr.KP_CLEAR_a_0 Bool) - (top.usr.KP_0_a_0 Bool) - (top.usr.KP_1_a_0 Bool) - (top.usr.KP_2_a_0 Bool) - (top.usr.KP_3_a_0 Bool) - (top.usr.KP_4_a_0 Bool) - (top.usr.KP_5_a_0 Bool) - (top.usr.KP_6_a_0 Bool) - (top.usr.KP_7_a_0 Bool) - (top.usr.KP_8_a_0 Bool) - (top.usr.KP_9_a_0 Bool) - (top.usr.DOOR_CLOSED_a_0 Bool) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.STEPS_TO_COOK_a_0 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) - (top.impl.usr.KP_01_a_0 Bool) - (top.impl.usr.KP_11_a_0 Bool) - (top.impl.usr.KP_21_a_0 Bool) - (top.impl.usr.KP_31_a_0 Bool) - (top.impl.usr.KP_41_a_0 Bool) - (top.impl.usr.KP_51_a_0 Bool) - (top.impl.usr.KP_61_a_0 Bool) - (top.impl.usr.KP_71_a_0 Bool) - (top.impl.usr.KP_81_a_0 Bool) - (top.impl.usr.KP_91_a_0 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int) - ) Bool - - (let - ((X1 Int 0)) - (let - ((X2 Int 0)) - (and - (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 true) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool top.usr.KP_START_a_0)) - (let - ((X5 Int (ite (not X4) 0 1))) - (and - (= top.impl.usr.KP_91_a_0 top.usr.KP_9_a_0) - (= top.impl.usr.KP_81_a_0 top.usr.KP_8_a_0) - (= top.impl.usr.KP_71_a_0 top.usr.KP_7_a_0) - (= top.impl.usr.KP_61_a_0 top.usr.KP_6_a_0) - (= top.impl.usr.KP_51_a_0 top.usr.KP_5_a_0) - (= top.impl.usr.KP_41_a_0 top.usr.KP_4_a_0) - (= top.impl.usr.KP_31_a_0 top.usr.KP_3_a_0) - (= top.impl.usr.KP_21_a_0 top.usr.KP_2_a_0) - (= top.impl.usr.KP_11_a_0 top.usr.KP_1_a_0) - (= top.impl.usr.KP_01_a_0 top.usr.KP_0_a_0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - (ite - top.usr.KP_CLEAR_a_0 - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01_a_0 - 0 - (ite - top.impl.usr.KP_11_a_0 - 1 - (ite - top.impl.usr.KP_21_a_0 - 2 - (ite - top.impl.usr.KP_31_a_0 - 3 - (ite - top.impl.usr.KP_41_a_0 - 4 - (ite - top.impl.usr.KP_51_a_0 - 5 - (ite - top.impl.usr.KP_61_a_0 - 6 - (ite - top.impl.usr.KP_71_a_0 - 7 - (ite - top.impl.usr.KP_81_a_0 - 8 - (ite top.impl.usr.KP_91_a_0 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01_a_0 - 0 - (ite - top.impl.usr.KP_11_a_0 - 1 - (ite - top.impl.usr.KP_21_a_0 - 2 - (ite - top.impl.usr.KP_31_a_0 - 3 - (ite - top.impl.usr.KP_41_a_0 - 4 - (ite - top.impl.usr.KP_51_a_0 - 5 - (ite - top.impl.usr.KP_61_a_0 - 6 - (ite - top.impl.usr.KP_71_a_0 - 7 - (ite - top.impl.usr.KP_81_a_0 - 8 - (ite top.impl.usr.KP_91_a_0 9 10)))))))))) - 0))) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - 0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 0) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 - true) - (let - ((X6 Bool true)) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 - X6) - (= - top.impl.usr.STEPS_TO_COOK_a_0 - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0)) - 0 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 60)) - 1))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK_a_0 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED_a_0) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK_a_0 X1))) - (let - ((X18 Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 Bool top.usr.KP_CLEAR_a_0)) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (div - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - 1) - 60) - 60)) - 10))) - (and - (= - top.usr.OK_a_0 - (and (>= X33 0) (<= X33 256))) - (let - ((X34 Int 0)) - (let - ((X35 - Int (ite - X12 - (ite (not (= X9 2)) 2 X34) - X34))) - (let - ((X36 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X35) - X35) - X34))) - (let - ((X37 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X38 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X36) - X36))) - (let - ((X39 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X38) - X38))) - (let - ((X40 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X39) - X39))) - (let - ((X41 - Int (ite - X32 - (ite - (not (= X37 2)) - 2 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X37 2)) - 2 - X37) - X37))) - (let - ((X43 - Bool (and - (= X42 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not (= X11 0)) - true - false))) - (not (or X32 X31)))))) - (let - ((X44 - Int (ite - X43 - (ite - (= X42 2) - 1 - X42) - X42))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - (ite - (not (= X2 4)) - 1 - X34) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X43 - (ite - (not (= X44 3)) - 3 - X41) - X41) - X36)) - X34)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode_a_0 - top.impl.usr.chart_microwave_mode_logic_mode_a_0) - (let - ((X45 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - X45 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X43 - (ite - (not (= X44 3)) - 3 - X44) - X44) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - top.res.init_flag_a_0)))))))))))))))))))))))))))))))))))))))))))))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.KP_START_a_1 Bool) - (top.usr.KP_CLEAR_a_1 Bool) - (top.usr.KP_0_a_1 Bool) - (top.usr.KP_1_a_1 Bool) - (top.usr.KP_2_a_1 Bool) - (top.usr.KP_3_a_1 Bool) - (top.usr.KP_4_a_1 Bool) - (top.usr.KP_5_a_1 Bool) - (top.usr.KP_6_a_1 Bool) - (top.usr.KP_7_a_1 Bool) - (top.usr.KP_8_a_1 Bool) - (top.usr.KP_9_a_1 Bool) - (top.usr.DOOR_CLOSED_a_1 Bool) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.STEPS_TO_COOK_a_1 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 Bool) - (top.impl.usr.KP_01_a_1 Bool) - (top.impl.usr.KP_11_a_1 Bool) - (top.impl.usr.KP_21_a_1 Bool) - (top.impl.usr.KP_31_a_1 Bool) - (top.impl.usr.KP_41_a_1 Bool) - (top.impl.usr.KP_51_a_1 Bool) - (top.impl.usr.KP_61_a_1 Bool) - (top.impl.usr.KP_71_a_1 Bool) - (top.impl.usr.KP_81_a_1 Bool) - (top.impl.usr.KP_91_a_1 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_1 Int) - (top.usr.KP_START_a_0 Bool) - (top.usr.KP_CLEAR_a_0 Bool) - (top.usr.KP_0_a_0 Bool) - (top.usr.KP_1_a_0 Bool) - (top.usr.KP_2_a_0 Bool) - (top.usr.KP_3_a_0 Bool) - (top.usr.KP_4_a_0 Bool) - (top.usr.KP_5_a_0 Bool) - (top.usr.KP_6_a_0 Bool) - (top.usr.KP_7_a_0 Bool) - (top.usr.KP_8_a_0 Bool) - (top.usr.KP_9_a_0 Bool) - (top.usr.DOOR_CLOSED_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.STEPS_TO_COOK_a_0 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) - (top.impl.usr.KP_01_a_0 Bool) - (top.impl.usr.KP_11_a_0 Bool) - (top.impl.usr.KP_21_a_0 Bool) - (top.impl.usr.KP_31_a_0 Bool) - (top.impl.usr.KP_41_a_0 Bool) - (top.impl.usr.KP_51_a_0 Bool) - (top.impl.usr.KP_61_a_0 Bool) - (top.impl.usr.KP_71_a_0 Bool) - (top.impl.usr.KP_81_a_0 Bool) - (top.impl.usr.KP_91_a_0 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int) - ) Bool - - (let - ((X1 Int top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0)) - (let - ((X2 - Int top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0)) - (and - (= - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - false - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0)) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool (and top.usr.KP_START_a_1 (not top.usr.KP_START_a_0)))) - (let - ((X5 Int (ite (not X4) 0 1))) - (let - ((X6 - Bool (ite - (= 1 top.impl.usr.microwave_microwave_mode_logic_mode_a_0) - true - false))) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - X6) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (ite - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1) - true - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 - false - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0))) - (= top.impl.usr.KP_91_a_1 top.usr.KP_9_a_1) - (= top.impl.usr.KP_81_a_1 top.usr.KP_8_a_1) - (= top.impl.usr.KP_71_a_1 top.usr.KP_7_a_1) - (= top.impl.usr.KP_61_a_1 top.usr.KP_6_a_1) - (= top.impl.usr.KP_51_a_1 top.usr.KP_5_a_1) - (= top.impl.usr.KP_41_a_1 top.usr.KP_4_a_1) - (= top.impl.usr.KP_31_a_1 top.usr.KP_3_a_1) - (= top.impl.usr.KP_21_a_1 top.usr.KP_2_a_1) - (= top.impl.usr.KP_11_a_1 top.usr.KP_1_a_1) - (= top.impl.usr.KP_01_a_1 top.usr.KP_0_a_1) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01_a_1 - 0 - (ite - top.impl.usr.KP_11_a_1 - 1 - (ite - top.impl.usr.KP_21_a_1 - 2 - (ite - top.impl.usr.KP_31_a_1 - 3 - (ite - top.impl.usr.KP_41_a_1 - 4 - (ite - top.impl.usr.KP_51_a_1 - 5 - (ite - top.impl.usr.KP_61_a_1 - 6 - (ite - top.impl.usr.KP_71_a_1 - 7 - (ite - top.impl.usr.KP_81_a_1 - 8 - (ite top.impl.usr.KP_91_a_1 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01_a_1 - 0 - (ite - top.impl.usr.KP_11_a_1 - 1 - (ite - top.impl.usr.KP_21_a_1 - 2 - (ite - top.impl.usr.KP_31_a_1 - 3 - (ite - top.impl.usr.KP_41_a_1 - 4 - (ite - top.impl.usr.KP_51_a_1 - 5 - (ite - top.impl.usr.KP_61_a_1 - 6 - (ite - top.impl.usr.KP_71_a_1 - 7 - (ite - top.impl.usr.KP_81_a_1 - 8 - (ite top.impl.usr.KP_91_a_1 9 10)))))))))) - 0)) - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and - top.impl.usr.KP_71_a_1 - (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and - top.impl.usr.KP_81_a_1 - (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - 0 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and - top.impl.usr.KP_71_a_1 - (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and - top.impl.usr.KP_81_a_1 - (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - 0 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and - top.impl.usr.KP_71_a_1 - (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and - top.impl.usr.KP_81_a_1 - (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.STEPS_TO_COOK_a_1 - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1)) - 0 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 - 60)) - 1) - top.impl.usr.STEPS_TO_COOK_a_0))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK_a_1 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED_a_1) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK_a_1 X1))) - (let - ((X18 Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 - Bool (and - top.usr.KP_CLEAR_a_1 - (not top.usr.KP_CLEAR_a_0)))) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (div - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - 1) - 60) - 60)) - 10))) - (and - (= - top.usr.OK_a_1 - (and (>= X33 0) (<= X33 256))) - (let - ((X34 - Int top.impl.usr.chart_microwave_mode_logic_mode_a_0)) - (let - ((X35 - Int (ite - X12 - (ite (not (= X9 2)) 2 X34) - X34))) - (let - ((X36 - Int (ite - X7 - (ite - X14 - (ite (not (= X13 3)) 3 X35) - X35) - X34))) - (let - ((X37 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X38 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X36) - X36))) - (let - ((X39 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X38) - X38))) - (let - ((X40 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X39) - X39))) - (let - ((X41 - Int (ite - X32 - (ite - (not (= X37 2)) - 2 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X37 2)) - 2 - X37) - X37))) - (let - ((X43 - Bool (and - (= X42 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not (= X11 0)) - true - false))) - (not (or X32 X31)))))) - (let - ((X44 - Int (ite - X43 - (ite - (= X42 2) - 1 - X42) - X42))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - (ite - (not (= X2 4)) - 1 - X34) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X43 - (ite - (not (= X44 3)) - 3 - X41) - X41) - X36)) - X34)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode_a_1 - top.impl.usr.chart_microwave_mode_logic_mode_a_1) - (let - ((X45 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - X45 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X43 - (ite - (not (= X44 3)) - 3 - X44) - X44) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - (not - top.res.init_flag_a_1)))))))))))))))))))))))))))))))))))))))))))))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) -)) - -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.KP_START Bool) -(declare-primed-var top.usr.KP_CLEAR Bool) -(declare-primed-var top.usr.KP_0 Bool) -(declare-primed-var top.usr.KP_1 Bool) -(declare-primed-var top.usr.KP_2 Bool) -(declare-primed-var top.usr.KP_3 Bool) -(declare-primed-var top.usr.KP_4 Bool) -(declare-primed-var top.usr.KP_5 Bool) -(declare-primed-var top.usr.KP_6 Bool) -(declare-primed-var top.usr.KP_7 Bool) -(declare-primed-var top.usr.KP_8 Bool) -(declare-primed-var top.usr.KP_9 Bool) -(declare-primed-var top.usr.DOOR_CLOSED Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.STEPS_TO_COOK Int) -(declare-primed-var top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) -(declare-primed-var top.impl.usr.KP_01 Bool) -(declare-primed-var top.impl.usr.KP_11 Bool) -(declare-primed-var top.impl.usr.KP_21 Bool) -(declare-primed-var top.impl.usr.KP_31 Bool) -(declare-primed-var top.impl.usr.KP_41 Bool) -(declare-primed-var top.impl.usr.KP_51 Bool) -(declare-primed-var top.impl.usr.KP_61 Bool) -(declare-primed-var top.impl.usr.KP_71 Bool) -(declare-primed-var top.impl.usr.KP_81 Bool) -(declare-primed-var top.impl.usr.KP_91 Bool) -(declare-primed-var top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_mode Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) -(declare-primed-var top.impl.usr.microwave_microwave_mode_logic_mode Int) - -(define-fun - init ( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - ) Bool - - (let - ((X1 Int 0)) - (let - ((X2 Int 0)) - (and - (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep true) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool top.usr.KP_START)) - (let - ((X5 Int (ite (not X4) 0 1))) - (and - (= top.impl.usr.KP_91 top.usr.KP_9) - (= top.impl.usr.KP_81 top.usr.KP_8) - (= top.impl.usr.KP_71 top.usr.KP_7) - (= top.impl.usr.KP_61 top.usr.KP_6) - (= top.impl.usr.KP_51 top.usr.KP_5) - (= top.impl.usr.KP_41 top.usr.KP_4) - (= top.impl.usr.KP_31 top.usr.KP_3) - (= top.impl.usr.KP_21 top.usr.KP_2) - (= top.impl.usr.KP_11 top.usr.KP_1) - (= top.impl.usr.KP_01 top.usr.KP_0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - (ite - top.usr.KP_CLEAR - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01 - 0 - (ite - top.impl.usr.KP_11 - 1 - (ite - top.impl.usr.KP_21 - 2 - (ite - top.impl.usr.KP_31 - 3 - (ite - top.impl.usr.KP_41 - 4 - (ite - top.impl.usr.KP_51 - 5 - (ite - top.impl.usr.KP_61 - 6 - (ite - top.impl.usr.KP_71 - 7 - (ite - top.impl.usr.KP_81 - 8 - (ite top.impl.usr.KP_91 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01 - 0 - (ite - top.impl.usr.KP_11 - 1 - (ite - top.impl.usr.KP_21 - 2 - (ite - top.impl.usr.KP_31 - 3 - (ite - top.impl.usr.KP_41 - 4 - (ite - top.impl.usr.KP_51 - 5 - (ite - top.impl.usr.KP_61 - 6 - (ite - top.impl.usr.KP_71 - 7 - (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) - 0))) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - 0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY - 0) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step - true) - (let - ((X6 Bool true)) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock - X6) - (= - top.impl.usr.STEPS_TO_COOK - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock)) - 0 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY - 60)) - 1))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK X1))) - (let - ((X18 Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 Bool top.usr.KP_CLEAR)) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup___ - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (div - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining - 1) - 60) - 60)) - 10))) - (and - (= - top.usr.OK - (and (>= X33 0) (<= X33 256))) - (let - ((X34 Int 0)) - (let - ((X35 - Int (ite - X12 - (ite (not (= X9 2)) 2 X34) - X34))) - (let - ((X36 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X35) - X35) - X34))) - (let - ((X37 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X38 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X36) - X36))) - (let - ((X39 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X38) - X38))) - (let - ((X40 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X39) - X39))) - (let - ((X41 - Int (ite - X32 - (ite - (not (= X37 2)) - 2 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X37 2)) - 2 - X37) - X37))) - (let - ((X43 - Bool (and - (= X42 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not (= X11 0)) - true - false))) - (not (or X32 X31)))))) - (let - ((X44 - Int (ite - X43 - (ite - (= X42 2) - 1 - X42) - X42))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - (ite - (not (= X2 4)) - 1 - X34) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X43 - (ite - (not (= X44 3)) - 3 - X41) - X41) - X36)) - X34)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode - top.impl.usr.chart_microwave_mode_logic_mode) - (let - ((X45 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - X45 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X43 - (ite - (not (= X44 3)) - 3 - X44) - X44) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - top.res.init_flag)))))))))))))))))))))))))))))))))))))))))))))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - - ;; Next state. - (top.usr.KP_START! Bool) - (top.usr.KP_CLEAR! Bool) - (top.usr.KP_0! Bool) - (top.usr.KP_1! Bool) - (top.usr.KP_2! Bool) - (top.usr.KP_3! Bool) - (top.usr.KP_4! Bool) - (top.usr.KP_5! Bool) - (top.usr.KP_6! Bool) - (top.usr.KP_7! Bool) - (top.usr.KP_8! Bool) - (top.usr.KP_9! Bool) - (top.usr.DOOR_CLOSED! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.STEPS_TO_COOK! Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! Bool) - (top.impl.usr.KP_01! Bool) - (top.impl.usr.KP_11! Bool) - (top.impl.usr.KP_21! Bool) - (top.impl.usr.KP_31! Bool) - (top.impl.usr.KP_41! Bool) - (top.impl.usr.KP_51! Bool) - (top.impl.usr.KP_61! Bool) - (top.impl.usr.KP_71! Bool) - (top.impl.usr.KP_81! Bool) - (top.impl.usr.KP_91! Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___! Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root! Int) - (top.impl.usr.chart_microwave_mode_logic_mode! Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining! Int) - (top.impl.usr.microwave_microwave_mode_logic_mode! Int) - - ) Bool - - (and - (let - ((X1 Int top.impl.usr.chart_microwave_mode_logic_steps_remaining)) - (let - ((X2 - Int top.impl.usr.chart_microwave_mode_logic_final_state_states___root)) - (and - (= - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - false - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep)) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool (and top.usr.KP_START! (not top.usr.KP_START)))) - (let - ((X5 Int (ite (not X4) 0 1))) - (let - ((X6 - Bool (ite - (= 1 top.impl.usr.microwave_microwave_mode_logic_mode) - true - false))) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - X6) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (ite - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!) - true - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock - false - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step))) - (= top.impl.usr.KP_91! top.usr.KP_9!) - (= top.impl.usr.KP_81! top.usr.KP_8!) - (= top.impl.usr.KP_71! top.usr.KP_7!) - (= top.impl.usr.KP_61! top.usr.KP_6!) - (= top.impl.usr.KP_51! top.usr.KP_5!) - (= top.impl.usr.KP_41! top.usr.KP_4!) - (= top.impl.usr.KP_31! top.usr.KP_3!) - (= top.impl.usr.KP_21! top.usr.KP_2!) - (= top.impl.usr.KP_11! top.usr.KP_1!) - (= top.impl.usr.KP_01! top.usr.KP_0!) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01! - 0 - (ite - top.impl.usr.KP_11! - 1 - (ite - top.impl.usr.KP_21! - 2 - (ite - top.impl.usr.KP_31! - 3 - (ite - top.impl.usr.KP_41! - 4 - (ite - top.impl.usr.KP_51! - 5 - (ite - top.impl.usr.KP_61! - 6 - (ite - top.impl.usr.KP_71! - 7 - (ite - top.impl.usr.KP_81! - 8 - (ite top.impl.usr.KP_91! 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01! - 0 - (ite - top.impl.usr.KP_11! - 1 - (ite - top.impl.usr.KP_21! - 2 - (ite - top.impl.usr.KP_31! - 3 - (ite - top.impl.usr.KP_41! - 4 - (ite - top.impl.usr.KP_51! - 5 - (ite - top.impl.usr.KP_61! - 6 - (ite - top.impl.usr.KP_71! - 7 - (ite - top.impl.usr.KP_81! - 8 - (ite top.impl.usr.KP_91! 9 10)))))))))) - 0)) - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and - top.impl.usr.KP_91! - (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - 0 - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and - top.impl.usr.KP_91! - (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - 0 - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and - top.impl.usr.KP_91! - (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.STEPS_TO_COOK! - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!)) - 0 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! - 60)) - 1) - top.impl.usr.STEPS_TO_COOK))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK! 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED!) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK! X1))) - (let - ((X18 Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 - Bool (and - top.usr.KP_CLEAR! - (not top.usr.KP_CLEAR)))) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup___! - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (div - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - 1) - 60) - 60)) - 10))) - (and - (= - top.usr.OK! - (and (>= X33 0) (<= X33 256))) - (let - ((X34 - Int top.impl.usr.chart_microwave_mode_logic_mode)) - (let - ((X35 - Int (ite - X12 - (ite (not (= X9 2)) 2 X34) - X34))) - (let - ((X36 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X35) - X35) - X34))) - (let - ((X37 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X38 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X36) - X36))) - (let - ((X39 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X38) - X38))) - (let - ((X40 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X39) - X39))) - (let - ((X41 - Int (ite - X32 - (ite - (not (= X37 2)) - 2 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X37 2)) - 2 - X37) - X37))) - (let - ((X43 - Bool (and - (= X42 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not (= X11 0)) - true - false))) - (not (or X32 X31)))))) - (let - ((X44 - Int (ite - X43 - (ite - (= X42 2) - 1 - X42) - X42))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - (ite - (not (= X2 4)) - 1 - X34) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X43 - (ite - (not (= X44 3)) - 3 - X41) - X41) - X36)) - X34)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode! - top.impl.usr.chart_microwave_mode_logic_mode!) - (let - ((X45 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - X45 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X43 - (ite - (not (= X44 3)) - 3 - X44) - X44) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - (not - top.res.init_flag!)))))))))))))))))))))))))))))))))))))))))))))))))))) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - ) Bool - - top.usr.OK -) +(define-fun __node_init_top_0 ((top.usr.KP_START_a_0 Bool) (top.usr.KP_CLEAR_a_0 Bool) (top.usr.KP_0_a_0 Bool) (top.usr.KP_1_a_0 Bool) (top.usr.KP_2_a_0 Bool) (top.usr.KP_3_a_0 Bool) (top.usr.KP_4_a_0 Bool) (top.usr.KP_5_a_0 Bool) (top.usr.KP_6_a_0 Bool) (top.usr.KP_7_a_0 Bool) (top.usr.KP_8_a_0 Bool) (top.usr.KP_9_a_0 Bool) (top.usr.DOOR_CLOSED_a_0 Bool) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.STEPS_TO_COOK_a_0 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) (top.impl.usr.KP_01_a_0 Bool) (top.impl.usr.KP_11_a_0 Bool) (top.impl.usr.KP_21_a_0 Bool) (top.impl.usr.KP_31_a_0 Bool) (top.impl.usr.KP_41_a_0 Bool) (top.impl.usr.KP_51_a_0 Bool) (top.impl.usr.KP_61_a_0 Bool) (top.impl.usr.KP_71_a_0 Bool) (top.impl.usr.KP_81_a_0 Bool) (top.impl.usr.KP_91_a_0 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int)) Bool + (let ((X1 0)) (let ((X2 0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 true) (let ((X3 (= X2 4))) (let ((X4 top.usr.KP_START_a_0)) (let ((X5 (ite (not X4) 0 1))) (and (= top.impl.usr.KP_91_a_0 top.usr.KP_9_a_0) (= top.impl.usr.KP_81_a_0 top.usr.KP_8_a_0) (= top.impl.usr.KP_71_a_0 top.usr.KP_7_a_0) (= top.impl.usr.KP_61_a_0 top.usr.KP_6_a_0) (= top.impl.usr.KP_51_a_0 top.usr.KP_5_a_0) (= top.impl.usr.KP_41_a_0 top.usr.KP_4_a_0) (= top.impl.usr.KP_31_a_0 top.usr.KP_3_a_0) (= top.impl.usr.KP_21_a_0 top.usr.KP_2_a_0) (= top.impl.usr.KP_11_a_0 top.usr.KP_1_a_0) (= top.impl.usr.KP_01_a_0 top.usr.KP_0_a_0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 (ite top.usr.KP_CLEAR_a_0 0 (ite (ite (<= (ite top.impl.usr.KP_01_a_0 0 (ite top.impl.usr.KP_11_a_0 1 (ite top.impl.usr.KP_21_a_0 2 (ite top.impl.usr.KP_31_a_0 3 (ite top.impl.usr.KP_41_a_0 4 (ite top.impl.usr.KP_51_a_0 5 (ite top.impl.usr.KP_61_a_0 6 (ite top.impl.usr.KP_71_a_0 7 (ite top.impl.usr.KP_81_a_0 8 (ite top.impl.usr.KP_91_a_0 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01_a_0 0 (ite top.impl.usr.KP_11_a_0 1 (ite top.impl.usr.KP_21_a_0 2 (ite top.impl.usr.KP_31_a_0 3 (ite top.impl.usr.KP_41_a_0 4 (ite top.impl.usr.KP_51_a_0 5 (ite top.impl.usr.KP_61_a_0 6 (ite top.impl.usr.KP_71_a_0 7 (ite top.impl.usr.KP_81_a_0 8 (ite top.impl.usr.KP_91_a_0 9 10)))))))))) 0))) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 0) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 true) (let ((X6 true)) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 X6) (= top.impl.usr.STEPS_TO_COOK_a_0 (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0)) 0 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 60)) 1))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK_a_0 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED_a_0) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK_a_0 X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 top.usr.KP_CLEAR_a_0)) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (div (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 1) 60) 60)) 10))) (and (= top.usr.OK_a_0 (and (>= X33 0) (<= X33 256))) (let ((X34 0)) (let ((X35 (ite X12 (ite (not (= X9 2)) 2 X34) X34))) (let ((X36 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X35) X35) X34))) (let ((X37 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X38 (ite X18 (ite (not (= X19 4)) 1 X36) X36))) (let ((X39 (ite X21 (ite (not (= X22 2)) 2 X38) X38))) (let ((X40 (ite X27 (ite (not (= X28 4)) 1 X39) X39))) (let ((X41 (ite X32 (ite (not (= X37 2)) 2 X40) X40))) (let ((X42 (ite X32 (ite (not (= X37 2)) 2 X37) X37))) (let ((X43 (and (= X42 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X44 (ite X43 (ite (= X42 2) 1 X42) X42))) (and (= top.impl.usr.chart_microwave_mode_logic_mode_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 (ite (not (= X2 4)) 1 X34) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X43 (ite (not (= X44 3)) 3 X41) X41) X36)) X34)) (= top.impl.usr.microwave_microwave_mode_logic_mode_a_0 top.impl.usr.chart_microwave_mode_logic_mode_a_0) (let ((X45 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 X45 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X43 (ite (not (= X44 3)) 3 X44) X44) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) top.res.init_flag_a_0))))))))))))))))))))))))))))))))))))))))))))))))))))) +(define-fun __node_trans_top_0 ((top.usr.KP_START_a_1 Bool) (top.usr.KP_CLEAR_a_1 Bool) (top.usr.KP_0_a_1 Bool) (top.usr.KP_1_a_1 Bool) (top.usr.KP_2_a_1 Bool) (top.usr.KP_3_a_1 Bool) (top.usr.KP_4_a_1 Bool) (top.usr.KP_5_a_1 Bool) (top.usr.KP_6_a_1 Bool) (top.usr.KP_7_a_1 Bool) (top.usr.KP_8_a_1 Bool) (top.usr.KP_9_a_1 Bool) (top.usr.DOOR_CLOSED_a_1 Bool) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.STEPS_TO_COOK_a_1 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 Bool) (top.impl.usr.KP_01_a_1 Bool) (top.impl.usr.KP_11_a_1 Bool) (top.impl.usr.KP_21_a_1 Bool) (top.impl.usr.KP_31_a_1 Bool) (top.impl.usr.KP_41_a_1 Bool) (top.impl.usr.KP_51_a_1 Bool) (top.impl.usr.KP_61_a_1 Bool) (top.impl.usr.KP_71_a_1 Bool) (top.impl.usr.KP_81_a_1 Bool) (top.impl.usr.KP_91_a_1 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_1 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_1 Int) (top.usr.KP_START_a_0 Bool) (top.usr.KP_CLEAR_a_0 Bool) (top.usr.KP_0_a_0 Bool) (top.usr.KP_1_a_0 Bool) (top.usr.KP_2_a_0 Bool) (top.usr.KP_3_a_0 Bool) (top.usr.KP_4_a_0 Bool) (top.usr.KP_5_a_0 Bool) (top.usr.KP_6_a_0 Bool) (top.usr.KP_7_a_0 Bool) (top.usr.KP_8_a_0 Bool) (top.usr.KP_9_a_0 Bool) (top.usr.DOOR_CLOSED_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.STEPS_TO_COOK_a_0 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) (top.impl.usr.KP_01_a_0 Bool) (top.impl.usr.KP_11_a_0 Bool) (top.impl.usr.KP_21_a_0 Bool) (top.impl.usr.KP_31_a_0 Bool) (top.impl.usr.KP_41_a_0 Bool) (top.impl.usr.KP_51_a_0 Bool) (top.impl.usr.KP_61_a_0 Bool) (top.impl.usr.KP_71_a_0 Bool) (top.impl.usr.KP_81_a_0 Bool) (top.impl.usr.KP_91_a_0 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int)) Bool + (let ((X1 top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0)) (let ((X2 top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 false top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0)) (let ((X3 (= X2 4))) (let ((X4 (and top.usr.KP_START_a_1 (not top.usr.KP_START_a_0)))) (let ((X5 (ite (not X4) 0 1))) (let ((X6 (ite (= 1 top.impl.usr.microwave_microwave_mode_logic_mode_a_0) true false))) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 X6) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (ite (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1) true (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 false top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0))) (= top.impl.usr.KP_91_a_1 top.usr.KP_9_a_1) (= top.impl.usr.KP_81_a_1 top.usr.KP_8_a_1) (= top.impl.usr.KP_71_a_1 top.usr.KP_7_a_1) (= top.impl.usr.KP_61_a_1 top.usr.KP_6_a_1) (= top.impl.usr.KP_51_a_1 top.usr.KP_5_a_1) (= top.impl.usr.KP_41_a_1 top.usr.KP_4_a_1) (= top.impl.usr.KP_31_a_1 top.usr.KP_3_a_1) (= top.impl.usr.KP_21_a_1 top.usr.KP_2_a_1) (= top.impl.usr.KP_11_a_1 top.usr.KP_1_a_1) (= top.impl.usr.KP_01_a_1 top.usr.KP_0_a_1) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite top.impl.usr.KP_01_a_1 0 (ite top.impl.usr.KP_11_a_1 1 (ite top.impl.usr.KP_21_a_1 2 (ite top.impl.usr.KP_31_a_1 3 (ite top.impl.usr.KP_41_a_1 4 (ite top.impl.usr.KP_51_a_1 5 (ite top.impl.usr.KP_61_a_1 6 (ite top.impl.usr.KP_71_a_1 7 (ite top.impl.usr.KP_81_a_1 8 (ite top.impl.usr.KP_91_a_1 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01_a_1 0 (ite top.impl.usr.KP_11_a_1 1 (ite top.impl.usr.KP_21_a_1 2 (ite top.impl.usr.KP_31_a_1 3 (ite top.impl.usr.KP_41_a_1 4 (ite top.impl.usr.KP_51_a_1 5 (ite top.impl.usr.KP_61_a_1 6 (ite top.impl.usr.KP_71_a_1 7 (ite top.impl.usr.KP_81_a_1 8 (ite top.impl.usr.KP_91_a_1 9 10)))))))))) 0)) (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 0 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 0 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.STEPS_TO_COOK_a_1 (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1)) 0 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 60)) 1) top.impl.usr.STEPS_TO_COOK_a_0))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK_a_1 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED_a_1) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK_a_1 X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 (and top.usr.KP_CLEAR_a_1 (not top.usr.KP_CLEAR_a_0)))) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (div (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 1) 60) 60)) 10))) (and (= top.usr.OK_a_1 (and (>= X33 0) (<= X33 256))) (let ((X34 top.impl.usr.chart_microwave_mode_logic_mode_a_0)) (let ((X35 (ite X12 (ite (not (= X9 2)) 2 X34) X34))) (let ((X36 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X35) X35) X34))) (let ((X37 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X38 (ite X18 (ite (not (= X19 4)) 1 X36) X36))) (let ((X39 (ite X21 (ite (not (= X22 2)) 2 X38) X38))) (let ((X40 (ite X27 (ite (not (= X28 4)) 1 X39) X39))) (let ((X41 (ite X32 (ite (not (= X37 2)) 2 X40) X40))) (let ((X42 (ite X32 (ite (not (= X37 2)) 2 X37) X37))) (let ((X43 (and (= X42 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X44 (ite X43 (ite (= X42 2) 1 X42) X42))) (and (= top.impl.usr.chart_microwave_mode_logic_mode_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 (ite (not (= X2 4)) 1 X34) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X43 (ite (not (= X44 3)) 3 X41) X41) X36)) X34)) (= top.impl.usr.microwave_microwave_mode_logic_mode_a_1 top.impl.usr.chart_microwave_mode_logic_mode_a_1) (let ((X45 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 X45 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X43 (ite (not (= X44 3)) 3 X44) X44) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) (not top.res.init_flag_a_1))))))))))))))))))))))))))))))))))))))))))))))))))))) +(synth-inv str_invariant ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int))) + +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int)) Bool + (let ((X1 0)) (let ((X2 0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep true) (let ((X3 (= X2 4))) (let ((X4 top.usr.KP_START)) (let ((X5 (ite (not X4) 0 1))) (and (= top.impl.usr.KP_91 top.usr.KP_9) (= top.impl.usr.KP_81 top.usr.KP_8) (= top.impl.usr.KP_71 top.usr.KP_7) (= top.impl.usr.KP_61 top.usr.KP_6) (= top.impl.usr.KP_51 top.usr.KP_5) (= top.impl.usr.KP_41 top.usr.KP_4) (= top.impl.usr.KP_31 top.usr.KP_3) (= top.impl.usr.KP_21 top.usr.KP_2) (= top.impl.usr.KP_11 top.usr.KP_1) (= top.impl.usr.KP_01 top.usr.KP_0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY (ite top.usr.KP_CLEAR 0 (ite (ite (<= (ite top.impl.usr.KP_01 0 (ite top.impl.usr.KP_11 1 (ite top.impl.usr.KP_21 2 (ite top.impl.usr.KP_31 3 (ite top.impl.usr.KP_41 4 (ite top.impl.usr.KP_51 5 (ite top.impl.usr.KP_61 6 (ite top.impl.usr.KP_71 7 (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01 0 (ite top.impl.usr.KP_11 1 (ite top.impl.usr.KP_21 2 (ite top.impl.usr.KP_31 3 (ite top.impl.usr.KP_41 4 (ite top.impl.usr.KP_51 5 (ite top.impl.usr.KP_61 6 (ite top.impl.usr.KP_71 7 (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) 0))) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY 0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY 0) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step true) (let ((X6 true)) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock X6) (= top.impl.usr.STEPS_TO_COOK (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock)) 0 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY 60)) 1))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 top.usr.KP_CLEAR)) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup___ true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (div (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining 1) 60) 60)) 10))) (and (= top.usr.OK (and (>= X33 0) (<= X33 256))) (let ((X34 0)) (let ((X35 (ite X12 (ite (not (= X9 2)) 2 X34) X34))) (let ((X36 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X35) X35) X34))) (let ((X37 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X38 (ite X18 (ite (not (= X19 4)) 1 X36) X36))) (let ((X39 (ite X21 (ite (not (= X22 2)) 2 X38) X38))) (let ((X40 (ite X27 (ite (not (= X28 4)) 1 X39) X39))) (let ((X41 (ite X32 (ite (not (= X37 2)) 2 X40) X40))) (let ((X42 (ite X32 (ite (not (= X37 2)) 2 X37) X37))) (let ((X43 (and (= X42 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X44 (ite X43 (ite (= X42 2) 1 X42) X42))) (and (= top.impl.usr.chart_microwave_mode_logic_mode (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep (ite (not (= X2 4)) 1 X34) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X43 (ite (not (= X44 3)) 3 X41) X41) X36)) X34)) (= top.impl.usr.microwave_microwave_mode_logic_mode top.impl.usr.chart_microwave_mode_logic_mode) (let ((X45 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep X45 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X43 (ite (not (= X44 3)) 3 X44) X44) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) top.res.init_flag))))))))))))))))))))))))))))))))))))))))))))))))))))) +(define-fun trans ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int) (top.usr.KP_START! Bool) (top.usr.KP_CLEAR! Bool) (top.usr.KP_0! Bool) (top.usr.KP_1! Bool) (top.usr.KP_2! Bool) (top.usr.KP_3! Bool) (top.usr.KP_4! Bool) (top.usr.KP_5! Bool) (top.usr.KP_6! Bool) (top.usr.KP_7! Bool) (top.usr.KP_8! Bool) (top.usr.KP_9! Bool) (top.usr.DOOR_CLOSED! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.STEPS_TO_COOK! Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! Bool) (top.impl.usr.KP_01! Bool) (top.impl.usr.KP_11! Bool) (top.impl.usr.KP_21! Bool) (top.impl.usr.KP_31! Bool) (top.impl.usr.KP_41! Bool) (top.impl.usr.KP_51! Bool) (top.impl.usr.KP_61! Bool) (top.impl.usr.KP_71! Bool) (top.impl.usr.KP_81! Bool) (top.impl.usr.KP_91! Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___! Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root! Int) (top.impl.usr.chart_microwave_mode_logic_mode! Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining! Int) (top.impl.usr.microwave_microwave_mode_logic_mode! Int)) Bool + (and (let ((X1 top.impl.usr.chart_microwave_mode_logic_steps_remaining)) (let ((X2 top.impl.usr.chart_microwave_mode_logic_final_state_states___root)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ false top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep)) (let ((X3 (= X2 4))) (let ((X4 (and top.usr.KP_START! (not top.usr.KP_START)))) (let ((X5 (ite (not X4) 0 1))) (let ((X6 (ite (= 1 top.impl.usr.microwave_microwave_mode_logic_mode) true false))) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! X6) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (ite (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!) true (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock false top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step))) (= top.impl.usr.KP_91! top.usr.KP_9!) (= top.impl.usr.KP_81! top.usr.KP_8!) (= top.impl.usr.KP_71! top.usr.KP_7!) (= top.impl.usr.KP_61! top.usr.KP_6!) (= top.impl.usr.KP_51! top.usr.KP_5!) (= top.impl.usr.KP_41! top.usr.KP_4!) (= top.impl.usr.KP_31! top.usr.KP_3!) (= top.impl.usr.KP_21! top.usr.KP_2!) (= top.impl.usr.KP_11! top.usr.KP_1!) (= top.impl.usr.KP_01! top.usr.KP_0!) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite top.impl.usr.KP_01! 0 (ite top.impl.usr.KP_11! 1 (ite top.impl.usr.KP_21! 2 (ite top.impl.usr.KP_31! 3 (ite top.impl.usr.KP_41! 4 (ite top.impl.usr.KP_51! 5 (ite top.impl.usr.KP_61! 6 (ite top.impl.usr.KP_71! 7 (ite top.impl.usr.KP_81! 8 (ite top.impl.usr.KP_91! 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01! 0 (ite top.impl.usr.KP_11! 1 (ite top.impl.usr.KP_21! 2 (ite top.impl.usr.KP_31! 3 (ite top.impl.usr.KP_41! 4 (ite top.impl.usr.KP_51! 5 (ite top.impl.usr.KP_61! 6 (ite top.impl.usr.KP_71! 7 (ite top.impl.usr.KP_81! 8 (ite top.impl.usr.KP_91! 9 10)))))))))) 0)) (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! 0 (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! 0 (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.STEPS_TO_COOK! (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!)) 0 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! 60)) 1) top.impl.usr.STEPS_TO_COOK))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK! 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED!) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK! X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 (and top.usr.KP_CLEAR! (not top.usr.KP_CLEAR)))) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup___! true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (div (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining! 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining! 1) 60) 60)) 10))) (and (= top.usr.OK! (and (>= X33 0) (<= X33 256))) (let ((X34 top.impl.usr.chart_microwave_mode_logic_mode)) (let ((X35 (ite X12 (ite (not (= X9 2)) 2 X34) X34))) (let ((X36 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X35) X35) X34))) (let ((X37 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X38 (ite X18 (ite (not (= X19 4)) 1 X36) X36))) (let ((X39 (ite X21 (ite (not (= X22 2)) 2 X38) X38))) (let ((X40 (ite X27 (ite (not (= X28 4)) 1 X39) X39))) (let ((X41 (ite X32 (ite (not (= X37 2)) 2 X40) X40))) (let ((X42 (ite X32 (ite (not (= X37 2)) 2 X37) X37))) (let ((X43 (and (= X42 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X44 (ite X43 (ite (= X42 2) 1 X42) X42))) (and (= top.impl.usr.chart_microwave_mode_logic_mode! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! (ite (not (= X2 4)) 1 X34) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X43 (ite (not (= X44 3)) 3 X41) X41) X36)) X34)) (= top.impl.usr.microwave_microwave_mode_logic_mode! top.impl.usr.chart_microwave_mode_logic_mode!) (let ((X45 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! X45 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X43 (ite (not (= X44 3)) 3 X44) X44) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) (not top.res.init_flag!)))))))))))))))))))))))))))))))))))))))))))))))))))) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/microwave05.sl b/benchmarks/LIA/Lustre/microwave05.sl index 0a4cd04..2439034 100644 --- a/benchmarks/LIA/Lustre/microwave05.sl +++ b/benchmarks/LIA/Lustre/microwave05.sl @@ -1,2508 +1,25 @@ (set-logic LIA) -(define-fun - __node_init_top_0 ( - (top.usr.KP_START_a_0 Bool) - (top.usr.KP_CLEAR_a_0 Bool) - (top.usr.KP_0_a_0 Bool) - (top.usr.KP_1_a_0 Bool) - (top.usr.KP_2_a_0 Bool) - (top.usr.KP_3_a_0 Bool) - (top.usr.KP_4_a_0 Bool) - (top.usr.KP_5_a_0 Bool) - (top.usr.KP_6_a_0 Bool) - (top.usr.KP_7_a_0 Bool) - (top.usr.KP_8_a_0 Bool) - (top.usr.KP_9_a_0 Bool) - (top.usr.DOOR_CLOSED_a_0 Bool) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.STEPS_TO_COOK_a_0 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) - (top.impl.usr.KP_01_a_0 Bool) - (top.impl.usr.KP_11_a_0 Bool) - (top.impl.usr.KP_21_a_0 Bool) - (top.impl.usr.KP_31_a_0 Bool) - (top.impl.usr.KP_41_a_0 Bool) - (top.impl.usr.KP_51_a_0 Bool) - (top.impl.usr.KP_61_a_0 Bool) - (top.impl.usr.KP_71_a_0 Bool) - (top.impl.usr.KP_81_a_0 Bool) - (top.impl.usr.KP_91_a_0 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int) - ) Bool - - (let - ((X1 Int 0)) - (let - ((X2 Int 0)) - (and - (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 true) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool top.usr.KP_START_a_0)) - (let - ((X5 Int (ite (not X4) 0 1))) - (and - (= top.impl.usr.KP_91_a_0 top.usr.KP_9_a_0) - (= top.impl.usr.KP_81_a_0 top.usr.KP_8_a_0) - (= top.impl.usr.KP_71_a_0 top.usr.KP_7_a_0) - (= top.impl.usr.KP_61_a_0 top.usr.KP_6_a_0) - (= top.impl.usr.KP_51_a_0 top.usr.KP_5_a_0) - (= top.impl.usr.KP_41_a_0 top.usr.KP_4_a_0) - (= top.impl.usr.KP_31_a_0 top.usr.KP_3_a_0) - (= top.impl.usr.KP_21_a_0 top.usr.KP_2_a_0) - (= top.impl.usr.KP_11_a_0 top.usr.KP_1_a_0) - (= top.impl.usr.KP_01_a_0 top.usr.KP_0_a_0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - (ite - top.usr.KP_CLEAR_a_0 - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01_a_0 - 0 - (ite - top.impl.usr.KP_11_a_0 - 1 - (ite - top.impl.usr.KP_21_a_0 - 2 - (ite - top.impl.usr.KP_31_a_0 - 3 - (ite - top.impl.usr.KP_41_a_0 - 4 - (ite - top.impl.usr.KP_51_a_0 - 5 - (ite - top.impl.usr.KP_61_a_0 - 6 - (ite - top.impl.usr.KP_71_a_0 - 7 - (ite - top.impl.usr.KP_81_a_0 - 8 - (ite top.impl.usr.KP_91_a_0 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01_a_0 - 0 - (ite - top.impl.usr.KP_11_a_0 - 1 - (ite - top.impl.usr.KP_21_a_0 - 2 - (ite - top.impl.usr.KP_31_a_0 - 3 - (ite - top.impl.usr.KP_41_a_0 - 4 - (ite - top.impl.usr.KP_51_a_0 - 5 - (ite - top.impl.usr.KP_61_a_0 - 6 - (ite - top.impl.usr.KP_71_a_0 - 7 - (ite - top.impl.usr.KP_81_a_0 - 8 - (ite top.impl.usr.KP_91_a_0 9 10)))))))))) - 0))) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - 0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 0) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 - true) - (let - ((X6 Bool true)) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 - X6) - (= - top.impl.usr.STEPS_TO_COOK_a_0 - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0)) - 0 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 60)) - 1))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK_a_0 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED_a_0) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK_a_0 X1))) - (let - ((X18 Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 Bool top.usr.KP_CLEAR_a_0)) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - 1) - 60))) - (and - (= - top.usr.OK_a_0 - (and (>= X33 0) (<= X33 256))) - (let - ((X34 Int 0)) - (let - ((X35 - Int (ite - X12 - (ite (not (= X9 2)) 2 X34) - X34))) - (let - ((X36 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X35) - X35) - X34))) - (let - ((X37 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X38 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X36) - X36))) - (let - ((X39 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X38) - X38))) - (let - ((X40 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X39) - X39))) - (let - ((X41 - Int (ite - X32 - (ite - (not (= X37 2)) - 2 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X37 2)) - 2 - X37) - X37))) - (let - ((X43 - Bool (and - (= X42 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not (= X11 0)) - true - false))) - (not (or X32 X31)))))) - (let - ((X44 - Int (ite - X43 - (ite - (= X42 2) - 1 - X42) - X42))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - (ite - (not (= X2 4)) - 1 - X34) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X43 - (ite - (not (= X44 3)) - 3 - X41) - X41) - X36)) - X34)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode_a_0 - top.impl.usr.chart_microwave_mode_logic_mode_a_0) - (let - ((X45 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - X45 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X43 - (ite - (not (= X44 3)) - 3 - X44) - X44) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - top.res.init_flag_a_0)))))))))))))))))))))))))))))))))))))))))))))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.KP_START_a_1 Bool) - (top.usr.KP_CLEAR_a_1 Bool) - (top.usr.KP_0_a_1 Bool) - (top.usr.KP_1_a_1 Bool) - (top.usr.KP_2_a_1 Bool) - (top.usr.KP_3_a_1 Bool) - (top.usr.KP_4_a_1 Bool) - (top.usr.KP_5_a_1 Bool) - (top.usr.KP_6_a_1 Bool) - (top.usr.KP_7_a_1 Bool) - (top.usr.KP_8_a_1 Bool) - (top.usr.KP_9_a_1 Bool) - (top.usr.DOOR_CLOSED_a_1 Bool) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.STEPS_TO_COOK_a_1 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 Bool) - (top.impl.usr.KP_01_a_1 Bool) - (top.impl.usr.KP_11_a_1 Bool) - (top.impl.usr.KP_21_a_1 Bool) - (top.impl.usr.KP_31_a_1 Bool) - (top.impl.usr.KP_41_a_1 Bool) - (top.impl.usr.KP_51_a_1 Bool) - (top.impl.usr.KP_61_a_1 Bool) - (top.impl.usr.KP_71_a_1 Bool) - (top.impl.usr.KP_81_a_1 Bool) - (top.impl.usr.KP_91_a_1 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_1 Int) - (top.usr.KP_START_a_0 Bool) - (top.usr.KP_CLEAR_a_0 Bool) - (top.usr.KP_0_a_0 Bool) - (top.usr.KP_1_a_0 Bool) - (top.usr.KP_2_a_0 Bool) - (top.usr.KP_3_a_0 Bool) - (top.usr.KP_4_a_0 Bool) - (top.usr.KP_5_a_0 Bool) - (top.usr.KP_6_a_0 Bool) - (top.usr.KP_7_a_0 Bool) - (top.usr.KP_8_a_0 Bool) - (top.usr.KP_9_a_0 Bool) - (top.usr.DOOR_CLOSED_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.STEPS_TO_COOK_a_0 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) - (top.impl.usr.KP_01_a_0 Bool) - (top.impl.usr.KP_11_a_0 Bool) - (top.impl.usr.KP_21_a_0 Bool) - (top.impl.usr.KP_31_a_0 Bool) - (top.impl.usr.KP_41_a_0 Bool) - (top.impl.usr.KP_51_a_0 Bool) - (top.impl.usr.KP_61_a_0 Bool) - (top.impl.usr.KP_71_a_0 Bool) - (top.impl.usr.KP_81_a_0 Bool) - (top.impl.usr.KP_91_a_0 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int) - ) Bool - - (let - ((X1 Int top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0)) - (let - ((X2 - Int top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0)) - (and - (= - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - false - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0)) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool (and top.usr.KP_START_a_1 (not top.usr.KP_START_a_0)))) - (let - ((X5 Int (ite (not X4) 0 1))) - (let - ((X6 - Bool (ite - (= 1 top.impl.usr.microwave_microwave_mode_logic_mode_a_0) - true - false))) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - X6) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (ite - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1) - true - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 - false - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0))) - (= top.impl.usr.KP_91_a_1 top.usr.KP_9_a_1) - (= top.impl.usr.KP_81_a_1 top.usr.KP_8_a_1) - (= top.impl.usr.KP_71_a_1 top.usr.KP_7_a_1) - (= top.impl.usr.KP_61_a_1 top.usr.KP_6_a_1) - (= top.impl.usr.KP_51_a_1 top.usr.KP_5_a_1) - (= top.impl.usr.KP_41_a_1 top.usr.KP_4_a_1) - (= top.impl.usr.KP_31_a_1 top.usr.KP_3_a_1) - (= top.impl.usr.KP_21_a_1 top.usr.KP_2_a_1) - (= top.impl.usr.KP_11_a_1 top.usr.KP_1_a_1) - (= top.impl.usr.KP_01_a_1 top.usr.KP_0_a_1) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01_a_1 - 0 - (ite - top.impl.usr.KP_11_a_1 - 1 - (ite - top.impl.usr.KP_21_a_1 - 2 - (ite - top.impl.usr.KP_31_a_1 - 3 - (ite - top.impl.usr.KP_41_a_1 - 4 - (ite - top.impl.usr.KP_51_a_1 - 5 - (ite - top.impl.usr.KP_61_a_1 - 6 - (ite - top.impl.usr.KP_71_a_1 - 7 - (ite - top.impl.usr.KP_81_a_1 - 8 - (ite top.impl.usr.KP_91_a_1 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01_a_1 - 0 - (ite - top.impl.usr.KP_11_a_1 - 1 - (ite - top.impl.usr.KP_21_a_1 - 2 - (ite - top.impl.usr.KP_31_a_1 - 3 - (ite - top.impl.usr.KP_41_a_1 - 4 - (ite - top.impl.usr.KP_51_a_1 - 5 - (ite - top.impl.usr.KP_61_a_1 - 6 - (ite - top.impl.usr.KP_71_a_1 - 7 - (ite - top.impl.usr.KP_81_a_1 - 8 - (ite top.impl.usr.KP_91_a_1 9 10)))))))))) - 0)) - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and - top.impl.usr.KP_71_a_1 - (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and - top.impl.usr.KP_81_a_1 - (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - 0 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and - top.impl.usr.KP_71_a_1 - (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and - top.impl.usr.KP_81_a_1 - (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - 0 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and - top.impl.usr.KP_71_a_1 - (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and - top.impl.usr.KP_81_a_1 - (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.STEPS_TO_COOK_a_1 - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1)) - 0 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 - 60)) - 1) - top.impl.usr.STEPS_TO_COOK_a_0))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK_a_1 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED_a_1) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK_a_1 X1))) - (let - ((X18 Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 - Bool (and - top.usr.KP_CLEAR_a_1 - (not top.usr.KP_CLEAR_a_0)))) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - 1) - 60))) - (and - (= - top.usr.OK_a_1 - (and (>= X33 0) (<= X33 256))) - (let - ((X34 - Int top.impl.usr.chart_microwave_mode_logic_mode_a_0)) - (let - ((X35 - Int (ite - X12 - (ite (not (= X9 2)) 2 X34) - X34))) - (let - ((X36 - Int (ite - X7 - (ite - X14 - (ite (not (= X13 3)) 3 X35) - X35) - X34))) - (let - ((X37 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X38 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X36) - X36))) - (let - ((X39 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X38) - X38))) - (let - ((X40 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X39) - X39))) - (let - ((X41 - Int (ite - X32 - (ite - (not (= X37 2)) - 2 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X37 2)) - 2 - X37) - X37))) - (let - ((X43 - Bool (and - (= X42 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not (= X11 0)) - true - false))) - (not (or X32 X31)))))) - (let - ((X44 - Int (ite - X43 - (ite - (= X42 2) - 1 - X42) - X42))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - (ite - (not (= X2 4)) - 1 - X34) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X43 - (ite - (not (= X44 3)) - 3 - X41) - X41) - X36)) - X34)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode_a_1 - top.impl.usr.chart_microwave_mode_logic_mode_a_1) - (let - ((X45 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - X45 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X43 - (ite - (not (= X44 3)) - 3 - X44) - X44) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - (not - top.res.init_flag_a_1)))))))))))))))))))))))))))))))))))))))))))))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) -)) - -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.KP_START Bool) -(declare-primed-var top.usr.KP_CLEAR Bool) -(declare-primed-var top.usr.KP_0 Bool) -(declare-primed-var top.usr.KP_1 Bool) -(declare-primed-var top.usr.KP_2 Bool) -(declare-primed-var top.usr.KP_3 Bool) -(declare-primed-var top.usr.KP_4 Bool) -(declare-primed-var top.usr.KP_5 Bool) -(declare-primed-var top.usr.KP_6 Bool) -(declare-primed-var top.usr.KP_7 Bool) -(declare-primed-var top.usr.KP_8 Bool) -(declare-primed-var top.usr.KP_9 Bool) -(declare-primed-var top.usr.DOOR_CLOSED Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.STEPS_TO_COOK Int) -(declare-primed-var top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) -(declare-primed-var top.impl.usr.KP_01 Bool) -(declare-primed-var top.impl.usr.KP_11 Bool) -(declare-primed-var top.impl.usr.KP_21 Bool) -(declare-primed-var top.impl.usr.KP_31 Bool) -(declare-primed-var top.impl.usr.KP_41 Bool) -(declare-primed-var top.impl.usr.KP_51 Bool) -(declare-primed-var top.impl.usr.KP_61 Bool) -(declare-primed-var top.impl.usr.KP_71 Bool) -(declare-primed-var top.impl.usr.KP_81 Bool) -(declare-primed-var top.impl.usr.KP_91 Bool) -(declare-primed-var top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_mode Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) -(declare-primed-var top.impl.usr.microwave_microwave_mode_logic_mode Int) - -(define-fun - init ( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - ) Bool - - (let - ((X1 Int 0)) - (let - ((X2 Int 0)) - (and - (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep true) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool top.usr.KP_START)) - (let - ((X5 Int (ite (not X4) 0 1))) - (and - (= top.impl.usr.KP_91 top.usr.KP_9) - (= top.impl.usr.KP_81 top.usr.KP_8) - (= top.impl.usr.KP_71 top.usr.KP_7) - (= top.impl.usr.KP_61 top.usr.KP_6) - (= top.impl.usr.KP_51 top.usr.KP_5) - (= top.impl.usr.KP_41 top.usr.KP_4) - (= top.impl.usr.KP_31 top.usr.KP_3) - (= top.impl.usr.KP_21 top.usr.KP_2) - (= top.impl.usr.KP_11 top.usr.KP_1) - (= top.impl.usr.KP_01 top.usr.KP_0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - (ite - top.usr.KP_CLEAR - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01 - 0 - (ite - top.impl.usr.KP_11 - 1 - (ite - top.impl.usr.KP_21 - 2 - (ite - top.impl.usr.KP_31 - 3 - (ite - top.impl.usr.KP_41 - 4 - (ite - top.impl.usr.KP_51 - 5 - (ite - top.impl.usr.KP_61 - 6 - (ite - top.impl.usr.KP_71 - 7 - (ite - top.impl.usr.KP_81 - 8 - (ite top.impl.usr.KP_91 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01 - 0 - (ite - top.impl.usr.KP_11 - 1 - (ite - top.impl.usr.KP_21 - 2 - (ite - top.impl.usr.KP_31 - 3 - (ite - top.impl.usr.KP_41 - 4 - (ite - top.impl.usr.KP_51 - 5 - (ite - top.impl.usr.KP_61 - 6 - (ite - top.impl.usr.KP_71 - 7 - (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) - 0))) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - 0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY - 0) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step - true) - (let - ((X6 Bool true)) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock - X6) - (= - top.impl.usr.STEPS_TO_COOK - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock)) - 0 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY - 60)) - 1))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK X1))) - (let - ((X18 Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 Bool top.usr.KP_CLEAR)) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup___ - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining - 1) - 60))) - (and - (= - top.usr.OK - (and (>= X33 0) (<= X33 256))) - (let - ((X34 Int 0)) - (let - ((X35 - Int (ite - X12 - (ite (not (= X9 2)) 2 X34) - X34))) - (let - ((X36 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X35) - X35) - X34))) - (let - ((X37 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X38 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X36) - X36))) - (let - ((X39 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X38) - X38))) - (let - ((X40 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X39) - X39))) - (let - ((X41 - Int (ite - X32 - (ite - (not (= X37 2)) - 2 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X37 2)) - 2 - X37) - X37))) - (let - ((X43 - Bool (and - (= X42 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not (= X11 0)) - true - false))) - (not (or X32 X31)))))) - (let - ((X44 - Int (ite - X43 - (ite - (= X42 2) - 1 - X42) - X42))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - (ite - (not (= X2 4)) - 1 - X34) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X43 - (ite - (not (= X44 3)) - 3 - X41) - X41) - X36)) - X34)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode - top.impl.usr.chart_microwave_mode_logic_mode) - (let - ((X45 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - X45 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X43 - (ite - (not (= X44 3)) - 3 - X44) - X44) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - top.res.init_flag)))))))))))))))))))))))))))))))))))))))))))))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - - ;; Next state. - (top.usr.KP_START! Bool) - (top.usr.KP_CLEAR! Bool) - (top.usr.KP_0! Bool) - (top.usr.KP_1! Bool) - (top.usr.KP_2! Bool) - (top.usr.KP_3! Bool) - (top.usr.KP_4! Bool) - (top.usr.KP_5! Bool) - (top.usr.KP_6! Bool) - (top.usr.KP_7! Bool) - (top.usr.KP_8! Bool) - (top.usr.KP_9! Bool) - (top.usr.DOOR_CLOSED! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.STEPS_TO_COOK! Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! Bool) - (top.impl.usr.KP_01! Bool) - (top.impl.usr.KP_11! Bool) - (top.impl.usr.KP_21! Bool) - (top.impl.usr.KP_31! Bool) - (top.impl.usr.KP_41! Bool) - (top.impl.usr.KP_51! Bool) - (top.impl.usr.KP_61! Bool) - (top.impl.usr.KP_71! Bool) - (top.impl.usr.KP_81! Bool) - (top.impl.usr.KP_91! Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___! Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root! Int) - (top.impl.usr.chart_microwave_mode_logic_mode! Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining! Int) - (top.impl.usr.microwave_microwave_mode_logic_mode! Int) - - ) Bool - - (and - (let - ((X1 Int top.impl.usr.chart_microwave_mode_logic_steps_remaining)) - (let - ((X2 - Int top.impl.usr.chart_microwave_mode_logic_final_state_states___root)) - (and - (= - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - false - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep)) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool (and top.usr.KP_START! (not top.usr.KP_START)))) - (let - ((X5 Int (ite (not X4) 0 1))) - (let - ((X6 - Bool (ite - (= 1 top.impl.usr.microwave_microwave_mode_logic_mode) - true - false))) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - X6) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (ite - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!) - true - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock - false - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step))) - (= top.impl.usr.KP_91! top.usr.KP_9!) - (= top.impl.usr.KP_81! top.usr.KP_8!) - (= top.impl.usr.KP_71! top.usr.KP_7!) - (= top.impl.usr.KP_61! top.usr.KP_6!) - (= top.impl.usr.KP_51! top.usr.KP_5!) - (= top.impl.usr.KP_41! top.usr.KP_4!) - (= top.impl.usr.KP_31! top.usr.KP_3!) - (= top.impl.usr.KP_21! top.usr.KP_2!) - (= top.impl.usr.KP_11! top.usr.KP_1!) - (= top.impl.usr.KP_01! top.usr.KP_0!) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01! - 0 - (ite - top.impl.usr.KP_11! - 1 - (ite - top.impl.usr.KP_21! - 2 - (ite - top.impl.usr.KP_31! - 3 - (ite - top.impl.usr.KP_41! - 4 - (ite - top.impl.usr.KP_51! - 5 - (ite - top.impl.usr.KP_61! - 6 - (ite - top.impl.usr.KP_71! - 7 - (ite - top.impl.usr.KP_81! - 8 - (ite top.impl.usr.KP_91! 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01! - 0 - (ite - top.impl.usr.KP_11! - 1 - (ite - top.impl.usr.KP_21! - 2 - (ite - top.impl.usr.KP_31! - 3 - (ite - top.impl.usr.KP_41! - 4 - (ite - top.impl.usr.KP_51! - 5 - (ite - top.impl.usr.KP_61! - 6 - (ite - top.impl.usr.KP_71! - 7 - (ite - top.impl.usr.KP_81! - 8 - (ite top.impl.usr.KP_91! 9 10)))))))))) - 0)) - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and - top.impl.usr.KP_91! - (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - 0 - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and - top.impl.usr.KP_91! - (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - 0 - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and - top.impl.usr.KP_91! - (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.STEPS_TO_COOK! - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!)) - 0 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! - 60)) - 1) - top.impl.usr.STEPS_TO_COOK))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK! 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED!) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK! X1))) - (let - ((X18 Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 - Bool (and - top.usr.KP_CLEAR! - (not top.usr.KP_CLEAR)))) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup___! - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - 1) - 60))) - (and - (= - top.usr.OK! - (and (>= X33 0) (<= X33 256))) - (let - ((X34 - Int top.impl.usr.chart_microwave_mode_logic_mode)) - (let - ((X35 - Int (ite - X12 - (ite (not (= X9 2)) 2 X34) - X34))) - (let - ((X36 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X35) - X35) - X34))) - (let - ((X37 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X38 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X36) - X36))) - (let - ((X39 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X38) - X38))) - (let - ((X40 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X39) - X39))) - (let - ((X41 - Int (ite - X32 - (ite - (not (= X37 2)) - 2 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X37 2)) - 2 - X37) - X37))) - (let - ((X43 - Bool (and - (= X42 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not (= X11 0)) - true - false))) - (not (or X32 X31)))))) - (let - ((X44 - Int (ite - X43 - (ite - (= X42 2) - 1 - X42) - X42))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - (ite - (not (= X2 4)) - 1 - X34) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X43 - (ite - (not (= X44 3)) - 3 - X41) - X41) - X36)) - X34)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode! - top.impl.usr.chart_microwave_mode_logic_mode!) - (let - ((X45 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - X45 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X43 - (ite - (not (= X44 3)) - 3 - X44) - X44) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - (not - top.res.init_flag!)))))))))))))))))))))))))))))))))))))))))))))))))))) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - ) Bool - - top.usr.OK -) +(define-fun __node_init_top_0 ((top.usr.KP_START_a_0 Bool) (top.usr.KP_CLEAR_a_0 Bool) (top.usr.KP_0_a_0 Bool) (top.usr.KP_1_a_0 Bool) (top.usr.KP_2_a_0 Bool) (top.usr.KP_3_a_0 Bool) (top.usr.KP_4_a_0 Bool) (top.usr.KP_5_a_0 Bool) (top.usr.KP_6_a_0 Bool) (top.usr.KP_7_a_0 Bool) (top.usr.KP_8_a_0 Bool) (top.usr.KP_9_a_0 Bool) (top.usr.DOOR_CLOSED_a_0 Bool) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.STEPS_TO_COOK_a_0 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) (top.impl.usr.KP_01_a_0 Bool) (top.impl.usr.KP_11_a_0 Bool) (top.impl.usr.KP_21_a_0 Bool) (top.impl.usr.KP_31_a_0 Bool) (top.impl.usr.KP_41_a_0 Bool) (top.impl.usr.KP_51_a_0 Bool) (top.impl.usr.KP_61_a_0 Bool) (top.impl.usr.KP_71_a_0 Bool) (top.impl.usr.KP_81_a_0 Bool) (top.impl.usr.KP_91_a_0 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int)) Bool + (let ((X1 0)) (let ((X2 0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 true) (let ((X3 (= X2 4))) (let ((X4 top.usr.KP_START_a_0)) (let ((X5 (ite (not X4) 0 1))) (and (= top.impl.usr.KP_91_a_0 top.usr.KP_9_a_0) (= top.impl.usr.KP_81_a_0 top.usr.KP_8_a_0) (= top.impl.usr.KP_71_a_0 top.usr.KP_7_a_0) (= top.impl.usr.KP_61_a_0 top.usr.KP_6_a_0) (= top.impl.usr.KP_51_a_0 top.usr.KP_5_a_0) (= top.impl.usr.KP_41_a_0 top.usr.KP_4_a_0) (= top.impl.usr.KP_31_a_0 top.usr.KP_3_a_0) (= top.impl.usr.KP_21_a_0 top.usr.KP_2_a_0) (= top.impl.usr.KP_11_a_0 top.usr.KP_1_a_0) (= top.impl.usr.KP_01_a_0 top.usr.KP_0_a_0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 (ite top.usr.KP_CLEAR_a_0 0 (ite (ite (<= (ite top.impl.usr.KP_01_a_0 0 (ite top.impl.usr.KP_11_a_0 1 (ite top.impl.usr.KP_21_a_0 2 (ite top.impl.usr.KP_31_a_0 3 (ite top.impl.usr.KP_41_a_0 4 (ite top.impl.usr.KP_51_a_0 5 (ite top.impl.usr.KP_61_a_0 6 (ite top.impl.usr.KP_71_a_0 7 (ite top.impl.usr.KP_81_a_0 8 (ite top.impl.usr.KP_91_a_0 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01_a_0 0 (ite top.impl.usr.KP_11_a_0 1 (ite top.impl.usr.KP_21_a_0 2 (ite top.impl.usr.KP_31_a_0 3 (ite top.impl.usr.KP_41_a_0 4 (ite top.impl.usr.KP_51_a_0 5 (ite top.impl.usr.KP_61_a_0 6 (ite top.impl.usr.KP_71_a_0 7 (ite top.impl.usr.KP_81_a_0 8 (ite top.impl.usr.KP_91_a_0 9 10)))))))))) 0))) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 0) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 true) (let ((X6 true)) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 X6) (= top.impl.usr.STEPS_TO_COOK_a_0 (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0)) 0 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 60)) 1))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK_a_0 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED_a_0) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK_a_0 X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 top.usr.KP_CLEAR_a_0)) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 1) 60))) (and (= top.usr.OK_a_0 (and (>= X33 0) (<= X33 256))) (let ((X34 0)) (let ((X35 (ite X12 (ite (not (= X9 2)) 2 X34) X34))) (let ((X36 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X35) X35) X34))) (let ((X37 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X38 (ite X18 (ite (not (= X19 4)) 1 X36) X36))) (let ((X39 (ite X21 (ite (not (= X22 2)) 2 X38) X38))) (let ((X40 (ite X27 (ite (not (= X28 4)) 1 X39) X39))) (let ((X41 (ite X32 (ite (not (= X37 2)) 2 X40) X40))) (let ((X42 (ite X32 (ite (not (= X37 2)) 2 X37) X37))) (let ((X43 (and (= X42 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X44 (ite X43 (ite (= X42 2) 1 X42) X42))) (and (= top.impl.usr.chart_microwave_mode_logic_mode_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 (ite (not (= X2 4)) 1 X34) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X43 (ite (not (= X44 3)) 3 X41) X41) X36)) X34)) (= top.impl.usr.microwave_microwave_mode_logic_mode_a_0 top.impl.usr.chart_microwave_mode_logic_mode_a_0) (let ((X45 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 X45 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X43 (ite (not (= X44 3)) 3 X44) X44) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) top.res.init_flag_a_0))))))))))))))))))))))))))))))))))))))))))))))))))))) +(define-fun __node_trans_top_0 ((top.usr.KP_START_a_1 Bool) (top.usr.KP_CLEAR_a_1 Bool) (top.usr.KP_0_a_1 Bool) (top.usr.KP_1_a_1 Bool) (top.usr.KP_2_a_1 Bool) (top.usr.KP_3_a_1 Bool) (top.usr.KP_4_a_1 Bool) (top.usr.KP_5_a_1 Bool) (top.usr.KP_6_a_1 Bool) (top.usr.KP_7_a_1 Bool) (top.usr.KP_8_a_1 Bool) (top.usr.KP_9_a_1 Bool) (top.usr.DOOR_CLOSED_a_1 Bool) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.STEPS_TO_COOK_a_1 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 Bool) (top.impl.usr.KP_01_a_1 Bool) (top.impl.usr.KP_11_a_1 Bool) (top.impl.usr.KP_21_a_1 Bool) (top.impl.usr.KP_31_a_1 Bool) (top.impl.usr.KP_41_a_1 Bool) (top.impl.usr.KP_51_a_1 Bool) (top.impl.usr.KP_61_a_1 Bool) (top.impl.usr.KP_71_a_1 Bool) (top.impl.usr.KP_81_a_1 Bool) (top.impl.usr.KP_91_a_1 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_1 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_1 Int) (top.usr.KP_START_a_0 Bool) (top.usr.KP_CLEAR_a_0 Bool) (top.usr.KP_0_a_0 Bool) (top.usr.KP_1_a_0 Bool) (top.usr.KP_2_a_0 Bool) (top.usr.KP_3_a_0 Bool) (top.usr.KP_4_a_0 Bool) (top.usr.KP_5_a_0 Bool) (top.usr.KP_6_a_0 Bool) (top.usr.KP_7_a_0 Bool) (top.usr.KP_8_a_0 Bool) (top.usr.KP_9_a_0 Bool) (top.usr.DOOR_CLOSED_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.STEPS_TO_COOK_a_0 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) (top.impl.usr.KP_01_a_0 Bool) (top.impl.usr.KP_11_a_0 Bool) (top.impl.usr.KP_21_a_0 Bool) (top.impl.usr.KP_31_a_0 Bool) (top.impl.usr.KP_41_a_0 Bool) (top.impl.usr.KP_51_a_0 Bool) (top.impl.usr.KP_61_a_0 Bool) (top.impl.usr.KP_71_a_0 Bool) (top.impl.usr.KP_81_a_0 Bool) (top.impl.usr.KP_91_a_0 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int)) Bool + (let ((X1 top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0)) (let ((X2 top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 false top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0)) (let ((X3 (= X2 4))) (let ((X4 (and top.usr.KP_START_a_1 (not top.usr.KP_START_a_0)))) (let ((X5 (ite (not X4) 0 1))) (let ((X6 (ite (= 1 top.impl.usr.microwave_microwave_mode_logic_mode_a_0) true false))) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 X6) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (ite (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1) true (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 false top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0))) (= top.impl.usr.KP_91_a_1 top.usr.KP_9_a_1) (= top.impl.usr.KP_81_a_1 top.usr.KP_8_a_1) (= top.impl.usr.KP_71_a_1 top.usr.KP_7_a_1) (= top.impl.usr.KP_61_a_1 top.usr.KP_6_a_1) (= top.impl.usr.KP_51_a_1 top.usr.KP_5_a_1) (= top.impl.usr.KP_41_a_1 top.usr.KP_4_a_1) (= top.impl.usr.KP_31_a_1 top.usr.KP_3_a_1) (= top.impl.usr.KP_21_a_1 top.usr.KP_2_a_1) (= top.impl.usr.KP_11_a_1 top.usr.KP_1_a_1) (= top.impl.usr.KP_01_a_1 top.usr.KP_0_a_1) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite top.impl.usr.KP_01_a_1 0 (ite top.impl.usr.KP_11_a_1 1 (ite top.impl.usr.KP_21_a_1 2 (ite top.impl.usr.KP_31_a_1 3 (ite top.impl.usr.KP_41_a_1 4 (ite top.impl.usr.KP_51_a_1 5 (ite top.impl.usr.KP_61_a_1 6 (ite top.impl.usr.KP_71_a_1 7 (ite top.impl.usr.KP_81_a_1 8 (ite top.impl.usr.KP_91_a_1 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01_a_1 0 (ite top.impl.usr.KP_11_a_1 1 (ite top.impl.usr.KP_21_a_1 2 (ite top.impl.usr.KP_31_a_1 3 (ite top.impl.usr.KP_41_a_1 4 (ite top.impl.usr.KP_51_a_1 5 (ite top.impl.usr.KP_61_a_1 6 (ite top.impl.usr.KP_71_a_1 7 (ite top.impl.usr.KP_81_a_1 8 (ite top.impl.usr.KP_91_a_1 9 10)))))))))) 0)) (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 0 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 0 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.STEPS_TO_COOK_a_1 (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1)) 0 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 60)) 1) top.impl.usr.STEPS_TO_COOK_a_0))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK_a_1 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED_a_1) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK_a_1 X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 (and top.usr.KP_CLEAR_a_1 (not top.usr.KP_CLEAR_a_0)))) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 1) 60))) (and (= top.usr.OK_a_1 (and (>= X33 0) (<= X33 256))) (let ((X34 top.impl.usr.chart_microwave_mode_logic_mode_a_0)) (let ((X35 (ite X12 (ite (not (= X9 2)) 2 X34) X34))) (let ((X36 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X35) X35) X34))) (let ((X37 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X38 (ite X18 (ite (not (= X19 4)) 1 X36) X36))) (let ((X39 (ite X21 (ite (not (= X22 2)) 2 X38) X38))) (let ((X40 (ite X27 (ite (not (= X28 4)) 1 X39) X39))) (let ((X41 (ite X32 (ite (not (= X37 2)) 2 X40) X40))) (let ((X42 (ite X32 (ite (not (= X37 2)) 2 X37) X37))) (let ((X43 (and (= X42 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X44 (ite X43 (ite (= X42 2) 1 X42) X42))) (and (= top.impl.usr.chart_microwave_mode_logic_mode_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 (ite (not (= X2 4)) 1 X34) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X43 (ite (not (= X44 3)) 3 X41) X41) X36)) X34)) (= top.impl.usr.microwave_microwave_mode_logic_mode_a_1 top.impl.usr.chart_microwave_mode_logic_mode_a_1) (let ((X45 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 X45 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X43 (ite (not (= X44 3)) 3 X44) X44) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) (not top.res.init_flag_a_1))))))))))))))))))))))))))))))))))))))))))))))))))))) +(synth-inv str_invariant ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int))) + +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int)) Bool + (let ((X1 0)) (let ((X2 0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep true) (let ((X3 (= X2 4))) (let ((X4 top.usr.KP_START)) (let ((X5 (ite (not X4) 0 1))) (and (= top.impl.usr.KP_91 top.usr.KP_9) (= top.impl.usr.KP_81 top.usr.KP_8) (= top.impl.usr.KP_71 top.usr.KP_7) (= top.impl.usr.KP_61 top.usr.KP_6) (= top.impl.usr.KP_51 top.usr.KP_5) (= top.impl.usr.KP_41 top.usr.KP_4) (= top.impl.usr.KP_31 top.usr.KP_3) (= top.impl.usr.KP_21 top.usr.KP_2) (= top.impl.usr.KP_11 top.usr.KP_1) (= top.impl.usr.KP_01 top.usr.KP_0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY (ite top.usr.KP_CLEAR 0 (ite (ite (<= (ite top.impl.usr.KP_01 0 (ite top.impl.usr.KP_11 1 (ite top.impl.usr.KP_21 2 (ite top.impl.usr.KP_31 3 (ite top.impl.usr.KP_41 4 (ite top.impl.usr.KP_51 5 (ite top.impl.usr.KP_61 6 (ite top.impl.usr.KP_71 7 (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01 0 (ite top.impl.usr.KP_11 1 (ite top.impl.usr.KP_21 2 (ite top.impl.usr.KP_31 3 (ite top.impl.usr.KP_41 4 (ite top.impl.usr.KP_51 5 (ite top.impl.usr.KP_61 6 (ite top.impl.usr.KP_71 7 (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) 0))) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY 0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY 0) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step true) (let ((X6 true)) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock X6) (= top.impl.usr.STEPS_TO_COOK (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock)) 0 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY 60)) 1))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 top.usr.KP_CLEAR)) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup___ true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining 1) 60))) (and (= top.usr.OK (and (>= X33 0) (<= X33 256))) (let ((X34 0)) (let ((X35 (ite X12 (ite (not (= X9 2)) 2 X34) X34))) (let ((X36 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X35) X35) X34))) (let ((X37 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X38 (ite X18 (ite (not (= X19 4)) 1 X36) X36))) (let ((X39 (ite X21 (ite (not (= X22 2)) 2 X38) X38))) (let ((X40 (ite X27 (ite (not (= X28 4)) 1 X39) X39))) (let ((X41 (ite X32 (ite (not (= X37 2)) 2 X40) X40))) (let ((X42 (ite X32 (ite (not (= X37 2)) 2 X37) X37))) (let ((X43 (and (= X42 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X44 (ite X43 (ite (= X42 2) 1 X42) X42))) (and (= top.impl.usr.chart_microwave_mode_logic_mode (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep (ite (not (= X2 4)) 1 X34) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X43 (ite (not (= X44 3)) 3 X41) X41) X36)) X34)) (= top.impl.usr.microwave_microwave_mode_logic_mode top.impl.usr.chart_microwave_mode_logic_mode) (let ((X45 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep X45 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X43 (ite (not (= X44 3)) 3 X44) X44) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) top.res.init_flag))))))))))))))))))))))))))))))))))))))))))))))))))))) +(define-fun trans ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int) (top.usr.KP_START! Bool) (top.usr.KP_CLEAR! Bool) (top.usr.KP_0! Bool) (top.usr.KP_1! Bool) (top.usr.KP_2! Bool) (top.usr.KP_3! Bool) (top.usr.KP_4! Bool) (top.usr.KP_5! Bool) (top.usr.KP_6! Bool) (top.usr.KP_7! Bool) (top.usr.KP_8! Bool) (top.usr.KP_9! Bool) (top.usr.DOOR_CLOSED! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.STEPS_TO_COOK! Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! Bool) (top.impl.usr.KP_01! Bool) (top.impl.usr.KP_11! Bool) (top.impl.usr.KP_21! Bool) (top.impl.usr.KP_31! Bool) (top.impl.usr.KP_41! Bool) (top.impl.usr.KP_51! Bool) (top.impl.usr.KP_61! Bool) (top.impl.usr.KP_71! Bool) (top.impl.usr.KP_81! Bool) (top.impl.usr.KP_91! Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___! Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root! Int) (top.impl.usr.chart_microwave_mode_logic_mode! Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining! Int) (top.impl.usr.microwave_microwave_mode_logic_mode! Int)) Bool + (and (let ((X1 top.impl.usr.chart_microwave_mode_logic_steps_remaining)) (let ((X2 top.impl.usr.chart_microwave_mode_logic_final_state_states___root)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ false top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep)) (let ((X3 (= X2 4))) (let ((X4 (and top.usr.KP_START! (not top.usr.KP_START)))) (let ((X5 (ite (not X4) 0 1))) (let ((X6 (ite (= 1 top.impl.usr.microwave_microwave_mode_logic_mode) true false))) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! X6) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (ite (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!) true (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock false top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step))) (= top.impl.usr.KP_91! top.usr.KP_9!) (= top.impl.usr.KP_81! top.usr.KP_8!) (= top.impl.usr.KP_71! top.usr.KP_7!) (= top.impl.usr.KP_61! top.usr.KP_6!) (= top.impl.usr.KP_51! top.usr.KP_5!) (= top.impl.usr.KP_41! top.usr.KP_4!) (= top.impl.usr.KP_31! top.usr.KP_3!) (= top.impl.usr.KP_21! top.usr.KP_2!) (= top.impl.usr.KP_11! top.usr.KP_1!) (= top.impl.usr.KP_01! top.usr.KP_0!) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite top.impl.usr.KP_01! 0 (ite top.impl.usr.KP_11! 1 (ite top.impl.usr.KP_21! 2 (ite top.impl.usr.KP_31! 3 (ite top.impl.usr.KP_41! 4 (ite top.impl.usr.KP_51! 5 (ite top.impl.usr.KP_61! 6 (ite top.impl.usr.KP_71! 7 (ite top.impl.usr.KP_81! 8 (ite top.impl.usr.KP_91! 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01! 0 (ite top.impl.usr.KP_11! 1 (ite top.impl.usr.KP_21! 2 (ite top.impl.usr.KP_31! 3 (ite top.impl.usr.KP_41! 4 (ite top.impl.usr.KP_51! 5 (ite top.impl.usr.KP_61! 6 (ite top.impl.usr.KP_71! 7 (ite top.impl.usr.KP_81! 8 (ite top.impl.usr.KP_91! 9 10)))))))))) 0)) (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! 0 (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! 0 (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.STEPS_TO_COOK! (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!)) 0 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! 60)) 1) top.impl.usr.STEPS_TO_COOK))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK! 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED!) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK! X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 (and top.usr.KP_CLEAR! (not top.usr.KP_CLEAR)))) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup___! true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining! 1) 60))) (and (= top.usr.OK! (and (>= X33 0) (<= X33 256))) (let ((X34 top.impl.usr.chart_microwave_mode_logic_mode)) (let ((X35 (ite X12 (ite (not (= X9 2)) 2 X34) X34))) (let ((X36 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X35) X35) X34))) (let ((X37 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X38 (ite X18 (ite (not (= X19 4)) 1 X36) X36))) (let ((X39 (ite X21 (ite (not (= X22 2)) 2 X38) X38))) (let ((X40 (ite X27 (ite (not (= X28 4)) 1 X39) X39))) (let ((X41 (ite X32 (ite (not (= X37 2)) 2 X40) X40))) (let ((X42 (ite X32 (ite (not (= X37 2)) 2 X37) X37))) (let ((X43 (and (= X42 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X44 (ite X43 (ite (= X42 2) 1 X42) X42))) (and (= top.impl.usr.chart_microwave_mode_logic_mode! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! (ite (not (= X2 4)) 1 X34) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X43 (ite (not (= X44 3)) 3 X41) X41) X36)) X34)) (= top.impl.usr.microwave_microwave_mode_logic_mode! top.impl.usr.chart_microwave_mode_logic_mode!) (let ((X45 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! X45 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X43 (ite (not (= X44 3)) 3 X44) X44) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) (not top.res.init_flag!)))))))))))))))))))))))))))))))))))))))))))))))))))) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/microwave15.sl b/benchmarks/LIA/Lustre/microwave15.sl index be190e7..17db94d 100644 --- a/benchmarks/LIA/Lustre/microwave15.sl +++ b/benchmarks/LIA/Lustre/microwave15.sl @@ -1,2365 +1,25 @@ (set-logic LIA) -(define-fun - __node_init_top_0 ( - (top.usr.KP_START_a_0 Bool) - (top.usr.KP_CLEAR_a_0 Bool) - (top.usr.KP_0_a_0 Bool) - (top.usr.KP_1_a_0 Bool) - (top.usr.KP_2_a_0 Bool) - (top.usr.KP_3_a_0 Bool) - (top.usr.KP_4_a_0 Bool) - (top.usr.KP_5_a_0 Bool) - (top.usr.KP_6_a_0 Bool) - (top.usr.KP_7_a_0 Bool) - (top.usr.KP_8_a_0 Bool) - (top.usr.KP_9_a_0 Bool) - (top.usr.DOOR_CLOSED_a_0 Bool) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.STEPS_TO_COOK_a_0 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) - (top.impl.usr.KP_01_a_0 Bool) - (top.impl.usr.KP_11_a_0 Bool) - (top.impl.usr.KP_21_a_0 Bool) - (top.impl.usr.KP_31_a_0 Bool) - (top.impl.usr.KP_41_a_0 Bool) - (top.impl.usr.KP_51_a_0 Bool) - (top.impl.usr.KP_61_a_0 Bool) - (top.impl.usr.KP_71_a_0 Bool) - (top.impl.usr.KP_81_a_0 Bool) - (top.impl.usr.KP_91_a_0 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int) - ) Bool - - (and - (= top.impl.usr.KP_91_a_0 top.usr.KP_9_a_0) - (= top.impl.usr.KP_81_a_0 top.usr.KP_8_a_0) - (= top.impl.usr.KP_71_a_0 top.usr.KP_7_a_0) - (= top.impl.usr.KP_61_a_0 top.usr.KP_6_a_0) - (= top.impl.usr.KP_51_a_0 top.usr.KP_5_a_0) - (= top.impl.usr.KP_41_a_0 top.usr.KP_4_a_0) - (= top.impl.usr.KP_31_a_0 top.usr.KP_3_a_0) - (= top.impl.usr.KP_21_a_0 top.usr.KP_2_a_0) - (= top.impl.usr.KP_11_a_0 top.usr.KP_1_a_0) - (= top.impl.usr.KP_01_a_0 top.usr.KP_0_a_0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - (ite - top.usr.KP_CLEAR_a_0 - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01_a_0 - 0 - (ite - top.impl.usr.KP_11_a_0 - 1 - (ite - top.impl.usr.KP_21_a_0 - 2 - (ite - top.impl.usr.KP_31_a_0 - 3 - (ite - top.impl.usr.KP_41_a_0 - 4 - (ite - top.impl.usr.KP_51_a_0 - 5 - (ite - top.impl.usr.KP_61_a_0 - 6 - (ite - top.impl.usr.KP_71_a_0 - 7 - (ite top.impl.usr.KP_81_a_0 8 (ite top.impl.usr.KP_91_a_0 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01_a_0 - 0 - (ite - top.impl.usr.KP_11_a_0 - 1 - (ite - top.impl.usr.KP_21_a_0 - 2 - (ite - top.impl.usr.KP_31_a_0 - 3 - (ite - top.impl.usr.KP_41_a_0 - 4 - (ite - top.impl.usr.KP_51_a_0 - 5 - (ite - top.impl.usr.KP_61_a_0 - 6 - (ite - top.impl.usr.KP_71_a_0 - 7 - (ite top.impl.usr.KP_81_a_0 8 (ite top.impl.usr.KP_91_a_0 9 10)))))))))) - 0))) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - 0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 0) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 - true) - (let - ((X1 Bool true)) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 - X1) - (= - top.impl.usr.STEPS_TO_COOK_a_0 - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0)) - 0 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 60)) - 1))) - (= top.usr.OK_a_0 (or X1 (= top.impl.usr.STEPS_TO_COOK_a_0 0))) - (let - ((X2 Int 0)) - (let - ((X3 Int 0)) - (let - ((X4 Int 0)) - (and - (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 true) - (let - ((X5 Bool (= X4 4))) - (let - ((X6 Bool top.usr.KP_START_a_0)) - (let - ((X7 Int (ite (not X6) 0 1))) - (let - ((X8 - Bool (and - X5 - (and - (= X4 4) - (and - (ite (not (= X7 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK_a_0 0)) 0 1) - 0)) - true - false)))))) - (let - ((X9 Int (ite X8 (ite (= X4 4) 0 X4) X4))) - (let - ((X10 Int (ite (not (and (>= X9 1) (<= X9 3))) 1 X9))) - (let - ((X11 - Bool (and - (not (and (>= X9 1) (<= X9 3))) - (and (>= X10 1) (<= X10 3))))) - (let - ((X12 Int (ite (not top.usr.DOOR_CLOSED_a_0) 0 1))) - (let - ((X13 - Bool (and - X11 - (and - (and (>= X10 1) (<= X10 3)) - (ite (not (= X12 0)) true false))))) - (let - ((X14 Int (ite X13 (ite (not (= X10 2)) 2 X10) X10))) - (let - ((X15 - Bool (and - X11 - (and (and (>= X14 1) (<= X14 3)) (not X13))))) - (let - ((X16 Int (ite X13 (ite (not (= X10 2)) 2 X3) X3))) - (let - ((X17 - Int (ite - X8 - (ite X15 (ite (not (= X14 3)) 3 X16) X16) - X3))) - (let - ((X18 Int (ite X15 (ite (not (= X14 3)) 3 X14) X14))) - (let - ((X19 Int (ite X8 X18 X9))) - (let - ((X20 Int (ite X5 top.impl.usr.STEPS_TO_COOK_a_0 X2))) - (let - ((X21 - Bool (and (and (= X19 2) (<= X20 0)) (= X19 2)))) - (let - ((X22 - Int (ite - X21 - (ite (and (>= X19 1) (<= X19 3)) 0 X19) - X19))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 4)) 4 X22) X22))) - (let - ((X24 - Bool (and - (= X23 3) - (and - (and - (ite (not (= X7 0)) true false) - (ite (not (= X12 0)) true false)) - (not X21))))) - (let - ((X25 Int (ite X24 (ite (= X23 3) 1 X23) X23))) - (let - ((X26 - Int (ite - X24 - (ite (not (= X25 2)) 2 X25) - X25))) - (let - ((X27 Bool (or X24 X21))) - (let - ((X28 Bool top.usr.KP_CLEAR_a_0)) - (let - ((X29 Int (ite (not X28) 0 1))) - (let - ((X30 - Bool (and - (and - (= X26 3) - (and - (ite (not (= X29 0)) true false) - (not X27))) - (and (= X26 3) (not X27))))) - (let - ((X31 - Int (ite - X30 - (ite - (and (>= X26 1) (<= X26 3)) - 0 - X26) - X26))) - (let - ((X32 - Int (ite - X30 - (ite (not (= X31 4)) 4 X31) - X31))) - (let - ((X33 Int (ite X30 0 X20))) - (let - ((X34 Bool (or X30 X27))) - (let - ((X35 - Bool (and - (= X32 2) - (and (> X33 0) (not X34))))) - (let - ((X36 - Int (ite - X35 - (ite (= X32 2) 1 X32) - X32))) - (let - ((X37 - Int (ite - X21 - (ite (not (= X22 4)) 1 X17) - X17))) - (let - ((X38 - Int (ite - X24 - (ite (not (= X25 2)) 2 X37) - X37))) - (let - ((X39 - Int (ite - X30 - (ite - (not (= X31 4)) - 1 - X38) - X38))) - (let - ((X40 - Int (ite - X35 - (ite - (not (= X36 2)) - 2 - X39) - X39))) - (let - ((X41 - Int (ite - X35 - (ite - (not (= X36 2)) - 2 - X36) - X36))) - (let - ((X42 - Bool (and - (= X41 2) - (and - (or - (ite - (not (= X29 0)) - true - false) - (not - (ite - (not (= X12 0)) - true - false))) - (not (or X35 X34)))))) - (let - ((X43 - Int (ite - X42 - (ite (= X41 2) 1 X41) - X41))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - true) - (= - top.impl.usr.chart_microwave_mode_logic_mode_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - (ite (not (= X4 4)) 1 X3) - (ite - (and - (not X8) - (and - (>= X19 1) - (<= X19 3))) - (ite - X42 - (ite - (not (= X43 3)) - 3 - X40) - X40) - X17)) - X3)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode_a_0 - top.impl.usr.chart_microwave_mode_logic_mode_a_0) - (let - ((X44 - Int (ite - (not (= X4 4)) - 4 - X4))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - X44 - (ite - (and - (not X8) - (and - (>= X19 1) - (<= X19 3))) - (ite - X42 - (ite - (not (= X43 3)) - 3 - X43) - X43) - X19)) - X4)) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - X2 - (ite - (and - (not X8) - (and - (>= X19 1) - (<= X19 3))) - (ite - X35 - (- X33 1) - X33) - X20)) - X2)) - (<= 0 X29 1) - (<= 0 X12 1) - (<= 0 X7 1) - top.res.init_flag_a_0))))))))))))))))))))))))))))))))))))))))))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.KP_START_a_1 Bool) - (top.usr.KP_CLEAR_a_1 Bool) - (top.usr.KP_0_a_1 Bool) - (top.usr.KP_1_a_1 Bool) - (top.usr.KP_2_a_1 Bool) - (top.usr.KP_3_a_1 Bool) - (top.usr.KP_4_a_1 Bool) - (top.usr.KP_5_a_1 Bool) - (top.usr.KP_6_a_1 Bool) - (top.usr.KP_7_a_1 Bool) - (top.usr.KP_8_a_1 Bool) - (top.usr.KP_9_a_1 Bool) - (top.usr.DOOR_CLOSED_a_1 Bool) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.STEPS_TO_COOK_a_1 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 Bool) - (top.impl.usr.KP_01_a_1 Bool) - (top.impl.usr.KP_11_a_1 Bool) - (top.impl.usr.KP_21_a_1 Bool) - (top.impl.usr.KP_31_a_1 Bool) - (top.impl.usr.KP_41_a_1 Bool) - (top.impl.usr.KP_51_a_1 Bool) - (top.impl.usr.KP_61_a_1 Bool) - (top.impl.usr.KP_71_a_1 Bool) - (top.impl.usr.KP_81_a_1 Bool) - (top.impl.usr.KP_91_a_1 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_1 Int) - (top.usr.KP_START_a_0 Bool) - (top.usr.KP_CLEAR_a_0 Bool) - (top.usr.KP_0_a_0 Bool) - (top.usr.KP_1_a_0 Bool) - (top.usr.KP_2_a_0 Bool) - (top.usr.KP_3_a_0 Bool) - (top.usr.KP_4_a_0 Bool) - (top.usr.KP_5_a_0 Bool) - (top.usr.KP_6_a_0 Bool) - (top.usr.KP_7_a_0 Bool) - (top.usr.KP_8_a_0 Bool) - (top.usr.KP_9_a_0 Bool) - (top.usr.DOOR_CLOSED_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.STEPS_TO_COOK_a_0 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) - (top.impl.usr.KP_01_a_0 Bool) - (top.impl.usr.KP_11_a_0 Bool) - (top.impl.usr.KP_21_a_0 Bool) - (top.impl.usr.KP_31_a_0 Bool) - (top.impl.usr.KP_41_a_0 Bool) - (top.impl.usr.KP_51_a_0 Bool) - (top.impl.usr.KP_61_a_0 Bool) - (top.impl.usr.KP_71_a_0 Bool) - (top.impl.usr.KP_81_a_0 Bool) - (top.impl.usr.KP_91_a_0 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int) - ) Bool - - (let - ((X1 - Bool (ite - (= 1 top.impl.usr.microwave_microwave_mode_logic_mode_a_0) - true - false))) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - X1) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (ite - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1) - true - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 - false - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0))) - (= top.impl.usr.KP_91_a_1 top.usr.KP_9_a_1) - (= top.impl.usr.KP_81_a_1 top.usr.KP_8_a_1) - (= top.impl.usr.KP_71_a_1 top.usr.KP_7_a_1) - (= top.impl.usr.KP_61_a_1 top.usr.KP_6_a_1) - (= top.impl.usr.KP_51_a_1 top.usr.KP_5_a_1) - (= top.impl.usr.KP_41_a_1 top.usr.KP_4_a_1) - (= top.impl.usr.KP_31_a_1 top.usr.KP_3_a_1) - (= top.impl.usr.KP_21_a_1 top.usr.KP_2_a_1) - (= top.impl.usr.KP_11_a_1 top.usr.KP_1_a_1) - (= top.impl.usr.KP_01_a_1 top.usr.KP_0_a_1) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01_a_1 - 0 - (ite - top.impl.usr.KP_11_a_1 - 1 - (ite - top.impl.usr.KP_21_a_1 - 2 - (ite - top.impl.usr.KP_31_a_1 - 3 - (ite - top.impl.usr.KP_41_a_1 - 4 - (ite - top.impl.usr.KP_51_a_1 - 5 - (ite - top.impl.usr.KP_61_a_1 - 6 - (ite - top.impl.usr.KP_71_a_1 - 7 - (ite - top.impl.usr.KP_81_a_1 - 8 - (ite top.impl.usr.KP_91_a_1 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01_a_1 - 0 - (ite - top.impl.usr.KP_11_a_1 - 1 - (ite - top.impl.usr.KP_21_a_1 - 2 - (ite - top.impl.usr.KP_31_a_1 - 3 - (ite - top.impl.usr.KP_41_a_1 - 4 - (ite - top.impl.usr.KP_51_a_1 - 5 - (ite - top.impl.usr.KP_61_a_1 - 6 - (ite - top.impl.usr.KP_71_a_1 - 7 - (ite top.impl.usr.KP_81_a_1 8 (ite top.impl.usr.KP_91_a_1 9 10)))))))))) - 0)) - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - 0 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - 0 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.STEPS_TO_COOK_a_1 - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1)) - 0 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 - 60)) - 1) - top.impl.usr.STEPS_TO_COOK_a_0))) - (= top.usr.OK_a_1 (or X1 (= top.impl.usr.STEPS_TO_COOK_a_1 0))) - (let - ((X2 Int top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0)) - (let - ((X3 Int top.impl.usr.chart_microwave_mode_logic_mode_a_0)) - (let - ((X4 - Int top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0)) - (and - (= - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - false - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0)) - (let - ((X5 Bool (= X4 4))) - (let - ((X6 Bool (and top.usr.KP_START_a_1 (not top.usr.KP_START_a_0)))) - (let - ((X7 Int (ite (not X6) 0 1))) - (let - ((X8 - Bool (and - X5 - (and - (= X4 4) - (and - (ite (not (= X7 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK_a_1 0)) 0 1) - 0)) - true - false)))))) - (let - ((X9 Int (ite X8 (ite (= X4 4) 0 X4) X4))) - (let - ((X10 Int (ite (not (and (>= X9 1) (<= X9 3))) 1 X9))) - (let - ((X11 - Bool (and - (not (and (>= X9 1) (<= X9 3))) - (and (>= X10 1) (<= X10 3))))) - (let - ((X12 Int (ite (not top.usr.DOOR_CLOSED_a_1) 0 1))) - (let - ((X13 - Bool (and - X11 - (and - (and (>= X10 1) (<= X10 3)) - (ite (not (= X12 0)) true false))))) - (let - ((X14 Int (ite X13 (ite (not (= X10 2)) 2 X10) X10))) - (let - ((X15 - Bool (and - X11 - (and (and (>= X14 1) (<= X14 3)) (not X13))))) - (let - ((X16 Int (ite X13 (ite (not (= X10 2)) 2 X3) X3))) - (let - ((X17 - Int (ite - X8 - (ite X15 (ite (not (= X14 3)) 3 X16) X16) - X3))) - (let - ((X18 Int (ite X15 (ite (not (= X14 3)) 3 X14) X14))) - (let - ((X19 Int (ite X8 X18 X9))) - (let - ((X20 Int (ite X5 top.impl.usr.STEPS_TO_COOK_a_1 X2))) - (let - ((X21 - Bool (and (and (= X19 2) (<= X20 0)) (= X19 2)))) - (let - ((X22 - Int (ite - X21 - (ite (and (>= X19 1) (<= X19 3)) 0 X19) - X19))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 4)) 4 X22) X22))) - (let - ((X24 - Bool (and - (= X23 3) - (and - (and - (ite (not (= X7 0)) true false) - (ite (not (= X12 0)) true false)) - (not X21))))) - (let - ((X25 Int (ite X24 (ite (= X23 3) 1 X23) X23))) - (let - ((X26 - Int (ite X24 (ite (not (= X25 2)) 2 X25) X25))) - (let - ((X27 Bool (or X24 X21))) - (let - ((X28 - Bool (and - top.usr.KP_CLEAR_a_1 - (not top.usr.KP_CLEAR_a_0)))) - (let - ((X29 Int (ite (not X28) 0 1))) - (let - ((X30 - Bool (and - (and - (= X26 3) - (and - (ite (not (= X29 0)) true false) - (not X27))) - (and (= X26 3) (not X27))))) - (let - ((X31 - Int (ite - X30 - (ite - (and (>= X26 1) (<= X26 3)) - 0 - X26) - X26))) - (let - ((X32 - Int (ite - X30 - (ite (not (= X31 4)) 4 X31) - X31))) - (let - ((X33 Int (ite X30 0 X20))) - (let - ((X34 Bool (or X30 X27))) - (let - ((X35 - Bool (and - (= X32 2) - (and (> X33 0) (not X34))))) - (let - ((X36 - Int (ite - X35 - (ite (= X32 2) 1 X32) - X32))) - (let - ((X37 - Int (ite - X21 - (ite (not (= X22 4)) 1 X17) - X17))) - (let - ((X38 - Int (ite - X24 - (ite (not (= X25 2)) 2 X37) - X37))) - (let - ((X39 - Int (ite - X30 - (ite (not (= X31 4)) 1 X38) - X38))) - (let - ((X40 - Int (ite - X35 - (ite - (not (= X36 2)) - 2 - X39) - X39))) - (let - ((X41 - Int (ite - X35 - (ite - (not (= X36 2)) - 2 - X36) - X36))) - (let - ((X42 - Bool (and - (= X41 2) - (and - (or - (ite - (not (= X29 0)) - true - false) - (not - (ite - (not (= X12 0)) - true - false))) - (not (or X35 X34)))))) - (let - ((X43 - Int (ite - X42 - (ite (= X41 2) 1 X41) - X41))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - true) - (= - top.impl.usr.chart_microwave_mode_logic_mode_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - (ite (not (= X4 4)) 1 X3) - (ite - (and - (not X8) - (and - (>= X19 1) - (<= X19 3))) - (ite - X42 - (ite - (not (= X43 3)) - 3 - X40) - X40) - X17)) - X3)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode_a_1 - top.impl.usr.chart_microwave_mode_logic_mode_a_1) - (let - ((X44 - Int (ite - (not (= X4 4)) - 4 - X4))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - X44 - (ite - (and - (not X8) - (and - (>= X19 1) - (<= X19 3))) - (ite - X42 - (ite - (not (= X43 3)) - 3 - X43) - X43) - X19)) - X4)) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - X2 - (ite - (and - (not X8) - (and - (>= X19 1) - (<= X19 3))) - (ite X35 (- X33 1) X33) - X20)) - X2)) - (<= 0 X29 1) - (<= 0 X12 1) - (<= 0 X7 1) - (not top.res.init_flag_a_1))))))))))))))))))))))))))))))))))))))))))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) -)) - -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.KP_START Bool) -(declare-primed-var top.usr.KP_CLEAR Bool) -(declare-primed-var top.usr.KP_0 Bool) -(declare-primed-var top.usr.KP_1 Bool) -(declare-primed-var top.usr.KP_2 Bool) -(declare-primed-var top.usr.KP_3 Bool) -(declare-primed-var top.usr.KP_4 Bool) -(declare-primed-var top.usr.KP_5 Bool) -(declare-primed-var top.usr.KP_6 Bool) -(declare-primed-var top.usr.KP_7 Bool) -(declare-primed-var top.usr.KP_8 Bool) -(declare-primed-var top.usr.KP_9 Bool) -(declare-primed-var top.usr.DOOR_CLOSED Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.STEPS_TO_COOK Int) -(declare-primed-var top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) -(declare-primed-var top.impl.usr.KP_01 Bool) -(declare-primed-var top.impl.usr.KP_11 Bool) -(declare-primed-var top.impl.usr.KP_21 Bool) -(declare-primed-var top.impl.usr.KP_31 Bool) -(declare-primed-var top.impl.usr.KP_41 Bool) -(declare-primed-var top.impl.usr.KP_51 Bool) -(declare-primed-var top.impl.usr.KP_61 Bool) -(declare-primed-var top.impl.usr.KP_71 Bool) -(declare-primed-var top.impl.usr.KP_81 Bool) -(declare-primed-var top.impl.usr.KP_91 Bool) -(declare-primed-var top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_mode Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) -(declare-primed-var top.impl.usr.microwave_microwave_mode_logic_mode Int) - -(define-fun - init ( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - ) Bool - - (and - (= top.impl.usr.KP_91 top.usr.KP_9) - (= top.impl.usr.KP_81 top.usr.KP_8) - (= top.impl.usr.KP_71 top.usr.KP_7) - (= top.impl.usr.KP_61 top.usr.KP_6) - (= top.impl.usr.KP_51 top.usr.KP_5) - (= top.impl.usr.KP_41 top.usr.KP_4) - (= top.impl.usr.KP_31 top.usr.KP_3) - (= top.impl.usr.KP_21 top.usr.KP_2) - (= top.impl.usr.KP_11 top.usr.KP_1) - (= top.impl.usr.KP_01 top.usr.KP_0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - (ite - top.usr.KP_CLEAR - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01 - 0 - (ite - top.impl.usr.KP_11 - 1 - (ite - top.impl.usr.KP_21 - 2 - (ite - top.impl.usr.KP_31 - 3 - (ite - top.impl.usr.KP_41 - 4 - (ite - top.impl.usr.KP_51 - 5 - (ite - top.impl.usr.KP_61 - 6 - (ite - top.impl.usr.KP_71 - 7 - (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01 - 0 - (ite - top.impl.usr.KP_11 - 1 - (ite - top.impl.usr.KP_21 - 2 - (ite - top.impl.usr.KP_31 - 3 - (ite - top.impl.usr.KP_41 - 4 - (ite - top.impl.usr.KP_51 - 5 - (ite - top.impl.usr.KP_61 - 6 - (ite - top.impl.usr.KP_71 - 7 - (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) - 0))) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - 0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY - 0) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step - true) - (let - ((X1 Bool true)) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock - X1) - (= - top.impl.usr.STEPS_TO_COOK - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock)) - 0 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY - 60)) - 1))) - (= top.usr.OK (or X1 (= top.impl.usr.STEPS_TO_COOK 0))) - (let - ((X2 Int 0)) - (let - ((X3 Int 0)) - (let - ((X4 Int 0)) - (and - (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep true) - (let - ((X5 Bool (= X4 4))) - (let - ((X6 Bool top.usr.KP_START)) - (let - ((X7 Int (ite (not X6) 0 1))) - (let - ((X8 - Bool (and - X5 - (and - (= X4 4) - (and - (ite (not (= X7 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK 0)) 0 1) - 0)) - true - false)))))) - (let - ((X9 Int (ite X8 (ite (= X4 4) 0 X4) X4))) - (let - ((X10 Int (ite (not (and (>= X9 1) (<= X9 3))) 1 X9))) - (let - ((X11 - Bool (and - (not (and (>= X9 1) (<= X9 3))) - (and (>= X10 1) (<= X10 3))))) - (let - ((X12 Int (ite (not top.usr.DOOR_CLOSED) 0 1))) - (let - ((X13 - Bool (and - X11 - (and - (and (>= X10 1) (<= X10 3)) - (ite (not (= X12 0)) true false))))) - (let - ((X14 Int (ite X13 (ite (not (= X10 2)) 2 X10) X10))) - (let - ((X15 - Bool (and - X11 - (and (and (>= X14 1) (<= X14 3)) (not X13))))) - (let - ((X16 Int (ite X13 (ite (not (= X10 2)) 2 X3) X3))) - (let - ((X17 - Int (ite - X8 - (ite X15 (ite (not (= X14 3)) 3 X16) X16) - X3))) - (let - ((X18 Int (ite X15 (ite (not (= X14 3)) 3 X14) X14))) - (let - ((X19 Int (ite X8 X18 X9))) - (let - ((X20 Int (ite X5 top.impl.usr.STEPS_TO_COOK X2))) - (let - ((X21 - Bool (and (and (= X19 2) (<= X20 0)) (= X19 2)))) - (let - ((X22 - Int (ite - X21 - (ite (and (>= X19 1) (<= X19 3)) 0 X19) - X19))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 4)) 4 X22) X22))) - (let - ((X24 - Bool (and - (= X23 3) - (and - (and - (ite (not (= X7 0)) true false) - (ite (not (= X12 0)) true false)) - (not X21))))) - (let - ((X25 Int (ite X24 (ite (= X23 3) 1 X23) X23))) - (let - ((X26 - Int (ite - X24 - (ite (not (= X25 2)) 2 X25) - X25))) - (let - ((X27 Bool (or X24 X21))) - (let - ((X28 Bool top.usr.KP_CLEAR)) - (let - ((X29 Int (ite (not X28) 0 1))) - (let - ((X30 - Bool (and - (and - (= X26 3) - (and - (ite (not (= X29 0)) true false) - (not X27))) - (and (= X26 3) (not X27))))) - (let - ((X31 - Int (ite - X30 - (ite - (and (>= X26 1) (<= X26 3)) - 0 - X26) - X26))) - (let - ((X32 - Int (ite - X30 - (ite (not (= X31 4)) 4 X31) - X31))) - (let - ((X33 Int (ite X30 0 X20))) - (let - ((X34 Bool (or X30 X27))) - (let - ((X35 - Bool (and - (= X32 2) - (and (> X33 0) (not X34))))) - (let - ((X36 - Int (ite - X35 - (ite (= X32 2) 1 X32) - X32))) - (let - ((X37 - Int (ite - X21 - (ite (not (= X22 4)) 1 X17) - X17))) - (let - ((X38 - Int (ite - X24 - (ite (not (= X25 2)) 2 X37) - X37))) - (let - ((X39 - Int (ite - X30 - (ite - (not (= X31 4)) - 1 - X38) - X38))) - (let - ((X40 - Int (ite - X35 - (ite - (not (= X36 2)) - 2 - X39) - X39))) - (let - ((X41 - Int (ite - X35 - (ite - (not (= X36 2)) - 2 - X36) - X36))) - (let - ((X42 - Bool (and - (= X41 2) - (and - (or - (ite - (not (= X29 0)) - true - false) - (not - (ite - (not (= X12 0)) - true - false))) - (not (or X35 X34)))))) - (let - ((X43 - Int (ite - X42 - (ite (= X41 2) 1 X41) - X41))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup___ - true) - (= - top.impl.usr.chart_microwave_mode_logic_mode - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - (ite (not (= X4 4)) 1 X3) - (ite - (and - (not X8) - (and - (>= X19 1) - (<= X19 3))) - (ite - X42 - (ite - (not (= X43 3)) - 3 - X40) - X40) - X17)) - X3)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode - top.impl.usr.chart_microwave_mode_logic_mode) - (let - ((X44 - Int (ite - (not (= X4 4)) - 4 - X4))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - X44 - (ite - (and - (not X8) - (and - (>= X19 1) - (<= X19 3))) - (ite - X42 - (ite - (not (= X43 3)) - 3 - X43) - X43) - X19)) - X4)) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - X2 - (ite - (and - (not X8) - (and - (>= X19 1) - (<= X19 3))) - (ite - X35 - (- X33 1) - X33) - X20)) - X2)) - (<= 0 X29 1) - (<= 0 X12 1) - (<= 0 X7 1) - top.res.init_flag))))))))))))))))))))))))))))))))))))))))))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - - ;; Next state. - (top.usr.KP_START! Bool) - (top.usr.KP_CLEAR! Bool) - (top.usr.KP_0! Bool) - (top.usr.KP_1! Bool) - (top.usr.KP_2! Bool) - (top.usr.KP_3! Bool) - (top.usr.KP_4! Bool) - (top.usr.KP_5! Bool) - (top.usr.KP_6! Bool) - (top.usr.KP_7! Bool) - (top.usr.KP_8! Bool) - (top.usr.KP_9! Bool) - (top.usr.DOOR_CLOSED! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.STEPS_TO_COOK! Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! Bool) - (top.impl.usr.KP_01! Bool) - (top.impl.usr.KP_11! Bool) - (top.impl.usr.KP_21! Bool) - (top.impl.usr.KP_31! Bool) - (top.impl.usr.KP_41! Bool) - (top.impl.usr.KP_51! Bool) - (top.impl.usr.KP_61! Bool) - (top.impl.usr.KP_71! Bool) - (top.impl.usr.KP_81! Bool) - (top.impl.usr.KP_91! Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___! Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root! Int) - (top.impl.usr.chart_microwave_mode_logic_mode! Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining! Int) - (top.impl.usr.microwave_microwave_mode_logic_mode! Int) - - ) Bool - - (and - (let - ((X1 - Bool (ite - (= 1 top.impl.usr.microwave_microwave_mode_logic_mode) - true - false))) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - X1) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (ite - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!) - true - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock - false - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step))) - (= top.impl.usr.KP_91! top.usr.KP_9!) - (= top.impl.usr.KP_81! top.usr.KP_8!) - (= top.impl.usr.KP_71! top.usr.KP_7!) - (= top.impl.usr.KP_61! top.usr.KP_6!) - (= top.impl.usr.KP_51! top.usr.KP_5!) - (= top.impl.usr.KP_41! top.usr.KP_4!) - (= top.impl.usr.KP_31! top.usr.KP_3!) - (= top.impl.usr.KP_21! top.usr.KP_2!) - (= top.impl.usr.KP_11! top.usr.KP_1!) - (= top.impl.usr.KP_01! top.usr.KP_0!) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01! - 0 - (ite - top.impl.usr.KP_11! - 1 - (ite - top.impl.usr.KP_21! - 2 - (ite - top.impl.usr.KP_31! - 3 - (ite - top.impl.usr.KP_41! - 4 - (ite - top.impl.usr.KP_51! - 5 - (ite - top.impl.usr.KP_61! - 6 - (ite - top.impl.usr.KP_71! - 7 - (ite - top.impl.usr.KP_81! - 8 - (ite top.impl.usr.KP_91! 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01! - 0 - (ite - top.impl.usr.KP_11! - 1 - (ite - top.impl.usr.KP_21! - 2 - (ite - top.impl.usr.KP_31! - 3 - (ite - top.impl.usr.KP_41! - 4 - (ite - top.impl.usr.KP_51! - 5 - (ite - top.impl.usr.KP_61! - 6 - (ite - top.impl.usr.KP_71! - 7 - (ite top.impl.usr.KP_81! 8 (ite top.impl.usr.KP_91! 9 10)))))))))) - 0)) - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - 0 - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - 0 - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.STEPS_TO_COOK! - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!)) - 0 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! - 60)) - 1) - top.impl.usr.STEPS_TO_COOK))) - (= top.usr.OK! (or X1 (= top.impl.usr.STEPS_TO_COOK! 0))) - (let - ((X2 Int top.impl.usr.chart_microwave_mode_logic_steps_remaining)) - (let - ((X3 Int top.impl.usr.chart_microwave_mode_logic_mode)) - (let - ((X4 - Int top.impl.usr.chart_microwave_mode_logic_final_state_states___root)) - (and - (= - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - false - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep)) - (let - ((X5 Bool (= X4 4))) - (let - ((X6 Bool (and top.usr.KP_START! (not top.usr.KP_START)))) - (let - ((X7 Int (ite (not X6) 0 1))) - (let - ((X8 - Bool (and - X5 - (and - (= X4 4) - (and - (ite (not (= X7 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK! 0)) 0 1) - 0)) - true - false)))))) - (let - ((X9 Int (ite X8 (ite (= X4 4) 0 X4) X4))) - (let - ((X10 Int (ite (not (and (>= X9 1) (<= X9 3))) 1 X9))) - (let - ((X11 - Bool (and - (not (and (>= X9 1) (<= X9 3))) - (and (>= X10 1) (<= X10 3))))) - (let - ((X12 Int (ite (not top.usr.DOOR_CLOSED!) 0 1))) - (let - ((X13 - Bool (and - X11 - (and - (and (>= X10 1) (<= X10 3)) - (ite (not (= X12 0)) true false))))) - (let - ((X14 Int (ite X13 (ite (not (= X10 2)) 2 X10) X10))) - (let - ((X15 - Bool (and - X11 - (and (and (>= X14 1) (<= X14 3)) (not X13))))) - (let - ((X16 Int (ite X13 (ite (not (= X10 2)) 2 X3) X3))) - (let - ((X17 - Int (ite - X8 - (ite X15 (ite (not (= X14 3)) 3 X16) X16) - X3))) - (let - ((X18 Int (ite X15 (ite (not (= X14 3)) 3 X14) X14))) - (let - ((X19 Int (ite X8 X18 X9))) - (let - ((X20 Int (ite X5 top.impl.usr.STEPS_TO_COOK! X2))) - (let - ((X21 - Bool (and (and (= X19 2) (<= X20 0)) (= X19 2)))) - (let - ((X22 - Int (ite - X21 - (ite (and (>= X19 1) (<= X19 3)) 0 X19) - X19))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 4)) 4 X22) X22))) - (let - ((X24 - Bool (and - (= X23 3) - (and - (and - (ite (not (= X7 0)) true false) - (ite (not (= X12 0)) true false)) - (not X21))))) - (let - ((X25 Int (ite X24 (ite (= X23 3) 1 X23) X23))) - (let - ((X26 - Int (ite - X24 - (ite (not (= X25 2)) 2 X25) - X25))) - (let - ((X27 Bool (or X24 X21))) - (let - ((X28 - Bool (and - top.usr.KP_CLEAR! - (not top.usr.KP_CLEAR)))) - (let - ((X29 Int (ite (not X28) 0 1))) - (let - ((X30 - Bool (and - (and - (= X26 3) - (and - (ite (not (= X29 0)) true false) - (not X27))) - (and (= X26 3) (not X27))))) - (let - ((X31 - Int (ite - X30 - (ite - (and (>= X26 1) (<= X26 3)) - 0 - X26) - X26))) - (let - ((X32 - Int (ite - X30 - (ite (not (= X31 4)) 4 X31) - X31))) - (let - ((X33 Int (ite X30 0 X20))) - (let - ((X34 Bool (or X30 X27))) - (let - ((X35 - Bool (and - (= X32 2) - (and (> X33 0) (not X34))))) - (let - ((X36 - Int (ite - X35 - (ite (= X32 2) 1 X32) - X32))) - (let - ((X37 - Int (ite - X21 - (ite (not (= X22 4)) 1 X17) - X17))) - (let - ((X38 - Int (ite - X24 - (ite (not (= X25 2)) 2 X37) - X37))) - (let - ((X39 - Int (ite - X30 - (ite - (not (= X31 4)) - 1 - X38) - X38))) - (let - ((X40 - Int (ite - X35 - (ite - (not (= X36 2)) - 2 - X39) - X39))) - (let - ((X41 - Int (ite - X35 - (ite - (not (= X36 2)) - 2 - X36) - X36))) - (let - ((X42 - Bool (and - (= X41 2) - (and - (or - (ite - (not (= X29 0)) - true - false) - (not - (ite - (not (= X12 0)) - true - false))) - (not (or X35 X34)))))) - (let - ((X43 - Int (ite - X42 - (ite (= X41 2) 1 X41) - X41))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup___! - true) - (= - top.impl.usr.chart_microwave_mode_logic_mode! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - (ite (not (= X4 4)) 1 X3) - (ite - (and - (not X8) - (and - (>= X19 1) - (<= X19 3))) - (ite - X42 - (ite - (not (= X43 3)) - 3 - X40) - X40) - X17)) - X3)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode! - top.impl.usr.chart_microwave_mode_logic_mode!) - (let - ((X44 - Int (ite - (not (= X4 4)) - 4 - X4))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - X44 - (ite - (and - (not X8) - (and - (>= X19 1) - (<= X19 3))) - (ite - X42 - (ite - (not (= X43 3)) - 3 - X43) - X43) - X19)) - X4)) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - X2 - (ite - (and - (not X8) - (and - (>= X19 1) - (<= X19 3))) - (ite - X35 - (- X33 1) - X33) - X20)) - X2)) - (<= 0 X29 1) - (<= 0 X12 1) - (<= 0 X7 1) - (not top.res.init_flag!))))))))))))))))))))))))))))))))))))))))))))))))) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - ) Bool - - top.usr.OK -) +(define-fun __node_init_top_0 ((top.usr.KP_START_a_0 Bool) (top.usr.KP_CLEAR_a_0 Bool) (top.usr.KP_0_a_0 Bool) (top.usr.KP_1_a_0 Bool) (top.usr.KP_2_a_0 Bool) (top.usr.KP_3_a_0 Bool) (top.usr.KP_4_a_0 Bool) (top.usr.KP_5_a_0 Bool) (top.usr.KP_6_a_0 Bool) (top.usr.KP_7_a_0 Bool) (top.usr.KP_8_a_0 Bool) (top.usr.KP_9_a_0 Bool) (top.usr.DOOR_CLOSED_a_0 Bool) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.STEPS_TO_COOK_a_0 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) (top.impl.usr.KP_01_a_0 Bool) (top.impl.usr.KP_11_a_0 Bool) (top.impl.usr.KP_21_a_0 Bool) (top.impl.usr.KP_31_a_0 Bool) (top.impl.usr.KP_41_a_0 Bool) (top.impl.usr.KP_51_a_0 Bool) (top.impl.usr.KP_61_a_0 Bool) (top.impl.usr.KP_71_a_0 Bool) (top.impl.usr.KP_81_a_0 Bool) (top.impl.usr.KP_91_a_0 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int)) Bool + (and (= top.impl.usr.KP_91_a_0 top.usr.KP_9_a_0) (= top.impl.usr.KP_81_a_0 top.usr.KP_8_a_0) (= top.impl.usr.KP_71_a_0 top.usr.KP_7_a_0) (= top.impl.usr.KP_61_a_0 top.usr.KP_6_a_0) (= top.impl.usr.KP_51_a_0 top.usr.KP_5_a_0) (= top.impl.usr.KP_41_a_0 top.usr.KP_4_a_0) (= top.impl.usr.KP_31_a_0 top.usr.KP_3_a_0) (= top.impl.usr.KP_21_a_0 top.usr.KP_2_a_0) (= top.impl.usr.KP_11_a_0 top.usr.KP_1_a_0) (= top.impl.usr.KP_01_a_0 top.usr.KP_0_a_0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 (ite top.usr.KP_CLEAR_a_0 0 (ite (ite (<= (ite top.impl.usr.KP_01_a_0 0 (ite top.impl.usr.KP_11_a_0 1 (ite top.impl.usr.KP_21_a_0 2 (ite top.impl.usr.KP_31_a_0 3 (ite top.impl.usr.KP_41_a_0 4 (ite top.impl.usr.KP_51_a_0 5 (ite top.impl.usr.KP_61_a_0 6 (ite top.impl.usr.KP_71_a_0 7 (ite top.impl.usr.KP_81_a_0 8 (ite top.impl.usr.KP_91_a_0 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01_a_0 0 (ite top.impl.usr.KP_11_a_0 1 (ite top.impl.usr.KP_21_a_0 2 (ite top.impl.usr.KP_31_a_0 3 (ite top.impl.usr.KP_41_a_0 4 (ite top.impl.usr.KP_51_a_0 5 (ite top.impl.usr.KP_61_a_0 6 (ite top.impl.usr.KP_71_a_0 7 (ite top.impl.usr.KP_81_a_0 8 (ite top.impl.usr.KP_91_a_0 9 10)))))))))) 0))) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 0) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 true) (let ((X1 true)) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 X1) (= top.impl.usr.STEPS_TO_COOK_a_0 (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0)) 0 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 60)) 1))) (= top.usr.OK_a_0 (or X1 (= top.impl.usr.STEPS_TO_COOK_a_0 0))) (let ((X2 0)) (let ((X3 0)) (let ((X4 0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 true) (let ((X5 (= X4 4))) (let ((X6 top.usr.KP_START_a_0)) (let ((X7 (ite (not X6) 0 1))) (let ((X8 (and X5 (and (= X4 4) (and (ite (not (= X7 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK_a_0 0)) 0 1) 0)) true false)))))) (let ((X9 (ite X8 (ite (= X4 4) 0 X4) X4))) (let ((X10 (ite (not (and (>= X9 1) (<= X9 3))) 1 X9))) (let ((X11 (and (not (and (>= X9 1) (<= X9 3))) (and (>= X10 1) (<= X10 3))))) (let ((X12 (ite (not top.usr.DOOR_CLOSED_a_0) 0 1))) (let ((X13 (and X11 (and (and (>= X10 1) (<= X10 3)) (ite (not (= X12 0)) true false))))) (let ((X14 (ite X13 (ite (not (= X10 2)) 2 X10) X10))) (let ((X15 (and X11 (and (and (>= X14 1) (<= X14 3)) (not X13))))) (let ((X16 (ite X13 (ite (not (= X10 2)) 2 X3) X3))) (let ((X17 (ite X8 (ite X15 (ite (not (= X14 3)) 3 X16) X16) X3))) (let ((X18 (ite X15 (ite (not (= X14 3)) 3 X14) X14))) (let ((X19 (ite X8 X18 X9))) (let ((X20 (ite X5 top.impl.usr.STEPS_TO_COOK_a_0 X2))) (let ((X21 (and (and (= X19 2) (<= X20 0)) (= X19 2)))) (let ((X22 (ite X21 (ite (and (>= X19 1) (<= X19 3)) 0 X19) X19))) (let ((X23 (ite X21 (ite (not (= X22 4)) 4 X22) X22))) (let ((X24 (and (= X23 3) (and (and (ite (not (= X7 0)) true false) (ite (not (= X12 0)) true false)) (not X21))))) (let ((X25 (ite X24 (ite (= X23 3) 1 X23) X23))) (let ((X26 (ite X24 (ite (not (= X25 2)) 2 X25) X25))) (let ((X27 (or X24 X21))) (let ((X28 top.usr.KP_CLEAR_a_0)) (let ((X29 (ite (not X28) 0 1))) (let ((X30 (and (and (= X26 3) (and (ite (not (= X29 0)) true false) (not X27))) (and (= X26 3) (not X27))))) (let ((X31 (ite X30 (ite (and (>= X26 1) (<= X26 3)) 0 X26) X26))) (let ((X32 (ite X30 (ite (not (= X31 4)) 4 X31) X31))) (let ((X33 (ite X30 0 X20))) (let ((X34 (or X30 X27))) (let ((X35 (and (= X32 2) (and (> X33 0) (not X34))))) (let ((X36 (ite X35 (ite (= X32 2) 1 X32) X32))) (let ((X37 (ite X21 (ite (not (= X22 4)) 1 X17) X17))) (let ((X38 (ite X24 (ite (not (= X25 2)) 2 X37) X37))) (let ((X39 (ite X30 (ite (not (= X31 4)) 1 X38) X38))) (let ((X40 (ite X35 (ite (not (= X36 2)) 2 X39) X39))) (let ((X41 (ite X35 (ite (not (= X36 2)) 2 X36) X36))) (let ((X42 (and (= X41 2) (and (or (ite (not (= X29 0)) true false) (not (ite (not (= X12 0)) true false))) (not (or X35 X34)))))) (let ((X43 (ite X42 (ite (= X41 2) 1 X41) X41))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 true) (= top.impl.usr.chart_microwave_mode_logic_mode_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 (ite (not (= X4 4)) 1 X3) (ite (and (not X8) (and (>= X19 1) (<= X19 3))) (ite X42 (ite (not (= X43 3)) 3 X40) X40) X17)) X3)) (= top.impl.usr.microwave_microwave_mode_logic_mode_a_0 top.impl.usr.chart_microwave_mode_logic_mode_a_0) (let ((X44 (ite (not (= X4 4)) 4 X4))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 X44 (ite (and (not X8) (and (>= X19 1) (<= X19 3))) (ite X42 (ite (not (= X43 3)) 3 X43) X43) X19)) X4)) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 X2 (ite (and (not X8) (and (>= X19 1) (<= X19 3))) (ite X35 (- X33 1) X33) X20)) X2)) (<= 0 X29 1) (<= 0 X12 1) (<= 0 X7 1) top.res.init_flag_a_0)))))))))))))))))))))))))))))))))))))))))))))))))) +(define-fun __node_trans_top_0 ((top.usr.KP_START_a_1 Bool) (top.usr.KP_CLEAR_a_1 Bool) (top.usr.KP_0_a_1 Bool) (top.usr.KP_1_a_1 Bool) (top.usr.KP_2_a_1 Bool) (top.usr.KP_3_a_1 Bool) (top.usr.KP_4_a_1 Bool) (top.usr.KP_5_a_1 Bool) (top.usr.KP_6_a_1 Bool) (top.usr.KP_7_a_1 Bool) (top.usr.KP_8_a_1 Bool) (top.usr.KP_9_a_1 Bool) (top.usr.DOOR_CLOSED_a_1 Bool) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.STEPS_TO_COOK_a_1 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 Bool) (top.impl.usr.KP_01_a_1 Bool) (top.impl.usr.KP_11_a_1 Bool) (top.impl.usr.KP_21_a_1 Bool) (top.impl.usr.KP_31_a_1 Bool) (top.impl.usr.KP_41_a_1 Bool) (top.impl.usr.KP_51_a_1 Bool) (top.impl.usr.KP_61_a_1 Bool) (top.impl.usr.KP_71_a_1 Bool) (top.impl.usr.KP_81_a_1 Bool) (top.impl.usr.KP_91_a_1 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_1 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_1 Int) (top.usr.KP_START_a_0 Bool) (top.usr.KP_CLEAR_a_0 Bool) (top.usr.KP_0_a_0 Bool) (top.usr.KP_1_a_0 Bool) (top.usr.KP_2_a_0 Bool) (top.usr.KP_3_a_0 Bool) (top.usr.KP_4_a_0 Bool) (top.usr.KP_5_a_0 Bool) (top.usr.KP_6_a_0 Bool) (top.usr.KP_7_a_0 Bool) (top.usr.KP_8_a_0 Bool) (top.usr.KP_9_a_0 Bool) (top.usr.DOOR_CLOSED_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.STEPS_TO_COOK_a_0 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) (top.impl.usr.KP_01_a_0 Bool) (top.impl.usr.KP_11_a_0 Bool) (top.impl.usr.KP_21_a_0 Bool) (top.impl.usr.KP_31_a_0 Bool) (top.impl.usr.KP_41_a_0 Bool) (top.impl.usr.KP_51_a_0 Bool) (top.impl.usr.KP_61_a_0 Bool) (top.impl.usr.KP_71_a_0 Bool) (top.impl.usr.KP_81_a_0 Bool) (top.impl.usr.KP_91_a_0 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int)) Bool + (let ((X1 (ite (= 1 top.impl.usr.microwave_microwave_mode_logic_mode_a_0) true false))) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 X1) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (ite (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1) true (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 false top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0))) (= top.impl.usr.KP_91_a_1 top.usr.KP_9_a_1) (= top.impl.usr.KP_81_a_1 top.usr.KP_8_a_1) (= top.impl.usr.KP_71_a_1 top.usr.KP_7_a_1) (= top.impl.usr.KP_61_a_1 top.usr.KP_6_a_1) (= top.impl.usr.KP_51_a_1 top.usr.KP_5_a_1) (= top.impl.usr.KP_41_a_1 top.usr.KP_4_a_1) (= top.impl.usr.KP_31_a_1 top.usr.KP_3_a_1) (= top.impl.usr.KP_21_a_1 top.usr.KP_2_a_1) (= top.impl.usr.KP_11_a_1 top.usr.KP_1_a_1) (= top.impl.usr.KP_01_a_1 top.usr.KP_0_a_1) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite top.impl.usr.KP_01_a_1 0 (ite top.impl.usr.KP_11_a_1 1 (ite top.impl.usr.KP_21_a_1 2 (ite top.impl.usr.KP_31_a_1 3 (ite top.impl.usr.KP_41_a_1 4 (ite top.impl.usr.KP_51_a_1 5 (ite top.impl.usr.KP_61_a_1 6 (ite top.impl.usr.KP_71_a_1 7 (ite top.impl.usr.KP_81_a_1 8 (ite top.impl.usr.KP_91_a_1 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01_a_1 0 (ite top.impl.usr.KP_11_a_1 1 (ite top.impl.usr.KP_21_a_1 2 (ite top.impl.usr.KP_31_a_1 3 (ite top.impl.usr.KP_41_a_1 4 (ite top.impl.usr.KP_51_a_1 5 (ite top.impl.usr.KP_61_a_1 6 (ite top.impl.usr.KP_71_a_1 7 (ite top.impl.usr.KP_81_a_1 8 (ite top.impl.usr.KP_91_a_1 9 10)))))))))) 0)) (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 0 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 0 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.STEPS_TO_COOK_a_1 (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1)) 0 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 60)) 1) top.impl.usr.STEPS_TO_COOK_a_0))) (= top.usr.OK_a_1 (or X1 (= top.impl.usr.STEPS_TO_COOK_a_1 0))) (let ((X2 top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0)) (let ((X3 top.impl.usr.chart_microwave_mode_logic_mode_a_0)) (let ((X4 top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 false top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0)) (let ((X5 (= X4 4))) (let ((X6 (and top.usr.KP_START_a_1 (not top.usr.KP_START_a_0)))) (let ((X7 (ite (not X6) 0 1))) (let ((X8 (and X5 (and (= X4 4) (and (ite (not (= X7 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK_a_1 0)) 0 1) 0)) true false)))))) (let ((X9 (ite X8 (ite (= X4 4) 0 X4) X4))) (let ((X10 (ite (not (and (>= X9 1) (<= X9 3))) 1 X9))) (let ((X11 (and (not (and (>= X9 1) (<= X9 3))) (and (>= X10 1) (<= X10 3))))) (let ((X12 (ite (not top.usr.DOOR_CLOSED_a_1) 0 1))) (let ((X13 (and X11 (and (and (>= X10 1) (<= X10 3)) (ite (not (= X12 0)) true false))))) (let ((X14 (ite X13 (ite (not (= X10 2)) 2 X10) X10))) (let ((X15 (and X11 (and (and (>= X14 1) (<= X14 3)) (not X13))))) (let ((X16 (ite X13 (ite (not (= X10 2)) 2 X3) X3))) (let ((X17 (ite X8 (ite X15 (ite (not (= X14 3)) 3 X16) X16) X3))) (let ((X18 (ite X15 (ite (not (= X14 3)) 3 X14) X14))) (let ((X19 (ite X8 X18 X9))) (let ((X20 (ite X5 top.impl.usr.STEPS_TO_COOK_a_1 X2))) (let ((X21 (and (and (= X19 2) (<= X20 0)) (= X19 2)))) (let ((X22 (ite X21 (ite (and (>= X19 1) (<= X19 3)) 0 X19) X19))) (let ((X23 (ite X21 (ite (not (= X22 4)) 4 X22) X22))) (let ((X24 (and (= X23 3) (and (and (ite (not (= X7 0)) true false) (ite (not (= X12 0)) true false)) (not X21))))) (let ((X25 (ite X24 (ite (= X23 3) 1 X23) X23))) (let ((X26 (ite X24 (ite (not (= X25 2)) 2 X25) X25))) (let ((X27 (or X24 X21))) (let ((X28 (and top.usr.KP_CLEAR_a_1 (not top.usr.KP_CLEAR_a_0)))) (let ((X29 (ite (not X28) 0 1))) (let ((X30 (and (and (= X26 3) (and (ite (not (= X29 0)) true false) (not X27))) (and (= X26 3) (not X27))))) (let ((X31 (ite X30 (ite (and (>= X26 1) (<= X26 3)) 0 X26) X26))) (let ((X32 (ite X30 (ite (not (= X31 4)) 4 X31) X31))) (let ((X33 (ite X30 0 X20))) (let ((X34 (or X30 X27))) (let ((X35 (and (= X32 2) (and (> X33 0) (not X34))))) (let ((X36 (ite X35 (ite (= X32 2) 1 X32) X32))) (let ((X37 (ite X21 (ite (not (= X22 4)) 1 X17) X17))) (let ((X38 (ite X24 (ite (not (= X25 2)) 2 X37) X37))) (let ((X39 (ite X30 (ite (not (= X31 4)) 1 X38) X38))) (let ((X40 (ite X35 (ite (not (= X36 2)) 2 X39) X39))) (let ((X41 (ite X35 (ite (not (= X36 2)) 2 X36) X36))) (let ((X42 (and (= X41 2) (and (or (ite (not (= X29 0)) true false) (not (ite (not (= X12 0)) true false))) (not (or X35 X34)))))) (let ((X43 (ite X42 (ite (= X41 2) 1 X41) X41))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 true) (= top.impl.usr.chart_microwave_mode_logic_mode_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 (ite (not (= X4 4)) 1 X3) (ite (and (not X8) (and (>= X19 1) (<= X19 3))) (ite X42 (ite (not (= X43 3)) 3 X40) X40) X17)) X3)) (= top.impl.usr.microwave_microwave_mode_logic_mode_a_1 top.impl.usr.chart_microwave_mode_logic_mode_a_1) (let ((X44 (ite (not (= X4 4)) 4 X4))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 X44 (ite (and (not X8) (and (>= X19 1) (<= X19 3))) (ite X42 (ite (not (= X43 3)) 3 X43) X43) X19)) X4)) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 X2 (ite (and (not X8) (and (>= X19 1) (<= X19 3))) (ite X35 (- X33 1) X33) X20)) X2)) (<= 0 X29 1) (<= 0 X12 1) (<= 0 X7 1) (not top.res.init_flag_a_1)))))))))))))))))))))))))))))))))))))))))))))))))) +(synth-inv str_invariant ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int))) + +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int)) Bool + (and (= top.impl.usr.KP_91 top.usr.KP_9) (= top.impl.usr.KP_81 top.usr.KP_8) (= top.impl.usr.KP_71 top.usr.KP_7) (= top.impl.usr.KP_61 top.usr.KP_6) (= top.impl.usr.KP_51 top.usr.KP_5) (= top.impl.usr.KP_41 top.usr.KP_4) (= top.impl.usr.KP_31 top.usr.KP_3) (= top.impl.usr.KP_21 top.usr.KP_2) (= top.impl.usr.KP_11 top.usr.KP_1) (= top.impl.usr.KP_01 top.usr.KP_0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY (ite top.usr.KP_CLEAR 0 (ite (ite (<= (ite top.impl.usr.KP_01 0 (ite top.impl.usr.KP_11 1 (ite top.impl.usr.KP_21 2 (ite top.impl.usr.KP_31 3 (ite top.impl.usr.KP_41 4 (ite top.impl.usr.KP_51 5 (ite top.impl.usr.KP_61 6 (ite top.impl.usr.KP_71 7 (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01 0 (ite top.impl.usr.KP_11 1 (ite top.impl.usr.KP_21 2 (ite top.impl.usr.KP_31 3 (ite top.impl.usr.KP_41 4 (ite top.impl.usr.KP_51 5 (ite top.impl.usr.KP_61 6 (ite top.impl.usr.KP_71 7 (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) 0))) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY 0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY 0) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step true) (let ((X1 true)) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock X1) (= top.impl.usr.STEPS_TO_COOK (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock)) 0 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY 60)) 1))) (= top.usr.OK (or X1 (= top.impl.usr.STEPS_TO_COOK 0))) (let ((X2 0)) (let ((X3 0)) (let ((X4 0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep true) (let ((X5 (= X4 4))) (let ((X6 top.usr.KP_START)) (let ((X7 (ite (not X6) 0 1))) (let ((X8 (and X5 (and (= X4 4) (and (ite (not (= X7 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK 0)) 0 1) 0)) true false)))))) (let ((X9 (ite X8 (ite (= X4 4) 0 X4) X4))) (let ((X10 (ite (not (and (>= X9 1) (<= X9 3))) 1 X9))) (let ((X11 (and (not (and (>= X9 1) (<= X9 3))) (and (>= X10 1) (<= X10 3))))) (let ((X12 (ite (not top.usr.DOOR_CLOSED) 0 1))) (let ((X13 (and X11 (and (and (>= X10 1) (<= X10 3)) (ite (not (= X12 0)) true false))))) (let ((X14 (ite X13 (ite (not (= X10 2)) 2 X10) X10))) (let ((X15 (and X11 (and (and (>= X14 1) (<= X14 3)) (not X13))))) (let ((X16 (ite X13 (ite (not (= X10 2)) 2 X3) X3))) (let ((X17 (ite X8 (ite X15 (ite (not (= X14 3)) 3 X16) X16) X3))) (let ((X18 (ite X15 (ite (not (= X14 3)) 3 X14) X14))) (let ((X19 (ite X8 X18 X9))) (let ((X20 (ite X5 top.impl.usr.STEPS_TO_COOK X2))) (let ((X21 (and (and (= X19 2) (<= X20 0)) (= X19 2)))) (let ((X22 (ite X21 (ite (and (>= X19 1) (<= X19 3)) 0 X19) X19))) (let ((X23 (ite X21 (ite (not (= X22 4)) 4 X22) X22))) (let ((X24 (and (= X23 3) (and (and (ite (not (= X7 0)) true false) (ite (not (= X12 0)) true false)) (not X21))))) (let ((X25 (ite X24 (ite (= X23 3) 1 X23) X23))) (let ((X26 (ite X24 (ite (not (= X25 2)) 2 X25) X25))) (let ((X27 (or X24 X21))) (let ((X28 top.usr.KP_CLEAR)) (let ((X29 (ite (not X28) 0 1))) (let ((X30 (and (and (= X26 3) (and (ite (not (= X29 0)) true false) (not X27))) (and (= X26 3) (not X27))))) (let ((X31 (ite X30 (ite (and (>= X26 1) (<= X26 3)) 0 X26) X26))) (let ((X32 (ite X30 (ite (not (= X31 4)) 4 X31) X31))) (let ((X33 (ite X30 0 X20))) (let ((X34 (or X30 X27))) (let ((X35 (and (= X32 2) (and (> X33 0) (not X34))))) (let ((X36 (ite X35 (ite (= X32 2) 1 X32) X32))) (let ((X37 (ite X21 (ite (not (= X22 4)) 1 X17) X17))) (let ((X38 (ite X24 (ite (not (= X25 2)) 2 X37) X37))) (let ((X39 (ite X30 (ite (not (= X31 4)) 1 X38) X38))) (let ((X40 (ite X35 (ite (not (= X36 2)) 2 X39) X39))) (let ((X41 (ite X35 (ite (not (= X36 2)) 2 X36) X36))) (let ((X42 (and (= X41 2) (and (or (ite (not (= X29 0)) true false) (not (ite (not (= X12 0)) true false))) (not (or X35 X34)))))) (let ((X43 (ite X42 (ite (= X41 2) 1 X41) X41))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup___ true) (= top.impl.usr.chart_microwave_mode_logic_mode (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep (ite (not (= X4 4)) 1 X3) (ite (and (not X8) (and (>= X19 1) (<= X19 3))) (ite X42 (ite (not (= X43 3)) 3 X40) X40) X17)) X3)) (= top.impl.usr.microwave_microwave_mode_logic_mode top.impl.usr.chart_microwave_mode_logic_mode) (let ((X44 (ite (not (= X4 4)) 4 X4))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep X44 (ite (and (not X8) (and (>= X19 1) (<= X19 3))) (ite X42 (ite (not (= X43 3)) 3 X43) X43) X19)) X4)) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep X2 (ite (and (not X8) (and (>= X19 1) (<= X19 3))) (ite X35 (- X33 1) X33) X20)) X2)) (<= 0 X29 1) (<= 0 X12 1) (<= 0 X7 1) top.res.init_flag)))))))))))))))))))))))))))))))))))))))))))))))))) +(define-fun trans ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int) (top.usr.KP_START! Bool) (top.usr.KP_CLEAR! Bool) (top.usr.KP_0! Bool) (top.usr.KP_1! Bool) (top.usr.KP_2! Bool) (top.usr.KP_3! Bool) (top.usr.KP_4! Bool) (top.usr.KP_5! Bool) (top.usr.KP_6! Bool) (top.usr.KP_7! Bool) (top.usr.KP_8! Bool) (top.usr.KP_9! Bool) (top.usr.DOOR_CLOSED! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.STEPS_TO_COOK! Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! Bool) (top.impl.usr.KP_01! Bool) (top.impl.usr.KP_11! Bool) (top.impl.usr.KP_21! Bool) (top.impl.usr.KP_31! Bool) (top.impl.usr.KP_41! Bool) (top.impl.usr.KP_51! Bool) (top.impl.usr.KP_61! Bool) (top.impl.usr.KP_71! Bool) (top.impl.usr.KP_81! Bool) (top.impl.usr.KP_91! Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___! Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root! Int) (top.impl.usr.chart_microwave_mode_logic_mode! Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining! Int) (top.impl.usr.microwave_microwave_mode_logic_mode! Int)) Bool + (and (let ((X1 (ite (= 1 top.impl.usr.microwave_microwave_mode_logic_mode) true false))) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! X1) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (ite (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!) true (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock false top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step))) (= top.impl.usr.KP_91! top.usr.KP_9!) (= top.impl.usr.KP_81! top.usr.KP_8!) (= top.impl.usr.KP_71! top.usr.KP_7!) (= top.impl.usr.KP_61! top.usr.KP_6!) (= top.impl.usr.KP_51! top.usr.KP_5!) (= top.impl.usr.KP_41! top.usr.KP_4!) (= top.impl.usr.KP_31! top.usr.KP_3!) (= top.impl.usr.KP_21! top.usr.KP_2!) (= top.impl.usr.KP_11! top.usr.KP_1!) (= top.impl.usr.KP_01! top.usr.KP_0!) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite top.impl.usr.KP_01! 0 (ite top.impl.usr.KP_11! 1 (ite top.impl.usr.KP_21! 2 (ite top.impl.usr.KP_31! 3 (ite top.impl.usr.KP_41! 4 (ite top.impl.usr.KP_51! 5 (ite top.impl.usr.KP_61! 6 (ite top.impl.usr.KP_71! 7 (ite top.impl.usr.KP_81! 8 (ite top.impl.usr.KP_91! 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01! 0 (ite top.impl.usr.KP_11! 1 (ite top.impl.usr.KP_21! 2 (ite top.impl.usr.KP_31! 3 (ite top.impl.usr.KP_41! 4 (ite top.impl.usr.KP_51! 5 (ite top.impl.usr.KP_61! 6 (ite top.impl.usr.KP_71! 7 (ite top.impl.usr.KP_81! 8 (ite top.impl.usr.KP_91! 9 10)))))))))) 0)) (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! 0 (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! 0 (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.STEPS_TO_COOK! (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!)) 0 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! 60)) 1) top.impl.usr.STEPS_TO_COOK))) (= top.usr.OK! (or X1 (= top.impl.usr.STEPS_TO_COOK! 0))) (let ((X2 top.impl.usr.chart_microwave_mode_logic_steps_remaining)) (let ((X3 top.impl.usr.chart_microwave_mode_logic_mode)) (let ((X4 top.impl.usr.chart_microwave_mode_logic_final_state_states___root)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ false top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep)) (let ((X5 (= X4 4))) (let ((X6 (and top.usr.KP_START! (not top.usr.KP_START)))) (let ((X7 (ite (not X6) 0 1))) (let ((X8 (and X5 (and (= X4 4) (and (ite (not (= X7 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK! 0)) 0 1) 0)) true false)))))) (let ((X9 (ite X8 (ite (= X4 4) 0 X4) X4))) (let ((X10 (ite (not (and (>= X9 1) (<= X9 3))) 1 X9))) (let ((X11 (and (not (and (>= X9 1) (<= X9 3))) (and (>= X10 1) (<= X10 3))))) (let ((X12 (ite (not top.usr.DOOR_CLOSED!) 0 1))) (let ((X13 (and X11 (and (and (>= X10 1) (<= X10 3)) (ite (not (= X12 0)) true false))))) (let ((X14 (ite X13 (ite (not (= X10 2)) 2 X10) X10))) (let ((X15 (and X11 (and (and (>= X14 1) (<= X14 3)) (not X13))))) (let ((X16 (ite X13 (ite (not (= X10 2)) 2 X3) X3))) (let ((X17 (ite X8 (ite X15 (ite (not (= X14 3)) 3 X16) X16) X3))) (let ((X18 (ite X15 (ite (not (= X14 3)) 3 X14) X14))) (let ((X19 (ite X8 X18 X9))) (let ((X20 (ite X5 top.impl.usr.STEPS_TO_COOK! X2))) (let ((X21 (and (and (= X19 2) (<= X20 0)) (= X19 2)))) (let ((X22 (ite X21 (ite (and (>= X19 1) (<= X19 3)) 0 X19) X19))) (let ((X23 (ite X21 (ite (not (= X22 4)) 4 X22) X22))) (let ((X24 (and (= X23 3) (and (and (ite (not (= X7 0)) true false) (ite (not (= X12 0)) true false)) (not X21))))) (let ((X25 (ite X24 (ite (= X23 3) 1 X23) X23))) (let ((X26 (ite X24 (ite (not (= X25 2)) 2 X25) X25))) (let ((X27 (or X24 X21))) (let ((X28 (and top.usr.KP_CLEAR! (not top.usr.KP_CLEAR)))) (let ((X29 (ite (not X28) 0 1))) (let ((X30 (and (and (= X26 3) (and (ite (not (= X29 0)) true false) (not X27))) (and (= X26 3) (not X27))))) (let ((X31 (ite X30 (ite (and (>= X26 1) (<= X26 3)) 0 X26) X26))) (let ((X32 (ite X30 (ite (not (= X31 4)) 4 X31) X31))) (let ((X33 (ite X30 0 X20))) (let ((X34 (or X30 X27))) (let ((X35 (and (= X32 2) (and (> X33 0) (not X34))))) (let ((X36 (ite X35 (ite (= X32 2) 1 X32) X32))) (let ((X37 (ite X21 (ite (not (= X22 4)) 1 X17) X17))) (let ((X38 (ite X24 (ite (not (= X25 2)) 2 X37) X37))) (let ((X39 (ite X30 (ite (not (= X31 4)) 1 X38) X38))) (let ((X40 (ite X35 (ite (not (= X36 2)) 2 X39) X39))) (let ((X41 (ite X35 (ite (not (= X36 2)) 2 X36) X36))) (let ((X42 (and (= X41 2) (and (or (ite (not (= X29 0)) true false) (not (ite (not (= X12 0)) true false))) (not (or X35 X34)))))) (let ((X43 (ite X42 (ite (= X41 2) 1 X41) X41))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup___! true) (= top.impl.usr.chart_microwave_mode_logic_mode! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! (ite (not (= X4 4)) 1 X3) (ite (and (not X8) (and (>= X19 1) (<= X19 3))) (ite X42 (ite (not (= X43 3)) 3 X40) X40) X17)) X3)) (= top.impl.usr.microwave_microwave_mode_logic_mode! top.impl.usr.chart_microwave_mode_logic_mode!) (let ((X44 (ite (not (= X4 4)) 4 X4))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! X44 (ite (and (not X8) (and (>= X19 1) (<= X19 3))) (ite X42 (ite (not (= X43 3)) 3 X43) X43) X19)) X4)) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! X2 (ite (and (not X8) (and (>= X19 1) (<= X19 3))) (ite X35 (- X33 1) X33) X20)) X2)) (<= 0 X29 1) (<= 0 X12 1) (<= 0 X7 1) (not top.res.init_flag!))))))))))))))))))))))))))))))))))))))))))))))))) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/microwave16.sl b/benchmarks/LIA/Lustre/microwave16.sl index 8d532e5..a93feb1 100644 --- a/benchmarks/LIA/Lustre/microwave16.sl +++ b/benchmarks/LIA/Lustre/microwave16.sl @@ -1,2377 +1,25 @@ (set-logic LIA) -(define-fun - __node_init_top_0 ( - (top.usr.KP_START_a_0 Bool) - (top.usr.KP_CLEAR_a_0 Bool) - (top.usr.KP_0_a_0 Bool) - (top.usr.KP_1_a_0 Bool) - (top.usr.KP_2_a_0 Bool) - (top.usr.KP_3_a_0 Bool) - (top.usr.KP_4_a_0 Bool) - (top.usr.KP_5_a_0 Bool) - (top.usr.KP_6_a_0 Bool) - (top.usr.KP_7_a_0 Bool) - (top.usr.KP_8_a_0 Bool) - (top.usr.KP_9_a_0 Bool) - (top.usr.DOOR_CLOSED_a_0 Bool) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.STEPS_TO_COOK_a_0 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) - (top.impl.usr.KP_01_a_0 Bool) - (top.impl.usr.KP_11_a_0 Bool) - (top.impl.usr.KP_21_a_0 Bool) - (top.impl.usr.KP_31_a_0 Bool) - (top.impl.usr.KP_41_a_0 Bool) - (top.impl.usr.KP_51_a_0 Bool) - (top.impl.usr.KP_61_a_0 Bool) - (top.impl.usr.KP_71_a_0 Bool) - (top.impl.usr.KP_81_a_0 Bool) - (top.impl.usr.KP_91_a_0 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int) - ) Bool - - (and - (= top.impl.usr.KP_91_a_0 top.usr.KP_9_a_0) - (= top.impl.usr.KP_81_a_0 top.usr.KP_8_a_0) - (= top.impl.usr.KP_71_a_0 top.usr.KP_7_a_0) - (= top.impl.usr.KP_61_a_0 top.usr.KP_6_a_0) - (= top.impl.usr.KP_51_a_0 top.usr.KP_5_a_0) - (= top.impl.usr.KP_41_a_0 top.usr.KP_4_a_0) - (= top.impl.usr.KP_31_a_0 top.usr.KP_3_a_0) - (= top.impl.usr.KP_21_a_0 top.usr.KP_2_a_0) - (= top.impl.usr.KP_11_a_0 top.usr.KP_1_a_0) - (= top.impl.usr.KP_01_a_0 top.usr.KP_0_a_0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - (ite - top.usr.KP_CLEAR_a_0 - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01_a_0 - 0 - (ite - top.impl.usr.KP_11_a_0 - 1 - (ite - top.impl.usr.KP_21_a_0 - 2 - (ite - top.impl.usr.KP_31_a_0 - 3 - (ite - top.impl.usr.KP_41_a_0 - 4 - (ite - top.impl.usr.KP_51_a_0 - 5 - (ite - top.impl.usr.KP_61_a_0 - 6 - (ite - top.impl.usr.KP_71_a_0 - 7 - (ite top.impl.usr.KP_81_a_0 8 (ite top.impl.usr.KP_91_a_0 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01_a_0 - 0 - (ite - top.impl.usr.KP_11_a_0 - 1 - (ite - top.impl.usr.KP_21_a_0 - 2 - (ite - top.impl.usr.KP_31_a_0 - 3 - (ite - top.impl.usr.KP_41_a_0 - 4 - (ite - top.impl.usr.KP_51_a_0 - 5 - (ite - top.impl.usr.KP_61_a_0 - 6 - (ite - top.impl.usr.KP_71_a_0 - 7 - (ite top.impl.usr.KP_81_a_0 8 (ite top.impl.usr.KP_91_a_0 9 10)))))))))) - 0))) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - 0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 0) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 - true) - (let - ((X1 Bool true)) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 - X1) - (= - top.impl.usr.STEPS_TO_COOK_a_0 - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0)) - 0 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 60)) - 1))) - (= - top.usr.OK_a_0 - (or - (not (and X1 top.usr.KP_CLEAR_a_0)) - (= top.impl.usr.STEPS_TO_COOK_a_0 0))) - (let - ((X2 Int 0)) - (let - ((X3 Int 0)) - (let - ((X4 Int 0)) - (and - (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 true) - (let - ((X5 Bool (= X4 4))) - (let - ((X6 Bool top.usr.KP_START_a_0)) - (let - ((X7 Int (ite (not X6) 0 1))) - (let - ((X8 - Bool (and - X5 - (and - (= X4 4) - (and - (ite (not (= X7 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK_a_0 0)) 0 1) - 0)) - true - false)))))) - (let - ((X9 Int (ite X8 (ite (= X4 4) 0 X4) X4))) - (let - ((X10 Int (ite (not (and (>= X9 1) (<= X9 3))) 1 X9))) - (let - ((X11 - Bool (and - (not (and (>= X9 1) (<= X9 3))) - (and (>= X10 1) (<= X10 3))))) - (let - ((X12 Int (ite (not top.usr.DOOR_CLOSED_a_0) 0 1))) - (let - ((X13 - Bool (and - X11 - (and - (and (>= X10 1) (<= X10 3)) - (ite (not (= X12 0)) true false))))) - (let - ((X14 Int (ite X13 (ite (not (= X10 2)) 2 X10) X10))) - (let - ((X15 - Bool (and - X11 - (and (and (>= X14 1) (<= X14 3)) (not X13))))) - (let - ((X16 Int (ite X13 (ite (not (= X10 2)) 2 X3) X3))) - (let - ((X17 - Int (ite - X8 - (ite X15 (ite (not (= X14 3)) 3 X16) X16) - X3))) - (let - ((X18 Int (ite X15 (ite (not (= X14 3)) 3 X14) X14))) - (let - ((X19 Int (ite X8 X18 X9))) - (let - ((X20 Int (ite X5 top.impl.usr.STEPS_TO_COOK_a_0 X2))) - (let - ((X21 - Bool (and (and (= X19 2) (<= X20 0)) (= X19 2)))) - (let - ((X22 - Int (ite - X21 - (ite (and (>= X19 1) (<= X19 3)) 0 X19) - X19))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 4)) 4 X22) X22))) - (let - ((X24 - Bool (and - (= X23 3) - (and - (and - (ite (not (= X7 0)) true false) - (ite (not (= X12 0)) true false)) - (not X21))))) - (let - ((X25 Int (ite X24 (ite (= X23 3) 1 X23) X23))) - (let - ((X26 - Int (ite - X24 - (ite (not (= X25 2)) 2 X25) - X25))) - (let - ((X27 Bool (or X24 X21))) - (let - ((X28 Bool top.usr.KP_CLEAR_a_0)) - (let - ((X29 Int (ite (not X28) 0 1))) - (let - ((X30 - Bool (and - (and - (= X26 3) - (and - (ite (not (= X29 0)) true false) - (not X27))) - (and (= X26 3) (not X27))))) - (let - ((X31 - Int (ite - X30 - (ite - (and (>= X26 1) (<= X26 3)) - 0 - X26) - X26))) - (let - ((X32 - Int (ite - X30 - (ite (not (= X31 4)) 4 X31) - X31))) - (let - ((X33 Int (ite X30 0 X20))) - (let - ((X34 Bool (or X30 X27))) - (let - ((X35 - Bool (and - (= X32 2) - (and (> X33 0) (not X34))))) - (let - ((X36 - Int (ite - X35 - (ite (= X32 2) 1 X32) - X32))) - (let - ((X37 - Int (ite - X21 - (ite (not (= X22 4)) 1 X17) - X17))) - (let - ((X38 - Int (ite - X24 - (ite (not (= X25 2)) 2 X37) - X37))) - (let - ((X39 - Int (ite - X30 - (ite - (not (= X31 4)) - 1 - X38) - X38))) - (let - ((X40 - Int (ite - X35 - (ite - (not (= X36 2)) - 2 - X39) - X39))) - (let - ((X41 - Int (ite - X35 - (ite - (not (= X36 2)) - 2 - X36) - X36))) - (let - ((X42 - Bool (and - (= X41 2) - (and - (or - (ite - (not (= X29 0)) - true - false) - (not - (ite - (not (= X12 0)) - true - false))) - (not (or X35 X34)))))) - (let - ((X43 - Int (ite - X42 - (ite (= X41 2) 1 X41) - X41))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - true) - (= - top.impl.usr.chart_microwave_mode_logic_mode_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - (ite (not (= X4 4)) 1 X3) - (ite - (and - (not X8) - (and - (>= X19 1) - (<= X19 3))) - (ite - X42 - (ite - (not (= X43 3)) - 3 - X40) - X40) - X17)) - X3)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode_a_0 - top.impl.usr.chart_microwave_mode_logic_mode_a_0) - (let - ((X44 - Int (ite - (not (= X4 4)) - 4 - X4))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - X44 - (ite - (and - (not X8) - (and - (>= X19 1) - (<= X19 3))) - (ite - X42 - (ite - (not (= X43 3)) - 3 - X43) - X43) - X19)) - X4)) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - X2 - (ite - (and - (not X8) - (and - (>= X19 1) - (<= X19 3))) - (ite - X35 - (- X33 1) - X33) - X20)) - X2)) - (<= 0 X29 1) - (<= 0 X12 1) - (<= 0 X7 1) - top.res.init_flag_a_0))))))))))))))))))))))))))))))))))))))))))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.KP_START_a_1 Bool) - (top.usr.KP_CLEAR_a_1 Bool) - (top.usr.KP_0_a_1 Bool) - (top.usr.KP_1_a_1 Bool) - (top.usr.KP_2_a_1 Bool) - (top.usr.KP_3_a_1 Bool) - (top.usr.KP_4_a_1 Bool) - (top.usr.KP_5_a_1 Bool) - (top.usr.KP_6_a_1 Bool) - (top.usr.KP_7_a_1 Bool) - (top.usr.KP_8_a_1 Bool) - (top.usr.KP_9_a_1 Bool) - (top.usr.DOOR_CLOSED_a_1 Bool) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.STEPS_TO_COOK_a_1 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 Bool) - (top.impl.usr.KP_01_a_1 Bool) - (top.impl.usr.KP_11_a_1 Bool) - (top.impl.usr.KP_21_a_1 Bool) - (top.impl.usr.KP_31_a_1 Bool) - (top.impl.usr.KP_41_a_1 Bool) - (top.impl.usr.KP_51_a_1 Bool) - (top.impl.usr.KP_61_a_1 Bool) - (top.impl.usr.KP_71_a_1 Bool) - (top.impl.usr.KP_81_a_1 Bool) - (top.impl.usr.KP_91_a_1 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_1 Int) - (top.usr.KP_START_a_0 Bool) - (top.usr.KP_CLEAR_a_0 Bool) - (top.usr.KP_0_a_0 Bool) - (top.usr.KP_1_a_0 Bool) - (top.usr.KP_2_a_0 Bool) - (top.usr.KP_3_a_0 Bool) - (top.usr.KP_4_a_0 Bool) - (top.usr.KP_5_a_0 Bool) - (top.usr.KP_6_a_0 Bool) - (top.usr.KP_7_a_0 Bool) - (top.usr.KP_8_a_0 Bool) - (top.usr.KP_9_a_0 Bool) - (top.usr.DOOR_CLOSED_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.STEPS_TO_COOK_a_0 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) - (top.impl.usr.KP_01_a_0 Bool) - (top.impl.usr.KP_11_a_0 Bool) - (top.impl.usr.KP_21_a_0 Bool) - (top.impl.usr.KP_31_a_0 Bool) - (top.impl.usr.KP_41_a_0 Bool) - (top.impl.usr.KP_51_a_0 Bool) - (top.impl.usr.KP_61_a_0 Bool) - (top.impl.usr.KP_71_a_0 Bool) - (top.impl.usr.KP_81_a_0 Bool) - (top.impl.usr.KP_91_a_0 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int) - ) Bool - - (let - ((X1 - Bool (ite - (= 1 top.impl.usr.microwave_microwave_mode_logic_mode_a_0) - true - false))) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - X1) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (ite - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1) - true - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 - false - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0))) - (= top.impl.usr.KP_91_a_1 top.usr.KP_9_a_1) - (= top.impl.usr.KP_81_a_1 top.usr.KP_8_a_1) - (= top.impl.usr.KP_71_a_1 top.usr.KP_7_a_1) - (= top.impl.usr.KP_61_a_1 top.usr.KP_6_a_1) - (= top.impl.usr.KP_51_a_1 top.usr.KP_5_a_1) - (= top.impl.usr.KP_41_a_1 top.usr.KP_4_a_1) - (= top.impl.usr.KP_31_a_1 top.usr.KP_3_a_1) - (= top.impl.usr.KP_21_a_1 top.usr.KP_2_a_1) - (= top.impl.usr.KP_11_a_1 top.usr.KP_1_a_1) - (= top.impl.usr.KP_01_a_1 top.usr.KP_0_a_1) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01_a_1 - 0 - (ite - top.impl.usr.KP_11_a_1 - 1 - (ite - top.impl.usr.KP_21_a_1 - 2 - (ite - top.impl.usr.KP_31_a_1 - 3 - (ite - top.impl.usr.KP_41_a_1 - 4 - (ite - top.impl.usr.KP_51_a_1 - 5 - (ite - top.impl.usr.KP_61_a_1 - 6 - (ite - top.impl.usr.KP_71_a_1 - 7 - (ite - top.impl.usr.KP_81_a_1 - 8 - (ite top.impl.usr.KP_91_a_1 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01_a_1 - 0 - (ite - top.impl.usr.KP_11_a_1 - 1 - (ite - top.impl.usr.KP_21_a_1 - 2 - (ite - top.impl.usr.KP_31_a_1 - 3 - (ite - top.impl.usr.KP_41_a_1 - 4 - (ite - top.impl.usr.KP_51_a_1 - 5 - (ite - top.impl.usr.KP_61_a_1 - 6 - (ite - top.impl.usr.KP_71_a_1 - 7 - (ite top.impl.usr.KP_81_a_1 8 (ite top.impl.usr.KP_91_a_1 9 10)))))))))) - 0)) - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - 0 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - 0 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.STEPS_TO_COOK_a_1 - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1)) - 0 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 - 60)) - 1) - top.impl.usr.STEPS_TO_COOK_a_0))) - (= - top.usr.OK_a_1 - (or - (not (and X1 top.usr.KP_CLEAR_a_1)) - (= top.impl.usr.STEPS_TO_COOK_a_1 0))) - (let - ((X2 Int top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0)) - (let - ((X3 Int top.impl.usr.chart_microwave_mode_logic_mode_a_0)) - (let - ((X4 - Int top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0)) - (and - (= - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - false - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0)) - (let - ((X5 Bool (= X4 4))) - (let - ((X6 Bool (and top.usr.KP_START_a_1 (not top.usr.KP_START_a_0)))) - (let - ((X7 Int (ite (not X6) 0 1))) - (let - ((X8 - Bool (and - X5 - (and - (= X4 4) - (and - (ite (not (= X7 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK_a_1 0)) 0 1) - 0)) - true - false)))))) - (let - ((X9 Int (ite X8 (ite (= X4 4) 0 X4) X4))) - (let - ((X10 Int (ite (not (and (>= X9 1) (<= X9 3))) 1 X9))) - (let - ((X11 - Bool (and - (not (and (>= X9 1) (<= X9 3))) - (and (>= X10 1) (<= X10 3))))) - (let - ((X12 Int (ite (not top.usr.DOOR_CLOSED_a_1) 0 1))) - (let - ((X13 - Bool (and - X11 - (and - (and (>= X10 1) (<= X10 3)) - (ite (not (= X12 0)) true false))))) - (let - ((X14 Int (ite X13 (ite (not (= X10 2)) 2 X10) X10))) - (let - ((X15 - Bool (and - X11 - (and (and (>= X14 1) (<= X14 3)) (not X13))))) - (let - ((X16 Int (ite X13 (ite (not (= X10 2)) 2 X3) X3))) - (let - ((X17 - Int (ite - X8 - (ite X15 (ite (not (= X14 3)) 3 X16) X16) - X3))) - (let - ((X18 Int (ite X15 (ite (not (= X14 3)) 3 X14) X14))) - (let - ((X19 Int (ite X8 X18 X9))) - (let - ((X20 Int (ite X5 top.impl.usr.STEPS_TO_COOK_a_1 X2))) - (let - ((X21 - Bool (and (and (= X19 2) (<= X20 0)) (= X19 2)))) - (let - ((X22 - Int (ite - X21 - (ite (and (>= X19 1) (<= X19 3)) 0 X19) - X19))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 4)) 4 X22) X22))) - (let - ((X24 - Bool (and - (= X23 3) - (and - (and - (ite (not (= X7 0)) true false) - (ite (not (= X12 0)) true false)) - (not X21))))) - (let - ((X25 Int (ite X24 (ite (= X23 3) 1 X23) X23))) - (let - ((X26 - Int (ite X24 (ite (not (= X25 2)) 2 X25) X25))) - (let - ((X27 Bool (or X24 X21))) - (let - ((X28 - Bool (and - top.usr.KP_CLEAR_a_1 - (not top.usr.KP_CLEAR_a_0)))) - (let - ((X29 Int (ite (not X28) 0 1))) - (let - ((X30 - Bool (and - (and - (= X26 3) - (and - (ite (not (= X29 0)) true false) - (not X27))) - (and (= X26 3) (not X27))))) - (let - ((X31 - Int (ite - X30 - (ite - (and (>= X26 1) (<= X26 3)) - 0 - X26) - X26))) - (let - ((X32 - Int (ite - X30 - (ite (not (= X31 4)) 4 X31) - X31))) - (let - ((X33 Int (ite X30 0 X20))) - (let - ((X34 Bool (or X30 X27))) - (let - ((X35 - Bool (and - (= X32 2) - (and (> X33 0) (not X34))))) - (let - ((X36 - Int (ite - X35 - (ite (= X32 2) 1 X32) - X32))) - (let - ((X37 - Int (ite - X21 - (ite (not (= X22 4)) 1 X17) - X17))) - (let - ((X38 - Int (ite - X24 - (ite (not (= X25 2)) 2 X37) - X37))) - (let - ((X39 - Int (ite - X30 - (ite (not (= X31 4)) 1 X38) - X38))) - (let - ((X40 - Int (ite - X35 - (ite - (not (= X36 2)) - 2 - X39) - X39))) - (let - ((X41 - Int (ite - X35 - (ite - (not (= X36 2)) - 2 - X36) - X36))) - (let - ((X42 - Bool (and - (= X41 2) - (and - (or - (ite - (not (= X29 0)) - true - false) - (not - (ite - (not (= X12 0)) - true - false))) - (not (or X35 X34)))))) - (let - ((X43 - Int (ite - X42 - (ite (= X41 2) 1 X41) - X41))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - true) - (= - top.impl.usr.chart_microwave_mode_logic_mode_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - (ite (not (= X4 4)) 1 X3) - (ite - (and - (not X8) - (and - (>= X19 1) - (<= X19 3))) - (ite - X42 - (ite - (not (= X43 3)) - 3 - X40) - X40) - X17)) - X3)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode_a_1 - top.impl.usr.chart_microwave_mode_logic_mode_a_1) - (let - ((X44 - Int (ite - (not (= X4 4)) - 4 - X4))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - X44 - (ite - (and - (not X8) - (and - (>= X19 1) - (<= X19 3))) - (ite - X42 - (ite - (not (= X43 3)) - 3 - X43) - X43) - X19)) - X4)) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - X2 - (ite - (and - (not X8) - (and - (>= X19 1) - (<= X19 3))) - (ite X35 (- X33 1) X33) - X20)) - X2)) - (<= 0 X29 1) - (<= 0 X12 1) - (<= 0 X7 1) - (not top.res.init_flag_a_1))))))))))))))))))))))))))))))))))))))))))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) -)) - -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.KP_START Bool) -(declare-primed-var top.usr.KP_CLEAR Bool) -(declare-primed-var top.usr.KP_0 Bool) -(declare-primed-var top.usr.KP_1 Bool) -(declare-primed-var top.usr.KP_2 Bool) -(declare-primed-var top.usr.KP_3 Bool) -(declare-primed-var top.usr.KP_4 Bool) -(declare-primed-var top.usr.KP_5 Bool) -(declare-primed-var top.usr.KP_6 Bool) -(declare-primed-var top.usr.KP_7 Bool) -(declare-primed-var top.usr.KP_8 Bool) -(declare-primed-var top.usr.KP_9 Bool) -(declare-primed-var top.usr.DOOR_CLOSED Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.STEPS_TO_COOK Int) -(declare-primed-var top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) -(declare-primed-var top.impl.usr.KP_01 Bool) -(declare-primed-var top.impl.usr.KP_11 Bool) -(declare-primed-var top.impl.usr.KP_21 Bool) -(declare-primed-var top.impl.usr.KP_31 Bool) -(declare-primed-var top.impl.usr.KP_41 Bool) -(declare-primed-var top.impl.usr.KP_51 Bool) -(declare-primed-var top.impl.usr.KP_61 Bool) -(declare-primed-var top.impl.usr.KP_71 Bool) -(declare-primed-var top.impl.usr.KP_81 Bool) -(declare-primed-var top.impl.usr.KP_91 Bool) -(declare-primed-var top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_mode Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) -(declare-primed-var top.impl.usr.microwave_microwave_mode_logic_mode Int) - -(define-fun - init ( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - ) Bool - - (and - (= top.impl.usr.KP_91 top.usr.KP_9) - (= top.impl.usr.KP_81 top.usr.KP_8) - (= top.impl.usr.KP_71 top.usr.KP_7) - (= top.impl.usr.KP_61 top.usr.KP_6) - (= top.impl.usr.KP_51 top.usr.KP_5) - (= top.impl.usr.KP_41 top.usr.KP_4) - (= top.impl.usr.KP_31 top.usr.KP_3) - (= top.impl.usr.KP_21 top.usr.KP_2) - (= top.impl.usr.KP_11 top.usr.KP_1) - (= top.impl.usr.KP_01 top.usr.KP_0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - (ite - top.usr.KP_CLEAR - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01 - 0 - (ite - top.impl.usr.KP_11 - 1 - (ite - top.impl.usr.KP_21 - 2 - (ite - top.impl.usr.KP_31 - 3 - (ite - top.impl.usr.KP_41 - 4 - (ite - top.impl.usr.KP_51 - 5 - (ite - top.impl.usr.KP_61 - 6 - (ite - top.impl.usr.KP_71 - 7 - (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01 - 0 - (ite - top.impl.usr.KP_11 - 1 - (ite - top.impl.usr.KP_21 - 2 - (ite - top.impl.usr.KP_31 - 3 - (ite - top.impl.usr.KP_41 - 4 - (ite - top.impl.usr.KP_51 - 5 - (ite - top.impl.usr.KP_61 - 6 - (ite - top.impl.usr.KP_71 - 7 - (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) - 0))) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - 0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY - 0) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step - true) - (let - ((X1 Bool true)) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock - X1) - (= - top.impl.usr.STEPS_TO_COOK - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock)) - 0 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY - 60)) - 1))) - (= - top.usr.OK - (or (not (and X1 top.usr.KP_CLEAR)) (= top.impl.usr.STEPS_TO_COOK 0))) - (let - ((X2 Int 0)) - (let - ((X3 Int 0)) - (let - ((X4 Int 0)) - (and - (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep true) - (let - ((X5 Bool (= X4 4))) - (let - ((X6 Bool top.usr.KP_START)) - (let - ((X7 Int (ite (not X6) 0 1))) - (let - ((X8 - Bool (and - X5 - (and - (= X4 4) - (and - (ite (not (= X7 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK 0)) 0 1) - 0)) - true - false)))))) - (let - ((X9 Int (ite X8 (ite (= X4 4) 0 X4) X4))) - (let - ((X10 Int (ite (not (and (>= X9 1) (<= X9 3))) 1 X9))) - (let - ((X11 - Bool (and - (not (and (>= X9 1) (<= X9 3))) - (and (>= X10 1) (<= X10 3))))) - (let - ((X12 Int (ite (not top.usr.DOOR_CLOSED) 0 1))) - (let - ((X13 - Bool (and - X11 - (and - (and (>= X10 1) (<= X10 3)) - (ite (not (= X12 0)) true false))))) - (let - ((X14 Int (ite X13 (ite (not (= X10 2)) 2 X10) X10))) - (let - ((X15 - Bool (and - X11 - (and (and (>= X14 1) (<= X14 3)) (not X13))))) - (let - ((X16 Int (ite X13 (ite (not (= X10 2)) 2 X3) X3))) - (let - ((X17 - Int (ite - X8 - (ite X15 (ite (not (= X14 3)) 3 X16) X16) - X3))) - (let - ((X18 Int (ite X15 (ite (not (= X14 3)) 3 X14) X14))) - (let - ((X19 Int (ite X8 X18 X9))) - (let - ((X20 Int (ite X5 top.impl.usr.STEPS_TO_COOK X2))) - (let - ((X21 - Bool (and (and (= X19 2) (<= X20 0)) (= X19 2)))) - (let - ((X22 - Int (ite - X21 - (ite (and (>= X19 1) (<= X19 3)) 0 X19) - X19))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 4)) 4 X22) X22))) - (let - ((X24 - Bool (and - (= X23 3) - (and - (and - (ite (not (= X7 0)) true false) - (ite (not (= X12 0)) true false)) - (not X21))))) - (let - ((X25 Int (ite X24 (ite (= X23 3) 1 X23) X23))) - (let - ((X26 - Int (ite - X24 - (ite (not (= X25 2)) 2 X25) - X25))) - (let - ((X27 Bool (or X24 X21))) - (let - ((X28 Bool top.usr.KP_CLEAR)) - (let - ((X29 Int (ite (not X28) 0 1))) - (let - ((X30 - Bool (and - (and - (= X26 3) - (and - (ite (not (= X29 0)) true false) - (not X27))) - (and (= X26 3) (not X27))))) - (let - ((X31 - Int (ite - X30 - (ite - (and (>= X26 1) (<= X26 3)) - 0 - X26) - X26))) - (let - ((X32 - Int (ite - X30 - (ite (not (= X31 4)) 4 X31) - X31))) - (let - ((X33 Int (ite X30 0 X20))) - (let - ((X34 Bool (or X30 X27))) - (let - ((X35 - Bool (and - (= X32 2) - (and (> X33 0) (not X34))))) - (let - ((X36 - Int (ite - X35 - (ite (= X32 2) 1 X32) - X32))) - (let - ((X37 - Int (ite - X21 - (ite (not (= X22 4)) 1 X17) - X17))) - (let - ((X38 - Int (ite - X24 - (ite (not (= X25 2)) 2 X37) - X37))) - (let - ((X39 - Int (ite - X30 - (ite - (not (= X31 4)) - 1 - X38) - X38))) - (let - ((X40 - Int (ite - X35 - (ite - (not (= X36 2)) - 2 - X39) - X39))) - (let - ((X41 - Int (ite - X35 - (ite - (not (= X36 2)) - 2 - X36) - X36))) - (let - ((X42 - Bool (and - (= X41 2) - (and - (or - (ite - (not (= X29 0)) - true - false) - (not - (ite - (not (= X12 0)) - true - false))) - (not (or X35 X34)))))) - (let - ((X43 - Int (ite - X42 - (ite (= X41 2) 1 X41) - X41))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup___ - true) - (= - top.impl.usr.chart_microwave_mode_logic_mode - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - (ite (not (= X4 4)) 1 X3) - (ite - (and - (not X8) - (and - (>= X19 1) - (<= X19 3))) - (ite - X42 - (ite - (not (= X43 3)) - 3 - X40) - X40) - X17)) - X3)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode - top.impl.usr.chart_microwave_mode_logic_mode) - (let - ((X44 - Int (ite - (not (= X4 4)) - 4 - X4))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - X44 - (ite - (and - (not X8) - (and - (>= X19 1) - (<= X19 3))) - (ite - X42 - (ite - (not (= X43 3)) - 3 - X43) - X43) - X19)) - X4)) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - X2 - (ite - (and - (not X8) - (and - (>= X19 1) - (<= X19 3))) - (ite - X35 - (- X33 1) - X33) - X20)) - X2)) - (<= 0 X29 1) - (<= 0 X12 1) - (<= 0 X7 1) - top.res.init_flag))))))))))))))))))))))))))))))))))))))))))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - - ;; Next state. - (top.usr.KP_START! Bool) - (top.usr.KP_CLEAR! Bool) - (top.usr.KP_0! Bool) - (top.usr.KP_1! Bool) - (top.usr.KP_2! Bool) - (top.usr.KP_3! Bool) - (top.usr.KP_4! Bool) - (top.usr.KP_5! Bool) - (top.usr.KP_6! Bool) - (top.usr.KP_7! Bool) - (top.usr.KP_8! Bool) - (top.usr.KP_9! Bool) - (top.usr.DOOR_CLOSED! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.STEPS_TO_COOK! Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! Bool) - (top.impl.usr.KP_01! Bool) - (top.impl.usr.KP_11! Bool) - (top.impl.usr.KP_21! Bool) - (top.impl.usr.KP_31! Bool) - (top.impl.usr.KP_41! Bool) - (top.impl.usr.KP_51! Bool) - (top.impl.usr.KP_61! Bool) - (top.impl.usr.KP_71! Bool) - (top.impl.usr.KP_81! Bool) - (top.impl.usr.KP_91! Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___! Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root! Int) - (top.impl.usr.chart_microwave_mode_logic_mode! Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining! Int) - (top.impl.usr.microwave_microwave_mode_logic_mode! Int) - - ) Bool - - (and - (let - ((X1 - Bool (ite - (= 1 top.impl.usr.microwave_microwave_mode_logic_mode) - true - false))) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - X1) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (ite - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!) - true - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock - false - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step))) - (= top.impl.usr.KP_91! top.usr.KP_9!) - (= top.impl.usr.KP_81! top.usr.KP_8!) - (= top.impl.usr.KP_71! top.usr.KP_7!) - (= top.impl.usr.KP_61! top.usr.KP_6!) - (= top.impl.usr.KP_51! top.usr.KP_5!) - (= top.impl.usr.KP_41! top.usr.KP_4!) - (= top.impl.usr.KP_31! top.usr.KP_3!) - (= top.impl.usr.KP_21! top.usr.KP_2!) - (= top.impl.usr.KP_11! top.usr.KP_1!) - (= top.impl.usr.KP_01! top.usr.KP_0!) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01! - 0 - (ite - top.impl.usr.KP_11! - 1 - (ite - top.impl.usr.KP_21! - 2 - (ite - top.impl.usr.KP_31! - 3 - (ite - top.impl.usr.KP_41! - 4 - (ite - top.impl.usr.KP_51! - 5 - (ite - top.impl.usr.KP_61! - 6 - (ite - top.impl.usr.KP_71! - 7 - (ite - top.impl.usr.KP_81! - 8 - (ite top.impl.usr.KP_91! 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01! - 0 - (ite - top.impl.usr.KP_11! - 1 - (ite - top.impl.usr.KP_21! - 2 - (ite - top.impl.usr.KP_31! - 3 - (ite - top.impl.usr.KP_41! - 4 - (ite - top.impl.usr.KP_51! - 5 - (ite - top.impl.usr.KP_61! - 6 - (ite - top.impl.usr.KP_71! - 7 - (ite top.impl.usr.KP_81! 8 (ite top.impl.usr.KP_91! 9 10)))))))))) - 0)) - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - 0 - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - 0 - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.STEPS_TO_COOK! - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!)) - 0 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! - 60)) - 1) - top.impl.usr.STEPS_TO_COOK))) - (= - top.usr.OK! - (or (not (and X1 top.usr.KP_CLEAR!)) (= top.impl.usr.STEPS_TO_COOK! 0))) - (let - ((X2 Int top.impl.usr.chart_microwave_mode_logic_steps_remaining)) - (let - ((X3 Int top.impl.usr.chart_microwave_mode_logic_mode)) - (let - ((X4 - Int top.impl.usr.chart_microwave_mode_logic_final_state_states___root)) - (and - (= - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - false - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep)) - (let - ((X5 Bool (= X4 4))) - (let - ((X6 Bool (and top.usr.KP_START! (not top.usr.KP_START)))) - (let - ((X7 Int (ite (not X6) 0 1))) - (let - ((X8 - Bool (and - X5 - (and - (= X4 4) - (and - (ite (not (= X7 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK! 0)) 0 1) - 0)) - true - false)))))) - (let - ((X9 Int (ite X8 (ite (= X4 4) 0 X4) X4))) - (let - ((X10 Int (ite (not (and (>= X9 1) (<= X9 3))) 1 X9))) - (let - ((X11 - Bool (and - (not (and (>= X9 1) (<= X9 3))) - (and (>= X10 1) (<= X10 3))))) - (let - ((X12 Int (ite (not top.usr.DOOR_CLOSED!) 0 1))) - (let - ((X13 - Bool (and - X11 - (and - (and (>= X10 1) (<= X10 3)) - (ite (not (= X12 0)) true false))))) - (let - ((X14 Int (ite X13 (ite (not (= X10 2)) 2 X10) X10))) - (let - ((X15 - Bool (and - X11 - (and (and (>= X14 1) (<= X14 3)) (not X13))))) - (let - ((X16 Int (ite X13 (ite (not (= X10 2)) 2 X3) X3))) - (let - ((X17 - Int (ite - X8 - (ite X15 (ite (not (= X14 3)) 3 X16) X16) - X3))) - (let - ((X18 Int (ite X15 (ite (not (= X14 3)) 3 X14) X14))) - (let - ((X19 Int (ite X8 X18 X9))) - (let - ((X20 Int (ite X5 top.impl.usr.STEPS_TO_COOK! X2))) - (let - ((X21 - Bool (and (and (= X19 2) (<= X20 0)) (= X19 2)))) - (let - ((X22 - Int (ite - X21 - (ite (and (>= X19 1) (<= X19 3)) 0 X19) - X19))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 4)) 4 X22) X22))) - (let - ((X24 - Bool (and - (= X23 3) - (and - (and - (ite (not (= X7 0)) true false) - (ite (not (= X12 0)) true false)) - (not X21))))) - (let - ((X25 Int (ite X24 (ite (= X23 3) 1 X23) X23))) - (let - ((X26 - Int (ite - X24 - (ite (not (= X25 2)) 2 X25) - X25))) - (let - ((X27 Bool (or X24 X21))) - (let - ((X28 - Bool (and - top.usr.KP_CLEAR! - (not top.usr.KP_CLEAR)))) - (let - ((X29 Int (ite (not X28) 0 1))) - (let - ((X30 - Bool (and - (and - (= X26 3) - (and - (ite (not (= X29 0)) true false) - (not X27))) - (and (= X26 3) (not X27))))) - (let - ((X31 - Int (ite - X30 - (ite - (and (>= X26 1) (<= X26 3)) - 0 - X26) - X26))) - (let - ((X32 - Int (ite - X30 - (ite (not (= X31 4)) 4 X31) - X31))) - (let - ((X33 Int (ite X30 0 X20))) - (let - ((X34 Bool (or X30 X27))) - (let - ((X35 - Bool (and - (= X32 2) - (and (> X33 0) (not X34))))) - (let - ((X36 - Int (ite - X35 - (ite (= X32 2) 1 X32) - X32))) - (let - ((X37 - Int (ite - X21 - (ite (not (= X22 4)) 1 X17) - X17))) - (let - ((X38 - Int (ite - X24 - (ite (not (= X25 2)) 2 X37) - X37))) - (let - ((X39 - Int (ite - X30 - (ite - (not (= X31 4)) - 1 - X38) - X38))) - (let - ((X40 - Int (ite - X35 - (ite - (not (= X36 2)) - 2 - X39) - X39))) - (let - ((X41 - Int (ite - X35 - (ite - (not (= X36 2)) - 2 - X36) - X36))) - (let - ((X42 - Bool (and - (= X41 2) - (and - (or - (ite - (not (= X29 0)) - true - false) - (not - (ite - (not (= X12 0)) - true - false))) - (not (or X35 X34)))))) - (let - ((X43 - Int (ite - X42 - (ite (= X41 2) 1 X41) - X41))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup___! - true) - (= - top.impl.usr.chart_microwave_mode_logic_mode! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - (ite (not (= X4 4)) 1 X3) - (ite - (and - (not X8) - (and - (>= X19 1) - (<= X19 3))) - (ite - X42 - (ite - (not (= X43 3)) - 3 - X40) - X40) - X17)) - X3)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode! - top.impl.usr.chart_microwave_mode_logic_mode!) - (let - ((X44 - Int (ite - (not (= X4 4)) - 4 - X4))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - X44 - (ite - (and - (not X8) - (and - (>= X19 1) - (<= X19 3))) - (ite - X42 - (ite - (not (= X43 3)) - 3 - X43) - X43) - X19)) - X4)) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - X2 - (ite - (and - (not X8) - (and - (>= X19 1) - (<= X19 3))) - (ite - X35 - (- X33 1) - X33) - X20)) - X2)) - (<= 0 X29 1) - (<= 0 X12 1) - (<= 0 X7 1) - (not top.res.init_flag!))))))))))))))))))))))))))))))))))))))))))))))))) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - ) Bool - - top.usr.OK -) +(define-fun __node_init_top_0 ((top.usr.KP_START_a_0 Bool) (top.usr.KP_CLEAR_a_0 Bool) (top.usr.KP_0_a_0 Bool) (top.usr.KP_1_a_0 Bool) (top.usr.KP_2_a_0 Bool) (top.usr.KP_3_a_0 Bool) (top.usr.KP_4_a_0 Bool) (top.usr.KP_5_a_0 Bool) (top.usr.KP_6_a_0 Bool) (top.usr.KP_7_a_0 Bool) (top.usr.KP_8_a_0 Bool) (top.usr.KP_9_a_0 Bool) (top.usr.DOOR_CLOSED_a_0 Bool) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.STEPS_TO_COOK_a_0 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) (top.impl.usr.KP_01_a_0 Bool) (top.impl.usr.KP_11_a_0 Bool) (top.impl.usr.KP_21_a_0 Bool) (top.impl.usr.KP_31_a_0 Bool) (top.impl.usr.KP_41_a_0 Bool) (top.impl.usr.KP_51_a_0 Bool) (top.impl.usr.KP_61_a_0 Bool) (top.impl.usr.KP_71_a_0 Bool) (top.impl.usr.KP_81_a_0 Bool) (top.impl.usr.KP_91_a_0 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int)) Bool + (and (= top.impl.usr.KP_91_a_0 top.usr.KP_9_a_0) (= top.impl.usr.KP_81_a_0 top.usr.KP_8_a_0) (= top.impl.usr.KP_71_a_0 top.usr.KP_7_a_0) (= top.impl.usr.KP_61_a_0 top.usr.KP_6_a_0) (= top.impl.usr.KP_51_a_0 top.usr.KP_5_a_0) (= top.impl.usr.KP_41_a_0 top.usr.KP_4_a_0) (= top.impl.usr.KP_31_a_0 top.usr.KP_3_a_0) (= top.impl.usr.KP_21_a_0 top.usr.KP_2_a_0) (= top.impl.usr.KP_11_a_0 top.usr.KP_1_a_0) (= top.impl.usr.KP_01_a_0 top.usr.KP_0_a_0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 (ite top.usr.KP_CLEAR_a_0 0 (ite (ite (<= (ite top.impl.usr.KP_01_a_0 0 (ite top.impl.usr.KP_11_a_0 1 (ite top.impl.usr.KP_21_a_0 2 (ite top.impl.usr.KP_31_a_0 3 (ite top.impl.usr.KP_41_a_0 4 (ite top.impl.usr.KP_51_a_0 5 (ite top.impl.usr.KP_61_a_0 6 (ite top.impl.usr.KP_71_a_0 7 (ite top.impl.usr.KP_81_a_0 8 (ite top.impl.usr.KP_91_a_0 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01_a_0 0 (ite top.impl.usr.KP_11_a_0 1 (ite top.impl.usr.KP_21_a_0 2 (ite top.impl.usr.KP_31_a_0 3 (ite top.impl.usr.KP_41_a_0 4 (ite top.impl.usr.KP_51_a_0 5 (ite top.impl.usr.KP_61_a_0 6 (ite top.impl.usr.KP_71_a_0 7 (ite top.impl.usr.KP_81_a_0 8 (ite top.impl.usr.KP_91_a_0 9 10)))))))))) 0))) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 0) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 true) (let ((X1 true)) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 X1) (= top.impl.usr.STEPS_TO_COOK_a_0 (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0)) 0 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 60)) 1))) (= top.usr.OK_a_0 (or (not (and X1 top.usr.KP_CLEAR_a_0)) (= top.impl.usr.STEPS_TO_COOK_a_0 0))) (let ((X2 0)) (let ((X3 0)) (let ((X4 0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 true) (let ((X5 (= X4 4))) (let ((X6 top.usr.KP_START_a_0)) (let ((X7 (ite (not X6) 0 1))) (let ((X8 (and X5 (and (= X4 4) (and (ite (not (= X7 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK_a_0 0)) 0 1) 0)) true false)))))) (let ((X9 (ite X8 (ite (= X4 4) 0 X4) X4))) (let ((X10 (ite (not (and (>= X9 1) (<= X9 3))) 1 X9))) (let ((X11 (and (not (and (>= X9 1) (<= X9 3))) (and (>= X10 1) (<= X10 3))))) (let ((X12 (ite (not top.usr.DOOR_CLOSED_a_0) 0 1))) (let ((X13 (and X11 (and (and (>= X10 1) (<= X10 3)) (ite (not (= X12 0)) true false))))) (let ((X14 (ite X13 (ite (not (= X10 2)) 2 X10) X10))) (let ((X15 (and X11 (and (and (>= X14 1) (<= X14 3)) (not X13))))) (let ((X16 (ite X13 (ite (not (= X10 2)) 2 X3) X3))) (let ((X17 (ite X8 (ite X15 (ite (not (= X14 3)) 3 X16) X16) X3))) (let ((X18 (ite X15 (ite (not (= X14 3)) 3 X14) X14))) (let ((X19 (ite X8 X18 X9))) (let ((X20 (ite X5 top.impl.usr.STEPS_TO_COOK_a_0 X2))) (let ((X21 (and (and (= X19 2) (<= X20 0)) (= X19 2)))) (let ((X22 (ite X21 (ite (and (>= X19 1) (<= X19 3)) 0 X19) X19))) (let ((X23 (ite X21 (ite (not (= X22 4)) 4 X22) X22))) (let ((X24 (and (= X23 3) (and (and (ite (not (= X7 0)) true false) (ite (not (= X12 0)) true false)) (not X21))))) (let ((X25 (ite X24 (ite (= X23 3) 1 X23) X23))) (let ((X26 (ite X24 (ite (not (= X25 2)) 2 X25) X25))) (let ((X27 (or X24 X21))) (let ((X28 top.usr.KP_CLEAR_a_0)) (let ((X29 (ite (not X28) 0 1))) (let ((X30 (and (and (= X26 3) (and (ite (not (= X29 0)) true false) (not X27))) (and (= X26 3) (not X27))))) (let ((X31 (ite X30 (ite (and (>= X26 1) (<= X26 3)) 0 X26) X26))) (let ((X32 (ite X30 (ite (not (= X31 4)) 4 X31) X31))) (let ((X33 (ite X30 0 X20))) (let ((X34 (or X30 X27))) (let ((X35 (and (= X32 2) (and (> X33 0) (not X34))))) (let ((X36 (ite X35 (ite (= X32 2) 1 X32) X32))) (let ((X37 (ite X21 (ite (not (= X22 4)) 1 X17) X17))) (let ((X38 (ite X24 (ite (not (= X25 2)) 2 X37) X37))) (let ((X39 (ite X30 (ite (not (= X31 4)) 1 X38) X38))) (let ((X40 (ite X35 (ite (not (= X36 2)) 2 X39) X39))) (let ((X41 (ite X35 (ite (not (= X36 2)) 2 X36) X36))) (let ((X42 (and (= X41 2) (and (or (ite (not (= X29 0)) true false) (not (ite (not (= X12 0)) true false))) (not (or X35 X34)))))) (let ((X43 (ite X42 (ite (= X41 2) 1 X41) X41))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 true) (= top.impl.usr.chart_microwave_mode_logic_mode_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 (ite (not (= X4 4)) 1 X3) (ite (and (not X8) (and (>= X19 1) (<= X19 3))) (ite X42 (ite (not (= X43 3)) 3 X40) X40) X17)) X3)) (= top.impl.usr.microwave_microwave_mode_logic_mode_a_0 top.impl.usr.chart_microwave_mode_logic_mode_a_0) (let ((X44 (ite (not (= X4 4)) 4 X4))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 X44 (ite (and (not X8) (and (>= X19 1) (<= X19 3))) (ite X42 (ite (not (= X43 3)) 3 X43) X43) X19)) X4)) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 X2 (ite (and (not X8) (and (>= X19 1) (<= X19 3))) (ite X35 (- X33 1) X33) X20)) X2)) (<= 0 X29 1) (<= 0 X12 1) (<= 0 X7 1) top.res.init_flag_a_0)))))))))))))))))))))))))))))))))))))))))))))))))) +(define-fun __node_trans_top_0 ((top.usr.KP_START_a_1 Bool) (top.usr.KP_CLEAR_a_1 Bool) (top.usr.KP_0_a_1 Bool) (top.usr.KP_1_a_1 Bool) (top.usr.KP_2_a_1 Bool) (top.usr.KP_3_a_1 Bool) (top.usr.KP_4_a_1 Bool) (top.usr.KP_5_a_1 Bool) (top.usr.KP_6_a_1 Bool) (top.usr.KP_7_a_1 Bool) (top.usr.KP_8_a_1 Bool) (top.usr.KP_9_a_1 Bool) (top.usr.DOOR_CLOSED_a_1 Bool) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.STEPS_TO_COOK_a_1 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 Bool) (top.impl.usr.KP_01_a_1 Bool) (top.impl.usr.KP_11_a_1 Bool) (top.impl.usr.KP_21_a_1 Bool) (top.impl.usr.KP_31_a_1 Bool) (top.impl.usr.KP_41_a_1 Bool) (top.impl.usr.KP_51_a_1 Bool) (top.impl.usr.KP_61_a_1 Bool) (top.impl.usr.KP_71_a_1 Bool) (top.impl.usr.KP_81_a_1 Bool) (top.impl.usr.KP_91_a_1 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_1 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_1 Int) (top.usr.KP_START_a_0 Bool) (top.usr.KP_CLEAR_a_0 Bool) (top.usr.KP_0_a_0 Bool) (top.usr.KP_1_a_0 Bool) (top.usr.KP_2_a_0 Bool) (top.usr.KP_3_a_0 Bool) (top.usr.KP_4_a_0 Bool) (top.usr.KP_5_a_0 Bool) (top.usr.KP_6_a_0 Bool) (top.usr.KP_7_a_0 Bool) (top.usr.KP_8_a_0 Bool) (top.usr.KP_9_a_0 Bool) (top.usr.DOOR_CLOSED_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.STEPS_TO_COOK_a_0 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) (top.impl.usr.KP_01_a_0 Bool) (top.impl.usr.KP_11_a_0 Bool) (top.impl.usr.KP_21_a_0 Bool) (top.impl.usr.KP_31_a_0 Bool) (top.impl.usr.KP_41_a_0 Bool) (top.impl.usr.KP_51_a_0 Bool) (top.impl.usr.KP_61_a_0 Bool) (top.impl.usr.KP_71_a_0 Bool) (top.impl.usr.KP_81_a_0 Bool) (top.impl.usr.KP_91_a_0 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int)) Bool + (let ((X1 (ite (= 1 top.impl.usr.microwave_microwave_mode_logic_mode_a_0) true false))) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 X1) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (ite (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1) true (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 false top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0))) (= top.impl.usr.KP_91_a_1 top.usr.KP_9_a_1) (= top.impl.usr.KP_81_a_1 top.usr.KP_8_a_1) (= top.impl.usr.KP_71_a_1 top.usr.KP_7_a_1) (= top.impl.usr.KP_61_a_1 top.usr.KP_6_a_1) (= top.impl.usr.KP_51_a_1 top.usr.KP_5_a_1) (= top.impl.usr.KP_41_a_1 top.usr.KP_4_a_1) (= top.impl.usr.KP_31_a_1 top.usr.KP_3_a_1) (= top.impl.usr.KP_21_a_1 top.usr.KP_2_a_1) (= top.impl.usr.KP_11_a_1 top.usr.KP_1_a_1) (= top.impl.usr.KP_01_a_1 top.usr.KP_0_a_1) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite top.impl.usr.KP_01_a_1 0 (ite top.impl.usr.KP_11_a_1 1 (ite top.impl.usr.KP_21_a_1 2 (ite top.impl.usr.KP_31_a_1 3 (ite top.impl.usr.KP_41_a_1 4 (ite top.impl.usr.KP_51_a_1 5 (ite top.impl.usr.KP_61_a_1 6 (ite top.impl.usr.KP_71_a_1 7 (ite top.impl.usr.KP_81_a_1 8 (ite top.impl.usr.KP_91_a_1 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01_a_1 0 (ite top.impl.usr.KP_11_a_1 1 (ite top.impl.usr.KP_21_a_1 2 (ite top.impl.usr.KP_31_a_1 3 (ite top.impl.usr.KP_41_a_1 4 (ite top.impl.usr.KP_51_a_1 5 (ite top.impl.usr.KP_61_a_1 6 (ite top.impl.usr.KP_71_a_1 7 (ite top.impl.usr.KP_81_a_1 8 (ite top.impl.usr.KP_91_a_1 9 10)))))))))) 0)) (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 0 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 0 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.STEPS_TO_COOK_a_1 (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1)) 0 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 60)) 1) top.impl.usr.STEPS_TO_COOK_a_0))) (= top.usr.OK_a_1 (or (not (and X1 top.usr.KP_CLEAR_a_1)) (= top.impl.usr.STEPS_TO_COOK_a_1 0))) (let ((X2 top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0)) (let ((X3 top.impl.usr.chart_microwave_mode_logic_mode_a_0)) (let ((X4 top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 false top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0)) (let ((X5 (= X4 4))) (let ((X6 (and top.usr.KP_START_a_1 (not top.usr.KP_START_a_0)))) (let ((X7 (ite (not X6) 0 1))) (let ((X8 (and X5 (and (= X4 4) (and (ite (not (= X7 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK_a_1 0)) 0 1) 0)) true false)))))) (let ((X9 (ite X8 (ite (= X4 4) 0 X4) X4))) (let ((X10 (ite (not (and (>= X9 1) (<= X9 3))) 1 X9))) (let ((X11 (and (not (and (>= X9 1) (<= X9 3))) (and (>= X10 1) (<= X10 3))))) (let ((X12 (ite (not top.usr.DOOR_CLOSED_a_1) 0 1))) (let ((X13 (and X11 (and (and (>= X10 1) (<= X10 3)) (ite (not (= X12 0)) true false))))) (let ((X14 (ite X13 (ite (not (= X10 2)) 2 X10) X10))) (let ((X15 (and X11 (and (and (>= X14 1) (<= X14 3)) (not X13))))) (let ((X16 (ite X13 (ite (not (= X10 2)) 2 X3) X3))) (let ((X17 (ite X8 (ite X15 (ite (not (= X14 3)) 3 X16) X16) X3))) (let ((X18 (ite X15 (ite (not (= X14 3)) 3 X14) X14))) (let ((X19 (ite X8 X18 X9))) (let ((X20 (ite X5 top.impl.usr.STEPS_TO_COOK_a_1 X2))) (let ((X21 (and (and (= X19 2) (<= X20 0)) (= X19 2)))) (let ((X22 (ite X21 (ite (and (>= X19 1) (<= X19 3)) 0 X19) X19))) (let ((X23 (ite X21 (ite (not (= X22 4)) 4 X22) X22))) (let ((X24 (and (= X23 3) (and (and (ite (not (= X7 0)) true false) (ite (not (= X12 0)) true false)) (not X21))))) (let ((X25 (ite X24 (ite (= X23 3) 1 X23) X23))) (let ((X26 (ite X24 (ite (not (= X25 2)) 2 X25) X25))) (let ((X27 (or X24 X21))) (let ((X28 (and top.usr.KP_CLEAR_a_1 (not top.usr.KP_CLEAR_a_0)))) (let ((X29 (ite (not X28) 0 1))) (let ((X30 (and (and (= X26 3) (and (ite (not (= X29 0)) true false) (not X27))) (and (= X26 3) (not X27))))) (let ((X31 (ite X30 (ite (and (>= X26 1) (<= X26 3)) 0 X26) X26))) (let ((X32 (ite X30 (ite (not (= X31 4)) 4 X31) X31))) (let ((X33 (ite X30 0 X20))) (let ((X34 (or X30 X27))) (let ((X35 (and (= X32 2) (and (> X33 0) (not X34))))) (let ((X36 (ite X35 (ite (= X32 2) 1 X32) X32))) (let ((X37 (ite X21 (ite (not (= X22 4)) 1 X17) X17))) (let ((X38 (ite X24 (ite (not (= X25 2)) 2 X37) X37))) (let ((X39 (ite X30 (ite (not (= X31 4)) 1 X38) X38))) (let ((X40 (ite X35 (ite (not (= X36 2)) 2 X39) X39))) (let ((X41 (ite X35 (ite (not (= X36 2)) 2 X36) X36))) (let ((X42 (and (= X41 2) (and (or (ite (not (= X29 0)) true false) (not (ite (not (= X12 0)) true false))) (not (or X35 X34)))))) (let ((X43 (ite X42 (ite (= X41 2) 1 X41) X41))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 true) (= top.impl.usr.chart_microwave_mode_logic_mode_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 (ite (not (= X4 4)) 1 X3) (ite (and (not X8) (and (>= X19 1) (<= X19 3))) (ite X42 (ite (not (= X43 3)) 3 X40) X40) X17)) X3)) (= top.impl.usr.microwave_microwave_mode_logic_mode_a_1 top.impl.usr.chart_microwave_mode_logic_mode_a_1) (let ((X44 (ite (not (= X4 4)) 4 X4))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 X44 (ite (and (not X8) (and (>= X19 1) (<= X19 3))) (ite X42 (ite (not (= X43 3)) 3 X43) X43) X19)) X4)) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 X2 (ite (and (not X8) (and (>= X19 1) (<= X19 3))) (ite X35 (- X33 1) X33) X20)) X2)) (<= 0 X29 1) (<= 0 X12 1) (<= 0 X7 1) (not top.res.init_flag_a_1)))))))))))))))))))))))))))))))))))))))))))))))))) +(synth-inv str_invariant ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int))) + +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int)) Bool + (and (= top.impl.usr.KP_91 top.usr.KP_9) (= top.impl.usr.KP_81 top.usr.KP_8) (= top.impl.usr.KP_71 top.usr.KP_7) (= top.impl.usr.KP_61 top.usr.KP_6) (= top.impl.usr.KP_51 top.usr.KP_5) (= top.impl.usr.KP_41 top.usr.KP_4) (= top.impl.usr.KP_31 top.usr.KP_3) (= top.impl.usr.KP_21 top.usr.KP_2) (= top.impl.usr.KP_11 top.usr.KP_1) (= top.impl.usr.KP_01 top.usr.KP_0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY (ite top.usr.KP_CLEAR 0 (ite (ite (<= (ite top.impl.usr.KP_01 0 (ite top.impl.usr.KP_11 1 (ite top.impl.usr.KP_21 2 (ite top.impl.usr.KP_31 3 (ite top.impl.usr.KP_41 4 (ite top.impl.usr.KP_51 5 (ite top.impl.usr.KP_61 6 (ite top.impl.usr.KP_71 7 (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01 0 (ite top.impl.usr.KP_11 1 (ite top.impl.usr.KP_21 2 (ite top.impl.usr.KP_31 3 (ite top.impl.usr.KP_41 4 (ite top.impl.usr.KP_51 5 (ite top.impl.usr.KP_61 6 (ite top.impl.usr.KP_71 7 (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) 0))) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY 0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY 0) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step true) (let ((X1 true)) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock X1) (= top.impl.usr.STEPS_TO_COOK (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock)) 0 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY 60)) 1))) (= top.usr.OK (or (not (and X1 top.usr.KP_CLEAR)) (= top.impl.usr.STEPS_TO_COOK 0))) (let ((X2 0)) (let ((X3 0)) (let ((X4 0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep true) (let ((X5 (= X4 4))) (let ((X6 top.usr.KP_START)) (let ((X7 (ite (not X6) 0 1))) (let ((X8 (and X5 (and (= X4 4) (and (ite (not (= X7 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK 0)) 0 1) 0)) true false)))))) (let ((X9 (ite X8 (ite (= X4 4) 0 X4) X4))) (let ((X10 (ite (not (and (>= X9 1) (<= X9 3))) 1 X9))) (let ((X11 (and (not (and (>= X9 1) (<= X9 3))) (and (>= X10 1) (<= X10 3))))) (let ((X12 (ite (not top.usr.DOOR_CLOSED) 0 1))) (let ((X13 (and X11 (and (and (>= X10 1) (<= X10 3)) (ite (not (= X12 0)) true false))))) (let ((X14 (ite X13 (ite (not (= X10 2)) 2 X10) X10))) (let ((X15 (and X11 (and (and (>= X14 1) (<= X14 3)) (not X13))))) (let ((X16 (ite X13 (ite (not (= X10 2)) 2 X3) X3))) (let ((X17 (ite X8 (ite X15 (ite (not (= X14 3)) 3 X16) X16) X3))) (let ((X18 (ite X15 (ite (not (= X14 3)) 3 X14) X14))) (let ((X19 (ite X8 X18 X9))) (let ((X20 (ite X5 top.impl.usr.STEPS_TO_COOK X2))) (let ((X21 (and (and (= X19 2) (<= X20 0)) (= X19 2)))) (let ((X22 (ite X21 (ite (and (>= X19 1) (<= X19 3)) 0 X19) X19))) (let ((X23 (ite X21 (ite (not (= X22 4)) 4 X22) X22))) (let ((X24 (and (= X23 3) (and (and (ite (not (= X7 0)) true false) (ite (not (= X12 0)) true false)) (not X21))))) (let ((X25 (ite X24 (ite (= X23 3) 1 X23) X23))) (let ((X26 (ite X24 (ite (not (= X25 2)) 2 X25) X25))) (let ((X27 (or X24 X21))) (let ((X28 top.usr.KP_CLEAR)) (let ((X29 (ite (not X28) 0 1))) (let ((X30 (and (and (= X26 3) (and (ite (not (= X29 0)) true false) (not X27))) (and (= X26 3) (not X27))))) (let ((X31 (ite X30 (ite (and (>= X26 1) (<= X26 3)) 0 X26) X26))) (let ((X32 (ite X30 (ite (not (= X31 4)) 4 X31) X31))) (let ((X33 (ite X30 0 X20))) (let ((X34 (or X30 X27))) (let ((X35 (and (= X32 2) (and (> X33 0) (not X34))))) (let ((X36 (ite X35 (ite (= X32 2) 1 X32) X32))) (let ((X37 (ite X21 (ite (not (= X22 4)) 1 X17) X17))) (let ((X38 (ite X24 (ite (not (= X25 2)) 2 X37) X37))) (let ((X39 (ite X30 (ite (not (= X31 4)) 1 X38) X38))) (let ((X40 (ite X35 (ite (not (= X36 2)) 2 X39) X39))) (let ((X41 (ite X35 (ite (not (= X36 2)) 2 X36) X36))) (let ((X42 (and (= X41 2) (and (or (ite (not (= X29 0)) true false) (not (ite (not (= X12 0)) true false))) (not (or X35 X34)))))) (let ((X43 (ite X42 (ite (= X41 2) 1 X41) X41))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup___ true) (= top.impl.usr.chart_microwave_mode_logic_mode (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep (ite (not (= X4 4)) 1 X3) (ite (and (not X8) (and (>= X19 1) (<= X19 3))) (ite X42 (ite (not (= X43 3)) 3 X40) X40) X17)) X3)) (= top.impl.usr.microwave_microwave_mode_logic_mode top.impl.usr.chart_microwave_mode_logic_mode) (let ((X44 (ite (not (= X4 4)) 4 X4))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep X44 (ite (and (not X8) (and (>= X19 1) (<= X19 3))) (ite X42 (ite (not (= X43 3)) 3 X43) X43) X19)) X4)) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep X2 (ite (and (not X8) (and (>= X19 1) (<= X19 3))) (ite X35 (- X33 1) X33) X20)) X2)) (<= 0 X29 1) (<= 0 X12 1) (<= 0 X7 1) top.res.init_flag)))))))))))))))))))))))))))))))))))))))))))))))))) +(define-fun trans ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int) (top.usr.KP_START! Bool) (top.usr.KP_CLEAR! Bool) (top.usr.KP_0! Bool) (top.usr.KP_1! Bool) (top.usr.KP_2! Bool) (top.usr.KP_3! Bool) (top.usr.KP_4! Bool) (top.usr.KP_5! Bool) (top.usr.KP_6! Bool) (top.usr.KP_7! Bool) (top.usr.KP_8! Bool) (top.usr.KP_9! Bool) (top.usr.DOOR_CLOSED! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.STEPS_TO_COOK! Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! Bool) (top.impl.usr.KP_01! Bool) (top.impl.usr.KP_11! Bool) (top.impl.usr.KP_21! Bool) (top.impl.usr.KP_31! Bool) (top.impl.usr.KP_41! Bool) (top.impl.usr.KP_51! Bool) (top.impl.usr.KP_61! Bool) (top.impl.usr.KP_71! Bool) (top.impl.usr.KP_81! Bool) (top.impl.usr.KP_91! Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___! Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root! Int) (top.impl.usr.chart_microwave_mode_logic_mode! Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining! Int) (top.impl.usr.microwave_microwave_mode_logic_mode! Int)) Bool + (and (let ((X1 (ite (= 1 top.impl.usr.microwave_microwave_mode_logic_mode) true false))) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! X1) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (ite (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!) true (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock false top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step))) (= top.impl.usr.KP_91! top.usr.KP_9!) (= top.impl.usr.KP_81! top.usr.KP_8!) (= top.impl.usr.KP_71! top.usr.KP_7!) (= top.impl.usr.KP_61! top.usr.KP_6!) (= top.impl.usr.KP_51! top.usr.KP_5!) (= top.impl.usr.KP_41! top.usr.KP_4!) (= top.impl.usr.KP_31! top.usr.KP_3!) (= top.impl.usr.KP_21! top.usr.KP_2!) (= top.impl.usr.KP_11! top.usr.KP_1!) (= top.impl.usr.KP_01! top.usr.KP_0!) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite top.impl.usr.KP_01! 0 (ite top.impl.usr.KP_11! 1 (ite top.impl.usr.KP_21! 2 (ite top.impl.usr.KP_31! 3 (ite top.impl.usr.KP_41! 4 (ite top.impl.usr.KP_51! 5 (ite top.impl.usr.KP_61! 6 (ite top.impl.usr.KP_71! 7 (ite top.impl.usr.KP_81! 8 (ite top.impl.usr.KP_91! 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01! 0 (ite top.impl.usr.KP_11! 1 (ite top.impl.usr.KP_21! 2 (ite top.impl.usr.KP_31! 3 (ite top.impl.usr.KP_41! 4 (ite top.impl.usr.KP_51! 5 (ite top.impl.usr.KP_61! 6 (ite top.impl.usr.KP_71! 7 (ite top.impl.usr.KP_81! 8 (ite top.impl.usr.KP_91! 9 10)))))))))) 0)) (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! 0 (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! 0 (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.STEPS_TO_COOK! (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!)) 0 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! 60)) 1) top.impl.usr.STEPS_TO_COOK))) (= top.usr.OK! (or (not (and X1 top.usr.KP_CLEAR!)) (= top.impl.usr.STEPS_TO_COOK! 0))) (let ((X2 top.impl.usr.chart_microwave_mode_logic_steps_remaining)) (let ((X3 top.impl.usr.chart_microwave_mode_logic_mode)) (let ((X4 top.impl.usr.chart_microwave_mode_logic_final_state_states___root)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ false top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep)) (let ((X5 (= X4 4))) (let ((X6 (and top.usr.KP_START! (not top.usr.KP_START)))) (let ((X7 (ite (not X6) 0 1))) (let ((X8 (and X5 (and (= X4 4) (and (ite (not (= X7 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK! 0)) 0 1) 0)) true false)))))) (let ((X9 (ite X8 (ite (= X4 4) 0 X4) X4))) (let ((X10 (ite (not (and (>= X9 1) (<= X9 3))) 1 X9))) (let ((X11 (and (not (and (>= X9 1) (<= X9 3))) (and (>= X10 1) (<= X10 3))))) (let ((X12 (ite (not top.usr.DOOR_CLOSED!) 0 1))) (let ((X13 (and X11 (and (and (>= X10 1) (<= X10 3)) (ite (not (= X12 0)) true false))))) (let ((X14 (ite X13 (ite (not (= X10 2)) 2 X10) X10))) (let ((X15 (and X11 (and (and (>= X14 1) (<= X14 3)) (not X13))))) (let ((X16 (ite X13 (ite (not (= X10 2)) 2 X3) X3))) (let ((X17 (ite X8 (ite X15 (ite (not (= X14 3)) 3 X16) X16) X3))) (let ((X18 (ite X15 (ite (not (= X14 3)) 3 X14) X14))) (let ((X19 (ite X8 X18 X9))) (let ((X20 (ite X5 top.impl.usr.STEPS_TO_COOK! X2))) (let ((X21 (and (and (= X19 2) (<= X20 0)) (= X19 2)))) (let ((X22 (ite X21 (ite (and (>= X19 1) (<= X19 3)) 0 X19) X19))) (let ((X23 (ite X21 (ite (not (= X22 4)) 4 X22) X22))) (let ((X24 (and (= X23 3) (and (and (ite (not (= X7 0)) true false) (ite (not (= X12 0)) true false)) (not X21))))) (let ((X25 (ite X24 (ite (= X23 3) 1 X23) X23))) (let ((X26 (ite X24 (ite (not (= X25 2)) 2 X25) X25))) (let ((X27 (or X24 X21))) (let ((X28 (and top.usr.KP_CLEAR! (not top.usr.KP_CLEAR)))) (let ((X29 (ite (not X28) 0 1))) (let ((X30 (and (and (= X26 3) (and (ite (not (= X29 0)) true false) (not X27))) (and (= X26 3) (not X27))))) (let ((X31 (ite X30 (ite (and (>= X26 1) (<= X26 3)) 0 X26) X26))) (let ((X32 (ite X30 (ite (not (= X31 4)) 4 X31) X31))) (let ((X33 (ite X30 0 X20))) (let ((X34 (or X30 X27))) (let ((X35 (and (= X32 2) (and (> X33 0) (not X34))))) (let ((X36 (ite X35 (ite (= X32 2) 1 X32) X32))) (let ((X37 (ite X21 (ite (not (= X22 4)) 1 X17) X17))) (let ((X38 (ite X24 (ite (not (= X25 2)) 2 X37) X37))) (let ((X39 (ite X30 (ite (not (= X31 4)) 1 X38) X38))) (let ((X40 (ite X35 (ite (not (= X36 2)) 2 X39) X39))) (let ((X41 (ite X35 (ite (not (= X36 2)) 2 X36) X36))) (let ((X42 (and (= X41 2) (and (or (ite (not (= X29 0)) true false) (not (ite (not (= X12 0)) true false))) (not (or X35 X34)))))) (let ((X43 (ite X42 (ite (= X41 2) 1 X41) X41))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup___! true) (= top.impl.usr.chart_microwave_mode_logic_mode! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! (ite (not (= X4 4)) 1 X3) (ite (and (not X8) (and (>= X19 1) (<= X19 3))) (ite X42 (ite (not (= X43 3)) 3 X40) X40) X17)) X3)) (= top.impl.usr.microwave_microwave_mode_logic_mode! top.impl.usr.chart_microwave_mode_logic_mode!) (let ((X44 (ite (not (= X4 4)) 4 X4))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! X44 (ite (and (not X8) (and (>= X19 1) (<= X19 3))) (ite X42 (ite (not (= X43 3)) 3 X43) X43) X19)) X4)) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! X2 (ite (and (not X8) (and (>= X19 1) (<= X19 3))) (ite X35 (- X33 1) X33) X20)) X2)) (<= 0 X29 1) (<= 0 X12 1) (<= 0 X7 1) (not top.res.init_flag!))))))))))))))))))))))))))))))))))))))))))))))))) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/microwave17.sl b/benchmarks/LIA/Lustre/microwave17.sl index 2040801..52a1da5 100644 --- a/benchmarks/LIA/Lustre/microwave17.sl +++ b/benchmarks/LIA/Lustre/microwave17.sl @@ -1,2756 +1,25 @@ (set-logic LIA) -(define-fun - __node_init_top_0 ( - (top.usr.KP_START_a_0 Bool) - (top.usr.KP_CLEAR_a_0 Bool) - (top.usr.KP_0_a_0 Bool) - (top.usr.KP_1_a_0 Bool) - (top.usr.KP_2_a_0 Bool) - (top.usr.KP_3_a_0 Bool) - (top.usr.KP_4_a_0 Bool) - (top.usr.KP_5_a_0 Bool) - (top.usr.KP_6_a_0 Bool) - (top.usr.KP_7_a_0 Bool) - (top.usr.KP_8_a_0 Bool) - (top.usr.KP_9_a_0 Bool) - (top.usr.DOOR_CLOSED_a_0 Bool) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.STEPS_TO_COOK_a_0 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) - (top.impl.usr.KP_01_a_0 Bool) - (top.impl.usr.KP_11_a_0 Bool) - (top.impl.usr.KP_21_a_0 Bool) - (top.impl.usr.KP_31_a_0 Bool) - (top.impl.usr.KP_41_a_0 Bool) - (top.impl.usr.KP_51_a_0 Bool) - (top.impl.usr.KP_61_a_0 Bool) - (top.impl.usr.KP_71_a_0 Bool) - (top.impl.usr.KP_81_a_0 Bool) - (top.impl.usr.KP_91_a_0 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int 0)) - (let - ((X2 Int 0)) - (and - (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 true) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool top.usr.KP_START_a_0)) - (let - ((X5 Int (ite (not X4) 0 1))) - (and - (= top.impl.usr.KP_91_a_0 top.usr.KP_9_a_0) - (= top.impl.usr.KP_81_a_0 top.usr.KP_8_a_0) - (= top.impl.usr.KP_71_a_0 top.usr.KP_7_a_0) - (= top.impl.usr.KP_61_a_0 top.usr.KP_6_a_0) - (= top.impl.usr.KP_51_a_0 top.usr.KP_5_a_0) - (= top.impl.usr.KP_41_a_0 top.usr.KP_4_a_0) - (= top.impl.usr.KP_31_a_0 top.usr.KP_3_a_0) - (= top.impl.usr.KP_21_a_0 top.usr.KP_2_a_0) - (= top.impl.usr.KP_11_a_0 top.usr.KP_1_a_0) - (= top.impl.usr.KP_01_a_0 top.usr.KP_0_a_0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - (ite - top.usr.KP_CLEAR_a_0 - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01_a_0 - 0 - (ite - top.impl.usr.KP_11_a_0 - 1 - (ite - top.impl.usr.KP_21_a_0 - 2 - (ite - top.impl.usr.KP_31_a_0 - 3 - (ite - top.impl.usr.KP_41_a_0 - 4 - (ite - top.impl.usr.KP_51_a_0 - 5 - (ite - top.impl.usr.KP_61_a_0 - 6 - (ite - top.impl.usr.KP_71_a_0 - 7 - (ite - top.impl.usr.KP_81_a_0 - 8 - (ite top.impl.usr.KP_91_a_0 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01_a_0 - 0 - (ite - top.impl.usr.KP_11_a_0 - 1 - (ite - top.impl.usr.KP_21_a_0 - 2 - (ite - top.impl.usr.KP_31_a_0 - 3 - (ite - top.impl.usr.KP_41_a_0 - 4 - (ite - top.impl.usr.KP_51_a_0 - 5 - (ite - top.impl.usr.KP_61_a_0 - 6 - (ite - top.impl.usr.KP_71_a_0 - 7 - (ite - top.impl.usr.KP_81_a_0 - 8 - (ite top.impl.usr.KP_91_a_0 9 10)))))))))) - 0))) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - 0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 0) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 - true) - (let - ((X6 Bool true)) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 - X6) - (= - top.impl.usr.STEPS_TO_COOK_a_0 - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0)) - 0 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 60)) - 1))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK_a_0 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED_a_0) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK_a_0 X1))) - (let - ((X18 - Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 - Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 Bool top.usr.KP_CLEAR_a_0)) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - 1) - 60))) - (let - ((X34 Int X33)) - (let - ((X35 Int 0)) - (let - ((X36 - Int (ite - X12 - (ite (not (= X9 2)) 2 X35) - X35))) - (let - ((X37 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X36) - X36) - X35))) - (let - ((X38 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X39 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X37) - X37))) - (let - ((X40 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X39) - X39))) - (let - ((X41 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X41) - X41))) - (let - ((X43 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X38) - X38))) - (let - ((X44 - Bool (and - (= X43 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not - (= X11 0)) - true - false))) - (not - (or X32 X31)))))) - (let - ((X45 - Int (ite - X44 - (ite - (= X43 2) - 1 - X43) - X43))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - (ite - (not (= X2 4)) - 1 - X35) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X42) - X42) - X37)) - X35)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode_a_0 - top.impl.usr.chart_microwave_mode_logic_mode_a_0) - (let - ((X46 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - X46 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X45) - X45) - X16)) - X2)) - (let - ((X47 - Int (div - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - 1) - 60) - 60)) - 10))) - (let - ((X48 Int X47)) - (let - ((X49 - Int (- - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - 1) - 60) - 60)) - (* - (div - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - 1) - 60) - 60)) - 10) - 10)))) - (let - ((X50 Int X49)) - (and - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - top.res.init_flag_a_0)))))))))))))))))))))))))))))))))))))))))))))))))))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.KP_START_a_1 Bool) - (top.usr.KP_CLEAR_a_1 Bool) - (top.usr.KP_0_a_1 Bool) - (top.usr.KP_1_a_1 Bool) - (top.usr.KP_2_a_1 Bool) - (top.usr.KP_3_a_1 Bool) - (top.usr.KP_4_a_1 Bool) - (top.usr.KP_5_a_1 Bool) - (top.usr.KP_6_a_1 Bool) - (top.usr.KP_7_a_1 Bool) - (top.usr.KP_8_a_1 Bool) - (top.usr.KP_9_a_1 Bool) - (top.usr.DOOR_CLOSED_a_1 Bool) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.STEPS_TO_COOK_a_1 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 Bool) - (top.impl.usr.KP_01_a_1 Bool) - (top.impl.usr.KP_11_a_1 Bool) - (top.impl.usr.KP_21_a_1 Bool) - (top.impl.usr.KP_31_a_1 Bool) - (top.impl.usr.KP_41_a_1 Bool) - (top.impl.usr.KP_51_a_1 Bool) - (top.impl.usr.KP_61_a_1 Bool) - (top.impl.usr.KP_71_a_1 Bool) - (top.impl.usr.KP_81_a_1 Bool) - (top.impl.usr.KP_91_a_1 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_1 Int) - (top.usr.KP_START_a_0 Bool) - (top.usr.KP_CLEAR_a_0 Bool) - (top.usr.KP_0_a_0 Bool) - (top.usr.KP_1_a_0 Bool) - (top.usr.KP_2_a_0 Bool) - (top.usr.KP_3_a_0 Bool) - (top.usr.KP_4_a_0 Bool) - (top.usr.KP_5_a_0 Bool) - (top.usr.KP_6_a_0 Bool) - (top.usr.KP_7_a_0 Bool) - (top.usr.KP_8_a_0 Bool) - (top.usr.KP_9_a_0 Bool) - (top.usr.DOOR_CLOSED_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.STEPS_TO_COOK_a_0 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) - (top.impl.usr.KP_01_a_0 Bool) - (top.impl.usr.KP_11_a_0 Bool) - (top.impl.usr.KP_21_a_0 Bool) - (top.impl.usr.KP_31_a_0 Bool) - (top.impl.usr.KP_41_a_0 Bool) - (top.impl.usr.KP_51_a_0 Bool) - (top.impl.usr.KP_61_a_0 Bool) - (top.impl.usr.KP_71_a_0 Bool) - (top.impl.usr.KP_81_a_0 Bool) - (top.impl.usr.KP_91_a_0 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int) - ) Bool - - (let - ((X1 Int top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0)) - (let - ((X2 - Int top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0)) - (and - (= - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - false - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0)) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool (and top.usr.KP_START_a_1 (not top.usr.KP_START_a_0)))) - (let - ((X5 Int (ite (not X4) 0 1))) - (let - ((X6 - Bool (ite - (= 1 top.impl.usr.microwave_microwave_mode_logic_mode_a_0) - true - false))) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - X6) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (ite - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1) - true - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 - false - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0))) - (= top.impl.usr.KP_91_a_1 top.usr.KP_9_a_1) - (= top.impl.usr.KP_81_a_1 top.usr.KP_8_a_1) - (= top.impl.usr.KP_71_a_1 top.usr.KP_7_a_1) - (= top.impl.usr.KP_61_a_1 top.usr.KP_6_a_1) - (= top.impl.usr.KP_51_a_1 top.usr.KP_5_a_1) - (= top.impl.usr.KP_41_a_1 top.usr.KP_4_a_1) - (= top.impl.usr.KP_31_a_1 top.usr.KP_3_a_1) - (= top.impl.usr.KP_21_a_1 top.usr.KP_2_a_1) - (= top.impl.usr.KP_11_a_1 top.usr.KP_1_a_1) - (= top.impl.usr.KP_01_a_1 top.usr.KP_0_a_1) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01_a_1 - 0 - (ite - top.impl.usr.KP_11_a_1 - 1 - (ite - top.impl.usr.KP_21_a_1 - 2 - (ite - top.impl.usr.KP_31_a_1 - 3 - (ite - top.impl.usr.KP_41_a_1 - 4 - (ite - top.impl.usr.KP_51_a_1 - 5 - (ite - top.impl.usr.KP_61_a_1 - 6 - (ite - top.impl.usr.KP_71_a_1 - 7 - (ite - top.impl.usr.KP_81_a_1 - 8 - (ite top.impl.usr.KP_91_a_1 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01_a_1 - 0 - (ite - top.impl.usr.KP_11_a_1 - 1 - (ite - top.impl.usr.KP_21_a_1 - 2 - (ite - top.impl.usr.KP_31_a_1 - 3 - (ite - top.impl.usr.KP_41_a_1 - 4 - (ite - top.impl.usr.KP_51_a_1 - 5 - (ite - top.impl.usr.KP_61_a_1 - 6 - (ite - top.impl.usr.KP_71_a_1 - 7 - (ite - top.impl.usr.KP_81_a_1 - 8 - (ite top.impl.usr.KP_91_a_1 9 10)))))))))) - 0)) - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and - top.impl.usr.KP_71_a_1 - (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and - top.impl.usr.KP_81_a_1 - (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - 0 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and - top.impl.usr.KP_71_a_1 - (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and - top.impl.usr.KP_81_a_1 - (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - 0 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and - top.impl.usr.KP_71_a_1 - (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and - top.impl.usr.KP_81_a_1 - (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.STEPS_TO_COOK_a_1 - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1)) - 0 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 - 60)) - 1) - top.impl.usr.STEPS_TO_COOK_a_0))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK_a_1 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED_a_1) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK_a_1 X1))) - (let - ((X18 Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 - Bool (and - top.usr.KP_CLEAR_a_1 - (not top.usr.KP_CLEAR_a_0)))) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (- - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - 1) - 60) - 60)) - (* - (div - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - 1) - 60) - 60)) - 10) - 10)))) - (let - ((X34 - Int (div - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - 1) - 60) - 60)) - 10))) - (let - ((X35 - Int (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - 1) - 60))) - (let - ((X36 Int X33)) - (let - ((X37 Int X34)) - (let - ((X38 Int X35)) - (and - (= - top.usr.OK_a_1 - (or - (not - (and - X6 - (not top.usr.KP_CLEAR_a_1))) - (= - top.impl.usr.STEPS_TO_COOK_a_1 - (* - (+ - (+ X36 (* X37 10)) - (* X38 60)) - 1)))) - (let - ((X39 - Int top.impl.usr.chart_microwave_mode_logic_mode_a_0)) - (let - ((X40 - Int (ite - X12 - (ite - (not (= X9 2)) - 2 - X39) - X39))) - (let - ((X41 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X40) - X40) - X39))) - (let - ((X42 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X43 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X41) - X41))) - (let - ((X44 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X43) - X43))) - (let - ((X45 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X44) - X44))) - (let - ((X46 - Int (ite - X32 - (ite - (not (= X42 2)) - 2 - X45) - X45))) - (let - ((X47 - Int (ite - X32 - (ite - (not (= X42 2)) - 2 - X42) - X42))) - (let - ((X48 - Bool (and - (= X47 2) - (and - (or - (ite - (not - (= X26 0)) - true - false) - (not - (ite - (not - (= X11 0)) - true - false))) - (not - (or X32 X31)))))) - (let - ((X49 - Int (ite - X48 - (ite - (= X47 2) - 1 - X47) - X47))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - (ite - (not (= X2 4)) - 1 - X39) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X48 - (ite - (not (= X49 3)) - 3 - X46) - X46) - X41)) - X39)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode_a_1 - top.impl.usr.chart_microwave_mode_logic_mode_a_1) - (let - ((X50 - Int (ite - (not - (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - X50 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X48 - (ite - (not - (= X49 3)) - 3 - X49) - X49) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - (not - top.res.init_flag_a_1))))))))))))))))))))))))))))))))))))))))))))))))))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) -)) - -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.KP_START Bool) -(declare-primed-var top.usr.KP_CLEAR Bool) -(declare-primed-var top.usr.KP_0 Bool) -(declare-primed-var top.usr.KP_1 Bool) -(declare-primed-var top.usr.KP_2 Bool) -(declare-primed-var top.usr.KP_3 Bool) -(declare-primed-var top.usr.KP_4 Bool) -(declare-primed-var top.usr.KP_5 Bool) -(declare-primed-var top.usr.KP_6 Bool) -(declare-primed-var top.usr.KP_7 Bool) -(declare-primed-var top.usr.KP_8 Bool) -(declare-primed-var top.usr.KP_9 Bool) -(declare-primed-var top.usr.DOOR_CLOSED Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.STEPS_TO_COOK Int) -(declare-primed-var top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) -(declare-primed-var top.impl.usr.KP_01 Bool) -(declare-primed-var top.impl.usr.KP_11 Bool) -(declare-primed-var top.impl.usr.KP_21 Bool) -(declare-primed-var top.impl.usr.KP_31 Bool) -(declare-primed-var top.impl.usr.KP_41 Bool) -(declare-primed-var top.impl.usr.KP_51 Bool) -(declare-primed-var top.impl.usr.KP_61 Bool) -(declare-primed-var top.impl.usr.KP_71 Bool) -(declare-primed-var top.impl.usr.KP_81 Bool) -(declare-primed-var top.impl.usr.KP_91 Bool) -(declare-primed-var top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_mode Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) -(declare-primed-var top.impl.usr.microwave_microwave_mode_logic_mode Int) - -(define-fun - init ( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int 0)) - (let - ((X2 Int 0)) - (and - (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep true) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool top.usr.KP_START)) - (let - ((X5 Int (ite (not X4) 0 1))) - (and - (= top.impl.usr.KP_91 top.usr.KP_9) - (= top.impl.usr.KP_81 top.usr.KP_8) - (= top.impl.usr.KP_71 top.usr.KP_7) - (= top.impl.usr.KP_61 top.usr.KP_6) - (= top.impl.usr.KP_51 top.usr.KP_5) - (= top.impl.usr.KP_41 top.usr.KP_4) - (= top.impl.usr.KP_31 top.usr.KP_3) - (= top.impl.usr.KP_21 top.usr.KP_2) - (= top.impl.usr.KP_11 top.usr.KP_1) - (= top.impl.usr.KP_01 top.usr.KP_0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - (ite - top.usr.KP_CLEAR - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01 - 0 - (ite - top.impl.usr.KP_11 - 1 - (ite - top.impl.usr.KP_21 - 2 - (ite - top.impl.usr.KP_31 - 3 - (ite - top.impl.usr.KP_41 - 4 - (ite - top.impl.usr.KP_51 - 5 - (ite - top.impl.usr.KP_61 - 6 - (ite - top.impl.usr.KP_71 - 7 - (ite - top.impl.usr.KP_81 - 8 - (ite top.impl.usr.KP_91 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01 - 0 - (ite - top.impl.usr.KP_11 - 1 - (ite - top.impl.usr.KP_21 - 2 - (ite - top.impl.usr.KP_31 - 3 - (ite - top.impl.usr.KP_41 - 4 - (ite - top.impl.usr.KP_51 - 5 - (ite - top.impl.usr.KP_61 - 6 - (ite - top.impl.usr.KP_71 - 7 - (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) - 0))) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - 0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY - 0) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step - true) - (let - ((X6 Bool true)) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock - X6) - (= - top.impl.usr.STEPS_TO_COOK - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock)) - 0 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY - 60)) - 1))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK X1))) - (let - ((X18 - Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 - Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 Bool top.usr.KP_CLEAR)) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup___ - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining - 1) - 60))) - (let - ((X34 Int X33)) - (let - ((X35 Int 0)) - (let - ((X36 - Int (ite - X12 - (ite (not (= X9 2)) 2 X35) - X35))) - (let - ((X37 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X36) - X36) - X35))) - (let - ((X38 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X39 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X37) - X37))) - (let - ((X40 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X39) - X39))) - (let - ((X41 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X41) - X41))) - (let - ((X43 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X38) - X38))) - (let - ((X44 - Bool (and - (= X43 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not - (= X11 0)) - true - false))) - (not - (or X32 X31)))))) - (let - ((X45 - Int (ite - X44 - (ite - (= X43 2) - 1 - X43) - X43))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - (ite - (not (= X2 4)) - 1 - X35) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X42) - X42) - X37)) - X35)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode - top.impl.usr.chart_microwave_mode_logic_mode) - (let - ((X46 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - X46 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X45) - X45) - X16)) - X2)) - (let - ((X47 - Int (div - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining - 1) - 60) - 60)) - 10))) - (let - ((X48 Int X47)) - (let - ((X49 - Int (- - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining - 1) - 60) - 60)) - (* - (div - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining - 1) - 60) - 60)) - 10) - 10)))) - (let - ((X50 Int X49)) - (and - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - top.res.init_flag)))))))))))))))))))))))))))))))))))))))))))))))))))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - - ;; Next state. - (top.usr.KP_START! Bool) - (top.usr.KP_CLEAR! Bool) - (top.usr.KP_0! Bool) - (top.usr.KP_1! Bool) - (top.usr.KP_2! Bool) - (top.usr.KP_3! Bool) - (top.usr.KP_4! Bool) - (top.usr.KP_5! Bool) - (top.usr.KP_6! Bool) - (top.usr.KP_7! Bool) - (top.usr.KP_8! Bool) - (top.usr.KP_9! Bool) - (top.usr.DOOR_CLOSED! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.STEPS_TO_COOK! Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! Bool) - (top.impl.usr.KP_01! Bool) - (top.impl.usr.KP_11! Bool) - (top.impl.usr.KP_21! Bool) - (top.impl.usr.KP_31! Bool) - (top.impl.usr.KP_41! Bool) - (top.impl.usr.KP_51! Bool) - (top.impl.usr.KP_61! Bool) - (top.impl.usr.KP_71! Bool) - (top.impl.usr.KP_81! Bool) - (top.impl.usr.KP_91! Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___! Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root! Int) - (top.impl.usr.chart_microwave_mode_logic_mode! Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining! Int) - (top.impl.usr.microwave_microwave_mode_logic_mode! Int) - - ) Bool - - (and - (let - ((X1 Int top.impl.usr.chart_microwave_mode_logic_steps_remaining)) - (let - ((X2 - Int top.impl.usr.chart_microwave_mode_logic_final_state_states___root)) - (and - (= - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - false - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep)) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool (and top.usr.KP_START! (not top.usr.KP_START)))) - (let - ((X5 Int (ite (not X4) 0 1))) - (let - ((X6 - Bool (ite - (= 1 top.impl.usr.microwave_microwave_mode_logic_mode) - true - false))) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - X6) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (ite - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!) - true - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock - false - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step))) - (= top.impl.usr.KP_91! top.usr.KP_9!) - (= top.impl.usr.KP_81! top.usr.KP_8!) - (= top.impl.usr.KP_71! top.usr.KP_7!) - (= top.impl.usr.KP_61! top.usr.KP_6!) - (= top.impl.usr.KP_51! top.usr.KP_5!) - (= top.impl.usr.KP_41! top.usr.KP_4!) - (= top.impl.usr.KP_31! top.usr.KP_3!) - (= top.impl.usr.KP_21! top.usr.KP_2!) - (= top.impl.usr.KP_11! top.usr.KP_1!) - (= top.impl.usr.KP_01! top.usr.KP_0!) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01! - 0 - (ite - top.impl.usr.KP_11! - 1 - (ite - top.impl.usr.KP_21! - 2 - (ite - top.impl.usr.KP_31! - 3 - (ite - top.impl.usr.KP_41! - 4 - (ite - top.impl.usr.KP_51! - 5 - (ite - top.impl.usr.KP_61! - 6 - (ite - top.impl.usr.KP_71! - 7 - (ite - top.impl.usr.KP_81! - 8 - (ite top.impl.usr.KP_91! 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01! - 0 - (ite - top.impl.usr.KP_11! - 1 - (ite - top.impl.usr.KP_21! - 2 - (ite - top.impl.usr.KP_31! - 3 - (ite - top.impl.usr.KP_41! - 4 - (ite - top.impl.usr.KP_51! - 5 - (ite - top.impl.usr.KP_61! - 6 - (ite - top.impl.usr.KP_71! - 7 - (ite - top.impl.usr.KP_81! - 8 - (ite top.impl.usr.KP_91! 9 10)))))))))) - 0)) - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and - top.impl.usr.KP_91! - (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - 0 - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and - top.impl.usr.KP_91! - (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - 0 - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and - top.impl.usr.KP_91! - (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.STEPS_TO_COOK! - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!)) - 0 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! - 60)) - 1) - top.impl.usr.STEPS_TO_COOK))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK! 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED!) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK! X1))) - (let - ((X18 Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 - Bool (and - top.usr.KP_CLEAR! - (not top.usr.KP_CLEAR)))) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup___! - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (- - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - 1) - 60) - 60)) - (* - (div - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - 1) - 60) - 60)) - 10) - 10)))) - (let - ((X34 - Int (div - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - 1) - 60) - 60)) - 10))) - (let - ((X35 - Int (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - 1) - 60))) - (let - ((X36 Int X33)) - (let - ((X37 Int X34)) - (let - ((X38 Int X35)) - (and - (= - top.usr.OK! - (or - (not - (and - X6 - (not top.usr.KP_CLEAR!))) - (= - top.impl.usr.STEPS_TO_COOK! - (* - (+ - (+ X36 (* X37 10)) - (* X38 60)) - 1)))) - (let - ((X39 - Int top.impl.usr.chart_microwave_mode_logic_mode)) - (let - ((X40 - Int (ite - X12 - (ite - (not (= X9 2)) - 2 - X39) - X39))) - (let - ((X41 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X40) - X40) - X39))) - (let - ((X42 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X43 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X41) - X41))) - (let - ((X44 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X43) - X43))) - (let - ((X45 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X44) - X44))) - (let - ((X46 - Int (ite - X32 - (ite - (not (= X42 2)) - 2 - X45) - X45))) - (let - ((X47 - Int (ite - X32 - (ite - (not (= X42 2)) - 2 - X42) - X42))) - (let - ((X48 - Bool (and - (= X47 2) - (and - (or - (ite - (not - (= X26 0)) - true - false) - (not - (ite - (not - (= X11 0)) - true - false))) - (not - (or X32 X31)))))) - (let - ((X49 - Int (ite - X48 - (ite - (= X47 2) - 1 - X47) - X47))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - (ite - (not (= X2 4)) - 1 - X39) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X48 - (ite - (not - (= X49 3)) - 3 - X46) - X46) - X41)) - X39)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode! - top.impl.usr.chart_microwave_mode_logic_mode!) - (let - ((X50 - Int (ite - (not - (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - X50 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X48 - (ite - (not - (= X49 3)) - 3 - X49) - X49) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - (not - top.res.init_flag!))))))))))))))))))))))))))))))))))))))))))))))))))))))))) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - ) Bool - - top.usr.OK -) +(define-fun __node_init_top_0 ((top.usr.KP_START_a_0 Bool) (top.usr.KP_CLEAR_a_0 Bool) (top.usr.KP_0_a_0 Bool) (top.usr.KP_1_a_0 Bool) (top.usr.KP_2_a_0 Bool) (top.usr.KP_3_a_0 Bool) (top.usr.KP_4_a_0 Bool) (top.usr.KP_5_a_0 Bool) (top.usr.KP_6_a_0 Bool) (top.usr.KP_7_a_0 Bool) (top.usr.KP_8_a_0 Bool) (top.usr.KP_9_a_0 Bool) (top.usr.DOOR_CLOSED_a_0 Bool) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.STEPS_TO_COOK_a_0 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) (top.impl.usr.KP_01_a_0 Bool) (top.impl.usr.KP_11_a_0 Bool) (top.impl.usr.KP_21_a_0 Bool) (top.impl.usr.KP_31_a_0 Bool) (top.impl.usr.KP_41_a_0 Bool) (top.impl.usr.KP_51_a_0 Bool) (top.impl.usr.KP_61_a_0 Bool) (top.impl.usr.KP_71_a_0 Bool) (top.impl.usr.KP_81_a_0 Bool) (top.impl.usr.KP_91_a_0 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 0)) (let ((X2 0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 true) (let ((X3 (= X2 4))) (let ((X4 top.usr.KP_START_a_0)) (let ((X5 (ite (not X4) 0 1))) (and (= top.impl.usr.KP_91_a_0 top.usr.KP_9_a_0) (= top.impl.usr.KP_81_a_0 top.usr.KP_8_a_0) (= top.impl.usr.KP_71_a_0 top.usr.KP_7_a_0) (= top.impl.usr.KP_61_a_0 top.usr.KP_6_a_0) (= top.impl.usr.KP_51_a_0 top.usr.KP_5_a_0) (= top.impl.usr.KP_41_a_0 top.usr.KP_4_a_0) (= top.impl.usr.KP_31_a_0 top.usr.KP_3_a_0) (= top.impl.usr.KP_21_a_0 top.usr.KP_2_a_0) (= top.impl.usr.KP_11_a_0 top.usr.KP_1_a_0) (= top.impl.usr.KP_01_a_0 top.usr.KP_0_a_0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 (ite top.usr.KP_CLEAR_a_0 0 (ite (ite (<= (ite top.impl.usr.KP_01_a_0 0 (ite top.impl.usr.KP_11_a_0 1 (ite top.impl.usr.KP_21_a_0 2 (ite top.impl.usr.KP_31_a_0 3 (ite top.impl.usr.KP_41_a_0 4 (ite top.impl.usr.KP_51_a_0 5 (ite top.impl.usr.KP_61_a_0 6 (ite top.impl.usr.KP_71_a_0 7 (ite top.impl.usr.KP_81_a_0 8 (ite top.impl.usr.KP_91_a_0 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01_a_0 0 (ite top.impl.usr.KP_11_a_0 1 (ite top.impl.usr.KP_21_a_0 2 (ite top.impl.usr.KP_31_a_0 3 (ite top.impl.usr.KP_41_a_0 4 (ite top.impl.usr.KP_51_a_0 5 (ite top.impl.usr.KP_61_a_0 6 (ite top.impl.usr.KP_71_a_0 7 (ite top.impl.usr.KP_81_a_0 8 (ite top.impl.usr.KP_91_a_0 9 10)))))))))) 0))) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 0) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 true) (let ((X6 true)) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 X6) (= top.impl.usr.STEPS_TO_COOK_a_0 (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0)) 0 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 60)) 1))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK_a_0 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED_a_0) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK_a_0 X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 top.usr.KP_CLEAR_a_0)) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 1) 60))) (let ((X34 X33)) (let ((X35 0)) (let ((X36 (ite X12 (ite (not (= X9 2)) 2 X35) X35))) (let ((X37 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X36) X36) X35))) (let ((X38 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X39 (ite X18 (ite (not (= X19 4)) 1 X37) X37))) (let ((X40 (ite X21 (ite (not (= X22 2)) 2 X39) X39))) (let ((X41 (ite X27 (ite (not (= X28 4)) 1 X40) X40))) (let ((X42 (ite X32 (ite (not (= X38 2)) 2 X41) X41))) (let ((X43 (ite X32 (ite (not (= X38 2)) 2 X38) X38))) (let ((X44 (and (= X43 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X45 (ite X44 (ite (= X43 2) 1 X43) X43))) (and (= top.impl.usr.chart_microwave_mode_logic_mode_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 (ite (not (= X2 4)) 1 X35) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X42) X42) X37)) X35)) (= top.impl.usr.microwave_microwave_mode_logic_mode_a_0 top.impl.usr.chart_microwave_mode_logic_mode_a_0) (let ((X46 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 X46 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X45) X45) X16)) X2)) (let ((X47 (div (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 1) 60) 60)) 10))) (let ((X48 X47)) (let ((X49 (- (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 1) 60) 60)) (* (div (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 1) 60) 60)) 10) 10)))) (let ((X50 X49)) (and (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) top.res.init_flag_a_0))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) +(define-fun __node_trans_top_0 ((top.usr.KP_START_a_1 Bool) (top.usr.KP_CLEAR_a_1 Bool) (top.usr.KP_0_a_1 Bool) (top.usr.KP_1_a_1 Bool) (top.usr.KP_2_a_1 Bool) (top.usr.KP_3_a_1 Bool) (top.usr.KP_4_a_1 Bool) (top.usr.KP_5_a_1 Bool) (top.usr.KP_6_a_1 Bool) (top.usr.KP_7_a_1 Bool) (top.usr.KP_8_a_1 Bool) (top.usr.KP_9_a_1 Bool) (top.usr.DOOR_CLOSED_a_1 Bool) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.STEPS_TO_COOK_a_1 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 Bool) (top.impl.usr.KP_01_a_1 Bool) (top.impl.usr.KP_11_a_1 Bool) (top.impl.usr.KP_21_a_1 Bool) (top.impl.usr.KP_31_a_1 Bool) (top.impl.usr.KP_41_a_1 Bool) (top.impl.usr.KP_51_a_1 Bool) (top.impl.usr.KP_61_a_1 Bool) (top.impl.usr.KP_71_a_1 Bool) (top.impl.usr.KP_81_a_1 Bool) (top.impl.usr.KP_91_a_1 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_1 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_1 Int) (top.usr.KP_START_a_0 Bool) (top.usr.KP_CLEAR_a_0 Bool) (top.usr.KP_0_a_0 Bool) (top.usr.KP_1_a_0 Bool) (top.usr.KP_2_a_0 Bool) (top.usr.KP_3_a_0 Bool) (top.usr.KP_4_a_0 Bool) (top.usr.KP_5_a_0 Bool) (top.usr.KP_6_a_0 Bool) (top.usr.KP_7_a_0 Bool) (top.usr.KP_8_a_0 Bool) (top.usr.KP_9_a_0 Bool) (top.usr.DOOR_CLOSED_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.STEPS_TO_COOK_a_0 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) (top.impl.usr.KP_01_a_0 Bool) (top.impl.usr.KP_11_a_0 Bool) (top.impl.usr.KP_21_a_0 Bool) (top.impl.usr.KP_31_a_0 Bool) (top.impl.usr.KP_41_a_0 Bool) (top.impl.usr.KP_51_a_0 Bool) (top.impl.usr.KP_61_a_0 Bool) (top.impl.usr.KP_71_a_0 Bool) (top.impl.usr.KP_81_a_0 Bool) (top.impl.usr.KP_91_a_0 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int)) Bool + (let ((X1 top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0)) (let ((X2 top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 false top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0)) (let ((X3 (= X2 4))) (let ((X4 (and top.usr.KP_START_a_1 (not top.usr.KP_START_a_0)))) (let ((X5 (ite (not X4) 0 1))) (let ((X6 (ite (= 1 top.impl.usr.microwave_microwave_mode_logic_mode_a_0) true false))) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 X6) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (ite (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1) true (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 false top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0))) (= top.impl.usr.KP_91_a_1 top.usr.KP_9_a_1) (= top.impl.usr.KP_81_a_1 top.usr.KP_8_a_1) (= top.impl.usr.KP_71_a_1 top.usr.KP_7_a_1) (= top.impl.usr.KP_61_a_1 top.usr.KP_6_a_1) (= top.impl.usr.KP_51_a_1 top.usr.KP_5_a_1) (= top.impl.usr.KP_41_a_1 top.usr.KP_4_a_1) (= top.impl.usr.KP_31_a_1 top.usr.KP_3_a_1) (= top.impl.usr.KP_21_a_1 top.usr.KP_2_a_1) (= top.impl.usr.KP_11_a_1 top.usr.KP_1_a_1) (= top.impl.usr.KP_01_a_1 top.usr.KP_0_a_1) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite top.impl.usr.KP_01_a_1 0 (ite top.impl.usr.KP_11_a_1 1 (ite top.impl.usr.KP_21_a_1 2 (ite top.impl.usr.KP_31_a_1 3 (ite top.impl.usr.KP_41_a_1 4 (ite top.impl.usr.KP_51_a_1 5 (ite top.impl.usr.KP_61_a_1 6 (ite top.impl.usr.KP_71_a_1 7 (ite top.impl.usr.KP_81_a_1 8 (ite top.impl.usr.KP_91_a_1 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01_a_1 0 (ite top.impl.usr.KP_11_a_1 1 (ite top.impl.usr.KP_21_a_1 2 (ite top.impl.usr.KP_31_a_1 3 (ite top.impl.usr.KP_41_a_1 4 (ite top.impl.usr.KP_51_a_1 5 (ite top.impl.usr.KP_61_a_1 6 (ite top.impl.usr.KP_71_a_1 7 (ite top.impl.usr.KP_81_a_1 8 (ite top.impl.usr.KP_91_a_1 9 10)))))))))) 0)) (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 0 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 0 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.STEPS_TO_COOK_a_1 (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1)) 0 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 60)) 1) top.impl.usr.STEPS_TO_COOK_a_0))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK_a_1 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED_a_1) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK_a_1 X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 (and top.usr.KP_CLEAR_a_1 (not top.usr.KP_CLEAR_a_0)))) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (- (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 1) 60) 60)) (* (div (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 1) 60) 60)) 10) 10)))) (let ((X34 (div (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 1) 60) 60)) 10))) (let ((X35 (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 1) 60))) (let ((X36 X33)) (let ((X37 X34)) (let ((X38 X35)) (and (= top.usr.OK_a_1 (or (not (and X6 (not top.usr.KP_CLEAR_a_1))) (= top.impl.usr.STEPS_TO_COOK_a_1 (* (+ (+ X36 (* X37 10)) (* X38 60)) 1)))) (let ((X39 top.impl.usr.chart_microwave_mode_logic_mode_a_0)) (let ((X40 (ite X12 (ite (not (= X9 2)) 2 X39) X39))) (let ((X41 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X40) X40) X39))) (let ((X42 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X43 (ite X18 (ite (not (= X19 4)) 1 X41) X41))) (let ((X44 (ite X21 (ite (not (= X22 2)) 2 X43) X43))) (let ((X45 (ite X27 (ite (not (= X28 4)) 1 X44) X44))) (let ((X46 (ite X32 (ite (not (= X42 2)) 2 X45) X45))) (let ((X47 (ite X32 (ite (not (= X42 2)) 2 X42) X42))) (let ((X48 (and (= X47 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X49 (ite X48 (ite (= X47 2) 1 X47) X47))) (and (= top.impl.usr.chart_microwave_mode_logic_mode_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 (ite (not (= X2 4)) 1 X39) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X48 (ite (not (= X49 3)) 3 X46) X46) X41)) X39)) (= top.impl.usr.microwave_microwave_mode_logic_mode_a_1 top.impl.usr.chart_microwave_mode_logic_mode_a_1) (let ((X50 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 X50 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X48 (ite (not (= X49 3)) 3 X49) X49) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) (not top.res.init_flag_a_1)))))))))))))))))))))))))))))))))))))))))))))))))))))))))) +(synth-inv str_invariant ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int))) + +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int)) Bool + (and (= top.usr.OK true) (let ((X1 0)) (let ((X2 0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep true) (let ((X3 (= X2 4))) (let ((X4 top.usr.KP_START)) (let ((X5 (ite (not X4) 0 1))) (and (= top.impl.usr.KP_91 top.usr.KP_9) (= top.impl.usr.KP_81 top.usr.KP_8) (= top.impl.usr.KP_71 top.usr.KP_7) (= top.impl.usr.KP_61 top.usr.KP_6) (= top.impl.usr.KP_51 top.usr.KP_5) (= top.impl.usr.KP_41 top.usr.KP_4) (= top.impl.usr.KP_31 top.usr.KP_3) (= top.impl.usr.KP_21 top.usr.KP_2) (= top.impl.usr.KP_11 top.usr.KP_1) (= top.impl.usr.KP_01 top.usr.KP_0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY (ite top.usr.KP_CLEAR 0 (ite (ite (<= (ite top.impl.usr.KP_01 0 (ite top.impl.usr.KP_11 1 (ite top.impl.usr.KP_21 2 (ite top.impl.usr.KP_31 3 (ite top.impl.usr.KP_41 4 (ite top.impl.usr.KP_51 5 (ite top.impl.usr.KP_61 6 (ite top.impl.usr.KP_71 7 (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01 0 (ite top.impl.usr.KP_11 1 (ite top.impl.usr.KP_21 2 (ite top.impl.usr.KP_31 3 (ite top.impl.usr.KP_41 4 (ite top.impl.usr.KP_51 5 (ite top.impl.usr.KP_61 6 (ite top.impl.usr.KP_71 7 (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) 0))) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY 0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY 0) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step true) (let ((X6 true)) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock X6) (= top.impl.usr.STEPS_TO_COOK (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock)) 0 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY 60)) 1))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 top.usr.KP_CLEAR)) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup___ true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining 1) 60))) (let ((X34 X33)) (let ((X35 0)) (let ((X36 (ite X12 (ite (not (= X9 2)) 2 X35) X35))) (let ((X37 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X36) X36) X35))) (let ((X38 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X39 (ite X18 (ite (not (= X19 4)) 1 X37) X37))) (let ((X40 (ite X21 (ite (not (= X22 2)) 2 X39) X39))) (let ((X41 (ite X27 (ite (not (= X28 4)) 1 X40) X40))) (let ((X42 (ite X32 (ite (not (= X38 2)) 2 X41) X41))) (let ((X43 (ite X32 (ite (not (= X38 2)) 2 X38) X38))) (let ((X44 (and (= X43 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X45 (ite X44 (ite (= X43 2) 1 X43) X43))) (and (= top.impl.usr.chart_microwave_mode_logic_mode (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep (ite (not (= X2 4)) 1 X35) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X42) X42) X37)) X35)) (= top.impl.usr.microwave_microwave_mode_logic_mode top.impl.usr.chart_microwave_mode_logic_mode) (let ((X46 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep X46 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X45) X45) X16)) X2)) (let ((X47 (div (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining 1) 60) 60)) 10))) (let ((X48 X47)) (let ((X49 (- (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining 1) 60) 60)) (* (div (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining 1) 60) 60)) 10) 10)))) (let ((X50 X49)) (and (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) top.res.init_flag))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) +(define-fun trans ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int) (top.usr.KP_START! Bool) (top.usr.KP_CLEAR! Bool) (top.usr.KP_0! Bool) (top.usr.KP_1! Bool) (top.usr.KP_2! Bool) (top.usr.KP_3! Bool) (top.usr.KP_4! Bool) (top.usr.KP_5! Bool) (top.usr.KP_6! Bool) (top.usr.KP_7! Bool) (top.usr.KP_8! Bool) (top.usr.KP_9! Bool) (top.usr.DOOR_CLOSED! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.STEPS_TO_COOK! Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! Bool) (top.impl.usr.KP_01! Bool) (top.impl.usr.KP_11! Bool) (top.impl.usr.KP_21! Bool) (top.impl.usr.KP_31! Bool) (top.impl.usr.KP_41! Bool) (top.impl.usr.KP_51! Bool) (top.impl.usr.KP_61! Bool) (top.impl.usr.KP_71! Bool) (top.impl.usr.KP_81! Bool) (top.impl.usr.KP_91! Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___! Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root! Int) (top.impl.usr.chart_microwave_mode_logic_mode! Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining! Int) (top.impl.usr.microwave_microwave_mode_logic_mode! Int)) Bool + (and (let ((X1 top.impl.usr.chart_microwave_mode_logic_steps_remaining)) (let ((X2 top.impl.usr.chart_microwave_mode_logic_final_state_states___root)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ false top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep)) (let ((X3 (= X2 4))) (let ((X4 (and top.usr.KP_START! (not top.usr.KP_START)))) (let ((X5 (ite (not X4) 0 1))) (let ((X6 (ite (= 1 top.impl.usr.microwave_microwave_mode_logic_mode) true false))) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! X6) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (ite (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!) true (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock false top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step))) (= top.impl.usr.KP_91! top.usr.KP_9!) (= top.impl.usr.KP_81! top.usr.KP_8!) (= top.impl.usr.KP_71! top.usr.KP_7!) (= top.impl.usr.KP_61! top.usr.KP_6!) (= top.impl.usr.KP_51! top.usr.KP_5!) (= top.impl.usr.KP_41! top.usr.KP_4!) (= top.impl.usr.KP_31! top.usr.KP_3!) (= top.impl.usr.KP_21! top.usr.KP_2!) (= top.impl.usr.KP_11! top.usr.KP_1!) (= top.impl.usr.KP_01! top.usr.KP_0!) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite top.impl.usr.KP_01! 0 (ite top.impl.usr.KP_11! 1 (ite top.impl.usr.KP_21! 2 (ite top.impl.usr.KP_31! 3 (ite top.impl.usr.KP_41! 4 (ite top.impl.usr.KP_51! 5 (ite top.impl.usr.KP_61! 6 (ite top.impl.usr.KP_71! 7 (ite top.impl.usr.KP_81! 8 (ite top.impl.usr.KP_91! 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01! 0 (ite top.impl.usr.KP_11! 1 (ite top.impl.usr.KP_21! 2 (ite top.impl.usr.KP_31! 3 (ite top.impl.usr.KP_41! 4 (ite top.impl.usr.KP_51! 5 (ite top.impl.usr.KP_61! 6 (ite top.impl.usr.KP_71! 7 (ite top.impl.usr.KP_81! 8 (ite top.impl.usr.KP_91! 9 10)))))))))) 0)) (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! 0 (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! 0 (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.STEPS_TO_COOK! (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!)) 0 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! 60)) 1) top.impl.usr.STEPS_TO_COOK))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK! 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED!) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK! X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 (and top.usr.KP_CLEAR! (not top.usr.KP_CLEAR)))) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup___! true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (- (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining! 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining! 1) 60) 60)) (* (div (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining! 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining! 1) 60) 60)) 10) 10)))) (let ((X34 (div (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining! 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining! 1) 60) 60)) 10))) (let ((X35 (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining! 1) 60))) (let ((X36 X33)) (let ((X37 X34)) (let ((X38 X35)) (and (= top.usr.OK! (or (not (and X6 (not top.usr.KP_CLEAR!))) (= top.impl.usr.STEPS_TO_COOK! (* (+ (+ X36 (* X37 10)) (* X38 60)) 1)))) (let ((X39 top.impl.usr.chart_microwave_mode_logic_mode)) (let ((X40 (ite X12 (ite (not (= X9 2)) 2 X39) X39))) (let ((X41 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X40) X40) X39))) (let ((X42 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X43 (ite X18 (ite (not (= X19 4)) 1 X41) X41))) (let ((X44 (ite X21 (ite (not (= X22 2)) 2 X43) X43))) (let ((X45 (ite X27 (ite (not (= X28 4)) 1 X44) X44))) (let ((X46 (ite X32 (ite (not (= X42 2)) 2 X45) X45))) (let ((X47 (ite X32 (ite (not (= X42 2)) 2 X42) X42))) (let ((X48 (and (= X47 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X49 (ite X48 (ite (= X47 2) 1 X47) X47))) (and (= top.impl.usr.chart_microwave_mode_logic_mode! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! (ite (not (= X2 4)) 1 X39) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X48 (ite (not (= X49 3)) 3 X46) X46) X41)) X39)) (= top.impl.usr.microwave_microwave_mode_logic_mode! top.impl.usr.chart_microwave_mode_logic_mode!) (let ((X50 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! X50 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X48 (ite (not (= X49 3)) 3 X49) X49) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) (not top.res.init_flag!))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/microwave19.sl b/benchmarks/LIA/Lustre/microwave19.sl index 41bffd2..e61c2ea 100644 --- a/benchmarks/LIA/Lustre/microwave19.sl +++ b/benchmarks/LIA/Lustre/microwave19.sl @@ -1,2533 +1,25 @@ (set-logic LIA) -(define-fun - __node_init_top_0 ( - (top.usr.KP_START_a_0 Bool) - (top.usr.KP_CLEAR_a_0 Bool) - (top.usr.KP_0_a_0 Bool) - (top.usr.KP_1_a_0 Bool) - (top.usr.KP_2_a_0 Bool) - (top.usr.KP_3_a_0 Bool) - (top.usr.KP_4_a_0 Bool) - (top.usr.KP_5_a_0 Bool) - (top.usr.KP_6_a_0 Bool) - (top.usr.KP_7_a_0 Bool) - (top.usr.KP_8_a_0 Bool) - (top.usr.KP_9_a_0 Bool) - (top.usr.DOOR_CLOSED_a_0 Bool) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.STEPS_TO_COOK_a_0 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) - (top.impl.usr.KP_01_a_0 Bool) - (top.impl.usr.KP_11_a_0 Bool) - (top.impl.usr.KP_21_a_0 Bool) - (top.impl.usr.KP_31_a_0 Bool) - (top.impl.usr.KP_41_a_0 Bool) - (top.impl.usr.KP_51_a_0 Bool) - (top.impl.usr.KP_61_a_0 Bool) - (top.impl.usr.KP_71_a_0 Bool) - (top.impl.usr.KP_81_a_0 Bool) - (top.impl.usr.KP_91_a_0 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int) - ) Bool - - (let - ((X1 Int 0)) - (let - ((X2 Int 0)) - (and - (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 true) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool top.usr.KP_START_a_0)) - (let - ((X5 Int (ite (not X4) 0 1))) - (and - (= top.impl.usr.KP_91_a_0 top.usr.KP_9_a_0) - (= top.impl.usr.KP_81_a_0 top.usr.KP_8_a_0) - (= top.impl.usr.KP_71_a_0 top.usr.KP_7_a_0) - (= top.impl.usr.KP_61_a_0 top.usr.KP_6_a_0) - (= top.impl.usr.KP_51_a_0 top.usr.KP_5_a_0) - (= top.impl.usr.KP_41_a_0 top.usr.KP_4_a_0) - (= top.impl.usr.KP_31_a_0 top.usr.KP_3_a_0) - (= top.impl.usr.KP_21_a_0 top.usr.KP_2_a_0) - (= top.impl.usr.KP_11_a_0 top.usr.KP_1_a_0) - (= top.impl.usr.KP_01_a_0 top.usr.KP_0_a_0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - (ite - top.usr.KP_CLEAR_a_0 - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01_a_0 - 0 - (ite - top.impl.usr.KP_11_a_0 - 1 - (ite - top.impl.usr.KP_21_a_0 - 2 - (ite - top.impl.usr.KP_31_a_0 - 3 - (ite - top.impl.usr.KP_41_a_0 - 4 - (ite - top.impl.usr.KP_51_a_0 - 5 - (ite - top.impl.usr.KP_61_a_0 - 6 - (ite - top.impl.usr.KP_71_a_0 - 7 - (ite - top.impl.usr.KP_81_a_0 - 8 - (ite top.impl.usr.KP_91_a_0 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01_a_0 - 0 - (ite - top.impl.usr.KP_11_a_0 - 1 - (ite - top.impl.usr.KP_21_a_0 - 2 - (ite - top.impl.usr.KP_31_a_0 - 3 - (ite - top.impl.usr.KP_41_a_0 - 4 - (ite - top.impl.usr.KP_51_a_0 - 5 - (ite - top.impl.usr.KP_61_a_0 - 6 - (ite - top.impl.usr.KP_71_a_0 - 7 - (ite - top.impl.usr.KP_81_a_0 - 8 - (ite top.impl.usr.KP_91_a_0 9 10)))))))))) - 0))) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - 0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 0) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 - true) - (let - ((X6 Bool true)) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 - X6) - (= - top.impl.usr.STEPS_TO_COOK_a_0 - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0)) - 0 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 60)) - 1))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK_a_0 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED_a_0) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK_a_0 X1))) - (let - ((X18 Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 Bool top.usr.KP_CLEAR_a_0)) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - 1) - 60))) - (let - ((X34 Int X33)) - (and - (= - top.usr.OK_a_0 - (or - (not (and X6 top.usr.KP_CLEAR_a_0)) - (= X34 0))) - (let - ((X35 Int 0)) - (let - ((X36 - Int (ite - X12 - (ite (not (= X9 2)) 2 X35) - X35))) - (let - ((X37 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X36) - X36) - X35))) - (let - ((X38 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X39 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X37) - X37))) - (let - ((X40 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X39) - X39))) - (let - ((X41 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X41) - X41))) - (let - ((X43 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X38) - X38))) - (let - ((X44 - Bool (and - (= X43 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not - (= X11 0)) - true - false))) - (not - (or X32 X31)))))) - (let - ((X45 - Int (ite - X44 - (ite - (= X43 2) - 1 - X43) - X43))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - (ite - (not (= X2 4)) - 1 - X35) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X42) - X42) - X37)) - X35)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode_a_0 - top.impl.usr.chart_microwave_mode_logic_mode_a_0) - (let - ((X46 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - X46 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X45) - X45) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - top.res.init_flag_a_0))))))))))))))))))))))))))))))))))))))))))))))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.KP_START_a_1 Bool) - (top.usr.KP_CLEAR_a_1 Bool) - (top.usr.KP_0_a_1 Bool) - (top.usr.KP_1_a_1 Bool) - (top.usr.KP_2_a_1 Bool) - (top.usr.KP_3_a_1 Bool) - (top.usr.KP_4_a_1 Bool) - (top.usr.KP_5_a_1 Bool) - (top.usr.KP_6_a_1 Bool) - (top.usr.KP_7_a_1 Bool) - (top.usr.KP_8_a_1 Bool) - (top.usr.KP_9_a_1 Bool) - (top.usr.DOOR_CLOSED_a_1 Bool) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.STEPS_TO_COOK_a_1 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 Bool) - (top.impl.usr.KP_01_a_1 Bool) - (top.impl.usr.KP_11_a_1 Bool) - (top.impl.usr.KP_21_a_1 Bool) - (top.impl.usr.KP_31_a_1 Bool) - (top.impl.usr.KP_41_a_1 Bool) - (top.impl.usr.KP_51_a_1 Bool) - (top.impl.usr.KP_61_a_1 Bool) - (top.impl.usr.KP_71_a_1 Bool) - (top.impl.usr.KP_81_a_1 Bool) - (top.impl.usr.KP_91_a_1 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_1 Int) - (top.usr.KP_START_a_0 Bool) - (top.usr.KP_CLEAR_a_0 Bool) - (top.usr.KP_0_a_0 Bool) - (top.usr.KP_1_a_0 Bool) - (top.usr.KP_2_a_0 Bool) - (top.usr.KP_3_a_0 Bool) - (top.usr.KP_4_a_0 Bool) - (top.usr.KP_5_a_0 Bool) - (top.usr.KP_6_a_0 Bool) - (top.usr.KP_7_a_0 Bool) - (top.usr.KP_8_a_0 Bool) - (top.usr.KP_9_a_0 Bool) - (top.usr.DOOR_CLOSED_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.STEPS_TO_COOK_a_0 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) - (top.impl.usr.KP_01_a_0 Bool) - (top.impl.usr.KP_11_a_0 Bool) - (top.impl.usr.KP_21_a_0 Bool) - (top.impl.usr.KP_31_a_0 Bool) - (top.impl.usr.KP_41_a_0 Bool) - (top.impl.usr.KP_51_a_0 Bool) - (top.impl.usr.KP_61_a_0 Bool) - (top.impl.usr.KP_71_a_0 Bool) - (top.impl.usr.KP_81_a_0 Bool) - (top.impl.usr.KP_91_a_0 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int) - ) Bool - - (let - ((X1 Int top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0)) - (let - ((X2 - Int top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0)) - (and - (= - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - false - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0)) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool (and top.usr.KP_START_a_1 (not top.usr.KP_START_a_0)))) - (let - ((X5 Int (ite (not X4) 0 1))) - (let - ((X6 - Bool (ite - (= 1 top.impl.usr.microwave_microwave_mode_logic_mode_a_0) - true - false))) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - X6) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (ite - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1) - true - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 - false - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0))) - (= top.impl.usr.KP_91_a_1 top.usr.KP_9_a_1) - (= top.impl.usr.KP_81_a_1 top.usr.KP_8_a_1) - (= top.impl.usr.KP_71_a_1 top.usr.KP_7_a_1) - (= top.impl.usr.KP_61_a_1 top.usr.KP_6_a_1) - (= top.impl.usr.KP_51_a_1 top.usr.KP_5_a_1) - (= top.impl.usr.KP_41_a_1 top.usr.KP_4_a_1) - (= top.impl.usr.KP_31_a_1 top.usr.KP_3_a_1) - (= top.impl.usr.KP_21_a_1 top.usr.KP_2_a_1) - (= top.impl.usr.KP_11_a_1 top.usr.KP_1_a_1) - (= top.impl.usr.KP_01_a_1 top.usr.KP_0_a_1) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01_a_1 - 0 - (ite - top.impl.usr.KP_11_a_1 - 1 - (ite - top.impl.usr.KP_21_a_1 - 2 - (ite - top.impl.usr.KP_31_a_1 - 3 - (ite - top.impl.usr.KP_41_a_1 - 4 - (ite - top.impl.usr.KP_51_a_1 - 5 - (ite - top.impl.usr.KP_61_a_1 - 6 - (ite - top.impl.usr.KP_71_a_1 - 7 - (ite - top.impl.usr.KP_81_a_1 - 8 - (ite top.impl.usr.KP_91_a_1 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01_a_1 - 0 - (ite - top.impl.usr.KP_11_a_1 - 1 - (ite - top.impl.usr.KP_21_a_1 - 2 - (ite - top.impl.usr.KP_31_a_1 - 3 - (ite - top.impl.usr.KP_41_a_1 - 4 - (ite - top.impl.usr.KP_51_a_1 - 5 - (ite - top.impl.usr.KP_61_a_1 - 6 - (ite - top.impl.usr.KP_71_a_1 - 7 - (ite - top.impl.usr.KP_81_a_1 - 8 - (ite top.impl.usr.KP_91_a_1 9 10)))))))))) - 0)) - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and - top.impl.usr.KP_71_a_1 - (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and - top.impl.usr.KP_81_a_1 - (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - 0 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and - top.impl.usr.KP_71_a_1 - (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and - top.impl.usr.KP_81_a_1 - (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - 0 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and - top.impl.usr.KP_71_a_1 - (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and - top.impl.usr.KP_81_a_1 - (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.STEPS_TO_COOK_a_1 - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1)) - 0 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 - 60)) - 1) - top.impl.usr.STEPS_TO_COOK_a_0))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK_a_1 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED_a_1) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK_a_1 X1))) - (let - ((X18 Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 - Bool (and - top.usr.KP_CLEAR_a_1 - (not top.usr.KP_CLEAR_a_0)))) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - 1) - 60))) - (let - ((X34 Int X33)) - (and - (= - top.usr.OK_a_1 - (or - (not (and X6 top.usr.KP_CLEAR_a_1)) - (= X34 0))) - (let - ((X35 - Int top.impl.usr.chart_microwave_mode_logic_mode_a_0)) - (let - ((X36 - Int (ite - X12 - (ite (not (= X9 2)) 2 X35) - X35))) - (let - ((X37 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X36) - X36) - X35))) - (let - ((X38 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X39 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X37) - X37))) - (let - ((X40 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X39) - X39))) - (let - ((X41 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X41) - X41))) - (let - ((X43 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X38) - X38))) - (let - ((X44 - Bool (and - (= X43 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not (= X11 0)) - true - false))) - (not (or X32 X31)))))) - (let - ((X45 - Int (ite - X44 - (ite - (= X43 2) - 1 - X43) - X43))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - (ite - (not (= X2 4)) - 1 - X35) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X42) - X42) - X37)) - X35)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode_a_1 - top.impl.usr.chart_microwave_mode_logic_mode_a_1) - (let - ((X46 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - X46 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X45) - X45) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - (not - top.res.init_flag_a_1))))))))))))))))))))))))))))))))))))))))))))))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) -)) - -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.KP_START Bool) -(declare-primed-var top.usr.KP_CLEAR Bool) -(declare-primed-var top.usr.KP_0 Bool) -(declare-primed-var top.usr.KP_1 Bool) -(declare-primed-var top.usr.KP_2 Bool) -(declare-primed-var top.usr.KP_3 Bool) -(declare-primed-var top.usr.KP_4 Bool) -(declare-primed-var top.usr.KP_5 Bool) -(declare-primed-var top.usr.KP_6 Bool) -(declare-primed-var top.usr.KP_7 Bool) -(declare-primed-var top.usr.KP_8 Bool) -(declare-primed-var top.usr.KP_9 Bool) -(declare-primed-var top.usr.DOOR_CLOSED Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.STEPS_TO_COOK Int) -(declare-primed-var top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) -(declare-primed-var top.impl.usr.KP_01 Bool) -(declare-primed-var top.impl.usr.KP_11 Bool) -(declare-primed-var top.impl.usr.KP_21 Bool) -(declare-primed-var top.impl.usr.KP_31 Bool) -(declare-primed-var top.impl.usr.KP_41 Bool) -(declare-primed-var top.impl.usr.KP_51 Bool) -(declare-primed-var top.impl.usr.KP_61 Bool) -(declare-primed-var top.impl.usr.KP_71 Bool) -(declare-primed-var top.impl.usr.KP_81 Bool) -(declare-primed-var top.impl.usr.KP_91 Bool) -(declare-primed-var top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_mode Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) -(declare-primed-var top.impl.usr.microwave_microwave_mode_logic_mode Int) - -(define-fun - init ( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - ) Bool - - (let - ((X1 Int 0)) - (let - ((X2 Int 0)) - (and - (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep true) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool top.usr.KP_START)) - (let - ((X5 Int (ite (not X4) 0 1))) - (and - (= top.impl.usr.KP_91 top.usr.KP_9) - (= top.impl.usr.KP_81 top.usr.KP_8) - (= top.impl.usr.KP_71 top.usr.KP_7) - (= top.impl.usr.KP_61 top.usr.KP_6) - (= top.impl.usr.KP_51 top.usr.KP_5) - (= top.impl.usr.KP_41 top.usr.KP_4) - (= top.impl.usr.KP_31 top.usr.KP_3) - (= top.impl.usr.KP_21 top.usr.KP_2) - (= top.impl.usr.KP_11 top.usr.KP_1) - (= top.impl.usr.KP_01 top.usr.KP_0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - (ite - top.usr.KP_CLEAR - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01 - 0 - (ite - top.impl.usr.KP_11 - 1 - (ite - top.impl.usr.KP_21 - 2 - (ite - top.impl.usr.KP_31 - 3 - (ite - top.impl.usr.KP_41 - 4 - (ite - top.impl.usr.KP_51 - 5 - (ite - top.impl.usr.KP_61 - 6 - (ite - top.impl.usr.KP_71 - 7 - (ite - top.impl.usr.KP_81 - 8 - (ite top.impl.usr.KP_91 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01 - 0 - (ite - top.impl.usr.KP_11 - 1 - (ite - top.impl.usr.KP_21 - 2 - (ite - top.impl.usr.KP_31 - 3 - (ite - top.impl.usr.KP_41 - 4 - (ite - top.impl.usr.KP_51 - 5 - (ite - top.impl.usr.KP_61 - 6 - (ite - top.impl.usr.KP_71 - 7 - (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) - 0))) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - 0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY - 0) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step - true) - (let - ((X6 Bool true)) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock - X6) - (= - top.impl.usr.STEPS_TO_COOK - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock)) - 0 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY - 60)) - 1))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK X1))) - (let - ((X18 Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 Bool top.usr.KP_CLEAR)) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup___ - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining - 1) - 60))) - (let - ((X34 Int X33)) - (and - (= - top.usr.OK - (or - (not (and X6 top.usr.KP_CLEAR)) - (= X34 0))) - (let - ((X35 Int 0)) - (let - ((X36 - Int (ite - X12 - (ite (not (= X9 2)) 2 X35) - X35))) - (let - ((X37 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X36) - X36) - X35))) - (let - ((X38 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X39 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X37) - X37))) - (let - ((X40 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X39) - X39))) - (let - ((X41 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X41) - X41))) - (let - ((X43 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X38) - X38))) - (let - ((X44 - Bool (and - (= X43 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not - (= X11 0)) - true - false))) - (not - (or X32 X31)))))) - (let - ((X45 - Int (ite - X44 - (ite - (= X43 2) - 1 - X43) - X43))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - (ite - (not (= X2 4)) - 1 - X35) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X42) - X42) - X37)) - X35)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode - top.impl.usr.chart_microwave_mode_logic_mode) - (let - ((X46 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - X46 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X45) - X45) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - top.res.init_flag))))))))))))))))))))))))))))))))))))))))))))))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - - ;; Next state. - (top.usr.KP_START! Bool) - (top.usr.KP_CLEAR! Bool) - (top.usr.KP_0! Bool) - (top.usr.KP_1! Bool) - (top.usr.KP_2! Bool) - (top.usr.KP_3! Bool) - (top.usr.KP_4! Bool) - (top.usr.KP_5! Bool) - (top.usr.KP_6! Bool) - (top.usr.KP_7! Bool) - (top.usr.KP_8! Bool) - (top.usr.KP_9! Bool) - (top.usr.DOOR_CLOSED! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.STEPS_TO_COOK! Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! Bool) - (top.impl.usr.KP_01! Bool) - (top.impl.usr.KP_11! Bool) - (top.impl.usr.KP_21! Bool) - (top.impl.usr.KP_31! Bool) - (top.impl.usr.KP_41! Bool) - (top.impl.usr.KP_51! Bool) - (top.impl.usr.KP_61! Bool) - (top.impl.usr.KP_71! Bool) - (top.impl.usr.KP_81! Bool) - (top.impl.usr.KP_91! Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___! Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root! Int) - (top.impl.usr.chart_microwave_mode_logic_mode! Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining! Int) - (top.impl.usr.microwave_microwave_mode_logic_mode! Int) - - ) Bool - - (and - (let - ((X1 Int top.impl.usr.chart_microwave_mode_logic_steps_remaining)) - (let - ((X2 - Int top.impl.usr.chart_microwave_mode_logic_final_state_states___root)) - (and - (= - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - false - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep)) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool (and top.usr.KP_START! (not top.usr.KP_START)))) - (let - ((X5 Int (ite (not X4) 0 1))) - (let - ((X6 - Bool (ite - (= 1 top.impl.usr.microwave_microwave_mode_logic_mode) - true - false))) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - X6) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (ite - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!) - true - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock - false - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step))) - (= top.impl.usr.KP_91! top.usr.KP_9!) - (= top.impl.usr.KP_81! top.usr.KP_8!) - (= top.impl.usr.KP_71! top.usr.KP_7!) - (= top.impl.usr.KP_61! top.usr.KP_6!) - (= top.impl.usr.KP_51! top.usr.KP_5!) - (= top.impl.usr.KP_41! top.usr.KP_4!) - (= top.impl.usr.KP_31! top.usr.KP_3!) - (= top.impl.usr.KP_21! top.usr.KP_2!) - (= top.impl.usr.KP_11! top.usr.KP_1!) - (= top.impl.usr.KP_01! top.usr.KP_0!) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01! - 0 - (ite - top.impl.usr.KP_11! - 1 - (ite - top.impl.usr.KP_21! - 2 - (ite - top.impl.usr.KP_31! - 3 - (ite - top.impl.usr.KP_41! - 4 - (ite - top.impl.usr.KP_51! - 5 - (ite - top.impl.usr.KP_61! - 6 - (ite - top.impl.usr.KP_71! - 7 - (ite - top.impl.usr.KP_81! - 8 - (ite top.impl.usr.KP_91! 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01! - 0 - (ite - top.impl.usr.KP_11! - 1 - (ite - top.impl.usr.KP_21! - 2 - (ite - top.impl.usr.KP_31! - 3 - (ite - top.impl.usr.KP_41! - 4 - (ite - top.impl.usr.KP_51! - 5 - (ite - top.impl.usr.KP_61! - 6 - (ite - top.impl.usr.KP_71! - 7 - (ite - top.impl.usr.KP_81! - 8 - (ite top.impl.usr.KP_91! 9 10)))))))))) - 0)) - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and - top.impl.usr.KP_91! - (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - 0 - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and - top.impl.usr.KP_91! - (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - 0 - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and - top.impl.usr.KP_91! - (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.STEPS_TO_COOK! - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!)) - 0 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! - 60)) - 1) - top.impl.usr.STEPS_TO_COOK))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK! 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED!) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK! X1))) - (let - ((X18 Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 - Bool (and - top.usr.KP_CLEAR! - (not top.usr.KP_CLEAR)))) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup___! - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - 1) - 60))) - (let - ((X34 Int X33)) - (and - (= - top.usr.OK! - (or - (not (and X6 top.usr.KP_CLEAR!)) - (= X34 0))) - (let - ((X35 - Int top.impl.usr.chart_microwave_mode_logic_mode)) - (let - ((X36 - Int (ite - X12 - (ite (not (= X9 2)) 2 X35) - X35))) - (let - ((X37 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X36) - X36) - X35))) - (let - ((X38 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X39 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X37) - X37))) - (let - ((X40 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X39) - X39))) - (let - ((X41 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X41) - X41))) - (let - ((X43 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X38) - X38))) - (let - ((X44 - Bool (and - (= X43 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not - (= X11 0)) - true - false))) - (not - (or X32 X31)))))) - (let - ((X45 - Int (ite - X44 - (ite - (= X43 2) - 1 - X43) - X43))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - (ite - (not (= X2 4)) - 1 - X35) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X42) - X42) - X37)) - X35)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode! - top.impl.usr.chart_microwave_mode_logic_mode!) - (let - ((X46 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - X46 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X45) - X45) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - (not - top.res.init_flag!))))))))))))))))))))))))))))))))))))))))))))))))))))) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - ) Bool - - top.usr.OK -) +(define-fun __node_init_top_0 ((top.usr.KP_START_a_0 Bool) (top.usr.KP_CLEAR_a_0 Bool) (top.usr.KP_0_a_0 Bool) (top.usr.KP_1_a_0 Bool) (top.usr.KP_2_a_0 Bool) (top.usr.KP_3_a_0 Bool) (top.usr.KP_4_a_0 Bool) (top.usr.KP_5_a_0 Bool) (top.usr.KP_6_a_0 Bool) (top.usr.KP_7_a_0 Bool) (top.usr.KP_8_a_0 Bool) (top.usr.KP_9_a_0 Bool) (top.usr.DOOR_CLOSED_a_0 Bool) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.STEPS_TO_COOK_a_0 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) (top.impl.usr.KP_01_a_0 Bool) (top.impl.usr.KP_11_a_0 Bool) (top.impl.usr.KP_21_a_0 Bool) (top.impl.usr.KP_31_a_0 Bool) (top.impl.usr.KP_41_a_0 Bool) (top.impl.usr.KP_51_a_0 Bool) (top.impl.usr.KP_61_a_0 Bool) (top.impl.usr.KP_71_a_0 Bool) (top.impl.usr.KP_81_a_0 Bool) (top.impl.usr.KP_91_a_0 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int)) Bool + (let ((X1 0)) (let ((X2 0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 true) (let ((X3 (= X2 4))) (let ((X4 top.usr.KP_START_a_0)) (let ((X5 (ite (not X4) 0 1))) (and (= top.impl.usr.KP_91_a_0 top.usr.KP_9_a_0) (= top.impl.usr.KP_81_a_0 top.usr.KP_8_a_0) (= top.impl.usr.KP_71_a_0 top.usr.KP_7_a_0) (= top.impl.usr.KP_61_a_0 top.usr.KP_6_a_0) (= top.impl.usr.KP_51_a_0 top.usr.KP_5_a_0) (= top.impl.usr.KP_41_a_0 top.usr.KP_4_a_0) (= top.impl.usr.KP_31_a_0 top.usr.KP_3_a_0) (= top.impl.usr.KP_21_a_0 top.usr.KP_2_a_0) (= top.impl.usr.KP_11_a_0 top.usr.KP_1_a_0) (= top.impl.usr.KP_01_a_0 top.usr.KP_0_a_0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 (ite top.usr.KP_CLEAR_a_0 0 (ite (ite (<= (ite top.impl.usr.KP_01_a_0 0 (ite top.impl.usr.KP_11_a_0 1 (ite top.impl.usr.KP_21_a_0 2 (ite top.impl.usr.KP_31_a_0 3 (ite top.impl.usr.KP_41_a_0 4 (ite top.impl.usr.KP_51_a_0 5 (ite top.impl.usr.KP_61_a_0 6 (ite top.impl.usr.KP_71_a_0 7 (ite top.impl.usr.KP_81_a_0 8 (ite top.impl.usr.KP_91_a_0 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01_a_0 0 (ite top.impl.usr.KP_11_a_0 1 (ite top.impl.usr.KP_21_a_0 2 (ite top.impl.usr.KP_31_a_0 3 (ite top.impl.usr.KP_41_a_0 4 (ite top.impl.usr.KP_51_a_0 5 (ite top.impl.usr.KP_61_a_0 6 (ite top.impl.usr.KP_71_a_0 7 (ite top.impl.usr.KP_81_a_0 8 (ite top.impl.usr.KP_91_a_0 9 10)))))))))) 0))) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 0) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 true) (let ((X6 true)) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 X6) (= top.impl.usr.STEPS_TO_COOK_a_0 (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0)) 0 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 60)) 1))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK_a_0 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED_a_0) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK_a_0 X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 top.usr.KP_CLEAR_a_0)) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 1) 60))) (let ((X34 X33)) (and (= top.usr.OK_a_0 (or (not (and X6 top.usr.KP_CLEAR_a_0)) (= X34 0))) (let ((X35 0)) (let ((X36 (ite X12 (ite (not (= X9 2)) 2 X35) X35))) (let ((X37 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X36) X36) X35))) (let ((X38 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X39 (ite X18 (ite (not (= X19 4)) 1 X37) X37))) (let ((X40 (ite X21 (ite (not (= X22 2)) 2 X39) X39))) (let ((X41 (ite X27 (ite (not (= X28 4)) 1 X40) X40))) (let ((X42 (ite X32 (ite (not (= X38 2)) 2 X41) X41))) (let ((X43 (ite X32 (ite (not (= X38 2)) 2 X38) X38))) (let ((X44 (and (= X43 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X45 (ite X44 (ite (= X43 2) 1 X43) X43))) (and (= top.impl.usr.chart_microwave_mode_logic_mode_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 (ite (not (= X2 4)) 1 X35) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X42) X42) X37)) X35)) (= top.impl.usr.microwave_microwave_mode_logic_mode_a_0 top.impl.usr.chart_microwave_mode_logic_mode_a_0) (let ((X46 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 X46 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X45) X45) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) top.res.init_flag_a_0)))))))))))))))))))))))))))))))))))))))))))))))))))))) +(define-fun __node_trans_top_0 ((top.usr.KP_START_a_1 Bool) (top.usr.KP_CLEAR_a_1 Bool) (top.usr.KP_0_a_1 Bool) (top.usr.KP_1_a_1 Bool) (top.usr.KP_2_a_1 Bool) (top.usr.KP_3_a_1 Bool) (top.usr.KP_4_a_1 Bool) (top.usr.KP_5_a_1 Bool) (top.usr.KP_6_a_1 Bool) (top.usr.KP_7_a_1 Bool) (top.usr.KP_8_a_1 Bool) (top.usr.KP_9_a_1 Bool) (top.usr.DOOR_CLOSED_a_1 Bool) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.STEPS_TO_COOK_a_1 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 Bool) (top.impl.usr.KP_01_a_1 Bool) (top.impl.usr.KP_11_a_1 Bool) (top.impl.usr.KP_21_a_1 Bool) (top.impl.usr.KP_31_a_1 Bool) (top.impl.usr.KP_41_a_1 Bool) (top.impl.usr.KP_51_a_1 Bool) (top.impl.usr.KP_61_a_1 Bool) (top.impl.usr.KP_71_a_1 Bool) (top.impl.usr.KP_81_a_1 Bool) (top.impl.usr.KP_91_a_1 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_1 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_1 Int) (top.usr.KP_START_a_0 Bool) (top.usr.KP_CLEAR_a_0 Bool) (top.usr.KP_0_a_0 Bool) (top.usr.KP_1_a_0 Bool) (top.usr.KP_2_a_0 Bool) (top.usr.KP_3_a_0 Bool) (top.usr.KP_4_a_0 Bool) (top.usr.KP_5_a_0 Bool) (top.usr.KP_6_a_0 Bool) (top.usr.KP_7_a_0 Bool) (top.usr.KP_8_a_0 Bool) (top.usr.KP_9_a_0 Bool) (top.usr.DOOR_CLOSED_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.STEPS_TO_COOK_a_0 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) (top.impl.usr.KP_01_a_0 Bool) (top.impl.usr.KP_11_a_0 Bool) (top.impl.usr.KP_21_a_0 Bool) (top.impl.usr.KP_31_a_0 Bool) (top.impl.usr.KP_41_a_0 Bool) (top.impl.usr.KP_51_a_0 Bool) (top.impl.usr.KP_61_a_0 Bool) (top.impl.usr.KP_71_a_0 Bool) (top.impl.usr.KP_81_a_0 Bool) (top.impl.usr.KP_91_a_0 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int)) Bool + (let ((X1 top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0)) (let ((X2 top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 false top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0)) (let ((X3 (= X2 4))) (let ((X4 (and top.usr.KP_START_a_1 (not top.usr.KP_START_a_0)))) (let ((X5 (ite (not X4) 0 1))) (let ((X6 (ite (= 1 top.impl.usr.microwave_microwave_mode_logic_mode_a_0) true false))) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 X6) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (ite (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1) true (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 false top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0))) (= top.impl.usr.KP_91_a_1 top.usr.KP_9_a_1) (= top.impl.usr.KP_81_a_1 top.usr.KP_8_a_1) (= top.impl.usr.KP_71_a_1 top.usr.KP_7_a_1) (= top.impl.usr.KP_61_a_1 top.usr.KP_6_a_1) (= top.impl.usr.KP_51_a_1 top.usr.KP_5_a_1) (= top.impl.usr.KP_41_a_1 top.usr.KP_4_a_1) (= top.impl.usr.KP_31_a_1 top.usr.KP_3_a_1) (= top.impl.usr.KP_21_a_1 top.usr.KP_2_a_1) (= top.impl.usr.KP_11_a_1 top.usr.KP_1_a_1) (= top.impl.usr.KP_01_a_1 top.usr.KP_0_a_1) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite top.impl.usr.KP_01_a_1 0 (ite top.impl.usr.KP_11_a_1 1 (ite top.impl.usr.KP_21_a_1 2 (ite top.impl.usr.KP_31_a_1 3 (ite top.impl.usr.KP_41_a_1 4 (ite top.impl.usr.KP_51_a_1 5 (ite top.impl.usr.KP_61_a_1 6 (ite top.impl.usr.KP_71_a_1 7 (ite top.impl.usr.KP_81_a_1 8 (ite top.impl.usr.KP_91_a_1 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01_a_1 0 (ite top.impl.usr.KP_11_a_1 1 (ite top.impl.usr.KP_21_a_1 2 (ite top.impl.usr.KP_31_a_1 3 (ite top.impl.usr.KP_41_a_1 4 (ite top.impl.usr.KP_51_a_1 5 (ite top.impl.usr.KP_61_a_1 6 (ite top.impl.usr.KP_71_a_1 7 (ite top.impl.usr.KP_81_a_1 8 (ite top.impl.usr.KP_91_a_1 9 10)))))))))) 0)) (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 0 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 0 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.STEPS_TO_COOK_a_1 (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1)) 0 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 60)) 1) top.impl.usr.STEPS_TO_COOK_a_0))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK_a_1 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED_a_1) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK_a_1 X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 (and top.usr.KP_CLEAR_a_1 (not top.usr.KP_CLEAR_a_0)))) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 1) 60))) (let ((X34 X33)) (and (= top.usr.OK_a_1 (or (not (and X6 top.usr.KP_CLEAR_a_1)) (= X34 0))) (let ((X35 top.impl.usr.chart_microwave_mode_logic_mode_a_0)) (let ((X36 (ite X12 (ite (not (= X9 2)) 2 X35) X35))) (let ((X37 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X36) X36) X35))) (let ((X38 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X39 (ite X18 (ite (not (= X19 4)) 1 X37) X37))) (let ((X40 (ite X21 (ite (not (= X22 2)) 2 X39) X39))) (let ((X41 (ite X27 (ite (not (= X28 4)) 1 X40) X40))) (let ((X42 (ite X32 (ite (not (= X38 2)) 2 X41) X41))) (let ((X43 (ite X32 (ite (not (= X38 2)) 2 X38) X38))) (let ((X44 (and (= X43 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X45 (ite X44 (ite (= X43 2) 1 X43) X43))) (and (= top.impl.usr.chart_microwave_mode_logic_mode_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 (ite (not (= X2 4)) 1 X35) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X42) X42) X37)) X35)) (= top.impl.usr.microwave_microwave_mode_logic_mode_a_1 top.impl.usr.chart_microwave_mode_logic_mode_a_1) (let ((X46 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 X46 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X45) X45) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) (not top.res.init_flag_a_1)))))))))))))))))))))))))))))))))))))))))))))))))))))) +(synth-inv str_invariant ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int))) + +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int)) Bool + (let ((X1 0)) (let ((X2 0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep true) (let ((X3 (= X2 4))) (let ((X4 top.usr.KP_START)) (let ((X5 (ite (not X4) 0 1))) (and (= top.impl.usr.KP_91 top.usr.KP_9) (= top.impl.usr.KP_81 top.usr.KP_8) (= top.impl.usr.KP_71 top.usr.KP_7) (= top.impl.usr.KP_61 top.usr.KP_6) (= top.impl.usr.KP_51 top.usr.KP_5) (= top.impl.usr.KP_41 top.usr.KP_4) (= top.impl.usr.KP_31 top.usr.KP_3) (= top.impl.usr.KP_21 top.usr.KP_2) (= top.impl.usr.KP_11 top.usr.KP_1) (= top.impl.usr.KP_01 top.usr.KP_0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY (ite top.usr.KP_CLEAR 0 (ite (ite (<= (ite top.impl.usr.KP_01 0 (ite top.impl.usr.KP_11 1 (ite top.impl.usr.KP_21 2 (ite top.impl.usr.KP_31 3 (ite top.impl.usr.KP_41 4 (ite top.impl.usr.KP_51 5 (ite top.impl.usr.KP_61 6 (ite top.impl.usr.KP_71 7 (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01 0 (ite top.impl.usr.KP_11 1 (ite top.impl.usr.KP_21 2 (ite top.impl.usr.KP_31 3 (ite top.impl.usr.KP_41 4 (ite top.impl.usr.KP_51 5 (ite top.impl.usr.KP_61 6 (ite top.impl.usr.KP_71 7 (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) 0))) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY 0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY 0) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step true) (let ((X6 true)) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock X6) (= top.impl.usr.STEPS_TO_COOK (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock)) 0 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY 60)) 1))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 top.usr.KP_CLEAR)) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup___ true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining 1) 60))) (let ((X34 X33)) (and (= top.usr.OK (or (not (and X6 top.usr.KP_CLEAR)) (= X34 0))) (let ((X35 0)) (let ((X36 (ite X12 (ite (not (= X9 2)) 2 X35) X35))) (let ((X37 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X36) X36) X35))) (let ((X38 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X39 (ite X18 (ite (not (= X19 4)) 1 X37) X37))) (let ((X40 (ite X21 (ite (not (= X22 2)) 2 X39) X39))) (let ((X41 (ite X27 (ite (not (= X28 4)) 1 X40) X40))) (let ((X42 (ite X32 (ite (not (= X38 2)) 2 X41) X41))) (let ((X43 (ite X32 (ite (not (= X38 2)) 2 X38) X38))) (let ((X44 (and (= X43 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X45 (ite X44 (ite (= X43 2) 1 X43) X43))) (and (= top.impl.usr.chart_microwave_mode_logic_mode (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep (ite (not (= X2 4)) 1 X35) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X42) X42) X37)) X35)) (= top.impl.usr.microwave_microwave_mode_logic_mode top.impl.usr.chart_microwave_mode_logic_mode) (let ((X46 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep X46 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X45) X45) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) top.res.init_flag)))))))))))))))))))))))))))))))))))))))))))))))))))))) +(define-fun trans ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int) (top.usr.KP_START! Bool) (top.usr.KP_CLEAR! Bool) (top.usr.KP_0! Bool) (top.usr.KP_1! Bool) (top.usr.KP_2! Bool) (top.usr.KP_3! Bool) (top.usr.KP_4! Bool) (top.usr.KP_5! Bool) (top.usr.KP_6! Bool) (top.usr.KP_7! Bool) (top.usr.KP_8! Bool) (top.usr.KP_9! Bool) (top.usr.DOOR_CLOSED! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.STEPS_TO_COOK! Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! Bool) (top.impl.usr.KP_01! Bool) (top.impl.usr.KP_11! Bool) (top.impl.usr.KP_21! Bool) (top.impl.usr.KP_31! Bool) (top.impl.usr.KP_41! Bool) (top.impl.usr.KP_51! Bool) (top.impl.usr.KP_61! Bool) (top.impl.usr.KP_71! Bool) (top.impl.usr.KP_81! Bool) (top.impl.usr.KP_91! Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___! Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root! Int) (top.impl.usr.chart_microwave_mode_logic_mode! Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining! Int) (top.impl.usr.microwave_microwave_mode_logic_mode! Int)) Bool + (and (let ((X1 top.impl.usr.chart_microwave_mode_logic_steps_remaining)) (let ((X2 top.impl.usr.chart_microwave_mode_logic_final_state_states___root)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ false top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep)) (let ((X3 (= X2 4))) (let ((X4 (and top.usr.KP_START! (not top.usr.KP_START)))) (let ((X5 (ite (not X4) 0 1))) (let ((X6 (ite (= 1 top.impl.usr.microwave_microwave_mode_logic_mode) true false))) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! X6) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (ite (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!) true (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock false top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step))) (= top.impl.usr.KP_91! top.usr.KP_9!) (= top.impl.usr.KP_81! top.usr.KP_8!) (= top.impl.usr.KP_71! top.usr.KP_7!) (= top.impl.usr.KP_61! top.usr.KP_6!) (= top.impl.usr.KP_51! top.usr.KP_5!) (= top.impl.usr.KP_41! top.usr.KP_4!) (= top.impl.usr.KP_31! top.usr.KP_3!) (= top.impl.usr.KP_21! top.usr.KP_2!) (= top.impl.usr.KP_11! top.usr.KP_1!) (= top.impl.usr.KP_01! top.usr.KP_0!) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite top.impl.usr.KP_01! 0 (ite top.impl.usr.KP_11! 1 (ite top.impl.usr.KP_21! 2 (ite top.impl.usr.KP_31! 3 (ite top.impl.usr.KP_41! 4 (ite top.impl.usr.KP_51! 5 (ite top.impl.usr.KP_61! 6 (ite top.impl.usr.KP_71! 7 (ite top.impl.usr.KP_81! 8 (ite top.impl.usr.KP_91! 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01! 0 (ite top.impl.usr.KP_11! 1 (ite top.impl.usr.KP_21! 2 (ite top.impl.usr.KP_31! 3 (ite top.impl.usr.KP_41! 4 (ite top.impl.usr.KP_51! 5 (ite top.impl.usr.KP_61! 6 (ite top.impl.usr.KP_71! 7 (ite top.impl.usr.KP_81! 8 (ite top.impl.usr.KP_91! 9 10)))))))))) 0)) (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! 0 (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! 0 (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.STEPS_TO_COOK! (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!)) 0 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! 60)) 1) top.impl.usr.STEPS_TO_COOK))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK! 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED!) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK! X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 (and top.usr.KP_CLEAR! (not top.usr.KP_CLEAR)))) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup___! true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining! 1) 60))) (let ((X34 X33)) (and (= top.usr.OK! (or (not (and X6 top.usr.KP_CLEAR!)) (= X34 0))) (let ((X35 top.impl.usr.chart_microwave_mode_logic_mode)) (let ((X36 (ite X12 (ite (not (= X9 2)) 2 X35) X35))) (let ((X37 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X36) X36) X35))) (let ((X38 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X39 (ite X18 (ite (not (= X19 4)) 1 X37) X37))) (let ((X40 (ite X21 (ite (not (= X22 2)) 2 X39) X39))) (let ((X41 (ite X27 (ite (not (= X28 4)) 1 X40) X40))) (let ((X42 (ite X32 (ite (not (= X38 2)) 2 X41) X41))) (let ((X43 (ite X32 (ite (not (= X38 2)) 2 X38) X38))) (let ((X44 (and (= X43 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X45 (ite X44 (ite (= X43 2) 1 X43) X43))) (and (= top.impl.usr.chart_microwave_mode_logic_mode! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! (ite (not (= X2 4)) 1 X35) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X42) X42) X37)) X35)) (= top.impl.usr.microwave_microwave_mode_logic_mode! top.impl.usr.chart_microwave_mode_logic_mode!) (let ((X46 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! X46 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X45) X45) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) (not top.res.init_flag!))))))))))))))))))))))))))))))))))))))))))))))))))))) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/microwave21.sl b/benchmarks/LIA/Lustre/microwave21.sl index 7a04554..425c505 100644 --- a/benchmarks/LIA/Lustre/microwave21.sl +++ b/benchmarks/LIA/Lustre/microwave21.sl @@ -1,2685 +1,25 @@ (set-logic LIA) -(define-fun - __node_init_top_0 ( - (top.usr.KP_START_a_0 Bool) - (top.usr.KP_CLEAR_a_0 Bool) - (top.usr.KP_0_a_0 Bool) - (top.usr.KP_1_a_0 Bool) - (top.usr.KP_2_a_0 Bool) - (top.usr.KP_3_a_0 Bool) - (top.usr.KP_4_a_0 Bool) - (top.usr.KP_5_a_0 Bool) - (top.usr.KP_6_a_0 Bool) - (top.usr.KP_7_a_0 Bool) - (top.usr.KP_8_a_0 Bool) - (top.usr.KP_9_a_0 Bool) - (top.usr.DOOR_CLOSED_a_0 Bool) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.STEPS_TO_COOK_a_0 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) - (top.impl.usr.KP_01_a_0 Bool) - (top.impl.usr.KP_11_a_0 Bool) - (top.impl.usr.KP_21_a_0 Bool) - (top.impl.usr.KP_31_a_0 Bool) - (top.impl.usr.KP_41_a_0 Bool) - (top.impl.usr.KP_51_a_0 Bool) - (top.impl.usr.KP_61_a_0 Bool) - (top.impl.usr.KP_71_a_0 Bool) - (top.impl.usr.KP_81_a_0 Bool) - (top.impl.usr.KP_91_a_0 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int) - ) Bool - - (let - ((X1 Int 0)) - (let - ((X2 Int 0)) - (and - (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 true) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool top.usr.KP_START_a_0)) - (let - ((X5 Int (ite (not X4) 0 1))) - (and - (= top.impl.usr.KP_91_a_0 top.usr.KP_9_a_0) - (= top.impl.usr.KP_81_a_0 top.usr.KP_8_a_0) - (= top.impl.usr.KP_71_a_0 top.usr.KP_7_a_0) - (= top.impl.usr.KP_61_a_0 top.usr.KP_6_a_0) - (= top.impl.usr.KP_51_a_0 top.usr.KP_5_a_0) - (= top.impl.usr.KP_41_a_0 top.usr.KP_4_a_0) - (= top.impl.usr.KP_31_a_0 top.usr.KP_3_a_0) - (= top.impl.usr.KP_21_a_0 top.usr.KP_2_a_0) - (= top.impl.usr.KP_11_a_0 top.usr.KP_1_a_0) - (= top.impl.usr.KP_01_a_0 top.usr.KP_0_a_0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - (ite - top.usr.KP_CLEAR_a_0 - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01_a_0 - 0 - (ite - top.impl.usr.KP_11_a_0 - 1 - (ite - top.impl.usr.KP_21_a_0 - 2 - (ite - top.impl.usr.KP_31_a_0 - 3 - (ite - top.impl.usr.KP_41_a_0 - 4 - (ite - top.impl.usr.KP_51_a_0 - 5 - (ite - top.impl.usr.KP_61_a_0 - 6 - (ite - top.impl.usr.KP_71_a_0 - 7 - (ite - top.impl.usr.KP_81_a_0 - 8 - (ite top.impl.usr.KP_91_a_0 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01_a_0 - 0 - (ite - top.impl.usr.KP_11_a_0 - 1 - (ite - top.impl.usr.KP_21_a_0 - 2 - (ite - top.impl.usr.KP_31_a_0 - 3 - (ite - top.impl.usr.KP_41_a_0 - 4 - (ite - top.impl.usr.KP_51_a_0 - 5 - (ite - top.impl.usr.KP_61_a_0 - 6 - (ite - top.impl.usr.KP_71_a_0 - 7 - (ite - top.impl.usr.KP_81_a_0 - 8 - (ite top.impl.usr.KP_91_a_0 9 10)))))))))) - 0))) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - 0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 0) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 - true) - (let - ((X6 Bool true)) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 - X6) - (= - top.impl.usr.STEPS_TO_COOK_a_0 - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0)) - 0 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 60)) - 1))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK_a_0 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED_a_0) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK_a_0 X1))) - (let - ((X18 Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 Bool top.usr.KP_CLEAR_a_0)) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - 1) - 60))) - (let - ((X34 Int X33)) - (and - (= - top.usr.OK_a_0 - (or - (not - (and X6 (not top.usr.KP_CLEAR_a_0))) - (or - (not - (or - (or - (or - (or - (or - (or - (or - (or - (or - top.usr.KP_1_a_0 - top.usr.KP_2_a_0) - top.usr.KP_3_a_0) - top.usr.KP_4_a_0) - top.usr.KP_5_a_0) - top.usr.KP_6_a_0) - top.usr.KP_7_a_0) - top.usr.KP_8_a_0) - top.usr.KP_9_a_0) - top.usr.KP_0_a_0)) - (= - X34 - (div - (div - top.impl.usr.STEPS_TO_COOK_a_0 - 1) - 60))))) - (let - ((X35 Int 0)) - (let - ((X36 - Int (ite - X12 - (ite (not (= X9 2)) 2 X35) - X35))) - (let - ((X37 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X36) - X36) - X35))) - (let - ((X38 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X39 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X37) - X37))) - (let - ((X40 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X39) - X39))) - (let - ((X41 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X41) - X41))) - (let - ((X43 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X38) - X38))) - (let - ((X44 - Bool (and - (= X43 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not - (= X11 0)) - true - false))) - (not - (or X32 X31)))))) - (let - ((X45 - Int (ite - X44 - (ite - (= X43 2) - 1 - X43) - X43))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - (ite - (not (= X2 4)) - 1 - X35) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X42) - X42) - X37)) - X35)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode_a_0 - top.impl.usr.chart_microwave_mode_logic_mode_a_0) - (let - ((X46 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - X46 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X45) - X45) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - top.res.init_flag_a_0))))))))))))))))))))))))))))))))))))))))))))))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.KP_START_a_1 Bool) - (top.usr.KP_CLEAR_a_1 Bool) - (top.usr.KP_0_a_1 Bool) - (top.usr.KP_1_a_1 Bool) - (top.usr.KP_2_a_1 Bool) - (top.usr.KP_3_a_1 Bool) - (top.usr.KP_4_a_1 Bool) - (top.usr.KP_5_a_1 Bool) - (top.usr.KP_6_a_1 Bool) - (top.usr.KP_7_a_1 Bool) - (top.usr.KP_8_a_1 Bool) - (top.usr.KP_9_a_1 Bool) - (top.usr.DOOR_CLOSED_a_1 Bool) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.STEPS_TO_COOK_a_1 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 Bool) - (top.impl.usr.KP_01_a_1 Bool) - (top.impl.usr.KP_11_a_1 Bool) - (top.impl.usr.KP_21_a_1 Bool) - (top.impl.usr.KP_31_a_1 Bool) - (top.impl.usr.KP_41_a_1 Bool) - (top.impl.usr.KP_51_a_1 Bool) - (top.impl.usr.KP_61_a_1 Bool) - (top.impl.usr.KP_71_a_1 Bool) - (top.impl.usr.KP_81_a_1 Bool) - (top.impl.usr.KP_91_a_1 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_1 Int) - (top.usr.KP_START_a_0 Bool) - (top.usr.KP_CLEAR_a_0 Bool) - (top.usr.KP_0_a_0 Bool) - (top.usr.KP_1_a_0 Bool) - (top.usr.KP_2_a_0 Bool) - (top.usr.KP_3_a_0 Bool) - (top.usr.KP_4_a_0 Bool) - (top.usr.KP_5_a_0 Bool) - (top.usr.KP_6_a_0 Bool) - (top.usr.KP_7_a_0 Bool) - (top.usr.KP_8_a_0 Bool) - (top.usr.KP_9_a_0 Bool) - (top.usr.DOOR_CLOSED_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.STEPS_TO_COOK_a_0 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) - (top.impl.usr.KP_01_a_0 Bool) - (top.impl.usr.KP_11_a_0 Bool) - (top.impl.usr.KP_21_a_0 Bool) - (top.impl.usr.KP_31_a_0 Bool) - (top.impl.usr.KP_41_a_0 Bool) - (top.impl.usr.KP_51_a_0 Bool) - (top.impl.usr.KP_61_a_0 Bool) - (top.impl.usr.KP_71_a_0 Bool) - (top.impl.usr.KP_81_a_0 Bool) - (top.impl.usr.KP_91_a_0 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int) - ) Bool - - (let - ((X1 Int top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0)) - (let - ((X2 - Int top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0)) - (and - (= - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - false - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0)) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool (and top.usr.KP_START_a_1 (not top.usr.KP_START_a_0)))) - (let - ((X5 Int (ite (not X4) 0 1))) - (let - ((X6 - Bool (ite - (= 1 top.impl.usr.microwave_microwave_mode_logic_mode_a_0) - true - false))) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - X6) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (ite - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1) - true - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 - false - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0))) - (= top.impl.usr.KP_91_a_1 top.usr.KP_9_a_1) - (= top.impl.usr.KP_81_a_1 top.usr.KP_8_a_1) - (= top.impl.usr.KP_71_a_1 top.usr.KP_7_a_1) - (= top.impl.usr.KP_61_a_1 top.usr.KP_6_a_1) - (= top.impl.usr.KP_51_a_1 top.usr.KP_5_a_1) - (= top.impl.usr.KP_41_a_1 top.usr.KP_4_a_1) - (= top.impl.usr.KP_31_a_1 top.usr.KP_3_a_1) - (= top.impl.usr.KP_21_a_1 top.usr.KP_2_a_1) - (= top.impl.usr.KP_11_a_1 top.usr.KP_1_a_1) - (= top.impl.usr.KP_01_a_1 top.usr.KP_0_a_1) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01_a_1 - 0 - (ite - top.impl.usr.KP_11_a_1 - 1 - (ite - top.impl.usr.KP_21_a_1 - 2 - (ite - top.impl.usr.KP_31_a_1 - 3 - (ite - top.impl.usr.KP_41_a_1 - 4 - (ite - top.impl.usr.KP_51_a_1 - 5 - (ite - top.impl.usr.KP_61_a_1 - 6 - (ite - top.impl.usr.KP_71_a_1 - 7 - (ite - top.impl.usr.KP_81_a_1 - 8 - (ite top.impl.usr.KP_91_a_1 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01_a_1 - 0 - (ite - top.impl.usr.KP_11_a_1 - 1 - (ite - top.impl.usr.KP_21_a_1 - 2 - (ite - top.impl.usr.KP_31_a_1 - 3 - (ite - top.impl.usr.KP_41_a_1 - 4 - (ite - top.impl.usr.KP_51_a_1 - 5 - (ite - top.impl.usr.KP_61_a_1 - 6 - (ite - top.impl.usr.KP_71_a_1 - 7 - (ite - top.impl.usr.KP_81_a_1 - 8 - (ite top.impl.usr.KP_91_a_1 9 10)))))))))) - 0)) - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and - top.impl.usr.KP_71_a_1 - (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and - top.impl.usr.KP_81_a_1 - (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - 0 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and - top.impl.usr.KP_71_a_1 - (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and - top.impl.usr.KP_81_a_1 - (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - 0 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and - top.impl.usr.KP_71_a_1 - (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and - top.impl.usr.KP_81_a_1 - (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.STEPS_TO_COOK_a_1 - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1)) - 0 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 - 60)) - 1) - top.impl.usr.STEPS_TO_COOK_a_0))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK_a_1 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED_a_1) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK_a_1 X1))) - (let - ((X18 Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 - Bool (and - top.usr.KP_CLEAR_a_1 - (not top.usr.KP_CLEAR_a_0)))) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - 1) - 60))) - (let - ((X34 Int X33)) - (and - (= - top.usr.OK_a_1 - (or - (not - (and X6 (not top.usr.KP_CLEAR_a_1))) - (or - (not - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - top.usr.KP_1_a_1 - (not top.usr.KP_1_a_0)) - (and - top.usr.KP_2_a_1 - (not top.usr.KP_2_a_0))) - (and - top.usr.KP_3_a_1 - (not top.usr.KP_3_a_0))) - (and - top.usr.KP_4_a_1 - (not top.usr.KP_4_a_0))) - (and - top.usr.KP_5_a_1 - (not top.usr.KP_5_a_0))) - (and - top.usr.KP_6_a_1 - (not top.usr.KP_6_a_0))) - (and - top.usr.KP_7_a_1 - (not top.usr.KP_7_a_0))) - (and - top.usr.KP_8_a_1 - (not top.usr.KP_8_a_0))) - (and - top.usr.KP_9_a_1 - (not top.usr.KP_9_a_0))) - (and - top.usr.KP_0_a_1 - (not top.usr.KP_0_a_0)))) - (= - X34 - (div - (div - top.impl.usr.STEPS_TO_COOK_a_1 - 1) - 60))))) - (let - ((X35 - Int top.impl.usr.chart_microwave_mode_logic_mode_a_0)) - (let - ((X36 - Int (ite - X12 - (ite (not (= X9 2)) 2 X35) - X35))) - (let - ((X37 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X36) - X36) - X35))) - (let - ((X38 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X39 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X37) - X37))) - (let - ((X40 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X39) - X39))) - (let - ((X41 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X41) - X41))) - (let - ((X43 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X38) - X38))) - (let - ((X44 - Bool (and - (= X43 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not (= X11 0)) - true - false))) - (not (or X32 X31)))))) - (let - ((X45 - Int (ite - X44 - (ite - (= X43 2) - 1 - X43) - X43))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - (ite - (not (= X2 4)) - 1 - X35) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X42) - X42) - X37)) - X35)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode_a_1 - top.impl.usr.chart_microwave_mode_logic_mode_a_1) - (let - ((X46 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - X46 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X45) - X45) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - (not - top.res.init_flag_a_1))))))))))))))))))))))))))))))))))))))))))))))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) -)) - -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.KP_START Bool) -(declare-primed-var top.usr.KP_CLEAR Bool) -(declare-primed-var top.usr.KP_0 Bool) -(declare-primed-var top.usr.KP_1 Bool) -(declare-primed-var top.usr.KP_2 Bool) -(declare-primed-var top.usr.KP_3 Bool) -(declare-primed-var top.usr.KP_4 Bool) -(declare-primed-var top.usr.KP_5 Bool) -(declare-primed-var top.usr.KP_6 Bool) -(declare-primed-var top.usr.KP_7 Bool) -(declare-primed-var top.usr.KP_8 Bool) -(declare-primed-var top.usr.KP_9 Bool) -(declare-primed-var top.usr.DOOR_CLOSED Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.STEPS_TO_COOK Int) -(declare-primed-var top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) -(declare-primed-var top.impl.usr.KP_01 Bool) -(declare-primed-var top.impl.usr.KP_11 Bool) -(declare-primed-var top.impl.usr.KP_21 Bool) -(declare-primed-var top.impl.usr.KP_31 Bool) -(declare-primed-var top.impl.usr.KP_41 Bool) -(declare-primed-var top.impl.usr.KP_51 Bool) -(declare-primed-var top.impl.usr.KP_61 Bool) -(declare-primed-var top.impl.usr.KP_71 Bool) -(declare-primed-var top.impl.usr.KP_81 Bool) -(declare-primed-var top.impl.usr.KP_91 Bool) -(declare-primed-var top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_mode Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) -(declare-primed-var top.impl.usr.microwave_microwave_mode_logic_mode Int) - -(define-fun - init ( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - ) Bool - - (let - ((X1 Int 0)) - (let - ((X2 Int 0)) - (and - (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep true) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool top.usr.KP_START)) - (let - ((X5 Int (ite (not X4) 0 1))) - (and - (= top.impl.usr.KP_91 top.usr.KP_9) - (= top.impl.usr.KP_81 top.usr.KP_8) - (= top.impl.usr.KP_71 top.usr.KP_7) - (= top.impl.usr.KP_61 top.usr.KP_6) - (= top.impl.usr.KP_51 top.usr.KP_5) - (= top.impl.usr.KP_41 top.usr.KP_4) - (= top.impl.usr.KP_31 top.usr.KP_3) - (= top.impl.usr.KP_21 top.usr.KP_2) - (= top.impl.usr.KP_11 top.usr.KP_1) - (= top.impl.usr.KP_01 top.usr.KP_0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - (ite - top.usr.KP_CLEAR - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01 - 0 - (ite - top.impl.usr.KP_11 - 1 - (ite - top.impl.usr.KP_21 - 2 - (ite - top.impl.usr.KP_31 - 3 - (ite - top.impl.usr.KP_41 - 4 - (ite - top.impl.usr.KP_51 - 5 - (ite - top.impl.usr.KP_61 - 6 - (ite - top.impl.usr.KP_71 - 7 - (ite - top.impl.usr.KP_81 - 8 - (ite top.impl.usr.KP_91 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01 - 0 - (ite - top.impl.usr.KP_11 - 1 - (ite - top.impl.usr.KP_21 - 2 - (ite - top.impl.usr.KP_31 - 3 - (ite - top.impl.usr.KP_41 - 4 - (ite - top.impl.usr.KP_51 - 5 - (ite - top.impl.usr.KP_61 - 6 - (ite - top.impl.usr.KP_71 - 7 - (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) - 0))) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - 0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY - 0) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step - true) - (let - ((X6 Bool true)) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock - X6) - (= - top.impl.usr.STEPS_TO_COOK - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock)) - 0 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY - 60)) - 1))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK X1))) - (let - ((X18 Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 Bool top.usr.KP_CLEAR)) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup___ - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining - 1) - 60))) - (let - ((X34 Int X33)) - (and - (= - top.usr.OK - (or - (not - (and X6 (not top.usr.KP_CLEAR))) - (or - (not - (or - (or - (or - (or - (or - (or - (or - (or - (or - top.usr.KP_1 - top.usr.KP_2) - top.usr.KP_3) - top.usr.KP_4) - top.usr.KP_5) - top.usr.KP_6) - top.usr.KP_7) - top.usr.KP_8) - top.usr.KP_9) - top.usr.KP_0)) - (= - X34 - (div - (div - top.impl.usr.STEPS_TO_COOK - 1) - 60))))) - (let - ((X35 Int 0)) - (let - ((X36 - Int (ite - X12 - (ite (not (= X9 2)) 2 X35) - X35))) - (let - ((X37 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X36) - X36) - X35))) - (let - ((X38 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X39 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X37) - X37))) - (let - ((X40 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X39) - X39))) - (let - ((X41 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X41) - X41))) - (let - ((X43 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X38) - X38))) - (let - ((X44 - Bool (and - (= X43 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not - (= X11 0)) - true - false))) - (not - (or X32 X31)))))) - (let - ((X45 - Int (ite - X44 - (ite - (= X43 2) - 1 - X43) - X43))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - (ite - (not (= X2 4)) - 1 - X35) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X42) - X42) - X37)) - X35)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode - top.impl.usr.chart_microwave_mode_logic_mode) - (let - ((X46 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - X46 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X45) - X45) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - top.res.init_flag))))))))))))))))))))))))))))))))))))))))))))))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - - ;; Next state. - (top.usr.KP_START! Bool) - (top.usr.KP_CLEAR! Bool) - (top.usr.KP_0! Bool) - (top.usr.KP_1! Bool) - (top.usr.KP_2! Bool) - (top.usr.KP_3! Bool) - (top.usr.KP_4! Bool) - (top.usr.KP_5! Bool) - (top.usr.KP_6! Bool) - (top.usr.KP_7! Bool) - (top.usr.KP_8! Bool) - (top.usr.KP_9! Bool) - (top.usr.DOOR_CLOSED! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.STEPS_TO_COOK! Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! Bool) - (top.impl.usr.KP_01! Bool) - (top.impl.usr.KP_11! Bool) - (top.impl.usr.KP_21! Bool) - (top.impl.usr.KP_31! Bool) - (top.impl.usr.KP_41! Bool) - (top.impl.usr.KP_51! Bool) - (top.impl.usr.KP_61! Bool) - (top.impl.usr.KP_71! Bool) - (top.impl.usr.KP_81! Bool) - (top.impl.usr.KP_91! Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___! Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root! Int) - (top.impl.usr.chart_microwave_mode_logic_mode! Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining! Int) - (top.impl.usr.microwave_microwave_mode_logic_mode! Int) - - ) Bool - - (and - (let - ((X1 Int top.impl.usr.chart_microwave_mode_logic_steps_remaining)) - (let - ((X2 - Int top.impl.usr.chart_microwave_mode_logic_final_state_states___root)) - (and - (= - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - false - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep)) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool (and top.usr.KP_START! (not top.usr.KP_START)))) - (let - ((X5 Int (ite (not X4) 0 1))) - (let - ((X6 - Bool (ite - (= 1 top.impl.usr.microwave_microwave_mode_logic_mode) - true - false))) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - X6) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (ite - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!) - true - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock - false - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step))) - (= top.impl.usr.KP_91! top.usr.KP_9!) - (= top.impl.usr.KP_81! top.usr.KP_8!) - (= top.impl.usr.KP_71! top.usr.KP_7!) - (= top.impl.usr.KP_61! top.usr.KP_6!) - (= top.impl.usr.KP_51! top.usr.KP_5!) - (= top.impl.usr.KP_41! top.usr.KP_4!) - (= top.impl.usr.KP_31! top.usr.KP_3!) - (= top.impl.usr.KP_21! top.usr.KP_2!) - (= top.impl.usr.KP_11! top.usr.KP_1!) - (= top.impl.usr.KP_01! top.usr.KP_0!) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01! - 0 - (ite - top.impl.usr.KP_11! - 1 - (ite - top.impl.usr.KP_21! - 2 - (ite - top.impl.usr.KP_31! - 3 - (ite - top.impl.usr.KP_41! - 4 - (ite - top.impl.usr.KP_51! - 5 - (ite - top.impl.usr.KP_61! - 6 - (ite - top.impl.usr.KP_71! - 7 - (ite - top.impl.usr.KP_81! - 8 - (ite top.impl.usr.KP_91! 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01! - 0 - (ite - top.impl.usr.KP_11! - 1 - (ite - top.impl.usr.KP_21! - 2 - (ite - top.impl.usr.KP_31! - 3 - (ite - top.impl.usr.KP_41! - 4 - (ite - top.impl.usr.KP_51! - 5 - (ite - top.impl.usr.KP_61! - 6 - (ite - top.impl.usr.KP_71! - 7 - (ite - top.impl.usr.KP_81! - 8 - (ite top.impl.usr.KP_91! 9 10)))))))))) - 0)) - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and - top.impl.usr.KP_91! - (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - 0 - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and - top.impl.usr.KP_91! - (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - 0 - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and - top.impl.usr.KP_91! - (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.STEPS_TO_COOK! - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!)) - 0 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! - 60)) - 1) - top.impl.usr.STEPS_TO_COOK))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK! 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED!) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK! X1))) - (let - ((X18 Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 - Bool (and - top.usr.KP_CLEAR! - (not top.usr.KP_CLEAR)))) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup___! - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - 1) - 60))) - (let - ((X34 Int X33)) - (and - (= - top.usr.OK! - (or - (not - (and X6 (not top.usr.KP_CLEAR!))) - (or - (not - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - top.usr.KP_1! - (not top.usr.KP_1)) - (and - top.usr.KP_2! - (not top.usr.KP_2))) - (and - top.usr.KP_3! - (not top.usr.KP_3))) - (and - top.usr.KP_4! - (not top.usr.KP_4))) - (and - top.usr.KP_5! - (not top.usr.KP_5))) - (and - top.usr.KP_6! - (not top.usr.KP_6))) - (and - top.usr.KP_7! - (not top.usr.KP_7))) - (and - top.usr.KP_8! - (not top.usr.KP_8))) - (and - top.usr.KP_9! - (not top.usr.KP_9))) - (and - top.usr.KP_0! - (not top.usr.KP_0)))) - (= - X34 - (div - (div - top.impl.usr.STEPS_TO_COOK! - 1) - 60))))) - (let - ((X35 - Int top.impl.usr.chart_microwave_mode_logic_mode)) - (let - ((X36 - Int (ite - X12 - (ite (not (= X9 2)) 2 X35) - X35))) - (let - ((X37 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X36) - X36) - X35))) - (let - ((X38 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X39 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X37) - X37))) - (let - ((X40 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X39) - X39))) - (let - ((X41 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X41) - X41))) - (let - ((X43 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X38) - X38))) - (let - ((X44 - Bool (and - (= X43 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not - (= X11 0)) - true - false))) - (not - (or X32 X31)))))) - (let - ((X45 - Int (ite - X44 - (ite - (= X43 2) - 1 - X43) - X43))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - (ite - (not (= X2 4)) - 1 - X35) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X42) - X42) - X37)) - X35)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode! - top.impl.usr.chart_microwave_mode_logic_mode!) - (let - ((X46 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - X46 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X45) - X45) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - (not - top.res.init_flag!))))))))))))))))))))))))))))))))))))))))))))))))))))) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - ) Bool - - top.usr.OK -) +(define-fun __node_init_top_0 ((top.usr.KP_START_a_0 Bool) (top.usr.KP_CLEAR_a_0 Bool) (top.usr.KP_0_a_0 Bool) (top.usr.KP_1_a_0 Bool) (top.usr.KP_2_a_0 Bool) (top.usr.KP_3_a_0 Bool) (top.usr.KP_4_a_0 Bool) (top.usr.KP_5_a_0 Bool) (top.usr.KP_6_a_0 Bool) (top.usr.KP_7_a_0 Bool) (top.usr.KP_8_a_0 Bool) (top.usr.KP_9_a_0 Bool) (top.usr.DOOR_CLOSED_a_0 Bool) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.STEPS_TO_COOK_a_0 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) (top.impl.usr.KP_01_a_0 Bool) (top.impl.usr.KP_11_a_0 Bool) (top.impl.usr.KP_21_a_0 Bool) (top.impl.usr.KP_31_a_0 Bool) (top.impl.usr.KP_41_a_0 Bool) (top.impl.usr.KP_51_a_0 Bool) (top.impl.usr.KP_61_a_0 Bool) (top.impl.usr.KP_71_a_0 Bool) (top.impl.usr.KP_81_a_0 Bool) (top.impl.usr.KP_91_a_0 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int)) Bool + (let ((X1 0)) (let ((X2 0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 true) (let ((X3 (= X2 4))) (let ((X4 top.usr.KP_START_a_0)) (let ((X5 (ite (not X4) 0 1))) (and (= top.impl.usr.KP_91_a_0 top.usr.KP_9_a_0) (= top.impl.usr.KP_81_a_0 top.usr.KP_8_a_0) (= top.impl.usr.KP_71_a_0 top.usr.KP_7_a_0) (= top.impl.usr.KP_61_a_0 top.usr.KP_6_a_0) (= top.impl.usr.KP_51_a_0 top.usr.KP_5_a_0) (= top.impl.usr.KP_41_a_0 top.usr.KP_4_a_0) (= top.impl.usr.KP_31_a_0 top.usr.KP_3_a_0) (= top.impl.usr.KP_21_a_0 top.usr.KP_2_a_0) (= top.impl.usr.KP_11_a_0 top.usr.KP_1_a_0) (= top.impl.usr.KP_01_a_0 top.usr.KP_0_a_0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 (ite top.usr.KP_CLEAR_a_0 0 (ite (ite (<= (ite top.impl.usr.KP_01_a_0 0 (ite top.impl.usr.KP_11_a_0 1 (ite top.impl.usr.KP_21_a_0 2 (ite top.impl.usr.KP_31_a_0 3 (ite top.impl.usr.KP_41_a_0 4 (ite top.impl.usr.KP_51_a_0 5 (ite top.impl.usr.KP_61_a_0 6 (ite top.impl.usr.KP_71_a_0 7 (ite top.impl.usr.KP_81_a_0 8 (ite top.impl.usr.KP_91_a_0 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01_a_0 0 (ite top.impl.usr.KP_11_a_0 1 (ite top.impl.usr.KP_21_a_0 2 (ite top.impl.usr.KP_31_a_0 3 (ite top.impl.usr.KP_41_a_0 4 (ite top.impl.usr.KP_51_a_0 5 (ite top.impl.usr.KP_61_a_0 6 (ite top.impl.usr.KP_71_a_0 7 (ite top.impl.usr.KP_81_a_0 8 (ite top.impl.usr.KP_91_a_0 9 10)))))))))) 0))) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 0) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 true) (let ((X6 true)) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 X6) (= top.impl.usr.STEPS_TO_COOK_a_0 (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0)) 0 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 60)) 1))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK_a_0 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED_a_0) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK_a_0 X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 top.usr.KP_CLEAR_a_0)) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 1) 60))) (let ((X34 X33)) (and (= top.usr.OK_a_0 (or (not (and X6 (not top.usr.KP_CLEAR_a_0))) (or (not (or (or (or (or (or (or (or (or (or top.usr.KP_1_a_0 top.usr.KP_2_a_0) top.usr.KP_3_a_0) top.usr.KP_4_a_0) top.usr.KP_5_a_0) top.usr.KP_6_a_0) top.usr.KP_7_a_0) top.usr.KP_8_a_0) top.usr.KP_9_a_0) top.usr.KP_0_a_0)) (= X34 (div (div top.impl.usr.STEPS_TO_COOK_a_0 1) 60))))) (let ((X35 0)) (let ((X36 (ite X12 (ite (not (= X9 2)) 2 X35) X35))) (let ((X37 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X36) X36) X35))) (let ((X38 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X39 (ite X18 (ite (not (= X19 4)) 1 X37) X37))) (let ((X40 (ite X21 (ite (not (= X22 2)) 2 X39) X39))) (let ((X41 (ite X27 (ite (not (= X28 4)) 1 X40) X40))) (let ((X42 (ite X32 (ite (not (= X38 2)) 2 X41) X41))) (let ((X43 (ite X32 (ite (not (= X38 2)) 2 X38) X38))) (let ((X44 (and (= X43 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X45 (ite X44 (ite (= X43 2) 1 X43) X43))) (and (= top.impl.usr.chart_microwave_mode_logic_mode_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 (ite (not (= X2 4)) 1 X35) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X42) X42) X37)) X35)) (= top.impl.usr.microwave_microwave_mode_logic_mode_a_0 top.impl.usr.chart_microwave_mode_logic_mode_a_0) (let ((X46 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 X46 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X45) X45) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) top.res.init_flag_a_0)))))))))))))))))))))))))))))))))))))))))))))))))))))) +(define-fun __node_trans_top_0 ((top.usr.KP_START_a_1 Bool) (top.usr.KP_CLEAR_a_1 Bool) (top.usr.KP_0_a_1 Bool) (top.usr.KP_1_a_1 Bool) (top.usr.KP_2_a_1 Bool) (top.usr.KP_3_a_1 Bool) (top.usr.KP_4_a_1 Bool) (top.usr.KP_5_a_1 Bool) (top.usr.KP_6_a_1 Bool) (top.usr.KP_7_a_1 Bool) (top.usr.KP_8_a_1 Bool) (top.usr.KP_9_a_1 Bool) (top.usr.DOOR_CLOSED_a_1 Bool) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.STEPS_TO_COOK_a_1 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 Bool) (top.impl.usr.KP_01_a_1 Bool) (top.impl.usr.KP_11_a_1 Bool) (top.impl.usr.KP_21_a_1 Bool) (top.impl.usr.KP_31_a_1 Bool) (top.impl.usr.KP_41_a_1 Bool) (top.impl.usr.KP_51_a_1 Bool) (top.impl.usr.KP_61_a_1 Bool) (top.impl.usr.KP_71_a_1 Bool) (top.impl.usr.KP_81_a_1 Bool) (top.impl.usr.KP_91_a_1 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_1 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_1 Int) (top.usr.KP_START_a_0 Bool) (top.usr.KP_CLEAR_a_0 Bool) (top.usr.KP_0_a_0 Bool) (top.usr.KP_1_a_0 Bool) (top.usr.KP_2_a_0 Bool) (top.usr.KP_3_a_0 Bool) (top.usr.KP_4_a_0 Bool) (top.usr.KP_5_a_0 Bool) (top.usr.KP_6_a_0 Bool) (top.usr.KP_7_a_0 Bool) (top.usr.KP_8_a_0 Bool) (top.usr.KP_9_a_0 Bool) (top.usr.DOOR_CLOSED_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.STEPS_TO_COOK_a_0 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) (top.impl.usr.KP_01_a_0 Bool) (top.impl.usr.KP_11_a_0 Bool) (top.impl.usr.KP_21_a_0 Bool) (top.impl.usr.KP_31_a_0 Bool) (top.impl.usr.KP_41_a_0 Bool) (top.impl.usr.KP_51_a_0 Bool) (top.impl.usr.KP_61_a_0 Bool) (top.impl.usr.KP_71_a_0 Bool) (top.impl.usr.KP_81_a_0 Bool) (top.impl.usr.KP_91_a_0 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int)) Bool + (let ((X1 top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0)) (let ((X2 top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 false top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0)) (let ((X3 (= X2 4))) (let ((X4 (and top.usr.KP_START_a_1 (not top.usr.KP_START_a_0)))) (let ((X5 (ite (not X4) 0 1))) (let ((X6 (ite (= 1 top.impl.usr.microwave_microwave_mode_logic_mode_a_0) true false))) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 X6) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (ite (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1) true (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 false top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0))) (= top.impl.usr.KP_91_a_1 top.usr.KP_9_a_1) (= top.impl.usr.KP_81_a_1 top.usr.KP_8_a_1) (= top.impl.usr.KP_71_a_1 top.usr.KP_7_a_1) (= top.impl.usr.KP_61_a_1 top.usr.KP_6_a_1) (= top.impl.usr.KP_51_a_1 top.usr.KP_5_a_1) (= top.impl.usr.KP_41_a_1 top.usr.KP_4_a_1) (= top.impl.usr.KP_31_a_1 top.usr.KP_3_a_1) (= top.impl.usr.KP_21_a_1 top.usr.KP_2_a_1) (= top.impl.usr.KP_11_a_1 top.usr.KP_1_a_1) (= top.impl.usr.KP_01_a_1 top.usr.KP_0_a_1) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite top.impl.usr.KP_01_a_1 0 (ite top.impl.usr.KP_11_a_1 1 (ite top.impl.usr.KP_21_a_1 2 (ite top.impl.usr.KP_31_a_1 3 (ite top.impl.usr.KP_41_a_1 4 (ite top.impl.usr.KP_51_a_1 5 (ite top.impl.usr.KP_61_a_1 6 (ite top.impl.usr.KP_71_a_1 7 (ite top.impl.usr.KP_81_a_1 8 (ite top.impl.usr.KP_91_a_1 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01_a_1 0 (ite top.impl.usr.KP_11_a_1 1 (ite top.impl.usr.KP_21_a_1 2 (ite top.impl.usr.KP_31_a_1 3 (ite top.impl.usr.KP_41_a_1 4 (ite top.impl.usr.KP_51_a_1 5 (ite top.impl.usr.KP_61_a_1 6 (ite top.impl.usr.KP_71_a_1 7 (ite top.impl.usr.KP_81_a_1 8 (ite top.impl.usr.KP_91_a_1 9 10)))))))))) 0)) (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 0 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 0 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.STEPS_TO_COOK_a_1 (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1)) 0 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 60)) 1) top.impl.usr.STEPS_TO_COOK_a_0))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK_a_1 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED_a_1) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK_a_1 X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 (and top.usr.KP_CLEAR_a_1 (not top.usr.KP_CLEAR_a_0)))) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 1) 60))) (let ((X34 X33)) (and (= top.usr.OK_a_1 (or (not (and X6 (not top.usr.KP_CLEAR_a_1))) (or (not (or (or (or (or (or (or (or (or (or (and top.usr.KP_1_a_1 (not top.usr.KP_1_a_0)) (and top.usr.KP_2_a_1 (not top.usr.KP_2_a_0))) (and top.usr.KP_3_a_1 (not top.usr.KP_3_a_0))) (and top.usr.KP_4_a_1 (not top.usr.KP_4_a_0))) (and top.usr.KP_5_a_1 (not top.usr.KP_5_a_0))) (and top.usr.KP_6_a_1 (not top.usr.KP_6_a_0))) (and top.usr.KP_7_a_1 (not top.usr.KP_7_a_0))) (and top.usr.KP_8_a_1 (not top.usr.KP_8_a_0))) (and top.usr.KP_9_a_1 (not top.usr.KP_9_a_0))) (and top.usr.KP_0_a_1 (not top.usr.KP_0_a_0)))) (= X34 (div (div top.impl.usr.STEPS_TO_COOK_a_1 1) 60))))) (let ((X35 top.impl.usr.chart_microwave_mode_logic_mode_a_0)) (let ((X36 (ite X12 (ite (not (= X9 2)) 2 X35) X35))) (let ((X37 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X36) X36) X35))) (let ((X38 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X39 (ite X18 (ite (not (= X19 4)) 1 X37) X37))) (let ((X40 (ite X21 (ite (not (= X22 2)) 2 X39) X39))) (let ((X41 (ite X27 (ite (not (= X28 4)) 1 X40) X40))) (let ((X42 (ite X32 (ite (not (= X38 2)) 2 X41) X41))) (let ((X43 (ite X32 (ite (not (= X38 2)) 2 X38) X38))) (let ((X44 (and (= X43 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X45 (ite X44 (ite (= X43 2) 1 X43) X43))) (and (= top.impl.usr.chart_microwave_mode_logic_mode_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 (ite (not (= X2 4)) 1 X35) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X42) X42) X37)) X35)) (= top.impl.usr.microwave_microwave_mode_logic_mode_a_1 top.impl.usr.chart_microwave_mode_logic_mode_a_1) (let ((X46 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 X46 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X45) X45) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) (not top.res.init_flag_a_1)))))))))))))))))))))))))))))))))))))))))))))))))))))) +(synth-inv str_invariant ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int))) + +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int)) Bool + (let ((X1 0)) (let ((X2 0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep true) (let ((X3 (= X2 4))) (let ((X4 top.usr.KP_START)) (let ((X5 (ite (not X4) 0 1))) (and (= top.impl.usr.KP_91 top.usr.KP_9) (= top.impl.usr.KP_81 top.usr.KP_8) (= top.impl.usr.KP_71 top.usr.KP_7) (= top.impl.usr.KP_61 top.usr.KP_6) (= top.impl.usr.KP_51 top.usr.KP_5) (= top.impl.usr.KP_41 top.usr.KP_4) (= top.impl.usr.KP_31 top.usr.KP_3) (= top.impl.usr.KP_21 top.usr.KP_2) (= top.impl.usr.KP_11 top.usr.KP_1) (= top.impl.usr.KP_01 top.usr.KP_0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY (ite top.usr.KP_CLEAR 0 (ite (ite (<= (ite top.impl.usr.KP_01 0 (ite top.impl.usr.KP_11 1 (ite top.impl.usr.KP_21 2 (ite top.impl.usr.KP_31 3 (ite top.impl.usr.KP_41 4 (ite top.impl.usr.KP_51 5 (ite top.impl.usr.KP_61 6 (ite top.impl.usr.KP_71 7 (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01 0 (ite top.impl.usr.KP_11 1 (ite top.impl.usr.KP_21 2 (ite top.impl.usr.KP_31 3 (ite top.impl.usr.KP_41 4 (ite top.impl.usr.KP_51 5 (ite top.impl.usr.KP_61 6 (ite top.impl.usr.KP_71 7 (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) 0))) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY 0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY 0) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step true) (let ((X6 true)) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock X6) (= top.impl.usr.STEPS_TO_COOK (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock)) 0 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY 60)) 1))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 top.usr.KP_CLEAR)) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup___ true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining 1) 60))) (let ((X34 X33)) (and (= top.usr.OK (or (not (and X6 (not top.usr.KP_CLEAR))) (or (not (or (or (or (or (or (or (or (or (or top.usr.KP_1 top.usr.KP_2) top.usr.KP_3) top.usr.KP_4) top.usr.KP_5) top.usr.KP_6) top.usr.KP_7) top.usr.KP_8) top.usr.KP_9) top.usr.KP_0)) (= X34 (div (div top.impl.usr.STEPS_TO_COOK 1) 60))))) (let ((X35 0)) (let ((X36 (ite X12 (ite (not (= X9 2)) 2 X35) X35))) (let ((X37 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X36) X36) X35))) (let ((X38 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X39 (ite X18 (ite (not (= X19 4)) 1 X37) X37))) (let ((X40 (ite X21 (ite (not (= X22 2)) 2 X39) X39))) (let ((X41 (ite X27 (ite (not (= X28 4)) 1 X40) X40))) (let ((X42 (ite X32 (ite (not (= X38 2)) 2 X41) X41))) (let ((X43 (ite X32 (ite (not (= X38 2)) 2 X38) X38))) (let ((X44 (and (= X43 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X45 (ite X44 (ite (= X43 2) 1 X43) X43))) (and (= top.impl.usr.chart_microwave_mode_logic_mode (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep (ite (not (= X2 4)) 1 X35) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X42) X42) X37)) X35)) (= top.impl.usr.microwave_microwave_mode_logic_mode top.impl.usr.chart_microwave_mode_logic_mode) (let ((X46 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep X46 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X45) X45) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) top.res.init_flag)))))))))))))))))))))))))))))))))))))))))))))))))))))) +(define-fun trans ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int) (top.usr.KP_START! Bool) (top.usr.KP_CLEAR! Bool) (top.usr.KP_0! Bool) (top.usr.KP_1! Bool) (top.usr.KP_2! Bool) (top.usr.KP_3! Bool) (top.usr.KP_4! Bool) (top.usr.KP_5! Bool) (top.usr.KP_6! Bool) (top.usr.KP_7! Bool) (top.usr.KP_8! Bool) (top.usr.KP_9! Bool) (top.usr.DOOR_CLOSED! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.STEPS_TO_COOK! Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! Bool) (top.impl.usr.KP_01! Bool) (top.impl.usr.KP_11! Bool) (top.impl.usr.KP_21! Bool) (top.impl.usr.KP_31! Bool) (top.impl.usr.KP_41! Bool) (top.impl.usr.KP_51! Bool) (top.impl.usr.KP_61! Bool) (top.impl.usr.KP_71! Bool) (top.impl.usr.KP_81! Bool) (top.impl.usr.KP_91! Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___! Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root! Int) (top.impl.usr.chart_microwave_mode_logic_mode! Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining! Int) (top.impl.usr.microwave_microwave_mode_logic_mode! Int)) Bool + (and (let ((X1 top.impl.usr.chart_microwave_mode_logic_steps_remaining)) (let ((X2 top.impl.usr.chart_microwave_mode_logic_final_state_states___root)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ false top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep)) (let ((X3 (= X2 4))) (let ((X4 (and top.usr.KP_START! (not top.usr.KP_START)))) (let ((X5 (ite (not X4) 0 1))) (let ((X6 (ite (= 1 top.impl.usr.microwave_microwave_mode_logic_mode) true false))) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! X6) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (ite (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!) true (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock false top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step))) (= top.impl.usr.KP_91! top.usr.KP_9!) (= top.impl.usr.KP_81! top.usr.KP_8!) (= top.impl.usr.KP_71! top.usr.KP_7!) (= top.impl.usr.KP_61! top.usr.KP_6!) (= top.impl.usr.KP_51! top.usr.KP_5!) (= top.impl.usr.KP_41! top.usr.KP_4!) (= top.impl.usr.KP_31! top.usr.KP_3!) (= top.impl.usr.KP_21! top.usr.KP_2!) (= top.impl.usr.KP_11! top.usr.KP_1!) (= top.impl.usr.KP_01! top.usr.KP_0!) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite top.impl.usr.KP_01! 0 (ite top.impl.usr.KP_11! 1 (ite top.impl.usr.KP_21! 2 (ite top.impl.usr.KP_31! 3 (ite top.impl.usr.KP_41! 4 (ite top.impl.usr.KP_51! 5 (ite top.impl.usr.KP_61! 6 (ite top.impl.usr.KP_71! 7 (ite top.impl.usr.KP_81! 8 (ite top.impl.usr.KP_91! 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01! 0 (ite top.impl.usr.KP_11! 1 (ite top.impl.usr.KP_21! 2 (ite top.impl.usr.KP_31! 3 (ite top.impl.usr.KP_41! 4 (ite top.impl.usr.KP_51! 5 (ite top.impl.usr.KP_61! 6 (ite top.impl.usr.KP_71! 7 (ite top.impl.usr.KP_81! 8 (ite top.impl.usr.KP_91! 9 10)))))))))) 0)) (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! 0 (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! 0 (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.STEPS_TO_COOK! (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!)) 0 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! 60)) 1) top.impl.usr.STEPS_TO_COOK))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK! 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED!) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK! X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 (and top.usr.KP_CLEAR! (not top.usr.KP_CLEAR)))) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup___! true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining! 1) 60))) (let ((X34 X33)) (and (= top.usr.OK! (or (not (and X6 (not top.usr.KP_CLEAR!))) (or (not (or (or (or (or (or (or (or (or (or (and top.usr.KP_1! (not top.usr.KP_1)) (and top.usr.KP_2! (not top.usr.KP_2))) (and top.usr.KP_3! (not top.usr.KP_3))) (and top.usr.KP_4! (not top.usr.KP_4))) (and top.usr.KP_5! (not top.usr.KP_5))) (and top.usr.KP_6! (not top.usr.KP_6))) (and top.usr.KP_7! (not top.usr.KP_7))) (and top.usr.KP_8! (not top.usr.KP_8))) (and top.usr.KP_9! (not top.usr.KP_9))) (and top.usr.KP_0! (not top.usr.KP_0)))) (= X34 (div (div top.impl.usr.STEPS_TO_COOK! 1) 60))))) (let ((X35 top.impl.usr.chart_microwave_mode_logic_mode)) (let ((X36 (ite X12 (ite (not (= X9 2)) 2 X35) X35))) (let ((X37 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X36) X36) X35))) (let ((X38 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X39 (ite X18 (ite (not (= X19 4)) 1 X37) X37))) (let ((X40 (ite X21 (ite (not (= X22 2)) 2 X39) X39))) (let ((X41 (ite X27 (ite (not (= X28 4)) 1 X40) X40))) (let ((X42 (ite X32 (ite (not (= X38 2)) 2 X41) X41))) (let ((X43 (ite X32 (ite (not (= X38 2)) 2 X38) X38))) (let ((X44 (and (= X43 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X45 (ite X44 (ite (= X43 2) 1 X43) X43))) (and (= top.impl.usr.chart_microwave_mode_logic_mode! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! (ite (not (= X2 4)) 1 X35) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X42) X42) X37)) X35)) (= top.impl.usr.microwave_microwave_mode_logic_mode! top.impl.usr.chart_microwave_mode_logic_mode!) (let ((X46 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! X46 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X45) X45) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) (not top.res.init_flag!))))))))))))))))))))))))))))))))))))))))))))))))))))) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/microwave22.sl b/benchmarks/LIA/Lustre/microwave22.sl index cb73494..6e66bb4 100644 --- a/benchmarks/LIA/Lustre/microwave22.sl +++ b/benchmarks/LIA/Lustre/microwave22.sl @@ -1,2617 +1,25 @@ (set-logic LIA) -(define-fun - __node_init_top_0 ( - (top.usr.KP_START_a_0 Bool) - (top.usr.KP_CLEAR_a_0 Bool) - (top.usr.KP_0_a_0 Bool) - (top.usr.KP_1_a_0 Bool) - (top.usr.KP_2_a_0 Bool) - (top.usr.KP_3_a_0 Bool) - (top.usr.KP_4_a_0 Bool) - (top.usr.KP_5_a_0 Bool) - (top.usr.KP_6_a_0 Bool) - (top.usr.KP_7_a_0 Bool) - (top.usr.KP_8_a_0 Bool) - (top.usr.KP_9_a_0 Bool) - (top.usr.DOOR_CLOSED_a_0 Bool) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.LEFT_DIGIT_a_0 Int) - (top.impl.usr.STEPS_TO_COOK_a_0 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) - (top.impl.usr.KP_01_a_0 Bool) - (top.impl.usr.KP_11_a_0 Bool) - (top.impl.usr.KP_21_a_0 Bool) - (top.impl.usr.KP_31_a_0 Bool) - (top.impl.usr.KP_41_a_0 Bool) - (top.impl.usr.KP_51_a_0 Bool) - (top.impl.usr.KP_61_a_0 Bool) - (top.impl.usr.KP_71_a_0 Bool) - (top.impl.usr.KP_81_a_0 Bool) - (top.impl.usr.KP_91_a_0 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int 0)) - (let - ((X2 Int 0)) - (and - (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 true) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool top.usr.KP_START_a_0)) - (let - ((X5 Int (ite (not X4) 0 1))) - (and - (= top.impl.usr.KP_91_a_0 top.usr.KP_9_a_0) - (= top.impl.usr.KP_81_a_0 top.usr.KP_8_a_0) - (= top.impl.usr.KP_71_a_0 top.usr.KP_7_a_0) - (= top.impl.usr.KP_61_a_0 top.usr.KP_6_a_0) - (= top.impl.usr.KP_51_a_0 top.usr.KP_5_a_0) - (= top.impl.usr.KP_41_a_0 top.usr.KP_4_a_0) - (= top.impl.usr.KP_31_a_0 top.usr.KP_3_a_0) - (= top.impl.usr.KP_21_a_0 top.usr.KP_2_a_0) - (= top.impl.usr.KP_11_a_0 top.usr.KP_1_a_0) - (= top.impl.usr.KP_01_a_0 top.usr.KP_0_a_0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - (ite - top.usr.KP_CLEAR_a_0 - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01_a_0 - 0 - (ite - top.impl.usr.KP_11_a_0 - 1 - (ite - top.impl.usr.KP_21_a_0 - 2 - (ite - top.impl.usr.KP_31_a_0 - 3 - (ite - top.impl.usr.KP_41_a_0 - 4 - (ite - top.impl.usr.KP_51_a_0 - 5 - (ite - top.impl.usr.KP_61_a_0 - 6 - (ite - top.impl.usr.KP_71_a_0 - 7 - (ite - top.impl.usr.KP_81_a_0 - 8 - (ite top.impl.usr.KP_91_a_0 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01_a_0 - 0 - (ite - top.impl.usr.KP_11_a_0 - 1 - (ite - top.impl.usr.KP_21_a_0 - 2 - (ite - top.impl.usr.KP_31_a_0 - 3 - (ite - top.impl.usr.KP_41_a_0 - 4 - (ite - top.impl.usr.KP_51_a_0 - 5 - (ite - top.impl.usr.KP_61_a_0 - 6 - (ite - top.impl.usr.KP_71_a_0 - 7 - (ite - top.impl.usr.KP_81_a_0 - 8 - (ite top.impl.usr.KP_91_a_0 9 10)))))))))) - 0))) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - 0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 0) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 - true) - (let - ((X6 Bool true)) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 - X6) - (= - top.impl.usr.STEPS_TO_COOK_a_0 - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0)) - 0 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 60)) - 1))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK_a_0 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED_a_0) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK_a_0 X1))) - (let - ((X18 - Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 - Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 Bool top.usr.KP_CLEAR_a_0)) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - 1) - 60))) - (and - (= top.impl.usr.LEFT_DIGIT_a_0 X33) - (let - ((X34 Int 0)) - (let - ((X35 - Int (ite - X12 - (ite (not (= X9 2)) 2 X34) - X34))) - (let - ((X36 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X35) - X35) - X34))) - (let - ((X37 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X38 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X36) - X36))) - (let - ((X39 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X38) - X38))) - (let - ((X40 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X39) - X39))) - (let - ((X41 - Int (ite - X32 - (ite - (not (= X37 2)) - 2 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X37 2)) - 2 - X37) - X37))) - (let - ((X43 - Bool (and - (= X42 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not - (= X11 0)) - true - false))) - (not - (or X32 X31)))))) - (let - ((X44 - Int (ite - X43 - (ite - (= X42 2) - 1 - X42) - X42))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - (ite - (not (= X2 4)) - 1 - X34) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X43 - (ite - (not (= X44 3)) - 3 - X41) - X41) - X36)) - X34)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode_a_0 - top.impl.usr.chart_microwave_mode_logic_mode_a_0) - (let - ((X45 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - X45 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X43 - (ite - (not (= X44 3)) - 3 - X44) - X44) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - top.res.init_flag_a_0))))))))))))))))))))))))))))))))))))))))))))))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.KP_START_a_1 Bool) - (top.usr.KP_CLEAR_a_1 Bool) - (top.usr.KP_0_a_1 Bool) - (top.usr.KP_1_a_1 Bool) - (top.usr.KP_2_a_1 Bool) - (top.usr.KP_3_a_1 Bool) - (top.usr.KP_4_a_1 Bool) - (top.usr.KP_5_a_1 Bool) - (top.usr.KP_6_a_1 Bool) - (top.usr.KP_7_a_1 Bool) - (top.usr.KP_8_a_1 Bool) - (top.usr.KP_9_a_1 Bool) - (top.usr.DOOR_CLOSED_a_1 Bool) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.LEFT_DIGIT_a_1 Int) - (top.impl.usr.STEPS_TO_COOK_a_1 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 Bool) - (top.impl.usr.KP_01_a_1 Bool) - (top.impl.usr.KP_11_a_1 Bool) - (top.impl.usr.KP_21_a_1 Bool) - (top.impl.usr.KP_31_a_1 Bool) - (top.impl.usr.KP_41_a_1 Bool) - (top.impl.usr.KP_51_a_1 Bool) - (top.impl.usr.KP_61_a_1 Bool) - (top.impl.usr.KP_71_a_1 Bool) - (top.impl.usr.KP_81_a_1 Bool) - (top.impl.usr.KP_91_a_1 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_1 Int) - (top.usr.KP_START_a_0 Bool) - (top.usr.KP_CLEAR_a_0 Bool) - (top.usr.KP_0_a_0 Bool) - (top.usr.KP_1_a_0 Bool) - (top.usr.KP_2_a_0 Bool) - (top.usr.KP_3_a_0 Bool) - (top.usr.KP_4_a_0 Bool) - (top.usr.KP_5_a_0 Bool) - (top.usr.KP_6_a_0 Bool) - (top.usr.KP_7_a_0 Bool) - (top.usr.KP_8_a_0 Bool) - (top.usr.KP_9_a_0 Bool) - (top.usr.DOOR_CLOSED_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.LEFT_DIGIT_a_0 Int) - (top.impl.usr.STEPS_TO_COOK_a_0 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) - (top.impl.usr.KP_01_a_0 Bool) - (top.impl.usr.KP_11_a_0 Bool) - (top.impl.usr.KP_21_a_0 Bool) - (top.impl.usr.KP_31_a_0 Bool) - (top.impl.usr.KP_41_a_0 Bool) - (top.impl.usr.KP_51_a_0 Bool) - (top.impl.usr.KP_61_a_0 Bool) - (top.impl.usr.KP_71_a_0 Bool) - (top.impl.usr.KP_81_a_0 Bool) - (top.impl.usr.KP_91_a_0 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int) - ) Bool - - (let - ((X1 Int top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0)) - (let - ((X2 - Int top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0)) - (and - (= - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - false - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0)) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool (and top.usr.KP_START_a_1 (not top.usr.KP_START_a_0)))) - (let - ((X5 Int (ite (not X4) 0 1))) - (let - ((X6 - Bool (ite - (= 1 top.impl.usr.microwave_microwave_mode_logic_mode_a_0) - true - false))) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - X6) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (ite - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1) - true - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 - false - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0))) - (= top.impl.usr.KP_91_a_1 top.usr.KP_9_a_1) - (= top.impl.usr.KP_81_a_1 top.usr.KP_8_a_1) - (= top.impl.usr.KP_71_a_1 top.usr.KP_7_a_1) - (= top.impl.usr.KP_61_a_1 top.usr.KP_6_a_1) - (= top.impl.usr.KP_51_a_1 top.usr.KP_5_a_1) - (= top.impl.usr.KP_41_a_1 top.usr.KP_4_a_1) - (= top.impl.usr.KP_31_a_1 top.usr.KP_3_a_1) - (= top.impl.usr.KP_21_a_1 top.usr.KP_2_a_1) - (= top.impl.usr.KP_11_a_1 top.usr.KP_1_a_1) - (= top.impl.usr.KP_01_a_1 top.usr.KP_0_a_1) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01_a_1 - 0 - (ite - top.impl.usr.KP_11_a_1 - 1 - (ite - top.impl.usr.KP_21_a_1 - 2 - (ite - top.impl.usr.KP_31_a_1 - 3 - (ite - top.impl.usr.KP_41_a_1 - 4 - (ite - top.impl.usr.KP_51_a_1 - 5 - (ite - top.impl.usr.KP_61_a_1 - 6 - (ite - top.impl.usr.KP_71_a_1 - 7 - (ite - top.impl.usr.KP_81_a_1 - 8 - (ite top.impl.usr.KP_91_a_1 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01_a_1 - 0 - (ite - top.impl.usr.KP_11_a_1 - 1 - (ite - top.impl.usr.KP_21_a_1 - 2 - (ite - top.impl.usr.KP_31_a_1 - 3 - (ite - top.impl.usr.KP_41_a_1 - 4 - (ite - top.impl.usr.KP_51_a_1 - 5 - (ite - top.impl.usr.KP_61_a_1 - 6 - (ite - top.impl.usr.KP_71_a_1 - 7 - (ite - top.impl.usr.KP_81_a_1 - 8 - (ite top.impl.usr.KP_91_a_1 9 10)))))))))) - 0)) - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and - top.impl.usr.KP_71_a_1 - (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and - top.impl.usr.KP_81_a_1 - (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - 0 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and - top.impl.usr.KP_71_a_1 - (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and - top.impl.usr.KP_81_a_1 - (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - 0 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and - top.impl.usr.KP_71_a_1 - (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and - top.impl.usr.KP_81_a_1 - (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.STEPS_TO_COOK_a_1 - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1)) - 0 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 - 60)) - 1) - top.impl.usr.STEPS_TO_COOK_a_0))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK_a_1 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED_a_1) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK_a_1 X1))) - (let - ((X18 Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 - Bool (and - top.usr.KP_CLEAR_a_1 - (not top.usr.KP_CLEAR_a_0)))) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - 1) - 60))) - (and - (= top.impl.usr.LEFT_DIGIT_a_1 X33) - (= - top.usr.OK_a_1 - (or - (not - (and X6 (not top.usr.KP_CLEAR_a_1))) - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - top.usr.KP_1_a_1 - (not top.usr.KP_1_a_0)) - (and - top.usr.KP_2_a_1 - (not top.usr.KP_2_a_0))) - (and - top.usr.KP_3_a_1 - (not top.usr.KP_3_a_0))) - (and - top.usr.KP_4_a_1 - (not top.usr.KP_4_a_0))) - (and - top.usr.KP_5_a_1 - (not top.usr.KP_5_a_0))) - (and - top.usr.KP_6_a_1 - (not top.usr.KP_6_a_0))) - (and - top.usr.KP_7_a_1 - (not top.usr.KP_7_a_0))) - (and - top.usr.KP_8_a_1 - (not top.usr.KP_8_a_0))) - (and - top.usr.KP_9_a_1 - (not top.usr.KP_9_a_0))) - (and - top.usr.KP_0_a_1 - (not top.usr.KP_0_a_0))) - (= - top.impl.usr.LEFT_DIGIT_a_1 - top.impl.usr.LEFT_DIGIT_a_0)))) - (let - ((X34 - Int top.impl.usr.chart_microwave_mode_logic_mode_a_0)) - (let - ((X35 - Int (ite - X12 - (ite (not (= X9 2)) 2 X34) - X34))) - (let - ((X36 - Int (ite - X7 - (ite - X14 - (ite (not (= X13 3)) 3 X35) - X35) - X34))) - (let - ((X37 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X38 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X36) - X36))) - (let - ((X39 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X38) - X38))) - (let - ((X40 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X39) - X39))) - (let - ((X41 - Int (ite - X32 - (ite - (not (= X37 2)) - 2 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X37 2)) - 2 - X37) - X37))) - (let - ((X43 - Bool (and - (= X42 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not (= X11 0)) - true - false))) - (not (or X32 X31)))))) - (let - ((X44 - Int (ite - X43 - (ite - (= X42 2) - 1 - X42) - X42))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - (ite - (not (= X2 4)) - 1 - X34) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X43 - (ite - (not (= X44 3)) - 3 - X41) - X41) - X36)) - X34)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode_a_1 - top.impl.usr.chart_microwave_mode_logic_mode_a_1) - (let - ((X45 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - X45 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X43 - (ite - (not (= X44 3)) - 3 - X44) - X44) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - (not - top.res.init_flag_a_1)))))))))))))))))))))))))))))))))))))))))))))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.LEFT_DIGIT Int) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) -)) - -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.KP_START Bool) -(declare-primed-var top.usr.KP_CLEAR Bool) -(declare-primed-var top.usr.KP_0 Bool) -(declare-primed-var top.usr.KP_1 Bool) -(declare-primed-var top.usr.KP_2 Bool) -(declare-primed-var top.usr.KP_3 Bool) -(declare-primed-var top.usr.KP_4 Bool) -(declare-primed-var top.usr.KP_5 Bool) -(declare-primed-var top.usr.KP_6 Bool) -(declare-primed-var top.usr.KP_7 Bool) -(declare-primed-var top.usr.KP_8 Bool) -(declare-primed-var top.usr.KP_9 Bool) -(declare-primed-var top.usr.DOOR_CLOSED Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.LEFT_DIGIT Int) -(declare-primed-var top.impl.usr.STEPS_TO_COOK Int) -(declare-primed-var top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) -(declare-primed-var top.impl.usr.KP_01 Bool) -(declare-primed-var top.impl.usr.KP_11 Bool) -(declare-primed-var top.impl.usr.KP_21 Bool) -(declare-primed-var top.impl.usr.KP_31 Bool) -(declare-primed-var top.impl.usr.KP_41 Bool) -(declare-primed-var top.impl.usr.KP_51 Bool) -(declare-primed-var top.impl.usr.KP_61 Bool) -(declare-primed-var top.impl.usr.KP_71 Bool) -(declare-primed-var top.impl.usr.KP_81 Bool) -(declare-primed-var top.impl.usr.KP_91 Bool) -(declare-primed-var top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_mode Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) -(declare-primed-var top.impl.usr.microwave_microwave_mode_logic_mode Int) - -(define-fun - init ( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.LEFT_DIGIT Int) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int 0)) - (let - ((X2 Int 0)) - (and - (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep true) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool top.usr.KP_START)) - (let - ((X5 Int (ite (not X4) 0 1))) - (and - (= top.impl.usr.KP_91 top.usr.KP_9) - (= top.impl.usr.KP_81 top.usr.KP_8) - (= top.impl.usr.KP_71 top.usr.KP_7) - (= top.impl.usr.KP_61 top.usr.KP_6) - (= top.impl.usr.KP_51 top.usr.KP_5) - (= top.impl.usr.KP_41 top.usr.KP_4) - (= top.impl.usr.KP_31 top.usr.KP_3) - (= top.impl.usr.KP_21 top.usr.KP_2) - (= top.impl.usr.KP_11 top.usr.KP_1) - (= top.impl.usr.KP_01 top.usr.KP_0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - (ite - top.usr.KP_CLEAR - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01 - 0 - (ite - top.impl.usr.KP_11 - 1 - (ite - top.impl.usr.KP_21 - 2 - (ite - top.impl.usr.KP_31 - 3 - (ite - top.impl.usr.KP_41 - 4 - (ite - top.impl.usr.KP_51 - 5 - (ite - top.impl.usr.KP_61 - 6 - (ite - top.impl.usr.KP_71 - 7 - (ite - top.impl.usr.KP_81 - 8 - (ite top.impl.usr.KP_91 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01 - 0 - (ite - top.impl.usr.KP_11 - 1 - (ite - top.impl.usr.KP_21 - 2 - (ite - top.impl.usr.KP_31 - 3 - (ite - top.impl.usr.KP_41 - 4 - (ite - top.impl.usr.KP_51 - 5 - (ite - top.impl.usr.KP_61 - 6 - (ite - top.impl.usr.KP_71 - 7 - (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) - 0))) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - 0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY - 0) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step - true) - (let - ((X6 Bool true)) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock - X6) - (= - top.impl.usr.STEPS_TO_COOK - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock)) - 0 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY - 60)) - 1))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK X1))) - (let - ((X18 - Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 - Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 Bool top.usr.KP_CLEAR)) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup___ - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining - 1) - 60))) - (and - (= top.impl.usr.LEFT_DIGIT X33) - (let - ((X34 Int 0)) - (let - ((X35 - Int (ite - X12 - (ite (not (= X9 2)) 2 X34) - X34))) - (let - ((X36 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X35) - X35) - X34))) - (let - ((X37 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X38 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X36) - X36))) - (let - ((X39 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X38) - X38))) - (let - ((X40 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X39) - X39))) - (let - ((X41 - Int (ite - X32 - (ite - (not (= X37 2)) - 2 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X37 2)) - 2 - X37) - X37))) - (let - ((X43 - Bool (and - (= X42 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not - (= X11 0)) - true - false))) - (not - (or X32 X31)))))) - (let - ((X44 - Int (ite - X43 - (ite - (= X42 2) - 1 - X42) - X42))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - (ite - (not (= X2 4)) - 1 - X34) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X43 - (ite - (not (= X44 3)) - 3 - X41) - X41) - X36)) - X34)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode - top.impl.usr.chart_microwave_mode_logic_mode) - (let - ((X45 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - X45 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X43 - (ite - (not (= X44 3)) - 3 - X44) - X44) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - top.res.init_flag))))))))))))))))))))))))))))))))))))))))))))))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.LEFT_DIGIT Int) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - - ;; Next state. - (top.usr.KP_START! Bool) - (top.usr.KP_CLEAR! Bool) - (top.usr.KP_0! Bool) - (top.usr.KP_1! Bool) - (top.usr.KP_2! Bool) - (top.usr.KP_3! Bool) - (top.usr.KP_4! Bool) - (top.usr.KP_5! Bool) - (top.usr.KP_6! Bool) - (top.usr.KP_7! Bool) - (top.usr.KP_8! Bool) - (top.usr.KP_9! Bool) - (top.usr.DOOR_CLOSED! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.LEFT_DIGIT! Int) - (top.impl.usr.STEPS_TO_COOK! Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! Bool) - (top.impl.usr.KP_01! Bool) - (top.impl.usr.KP_11! Bool) - (top.impl.usr.KP_21! Bool) - (top.impl.usr.KP_31! Bool) - (top.impl.usr.KP_41! Bool) - (top.impl.usr.KP_51! Bool) - (top.impl.usr.KP_61! Bool) - (top.impl.usr.KP_71! Bool) - (top.impl.usr.KP_81! Bool) - (top.impl.usr.KP_91! Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___! Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root! Int) - (top.impl.usr.chart_microwave_mode_logic_mode! Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining! Int) - (top.impl.usr.microwave_microwave_mode_logic_mode! Int) - - ) Bool - - (and - (let - ((X1 Int top.impl.usr.chart_microwave_mode_logic_steps_remaining)) - (let - ((X2 - Int top.impl.usr.chart_microwave_mode_logic_final_state_states___root)) - (and - (= - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - false - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep)) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool (and top.usr.KP_START! (not top.usr.KP_START)))) - (let - ((X5 Int (ite (not X4) 0 1))) - (let - ((X6 - Bool (ite - (= 1 top.impl.usr.microwave_microwave_mode_logic_mode) - true - false))) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - X6) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (ite - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!) - true - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock - false - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step))) - (= top.impl.usr.KP_91! top.usr.KP_9!) - (= top.impl.usr.KP_81! top.usr.KP_8!) - (= top.impl.usr.KP_71! top.usr.KP_7!) - (= top.impl.usr.KP_61! top.usr.KP_6!) - (= top.impl.usr.KP_51! top.usr.KP_5!) - (= top.impl.usr.KP_41! top.usr.KP_4!) - (= top.impl.usr.KP_31! top.usr.KP_3!) - (= top.impl.usr.KP_21! top.usr.KP_2!) - (= top.impl.usr.KP_11! top.usr.KP_1!) - (= top.impl.usr.KP_01! top.usr.KP_0!) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01! - 0 - (ite - top.impl.usr.KP_11! - 1 - (ite - top.impl.usr.KP_21! - 2 - (ite - top.impl.usr.KP_31! - 3 - (ite - top.impl.usr.KP_41! - 4 - (ite - top.impl.usr.KP_51! - 5 - (ite - top.impl.usr.KP_61! - 6 - (ite - top.impl.usr.KP_71! - 7 - (ite - top.impl.usr.KP_81! - 8 - (ite top.impl.usr.KP_91! 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01! - 0 - (ite - top.impl.usr.KP_11! - 1 - (ite - top.impl.usr.KP_21! - 2 - (ite - top.impl.usr.KP_31! - 3 - (ite - top.impl.usr.KP_41! - 4 - (ite - top.impl.usr.KP_51! - 5 - (ite - top.impl.usr.KP_61! - 6 - (ite - top.impl.usr.KP_71! - 7 - (ite - top.impl.usr.KP_81! - 8 - (ite top.impl.usr.KP_91! 9 10)))))))))) - 0)) - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and - top.impl.usr.KP_91! - (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - 0 - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and - top.impl.usr.KP_91! - (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - 0 - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and - top.impl.usr.KP_91! - (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.STEPS_TO_COOK! - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!)) - 0 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! - 60)) - 1) - top.impl.usr.STEPS_TO_COOK))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK! 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED!) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK! X1))) - (let - ((X18 Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 - Bool (and - top.usr.KP_CLEAR! - (not top.usr.KP_CLEAR)))) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup___! - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - 1) - 60))) - (and - (= top.impl.usr.LEFT_DIGIT! X33) - (= - top.usr.OK! - (or - (not - (and X6 (not top.usr.KP_CLEAR!))) - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - top.usr.KP_1! - (not top.usr.KP_1)) - (and - top.usr.KP_2! - (not top.usr.KP_2))) - (and - top.usr.KP_3! - (not top.usr.KP_3))) - (and - top.usr.KP_4! - (not top.usr.KP_4))) - (and - top.usr.KP_5! - (not top.usr.KP_5))) - (and - top.usr.KP_6! - (not top.usr.KP_6))) - (and - top.usr.KP_7! - (not top.usr.KP_7))) - (and - top.usr.KP_8! - (not top.usr.KP_8))) - (and - top.usr.KP_9! - (not top.usr.KP_9))) - (and - top.usr.KP_0! - (not top.usr.KP_0))) - (= - top.impl.usr.LEFT_DIGIT! - top.impl.usr.LEFT_DIGIT)))) - (let - ((X34 - Int top.impl.usr.chart_microwave_mode_logic_mode)) - (let - ((X35 - Int (ite - X12 - (ite (not (= X9 2)) 2 X34) - X34))) - (let - ((X36 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X35) - X35) - X34))) - (let - ((X37 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X38 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X36) - X36))) - (let - ((X39 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X38) - X38))) - (let - ((X40 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X39) - X39))) - (let - ((X41 - Int (ite - X32 - (ite - (not (= X37 2)) - 2 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X37 2)) - 2 - X37) - X37))) - (let - ((X43 - Bool (and - (= X42 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not (= X11 0)) - true - false))) - (not (or X32 X31)))))) - (let - ((X44 - Int (ite - X43 - (ite - (= X42 2) - 1 - X42) - X42))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - (ite - (not (= X2 4)) - 1 - X34) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X43 - (ite - (not (= X44 3)) - 3 - X41) - X41) - X36)) - X34)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode! - top.impl.usr.chart_microwave_mode_logic_mode!) - (let - ((X45 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - X45 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X43 - (ite - (not (= X44 3)) - 3 - X44) - X44) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - (not - top.res.init_flag!)))))))))))))))))))))))))))))))))))))))))))))))))))) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.LEFT_DIGIT Int) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - ) Bool - - top.usr.OK -) +(define-fun __node_init_top_0 ((top.usr.KP_START_a_0 Bool) (top.usr.KP_CLEAR_a_0 Bool) (top.usr.KP_0_a_0 Bool) (top.usr.KP_1_a_0 Bool) (top.usr.KP_2_a_0 Bool) (top.usr.KP_3_a_0 Bool) (top.usr.KP_4_a_0 Bool) (top.usr.KP_5_a_0 Bool) (top.usr.KP_6_a_0 Bool) (top.usr.KP_7_a_0 Bool) (top.usr.KP_8_a_0 Bool) (top.usr.KP_9_a_0 Bool) (top.usr.DOOR_CLOSED_a_0 Bool) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.LEFT_DIGIT_a_0 Int) (top.impl.usr.STEPS_TO_COOK_a_0 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) (top.impl.usr.KP_01_a_0 Bool) (top.impl.usr.KP_11_a_0 Bool) (top.impl.usr.KP_21_a_0 Bool) (top.impl.usr.KP_31_a_0 Bool) (top.impl.usr.KP_41_a_0 Bool) (top.impl.usr.KP_51_a_0 Bool) (top.impl.usr.KP_61_a_0 Bool) (top.impl.usr.KP_71_a_0 Bool) (top.impl.usr.KP_81_a_0 Bool) (top.impl.usr.KP_91_a_0 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 0)) (let ((X2 0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 true) (let ((X3 (= X2 4))) (let ((X4 top.usr.KP_START_a_0)) (let ((X5 (ite (not X4) 0 1))) (and (= top.impl.usr.KP_91_a_0 top.usr.KP_9_a_0) (= top.impl.usr.KP_81_a_0 top.usr.KP_8_a_0) (= top.impl.usr.KP_71_a_0 top.usr.KP_7_a_0) (= top.impl.usr.KP_61_a_0 top.usr.KP_6_a_0) (= top.impl.usr.KP_51_a_0 top.usr.KP_5_a_0) (= top.impl.usr.KP_41_a_0 top.usr.KP_4_a_0) (= top.impl.usr.KP_31_a_0 top.usr.KP_3_a_0) (= top.impl.usr.KP_21_a_0 top.usr.KP_2_a_0) (= top.impl.usr.KP_11_a_0 top.usr.KP_1_a_0) (= top.impl.usr.KP_01_a_0 top.usr.KP_0_a_0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 (ite top.usr.KP_CLEAR_a_0 0 (ite (ite (<= (ite top.impl.usr.KP_01_a_0 0 (ite top.impl.usr.KP_11_a_0 1 (ite top.impl.usr.KP_21_a_0 2 (ite top.impl.usr.KP_31_a_0 3 (ite top.impl.usr.KP_41_a_0 4 (ite top.impl.usr.KP_51_a_0 5 (ite top.impl.usr.KP_61_a_0 6 (ite top.impl.usr.KP_71_a_0 7 (ite top.impl.usr.KP_81_a_0 8 (ite top.impl.usr.KP_91_a_0 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01_a_0 0 (ite top.impl.usr.KP_11_a_0 1 (ite top.impl.usr.KP_21_a_0 2 (ite top.impl.usr.KP_31_a_0 3 (ite top.impl.usr.KP_41_a_0 4 (ite top.impl.usr.KP_51_a_0 5 (ite top.impl.usr.KP_61_a_0 6 (ite top.impl.usr.KP_71_a_0 7 (ite top.impl.usr.KP_81_a_0 8 (ite top.impl.usr.KP_91_a_0 9 10)))))))))) 0))) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 0) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 true) (let ((X6 true)) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 X6) (= top.impl.usr.STEPS_TO_COOK_a_0 (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0)) 0 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 60)) 1))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK_a_0 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED_a_0) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK_a_0 X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 top.usr.KP_CLEAR_a_0)) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 1) 60))) (and (= top.impl.usr.LEFT_DIGIT_a_0 X33) (let ((X34 0)) (let ((X35 (ite X12 (ite (not (= X9 2)) 2 X34) X34))) (let ((X36 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X35) X35) X34))) (let ((X37 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X38 (ite X18 (ite (not (= X19 4)) 1 X36) X36))) (let ((X39 (ite X21 (ite (not (= X22 2)) 2 X38) X38))) (let ((X40 (ite X27 (ite (not (= X28 4)) 1 X39) X39))) (let ((X41 (ite X32 (ite (not (= X37 2)) 2 X40) X40))) (let ((X42 (ite X32 (ite (not (= X37 2)) 2 X37) X37))) (let ((X43 (and (= X42 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X44 (ite X43 (ite (= X42 2) 1 X42) X42))) (and (= top.impl.usr.chart_microwave_mode_logic_mode_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 (ite (not (= X2 4)) 1 X34) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X43 (ite (not (= X44 3)) 3 X41) X41) X36)) X34)) (= top.impl.usr.microwave_microwave_mode_logic_mode_a_0 top.impl.usr.chart_microwave_mode_logic_mode_a_0) (let ((X45 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 X45 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X43 (ite (not (= X44 3)) 3 X44) X44) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) top.res.init_flag_a_0)))))))))))))))))))))))))))))))))))))))))))))))))))))) +(define-fun __node_trans_top_0 ((top.usr.KP_START_a_1 Bool) (top.usr.KP_CLEAR_a_1 Bool) (top.usr.KP_0_a_1 Bool) (top.usr.KP_1_a_1 Bool) (top.usr.KP_2_a_1 Bool) (top.usr.KP_3_a_1 Bool) (top.usr.KP_4_a_1 Bool) (top.usr.KP_5_a_1 Bool) (top.usr.KP_6_a_1 Bool) (top.usr.KP_7_a_1 Bool) (top.usr.KP_8_a_1 Bool) (top.usr.KP_9_a_1 Bool) (top.usr.DOOR_CLOSED_a_1 Bool) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.LEFT_DIGIT_a_1 Int) (top.impl.usr.STEPS_TO_COOK_a_1 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 Bool) (top.impl.usr.KP_01_a_1 Bool) (top.impl.usr.KP_11_a_1 Bool) (top.impl.usr.KP_21_a_1 Bool) (top.impl.usr.KP_31_a_1 Bool) (top.impl.usr.KP_41_a_1 Bool) (top.impl.usr.KP_51_a_1 Bool) (top.impl.usr.KP_61_a_1 Bool) (top.impl.usr.KP_71_a_1 Bool) (top.impl.usr.KP_81_a_1 Bool) (top.impl.usr.KP_91_a_1 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_1 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_1 Int) (top.usr.KP_START_a_0 Bool) (top.usr.KP_CLEAR_a_0 Bool) (top.usr.KP_0_a_0 Bool) (top.usr.KP_1_a_0 Bool) (top.usr.KP_2_a_0 Bool) (top.usr.KP_3_a_0 Bool) (top.usr.KP_4_a_0 Bool) (top.usr.KP_5_a_0 Bool) (top.usr.KP_6_a_0 Bool) (top.usr.KP_7_a_0 Bool) (top.usr.KP_8_a_0 Bool) (top.usr.KP_9_a_0 Bool) (top.usr.DOOR_CLOSED_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.LEFT_DIGIT_a_0 Int) (top.impl.usr.STEPS_TO_COOK_a_0 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) (top.impl.usr.KP_01_a_0 Bool) (top.impl.usr.KP_11_a_0 Bool) (top.impl.usr.KP_21_a_0 Bool) (top.impl.usr.KP_31_a_0 Bool) (top.impl.usr.KP_41_a_0 Bool) (top.impl.usr.KP_51_a_0 Bool) (top.impl.usr.KP_61_a_0 Bool) (top.impl.usr.KP_71_a_0 Bool) (top.impl.usr.KP_81_a_0 Bool) (top.impl.usr.KP_91_a_0 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int)) Bool + (let ((X1 top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0)) (let ((X2 top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 false top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0)) (let ((X3 (= X2 4))) (let ((X4 (and top.usr.KP_START_a_1 (not top.usr.KP_START_a_0)))) (let ((X5 (ite (not X4) 0 1))) (let ((X6 (ite (= 1 top.impl.usr.microwave_microwave_mode_logic_mode_a_0) true false))) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 X6) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (ite (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1) true (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 false top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0))) (= top.impl.usr.KP_91_a_1 top.usr.KP_9_a_1) (= top.impl.usr.KP_81_a_1 top.usr.KP_8_a_1) (= top.impl.usr.KP_71_a_1 top.usr.KP_7_a_1) (= top.impl.usr.KP_61_a_1 top.usr.KP_6_a_1) (= top.impl.usr.KP_51_a_1 top.usr.KP_5_a_1) (= top.impl.usr.KP_41_a_1 top.usr.KP_4_a_1) (= top.impl.usr.KP_31_a_1 top.usr.KP_3_a_1) (= top.impl.usr.KP_21_a_1 top.usr.KP_2_a_1) (= top.impl.usr.KP_11_a_1 top.usr.KP_1_a_1) (= top.impl.usr.KP_01_a_1 top.usr.KP_0_a_1) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite top.impl.usr.KP_01_a_1 0 (ite top.impl.usr.KP_11_a_1 1 (ite top.impl.usr.KP_21_a_1 2 (ite top.impl.usr.KP_31_a_1 3 (ite top.impl.usr.KP_41_a_1 4 (ite top.impl.usr.KP_51_a_1 5 (ite top.impl.usr.KP_61_a_1 6 (ite top.impl.usr.KP_71_a_1 7 (ite top.impl.usr.KP_81_a_1 8 (ite top.impl.usr.KP_91_a_1 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01_a_1 0 (ite top.impl.usr.KP_11_a_1 1 (ite top.impl.usr.KP_21_a_1 2 (ite top.impl.usr.KP_31_a_1 3 (ite top.impl.usr.KP_41_a_1 4 (ite top.impl.usr.KP_51_a_1 5 (ite top.impl.usr.KP_61_a_1 6 (ite top.impl.usr.KP_71_a_1 7 (ite top.impl.usr.KP_81_a_1 8 (ite top.impl.usr.KP_91_a_1 9 10)))))))))) 0)) (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 0 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 0 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.STEPS_TO_COOK_a_1 (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1)) 0 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 60)) 1) top.impl.usr.STEPS_TO_COOK_a_0))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK_a_1 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED_a_1) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK_a_1 X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 (and top.usr.KP_CLEAR_a_1 (not top.usr.KP_CLEAR_a_0)))) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 1) 60))) (and (= top.impl.usr.LEFT_DIGIT_a_1 X33) (= top.usr.OK_a_1 (or (not (and X6 (not top.usr.KP_CLEAR_a_1))) (or (or (or (or (or (or (or (or (or (or (and top.usr.KP_1_a_1 (not top.usr.KP_1_a_0)) (and top.usr.KP_2_a_1 (not top.usr.KP_2_a_0))) (and top.usr.KP_3_a_1 (not top.usr.KP_3_a_0))) (and top.usr.KP_4_a_1 (not top.usr.KP_4_a_0))) (and top.usr.KP_5_a_1 (not top.usr.KP_5_a_0))) (and top.usr.KP_6_a_1 (not top.usr.KP_6_a_0))) (and top.usr.KP_7_a_1 (not top.usr.KP_7_a_0))) (and top.usr.KP_8_a_1 (not top.usr.KP_8_a_0))) (and top.usr.KP_9_a_1 (not top.usr.KP_9_a_0))) (and top.usr.KP_0_a_1 (not top.usr.KP_0_a_0))) (= top.impl.usr.LEFT_DIGIT_a_1 top.impl.usr.LEFT_DIGIT_a_0)))) (let ((X34 top.impl.usr.chart_microwave_mode_logic_mode_a_0)) (let ((X35 (ite X12 (ite (not (= X9 2)) 2 X34) X34))) (let ((X36 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X35) X35) X34))) (let ((X37 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X38 (ite X18 (ite (not (= X19 4)) 1 X36) X36))) (let ((X39 (ite X21 (ite (not (= X22 2)) 2 X38) X38))) (let ((X40 (ite X27 (ite (not (= X28 4)) 1 X39) X39))) (let ((X41 (ite X32 (ite (not (= X37 2)) 2 X40) X40))) (let ((X42 (ite X32 (ite (not (= X37 2)) 2 X37) X37))) (let ((X43 (and (= X42 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X44 (ite X43 (ite (= X42 2) 1 X42) X42))) (and (= top.impl.usr.chart_microwave_mode_logic_mode_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 (ite (not (= X2 4)) 1 X34) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X43 (ite (not (= X44 3)) 3 X41) X41) X36)) X34)) (= top.impl.usr.microwave_microwave_mode_logic_mode_a_1 top.impl.usr.chart_microwave_mode_logic_mode_a_1) (let ((X45 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 X45 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X43 (ite (not (= X44 3)) 3 X44) X44) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) (not top.res.init_flag_a_1))))))))))))))))))))))))))))))))))))))))))))))))))))) +(synth-inv str_invariant ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.LEFT_DIGIT Int) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int))) + +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.LEFT_DIGIT Int) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int)) Bool + (and (= top.usr.OK true) (let ((X1 0)) (let ((X2 0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep true) (let ((X3 (= X2 4))) (let ((X4 top.usr.KP_START)) (let ((X5 (ite (not X4) 0 1))) (and (= top.impl.usr.KP_91 top.usr.KP_9) (= top.impl.usr.KP_81 top.usr.KP_8) (= top.impl.usr.KP_71 top.usr.KP_7) (= top.impl.usr.KP_61 top.usr.KP_6) (= top.impl.usr.KP_51 top.usr.KP_5) (= top.impl.usr.KP_41 top.usr.KP_4) (= top.impl.usr.KP_31 top.usr.KP_3) (= top.impl.usr.KP_21 top.usr.KP_2) (= top.impl.usr.KP_11 top.usr.KP_1) (= top.impl.usr.KP_01 top.usr.KP_0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY (ite top.usr.KP_CLEAR 0 (ite (ite (<= (ite top.impl.usr.KP_01 0 (ite top.impl.usr.KP_11 1 (ite top.impl.usr.KP_21 2 (ite top.impl.usr.KP_31 3 (ite top.impl.usr.KP_41 4 (ite top.impl.usr.KP_51 5 (ite top.impl.usr.KP_61 6 (ite top.impl.usr.KP_71 7 (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01 0 (ite top.impl.usr.KP_11 1 (ite top.impl.usr.KP_21 2 (ite top.impl.usr.KP_31 3 (ite top.impl.usr.KP_41 4 (ite top.impl.usr.KP_51 5 (ite top.impl.usr.KP_61 6 (ite top.impl.usr.KP_71 7 (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) 0))) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY 0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY 0) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step true) (let ((X6 true)) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock X6) (= top.impl.usr.STEPS_TO_COOK (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock)) 0 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY 60)) 1))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 top.usr.KP_CLEAR)) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup___ true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining 1) 60))) (and (= top.impl.usr.LEFT_DIGIT X33) (let ((X34 0)) (let ((X35 (ite X12 (ite (not (= X9 2)) 2 X34) X34))) (let ((X36 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X35) X35) X34))) (let ((X37 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X38 (ite X18 (ite (not (= X19 4)) 1 X36) X36))) (let ((X39 (ite X21 (ite (not (= X22 2)) 2 X38) X38))) (let ((X40 (ite X27 (ite (not (= X28 4)) 1 X39) X39))) (let ((X41 (ite X32 (ite (not (= X37 2)) 2 X40) X40))) (let ((X42 (ite X32 (ite (not (= X37 2)) 2 X37) X37))) (let ((X43 (and (= X42 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X44 (ite X43 (ite (= X42 2) 1 X42) X42))) (and (= top.impl.usr.chart_microwave_mode_logic_mode (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep (ite (not (= X2 4)) 1 X34) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X43 (ite (not (= X44 3)) 3 X41) X41) X36)) X34)) (= top.impl.usr.microwave_microwave_mode_logic_mode top.impl.usr.chart_microwave_mode_logic_mode) (let ((X45 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep X45 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X43 (ite (not (= X44 3)) 3 X44) X44) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) top.res.init_flag)))))))))))))))))))))))))))))))))))))))))))))))))))))) +(define-fun trans ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.LEFT_DIGIT Int) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int) (top.usr.KP_START! Bool) (top.usr.KP_CLEAR! Bool) (top.usr.KP_0! Bool) (top.usr.KP_1! Bool) (top.usr.KP_2! Bool) (top.usr.KP_3! Bool) (top.usr.KP_4! Bool) (top.usr.KP_5! Bool) (top.usr.KP_6! Bool) (top.usr.KP_7! Bool) (top.usr.KP_8! Bool) (top.usr.KP_9! Bool) (top.usr.DOOR_CLOSED! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.LEFT_DIGIT! Int) (top.impl.usr.STEPS_TO_COOK! Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! Bool) (top.impl.usr.KP_01! Bool) (top.impl.usr.KP_11! Bool) (top.impl.usr.KP_21! Bool) (top.impl.usr.KP_31! Bool) (top.impl.usr.KP_41! Bool) (top.impl.usr.KP_51! Bool) (top.impl.usr.KP_61! Bool) (top.impl.usr.KP_71! Bool) (top.impl.usr.KP_81! Bool) (top.impl.usr.KP_91! Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___! Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root! Int) (top.impl.usr.chart_microwave_mode_logic_mode! Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining! Int) (top.impl.usr.microwave_microwave_mode_logic_mode! Int)) Bool + (and (let ((X1 top.impl.usr.chart_microwave_mode_logic_steps_remaining)) (let ((X2 top.impl.usr.chart_microwave_mode_logic_final_state_states___root)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ false top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep)) (let ((X3 (= X2 4))) (let ((X4 (and top.usr.KP_START! (not top.usr.KP_START)))) (let ((X5 (ite (not X4) 0 1))) (let ((X6 (ite (= 1 top.impl.usr.microwave_microwave_mode_logic_mode) true false))) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! X6) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (ite (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!) true (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock false top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step))) (= top.impl.usr.KP_91! top.usr.KP_9!) (= top.impl.usr.KP_81! top.usr.KP_8!) (= top.impl.usr.KP_71! top.usr.KP_7!) (= top.impl.usr.KP_61! top.usr.KP_6!) (= top.impl.usr.KP_51! top.usr.KP_5!) (= top.impl.usr.KP_41! top.usr.KP_4!) (= top.impl.usr.KP_31! top.usr.KP_3!) (= top.impl.usr.KP_21! top.usr.KP_2!) (= top.impl.usr.KP_11! top.usr.KP_1!) (= top.impl.usr.KP_01! top.usr.KP_0!) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite top.impl.usr.KP_01! 0 (ite top.impl.usr.KP_11! 1 (ite top.impl.usr.KP_21! 2 (ite top.impl.usr.KP_31! 3 (ite top.impl.usr.KP_41! 4 (ite top.impl.usr.KP_51! 5 (ite top.impl.usr.KP_61! 6 (ite top.impl.usr.KP_71! 7 (ite top.impl.usr.KP_81! 8 (ite top.impl.usr.KP_91! 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01! 0 (ite top.impl.usr.KP_11! 1 (ite top.impl.usr.KP_21! 2 (ite top.impl.usr.KP_31! 3 (ite top.impl.usr.KP_41! 4 (ite top.impl.usr.KP_51! 5 (ite top.impl.usr.KP_61! 6 (ite top.impl.usr.KP_71! 7 (ite top.impl.usr.KP_81! 8 (ite top.impl.usr.KP_91! 9 10)))))))))) 0)) (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! 0 (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! 0 (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.STEPS_TO_COOK! (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!)) 0 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! 60)) 1) top.impl.usr.STEPS_TO_COOK))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK! 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED!) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK! X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 (and top.usr.KP_CLEAR! (not top.usr.KP_CLEAR)))) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup___! true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining! 1) 60))) (and (= top.impl.usr.LEFT_DIGIT! X33) (= top.usr.OK! (or (not (and X6 (not top.usr.KP_CLEAR!))) (or (or (or (or (or (or (or (or (or (or (and top.usr.KP_1! (not top.usr.KP_1)) (and top.usr.KP_2! (not top.usr.KP_2))) (and top.usr.KP_3! (not top.usr.KP_3))) (and top.usr.KP_4! (not top.usr.KP_4))) (and top.usr.KP_5! (not top.usr.KP_5))) (and top.usr.KP_6! (not top.usr.KP_6))) (and top.usr.KP_7! (not top.usr.KP_7))) (and top.usr.KP_8! (not top.usr.KP_8))) (and top.usr.KP_9! (not top.usr.KP_9))) (and top.usr.KP_0! (not top.usr.KP_0))) (= top.impl.usr.LEFT_DIGIT! top.impl.usr.LEFT_DIGIT)))) (let ((X34 top.impl.usr.chart_microwave_mode_logic_mode)) (let ((X35 (ite X12 (ite (not (= X9 2)) 2 X34) X34))) (let ((X36 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X35) X35) X34))) (let ((X37 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X38 (ite X18 (ite (not (= X19 4)) 1 X36) X36))) (let ((X39 (ite X21 (ite (not (= X22 2)) 2 X38) X38))) (let ((X40 (ite X27 (ite (not (= X28 4)) 1 X39) X39))) (let ((X41 (ite X32 (ite (not (= X37 2)) 2 X40) X40))) (let ((X42 (ite X32 (ite (not (= X37 2)) 2 X37) X37))) (let ((X43 (and (= X42 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X44 (ite X43 (ite (= X42 2) 1 X42) X42))) (and (= top.impl.usr.chart_microwave_mode_logic_mode! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! (ite (not (= X2 4)) 1 X34) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X43 (ite (not (= X44 3)) 3 X41) X41) X36)) X34)) (= top.impl.usr.microwave_microwave_mode_logic_mode! top.impl.usr.chart_microwave_mode_logic_mode!) (let ((X45 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! X45 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X43 (ite (not (= X44 3)) 3 X44) X44) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) (not top.res.init_flag!)))))))))))))))))))))))))))))))))))))))))))))))))))) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.LEFT_DIGIT Int) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/microwave24.sl b/benchmarks/LIA/Lustre/microwave24.sl index eeb8d97..6090198 100644 --- a/benchmarks/LIA/Lustre/microwave24.sl +++ b/benchmarks/LIA/Lustre/microwave24.sl @@ -1,2565 +1,25 @@ (set-logic LIA) -(define-fun - __node_init_top_0 ( - (top.usr.KP_START_a_0 Bool) - (top.usr.KP_CLEAR_a_0 Bool) - (top.usr.KP_0_a_0 Bool) - (top.usr.KP_1_a_0 Bool) - (top.usr.KP_2_a_0 Bool) - (top.usr.KP_3_a_0 Bool) - (top.usr.KP_4_a_0 Bool) - (top.usr.KP_5_a_0 Bool) - (top.usr.KP_6_a_0 Bool) - (top.usr.KP_7_a_0 Bool) - (top.usr.KP_8_a_0 Bool) - (top.usr.KP_9_a_0 Bool) - (top.usr.DOOR_CLOSED_a_0 Bool) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.STEPS_TO_COOK_a_0 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) - (top.impl.usr.KP_01_a_0 Bool) - (top.impl.usr.KP_11_a_0 Bool) - (top.impl.usr.KP_21_a_0 Bool) - (top.impl.usr.KP_31_a_0 Bool) - (top.impl.usr.KP_41_a_0 Bool) - (top.impl.usr.KP_51_a_0 Bool) - (top.impl.usr.KP_61_a_0 Bool) - (top.impl.usr.KP_71_a_0 Bool) - (top.impl.usr.KP_81_a_0 Bool) - (top.impl.usr.KP_91_a_0 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int) - ) Bool - - (let - ((X1 Int 0)) - (let - ((X2 Int 0)) - (and - (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 true) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool top.usr.KP_START_a_0)) - (let - ((X5 Int (ite (not X4) 0 1))) - (and - (= top.impl.usr.KP_91_a_0 top.usr.KP_9_a_0) - (= top.impl.usr.KP_81_a_0 top.usr.KP_8_a_0) - (= top.impl.usr.KP_71_a_0 top.usr.KP_7_a_0) - (= top.impl.usr.KP_61_a_0 top.usr.KP_6_a_0) - (= top.impl.usr.KP_51_a_0 top.usr.KP_5_a_0) - (= top.impl.usr.KP_41_a_0 top.usr.KP_4_a_0) - (= top.impl.usr.KP_31_a_0 top.usr.KP_3_a_0) - (= top.impl.usr.KP_21_a_0 top.usr.KP_2_a_0) - (= top.impl.usr.KP_11_a_0 top.usr.KP_1_a_0) - (= top.impl.usr.KP_01_a_0 top.usr.KP_0_a_0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - (ite - top.usr.KP_CLEAR_a_0 - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01_a_0 - 0 - (ite - top.impl.usr.KP_11_a_0 - 1 - (ite - top.impl.usr.KP_21_a_0 - 2 - (ite - top.impl.usr.KP_31_a_0 - 3 - (ite - top.impl.usr.KP_41_a_0 - 4 - (ite - top.impl.usr.KP_51_a_0 - 5 - (ite - top.impl.usr.KP_61_a_0 - 6 - (ite - top.impl.usr.KP_71_a_0 - 7 - (ite - top.impl.usr.KP_81_a_0 - 8 - (ite top.impl.usr.KP_91_a_0 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01_a_0 - 0 - (ite - top.impl.usr.KP_11_a_0 - 1 - (ite - top.impl.usr.KP_21_a_0 - 2 - (ite - top.impl.usr.KP_31_a_0 - 3 - (ite - top.impl.usr.KP_41_a_0 - 4 - (ite - top.impl.usr.KP_51_a_0 - 5 - (ite - top.impl.usr.KP_61_a_0 - 6 - (ite - top.impl.usr.KP_71_a_0 - 7 - (ite - top.impl.usr.KP_81_a_0 - 8 - (ite top.impl.usr.KP_91_a_0 9 10)))))))))) - 0))) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - 0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 0) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 - true) - (let - ((X6 Bool true)) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 - X6) - (= - top.impl.usr.STEPS_TO_COOK_a_0 - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0)) - 0 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 60)) - 1))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK_a_0 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED_a_0) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK_a_0 X1))) - (let - ((X18 Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 Bool top.usr.KP_CLEAR_a_0)) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (div - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - 1) - 60) - 60)) - 10))) - (let - ((X34 Int X33)) - (and - (= - top.usr.OK_a_0 - (or - (not (and X6 top.usr.KP_CLEAR_a_0)) - (= X34 0))) - (let - ((X35 Int 0)) - (let - ((X36 - Int (ite - X12 - (ite (not (= X9 2)) 2 X35) - X35))) - (let - ((X37 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X36) - X36) - X35))) - (let - ((X38 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X39 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X37) - X37))) - (let - ((X40 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X39) - X39))) - (let - ((X41 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X41) - X41))) - (let - ((X43 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X38) - X38))) - (let - ((X44 - Bool (and - (= X43 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not - (= X11 0)) - true - false))) - (not - (or X32 X31)))))) - (let - ((X45 - Int (ite - X44 - (ite - (= X43 2) - 1 - X43) - X43))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - (ite - (not (= X2 4)) - 1 - X35) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X42) - X42) - X37)) - X35)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode_a_0 - top.impl.usr.chart_microwave_mode_logic_mode_a_0) - (let - ((X46 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - X46 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X45) - X45) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - top.res.init_flag_a_0))))))))))))))))))))))))))))))))))))))))))))))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.KP_START_a_1 Bool) - (top.usr.KP_CLEAR_a_1 Bool) - (top.usr.KP_0_a_1 Bool) - (top.usr.KP_1_a_1 Bool) - (top.usr.KP_2_a_1 Bool) - (top.usr.KP_3_a_1 Bool) - (top.usr.KP_4_a_1 Bool) - (top.usr.KP_5_a_1 Bool) - (top.usr.KP_6_a_1 Bool) - (top.usr.KP_7_a_1 Bool) - (top.usr.KP_8_a_1 Bool) - (top.usr.KP_9_a_1 Bool) - (top.usr.DOOR_CLOSED_a_1 Bool) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.STEPS_TO_COOK_a_1 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 Bool) - (top.impl.usr.KP_01_a_1 Bool) - (top.impl.usr.KP_11_a_1 Bool) - (top.impl.usr.KP_21_a_1 Bool) - (top.impl.usr.KP_31_a_1 Bool) - (top.impl.usr.KP_41_a_1 Bool) - (top.impl.usr.KP_51_a_1 Bool) - (top.impl.usr.KP_61_a_1 Bool) - (top.impl.usr.KP_71_a_1 Bool) - (top.impl.usr.KP_81_a_1 Bool) - (top.impl.usr.KP_91_a_1 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_1 Int) - (top.usr.KP_START_a_0 Bool) - (top.usr.KP_CLEAR_a_0 Bool) - (top.usr.KP_0_a_0 Bool) - (top.usr.KP_1_a_0 Bool) - (top.usr.KP_2_a_0 Bool) - (top.usr.KP_3_a_0 Bool) - (top.usr.KP_4_a_0 Bool) - (top.usr.KP_5_a_0 Bool) - (top.usr.KP_6_a_0 Bool) - (top.usr.KP_7_a_0 Bool) - (top.usr.KP_8_a_0 Bool) - (top.usr.KP_9_a_0 Bool) - (top.usr.DOOR_CLOSED_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.STEPS_TO_COOK_a_0 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) - (top.impl.usr.KP_01_a_0 Bool) - (top.impl.usr.KP_11_a_0 Bool) - (top.impl.usr.KP_21_a_0 Bool) - (top.impl.usr.KP_31_a_0 Bool) - (top.impl.usr.KP_41_a_0 Bool) - (top.impl.usr.KP_51_a_0 Bool) - (top.impl.usr.KP_61_a_0 Bool) - (top.impl.usr.KP_71_a_0 Bool) - (top.impl.usr.KP_81_a_0 Bool) - (top.impl.usr.KP_91_a_0 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int) - ) Bool - - (let - ((X1 Int top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0)) - (let - ((X2 - Int top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0)) - (and - (= - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - false - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0)) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool (and top.usr.KP_START_a_1 (not top.usr.KP_START_a_0)))) - (let - ((X5 Int (ite (not X4) 0 1))) - (let - ((X6 - Bool (ite - (= 1 top.impl.usr.microwave_microwave_mode_logic_mode_a_0) - true - false))) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - X6) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (ite - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1) - true - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 - false - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0))) - (= top.impl.usr.KP_91_a_1 top.usr.KP_9_a_1) - (= top.impl.usr.KP_81_a_1 top.usr.KP_8_a_1) - (= top.impl.usr.KP_71_a_1 top.usr.KP_7_a_1) - (= top.impl.usr.KP_61_a_1 top.usr.KP_6_a_1) - (= top.impl.usr.KP_51_a_1 top.usr.KP_5_a_1) - (= top.impl.usr.KP_41_a_1 top.usr.KP_4_a_1) - (= top.impl.usr.KP_31_a_1 top.usr.KP_3_a_1) - (= top.impl.usr.KP_21_a_1 top.usr.KP_2_a_1) - (= top.impl.usr.KP_11_a_1 top.usr.KP_1_a_1) - (= top.impl.usr.KP_01_a_1 top.usr.KP_0_a_1) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01_a_1 - 0 - (ite - top.impl.usr.KP_11_a_1 - 1 - (ite - top.impl.usr.KP_21_a_1 - 2 - (ite - top.impl.usr.KP_31_a_1 - 3 - (ite - top.impl.usr.KP_41_a_1 - 4 - (ite - top.impl.usr.KP_51_a_1 - 5 - (ite - top.impl.usr.KP_61_a_1 - 6 - (ite - top.impl.usr.KP_71_a_1 - 7 - (ite - top.impl.usr.KP_81_a_1 - 8 - (ite top.impl.usr.KP_91_a_1 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01_a_1 - 0 - (ite - top.impl.usr.KP_11_a_1 - 1 - (ite - top.impl.usr.KP_21_a_1 - 2 - (ite - top.impl.usr.KP_31_a_1 - 3 - (ite - top.impl.usr.KP_41_a_1 - 4 - (ite - top.impl.usr.KP_51_a_1 - 5 - (ite - top.impl.usr.KP_61_a_1 - 6 - (ite - top.impl.usr.KP_71_a_1 - 7 - (ite - top.impl.usr.KP_81_a_1 - 8 - (ite top.impl.usr.KP_91_a_1 9 10)))))))))) - 0)) - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and - top.impl.usr.KP_71_a_1 - (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and - top.impl.usr.KP_81_a_1 - (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - 0 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and - top.impl.usr.KP_71_a_1 - (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and - top.impl.usr.KP_81_a_1 - (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - 0 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and - top.impl.usr.KP_71_a_1 - (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and - top.impl.usr.KP_81_a_1 - (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.STEPS_TO_COOK_a_1 - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1)) - 0 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 - 60)) - 1) - top.impl.usr.STEPS_TO_COOK_a_0))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK_a_1 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED_a_1) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK_a_1 X1))) - (let - ((X18 Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 - Bool (and - top.usr.KP_CLEAR_a_1 - (not top.usr.KP_CLEAR_a_0)))) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (div - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - 1) - 60) - 60)) - 10))) - (let - ((X34 Int X33)) - (and - (= - top.usr.OK_a_1 - (or - (not (and X6 top.usr.KP_CLEAR_a_1)) - (= X34 0))) - (let - ((X35 - Int top.impl.usr.chart_microwave_mode_logic_mode_a_0)) - (let - ((X36 - Int (ite - X12 - (ite (not (= X9 2)) 2 X35) - X35))) - (let - ((X37 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X36) - X36) - X35))) - (let - ((X38 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X39 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X37) - X37))) - (let - ((X40 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X39) - X39))) - (let - ((X41 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X41) - X41))) - (let - ((X43 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X38) - X38))) - (let - ((X44 - Bool (and - (= X43 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not (= X11 0)) - true - false))) - (not (or X32 X31)))))) - (let - ((X45 - Int (ite - X44 - (ite - (= X43 2) - 1 - X43) - X43))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - (ite - (not (= X2 4)) - 1 - X35) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X42) - X42) - X37)) - X35)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode_a_1 - top.impl.usr.chart_microwave_mode_logic_mode_a_1) - (let - ((X46 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - X46 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X45) - X45) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - (not - top.res.init_flag_a_1))))))))))))))))))))))))))))))))))))))))))))))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) -)) - -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.KP_START Bool) -(declare-primed-var top.usr.KP_CLEAR Bool) -(declare-primed-var top.usr.KP_0 Bool) -(declare-primed-var top.usr.KP_1 Bool) -(declare-primed-var top.usr.KP_2 Bool) -(declare-primed-var top.usr.KP_3 Bool) -(declare-primed-var top.usr.KP_4 Bool) -(declare-primed-var top.usr.KP_5 Bool) -(declare-primed-var top.usr.KP_6 Bool) -(declare-primed-var top.usr.KP_7 Bool) -(declare-primed-var top.usr.KP_8 Bool) -(declare-primed-var top.usr.KP_9 Bool) -(declare-primed-var top.usr.DOOR_CLOSED Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.STEPS_TO_COOK Int) -(declare-primed-var top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) -(declare-primed-var top.impl.usr.KP_01 Bool) -(declare-primed-var top.impl.usr.KP_11 Bool) -(declare-primed-var top.impl.usr.KP_21 Bool) -(declare-primed-var top.impl.usr.KP_31 Bool) -(declare-primed-var top.impl.usr.KP_41 Bool) -(declare-primed-var top.impl.usr.KP_51 Bool) -(declare-primed-var top.impl.usr.KP_61 Bool) -(declare-primed-var top.impl.usr.KP_71 Bool) -(declare-primed-var top.impl.usr.KP_81 Bool) -(declare-primed-var top.impl.usr.KP_91 Bool) -(declare-primed-var top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_mode Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) -(declare-primed-var top.impl.usr.microwave_microwave_mode_logic_mode Int) - -(define-fun - init ( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - ) Bool - - (let - ((X1 Int 0)) - (let - ((X2 Int 0)) - (and - (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep true) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool top.usr.KP_START)) - (let - ((X5 Int (ite (not X4) 0 1))) - (and - (= top.impl.usr.KP_91 top.usr.KP_9) - (= top.impl.usr.KP_81 top.usr.KP_8) - (= top.impl.usr.KP_71 top.usr.KP_7) - (= top.impl.usr.KP_61 top.usr.KP_6) - (= top.impl.usr.KP_51 top.usr.KP_5) - (= top.impl.usr.KP_41 top.usr.KP_4) - (= top.impl.usr.KP_31 top.usr.KP_3) - (= top.impl.usr.KP_21 top.usr.KP_2) - (= top.impl.usr.KP_11 top.usr.KP_1) - (= top.impl.usr.KP_01 top.usr.KP_0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - (ite - top.usr.KP_CLEAR - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01 - 0 - (ite - top.impl.usr.KP_11 - 1 - (ite - top.impl.usr.KP_21 - 2 - (ite - top.impl.usr.KP_31 - 3 - (ite - top.impl.usr.KP_41 - 4 - (ite - top.impl.usr.KP_51 - 5 - (ite - top.impl.usr.KP_61 - 6 - (ite - top.impl.usr.KP_71 - 7 - (ite - top.impl.usr.KP_81 - 8 - (ite top.impl.usr.KP_91 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01 - 0 - (ite - top.impl.usr.KP_11 - 1 - (ite - top.impl.usr.KP_21 - 2 - (ite - top.impl.usr.KP_31 - 3 - (ite - top.impl.usr.KP_41 - 4 - (ite - top.impl.usr.KP_51 - 5 - (ite - top.impl.usr.KP_61 - 6 - (ite - top.impl.usr.KP_71 - 7 - (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) - 0))) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - 0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY - 0) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step - true) - (let - ((X6 Bool true)) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock - X6) - (= - top.impl.usr.STEPS_TO_COOK - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock)) - 0 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY - 60)) - 1))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK X1))) - (let - ((X18 Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 Bool top.usr.KP_CLEAR)) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup___ - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (div - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining - 1) - 60) - 60)) - 10))) - (let - ((X34 Int X33)) - (and - (= - top.usr.OK - (or - (not (and X6 top.usr.KP_CLEAR)) - (= X34 0))) - (let - ((X35 Int 0)) - (let - ((X36 - Int (ite - X12 - (ite (not (= X9 2)) 2 X35) - X35))) - (let - ((X37 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X36) - X36) - X35))) - (let - ((X38 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X39 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X37) - X37))) - (let - ((X40 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X39) - X39))) - (let - ((X41 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X41) - X41))) - (let - ((X43 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X38) - X38))) - (let - ((X44 - Bool (and - (= X43 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not - (= X11 0)) - true - false))) - (not - (or X32 X31)))))) - (let - ((X45 - Int (ite - X44 - (ite - (= X43 2) - 1 - X43) - X43))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - (ite - (not (= X2 4)) - 1 - X35) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X42) - X42) - X37)) - X35)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode - top.impl.usr.chart_microwave_mode_logic_mode) - (let - ((X46 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - X46 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X45) - X45) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - top.res.init_flag))))))))))))))))))))))))))))))))))))))))))))))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - - ;; Next state. - (top.usr.KP_START! Bool) - (top.usr.KP_CLEAR! Bool) - (top.usr.KP_0! Bool) - (top.usr.KP_1! Bool) - (top.usr.KP_2! Bool) - (top.usr.KP_3! Bool) - (top.usr.KP_4! Bool) - (top.usr.KP_5! Bool) - (top.usr.KP_6! Bool) - (top.usr.KP_7! Bool) - (top.usr.KP_8! Bool) - (top.usr.KP_9! Bool) - (top.usr.DOOR_CLOSED! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.STEPS_TO_COOK! Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! Bool) - (top.impl.usr.KP_01! Bool) - (top.impl.usr.KP_11! Bool) - (top.impl.usr.KP_21! Bool) - (top.impl.usr.KP_31! Bool) - (top.impl.usr.KP_41! Bool) - (top.impl.usr.KP_51! Bool) - (top.impl.usr.KP_61! Bool) - (top.impl.usr.KP_71! Bool) - (top.impl.usr.KP_81! Bool) - (top.impl.usr.KP_91! Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___! Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root! Int) - (top.impl.usr.chart_microwave_mode_logic_mode! Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining! Int) - (top.impl.usr.microwave_microwave_mode_logic_mode! Int) - - ) Bool - - (and - (let - ((X1 Int top.impl.usr.chart_microwave_mode_logic_steps_remaining)) - (let - ((X2 - Int top.impl.usr.chart_microwave_mode_logic_final_state_states___root)) - (and - (= - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - false - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep)) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool (and top.usr.KP_START! (not top.usr.KP_START)))) - (let - ((X5 Int (ite (not X4) 0 1))) - (let - ((X6 - Bool (ite - (= 1 top.impl.usr.microwave_microwave_mode_logic_mode) - true - false))) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - X6) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (ite - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!) - true - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock - false - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step))) - (= top.impl.usr.KP_91! top.usr.KP_9!) - (= top.impl.usr.KP_81! top.usr.KP_8!) - (= top.impl.usr.KP_71! top.usr.KP_7!) - (= top.impl.usr.KP_61! top.usr.KP_6!) - (= top.impl.usr.KP_51! top.usr.KP_5!) - (= top.impl.usr.KP_41! top.usr.KP_4!) - (= top.impl.usr.KP_31! top.usr.KP_3!) - (= top.impl.usr.KP_21! top.usr.KP_2!) - (= top.impl.usr.KP_11! top.usr.KP_1!) - (= top.impl.usr.KP_01! top.usr.KP_0!) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01! - 0 - (ite - top.impl.usr.KP_11! - 1 - (ite - top.impl.usr.KP_21! - 2 - (ite - top.impl.usr.KP_31! - 3 - (ite - top.impl.usr.KP_41! - 4 - (ite - top.impl.usr.KP_51! - 5 - (ite - top.impl.usr.KP_61! - 6 - (ite - top.impl.usr.KP_71! - 7 - (ite - top.impl.usr.KP_81! - 8 - (ite top.impl.usr.KP_91! 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01! - 0 - (ite - top.impl.usr.KP_11! - 1 - (ite - top.impl.usr.KP_21! - 2 - (ite - top.impl.usr.KP_31! - 3 - (ite - top.impl.usr.KP_41! - 4 - (ite - top.impl.usr.KP_51! - 5 - (ite - top.impl.usr.KP_61! - 6 - (ite - top.impl.usr.KP_71! - 7 - (ite - top.impl.usr.KP_81! - 8 - (ite top.impl.usr.KP_91! 9 10)))))))))) - 0)) - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and - top.impl.usr.KP_91! - (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - 0 - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and - top.impl.usr.KP_91! - (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - 0 - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and - top.impl.usr.KP_91! - (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.STEPS_TO_COOK! - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!)) - 0 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! - 60)) - 1) - top.impl.usr.STEPS_TO_COOK))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK! 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED!) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK! X1))) - (let - ((X18 Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 - Bool (and - top.usr.KP_CLEAR! - (not top.usr.KP_CLEAR)))) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup___! - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (div - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - 1) - 60) - 60)) - 10))) - (let - ((X34 Int X33)) - (and - (= - top.usr.OK! - (or - (not (and X6 top.usr.KP_CLEAR!)) - (= X34 0))) - (let - ((X35 - Int top.impl.usr.chart_microwave_mode_logic_mode)) - (let - ((X36 - Int (ite - X12 - (ite (not (= X9 2)) 2 X35) - X35))) - (let - ((X37 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X36) - X36) - X35))) - (let - ((X38 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X39 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X37) - X37))) - (let - ((X40 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X39) - X39))) - (let - ((X41 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X41) - X41))) - (let - ((X43 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X38) - X38))) - (let - ((X44 - Bool (and - (= X43 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not - (= X11 0)) - true - false))) - (not - (or X32 X31)))))) - (let - ((X45 - Int (ite - X44 - (ite - (= X43 2) - 1 - X43) - X43))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - (ite - (not (= X2 4)) - 1 - X35) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X42) - X42) - X37)) - X35)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode! - top.impl.usr.chart_microwave_mode_logic_mode!) - (let - ((X46 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - X46 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X45) - X45) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - (not - top.res.init_flag!))))))))))))))))))))))))))))))))))))))))))))))))))))) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - ) Bool - - top.usr.OK -) +(define-fun __node_init_top_0 ((top.usr.KP_START_a_0 Bool) (top.usr.KP_CLEAR_a_0 Bool) (top.usr.KP_0_a_0 Bool) (top.usr.KP_1_a_0 Bool) (top.usr.KP_2_a_0 Bool) (top.usr.KP_3_a_0 Bool) (top.usr.KP_4_a_0 Bool) (top.usr.KP_5_a_0 Bool) (top.usr.KP_6_a_0 Bool) (top.usr.KP_7_a_0 Bool) (top.usr.KP_8_a_0 Bool) (top.usr.KP_9_a_0 Bool) (top.usr.DOOR_CLOSED_a_0 Bool) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.STEPS_TO_COOK_a_0 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) (top.impl.usr.KP_01_a_0 Bool) (top.impl.usr.KP_11_a_0 Bool) (top.impl.usr.KP_21_a_0 Bool) (top.impl.usr.KP_31_a_0 Bool) (top.impl.usr.KP_41_a_0 Bool) (top.impl.usr.KP_51_a_0 Bool) (top.impl.usr.KP_61_a_0 Bool) (top.impl.usr.KP_71_a_0 Bool) (top.impl.usr.KP_81_a_0 Bool) (top.impl.usr.KP_91_a_0 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int)) Bool + (let ((X1 0)) (let ((X2 0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 true) (let ((X3 (= X2 4))) (let ((X4 top.usr.KP_START_a_0)) (let ((X5 (ite (not X4) 0 1))) (and (= top.impl.usr.KP_91_a_0 top.usr.KP_9_a_0) (= top.impl.usr.KP_81_a_0 top.usr.KP_8_a_0) (= top.impl.usr.KP_71_a_0 top.usr.KP_7_a_0) (= top.impl.usr.KP_61_a_0 top.usr.KP_6_a_0) (= top.impl.usr.KP_51_a_0 top.usr.KP_5_a_0) (= top.impl.usr.KP_41_a_0 top.usr.KP_4_a_0) (= top.impl.usr.KP_31_a_0 top.usr.KP_3_a_0) (= top.impl.usr.KP_21_a_0 top.usr.KP_2_a_0) (= top.impl.usr.KP_11_a_0 top.usr.KP_1_a_0) (= top.impl.usr.KP_01_a_0 top.usr.KP_0_a_0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 (ite top.usr.KP_CLEAR_a_0 0 (ite (ite (<= (ite top.impl.usr.KP_01_a_0 0 (ite top.impl.usr.KP_11_a_0 1 (ite top.impl.usr.KP_21_a_0 2 (ite top.impl.usr.KP_31_a_0 3 (ite top.impl.usr.KP_41_a_0 4 (ite top.impl.usr.KP_51_a_0 5 (ite top.impl.usr.KP_61_a_0 6 (ite top.impl.usr.KP_71_a_0 7 (ite top.impl.usr.KP_81_a_0 8 (ite top.impl.usr.KP_91_a_0 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01_a_0 0 (ite top.impl.usr.KP_11_a_0 1 (ite top.impl.usr.KP_21_a_0 2 (ite top.impl.usr.KP_31_a_0 3 (ite top.impl.usr.KP_41_a_0 4 (ite top.impl.usr.KP_51_a_0 5 (ite top.impl.usr.KP_61_a_0 6 (ite top.impl.usr.KP_71_a_0 7 (ite top.impl.usr.KP_81_a_0 8 (ite top.impl.usr.KP_91_a_0 9 10)))))))))) 0))) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 0) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 true) (let ((X6 true)) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 X6) (= top.impl.usr.STEPS_TO_COOK_a_0 (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0)) 0 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 60)) 1))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK_a_0 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED_a_0) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK_a_0 X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 top.usr.KP_CLEAR_a_0)) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (div (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 1) 60) 60)) 10))) (let ((X34 X33)) (and (= top.usr.OK_a_0 (or (not (and X6 top.usr.KP_CLEAR_a_0)) (= X34 0))) (let ((X35 0)) (let ((X36 (ite X12 (ite (not (= X9 2)) 2 X35) X35))) (let ((X37 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X36) X36) X35))) (let ((X38 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X39 (ite X18 (ite (not (= X19 4)) 1 X37) X37))) (let ((X40 (ite X21 (ite (not (= X22 2)) 2 X39) X39))) (let ((X41 (ite X27 (ite (not (= X28 4)) 1 X40) X40))) (let ((X42 (ite X32 (ite (not (= X38 2)) 2 X41) X41))) (let ((X43 (ite X32 (ite (not (= X38 2)) 2 X38) X38))) (let ((X44 (and (= X43 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X45 (ite X44 (ite (= X43 2) 1 X43) X43))) (and (= top.impl.usr.chart_microwave_mode_logic_mode_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 (ite (not (= X2 4)) 1 X35) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X42) X42) X37)) X35)) (= top.impl.usr.microwave_microwave_mode_logic_mode_a_0 top.impl.usr.chart_microwave_mode_logic_mode_a_0) (let ((X46 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 X46 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X45) X45) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) top.res.init_flag_a_0)))))))))))))))))))))))))))))))))))))))))))))))))))))) +(define-fun __node_trans_top_0 ((top.usr.KP_START_a_1 Bool) (top.usr.KP_CLEAR_a_1 Bool) (top.usr.KP_0_a_1 Bool) (top.usr.KP_1_a_1 Bool) (top.usr.KP_2_a_1 Bool) (top.usr.KP_3_a_1 Bool) (top.usr.KP_4_a_1 Bool) (top.usr.KP_5_a_1 Bool) (top.usr.KP_6_a_1 Bool) (top.usr.KP_7_a_1 Bool) (top.usr.KP_8_a_1 Bool) (top.usr.KP_9_a_1 Bool) (top.usr.DOOR_CLOSED_a_1 Bool) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.STEPS_TO_COOK_a_1 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 Bool) (top.impl.usr.KP_01_a_1 Bool) (top.impl.usr.KP_11_a_1 Bool) (top.impl.usr.KP_21_a_1 Bool) (top.impl.usr.KP_31_a_1 Bool) (top.impl.usr.KP_41_a_1 Bool) (top.impl.usr.KP_51_a_1 Bool) (top.impl.usr.KP_61_a_1 Bool) (top.impl.usr.KP_71_a_1 Bool) (top.impl.usr.KP_81_a_1 Bool) (top.impl.usr.KP_91_a_1 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_1 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_1 Int) (top.usr.KP_START_a_0 Bool) (top.usr.KP_CLEAR_a_0 Bool) (top.usr.KP_0_a_0 Bool) (top.usr.KP_1_a_0 Bool) (top.usr.KP_2_a_0 Bool) (top.usr.KP_3_a_0 Bool) (top.usr.KP_4_a_0 Bool) (top.usr.KP_5_a_0 Bool) (top.usr.KP_6_a_0 Bool) (top.usr.KP_7_a_0 Bool) (top.usr.KP_8_a_0 Bool) (top.usr.KP_9_a_0 Bool) (top.usr.DOOR_CLOSED_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.STEPS_TO_COOK_a_0 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) (top.impl.usr.KP_01_a_0 Bool) (top.impl.usr.KP_11_a_0 Bool) (top.impl.usr.KP_21_a_0 Bool) (top.impl.usr.KP_31_a_0 Bool) (top.impl.usr.KP_41_a_0 Bool) (top.impl.usr.KP_51_a_0 Bool) (top.impl.usr.KP_61_a_0 Bool) (top.impl.usr.KP_71_a_0 Bool) (top.impl.usr.KP_81_a_0 Bool) (top.impl.usr.KP_91_a_0 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int)) Bool + (let ((X1 top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0)) (let ((X2 top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 false top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0)) (let ((X3 (= X2 4))) (let ((X4 (and top.usr.KP_START_a_1 (not top.usr.KP_START_a_0)))) (let ((X5 (ite (not X4) 0 1))) (let ((X6 (ite (= 1 top.impl.usr.microwave_microwave_mode_logic_mode_a_0) true false))) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 X6) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (ite (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1) true (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 false top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0))) (= top.impl.usr.KP_91_a_1 top.usr.KP_9_a_1) (= top.impl.usr.KP_81_a_1 top.usr.KP_8_a_1) (= top.impl.usr.KP_71_a_1 top.usr.KP_7_a_1) (= top.impl.usr.KP_61_a_1 top.usr.KP_6_a_1) (= top.impl.usr.KP_51_a_1 top.usr.KP_5_a_1) (= top.impl.usr.KP_41_a_1 top.usr.KP_4_a_1) (= top.impl.usr.KP_31_a_1 top.usr.KP_3_a_1) (= top.impl.usr.KP_21_a_1 top.usr.KP_2_a_1) (= top.impl.usr.KP_11_a_1 top.usr.KP_1_a_1) (= top.impl.usr.KP_01_a_1 top.usr.KP_0_a_1) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite top.impl.usr.KP_01_a_1 0 (ite top.impl.usr.KP_11_a_1 1 (ite top.impl.usr.KP_21_a_1 2 (ite top.impl.usr.KP_31_a_1 3 (ite top.impl.usr.KP_41_a_1 4 (ite top.impl.usr.KP_51_a_1 5 (ite top.impl.usr.KP_61_a_1 6 (ite top.impl.usr.KP_71_a_1 7 (ite top.impl.usr.KP_81_a_1 8 (ite top.impl.usr.KP_91_a_1 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01_a_1 0 (ite top.impl.usr.KP_11_a_1 1 (ite top.impl.usr.KP_21_a_1 2 (ite top.impl.usr.KP_31_a_1 3 (ite top.impl.usr.KP_41_a_1 4 (ite top.impl.usr.KP_51_a_1 5 (ite top.impl.usr.KP_61_a_1 6 (ite top.impl.usr.KP_71_a_1 7 (ite top.impl.usr.KP_81_a_1 8 (ite top.impl.usr.KP_91_a_1 9 10)))))))))) 0)) (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 0 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 0 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.STEPS_TO_COOK_a_1 (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1)) 0 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 60)) 1) top.impl.usr.STEPS_TO_COOK_a_0))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK_a_1 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED_a_1) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK_a_1 X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 (and top.usr.KP_CLEAR_a_1 (not top.usr.KP_CLEAR_a_0)))) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (div (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 1) 60) 60)) 10))) (let ((X34 X33)) (and (= top.usr.OK_a_1 (or (not (and X6 top.usr.KP_CLEAR_a_1)) (= X34 0))) (let ((X35 top.impl.usr.chart_microwave_mode_logic_mode_a_0)) (let ((X36 (ite X12 (ite (not (= X9 2)) 2 X35) X35))) (let ((X37 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X36) X36) X35))) (let ((X38 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X39 (ite X18 (ite (not (= X19 4)) 1 X37) X37))) (let ((X40 (ite X21 (ite (not (= X22 2)) 2 X39) X39))) (let ((X41 (ite X27 (ite (not (= X28 4)) 1 X40) X40))) (let ((X42 (ite X32 (ite (not (= X38 2)) 2 X41) X41))) (let ((X43 (ite X32 (ite (not (= X38 2)) 2 X38) X38))) (let ((X44 (and (= X43 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X45 (ite X44 (ite (= X43 2) 1 X43) X43))) (and (= top.impl.usr.chart_microwave_mode_logic_mode_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 (ite (not (= X2 4)) 1 X35) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X42) X42) X37)) X35)) (= top.impl.usr.microwave_microwave_mode_logic_mode_a_1 top.impl.usr.chart_microwave_mode_logic_mode_a_1) (let ((X46 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 X46 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X45) X45) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) (not top.res.init_flag_a_1)))))))))))))))))))))))))))))))))))))))))))))))))))))) +(synth-inv str_invariant ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int))) + +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int)) Bool + (let ((X1 0)) (let ((X2 0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep true) (let ((X3 (= X2 4))) (let ((X4 top.usr.KP_START)) (let ((X5 (ite (not X4) 0 1))) (and (= top.impl.usr.KP_91 top.usr.KP_9) (= top.impl.usr.KP_81 top.usr.KP_8) (= top.impl.usr.KP_71 top.usr.KP_7) (= top.impl.usr.KP_61 top.usr.KP_6) (= top.impl.usr.KP_51 top.usr.KP_5) (= top.impl.usr.KP_41 top.usr.KP_4) (= top.impl.usr.KP_31 top.usr.KP_3) (= top.impl.usr.KP_21 top.usr.KP_2) (= top.impl.usr.KP_11 top.usr.KP_1) (= top.impl.usr.KP_01 top.usr.KP_0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY (ite top.usr.KP_CLEAR 0 (ite (ite (<= (ite top.impl.usr.KP_01 0 (ite top.impl.usr.KP_11 1 (ite top.impl.usr.KP_21 2 (ite top.impl.usr.KP_31 3 (ite top.impl.usr.KP_41 4 (ite top.impl.usr.KP_51 5 (ite top.impl.usr.KP_61 6 (ite top.impl.usr.KP_71 7 (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01 0 (ite top.impl.usr.KP_11 1 (ite top.impl.usr.KP_21 2 (ite top.impl.usr.KP_31 3 (ite top.impl.usr.KP_41 4 (ite top.impl.usr.KP_51 5 (ite top.impl.usr.KP_61 6 (ite top.impl.usr.KP_71 7 (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) 0))) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY 0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY 0) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step true) (let ((X6 true)) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock X6) (= top.impl.usr.STEPS_TO_COOK (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock)) 0 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY 60)) 1))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 top.usr.KP_CLEAR)) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup___ true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (div (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining 1) 60) 60)) 10))) (let ((X34 X33)) (and (= top.usr.OK (or (not (and X6 top.usr.KP_CLEAR)) (= X34 0))) (let ((X35 0)) (let ((X36 (ite X12 (ite (not (= X9 2)) 2 X35) X35))) (let ((X37 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X36) X36) X35))) (let ((X38 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X39 (ite X18 (ite (not (= X19 4)) 1 X37) X37))) (let ((X40 (ite X21 (ite (not (= X22 2)) 2 X39) X39))) (let ((X41 (ite X27 (ite (not (= X28 4)) 1 X40) X40))) (let ((X42 (ite X32 (ite (not (= X38 2)) 2 X41) X41))) (let ((X43 (ite X32 (ite (not (= X38 2)) 2 X38) X38))) (let ((X44 (and (= X43 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X45 (ite X44 (ite (= X43 2) 1 X43) X43))) (and (= top.impl.usr.chart_microwave_mode_logic_mode (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep (ite (not (= X2 4)) 1 X35) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X42) X42) X37)) X35)) (= top.impl.usr.microwave_microwave_mode_logic_mode top.impl.usr.chart_microwave_mode_logic_mode) (let ((X46 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep X46 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X45) X45) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) top.res.init_flag)))))))))))))))))))))))))))))))))))))))))))))))))))))) +(define-fun trans ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int) (top.usr.KP_START! Bool) (top.usr.KP_CLEAR! Bool) (top.usr.KP_0! Bool) (top.usr.KP_1! Bool) (top.usr.KP_2! Bool) (top.usr.KP_3! Bool) (top.usr.KP_4! Bool) (top.usr.KP_5! Bool) (top.usr.KP_6! Bool) (top.usr.KP_7! Bool) (top.usr.KP_8! Bool) (top.usr.KP_9! Bool) (top.usr.DOOR_CLOSED! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.STEPS_TO_COOK! Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! Bool) (top.impl.usr.KP_01! Bool) (top.impl.usr.KP_11! Bool) (top.impl.usr.KP_21! Bool) (top.impl.usr.KP_31! Bool) (top.impl.usr.KP_41! Bool) (top.impl.usr.KP_51! Bool) (top.impl.usr.KP_61! Bool) (top.impl.usr.KP_71! Bool) (top.impl.usr.KP_81! Bool) (top.impl.usr.KP_91! Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___! Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root! Int) (top.impl.usr.chart_microwave_mode_logic_mode! Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining! Int) (top.impl.usr.microwave_microwave_mode_logic_mode! Int)) Bool + (and (let ((X1 top.impl.usr.chart_microwave_mode_logic_steps_remaining)) (let ((X2 top.impl.usr.chart_microwave_mode_logic_final_state_states___root)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ false top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep)) (let ((X3 (= X2 4))) (let ((X4 (and top.usr.KP_START! (not top.usr.KP_START)))) (let ((X5 (ite (not X4) 0 1))) (let ((X6 (ite (= 1 top.impl.usr.microwave_microwave_mode_logic_mode) true false))) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! X6) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (ite (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!) true (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock false top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step))) (= top.impl.usr.KP_91! top.usr.KP_9!) (= top.impl.usr.KP_81! top.usr.KP_8!) (= top.impl.usr.KP_71! top.usr.KP_7!) (= top.impl.usr.KP_61! top.usr.KP_6!) (= top.impl.usr.KP_51! top.usr.KP_5!) (= top.impl.usr.KP_41! top.usr.KP_4!) (= top.impl.usr.KP_31! top.usr.KP_3!) (= top.impl.usr.KP_21! top.usr.KP_2!) (= top.impl.usr.KP_11! top.usr.KP_1!) (= top.impl.usr.KP_01! top.usr.KP_0!) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite top.impl.usr.KP_01! 0 (ite top.impl.usr.KP_11! 1 (ite top.impl.usr.KP_21! 2 (ite top.impl.usr.KP_31! 3 (ite top.impl.usr.KP_41! 4 (ite top.impl.usr.KP_51! 5 (ite top.impl.usr.KP_61! 6 (ite top.impl.usr.KP_71! 7 (ite top.impl.usr.KP_81! 8 (ite top.impl.usr.KP_91! 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01! 0 (ite top.impl.usr.KP_11! 1 (ite top.impl.usr.KP_21! 2 (ite top.impl.usr.KP_31! 3 (ite top.impl.usr.KP_41! 4 (ite top.impl.usr.KP_51! 5 (ite top.impl.usr.KP_61! 6 (ite top.impl.usr.KP_71! 7 (ite top.impl.usr.KP_81! 8 (ite top.impl.usr.KP_91! 9 10)))))))))) 0)) (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! 0 (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! 0 (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.STEPS_TO_COOK! (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!)) 0 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! 60)) 1) top.impl.usr.STEPS_TO_COOK))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK! 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED!) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK! X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 (and top.usr.KP_CLEAR! (not top.usr.KP_CLEAR)))) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup___! true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (div (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining! 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining! 1) 60) 60)) 10))) (let ((X34 X33)) (and (= top.usr.OK! (or (not (and X6 top.usr.KP_CLEAR!)) (= X34 0))) (let ((X35 top.impl.usr.chart_microwave_mode_logic_mode)) (let ((X36 (ite X12 (ite (not (= X9 2)) 2 X35) X35))) (let ((X37 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X36) X36) X35))) (let ((X38 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X39 (ite X18 (ite (not (= X19 4)) 1 X37) X37))) (let ((X40 (ite X21 (ite (not (= X22 2)) 2 X39) X39))) (let ((X41 (ite X27 (ite (not (= X28 4)) 1 X40) X40))) (let ((X42 (ite X32 (ite (not (= X38 2)) 2 X41) X41))) (let ((X43 (ite X32 (ite (not (= X38 2)) 2 X38) X38))) (let ((X44 (and (= X43 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X45 (ite X44 (ite (= X43 2) 1 X43) X43))) (and (= top.impl.usr.chart_microwave_mode_logic_mode! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! (ite (not (= X2 4)) 1 X35) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X42) X42) X37)) X35)) (= top.impl.usr.microwave_microwave_mode_logic_mode! top.impl.usr.chart_microwave_mode_logic_mode!) (let ((X46 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! X46 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X45) X45) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) (not top.res.init_flag!))))))))))))))))))))))))))))))))))))))))))))))))))))) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/microwave26.sl b/benchmarks/LIA/Lustre/microwave26.sl index 9837ce8..d5a1f1c 100644 --- a/benchmarks/LIA/Lustre/microwave26.sl +++ b/benchmarks/LIA/Lustre/microwave26.sl @@ -1,2661 +1,25 @@ (set-logic LIA) -(define-fun - __node_init_top_0 ( - (top.usr.KP_START_a_0 Bool) - (top.usr.KP_CLEAR_a_0 Bool) - (top.usr.KP_0_a_0 Bool) - (top.usr.KP_1_a_0 Bool) - (top.usr.KP_2_a_0 Bool) - (top.usr.KP_3_a_0 Bool) - (top.usr.KP_4_a_0 Bool) - (top.usr.KP_5_a_0 Bool) - (top.usr.KP_6_a_0 Bool) - (top.usr.KP_7_a_0 Bool) - (top.usr.KP_8_a_0 Bool) - (top.usr.KP_9_a_0 Bool) - (top.usr.DOOR_CLOSED_a_0 Bool) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.STEPS_TO_COOK_a_0 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) - (top.impl.usr.KP_01_a_0 Bool) - (top.impl.usr.KP_11_a_0 Bool) - (top.impl.usr.KP_21_a_0 Bool) - (top.impl.usr.KP_31_a_0 Bool) - (top.impl.usr.KP_41_a_0 Bool) - (top.impl.usr.KP_51_a_0 Bool) - (top.impl.usr.KP_61_a_0 Bool) - (top.impl.usr.KP_71_a_0 Bool) - (top.impl.usr.KP_81_a_0 Bool) - (top.impl.usr.KP_91_a_0 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int 0)) - (let - ((X2 Int 0)) - (and - (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 true) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool top.usr.KP_START_a_0)) - (let - ((X5 Int (ite (not X4) 0 1))) - (and - (= top.impl.usr.KP_91_a_0 top.usr.KP_9_a_0) - (= top.impl.usr.KP_81_a_0 top.usr.KP_8_a_0) - (= top.impl.usr.KP_71_a_0 top.usr.KP_7_a_0) - (= top.impl.usr.KP_61_a_0 top.usr.KP_6_a_0) - (= top.impl.usr.KP_51_a_0 top.usr.KP_5_a_0) - (= top.impl.usr.KP_41_a_0 top.usr.KP_4_a_0) - (= top.impl.usr.KP_31_a_0 top.usr.KP_3_a_0) - (= top.impl.usr.KP_21_a_0 top.usr.KP_2_a_0) - (= top.impl.usr.KP_11_a_0 top.usr.KP_1_a_0) - (= top.impl.usr.KP_01_a_0 top.usr.KP_0_a_0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - (ite - top.usr.KP_CLEAR_a_0 - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01_a_0 - 0 - (ite - top.impl.usr.KP_11_a_0 - 1 - (ite - top.impl.usr.KP_21_a_0 - 2 - (ite - top.impl.usr.KP_31_a_0 - 3 - (ite - top.impl.usr.KP_41_a_0 - 4 - (ite - top.impl.usr.KP_51_a_0 - 5 - (ite - top.impl.usr.KP_61_a_0 - 6 - (ite - top.impl.usr.KP_71_a_0 - 7 - (ite - top.impl.usr.KP_81_a_0 - 8 - (ite top.impl.usr.KP_91_a_0 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01_a_0 - 0 - (ite - top.impl.usr.KP_11_a_0 - 1 - (ite - top.impl.usr.KP_21_a_0 - 2 - (ite - top.impl.usr.KP_31_a_0 - 3 - (ite - top.impl.usr.KP_41_a_0 - 4 - (ite - top.impl.usr.KP_51_a_0 - 5 - (ite - top.impl.usr.KP_61_a_0 - 6 - (ite - top.impl.usr.KP_71_a_0 - 7 - (ite - top.impl.usr.KP_81_a_0 - 8 - (ite top.impl.usr.KP_91_a_0 9 10)))))))))) - 0))) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - 0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 0) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 - true) - (let - ((X6 Bool true)) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 - X6) - (= - top.impl.usr.STEPS_TO_COOK_a_0 - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0)) - 0 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 60)) - 1))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK_a_0 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED_a_0) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK_a_0 X1))) - (let - ((X18 - Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 - Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 Bool top.usr.KP_CLEAR_a_0)) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (div - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - 1) - 60) - 60)) - 10))) - (let - ((X34 Int X33)) - (let - ((X35 Int 0)) - (let - ((X36 - Int (ite - X12 - (ite (not (= X9 2)) 2 X35) - X35))) - (let - ((X37 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X36) - X36) - X35))) - (let - ((X38 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X39 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X37) - X37))) - (let - ((X40 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X39) - X39))) - (let - ((X41 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X41) - X41))) - (let - ((X43 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X38) - X38))) - (let - ((X44 - Bool (and - (= X43 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not - (= X11 0)) - true - false))) - (not - (or X32 X31)))))) - (let - ((X45 - Int (ite - X44 - (ite - (= X43 2) - 1 - X43) - X43))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - (ite - (not (= X2 4)) - 1 - X35) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X42) - X42) - X37)) - X35)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode_a_0 - top.impl.usr.chart_microwave_mode_logic_mode_a_0) - (let - ((X46 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - X46 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X45) - X45) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - top.res.init_flag_a_0))))))))))))))))))))))))))))))))))))))))))))))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.KP_START_a_1 Bool) - (top.usr.KP_CLEAR_a_1 Bool) - (top.usr.KP_0_a_1 Bool) - (top.usr.KP_1_a_1 Bool) - (top.usr.KP_2_a_1 Bool) - (top.usr.KP_3_a_1 Bool) - (top.usr.KP_4_a_1 Bool) - (top.usr.KP_5_a_1 Bool) - (top.usr.KP_6_a_1 Bool) - (top.usr.KP_7_a_1 Bool) - (top.usr.KP_8_a_1 Bool) - (top.usr.KP_9_a_1 Bool) - (top.usr.DOOR_CLOSED_a_1 Bool) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.STEPS_TO_COOK_a_1 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 Bool) - (top.impl.usr.KP_01_a_1 Bool) - (top.impl.usr.KP_11_a_1 Bool) - (top.impl.usr.KP_21_a_1 Bool) - (top.impl.usr.KP_31_a_1 Bool) - (top.impl.usr.KP_41_a_1 Bool) - (top.impl.usr.KP_51_a_1 Bool) - (top.impl.usr.KP_61_a_1 Bool) - (top.impl.usr.KP_71_a_1 Bool) - (top.impl.usr.KP_81_a_1 Bool) - (top.impl.usr.KP_91_a_1 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_1 Int) - (top.usr.KP_START_a_0 Bool) - (top.usr.KP_CLEAR_a_0 Bool) - (top.usr.KP_0_a_0 Bool) - (top.usr.KP_1_a_0 Bool) - (top.usr.KP_2_a_0 Bool) - (top.usr.KP_3_a_0 Bool) - (top.usr.KP_4_a_0 Bool) - (top.usr.KP_5_a_0 Bool) - (top.usr.KP_6_a_0 Bool) - (top.usr.KP_7_a_0 Bool) - (top.usr.KP_8_a_0 Bool) - (top.usr.KP_9_a_0 Bool) - (top.usr.DOOR_CLOSED_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.STEPS_TO_COOK_a_0 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) - (top.impl.usr.KP_01_a_0 Bool) - (top.impl.usr.KP_11_a_0 Bool) - (top.impl.usr.KP_21_a_0 Bool) - (top.impl.usr.KP_31_a_0 Bool) - (top.impl.usr.KP_41_a_0 Bool) - (top.impl.usr.KP_51_a_0 Bool) - (top.impl.usr.KP_61_a_0 Bool) - (top.impl.usr.KP_71_a_0 Bool) - (top.impl.usr.KP_81_a_0 Bool) - (top.impl.usr.KP_91_a_0 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int) - ) Bool - - (let - ((X1 Int top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0)) - (let - ((X2 - Int top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0)) - (and - (= - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - false - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0)) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool (and top.usr.KP_START_a_1 (not top.usr.KP_START_a_0)))) - (let - ((X5 Int (ite (not X4) 0 1))) - (let - ((X6 - Bool (ite - (= 1 top.impl.usr.microwave_microwave_mode_logic_mode_a_0) - true - false))) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - X6) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (ite - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1) - true - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 - false - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0))) - (= top.impl.usr.KP_91_a_1 top.usr.KP_9_a_1) - (= top.impl.usr.KP_81_a_1 top.usr.KP_8_a_1) - (= top.impl.usr.KP_71_a_1 top.usr.KP_7_a_1) - (= top.impl.usr.KP_61_a_1 top.usr.KP_6_a_1) - (= top.impl.usr.KP_51_a_1 top.usr.KP_5_a_1) - (= top.impl.usr.KP_41_a_1 top.usr.KP_4_a_1) - (= top.impl.usr.KP_31_a_1 top.usr.KP_3_a_1) - (= top.impl.usr.KP_21_a_1 top.usr.KP_2_a_1) - (= top.impl.usr.KP_11_a_1 top.usr.KP_1_a_1) - (= top.impl.usr.KP_01_a_1 top.usr.KP_0_a_1) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01_a_1 - 0 - (ite - top.impl.usr.KP_11_a_1 - 1 - (ite - top.impl.usr.KP_21_a_1 - 2 - (ite - top.impl.usr.KP_31_a_1 - 3 - (ite - top.impl.usr.KP_41_a_1 - 4 - (ite - top.impl.usr.KP_51_a_1 - 5 - (ite - top.impl.usr.KP_61_a_1 - 6 - (ite - top.impl.usr.KP_71_a_1 - 7 - (ite - top.impl.usr.KP_81_a_1 - 8 - (ite top.impl.usr.KP_91_a_1 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01_a_1 - 0 - (ite - top.impl.usr.KP_11_a_1 - 1 - (ite - top.impl.usr.KP_21_a_1 - 2 - (ite - top.impl.usr.KP_31_a_1 - 3 - (ite - top.impl.usr.KP_41_a_1 - 4 - (ite - top.impl.usr.KP_51_a_1 - 5 - (ite - top.impl.usr.KP_61_a_1 - 6 - (ite - top.impl.usr.KP_71_a_1 - 7 - (ite - top.impl.usr.KP_81_a_1 - 8 - (ite top.impl.usr.KP_91_a_1 9 10)))))))))) - 0)) - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and - top.impl.usr.KP_71_a_1 - (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and - top.impl.usr.KP_81_a_1 - (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - 0 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and - top.impl.usr.KP_71_a_1 - (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and - top.impl.usr.KP_81_a_1 - (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - 0 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and - top.impl.usr.KP_71_a_1 - (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and - top.impl.usr.KP_81_a_1 - (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.STEPS_TO_COOK_a_1 - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1)) - 0 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 - 60)) - 1) - top.impl.usr.STEPS_TO_COOK_a_0))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK_a_1 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED_a_1) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK_a_1 X1))) - (let - ((X18 Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 - Bool (and - top.usr.KP_CLEAR_a_1 - (not top.usr.KP_CLEAR_a_0)))) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (div - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - 1) - 60) - 60)) - 10))) - (let - ((X34 Int X33)) - (and - (= - top.usr.OK_a_1 - (or - (or - (not - (and X6 (not top.usr.KP_CLEAR_a_1))) - (not - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - top.usr.KP_1_a_1 - (not top.usr.KP_1_a_0)) - (and - top.usr.KP_2_a_1 - (not top.usr.KP_2_a_0))) - (and - top.usr.KP_3_a_1 - (not top.usr.KP_3_a_0))) - (and - top.usr.KP_4_a_1 - (not top.usr.KP_4_a_0))) - (and - top.usr.KP_5_a_1 - (not top.usr.KP_5_a_0))) - (and - top.usr.KP_6_a_1 - (not top.usr.KP_6_a_0))) - (and - top.usr.KP_7_a_1 - (not top.usr.KP_7_a_0))) - (and - top.usr.KP_8_a_1 - (not top.usr.KP_8_a_0))) - (and - top.usr.KP_9_a_1 - (not top.usr.KP_9_a_0))) - (and - top.usr.KP_0_a_1 - (not top.usr.KP_0_a_0))))) - (= - X34 - (div - (mod - (div - top.impl.usr.STEPS_TO_COOK_a_1 - 1) - 60) - 10)))) - (let - ((X35 - Int top.impl.usr.chart_microwave_mode_logic_mode_a_0)) - (let - ((X36 - Int (ite - X12 - (ite (not (= X9 2)) 2 X35) - X35))) - (let - ((X37 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X36) - X36) - X35))) - (let - ((X38 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X39 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X37) - X37))) - (let - ((X40 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X39) - X39))) - (let - ((X41 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X41) - X41))) - (let - ((X43 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X38) - X38))) - (let - ((X44 - Bool (and - (= X43 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not (= X11 0)) - true - false))) - (not (or X32 X31)))))) - (let - ((X45 - Int (ite - X44 - (ite - (= X43 2) - 1 - X43) - X43))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - (ite - (not (= X2 4)) - 1 - X35) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X42) - X42) - X37)) - X35)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode_a_1 - top.impl.usr.chart_microwave_mode_logic_mode_a_1) - (let - ((X46 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - X46 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X45) - X45) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - (not - top.res.init_flag_a_1))))))))))))))))))))))))))))))))))))))))))))))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) -)) - -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.KP_START Bool) -(declare-primed-var top.usr.KP_CLEAR Bool) -(declare-primed-var top.usr.KP_0 Bool) -(declare-primed-var top.usr.KP_1 Bool) -(declare-primed-var top.usr.KP_2 Bool) -(declare-primed-var top.usr.KP_3 Bool) -(declare-primed-var top.usr.KP_4 Bool) -(declare-primed-var top.usr.KP_5 Bool) -(declare-primed-var top.usr.KP_6 Bool) -(declare-primed-var top.usr.KP_7 Bool) -(declare-primed-var top.usr.KP_8 Bool) -(declare-primed-var top.usr.KP_9 Bool) -(declare-primed-var top.usr.DOOR_CLOSED Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.STEPS_TO_COOK Int) -(declare-primed-var top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) -(declare-primed-var top.impl.usr.KP_01 Bool) -(declare-primed-var top.impl.usr.KP_11 Bool) -(declare-primed-var top.impl.usr.KP_21 Bool) -(declare-primed-var top.impl.usr.KP_31 Bool) -(declare-primed-var top.impl.usr.KP_41 Bool) -(declare-primed-var top.impl.usr.KP_51 Bool) -(declare-primed-var top.impl.usr.KP_61 Bool) -(declare-primed-var top.impl.usr.KP_71 Bool) -(declare-primed-var top.impl.usr.KP_81 Bool) -(declare-primed-var top.impl.usr.KP_91 Bool) -(declare-primed-var top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_mode Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) -(declare-primed-var top.impl.usr.microwave_microwave_mode_logic_mode Int) - -(define-fun - init ( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int 0)) - (let - ((X2 Int 0)) - (and - (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep true) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool top.usr.KP_START)) - (let - ((X5 Int (ite (not X4) 0 1))) - (and - (= top.impl.usr.KP_91 top.usr.KP_9) - (= top.impl.usr.KP_81 top.usr.KP_8) - (= top.impl.usr.KP_71 top.usr.KP_7) - (= top.impl.usr.KP_61 top.usr.KP_6) - (= top.impl.usr.KP_51 top.usr.KP_5) - (= top.impl.usr.KP_41 top.usr.KP_4) - (= top.impl.usr.KP_31 top.usr.KP_3) - (= top.impl.usr.KP_21 top.usr.KP_2) - (= top.impl.usr.KP_11 top.usr.KP_1) - (= top.impl.usr.KP_01 top.usr.KP_0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - (ite - top.usr.KP_CLEAR - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01 - 0 - (ite - top.impl.usr.KP_11 - 1 - (ite - top.impl.usr.KP_21 - 2 - (ite - top.impl.usr.KP_31 - 3 - (ite - top.impl.usr.KP_41 - 4 - (ite - top.impl.usr.KP_51 - 5 - (ite - top.impl.usr.KP_61 - 6 - (ite - top.impl.usr.KP_71 - 7 - (ite - top.impl.usr.KP_81 - 8 - (ite top.impl.usr.KP_91 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01 - 0 - (ite - top.impl.usr.KP_11 - 1 - (ite - top.impl.usr.KP_21 - 2 - (ite - top.impl.usr.KP_31 - 3 - (ite - top.impl.usr.KP_41 - 4 - (ite - top.impl.usr.KP_51 - 5 - (ite - top.impl.usr.KP_61 - 6 - (ite - top.impl.usr.KP_71 - 7 - (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) - 0))) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - 0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY - 0) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step - true) - (let - ((X6 Bool true)) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock - X6) - (= - top.impl.usr.STEPS_TO_COOK - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock)) - 0 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY - 60)) - 1))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK X1))) - (let - ((X18 - Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 - Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 Bool top.usr.KP_CLEAR)) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup___ - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (div - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining - 1) - 60) - 60)) - 10))) - (let - ((X34 Int X33)) - (let - ((X35 Int 0)) - (let - ((X36 - Int (ite - X12 - (ite (not (= X9 2)) 2 X35) - X35))) - (let - ((X37 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X36) - X36) - X35))) - (let - ((X38 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X39 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X37) - X37))) - (let - ((X40 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X39) - X39))) - (let - ((X41 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X41) - X41))) - (let - ((X43 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X38) - X38))) - (let - ((X44 - Bool (and - (= X43 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not - (= X11 0)) - true - false))) - (not - (or X32 X31)))))) - (let - ((X45 - Int (ite - X44 - (ite - (= X43 2) - 1 - X43) - X43))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - (ite - (not (= X2 4)) - 1 - X35) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X42) - X42) - X37)) - X35)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode - top.impl.usr.chart_microwave_mode_logic_mode) - (let - ((X46 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - X46 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X45) - X45) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - top.res.init_flag))))))))))))))))))))))))))))))))))))))))))))))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - - ;; Next state. - (top.usr.KP_START! Bool) - (top.usr.KP_CLEAR! Bool) - (top.usr.KP_0! Bool) - (top.usr.KP_1! Bool) - (top.usr.KP_2! Bool) - (top.usr.KP_3! Bool) - (top.usr.KP_4! Bool) - (top.usr.KP_5! Bool) - (top.usr.KP_6! Bool) - (top.usr.KP_7! Bool) - (top.usr.KP_8! Bool) - (top.usr.KP_9! Bool) - (top.usr.DOOR_CLOSED! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.STEPS_TO_COOK! Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! Bool) - (top.impl.usr.KP_01! Bool) - (top.impl.usr.KP_11! Bool) - (top.impl.usr.KP_21! Bool) - (top.impl.usr.KP_31! Bool) - (top.impl.usr.KP_41! Bool) - (top.impl.usr.KP_51! Bool) - (top.impl.usr.KP_61! Bool) - (top.impl.usr.KP_71! Bool) - (top.impl.usr.KP_81! Bool) - (top.impl.usr.KP_91! Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___! Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root! Int) - (top.impl.usr.chart_microwave_mode_logic_mode! Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining! Int) - (top.impl.usr.microwave_microwave_mode_logic_mode! Int) - - ) Bool - - (and - (let - ((X1 Int top.impl.usr.chart_microwave_mode_logic_steps_remaining)) - (let - ((X2 - Int top.impl.usr.chart_microwave_mode_logic_final_state_states___root)) - (and - (= - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - false - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep)) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool (and top.usr.KP_START! (not top.usr.KP_START)))) - (let - ((X5 Int (ite (not X4) 0 1))) - (let - ((X6 - Bool (ite - (= 1 top.impl.usr.microwave_microwave_mode_logic_mode) - true - false))) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - X6) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (ite - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!) - true - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock - false - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step))) - (= top.impl.usr.KP_91! top.usr.KP_9!) - (= top.impl.usr.KP_81! top.usr.KP_8!) - (= top.impl.usr.KP_71! top.usr.KP_7!) - (= top.impl.usr.KP_61! top.usr.KP_6!) - (= top.impl.usr.KP_51! top.usr.KP_5!) - (= top.impl.usr.KP_41! top.usr.KP_4!) - (= top.impl.usr.KP_31! top.usr.KP_3!) - (= top.impl.usr.KP_21! top.usr.KP_2!) - (= top.impl.usr.KP_11! top.usr.KP_1!) - (= top.impl.usr.KP_01! top.usr.KP_0!) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01! - 0 - (ite - top.impl.usr.KP_11! - 1 - (ite - top.impl.usr.KP_21! - 2 - (ite - top.impl.usr.KP_31! - 3 - (ite - top.impl.usr.KP_41! - 4 - (ite - top.impl.usr.KP_51! - 5 - (ite - top.impl.usr.KP_61! - 6 - (ite - top.impl.usr.KP_71! - 7 - (ite - top.impl.usr.KP_81! - 8 - (ite top.impl.usr.KP_91! 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01! - 0 - (ite - top.impl.usr.KP_11! - 1 - (ite - top.impl.usr.KP_21! - 2 - (ite - top.impl.usr.KP_31! - 3 - (ite - top.impl.usr.KP_41! - 4 - (ite - top.impl.usr.KP_51! - 5 - (ite - top.impl.usr.KP_61! - 6 - (ite - top.impl.usr.KP_71! - 7 - (ite - top.impl.usr.KP_81! - 8 - (ite top.impl.usr.KP_91! 9 10)))))))))) - 0)) - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and - top.impl.usr.KP_91! - (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - 0 - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and - top.impl.usr.KP_91! - (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - 0 - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and - top.impl.usr.KP_91! - (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.STEPS_TO_COOK! - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!)) - 0 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! - 60)) - 1) - top.impl.usr.STEPS_TO_COOK))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK! 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED!) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK! X1))) - (let - ((X18 Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 - Bool (and - top.usr.KP_CLEAR! - (not top.usr.KP_CLEAR)))) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup___! - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (div - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - 1) - 60) - 60)) - 10))) - (let - ((X34 Int X33)) - (and - (= - top.usr.OK! - (or - (or - (not - (and X6 (not top.usr.KP_CLEAR!))) - (not - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - top.usr.KP_1! - (not top.usr.KP_1)) - (and - top.usr.KP_2! - (not top.usr.KP_2))) - (and - top.usr.KP_3! - (not top.usr.KP_3))) - (and - top.usr.KP_4! - (not top.usr.KP_4))) - (and - top.usr.KP_5! - (not top.usr.KP_5))) - (and - top.usr.KP_6! - (not top.usr.KP_6))) - (and - top.usr.KP_7! - (not top.usr.KP_7))) - (and - top.usr.KP_8! - (not top.usr.KP_8))) - (and - top.usr.KP_9! - (not top.usr.KP_9))) - (and - top.usr.KP_0! - (not top.usr.KP_0))))) - (= - X34 - (div - (mod - (div - top.impl.usr.STEPS_TO_COOK! - 1) - 60) - 10)))) - (let - ((X35 - Int top.impl.usr.chart_microwave_mode_logic_mode)) - (let - ((X36 - Int (ite - X12 - (ite (not (= X9 2)) 2 X35) - X35))) - (let - ((X37 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X36) - X36) - X35))) - (let - ((X38 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X39 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X37) - X37))) - (let - ((X40 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X39) - X39))) - (let - ((X41 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X41) - X41))) - (let - ((X43 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X38) - X38))) - (let - ((X44 - Bool (and - (= X43 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not - (= X11 0)) - true - false))) - (not - (or X32 X31)))))) - (let - ((X45 - Int (ite - X44 - (ite - (= X43 2) - 1 - X43) - X43))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - (ite - (not (= X2 4)) - 1 - X35) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X42) - X42) - X37)) - X35)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode! - top.impl.usr.chart_microwave_mode_logic_mode!) - (let - ((X46 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - X46 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X45) - X45) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - (not - top.res.init_flag!))))))))))))))))))))))))))))))))))))))))))))))))))))) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - ) Bool - - top.usr.OK -) +(define-fun __node_init_top_0 ((top.usr.KP_START_a_0 Bool) (top.usr.KP_CLEAR_a_0 Bool) (top.usr.KP_0_a_0 Bool) (top.usr.KP_1_a_0 Bool) (top.usr.KP_2_a_0 Bool) (top.usr.KP_3_a_0 Bool) (top.usr.KP_4_a_0 Bool) (top.usr.KP_5_a_0 Bool) (top.usr.KP_6_a_0 Bool) (top.usr.KP_7_a_0 Bool) (top.usr.KP_8_a_0 Bool) (top.usr.KP_9_a_0 Bool) (top.usr.DOOR_CLOSED_a_0 Bool) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.STEPS_TO_COOK_a_0 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) (top.impl.usr.KP_01_a_0 Bool) (top.impl.usr.KP_11_a_0 Bool) (top.impl.usr.KP_21_a_0 Bool) (top.impl.usr.KP_31_a_0 Bool) (top.impl.usr.KP_41_a_0 Bool) (top.impl.usr.KP_51_a_0 Bool) (top.impl.usr.KP_61_a_0 Bool) (top.impl.usr.KP_71_a_0 Bool) (top.impl.usr.KP_81_a_0 Bool) (top.impl.usr.KP_91_a_0 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 0)) (let ((X2 0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 true) (let ((X3 (= X2 4))) (let ((X4 top.usr.KP_START_a_0)) (let ((X5 (ite (not X4) 0 1))) (and (= top.impl.usr.KP_91_a_0 top.usr.KP_9_a_0) (= top.impl.usr.KP_81_a_0 top.usr.KP_8_a_0) (= top.impl.usr.KP_71_a_0 top.usr.KP_7_a_0) (= top.impl.usr.KP_61_a_0 top.usr.KP_6_a_0) (= top.impl.usr.KP_51_a_0 top.usr.KP_5_a_0) (= top.impl.usr.KP_41_a_0 top.usr.KP_4_a_0) (= top.impl.usr.KP_31_a_0 top.usr.KP_3_a_0) (= top.impl.usr.KP_21_a_0 top.usr.KP_2_a_0) (= top.impl.usr.KP_11_a_0 top.usr.KP_1_a_0) (= top.impl.usr.KP_01_a_0 top.usr.KP_0_a_0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 (ite top.usr.KP_CLEAR_a_0 0 (ite (ite (<= (ite top.impl.usr.KP_01_a_0 0 (ite top.impl.usr.KP_11_a_0 1 (ite top.impl.usr.KP_21_a_0 2 (ite top.impl.usr.KP_31_a_0 3 (ite top.impl.usr.KP_41_a_0 4 (ite top.impl.usr.KP_51_a_0 5 (ite top.impl.usr.KP_61_a_0 6 (ite top.impl.usr.KP_71_a_0 7 (ite top.impl.usr.KP_81_a_0 8 (ite top.impl.usr.KP_91_a_0 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01_a_0 0 (ite top.impl.usr.KP_11_a_0 1 (ite top.impl.usr.KP_21_a_0 2 (ite top.impl.usr.KP_31_a_0 3 (ite top.impl.usr.KP_41_a_0 4 (ite top.impl.usr.KP_51_a_0 5 (ite top.impl.usr.KP_61_a_0 6 (ite top.impl.usr.KP_71_a_0 7 (ite top.impl.usr.KP_81_a_0 8 (ite top.impl.usr.KP_91_a_0 9 10)))))))))) 0))) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 0) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 true) (let ((X6 true)) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 X6) (= top.impl.usr.STEPS_TO_COOK_a_0 (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0)) 0 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 60)) 1))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK_a_0 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED_a_0) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK_a_0 X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 top.usr.KP_CLEAR_a_0)) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (div (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 1) 60) 60)) 10))) (let ((X34 X33)) (let ((X35 0)) (let ((X36 (ite X12 (ite (not (= X9 2)) 2 X35) X35))) (let ((X37 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X36) X36) X35))) (let ((X38 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X39 (ite X18 (ite (not (= X19 4)) 1 X37) X37))) (let ((X40 (ite X21 (ite (not (= X22 2)) 2 X39) X39))) (let ((X41 (ite X27 (ite (not (= X28 4)) 1 X40) X40))) (let ((X42 (ite X32 (ite (not (= X38 2)) 2 X41) X41))) (let ((X43 (ite X32 (ite (not (= X38 2)) 2 X38) X38))) (let ((X44 (and (= X43 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X45 (ite X44 (ite (= X43 2) 1 X43) X43))) (and (= top.impl.usr.chart_microwave_mode_logic_mode_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 (ite (not (= X2 4)) 1 X35) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X42) X42) X37)) X35)) (= top.impl.usr.microwave_microwave_mode_logic_mode_a_0 top.impl.usr.chart_microwave_mode_logic_mode_a_0) (let ((X46 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 X46 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X45) X45) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) top.res.init_flag_a_0)))))))))))))))))))))))))))))))))))))))))))))))))))))) +(define-fun __node_trans_top_0 ((top.usr.KP_START_a_1 Bool) (top.usr.KP_CLEAR_a_1 Bool) (top.usr.KP_0_a_1 Bool) (top.usr.KP_1_a_1 Bool) (top.usr.KP_2_a_1 Bool) (top.usr.KP_3_a_1 Bool) (top.usr.KP_4_a_1 Bool) (top.usr.KP_5_a_1 Bool) (top.usr.KP_6_a_1 Bool) (top.usr.KP_7_a_1 Bool) (top.usr.KP_8_a_1 Bool) (top.usr.KP_9_a_1 Bool) (top.usr.DOOR_CLOSED_a_1 Bool) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.STEPS_TO_COOK_a_1 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 Bool) (top.impl.usr.KP_01_a_1 Bool) (top.impl.usr.KP_11_a_1 Bool) (top.impl.usr.KP_21_a_1 Bool) (top.impl.usr.KP_31_a_1 Bool) (top.impl.usr.KP_41_a_1 Bool) (top.impl.usr.KP_51_a_1 Bool) (top.impl.usr.KP_61_a_1 Bool) (top.impl.usr.KP_71_a_1 Bool) (top.impl.usr.KP_81_a_1 Bool) (top.impl.usr.KP_91_a_1 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_1 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_1 Int) (top.usr.KP_START_a_0 Bool) (top.usr.KP_CLEAR_a_0 Bool) (top.usr.KP_0_a_0 Bool) (top.usr.KP_1_a_0 Bool) (top.usr.KP_2_a_0 Bool) (top.usr.KP_3_a_0 Bool) (top.usr.KP_4_a_0 Bool) (top.usr.KP_5_a_0 Bool) (top.usr.KP_6_a_0 Bool) (top.usr.KP_7_a_0 Bool) (top.usr.KP_8_a_0 Bool) (top.usr.KP_9_a_0 Bool) (top.usr.DOOR_CLOSED_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.STEPS_TO_COOK_a_0 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) (top.impl.usr.KP_01_a_0 Bool) (top.impl.usr.KP_11_a_0 Bool) (top.impl.usr.KP_21_a_0 Bool) (top.impl.usr.KP_31_a_0 Bool) (top.impl.usr.KP_41_a_0 Bool) (top.impl.usr.KP_51_a_0 Bool) (top.impl.usr.KP_61_a_0 Bool) (top.impl.usr.KP_71_a_0 Bool) (top.impl.usr.KP_81_a_0 Bool) (top.impl.usr.KP_91_a_0 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int)) Bool + (let ((X1 top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0)) (let ((X2 top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 false top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0)) (let ((X3 (= X2 4))) (let ((X4 (and top.usr.KP_START_a_1 (not top.usr.KP_START_a_0)))) (let ((X5 (ite (not X4) 0 1))) (let ((X6 (ite (= 1 top.impl.usr.microwave_microwave_mode_logic_mode_a_0) true false))) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 X6) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (ite (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1) true (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 false top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0))) (= top.impl.usr.KP_91_a_1 top.usr.KP_9_a_1) (= top.impl.usr.KP_81_a_1 top.usr.KP_8_a_1) (= top.impl.usr.KP_71_a_1 top.usr.KP_7_a_1) (= top.impl.usr.KP_61_a_1 top.usr.KP_6_a_1) (= top.impl.usr.KP_51_a_1 top.usr.KP_5_a_1) (= top.impl.usr.KP_41_a_1 top.usr.KP_4_a_1) (= top.impl.usr.KP_31_a_1 top.usr.KP_3_a_1) (= top.impl.usr.KP_21_a_1 top.usr.KP_2_a_1) (= top.impl.usr.KP_11_a_1 top.usr.KP_1_a_1) (= top.impl.usr.KP_01_a_1 top.usr.KP_0_a_1) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite top.impl.usr.KP_01_a_1 0 (ite top.impl.usr.KP_11_a_1 1 (ite top.impl.usr.KP_21_a_1 2 (ite top.impl.usr.KP_31_a_1 3 (ite top.impl.usr.KP_41_a_1 4 (ite top.impl.usr.KP_51_a_1 5 (ite top.impl.usr.KP_61_a_1 6 (ite top.impl.usr.KP_71_a_1 7 (ite top.impl.usr.KP_81_a_1 8 (ite top.impl.usr.KP_91_a_1 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01_a_1 0 (ite top.impl.usr.KP_11_a_1 1 (ite top.impl.usr.KP_21_a_1 2 (ite top.impl.usr.KP_31_a_1 3 (ite top.impl.usr.KP_41_a_1 4 (ite top.impl.usr.KP_51_a_1 5 (ite top.impl.usr.KP_61_a_1 6 (ite top.impl.usr.KP_71_a_1 7 (ite top.impl.usr.KP_81_a_1 8 (ite top.impl.usr.KP_91_a_1 9 10)))))))))) 0)) (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 0 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 0 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.STEPS_TO_COOK_a_1 (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1)) 0 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 60)) 1) top.impl.usr.STEPS_TO_COOK_a_0))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK_a_1 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED_a_1) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK_a_1 X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 (and top.usr.KP_CLEAR_a_1 (not top.usr.KP_CLEAR_a_0)))) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (div (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 1) 60) 60)) 10))) (let ((X34 X33)) (and (= top.usr.OK_a_1 (or (or (not (and X6 (not top.usr.KP_CLEAR_a_1))) (not (or (or (or (or (or (or (or (or (or (and top.usr.KP_1_a_1 (not top.usr.KP_1_a_0)) (and top.usr.KP_2_a_1 (not top.usr.KP_2_a_0))) (and top.usr.KP_3_a_1 (not top.usr.KP_3_a_0))) (and top.usr.KP_4_a_1 (not top.usr.KP_4_a_0))) (and top.usr.KP_5_a_1 (not top.usr.KP_5_a_0))) (and top.usr.KP_6_a_1 (not top.usr.KP_6_a_0))) (and top.usr.KP_7_a_1 (not top.usr.KP_7_a_0))) (and top.usr.KP_8_a_1 (not top.usr.KP_8_a_0))) (and top.usr.KP_9_a_1 (not top.usr.KP_9_a_0))) (and top.usr.KP_0_a_1 (not top.usr.KP_0_a_0))))) (= X34 (div (mod (div top.impl.usr.STEPS_TO_COOK_a_1 1) 60) 10)))) (let ((X35 top.impl.usr.chart_microwave_mode_logic_mode_a_0)) (let ((X36 (ite X12 (ite (not (= X9 2)) 2 X35) X35))) (let ((X37 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X36) X36) X35))) (let ((X38 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X39 (ite X18 (ite (not (= X19 4)) 1 X37) X37))) (let ((X40 (ite X21 (ite (not (= X22 2)) 2 X39) X39))) (let ((X41 (ite X27 (ite (not (= X28 4)) 1 X40) X40))) (let ((X42 (ite X32 (ite (not (= X38 2)) 2 X41) X41))) (let ((X43 (ite X32 (ite (not (= X38 2)) 2 X38) X38))) (let ((X44 (and (= X43 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X45 (ite X44 (ite (= X43 2) 1 X43) X43))) (and (= top.impl.usr.chart_microwave_mode_logic_mode_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 (ite (not (= X2 4)) 1 X35) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X42) X42) X37)) X35)) (= top.impl.usr.microwave_microwave_mode_logic_mode_a_1 top.impl.usr.chart_microwave_mode_logic_mode_a_1) (let ((X46 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 X46 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X45) X45) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) (not top.res.init_flag_a_1)))))))))))))))))))))))))))))))))))))))))))))))))))))) +(synth-inv str_invariant ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int))) + +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int)) Bool + (and (= top.usr.OK true) (let ((X1 0)) (let ((X2 0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep true) (let ((X3 (= X2 4))) (let ((X4 top.usr.KP_START)) (let ((X5 (ite (not X4) 0 1))) (and (= top.impl.usr.KP_91 top.usr.KP_9) (= top.impl.usr.KP_81 top.usr.KP_8) (= top.impl.usr.KP_71 top.usr.KP_7) (= top.impl.usr.KP_61 top.usr.KP_6) (= top.impl.usr.KP_51 top.usr.KP_5) (= top.impl.usr.KP_41 top.usr.KP_4) (= top.impl.usr.KP_31 top.usr.KP_3) (= top.impl.usr.KP_21 top.usr.KP_2) (= top.impl.usr.KP_11 top.usr.KP_1) (= top.impl.usr.KP_01 top.usr.KP_0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY (ite top.usr.KP_CLEAR 0 (ite (ite (<= (ite top.impl.usr.KP_01 0 (ite top.impl.usr.KP_11 1 (ite top.impl.usr.KP_21 2 (ite top.impl.usr.KP_31 3 (ite top.impl.usr.KP_41 4 (ite top.impl.usr.KP_51 5 (ite top.impl.usr.KP_61 6 (ite top.impl.usr.KP_71 7 (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01 0 (ite top.impl.usr.KP_11 1 (ite top.impl.usr.KP_21 2 (ite top.impl.usr.KP_31 3 (ite top.impl.usr.KP_41 4 (ite top.impl.usr.KP_51 5 (ite top.impl.usr.KP_61 6 (ite top.impl.usr.KP_71 7 (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) 0))) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY 0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY 0) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step true) (let ((X6 true)) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock X6) (= top.impl.usr.STEPS_TO_COOK (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock)) 0 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY 60)) 1))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 top.usr.KP_CLEAR)) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup___ true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (div (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining 1) 60) 60)) 10))) (let ((X34 X33)) (let ((X35 0)) (let ((X36 (ite X12 (ite (not (= X9 2)) 2 X35) X35))) (let ((X37 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X36) X36) X35))) (let ((X38 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X39 (ite X18 (ite (not (= X19 4)) 1 X37) X37))) (let ((X40 (ite X21 (ite (not (= X22 2)) 2 X39) X39))) (let ((X41 (ite X27 (ite (not (= X28 4)) 1 X40) X40))) (let ((X42 (ite X32 (ite (not (= X38 2)) 2 X41) X41))) (let ((X43 (ite X32 (ite (not (= X38 2)) 2 X38) X38))) (let ((X44 (and (= X43 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X45 (ite X44 (ite (= X43 2) 1 X43) X43))) (and (= top.impl.usr.chart_microwave_mode_logic_mode (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep (ite (not (= X2 4)) 1 X35) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X42) X42) X37)) X35)) (= top.impl.usr.microwave_microwave_mode_logic_mode top.impl.usr.chart_microwave_mode_logic_mode) (let ((X46 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep X46 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X45) X45) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) top.res.init_flag)))))))))))))))))))))))))))))))))))))))))))))))))))))) +(define-fun trans ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int) (top.usr.KP_START! Bool) (top.usr.KP_CLEAR! Bool) (top.usr.KP_0! Bool) (top.usr.KP_1! Bool) (top.usr.KP_2! Bool) (top.usr.KP_3! Bool) (top.usr.KP_4! Bool) (top.usr.KP_5! Bool) (top.usr.KP_6! Bool) (top.usr.KP_7! Bool) (top.usr.KP_8! Bool) (top.usr.KP_9! Bool) (top.usr.DOOR_CLOSED! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.STEPS_TO_COOK! Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! Bool) (top.impl.usr.KP_01! Bool) (top.impl.usr.KP_11! Bool) (top.impl.usr.KP_21! Bool) (top.impl.usr.KP_31! Bool) (top.impl.usr.KP_41! Bool) (top.impl.usr.KP_51! Bool) (top.impl.usr.KP_61! Bool) (top.impl.usr.KP_71! Bool) (top.impl.usr.KP_81! Bool) (top.impl.usr.KP_91! Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___! Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root! Int) (top.impl.usr.chart_microwave_mode_logic_mode! Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining! Int) (top.impl.usr.microwave_microwave_mode_logic_mode! Int)) Bool + (and (let ((X1 top.impl.usr.chart_microwave_mode_logic_steps_remaining)) (let ((X2 top.impl.usr.chart_microwave_mode_logic_final_state_states___root)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ false top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep)) (let ((X3 (= X2 4))) (let ((X4 (and top.usr.KP_START! (not top.usr.KP_START)))) (let ((X5 (ite (not X4) 0 1))) (let ((X6 (ite (= 1 top.impl.usr.microwave_microwave_mode_logic_mode) true false))) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! X6) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (ite (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!) true (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock false top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step))) (= top.impl.usr.KP_91! top.usr.KP_9!) (= top.impl.usr.KP_81! top.usr.KP_8!) (= top.impl.usr.KP_71! top.usr.KP_7!) (= top.impl.usr.KP_61! top.usr.KP_6!) (= top.impl.usr.KP_51! top.usr.KP_5!) (= top.impl.usr.KP_41! top.usr.KP_4!) (= top.impl.usr.KP_31! top.usr.KP_3!) (= top.impl.usr.KP_21! top.usr.KP_2!) (= top.impl.usr.KP_11! top.usr.KP_1!) (= top.impl.usr.KP_01! top.usr.KP_0!) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite top.impl.usr.KP_01! 0 (ite top.impl.usr.KP_11! 1 (ite top.impl.usr.KP_21! 2 (ite top.impl.usr.KP_31! 3 (ite top.impl.usr.KP_41! 4 (ite top.impl.usr.KP_51! 5 (ite top.impl.usr.KP_61! 6 (ite top.impl.usr.KP_71! 7 (ite top.impl.usr.KP_81! 8 (ite top.impl.usr.KP_91! 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01! 0 (ite top.impl.usr.KP_11! 1 (ite top.impl.usr.KP_21! 2 (ite top.impl.usr.KP_31! 3 (ite top.impl.usr.KP_41! 4 (ite top.impl.usr.KP_51! 5 (ite top.impl.usr.KP_61! 6 (ite top.impl.usr.KP_71! 7 (ite top.impl.usr.KP_81! 8 (ite top.impl.usr.KP_91! 9 10)))))))))) 0)) (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! 0 (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! 0 (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.STEPS_TO_COOK! (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!)) 0 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! 60)) 1) top.impl.usr.STEPS_TO_COOK))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK! 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED!) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK! X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 (and top.usr.KP_CLEAR! (not top.usr.KP_CLEAR)))) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup___! true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (div (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining! 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining! 1) 60) 60)) 10))) (let ((X34 X33)) (and (= top.usr.OK! (or (or (not (and X6 (not top.usr.KP_CLEAR!))) (not (or (or (or (or (or (or (or (or (or (and top.usr.KP_1! (not top.usr.KP_1)) (and top.usr.KP_2! (not top.usr.KP_2))) (and top.usr.KP_3! (not top.usr.KP_3))) (and top.usr.KP_4! (not top.usr.KP_4))) (and top.usr.KP_5! (not top.usr.KP_5))) (and top.usr.KP_6! (not top.usr.KP_6))) (and top.usr.KP_7! (not top.usr.KP_7))) (and top.usr.KP_8! (not top.usr.KP_8))) (and top.usr.KP_9! (not top.usr.KP_9))) (and top.usr.KP_0! (not top.usr.KP_0))))) (= X34 (div (mod (div top.impl.usr.STEPS_TO_COOK! 1) 60) 10)))) (let ((X35 top.impl.usr.chart_microwave_mode_logic_mode)) (let ((X36 (ite X12 (ite (not (= X9 2)) 2 X35) X35))) (let ((X37 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X36) X36) X35))) (let ((X38 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X39 (ite X18 (ite (not (= X19 4)) 1 X37) X37))) (let ((X40 (ite X21 (ite (not (= X22 2)) 2 X39) X39))) (let ((X41 (ite X27 (ite (not (= X28 4)) 1 X40) X40))) (let ((X42 (ite X32 (ite (not (= X38 2)) 2 X41) X41))) (let ((X43 (ite X32 (ite (not (= X38 2)) 2 X38) X38))) (let ((X44 (and (= X43 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X45 (ite X44 (ite (= X43 2) 1 X43) X43))) (and (= top.impl.usr.chart_microwave_mode_logic_mode! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! (ite (not (= X2 4)) 1 X35) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X42) X42) X37)) X35)) (= top.impl.usr.microwave_microwave_mode_logic_mode! top.impl.usr.chart_microwave_mode_logic_mode!) (let ((X46 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! X46 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X45) X45) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) (not top.res.init_flag!))))))))))))))))))))))))))))))))))))))))))))))))))))) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/microwave27.sl b/benchmarks/LIA/Lustre/microwave27.sl index 2bfcb00..e592f13 100644 --- a/benchmarks/LIA/Lustre/microwave27.sl +++ b/benchmarks/LIA/Lustre/microwave27.sl @@ -1,2649 +1,25 @@ (set-logic LIA) -(define-fun - __node_init_top_0 ( - (top.usr.KP_START_a_0 Bool) - (top.usr.KP_CLEAR_a_0 Bool) - (top.usr.KP_0_a_0 Bool) - (top.usr.KP_1_a_0 Bool) - (top.usr.KP_2_a_0 Bool) - (top.usr.KP_3_a_0 Bool) - (top.usr.KP_4_a_0 Bool) - (top.usr.KP_5_a_0 Bool) - (top.usr.KP_6_a_0 Bool) - (top.usr.KP_7_a_0 Bool) - (top.usr.KP_8_a_0 Bool) - (top.usr.KP_9_a_0 Bool) - (top.usr.DOOR_CLOSED_a_0 Bool) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.MIDDLE_DIGIT_a_0 Int) - (top.impl.usr.STEPS_TO_COOK_a_0 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) - (top.impl.usr.KP_01_a_0 Bool) - (top.impl.usr.KP_11_a_0 Bool) - (top.impl.usr.KP_21_a_0 Bool) - (top.impl.usr.KP_31_a_0 Bool) - (top.impl.usr.KP_41_a_0 Bool) - (top.impl.usr.KP_51_a_0 Bool) - (top.impl.usr.KP_61_a_0 Bool) - (top.impl.usr.KP_71_a_0 Bool) - (top.impl.usr.KP_81_a_0 Bool) - (top.impl.usr.KP_91_a_0 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Int 0)) - (let - ((X2 Int 0)) - (and - (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 true) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool top.usr.KP_START_a_0)) - (let - ((X5 Int (ite (not X4) 0 1))) - (and - (= top.impl.usr.KP_91_a_0 top.usr.KP_9_a_0) - (= top.impl.usr.KP_81_a_0 top.usr.KP_8_a_0) - (= top.impl.usr.KP_71_a_0 top.usr.KP_7_a_0) - (= top.impl.usr.KP_61_a_0 top.usr.KP_6_a_0) - (= top.impl.usr.KP_51_a_0 top.usr.KP_5_a_0) - (= top.impl.usr.KP_41_a_0 top.usr.KP_4_a_0) - (= top.impl.usr.KP_31_a_0 top.usr.KP_3_a_0) - (= top.impl.usr.KP_21_a_0 top.usr.KP_2_a_0) - (= top.impl.usr.KP_11_a_0 top.usr.KP_1_a_0) - (= top.impl.usr.KP_01_a_0 top.usr.KP_0_a_0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - (ite - top.usr.KP_CLEAR_a_0 - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01_a_0 - 0 - (ite - top.impl.usr.KP_11_a_0 - 1 - (ite - top.impl.usr.KP_21_a_0 - 2 - (ite - top.impl.usr.KP_31_a_0 - 3 - (ite - top.impl.usr.KP_41_a_0 - 4 - (ite - top.impl.usr.KP_51_a_0 - 5 - (ite - top.impl.usr.KP_61_a_0 - 6 - (ite - top.impl.usr.KP_71_a_0 - 7 - (ite - top.impl.usr.KP_81_a_0 - 8 - (ite top.impl.usr.KP_91_a_0 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01_a_0 - 0 - (ite - top.impl.usr.KP_11_a_0 - 1 - (ite - top.impl.usr.KP_21_a_0 - 2 - (ite - top.impl.usr.KP_31_a_0 - 3 - (ite - top.impl.usr.KP_41_a_0 - 4 - (ite - top.impl.usr.KP_51_a_0 - 5 - (ite - top.impl.usr.KP_61_a_0 - 6 - (ite - top.impl.usr.KP_71_a_0 - 7 - (ite - top.impl.usr.KP_81_a_0 - 8 - (ite top.impl.usr.KP_91_a_0 9 10)))))))))) - 0))) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - 0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 0) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 - true) - (let - ((X6 Bool true)) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 - X6) - (= - top.impl.usr.STEPS_TO_COOK_a_0 - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0)) - 0 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 60)) - 1))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK_a_0 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED_a_0) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK_a_0 X1))) - (let - ((X18 - Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 - Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 Bool top.usr.KP_CLEAR_a_0)) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (div - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - 1) - 60) - 60)) - 10))) - (and - (= top.impl.usr.MIDDLE_DIGIT_a_0 X33) - (let - ((X34 Int 0)) - (let - ((X35 - Int (ite - X12 - (ite (not (= X9 2)) 2 X34) - X34))) - (let - ((X36 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X35) - X35) - X34))) - (let - ((X37 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X38 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X36) - X36))) - (let - ((X39 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X38) - X38))) - (let - ((X40 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X39) - X39))) - (let - ((X41 - Int (ite - X32 - (ite - (not (= X37 2)) - 2 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X37 2)) - 2 - X37) - X37))) - (let - ((X43 - Bool (and - (= X42 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not - (= X11 0)) - true - false))) - (not - (or X32 X31)))))) - (let - ((X44 - Int (ite - X43 - (ite - (= X42 2) - 1 - X42) - X42))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - (ite - (not (= X2 4)) - 1 - X34) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X43 - (ite - (not (= X44 3)) - 3 - X41) - X41) - X36)) - X34)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode_a_0 - top.impl.usr.chart_microwave_mode_logic_mode_a_0) - (let - ((X45 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - X45 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X43 - (ite - (not (= X44 3)) - 3 - X44) - X44) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - top.res.init_flag_a_0))))))))))))))))))))))))))))))))))))))))))))))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.KP_START_a_1 Bool) - (top.usr.KP_CLEAR_a_1 Bool) - (top.usr.KP_0_a_1 Bool) - (top.usr.KP_1_a_1 Bool) - (top.usr.KP_2_a_1 Bool) - (top.usr.KP_3_a_1 Bool) - (top.usr.KP_4_a_1 Bool) - (top.usr.KP_5_a_1 Bool) - (top.usr.KP_6_a_1 Bool) - (top.usr.KP_7_a_1 Bool) - (top.usr.KP_8_a_1 Bool) - (top.usr.KP_9_a_1 Bool) - (top.usr.DOOR_CLOSED_a_1 Bool) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.MIDDLE_DIGIT_a_1 Int) - (top.impl.usr.STEPS_TO_COOK_a_1 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 Bool) - (top.impl.usr.KP_01_a_1 Bool) - (top.impl.usr.KP_11_a_1 Bool) - (top.impl.usr.KP_21_a_1 Bool) - (top.impl.usr.KP_31_a_1 Bool) - (top.impl.usr.KP_41_a_1 Bool) - (top.impl.usr.KP_51_a_1 Bool) - (top.impl.usr.KP_61_a_1 Bool) - (top.impl.usr.KP_71_a_1 Bool) - (top.impl.usr.KP_81_a_1 Bool) - (top.impl.usr.KP_91_a_1 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_1 Int) - (top.usr.KP_START_a_0 Bool) - (top.usr.KP_CLEAR_a_0 Bool) - (top.usr.KP_0_a_0 Bool) - (top.usr.KP_1_a_0 Bool) - (top.usr.KP_2_a_0 Bool) - (top.usr.KP_3_a_0 Bool) - (top.usr.KP_4_a_0 Bool) - (top.usr.KP_5_a_0 Bool) - (top.usr.KP_6_a_0 Bool) - (top.usr.KP_7_a_0 Bool) - (top.usr.KP_8_a_0 Bool) - (top.usr.KP_9_a_0 Bool) - (top.usr.DOOR_CLOSED_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.MIDDLE_DIGIT_a_0 Int) - (top.impl.usr.STEPS_TO_COOK_a_0 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) - (top.impl.usr.KP_01_a_0 Bool) - (top.impl.usr.KP_11_a_0 Bool) - (top.impl.usr.KP_21_a_0 Bool) - (top.impl.usr.KP_31_a_0 Bool) - (top.impl.usr.KP_41_a_0 Bool) - (top.impl.usr.KP_51_a_0 Bool) - (top.impl.usr.KP_61_a_0 Bool) - (top.impl.usr.KP_71_a_0 Bool) - (top.impl.usr.KP_81_a_0 Bool) - (top.impl.usr.KP_91_a_0 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int) - ) Bool - - (let - ((X1 Int top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0)) - (let - ((X2 - Int top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0)) - (and - (= - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - false - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0)) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool (and top.usr.KP_START_a_1 (not top.usr.KP_START_a_0)))) - (let - ((X5 Int (ite (not X4) 0 1))) - (let - ((X6 - Bool (ite - (= 1 top.impl.usr.microwave_microwave_mode_logic_mode_a_0) - true - false))) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - X6) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (ite - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1) - true - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 - false - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0))) - (= top.impl.usr.KP_91_a_1 top.usr.KP_9_a_1) - (= top.impl.usr.KP_81_a_1 top.usr.KP_8_a_1) - (= top.impl.usr.KP_71_a_1 top.usr.KP_7_a_1) - (= top.impl.usr.KP_61_a_1 top.usr.KP_6_a_1) - (= top.impl.usr.KP_51_a_1 top.usr.KP_5_a_1) - (= top.impl.usr.KP_41_a_1 top.usr.KP_4_a_1) - (= top.impl.usr.KP_31_a_1 top.usr.KP_3_a_1) - (= top.impl.usr.KP_21_a_1 top.usr.KP_2_a_1) - (= top.impl.usr.KP_11_a_1 top.usr.KP_1_a_1) - (= top.impl.usr.KP_01_a_1 top.usr.KP_0_a_1) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01_a_1 - 0 - (ite - top.impl.usr.KP_11_a_1 - 1 - (ite - top.impl.usr.KP_21_a_1 - 2 - (ite - top.impl.usr.KP_31_a_1 - 3 - (ite - top.impl.usr.KP_41_a_1 - 4 - (ite - top.impl.usr.KP_51_a_1 - 5 - (ite - top.impl.usr.KP_61_a_1 - 6 - (ite - top.impl.usr.KP_71_a_1 - 7 - (ite - top.impl.usr.KP_81_a_1 - 8 - (ite top.impl.usr.KP_91_a_1 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01_a_1 - 0 - (ite - top.impl.usr.KP_11_a_1 - 1 - (ite - top.impl.usr.KP_21_a_1 - 2 - (ite - top.impl.usr.KP_31_a_1 - 3 - (ite - top.impl.usr.KP_41_a_1 - 4 - (ite - top.impl.usr.KP_51_a_1 - 5 - (ite - top.impl.usr.KP_61_a_1 - 6 - (ite - top.impl.usr.KP_71_a_1 - 7 - (ite - top.impl.usr.KP_81_a_1 - 8 - (ite top.impl.usr.KP_91_a_1 9 10)))))))))) - 0)) - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and - top.impl.usr.KP_71_a_1 - (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and - top.impl.usr.KP_81_a_1 - (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - 0 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and - top.impl.usr.KP_71_a_1 - (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and - top.impl.usr.KP_81_a_1 - (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - 0 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and - top.impl.usr.KP_71_a_1 - (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and - top.impl.usr.KP_81_a_1 - (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.STEPS_TO_COOK_a_1 - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1)) - 0 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 - 60)) - 1) - top.impl.usr.STEPS_TO_COOK_a_0))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK_a_1 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED_a_1) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK_a_1 X1))) - (let - ((X18 Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 - Bool (and - top.usr.KP_CLEAR_a_1 - (not top.usr.KP_CLEAR_a_0)))) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (div - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - 1) - 60) - 60)) - 10))) - (and - (= top.impl.usr.MIDDLE_DIGIT_a_1 X33) - (= - top.usr.OK_a_1 - (or - (or - (not - (and X6 (not top.usr.KP_CLEAR_a_1))) - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - top.usr.KP_1_a_1 - (not top.usr.KP_1_a_0)) - (and - top.usr.KP_2_a_1 - (not top.usr.KP_2_a_0))) - (and - top.usr.KP_3_a_1 - (not top.usr.KP_3_a_0))) - (and - top.usr.KP_4_a_1 - (not top.usr.KP_4_a_0))) - (and - top.usr.KP_5_a_1 - (not top.usr.KP_5_a_0))) - (and - top.usr.KP_6_a_1 - (not top.usr.KP_6_a_0))) - (and - top.usr.KP_7_a_1 - (not top.usr.KP_7_a_0))) - (and - top.usr.KP_8_a_1 - (not top.usr.KP_8_a_0))) - (and - top.usr.KP_9_a_1 - (not top.usr.KP_9_a_0))) - (and - top.usr.KP_0_a_1 - (not top.usr.KP_0_a_0)))) - (= - top.impl.usr.MIDDLE_DIGIT_a_1 - top.impl.usr.MIDDLE_DIGIT_a_0))) - (let - ((X34 - Int top.impl.usr.chart_microwave_mode_logic_mode_a_0)) - (let - ((X35 - Int (ite - X12 - (ite (not (= X9 2)) 2 X34) - X34))) - (let - ((X36 - Int (ite - X7 - (ite - X14 - (ite (not (= X13 3)) 3 X35) - X35) - X34))) - (let - ((X37 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X38 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X36) - X36))) - (let - ((X39 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X38) - X38))) - (let - ((X40 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X39) - X39))) - (let - ((X41 - Int (ite - X32 - (ite - (not (= X37 2)) - 2 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X37 2)) - 2 - X37) - X37))) - (let - ((X43 - Bool (and - (= X42 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not (= X11 0)) - true - false))) - (not (or X32 X31)))))) - (let - ((X44 - Int (ite - X43 - (ite - (= X42 2) - 1 - X42) - X42))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - (ite - (not (= X2 4)) - 1 - X34) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X43 - (ite - (not (= X44 3)) - 3 - X41) - X41) - X36)) - X34)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode_a_1 - top.impl.usr.chart_microwave_mode_logic_mode_a_1) - (let - ((X45 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - X45 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X43 - (ite - (not (= X44 3)) - 3 - X44) - X44) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - (not - top.res.init_flag_a_1)))))))))))))))))))))))))))))))))))))))))))))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.MIDDLE_DIGIT Int) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) -)) - -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.KP_START Bool) -(declare-primed-var top.usr.KP_CLEAR Bool) -(declare-primed-var top.usr.KP_0 Bool) -(declare-primed-var top.usr.KP_1 Bool) -(declare-primed-var top.usr.KP_2 Bool) -(declare-primed-var top.usr.KP_3 Bool) -(declare-primed-var top.usr.KP_4 Bool) -(declare-primed-var top.usr.KP_5 Bool) -(declare-primed-var top.usr.KP_6 Bool) -(declare-primed-var top.usr.KP_7 Bool) -(declare-primed-var top.usr.KP_8 Bool) -(declare-primed-var top.usr.KP_9 Bool) -(declare-primed-var top.usr.DOOR_CLOSED Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.MIDDLE_DIGIT Int) -(declare-primed-var top.impl.usr.STEPS_TO_COOK Int) -(declare-primed-var top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) -(declare-primed-var top.impl.usr.KP_01 Bool) -(declare-primed-var top.impl.usr.KP_11 Bool) -(declare-primed-var top.impl.usr.KP_21 Bool) -(declare-primed-var top.impl.usr.KP_31 Bool) -(declare-primed-var top.impl.usr.KP_41 Bool) -(declare-primed-var top.impl.usr.KP_51 Bool) -(declare-primed-var top.impl.usr.KP_61 Bool) -(declare-primed-var top.impl.usr.KP_71 Bool) -(declare-primed-var top.impl.usr.KP_81 Bool) -(declare-primed-var top.impl.usr.KP_91 Bool) -(declare-primed-var top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_mode Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) -(declare-primed-var top.impl.usr.microwave_microwave_mode_logic_mode Int) - -(define-fun - init ( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.MIDDLE_DIGIT Int) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Int 0)) - (let - ((X2 Int 0)) - (and - (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep true) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool top.usr.KP_START)) - (let - ((X5 Int (ite (not X4) 0 1))) - (and - (= top.impl.usr.KP_91 top.usr.KP_9) - (= top.impl.usr.KP_81 top.usr.KP_8) - (= top.impl.usr.KP_71 top.usr.KP_7) - (= top.impl.usr.KP_61 top.usr.KP_6) - (= top.impl.usr.KP_51 top.usr.KP_5) - (= top.impl.usr.KP_41 top.usr.KP_4) - (= top.impl.usr.KP_31 top.usr.KP_3) - (= top.impl.usr.KP_21 top.usr.KP_2) - (= top.impl.usr.KP_11 top.usr.KP_1) - (= top.impl.usr.KP_01 top.usr.KP_0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - (ite - top.usr.KP_CLEAR - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01 - 0 - (ite - top.impl.usr.KP_11 - 1 - (ite - top.impl.usr.KP_21 - 2 - (ite - top.impl.usr.KP_31 - 3 - (ite - top.impl.usr.KP_41 - 4 - (ite - top.impl.usr.KP_51 - 5 - (ite - top.impl.usr.KP_61 - 6 - (ite - top.impl.usr.KP_71 - 7 - (ite - top.impl.usr.KP_81 - 8 - (ite top.impl.usr.KP_91 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01 - 0 - (ite - top.impl.usr.KP_11 - 1 - (ite - top.impl.usr.KP_21 - 2 - (ite - top.impl.usr.KP_31 - 3 - (ite - top.impl.usr.KP_41 - 4 - (ite - top.impl.usr.KP_51 - 5 - (ite - top.impl.usr.KP_61 - 6 - (ite - top.impl.usr.KP_71 - 7 - (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) - 0))) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - 0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY - 0) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step - true) - (let - ((X6 Bool true)) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock - X6) - (= - top.impl.usr.STEPS_TO_COOK - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock)) - 0 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY - 60)) - 1))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK X1))) - (let - ((X18 - Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 - Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 Bool top.usr.KP_CLEAR)) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup___ - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (div - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining - 1) - 60) - 60)) - 10))) - (and - (= top.impl.usr.MIDDLE_DIGIT X33) - (let - ((X34 Int 0)) - (let - ((X35 - Int (ite - X12 - (ite (not (= X9 2)) 2 X34) - X34))) - (let - ((X36 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X35) - X35) - X34))) - (let - ((X37 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X38 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X36) - X36))) - (let - ((X39 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X38) - X38))) - (let - ((X40 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X39) - X39))) - (let - ((X41 - Int (ite - X32 - (ite - (not (= X37 2)) - 2 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X37 2)) - 2 - X37) - X37))) - (let - ((X43 - Bool (and - (= X42 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not - (= X11 0)) - true - false))) - (not - (or X32 X31)))))) - (let - ((X44 - Int (ite - X43 - (ite - (= X42 2) - 1 - X42) - X42))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - (ite - (not (= X2 4)) - 1 - X34) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X43 - (ite - (not (= X44 3)) - 3 - X41) - X41) - X36)) - X34)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode - top.impl.usr.chart_microwave_mode_logic_mode) - (let - ((X45 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - X45 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X43 - (ite - (not (= X44 3)) - 3 - X44) - X44) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - top.res.init_flag))))))))))))))))))))))))))))))))))))))))))))))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.MIDDLE_DIGIT Int) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - - ;; Next state. - (top.usr.KP_START! Bool) - (top.usr.KP_CLEAR! Bool) - (top.usr.KP_0! Bool) - (top.usr.KP_1! Bool) - (top.usr.KP_2! Bool) - (top.usr.KP_3! Bool) - (top.usr.KP_4! Bool) - (top.usr.KP_5! Bool) - (top.usr.KP_6! Bool) - (top.usr.KP_7! Bool) - (top.usr.KP_8! Bool) - (top.usr.KP_9! Bool) - (top.usr.DOOR_CLOSED! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.MIDDLE_DIGIT! Int) - (top.impl.usr.STEPS_TO_COOK! Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! Bool) - (top.impl.usr.KP_01! Bool) - (top.impl.usr.KP_11! Bool) - (top.impl.usr.KP_21! Bool) - (top.impl.usr.KP_31! Bool) - (top.impl.usr.KP_41! Bool) - (top.impl.usr.KP_51! Bool) - (top.impl.usr.KP_61! Bool) - (top.impl.usr.KP_71! Bool) - (top.impl.usr.KP_81! Bool) - (top.impl.usr.KP_91! Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___! Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root! Int) - (top.impl.usr.chart_microwave_mode_logic_mode! Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining! Int) - (top.impl.usr.microwave_microwave_mode_logic_mode! Int) - - ) Bool - - (and - (let - ((X1 Int top.impl.usr.chart_microwave_mode_logic_steps_remaining)) - (let - ((X2 - Int top.impl.usr.chart_microwave_mode_logic_final_state_states___root)) - (and - (= - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - false - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep)) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool (and top.usr.KP_START! (not top.usr.KP_START)))) - (let - ((X5 Int (ite (not X4) 0 1))) - (let - ((X6 - Bool (ite - (= 1 top.impl.usr.microwave_microwave_mode_logic_mode) - true - false))) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - X6) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (ite - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!) - true - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock - false - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step))) - (= top.impl.usr.KP_91! top.usr.KP_9!) - (= top.impl.usr.KP_81! top.usr.KP_8!) - (= top.impl.usr.KP_71! top.usr.KP_7!) - (= top.impl.usr.KP_61! top.usr.KP_6!) - (= top.impl.usr.KP_51! top.usr.KP_5!) - (= top.impl.usr.KP_41! top.usr.KP_4!) - (= top.impl.usr.KP_31! top.usr.KP_3!) - (= top.impl.usr.KP_21! top.usr.KP_2!) - (= top.impl.usr.KP_11! top.usr.KP_1!) - (= top.impl.usr.KP_01! top.usr.KP_0!) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01! - 0 - (ite - top.impl.usr.KP_11! - 1 - (ite - top.impl.usr.KP_21! - 2 - (ite - top.impl.usr.KP_31! - 3 - (ite - top.impl.usr.KP_41! - 4 - (ite - top.impl.usr.KP_51! - 5 - (ite - top.impl.usr.KP_61! - 6 - (ite - top.impl.usr.KP_71! - 7 - (ite - top.impl.usr.KP_81! - 8 - (ite top.impl.usr.KP_91! 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01! - 0 - (ite - top.impl.usr.KP_11! - 1 - (ite - top.impl.usr.KP_21! - 2 - (ite - top.impl.usr.KP_31! - 3 - (ite - top.impl.usr.KP_41! - 4 - (ite - top.impl.usr.KP_51! - 5 - (ite - top.impl.usr.KP_61! - 6 - (ite - top.impl.usr.KP_71! - 7 - (ite - top.impl.usr.KP_81! - 8 - (ite top.impl.usr.KP_91! 9 10)))))))))) - 0)) - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and - top.impl.usr.KP_91! - (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - 0 - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and - top.impl.usr.KP_91! - (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - 0 - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and - top.impl.usr.KP_91! - (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.STEPS_TO_COOK! - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!)) - 0 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! - 60)) - 1) - top.impl.usr.STEPS_TO_COOK))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK! 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED!) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK! X1))) - (let - ((X18 Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 - Bool (and - top.usr.KP_CLEAR! - (not top.usr.KP_CLEAR)))) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup___! - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (div - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - 1) - 60) - 60)) - 10))) - (and - (= top.impl.usr.MIDDLE_DIGIT! X33) - (= - top.usr.OK! - (or - (or - (not - (and X6 (not top.usr.KP_CLEAR!))) - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - top.usr.KP_1! - (not top.usr.KP_1)) - (and - top.usr.KP_2! - (not top.usr.KP_2))) - (and - top.usr.KP_3! - (not top.usr.KP_3))) - (and - top.usr.KP_4! - (not top.usr.KP_4))) - (and - top.usr.KP_5! - (not top.usr.KP_5))) - (and - top.usr.KP_6! - (not top.usr.KP_6))) - (and - top.usr.KP_7! - (not top.usr.KP_7))) - (and - top.usr.KP_8! - (not top.usr.KP_8))) - (and - top.usr.KP_9! - (not top.usr.KP_9))) - (and - top.usr.KP_0! - (not top.usr.KP_0)))) - (= - top.impl.usr.MIDDLE_DIGIT! - top.impl.usr.MIDDLE_DIGIT))) - (let - ((X34 - Int top.impl.usr.chart_microwave_mode_logic_mode)) - (let - ((X35 - Int (ite - X12 - (ite (not (= X9 2)) 2 X34) - X34))) - (let - ((X36 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X35) - X35) - X34))) - (let - ((X37 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X38 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X36) - X36))) - (let - ((X39 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X38) - X38))) - (let - ((X40 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X39) - X39))) - (let - ((X41 - Int (ite - X32 - (ite - (not (= X37 2)) - 2 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X37 2)) - 2 - X37) - X37))) - (let - ((X43 - Bool (and - (= X42 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not (= X11 0)) - true - false))) - (not (or X32 X31)))))) - (let - ((X44 - Int (ite - X43 - (ite - (= X42 2) - 1 - X42) - X42))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - (ite - (not (= X2 4)) - 1 - X34) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X43 - (ite - (not (= X44 3)) - 3 - X41) - X41) - X36)) - X34)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode! - top.impl.usr.chart_microwave_mode_logic_mode!) - (let - ((X45 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - X45 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X43 - (ite - (not (= X44 3)) - 3 - X44) - X44) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - (not - top.res.init_flag!)))))))))))))))))))))))))))))))))))))))))))))))))))) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.MIDDLE_DIGIT Int) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - ) Bool - - top.usr.OK -) +(define-fun __node_init_top_0 ((top.usr.KP_START_a_0 Bool) (top.usr.KP_CLEAR_a_0 Bool) (top.usr.KP_0_a_0 Bool) (top.usr.KP_1_a_0 Bool) (top.usr.KP_2_a_0 Bool) (top.usr.KP_3_a_0 Bool) (top.usr.KP_4_a_0 Bool) (top.usr.KP_5_a_0 Bool) (top.usr.KP_6_a_0 Bool) (top.usr.KP_7_a_0 Bool) (top.usr.KP_8_a_0 Bool) (top.usr.KP_9_a_0 Bool) (top.usr.DOOR_CLOSED_a_0 Bool) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.MIDDLE_DIGIT_a_0 Int) (top.impl.usr.STEPS_TO_COOK_a_0 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) (top.impl.usr.KP_01_a_0 Bool) (top.impl.usr.KP_11_a_0 Bool) (top.impl.usr.KP_21_a_0 Bool) (top.impl.usr.KP_31_a_0 Bool) (top.impl.usr.KP_41_a_0 Bool) (top.impl.usr.KP_51_a_0 Bool) (top.impl.usr.KP_61_a_0 Bool) (top.impl.usr.KP_71_a_0 Bool) (top.impl.usr.KP_81_a_0 Bool) (top.impl.usr.KP_91_a_0 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 0)) (let ((X2 0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 true) (let ((X3 (= X2 4))) (let ((X4 top.usr.KP_START_a_0)) (let ((X5 (ite (not X4) 0 1))) (and (= top.impl.usr.KP_91_a_0 top.usr.KP_9_a_0) (= top.impl.usr.KP_81_a_0 top.usr.KP_8_a_0) (= top.impl.usr.KP_71_a_0 top.usr.KP_7_a_0) (= top.impl.usr.KP_61_a_0 top.usr.KP_6_a_0) (= top.impl.usr.KP_51_a_0 top.usr.KP_5_a_0) (= top.impl.usr.KP_41_a_0 top.usr.KP_4_a_0) (= top.impl.usr.KP_31_a_0 top.usr.KP_3_a_0) (= top.impl.usr.KP_21_a_0 top.usr.KP_2_a_0) (= top.impl.usr.KP_11_a_0 top.usr.KP_1_a_0) (= top.impl.usr.KP_01_a_0 top.usr.KP_0_a_0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 (ite top.usr.KP_CLEAR_a_0 0 (ite (ite (<= (ite top.impl.usr.KP_01_a_0 0 (ite top.impl.usr.KP_11_a_0 1 (ite top.impl.usr.KP_21_a_0 2 (ite top.impl.usr.KP_31_a_0 3 (ite top.impl.usr.KP_41_a_0 4 (ite top.impl.usr.KP_51_a_0 5 (ite top.impl.usr.KP_61_a_0 6 (ite top.impl.usr.KP_71_a_0 7 (ite top.impl.usr.KP_81_a_0 8 (ite top.impl.usr.KP_91_a_0 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01_a_0 0 (ite top.impl.usr.KP_11_a_0 1 (ite top.impl.usr.KP_21_a_0 2 (ite top.impl.usr.KP_31_a_0 3 (ite top.impl.usr.KP_41_a_0 4 (ite top.impl.usr.KP_51_a_0 5 (ite top.impl.usr.KP_61_a_0 6 (ite top.impl.usr.KP_71_a_0 7 (ite top.impl.usr.KP_81_a_0 8 (ite top.impl.usr.KP_91_a_0 9 10)))))))))) 0))) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 0) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 true) (let ((X6 true)) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 X6) (= top.impl.usr.STEPS_TO_COOK_a_0 (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0)) 0 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 60)) 1))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK_a_0 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED_a_0) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK_a_0 X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 top.usr.KP_CLEAR_a_0)) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (div (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 1) 60) 60)) 10))) (and (= top.impl.usr.MIDDLE_DIGIT_a_0 X33) (let ((X34 0)) (let ((X35 (ite X12 (ite (not (= X9 2)) 2 X34) X34))) (let ((X36 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X35) X35) X34))) (let ((X37 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X38 (ite X18 (ite (not (= X19 4)) 1 X36) X36))) (let ((X39 (ite X21 (ite (not (= X22 2)) 2 X38) X38))) (let ((X40 (ite X27 (ite (not (= X28 4)) 1 X39) X39))) (let ((X41 (ite X32 (ite (not (= X37 2)) 2 X40) X40))) (let ((X42 (ite X32 (ite (not (= X37 2)) 2 X37) X37))) (let ((X43 (and (= X42 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X44 (ite X43 (ite (= X42 2) 1 X42) X42))) (and (= top.impl.usr.chart_microwave_mode_logic_mode_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 (ite (not (= X2 4)) 1 X34) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X43 (ite (not (= X44 3)) 3 X41) X41) X36)) X34)) (= top.impl.usr.microwave_microwave_mode_logic_mode_a_0 top.impl.usr.chart_microwave_mode_logic_mode_a_0) (let ((X45 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 X45 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X43 (ite (not (= X44 3)) 3 X44) X44) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) top.res.init_flag_a_0)))))))))))))))))))))))))))))))))))))))))))))))))))))) +(define-fun __node_trans_top_0 ((top.usr.KP_START_a_1 Bool) (top.usr.KP_CLEAR_a_1 Bool) (top.usr.KP_0_a_1 Bool) (top.usr.KP_1_a_1 Bool) (top.usr.KP_2_a_1 Bool) (top.usr.KP_3_a_1 Bool) (top.usr.KP_4_a_1 Bool) (top.usr.KP_5_a_1 Bool) (top.usr.KP_6_a_1 Bool) (top.usr.KP_7_a_1 Bool) (top.usr.KP_8_a_1 Bool) (top.usr.KP_9_a_1 Bool) (top.usr.DOOR_CLOSED_a_1 Bool) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.MIDDLE_DIGIT_a_1 Int) (top.impl.usr.STEPS_TO_COOK_a_1 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 Bool) (top.impl.usr.KP_01_a_1 Bool) (top.impl.usr.KP_11_a_1 Bool) (top.impl.usr.KP_21_a_1 Bool) (top.impl.usr.KP_31_a_1 Bool) (top.impl.usr.KP_41_a_1 Bool) (top.impl.usr.KP_51_a_1 Bool) (top.impl.usr.KP_61_a_1 Bool) (top.impl.usr.KP_71_a_1 Bool) (top.impl.usr.KP_81_a_1 Bool) (top.impl.usr.KP_91_a_1 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_1 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_1 Int) (top.usr.KP_START_a_0 Bool) (top.usr.KP_CLEAR_a_0 Bool) (top.usr.KP_0_a_0 Bool) (top.usr.KP_1_a_0 Bool) (top.usr.KP_2_a_0 Bool) (top.usr.KP_3_a_0 Bool) (top.usr.KP_4_a_0 Bool) (top.usr.KP_5_a_0 Bool) (top.usr.KP_6_a_0 Bool) (top.usr.KP_7_a_0 Bool) (top.usr.KP_8_a_0 Bool) (top.usr.KP_9_a_0 Bool) (top.usr.DOOR_CLOSED_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.MIDDLE_DIGIT_a_0 Int) (top.impl.usr.STEPS_TO_COOK_a_0 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) (top.impl.usr.KP_01_a_0 Bool) (top.impl.usr.KP_11_a_0 Bool) (top.impl.usr.KP_21_a_0 Bool) (top.impl.usr.KP_31_a_0 Bool) (top.impl.usr.KP_41_a_0 Bool) (top.impl.usr.KP_51_a_0 Bool) (top.impl.usr.KP_61_a_0 Bool) (top.impl.usr.KP_71_a_0 Bool) (top.impl.usr.KP_81_a_0 Bool) (top.impl.usr.KP_91_a_0 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int)) Bool + (let ((X1 top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0)) (let ((X2 top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 false top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0)) (let ((X3 (= X2 4))) (let ((X4 (and top.usr.KP_START_a_1 (not top.usr.KP_START_a_0)))) (let ((X5 (ite (not X4) 0 1))) (let ((X6 (ite (= 1 top.impl.usr.microwave_microwave_mode_logic_mode_a_0) true false))) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 X6) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (ite (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1) true (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 false top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0))) (= top.impl.usr.KP_91_a_1 top.usr.KP_9_a_1) (= top.impl.usr.KP_81_a_1 top.usr.KP_8_a_1) (= top.impl.usr.KP_71_a_1 top.usr.KP_7_a_1) (= top.impl.usr.KP_61_a_1 top.usr.KP_6_a_1) (= top.impl.usr.KP_51_a_1 top.usr.KP_5_a_1) (= top.impl.usr.KP_41_a_1 top.usr.KP_4_a_1) (= top.impl.usr.KP_31_a_1 top.usr.KP_3_a_1) (= top.impl.usr.KP_21_a_1 top.usr.KP_2_a_1) (= top.impl.usr.KP_11_a_1 top.usr.KP_1_a_1) (= top.impl.usr.KP_01_a_1 top.usr.KP_0_a_1) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite top.impl.usr.KP_01_a_1 0 (ite top.impl.usr.KP_11_a_1 1 (ite top.impl.usr.KP_21_a_1 2 (ite top.impl.usr.KP_31_a_1 3 (ite top.impl.usr.KP_41_a_1 4 (ite top.impl.usr.KP_51_a_1 5 (ite top.impl.usr.KP_61_a_1 6 (ite top.impl.usr.KP_71_a_1 7 (ite top.impl.usr.KP_81_a_1 8 (ite top.impl.usr.KP_91_a_1 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01_a_1 0 (ite top.impl.usr.KP_11_a_1 1 (ite top.impl.usr.KP_21_a_1 2 (ite top.impl.usr.KP_31_a_1 3 (ite top.impl.usr.KP_41_a_1 4 (ite top.impl.usr.KP_51_a_1 5 (ite top.impl.usr.KP_61_a_1 6 (ite top.impl.usr.KP_71_a_1 7 (ite top.impl.usr.KP_81_a_1 8 (ite top.impl.usr.KP_91_a_1 9 10)))))))))) 0)) (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 0 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 0 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.STEPS_TO_COOK_a_1 (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1)) 0 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 60)) 1) top.impl.usr.STEPS_TO_COOK_a_0))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK_a_1 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED_a_1) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK_a_1 X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 (and top.usr.KP_CLEAR_a_1 (not top.usr.KP_CLEAR_a_0)))) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (div (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 1) 60) 60)) 10))) (and (= top.impl.usr.MIDDLE_DIGIT_a_1 X33) (= top.usr.OK_a_1 (or (or (not (and X6 (not top.usr.KP_CLEAR_a_1))) (or (or (or (or (or (or (or (or (or (and top.usr.KP_1_a_1 (not top.usr.KP_1_a_0)) (and top.usr.KP_2_a_1 (not top.usr.KP_2_a_0))) (and top.usr.KP_3_a_1 (not top.usr.KP_3_a_0))) (and top.usr.KP_4_a_1 (not top.usr.KP_4_a_0))) (and top.usr.KP_5_a_1 (not top.usr.KP_5_a_0))) (and top.usr.KP_6_a_1 (not top.usr.KP_6_a_0))) (and top.usr.KP_7_a_1 (not top.usr.KP_7_a_0))) (and top.usr.KP_8_a_1 (not top.usr.KP_8_a_0))) (and top.usr.KP_9_a_1 (not top.usr.KP_9_a_0))) (and top.usr.KP_0_a_1 (not top.usr.KP_0_a_0)))) (= top.impl.usr.MIDDLE_DIGIT_a_1 top.impl.usr.MIDDLE_DIGIT_a_0))) (let ((X34 top.impl.usr.chart_microwave_mode_logic_mode_a_0)) (let ((X35 (ite X12 (ite (not (= X9 2)) 2 X34) X34))) (let ((X36 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X35) X35) X34))) (let ((X37 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X38 (ite X18 (ite (not (= X19 4)) 1 X36) X36))) (let ((X39 (ite X21 (ite (not (= X22 2)) 2 X38) X38))) (let ((X40 (ite X27 (ite (not (= X28 4)) 1 X39) X39))) (let ((X41 (ite X32 (ite (not (= X37 2)) 2 X40) X40))) (let ((X42 (ite X32 (ite (not (= X37 2)) 2 X37) X37))) (let ((X43 (and (= X42 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X44 (ite X43 (ite (= X42 2) 1 X42) X42))) (and (= top.impl.usr.chart_microwave_mode_logic_mode_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 (ite (not (= X2 4)) 1 X34) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X43 (ite (not (= X44 3)) 3 X41) X41) X36)) X34)) (= top.impl.usr.microwave_microwave_mode_logic_mode_a_1 top.impl.usr.chart_microwave_mode_logic_mode_a_1) (let ((X45 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 X45 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X43 (ite (not (= X44 3)) 3 X44) X44) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) (not top.res.init_flag_a_1))))))))))))))))))))))))))))))))))))))))))))))))))))) +(synth-inv str_invariant ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.MIDDLE_DIGIT Int) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int))) + +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.MIDDLE_DIGIT Int) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int)) Bool + (and (= top.usr.OK true) (let ((X1 0)) (let ((X2 0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep true) (let ((X3 (= X2 4))) (let ((X4 top.usr.KP_START)) (let ((X5 (ite (not X4) 0 1))) (and (= top.impl.usr.KP_91 top.usr.KP_9) (= top.impl.usr.KP_81 top.usr.KP_8) (= top.impl.usr.KP_71 top.usr.KP_7) (= top.impl.usr.KP_61 top.usr.KP_6) (= top.impl.usr.KP_51 top.usr.KP_5) (= top.impl.usr.KP_41 top.usr.KP_4) (= top.impl.usr.KP_31 top.usr.KP_3) (= top.impl.usr.KP_21 top.usr.KP_2) (= top.impl.usr.KP_11 top.usr.KP_1) (= top.impl.usr.KP_01 top.usr.KP_0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY (ite top.usr.KP_CLEAR 0 (ite (ite (<= (ite top.impl.usr.KP_01 0 (ite top.impl.usr.KP_11 1 (ite top.impl.usr.KP_21 2 (ite top.impl.usr.KP_31 3 (ite top.impl.usr.KP_41 4 (ite top.impl.usr.KP_51 5 (ite top.impl.usr.KP_61 6 (ite top.impl.usr.KP_71 7 (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01 0 (ite top.impl.usr.KP_11 1 (ite top.impl.usr.KP_21 2 (ite top.impl.usr.KP_31 3 (ite top.impl.usr.KP_41 4 (ite top.impl.usr.KP_51 5 (ite top.impl.usr.KP_61 6 (ite top.impl.usr.KP_71 7 (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) 0))) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY 0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY 0) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step true) (let ((X6 true)) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock X6) (= top.impl.usr.STEPS_TO_COOK (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock)) 0 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY 60)) 1))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 top.usr.KP_CLEAR)) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup___ true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (div (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining 1) 60) 60)) 10))) (and (= top.impl.usr.MIDDLE_DIGIT X33) (let ((X34 0)) (let ((X35 (ite X12 (ite (not (= X9 2)) 2 X34) X34))) (let ((X36 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X35) X35) X34))) (let ((X37 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X38 (ite X18 (ite (not (= X19 4)) 1 X36) X36))) (let ((X39 (ite X21 (ite (not (= X22 2)) 2 X38) X38))) (let ((X40 (ite X27 (ite (not (= X28 4)) 1 X39) X39))) (let ((X41 (ite X32 (ite (not (= X37 2)) 2 X40) X40))) (let ((X42 (ite X32 (ite (not (= X37 2)) 2 X37) X37))) (let ((X43 (and (= X42 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X44 (ite X43 (ite (= X42 2) 1 X42) X42))) (and (= top.impl.usr.chart_microwave_mode_logic_mode (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep (ite (not (= X2 4)) 1 X34) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X43 (ite (not (= X44 3)) 3 X41) X41) X36)) X34)) (= top.impl.usr.microwave_microwave_mode_logic_mode top.impl.usr.chart_microwave_mode_logic_mode) (let ((X45 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep X45 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X43 (ite (not (= X44 3)) 3 X44) X44) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) top.res.init_flag)))))))))))))))))))))))))))))))))))))))))))))))))))))) +(define-fun trans ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.MIDDLE_DIGIT Int) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int) (top.usr.KP_START! Bool) (top.usr.KP_CLEAR! Bool) (top.usr.KP_0! Bool) (top.usr.KP_1! Bool) (top.usr.KP_2! Bool) (top.usr.KP_3! Bool) (top.usr.KP_4! Bool) (top.usr.KP_5! Bool) (top.usr.KP_6! Bool) (top.usr.KP_7! Bool) (top.usr.KP_8! Bool) (top.usr.KP_9! Bool) (top.usr.DOOR_CLOSED! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.MIDDLE_DIGIT! Int) (top.impl.usr.STEPS_TO_COOK! Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! Bool) (top.impl.usr.KP_01! Bool) (top.impl.usr.KP_11! Bool) (top.impl.usr.KP_21! Bool) (top.impl.usr.KP_31! Bool) (top.impl.usr.KP_41! Bool) (top.impl.usr.KP_51! Bool) (top.impl.usr.KP_61! Bool) (top.impl.usr.KP_71! Bool) (top.impl.usr.KP_81! Bool) (top.impl.usr.KP_91! Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___! Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root! Int) (top.impl.usr.chart_microwave_mode_logic_mode! Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining! Int) (top.impl.usr.microwave_microwave_mode_logic_mode! Int)) Bool + (and (let ((X1 top.impl.usr.chart_microwave_mode_logic_steps_remaining)) (let ((X2 top.impl.usr.chart_microwave_mode_logic_final_state_states___root)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ false top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep)) (let ((X3 (= X2 4))) (let ((X4 (and top.usr.KP_START! (not top.usr.KP_START)))) (let ((X5 (ite (not X4) 0 1))) (let ((X6 (ite (= 1 top.impl.usr.microwave_microwave_mode_logic_mode) true false))) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! X6) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (ite (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!) true (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock false top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step))) (= top.impl.usr.KP_91! top.usr.KP_9!) (= top.impl.usr.KP_81! top.usr.KP_8!) (= top.impl.usr.KP_71! top.usr.KP_7!) (= top.impl.usr.KP_61! top.usr.KP_6!) (= top.impl.usr.KP_51! top.usr.KP_5!) (= top.impl.usr.KP_41! top.usr.KP_4!) (= top.impl.usr.KP_31! top.usr.KP_3!) (= top.impl.usr.KP_21! top.usr.KP_2!) (= top.impl.usr.KP_11! top.usr.KP_1!) (= top.impl.usr.KP_01! top.usr.KP_0!) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite top.impl.usr.KP_01! 0 (ite top.impl.usr.KP_11! 1 (ite top.impl.usr.KP_21! 2 (ite top.impl.usr.KP_31! 3 (ite top.impl.usr.KP_41! 4 (ite top.impl.usr.KP_51! 5 (ite top.impl.usr.KP_61! 6 (ite top.impl.usr.KP_71! 7 (ite top.impl.usr.KP_81! 8 (ite top.impl.usr.KP_91! 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01! 0 (ite top.impl.usr.KP_11! 1 (ite top.impl.usr.KP_21! 2 (ite top.impl.usr.KP_31! 3 (ite top.impl.usr.KP_41! 4 (ite top.impl.usr.KP_51! 5 (ite top.impl.usr.KP_61! 6 (ite top.impl.usr.KP_71! 7 (ite top.impl.usr.KP_81! 8 (ite top.impl.usr.KP_91! 9 10)))))))))) 0)) (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! 0 (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! 0 (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.STEPS_TO_COOK! (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!)) 0 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! 60)) 1) top.impl.usr.STEPS_TO_COOK))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK! 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED!) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK! X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 (and top.usr.KP_CLEAR! (not top.usr.KP_CLEAR)))) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup___! true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (div (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining! 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining! 1) 60) 60)) 10))) (and (= top.impl.usr.MIDDLE_DIGIT! X33) (= top.usr.OK! (or (or (not (and X6 (not top.usr.KP_CLEAR!))) (or (or (or (or (or (or (or (or (or (and top.usr.KP_1! (not top.usr.KP_1)) (and top.usr.KP_2! (not top.usr.KP_2))) (and top.usr.KP_3! (not top.usr.KP_3))) (and top.usr.KP_4! (not top.usr.KP_4))) (and top.usr.KP_5! (not top.usr.KP_5))) (and top.usr.KP_6! (not top.usr.KP_6))) (and top.usr.KP_7! (not top.usr.KP_7))) (and top.usr.KP_8! (not top.usr.KP_8))) (and top.usr.KP_9! (not top.usr.KP_9))) (and top.usr.KP_0! (not top.usr.KP_0)))) (= top.impl.usr.MIDDLE_DIGIT! top.impl.usr.MIDDLE_DIGIT))) (let ((X34 top.impl.usr.chart_microwave_mode_logic_mode)) (let ((X35 (ite X12 (ite (not (= X9 2)) 2 X34) X34))) (let ((X36 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X35) X35) X34))) (let ((X37 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X38 (ite X18 (ite (not (= X19 4)) 1 X36) X36))) (let ((X39 (ite X21 (ite (not (= X22 2)) 2 X38) X38))) (let ((X40 (ite X27 (ite (not (= X28 4)) 1 X39) X39))) (let ((X41 (ite X32 (ite (not (= X37 2)) 2 X40) X40))) (let ((X42 (ite X32 (ite (not (= X37 2)) 2 X37) X37))) (let ((X43 (and (= X42 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X44 (ite X43 (ite (= X42 2) 1 X42) X42))) (and (= top.impl.usr.chart_microwave_mode_logic_mode! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! (ite (not (= X2 4)) 1 X34) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X43 (ite (not (= X44 3)) 3 X41) X41) X36)) X34)) (= top.impl.usr.microwave_microwave_mode_logic_mode! top.impl.usr.chart_microwave_mode_logic_mode!) (let ((X45 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! X45 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X43 (ite (not (= X44 3)) 3 X44) X44) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) (not top.res.init_flag!)))))))))))))))))))))))))))))))))))))))))))))))))))) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.MIDDLE_DIGIT Int) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/microwave29.sl b/benchmarks/LIA/Lustre/microwave29.sl index bd9b946..b8d1e93 100644 --- a/benchmarks/LIA/Lustre/microwave29.sl +++ b/benchmarks/LIA/Lustre/microwave29.sl @@ -1,2621 +1,25 @@ (set-logic LIA) -(define-fun - __node_init_top_0 ( - (top.usr.KP_START_a_0 Bool) - (top.usr.KP_CLEAR_a_0 Bool) - (top.usr.KP_0_a_0 Bool) - (top.usr.KP_1_a_0 Bool) - (top.usr.KP_2_a_0 Bool) - (top.usr.KP_3_a_0 Bool) - (top.usr.KP_4_a_0 Bool) - (top.usr.KP_5_a_0 Bool) - (top.usr.KP_6_a_0 Bool) - (top.usr.KP_7_a_0 Bool) - (top.usr.KP_8_a_0 Bool) - (top.usr.KP_9_a_0 Bool) - (top.usr.DOOR_CLOSED_a_0 Bool) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.STEPS_TO_COOK_a_0 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) - (top.impl.usr.KP_01_a_0 Bool) - (top.impl.usr.KP_11_a_0 Bool) - (top.impl.usr.KP_21_a_0 Bool) - (top.impl.usr.KP_31_a_0 Bool) - (top.impl.usr.KP_41_a_0 Bool) - (top.impl.usr.KP_51_a_0 Bool) - (top.impl.usr.KP_61_a_0 Bool) - (top.impl.usr.KP_71_a_0 Bool) - (top.impl.usr.KP_81_a_0 Bool) - (top.impl.usr.KP_91_a_0 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int) - ) Bool - - (let - ((X1 Int 0)) - (let - ((X2 Int 0)) - (and - (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 true) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool top.usr.KP_START_a_0)) - (let - ((X5 Int (ite (not X4) 0 1))) - (and - (= top.impl.usr.KP_91_a_0 top.usr.KP_9_a_0) - (= top.impl.usr.KP_81_a_0 top.usr.KP_8_a_0) - (= top.impl.usr.KP_71_a_0 top.usr.KP_7_a_0) - (= top.impl.usr.KP_61_a_0 top.usr.KP_6_a_0) - (= top.impl.usr.KP_51_a_0 top.usr.KP_5_a_0) - (= top.impl.usr.KP_41_a_0 top.usr.KP_4_a_0) - (= top.impl.usr.KP_31_a_0 top.usr.KP_3_a_0) - (= top.impl.usr.KP_21_a_0 top.usr.KP_2_a_0) - (= top.impl.usr.KP_11_a_0 top.usr.KP_1_a_0) - (= top.impl.usr.KP_01_a_0 top.usr.KP_0_a_0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - (ite - top.usr.KP_CLEAR_a_0 - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01_a_0 - 0 - (ite - top.impl.usr.KP_11_a_0 - 1 - (ite - top.impl.usr.KP_21_a_0 - 2 - (ite - top.impl.usr.KP_31_a_0 - 3 - (ite - top.impl.usr.KP_41_a_0 - 4 - (ite - top.impl.usr.KP_51_a_0 - 5 - (ite - top.impl.usr.KP_61_a_0 - 6 - (ite - top.impl.usr.KP_71_a_0 - 7 - (ite - top.impl.usr.KP_81_a_0 - 8 - (ite top.impl.usr.KP_91_a_0 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01_a_0 - 0 - (ite - top.impl.usr.KP_11_a_0 - 1 - (ite - top.impl.usr.KP_21_a_0 - 2 - (ite - top.impl.usr.KP_31_a_0 - 3 - (ite - top.impl.usr.KP_41_a_0 - 4 - (ite - top.impl.usr.KP_51_a_0 - 5 - (ite - top.impl.usr.KP_61_a_0 - 6 - (ite - top.impl.usr.KP_71_a_0 - 7 - (ite - top.impl.usr.KP_81_a_0 - 8 - (ite top.impl.usr.KP_91_a_0 9 10)))))))))) - 0))) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - 0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 0) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 - true) - (let - ((X6 Bool true)) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 - X6) - (= - top.impl.usr.STEPS_TO_COOK_a_0 - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0)) - 0 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 60)) - 1))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK_a_0 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED_a_0) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK_a_0 X1))) - (let - ((X18 Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 Bool top.usr.KP_CLEAR_a_0)) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (- - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - 1) - 60) - 60)) - (* - (div - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - 1) - 60) - 60)) - 10) - 10)))) - (let - ((X34 Int X33)) - (and - (= - top.usr.OK_a_0 - (or - (not (and X6 top.usr.KP_CLEAR_a_0)) - (= X34 0))) - (let - ((X35 Int 0)) - (let - ((X36 - Int (ite - X12 - (ite (not (= X9 2)) 2 X35) - X35))) - (let - ((X37 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X36) - X36) - X35))) - (let - ((X38 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X39 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X37) - X37))) - (let - ((X40 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X39) - X39))) - (let - ((X41 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X41) - X41))) - (let - ((X43 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X38) - X38))) - (let - ((X44 - Bool (and - (= X43 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not - (= X11 0)) - true - false))) - (not - (or X32 X31)))))) - (let - ((X45 - Int (ite - X44 - (ite - (= X43 2) - 1 - X43) - X43))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - (ite - (not (= X2 4)) - 1 - X35) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X42) - X42) - X37)) - X35)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode_a_0 - top.impl.usr.chart_microwave_mode_logic_mode_a_0) - (let - ((X46 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - X46 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X45) - X45) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - top.res.init_flag_a_0))))))))))))))))))))))))))))))))))))))))))))))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.KP_START_a_1 Bool) - (top.usr.KP_CLEAR_a_1 Bool) - (top.usr.KP_0_a_1 Bool) - (top.usr.KP_1_a_1 Bool) - (top.usr.KP_2_a_1 Bool) - (top.usr.KP_3_a_1 Bool) - (top.usr.KP_4_a_1 Bool) - (top.usr.KP_5_a_1 Bool) - (top.usr.KP_6_a_1 Bool) - (top.usr.KP_7_a_1 Bool) - (top.usr.KP_8_a_1 Bool) - (top.usr.KP_9_a_1 Bool) - (top.usr.DOOR_CLOSED_a_1 Bool) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.STEPS_TO_COOK_a_1 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 Bool) - (top.impl.usr.KP_01_a_1 Bool) - (top.impl.usr.KP_11_a_1 Bool) - (top.impl.usr.KP_21_a_1 Bool) - (top.impl.usr.KP_31_a_1 Bool) - (top.impl.usr.KP_41_a_1 Bool) - (top.impl.usr.KP_51_a_1 Bool) - (top.impl.usr.KP_61_a_1 Bool) - (top.impl.usr.KP_71_a_1 Bool) - (top.impl.usr.KP_81_a_1 Bool) - (top.impl.usr.KP_91_a_1 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_1 Int) - (top.usr.KP_START_a_0 Bool) - (top.usr.KP_CLEAR_a_0 Bool) - (top.usr.KP_0_a_0 Bool) - (top.usr.KP_1_a_0 Bool) - (top.usr.KP_2_a_0 Bool) - (top.usr.KP_3_a_0 Bool) - (top.usr.KP_4_a_0 Bool) - (top.usr.KP_5_a_0 Bool) - (top.usr.KP_6_a_0 Bool) - (top.usr.KP_7_a_0 Bool) - (top.usr.KP_8_a_0 Bool) - (top.usr.KP_9_a_0 Bool) - (top.usr.DOOR_CLOSED_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.STEPS_TO_COOK_a_0 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) - (top.impl.usr.KP_01_a_0 Bool) - (top.impl.usr.KP_11_a_0 Bool) - (top.impl.usr.KP_21_a_0 Bool) - (top.impl.usr.KP_31_a_0 Bool) - (top.impl.usr.KP_41_a_0 Bool) - (top.impl.usr.KP_51_a_0 Bool) - (top.impl.usr.KP_61_a_0 Bool) - (top.impl.usr.KP_71_a_0 Bool) - (top.impl.usr.KP_81_a_0 Bool) - (top.impl.usr.KP_91_a_0 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int) - ) Bool - - (let - ((X1 Int top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0)) - (let - ((X2 - Int top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0)) - (and - (= - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - false - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0)) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool (and top.usr.KP_START_a_1 (not top.usr.KP_START_a_0)))) - (let - ((X5 Int (ite (not X4) 0 1))) - (let - ((X6 - Bool (ite - (= 1 top.impl.usr.microwave_microwave_mode_logic_mode_a_0) - true - false))) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - X6) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (ite - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1) - true - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 - false - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0))) - (= top.impl.usr.KP_91_a_1 top.usr.KP_9_a_1) - (= top.impl.usr.KP_81_a_1 top.usr.KP_8_a_1) - (= top.impl.usr.KP_71_a_1 top.usr.KP_7_a_1) - (= top.impl.usr.KP_61_a_1 top.usr.KP_6_a_1) - (= top.impl.usr.KP_51_a_1 top.usr.KP_5_a_1) - (= top.impl.usr.KP_41_a_1 top.usr.KP_4_a_1) - (= top.impl.usr.KP_31_a_1 top.usr.KP_3_a_1) - (= top.impl.usr.KP_21_a_1 top.usr.KP_2_a_1) - (= top.impl.usr.KP_11_a_1 top.usr.KP_1_a_1) - (= top.impl.usr.KP_01_a_1 top.usr.KP_0_a_1) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01_a_1 - 0 - (ite - top.impl.usr.KP_11_a_1 - 1 - (ite - top.impl.usr.KP_21_a_1 - 2 - (ite - top.impl.usr.KP_31_a_1 - 3 - (ite - top.impl.usr.KP_41_a_1 - 4 - (ite - top.impl.usr.KP_51_a_1 - 5 - (ite - top.impl.usr.KP_61_a_1 - 6 - (ite - top.impl.usr.KP_71_a_1 - 7 - (ite - top.impl.usr.KP_81_a_1 - 8 - (ite top.impl.usr.KP_91_a_1 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01_a_1 - 0 - (ite - top.impl.usr.KP_11_a_1 - 1 - (ite - top.impl.usr.KP_21_a_1 - 2 - (ite - top.impl.usr.KP_31_a_1 - 3 - (ite - top.impl.usr.KP_41_a_1 - 4 - (ite - top.impl.usr.KP_51_a_1 - 5 - (ite - top.impl.usr.KP_61_a_1 - 6 - (ite - top.impl.usr.KP_71_a_1 - 7 - (ite - top.impl.usr.KP_81_a_1 - 8 - (ite top.impl.usr.KP_91_a_1 9 10)))))))))) - 0)) - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and - top.impl.usr.KP_71_a_1 - (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and - top.impl.usr.KP_81_a_1 - (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - 0 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and - top.impl.usr.KP_71_a_1 - (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and - top.impl.usr.KP_81_a_1 - (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - 0 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and - top.impl.usr.KP_71_a_1 - (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and - top.impl.usr.KP_81_a_1 - (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.STEPS_TO_COOK_a_1 - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1)) - 0 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 - 60)) - 1) - top.impl.usr.STEPS_TO_COOK_a_0))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK_a_1 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED_a_1) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK_a_1 X1))) - (let - ((X18 Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 - Bool (and - top.usr.KP_CLEAR_a_1 - (not top.usr.KP_CLEAR_a_0)))) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (- - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - 1) - 60) - 60)) - (* - (div - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - 1) - 60) - 60)) - 10) - 10)))) - (let - ((X34 Int X33)) - (and - (= - top.usr.OK_a_1 - (or - (not (and X6 top.usr.KP_CLEAR_a_1)) - (= X34 0))) - (let - ((X35 - Int top.impl.usr.chart_microwave_mode_logic_mode_a_0)) - (let - ((X36 - Int (ite - X12 - (ite (not (= X9 2)) 2 X35) - X35))) - (let - ((X37 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X36) - X36) - X35))) - (let - ((X38 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X39 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X37) - X37))) - (let - ((X40 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X39) - X39))) - (let - ((X41 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X41) - X41))) - (let - ((X43 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X38) - X38))) - (let - ((X44 - Bool (and - (= X43 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not (= X11 0)) - true - false))) - (not (or X32 X31)))))) - (let - ((X45 - Int (ite - X44 - (ite - (= X43 2) - 1 - X43) - X43))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - (ite - (not (= X2 4)) - 1 - X35) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X42) - X42) - X37)) - X35)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode_a_1 - top.impl.usr.chart_microwave_mode_logic_mode_a_1) - (let - ((X46 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - X46 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X45) - X45) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - (not - top.res.init_flag_a_1))))))))))))))))))))))))))))))))))))))))))))))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) -)) - -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.KP_START Bool) -(declare-primed-var top.usr.KP_CLEAR Bool) -(declare-primed-var top.usr.KP_0 Bool) -(declare-primed-var top.usr.KP_1 Bool) -(declare-primed-var top.usr.KP_2 Bool) -(declare-primed-var top.usr.KP_3 Bool) -(declare-primed-var top.usr.KP_4 Bool) -(declare-primed-var top.usr.KP_5 Bool) -(declare-primed-var top.usr.KP_6 Bool) -(declare-primed-var top.usr.KP_7 Bool) -(declare-primed-var top.usr.KP_8 Bool) -(declare-primed-var top.usr.KP_9 Bool) -(declare-primed-var top.usr.DOOR_CLOSED Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.STEPS_TO_COOK Int) -(declare-primed-var top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) -(declare-primed-var top.impl.usr.KP_01 Bool) -(declare-primed-var top.impl.usr.KP_11 Bool) -(declare-primed-var top.impl.usr.KP_21 Bool) -(declare-primed-var top.impl.usr.KP_31 Bool) -(declare-primed-var top.impl.usr.KP_41 Bool) -(declare-primed-var top.impl.usr.KP_51 Bool) -(declare-primed-var top.impl.usr.KP_61 Bool) -(declare-primed-var top.impl.usr.KP_71 Bool) -(declare-primed-var top.impl.usr.KP_81 Bool) -(declare-primed-var top.impl.usr.KP_91 Bool) -(declare-primed-var top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_mode Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) -(declare-primed-var top.impl.usr.microwave_microwave_mode_logic_mode Int) - -(define-fun - init ( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - ) Bool - - (let - ((X1 Int 0)) - (let - ((X2 Int 0)) - (and - (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep true) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool top.usr.KP_START)) - (let - ((X5 Int (ite (not X4) 0 1))) - (and - (= top.impl.usr.KP_91 top.usr.KP_9) - (= top.impl.usr.KP_81 top.usr.KP_8) - (= top.impl.usr.KP_71 top.usr.KP_7) - (= top.impl.usr.KP_61 top.usr.KP_6) - (= top.impl.usr.KP_51 top.usr.KP_5) - (= top.impl.usr.KP_41 top.usr.KP_4) - (= top.impl.usr.KP_31 top.usr.KP_3) - (= top.impl.usr.KP_21 top.usr.KP_2) - (= top.impl.usr.KP_11 top.usr.KP_1) - (= top.impl.usr.KP_01 top.usr.KP_0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - (ite - top.usr.KP_CLEAR - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01 - 0 - (ite - top.impl.usr.KP_11 - 1 - (ite - top.impl.usr.KP_21 - 2 - (ite - top.impl.usr.KP_31 - 3 - (ite - top.impl.usr.KP_41 - 4 - (ite - top.impl.usr.KP_51 - 5 - (ite - top.impl.usr.KP_61 - 6 - (ite - top.impl.usr.KP_71 - 7 - (ite - top.impl.usr.KP_81 - 8 - (ite top.impl.usr.KP_91 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01 - 0 - (ite - top.impl.usr.KP_11 - 1 - (ite - top.impl.usr.KP_21 - 2 - (ite - top.impl.usr.KP_31 - 3 - (ite - top.impl.usr.KP_41 - 4 - (ite - top.impl.usr.KP_51 - 5 - (ite - top.impl.usr.KP_61 - 6 - (ite - top.impl.usr.KP_71 - 7 - (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) - 0))) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - 0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY - 0) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step - true) - (let - ((X6 Bool true)) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock - X6) - (= - top.impl.usr.STEPS_TO_COOK - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock)) - 0 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY - 60)) - 1))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK X1))) - (let - ((X18 Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 Bool top.usr.KP_CLEAR)) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup___ - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (- - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining - 1) - 60) - 60)) - (* - (div - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining - 1) - 60) - 60)) - 10) - 10)))) - (let - ((X34 Int X33)) - (and - (= - top.usr.OK - (or - (not (and X6 top.usr.KP_CLEAR)) - (= X34 0))) - (let - ((X35 Int 0)) - (let - ((X36 - Int (ite - X12 - (ite (not (= X9 2)) 2 X35) - X35))) - (let - ((X37 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X36) - X36) - X35))) - (let - ((X38 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X39 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X37) - X37))) - (let - ((X40 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X39) - X39))) - (let - ((X41 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X41) - X41))) - (let - ((X43 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X38) - X38))) - (let - ((X44 - Bool (and - (= X43 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not - (= X11 0)) - true - false))) - (not - (or X32 X31)))))) - (let - ((X45 - Int (ite - X44 - (ite - (= X43 2) - 1 - X43) - X43))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - (ite - (not (= X2 4)) - 1 - X35) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X42) - X42) - X37)) - X35)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode - top.impl.usr.chart_microwave_mode_logic_mode) - (let - ((X46 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - X46 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X45) - X45) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - top.res.init_flag))))))))))))))))))))))))))))))))))))))))))))))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - - ;; Next state. - (top.usr.KP_START! Bool) - (top.usr.KP_CLEAR! Bool) - (top.usr.KP_0! Bool) - (top.usr.KP_1! Bool) - (top.usr.KP_2! Bool) - (top.usr.KP_3! Bool) - (top.usr.KP_4! Bool) - (top.usr.KP_5! Bool) - (top.usr.KP_6! Bool) - (top.usr.KP_7! Bool) - (top.usr.KP_8! Bool) - (top.usr.KP_9! Bool) - (top.usr.DOOR_CLOSED! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.STEPS_TO_COOK! Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! Bool) - (top.impl.usr.KP_01! Bool) - (top.impl.usr.KP_11! Bool) - (top.impl.usr.KP_21! Bool) - (top.impl.usr.KP_31! Bool) - (top.impl.usr.KP_41! Bool) - (top.impl.usr.KP_51! Bool) - (top.impl.usr.KP_61! Bool) - (top.impl.usr.KP_71! Bool) - (top.impl.usr.KP_81! Bool) - (top.impl.usr.KP_91! Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___! Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root! Int) - (top.impl.usr.chart_microwave_mode_logic_mode! Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining! Int) - (top.impl.usr.microwave_microwave_mode_logic_mode! Int) - - ) Bool - - (and - (let - ((X1 Int top.impl.usr.chart_microwave_mode_logic_steps_remaining)) - (let - ((X2 - Int top.impl.usr.chart_microwave_mode_logic_final_state_states___root)) - (and - (= - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - false - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep)) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool (and top.usr.KP_START! (not top.usr.KP_START)))) - (let - ((X5 Int (ite (not X4) 0 1))) - (let - ((X6 - Bool (ite - (= 1 top.impl.usr.microwave_microwave_mode_logic_mode) - true - false))) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - X6) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (ite - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!) - true - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock - false - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step))) - (= top.impl.usr.KP_91! top.usr.KP_9!) - (= top.impl.usr.KP_81! top.usr.KP_8!) - (= top.impl.usr.KP_71! top.usr.KP_7!) - (= top.impl.usr.KP_61! top.usr.KP_6!) - (= top.impl.usr.KP_51! top.usr.KP_5!) - (= top.impl.usr.KP_41! top.usr.KP_4!) - (= top.impl.usr.KP_31! top.usr.KP_3!) - (= top.impl.usr.KP_21! top.usr.KP_2!) - (= top.impl.usr.KP_11! top.usr.KP_1!) - (= top.impl.usr.KP_01! top.usr.KP_0!) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01! - 0 - (ite - top.impl.usr.KP_11! - 1 - (ite - top.impl.usr.KP_21! - 2 - (ite - top.impl.usr.KP_31! - 3 - (ite - top.impl.usr.KP_41! - 4 - (ite - top.impl.usr.KP_51! - 5 - (ite - top.impl.usr.KP_61! - 6 - (ite - top.impl.usr.KP_71! - 7 - (ite - top.impl.usr.KP_81! - 8 - (ite top.impl.usr.KP_91! 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01! - 0 - (ite - top.impl.usr.KP_11! - 1 - (ite - top.impl.usr.KP_21! - 2 - (ite - top.impl.usr.KP_31! - 3 - (ite - top.impl.usr.KP_41! - 4 - (ite - top.impl.usr.KP_51! - 5 - (ite - top.impl.usr.KP_61! - 6 - (ite - top.impl.usr.KP_71! - 7 - (ite - top.impl.usr.KP_81! - 8 - (ite top.impl.usr.KP_91! 9 10)))))))))) - 0)) - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and - top.impl.usr.KP_91! - (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - 0 - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and - top.impl.usr.KP_91! - (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - 0 - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and - top.impl.usr.KP_91! - (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.STEPS_TO_COOK! - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!)) - 0 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! - 60)) - 1) - top.impl.usr.STEPS_TO_COOK))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK! 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED!) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK! X1))) - (let - ((X18 Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 - Bool (and - top.usr.KP_CLEAR! - (not top.usr.KP_CLEAR)))) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup___! - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (- - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - 1) - 60) - 60)) - (* - (div - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - 1) - 60) - 60)) - 10) - 10)))) - (let - ((X34 Int X33)) - (and - (= - top.usr.OK! - (or - (not (and X6 top.usr.KP_CLEAR!)) - (= X34 0))) - (let - ((X35 - Int top.impl.usr.chart_microwave_mode_logic_mode)) - (let - ((X36 - Int (ite - X12 - (ite (not (= X9 2)) 2 X35) - X35))) - (let - ((X37 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X36) - X36) - X35))) - (let - ((X38 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X39 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X37) - X37))) - (let - ((X40 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X39) - X39))) - (let - ((X41 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X41) - X41))) - (let - ((X43 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X38) - X38))) - (let - ((X44 - Bool (and - (= X43 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not - (= X11 0)) - true - false))) - (not - (or X32 X31)))))) - (let - ((X45 - Int (ite - X44 - (ite - (= X43 2) - 1 - X43) - X43))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - (ite - (not (= X2 4)) - 1 - X35) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X42) - X42) - X37)) - X35)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode! - top.impl.usr.chart_microwave_mode_logic_mode!) - (let - ((X46 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - X46 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X45) - X45) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - (not - top.res.init_flag!))))))))))))))))))))))))))))))))))))))))))))))))))))) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - ) Bool - - top.usr.OK -) +(define-fun __node_init_top_0 ((top.usr.KP_START_a_0 Bool) (top.usr.KP_CLEAR_a_0 Bool) (top.usr.KP_0_a_0 Bool) (top.usr.KP_1_a_0 Bool) (top.usr.KP_2_a_0 Bool) (top.usr.KP_3_a_0 Bool) (top.usr.KP_4_a_0 Bool) (top.usr.KP_5_a_0 Bool) (top.usr.KP_6_a_0 Bool) (top.usr.KP_7_a_0 Bool) (top.usr.KP_8_a_0 Bool) (top.usr.KP_9_a_0 Bool) (top.usr.DOOR_CLOSED_a_0 Bool) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.STEPS_TO_COOK_a_0 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) (top.impl.usr.KP_01_a_0 Bool) (top.impl.usr.KP_11_a_0 Bool) (top.impl.usr.KP_21_a_0 Bool) (top.impl.usr.KP_31_a_0 Bool) (top.impl.usr.KP_41_a_0 Bool) (top.impl.usr.KP_51_a_0 Bool) (top.impl.usr.KP_61_a_0 Bool) (top.impl.usr.KP_71_a_0 Bool) (top.impl.usr.KP_81_a_0 Bool) (top.impl.usr.KP_91_a_0 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int)) Bool + (let ((X1 0)) (let ((X2 0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 true) (let ((X3 (= X2 4))) (let ((X4 top.usr.KP_START_a_0)) (let ((X5 (ite (not X4) 0 1))) (and (= top.impl.usr.KP_91_a_0 top.usr.KP_9_a_0) (= top.impl.usr.KP_81_a_0 top.usr.KP_8_a_0) (= top.impl.usr.KP_71_a_0 top.usr.KP_7_a_0) (= top.impl.usr.KP_61_a_0 top.usr.KP_6_a_0) (= top.impl.usr.KP_51_a_0 top.usr.KP_5_a_0) (= top.impl.usr.KP_41_a_0 top.usr.KP_4_a_0) (= top.impl.usr.KP_31_a_0 top.usr.KP_3_a_0) (= top.impl.usr.KP_21_a_0 top.usr.KP_2_a_0) (= top.impl.usr.KP_11_a_0 top.usr.KP_1_a_0) (= top.impl.usr.KP_01_a_0 top.usr.KP_0_a_0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 (ite top.usr.KP_CLEAR_a_0 0 (ite (ite (<= (ite top.impl.usr.KP_01_a_0 0 (ite top.impl.usr.KP_11_a_0 1 (ite top.impl.usr.KP_21_a_0 2 (ite top.impl.usr.KP_31_a_0 3 (ite top.impl.usr.KP_41_a_0 4 (ite top.impl.usr.KP_51_a_0 5 (ite top.impl.usr.KP_61_a_0 6 (ite top.impl.usr.KP_71_a_0 7 (ite top.impl.usr.KP_81_a_0 8 (ite top.impl.usr.KP_91_a_0 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01_a_0 0 (ite top.impl.usr.KP_11_a_0 1 (ite top.impl.usr.KP_21_a_0 2 (ite top.impl.usr.KP_31_a_0 3 (ite top.impl.usr.KP_41_a_0 4 (ite top.impl.usr.KP_51_a_0 5 (ite top.impl.usr.KP_61_a_0 6 (ite top.impl.usr.KP_71_a_0 7 (ite top.impl.usr.KP_81_a_0 8 (ite top.impl.usr.KP_91_a_0 9 10)))))))))) 0))) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 0) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 true) (let ((X6 true)) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 X6) (= top.impl.usr.STEPS_TO_COOK_a_0 (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0)) 0 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 60)) 1))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK_a_0 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED_a_0) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK_a_0 X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 top.usr.KP_CLEAR_a_0)) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (- (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 1) 60) 60)) (* (div (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 1) 60) 60)) 10) 10)))) (let ((X34 X33)) (and (= top.usr.OK_a_0 (or (not (and X6 top.usr.KP_CLEAR_a_0)) (= X34 0))) (let ((X35 0)) (let ((X36 (ite X12 (ite (not (= X9 2)) 2 X35) X35))) (let ((X37 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X36) X36) X35))) (let ((X38 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X39 (ite X18 (ite (not (= X19 4)) 1 X37) X37))) (let ((X40 (ite X21 (ite (not (= X22 2)) 2 X39) X39))) (let ((X41 (ite X27 (ite (not (= X28 4)) 1 X40) X40))) (let ((X42 (ite X32 (ite (not (= X38 2)) 2 X41) X41))) (let ((X43 (ite X32 (ite (not (= X38 2)) 2 X38) X38))) (let ((X44 (and (= X43 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X45 (ite X44 (ite (= X43 2) 1 X43) X43))) (and (= top.impl.usr.chart_microwave_mode_logic_mode_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 (ite (not (= X2 4)) 1 X35) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X42) X42) X37)) X35)) (= top.impl.usr.microwave_microwave_mode_logic_mode_a_0 top.impl.usr.chart_microwave_mode_logic_mode_a_0) (let ((X46 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 X46 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X45) X45) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) top.res.init_flag_a_0)))))))))))))))))))))))))))))))))))))))))))))))))))))) +(define-fun __node_trans_top_0 ((top.usr.KP_START_a_1 Bool) (top.usr.KP_CLEAR_a_1 Bool) (top.usr.KP_0_a_1 Bool) (top.usr.KP_1_a_1 Bool) (top.usr.KP_2_a_1 Bool) (top.usr.KP_3_a_1 Bool) (top.usr.KP_4_a_1 Bool) (top.usr.KP_5_a_1 Bool) (top.usr.KP_6_a_1 Bool) (top.usr.KP_7_a_1 Bool) (top.usr.KP_8_a_1 Bool) (top.usr.KP_9_a_1 Bool) (top.usr.DOOR_CLOSED_a_1 Bool) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.STEPS_TO_COOK_a_1 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 Bool) (top.impl.usr.KP_01_a_1 Bool) (top.impl.usr.KP_11_a_1 Bool) (top.impl.usr.KP_21_a_1 Bool) (top.impl.usr.KP_31_a_1 Bool) (top.impl.usr.KP_41_a_1 Bool) (top.impl.usr.KP_51_a_1 Bool) (top.impl.usr.KP_61_a_1 Bool) (top.impl.usr.KP_71_a_1 Bool) (top.impl.usr.KP_81_a_1 Bool) (top.impl.usr.KP_91_a_1 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_1 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_1 Int) (top.usr.KP_START_a_0 Bool) (top.usr.KP_CLEAR_a_0 Bool) (top.usr.KP_0_a_0 Bool) (top.usr.KP_1_a_0 Bool) (top.usr.KP_2_a_0 Bool) (top.usr.KP_3_a_0 Bool) (top.usr.KP_4_a_0 Bool) (top.usr.KP_5_a_0 Bool) (top.usr.KP_6_a_0 Bool) (top.usr.KP_7_a_0 Bool) (top.usr.KP_8_a_0 Bool) (top.usr.KP_9_a_0 Bool) (top.usr.DOOR_CLOSED_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.STEPS_TO_COOK_a_0 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) (top.impl.usr.KP_01_a_0 Bool) (top.impl.usr.KP_11_a_0 Bool) (top.impl.usr.KP_21_a_0 Bool) (top.impl.usr.KP_31_a_0 Bool) (top.impl.usr.KP_41_a_0 Bool) (top.impl.usr.KP_51_a_0 Bool) (top.impl.usr.KP_61_a_0 Bool) (top.impl.usr.KP_71_a_0 Bool) (top.impl.usr.KP_81_a_0 Bool) (top.impl.usr.KP_91_a_0 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int)) Bool + (let ((X1 top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0)) (let ((X2 top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 false top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0)) (let ((X3 (= X2 4))) (let ((X4 (and top.usr.KP_START_a_1 (not top.usr.KP_START_a_0)))) (let ((X5 (ite (not X4) 0 1))) (let ((X6 (ite (= 1 top.impl.usr.microwave_microwave_mode_logic_mode_a_0) true false))) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 X6) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (ite (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1) true (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 false top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0))) (= top.impl.usr.KP_91_a_1 top.usr.KP_9_a_1) (= top.impl.usr.KP_81_a_1 top.usr.KP_8_a_1) (= top.impl.usr.KP_71_a_1 top.usr.KP_7_a_1) (= top.impl.usr.KP_61_a_1 top.usr.KP_6_a_1) (= top.impl.usr.KP_51_a_1 top.usr.KP_5_a_1) (= top.impl.usr.KP_41_a_1 top.usr.KP_4_a_1) (= top.impl.usr.KP_31_a_1 top.usr.KP_3_a_1) (= top.impl.usr.KP_21_a_1 top.usr.KP_2_a_1) (= top.impl.usr.KP_11_a_1 top.usr.KP_1_a_1) (= top.impl.usr.KP_01_a_1 top.usr.KP_0_a_1) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite top.impl.usr.KP_01_a_1 0 (ite top.impl.usr.KP_11_a_1 1 (ite top.impl.usr.KP_21_a_1 2 (ite top.impl.usr.KP_31_a_1 3 (ite top.impl.usr.KP_41_a_1 4 (ite top.impl.usr.KP_51_a_1 5 (ite top.impl.usr.KP_61_a_1 6 (ite top.impl.usr.KP_71_a_1 7 (ite top.impl.usr.KP_81_a_1 8 (ite top.impl.usr.KP_91_a_1 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01_a_1 0 (ite top.impl.usr.KP_11_a_1 1 (ite top.impl.usr.KP_21_a_1 2 (ite top.impl.usr.KP_31_a_1 3 (ite top.impl.usr.KP_41_a_1 4 (ite top.impl.usr.KP_51_a_1 5 (ite top.impl.usr.KP_61_a_1 6 (ite top.impl.usr.KP_71_a_1 7 (ite top.impl.usr.KP_81_a_1 8 (ite top.impl.usr.KP_91_a_1 9 10)))))))))) 0)) (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 0 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 0 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.STEPS_TO_COOK_a_1 (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1)) 0 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 60)) 1) top.impl.usr.STEPS_TO_COOK_a_0))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK_a_1 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED_a_1) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK_a_1 X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 (and top.usr.KP_CLEAR_a_1 (not top.usr.KP_CLEAR_a_0)))) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (- (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 1) 60) 60)) (* (div (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 1) 60) 60)) 10) 10)))) (let ((X34 X33)) (and (= top.usr.OK_a_1 (or (not (and X6 top.usr.KP_CLEAR_a_1)) (= X34 0))) (let ((X35 top.impl.usr.chart_microwave_mode_logic_mode_a_0)) (let ((X36 (ite X12 (ite (not (= X9 2)) 2 X35) X35))) (let ((X37 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X36) X36) X35))) (let ((X38 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X39 (ite X18 (ite (not (= X19 4)) 1 X37) X37))) (let ((X40 (ite X21 (ite (not (= X22 2)) 2 X39) X39))) (let ((X41 (ite X27 (ite (not (= X28 4)) 1 X40) X40))) (let ((X42 (ite X32 (ite (not (= X38 2)) 2 X41) X41))) (let ((X43 (ite X32 (ite (not (= X38 2)) 2 X38) X38))) (let ((X44 (and (= X43 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X45 (ite X44 (ite (= X43 2) 1 X43) X43))) (and (= top.impl.usr.chart_microwave_mode_logic_mode_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 (ite (not (= X2 4)) 1 X35) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X42) X42) X37)) X35)) (= top.impl.usr.microwave_microwave_mode_logic_mode_a_1 top.impl.usr.chart_microwave_mode_logic_mode_a_1) (let ((X46 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 X46 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X45) X45) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) (not top.res.init_flag_a_1)))))))))))))))))))))))))))))))))))))))))))))))))))))) +(synth-inv str_invariant ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int))) + +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int)) Bool + (let ((X1 0)) (let ((X2 0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep true) (let ((X3 (= X2 4))) (let ((X4 top.usr.KP_START)) (let ((X5 (ite (not X4) 0 1))) (and (= top.impl.usr.KP_91 top.usr.KP_9) (= top.impl.usr.KP_81 top.usr.KP_8) (= top.impl.usr.KP_71 top.usr.KP_7) (= top.impl.usr.KP_61 top.usr.KP_6) (= top.impl.usr.KP_51 top.usr.KP_5) (= top.impl.usr.KP_41 top.usr.KP_4) (= top.impl.usr.KP_31 top.usr.KP_3) (= top.impl.usr.KP_21 top.usr.KP_2) (= top.impl.usr.KP_11 top.usr.KP_1) (= top.impl.usr.KP_01 top.usr.KP_0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY (ite top.usr.KP_CLEAR 0 (ite (ite (<= (ite top.impl.usr.KP_01 0 (ite top.impl.usr.KP_11 1 (ite top.impl.usr.KP_21 2 (ite top.impl.usr.KP_31 3 (ite top.impl.usr.KP_41 4 (ite top.impl.usr.KP_51 5 (ite top.impl.usr.KP_61 6 (ite top.impl.usr.KP_71 7 (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01 0 (ite top.impl.usr.KP_11 1 (ite top.impl.usr.KP_21 2 (ite top.impl.usr.KP_31 3 (ite top.impl.usr.KP_41 4 (ite top.impl.usr.KP_51 5 (ite top.impl.usr.KP_61 6 (ite top.impl.usr.KP_71 7 (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) 0))) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY 0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY 0) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step true) (let ((X6 true)) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock X6) (= top.impl.usr.STEPS_TO_COOK (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock)) 0 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY 60)) 1))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 top.usr.KP_CLEAR)) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup___ true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (- (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining 1) 60) 60)) (* (div (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining 1) 60) 60)) 10) 10)))) (let ((X34 X33)) (and (= top.usr.OK (or (not (and X6 top.usr.KP_CLEAR)) (= X34 0))) (let ((X35 0)) (let ((X36 (ite X12 (ite (not (= X9 2)) 2 X35) X35))) (let ((X37 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X36) X36) X35))) (let ((X38 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X39 (ite X18 (ite (not (= X19 4)) 1 X37) X37))) (let ((X40 (ite X21 (ite (not (= X22 2)) 2 X39) X39))) (let ((X41 (ite X27 (ite (not (= X28 4)) 1 X40) X40))) (let ((X42 (ite X32 (ite (not (= X38 2)) 2 X41) X41))) (let ((X43 (ite X32 (ite (not (= X38 2)) 2 X38) X38))) (let ((X44 (and (= X43 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X45 (ite X44 (ite (= X43 2) 1 X43) X43))) (and (= top.impl.usr.chart_microwave_mode_logic_mode (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep (ite (not (= X2 4)) 1 X35) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X42) X42) X37)) X35)) (= top.impl.usr.microwave_microwave_mode_logic_mode top.impl.usr.chart_microwave_mode_logic_mode) (let ((X46 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep X46 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X45) X45) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) top.res.init_flag)))))))))))))))))))))))))))))))))))))))))))))))))))))) +(define-fun trans ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int) (top.usr.KP_START! Bool) (top.usr.KP_CLEAR! Bool) (top.usr.KP_0! Bool) (top.usr.KP_1! Bool) (top.usr.KP_2! Bool) (top.usr.KP_3! Bool) (top.usr.KP_4! Bool) (top.usr.KP_5! Bool) (top.usr.KP_6! Bool) (top.usr.KP_7! Bool) (top.usr.KP_8! Bool) (top.usr.KP_9! Bool) (top.usr.DOOR_CLOSED! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.STEPS_TO_COOK! Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! Bool) (top.impl.usr.KP_01! Bool) (top.impl.usr.KP_11! Bool) (top.impl.usr.KP_21! Bool) (top.impl.usr.KP_31! Bool) (top.impl.usr.KP_41! Bool) (top.impl.usr.KP_51! Bool) (top.impl.usr.KP_61! Bool) (top.impl.usr.KP_71! Bool) (top.impl.usr.KP_81! Bool) (top.impl.usr.KP_91! Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___! Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root! Int) (top.impl.usr.chart_microwave_mode_logic_mode! Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining! Int) (top.impl.usr.microwave_microwave_mode_logic_mode! Int)) Bool + (and (let ((X1 top.impl.usr.chart_microwave_mode_logic_steps_remaining)) (let ((X2 top.impl.usr.chart_microwave_mode_logic_final_state_states___root)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ false top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep)) (let ((X3 (= X2 4))) (let ((X4 (and top.usr.KP_START! (not top.usr.KP_START)))) (let ((X5 (ite (not X4) 0 1))) (let ((X6 (ite (= 1 top.impl.usr.microwave_microwave_mode_logic_mode) true false))) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! X6) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (ite (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!) true (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock false top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step))) (= top.impl.usr.KP_91! top.usr.KP_9!) (= top.impl.usr.KP_81! top.usr.KP_8!) (= top.impl.usr.KP_71! top.usr.KP_7!) (= top.impl.usr.KP_61! top.usr.KP_6!) (= top.impl.usr.KP_51! top.usr.KP_5!) (= top.impl.usr.KP_41! top.usr.KP_4!) (= top.impl.usr.KP_31! top.usr.KP_3!) (= top.impl.usr.KP_21! top.usr.KP_2!) (= top.impl.usr.KP_11! top.usr.KP_1!) (= top.impl.usr.KP_01! top.usr.KP_0!) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite top.impl.usr.KP_01! 0 (ite top.impl.usr.KP_11! 1 (ite top.impl.usr.KP_21! 2 (ite top.impl.usr.KP_31! 3 (ite top.impl.usr.KP_41! 4 (ite top.impl.usr.KP_51! 5 (ite top.impl.usr.KP_61! 6 (ite top.impl.usr.KP_71! 7 (ite top.impl.usr.KP_81! 8 (ite top.impl.usr.KP_91! 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01! 0 (ite top.impl.usr.KP_11! 1 (ite top.impl.usr.KP_21! 2 (ite top.impl.usr.KP_31! 3 (ite top.impl.usr.KP_41! 4 (ite top.impl.usr.KP_51! 5 (ite top.impl.usr.KP_61! 6 (ite top.impl.usr.KP_71! 7 (ite top.impl.usr.KP_81! 8 (ite top.impl.usr.KP_91! 9 10)))))))))) 0)) (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! 0 (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! 0 (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.STEPS_TO_COOK! (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!)) 0 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! 60)) 1) top.impl.usr.STEPS_TO_COOK))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK! 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED!) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK! X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 (and top.usr.KP_CLEAR! (not top.usr.KP_CLEAR)))) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup___! true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (- (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining! 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining! 1) 60) 60)) (* (div (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining! 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining! 1) 60) 60)) 10) 10)))) (let ((X34 X33)) (and (= top.usr.OK! (or (not (and X6 top.usr.KP_CLEAR!)) (= X34 0))) (let ((X35 top.impl.usr.chart_microwave_mode_logic_mode)) (let ((X36 (ite X12 (ite (not (= X9 2)) 2 X35) X35))) (let ((X37 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X36) X36) X35))) (let ((X38 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X39 (ite X18 (ite (not (= X19 4)) 1 X37) X37))) (let ((X40 (ite X21 (ite (not (= X22 2)) 2 X39) X39))) (let ((X41 (ite X27 (ite (not (= X28 4)) 1 X40) X40))) (let ((X42 (ite X32 (ite (not (= X38 2)) 2 X41) X41))) (let ((X43 (ite X32 (ite (not (= X38 2)) 2 X38) X38))) (let ((X44 (and (= X43 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X45 (ite X44 (ite (= X43 2) 1 X43) X43))) (and (= top.impl.usr.chart_microwave_mode_logic_mode! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! (ite (not (= X2 4)) 1 X35) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X42) X42) X37)) X35)) (= top.impl.usr.microwave_microwave_mode_logic_mode! top.impl.usr.chart_microwave_mode_logic_mode!) (let ((X46 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! X46 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X45) X45) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) (not top.res.init_flag!))))))))))))))))))))))))))))))))))))))))))))))))))))) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/microwave30.sl b/benchmarks/LIA/Lustre/microwave30.sl index 53d0abd..ac3ea16 100644 --- a/benchmarks/LIA/Lustre/microwave30.sl +++ b/benchmarks/LIA/Lustre/microwave30.sl @@ -1,2637 +1,25 @@ (set-logic LIA) -(define-fun - __node_init_top_0 ( - (top.usr.KP_START_a_0 Bool) - (top.usr.KP_CLEAR_a_0 Bool) - (top.usr.KP_0_a_0 Bool) - (top.usr.KP_1_a_0 Bool) - (top.usr.KP_2_a_0 Bool) - (top.usr.KP_3_a_0 Bool) - (top.usr.KP_4_a_0 Bool) - (top.usr.KP_5_a_0 Bool) - (top.usr.KP_6_a_0 Bool) - (top.usr.KP_7_a_0 Bool) - (top.usr.KP_8_a_0 Bool) - (top.usr.KP_9_a_0 Bool) - (top.usr.DOOR_CLOSED_a_0 Bool) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.STEPS_TO_COOK_a_0 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) - (top.impl.usr.KP_01_a_0 Bool) - (top.impl.usr.KP_11_a_0 Bool) - (top.impl.usr.KP_21_a_0 Bool) - (top.impl.usr.KP_31_a_0 Bool) - (top.impl.usr.KP_41_a_0 Bool) - (top.impl.usr.KP_51_a_0 Bool) - (top.impl.usr.KP_61_a_0 Bool) - (top.impl.usr.KP_71_a_0 Bool) - (top.impl.usr.KP_81_a_0 Bool) - (top.impl.usr.KP_91_a_0 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int) - ) Bool - - (let - ((X1 Int 0)) - (let - ((X2 Int 0)) - (and - (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 true) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool top.usr.KP_START_a_0)) - (let - ((X5 Int (ite (not X4) 0 1))) - (and - (= top.impl.usr.KP_91_a_0 top.usr.KP_9_a_0) - (= top.impl.usr.KP_81_a_0 top.usr.KP_8_a_0) - (= top.impl.usr.KP_71_a_0 top.usr.KP_7_a_0) - (= top.impl.usr.KP_61_a_0 top.usr.KP_6_a_0) - (= top.impl.usr.KP_51_a_0 top.usr.KP_5_a_0) - (= top.impl.usr.KP_41_a_0 top.usr.KP_4_a_0) - (= top.impl.usr.KP_31_a_0 top.usr.KP_3_a_0) - (= top.impl.usr.KP_21_a_0 top.usr.KP_2_a_0) - (= top.impl.usr.KP_11_a_0 top.usr.KP_1_a_0) - (= top.impl.usr.KP_01_a_0 top.usr.KP_0_a_0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - (ite - top.usr.KP_CLEAR_a_0 - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01_a_0 - 0 - (ite - top.impl.usr.KP_11_a_0 - 1 - (ite - top.impl.usr.KP_21_a_0 - 2 - (ite - top.impl.usr.KP_31_a_0 - 3 - (ite - top.impl.usr.KP_41_a_0 - 4 - (ite - top.impl.usr.KP_51_a_0 - 5 - (ite - top.impl.usr.KP_61_a_0 - 6 - (ite - top.impl.usr.KP_71_a_0 - 7 - (ite - top.impl.usr.KP_81_a_0 - 8 - (ite top.impl.usr.KP_91_a_0 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01_a_0 - 0 - (ite - top.impl.usr.KP_11_a_0 - 1 - (ite - top.impl.usr.KP_21_a_0 - 2 - (ite - top.impl.usr.KP_31_a_0 - 3 - (ite - top.impl.usr.KP_41_a_0 - 4 - (ite - top.impl.usr.KP_51_a_0 - 5 - (ite - top.impl.usr.KP_61_a_0 - 6 - (ite - top.impl.usr.KP_71_a_0 - 7 - (ite - top.impl.usr.KP_81_a_0 - 8 - (ite top.impl.usr.KP_91_a_0 9 10)))))))))) - 0))) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - 0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 0) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 - true) - (let - ((X6 Bool true)) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 - X6) - (= - top.impl.usr.STEPS_TO_COOK_a_0 - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0)) - 0 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 - 60)) - 1))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK_a_0 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED_a_0) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK_a_0 X1))) - (let - ((X18 Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 Bool top.usr.KP_CLEAR_a_0)) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (- - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - 1) - 60) - 60)) - (* - (div - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 - 1) - 60) - 60)) - 10) - 10)))) - (let - ((X34 Int X33)) - (and - (= - top.usr.OK_a_0 - (or - (not - (and X6 (not top.usr.KP_CLEAR_a_0))) - (or - (not top.usr.KP_0_a_0) - (= X34 0)))) - (let - ((X35 Int 0)) - (let - ((X36 - Int (ite - X12 - (ite (not (= X9 2)) 2 X35) - X35))) - (let - ((X37 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X36) - X36) - X35))) - (let - ((X38 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X39 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X37) - X37))) - (let - ((X40 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X39) - X39))) - (let - ((X41 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X41) - X41))) - (let - ((X43 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X38) - X38))) - (let - ((X44 - Bool (and - (= X43 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not - (= X11 0)) - true - false))) - (not - (or X32 X31)))))) - (let - ((X45 - Int (ite - X44 - (ite - (= X43 2) - 1 - X43) - X43))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - (ite - (not (= X2 4)) - 1 - X35) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X42) - X42) - X37)) - X35)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode_a_0 - top.impl.usr.chart_microwave_mode_logic_mode_a_0) - (let - ((X46 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 - X46 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X45) - X45) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - top.res.init_flag_a_0))))))))))))))))))))))))))))))))))))))))))))))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.KP_START_a_1 Bool) - (top.usr.KP_CLEAR_a_1 Bool) - (top.usr.KP_0_a_1 Bool) - (top.usr.KP_1_a_1 Bool) - (top.usr.KP_2_a_1 Bool) - (top.usr.KP_3_a_1 Bool) - (top.usr.KP_4_a_1 Bool) - (top.usr.KP_5_a_1 Bool) - (top.usr.KP_6_a_1 Bool) - (top.usr.KP_7_a_1 Bool) - (top.usr.KP_8_a_1 Bool) - (top.usr.KP_9_a_1 Bool) - (top.usr.DOOR_CLOSED_a_1 Bool) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.STEPS_TO_COOK_a_1 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 Bool) - (top.impl.usr.KP_01_a_1 Bool) - (top.impl.usr.KP_11_a_1 Bool) - (top.impl.usr.KP_21_a_1 Bool) - (top.impl.usr.KP_31_a_1 Bool) - (top.impl.usr.KP_41_a_1 Bool) - (top.impl.usr.KP_51_a_1 Bool) - (top.impl.usr.KP_61_a_1 Bool) - (top.impl.usr.KP_71_a_1 Bool) - (top.impl.usr.KP_81_a_1 Bool) - (top.impl.usr.KP_91_a_1 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_1 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_1 Int) - (top.usr.KP_START_a_0 Bool) - (top.usr.KP_CLEAR_a_0 Bool) - (top.usr.KP_0_a_0 Bool) - (top.usr.KP_1_a_0 Bool) - (top.usr.KP_2_a_0 Bool) - (top.usr.KP_3_a_0 Bool) - (top.usr.KP_4_a_0 Bool) - (top.usr.KP_5_a_0 Bool) - (top.usr.KP_6_a_0 Bool) - (top.usr.KP_7_a_0 Bool) - (top.usr.KP_8_a_0 Bool) - (top.usr.KP_9_a_0 Bool) - (top.usr.DOOR_CLOSED_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.STEPS_TO_COOK_a_0 Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) - (top.impl.usr.KP_01_a_0 Bool) - (top.impl.usr.KP_11_a_0 Bool) - (top.impl.usr.KP_21_a_0 Bool) - (top.impl.usr.KP_31_a_0 Bool) - (top.impl.usr.KP_41_a_0 Bool) - (top.impl.usr.KP_51_a_0 Bool) - (top.impl.usr.KP_61_a_0 Bool) - (top.impl.usr.KP_71_a_0 Bool) - (top.impl.usr.KP_81_a_0 Bool) - (top.impl.usr.KP_91_a_0 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) - (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int) - ) Bool - - (let - ((X1 Int top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0)) - (let - ((X2 - Int top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0)) - (and - (= - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 - false - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0)) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool (and top.usr.KP_START_a_1 (not top.usr.KP_START_a_0)))) - (let - ((X5 Int (ite (not X4) 0 1))) - (let - ((X6 - Bool (ite - (= 1 top.impl.usr.microwave_microwave_mode_logic_mode_a_0) - true - false))) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - X6) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (ite - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1) - true - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 - false - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0))) - (= top.impl.usr.KP_91_a_1 top.usr.KP_9_a_1) - (= top.impl.usr.KP_81_a_1 top.usr.KP_8_a_1) - (= top.impl.usr.KP_71_a_1 top.usr.KP_7_a_1) - (= top.impl.usr.KP_61_a_1 top.usr.KP_6_a_1) - (= top.impl.usr.KP_51_a_1 top.usr.KP_5_a_1) - (= top.impl.usr.KP_41_a_1 top.usr.KP_4_a_1) - (= top.impl.usr.KP_31_a_1 top.usr.KP_3_a_1) - (= top.impl.usr.KP_21_a_1 top.usr.KP_2_a_1) - (= top.impl.usr.KP_11_a_1 top.usr.KP_1_a_1) - (= top.impl.usr.KP_01_a_1 top.usr.KP_0_a_1) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01_a_1 - 0 - (ite - top.impl.usr.KP_11_a_1 - 1 - (ite - top.impl.usr.KP_21_a_1 - 2 - (ite - top.impl.usr.KP_31_a_1 - 3 - (ite - top.impl.usr.KP_41_a_1 - 4 - (ite - top.impl.usr.KP_51_a_1 - 5 - (ite - top.impl.usr.KP_61_a_1 - 6 - (ite - top.impl.usr.KP_71_a_1 - 7 - (ite - top.impl.usr.KP_81_a_1 - 8 - (ite top.impl.usr.KP_91_a_1 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01_a_1 - 0 - (ite - top.impl.usr.KP_11_a_1 - 1 - (ite - top.impl.usr.KP_21_a_1 - 2 - (ite - top.impl.usr.KP_31_a_1 - 3 - (ite - top.impl.usr.KP_41_a_1 - 4 - (ite - top.impl.usr.KP_51_a_1 - 5 - (ite - top.impl.usr.KP_61_a_1 - 6 - (ite - top.impl.usr.KP_71_a_1 - 7 - (ite - top.impl.usr.KP_81_a_1 - 8 - (ite top.impl.usr.KP_91_a_1 9 10)))))))))) - 0)) - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and - top.impl.usr.KP_71_a_1 - (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and - top.impl.usr.KP_81_a_1 - (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - 0 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and - top.impl.usr.KP_71_a_1 - (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and - top.impl.usr.KP_81_a_1 - (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - 0 - (ite - top.usr.KP_CLEAR_a_1 - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) - 0 - (ite - (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) - 1 - (ite - (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) - 2 - (ite - (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) - 3 - (ite - (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) - 4 - (ite - (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) - 5 - (ite - (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) - 6 - (ite - (and - top.impl.usr.KP_71_a_1 - (not top.impl.usr.KP_71_a_0)) - 7 - (ite - (and - top.impl.usr.KP_81_a_1 - (not top.impl.usr.KP_81_a_0)) - 8 - (ite - (and - top.impl.usr.KP_91_a_1 - (not top.impl.usr.KP_91_a_0)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0)) - (= - top.impl.usr.STEPS_TO_COOK_a_1 - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1)) - 0 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 - 60)) - 1) - top.impl.usr.STEPS_TO_COOK_a_0))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK_a_1 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED_a_1) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK_a_1 X1))) - (let - ((X18 Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 - Bool (and - top.usr.KP_CLEAR_a_1 - (not top.usr.KP_CLEAR_a_0)))) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (- - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - 1) - 60) - 60)) - (* - (div - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 - 1) - 60) - 60)) - 10) - 10)))) - (let - ((X34 Int X33)) - (and - (= - top.usr.OK_a_1 - (or - (not - (and X6 (not top.usr.KP_CLEAR_a_1))) - (or - (not - (and - top.usr.KP_0_a_1 - (not top.usr.KP_0_a_0))) - (= X34 0)))) - (let - ((X35 - Int top.impl.usr.chart_microwave_mode_logic_mode_a_0)) - (let - ((X36 - Int (ite - X12 - (ite (not (= X9 2)) 2 X35) - X35))) - (let - ((X37 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X36) - X36) - X35))) - (let - ((X38 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X39 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X37) - X37))) - (let - ((X40 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X39) - X39))) - (let - ((X41 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X41) - X41))) - (let - ((X43 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X38) - X38))) - (let - ((X44 - Bool (and - (= X43 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not (= X11 0)) - true - false))) - (not (or X32 X31)))))) - (let - ((X45 - Int (ite - X44 - (ite - (= X43 2) - 1 - X43) - X43))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - (ite - (not (= X2 4)) - 1 - X35) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X42) - X42) - X37)) - X35)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode_a_1 - top.impl.usr.chart_microwave_mode_logic_mode_a_1) - (let - ((X46 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 - X46 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X45) - X45) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - (not - top.res.init_flag_a_1))))))))))))))))))))))))))))))))))))))))))))))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) -)) - -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.KP_START Bool) -(declare-primed-var top.usr.KP_CLEAR Bool) -(declare-primed-var top.usr.KP_0 Bool) -(declare-primed-var top.usr.KP_1 Bool) -(declare-primed-var top.usr.KP_2 Bool) -(declare-primed-var top.usr.KP_3 Bool) -(declare-primed-var top.usr.KP_4 Bool) -(declare-primed-var top.usr.KP_5 Bool) -(declare-primed-var top.usr.KP_6 Bool) -(declare-primed-var top.usr.KP_7 Bool) -(declare-primed-var top.usr.KP_8 Bool) -(declare-primed-var top.usr.KP_9 Bool) -(declare-primed-var top.usr.DOOR_CLOSED Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.STEPS_TO_COOK Int) -(declare-primed-var top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) -(declare-primed-var top.impl.usr.KP_01 Bool) -(declare-primed-var top.impl.usr.KP_11 Bool) -(declare-primed-var top.impl.usr.KP_21 Bool) -(declare-primed-var top.impl.usr.KP_31 Bool) -(declare-primed-var top.impl.usr.KP_41 Bool) -(declare-primed-var top.impl.usr.KP_51 Bool) -(declare-primed-var top.impl.usr.KP_61 Bool) -(declare-primed-var top.impl.usr.KP_71 Bool) -(declare-primed-var top.impl.usr.KP_81 Bool) -(declare-primed-var top.impl.usr.KP_91 Bool) -(declare-primed-var top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_mode Int) -(declare-primed-var top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) -(declare-primed-var top.impl.usr.microwave_microwave_mode_logic_mode Int) - -(define-fun - init ( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - ) Bool - - (let - ((X1 Int 0)) - (let - ((X2 Int 0)) - (and - (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep true) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool top.usr.KP_START)) - (let - ((X5 Int (ite (not X4) 0 1))) - (and - (= top.impl.usr.KP_91 top.usr.KP_9) - (= top.impl.usr.KP_81 top.usr.KP_8) - (= top.impl.usr.KP_71 top.usr.KP_7) - (= top.impl.usr.KP_61 top.usr.KP_6) - (= top.impl.usr.KP_51 top.usr.KP_5) - (= top.impl.usr.KP_41 top.usr.KP_4) - (= top.impl.usr.KP_31 top.usr.KP_3) - (= top.impl.usr.KP_21 top.usr.KP_2) - (= top.impl.usr.KP_11 top.usr.KP_1) - (= top.impl.usr.KP_01 top.usr.KP_0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - (ite - top.usr.KP_CLEAR - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01 - 0 - (ite - top.impl.usr.KP_11 - 1 - (ite - top.impl.usr.KP_21 - 2 - (ite - top.impl.usr.KP_31 - 3 - (ite - top.impl.usr.KP_41 - 4 - (ite - top.impl.usr.KP_51 - 5 - (ite - top.impl.usr.KP_61 - 6 - (ite - top.impl.usr.KP_71 - 7 - (ite - top.impl.usr.KP_81 - 8 - (ite top.impl.usr.KP_91 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01 - 0 - (ite - top.impl.usr.KP_11 - 1 - (ite - top.impl.usr.KP_21 - 2 - (ite - top.impl.usr.KP_31 - 3 - (ite - top.impl.usr.KP_41 - 4 - (ite - top.impl.usr.KP_51 - 5 - (ite - top.impl.usr.KP_61 - 6 - (ite - top.impl.usr.KP_71 - 7 - (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) - 0))) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - 0) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY - 0) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step - true) - (let - ((X6 Bool true)) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock - X6) - (= - top.impl.usr.STEPS_TO_COOK - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock)) - 0 - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY - 60)) - 1))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK X1))) - (let - ((X18 Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 Bool top.usr.KP_CLEAR)) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup___ - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (- - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining - 1) - 60) - 60)) - (* - (div - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining - 1) - 60) - 60)) - 10) - 10)))) - (let - ((X34 Int X33)) - (and - (= - top.usr.OK - (or - (not - (and X6 (not top.usr.KP_CLEAR))) - (or (not top.usr.KP_0) (= X34 0)))) - (let - ((X35 Int 0)) - (let - ((X36 - Int (ite - X12 - (ite (not (= X9 2)) 2 X35) - X35))) - (let - ((X37 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X36) - X36) - X35))) - (let - ((X38 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X39 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X37) - X37))) - (let - ((X40 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X39) - X39))) - (let - ((X41 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X41) - X41))) - (let - ((X43 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X38) - X38))) - (let - ((X44 - Bool (and - (= X43 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not - (= X11 0)) - true - false))) - (not - (or X32 X31)))))) - (let - ((X45 - Int (ite - X44 - (ite - (= X43 2) - 1 - X43) - X43))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - (ite - (not (= X2 4)) - 1 - X35) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X42) - X42) - X37)) - X35)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode - top.impl.usr.chart_microwave_mode_logic_mode) - (let - ((X46 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep - X46 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X45) - X45) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - top.res.init_flag))))))))))))))))))))))))))))))))))))))))))))))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - - ;; Next state. - (top.usr.KP_START! Bool) - (top.usr.KP_CLEAR! Bool) - (top.usr.KP_0! Bool) - (top.usr.KP_1! Bool) - (top.usr.KP_2! Bool) - (top.usr.KP_3! Bool) - (top.usr.KP_4! Bool) - (top.usr.KP_5! Bool) - (top.usr.KP_6! Bool) - (top.usr.KP_7! Bool) - (top.usr.KP_8! Bool) - (top.usr.KP_9! Bool) - (top.usr.DOOR_CLOSED! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.STEPS_TO_COOK! Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! Bool) - (top.impl.usr.KP_01! Bool) - (top.impl.usr.KP_11! Bool) - (top.impl.usr.KP_21! Bool) - (top.impl.usr.KP_31! Bool) - (top.impl.usr.KP_41! Bool) - (top.impl.usr.KP_51! Bool) - (top.impl.usr.KP_61! Bool) - (top.impl.usr.KP_71! Bool) - (top.impl.usr.KP_81! Bool) - (top.impl.usr.KP_91! Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___! Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root! Int) - (top.impl.usr.chart_microwave_mode_logic_mode! Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining! Int) - (top.impl.usr.microwave_microwave_mode_logic_mode! Int) - - ) Bool - - (and - (let - ((X1 Int top.impl.usr.chart_microwave_mode_logic_steps_remaining)) - (let - ((X2 - Int top.impl.usr.chart_microwave_mode_logic_final_state_states___root)) - (and - (= - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___ - false - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep)) - (let - ((X3 Bool (= X2 4))) - (let - ((X4 Bool (and top.usr.KP_START! (not top.usr.KP_START)))) - (let - ((X5 Int (ite (not X4) 0 1))) - (let - ((X6 - Bool (ite - (= 1 top.impl.usr.microwave_microwave_mode_logic_mode) - true - false))) - (and - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - X6) - (= - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (ite - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!) - true - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock - false - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step))) - (= top.impl.usr.KP_91! top.usr.KP_9!) - (= top.impl.usr.KP_81! top.usr.KP_8!) - (= top.impl.usr.KP_71! top.usr.KP_7!) - (= top.impl.usr.KP_61! top.usr.KP_6!) - (= top.impl.usr.KP_51! top.usr.KP_5!) - (= top.impl.usr.KP_41! top.usr.KP_4!) - (= top.impl.usr.KP_31! top.usr.KP_3!) - (= top.impl.usr.KP_21! top.usr.KP_2!) - (= top.impl.usr.KP_11! top.usr.KP_1!) - (= top.impl.usr.KP_01! top.usr.KP_0!) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - top.impl.usr.KP_01! - 0 - (ite - top.impl.usr.KP_11! - 1 - (ite - top.impl.usr.KP_21! - 2 - (ite - top.impl.usr.KP_31! - 3 - (ite - top.impl.usr.KP_41! - 4 - (ite - top.impl.usr.KP_51! - 5 - (ite - top.impl.usr.KP_61! - 6 - (ite - top.impl.usr.KP_71! - 7 - (ite - top.impl.usr.KP_81! - 8 - (ite top.impl.usr.KP_91! 9 10)))))))))) - 9) - true - false) - (ite - top.impl.usr.KP_01! - 0 - (ite - top.impl.usr.KP_11! - 1 - (ite - top.impl.usr.KP_21! - 2 - (ite - top.impl.usr.KP_31! - 3 - (ite - top.impl.usr.KP_41! - 4 - (ite - top.impl.usr.KP_51! - 5 - (ite - top.impl.usr.KP_61! - 6 - (ite - top.impl.usr.KP_71! - 7 - (ite - top.impl.usr.KP_81! - 8 - (ite top.impl.usr.KP_91! 9 10)))))))))) - 0)) - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and - top.impl.usr.KP_91! - (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - 0 - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and - top.impl.usr.KP_91! - (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - 0 - (ite - top.usr.KP_CLEAR! - 0 - (ite - (ite - (<= - (ite - (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) - 0 - (ite - (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) - 1 - (ite - (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) - 2 - (ite - (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) - 3 - (ite - (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) - 4 - (ite - (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) - 5 - (ite - (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) - 6 - (ite - (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) - 7 - (ite - (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) - 8 - (ite - (and - top.impl.usr.KP_91! - (not top.impl.usr.KP_91)) - 9 - 10)))))))))) - 9) - true - false) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY))) - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY)) - (= - top.impl.usr.STEPS_TO_COOK! - (ite - (and - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! - (not - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!)) - 0 - (ite - top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! - (* - (+ - (+ - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! - 1) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! - 10)) - (* - top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! - 60)) - 1) - top.impl.usr.STEPS_TO_COOK))) - (let - ((X7 - Bool (and - X3 - (and - (= X2 4) - (and - (ite (not (= X5 0)) true false) - (ite - (not - (= - (ite (not (> top.impl.usr.STEPS_TO_COOK! 0)) 0 1) - 0)) - true - false)))))) - (let - ((X8 Int (ite X7 (ite (= X2 4) 0 X2) X2))) - (let - ((X9 Int (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) - (let - ((X10 - Bool (and - (not (and (>= X8 1) (<= X8 3))) - (and (>= X9 1) (<= X9 3))))) - (let - ((X11 Int (ite (not top.usr.DOOR_CLOSED!) 0 1))) - (let - ((X12 - Bool (and - X10 - (and - (and (>= X9 1) (<= X9 3)) - (ite (not (= X11 0)) true false))))) - (let - ((X13 Int (ite X12 (ite (not (= X9 2)) 2 X9) X9))) - (let - ((X14 - Bool (and - X10 - (and (and (>= X13 1) (<= X13 3)) (not X12))))) - (let - ((X15 Int (ite X14 (ite (not (= X13 3)) 3 X13) X13))) - (let - ((X16 Int (ite X7 X15 X8))) - (let - ((X17 Int (ite X3 top.impl.usr.STEPS_TO_COOK! X1))) - (let - ((X18 Bool (and (and (= X16 2) (<= X17 0)) (= X16 2)))) - (let - ((X19 - Int (ite - X18 - (ite (and (>= X16 1) (<= X16 3)) 0 X16) - X16))) - (let - ((X20 Int (ite X18 (ite (not (= X19 4)) 4 X19) X19))) - (let - ((X21 - Bool (and - (= X20 3) - (and - (and - (ite (not (= X5 0)) true false) - (ite (not (= X11 0)) true false)) - (not X18))))) - (let - ((X22 Int (ite X21 (ite (= X20 3) 1 X20) X20))) - (let - ((X23 - Int (ite X21 (ite (not (= X22 2)) 2 X22) X22))) - (let - ((X24 Bool (or X21 X18))) - (let - ((X25 - Bool (and - top.usr.KP_CLEAR! - (not top.usr.KP_CLEAR)))) - (let - ((X26 Int (ite (not X25) 0 1))) - (let - ((X27 - Bool (and - (and - (= X23 3) - (and - (ite (not (= X26 0)) true false) - (not X24))) - (and (= X23 3) (not X24))))) - (let - ((X28 - Int (ite - X27 - (ite - (and (>= X23 1) (<= X23 3)) - 0 - X23) - X23))) - (let - ((X29 - Int (ite - X27 - (ite (not (= X28 4)) 4 X28) - X28))) - (let - ((X30 Int (ite X27 0 X17))) - (let - ((X31 Bool (or X27 X24))) - (let - ((X32 - Bool (and - (= X29 2) - (and (> X30 0) (not X31))))) - (and - (= - top.impl.usr.chart_microwave_mode_logic____wakeup___! - true) - (= - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - X1 - (ite - (and - (not X7) - (and (>= X16 1) (<= X16 3))) - (ite X32 (- X30 1) X30) - X17)) - X1)) - (let - ((X33 - Int (- - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - 1) - 60) - 60)) - (* - (div - (- - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - 1) - (* - (div - (div - top.impl.usr.chart_microwave_mode_logic_steps_remaining! - 1) - 60) - 60)) - 10) - 10)))) - (let - ((X34 Int X33)) - (and - (= - top.usr.OK! - (or - (not - (and X6 (not top.usr.KP_CLEAR!))) - (or - (not - (and - top.usr.KP_0! - (not top.usr.KP_0))) - (= X34 0)))) - (let - ((X35 - Int top.impl.usr.chart_microwave_mode_logic_mode)) - (let - ((X36 - Int (ite - X12 - (ite (not (= X9 2)) 2 X35) - X35))) - (let - ((X37 - Int (ite - X7 - (ite - X14 - (ite - (not (= X13 3)) - 3 - X36) - X36) - X35))) - (let - ((X38 - Int (ite - X32 - (ite (= X29 2) 1 X29) - X29))) - (let - ((X39 - Int (ite - X18 - (ite - (not (= X19 4)) - 1 - X37) - X37))) - (let - ((X40 - Int (ite - X21 - (ite - (not (= X22 2)) - 2 - X39) - X39))) - (let - ((X41 - Int (ite - X27 - (ite - (not (= X28 4)) - 1 - X40) - X40))) - (let - ((X42 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X41) - X41))) - (let - ((X43 - Int (ite - X32 - (ite - (not (= X38 2)) - 2 - X38) - X38))) - (let - ((X44 - Bool (and - (= X43 2) - (and - (or - (ite - (not (= X26 0)) - true - false) - (not - (ite - (not - (= X11 0)) - true - false))) - (not - (or X32 X31)))))) - (let - ((X45 - Int (ite - X44 - (ite - (= X43 2) - 1 - X43) - X43))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_mode! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - (ite - (not (= X2 4)) - 1 - X35) - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X42) - X42) - X37)) - X35)) - (= - top.impl.usr.microwave_microwave_mode_logic_mode! - top.impl.usr.chart_microwave_mode_logic_mode!) - (let - ((X46 - Int (ite - (not (= X2 4)) - 4 - X2))) - (and - (= - top.impl.usr.chart_microwave_mode_logic_final_state_states___root! - (ite - top.impl.usr.chart_microwave_mode_logic____wakeup___! - (ite - top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! - X46 - (ite - (and - (not X7) - (and - (>= X16 1) - (<= X16 3))) - (ite - X44 - (ite - (not (= X45 3)) - 3 - X45) - X45) - X16)) - X2)) - (<= 0 X26 1) - (<= 0 X11 1) - (<= 0 X5 1) - (not - top.res.init_flag!))))))))))))))))))))))))))))))))))))))))))))))))))))) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.KP_START Bool) - (top.usr.KP_CLEAR Bool) - (top.usr.KP_0 Bool) - (top.usr.KP_1 Bool) - (top.usr.KP_2 Bool) - (top.usr.KP_3 Bool) - (top.usr.KP_4 Bool) - (top.usr.KP_5 Bool) - (top.usr.KP_6 Bool) - (top.usr.KP_7 Bool) - (top.usr.KP_8 Bool) - (top.usr.KP_9 Bool) - (top.usr.DOOR_CLOSED Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.STEPS_TO_COOK Int) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) - (top.impl.usr.KP_01 Bool) - (top.impl.usr.KP_11 Bool) - (top.impl.usr.KP_21 Bool) - (top.impl.usr.KP_31 Bool) - (top.impl.usr.KP_41 Bool) - (top.impl.usr.KP_51 Bool) - (top.impl.usr.KP_61 Bool) - (top.impl.usr.KP_71 Bool) - (top.impl.usr.KP_81 Bool) - (top.impl.usr.KP_91 Bool) - (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) - (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) - (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) - (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) - (top.impl.usr.chart_microwave_mode_logic_mode Int) - (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) - (top.impl.usr.microwave_microwave_mode_logic_mode Int) - ) Bool - - top.usr.OK -) +(define-fun __node_init_top_0 ((top.usr.KP_START_a_0 Bool) (top.usr.KP_CLEAR_a_0 Bool) (top.usr.KP_0_a_0 Bool) (top.usr.KP_1_a_0 Bool) (top.usr.KP_2_a_0 Bool) (top.usr.KP_3_a_0 Bool) (top.usr.KP_4_a_0 Bool) (top.usr.KP_5_a_0 Bool) (top.usr.KP_6_a_0 Bool) (top.usr.KP_7_a_0 Bool) (top.usr.KP_8_a_0 Bool) (top.usr.KP_9_a_0 Bool) (top.usr.DOOR_CLOSED_a_0 Bool) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.STEPS_TO_COOK_a_0 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) (top.impl.usr.KP_01_a_0 Bool) (top.impl.usr.KP_11_a_0 Bool) (top.impl.usr.KP_21_a_0 Bool) (top.impl.usr.KP_31_a_0 Bool) (top.impl.usr.KP_41_a_0 Bool) (top.impl.usr.KP_51_a_0 Bool) (top.impl.usr.KP_61_a_0 Bool) (top.impl.usr.KP_71_a_0 Bool) (top.impl.usr.KP_81_a_0 Bool) (top.impl.usr.KP_91_a_0 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int)) Bool + (let ((X1 0)) (let ((X2 0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 true) (let ((X3 (= X2 4))) (let ((X4 top.usr.KP_START_a_0)) (let ((X5 (ite (not X4) 0 1))) (and (= top.impl.usr.KP_91_a_0 top.usr.KP_9_a_0) (= top.impl.usr.KP_81_a_0 top.usr.KP_8_a_0) (= top.impl.usr.KP_71_a_0 top.usr.KP_7_a_0) (= top.impl.usr.KP_61_a_0 top.usr.KP_6_a_0) (= top.impl.usr.KP_51_a_0 top.usr.KP_5_a_0) (= top.impl.usr.KP_41_a_0 top.usr.KP_4_a_0) (= top.impl.usr.KP_31_a_0 top.usr.KP_3_a_0) (= top.impl.usr.KP_21_a_0 top.usr.KP_2_a_0) (= top.impl.usr.KP_11_a_0 top.usr.KP_1_a_0) (= top.impl.usr.KP_01_a_0 top.usr.KP_0_a_0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 (ite top.usr.KP_CLEAR_a_0 0 (ite (ite (<= (ite top.impl.usr.KP_01_a_0 0 (ite top.impl.usr.KP_11_a_0 1 (ite top.impl.usr.KP_21_a_0 2 (ite top.impl.usr.KP_31_a_0 3 (ite top.impl.usr.KP_41_a_0 4 (ite top.impl.usr.KP_51_a_0 5 (ite top.impl.usr.KP_61_a_0 6 (ite top.impl.usr.KP_71_a_0 7 (ite top.impl.usr.KP_81_a_0 8 (ite top.impl.usr.KP_91_a_0 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01_a_0 0 (ite top.impl.usr.KP_11_a_0 1 (ite top.impl.usr.KP_21_a_0 2 (ite top.impl.usr.KP_31_a_0 3 (ite top.impl.usr.KP_41_a_0 4 (ite top.impl.usr.KP_51_a_0 5 (ite top.impl.usr.KP_61_a_0 6 (ite top.impl.usr.KP_71_a_0 7 (ite top.impl.usr.KP_81_a_0 8 (ite top.impl.usr.KP_91_a_0 9 10)))))))))) 0))) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 0) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 true) (let ((X6 true)) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 X6) (= top.impl.usr.STEPS_TO_COOK_a_0 (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0)) 0 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 60)) 1))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK_a_0 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED_a_0) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK_a_0 X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 top.usr.KP_CLEAR_a_0)) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (- (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 1) 60) 60)) (* (div (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 1) 60) 60)) 10) 10)))) (let ((X34 X33)) (and (= top.usr.OK_a_0 (or (not (and X6 (not top.usr.KP_CLEAR_a_0))) (or (not top.usr.KP_0_a_0) (= X34 0)))) (let ((X35 0)) (let ((X36 (ite X12 (ite (not (= X9 2)) 2 X35) X35))) (let ((X37 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X36) X36) X35))) (let ((X38 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X39 (ite X18 (ite (not (= X19 4)) 1 X37) X37))) (let ((X40 (ite X21 (ite (not (= X22 2)) 2 X39) X39))) (let ((X41 (ite X27 (ite (not (= X28 4)) 1 X40) X40))) (let ((X42 (ite X32 (ite (not (= X38 2)) 2 X41) X41))) (let ((X43 (ite X32 (ite (not (= X38 2)) 2 X38) X38))) (let ((X44 (and (= X43 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X45 (ite X44 (ite (= X43 2) 1 X43) X43))) (and (= top.impl.usr.chart_microwave_mode_logic_mode_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 (ite (not (= X2 4)) 1 X35) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X42) X42) X37)) X35)) (= top.impl.usr.microwave_microwave_mode_logic_mode_a_0 top.impl.usr.chart_microwave_mode_logic_mode_a_0) (let ((X46 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 X46 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X45) X45) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) top.res.init_flag_a_0)))))))))))))))))))))))))))))))))))))))))))))))))))))) +(define-fun __node_trans_top_0 ((top.usr.KP_START_a_1 Bool) (top.usr.KP_CLEAR_a_1 Bool) (top.usr.KP_0_a_1 Bool) (top.usr.KP_1_a_1 Bool) (top.usr.KP_2_a_1 Bool) (top.usr.KP_3_a_1 Bool) (top.usr.KP_4_a_1 Bool) (top.usr.KP_5_a_1 Bool) (top.usr.KP_6_a_1 Bool) (top.usr.KP_7_a_1 Bool) (top.usr.KP_8_a_1 Bool) (top.usr.KP_9_a_1 Bool) (top.usr.DOOR_CLOSED_a_1 Bool) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.STEPS_TO_COOK_a_1 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 Bool) (top.impl.usr.KP_01_a_1 Bool) (top.impl.usr.KP_11_a_1 Bool) (top.impl.usr.KP_21_a_1 Bool) (top.impl.usr.KP_31_a_1 Bool) (top.impl.usr.KP_41_a_1 Bool) (top.impl.usr.KP_51_a_1 Bool) (top.impl.usr.KP_61_a_1 Bool) (top.impl.usr.KP_71_a_1 Bool) (top.impl.usr.KP_81_a_1 Bool) (top.impl.usr.KP_91_a_1 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_1 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_1 Int) (top.usr.KP_START_a_0 Bool) (top.usr.KP_CLEAR_a_0 Bool) (top.usr.KP_0_a_0 Bool) (top.usr.KP_1_a_0 Bool) (top.usr.KP_2_a_0 Bool) (top.usr.KP_3_a_0 Bool) (top.usr.KP_4_a_0 Bool) (top.usr.KP_5_a_0 Bool) (top.usr.KP_6_a_0 Bool) (top.usr.KP_7_a_0 Bool) (top.usr.KP_8_a_0 Bool) (top.usr.KP_9_a_0 Bool) (top.usr.DOOR_CLOSED_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.STEPS_TO_COOK_a_0 Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 Bool) (top.impl.usr.KP_01_a_0 Bool) (top.impl.usr.KP_11_a_0 Bool) (top.impl.usr.KP_21_a_0 Bool) (top.impl.usr.KP_31_a_0 Bool) (top.impl.usr.KP_41_a_0 Bool) (top.impl.usr.KP_51_a_0 Bool) (top.impl.usr.KP_61_a_0 Bool) (top.impl.usr.KP_71_a_0 Bool) (top.impl.usr.KP_81_a_0 Bool) (top.impl.usr.KP_91_a_0 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0 Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 Int) (top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0 Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_mode_a_0 Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0 Int) (top.impl.usr.microwave_microwave_mode_logic_mode_a_0 Int)) Bool + (let ((X1 top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_0)) (let ((X2 top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_0 false top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_0)) (let ((X3 (= X2 4))) (let ((X4 (and top.usr.KP_START_a_1 (not top.usr.KP_START_a_0)))) (let ((X5 (ite (not X4) 0 1))) (let ((X6 (ite (= 1 top.impl.usr.microwave_microwave_mode_logic_mode_a_0) true false))) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 X6) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (ite (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1) true (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_0 false top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_0))) (= top.impl.usr.KP_91_a_1 top.usr.KP_9_a_1) (= top.impl.usr.KP_81_a_1 top.usr.KP_8_a_1) (= top.impl.usr.KP_71_a_1 top.usr.KP_7_a_1) (= top.impl.usr.KP_61_a_1 top.usr.KP_6_a_1) (= top.impl.usr.KP_51_a_1 top.usr.KP_5_a_1) (= top.impl.usr.KP_41_a_1 top.usr.KP_4_a_1) (= top.impl.usr.KP_31_a_1 top.usr.KP_3_a_1) (= top.impl.usr.KP_21_a_1 top.usr.KP_2_a_1) (= top.impl.usr.KP_11_a_1 top.usr.KP_1_a_1) (= top.impl.usr.KP_01_a_1 top.usr.KP_0_a_1) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite top.impl.usr.KP_01_a_1 0 (ite top.impl.usr.KP_11_a_1 1 (ite top.impl.usr.KP_21_a_1 2 (ite top.impl.usr.KP_31_a_1 3 (ite top.impl.usr.KP_41_a_1 4 (ite top.impl.usr.KP_51_a_1 5 (ite top.impl.usr.KP_61_a_1 6 (ite top.impl.usr.KP_71_a_1 7 (ite top.impl.usr.KP_81_a_1 8 (ite top.impl.usr.KP_91_a_1 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01_a_1 0 (ite top.impl.usr.KP_11_a_1 1 (ite top.impl.usr.KP_21_a_1 2 (ite top.impl.usr.KP_31_a_1 3 (ite top.impl.usr.KP_41_a_1 4 (ite top.impl.usr.KP_51_a_1 5 (ite top.impl.usr.KP_61_a_1 6 (ite top.impl.usr.KP_71_a_1 7 (ite top.impl.usr.KP_81_a_1 8 (ite top.impl.usr.KP_91_a_1 9 10)))))))))) 0)) (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 0 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_0 top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 0 (ite top.usr.KP_CLEAR_a_1 0 (ite (ite (<= (ite (and top.impl.usr.KP_01_a_1 (not top.impl.usr.KP_01_a_0)) 0 (ite (and top.impl.usr.KP_11_a_1 (not top.impl.usr.KP_11_a_0)) 1 (ite (and top.impl.usr.KP_21_a_1 (not top.impl.usr.KP_21_a_0)) 2 (ite (and top.impl.usr.KP_31_a_1 (not top.impl.usr.KP_31_a_0)) 3 (ite (and top.impl.usr.KP_41_a_1 (not top.impl.usr.KP_41_a_0)) 4 (ite (and top.impl.usr.KP_51_a_1 (not top.impl.usr.KP_51_a_0)) 5 (ite (and top.impl.usr.KP_61_a_1 (not top.impl.usr.KP_61_a_0)) 6 (ite (and top.impl.usr.KP_71_a_1 (not top.impl.usr.KP_71_a_0)) 7 (ite (and top.impl.usr.KP_81_a_1 (not top.impl.usr.KP_81_a_0)) 8 (ite (and top.impl.usr.KP_91_a_1 (not top.impl.usr.KP_91_a_0)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_0 top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_0)) (= top.impl.usr.STEPS_TO_COOK_a_1 (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step_a_1 (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1)) 0 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock_a_1 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY_a_1 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY_a_1 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY_a_1 60)) 1) top.impl.usr.STEPS_TO_COOK_a_0))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK_a_1 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED_a_1) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK_a_1 X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 (and top.usr.KP_CLEAR_a_1 (not top.usr.KP_CLEAR_a_0)))) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (- (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 1) 60) 60)) (* (div (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining_a_1 1) 60) 60)) 10) 10)))) (let ((X34 X33)) (and (= top.usr.OK_a_1 (or (not (and X6 (not top.usr.KP_CLEAR_a_1))) (or (not (and top.usr.KP_0_a_1 (not top.usr.KP_0_a_0))) (= X34 0)))) (let ((X35 top.impl.usr.chart_microwave_mode_logic_mode_a_0)) (let ((X36 (ite X12 (ite (not (= X9 2)) 2 X35) X35))) (let ((X37 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X36) X36) X35))) (let ((X38 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X39 (ite X18 (ite (not (= X19 4)) 1 X37) X37))) (let ((X40 (ite X21 (ite (not (= X22 2)) 2 X39) X39))) (let ((X41 (ite X27 (ite (not (= X28 4)) 1 X40) X40))) (let ((X42 (ite X32 (ite (not (= X38 2)) 2 X41) X41))) (let ((X43 (ite X32 (ite (not (= X38 2)) 2 X38) X38))) (let ((X44 (and (= X43 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X45 (ite X44 (ite (= X43 2) 1 X43) X43))) (and (= top.impl.usr.chart_microwave_mode_logic_mode_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 (ite (not (= X2 4)) 1 X35) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X42) X42) X37)) X35)) (= top.impl.usr.microwave_microwave_mode_logic_mode_a_1 top.impl.usr.chart_microwave_mode_logic_mode_a_1) (let ((X46 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root_a_1 (ite top.impl.usr.chart_microwave_mode_logic____wakeup____a_1 (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep_a_1 X46 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X45) X45) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) (not top.res.init_flag_a_1)))))))))))))))))))))))))))))))))))))))))))))))))))))) +(synth-inv str_invariant ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int))) + +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int)) Bool + (let ((X1 0)) (let ((X2 0)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep true) (let ((X3 (= X2 4))) (let ((X4 top.usr.KP_START)) (let ((X5 (ite (not X4) 0 1))) (and (= top.impl.usr.KP_91 top.usr.KP_9) (= top.impl.usr.KP_81 top.usr.KP_8) (= top.impl.usr.KP_71 top.usr.KP_7) (= top.impl.usr.KP_61 top.usr.KP_6) (= top.impl.usr.KP_51 top.usr.KP_5) (= top.impl.usr.KP_41 top.usr.KP_4) (= top.impl.usr.KP_31 top.usr.KP_3) (= top.impl.usr.KP_21 top.usr.KP_2) (= top.impl.usr.KP_11 top.usr.KP_1) (= top.impl.usr.KP_01 top.usr.KP_0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY (ite top.usr.KP_CLEAR 0 (ite (ite (<= (ite top.impl.usr.KP_01 0 (ite top.impl.usr.KP_11 1 (ite top.impl.usr.KP_21 2 (ite top.impl.usr.KP_31 3 (ite top.impl.usr.KP_41 4 (ite top.impl.usr.KP_51 5 (ite top.impl.usr.KP_61 6 (ite top.impl.usr.KP_71 7 (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01 0 (ite top.impl.usr.KP_11 1 (ite top.impl.usr.KP_21 2 (ite top.impl.usr.KP_31 3 (ite top.impl.usr.KP_41 4 (ite top.impl.usr.KP_51 5 (ite top.impl.usr.KP_61 6 (ite top.impl.usr.KP_71 7 (ite top.impl.usr.KP_81 8 (ite top.impl.usr.KP_91 9 10)))))))))) 0))) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY 0) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY 0) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step true) (let ((X6 true)) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock X6) (= top.impl.usr.STEPS_TO_COOK (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock)) 0 (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY 60)) 1))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 top.usr.KP_CLEAR)) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup___ true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (- (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining 1) 60) 60)) (* (div (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining 1) 60) 60)) 10) 10)))) (let ((X34 X33)) (and (= top.usr.OK (or (not (and X6 (not top.usr.KP_CLEAR))) (or (not top.usr.KP_0) (= X34 0)))) (let ((X35 0)) (let ((X36 (ite X12 (ite (not (= X9 2)) 2 X35) X35))) (let ((X37 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X36) X36) X35))) (let ((X38 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X39 (ite X18 (ite (not (= X19 4)) 1 X37) X37))) (let ((X40 (ite X21 (ite (not (= X22 2)) 2 X39) X39))) (let ((X41 (ite X27 (ite (not (= X28 4)) 1 X40) X40))) (let ((X42 (ite X32 (ite (not (= X38 2)) 2 X41) X41))) (let ((X43 (ite X32 (ite (not (= X38 2)) 2 X38) X38))) (let ((X44 (and (= X43 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X45 (ite X44 (ite (= X43 2) 1 X43) X43))) (and (= top.impl.usr.chart_microwave_mode_logic_mode (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep (ite (not (= X2 4)) 1 X35) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X42) X42) X37)) X35)) (= top.impl.usr.microwave_microwave_mode_logic_mode top.impl.usr.chart_microwave_mode_logic_mode) (let ((X46 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep X46 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X45) X45) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) top.res.init_flag)))))))))))))))))))))))))))))))))))))))))))))))))))))) +(define-fun trans ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int) (top.usr.KP_START! Bool) (top.usr.KP_CLEAR! Bool) (top.usr.KP_0! Bool) (top.usr.KP_1! Bool) (top.usr.KP_2! Bool) (top.usr.KP_3! Bool) (top.usr.KP_4! Bool) (top.usr.KP_5! Bool) (top.usr.KP_6! Bool) (top.usr.KP_7! Bool) (top.usr.KP_8! Bool) (top.usr.KP_9! Bool) (top.usr.DOOR_CLOSED! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.STEPS_TO_COOK! Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! Bool) (top.impl.usr.KP_01! Bool) (top.impl.usr.KP_11! Bool) (top.impl.usr.KP_21! Bool) (top.impl.usr.KP_31! Bool) (top.impl.usr.KP_41! Bool) (top.impl.usr.KP_51! Bool) (top.impl.usr.KP_61! Bool) (top.impl.usr.KP_71! Bool) (top.impl.usr.KP_81! Bool) (top.impl.usr.KP_91! Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___! Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root! Int) (top.impl.usr.chart_microwave_mode_logic_mode! Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining! Int) (top.impl.usr.microwave_microwave_mode_logic_mode! Int)) Bool + (and (let ((X1 top.impl.usr.chart_microwave_mode_logic_steps_remaining)) (let ((X2 top.impl.usr.chart_microwave_mode_logic_final_state_states___root)) (and (= top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___ false top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep)) (let ((X3 (= X2 4))) (let ((X4 (and top.usr.KP_START! (not top.usr.KP_START)))) (let ((X5 (ite (not X4) 0 1))) (let ((X6 (ite (= 1 top.impl.usr.microwave_microwave_mode_logic_mode) true false))) (and (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! X6) (= top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (ite (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!) true (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock false top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step))) (= top.impl.usr.KP_91! top.usr.KP_9!) (= top.impl.usr.KP_81! top.usr.KP_8!) (= top.impl.usr.KP_71! top.usr.KP_7!) (= top.impl.usr.KP_61! top.usr.KP_6!) (= top.impl.usr.KP_51! top.usr.KP_5!) (= top.impl.usr.KP_41! top.usr.KP_4!) (= top.impl.usr.KP_31! top.usr.KP_3!) (= top.impl.usr.KP_21! top.usr.KP_2!) (= top.impl.usr.KP_11! top.usr.KP_1!) (= top.impl.usr.KP_01! top.usr.KP_0!) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite top.impl.usr.KP_01! 0 (ite top.impl.usr.KP_11! 1 (ite top.impl.usr.KP_21! 2 (ite top.impl.usr.KP_31! 3 (ite top.impl.usr.KP_41! 4 (ite top.impl.usr.KP_51! 5 (ite top.impl.usr.KP_61! 6 (ite top.impl.usr.KP_71! 7 (ite top.impl.usr.KP_81! 8 (ite top.impl.usr.KP_91! 9 10)))))))))) 9) true false) (ite top.impl.usr.KP_01! 0 (ite top.impl.usr.KP_11! 1 (ite top.impl.usr.KP_21! 2 (ite top.impl.usr.KP_31! 3 (ite top.impl.usr.KP_41! 4 (ite top.impl.usr.KP_51! 5 (ite top.impl.usr.KP_61! 6 (ite top.impl.usr.KP_71! 7 (ite top.impl.usr.KP_81! 8 (ite top.impl.usr.KP_91! 9 10)))))))))) 0)) (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! 0 (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! 0 (ite top.usr.KP_CLEAR! 0 (ite (ite (<= (ite (and top.impl.usr.KP_01! (not top.impl.usr.KP_01)) 0 (ite (and top.impl.usr.KP_11! (not top.impl.usr.KP_11)) 1 (ite (and top.impl.usr.KP_21! (not top.impl.usr.KP_21)) 2 (ite (and top.impl.usr.KP_31! (not top.impl.usr.KP_31)) 3 (ite (and top.impl.usr.KP_41! (not top.impl.usr.KP_41)) 4 (ite (and top.impl.usr.KP_51! (not top.impl.usr.KP_51)) 5 (ite (and top.impl.usr.KP_61! (not top.impl.usr.KP_61)) 6 (ite (and top.impl.usr.KP_71! (not top.impl.usr.KP_71)) 7 (ite (and top.impl.usr.KP_81! (not top.impl.usr.KP_81)) 8 (ite (and top.impl.usr.KP_91! (not top.impl.usr.KP_91)) 9 10)))))))))) 9) true false) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY))) top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY)) (= top.impl.usr.STEPS_TO_COOK! (ite (and top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step! (not top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock!)) 0 (ite top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock! (* (+ (+ (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY! 1) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY! 10)) (* top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY! 60)) 1) top.impl.usr.STEPS_TO_COOK))) (let ((X7 (and X3 (and (= X2 4) (and (ite (not (= X5 0)) true false) (ite (not (= (ite (not (> top.impl.usr.STEPS_TO_COOK! 0)) 0 1) 0)) true false)))))) (let ((X8 (ite X7 (ite (= X2 4) 0 X2) X2))) (let ((X9 (ite (not (and (>= X8 1) (<= X8 3))) 1 X8))) (let ((X10 (and (not (and (>= X8 1) (<= X8 3))) (and (>= X9 1) (<= X9 3))))) (let ((X11 (ite (not top.usr.DOOR_CLOSED!) 0 1))) (let ((X12 (and X10 (and (and (>= X9 1) (<= X9 3)) (ite (not (= X11 0)) true false))))) (let ((X13 (ite X12 (ite (not (= X9 2)) 2 X9) X9))) (let ((X14 (and X10 (and (and (>= X13 1) (<= X13 3)) (not X12))))) (let ((X15 (ite X14 (ite (not (= X13 3)) 3 X13) X13))) (let ((X16 (ite X7 X15 X8))) (let ((X17 (ite X3 top.impl.usr.STEPS_TO_COOK! X1))) (let ((X18 (and (and (= X16 2) (<= X17 0)) (= X16 2)))) (let ((X19 (ite X18 (ite (and (>= X16 1) (<= X16 3)) 0 X16) X16))) (let ((X20 (ite X18 (ite (not (= X19 4)) 4 X19) X19))) (let ((X21 (and (= X20 3) (and (and (ite (not (= X5 0)) true false) (ite (not (= X11 0)) true false)) (not X18))))) (let ((X22 (ite X21 (ite (= X20 3) 1 X20) X20))) (let ((X23 (ite X21 (ite (not (= X22 2)) 2 X22) X22))) (let ((X24 (or X21 X18))) (let ((X25 (and top.usr.KP_CLEAR! (not top.usr.KP_CLEAR)))) (let ((X26 (ite (not X25) 0 1))) (let ((X27 (and (and (= X23 3) (and (ite (not (= X26 0)) true false) (not X24))) (and (= X23 3) (not X24))))) (let ((X28 (ite X27 (ite (and (>= X23 1) (<= X23 3)) 0 X23) X23))) (let ((X29 (ite X27 (ite (not (= X28 4)) 4 X28) X28))) (let ((X30 (ite X27 0 X17))) (let ((X31 (or X27 X24))) (let ((X32 (and (= X29 2) (and (> X30 0) (not X31))))) (and (= top.impl.usr.chart_microwave_mode_logic____wakeup___! true) (= top.impl.usr.chart_microwave_mode_logic_steps_remaining! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! X1 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X32 (- X30 1) X30) X17)) X1)) (let ((X33 (- (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining! 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining! 1) 60) 60)) (* (div (- (div top.impl.usr.chart_microwave_mode_logic_steps_remaining! 1) (* (div (div top.impl.usr.chart_microwave_mode_logic_steps_remaining! 1) 60) 60)) 10) 10)))) (let ((X34 X33)) (and (= top.usr.OK! (or (not (and X6 (not top.usr.KP_CLEAR!))) (or (not (and top.usr.KP_0! (not top.usr.KP_0))) (= X34 0)))) (let ((X35 top.impl.usr.chart_microwave_mode_logic_mode)) (let ((X36 (ite X12 (ite (not (= X9 2)) 2 X35) X35))) (let ((X37 (ite X7 (ite X14 (ite (not (= X13 3)) 3 X36) X36) X35))) (let ((X38 (ite X32 (ite (= X29 2) 1 X29) X29))) (let ((X39 (ite X18 (ite (not (= X19 4)) 1 X37) X37))) (let ((X40 (ite X21 (ite (not (= X22 2)) 2 X39) X39))) (let ((X41 (ite X27 (ite (not (= X28 4)) 1 X40) X40))) (let ((X42 (ite X32 (ite (not (= X38 2)) 2 X41) X41))) (let ((X43 (ite X32 (ite (not (= X38 2)) 2 X38) X38))) (let ((X44 (and (= X43 2) (and (or (ite (not (= X26 0)) true false) (not (ite (not (= X11 0)) true false))) (not (or X32 X31)))))) (let ((X45 (ite X44 (ite (= X43 2) 1 X43) X43))) (and (= top.impl.usr.chart_microwave_mode_logic_mode! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! (ite (not (= X2 4)) 1 X35) (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X42) X42) X37)) X35)) (= top.impl.usr.microwave_microwave_mode_logic_mode! top.impl.usr.chart_microwave_mode_logic_mode!) (let ((X46 (ite (not (= X2 4)) 4 X2))) (and (= top.impl.usr.chart_microwave_mode_logic_final_state_states___root! (ite top.impl.usr.chart_microwave_mode_logic____wakeup___! (ite top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep! X46 (ite (and (not X7) (and (>= X16 1) (<= X16 3))) (ite X44 (ite (not (= X45 3)) 3 X45) X45) X16)) X2)) (<= 0 X26 1) (<= 0 X11 1) (<= 0 X5 1) (not top.res.init_flag!))))))))))))))))))))))))))))))))))))))))))))))))))))) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.KP_START Bool) (top.usr.KP_CLEAR Bool) (top.usr.KP_0 Bool) (top.usr.KP_1 Bool) (top.usr.KP_2 Bool) (top.usr.KP_3 Bool) (top.usr.KP_4 Bool) (top.usr.KP_5 Bool) (top.usr.KP_6 Bool) (top.usr.KP_7 Bool) (top.usr.KP_8 Bool) (top.usr.KP_9 Bool) (top.usr.DOOR_CLOSED Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.STEPS_TO_COOK Int) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_clock Bool) (top.impl.usr.KP_01 Bool) (top.impl.usr.KP_11 Bool) (top.impl.usr.KP_21 Bool) (top.impl.usr.KP_31 Bool) (top.impl.usr.KP_41 Bool) (top.impl.usr.KP_51 Bool) (top.impl.usr.KP_61 Bool) (top.impl.usr.KP_71 Bool) (top.impl.usr.KP_81 Bool) (top.impl.usr.KP_91 Bool) (top.impl.usr.rlt_condact_resetmicrowave_microwave_KEYPAD_PROCESSING_rlt_init_step Bool) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_LEFT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_MIDDLE_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.microwave_microwave_KEYPAD_PROCESSING_DISPLAY_RIGHT_DIGIT_DIGIT_TO_DISPLAY Int) (top.impl.usr.chart_microwave_mode_logic____wakeup___ Bool) (top.impl.usr.chart_microwave_mode_logic_rlt_evtInitStep Bool) (top.impl.usr.chart_microwave_mode_logic_final_state_states___root Int) (top.impl.usr.chart_microwave_mode_logic_mode Int) (top.impl.usr.chart_microwave_mode_logic_steps_remaining Int) (top.impl.usr.microwave_microwave_mode_logic_mode Int)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/peterson_1.sl b/benchmarks/LIA/Lustre/peterson_1.sl index b48daa0..1e8a704 100644 --- a/benchmarks/LIA/Lustre/peterson_1.sl +++ b/benchmarks/LIA/Lustre/peterson_1.sl @@ -1,1978 +1,55 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_peterson_0 ( - (peterson.usr.e01_a_0 Bool) - (peterson.usr.e02_a_0 Bool) - (peterson.usr.e03_a_0 Bool) - (peterson.usr.e04_a_0 Bool) - (peterson.usr.e05_a_0 Bool) - (peterson.usr.e06_a_0 Bool) - (peterson.usr.e07_a_0 Bool) - (peterson.usr.e08_a_0 Bool) - (peterson.usr.e09_a_0 Bool) - (peterson.usr.e10_a_0 Bool) - (peterson.usr.e11_a_0 Bool) - (peterson.usr.e12_a_0 Bool) - (peterson.res.nondet_23 Int) - (peterson.res.nondet_22 Int) - (peterson.res.nondet_21 Int) - (peterson.res.nondet_20 Int) - (peterson.res.nondet_19 Int) - (peterson.res.nondet_18 Int) - (peterson.res.nondet_17 Int) - (peterson.res.nondet_16 Int) - (peterson.res.nondet_15 Int) - (peterson.res.nondet_14 Int) - (peterson.res.nondet_13 Int) - (peterson.res.nondet_12 Int) - (peterson.res.nondet_11 Int) - (peterson.res.nondet_10 Int) - (peterson.res.nondet_9 Int) - (peterson.res.nondet_8 Int) - (peterson.res.nondet_7 Int) - (peterson.res.nondet_6 Int) - (peterson.res.nondet_5 Int) - (peterson.res.nondet_4 Int) - (peterson.res.nondet_3 Int) - (peterson.res.nondet_2 Int) - (peterson.res.nondet_1 Int) - (peterson.res.nondet_0 Int) - (peterson.usr.x0_a_0 Int) - (peterson.usr.x1_a_0 Int) - (peterson.usr.x2_a_0 Int) - (peterson.usr.x3_a_0 Int) - (peterson.usr.x4_a_0 Int) - (peterson.usr.x5_a_0 Int) - (peterson.usr.x6_a_0 Int) - (peterson.usr.x7_a_0 Int) - (peterson.usr.x8_a_0 Int) - (peterson.usr.x9_a_0 Int) - (peterson.usr.x10_a_0 Int) - (peterson.usr.x11_a_0 Int) - (peterson.usr.x12_a_0 Int) - (peterson.usr.x13_a_0 Int) - (peterson.res.init_flag_a_0 Bool) - ) Bool - - (and - (= peterson.usr.x0_a_0 1) - (let - ((X1 - Bool (let - ((X1 Int peterson.res.nondet_1) (X2 Int peterson.res.nondet_0)) - (and (>= X2 1) (>= X1 1))))) - (and - (= peterson.usr.x4_a_0 1) - (let - ((X2 - Bool (let - ((X2 Int peterson.res.nondet_11) - (X3 Int peterson.res.nondet_10)) - (and (>= X3 1) (>= X2 1))))) - (and - (= peterson.usr.x3_a_0 0) - (let - ((X3 - Bool (let - ((X3 Int peterson.res.nondet_7) - (X4 Int peterson.res.nondet_6)) - (and (>= X4 1) (>= X3 1))))) - (and - (= peterson.usr.x2_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int peterson.res.nondet_3) - (X5 Int peterson.res.nondet_2)) - (and (>= X5 1) (>= X4 1))))) - (and - (= peterson.usr.x1_a_0 0) - (let - ((X5 - Bool (let - ((X5 Int peterson.res.nondet_5) - (X6 Int peterson.res.nondet_4)) - (and (>= X6 1) (>= X5 1))))) - (and - (= peterson.usr.x7_a_0 1) - (let - ((X6 - Bool (let - ((X6 Int peterson.res.nondet_15) - (X7 Int peterson.res.nondet_14)) - (and (>= X7 1) (>= X6 1))))) - (and - (= peterson.usr.x11_a_0 0) - (let - ((X7 - Bool (let - ((X7 Int peterson.res.nondet_13) - (X8 Int peterson.res.nondet_12)) - (and (>= X8 1) (>= X7 1))))) - (and - (= peterson.usr.x9_a_0 1) - (let - ((X8 - Bool (let - ((X8 Int peterson.res.nondet_23) - (X9 Int peterson.res.nondet_22)) - (and (>= X9 1) (>= X8 1))))) - (and - (= peterson.usr.x8_a_0 0) - (= peterson.usr.x13_a_0 0) - (let - ((X9 - Bool (let - ((X9 Int peterson.res.nondet_19) - (X10 Int peterson.res.nondet_18)) - (and (>= X10 1) (>= X9 1))))) - (and - (= peterson.usr.x12_a_0 0) - (let - ((X10 - Bool (let - ((X10 Int peterson.res.nondet_17) - (X11 Int peterson.res.nondet_16)) - (and (>= X11 1) (>= X10 1))))) - (and - (= peterson.usr.x6_a_0 0) - (let - ((X11 - Bool (let - ((X11 Int peterson.res.nondet_21) - (X12 Int peterson.res.nondet_20)) - (and (>= X12 1) (>= X11 1))))) - (and - (= peterson.usr.x10_a_0 1) - (let - ((X12 - Bool (let - ((X12 Int peterson.res.nondet_9) - (X13 Int peterson.res.nondet_8)) - (and (>= X13 1) (>= X12 1))))) - (and - (= peterson.usr.x5_a_0 0) - peterson.res.init_flag_a_0))))))))))))))))))))))))) -) - -(define-fun - __node_trans_peterson_0 ( - (peterson.usr.e01_a_1 Bool) - (peterson.usr.e02_a_1 Bool) - (peterson.usr.e03_a_1 Bool) - (peterson.usr.e04_a_1 Bool) - (peterson.usr.e05_a_1 Bool) - (peterson.usr.e06_a_1 Bool) - (peterson.usr.e07_a_1 Bool) - (peterson.usr.e08_a_1 Bool) - (peterson.usr.e09_a_1 Bool) - (peterson.usr.e10_a_1 Bool) - (peterson.usr.e11_a_1 Bool) - (peterson.usr.e12_a_1 Bool) - (peterson.res.nondet_23 Int) - (peterson.res.nondet_22 Int) - (peterson.res.nondet_21 Int) - (peterson.res.nondet_20 Int) - (peterson.res.nondet_19 Int) - (peterson.res.nondet_18 Int) - (peterson.res.nondet_17 Int) - (peterson.res.nondet_16 Int) - (peterson.res.nondet_15 Int) - (peterson.res.nondet_14 Int) - (peterson.res.nondet_13 Int) - (peterson.res.nondet_12 Int) - (peterson.res.nondet_11 Int) - (peterson.res.nondet_10 Int) - (peterson.res.nondet_9 Int) - (peterson.res.nondet_8 Int) - (peterson.res.nondet_7 Int) - (peterson.res.nondet_6 Int) - (peterson.res.nondet_5 Int) - (peterson.res.nondet_4 Int) - (peterson.res.nondet_3 Int) - (peterson.res.nondet_2 Int) - (peterson.res.nondet_1 Int) - (peterson.res.nondet_0 Int) - (peterson.usr.x0_a_1 Int) - (peterson.usr.x1_a_1 Int) - (peterson.usr.x2_a_1 Int) - (peterson.usr.x3_a_1 Int) - (peterson.usr.x4_a_1 Int) - (peterson.usr.x5_a_1 Int) - (peterson.usr.x6_a_1 Int) - (peterson.usr.x7_a_1 Int) - (peterson.usr.x8_a_1 Int) - (peterson.usr.x9_a_1 Int) - (peterson.usr.x10_a_1 Int) - (peterson.usr.x11_a_1 Int) - (peterson.usr.x12_a_1 Int) - (peterson.usr.x13_a_1 Int) - (peterson.res.init_flag_a_1 Bool) - (peterson.usr.e01_a_0 Bool) - (peterson.usr.e02_a_0 Bool) - (peterson.usr.e03_a_0 Bool) - (peterson.usr.e04_a_0 Bool) - (peterson.usr.e05_a_0 Bool) - (peterson.usr.e06_a_0 Bool) - (peterson.usr.e07_a_0 Bool) - (peterson.usr.e08_a_0 Bool) - (peterson.usr.e09_a_0 Bool) - (peterson.usr.e10_a_0 Bool) - (peterson.usr.e11_a_0 Bool) - (peterson.usr.e12_a_0 Bool) - (peterson.usr.x0_a_0 Int) - (peterson.usr.x1_a_0 Int) - (peterson.usr.x2_a_0 Int) - (peterson.usr.x3_a_0 Int) - (peterson.usr.x4_a_0 Int) - (peterson.usr.x5_a_0 Int) - (peterson.usr.x6_a_0 Int) - (peterson.usr.x7_a_0 Int) - (peterson.usr.x8_a_0 Int) - (peterson.usr.x9_a_0 Int) - (peterson.usr.x10_a_0 Int) - (peterson.usr.x11_a_0 Int) - (peterson.usr.x12_a_0 Int) - (peterson.usr.x13_a_0 Int) - (peterson.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (and (>= peterson.usr.x3_a_0 1) (>= peterson.usr.x5_a_0 1)))) - (let - ((X2 Bool (and (>= peterson.usr.x0_a_0 1) (>= peterson.usr.x4_a_0 1)))) - (and - (= - peterson.usr.x0_a_1 - (ite - peterson.usr.e01_a_1 - (ite X2 (- peterson.usr.x0_a_0 1) peterson.usr.x0_a_0) - (ite - peterson.usr.e06_a_1 - (ite X1 (+ peterson.usr.x0_a_0 1) peterson.usr.x0_a_0) - peterson.usr.x0_a_0))) - (= - peterson.usr.x4_a_1 - (ite - peterson.usr.e01_a_1 - (ite X2 (- peterson.usr.x4_a_0 1) peterson.usr.x4_a_0) - (ite - peterson.usr.e06_a_1 - (ite X1 (+ peterson.usr.x4_a_0 1) peterson.usr.x4_a_0) - peterson.usr.x4_a_0))) - (let - ((X3 Bool (and (>= peterson.usr.x2_a_0 1) (>= peterson.usr.x6_a_0 1)))) - (let - ((X4 Bool (and (>= peterson.usr.x2_a_0 1) (>= peterson.usr.x9_a_0 1)))) - (and - (= - peterson.usr.x3_a_1 - (ite - peterson.usr.e04_a_1 - (ite X4 (+ peterson.usr.x3_a_0 1) peterson.usr.x3_a_0) - (ite - peterson.usr.e05_a_1 - (ite X3 (+ peterson.usr.x3_a_0 1) peterson.usr.x3_a_0) - (ite - peterson.usr.e06_a_1 - (ite X1 (- peterson.usr.x3_a_0 1) peterson.usr.x3_a_0) - peterson.usr.x3_a_0)))) - (let - ((X5 Bool (and (>= peterson.usr.x1_a_0 1) (>= peterson.usr.x7_a_0 1)))) - (let - ((X6 Bool (and (>= peterson.usr.x1_a_0 1) (>= peterson.usr.x6_a_0 1)))) - (and - (= - peterson.usr.x2_a_1 - (ite - peterson.usr.e02_a_1 - (ite X6 (+ peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) - (ite - peterson.usr.e03_a_1 - (ite X5 (+ peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) - (ite - peterson.usr.e04_a_1 - (ite X4 (- peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) - (ite - peterson.usr.e05_a_1 - (ite X3 (- peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) - peterson.usr.x2_a_0))))) - (= - peterson.usr.x1_a_1 - (ite - peterson.usr.e01_a_1 - (ite X2 (+ peterson.usr.x1_a_0 1) peterson.usr.x1_a_0) - (ite - peterson.usr.e02_a_1 - (ite X6 (- peterson.usr.x1_a_0 1) peterson.usr.x1_a_0) - (ite - peterson.usr.e03_a_1 - (ite X5 (- peterson.usr.x1_a_0 1) peterson.usr.x1_a_0) - peterson.usr.x1_a_0)))) - (let - ((X7 - Bool (and (>= peterson.usr.x7_a_0 1) (>= peterson.usr.x11_a_0 1)))) - (and - (= - peterson.usr.x7_a_1 - (ite - peterson.usr.e02_a_1 - (ite X6 (+ peterson.usr.x7_a_0 1) peterson.usr.x7_a_0) - (ite - peterson.usr.e08_a_1 - (ite X7 (- peterson.usr.x7_a_0 1) peterson.usr.x7_a_0) - peterson.usr.x7_a_0))) - (let - ((X8 - Bool (and (>= peterson.usr.x6_a_0 1) (>= peterson.usr.x11_a_0 1)))) - (let - ((X9 - Bool (and - (>= peterson.usr.x9_a_0 1) - (>= peterson.usr.x10_a_0 1)))) - (and - (= - peterson.usr.x11_a_1 - (ite - peterson.usr.e07_a_1 - (ite X9 (+ peterson.usr.x11_a_0 1) peterson.usr.x11_a_0) - (ite - peterson.usr.e08_a_1 - (ite X7 (- peterson.usr.x11_a_0 1) peterson.usr.x11_a_0) - (ite - peterson.usr.e09_a_1 - (ite X8 (- peterson.usr.x11_a_0 1) peterson.usr.x11_a_0) - peterson.usr.x11_a_0)))) - (let - ((X10 - Bool (and - (>= peterson.usr.x8_a_0 1) - (>= peterson.usr.x13_a_0 1)))) - (and - (= - peterson.usr.x9_a_1 - (ite - peterson.usr.e07_a_1 - (ite X9 (- peterson.usr.x9_a_0 1) peterson.usr.x9_a_0) - (ite - peterson.usr.e12_a_1 - (ite X10 (+ peterson.usr.x9_a_0 1) peterson.usr.x9_a_0) - peterson.usr.x9_a_0))) - (= - peterson.usr.x8_a_1 - (ite - peterson.usr.e07_a_1 - (ite X9 (+ peterson.usr.x8_a_0 1) peterson.usr.x8_a_0) - (ite - peterson.usr.e12_a_1 - (ite X10 (- peterson.usr.x8_a_0 1) peterson.usr.x8_a_0) - peterson.usr.x8_a_0))) - (let - ((X11 - Bool (and - (>= peterson.usr.x7_a_0 1) - (>= peterson.usr.x12_a_0 1)))) - (let - ((X12 - Bool (and - (>= peterson.usr.x4_a_0 1) - (>= peterson.usr.x12_a_0 1)))) - (and - (= - peterson.usr.x13_a_1 - (ite - peterson.usr.e10_a_1 - (ite X12 (+ peterson.usr.x13_a_0 1) peterson.usr.x13_a_0) - (ite - peterson.usr.e11_a_1 - (ite X11 (+ peterson.usr.x13_a_0 1) peterson.usr.x13_a_0) - (ite - peterson.usr.e12_a_1 - (ite - X10 - (- peterson.usr.x13_a_0 1) - peterson.usr.x13_a_0) - peterson.usr.x13_a_0)))) - (= - peterson.usr.x12_a_1 - (ite - peterson.usr.e08_a_1 - (ite X7 (+ peterson.usr.x12_a_0 1) peterson.usr.x12_a_0) - (ite - peterson.usr.e09_a_1 - (ite X8 (+ peterson.usr.x12_a_0 1) peterson.usr.x12_a_0) - (ite - peterson.usr.e10_a_1 - (ite - X12 - (- peterson.usr.x12_a_0 1) - peterson.usr.x12_a_0) - (ite - peterson.usr.e11_a_1 - (ite - X11 - (- peterson.usr.x12_a_0 1) - peterson.usr.x12_a_0) - peterson.usr.x12_a_0))))) - (= - peterson.usr.x6_a_1 - (ite - peterson.usr.e02_a_1 - (ite X6 (- peterson.usr.x6_a_0 1) peterson.usr.x6_a_0) - (ite - peterson.usr.e08_a_1 - (ite X7 (+ peterson.usr.x6_a_0 1) peterson.usr.x6_a_0) - peterson.usr.x6_a_0))) - (= - peterson.usr.x10_a_1 - (ite - peterson.usr.e07_a_1 - (ite X9 (- peterson.usr.x10_a_0 1) peterson.usr.x10_a_0) - (ite - peterson.usr.e12_a_1 - (ite X10 (+ peterson.usr.x10_a_0 1) peterson.usr.x10_a_0) - peterson.usr.x10_a_0))) - (= - peterson.usr.x5_a_1 - (ite - peterson.usr.e01_a_1 - (ite X2 (+ peterson.usr.x5_a_0 1) peterson.usr.x5_a_0) - (ite - peterson.usr.e06_a_1 - (ite X1 (- peterson.usr.x5_a_0 1) peterson.usr.x5_a_0) - peterson.usr.x5_a_0))) - (not peterson.res.init_flag_a_1)))))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.abs_11_a_0 Int) - (top.res.abs_12_a_0 Int) - (top.res.abs_13_a_0 Int) - (top.res.abs_14_a_0 Bool) - (top.res.abs_15_a_0 Bool) - (top.res.abs_16_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_0_a_0)) - (and - (= top.res.abs_15_a_0 (and top.res.abs_14_a_0 (< X1 32767))) - (let - ((X2 Bool top.res.abs_16_a_0)) - (and - (= top.usr.OK_a_0 (=> X2 (>= X1 0))) - (__node_init_peterson_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.abs_13_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_15_a_0 - top.res.abs_16_a_0 - top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_14_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.abs_9_a_1 Int) - (top.res.abs_10_a_1 Int) - (top.res.abs_11_a_1 Int) - (top.res.abs_12_a_1 Int) - (top.res.abs_13_a_1 Int) - (top.res.abs_14_a_1 Bool) - (top.res.abs_15_a_1 Bool) - (top.res.abs_16_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.abs_11_a_0 Int) - (top.res.abs_12_a_0 Int) - (top.res.abs_13_a_0 Int) - (top.res.abs_14_a_0 Bool) - (top.res.abs_15_a_0 Bool) - (top.res.abs_16_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_0_a_1)) - (and - (= top.res.abs_15_a_1 (and top.res.abs_14_a_1 (< X1 32767))) - (let - ((X2 Bool top.res.abs_16_a_1)) - (and - (= top.usr.OK_a_1 (=> X2 (>= X1 0))) - (__node_trans_peterson_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.abs_12_a_1 - top.res.abs_13_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.abs_13_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_15_a_1 - top.res.abs_16_a_1 - top.res.inst_1_a_1 - top.res.abs_15_a_0 - top.res.abs_16_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_14_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_14_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.abs_11 Int) - (top.res.abs_12 Int) - (top.res.abs_13 Int) - (top.res.abs_14 Bool) - (top.res.abs_15 Bool) - (top.res.abs_16 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.abs_10 Int) -(declare-primed-var top.res.abs_11 Int) -(declare-primed-var top.res.abs_12 Int) -(declare-primed-var top.res.abs_13 Int) -(declare-primed-var top.res.abs_14 Bool) -(declare-primed-var top.res.abs_15 Bool) -(declare-primed-var top.res.abs_16 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.abs_11 Int) - (top.res.abs_12 Int) - (top.res.abs_13 Int) - (top.res.abs_14 Bool) - (top.res.abs_15 Bool) - (top.res.abs_16 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_0)) - (and - (= top.res.abs_15 (and top.res.abs_14 (< X1 32767))) - (let - ((X2 Bool top.res.abs_16)) - (and - (= top.usr.OK (=> X2 (>= X1 0))) - (__node_init_peterson_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.abs_10 - top.res.abs_11 - top.res.abs_12 - top.res.abs_13 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_15 top.res.abs_16 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_14 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.abs_11 Int) - (top.res.abs_12 Int) - (top.res.abs_13 Int) - (top.res.abs_14 Bool) - (top.res.abs_15 Bool) - (top.res.abs_16 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.abs_9! Int) - (top.res.abs_10! Int) - (top.res.abs_11! Int) - (top.res.abs_12! Int) - (top.res.abs_13! Int) - (top.res.abs_14! Bool) - (top.res.abs_15! Bool) - (top.res.abs_16! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Int top.res.abs_0!)) - (and - (= top.res.abs_15! (and top.res.abs_14! (< X1 32767))) - (let - ((X2 Bool top.res.abs_16!)) - (and - (= top.usr.OK! (=> X2 (>= X1 0))) - (__node_trans_peterson_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.abs_10! - top.res.abs_11! - top.res.abs_12! - top.res.abs_13! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.abs_10 - top.res.abs_11 - top.res.abs_12 - top.res.abs_13 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_15! - top.res.abs_16! - top.res.inst_1! - top.res.abs_15 - top.res.abs_16 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_14! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_14 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.abs_11 Int) - (top.res.abs_12 Int) - (top.res.abs_13 Int) - (top.res.abs_14 Bool) - (top.res.abs_15 Bool) - (top.res.abs_16 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_peterson_0 ((peterson.usr.e01_a_0 Bool) (peterson.usr.e02_a_0 Bool) (peterson.usr.e03_a_0 Bool) (peterson.usr.e04_a_0 Bool) (peterson.usr.e05_a_0 Bool) (peterson.usr.e06_a_0 Bool) (peterson.usr.e07_a_0 Bool) (peterson.usr.e08_a_0 Bool) (peterson.usr.e09_a_0 Bool) (peterson.usr.e10_a_0 Bool) (peterson.usr.e11_a_0 Bool) (peterson.usr.e12_a_0 Bool) (peterson.res.nondet_23 Int) (peterson.res.nondet_22 Int) (peterson.res.nondet_21 Int) (peterson.res.nondet_20 Int) (peterson.res.nondet_19 Int) (peterson.res.nondet_18 Int) (peterson.res.nondet_17 Int) (peterson.res.nondet_16 Int) (peterson.res.nondet_15 Int) (peterson.res.nondet_14 Int) (peterson.res.nondet_13 Int) (peterson.res.nondet_12 Int) (peterson.res.nondet_11 Int) (peterson.res.nondet_10 Int) (peterson.res.nondet_9 Int) (peterson.res.nondet_8 Int) (peterson.res.nondet_7 Int) (peterson.res.nondet_6 Int) (peterson.res.nondet_5 Int) (peterson.res.nondet_4 Int) (peterson.res.nondet_3 Int) (peterson.res.nondet_2 Int) (peterson.res.nondet_1 Int) (peterson.res.nondet_0 Int) (peterson.usr.x0_a_0 Int) (peterson.usr.x1_a_0 Int) (peterson.usr.x2_a_0 Int) (peterson.usr.x3_a_0 Int) (peterson.usr.x4_a_0 Int) (peterson.usr.x5_a_0 Int) (peterson.usr.x6_a_0 Int) (peterson.usr.x7_a_0 Int) (peterson.usr.x8_a_0 Int) (peterson.usr.x9_a_0 Int) (peterson.usr.x10_a_0 Int) (peterson.usr.x11_a_0 Int) (peterson.usr.x12_a_0 Int) (peterson.usr.x13_a_0 Int) (peterson.res.init_flag_a_0 Bool)) Bool + (and (= peterson.usr.x0_a_0 1) (let ((X1 (let ((X1 peterson.res.nondet_1) (X2 peterson.res.nondet_0)) (and (>= X2 1) (>= X1 1))))) (and (= peterson.usr.x4_a_0 1) (let ((X2 (let ((X2 peterson.res.nondet_11) (X3 peterson.res.nondet_10)) (and (>= X3 1) (>= X2 1))))) (and (= peterson.usr.x3_a_0 0) (let ((X3 (let ((X3 peterson.res.nondet_7) (X4 peterson.res.nondet_6)) (and (>= X4 1) (>= X3 1))))) (and (= peterson.usr.x2_a_0 0) (let ((X4 (let ((X4 peterson.res.nondet_3) (X5 peterson.res.nondet_2)) (and (>= X5 1) (>= X4 1))))) (and (= peterson.usr.x1_a_0 0) (let ((X5 (let ((X5 peterson.res.nondet_5) (X6 peterson.res.nondet_4)) (and (>= X6 1) (>= X5 1))))) (and (= peterson.usr.x7_a_0 1) (let ((X6 (let ((X6 peterson.res.nondet_15) (X7 peterson.res.nondet_14)) (and (>= X7 1) (>= X6 1))))) (and (= peterson.usr.x11_a_0 0) (let ((X7 (let ((X7 peterson.res.nondet_13) (X8 peterson.res.nondet_12)) (and (>= X8 1) (>= X7 1))))) (and (= peterson.usr.x9_a_0 1) (let ((X8 (let ((X8 peterson.res.nondet_23) (X9 peterson.res.nondet_22)) (and (>= X9 1) (>= X8 1))))) (and (= peterson.usr.x8_a_0 0) (= peterson.usr.x13_a_0 0) (let ((X9 (let ((X9 peterson.res.nondet_19) (X10 peterson.res.nondet_18)) (and (>= X10 1) (>= X9 1))))) (and (= peterson.usr.x12_a_0 0) (let ((X10 (let ((X10 peterson.res.nondet_17) (X11 peterson.res.nondet_16)) (and (>= X11 1) (>= X10 1))))) (and (= peterson.usr.x6_a_0 0) (let ((X11 (let ((X11 peterson.res.nondet_21) (X12 peterson.res.nondet_20)) (and (>= X12 1) (>= X11 1))))) (and (= peterson.usr.x10_a_0 1) (let ((X12 (let ((X12 peterson.res.nondet_9) (X13 peterson.res.nondet_8)) (and (>= X13 1) (>= X12 1))))) (and (= peterson.usr.x5_a_0 0) peterson.res.init_flag_a_0)))))))))))))))))))))))))) +(define-fun __node_trans_peterson_0 ((peterson.usr.e01_a_1 Bool) (peterson.usr.e02_a_1 Bool) (peterson.usr.e03_a_1 Bool) (peterson.usr.e04_a_1 Bool) (peterson.usr.e05_a_1 Bool) (peterson.usr.e06_a_1 Bool) (peterson.usr.e07_a_1 Bool) (peterson.usr.e08_a_1 Bool) (peterson.usr.e09_a_1 Bool) (peterson.usr.e10_a_1 Bool) (peterson.usr.e11_a_1 Bool) (peterson.usr.e12_a_1 Bool) (peterson.res.nondet_23 Int) (peterson.res.nondet_22 Int) (peterson.res.nondet_21 Int) (peterson.res.nondet_20 Int) (peterson.res.nondet_19 Int) (peterson.res.nondet_18 Int) (peterson.res.nondet_17 Int) (peterson.res.nondet_16 Int) (peterson.res.nondet_15 Int) (peterson.res.nondet_14 Int) (peterson.res.nondet_13 Int) (peterson.res.nondet_12 Int) (peterson.res.nondet_11 Int) (peterson.res.nondet_10 Int) (peterson.res.nondet_9 Int) (peterson.res.nondet_8 Int) (peterson.res.nondet_7 Int) (peterson.res.nondet_6 Int) (peterson.res.nondet_5 Int) (peterson.res.nondet_4 Int) (peterson.res.nondet_3 Int) (peterson.res.nondet_2 Int) (peterson.res.nondet_1 Int) (peterson.res.nondet_0 Int) (peterson.usr.x0_a_1 Int) (peterson.usr.x1_a_1 Int) (peterson.usr.x2_a_1 Int) (peterson.usr.x3_a_1 Int) (peterson.usr.x4_a_1 Int) (peterson.usr.x5_a_1 Int) (peterson.usr.x6_a_1 Int) (peterson.usr.x7_a_1 Int) (peterson.usr.x8_a_1 Int) (peterson.usr.x9_a_1 Int) (peterson.usr.x10_a_1 Int) (peterson.usr.x11_a_1 Int) (peterson.usr.x12_a_1 Int) (peterson.usr.x13_a_1 Int) (peterson.res.init_flag_a_1 Bool) (peterson.usr.e01_a_0 Bool) (peterson.usr.e02_a_0 Bool) (peterson.usr.e03_a_0 Bool) (peterson.usr.e04_a_0 Bool) (peterson.usr.e05_a_0 Bool) (peterson.usr.e06_a_0 Bool) (peterson.usr.e07_a_0 Bool) (peterson.usr.e08_a_0 Bool) (peterson.usr.e09_a_0 Bool) (peterson.usr.e10_a_0 Bool) (peterson.usr.e11_a_0 Bool) (peterson.usr.e12_a_0 Bool) (peterson.usr.x0_a_0 Int) (peterson.usr.x1_a_0 Int) (peterson.usr.x2_a_0 Int) (peterson.usr.x3_a_0 Int) (peterson.usr.x4_a_0 Int) (peterson.usr.x5_a_0 Int) (peterson.usr.x6_a_0 Int) (peterson.usr.x7_a_0 Int) (peterson.usr.x8_a_0 Int) (peterson.usr.x9_a_0 Int) (peterson.usr.x10_a_0 Int) (peterson.usr.x11_a_0 Int) (peterson.usr.x12_a_0 Int) (peterson.usr.x13_a_0 Int) (peterson.res.init_flag_a_0 Bool)) Bool + (let ((X1 (and (>= peterson.usr.x3_a_0 1) (>= peterson.usr.x5_a_0 1)))) (let ((X2 (and (>= peterson.usr.x0_a_0 1) (>= peterson.usr.x4_a_0 1)))) (and (= peterson.usr.x0_a_1 (ite peterson.usr.e01_a_1 (ite X2 (- peterson.usr.x0_a_0 1) peterson.usr.x0_a_0) (ite peterson.usr.e06_a_1 (ite X1 (+ peterson.usr.x0_a_0 1) peterson.usr.x0_a_0) peterson.usr.x0_a_0))) (= peterson.usr.x4_a_1 (ite peterson.usr.e01_a_1 (ite X2 (- peterson.usr.x4_a_0 1) peterson.usr.x4_a_0) (ite peterson.usr.e06_a_1 (ite X1 (+ peterson.usr.x4_a_0 1) peterson.usr.x4_a_0) peterson.usr.x4_a_0))) (let ((X3 (and (>= peterson.usr.x2_a_0 1) (>= peterson.usr.x6_a_0 1)))) (let ((X4 (and (>= peterson.usr.x2_a_0 1) (>= peterson.usr.x9_a_0 1)))) (and (= peterson.usr.x3_a_1 (ite peterson.usr.e04_a_1 (ite X4 (+ peterson.usr.x3_a_0 1) peterson.usr.x3_a_0) (ite peterson.usr.e05_a_1 (ite X3 (+ peterson.usr.x3_a_0 1) peterson.usr.x3_a_0) (ite peterson.usr.e06_a_1 (ite X1 (- peterson.usr.x3_a_0 1) peterson.usr.x3_a_0) peterson.usr.x3_a_0)))) (let ((X5 (and (>= peterson.usr.x1_a_0 1) (>= peterson.usr.x7_a_0 1)))) (let ((X6 (and (>= peterson.usr.x1_a_0 1) (>= peterson.usr.x6_a_0 1)))) (and (= peterson.usr.x2_a_1 (ite peterson.usr.e02_a_1 (ite X6 (+ peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) (ite peterson.usr.e03_a_1 (ite X5 (+ peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) (ite peterson.usr.e04_a_1 (ite X4 (- peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) (ite peterson.usr.e05_a_1 (ite X3 (- peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) peterson.usr.x2_a_0))))) (= peterson.usr.x1_a_1 (ite peterson.usr.e01_a_1 (ite X2 (+ peterson.usr.x1_a_0 1) peterson.usr.x1_a_0) (ite peterson.usr.e02_a_1 (ite X6 (- peterson.usr.x1_a_0 1) peterson.usr.x1_a_0) (ite peterson.usr.e03_a_1 (ite X5 (- peterson.usr.x1_a_0 1) peterson.usr.x1_a_0) peterson.usr.x1_a_0)))) (let ((X7 (and (>= peterson.usr.x7_a_0 1) (>= peterson.usr.x11_a_0 1)))) (and (= peterson.usr.x7_a_1 (ite peterson.usr.e02_a_1 (ite X6 (+ peterson.usr.x7_a_0 1) peterson.usr.x7_a_0) (ite peterson.usr.e08_a_1 (ite X7 (- peterson.usr.x7_a_0 1) peterson.usr.x7_a_0) peterson.usr.x7_a_0))) (let ((X8 (and (>= peterson.usr.x6_a_0 1) (>= peterson.usr.x11_a_0 1)))) (let ((X9 (and (>= peterson.usr.x9_a_0 1) (>= peterson.usr.x10_a_0 1)))) (and (= peterson.usr.x11_a_1 (ite peterson.usr.e07_a_1 (ite X9 (+ peterson.usr.x11_a_0 1) peterson.usr.x11_a_0) (ite peterson.usr.e08_a_1 (ite X7 (- peterson.usr.x11_a_0 1) peterson.usr.x11_a_0) (ite peterson.usr.e09_a_1 (ite X8 (- peterson.usr.x11_a_0 1) peterson.usr.x11_a_0) peterson.usr.x11_a_0)))) (let ((X10 (and (>= peterson.usr.x8_a_0 1) (>= peterson.usr.x13_a_0 1)))) (and (= peterson.usr.x9_a_1 (ite peterson.usr.e07_a_1 (ite X9 (- peterson.usr.x9_a_0 1) peterson.usr.x9_a_0) (ite peterson.usr.e12_a_1 (ite X10 (+ peterson.usr.x9_a_0 1) peterson.usr.x9_a_0) peterson.usr.x9_a_0))) (= peterson.usr.x8_a_1 (ite peterson.usr.e07_a_1 (ite X9 (+ peterson.usr.x8_a_0 1) peterson.usr.x8_a_0) (ite peterson.usr.e12_a_1 (ite X10 (- peterson.usr.x8_a_0 1) peterson.usr.x8_a_0) peterson.usr.x8_a_0))) (let ((X11 (and (>= peterson.usr.x7_a_0 1) (>= peterson.usr.x12_a_0 1)))) (let ((X12 (and (>= peterson.usr.x4_a_0 1) (>= peterson.usr.x12_a_0 1)))) (and (= peterson.usr.x13_a_1 (ite peterson.usr.e10_a_1 (ite X12 (+ peterson.usr.x13_a_0 1) peterson.usr.x13_a_0) (ite peterson.usr.e11_a_1 (ite X11 (+ peterson.usr.x13_a_0 1) peterson.usr.x13_a_0) (ite peterson.usr.e12_a_1 (ite X10 (- peterson.usr.x13_a_0 1) peterson.usr.x13_a_0) peterson.usr.x13_a_0)))) (= peterson.usr.x12_a_1 (ite peterson.usr.e08_a_1 (ite X7 (+ peterson.usr.x12_a_0 1) peterson.usr.x12_a_0) (ite peterson.usr.e09_a_1 (ite X8 (+ peterson.usr.x12_a_0 1) peterson.usr.x12_a_0) (ite peterson.usr.e10_a_1 (ite X12 (- peterson.usr.x12_a_0 1) peterson.usr.x12_a_0) (ite peterson.usr.e11_a_1 (ite X11 (- peterson.usr.x12_a_0 1) peterson.usr.x12_a_0) peterson.usr.x12_a_0))))) (= peterson.usr.x6_a_1 (ite peterson.usr.e02_a_1 (ite X6 (- peterson.usr.x6_a_0 1) peterson.usr.x6_a_0) (ite peterson.usr.e08_a_1 (ite X7 (+ peterson.usr.x6_a_0 1) peterson.usr.x6_a_0) peterson.usr.x6_a_0))) (= peterson.usr.x10_a_1 (ite peterson.usr.e07_a_1 (ite X9 (- peterson.usr.x10_a_0 1) peterson.usr.x10_a_0) (ite peterson.usr.e12_a_1 (ite X10 (+ peterson.usr.x10_a_0 1) peterson.usr.x10_a_0) peterson.usr.x10_a_0))) (= peterson.usr.x5_a_1 (ite peterson.usr.e01_a_1 (ite X2 (+ peterson.usr.x5_a_0 1) peterson.usr.x5_a_0) (ite peterson.usr.e06_a_1 (ite X1 (- peterson.usr.x5_a_0 1) peterson.usr.x5_a_0) peterson.usr.x5_a_0))) (not peterson.res.init_flag_a_1))))))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.abs_11_a_0 Int) (top.res.abs_12_a_0 Int) (top.res.abs_13_a_0 Int) (top.res.abs_14_a_0 Bool) (top.res.abs_15_a_0 Bool) (top.res.abs_16_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_0)) (and (= top.res.abs_15_a_0 (and top.res.abs_14_a_0 (< X1 32767))) (let ((X2 top.res.abs_16_a_0)) (and (= top.usr.OK_a_0 (=> X2 (>= X1 0))) (__node_init_peterson_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.abs_13_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_15_a_0 top.res.abs_16_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_14_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.abs_9_a_1 Int) (top.res.abs_10_a_1 Int) (top.res.abs_11_a_1 Int) (top.res.abs_12_a_1 Int) (top.res.abs_13_a_1 Int) (top.res.abs_14_a_1 Bool) (top.res.abs_15_a_1 Bool) (top.res.abs_16_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.abs_11_a_0 Int) (top.res.abs_12_a_0 Int) (top.res.abs_13_a_0 Int) (top.res.abs_14_a_0 Bool) (top.res.abs_15_a_0 Bool) (top.res.abs_16_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_1)) (and (= top.res.abs_15_a_1 (and top.res.abs_14_a_1 (< X1 32767))) (let ((X2 top.res.abs_16_a_1)) (and (= top.usr.OK_a_1 (=> X2 (>= X1 0))) (__node_trans_peterson_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.abs_12_a_1 top.res.abs_13_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.abs_13_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_15_a_1 top.res.abs_16_a_1 top.res.inst_1_a_1 top.res.abs_15_a_0 top.res.abs_16_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_14_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_14_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.abs_11 Int) (top.res.abs_12 Int) (top.res.abs_13 Int) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.abs_11 Int) (top.res.abs_12 Int) (top.res.abs_13 Int) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_0)) (and (= top.res.abs_15 (and top.res.abs_14 (< X1 32767))) (let ((X2 top.res.abs_16)) (and (= top.usr.OK (=> X2 (>= X1 0))) (__node_init_peterson_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.abs_10 top.res.abs_11 top.res.abs_12 top.res.abs_13 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_15 top.res.abs_16 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_14 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.abs_11 Int) (top.res.abs_12 Int) (top.res.abs_13 Int) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.abs_9! Int) (top.res.abs_10! Int) (top.res.abs_11! Int) (top.res.abs_12! Int) (top.res.abs_13! Int) (top.res.abs_14! Bool) (top.res.abs_15! Bool) (top.res.abs_16! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_0!)) (and (= top.res.abs_15! (and top.res.abs_14! (< X1 32767))) (let ((X2 top.res.abs_16!)) (and (= top.usr.OK! (=> X2 (>= X1 0))) (__node_trans_peterson_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.abs_10! top.res.abs_11! top.res.abs_12! top.res.abs_13! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.abs_10 top.res.abs_11 top.res.abs_12 top.res.abs_13 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_15! top.res.abs_16! top.res.inst_1! top.res.abs_15 top.res.abs_16 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_14! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_14 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.abs_11 Int) (top.res.abs_12 Int) (top.res.abs_13 Int) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/peterson_1_e7_4234.sl b/benchmarks/LIA/Lustre/peterson_1_e7_4234.sl index 0dcb777..eefdf59 100644 --- a/benchmarks/LIA/Lustre/peterson_1_e7_4234.sl +++ b/benchmarks/LIA/Lustre/peterson_1_e7_4234.sl @@ -1,1978 +1,55 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_peterson_0 ( - (peterson.usr.e01_a_0 Bool) - (peterson.usr.e02_a_0 Bool) - (peterson.usr.e03_a_0 Bool) - (peterson.usr.e04_a_0 Bool) - (peterson.usr.e05_a_0 Bool) - (peterson.usr.e06_a_0 Bool) - (peterson.usr.e07_a_0 Bool) - (peterson.usr.e08_a_0 Bool) - (peterson.usr.e09_a_0 Bool) - (peterson.usr.e10_a_0 Bool) - (peterson.usr.e11_a_0 Bool) - (peterson.usr.e12_a_0 Bool) - (peterson.res.nondet_23 Int) - (peterson.res.nondet_22 Int) - (peterson.res.nondet_21 Int) - (peterson.res.nondet_20 Int) - (peterson.res.nondet_19 Int) - (peterson.res.nondet_18 Int) - (peterson.res.nondet_17 Int) - (peterson.res.nondet_16 Int) - (peterson.res.nondet_15 Int) - (peterson.res.nondet_14 Int) - (peterson.res.nondet_13 Int) - (peterson.res.nondet_12 Int) - (peterson.res.nondet_11 Int) - (peterson.res.nondet_10 Int) - (peterson.res.nondet_9 Int) - (peterson.res.nondet_8 Int) - (peterson.res.nondet_7 Int) - (peterson.res.nondet_6 Int) - (peterson.res.nondet_5 Int) - (peterson.res.nondet_4 Int) - (peterson.res.nondet_3 Int) - (peterson.res.nondet_2 Int) - (peterson.res.nondet_1 Int) - (peterson.res.nondet_0 Int) - (peterson.usr.x0_a_0 Int) - (peterson.usr.x1_a_0 Int) - (peterson.usr.x2_a_0 Int) - (peterson.usr.x3_a_0 Int) - (peterson.usr.x4_a_0 Int) - (peterson.usr.x5_a_0 Int) - (peterson.usr.x6_a_0 Int) - (peterson.usr.x7_a_0 Int) - (peterson.usr.x8_a_0 Int) - (peterson.usr.x9_a_0 Int) - (peterson.usr.x10_a_0 Int) - (peterson.usr.x11_a_0 Int) - (peterson.usr.x12_a_0 Int) - (peterson.usr.x13_a_0 Int) - (peterson.res.init_flag_a_0 Bool) - ) Bool - - (and - (= peterson.usr.x0_a_0 1) - (let - ((X1 - Bool (let - ((X1 Int peterson.res.nondet_1) (X2 Int peterson.res.nondet_0)) - (and (>= X2 1) (>= X1 1))))) - (and - (= peterson.usr.x4_a_0 1) - (let - ((X2 - Bool (let - ((X2 Int peterson.res.nondet_11) - (X3 Int peterson.res.nondet_10)) - (and (>= X3 1) (>= X2 1))))) - (and - (= peterson.usr.x3_a_0 0) - (let - ((X3 - Bool (let - ((X3 Int peterson.res.nondet_7) - (X4 Int peterson.res.nondet_6)) - (and (>= X4 1) (>= X3 1))))) - (and - (= peterson.usr.x2_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int peterson.res.nondet_3) - (X5 Int peterson.res.nondet_2)) - (and (>= X5 1) (>= X4 1))))) - (and - (= peterson.usr.x1_a_0 0) - (let - ((X5 - Bool (let - ((X5 Int peterson.res.nondet_5) - (X6 Int peterson.res.nondet_4)) - (and (>= X6 1) (>= X5 1))))) - (and - (= peterson.usr.x7_a_0 1) - (let - ((X6 - Bool (let - ((X6 Int peterson.res.nondet_15) - (X7 Int peterson.res.nondet_14)) - (and (>= X7 1) (>= X6 1))))) - (and - (= peterson.usr.x11_a_0 0) - (let - ((X7 - Bool (let - ((X7 Int peterson.res.nondet_13) - (X8 Int peterson.res.nondet_12)) - (and (>= X8 1) (>= X7 1))))) - (and - (= peterson.usr.x9_a_0 1) - (let - ((X8 - Bool (let - ((X8 Int peterson.res.nondet_23) - (X9 Int peterson.res.nondet_22)) - (and (>= X9 1) (>= X8 1))))) - (and - (= peterson.usr.x8_a_0 0) - (= peterson.usr.x13_a_0 0) - (let - ((X9 - Bool (let - ((X9 Int peterson.res.nondet_19) - (X10 Int peterson.res.nondet_18)) - (and (>= X10 1) (>= X9 1))))) - (and - (= peterson.usr.x12_a_0 0) - (let - ((X10 - Bool (let - ((X10 Int peterson.res.nondet_17) - (X11 Int peterson.res.nondet_16)) - (and (>= X11 1) (>= X10 1))))) - (and - (= peterson.usr.x6_a_0 0) - (let - ((X11 - Bool (let - ((X11 Int peterson.res.nondet_21) - (X12 Int peterson.res.nondet_20)) - (and (>= X12 1) (>= X11 1))))) - (and - (= peterson.usr.x10_a_0 1) - (let - ((X12 - Bool (let - ((X12 Int peterson.res.nondet_9) - (X13 Int peterson.res.nondet_8)) - (and (>= X13 1) (>= X12 1))))) - (and - (= peterson.usr.x5_a_0 0) - peterson.res.init_flag_a_0))))))))))))))))))))))))) -) - -(define-fun - __node_trans_peterson_0 ( - (peterson.usr.e01_a_1 Bool) - (peterson.usr.e02_a_1 Bool) - (peterson.usr.e03_a_1 Bool) - (peterson.usr.e04_a_1 Bool) - (peterson.usr.e05_a_1 Bool) - (peterson.usr.e06_a_1 Bool) - (peterson.usr.e07_a_1 Bool) - (peterson.usr.e08_a_1 Bool) - (peterson.usr.e09_a_1 Bool) - (peterson.usr.e10_a_1 Bool) - (peterson.usr.e11_a_1 Bool) - (peterson.usr.e12_a_1 Bool) - (peterson.res.nondet_23 Int) - (peterson.res.nondet_22 Int) - (peterson.res.nondet_21 Int) - (peterson.res.nondet_20 Int) - (peterson.res.nondet_19 Int) - (peterson.res.nondet_18 Int) - (peterson.res.nondet_17 Int) - (peterson.res.nondet_16 Int) - (peterson.res.nondet_15 Int) - (peterson.res.nondet_14 Int) - (peterson.res.nondet_13 Int) - (peterson.res.nondet_12 Int) - (peterson.res.nondet_11 Int) - (peterson.res.nondet_10 Int) - (peterson.res.nondet_9 Int) - (peterson.res.nondet_8 Int) - (peterson.res.nondet_7 Int) - (peterson.res.nondet_6 Int) - (peterson.res.nondet_5 Int) - (peterson.res.nondet_4 Int) - (peterson.res.nondet_3 Int) - (peterson.res.nondet_2 Int) - (peterson.res.nondet_1 Int) - (peterson.res.nondet_0 Int) - (peterson.usr.x0_a_1 Int) - (peterson.usr.x1_a_1 Int) - (peterson.usr.x2_a_1 Int) - (peterson.usr.x3_a_1 Int) - (peterson.usr.x4_a_1 Int) - (peterson.usr.x5_a_1 Int) - (peterson.usr.x6_a_1 Int) - (peterson.usr.x7_a_1 Int) - (peterson.usr.x8_a_1 Int) - (peterson.usr.x9_a_1 Int) - (peterson.usr.x10_a_1 Int) - (peterson.usr.x11_a_1 Int) - (peterson.usr.x12_a_1 Int) - (peterson.usr.x13_a_1 Int) - (peterson.res.init_flag_a_1 Bool) - (peterson.usr.e01_a_0 Bool) - (peterson.usr.e02_a_0 Bool) - (peterson.usr.e03_a_0 Bool) - (peterson.usr.e04_a_0 Bool) - (peterson.usr.e05_a_0 Bool) - (peterson.usr.e06_a_0 Bool) - (peterson.usr.e07_a_0 Bool) - (peterson.usr.e08_a_0 Bool) - (peterson.usr.e09_a_0 Bool) - (peterson.usr.e10_a_0 Bool) - (peterson.usr.e11_a_0 Bool) - (peterson.usr.e12_a_0 Bool) - (peterson.usr.x0_a_0 Int) - (peterson.usr.x1_a_0 Int) - (peterson.usr.x2_a_0 Int) - (peterson.usr.x3_a_0 Int) - (peterson.usr.x4_a_0 Int) - (peterson.usr.x5_a_0 Int) - (peterson.usr.x6_a_0 Int) - (peterson.usr.x7_a_0 Int) - (peterson.usr.x8_a_0 Int) - (peterson.usr.x9_a_0 Int) - (peterson.usr.x10_a_0 Int) - (peterson.usr.x11_a_0 Int) - (peterson.usr.x12_a_0 Int) - (peterson.usr.x13_a_0 Int) - (peterson.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (and (>= peterson.usr.x3_a_0 1) (>= peterson.usr.x5_a_0 1)))) - (let - ((X2 Bool (and (>= peterson.usr.x0_a_0 1) (>= peterson.usr.x4_a_0 1)))) - (and - (= - peterson.usr.x0_a_1 - (ite - peterson.usr.e01_a_1 - (ite X2 (- peterson.usr.x0_a_0 1) peterson.usr.x0_a_0) - (ite - peterson.usr.e06_a_1 - (ite X1 (+ peterson.usr.x0_a_0 1) peterson.usr.x0_a_0) - peterson.usr.x0_a_0))) - (= - peterson.usr.x4_a_1 - (ite - peterson.usr.e01_a_1 - (ite X2 (- peterson.usr.x4_a_0 1) peterson.usr.x4_a_0) - (ite - peterson.usr.e06_a_1 - (ite X1 (+ peterson.usr.x4_a_0 1) peterson.usr.x4_a_0) - peterson.usr.x4_a_0))) - (let - ((X3 Bool (and (>= peterson.usr.x2_a_0 1) (>= peterson.usr.x6_a_0 1)))) - (let - ((X4 Bool (and (>= peterson.usr.x2_a_0 1) (>= peterson.usr.x9_a_0 1)))) - (and - (= - peterson.usr.x3_a_1 - (ite - peterson.usr.e04_a_1 - (ite X4 (+ peterson.usr.x3_a_0 1) peterson.usr.x3_a_0) - (ite - peterson.usr.e05_a_1 - (ite X3 (+ peterson.usr.x3_a_0 1) peterson.usr.x3_a_0) - (ite - peterson.usr.e06_a_1 - (ite X1 (- peterson.usr.x3_a_0 1) peterson.usr.x3_a_0) - peterson.usr.x3_a_0)))) - (let - ((X5 Bool (and (>= peterson.usr.x1_a_0 1) (>= peterson.usr.x7_a_0 1)))) - (let - ((X6 Bool (and (>= peterson.usr.x1_a_0 1) (>= peterson.usr.x6_a_0 1)))) - (and - (= - peterson.usr.x2_a_1 - (ite - peterson.usr.e02_a_1 - (ite X6 (+ peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) - (ite - peterson.usr.e03_a_1 - (ite X5 (+ peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) - (ite - peterson.usr.e04_a_1 - (ite X4 (- peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) - (ite - peterson.usr.e05_a_1 - (ite X3 (- peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) - peterson.usr.x2_a_0))))) - (= - peterson.usr.x1_a_1 - (ite - peterson.usr.e01_a_1 - (ite X2 (+ peterson.usr.x1_a_0 1) peterson.usr.x1_a_0) - (ite - peterson.usr.e02_a_1 - (ite X6 (- peterson.usr.x1_a_0 1) peterson.usr.x1_a_0) - (ite - peterson.usr.e03_a_1 - (ite X5 (- peterson.usr.x1_a_0 1) peterson.usr.x1_a_0) - peterson.usr.x1_a_0)))) - (let - ((X7 - Bool (and (>= peterson.usr.x7_a_0 1) (>= peterson.usr.x11_a_0 1)))) - (and - (= - peterson.usr.x7_a_1 - (ite - peterson.usr.e02_a_1 - (ite X6 (+ peterson.usr.x7_a_0 1) peterson.usr.x7_a_0) - (ite - peterson.usr.e08_a_1 - (ite X7 (- peterson.usr.x7_a_0 1) peterson.usr.x7_a_0) - peterson.usr.x7_a_0))) - (let - ((X8 - Bool (and (>= peterson.usr.x6_a_0 1) (>= peterson.usr.x11_a_0 1)))) - (let - ((X9 - Bool (and - (>= peterson.usr.x9_a_0 1) - (>= peterson.usr.x10_a_0 1)))) - (and - (= - peterson.usr.x11_a_1 - (ite - peterson.usr.e07_a_1 - (ite X9 (+ peterson.usr.x11_a_0 1) peterson.usr.x11_a_0) - (ite - peterson.usr.e08_a_1 - (ite X7 (- peterson.usr.x11_a_0 1) peterson.usr.x11_a_0) - (ite - peterson.usr.e09_a_1 - (ite X8 (- peterson.usr.x11_a_0 1) peterson.usr.x11_a_0) - peterson.usr.x11_a_0)))) - (let - ((X10 - Bool (and - (>= peterson.usr.x8_a_0 1) - (>= peterson.usr.x13_a_0 1)))) - (and - (= - peterson.usr.x9_a_1 - (ite - peterson.usr.e07_a_1 - (ite X9 (- peterson.usr.x9_a_0 1) peterson.usr.x9_a_0) - (ite - peterson.usr.e12_a_1 - (ite X10 (+ peterson.usr.x9_a_0 1) peterson.usr.x9_a_0) - peterson.usr.x9_a_0))) - (= - peterson.usr.x8_a_1 - (ite - peterson.usr.e07_a_1 - (ite X9 (+ peterson.usr.x8_a_0 1) peterson.usr.x8_a_0) - (ite - peterson.usr.e12_a_1 - (ite X10 (- peterson.usr.x8_a_0 1) peterson.usr.x8_a_0) - peterson.usr.x8_a_0))) - (let - ((X11 - Bool (and - (>= peterson.usr.x7_a_0 1) - (>= peterson.usr.x12_a_0 1)))) - (let - ((X12 - Bool (and - (>= peterson.usr.x4_a_0 1) - (>= peterson.usr.x12_a_0 1)))) - (and - (= - peterson.usr.x13_a_1 - (ite - peterson.usr.e10_a_1 - (ite X12 (+ peterson.usr.x13_a_0 1) peterson.usr.x13_a_0) - (ite - peterson.usr.e11_a_1 - (ite X11 (+ peterson.usr.x13_a_0 1) peterson.usr.x13_a_0) - (ite - peterson.usr.e12_a_1 - (ite - X10 - (- peterson.usr.x13_a_0 1) - peterson.usr.x13_a_0) - peterson.usr.x13_a_0)))) - (= - peterson.usr.x12_a_1 - (ite - peterson.usr.e08_a_1 - (ite X7 (+ peterson.usr.x12_a_0 1) peterson.usr.x12_a_0) - (ite - peterson.usr.e09_a_1 - (ite X8 (+ peterson.usr.x12_a_0 1) peterson.usr.x12_a_0) - (ite - peterson.usr.e10_a_1 - (ite - X12 - (- peterson.usr.x12_a_0 1) - peterson.usr.x12_a_0) - (ite - peterson.usr.e11_a_1 - (ite - X11 - (- peterson.usr.x12_a_0 1) - peterson.usr.x12_a_0) - peterson.usr.x12_a_0))))) - (= - peterson.usr.x6_a_1 - (ite - peterson.usr.e02_a_1 - (ite X6 (- peterson.usr.x6_a_0 1) peterson.usr.x6_a_0) - (ite - peterson.usr.e08_a_1 - (ite X7 (+ peterson.usr.x6_a_0 1) peterson.usr.x6_a_0) - peterson.usr.x6_a_0))) - (= - peterson.usr.x10_a_1 - (ite - peterson.usr.e07_a_1 - (ite X9 (- peterson.usr.x10_a_0 1) peterson.usr.x10_a_0) - (ite - peterson.usr.e12_a_1 - (ite X10 (+ peterson.usr.x10_a_0 1) peterson.usr.x10_a_0) - peterson.usr.x10_a_0))) - (= - peterson.usr.x5_a_1 - (ite - peterson.usr.e01_a_1 - (ite X2 (+ peterson.usr.x5_a_0 1) peterson.usr.x5_a_0) - (ite - peterson.usr.e06_a_1 - (ite X1 (- peterson.usr.x5_a_0 1) peterson.usr.x5_a_0) - peterson.usr.x5_a_0))) - (not peterson.res.init_flag_a_1)))))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.abs_11_a_0 Int) - (top.res.abs_12_a_0 Int) - (top.res.abs_13_a_0 Int) - (top.res.abs_14_a_0 Bool) - (top.res.abs_15_a_0 Bool) - (top.res.abs_16_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_0_a_0)) - (and - (= top.res.abs_15_a_0 (and top.res.abs_14_a_0 (< X1 32767))) - (let - ((X2 Bool top.res.abs_16_a_0)) - (and - (= top.usr.OK_a_0 (=> X2 (>= X1 0))) - (__node_init_peterson_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.abs_13_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_15_a_0 - top.res.abs_16_a_0 - top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_14_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.abs_9_a_1 Int) - (top.res.abs_10_a_1 Int) - (top.res.abs_11_a_1 Int) - (top.res.abs_12_a_1 Int) - (top.res.abs_13_a_1 Int) - (top.res.abs_14_a_1 Bool) - (top.res.abs_15_a_1 Bool) - (top.res.abs_16_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.abs_11_a_0 Int) - (top.res.abs_12_a_0 Int) - (top.res.abs_13_a_0 Int) - (top.res.abs_14_a_0 Bool) - (top.res.abs_15_a_0 Bool) - (top.res.abs_16_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_0_a_1)) - (and - (= top.res.abs_15_a_1 (and top.res.abs_14_a_1 (< X1 32767))) - (let - ((X2 Bool top.res.abs_16_a_1)) - (and - (= top.usr.OK_a_1 (=> X2 (>= X1 0))) - (__node_trans_peterson_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.abs_12_a_1 - top.res.abs_13_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.abs_13_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_15_a_1 - top.res.abs_16_a_1 - top.res.inst_1_a_1 - top.res.abs_15_a_0 - top.res.abs_16_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_14_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_14_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.abs_11 Int) - (top.res.abs_12 Int) - (top.res.abs_13 Int) - (top.res.abs_14 Bool) - (top.res.abs_15 Bool) - (top.res.abs_16 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.abs_10 Int) -(declare-primed-var top.res.abs_11 Int) -(declare-primed-var top.res.abs_12 Int) -(declare-primed-var top.res.abs_13 Int) -(declare-primed-var top.res.abs_14 Bool) -(declare-primed-var top.res.abs_15 Bool) -(declare-primed-var top.res.abs_16 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.abs_11 Int) - (top.res.abs_12 Int) - (top.res.abs_13 Int) - (top.res.abs_14 Bool) - (top.res.abs_15 Bool) - (top.res.abs_16 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_0)) - (and - (= top.res.abs_15 (and top.res.abs_14 (< X1 32767))) - (let - ((X2 Bool top.res.abs_16)) - (and - (= top.usr.OK (=> X2 (>= X1 0))) - (__node_init_peterson_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.abs_10 - top.res.abs_11 - top.res.abs_12 - top.res.abs_13 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_15 top.res.abs_16 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_14 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.abs_11 Int) - (top.res.abs_12 Int) - (top.res.abs_13 Int) - (top.res.abs_14 Bool) - (top.res.abs_15 Bool) - (top.res.abs_16 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.abs_9! Int) - (top.res.abs_10! Int) - (top.res.abs_11! Int) - (top.res.abs_12! Int) - (top.res.abs_13! Int) - (top.res.abs_14! Bool) - (top.res.abs_15! Bool) - (top.res.abs_16! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Int top.res.abs_0!)) - (and - (= top.res.abs_15! (and top.res.abs_14! (< X1 32767))) - (let - ((X2 Bool top.res.abs_16!)) - (and - (= top.usr.OK! (=> X2 (>= X1 0))) - (__node_trans_peterson_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.abs_10! - top.res.abs_11! - top.res.abs_12! - top.res.abs_13! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.abs_10 - top.res.abs_11 - top.res.abs_12 - top.res.abs_13 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_15! - top.res.abs_16! - top.res.inst_1! - top.res.abs_15 - top.res.abs_16 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_14! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_14 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.abs_11 Int) - (top.res.abs_12 Int) - (top.res.abs_13 Int) - (top.res.abs_14 Bool) - (top.res.abs_15 Bool) - (top.res.abs_16 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_peterson_0 ((peterson.usr.e01_a_0 Bool) (peterson.usr.e02_a_0 Bool) (peterson.usr.e03_a_0 Bool) (peterson.usr.e04_a_0 Bool) (peterson.usr.e05_a_0 Bool) (peterson.usr.e06_a_0 Bool) (peterson.usr.e07_a_0 Bool) (peterson.usr.e08_a_0 Bool) (peterson.usr.e09_a_0 Bool) (peterson.usr.e10_a_0 Bool) (peterson.usr.e11_a_0 Bool) (peterson.usr.e12_a_0 Bool) (peterson.res.nondet_23 Int) (peterson.res.nondet_22 Int) (peterson.res.nondet_21 Int) (peterson.res.nondet_20 Int) (peterson.res.nondet_19 Int) (peterson.res.nondet_18 Int) (peterson.res.nondet_17 Int) (peterson.res.nondet_16 Int) (peterson.res.nondet_15 Int) (peterson.res.nondet_14 Int) (peterson.res.nondet_13 Int) (peterson.res.nondet_12 Int) (peterson.res.nondet_11 Int) (peterson.res.nondet_10 Int) (peterson.res.nondet_9 Int) (peterson.res.nondet_8 Int) (peterson.res.nondet_7 Int) (peterson.res.nondet_6 Int) (peterson.res.nondet_5 Int) (peterson.res.nondet_4 Int) (peterson.res.nondet_3 Int) (peterson.res.nondet_2 Int) (peterson.res.nondet_1 Int) (peterson.res.nondet_0 Int) (peterson.usr.x0_a_0 Int) (peterson.usr.x1_a_0 Int) (peterson.usr.x2_a_0 Int) (peterson.usr.x3_a_0 Int) (peterson.usr.x4_a_0 Int) (peterson.usr.x5_a_0 Int) (peterson.usr.x6_a_0 Int) (peterson.usr.x7_a_0 Int) (peterson.usr.x8_a_0 Int) (peterson.usr.x9_a_0 Int) (peterson.usr.x10_a_0 Int) (peterson.usr.x11_a_0 Int) (peterson.usr.x12_a_0 Int) (peterson.usr.x13_a_0 Int) (peterson.res.init_flag_a_0 Bool)) Bool + (and (= peterson.usr.x0_a_0 1) (let ((X1 (let ((X1 peterson.res.nondet_1) (X2 peterson.res.nondet_0)) (and (>= X2 1) (>= X1 1))))) (and (= peterson.usr.x4_a_0 1) (let ((X2 (let ((X2 peterson.res.nondet_11) (X3 peterson.res.nondet_10)) (and (>= X3 1) (>= X2 1))))) (and (= peterson.usr.x3_a_0 0) (let ((X3 (let ((X3 peterson.res.nondet_7) (X4 peterson.res.nondet_6)) (and (>= X4 1) (>= X3 1))))) (and (= peterson.usr.x2_a_0 0) (let ((X4 (let ((X4 peterson.res.nondet_3) (X5 peterson.res.nondet_2)) (and (>= X5 1) (>= X4 1))))) (and (= peterson.usr.x1_a_0 0) (let ((X5 (let ((X5 peterson.res.nondet_5) (X6 peterson.res.nondet_4)) (and (>= X6 1) (>= X5 1))))) (and (= peterson.usr.x7_a_0 1) (let ((X6 (let ((X6 peterson.res.nondet_15) (X7 peterson.res.nondet_14)) (and (>= X7 1) (>= X6 1))))) (and (= peterson.usr.x11_a_0 0) (let ((X7 (let ((X7 peterson.res.nondet_13) (X8 peterson.res.nondet_12)) (and (>= X8 1) (>= X7 1))))) (and (= peterson.usr.x9_a_0 1) (let ((X8 (let ((X8 peterson.res.nondet_23) (X9 peterson.res.nondet_22)) (and (>= X9 1) (>= X8 1))))) (and (= peterson.usr.x8_a_0 0) (= peterson.usr.x13_a_0 0) (let ((X9 (let ((X9 peterson.res.nondet_19) (X10 peterson.res.nondet_18)) (and (>= X10 1) (>= X9 1))))) (and (= peterson.usr.x12_a_0 0) (let ((X10 (let ((X10 peterson.res.nondet_17) (X11 peterson.res.nondet_16)) (and (>= X11 1) (>= X10 1))))) (and (= peterson.usr.x6_a_0 0) (let ((X11 (let ((X11 peterson.res.nondet_21) (X12 peterson.res.nondet_20)) (and (>= X12 1) (>= X11 1))))) (and (= peterson.usr.x10_a_0 1) (let ((X12 (let ((X12 peterson.res.nondet_9) (X13 peterson.res.nondet_8)) (and (>= X13 1) (>= X12 1))))) (and (= peterson.usr.x5_a_0 0) peterson.res.init_flag_a_0)))))))))))))))))))))))))) +(define-fun __node_trans_peterson_0 ((peterson.usr.e01_a_1 Bool) (peterson.usr.e02_a_1 Bool) (peterson.usr.e03_a_1 Bool) (peterson.usr.e04_a_1 Bool) (peterson.usr.e05_a_1 Bool) (peterson.usr.e06_a_1 Bool) (peterson.usr.e07_a_1 Bool) (peterson.usr.e08_a_1 Bool) (peterson.usr.e09_a_1 Bool) (peterson.usr.e10_a_1 Bool) (peterson.usr.e11_a_1 Bool) (peterson.usr.e12_a_1 Bool) (peterson.res.nondet_23 Int) (peterson.res.nondet_22 Int) (peterson.res.nondet_21 Int) (peterson.res.nondet_20 Int) (peterson.res.nondet_19 Int) (peterson.res.nondet_18 Int) (peterson.res.nondet_17 Int) (peterson.res.nondet_16 Int) (peterson.res.nondet_15 Int) (peterson.res.nondet_14 Int) (peterson.res.nondet_13 Int) (peterson.res.nondet_12 Int) (peterson.res.nondet_11 Int) (peterson.res.nondet_10 Int) (peterson.res.nondet_9 Int) (peterson.res.nondet_8 Int) (peterson.res.nondet_7 Int) (peterson.res.nondet_6 Int) (peterson.res.nondet_5 Int) (peterson.res.nondet_4 Int) (peterson.res.nondet_3 Int) (peterson.res.nondet_2 Int) (peterson.res.nondet_1 Int) (peterson.res.nondet_0 Int) (peterson.usr.x0_a_1 Int) (peterson.usr.x1_a_1 Int) (peterson.usr.x2_a_1 Int) (peterson.usr.x3_a_1 Int) (peterson.usr.x4_a_1 Int) (peterson.usr.x5_a_1 Int) (peterson.usr.x6_a_1 Int) (peterson.usr.x7_a_1 Int) (peterson.usr.x8_a_1 Int) (peterson.usr.x9_a_1 Int) (peterson.usr.x10_a_1 Int) (peterson.usr.x11_a_1 Int) (peterson.usr.x12_a_1 Int) (peterson.usr.x13_a_1 Int) (peterson.res.init_flag_a_1 Bool) (peterson.usr.e01_a_0 Bool) (peterson.usr.e02_a_0 Bool) (peterson.usr.e03_a_0 Bool) (peterson.usr.e04_a_0 Bool) (peterson.usr.e05_a_0 Bool) (peterson.usr.e06_a_0 Bool) (peterson.usr.e07_a_0 Bool) (peterson.usr.e08_a_0 Bool) (peterson.usr.e09_a_0 Bool) (peterson.usr.e10_a_0 Bool) (peterson.usr.e11_a_0 Bool) (peterson.usr.e12_a_0 Bool) (peterson.usr.x0_a_0 Int) (peterson.usr.x1_a_0 Int) (peterson.usr.x2_a_0 Int) (peterson.usr.x3_a_0 Int) (peterson.usr.x4_a_0 Int) (peterson.usr.x5_a_0 Int) (peterson.usr.x6_a_0 Int) (peterson.usr.x7_a_0 Int) (peterson.usr.x8_a_0 Int) (peterson.usr.x9_a_0 Int) (peterson.usr.x10_a_0 Int) (peterson.usr.x11_a_0 Int) (peterson.usr.x12_a_0 Int) (peterson.usr.x13_a_0 Int) (peterson.res.init_flag_a_0 Bool)) Bool + (let ((X1 (and (>= peterson.usr.x3_a_0 1) (>= peterson.usr.x5_a_0 1)))) (let ((X2 (and (>= peterson.usr.x0_a_0 1) (>= peterson.usr.x4_a_0 1)))) (and (= peterson.usr.x0_a_1 (ite peterson.usr.e01_a_1 (ite X2 (- peterson.usr.x0_a_0 1) peterson.usr.x0_a_0) (ite peterson.usr.e06_a_1 (ite X1 (+ peterson.usr.x0_a_0 1) peterson.usr.x0_a_0) peterson.usr.x0_a_0))) (= peterson.usr.x4_a_1 (ite peterson.usr.e01_a_1 (ite X2 (- peterson.usr.x4_a_0 1) peterson.usr.x4_a_0) (ite peterson.usr.e06_a_1 (ite X1 (+ peterson.usr.x4_a_0 1) peterson.usr.x4_a_0) peterson.usr.x4_a_0))) (let ((X3 (and (>= peterson.usr.x2_a_0 1) (>= peterson.usr.x6_a_0 1)))) (let ((X4 (and (>= peterson.usr.x2_a_0 1) (>= peterson.usr.x9_a_0 1)))) (and (= peterson.usr.x3_a_1 (ite peterson.usr.e04_a_1 (ite X4 (+ peterson.usr.x3_a_0 1) peterson.usr.x3_a_0) (ite peterson.usr.e05_a_1 (ite X3 (+ peterson.usr.x3_a_0 1) peterson.usr.x3_a_0) (ite peterson.usr.e06_a_1 (ite X1 (- peterson.usr.x3_a_0 1) peterson.usr.x3_a_0) peterson.usr.x3_a_0)))) (let ((X5 (and (>= peterson.usr.x1_a_0 1) (>= peterson.usr.x7_a_0 1)))) (let ((X6 (and (>= peterson.usr.x1_a_0 1) (>= peterson.usr.x6_a_0 1)))) (and (= peterson.usr.x2_a_1 (ite peterson.usr.e02_a_1 (ite X6 (+ peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) (ite peterson.usr.e03_a_1 (ite X5 (+ peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) (ite peterson.usr.e04_a_1 (ite X4 (- peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) (ite peterson.usr.e05_a_1 (ite X3 (- peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) peterson.usr.x2_a_0))))) (= peterson.usr.x1_a_1 (ite peterson.usr.e01_a_1 (ite X2 (+ peterson.usr.x1_a_0 1) peterson.usr.x1_a_0) (ite peterson.usr.e02_a_1 (ite X6 (- peterson.usr.x1_a_0 1) peterson.usr.x1_a_0) (ite peterson.usr.e03_a_1 (ite X5 (- peterson.usr.x1_a_0 1) peterson.usr.x1_a_0) peterson.usr.x1_a_0)))) (let ((X7 (and (>= peterson.usr.x7_a_0 1) (>= peterson.usr.x11_a_0 1)))) (and (= peterson.usr.x7_a_1 (ite peterson.usr.e02_a_1 (ite X6 (+ peterson.usr.x7_a_0 1) peterson.usr.x7_a_0) (ite peterson.usr.e08_a_1 (ite X7 (- peterson.usr.x7_a_0 1) peterson.usr.x7_a_0) peterson.usr.x7_a_0))) (let ((X8 (and (>= peterson.usr.x6_a_0 1) (>= peterson.usr.x11_a_0 1)))) (let ((X9 (and (>= peterson.usr.x9_a_0 1) (>= peterson.usr.x10_a_0 1)))) (and (= peterson.usr.x11_a_1 (ite peterson.usr.e07_a_1 (ite X9 (+ peterson.usr.x11_a_0 1) peterson.usr.x11_a_0) (ite peterson.usr.e08_a_1 (ite X7 (- peterson.usr.x11_a_0 1) peterson.usr.x11_a_0) (ite peterson.usr.e09_a_1 (ite X8 (- peterson.usr.x11_a_0 1) peterson.usr.x11_a_0) peterson.usr.x11_a_0)))) (let ((X10 (and (>= peterson.usr.x8_a_0 1) (>= peterson.usr.x13_a_0 1)))) (and (= peterson.usr.x9_a_1 (ite peterson.usr.e07_a_1 (ite X9 (- peterson.usr.x9_a_0 1) peterson.usr.x9_a_0) (ite peterson.usr.e12_a_1 (ite X10 (+ peterson.usr.x9_a_0 1) peterson.usr.x9_a_0) peterson.usr.x9_a_0))) (= peterson.usr.x8_a_1 (ite peterson.usr.e07_a_1 (ite X9 (+ peterson.usr.x8_a_0 1) peterson.usr.x8_a_0) (ite peterson.usr.e12_a_1 (ite X10 (- peterson.usr.x8_a_0 1) peterson.usr.x8_a_0) peterson.usr.x8_a_0))) (let ((X11 (and (>= peterson.usr.x7_a_0 1) (>= peterson.usr.x12_a_0 1)))) (let ((X12 (and (>= peterson.usr.x4_a_0 1) (>= peterson.usr.x12_a_0 1)))) (and (= peterson.usr.x13_a_1 (ite peterson.usr.e10_a_1 (ite X12 (+ peterson.usr.x13_a_0 1) peterson.usr.x13_a_0) (ite peterson.usr.e11_a_1 (ite X11 (+ peterson.usr.x13_a_0 1) peterson.usr.x13_a_0) (ite peterson.usr.e12_a_1 (ite X10 (- peterson.usr.x13_a_0 1) peterson.usr.x13_a_0) peterson.usr.x13_a_0)))) (= peterson.usr.x12_a_1 (ite peterson.usr.e08_a_1 (ite X7 (+ peterson.usr.x12_a_0 1) peterson.usr.x12_a_0) (ite peterson.usr.e09_a_1 (ite X8 (+ peterson.usr.x12_a_0 1) peterson.usr.x12_a_0) (ite peterson.usr.e10_a_1 (ite X12 (- peterson.usr.x12_a_0 1) peterson.usr.x12_a_0) (ite peterson.usr.e11_a_1 (ite X11 (- peterson.usr.x12_a_0 1) peterson.usr.x12_a_0) peterson.usr.x12_a_0))))) (= peterson.usr.x6_a_1 (ite peterson.usr.e02_a_1 (ite X6 (- peterson.usr.x6_a_0 1) peterson.usr.x6_a_0) (ite peterson.usr.e08_a_1 (ite X7 (+ peterson.usr.x6_a_0 1) peterson.usr.x6_a_0) peterson.usr.x6_a_0))) (= peterson.usr.x10_a_1 (ite peterson.usr.e07_a_1 (ite X9 (- peterson.usr.x10_a_0 1) peterson.usr.x10_a_0) (ite peterson.usr.e12_a_1 (ite X10 (+ peterson.usr.x10_a_0 1) peterson.usr.x10_a_0) peterson.usr.x10_a_0))) (= peterson.usr.x5_a_1 (ite peterson.usr.e01_a_1 (ite X2 (+ peterson.usr.x5_a_0 1) peterson.usr.x5_a_0) (ite peterson.usr.e06_a_1 (ite X1 (- peterson.usr.x5_a_0 1) peterson.usr.x5_a_0) peterson.usr.x5_a_0))) (not peterson.res.init_flag_a_1))))))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.abs_11_a_0 Int) (top.res.abs_12_a_0 Int) (top.res.abs_13_a_0 Int) (top.res.abs_14_a_0 Bool) (top.res.abs_15_a_0 Bool) (top.res.abs_16_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_0)) (and (= top.res.abs_15_a_0 (and top.res.abs_14_a_0 (< X1 32767))) (let ((X2 top.res.abs_16_a_0)) (and (= top.usr.OK_a_0 (=> X2 (>= X1 0))) (__node_init_peterson_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.abs_13_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_15_a_0 top.res.abs_16_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_14_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.abs_9_a_1 Int) (top.res.abs_10_a_1 Int) (top.res.abs_11_a_1 Int) (top.res.abs_12_a_1 Int) (top.res.abs_13_a_1 Int) (top.res.abs_14_a_1 Bool) (top.res.abs_15_a_1 Bool) (top.res.abs_16_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.abs_11_a_0 Int) (top.res.abs_12_a_0 Int) (top.res.abs_13_a_0 Int) (top.res.abs_14_a_0 Bool) (top.res.abs_15_a_0 Bool) (top.res.abs_16_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_1)) (and (= top.res.abs_15_a_1 (and top.res.abs_14_a_1 (< X1 32767))) (let ((X2 top.res.abs_16_a_1)) (and (= top.usr.OK_a_1 (=> X2 (>= X1 0))) (__node_trans_peterson_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.abs_12_a_1 top.res.abs_13_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.abs_13_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_15_a_1 top.res.abs_16_a_1 top.res.inst_1_a_1 top.res.abs_15_a_0 top.res.abs_16_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_14_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_14_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.abs_11 Int) (top.res.abs_12 Int) (top.res.abs_13 Int) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.abs_11 Int) (top.res.abs_12 Int) (top.res.abs_13 Int) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_0)) (and (= top.res.abs_15 (and top.res.abs_14 (< X1 32767))) (let ((X2 top.res.abs_16)) (and (= top.usr.OK (=> X2 (>= X1 0))) (__node_init_peterson_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.abs_10 top.res.abs_11 top.res.abs_12 top.res.abs_13 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_15 top.res.abs_16 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_14 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.abs_11 Int) (top.res.abs_12 Int) (top.res.abs_13 Int) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.abs_9! Int) (top.res.abs_10! Int) (top.res.abs_11! Int) (top.res.abs_12! Int) (top.res.abs_13! Int) (top.res.abs_14! Bool) (top.res.abs_15! Bool) (top.res.abs_16! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_0!)) (and (= top.res.abs_15! (and top.res.abs_14! (< X1 32767))) (let ((X2 top.res.abs_16!)) (and (= top.usr.OK! (=> X2 (>= X1 0))) (__node_trans_peterson_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.abs_10! top.res.abs_11! top.res.abs_12! top.res.abs_13! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.abs_10 top.res.abs_11 top.res.abs_12 top.res.abs_13 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_15! top.res.abs_16! top.res.inst_1! top.res.abs_15 top.res.abs_16 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_14! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_14 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.abs_11 Int) (top.res.abs_12 Int) (top.res.abs_13 Int) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/peterson_2.sl b/benchmarks/LIA/Lustre/peterson_2.sl index 8166e4a..a273e5d 100644 --- a/benchmarks/LIA/Lustre/peterson_2.sl +++ b/benchmarks/LIA/Lustre/peterson_2.sl @@ -1,1978 +1,55 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_peterson_0 ( - (peterson.usr.e01_a_0 Bool) - (peterson.usr.e02_a_0 Bool) - (peterson.usr.e03_a_0 Bool) - (peterson.usr.e04_a_0 Bool) - (peterson.usr.e05_a_0 Bool) - (peterson.usr.e06_a_0 Bool) - (peterson.usr.e07_a_0 Bool) - (peterson.usr.e08_a_0 Bool) - (peterson.usr.e09_a_0 Bool) - (peterson.usr.e10_a_0 Bool) - (peterson.usr.e11_a_0 Bool) - (peterson.usr.e12_a_0 Bool) - (peterson.res.nondet_23 Int) - (peterson.res.nondet_22 Int) - (peterson.res.nondet_21 Int) - (peterson.res.nondet_20 Int) - (peterson.res.nondet_19 Int) - (peterson.res.nondet_18 Int) - (peterson.res.nondet_17 Int) - (peterson.res.nondet_16 Int) - (peterson.res.nondet_15 Int) - (peterson.res.nondet_14 Int) - (peterson.res.nondet_13 Int) - (peterson.res.nondet_12 Int) - (peterson.res.nondet_11 Int) - (peterson.res.nondet_10 Int) - (peterson.res.nondet_9 Int) - (peterson.res.nondet_8 Int) - (peterson.res.nondet_7 Int) - (peterson.res.nondet_6 Int) - (peterson.res.nondet_5 Int) - (peterson.res.nondet_4 Int) - (peterson.res.nondet_3 Int) - (peterson.res.nondet_2 Int) - (peterson.res.nondet_1 Int) - (peterson.res.nondet_0 Int) - (peterson.usr.x0_a_0 Int) - (peterson.usr.x1_a_0 Int) - (peterson.usr.x2_a_0 Int) - (peterson.usr.x3_a_0 Int) - (peterson.usr.x4_a_0 Int) - (peterson.usr.x5_a_0 Int) - (peterson.usr.x6_a_0 Int) - (peterson.usr.x7_a_0 Int) - (peterson.usr.x8_a_0 Int) - (peterson.usr.x9_a_0 Int) - (peterson.usr.x10_a_0 Int) - (peterson.usr.x11_a_0 Int) - (peterson.usr.x12_a_0 Int) - (peterson.usr.x13_a_0 Int) - (peterson.res.init_flag_a_0 Bool) - ) Bool - - (and - (= peterson.usr.x0_a_0 1) - (let - ((X1 - Bool (let - ((X1 Int peterson.res.nondet_1) (X2 Int peterson.res.nondet_0)) - (and (>= X2 1) (>= X1 1))))) - (and - (= peterson.usr.x4_a_0 1) - (let - ((X2 - Bool (let - ((X2 Int peterson.res.nondet_11) - (X3 Int peterson.res.nondet_10)) - (and (>= X3 1) (>= X2 1))))) - (and - (= peterson.usr.x3_a_0 0) - (let - ((X3 - Bool (let - ((X3 Int peterson.res.nondet_7) - (X4 Int peterson.res.nondet_6)) - (and (>= X4 1) (>= X3 1))))) - (and - (= peterson.usr.x2_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int peterson.res.nondet_3) - (X5 Int peterson.res.nondet_2)) - (and (>= X5 1) (>= X4 1))))) - (and - (= peterson.usr.x1_a_0 0) - (let - ((X5 - Bool (let - ((X5 Int peterson.res.nondet_5) - (X6 Int peterson.res.nondet_4)) - (and (>= X6 1) (>= X5 1))))) - (and - (= peterson.usr.x7_a_0 1) - (let - ((X6 - Bool (let - ((X6 Int peterson.res.nondet_15) - (X7 Int peterson.res.nondet_14)) - (and (>= X7 1) (>= X6 1))))) - (and - (= peterson.usr.x11_a_0 0) - (let - ((X7 - Bool (let - ((X7 Int peterson.res.nondet_13) - (X8 Int peterson.res.nondet_12)) - (and (>= X8 1) (>= X7 1))))) - (and - (= peterson.usr.x9_a_0 1) - (let - ((X8 - Bool (let - ((X8 Int peterson.res.nondet_23) - (X9 Int peterson.res.nondet_22)) - (and (>= X9 1) (>= X8 1))))) - (and - (= peterson.usr.x8_a_0 0) - (= peterson.usr.x13_a_0 0) - (let - ((X9 - Bool (let - ((X9 Int peterson.res.nondet_19) - (X10 Int peterson.res.nondet_18)) - (and (>= X10 1) (>= X9 1))))) - (and - (= peterson.usr.x12_a_0 0) - (let - ((X10 - Bool (let - ((X10 Int peterson.res.nondet_17) - (X11 Int peterson.res.nondet_16)) - (and (>= X11 1) (>= X10 1))))) - (and - (= peterson.usr.x6_a_0 0) - (let - ((X11 - Bool (let - ((X11 Int peterson.res.nondet_21) - (X12 Int peterson.res.nondet_20)) - (and (>= X12 1) (>= X11 1))))) - (and - (= peterson.usr.x10_a_0 1) - (let - ((X12 - Bool (let - ((X12 Int peterson.res.nondet_9) - (X13 Int peterson.res.nondet_8)) - (and (>= X13 1) (>= X12 1))))) - (and - (= peterson.usr.x5_a_0 0) - peterson.res.init_flag_a_0))))))))))))))))))))))))) -) - -(define-fun - __node_trans_peterson_0 ( - (peterson.usr.e01_a_1 Bool) - (peterson.usr.e02_a_1 Bool) - (peterson.usr.e03_a_1 Bool) - (peterson.usr.e04_a_1 Bool) - (peterson.usr.e05_a_1 Bool) - (peterson.usr.e06_a_1 Bool) - (peterson.usr.e07_a_1 Bool) - (peterson.usr.e08_a_1 Bool) - (peterson.usr.e09_a_1 Bool) - (peterson.usr.e10_a_1 Bool) - (peterson.usr.e11_a_1 Bool) - (peterson.usr.e12_a_1 Bool) - (peterson.res.nondet_23 Int) - (peterson.res.nondet_22 Int) - (peterson.res.nondet_21 Int) - (peterson.res.nondet_20 Int) - (peterson.res.nondet_19 Int) - (peterson.res.nondet_18 Int) - (peterson.res.nondet_17 Int) - (peterson.res.nondet_16 Int) - (peterson.res.nondet_15 Int) - (peterson.res.nondet_14 Int) - (peterson.res.nondet_13 Int) - (peterson.res.nondet_12 Int) - (peterson.res.nondet_11 Int) - (peterson.res.nondet_10 Int) - (peterson.res.nondet_9 Int) - (peterson.res.nondet_8 Int) - (peterson.res.nondet_7 Int) - (peterson.res.nondet_6 Int) - (peterson.res.nondet_5 Int) - (peterson.res.nondet_4 Int) - (peterson.res.nondet_3 Int) - (peterson.res.nondet_2 Int) - (peterson.res.nondet_1 Int) - (peterson.res.nondet_0 Int) - (peterson.usr.x0_a_1 Int) - (peterson.usr.x1_a_1 Int) - (peterson.usr.x2_a_1 Int) - (peterson.usr.x3_a_1 Int) - (peterson.usr.x4_a_1 Int) - (peterson.usr.x5_a_1 Int) - (peterson.usr.x6_a_1 Int) - (peterson.usr.x7_a_1 Int) - (peterson.usr.x8_a_1 Int) - (peterson.usr.x9_a_1 Int) - (peterson.usr.x10_a_1 Int) - (peterson.usr.x11_a_1 Int) - (peterson.usr.x12_a_1 Int) - (peterson.usr.x13_a_1 Int) - (peterson.res.init_flag_a_1 Bool) - (peterson.usr.e01_a_0 Bool) - (peterson.usr.e02_a_0 Bool) - (peterson.usr.e03_a_0 Bool) - (peterson.usr.e04_a_0 Bool) - (peterson.usr.e05_a_0 Bool) - (peterson.usr.e06_a_0 Bool) - (peterson.usr.e07_a_0 Bool) - (peterson.usr.e08_a_0 Bool) - (peterson.usr.e09_a_0 Bool) - (peterson.usr.e10_a_0 Bool) - (peterson.usr.e11_a_0 Bool) - (peterson.usr.e12_a_0 Bool) - (peterson.usr.x0_a_0 Int) - (peterson.usr.x1_a_0 Int) - (peterson.usr.x2_a_0 Int) - (peterson.usr.x3_a_0 Int) - (peterson.usr.x4_a_0 Int) - (peterson.usr.x5_a_0 Int) - (peterson.usr.x6_a_0 Int) - (peterson.usr.x7_a_0 Int) - (peterson.usr.x8_a_0 Int) - (peterson.usr.x9_a_0 Int) - (peterson.usr.x10_a_0 Int) - (peterson.usr.x11_a_0 Int) - (peterson.usr.x12_a_0 Int) - (peterson.usr.x13_a_0 Int) - (peterson.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (and (>= peterson.usr.x3_a_0 1) (>= peterson.usr.x5_a_0 1)))) - (let - ((X2 Bool (and (>= peterson.usr.x0_a_0 1) (>= peterson.usr.x4_a_0 1)))) - (and - (= - peterson.usr.x0_a_1 - (ite - peterson.usr.e01_a_1 - (ite X2 (- peterson.usr.x0_a_0 1) peterson.usr.x0_a_0) - (ite - peterson.usr.e06_a_1 - (ite X1 (+ peterson.usr.x0_a_0 1) peterson.usr.x0_a_0) - peterson.usr.x0_a_0))) - (= - peterson.usr.x4_a_1 - (ite - peterson.usr.e01_a_1 - (ite X2 (- peterson.usr.x4_a_0 1) peterson.usr.x4_a_0) - (ite - peterson.usr.e06_a_1 - (ite X1 (+ peterson.usr.x4_a_0 1) peterson.usr.x4_a_0) - peterson.usr.x4_a_0))) - (let - ((X3 Bool (and (>= peterson.usr.x2_a_0 1) (>= peterson.usr.x6_a_0 1)))) - (let - ((X4 Bool (and (>= peterson.usr.x2_a_0 1) (>= peterson.usr.x9_a_0 1)))) - (and - (= - peterson.usr.x3_a_1 - (ite - peterson.usr.e04_a_1 - (ite X4 (+ peterson.usr.x3_a_0 1) peterson.usr.x3_a_0) - (ite - peterson.usr.e05_a_1 - (ite X3 (+ peterson.usr.x3_a_0 1) peterson.usr.x3_a_0) - (ite - peterson.usr.e06_a_1 - (ite X1 (- peterson.usr.x3_a_0 1) peterson.usr.x3_a_0) - peterson.usr.x3_a_0)))) - (let - ((X5 Bool (and (>= peterson.usr.x1_a_0 1) (>= peterson.usr.x7_a_0 1)))) - (let - ((X6 Bool (and (>= peterson.usr.x1_a_0 1) (>= peterson.usr.x6_a_0 1)))) - (and - (= - peterson.usr.x2_a_1 - (ite - peterson.usr.e02_a_1 - (ite X6 (+ peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) - (ite - peterson.usr.e03_a_1 - (ite X5 (+ peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) - (ite - peterson.usr.e04_a_1 - (ite X4 (- peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) - (ite - peterson.usr.e05_a_1 - (ite X3 (- peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) - peterson.usr.x2_a_0))))) - (= - peterson.usr.x1_a_1 - (ite - peterson.usr.e01_a_1 - (ite X2 (+ peterson.usr.x1_a_0 1) peterson.usr.x1_a_0) - (ite - peterson.usr.e02_a_1 - (ite X6 (- peterson.usr.x1_a_0 1) peterson.usr.x1_a_0) - (ite - peterson.usr.e03_a_1 - (ite X5 (- peterson.usr.x1_a_0 1) peterson.usr.x1_a_0) - peterson.usr.x1_a_0)))) - (let - ((X7 - Bool (and (>= peterson.usr.x7_a_0 1) (>= peterson.usr.x11_a_0 1)))) - (and - (= - peterson.usr.x7_a_1 - (ite - peterson.usr.e02_a_1 - (ite X6 (+ peterson.usr.x7_a_0 1) peterson.usr.x7_a_0) - (ite - peterson.usr.e08_a_1 - (ite X7 (- peterson.usr.x7_a_0 1) peterson.usr.x7_a_0) - peterson.usr.x7_a_0))) - (let - ((X8 - Bool (and (>= peterson.usr.x6_a_0 1) (>= peterson.usr.x11_a_0 1)))) - (let - ((X9 - Bool (and - (>= peterson.usr.x9_a_0 1) - (>= peterson.usr.x10_a_0 1)))) - (and - (= - peterson.usr.x11_a_1 - (ite - peterson.usr.e07_a_1 - (ite X9 (+ peterson.usr.x11_a_0 1) peterson.usr.x11_a_0) - (ite - peterson.usr.e08_a_1 - (ite X7 (- peterson.usr.x11_a_0 1) peterson.usr.x11_a_0) - (ite - peterson.usr.e09_a_1 - (ite X8 (- peterson.usr.x11_a_0 1) peterson.usr.x11_a_0) - peterson.usr.x11_a_0)))) - (let - ((X10 - Bool (and - (>= peterson.usr.x8_a_0 1) - (>= peterson.usr.x13_a_0 1)))) - (and - (= - peterson.usr.x9_a_1 - (ite - peterson.usr.e07_a_1 - (ite X9 (- peterson.usr.x9_a_0 1) peterson.usr.x9_a_0) - (ite - peterson.usr.e12_a_1 - (ite X10 (+ peterson.usr.x9_a_0 1) peterson.usr.x9_a_0) - peterson.usr.x9_a_0))) - (= - peterson.usr.x8_a_1 - (ite - peterson.usr.e07_a_1 - (ite X9 (+ peterson.usr.x8_a_0 1) peterson.usr.x8_a_0) - (ite - peterson.usr.e12_a_1 - (ite X10 (- peterson.usr.x8_a_0 1) peterson.usr.x8_a_0) - peterson.usr.x8_a_0))) - (let - ((X11 - Bool (and - (>= peterson.usr.x7_a_0 1) - (>= peterson.usr.x12_a_0 1)))) - (let - ((X12 - Bool (and - (>= peterson.usr.x4_a_0 1) - (>= peterson.usr.x12_a_0 1)))) - (and - (= - peterson.usr.x13_a_1 - (ite - peterson.usr.e10_a_1 - (ite X12 (+ peterson.usr.x13_a_0 1) peterson.usr.x13_a_0) - (ite - peterson.usr.e11_a_1 - (ite X11 (+ peterson.usr.x13_a_0 1) peterson.usr.x13_a_0) - (ite - peterson.usr.e12_a_1 - (ite - X10 - (- peterson.usr.x13_a_0 1) - peterson.usr.x13_a_0) - peterson.usr.x13_a_0)))) - (= - peterson.usr.x12_a_1 - (ite - peterson.usr.e08_a_1 - (ite X7 (+ peterson.usr.x12_a_0 1) peterson.usr.x12_a_0) - (ite - peterson.usr.e09_a_1 - (ite X8 (+ peterson.usr.x12_a_0 1) peterson.usr.x12_a_0) - (ite - peterson.usr.e10_a_1 - (ite - X12 - (- peterson.usr.x12_a_0 1) - peterson.usr.x12_a_0) - (ite - peterson.usr.e11_a_1 - (ite - X11 - (- peterson.usr.x12_a_0 1) - peterson.usr.x12_a_0) - peterson.usr.x12_a_0))))) - (= - peterson.usr.x6_a_1 - (ite - peterson.usr.e02_a_1 - (ite X6 (- peterson.usr.x6_a_0 1) peterson.usr.x6_a_0) - (ite - peterson.usr.e08_a_1 - (ite X7 (+ peterson.usr.x6_a_0 1) peterson.usr.x6_a_0) - peterson.usr.x6_a_0))) - (= - peterson.usr.x10_a_1 - (ite - peterson.usr.e07_a_1 - (ite X9 (- peterson.usr.x10_a_0 1) peterson.usr.x10_a_0) - (ite - peterson.usr.e12_a_1 - (ite X10 (+ peterson.usr.x10_a_0 1) peterson.usr.x10_a_0) - peterson.usr.x10_a_0))) - (= - peterson.usr.x5_a_1 - (ite - peterson.usr.e01_a_1 - (ite X2 (+ peterson.usr.x5_a_0 1) peterson.usr.x5_a_0) - (ite - peterson.usr.e06_a_1 - (ite X1 (- peterson.usr.x5_a_0 1) peterson.usr.x5_a_0) - peterson.usr.x5_a_0))) - (not peterson.res.init_flag_a_1)))))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.abs_11_a_0 Int) - (top.res.abs_12_a_0 Int) - (top.res.abs_13_a_0 Int) - (top.res.abs_14_a_0 Bool) - (top.res.abs_15_a_0 Bool) - (top.res.abs_16_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_1_a_0)) - (and - (= top.res.abs_15_a_0 (and top.res.abs_14_a_0 (< X1 32767))) - (let - ((X2 Bool top.res.abs_16_a_0)) - (and - (= top.usr.OK_a_0 (=> X2 (>= X1 0))) - (__node_init_peterson_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.abs_13_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_15_a_0 - top.res.abs_16_a_0 - top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_14_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.abs_9_a_1 Int) - (top.res.abs_10_a_1 Int) - (top.res.abs_11_a_1 Int) - (top.res.abs_12_a_1 Int) - (top.res.abs_13_a_1 Int) - (top.res.abs_14_a_1 Bool) - (top.res.abs_15_a_1 Bool) - (top.res.abs_16_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.abs_11_a_0 Int) - (top.res.abs_12_a_0 Int) - (top.res.abs_13_a_0 Int) - (top.res.abs_14_a_0 Bool) - (top.res.abs_15_a_0 Bool) - (top.res.abs_16_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_1_a_1)) - (and - (= top.res.abs_15_a_1 (and top.res.abs_14_a_1 (< X1 32767))) - (let - ((X2 Bool top.res.abs_16_a_1)) - (and - (= top.usr.OK_a_1 (=> X2 (>= X1 0))) - (__node_trans_peterson_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.abs_12_a_1 - top.res.abs_13_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.abs_13_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_15_a_1 - top.res.abs_16_a_1 - top.res.inst_1_a_1 - top.res.abs_15_a_0 - top.res.abs_16_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_14_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_14_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.abs_11 Int) - (top.res.abs_12 Int) - (top.res.abs_13 Int) - (top.res.abs_14 Bool) - (top.res.abs_15 Bool) - (top.res.abs_16 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.abs_10 Int) -(declare-primed-var top.res.abs_11 Int) -(declare-primed-var top.res.abs_12 Int) -(declare-primed-var top.res.abs_13 Int) -(declare-primed-var top.res.abs_14 Bool) -(declare-primed-var top.res.abs_15 Bool) -(declare-primed-var top.res.abs_16 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.abs_11 Int) - (top.res.abs_12 Int) - (top.res.abs_13 Int) - (top.res.abs_14 Bool) - (top.res.abs_15 Bool) - (top.res.abs_16 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_1)) - (and - (= top.res.abs_15 (and top.res.abs_14 (< X1 32767))) - (let - ((X2 Bool top.res.abs_16)) - (and - (= top.usr.OK (=> X2 (>= X1 0))) - (__node_init_peterson_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.abs_10 - top.res.abs_11 - top.res.abs_12 - top.res.abs_13 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_15 top.res.abs_16 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_14 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.abs_11 Int) - (top.res.abs_12 Int) - (top.res.abs_13 Int) - (top.res.abs_14 Bool) - (top.res.abs_15 Bool) - (top.res.abs_16 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.abs_9! Int) - (top.res.abs_10! Int) - (top.res.abs_11! Int) - (top.res.abs_12! Int) - (top.res.abs_13! Int) - (top.res.abs_14! Bool) - (top.res.abs_15! Bool) - (top.res.abs_16! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Int top.res.abs_1!)) - (and - (= top.res.abs_15! (and top.res.abs_14! (< X1 32767))) - (let - ((X2 Bool top.res.abs_16!)) - (and - (= top.usr.OK! (=> X2 (>= X1 0))) - (__node_trans_peterson_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.abs_10! - top.res.abs_11! - top.res.abs_12! - top.res.abs_13! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.abs_10 - top.res.abs_11 - top.res.abs_12 - top.res.abs_13 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_15! - top.res.abs_16! - top.res.inst_1! - top.res.abs_15 - top.res.abs_16 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_14! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_14 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.abs_11 Int) - (top.res.abs_12 Int) - (top.res.abs_13 Int) - (top.res.abs_14 Bool) - (top.res.abs_15 Bool) - (top.res.abs_16 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_peterson_0 ((peterson.usr.e01_a_0 Bool) (peterson.usr.e02_a_0 Bool) (peterson.usr.e03_a_0 Bool) (peterson.usr.e04_a_0 Bool) (peterson.usr.e05_a_0 Bool) (peterson.usr.e06_a_0 Bool) (peterson.usr.e07_a_0 Bool) (peterson.usr.e08_a_0 Bool) (peterson.usr.e09_a_0 Bool) (peterson.usr.e10_a_0 Bool) (peterson.usr.e11_a_0 Bool) (peterson.usr.e12_a_0 Bool) (peterson.res.nondet_23 Int) (peterson.res.nondet_22 Int) (peterson.res.nondet_21 Int) (peterson.res.nondet_20 Int) (peterson.res.nondet_19 Int) (peterson.res.nondet_18 Int) (peterson.res.nondet_17 Int) (peterson.res.nondet_16 Int) (peterson.res.nondet_15 Int) (peterson.res.nondet_14 Int) (peterson.res.nondet_13 Int) (peterson.res.nondet_12 Int) (peterson.res.nondet_11 Int) (peterson.res.nondet_10 Int) (peterson.res.nondet_9 Int) (peterson.res.nondet_8 Int) (peterson.res.nondet_7 Int) (peterson.res.nondet_6 Int) (peterson.res.nondet_5 Int) (peterson.res.nondet_4 Int) (peterson.res.nondet_3 Int) (peterson.res.nondet_2 Int) (peterson.res.nondet_1 Int) (peterson.res.nondet_0 Int) (peterson.usr.x0_a_0 Int) (peterson.usr.x1_a_0 Int) (peterson.usr.x2_a_0 Int) (peterson.usr.x3_a_0 Int) (peterson.usr.x4_a_0 Int) (peterson.usr.x5_a_0 Int) (peterson.usr.x6_a_0 Int) (peterson.usr.x7_a_0 Int) (peterson.usr.x8_a_0 Int) (peterson.usr.x9_a_0 Int) (peterson.usr.x10_a_0 Int) (peterson.usr.x11_a_0 Int) (peterson.usr.x12_a_0 Int) (peterson.usr.x13_a_0 Int) (peterson.res.init_flag_a_0 Bool)) Bool + (and (= peterson.usr.x0_a_0 1) (let ((X1 (let ((X1 peterson.res.nondet_1) (X2 peterson.res.nondet_0)) (and (>= X2 1) (>= X1 1))))) (and (= peterson.usr.x4_a_0 1) (let ((X2 (let ((X2 peterson.res.nondet_11) (X3 peterson.res.nondet_10)) (and (>= X3 1) (>= X2 1))))) (and (= peterson.usr.x3_a_0 0) (let ((X3 (let ((X3 peterson.res.nondet_7) (X4 peterson.res.nondet_6)) (and (>= X4 1) (>= X3 1))))) (and (= peterson.usr.x2_a_0 0) (let ((X4 (let ((X4 peterson.res.nondet_3) (X5 peterson.res.nondet_2)) (and (>= X5 1) (>= X4 1))))) (and (= peterson.usr.x1_a_0 0) (let ((X5 (let ((X5 peterson.res.nondet_5) (X6 peterson.res.nondet_4)) (and (>= X6 1) (>= X5 1))))) (and (= peterson.usr.x7_a_0 1) (let ((X6 (let ((X6 peterson.res.nondet_15) (X7 peterson.res.nondet_14)) (and (>= X7 1) (>= X6 1))))) (and (= peterson.usr.x11_a_0 0) (let ((X7 (let ((X7 peterson.res.nondet_13) (X8 peterson.res.nondet_12)) (and (>= X8 1) (>= X7 1))))) (and (= peterson.usr.x9_a_0 1) (let ((X8 (let ((X8 peterson.res.nondet_23) (X9 peterson.res.nondet_22)) (and (>= X9 1) (>= X8 1))))) (and (= peterson.usr.x8_a_0 0) (= peterson.usr.x13_a_0 0) (let ((X9 (let ((X9 peterson.res.nondet_19) (X10 peterson.res.nondet_18)) (and (>= X10 1) (>= X9 1))))) (and (= peterson.usr.x12_a_0 0) (let ((X10 (let ((X10 peterson.res.nondet_17) (X11 peterson.res.nondet_16)) (and (>= X11 1) (>= X10 1))))) (and (= peterson.usr.x6_a_0 0) (let ((X11 (let ((X11 peterson.res.nondet_21) (X12 peterson.res.nondet_20)) (and (>= X12 1) (>= X11 1))))) (and (= peterson.usr.x10_a_0 1) (let ((X12 (let ((X12 peterson.res.nondet_9) (X13 peterson.res.nondet_8)) (and (>= X13 1) (>= X12 1))))) (and (= peterson.usr.x5_a_0 0) peterson.res.init_flag_a_0)))))))))))))))))))))))))) +(define-fun __node_trans_peterson_0 ((peterson.usr.e01_a_1 Bool) (peterson.usr.e02_a_1 Bool) (peterson.usr.e03_a_1 Bool) (peterson.usr.e04_a_1 Bool) (peterson.usr.e05_a_1 Bool) (peterson.usr.e06_a_1 Bool) (peterson.usr.e07_a_1 Bool) (peterson.usr.e08_a_1 Bool) (peterson.usr.e09_a_1 Bool) (peterson.usr.e10_a_1 Bool) (peterson.usr.e11_a_1 Bool) (peterson.usr.e12_a_1 Bool) (peterson.res.nondet_23 Int) (peterson.res.nondet_22 Int) (peterson.res.nondet_21 Int) (peterson.res.nondet_20 Int) (peterson.res.nondet_19 Int) (peterson.res.nondet_18 Int) (peterson.res.nondet_17 Int) (peterson.res.nondet_16 Int) (peterson.res.nondet_15 Int) (peterson.res.nondet_14 Int) (peterson.res.nondet_13 Int) (peterson.res.nondet_12 Int) (peterson.res.nondet_11 Int) (peterson.res.nondet_10 Int) (peterson.res.nondet_9 Int) (peterson.res.nondet_8 Int) (peterson.res.nondet_7 Int) (peterson.res.nondet_6 Int) (peterson.res.nondet_5 Int) (peterson.res.nondet_4 Int) (peterson.res.nondet_3 Int) (peterson.res.nondet_2 Int) (peterson.res.nondet_1 Int) (peterson.res.nondet_0 Int) (peterson.usr.x0_a_1 Int) (peterson.usr.x1_a_1 Int) (peterson.usr.x2_a_1 Int) (peterson.usr.x3_a_1 Int) (peterson.usr.x4_a_1 Int) (peterson.usr.x5_a_1 Int) (peterson.usr.x6_a_1 Int) (peterson.usr.x7_a_1 Int) (peterson.usr.x8_a_1 Int) (peterson.usr.x9_a_1 Int) (peterson.usr.x10_a_1 Int) (peterson.usr.x11_a_1 Int) (peterson.usr.x12_a_1 Int) (peterson.usr.x13_a_1 Int) (peterson.res.init_flag_a_1 Bool) (peterson.usr.e01_a_0 Bool) (peterson.usr.e02_a_0 Bool) (peterson.usr.e03_a_0 Bool) (peterson.usr.e04_a_0 Bool) (peterson.usr.e05_a_0 Bool) (peterson.usr.e06_a_0 Bool) (peterson.usr.e07_a_0 Bool) (peterson.usr.e08_a_0 Bool) (peterson.usr.e09_a_0 Bool) (peterson.usr.e10_a_0 Bool) (peterson.usr.e11_a_0 Bool) (peterson.usr.e12_a_0 Bool) (peterson.usr.x0_a_0 Int) (peterson.usr.x1_a_0 Int) (peterson.usr.x2_a_0 Int) (peterson.usr.x3_a_0 Int) (peterson.usr.x4_a_0 Int) (peterson.usr.x5_a_0 Int) (peterson.usr.x6_a_0 Int) (peterson.usr.x7_a_0 Int) (peterson.usr.x8_a_0 Int) (peterson.usr.x9_a_0 Int) (peterson.usr.x10_a_0 Int) (peterson.usr.x11_a_0 Int) (peterson.usr.x12_a_0 Int) (peterson.usr.x13_a_0 Int) (peterson.res.init_flag_a_0 Bool)) Bool + (let ((X1 (and (>= peterson.usr.x3_a_0 1) (>= peterson.usr.x5_a_0 1)))) (let ((X2 (and (>= peterson.usr.x0_a_0 1) (>= peterson.usr.x4_a_0 1)))) (and (= peterson.usr.x0_a_1 (ite peterson.usr.e01_a_1 (ite X2 (- peterson.usr.x0_a_0 1) peterson.usr.x0_a_0) (ite peterson.usr.e06_a_1 (ite X1 (+ peterson.usr.x0_a_0 1) peterson.usr.x0_a_0) peterson.usr.x0_a_0))) (= peterson.usr.x4_a_1 (ite peterson.usr.e01_a_1 (ite X2 (- peterson.usr.x4_a_0 1) peterson.usr.x4_a_0) (ite peterson.usr.e06_a_1 (ite X1 (+ peterson.usr.x4_a_0 1) peterson.usr.x4_a_0) peterson.usr.x4_a_0))) (let ((X3 (and (>= peterson.usr.x2_a_0 1) (>= peterson.usr.x6_a_0 1)))) (let ((X4 (and (>= peterson.usr.x2_a_0 1) (>= peterson.usr.x9_a_0 1)))) (and (= peterson.usr.x3_a_1 (ite peterson.usr.e04_a_1 (ite X4 (+ peterson.usr.x3_a_0 1) peterson.usr.x3_a_0) (ite peterson.usr.e05_a_1 (ite X3 (+ peterson.usr.x3_a_0 1) peterson.usr.x3_a_0) (ite peterson.usr.e06_a_1 (ite X1 (- peterson.usr.x3_a_0 1) peterson.usr.x3_a_0) peterson.usr.x3_a_0)))) (let ((X5 (and (>= peterson.usr.x1_a_0 1) (>= peterson.usr.x7_a_0 1)))) (let ((X6 (and (>= peterson.usr.x1_a_0 1) (>= peterson.usr.x6_a_0 1)))) (and (= peterson.usr.x2_a_1 (ite peterson.usr.e02_a_1 (ite X6 (+ peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) (ite peterson.usr.e03_a_1 (ite X5 (+ peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) (ite peterson.usr.e04_a_1 (ite X4 (- peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) (ite peterson.usr.e05_a_1 (ite X3 (- peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) peterson.usr.x2_a_0))))) (= peterson.usr.x1_a_1 (ite peterson.usr.e01_a_1 (ite X2 (+ peterson.usr.x1_a_0 1) peterson.usr.x1_a_0) (ite peterson.usr.e02_a_1 (ite X6 (- peterson.usr.x1_a_0 1) peterson.usr.x1_a_0) (ite peterson.usr.e03_a_1 (ite X5 (- peterson.usr.x1_a_0 1) peterson.usr.x1_a_0) peterson.usr.x1_a_0)))) (let ((X7 (and (>= peterson.usr.x7_a_0 1) (>= peterson.usr.x11_a_0 1)))) (and (= peterson.usr.x7_a_1 (ite peterson.usr.e02_a_1 (ite X6 (+ peterson.usr.x7_a_0 1) peterson.usr.x7_a_0) (ite peterson.usr.e08_a_1 (ite X7 (- peterson.usr.x7_a_0 1) peterson.usr.x7_a_0) peterson.usr.x7_a_0))) (let ((X8 (and (>= peterson.usr.x6_a_0 1) (>= peterson.usr.x11_a_0 1)))) (let ((X9 (and (>= peterson.usr.x9_a_0 1) (>= peterson.usr.x10_a_0 1)))) (and (= peterson.usr.x11_a_1 (ite peterson.usr.e07_a_1 (ite X9 (+ peterson.usr.x11_a_0 1) peterson.usr.x11_a_0) (ite peterson.usr.e08_a_1 (ite X7 (- peterson.usr.x11_a_0 1) peterson.usr.x11_a_0) (ite peterson.usr.e09_a_1 (ite X8 (- peterson.usr.x11_a_0 1) peterson.usr.x11_a_0) peterson.usr.x11_a_0)))) (let ((X10 (and (>= peterson.usr.x8_a_0 1) (>= peterson.usr.x13_a_0 1)))) (and (= peterson.usr.x9_a_1 (ite peterson.usr.e07_a_1 (ite X9 (- peterson.usr.x9_a_0 1) peterson.usr.x9_a_0) (ite peterson.usr.e12_a_1 (ite X10 (+ peterson.usr.x9_a_0 1) peterson.usr.x9_a_0) peterson.usr.x9_a_0))) (= peterson.usr.x8_a_1 (ite peterson.usr.e07_a_1 (ite X9 (+ peterson.usr.x8_a_0 1) peterson.usr.x8_a_0) (ite peterson.usr.e12_a_1 (ite X10 (- peterson.usr.x8_a_0 1) peterson.usr.x8_a_0) peterson.usr.x8_a_0))) (let ((X11 (and (>= peterson.usr.x7_a_0 1) (>= peterson.usr.x12_a_0 1)))) (let ((X12 (and (>= peterson.usr.x4_a_0 1) (>= peterson.usr.x12_a_0 1)))) (and (= peterson.usr.x13_a_1 (ite peterson.usr.e10_a_1 (ite X12 (+ peterson.usr.x13_a_0 1) peterson.usr.x13_a_0) (ite peterson.usr.e11_a_1 (ite X11 (+ peterson.usr.x13_a_0 1) peterson.usr.x13_a_0) (ite peterson.usr.e12_a_1 (ite X10 (- peterson.usr.x13_a_0 1) peterson.usr.x13_a_0) peterson.usr.x13_a_0)))) (= peterson.usr.x12_a_1 (ite peterson.usr.e08_a_1 (ite X7 (+ peterson.usr.x12_a_0 1) peterson.usr.x12_a_0) (ite peterson.usr.e09_a_1 (ite X8 (+ peterson.usr.x12_a_0 1) peterson.usr.x12_a_0) (ite peterson.usr.e10_a_1 (ite X12 (- peterson.usr.x12_a_0 1) peterson.usr.x12_a_0) (ite peterson.usr.e11_a_1 (ite X11 (- peterson.usr.x12_a_0 1) peterson.usr.x12_a_0) peterson.usr.x12_a_0))))) (= peterson.usr.x6_a_1 (ite peterson.usr.e02_a_1 (ite X6 (- peterson.usr.x6_a_0 1) peterson.usr.x6_a_0) (ite peterson.usr.e08_a_1 (ite X7 (+ peterson.usr.x6_a_0 1) peterson.usr.x6_a_0) peterson.usr.x6_a_0))) (= peterson.usr.x10_a_1 (ite peterson.usr.e07_a_1 (ite X9 (- peterson.usr.x10_a_0 1) peterson.usr.x10_a_0) (ite peterson.usr.e12_a_1 (ite X10 (+ peterson.usr.x10_a_0 1) peterson.usr.x10_a_0) peterson.usr.x10_a_0))) (= peterson.usr.x5_a_1 (ite peterson.usr.e01_a_1 (ite X2 (+ peterson.usr.x5_a_0 1) peterson.usr.x5_a_0) (ite peterson.usr.e06_a_1 (ite X1 (- peterson.usr.x5_a_0 1) peterson.usr.x5_a_0) peterson.usr.x5_a_0))) (not peterson.res.init_flag_a_1))))))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.abs_11_a_0 Int) (top.res.abs_12_a_0 Int) (top.res.abs_13_a_0 Int) (top.res.abs_14_a_0 Bool) (top.res.abs_15_a_0 Bool) (top.res.abs_16_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_1_a_0)) (and (= top.res.abs_15_a_0 (and top.res.abs_14_a_0 (< X1 32767))) (let ((X2 top.res.abs_16_a_0)) (and (= top.usr.OK_a_0 (=> X2 (>= X1 0))) (__node_init_peterson_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.abs_13_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_15_a_0 top.res.abs_16_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_14_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.abs_9_a_1 Int) (top.res.abs_10_a_1 Int) (top.res.abs_11_a_1 Int) (top.res.abs_12_a_1 Int) (top.res.abs_13_a_1 Int) (top.res.abs_14_a_1 Bool) (top.res.abs_15_a_1 Bool) (top.res.abs_16_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.abs_11_a_0 Int) (top.res.abs_12_a_0 Int) (top.res.abs_13_a_0 Int) (top.res.abs_14_a_0 Bool) (top.res.abs_15_a_0 Bool) (top.res.abs_16_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_1_a_1)) (and (= top.res.abs_15_a_1 (and top.res.abs_14_a_1 (< X1 32767))) (let ((X2 top.res.abs_16_a_1)) (and (= top.usr.OK_a_1 (=> X2 (>= X1 0))) (__node_trans_peterson_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.abs_12_a_1 top.res.abs_13_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.abs_13_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_15_a_1 top.res.abs_16_a_1 top.res.inst_1_a_1 top.res.abs_15_a_0 top.res.abs_16_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_14_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_14_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.abs_11 Int) (top.res.abs_12 Int) (top.res.abs_13 Int) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.abs_11 Int) (top.res.abs_12 Int) (top.res.abs_13 Int) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_1)) (and (= top.res.abs_15 (and top.res.abs_14 (< X1 32767))) (let ((X2 top.res.abs_16)) (and (= top.usr.OK (=> X2 (>= X1 0))) (__node_init_peterson_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.abs_10 top.res.abs_11 top.res.abs_12 top.res.abs_13 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_15 top.res.abs_16 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_14 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.abs_11 Int) (top.res.abs_12 Int) (top.res.abs_13 Int) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.abs_9! Int) (top.res.abs_10! Int) (top.res.abs_11! Int) (top.res.abs_12! Int) (top.res.abs_13! Int) (top.res.abs_14! Bool) (top.res.abs_15! Bool) (top.res.abs_16! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_1!)) (and (= top.res.abs_15! (and top.res.abs_14! (< X1 32767))) (let ((X2 top.res.abs_16!)) (and (= top.usr.OK! (=> X2 (>= X1 0))) (__node_trans_peterson_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.abs_10! top.res.abs_11! top.res.abs_12! top.res.abs_13! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.abs_10 top.res.abs_11 top.res.abs_12 top.res.abs_13 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_15! top.res.abs_16! top.res.inst_1! top.res.abs_15 top.res.abs_16 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_14! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_14 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.abs_11 Int) (top.res.abs_12 Int) (top.res.abs_13 Int) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/peterson_3.sl b/benchmarks/LIA/Lustre/peterson_3.sl index f1200a2..f725cbe 100644 --- a/benchmarks/LIA/Lustre/peterson_3.sl +++ b/benchmarks/LIA/Lustre/peterson_3.sl @@ -1,1978 +1,55 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_peterson_0 ( - (peterson.usr.e01_a_0 Bool) - (peterson.usr.e02_a_0 Bool) - (peterson.usr.e03_a_0 Bool) - (peterson.usr.e04_a_0 Bool) - (peterson.usr.e05_a_0 Bool) - (peterson.usr.e06_a_0 Bool) - (peterson.usr.e07_a_0 Bool) - (peterson.usr.e08_a_0 Bool) - (peterson.usr.e09_a_0 Bool) - (peterson.usr.e10_a_0 Bool) - (peterson.usr.e11_a_0 Bool) - (peterson.usr.e12_a_0 Bool) - (peterson.res.nondet_23 Int) - (peterson.res.nondet_22 Int) - (peterson.res.nondet_21 Int) - (peterson.res.nondet_20 Int) - (peterson.res.nondet_19 Int) - (peterson.res.nondet_18 Int) - (peterson.res.nondet_17 Int) - (peterson.res.nondet_16 Int) - (peterson.res.nondet_15 Int) - (peterson.res.nondet_14 Int) - (peterson.res.nondet_13 Int) - (peterson.res.nondet_12 Int) - (peterson.res.nondet_11 Int) - (peterson.res.nondet_10 Int) - (peterson.res.nondet_9 Int) - (peterson.res.nondet_8 Int) - (peterson.res.nondet_7 Int) - (peterson.res.nondet_6 Int) - (peterson.res.nondet_5 Int) - (peterson.res.nondet_4 Int) - (peterson.res.nondet_3 Int) - (peterson.res.nondet_2 Int) - (peterson.res.nondet_1 Int) - (peterson.res.nondet_0 Int) - (peterson.usr.x0_a_0 Int) - (peterson.usr.x1_a_0 Int) - (peterson.usr.x2_a_0 Int) - (peterson.usr.x3_a_0 Int) - (peterson.usr.x4_a_0 Int) - (peterson.usr.x5_a_0 Int) - (peterson.usr.x6_a_0 Int) - (peterson.usr.x7_a_0 Int) - (peterson.usr.x8_a_0 Int) - (peterson.usr.x9_a_0 Int) - (peterson.usr.x10_a_0 Int) - (peterson.usr.x11_a_0 Int) - (peterson.usr.x12_a_0 Int) - (peterson.usr.x13_a_0 Int) - (peterson.res.init_flag_a_0 Bool) - ) Bool - - (and - (= peterson.usr.x0_a_0 1) - (let - ((X1 - Bool (let - ((X1 Int peterson.res.nondet_1) (X2 Int peterson.res.nondet_0)) - (and (>= X2 1) (>= X1 1))))) - (and - (= peterson.usr.x4_a_0 1) - (let - ((X2 - Bool (let - ((X2 Int peterson.res.nondet_11) - (X3 Int peterson.res.nondet_10)) - (and (>= X3 1) (>= X2 1))))) - (and - (= peterson.usr.x3_a_0 0) - (let - ((X3 - Bool (let - ((X3 Int peterson.res.nondet_7) - (X4 Int peterson.res.nondet_6)) - (and (>= X4 1) (>= X3 1))))) - (and - (= peterson.usr.x2_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int peterson.res.nondet_3) - (X5 Int peterson.res.nondet_2)) - (and (>= X5 1) (>= X4 1))))) - (and - (= peterson.usr.x1_a_0 0) - (let - ((X5 - Bool (let - ((X5 Int peterson.res.nondet_5) - (X6 Int peterson.res.nondet_4)) - (and (>= X6 1) (>= X5 1))))) - (and - (= peterson.usr.x7_a_0 1) - (let - ((X6 - Bool (let - ((X6 Int peterson.res.nondet_15) - (X7 Int peterson.res.nondet_14)) - (and (>= X7 1) (>= X6 1))))) - (and - (= peterson.usr.x11_a_0 0) - (let - ((X7 - Bool (let - ((X7 Int peterson.res.nondet_13) - (X8 Int peterson.res.nondet_12)) - (and (>= X8 1) (>= X7 1))))) - (and - (= peterson.usr.x9_a_0 1) - (let - ((X8 - Bool (let - ((X8 Int peterson.res.nondet_23) - (X9 Int peterson.res.nondet_22)) - (and (>= X9 1) (>= X8 1))))) - (and - (= peterson.usr.x8_a_0 0) - (= peterson.usr.x13_a_0 0) - (let - ((X9 - Bool (let - ((X9 Int peterson.res.nondet_19) - (X10 Int peterson.res.nondet_18)) - (and (>= X10 1) (>= X9 1))))) - (and - (= peterson.usr.x12_a_0 0) - (let - ((X10 - Bool (let - ((X10 Int peterson.res.nondet_17) - (X11 Int peterson.res.nondet_16)) - (and (>= X11 1) (>= X10 1))))) - (and - (= peterson.usr.x6_a_0 0) - (let - ((X11 - Bool (let - ((X11 Int peterson.res.nondet_21) - (X12 Int peterson.res.nondet_20)) - (and (>= X12 1) (>= X11 1))))) - (and - (= peterson.usr.x10_a_0 1) - (let - ((X12 - Bool (let - ((X12 Int peterson.res.nondet_9) - (X13 Int peterson.res.nondet_8)) - (and (>= X13 1) (>= X12 1))))) - (and - (= peterson.usr.x5_a_0 0) - peterson.res.init_flag_a_0))))))))))))))))))))))))) -) - -(define-fun - __node_trans_peterson_0 ( - (peterson.usr.e01_a_1 Bool) - (peterson.usr.e02_a_1 Bool) - (peterson.usr.e03_a_1 Bool) - (peterson.usr.e04_a_1 Bool) - (peterson.usr.e05_a_1 Bool) - (peterson.usr.e06_a_1 Bool) - (peterson.usr.e07_a_1 Bool) - (peterson.usr.e08_a_1 Bool) - (peterson.usr.e09_a_1 Bool) - (peterson.usr.e10_a_1 Bool) - (peterson.usr.e11_a_1 Bool) - (peterson.usr.e12_a_1 Bool) - (peterson.res.nondet_23 Int) - (peterson.res.nondet_22 Int) - (peterson.res.nondet_21 Int) - (peterson.res.nondet_20 Int) - (peterson.res.nondet_19 Int) - (peterson.res.nondet_18 Int) - (peterson.res.nondet_17 Int) - (peterson.res.nondet_16 Int) - (peterson.res.nondet_15 Int) - (peterson.res.nondet_14 Int) - (peterson.res.nondet_13 Int) - (peterson.res.nondet_12 Int) - (peterson.res.nondet_11 Int) - (peterson.res.nondet_10 Int) - (peterson.res.nondet_9 Int) - (peterson.res.nondet_8 Int) - (peterson.res.nondet_7 Int) - (peterson.res.nondet_6 Int) - (peterson.res.nondet_5 Int) - (peterson.res.nondet_4 Int) - (peterson.res.nondet_3 Int) - (peterson.res.nondet_2 Int) - (peterson.res.nondet_1 Int) - (peterson.res.nondet_0 Int) - (peterson.usr.x0_a_1 Int) - (peterson.usr.x1_a_1 Int) - (peterson.usr.x2_a_1 Int) - (peterson.usr.x3_a_1 Int) - (peterson.usr.x4_a_1 Int) - (peterson.usr.x5_a_1 Int) - (peterson.usr.x6_a_1 Int) - (peterson.usr.x7_a_1 Int) - (peterson.usr.x8_a_1 Int) - (peterson.usr.x9_a_1 Int) - (peterson.usr.x10_a_1 Int) - (peterson.usr.x11_a_1 Int) - (peterson.usr.x12_a_1 Int) - (peterson.usr.x13_a_1 Int) - (peterson.res.init_flag_a_1 Bool) - (peterson.usr.e01_a_0 Bool) - (peterson.usr.e02_a_0 Bool) - (peterson.usr.e03_a_0 Bool) - (peterson.usr.e04_a_0 Bool) - (peterson.usr.e05_a_0 Bool) - (peterson.usr.e06_a_0 Bool) - (peterson.usr.e07_a_0 Bool) - (peterson.usr.e08_a_0 Bool) - (peterson.usr.e09_a_0 Bool) - (peterson.usr.e10_a_0 Bool) - (peterson.usr.e11_a_0 Bool) - (peterson.usr.e12_a_0 Bool) - (peterson.usr.x0_a_0 Int) - (peterson.usr.x1_a_0 Int) - (peterson.usr.x2_a_0 Int) - (peterson.usr.x3_a_0 Int) - (peterson.usr.x4_a_0 Int) - (peterson.usr.x5_a_0 Int) - (peterson.usr.x6_a_0 Int) - (peterson.usr.x7_a_0 Int) - (peterson.usr.x8_a_0 Int) - (peterson.usr.x9_a_0 Int) - (peterson.usr.x10_a_0 Int) - (peterson.usr.x11_a_0 Int) - (peterson.usr.x12_a_0 Int) - (peterson.usr.x13_a_0 Int) - (peterson.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (and (>= peterson.usr.x3_a_0 1) (>= peterson.usr.x5_a_0 1)))) - (let - ((X2 Bool (and (>= peterson.usr.x0_a_0 1) (>= peterson.usr.x4_a_0 1)))) - (and - (= - peterson.usr.x0_a_1 - (ite - peterson.usr.e01_a_1 - (ite X2 (- peterson.usr.x0_a_0 1) peterson.usr.x0_a_0) - (ite - peterson.usr.e06_a_1 - (ite X1 (+ peterson.usr.x0_a_0 1) peterson.usr.x0_a_0) - peterson.usr.x0_a_0))) - (= - peterson.usr.x4_a_1 - (ite - peterson.usr.e01_a_1 - (ite X2 (- peterson.usr.x4_a_0 1) peterson.usr.x4_a_0) - (ite - peterson.usr.e06_a_1 - (ite X1 (+ peterson.usr.x4_a_0 1) peterson.usr.x4_a_0) - peterson.usr.x4_a_0))) - (let - ((X3 Bool (and (>= peterson.usr.x2_a_0 1) (>= peterson.usr.x6_a_0 1)))) - (let - ((X4 Bool (and (>= peterson.usr.x2_a_0 1) (>= peterson.usr.x9_a_0 1)))) - (and - (= - peterson.usr.x3_a_1 - (ite - peterson.usr.e04_a_1 - (ite X4 (+ peterson.usr.x3_a_0 1) peterson.usr.x3_a_0) - (ite - peterson.usr.e05_a_1 - (ite X3 (+ peterson.usr.x3_a_0 1) peterson.usr.x3_a_0) - (ite - peterson.usr.e06_a_1 - (ite X1 (- peterson.usr.x3_a_0 1) peterson.usr.x3_a_0) - peterson.usr.x3_a_0)))) - (let - ((X5 Bool (and (>= peterson.usr.x1_a_0 1) (>= peterson.usr.x7_a_0 1)))) - (let - ((X6 Bool (and (>= peterson.usr.x1_a_0 1) (>= peterson.usr.x6_a_0 1)))) - (and - (= - peterson.usr.x2_a_1 - (ite - peterson.usr.e02_a_1 - (ite X6 (+ peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) - (ite - peterson.usr.e03_a_1 - (ite X5 (+ peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) - (ite - peterson.usr.e04_a_1 - (ite X4 (- peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) - (ite - peterson.usr.e05_a_1 - (ite X3 (- peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) - peterson.usr.x2_a_0))))) - (= - peterson.usr.x1_a_1 - (ite - peterson.usr.e01_a_1 - (ite X2 (+ peterson.usr.x1_a_0 1) peterson.usr.x1_a_0) - (ite - peterson.usr.e02_a_1 - (ite X6 (- peterson.usr.x1_a_0 1) peterson.usr.x1_a_0) - (ite - peterson.usr.e03_a_1 - (ite X5 (- peterson.usr.x1_a_0 1) peterson.usr.x1_a_0) - peterson.usr.x1_a_0)))) - (let - ((X7 - Bool (and (>= peterson.usr.x7_a_0 1) (>= peterson.usr.x11_a_0 1)))) - (and - (= - peterson.usr.x7_a_1 - (ite - peterson.usr.e02_a_1 - (ite X6 (+ peterson.usr.x7_a_0 1) peterson.usr.x7_a_0) - (ite - peterson.usr.e08_a_1 - (ite X7 (- peterson.usr.x7_a_0 1) peterson.usr.x7_a_0) - peterson.usr.x7_a_0))) - (let - ((X8 - Bool (and (>= peterson.usr.x6_a_0 1) (>= peterson.usr.x11_a_0 1)))) - (let - ((X9 - Bool (and - (>= peterson.usr.x9_a_0 1) - (>= peterson.usr.x10_a_0 1)))) - (and - (= - peterson.usr.x11_a_1 - (ite - peterson.usr.e07_a_1 - (ite X9 (+ peterson.usr.x11_a_0 1) peterson.usr.x11_a_0) - (ite - peterson.usr.e08_a_1 - (ite X7 (- peterson.usr.x11_a_0 1) peterson.usr.x11_a_0) - (ite - peterson.usr.e09_a_1 - (ite X8 (- peterson.usr.x11_a_0 1) peterson.usr.x11_a_0) - peterson.usr.x11_a_0)))) - (let - ((X10 - Bool (and - (>= peterson.usr.x8_a_0 1) - (>= peterson.usr.x13_a_0 1)))) - (and - (= - peterson.usr.x9_a_1 - (ite - peterson.usr.e07_a_1 - (ite X9 (- peterson.usr.x9_a_0 1) peterson.usr.x9_a_0) - (ite - peterson.usr.e12_a_1 - (ite X10 (+ peterson.usr.x9_a_0 1) peterson.usr.x9_a_0) - peterson.usr.x9_a_0))) - (= - peterson.usr.x8_a_1 - (ite - peterson.usr.e07_a_1 - (ite X9 (+ peterson.usr.x8_a_0 1) peterson.usr.x8_a_0) - (ite - peterson.usr.e12_a_1 - (ite X10 (- peterson.usr.x8_a_0 1) peterson.usr.x8_a_0) - peterson.usr.x8_a_0))) - (let - ((X11 - Bool (and - (>= peterson.usr.x7_a_0 1) - (>= peterson.usr.x12_a_0 1)))) - (let - ((X12 - Bool (and - (>= peterson.usr.x4_a_0 1) - (>= peterson.usr.x12_a_0 1)))) - (and - (= - peterson.usr.x13_a_1 - (ite - peterson.usr.e10_a_1 - (ite X12 (+ peterson.usr.x13_a_0 1) peterson.usr.x13_a_0) - (ite - peterson.usr.e11_a_1 - (ite X11 (+ peterson.usr.x13_a_0 1) peterson.usr.x13_a_0) - (ite - peterson.usr.e12_a_1 - (ite - X10 - (- peterson.usr.x13_a_0 1) - peterson.usr.x13_a_0) - peterson.usr.x13_a_0)))) - (= - peterson.usr.x12_a_1 - (ite - peterson.usr.e08_a_1 - (ite X7 (+ peterson.usr.x12_a_0 1) peterson.usr.x12_a_0) - (ite - peterson.usr.e09_a_1 - (ite X8 (+ peterson.usr.x12_a_0 1) peterson.usr.x12_a_0) - (ite - peterson.usr.e10_a_1 - (ite - X12 - (- peterson.usr.x12_a_0 1) - peterson.usr.x12_a_0) - (ite - peterson.usr.e11_a_1 - (ite - X11 - (- peterson.usr.x12_a_0 1) - peterson.usr.x12_a_0) - peterson.usr.x12_a_0))))) - (= - peterson.usr.x6_a_1 - (ite - peterson.usr.e02_a_1 - (ite X6 (- peterson.usr.x6_a_0 1) peterson.usr.x6_a_0) - (ite - peterson.usr.e08_a_1 - (ite X7 (+ peterson.usr.x6_a_0 1) peterson.usr.x6_a_0) - peterson.usr.x6_a_0))) - (= - peterson.usr.x10_a_1 - (ite - peterson.usr.e07_a_1 - (ite X9 (- peterson.usr.x10_a_0 1) peterson.usr.x10_a_0) - (ite - peterson.usr.e12_a_1 - (ite X10 (+ peterson.usr.x10_a_0 1) peterson.usr.x10_a_0) - peterson.usr.x10_a_0))) - (= - peterson.usr.x5_a_1 - (ite - peterson.usr.e01_a_1 - (ite X2 (+ peterson.usr.x5_a_0 1) peterson.usr.x5_a_0) - (ite - peterson.usr.e06_a_1 - (ite X1 (- peterson.usr.x5_a_0 1) peterson.usr.x5_a_0) - peterson.usr.x5_a_0))) - (not peterson.res.init_flag_a_1)))))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.abs_11_a_0 Int) - (top.res.abs_12_a_0 Int) - (top.res.abs_13_a_0 Int) - (top.res.abs_14_a_0 Bool) - (top.res.abs_15_a_0 Bool) - (top.res.abs_16_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_2_a_0)) - (and - (= top.res.abs_15_a_0 (and top.res.abs_14_a_0 (< X1 32767))) - (let - ((X2 Bool top.res.abs_16_a_0)) - (and - (= top.usr.OK_a_0 (=> X2 (>= X1 0))) - (__node_init_peterson_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.abs_13_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_15_a_0 - top.res.abs_16_a_0 - top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_14_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.abs_9_a_1 Int) - (top.res.abs_10_a_1 Int) - (top.res.abs_11_a_1 Int) - (top.res.abs_12_a_1 Int) - (top.res.abs_13_a_1 Int) - (top.res.abs_14_a_1 Bool) - (top.res.abs_15_a_1 Bool) - (top.res.abs_16_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.abs_11_a_0 Int) - (top.res.abs_12_a_0 Int) - (top.res.abs_13_a_0 Int) - (top.res.abs_14_a_0 Bool) - (top.res.abs_15_a_0 Bool) - (top.res.abs_16_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_2_a_1)) - (and - (= top.res.abs_15_a_1 (and top.res.abs_14_a_1 (< X1 32767))) - (let - ((X2 Bool top.res.abs_16_a_1)) - (and - (= top.usr.OK_a_1 (=> X2 (>= X1 0))) - (__node_trans_peterson_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.abs_12_a_1 - top.res.abs_13_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.abs_13_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_15_a_1 - top.res.abs_16_a_1 - top.res.inst_1_a_1 - top.res.abs_15_a_0 - top.res.abs_16_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_14_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_14_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.abs_11 Int) - (top.res.abs_12 Int) - (top.res.abs_13 Int) - (top.res.abs_14 Bool) - (top.res.abs_15 Bool) - (top.res.abs_16 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.abs_10 Int) -(declare-primed-var top.res.abs_11 Int) -(declare-primed-var top.res.abs_12 Int) -(declare-primed-var top.res.abs_13 Int) -(declare-primed-var top.res.abs_14 Bool) -(declare-primed-var top.res.abs_15 Bool) -(declare-primed-var top.res.abs_16 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.abs_11 Int) - (top.res.abs_12 Int) - (top.res.abs_13 Int) - (top.res.abs_14 Bool) - (top.res.abs_15 Bool) - (top.res.abs_16 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_2)) - (and - (= top.res.abs_15 (and top.res.abs_14 (< X1 32767))) - (let - ((X2 Bool top.res.abs_16)) - (and - (= top.usr.OK (=> X2 (>= X1 0))) - (__node_init_peterson_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.abs_10 - top.res.abs_11 - top.res.abs_12 - top.res.abs_13 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_15 top.res.abs_16 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_14 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.abs_11 Int) - (top.res.abs_12 Int) - (top.res.abs_13 Int) - (top.res.abs_14 Bool) - (top.res.abs_15 Bool) - (top.res.abs_16 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.abs_9! Int) - (top.res.abs_10! Int) - (top.res.abs_11! Int) - (top.res.abs_12! Int) - (top.res.abs_13! Int) - (top.res.abs_14! Bool) - (top.res.abs_15! Bool) - (top.res.abs_16! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Int top.res.abs_2!)) - (and - (= top.res.abs_15! (and top.res.abs_14! (< X1 32767))) - (let - ((X2 Bool top.res.abs_16!)) - (and - (= top.usr.OK! (=> X2 (>= X1 0))) - (__node_trans_peterson_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.abs_10! - top.res.abs_11! - top.res.abs_12! - top.res.abs_13! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.abs_10 - top.res.abs_11 - top.res.abs_12 - top.res.abs_13 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_15! - top.res.abs_16! - top.res.inst_1! - top.res.abs_15 - top.res.abs_16 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_14! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_14 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.abs_11 Int) - (top.res.abs_12 Int) - (top.res.abs_13 Int) - (top.res.abs_14 Bool) - (top.res.abs_15 Bool) - (top.res.abs_16 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_peterson_0 ((peterson.usr.e01_a_0 Bool) (peterson.usr.e02_a_0 Bool) (peterson.usr.e03_a_0 Bool) (peterson.usr.e04_a_0 Bool) (peterson.usr.e05_a_0 Bool) (peterson.usr.e06_a_0 Bool) (peterson.usr.e07_a_0 Bool) (peterson.usr.e08_a_0 Bool) (peterson.usr.e09_a_0 Bool) (peterson.usr.e10_a_0 Bool) (peterson.usr.e11_a_0 Bool) (peterson.usr.e12_a_0 Bool) (peterson.res.nondet_23 Int) (peterson.res.nondet_22 Int) (peterson.res.nondet_21 Int) (peterson.res.nondet_20 Int) (peterson.res.nondet_19 Int) (peterson.res.nondet_18 Int) (peterson.res.nondet_17 Int) (peterson.res.nondet_16 Int) (peterson.res.nondet_15 Int) (peterson.res.nondet_14 Int) (peterson.res.nondet_13 Int) (peterson.res.nondet_12 Int) (peterson.res.nondet_11 Int) (peterson.res.nondet_10 Int) (peterson.res.nondet_9 Int) (peterson.res.nondet_8 Int) (peterson.res.nondet_7 Int) (peterson.res.nondet_6 Int) (peterson.res.nondet_5 Int) (peterson.res.nondet_4 Int) (peterson.res.nondet_3 Int) (peterson.res.nondet_2 Int) (peterson.res.nondet_1 Int) (peterson.res.nondet_0 Int) (peterson.usr.x0_a_0 Int) (peterson.usr.x1_a_0 Int) (peterson.usr.x2_a_0 Int) (peterson.usr.x3_a_0 Int) (peterson.usr.x4_a_0 Int) (peterson.usr.x5_a_0 Int) (peterson.usr.x6_a_0 Int) (peterson.usr.x7_a_0 Int) (peterson.usr.x8_a_0 Int) (peterson.usr.x9_a_0 Int) (peterson.usr.x10_a_0 Int) (peterson.usr.x11_a_0 Int) (peterson.usr.x12_a_0 Int) (peterson.usr.x13_a_0 Int) (peterson.res.init_flag_a_0 Bool)) Bool + (and (= peterson.usr.x0_a_0 1) (let ((X1 (let ((X1 peterson.res.nondet_1) (X2 peterson.res.nondet_0)) (and (>= X2 1) (>= X1 1))))) (and (= peterson.usr.x4_a_0 1) (let ((X2 (let ((X2 peterson.res.nondet_11) (X3 peterson.res.nondet_10)) (and (>= X3 1) (>= X2 1))))) (and (= peterson.usr.x3_a_0 0) (let ((X3 (let ((X3 peterson.res.nondet_7) (X4 peterson.res.nondet_6)) (and (>= X4 1) (>= X3 1))))) (and (= peterson.usr.x2_a_0 0) (let ((X4 (let ((X4 peterson.res.nondet_3) (X5 peterson.res.nondet_2)) (and (>= X5 1) (>= X4 1))))) (and (= peterson.usr.x1_a_0 0) (let ((X5 (let ((X5 peterson.res.nondet_5) (X6 peterson.res.nondet_4)) (and (>= X6 1) (>= X5 1))))) (and (= peterson.usr.x7_a_0 1) (let ((X6 (let ((X6 peterson.res.nondet_15) (X7 peterson.res.nondet_14)) (and (>= X7 1) (>= X6 1))))) (and (= peterson.usr.x11_a_0 0) (let ((X7 (let ((X7 peterson.res.nondet_13) (X8 peterson.res.nondet_12)) (and (>= X8 1) (>= X7 1))))) (and (= peterson.usr.x9_a_0 1) (let ((X8 (let ((X8 peterson.res.nondet_23) (X9 peterson.res.nondet_22)) (and (>= X9 1) (>= X8 1))))) (and (= peterson.usr.x8_a_0 0) (= peterson.usr.x13_a_0 0) (let ((X9 (let ((X9 peterson.res.nondet_19) (X10 peterson.res.nondet_18)) (and (>= X10 1) (>= X9 1))))) (and (= peterson.usr.x12_a_0 0) (let ((X10 (let ((X10 peterson.res.nondet_17) (X11 peterson.res.nondet_16)) (and (>= X11 1) (>= X10 1))))) (and (= peterson.usr.x6_a_0 0) (let ((X11 (let ((X11 peterson.res.nondet_21) (X12 peterson.res.nondet_20)) (and (>= X12 1) (>= X11 1))))) (and (= peterson.usr.x10_a_0 1) (let ((X12 (let ((X12 peterson.res.nondet_9) (X13 peterson.res.nondet_8)) (and (>= X13 1) (>= X12 1))))) (and (= peterson.usr.x5_a_0 0) peterson.res.init_flag_a_0)))))))))))))))))))))))))) +(define-fun __node_trans_peterson_0 ((peterson.usr.e01_a_1 Bool) (peterson.usr.e02_a_1 Bool) (peterson.usr.e03_a_1 Bool) (peterson.usr.e04_a_1 Bool) (peterson.usr.e05_a_1 Bool) (peterson.usr.e06_a_1 Bool) (peterson.usr.e07_a_1 Bool) (peterson.usr.e08_a_1 Bool) (peterson.usr.e09_a_1 Bool) (peterson.usr.e10_a_1 Bool) (peterson.usr.e11_a_1 Bool) (peterson.usr.e12_a_1 Bool) (peterson.res.nondet_23 Int) (peterson.res.nondet_22 Int) (peterson.res.nondet_21 Int) (peterson.res.nondet_20 Int) (peterson.res.nondet_19 Int) (peterson.res.nondet_18 Int) (peterson.res.nondet_17 Int) (peterson.res.nondet_16 Int) (peterson.res.nondet_15 Int) (peterson.res.nondet_14 Int) (peterson.res.nondet_13 Int) (peterson.res.nondet_12 Int) (peterson.res.nondet_11 Int) (peterson.res.nondet_10 Int) (peterson.res.nondet_9 Int) (peterson.res.nondet_8 Int) (peterson.res.nondet_7 Int) (peterson.res.nondet_6 Int) (peterson.res.nondet_5 Int) (peterson.res.nondet_4 Int) (peterson.res.nondet_3 Int) (peterson.res.nondet_2 Int) (peterson.res.nondet_1 Int) (peterson.res.nondet_0 Int) (peterson.usr.x0_a_1 Int) (peterson.usr.x1_a_1 Int) (peterson.usr.x2_a_1 Int) (peterson.usr.x3_a_1 Int) (peterson.usr.x4_a_1 Int) (peterson.usr.x5_a_1 Int) (peterson.usr.x6_a_1 Int) (peterson.usr.x7_a_1 Int) (peterson.usr.x8_a_1 Int) (peterson.usr.x9_a_1 Int) (peterson.usr.x10_a_1 Int) (peterson.usr.x11_a_1 Int) (peterson.usr.x12_a_1 Int) (peterson.usr.x13_a_1 Int) (peterson.res.init_flag_a_1 Bool) (peterson.usr.e01_a_0 Bool) (peterson.usr.e02_a_0 Bool) (peterson.usr.e03_a_0 Bool) (peterson.usr.e04_a_0 Bool) (peterson.usr.e05_a_0 Bool) (peterson.usr.e06_a_0 Bool) (peterson.usr.e07_a_0 Bool) (peterson.usr.e08_a_0 Bool) (peterson.usr.e09_a_0 Bool) (peterson.usr.e10_a_0 Bool) (peterson.usr.e11_a_0 Bool) (peterson.usr.e12_a_0 Bool) (peterson.usr.x0_a_0 Int) (peterson.usr.x1_a_0 Int) (peterson.usr.x2_a_0 Int) (peterson.usr.x3_a_0 Int) (peterson.usr.x4_a_0 Int) (peterson.usr.x5_a_0 Int) (peterson.usr.x6_a_0 Int) (peterson.usr.x7_a_0 Int) (peterson.usr.x8_a_0 Int) (peterson.usr.x9_a_0 Int) (peterson.usr.x10_a_0 Int) (peterson.usr.x11_a_0 Int) (peterson.usr.x12_a_0 Int) (peterson.usr.x13_a_0 Int) (peterson.res.init_flag_a_0 Bool)) Bool + (let ((X1 (and (>= peterson.usr.x3_a_0 1) (>= peterson.usr.x5_a_0 1)))) (let ((X2 (and (>= peterson.usr.x0_a_0 1) (>= peterson.usr.x4_a_0 1)))) (and (= peterson.usr.x0_a_1 (ite peterson.usr.e01_a_1 (ite X2 (- peterson.usr.x0_a_0 1) peterson.usr.x0_a_0) (ite peterson.usr.e06_a_1 (ite X1 (+ peterson.usr.x0_a_0 1) peterson.usr.x0_a_0) peterson.usr.x0_a_0))) (= peterson.usr.x4_a_1 (ite peterson.usr.e01_a_1 (ite X2 (- peterson.usr.x4_a_0 1) peterson.usr.x4_a_0) (ite peterson.usr.e06_a_1 (ite X1 (+ peterson.usr.x4_a_0 1) peterson.usr.x4_a_0) peterson.usr.x4_a_0))) (let ((X3 (and (>= peterson.usr.x2_a_0 1) (>= peterson.usr.x6_a_0 1)))) (let ((X4 (and (>= peterson.usr.x2_a_0 1) (>= peterson.usr.x9_a_0 1)))) (and (= peterson.usr.x3_a_1 (ite peterson.usr.e04_a_1 (ite X4 (+ peterson.usr.x3_a_0 1) peterson.usr.x3_a_0) (ite peterson.usr.e05_a_1 (ite X3 (+ peterson.usr.x3_a_0 1) peterson.usr.x3_a_0) (ite peterson.usr.e06_a_1 (ite X1 (- peterson.usr.x3_a_0 1) peterson.usr.x3_a_0) peterson.usr.x3_a_0)))) (let ((X5 (and (>= peterson.usr.x1_a_0 1) (>= peterson.usr.x7_a_0 1)))) (let ((X6 (and (>= peterson.usr.x1_a_0 1) (>= peterson.usr.x6_a_0 1)))) (and (= peterson.usr.x2_a_1 (ite peterson.usr.e02_a_1 (ite X6 (+ peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) (ite peterson.usr.e03_a_1 (ite X5 (+ peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) (ite peterson.usr.e04_a_1 (ite X4 (- peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) (ite peterson.usr.e05_a_1 (ite X3 (- peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) peterson.usr.x2_a_0))))) (= peterson.usr.x1_a_1 (ite peterson.usr.e01_a_1 (ite X2 (+ peterson.usr.x1_a_0 1) peterson.usr.x1_a_0) (ite peterson.usr.e02_a_1 (ite X6 (- peterson.usr.x1_a_0 1) peterson.usr.x1_a_0) (ite peterson.usr.e03_a_1 (ite X5 (- peterson.usr.x1_a_0 1) peterson.usr.x1_a_0) peterson.usr.x1_a_0)))) (let ((X7 (and (>= peterson.usr.x7_a_0 1) (>= peterson.usr.x11_a_0 1)))) (and (= peterson.usr.x7_a_1 (ite peterson.usr.e02_a_1 (ite X6 (+ peterson.usr.x7_a_0 1) peterson.usr.x7_a_0) (ite peterson.usr.e08_a_1 (ite X7 (- peterson.usr.x7_a_0 1) peterson.usr.x7_a_0) peterson.usr.x7_a_0))) (let ((X8 (and (>= peterson.usr.x6_a_0 1) (>= peterson.usr.x11_a_0 1)))) (let ((X9 (and (>= peterson.usr.x9_a_0 1) (>= peterson.usr.x10_a_0 1)))) (and (= peterson.usr.x11_a_1 (ite peterson.usr.e07_a_1 (ite X9 (+ peterson.usr.x11_a_0 1) peterson.usr.x11_a_0) (ite peterson.usr.e08_a_1 (ite X7 (- peterson.usr.x11_a_0 1) peterson.usr.x11_a_0) (ite peterson.usr.e09_a_1 (ite X8 (- peterson.usr.x11_a_0 1) peterson.usr.x11_a_0) peterson.usr.x11_a_0)))) (let ((X10 (and (>= peterson.usr.x8_a_0 1) (>= peterson.usr.x13_a_0 1)))) (and (= peterson.usr.x9_a_1 (ite peterson.usr.e07_a_1 (ite X9 (- peterson.usr.x9_a_0 1) peterson.usr.x9_a_0) (ite peterson.usr.e12_a_1 (ite X10 (+ peterson.usr.x9_a_0 1) peterson.usr.x9_a_0) peterson.usr.x9_a_0))) (= peterson.usr.x8_a_1 (ite peterson.usr.e07_a_1 (ite X9 (+ peterson.usr.x8_a_0 1) peterson.usr.x8_a_0) (ite peterson.usr.e12_a_1 (ite X10 (- peterson.usr.x8_a_0 1) peterson.usr.x8_a_0) peterson.usr.x8_a_0))) (let ((X11 (and (>= peterson.usr.x7_a_0 1) (>= peterson.usr.x12_a_0 1)))) (let ((X12 (and (>= peterson.usr.x4_a_0 1) (>= peterson.usr.x12_a_0 1)))) (and (= peterson.usr.x13_a_1 (ite peterson.usr.e10_a_1 (ite X12 (+ peterson.usr.x13_a_0 1) peterson.usr.x13_a_0) (ite peterson.usr.e11_a_1 (ite X11 (+ peterson.usr.x13_a_0 1) peterson.usr.x13_a_0) (ite peterson.usr.e12_a_1 (ite X10 (- peterson.usr.x13_a_0 1) peterson.usr.x13_a_0) peterson.usr.x13_a_0)))) (= peterson.usr.x12_a_1 (ite peterson.usr.e08_a_1 (ite X7 (+ peterson.usr.x12_a_0 1) peterson.usr.x12_a_0) (ite peterson.usr.e09_a_1 (ite X8 (+ peterson.usr.x12_a_0 1) peterson.usr.x12_a_0) (ite peterson.usr.e10_a_1 (ite X12 (- peterson.usr.x12_a_0 1) peterson.usr.x12_a_0) (ite peterson.usr.e11_a_1 (ite X11 (- peterson.usr.x12_a_0 1) peterson.usr.x12_a_0) peterson.usr.x12_a_0))))) (= peterson.usr.x6_a_1 (ite peterson.usr.e02_a_1 (ite X6 (- peterson.usr.x6_a_0 1) peterson.usr.x6_a_0) (ite peterson.usr.e08_a_1 (ite X7 (+ peterson.usr.x6_a_0 1) peterson.usr.x6_a_0) peterson.usr.x6_a_0))) (= peterson.usr.x10_a_1 (ite peterson.usr.e07_a_1 (ite X9 (- peterson.usr.x10_a_0 1) peterson.usr.x10_a_0) (ite peterson.usr.e12_a_1 (ite X10 (+ peterson.usr.x10_a_0 1) peterson.usr.x10_a_0) peterson.usr.x10_a_0))) (= peterson.usr.x5_a_1 (ite peterson.usr.e01_a_1 (ite X2 (+ peterson.usr.x5_a_0 1) peterson.usr.x5_a_0) (ite peterson.usr.e06_a_1 (ite X1 (- peterson.usr.x5_a_0 1) peterson.usr.x5_a_0) peterson.usr.x5_a_0))) (not peterson.res.init_flag_a_1))))))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.abs_11_a_0 Int) (top.res.abs_12_a_0 Int) (top.res.abs_13_a_0 Int) (top.res.abs_14_a_0 Bool) (top.res.abs_15_a_0 Bool) (top.res.abs_16_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_2_a_0)) (and (= top.res.abs_15_a_0 (and top.res.abs_14_a_0 (< X1 32767))) (let ((X2 top.res.abs_16_a_0)) (and (= top.usr.OK_a_0 (=> X2 (>= X1 0))) (__node_init_peterson_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.abs_13_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_15_a_0 top.res.abs_16_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_14_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.abs_9_a_1 Int) (top.res.abs_10_a_1 Int) (top.res.abs_11_a_1 Int) (top.res.abs_12_a_1 Int) (top.res.abs_13_a_1 Int) (top.res.abs_14_a_1 Bool) (top.res.abs_15_a_1 Bool) (top.res.abs_16_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.abs_11_a_0 Int) (top.res.abs_12_a_0 Int) (top.res.abs_13_a_0 Int) (top.res.abs_14_a_0 Bool) (top.res.abs_15_a_0 Bool) (top.res.abs_16_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_2_a_1)) (and (= top.res.abs_15_a_1 (and top.res.abs_14_a_1 (< X1 32767))) (let ((X2 top.res.abs_16_a_1)) (and (= top.usr.OK_a_1 (=> X2 (>= X1 0))) (__node_trans_peterson_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.abs_12_a_1 top.res.abs_13_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.abs_13_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_15_a_1 top.res.abs_16_a_1 top.res.inst_1_a_1 top.res.abs_15_a_0 top.res.abs_16_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_14_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_14_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.abs_11 Int) (top.res.abs_12 Int) (top.res.abs_13 Int) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.abs_11 Int) (top.res.abs_12 Int) (top.res.abs_13 Int) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_2)) (and (= top.res.abs_15 (and top.res.abs_14 (< X1 32767))) (let ((X2 top.res.abs_16)) (and (= top.usr.OK (=> X2 (>= X1 0))) (__node_init_peterson_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.abs_10 top.res.abs_11 top.res.abs_12 top.res.abs_13 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_15 top.res.abs_16 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_14 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.abs_11 Int) (top.res.abs_12 Int) (top.res.abs_13 Int) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.abs_9! Int) (top.res.abs_10! Int) (top.res.abs_11! Int) (top.res.abs_12! Int) (top.res.abs_13! Int) (top.res.abs_14! Bool) (top.res.abs_15! Bool) (top.res.abs_16! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_2!)) (and (= top.res.abs_15! (and top.res.abs_14! (< X1 32767))) (let ((X2 top.res.abs_16!)) (and (= top.usr.OK! (=> X2 (>= X1 0))) (__node_trans_peterson_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.abs_10! top.res.abs_11! top.res.abs_12! top.res.abs_13! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.abs_10 top.res.abs_11 top.res.abs_12 top.res.abs_13 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_15! top.res.abs_16! top.res.inst_1! top.res.abs_15 top.res.abs_16 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_14! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_14 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.abs_11 Int) (top.res.abs_12 Int) (top.res.abs_13 Int) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/peterson_4.sl b/benchmarks/LIA/Lustre/peterson_4.sl index e1005ff..6d7d371 100644 --- a/benchmarks/LIA/Lustre/peterson_4.sl +++ b/benchmarks/LIA/Lustre/peterson_4.sl @@ -1,1978 +1,55 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_peterson_0 ( - (peterson.usr.e01_a_0 Bool) - (peterson.usr.e02_a_0 Bool) - (peterson.usr.e03_a_0 Bool) - (peterson.usr.e04_a_0 Bool) - (peterson.usr.e05_a_0 Bool) - (peterson.usr.e06_a_0 Bool) - (peterson.usr.e07_a_0 Bool) - (peterson.usr.e08_a_0 Bool) - (peterson.usr.e09_a_0 Bool) - (peterson.usr.e10_a_0 Bool) - (peterson.usr.e11_a_0 Bool) - (peterson.usr.e12_a_0 Bool) - (peterson.res.nondet_23 Int) - (peterson.res.nondet_22 Int) - (peterson.res.nondet_21 Int) - (peterson.res.nondet_20 Int) - (peterson.res.nondet_19 Int) - (peterson.res.nondet_18 Int) - (peterson.res.nondet_17 Int) - (peterson.res.nondet_16 Int) - (peterson.res.nondet_15 Int) - (peterson.res.nondet_14 Int) - (peterson.res.nondet_13 Int) - (peterson.res.nondet_12 Int) - (peterson.res.nondet_11 Int) - (peterson.res.nondet_10 Int) - (peterson.res.nondet_9 Int) - (peterson.res.nondet_8 Int) - (peterson.res.nondet_7 Int) - (peterson.res.nondet_6 Int) - (peterson.res.nondet_5 Int) - (peterson.res.nondet_4 Int) - (peterson.res.nondet_3 Int) - (peterson.res.nondet_2 Int) - (peterson.res.nondet_1 Int) - (peterson.res.nondet_0 Int) - (peterson.usr.x0_a_0 Int) - (peterson.usr.x1_a_0 Int) - (peterson.usr.x2_a_0 Int) - (peterson.usr.x3_a_0 Int) - (peterson.usr.x4_a_0 Int) - (peterson.usr.x5_a_0 Int) - (peterson.usr.x6_a_0 Int) - (peterson.usr.x7_a_0 Int) - (peterson.usr.x8_a_0 Int) - (peterson.usr.x9_a_0 Int) - (peterson.usr.x10_a_0 Int) - (peterson.usr.x11_a_0 Int) - (peterson.usr.x12_a_0 Int) - (peterson.usr.x13_a_0 Int) - (peterson.res.init_flag_a_0 Bool) - ) Bool - - (and - (= peterson.usr.x0_a_0 1) - (let - ((X1 - Bool (let - ((X1 Int peterson.res.nondet_1) (X2 Int peterson.res.nondet_0)) - (and (>= X2 1) (>= X1 1))))) - (and - (= peterson.usr.x4_a_0 1) - (let - ((X2 - Bool (let - ((X2 Int peterson.res.nondet_11) - (X3 Int peterson.res.nondet_10)) - (and (>= X3 1) (>= X2 1))))) - (and - (= peterson.usr.x3_a_0 0) - (let - ((X3 - Bool (let - ((X3 Int peterson.res.nondet_7) - (X4 Int peterson.res.nondet_6)) - (and (>= X4 1) (>= X3 1))))) - (and - (= peterson.usr.x2_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int peterson.res.nondet_3) - (X5 Int peterson.res.nondet_2)) - (and (>= X5 1) (>= X4 1))))) - (and - (= peterson.usr.x1_a_0 0) - (let - ((X5 - Bool (let - ((X5 Int peterson.res.nondet_5) - (X6 Int peterson.res.nondet_4)) - (and (>= X6 1) (>= X5 1))))) - (and - (= peterson.usr.x7_a_0 1) - (let - ((X6 - Bool (let - ((X6 Int peterson.res.nondet_15) - (X7 Int peterson.res.nondet_14)) - (and (>= X7 1) (>= X6 1))))) - (and - (= peterson.usr.x11_a_0 0) - (let - ((X7 - Bool (let - ((X7 Int peterson.res.nondet_13) - (X8 Int peterson.res.nondet_12)) - (and (>= X8 1) (>= X7 1))))) - (and - (= peterson.usr.x9_a_0 1) - (let - ((X8 - Bool (let - ((X8 Int peterson.res.nondet_23) - (X9 Int peterson.res.nondet_22)) - (and (>= X9 1) (>= X8 1))))) - (and - (= peterson.usr.x8_a_0 0) - (= peterson.usr.x13_a_0 0) - (let - ((X9 - Bool (let - ((X9 Int peterson.res.nondet_19) - (X10 Int peterson.res.nondet_18)) - (and (>= X10 1) (>= X9 1))))) - (and - (= peterson.usr.x12_a_0 0) - (let - ((X10 - Bool (let - ((X10 Int peterson.res.nondet_17) - (X11 Int peterson.res.nondet_16)) - (and (>= X11 1) (>= X10 1))))) - (and - (= peterson.usr.x6_a_0 0) - (let - ((X11 - Bool (let - ((X11 Int peterson.res.nondet_21) - (X12 Int peterson.res.nondet_20)) - (and (>= X12 1) (>= X11 1))))) - (and - (= peterson.usr.x10_a_0 1) - (let - ((X12 - Bool (let - ((X12 Int peterson.res.nondet_9) - (X13 Int peterson.res.nondet_8)) - (and (>= X13 1) (>= X12 1))))) - (and - (= peterson.usr.x5_a_0 0) - peterson.res.init_flag_a_0))))))))))))))))))))))))) -) - -(define-fun - __node_trans_peterson_0 ( - (peterson.usr.e01_a_1 Bool) - (peterson.usr.e02_a_1 Bool) - (peterson.usr.e03_a_1 Bool) - (peterson.usr.e04_a_1 Bool) - (peterson.usr.e05_a_1 Bool) - (peterson.usr.e06_a_1 Bool) - (peterson.usr.e07_a_1 Bool) - (peterson.usr.e08_a_1 Bool) - (peterson.usr.e09_a_1 Bool) - (peterson.usr.e10_a_1 Bool) - (peterson.usr.e11_a_1 Bool) - (peterson.usr.e12_a_1 Bool) - (peterson.res.nondet_23 Int) - (peterson.res.nondet_22 Int) - (peterson.res.nondet_21 Int) - (peterson.res.nondet_20 Int) - (peterson.res.nondet_19 Int) - (peterson.res.nondet_18 Int) - (peterson.res.nondet_17 Int) - (peterson.res.nondet_16 Int) - (peterson.res.nondet_15 Int) - (peterson.res.nondet_14 Int) - (peterson.res.nondet_13 Int) - (peterson.res.nondet_12 Int) - (peterson.res.nondet_11 Int) - (peterson.res.nondet_10 Int) - (peterson.res.nondet_9 Int) - (peterson.res.nondet_8 Int) - (peterson.res.nondet_7 Int) - (peterson.res.nondet_6 Int) - (peterson.res.nondet_5 Int) - (peterson.res.nondet_4 Int) - (peterson.res.nondet_3 Int) - (peterson.res.nondet_2 Int) - (peterson.res.nondet_1 Int) - (peterson.res.nondet_0 Int) - (peterson.usr.x0_a_1 Int) - (peterson.usr.x1_a_1 Int) - (peterson.usr.x2_a_1 Int) - (peterson.usr.x3_a_1 Int) - (peterson.usr.x4_a_1 Int) - (peterson.usr.x5_a_1 Int) - (peterson.usr.x6_a_1 Int) - (peterson.usr.x7_a_1 Int) - (peterson.usr.x8_a_1 Int) - (peterson.usr.x9_a_1 Int) - (peterson.usr.x10_a_1 Int) - (peterson.usr.x11_a_1 Int) - (peterson.usr.x12_a_1 Int) - (peterson.usr.x13_a_1 Int) - (peterson.res.init_flag_a_1 Bool) - (peterson.usr.e01_a_0 Bool) - (peterson.usr.e02_a_0 Bool) - (peterson.usr.e03_a_0 Bool) - (peterson.usr.e04_a_0 Bool) - (peterson.usr.e05_a_0 Bool) - (peterson.usr.e06_a_0 Bool) - (peterson.usr.e07_a_0 Bool) - (peterson.usr.e08_a_0 Bool) - (peterson.usr.e09_a_0 Bool) - (peterson.usr.e10_a_0 Bool) - (peterson.usr.e11_a_0 Bool) - (peterson.usr.e12_a_0 Bool) - (peterson.usr.x0_a_0 Int) - (peterson.usr.x1_a_0 Int) - (peterson.usr.x2_a_0 Int) - (peterson.usr.x3_a_0 Int) - (peterson.usr.x4_a_0 Int) - (peterson.usr.x5_a_0 Int) - (peterson.usr.x6_a_0 Int) - (peterson.usr.x7_a_0 Int) - (peterson.usr.x8_a_0 Int) - (peterson.usr.x9_a_0 Int) - (peterson.usr.x10_a_0 Int) - (peterson.usr.x11_a_0 Int) - (peterson.usr.x12_a_0 Int) - (peterson.usr.x13_a_0 Int) - (peterson.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (and (>= peterson.usr.x3_a_0 1) (>= peterson.usr.x5_a_0 1)))) - (let - ((X2 Bool (and (>= peterson.usr.x0_a_0 1) (>= peterson.usr.x4_a_0 1)))) - (and - (= - peterson.usr.x0_a_1 - (ite - peterson.usr.e01_a_1 - (ite X2 (- peterson.usr.x0_a_0 1) peterson.usr.x0_a_0) - (ite - peterson.usr.e06_a_1 - (ite X1 (+ peterson.usr.x0_a_0 1) peterson.usr.x0_a_0) - peterson.usr.x0_a_0))) - (= - peterson.usr.x4_a_1 - (ite - peterson.usr.e01_a_1 - (ite X2 (- peterson.usr.x4_a_0 1) peterson.usr.x4_a_0) - (ite - peterson.usr.e06_a_1 - (ite X1 (+ peterson.usr.x4_a_0 1) peterson.usr.x4_a_0) - peterson.usr.x4_a_0))) - (let - ((X3 Bool (and (>= peterson.usr.x2_a_0 1) (>= peterson.usr.x6_a_0 1)))) - (let - ((X4 Bool (and (>= peterson.usr.x2_a_0 1) (>= peterson.usr.x9_a_0 1)))) - (and - (= - peterson.usr.x3_a_1 - (ite - peterson.usr.e04_a_1 - (ite X4 (+ peterson.usr.x3_a_0 1) peterson.usr.x3_a_0) - (ite - peterson.usr.e05_a_1 - (ite X3 (+ peterson.usr.x3_a_0 1) peterson.usr.x3_a_0) - (ite - peterson.usr.e06_a_1 - (ite X1 (- peterson.usr.x3_a_0 1) peterson.usr.x3_a_0) - peterson.usr.x3_a_0)))) - (let - ((X5 Bool (and (>= peterson.usr.x1_a_0 1) (>= peterson.usr.x7_a_0 1)))) - (let - ((X6 Bool (and (>= peterson.usr.x1_a_0 1) (>= peterson.usr.x6_a_0 1)))) - (and - (= - peterson.usr.x2_a_1 - (ite - peterson.usr.e02_a_1 - (ite X6 (+ peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) - (ite - peterson.usr.e03_a_1 - (ite X5 (+ peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) - (ite - peterson.usr.e04_a_1 - (ite X4 (- peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) - (ite - peterson.usr.e05_a_1 - (ite X3 (- peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) - peterson.usr.x2_a_0))))) - (= - peterson.usr.x1_a_1 - (ite - peterson.usr.e01_a_1 - (ite X2 (+ peterson.usr.x1_a_0 1) peterson.usr.x1_a_0) - (ite - peterson.usr.e02_a_1 - (ite X6 (- peterson.usr.x1_a_0 1) peterson.usr.x1_a_0) - (ite - peterson.usr.e03_a_1 - (ite X5 (- peterson.usr.x1_a_0 1) peterson.usr.x1_a_0) - peterson.usr.x1_a_0)))) - (let - ((X7 - Bool (and (>= peterson.usr.x7_a_0 1) (>= peterson.usr.x11_a_0 1)))) - (and - (= - peterson.usr.x7_a_1 - (ite - peterson.usr.e02_a_1 - (ite X6 (+ peterson.usr.x7_a_0 1) peterson.usr.x7_a_0) - (ite - peterson.usr.e08_a_1 - (ite X7 (- peterson.usr.x7_a_0 1) peterson.usr.x7_a_0) - peterson.usr.x7_a_0))) - (let - ((X8 - Bool (and (>= peterson.usr.x6_a_0 1) (>= peterson.usr.x11_a_0 1)))) - (let - ((X9 - Bool (and - (>= peterson.usr.x9_a_0 1) - (>= peterson.usr.x10_a_0 1)))) - (and - (= - peterson.usr.x11_a_1 - (ite - peterson.usr.e07_a_1 - (ite X9 (+ peterson.usr.x11_a_0 1) peterson.usr.x11_a_0) - (ite - peterson.usr.e08_a_1 - (ite X7 (- peterson.usr.x11_a_0 1) peterson.usr.x11_a_0) - (ite - peterson.usr.e09_a_1 - (ite X8 (- peterson.usr.x11_a_0 1) peterson.usr.x11_a_0) - peterson.usr.x11_a_0)))) - (let - ((X10 - Bool (and - (>= peterson.usr.x8_a_0 1) - (>= peterson.usr.x13_a_0 1)))) - (and - (= - peterson.usr.x9_a_1 - (ite - peterson.usr.e07_a_1 - (ite X9 (- peterson.usr.x9_a_0 1) peterson.usr.x9_a_0) - (ite - peterson.usr.e12_a_1 - (ite X10 (+ peterson.usr.x9_a_0 1) peterson.usr.x9_a_0) - peterson.usr.x9_a_0))) - (= - peterson.usr.x8_a_1 - (ite - peterson.usr.e07_a_1 - (ite X9 (+ peterson.usr.x8_a_0 1) peterson.usr.x8_a_0) - (ite - peterson.usr.e12_a_1 - (ite X10 (- peterson.usr.x8_a_0 1) peterson.usr.x8_a_0) - peterson.usr.x8_a_0))) - (let - ((X11 - Bool (and - (>= peterson.usr.x7_a_0 1) - (>= peterson.usr.x12_a_0 1)))) - (let - ((X12 - Bool (and - (>= peterson.usr.x4_a_0 1) - (>= peterson.usr.x12_a_0 1)))) - (and - (= - peterson.usr.x13_a_1 - (ite - peterson.usr.e10_a_1 - (ite X12 (+ peterson.usr.x13_a_0 1) peterson.usr.x13_a_0) - (ite - peterson.usr.e11_a_1 - (ite X11 (+ peterson.usr.x13_a_0 1) peterson.usr.x13_a_0) - (ite - peterson.usr.e12_a_1 - (ite - X10 - (- peterson.usr.x13_a_0 1) - peterson.usr.x13_a_0) - peterson.usr.x13_a_0)))) - (= - peterson.usr.x12_a_1 - (ite - peterson.usr.e08_a_1 - (ite X7 (+ peterson.usr.x12_a_0 1) peterson.usr.x12_a_0) - (ite - peterson.usr.e09_a_1 - (ite X8 (+ peterson.usr.x12_a_0 1) peterson.usr.x12_a_0) - (ite - peterson.usr.e10_a_1 - (ite - X12 - (- peterson.usr.x12_a_0 1) - peterson.usr.x12_a_0) - (ite - peterson.usr.e11_a_1 - (ite - X11 - (- peterson.usr.x12_a_0 1) - peterson.usr.x12_a_0) - peterson.usr.x12_a_0))))) - (= - peterson.usr.x6_a_1 - (ite - peterson.usr.e02_a_1 - (ite X6 (- peterson.usr.x6_a_0 1) peterson.usr.x6_a_0) - (ite - peterson.usr.e08_a_1 - (ite X7 (+ peterson.usr.x6_a_0 1) peterson.usr.x6_a_0) - peterson.usr.x6_a_0))) - (= - peterson.usr.x10_a_1 - (ite - peterson.usr.e07_a_1 - (ite X9 (- peterson.usr.x10_a_0 1) peterson.usr.x10_a_0) - (ite - peterson.usr.e12_a_1 - (ite X10 (+ peterson.usr.x10_a_0 1) peterson.usr.x10_a_0) - peterson.usr.x10_a_0))) - (= - peterson.usr.x5_a_1 - (ite - peterson.usr.e01_a_1 - (ite X2 (+ peterson.usr.x5_a_0 1) peterson.usr.x5_a_0) - (ite - peterson.usr.e06_a_1 - (ite X1 (- peterson.usr.x5_a_0 1) peterson.usr.x5_a_0) - peterson.usr.x5_a_0))) - (not peterson.res.init_flag_a_1)))))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.abs_11_a_0 Int) - (top.res.abs_12_a_0 Int) - (top.res.abs_13_a_0 Int) - (top.res.abs_14_a_0 Bool) - (top.res.abs_15_a_0 Bool) - (top.res.abs_16_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_3_a_0)) - (and - (= top.res.abs_15_a_0 (and top.res.abs_14_a_0 (< X1 32767))) - (let - ((X2 Bool top.res.abs_16_a_0)) - (and - (= top.usr.OK_a_0 (=> X2 (>= X1 0))) - (__node_init_peterson_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.abs_13_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_15_a_0 - top.res.abs_16_a_0 - top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_14_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.abs_9_a_1 Int) - (top.res.abs_10_a_1 Int) - (top.res.abs_11_a_1 Int) - (top.res.abs_12_a_1 Int) - (top.res.abs_13_a_1 Int) - (top.res.abs_14_a_1 Bool) - (top.res.abs_15_a_1 Bool) - (top.res.abs_16_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.abs_11_a_0 Int) - (top.res.abs_12_a_0 Int) - (top.res.abs_13_a_0 Int) - (top.res.abs_14_a_0 Bool) - (top.res.abs_15_a_0 Bool) - (top.res.abs_16_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_3_a_1)) - (and - (= top.res.abs_15_a_1 (and top.res.abs_14_a_1 (< X1 32767))) - (let - ((X2 Bool top.res.abs_16_a_1)) - (and - (= top.usr.OK_a_1 (=> X2 (>= X1 0))) - (__node_trans_peterson_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.abs_12_a_1 - top.res.abs_13_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.abs_13_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_15_a_1 - top.res.abs_16_a_1 - top.res.inst_1_a_1 - top.res.abs_15_a_0 - top.res.abs_16_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_14_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_14_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.abs_11 Int) - (top.res.abs_12 Int) - (top.res.abs_13 Int) - (top.res.abs_14 Bool) - (top.res.abs_15 Bool) - (top.res.abs_16 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.abs_10 Int) -(declare-primed-var top.res.abs_11 Int) -(declare-primed-var top.res.abs_12 Int) -(declare-primed-var top.res.abs_13 Int) -(declare-primed-var top.res.abs_14 Bool) -(declare-primed-var top.res.abs_15 Bool) -(declare-primed-var top.res.abs_16 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.abs_11 Int) - (top.res.abs_12 Int) - (top.res.abs_13 Int) - (top.res.abs_14 Bool) - (top.res.abs_15 Bool) - (top.res.abs_16 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_3)) - (and - (= top.res.abs_15 (and top.res.abs_14 (< X1 32767))) - (let - ((X2 Bool top.res.abs_16)) - (and - (= top.usr.OK (=> X2 (>= X1 0))) - (__node_init_peterson_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.abs_10 - top.res.abs_11 - top.res.abs_12 - top.res.abs_13 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_15 top.res.abs_16 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_14 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.abs_11 Int) - (top.res.abs_12 Int) - (top.res.abs_13 Int) - (top.res.abs_14 Bool) - (top.res.abs_15 Bool) - (top.res.abs_16 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.abs_9! Int) - (top.res.abs_10! Int) - (top.res.abs_11! Int) - (top.res.abs_12! Int) - (top.res.abs_13! Int) - (top.res.abs_14! Bool) - (top.res.abs_15! Bool) - (top.res.abs_16! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Int top.res.abs_3!)) - (and - (= top.res.abs_15! (and top.res.abs_14! (< X1 32767))) - (let - ((X2 Bool top.res.abs_16!)) - (and - (= top.usr.OK! (=> X2 (>= X1 0))) - (__node_trans_peterson_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.abs_10! - top.res.abs_11! - top.res.abs_12! - top.res.abs_13! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.abs_10 - top.res.abs_11 - top.res.abs_12 - top.res.abs_13 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_15! - top.res.abs_16! - top.res.inst_1! - top.res.abs_15 - top.res.abs_16 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_14! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_14 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.abs_11 Int) - (top.res.abs_12 Int) - (top.res.abs_13 Int) - (top.res.abs_14 Bool) - (top.res.abs_15 Bool) - (top.res.abs_16 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_peterson_0 ((peterson.usr.e01_a_0 Bool) (peterson.usr.e02_a_0 Bool) (peterson.usr.e03_a_0 Bool) (peterson.usr.e04_a_0 Bool) (peterson.usr.e05_a_0 Bool) (peterson.usr.e06_a_0 Bool) (peterson.usr.e07_a_0 Bool) (peterson.usr.e08_a_0 Bool) (peterson.usr.e09_a_0 Bool) (peterson.usr.e10_a_0 Bool) (peterson.usr.e11_a_0 Bool) (peterson.usr.e12_a_0 Bool) (peterson.res.nondet_23 Int) (peterson.res.nondet_22 Int) (peterson.res.nondet_21 Int) (peterson.res.nondet_20 Int) (peterson.res.nondet_19 Int) (peterson.res.nondet_18 Int) (peterson.res.nondet_17 Int) (peterson.res.nondet_16 Int) (peterson.res.nondet_15 Int) (peterson.res.nondet_14 Int) (peterson.res.nondet_13 Int) (peterson.res.nondet_12 Int) (peterson.res.nondet_11 Int) (peterson.res.nondet_10 Int) (peterson.res.nondet_9 Int) (peterson.res.nondet_8 Int) (peterson.res.nondet_7 Int) (peterson.res.nondet_6 Int) (peterson.res.nondet_5 Int) (peterson.res.nondet_4 Int) (peterson.res.nondet_3 Int) (peterson.res.nondet_2 Int) (peterson.res.nondet_1 Int) (peterson.res.nondet_0 Int) (peterson.usr.x0_a_0 Int) (peterson.usr.x1_a_0 Int) (peterson.usr.x2_a_0 Int) (peterson.usr.x3_a_0 Int) (peterson.usr.x4_a_0 Int) (peterson.usr.x5_a_0 Int) (peterson.usr.x6_a_0 Int) (peterson.usr.x7_a_0 Int) (peterson.usr.x8_a_0 Int) (peterson.usr.x9_a_0 Int) (peterson.usr.x10_a_0 Int) (peterson.usr.x11_a_0 Int) (peterson.usr.x12_a_0 Int) (peterson.usr.x13_a_0 Int) (peterson.res.init_flag_a_0 Bool)) Bool + (and (= peterson.usr.x0_a_0 1) (let ((X1 (let ((X1 peterson.res.nondet_1) (X2 peterson.res.nondet_0)) (and (>= X2 1) (>= X1 1))))) (and (= peterson.usr.x4_a_0 1) (let ((X2 (let ((X2 peterson.res.nondet_11) (X3 peterson.res.nondet_10)) (and (>= X3 1) (>= X2 1))))) (and (= peterson.usr.x3_a_0 0) (let ((X3 (let ((X3 peterson.res.nondet_7) (X4 peterson.res.nondet_6)) (and (>= X4 1) (>= X3 1))))) (and (= peterson.usr.x2_a_0 0) (let ((X4 (let ((X4 peterson.res.nondet_3) (X5 peterson.res.nondet_2)) (and (>= X5 1) (>= X4 1))))) (and (= peterson.usr.x1_a_0 0) (let ((X5 (let ((X5 peterson.res.nondet_5) (X6 peterson.res.nondet_4)) (and (>= X6 1) (>= X5 1))))) (and (= peterson.usr.x7_a_0 1) (let ((X6 (let ((X6 peterson.res.nondet_15) (X7 peterson.res.nondet_14)) (and (>= X7 1) (>= X6 1))))) (and (= peterson.usr.x11_a_0 0) (let ((X7 (let ((X7 peterson.res.nondet_13) (X8 peterson.res.nondet_12)) (and (>= X8 1) (>= X7 1))))) (and (= peterson.usr.x9_a_0 1) (let ((X8 (let ((X8 peterson.res.nondet_23) (X9 peterson.res.nondet_22)) (and (>= X9 1) (>= X8 1))))) (and (= peterson.usr.x8_a_0 0) (= peterson.usr.x13_a_0 0) (let ((X9 (let ((X9 peterson.res.nondet_19) (X10 peterson.res.nondet_18)) (and (>= X10 1) (>= X9 1))))) (and (= peterson.usr.x12_a_0 0) (let ((X10 (let ((X10 peterson.res.nondet_17) (X11 peterson.res.nondet_16)) (and (>= X11 1) (>= X10 1))))) (and (= peterson.usr.x6_a_0 0) (let ((X11 (let ((X11 peterson.res.nondet_21) (X12 peterson.res.nondet_20)) (and (>= X12 1) (>= X11 1))))) (and (= peterson.usr.x10_a_0 1) (let ((X12 (let ((X12 peterson.res.nondet_9) (X13 peterson.res.nondet_8)) (and (>= X13 1) (>= X12 1))))) (and (= peterson.usr.x5_a_0 0) peterson.res.init_flag_a_0)))))))))))))))))))))))))) +(define-fun __node_trans_peterson_0 ((peterson.usr.e01_a_1 Bool) (peterson.usr.e02_a_1 Bool) (peterson.usr.e03_a_1 Bool) (peterson.usr.e04_a_1 Bool) (peterson.usr.e05_a_1 Bool) (peterson.usr.e06_a_1 Bool) (peterson.usr.e07_a_1 Bool) (peterson.usr.e08_a_1 Bool) (peterson.usr.e09_a_1 Bool) (peterson.usr.e10_a_1 Bool) (peterson.usr.e11_a_1 Bool) (peterson.usr.e12_a_1 Bool) (peterson.res.nondet_23 Int) (peterson.res.nondet_22 Int) (peterson.res.nondet_21 Int) (peterson.res.nondet_20 Int) (peterson.res.nondet_19 Int) (peterson.res.nondet_18 Int) (peterson.res.nondet_17 Int) (peterson.res.nondet_16 Int) (peterson.res.nondet_15 Int) (peterson.res.nondet_14 Int) (peterson.res.nondet_13 Int) (peterson.res.nondet_12 Int) (peterson.res.nondet_11 Int) (peterson.res.nondet_10 Int) (peterson.res.nondet_9 Int) (peterson.res.nondet_8 Int) (peterson.res.nondet_7 Int) (peterson.res.nondet_6 Int) (peterson.res.nondet_5 Int) (peterson.res.nondet_4 Int) (peterson.res.nondet_3 Int) (peterson.res.nondet_2 Int) (peterson.res.nondet_1 Int) (peterson.res.nondet_0 Int) (peterson.usr.x0_a_1 Int) (peterson.usr.x1_a_1 Int) (peterson.usr.x2_a_1 Int) (peterson.usr.x3_a_1 Int) (peterson.usr.x4_a_1 Int) (peterson.usr.x5_a_1 Int) (peterson.usr.x6_a_1 Int) (peterson.usr.x7_a_1 Int) (peterson.usr.x8_a_1 Int) (peterson.usr.x9_a_1 Int) (peterson.usr.x10_a_1 Int) (peterson.usr.x11_a_1 Int) (peterson.usr.x12_a_1 Int) (peterson.usr.x13_a_1 Int) (peterson.res.init_flag_a_1 Bool) (peterson.usr.e01_a_0 Bool) (peterson.usr.e02_a_0 Bool) (peterson.usr.e03_a_0 Bool) (peterson.usr.e04_a_0 Bool) (peterson.usr.e05_a_0 Bool) (peterson.usr.e06_a_0 Bool) (peterson.usr.e07_a_0 Bool) (peterson.usr.e08_a_0 Bool) (peterson.usr.e09_a_0 Bool) (peterson.usr.e10_a_0 Bool) (peterson.usr.e11_a_0 Bool) (peterson.usr.e12_a_0 Bool) (peterson.usr.x0_a_0 Int) (peterson.usr.x1_a_0 Int) (peterson.usr.x2_a_0 Int) (peterson.usr.x3_a_0 Int) (peterson.usr.x4_a_0 Int) (peterson.usr.x5_a_0 Int) (peterson.usr.x6_a_0 Int) (peterson.usr.x7_a_0 Int) (peterson.usr.x8_a_0 Int) (peterson.usr.x9_a_0 Int) (peterson.usr.x10_a_0 Int) (peterson.usr.x11_a_0 Int) (peterson.usr.x12_a_0 Int) (peterson.usr.x13_a_0 Int) (peterson.res.init_flag_a_0 Bool)) Bool + (let ((X1 (and (>= peterson.usr.x3_a_0 1) (>= peterson.usr.x5_a_0 1)))) (let ((X2 (and (>= peterson.usr.x0_a_0 1) (>= peterson.usr.x4_a_0 1)))) (and (= peterson.usr.x0_a_1 (ite peterson.usr.e01_a_1 (ite X2 (- peterson.usr.x0_a_0 1) peterson.usr.x0_a_0) (ite peterson.usr.e06_a_1 (ite X1 (+ peterson.usr.x0_a_0 1) peterson.usr.x0_a_0) peterson.usr.x0_a_0))) (= peterson.usr.x4_a_1 (ite peterson.usr.e01_a_1 (ite X2 (- peterson.usr.x4_a_0 1) peterson.usr.x4_a_0) (ite peterson.usr.e06_a_1 (ite X1 (+ peterson.usr.x4_a_0 1) peterson.usr.x4_a_0) peterson.usr.x4_a_0))) (let ((X3 (and (>= peterson.usr.x2_a_0 1) (>= peterson.usr.x6_a_0 1)))) (let ((X4 (and (>= peterson.usr.x2_a_0 1) (>= peterson.usr.x9_a_0 1)))) (and (= peterson.usr.x3_a_1 (ite peterson.usr.e04_a_1 (ite X4 (+ peterson.usr.x3_a_0 1) peterson.usr.x3_a_0) (ite peterson.usr.e05_a_1 (ite X3 (+ peterson.usr.x3_a_0 1) peterson.usr.x3_a_0) (ite peterson.usr.e06_a_1 (ite X1 (- peterson.usr.x3_a_0 1) peterson.usr.x3_a_0) peterson.usr.x3_a_0)))) (let ((X5 (and (>= peterson.usr.x1_a_0 1) (>= peterson.usr.x7_a_0 1)))) (let ((X6 (and (>= peterson.usr.x1_a_0 1) (>= peterson.usr.x6_a_0 1)))) (and (= peterson.usr.x2_a_1 (ite peterson.usr.e02_a_1 (ite X6 (+ peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) (ite peterson.usr.e03_a_1 (ite X5 (+ peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) (ite peterson.usr.e04_a_1 (ite X4 (- peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) (ite peterson.usr.e05_a_1 (ite X3 (- peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) peterson.usr.x2_a_0))))) (= peterson.usr.x1_a_1 (ite peterson.usr.e01_a_1 (ite X2 (+ peterson.usr.x1_a_0 1) peterson.usr.x1_a_0) (ite peterson.usr.e02_a_1 (ite X6 (- peterson.usr.x1_a_0 1) peterson.usr.x1_a_0) (ite peterson.usr.e03_a_1 (ite X5 (- peterson.usr.x1_a_0 1) peterson.usr.x1_a_0) peterson.usr.x1_a_0)))) (let ((X7 (and (>= peterson.usr.x7_a_0 1) (>= peterson.usr.x11_a_0 1)))) (and (= peterson.usr.x7_a_1 (ite peterson.usr.e02_a_1 (ite X6 (+ peterson.usr.x7_a_0 1) peterson.usr.x7_a_0) (ite peterson.usr.e08_a_1 (ite X7 (- peterson.usr.x7_a_0 1) peterson.usr.x7_a_0) peterson.usr.x7_a_0))) (let ((X8 (and (>= peterson.usr.x6_a_0 1) (>= peterson.usr.x11_a_0 1)))) (let ((X9 (and (>= peterson.usr.x9_a_0 1) (>= peterson.usr.x10_a_0 1)))) (and (= peterson.usr.x11_a_1 (ite peterson.usr.e07_a_1 (ite X9 (+ peterson.usr.x11_a_0 1) peterson.usr.x11_a_0) (ite peterson.usr.e08_a_1 (ite X7 (- peterson.usr.x11_a_0 1) peterson.usr.x11_a_0) (ite peterson.usr.e09_a_1 (ite X8 (- peterson.usr.x11_a_0 1) peterson.usr.x11_a_0) peterson.usr.x11_a_0)))) (let ((X10 (and (>= peterson.usr.x8_a_0 1) (>= peterson.usr.x13_a_0 1)))) (and (= peterson.usr.x9_a_1 (ite peterson.usr.e07_a_1 (ite X9 (- peterson.usr.x9_a_0 1) peterson.usr.x9_a_0) (ite peterson.usr.e12_a_1 (ite X10 (+ peterson.usr.x9_a_0 1) peterson.usr.x9_a_0) peterson.usr.x9_a_0))) (= peterson.usr.x8_a_1 (ite peterson.usr.e07_a_1 (ite X9 (+ peterson.usr.x8_a_0 1) peterson.usr.x8_a_0) (ite peterson.usr.e12_a_1 (ite X10 (- peterson.usr.x8_a_0 1) peterson.usr.x8_a_0) peterson.usr.x8_a_0))) (let ((X11 (and (>= peterson.usr.x7_a_0 1) (>= peterson.usr.x12_a_0 1)))) (let ((X12 (and (>= peterson.usr.x4_a_0 1) (>= peterson.usr.x12_a_0 1)))) (and (= peterson.usr.x13_a_1 (ite peterson.usr.e10_a_1 (ite X12 (+ peterson.usr.x13_a_0 1) peterson.usr.x13_a_0) (ite peterson.usr.e11_a_1 (ite X11 (+ peterson.usr.x13_a_0 1) peterson.usr.x13_a_0) (ite peterson.usr.e12_a_1 (ite X10 (- peterson.usr.x13_a_0 1) peterson.usr.x13_a_0) peterson.usr.x13_a_0)))) (= peterson.usr.x12_a_1 (ite peterson.usr.e08_a_1 (ite X7 (+ peterson.usr.x12_a_0 1) peterson.usr.x12_a_0) (ite peterson.usr.e09_a_1 (ite X8 (+ peterson.usr.x12_a_0 1) peterson.usr.x12_a_0) (ite peterson.usr.e10_a_1 (ite X12 (- peterson.usr.x12_a_0 1) peterson.usr.x12_a_0) (ite peterson.usr.e11_a_1 (ite X11 (- peterson.usr.x12_a_0 1) peterson.usr.x12_a_0) peterson.usr.x12_a_0))))) (= peterson.usr.x6_a_1 (ite peterson.usr.e02_a_1 (ite X6 (- peterson.usr.x6_a_0 1) peterson.usr.x6_a_0) (ite peterson.usr.e08_a_1 (ite X7 (+ peterson.usr.x6_a_0 1) peterson.usr.x6_a_0) peterson.usr.x6_a_0))) (= peterson.usr.x10_a_1 (ite peterson.usr.e07_a_1 (ite X9 (- peterson.usr.x10_a_0 1) peterson.usr.x10_a_0) (ite peterson.usr.e12_a_1 (ite X10 (+ peterson.usr.x10_a_0 1) peterson.usr.x10_a_0) peterson.usr.x10_a_0))) (= peterson.usr.x5_a_1 (ite peterson.usr.e01_a_1 (ite X2 (+ peterson.usr.x5_a_0 1) peterson.usr.x5_a_0) (ite peterson.usr.e06_a_1 (ite X1 (- peterson.usr.x5_a_0 1) peterson.usr.x5_a_0) peterson.usr.x5_a_0))) (not peterson.res.init_flag_a_1))))))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.abs_11_a_0 Int) (top.res.abs_12_a_0 Int) (top.res.abs_13_a_0 Int) (top.res.abs_14_a_0 Bool) (top.res.abs_15_a_0 Bool) (top.res.abs_16_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_3_a_0)) (and (= top.res.abs_15_a_0 (and top.res.abs_14_a_0 (< X1 32767))) (let ((X2 top.res.abs_16_a_0)) (and (= top.usr.OK_a_0 (=> X2 (>= X1 0))) (__node_init_peterson_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.abs_13_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_15_a_0 top.res.abs_16_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_14_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.abs_9_a_1 Int) (top.res.abs_10_a_1 Int) (top.res.abs_11_a_1 Int) (top.res.abs_12_a_1 Int) (top.res.abs_13_a_1 Int) (top.res.abs_14_a_1 Bool) (top.res.abs_15_a_1 Bool) (top.res.abs_16_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.abs_11_a_0 Int) (top.res.abs_12_a_0 Int) (top.res.abs_13_a_0 Int) (top.res.abs_14_a_0 Bool) (top.res.abs_15_a_0 Bool) (top.res.abs_16_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_3_a_1)) (and (= top.res.abs_15_a_1 (and top.res.abs_14_a_1 (< X1 32767))) (let ((X2 top.res.abs_16_a_1)) (and (= top.usr.OK_a_1 (=> X2 (>= X1 0))) (__node_trans_peterson_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.abs_12_a_1 top.res.abs_13_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.abs_13_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_15_a_1 top.res.abs_16_a_1 top.res.inst_1_a_1 top.res.abs_15_a_0 top.res.abs_16_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_14_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_14_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.abs_11 Int) (top.res.abs_12 Int) (top.res.abs_13 Int) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.abs_11 Int) (top.res.abs_12 Int) (top.res.abs_13 Int) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_3)) (and (= top.res.abs_15 (and top.res.abs_14 (< X1 32767))) (let ((X2 top.res.abs_16)) (and (= top.usr.OK (=> X2 (>= X1 0))) (__node_init_peterson_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.abs_10 top.res.abs_11 top.res.abs_12 top.res.abs_13 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_15 top.res.abs_16 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_14 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.abs_11 Int) (top.res.abs_12 Int) (top.res.abs_13 Int) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.abs_9! Int) (top.res.abs_10! Int) (top.res.abs_11! Int) (top.res.abs_12! Int) (top.res.abs_13! Int) (top.res.abs_14! Bool) (top.res.abs_15! Bool) (top.res.abs_16! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_3!)) (and (= top.res.abs_15! (and top.res.abs_14! (< X1 32767))) (let ((X2 top.res.abs_16!)) (and (= top.usr.OK! (=> X2 (>= X1 0))) (__node_trans_peterson_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.abs_10! top.res.abs_11! top.res.abs_12! top.res.abs_13! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.abs_10 top.res.abs_11 top.res.abs_12 top.res.abs_13 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_15! top.res.abs_16! top.res.inst_1! top.res.abs_15 top.res.abs_16 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_14! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_14 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.abs_11 Int) (top.res.abs_12 Int) (top.res.abs_13 Int) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/peterson_all.sl b/benchmarks/LIA/Lustre/peterson_all.sl index f687176..7a2b74d 100644 --- a/benchmarks/LIA/Lustre/peterson_all.sl +++ b/benchmarks/LIA/Lustre/peterson_all.sl @@ -1,2034 +1,55 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_peterson_0 ( - (peterson.usr.e01_a_0 Bool) - (peterson.usr.e02_a_0 Bool) - (peterson.usr.e03_a_0 Bool) - (peterson.usr.e04_a_0 Bool) - (peterson.usr.e05_a_0 Bool) - (peterson.usr.e06_a_0 Bool) - (peterson.usr.e07_a_0 Bool) - (peterson.usr.e08_a_0 Bool) - (peterson.usr.e09_a_0 Bool) - (peterson.usr.e10_a_0 Bool) - (peterson.usr.e11_a_0 Bool) - (peterson.usr.e12_a_0 Bool) - (peterson.res.nondet_23 Int) - (peterson.res.nondet_22 Int) - (peterson.res.nondet_21 Int) - (peterson.res.nondet_20 Int) - (peterson.res.nondet_19 Int) - (peterson.res.nondet_18 Int) - (peterson.res.nondet_17 Int) - (peterson.res.nondet_16 Int) - (peterson.res.nondet_15 Int) - (peterson.res.nondet_14 Int) - (peterson.res.nondet_13 Int) - (peterson.res.nondet_12 Int) - (peterson.res.nondet_11 Int) - (peterson.res.nondet_10 Int) - (peterson.res.nondet_9 Int) - (peterson.res.nondet_8 Int) - (peterson.res.nondet_7 Int) - (peterson.res.nondet_6 Int) - (peterson.res.nondet_5 Int) - (peterson.res.nondet_4 Int) - (peterson.res.nondet_3 Int) - (peterson.res.nondet_2 Int) - (peterson.res.nondet_1 Int) - (peterson.res.nondet_0 Int) - (peterson.usr.x0_a_0 Int) - (peterson.usr.x1_a_0 Int) - (peterson.usr.x2_a_0 Int) - (peterson.usr.x3_a_0 Int) - (peterson.usr.x4_a_0 Int) - (peterson.usr.x5_a_0 Int) - (peterson.usr.x6_a_0 Int) - (peterson.usr.x7_a_0 Int) - (peterson.usr.x8_a_0 Int) - (peterson.usr.x9_a_0 Int) - (peterson.usr.x10_a_0 Int) - (peterson.usr.x11_a_0 Int) - (peterson.usr.x12_a_0 Int) - (peterson.usr.x13_a_0 Int) - (peterson.res.init_flag_a_0 Bool) - ) Bool - - (and - (= peterson.usr.x0_a_0 1) - (let - ((X1 - Bool (let - ((X1 Int peterson.res.nondet_1) (X2 Int peterson.res.nondet_0)) - (and (>= X2 1) (>= X1 1))))) - (and - (= peterson.usr.x4_a_0 1) - (let - ((X2 - Bool (let - ((X2 Int peterson.res.nondet_11) - (X3 Int peterson.res.nondet_10)) - (and (>= X3 1) (>= X2 1))))) - (and - (= peterson.usr.x3_a_0 0) - (let - ((X3 - Bool (let - ((X3 Int peterson.res.nondet_7) - (X4 Int peterson.res.nondet_6)) - (and (>= X4 1) (>= X3 1))))) - (and - (= peterson.usr.x2_a_0 0) - (let - ((X4 - Bool (let - ((X4 Int peterson.res.nondet_3) - (X5 Int peterson.res.nondet_2)) - (and (>= X5 1) (>= X4 1))))) - (and - (= peterson.usr.x1_a_0 0) - (let - ((X5 - Bool (let - ((X5 Int peterson.res.nondet_5) - (X6 Int peterson.res.nondet_4)) - (and (>= X6 1) (>= X5 1))))) - (and - (= peterson.usr.x7_a_0 1) - (let - ((X6 - Bool (let - ((X6 Int peterson.res.nondet_15) - (X7 Int peterson.res.nondet_14)) - (and (>= X7 1) (>= X6 1))))) - (and - (= peterson.usr.x11_a_0 0) - (let - ((X7 - Bool (let - ((X7 Int peterson.res.nondet_13) - (X8 Int peterson.res.nondet_12)) - (and (>= X8 1) (>= X7 1))))) - (and - (= peterson.usr.x9_a_0 1) - (let - ((X8 - Bool (let - ((X8 Int peterson.res.nondet_23) - (X9 Int peterson.res.nondet_22)) - (and (>= X9 1) (>= X8 1))))) - (and - (= peterson.usr.x8_a_0 0) - (= peterson.usr.x13_a_0 0) - (let - ((X9 - Bool (let - ((X9 Int peterson.res.nondet_19) - (X10 Int peterson.res.nondet_18)) - (and (>= X10 1) (>= X9 1))))) - (and - (= peterson.usr.x12_a_0 0) - (let - ((X10 - Bool (let - ((X10 Int peterson.res.nondet_17) - (X11 Int peterson.res.nondet_16)) - (and (>= X11 1) (>= X10 1))))) - (and - (= peterson.usr.x6_a_0 0) - (let - ((X11 - Bool (let - ((X11 Int peterson.res.nondet_21) - (X12 Int peterson.res.nondet_20)) - (and (>= X12 1) (>= X11 1))))) - (and - (= peterson.usr.x10_a_0 1) - (let - ((X12 - Bool (let - ((X12 Int peterson.res.nondet_9) - (X13 Int peterson.res.nondet_8)) - (and (>= X13 1) (>= X12 1))))) - (and - (= peterson.usr.x5_a_0 0) - peterson.res.init_flag_a_0))))))))))))))))))))))))) -) - -(define-fun - __node_trans_peterson_0 ( - (peterson.usr.e01_a_1 Bool) - (peterson.usr.e02_a_1 Bool) - (peterson.usr.e03_a_1 Bool) - (peterson.usr.e04_a_1 Bool) - (peterson.usr.e05_a_1 Bool) - (peterson.usr.e06_a_1 Bool) - (peterson.usr.e07_a_1 Bool) - (peterson.usr.e08_a_1 Bool) - (peterson.usr.e09_a_1 Bool) - (peterson.usr.e10_a_1 Bool) - (peterson.usr.e11_a_1 Bool) - (peterson.usr.e12_a_1 Bool) - (peterson.res.nondet_23 Int) - (peterson.res.nondet_22 Int) - (peterson.res.nondet_21 Int) - (peterson.res.nondet_20 Int) - (peterson.res.nondet_19 Int) - (peterson.res.nondet_18 Int) - (peterson.res.nondet_17 Int) - (peterson.res.nondet_16 Int) - (peterson.res.nondet_15 Int) - (peterson.res.nondet_14 Int) - (peterson.res.nondet_13 Int) - (peterson.res.nondet_12 Int) - (peterson.res.nondet_11 Int) - (peterson.res.nondet_10 Int) - (peterson.res.nondet_9 Int) - (peterson.res.nondet_8 Int) - (peterson.res.nondet_7 Int) - (peterson.res.nondet_6 Int) - (peterson.res.nondet_5 Int) - (peterson.res.nondet_4 Int) - (peterson.res.nondet_3 Int) - (peterson.res.nondet_2 Int) - (peterson.res.nondet_1 Int) - (peterson.res.nondet_0 Int) - (peterson.usr.x0_a_1 Int) - (peterson.usr.x1_a_1 Int) - (peterson.usr.x2_a_1 Int) - (peterson.usr.x3_a_1 Int) - (peterson.usr.x4_a_1 Int) - (peterson.usr.x5_a_1 Int) - (peterson.usr.x6_a_1 Int) - (peterson.usr.x7_a_1 Int) - (peterson.usr.x8_a_1 Int) - (peterson.usr.x9_a_1 Int) - (peterson.usr.x10_a_1 Int) - (peterson.usr.x11_a_1 Int) - (peterson.usr.x12_a_1 Int) - (peterson.usr.x13_a_1 Int) - (peterson.res.init_flag_a_1 Bool) - (peterson.usr.e01_a_0 Bool) - (peterson.usr.e02_a_0 Bool) - (peterson.usr.e03_a_0 Bool) - (peterson.usr.e04_a_0 Bool) - (peterson.usr.e05_a_0 Bool) - (peterson.usr.e06_a_0 Bool) - (peterson.usr.e07_a_0 Bool) - (peterson.usr.e08_a_0 Bool) - (peterson.usr.e09_a_0 Bool) - (peterson.usr.e10_a_0 Bool) - (peterson.usr.e11_a_0 Bool) - (peterson.usr.e12_a_0 Bool) - (peterson.usr.x0_a_0 Int) - (peterson.usr.x1_a_0 Int) - (peterson.usr.x2_a_0 Int) - (peterson.usr.x3_a_0 Int) - (peterson.usr.x4_a_0 Int) - (peterson.usr.x5_a_0 Int) - (peterson.usr.x6_a_0 Int) - (peterson.usr.x7_a_0 Int) - (peterson.usr.x8_a_0 Int) - (peterson.usr.x9_a_0 Int) - (peterson.usr.x10_a_0 Int) - (peterson.usr.x11_a_0 Int) - (peterson.usr.x12_a_0 Int) - (peterson.usr.x13_a_0 Int) - (peterson.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (and (>= peterson.usr.x3_a_0 1) (>= peterson.usr.x5_a_0 1)))) - (let - ((X2 Bool (and (>= peterson.usr.x0_a_0 1) (>= peterson.usr.x4_a_0 1)))) - (and - (= - peterson.usr.x0_a_1 - (ite - peterson.usr.e01_a_1 - (ite X2 (- peterson.usr.x0_a_0 1) peterson.usr.x0_a_0) - (ite - peterson.usr.e06_a_1 - (ite X1 (+ peterson.usr.x0_a_0 1) peterson.usr.x0_a_0) - peterson.usr.x0_a_0))) - (= - peterson.usr.x4_a_1 - (ite - peterson.usr.e01_a_1 - (ite X2 (- peterson.usr.x4_a_0 1) peterson.usr.x4_a_0) - (ite - peterson.usr.e06_a_1 - (ite X1 (+ peterson.usr.x4_a_0 1) peterson.usr.x4_a_0) - peterson.usr.x4_a_0))) - (let - ((X3 Bool (and (>= peterson.usr.x2_a_0 1) (>= peterson.usr.x6_a_0 1)))) - (let - ((X4 Bool (and (>= peterson.usr.x2_a_0 1) (>= peterson.usr.x9_a_0 1)))) - (and - (= - peterson.usr.x3_a_1 - (ite - peterson.usr.e04_a_1 - (ite X4 (+ peterson.usr.x3_a_0 1) peterson.usr.x3_a_0) - (ite - peterson.usr.e05_a_1 - (ite X3 (+ peterson.usr.x3_a_0 1) peterson.usr.x3_a_0) - (ite - peterson.usr.e06_a_1 - (ite X1 (- peterson.usr.x3_a_0 1) peterson.usr.x3_a_0) - peterson.usr.x3_a_0)))) - (let - ((X5 Bool (and (>= peterson.usr.x1_a_0 1) (>= peterson.usr.x7_a_0 1)))) - (let - ((X6 Bool (and (>= peterson.usr.x1_a_0 1) (>= peterson.usr.x6_a_0 1)))) - (and - (= - peterson.usr.x2_a_1 - (ite - peterson.usr.e02_a_1 - (ite X6 (+ peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) - (ite - peterson.usr.e03_a_1 - (ite X5 (+ peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) - (ite - peterson.usr.e04_a_1 - (ite X4 (- peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) - (ite - peterson.usr.e05_a_1 - (ite X3 (- peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) - peterson.usr.x2_a_0))))) - (= - peterson.usr.x1_a_1 - (ite - peterson.usr.e01_a_1 - (ite X2 (+ peterson.usr.x1_a_0 1) peterson.usr.x1_a_0) - (ite - peterson.usr.e02_a_1 - (ite X6 (- peterson.usr.x1_a_0 1) peterson.usr.x1_a_0) - (ite - peterson.usr.e03_a_1 - (ite X5 (- peterson.usr.x1_a_0 1) peterson.usr.x1_a_0) - peterson.usr.x1_a_0)))) - (let - ((X7 - Bool (and (>= peterson.usr.x7_a_0 1) (>= peterson.usr.x11_a_0 1)))) - (and - (= - peterson.usr.x7_a_1 - (ite - peterson.usr.e02_a_1 - (ite X6 (+ peterson.usr.x7_a_0 1) peterson.usr.x7_a_0) - (ite - peterson.usr.e08_a_1 - (ite X7 (- peterson.usr.x7_a_0 1) peterson.usr.x7_a_0) - peterson.usr.x7_a_0))) - (let - ((X8 - Bool (and (>= peterson.usr.x6_a_0 1) (>= peterson.usr.x11_a_0 1)))) - (let - ((X9 - Bool (and - (>= peterson.usr.x9_a_0 1) - (>= peterson.usr.x10_a_0 1)))) - (and - (= - peterson.usr.x11_a_1 - (ite - peterson.usr.e07_a_1 - (ite X9 (+ peterson.usr.x11_a_0 1) peterson.usr.x11_a_0) - (ite - peterson.usr.e08_a_1 - (ite X7 (- peterson.usr.x11_a_0 1) peterson.usr.x11_a_0) - (ite - peterson.usr.e09_a_1 - (ite X8 (- peterson.usr.x11_a_0 1) peterson.usr.x11_a_0) - peterson.usr.x11_a_0)))) - (let - ((X10 - Bool (and - (>= peterson.usr.x8_a_0 1) - (>= peterson.usr.x13_a_0 1)))) - (and - (= - peterson.usr.x9_a_1 - (ite - peterson.usr.e07_a_1 - (ite X9 (- peterson.usr.x9_a_0 1) peterson.usr.x9_a_0) - (ite - peterson.usr.e12_a_1 - (ite X10 (+ peterson.usr.x9_a_0 1) peterson.usr.x9_a_0) - peterson.usr.x9_a_0))) - (= - peterson.usr.x8_a_1 - (ite - peterson.usr.e07_a_1 - (ite X9 (+ peterson.usr.x8_a_0 1) peterson.usr.x8_a_0) - (ite - peterson.usr.e12_a_1 - (ite X10 (- peterson.usr.x8_a_0 1) peterson.usr.x8_a_0) - peterson.usr.x8_a_0))) - (let - ((X11 - Bool (and - (>= peterson.usr.x7_a_0 1) - (>= peterson.usr.x12_a_0 1)))) - (let - ((X12 - Bool (and - (>= peterson.usr.x4_a_0 1) - (>= peterson.usr.x12_a_0 1)))) - (and - (= - peterson.usr.x13_a_1 - (ite - peterson.usr.e10_a_1 - (ite X12 (+ peterson.usr.x13_a_0 1) peterson.usr.x13_a_0) - (ite - peterson.usr.e11_a_1 - (ite X11 (+ peterson.usr.x13_a_0 1) peterson.usr.x13_a_0) - (ite - peterson.usr.e12_a_1 - (ite - X10 - (- peterson.usr.x13_a_0 1) - peterson.usr.x13_a_0) - peterson.usr.x13_a_0)))) - (= - peterson.usr.x12_a_1 - (ite - peterson.usr.e08_a_1 - (ite X7 (+ peterson.usr.x12_a_0 1) peterson.usr.x12_a_0) - (ite - peterson.usr.e09_a_1 - (ite X8 (+ peterson.usr.x12_a_0 1) peterson.usr.x12_a_0) - (ite - peterson.usr.e10_a_1 - (ite - X12 - (- peterson.usr.x12_a_0 1) - peterson.usr.x12_a_0) - (ite - peterson.usr.e11_a_1 - (ite - X11 - (- peterson.usr.x12_a_0 1) - peterson.usr.x12_a_0) - peterson.usr.x12_a_0))))) - (= - peterson.usr.x6_a_1 - (ite - peterson.usr.e02_a_1 - (ite X6 (- peterson.usr.x6_a_0 1) peterson.usr.x6_a_0) - (ite - peterson.usr.e08_a_1 - (ite X7 (+ peterson.usr.x6_a_0 1) peterson.usr.x6_a_0) - peterson.usr.x6_a_0))) - (= - peterson.usr.x10_a_1 - (ite - peterson.usr.e07_a_1 - (ite X9 (- peterson.usr.x10_a_0 1) peterson.usr.x10_a_0) - (ite - peterson.usr.e12_a_1 - (ite X10 (+ peterson.usr.x10_a_0 1) peterson.usr.x10_a_0) - peterson.usr.x10_a_0))) - (= - peterson.usr.x5_a_1 - (ite - peterson.usr.e01_a_1 - (ite X2 (+ peterson.usr.x5_a_0 1) peterson.usr.x5_a_0) - (ite - peterson.usr.e06_a_1 - (ite X1 (- peterson.usr.x5_a_0 1) peterson.usr.x5_a_0) - peterson.usr.x5_a_0))) - (not peterson.res.init_flag_a_1)))))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.abs_11_a_0 Int) - (top.res.abs_12_a_0 Int) - (top.res.abs_13_a_0 Int) - (top.res.abs_14_a_0 Bool) - (top.res.abs_15_a_0 Bool) - (top.res.abs_16_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_3_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (let - ((X3 Int top.res.abs_1_a_0)) - (let - ((X4 Int top.res.abs_0_a_0)) - (and - (= - top.res.abs_15_a_0 - (and - (and - (and (and top.res.abs_14_a_0 (< X4 32767)) (< X3 32767)) - (< X2 32767)) - (< X1 32767))) - (let - ((X5 Bool top.res.abs_16_a_0)) - (and - (= - top.usr.OK_a_0 - (=> X5 (and (and (and (>= X4 0) (>= X3 0)) (>= X2 0)) (>= X1 0)))) - (__node_init_peterson_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.abs_13_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_15_a_0 - top.res.abs_16_a_0 - top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_14_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.abs_9_a_1 Int) - (top.res.abs_10_a_1 Int) - (top.res.abs_11_a_1 Int) - (top.res.abs_12_a_1 Int) - (top.res.abs_13_a_1 Int) - (top.res.abs_14_a_1 Bool) - (top.res.abs_15_a_1 Bool) - (top.res.abs_16_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.abs_11_a_0 Int) - (top.res.abs_12_a_0 Int) - (top.res.abs_13_a_0 Int) - (top.res.abs_14_a_0 Bool) - (top.res.abs_15_a_0 Bool) - (top.res.abs_16_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_3_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (let - ((X3 Int top.res.abs_1_a_1)) - (let - ((X4 Int top.res.abs_0_a_1)) - (and - (= - top.res.abs_15_a_1 - (and - (and - (and (and top.res.abs_14_a_1 (< X4 32767)) (< X3 32767)) - (< X2 32767)) - (< X1 32767))) - (let - ((X5 Bool top.res.abs_16_a_1)) - (and - (= - top.usr.OK_a_1 - (=> X5 (and (and (and (>= X4 0) (>= X3 0)) (>= X2 0)) (>= X1 0)))) - (__node_trans_peterson_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.abs_12_a_1 - top.res.abs_13_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.abs_13_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_15_a_1 - top.res.abs_16_a_1 - top.res.inst_1_a_1 - top.res.abs_15_a_0 - top.res.abs_16_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_14_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_14_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.abs_11 Int) - (top.res.abs_12 Int) - (top.res.abs_13 Int) - (top.res.abs_14 Bool) - (top.res.abs_15 Bool) - (top.res.abs_16 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.abs_10 Int) -(declare-primed-var top.res.abs_11 Int) -(declare-primed-var top.res.abs_12 Int) -(declare-primed-var top.res.abs_13 Int) -(declare-primed-var top.res.abs_14 Bool) -(declare-primed-var top.res.abs_15 Bool) -(declare-primed-var top.res.abs_16 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.abs_11 Int) - (top.res.abs_12 Int) - (top.res.abs_13 Int) - (top.res.abs_14 Bool) - (top.res.abs_15 Bool) - (top.res.abs_16 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_3)) - (let - ((X2 Int top.res.abs_2)) - (let - ((X3 Int top.res.abs_1)) - (let - ((X4 Int top.res.abs_0)) - (and - (= - top.res.abs_15 - (and - (and - (and (and top.res.abs_14 (< X4 32767)) (< X3 32767)) - (< X2 32767)) - (< X1 32767))) - (let - ((X5 Bool top.res.abs_16)) - (and - (= - top.usr.OK - (=> X5 (and (and (and (>= X4 0) (>= X3 0)) (>= X2 0)) (>= X1 0)))) - (__node_init_peterson_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.abs_10 - top.res.abs_11 - top.res.abs_12 - top.res.abs_13 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_15 top.res.abs_16 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_14 - top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.abs_11 Int) - (top.res.abs_12 Int) - (top.res.abs_13 Int) - (top.res.abs_14 Bool) - (top.res.abs_15 Bool) - (top.res.abs_16 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.abs_9! Int) - (top.res.abs_10! Int) - (top.res.abs_11! Int) - (top.res.abs_12! Int) - (top.res.abs_13! Int) - (top.res.abs_14! Bool) - (top.res.abs_15! Bool) - (top.res.abs_16! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Int top.res.abs_3!)) - (let - ((X2 Int top.res.abs_2!)) - (let - ((X3 Int top.res.abs_1!)) - (let - ((X4 Int top.res.abs_0!)) - (and - (= - top.res.abs_15! - (and - (and - (and (and top.res.abs_14! (< X4 32767)) (< X3 32767)) - (< X2 32767)) - (< X1 32767))) - (let - ((X5 Bool top.res.abs_16!)) - (and - (= - top.usr.OK! - (=> X5 (and (and (and (>= X4 0) (>= X3 0)) (>= X2 0)) (>= X1 0)))) - (__node_trans_peterson_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.abs_10! - top.res.abs_11! - top.res.abs_12! - top.res.abs_13! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.abs_10 - top.res.abs_11 - top.res.abs_12 - top.res.abs_13 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_15! - top.res.abs_16! - top.res.inst_1! - top.res.abs_15 - top.res.abs_16 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_14! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_14 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.abs_11 Int) - (top.res.abs_12 Int) - (top.res.abs_13 Int) - (top.res.abs_14 Bool) - (top.res.abs_15 Bool) - (top.res.abs_16 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_peterson_0 ((peterson.usr.e01_a_0 Bool) (peterson.usr.e02_a_0 Bool) (peterson.usr.e03_a_0 Bool) (peterson.usr.e04_a_0 Bool) (peterson.usr.e05_a_0 Bool) (peterson.usr.e06_a_0 Bool) (peterson.usr.e07_a_0 Bool) (peterson.usr.e08_a_0 Bool) (peterson.usr.e09_a_0 Bool) (peterson.usr.e10_a_0 Bool) (peterson.usr.e11_a_0 Bool) (peterson.usr.e12_a_0 Bool) (peterson.res.nondet_23 Int) (peterson.res.nondet_22 Int) (peterson.res.nondet_21 Int) (peterson.res.nondet_20 Int) (peterson.res.nondet_19 Int) (peterson.res.nondet_18 Int) (peterson.res.nondet_17 Int) (peterson.res.nondet_16 Int) (peterson.res.nondet_15 Int) (peterson.res.nondet_14 Int) (peterson.res.nondet_13 Int) (peterson.res.nondet_12 Int) (peterson.res.nondet_11 Int) (peterson.res.nondet_10 Int) (peterson.res.nondet_9 Int) (peterson.res.nondet_8 Int) (peterson.res.nondet_7 Int) (peterson.res.nondet_6 Int) (peterson.res.nondet_5 Int) (peterson.res.nondet_4 Int) (peterson.res.nondet_3 Int) (peterson.res.nondet_2 Int) (peterson.res.nondet_1 Int) (peterson.res.nondet_0 Int) (peterson.usr.x0_a_0 Int) (peterson.usr.x1_a_0 Int) (peterson.usr.x2_a_0 Int) (peterson.usr.x3_a_0 Int) (peterson.usr.x4_a_0 Int) (peterson.usr.x5_a_0 Int) (peterson.usr.x6_a_0 Int) (peterson.usr.x7_a_0 Int) (peterson.usr.x8_a_0 Int) (peterson.usr.x9_a_0 Int) (peterson.usr.x10_a_0 Int) (peterson.usr.x11_a_0 Int) (peterson.usr.x12_a_0 Int) (peterson.usr.x13_a_0 Int) (peterson.res.init_flag_a_0 Bool)) Bool + (and (= peterson.usr.x0_a_0 1) (let ((X1 (let ((X1 peterson.res.nondet_1) (X2 peterson.res.nondet_0)) (and (>= X2 1) (>= X1 1))))) (and (= peterson.usr.x4_a_0 1) (let ((X2 (let ((X2 peterson.res.nondet_11) (X3 peterson.res.nondet_10)) (and (>= X3 1) (>= X2 1))))) (and (= peterson.usr.x3_a_0 0) (let ((X3 (let ((X3 peterson.res.nondet_7) (X4 peterson.res.nondet_6)) (and (>= X4 1) (>= X3 1))))) (and (= peterson.usr.x2_a_0 0) (let ((X4 (let ((X4 peterson.res.nondet_3) (X5 peterson.res.nondet_2)) (and (>= X5 1) (>= X4 1))))) (and (= peterson.usr.x1_a_0 0) (let ((X5 (let ((X5 peterson.res.nondet_5) (X6 peterson.res.nondet_4)) (and (>= X6 1) (>= X5 1))))) (and (= peterson.usr.x7_a_0 1) (let ((X6 (let ((X6 peterson.res.nondet_15) (X7 peterson.res.nondet_14)) (and (>= X7 1) (>= X6 1))))) (and (= peterson.usr.x11_a_0 0) (let ((X7 (let ((X7 peterson.res.nondet_13) (X8 peterson.res.nondet_12)) (and (>= X8 1) (>= X7 1))))) (and (= peterson.usr.x9_a_0 1) (let ((X8 (let ((X8 peterson.res.nondet_23) (X9 peterson.res.nondet_22)) (and (>= X9 1) (>= X8 1))))) (and (= peterson.usr.x8_a_0 0) (= peterson.usr.x13_a_0 0) (let ((X9 (let ((X9 peterson.res.nondet_19) (X10 peterson.res.nondet_18)) (and (>= X10 1) (>= X9 1))))) (and (= peterson.usr.x12_a_0 0) (let ((X10 (let ((X10 peterson.res.nondet_17) (X11 peterson.res.nondet_16)) (and (>= X11 1) (>= X10 1))))) (and (= peterson.usr.x6_a_0 0) (let ((X11 (let ((X11 peterson.res.nondet_21) (X12 peterson.res.nondet_20)) (and (>= X12 1) (>= X11 1))))) (and (= peterson.usr.x10_a_0 1) (let ((X12 (let ((X12 peterson.res.nondet_9) (X13 peterson.res.nondet_8)) (and (>= X13 1) (>= X12 1))))) (and (= peterson.usr.x5_a_0 0) peterson.res.init_flag_a_0)))))))))))))))))))))))))) +(define-fun __node_trans_peterson_0 ((peterson.usr.e01_a_1 Bool) (peterson.usr.e02_a_1 Bool) (peterson.usr.e03_a_1 Bool) (peterson.usr.e04_a_1 Bool) (peterson.usr.e05_a_1 Bool) (peterson.usr.e06_a_1 Bool) (peterson.usr.e07_a_1 Bool) (peterson.usr.e08_a_1 Bool) (peterson.usr.e09_a_1 Bool) (peterson.usr.e10_a_1 Bool) (peterson.usr.e11_a_1 Bool) (peterson.usr.e12_a_1 Bool) (peterson.res.nondet_23 Int) (peterson.res.nondet_22 Int) (peterson.res.nondet_21 Int) (peterson.res.nondet_20 Int) (peterson.res.nondet_19 Int) (peterson.res.nondet_18 Int) (peterson.res.nondet_17 Int) (peterson.res.nondet_16 Int) (peterson.res.nondet_15 Int) (peterson.res.nondet_14 Int) (peterson.res.nondet_13 Int) (peterson.res.nondet_12 Int) (peterson.res.nondet_11 Int) (peterson.res.nondet_10 Int) (peterson.res.nondet_9 Int) (peterson.res.nondet_8 Int) (peterson.res.nondet_7 Int) (peterson.res.nondet_6 Int) (peterson.res.nondet_5 Int) (peterson.res.nondet_4 Int) (peterson.res.nondet_3 Int) (peterson.res.nondet_2 Int) (peterson.res.nondet_1 Int) (peterson.res.nondet_0 Int) (peterson.usr.x0_a_1 Int) (peterson.usr.x1_a_1 Int) (peterson.usr.x2_a_1 Int) (peterson.usr.x3_a_1 Int) (peterson.usr.x4_a_1 Int) (peterson.usr.x5_a_1 Int) (peterson.usr.x6_a_1 Int) (peterson.usr.x7_a_1 Int) (peterson.usr.x8_a_1 Int) (peterson.usr.x9_a_1 Int) (peterson.usr.x10_a_1 Int) (peterson.usr.x11_a_1 Int) (peterson.usr.x12_a_1 Int) (peterson.usr.x13_a_1 Int) (peterson.res.init_flag_a_1 Bool) (peterson.usr.e01_a_0 Bool) (peterson.usr.e02_a_0 Bool) (peterson.usr.e03_a_0 Bool) (peterson.usr.e04_a_0 Bool) (peterson.usr.e05_a_0 Bool) (peterson.usr.e06_a_0 Bool) (peterson.usr.e07_a_0 Bool) (peterson.usr.e08_a_0 Bool) (peterson.usr.e09_a_0 Bool) (peterson.usr.e10_a_0 Bool) (peterson.usr.e11_a_0 Bool) (peterson.usr.e12_a_0 Bool) (peterson.usr.x0_a_0 Int) (peterson.usr.x1_a_0 Int) (peterson.usr.x2_a_0 Int) (peterson.usr.x3_a_0 Int) (peterson.usr.x4_a_0 Int) (peterson.usr.x5_a_0 Int) (peterson.usr.x6_a_0 Int) (peterson.usr.x7_a_0 Int) (peterson.usr.x8_a_0 Int) (peterson.usr.x9_a_0 Int) (peterson.usr.x10_a_0 Int) (peterson.usr.x11_a_0 Int) (peterson.usr.x12_a_0 Int) (peterson.usr.x13_a_0 Int) (peterson.res.init_flag_a_0 Bool)) Bool + (let ((X1 (and (>= peterson.usr.x3_a_0 1) (>= peterson.usr.x5_a_0 1)))) (let ((X2 (and (>= peterson.usr.x0_a_0 1) (>= peterson.usr.x4_a_0 1)))) (and (= peterson.usr.x0_a_1 (ite peterson.usr.e01_a_1 (ite X2 (- peterson.usr.x0_a_0 1) peterson.usr.x0_a_0) (ite peterson.usr.e06_a_1 (ite X1 (+ peterson.usr.x0_a_0 1) peterson.usr.x0_a_0) peterson.usr.x0_a_0))) (= peterson.usr.x4_a_1 (ite peterson.usr.e01_a_1 (ite X2 (- peterson.usr.x4_a_0 1) peterson.usr.x4_a_0) (ite peterson.usr.e06_a_1 (ite X1 (+ peterson.usr.x4_a_0 1) peterson.usr.x4_a_0) peterson.usr.x4_a_0))) (let ((X3 (and (>= peterson.usr.x2_a_0 1) (>= peterson.usr.x6_a_0 1)))) (let ((X4 (and (>= peterson.usr.x2_a_0 1) (>= peterson.usr.x9_a_0 1)))) (and (= peterson.usr.x3_a_1 (ite peterson.usr.e04_a_1 (ite X4 (+ peterson.usr.x3_a_0 1) peterson.usr.x3_a_0) (ite peterson.usr.e05_a_1 (ite X3 (+ peterson.usr.x3_a_0 1) peterson.usr.x3_a_0) (ite peterson.usr.e06_a_1 (ite X1 (- peterson.usr.x3_a_0 1) peterson.usr.x3_a_0) peterson.usr.x3_a_0)))) (let ((X5 (and (>= peterson.usr.x1_a_0 1) (>= peterson.usr.x7_a_0 1)))) (let ((X6 (and (>= peterson.usr.x1_a_0 1) (>= peterson.usr.x6_a_0 1)))) (and (= peterson.usr.x2_a_1 (ite peterson.usr.e02_a_1 (ite X6 (+ peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) (ite peterson.usr.e03_a_1 (ite X5 (+ peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) (ite peterson.usr.e04_a_1 (ite X4 (- peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) (ite peterson.usr.e05_a_1 (ite X3 (- peterson.usr.x2_a_0 1) peterson.usr.x2_a_0) peterson.usr.x2_a_0))))) (= peterson.usr.x1_a_1 (ite peterson.usr.e01_a_1 (ite X2 (+ peterson.usr.x1_a_0 1) peterson.usr.x1_a_0) (ite peterson.usr.e02_a_1 (ite X6 (- peterson.usr.x1_a_0 1) peterson.usr.x1_a_0) (ite peterson.usr.e03_a_1 (ite X5 (- peterson.usr.x1_a_0 1) peterson.usr.x1_a_0) peterson.usr.x1_a_0)))) (let ((X7 (and (>= peterson.usr.x7_a_0 1) (>= peterson.usr.x11_a_0 1)))) (and (= peterson.usr.x7_a_1 (ite peterson.usr.e02_a_1 (ite X6 (+ peterson.usr.x7_a_0 1) peterson.usr.x7_a_0) (ite peterson.usr.e08_a_1 (ite X7 (- peterson.usr.x7_a_0 1) peterson.usr.x7_a_0) peterson.usr.x7_a_0))) (let ((X8 (and (>= peterson.usr.x6_a_0 1) (>= peterson.usr.x11_a_0 1)))) (let ((X9 (and (>= peterson.usr.x9_a_0 1) (>= peterson.usr.x10_a_0 1)))) (and (= peterson.usr.x11_a_1 (ite peterson.usr.e07_a_1 (ite X9 (+ peterson.usr.x11_a_0 1) peterson.usr.x11_a_0) (ite peterson.usr.e08_a_1 (ite X7 (- peterson.usr.x11_a_0 1) peterson.usr.x11_a_0) (ite peterson.usr.e09_a_1 (ite X8 (- peterson.usr.x11_a_0 1) peterson.usr.x11_a_0) peterson.usr.x11_a_0)))) (let ((X10 (and (>= peterson.usr.x8_a_0 1) (>= peterson.usr.x13_a_0 1)))) (and (= peterson.usr.x9_a_1 (ite peterson.usr.e07_a_1 (ite X9 (- peterson.usr.x9_a_0 1) peterson.usr.x9_a_0) (ite peterson.usr.e12_a_1 (ite X10 (+ peterson.usr.x9_a_0 1) peterson.usr.x9_a_0) peterson.usr.x9_a_0))) (= peterson.usr.x8_a_1 (ite peterson.usr.e07_a_1 (ite X9 (+ peterson.usr.x8_a_0 1) peterson.usr.x8_a_0) (ite peterson.usr.e12_a_1 (ite X10 (- peterson.usr.x8_a_0 1) peterson.usr.x8_a_0) peterson.usr.x8_a_0))) (let ((X11 (and (>= peterson.usr.x7_a_0 1) (>= peterson.usr.x12_a_0 1)))) (let ((X12 (and (>= peterson.usr.x4_a_0 1) (>= peterson.usr.x12_a_0 1)))) (and (= peterson.usr.x13_a_1 (ite peterson.usr.e10_a_1 (ite X12 (+ peterson.usr.x13_a_0 1) peterson.usr.x13_a_0) (ite peterson.usr.e11_a_1 (ite X11 (+ peterson.usr.x13_a_0 1) peterson.usr.x13_a_0) (ite peterson.usr.e12_a_1 (ite X10 (- peterson.usr.x13_a_0 1) peterson.usr.x13_a_0) peterson.usr.x13_a_0)))) (= peterson.usr.x12_a_1 (ite peterson.usr.e08_a_1 (ite X7 (+ peterson.usr.x12_a_0 1) peterson.usr.x12_a_0) (ite peterson.usr.e09_a_1 (ite X8 (+ peterson.usr.x12_a_0 1) peterson.usr.x12_a_0) (ite peterson.usr.e10_a_1 (ite X12 (- peterson.usr.x12_a_0 1) peterson.usr.x12_a_0) (ite peterson.usr.e11_a_1 (ite X11 (- peterson.usr.x12_a_0 1) peterson.usr.x12_a_0) peterson.usr.x12_a_0))))) (= peterson.usr.x6_a_1 (ite peterson.usr.e02_a_1 (ite X6 (- peterson.usr.x6_a_0 1) peterson.usr.x6_a_0) (ite peterson.usr.e08_a_1 (ite X7 (+ peterson.usr.x6_a_0 1) peterson.usr.x6_a_0) peterson.usr.x6_a_0))) (= peterson.usr.x10_a_1 (ite peterson.usr.e07_a_1 (ite X9 (- peterson.usr.x10_a_0 1) peterson.usr.x10_a_0) (ite peterson.usr.e12_a_1 (ite X10 (+ peterson.usr.x10_a_0 1) peterson.usr.x10_a_0) peterson.usr.x10_a_0))) (= peterson.usr.x5_a_1 (ite peterson.usr.e01_a_1 (ite X2 (+ peterson.usr.x5_a_0 1) peterson.usr.x5_a_0) (ite peterson.usr.e06_a_1 (ite X1 (- peterson.usr.x5_a_0 1) peterson.usr.x5_a_0) peterson.usr.x5_a_0))) (not peterson.res.init_flag_a_1))))))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.abs_11_a_0 Int) (top.res.abs_12_a_0 Int) (top.res.abs_13_a_0 Int) (top.res.abs_14_a_0 Bool) (top.res.abs_15_a_0 Bool) (top.res.abs_16_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_3_a_0)) (let ((X2 top.res.abs_2_a_0)) (let ((X3 top.res.abs_1_a_0)) (let ((X4 top.res.abs_0_a_0)) (and (= top.res.abs_15_a_0 (and (and (and (and top.res.abs_14_a_0 (< X4 32767)) (< X3 32767)) (< X2 32767)) (< X1 32767))) (let ((X5 top.res.abs_16_a_0)) (and (= top.usr.OK_a_0 (=> X5 (and (and (and (>= X4 0) (>= X3 0)) (>= X2 0)) (>= X1 0)))) (__node_init_peterson_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.abs_13_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_15_a_0 top.res.abs_16_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_14_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.abs_9_a_1 Int) (top.res.abs_10_a_1 Int) (top.res.abs_11_a_1 Int) (top.res.abs_12_a_1 Int) (top.res.abs_13_a_1 Int) (top.res.abs_14_a_1 Bool) (top.res.abs_15_a_1 Bool) (top.res.abs_16_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.abs_11_a_0 Int) (top.res.abs_12_a_0 Int) (top.res.abs_13_a_0 Int) (top.res.abs_14_a_0 Bool) (top.res.abs_15_a_0 Bool) (top.res.abs_16_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_3_a_1)) (let ((X2 top.res.abs_2_a_1)) (let ((X3 top.res.abs_1_a_1)) (let ((X4 top.res.abs_0_a_1)) (and (= top.res.abs_15_a_1 (and (and (and (and top.res.abs_14_a_1 (< X4 32767)) (< X3 32767)) (< X2 32767)) (< X1 32767))) (let ((X5 top.res.abs_16_a_1)) (and (= top.usr.OK_a_1 (=> X5 (and (and (and (>= X4 0) (>= X3 0)) (>= X2 0)) (>= X1 0)))) (__node_trans_peterson_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.abs_12_a_1 top.res.abs_13_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.abs_13_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_15_a_1 top.res.abs_16_a_1 top.res.inst_1_a_1 top.res.abs_15_a_0 top.res.abs_16_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_14_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_14_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.abs_11 Int) (top.res.abs_12 Int) (top.res.abs_13 Int) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.abs_11 Int) (top.res.abs_12 Int) (top.res.abs_13 Int) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_3)) (let ((X2 top.res.abs_2)) (let ((X3 top.res.abs_1)) (let ((X4 top.res.abs_0)) (and (= top.res.abs_15 (and (and (and (and top.res.abs_14 (< X4 32767)) (< X3 32767)) (< X2 32767)) (< X1 32767))) (let ((X5 top.res.abs_16)) (and (= top.usr.OK (=> X5 (and (and (and (>= X4 0) (>= X3 0)) (>= X2 0)) (>= X1 0)))) (__node_init_peterson_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.abs_10 top.res.abs_11 top.res.abs_12 top.res.abs_13 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_15 top.res.abs_16 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_14 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.abs_11 Int) (top.res.abs_12 Int) (top.res.abs_13 Int) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.abs_9! Int) (top.res.abs_10! Int) (top.res.abs_11! Int) (top.res.abs_12! Int) (top.res.abs_13! Int) (top.res.abs_14! Bool) (top.res.abs_15! Bool) (top.res.abs_16! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_3!)) (let ((X2 top.res.abs_2!)) (let ((X3 top.res.abs_1!)) (let ((X4 top.res.abs_0!)) (and (= top.res.abs_15! (and (and (and (and top.res.abs_14! (< X4 32767)) (< X3 32767)) (< X2 32767)) (< X1 32767))) (let ((X5 top.res.abs_16!)) (and (= top.usr.OK! (=> X5 (and (and (and (>= X4 0) (>= X3 0)) (>= X2 0)) (>= X1 0)))) (__node_trans_peterson_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.abs_10! top.res.abs_11! top.res.abs_12! top.res.abs_13! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.abs_10 top.res.abs_11 top.res.abs_12 top.res.abs_13 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_15! top.res.abs_16! top.res.inst_1! top.res.abs_15 top.res.abs_16 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_14! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_14 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.abs_11 Int) (top.res.abs_12 Int) (top.res.abs_13 Int) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/production_cell.sl b/benchmarks/LIA/Lustre/production_cell.sl index db2c6d0..fcf15e4 100644 --- a/benchmarks/LIA/Lustre/production_cell.sl +++ b/benchmarks/LIA/Lustre/production_cell.sl @@ -1,864 +1,31 @@ (set-logic LIA) -(define-fun - __node_init_sustain_0 ( - (sustain.usr.on_a_0 Bool) - (sustain.usr.off_a_0 Bool) - (sustain.usr.s_a_0 Bool) - (sustain.res.init_flag_a_0 Bool) - ) Bool - - (and (= sustain.usr.s_a_0 sustain.usr.on_a_0) sustain.res.init_flag_a_0) -) - -(define-fun - __node_trans_sustain_0 ( - (sustain.usr.on_a_1 Bool) - (sustain.usr.off_a_1 Bool) - (sustain.usr.s_a_1 Bool) - (sustain.res.init_flag_a_1 Bool) - (sustain.usr.on_a_0 Bool) - (sustain.usr.off_a_0 Bool) - (sustain.usr.s_a_0 Bool) - (sustain.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - sustain.usr.s_a_1 - (ite sustain.usr.on_a_1 true (ite sustain.usr.off_a_1 false sustain.usr.s_a_0))) - (not sustain.res.init_flag_a_1)) -) - -(define-fun - __node_init_redge_0 ( - (redge.usr.signal_a_0 Bool) - (redge.usr.r_a_0 Bool) - (redge.res.init_flag_a_0 Bool) - (redge.res.abs_0_a_0 Bool) - ) Bool - - (and - (= redge.usr.r_a_0 redge.usr.signal_a_0) - (= redge.res.abs_0_a_0 (not redge.usr.signal_a_0)) - redge.res.init_flag_a_0) -) - -(define-fun - __node_trans_redge_0 ( - (redge.usr.signal_a_1 Bool) - (redge.usr.r_a_1 Bool) - (redge.res.init_flag_a_1 Bool) - (redge.res.abs_0_a_1 Bool) - (redge.usr.signal_a_0 Bool) - (redge.usr.r_a_0 Bool) - (redge.res.init_flag_a_0 Bool) - (redge.res.abs_0_a_0 Bool) - ) Bool - - (and - (= redge.usr.r_a_1 (and redge.usr.signal_a_1 redge.res.abs_0_a_0)) - (= redge.res.abs_0_a_1 (not redge.usr.signal_a_1)) - (not redge.res.init_flag_a_1)) -) - -(define-fun - __node_init_fedge_0 ( - (fedge.usr.signal_a_0 Bool) - (fedge.usr.f_a_0 Bool) - (fedge.res.init_flag_a_0 Bool) - (fedge.res.abs_0_a_0 Bool) - (fedge.res.abs_1_a_0 Bool) - (fedge.res.inst_1_a_0 Bool) - (fedge.res.inst_0_a_0 Bool) - ) Bool - - (and - (= fedge.res.abs_0_a_0 (not fedge.usr.signal_a_0)) - (= fedge.usr.f_a_0 fedge.res.abs_1_a_0) - (__node_init_redge_0 - fedge.res.abs_0_a_0 - fedge.res.abs_1_a_0 - fedge.res.inst_1_a_0 - fedge.res.inst_0_a_0) - fedge.res.init_flag_a_0) -) - -(define-fun - __node_trans_fedge_0 ( - (fedge.usr.signal_a_1 Bool) - (fedge.usr.f_a_1 Bool) - (fedge.res.init_flag_a_1 Bool) - (fedge.res.abs_0_a_1 Bool) - (fedge.res.abs_1_a_1 Bool) - (fedge.res.inst_1_a_1 Bool) - (fedge.res.inst_0_a_1 Bool) - (fedge.usr.signal_a_0 Bool) - (fedge.usr.f_a_0 Bool) - (fedge.res.init_flag_a_0 Bool) - (fedge.res.abs_0_a_0 Bool) - (fedge.res.abs_1_a_0 Bool) - (fedge.res.inst_1_a_0 Bool) - (fedge.res.inst_0_a_0 Bool) - ) Bool - - (and - (= fedge.res.abs_0_a_1 (not fedge.usr.signal_a_1)) - (= fedge.usr.f_a_1 fedge.res.abs_1_a_1) - (__node_trans_redge_0 - fedge.res.abs_0_a_1 - fedge.res.abs_1_a_1 - fedge.res.inst_1_a_1 - fedge.res.inst_0_a_1 - fedge.res.abs_0_a_0 - fedge.res.abs_1_a_0 - fedge.res.inst_1_a_0 - fedge.res.inst_0_a_0) - (not fedge.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.MaySafelyMove_a_0 Bool) - (top.usr.TryToMove1_a_0 Bool) - (top.usr.TryToMove2_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.MayMove1_a_0 Bool) - (top.impl.usr.MayMove2_a_0 Bool) - (top.impl.usr.stop_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= - top.impl.usr.MayMove1_a_0 - (and top.usr.TryToMove1_a_0 top.usr.MaySafelyMove_a_0)) - (= top.res.abs_3_a_0 top.impl.usr.MayMove1_a_0) - (let - ((X1 Bool top.res.abs_4_a_0)) - (and - (= top.res.abs_2_a_0 (not top.usr.TryToMove2_a_0)) - (= - top.impl.usr.MayMove2_a_0 - (and top.usr.TryToMove2_a_0 top.usr.MaySafelyMove_a_0)) - (= top.res.abs_6_a_0 top.impl.usr.MayMove2_a_0) - (let - ((X2 Bool top.res.abs_7_a_0)) - (and - (= top.res.abs_5_a_0 (not top.usr.TryToMove1_a_0)) - (= top.impl.usr.stop_a_0 (or top.res.abs_8_a_0 top.res.abs_9_a_0)) - (= top.res.abs_0_a_0 (or X1 X2)) - (let - ((X3 Bool top.res.abs_1_a_0)) - (and - (__node_init_redge_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0) - (__node_init_redge_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_16_a_0 - top.res.inst_15_a_0) - (__node_init_fedge_0 - top.impl.usr.MayMove1_a_0 - top.res.abs_8_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0) - (__node_init_fedge_0 - top.impl.usr.MayMove2_a_0 - top.res.abs_9_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0) - (__node_init_sustain_0 - top.res.abs_0_a_0 - top.impl.usr.stop_a_0 - top.res.abs_1_a_0 - top.res.inst_4_a_0) - (__node_init_redge_0 - top.usr.TryToMove1_a_0 - top.res.abs_10_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_redge_0 - top.usr.TryToMove2_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.MaySafelyMove_a_1 Bool) - (top.usr.TryToMove1_a_1 Bool) - (top.usr.TryToMove2_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.MayMove1_a_1 Bool) - (top.impl.usr.MayMove2_a_1 Bool) - (top.impl.usr.stop_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_18_a_1 Bool) - (top.res.inst_17_a_1 Bool) - (top.res.inst_16_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Bool) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Bool) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Bool) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.MaySafelyMove_a_0 Bool) - (top.usr.TryToMove1_a_0 Bool) - (top.usr.TryToMove2_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.MayMove1_a_0 Bool) - (top.impl.usr.MayMove2_a_0 Bool) - (top.impl.usr.stop_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.impl.usr.MayMove2_a_1 - (and top.usr.TryToMove2_a_1 top.usr.MaySafelyMove_a_1)) - (= - top.impl.usr.MayMove1_a_1 - (and top.usr.TryToMove1_a_1 top.usr.MaySafelyMove_a_1)) - (= top.res.abs_6_a_1 (and top.impl.usr.MayMove2_a_1 top.res.abs_5_a_0)) - (= top.res.abs_3_a_1 (and top.impl.usr.MayMove1_a_1 top.res.abs_2_a_0)) - (let - ((X1 Bool top.res.abs_7_a_1)) - (let - ((X2 Bool top.res.abs_4_a_1)) - (and - (= top.res.abs_0_a_1 (or X2 X1)) - (= top.impl.usr.stop_a_1 (or top.res.abs_8_a_1 top.res.abs_9_a_1)) - (let - ((X3 Bool top.res.abs_1_a_1)) - (and - (= - top.usr.OK_a_1 - (ite - (or (not top.res.abs_10_a_1) (not top.res.abs_11_a_1)) - (and - (and - (or - (or - (and (not X2) (not X1)) - (and (not X1) (not top.impl.usr.stop_a_1))) - (and (not X2) (not top.impl.usr.stop_a_1))) - (not (and (and X2 X1) top.impl.usr.stop_a_1))) - (ite X3 top.usr.MaySafelyMove_a_1 true)) - true)) - (= top.res.abs_2_a_1 (not top.usr.TryToMove2_a_1)) - (= top.res.abs_5_a_1 (not top.usr.TryToMove1_a_1)) - (__node_trans_redge_0 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.inst_18_a_1 - top.res.inst_17_a_1 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0) - (__node_trans_redge_0 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.inst_16_a_1 - top.res.inst_15_a_1 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_16_a_0 - top.res.inst_15_a_0) - (__node_trans_fedge_0 - top.impl.usr.MayMove1_a_1 - top.res.abs_8_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.impl.usr.MayMove1_a_0 - top.res.abs_8_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0) - (__node_trans_fedge_0 - top.impl.usr.MayMove2_a_1 - top.res.abs_9_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.impl.usr.MayMove2_a_0 - top.res.abs_9_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0) - (__node_trans_sustain_0 - top.res.abs_0_a_1 - top.impl.usr.stop_a_1 - top.res.abs_1_a_1 - top.res.inst_4_a_1 - top.res.abs_0_a_0 - top.impl.usr.stop_a_0 - top.res.abs_1_a_0 - top.res.inst_4_a_0) - (__node_trans_redge_0 - top.usr.TryToMove1_a_1 - top.res.abs_10_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.TryToMove1_a_0 - top.res.abs_10_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_redge_0 - top.usr.TryToMove2_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.inst_0_a_1 - top.usr.TryToMove2_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.MaySafelyMove Bool) - (top.usr.TryToMove1 Bool) - (top.usr.TryToMove2 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.MayMove1 Bool) - (top.impl.usr.MayMove2 Bool) - (top.impl.usr.stop Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.MaySafelyMove Bool) -(declare-primed-var top.usr.TryToMove1 Bool) -(declare-primed-var top.usr.TryToMove2 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.MayMove1 Bool) -(declare-primed-var top.impl.usr.MayMove2 Bool) -(declare-primed-var top.impl.usr.stop Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_18 Bool) -(declare-primed-var top.res.inst_17 Bool) -(declare-primed-var top.res.inst_16 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Bool) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Bool) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Bool) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.MaySafelyMove Bool) - (top.usr.TryToMove1 Bool) - (top.usr.TryToMove2 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.MayMove1 Bool) - (top.impl.usr.MayMove2 Bool) - (top.impl.usr.stop Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.MayMove1 (and top.usr.TryToMove1 top.usr.MaySafelyMove)) - (= top.res.abs_3 top.impl.usr.MayMove1) - (let - ((X1 Bool top.res.abs_4)) - (and - (= top.res.abs_2 (not top.usr.TryToMove2)) - (= top.impl.usr.MayMove2 (and top.usr.TryToMove2 top.usr.MaySafelyMove)) - (= top.res.abs_6 top.impl.usr.MayMove2) - (let - ((X2 Bool top.res.abs_7)) - (and - (= top.res.abs_5 (not top.usr.TryToMove1)) - (= top.impl.usr.stop (or top.res.abs_8 top.res.abs_9)) - (= top.res.abs_0 (or X1 X2)) - (let - ((X3 Bool top.res.abs_1)) - (and - (__node_init_redge_0 - top.res.abs_3 - top.res.abs_4 - top.res.inst_18 - top.res.inst_17) - (__node_init_redge_0 - top.res.abs_6 - top.res.abs_7 - top.res.inst_16 - top.res.inst_15) - (__node_init_fedge_0 - top.impl.usr.MayMove1 - top.res.abs_8 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10) - (__node_init_fedge_0 - top.impl.usr.MayMove2 - top.res.abs_9 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5) - (__node_init_sustain_0 - top.res.abs_0 - top.impl.usr.stop - top.res.abs_1 - top.res.inst_4) - (__node_init_redge_0 - top.usr.TryToMove1 - top.res.abs_10 - top.res.inst_3 - top.res.inst_2) - (__node_init_redge_0 - top.usr.TryToMove2 - top.res.abs_11 - top.res.inst_1 - top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.MaySafelyMove Bool) - (top.usr.TryToMove1 Bool) - (top.usr.TryToMove2 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.MayMove1 Bool) - (top.impl.usr.MayMove2 Bool) - (top.impl.usr.stop Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.MaySafelyMove! Bool) - (top.usr.TryToMove1! Bool) - (top.usr.TryToMove2! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.MayMove1! Bool) - (top.impl.usr.MayMove2! Bool) - (top.impl.usr.stop! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_18! Bool) - (top.res.inst_17! Bool) - (top.res.inst_16! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Bool) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Bool) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Bool) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= - top.impl.usr.MayMove2! - (and top.usr.TryToMove2! top.usr.MaySafelyMove!)) - (= - top.impl.usr.MayMove1! - (and top.usr.TryToMove1! top.usr.MaySafelyMove!)) - (= top.res.abs_6! (and top.impl.usr.MayMove2! top.res.abs_5)) - (= top.res.abs_3! (and top.impl.usr.MayMove1! top.res.abs_2)) - (let - ((X1 Bool top.res.abs_7!)) - (let - ((X2 Bool top.res.abs_4!)) - (and - (= top.res.abs_0! (or X2 X1)) - (= top.impl.usr.stop! (or top.res.abs_8! top.res.abs_9!)) - (let - ((X3 Bool top.res.abs_1!)) - (and - (= - top.usr.OK! - (ite - (or (not top.res.abs_10!) (not top.res.abs_11!)) - (and - (and - (or - (or - (and (not X2) (not X1)) - (and (not X1) (not top.impl.usr.stop!))) - (and (not X2) (not top.impl.usr.stop!))) - (not (and (and X2 X1) top.impl.usr.stop!))) - (ite X3 top.usr.MaySafelyMove! true)) - true)) - (= top.res.abs_2! (not top.usr.TryToMove2!)) - (= top.res.abs_5! (not top.usr.TryToMove1!)) - (__node_trans_redge_0 - top.res.abs_3! - top.res.abs_4! - top.res.inst_18! - top.res.inst_17! - top.res.abs_3 - top.res.abs_4 - top.res.inst_18 - top.res.inst_17) - (__node_trans_redge_0 - top.res.abs_6! - top.res.abs_7! - top.res.inst_16! - top.res.inst_15! - top.res.abs_6 - top.res.abs_7 - top.res.inst_16 - top.res.inst_15) - (__node_trans_fedge_0 - top.impl.usr.MayMove1! - top.res.abs_8! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.impl.usr.MayMove1 - top.res.abs_8 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10) - (__node_trans_fedge_0 - top.impl.usr.MayMove2! - top.res.abs_9! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.impl.usr.MayMove2 - top.res.abs_9 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5) - (__node_trans_sustain_0 - top.res.abs_0! - top.impl.usr.stop! - top.res.abs_1! - top.res.inst_4! - top.res.abs_0 - top.impl.usr.stop - top.res.abs_1 - top.res.inst_4) - (__node_trans_redge_0 - top.usr.TryToMove1! - top.res.abs_10! - top.res.inst_3! - top.res.inst_2! - top.usr.TryToMove1 - top.res.abs_10 - top.res.inst_3 - top.res.inst_2) - (__node_trans_redge_0 - top.usr.TryToMove2! - top.res.abs_11! - top.res.inst_1! - top.res.inst_0! - top.usr.TryToMove2 - top.res.abs_11 - top.res.inst_1 - top.res.inst_0) - (not top.res.init_flag!))))))) -) - -(define-fun - prop ( - (top.usr.MaySafelyMove Bool) - (top.usr.TryToMove1 Bool) - (top.usr.TryToMove2 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.MayMove1 Bool) - (top.impl.usr.MayMove2 Bool) - (top.impl.usr.stop Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_sustain_0 ((sustain.usr.on_a_0 Bool) (sustain.usr.off_a_0 Bool) (sustain.usr.s_a_0 Bool) (sustain.res.init_flag_a_0 Bool)) Bool + (and (= sustain.usr.s_a_0 sustain.usr.on_a_0) sustain.res.init_flag_a_0)) +(define-fun __node_trans_sustain_0 ((sustain.usr.on_a_1 Bool) (sustain.usr.off_a_1 Bool) (sustain.usr.s_a_1 Bool) (sustain.res.init_flag_a_1 Bool) (sustain.usr.on_a_0 Bool) (sustain.usr.off_a_0 Bool) (sustain.usr.s_a_0 Bool) (sustain.res.init_flag_a_0 Bool)) Bool + (and (= sustain.usr.s_a_1 (ite sustain.usr.on_a_1 true (ite sustain.usr.off_a_1 false sustain.usr.s_a_0))) (not sustain.res.init_flag_a_1))) +(define-fun __node_init_redge_0 ((redge.usr.signal_a_0 Bool) (redge.usr.r_a_0 Bool) (redge.res.init_flag_a_0 Bool) (redge.res.abs_0_a_0 Bool)) Bool + (and (= redge.usr.r_a_0 redge.usr.signal_a_0) (= redge.res.abs_0_a_0 (not redge.usr.signal_a_0)) redge.res.init_flag_a_0)) +(define-fun __node_trans_redge_0 ((redge.usr.signal_a_1 Bool) (redge.usr.r_a_1 Bool) (redge.res.init_flag_a_1 Bool) (redge.res.abs_0_a_1 Bool) (redge.usr.signal_a_0 Bool) (redge.usr.r_a_0 Bool) (redge.res.init_flag_a_0 Bool) (redge.res.abs_0_a_0 Bool)) Bool + (and (= redge.usr.r_a_1 (and redge.usr.signal_a_1 redge.res.abs_0_a_0)) (= redge.res.abs_0_a_1 (not redge.usr.signal_a_1)) (not redge.res.init_flag_a_1))) +(define-fun __node_init_fedge_0 ((fedge.usr.signal_a_0 Bool) (fedge.usr.f_a_0 Bool) (fedge.res.init_flag_a_0 Bool) (fedge.res.abs_0_a_0 Bool) (fedge.res.abs_1_a_0 Bool) (fedge.res.inst_1_a_0 Bool) (fedge.res.inst_0_a_0 Bool)) Bool + (and (= fedge.res.abs_0_a_0 (not fedge.usr.signal_a_0)) (= fedge.usr.f_a_0 fedge.res.abs_1_a_0) (__node_init_redge_0 fedge.res.abs_0_a_0 fedge.res.abs_1_a_0 fedge.res.inst_1_a_0 fedge.res.inst_0_a_0) fedge.res.init_flag_a_0)) +(define-fun __node_trans_fedge_0 ((fedge.usr.signal_a_1 Bool) (fedge.usr.f_a_1 Bool) (fedge.res.init_flag_a_1 Bool) (fedge.res.abs_0_a_1 Bool) (fedge.res.abs_1_a_1 Bool) (fedge.res.inst_1_a_1 Bool) (fedge.res.inst_0_a_1 Bool) (fedge.usr.signal_a_0 Bool) (fedge.usr.f_a_0 Bool) (fedge.res.init_flag_a_0 Bool) (fedge.res.abs_0_a_0 Bool) (fedge.res.abs_1_a_0 Bool) (fedge.res.inst_1_a_0 Bool) (fedge.res.inst_0_a_0 Bool)) Bool + (and (= fedge.res.abs_0_a_1 (not fedge.usr.signal_a_1)) (= fedge.usr.f_a_1 fedge.res.abs_1_a_1) (__node_trans_redge_0 fedge.res.abs_0_a_1 fedge.res.abs_1_a_1 fedge.res.inst_1_a_1 fedge.res.inst_0_a_1 fedge.res.abs_0_a_0 fedge.res.abs_1_a_0 fedge.res.inst_1_a_0 fedge.res.inst_0_a_0) (not fedge.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.MaySafelyMove_a_0 Bool) (top.usr.TryToMove1_a_0 Bool) (top.usr.TryToMove2_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.MayMove1_a_0 Bool) (top.impl.usr.MayMove2_a_0 Bool) (top.impl.usr.stop_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.MayMove1_a_0 (and top.usr.TryToMove1_a_0 top.usr.MaySafelyMove_a_0)) (= top.res.abs_3_a_0 top.impl.usr.MayMove1_a_0) (let ((X1 top.res.abs_4_a_0)) (and (= top.res.abs_2_a_0 (not top.usr.TryToMove2_a_0)) (= top.impl.usr.MayMove2_a_0 (and top.usr.TryToMove2_a_0 top.usr.MaySafelyMove_a_0)) (= top.res.abs_6_a_0 top.impl.usr.MayMove2_a_0) (let ((X2 top.res.abs_7_a_0)) (and (= top.res.abs_5_a_0 (not top.usr.TryToMove1_a_0)) (= top.impl.usr.stop_a_0 (or top.res.abs_8_a_0 top.res.abs_9_a_0)) (= top.res.abs_0_a_0 (or X1 X2)) (let ((X3 top.res.abs_1_a_0)) (and (__node_init_redge_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0) (__node_init_redge_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0) (__node_init_fedge_0 top.impl.usr.MayMove1_a_0 top.res.abs_8_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0) (__node_init_fedge_0 top.impl.usr.MayMove2_a_0 top.res.abs_9_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0) (__node_init_sustain_0 top.res.abs_0_a_0 top.impl.usr.stop_a_0 top.res.abs_1_a_0 top.res.inst_4_a_0) (__node_init_redge_0 top.usr.TryToMove1_a_0 top.res.abs_10_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_redge_0 top.usr.TryToMove2_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.MaySafelyMove_a_1 Bool) (top.usr.TryToMove1_a_1 Bool) (top.usr.TryToMove2_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.MayMove1_a_1 Bool) (top.impl.usr.MayMove2_a_1 Bool) (top.impl.usr.stop_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_18_a_1 Bool) (top.res.inst_17_a_1 Bool) (top.res.inst_16_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Bool) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Bool) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Bool) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.MaySafelyMove_a_0 Bool) (top.usr.TryToMove1_a_0 Bool) (top.usr.TryToMove2_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.MayMove1_a_0 Bool) (top.impl.usr.MayMove2_a_0 Bool) (top.impl.usr.stop_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.MayMove2_a_1 (and top.usr.TryToMove2_a_1 top.usr.MaySafelyMove_a_1)) (= top.impl.usr.MayMove1_a_1 (and top.usr.TryToMove1_a_1 top.usr.MaySafelyMove_a_1)) (= top.res.abs_6_a_1 (and top.impl.usr.MayMove2_a_1 top.res.abs_5_a_0)) (= top.res.abs_3_a_1 (and top.impl.usr.MayMove1_a_1 top.res.abs_2_a_0)) (let ((X1 top.res.abs_7_a_1)) (let ((X2 top.res.abs_4_a_1)) (and (= top.res.abs_0_a_1 (or X2 X1)) (= top.impl.usr.stop_a_1 (or top.res.abs_8_a_1 top.res.abs_9_a_1)) (let ((X3 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (ite (or (not top.res.abs_10_a_1) (not top.res.abs_11_a_1)) (and (and (or (or (and (not X2) (not X1)) (and (not X1) (not top.impl.usr.stop_a_1))) (and (not X2) (not top.impl.usr.stop_a_1))) (not (and (and X2 X1) top.impl.usr.stop_a_1))) (ite X3 top.usr.MaySafelyMove_a_1 true)) true)) (= top.res.abs_2_a_1 (not top.usr.TryToMove2_a_1)) (= top.res.abs_5_a_1 (not top.usr.TryToMove1_a_1)) (__node_trans_redge_0 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.inst_18_a_1 top.res.inst_17_a_1 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0) (__node_trans_redge_0 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.inst_16_a_1 top.res.inst_15_a_1 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0) (__node_trans_fedge_0 top.impl.usr.MayMove1_a_1 top.res.abs_8_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.impl.usr.MayMove1_a_0 top.res.abs_8_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0) (__node_trans_fedge_0 top.impl.usr.MayMove2_a_1 top.res.abs_9_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.impl.usr.MayMove2_a_0 top.res.abs_9_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0) (__node_trans_sustain_0 top.res.abs_0_a_1 top.impl.usr.stop_a_1 top.res.abs_1_a_1 top.res.inst_4_a_1 top.res.abs_0_a_0 top.impl.usr.stop_a_0 top.res.abs_1_a_0 top.res.inst_4_a_0) (__node_trans_redge_0 top.usr.TryToMove1_a_1 top.res.abs_10_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.TryToMove1_a_0 top.res.abs_10_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_redge_0 top.usr.TryToMove2_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.inst_0_a_1 top.usr.TryToMove2_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.MaySafelyMove Bool) (top.usr.TryToMove1 Bool) (top.usr.TryToMove2 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.MayMove1 Bool) (top.impl.usr.MayMove2 Bool) (top.impl.usr.stop Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.MaySafelyMove Bool) (top.usr.TryToMove1 Bool) (top.usr.TryToMove2 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.MayMove1 Bool) (top.impl.usr.MayMove2 Bool) (top.impl.usr.stop Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.MayMove1 (and top.usr.TryToMove1 top.usr.MaySafelyMove)) (= top.res.abs_3 top.impl.usr.MayMove1) (let ((X1 top.res.abs_4)) (and (= top.res.abs_2 (not top.usr.TryToMove2)) (= top.impl.usr.MayMove2 (and top.usr.TryToMove2 top.usr.MaySafelyMove)) (= top.res.abs_6 top.impl.usr.MayMove2) (let ((X2 top.res.abs_7)) (and (= top.res.abs_5 (not top.usr.TryToMove1)) (= top.impl.usr.stop (or top.res.abs_8 top.res.abs_9)) (= top.res.abs_0 (or X1 X2)) (let ((X3 top.res.abs_1)) (and (__node_init_redge_0 top.res.abs_3 top.res.abs_4 top.res.inst_18 top.res.inst_17) (__node_init_redge_0 top.res.abs_6 top.res.abs_7 top.res.inst_16 top.res.inst_15) (__node_init_fedge_0 top.impl.usr.MayMove1 top.res.abs_8 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10) (__node_init_fedge_0 top.impl.usr.MayMove2 top.res.abs_9 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5) (__node_init_sustain_0 top.res.abs_0 top.impl.usr.stop top.res.abs_1 top.res.inst_4) (__node_init_redge_0 top.usr.TryToMove1 top.res.abs_10 top.res.inst_3 top.res.inst_2) (__node_init_redge_0 top.usr.TryToMove2 top.res.abs_11 top.res.inst_1 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.MaySafelyMove Bool) (top.usr.TryToMove1 Bool) (top.usr.TryToMove2 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.MayMove1 Bool) (top.impl.usr.MayMove2 Bool) (top.impl.usr.stop Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.MaySafelyMove! Bool) (top.usr.TryToMove1! Bool) (top.usr.TryToMove2! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.MayMove1! Bool) (top.impl.usr.MayMove2! Bool) (top.impl.usr.stop! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_18! Bool) (top.res.inst_17! Bool) (top.res.inst_16! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Bool) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Bool) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Bool) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.MayMove2! (and top.usr.TryToMove2! top.usr.MaySafelyMove!)) (= top.impl.usr.MayMove1! (and top.usr.TryToMove1! top.usr.MaySafelyMove!)) (= top.res.abs_6! (and top.impl.usr.MayMove2! top.res.abs_5)) (= top.res.abs_3! (and top.impl.usr.MayMove1! top.res.abs_2)) (let ((X1 top.res.abs_7!)) (let ((X2 top.res.abs_4!)) (and (= top.res.abs_0! (or X2 X1)) (= top.impl.usr.stop! (or top.res.abs_8! top.res.abs_9!)) (let ((X3 top.res.abs_1!)) (and (= top.usr.OK! (ite (or (not top.res.abs_10!) (not top.res.abs_11!)) (and (and (or (or (and (not X2) (not X1)) (and (not X1) (not top.impl.usr.stop!))) (and (not X2) (not top.impl.usr.stop!))) (not (and (and X2 X1) top.impl.usr.stop!))) (ite X3 top.usr.MaySafelyMove! true)) true)) (= top.res.abs_2! (not top.usr.TryToMove2!)) (= top.res.abs_5! (not top.usr.TryToMove1!)) (__node_trans_redge_0 top.res.abs_3! top.res.abs_4! top.res.inst_18! top.res.inst_17! top.res.abs_3 top.res.abs_4 top.res.inst_18 top.res.inst_17) (__node_trans_redge_0 top.res.abs_6! top.res.abs_7! top.res.inst_16! top.res.inst_15! top.res.abs_6 top.res.abs_7 top.res.inst_16 top.res.inst_15) (__node_trans_fedge_0 top.impl.usr.MayMove1! top.res.abs_8! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.impl.usr.MayMove1 top.res.abs_8 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10) (__node_trans_fedge_0 top.impl.usr.MayMove2! top.res.abs_9! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.impl.usr.MayMove2 top.res.abs_9 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5) (__node_trans_sustain_0 top.res.abs_0! top.impl.usr.stop! top.res.abs_1! top.res.inst_4! top.res.abs_0 top.impl.usr.stop top.res.abs_1 top.res.inst_4) (__node_trans_redge_0 top.usr.TryToMove1! top.res.abs_10! top.res.inst_3! top.res.inst_2! top.usr.TryToMove1 top.res.abs_10 top.res.inst_3 top.res.inst_2) (__node_trans_redge_0 top.usr.TryToMove2! top.res.abs_11! top.res.inst_1! top.res.inst_0! top.usr.TryToMove2 top.res.abs_11 top.res.inst_1 top.res.inst_0) (not top.res.init_flag!)))))))) +(define-fun prop ((top.usr.MaySafelyMove Bool) (top.usr.TryToMove1 Bool) (top.usr.TryToMove2 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.MayMove1 Bool) (top.impl.usr.MayMove2 Bool) (top.impl.usr.stop Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/production_cell_e7_207_e8_241.sl b/benchmarks/LIA/Lustre/production_cell_e7_207_e8_241.sl index db2c6d0..fcf15e4 100644 --- a/benchmarks/LIA/Lustre/production_cell_e7_207_e8_241.sl +++ b/benchmarks/LIA/Lustre/production_cell_e7_207_e8_241.sl @@ -1,864 +1,31 @@ (set-logic LIA) -(define-fun - __node_init_sustain_0 ( - (sustain.usr.on_a_0 Bool) - (sustain.usr.off_a_0 Bool) - (sustain.usr.s_a_0 Bool) - (sustain.res.init_flag_a_0 Bool) - ) Bool - - (and (= sustain.usr.s_a_0 sustain.usr.on_a_0) sustain.res.init_flag_a_0) -) - -(define-fun - __node_trans_sustain_0 ( - (sustain.usr.on_a_1 Bool) - (sustain.usr.off_a_1 Bool) - (sustain.usr.s_a_1 Bool) - (sustain.res.init_flag_a_1 Bool) - (sustain.usr.on_a_0 Bool) - (sustain.usr.off_a_0 Bool) - (sustain.usr.s_a_0 Bool) - (sustain.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - sustain.usr.s_a_1 - (ite sustain.usr.on_a_1 true (ite sustain.usr.off_a_1 false sustain.usr.s_a_0))) - (not sustain.res.init_flag_a_1)) -) - -(define-fun - __node_init_redge_0 ( - (redge.usr.signal_a_0 Bool) - (redge.usr.r_a_0 Bool) - (redge.res.init_flag_a_0 Bool) - (redge.res.abs_0_a_0 Bool) - ) Bool - - (and - (= redge.usr.r_a_0 redge.usr.signal_a_0) - (= redge.res.abs_0_a_0 (not redge.usr.signal_a_0)) - redge.res.init_flag_a_0) -) - -(define-fun - __node_trans_redge_0 ( - (redge.usr.signal_a_1 Bool) - (redge.usr.r_a_1 Bool) - (redge.res.init_flag_a_1 Bool) - (redge.res.abs_0_a_1 Bool) - (redge.usr.signal_a_0 Bool) - (redge.usr.r_a_0 Bool) - (redge.res.init_flag_a_0 Bool) - (redge.res.abs_0_a_0 Bool) - ) Bool - - (and - (= redge.usr.r_a_1 (and redge.usr.signal_a_1 redge.res.abs_0_a_0)) - (= redge.res.abs_0_a_1 (not redge.usr.signal_a_1)) - (not redge.res.init_flag_a_1)) -) - -(define-fun - __node_init_fedge_0 ( - (fedge.usr.signal_a_0 Bool) - (fedge.usr.f_a_0 Bool) - (fedge.res.init_flag_a_0 Bool) - (fedge.res.abs_0_a_0 Bool) - (fedge.res.abs_1_a_0 Bool) - (fedge.res.inst_1_a_0 Bool) - (fedge.res.inst_0_a_0 Bool) - ) Bool - - (and - (= fedge.res.abs_0_a_0 (not fedge.usr.signal_a_0)) - (= fedge.usr.f_a_0 fedge.res.abs_1_a_0) - (__node_init_redge_0 - fedge.res.abs_0_a_0 - fedge.res.abs_1_a_0 - fedge.res.inst_1_a_0 - fedge.res.inst_0_a_0) - fedge.res.init_flag_a_0) -) - -(define-fun - __node_trans_fedge_0 ( - (fedge.usr.signal_a_1 Bool) - (fedge.usr.f_a_1 Bool) - (fedge.res.init_flag_a_1 Bool) - (fedge.res.abs_0_a_1 Bool) - (fedge.res.abs_1_a_1 Bool) - (fedge.res.inst_1_a_1 Bool) - (fedge.res.inst_0_a_1 Bool) - (fedge.usr.signal_a_0 Bool) - (fedge.usr.f_a_0 Bool) - (fedge.res.init_flag_a_0 Bool) - (fedge.res.abs_0_a_0 Bool) - (fedge.res.abs_1_a_0 Bool) - (fedge.res.inst_1_a_0 Bool) - (fedge.res.inst_0_a_0 Bool) - ) Bool - - (and - (= fedge.res.abs_0_a_1 (not fedge.usr.signal_a_1)) - (= fedge.usr.f_a_1 fedge.res.abs_1_a_1) - (__node_trans_redge_0 - fedge.res.abs_0_a_1 - fedge.res.abs_1_a_1 - fedge.res.inst_1_a_1 - fedge.res.inst_0_a_1 - fedge.res.abs_0_a_0 - fedge.res.abs_1_a_0 - fedge.res.inst_1_a_0 - fedge.res.inst_0_a_0) - (not fedge.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.MaySafelyMove_a_0 Bool) - (top.usr.TryToMove1_a_0 Bool) - (top.usr.TryToMove2_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.MayMove1_a_0 Bool) - (top.impl.usr.MayMove2_a_0 Bool) - (top.impl.usr.stop_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= - top.impl.usr.MayMove1_a_0 - (and top.usr.TryToMove1_a_0 top.usr.MaySafelyMove_a_0)) - (= top.res.abs_3_a_0 top.impl.usr.MayMove1_a_0) - (let - ((X1 Bool top.res.abs_4_a_0)) - (and - (= top.res.abs_2_a_0 (not top.usr.TryToMove2_a_0)) - (= - top.impl.usr.MayMove2_a_0 - (and top.usr.TryToMove2_a_0 top.usr.MaySafelyMove_a_0)) - (= top.res.abs_6_a_0 top.impl.usr.MayMove2_a_0) - (let - ((X2 Bool top.res.abs_7_a_0)) - (and - (= top.res.abs_5_a_0 (not top.usr.TryToMove1_a_0)) - (= top.impl.usr.stop_a_0 (or top.res.abs_8_a_0 top.res.abs_9_a_0)) - (= top.res.abs_0_a_0 (or X1 X2)) - (let - ((X3 Bool top.res.abs_1_a_0)) - (and - (__node_init_redge_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0) - (__node_init_redge_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_16_a_0 - top.res.inst_15_a_0) - (__node_init_fedge_0 - top.impl.usr.MayMove1_a_0 - top.res.abs_8_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0) - (__node_init_fedge_0 - top.impl.usr.MayMove2_a_0 - top.res.abs_9_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0) - (__node_init_sustain_0 - top.res.abs_0_a_0 - top.impl.usr.stop_a_0 - top.res.abs_1_a_0 - top.res.inst_4_a_0) - (__node_init_redge_0 - top.usr.TryToMove1_a_0 - top.res.abs_10_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_redge_0 - top.usr.TryToMove2_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.MaySafelyMove_a_1 Bool) - (top.usr.TryToMove1_a_1 Bool) - (top.usr.TryToMove2_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.MayMove1_a_1 Bool) - (top.impl.usr.MayMove2_a_1 Bool) - (top.impl.usr.stop_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_18_a_1 Bool) - (top.res.inst_17_a_1 Bool) - (top.res.inst_16_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Bool) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Bool) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Bool) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.MaySafelyMove_a_0 Bool) - (top.usr.TryToMove1_a_0 Bool) - (top.usr.TryToMove2_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.MayMove1_a_0 Bool) - (top.impl.usr.MayMove2_a_0 Bool) - (top.impl.usr.stop_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.impl.usr.MayMove2_a_1 - (and top.usr.TryToMove2_a_1 top.usr.MaySafelyMove_a_1)) - (= - top.impl.usr.MayMove1_a_1 - (and top.usr.TryToMove1_a_1 top.usr.MaySafelyMove_a_1)) - (= top.res.abs_6_a_1 (and top.impl.usr.MayMove2_a_1 top.res.abs_5_a_0)) - (= top.res.abs_3_a_1 (and top.impl.usr.MayMove1_a_1 top.res.abs_2_a_0)) - (let - ((X1 Bool top.res.abs_7_a_1)) - (let - ((X2 Bool top.res.abs_4_a_1)) - (and - (= top.res.abs_0_a_1 (or X2 X1)) - (= top.impl.usr.stop_a_1 (or top.res.abs_8_a_1 top.res.abs_9_a_1)) - (let - ((X3 Bool top.res.abs_1_a_1)) - (and - (= - top.usr.OK_a_1 - (ite - (or (not top.res.abs_10_a_1) (not top.res.abs_11_a_1)) - (and - (and - (or - (or - (and (not X2) (not X1)) - (and (not X1) (not top.impl.usr.stop_a_1))) - (and (not X2) (not top.impl.usr.stop_a_1))) - (not (and (and X2 X1) top.impl.usr.stop_a_1))) - (ite X3 top.usr.MaySafelyMove_a_1 true)) - true)) - (= top.res.abs_2_a_1 (not top.usr.TryToMove2_a_1)) - (= top.res.abs_5_a_1 (not top.usr.TryToMove1_a_1)) - (__node_trans_redge_0 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.inst_18_a_1 - top.res.inst_17_a_1 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0) - (__node_trans_redge_0 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.inst_16_a_1 - top.res.inst_15_a_1 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_16_a_0 - top.res.inst_15_a_0) - (__node_trans_fedge_0 - top.impl.usr.MayMove1_a_1 - top.res.abs_8_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.impl.usr.MayMove1_a_0 - top.res.abs_8_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0) - (__node_trans_fedge_0 - top.impl.usr.MayMove2_a_1 - top.res.abs_9_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.impl.usr.MayMove2_a_0 - top.res.abs_9_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0) - (__node_trans_sustain_0 - top.res.abs_0_a_1 - top.impl.usr.stop_a_1 - top.res.abs_1_a_1 - top.res.inst_4_a_1 - top.res.abs_0_a_0 - top.impl.usr.stop_a_0 - top.res.abs_1_a_0 - top.res.inst_4_a_0) - (__node_trans_redge_0 - top.usr.TryToMove1_a_1 - top.res.abs_10_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.TryToMove1_a_0 - top.res.abs_10_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_redge_0 - top.usr.TryToMove2_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.inst_0_a_1 - top.usr.TryToMove2_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.MaySafelyMove Bool) - (top.usr.TryToMove1 Bool) - (top.usr.TryToMove2 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.MayMove1 Bool) - (top.impl.usr.MayMove2 Bool) - (top.impl.usr.stop Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.MaySafelyMove Bool) -(declare-primed-var top.usr.TryToMove1 Bool) -(declare-primed-var top.usr.TryToMove2 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.MayMove1 Bool) -(declare-primed-var top.impl.usr.MayMove2 Bool) -(declare-primed-var top.impl.usr.stop Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_18 Bool) -(declare-primed-var top.res.inst_17 Bool) -(declare-primed-var top.res.inst_16 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Bool) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Bool) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Bool) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.MaySafelyMove Bool) - (top.usr.TryToMove1 Bool) - (top.usr.TryToMove2 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.MayMove1 Bool) - (top.impl.usr.MayMove2 Bool) - (top.impl.usr.stop Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.MayMove1 (and top.usr.TryToMove1 top.usr.MaySafelyMove)) - (= top.res.abs_3 top.impl.usr.MayMove1) - (let - ((X1 Bool top.res.abs_4)) - (and - (= top.res.abs_2 (not top.usr.TryToMove2)) - (= top.impl.usr.MayMove2 (and top.usr.TryToMove2 top.usr.MaySafelyMove)) - (= top.res.abs_6 top.impl.usr.MayMove2) - (let - ((X2 Bool top.res.abs_7)) - (and - (= top.res.abs_5 (not top.usr.TryToMove1)) - (= top.impl.usr.stop (or top.res.abs_8 top.res.abs_9)) - (= top.res.abs_0 (or X1 X2)) - (let - ((X3 Bool top.res.abs_1)) - (and - (__node_init_redge_0 - top.res.abs_3 - top.res.abs_4 - top.res.inst_18 - top.res.inst_17) - (__node_init_redge_0 - top.res.abs_6 - top.res.abs_7 - top.res.inst_16 - top.res.inst_15) - (__node_init_fedge_0 - top.impl.usr.MayMove1 - top.res.abs_8 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10) - (__node_init_fedge_0 - top.impl.usr.MayMove2 - top.res.abs_9 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5) - (__node_init_sustain_0 - top.res.abs_0 - top.impl.usr.stop - top.res.abs_1 - top.res.inst_4) - (__node_init_redge_0 - top.usr.TryToMove1 - top.res.abs_10 - top.res.inst_3 - top.res.inst_2) - (__node_init_redge_0 - top.usr.TryToMove2 - top.res.abs_11 - top.res.inst_1 - top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.MaySafelyMove Bool) - (top.usr.TryToMove1 Bool) - (top.usr.TryToMove2 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.MayMove1 Bool) - (top.impl.usr.MayMove2 Bool) - (top.impl.usr.stop Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.MaySafelyMove! Bool) - (top.usr.TryToMove1! Bool) - (top.usr.TryToMove2! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.MayMove1! Bool) - (top.impl.usr.MayMove2! Bool) - (top.impl.usr.stop! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_18! Bool) - (top.res.inst_17! Bool) - (top.res.inst_16! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Bool) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Bool) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Bool) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= - top.impl.usr.MayMove2! - (and top.usr.TryToMove2! top.usr.MaySafelyMove!)) - (= - top.impl.usr.MayMove1! - (and top.usr.TryToMove1! top.usr.MaySafelyMove!)) - (= top.res.abs_6! (and top.impl.usr.MayMove2! top.res.abs_5)) - (= top.res.abs_3! (and top.impl.usr.MayMove1! top.res.abs_2)) - (let - ((X1 Bool top.res.abs_7!)) - (let - ((X2 Bool top.res.abs_4!)) - (and - (= top.res.abs_0! (or X2 X1)) - (= top.impl.usr.stop! (or top.res.abs_8! top.res.abs_9!)) - (let - ((X3 Bool top.res.abs_1!)) - (and - (= - top.usr.OK! - (ite - (or (not top.res.abs_10!) (not top.res.abs_11!)) - (and - (and - (or - (or - (and (not X2) (not X1)) - (and (not X1) (not top.impl.usr.stop!))) - (and (not X2) (not top.impl.usr.stop!))) - (not (and (and X2 X1) top.impl.usr.stop!))) - (ite X3 top.usr.MaySafelyMove! true)) - true)) - (= top.res.abs_2! (not top.usr.TryToMove2!)) - (= top.res.abs_5! (not top.usr.TryToMove1!)) - (__node_trans_redge_0 - top.res.abs_3! - top.res.abs_4! - top.res.inst_18! - top.res.inst_17! - top.res.abs_3 - top.res.abs_4 - top.res.inst_18 - top.res.inst_17) - (__node_trans_redge_0 - top.res.abs_6! - top.res.abs_7! - top.res.inst_16! - top.res.inst_15! - top.res.abs_6 - top.res.abs_7 - top.res.inst_16 - top.res.inst_15) - (__node_trans_fedge_0 - top.impl.usr.MayMove1! - top.res.abs_8! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.impl.usr.MayMove1 - top.res.abs_8 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10) - (__node_trans_fedge_0 - top.impl.usr.MayMove2! - top.res.abs_9! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.impl.usr.MayMove2 - top.res.abs_9 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5) - (__node_trans_sustain_0 - top.res.abs_0! - top.impl.usr.stop! - top.res.abs_1! - top.res.inst_4! - top.res.abs_0 - top.impl.usr.stop - top.res.abs_1 - top.res.inst_4) - (__node_trans_redge_0 - top.usr.TryToMove1! - top.res.abs_10! - top.res.inst_3! - top.res.inst_2! - top.usr.TryToMove1 - top.res.abs_10 - top.res.inst_3 - top.res.inst_2) - (__node_trans_redge_0 - top.usr.TryToMove2! - top.res.abs_11! - top.res.inst_1! - top.res.inst_0! - top.usr.TryToMove2 - top.res.abs_11 - top.res.inst_1 - top.res.inst_0) - (not top.res.init_flag!))))))) -) - -(define-fun - prop ( - (top.usr.MaySafelyMove Bool) - (top.usr.TryToMove1 Bool) - (top.usr.TryToMove2 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.MayMove1 Bool) - (top.impl.usr.MayMove2 Bool) - (top.impl.usr.stop Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_sustain_0 ((sustain.usr.on_a_0 Bool) (sustain.usr.off_a_0 Bool) (sustain.usr.s_a_0 Bool) (sustain.res.init_flag_a_0 Bool)) Bool + (and (= sustain.usr.s_a_0 sustain.usr.on_a_0) sustain.res.init_flag_a_0)) +(define-fun __node_trans_sustain_0 ((sustain.usr.on_a_1 Bool) (sustain.usr.off_a_1 Bool) (sustain.usr.s_a_1 Bool) (sustain.res.init_flag_a_1 Bool) (sustain.usr.on_a_0 Bool) (sustain.usr.off_a_0 Bool) (sustain.usr.s_a_0 Bool) (sustain.res.init_flag_a_0 Bool)) Bool + (and (= sustain.usr.s_a_1 (ite sustain.usr.on_a_1 true (ite sustain.usr.off_a_1 false sustain.usr.s_a_0))) (not sustain.res.init_flag_a_1))) +(define-fun __node_init_redge_0 ((redge.usr.signal_a_0 Bool) (redge.usr.r_a_0 Bool) (redge.res.init_flag_a_0 Bool) (redge.res.abs_0_a_0 Bool)) Bool + (and (= redge.usr.r_a_0 redge.usr.signal_a_0) (= redge.res.abs_0_a_0 (not redge.usr.signal_a_0)) redge.res.init_flag_a_0)) +(define-fun __node_trans_redge_0 ((redge.usr.signal_a_1 Bool) (redge.usr.r_a_1 Bool) (redge.res.init_flag_a_1 Bool) (redge.res.abs_0_a_1 Bool) (redge.usr.signal_a_0 Bool) (redge.usr.r_a_0 Bool) (redge.res.init_flag_a_0 Bool) (redge.res.abs_0_a_0 Bool)) Bool + (and (= redge.usr.r_a_1 (and redge.usr.signal_a_1 redge.res.abs_0_a_0)) (= redge.res.abs_0_a_1 (not redge.usr.signal_a_1)) (not redge.res.init_flag_a_1))) +(define-fun __node_init_fedge_0 ((fedge.usr.signal_a_0 Bool) (fedge.usr.f_a_0 Bool) (fedge.res.init_flag_a_0 Bool) (fedge.res.abs_0_a_0 Bool) (fedge.res.abs_1_a_0 Bool) (fedge.res.inst_1_a_0 Bool) (fedge.res.inst_0_a_0 Bool)) Bool + (and (= fedge.res.abs_0_a_0 (not fedge.usr.signal_a_0)) (= fedge.usr.f_a_0 fedge.res.abs_1_a_0) (__node_init_redge_0 fedge.res.abs_0_a_0 fedge.res.abs_1_a_0 fedge.res.inst_1_a_0 fedge.res.inst_0_a_0) fedge.res.init_flag_a_0)) +(define-fun __node_trans_fedge_0 ((fedge.usr.signal_a_1 Bool) (fedge.usr.f_a_1 Bool) (fedge.res.init_flag_a_1 Bool) (fedge.res.abs_0_a_1 Bool) (fedge.res.abs_1_a_1 Bool) (fedge.res.inst_1_a_1 Bool) (fedge.res.inst_0_a_1 Bool) (fedge.usr.signal_a_0 Bool) (fedge.usr.f_a_0 Bool) (fedge.res.init_flag_a_0 Bool) (fedge.res.abs_0_a_0 Bool) (fedge.res.abs_1_a_0 Bool) (fedge.res.inst_1_a_0 Bool) (fedge.res.inst_0_a_0 Bool)) Bool + (and (= fedge.res.abs_0_a_1 (not fedge.usr.signal_a_1)) (= fedge.usr.f_a_1 fedge.res.abs_1_a_1) (__node_trans_redge_0 fedge.res.abs_0_a_1 fedge.res.abs_1_a_1 fedge.res.inst_1_a_1 fedge.res.inst_0_a_1 fedge.res.abs_0_a_0 fedge.res.abs_1_a_0 fedge.res.inst_1_a_0 fedge.res.inst_0_a_0) (not fedge.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.MaySafelyMove_a_0 Bool) (top.usr.TryToMove1_a_0 Bool) (top.usr.TryToMove2_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.MayMove1_a_0 Bool) (top.impl.usr.MayMove2_a_0 Bool) (top.impl.usr.stop_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.MayMove1_a_0 (and top.usr.TryToMove1_a_0 top.usr.MaySafelyMove_a_0)) (= top.res.abs_3_a_0 top.impl.usr.MayMove1_a_0) (let ((X1 top.res.abs_4_a_0)) (and (= top.res.abs_2_a_0 (not top.usr.TryToMove2_a_0)) (= top.impl.usr.MayMove2_a_0 (and top.usr.TryToMove2_a_0 top.usr.MaySafelyMove_a_0)) (= top.res.abs_6_a_0 top.impl.usr.MayMove2_a_0) (let ((X2 top.res.abs_7_a_0)) (and (= top.res.abs_5_a_0 (not top.usr.TryToMove1_a_0)) (= top.impl.usr.stop_a_0 (or top.res.abs_8_a_0 top.res.abs_9_a_0)) (= top.res.abs_0_a_0 (or X1 X2)) (let ((X3 top.res.abs_1_a_0)) (and (__node_init_redge_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0) (__node_init_redge_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0) (__node_init_fedge_0 top.impl.usr.MayMove1_a_0 top.res.abs_8_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0) (__node_init_fedge_0 top.impl.usr.MayMove2_a_0 top.res.abs_9_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0) (__node_init_sustain_0 top.res.abs_0_a_0 top.impl.usr.stop_a_0 top.res.abs_1_a_0 top.res.inst_4_a_0) (__node_init_redge_0 top.usr.TryToMove1_a_0 top.res.abs_10_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_redge_0 top.usr.TryToMove2_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.MaySafelyMove_a_1 Bool) (top.usr.TryToMove1_a_1 Bool) (top.usr.TryToMove2_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.MayMove1_a_1 Bool) (top.impl.usr.MayMove2_a_1 Bool) (top.impl.usr.stop_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_18_a_1 Bool) (top.res.inst_17_a_1 Bool) (top.res.inst_16_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Bool) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Bool) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Bool) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.MaySafelyMove_a_0 Bool) (top.usr.TryToMove1_a_0 Bool) (top.usr.TryToMove2_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.MayMove1_a_0 Bool) (top.impl.usr.MayMove2_a_0 Bool) (top.impl.usr.stop_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.MayMove2_a_1 (and top.usr.TryToMove2_a_1 top.usr.MaySafelyMove_a_1)) (= top.impl.usr.MayMove1_a_1 (and top.usr.TryToMove1_a_1 top.usr.MaySafelyMove_a_1)) (= top.res.abs_6_a_1 (and top.impl.usr.MayMove2_a_1 top.res.abs_5_a_0)) (= top.res.abs_3_a_1 (and top.impl.usr.MayMove1_a_1 top.res.abs_2_a_0)) (let ((X1 top.res.abs_7_a_1)) (let ((X2 top.res.abs_4_a_1)) (and (= top.res.abs_0_a_1 (or X2 X1)) (= top.impl.usr.stop_a_1 (or top.res.abs_8_a_1 top.res.abs_9_a_1)) (let ((X3 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (ite (or (not top.res.abs_10_a_1) (not top.res.abs_11_a_1)) (and (and (or (or (and (not X2) (not X1)) (and (not X1) (not top.impl.usr.stop_a_1))) (and (not X2) (not top.impl.usr.stop_a_1))) (not (and (and X2 X1) top.impl.usr.stop_a_1))) (ite X3 top.usr.MaySafelyMove_a_1 true)) true)) (= top.res.abs_2_a_1 (not top.usr.TryToMove2_a_1)) (= top.res.abs_5_a_1 (not top.usr.TryToMove1_a_1)) (__node_trans_redge_0 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.inst_18_a_1 top.res.inst_17_a_1 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0) (__node_trans_redge_0 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.inst_16_a_1 top.res.inst_15_a_1 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0) (__node_trans_fedge_0 top.impl.usr.MayMove1_a_1 top.res.abs_8_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.impl.usr.MayMove1_a_0 top.res.abs_8_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0) (__node_trans_fedge_0 top.impl.usr.MayMove2_a_1 top.res.abs_9_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.impl.usr.MayMove2_a_0 top.res.abs_9_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0) (__node_trans_sustain_0 top.res.abs_0_a_1 top.impl.usr.stop_a_1 top.res.abs_1_a_1 top.res.inst_4_a_1 top.res.abs_0_a_0 top.impl.usr.stop_a_0 top.res.abs_1_a_0 top.res.inst_4_a_0) (__node_trans_redge_0 top.usr.TryToMove1_a_1 top.res.abs_10_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.TryToMove1_a_0 top.res.abs_10_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_redge_0 top.usr.TryToMove2_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.inst_0_a_1 top.usr.TryToMove2_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.MaySafelyMove Bool) (top.usr.TryToMove1 Bool) (top.usr.TryToMove2 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.MayMove1 Bool) (top.impl.usr.MayMove2 Bool) (top.impl.usr.stop Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.MaySafelyMove Bool) (top.usr.TryToMove1 Bool) (top.usr.TryToMove2 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.MayMove1 Bool) (top.impl.usr.MayMove2 Bool) (top.impl.usr.stop Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.MayMove1 (and top.usr.TryToMove1 top.usr.MaySafelyMove)) (= top.res.abs_3 top.impl.usr.MayMove1) (let ((X1 top.res.abs_4)) (and (= top.res.abs_2 (not top.usr.TryToMove2)) (= top.impl.usr.MayMove2 (and top.usr.TryToMove2 top.usr.MaySafelyMove)) (= top.res.abs_6 top.impl.usr.MayMove2) (let ((X2 top.res.abs_7)) (and (= top.res.abs_5 (not top.usr.TryToMove1)) (= top.impl.usr.stop (or top.res.abs_8 top.res.abs_9)) (= top.res.abs_0 (or X1 X2)) (let ((X3 top.res.abs_1)) (and (__node_init_redge_0 top.res.abs_3 top.res.abs_4 top.res.inst_18 top.res.inst_17) (__node_init_redge_0 top.res.abs_6 top.res.abs_7 top.res.inst_16 top.res.inst_15) (__node_init_fedge_0 top.impl.usr.MayMove1 top.res.abs_8 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10) (__node_init_fedge_0 top.impl.usr.MayMove2 top.res.abs_9 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5) (__node_init_sustain_0 top.res.abs_0 top.impl.usr.stop top.res.abs_1 top.res.inst_4) (__node_init_redge_0 top.usr.TryToMove1 top.res.abs_10 top.res.inst_3 top.res.inst_2) (__node_init_redge_0 top.usr.TryToMove2 top.res.abs_11 top.res.inst_1 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.MaySafelyMove Bool) (top.usr.TryToMove1 Bool) (top.usr.TryToMove2 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.MayMove1 Bool) (top.impl.usr.MayMove2 Bool) (top.impl.usr.stop Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.MaySafelyMove! Bool) (top.usr.TryToMove1! Bool) (top.usr.TryToMove2! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.MayMove1! Bool) (top.impl.usr.MayMove2! Bool) (top.impl.usr.stop! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_18! Bool) (top.res.inst_17! Bool) (top.res.inst_16! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Bool) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Bool) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Bool) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.MayMove2! (and top.usr.TryToMove2! top.usr.MaySafelyMove!)) (= top.impl.usr.MayMove1! (and top.usr.TryToMove1! top.usr.MaySafelyMove!)) (= top.res.abs_6! (and top.impl.usr.MayMove2! top.res.abs_5)) (= top.res.abs_3! (and top.impl.usr.MayMove1! top.res.abs_2)) (let ((X1 top.res.abs_7!)) (let ((X2 top.res.abs_4!)) (and (= top.res.abs_0! (or X2 X1)) (= top.impl.usr.stop! (or top.res.abs_8! top.res.abs_9!)) (let ((X3 top.res.abs_1!)) (and (= top.usr.OK! (ite (or (not top.res.abs_10!) (not top.res.abs_11!)) (and (and (or (or (and (not X2) (not X1)) (and (not X1) (not top.impl.usr.stop!))) (and (not X2) (not top.impl.usr.stop!))) (not (and (and X2 X1) top.impl.usr.stop!))) (ite X3 top.usr.MaySafelyMove! true)) true)) (= top.res.abs_2! (not top.usr.TryToMove2!)) (= top.res.abs_5! (not top.usr.TryToMove1!)) (__node_trans_redge_0 top.res.abs_3! top.res.abs_4! top.res.inst_18! top.res.inst_17! top.res.abs_3 top.res.abs_4 top.res.inst_18 top.res.inst_17) (__node_trans_redge_0 top.res.abs_6! top.res.abs_7! top.res.inst_16! top.res.inst_15! top.res.abs_6 top.res.abs_7 top.res.inst_16 top.res.inst_15) (__node_trans_fedge_0 top.impl.usr.MayMove1! top.res.abs_8! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.impl.usr.MayMove1 top.res.abs_8 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10) (__node_trans_fedge_0 top.impl.usr.MayMove2! top.res.abs_9! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.impl.usr.MayMove2 top.res.abs_9 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5) (__node_trans_sustain_0 top.res.abs_0! top.impl.usr.stop! top.res.abs_1! top.res.inst_4! top.res.abs_0 top.impl.usr.stop top.res.abs_1 top.res.inst_4) (__node_trans_redge_0 top.usr.TryToMove1! top.res.abs_10! top.res.inst_3! top.res.inst_2! top.usr.TryToMove1 top.res.abs_10 top.res.inst_3 top.res.inst_2) (__node_trans_redge_0 top.usr.TryToMove2! top.res.abs_11! top.res.inst_1! top.res.inst_0! top.usr.TryToMove2 top.res.abs_11 top.res.inst_1 top.res.inst_0) (not top.res.init_flag!)))))))) +(define-fun prop ((top.usr.MaySafelyMove Bool) (top.usr.TryToMove1 Bool) (top.usr.TryToMove2 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.MayMove1 Bool) (top.impl.usr.MayMove2 Bool) (top.impl.usr.stop Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/production_cell_e8_6.sl b/benchmarks/LIA/Lustre/production_cell_e8_6.sl index 3bd99ab..55765ff 100644 --- a/benchmarks/LIA/Lustre/production_cell_e8_6.sl +++ b/benchmarks/LIA/Lustre/production_cell_e8_6.sl @@ -1,864 +1,31 @@ (set-logic LIA) -(define-fun - __node_init_sustain_0 ( - (sustain.usr.on_a_0 Bool) - (sustain.usr.off_a_0 Bool) - (sustain.usr.s_a_0 Bool) - (sustain.res.init_flag_a_0 Bool) - ) Bool - - (and (= sustain.usr.s_a_0 sustain.usr.on_a_0) sustain.res.init_flag_a_0) -) - -(define-fun - __node_trans_sustain_0 ( - (sustain.usr.on_a_1 Bool) - (sustain.usr.off_a_1 Bool) - (sustain.usr.s_a_1 Bool) - (sustain.res.init_flag_a_1 Bool) - (sustain.usr.on_a_0 Bool) - (sustain.usr.off_a_0 Bool) - (sustain.usr.s_a_0 Bool) - (sustain.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - sustain.usr.s_a_1 - (ite sustain.usr.on_a_1 true (ite sustain.usr.off_a_1 false sustain.usr.s_a_0))) - (not sustain.res.init_flag_a_1)) -) - -(define-fun - __node_init_redge_0 ( - (redge.usr.signal_a_0 Bool) - (redge.usr.r_a_0 Bool) - (redge.res.init_flag_a_0 Bool) - (redge.res.abs_0_a_0 Bool) - ) Bool - - (and - (= redge.usr.r_a_0 redge.usr.signal_a_0) - (= redge.res.abs_0_a_0 (not redge.usr.signal_a_0)) - redge.res.init_flag_a_0) -) - -(define-fun - __node_trans_redge_0 ( - (redge.usr.signal_a_1 Bool) - (redge.usr.r_a_1 Bool) - (redge.res.init_flag_a_1 Bool) - (redge.res.abs_0_a_1 Bool) - (redge.usr.signal_a_0 Bool) - (redge.usr.r_a_0 Bool) - (redge.res.init_flag_a_0 Bool) - (redge.res.abs_0_a_0 Bool) - ) Bool - - (and - (= redge.usr.r_a_1 (and redge.usr.signal_a_1 redge.res.abs_0_a_0)) - (= redge.res.abs_0_a_1 (not redge.usr.signal_a_1)) - (not redge.res.init_flag_a_1)) -) - -(define-fun - __node_init_fedge_0 ( - (fedge.usr.signal_a_0 Bool) - (fedge.usr.f_a_0 Bool) - (fedge.res.init_flag_a_0 Bool) - (fedge.res.abs_0_a_0 Bool) - (fedge.res.abs_1_a_0 Bool) - (fedge.res.inst_1_a_0 Bool) - (fedge.res.inst_0_a_0 Bool) - ) Bool - - (and - (= fedge.res.abs_0_a_0 (not fedge.usr.signal_a_0)) - (= fedge.usr.f_a_0 fedge.res.abs_1_a_0) - (__node_init_redge_0 - fedge.res.abs_0_a_0 - fedge.res.abs_1_a_0 - fedge.res.inst_1_a_0 - fedge.res.inst_0_a_0) - fedge.res.init_flag_a_0) -) - -(define-fun - __node_trans_fedge_0 ( - (fedge.usr.signal_a_1 Bool) - (fedge.usr.f_a_1 Bool) - (fedge.res.init_flag_a_1 Bool) - (fedge.res.abs_0_a_1 Bool) - (fedge.res.abs_1_a_1 Bool) - (fedge.res.inst_1_a_1 Bool) - (fedge.res.inst_0_a_1 Bool) - (fedge.usr.signal_a_0 Bool) - (fedge.usr.f_a_0 Bool) - (fedge.res.init_flag_a_0 Bool) - (fedge.res.abs_0_a_0 Bool) - (fedge.res.abs_1_a_0 Bool) - (fedge.res.inst_1_a_0 Bool) - (fedge.res.inst_0_a_0 Bool) - ) Bool - - (and - (= fedge.res.abs_0_a_1 (not fedge.usr.signal_a_1)) - (= fedge.usr.f_a_1 fedge.res.abs_1_a_1) - (__node_trans_redge_0 - fedge.res.abs_0_a_1 - fedge.res.abs_1_a_1 - fedge.res.inst_1_a_1 - fedge.res.inst_0_a_1 - fedge.res.abs_0_a_0 - fedge.res.abs_1_a_0 - fedge.res.inst_1_a_0 - fedge.res.inst_0_a_0) - (not fedge.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.MaySafelyMove_a_0 Bool) - (top.usr.TryToMove1_a_0 Bool) - (top.usr.TryToMove2_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.MayMove1_a_0 Bool) - (top.impl.usr.MayMove2_a_0 Bool) - (top.impl.usr.stop_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= - top.impl.usr.MayMove1_a_0 - (and top.usr.TryToMove1_a_0 top.usr.MaySafelyMove_a_0)) - (= top.res.abs_3_a_0 top.impl.usr.MayMove1_a_0) - (let - ((X1 Bool top.res.abs_4_a_0)) - (and - (= top.res.abs_2_a_0 (not top.usr.TryToMove2_a_0)) - (= - top.impl.usr.MayMove2_a_0 - (and top.usr.TryToMove2_a_0 top.usr.MaySafelyMove_a_0)) - (= top.res.abs_6_a_0 top.impl.usr.MayMove2_a_0) - (let - ((X2 Bool top.res.abs_7_a_0)) - (and - (= top.res.abs_5_a_0 (not top.usr.TryToMove1_a_0)) - (= top.impl.usr.stop_a_0 (or top.res.abs_8_a_0 top.res.abs_9_a_0)) - (= top.res.abs_0_a_0 (and X1 X2)) - (let - ((X3 Bool top.res.abs_1_a_0)) - (and - (__node_init_redge_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0) - (__node_init_redge_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_16_a_0 - top.res.inst_15_a_0) - (__node_init_fedge_0 - top.impl.usr.MayMove1_a_0 - top.res.abs_8_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0) - (__node_init_fedge_0 - top.impl.usr.MayMove2_a_0 - top.res.abs_9_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0) - (__node_init_sustain_0 - top.res.abs_0_a_0 - top.impl.usr.stop_a_0 - top.res.abs_1_a_0 - top.res.inst_4_a_0) - (__node_init_redge_0 - top.usr.TryToMove1_a_0 - top.res.abs_10_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_redge_0 - top.usr.TryToMove2_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.MaySafelyMove_a_1 Bool) - (top.usr.TryToMove1_a_1 Bool) - (top.usr.TryToMove2_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.MayMove1_a_1 Bool) - (top.impl.usr.MayMove2_a_1 Bool) - (top.impl.usr.stop_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_18_a_1 Bool) - (top.res.inst_17_a_1 Bool) - (top.res.inst_16_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Bool) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Bool) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Bool) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.MaySafelyMove_a_0 Bool) - (top.usr.TryToMove1_a_0 Bool) - (top.usr.TryToMove2_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.MayMove1_a_0 Bool) - (top.impl.usr.MayMove2_a_0 Bool) - (top.impl.usr.stop_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.impl.usr.MayMove2_a_1 - (and top.usr.TryToMove2_a_1 top.usr.MaySafelyMove_a_1)) - (= - top.impl.usr.MayMove1_a_1 - (and top.usr.TryToMove1_a_1 top.usr.MaySafelyMove_a_1)) - (= top.res.abs_6_a_1 (and top.impl.usr.MayMove2_a_1 top.res.abs_5_a_0)) - (= top.res.abs_3_a_1 (and top.impl.usr.MayMove1_a_1 top.res.abs_2_a_0)) - (let - ((X1 Bool top.res.abs_7_a_1)) - (let - ((X2 Bool top.res.abs_4_a_1)) - (and - (= top.res.abs_0_a_1 (and X2 X1)) - (= top.impl.usr.stop_a_1 (or top.res.abs_8_a_1 top.res.abs_9_a_1)) - (let - ((X3 Bool top.res.abs_1_a_1)) - (and - (= - top.usr.OK_a_1 - (ite - (or (not top.res.abs_10_a_1) (not top.res.abs_11_a_1)) - (and - (and - (or - (or - (and (not X2) (not X1)) - (and (not X1) (not top.impl.usr.stop_a_1))) - (and (not X2) (not top.impl.usr.stop_a_1))) - (not (and (and X2 X1) top.impl.usr.stop_a_1))) - (ite X3 top.usr.MaySafelyMove_a_1 true)) - true)) - (= top.res.abs_2_a_1 (not top.usr.TryToMove2_a_1)) - (= top.res.abs_5_a_1 (not top.usr.TryToMove1_a_1)) - (__node_trans_redge_0 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.inst_18_a_1 - top.res.inst_17_a_1 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0) - (__node_trans_redge_0 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.inst_16_a_1 - top.res.inst_15_a_1 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_16_a_0 - top.res.inst_15_a_0) - (__node_trans_fedge_0 - top.impl.usr.MayMove1_a_1 - top.res.abs_8_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.impl.usr.MayMove1_a_0 - top.res.abs_8_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0) - (__node_trans_fedge_0 - top.impl.usr.MayMove2_a_1 - top.res.abs_9_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.impl.usr.MayMove2_a_0 - top.res.abs_9_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0) - (__node_trans_sustain_0 - top.res.abs_0_a_1 - top.impl.usr.stop_a_1 - top.res.abs_1_a_1 - top.res.inst_4_a_1 - top.res.abs_0_a_0 - top.impl.usr.stop_a_0 - top.res.abs_1_a_0 - top.res.inst_4_a_0) - (__node_trans_redge_0 - top.usr.TryToMove1_a_1 - top.res.abs_10_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.TryToMove1_a_0 - top.res.abs_10_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_redge_0 - top.usr.TryToMove2_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.inst_0_a_1 - top.usr.TryToMove2_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.MaySafelyMove Bool) - (top.usr.TryToMove1 Bool) - (top.usr.TryToMove2 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.MayMove1 Bool) - (top.impl.usr.MayMove2 Bool) - (top.impl.usr.stop Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.MaySafelyMove Bool) -(declare-primed-var top.usr.TryToMove1 Bool) -(declare-primed-var top.usr.TryToMove2 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.MayMove1 Bool) -(declare-primed-var top.impl.usr.MayMove2 Bool) -(declare-primed-var top.impl.usr.stop Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_18 Bool) -(declare-primed-var top.res.inst_17 Bool) -(declare-primed-var top.res.inst_16 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Bool) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Bool) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Bool) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.MaySafelyMove Bool) - (top.usr.TryToMove1 Bool) - (top.usr.TryToMove2 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.MayMove1 Bool) - (top.impl.usr.MayMove2 Bool) - (top.impl.usr.stop Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.MayMove1 (and top.usr.TryToMove1 top.usr.MaySafelyMove)) - (= top.res.abs_3 top.impl.usr.MayMove1) - (let - ((X1 Bool top.res.abs_4)) - (and - (= top.res.abs_2 (not top.usr.TryToMove2)) - (= top.impl.usr.MayMove2 (and top.usr.TryToMove2 top.usr.MaySafelyMove)) - (= top.res.abs_6 top.impl.usr.MayMove2) - (let - ((X2 Bool top.res.abs_7)) - (and - (= top.res.abs_5 (not top.usr.TryToMove1)) - (= top.impl.usr.stop (or top.res.abs_8 top.res.abs_9)) - (= top.res.abs_0 (and X1 X2)) - (let - ((X3 Bool top.res.abs_1)) - (and - (__node_init_redge_0 - top.res.abs_3 - top.res.abs_4 - top.res.inst_18 - top.res.inst_17) - (__node_init_redge_0 - top.res.abs_6 - top.res.abs_7 - top.res.inst_16 - top.res.inst_15) - (__node_init_fedge_0 - top.impl.usr.MayMove1 - top.res.abs_8 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10) - (__node_init_fedge_0 - top.impl.usr.MayMove2 - top.res.abs_9 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5) - (__node_init_sustain_0 - top.res.abs_0 - top.impl.usr.stop - top.res.abs_1 - top.res.inst_4) - (__node_init_redge_0 - top.usr.TryToMove1 - top.res.abs_10 - top.res.inst_3 - top.res.inst_2) - (__node_init_redge_0 - top.usr.TryToMove2 - top.res.abs_11 - top.res.inst_1 - top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.MaySafelyMove Bool) - (top.usr.TryToMove1 Bool) - (top.usr.TryToMove2 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.MayMove1 Bool) - (top.impl.usr.MayMove2 Bool) - (top.impl.usr.stop Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.MaySafelyMove! Bool) - (top.usr.TryToMove1! Bool) - (top.usr.TryToMove2! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.MayMove1! Bool) - (top.impl.usr.MayMove2! Bool) - (top.impl.usr.stop! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_18! Bool) - (top.res.inst_17! Bool) - (top.res.inst_16! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Bool) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Bool) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Bool) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= - top.impl.usr.MayMove2! - (and top.usr.TryToMove2! top.usr.MaySafelyMove!)) - (= - top.impl.usr.MayMove1! - (and top.usr.TryToMove1! top.usr.MaySafelyMove!)) - (= top.res.abs_6! (and top.impl.usr.MayMove2! top.res.abs_5)) - (= top.res.abs_3! (and top.impl.usr.MayMove1! top.res.abs_2)) - (let - ((X1 Bool top.res.abs_7!)) - (let - ((X2 Bool top.res.abs_4!)) - (and - (= top.res.abs_0! (and X2 X1)) - (= top.impl.usr.stop! (or top.res.abs_8! top.res.abs_9!)) - (let - ((X3 Bool top.res.abs_1!)) - (and - (= - top.usr.OK! - (ite - (or (not top.res.abs_10!) (not top.res.abs_11!)) - (and - (and - (or - (or - (and (not X2) (not X1)) - (and (not X1) (not top.impl.usr.stop!))) - (and (not X2) (not top.impl.usr.stop!))) - (not (and (and X2 X1) top.impl.usr.stop!))) - (ite X3 top.usr.MaySafelyMove! true)) - true)) - (= top.res.abs_2! (not top.usr.TryToMove2!)) - (= top.res.abs_5! (not top.usr.TryToMove1!)) - (__node_trans_redge_0 - top.res.abs_3! - top.res.abs_4! - top.res.inst_18! - top.res.inst_17! - top.res.abs_3 - top.res.abs_4 - top.res.inst_18 - top.res.inst_17) - (__node_trans_redge_0 - top.res.abs_6! - top.res.abs_7! - top.res.inst_16! - top.res.inst_15! - top.res.abs_6 - top.res.abs_7 - top.res.inst_16 - top.res.inst_15) - (__node_trans_fedge_0 - top.impl.usr.MayMove1! - top.res.abs_8! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.impl.usr.MayMove1 - top.res.abs_8 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10) - (__node_trans_fedge_0 - top.impl.usr.MayMove2! - top.res.abs_9! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.impl.usr.MayMove2 - top.res.abs_9 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5) - (__node_trans_sustain_0 - top.res.abs_0! - top.impl.usr.stop! - top.res.abs_1! - top.res.inst_4! - top.res.abs_0 - top.impl.usr.stop - top.res.abs_1 - top.res.inst_4) - (__node_trans_redge_0 - top.usr.TryToMove1! - top.res.abs_10! - top.res.inst_3! - top.res.inst_2! - top.usr.TryToMove1 - top.res.abs_10 - top.res.inst_3 - top.res.inst_2) - (__node_trans_redge_0 - top.usr.TryToMove2! - top.res.abs_11! - top.res.inst_1! - top.res.inst_0! - top.usr.TryToMove2 - top.res.abs_11 - top.res.inst_1 - top.res.inst_0) - (not top.res.init_flag!))))))) -) - -(define-fun - prop ( - (top.usr.MaySafelyMove Bool) - (top.usr.TryToMove1 Bool) - (top.usr.TryToMove2 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.MayMove1 Bool) - (top.impl.usr.MayMove2 Bool) - (top.impl.usr.stop Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_sustain_0 ((sustain.usr.on_a_0 Bool) (sustain.usr.off_a_0 Bool) (sustain.usr.s_a_0 Bool) (sustain.res.init_flag_a_0 Bool)) Bool + (and (= sustain.usr.s_a_0 sustain.usr.on_a_0) sustain.res.init_flag_a_0)) +(define-fun __node_trans_sustain_0 ((sustain.usr.on_a_1 Bool) (sustain.usr.off_a_1 Bool) (sustain.usr.s_a_1 Bool) (sustain.res.init_flag_a_1 Bool) (sustain.usr.on_a_0 Bool) (sustain.usr.off_a_0 Bool) (sustain.usr.s_a_0 Bool) (sustain.res.init_flag_a_0 Bool)) Bool + (and (= sustain.usr.s_a_1 (ite sustain.usr.on_a_1 true (ite sustain.usr.off_a_1 false sustain.usr.s_a_0))) (not sustain.res.init_flag_a_1))) +(define-fun __node_init_redge_0 ((redge.usr.signal_a_0 Bool) (redge.usr.r_a_0 Bool) (redge.res.init_flag_a_0 Bool) (redge.res.abs_0_a_0 Bool)) Bool + (and (= redge.usr.r_a_0 redge.usr.signal_a_0) (= redge.res.abs_0_a_0 (not redge.usr.signal_a_0)) redge.res.init_flag_a_0)) +(define-fun __node_trans_redge_0 ((redge.usr.signal_a_1 Bool) (redge.usr.r_a_1 Bool) (redge.res.init_flag_a_1 Bool) (redge.res.abs_0_a_1 Bool) (redge.usr.signal_a_0 Bool) (redge.usr.r_a_0 Bool) (redge.res.init_flag_a_0 Bool) (redge.res.abs_0_a_0 Bool)) Bool + (and (= redge.usr.r_a_1 (and redge.usr.signal_a_1 redge.res.abs_0_a_0)) (= redge.res.abs_0_a_1 (not redge.usr.signal_a_1)) (not redge.res.init_flag_a_1))) +(define-fun __node_init_fedge_0 ((fedge.usr.signal_a_0 Bool) (fedge.usr.f_a_0 Bool) (fedge.res.init_flag_a_0 Bool) (fedge.res.abs_0_a_0 Bool) (fedge.res.abs_1_a_0 Bool) (fedge.res.inst_1_a_0 Bool) (fedge.res.inst_0_a_0 Bool)) Bool + (and (= fedge.res.abs_0_a_0 (not fedge.usr.signal_a_0)) (= fedge.usr.f_a_0 fedge.res.abs_1_a_0) (__node_init_redge_0 fedge.res.abs_0_a_0 fedge.res.abs_1_a_0 fedge.res.inst_1_a_0 fedge.res.inst_0_a_0) fedge.res.init_flag_a_0)) +(define-fun __node_trans_fedge_0 ((fedge.usr.signal_a_1 Bool) (fedge.usr.f_a_1 Bool) (fedge.res.init_flag_a_1 Bool) (fedge.res.abs_0_a_1 Bool) (fedge.res.abs_1_a_1 Bool) (fedge.res.inst_1_a_1 Bool) (fedge.res.inst_0_a_1 Bool) (fedge.usr.signal_a_0 Bool) (fedge.usr.f_a_0 Bool) (fedge.res.init_flag_a_0 Bool) (fedge.res.abs_0_a_0 Bool) (fedge.res.abs_1_a_0 Bool) (fedge.res.inst_1_a_0 Bool) (fedge.res.inst_0_a_0 Bool)) Bool + (and (= fedge.res.abs_0_a_1 (not fedge.usr.signal_a_1)) (= fedge.usr.f_a_1 fedge.res.abs_1_a_1) (__node_trans_redge_0 fedge.res.abs_0_a_1 fedge.res.abs_1_a_1 fedge.res.inst_1_a_1 fedge.res.inst_0_a_1 fedge.res.abs_0_a_0 fedge.res.abs_1_a_0 fedge.res.inst_1_a_0 fedge.res.inst_0_a_0) (not fedge.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.MaySafelyMove_a_0 Bool) (top.usr.TryToMove1_a_0 Bool) (top.usr.TryToMove2_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.MayMove1_a_0 Bool) (top.impl.usr.MayMove2_a_0 Bool) (top.impl.usr.stop_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.MayMove1_a_0 (and top.usr.TryToMove1_a_0 top.usr.MaySafelyMove_a_0)) (= top.res.abs_3_a_0 top.impl.usr.MayMove1_a_0) (let ((X1 top.res.abs_4_a_0)) (and (= top.res.abs_2_a_0 (not top.usr.TryToMove2_a_0)) (= top.impl.usr.MayMove2_a_0 (and top.usr.TryToMove2_a_0 top.usr.MaySafelyMove_a_0)) (= top.res.abs_6_a_0 top.impl.usr.MayMove2_a_0) (let ((X2 top.res.abs_7_a_0)) (and (= top.res.abs_5_a_0 (not top.usr.TryToMove1_a_0)) (= top.impl.usr.stop_a_0 (or top.res.abs_8_a_0 top.res.abs_9_a_0)) (= top.res.abs_0_a_0 (and X1 X2)) (let ((X3 top.res.abs_1_a_0)) (and (__node_init_redge_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0) (__node_init_redge_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0) (__node_init_fedge_0 top.impl.usr.MayMove1_a_0 top.res.abs_8_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0) (__node_init_fedge_0 top.impl.usr.MayMove2_a_0 top.res.abs_9_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0) (__node_init_sustain_0 top.res.abs_0_a_0 top.impl.usr.stop_a_0 top.res.abs_1_a_0 top.res.inst_4_a_0) (__node_init_redge_0 top.usr.TryToMove1_a_0 top.res.abs_10_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_redge_0 top.usr.TryToMove2_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.MaySafelyMove_a_1 Bool) (top.usr.TryToMove1_a_1 Bool) (top.usr.TryToMove2_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.MayMove1_a_1 Bool) (top.impl.usr.MayMove2_a_1 Bool) (top.impl.usr.stop_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_18_a_1 Bool) (top.res.inst_17_a_1 Bool) (top.res.inst_16_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Bool) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Bool) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Bool) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.MaySafelyMove_a_0 Bool) (top.usr.TryToMove1_a_0 Bool) (top.usr.TryToMove2_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.MayMove1_a_0 Bool) (top.impl.usr.MayMove2_a_0 Bool) (top.impl.usr.stop_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.MayMove2_a_1 (and top.usr.TryToMove2_a_1 top.usr.MaySafelyMove_a_1)) (= top.impl.usr.MayMove1_a_1 (and top.usr.TryToMove1_a_1 top.usr.MaySafelyMove_a_1)) (= top.res.abs_6_a_1 (and top.impl.usr.MayMove2_a_1 top.res.abs_5_a_0)) (= top.res.abs_3_a_1 (and top.impl.usr.MayMove1_a_1 top.res.abs_2_a_0)) (let ((X1 top.res.abs_7_a_1)) (let ((X2 top.res.abs_4_a_1)) (and (= top.res.abs_0_a_1 (and X2 X1)) (= top.impl.usr.stop_a_1 (or top.res.abs_8_a_1 top.res.abs_9_a_1)) (let ((X3 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (ite (or (not top.res.abs_10_a_1) (not top.res.abs_11_a_1)) (and (and (or (or (and (not X2) (not X1)) (and (not X1) (not top.impl.usr.stop_a_1))) (and (not X2) (not top.impl.usr.stop_a_1))) (not (and (and X2 X1) top.impl.usr.stop_a_1))) (ite X3 top.usr.MaySafelyMove_a_1 true)) true)) (= top.res.abs_2_a_1 (not top.usr.TryToMove2_a_1)) (= top.res.abs_5_a_1 (not top.usr.TryToMove1_a_1)) (__node_trans_redge_0 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.inst_18_a_1 top.res.inst_17_a_1 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0) (__node_trans_redge_0 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.inst_16_a_1 top.res.inst_15_a_1 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0) (__node_trans_fedge_0 top.impl.usr.MayMove1_a_1 top.res.abs_8_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.impl.usr.MayMove1_a_0 top.res.abs_8_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0) (__node_trans_fedge_0 top.impl.usr.MayMove2_a_1 top.res.abs_9_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.impl.usr.MayMove2_a_0 top.res.abs_9_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0) (__node_trans_sustain_0 top.res.abs_0_a_1 top.impl.usr.stop_a_1 top.res.abs_1_a_1 top.res.inst_4_a_1 top.res.abs_0_a_0 top.impl.usr.stop_a_0 top.res.abs_1_a_0 top.res.inst_4_a_0) (__node_trans_redge_0 top.usr.TryToMove1_a_1 top.res.abs_10_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.TryToMove1_a_0 top.res.abs_10_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_redge_0 top.usr.TryToMove2_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.inst_0_a_1 top.usr.TryToMove2_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.MaySafelyMove Bool) (top.usr.TryToMove1 Bool) (top.usr.TryToMove2 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.MayMove1 Bool) (top.impl.usr.MayMove2 Bool) (top.impl.usr.stop Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.MaySafelyMove Bool) (top.usr.TryToMove1 Bool) (top.usr.TryToMove2 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.MayMove1 Bool) (top.impl.usr.MayMove2 Bool) (top.impl.usr.stop Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.MayMove1 (and top.usr.TryToMove1 top.usr.MaySafelyMove)) (= top.res.abs_3 top.impl.usr.MayMove1) (let ((X1 top.res.abs_4)) (and (= top.res.abs_2 (not top.usr.TryToMove2)) (= top.impl.usr.MayMove2 (and top.usr.TryToMove2 top.usr.MaySafelyMove)) (= top.res.abs_6 top.impl.usr.MayMove2) (let ((X2 top.res.abs_7)) (and (= top.res.abs_5 (not top.usr.TryToMove1)) (= top.impl.usr.stop (or top.res.abs_8 top.res.abs_9)) (= top.res.abs_0 (and X1 X2)) (let ((X3 top.res.abs_1)) (and (__node_init_redge_0 top.res.abs_3 top.res.abs_4 top.res.inst_18 top.res.inst_17) (__node_init_redge_0 top.res.abs_6 top.res.abs_7 top.res.inst_16 top.res.inst_15) (__node_init_fedge_0 top.impl.usr.MayMove1 top.res.abs_8 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10) (__node_init_fedge_0 top.impl.usr.MayMove2 top.res.abs_9 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5) (__node_init_sustain_0 top.res.abs_0 top.impl.usr.stop top.res.abs_1 top.res.inst_4) (__node_init_redge_0 top.usr.TryToMove1 top.res.abs_10 top.res.inst_3 top.res.inst_2) (__node_init_redge_0 top.usr.TryToMove2 top.res.abs_11 top.res.inst_1 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.MaySafelyMove Bool) (top.usr.TryToMove1 Bool) (top.usr.TryToMove2 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.MayMove1 Bool) (top.impl.usr.MayMove2 Bool) (top.impl.usr.stop Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.MaySafelyMove! Bool) (top.usr.TryToMove1! Bool) (top.usr.TryToMove2! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.MayMove1! Bool) (top.impl.usr.MayMove2! Bool) (top.impl.usr.stop! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_18! Bool) (top.res.inst_17! Bool) (top.res.inst_16! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Bool) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Bool) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Bool) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.MayMove2! (and top.usr.TryToMove2! top.usr.MaySafelyMove!)) (= top.impl.usr.MayMove1! (and top.usr.TryToMove1! top.usr.MaySafelyMove!)) (= top.res.abs_6! (and top.impl.usr.MayMove2! top.res.abs_5)) (= top.res.abs_3! (and top.impl.usr.MayMove1! top.res.abs_2)) (let ((X1 top.res.abs_7!)) (let ((X2 top.res.abs_4!)) (and (= top.res.abs_0! (and X2 X1)) (= top.impl.usr.stop! (or top.res.abs_8! top.res.abs_9!)) (let ((X3 top.res.abs_1!)) (and (= top.usr.OK! (ite (or (not top.res.abs_10!) (not top.res.abs_11!)) (and (and (or (or (and (not X2) (not X1)) (and (not X1) (not top.impl.usr.stop!))) (and (not X2) (not top.impl.usr.stop!))) (not (and (and X2 X1) top.impl.usr.stop!))) (ite X3 top.usr.MaySafelyMove! true)) true)) (= top.res.abs_2! (not top.usr.TryToMove2!)) (= top.res.abs_5! (not top.usr.TryToMove1!)) (__node_trans_redge_0 top.res.abs_3! top.res.abs_4! top.res.inst_18! top.res.inst_17! top.res.abs_3 top.res.abs_4 top.res.inst_18 top.res.inst_17) (__node_trans_redge_0 top.res.abs_6! top.res.abs_7! top.res.inst_16! top.res.inst_15! top.res.abs_6 top.res.abs_7 top.res.inst_16 top.res.inst_15) (__node_trans_fedge_0 top.impl.usr.MayMove1! top.res.abs_8! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.impl.usr.MayMove1 top.res.abs_8 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10) (__node_trans_fedge_0 top.impl.usr.MayMove2! top.res.abs_9! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.impl.usr.MayMove2 top.res.abs_9 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5) (__node_trans_sustain_0 top.res.abs_0! top.impl.usr.stop! top.res.abs_1! top.res.inst_4! top.res.abs_0 top.impl.usr.stop top.res.abs_1 top.res.inst_4) (__node_trans_redge_0 top.usr.TryToMove1! top.res.abs_10! top.res.inst_3! top.res.inst_2! top.usr.TryToMove1 top.res.abs_10 top.res.inst_3 top.res.inst_2) (__node_trans_redge_0 top.usr.TryToMove2! top.res.abs_11! top.res.inst_1! top.res.inst_0! top.usr.TryToMove2 top.res.abs_11 top.res.inst_1 top.res.inst_0) (not top.res.init_flag!)))))))) +(define-fun prop ((top.usr.MaySafelyMove Bool) (top.usr.TryToMove1 Bool) (top.usr.TryToMove2 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.MayMove1 Bool) (top.impl.usr.MayMove2 Bool) (top.impl.usr.stop Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/production_cell_e8_792.sl b/benchmarks/LIA/Lustre/production_cell_e8_792.sl index 3bd99ab..55765ff 100644 --- a/benchmarks/LIA/Lustre/production_cell_e8_792.sl +++ b/benchmarks/LIA/Lustre/production_cell_e8_792.sl @@ -1,864 +1,31 @@ (set-logic LIA) -(define-fun - __node_init_sustain_0 ( - (sustain.usr.on_a_0 Bool) - (sustain.usr.off_a_0 Bool) - (sustain.usr.s_a_0 Bool) - (sustain.res.init_flag_a_0 Bool) - ) Bool - - (and (= sustain.usr.s_a_0 sustain.usr.on_a_0) sustain.res.init_flag_a_0) -) - -(define-fun - __node_trans_sustain_0 ( - (sustain.usr.on_a_1 Bool) - (sustain.usr.off_a_1 Bool) - (sustain.usr.s_a_1 Bool) - (sustain.res.init_flag_a_1 Bool) - (sustain.usr.on_a_0 Bool) - (sustain.usr.off_a_0 Bool) - (sustain.usr.s_a_0 Bool) - (sustain.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - sustain.usr.s_a_1 - (ite sustain.usr.on_a_1 true (ite sustain.usr.off_a_1 false sustain.usr.s_a_0))) - (not sustain.res.init_flag_a_1)) -) - -(define-fun - __node_init_redge_0 ( - (redge.usr.signal_a_0 Bool) - (redge.usr.r_a_0 Bool) - (redge.res.init_flag_a_0 Bool) - (redge.res.abs_0_a_0 Bool) - ) Bool - - (and - (= redge.usr.r_a_0 redge.usr.signal_a_0) - (= redge.res.abs_0_a_0 (not redge.usr.signal_a_0)) - redge.res.init_flag_a_0) -) - -(define-fun - __node_trans_redge_0 ( - (redge.usr.signal_a_1 Bool) - (redge.usr.r_a_1 Bool) - (redge.res.init_flag_a_1 Bool) - (redge.res.abs_0_a_1 Bool) - (redge.usr.signal_a_0 Bool) - (redge.usr.r_a_0 Bool) - (redge.res.init_flag_a_0 Bool) - (redge.res.abs_0_a_0 Bool) - ) Bool - - (and - (= redge.usr.r_a_1 (and redge.usr.signal_a_1 redge.res.abs_0_a_0)) - (= redge.res.abs_0_a_1 (not redge.usr.signal_a_1)) - (not redge.res.init_flag_a_1)) -) - -(define-fun - __node_init_fedge_0 ( - (fedge.usr.signal_a_0 Bool) - (fedge.usr.f_a_0 Bool) - (fedge.res.init_flag_a_0 Bool) - (fedge.res.abs_0_a_0 Bool) - (fedge.res.abs_1_a_0 Bool) - (fedge.res.inst_1_a_0 Bool) - (fedge.res.inst_0_a_0 Bool) - ) Bool - - (and - (= fedge.res.abs_0_a_0 (not fedge.usr.signal_a_0)) - (= fedge.usr.f_a_0 fedge.res.abs_1_a_0) - (__node_init_redge_0 - fedge.res.abs_0_a_0 - fedge.res.abs_1_a_0 - fedge.res.inst_1_a_0 - fedge.res.inst_0_a_0) - fedge.res.init_flag_a_0) -) - -(define-fun - __node_trans_fedge_0 ( - (fedge.usr.signal_a_1 Bool) - (fedge.usr.f_a_1 Bool) - (fedge.res.init_flag_a_1 Bool) - (fedge.res.abs_0_a_1 Bool) - (fedge.res.abs_1_a_1 Bool) - (fedge.res.inst_1_a_1 Bool) - (fedge.res.inst_0_a_1 Bool) - (fedge.usr.signal_a_0 Bool) - (fedge.usr.f_a_0 Bool) - (fedge.res.init_flag_a_0 Bool) - (fedge.res.abs_0_a_0 Bool) - (fedge.res.abs_1_a_0 Bool) - (fedge.res.inst_1_a_0 Bool) - (fedge.res.inst_0_a_0 Bool) - ) Bool - - (and - (= fedge.res.abs_0_a_1 (not fedge.usr.signal_a_1)) - (= fedge.usr.f_a_1 fedge.res.abs_1_a_1) - (__node_trans_redge_0 - fedge.res.abs_0_a_1 - fedge.res.abs_1_a_1 - fedge.res.inst_1_a_1 - fedge.res.inst_0_a_1 - fedge.res.abs_0_a_0 - fedge.res.abs_1_a_0 - fedge.res.inst_1_a_0 - fedge.res.inst_0_a_0) - (not fedge.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.MaySafelyMove_a_0 Bool) - (top.usr.TryToMove1_a_0 Bool) - (top.usr.TryToMove2_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.MayMove1_a_0 Bool) - (top.impl.usr.MayMove2_a_0 Bool) - (top.impl.usr.stop_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (= - top.impl.usr.MayMove1_a_0 - (and top.usr.TryToMove1_a_0 top.usr.MaySafelyMove_a_0)) - (= top.res.abs_3_a_0 top.impl.usr.MayMove1_a_0) - (let - ((X1 Bool top.res.abs_4_a_0)) - (and - (= top.res.abs_2_a_0 (not top.usr.TryToMove2_a_0)) - (= - top.impl.usr.MayMove2_a_0 - (and top.usr.TryToMove2_a_0 top.usr.MaySafelyMove_a_0)) - (= top.res.abs_6_a_0 top.impl.usr.MayMove2_a_0) - (let - ((X2 Bool top.res.abs_7_a_0)) - (and - (= top.res.abs_5_a_0 (not top.usr.TryToMove1_a_0)) - (= top.impl.usr.stop_a_0 (or top.res.abs_8_a_0 top.res.abs_9_a_0)) - (= top.res.abs_0_a_0 (and X1 X2)) - (let - ((X3 Bool top.res.abs_1_a_0)) - (and - (__node_init_redge_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0) - (__node_init_redge_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_16_a_0 - top.res.inst_15_a_0) - (__node_init_fedge_0 - top.impl.usr.MayMove1_a_0 - top.res.abs_8_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0) - (__node_init_fedge_0 - top.impl.usr.MayMove2_a_0 - top.res.abs_9_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0) - (__node_init_sustain_0 - top.res.abs_0_a_0 - top.impl.usr.stop_a_0 - top.res.abs_1_a_0 - top.res.inst_4_a_0) - (__node_init_redge_0 - top.usr.TryToMove1_a_0 - top.res.abs_10_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_redge_0 - top.usr.TryToMove2_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.MaySafelyMove_a_1 Bool) - (top.usr.TryToMove1_a_1 Bool) - (top.usr.TryToMove2_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.MayMove1_a_1 Bool) - (top.impl.usr.MayMove2_a_1 Bool) - (top.impl.usr.stop_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_18_a_1 Bool) - (top.res.inst_17_a_1 Bool) - (top.res.inst_16_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Bool) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Bool) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Bool) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.MaySafelyMove_a_0 Bool) - (top.usr.TryToMove1_a_0 Bool) - (top.usr.TryToMove2_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.MayMove1_a_0 Bool) - (top.impl.usr.MayMove2_a_0 Bool) - (top.impl.usr.stop_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.impl.usr.MayMove2_a_1 - (and top.usr.TryToMove2_a_1 top.usr.MaySafelyMove_a_1)) - (= - top.impl.usr.MayMove1_a_1 - (and top.usr.TryToMove1_a_1 top.usr.MaySafelyMove_a_1)) - (= top.res.abs_6_a_1 (and top.impl.usr.MayMove2_a_1 top.res.abs_5_a_0)) - (= top.res.abs_3_a_1 (and top.impl.usr.MayMove1_a_1 top.res.abs_2_a_0)) - (let - ((X1 Bool top.res.abs_7_a_1)) - (let - ((X2 Bool top.res.abs_4_a_1)) - (and - (= top.res.abs_0_a_1 (and X2 X1)) - (= top.impl.usr.stop_a_1 (or top.res.abs_8_a_1 top.res.abs_9_a_1)) - (let - ((X3 Bool top.res.abs_1_a_1)) - (and - (= - top.usr.OK_a_1 - (ite - (or (not top.res.abs_10_a_1) (not top.res.abs_11_a_1)) - (and - (and - (or - (or - (and (not X2) (not X1)) - (and (not X1) (not top.impl.usr.stop_a_1))) - (and (not X2) (not top.impl.usr.stop_a_1))) - (not (and (and X2 X1) top.impl.usr.stop_a_1))) - (ite X3 top.usr.MaySafelyMove_a_1 true)) - true)) - (= top.res.abs_2_a_1 (not top.usr.TryToMove2_a_1)) - (= top.res.abs_5_a_1 (not top.usr.TryToMove1_a_1)) - (__node_trans_redge_0 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.inst_18_a_1 - top.res.inst_17_a_1 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0) - (__node_trans_redge_0 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.inst_16_a_1 - top.res.inst_15_a_1 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_16_a_0 - top.res.inst_15_a_0) - (__node_trans_fedge_0 - top.impl.usr.MayMove1_a_1 - top.res.abs_8_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.impl.usr.MayMove1_a_0 - top.res.abs_8_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0) - (__node_trans_fedge_0 - top.impl.usr.MayMove2_a_1 - top.res.abs_9_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.impl.usr.MayMove2_a_0 - top.res.abs_9_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0) - (__node_trans_sustain_0 - top.res.abs_0_a_1 - top.impl.usr.stop_a_1 - top.res.abs_1_a_1 - top.res.inst_4_a_1 - top.res.abs_0_a_0 - top.impl.usr.stop_a_0 - top.res.abs_1_a_0 - top.res.inst_4_a_0) - (__node_trans_redge_0 - top.usr.TryToMove1_a_1 - top.res.abs_10_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.TryToMove1_a_0 - top.res.abs_10_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_redge_0 - top.usr.TryToMove2_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.inst_0_a_1 - top.usr.TryToMove2_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.MaySafelyMove Bool) - (top.usr.TryToMove1 Bool) - (top.usr.TryToMove2 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.MayMove1 Bool) - (top.impl.usr.MayMove2 Bool) - (top.impl.usr.stop Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.MaySafelyMove Bool) -(declare-primed-var top.usr.TryToMove1 Bool) -(declare-primed-var top.usr.TryToMove2 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.MayMove1 Bool) -(declare-primed-var top.impl.usr.MayMove2 Bool) -(declare-primed-var top.impl.usr.stop Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_18 Bool) -(declare-primed-var top.res.inst_17 Bool) -(declare-primed-var top.res.inst_16 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Bool) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Bool) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Bool) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.MaySafelyMove Bool) - (top.usr.TryToMove1 Bool) - (top.usr.TryToMove2 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.MayMove1 Bool) - (top.impl.usr.MayMove2 Bool) - (top.impl.usr.stop Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (= top.impl.usr.MayMove1 (and top.usr.TryToMove1 top.usr.MaySafelyMove)) - (= top.res.abs_3 top.impl.usr.MayMove1) - (let - ((X1 Bool top.res.abs_4)) - (and - (= top.res.abs_2 (not top.usr.TryToMove2)) - (= top.impl.usr.MayMove2 (and top.usr.TryToMove2 top.usr.MaySafelyMove)) - (= top.res.abs_6 top.impl.usr.MayMove2) - (let - ((X2 Bool top.res.abs_7)) - (and - (= top.res.abs_5 (not top.usr.TryToMove1)) - (= top.impl.usr.stop (or top.res.abs_8 top.res.abs_9)) - (= top.res.abs_0 (and X1 X2)) - (let - ((X3 Bool top.res.abs_1)) - (and - (__node_init_redge_0 - top.res.abs_3 - top.res.abs_4 - top.res.inst_18 - top.res.inst_17) - (__node_init_redge_0 - top.res.abs_6 - top.res.abs_7 - top.res.inst_16 - top.res.inst_15) - (__node_init_fedge_0 - top.impl.usr.MayMove1 - top.res.abs_8 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10) - (__node_init_fedge_0 - top.impl.usr.MayMove2 - top.res.abs_9 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5) - (__node_init_sustain_0 - top.res.abs_0 - top.impl.usr.stop - top.res.abs_1 - top.res.inst_4) - (__node_init_redge_0 - top.usr.TryToMove1 - top.res.abs_10 - top.res.inst_3 - top.res.inst_2) - (__node_init_redge_0 - top.usr.TryToMove2 - top.res.abs_11 - top.res.inst_1 - top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.MaySafelyMove Bool) - (top.usr.TryToMove1 Bool) - (top.usr.TryToMove2 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.MayMove1 Bool) - (top.impl.usr.MayMove2 Bool) - (top.impl.usr.stop Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.MaySafelyMove! Bool) - (top.usr.TryToMove1! Bool) - (top.usr.TryToMove2! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.MayMove1! Bool) - (top.impl.usr.MayMove2! Bool) - (top.impl.usr.stop! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_18! Bool) - (top.res.inst_17! Bool) - (top.res.inst_16! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Bool) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Bool) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Bool) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= - top.impl.usr.MayMove2! - (and top.usr.TryToMove2! top.usr.MaySafelyMove!)) - (= - top.impl.usr.MayMove1! - (and top.usr.TryToMove1! top.usr.MaySafelyMove!)) - (= top.res.abs_6! (and top.impl.usr.MayMove2! top.res.abs_5)) - (= top.res.abs_3! (and top.impl.usr.MayMove1! top.res.abs_2)) - (let - ((X1 Bool top.res.abs_7!)) - (let - ((X2 Bool top.res.abs_4!)) - (and - (= top.res.abs_0! (and X2 X1)) - (= top.impl.usr.stop! (or top.res.abs_8! top.res.abs_9!)) - (let - ((X3 Bool top.res.abs_1!)) - (and - (= - top.usr.OK! - (ite - (or (not top.res.abs_10!) (not top.res.abs_11!)) - (and - (and - (or - (or - (and (not X2) (not X1)) - (and (not X1) (not top.impl.usr.stop!))) - (and (not X2) (not top.impl.usr.stop!))) - (not (and (and X2 X1) top.impl.usr.stop!))) - (ite X3 top.usr.MaySafelyMove! true)) - true)) - (= top.res.abs_2! (not top.usr.TryToMove2!)) - (= top.res.abs_5! (not top.usr.TryToMove1!)) - (__node_trans_redge_0 - top.res.abs_3! - top.res.abs_4! - top.res.inst_18! - top.res.inst_17! - top.res.abs_3 - top.res.abs_4 - top.res.inst_18 - top.res.inst_17) - (__node_trans_redge_0 - top.res.abs_6! - top.res.abs_7! - top.res.inst_16! - top.res.inst_15! - top.res.abs_6 - top.res.abs_7 - top.res.inst_16 - top.res.inst_15) - (__node_trans_fedge_0 - top.impl.usr.MayMove1! - top.res.abs_8! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.impl.usr.MayMove1 - top.res.abs_8 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10) - (__node_trans_fedge_0 - top.impl.usr.MayMove2! - top.res.abs_9! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.impl.usr.MayMove2 - top.res.abs_9 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5) - (__node_trans_sustain_0 - top.res.abs_0! - top.impl.usr.stop! - top.res.abs_1! - top.res.inst_4! - top.res.abs_0 - top.impl.usr.stop - top.res.abs_1 - top.res.inst_4) - (__node_trans_redge_0 - top.usr.TryToMove1! - top.res.abs_10! - top.res.inst_3! - top.res.inst_2! - top.usr.TryToMove1 - top.res.abs_10 - top.res.inst_3 - top.res.inst_2) - (__node_trans_redge_0 - top.usr.TryToMove2! - top.res.abs_11! - top.res.inst_1! - top.res.inst_0! - top.usr.TryToMove2 - top.res.abs_11 - top.res.inst_1 - top.res.inst_0) - (not top.res.init_flag!))))))) -) - -(define-fun - prop ( - (top.usr.MaySafelyMove Bool) - (top.usr.TryToMove1 Bool) - (top.usr.TryToMove2 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.MayMove1 Bool) - (top.impl.usr.MayMove2 Bool) - (top.impl.usr.stop Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_sustain_0 ((sustain.usr.on_a_0 Bool) (sustain.usr.off_a_0 Bool) (sustain.usr.s_a_0 Bool) (sustain.res.init_flag_a_0 Bool)) Bool + (and (= sustain.usr.s_a_0 sustain.usr.on_a_0) sustain.res.init_flag_a_0)) +(define-fun __node_trans_sustain_0 ((sustain.usr.on_a_1 Bool) (sustain.usr.off_a_1 Bool) (sustain.usr.s_a_1 Bool) (sustain.res.init_flag_a_1 Bool) (sustain.usr.on_a_0 Bool) (sustain.usr.off_a_0 Bool) (sustain.usr.s_a_0 Bool) (sustain.res.init_flag_a_0 Bool)) Bool + (and (= sustain.usr.s_a_1 (ite sustain.usr.on_a_1 true (ite sustain.usr.off_a_1 false sustain.usr.s_a_0))) (not sustain.res.init_flag_a_1))) +(define-fun __node_init_redge_0 ((redge.usr.signal_a_0 Bool) (redge.usr.r_a_0 Bool) (redge.res.init_flag_a_0 Bool) (redge.res.abs_0_a_0 Bool)) Bool + (and (= redge.usr.r_a_0 redge.usr.signal_a_0) (= redge.res.abs_0_a_0 (not redge.usr.signal_a_0)) redge.res.init_flag_a_0)) +(define-fun __node_trans_redge_0 ((redge.usr.signal_a_1 Bool) (redge.usr.r_a_1 Bool) (redge.res.init_flag_a_1 Bool) (redge.res.abs_0_a_1 Bool) (redge.usr.signal_a_0 Bool) (redge.usr.r_a_0 Bool) (redge.res.init_flag_a_0 Bool) (redge.res.abs_0_a_0 Bool)) Bool + (and (= redge.usr.r_a_1 (and redge.usr.signal_a_1 redge.res.abs_0_a_0)) (= redge.res.abs_0_a_1 (not redge.usr.signal_a_1)) (not redge.res.init_flag_a_1))) +(define-fun __node_init_fedge_0 ((fedge.usr.signal_a_0 Bool) (fedge.usr.f_a_0 Bool) (fedge.res.init_flag_a_0 Bool) (fedge.res.abs_0_a_0 Bool) (fedge.res.abs_1_a_0 Bool) (fedge.res.inst_1_a_0 Bool) (fedge.res.inst_0_a_0 Bool)) Bool + (and (= fedge.res.abs_0_a_0 (not fedge.usr.signal_a_0)) (= fedge.usr.f_a_0 fedge.res.abs_1_a_0) (__node_init_redge_0 fedge.res.abs_0_a_0 fedge.res.abs_1_a_0 fedge.res.inst_1_a_0 fedge.res.inst_0_a_0) fedge.res.init_flag_a_0)) +(define-fun __node_trans_fedge_0 ((fedge.usr.signal_a_1 Bool) (fedge.usr.f_a_1 Bool) (fedge.res.init_flag_a_1 Bool) (fedge.res.abs_0_a_1 Bool) (fedge.res.abs_1_a_1 Bool) (fedge.res.inst_1_a_1 Bool) (fedge.res.inst_0_a_1 Bool) (fedge.usr.signal_a_0 Bool) (fedge.usr.f_a_0 Bool) (fedge.res.init_flag_a_0 Bool) (fedge.res.abs_0_a_0 Bool) (fedge.res.abs_1_a_0 Bool) (fedge.res.inst_1_a_0 Bool) (fedge.res.inst_0_a_0 Bool)) Bool + (and (= fedge.res.abs_0_a_1 (not fedge.usr.signal_a_1)) (= fedge.usr.f_a_1 fedge.res.abs_1_a_1) (__node_trans_redge_0 fedge.res.abs_0_a_1 fedge.res.abs_1_a_1 fedge.res.inst_1_a_1 fedge.res.inst_0_a_1 fedge.res.abs_0_a_0 fedge.res.abs_1_a_0 fedge.res.inst_1_a_0 fedge.res.inst_0_a_0) (not fedge.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.MaySafelyMove_a_0 Bool) (top.usr.TryToMove1_a_0 Bool) (top.usr.TryToMove2_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.MayMove1_a_0 Bool) (top.impl.usr.MayMove2_a_0 Bool) (top.impl.usr.stop_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (= top.impl.usr.MayMove1_a_0 (and top.usr.TryToMove1_a_0 top.usr.MaySafelyMove_a_0)) (= top.res.abs_3_a_0 top.impl.usr.MayMove1_a_0) (let ((X1 top.res.abs_4_a_0)) (and (= top.res.abs_2_a_0 (not top.usr.TryToMove2_a_0)) (= top.impl.usr.MayMove2_a_0 (and top.usr.TryToMove2_a_0 top.usr.MaySafelyMove_a_0)) (= top.res.abs_6_a_0 top.impl.usr.MayMove2_a_0) (let ((X2 top.res.abs_7_a_0)) (and (= top.res.abs_5_a_0 (not top.usr.TryToMove1_a_0)) (= top.impl.usr.stop_a_0 (or top.res.abs_8_a_0 top.res.abs_9_a_0)) (= top.res.abs_0_a_0 (and X1 X2)) (let ((X3 top.res.abs_1_a_0)) (and (__node_init_redge_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0) (__node_init_redge_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0) (__node_init_fedge_0 top.impl.usr.MayMove1_a_0 top.res.abs_8_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0) (__node_init_fedge_0 top.impl.usr.MayMove2_a_0 top.res.abs_9_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0) (__node_init_sustain_0 top.res.abs_0_a_0 top.impl.usr.stop_a_0 top.res.abs_1_a_0 top.res.inst_4_a_0) (__node_init_redge_0 top.usr.TryToMove1_a_0 top.res.abs_10_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_redge_0 top.usr.TryToMove2_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.MaySafelyMove_a_1 Bool) (top.usr.TryToMove1_a_1 Bool) (top.usr.TryToMove2_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.MayMove1_a_1 Bool) (top.impl.usr.MayMove2_a_1 Bool) (top.impl.usr.stop_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_18_a_1 Bool) (top.res.inst_17_a_1 Bool) (top.res.inst_16_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Bool) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Bool) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Bool) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.MaySafelyMove_a_0 Bool) (top.usr.TryToMove1_a_0 Bool) (top.usr.TryToMove2_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.MayMove1_a_0 Bool) (top.impl.usr.MayMove2_a_0 Bool) (top.impl.usr.stop_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.MayMove2_a_1 (and top.usr.TryToMove2_a_1 top.usr.MaySafelyMove_a_1)) (= top.impl.usr.MayMove1_a_1 (and top.usr.TryToMove1_a_1 top.usr.MaySafelyMove_a_1)) (= top.res.abs_6_a_1 (and top.impl.usr.MayMove2_a_1 top.res.abs_5_a_0)) (= top.res.abs_3_a_1 (and top.impl.usr.MayMove1_a_1 top.res.abs_2_a_0)) (let ((X1 top.res.abs_7_a_1)) (let ((X2 top.res.abs_4_a_1)) (and (= top.res.abs_0_a_1 (and X2 X1)) (= top.impl.usr.stop_a_1 (or top.res.abs_8_a_1 top.res.abs_9_a_1)) (let ((X3 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (ite (or (not top.res.abs_10_a_1) (not top.res.abs_11_a_1)) (and (and (or (or (and (not X2) (not X1)) (and (not X1) (not top.impl.usr.stop_a_1))) (and (not X2) (not top.impl.usr.stop_a_1))) (not (and (and X2 X1) top.impl.usr.stop_a_1))) (ite X3 top.usr.MaySafelyMove_a_1 true)) true)) (= top.res.abs_2_a_1 (not top.usr.TryToMove2_a_1)) (= top.res.abs_5_a_1 (not top.usr.TryToMove1_a_1)) (__node_trans_redge_0 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.inst_18_a_1 top.res.inst_17_a_1 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0) (__node_trans_redge_0 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.inst_16_a_1 top.res.inst_15_a_1 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0) (__node_trans_fedge_0 top.impl.usr.MayMove1_a_1 top.res.abs_8_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.impl.usr.MayMove1_a_0 top.res.abs_8_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0) (__node_trans_fedge_0 top.impl.usr.MayMove2_a_1 top.res.abs_9_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.impl.usr.MayMove2_a_0 top.res.abs_9_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0) (__node_trans_sustain_0 top.res.abs_0_a_1 top.impl.usr.stop_a_1 top.res.abs_1_a_1 top.res.inst_4_a_1 top.res.abs_0_a_0 top.impl.usr.stop_a_0 top.res.abs_1_a_0 top.res.inst_4_a_0) (__node_trans_redge_0 top.usr.TryToMove1_a_1 top.res.abs_10_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.TryToMove1_a_0 top.res.abs_10_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_redge_0 top.usr.TryToMove2_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.inst_0_a_1 top.usr.TryToMove2_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.MaySafelyMove Bool) (top.usr.TryToMove1 Bool) (top.usr.TryToMove2 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.MayMove1 Bool) (top.impl.usr.MayMove2 Bool) (top.impl.usr.stop Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.MaySafelyMove Bool) (top.usr.TryToMove1 Bool) (top.usr.TryToMove2 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.MayMove1 Bool) (top.impl.usr.MayMove2 Bool) (top.impl.usr.stop Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (= top.impl.usr.MayMove1 (and top.usr.TryToMove1 top.usr.MaySafelyMove)) (= top.res.abs_3 top.impl.usr.MayMove1) (let ((X1 top.res.abs_4)) (and (= top.res.abs_2 (not top.usr.TryToMove2)) (= top.impl.usr.MayMove2 (and top.usr.TryToMove2 top.usr.MaySafelyMove)) (= top.res.abs_6 top.impl.usr.MayMove2) (let ((X2 top.res.abs_7)) (and (= top.res.abs_5 (not top.usr.TryToMove1)) (= top.impl.usr.stop (or top.res.abs_8 top.res.abs_9)) (= top.res.abs_0 (and X1 X2)) (let ((X3 top.res.abs_1)) (and (__node_init_redge_0 top.res.abs_3 top.res.abs_4 top.res.inst_18 top.res.inst_17) (__node_init_redge_0 top.res.abs_6 top.res.abs_7 top.res.inst_16 top.res.inst_15) (__node_init_fedge_0 top.impl.usr.MayMove1 top.res.abs_8 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10) (__node_init_fedge_0 top.impl.usr.MayMove2 top.res.abs_9 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5) (__node_init_sustain_0 top.res.abs_0 top.impl.usr.stop top.res.abs_1 top.res.inst_4) (__node_init_redge_0 top.usr.TryToMove1 top.res.abs_10 top.res.inst_3 top.res.inst_2) (__node_init_redge_0 top.usr.TryToMove2 top.res.abs_11 top.res.inst_1 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.MaySafelyMove Bool) (top.usr.TryToMove1 Bool) (top.usr.TryToMove2 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.MayMove1 Bool) (top.impl.usr.MayMove2 Bool) (top.impl.usr.stop Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.MaySafelyMove! Bool) (top.usr.TryToMove1! Bool) (top.usr.TryToMove2! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.MayMove1! Bool) (top.impl.usr.MayMove2! Bool) (top.impl.usr.stop! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_18! Bool) (top.res.inst_17! Bool) (top.res.inst_16! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Bool) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Bool) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Bool) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.MayMove2! (and top.usr.TryToMove2! top.usr.MaySafelyMove!)) (= top.impl.usr.MayMove1! (and top.usr.TryToMove1! top.usr.MaySafelyMove!)) (= top.res.abs_6! (and top.impl.usr.MayMove2! top.res.abs_5)) (= top.res.abs_3! (and top.impl.usr.MayMove1! top.res.abs_2)) (let ((X1 top.res.abs_7!)) (let ((X2 top.res.abs_4!)) (and (= top.res.abs_0! (and X2 X1)) (= top.impl.usr.stop! (or top.res.abs_8! top.res.abs_9!)) (let ((X3 top.res.abs_1!)) (and (= top.usr.OK! (ite (or (not top.res.abs_10!) (not top.res.abs_11!)) (and (and (or (or (and (not X2) (not X1)) (and (not X1) (not top.impl.usr.stop!))) (and (not X2) (not top.impl.usr.stop!))) (not (and (and X2 X1) top.impl.usr.stop!))) (ite X3 top.usr.MaySafelyMove! true)) true)) (= top.res.abs_2! (not top.usr.TryToMove2!)) (= top.res.abs_5! (not top.usr.TryToMove1!)) (__node_trans_redge_0 top.res.abs_3! top.res.abs_4! top.res.inst_18! top.res.inst_17! top.res.abs_3 top.res.abs_4 top.res.inst_18 top.res.inst_17) (__node_trans_redge_0 top.res.abs_6! top.res.abs_7! top.res.inst_16! top.res.inst_15! top.res.abs_6 top.res.abs_7 top.res.inst_16 top.res.inst_15) (__node_trans_fedge_0 top.impl.usr.MayMove1! top.res.abs_8! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.impl.usr.MayMove1 top.res.abs_8 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10) (__node_trans_fedge_0 top.impl.usr.MayMove2! top.res.abs_9! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.impl.usr.MayMove2 top.res.abs_9 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5) (__node_trans_sustain_0 top.res.abs_0! top.impl.usr.stop! top.res.abs_1! top.res.inst_4! top.res.abs_0 top.impl.usr.stop top.res.abs_1 top.res.inst_4) (__node_trans_redge_0 top.usr.TryToMove1! top.res.abs_10! top.res.inst_3! top.res.inst_2! top.usr.TryToMove1 top.res.abs_10 top.res.inst_3 top.res.inst_2) (__node_trans_redge_0 top.usr.TryToMove2! top.res.abs_11! top.res.inst_1! top.res.inst_0! top.usr.TryToMove2 top.res.abs_11 top.res.inst_1 top.res.inst_0) (not top.res.init_flag!)))))))) +(define-fun prop ((top.usr.MaySafelyMove Bool) (top.usr.TryToMove1 Bool) (top.usr.TryToMove2 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.MayMove1 Bool) (top.impl.usr.MayMove2 Bool) (top.impl.usr.stop Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/readwrit.sl b/benchmarks/LIA/Lustre/readwrit.sl index e21c77c..6e1d9c0 100644 --- a/benchmarks/LIA/Lustre/readwrit.sl +++ b/benchmarks/LIA/Lustre/readwrit.sl @@ -1,913 +1,39 @@ (set-logic LIA) -(define-fun - __node_init_readwrite_0 ( - (readwrite.usr.etat1_a_0 Bool) - (readwrite.usr.etat2_a_0 Bool) - (readwrite.usr.etat3_a_0 Bool) - (readwrite.usr.etat4_a_0 Bool) - (readwrite.usr.etat5_a_0 Bool) - (readwrite.usr.etat6_a_0 Bool) - (readwrite.usr.etat7_a_0 Bool) - (readwrite.usr.etat8_a_0 Bool) - (readwrite.usr.etat9_a_0 Bool) - (readwrite.res.nondet_15 Int) - (readwrite.res.nondet_14 Int) - (readwrite.res.nondet_13 Int) - (readwrite.res.nondet_12 Int) - (readwrite.res.nondet_11 Int) - (readwrite.res.nondet_10 Int) - (readwrite.res.nondet_9 Int) - (readwrite.res.nondet_8 Int) - (readwrite.res.nondet_7 Int) - (readwrite.res.nondet_6 Int) - (readwrite.res.nondet_5 Int) - (readwrite.res.nondet_4 Int) - (readwrite.res.nondet_3 Int) - (readwrite.res.nondet_2 Int) - (readwrite.res.nondet_1 Int) - (readwrite.res.nondet_0 Int) - (readwrite.usr.x0_a_0 Int) - (readwrite.usr.x1_a_0 Int) - (readwrite.usr.x2_a_0 Int) - (readwrite.usr.x3_a_0 Int) - (readwrite.usr.x4_a_0 Int) - (readwrite.usr.x5_a_0 Int) - (readwrite.usr.x6_a_0 Int) - (readwrite.usr.x7_a_0 Int) - (readwrite.usr.x8_a_0 Int) - (readwrite.usr.x9_a_0 Int) - (readwrite.usr.x10_a_0 Int) - (readwrite.usr.x11_a_0 Int) - (readwrite.usr.x12_a_0 Int) - (readwrite.res.init_flag_a_0 Bool) - ) Bool - - (and - (= readwrite.usr.x0_a_0 0) - (let - ((X1 Bool (let ((X1 Int readwrite.res.nondet_0)) (>= X1 1)))) - (let - ((X2 - Bool (let - ((X2 Int readwrite.res.nondet_2) - (X3 Int readwrite.res.nondet_1)) - (and (>= X3 1) (>= X2 1))))) - (and - (= readwrite.usr.x1_a_0 0) - (let - ((X3 - Bool (let - ((X3 Int readwrite.res.nondet_4) - (X4 Int readwrite.res.nondet_3)) - (and (>= X4 1) (>= X3 1))))) - (and - (= readwrite.usr.x2_a_0 1) - (let - ((X4 Bool (let ((X4 Int readwrite.res.nondet_5)) (>= X4 1)))) - (and - (= readwrite.usr.x11_a_0 1) - (let - ((X5 - Bool (let - ((X5 Int readwrite.res.nondet_15) - (X6 Int readwrite.res.nondet_14)) - (and (>= X6 1) (>= X5 1))))) - (and - (= readwrite.usr.x9_a_0 0) - (= readwrite.usr.x10_a_0 0) - (let - ((X6 - Bool (let - ((X6 Int readwrite.res.nondet_13) - (X7 Int readwrite.res.nondet_12) - (X8 Int readwrite.res.nondet_11)) - (and (and (>= X8 5) (>= X7 1)) (>= X6 1))))) - (and - (= readwrite.usr.x4_a_0 0) - (let - ((X7 - Bool (let - ((X7 Int readwrite.res.nondet_8) - (X8 Int readwrite.res.nondet_7)) - (and (>= X8 1) (>= X7 1))))) - (and - (= readwrite.usr.x3_a_0 0) - (= readwrite.usr.x7_a_0 0) - (let - ((X8 Bool (let ((X8 Int readwrite.res.nondet_6)) (>= X8 1)))) - (and - (= readwrite.usr.x6_a_0 0) - (let - ((X9 - Bool (let - ((X9 Int readwrite.res.nondet_10) - (X10 Int readwrite.res.nondet_9)) - (and (>= X10 1) (>= X9 1))))) - (and - (= readwrite.usr.x8_a_0 1) - (= readwrite.usr.x12_a_0 1) - (= readwrite.usr.x5_a_0 0) - readwrite.res.init_flag_a_0)))))))))))))))))) -) - -(define-fun - __node_trans_readwrite_0 ( - (readwrite.usr.etat1_a_1 Bool) - (readwrite.usr.etat2_a_1 Bool) - (readwrite.usr.etat3_a_1 Bool) - (readwrite.usr.etat4_a_1 Bool) - (readwrite.usr.etat5_a_1 Bool) - (readwrite.usr.etat6_a_1 Bool) - (readwrite.usr.etat7_a_1 Bool) - (readwrite.usr.etat8_a_1 Bool) - (readwrite.usr.etat9_a_1 Bool) - (readwrite.res.nondet_15 Int) - (readwrite.res.nondet_14 Int) - (readwrite.res.nondet_13 Int) - (readwrite.res.nondet_12 Int) - (readwrite.res.nondet_11 Int) - (readwrite.res.nondet_10 Int) - (readwrite.res.nondet_9 Int) - (readwrite.res.nondet_8 Int) - (readwrite.res.nondet_7 Int) - (readwrite.res.nondet_6 Int) - (readwrite.res.nondet_5 Int) - (readwrite.res.nondet_4 Int) - (readwrite.res.nondet_3 Int) - (readwrite.res.nondet_2 Int) - (readwrite.res.nondet_1 Int) - (readwrite.res.nondet_0 Int) - (readwrite.usr.x0_a_1 Int) - (readwrite.usr.x1_a_1 Int) - (readwrite.usr.x2_a_1 Int) - (readwrite.usr.x3_a_1 Int) - (readwrite.usr.x4_a_1 Int) - (readwrite.usr.x5_a_1 Int) - (readwrite.usr.x6_a_1 Int) - (readwrite.usr.x7_a_1 Int) - (readwrite.usr.x8_a_1 Int) - (readwrite.usr.x9_a_1 Int) - (readwrite.usr.x10_a_1 Int) - (readwrite.usr.x11_a_1 Int) - (readwrite.usr.x12_a_1 Int) - (readwrite.res.init_flag_a_1 Bool) - (readwrite.usr.etat1_a_0 Bool) - (readwrite.usr.etat2_a_0 Bool) - (readwrite.usr.etat3_a_0 Bool) - (readwrite.usr.etat4_a_0 Bool) - (readwrite.usr.etat5_a_0 Bool) - (readwrite.usr.etat6_a_0 Bool) - (readwrite.usr.etat7_a_0 Bool) - (readwrite.usr.etat8_a_0 Bool) - (readwrite.usr.etat9_a_0 Bool) - (readwrite.usr.x0_a_0 Int) - (readwrite.usr.x1_a_0 Int) - (readwrite.usr.x2_a_0 Int) - (readwrite.usr.x3_a_0 Int) - (readwrite.usr.x4_a_0 Int) - (readwrite.usr.x5_a_0 Int) - (readwrite.usr.x6_a_0 Int) - (readwrite.usr.x7_a_0 Int) - (readwrite.usr.x8_a_0 Int) - (readwrite.usr.x9_a_0 Int) - (readwrite.usr.x10_a_0 Int) - (readwrite.usr.x11_a_0 Int) - (readwrite.usr.x12_a_0 Int) - (readwrite.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (and (>= readwrite.usr.x1_a_0 1) (>= readwrite.usr.x4_a_0 1)))) - (let - ((X2 Bool (>= readwrite.usr.x0_a_0 1))) - (and - (= - readwrite.usr.x0_a_1 - (ite - readwrite.usr.etat1_a_1 - (ite X2 (- readwrite.usr.x0_a_0 1) readwrite.usr.x0_a_0) - (ite - readwrite.usr.etat2_a_1 - (ite X1 (+ readwrite.usr.x0_a_0 1) readwrite.usr.x0_a_0) - readwrite.usr.x0_a_0))) - (let - ((X3 Bool (>= readwrite.usr.x1_a_0 1))) - (let - ((X4 Bool (and (>= readwrite.usr.x2_a_0 1) (>= readwrite.usr.x11_a_0 1)))) - (and - (= - readwrite.usr.x1_a_1 - (ite - readwrite.usr.etat1_a_1 - (ite X2 (+ readwrite.usr.x1_a_0 1) readwrite.usr.x1_a_0) - (ite - readwrite.usr.etat2_a_1 - (ite X1 (- readwrite.usr.x1_a_0 1) readwrite.usr.x1_a_0) - (ite - readwrite.usr.etat3_a_1 - (ite X4 (+ readwrite.usr.x1_a_0 1) readwrite.usr.x1_a_0) - (ite - readwrite.usr.etat4_a_1 - (ite X3 (- readwrite.usr.x1_a_0 1) readwrite.usr.x1_a_0) - readwrite.usr.x1_a_0))))) - (= - readwrite.usr.x2_a_1 - (ite - readwrite.usr.etat3_a_1 - (ite X4 (- readwrite.usr.x2_a_0 1) readwrite.usr.x2_a_0) - (ite - readwrite.usr.etat4_a_1 - (ite X3 (+ readwrite.usr.x2_a_0 1) readwrite.usr.x2_a_0) - readwrite.usr.x2_a_0))) - (let - ((X5 - Bool (and (>= readwrite.usr.x9_a_0 1) (>= readwrite.usr.x10_a_0 1)))) - (and - (= - readwrite.usr.x11_a_1 - (ite - readwrite.usr.etat3_a_1 - (ite X4 (- readwrite.usr.x11_a_0 1) readwrite.usr.x11_a_0) - (ite - readwrite.usr.etat9_a_1 - (ite X5 (+ readwrite.usr.x11_a_0 1) readwrite.usr.x11_a_0) - readwrite.usr.x11_a_0))) - (= - readwrite.usr.x9_a_1 - (ite - readwrite.usr.etat4_a_1 - (ite X3 (+ readwrite.usr.x9_a_0 1) readwrite.usr.x9_a_0) - (ite - readwrite.usr.etat9_a_1 - (ite X5 (- readwrite.usr.x9_a_0 1) readwrite.usr.x9_a_0) - readwrite.usr.x9_a_0))) - (let - ((X6 - Bool (and - (and (>= readwrite.usr.x4_a_0 5) (>= readwrite.usr.x5_a_0 1)) - (>= readwrite.usr.x7_a_0 1)))) - (and - (= - readwrite.usr.x10_a_1 - (ite - readwrite.usr.etat8_a_1 - (ite X6 (+ readwrite.usr.x10_a_0 1) readwrite.usr.x10_a_0) - (ite - readwrite.usr.etat9_a_1 - (ite X5 (- readwrite.usr.x10_a_0 1) readwrite.usr.x10_a_0) - readwrite.usr.x10_a_0))) - (let - ((X7 - Bool (and - (>= readwrite.usr.x8_a_0 1) - (>= readwrite.usr.x12_a_0 1)))) - (let - ((X8 - Bool (and - (>= readwrite.usr.x3_a_0 1) - (>= readwrite.usr.x7_a_0 1)))) - (and - (= - readwrite.usr.x4_a_1 - (ite - readwrite.usr.etat2_a_1 - (ite X1 (- readwrite.usr.x4_a_0 1) readwrite.usr.x4_a_0) - (ite - readwrite.usr.etat6_a_1 - (ite X8 (+ readwrite.usr.x4_a_0 1) readwrite.usr.x4_a_0) - (ite - readwrite.usr.etat7_a_1 - (ite X7 (+ readwrite.usr.x4_a_0 5) readwrite.usr.x4_a_0) - (ite - readwrite.usr.etat8_a_1 - (ite X6 (- readwrite.usr.x4_a_0 5) readwrite.usr.x4_a_0) - readwrite.usr.x4_a_0))))) - (= - readwrite.usr.x3_a_1 - (ite - readwrite.usr.etat2_a_1 - (ite X1 (+ readwrite.usr.x3_a_0 1) readwrite.usr.x3_a_0) - (ite - readwrite.usr.etat6_a_1 - (ite X8 (- readwrite.usr.x3_a_0 1) readwrite.usr.x3_a_0) - readwrite.usr.x3_a_0))) - (let - ((X9 Bool (>= readwrite.usr.x6_a_0 1))) - (and - (= - readwrite.usr.x7_a_1 - (ite - readwrite.usr.etat5_a_1 - (ite X9 (+ readwrite.usr.x7_a_0 1) readwrite.usr.x7_a_0) - (ite - readwrite.usr.etat6_a_1 - (ite X8 (- readwrite.usr.x7_a_0 1) readwrite.usr.x7_a_0) - (ite - readwrite.usr.etat7_a_1 - (ite X7 (+ readwrite.usr.x7_a_0 1) readwrite.usr.x7_a_0) - (ite - readwrite.usr.etat8_a_1 - (ite X6 (- readwrite.usr.x7_a_0 1) readwrite.usr.x7_a_0) - readwrite.usr.x7_a_0))))) - (= - readwrite.usr.x6_a_1 - (ite - readwrite.usr.etat5_a_1 - (ite X9 (- readwrite.usr.x6_a_0 1) readwrite.usr.x6_a_0) - (ite - readwrite.usr.etat6_a_1 - (ite X8 (+ readwrite.usr.x6_a_0 1) readwrite.usr.x6_a_0) - readwrite.usr.x6_a_0))) - (= - readwrite.usr.x8_a_1 - (ite - readwrite.usr.etat7_a_1 - (ite X7 (- readwrite.usr.x8_a_0 1) readwrite.usr.x8_a_0) - (ite - readwrite.usr.etat8_a_1 - (ite X6 (+ readwrite.usr.x8_a_0 1) readwrite.usr.x8_a_0) - readwrite.usr.x8_a_0))) - (= - readwrite.usr.x12_a_1 - (ite - readwrite.usr.etat7_a_1 - (ite X7 (- readwrite.usr.x12_a_0 1) readwrite.usr.x12_a_0) - (ite - readwrite.usr.etat9_a_1 - (ite X5 (+ readwrite.usr.x12_a_0 1) readwrite.usr.x12_a_0) - readwrite.usr.x12_a_0))) - (= - readwrite.usr.x5_a_1 - (ite - readwrite.usr.etat4_a_1 - (ite X9 (+ readwrite.usr.x5_a_0 1) readwrite.usr.x5_a_0) - (ite - readwrite.usr.etat8_a_1 - (ite X6 (- readwrite.usr.x5_a_0 1) readwrite.usr.x5_a_0) - readwrite.usr.x5_a_0))) - (not readwrite.res.init_flag_a_1)))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.etat1_a_0 Bool) - (top.usr.etat2_a_0 Bool) - (top.usr.etat3_a_0 Bool) - (top.usr.etat4_a_0 Bool) - (top.usr.etat5_a_0 Bool) - (top.usr.etat6_a_0 Bool) - (top.usr.etat7_a_0 Bool) - (top.usr.etat8_a_0 Bool) - (top.usr.etat9_a_0 Bool) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.abs_11_a_0 Int) - (top.res.abs_12_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (>= X1 0)) - (__node_init_readwrite_0 - top.usr.etat1_a_0 - top.usr.etat2_a_0 - top.usr.etat3_a_0 - top.usr.etat4_a_0 - top.usr.etat5_a_0 - top.usr.etat6_a_0 - top.usr.etat7_a_0 - top.usr.etat8_a_0 - top.usr.etat9_a_0 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.etat1_a_1 Bool) - (top.usr.etat2_a_1 Bool) - (top.usr.etat3_a_1 Bool) - (top.usr.etat4_a_1 Bool) - (top.usr.etat5_a_1 Bool) - (top.usr.etat6_a_1 Bool) - (top.usr.etat7_a_1 Bool) - (top.usr.etat8_a_1 Bool) - (top.usr.etat9_a_1 Bool) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.abs_9_a_1 Int) - (top.res.abs_10_a_1 Int) - (top.res.abs_11_a_1 Int) - (top.res.abs_12_a_1 Int) - (top.res.inst_0_a_1 Bool) - (top.usr.etat1_a_0 Bool) - (top.usr.etat2_a_0 Bool) - (top.usr.etat3_a_0 Bool) - (top.usr.etat4_a_0 Bool) - (top.usr.etat5_a_0 Bool) - (top.usr.etat6_a_0 Bool) - (top.usr.etat7_a_0 Bool) - (top.usr.etat8_a_0 Bool) - (top.usr.etat9_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Int) - (top.res.abs_10_a_0 Int) - (top.res.abs_11_a_0 Int) - (top.res.abs_12_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (>= X1 0)) - (__node_trans_readwrite_0 - top.usr.etat1_a_1 - top.usr.etat2_a_1 - top.usr.etat3_a_1 - top.usr.etat4_a_1 - top.usr.etat5_a_1 - top.usr.etat6_a_1 - top.usr.etat7_a_1 - top.usr.etat8_a_1 - top.usr.etat9_a_1 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.abs_12_a_1 - top.res.inst_0_a_1 - top.usr.etat1_a_0 - top.usr.etat2_a_0 - top.usr.etat3_a_0 - top.usr.etat4_a_0 - top.usr.etat5_a_0 - top.usr.etat6_a_0 - top.usr.etat7_a_0 - top.usr.etat8_a_0 - top.usr.etat9_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))) -) - - - -(synth-inv str_invariant( - (top.usr.etat1 Bool) - (top.usr.etat2 Bool) - (top.usr.etat3 Bool) - (top.usr.etat4 Bool) - (top.usr.etat5 Bool) - (top.usr.etat6 Bool) - (top.usr.etat7 Bool) - (top.usr.etat8 Bool) - (top.usr.etat9 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.abs_11 Int) - (top.res.abs_12 Int) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.etat1 Bool) -(declare-primed-var top.usr.etat2 Bool) -(declare-primed-var top.usr.etat3 Bool) -(declare-primed-var top.usr.etat4 Bool) -(declare-primed-var top.usr.etat5 Bool) -(declare-primed-var top.usr.etat6 Bool) -(declare-primed-var top.usr.etat7 Bool) -(declare-primed-var top.usr.etat8 Bool) -(declare-primed-var top.usr.etat9 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.abs_9 Int) -(declare-primed-var top.res.abs_10 Int) -(declare-primed-var top.res.abs_11 Int) -(declare-primed-var top.res.abs_12 Int) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.etat1 Bool) - (top.usr.etat2 Bool) - (top.usr.etat3 Bool) - (top.usr.etat4 Bool) - (top.usr.etat5 Bool) - (top.usr.etat6 Bool) - (top.usr.etat7 Bool) - (top.usr.etat8 Bool) - (top.usr.etat9 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.abs_11 Int) - (top.res.abs_12 Int) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_0)) - (and - (= top.usr.OK (>= X1 0)) - (__node_init_readwrite_0 - top.usr.etat1 - top.usr.etat2 - top.usr.etat3 - top.usr.etat4 - top.usr.etat5 - top.usr.etat6 - top.usr.etat7 - top.usr.etat8 - top.usr.etat9 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.abs_10 - top.res.abs_11 - top.res.abs_12 - top.res.inst_0) - top.res.init_flag)) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.etat1 Bool) - (top.usr.etat2 Bool) - (top.usr.etat3 Bool) - (top.usr.etat4 Bool) - (top.usr.etat5 Bool) - (top.usr.etat6 Bool) - (top.usr.etat7 Bool) - (top.usr.etat8 Bool) - (top.usr.etat9 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.abs_11 Int) - (top.res.abs_12 Int) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.etat1! Bool) - (top.usr.etat2! Bool) - (top.usr.etat3! Bool) - (top.usr.etat4! Bool) - (top.usr.etat5! Bool) - (top.usr.etat6! Bool) - (top.usr.etat7! Bool) - (top.usr.etat8! Bool) - (top.usr.etat9! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.abs_9! Int) - (top.res.abs_10! Int) - (top.res.abs_11! Int) - (top.res.abs_12! Int) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Int top.res.abs_0!)) - (and - (= top.usr.OK! (>= X1 0)) - (__node_trans_readwrite_0 - top.usr.etat1! - top.usr.etat2! - top.usr.etat3! - top.usr.etat4! - top.usr.etat5! - top.usr.etat6! - top.usr.etat7! - top.usr.etat8! - top.usr.etat9! - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.abs_10! - top.res.abs_11! - top.res.abs_12! - top.res.inst_0! - top.usr.etat1 - top.usr.etat2 - top.usr.etat3 - top.usr.etat4 - top.usr.etat5 - top.usr.etat6 - top.usr.etat7 - top.usr.etat8 - top.usr.etat9 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.abs_10 - top.res.abs_11 - top.res.abs_12 - top.res.inst_0) - (not top.res.init_flag!))) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.etat1 Bool) - (top.usr.etat2 Bool) - (top.usr.etat3 Bool) - (top.usr.etat4 Bool) - (top.usr.etat5 Bool) - (top.usr.etat6 Bool) - (top.usr.etat7 Bool) - (top.usr.etat8 Bool) - (top.usr.etat9 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Int) - (top.res.abs_10 Int) - (top.res.abs_11 Int) - (top.res.abs_12 Int) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_readwrite_0 ((readwrite.usr.etat1_a_0 Bool) (readwrite.usr.etat2_a_0 Bool) (readwrite.usr.etat3_a_0 Bool) (readwrite.usr.etat4_a_0 Bool) (readwrite.usr.etat5_a_0 Bool) (readwrite.usr.etat6_a_0 Bool) (readwrite.usr.etat7_a_0 Bool) (readwrite.usr.etat8_a_0 Bool) (readwrite.usr.etat9_a_0 Bool) (readwrite.res.nondet_15 Int) (readwrite.res.nondet_14 Int) (readwrite.res.nondet_13 Int) (readwrite.res.nondet_12 Int) (readwrite.res.nondet_11 Int) (readwrite.res.nondet_10 Int) (readwrite.res.nondet_9 Int) (readwrite.res.nondet_8 Int) (readwrite.res.nondet_7 Int) (readwrite.res.nondet_6 Int) (readwrite.res.nondet_5 Int) (readwrite.res.nondet_4 Int) (readwrite.res.nondet_3 Int) (readwrite.res.nondet_2 Int) (readwrite.res.nondet_1 Int) (readwrite.res.nondet_0 Int) (readwrite.usr.x0_a_0 Int) (readwrite.usr.x1_a_0 Int) (readwrite.usr.x2_a_0 Int) (readwrite.usr.x3_a_0 Int) (readwrite.usr.x4_a_0 Int) (readwrite.usr.x5_a_0 Int) (readwrite.usr.x6_a_0 Int) (readwrite.usr.x7_a_0 Int) (readwrite.usr.x8_a_0 Int) (readwrite.usr.x9_a_0 Int) (readwrite.usr.x10_a_0 Int) (readwrite.usr.x11_a_0 Int) (readwrite.usr.x12_a_0 Int) (readwrite.res.init_flag_a_0 Bool)) Bool + (and (= readwrite.usr.x0_a_0 0) (let ((X1 (let ((X1 readwrite.res.nondet_0)) (>= X1 1)))) (let ((X2 (let ((X2 readwrite.res.nondet_2) (X3 readwrite.res.nondet_1)) (and (>= X3 1) (>= X2 1))))) (and (= readwrite.usr.x1_a_0 0) (let ((X3 (let ((X3 readwrite.res.nondet_4) (X4 readwrite.res.nondet_3)) (and (>= X4 1) (>= X3 1))))) (and (= readwrite.usr.x2_a_0 1) (let ((X4 (let ((X4 readwrite.res.nondet_5)) (>= X4 1)))) (and (= readwrite.usr.x11_a_0 1) (let ((X5 (let ((X5 readwrite.res.nondet_15) (X6 readwrite.res.nondet_14)) (and (>= X6 1) (>= X5 1))))) (and (= readwrite.usr.x9_a_0 0) (= readwrite.usr.x10_a_0 0) (let ((X6 (let ((X6 readwrite.res.nondet_13) (X7 readwrite.res.nondet_12) (X8 readwrite.res.nondet_11)) (and (and (>= X8 5) (>= X7 1)) (>= X6 1))))) (and (= readwrite.usr.x4_a_0 0) (let ((X7 (let ((X7 readwrite.res.nondet_8) (X8 readwrite.res.nondet_7)) (and (>= X8 1) (>= X7 1))))) (and (= readwrite.usr.x3_a_0 0) (= readwrite.usr.x7_a_0 0) (let ((X8 (let ((X8 readwrite.res.nondet_6)) (>= X8 1)))) (and (= readwrite.usr.x6_a_0 0) (let ((X9 (let ((X9 readwrite.res.nondet_10) (X10 readwrite.res.nondet_9)) (and (>= X10 1) (>= X9 1))))) (and (= readwrite.usr.x8_a_0 1) (= readwrite.usr.x12_a_0 1) (= readwrite.usr.x5_a_0 0) readwrite.res.init_flag_a_0))))))))))))))))))) +(define-fun __node_trans_readwrite_0 ((readwrite.usr.etat1_a_1 Bool) (readwrite.usr.etat2_a_1 Bool) (readwrite.usr.etat3_a_1 Bool) (readwrite.usr.etat4_a_1 Bool) (readwrite.usr.etat5_a_1 Bool) (readwrite.usr.etat6_a_1 Bool) (readwrite.usr.etat7_a_1 Bool) (readwrite.usr.etat8_a_1 Bool) (readwrite.usr.etat9_a_1 Bool) (readwrite.res.nondet_15 Int) (readwrite.res.nondet_14 Int) (readwrite.res.nondet_13 Int) (readwrite.res.nondet_12 Int) (readwrite.res.nondet_11 Int) (readwrite.res.nondet_10 Int) (readwrite.res.nondet_9 Int) (readwrite.res.nondet_8 Int) (readwrite.res.nondet_7 Int) (readwrite.res.nondet_6 Int) (readwrite.res.nondet_5 Int) (readwrite.res.nondet_4 Int) (readwrite.res.nondet_3 Int) (readwrite.res.nondet_2 Int) (readwrite.res.nondet_1 Int) (readwrite.res.nondet_0 Int) (readwrite.usr.x0_a_1 Int) (readwrite.usr.x1_a_1 Int) (readwrite.usr.x2_a_1 Int) (readwrite.usr.x3_a_1 Int) (readwrite.usr.x4_a_1 Int) (readwrite.usr.x5_a_1 Int) (readwrite.usr.x6_a_1 Int) (readwrite.usr.x7_a_1 Int) (readwrite.usr.x8_a_1 Int) (readwrite.usr.x9_a_1 Int) (readwrite.usr.x10_a_1 Int) (readwrite.usr.x11_a_1 Int) (readwrite.usr.x12_a_1 Int) (readwrite.res.init_flag_a_1 Bool) (readwrite.usr.etat1_a_0 Bool) (readwrite.usr.etat2_a_0 Bool) (readwrite.usr.etat3_a_0 Bool) (readwrite.usr.etat4_a_0 Bool) (readwrite.usr.etat5_a_0 Bool) (readwrite.usr.etat6_a_0 Bool) (readwrite.usr.etat7_a_0 Bool) (readwrite.usr.etat8_a_0 Bool) (readwrite.usr.etat9_a_0 Bool) (readwrite.usr.x0_a_0 Int) (readwrite.usr.x1_a_0 Int) (readwrite.usr.x2_a_0 Int) (readwrite.usr.x3_a_0 Int) (readwrite.usr.x4_a_0 Int) (readwrite.usr.x5_a_0 Int) (readwrite.usr.x6_a_0 Int) (readwrite.usr.x7_a_0 Int) (readwrite.usr.x8_a_0 Int) (readwrite.usr.x9_a_0 Int) (readwrite.usr.x10_a_0 Int) (readwrite.usr.x11_a_0 Int) (readwrite.usr.x12_a_0 Int) (readwrite.res.init_flag_a_0 Bool)) Bool + (let ((X1 (and (>= readwrite.usr.x1_a_0 1) (>= readwrite.usr.x4_a_0 1)))) (let ((X2 (>= readwrite.usr.x0_a_0 1))) (and (= readwrite.usr.x0_a_1 (ite readwrite.usr.etat1_a_1 (ite X2 (- readwrite.usr.x0_a_0 1) readwrite.usr.x0_a_0) (ite readwrite.usr.etat2_a_1 (ite X1 (+ readwrite.usr.x0_a_0 1) readwrite.usr.x0_a_0) readwrite.usr.x0_a_0))) (let ((X3 (>= readwrite.usr.x1_a_0 1))) (let ((X4 (and (>= readwrite.usr.x2_a_0 1) (>= readwrite.usr.x11_a_0 1)))) (and (= readwrite.usr.x1_a_1 (ite readwrite.usr.etat1_a_1 (ite X2 (+ readwrite.usr.x1_a_0 1) readwrite.usr.x1_a_0) (ite readwrite.usr.etat2_a_1 (ite X1 (- readwrite.usr.x1_a_0 1) readwrite.usr.x1_a_0) (ite readwrite.usr.etat3_a_1 (ite X4 (+ readwrite.usr.x1_a_0 1) readwrite.usr.x1_a_0) (ite readwrite.usr.etat4_a_1 (ite X3 (- readwrite.usr.x1_a_0 1) readwrite.usr.x1_a_0) readwrite.usr.x1_a_0))))) (= readwrite.usr.x2_a_1 (ite readwrite.usr.etat3_a_1 (ite X4 (- readwrite.usr.x2_a_0 1) readwrite.usr.x2_a_0) (ite readwrite.usr.etat4_a_1 (ite X3 (+ readwrite.usr.x2_a_0 1) readwrite.usr.x2_a_0) readwrite.usr.x2_a_0))) (let ((X5 (and (>= readwrite.usr.x9_a_0 1) (>= readwrite.usr.x10_a_0 1)))) (and (= readwrite.usr.x11_a_1 (ite readwrite.usr.etat3_a_1 (ite X4 (- readwrite.usr.x11_a_0 1) readwrite.usr.x11_a_0) (ite readwrite.usr.etat9_a_1 (ite X5 (+ readwrite.usr.x11_a_0 1) readwrite.usr.x11_a_0) readwrite.usr.x11_a_0))) (= readwrite.usr.x9_a_1 (ite readwrite.usr.etat4_a_1 (ite X3 (+ readwrite.usr.x9_a_0 1) readwrite.usr.x9_a_0) (ite readwrite.usr.etat9_a_1 (ite X5 (- readwrite.usr.x9_a_0 1) readwrite.usr.x9_a_0) readwrite.usr.x9_a_0))) (let ((X6 (and (and (>= readwrite.usr.x4_a_0 5) (>= readwrite.usr.x5_a_0 1)) (>= readwrite.usr.x7_a_0 1)))) (and (= readwrite.usr.x10_a_1 (ite readwrite.usr.etat8_a_1 (ite X6 (+ readwrite.usr.x10_a_0 1) readwrite.usr.x10_a_0) (ite readwrite.usr.etat9_a_1 (ite X5 (- readwrite.usr.x10_a_0 1) readwrite.usr.x10_a_0) readwrite.usr.x10_a_0))) (let ((X7 (and (>= readwrite.usr.x8_a_0 1) (>= readwrite.usr.x12_a_0 1)))) (let ((X8 (and (>= readwrite.usr.x3_a_0 1) (>= readwrite.usr.x7_a_0 1)))) (and (= readwrite.usr.x4_a_1 (ite readwrite.usr.etat2_a_1 (ite X1 (- readwrite.usr.x4_a_0 1) readwrite.usr.x4_a_0) (ite readwrite.usr.etat6_a_1 (ite X8 (+ readwrite.usr.x4_a_0 1) readwrite.usr.x4_a_0) (ite readwrite.usr.etat7_a_1 (ite X7 (+ readwrite.usr.x4_a_0 5) readwrite.usr.x4_a_0) (ite readwrite.usr.etat8_a_1 (ite X6 (- readwrite.usr.x4_a_0 5) readwrite.usr.x4_a_0) readwrite.usr.x4_a_0))))) (= readwrite.usr.x3_a_1 (ite readwrite.usr.etat2_a_1 (ite X1 (+ readwrite.usr.x3_a_0 1) readwrite.usr.x3_a_0) (ite readwrite.usr.etat6_a_1 (ite X8 (- readwrite.usr.x3_a_0 1) readwrite.usr.x3_a_0) readwrite.usr.x3_a_0))) (let ((X9 (>= readwrite.usr.x6_a_0 1))) (and (= readwrite.usr.x7_a_1 (ite readwrite.usr.etat5_a_1 (ite X9 (+ readwrite.usr.x7_a_0 1) readwrite.usr.x7_a_0) (ite readwrite.usr.etat6_a_1 (ite X8 (- readwrite.usr.x7_a_0 1) readwrite.usr.x7_a_0) (ite readwrite.usr.etat7_a_1 (ite X7 (+ readwrite.usr.x7_a_0 1) readwrite.usr.x7_a_0) (ite readwrite.usr.etat8_a_1 (ite X6 (- readwrite.usr.x7_a_0 1) readwrite.usr.x7_a_0) readwrite.usr.x7_a_0))))) (= readwrite.usr.x6_a_1 (ite readwrite.usr.etat5_a_1 (ite X9 (- readwrite.usr.x6_a_0 1) readwrite.usr.x6_a_0) (ite readwrite.usr.etat6_a_1 (ite X8 (+ readwrite.usr.x6_a_0 1) readwrite.usr.x6_a_0) readwrite.usr.x6_a_0))) (= readwrite.usr.x8_a_1 (ite readwrite.usr.etat7_a_1 (ite X7 (- readwrite.usr.x8_a_0 1) readwrite.usr.x8_a_0) (ite readwrite.usr.etat8_a_1 (ite X6 (+ readwrite.usr.x8_a_0 1) readwrite.usr.x8_a_0) readwrite.usr.x8_a_0))) (= readwrite.usr.x12_a_1 (ite readwrite.usr.etat7_a_1 (ite X7 (- readwrite.usr.x12_a_0 1) readwrite.usr.x12_a_0) (ite readwrite.usr.etat9_a_1 (ite X5 (+ readwrite.usr.x12_a_0 1) readwrite.usr.x12_a_0) readwrite.usr.x12_a_0))) (= readwrite.usr.x5_a_1 (ite readwrite.usr.etat4_a_1 (ite X9 (+ readwrite.usr.x5_a_0 1) readwrite.usr.x5_a_0) (ite readwrite.usr.etat8_a_1 (ite X6 (- readwrite.usr.x5_a_0 1) readwrite.usr.x5_a_0) readwrite.usr.x5_a_0))) (not readwrite.res.init_flag_a_1))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.etat1_a_0 Bool) (top.usr.etat2_a_0 Bool) (top.usr.etat3_a_0 Bool) (top.usr.etat4_a_0 Bool) (top.usr.etat5_a_0 Bool) (top.usr.etat6_a_0 Bool) (top.usr.etat7_a_0 Bool) (top.usr.etat8_a_0 Bool) (top.usr.etat9_a_0 Bool) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.abs_11_a_0 Int) (top.res.abs_12_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (>= X1 0)) (__node_init_readwrite_0 top.usr.etat1_a_0 top.usr.etat2_a_0 top.usr.etat3_a_0 top.usr.etat4_a_0 top.usr.etat5_a_0 top.usr.etat6_a_0 top.usr.etat7_a_0 top.usr.etat8_a_0 top.usr.etat9_a_0 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))) +(define-fun __node_trans_top_0 ((top.usr.etat1_a_1 Bool) (top.usr.etat2_a_1 Bool) (top.usr.etat3_a_1 Bool) (top.usr.etat4_a_1 Bool) (top.usr.etat5_a_1 Bool) (top.usr.etat6_a_1 Bool) (top.usr.etat7_a_1 Bool) (top.usr.etat8_a_1 Bool) (top.usr.etat9_a_1 Bool) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.abs_9_a_1 Int) (top.res.abs_10_a_1 Int) (top.res.abs_11_a_1 Int) (top.res.abs_12_a_1 Int) (top.res.inst_0_a_1 Bool) (top.usr.etat1_a_0 Bool) (top.usr.etat2_a_0 Bool) (top.usr.etat3_a_0 Bool) (top.usr.etat4_a_0 Bool) (top.usr.etat5_a_0 Bool) (top.usr.etat6_a_0 Bool) (top.usr.etat7_a_0 Bool) (top.usr.etat8_a_0 Bool) (top.usr.etat9_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Int) (top.res.abs_10_a_0 Int) (top.res.abs_11_a_0 Int) (top.res.abs_12_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (>= X1 0)) (__node_trans_readwrite_0 top.usr.etat1_a_1 top.usr.etat2_a_1 top.usr.etat3_a_1 top.usr.etat4_a_1 top.usr.etat5_a_1 top.usr.etat6_a_1 top.usr.etat7_a_1 top.usr.etat8_a_1 top.usr.etat9_a_1 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.abs_12_a_1 top.res.inst_0_a_1 top.usr.etat1_a_0 top.usr.etat2_a_0 top.usr.etat3_a_0 top.usr.etat4_a_0 top.usr.etat5_a_0 top.usr.etat6_a_0 top.usr.etat7_a_0 top.usr.etat8_a_0 top.usr.etat9_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))) +(synth-inv str_invariant ((top.usr.etat1 Bool) (top.usr.etat2 Bool) (top.usr.etat3 Bool) (top.usr.etat4 Bool) (top.usr.etat5 Bool) (top.usr.etat6 Bool) (top.usr.etat7 Bool) (top.usr.etat8 Bool) (top.usr.etat9 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.abs_11 Int) (top.res.abs_12 Int) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.etat1 Bool) (top.usr.etat2 Bool) (top.usr.etat3 Bool) (top.usr.etat4 Bool) (top.usr.etat5 Bool) (top.usr.etat6 Bool) (top.usr.etat7 Bool) (top.usr.etat8 Bool) (top.usr.etat9 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.abs_11 Int) (top.res.abs_12 Int) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_0)) (and (= top.usr.OK (>= X1 0)) (__node_init_readwrite_0 top.usr.etat1 top.usr.etat2 top.usr.etat3 top.usr.etat4 top.usr.etat5 top.usr.etat6 top.usr.etat7 top.usr.etat8 top.usr.etat9 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.abs_10 top.res.abs_11 top.res.abs_12 top.res.inst_0) top.res.init_flag))) +(define-fun trans ((top.usr.etat1 Bool) (top.usr.etat2 Bool) (top.usr.etat3 Bool) (top.usr.etat4 Bool) (top.usr.etat5 Bool) (top.usr.etat6 Bool) (top.usr.etat7 Bool) (top.usr.etat8 Bool) (top.usr.etat9 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.abs_11 Int) (top.res.abs_12 Int) (top.res.inst_0 Bool) (top.usr.etat1! Bool) (top.usr.etat2! Bool) (top.usr.etat3! Bool) (top.usr.etat4! Bool) (top.usr.etat5! Bool) (top.usr.etat6! Bool) (top.usr.etat7! Bool) (top.usr.etat8! Bool) (top.usr.etat9! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.abs_9! Int) (top.res.abs_10! Int) (top.res.abs_11! Int) (top.res.abs_12! Int) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_0!)) (and (= top.usr.OK! (>= X1 0)) (__node_trans_readwrite_0 top.usr.etat1! top.usr.etat2! top.usr.etat3! top.usr.etat4! top.usr.etat5! top.usr.etat6! top.usr.etat7! top.usr.etat8! top.usr.etat9! top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.abs_10! top.res.abs_11! top.res.abs_12! top.res.inst_0! top.usr.etat1 top.usr.etat2 top.usr.etat3 top.usr.etat4 top.usr.etat5 top.usr.etat6 top.usr.etat7 top.usr.etat8 top.usr.etat9 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.abs_10 top.res.abs_11 top.res.abs_12 top.res.inst_0) (not top.res.init_flag!))) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.etat1 Bool) (top.usr.etat2 Bool) (top.usr.etat3 Bool) (top.usr.etat4 Bool) (top.usr.etat5 Bool) (top.usr.etat6 Bool) (top.usr.etat7 Bool) (top.usr.etat8 Bool) (top.usr.etat9 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Int) (top.res.abs_10 Int) (top.res.abs_11 Int) (top.res.abs_12 Int) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/rtp_1.sl b/benchmarks/LIA/Lustre/rtp_1.sl index 1ea5c5b..04bb975 100644 --- a/benchmarks/LIA/Lustre/rtp_1.sl +++ b/benchmarks/LIA/Lustre/rtp_1.sl @@ -1,1631 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_rtp_0 ( - (rtp.usr.e01_a_0 Bool) - (rtp.usr.e02_a_0 Bool) - (rtp.usr.e03_a_0 Bool) - (rtp.usr.e04_a_0 Bool) - (rtp.usr.e05_a_0 Bool) - (rtp.usr.e06_a_0 Bool) - (rtp.usr.e07_a_0 Bool) - (rtp.usr.e08_a_0 Bool) - (rtp.usr.e09_a_0 Bool) - (rtp.usr.e10_a_0 Bool) - (rtp.usr.e11_a_0 Bool) - (rtp.usr.e12_a_0 Bool) - (rtp.res.nondet_11 Int) - (rtp.res.nondet_10 Int) - (rtp.res.nondet_9 Int) - (rtp.res.nondet_8 Int) - (rtp.res.nondet_7 Int) - (rtp.res.nondet_6 Int) - (rtp.res.nondet_5 Int) - (rtp.res.nondet_4 Int) - (rtp.res.nondet_3 Int) - (rtp.res.nondet_2 Int) - (rtp.res.nondet_1 Int) - (rtp.res.nondet_0 Int) - (rtp.usr.X1_a_0 Int) - (rtp.usr.X2_a_0 Int) - (rtp.usr.X3_a_0 Int) - (rtp.usr.X4_a_0 Int) - (rtp.usr.X5_a_0 Int) - (rtp.usr.X6_a_0 Int) - (rtp.usr.X7_a_0 Int) - (rtp.usr.X8_a_0 Int) - (rtp.usr.X9_a_0 Int) - (rtp.usr.erreur_a_0 Bool) - (rtp.res.init_flag_a_0 Bool) - ) Bool - - (and - (= rtp.usr.X1_a_0 1) - (let - ((X1 Bool (let ((X1 Int rtp.res.nondet_0)) (>= X1 1)))) - (and - (= rtp.usr.X2_a_0 0) - (let - ((X2 Bool (let ((X2 Int rtp.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int rtp.res.nondet_11)) (>= X3 1)))) - (and - (= rtp.usr.X9_a_0 0) - (let - ((X4 Bool (let ((X4 Int rtp.res.nondet_4)) (>= X4 1)))) - (and - (= rtp.usr.X4_a_0 0) - (let - ((X5 Bool (let ((X5 Int rtp.res.nondet_2)) (>= X5 1)))) - (and - (= rtp.usr.X3_a_0 0) - (let - ((X6 Bool (let ((X6 Int rtp.res.nondet_3)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int rtp.res.nondet_6)) (>= X7 1)))) - (and - (= rtp.usr.X6_a_0 0) - (let - ((X8 Bool (let ((X8 Int rtp.res.nondet_5)) (>= X8 1)))) - (and - (= rtp.usr.X5_a_0 0) - (let - ((X9 Bool (let ((X9 Int rtp.res.nondet_7)) (>= X9 1)))) - (let - ((X10 Bool (let ((X10 Int rtp.res.nondet_8)) (>= X10 1)))) - (let - ((X11 Bool (let ((X11 Int rtp.res.nondet_9)) (>= X11 1)))) - (and - (= rtp.usr.X7_a_0 0) - (let - ((X12 - Bool (let ((X12 Int rtp.res.nondet_10)) (>= X12 1)))) - (and - (= rtp.usr.X8_a_0 0) - (= - rtp.usr.erreur_a_0 - (ite (>= rtp.usr.X1_a_0 2) true false)) - rtp.res.init_flag_a_0))))))))))))))))))))) -) - -(define-fun - __node_trans_rtp_0 ( - (rtp.usr.e01_a_1 Bool) - (rtp.usr.e02_a_1 Bool) - (rtp.usr.e03_a_1 Bool) - (rtp.usr.e04_a_1 Bool) - (rtp.usr.e05_a_1 Bool) - (rtp.usr.e06_a_1 Bool) - (rtp.usr.e07_a_1 Bool) - (rtp.usr.e08_a_1 Bool) - (rtp.usr.e09_a_1 Bool) - (rtp.usr.e10_a_1 Bool) - (rtp.usr.e11_a_1 Bool) - (rtp.usr.e12_a_1 Bool) - (rtp.res.nondet_11 Int) - (rtp.res.nondet_10 Int) - (rtp.res.nondet_9 Int) - (rtp.res.nondet_8 Int) - (rtp.res.nondet_7 Int) - (rtp.res.nondet_6 Int) - (rtp.res.nondet_5 Int) - (rtp.res.nondet_4 Int) - (rtp.res.nondet_3 Int) - (rtp.res.nondet_2 Int) - (rtp.res.nondet_1 Int) - (rtp.res.nondet_0 Int) - (rtp.usr.X1_a_1 Int) - (rtp.usr.X2_a_1 Int) - (rtp.usr.X3_a_1 Int) - (rtp.usr.X4_a_1 Int) - (rtp.usr.X5_a_1 Int) - (rtp.usr.X6_a_1 Int) - (rtp.usr.X7_a_1 Int) - (rtp.usr.X8_a_1 Int) - (rtp.usr.X9_a_1 Int) - (rtp.usr.erreur_a_1 Bool) - (rtp.res.init_flag_a_1 Bool) - (rtp.usr.e01_a_0 Bool) - (rtp.usr.e02_a_0 Bool) - (rtp.usr.e03_a_0 Bool) - (rtp.usr.e04_a_0 Bool) - (rtp.usr.e05_a_0 Bool) - (rtp.usr.e06_a_0 Bool) - (rtp.usr.e07_a_0 Bool) - (rtp.usr.e08_a_0 Bool) - (rtp.usr.e09_a_0 Bool) - (rtp.usr.e10_a_0 Bool) - (rtp.usr.e11_a_0 Bool) - (rtp.usr.e12_a_0 Bool) - (rtp.usr.X1_a_0 Int) - (rtp.usr.X2_a_0 Int) - (rtp.usr.X3_a_0 Int) - (rtp.usr.X4_a_0 Int) - (rtp.usr.X5_a_0 Int) - (rtp.usr.X6_a_0 Int) - (rtp.usr.X7_a_0 Int) - (rtp.usr.X8_a_0 Int) - (rtp.usr.X9_a_0 Int) - (rtp.usr.erreur_a_0 Bool) - (rtp.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= rtp.usr.X1_a_0 1))) - (and - (= - rtp.usr.X1_a_1 - (ite - rtp.usr.e01_a_1 - (ite X1 (- rtp.usr.X1_a_0 1) rtp.usr.X1_a_0) - rtp.usr.X1_a_0)) - (let - ((X2 Bool (>= rtp.usr.X9_a_0 1))) - (let - ((X3 Bool (>= rtp.usr.X2_a_0 1))) - (and - (= - rtp.usr.X2_a_1 - (ite - rtp.usr.e01_a_1 - (ite X1 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - (ite - rtp.usr.e02_a_1 - (ite X3 (- rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - (ite - rtp.usr.e12_a_1 - (ite X2 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - rtp.usr.X2_a_0)))) - (let - ((X4 Bool (>= rtp.usr.X8_a_0 1))) - (let - ((X5 Bool (>= rtp.usr.X7_a_0 1))) - (let - ((X6 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X7 Bool (>= rtp.usr.X4_a_0 1))) - (and - (= - rtp.usr.X9_a_1 - (ite - rtp.usr.e05_a_1 - (ite X7 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e07_a_1 - (ite X6 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e10_a_1 - (ite X5 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e11_a_1 - (ite X4 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e12_a_1 - (ite X2 (- rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - rtp.usr.X9_a_0)))))) - (let - ((X8 Bool (>= rtp.usr.X4_a_0 1))) - (let - ((X9 Bool (>= rtp.usr.X3_a_0 1))) - (and - (= - rtp.usr.X4_a_1 - (ite - rtp.usr.e03_a_1 - (ite X9 (+ rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - (ite - rtp.usr.e04_a_1 - (ite X8 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - (ite - rtp.usr.e05_a_1 - (ite X7 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - rtp.usr.X4_a_0)))) - (= - rtp.usr.X3_a_1 - (ite - rtp.usr.e02_a_1 - (ite X3 (+ rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) - (ite - rtp.usr.e03_a_1 - (ite X9 (- rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) - rtp.usr.X3_a_0))) - (let - ((X10 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X11 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X12 Bool (>= rtp.usr.X5_a_0 1))) - (and - (= - rtp.usr.X6_a_1 - (ite - rtp.usr.e06_a_1 - (ite X12 (+ rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e07_a_1 - (ite X6 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e08_a_1 - (ite X11 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e09_a_1 - (ite X10 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - rtp.usr.X6_a_0))))) - (= - rtp.usr.X5_a_1 - (ite - rtp.usr.e04_a_1 - (ite X8 (+ rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) - (ite - rtp.usr.e06_a_1 - (ite X12 (- rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) - rtp.usr.X5_a_0))) - (= - rtp.usr.X7_a_1 - (ite - rtp.usr.e08_a_1 - (ite X11 (+ rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) - (ite - rtp.usr.e10_a_1 - (ite X5 (- rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) - rtp.usr.X7_a_0))) - (= - rtp.usr.X8_a_1 - (ite - rtp.usr.e09_a_1 - (ite X10 (+ rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) - (ite - rtp.usr.e11_a_1 - (ite X4 (- rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) - rtp.usr.X8_a_0))) - (= rtp.usr.erreur_a_1 (ite (>= rtp.usr.X1_a_1 2) true false)) - (not rtp.res.init_flag_a_1)))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_9_a_0)) - (and - (= top.usr.OK_a_0 (=> top.res.abs_11_a_0 (not X1))) - (__node_init_rtp_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_9_a_1)) - (and - (= top.usr.OK_a_1 (=> top.res.abs_11_a_1 (not X1))) - (__node_trans_rtp_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_9)) - (and - (= top.usr.OK (=> top.res.abs_11 (not X1))) - (__node_init_rtp_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_10 - top.res.inst_0) - top.res.init_flag)) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Bool top.res.abs_9!)) - (and - (= top.usr.OK! (=> top.res.abs_11! (not X1))) - (__node_trans_rtp_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_1! - top.res.abs_10 - top.res.abs_11 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_10! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_rtp_0 ((rtp.usr.e01_a_0 Bool) (rtp.usr.e02_a_0 Bool) (rtp.usr.e03_a_0 Bool) (rtp.usr.e04_a_0 Bool) (rtp.usr.e05_a_0 Bool) (rtp.usr.e06_a_0 Bool) (rtp.usr.e07_a_0 Bool) (rtp.usr.e08_a_0 Bool) (rtp.usr.e09_a_0 Bool) (rtp.usr.e10_a_0 Bool) (rtp.usr.e11_a_0 Bool) (rtp.usr.e12_a_0 Bool) (rtp.res.nondet_11 Int) (rtp.res.nondet_10 Int) (rtp.res.nondet_9 Int) (rtp.res.nondet_8 Int) (rtp.res.nondet_7 Int) (rtp.res.nondet_6 Int) (rtp.res.nondet_5 Int) (rtp.res.nondet_4 Int) (rtp.res.nondet_3 Int) (rtp.res.nondet_2 Int) (rtp.res.nondet_1 Int) (rtp.res.nondet_0 Int) (rtp.usr.X1_a_0 Int) (rtp.usr.X2_a_0 Int) (rtp.usr.X3_a_0 Int) (rtp.usr.X4_a_0 Int) (rtp.usr.X5_a_0 Int) (rtp.usr.X6_a_0 Int) (rtp.usr.X7_a_0 Int) (rtp.usr.X8_a_0 Int) (rtp.usr.X9_a_0 Int) (rtp.usr.erreur_a_0 Bool) (rtp.res.init_flag_a_0 Bool)) Bool + (and (= rtp.usr.X1_a_0 1) (let ((X1 (let ((X1 rtp.res.nondet_0)) (>= X1 1)))) (and (= rtp.usr.X2_a_0 0) (let ((X2 (let ((X2 rtp.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 rtp.res.nondet_11)) (>= X3 1)))) (and (= rtp.usr.X9_a_0 0) (let ((X4 (let ((X4 rtp.res.nondet_4)) (>= X4 1)))) (and (= rtp.usr.X4_a_0 0) (let ((X5 (let ((X5 rtp.res.nondet_2)) (>= X5 1)))) (and (= rtp.usr.X3_a_0 0) (let ((X6 (let ((X6 rtp.res.nondet_3)) (>= X6 1)))) (let ((X7 (let ((X7 rtp.res.nondet_6)) (>= X7 1)))) (and (= rtp.usr.X6_a_0 0) (let ((X8 (let ((X8 rtp.res.nondet_5)) (>= X8 1)))) (and (= rtp.usr.X5_a_0 0) (let ((X9 (let ((X9 rtp.res.nondet_7)) (>= X9 1)))) (let ((X10 (let ((X10 rtp.res.nondet_8)) (>= X10 1)))) (let ((X11 (let ((X11 rtp.res.nondet_9)) (>= X11 1)))) (and (= rtp.usr.X7_a_0 0) (let ((X12 (let ((X12 rtp.res.nondet_10)) (>= X12 1)))) (and (= rtp.usr.X8_a_0 0) (= rtp.usr.erreur_a_0 (ite (>= rtp.usr.X1_a_0 2) true false)) rtp.res.init_flag_a_0)))))))))))))))))))))) +(define-fun __node_trans_rtp_0 ((rtp.usr.e01_a_1 Bool) (rtp.usr.e02_a_1 Bool) (rtp.usr.e03_a_1 Bool) (rtp.usr.e04_a_1 Bool) (rtp.usr.e05_a_1 Bool) (rtp.usr.e06_a_1 Bool) (rtp.usr.e07_a_1 Bool) (rtp.usr.e08_a_1 Bool) (rtp.usr.e09_a_1 Bool) (rtp.usr.e10_a_1 Bool) (rtp.usr.e11_a_1 Bool) (rtp.usr.e12_a_1 Bool) (rtp.res.nondet_11 Int) (rtp.res.nondet_10 Int) (rtp.res.nondet_9 Int) (rtp.res.nondet_8 Int) (rtp.res.nondet_7 Int) (rtp.res.nondet_6 Int) (rtp.res.nondet_5 Int) (rtp.res.nondet_4 Int) (rtp.res.nondet_3 Int) (rtp.res.nondet_2 Int) (rtp.res.nondet_1 Int) (rtp.res.nondet_0 Int) (rtp.usr.X1_a_1 Int) (rtp.usr.X2_a_1 Int) (rtp.usr.X3_a_1 Int) (rtp.usr.X4_a_1 Int) (rtp.usr.X5_a_1 Int) (rtp.usr.X6_a_1 Int) (rtp.usr.X7_a_1 Int) (rtp.usr.X8_a_1 Int) (rtp.usr.X9_a_1 Int) (rtp.usr.erreur_a_1 Bool) (rtp.res.init_flag_a_1 Bool) (rtp.usr.e01_a_0 Bool) (rtp.usr.e02_a_0 Bool) (rtp.usr.e03_a_0 Bool) (rtp.usr.e04_a_0 Bool) (rtp.usr.e05_a_0 Bool) (rtp.usr.e06_a_0 Bool) (rtp.usr.e07_a_0 Bool) (rtp.usr.e08_a_0 Bool) (rtp.usr.e09_a_0 Bool) (rtp.usr.e10_a_0 Bool) (rtp.usr.e11_a_0 Bool) (rtp.usr.e12_a_0 Bool) (rtp.usr.X1_a_0 Int) (rtp.usr.X2_a_0 Int) (rtp.usr.X3_a_0 Int) (rtp.usr.X4_a_0 Int) (rtp.usr.X5_a_0 Int) (rtp.usr.X6_a_0 Int) (rtp.usr.X7_a_0 Int) (rtp.usr.X8_a_0 Int) (rtp.usr.X9_a_0 Int) (rtp.usr.erreur_a_0 Bool) (rtp.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= rtp.usr.X1_a_0 1))) (and (= rtp.usr.X1_a_1 (ite rtp.usr.e01_a_1 (ite X1 (- rtp.usr.X1_a_0 1) rtp.usr.X1_a_0) rtp.usr.X1_a_0)) (let ((X2 (>= rtp.usr.X9_a_0 1))) (let ((X3 (>= rtp.usr.X2_a_0 1))) (and (= rtp.usr.X2_a_1 (ite rtp.usr.e01_a_1 (ite X1 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) (ite rtp.usr.e02_a_1 (ite X3 (- rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) (ite rtp.usr.e12_a_1 (ite X2 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) rtp.usr.X2_a_0)))) (let ((X4 (>= rtp.usr.X8_a_0 1))) (let ((X5 (>= rtp.usr.X7_a_0 1))) (let ((X6 (>= rtp.usr.X6_a_0 1))) (let ((X7 (>= rtp.usr.X4_a_0 1))) (and (= rtp.usr.X9_a_1 (ite rtp.usr.e05_a_1 (ite X7 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e07_a_1 (ite X6 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e10_a_1 (ite X5 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e11_a_1 (ite X4 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e12_a_1 (ite X2 (- rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) rtp.usr.X9_a_0)))))) (let ((X8 (>= rtp.usr.X4_a_0 1))) (let ((X9 (>= rtp.usr.X3_a_0 1))) (and (= rtp.usr.X4_a_1 (ite rtp.usr.e03_a_1 (ite X9 (+ rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) (ite rtp.usr.e04_a_1 (ite X8 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) (ite rtp.usr.e05_a_1 (ite X7 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) rtp.usr.X4_a_0)))) (= rtp.usr.X3_a_1 (ite rtp.usr.e02_a_1 (ite X3 (+ rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) (ite rtp.usr.e03_a_1 (ite X9 (- rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) rtp.usr.X3_a_0))) (let ((X10 (>= rtp.usr.X6_a_0 1))) (let ((X11 (>= rtp.usr.X6_a_0 1))) (let ((X12 (>= rtp.usr.X5_a_0 1))) (and (= rtp.usr.X6_a_1 (ite rtp.usr.e06_a_1 (ite X12 (+ rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e07_a_1 (ite X6 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e08_a_1 (ite X11 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e09_a_1 (ite X10 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) rtp.usr.X6_a_0))))) (= rtp.usr.X5_a_1 (ite rtp.usr.e04_a_1 (ite X8 (+ rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) (ite rtp.usr.e06_a_1 (ite X12 (- rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) rtp.usr.X5_a_0))) (= rtp.usr.X7_a_1 (ite rtp.usr.e08_a_1 (ite X11 (+ rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) (ite rtp.usr.e10_a_1 (ite X5 (- rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) rtp.usr.X7_a_0))) (= rtp.usr.X8_a_1 (ite rtp.usr.e09_a_1 (ite X10 (+ rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) (ite rtp.usr.e11_a_1 (ite X4 (- rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) rtp.usr.X8_a_0))) (= rtp.usr.erreur_a_1 (ite (>= rtp.usr.X1_a_1 2) true false)) (not rtp.res.init_flag_a_1))))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_9_a_0)) (and (= top.usr.OK_a_0 (=> top.res.abs_11_a_0 (not X1))) (__node_init_rtp_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_9_a_1)) (and (= top.usr.OK_a_1 (=> top.res.abs_11_a_1 (not X1))) (__node_trans_rtp_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_9)) (and (= top.usr.OK (=> top.res.abs_11 (not X1))) (__node_init_rtp_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_10 top.res.inst_0) top.res.init_flag))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_9!)) (and (= top.usr.OK! (=> top.res.abs_11! (not X1))) (__node_trans_rtp_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_1! top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_10! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_10 top.res.inst_0) (not top.res.init_flag!))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/rtp_10.sl b/benchmarks/LIA/Lustre/rtp_10.sl index 74b8413..ffcfc64 100644 --- a/benchmarks/LIA/Lustre/rtp_10.sl +++ b/benchmarks/LIA/Lustre/rtp_10.sl @@ -1,1659 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_rtp_0 ( - (rtp.usr.e01_a_0 Bool) - (rtp.usr.e02_a_0 Bool) - (rtp.usr.e03_a_0 Bool) - (rtp.usr.e04_a_0 Bool) - (rtp.usr.e05_a_0 Bool) - (rtp.usr.e06_a_0 Bool) - (rtp.usr.e07_a_0 Bool) - (rtp.usr.e08_a_0 Bool) - (rtp.usr.e09_a_0 Bool) - (rtp.usr.e10_a_0 Bool) - (rtp.usr.e11_a_0 Bool) - (rtp.usr.e12_a_0 Bool) - (rtp.res.nondet_11 Int) - (rtp.res.nondet_10 Int) - (rtp.res.nondet_9 Int) - (rtp.res.nondet_8 Int) - (rtp.res.nondet_7 Int) - (rtp.res.nondet_6 Int) - (rtp.res.nondet_5 Int) - (rtp.res.nondet_4 Int) - (rtp.res.nondet_3 Int) - (rtp.res.nondet_2 Int) - (rtp.res.nondet_1 Int) - (rtp.res.nondet_0 Int) - (rtp.usr.X1_a_0 Int) - (rtp.usr.X2_a_0 Int) - (rtp.usr.X3_a_0 Int) - (rtp.usr.X4_a_0 Int) - (rtp.usr.X5_a_0 Int) - (rtp.usr.X6_a_0 Int) - (rtp.usr.X7_a_0 Int) - (rtp.usr.X8_a_0 Int) - (rtp.usr.X9_a_0 Int) - (rtp.usr.erreur_a_0 Bool) - (rtp.res.init_flag_a_0 Bool) - ) Bool - - (and - (= rtp.usr.X1_a_0 1) - (let - ((X1 Bool (let ((X1 Int rtp.res.nondet_0)) (>= X1 1)))) - (and - (= rtp.usr.X2_a_0 0) - (let - ((X2 Bool (let ((X2 Int rtp.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int rtp.res.nondet_11)) (>= X3 1)))) - (and - (= rtp.usr.X9_a_0 0) - (let - ((X4 Bool (let ((X4 Int rtp.res.nondet_4)) (>= X4 1)))) - (and - (= rtp.usr.X4_a_0 0) - (let - ((X5 Bool (let ((X5 Int rtp.res.nondet_2)) (>= X5 1)))) - (and - (= rtp.usr.X3_a_0 0) - (let - ((X6 Bool (let ((X6 Int rtp.res.nondet_3)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int rtp.res.nondet_6)) (>= X7 1)))) - (and - (= rtp.usr.X6_a_0 0) - (let - ((X8 Bool (let ((X8 Int rtp.res.nondet_5)) (>= X8 1)))) - (and - (= rtp.usr.X5_a_0 0) - (let - ((X9 Bool (let ((X9 Int rtp.res.nondet_7)) (>= X9 1)))) - (let - ((X10 Bool (let ((X10 Int rtp.res.nondet_8)) (>= X10 1)))) - (let - ((X11 Bool (let ((X11 Int rtp.res.nondet_9)) (>= X11 1)))) - (and - (= rtp.usr.X7_a_0 0) - (let - ((X12 - Bool (let ((X12 Int rtp.res.nondet_10)) (>= X12 1)))) - (and - (= rtp.usr.X8_a_0 0) - (= - rtp.usr.erreur_a_0 - (ite (>= rtp.usr.X1_a_0 2) true false)) - rtp.res.init_flag_a_0))))))))))))))))))))) -) - -(define-fun - __node_trans_rtp_0 ( - (rtp.usr.e01_a_1 Bool) - (rtp.usr.e02_a_1 Bool) - (rtp.usr.e03_a_1 Bool) - (rtp.usr.e04_a_1 Bool) - (rtp.usr.e05_a_1 Bool) - (rtp.usr.e06_a_1 Bool) - (rtp.usr.e07_a_1 Bool) - (rtp.usr.e08_a_1 Bool) - (rtp.usr.e09_a_1 Bool) - (rtp.usr.e10_a_1 Bool) - (rtp.usr.e11_a_1 Bool) - (rtp.usr.e12_a_1 Bool) - (rtp.res.nondet_11 Int) - (rtp.res.nondet_10 Int) - (rtp.res.nondet_9 Int) - (rtp.res.nondet_8 Int) - (rtp.res.nondet_7 Int) - (rtp.res.nondet_6 Int) - (rtp.res.nondet_5 Int) - (rtp.res.nondet_4 Int) - (rtp.res.nondet_3 Int) - (rtp.res.nondet_2 Int) - (rtp.res.nondet_1 Int) - (rtp.res.nondet_0 Int) - (rtp.usr.X1_a_1 Int) - (rtp.usr.X2_a_1 Int) - (rtp.usr.X3_a_1 Int) - (rtp.usr.X4_a_1 Int) - (rtp.usr.X5_a_1 Int) - (rtp.usr.X6_a_1 Int) - (rtp.usr.X7_a_1 Int) - (rtp.usr.X8_a_1 Int) - (rtp.usr.X9_a_1 Int) - (rtp.usr.erreur_a_1 Bool) - (rtp.res.init_flag_a_1 Bool) - (rtp.usr.e01_a_0 Bool) - (rtp.usr.e02_a_0 Bool) - (rtp.usr.e03_a_0 Bool) - (rtp.usr.e04_a_0 Bool) - (rtp.usr.e05_a_0 Bool) - (rtp.usr.e06_a_0 Bool) - (rtp.usr.e07_a_0 Bool) - (rtp.usr.e08_a_0 Bool) - (rtp.usr.e09_a_0 Bool) - (rtp.usr.e10_a_0 Bool) - (rtp.usr.e11_a_0 Bool) - (rtp.usr.e12_a_0 Bool) - (rtp.usr.X1_a_0 Int) - (rtp.usr.X2_a_0 Int) - (rtp.usr.X3_a_0 Int) - (rtp.usr.X4_a_0 Int) - (rtp.usr.X5_a_0 Int) - (rtp.usr.X6_a_0 Int) - (rtp.usr.X7_a_0 Int) - (rtp.usr.X8_a_0 Int) - (rtp.usr.X9_a_0 Int) - (rtp.usr.erreur_a_0 Bool) - (rtp.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= rtp.usr.X1_a_0 1))) - (and - (= - rtp.usr.X1_a_1 - (ite - rtp.usr.e01_a_1 - (ite X1 (- rtp.usr.X1_a_0 1) rtp.usr.X1_a_0) - rtp.usr.X1_a_0)) - (let - ((X2 Bool (>= rtp.usr.X9_a_0 1))) - (let - ((X3 Bool (>= rtp.usr.X2_a_0 1))) - (and - (= - rtp.usr.X2_a_1 - (ite - rtp.usr.e01_a_1 - (ite X1 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - (ite - rtp.usr.e02_a_1 - (ite X3 (- rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - (ite - rtp.usr.e12_a_1 - (ite X2 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - rtp.usr.X2_a_0)))) - (let - ((X4 Bool (>= rtp.usr.X8_a_0 1))) - (let - ((X5 Bool (>= rtp.usr.X7_a_0 1))) - (let - ((X6 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X7 Bool (>= rtp.usr.X4_a_0 1))) - (and - (= - rtp.usr.X9_a_1 - (ite - rtp.usr.e05_a_1 - (ite X7 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e07_a_1 - (ite X6 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e10_a_1 - (ite X5 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e11_a_1 - (ite X4 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e12_a_1 - (ite X2 (- rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - rtp.usr.X9_a_0)))))) - (let - ((X8 Bool (>= rtp.usr.X4_a_0 1))) - (let - ((X9 Bool (>= rtp.usr.X3_a_0 1))) - (and - (= - rtp.usr.X4_a_1 - (ite - rtp.usr.e03_a_1 - (ite X9 (+ rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - (ite - rtp.usr.e04_a_1 - (ite X8 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - (ite - rtp.usr.e05_a_1 - (ite X7 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - rtp.usr.X4_a_0)))) - (= - rtp.usr.X3_a_1 - (ite - rtp.usr.e02_a_1 - (ite X3 (+ rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) - (ite - rtp.usr.e03_a_1 - (ite X9 (- rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) - rtp.usr.X3_a_0))) - (let - ((X10 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X11 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X12 Bool (>= rtp.usr.X5_a_0 1))) - (and - (= - rtp.usr.X6_a_1 - (ite - rtp.usr.e06_a_1 - (ite X12 (+ rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e07_a_1 - (ite X6 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e08_a_1 - (ite X11 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e09_a_1 - (ite X10 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - rtp.usr.X6_a_0))))) - (= - rtp.usr.X5_a_1 - (ite - rtp.usr.e04_a_1 - (ite X8 (+ rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) - (ite - rtp.usr.e06_a_1 - (ite X12 (- rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) - rtp.usr.X5_a_0))) - (= - rtp.usr.X7_a_1 - (ite - rtp.usr.e08_a_1 - (ite X11 (+ rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) - (ite - rtp.usr.e10_a_1 - (ite X5 (- rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) - rtp.usr.X7_a_0))) - (= - rtp.usr.X8_a_1 - (ite - rtp.usr.e09_a_1 - (ite X10 (+ rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) - (ite - rtp.usr.e11_a_1 - (ite X4 (- rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) - rtp.usr.X8_a_0))) - (= rtp.usr.erreur_a_1 (ite (>= rtp.usr.X1_a_1 2) true false)) - (not rtp.res.init_flag_a_1)))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.abs_12_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_7_a_0)) - (and - (= top.res.abs_11_a_0 (and top.res.abs_10_a_0 (< X1 32767))) - (let - ((X2 Bool top.res.abs_12_a_0)) - (and - (= top.usr.OK_a_0 (=> X2 (>= X1 0))) - (__node_init_rtp_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.abs_12_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.abs_12_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_7_a_1)) - (and - (= top.res.abs_11_a_1 (and top.res.abs_10_a_1 (< X1 32767))) - (let - ((X2 Bool top.res.abs_12_a_1)) - (and - (= top.usr.OK_a_1 (=> X2 (>= X1 0))) - (__node_trans_rtp_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_11_a_1 - top.res.abs_12_a_1 - top.res.inst_1_a_1 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.abs_12 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_7)) - (and - (= top.res.abs_11 (and top.res.abs_10 (< X1 32767))) - (let - ((X2 Bool top.res.abs_12)) - (and - (= top.usr.OK (=> X2 (>= X1 0))) - (__node_init_rtp_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_11 top.res.abs_12 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_10 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.abs_12! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Int top.res.abs_7!)) - (and - (= top.res.abs_11! (and top.res.abs_10! (< X1 32767))) - (let - ((X2 Bool top.res.abs_12!)) - (and - (= top.usr.OK! (=> X2 (>= X1 0))) - (__node_trans_rtp_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_11! - top.res.abs_12! - top.res.inst_1! - top.res.abs_11 - top.res.abs_12 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_10! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_rtp_0 ((rtp.usr.e01_a_0 Bool) (rtp.usr.e02_a_0 Bool) (rtp.usr.e03_a_0 Bool) (rtp.usr.e04_a_0 Bool) (rtp.usr.e05_a_0 Bool) (rtp.usr.e06_a_0 Bool) (rtp.usr.e07_a_0 Bool) (rtp.usr.e08_a_0 Bool) (rtp.usr.e09_a_0 Bool) (rtp.usr.e10_a_0 Bool) (rtp.usr.e11_a_0 Bool) (rtp.usr.e12_a_0 Bool) (rtp.res.nondet_11 Int) (rtp.res.nondet_10 Int) (rtp.res.nondet_9 Int) (rtp.res.nondet_8 Int) (rtp.res.nondet_7 Int) (rtp.res.nondet_6 Int) (rtp.res.nondet_5 Int) (rtp.res.nondet_4 Int) (rtp.res.nondet_3 Int) (rtp.res.nondet_2 Int) (rtp.res.nondet_1 Int) (rtp.res.nondet_0 Int) (rtp.usr.X1_a_0 Int) (rtp.usr.X2_a_0 Int) (rtp.usr.X3_a_0 Int) (rtp.usr.X4_a_0 Int) (rtp.usr.X5_a_0 Int) (rtp.usr.X6_a_0 Int) (rtp.usr.X7_a_0 Int) (rtp.usr.X8_a_0 Int) (rtp.usr.X9_a_0 Int) (rtp.usr.erreur_a_0 Bool) (rtp.res.init_flag_a_0 Bool)) Bool + (and (= rtp.usr.X1_a_0 1) (let ((X1 (let ((X1 rtp.res.nondet_0)) (>= X1 1)))) (and (= rtp.usr.X2_a_0 0) (let ((X2 (let ((X2 rtp.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 rtp.res.nondet_11)) (>= X3 1)))) (and (= rtp.usr.X9_a_0 0) (let ((X4 (let ((X4 rtp.res.nondet_4)) (>= X4 1)))) (and (= rtp.usr.X4_a_0 0) (let ((X5 (let ((X5 rtp.res.nondet_2)) (>= X5 1)))) (and (= rtp.usr.X3_a_0 0) (let ((X6 (let ((X6 rtp.res.nondet_3)) (>= X6 1)))) (let ((X7 (let ((X7 rtp.res.nondet_6)) (>= X7 1)))) (and (= rtp.usr.X6_a_0 0) (let ((X8 (let ((X8 rtp.res.nondet_5)) (>= X8 1)))) (and (= rtp.usr.X5_a_0 0) (let ((X9 (let ((X9 rtp.res.nondet_7)) (>= X9 1)))) (let ((X10 (let ((X10 rtp.res.nondet_8)) (>= X10 1)))) (let ((X11 (let ((X11 rtp.res.nondet_9)) (>= X11 1)))) (and (= rtp.usr.X7_a_0 0) (let ((X12 (let ((X12 rtp.res.nondet_10)) (>= X12 1)))) (and (= rtp.usr.X8_a_0 0) (= rtp.usr.erreur_a_0 (ite (>= rtp.usr.X1_a_0 2) true false)) rtp.res.init_flag_a_0)))))))))))))))))))))) +(define-fun __node_trans_rtp_0 ((rtp.usr.e01_a_1 Bool) (rtp.usr.e02_a_1 Bool) (rtp.usr.e03_a_1 Bool) (rtp.usr.e04_a_1 Bool) (rtp.usr.e05_a_1 Bool) (rtp.usr.e06_a_1 Bool) (rtp.usr.e07_a_1 Bool) (rtp.usr.e08_a_1 Bool) (rtp.usr.e09_a_1 Bool) (rtp.usr.e10_a_1 Bool) (rtp.usr.e11_a_1 Bool) (rtp.usr.e12_a_1 Bool) (rtp.res.nondet_11 Int) (rtp.res.nondet_10 Int) (rtp.res.nondet_9 Int) (rtp.res.nondet_8 Int) (rtp.res.nondet_7 Int) (rtp.res.nondet_6 Int) (rtp.res.nondet_5 Int) (rtp.res.nondet_4 Int) (rtp.res.nondet_3 Int) (rtp.res.nondet_2 Int) (rtp.res.nondet_1 Int) (rtp.res.nondet_0 Int) (rtp.usr.X1_a_1 Int) (rtp.usr.X2_a_1 Int) (rtp.usr.X3_a_1 Int) (rtp.usr.X4_a_1 Int) (rtp.usr.X5_a_1 Int) (rtp.usr.X6_a_1 Int) (rtp.usr.X7_a_1 Int) (rtp.usr.X8_a_1 Int) (rtp.usr.X9_a_1 Int) (rtp.usr.erreur_a_1 Bool) (rtp.res.init_flag_a_1 Bool) (rtp.usr.e01_a_0 Bool) (rtp.usr.e02_a_0 Bool) (rtp.usr.e03_a_0 Bool) (rtp.usr.e04_a_0 Bool) (rtp.usr.e05_a_0 Bool) (rtp.usr.e06_a_0 Bool) (rtp.usr.e07_a_0 Bool) (rtp.usr.e08_a_0 Bool) (rtp.usr.e09_a_0 Bool) (rtp.usr.e10_a_0 Bool) (rtp.usr.e11_a_0 Bool) (rtp.usr.e12_a_0 Bool) (rtp.usr.X1_a_0 Int) (rtp.usr.X2_a_0 Int) (rtp.usr.X3_a_0 Int) (rtp.usr.X4_a_0 Int) (rtp.usr.X5_a_0 Int) (rtp.usr.X6_a_0 Int) (rtp.usr.X7_a_0 Int) (rtp.usr.X8_a_0 Int) (rtp.usr.X9_a_0 Int) (rtp.usr.erreur_a_0 Bool) (rtp.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= rtp.usr.X1_a_0 1))) (and (= rtp.usr.X1_a_1 (ite rtp.usr.e01_a_1 (ite X1 (- rtp.usr.X1_a_0 1) rtp.usr.X1_a_0) rtp.usr.X1_a_0)) (let ((X2 (>= rtp.usr.X9_a_0 1))) (let ((X3 (>= rtp.usr.X2_a_0 1))) (and (= rtp.usr.X2_a_1 (ite rtp.usr.e01_a_1 (ite X1 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) (ite rtp.usr.e02_a_1 (ite X3 (- rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) (ite rtp.usr.e12_a_1 (ite X2 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) rtp.usr.X2_a_0)))) (let ((X4 (>= rtp.usr.X8_a_0 1))) (let ((X5 (>= rtp.usr.X7_a_0 1))) (let ((X6 (>= rtp.usr.X6_a_0 1))) (let ((X7 (>= rtp.usr.X4_a_0 1))) (and (= rtp.usr.X9_a_1 (ite rtp.usr.e05_a_1 (ite X7 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e07_a_1 (ite X6 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e10_a_1 (ite X5 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e11_a_1 (ite X4 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e12_a_1 (ite X2 (- rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) rtp.usr.X9_a_0)))))) (let ((X8 (>= rtp.usr.X4_a_0 1))) (let ((X9 (>= rtp.usr.X3_a_0 1))) (and (= rtp.usr.X4_a_1 (ite rtp.usr.e03_a_1 (ite X9 (+ rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) (ite rtp.usr.e04_a_1 (ite X8 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) (ite rtp.usr.e05_a_1 (ite X7 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) rtp.usr.X4_a_0)))) (= rtp.usr.X3_a_1 (ite rtp.usr.e02_a_1 (ite X3 (+ rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) (ite rtp.usr.e03_a_1 (ite X9 (- rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) rtp.usr.X3_a_0))) (let ((X10 (>= rtp.usr.X6_a_0 1))) (let ((X11 (>= rtp.usr.X6_a_0 1))) (let ((X12 (>= rtp.usr.X5_a_0 1))) (and (= rtp.usr.X6_a_1 (ite rtp.usr.e06_a_1 (ite X12 (+ rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e07_a_1 (ite X6 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e08_a_1 (ite X11 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e09_a_1 (ite X10 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) rtp.usr.X6_a_0))))) (= rtp.usr.X5_a_1 (ite rtp.usr.e04_a_1 (ite X8 (+ rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) (ite rtp.usr.e06_a_1 (ite X12 (- rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) rtp.usr.X5_a_0))) (= rtp.usr.X7_a_1 (ite rtp.usr.e08_a_1 (ite X11 (+ rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) (ite rtp.usr.e10_a_1 (ite X5 (- rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) rtp.usr.X7_a_0))) (= rtp.usr.X8_a_1 (ite rtp.usr.e09_a_1 (ite X10 (+ rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) (ite rtp.usr.e11_a_1 (ite X4 (- rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) rtp.usr.X8_a_0))) (= rtp.usr.erreur_a_1 (ite (>= rtp.usr.X1_a_1 2) true false)) (not rtp.res.init_flag_a_1))))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.abs_12_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_7_a_0)) (and (= top.res.abs_11_a_0 (and top.res.abs_10_a_0 (< X1 32767))) (let ((X2 top.res.abs_12_a_0)) (and (= top.usr.OK_a_0 (=> X2 (>= X1 0))) (__node_init_rtp_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.abs_12_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.abs_12_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_7_a_1)) (and (= top.res.abs_11_a_1 (and top.res.abs_10_a_1 (< X1 32767))) (let ((X2 top.res.abs_12_a_1)) (and (= top.usr.OK_a_1 (=> X2 (>= X1 0))) (__node_trans_rtp_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_11_a_1 top.res.abs_12_a_1 top.res.inst_1_a_1 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_7)) (and (= top.res.abs_11 (and top.res.abs_10 (< X1 32767))) (let ((X2 top.res.abs_12)) (and (= top.usr.OK (=> X2 (>= X1 0))) (__node_init_rtp_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_11 top.res.abs_12 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_10 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.abs_12! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_7!)) (and (= top.res.abs_11! (and top.res.abs_10! (< X1 32767))) (let ((X2 top.res.abs_12!)) (and (= top.usr.OK! (=> X2 (>= X1 0))) (__node_trans_rtp_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_11! top.res.abs_12! top.res.inst_1! top.res.abs_11 top.res.abs_12 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_10! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_10 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/rtp_10_e7_106_e7_2564.sl b/benchmarks/LIA/Lustre/rtp_10_e7_106_e7_2564.sl index 62f8625..9902f67 100644 --- a/benchmarks/LIA/Lustre/rtp_10_e7_106_e7_2564.sl +++ b/benchmarks/LIA/Lustre/rtp_10_e7_106_e7_2564.sl @@ -1,1659 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (not excludes12.usr.X1_a_0) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (not excludes12.usr.X1_a_1) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_rtp_0 ( - (rtp.usr.e01_a_0 Bool) - (rtp.usr.e02_a_0 Bool) - (rtp.usr.e03_a_0 Bool) - (rtp.usr.e04_a_0 Bool) - (rtp.usr.e05_a_0 Bool) - (rtp.usr.e06_a_0 Bool) - (rtp.usr.e07_a_0 Bool) - (rtp.usr.e08_a_0 Bool) - (rtp.usr.e09_a_0 Bool) - (rtp.usr.e10_a_0 Bool) - (rtp.usr.e11_a_0 Bool) - (rtp.usr.e12_a_0 Bool) - (rtp.res.nondet_11 Int) - (rtp.res.nondet_10 Int) - (rtp.res.nondet_9 Int) - (rtp.res.nondet_8 Int) - (rtp.res.nondet_7 Int) - (rtp.res.nondet_6 Int) - (rtp.res.nondet_5 Int) - (rtp.res.nondet_4 Int) - (rtp.res.nondet_3 Int) - (rtp.res.nondet_2 Int) - (rtp.res.nondet_1 Int) - (rtp.res.nondet_0 Int) - (rtp.usr.X1_a_0 Int) - (rtp.usr.X2_a_0 Int) - (rtp.usr.X3_a_0 Int) - (rtp.usr.X4_a_0 Int) - (rtp.usr.X5_a_0 Int) - (rtp.usr.X6_a_0 Int) - (rtp.usr.X7_a_0 Int) - (rtp.usr.X8_a_0 Int) - (rtp.usr.X9_a_0 Int) - (rtp.usr.erreur_a_0 Bool) - (rtp.res.init_flag_a_0 Bool) - ) Bool - - (and - (= rtp.usr.X1_a_0 1) - (let - ((X1 Bool (let ((X1 Int rtp.res.nondet_0)) (>= X1 1)))) - (and - (= rtp.usr.X2_a_0 0) - (let - ((X2 Bool (let ((X2 Int rtp.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int rtp.res.nondet_11)) (>= X3 1)))) - (and - (= rtp.usr.X9_a_0 0) - (let - ((X4 Bool (let ((X4 Int rtp.res.nondet_4)) (>= X4 1)))) - (and - (= rtp.usr.X4_a_0 0) - (let - ((X5 Bool (let ((X5 Int rtp.res.nondet_2)) (>= X5 1)))) - (and - (= rtp.usr.X3_a_0 0) - (let - ((X6 Bool (let ((X6 Int rtp.res.nondet_3)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int rtp.res.nondet_6)) (>= X7 1)))) - (and - (= rtp.usr.X6_a_0 0) - (let - ((X8 Bool (let ((X8 Int rtp.res.nondet_5)) (>= X8 1)))) - (and - (= rtp.usr.X5_a_0 0) - (let - ((X9 Bool (let ((X9 Int rtp.res.nondet_7)) (>= X9 1)))) - (let - ((X10 Bool (let ((X10 Int rtp.res.nondet_8)) (>= X10 1)))) - (let - ((X11 Bool (let ((X11 Int rtp.res.nondet_9)) (>= X11 1)))) - (and - (= rtp.usr.X7_a_0 0) - (let - ((X12 - Bool (let ((X12 Int rtp.res.nondet_10)) (>= X12 1)))) - (and - (= rtp.usr.X8_a_0 0) - (= - rtp.usr.erreur_a_0 - (ite (>= rtp.usr.X1_a_0 2) true false)) - rtp.res.init_flag_a_0))))))))))))))))))))) -) - -(define-fun - __node_trans_rtp_0 ( - (rtp.usr.e01_a_1 Bool) - (rtp.usr.e02_a_1 Bool) - (rtp.usr.e03_a_1 Bool) - (rtp.usr.e04_a_1 Bool) - (rtp.usr.e05_a_1 Bool) - (rtp.usr.e06_a_1 Bool) - (rtp.usr.e07_a_1 Bool) - (rtp.usr.e08_a_1 Bool) - (rtp.usr.e09_a_1 Bool) - (rtp.usr.e10_a_1 Bool) - (rtp.usr.e11_a_1 Bool) - (rtp.usr.e12_a_1 Bool) - (rtp.res.nondet_11 Int) - (rtp.res.nondet_10 Int) - (rtp.res.nondet_9 Int) - (rtp.res.nondet_8 Int) - (rtp.res.nondet_7 Int) - (rtp.res.nondet_6 Int) - (rtp.res.nondet_5 Int) - (rtp.res.nondet_4 Int) - (rtp.res.nondet_3 Int) - (rtp.res.nondet_2 Int) - (rtp.res.nondet_1 Int) - (rtp.res.nondet_0 Int) - (rtp.usr.X1_a_1 Int) - (rtp.usr.X2_a_1 Int) - (rtp.usr.X3_a_1 Int) - (rtp.usr.X4_a_1 Int) - (rtp.usr.X5_a_1 Int) - (rtp.usr.X6_a_1 Int) - (rtp.usr.X7_a_1 Int) - (rtp.usr.X8_a_1 Int) - (rtp.usr.X9_a_1 Int) - (rtp.usr.erreur_a_1 Bool) - (rtp.res.init_flag_a_1 Bool) - (rtp.usr.e01_a_0 Bool) - (rtp.usr.e02_a_0 Bool) - (rtp.usr.e03_a_0 Bool) - (rtp.usr.e04_a_0 Bool) - (rtp.usr.e05_a_0 Bool) - (rtp.usr.e06_a_0 Bool) - (rtp.usr.e07_a_0 Bool) - (rtp.usr.e08_a_0 Bool) - (rtp.usr.e09_a_0 Bool) - (rtp.usr.e10_a_0 Bool) - (rtp.usr.e11_a_0 Bool) - (rtp.usr.e12_a_0 Bool) - (rtp.usr.X1_a_0 Int) - (rtp.usr.X2_a_0 Int) - (rtp.usr.X3_a_0 Int) - (rtp.usr.X4_a_0 Int) - (rtp.usr.X5_a_0 Int) - (rtp.usr.X6_a_0 Int) - (rtp.usr.X7_a_0 Int) - (rtp.usr.X8_a_0 Int) - (rtp.usr.X9_a_0 Int) - (rtp.usr.erreur_a_0 Bool) - (rtp.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= rtp.usr.X1_a_0 1))) - (and - (= - rtp.usr.X1_a_1 - (ite - rtp.usr.e01_a_1 - (ite X1 (- rtp.usr.X1_a_0 1) rtp.usr.X1_a_0) - rtp.usr.X1_a_0)) - (let - ((X2 Bool (>= rtp.usr.X9_a_0 1))) - (let - ((X3 Bool (>= rtp.usr.X2_a_0 1))) - (and - (= - rtp.usr.X2_a_1 - (ite - rtp.usr.e01_a_1 - (ite X1 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - (ite - rtp.usr.e02_a_1 - (ite X3 (- rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - (ite - rtp.usr.e12_a_1 - (ite X2 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - rtp.usr.X2_a_0)))) - (let - ((X4 Bool (>= rtp.usr.X8_a_0 1))) - (let - ((X5 Bool (>= rtp.usr.X7_a_0 1))) - (let - ((X6 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X7 Bool (>= rtp.usr.X4_a_0 1))) - (and - (= - rtp.usr.X9_a_1 - (ite - rtp.usr.e05_a_1 - (ite X7 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e07_a_1 - (ite X6 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e10_a_1 - (ite X5 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e11_a_1 - (ite X4 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e12_a_1 - (ite X2 (- rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - rtp.usr.X9_a_0)))))) - (let - ((X8 Bool (>= rtp.usr.X4_a_0 1))) - (let - ((X9 Bool (>= rtp.usr.X3_a_0 1))) - (and - (= - rtp.usr.X4_a_1 - (ite - rtp.usr.e03_a_1 - (ite X9 (+ rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - (ite - rtp.usr.e04_a_1 - (ite X8 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - (ite - rtp.usr.e05_a_1 - (ite X7 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - rtp.usr.X4_a_0)))) - (= - rtp.usr.X3_a_1 - (ite - rtp.usr.e02_a_1 - (ite X3 (+ rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) - (ite - rtp.usr.e03_a_1 - (ite X9 (- rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) - rtp.usr.X3_a_0))) - (let - ((X10 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X11 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X12 Bool (>= rtp.usr.X5_a_0 1))) - (and - (= - rtp.usr.X6_a_1 - (ite - rtp.usr.e06_a_1 - (ite X12 (+ rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e07_a_1 - (ite X6 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e08_a_1 - (ite X11 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e09_a_1 - (ite X10 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - rtp.usr.X6_a_0))))) - (= - rtp.usr.X5_a_1 - (ite - rtp.usr.e04_a_1 - (ite X8 (+ rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) - (ite - rtp.usr.e06_a_1 - (ite X12 (- rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) - rtp.usr.X5_a_0))) - (= - rtp.usr.X7_a_1 - (ite - rtp.usr.e08_a_1 - (ite X11 (+ rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) - (ite - rtp.usr.e10_a_1 - (ite X5 (- rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) - rtp.usr.X7_a_0))) - (= - rtp.usr.X8_a_1 - (ite - rtp.usr.e09_a_1 - (ite X10 (+ rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) - (ite - rtp.usr.e11_a_1 - (ite X4 (- rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) - rtp.usr.X8_a_0))) - (= rtp.usr.erreur_a_1 (ite (>= rtp.usr.X1_a_1 2) true false)) - (not rtp.res.init_flag_a_1)))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.abs_12_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_7_a_0)) - (and - (= top.res.abs_11_a_0 (and top.res.abs_10_a_0 (< X1 32767))) - (let - ((X2 Bool top.res.abs_12_a_0)) - (and - (= top.usr.OK_a_0 (=> X2 (>= X1 0))) - (__node_init_rtp_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.abs_12_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.abs_12_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_7_a_1)) - (and - (= top.res.abs_11_a_1 (and top.res.abs_10_a_1 (< X1 32767))) - (let - ((X2 Bool top.res.abs_12_a_1)) - (and - (= top.usr.OK_a_1 (=> X2 (>= X1 0))) - (__node_trans_rtp_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_11_a_1 - top.res.abs_12_a_1 - top.res.inst_1_a_1 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.abs_12 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_7)) - (and - (= top.res.abs_11 (and top.res.abs_10 (< X1 32767))) - (let - ((X2 Bool top.res.abs_12)) - (and - (= top.usr.OK (=> X2 (>= X1 0))) - (__node_init_rtp_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_11 top.res.abs_12 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_10 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.abs_12! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Int top.res.abs_7!)) - (and - (= top.res.abs_11! (and top.res.abs_10! (< X1 32767))) - (let - ((X2 Bool top.res.abs_12!)) - (and - (= top.usr.OK! (=> X2 (>= X1 0))) - (__node_trans_rtp_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_11! - top.res.abs_12! - top.res.inst_1! - top.res.abs_11 - top.res.abs_12 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_10! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (or (not excludes12.usr.X1_a_0) (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (or (not excludes12.usr.X1_a_1) (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_rtp_0 ((rtp.usr.e01_a_0 Bool) (rtp.usr.e02_a_0 Bool) (rtp.usr.e03_a_0 Bool) (rtp.usr.e04_a_0 Bool) (rtp.usr.e05_a_0 Bool) (rtp.usr.e06_a_0 Bool) (rtp.usr.e07_a_0 Bool) (rtp.usr.e08_a_0 Bool) (rtp.usr.e09_a_0 Bool) (rtp.usr.e10_a_0 Bool) (rtp.usr.e11_a_0 Bool) (rtp.usr.e12_a_0 Bool) (rtp.res.nondet_11 Int) (rtp.res.nondet_10 Int) (rtp.res.nondet_9 Int) (rtp.res.nondet_8 Int) (rtp.res.nondet_7 Int) (rtp.res.nondet_6 Int) (rtp.res.nondet_5 Int) (rtp.res.nondet_4 Int) (rtp.res.nondet_3 Int) (rtp.res.nondet_2 Int) (rtp.res.nondet_1 Int) (rtp.res.nondet_0 Int) (rtp.usr.X1_a_0 Int) (rtp.usr.X2_a_0 Int) (rtp.usr.X3_a_0 Int) (rtp.usr.X4_a_0 Int) (rtp.usr.X5_a_0 Int) (rtp.usr.X6_a_0 Int) (rtp.usr.X7_a_0 Int) (rtp.usr.X8_a_0 Int) (rtp.usr.X9_a_0 Int) (rtp.usr.erreur_a_0 Bool) (rtp.res.init_flag_a_0 Bool)) Bool + (and (= rtp.usr.X1_a_0 1) (let ((X1 (let ((X1 rtp.res.nondet_0)) (>= X1 1)))) (and (= rtp.usr.X2_a_0 0) (let ((X2 (let ((X2 rtp.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 rtp.res.nondet_11)) (>= X3 1)))) (and (= rtp.usr.X9_a_0 0) (let ((X4 (let ((X4 rtp.res.nondet_4)) (>= X4 1)))) (and (= rtp.usr.X4_a_0 0) (let ((X5 (let ((X5 rtp.res.nondet_2)) (>= X5 1)))) (and (= rtp.usr.X3_a_0 0) (let ((X6 (let ((X6 rtp.res.nondet_3)) (>= X6 1)))) (let ((X7 (let ((X7 rtp.res.nondet_6)) (>= X7 1)))) (and (= rtp.usr.X6_a_0 0) (let ((X8 (let ((X8 rtp.res.nondet_5)) (>= X8 1)))) (and (= rtp.usr.X5_a_0 0) (let ((X9 (let ((X9 rtp.res.nondet_7)) (>= X9 1)))) (let ((X10 (let ((X10 rtp.res.nondet_8)) (>= X10 1)))) (let ((X11 (let ((X11 rtp.res.nondet_9)) (>= X11 1)))) (and (= rtp.usr.X7_a_0 0) (let ((X12 (let ((X12 rtp.res.nondet_10)) (>= X12 1)))) (and (= rtp.usr.X8_a_0 0) (= rtp.usr.erreur_a_0 (ite (>= rtp.usr.X1_a_0 2) true false)) rtp.res.init_flag_a_0)))))))))))))))))))))) +(define-fun __node_trans_rtp_0 ((rtp.usr.e01_a_1 Bool) (rtp.usr.e02_a_1 Bool) (rtp.usr.e03_a_1 Bool) (rtp.usr.e04_a_1 Bool) (rtp.usr.e05_a_1 Bool) (rtp.usr.e06_a_1 Bool) (rtp.usr.e07_a_1 Bool) (rtp.usr.e08_a_1 Bool) (rtp.usr.e09_a_1 Bool) (rtp.usr.e10_a_1 Bool) (rtp.usr.e11_a_1 Bool) (rtp.usr.e12_a_1 Bool) (rtp.res.nondet_11 Int) (rtp.res.nondet_10 Int) (rtp.res.nondet_9 Int) (rtp.res.nondet_8 Int) (rtp.res.nondet_7 Int) (rtp.res.nondet_6 Int) (rtp.res.nondet_5 Int) (rtp.res.nondet_4 Int) (rtp.res.nondet_3 Int) (rtp.res.nondet_2 Int) (rtp.res.nondet_1 Int) (rtp.res.nondet_0 Int) (rtp.usr.X1_a_1 Int) (rtp.usr.X2_a_1 Int) (rtp.usr.X3_a_1 Int) (rtp.usr.X4_a_1 Int) (rtp.usr.X5_a_1 Int) (rtp.usr.X6_a_1 Int) (rtp.usr.X7_a_1 Int) (rtp.usr.X8_a_1 Int) (rtp.usr.X9_a_1 Int) (rtp.usr.erreur_a_1 Bool) (rtp.res.init_flag_a_1 Bool) (rtp.usr.e01_a_0 Bool) (rtp.usr.e02_a_0 Bool) (rtp.usr.e03_a_0 Bool) (rtp.usr.e04_a_0 Bool) (rtp.usr.e05_a_0 Bool) (rtp.usr.e06_a_0 Bool) (rtp.usr.e07_a_0 Bool) (rtp.usr.e08_a_0 Bool) (rtp.usr.e09_a_0 Bool) (rtp.usr.e10_a_0 Bool) (rtp.usr.e11_a_0 Bool) (rtp.usr.e12_a_0 Bool) (rtp.usr.X1_a_0 Int) (rtp.usr.X2_a_0 Int) (rtp.usr.X3_a_0 Int) (rtp.usr.X4_a_0 Int) (rtp.usr.X5_a_0 Int) (rtp.usr.X6_a_0 Int) (rtp.usr.X7_a_0 Int) (rtp.usr.X8_a_0 Int) (rtp.usr.X9_a_0 Int) (rtp.usr.erreur_a_0 Bool) (rtp.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= rtp.usr.X1_a_0 1))) (and (= rtp.usr.X1_a_1 (ite rtp.usr.e01_a_1 (ite X1 (- rtp.usr.X1_a_0 1) rtp.usr.X1_a_0) rtp.usr.X1_a_0)) (let ((X2 (>= rtp.usr.X9_a_0 1))) (let ((X3 (>= rtp.usr.X2_a_0 1))) (and (= rtp.usr.X2_a_1 (ite rtp.usr.e01_a_1 (ite X1 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) (ite rtp.usr.e02_a_1 (ite X3 (- rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) (ite rtp.usr.e12_a_1 (ite X2 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) rtp.usr.X2_a_0)))) (let ((X4 (>= rtp.usr.X8_a_0 1))) (let ((X5 (>= rtp.usr.X7_a_0 1))) (let ((X6 (>= rtp.usr.X6_a_0 1))) (let ((X7 (>= rtp.usr.X4_a_0 1))) (and (= rtp.usr.X9_a_1 (ite rtp.usr.e05_a_1 (ite X7 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e07_a_1 (ite X6 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e10_a_1 (ite X5 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e11_a_1 (ite X4 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e12_a_1 (ite X2 (- rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) rtp.usr.X9_a_0)))))) (let ((X8 (>= rtp.usr.X4_a_0 1))) (let ((X9 (>= rtp.usr.X3_a_0 1))) (and (= rtp.usr.X4_a_1 (ite rtp.usr.e03_a_1 (ite X9 (+ rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) (ite rtp.usr.e04_a_1 (ite X8 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) (ite rtp.usr.e05_a_1 (ite X7 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) rtp.usr.X4_a_0)))) (= rtp.usr.X3_a_1 (ite rtp.usr.e02_a_1 (ite X3 (+ rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) (ite rtp.usr.e03_a_1 (ite X9 (- rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) rtp.usr.X3_a_0))) (let ((X10 (>= rtp.usr.X6_a_0 1))) (let ((X11 (>= rtp.usr.X6_a_0 1))) (let ((X12 (>= rtp.usr.X5_a_0 1))) (and (= rtp.usr.X6_a_1 (ite rtp.usr.e06_a_1 (ite X12 (+ rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e07_a_1 (ite X6 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e08_a_1 (ite X11 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e09_a_1 (ite X10 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) rtp.usr.X6_a_0))))) (= rtp.usr.X5_a_1 (ite rtp.usr.e04_a_1 (ite X8 (+ rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) (ite rtp.usr.e06_a_1 (ite X12 (- rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) rtp.usr.X5_a_0))) (= rtp.usr.X7_a_1 (ite rtp.usr.e08_a_1 (ite X11 (+ rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) (ite rtp.usr.e10_a_1 (ite X5 (- rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) rtp.usr.X7_a_0))) (= rtp.usr.X8_a_1 (ite rtp.usr.e09_a_1 (ite X10 (+ rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) (ite rtp.usr.e11_a_1 (ite X4 (- rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) rtp.usr.X8_a_0))) (= rtp.usr.erreur_a_1 (ite (>= rtp.usr.X1_a_1 2) true false)) (not rtp.res.init_flag_a_1))))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.abs_12_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_7_a_0)) (and (= top.res.abs_11_a_0 (and top.res.abs_10_a_0 (< X1 32767))) (let ((X2 top.res.abs_12_a_0)) (and (= top.usr.OK_a_0 (=> X2 (>= X1 0))) (__node_init_rtp_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.abs_12_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.abs_12_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_7_a_1)) (and (= top.res.abs_11_a_1 (and top.res.abs_10_a_1 (< X1 32767))) (let ((X2 top.res.abs_12_a_1)) (and (= top.usr.OK_a_1 (=> X2 (>= X1 0))) (__node_trans_rtp_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_11_a_1 top.res.abs_12_a_1 top.res.inst_1_a_1 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_7)) (and (= top.res.abs_11 (and top.res.abs_10 (< X1 32767))) (let ((X2 top.res.abs_12)) (and (= top.usr.OK (=> X2 (>= X1 0))) (__node_init_rtp_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_11 top.res.abs_12 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_10 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.abs_12! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_7!)) (and (= top.res.abs_11! (and top.res.abs_10! (< X1 32767))) (let ((X2 top.res.abs_12!)) (and (= top.usr.OK! (=> X2 (>= X1 0))) (__node_trans_rtp_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_11! top.res.abs_12! top.res.inst_1! top.res.abs_11 top.res.abs_12 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_10! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_10 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/rtp_2.sl b/benchmarks/LIA/Lustre/rtp_2.sl index 06403cf..75c35d3 100644 --- a/benchmarks/LIA/Lustre/rtp_2.sl +++ b/benchmarks/LIA/Lustre/rtp_2.sl @@ -1,1639 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_rtp_0 ( - (rtp.usr.e01_a_0 Bool) - (rtp.usr.e02_a_0 Bool) - (rtp.usr.e03_a_0 Bool) - (rtp.usr.e04_a_0 Bool) - (rtp.usr.e05_a_0 Bool) - (rtp.usr.e06_a_0 Bool) - (rtp.usr.e07_a_0 Bool) - (rtp.usr.e08_a_0 Bool) - (rtp.usr.e09_a_0 Bool) - (rtp.usr.e10_a_0 Bool) - (rtp.usr.e11_a_0 Bool) - (rtp.usr.e12_a_0 Bool) - (rtp.res.nondet_11 Int) - (rtp.res.nondet_10 Int) - (rtp.res.nondet_9 Int) - (rtp.res.nondet_8 Int) - (rtp.res.nondet_7 Int) - (rtp.res.nondet_6 Int) - (rtp.res.nondet_5 Int) - (rtp.res.nondet_4 Int) - (rtp.res.nondet_3 Int) - (rtp.res.nondet_2 Int) - (rtp.res.nondet_1 Int) - (rtp.res.nondet_0 Int) - (rtp.usr.X1_a_0 Int) - (rtp.usr.X2_a_0 Int) - (rtp.usr.X3_a_0 Int) - (rtp.usr.X4_a_0 Int) - (rtp.usr.X5_a_0 Int) - (rtp.usr.X6_a_0 Int) - (rtp.usr.X7_a_0 Int) - (rtp.usr.X8_a_0 Int) - (rtp.usr.X9_a_0 Int) - (rtp.usr.erreur_a_0 Bool) - (rtp.res.init_flag_a_0 Bool) - ) Bool - - (and - (= rtp.usr.X1_a_0 1) - (let - ((X1 Bool (let ((X1 Int rtp.res.nondet_0)) (>= X1 1)))) - (and - (= rtp.usr.X2_a_0 0) - (let - ((X2 Bool (let ((X2 Int rtp.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int rtp.res.nondet_11)) (>= X3 1)))) - (and - (= rtp.usr.X9_a_0 0) - (let - ((X4 Bool (let ((X4 Int rtp.res.nondet_4)) (>= X4 1)))) - (and - (= rtp.usr.X4_a_0 0) - (let - ((X5 Bool (let ((X5 Int rtp.res.nondet_2)) (>= X5 1)))) - (and - (= rtp.usr.X3_a_0 0) - (let - ((X6 Bool (let ((X6 Int rtp.res.nondet_3)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int rtp.res.nondet_6)) (>= X7 1)))) - (and - (= rtp.usr.X6_a_0 0) - (let - ((X8 Bool (let ((X8 Int rtp.res.nondet_5)) (>= X8 1)))) - (and - (= rtp.usr.X5_a_0 0) - (let - ((X9 Bool (let ((X9 Int rtp.res.nondet_7)) (>= X9 1)))) - (let - ((X10 Bool (let ((X10 Int rtp.res.nondet_8)) (>= X10 1)))) - (let - ((X11 Bool (let ((X11 Int rtp.res.nondet_9)) (>= X11 1)))) - (and - (= rtp.usr.X7_a_0 0) - (let - ((X12 - Bool (let ((X12 Int rtp.res.nondet_10)) (>= X12 1)))) - (and - (= rtp.usr.X8_a_0 0) - (= - rtp.usr.erreur_a_0 - (ite (>= rtp.usr.X1_a_0 2) true false)) - rtp.res.init_flag_a_0))))))))))))))))))))) -) - -(define-fun - __node_trans_rtp_0 ( - (rtp.usr.e01_a_1 Bool) - (rtp.usr.e02_a_1 Bool) - (rtp.usr.e03_a_1 Bool) - (rtp.usr.e04_a_1 Bool) - (rtp.usr.e05_a_1 Bool) - (rtp.usr.e06_a_1 Bool) - (rtp.usr.e07_a_1 Bool) - (rtp.usr.e08_a_1 Bool) - (rtp.usr.e09_a_1 Bool) - (rtp.usr.e10_a_1 Bool) - (rtp.usr.e11_a_1 Bool) - (rtp.usr.e12_a_1 Bool) - (rtp.res.nondet_11 Int) - (rtp.res.nondet_10 Int) - (rtp.res.nondet_9 Int) - (rtp.res.nondet_8 Int) - (rtp.res.nondet_7 Int) - (rtp.res.nondet_6 Int) - (rtp.res.nondet_5 Int) - (rtp.res.nondet_4 Int) - (rtp.res.nondet_3 Int) - (rtp.res.nondet_2 Int) - (rtp.res.nondet_1 Int) - (rtp.res.nondet_0 Int) - (rtp.usr.X1_a_1 Int) - (rtp.usr.X2_a_1 Int) - (rtp.usr.X3_a_1 Int) - (rtp.usr.X4_a_1 Int) - (rtp.usr.X5_a_1 Int) - (rtp.usr.X6_a_1 Int) - (rtp.usr.X7_a_1 Int) - (rtp.usr.X8_a_1 Int) - (rtp.usr.X9_a_1 Int) - (rtp.usr.erreur_a_1 Bool) - (rtp.res.init_flag_a_1 Bool) - (rtp.usr.e01_a_0 Bool) - (rtp.usr.e02_a_0 Bool) - (rtp.usr.e03_a_0 Bool) - (rtp.usr.e04_a_0 Bool) - (rtp.usr.e05_a_0 Bool) - (rtp.usr.e06_a_0 Bool) - (rtp.usr.e07_a_0 Bool) - (rtp.usr.e08_a_0 Bool) - (rtp.usr.e09_a_0 Bool) - (rtp.usr.e10_a_0 Bool) - (rtp.usr.e11_a_0 Bool) - (rtp.usr.e12_a_0 Bool) - (rtp.usr.X1_a_0 Int) - (rtp.usr.X2_a_0 Int) - (rtp.usr.X3_a_0 Int) - (rtp.usr.X4_a_0 Int) - (rtp.usr.X5_a_0 Int) - (rtp.usr.X6_a_0 Int) - (rtp.usr.X7_a_0 Int) - (rtp.usr.X8_a_0 Int) - (rtp.usr.X9_a_0 Int) - (rtp.usr.erreur_a_0 Bool) - (rtp.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= rtp.usr.X1_a_0 1))) - (and - (= - rtp.usr.X1_a_1 - (ite - rtp.usr.e01_a_1 - (ite X1 (- rtp.usr.X1_a_0 1) rtp.usr.X1_a_0) - rtp.usr.X1_a_0)) - (let - ((X2 Bool (>= rtp.usr.X9_a_0 1))) - (let - ((X3 Bool (>= rtp.usr.X2_a_0 1))) - (and - (= - rtp.usr.X2_a_1 - (ite - rtp.usr.e01_a_1 - (ite X1 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - (ite - rtp.usr.e02_a_1 - (ite X3 (- rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - (ite - rtp.usr.e12_a_1 - (ite X2 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - rtp.usr.X2_a_0)))) - (let - ((X4 Bool (>= rtp.usr.X8_a_0 1))) - (let - ((X5 Bool (>= rtp.usr.X7_a_0 1))) - (let - ((X6 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X7 Bool (>= rtp.usr.X4_a_0 1))) - (and - (= - rtp.usr.X9_a_1 - (ite - rtp.usr.e05_a_1 - (ite X7 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e07_a_1 - (ite X6 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e10_a_1 - (ite X5 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e11_a_1 - (ite X4 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e12_a_1 - (ite X2 (- rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - rtp.usr.X9_a_0)))))) - (let - ((X8 Bool (>= rtp.usr.X4_a_0 1))) - (let - ((X9 Bool (>= rtp.usr.X3_a_0 1))) - (and - (= - rtp.usr.X4_a_1 - (ite - rtp.usr.e03_a_1 - (ite X9 (+ rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - (ite - rtp.usr.e04_a_1 - (ite X8 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - (ite - rtp.usr.e05_a_1 - (ite X7 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - rtp.usr.X4_a_0)))) - (= - rtp.usr.X3_a_1 - (ite - rtp.usr.e02_a_1 - (ite X3 (+ rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) - (ite - rtp.usr.e03_a_1 - (ite X9 (- rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) - rtp.usr.X3_a_0))) - (let - ((X10 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X11 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X12 Bool (>= rtp.usr.X5_a_0 1))) - (and - (= - rtp.usr.X6_a_1 - (ite - rtp.usr.e06_a_1 - (ite X12 (+ rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e07_a_1 - (ite X6 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e08_a_1 - (ite X11 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e09_a_1 - (ite X10 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - rtp.usr.X6_a_0))))) - (= - rtp.usr.X5_a_1 - (ite - rtp.usr.e04_a_1 - (ite X8 (+ rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) - (ite - rtp.usr.e06_a_1 - (ite X12 (- rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) - rtp.usr.X5_a_0))) - (= - rtp.usr.X7_a_1 - (ite - rtp.usr.e08_a_1 - (ite X11 (+ rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) - (ite - rtp.usr.e10_a_1 - (ite X5 (- rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) - rtp.usr.X7_a_0))) - (= - rtp.usr.X8_a_1 - (ite - rtp.usr.e09_a_1 - (ite X10 (+ rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) - (ite - rtp.usr.e11_a_1 - (ite X4 (- rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) - rtp.usr.X8_a_0))) - (= rtp.usr.erreur_a_1 (ite (>= rtp.usr.X1_a_1 2) true false)) - (not rtp.res.init_flag_a_1)))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_11_a_0)) - (let - ((X2 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (and (<= 0 X2) (<= X2 1)))) - (__node_init_rtp_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_11_a_1)) - (let - ((X2 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (and (<= 0 X2) (<= X2 1)))) - (__node_trans_rtp_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_11)) - (let - ((X2 Int top.res.abs_0)) - (and - (= top.usr.OK (=> X1 (and (<= 0 X2) (<= X2 1)))) - (__node_init_rtp_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_10 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Bool top.res.abs_11!)) - (let - ((X2 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (and (<= 0 X2) (<= X2 1)))) - (__node_trans_rtp_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_1! - top.res.abs_10 - top.res.abs_11 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_10! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!)))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_rtp_0 ((rtp.usr.e01_a_0 Bool) (rtp.usr.e02_a_0 Bool) (rtp.usr.e03_a_0 Bool) (rtp.usr.e04_a_0 Bool) (rtp.usr.e05_a_0 Bool) (rtp.usr.e06_a_0 Bool) (rtp.usr.e07_a_0 Bool) (rtp.usr.e08_a_0 Bool) (rtp.usr.e09_a_0 Bool) (rtp.usr.e10_a_0 Bool) (rtp.usr.e11_a_0 Bool) (rtp.usr.e12_a_0 Bool) (rtp.res.nondet_11 Int) (rtp.res.nondet_10 Int) (rtp.res.nondet_9 Int) (rtp.res.nondet_8 Int) (rtp.res.nondet_7 Int) (rtp.res.nondet_6 Int) (rtp.res.nondet_5 Int) (rtp.res.nondet_4 Int) (rtp.res.nondet_3 Int) (rtp.res.nondet_2 Int) (rtp.res.nondet_1 Int) (rtp.res.nondet_0 Int) (rtp.usr.X1_a_0 Int) (rtp.usr.X2_a_0 Int) (rtp.usr.X3_a_0 Int) (rtp.usr.X4_a_0 Int) (rtp.usr.X5_a_0 Int) (rtp.usr.X6_a_0 Int) (rtp.usr.X7_a_0 Int) (rtp.usr.X8_a_0 Int) (rtp.usr.X9_a_0 Int) (rtp.usr.erreur_a_0 Bool) (rtp.res.init_flag_a_0 Bool)) Bool + (and (= rtp.usr.X1_a_0 1) (let ((X1 (let ((X1 rtp.res.nondet_0)) (>= X1 1)))) (and (= rtp.usr.X2_a_0 0) (let ((X2 (let ((X2 rtp.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 rtp.res.nondet_11)) (>= X3 1)))) (and (= rtp.usr.X9_a_0 0) (let ((X4 (let ((X4 rtp.res.nondet_4)) (>= X4 1)))) (and (= rtp.usr.X4_a_0 0) (let ((X5 (let ((X5 rtp.res.nondet_2)) (>= X5 1)))) (and (= rtp.usr.X3_a_0 0) (let ((X6 (let ((X6 rtp.res.nondet_3)) (>= X6 1)))) (let ((X7 (let ((X7 rtp.res.nondet_6)) (>= X7 1)))) (and (= rtp.usr.X6_a_0 0) (let ((X8 (let ((X8 rtp.res.nondet_5)) (>= X8 1)))) (and (= rtp.usr.X5_a_0 0) (let ((X9 (let ((X9 rtp.res.nondet_7)) (>= X9 1)))) (let ((X10 (let ((X10 rtp.res.nondet_8)) (>= X10 1)))) (let ((X11 (let ((X11 rtp.res.nondet_9)) (>= X11 1)))) (and (= rtp.usr.X7_a_0 0) (let ((X12 (let ((X12 rtp.res.nondet_10)) (>= X12 1)))) (and (= rtp.usr.X8_a_0 0) (= rtp.usr.erreur_a_0 (ite (>= rtp.usr.X1_a_0 2) true false)) rtp.res.init_flag_a_0)))))))))))))))))))))) +(define-fun __node_trans_rtp_0 ((rtp.usr.e01_a_1 Bool) (rtp.usr.e02_a_1 Bool) (rtp.usr.e03_a_1 Bool) (rtp.usr.e04_a_1 Bool) (rtp.usr.e05_a_1 Bool) (rtp.usr.e06_a_1 Bool) (rtp.usr.e07_a_1 Bool) (rtp.usr.e08_a_1 Bool) (rtp.usr.e09_a_1 Bool) (rtp.usr.e10_a_1 Bool) (rtp.usr.e11_a_1 Bool) (rtp.usr.e12_a_1 Bool) (rtp.res.nondet_11 Int) (rtp.res.nondet_10 Int) (rtp.res.nondet_9 Int) (rtp.res.nondet_8 Int) (rtp.res.nondet_7 Int) (rtp.res.nondet_6 Int) (rtp.res.nondet_5 Int) (rtp.res.nondet_4 Int) (rtp.res.nondet_3 Int) (rtp.res.nondet_2 Int) (rtp.res.nondet_1 Int) (rtp.res.nondet_0 Int) (rtp.usr.X1_a_1 Int) (rtp.usr.X2_a_1 Int) (rtp.usr.X3_a_1 Int) (rtp.usr.X4_a_1 Int) (rtp.usr.X5_a_1 Int) (rtp.usr.X6_a_1 Int) (rtp.usr.X7_a_1 Int) (rtp.usr.X8_a_1 Int) (rtp.usr.X9_a_1 Int) (rtp.usr.erreur_a_1 Bool) (rtp.res.init_flag_a_1 Bool) (rtp.usr.e01_a_0 Bool) (rtp.usr.e02_a_0 Bool) (rtp.usr.e03_a_0 Bool) (rtp.usr.e04_a_0 Bool) (rtp.usr.e05_a_0 Bool) (rtp.usr.e06_a_0 Bool) (rtp.usr.e07_a_0 Bool) (rtp.usr.e08_a_0 Bool) (rtp.usr.e09_a_0 Bool) (rtp.usr.e10_a_0 Bool) (rtp.usr.e11_a_0 Bool) (rtp.usr.e12_a_0 Bool) (rtp.usr.X1_a_0 Int) (rtp.usr.X2_a_0 Int) (rtp.usr.X3_a_0 Int) (rtp.usr.X4_a_0 Int) (rtp.usr.X5_a_0 Int) (rtp.usr.X6_a_0 Int) (rtp.usr.X7_a_0 Int) (rtp.usr.X8_a_0 Int) (rtp.usr.X9_a_0 Int) (rtp.usr.erreur_a_0 Bool) (rtp.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= rtp.usr.X1_a_0 1))) (and (= rtp.usr.X1_a_1 (ite rtp.usr.e01_a_1 (ite X1 (- rtp.usr.X1_a_0 1) rtp.usr.X1_a_0) rtp.usr.X1_a_0)) (let ((X2 (>= rtp.usr.X9_a_0 1))) (let ((X3 (>= rtp.usr.X2_a_0 1))) (and (= rtp.usr.X2_a_1 (ite rtp.usr.e01_a_1 (ite X1 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) (ite rtp.usr.e02_a_1 (ite X3 (- rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) (ite rtp.usr.e12_a_1 (ite X2 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) rtp.usr.X2_a_0)))) (let ((X4 (>= rtp.usr.X8_a_0 1))) (let ((X5 (>= rtp.usr.X7_a_0 1))) (let ((X6 (>= rtp.usr.X6_a_0 1))) (let ((X7 (>= rtp.usr.X4_a_0 1))) (and (= rtp.usr.X9_a_1 (ite rtp.usr.e05_a_1 (ite X7 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e07_a_1 (ite X6 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e10_a_1 (ite X5 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e11_a_1 (ite X4 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e12_a_1 (ite X2 (- rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) rtp.usr.X9_a_0)))))) (let ((X8 (>= rtp.usr.X4_a_0 1))) (let ((X9 (>= rtp.usr.X3_a_0 1))) (and (= rtp.usr.X4_a_1 (ite rtp.usr.e03_a_1 (ite X9 (+ rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) (ite rtp.usr.e04_a_1 (ite X8 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) (ite rtp.usr.e05_a_1 (ite X7 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) rtp.usr.X4_a_0)))) (= rtp.usr.X3_a_1 (ite rtp.usr.e02_a_1 (ite X3 (+ rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) (ite rtp.usr.e03_a_1 (ite X9 (- rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) rtp.usr.X3_a_0))) (let ((X10 (>= rtp.usr.X6_a_0 1))) (let ((X11 (>= rtp.usr.X6_a_0 1))) (let ((X12 (>= rtp.usr.X5_a_0 1))) (and (= rtp.usr.X6_a_1 (ite rtp.usr.e06_a_1 (ite X12 (+ rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e07_a_1 (ite X6 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e08_a_1 (ite X11 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e09_a_1 (ite X10 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) rtp.usr.X6_a_0))))) (= rtp.usr.X5_a_1 (ite rtp.usr.e04_a_1 (ite X8 (+ rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) (ite rtp.usr.e06_a_1 (ite X12 (- rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) rtp.usr.X5_a_0))) (= rtp.usr.X7_a_1 (ite rtp.usr.e08_a_1 (ite X11 (+ rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) (ite rtp.usr.e10_a_1 (ite X5 (- rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) rtp.usr.X7_a_0))) (= rtp.usr.X8_a_1 (ite rtp.usr.e09_a_1 (ite X10 (+ rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) (ite rtp.usr.e11_a_1 (ite X4 (- rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) rtp.usr.X8_a_0))) (= rtp.usr.erreur_a_1 (ite (>= rtp.usr.X1_a_1 2) true false)) (not rtp.res.init_flag_a_1))))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_11_a_0)) (let ((X2 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (<= 0 X2) (<= X2 1)))) (__node_init_rtp_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_11_a_1)) (let ((X2 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (<= 0 X2) (<= X2 1)))) (__node_trans_rtp_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_11)) (let ((X2 top.res.abs_0)) (and (= top.usr.OK (=> X1 (and (<= 0 X2) (<= X2 1)))) (__node_init_rtp_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_10 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_11!)) (let ((X2 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (<= 0 X2) (<= X2 1)))) (__node_trans_rtp_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_1! top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_10! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_10 top.res.inst_0) (not top.res.init_flag!)))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/rtp_3.sl b/benchmarks/LIA/Lustre/rtp_3.sl index 89d5973..e2be7d6 100644 --- a/benchmarks/LIA/Lustre/rtp_3.sl +++ b/benchmarks/LIA/Lustre/rtp_3.sl @@ -1,1659 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_rtp_0 ( - (rtp.usr.e01_a_0 Bool) - (rtp.usr.e02_a_0 Bool) - (rtp.usr.e03_a_0 Bool) - (rtp.usr.e04_a_0 Bool) - (rtp.usr.e05_a_0 Bool) - (rtp.usr.e06_a_0 Bool) - (rtp.usr.e07_a_0 Bool) - (rtp.usr.e08_a_0 Bool) - (rtp.usr.e09_a_0 Bool) - (rtp.usr.e10_a_0 Bool) - (rtp.usr.e11_a_0 Bool) - (rtp.usr.e12_a_0 Bool) - (rtp.res.nondet_11 Int) - (rtp.res.nondet_10 Int) - (rtp.res.nondet_9 Int) - (rtp.res.nondet_8 Int) - (rtp.res.nondet_7 Int) - (rtp.res.nondet_6 Int) - (rtp.res.nondet_5 Int) - (rtp.res.nondet_4 Int) - (rtp.res.nondet_3 Int) - (rtp.res.nondet_2 Int) - (rtp.res.nondet_1 Int) - (rtp.res.nondet_0 Int) - (rtp.usr.X1_a_0 Int) - (rtp.usr.X2_a_0 Int) - (rtp.usr.X3_a_0 Int) - (rtp.usr.X4_a_0 Int) - (rtp.usr.X5_a_0 Int) - (rtp.usr.X6_a_0 Int) - (rtp.usr.X7_a_0 Int) - (rtp.usr.X8_a_0 Int) - (rtp.usr.X9_a_0 Int) - (rtp.usr.erreur_a_0 Bool) - (rtp.res.init_flag_a_0 Bool) - ) Bool - - (and - (= rtp.usr.X1_a_0 1) - (let - ((X1 Bool (let ((X1 Int rtp.res.nondet_0)) (>= X1 1)))) - (and - (= rtp.usr.X2_a_0 0) - (let - ((X2 Bool (let ((X2 Int rtp.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int rtp.res.nondet_11)) (>= X3 1)))) - (and - (= rtp.usr.X9_a_0 0) - (let - ((X4 Bool (let ((X4 Int rtp.res.nondet_4)) (>= X4 1)))) - (and - (= rtp.usr.X4_a_0 0) - (let - ((X5 Bool (let ((X5 Int rtp.res.nondet_2)) (>= X5 1)))) - (and - (= rtp.usr.X3_a_0 0) - (let - ((X6 Bool (let ((X6 Int rtp.res.nondet_3)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int rtp.res.nondet_6)) (>= X7 1)))) - (and - (= rtp.usr.X6_a_0 0) - (let - ((X8 Bool (let ((X8 Int rtp.res.nondet_5)) (>= X8 1)))) - (and - (= rtp.usr.X5_a_0 0) - (let - ((X9 Bool (let ((X9 Int rtp.res.nondet_7)) (>= X9 1)))) - (let - ((X10 Bool (let ((X10 Int rtp.res.nondet_8)) (>= X10 1)))) - (let - ((X11 Bool (let ((X11 Int rtp.res.nondet_9)) (>= X11 1)))) - (and - (= rtp.usr.X7_a_0 0) - (let - ((X12 - Bool (let ((X12 Int rtp.res.nondet_10)) (>= X12 1)))) - (and - (= rtp.usr.X8_a_0 0) - (= - rtp.usr.erreur_a_0 - (ite (>= rtp.usr.X1_a_0 2) true false)) - rtp.res.init_flag_a_0))))))))))))))))))))) -) - -(define-fun - __node_trans_rtp_0 ( - (rtp.usr.e01_a_1 Bool) - (rtp.usr.e02_a_1 Bool) - (rtp.usr.e03_a_1 Bool) - (rtp.usr.e04_a_1 Bool) - (rtp.usr.e05_a_1 Bool) - (rtp.usr.e06_a_1 Bool) - (rtp.usr.e07_a_1 Bool) - (rtp.usr.e08_a_1 Bool) - (rtp.usr.e09_a_1 Bool) - (rtp.usr.e10_a_1 Bool) - (rtp.usr.e11_a_1 Bool) - (rtp.usr.e12_a_1 Bool) - (rtp.res.nondet_11 Int) - (rtp.res.nondet_10 Int) - (rtp.res.nondet_9 Int) - (rtp.res.nondet_8 Int) - (rtp.res.nondet_7 Int) - (rtp.res.nondet_6 Int) - (rtp.res.nondet_5 Int) - (rtp.res.nondet_4 Int) - (rtp.res.nondet_3 Int) - (rtp.res.nondet_2 Int) - (rtp.res.nondet_1 Int) - (rtp.res.nondet_0 Int) - (rtp.usr.X1_a_1 Int) - (rtp.usr.X2_a_1 Int) - (rtp.usr.X3_a_1 Int) - (rtp.usr.X4_a_1 Int) - (rtp.usr.X5_a_1 Int) - (rtp.usr.X6_a_1 Int) - (rtp.usr.X7_a_1 Int) - (rtp.usr.X8_a_1 Int) - (rtp.usr.X9_a_1 Int) - (rtp.usr.erreur_a_1 Bool) - (rtp.res.init_flag_a_1 Bool) - (rtp.usr.e01_a_0 Bool) - (rtp.usr.e02_a_0 Bool) - (rtp.usr.e03_a_0 Bool) - (rtp.usr.e04_a_0 Bool) - (rtp.usr.e05_a_0 Bool) - (rtp.usr.e06_a_0 Bool) - (rtp.usr.e07_a_0 Bool) - (rtp.usr.e08_a_0 Bool) - (rtp.usr.e09_a_0 Bool) - (rtp.usr.e10_a_0 Bool) - (rtp.usr.e11_a_0 Bool) - (rtp.usr.e12_a_0 Bool) - (rtp.usr.X1_a_0 Int) - (rtp.usr.X2_a_0 Int) - (rtp.usr.X3_a_0 Int) - (rtp.usr.X4_a_0 Int) - (rtp.usr.X5_a_0 Int) - (rtp.usr.X6_a_0 Int) - (rtp.usr.X7_a_0 Int) - (rtp.usr.X8_a_0 Int) - (rtp.usr.X9_a_0 Int) - (rtp.usr.erreur_a_0 Bool) - (rtp.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= rtp.usr.X1_a_0 1))) - (and - (= - rtp.usr.X1_a_1 - (ite - rtp.usr.e01_a_1 - (ite X1 (- rtp.usr.X1_a_0 1) rtp.usr.X1_a_0) - rtp.usr.X1_a_0)) - (let - ((X2 Bool (>= rtp.usr.X9_a_0 1))) - (let - ((X3 Bool (>= rtp.usr.X2_a_0 1))) - (and - (= - rtp.usr.X2_a_1 - (ite - rtp.usr.e01_a_1 - (ite X1 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - (ite - rtp.usr.e02_a_1 - (ite X3 (- rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - (ite - rtp.usr.e12_a_1 - (ite X2 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - rtp.usr.X2_a_0)))) - (let - ((X4 Bool (>= rtp.usr.X8_a_0 1))) - (let - ((X5 Bool (>= rtp.usr.X7_a_0 1))) - (let - ((X6 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X7 Bool (>= rtp.usr.X4_a_0 1))) - (and - (= - rtp.usr.X9_a_1 - (ite - rtp.usr.e05_a_1 - (ite X7 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e07_a_1 - (ite X6 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e10_a_1 - (ite X5 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e11_a_1 - (ite X4 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e12_a_1 - (ite X2 (- rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - rtp.usr.X9_a_0)))))) - (let - ((X8 Bool (>= rtp.usr.X4_a_0 1))) - (let - ((X9 Bool (>= rtp.usr.X3_a_0 1))) - (and - (= - rtp.usr.X4_a_1 - (ite - rtp.usr.e03_a_1 - (ite X9 (+ rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - (ite - rtp.usr.e04_a_1 - (ite X8 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - (ite - rtp.usr.e05_a_1 - (ite X7 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - rtp.usr.X4_a_0)))) - (= - rtp.usr.X3_a_1 - (ite - rtp.usr.e02_a_1 - (ite X3 (+ rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) - (ite - rtp.usr.e03_a_1 - (ite X9 (- rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) - rtp.usr.X3_a_0))) - (let - ((X10 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X11 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X12 Bool (>= rtp.usr.X5_a_0 1))) - (and - (= - rtp.usr.X6_a_1 - (ite - rtp.usr.e06_a_1 - (ite X12 (+ rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e07_a_1 - (ite X6 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e08_a_1 - (ite X11 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e09_a_1 - (ite X10 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - rtp.usr.X6_a_0))))) - (= - rtp.usr.X5_a_1 - (ite - rtp.usr.e04_a_1 - (ite X8 (+ rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) - (ite - rtp.usr.e06_a_1 - (ite X12 (- rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) - rtp.usr.X5_a_0))) - (= - rtp.usr.X7_a_1 - (ite - rtp.usr.e08_a_1 - (ite X11 (+ rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) - (ite - rtp.usr.e10_a_1 - (ite X5 (- rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) - rtp.usr.X7_a_0))) - (= - rtp.usr.X8_a_1 - (ite - rtp.usr.e09_a_1 - (ite X10 (+ rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) - (ite - rtp.usr.e11_a_1 - (ite X4 (- rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) - rtp.usr.X8_a_0))) - (= rtp.usr.erreur_a_1 (ite (>= rtp.usr.X1_a_1 2) true false)) - (not rtp.res.init_flag_a_1)))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.abs_12_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_8_a_0)) - (and - (= top.res.abs_11_a_0 (and top.res.abs_10_a_0 (< X1 32767))) - (let - ((X2 Bool top.res.abs_12_a_0)) - (and - (= top.usr.OK_a_0 (=> X2 (<= 0 X1))) - (__node_init_rtp_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.abs_12_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.abs_12_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_8_a_1)) - (and - (= top.res.abs_11_a_1 (and top.res.abs_10_a_1 (< X1 32767))) - (let - ((X2 Bool top.res.abs_12_a_1)) - (and - (= top.usr.OK_a_1 (=> X2 (<= 0 X1))) - (__node_trans_rtp_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_11_a_1 - top.res.abs_12_a_1 - top.res.inst_1_a_1 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.abs_12 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_8)) - (and - (= top.res.abs_11 (and top.res.abs_10 (< X1 32767))) - (let - ((X2 Bool top.res.abs_12)) - (and - (= top.usr.OK (=> X2 (<= 0 X1))) - (__node_init_rtp_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_11 top.res.abs_12 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_10 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.abs_12! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Int top.res.abs_8!)) - (and - (= top.res.abs_11! (and top.res.abs_10! (< X1 32767))) - (let - ((X2 Bool top.res.abs_12!)) - (and - (= top.usr.OK! (=> X2 (<= 0 X1))) - (__node_trans_rtp_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_11! - top.res.abs_12! - top.res.inst_1! - top.res.abs_11 - top.res.abs_12 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_10! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_rtp_0 ((rtp.usr.e01_a_0 Bool) (rtp.usr.e02_a_0 Bool) (rtp.usr.e03_a_0 Bool) (rtp.usr.e04_a_0 Bool) (rtp.usr.e05_a_0 Bool) (rtp.usr.e06_a_0 Bool) (rtp.usr.e07_a_0 Bool) (rtp.usr.e08_a_0 Bool) (rtp.usr.e09_a_0 Bool) (rtp.usr.e10_a_0 Bool) (rtp.usr.e11_a_0 Bool) (rtp.usr.e12_a_0 Bool) (rtp.res.nondet_11 Int) (rtp.res.nondet_10 Int) (rtp.res.nondet_9 Int) (rtp.res.nondet_8 Int) (rtp.res.nondet_7 Int) (rtp.res.nondet_6 Int) (rtp.res.nondet_5 Int) (rtp.res.nondet_4 Int) (rtp.res.nondet_3 Int) (rtp.res.nondet_2 Int) (rtp.res.nondet_1 Int) (rtp.res.nondet_0 Int) (rtp.usr.X1_a_0 Int) (rtp.usr.X2_a_0 Int) (rtp.usr.X3_a_0 Int) (rtp.usr.X4_a_0 Int) (rtp.usr.X5_a_0 Int) (rtp.usr.X6_a_0 Int) (rtp.usr.X7_a_0 Int) (rtp.usr.X8_a_0 Int) (rtp.usr.X9_a_0 Int) (rtp.usr.erreur_a_0 Bool) (rtp.res.init_flag_a_0 Bool)) Bool + (and (= rtp.usr.X1_a_0 1) (let ((X1 (let ((X1 rtp.res.nondet_0)) (>= X1 1)))) (and (= rtp.usr.X2_a_0 0) (let ((X2 (let ((X2 rtp.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 rtp.res.nondet_11)) (>= X3 1)))) (and (= rtp.usr.X9_a_0 0) (let ((X4 (let ((X4 rtp.res.nondet_4)) (>= X4 1)))) (and (= rtp.usr.X4_a_0 0) (let ((X5 (let ((X5 rtp.res.nondet_2)) (>= X5 1)))) (and (= rtp.usr.X3_a_0 0) (let ((X6 (let ((X6 rtp.res.nondet_3)) (>= X6 1)))) (let ((X7 (let ((X7 rtp.res.nondet_6)) (>= X7 1)))) (and (= rtp.usr.X6_a_0 0) (let ((X8 (let ((X8 rtp.res.nondet_5)) (>= X8 1)))) (and (= rtp.usr.X5_a_0 0) (let ((X9 (let ((X9 rtp.res.nondet_7)) (>= X9 1)))) (let ((X10 (let ((X10 rtp.res.nondet_8)) (>= X10 1)))) (let ((X11 (let ((X11 rtp.res.nondet_9)) (>= X11 1)))) (and (= rtp.usr.X7_a_0 0) (let ((X12 (let ((X12 rtp.res.nondet_10)) (>= X12 1)))) (and (= rtp.usr.X8_a_0 0) (= rtp.usr.erreur_a_0 (ite (>= rtp.usr.X1_a_0 2) true false)) rtp.res.init_flag_a_0)))))))))))))))))))))) +(define-fun __node_trans_rtp_0 ((rtp.usr.e01_a_1 Bool) (rtp.usr.e02_a_1 Bool) (rtp.usr.e03_a_1 Bool) (rtp.usr.e04_a_1 Bool) (rtp.usr.e05_a_1 Bool) (rtp.usr.e06_a_1 Bool) (rtp.usr.e07_a_1 Bool) (rtp.usr.e08_a_1 Bool) (rtp.usr.e09_a_1 Bool) (rtp.usr.e10_a_1 Bool) (rtp.usr.e11_a_1 Bool) (rtp.usr.e12_a_1 Bool) (rtp.res.nondet_11 Int) (rtp.res.nondet_10 Int) (rtp.res.nondet_9 Int) (rtp.res.nondet_8 Int) (rtp.res.nondet_7 Int) (rtp.res.nondet_6 Int) (rtp.res.nondet_5 Int) (rtp.res.nondet_4 Int) (rtp.res.nondet_3 Int) (rtp.res.nondet_2 Int) (rtp.res.nondet_1 Int) (rtp.res.nondet_0 Int) (rtp.usr.X1_a_1 Int) (rtp.usr.X2_a_1 Int) (rtp.usr.X3_a_1 Int) (rtp.usr.X4_a_1 Int) (rtp.usr.X5_a_1 Int) (rtp.usr.X6_a_1 Int) (rtp.usr.X7_a_1 Int) (rtp.usr.X8_a_1 Int) (rtp.usr.X9_a_1 Int) (rtp.usr.erreur_a_1 Bool) (rtp.res.init_flag_a_1 Bool) (rtp.usr.e01_a_0 Bool) (rtp.usr.e02_a_0 Bool) (rtp.usr.e03_a_0 Bool) (rtp.usr.e04_a_0 Bool) (rtp.usr.e05_a_0 Bool) (rtp.usr.e06_a_0 Bool) (rtp.usr.e07_a_0 Bool) (rtp.usr.e08_a_0 Bool) (rtp.usr.e09_a_0 Bool) (rtp.usr.e10_a_0 Bool) (rtp.usr.e11_a_0 Bool) (rtp.usr.e12_a_0 Bool) (rtp.usr.X1_a_0 Int) (rtp.usr.X2_a_0 Int) (rtp.usr.X3_a_0 Int) (rtp.usr.X4_a_0 Int) (rtp.usr.X5_a_0 Int) (rtp.usr.X6_a_0 Int) (rtp.usr.X7_a_0 Int) (rtp.usr.X8_a_0 Int) (rtp.usr.X9_a_0 Int) (rtp.usr.erreur_a_0 Bool) (rtp.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= rtp.usr.X1_a_0 1))) (and (= rtp.usr.X1_a_1 (ite rtp.usr.e01_a_1 (ite X1 (- rtp.usr.X1_a_0 1) rtp.usr.X1_a_0) rtp.usr.X1_a_0)) (let ((X2 (>= rtp.usr.X9_a_0 1))) (let ((X3 (>= rtp.usr.X2_a_0 1))) (and (= rtp.usr.X2_a_1 (ite rtp.usr.e01_a_1 (ite X1 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) (ite rtp.usr.e02_a_1 (ite X3 (- rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) (ite rtp.usr.e12_a_1 (ite X2 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) rtp.usr.X2_a_0)))) (let ((X4 (>= rtp.usr.X8_a_0 1))) (let ((X5 (>= rtp.usr.X7_a_0 1))) (let ((X6 (>= rtp.usr.X6_a_0 1))) (let ((X7 (>= rtp.usr.X4_a_0 1))) (and (= rtp.usr.X9_a_1 (ite rtp.usr.e05_a_1 (ite X7 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e07_a_1 (ite X6 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e10_a_1 (ite X5 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e11_a_1 (ite X4 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e12_a_1 (ite X2 (- rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) rtp.usr.X9_a_0)))))) (let ((X8 (>= rtp.usr.X4_a_0 1))) (let ((X9 (>= rtp.usr.X3_a_0 1))) (and (= rtp.usr.X4_a_1 (ite rtp.usr.e03_a_1 (ite X9 (+ rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) (ite rtp.usr.e04_a_1 (ite X8 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) (ite rtp.usr.e05_a_1 (ite X7 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) rtp.usr.X4_a_0)))) (= rtp.usr.X3_a_1 (ite rtp.usr.e02_a_1 (ite X3 (+ rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) (ite rtp.usr.e03_a_1 (ite X9 (- rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) rtp.usr.X3_a_0))) (let ((X10 (>= rtp.usr.X6_a_0 1))) (let ((X11 (>= rtp.usr.X6_a_0 1))) (let ((X12 (>= rtp.usr.X5_a_0 1))) (and (= rtp.usr.X6_a_1 (ite rtp.usr.e06_a_1 (ite X12 (+ rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e07_a_1 (ite X6 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e08_a_1 (ite X11 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e09_a_1 (ite X10 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) rtp.usr.X6_a_0))))) (= rtp.usr.X5_a_1 (ite rtp.usr.e04_a_1 (ite X8 (+ rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) (ite rtp.usr.e06_a_1 (ite X12 (- rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) rtp.usr.X5_a_0))) (= rtp.usr.X7_a_1 (ite rtp.usr.e08_a_1 (ite X11 (+ rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) (ite rtp.usr.e10_a_1 (ite X5 (- rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) rtp.usr.X7_a_0))) (= rtp.usr.X8_a_1 (ite rtp.usr.e09_a_1 (ite X10 (+ rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) (ite rtp.usr.e11_a_1 (ite X4 (- rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) rtp.usr.X8_a_0))) (= rtp.usr.erreur_a_1 (ite (>= rtp.usr.X1_a_1 2) true false)) (not rtp.res.init_flag_a_1))))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.abs_12_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_8_a_0)) (and (= top.res.abs_11_a_0 (and top.res.abs_10_a_0 (< X1 32767))) (let ((X2 top.res.abs_12_a_0)) (and (= top.usr.OK_a_0 (=> X2 (<= 0 X1))) (__node_init_rtp_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.abs_12_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.abs_12_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_8_a_1)) (and (= top.res.abs_11_a_1 (and top.res.abs_10_a_1 (< X1 32767))) (let ((X2 top.res.abs_12_a_1)) (and (= top.usr.OK_a_1 (=> X2 (<= 0 X1))) (__node_trans_rtp_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_11_a_1 top.res.abs_12_a_1 top.res.inst_1_a_1 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_8)) (and (= top.res.abs_11 (and top.res.abs_10 (< X1 32767))) (let ((X2 top.res.abs_12)) (and (= top.usr.OK (=> X2 (<= 0 X1))) (__node_init_rtp_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_11 top.res.abs_12 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_10 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.abs_12! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_8!)) (and (= top.res.abs_11! (and top.res.abs_10! (< X1 32767))) (let ((X2 top.res.abs_12!)) (and (= top.usr.OK! (=> X2 (<= 0 X1))) (__node_trans_rtp_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_11! top.res.abs_12! top.res.inst_1! top.res.abs_11 top.res.abs_12 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_10! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_10 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/rtp_4.sl b/benchmarks/LIA/Lustre/rtp_4.sl index 12673d7..08f4702 100644 --- a/benchmarks/LIA/Lustre/rtp_4.sl +++ b/benchmarks/LIA/Lustre/rtp_4.sl @@ -1,1659 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_rtp_0 ( - (rtp.usr.e01_a_0 Bool) - (rtp.usr.e02_a_0 Bool) - (rtp.usr.e03_a_0 Bool) - (rtp.usr.e04_a_0 Bool) - (rtp.usr.e05_a_0 Bool) - (rtp.usr.e06_a_0 Bool) - (rtp.usr.e07_a_0 Bool) - (rtp.usr.e08_a_0 Bool) - (rtp.usr.e09_a_0 Bool) - (rtp.usr.e10_a_0 Bool) - (rtp.usr.e11_a_0 Bool) - (rtp.usr.e12_a_0 Bool) - (rtp.res.nondet_11 Int) - (rtp.res.nondet_10 Int) - (rtp.res.nondet_9 Int) - (rtp.res.nondet_8 Int) - (rtp.res.nondet_7 Int) - (rtp.res.nondet_6 Int) - (rtp.res.nondet_5 Int) - (rtp.res.nondet_4 Int) - (rtp.res.nondet_3 Int) - (rtp.res.nondet_2 Int) - (rtp.res.nondet_1 Int) - (rtp.res.nondet_0 Int) - (rtp.usr.X1_a_0 Int) - (rtp.usr.X2_a_0 Int) - (rtp.usr.X3_a_0 Int) - (rtp.usr.X4_a_0 Int) - (rtp.usr.X5_a_0 Int) - (rtp.usr.X6_a_0 Int) - (rtp.usr.X7_a_0 Int) - (rtp.usr.X8_a_0 Int) - (rtp.usr.X9_a_0 Int) - (rtp.usr.erreur_a_0 Bool) - (rtp.res.init_flag_a_0 Bool) - ) Bool - - (and - (= rtp.usr.X1_a_0 1) - (let - ((X1 Bool (let ((X1 Int rtp.res.nondet_0)) (>= X1 1)))) - (and - (= rtp.usr.X2_a_0 0) - (let - ((X2 Bool (let ((X2 Int rtp.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int rtp.res.nondet_11)) (>= X3 1)))) - (and - (= rtp.usr.X9_a_0 0) - (let - ((X4 Bool (let ((X4 Int rtp.res.nondet_4)) (>= X4 1)))) - (and - (= rtp.usr.X4_a_0 0) - (let - ((X5 Bool (let ((X5 Int rtp.res.nondet_2)) (>= X5 1)))) - (and - (= rtp.usr.X3_a_0 0) - (let - ((X6 Bool (let ((X6 Int rtp.res.nondet_3)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int rtp.res.nondet_6)) (>= X7 1)))) - (and - (= rtp.usr.X6_a_0 0) - (let - ((X8 Bool (let ((X8 Int rtp.res.nondet_5)) (>= X8 1)))) - (and - (= rtp.usr.X5_a_0 0) - (let - ((X9 Bool (let ((X9 Int rtp.res.nondet_7)) (>= X9 1)))) - (let - ((X10 Bool (let ((X10 Int rtp.res.nondet_8)) (>= X10 1)))) - (let - ((X11 Bool (let ((X11 Int rtp.res.nondet_9)) (>= X11 1)))) - (and - (= rtp.usr.X7_a_0 0) - (let - ((X12 - Bool (let ((X12 Int rtp.res.nondet_10)) (>= X12 1)))) - (and - (= rtp.usr.X8_a_0 0) - (= - rtp.usr.erreur_a_0 - (ite (>= rtp.usr.X1_a_0 2) true false)) - rtp.res.init_flag_a_0))))))))))))))))))))) -) - -(define-fun - __node_trans_rtp_0 ( - (rtp.usr.e01_a_1 Bool) - (rtp.usr.e02_a_1 Bool) - (rtp.usr.e03_a_1 Bool) - (rtp.usr.e04_a_1 Bool) - (rtp.usr.e05_a_1 Bool) - (rtp.usr.e06_a_1 Bool) - (rtp.usr.e07_a_1 Bool) - (rtp.usr.e08_a_1 Bool) - (rtp.usr.e09_a_1 Bool) - (rtp.usr.e10_a_1 Bool) - (rtp.usr.e11_a_1 Bool) - (rtp.usr.e12_a_1 Bool) - (rtp.res.nondet_11 Int) - (rtp.res.nondet_10 Int) - (rtp.res.nondet_9 Int) - (rtp.res.nondet_8 Int) - (rtp.res.nondet_7 Int) - (rtp.res.nondet_6 Int) - (rtp.res.nondet_5 Int) - (rtp.res.nondet_4 Int) - (rtp.res.nondet_3 Int) - (rtp.res.nondet_2 Int) - (rtp.res.nondet_1 Int) - (rtp.res.nondet_0 Int) - (rtp.usr.X1_a_1 Int) - (rtp.usr.X2_a_1 Int) - (rtp.usr.X3_a_1 Int) - (rtp.usr.X4_a_1 Int) - (rtp.usr.X5_a_1 Int) - (rtp.usr.X6_a_1 Int) - (rtp.usr.X7_a_1 Int) - (rtp.usr.X8_a_1 Int) - (rtp.usr.X9_a_1 Int) - (rtp.usr.erreur_a_1 Bool) - (rtp.res.init_flag_a_1 Bool) - (rtp.usr.e01_a_0 Bool) - (rtp.usr.e02_a_0 Bool) - (rtp.usr.e03_a_0 Bool) - (rtp.usr.e04_a_0 Bool) - (rtp.usr.e05_a_0 Bool) - (rtp.usr.e06_a_0 Bool) - (rtp.usr.e07_a_0 Bool) - (rtp.usr.e08_a_0 Bool) - (rtp.usr.e09_a_0 Bool) - (rtp.usr.e10_a_0 Bool) - (rtp.usr.e11_a_0 Bool) - (rtp.usr.e12_a_0 Bool) - (rtp.usr.X1_a_0 Int) - (rtp.usr.X2_a_0 Int) - (rtp.usr.X3_a_0 Int) - (rtp.usr.X4_a_0 Int) - (rtp.usr.X5_a_0 Int) - (rtp.usr.X6_a_0 Int) - (rtp.usr.X7_a_0 Int) - (rtp.usr.X8_a_0 Int) - (rtp.usr.X9_a_0 Int) - (rtp.usr.erreur_a_0 Bool) - (rtp.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= rtp.usr.X1_a_0 1))) - (and - (= - rtp.usr.X1_a_1 - (ite - rtp.usr.e01_a_1 - (ite X1 (- rtp.usr.X1_a_0 1) rtp.usr.X1_a_0) - rtp.usr.X1_a_0)) - (let - ((X2 Bool (>= rtp.usr.X9_a_0 1))) - (let - ((X3 Bool (>= rtp.usr.X2_a_0 1))) - (and - (= - rtp.usr.X2_a_1 - (ite - rtp.usr.e01_a_1 - (ite X1 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - (ite - rtp.usr.e02_a_1 - (ite X3 (- rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - (ite - rtp.usr.e12_a_1 - (ite X2 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - rtp.usr.X2_a_0)))) - (let - ((X4 Bool (>= rtp.usr.X8_a_0 1))) - (let - ((X5 Bool (>= rtp.usr.X7_a_0 1))) - (let - ((X6 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X7 Bool (>= rtp.usr.X4_a_0 1))) - (and - (= - rtp.usr.X9_a_1 - (ite - rtp.usr.e05_a_1 - (ite X7 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e07_a_1 - (ite X6 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e10_a_1 - (ite X5 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e11_a_1 - (ite X4 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e12_a_1 - (ite X2 (- rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - rtp.usr.X9_a_0)))))) - (let - ((X8 Bool (>= rtp.usr.X4_a_0 1))) - (let - ((X9 Bool (>= rtp.usr.X3_a_0 1))) - (and - (= - rtp.usr.X4_a_1 - (ite - rtp.usr.e03_a_1 - (ite X9 (+ rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - (ite - rtp.usr.e04_a_1 - (ite X8 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - (ite - rtp.usr.e05_a_1 - (ite X7 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - rtp.usr.X4_a_0)))) - (= - rtp.usr.X3_a_1 - (ite - rtp.usr.e02_a_1 - (ite X3 (+ rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) - (ite - rtp.usr.e03_a_1 - (ite X9 (- rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) - rtp.usr.X3_a_0))) - (let - ((X10 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X11 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X12 Bool (>= rtp.usr.X5_a_0 1))) - (and - (= - rtp.usr.X6_a_1 - (ite - rtp.usr.e06_a_1 - (ite X12 (+ rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e07_a_1 - (ite X6 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e08_a_1 - (ite X11 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e09_a_1 - (ite X10 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - rtp.usr.X6_a_0))))) - (= - rtp.usr.X5_a_1 - (ite - rtp.usr.e04_a_1 - (ite X8 (+ rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) - (ite - rtp.usr.e06_a_1 - (ite X12 (- rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) - rtp.usr.X5_a_0))) - (= - rtp.usr.X7_a_1 - (ite - rtp.usr.e08_a_1 - (ite X11 (+ rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) - (ite - rtp.usr.e10_a_1 - (ite X5 (- rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) - rtp.usr.X7_a_0))) - (= - rtp.usr.X8_a_1 - (ite - rtp.usr.e09_a_1 - (ite X10 (+ rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) - (ite - rtp.usr.e11_a_1 - (ite X4 (- rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) - rtp.usr.X8_a_0))) - (= rtp.usr.erreur_a_1 (ite (>= rtp.usr.X1_a_1 2) true false)) - (not rtp.res.init_flag_a_1)))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.abs_12_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_1_a_0)) - (and - (= top.res.abs_11_a_0 (and top.res.abs_10_a_0 (< X1 32767))) - (let - ((X2 Bool top.res.abs_12_a_0)) - (and - (= top.usr.OK_a_0 (=> X2 (>= X1 0))) - (__node_init_rtp_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.abs_12_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.abs_12_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_1_a_1)) - (and - (= top.res.abs_11_a_1 (and top.res.abs_10_a_1 (< X1 32767))) - (let - ((X2 Bool top.res.abs_12_a_1)) - (and - (= top.usr.OK_a_1 (=> X2 (>= X1 0))) - (__node_trans_rtp_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_11_a_1 - top.res.abs_12_a_1 - top.res.inst_1_a_1 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.abs_12 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_1)) - (and - (= top.res.abs_11 (and top.res.abs_10 (< X1 32767))) - (let - ((X2 Bool top.res.abs_12)) - (and - (= top.usr.OK (=> X2 (>= X1 0))) - (__node_init_rtp_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_11 top.res.abs_12 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_10 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.abs_12! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Int top.res.abs_1!)) - (and - (= top.res.abs_11! (and top.res.abs_10! (< X1 32767))) - (let - ((X2 Bool top.res.abs_12!)) - (and - (= top.usr.OK! (=> X2 (>= X1 0))) - (__node_trans_rtp_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_11! - top.res.abs_12! - top.res.inst_1! - top.res.abs_11 - top.res.abs_12 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_10! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_rtp_0 ((rtp.usr.e01_a_0 Bool) (rtp.usr.e02_a_0 Bool) (rtp.usr.e03_a_0 Bool) (rtp.usr.e04_a_0 Bool) (rtp.usr.e05_a_0 Bool) (rtp.usr.e06_a_0 Bool) (rtp.usr.e07_a_0 Bool) (rtp.usr.e08_a_0 Bool) (rtp.usr.e09_a_0 Bool) (rtp.usr.e10_a_0 Bool) (rtp.usr.e11_a_0 Bool) (rtp.usr.e12_a_0 Bool) (rtp.res.nondet_11 Int) (rtp.res.nondet_10 Int) (rtp.res.nondet_9 Int) (rtp.res.nondet_8 Int) (rtp.res.nondet_7 Int) (rtp.res.nondet_6 Int) (rtp.res.nondet_5 Int) (rtp.res.nondet_4 Int) (rtp.res.nondet_3 Int) (rtp.res.nondet_2 Int) (rtp.res.nondet_1 Int) (rtp.res.nondet_0 Int) (rtp.usr.X1_a_0 Int) (rtp.usr.X2_a_0 Int) (rtp.usr.X3_a_0 Int) (rtp.usr.X4_a_0 Int) (rtp.usr.X5_a_0 Int) (rtp.usr.X6_a_0 Int) (rtp.usr.X7_a_0 Int) (rtp.usr.X8_a_0 Int) (rtp.usr.X9_a_0 Int) (rtp.usr.erreur_a_0 Bool) (rtp.res.init_flag_a_0 Bool)) Bool + (and (= rtp.usr.X1_a_0 1) (let ((X1 (let ((X1 rtp.res.nondet_0)) (>= X1 1)))) (and (= rtp.usr.X2_a_0 0) (let ((X2 (let ((X2 rtp.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 rtp.res.nondet_11)) (>= X3 1)))) (and (= rtp.usr.X9_a_0 0) (let ((X4 (let ((X4 rtp.res.nondet_4)) (>= X4 1)))) (and (= rtp.usr.X4_a_0 0) (let ((X5 (let ((X5 rtp.res.nondet_2)) (>= X5 1)))) (and (= rtp.usr.X3_a_0 0) (let ((X6 (let ((X6 rtp.res.nondet_3)) (>= X6 1)))) (let ((X7 (let ((X7 rtp.res.nondet_6)) (>= X7 1)))) (and (= rtp.usr.X6_a_0 0) (let ((X8 (let ((X8 rtp.res.nondet_5)) (>= X8 1)))) (and (= rtp.usr.X5_a_0 0) (let ((X9 (let ((X9 rtp.res.nondet_7)) (>= X9 1)))) (let ((X10 (let ((X10 rtp.res.nondet_8)) (>= X10 1)))) (let ((X11 (let ((X11 rtp.res.nondet_9)) (>= X11 1)))) (and (= rtp.usr.X7_a_0 0) (let ((X12 (let ((X12 rtp.res.nondet_10)) (>= X12 1)))) (and (= rtp.usr.X8_a_0 0) (= rtp.usr.erreur_a_0 (ite (>= rtp.usr.X1_a_0 2) true false)) rtp.res.init_flag_a_0)))))))))))))))))))))) +(define-fun __node_trans_rtp_0 ((rtp.usr.e01_a_1 Bool) (rtp.usr.e02_a_1 Bool) (rtp.usr.e03_a_1 Bool) (rtp.usr.e04_a_1 Bool) (rtp.usr.e05_a_1 Bool) (rtp.usr.e06_a_1 Bool) (rtp.usr.e07_a_1 Bool) (rtp.usr.e08_a_1 Bool) (rtp.usr.e09_a_1 Bool) (rtp.usr.e10_a_1 Bool) (rtp.usr.e11_a_1 Bool) (rtp.usr.e12_a_1 Bool) (rtp.res.nondet_11 Int) (rtp.res.nondet_10 Int) (rtp.res.nondet_9 Int) (rtp.res.nondet_8 Int) (rtp.res.nondet_7 Int) (rtp.res.nondet_6 Int) (rtp.res.nondet_5 Int) (rtp.res.nondet_4 Int) (rtp.res.nondet_3 Int) (rtp.res.nondet_2 Int) (rtp.res.nondet_1 Int) (rtp.res.nondet_0 Int) (rtp.usr.X1_a_1 Int) (rtp.usr.X2_a_1 Int) (rtp.usr.X3_a_1 Int) (rtp.usr.X4_a_1 Int) (rtp.usr.X5_a_1 Int) (rtp.usr.X6_a_1 Int) (rtp.usr.X7_a_1 Int) (rtp.usr.X8_a_1 Int) (rtp.usr.X9_a_1 Int) (rtp.usr.erreur_a_1 Bool) (rtp.res.init_flag_a_1 Bool) (rtp.usr.e01_a_0 Bool) (rtp.usr.e02_a_0 Bool) (rtp.usr.e03_a_0 Bool) (rtp.usr.e04_a_0 Bool) (rtp.usr.e05_a_0 Bool) (rtp.usr.e06_a_0 Bool) (rtp.usr.e07_a_0 Bool) (rtp.usr.e08_a_0 Bool) (rtp.usr.e09_a_0 Bool) (rtp.usr.e10_a_0 Bool) (rtp.usr.e11_a_0 Bool) (rtp.usr.e12_a_0 Bool) (rtp.usr.X1_a_0 Int) (rtp.usr.X2_a_0 Int) (rtp.usr.X3_a_0 Int) (rtp.usr.X4_a_0 Int) (rtp.usr.X5_a_0 Int) (rtp.usr.X6_a_0 Int) (rtp.usr.X7_a_0 Int) (rtp.usr.X8_a_0 Int) (rtp.usr.X9_a_0 Int) (rtp.usr.erreur_a_0 Bool) (rtp.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= rtp.usr.X1_a_0 1))) (and (= rtp.usr.X1_a_1 (ite rtp.usr.e01_a_1 (ite X1 (- rtp.usr.X1_a_0 1) rtp.usr.X1_a_0) rtp.usr.X1_a_0)) (let ((X2 (>= rtp.usr.X9_a_0 1))) (let ((X3 (>= rtp.usr.X2_a_0 1))) (and (= rtp.usr.X2_a_1 (ite rtp.usr.e01_a_1 (ite X1 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) (ite rtp.usr.e02_a_1 (ite X3 (- rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) (ite rtp.usr.e12_a_1 (ite X2 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) rtp.usr.X2_a_0)))) (let ((X4 (>= rtp.usr.X8_a_0 1))) (let ((X5 (>= rtp.usr.X7_a_0 1))) (let ((X6 (>= rtp.usr.X6_a_0 1))) (let ((X7 (>= rtp.usr.X4_a_0 1))) (and (= rtp.usr.X9_a_1 (ite rtp.usr.e05_a_1 (ite X7 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e07_a_1 (ite X6 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e10_a_1 (ite X5 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e11_a_1 (ite X4 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e12_a_1 (ite X2 (- rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) rtp.usr.X9_a_0)))))) (let ((X8 (>= rtp.usr.X4_a_0 1))) (let ((X9 (>= rtp.usr.X3_a_0 1))) (and (= rtp.usr.X4_a_1 (ite rtp.usr.e03_a_1 (ite X9 (+ rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) (ite rtp.usr.e04_a_1 (ite X8 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) (ite rtp.usr.e05_a_1 (ite X7 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) rtp.usr.X4_a_0)))) (= rtp.usr.X3_a_1 (ite rtp.usr.e02_a_1 (ite X3 (+ rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) (ite rtp.usr.e03_a_1 (ite X9 (- rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) rtp.usr.X3_a_0))) (let ((X10 (>= rtp.usr.X6_a_0 1))) (let ((X11 (>= rtp.usr.X6_a_0 1))) (let ((X12 (>= rtp.usr.X5_a_0 1))) (and (= rtp.usr.X6_a_1 (ite rtp.usr.e06_a_1 (ite X12 (+ rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e07_a_1 (ite X6 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e08_a_1 (ite X11 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e09_a_1 (ite X10 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) rtp.usr.X6_a_0))))) (= rtp.usr.X5_a_1 (ite rtp.usr.e04_a_1 (ite X8 (+ rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) (ite rtp.usr.e06_a_1 (ite X12 (- rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) rtp.usr.X5_a_0))) (= rtp.usr.X7_a_1 (ite rtp.usr.e08_a_1 (ite X11 (+ rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) (ite rtp.usr.e10_a_1 (ite X5 (- rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) rtp.usr.X7_a_0))) (= rtp.usr.X8_a_1 (ite rtp.usr.e09_a_1 (ite X10 (+ rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) (ite rtp.usr.e11_a_1 (ite X4 (- rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) rtp.usr.X8_a_0))) (= rtp.usr.erreur_a_1 (ite (>= rtp.usr.X1_a_1 2) true false)) (not rtp.res.init_flag_a_1))))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.abs_12_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_1_a_0)) (and (= top.res.abs_11_a_0 (and top.res.abs_10_a_0 (< X1 32767))) (let ((X2 top.res.abs_12_a_0)) (and (= top.usr.OK_a_0 (=> X2 (>= X1 0))) (__node_init_rtp_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.abs_12_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.abs_12_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_1_a_1)) (and (= top.res.abs_11_a_1 (and top.res.abs_10_a_1 (< X1 32767))) (let ((X2 top.res.abs_12_a_1)) (and (= top.usr.OK_a_1 (=> X2 (>= X1 0))) (__node_trans_rtp_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_11_a_1 top.res.abs_12_a_1 top.res.inst_1_a_1 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_1)) (and (= top.res.abs_11 (and top.res.abs_10 (< X1 32767))) (let ((X2 top.res.abs_12)) (and (= top.usr.OK (=> X2 (>= X1 0))) (__node_init_rtp_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_11 top.res.abs_12 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_10 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.abs_12! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_1!)) (and (= top.res.abs_11! (and top.res.abs_10! (< X1 32767))) (let ((X2 top.res.abs_12!)) (and (= top.usr.OK! (=> X2 (>= X1 0))) (__node_trans_rtp_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_11! top.res.abs_12! top.res.inst_1! top.res.abs_11 top.res.abs_12 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_10! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_10 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/rtp_5.sl b/benchmarks/LIA/Lustre/rtp_5.sl index 1a2617d..65fd5ee 100644 --- a/benchmarks/LIA/Lustre/rtp_5.sl +++ b/benchmarks/LIA/Lustre/rtp_5.sl @@ -1,1659 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_rtp_0 ( - (rtp.usr.e01_a_0 Bool) - (rtp.usr.e02_a_0 Bool) - (rtp.usr.e03_a_0 Bool) - (rtp.usr.e04_a_0 Bool) - (rtp.usr.e05_a_0 Bool) - (rtp.usr.e06_a_0 Bool) - (rtp.usr.e07_a_0 Bool) - (rtp.usr.e08_a_0 Bool) - (rtp.usr.e09_a_0 Bool) - (rtp.usr.e10_a_0 Bool) - (rtp.usr.e11_a_0 Bool) - (rtp.usr.e12_a_0 Bool) - (rtp.res.nondet_11 Int) - (rtp.res.nondet_10 Int) - (rtp.res.nondet_9 Int) - (rtp.res.nondet_8 Int) - (rtp.res.nondet_7 Int) - (rtp.res.nondet_6 Int) - (rtp.res.nondet_5 Int) - (rtp.res.nondet_4 Int) - (rtp.res.nondet_3 Int) - (rtp.res.nondet_2 Int) - (rtp.res.nondet_1 Int) - (rtp.res.nondet_0 Int) - (rtp.usr.X1_a_0 Int) - (rtp.usr.X2_a_0 Int) - (rtp.usr.X3_a_0 Int) - (rtp.usr.X4_a_0 Int) - (rtp.usr.X5_a_0 Int) - (rtp.usr.X6_a_0 Int) - (rtp.usr.X7_a_0 Int) - (rtp.usr.X8_a_0 Int) - (rtp.usr.X9_a_0 Int) - (rtp.usr.erreur_a_0 Bool) - (rtp.res.init_flag_a_0 Bool) - ) Bool - - (and - (= rtp.usr.X1_a_0 1) - (let - ((X1 Bool (let ((X1 Int rtp.res.nondet_0)) (>= X1 1)))) - (and - (= rtp.usr.X2_a_0 0) - (let - ((X2 Bool (let ((X2 Int rtp.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int rtp.res.nondet_11)) (>= X3 1)))) - (and - (= rtp.usr.X9_a_0 0) - (let - ((X4 Bool (let ((X4 Int rtp.res.nondet_4)) (>= X4 1)))) - (and - (= rtp.usr.X4_a_0 0) - (let - ((X5 Bool (let ((X5 Int rtp.res.nondet_2)) (>= X5 1)))) - (and - (= rtp.usr.X3_a_0 0) - (let - ((X6 Bool (let ((X6 Int rtp.res.nondet_3)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int rtp.res.nondet_6)) (>= X7 1)))) - (and - (= rtp.usr.X6_a_0 0) - (let - ((X8 Bool (let ((X8 Int rtp.res.nondet_5)) (>= X8 1)))) - (and - (= rtp.usr.X5_a_0 0) - (let - ((X9 Bool (let ((X9 Int rtp.res.nondet_7)) (>= X9 1)))) - (let - ((X10 Bool (let ((X10 Int rtp.res.nondet_8)) (>= X10 1)))) - (let - ((X11 Bool (let ((X11 Int rtp.res.nondet_9)) (>= X11 1)))) - (and - (= rtp.usr.X7_a_0 0) - (let - ((X12 - Bool (let ((X12 Int rtp.res.nondet_10)) (>= X12 1)))) - (and - (= rtp.usr.X8_a_0 0) - (= - rtp.usr.erreur_a_0 - (ite (>= rtp.usr.X1_a_0 2) true false)) - rtp.res.init_flag_a_0))))))))))))))))))))) -) - -(define-fun - __node_trans_rtp_0 ( - (rtp.usr.e01_a_1 Bool) - (rtp.usr.e02_a_1 Bool) - (rtp.usr.e03_a_1 Bool) - (rtp.usr.e04_a_1 Bool) - (rtp.usr.e05_a_1 Bool) - (rtp.usr.e06_a_1 Bool) - (rtp.usr.e07_a_1 Bool) - (rtp.usr.e08_a_1 Bool) - (rtp.usr.e09_a_1 Bool) - (rtp.usr.e10_a_1 Bool) - (rtp.usr.e11_a_1 Bool) - (rtp.usr.e12_a_1 Bool) - (rtp.res.nondet_11 Int) - (rtp.res.nondet_10 Int) - (rtp.res.nondet_9 Int) - (rtp.res.nondet_8 Int) - (rtp.res.nondet_7 Int) - (rtp.res.nondet_6 Int) - (rtp.res.nondet_5 Int) - (rtp.res.nondet_4 Int) - (rtp.res.nondet_3 Int) - (rtp.res.nondet_2 Int) - (rtp.res.nondet_1 Int) - (rtp.res.nondet_0 Int) - (rtp.usr.X1_a_1 Int) - (rtp.usr.X2_a_1 Int) - (rtp.usr.X3_a_1 Int) - (rtp.usr.X4_a_1 Int) - (rtp.usr.X5_a_1 Int) - (rtp.usr.X6_a_1 Int) - (rtp.usr.X7_a_1 Int) - (rtp.usr.X8_a_1 Int) - (rtp.usr.X9_a_1 Int) - (rtp.usr.erreur_a_1 Bool) - (rtp.res.init_flag_a_1 Bool) - (rtp.usr.e01_a_0 Bool) - (rtp.usr.e02_a_0 Bool) - (rtp.usr.e03_a_0 Bool) - (rtp.usr.e04_a_0 Bool) - (rtp.usr.e05_a_0 Bool) - (rtp.usr.e06_a_0 Bool) - (rtp.usr.e07_a_0 Bool) - (rtp.usr.e08_a_0 Bool) - (rtp.usr.e09_a_0 Bool) - (rtp.usr.e10_a_0 Bool) - (rtp.usr.e11_a_0 Bool) - (rtp.usr.e12_a_0 Bool) - (rtp.usr.X1_a_0 Int) - (rtp.usr.X2_a_0 Int) - (rtp.usr.X3_a_0 Int) - (rtp.usr.X4_a_0 Int) - (rtp.usr.X5_a_0 Int) - (rtp.usr.X6_a_0 Int) - (rtp.usr.X7_a_0 Int) - (rtp.usr.X8_a_0 Int) - (rtp.usr.X9_a_0 Int) - (rtp.usr.erreur_a_0 Bool) - (rtp.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= rtp.usr.X1_a_0 1))) - (and - (= - rtp.usr.X1_a_1 - (ite - rtp.usr.e01_a_1 - (ite X1 (- rtp.usr.X1_a_0 1) rtp.usr.X1_a_0) - rtp.usr.X1_a_0)) - (let - ((X2 Bool (>= rtp.usr.X9_a_0 1))) - (let - ((X3 Bool (>= rtp.usr.X2_a_0 1))) - (and - (= - rtp.usr.X2_a_1 - (ite - rtp.usr.e01_a_1 - (ite X1 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - (ite - rtp.usr.e02_a_1 - (ite X3 (- rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - (ite - rtp.usr.e12_a_1 - (ite X2 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - rtp.usr.X2_a_0)))) - (let - ((X4 Bool (>= rtp.usr.X8_a_0 1))) - (let - ((X5 Bool (>= rtp.usr.X7_a_0 1))) - (let - ((X6 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X7 Bool (>= rtp.usr.X4_a_0 1))) - (and - (= - rtp.usr.X9_a_1 - (ite - rtp.usr.e05_a_1 - (ite X7 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e07_a_1 - (ite X6 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e10_a_1 - (ite X5 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e11_a_1 - (ite X4 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e12_a_1 - (ite X2 (- rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - rtp.usr.X9_a_0)))))) - (let - ((X8 Bool (>= rtp.usr.X4_a_0 1))) - (let - ((X9 Bool (>= rtp.usr.X3_a_0 1))) - (and - (= - rtp.usr.X4_a_1 - (ite - rtp.usr.e03_a_1 - (ite X9 (+ rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - (ite - rtp.usr.e04_a_1 - (ite X8 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - (ite - rtp.usr.e05_a_1 - (ite X7 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - rtp.usr.X4_a_0)))) - (= - rtp.usr.X3_a_1 - (ite - rtp.usr.e02_a_1 - (ite X3 (+ rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) - (ite - rtp.usr.e03_a_1 - (ite X9 (- rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) - rtp.usr.X3_a_0))) - (let - ((X10 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X11 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X12 Bool (>= rtp.usr.X5_a_0 1))) - (and - (= - rtp.usr.X6_a_1 - (ite - rtp.usr.e06_a_1 - (ite X12 (+ rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e07_a_1 - (ite X6 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e08_a_1 - (ite X11 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e09_a_1 - (ite X10 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - rtp.usr.X6_a_0))))) - (= - rtp.usr.X5_a_1 - (ite - rtp.usr.e04_a_1 - (ite X8 (+ rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) - (ite - rtp.usr.e06_a_1 - (ite X12 (- rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) - rtp.usr.X5_a_0))) - (= - rtp.usr.X7_a_1 - (ite - rtp.usr.e08_a_1 - (ite X11 (+ rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) - (ite - rtp.usr.e10_a_1 - (ite X5 (- rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) - rtp.usr.X7_a_0))) - (= - rtp.usr.X8_a_1 - (ite - rtp.usr.e09_a_1 - (ite X10 (+ rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) - (ite - rtp.usr.e11_a_1 - (ite X4 (- rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) - rtp.usr.X8_a_0))) - (= rtp.usr.erreur_a_1 (ite (>= rtp.usr.X1_a_1 2) true false)) - (not rtp.res.init_flag_a_1)))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.abs_12_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_2_a_0)) - (and - (= top.res.abs_11_a_0 (and top.res.abs_10_a_0 (< X1 32767))) - (let - ((X2 Bool top.res.abs_12_a_0)) - (and - (= top.usr.OK_a_0 (=> X2 (>= X1 0))) - (__node_init_rtp_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.abs_12_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.abs_12_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_2_a_1)) - (and - (= top.res.abs_11_a_1 (and top.res.abs_10_a_1 (< X1 32767))) - (let - ((X2 Bool top.res.abs_12_a_1)) - (and - (= top.usr.OK_a_1 (=> X2 (>= X1 0))) - (__node_trans_rtp_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_11_a_1 - top.res.abs_12_a_1 - top.res.inst_1_a_1 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.abs_12 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_2)) - (and - (= top.res.abs_11 (and top.res.abs_10 (< X1 32767))) - (let - ((X2 Bool top.res.abs_12)) - (and - (= top.usr.OK (=> X2 (>= X1 0))) - (__node_init_rtp_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_11 top.res.abs_12 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_10 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.abs_12! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Int top.res.abs_2!)) - (and - (= top.res.abs_11! (and top.res.abs_10! (< X1 32767))) - (let - ((X2 Bool top.res.abs_12!)) - (and - (= top.usr.OK! (=> X2 (>= X1 0))) - (__node_trans_rtp_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_11! - top.res.abs_12! - top.res.inst_1! - top.res.abs_11 - top.res.abs_12 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_10! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_rtp_0 ((rtp.usr.e01_a_0 Bool) (rtp.usr.e02_a_0 Bool) (rtp.usr.e03_a_0 Bool) (rtp.usr.e04_a_0 Bool) (rtp.usr.e05_a_0 Bool) (rtp.usr.e06_a_0 Bool) (rtp.usr.e07_a_0 Bool) (rtp.usr.e08_a_0 Bool) (rtp.usr.e09_a_0 Bool) (rtp.usr.e10_a_0 Bool) (rtp.usr.e11_a_0 Bool) (rtp.usr.e12_a_0 Bool) (rtp.res.nondet_11 Int) (rtp.res.nondet_10 Int) (rtp.res.nondet_9 Int) (rtp.res.nondet_8 Int) (rtp.res.nondet_7 Int) (rtp.res.nondet_6 Int) (rtp.res.nondet_5 Int) (rtp.res.nondet_4 Int) (rtp.res.nondet_3 Int) (rtp.res.nondet_2 Int) (rtp.res.nondet_1 Int) (rtp.res.nondet_0 Int) (rtp.usr.X1_a_0 Int) (rtp.usr.X2_a_0 Int) (rtp.usr.X3_a_0 Int) (rtp.usr.X4_a_0 Int) (rtp.usr.X5_a_0 Int) (rtp.usr.X6_a_0 Int) (rtp.usr.X7_a_0 Int) (rtp.usr.X8_a_0 Int) (rtp.usr.X9_a_0 Int) (rtp.usr.erreur_a_0 Bool) (rtp.res.init_flag_a_0 Bool)) Bool + (and (= rtp.usr.X1_a_0 1) (let ((X1 (let ((X1 rtp.res.nondet_0)) (>= X1 1)))) (and (= rtp.usr.X2_a_0 0) (let ((X2 (let ((X2 rtp.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 rtp.res.nondet_11)) (>= X3 1)))) (and (= rtp.usr.X9_a_0 0) (let ((X4 (let ((X4 rtp.res.nondet_4)) (>= X4 1)))) (and (= rtp.usr.X4_a_0 0) (let ((X5 (let ((X5 rtp.res.nondet_2)) (>= X5 1)))) (and (= rtp.usr.X3_a_0 0) (let ((X6 (let ((X6 rtp.res.nondet_3)) (>= X6 1)))) (let ((X7 (let ((X7 rtp.res.nondet_6)) (>= X7 1)))) (and (= rtp.usr.X6_a_0 0) (let ((X8 (let ((X8 rtp.res.nondet_5)) (>= X8 1)))) (and (= rtp.usr.X5_a_0 0) (let ((X9 (let ((X9 rtp.res.nondet_7)) (>= X9 1)))) (let ((X10 (let ((X10 rtp.res.nondet_8)) (>= X10 1)))) (let ((X11 (let ((X11 rtp.res.nondet_9)) (>= X11 1)))) (and (= rtp.usr.X7_a_0 0) (let ((X12 (let ((X12 rtp.res.nondet_10)) (>= X12 1)))) (and (= rtp.usr.X8_a_0 0) (= rtp.usr.erreur_a_0 (ite (>= rtp.usr.X1_a_0 2) true false)) rtp.res.init_flag_a_0)))))))))))))))))))))) +(define-fun __node_trans_rtp_0 ((rtp.usr.e01_a_1 Bool) (rtp.usr.e02_a_1 Bool) (rtp.usr.e03_a_1 Bool) (rtp.usr.e04_a_1 Bool) (rtp.usr.e05_a_1 Bool) (rtp.usr.e06_a_1 Bool) (rtp.usr.e07_a_1 Bool) (rtp.usr.e08_a_1 Bool) (rtp.usr.e09_a_1 Bool) (rtp.usr.e10_a_1 Bool) (rtp.usr.e11_a_1 Bool) (rtp.usr.e12_a_1 Bool) (rtp.res.nondet_11 Int) (rtp.res.nondet_10 Int) (rtp.res.nondet_9 Int) (rtp.res.nondet_8 Int) (rtp.res.nondet_7 Int) (rtp.res.nondet_6 Int) (rtp.res.nondet_5 Int) (rtp.res.nondet_4 Int) (rtp.res.nondet_3 Int) (rtp.res.nondet_2 Int) (rtp.res.nondet_1 Int) (rtp.res.nondet_0 Int) (rtp.usr.X1_a_1 Int) (rtp.usr.X2_a_1 Int) (rtp.usr.X3_a_1 Int) (rtp.usr.X4_a_1 Int) (rtp.usr.X5_a_1 Int) (rtp.usr.X6_a_1 Int) (rtp.usr.X7_a_1 Int) (rtp.usr.X8_a_1 Int) (rtp.usr.X9_a_1 Int) (rtp.usr.erreur_a_1 Bool) (rtp.res.init_flag_a_1 Bool) (rtp.usr.e01_a_0 Bool) (rtp.usr.e02_a_0 Bool) (rtp.usr.e03_a_0 Bool) (rtp.usr.e04_a_0 Bool) (rtp.usr.e05_a_0 Bool) (rtp.usr.e06_a_0 Bool) (rtp.usr.e07_a_0 Bool) (rtp.usr.e08_a_0 Bool) (rtp.usr.e09_a_0 Bool) (rtp.usr.e10_a_0 Bool) (rtp.usr.e11_a_0 Bool) (rtp.usr.e12_a_0 Bool) (rtp.usr.X1_a_0 Int) (rtp.usr.X2_a_0 Int) (rtp.usr.X3_a_0 Int) (rtp.usr.X4_a_0 Int) (rtp.usr.X5_a_0 Int) (rtp.usr.X6_a_0 Int) (rtp.usr.X7_a_0 Int) (rtp.usr.X8_a_0 Int) (rtp.usr.X9_a_0 Int) (rtp.usr.erreur_a_0 Bool) (rtp.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= rtp.usr.X1_a_0 1))) (and (= rtp.usr.X1_a_1 (ite rtp.usr.e01_a_1 (ite X1 (- rtp.usr.X1_a_0 1) rtp.usr.X1_a_0) rtp.usr.X1_a_0)) (let ((X2 (>= rtp.usr.X9_a_0 1))) (let ((X3 (>= rtp.usr.X2_a_0 1))) (and (= rtp.usr.X2_a_1 (ite rtp.usr.e01_a_1 (ite X1 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) (ite rtp.usr.e02_a_1 (ite X3 (- rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) (ite rtp.usr.e12_a_1 (ite X2 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) rtp.usr.X2_a_0)))) (let ((X4 (>= rtp.usr.X8_a_0 1))) (let ((X5 (>= rtp.usr.X7_a_0 1))) (let ((X6 (>= rtp.usr.X6_a_0 1))) (let ((X7 (>= rtp.usr.X4_a_0 1))) (and (= rtp.usr.X9_a_1 (ite rtp.usr.e05_a_1 (ite X7 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e07_a_1 (ite X6 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e10_a_1 (ite X5 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e11_a_1 (ite X4 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e12_a_1 (ite X2 (- rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) rtp.usr.X9_a_0)))))) (let ((X8 (>= rtp.usr.X4_a_0 1))) (let ((X9 (>= rtp.usr.X3_a_0 1))) (and (= rtp.usr.X4_a_1 (ite rtp.usr.e03_a_1 (ite X9 (+ rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) (ite rtp.usr.e04_a_1 (ite X8 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) (ite rtp.usr.e05_a_1 (ite X7 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) rtp.usr.X4_a_0)))) (= rtp.usr.X3_a_1 (ite rtp.usr.e02_a_1 (ite X3 (+ rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) (ite rtp.usr.e03_a_1 (ite X9 (- rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) rtp.usr.X3_a_0))) (let ((X10 (>= rtp.usr.X6_a_0 1))) (let ((X11 (>= rtp.usr.X6_a_0 1))) (let ((X12 (>= rtp.usr.X5_a_0 1))) (and (= rtp.usr.X6_a_1 (ite rtp.usr.e06_a_1 (ite X12 (+ rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e07_a_1 (ite X6 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e08_a_1 (ite X11 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e09_a_1 (ite X10 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) rtp.usr.X6_a_0))))) (= rtp.usr.X5_a_1 (ite rtp.usr.e04_a_1 (ite X8 (+ rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) (ite rtp.usr.e06_a_1 (ite X12 (- rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) rtp.usr.X5_a_0))) (= rtp.usr.X7_a_1 (ite rtp.usr.e08_a_1 (ite X11 (+ rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) (ite rtp.usr.e10_a_1 (ite X5 (- rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) rtp.usr.X7_a_0))) (= rtp.usr.X8_a_1 (ite rtp.usr.e09_a_1 (ite X10 (+ rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) (ite rtp.usr.e11_a_1 (ite X4 (- rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) rtp.usr.X8_a_0))) (= rtp.usr.erreur_a_1 (ite (>= rtp.usr.X1_a_1 2) true false)) (not rtp.res.init_flag_a_1))))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.abs_12_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_2_a_0)) (and (= top.res.abs_11_a_0 (and top.res.abs_10_a_0 (< X1 32767))) (let ((X2 top.res.abs_12_a_0)) (and (= top.usr.OK_a_0 (=> X2 (>= X1 0))) (__node_init_rtp_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.abs_12_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.abs_12_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_2_a_1)) (and (= top.res.abs_11_a_1 (and top.res.abs_10_a_1 (< X1 32767))) (let ((X2 top.res.abs_12_a_1)) (and (= top.usr.OK_a_1 (=> X2 (>= X1 0))) (__node_trans_rtp_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_11_a_1 top.res.abs_12_a_1 top.res.inst_1_a_1 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_2)) (and (= top.res.abs_11 (and top.res.abs_10 (< X1 32767))) (let ((X2 top.res.abs_12)) (and (= top.usr.OK (=> X2 (>= X1 0))) (__node_init_rtp_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_11 top.res.abs_12 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_10 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.abs_12! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_2!)) (and (= top.res.abs_11! (and top.res.abs_10! (< X1 32767))) (let ((X2 top.res.abs_12!)) (and (= top.usr.OK! (=> X2 (>= X1 0))) (__node_trans_rtp_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_11! top.res.abs_12! top.res.inst_1! top.res.abs_11 top.res.abs_12 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_10! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_10 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/rtp_5_e7_3972.sl b/benchmarks/LIA/Lustre/rtp_5_e7_3972.sl index e8f734b..187bbc6 100644 --- a/benchmarks/LIA/Lustre/rtp_5_e7_3972.sl +++ b/benchmarks/LIA/Lustre/rtp_5_e7_3972.sl @@ -1,1659 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_rtp_0 ( - (rtp.usr.e01_a_0 Bool) - (rtp.usr.e02_a_0 Bool) - (rtp.usr.e03_a_0 Bool) - (rtp.usr.e04_a_0 Bool) - (rtp.usr.e05_a_0 Bool) - (rtp.usr.e06_a_0 Bool) - (rtp.usr.e07_a_0 Bool) - (rtp.usr.e08_a_0 Bool) - (rtp.usr.e09_a_0 Bool) - (rtp.usr.e10_a_0 Bool) - (rtp.usr.e11_a_0 Bool) - (rtp.usr.e12_a_0 Bool) - (rtp.res.nondet_11 Int) - (rtp.res.nondet_10 Int) - (rtp.res.nondet_9 Int) - (rtp.res.nondet_8 Int) - (rtp.res.nondet_7 Int) - (rtp.res.nondet_6 Int) - (rtp.res.nondet_5 Int) - (rtp.res.nondet_4 Int) - (rtp.res.nondet_3 Int) - (rtp.res.nondet_2 Int) - (rtp.res.nondet_1 Int) - (rtp.res.nondet_0 Int) - (rtp.usr.X1_a_0 Int) - (rtp.usr.X2_a_0 Int) - (rtp.usr.X3_a_0 Int) - (rtp.usr.X4_a_0 Int) - (rtp.usr.X5_a_0 Int) - (rtp.usr.X6_a_0 Int) - (rtp.usr.X7_a_0 Int) - (rtp.usr.X8_a_0 Int) - (rtp.usr.X9_a_0 Int) - (rtp.usr.erreur_a_0 Bool) - (rtp.res.init_flag_a_0 Bool) - ) Bool - - (and - (= rtp.usr.X1_a_0 1) - (let - ((X1 Bool (let ((X1 Int rtp.res.nondet_0)) (>= X1 1)))) - (and - (= rtp.usr.X2_a_0 0) - (let - ((X2 Bool (let ((X2 Int rtp.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int rtp.res.nondet_11)) (>= X3 1)))) - (and - (= rtp.usr.X9_a_0 0) - (let - ((X4 Bool (let ((X4 Int rtp.res.nondet_4)) (>= X4 1)))) - (and - (= rtp.usr.X4_a_0 0) - (let - ((X5 Bool (let ((X5 Int rtp.res.nondet_2)) (>= X5 1)))) - (and - (= rtp.usr.X3_a_0 0) - (let - ((X6 Bool (let ((X6 Int rtp.res.nondet_3)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int rtp.res.nondet_6)) (>= X7 1)))) - (and - (= rtp.usr.X6_a_0 0) - (let - ((X8 Bool (let ((X8 Int rtp.res.nondet_5)) (>= X8 1)))) - (and - (= rtp.usr.X5_a_0 0) - (let - ((X9 Bool (let ((X9 Int rtp.res.nondet_7)) (>= X9 1)))) - (let - ((X10 Bool (let ((X10 Int rtp.res.nondet_8)) (>= X10 1)))) - (let - ((X11 Bool (let ((X11 Int rtp.res.nondet_9)) (>= X11 1)))) - (and - (= rtp.usr.X7_a_0 0) - (let - ((X12 - Bool (let ((X12 Int rtp.res.nondet_10)) (>= X12 1)))) - (and - (= rtp.usr.X8_a_0 0) - (= - rtp.usr.erreur_a_0 - (ite (>= rtp.usr.X1_a_0 2) true false)) - rtp.res.init_flag_a_0))))))))))))))))))))) -) - -(define-fun - __node_trans_rtp_0 ( - (rtp.usr.e01_a_1 Bool) - (rtp.usr.e02_a_1 Bool) - (rtp.usr.e03_a_1 Bool) - (rtp.usr.e04_a_1 Bool) - (rtp.usr.e05_a_1 Bool) - (rtp.usr.e06_a_1 Bool) - (rtp.usr.e07_a_1 Bool) - (rtp.usr.e08_a_1 Bool) - (rtp.usr.e09_a_1 Bool) - (rtp.usr.e10_a_1 Bool) - (rtp.usr.e11_a_1 Bool) - (rtp.usr.e12_a_1 Bool) - (rtp.res.nondet_11 Int) - (rtp.res.nondet_10 Int) - (rtp.res.nondet_9 Int) - (rtp.res.nondet_8 Int) - (rtp.res.nondet_7 Int) - (rtp.res.nondet_6 Int) - (rtp.res.nondet_5 Int) - (rtp.res.nondet_4 Int) - (rtp.res.nondet_3 Int) - (rtp.res.nondet_2 Int) - (rtp.res.nondet_1 Int) - (rtp.res.nondet_0 Int) - (rtp.usr.X1_a_1 Int) - (rtp.usr.X2_a_1 Int) - (rtp.usr.X3_a_1 Int) - (rtp.usr.X4_a_1 Int) - (rtp.usr.X5_a_1 Int) - (rtp.usr.X6_a_1 Int) - (rtp.usr.X7_a_1 Int) - (rtp.usr.X8_a_1 Int) - (rtp.usr.X9_a_1 Int) - (rtp.usr.erreur_a_1 Bool) - (rtp.res.init_flag_a_1 Bool) - (rtp.usr.e01_a_0 Bool) - (rtp.usr.e02_a_0 Bool) - (rtp.usr.e03_a_0 Bool) - (rtp.usr.e04_a_0 Bool) - (rtp.usr.e05_a_0 Bool) - (rtp.usr.e06_a_0 Bool) - (rtp.usr.e07_a_0 Bool) - (rtp.usr.e08_a_0 Bool) - (rtp.usr.e09_a_0 Bool) - (rtp.usr.e10_a_0 Bool) - (rtp.usr.e11_a_0 Bool) - (rtp.usr.e12_a_0 Bool) - (rtp.usr.X1_a_0 Int) - (rtp.usr.X2_a_0 Int) - (rtp.usr.X3_a_0 Int) - (rtp.usr.X4_a_0 Int) - (rtp.usr.X5_a_0 Int) - (rtp.usr.X6_a_0 Int) - (rtp.usr.X7_a_0 Int) - (rtp.usr.X8_a_0 Int) - (rtp.usr.X9_a_0 Int) - (rtp.usr.erreur_a_0 Bool) - (rtp.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= rtp.usr.X1_a_0 1))) - (and - (= - rtp.usr.X1_a_1 - (ite - rtp.usr.e01_a_1 - (ite X1 (- rtp.usr.X1_a_0 1) rtp.usr.X1_a_0) - rtp.usr.X1_a_0)) - (let - ((X2 Bool (>= rtp.usr.X9_a_0 1))) - (let - ((X3 Bool (>= rtp.usr.X2_a_0 1))) - (and - (= - rtp.usr.X2_a_1 - (ite - rtp.usr.e01_a_1 - (ite X1 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - (ite - rtp.usr.e02_a_1 - (ite X3 (- rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - (ite - rtp.usr.e12_a_1 - (ite X2 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - rtp.usr.X2_a_0)))) - (let - ((X4 Bool (>= rtp.usr.X8_a_0 1))) - (let - ((X5 Bool (>= rtp.usr.X7_a_0 1))) - (let - ((X6 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X7 Bool (>= rtp.usr.X4_a_0 1))) - (and - (= - rtp.usr.X9_a_1 - (ite - rtp.usr.e05_a_1 - (ite X7 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e07_a_1 - (ite X6 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e10_a_1 - (ite X5 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e11_a_1 - (ite X4 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e12_a_1 - (ite X2 (- rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - rtp.usr.X9_a_0)))))) - (let - ((X8 Bool (>= rtp.usr.X4_a_0 1))) - (let - ((X9 Bool (>= rtp.usr.X3_a_0 1))) - (and - (= - rtp.usr.X4_a_1 - (ite - rtp.usr.e03_a_1 - (ite X9 (+ rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - (ite - rtp.usr.e04_a_1 - (ite X8 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - (ite - rtp.usr.e05_a_1 - (ite X7 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - rtp.usr.X4_a_0)))) - (= - rtp.usr.X3_a_1 - (ite - rtp.usr.e02_a_1 - (ite X3 (+ rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) - (ite - rtp.usr.e03_a_1 - (ite X9 (- rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) - rtp.usr.X3_a_0))) - (let - ((X10 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X11 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X12 Bool (>= rtp.usr.X5_a_0 1))) - (and - (= - rtp.usr.X6_a_1 - (ite - rtp.usr.e06_a_1 - (ite X12 (+ rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e07_a_1 - (ite X6 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e08_a_1 - (ite X11 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e09_a_1 - (ite X10 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - rtp.usr.X6_a_0))))) - (= - rtp.usr.X5_a_1 - (ite - rtp.usr.e04_a_1 - (ite X8 (+ rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) - (ite - rtp.usr.e06_a_1 - (ite X12 (- rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) - rtp.usr.X5_a_0))) - (= - rtp.usr.X7_a_1 - (ite - rtp.usr.e08_a_1 - (ite X11 (+ rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) - (ite - rtp.usr.e10_a_1 - (ite X5 (- rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) - rtp.usr.X7_a_0))) - (= - rtp.usr.X8_a_1 - (ite - rtp.usr.e09_a_1 - (ite X10 (+ rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) - (ite - rtp.usr.e11_a_1 - (ite X4 (- rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) - rtp.usr.X8_a_0))) - (= rtp.usr.erreur_a_1 (ite (>= rtp.usr.X1_a_1 2) true false)) - (not rtp.res.init_flag_a_1)))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.abs_12_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_2_a_0)) - (and - (= top.res.abs_11_a_0 (and top.res.abs_10_a_0 (< X1 32767))) - (let - ((X2 Bool top.res.abs_12_a_0)) - (and - (= top.usr.OK_a_0 (=> X2 (>= X1 0))) - (__node_init_rtp_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.abs_12_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.abs_12_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_2_a_1)) - (and - (= top.res.abs_11_a_1 (and top.res.abs_10_a_1 (< X1 32767))) - (let - ((X2 Bool top.res.abs_12_a_1)) - (and - (= top.usr.OK_a_1 (=> X2 (>= X1 0))) - (__node_trans_rtp_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_11_a_1 - top.res.abs_12_a_1 - top.res.inst_1_a_1 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.abs_12 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_2)) - (and - (= top.res.abs_11 (and top.res.abs_10 (< X1 32767))) - (let - ((X2 Bool top.res.abs_12)) - (and - (= top.usr.OK (=> X2 (>= X1 0))) - (__node_init_rtp_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_11 top.res.abs_12 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_10 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.abs_12! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Int top.res.abs_2!)) - (and - (= top.res.abs_11! (and top.res.abs_10! (< X1 32767))) - (let - ((X2 Bool top.res.abs_12!)) - (and - (= top.usr.OK! (=> X2 (>= X1 0))) - (__node_trans_rtp_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_11! - top.res.abs_12! - top.res.inst_1! - top.res.abs_11 - top.res.abs_12 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_10! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_rtp_0 ((rtp.usr.e01_a_0 Bool) (rtp.usr.e02_a_0 Bool) (rtp.usr.e03_a_0 Bool) (rtp.usr.e04_a_0 Bool) (rtp.usr.e05_a_0 Bool) (rtp.usr.e06_a_0 Bool) (rtp.usr.e07_a_0 Bool) (rtp.usr.e08_a_0 Bool) (rtp.usr.e09_a_0 Bool) (rtp.usr.e10_a_0 Bool) (rtp.usr.e11_a_0 Bool) (rtp.usr.e12_a_0 Bool) (rtp.res.nondet_11 Int) (rtp.res.nondet_10 Int) (rtp.res.nondet_9 Int) (rtp.res.nondet_8 Int) (rtp.res.nondet_7 Int) (rtp.res.nondet_6 Int) (rtp.res.nondet_5 Int) (rtp.res.nondet_4 Int) (rtp.res.nondet_3 Int) (rtp.res.nondet_2 Int) (rtp.res.nondet_1 Int) (rtp.res.nondet_0 Int) (rtp.usr.X1_a_0 Int) (rtp.usr.X2_a_0 Int) (rtp.usr.X3_a_0 Int) (rtp.usr.X4_a_0 Int) (rtp.usr.X5_a_0 Int) (rtp.usr.X6_a_0 Int) (rtp.usr.X7_a_0 Int) (rtp.usr.X8_a_0 Int) (rtp.usr.X9_a_0 Int) (rtp.usr.erreur_a_0 Bool) (rtp.res.init_flag_a_0 Bool)) Bool + (and (= rtp.usr.X1_a_0 1) (let ((X1 (let ((X1 rtp.res.nondet_0)) (>= X1 1)))) (and (= rtp.usr.X2_a_0 0) (let ((X2 (let ((X2 rtp.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 rtp.res.nondet_11)) (>= X3 1)))) (and (= rtp.usr.X9_a_0 0) (let ((X4 (let ((X4 rtp.res.nondet_4)) (>= X4 1)))) (and (= rtp.usr.X4_a_0 0) (let ((X5 (let ((X5 rtp.res.nondet_2)) (>= X5 1)))) (and (= rtp.usr.X3_a_0 0) (let ((X6 (let ((X6 rtp.res.nondet_3)) (>= X6 1)))) (let ((X7 (let ((X7 rtp.res.nondet_6)) (>= X7 1)))) (and (= rtp.usr.X6_a_0 0) (let ((X8 (let ((X8 rtp.res.nondet_5)) (>= X8 1)))) (and (= rtp.usr.X5_a_0 0) (let ((X9 (let ((X9 rtp.res.nondet_7)) (>= X9 1)))) (let ((X10 (let ((X10 rtp.res.nondet_8)) (>= X10 1)))) (let ((X11 (let ((X11 rtp.res.nondet_9)) (>= X11 1)))) (and (= rtp.usr.X7_a_0 0) (let ((X12 (let ((X12 rtp.res.nondet_10)) (>= X12 1)))) (and (= rtp.usr.X8_a_0 0) (= rtp.usr.erreur_a_0 (ite (>= rtp.usr.X1_a_0 2) true false)) rtp.res.init_flag_a_0)))))))))))))))))))))) +(define-fun __node_trans_rtp_0 ((rtp.usr.e01_a_1 Bool) (rtp.usr.e02_a_1 Bool) (rtp.usr.e03_a_1 Bool) (rtp.usr.e04_a_1 Bool) (rtp.usr.e05_a_1 Bool) (rtp.usr.e06_a_1 Bool) (rtp.usr.e07_a_1 Bool) (rtp.usr.e08_a_1 Bool) (rtp.usr.e09_a_1 Bool) (rtp.usr.e10_a_1 Bool) (rtp.usr.e11_a_1 Bool) (rtp.usr.e12_a_1 Bool) (rtp.res.nondet_11 Int) (rtp.res.nondet_10 Int) (rtp.res.nondet_9 Int) (rtp.res.nondet_8 Int) (rtp.res.nondet_7 Int) (rtp.res.nondet_6 Int) (rtp.res.nondet_5 Int) (rtp.res.nondet_4 Int) (rtp.res.nondet_3 Int) (rtp.res.nondet_2 Int) (rtp.res.nondet_1 Int) (rtp.res.nondet_0 Int) (rtp.usr.X1_a_1 Int) (rtp.usr.X2_a_1 Int) (rtp.usr.X3_a_1 Int) (rtp.usr.X4_a_1 Int) (rtp.usr.X5_a_1 Int) (rtp.usr.X6_a_1 Int) (rtp.usr.X7_a_1 Int) (rtp.usr.X8_a_1 Int) (rtp.usr.X9_a_1 Int) (rtp.usr.erreur_a_1 Bool) (rtp.res.init_flag_a_1 Bool) (rtp.usr.e01_a_0 Bool) (rtp.usr.e02_a_0 Bool) (rtp.usr.e03_a_0 Bool) (rtp.usr.e04_a_0 Bool) (rtp.usr.e05_a_0 Bool) (rtp.usr.e06_a_0 Bool) (rtp.usr.e07_a_0 Bool) (rtp.usr.e08_a_0 Bool) (rtp.usr.e09_a_0 Bool) (rtp.usr.e10_a_0 Bool) (rtp.usr.e11_a_0 Bool) (rtp.usr.e12_a_0 Bool) (rtp.usr.X1_a_0 Int) (rtp.usr.X2_a_0 Int) (rtp.usr.X3_a_0 Int) (rtp.usr.X4_a_0 Int) (rtp.usr.X5_a_0 Int) (rtp.usr.X6_a_0 Int) (rtp.usr.X7_a_0 Int) (rtp.usr.X8_a_0 Int) (rtp.usr.X9_a_0 Int) (rtp.usr.erreur_a_0 Bool) (rtp.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= rtp.usr.X1_a_0 1))) (and (= rtp.usr.X1_a_1 (ite rtp.usr.e01_a_1 (ite X1 (- rtp.usr.X1_a_0 1) rtp.usr.X1_a_0) rtp.usr.X1_a_0)) (let ((X2 (>= rtp.usr.X9_a_0 1))) (let ((X3 (>= rtp.usr.X2_a_0 1))) (and (= rtp.usr.X2_a_1 (ite rtp.usr.e01_a_1 (ite X1 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) (ite rtp.usr.e02_a_1 (ite X3 (- rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) (ite rtp.usr.e12_a_1 (ite X2 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) rtp.usr.X2_a_0)))) (let ((X4 (>= rtp.usr.X8_a_0 1))) (let ((X5 (>= rtp.usr.X7_a_0 1))) (let ((X6 (>= rtp.usr.X6_a_0 1))) (let ((X7 (>= rtp.usr.X4_a_0 1))) (and (= rtp.usr.X9_a_1 (ite rtp.usr.e05_a_1 (ite X7 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e07_a_1 (ite X6 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e10_a_1 (ite X5 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e11_a_1 (ite X4 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e12_a_1 (ite X2 (- rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) rtp.usr.X9_a_0)))))) (let ((X8 (>= rtp.usr.X4_a_0 1))) (let ((X9 (>= rtp.usr.X3_a_0 1))) (and (= rtp.usr.X4_a_1 (ite rtp.usr.e03_a_1 (ite X9 (+ rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) (ite rtp.usr.e04_a_1 (ite X8 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) (ite rtp.usr.e05_a_1 (ite X7 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) rtp.usr.X4_a_0)))) (= rtp.usr.X3_a_1 (ite rtp.usr.e02_a_1 (ite X3 (+ rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) (ite rtp.usr.e03_a_1 (ite X9 (- rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) rtp.usr.X3_a_0))) (let ((X10 (>= rtp.usr.X6_a_0 1))) (let ((X11 (>= rtp.usr.X6_a_0 1))) (let ((X12 (>= rtp.usr.X5_a_0 1))) (and (= rtp.usr.X6_a_1 (ite rtp.usr.e06_a_1 (ite X12 (+ rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e07_a_1 (ite X6 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e08_a_1 (ite X11 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e09_a_1 (ite X10 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) rtp.usr.X6_a_0))))) (= rtp.usr.X5_a_1 (ite rtp.usr.e04_a_1 (ite X8 (+ rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) (ite rtp.usr.e06_a_1 (ite X12 (- rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) rtp.usr.X5_a_0))) (= rtp.usr.X7_a_1 (ite rtp.usr.e08_a_1 (ite X11 (+ rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) (ite rtp.usr.e10_a_1 (ite X5 (- rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) rtp.usr.X7_a_0))) (= rtp.usr.X8_a_1 (ite rtp.usr.e09_a_1 (ite X10 (+ rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) (ite rtp.usr.e11_a_1 (ite X4 (- rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) rtp.usr.X8_a_0))) (= rtp.usr.erreur_a_1 (ite (>= rtp.usr.X1_a_1 2) true false)) (not rtp.res.init_flag_a_1))))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.abs_12_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_2_a_0)) (and (= top.res.abs_11_a_0 (and top.res.abs_10_a_0 (< X1 32767))) (let ((X2 top.res.abs_12_a_0)) (and (= top.usr.OK_a_0 (=> X2 (>= X1 0))) (__node_init_rtp_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.abs_12_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.abs_12_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_2_a_1)) (and (= top.res.abs_11_a_1 (and top.res.abs_10_a_1 (< X1 32767))) (let ((X2 top.res.abs_12_a_1)) (and (= top.usr.OK_a_1 (=> X2 (>= X1 0))) (__node_trans_rtp_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_11_a_1 top.res.abs_12_a_1 top.res.inst_1_a_1 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_2)) (and (= top.res.abs_11 (and top.res.abs_10 (< X1 32767))) (let ((X2 top.res.abs_12)) (and (= top.usr.OK (=> X2 (>= X1 0))) (__node_init_rtp_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_11 top.res.abs_12 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_10 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.abs_12! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_2!)) (and (= top.res.abs_11! (and top.res.abs_10! (< X1 32767))) (let ((X2 top.res.abs_12!)) (and (= top.usr.OK! (=> X2 (>= X1 0))) (__node_trans_rtp_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_11! top.res.abs_12! top.res.inst_1! top.res.abs_11 top.res.abs_12 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_10! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_10 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/rtp_6.sl b/benchmarks/LIA/Lustre/rtp_6.sl index 60a7af4..b9e03f7 100644 --- a/benchmarks/LIA/Lustre/rtp_6.sl +++ b/benchmarks/LIA/Lustre/rtp_6.sl @@ -1,1659 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_rtp_0 ( - (rtp.usr.e01_a_0 Bool) - (rtp.usr.e02_a_0 Bool) - (rtp.usr.e03_a_0 Bool) - (rtp.usr.e04_a_0 Bool) - (rtp.usr.e05_a_0 Bool) - (rtp.usr.e06_a_0 Bool) - (rtp.usr.e07_a_0 Bool) - (rtp.usr.e08_a_0 Bool) - (rtp.usr.e09_a_0 Bool) - (rtp.usr.e10_a_0 Bool) - (rtp.usr.e11_a_0 Bool) - (rtp.usr.e12_a_0 Bool) - (rtp.res.nondet_11 Int) - (rtp.res.nondet_10 Int) - (rtp.res.nondet_9 Int) - (rtp.res.nondet_8 Int) - (rtp.res.nondet_7 Int) - (rtp.res.nondet_6 Int) - (rtp.res.nondet_5 Int) - (rtp.res.nondet_4 Int) - (rtp.res.nondet_3 Int) - (rtp.res.nondet_2 Int) - (rtp.res.nondet_1 Int) - (rtp.res.nondet_0 Int) - (rtp.usr.X1_a_0 Int) - (rtp.usr.X2_a_0 Int) - (rtp.usr.X3_a_0 Int) - (rtp.usr.X4_a_0 Int) - (rtp.usr.X5_a_0 Int) - (rtp.usr.X6_a_0 Int) - (rtp.usr.X7_a_0 Int) - (rtp.usr.X8_a_0 Int) - (rtp.usr.X9_a_0 Int) - (rtp.usr.erreur_a_0 Bool) - (rtp.res.init_flag_a_0 Bool) - ) Bool - - (and - (= rtp.usr.X1_a_0 1) - (let - ((X1 Bool (let ((X1 Int rtp.res.nondet_0)) (>= X1 1)))) - (and - (= rtp.usr.X2_a_0 0) - (let - ((X2 Bool (let ((X2 Int rtp.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int rtp.res.nondet_11)) (>= X3 1)))) - (and - (= rtp.usr.X9_a_0 0) - (let - ((X4 Bool (let ((X4 Int rtp.res.nondet_4)) (>= X4 1)))) - (and - (= rtp.usr.X4_a_0 0) - (let - ((X5 Bool (let ((X5 Int rtp.res.nondet_2)) (>= X5 1)))) - (and - (= rtp.usr.X3_a_0 0) - (let - ((X6 Bool (let ((X6 Int rtp.res.nondet_3)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int rtp.res.nondet_6)) (>= X7 1)))) - (and - (= rtp.usr.X6_a_0 0) - (let - ((X8 Bool (let ((X8 Int rtp.res.nondet_5)) (>= X8 1)))) - (and - (= rtp.usr.X5_a_0 0) - (let - ((X9 Bool (let ((X9 Int rtp.res.nondet_7)) (>= X9 1)))) - (let - ((X10 Bool (let ((X10 Int rtp.res.nondet_8)) (>= X10 1)))) - (let - ((X11 Bool (let ((X11 Int rtp.res.nondet_9)) (>= X11 1)))) - (and - (= rtp.usr.X7_a_0 0) - (let - ((X12 - Bool (let ((X12 Int rtp.res.nondet_10)) (>= X12 1)))) - (and - (= rtp.usr.X8_a_0 0) - (= - rtp.usr.erreur_a_0 - (ite (>= rtp.usr.X1_a_0 2) true false)) - rtp.res.init_flag_a_0))))))))))))))))))))) -) - -(define-fun - __node_trans_rtp_0 ( - (rtp.usr.e01_a_1 Bool) - (rtp.usr.e02_a_1 Bool) - (rtp.usr.e03_a_1 Bool) - (rtp.usr.e04_a_1 Bool) - (rtp.usr.e05_a_1 Bool) - (rtp.usr.e06_a_1 Bool) - (rtp.usr.e07_a_1 Bool) - (rtp.usr.e08_a_1 Bool) - (rtp.usr.e09_a_1 Bool) - (rtp.usr.e10_a_1 Bool) - (rtp.usr.e11_a_1 Bool) - (rtp.usr.e12_a_1 Bool) - (rtp.res.nondet_11 Int) - (rtp.res.nondet_10 Int) - (rtp.res.nondet_9 Int) - (rtp.res.nondet_8 Int) - (rtp.res.nondet_7 Int) - (rtp.res.nondet_6 Int) - (rtp.res.nondet_5 Int) - (rtp.res.nondet_4 Int) - (rtp.res.nondet_3 Int) - (rtp.res.nondet_2 Int) - (rtp.res.nondet_1 Int) - (rtp.res.nondet_0 Int) - (rtp.usr.X1_a_1 Int) - (rtp.usr.X2_a_1 Int) - (rtp.usr.X3_a_1 Int) - (rtp.usr.X4_a_1 Int) - (rtp.usr.X5_a_1 Int) - (rtp.usr.X6_a_1 Int) - (rtp.usr.X7_a_1 Int) - (rtp.usr.X8_a_1 Int) - (rtp.usr.X9_a_1 Int) - (rtp.usr.erreur_a_1 Bool) - (rtp.res.init_flag_a_1 Bool) - (rtp.usr.e01_a_0 Bool) - (rtp.usr.e02_a_0 Bool) - (rtp.usr.e03_a_0 Bool) - (rtp.usr.e04_a_0 Bool) - (rtp.usr.e05_a_0 Bool) - (rtp.usr.e06_a_0 Bool) - (rtp.usr.e07_a_0 Bool) - (rtp.usr.e08_a_0 Bool) - (rtp.usr.e09_a_0 Bool) - (rtp.usr.e10_a_0 Bool) - (rtp.usr.e11_a_0 Bool) - (rtp.usr.e12_a_0 Bool) - (rtp.usr.X1_a_0 Int) - (rtp.usr.X2_a_0 Int) - (rtp.usr.X3_a_0 Int) - (rtp.usr.X4_a_0 Int) - (rtp.usr.X5_a_0 Int) - (rtp.usr.X6_a_0 Int) - (rtp.usr.X7_a_0 Int) - (rtp.usr.X8_a_0 Int) - (rtp.usr.X9_a_0 Int) - (rtp.usr.erreur_a_0 Bool) - (rtp.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= rtp.usr.X1_a_0 1))) - (and - (= - rtp.usr.X1_a_1 - (ite - rtp.usr.e01_a_1 - (ite X1 (- rtp.usr.X1_a_0 1) rtp.usr.X1_a_0) - rtp.usr.X1_a_0)) - (let - ((X2 Bool (>= rtp.usr.X9_a_0 1))) - (let - ((X3 Bool (>= rtp.usr.X2_a_0 1))) - (and - (= - rtp.usr.X2_a_1 - (ite - rtp.usr.e01_a_1 - (ite X1 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - (ite - rtp.usr.e02_a_1 - (ite X3 (- rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - (ite - rtp.usr.e12_a_1 - (ite X2 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - rtp.usr.X2_a_0)))) - (let - ((X4 Bool (>= rtp.usr.X8_a_0 1))) - (let - ((X5 Bool (>= rtp.usr.X7_a_0 1))) - (let - ((X6 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X7 Bool (>= rtp.usr.X4_a_0 1))) - (and - (= - rtp.usr.X9_a_1 - (ite - rtp.usr.e05_a_1 - (ite X7 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e07_a_1 - (ite X6 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e10_a_1 - (ite X5 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e11_a_1 - (ite X4 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e12_a_1 - (ite X2 (- rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - rtp.usr.X9_a_0)))))) - (let - ((X8 Bool (>= rtp.usr.X4_a_0 1))) - (let - ((X9 Bool (>= rtp.usr.X3_a_0 1))) - (and - (= - rtp.usr.X4_a_1 - (ite - rtp.usr.e03_a_1 - (ite X9 (+ rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - (ite - rtp.usr.e04_a_1 - (ite X8 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - (ite - rtp.usr.e05_a_1 - (ite X7 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - rtp.usr.X4_a_0)))) - (= - rtp.usr.X3_a_1 - (ite - rtp.usr.e02_a_1 - (ite X3 (+ rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) - (ite - rtp.usr.e03_a_1 - (ite X9 (- rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) - rtp.usr.X3_a_0))) - (let - ((X10 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X11 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X12 Bool (>= rtp.usr.X5_a_0 1))) - (and - (= - rtp.usr.X6_a_1 - (ite - rtp.usr.e06_a_1 - (ite X12 (+ rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e07_a_1 - (ite X6 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e08_a_1 - (ite X11 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e09_a_1 - (ite X10 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - rtp.usr.X6_a_0))))) - (= - rtp.usr.X5_a_1 - (ite - rtp.usr.e04_a_1 - (ite X8 (+ rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) - (ite - rtp.usr.e06_a_1 - (ite X12 (- rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) - rtp.usr.X5_a_0))) - (= - rtp.usr.X7_a_1 - (ite - rtp.usr.e08_a_1 - (ite X11 (+ rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) - (ite - rtp.usr.e10_a_1 - (ite X5 (- rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) - rtp.usr.X7_a_0))) - (= - rtp.usr.X8_a_1 - (ite - rtp.usr.e09_a_1 - (ite X10 (+ rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) - (ite - rtp.usr.e11_a_1 - (ite X4 (- rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) - rtp.usr.X8_a_0))) - (= rtp.usr.erreur_a_1 (ite (>= rtp.usr.X1_a_1 2) true false)) - (not rtp.res.init_flag_a_1)))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.abs_12_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_3_a_0)) - (and - (= top.res.abs_11_a_0 (and top.res.abs_10_a_0 (< X1 32767))) - (let - ((X2 Bool top.res.abs_12_a_0)) - (and - (= top.usr.OK_a_0 (=> X2 (>= X1 0))) - (__node_init_rtp_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.abs_12_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.abs_12_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_3_a_1)) - (and - (= top.res.abs_11_a_1 (and top.res.abs_10_a_1 (< X1 32767))) - (let - ((X2 Bool top.res.abs_12_a_1)) - (and - (= top.usr.OK_a_1 (=> X2 (>= X1 0))) - (__node_trans_rtp_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_11_a_1 - top.res.abs_12_a_1 - top.res.inst_1_a_1 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.abs_12 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_3)) - (and - (= top.res.abs_11 (and top.res.abs_10 (< X1 32767))) - (let - ((X2 Bool top.res.abs_12)) - (and - (= top.usr.OK (=> X2 (>= X1 0))) - (__node_init_rtp_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_11 top.res.abs_12 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_10 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.abs_12! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Int top.res.abs_3!)) - (and - (= top.res.abs_11! (and top.res.abs_10! (< X1 32767))) - (let - ((X2 Bool top.res.abs_12!)) - (and - (= top.usr.OK! (=> X2 (>= X1 0))) - (__node_trans_rtp_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_11! - top.res.abs_12! - top.res.inst_1! - top.res.abs_11 - top.res.abs_12 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_10! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_rtp_0 ((rtp.usr.e01_a_0 Bool) (rtp.usr.e02_a_0 Bool) (rtp.usr.e03_a_0 Bool) (rtp.usr.e04_a_0 Bool) (rtp.usr.e05_a_0 Bool) (rtp.usr.e06_a_0 Bool) (rtp.usr.e07_a_0 Bool) (rtp.usr.e08_a_0 Bool) (rtp.usr.e09_a_0 Bool) (rtp.usr.e10_a_0 Bool) (rtp.usr.e11_a_0 Bool) (rtp.usr.e12_a_0 Bool) (rtp.res.nondet_11 Int) (rtp.res.nondet_10 Int) (rtp.res.nondet_9 Int) (rtp.res.nondet_8 Int) (rtp.res.nondet_7 Int) (rtp.res.nondet_6 Int) (rtp.res.nondet_5 Int) (rtp.res.nondet_4 Int) (rtp.res.nondet_3 Int) (rtp.res.nondet_2 Int) (rtp.res.nondet_1 Int) (rtp.res.nondet_0 Int) (rtp.usr.X1_a_0 Int) (rtp.usr.X2_a_0 Int) (rtp.usr.X3_a_0 Int) (rtp.usr.X4_a_0 Int) (rtp.usr.X5_a_0 Int) (rtp.usr.X6_a_0 Int) (rtp.usr.X7_a_0 Int) (rtp.usr.X8_a_0 Int) (rtp.usr.X9_a_0 Int) (rtp.usr.erreur_a_0 Bool) (rtp.res.init_flag_a_0 Bool)) Bool + (and (= rtp.usr.X1_a_0 1) (let ((X1 (let ((X1 rtp.res.nondet_0)) (>= X1 1)))) (and (= rtp.usr.X2_a_0 0) (let ((X2 (let ((X2 rtp.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 rtp.res.nondet_11)) (>= X3 1)))) (and (= rtp.usr.X9_a_0 0) (let ((X4 (let ((X4 rtp.res.nondet_4)) (>= X4 1)))) (and (= rtp.usr.X4_a_0 0) (let ((X5 (let ((X5 rtp.res.nondet_2)) (>= X5 1)))) (and (= rtp.usr.X3_a_0 0) (let ((X6 (let ((X6 rtp.res.nondet_3)) (>= X6 1)))) (let ((X7 (let ((X7 rtp.res.nondet_6)) (>= X7 1)))) (and (= rtp.usr.X6_a_0 0) (let ((X8 (let ((X8 rtp.res.nondet_5)) (>= X8 1)))) (and (= rtp.usr.X5_a_0 0) (let ((X9 (let ((X9 rtp.res.nondet_7)) (>= X9 1)))) (let ((X10 (let ((X10 rtp.res.nondet_8)) (>= X10 1)))) (let ((X11 (let ((X11 rtp.res.nondet_9)) (>= X11 1)))) (and (= rtp.usr.X7_a_0 0) (let ((X12 (let ((X12 rtp.res.nondet_10)) (>= X12 1)))) (and (= rtp.usr.X8_a_0 0) (= rtp.usr.erreur_a_0 (ite (>= rtp.usr.X1_a_0 2) true false)) rtp.res.init_flag_a_0)))))))))))))))))))))) +(define-fun __node_trans_rtp_0 ((rtp.usr.e01_a_1 Bool) (rtp.usr.e02_a_1 Bool) (rtp.usr.e03_a_1 Bool) (rtp.usr.e04_a_1 Bool) (rtp.usr.e05_a_1 Bool) (rtp.usr.e06_a_1 Bool) (rtp.usr.e07_a_1 Bool) (rtp.usr.e08_a_1 Bool) (rtp.usr.e09_a_1 Bool) (rtp.usr.e10_a_1 Bool) (rtp.usr.e11_a_1 Bool) (rtp.usr.e12_a_1 Bool) (rtp.res.nondet_11 Int) (rtp.res.nondet_10 Int) (rtp.res.nondet_9 Int) (rtp.res.nondet_8 Int) (rtp.res.nondet_7 Int) (rtp.res.nondet_6 Int) (rtp.res.nondet_5 Int) (rtp.res.nondet_4 Int) (rtp.res.nondet_3 Int) (rtp.res.nondet_2 Int) (rtp.res.nondet_1 Int) (rtp.res.nondet_0 Int) (rtp.usr.X1_a_1 Int) (rtp.usr.X2_a_1 Int) (rtp.usr.X3_a_1 Int) (rtp.usr.X4_a_1 Int) (rtp.usr.X5_a_1 Int) (rtp.usr.X6_a_1 Int) (rtp.usr.X7_a_1 Int) (rtp.usr.X8_a_1 Int) (rtp.usr.X9_a_1 Int) (rtp.usr.erreur_a_1 Bool) (rtp.res.init_flag_a_1 Bool) (rtp.usr.e01_a_0 Bool) (rtp.usr.e02_a_0 Bool) (rtp.usr.e03_a_0 Bool) (rtp.usr.e04_a_0 Bool) (rtp.usr.e05_a_0 Bool) (rtp.usr.e06_a_0 Bool) (rtp.usr.e07_a_0 Bool) (rtp.usr.e08_a_0 Bool) (rtp.usr.e09_a_0 Bool) (rtp.usr.e10_a_0 Bool) (rtp.usr.e11_a_0 Bool) (rtp.usr.e12_a_0 Bool) (rtp.usr.X1_a_0 Int) (rtp.usr.X2_a_0 Int) (rtp.usr.X3_a_0 Int) (rtp.usr.X4_a_0 Int) (rtp.usr.X5_a_0 Int) (rtp.usr.X6_a_0 Int) (rtp.usr.X7_a_0 Int) (rtp.usr.X8_a_0 Int) (rtp.usr.X9_a_0 Int) (rtp.usr.erreur_a_0 Bool) (rtp.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= rtp.usr.X1_a_0 1))) (and (= rtp.usr.X1_a_1 (ite rtp.usr.e01_a_1 (ite X1 (- rtp.usr.X1_a_0 1) rtp.usr.X1_a_0) rtp.usr.X1_a_0)) (let ((X2 (>= rtp.usr.X9_a_0 1))) (let ((X3 (>= rtp.usr.X2_a_0 1))) (and (= rtp.usr.X2_a_1 (ite rtp.usr.e01_a_1 (ite X1 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) (ite rtp.usr.e02_a_1 (ite X3 (- rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) (ite rtp.usr.e12_a_1 (ite X2 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) rtp.usr.X2_a_0)))) (let ((X4 (>= rtp.usr.X8_a_0 1))) (let ((X5 (>= rtp.usr.X7_a_0 1))) (let ((X6 (>= rtp.usr.X6_a_0 1))) (let ((X7 (>= rtp.usr.X4_a_0 1))) (and (= rtp.usr.X9_a_1 (ite rtp.usr.e05_a_1 (ite X7 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e07_a_1 (ite X6 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e10_a_1 (ite X5 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e11_a_1 (ite X4 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e12_a_1 (ite X2 (- rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) rtp.usr.X9_a_0)))))) (let ((X8 (>= rtp.usr.X4_a_0 1))) (let ((X9 (>= rtp.usr.X3_a_0 1))) (and (= rtp.usr.X4_a_1 (ite rtp.usr.e03_a_1 (ite X9 (+ rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) (ite rtp.usr.e04_a_1 (ite X8 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) (ite rtp.usr.e05_a_1 (ite X7 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) rtp.usr.X4_a_0)))) (= rtp.usr.X3_a_1 (ite rtp.usr.e02_a_1 (ite X3 (+ rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) (ite rtp.usr.e03_a_1 (ite X9 (- rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) rtp.usr.X3_a_0))) (let ((X10 (>= rtp.usr.X6_a_0 1))) (let ((X11 (>= rtp.usr.X6_a_0 1))) (let ((X12 (>= rtp.usr.X5_a_0 1))) (and (= rtp.usr.X6_a_1 (ite rtp.usr.e06_a_1 (ite X12 (+ rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e07_a_1 (ite X6 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e08_a_1 (ite X11 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e09_a_1 (ite X10 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) rtp.usr.X6_a_0))))) (= rtp.usr.X5_a_1 (ite rtp.usr.e04_a_1 (ite X8 (+ rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) (ite rtp.usr.e06_a_1 (ite X12 (- rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) rtp.usr.X5_a_0))) (= rtp.usr.X7_a_1 (ite rtp.usr.e08_a_1 (ite X11 (+ rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) (ite rtp.usr.e10_a_1 (ite X5 (- rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) rtp.usr.X7_a_0))) (= rtp.usr.X8_a_1 (ite rtp.usr.e09_a_1 (ite X10 (+ rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) (ite rtp.usr.e11_a_1 (ite X4 (- rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) rtp.usr.X8_a_0))) (= rtp.usr.erreur_a_1 (ite (>= rtp.usr.X1_a_1 2) true false)) (not rtp.res.init_flag_a_1))))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.abs_12_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_3_a_0)) (and (= top.res.abs_11_a_0 (and top.res.abs_10_a_0 (< X1 32767))) (let ((X2 top.res.abs_12_a_0)) (and (= top.usr.OK_a_0 (=> X2 (>= X1 0))) (__node_init_rtp_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.abs_12_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.abs_12_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_3_a_1)) (and (= top.res.abs_11_a_1 (and top.res.abs_10_a_1 (< X1 32767))) (let ((X2 top.res.abs_12_a_1)) (and (= top.usr.OK_a_1 (=> X2 (>= X1 0))) (__node_trans_rtp_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_11_a_1 top.res.abs_12_a_1 top.res.inst_1_a_1 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_3)) (and (= top.res.abs_11 (and top.res.abs_10 (< X1 32767))) (let ((X2 top.res.abs_12)) (and (= top.usr.OK (=> X2 (>= X1 0))) (__node_init_rtp_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_11 top.res.abs_12 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_10 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.abs_12! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_3!)) (and (= top.res.abs_11! (and top.res.abs_10! (< X1 32767))) (let ((X2 top.res.abs_12!)) (and (= top.usr.OK! (=> X2 (>= X1 0))) (__node_trans_rtp_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_11! top.res.abs_12! top.res.inst_1! top.res.abs_11 top.res.abs_12 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_10! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_10 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/rtp_7.sl b/benchmarks/LIA/Lustre/rtp_7.sl index 9a6549e..e4d80a3 100644 --- a/benchmarks/LIA/Lustre/rtp_7.sl +++ b/benchmarks/LIA/Lustre/rtp_7.sl @@ -1,1659 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_rtp_0 ( - (rtp.usr.e01_a_0 Bool) - (rtp.usr.e02_a_0 Bool) - (rtp.usr.e03_a_0 Bool) - (rtp.usr.e04_a_0 Bool) - (rtp.usr.e05_a_0 Bool) - (rtp.usr.e06_a_0 Bool) - (rtp.usr.e07_a_0 Bool) - (rtp.usr.e08_a_0 Bool) - (rtp.usr.e09_a_0 Bool) - (rtp.usr.e10_a_0 Bool) - (rtp.usr.e11_a_0 Bool) - (rtp.usr.e12_a_0 Bool) - (rtp.res.nondet_11 Int) - (rtp.res.nondet_10 Int) - (rtp.res.nondet_9 Int) - (rtp.res.nondet_8 Int) - (rtp.res.nondet_7 Int) - (rtp.res.nondet_6 Int) - (rtp.res.nondet_5 Int) - (rtp.res.nondet_4 Int) - (rtp.res.nondet_3 Int) - (rtp.res.nondet_2 Int) - (rtp.res.nondet_1 Int) - (rtp.res.nondet_0 Int) - (rtp.usr.X1_a_0 Int) - (rtp.usr.X2_a_0 Int) - (rtp.usr.X3_a_0 Int) - (rtp.usr.X4_a_0 Int) - (rtp.usr.X5_a_0 Int) - (rtp.usr.X6_a_0 Int) - (rtp.usr.X7_a_0 Int) - (rtp.usr.X8_a_0 Int) - (rtp.usr.X9_a_0 Int) - (rtp.usr.erreur_a_0 Bool) - (rtp.res.init_flag_a_0 Bool) - ) Bool - - (and - (= rtp.usr.X1_a_0 1) - (let - ((X1 Bool (let ((X1 Int rtp.res.nondet_0)) (>= X1 1)))) - (and - (= rtp.usr.X2_a_0 0) - (let - ((X2 Bool (let ((X2 Int rtp.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int rtp.res.nondet_11)) (>= X3 1)))) - (and - (= rtp.usr.X9_a_0 0) - (let - ((X4 Bool (let ((X4 Int rtp.res.nondet_4)) (>= X4 1)))) - (and - (= rtp.usr.X4_a_0 0) - (let - ((X5 Bool (let ((X5 Int rtp.res.nondet_2)) (>= X5 1)))) - (and - (= rtp.usr.X3_a_0 0) - (let - ((X6 Bool (let ((X6 Int rtp.res.nondet_3)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int rtp.res.nondet_6)) (>= X7 1)))) - (and - (= rtp.usr.X6_a_0 0) - (let - ((X8 Bool (let ((X8 Int rtp.res.nondet_5)) (>= X8 1)))) - (and - (= rtp.usr.X5_a_0 0) - (let - ((X9 Bool (let ((X9 Int rtp.res.nondet_7)) (>= X9 1)))) - (let - ((X10 Bool (let ((X10 Int rtp.res.nondet_8)) (>= X10 1)))) - (let - ((X11 Bool (let ((X11 Int rtp.res.nondet_9)) (>= X11 1)))) - (and - (= rtp.usr.X7_a_0 0) - (let - ((X12 - Bool (let ((X12 Int rtp.res.nondet_10)) (>= X12 1)))) - (and - (= rtp.usr.X8_a_0 0) - (= - rtp.usr.erreur_a_0 - (ite (>= rtp.usr.X1_a_0 2) true false)) - rtp.res.init_flag_a_0))))))))))))))))))))) -) - -(define-fun - __node_trans_rtp_0 ( - (rtp.usr.e01_a_1 Bool) - (rtp.usr.e02_a_1 Bool) - (rtp.usr.e03_a_1 Bool) - (rtp.usr.e04_a_1 Bool) - (rtp.usr.e05_a_1 Bool) - (rtp.usr.e06_a_1 Bool) - (rtp.usr.e07_a_1 Bool) - (rtp.usr.e08_a_1 Bool) - (rtp.usr.e09_a_1 Bool) - (rtp.usr.e10_a_1 Bool) - (rtp.usr.e11_a_1 Bool) - (rtp.usr.e12_a_1 Bool) - (rtp.res.nondet_11 Int) - (rtp.res.nondet_10 Int) - (rtp.res.nondet_9 Int) - (rtp.res.nondet_8 Int) - (rtp.res.nondet_7 Int) - (rtp.res.nondet_6 Int) - (rtp.res.nondet_5 Int) - (rtp.res.nondet_4 Int) - (rtp.res.nondet_3 Int) - (rtp.res.nondet_2 Int) - (rtp.res.nondet_1 Int) - (rtp.res.nondet_0 Int) - (rtp.usr.X1_a_1 Int) - (rtp.usr.X2_a_1 Int) - (rtp.usr.X3_a_1 Int) - (rtp.usr.X4_a_1 Int) - (rtp.usr.X5_a_1 Int) - (rtp.usr.X6_a_1 Int) - (rtp.usr.X7_a_1 Int) - (rtp.usr.X8_a_1 Int) - (rtp.usr.X9_a_1 Int) - (rtp.usr.erreur_a_1 Bool) - (rtp.res.init_flag_a_1 Bool) - (rtp.usr.e01_a_0 Bool) - (rtp.usr.e02_a_0 Bool) - (rtp.usr.e03_a_0 Bool) - (rtp.usr.e04_a_0 Bool) - (rtp.usr.e05_a_0 Bool) - (rtp.usr.e06_a_0 Bool) - (rtp.usr.e07_a_0 Bool) - (rtp.usr.e08_a_0 Bool) - (rtp.usr.e09_a_0 Bool) - (rtp.usr.e10_a_0 Bool) - (rtp.usr.e11_a_0 Bool) - (rtp.usr.e12_a_0 Bool) - (rtp.usr.X1_a_0 Int) - (rtp.usr.X2_a_0 Int) - (rtp.usr.X3_a_0 Int) - (rtp.usr.X4_a_0 Int) - (rtp.usr.X5_a_0 Int) - (rtp.usr.X6_a_0 Int) - (rtp.usr.X7_a_0 Int) - (rtp.usr.X8_a_0 Int) - (rtp.usr.X9_a_0 Int) - (rtp.usr.erreur_a_0 Bool) - (rtp.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= rtp.usr.X1_a_0 1))) - (and - (= - rtp.usr.X1_a_1 - (ite - rtp.usr.e01_a_1 - (ite X1 (- rtp.usr.X1_a_0 1) rtp.usr.X1_a_0) - rtp.usr.X1_a_0)) - (let - ((X2 Bool (>= rtp.usr.X9_a_0 1))) - (let - ((X3 Bool (>= rtp.usr.X2_a_0 1))) - (and - (= - rtp.usr.X2_a_1 - (ite - rtp.usr.e01_a_1 - (ite X1 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - (ite - rtp.usr.e02_a_1 - (ite X3 (- rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - (ite - rtp.usr.e12_a_1 - (ite X2 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - rtp.usr.X2_a_0)))) - (let - ((X4 Bool (>= rtp.usr.X8_a_0 1))) - (let - ((X5 Bool (>= rtp.usr.X7_a_0 1))) - (let - ((X6 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X7 Bool (>= rtp.usr.X4_a_0 1))) - (and - (= - rtp.usr.X9_a_1 - (ite - rtp.usr.e05_a_1 - (ite X7 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e07_a_1 - (ite X6 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e10_a_1 - (ite X5 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e11_a_1 - (ite X4 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e12_a_1 - (ite X2 (- rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - rtp.usr.X9_a_0)))))) - (let - ((X8 Bool (>= rtp.usr.X4_a_0 1))) - (let - ((X9 Bool (>= rtp.usr.X3_a_0 1))) - (and - (= - rtp.usr.X4_a_1 - (ite - rtp.usr.e03_a_1 - (ite X9 (+ rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - (ite - rtp.usr.e04_a_1 - (ite X8 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - (ite - rtp.usr.e05_a_1 - (ite X7 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - rtp.usr.X4_a_0)))) - (= - rtp.usr.X3_a_1 - (ite - rtp.usr.e02_a_1 - (ite X3 (+ rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) - (ite - rtp.usr.e03_a_1 - (ite X9 (- rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) - rtp.usr.X3_a_0))) - (let - ((X10 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X11 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X12 Bool (>= rtp.usr.X5_a_0 1))) - (and - (= - rtp.usr.X6_a_1 - (ite - rtp.usr.e06_a_1 - (ite X12 (+ rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e07_a_1 - (ite X6 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e08_a_1 - (ite X11 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e09_a_1 - (ite X10 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - rtp.usr.X6_a_0))))) - (= - rtp.usr.X5_a_1 - (ite - rtp.usr.e04_a_1 - (ite X8 (+ rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) - (ite - rtp.usr.e06_a_1 - (ite X12 (- rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) - rtp.usr.X5_a_0))) - (= - rtp.usr.X7_a_1 - (ite - rtp.usr.e08_a_1 - (ite X11 (+ rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) - (ite - rtp.usr.e10_a_1 - (ite X5 (- rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) - rtp.usr.X7_a_0))) - (= - rtp.usr.X8_a_1 - (ite - rtp.usr.e09_a_1 - (ite X10 (+ rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) - (ite - rtp.usr.e11_a_1 - (ite X4 (- rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) - rtp.usr.X8_a_0))) - (= rtp.usr.erreur_a_1 (ite (>= rtp.usr.X1_a_1 2) true false)) - (not rtp.res.init_flag_a_1)))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.abs_12_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_4_a_0)) - (and - (= top.res.abs_11_a_0 (and top.res.abs_10_a_0 (< X1 32767))) - (let - ((X2 Bool top.res.abs_12_a_0)) - (and - (= top.usr.OK_a_0 (=> X2 (>= X1 0))) - (__node_init_rtp_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.abs_12_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.abs_12_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_4_a_1)) - (and - (= top.res.abs_11_a_1 (and top.res.abs_10_a_1 (< X1 32767))) - (let - ((X2 Bool top.res.abs_12_a_1)) - (and - (= top.usr.OK_a_1 (=> X2 (>= X1 0))) - (__node_trans_rtp_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_11_a_1 - top.res.abs_12_a_1 - top.res.inst_1_a_1 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.abs_12 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_4)) - (and - (= top.res.abs_11 (and top.res.abs_10 (< X1 32767))) - (let - ((X2 Bool top.res.abs_12)) - (and - (= top.usr.OK (=> X2 (>= X1 0))) - (__node_init_rtp_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_11 top.res.abs_12 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_10 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.abs_12! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Int top.res.abs_4!)) - (and - (= top.res.abs_11! (and top.res.abs_10! (< X1 32767))) - (let - ((X2 Bool top.res.abs_12!)) - (and - (= top.usr.OK! (=> X2 (>= X1 0))) - (__node_trans_rtp_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_11! - top.res.abs_12! - top.res.inst_1! - top.res.abs_11 - top.res.abs_12 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_10! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_rtp_0 ((rtp.usr.e01_a_0 Bool) (rtp.usr.e02_a_0 Bool) (rtp.usr.e03_a_0 Bool) (rtp.usr.e04_a_0 Bool) (rtp.usr.e05_a_0 Bool) (rtp.usr.e06_a_0 Bool) (rtp.usr.e07_a_0 Bool) (rtp.usr.e08_a_0 Bool) (rtp.usr.e09_a_0 Bool) (rtp.usr.e10_a_0 Bool) (rtp.usr.e11_a_0 Bool) (rtp.usr.e12_a_0 Bool) (rtp.res.nondet_11 Int) (rtp.res.nondet_10 Int) (rtp.res.nondet_9 Int) (rtp.res.nondet_8 Int) (rtp.res.nondet_7 Int) (rtp.res.nondet_6 Int) (rtp.res.nondet_5 Int) (rtp.res.nondet_4 Int) (rtp.res.nondet_3 Int) (rtp.res.nondet_2 Int) (rtp.res.nondet_1 Int) (rtp.res.nondet_0 Int) (rtp.usr.X1_a_0 Int) (rtp.usr.X2_a_0 Int) (rtp.usr.X3_a_0 Int) (rtp.usr.X4_a_0 Int) (rtp.usr.X5_a_0 Int) (rtp.usr.X6_a_0 Int) (rtp.usr.X7_a_0 Int) (rtp.usr.X8_a_0 Int) (rtp.usr.X9_a_0 Int) (rtp.usr.erreur_a_0 Bool) (rtp.res.init_flag_a_0 Bool)) Bool + (and (= rtp.usr.X1_a_0 1) (let ((X1 (let ((X1 rtp.res.nondet_0)) (>= X1 1)))) (and (= rtp.usr.X2_a_0 0) (let ((X2 (let ((X2 rtp.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 rtp.res.nondet_11)) (>= X3 1)))) (and (= rtp.usr.X9_a_0 0) (let ((X4 (let ((X4 rtp.res.nondet_4)) (>= X4 1)))) (and (= rtp.usr.X4_a_0 0) (let ((X5 (let ((X5 rtp.res.nondet_2)) (>= X5 1)))) (and (= rtp.usr.X3_a_0 0) (let ((X6 (let ((X6 rtp.res.nondet_3)) (>= X6 1)))) (let ((X7 (let ((X7 rtp.res.nondet_6)) (>= X7 1)))) (and (= rtp.usr.X6_a_0 0) (let ((X8 (let ((X8 rtp.res.nondet_5)) (>= X8 1)))) (and (= rtp.usr.X5_a_0 0) (let ((X9 (let ((X9 rtp.res.nondet_7)) (>= X9 1)))) (let ((X10 (let ((X10 rtp.res.nondet_8)) (>= X10 1)))) (let ((X11 (let ((X11 rtp.res.nondet_9)) (>= X11 1)))) (and (= rtp.usr.X7_a_0 0) (let ((X12 (let ((X12 rtp.res.nondet_10)) (>= X12 1)))) (and (= rtp.usr.X8_a_0 0) (= rtp.usr.erreur_a_0 (ite (>= rtp.usr.X1_a_0 2) true false)) rtp.res.init_flag_a_0)))))))))))))))))))))) +(define-fun __node_trans_rtp_0 ((rtp.usr.e01_a_1 Bool) (rtp.usr.e02_a_1 Bool) (rtp.usr.e03_a_1 Bool) (rtp.usr.e04_a_1 Bool) (rtp.usr.e05_a_1 Bool) (rtp.usr.e06_a_1 Bool) (rtp.usr.e07_a_1 Bool) (rtp.usr.e08_a_1 Bool) (rtp.usr.e09_a_1 Bool) (rtp.usr.e10_a_1 Bool) (rtp.usr.e11_a_1 Bool) (rtp.usr.e12_a_1 Bool) (rtp.res.nondet_11 Int) (rtp.res.nondet_10 Int) (rtp.res.nondet_9 Int) (rtp.res.nondet_8 Int) (rtp.res.nondet_7 Int) (rtp.res.nondet_6 Int) (rtp.res.nondet_5 Int) (rtp.res.nondet_4 Int) (rtp.res.nondet_3 Int) (rtp.res.nondet_2 Int) (rtp.res.nondet_1 Int) (rtp.res.nondet_0 Int) (rtp.usr.X1_a_1 Int) (rtp.usr.X2_a_1 Int) (rtp.usr.X3_a_1 Int) (rtp.usr.X4_a_1 Int) (rtp.usr.X5_a_1 Int) (rtp.usr.X6_a_1 Int) (rtp.usr.X7_a_1 Int) (rtp.usr.X8_a_1 Int) (rtp.usr.X9_a_1 Int) (rtp.usr.erreur_a_1 Bool) (rtp.res.init_flag_a_1 Bool) (rtp.usr.e01_a_0 Bool) (rtp.usr.e02_a_0 Bool) (rtp.usr.e03_a_0 Bool) (rtp.usr.e04_a_0 Bool) (rtp.usr.e05_a_0 Bool) (rtp.usr.e06_a_0 Bool) (rtp.usr.e07_a_0 Bool) (rtp.usr.e08_a_0 Bool) (rtp.usr.e09_a_0 Bool) (rtp.usr.e10_a_0 Bool) (rtp.usr.e11_a_0 Bool) (rtp.usr.e12_a_0 Bool) (rtp.usr.X1_a_0 Int) (rtp.usr.X2_a_0 Int) (rtp.usr.X3_a_0 Int) (rtp.usr.X4_a_0 Int) (rtp.usr.X5_a_0 Int) (rtp.usr.X6_a_0 Int) (rtp.usr.X7_a_0 Int) (rtp.usr.X8_a_0 Int) (rtp.usr.X9_a_0 Int) (rtp.usr.erreur_a_0 Bool) (rtp.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= rtp.usr.X1_a_0 1))) (and (= rtp.usr.X1_a_1 (ite rtp.usr.e01_a_1 (ite X1 (- rtp.usr.X1_a_0 1) rtp.usr.X1_a_0) rtp.usr.X1_a_0)) (let ((X2 (>= rtp.usr.X9_a_0 1))) (let ((X3 (>= rtp.usr.X2_a_0 1))) (and (= rtp.usr.X2_a_1 (ite rtp.usr.e01_a_1 (ite X1 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) (ite rtp.usr.e02_a_1 (ite X3 (- rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) (ite rtp.usr.e12_a_1 (ite X2 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) rtp.usr.X2_a_0)))) (let ((X4 (>= rtp.usr.X8_a_0 1))) (let ((X5 (>= rtp.usr.X7_a_0 1))) (let ((X6 (>= rtp.usr.X6_a_0 1))) (let ((X7 (>= rtp.usr.X4_a_0 1))) (and (= rtp.usr.X9_a_1 (ite rtp.usr.e05_a_1 (ite X7 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e07_a_1 (ite X6 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e10_a_1 (ite X5 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e11_a_1 (ite X4 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e12_a_1 (ite X2 (- rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) rtp.usr.X9_a_0)))))) (let ((X8 (>= rtp.usr.X4_a_0 1))) (let ((X9 (>= rtp.usr.X3_a_0 1))) (and (= rtp.usr.X4_a_1 (ite rtp.usr.e03_a_1 (ite X9 (+ rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) (ite rtp.usr.e04_a_1 (ite X8 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) (ite rtp.usr.e05_a_1 (ite X7 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) rtp.usr.X4_a_0)))) (= rtp.usr.X3_a_1 (ite rtp.usr.e02_a_1 (ite X3 (+ rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) (ite rtp.usr.e03_a_1 (ite X9 (- rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) rtp.usr.X3_a_0))) (let ((X10 (>= rtp.usr.X6_a_0 1))) (let ((X11 (>= rtp.usr.X6_a_0 1))) (let ((X12 (>= rtp.usr.X5_a_0 1))) (and (= rtp.usr.X6_a_1 (ite rtp.usr.e06_a_1 (ite X12 (+ rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e07_a_1 (ite X6 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e08_a_1 (ite X11 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e09_a_1 (ite X10 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) rtp.usr.X6_a_0))))) (= rtp.usr.X5_a_1 (ite rtp.usr.e04_a_1 (ite X8 (+ rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) (ite rtp.usr.e06_a_1 (ite X12 (- rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) rtp.usr.X5_a_0))) (= rtp.usr.X7_a_1 (ite rtp.usr.e08_a_1 (ite X11 (+ rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) (ite rtp.usr.e10_a_1 (ite X5 (- rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) rtp.usr.X7_a_0))) (= rtp.usr.X8_a_1 (ite rtp.usr.e09_a_1 (ite X10 (+ rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) (ite rtp.usr.e11_a_1 (ite X4 (- rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) rtp.usr.X8_a_0))) (= rtp.usr.erreur_a_1 (ite (>= rtp.usr.X1_a_1 2) true false)) (not rtp.res.init_flag_a_1))))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.abs_12_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_4_a_0)) (and (= top.res.abs_11_a_0 (and top.res.abs_10_a_0 (< X1 32767))) (let ((X2 top.res.abs_12_a_0)) (and (= top.usr.OK_a_0 (=> X2 (>= X1 0))) (__node_init_rtp_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.abs_12_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.abs_12_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_4_a_1)) (and (= top.res.abs_11_a_1 (and top.res.abs_10_a_1 (< X1 32767))) (let ((X2 top.res.abs_12_a_1)) (and (= top.usr.OK_a_1 (=> X2 (>= X1 0))) (__node_trans_rtp_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_11_a_1 top.res.abs_12_a_1 top.res.inst_1_a_1 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_4)) (and (= top.res.abs_11 (and top.res.abs_10 (< X1 32767))) (let ((X2 top.res.abs_12)) (and (= top.usr.OK (=> X2 (>= X1 0))) (__node_init_rtp_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_11 top.res.abs_12 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_10 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.abs_12! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_4!)) (and (= top.res.abs_11! (and top.res.abs_10! (< X1 32767))) (let ((X2 top.res.abs_12!)) (and (= top.usr.OK! (=> X2 (>= X1 0))) (__node_trans_rtp_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_11! top.res.abs_12! top.res.inst_1! top.res.abs_11 top.res.abs_12 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_10! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_10 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/rtp_8.sl b/benchmarks/LIA/Lustre/rtp_8.sl index e1a86d6..9f10dd7 100644 --- a/benchmarks/LIA/Lustre/rtp_8.sl +++ b/benchmarks/LIA/Lustre/rtp_8.sl @@ -1,1659 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_rtp_0 ( - (rtp.usr.e01_a_0 Bool) - (rtp.usr.e02_a_0 Bool) - (rtp.usr.e03_a_0 Bool) - (rtp.usr.e04_a_0 Bool) - (rtp.usr.e05_a_0 Bool) - (rtp.usr.e06_a_0 Bool) - (rtp.usr.e07_a_0 Bool) - (rtp.usr.e08_a_0 Bool) - (rtp.usr.e09_a_0 Bool) - (rtp.usr.e10_a_0 Bool) - (rtp.usr.e11_a_0 Bool) - (rtp.usr.e12_a_0 Bool) - (rtp.res.nondet_11 Int) - (rtp.res.nondet_10 Int) - (rtp.res.nondet_9 Int) - (rtp.res.nondet_8 Int) - (rtp.res.nondet_7 Int) - (rtp.res.nondet_6 Int) - (rtp.res.nondet_5 Int) - (rtp.res.nondet_4 Int) - (rtp.res.nondet_3 Int) - (rtp.res.nondet_2 Int) - (rtp.res.nondet_1 Int) - (rtp.res.nondet_0 Int) - (rtp.usr.X1_a_0 Int) - (rtp.usr.X2_a_0 Int) - (rtp.usr.X3_a_0 Int) - (rtp.usr.X4_a_0 Int) - (rtp.usr.X5_a_0 Int) - (rtp.usr.X6_a_0 Int) - (rtp.usr.X7_a_0 Int) - (rtp.usr.X8_a_0 Int) - (rtp.usr.X9_a_0 Int) - (rtp.usr.erreur_a_0 Bool) - (rtp.res.init_flag_a_0 Bool) - ) Bool - - (and - (= rtp.usr.X1_a_0 1) - (let - ((X1 Bool (let ((X1 Int rtp.res.nondet_0)) (>= X1 1)))) - (and - (= rtp.usr.X2_a_0 0) - (let - ((X2 Bool (let ((X2 Int rtp.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int rtp.res.nondet_11)) (>= X3 1)))) - (and - (= rtp.usr.X9_a_0 0) - (let - ((X4 Bool (let ((X4 Int rtp.res.nondet_4)) (>= X4 1)))) - (and - (= rtp.usr.X4_a_0 0) - (let - ((X5 Bool (let ((X5 Int rtp.res.nondet_2)) (>= X5 1)))) - (and - (= rtp.usr.X3_a_0 0) - (let - ((X6 Bool (let ((X6 Int rtp.res.nondet_3)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int rtp.res.nondet_6)) (>= X7 1)))) - (and - (= rtp.usr.X6_a_0 0) - (let - ((X8 Bool (let ((X8 Int rtp.res.nondet_5)) (>= X8 1)))) - (and - (= rtp.usr.X5_a_0 0) - (let - ((X9 Bool (let ((X9 Int rtp.res.nondet_7)) (>= X9 1)))) - (let - ((X10 Bool (let ((X10 Int rtp.res.nondet_8)) (>= X10 1)))) - (let - ((X11 Bool (let ((X11 Int rtp.res.nondet_9)) (>= X11 1)))) - (and - (= rtp.usr.X7_a_0 0) - (let - ((X12 - Bool (let ((X12 Int rtp.res.nondet_10)) (>= X12 1)))) - (and - (= rtp.usr.X8_a_0 0) - (= - rtp.usr.erreur_a_0 - (ite (>= rtp.usr.X1_a_0 2) true false)) - rtp.res.init_flag_a_0))))))))))))))))))))) -) - -(define-fun - __node_trans_rtp_0 ( - (rtp.usr.e01_a_1 Bool) - (rtp.usr.e02_a_1 Bool) - (rtp.usr.e03_a_1 Bool) - (rtp.usr.e04_a_1 Bool) - (rtp.usr.e05_a_1 Bool) - (rtp.usr.e06_a_1 Bool) - (rtp.usr.e07_a_1 Bool) - (rtp.usr.e08_a_1 Bool) - (rtp.usr.e09_a_1 Bool) - (rtp.usr.e10_a_1 Bool) - (rtp.usr.e11_a_1 Bool) - (rtp.usr.e12_a_1 Bool) - (rtp.res.nondet_11 Int) - (rtp.res.nondet_10 Int) - (rtp.res.nondet_9 Int) - (rtp.res.nondet_8 Int) - (rtp.res.nondet_7 Int) - (rtp.res.nondet_6 Int) - (rtp.res.nondet_5 Int) - (rtp.res.nondet_4 Int) - (rtp.res.nondet_3 Int) - (rtp.res.nondet_2 Int) - (rtp.res.nondet_1 Int) - (rtp.res.nondet_0 Int) - (rtp.usr.X1_a_1 Int) - (rtp.usr.X2_a_1 Int) - (rtp.usr.X3_a_1 Int) - (rtp.usr.X4_a_1 Int) - (rtp.usr.X5_a_1 Int) - (rtp.usr.X6_a_1 Int) - (rtp.usr.X7_a_1 Int) - (rtp.usr.X8_a_1 Int) - (rtp.usr.X9_a_1 Int) - (rtp.usr.erreur_a_1 Bool) - (rtp.res.init_flag_a_1 Bool) - (rtp.usr.e01_a_0 Bool) - (rtp.usr.e02_a_0 Bool) - (rtp.usr.e03_a_0 Bool) - (rtp.usr.e04_a_0 Bool) - (rtp.usr.e05_a_0 Bool) - (rtp.usr.e06_a_0 Bool) - (rtp.usr.e07_a_0 Bool) - (rtp.usr.e08_a_0 Bool) - (rtp.usr.e09_a_0 Bool) - (rtp.usr.e10_a_0 Bool) - (rtp.usr.e11_a_0 Bool) - (rtp.usr.e12_a_0 Bool) - (rtp.usr.X1_a_0 Int) - (rtp.usr.X2_a_0 Int) - (rtp.usr.X3_a_0 Int) - (rtp.usr.X4_a_0 Int) - (rtp.usr.X5_a_0 Int) - (rtp.usr.X6_a_0 Int) - (rtp.usr.X7_a_0 Int) - (rtp.usr.X8_a_0 Int) - (rtp.usr.X9_a_0 Int) - (rtp.usr.erreur_a_0 Bool) - (rtp.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= rtp.usr.X1_a_0 1))) - (and - (= - rtp.usr.X1_a_1 - (ite - rtp.usr.e01_a_1 - (ite X1 (- rtp.usr.X1_a_0 1) rtp.usr.X1_a_0) - rtp.usr.X1_a_0)) - (let - ((X2 Bool (>= rtp.usr.X9_a_0 1))) - (let - ((X3 Bool (>= rtp.usr.X2_a_0 1))) - (and - (= - rtp.usr.X2_a_1 - (ite - rtp.usr.e01_a_1 - (ite X1 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - (ite - rtp.usr.e02_a_1 - (ite X3 (- rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - (ite - rtp.usr.e12_a_1 - (ite X2 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - rtp.usr.X2_a_0)))) - (let - ((X4 Bool (>= rtp.usr.X8_a_0 1))) - (let - ((X5 Bool (>= rtp.usr.X7_a_0 1))) - (let - ((X6 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X7 Bool (>= rtp.usr.X4_a_0 1))) - (and - (= - rtp.usr.X9_a_1 - (ite - rtp.usr.e05_a_1 - (ite X7 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e07_a_1 - (ite X6 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e10_a_1 - (ite X5 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e11_a_1 - (ite X4 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e12_a_1 - (ite X2 (- rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - rtp.usr.X9_a_0)))))) - (let - ((X8 Bool (>= rtp.usr.X4_a_0 1))) - (let - ((X9 Bool (>= rtp.usr.X3_a_0 1))) - (and - (= - rtp.usr.X4_a_1 - (ite - rtp.usr.e03_a_1 - (ite X9 (+ rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - (ite - rtp.usr.e04_a_1 - (ite X8 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - (ite - rtp.usr.e05_a_1 - (ite X7 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - rtp.usr.X4_a_0)))) - (= - rtp.usr.X3_a_1 - (ite - rtp.usr.e02_a_1 - (ite X3 (+ rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) - (ite - rtp.usr.e03_a_1 - (ite X9 (- rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) - rtp.usr.X3_a_0))) - (let - ((X10 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X11 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X12 Bool (>= rtp.usr.X5_a_0 1))) - (and - (= - rtp.usr.X6_a_1 - (ite - rtp.usr.e06_a_1 - (ite X12 (+ rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e07_a_1 - (ite X6 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e08_a_1 - (ite X11 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e09_a_1 - (ite X10 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - rtp.usr.X6_a_0))))) - (= - rtp.usr.X5_a_1 - (ite - rtp.usr.e04_a_1 - (ite X8 (+ rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) - (ite - rtp.usr.e06_a_1 - (ite X12 (- rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) - rtp.usr.X5_a_0))) - (= - rtp.usr.X7_a_1 - (ite - rtp.usr.e08_a_1 - (ite X11 (+ rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) - (ite - rtp.usr.e10_a_1 - (ite X5 (- rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) - rtp.usr.X7_a_0))) - (= - rtp.usr.X8_a_1 - (ite - rtp.usr.e09_a_1 - (ite X10 (+ rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) - (ite - rtp.usr.e11_a_1 - (ite X4 (- rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) - rtp.usr.X8_a_0))) - (= rtp.usr.erreur_a_1 (ite (>= rtp.usr.X1_a_1 2) true false)) - (not rtp.res.init_flag_a_1)))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.abs_12_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_5_a_0)) - (and - (= top.res.abs_11_a_0 (and top.res.abs_10_a_0 (< X1 32767))) - (let - ((X2 Bool top.res.abs_12_a_0)) - (and - (= top.usr.OK_a_0 (=> X2 (>= X1 0))) - (__node_init_rtp_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.abs_12_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.abs_12_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_5_a_1)) - (and - (= top.res.abs_11_a_1 (and top.res.abs_10_a_1 (< X1 32767))) - (let - ((X2 Bool top.res.abs_12_a_1)) - (and - (= top.usr.OK_a_1 (=> X2 (>= X1 0))) - (__node_trans_rtp_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_11_a_1 - top.res.abs_12_a_1 - top.res.inst_1_a_1 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.abs_12 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_5)) - (and - (= top.res.abs_11 (and top.res.abs_10 (< X1 32767))) - (let - ((X2 Bool top.res.abs_12)) - (and - (= top.usr.OK (=> X2 (>= X1 0))) - (__node_init_rtp_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_11 top.res.abs_12 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_10 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.abs_12! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Int top.res.abs_5!)) - (and - (= top.res.abs_11! (and top.res.abs_10! (< X1 32767))) - (let - ((X2 Bool top.res.abs_12!)) - (and - (= top.usr.OK! (=> X2 (>= X1 0))) - (__node_trans_rtp_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_11! - top.res.abs_12! - top.res.inst_1! - top.res.abs_11 - top.res.abs_12 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_10! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_rtp_0 ((rtp.usr.e01_a_0 Bool) (rtp.usr.e02_a_0 Bool) (rtp.usr.e03_a_0 Bool) (rtp.usr.e04_a_0 Bool) (rtp.usr.e05_a_0 Bool) (rtp.usr.e06_a_0 Bool) (rtp.usr.e07_a_0 Bool) (rtp.usr.e08_a_0 Bool) (rtp.usr.e09_a_0 Bool) (rtp.usr.e10_a_0 Bool) (rtp.usr.e11_a_0 Bool) (rtp.usr.e12_a_0 Bool) (rtp.res.nondet_11 Int) (rtp.res.nondet_10 Int) (rtp.res.nondet_9 Int) (rtp.res.nondet_8 Int) (rtp.res.nondet_7 Int) (rtp.res.nondet_6 Int) (rtp.res.nondet_5 Int) (rtp.res.nondet_4 Int) (rtp.res.nondet_3 Int) (rtp.res.nondet_2 Int) (rtp.res.nondet_1 Int) (rtp.res.nondet_0 Int) (rtp.usr.X1_a_0 Int) (rtp.usr.X2_a_0 Int) (rtp.usr.X3_a_0 Int) (rtp.usr.X4_a_0 Int) (rtp.usr.X5_a_0 Int) (rtp.usr.X6_a_0 Int) (rtp.usr.X7_a_0 Int) (rtp.usr.X8_a_0 Int) (rtp.usr.X9_a_0 Int) (rtp.usr.erreur_a_0 Bool) (rtp.res.init_flag_a_0 Bool)) Bool + (and (= rtp.usr.X1_a_0 1) (let ((X1 (let ((X1 rtp.res.nondet_0)) (>= X1 1)))) (and (= rtp.usr.X2_a_0 0) (let ((X2 (let ((X2 rtp.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 rtp.res.nondet_11)) (>= X3 1)))) (and (= rtp.usr.X9_a_0 0) (let ((X4 (let ((X4 rtp.res.nondet_4)) (>= X4 1)))) (and (= rtp.usr.X4_a_0 0) (let ((X5 (let ((X5 rtp.res.nondet_2)) (>= X5 1)))) (and (= rtp.usr.X3_a_0 0) (let ((X6 (let ((X6 rtp.res.nondet_3)) (>= X6 1)))) (let ((X7 (let ((X7 rtp.res.nondet_6)) (>= X7 1)))) (and (= rtp.usr.X6_a_0 0) (let ((X8 (let ((X8 rtp.res.nondet_5)) (>= X8 1)))) (and (= rtp.usr.X5_a_0 0) (let ((X9 (let ((X9 rtp.res.nondet_7)) (>= X9 1)))) (let ((X10 (let ((X10 rtp.res.nondet_8)) (>= X10 1)))) (let ((X11 (let ((X11 rtp.res.nondet_9)) (>= X11 1)))) (and (= rtp.usr.X7_a_0 0) (let ((X12 (let ((X12 rtp.res.nondet_10)) (>= X12 1)))) (and (= rtp.usr.X8_a_0 0) (= rtp.usr.erreur_a_0 (ite (>= rtp.usr.X1_a_0 2) true false)) rtp.res.init_flag_a_0)))))))))))))))))))))) +(define-fun __node_trans_rtp_0 ((rtp.usr.e01_a_1 Bool) (rtp.usr.e02_a_1 Bool) (rtp.usr.e03_a_1 Bool) (rtp.usr.e04_a_1 Bool) (rtp.usr.e05_a_1 Bool) (rtp.usr.e06_a_1 Bool) (rtp.usr.e07_a_1 Bool) (rtp.usr.e08_a_1 Bool) (rtp.usr.e09_a_1 Bool) (rtp.usr.e10_a_1 Bool) (rtp.usr.e11_a_1 Bool) (rtp.usr.e12_a_1 Bool) (rtp.res.nondet_11 Int) (rtp.res.nondet_10 Int) (rtp.res.nondet_9 Int) (rtp.res.nondet_8 Int) (rtp.res.nondet_7 Int) (rtp.res.nondet_6 Int) (rtp.res.nondet_5 Int) (rtp.res.nondet_4 Int) (rtp.res.nondet_3 Int) (rtp.res.nondet_2 Int) (rtp.res.nondet_1 Int) (rtp.res.nondet_0 Int) (rtp.usr.X1_a_1 Int) (rtp.usr.X2_a_1 Int) (rtp.usr.X3_a_1 Int) (rtp.usr.X4_a_1 Int) (rtp.usr.X5_a_1 Int) (rtp.usr.X6_a_1 Int) (rtp.usr.X7_a_1 Int) (rtp.usr.X8_a_1 Int) (rtp.usr.X9_a_1 Int) (rtp.usr.erreur_a_1 Bool) (rtp.res.init_flag_a_1 Bool) (rtp.usr.e01_a_0 Bool) (rtp.usr.e02_a_0 Bool) (rtp.usr.e03_a_0 Bool) (rtp.usr.e04_a_0 Bool) (rtp.usr.e05_a_0 Bool) (rtp.usr.e06_a_0 Bool) (rtp.usr.e07_a_0 Bool) (rtp.usr.e08_a_0 Bool) (rtp.usr.e09_a_0 Bool) (rtp.usr.e10_a_0 Bool) (rtp.usr.e11_a_0 Bool) (rtp.usr.e12_a_0 Bool) (rtp.usr.X1_a_0 Int) (rtp.usr.X2_a_0 Int) (rtp.usr.X3_a_0 Int) (rtp.usr.X4_a_0 Int) (rtp.usr.X5_a_0 Int) (rtp.usr.X6_a_0 Int) (rtp.usr.X7_a_0 Int) (rtp.usr.X8_a_0 Int) (rtp.usr.X9_a_0 Int) (rtp.usr.erreur_a_0 Bool) (rtp.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= rtp.usr.X1_a_0 1))) (and (= rtp.usr.X1_a_1 (ite rtp.usr.e01_a_1 (ite X1 (- rtp.usr.X1_a_0 1) rtp.usr.X1_a_0) rtp.usr.X1_a_0)) (let ((X2 (>= rtp.usr.X9_a_0 1))) (let ((X3 (>= rtp.usr.X2_a_0 1))) (and (= rtp.usr.X2_a_1 (ite rtp.usr.e01_a_1 (ite X1 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) (ite rtp.usr.e02_a_1 (ite X3 (- rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) (ite rtp.usr.e12_a_1 (ite X2 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) rtp.usr.X2_a_0)))) (let ((X4 (>= rtp.usr.X8_a_0 1))) (let ((X5 (>= rtp.usr.X7_a_0 1))) (let ((X6 (>= rtp.usr.X6_a_0 1))) (let ((X7 (>= rtp.usr.X4_a_0 1))) (and (= rtp.usr.X9_a_1 (ite rtp.usr.e05_a_1 (ite X7 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e07_a_1 (ite X6 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e10_a_1 (ite X5 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e11_a_1 (ite X4 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e12_a_1 (ite X2 (- rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) rtp.usr.X9_a_0)))))) (let ((X8 (>= rtp.usr.X4_a_0 1))) (let ((X9 (>= rtp.usr.X3_a_0 1))) (and (= rtp.usr.X4_a_1 (ite rtp.usr.e03_a_1 (ite X9 (+ rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) (ite rtp.usr.e04_a_1 (ite X8 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) (ite rtp.usr.e05_a_1 (ite X7 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) rtp.usr.X4_a_0)))) (= rtp.usr.X3_a_1 (ite rtp.usr.e02_a_1 (ite X3 (+ rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) (ite rtp.usr.e03_a_1 (ite X9 (- rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) rtp.usr.X3_a_0))) (let ((X10 (>= rtp.usr.X6_a_0 1))) (let ((X11 (>= rtp.usr.X6_a_0 1))) (let ((X12 (>= rtp.usr.X5_a_0 1))) (and (= rtp.usr.X6_a_1 (ite rtp.usr.e06_a_1 (ite X12 (+ rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e07_a_1 (ite X6 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e08_a_1 (ite X11 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e09_a_1 (ite X10 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) rtp.usr.X6_a_0))))) (= rtp.usr.X5_a_1 (ite rtp.usr.e04_a_1 (ite X8 (+ rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) (ite rtp.usr.e06_a_1 (ite X12 (- rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) rtp.usr.X5_a_0))) (= rtp.usr.X7_a_1 (ite rtp.usr.e08_a_1 (ite X11 (+ rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) (ite rtp.usr.e10_a_1 (ite X5 (- rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) rtp.usr.X7_a_0))) (= rtp.usr.X8_a_1 (ite rtp.usr.e09_a_1 (ite X10 (+ rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) (ite rtp.usr.e11_a_1 (ite X4 (- rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) rtp.usr.X8_a_0))) (= rtp.usr.erreur_a_1 (ite (>= rtp.usr.X1_a_1 2) true false)) (not rtp.res.init_flag_a_1))))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.abs_12_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_5_a_0)) (and (= top.res.abs_11_a_0 (and top.res.abs_10_a_0 (< X1 32767))) (let ((X2 top.res.abs_12_a_0)) (and (= top.usr.OK_a_0 (=> X2 (>= X1 0))) (__node_init_rtp_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.abs_12_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.abs_12_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_5_a_1)) (and (= top.res.abs_11_a_1 (and top.res.abs_10_a_1 (< X1 32767))) (let ((X2 top.res.abs_12_a_1)) (and (= top.usr.OK_a_1 (=> X2 (>= X1 0))) (__node_trans_rtp_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_11_a_1 top.res.abs_12_a_1 top.res.inst_1_a_1 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_5)) (and (= top.res.abs_11 (and top.res.abs_10 (< X1 32767))) (let ((X2 top.res.abs_12)) (and (= top.usr.OK (=> X2 (>= X1 0))) (__node_init_rtp_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_11 top.res.abs_12 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_10 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.abs_12! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_5!)) (and (= top.res.abs_11! (and top.res.abs_10! (< X1 32767))) (let ((X2 top.res.abs_12!)) (and (= top.usr.OK! (=> X2 (>= X1 0))) (__node_trans_rtp_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_11! top.res.abs_12! top.res.inst_1! top.res.abs_11 top.res.abs_12 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_10! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_10 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/rtp_9.sl b/benchmarks/LIA/Lustre/rtp_9.sl index 0b0eb64..a584d08 100644 --- a/benchmarks/LIA/Lustre/rtp_9.sl +++ b/benchmarks/LIA/Lustre/rtp_9.sl @@ -1,1659 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_rtp_0 ( - (rtp.usr.e01_a_0 Bool) - (rtp.usr.e02_a_0 Bool) - (rtp.usr.e03_a_0 Bool) - (rtp.usr.e04_a_0 Bool) - (rtp.usr.e05_a_0 Bool) - (rtp.usr.e06_a_0 Bool) - (rtp.usr.e07_a_0 Bool) - (rtp.usr.e08_a_0 Bool) - (rtp.usr.e09_a_0 Bool) - (rtp.usr.e10_a_0 Bool) - (rtp.usr.e11_a_0 Bool) - (rtp.usr.e12_a_0 Bool) - (rtp.res.nondet_11 Int) - (rtp.res.nondet_10 Int) - (rtp.res.nondet_9 Int) - (rtp.res.nondet_8 Int) - (rtp.res.nondet_7 Int) - (rtp.res.nondet_6 Int) - (rtp.res.nondet_5 Int) - (rtp.res.nondet_4 Int) - (rtp.res.nondet_3 Int) - (rtp.res.nondet_2 Int) - (rtp.res.nondet_1 Int) - (rtp.res.nondet_0 Int) - (rtp.usr.X1_a_0 Int) - (rtp.usr.X2_a_0 Int) - (rtp.usr.X3_a_0 Int) - (rtp.usr.X4_a_0 Int) - (rtp.usr.X5_a_0 Int) - (rtp.usr.X6_a_0 Int) - (rtp.usr.X7_a_0 Int) - (rtp.usr.X8_a_0 Int) - (rtp.usr.X9_a_0 Int) - (rtp.usr.erreur_a_0 Bool) - (rtp.res.init_flag_a_0 Bool) - ) Bool - - (and - (= rtp.usr.X1_a_0 1) - (let - ((X1 Bool (let ((X1 Int rtp.res.nondet_0)) (>= X1 1)))) - (and - (= rtp.usr.X2_a_0 0) - (let - ((X2 Bool (let ((X2 Int rtp.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int rtp.res.nondet_11)) (>= X3 1)))) - (and - (= rtp.usr.X9_a_0 0) - (let - ((X4 Bool (let ((X4 Int rtp.res.nondet_4)) (>= X4 1)))) - (and - (= rtp.usr.X4_a_0 0) - (let - ((X5 Bool (let ((X5 Int rtp.res.nondet_2)) (>= X5 1)))) - (and - (= rtp.usr.X3_a_0 0) - (let - ((X6 Bool (let ((X6 Int rtp.res.nondet_3)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int rtp.res.nondet_6)) (>= X7 1)))) - (and - (= rtp.usr.X6_a_0 0) - (let - ((X8 Bool (let ((X8 Int rtp.res.nondet_5)) (>= X8 1)))) - (and - (= rtp.usr.X5_a_0 0) - (let - ((X9 Bool (let ((X9 Int rtp.res.nondet_7)) (>= X9 1)))) - (let - ((X10 Bool (let ((X10 Int rtp.res.nondet_8)) (>= X10 1)))) - (let - ((X11 Bool (let ((X11 Int rtp.res.nondet_9)) (>= X11 1)))) - (and - (= rtp.usr.X7_a_0 0) - (let - ((X12 - Bool (let ((X12 Int rtp.res.nondet_10)) (>= X12 1)))) - (and - (= rtp.usr.X8_a_0 0) - (= - rtp.usr.erreur_a_0 - (ite (>= rtp.usr.X1_a_0 2) true false)) - rtp.res.init_flag_a_0))))))))))))))))))))) -) - -(define-fun - __node_trans_rtp_0 ( - (rtp.usr.e01_a_1 Bool) - (rtp.usr.e02_a_1 Bool) - (rtp.usr.e03_a_1 Bool) - (rtp.usr.e04_a_1 Bool) - (rtp.usr.e05_a_1 Bool) - (rtp.usr.e06_a_1 Bool) - (rtp.usr.e07_a_1 Bool) - (rtp.usr.e08_a_1 Bool) - (rtp.usr.e09_a_1 Bool) - (rtp.usr.e10_a_1 Bool) - (rtp.usr.e11_a_1 Bool) - (rtp.usr.e12_a_1 Bool) - (rtp.res.nondet_11 Int) - (rtp.res.nondet_10 Int) - (rtp.res.nondet_9 Int) - (rtp.res.nondet_8 Int) - (rtp.res.nondet_7 Int) - (rtp.res.nondet_6 Int) - (rtp.res.nondet_5 Int) - (rtp.res.nondet_4 Int) - (rtp.res.nondet_3 Int) - (rtp.res.nondet_2 Int) - (rtp.res.nondet_1 Int) - (rtp.res.nondet_0 Int) - (rtp.usr.X1_a_1 Int) - (rtp.usr.X2_a_1 Int) - (rtp.usr.X3_a_1 Int) - (rtp.usr.X4_a_1 Int) - (rtp.usr.X5_a_1 Int) - (rtp.usr.X6_a_1 Int) - (rtp.usr.X7_a_1 Int) - (rtp.usr.X8_a_1 Int) - (rtp.usr.X9_a_1 Int) - (rtp.usr.erreur_a_1 Bool) - (rtp.res.init_flag_a_1 Bool) - (rtp.usr.e01_a_0 Bool) - (rtp.usr.e02_a_0 Bool) - (rtp.usr.e03_a_0 Bool) - (rtp.usr.e04_a_0 Bool) - (rtp.usr.e05_a_0 Bool) - (rtp.usr.e06_a_0 Bool) - (rtp.usr.e07_a_0 Bool) - (rtp.usr.e08_a_0 Bool) - (rtp.usr.e09_a_0 Bool) - (rtp.usr.e10_a_0 Bool) - (rtp.usr.e11_a_0 Bool) - (rtp.usr.e12_a_0 Bool) - (rtp.usr.X1_a_0 Int) - (rtp.usr.X2_a_0 Int) - (rtp.usr.X3_a_0 Int) - (rtp.usr.X4_a_0 Int) - (rtp.usr.X5_a_0 Int) - (rtp.usr.X6_a_0 Int) - (rtp.usr.X7_a_0 Int) - (rtp.usr.X8_a_0 Int) - (rtp.usr.X9_a_0 Int) - (rtp.usr.erreur_a_0 Bool) - (rtp.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= rtp.usr.X1_a_0 1))) - (and - (= - rtp.usr.X1_a_1 - (ite - rtp.usr.e01_a_1 - (ite X1 (- rtp.usr.X1_a_0 1) rtp.usr.X1_a_0) - rtp.usr.X1_a_0)) - (let - ((X2 Bool (>= rtp.usr.X9_a_0 1))) - (let - ((X3 Bool (>= rtp.usr.X2_a_0 1))) - (and - (= - rtp.usr.X2_a_1 - (ite - rtp.usr.e01_a_1 - (ite X1 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - (ite - rtp.usr.e02_a_1 - (ite X3 (- rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - (ite - rtp.usr.e12_a_1 - (ite X2 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - rtp.usr.X2_a_0)))) - (let - ((X4 Bool (>= rtp.usr.X8_a_0 1))) - (let - ((X5 Bool (>= rtp.usr.X7_a_0 1))) - (let - ((X6 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X7 Bool (>= rtp.usr.X4_a_0 1))) - (and - (= - rtp.usr.X9_a_1 - (ite - rtp.usr.e05_a_1 - (ite X7 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e07_a_1 - (ite X6 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e10_a_1 - (ite X5 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e11_a_1 - (ite X4 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e12_a_1 - (ite X2 (- rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - rtp.usr.X9_a_0)))))) - (let - ((X8 Bool (>= rtp.usr.X4_a_0 1))) - (let - ((X9 Bool (>= rtp.usr.X3_a_0 1))) - (and - (= - rtp.usr.X4_a_1 - (ite - rtp.usr.e03_a_1 - (ite X9 (+ rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - (ite - rtp.usr.e04_a_1 - (ite X8 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - (ite - rtp.usr.e05_a_1 - (ite X7 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - rtp.usr.X4_a_0)))) - (= - rtp.usr.X3_a_1 - (ite - rtp.usr.e02_a_1 - (ite X3 (+ rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) - (ite - rtp.usr.e03_a_1 - (ite X9 (- rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) - rtp.usr.X3_a_0))) - (let - ((X10 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X11 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X12 Bool (>= rtp.usr.X5_a_0 1))) - (and - (= - rtp.usr.X6_a_1 - (ite - rtp.usr.e06_a_1 - (ite X12 (+ rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e07_a_1 - (ite X6 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e08_a_1 - (ite X11 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e09_a_1 - (ite X10 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - rtp.usr.X6_a_0))))) - (= - rtp.usr.X5_a_1 - (ite - rtp.usr.e04_a_1 - (ite X8 (+ rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) - (ite - rtp.usr.e06_a_1 - (ite X12 (- rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) - rtp.usr.X5_a_0))) - (= - rtp.usr.X7_a_1 - (ite - rtp.usr.e08_a_1 - (ite X11 (+ rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) - (ite - rtp.usr.e10_a_1 - (ite X5 (- rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) - rtp.usr.X7_a_0))) - (= - rtp.usr.X8_a_1 - (ite - rtp.usr.e09_a_1 - (ite X10 (+ rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) - (ite - rtp.usr.e11_a_1 - (ite X4 (- rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) - rtp.usr.X8_a_0))) - (= rtp.usr.erreur_a_1 (ite (>= rtp.usr.X1_a_1 2) true false)) - (not rtp.res.init_flag_a_1)))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.abs_12_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_6_a_0)) - (and - (= top.res.abs_11_a_0 (and top.res.abs_10_a_0 (< X1 32767))) - (let - ((X2 Bool top.res.abs_12_a_0)) - (and - (= top.usr.OK_a_0 (=> X2 (>= X1 0))) - (__node_init_rtp_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.abs_12_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.abs_12_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_6_a_1)) - (and - (= top.res.abs_11_a_1 (and top.res.abs_10_a_1 (< X1 32767))) - (let - ((X2 Bool top.res.abs_12_a_1)) - (and - (= top.usr.OK_a_1 (=> X2 (>= X1 0))) - (__node_trans_rtp_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_11_a_1 - top.res.abs_12_a_1 - top.res.inst_1_a_1 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.abs_12 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_6)) - (and - (= top.res.abs_11 (and top.res.abs_10 (< X1 32767))) - (let - ((X2 Bool top.res.abs_12)) - (and - (= top.usr.OK (=> X2 (>= X1 0))) - (__node_init_rtp_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_11 top.res.abs_12 top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_10 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.abs_12! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Int top.res.abs_6!)) - (and - (= top.res.abs_11! (and top.res.abs_10! (< X1 32767))) - (let - ((X2 Bool top.res.abs_12!)) - (and - (= top.usr.OK! (=> X2 (>= X1 0))) - (__node_trans_rtp_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_11! - top.res.abs_12! - top.res.inst_1! - top.res.abs_11 - top.res.abs_12 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_10! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_rtp_0 ((rtp.usr.e01_a_0 Bool) (rtp.usr.e02_a_0 Bool) (rtp.usr.e03_a_0 Bool) (rtp.usr.e04_a_0 Bool) (rtp.usr.e05_a_0 Bool) (rtp.usr.e06_a_0 Bool) (rtp.usr.e07_a_0 Bool) (rtp.usr.e08_a_0 Bool) (rtp.usr.e09_a_0 Bool) (rtp.usr.e10_a_0 Bool) (rtp.usr.e11_a_0 Bool) (rtp.usr.e12_a_0 Bool) (rtp.res.nondet_11 Int) (rtp.res.nondet_10 Int) (rtp.res.nondet_9 Int) (rtp.res.nondet_8 Int) (rtp.res.nondet_7 Int) (rtp.res.nondet_6 Int) (rtp.res.nondet_5 Int) (rtp.res.nondet_4 Int) (rtp.res.nondet_3 Int) (rtp.res.nondet_2 Int) (rtp.res.nondet_1 Int) (rtp.res.nondet_0 Int) (rtp.usr.X1_a_0 Int) (rtp.usr.X2_a_0 Int) (rtp.usr.X3_a_0 Int) (rtp.usr.X4_a_0 Int) (rtp.usr.X5_a_0 Int) (rtp.usr.X6_a_0 Int) (rtp.usr.X7_a_0 Int) (rtp.usr.X8_a_0 Int) (rtp.usr.X9_a_0 Int) (rtp.usr.erreur_a_0 Bool) (rtp.res.init_flag_a_0 Bool)) Bool + (and (= rtp.usr.X1_a_0 1) (let ((X1 (let ((X1 rtp.res.nondet_0)) (>= X1 1)))) (and (= rtp.usr.X2_a_0 0) (let ((X2 (let ((X2 rtp.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 rtp.res.nondet_11)) (>= X3 1)))) (and (= rtp.usr.X9_a_0 0) (let ((X4 (let ((X4 rtp.res.nondet_4)) (>= X4 1)))) (and (= rtp.usr.X4_a_0 0) (let ((X5 (let ((X5 rtp.res.nondet_2)) (>= X5 1)))) (and (= rtp.usr.X3_a_0 0) (let ((X6 (let ((X6 rtp.res.nondet_3)) (>= X6 1)))) (let ((X7 (let ((X7 rtp.res.nondet_6)) (>= X7 1)))) (and (= rtp.usr.X6_a_0 0) (let ((X8 (let ((X8 rtp.res.nondet_5)) (>= X8 1)))) (and (= rtp.usr.X5_a_0 0) (let ((X9 (let ((X9 rtp.res.nondet_7)) (>= X9 1)))) (let ((X10 (let ((X10 rtp.res.nondet_8)) (>= X10 1)))) (let ((X11 (let ((X11 rtp.res.nondet_9)) (>= X11 1)))) (and (= rtp.usr.X7_a_0 0) (let ((X12 (let ((X12 rtp.res.nondet_10)) (>= X12 1)))) (and (= rtp.usr.X8_a_0 0) (= rtp.usr.erreur_a_0 (ite (>= rtp.usr.X1_a_0 2) true false)) rtp.res.init_flag_a_0)))))))))))))))))))))) +(define-fun __node_trans_rtp_0 ((rtp.usr.e01_a_1 Bool) (rtp.usr.e02_a_1 Bool) (rtp.usr.e03_a_1 Bool) (rtp.usr.e04_a_1 Bool) (rtp.usr.e05_a_1 Bool) (rtp.usr.e06_a_1 Bool) (rtp.usr.e07_a_1 Bool) (rtp.usr.e08_a_1 Bool) (rtp.usr.e09_a_1 Bool) (rtp.usr.e10_a_1 Bool) (rtp.usr.e11_a_1 Bool) (rtp.usr.e12_a_1 Bool) (rtp.res.nondet_11 Int) (rtp.res.nondet_10 Int) (rtp.res.nondet_9 Int) (rtp.res.nondet_8 Int) (rtp.res.nondet_7 Int) (rtp.res.nondet_6 Int) (rtp.res.nondet_5 Int) (rtp.res.nondet_4 Int) (rtp.res.nondet_3 Int) (rtp.res.nondet_2 Int) (rtp.res.nondet_1 Int) (rtp.res.nondet_0 Int) (rtp.usr.X1_a_1 Int) (rtp.usr.X2_a_1 Int) (rtp.usr.X3_a_1 Int) (rtp.usr.X4_a_1 Int) (rtp.usr.X5_a_1 Int) (rtp.usr.X6_a_1 Int) (rtp.usr.X7_a_1 Int) (rtp.usr.X8_a_1 Int) (rtp.usr.X9_a_1 Int) (rtp.usr.erreur_a_1 Bool) (rtp.res.init_flag_a_1 Bool) (rtp.usr.e01_a_0 Bool) (rtp.usr.e02_a_0 Bool) (rtp.usr.e03_a_0 Bool) (rtp.usr.e04_a_0 Bool) (rtp.usr.e05_a_0 Bool) (rtp.usr.e06_a_0 Bool) (rtp.usr.e07_a_0 Bool) (rtp.usr.e08_a_0 Bool) (rtp.usr.e09_a_0 Bool) (rtp.usr.e10_a_0 Bool) (rtp.usr.e11_a_0 Bool) (rtp.usr.e12_a_0 Bool) (rtp.usr.X1_a_0 Int) (rtp.usr.X2_a_0 Int) (rtp.usr.X3_a_0 Int) (rtp.usr.X4_a_0 Int) (rtp.usr.X5_a_0 Int) (rtp.usr.X6_a_0 Int) (rtp.usr.X7_a_0 Int) (rtp.usr.X8_a_0 Int) (rtp.usr.X9_a_0 Int) (rtp.usr.erreur_a_0 Bool) (rtp.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= rtp.usr.X1_a_0 1))) (and (= rtp.usr.X1_a_1 (ite rtp.usr.e01_a_1 (ite X1 (- rtp.usr.X1_a_0 1) rtp.usr.X1_a_0) rtp.usr.X1_a_0)) (let ((X2 (>= rtp.usr.X9_a_0 1))) (let ((X3 (>= rtp.usr.X2_a_0 1))) (and (= rtp.usr.X2_a_1 (ite rtp.usr.e01_a_1 (ite X1 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) (ite rtp.usr.e02_a_1 (ite X3 (- rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) (ite rtp.usr.e12_a_1 (ite X2 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) rtp.usr.X2_a_0)))) (let ((X4 (>= rtp.usr.X8_a_0 1))) (let ((X5 (>= rtp.usr.X7_a_0 1))) (let ((X6 (>= rtp.usr.X6_a_0 1))) (let ((X7 (>= rtp.usr.X4_a_0 1))) (and (= rtp.usr.X9_a_1 (ite rtp.usr.e05_a_1 (ite X7 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e07_a_1 (ite X6 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e10_a_1 (ite X5 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e11_a_1 (ite X4 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e12_a_1 (ite X2 (- rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) rtp.usr.X9_a_0)))))) (let ((X8 (>= rtp.usr.X4_a_0 1))) (let ((X9 (>= rtp.usr.X3_a_0 1))) (and (= rtp.usr.X4_a_1 (ite rtp.usr.e03_a_1 (ite X9 (+ rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) (ite rtp.usr.e04_a_1 (ite X8 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) (ite rtp.usr.e05_a_1 (ite X7 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) rtp.usr.X4_a_0)))) (= rtp.usr.X3_a_1 (ite rtp.usr.e02_a_1 (ite X3 (+ rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) (ite rtp.usr.e03_a_1 (ite X9 (- rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) rtp.usr.X3_a_0))) (let ((X10 (>= rtp.usr.X6_a_0 1))) (let ((X11 (>= rtp.usr.X6_a_0 1))) (let ((X12 (>= rtp.usr.X5_a_0 1))) (and (= rtp.usr.X6_a_1 (ite rtp.usr.e06_a_1 (ite X12 (+ rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e07_a_1 (ite X6 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e08_a_1 (ite X11 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e09_a_1 (ite X10 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) rtp.usr.X6_a_0))))) (= rtp.usr.X5_a_1 (ite rtp.usr.e04_a_1 (ite X8 (+ rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) (ite rtp.usr.e06_a_1 (ite X12 (- rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) rtp.usr.X5_a_0))) (= rtp.usr.X7_a_1 (ite rtp.usr.e08_a_1 (ite X11 (+ rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) (ite rtp.usr.e10_a_1 (ite X5 (- rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) rtp.usr.X7_a_0))) (= rtp.usr.X8_a_1 (ite rtp.usr.e09_a_1 (ite X10 (+ rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) (ite rtp.usr.e11_a_1 (ite X4 (- rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) rtp.usr.X8_a_0))) (= rtp.usr.erreur_a_1 (ite (>= rtp.usr.X1_a_1 2) true false)) (not rtp.res.init_flag_a_1))))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.abs_12_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_6_a_0)) (and (= top.res.abs_11_a_0 (and top.res.abs_10_a_0 (< X1 32767))) (let ((X2 top.res.abs_12_a_0)) (and (= top.usr.OK_a_0 (=> X2 (>= X1 0))) (__node_init_rtp_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.abs_12_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.abs_12_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_6_a_1)) (and (= top.res.abs_11_a_1 (and top.res.abs_10_a_1 (< X1 32767))) (let ((X2 top.res.abs_12_a_1)) (and (= top.usr.OK_a_1 (=> X2 (>= X1 0))) (__node_trans_rtp_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_11_a_1 top.res.abs_12_a_1 top.res.inst_1_a_1 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_6)) (and (= top.res.abs_11 (and top.res.abs_10 (< X1 32767))) (let ((X2 top.res.abs_12)) (and (= top.usr.OK (=> X2 (>= X1 0))) (__node_init_rtp_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_11 top.res.abs_12 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_10 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.abs_12! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_6!)) (and (= top.res.abs_11! (and top.res.abs_10! (< X1 32767))) (let ((X2 top.res.abs_12!)) (and (= top.usr.OK! (=> X2 (>= X1 0))) (__node_trans_rtp_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_11! top.res.abs_12! top.res.inst_1! top.res.abs_11 top.res.abs_12 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_10! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_10 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/rtp_all.sl b/benchmarks/LIA/Lustre/rtp_all.sl index 4c75919..d50c8b7 100644 --- a/benchmarks/LIA/Lustre/rtp_all.sl +++ b/benchmarks/LIA/Lustre/rtp_all.sl @@ -1,1878 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_rtp_0 ( - (rtp.usr.e01_a_0 Bool) - (rtp.usr.e02_a_0 Bool) - (rtp.usr.e03_a_0 Bool) - (rtp.usr.e04_a_0 Bool) - (rtp.usr.e05_a_0 Bool) - (rtp.usr.e06_a_0 Bool) - (rtp.usr.e07_a_0 Bool) - (rtp.usr.e08_a_0 Bool) - (rtp.usr.e09_a_0 Bool) - (rtp.usr.e10_a_0 Bool) - (rtp.usr.e11_a_0 Bool) - (rtp.usr.e12_a_0 Bool) - (rtp.res.nondet_11 Int) - (rtp.res.nondet_10 Int) - (rtp.res.nondet_9 Int) - (rtp.res.nondet_8 Int) - (rtp.res.nondet_7 Int) - (rtp.res.nondet_6 Int) - (rtp.res.nondet_5 Int) - (rtp.res.nondet_4 Int) - (rtp.res.nondet_3 Int) - (rtp.res.nondet_2 Int) - (rtp.res.nondet_1 Int) - (rtp.res.nondet_0 Int) - (rtp.usr.X1_a_0 Int) - (rtp.usr.X2_a_0 Int) - (rtp.usr.X3_a_0 Int) - (rtp.usr.X4_a_0 Int) - (rtp.usr.X5_a_0 Int) - (rtp.usr.X6_a_0 Int) - (rtp.usr.X7_a_0 Int) - (rtp.usr.X8_a_0 Int) - (rtp.usr.X9_a_0 Int) - (rtp.usr.erreur_a_0 Bool) - (rtp.res.init_flag_a_0 Bool) - ) Bool - - (and - (= rtp.usr.X1_a_0 1) - (let - ((X1 Bool (let ((X1 Int rtp.res.nondet_0)) (>= X1 1)))) - (and - (= rtp.usr.X2_a_0 0) - (let - ((X2 Bool (let ((X2 Int rtp.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int rtp.res.nondet_11)) (>= X3 1)))) - (and - (= rtp.usr.X9_a_0 0) - (let - ((X4 Bool (let ((X4 Int rtp.res.nondet_4)) (>= X4 1)))) - (and - (= rtp.usr.X4_a_0 0) - (let - ((X5 Bool (let ((X5 Int rtp.res.nondet_2)) (>= X5 1)))) - (and - (= rtp.usr.X3_a_0 0) - (let - ((X6 Bool (let ((X6 Int rtp.res.nondet_3)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int rtp.res.nondet_6)) (>= X7 1)))) - (and - (= rtp.usr.X6_a_0 0) - (let - ((X8 Bool (let ((X8 Int rtp.res.nondet_5)) (>= X8 1)))) - (and - (= rtp.usr.X5_a_0 0) - (let - ((X9 Bool (let ((X9 Int rtp.res.nondet_7)) (>= X9 1)))) - (let - ((X10 Bool (let ((X10 Int rtp.res.nondet_8)) (>= X10 1)))) - (let - ((X11 Bool (let ((X11 Int rtp.res.nondet_9)) (>= X11 1)))) - (and - (= rtp.usr.X7_a_0 0) - (let - ((X12 - Bool (let ((X12 Int rtp.res.nondet_10)) (>= X12 1)))) - (and - (= rtp.usr.X8_a_0 0) - (= - rtp.usr.erreur_a_0 - (ite (>= rtp.usr.X1_a_0 2) true false)) - rtp.res.init_flag_a_0))))))))))))))))))))) -) - -(define-fun - __node_trans_rtp_0 ( - (rtp.usr.e01_a_1 Bool) - (rtp.usr.e02_a_1 Bool) - (rtp.usr.e03_a_1 Bool) - (rtp.usr.e04_a_1 Bool) - (rtp.usr.e05_a_1 Bool) - (rtp.usr.e06_a_1 Bool) - (rtp.usr.e07_a_1 Bool) - (rtp.usr.e08_a_1 Bool) - (rtp.usr.e09_a_1 Bool) - (rtp.usr.e10_a_1 Bool) - (rtp.usr.e11_a_1 Bool) - (rtp.usr.e12_a_1 Bool) - (rtp.res.nondet_11 Int) - (rtp.res.nondet_10 Int) - (rtp.res.nondet_9 Int) - (rtp.res.nondet_8 Int) - (rtp.res.nondet_7 Int) - (rtp.res.nondet_6 Int) - (rtp.res.nondet_5 Int) - (rtp.res.nondet_4 Int) - (rtp.res.nondet_3 Int) - (rtp.res.nondet_2 Int) - (rtp.res.nondet_1 Int) - (rtp.res.nondet_0 Int) - (rtp.usr.X1_a_1 Int) - (rtp.usr.X2_a_1 Int) - (rtp.usr.X3_a_1 Int) - (rtp.usr.X4_a_1 Int) - (rtp.usr.X5_a_1 Int) - (rtp.usr.X6_a_1 Int) - (rtp.usr.X7_a_1 Int) - (rtp.usr.X8_a_1 Int) - (rtp.usr.X9_a_1 Int) - (rtp.usr.erreur_a_1 Bool) - (rtp.res.init_flag_a_1 Bool) - (rtp.usr.e01_a_0 Bool) - (rtp.usr.e02_a_0 Bool) - (rtp.usr.e03_a_0 Bool) - (rtp.usr.e04_a_0 Bool) - (rtp.usr.e05_a_0 Bool) - (rtp.usr.e06_a_0 Bool) - (rtp.usr.e07_a_0 Bool) - (rtp.usr.e08_a_0 Bool) - (rtp.usr.e09_a_0 Bool) - (rtp.usr.e10_a_0 Bool) - (rtp.usr.e11_a_0 Bool) - (rtp.usr.e12_a_0 Bool) - (rtp.usr.X1_a_0 Int) - (rtp.usr.X2_a_0 Int) - (rtp.usr.X3_a_0 Int) - (rtp.usr.X4_a_0 Int) - (rtp.usr.X5_a_0 Int) - (rtp.usr.X6_a_0 Int) - (rtp.usr.X7_a_0 Int) - (rtp.usr.X8_a_0 Int) - (rtp.usr.X9_a_0 Int) - (rtp.usr.erreur_a_0 Bool) - (rtp.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= rtp.usr.X1_a_0 1))) - (and - (= - rtp.usr.X1_a_1 - (ite - rtp.usr.e01_a_1 - (ite X1 (- rtp.usr.X1_a_0 1) rtp.usr.X1_a_0) - rtp.usr.X1_a_0)) - (let - ((X2 Bool (>= rtp.usr.X9_a_0 1))) - (let - ((X3 Bool (>= rtp.usr.X2_a_0 1))) - (and - (= - rtp.usr.X2_a_1 - (ite - rtp.usr.e01_a_1 - (ite X1 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - (ite - rtp.usr.e02_a_1 - (ite X3 (- rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - (ite - rtp.usr.e12_a_1 - (ite X2 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - rtp.usr.X2_a_0)))) - (let - ((X4 Bool (>= rtp.usr.X8_a_0 1))) - (let - ((X5 Bool (>= rtp.usr.X7_a_0 1))) - (let - ((X6 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X7 Bool (>= rtp.usr.X4_a_0 1))) - (and - (= - rtp.usr.X9_a_1 - (ite - rtp.usr.e05_a_1 - (ite X7 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e07_a_1 - (ite X6 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e10_a_1 - (ite X5 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e11_a_1 - (ite X4 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e12_a_1 - (ite X2 (- rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - rtp.usr.X9_a_0)))))) - (let - ((X8 Bool (>= rtp.usr.X4_a_0 1))) - (let - ((X9 Bool (>= rtp.usr.X3_a_0 1))) - (and - (= - rtp.usr.X4_a_1 - (ite - rtp.usr.e03_a_1 - (ite X9 (+ rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - (ite - rtp.usr.e04_a_1 - (ite X8 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - (ite - rtp.usr.e05_a_1 - (ite X7 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - rtp.usr.X4_a_0)))) - (= - rtp.usr.X3_a_1 - (ite - rtp.usr.e02_a_1 - (ite X3 (+ rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) - (ite - rtp.usr.e03_a_1 - (ite X9 (- rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) - rtp.usr.X3_a_0))) - (let - ((X10 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X11 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X12 Bool (>= rtp.usr.X5_a_0 1))) - (and - (= - rtp.usr.X6_a_1 - (ite - rtp.usr.e06_a_1 - (ite X12 (+ rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e07_a_1 - (ite X6 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e08_a_1 - (ite X11 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e09_a_1 - (ite X10 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - rtp.usr.X6_a_0))))) - (= - rtp.usr.X5_a_1 - (ite - rtp.usr.e04_a_1 - (ite X8 (+ rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) - (ite - rtp.usr.e06_a_1 - (ite X12 (- rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) - rtp.usr.X5_a_0))) - (= - rtp.usr.X7_a_1 - (ite - rtp.usr.e08_a_1 - (ite X11 (+ rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) - (ite - rtp.usr.e10_a_1 - (ite X5 (- rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) - rtp.usr.X7_a_0))) - (= - rtp.usr.X8_a_1 - (ite - rtp.usr.e09_a_1 - (ite X10 (+ rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) - (ite - rtp.usr.e11_a_1 - (ite X4 (- rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) - rtp.usr.X8_a_0))) - (= rtp.usr.erreur_a_1 (ite (>= rtp.usr.X1_a_1 2) true false)) - (not rtp.res.init_flag_a_1)))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.abs_12_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_7_a_0)) - (let - ((X3 Int top.res.abs_6_a_0)) - (let - ((X4 Int top.res.abs_5_a_0)) - (let - ((X5 Int top.res.abs_4_a_0)) - (let - ((X6 Int top.res.abs_3_a_0)) - (let - ((X7 Int top.res.abs_2_a_0)) - (let - ((X8 Int top.res.abs_1_a_0)) - (let - ((X9 Int top.res.abs_0_a_0)) - (and - (= - top.res.abs_11_a_0 - (and - (and - (and - (and - (and - (and - (and - (and (and top.res.abs_10_a_0 (< X9 32767)) (< X8 32767)) - (< X7 32767)) - (< X6 32767)) - (< X5 32767)) - (< X4 32767)) - (< X3 32767)) - (< X2 32767)) - (< X1 32767))) - (let - ((X10 Bool top.res.abs_12_a_0)) - (let - ((X11 Bool top.res.abs_9_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X10 - (and - (and - (and - (and - (and - (and - (and - (and - (and (and (not X11) (<= 0 X9)) (<= X9 1)) - (>= X8 0)) - (>= X7 0)) - (>= X6 0)) - (>= X5 0)) - (>= X4 0)) - (>= X3 0)) - (>= X2 0)) - (>= X1 0)))) - (__node_init_rtp_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.abs_12_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.abs_12_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_7_a_1)) - (let - ((X3 Int top.res.abs_6_a_1)) - (let - ((X4 Int top.res.abs_5_a_1)) - (let - ((X5 Int top.res.abs_4_a_1)) - (let - ((X6 Int top.res.abs_3_a_1)) - (let - ((X7 Int top.res.abs_2_a_1)) - (let - ((X8 Int top.res.abs_1_a_1)) - (let - ((X9 Int top.res.abs_0_a_1)) - (and - (= - top.res.abs_11_a_1 - (and - (and - (and - (and - (and - (and - (and - (and (and top.res.abs_10_a_1 (< X9 32767)) (< X8 32767)) - (< X7 32767)) - (< X6 32767)) - (< X5 32767)) - (< X4 32767)) - (< X3 32767)) - (< X2 32767)) - (< X1 32767))) - (let - ((X10 Bool top.res.abs_12_a_1)) - (let - ((X11 Bool top.res.abs_9_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X10 - (and - (and - (and - (and - (and - (and - (and - (and - (and (and (not X11) (<= 0 X9)) (<= X9 1)) - (>= X8 0)) - (>= X7 0)) - (>= X6 0)) - (>= X5 0)) - (>= X4 0)) - (>= X3 0)) - (>= X2 0)) - (>= X1 0)))) - (__node_trans_rtp_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_11_a_1 - top.res.abs_12_a_1 - top.res.inst_1_a_1 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.abs_12 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_8)) - (let - ((X2 Int top.res.abs_7)) - (let - ((X3 Int top.res.abs_6)) - (let - ((X4 Int top.res.abs_5)) - (let - ((X5 Int top.res.abs_4)) - (let - ((X6 Int top.res.abs_3)) - (let - ((X7 Int top.res.abs_2)) - (let - ((X8 Int top.res.abs_1)) - (let - ((X9 Int top.res.abs_0)) - (and - (= - top.res.abs_11 - (and - (and - (and - (and - (and - (and - (and - (and (and top.res.abs_10 (< X9 32767)) (< X8 32767)) - (< X7 32767)) - (< X6 32767)) - (< X5 32767)) - (< X4 32767)) - (< X3 32767)) - (< X2 32767)) - (< X1 32767))) - (let - ((X10 Bool top.res.abs_12)) - (let - ((X11 Bool top.res.abs_9)) - (and - (= - top.usr.OK - (=> - X10 - (and - (and - (and - (and - (and - (and - (and - (and - (and (and (not X11) (<= 0 X9)) (<= X9 1)) - (>= X8 0)) - (>= X7 0)) - (>= X6 0)) - (>= X5 0)) - (>= X4 0)) - (>= X3 0)) - (>= X2 0)) - (>= X1 0)))) - (__node_init_rtp_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_2) - (__node_init_Sofar_0 - top.res.abs_11 - top.res.abs_12 - top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_10 - top.res.inst_0) - top.res.init_flag))))))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.abs_12! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Int top.res.abs_8!)) - (let - ((X2 Int top.res.abs_7!)) - (let - ((X3 Int top.res.abs_6!)) - (let - ((X4 Int top.res.abs_5!)) - (let - ((X5 Int top.res.abs_4!)) - (let - ((X6 Int top.res.abs_3!)) - (let - ((X7 Int top.res.abs_2!)) - (let - ((X8 Int top.res.abs_1!)) - (let - ((X9 Int top.res.abs_0!)) - (and - (= - top.res.abs_11! - (and - (and - (and - (and - (and - (and - (and - (and (and top.res.abs_10! (< X9 32767)) (< X8 32767)) - (< X7 32767)) - (< X6 32767)) - (< X5 32767)) - (< X4 32767)) - (< X3 32767)) - (< X2 32767)) - (< X1 32767))) - (let - ((X10 Bool top.res.abs_12!)) - (let - ((X11 Bool top.res.abs_9!)) - (and - (= - top.usr.OK! - (=> - X10 - (and - (and - (and - (and - (and - (and - (and - (and - (and (and (not X11) (<= 0 X9)) (<= X9 1)) - (>= X8 0)) - (>= X7 0)) - (>= X6 0)) - (>= X5 0)) - (>= X4 0)) - (>= X3 0)) - (>= X2 0)) - (>= X1 0)))) - (__node_trans_rtp_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_11! - top.res.abs_12! - top.res.inst_1! - top.res.abs_11 - top.res.abs_12 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_10! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!)))))))))))))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_rtp_0 ((rtp.usr.e01_a_0 Bool) (rtp.usr.e02_a_0 Bool) (rtp.usr.e03_a_0 Bool) (rtp.usr.e04_a_0 Bool) (rtp.usr.e05_a_0 Bool) (rtp.usr.e06_a_0 Bool) (rtp.usr.e07_a_0 Bool) (rtp.usr.e08_a_0 Bool) (rtp.usr.e09_a_0 Bool) (rtp.usr.e10_a_0 Bool) (rtp.usr.e11_a_0 Bool) (rtp.usr.e12_a_0 Bool) (rtp.res.nondet_11 Int) (rtp.res.nondet_10 Int) (rtp.res.nondet_9 Int) (rtp.res.nondet_8 Int) (rtp.res.nondet_7 Int) (rtp.res.nondet_6 Int) (rtp.res.nondet_5 Int) (rtp.res.nondet_4 Int) (rtp.res.nondet_3 Int) (rtp.res.nondet_2 Int) (rtp.res.nondet_1 Int) (rtp.res.nondet_0 Int) (rtp.usr.X1_a_0 Int) (rtp.usr.X2_a_0 Int) (rtp.usr.X3_a_0 Int) (rtp.usr.X4_a_0 Int) (rtp.usr.X5_a_0 Int) (rtp.usr.X6_a_0 Int) (rtp.usr.X7_a_0 Int) (rtp.usr.X8_a_0 Int) (rtp.usr.X9_a_0 Int) (rtp.usr.erreur_a_0 Bool) (rtp.res.init_flag_a_0 Bool)) Bool + (and (= rtp.usr.X1_a_0 1) (let ((X1 (let ((X1 rtp.res.nondet_0)) (>= X1 1)))) (and (= rtp.usr.X2_a_0 0) (let ((X2 (let ((X2 rtp.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 rtp.res.nondet_11)) (>= X3 1)))) (and (= rtp.usr.X9_a_0 0) (let ((X4 (let ((X4 rtp.res.nondet_4)) (>= X4 1)))) (and (= rtp.usr.X4_a_0 0) (let ((X5 (let ((X5 rtp.res.nondet_2)) (>= X5 1)))) (and (= rtp.usr.X3_a_0 0) (let ((X6 (let ((X6 rtp.res.nondet_3)) (>= X6 1)))) (let ((X7 (let ((X7 rtp.res.nondet_6)) (>= X7 1)))) (and (= rtp.usr.X6_a_0 0) (let ((X8 (let ((X8 rtp.res.nondet_5)) (>= X8 1)))) (and (= rtp.usr.X5_a_0 0) (let ((X9 (let ((X9 rtp.res.nondet_7)) (>= X9 1)))) (let ((X10 (let ((X10 rtp.res.nondet_8)) (>= X10 1)))) (let ((X11 (let ((X11 rtp.res.nondet_9)) (>= X11 1)))) (and (= rtp.usr.X7_a_0 0) (let ((X12 (let ((X12 rtp.res.nondet_10)) (>= X12 1)))) (and (= rtp.usr.X8_a_0 0) (= rtp.usr.erreur_a_0 (ite (>= rtp.usr.X1_a_0 2) true false)) rtp.res.init_flag_a_0)))))))))))))))))))))) +(define-fun __node_trans_rtp_0 ((rtp.usr.e01_a_1 Bool) (rtp.usr.e02_a_1 Bool) (rtp.usr.e03_a_1 Bool) (rtp.usr.e04_a_1 Bool) (rtp.usr.e05_a_1 Bool) (rtp.usr.e06_a_1 Bool) (rtp.usr.e07_a_1 Bool) (rtp.usr.e08_a_1 Bool) (rtp.usr.e09_a_1 Bool) (rtp.usr.e10_a_1 Bool) (rtp.usr.e11_a_1 Bool) (rtp.usr.e12_a_1 Bool) (rtp.res.nondet_11 Int) (rtp.res.nondet_10 Int) (rtp.res.nondet_9 Int) (rtp.res.nondet_8 Int) (rtp.res.nondet_7 Int) (rtp.res.nondet_6 Int) (rtp.res.nondet_5 Int) (rtp.res.nondet_4 Int) (rtp.res.nondet_3 Int) (rtp.res.nondet_2 Int) (rtp.res.nondet_1 Int) (rtp.res.nondet_0 Int) (rtp.usr.X1_a_1 Int) (rtp.usr.X2_a_1 Int) (rtp.usr.X3_a_1 Int) (rtp.usr.X4_a_1 Int) (rtp.usr.X5_a_1 Int) (rtp.usr.X6_a_1 Int) (rtp.usr.X7_a_1 Int) (rtp.usr.X8_a_1 Int) (rtp.usr.X9_a_1 Int) (rtp.usr.erreur_a_1 Bool) (rtp.res.init_flag_a_1 Bool) (rtp.usr.e01_a_0 Bool) (rtp.usr.e02_a_0 Bool) (rtp.usr.e03_a_0 Bool) (rtp.usr.e04_a_0 Bool) (rtp.usr.e05_a_0 Bool) (rtp.usr.e06_a_0 Bool) (rtp.usr.e07_a_0 Bool) (rtp.usr.e08_a_0 Bool) (rtp.usr.e09_a_0 Bool) (rtp.usr.e10_a_0 Bool) (rtp.usr.e11_a_0 Bool) (rtp.usr.e12_a_0 Bool) (rtp.usr.X1_a_0 Int) (rtp.usr.X2_a_0 Int) (rtp.usr.X3_a_0 Int) (rtp.usr.X4_a_0 Int) (rtp.usr.X5_a_0 Int) (rtp.usr.X6_a_0 Int) (rtp.usr.X7_a_0 Int) (rtp.usr.X8_a_0 Int) (rtp.usr.X9_a_0 Int) (rtp.usr.erreur_a_0 Bool) (rtp.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= rtp.usr.X1_a_0 1))) (and (= rtp.usr.X1_a_1 (ite rtp.usr.e01_a_1 (ite X1 (- rtp.usr.X1_a_0 1) rtp.usr.X1_a_0) rtp.usr.X1_a_0)) (let ((X2 (>= rtp.usr.X9_a_0 1))) (let ((X3 (>= rtp.usr.X2_a_0 1))) (and (= rtp.usr.X2_a_1 (ite rtp.usr.e01_a_1 (ite X1 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) (ite rtp.usr.e02_a_1 (ite X3 (- rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) (ite rtp.usr.e12_a_1 (ite X2 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) rtp.usr.X2_a_0)))) (let ((X4 (>= rtp.usr.X8_a_0 1))) (let ((X5 (>= rtp.usr.X7_a_0 1))) (let ((X6 (>= rtp.usr.X6_a_0 1))) (let ((X7 (>= rtp.usr.X4_a_0 1))) (and (= rtp.usr.X9_a_1 (ite rtp.usr.e05_a_1 (ite X7 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e07_a_1 (ite X6 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e10_a_1 (ite X5 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e11_a_1 (ite X4 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e12_a_1 (ite X2 (- rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) rtp.usr.X9_a_0)))))) (let ((X8 (>= rtp.usr.X4_a_0 1))) (let ((X9 (>= rtp.usr.X3_a_0 1))) (and (= rtp.usr.X4_a_1 (ite rtp.usr.e03_a_1 (ite X9 (+ rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) (ite rtp.usr.e04_a_1 (ite X8 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) (ite rtp.usr.e05_a_1 (ite X7 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) rtp.usr.X4_a_0)))) (= rtp.usr.X3_a_1 (ite rtp.usr.e02_a_1 (ite X3 (+ rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) (ite rtp.usr.e03_a_1 (ite X9 (- rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) rtp.usr.X3_a_0))) (let ((X10 (>= rtp.usr.X6_a_0 1))) (let ((X11 (>= rtp.usr.X6_a_0 1))) (let ((X12 (>= rtp.usr.X5_a_0 1))) (and (= rtp.usr.X6_a_1 (ite rtp.usr.e06_a_1 (ite X12 (+ rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e07_a_1 (ite X6 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e08_a_1 (ite X11 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e09_a_1 (ite X10 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) rtp.usr.X6_a_0))))) (= rtp.usr.X5_a_1 (ite rtp.usr.e04_a_1 (ite X8 (+ rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) (ite rtp.usr.e06_a_1 (ite X12 (- rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) rtp.usr.X5_a_0))) (= rtp.usr.X7_a_1 (ite rtp.usr.e08_a_1 (ite X11 (+ rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) (ite rtp.usr.e10_a_1 (ite X5 (- rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) rtp.usr.X7_a_0))) (= rtp.usr.X8_a_1 (ite rtp.usr.e09_a_1 (ite X10 (+ rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) (ite rtp.usr.e11_a_1 (ite X4 (- rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) rtp.usr.X8_a_0))) (= rtp.usr.erreur_a_1 (ite (>= rtp.usr.X1_a_1 2) true false)) (not rtp.res.init_flag_a_1))))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.abs_12_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_7_a_0)) (let ((X3 top.res.abs_6_a_0)) (let ((X4 top.res.abs_5_a_0)) (let ((X5 top.res.abs_4_a_0)) (let ((X6 top.res.abs_3_a_0)) (let ((X7 top.res.abs_2_a_0)) (let ((X8 top.res.abs_1_a_0)) (let ((X9 top.res.abs_0_a_0)) (and (= top.res.abs_11_a_0 (and (and (and (and (and (and (and (and (and top.res.abs_10_a_0 (< X9 32767)) (< X8 32767)) (< X7 32767)) (< X6 32767)) (< X5 32767)) (< X4 32767)) (< X3 32767)) (< X2 32767)) (< X1 32767))) (let ((X10 top.res.abs_12_a_0)) (let ((X11 top.res.abs_9_a_0)) (and (= top.usr.OK_a_0 (=> X10 (and (and (and (and (and (and (and (and (and (and (not X11) (<= 0 X9)) (<= X9 1)) (>= X8 0)) (>= X7 0)) (>= X6 0)) (>= X5 0)) (>= X4 0)) (>= X3 0)) (>= X2 0)) (>= X1 0)))) (__node_init_rtp_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))))))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.abs_12_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.abs_12_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_7_a_1)) (let ((X3 top.res.abs_6_a_1)) (let ((X4 top.res.abs_5_a_1)) (let ((X5 top.res.abs_4_a_1)) (let ((X6 top.res.abs_3_a_1)) (let ((X7 top.res.abs_2_a_1)) (let ((X8 top.res.abs_1_a_1)) (let ((X9 top.res.abs_0_a_1)) (and (= top.res.abs_11_a_1 (and (and (and (and (and (and (and (and (and top.res.abs_10_a_1 (< X9 32767)) (< X8 32767)) (< X7 32767)) (< X6 32767)) (< X5 32767)) (< X4 32767)) (< X3 32767)) (< X2 32767)) (< X1 32767))) (let ((X10 top.res.abs_12_a_1)) (let ((X11 top.res.abs_9_a_1)) (and (= top.usr.OK_a_1 (=> X10 (and (and (and (and (and (and (and (and (and (and (not X11) (<= 0 X9)) (<= X9 1)) (>= X8 0)) (>= X7 0)) (>= X6 0)) (>= X5 0)) (>= X4 0)) (>= X3 0)) (>= X2 0)) (>= X1 0)))) (__node_trans_rtp_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_11_a_1 top.res.abs_12_a_1 top.res.inst_1_a_1 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_7)) (let ((X3 top.res.abs_6)) (let ((X4 top.res.abs_5)) (let ((X5 top.res.abs_4)) (let ((X6 top.res.abs_3)) (let ((X7 top.res.abs_2)) (let ((X8 top.res.abs_1)) (let ((X9 top.res.abs_0)) (and (= top.res.abs_11 (and (and (and (and (and (and (and (and (and top.res.abs_10 (< X9 32767)) (< X8 32767)) (< X7 32767)) (< X6 32767)) (< X5 32767)) (< X4 32767)) (< X3 32767)) (< X2 32767)) (< X1 32767))) (let ((X10 top.res.abs_12)) (let ((X11 top.res.abs_9)) (and (= top.usr.OK (=> X10 (and (and (and (and (and (and (and (and (and (and (not X11) (<= 0 X9)) (<= X9 1)) (>= X8 0)) (>= X7 0)) (>= X6 0)) (>= X5 0)) (>= X4 0)) (>= X3 0)) (>= X2 0)) (>= X1 0)))) (__node_init_rtp_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_11 top.res.abs_12 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_10 top.res.inst_0) top.res.init_flag)))))))))))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.abs_12! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_7!)) (let ((X3 top.res.abs_6!)) (let ((X4 top.res.abs_5!)) (let ((X5 top.res.abs_4!)) (let ((X6 top.res.abs_3!)) (let ((X7 top.res.abs_2!)) (let ((X8 top.res.abs_1!)) (let ((X9 top.res.abs_0!)) (and (= top.res.abs_11! (and (and (and (and (and (and (and (and (and top.res.abs_10! (< X9 32767)) (< X8 32767)) (< X7 32767)) (< X6 32767)) (< X5 32767)) (< X4 32767)) (< X3 32767)) (< X2 32767)) (< X1 32767))) (let ((X10 top.res.abs_12!)) (let ((X11 top.res.abs_9!)) (and (= top.usr.OK! (=> X10 (and (and (and (and (and (and (and (and (and (and (not X11) (<= 0 X9)) (<= X9 1)) (>= X8 0)) (>= X7 0)) (>= X6 0)) (>= X5 0)) (>= X4 0)) (>= X3 0)) (>= X2 0)) (>= X1 0)))) (__node_trans_rtp_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_11! top.res.abs_12! top.res.inst_1! top.res.abs_11 top.res.abs_12 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_10! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_10 top.res.inst_0) (not top.res.init_flag!)))))))))))))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/rtp_all_e7_2500.sl b/benchmarks/LIA/Lustre/rtp_all_e7_2500.sl index 728c3d5..58b4445 100644 --- a/benchmarks/LIA/Lustre/rtp_all_e7_2500.sl +++ b/benchmarks/LIA/Lustre/rtp_all_e7_2500.sl @@ -1,1878 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes12_0 ( - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - excludes12.usr.X3_a_0) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - excludes12.usr.X4_a_0) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - excludes12.usr.X5_a_0) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_0) - (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - excludes12.usr.X6_a_0) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - excludes12.usr.X7_a_0) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - excludes12.usr.X8_a_0) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - excludes12.usr.X9_a_0) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - excludes12.usr.X10_a_0) - (not excludes12.usr.X11_a_0)) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - excludes12.usr.X11_a_0) - (not excludes12.usr.X12_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) - (not excludes12.usr.X3_a_0)) - (not excludes12.usr.X4_a_0)) - (not excludes12.usr.X5_a_0)) - (not excludes12.usr.X6_a_0)) - (not excludes12.usr.X7_a_0)) - (not excludes12.usr.X8_a_0)) - (not excludes12.usr.X9_a_0)) - (not excludes12.usr.X10_a_0)) - (not excludes12.usr.X11_a_0)) - excludes12.usr.X12_a_0))) - excludes12.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes12_0 ( - (excludes12.usr.X1_a_1 Bool) - (excludes12.usr.X2_a_1 Bool) - (excludes12.usr.X3_a_1 Bool) - (excludes12.usr.X4_a_1 Bool) - (excludes12.usr.X5_a_1 Bool) - (excludes12.usr.X6_a_1 Bool) - (excludes12.usr.X7_a_1 Bool) - (excludes12.usr.X8_a_1 Bool) - (excludes12.usr.X9_a_1 Bool) - (excludes12.usr.X10_a_1 Bool) - (excludes12.usr.X11_a_1 Bool) - (excludes12.usr.X12_a_1 Bool) - (excludes12.usr.excludes_a_1 Bool) - (excludes12.res.init_flag_a_1 Bool) - (excludes12.usr.X1_a_0 Bool) - (excludes12.usr.X2_a_0 Bool) - (excludes12.usr.X3_a_0 Bool) - (excludes12.usr.X4_a_0 Bool) - (excludes12.usr.X5_a_0 Bool) - (excludes12.usr.X6_a_0 Bool) - (excludes12.usr.X7_a_0 Bool) - (excludes12.usr.X8_a_0 Bool) - (excludes12.usr.X9_a_0 Bool) - (excludes12.usr.X10_a_0 Bool) - (excludes12.usr.X11_a_0 Bool) - (excludes12.usr.X12_a_0 Bool) - (excludes12.usr.excludes_a_0 Bool) - (excludes12.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes12.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - excludes12.usr.X3_a_1) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - excludes12.usr.X4_a_1) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - excludes12.usr.X5_a_1) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (not excludes12.usr.X1_a_1) - (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - excludes12.usr.X6_a_1) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - excludes12.usr.X7_a_1) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - excludes12.usr.X8_a_1) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - excludes12.usr.X9_a_1) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - excludes12.usr.X10_a_1) - (not excludes12.usr.X11_a_1)) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - excludes12.usr.X11_a_1) - (not excludes12.usr.X12_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and - (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) - (not excludes12.usr.X3_a_1)) - (not excludes12.usr.X4_a_1)) - (not excludes12.usr.X5_a_1)) - (not excludes12.usr.X6_a_1)) - (not excludes12.usr.X7_a_1)) - (not excludes12.usr.X8_a_1)) - (not excludes12.usr.X9_a_1)) - (not excludes12.usr.X10_a_1)) - (not excludes12.usr.X11_a_1)) - excludes12.usr.X12_a_1))) - (not excludes12.res.init_flag_a_1)) -) - -(define-fun - __node_init_rtp_0 ( - (rtp.usr.e01_a_0 Bool) - (rtp.usr.e02_a_0 Bool) - (rtp.usr.e03_a_0 Bool) - (rtp.usr.e04_a_0 Bool) - (rtp.usr.e05_a_0 Bool) - (rtp.usr.e06_a_0 Bool) - (rtp.usr.e07_a_0 Bool) - (rtp.usr.e08_a_0 Bool) - (rtp.usr.e09_a_0 Bool) - (rtp.usr.e10_a_0 Bool) - (rtp.usr.e11_a_0 Bool) - (rtp.usr.e12_a_0 Bool) - (rtp.res.nondet_11 Int) - (rtp.res.nondet_10 Int) - (rtp.res.nondet_9 Int) - (rtp.res.nondet_8 Int) - (rtp.res.nondet_7 Int) - (rtp.res.nondet_6 Int) - (rtp.res.nondet_5 Int) - (rtp.res.nondet_4 Int) - (rtp.res.nondet_3 Int) - (rtp.res.nondet_2 Int) - (rtp.res.nondet_1 Int) - (rtp.res.nondet_0 Int) - (rtp.usr.X1_a_0 Int) - (rtp.usr.X2_a_0 Int) - (rtp.usr.X3_a_0 Int) - (rtp.usr.X4_a_0 Int) - (rtp.usr.X5_a_0 Int) - (rtp.usr.X6_a_0 Int) - (rtp.usr.X7_a_0 Int) - (rtp.usr.X8_a_0 Int) - (rtp.usr.X9_a_0 Int) - (rtp.usr.erreur_a_0 Bool) - (rtp.res.init_flag_a_0 Bool) - ) Bool - - (and - (= rtp.usr.X1_a_0 1) - (let - ((X1 Bool (let ((X1 Int rtp.res.nondet_0)) (>= X1 1)))) - (and - (= rtp.usr.X2_a_0 0) - (let - ((X2 Bool (let ((X2 Int rtp.res.nondet_1)) (>= X2 1)))) - (let - ((X3 Bool (let ((X3 Int rtp.res.nondet_11)) (>= X3 1)))) - (and - (= rtp.usr.X9_a_0 0) - (let - ((X4 Bool (let ((X4 Int rtp.res.nondet_4)) (>= X4 1)))) - (and - (= rtp.usr.X4_a_0 0) - (let - ((X5 Bool (let ((X5 Int rtp.res.nondet_2)) (>= X5 1)))) - (and - (= rtp.usr.X3_a_0 0) - (let - ((X6 Bool (let ((X6 Int rtp.res.nondet_3)) (>= X6 1)))) - (let - ((X7 Bool (let ((X7 Int rtp.res.nondet_6)) (>= X7 1)))) - (and - (= rtp.usr.X6_a_0 0) - (let - ((X8 Bool (let ((X8 Int rtp.res.nondet_5)) (>= X8 1)))) - (and - (= rtp.usr.X5_a_0 0) - (let - ((X9 Bool (let ((X9 Int rtp.res.nondet_7)) (>= X9 1)))) - (let - ((X10 Bool (let ((X10 Int rtp.res.nondet_8)) (>= X10 1)))) - (let - ((X11 Bool (let ((X11 Int rtp.res.nondet_9)) (>= X11 1)))) - (and - (= rtp.usr.X7_a_0 0) - (let - ((X12 - Bool (let ((X12 Int rtp.res.nondet_10)) (>= X12 1)))) - (and - (= rtp.usr.X8_a_0 0) - (= - rtp.usr.erreur_a_0 - (ite (>= rtp.usr.X1_a_0 2) true false)) - rtp.res.init_flag_a_0))))))))))))))))))))) -) - -(define-fun - __node_trans_rtp_0 ( - (rtp.usr.e01_a_1 Bool) - (rtp.usr.e02_a_1 Bool) - (rtp.usr.e03_a_1 Bool) - (rtp.usr.e04_a_1 Bool) - (rtp.usr.e05_a_1 Bool) - (rtp.usr.e06_a_1 Bool) - (rtp.usr.e07_a_1 Bool) - (rtp.usr.e08_a_1 Bool) - (rtp.usr.e09_a_1 Bool) - (rtp.usr.e10_a_1 Bool) - (rtp.usr.e11_a_1 Bool) - (rtp.usr.e12_a_1 Bool) - (rtp.res.nondet_11 Int) - (rtp.res.nondet_10 Int) - (rtp.res.nondet_9 Int) - (rtp.res.nondet_8 Int) - (rtp.res.nondet_7 Int) - (rtp.res.nondet_6 Int) - (rtp.res.nondet_5 Int) - (rtp.res.nondet_4 Int) - (rtp.res.nondet_3 Int) - (rtp.res.nondet_2 Int) - (rtp.res.nondet_1 Int) - (rtp.res.nondet_0 Int) - (rtp.usr.X1_a_1 Int) - (rtp.usr.X2_a_1 Int) - (rtp.usr.X3_a_1 Int) - (rtp.usr.X4_a_1 Int) - (rtp.usr.X5_a_1 Int) - (rtp.usr.X6_a_1 Int) - (rtp.usr.X7_a_1 Int) - (rtp.usr.X8_a_1 Int) - (rtp.usr.X9_a_1 Int) - (rtp.usr.erreur_a_1 Bool) - (rtp.res.init_flag_a_1 Bool) - (rtp.usr.e01_a_0 Bool) - (rtp.usr.e02_a_0 Bool) - (rtp.usr.e03_a_0 Bool) - (rtp.usr.e04_a_0 Bool) - (rtp.usr.e05_a_0 Bool) - (rtp.usr.e06_a_0 Bool) - (rtp.usr.e07_a_0 Bool) - (rtp.usr.e08_a_0 Bool) - (rtp.usr.e09_a_0 Bool) - (rtp.usr.e10_a_0 Bool) - (rtp.usr.e11_a_0 Bool) - (rtp.usr.e12_a_0 Bool) - (rtp.usr.X1_a_0 Int) - (rtp.usr.X2_a_0 Int) - (rtp.usr.X3_a_0 Int) - (rtp.usr.X4_a_0 Int) - (rtp.usr.X5_a_0 Int) - (rtp.usr.X6_a_0 Int) - (rtp.usr.X7_a_0 Int) - (rtp.usr.X8_a_0 Int) - (rtp.usr.X9_a_0 Int) - (rtp.usr.erreur_a_0 Bool) - (rtp.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (>= rtp.usr.X1_a_0 1))) - (and - (= - rtp.usr.X1_a_1 - (ite - rtp.usr.e01_a_1 - (ite X1 (- rtp.usr.X1_a_0 1) rtp.usr.X1_a_0) - rtp.usr.X1_a_0)) - (let - ((X2 Bool (>= rtp.usr.X9_a_0 1))) - (let - ((X3 Bool (>= rtp.usr.X2_a_0 1))) - (and - (= - rtp.usr.X2_a_1 - (ite - rtp.usr.e01_a_1 - (ite X1 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - (ite - rtp.usr.e02_a_1 - (ite X3 (- rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - (ite - rtp.usr.e12_a_1 - (ite X2 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) - rtp.usr.X2_a_0)))) - (let - ((X4 Bool (>= rtp.usr.X8_a_0 1))) - (let - ((X5 Bool (>= rtp.usr.X7_a_0 1))) - (let - ((X6 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X7 Bool (>= rtp.usr.X4_a_0 1))) - (and - (= - rtp.usr.X9_a_1 - (ite - rtp.usr.e05_a_1 - (ite X7 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e07_a_1 - (ite X6 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e10_a_1 - (ite X5 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e11_a_1 - (ite X4 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - (ite - rtp.usr.e12_a_1 - (ite X2 (- rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) - rtp.usr.X9_a_0)))))) - (let - ((X8 Bool (>= rtp.usr.X4_a_0 1))) - (let - ((X9 Bool (>= rtp.usr.X3_a_0 1))) - (and - (= - rtp.usr.X4_a_1 - (ite - rtp.usr.e03_a_1 - (ite X9 (+ rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - (ite - rtp.usr.e04_a_1 - (ite X8 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - (ite - rtp.usr.e05_a_1 - (ite X7 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) - rtp.usr.X4_a_0)))) - (= - rtp.usr.X3_a_1 - (ite - rtp.usr.e02_a_1 - (ite X3 (+ rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) - (ite - rtp.usr.e03_a_1 - (ite X9 (- rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) - rtp.usr.X3_a_0))) - (let - ((X10 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X11 Bool (>= rtp.usr.X6_a_0 1))) - (let - ((X12 Bool (>= rtp.usr.X5_a_0 1))) - (and - (= - rtp.usr.X6_a_1 - (ite - rtp.usr.e06_a_1 - (ite X12 (+ rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e07_a_1 - (ite X6 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e08_a_1 - (ite X11 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - (ite - rtp.usr.e09_a_1 - (ite X10 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) - rtp.usr.X6_a_0))))) - (= - rtp.usr.X5_a_1 - (ite - rtp.usr.e04_a_1 - (ite X8 (+ rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) - (ite - rtp.usr.e06_a_1 - (ite X12 (- rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) - rtp.usr.X5_a_0))) - (= - rtp.usr.X7_a_1 - (ite - rtp.usr.e08_a_1 - (ite X11 (+ rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) - (ite - rtp.usr.e10_a_1 - (ite X5 (- rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) - rtp.usr.X7_a_0))) - (= - rtp.usr.X8_a_1 - (ite - rtp.usr.e09_a_1 - (ite X10 (+ rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) - (ite - rtp.usr.e11_a_1 - (ite X4 (- rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) - rtp.usr.X8_a_0))) - (= rtp.usr.erreur_a_1 (ite (>= rtp.usr.X1_a_1 2) true false)) - (not rtp.res.init_flag_a_1)))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.abs_12_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_8_a_0)) - (let - ((X2 Int top.res.abs_7_a_0)) - (let - ((X3 Int top.res.abs_6_a_0)) - (let - ((X4 Int top.res.abs_5_a_0)) - (let - ((X5 Int top.res.abs_4_a_0)) - (let - ((X6 Int top.res.abs_3_a_0)) - (let - ((X7 Int top.res.abs_2_a_0)) - (let - ((X8 Int top.res.abs_1_a_0)) - (let - ((X9 Int top.res.abs_0_a_0)) - (and - (= - top.res.abs_11_a_0 - (and - (and - (and - (and - (and - (and - (and - (and (and top.res.abs_10_a_0 (< X9 32767)) (< X8 32767)) - (< X7 32767)) - (< X6 32767)) - (< X5 32767)) - (< X4 32767)) - (< X3 32767)) - (< X2 32767)) - (< X1 32767))) - (let - ((X10 Bool top.res.abs_12_a_0)) - (let - ((X11 Bool top.res.abs_9_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X10 - (and - (and - (and - (and - (and - (and - (and - (and - (and (and (not X11) (<= 0 X9)) (<= X9 1)) - (>= X8 0)) - (>= X7 0)) - (>= X6 0)) - (>= X5 0)) - (>= X4 0)) - (>= X3 0)) - (>= X2 0)) - (>= X1 0)))) - (__node_init_rtp_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.inst_1_a_0) - (__node_init_excludes12_0 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e01_a_1 Bool) - (top.usr.e02_a_1 Bool) - (top.usr.e03_a_1 Bool) - (top.usr.e04_a_1 Bool) - (top.usr.e05_a_1 Bool) - (top.usr.e06_a_1 Bool) - (top.usr.e07_a_1 Bool) - (top.usr.e08_a_1 Bool) - (top.usr.e09_a_1 Bool) - (top.usr.e10_a_1 Bool) - (top.usr.e11_a_1 Bool) - (top.usr.e12_a_1 Bool) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Int) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.abs_12_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e01_a_0 Bool) - (top.usr.e02_a_0 Bool) - (top.usr.e03_a_0 Bool) - (top.usr.e04_a_0 Bool) - (top.usr.e05_a_0 Bool) - (top.usr.e06_a_0 Bool) - (top.usr.e07_a_0 Bool) - (top.usr.e08_a_0 Bool) - (top.usr.e09_a_0 Bool) - (top.usr.e10_a_0 Bool) - (top.usr.e11_a_0 Bool) - (top.usr.e12_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Int) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.abs_12_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_8_a_1)) - (let - ((X2 Int top.res.abs_7_a_1)) - (let - ((X3 Int top.res.abs_6_a_1)) - (let - ((X4 Int top.res.abs_5_a_1)) - (let - ((X5 Int top.res.abs_4_a_1)) - (let - ((X6 Int top.res.abs_3_a_1)) - (let - ((X7 Int top.res.abs_2_a_1)) - (let - ((X8 Int top.res.abs_1_a_1)) - (let - ((X9 Int top.res.abs_0_a_1)) - (and - (= - top.res.abs_11_a_1 - (and - (and - (and - (and - (and - (and - (and - (and (and top.res.abs_10_a_1 (< X9 32767)) (< X8 32767)) - (< X7 32767)) - (< X6 32767)) - (< X5 32767)) - (< X4 32767)) - (< X3 32767)) - (< X2 32767)) - (< X1 32767))) - (let - ((X10 Bool top.res.abs_12_a_1)) - (let - ((X11 Bool top.res.abs_9_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X10 - (and - (and - (and - (and - (and - (and - (and - (and - (and (and (not X11) (<= 0 X9)) (<= X9 1)) - (>= X8 0)) - (>= X7 0)) - (>= X6 0)) - (>= X5 0)) - (>= X4 0)) - (>= X3 0)) - (>= X2 0)) - (>= X1 0)))) - (__node_trans_rtp_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_2_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_11_a_1 - top.res.abs_12_a_1 - top.res.inst_1_a_1 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes12_0 - top.usr.e01_a_1 - top.usr.e02_a_1 - top.usr.e03_a_1 - top.usr.e04_a_1 - top.usr.e05_a_1 - top.usr.e06_a_1 - top.usr.e07_a_1 - top.usr.e08_a_1 - top.usr.e09_a_1 - top.usr.e10_a_1 - top.usr.e11_a_1 - top.usr.e12_a_1 - top.res.abs_10_a_1 - top.res.inst_0_a_1 - top.usr.e01_a_0 - top.usr.e02_a_0 - top.usr.e03_a_0 - top.usr.e04_a_0 - top.usr.e05_a_0 - top.usr.e06_a_0 - top.usr.e07_a_0 - top.usr.e08_a_0 - top.usr.e09_a_0 - top.usr.e10_a_0 - top.usr.e11_a_0 - top.usr.e12_a_0 - top.res.abs_10_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e01 Bool) -(declare-primed-var top.usr.e02 Bool) -(declare-primed-var top.usr.e03 Bool) -(declare-primed-var top.usr.e04 Bool) -(declare-primed-var top.usr.e05 Bool) -(declare-primed-var top.usr.e06 Bool) -(declare-primed-var top.usr.e07 Bool) -(declare-primed-var top.usr.e08 Bool) -(declare-primed-var top.usr.e09 Bool) -(declare-primed-var top.usr.e10 Bool) -(declare-primed-var top.usr.e11 Bool) -(declare-primed-var top.usr.e12 Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Int) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.abs_12 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Int top.res.abs_8)) - (let - ((X2 Int top.res.abs_7)) - (let - ((X3 Int top.res.abs_6)) - (let - ((X4 Int top.res.abs_5)) - (let - ((X5 Int top.res.abs_4)) - (let - ((X6 Int top.res.abs_3)) - (let - ((X7 Int top.res.abs_2)) - (let - ((X8 Int top.res.abs_1)) - (let - ((X9 Int top.res.abs_0)) - (and - (= - top.res.abs_11 - (and - (and - (and - (and - (and - (and - (and - (and (and top.res.abs_10 (< X9 32767)) (< X8 32767)) - (< X7 32767)) - (< X6 32767)) - (< X5 32767)) - (< X4 32767)) - (< X3 32767)) - (< X2 32767)) - (< X1 32767))) - (let - ((X10 Bool top.res.abs_12)) - (let - ((X11 Bool top.res.abs_9)) - (and - (= - top.usr.OK - (=> - X10 - (and - (and - (and - (and - (and - (and - (and - (and - (and (and (not X11) (<= 0 X9)) (<= X9 1)) - (>= X8 0)) - (>= X7 0)) - (>= X6 0)) - (>= X5 0)) - (>= X4 0)) - (>= X3 0)) - (>= X2 0)) - (>= X1 0)))) - (__node_init_rtp_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_2) - (__node_init_Sofar_0 - top.res.abs_11 - top.res.abs_12 - top.res.inst_1) - (__node_init_excludes12_0 - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_10 - top.res.inst_0) - top.res.init_flag))))))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e01! Bool) - (top.usr.e02! Bool) - (top.usr.e03! Bool) - (top.usr.e04! Bool) - (top.usr.e05! Bool) - (top.usr.e06! Bool) - (top.usr.e07! Bool) - (top.usr.e08! Bool) - (top.usr.e09! Bool) - (top.usr.e10! Bool) - (top.usr.e11! Bool) - (top.usr.e12! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Int) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.abs_12! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Int top.res.abs_8!)) - (let - ((X2 Int top.res.abs_7!)) - (let - ((X3 Int top.res.abs_6!)) - (let - ((X4 Int top.res.abs_5!)) - (let - ((X5 Int top.res.abs_4!)) - (let - ((X6 Int top.res.abs_3!)) - (let - ((X7 Int top.res.abs_2!)) - (let - ((X8 Int top.res.abs_1!)) - (let - ((X9 Int top.res.abs_0!)) - (and - (= - top.res.abs_11! - (and - (and - (and - (and - (and - (and - (and - (and (and top.res.abs_10! (< X9 32767)) (< X8 32767)) - (< X7 32767)) - (< X6 32767)) - (< X5 32767)) - (< X4 32767)) - (< X3 32767)) - (< X2 32767)) - (< X1 32767))) - (let - ((X10 Bool top.res.abs_12!)) - (let - ((X11 Bool top.res.abs_9!)) - (and - (= - top.usr.OK! - (=> - X10 - (and - (and - (and - (and - (and - (and - (and - (and - (and (and (not X11) (<= 0 X9)) (<= X9 1)) - (>= X8 0)) - (>= X7 0)) - (>= X6 0)) - (>= X5 0)) - (>= X4 0)) - (>= X3 0)) - (>= X2 0)) - (>= X1 0)))) - (__node_trans_rtp_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_2! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_11! - top.res.abs_12! - top.res.inst_1! - top.res.abs_11 - top.res.abs_12 - top.res.inst_1) - (__node_trans_excludes12_0 - top.usr.e01! - top.usr.e02! - top.usr.e03! - top.usr.e04! - top.usr.e05! - top.usr.e06! - top.usr.e07! - top.usr.e08! - top.usr.e09! - top.usr.e10! - top.usr.e11! - top.usr.e12! - top.res.abs_10! - top.res.inst_0! - top.usr.e01 - top.usr.e02 - top.usr.e03 - top.usr.e04 - top.usr.e05 - top.usr.e06 - top.usr.e07 - top.usr.e08 - top.usr.e09 - top.usr.e10 - top.usr.e11 - top.usr.e12 - top.res.abs_10 - top.res.inst_0) - (not top.res.init_flag!)))))))))))))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e01 Bool) - (top.usr.e02 Bool) - (top.usr.e03 Bool) - (top.usr.e04 Bool) - (top.usr.e05 Bool) - (top.usr.e06 Bool) - (top.usr.e07 Bool) - (top.usr.e08 Bool) - (top.usr.e09 Bool) - (top.usr.e10 Bool) - (top.usr.e11 Bool) - (top.usr.e12 Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Int) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes12_0 ((excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_0 (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) excludes12.usr.X2_a_0) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) excludes12.usr.X3_a_0) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) excludes12.usr.X4_a_0) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) excludes12.usr.X5_a_0) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) excludes12.usr.X6_a_0) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) excludes12.usr.X7_a_0) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) excludes12.usr.X8_a_0) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) excludes12.usr.X9_a_0) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) excludes12.usr.X10_a_0) (not excludes12.usr.X11_a_0)) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) excludes12.usr.X11_a_0) (not excludes12.usr.X12_a_0))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_0) (not excludes12.usr.X2_a_0)) (not excludes12.usr.X3_a_0)) (not excludes12.usr.X4_a_0)) (not excludes12.usr.X5_a_0)) (not excludes12.usr.X6_a_0)) (not excludes12.usr.X7_a_0)) (not excludes12.usr.X8_a_0)) (not excludes12.usr.X9_a_0)) (not excludes12.usr.X10_a_0)) (not excludes12.usr.X11_a_0)) excludes12.usr.X12_a_0))) excludes12.res.init_flag_a_0)) +(define-fun __node_trans_excludes12_0 ((excludes12.usr.X1_a_1 Bool) (excludes12.usr.X2_a_1 Bool) (excludes12.usr.X3_a_1 Bool) (excludes12.usr.X4_a_1 Bool) (excludes12.usr.X5_a_1 Bool) (excludes12.usr.X6_a_1 Bool) (excludes12.usr.X7_a_1 Bool) (excludes12.usr.X8_a_1 Bool) (excludes12.usr.X9_a_1 Bool) (excludes12.usr.X10_a_1 Bool) (excludes12.usr.X11_a_1 Bool) (excludes12.usr.X12_a_1 Bool) (excludes12.usr.excludes_a_1 Bool) (excludes12.res.init_flag_a_1 Bool) (excludes12.usr.X1_a_0 Bool) (excludes12.usr.X2_a_0 Bool) (excludes12.usr.X3_a_0 Bool) (excludes12.usr.X4_a_0 Bool) (excludes12.usr.X5_a_0 Bool) (excludes12.usr.X6_a_0 Bool) (excludes12.usr.X7_a_0 Bool) (excludes12.usr.X8_a_0 Bool) (excludes12.usr.X9_a_0 Bool) (excludes12.usr.X10_a_0 Bool) (excludes12.usr.X11_a_0 Bool) (excludes12.usr.X12_a_0 Bool) (excludes12.usr.excludes_a_0 Bool) (excludes12.res.init_flag_a_0 Bool)) Bool + (and (= excludes12.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1)) (and (and (and (and (and (and (and (and (and (and (and excludes12.usr.X1_a_1 (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) excludes12.usr.X2_a_1) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) excludes12.usr.X3_a_1) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) excludes12.usr.X4_a_1) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) excludes12.usr.X5_a_1) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) excludes12.usr.X6_a_1) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) excludes12.usr.X7_a_1) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) excludes12.usr.X8_a_1) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) excludes12.usr.X9_a_1) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) excludes12.usr.X10_a_1) (not excludes12.usr.X11_a_1)) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) excludes12.usr.X11_a_1) (not excludes12.usr.X12_a_1))) (and (and (and (and (and (and (and (and (and (and (and (not excludes12.usr.X1_a_1) (not excludes12.usr.X2_a_1)) (not excludes12.usr.X3_a_1)) (not excludes12.usr.X4_a_1)) (not excludes12.usr.X5_a_1)) (not excludes12.usr.X6_a_1)) (not excludes12.usr.X7_a_1)) (not excludes12.usr.X8_a_1)) (not excludes12.usr.X9_a_1)) (not excludes12.usr.X10_a_1)) (not excludes12.usr.X11_a_1)) excludes12.usr.X12_a_1))) (not excludes12.res.init_flag_a_1))) +(define-fun __node_init_rtp_0 ((rtp.usr.e01_a_0 Bool) (rtp.usr.e02_a_0 Bool) (rtp.usr.e03_a_0 Bool) (rtp.usr.e04_a_0 Bool) (rtp.usr.e05_a_0 Bool) (rtp.usr.e06_a_0 Bool) (rtp.usr.e07_a_0 Bool) (rtp.usr.e08_a_0 Bool) (rtp.usr.e09_a_0 Bool) (rtp.usr.e10_a_0 Bool) (rtp.usr.e11_a_0 Bool) (rtp.usr.e12_a_0 Bool) (rtp.res.nondet_11 Int) (rtp.res.nondet_10 Int) (rtp.res.nondet_9 Int) (rtp.res.nondet_8 Int) (rtp.res.nondet_7 Int) (rtp.res.nondet_6 Int) (rtp.res.nondet_5 Int) (rtp.res.nondet_4 Int) (rtp.res.nondet_3 Int) (rtp.res.nondet_2 Int) (rtp.res.nondet_1 Int) (rtp.res.nondet_0 Int) (rtp.usr.X1_a_0 Int) (rtp.usr.X2_a_0 Int) (rtp.usr.X3_a_0 Int) (rtp.usr.X4_a_0 Int) (rtp.usr.X5_a_0 Int) (rtp.usr.X6_a_0 Int) (rtp.usr.X7_a_0 Int) (rtp.usr.X8_a_0 Int) (rtp.usr.X9_a_0 Int) (rtp.usr.erreur_a_0 Bool) (rtp.res.init_flag_a_0 Bool)) Bool + (and (= rtp.usr.X1_a_0 1) (let ((X1 (let ((X1 rtp.res.nondet_0)) (>= X1 1)))) (and (= rtp.usr.X2_a_0 0) (let ((X2 (let ((X2 rtp.res.nondet_1)) (>= X2 1)))) (let ((X3 (let ((X3 rtp.res.nondet_11)) (>= X3 1)))) (and (= rtp.usr.X9_a_0 0) (let ((X4 (let ((X4 rtp.res.nondet_4)) (>= X4 1)))) (and (= rtp.usr.X4_a_0 0) (let ((X5 (let ((X5 rtp.res.nondet_2)) (>= X5 1)))) (and (= rtp.usr.X3_a_0 0) (let ((X6 (let ((X6 rtp.res.nondet_3)) (>= X6 1)))) (let ((X7 (let ((X7 rtp.res.nondet_6)) (>= X7 1)))) (and (= rtp.usr.X6_a_0 0) (let ((X8 (let ((X8 rtp.res.nondet_5)) (>= X8 1)))) (and (= rtp.usr.X5_a_0 0) (let ((X9 (let ((X9 rtp.res.nondet_7)) (>= X9 1)))) (let ((X10 (let ((X10 rtp.res.nondet_8)) (>= X10 1)))) (let ((X11 (let ((X11 rtp.res.nondet_9)) (>= X11 1)))) (and (= rtp.usr.X7_a_0 0) (let ((X12 (let ((X12 rtp.res.nondet_10)) (>= X12 1)))) (and (= rtp.usr.X8_a_0 0) (= rtp.usr.erreur_a_0 (ite (>= rtp.usr.X1_a_0 2) true false)) rtp.res.init_flag_a_0)))))))))))))))))))))) +(define-fun __node_trans_rtp_0 ((rtp.usr.e01_a_1 Bool) (rtp.usr.e02_a_1 Bool) (rtp.usr.e03_a_1 Bool) (rtp.usr.e04_a_1 Bool) (rtp.usr.e05_a_1 Bool) (rtp.usr.e06_a_1 Bool) (rtp.usr.e07_a_1 Bool) (rtp.usr.e08_a_1 Bool) (rtp.usr.e09_a_1 Bool) (rtp.usr.e10_a_1 Bool) (rtp.usr.e11_a_1 Bool) (rtp.usr.e12_a_1 Bool) (rtp.res.nondet_11 Int) (rtp.res.nondet_10 Int) (rtp.res.nondet_9 Int) (rtp.res.nondet_8 Int) (rtp.res.nondet_7 Int) (rtp.res.nondet_6 Int) (rtp.res.nondet_5 Int) (rtp.res.nondet_4 Int) (rtp.res.nondet_3 Int) (rtp.res.nondet_2 Int) (rtp.res.nondet_1 Int) (rtp.res.nondet_0 Int) (rtp.usr.X1_a_1 Int) (rtp.usr.X2_a_1 Int) (rtp.usr.X3_a_1 Int) (rtp.usr.X4_a_1 Int) (rtp.usr.X5_a_1 Int) (rtp.usr.X6_a_1 Int) (rtp.usr.X7_a_1 Int) (rtp.usr.X8_a_1 Int) (rtp.usr.X9_a_1 Int) (rtp.usr.erreur_a_1 Bool) (rtp.res.init_flag_a_1 Bool) (rtp.usr.e01_a_0 Bool) (rtp.usr.e02_a_0 Bool) (rtp.usr.e03_a_0 Bool) (rtp.usr.e04_a_0 Bool) (rtp.usr.e05_a_0 Bool) (rtp.usr.e06_a_0 Bool) (rtp.usr.e07_a_0 Bool) (rtp.usr.e08_a_0 Bool) (rtp.usr.e09_a_0 Bool) (rtp.usr.e10_a_0 Bool) (rtp.usr.e11_a_0 Bool) (rtp.usr.e12_a_0 Bool) (rtp.usr.X1_a_0 Int) (rtp.usr.X2_a_0 Int) (rtp.usr.X3_a_0 Int) (rtp.usr.X4_a_0 Int) (rtp.usr.X5_a_0 Int) (rtp.usr.X6_a_0 Int) (rtp.usr.X7_a_0 Int) (rtp.usr.X8_a_0 Int) (rtp.usr.X9_a_0 Int) (rtp.usr.erreur_a_0 Bool) (rtp.res.init_flag_a_0 Bool)) Bool + (let ((X1 (>= rtp.usr.X1_a_0 1))) (and (= rtp.usr.X1_a_1 (ite rtp.usr.e01_a_1 (ite X1 (- rtp.usr.X1_a_0 1) rtp.usr.X1_a_0) rtp.usr.X1_a_0)) (let ((X2 (>= rtp.usr.X9_a_0 1))) (let ((X3 (>= rtp.usr.X2_a_0 1))) (and (= rtp.usr.X2_a_1 (ite rtp.usr.e01_a_1 (ite X1 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) (ite rtp.usr.e02_a_1 (ite X3 (- rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) (ite rtp.usr.e12_a_1 (ite X2 (+ rtp.usr.X2_a_0 1) rtp.usr.X2_a_0) rtp.usr.X2_a_0)))) (let ((X4 (>= rtp.usr.X8_a_0 1))) (let ((X5 (>= rtp.usr.X7_a_0 1))) (let ((X6 (>= rtp.usr.X6_a_0 1))) (let ((X7 (>= rtp.usr.X4_a_0 1))) (and (= rtp.usr.X9_a_1 (ite rtp.usr.e05_a_1 (ite X7 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e07_a_1 (ite X6 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e10_a_1 (ite X5 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e11_a_1 (ite X4 (+ rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) (ite rtp.usr.e12_a_1 (ite X2 (- rtp.usr.X9_a_0 1) rtp.usr.X9_a_0) rtp.usr.X9_a_0)))))) (let ((X8 (>= rtp.usr.X4_a_0 1))) (let ((X9 (>= rtp.usr.X3_a_0 1))) (and (= rtp.usr.X4_a_1 (ite rtp.usr.e03_a_1 (ite X9 (+ rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) (ite rtp.usr.e04_a_1 (ite X8 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) (ite rtp.usr.e05_a_1 (ite X7 (- rtp.usr.X4_a_0 1) rtp.usr.X4_a_0) rtp.usr.X4_a_0)))) (= rtp.usr.X3_a_1 (ite rtp.usr.e02_a_1 (ite X3 (+ rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) (ite rtp.usr.e03_a_1 (ite X9 (- rtp.usr.X3_a_0 1) rtp.usr.X3_a_0) rtp.usr.X3_a_0))) (let ((X10 (>= rtp.usr.X6_a_0 1))) (let ((X11 (>= rtp.usr.X6_a_0 1))) (let ((X12 (>= rtp.usr.X5_a_0 1))) (and (= rtp.usr.X6_a_1 (ite rtp.usr.e06_a_1 (ite X12 (+ rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e07_a_1 (ite X6 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e08_a_1 (ite X11 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) (ite rtp.usr.e09_a_1 (ite X10 (- rtp.usr.X6_a_0 1) rtp.usr.X6_a_0) rtp.usr.X6_a_0))))) (= rtp.usr.X5_a_1 (ite rtp.usr.e04_a_1 (ite X8 (+ rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) (ite rtp.usr.e06_a_1 (ite X12 (- rtp.usr.X5_a_0 1) rtp.usr.X5_a_0) rtp.usr.X5_a_0))) (= rtp.usr.X7_a_1 (ite rtp.usr.e08_a_1 (ite X11 (+ rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) (ite rtp.usr.e10_a_1 (ite X5 (- rtp.usr.X7_a_0 1) rtp.usr.X7_a_0) rtp.usr.X7_a_0))) (= rtp.usr.X8_a_1 (ite rtp.usr.e09_a_1 (ite X10 (+ rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) (ite rtp.usr.e11_a_1 (ite X4 (- rtp.usr.X8_a_0 1) rtp.usr.X8_a_0) rtp.usr.X8_a_0))) (= rtp.usr.erreur_a_1 (ite (>= rtp.usr.X1_a_1 2) true false)) (not rtp.res.init_flag_a_1))))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.abs_12_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_8_a_0)) (let ((X2 top.res.abs_7_a_0)) (let ((X3 top.res.abs_6_a_0)) (let ((X4 top.res.abs_5_a_0)) (let ((X5 top.res.abs_4_a_0)) (let ((X6 top.res.abs_3_a_0)) (let ((X7 top.res.abs_2_a_0)) (let ((X8 top.res.abs_1_a_0)) (let ((X9 top.res.abs_0_a_0)) (and (= top.res.abs_11_a_0 (and (and (and (and (and (and (and (and (and top.res.abs_10_a_0 (< X9 32767)) (< X8 32767)) (< X7 32767)) (< X6 32767)) (< X5 32767)) (< X4 32767)) (< X3 32767)) (< X2 32767)) (< X1 32767))) (let ((X10 top.res.abs_12_a_0)) (let ((X11 top.res.abs_9_a_0)) (and (= top.usr.OK_a_0 (=> X10 (and (and (and (and (and (and (and (and (and (and (not X11) (<= 0 X9)) (<= X9 1)) (>= X8 0)) (>= X7 0)) (>= X6 0)) (>= X5 0)) (>= X4 0)) (>= X3 0)) (>= X2 0)) (>= X1 0)))) (__node_init_rtp_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.inst_1_a_0) (__node_init_excludes12_0 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))))))))) +(define-fun __node_trans_top_0 ((top.usr.e01_a_1 Bool) (top.usr.e02_a_1 Bool) (top.usr.e03_a_1 Bool) (top.usr.e04_a_1 Bool) (top.usr.e05_a_1 Bool) (top.usr.e06_a_1 Bool) (top.usr.e07_a_1 Bool) (top.usr.e08_a_1 Bool) (top.usr.e09_a_1 Bool) (top.usr.e10_a_1 Bool) (top.usr.e11_a_1 Bool) (top.usr.e12_a_1 Bool) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Int) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.abs_12_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e01_a_0 Bool) (top.usr.e02_a_0 Bool) (top.usr.e03_a_0 Bool) (top.usr.e04_a_0 Bool) (top.usr.e05_a_0 Bool) (top.usr.e06_a_0 Bool) (top.usr.e07_a_0 Bool) (top.usr.e08_a_0 Bool) (top.usr.e09_a_0 Bool) (top.usr.e10_a_0 Bool) (top.usr.e11_a_0 Bool) (top.usr.e12_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Int) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.abs_12_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_8_a_1)) (let ((X2 top.res.abs_7_a_1)) (let ((X3 top.res.abs_6_a_1)) (let ((X4 top.res.abs_5_a_1)) (let ((X5 top.res.abs_4_a_1)) (let ((X6 top.res.abs_3_a_1)) (let ((X7 top.res.abs_2_a_1)) (let ((X8 top.res.abs_1_a_1)) (let ((X9 top.res.abs_0_a_1)) (and (= top.res.abs_11_a_1 (and (and (and (and (and (and (and (and (and top.res.abs_10_a_1 (< X9 32767)) (< X8 32767)) (< X7 32767)) (< X6 32767)) (< X5 32767)) (< X4 32767)) (< X3 32767)) (< X2 32767)) (< X1 32767))) (let ((X10 top.res.abs_12_a_1)) (let ((X11 top.res.abs_9_a_1)) (and (= top.usr.OK_a_1 (=> X10 (and (and (and (and (and (and (and (and (and (and (not X11) (<= 0 X9)) (<= X9 1)) (>= X8 0)) (>= X7 0)) (>= X6 0)) (>= X5 0)) (>= X4 0)) (>= X3 0)) (>= X2 0)) (>= X1 0)))) (__node_trans_rtp_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_2_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_11_a_1 top.res.abs_12_a_1 top.res.inst_1_a_1 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.inst_1_a_0) (__node_trans_excludes12_0 top.usr.e01_a_1 top.usr.e02_a_1 top.usr.e03_a_1 top.usr.e04_a_1 top.usr.e05_a_1 top.usr.e06_a_1 top.usr.e07_a_1 top.usr.e08_a_1 top.usr.e09_a_1 top.usr.e10_a_1 top.usr.e11_a_1 top.usr.e12_a_1 top.res.abs_10_a_1 top.res.inst_0_a_1 top.usr.e01_a_0 top.usr.e02_a_0 top.usr.e03_a_0 top.usr.e04_a_0 top.usr.e05_a_0 top.usr.e06_a_0 top.usr.e07_a_0 top.usr.e08_a_0 top.usr.e09_a_0 top.usr.e10_a_0 top.usr.e11_a_0 top.usr.e12_a_0 top.res.abs_10_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))))))))) +(synth-inv str_invariant ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_8)) (let ((X2 top.res.abs_7)) (let ((X3 top.res.abs_6)) (let ((X4 top.res.abs_5)) (let ((X5 top.res.abs_4)) (let ((X6 top.res.abs_3)) (let ((X7 top.res.abs_2)) (let ((X8 top.res.abs_1)) (let ((X9 top.res.abs_0)) (and (= top.res.abs_11 (and (and (and (and (and (and (and (and (and top.res.abs_10 (< X9 32767)) (< X8 32767)) (< X7 32767)) (< X6 32767)) (< X5 32767)) (< X4 32767)) (< X3 32767)) (< X2 32767)) (< X1 32767))) (let ((X10 top.res.abs_12)) (let ((X11 top.res.abs_9)) (and (= top.usr.OK (=> X10 (and (and (and (and (and (and (and (and (and (and (not X11) (<= 0 X9)) (<= X9 1)) (>= X8 0)) (>= X7 0)) (>= X6 0)) (>= X5 0)) (>= X4 0)) (>= X3 0)) (>= X2 0)) (>= X1 0)))) (__node_init_rtp_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_11 top.res.abs_12 top.res.inst_1) (__node_init_excludes12_0 top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_10 top.res.inst_0) top.res.init_flag)))))))))))))) +(define-fun trans ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e01! Bool) (top.usr.e02! Bool) (top.usr.e03! Bool) (top.usr.e04! Bool) (top.usr.e05! Bool) (top.usr.e06! Bool) (top.usr.e07! Bool) (top.usr.e08! Bool) (top.usr.e09! Bool) (top.usr.e10! Bool) (top.usr.e11! Bool) (top.usr.e12! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Int) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.abs_12! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_8!)) (let ((X2 top.res.abs_7!)) (let ((X3 top.res.abs_6!)) (let ((X4 top.res.abs_5!)) (let ((X5 top.res.abs_4!)) (let ((X6 top.res.abs_3!)) (let ((X7 top.res.abs_2!)) (let ((X8 top.res.abs_1!)) (let ((X9 top.res.abs_0!)) (and (= top.res.abs_11! (and (and (and (and (and (and (and (and (and top.res.abs_10! (< X9 32767)) (< X8 32767)) (< X7 32767)) (< X6 32767)) (< X5 32767)) (< X4 32767)) (< X3 32767)) (< X2 32767)) (< X1 32767))) (let ((X10 top.res.abs_12!)) (let ((X11 top.res.abs_9!)) (and (= top.usr.OK! (=> X10 (and (and (and (and (and (and (and (and (and (and (not X11) (<= 0 X9)) (<= X9 1)) (>= X8 0)) (>= X7 0)) (>= X6 0)) (>= X5 0)) (>= X4 0)) (>= X3 0)) (>= X2 0)) (>= X1 0)))) (__node_trans_rtp_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_2! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_11! top.res.abs_12! top.res.inst_1! top.res.abs_11 top.res.abs_12 top.res.inst_1) (__node_trans_excludes12_0 top.usr.e01! top.usr.e02! top.usr.e03! top.usr.e04! top.usr.e05! top.usr.e06! top.usr.e07! top.usr.e08! top.usr.e09! top.usr.e10! top.usr.e11! top.usr.e12! top.res.abs_10! top.res.inst_0! top.usr.e01 top.usr.e02 top.usr.e03 top.usr.e04 top.usr.e05 top.usr.e06 top.usr.e07 top.usr.e08 top.usr.e09 top.usr.e10 top.usr.e11 top.usr.e12 top.res.abs_10 top.res.inst_0) (not top.res.init_flag!)))))))))))))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e01 Bool) (top.usr.e02 Bool) (top.usr.e03 Bool) (top.usr.e04 Bool) (top.usr.e05 Bool) (top.usr.e06 Bool) (top.usr.e07 Bool) (top.usr.e08 Bool) (top.usr.e09 Bool) (top.usr.e10 Bool) (top.usr.e11 Bool) (top.usr.e12 Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Int) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/speed2.sl b/benchmarks/LIA/Lustre/speed2.sl index 0c2419c..307016e 100644 --- a/benchmarks/LIA/Lustre/speed2.sl +++ b/benchmarks/LIA/Lustre/speed2.sl @@ -1,421 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_COUNTER_0 ( - (COUNTER.usr.init_a_0 Int) - (COUNTER.usr.incr_a_0 Int) - (COUNTER.usr.X_a_0 Bool) - (COUNTER.usr.reset_a_0 Bool) - (COUNTER.usr.C_a_0 Int) - (COUNTER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int COUNTER.usr.init_a_0)) - (and - (= - COUNTER.usr.C_a_0 - (ite - COUNTER.usr.reset_a_0 - COUNTER.usr.init_a_0 - (ite COUNTER.usr.X_a_0 (+ X1 COUNTER.usr.incr_a_0) X1))) - COUNTER.res.init_flag_a_0)) -) - -(define-fun - __node_trans_COUNTER_0 ( - (COUNTER.usr.init_a_1 Int) - (COUNTER.usr.incr_a_1 Int) - (COUNTER.usr.X_a_1 Bool) - (COUNTER.usr.reset_a_1 Bool) - (COUNTER.usr.C_a_1 Int) - (COUNTER.res.init_flag_a_1 Bool) - (COUNTER.usr.init_a_0 Int) - (COUNTER.usr.incr_a_0 Int) - (COUNTER.usr.X_a_0 Bool) - (COUNTER.usr.reset_a_0 Bool) - (COUNTER.usr.C_a_0 Int) - (COUNTER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int COUNTER.usr.C_a_0)) - (and - (= - COUNTER.usr.C_a_1 - (ite - COUNTER.usr.reset_a_1 - COUNTER.usr.init_a_1 - (ite COUNTER.usr.X_a_1 (+ X1 COUNTER.usr.incr_a_1) X1))) - (not COUNTER.res.init_flag_a_1))) -) - -(define-fun - __node_init_speed_0 ( - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.usr.late_a_0 false) - (= speed.res.abs_2_a_0 false) - (= speed.res.abs_1_a_0 (or speed.usr.beacon_a_0 speed.usr.second_a_0)) - (= speed.res.abs_0_a_0 0) - (= - speed.impl.usr.incr_a_0 - (ite - (and speed.usr.beacon_a_0 (not speed.usr.second_a_0)) - 1 - (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) 2 0))) - (let - ((X1 Int speed.res.abs_3_a_0)) - (and - (= speed.usr.early_a_0 false) - (__node_init_COUNTER_0 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_0 0) - (<= 0 speed.impl.usr.incr_a_0 2) - speed.res.init_flag_a_0))) -) - -(define-fun - __node_trans_speed_0 ( - (speed.usr.beacon_a_1 Bool) - (speed.usr.second_a_1 Bool) - (speed.usr.late_a_1 Bool) - (speed.usr.early_a_1 Bool) - (speed.res.init_flag_a_1 Bool) - (speed.impl.usr.incr_a_1 Int) - (speed.res.abs_0_a_1 Int) - (speed.res.abs_1_a_1 Bool) - (speed.res.abs_2_a_1 Bool) - (speed.res.abs_3_a_1 Int) - (speed.res.inst_0_a_1 Bool) - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.res.abs_2_a_1 false) - (= speed.res.abs_1_a_1 (or speed.usr.beacon_a_1 speed.usr.second_a_1)) - (= speed.res.abs_0_a_1 0) - (= - speed.impl.usr.incr_a_1 - (ite - (and speed.usr.beacon_a_1 (not speed.usr.second_a_1)) - 1 - (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) 2 0))) - (let - ((X1 Int speed.res.abs_3_a_1)) - (and - (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) - (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) - (__node_trans_COUNTER_0 - speed.res.abs_0_a_1 - speed.impl.usr.incr_a_1 - speed.res.abs_1_a_1 - speed.res.abs_2_a_1 - speed.res.abs_3_a_1 - speed.res.inst_0_a_1 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_1 0) - (<= 0 speed.impl.usr.incr_a_1 2) - (not speed.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.early_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Bool top.res.abs_0_a_0)) - (and - (= top.impl.usr.early_a_0 top.res.abs_1_a_0) - (__node_init_speed_0 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.beacon_a_1 Bool) - (top.usr.second_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.early_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Int) - (top.res.inst_0_a_1 Bool) - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.early_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (or (not top.impl.usr.early_a_0) (not X1))) - (= top.impl.usr.early_a_1 top.res.abs_1_a_1) - (__node_trans_speed_0 - top.usr.beacon_a_1 - top.usr.second_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.res.inst_0_a_1 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))) -) - - - -(synth-inv str_invariant( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.beacon Bool) -(declare-primed-var top.usr.second Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.early Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Int) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Bool top.res.abs_0)) - (and - (= top.impl.usr.early top.res.abs_1) - (__node_init_speed_0 - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.beacon! Bool) - (top.usr.second! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.early! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Int) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_0!)) - (and - (= top.usr.OK! (or (not top.impl.usr.early) (not X1))) - (= top.impl.usr.early! top.res.abs_1!) - (__node_trans_speed_0 - top.usr.beacon! - top.usr.second! - top.res.abs_0! - top.res.abs_1! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.res.inst_0! - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - (not top.res.init_flag!))) -) - -(define-fun - prop ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_COUNTER_0 ((COUNTER.usr.init_a_0 Int) (COUNTER.usr.incr_a_0 Int) (COUNTER.usr.X_a_0 Bool) (COUNTER.usr.reset_a_0 Bool) (COUNTER.usr.C_a_0 Int) (COUNTER.res.init_flag_a_0 Bool)) Bool + (let ((X1 COUNTER.usr.init_a_0)) (and (= COUNTER.usr.C_a_0 (ite COUNTER.usr.reset_a_0 COUNTER.usr.init_a_0 (ite COUNTER.usr.X_a_0 (+ X1 COUNTER.usr.incr_a_0) X1))) COUNTER.res.init_flag_a_0))) +(define-fun __node_trans_COUNTER_0 ((COUNTER.usr.init_a_1 Int) (COUNTER.usr.incr_a_1 Int) (COUNTER.usr.X_a_1 Bool) (COUNTER.usr.reset_a_1 Bool) (COUNTER.usr.C_a_1 Int) (COUNTER.res.init_flag_a_1 Bool) (COUNTER.usr.init_a_0 Int) (COUNTER.usr.incr_a_0 Int) (COUNTER.usr.X_a_0 Bool) (COUNTER.usr.reset_a_0 Bool) (COUNTER.usr.C_a_0 Int) (COUNTER.res.init_flag_a_0 Bool)) Bool + (let ((X1 COUNTER.usr.C_a_0)) (and (= COUNTER.usr.C_a_1 (ite COUNTER.usr.reset_a_1 COUNTER.usr.init_a_1 (ite COUNTER.usr.X_a_1 (+ X1 COUNTER.usr.incr_a_1) X1))) (not COUNTER.res.init_flag_a_1)))) +(define-fun __node_init_speed_0 ((speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.usr.late_a_0 false) (= speed.res.abs_2_a_0 false) (= speed.res.abs_1_a_0 (or speed.usr.beacon_a_0 speed.usr.second_a_0)) (= speed.res.abs_0_a_0 0) (= speed.impl.usr.incr_a_0 (ite (and speed.usr.beacon_a_0 (not speed.usr.second_a_0)) 1 (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) 2 0))) (let ((X1 speed.res.abs_3_a_0)) (and (= speed.usr.early_a_0 false) (__node_init_COUNTER_0 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_0 0) (<= 0 speed.impl.usr.incr_a_0 2) speed.res.init_flag_a_0)))) +(define-fun __node_trans_speed_0 ((speed.usr.beacon_a_1 Bool) (speed.usr.second_a_1 Bool) (speed.usr.late_a_1 Bool) (speed.usr.early_a_1 Bool) (speed.res.init_flag_a_1 Bool) (speed.impl.usr.incr_a_1 Int) (speed.res.abs_0_a_1 Int) (speed.res.abs_1_a_1 Bool) (speed.res.abs_2_a_1 Bool) (speed.res.abs_3_a_1 Int) (speed.res.inst_0_a_1 Bool) (speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.res.abs_2_a_1 false) (= speed.res.abs_1_a_1 (or speed.usr.beacon_a_1 speed.usr.second_a_1)) (= speed.res.abs_0_a_1 0) (= speed.impl.usr.incr_a_1 (ite (and speed.usr.beacon_a_1 (not speed.usr.second_a_1)) 1 (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) 2 0))) (let ((X1 speed.res.abs_3_a_1)) (and (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) (__node_trans_COUNTER_0 speed.res.abs_0_a_1 speed.impl.usr.incr_a_1 speed.res.abs_1_a_1 speed.res.abs_2_a_1 speed.res.abs_3_a_1 speed.res.inst_0_a_1 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_1 0) (<= 0 speed.impl.usr.incr_a_1 2) (not speed.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.early_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (and (= top.impl.usr.early_a_0 top.res.abs_1_a_0) (__node_init_speed_0 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.beacon_a_1 Bool) (top.usr.second_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.early_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Int) (top.res.inst_0_a_1 Bool) (top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.early_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (or (not top.impl.usr.early_a_0) (not X1))) (= top.impl.usr.early_a_1 top.res.abs_1_a_1) (__node_trans_speed_0 top.usr.beacon_a_1 top.usr.second_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.res.inst_0_a_1 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))) +(synth-inv str_invariant ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (and (= top.impl.usr.early top.res.abs_1) (__node_init_speed_0 top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool) (top.usr.beacon! Bool) (top.usr.second! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.early! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Int) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_0!)) (and (= top.usr.OK! (or (not top.impl.usr.early) (not X1))) (= top.impl.usr.early! top.res.abs_1!) (__node_trans_speed_0 top.usr.beacon! top.usr.second! top.res.abs_0! top.res.abs_1! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.res.inst_0! top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) (not top.res.init_flag!)))) +(define-fun prop ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/speed2_e7_223_e7_213.sl b/benchmarks/LIA/Lustre/speed2_e7_223_e7_213.sl index 8be6ac9..cd1c25d 100644 --- a/benchmarks/LIA/Lustre/speed2_e7_223_e7_213.sl +++ b/benchmarks/LIA/Lustre/speed2_e7_223_e7_213.sl @@ -1,421 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_COUNTER_0 ( - (COUNTER.usr.init_a_0 Int) - (COUNTER.usr.incr_a_0 Int) - (COUNTER.usr.X_a_0 Bool) - (COUNTER.usr.reset_a_0 Bool) - (COUNTER.usr.C_a_0 Int) - (COUNTER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int COUNTER.usr.init_a_0)) - (and - (= - COUNTER.usr.C_a_0 - (ite - COUNTER.usr.reset_a_0 - COUNTER.usr.init_a_0 - (ite COUNTER.usr.X_a_0 (+ X1 COUNTER.usr.incr_a_0) X1))) - COUNTER.res.init_flag_a_0)) -) - -(define-fun - __node_trans_COUNTER_0 ( - (COUNTER.usr.init_a_1 Int) - (COUNTER.usr.incr_a_1 Int) - (COUNTER.usr.X_a_1 Bool) - (COUNTER.usr.reset_a_1 Bool) - (COUNTER.usr.C_a_1 Int) - (COUNTER.res.init_flag_a_1 Bool) - (COUNTER.usr.init_a_0 Int) - (COUNTER.usr.incr_a_0 Int) - (COUNTER.usr.X_a_0 Bool) - (COUNTER.usr.reset_a_0 Bool) - (COUNTER.usr.C_a_0 Int) - (COUNTER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int COUNTER.usr.C_a_0)) - (and - (= - COUNTER.usr.C_a_1 - (ite - COUNTER.usr.reset_a_1 - COUNTER.usr.init_a_1 - (ite COUNTER.usr.X_a_1 (+ X1 COUNTER.usr.incr_a_1) X1))) - (not COUNTER.res.init_flag_a_1))) -) - -(define-fun - __node_init_speed_0 ( - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.usr.late_a_0 false) - (= speed.res.abs_2_a_0 false) - (= speed.res.abs_1_a_0 (or speed.usr.beacon_a_0 speed.usr.second_a_0)) - (= speed.res.abs_0_a_0 0) - (= - speed.impl.usr.incr_a_0 - (ite - (or speed.usr.beacon_a_0 (not speed.usr.second_a_0)) - 1 - (ite (or speed.usr.second_a_0 (not speed.usr.beacon_a_0)) 2 0))) - (let - ((X1 Int speed.res.abs_3_a_0)) - (and - (= speed.usr.early_a_0 false) - (__node_init_COUNTER_0 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_0 0) - (<= 0 speed.impl.usr.incr_a_0 2) - speed.res.init_flag_a_0))) -) - -(define-fun - __node_trans_speed_0 ( - (speed.usr.beacon_a_1 Bool) - (speed.usr.second_a_1 Bool) - (speed.usr.late_a_1 Bool) - (speed.usr.early_a_1 Bool) - (speed.res.init_flag_a_1 Bool) - (speed.impl.usr.incr_a_1 Int) - (speed.res.abs_0_a_1 Int) - (speed.res.abs_1_a_1 Bool) - (speed.res.abs_2_a_1 Bool) - (speed.res.abs_3_a_1 Int) - (speed.res.inst_0_a_1 Bool) - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.res.abs_2_a_1 false) - (= speed.res.abs_1_a_1 (or speed.usr.beacon_a_1 speed.usr.second_a_1)) - (= speed.res.abs_0_a_1 0) - (= - speed.impl.usr.incr_a_1 - (ite - (or speed.usr.beacon_a_1 (not speed.usr.second_a_1)) - 1 - (ite (or speed.usr.second_a_1 (not speed.usr.beacon_a_1)) 2 0))) - (let - ((X1 Int speed.res.abs_3_a_1)) - (and - (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) - (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) - (__node_trans_COUNTER_0 - speed.res.abs_0_a_1 - speed.impl.usr.incr_a_1 - speed.res.abs_1_a_1 - speed.res.abs_2_a_1 - speed.res.abs_3_a_1 - speed.res.inst_0_a_1 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_1 0) - (<= 0 speed.impl.usr.incr_a_1 2) - (not speed.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.early_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Bool top.res.abs_0_a_0)) - (and - (= top.impl.usr.early_a_0 top.res.abs_1_a_0) - (__node_init_speed_0 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.beacon_a_1 Bool) - (top.usr.second_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.early_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Int) - (top.res.inst_0_a_1 Bool) - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.early_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (or (not top.impl.usr.early_a_0) (not X1))) - (= top.impl.usr.early_a_1 top.res.abs_1_a_1) - (__node_trans_speed_0 - top.usr.beacon_a_1 - top.usr.second_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.res.inst_0_a_1 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))) -) - - - -(synth-inv str_invariant( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.beacon Bool) -(declare-primed-var top.usr.second Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.early Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Int) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Bool top.res.abs_0)) - (and - (= top.impl.usr.early top.res.abs_1) - (__node_init_speed_0 - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.beacon! Bool) - (top.usr.second! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.early! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Int) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_0!)) - (and - (= top.usr.OK! (or (not top.impl.usr.early) (not X1))) - (= top.impl.usr.early! top.res.abs_1!) - (__node_trans_speed_0 - top.usr.beacon! - top.usr.second! - top.res.abs_0! - top.res.abs_1! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.res.inst_0! - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - (not top.res.init_flag!))) -) - -(define-fun - prop ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_COUNTER_0 ((COUNTER.usr.init_a_0 Int) (COUNTER.usr.incr_a_0 Int) (COUNTER.usr.X_a_0 Bool) (COUNTER.usr.reset_a_0 Bool) (COUNTER.usr.C_a_0 Int) (COUNTER.res.init_flag_a_0 Bool)) Bool + (let ((X1 COUNTER.usr.init_a_0)) (and (= COUNTER.usr.C_a_0 (ite COUNTER.usr.reset_a_0 COUNTER.usr.init_a_0 (ite COUNTER.usr.X_a_0 (+ X1 COUNTER.usr.incr_a_0) X1))) COUNTER.res.init_flag_a_0))) +(define-fun __node_trans_COUNTER_0 ((COUNTER.usr.init_a_1 Int) (COUNTER.usr.incr_a_1 Int) (COUNTER.usr.X_a_1 Bool) (COUNTER.usr.reset_a_1 Bool) (COUNTER.usr.C_a_1 Int) (COUNTER.res.init_flag_a_1 Bool) (COUNTER.usr.init_a_0 Int) (COUNTER.usr.incr_a_0 Int) (COUNTER.usr.X_a_0 Bool) (COUNTER.usr.reset_a_0 Bool) (COUNTER.usr.C_a_0 Int) (COUNTER.res.init_flag_a_0 Bool)) Bool + (let ((X1 COUNTER.usr.C_a_0)) (and (= COUNTER.usr.C_a_1 (ite COUNTER.usr.reset_a_1 COUNTER.usr.init_a_1 (ite COUNTER.usr.X_a_1 (+ X1 COUNTER.usr.incr_a_1) X1))) (not COUNTER.res.init_flag_a_1)))) +(define-fun __node_init_speed_0 ((speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.usr.late_a_0 false) (= speed.res.abs_2_a_0 false) (= speed.res.abs_1_a_0 (or speed.usr.beacon_a_0 speed.usr.second_a_0)) (= speed.res.abs_0_a_0 0) (= speed.impl.usr.incr_a_0 (ite (or speed.usr.beacon_a_0 (not speed.usr.second_a_0)) 1 (ite (or speed.usr.second_a_0 (not speed.usr.beacon_a_0)) 2 0))) (let ((X1 speed.res.abs_3_a_0)) (and (= speed.usr.early_a_0 false) (__node_init_COUNTER_0 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_0 0) (<= 0 speed.impl.usr.incr_a_0 2) speed.res.init_flag_a_0)))) +(define-fun __node_trans_speed_0 ((speed.usr.beacon_a_1 Bool) (speed.usr.second_a_1 Bool) (speed.usr.late_a_1 Bool) (speed.usr.early_a_1 Bool) (speed.res.init_flag_a_1 Bool) (speed.impl.usr.incr_a_1 Int) (speed.res.abs_0_a_1 Int) (speed.res.abs_1_a_1 Bool) (speed.res.abs_2_a_1 Bool) (speed.res.abs_3_a_1 Int) (speed.res.inst_0_a_1 Bool) (speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.res.abs_2_a_1 false) (= speed.res.abs_1_a_1 (or speed.usr.beacon_a_1 speed.usr.second_a_1)) (= speed.res.abs_0_a_1 0) (= speed.impl.usr.incr_a_1 (ite (or speed.usr.beacon_a_1 (not speed.usr.second_a_1)) 1 (ite (or speed.usr.second_a_1 (not speed.usr.beacon_a_1)) 2 0))) (let ((X1 speed.res.abs_3_a_1)) (and (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) (__node_trans_COUNTER_0 speed.res.abs_0_a_1 speed.impl.usr.incr_a_1 speed.res.abs_1_a_1 speed.res.abs_2_a_1 speed.res.abs_3_a_1 speed.res.inst_0_a_1 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_1 0) (<= 0 speed.impl.usr.incr_a_1 2) (not speed.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.early_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (and (= top.impl.usr.early_a_0 top.res.abs_1_a_0) (__node_init_speed_0 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.beacon_a_1 Bool) (top.usr.second_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.early_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Int) (top.res.inst_0_a_1 Bool) (top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.early_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (or (not top.impl.usr.early_a_0) (not X1))) (= top.impl.usr.early_a_1 top.res.abs_1_a_1) (__node_trans_speed_0 top.usr.beacon_a_1 top.usr.second_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.res.inst_0_a_1 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))) +(synth-inv str_invariant ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (and (= top.impl.usr.early top.res.abs_1) (__node_init_speed_0 top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool) (top.usr.beacon! Bool) (top.usr.second! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.early! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Int) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_0!)) (and (= top.usr.OK! (or (not top.impl.usr.early) (not X1))) (= top.impl.usr.early! top.res.abs_1!) (__node_trans_speed_0 top.usr.beacon! top.usr.second! top.res.abs_0! top.res.abs_1! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.res.inst_0! top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) (not top.res.init_flag!)))) +(define-fun prop ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/speed2_e7_223_e8_329.sl b/benchmarks/LIA/Lustre/speed2_e7_223_e8_329.sl index 0c2419c..307016e 100644 --- a/benchmarks/LIA/Lustre/speed2_e7_223_e8_329.sl +++ b/benchmarks/LIA/Lustre/speed2_e7_223_e8_329.sl @@ -1,421 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_COUNTER_0 ( - (COUNTER.usr.init_a_0 Int) - (COUNTER.usr.incr_a_0 Int) - (COUNTER.usr.X_a_0 Bool) - (COUNTER.usr.reset_a_0 Bool) - (COUNTER.usr.C_a_0 Int) - (COUNTER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int COUNTER.usr.init_a_0)) - (and - (= - COUNTER.usr.C_a_0 - (ite - COUNTER.usr.reset_a_0 - COUNTER.usr.init_a_0 - (ite COUNTER.usr.X_a_0 (+ X1 COUNTER.usr.incr_a_0) X1))) - COUNTER.res.init_flag_a_0)) -) - -(define-fun - __node_trans_COUNTER_0 ( - (COUNTER.usr.init_a_1 Int) - (COUNTER.usr.incr_a_1 Int) - (COUNTER.usr.X_a_1 Bool) - (COUNTER.usr.reset_a_1 Bool) - (COUNTER.usr.C_a_1 Int) - (COUNTER.res.init_flag_a_1 Bool) - (COUNTER.usr.init_a_0 Int) - (COUNTER.usr.incr_a_0 Int) - (COUNTER.usr.X_a_0 Bool) - (COUNTER.usr.reset_a_0 Bool) - (COUNTER.usr.C_a_0 Int) - (COUNTER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int COUNTER.usr.C_a_0)) - (and - (= - COUNTER.usr.C_a_1 - (ite - COUNTER.usr.reset_a_1 - COUNTER.usr.init_a_1 - (ite COUNTER.usr.X_a_1 (+ X1 COUNTER.usr.incr_a_1) X1))) - (not COUNTER.res.init_flag_a_1))) -) - -(define-fun - __node_init_speed_0 ( - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.usr.late_a_0 false) - (= speed.res.abs_2_a_0 false) - (= speed.res.abs_1_a_0 (or speed.usr.beacon_a_0 speed.usr.second_a_0)) - (= speed.res.abs_0_a_0 0) - (= - speed.impl.usr.incr_a_0 - (ite - (and speed.usr.beacon_a_0 (not speed.usr.second_a_0)) - 1 - (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) 2 0))) - (let - ((X1 Int speed.res.abs_3_a_0)) - (and - (= speed.usr.early_a_0 false) - (__node_init_COUNTER_0 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_0 0) - (<= 0 speed.impl.usr.incr_a_0 2) - speed.res.init_flag_a_0))) -) - -(define-fun - __node_trans_speed_0 ( - (speed.usr.beacon_a_1 Bool) - (speed.usr.second_a_1 Bool) - (speed.usr.late_a_1 Bool) - (speed.usr.early_a_1 Bool) - (speed.res.init_flag_a_1 Bool) - (speed.impl.usr.incr_a_1 Int) - (speed.res.abs_0_a_1 Int) - (speed.res.abs_1_a_1 Bool) - (speed.res.abs_2_a_1 Bool) - (speed.res.abs_3_a_1 Int) - (speed.res.inst_0_a_1 Bool) - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.res.abs_2_a_1 false) - (= speed.res.abs_1_a_1 (or speed.usr.beacon_a_1 speed.usr.second_a_1)) - (= speed.res.abs_0_a_1 0) - (= - speed.impl.usr.incr_a_1 - (ite - (and speed.usr.beacon_a_1 (not speed.usr.second_a_1)) - 1 - (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) 2 0))) - (let - ((X1 Int speed.res.abs_3_a_1)) - (and - (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) - (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) - (__node_trans_COUNTER_0 - speed.res.abs_0_a_1 - speed.impl.usr.incr_a_1 - speed.res.abs_1_a_1 - speed.res.abs_2_a_1 - speed.res.abs_3_a_1 - speed.res.inst_0_a_1 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_1 0) - (<= 0 speed.impl.usr.incr_a_1 2) - (not speed.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.early_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Bool top.res.abs_0_a_0)) - (and - (= top.impl.usr.early_a_0 top.res.abs_1_a_0) - (__node_init_speed_0 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.beacon_a_1 Bool) - (top.usr.second_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.early_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Int) - (top.res.inst_0_a_1 Bool) - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.early_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (or (not top.impl.usr.early_a_0) (not X1))) - (= top.impl.usr.early_a_1 top.res.abs_1_a_1) - (__node_trans_speed_0 - top.usr.beacon_a_1 - top.usr.second_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.res.inst_0_a_1 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))) -) - - - -(synth-inv str_invariant( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.beacon Bool) -(declare-primed-var top.usr.second Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.early Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Int) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Bool top.res.abs_0)) - (and - (= top.impl.usr.early top.res.abs_1) - (__node_init_speed_0 - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.beacon! Bool) - (top.usr.second! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.early! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Int) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_0!)) - (and - (= top.usr.OK! (or (not top.impl.usr.early) (not X1))) - (= top.impl.usr.early! top.res.abs_1!) - (__node_trans_speed_0 - top.usr.beacon! - top.usr.second! - top.res.abs_0! - top.res.abs_1! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.res.inst_0! - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - (not top.res.init_flag!))) -) - -(define-fun - prop ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_COUNTER_0 ((COUNTER.usr.init_a_0 Int) (COUNTER.usr.incr_a_0 Int) (COUNTER.usr.X_a_0 Bool) (COUNTER.usr.reset_a_0 Bool) (COUNTER.usr.C_a_0 Int) (COUNTER.res.init_flag_a_0 Bool)) Bool + (let ((X1 COUNTER.usr.init_a_0)) (and (= COUNTER.usr.C_a_0 (ite COUNTER.usr.reset_a_0 COUNTER.usr.init_a_0 (ite COUNTER.usr.X_a_0 (+ X1 COUNTER.usr.incr_a_0) X1))) COUNTER.res.init_flag_a_0))) +(define-fun __node_trans_COUNTER_0 ((COUNTER.usr.init_a_1 Int) (COUNTER.usr.incr_a_1 Int) (COUNTER.usr.X_a_1 Bool) (COUNTER.usr.reset_a_1 Bool) (COUNTER.usr.C_a_1 Int) (COUNTER.res.init_flag_a_1 Bool) (COUNTER.usr.init_a_0 Int) (COUNTER.usr.incr_a_0 Int) (COUNTER.usr.X_a_0 Bool) (COUNTER.usr.reset_a_0 Bool) (COUNTER.usr.C_a_0 Int) (COUNTER.res.init_flag_a_0 Bool)) Bool + (let ((X1 COUNTER.usr.C_a_0)) (and (= COUNTER.usr.C_a_1 (ite COUNTER.usr.reset_a_1 COUNTER.usr.init_a_1 (ite COUNTER.usr.X_a_1 (+ X1 COUNTER.usr.incr_a_1) X1))) (not COUNTER.res.init_flag_a_1)))) +(define-fun __node_init_speed_0 ((speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.usr.late_a_0 false) (= speed.res.abs_2_a_0 false) (= speed.res.abs_1_a_0 (or speed.usr.beacon_a_0 speed.usr.second_a_0)) (= speed.res.abs_0_a_0 0) (= speed.impl.usr.incr_a_0 (ite (and speed.usr.beacon_a_0 (not speed.usr.second_a_0)) 1 (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) 2 0))) (let ((X1 speed.res.abs_3_a_0)) (and (= speed.usr.early_a_0 false) (__node_init_COUNTER_0 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_0 0) (<= 0 speed.impl.usr.incr_a_0 2) speed.res.init_flag_a_0)))) +(define-fun __node_trans_speed_0 ((speed.usr.beacon_a_1 Bool) (speed.usr.second_a_1 Bool) (speed.usr.late_a_1 Bool) (speed.usr.early_a_1 Bool) (speed.res.init_flag_a_1 Bool) (speed.impl.usr.incr_a_1 Int) (speed.res.abs_0_a_1 Int) (speed.res.abs_1_a_1 Bool) (speed.res.abs_2_a_1 Bool) (speed.res.abs_3_a_1 Int) (speed.res.inst_0_a_1 Bool) (speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.res.abs_2_a_1 false) (= speed.res.abs_1_a_1 (or speed.usr.beacon_a_1 speed.usr.second_a_1)) (= speed.res.abs_0_a_1 0) (= speed.impl.usr.incr_a_1 (ite (and speed.usr.beacon_a_1 (not speed.usr.second_a_1)) 1 (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) 2 0))) (let ((X1 speed.res.abs_3_a_1)) (and (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) (__node_trans_COUNTER_0 speed.res.abs_0_a_1 speed.impl.usr.incr_a_1 speed.res.abs_1_a_1 speed.res.abs_2_a_1 speed.res.abs_3_a_1 speed.res.inst_0_a_1 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_1 0) (<= 0 speed.impl.usr.incr_a_1 2) (not speed.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.early_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (and (= top.impl.usr.early_a_0 top.res.abs_1_a_0) (__node_init_speed_0 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.beacon_a_1 Bool) (top.usr.second_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.early_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Int) (top.res.inst_0_a_1 Bool) (top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.early_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (or (not top.impl.usr.early_a_0) (not X1))) (= top.impl.usr.early_a_1 top.res.abs_1_a_1) (__node_trans_speed_0 top.usr.beacon_a_1 top.usr.second_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.res.inst_0_a_1 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))) +(synth-inv str_invariant ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (and (= top.impl.usr.early top.res.abs_1) (__node_init_speed_0 top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool) (top.usr.beacon! Bool) (top.usr.second! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.early! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Int) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_0!)) (and (= top.usr.OK! (or (not top.impl.usr.early) (not X1))) (= top.impl.usr.early! top.res.abs_1!) (__node_trans_speed_0 top.usr.beacon! top.usr.second! top.res.abs_0! top.res.abs_1! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.res.inst_0! top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) (not top.res.init_flag!)))) +(define-fun prop ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/speed2_e7_496.sl b/benchmarks/LIA/Lustre/speed2_e7_496.sl index 4c40b94..6ddc6cb 100644 --- a/benchmarks/LIA/Lustre/speed2_e7_496.sl +++ b/benchmarks/LIA/Lustre/speed2_e7_496.sl @@ -1,421 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_COUNTER_0 ( - (COUNTER.usr.init_a_0 Int) - (COUNTER.usr.incr_a_0 Int) - (COUNTER.usr.X_a_0 Bool) - (COUNTER.usr.reset_a_0 Bool) - (COUNTER.usr.C_a_0 Int) - (COUNTER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int COUNTER.usr.init_a_0)) - (and - (= - COUNTER.usr.C_a_0 - (ite - COUNTER.usr.reset_a_0 - COUNTER.usr.init_a_0 - (ite COUNTER.usr.X_a_0 (+ X1 COUNTER.usr.incr_a_0) X1))) - COUNTER.res.init_flag_a_0)) -) - -(define-fun - __node_trans_COUNTER_0 ( - (COUNTER.usr.init_a_1 Int) - (COUNTER.usr.incr_a_1 Int) - (COUNTER.usr.X_a_1 Bool) - (COUNTER.usr.reset_a_1 Bool) - (COUNTER.usr.C_a_1 Int) - (COUNTER.res.init_flag_a_1 Bool) - (COUNTER.usr.init_a_0 Int) - (COUNTER.usr.incr_a_0 Int) - (COUNTER.usr.X_a_0 Bool) - (COUNTER.usr.reset_a_0 Bool) - (COUNTER.usr.C_a_0 Int) - (COUNTER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int COUNTER.usr.C_a_0)) - (and - (= - COUNTER.usr.C_a_1 - (ite - COUNTER.usr.reset_a_1 - COUNTER.usr.init_a_1 - (ite COUNTER.usr.X_a_1 (+ X1 COUNTER.usr.incr_a_1) X1))) - (not COUNTER.res.init_flag_a_1))) -) - -(define-fun - __node_init_speed_0 ( - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.usr.late_a_0 false) - (= speed.res.abs_2_a_0 false) - (= speed.res.abs_1_a_0 (or speed.usr.beacon_a_0 speed.usr.second_a_0)) - (= speed.res.abs_0_a_0 0) - (= - speed.impl.usr.incr_a_0 - (ite - (or speed.usr.beacon_a_0 (not speed.usr.second_a_0)) - 1 - (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) 2 0))) - (let - ((X1 Int speed.res.abs_3_a_0)) - (and - (= speed.usr.early_a_0 false) - (__node_init_COUNTER_0 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_0 0) - (<= 0 speed.impl.usr.incr_a_0 2) - speed.res.init_flag_a_0))) -) - -(define-fun - __node_trans_speed_0 ( - (speed.usr.beacon_a_1 Bool) - (speed.usr.second_a_1 Bool) - (speed.usr.late_a_1 Bool) - (speed.usr.early_a_1 Bool) - (speed.res.init_flag_a_1 Bool) - (speed.impl.usr.incr_a_1 Int) - (speed.res.abs_0_a_1 Int) - (speed.res.abs_1_a_1 Bool) - (speed.res.abs_2_a_1 Bool) - (speed.res.abs_3_a_1 Int) - (speed.res.inst_0_a_1 Bool) - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.res.abs_2_a_1 false) - (= speed.res.abs_1_a_1 (or speed.usr.beacon_a_1 speed.usr.second_a_1)) - (= speed.res.abs_0_a_1 0) - (= - speed.impl.usr.incr_a_1 - (ite - (or speed.usr.beacon_a_1 (not speed.usr.second_a_1)) - 1 - (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) 2 0))) - (let - ((X1 Int speed.res.abs_3_a_1)) - (and - (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) - (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) - (__node_trans_COUNTER_0 - speed.res.abs_0_a_1 - speed.impl.usr.incr_a_1 - speed.res.abs_1_a_1 - speed.res.abs_2_a_1 - speed.res.abs_3_a_1 - speed.res.inst_0_a_1 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_1 0) - (<= 0 speed.impl.usr.incr_a_1 2) - (not speed.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.early_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Bool top.res.abs_0_a_0)) - (and - (= top.impl.usr.early_a_0 top.res.abs_1_a_0) - (__node_init_speed_0 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.beacon_a_1 Bool) - (top.usr.second_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.early_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Int) - (top.res.inst_0_a_1 Bool) - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.early_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (or (not top.impl.usr.early_a_0) (not X1))) - (= top.impl.usr.early_a_1 top.res.abs_1_a_1) - (__node_trans_speed_0 - top.usr.beacon_a_1 - top.usr.second_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.res.inst_0_a_1 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))) -) - - - -(synth-inv str_invariant( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.beacon Bool) -(declare-primed-var top.usr.second Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.early Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Int) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Bool top.res.abs_0)) - (and - (= top.impl.usr.early top.res.abs_1) - (__node_init_speed_0 - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.beacon! Bool) - (top.usr.second! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.early! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Int) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_0!)) - (and - (= top.usr.OK! (or (not top.impl.usr.early) (not X1))) - (= top.impl.usr.early! top.res.abs_1!) - (__node_trans_speed_0 - top.usr.beacon! - top.usr.second! - top.res.abs_0! - top.res.abs_1! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.res.inst_0! - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - (not top.res.init_flag!))) -) - -(define-fun - prop ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_COUNTER_0 ((COUNTER.usr.init_a_0 Int) (COUNTER.usr.incr_a_0 Int) (COUNTER.usr.X_a_0 Bool) (COUNTER.usr.reset_a_0 Bool) (COUNTER.usr.C_a_0 Int) (COUNTER.res.init_flag_a_0 Bool)) Bool + (let ((X1 COUNTER.usr.init_a_0)) (and (= COUNTER.usr.C_a_0 (ite COUNTER.usr.reset_a_0 COUNTER.usr.init_a_0 (ite COUNTER.usr.X_a_0 (+ X1 COUNTER.usr.incr_a_0) X1))) COUNTER.res.init_flag_a_0))) +(define-fun __node_trans_COUNTER_0 ((COUNTER.usr.init_a_1 Int) (COUNTER.usr.incr_a_1 Int) (COUNTER.usr.X_a_1 Bool) (COUNTER.usr.reset_a_1 Bool) (COUNTER.usr.C_a_1 Int) (COUNTER.res.init_flag_a_1 Bool) (COUNTER.usr.init_a_0 Int) (COUNTER.usr.incr_a_0 Int) (COUNTER.usr.X_a_0 Bool) (COUNTER.usr.reset_a_0 Bool) (COUNTER.usr.C_a_0 Int) (COUNTER.res.init_flag_a_0 Bool)) Bool + (let ((X1 COUNTER.usr.C_a_0)) (and (= COUNTER.usr.C_a_1 (ite COUNTER.usr.reset_a_1 COUNTER.usr.init_a_1 (ite COUNTER.usr.X_a_1 (+ X1 COUNTER.usr.incr_a_1) X1))) (not COUNTER.res.init_flag_a_1)))) +(define-fun __node_init_speed_0 ((speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.usr.late_a_0 false) (= speed.res.abs_2_a_0 false) (= speed.res.abs_1_a_0 (or speed.usr.beacon_a_0 speed.usr.second_a_0)) (= speed.res.abs_0_a_0 0) (= speed.impl.usr.incr_a_0 (ite (or speed.usr.beacon_a_0 (not speed.usr.second_a_0)) 1 (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) 2 0))) (let ((X1 speed.res.abs_3_a_0)) (and (= speed.usr.early_a_0 false) (__node_init_COUNTER_0 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_0 0) (<= 0 speed.impl.usr.incr_a_0 2) speed.res.init_flag_a_0)))) +(define-fun __node_trans_speed_0 ((speed.usr.beacon_a_1 Bool) (speed.usr.second_a_1 Bool) (speed.usr.late_a_1 Bool) (speed.usr.early_a_1 Bool) (speed.res.init_flag_a_1 Bool) (speed.impl.usr.incr_a_1 Int) (speed.res.abs_0_a_1 Int) (speed.res.abs_1_a_1 Bool) (speed.res.abs_2_a_1 Bool) (speed.res.abs_3_a_1 Int) (speed.res.inst_0_a_1 Bool) (speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.res.abs_2_a_1 false) (= speed.res.abs_1_a_1 (or speed.usr.beacon_a_1 speed.usr.second_a_1)) (= speed.res.abs_0_a_1 0) (= speed.impl.usr.incr_a_1 (ite (or speed.usr.beacon_a_1 (not speed.usr.second_a_1)) 1 (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) 2 0))) (let ((X1 speed.res.abs_3_a_1)) (and (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) (__node_trans_COUNTER_0 speed.res.abs_0_a_1 speed.impl.usr.incr_a_1 speed.res.abs_1_a_1 speed.res.abs_2_a_1 speed.res.abs_3_a_1 speed.res.inst_0_a_1 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_1 0) (<= 0 speed.impl.usr.incr_a_1 2) (not speed.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.early_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (and (= top.impl.usr.early_a_0 top.res.abs_1_a_0) (__node_init_speed_0 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.beacon_a_1 Bool) (top.usr.second_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.early_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Int) (top.res.inst_0_a_1 Bool) (top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.early_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (or (not top.impl.usr.early_a_0) (not X1))) (= top.impl.usr.early_a_1 top.res.abs_1_a_1) (__node_trans_speed_0 top.usr.beacon_a_1 top.usr.second_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.res.inst_0_a_1 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))) +(synth-inv str_invariant ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (and (= top.impl.usr.early top.res.abs_1) (__node_init_speed_0 top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool) (top.usr.beacon! Bool) (top.usr.second! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.early! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Int) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_0!)) (and (= top.usr.OK! (or (not top.impl.usr.early) (not X1))) (= top.impl.usr.early! top.res.abs_1!) (__node_trans_speed_0 top.usr.beacon! top.usr.second! top.res.abs_0! top.res.abs_1! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.res.inst_0! top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) (not top.res.init_flag!)))) +(define-fun prop ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/speed2_e8_449.sl b/benchmarks/LIA/Lustre/speed2_e8_449.sl index cd03e51..f965b9d 100644 --- a/benchmarks/LIA/Lustre/speed2_e8_449.sl +++ b/benchmarks/LIA/Lustre/speed2_e8_449.sl @@ -1,421 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_COUNTER_0 ( - (COUNTER.usr.init_a_0 Int) - (COUNTER.usr.incr_a_0 Int) - (COUNTER.usr.X_a_0 Bool) - (COUNTER.usr.reset_a_0 Bool) - (COUNTER.usr.C_a_0 Int) - (COUNTER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int COUNTER.usr.init_a_0)) - (and - (= - COUNTER.usr.C_a_0 - (ite - COUNTER.usr.reset_a_0 - COUNTER.usr.init_a_0 - (ite COUNTER.usr.X_a_0 (+ X1 COUNTER.usr.incr_a_0) X1))) - COUNTER.res.init_flag_a_0)) -) - -(define-fun - __node_trans_COUNTER_0 ( - (COUNTER.usr.init_a_1 Int) - (COUNTER.usr.incr_a_1 Int) - (COUNTER.usr.X_a_1 Bool) - (COUNTER.usr.reset_a_1 Bool) - (COUNTER.usr.C_a_1 Int) - (COUNTER.res.init_flag_a_1 Bool) - (COUNTER.usr.init_a_0 Int) - (COUNTER.usr.incr_a_0 Int) - (COUNTER.usr.X_a_0 Bool) - (COUNTER.usr.reset_a_0 Bool) - (COUNTER.usr.C_a_0 Int) - (COUNTER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int COUNTER.usr.C_a_0)) - (and - (= - COUNTER.usr.C_a_1 - (ite - COUNTER.usr.reset_a_1 - COUNTER.usr.init_a_1 - (ite COUNTER.usr.X_a_1 (+ X1 COUNTER.usr.incr_a_1) X1))) - (not COUNTER.res.init_flag_a_1))) -) - -(define-fun - __node_init_speed_0 ( - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.usr.late_a_0 false) - (= speed.res.abs_2_a_0 false) - (= speed.res.abs_1_a_0 (and speed.usr.beacon_a_0 speed.usr.second_a_0)) - (= speed.res.abs_0_a_0 0) - (= - speed.impl.usr.incr_a_0 - (ite - (and speed.usr.beacon_a_0 (not speed.usr.second_a_0)) - 1 - (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) 2 0))) - (let - ((X1 Int speed.res.abs_3_a_0)) - (and - (= speed.usr.early_a_0 false) - (__node_init_COUNTER_0 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_0 0) - (<= 0 speed.impl.usr.incr_a_0 2) - speed.res.init_flag_a_0))) -) - -(define-fun - __node_trans_speed_0 ( - (speed.usr.beacon_a_1 Bool) - (speed.usr.second_a_1 Bool) - (speed.usr.late_a_1 Bool) - (speed.usr.early_a_1 Bool) - (speed.res.init_flag_a_1 Bool) - (speed.impl.usr.incr_a_1 Int) - (speed.res.abs_0_a_1 Int) - (speed.res.abs_1_a_1 Bool) - (speed.res.abs_2_a_1 Bool) - (speed.res.abs_3_a_1 Int) - (speed.res.inst_0_a_1 Bool) - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.res.abs_2_a_1 false) - (= speed.res.abs_1_a_1 (and speed.usr.beacon_a_1 speed.usr.second_a_1)) - (= speed.res.abs_0_a_1 0) - (= - speed.impl.usr.incr_a_1 - (ite - (and speed.usr.beacon_a_1 (not speed.usr.second_a_1)) - 1 - (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) 2 0))) - (let - ((X1 Int speed.res.abs_3_a_1)) - (and - (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) - (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) - (__node_trans_COUNTER_0 - speed.res.abs_0_a_1 - speed.impl.usr.incr_a_1 - speed.res.abs_1_a_1 - speed.res.abs_2_a_1 - speed.res.abs_3_a_1 - speed.res.inst_0_a_1 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_1 0) - (<= 0 speed.impl.usr.incr_a_1 2) - (not speed.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.early_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Bool top.res.abs_0_a_0)) - (and - (= top.impl.usr.early_a_0 top.res.abs_1_a_0) - (__node_init_speed_0 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.beacon_a_1 Bool) - (top.usr.second_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.early_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Int) - (top.res.inst_0_a_1 Bool) - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.early_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (or (not top.impl.usr.early_a_0) (not X1))) - (= top.impl.usr.early_a_1 top.res.abs_1_a_1) - (__node_trans_speed_0 - top.usr.beacon_a_1 - top.usr.second_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.res.inst_0_a_1 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))) -) - - - -(synth-inv str_invariant( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.beacon Bool) -(declare-primed-var top.usr.second Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.early Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Int) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Bool top.res.abs_0)) - (and - (= top.impl.usr.early top.res.abs_1) - (__node_init_speed_0 - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.beacon! Bool) - (top.usr.second! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.early! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Int) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_0!)) - (and - (= top.usr.OK! (or (not top.impl.usr.early) (not X1))) - (= top.impl.usr.early! top.res.abs_1!) - (__node_trans_speed_0 - top.usr.beacon! - top.usr.second! - top.res.abs_0! - top.res.abs_1! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.res.inst_0! - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - (not top.res.init_flag!))) -) - -(define-fun - prop ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_COUNTER_0 ((COUNTER.usr.init_a_0 Int) (COUNTER.usr.incr_a_0 Int) (COUNTER.usr.X_a_0 Bool) (COUNTER.usr.reset_a_0 Bool) (COUNTER.usr.C_a_0 Int) (COUNTER.res.init_flag_a_0 Bool)) Bool + (let ((X1 COUNTER.usr.init_a_0)) (and (= COUNTER.usr.C_a_0 (ite COUNTER.usr.reset_a_0 COUNTER.usr.init_a_0 (ite COUNTER.usr.X_a_0 (+ X1 COUNTER.usr.incr_a_0) X1))) COUNTER.res.init_flag_a_0))) +(define-fun __node_trans_COUNTER_0 ((COUNTER.usr.init_a_1 Int) (COUNTER.usr.incr_a_1 Int) (COUNTER.usr.X_a_1 Bool) (COUNTER.usr.reset_a_1 Bool) (COUNTER.usr.C_a_1 Int) (COUNTER.res.init_flag_a_1 Bool) (COUNTER.usr.init_a_0 Int) (COUNTER.usr.incr_a_0 Int) (COUNTER.usr.X_a_0 Bool) (COUNTER.usr.reset_a_0 Bool) (COUNTER.usr.C_a_0 Int) (COUNTER.res.init_flag_a_0 Bool)) Bool + (let ((X1 COUNTER.usr.C_a_0)) (and (= COUNTER.usr.C_a_1 (ite COUNTER.usr.reset_a_1 COUNTER.usr.init_a_1 (ite COUNTER.usr.X_a_1 (+ X1 COUNTER.usr.incr_a_1) X1))) (not COUNTER.res.init_flag_a_1)))) +(define-fun __node_init_speed_0 ((speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.usr.late_a_0 false) (= speed.res.abs_2_a_0 false) (= speed.res.abs_1_a_0 (and speed.usr.beacon_a_0 speed.usr.second_a_0)) (= speed.res.abs_0_a_0 0) (= speed.impl.usr.incr_a_0 (ite (and speed.usr.beacon_a_0 (not speed.usr.second_a_0)) 1 (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) 2 0))) (let ((X1 speed.res.abs_3_a_0)) (and (= speed.usr.early_a_0 false) (__node_init_COUNTER_0 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_0 0) (<= 0 speed.impl.usr.incr_a_0 2) speed.res.init_flag_a_0)))) +(define-fun __node_trans_speed_0 ((speed.usr.beacon_a_1 Bool) (speed.usr.second_a_1 Bool) (speed.usr.late_a_1 Bool) (speed.usr.early_a_1 Bool) (speed.res.init_flag_a_1 Bool) (speed.impl.usr.incr_a_1 Int) (speed.res.abs_0_a_1 Int) (speed.res.abs_1_a_1 Bool) (speed.res.abs_2_a_1 Bool) (speed.res.abs_3_a_1 Int) (speed.res.inst_0_a_1 Bool) (speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.res.abs_2_a_1 false) (= speed.res.abs_1_a_1 (and speed.usr.beacon_a_1 speed.usr.second_a_1)) (= speed.res.abs_0_a_1 0) (= speed.impl.usr.incr_a_1 (ite (and speed.usr.beacon_a_1 (not speed.usr.second_a_1)) 1 (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) 2 0))) (let ((X1 speed.res.abs_3_a_1)) (and (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) (__node_trans_COUNTER_0 speed.res.abs_0_a_1 speed.impl.usr.incr_a_1 speed.res.abs_1_a_1 speed.res.abs_2_a_1 speed.res.abs_3_a_1 speed.res.inst_0_a_1 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_1 0) (<= 0 speed.impl.usr.incr_a_1 2) (not speed.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.early_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (and (= top.impl.usr.early_a_0 top.res.abs_1_a_0) (__node_init_speed_0 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.beacon_a_1 Bool) (top.usr.second_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.early_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Int) (top.res.inst_0_a_1 Bool) (top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.early_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (or (not top.impl.usr.early_a_0) (not X1))) (= top.impl.usr.early_a_1 top.res.abs_1_a_1) (__node_trans_speed_0 top.usr.beacon_a_1 top.usr.second_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.res.inst_0_a_1 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))) +(synth-inv str_invariant ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (and (= top.impl.usr.early top.res.abs_1) (__node_init_speed_0 top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool) (top.usr.beacon! Bool) (top.usr.second! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.early! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Int) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_0!)) (and (= top.usr.OK! (or (not top.impl.usr.early) (not X1))) (= top.impl.usr.early! top.res.abs_1!) (__node_trans_speed_0 top.usr.beacon! top.usr.second! top.res.abs_0! top.res.abs_1! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.res.inst_0! top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) (not top.res.init_flag!)))) +(define-fun prop ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/speed2_e8_449_e7_353.sl b/benchmarks/LIA/Lustre/speed2_e8_449_e7_353.sl index 6a7009c..7a1c1fc 100644 --- a/benchmarks/LIA/Lustre/speed2_e8_449_e7_353.sl +++ b/benchmarks/LIA/Lustre/speed2_e8_449_e7_353.sl @@ -1,421 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_COUNTER_0 ( - (COUNTER.usr.init_a_0 Int) - (COUNTER.usr.incr_a_0 Int) - (COUNTER.usr.X_a_0 Bool) - (COUNTER.usr.reset_a_0 Bool) - (COUNTER.usr.C_a_0 Int) - (COUNTER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int COUNTER.usr.init_a_0)) - (and - (= - COUNTER.usr.C_a_0 - (ite - COUNTER.usr.reset_a_0 - COUNTER.usr.init_a_0 - (ite COUNTER.usr.X_a_0 (+ X1 COUNTER.usr.incr_a_0) X1))) - COUNTER.res.init_flag_a_0)) -) - -(define-fun - __node_trans_COUNTER_0 ( - (COUNTER.usr.init_a_1 Int) - (COUNTER.usr.incr_a_1 Int) - (COUNTER.usr.X_a_1 Bool) - (COUNTER.usr.reset_a_1 Bool) - (COUNTER.usr.C_a_1 Int) - (COUNTER.res.init_flag_a_1 Bool) - (COUNTER.usr.init_a_0 Int) - (COUNTER.usr.incr_a_0 Int) - (COUNTER.usr.X_a_0 Bool) - (COUNTER.usr.reset_a_0 Bool) - (COUNTER.usr.C_a_0 Int) - (COUNTER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int COUNTER.usr.C_a_0)) - (and - (= - COUNTER.usr.C_a_1 - (ite - COUNTER.usr.reset_a_1 - COUNTER.usr.init_a_1 - (ite COUNTER.usr.X_a_1 (+ X1 COUNTER.usr.incr_a_1) X1))) - (not COUNTER.res.init_flag_a_1))) -) - -(define-fun - __node_init_speed_0 ( - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.usr.late_a_0 false) - (= speed.res.abs_2_a_0 false) - (= speed.res.abs_1_a_0 (and speed.usr.beacon_a_0 speed.usr.second_a_0)) - (= speed.res.abs_0_a_0 0) - (= - speed.impl.usr.incr_a_0 - (ite - (or speed.usr.beacon_a_0 (not speed.usr.second_a_0)) - 1 - (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) 2 0))) - (let - ((X1 Int speed.res.abs_3_a_0)) - (and - (= speed.usr.early_a_0 false) - (__node_init_COUNTER_0 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_0 0) - (<= 0 speed.impl.usr.incr_a_0 2) - speed.res.init_flag_a_0))) -) - -(define-fun - __node_trans_speed_0 ( - (speed.usr.beacon_a_1 Bool) - (speed.usr.second_a_1 Bool) - (speed.usr.late_a_1 Bool) - (speed.usr.early_a_1 Bool) - (speed.res.init_flag_a_1 Bool) - (speed.impl.usr.incr_a_1 Int) - (speed.res.abs_0_a_1 Int) - (speed.res.abs_1_a_1 Bool) - (speed.res.abs_2_a_1 Bool) - (speed.res.abs_3_a_1 Int) - (speed.res.inst_0_a_1 Bool) - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.res.abs_2_a_1 false) - (= speed.res.abs_1_a_1 (and speed.usr.beacon_a_1 speed.usr.second_a_1)) - (= speed.res.abs_0_a_1 0) - (= - speed.impl.usr.incr_a_1 - (ite - (or speed.usr.beacon_a_1 (not speed.usr.second_a_1)) - 1 - (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) 2 0))) - (let - ((X1 Int speed.res.abs_3_a_1)) - (and - (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) - (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) - (__node_trans_COUNTER_0 - speed.res.abs_0_a_1 - speed.impl.usr.incr_a_1 - speed.res.abs_1_a_1 - speed.res.abs_2_a_1 - speed.res.abs_3_a_1 - speed.res.inst_0_a_1 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_1 0) - (<= 0 speed.impl.usr.incr_a_1 2) - (not speed.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.early_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Bool top.res.abs_0_a_0)) - (and - (= top.impl.usr.early_a_0 top.res.abs_1_a_0) - (__node_init_speed_0 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.beacon_a_1 Bool) - (top.usr.second_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.early_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Int) - (top.res.inst_0_a_1 Bool) - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.early_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (or (not top.impl.usr.early_a_0) (not X1))) - (= top.impl.usr.early_a_1 top.res.abs_1_a_1) - (__node_trans_speed_0 - top.usr.beacon_a_1 - top.usr.second_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.res.inst_0_a_1 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))) -) - - - -(synth-inv str_invariant( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.beacon Bool) -(declare-primed-var top.usr.second Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.early Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Int) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Bool top.res.abs_0)) - (and - (= top.impl.usr.early top.res.abs_1) - (__node_init_speed_0 - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.beacon! Bool) - (top.usr.second! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.early! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Int) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_0!)) - (and - (= top.usr.OK! (or (not top.impl.usr.early) (not X1))) - (= top.impl.usr.early! top.res.abs_1!) - (__node_trans_speed_0 - top.usr.beacon! - top.usr.second! - top.res.abs_0! - top.res.abs_1! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.res.inst_0! - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - (not top.res.init_flag!))) -) - -(define-fun - prop ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_COUNTER_0 ((COUNTER.usr.init_a_0 Int) (COUNTER.usr.incr_a_0 Int) (COUNTER.usr.X_a_0 Bool) (COUNTER.usr.reset_a_0 Bool) (COUNTER.usr.C_a_0 Int) (COUNTER.res.init_flag_a_0 Bool)) Bool + (let ((X1 COUNTER.usr.init_a_0)) (and (= COUNTER.usr.C_a_0 (ite COUNTER.usr.reset_a_0 COUNTER.usr.init_a_0 (ite COUNTER.usr.X_a_0 (+ X1 COUNTER.usr.incr_a_0) X1))) COUNTER.res.init_flag_a_0))) +(define-fun __node_trans_COUNTER_0 ((COUNTER.usr.init_a_1 Int) (COUNTER.usr.incr_a_1 Int) (COUNTER.usr.X_a_1 Bool) (COUNTER.usr.reset_a_1 Bool) (COUNTER.usr.C_a_1 Int) (COUNTER.res.init_flag_a_1 Bool) (COUNTER.usr.init_a_0 Int) (COUNTER.usr.incr_a_0 Int) (COUNTER.usr.X_a_0 Bool) (COUNTER.usr.reset_a_0 Bool) (COUNTER.usr.C_a_0 Int) (COUNTER.res.init_flag_a_0 Bool)) Bool + (let ((X1 COUNTER.usr.C_a_0)) (and (= COUNTER.usr.C_a_1 (ite COUNTER.usr.reset_a_1 COUNTER.usr.init_a_1 (ite COUNTER.usr.X_a_1 (+ X1 COUNTER.usr.incr_a_1) X1))) (not COUNTER.res.init_flag_a_1)))) +(define-fun __node_init_speed_0 ((speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.usr.late_a_0 false) (= speed.res.abs_2_a_0 false) (= speed.res.abs_1_a_0 (and speed.usr.beacon_a_0 speed.usr.second_a_0)) (= speed.res.abs_0_a_0 0) (= speed.impl.usr.incr_a_0 (ite (or speed.usr.beacon_a_0 (not speed.usr.second_a_0)) 1 (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) 2 0))) (let ((X1 speed.res.abs_3_a_0)) (and (= speed.usr.early_a_0 false) (__node_init_COUNTER_0 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_0 0) (<= 0 speed.impl.usr.incr_a_0 2) speed.res.init_flag_a_0)))) +(define-fun __node_trans_speed_0 ((speed.usr.beacon_a_1 Bool) (speed.usr.second_a_1 Bool) (speed.usr.late_a_1 Bool) (speed.usr.early_a_1 Bool) (speed.res.init_flag_a_1 Bool) (speed.impl.usr.incr_a_1 Int) (speed.res.abs_0_a_1 Int) (speed.res.abs_1_a_1 Bool) (speed.res.abs_2_a_1 Bool) (speed.res.abs_3_a_1 Int) (speed.res.inst_0_a_1 Bool) (speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.res.abs_2_a_1 false) (= speed.res.abs_1_a_1 (and speed.usr.beacon_a_1 speed.usr.second_a_1)) (= speed.res.abs_0_a_1 0) (= speed.impl.usr.incr_a_1 (ite (or speed.usr.beacon_a_1 (not speed.usr.second_a_1)) 1 (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) 2 0))) (let ((X1 speed.res.abs_3_a_1)) (and (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) (__node_trans_COUNTER_0 speed.res.abs_0_a_1 speed.impl.usr.incr_a_1 speed.res.abs_1_a_1 speed.res.abs_2_a_1 speed.res.abs_3_a_1 speed.res.inst_0_a_1 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_1 0) (<= 0 speed.impl.usr.incr_a_1 2) (not speed.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.early_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (and (= top.impl.usr.early_a_0 top.res.abs_1_a_0) (__node_init_speed_0 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.beacon_a_1 Bool) (top.usr.second_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.early_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Int) (top.res.inst_0_a_1 Bool) (top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.early_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (or (not top.impl.usr.early_a_0) (not X1))) (= top.impl.usr.early_a_1 top.res.abs_1_a_1) (__node_trans_speed_0 top.usr.beacon_a_1 top.usr.second_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.res.inst_0_a_1 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))) +(synth-inv str_invariant ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (and (= top.impl.usr.early top.res.abs_1) (__node_init_speed_0 top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool) (top.usr.beacon! Bool) (top.usr.second! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.early! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Int) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_0!)) (and (= top.usr.OK! (or (not top.impl.usr.early) (not X1))) (= top.impl.usr.early! top.res.abs_1!) (__node_trans_speed_0 top.usr.beacon! top.usr.second! top.res.abs_0! top.res.abs_1! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.res.inst_0! top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) (not top.res.init_flag!)))) +(define-fun prop ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/speed2_e8_449_e8_517.sl b/benchmarks/LIA/Lustre/speed2_e8_449_e8_517.sl index b786730..2734cb4 100644 --- a/benchmarks/LIA/Lustre/speed2_e8_449_e8_517.sl +++ b/benchmarks/LIA/Lustre/speed2_e8_449_e8_517.sl @@ -1,421 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_COUNTER_0 ( - (COUNTER.usr.init_a_0 Int) - (COUNTER.usr.incr_a_0 Int) - (COUNTER.usr.X_a_0 Bool) - (COUNTER.usr.reset_a_0 Bool) - (COUNTER.usr.C_a_0 Int) - (COUNTER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int COUNTER.usr.init_a_0)) - (and - (= - COUNTER.usr.C_a_0 - (ite - COUNTER.usr.reset_a_0 - COUNTER.usr.init_a_0 - (ite COUNTER.usr.X_a_0 (+ X1 COUNTER.usr.incr_a_0) X1))) - COUNTER.res.init_flag_a_0)) -) - -(define-fun - __node_trans_COUNTER_0 ( - (COUNTER.usr.init_a_1 Int) - (COUNTER.usr.incr_a_1 Int) - (COUNTER.usr.X_a_1 Bool) - (COUNTER.usr.reset_a_1 Bool) - (COUNTER.usr.C_a_1 Int) - (COUNTER.res.init_flag_a_1 Bool) - (COUNTER.usr.init_a_0 Int) - (COUNTER.usr.incr_a_0 Int) - (COUNTER.usr.X_a_0 Bool) - (COUNTER.usr.reset_a_0 Bool) - (COUNTER.usr.C_a_0 Int) - (COUNTER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int COUNTER.usr.C_a_0)) - (and - (= - COUNTER.usr.C_a_1 - (ite - COUNTER.usr.reset_a_1 - COUNTER.usr.init_a_1 - (ite COUNTER.usr.X_a_1 (+ X1 COUNTER.usr.incr_a_1) X1))) - (not COUNTER.res.init_flag_a_1))) -) - -(define-fun - __node_init_speed_0 ( - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.usr.late_a_0 false) - (= speed.res.abs_2_a_0 false) - (= speed.res.abs_1_a_0 (and speed.usr.beacon_a_0 speed.usr.second_a_0)) - (= speed.res.abs_0_a_0 0) - (= - speed.impl.usr.incr_a_0 - (ite - (and speed.usr.beacon_a_0 (not speed.usr.second_a_0)) - 1 - (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) 2 0))) - (let - ((X1 Int speed.res.abs_3_a_0)) - (and - (= speed.usr.early_a_0 false) - (__node_init_COUNTER_0 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_0 0) - (<= 0 speed.impl.usr.incr_a_0 2) - speed.res.init_flag_a_0))) -) - -(define-fun - __node_trans_speed_0 ( - (speed.usr.beacon_a_1 Bool) - (speed.usr.second_a_1 Bool) - (speed.usr.late_a_1 Bool) - (speed.usr.early_a_1 Bool) - (speed.res.init_flag_a_1 Bool) - (speed.impl.usr.incr_a_1 Int) - (speed.res.abs_0_a_1 Int) - (speed.res.abs_1_a_1 Bool) - (speed.res.abs_2_a_1 Bool) - (speed.res.abs_3_a_1 Int) - (speed.res.inst_0_a_1 Bool) - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.res.abs_2_a_1 false) - (= speed.res.abs_1_a_1 (and speed.usr.beacon_a_1 speed.usr.second_a_1)) - (= speed.res.abs_0_a_1 0) - (= - speed.impl.usr.incr_a_1 - (ite - (and speed.usr.beacon_a_1 (not speed.usr.second_a_1)) - 1 - (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) 2 0))) - (let - ((X1 Int speed.res.abs_3_a_1)) - (and - (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) - (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) - (__node_trans_COUNTER_0 - speed.res.abs_0_a_1 - speed.impl.usr.incr_a_1 - speed.res.abs_1_a_1 - speed.res.abs_2_a_1 - speed.res.abs_3_a_1 - speed.res.inst_0_a_1 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_1 0) - (<= 0 speed.impl.usr.incr_a_1 2) - (not speed.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.early_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Bool top.res.abs_0_a_0)) - (and - (= top.impl.usr.early_a_0 top.res.abs_1_a_0) - (__node_init_speed_0 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.beacon_a_1 Bool) - (top.usr.second_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.early_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Int) - (top.res.inst_0_a_1 Bool) - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.early_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (and (not top.impl.usr.early_a_0) (not X1))) - (= top.impl.usr.early_a_1 top.res.abs_1_a_1) - (__node_trans_speed_0 - top.usr.beacon_a_1 - top.usr.second_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.res.inst_0_a_1 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))) -) - - - -(synth-inv str_invariant( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.beacon Bool) -(declare-primed-var top.usr.second Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.early Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Int) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Bool top.res.abs_0)) - (and - (= top.impl.usr.early top.res.abs_1) - (__node_init_speed_0 - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.beacon! Bool) - (top.usr.second! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.early! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Int) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_0!)) - (and - (= top.usr.OK! (and (not top.impl.usr.early) (not X1))) - (= top.impl.usr.early! top.res.abs_1!) - (__node_trans_speed_0 - top.usr.beacon! - top.usr.second! - top.res.abs_0! - top.res.abs_1! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.res.inst_0! - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - (not top.res.init_flag!))) -) - -(define-fun - prop ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_COUNTER_0 ((COUNTER.usr.init_a_0 Int) (COUNTER.usr.incr_a_0 Int) (COUNTER.usr.X_a_0 Bool) (COUNTER.usr.reset_a_0 Bool) (COUNTER.usr.C_a_0 Int) (COUNTER.res.init_flag_a_0 Bool)) Bool + (let ((X1 COUNTER.usr.init_a_0)) (and (= COUNTER.usr.C_a_0 (ite COUNTER.usr.reset_a_0 COUNTER.usr.init_a_0 (ite COUNTER.usr.X_a_0 (+ X1 COUNTER.usr.incr_a_0) X1))) COUNTER.res.init_flag_a_0))) +(define-fun __node_trans_COUNTER_0 ((COUNTER.usr.init_a_1 Int) (COUNTER.usr.incr_a_1 Int) (COUNTER.usr.X_a_1 Bool) (COUNTER.usr.reset_a_1 Bool) (COUNTER.usr.C_a_1 Int) (COUNTER.res.init_flag_a_1 Bool) (COUNTER.usr.init_a_0 Int) (COUNTER.usr.incr_a_0 Int) (COUNTER.usr.X_a_0 Bool) (COUNTER.usr.reset_a_0 Bool) (COUNTER.usr.C_a_0 Int) (COUNTER.res.init_flag_a_0 Bool)) Bool + (let ((X1 COUNTER.usr.C_a_0)) (and (= COUNTER.usr.C_a_1 (ite COUNTER.usr.reset_a_1 COUNTER.usr.init_a_1 (ite COUNTER.usr.X_a_1 (+ X1 COUNTER.usr.incr_a_1) X1))) (not COUNTER.res.init_flag_a_1)))) +(define-fun __node_init_speed_0 ((speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.usr.late_a_0 false) (= speed.res.abs_2_a_0 false) (= speed.res.abs_1_a_0 (and speed.usr.beacon_a_0 speed.usr.second_a_0)) (= speed.res.abs_0_a_0 0) (= speed.impl.usr.incr_a_0 (ite (and speed.usr.beacon_a_0 (not speed.usr.second_a_0)) 1 (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) 2 0))) (let ((X1 speed.res.abs_3_a_0)) (and (= speed.usr.early_a_0 false) (__node_init_COUNTER_0 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_0 0) (<= 0 speed.impl.usr.incr_a_0 2) speed.res.init_flag_a_0)))) +(define-fun __node_trans_speed_0 ((speed.usr.beacon_a_1 Bool) (speed.usr.second_a_1 Bool) (speed.usr.late_a_1 Bool) (speed.usr.early_a_1 Bool) (speed.res.init_flag_a_1 Bool) (speed.impl.usr.incr_a_1 Int) (speed.res.abs_0_a_1 Int) (speed.res.abs_1_a_1 Bool) (speed.res.abs_2_a_1 Bool) (speed.res.abs_3_a_1 Int) (speed.res.inst_0_a_1 Bool) (speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.res.abs_2_a_1 false) (= speed.res.abs_1_a_1 (and speed.usr.beacon_a_1 speed.usr.second_a_1)) (= speed.res.abs_0_a_1 0) (= speed.impl.usr.incr_a_1 (ite (and speed.usr.beacon_a_1 (not speed.usr.second_a_1)) 1 (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) 2 0))) (let ((X1 speed.res.abs_3_a_1)) (and (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) (__node_trans_COUNTER_0 speed.res.abs_0_a_1 speed.impl.usr.incr_a_1 speed.res.abs_1_a_1 speed.res.abs_2_a_1 speed.res.abs_3_a_1 speed.res.inst_0_a_1 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_1 0) (<= 0 speed.impl.usr.incr_a_1 2) (not speed.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.early_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (and (= top.impl.usr.early_a_0 top.res.abs_1_a_0) (__node_init_speed_0 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.beacon_a_1 Bool) (top.usr.second_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.early_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Int) (top.res.inst_0_a_1 Bool) (top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.early_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (and (not top.impl.usr.early_a_0) (not X1))) (= top.impl.usr.early_a_1 top.res.abs_1_a_1) (__node_trans_speed_0 top.usr.beacon_a_1 top.usr.second_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.res.inst_0_a_1 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))) +(synth-inv str_invariant ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (and (= top.impl.usr.early top.res.abs_1) (__node_init_speed_0 top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool) (top.usr.beacon! Bool) (top.usr.second! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.early! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Int) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_0!)) (and (= top.usr.OK! (and (not top.impl.usr.early) (not X1))) (= top.impl.usr.early! top.res.abs_1!) (__node_trans_speed_0 top.usr.beacon! top.usr.second! top.res.abs_0! top.res.abs_1! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.res.inst_0! top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) (not top.res.init_flag!)))) +(define-fun prop ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/speed2_e8_750.sl b/benchmarks/LIA/Lustre/speed2_e8_750.sl index cd03e51..f965b9d 100644 --- a/benchmarks/LIA/Lustre/speed2_e8_750.sl +++ b/benchmarks/LIA/Lustre/speed2_e8_750.sl @@ -1,421 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_COUNTER_0 ( - (COUNTER.usr.init_a_0 Int) - (COUNTER.usr.incr_a_0 Int) - (COUNTER.usr.X_a_0 Bool) - (COUNTER.usr.reset_a_0 Bool) - (COUNTER.usr.C_a_0 Int) - (COUNTER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int COUNTER.usr.init_a_0)) - (and - (= - COUNTER.usr.C_a_0 - (ite - COUNTER.usr.reset_a_0 - COUNTER.usr.init_a_0 - (ite COUNTER.usr.X_a_0 (+ X1 COUNTER.usr.incr_a_0) X1))) - COUNTER.res.init_flag_a_0)) -) - -(define-fun - __node_trans_COUNTER_0 ( - (COUNTER.usr.init_a_1 Int) - (COUNTER.usr.incr_a_1 Int) - (COUNTER.usr.X_a_1 Bool) - (COUNTER.usr.reset_a_1 Bool) - (COUNTER.usr.C_a_1 Int) - (COUNTER.res.init_flag_a_1 Bool) - (COUNTER.usr.init_a_0 Int) - (COUNTER.usr.incr_a_0 Int) - (COUNTER.usr.X_a_0 Bool) - (COUNTER.usr.reset_a_0 Bool) - (COUNTER.usr.C_a_0 Int) - (COUNTER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int COUNTER.usr.C_a_0)) - (and - (= - COUNTER.usr.C_a_1 - (ite - COUNTER.usr.reset_a_1 - COUNTER.usr.init_a_1 - (ite COUNTER.usr.X_a_1 (+ X1 COUNTER.usr.incr_a_1) X1))) - (not COUNTER.res.init_flag_a_1))) -) - -(define-fun - __node_init_speed_0 ( - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.usr.late_a_0 false) - (= speed.res.abs_2_a_0 false) - (= speed.res.abs_1_a_0 (and speed.usr.beacon_a_0 speed.usr.second_a_0)) - (= speed.res.abs_0_a_0 0) - (= - speed.impl.usr.incr_a_0 - (ite - (and speed.usr.beacon_a_0 (not speed.usr.second_a_0)) - 1 - (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) 2 0))) - (let - ((X1 Int speed.res.abs_3_a_0)) - (and - (= speed.usr.early_a_0 false) - (__node_init_COUNTER_0 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_0 0) - (<= 0 speed.impl.usr.incr_a_0 2) - speed.res.init_flag_a_0))) -) - -(define-fun - __node_trans_speed_0 ( - (speed.usr.beacon_a_1 Bool) - (speed.usr.second_a_1 Bool) - (speed.usr.late_a_1 Bool) - (speed.usr.early_a_1 Bool) - (speed.res.init_flag_a_1 Bool) - (speed.impl.usr.incr_a_1 Int) - (speed.res.abs_0_a_1 Int) - (speed.res.abs_1_a_1 Bool) - (speed.res.abs_2_a_1 Bool) - (speed.res.abs_3_a_1 Int) - (speed.res.inst_0_a_1 Bool) - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.res.abs_2_a_1 false) - (= speed.res.abs_1_a_1 (and speed.usr.beacon_a_1 speed.usr.second_a_1)) - (= speed.res.abs_0_a_1 0) - (= - speed.impl.usr.incr_a_1 - (ite - (and speed.usr.beacon_a_1 (not speed.usr.second_a_1)) - 1 - (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) 2 0))) - (let - ((X1 Int speed.res.abs_3_a_1)) - (and - (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) - (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) - (__node_trans_COUNTER_0 - speed.res.abs_0_a_1 - speed.impl.usr.incr_a_1 - speed.res.abs_1_a_1 - speed.res.abs_2_a_1 - speed.res.abs_3_a_1 - speed.res.inst_0_a_1 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_1 0) - (<= 0 speed.impl.usr.incr_a_1 2) - (not speed.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.early_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.usr.OK_a_0 true) - (let - ((X1 Bool top.res.abs_0_a_0)) - (and - (= top.impl.usr.early_a_0 top.res.abs_1_a_0) - (__node_init_speed_0 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.beacon_a_1 Bool) - (top.usr.second_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.early_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Int) - (top.res.inst_0_a_1 Bool) - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.early_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (or (not top.impl.usr.early_a_0) (not X1))) - (= top.impl.usr.early_a_1 top.res.abs_1_a_1) - (__node_trans_speed_0 - top.usr.beacon_a_1 - top.usr.second_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.res.inst_0_a_1 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))) -) - - - -(synth-inv str_invariant( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.beacon Bool) -(declare-primed-var top.usr.second Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.early Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Int) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.usr.OK true) - (let - ((X1 Bool top.res.abs_0)) - (and - (= top.impl.usr.early top.res.abs_1) - (__node_init_speed_0 - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.beacon! Bool) - (top.usr.second! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.early! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Int) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_0!)) - (and - (= top.usr.OK! (or (not top.impl.usr.early) (not X1))) - (= top.impl.usr.early! top.res.abs_1!) - (__node_trans_speed_0 - top.usr.beacon! - top.usr.second! - top.res.abs_0! - top.res.abs_1! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.res.inst_0! - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - (not top.res.init_flag!))) -) - -(define-fun - prop ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.early Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_COUNTER_0 ((COUNTER.usr.init_a_0 Int) (COUNTER.usr.incr_a_0 Int) (COUNTER.usr.X_a_0 Bool) (COUNTER.usr.reset_a_0 Bool) (COUNTER.usr.C_a_0 Int) (COUNTER.res.init_flag_a_0 Bool)) Bool + (let ((X1 COUNTER.usr.init_a_0)) (and (= COUNTER.usr.C_a_0 (ite COUNTER.usr.reset_a_0 COUNTER.usr.init_a_0 (ite COUNTER.usr.X_a_0 (+ X1 COUNTER.usr.incr_a_0) X1))) COUNTER.res.init_flag_a_0))) +(define-fun __node_trans_COUNTER_0 ((COUNTER.usr.init_a_1 Int) (COUNTER.usr.incr_a_1 Int) (COUNTER.usr.X_a_1 Bool) (COUNTER.usr.reset_a_1 Bool) (COUNTER.usr.C_a_1 Int) (COUNTER.res.init_flag_a_1 Bool) (COUNTER.usr.init_a_0 Int) (COUNTER.usr.incr_a_0 Int) (COUNTER.usr.X_a_0 Bool) (COUNTER.usr.reset_a_0 Bool) (COUNTER.usr.C_a_0 Int) (COUNTER.res.init_flag_a_0 Bool)) Bool + (let ((X1 COUNTER.usr.C_a_0)) (and (= COUNTER.usr.C_a_1 (ite COUNTER.usr.reset_a_1 COUNTER.usr.init_a_1 (ite COUNTER.usr.X_a_1 (+ X1 COUNTER.usr.incr_a_1) X1))) (not COUNTER.res.init_flag_a_1)))) +(define-fun __node_init_speed_0 ((speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.usr.late_a_0 false) (= speed.res.abs_2_a_0 false) (= speed.res.abs_1_a_0 (and speed.usr.beacon_a_0 speed.usr.second_a_0)) (= speed.res.abs_0_a_0 0) (= speed.impl.usr.incr_a_0 (ite (and speed.usr.beacon_a_0 (not speed.usr.second_a_0)) 1 (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) 2 0))) (let ((X1 speed.res.abs_3_a_0)) (and (= speed.usr.early_a_0 false) (__node_init_COUNTER_0 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_0 0) (<= 0 speed.impl.usr.incr_a_0 2) speed.res.init_flag_a_0)))) +(define-fun __node_trans_speed_0 ((speed.usr.beacon_a_1 Bool) (speed.usr.second_a_1 Bool) (speed.usr.late_a_1 Bool) (speed.usr.early_a_1 Bool) (speed.res.init_flag_a_1 Bool) (speed.impl.usr.incr_a_1 Int) (speed.res.abs_0_a_1 Int) (speed.res.abs_1_a_1 Bool) (speed.res.abs_2_a_1 Bool) (speed.res.abs_3_a_1 Int) (speed.res.inst_0_a_1 Bool) (speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.res.abs_2_a_1 false) (= speed.res.abs_1_a_1 (and speed.usr.beacon_a_1 speed.usr.second_a_1)) (= speed.res.abs_0_a_1 0) (= speed.impl.usr.incr_a_1 (ite (and speed.usr.beacon_a_1 (not speed.usr.second_a_1)) 1 (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) 2 0))) (let ((X1 speed.res.abs_3_a_1)) (and (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) (__node_trans_COUNTER_0 speed.res.abs_0_a_1 speed.impl.usr.incr_a_1 speed.res.abs_1_a_1 speed.res.abs_2_a_1 speed.res.abs_3_a_1 speed.res.inst_0_a_1 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_1 0) (<= 0 speed.impl.usr.incr_a_1 2) (not speed.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.early_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.usr.OK_a_0 true) (let ((X1 top.res.abs_0_a_0)) (and (= top.impl.usr.early_a_0 top.res.abs_1_a_0) (__node_init_speed_0 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.beacon_a_1 Bool) (top.usr.second_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.early_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Int) (top.res.inst_0_a_1 Bool) (top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.early_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (or (not top.impl.usr.early_a_0) (not X1))) (= top.impl.usr.early_a_1 top.res.abs_1_a_1) (__node_trans_speed_0 top.usr.beacon_a_1 top.usr.second_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.res.inst_0_a_1 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))) +(synth-inv str_invariant ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + (and (= top.usr.OK true) (let ((X1 top.res.abs_0)) (and (= top.impl.usr.early top.res.abs_1) (__node_init_speed_0 top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool) (top.usr.beacon! Bool) (top.usr.second! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.early! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Int) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_0!)) (and (= top.usr.OK! (or (not top.impl.usr.early) (not X1))) (= top.impl.usr.early! top.res.abs_1!) (__node_trans_speed_0 top.usr.beacon! top.usr.second! top.res.abs_0! top.res.abs_1! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.res.inst_0! top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) (not top.res.init_flag!)))) +(define-fun prop ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.early Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/speed_e7_207.sl b/benchmarks/LIA/Lustre/speed_e7_207.sl index 46ad44b..d106321 100644 --- a/benchmarks/LIA/Lustre/speed_e7_207.sl +++ b/benchmarks/LIA/Lustre/speed_e7_207.sl @@ -1,414 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_COUNTER_0 ( - (COUNTER.usr.init_a_0 Int) - (COUNTER.usr.incr_a_0 Int) - (COUNTER.usr.X_a_0 Bool) - (COUNTER.usr.reset_a_0 Bool) - (COUNTER.usr.C_a_0 Int) - (COUNTER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int COUNTER.usr.init_a_0)) - (and - (= - COUNTER.usr.C_a_0 - (ite - COUNTER.usr.reset_a_0 - COUNTER.usr.init_a_0 - (ite COUNTER.usr.X_a_0 (+ X1 COUNTER.usr.incr_a_0) X1))) - COUNTER.res.init_flag_a_0)) -) - -(define-fun - __node_trans_COUNTER_0 ( - (COUNTER.usr.init_a_1 Int) - (COUNTER.usr.incr_a_1 Int) - (COUNTER.usr.X_a_1 Bool) - (COUNTER.usr.reset_a_1 Bool) - (COUNTER.usr.C_a_1 Int) - (COUNTER.res.init_flag_a_1 Bool) - (COUNTER.usr.init_a_0 Int) - (COUNTER.usr.incr_a_0 Int) - (COUNTER.usr.X_a_0 Bool) - (COUNTER.usr.reset_a_0 Bool) - (COUNTER.usr.C_a_0 Int) - (COUNTER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int COUNTER.usr.C_a_0)) - (and - (= - COUNTER.usr.C_a_1 - (ite - COUNTER.usr.reset_a_1 - COUNTER.usr.init_a_1 - (ite COUNTER.usr.X_a_1 (+ X1 COUNTER.usr.incr_a_1) X1))) - (not COUNTER.res.init_flag_a_1))) -) - -(define-fun - __node_init_speed_0 ( - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.usr.late_a_0 false) - (= speed.res.abs_2_a_0 false) - (= speed.res.abs_1_a_0 (or speed.usr.beacon_a_0 speed.usr.second_a_0)) - (= speed.res.abs_0_a_0 0) - (= - speed.impl.usr.incr_a_0 - (ite - (or speed.usr.beacon_a_0 (not speed.usr.second_a_0)) - 1 - (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) 2 0))) - (let - ((X1 Int speed.res.abs_3_a_0)) - (and - (= speed.usr.early_a_0 false) - (__node_init_COUNTER_0 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_0 0) - (<= 0 speed.impl.usr.incr_a_0 2) - speed.res.init_flag_a_0))) -) - -(define-fun - __node_trans_speed_0 ( - (speed.usr.beacon_a_1 Bool) - (speed.usr.second_a_1 Bool) - (speed.usr.late_a_1 Bool) - (speed.usr.early_a_1 Bool) - (speed.res.init_flag_a_1 Bool) - (speed.impl.usr.incr_a_1 Int) - (speed.res.abs_0_a_1 Int) - (speed.res.abs_1_a_1 Bool) - (speed.res.abs_2_a_1 Bool) - (speed.res.abs_3_a_1 Int) - (speed.res.inst_0_a_1 Bool) - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.res.abs_2_a_1 false) - (= speed.res.abs_1_a_1 (or speed.usr.beacon_a_1 speed.usr.second_a_1)) - (= speed.res.abs_0_a_1 0) - (= - speed.impl.usr.incr_a_1 - (ite - (or speed.usr.beacon_a_1 (not speed.usr.second_a_1)) - 1 - (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) 2 0))) - (let - ((X1 Int speed.res.abs_3_a_1)) - (and - (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) - (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) - (__node_trans_COUNTER_0 - speed.res.abs_0_a_1 - speed.impl.usr.incr_a_1 - speed.res.abs_1_a_1 - speed.res.abs_2_a_1 - speed.res.abs_3_a_1 - speed.res.inst_0_a_1 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_1 0) - (<= 0 speed.impl.usr.incr_a_1 2) - (not speed.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_1_a_0)) - (let - ((X2 Bool top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (not (and X2 X1))) - (__node_init_speed_0 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.beacon_a_1 Bool) - (top.usr.second_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Int) - (top.res.inst_0_a_1 Bool) - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_1_a_1)) - (let - ((X2 Bool top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (not (and X2 X1))) - (__node_trans_speed_0 - top.usr.beacon_a_1 - top.usr.second_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.res.inst_0_a_1 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.beacon Bool) -(declare-primed-var top.usr.second Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Int) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_1)) - (let - ((X2 Bool top.res.abs_0)) - (and - (= top.usr.OK (not (and X2 X1))) - (__node_init_speed_0 - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.beacon! Bool) - (top.usr.second! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Int) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_1!)) - (let - ((X2 Bool top.res.abs_0!)) - (and - (= top.usr.OK! (not (and X2 X1))) - (__node_trans_speed_0 - top.usr.beacon! - top.usr.second! - top.res.abs_0! - top.res.abs_1! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.res.inst_0! - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_COUNTER_0 ((COUNTER.usr.init_a_0 Int) (COUNTER.usr.incr_a_0 Int) (COUNTER.usr.X_a_0 Bool) (COUNTER.usr.reset_a_0 Bool) (COUNTER.usr.C_a_0 Int) (COUNTER.res.init_flag_a_0 Bool)) Bool + (let ((X1 COUNTER.usr.init_a_0)) (and (= COUNTER.usr.C_a_0 (ite COUNTER.usr.reset_a_0 COUNTER.usr.init_a_0 (ite COUNTER.usr.X_a_0 (+ X1 COUNTER.usr.incr_a_0) X1))) COUNTER.res.init_flag_a_0))) +(define-fun __node_trans_COUNTER_0 ((COUNTER.usr.init_a_1 Int) (COUNTER.usr.incr_a_1 Int) (COUNTER.usr.X_a_1 Bool) (COUNTER.usr.reset_a_1 Bool) (COUNTER.usr.C_a_1 Int) (COUNTER.res.init_flag_a_1 Bool) (COUNTER.usr.init_a_0 Int) (COUNTER.usr.incr_a_0 Int) (COUNTER.usr.X_a_0 Bool) (COUNTER.usr.reset_a_0 Bool) (COUNTER.usr.C_a_0 Int) (COUNTER.res.init_flag_a_0 Bool)) Bool + (let ((X1 COUNTER.usr.C_a_0)) (and (= COUNTER.usr.C_a_1 (ite COUNTER.usr.reset_a_1 COUNTER.usr.init_a_1 (ite COUNTER.usr.X_a_1 (+ X1 COUNTER.usr.incr_a_1) X1))) (not COUNTER.res.init_flag_a_1)))) +(define-fun __node_init_speed_0 ((speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.usr.late_a_0 false) (= speed.res.abs_2_a_0 false) (= speed.res.abs_1_a_0 (or speed.usr.beacon_a_0 speed.usr.second_a_0)) (= speed.res.abs_0_a_0 0) (= speed.impl.usr.incr_a_0 (ite (or speed.usr.beacon_a_0 (not speed.usr.second_a_0)) 1 (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) 2 0))) (let ((X1 speed.res.abs_3_a_0)) (and (= speed.usr.early_a_0 false) (__node_init_COUNTER_0 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_0 0) (<= 0 speed.impl.usr.incr_a_0 2) speed.res.init_flag_a_0)))) +(define-fun __node_trans_speed_0 ((speed.usr.beacon_a_1 Bool) (speed.usr.second_a_1 Bool) (speed.usr.late_a_1 Bool) (speed.usr.early_a_1 Bool) (speed.res.init_flag_a_1 Bool) (speed.impl.usr.incr_a_1 Int) (speed.res.abs_0_a_1 Int) (speed.res.abs_1_a_1 Bool) (speed.res.abs_2_a_1 Bool) (speed.res.abs_3_a_1 Int) (speed.res.inst_0_a_1 Bool) (speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.res.abs_2_a_1 false) (= speed.res.abs_1_a_1 (or speed.usr.beacon_a_1 speed.usr.second_a_1)) (= speed.res.abs_0_a_1 0) (= speed.impl.usr.incr_a_1 (ite (or speed.usr.beacon_a_1 (not speed.usr.second_a_1)) 1 (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) 2 0))) (let ((X1 speed.res.abs_3_a_1)) (and (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) (__node_trans_COUNTER_0 speed.res.abs_0_a_1 speed.impl.usr.incr_a_1 speed.res.abs_1_a_1 speed.res.abs_2_a_1 speed.res.abs_3_a_1 speed.res.inst_0_a_1 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_1 0) (<= 0 speed.impl.usr.incr_a_1 2) (not speed.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_1_a_0)) (let ((X2 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (not (and X2 X1))) (__node_init_speed_0 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.beacon_a_1 Bool) (top.usr.second_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Int) (top.res.inst_0_a_1 Bool) (top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_1_a_1)) (let ((X2 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (not (and X2 X1))) (__node_trans_speed_0 top.usr.beacon_a_1 top.usr.second_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.res.inst_0_a_1 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_1)) (let ((X2 top.res.abs_0)) (and (= top.usr.OK (not (and X2 X1))) (__node_init_speed_0 top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool) (top.usr.beacon! Bool) (top.usr.second! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Int) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_1!)) (let ((X2 top.res.abs_0!)) (and (= top.usr.OK! (not (and X2 X1))) (__node_trans_speed_0 top.usr.beacon! top.usr.second! top.res.abs_0! top.res.abs_1! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.res.inst_0! top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/speed_e7_207_e7_538.sl b/benchmarks/LIA/Lustre/speed_e7_207_e7_538.sl index 736e924..2c1acf0 100644 --- a/benchmarks/LIA/Lustre/speed_e7_207_e7_538.sl +++ b/benchmarks/LIA/Lustre/speed_e7_207_e7_538.sl @@ -1,414 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_COUNTER_0 ( - (COUNTER.usr.init_a_0 Int) - (COUNTER.usr.incr_a_0 Int) - (COUNTER.usr.X_a_0 Bool) - (COUNTER.usr.reset_a_0 Bool) - (COUNTER.usr.C_a_0 Int) - (COUNTER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int COUNTER.usr.init_a_0)) - (and - (= - COUNTER.usr.C_a_0 - (ite - COUNTER.usr.reset_a_0 - COUNTER.usr.init_a_0 - (ite COUNTER.usr.X_a_0 (+ X1 COUNTER.usr.incr_a_0) X1))) - COUNTER.res.init_flag_a_0)) -) - -(define-fun - __node_trans_COUNTER_0 ( - (COUNTER.usr.init_a_1 Int) - (COUNTER.usr.incr_a_1 Int) - (COUNTER.usr.X_a_1 Bool) - (COUNTER.usr.reset_a_1 Bool) - (COUNTER.usr.C_a_1 Int) - (COUNTER.res.init_flag_a_1 Bool) - (COUNTER.usr.init_a_0 Int) - (COUNTER.usr.incr_a_0 Int) - (COUNTER.usr.X_a_0 Bool) - (COUNTER.usr.reset_a_0 Bool) - (COUNTER.usr.C_a_0 Int) - (COUNTER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int COUNTER.usr.C_a_0)) - (and - (= - COUNTER.usr.C_a_1 - (ite - COUNTER.usr.reset_a_1 - COUNTER.usr.init_a_1 - (ite COUNTER.usr.X_a_1 (+ X1 COUNTER.usr.incr_a_1) X1))) - (not COUNTER.res.init_flag_a_1))) -) - -(define-fun - __node_init_speed_0 ( - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.usr.late_a_0 false) - (= speed.res.abs_2_a_0 false) - (= speed.res.abs_1_a_0 (or speed.usr.beacon_a_0 speed.usr.second_a_0)) - (= speed.res.abs_0_a_0 0) - (= - speed.impl.usr.incr_a_0 - (ite - (or speed.usr.beacon_a_0 (not speed.usr.second_a_0)) - 1 - (ite (or speed.usr.second_a_0 (not speed.usr.beacon_a_0)) 2 0))) - (let - ((X1 Int speed.res.abs_3_a_0)) - (and - (= speed.usr.early_a_0 false) - (__node_init_COUNTER_0 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_0 0) - (<= 0 speed.impl.usr.incr_a_0 2) - speed.res.init_flag_a_0))) -) - -(define-fun - __node_trans_speed_0 ( - (speed.usr.beacon_a_1 Bool) - (speed.usr.second_a_1 Bool) - (speed.usr.late_a_1 Bool) - (speed.usr.early_a_1 Bool) - (speed.res.init_flag_a_1 Bool) - (speed.impl.usr.incr_a_1 Int) - (speed.res.abs_0_a_1 Int) - (speed.res.abs_1_a_1 Bool) - (speed.res.abs_2_a_1 Bool) - (speed.res.abs_3_a_1 Int) - (speed.res.inst_0_a_1 Bool) - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.res.abs_2_a_1 false) - (= speed.res.abs_1_a_1 (or speed.usr.beacon_a_1 speed.usr.second_a_1)) - (= speed.res.abs_0_a_1 0) - (= - speed.impl.usr.incr_a_1 - (ite - (or speed.usr.beacon_a_1 (not speed.usr.second_a_1)) - 1 - (ite (or speed.usr.second_a_1 (not speed.usr.beacon_a_1)) 2 0))) - (let - ((X1 Int speed.res.abs_3_a_1)) - (and - (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) - (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) - (__node_trans_COUNTER_0 - speed.res.abs_0_a_1 - speed.impl.usr.incr_a_1 - speed.res.abs_1_a_1 - speed.res.abs_2_a_1 - speed.res.abs_3_a_1 - speed.res.inst_0_a_1 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_1 0) - (<= 0 speed.impl.usr.incr_a_1 2) - (not speed.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_1_a_0)) - (let - ((X2 Bool top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (not (and X2 X1))) - (__node_init_speed_0 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.beacon_a_1 Bool) - (top.usr.second_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Int) - (top.res.inst_0_a_1 Bool) - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_1_a_1)) - (let - ((X2 Bool top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (not (and X2 X1))) - (__node_trans_speed_0 - top.usr.beacon_a_1 - top.usr.second_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.res.inst_0_a_1 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.beacon Bool) -(declare-primed-var top.usr.second Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Int) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_1)) - (let - ((X2 Bool top.res.abs_0)) - (and - (= top.usr.OK (not (and X2 X1))) - (__node_init_speed_0 - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.beacon! Bool) - (top.usr.second! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Int) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_1!)) - (let - ((X2 Bool top.res.abs_0!)) - (and - (= top.usr.OK! (not (and X2 X1))) - (__node_trans_speed_0 - top.usr.beacon! - top.usr.second! - top.res.abs_0! - top.res.abs_1! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.res.inst_0! - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_COUNTER_0 ((COUNTER.usr.init_a_0 Int) (COUNTER.usr.incr_a_0 Int) (COUNTER.usr.X_a_0 Bool) (COUNTER.usr.reset_a_0 Bool) (COUNTER.usr.C_a_0 Int) (COUNTER.res.init_flag_a_0 Bool)) Bool + (let ((X1 COUNTER.usr.init_a_0)) (and (= COUNTER.usr.C_a_0 (ite COUNTER.usr.reset_a_0 COUNTER.usr.init_a_0 (ite COUNTER.usr.X_a_0 (+ X1 COUNTER.usr.incr_a_0) X1))) COUNTER.res.init_flag_a_0))) +(define-fun __node_trans_COUNTER_0 ((COUNTER.usr.init_a_1 Int) (COUNTER.usr.incr_a_1 Int) (COUNTER.usr.X_a_1 Bool) (COUNTER.usr.reset_a_1 Bool) (COUNTER.usr.C_a_1 Int) (COUNTER.res.init_flag_a_1 Bool) (COUNTER.usr.init_a_0 Int) (COUNTER.usr.incr_a_0 Int) (COUNTER.usr.X_a_0 Bool) (COUNTER.usr.reset_a_0 Bool) (COUNTER.usr.C_a_0 Int) (COUNTER.res.init_flag_a_0 Bool)) Bool + (let ((X1 COUNTER.usr.C_a_0)) (and (= COUNTER.usr.C_a_1 (ite COUNTER.usr.reset_a_1 COUNTER.usr.init_a_1 (ite COUNTER.usr.X_a_1 (+ X1 COUNTER.usr.incr_a_1) X1))) (not COUNTER.res.init_flag_a_1)))) +(define-fun __node_init_speed_0 ((speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.usr.late_a_0 false) (= speed.res.abs_2_a_0 false) (= speed.res.abs_1_a_0 (or speed.usr.beacon_a_0 speed.usr.second_a_0)) (= speed.res.abs_0_a_0 0) (= speed.impl.usr.incr_a_0 (ite (or speed.usr.beacon_a_0 (not speed.usr.second_a_0)) 1 (ite (or speed.usr.second_a_0 (not speed.usr.beacon_a_0)) 2 0))) (let ((X1 speed.res.abs_3_a_0)) (and (= speed.usr.early_a_0 false) (__node_init_COUNTER_0 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_0 0) (<= 0 speed.impl.usr.incr_a_0 2) speed.res.init_flag_a_0)))) +(define-fun __node_trans_speed_0 ((speed.usr.beacon_a_1 Bool) (speed.usr.second_a_1 Bool) (speed.usr.late_a_1 Bool) (speed.usr.early_a_1 Bool) (speed.res.init_flag_a_1 Bool) (speed.impl.usr.incr_a_1 Int) (speed.res.abs_0_a_1 Int) (speed.res.abs_1_a_1 Bool) (speed.res.abs_2_a_1 Bool) (speed.res.abs_3_a_1 Int) (speed.res.inst_0_a_1 Bool) (speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.res.abs_2_a_1 false) (= speed.res.abs_1_a_1 (or speed.usr.beacon_a_1 speed.usr.second_a_1)) (= speed.res.abs_0_a_1 0) (= speed.impl.usr.incr_a_1 (ite (or speed.usr.beacon_a_1 (not speed.usr.second_a_1)) 1 (ite (or speed.usr.second_a_1 (not speed.usr.beacon_a_1)) 2 0))) (let ((X1 speed.res.abs_3_a_1)) (and (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) (__node_trans_COUNTER_0 speed.res.abs_0_a_1 speed.impl.usr.incr_a_1 speed.res.abs_1_a_1 speed.res.abs_2_a_1 speed.res.abs_3_a_1 speed.res.inst_0_a_1 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_1 0) (<= 0 speed.impl.usr.incr_a_1 2) (not speed.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_1_a_0)) (let ((X2 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (not (and X2 X1))) (__node_init_speed_0 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.beacon_a_1 Bool) (top.usr.second_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Int) (top.res.inst_0_a_1 Bool) (top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_1_a_1)) (let ((X2 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (not (and X2 X1))) (__node_trans_speed_0 top.usr.beacon_a_1 top.usr.second_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.res.inst_0_a_1 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_1)) (let ((X2 top.res.abs_0)) (and (= top.usr.OK (not (and X2 X1))) (__node_init_speed_0 top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool) (top.usr.beacon! Bool) (top.usr.second! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Int) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_1!)) (let ((X2 top.res.abs_0!)) (and (= top.usr.OK! (not (and X2 X1))) (__node_trans_speed_0 top.usr.beacon! top.usr.second! top.res.abs_0! top.res.abs_1! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.res.inst_0! top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/speed_e7_207_e8_507.sl b/benchmarks/LIA/Lustre/speed_e7_207_e8_507.sl index 4381146..f620b49 100644 --- a/benchmarks/LIA/Lustre/speed_e7_207_e8_507.sl +++ b/benchmarks/LIA/Lustre/speed_e7_207_e8_507.sl @@ -1,414 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_COUNTER_0 ( - (COUNTER.usr.init_a_0 Int) - (COUNTER.usr.incr_a_0 Int) - (COUNTER.usr.X_a_0 Bool) - (COUNTER.usr.reset_a_0 Bool) - (COUNTER.usr.C_a_0 Int) - (COUNTER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int COUNTER.usr.init_a_0)) - (and - (= - COUNTER.usr.C_a_0 - (ite - COUNTER.usr.reset_a_0 - COUNTER.usr.init_a_0 - (ite COUNTER.usr.X_a_0 (+ X1 COUNTER.usr.incr_a_0) X1))) - COUNTER.res.init_flag_a_0)) -) - -(define-fun - __node_trans_COUNTER_0 ( - (COUNTER.usr.init_a_1 Int) - (COUNTER.usr.incr_a_1 Int) - (COUNTER.usr.X_a_1 Bool) - (COUNTER.usr.reset_a_1 Bool) - (COUNTER.usr.C_a_1 Int) - (COUNTER.res.init_flag_a_1 Bool) - (COUNTER.usr.init_a_0 Int) - (COUNTER.usr.incr_a_0 Int) - (COUNTER.usr.X_a_0 Bool) - (COUNTER.usr.reset_a_0 Bool) - (COUNTER.usr.C_a_0 Int) - (COUNTER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int COUNTER.usr.C_a_0)) - (and - (= - COUNTER.usr.C_a_1 - (ite - COUNTER.usr.reset_a_1 - COUNTER.usr.init_a_1 - (ite COUNTER.usr.X_a_1 (+ X1 COUNTER.usr.incr_a_1) X1))) - (not COUNTER.res.init_flag_a_1))) -) - -(define-fun - __node_init_speed_0 ( - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.usr.late_a_0 false) - (= speed.res.abs_2_a_0 false) - (= speed.res.abs_1_a_0 (or speed.usr.beacon_a_0 speed.usr.second_a_0)) - (= speed.res.abs_0_a_0 0) - (= - speed.impl.usr.incr_a_0 - (ite - (and speed.usr.beacon_a_0 (not speed.usr.second_a_0)) - 1 - (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) 2 0))) - (let - ((X1 Int speed.res.abs_3_a_0)) - (and - (= speed.usr.early_a_0 false) - (__node_init_COUNTER_0 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_0 0) - (<= 0 speed.impl.usr.incr_a_0 2) - speed.res.init_flag_a_0))) -) - -(define-fun - __node_trans_speed_0 ( - (speed.usr.beacon_a_1 Bool) - (speed.usr.second_a_1 Bool) - (speed.usr.late_a_1 Bool) - (speed.usr.early_a_1 Bool) - (speed.res.init_flag_a_1 Bool) - (speed.impl.usr.incr_a_1 Int) - (speed.res.abs_0_a_1 Int) - (speed.res.abs_1_a_1 Bool) - (speed.res.abs_2_a_1 Bool) - (speed.res.abs_3_a_1 Int) - (speed.res.inst_0_a_1 Bool) - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.res.abs_2_a_1 false) - (= speed.res.abs_1_a_1 (or speed.usr.beacon_a_1 speed.usr.second_a_1)) - (= speed.res.abs_0_a_1 0) - (= - speed.impl.usr.incr_a_1 - (ite - (and speed.usr.beacon_a_1 (not speed.usr.second_a_1)) - 1 - (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) 2 0))) - (let - ((X1 Int speed.res.abs_3_a_1)) - (and - (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) - (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) - (__node_trans_COUNTER_0 - speed.res.abs_0_a_1 - speed.impl.usr.incr_a_1 - speed.res.abs_1_a_1 - speed.res.abs_2_a_1 - speed.res.abs_3_a_1 - speed.res.inst_0_a_1 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_1 0) - (<= 0 speed.impl.usr.incr_a_1 2) - (not speed.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_1_a_0)) - (let - ((X2 Bool top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (not (and X2 X1))) - (__node_init_speed_0 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.beacon_a_1 Bool) - (top.usr.second_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Int) - (top.res.inst_0_a_1 Bool) - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_1_a_1)) - (let - ((X2 Bool top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (not (and X2 X1))) - (__node_trans_speed_0 - top.usr.beacon_a_1 - top.usr.second_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.res.inst_0_a_1 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.beacon Bool) -(declare-primed-var top.usr.second Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Int) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_1)) - (let - ((X2 Bool top.res.abs_0)) - (and - (= top.usr.OK (not (and X2 X1))) - (__node_init_speed_0 - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.beacon! Bool) - (top.usr.second! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Int) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_1!)) - (let - ((X2 Bool top.res.abs_0!)) - (and - (= top.usr.OK! (not (and X2 X1))) - (__node_trans_speed_0 - top.usr.beacon! - top.usr.second! - top.res.abs_0! - top.res.abs_1! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.res.inst_0! - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_COUNTER_0 ((COUNTER.usr.init_a_0 Int) (COUNTER.usr.incr_a_0 Int) (COUNTER.usr.X_a_0 Bool) (COUNTER.usr.reset_a_0 Bool) (COUNTER.usr.C_a_0 Int) (COUNTER.res.init_flag_a_0 Bool)) Bool + (let ((X1 COUNTER.usr.init_a_0)) (and (= COUNTER.usr.C_a_0 (ite COUNTER.usr.reset_a_0 COUNTER.usr.init_a_0 (ite COUNTER.usr.X_a_0 (+ X1 COUNTER.usr.incr_a_0) X1))) COUNTER.res.init_flag_a_0))) +(define-fun __node_trans_COUNTER_0 ((COUNTER.usr.init_a_1 Int) (COUNTER.usr.incr_a_1 Int) (COUNTER.usr.X_a_1 Bool) (COUNTER.usr.reset_a_1 Bool) (COUNTER.usr.C_a_1 Int) (COUNTER.res.init_flag_a_1 Bool) (COUNTER.usr.init_a_0 Int) (COUNTER.usr.incr_a_0 Int) (COUNTER.usr.X_a_0 Bool) (COUNTER.usr.reset_a_0 Bool) (COUNTER.usr.C_a_0 Int) (COUNTER.res.init_flag_a_0 Bool)) Bool + (let ((X1 COUNTER.usr.C_a_0)) (and (= COUNTER.usr.C_a_1 (ite COUNTER.usr.reset_a_1 COUNTER.usr.init_a_1 (ite COUNTER.usr.X_a_1 (+ X1 COUNTER.usr.incr_a_1) X1))) (not COUNTER.res.init_flag_a_1)))) +(define-fun __node_init_speed_0 ((speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.usr.late_a_0 false) (= speed.res.abs_2_a_0 false) (= speed.res.abs_1_a_0 (or speed.usr.beacon_a_0 speed.usr.second_a_0)) (= speed.res.abs_0_a_0 0) (= speed.impl.usr.incr_a_0 (ite (and speed.usr.beacon_a_0 (not speed.usr.second_a_0)) 1 (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) 2 0))) (let ((X1 speed.res.abs_3_a_0)) (and (= speed.usr.early_a_0 false) (__node_init_COUNTER_0 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_0 0) (<= 0 speed.impl.usr.incr_a_0 2) speed.res.init_flag_a_0)))) +(define-fun __node_trans_speed_0 ((speed.usr.beacon_a_1 Bool) (speed.usr.second_a_1 Bool) (speed.usr.late_a_1 Bool) (speed.usr.early_a_1 Bool) (speed.res.init_flag_a_1 Bool) (speed.impl.usr.incr_a_1 Int) (speed.res.abs_0_a_1 Int) (speed.res.abs_1_a_1 Bool) (speed.res.abs_2_a_1 Bool) (speed.res.abs_3_a_1 Int) (speed.res.inst_0_a_1 Bool) (speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.res.abs_2_a_1 false) (= speed.res.abs_1_a_1 (or speed.usr.beacon_a_1 speed.usr.second_a_1)) (= speed.res.abs_0_a_1 0) (= speed.impl.usr.incr_a_1 (ite (and speed.usr.beacon_a_1 (not speed.usr.second_a_1)) 1 (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) 2 0))) (let ((X1 speed.res.abs_3_a_1)) (and (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) (__node_trans_COUNTER_0 speed.res.abs_0_a_1 speed.impl.usr.incr_a_1 speed.res.abs_1_a_1 speed.res.abs_2_a_1 speed.res.abs_3_a_1 speed.res.inst_0_a_1 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_1 0) (<= 0 speed.impl.usr.incr_a_1 2) (not speed.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_1_a_0)) (let ((X2 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (not (and X2 X1))) (__node_init_speed_0 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.beacon_a_1 Bool) (top.usr.second_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Int) (top.res.inst_0_a_1 Bool) (top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_1_a_1)) (let ((X2 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (not (and X2 X1))) (__node_trans_speed_0 top.usr.beacon_a_1 top.usr.second_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.res.inst_0_a_1 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_1)) (let ((X2 top.res.abs_0)) (and (= top.usr.OK (not (and X2 X1))) (__node_init_speed_0 top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool) (top.usr.beacon! Bool) (top.usr.second! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Int) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_1!)) (let ((X2 top.res.abs_0!)) (and (= top.usr.OK! (not (and X2 X1))) (__node_trans_speed_0 top.usr.beacon! top.usr.second! top.res.abs_0! top.res.abs_1! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.res.inst_0! top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/speed_e7_492.sl b/benchmarks/LIA/Lustre/speed_e7_492.sl index 46ad44b..d106321 100644 --- a/benchmarks/LIA/Lustre/speed_e7_492.sl +++ b/benchmarks/LIA/Lustre/speed_e7_492.sl @@ -1,414 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_COUNTER_0 ( - (COUNTER.usr.init_a_0 Int) - (COUNTER.usr.incr_a_0 Int) - (COUNTER.usr.X_a_0 Bool) - (COUNTER.usr.reset_a_0 Bool) - (COUNTER.usr.C_a_0 Int) - (COUNTER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int COUNTER.usr.init_a_0)) - (and - (= - COUNTER.usr.C_a_0 - (ite - COUNTER.usr.reset_a_0 - COUNTER.usr.init_a_0 - (ite COUNTER.usr.X_a_0 (+ X1 COUNTER.usr.incr_a_0) X1))) - COUNTER.res.init_flag_a_0)) -) - -(define-fun - __node_trans_COUNTER_0 ( - (COUNTER.usr.init_a_1 Int) - (COUNTER.usr.incr_a_1 Int) - (COUNTER.usr.X_a_1 Bool) - (COUNTER.usr.reset_a_1 Bool) - (COUNTER.usr.C_a_1 Int) - (COUNTER.res.init_flag_a_1 Bool) - (COUNTER.usr.init_a_0 Int) - (COUNTER.usr.incr_a_0 Int) - (COUNTER.usr.X_a_0 Bool) - (COUNTER.usr.reset_a_0 Bool) - (COUNTER.usr.C_a_0 Int) - (COUNTER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int COUNTER.usr.C_a_0)) - (and - (= - COUNTER.usr.C_a_1 - (ite - COUNTER.usr.reset_a_1 - COUNTER.usr.init_a_1 - (ite COUNTER.usr.X_a_1 (+ X1 COUNTER.usr.incr_a_1) X1))) - (not COUNTER.res.init_flag_a_1))) -) - -(define-fun - __node_init_speed_0 ( - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.usr.late_a_0 false) - (= speed.res.abs_2_a_0 false) - (= speed.res.abs_1_a_0 (or speed.usr.beacon_a_0 speed.usr.second_a_0)) - (= speed.res.abs_0_a_0 0) - (= - speed.impl.usr.incr_a_0 - (ite - (or speed.usr.beacon_a_0 (not speed.usr.second_a_0)) - 1 - (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) 2 0))) - (let - ((X1 Int speed.res.abs_3_a_0)) - (and - (= speed.usr.early_a_0 false) - (__node_init_COUNTER_0 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_0 0) - (<= 0 speed.impl.usr.incr_a_0 2) - speed.res.init_flag_a_0))) -) - -(define-fun - __node_trans_speed_0 ( - (speed.usr.beacon_a_1 Bool) - (speed.usr.second_a_1 Bool) - (speed.usr.late_a_1 Bool) - (speed.usr.early_a_1 Bool) - (speed.res.init_flag_a_1 Bool) - (speed.impl.usr.incr_a_1 Int) - (speed.res.abs_0_a_1 Int) - (speed.res.abs_1_a_1 Bool) - (speed.res.abs_2_a_1 Bool) - (speed.res.abs_3_a_1 Int) - (speed.res.inst_0_a_1 Bool) - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.res.abs_2_a_1 false) - (= speed.res.abs_1_a_1 (or speed.usr.beacon_a_1 speed.usr.second_a_1)) - (= speed.res.abs_0_a_1 0) - (= - speed.impl.usr.incr_a_1 - (ite - (or speed.usr.beacon_a_1 (not speed.usr.second_a_1)) - 1 - (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) 2 0))) - (let - ((X1 Int speed.res.abs_3_a_1)) - (and - (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) - (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) - (__node_trans_COUNTER_0 - speed.res.abs_0_a_1 - speed.impl.usr.incr_a_1 - speed.res.abs_1_a_1 - speed.res.abs_2_a_1 - speed.res.abs_3_a_1 - speed.res.inst_0_a_1 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_1 0) - (<= 0 speed.impl.usr.incr_a_1 2) - (not speed.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_1_a_0)) - (let - ((X2 Bool top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (not (and X2 X1))) - (__node_init_speed_0 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.beacon_a_1 Bool) - (top.usr.second_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Int) - (top.res.inst_0_a_1 Bool) - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_1_a_1)) - (let - ((X2 Bool top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (not (and X2 X1))) - (__node_trans_speed_0 - top.usr.beacon_a_1 - top.usr.second_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.res.inst_0_a_1 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.beacon Bool) -(declare-primed-var top.usr.second Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Int) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_1)) - (let - ((X2 Bool top.res.abs_0)) - (and - (= top.usr.OK (not (and X2 X1))) - (__node_init_speed_0 - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.beacon! Bool) - (top.usr.second! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Int) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_1!)) - (let - ((X2 Bool top.res.abs_0!)) - (and - (= top.usr.OK! (not (and X2 X1))) - (__node_trans_speed_0 - top.usr.beacon! - top.usr.second! - top.res.abs_0! - top.res.abs_1! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.res.inst_0! - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_COUNTER_0 ((COUNTER.usr.init_a_0 Int) (COUNTER.usr.incr_a_0 Int) (COUNTER.usr.X_a_0 Bool) (COUNTER.usr.reset_a_0 Bool) (COUNTER.usr.C_a_0 Int) (COUNTER.res.init_flag_a_0 Bool)) Bool + (let ((X1 COUNTER.usr.init_a_0)) (and (= COUNTER.usr.C_a_0 (ite COUNTER.usr.reset_a_0 COUNTER.usr.init_a_0 (ite COUNTER.usr.X_a_0 (+ X1 COUNTER.usr.incr_a_0) X1))) COUNTER.res.init_flag_a_0))) +(define-fun __node_trans_COUNTER_0 ((COUNTER.usr.init_a_1 Int) (COUNTER.usr.incr_a_1 Int) (COUNTER.usr.X_a_1 Bool) (COUNTER.usr.reset_a_1 Bool) (COUNTER.usr.C_a_1 Int) (COUNTER.res.init_flag_a_1 Bool) (COUNTER.usr.init_a_0 Int) (COUNTER.usr.incr_a_0 Int) (COUNTER.usr.X_a_0 Bool) (COUNTER.usr.reset_a_0 Bool) (COUNTER.usr.C_a_0 Int) (COUNTER.res.init_flag_a_0 Bool)) Bool + (let ((X1 COUNTER.usr.C_a_0)) (and (= COUNTER.usr.C_a_1 (ite COUNTER.usr.reset_a_1 COUNTER.usr.init_a_1 (ite COUNTER.usr.X_a_1 (+ X1 COUNTER.usr.incr_a_1) X1))) (not COUNTER.res.init_flag_a_1)))) +(define-fun __node_init_speed_0 ((speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.usr.late_a_0 false) (= speed.res.abs_2_a_0 false) (= speed.res.abs_1_a_0 (or speed.usr.beacon_a_0 speed.usr.second_a_0)) (= speed.res.abs_0_a_0 0) (= speed.impl.usr.incr_a_0 (ite (or speed.usr.beacon_a_0 (not speed.usr.second_a_0)) 1 (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) 2 0))) (let ((X1 speed.res.abs_3_a_0)) (and (= speed.usr.early_a_0 false) (__node_init_COUNTER_0 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_0 0) (<= 0 speed.impl.usr.incr_a_0 2) speed.res.init_flag_a_0)))) +(define-fun __node_trans_speed_0 ((speed.usr.beacon_a_1 Bool) (speed.usr.second_a_1 Bool) (speed.usr.late_a_1 Bool) (speed.usr.early_a_1 Bool) (speed.res.init_flag_a_1 Bool) (speed.impl.usr.incr_a_1 Int) (speed.res.abs_0_a_1 Int) (speed.res.abs_1_a_1 Bool) (speed.res.abs_2_a_1 Bool) (speed.res.abs_3_a_1 Int) (speed.res.inst_0_a_1 Bool) (speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.res.abs_2_a_1 false) (= speed.res.abs_1_a_1 (or speed.usr.beacon_a_1 speed.usr.second_a_1)) (= speed.res.abs_0_a_1 0) (= speed.impl.usr.incr_a_1 (ite (or speed.usr.beacon_a_1 (not speed.usr.second_a_1)) 1 (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) 2 0))) (let ((X1 speed.res.abs_3_a_1)) (and (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) (__node_trans_COUNTER_0 speed.res.abs_0_a_1 speed.impl.usr.incr_a_1 speed.res.abs_1_a_1 speed.res.abs_2_a_1 speed.res.abs_3_a_1 speed.res.inst_0_a_1 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_1 0) (<= 0 speed.impl.usr.incr_a_1 2) (not speed.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_1_a_0)) (let ((X2 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (not (and X2 X1))) (__node_init_speed_0 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.beacon_a_1 Bool) (top.usr.second_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Int) (top.res.inst_0_a_1 Bool) (top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_1_a_1)) (let ((X2 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (not (and X2 X1))) (__node_trans_speed_0 top.usr.beacon_a_1 top.usr.second_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.res.inst_0_a_1 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_1)) (let ((X2 top.res.abs_0)) (and (= top.usr.OK (not (and X2 X1))) (__node_init_speed_0 top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool) (top.usr.beacon! Bool) (top.usr.second! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Int) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_1!)) (let ((X2 top.res.abs_0!)) (and (= top.usr.OK! (not (and X2 X1))) (__node_trans_speed_0 top.usr.beacon! top.usr.second! top.res.abs_0! top.res.abs_1! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.res.inst_0! top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/speed_e8_649.sl b/benchmarks/LIA/Lustre/speed_e8_649.sl index 6496fd0..995a821 100644 --- a/benchmarks/LIA/Lustre/speed_e8_649.sl +++ b/benchmarks/LIA/Lustre/speed_e8_649.sl @@ -1,414 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_COUNTER_0 ( - (COUNTER.usr.init_a_0 Int) - (COUNTER.usr.incr_a_0 Int) - (COUNTER.usr.X_a_0 Bool) - (COUNTER.usr.reset_a_0 Bool) - (COUNTER.usr.C_a_0 Int) - (COUNTER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int COUNTER.usr.init_a_0)) - (and - (= - COUNTER.usr.C_a_0 - (ite - COUNTER.usr.reset_a_0 - COUNTER.usr.init_a_0 - (ite COUNTER.usr.X_a_0 (+ X1 COUNTER.usr.incr_a_0) X1))) - COUNTER.res.init_flag_a_0)) -) - -(define-fun - __node_trans_COUNTER_0 ( - (COUNTER.usr.init_a_1 Int) - (COUNTER.usr.incr_a_1 Int) - (COUNTER.usr.X_a_1 Bool) - (COUNTER.usr.reset_a_1 Bool) - (COUNTER.usr.C_a_1 Int) - (COUNTER.res.init_flag_a_1 Bool) - (COUNTER.usr.init_a_0 Int) - (COUNTER.usr.incr_a_0 Int) - (COUNTER.usr.X_a_0 Bool) - (COUNTER.usr.reset_a_0 Bool) - (COUNTER.usr.C_a_0 Int) - (COUNTER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int COUNTER.usr.C_a_0)) - (and - (= - COUNTER.usr.C_a_1 - (ite - COUNTER.usr.reset_a_1 - COUNTER.usr.init_a_1 - (ite COUNTER.usr.X_a_1 (+ X1 COUNTER.usr.incr_a_1) X1))) - (not COUNTER.res.init_flag_a_1))) -) - -(define-fun - __node_init_speed_0 ( - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.usr.late_a_0 false) - (= speed.res.abs_2_a_0 false) - (= speed.res.abs_1_a_0 (and speed.usr.beacon_a_0 speed.usr.second_a_0)) - (= speed.res.abs_0_a_0 0) - (= - speed.impl.usr.incr_a_0 - (ite - (and speed.usr.beacon_a_0 (not speed.usr.second_a_0)) - 1 - (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) 2 0))) - (let - ((X1 Int speed.res.abs_3_a_0)) - (and - (= speed.usr.early_a_0 false) - (__node_init_COUNTER_0 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_0 0) - (<= 0 speed.impl.usr.incr_a_0 2) - speed.res.init_flag_a_0))) -) - -(define-fun - __node_trans_speed_0 ( - (speed.usr.beacon_a_1 Bool) - (speed.usr.second_a_1 Bool) - (speed.usr.late_a_1 Bool) - (speed.usr.early_a_1 Bool) - (speed.res.init_flag_a_1 Bool) - (speed.impl.usr.incr_a_1 Int) - (speed.res.abs_0_a_1 Int) - (speed.res.abs_1_a_1 Bool) - (speed.res.abs_2_a_1 Bool) - (speed.res.abs_3_a_1 Int) - (speed.res.inst_0_a_1 Bool) - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.res.abs_2_a_1 false) - (= speed.res.abs_1_a_1 (and speed.usr.beacon_a_1 speed.usr.second_a_1)) - (= speed.res.abs_0_a_1 0) - (= - speed.impl.usr.incr_a_1 - (ite - (and speed.usr.beacon_a_1 (not speed.usr.second_a_1)) - 1 - (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) 2 0))) - (let - ((X1 Int speed.res.abs_3_a_1)) - (and - (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) - (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) - (__node_trans_COUNTER_0 - speed.res.abs_0_a_1 - speed.impl.usr.incr_a_1 - speed.res.abs_1_a_1 - speed.res.abs_2_a_1 - speed.res.abs_3_a_1 - speed.res.inst_0_a_1 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_1 0) - (<= 0 speed.impl.usr.incr_a_1 2) - (not speed.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_1_a_0)) - (let - ((X2 Bool top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (not (and X2 X1))) - (__node_init_speed_0 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.beacon_a_1 Bool) - (top.usr.second_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Int) - (top.res.inst_0_a_1 Bool) - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_1_a_1)) - (let - ((X2 Bool top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (not (and X2 X1))) - (__node_trans_speed_0 - top.usr.beacon_a_1 - top.usr.second_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.res.inst_0_a_1 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.beacon Bool) -(declare-primed-var top.usr.second Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Int) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_1)) - (let - ((X2 Bool top.res.abs_0)) - (and - (= top.usr.OK (not (and X2 X1))) - (__node_init_speed_0 - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.beacon! Bool) - (top.usr.second! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Int) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_1!)) - (let - ((X2 Bool top.res.abs_0!)) - (and - (= top.usr.OK! (not (and X2 X1))) - (__node_trans_speed_0 - top.usr.beacon! - top.usr.second! - top.res.abs_0! - top.res.abs_1! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.res.inst_0! - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_COUNTER_0 ((COUNTER.usr.init_a_0 Int) (COUNTER.usr.incr_a_0 Int) (COUNTER.usr.X_a_0 Bool) (COUNTER.usr.reset_a_0 Bool) (COUNTER.usr.C_a_0 Int) (COUNTER.res.init_flag_a_0 Bool)) Bool + (let ((X1 COUNTER.usr.init_a_0)) (and (= COUNTER.usr.C_a_0 (ite COUNTER.usr.reset_a_0 COUNTER.usr.init_a_0 (ite COUNTER.usr.X_a_0 (+ X1 COUNTER.usr.incr_a_0) X1))) COUNTER.res.init_flag_a_0))) +(define-fun __node_trans_COUNTER_0 ((COUNTER.usr.init_a_1 Int) (COUNTER.usr.incr_a_1 Int) (COUNTER.usr.X_a_1 Bool) (COUNTER.usr.reset_a_1 Bool) (COUNTER.usr.C_a_1 Int) (COUNTER.res.init_flag_a_1 Bool) (COUNTER.usr.init_a_0 Int) (COUNTER.usr.incr_a_0 Int) (COUNTER.usr.X_a_0 Bool) (COUNTER.usr.reset_a_0 Bool) (COUNTER.usr.C_a_0 Int) (COUNTER.res.init_flag_a_0 Bool)) Bool + (let ((X1 COUNTER.usr.C_a_0)) (and (= COUNTER.usr.C_a_1 (ite COUNTER.usr.reset_a_1 COUNTER.usr.init_a_1 (ite COUNTER.usr.X_a_1 (+ X1 COUNTER.usr.incr_a_1) X1))) (not COUNTER.res.init_flag_a_1)))) +(define-fun __node_init_speed_0 ((speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.usr.late_a_0 false) (= speed.res.abs_2_a_0 false) (= speed.res.abs_1_a_0 (and speed.usr.beacon_a_0 speed.usr.second_a_0)) (= speed.res.abs_0_a_0 0) (= speed.impl.usr.incr_a_0 (ite (and speed.usr.beacon_a_0 (not speed.usr.second_a_0)) 1 (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) 2 0))) (let ((X1 speed.res.abs_3_a_0)) (and (= speed.usr.early_a_0 false) (__node_init_COUNTER_0 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_0 0) (<= 0 speed.impl.usr.incr_a_0 2) speed.res.init_flag_a_0)))) +(define-fun __node_trans_speed_0 ((speed.usr.beacon_a_1 Bool) (speed.usr.second_a_1 Bool) (speed.usr.late_a_1 Bool) (speed.usr.early_a_1 Bool) (speed.res.init_flag_a_1 Bool) (speed.impl.usr.incr_a_1 Int) (speed.res.abs_0_a_1 Int) (speed.res.abs_1_a_1 Bool) (speed.res.abs_2_a_1 Bool) (speed.res.abs_3_a_1 Int) (speed.res.inst_0_a_1 Bool) (speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.res.abs_2_a_1 false) (= speed.res.abs_1_a_1 (and speed.usr.beacon_a_1 speed.usr.second_a_1)) (= speed.res.abs_0_a_1 0) (= speed.impl.usr.incr_a_1 (ite (and speed.usr.beacon_a_1 (not speed.usr.second_a_1)) 1 (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) 2 0))) (let ((X1 speed.res.abs_3_a_1)) (and (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) (__node_trans_COUNTER_0 speed.res.abs_0_a_1 speed.impl.usr.incr_a_1 speed.res.abs_1_a_1 speed.res.abs_2_a_1 speed.res.abs_3_a_1 speed.res.inst_0_a_1 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_1 0) (<= 0 speed.impl.usr.incr_a_1 2) (not speed.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_1_a_0)) (let ((X2 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (not (and X2 X1))) (__node_init_speed_0 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.beacon_a_1 Bool) (top.usr.second_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Int) (top.res.inst_0_a_1 Bool) (top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_1_a_1)) (let ((X2 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (not (and X2 X1))) (__node_trans_speed_0 top.usr.beacon_a_1 top.usr.second_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.res.inst_0_a_1 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_1)) (let ((X2 top.res.abs_0)) (and (= top.usr.OK (not (and X2 X1))) (__node_init_speed_0 top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool) (top.usr.beacon! Bool) (top.usr.second! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Int) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_1!)) (let ((X2 top.res.abs_0!)) (and (= top.usr.OK! (not (and X2 X1))) (__node_trans_speed_0 top.usr.beacon! top.usr.second! top.res.abs_0! top.res.abs_1! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.res.inst_0! top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/speed_e8_649_e7_709.sl b/benchmarks/LIA/Lustre/speed_e8_649_e7_709.sl index 186671a..b2a6eb2 100644 --- a/benchmarks/LIA/Lustre/speed_e8_649_e7_709.sl +++ b/benchmarks/LIA/Lustre/speed_e8_649_e7_709.sl @@ -1,414 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_COUNTER_0 ( - (COUNTER.usr.init_a_0 Int) - (COUNTER.usr.incr_a_0 Int) - (COUNTER.usr.X_a_0 Bool) - (COUNTER.usr.reset_a_0 Bool) - (COUNTER.usr.C_a_0 Int) - (COUNTER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int COUNTER.usr.init_a_0)) - (and - (= - COUNTER.usr.C_a_0 - (ite - COUNTER.usr.reset_a_0 - COUNTER.usr.init_a_0 - (ite COUNTER.usr.X_a_0 (+ X1 COUNTER.usr.incr_a_0) X1))) - COUNTER.res.init_flag_a_0)) -) - -(define-fun - __node_trans_COUNTER_0 ( - (COUNTER.usr.init_a_1 Int) - (COUNTER.usr.incr_a_1 Int) - (COUNTER.usr.X_a_1 Bool) - (COUNTER.usr.reset_a_1 Bool) - (COUNTER.usr.C_a_1 Int) - (COUNTER.res.init_flag_a_1 Bool) - (COUNTER.usr.init_a_0 Int) - (COUNTER.usr.incr_a_0 Int) - (COUNTER.usr.X_a_0 Bool) - (COUNTER.usr.reset_a_0 Bool) - (COUNTER.usr.C_a_0 Int) - (COUNTER.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int COUNTER.usr.C_a_0)) - (and - (= - COUNTER.usr.C_a_1 - (ite - COUNTER.usr.reset_a_1 - COUNTER.usr.init_a_1 - (ite COUNTER.usr.X_a_1 (+ X1 COUNTER.usr.incr_a_1) X1))) - (not COUNTER.res.init_flag_a_1))) -) - -(define-fun - __node_init_speed_0 ( - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.usr.late_a_0 false) - (= speed.res.abs_2_a_0 false) - (= speed.res.abs_1_a_0 (and speed.usr.beacon_a_0 speed.usr.second_a_0)) - (= speed.res.abs_0_a_0 0) - (= - speed.impl.usr.incr_a_0 - (ite - (or speed.usr.beacon_a_0 (not speed.usr.second_a_0)) - 1 - (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) 2 0))) - (let - ((X1 Int speed.res.abs_3_a_0)) - (and - (= speed.usr.early_a_0 false) - (__node_init_COUNTER_0 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_0 0) - (<= 0 speed.impl.usr.incr_a_0 2) - speed.res.init_flag_a_0))) -) - -(define-fun - __node_trans_speed_0 ( - (speed.usr.beacon_a_1 Bool) - (speed.usr.second_a_1 Bool) - (speed.usr.late_a_1 Bool) - (speed.usr.early_a_1 Bool) - (speed.res.init_flag_a_1 Bool) - (speed.impl.usr.incr_a_1 Int) - (speed.res.abs_0_a_1 Int) - (speed.res.abs_1_a_1 Bool) - (speed.res.abs_2_a_1 Bool) - (speed.res.abs_3_a_1 Int) - (speed.res.inst_0_a_1 Bool) - (speed.usr.beacon_a_0 Bool) - (speed.usr.second_a_0 Bool) - (speed.usr.late_a_0 Bool) - (speed.usr.early_a_0 Bool) - (speed.res.init_flag_a_0 Bool) - (speed.impl.usr.incr_a_0 Int) - (speed.res.abs_0_a_0 Int) - (speed.res.abs_1_a_0 Bool) - (speed.res.abs_2_a_0 Bool) - (speed.res.abs_3_a_0 Int) - (speed.res.inst_0_a_0 Bool) - ) Bool - - (and - (= speed.res.abs_2_a_1 false) - (= speed.res.abs_1_a_1 (and speed.usr.beacon_a_1 speed.usr.second_a_1)) - (= speed.res.abs_0_a_1 0) - (= - speed.impl.usr.incr_a_1 - (ite - (or speed.usr.beacon_a_1 (not speed.usr.second_a_1)) - 1 - (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) 2 0))) - (let - ((X1 Int speed.res.abs_3_a_1)) - (and - (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) - (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) - (__node_trans_COUNTER_0 - speed.res.abs_0_a_1 - speed.impl.usr.incr_a_1 - speed.res.abs_1_a_1 - speed.res.abs_2_a_1 - speed.res.abs_3_a_1 - speed.res.inst_0_a_1 - speed.res.abs_0_a_0 - speed.impl.usr.incr_a_0 - speed.res.abs_1_a_0 - speed.res.abs_2_a_0 - speed.res.abs_3_a_0 - speed.res.inst_0_a_0) - (<= 0 speed.res.abs_0_a_1 0) - (<= 0 speed.impl.usr.incr_a_1 2) - (not speed.res.init_flag_a_1)))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_1_a_0)) - (let - ((X2 Bool top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (not (and X2 X1))) - (__node_init_speed_0 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.beacon_a_1 Bool) - (top.usr.second_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Int) - (top.res.inst_4_a_1 Int) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Int) - (top.res.inst_0_a_1 Bool) - (top.usr.beacon_a_0 Bool) - (top.usr.second_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Int) - (top.res.inst_4_a_0 Int) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Int) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_1_a_1)) - (let - ((X2 Bool top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (not (and X2 X1))) - (__node_trans_speed_0 - top.usr.beacon_a_1 - top.usr.second_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.res.inst_0_a_1 - top.usr.beacon_a_0 - top.usr.second_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.beacon Bool) -(declare-primed-var top.usr.second Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Int) -(declare-primed-var top.res.inst_4 Int) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Int) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_1)) - (let - ((X2 Bool top.res.abs_0)) - (and - (= top.usr.OK (not (and X2 X1))) - (__node_init_speed_0 - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.beacon! Bool) - (top.usr.second! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Int) - (top.res.inst_4! Int) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Int) - (top.res.inst_0! Bool) - - ) Bool - - (let - ((X1 Bool top.res.abs_1!)) - (let - ((X2 Bool top.res.abs_0!)) - (and - (= top.usr.OK! (not (and X2 X1))) - (__node_trans_speed_0 - top.usr.beacon! - top.usr.second! - top.res.abs_0! - top.res.abs_1! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.res.inst_0! - top.usr.beacon - top.usr.second - top.res.abs_0 - top.res.abs_1 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.beacon Bool) - (top.usr.second Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Int) - (top.res.inst_4 Int) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Int) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_COUNTER_0 ((COUNTER.usr.init_a_0 Int) (COUNTER.usr.incr_a_0 Int) (COUNTER.usr.X_a_0 Bool) (COUNTER.usr.reset_a_0 Bool) (COUNTER.usr.C_a_0 Int) (COUNTER.res.init_flag_a_0 Bool)) Bool + (let ((X1 COUNTER.usr.init_a_0)) (and (= COUNTER.usr.C_a_0 (ite COUNTER.usr.reset_a_0 COUNTER.usr.init_a_0 (ite COUNTER.usr.X_a_0 (+ X1 COUNTER.usr.incr_a_0) X1))) COUNTER.res.init_flag_a_0))) +(define-fun __node_trans_COUNTER_0 ((COUNTER.usr.init_a_1 Int) (COUNTER.usr.incr_a_1 Int) (COUNTER.usr.X_a_1 Bool) (COUNTER.usr.reset_a_1 Bool) (COUNTER.usr.C_a_1 Int) (COUNTER.res.init_flag_a_1 Bool) (COUNTER.usr.init_a_0 Int) (COUNTER.usr.incr_a_0 Int) (COUNTER.usr.X_a_0 Bool) (COUNTER.usr.reset_a_0 Bool) (COUNTER.usr.C_a_0 Int) (COUNTER.res.init_flag_a_0 Bool)) Bool + (let ((X1 COUNTER.usr.C_a_0)) (and (= COUNTER.usr.C_a_1 (ite COUNTER.usr.reset_a_1 COUNTER.usr.init_a_1 (ite COUNTER.usr.X_a_1 (+ X1 COUNTER.usr.incr_a_1) X1))) (not COUNTER.res.init_flag_a_1)))) +(define-fun __node_init_speed_0 ((speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.usr.late_a_0 false) (= speed.res.abs_2_a_0 false) (= speed.res.abs_1_a_0 (and speed.usr.beacon_a_0 speed.usr.second_a_0)) (= speed.res.abs_0_a_0 0) (= speed.impl.usr.incr_a_0 (ite (or speed.usr.beacon_a_0 (not speed.usr.second_a_0)) 1 (ite (and speed.usr.second_a_0 (not speed.usr.beacon_a_0)) 2 0))) (let ((X1 speed.res.abs_3_a_0)) (and (= speed.usr.early_a_0 false) (__node_init_COUNTER_0 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_0 0) (<= 0 speed.impl.usr.incr_a_0 2) speed.res.init_flag_a_0)))) +(define-fun __node_trans_speed_0 ((speed.usr.beacon_a_1 Bool) (speed.usr.second_a_1 Bool) (speed.usr.late_a_1 Bool) (speed.usr.early_a_1 Bool) (speed.res.init_flag_a_1 Bool) (speed.impl.usr.incr_a_1 Int) (speed.res.abs_0_a_1 Int) (speed.res.abs_1_a_1 Bool) (speed.res.abs_2_a_1 Bool) (speed.res.abs_3_a_1 Int) (speed.res.inst_0_a_1 Bool) (speed.usr.beacon_a_0 Bool) (speed.usr.second_a_0 Bool) (speed.usr.late_a_0 Bool) (speed.usr.early_a_0 Bool) (speed.res.init_flag_a_0 Bool) (speed.impl.usr.incr_a_0 Int) (speed.res.abs_0_a_0 Int) (speed.res.abs_1_a_0 Bool) (speed.res.abs_2_a_0 Bool) (speed.res.abs_3_a_0 Int) (speed.res.inst_0_a_0 Bool)) Bool + (and (= speed.res.abs_2_a_1 false) (= speed.res.abs_1_a_1 (and speed.usr.beacon_a_1 speed.usr.second_a_1)) (= speed.res.abs_0_a_1 0) (= speed.impl.usr.incr_a_1 (ite (or speed.usr.beacon_a_1 (not speed.usr.second_a_1)) 1 (ite (and speed.usr.second_a_1 (not speed.usr.beacon_a_1)) 2 0))) (let ((X1 speed.res.abs_3_a_1)) (and (= speed.usr.late_a_1 (ite speed.usr.late_a_0 (< X1 0) (<= X1 (- 10)))) (= speed.usr.early_a_1 (ite speed.usr.early_a_0 (> X1 0) (>= X1 10))) (__node_trans_COUNTER_0 speed.res.abs_0_a_1 speed.impl.usr.incr_a_1 speed.res.abs_1_a_1 speed.res.abs_2_a_1 speed.res.abs_3_a_1 speed.res.inst_0_a_1 speed.res.abs_0_a_0 speed.impl.usr.incr_a_0 speed.res.abs_1_a_0 speed.res.abs_2_a_0 speed.res.abs_3_a_0 speed.res.inst_0_a_0) (<= 0 speed.res.abs_0_a_1 0) (<= 0 speed.impl.usr.incr_a_1 2) (not speed.res.init_flag_a_1))))) +(define-fun __node_init_top_0 ((top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_1_a_0)) (let ((X2 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (not (and X2 X1))) (__node_init_speed_0 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.beacon_a_1 Bool) (top.usr.second_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Int) (top.res.inst_4_a_1 Int) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Int) (top.res.inst_0_a_1 Bool) (top.usr.beacon_a_0 Bool) (top.usr.second_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Int) (top.res.inst_4_a_0 Int) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Int) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_1_a_1)) (let ((X2 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (not (and X2 X1))) (__node_trans_speed_0 top.usr.beacon_a_1 top.usr.second_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.res.inst_0_a_1 top.usr.beacon_a_0 top.usr.second_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_1)) (let ((X2 top.res.abs_0)) (and (= top.usr.OK (not (and X2 X1))) (__node_init_speed_0 top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool) (top.usr.beacon! Bool) (top.usr.second! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Int) (top.res.inst_4! Int) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Int) (top.res.inst_0! Bool)) Bool + (let ((X1 top.res.abs_1!)) (let ((X2 top.res.abs_0!)) (and (= top.usr.OK! (not (and X2 X1))) (__node_trans_speed_0 top.usr.beacon! top.usr.second! top.res.abs_0! top.res.abs_1! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.res.inst_0! top.usr.beacon top.usr.second top.res.abs_0 top.res.abs_1 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.beacon Bool) (top.usr.second Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Int) (top.res.inst_4 Int) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Int) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/stalmark.sl b/benchmarks/LIA/Lustre/stalmark.sl index 7493b88..b0e488a 100644 --- a/benchmarks/LIA/Lustre/stalmark.sl +++ b/benchmarks/LIA/Lustre/stalmark.sl @@ -1,175 +1,19 @@ (set-logic LIA) -(define-fun - __node_init_top_0 ( - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.a_a_0 Bool) - (top.impl.usr.b_a_0 Bool) - (top.impl.usr.c_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.c_a_0 false) - (= top.impl.usr.b_a_0 false) - (= top.impl.usr.a_a_0 true) - (= - top.usr.OK_a_0 - (and - (or - (or - (or - (and - (and (not top.impl.usr.a_a_0) (not top.impl.usr.b_a_0)) - top.impl.usr.c_a_0) - (and - (and (not top.impl.usr.a_a_0) top.impl.usr.b_a_0) - (not top.impl.usr.c_a_0))) - (and - (and top.impl.usr.a_a_0 (not top.impl.usr.b_a_0)) - (not top.impl.usr.c_a_0))) - (and (and top.impl.usr.a_a_0 top.impl.usr.b_a_0) top.impl.usr.c_a_0)) - (not (and (and top.impl.usr.a_a_0 top.impl.usr.b_a_0) top.impl.usr.c_a_0)))) - top.res.init_flag_a_0) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.a_a_1 Bool) - (top.impl.usr.b_a_1 Bool) - (top.impl.usr.c_a_1 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.a_a_0 Bool) - (top.impl.usr.b_a_0 Bool) - (top.impl.usr.c_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.c_a_1 top.impl.usr.b_a_0) - (= top.impl.usr.b_a_1 top.impl.usr.a_a_0) - (= top.impl.usr.a_a_1 top.impl.usr.c_a_0) - (= - top.usr.OK_a_1 - (and - (or - (or - (or - (and - (and (not top.impl.usr.a_a_1) (not top.impl.usr.b_a_1)) - top.impl.usr.c_a_1) - (and - (and (not top.impl.usr.a_a_1) top.impl.usr.b_a_1) - (not top.impl.usr.c_a_1))) - (and - (and top.impl.usr.a_a_1 (not top.impl.usr.b_a_1)) - (not top.impl.usr.c_a_1))) - (and (and top.impl.usr.a_a_1 top.impl.usr.b_a_1) top.impl.usr.c_a_1)) - (not (and (and top.impl.usr.a_a_1 top.impl.usr.b_a_1) top.impl.usr.c_a_1)))) - (not top.res.init_flag_a_1)) -) - - - -(synth-inv str_invariant( - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.a Bool) - (top.impl.usr.b Bool) - (top.impl.usr.c Bool) -)) - - -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.a Bool) -(declare-primed-var top.impl.usr.b Bool) -(declare-primed-var top.impl.usr.c Bool) - -(define-fun - init ( - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.a Bool) - (top.impl.usr.b Bool) - (top.impl.usr.c Bool) - ) Bool - - (and - (= top.impl.usr.c false) - (= top.impl.usr.b false) - (= top.impl.usr.a true) - (= - top.usr.OK - (and - (or - (or - (or - (and (and (not top.impl.usr.a) (not top.impl.usr.b)) top.impl.usr.c) - (and (and (not top.impl.usr.a) top.impl.usr.b) (not top.impl.usr.c))) - (and (and top.impl.usr.a (not top.impl.usr.b)) (not top.impl.usr.c))) - (and (and top.impl.usr.a top.impl.usr.b) top.impl.usr.c)) - (not (and (and top.impl.usr.a top.impl.usr.b) top.impl.usr.c)))) - top.res.init_flag) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.a Bool) - (top.impl.usr.b Bool) - (top.impl.usr.c Bool) - - ;; Next state. - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.a! Bool) - (top.impl.usr.b! Bool) - (top.impl.usr.c! Bool) - - ) Bool - - (and - (= top.impl.usr.c! top.impl.usr.b) - (= top.impl.usr.b! top.impl.usr.a) - (= top.impl.usr.a! top.impl.usr.c) - (= - top.usr.OK! - (and - (or - (or - (or - (and - (and (not top.impl.usr.a!) (not top.impl.usr.b!)) - top.impl.usr.c!) - (and - (and (not top.impl.usr.a!) top.impl.usr.b!) - (not top.impl.usr.c!))) - (and - (and top.impl.usr.a! (not top.impl.usr.b!)) - (not top.impl.usr.c!))) - (and (and top.impl.usr.a! top.impl.usr.b!) top.impl.usr.c!)) - (not (and (and top.impl.usr.a! top.impl.usr.b!) top.impl.usr.c!)))) - (not top.res.init_flag!)) -) - -(define-fun - prop ( - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.a Bool) - (top.impl.usr.b Bool) - (top.impl.usr.c Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_top_0 ((top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.a_a_0 Bool) (top.impl.usr.b_a_0 Bool) (top.impl.usr.c_a_0 Bool)) Bool + (and (= top.impl.usr.c_a_0 false) (= top.impl.usr.b_a_0 false) (= top.impl.usr.a_a_0 true) (= top.usr.OK_a_0 (and (or (or (or (and (and (not top.impl.usr.a_a_0) (not top.impl.usr.b_a_0)) top.impl.usr.c_a_0) (and (and (not top.impl.usr.a_a_0) top.impl.usr.b_a_0) (not top.impl.usr.c_a_0))) (and (and top.impl.usr.a_a_0 (not top.impl.usr.b_a_0)) (not top.impl.usr.c_a_0))) (and (and top.impl.usr.a_a_0 top.impl.usr.b_a_0) top.impl.usr.c_a_0)) (not (and (and top.impl.usr.a_a_0 top.impl.usr.b_a_0) top.impl.usr.c_a_0)))) top.res.init_flag_a_0)) +(define-fun __node_trans_top_0 ((top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.a_a_1 Bool) (top.impl.usr.b_a_1 Bool) (top.impl.usr.c_a_1 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.a_a_0 Bool) (top.impl.usr.b_a_0 Bool) (top.impl.usr.c_a_0 Bool)) Bool + (and (= top.impl.usr.c_a_1 top.impl.usr.b_a_0) (= top.impl.usr.b_a_1 top.impl.usr.a_a_0) (= top.impl.usr.a_a_1 top.impl.usr.c_a_0) (= top.usr.OK_a_1 (and (or (or (or (and (and (not top.impl.usr.a_a_1) (not top.impl.usr.b_a_1)) top.impl.usr.c_a_1) (and (and (not top.impl.usr.a_a_1) top.impl.usr.b_a_1) (not top.impl.usr.c_a_1))) (and (and top.impl.usr.a_a_1 (not top.impl.usr.b_a_1)) (not top.impl.usr.c_a_1))) (and (and top.impl.usr.a_a_1 top.impl.usr.b_a_1) top.impl.usr.c_a_1)) (not (and (and top.impl.usr.a_a_1 top.impl.usr.b_a_1) top.impl.usr.c_a_1)))) (not top.res.init_flag_a_1))) +(synth-inv str_invariant ((top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.a Bool) (top.impl.usr.b Bool) (top.impl.usr.c Bool))) + +(define-fun init ((top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.a Bool) (top.impl.usr.b Bool) (top.impl.usr.c Bool)) Bool + (and (= top.impl.usr.c false) (= top.impl.usr.b false) (= top.impl.usr.a true) (= top.usr.OK (and (or (or (or (and (and (not top.impl.usr.a) (not top.impl.usr.b)) top.impl.usr.c) (and (and (not top.impl.usr.a) top.impl.usr.b) (not top.impl.usr.c))) (and (and top.impl.usr.a (not top.impl.usr.b)) (not top.impl.usr.c))) (and (and top.impl.usr.a top.impl.usr.b) top.impl.usr.c)) (not (and (and top.impl.usr.a top.impl.usr.b) top.impl.usr.c)))) top.res.init_flag)) +(define-fun trans ((top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.a Bool) (top.impl.usr.b Bool) (top.impl.usr.c Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.a! Bool) (top.impl.usr.b! Bool) (top.impl.usr.c! Bool)) Bool + (and (= top.impl.usr.c! top.impl.usr.b) (= top.impl.usr.b! top.impl.usr.a) (= top.impl.usr.a! top.impl.usr.c) (= top.usr.OK! (and (or (or (or (and (and (not top.impl.usr.a!) (not top.impl.usr.b!)) top.impl.usr.c!) (and (and (not top.impl.usr.a!) top.impl.usr.b!) (not top.impl.usr.c!))) (and (and top.impl.usr.a! (not top.impl.usr.b!)) (not top.impl.usr.c!))) (and (and top.impl.usr.a! top.impl.usr.b!) top.impl.usr.c!)) (not (and (and top.impl.usr.a! top.impl.usr.b!) top.impl.usr.c!)))) (not top.res.init_flag!))) +(define-fun prop ((top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.a Bool) (top.impl.usr.b Bool) (top.impl.usr.c Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/stalmark_e7_27.sl b/benchmarks/LIA/Lustre/stalmark_e7_27.sl index 903862e..2690d24 100644 --- a/benchmarks/LIA/Lustre/stalmark_e7_27.sl +++ b/benchmarks/LIA/Lustre/stalmark_e7_27.sl @@ -1,175 +1,19 @@ (set-logic LIA) -(define-fun - __node_init_top_0 ( - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.a_a_0 Bool) - (top.impl.usr.b_a_0 Bool) - (top.impl.usr.c_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.c_a_0 false) - (= top.impl.usr.b_a_0 false) - (= top.impl.usr.a_a_0 true) - (= - top.usr.OK_a_0 - (and - (or - (or - (or - (or - (not top.impl.usr.a_a_0) - (and (not top.impl.usr.b_a_0) top.impl.usr.c_a_0)) - (and - (and (not top.impl.usr.a_a_0) top.impl.usr.b_a_0) - (not top.impl.usr.c_a_0))) - (and - (and top.impl.usr.a_a_0 (not top.impl.usr.b_a_0)) - (not top.impl.usr.c_a_0))) - (and (and top.impl.usr.a_a_0 top.impl.usr.b_a_0) top.impl.usr.c_a_0)) - (not (and (and top.impl.usr.a_a_0 top.impl.usr.b_a_0) top.impl.usr.c_a_0)))) - top.res.init_flag_a_0) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.a_a_1 Bool) - (top.impl.usr.b_a_1 Bool) - (top.impl.usr.c_a_1 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.a_a_0 Bool) - (top.impl.usr.b_a_0 Bool) - (top.impl.usr.c_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.c_a_1 top.impl.usr.b_a_0) - (= top.impl.usr.b_a_1 top.impl.usr.a_a_0) - (= top.impl.usr.a_a_1 top.impl.usr.c_a_0) - (= - top.usr.OK_a_1 - (and - (or - (or - (or - (or - (not top.impl.usr.a_a_1) - (and (not top.impl.usr.b_a_1) top.impl.usr.c_a_1)) - (and - (and (not top.impl.usr.a_a_1) top.impl.usr.b_a_1) - (not top.impl.usr.c_a_1))) - (and - (and top.impl.usr.a_a_1 (not top.impl.usr.b_a_1)) - (not top.impl.usr.c_a_1))) - (and (and top.impl.usr.a_a_1 top.impl.usr.b_a_1) top.impl.usr.c_a_1)) - (not (and (and top.impl.usr.a_a_1 top.impl.usr.b_a_1) top.impl.usr.c_a_1)))) - (not top.res.init_flag_a_1)) -) - - - -(synth-inv str_invariant( - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.a Bool) - (top.impl.usr.b Bool) - (top.impl.usr.c Bool) -)) - - -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.a Bool) -(declare-primed-var top.impl.usr.b Bool) -(declare-primed-var top.impl.usr.c Bool) - -(define-fun - init ( - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.a Bool) - (top.impl.usr.b Bool) - (top.impl.usr.c Bool) - ) Bool - - (and - (= top.impl.usr.c false) - (= top.impl.usr.b false) - (= top.impl.usr.a true) - (= - top.usr.OK - (and - (or - (or - (or - (or (not top.impl.usr.a) (and (not top.impl.usr.b) top.impl.usr.c)) - (and (and (not top.impl.usr.a) top.impl.usr.b) (not top.impl.usr.c))) - (and (and top.impl.usr.a (not top.impl.usr.b)) (not top.impl.usr.c))) - (and (and top.impl.usr.a top.impl.usr.b) top.impl.usr.c)) - (not (and (and top.impl.usr.a top.impl.usr.b) top.impl.usr.c)))) - top.res.init_flag) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.a Bool) - (top.impl.usr.b Bool) - (top.impl.usr.c Bool) - - ;; Next state. - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.a! Bool) - (top.impl.usr.b! Bool) - (top.impl.usr.c! Bool) - - ) Bool - - (and - (= top.impl.usr.c! top.impl.usr.b) - (= top.impl.usr.b! top.impl.usr.a) - (= top.impl.usr.a! top.impl.usr.c) - (= - top.usr.OK! - (and - (or - (or - (or - (or - (not top.impl.usr.a!) - (and (not top.impl.usr.b!) top.impl.usr.c!)) - (and - (and (not top.impl.usr.a!) top.impl.usr.b!) - (not top.impl.usr.c!))) - (and - (and top.impl.usr.a! (not top.impl.usr.b!)) - (not top.impl.usr.c!))) - (and (and top.impl.usr.a! top.impl.usr.b!) top.impl.usr.c!)) - (not (and (and top.impl.usr.a! top.impl.usr.b!) top.impl.usr.c!)))) - (not top.res.init_flag!)) -) - -(define-fun - prop ( - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.a Bool) - (top.impl.usr.b Bool) - (top.impl.usr.c Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_top_0 ((top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.a_a_0 Bool) (top.impl.usr.b_a_0 Bool) (top.impl.usr.c_a_0 Bool)) Bool + (and (= top.impl.usr.c_a_0 false) (= top.impl.usr.b_a_0 false) (= top.impl.usr.a_a_0 true) (= top.usr.OK_a_0 (and (or (or (or (or (not top.impl.usr.a_a_0) (and (not top.impl.usr.b_a_0) top.impl.usr.c_a_0)) (and (and (not top.impl.usr.a_a_0) top.impl.usr.b_a_0) (not top.impl.usr.c_a_0))) (and (and top.impl.usr.a_a_0 (not top.impl.usr.b_a_0)) (not top.impl.usr.c_a_0))) (and (and top.impl.usr.a_a_0 top.impl.usr.b_a_0) top.impl.usr.c_a_0)) (not (and (and top.impl.usr.a_a_0 top.impl.usr.b_a_0) top.impl.usr.c_a_0)))) top.res.init_flag_a_0)) +(define-fun __node_trans_top_0 ((top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.a_a_1 Bool) (top.impl.usr.b_a_1 Bool) (top.impl.usr.c_a_1 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.a_a_0 Bool) (top.impl.usr.b_a_0 Bool) (top.impl.usr.c_a_0 Bool)) Bool + (and (= top.impl.usr.c_a_1 top.impl.usr.b_a_0) (= top.impl.usr.b_a_1 top.impl.usr.a_a_0) (= top.impl.usr.a_a_1 top.impl.usr.c_a_0) (= top.usr.OK_a_1 (and (or (or (or (or (not top.impl.usr.a_a_1) (and (not top.impl.usr.b_a_1) top.impl.usr.c_a_1)) (and (and (not top.impl.usr.a_a_1) top.impl.usr.b_a_1) (not top.impl.usr.c_a_1))) (and (and top.impl.usr.a_a_1 (not top.impl.usr.b_a_1)) (not top.impl.usr.c_a_1))) (and (and top.impl.usr.a_a_1 top.impl.usr.b_a_1) top.impl.usr.c_a_1)) (not (and (and top.impl.usr.a_a_1 top.impl.usr.b_a_1) top.impl.usr.c_a_1)))) (not top.res.init_flag_a_1))) +(synth-inv str_invariant ((top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.a Bool) (top.impl.usr.b Bool) (top.impl.usr.c Bool))) + +(define-fun init ((top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.a Bool) (top.impl.usr.b Bool) (top.impl.usr.c Bool)) Bool + (and (= top.impl.usr.c false) (= top.impl.usr.b false) (= top.impl.usr.a true) (= top.usr.OK (and (or (or (or (or (not top.impl.usr.a) (and (not top.impl.usr.b) top.impl.usr.c)) (and (and (not top.impl.usr.a) top.impl.usr.b) (not top.impl.usr.c))) (and (and top.impl.usr.a (not top.impl.usr.b)) (not top.impl.usr.c))) (and (and top.impl.usr.a top.impl.usr.b) top.impl.usr.c)) (not (and (and top.impl.usr.a top.impl.usr.b) top.impl.usr.c)))) top.res.init_flag)) +(define-fun trans ((top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.a Bool) (top.impl.usr.b Bool) (top.impl.usr.c Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.a! Bool) (top.impl.usr.b! Bool) (top.impl.usr.c! Bool)) Bool + (and (= top.impl.usr.c! top.impl.usr.b) (= top.impl.usr.b! top.impl.usr.a) (= top.impl.usr.a! top.impl.usr.c) (= top.usr.OK! (and (or (or (or (or (not top.impl.usr.a!) (and (not top.impl.usr.b!) top.impl.usr.c!)) (and (and (not top.impl.usr.a!) top.impl.usr.b!) (not top.impl.usr.c!))) (and (and top.impl.usr.a! (not top.impl.usr.b!)) (not top.impl.usr.c!))) (and (and top.impl.usr.a! top.impl.usr.b!) top.impl.usr.c!)) (not (and (and top.impl.usr.a! top.impl.usr.b!) top.impl.usr.c!)))) (not top.res.init_flag!))) +(define-fun prop ((top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.a Bool) (top.impl.usr.b Bool) (top.impl.usr.c Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/stalmark_e7_27_e7_31.sl b/benchmarks/LIA/Lustre/stalmark_e7_27_e7_31.sl index 15f25a4..79ea291 100644 --- a/benchmarks/LIA/Lustre/stalmark_e7_27_e7_31.sl +++ b/benchmarks/LIA/Lustre/stalmark_e7_27_e7_31.sl @@ -1,173 +1,19 @@ (set-logic LIA) -(define-fun - __node_init_top_0 ( - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.a_a_0 Bool) - (top.impl.usr.b_a_0 Bool) - (top.impl.usr.c_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.c_a_0 false) - (= top.impl.usr.b_a_0 false) - (= top.impl.usr.a_a_0 true) - (= - top.usr.OK_a_0 - (and - (or - (or - (or - (or - (or (not top.impl.usr.a_a_0) (not top.impl.usr.b_a_0)) - top.impl.usr.c_a_0) - (and - (and (not top.impl.usr.a_a_0) top.impl.usr.b_a_0) - (not top.impl.usr.c_a_0))) - (and - (and top.impl.usr.a_a_0 (not top.impl.usr.b_a_0)) - (not top.impl.usr.c_a_0))) - (and (and top.impl.usr.a_a_0 top.impl.usr.b_a_0) top.impl.usr.c_a_0)) - (not (and (and top.impl.usr.a_a_0 top.impl.usr.b_a_0) top.impl.usr.c_a_0)))) - top.res.init_flag_a_0) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.a_a_1 Bool) - (top.impl.usr.b_a_1 Bool) - (top.impl.usr.c_a_1 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.a_a_0 Bool) - (top.impl.usr.b_a_0 Bool) - (top.impl.usr.c_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.c_a_1 top.impl.usr.b_a_0) - (= top.impl.usr.b_a_1 top.impl.usr.a_a_0) - (= top.impl.usr.a_a_1 top.impl.usr.c_a_0) - (= - top.usr.OK_a_1 - (and - (or - (or - (or - (or - (or (not top.impl.usr.a_a_1) (not top.impl.usr.b_a_1)) - top.impl.usr.c_a_1) - (and - (and (not top.impl.usr.a_a_1) top.impl.usr.b_a_1) - (not top.impl.usr.c_a_1))) - (and - (and top.impl.usr.a_a_1 (not top.impl.usr.b_a_1)) - (not top.impl.usr.c_a_1))) - (and (and top.impl.usr.a_a_1 top.impl.usr.b_a_1) top.impl.usr.c_a_1)) - (not (and (and top.impl.usr.a_a_1 top.impl.usr.b_a_1) top.impl.usr.c_a_1)))) - (not top.res.init_flag_a_1)) -) - - - -(synth-inv str_invariant( - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.a Bool) - (top.impl.usr.b Bool) - (top.impl.usr.c Bool) -)) - - -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.a Bool) -(declare-primed-var top.impl.usr.b Bool) -(declare-primed-var top.impl.usr.c Bool) - -(define-fun - init ( - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.a Bool) - (top.impl.usr.b Bool) - (top.impl.usr.c Bool) - ) Bool - - (and - (= top.impl.usr.c false) - (= top.impl.usr.b false) - (= top.impl.usr.a true) - (= - top.usr.OK - (and - (or - (or - (or - (or (or (not top.impl.usr.a) (not top.impl.usr.b)) top.impl.usr.c) - (and (and (not top.impl.usr.a) top.impl.usr.b) (not top.impl.usr.c))) - (and (and top.impl.usr.a (not top.impl.usr.b)) (not top.impl.usr.c))) - (and (and top.impl.usr.a top.impl.usr.b) top.impl.usr.c)) - (not (and (and top.impl.usr.a top.impl.usr.b) top.impl.usr.c)))) - top.res.init_flag) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.a Bool) - (top.impl.usr.b Bool) - (top.impl.usr.c Bool) - - ;; Next state. - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.a! Bool) - (top.impl.usr.b! Bool) - (top.impl.usr.c! Bool) - - ) Bool - - (and - (= top.impl.usr.c! top.impl.usr.b) - (= top.impl.usr.b! top.impl.usr.a) - (= top.impl.usr.a! top.impl.usr.c) - (= - top.usr.OK! - (and - (or - (or - (or - (or (or (not top.impl.usr.a!) (not top.impl.usr.b!)) top.impl.usr.c!) - (and - (and (not top.impl.usr.a!) top.impl.usr.b!) - (not top.impl.usr.c!))) - (and - (and top.impl.usr.a! (not top.impl.usr.b!)) - (not top.impl.usr.c!))) - (and (and top.impl.usr.a! top.impl.usr.b!) top.impl.usr.c!)) - (not (and (and top.impl.usr.a! top.impl.usr.b!) top.impl.usr.c!)))) - (not top.res.init_flag!)) -) - -(define-fun - prop ( - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.a Bool) - (top.impl.usr.b Bool) - (top.impl.usr.c Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_top_0 ((top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.a_a_0 Bool) (top.impl.usr.b_a_0 Bool) (top.impl.usr.c_a_0 Bool)) Bool + (and (= top.impl.usr.c_a_0 false) (= top.impl.usr.b_a_0 false) (= top.impl.usr.a_a_0 true) (= top.usr.OK_a_0 (and (or (or (or (or (or (not top.impl.usr.a_a_0) (not top.impl.usr.b_a_0)) top.impl.usr.c_a_0) (and (and (not top.impl.usr.a_a_0) top.impl.usr.b_a_0) (not top.impl.usr.c_a_0))) (and (and top.impl.usr.a_a_0 (not top.impl.usr.b_a_0)) (not top.impl.usr.c_a_0))) (and (and top.impl.usr.a_a_0 top.impl.usr.b_a_0) top.impl.usr.c_a_0)) (not (and (and top.impl.usr.a_a_0 top.impl.usr.b_a_0) top.impl.usr.c_a_0)))) top.res.init_flag_a_0)) +(define-fun __node_trans_top_0 ((top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.a_a_1 Bool) (top.impl.usr.b_a_1 Bool) (top.impl.usr.c_a_1 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.a_a_0 Bool) (top.impl.usr.b_a_0 Bool) (top.impl.usr.c_a_0 Bool)) Bool + (and (= top.impl.usr.c_a_1 top.impl.usr.b_a_0) (= top.impl.usr.b_a_1 top.impl.usr.a_a_0) (= top.impl.usr.a_a_1 top.impl.usr.c_a_0) (= top.usr.OK_a_1 (and (or (or (or (or (or (not top.impl.usr.a_a_1) (not top.impl.usr.b_a_1)) top.impl.usr.c_a_1) (and (and (not top.impl.usr.a_a_1) top.impl.usr.b_a_1) (not top.impl.usr.c_a_1))) (and (and top.impl.usr.a_a_1 (not top.impl.usr.b_a_1)) (not top.impl.usr.c_a_1))) (and (and top.impl.usr.a_a_1 top.impl.usr.b_a_1) top.impl.usr.c_a_1)) (not (and (and top.impl.usr.a_a_1 top.impl.usr.b_a_1) top.impl.usr.c_a_1)))) (not top.res.init_flag_a_1))) +(synth-inv str_invariant ((top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.a Bool) (top.impl.usr.b Bool) (top.impl.usr.c Bool))) + +(define-fun init ((top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.a Bool) (top.impl.usr.b Bool) (top.impl.usr.c Bool)) Bool + (and (= top.impl.usr.c false) (= top.impl.usr.b false) (= top.impl.usr.a true) (= top.usr.OK (and (or (or (or (or (or (not top.impl.usr.a) (not top.impl.usr.b)) top.impl.usr.c) (and (and (not top.impl.usr.a) top.impl.usr.b) (not top.impl.usr.c))) (and (and top.impl.usr.a (not top.impl.usr.b)) (not top.impl.usr.c))) (and (and top.impl.usr.a top.impl.usr.b) top.impl.usr.c)) (not (and (and top.impl.usr.a top.impl.usr.b) top.impl.usr.c)))) top.res.init_flag)) +(define-fun trans ((top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.a Bool) (top.impl.usr.b Bool) (top.impl.usr.c Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.a! Bool) (top.impl.usr.b! Bool) (top.impl.usr.c! Bool)) Bool + (and (= top.impl.usr.c! top.impl.usr.b) (= top.impl.usr.b! top.impl.usr.a) (= top.impl.usr.a! top.impl.usr.c) (= top.usr.OK! (and (or (or (or (or (or (not top.impl.usr.a!) (not top.impl.usr.b!)) top.impl.usr.c!) (and (and (not top.impl.usr.a!) top.impl.usr.b!) (not top.impl.usr.c!))) (and (and top.impl.usr.a! (not top.impl.usr.b!)) (not top.impl.usr.c!))) (and (and top.impl.usr.a! top.impl.usr.b!) top.impl.usr.c!)) (not (and (and top.impl.usr.a! top.impl.usr.b!) top.impl.usr.c!)))) (not top.res.init_flag!))) +(define-fun prop ((top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.a Bool) (top.impl.usr.b Bool) (top.impl.usr.c Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/stalmark_e7_76.sl b/benchmarks/LIA/Lustre/stalmark_e7_76.sl index 903862e..2690d24 100644 --- a/benchmarks/LIA/Lustre/stalmark_e7_76.sl +++ b/benchmarks/LIA/Lustre/stalmark_e7_76.sl @@ -1,175 +1,19 @@ (set-logic LIA) -(define-fun - __node_init_top_0 ( - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.a_a_0 Bool) - (top.impl.usr.b_a_0 Bool) - (top.impl.usr.c_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.c_a_0 false) - (= top.impl.usr.b_a_0 false) - (= top.impl.usr.a_a_0 true) - (= - top.usr.OK_a_0 - (and - (or - (or - (or - (or - (not top.impl.usr.a_a_0) - (and (not top.impl.usr.b_a_0) top.impl.usr.c_a_0)) - (and - (and (not top.impl.usr.a_a_0) top.impl.usr.b_a_0) - (not top.impl.usr.c_a_0))) - (and - (and top.impl.usr.a_a_0 (not top.impl.usr.b_a_0)) - (not top.impl.usr.c_a_0))) - (and (and top.impl.usr.a_a_0 top.impl.usr.b_a_0) top.impl.usr.c_a_0)) - (not (and (and top.impl.usr.a_a_0 top.impl.usr.b_a_0) top.impl.usr.c_a_0)))) - top.res.init_flag_a_0) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.a_a_1 Bool) - (top.impl.usr.b_a_1 Bool) - (top.impl.usr.c_a_1 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.a_a_0 Bool) - (top.impl.usr.b_a_0 Bool) - (top.impl.usr.c_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.c_a_1 top.impl.usr.b_a_0) - (= top.impl.usr.b_a_1 top.impl.usr.a_a_0) - (= top.impl.usr.a_a_1 top.impl.usr.c_a_0) - (= - top.usr.OK_a_1 - (and - (or - (or - (or - (or - (not top.impl.usr.a_a_1) - (and (not top.impl.usr.b_a_1) top.impl.usr.c_a_1)) - (and - (and (not top.impl.usr.a_a_1) top.impl.usr.b_a_1) - (not top.impl.usr.c_a_1))) - (and - (and top.impl.usr.a_a_1 (not top.impl.usr.b_a_1)) - (not top.impl.usr.c_a_1))) - (and (and top.impl.usr.a_a_1 top.impl.usr.b_a_1) top.impl.usr.c_a_1)) - (not (and (and top.impl.usr.a_a_1 top.impl.usr.b_a_1) top.impl.usr.c_a_1)))) - (not top.res.init_flag_a_1)) -) - - - -(synth-inv str_invariant( - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.a Bool) - (top.impl.usr.b Bool) - (top.impl.usr.c Bool) -)) - - -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.a Bool) -(declare-primed-var top.impl.usr.b Bool) -(declare-primed-var top.impl.usr.c Bool) - -(define-fun - init ( - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.a Bool) - (top.impl.usr.b Bool) - (top.impl.usr.c Bool) - ) Bool - - (and - (= top.impl.usr.c false) - (= top.impl.usr.b false) - (= top.impl.usr.a true) - (= - top.usr.OK - (and - (or - (or - (or - (or (not top.impl.usr.a) (and (not top.impl.usr.b) top.impl.usr.c)) - (and (and (not top.impl.usr.a) top.impl.usr.b) (not top.impl.usr.c))) - (and (and top.impl.usr.a (not top.impl.usr.b)) (not top.impl.usr.c))) - (and (and top.impl.usr.a top.impl.usr.b) top.impl.usr.c)) - (not (and (and top.impl.usr.a top.impl.usr.b) top.impl.usr.c)))) - top.res.init_flag) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.a Bool) - (top.impl.usr.b Bool) - (top.impl.usr.c Bool) - - ;; Next state. - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.a! Bool) - (top.impl.usr.b! Bool) - (top.impl.usr.c! Bool) - - ) Bool - - (and - (= top.impl.usr.c! top.impl.usr.b) - (= top.impl.usr.b! top.impl.usr.a) - (= top.impl.usr.a! top.impl.usr.c) - (= - top.usr.OK! - (and - (or - (or - (or - (or - (not top.impl.usr.a!) - (and (not top.impl.usr.b!) top.impl.usr.c!)) - (and - (and (not top.impl.usr.a!) top.impl.usr.b!) - (not top.impl.usr.c!))) - (and - (and top.impl.usr.a! (not top.impl.usr.b!)) - (not top.impl.usr.c!))) - (and (and top.impl.usr.a! top.impl.usr.b!) top.impl.usr.c!)) - (not (and (and top.impl.usr.a! top.impl.usr.b!) top.impl.usr.c!)))) - (not top.res.init_flag!)) -) - -(define-fun - prop ( - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.a Bool) - (top.impl.usr.b Bool) - (top.impl.usr.c Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_top_0 ((top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.a_a_0 Bool) (top.impl.usr.b_a_0 Bool) (top.impl.usr.c_a_0 Bool)) Bool + (and (= top.impl.usr.c_a_0 false) (= top.impl.usr.b_a_0 false) (= top.impl.usr.a_a_0 true) (= top.usr.OK_a_0 (and (or (or (or (or (not top.impl.usr.a_a_0) (and (not top.impl.usr.b_a_0) top.impl.usr.c_a_0)) (and (and (not top.impl.usr.a_a_0) top.impl.usr.b_a_0) (not top.impl.usr.c_a_0))) (and (and top.impl.usr.a_a_0 (not top.impl.usr.b_a_0)) (not top.impl.usr.c_a_0))) (and (and top.impl.usr.a_a_0 top.impl.usr.b_a_0) top.impl.usr.c_a_0)) (not (and (and top.impl.usr.a_a_0 top.impl.usr.b_a_0) top.impl.usr.c_a_0)))) top.res.init_flag_a_0)) +(define-fun __node_trans_top_0 ((top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.a_a_1 Bool) (top.impl.usr.b_a_1 Bool) (top.impl.usr.c_a_1 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.a_a_0 Bool) (top.impl.usr.b_a_0 Bool) (top.impl.usr.c_a_0 Bool)) Bool + (and (= top.impl.usr.c_a_1 top.impl.usr.b_a_0) (= top.impl.usr.b_a_1 top.impl.usr.a_a_0) (= top.impl.usr.a_a_1 top.impl.usr.c_a_0) (= top.usr.OK_a_1 (and (or (or (or (or (not top.impl.usr.a_a_1) (and (not top.impl.usr.b_a_1) top.impl.usr.c_a_1)) (and (and (not top.impl.usr.a_a_1) top.impl.usr.b_a_1) (not top.impl.usr.c_a_1))) (and (and top.impl.usr.a_a_1 (not top.impl.usr.b_a_1)) (not top.impl.usr.c_a_1))) (and (and top.impl.usr.a_a_1 top.impl.usr.b_a_1) top.impl.usr.c_a_1)) (not (and (and top.impl.usr.a_a_1 top.impl.usr.b_a_1) top.impl.usr.c_a_1)))) (not top.res.init_flag_a_1))) +(synth-inv str_invariant ((top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.a Bool) (top.impl.usr.b Bool) (top.impl.usr.c Bool))) + +(define-fun init ((top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.a Bool) (top.impl.usr.b Bool) (top.impl.usr.c Bool)) Bool + (and (= top.impl.usr.c false) (= top.impl.usr.b false) (= top.impl.usr.a true) (= top.usr.OK (and (or (or (or (or (not top.impl.usr.a) (and (not top.impl.usr.b) top.impl.usr.c)) (and (and (not top.impl.usr.a) top.impl.usr.b) (not top.impl.usr.c))) (and (and top.impl.usr.a (not top.impl.usr.b)) (not top.impl.usr.c))) (and (and top.impl.usr.a top.impl.usr.b) top.impl.usr.c)) (not (and (and top.impl.usr.a top.impl.usr.b) top.impl.usr.c)))) top.res.init_flag)) +(define-fun trans ((top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.a Bool) (top.impl.usr.b Bool) (top.impl.usr.c Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.a! Bool) (top.impl.usr.b! Bool) (top.impl.usr.c! Bool)) Bool + (and (= top.impl.usr.c! top.impl.usr.b) (= top.impl.usr.b! top.impl.usr.a) (= top.impl.usr.a! top.impl.usr.c) (= top.usr.OK! (and (or (or (or (or (not top.impl.usr.a!) (and (not top.impl.usr.b!) top.impl.usr.c!)) (and (and (not top.impl.usr.a!) top.impl.usr.b!) (not top.impl.usr.c!))) (and (and top.impl.usr.a! (not top.impl.usr.b!)) (not top.impl.usr.c!))) (and (and top.impl.usr.a! top.impl.usr.b!) top.impl.usr.c!)) (not (and (and top.impl.usr.a! top.impl.usr.b!) top.impl.usr.c!)))) (not top.res.init_flag!))) +(define-fun prop ((top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.a Bool) (top.impl.usr.b Bool) (top.impl.usr.c Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/steam_boiler_no_arr1.sl b/benchmarks/LIA/Lustre/steam_boiler_no_arr1.sl index dfe82cb..ffbd528 100644 --- a/benchmarks/LIA/Lustre/steam_boiler_no_arr1.sl +++ b/benchmarks/LIA/Lustre/steam_boiler_no_arr1.sl @@ -1,13529 +1,180 @@ (set-logic LIA) -(define-fun - __node_init_AND_0 ( - (AND.usr.a_0_a_0 Bool) - (AND.usr.a_1_a_0 Bool) - (AND.usr.a_2_a_0 Bool) - (AND.usr.a_3_a_0 Bool) - (AND.usr.AND_a_0 Bool) - (AND.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - AND.usr.AND_a_0 - (and (and (and AND.usr.a_0_a_0 AND.usr.a_1_a_0) AND.usr.a_2_a_0) AND.usr.a_3_a_0)) - AND.res.init_flag_a_0) -) - -(define-fun - __node_trans_AND_0 ( - (AND.usr.a_0_a_1 Bool) - (AND.usr.a_1_a_1 Bool) - (AND.usr.a_2_a_1 Bool) - (AND.usr.a_3_a_1 Bool) - (AND.usr.AND_a_1 Bool) - (AND.res.init_flag_a_1 Bool) - (AND.usr.a_0_a_0 Bool) - (AND.usr.a_1_a_0 Bool) - (AND.usr.a_2_a_0 Bool) - (AND.usr.a_3_a_0 Bool) - (AND.usr.AND_a_0 Bool) - (AND.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - AND.usr.AND_a_1 - (and (and (and AND.usr.a_0_a_1 AND.usr.a_1_a_1) AND.usr.a_2_a_1) AND.usr.a_3_a_1)) - (not AND.res.init_flag_a_1)) -) - -(define-fun - __node_init_level_failure_0 ( - (level_failure.usr.level_defect_a_0 Int) - (level_failure.usr.level_failure_a_0 Bool) - (level_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - level_failure.usr.level_failure_a_0 - (not (= level_failure.usr.level_defect_a_0 0))) - level_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_level_failure_0 ( - (level_failure.usr.level_defect_a_1 Int) - (level_failure.usr.level_failure_a_1 Bool) - (level_failure.res.init_flag_a_1 Bool) - (level_failure.usr.level_defect_a_0 Int) - (level_failure.usr.level_failure_a_0 Bool) - (level_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - level_failure.usr.level_failure_a_1 - (not (= level_failure.usr.level_defect_a_1 0))) - (not level_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_steam_failure_0 ( - (steam_failure.usr.steam_defect_a_0 Int) - (steam_failure.usr.steam_failure_a_0 Bool) - (steam_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - steam_failure.usr.steam_failure_a_0 - (not (= steam_failure.usr.steam_defect_a_0 0))) - steam_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_steam_failure_0 ( - (steam_failure.usr.steam_defect_a_1 Int) - (steam_failure.usr.steam_failure_a_1 Bool) - (steam_failure.res.init_flag_a_1 Bool) - (steam_failure.usr.steam_defect_a_0 Int) - (steam_failure.usr.steam_failure_a_0 Bool) - (steam_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - steam_failure.usr.steam_failure_a_1 - (not (= steam_failure.usr.steam_defect_a_1 0))) - (not steam_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_OR_0 ( - (OR.usr.a_0_a_0 Bool) - (OR.usr.a_1_a_0 Bool) - (OR.usr.a_2_a_0 Bool) - (OR.usr.a_3_a_0 Bool) - (OR.usr.OR_a_0 Bool) - (OR.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - OR.usr.OR_a_0 - (or (or (or OR.usr.a_0_a_0 OR.usr.a_1_a_0) OR.usr.a_2_a_0) OR.usr.a_3_a_0)) - OR.res.init_flag_a_0) -) - -(define-fun - __node_trans_OR_0 ( - (OR.usr.a_0_a_1 Bool) - (OR.usr.a_1_a_1 Bool) - (OR.usr.a_2_a_1 Bool) - (OR.usr.a_3_a_1 Bool) - (OR.usr.OR_a_1 Bool) - (OR.res.init_flag_a_1 Bool) - (OR.usr.a_0_a_0 Bool) - (OR.usr.a_1_a_0 Bool) - (OR.usr.a_2_a_0 Bool) - (OR.usr.a_3_a_0 Bool) - (OR.usr.OR_a_0 Bool) - (OR.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - OR.usr.OR_a_1 - (or (or (or OR.usr.a_0_a_1 OR.usr.a_1_a_1) OR.usr.a_2_a_1) OR.usr.a_3_a_1)) - (not OR.res.init_flag_a_1)) -) - -(define-fun - __node_init_pump_control_failure_0 ( - (pump_control_failure.usr.pump_defect_a_0 Int) - (pump_control_failure.usr.pump_failure_a_0 Bool) - (pump_control_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - pump_control_failure.usr.pump_failure_a_0 - (not (= pump_control_failure.usr.pump_defect_a_0 0))) - pump_control_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_pump_control_failure_0 ( - (pump_control_failure.usr.pump_defect_a_1 Int) - (pump_control_failure.usr.pump_failure_a_1 Bool) - (pump_control_failure.res.init_flag_a_1 Bool) - (pump_control_failure.usr.pump_defect_a_0 Int) - (pump_control_failure.usr.pump_failure_a_0 Bool) - (pump_control_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - pump_control_failure.usr.pump_failure_a_1 - (not (= pump_control_failure.usr.pump_defect_a_1 0))) - (not pump_control_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_pump_failure_0 ( - (pump_failure.usr.pump_defect_a_0 Int) - (pump_failure.usr.pump_failure_a_0 Bool) - (pump_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - pump_failure.usr.pump_failure_a_0 - (not (= pump_failure.usr.pump_defect_a_0 0))) - pump_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_pump_failure_0 ( - (pump_failure.usr.pump_defect_a_1 Int) - (pump_failure.usr.pump_failure_a_1 Bool) - (pump_failure.res.init_flag_a_1 Bool) - (pump_failure.usr.pump_defect_a_0 Int) - (pump_failure.usr.pump_failure_a_0 Bool) - (pump_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - pump_failure.usr.pump_failure_a_1 - (not (= pump_failure.usr.pump_defect_a_1 0))) - (not pump_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_failure_0 ( - (failure.usr.level_defect_a_0 Int) - (failure.usr.steam_defect_a_0 Int) - (failure.usr.pump_defect_0_a_0 Int) - (failure.usr.pump_defect_1_a_0 Int) - (failure.usr.pump_defect_2_a_0 Int) - (failure.usr.pump_defect_3_a_0 Int) - (failure.usr.pump_control_defect_0_a_0 Int) - (failure.usr.pump_control_defect_1_a_0 Int) - (failure.usr.pump_control_defect_2_a_0 Int) - (failure.usr.pump_control_defect_3_a_0 Int) - (failure.usr.failure_a_0 Bool) - (failure.res.init_flag_a_0 Bool) - (failure.res.abs_0_a_0 Bool) - (failure.res.abs_1_a_0 Bool) - (failure.res.abs_2_a_0 Bool) - (failure.res.abs_3_a_0 Bool) - (failure.res.abs_4_a_0 Bool) - (failure.res.abs_5_a_0 Bool) - (failure.res.abs_6_a_0 Bool) - (failure.res.abs_7_a_0 Bool) - (failure.res.abs_8_a_0 Bool) - (failure.res.abs_9_a_0 Bool) - (failure.res.abs_10_a_0 Bool) - (failure.res.abs_11_a_0 Bool) - (failure.res.inst_11_a_0 Bool) - (failure.res.inst_10_a_0 Bool) - (failure.res.inst_9_a_0 Bool) - (failure.res.inst_8_a_0 Bool) - (failure.res.inst_7_a_0 Bool) - (failure.res.inst_6_a_0 Bool) - (failure.res.inst_5_a_0 Bool) - (failure.res.inst_4_a_0 Bool) - (failure.res.inst_3_a_0 Bool) - (failure.res.inst_2_a_0 Bool) - (failure.res.inst_1_a_0 Bool) - (failure.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - failure.usr.failure_a_0 - (or - (or (or failure.res.abs_0_a_0 failure.res.abs_1_a_0) failure.res.abs_6_a_0) - failure.res.abs_11_a_0)) - (__node_init_level_failure_0 - failure.usr.level_defect_a_0 - failure.res.abs_0_a_0 - failure.res.inst_11_a_0) - (__node_init_steam_failure_0 - failure.usr.steam_defect_a_0 - failure.res.abs_1_a_0 - failure.res.inst_10_a_0) - (__node_init_OR_0 - failure.res.abs_2_a_0 - failure.res.abs_3_a_0 - failure.res.abs_4_a_0 - failure.res.abs_5_a_0 - failure.res.abs_6_a_0 - failure.res.inst_9_a_0) - (__node_init_pump_failure_0 - failure.usr.pump_defect_0_a_0 - failure.res.abs_2_a_0 - failure.res.inst_8_a_0) - (__node_init_pump_failure_0 - failure.usr.pump_defect_1_a_0 - failure.res.abs_3_a_0 - failure.res.inst_7_a_0) - (__node_init_pump_failure_0 - failure.usr.pump_defect_2_a_0 - failure.res.abs_4_a_0 - failure.res.inst_6_a_0) - (__node_init_pump_failure_0 - failure.usr.pump_defect_3_a_0 - failure.res.abs_5_a_0 - failure.res.inst_5_a_0) - (__node_init_OR_0 - failure.res.abs_7_a_0 - failure.res.abs_8_a_0 - failure.res.abs_9_a_0 - failure.res.abs_10_a_0 - failure.res.abs_11_a_0 - failure.res.inst_4_a_0) - (__node_init_pump_control_failure_0 - failure.usr.pump_control_defect_0_a_0 - failure.res.abs_7_a_0 - failure.res.inst_3_a_0) - (__node_init_pump_control_failure_0 - failure.usr.pump_control_defect_1_a_0 - failure.res.abs_8_a_0 - failure.res.inst_2_a_0) - (__node_init_pump_control_failure_0 - failure.usr.pump_control_defect_2_a_0 - failure.res.abs_9_a_0 - failure.res.inst_1_a_0) - (__node_init_pump_control_failure_0 - failure.usr.pump_control_defect_3_a_0 - failure.res.abs_10_a_0 - failure.res.inst_0_a_0) - failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_failure_0 ( - (failure.usr.level_defect_a_1 Int) - (failure.usr.steam_defect_a_1 Int) - (failure.usr.pump_defect_0_a_1 Int) - (failure.usr.pump_defect_1_a_1 Int) - (failure.usr.pump_defect_2_a_1 Int) - (failure.usr.pump_defect_3_a_1 Int) - (failure.usr.pump_control_defect_0_a_1 Int) - (failure.usr.pump_control_defect_1_a_1 Int) - (failure.usr.pump_control_defect_2_a_1 Int) - (failure.usr.pump_control_defect_3_a_1 Int) - (failure.usr.failure_a_1 Bool) - (failure.res.init_flag_a_1 Bool) - (failure.res.abs_0_a_1 Bool) - (failure.res.abs_1_a_1 Bool) - (failure.res.abs_2_a_1 Bool) - (failure.res.abs_3_a_1 Bool) - (failure.res.abs_4_a_1 Bool) - (failure.res.abs_5_a_1 Bool) - (failure.res.abs_6_a_1 Bool) - (failure.res.abs_7_a_1 Bool) - (failure.res.abs_8_a_1 Bool) - (failure.res.abs_9_a_1 Bool) - (failure.res.abs_10_a_1 Bool) - (failure.res.abs_11_a_1 Bool) - (failure.res.inst_11_a_1 Bool) - (failure.res.inst_10_a_1 Bool) - (failure.res.inst_9_a_1 Bool) - (failure.res.inst_8_a_1 Bool) - (failure.res.inst_7_a_1 Bool) - (failure.res.inst_6_a_1 Bool) - (failure.res.inst_5_a_1 Bool) - (failure.res.inst_4_a_1 Bool) - (failure.res.inst_3_a_1 Bool) - (failure.res.inst_2_a_1 Bool) - (failure.res.inst_1_a_1 Bool) - (failure.res.inst_0_a_1 Bool) - (failure.usr.level_defect_a_0 Int) - (failure.usr.steam_defect_a_0 Int) - (failure.usr.pump_defect_0_a_0 Int) - (failure.usr.pump_defect_1_a_0 Int) - (failure.usr.pump_defect_2_a_0 Int) - (failure.usr.pump_defect_3_a_0 Int) - (failure.usr.pump_control_defect_0_a_0 Int) - (failure.usr.pump_control_defect_1_a_0 Int) - (failure.usr.pump_control_defect_2_a_0 Int) - (failure.usr.pump_control_defect_3_a_0 Int) - (failure.usr.failure_a_0 Bool) - (failure.res.init_flag_a_0 Bool) - (failure.res.abs_0_a_0 Bool) - (failure.res.abs_1_a_0 Bool) - (failure.res.abs_2_a_0 Bool) - (failure.res.abs_3_a_0 Bool) - (failure.res.abs_4_a_0 Bool) - (failure.res.abs_5_a_0 Bool) - (failure.res.abs_6_a_0 Bool) - (failure.res.abs_7_a_0 Bool) - (failure.res.abs_8_a_0 Bool) - (failure.res.abs_9_a_0 Bool) - (failure.res.abs_10_a_0 Bool) - (failure.res.abs_11_a_0 Bool) - (failure.res.inst_11_a_0 Bool) - (failure.res.inst_10_a_0 Bool) - (failure.res.inst_9_a_0 Bool) - (failure.res.inst_8_a_0 Bool) - (failure.res.inst_7_a_0 Bool) - (failure.res.inst_6_a_0 Bool) - (failure.res.inst_5_a_0 Bool) - (failure.res.inst_4_a_0 Bool) - (failure.res.inst_3_a_0 Bool) - (failure.res.inst_2_a_0 Bool) - (failure.res.inst_1_a_0 Bool) - (failure.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - failure.usr.failure_a_1 - (or - (or (or failure.res.abs_0_a_1 failure.res.abs_1_a_1) failure.res.abs_6_a_1) - failure.res.abs_11_a_1)) - (__node_trans_level_failure_0 - failure.usr.level_defect_a_1 - failure.res.abs_0_a_1 - failure.res.inst_11_a_1 - failure.usr.level_defect_a_0 - failure.res.abs_0_a_0 - failure.res.inst_11_a_0) - (__node_trans_steam_failure_0 - failure.usr.steam_defect_a_1 - failure.res.abs_1_a_1 - failure.res.inst_10_a_1 - failure.usr.steam_defect_a_0 - failure.res.abs_1_a_0 - failure.res.inst_10_a_0) - (__node_trans_OR_0 - failure.res.abs_2_a_1 - failure.res.abs_3_a_1 - failure.res.abs_4_a_1 - failure.res.abs_5_a_1 - failure.res.abs_6_a_1 - failure.res.inst_9_a_1 - failure.res.abs_2_a_0 - failure.res.abs_3_a_0 - failure.res.abs_4_a_0 - failure.res.abs_5_a_0 - failure.res.abs_6_a_0 - failure.res.inst_9_a_0) - (__node_trans_pump_failure_0 - failure.usr.pump_defect_0_a_1 - failure.res.abs_2_a_1 - failure.res.inst_8_a_1 - failure.usr.pump_defect_0_a_0 - failure.res.abs_2_a_0 - failure.res.inst_8_a_0) - (__node_trans_pump_failure_0 - failure.usr.pump_defect_1_a_1 - failure.res.abs_3_a_1 - failure.res.inst_7_a_1 - failure.usr.pump_defect_1_a_0 - failure.res.abs_3_a_0 - failure.res.inst_7_a_0) - (__node_trans_pump_failure_0 - failure.usr.pump_defect_2_a_1 - failure.res.abs_4_a_1 - failure.res.inst_6_a_1 - failure.usr.pump_defect_2_a_0 - failure.res.abs_4_a_0 - failure.res.inst_6_a_0) - (__node_trans_pump_failure_0 - failure.usr.pump_defect_3_a_1 - failure.res.abs_5_a_1 - failure.res.inst_5_a_1 - failure.usr.pump_defect_3_a_0 - failure.res.abs_5_a_0 - failure.res.inst_5_a_0) - (__node_trans_OR_0 - failure.res.abs_7_a_1 - failure.res.abs_8_a_1 - failure.res.abs_9_a_1 - failure.res.abs_10_a_1 - failure.res.abs_11_a_1 - failure.res.inst_4_a_1 - failure.res.abs_7_a_0 - failure.res.abs_8_a_0 - failure.res.abs_9_a_0 - failure.res.abs_10_a_0 - failure.res.abs_11_a_0 - failure.res.inst_4_a_0) - (__node_trans_pump_control_failure_0 - failure.usr.pump_control_defect_0_a_1 - failure.res.abs_7_a_1 - failure.res.inst_3_a_1 - failure.usr.pump_control_defect_0_a_0 - failure.res.abs_7_a_0 - failure.res.inst_3_a_0) - (__node_trans_pump_control_failure_0 - failure.usr.pump_control_defect_1_a_1 - failure.res.abs_8_a_1 - failure.res.inst_2_a_1 - failure.usr.pump_control_defect_1_a_0 - failure.res.abs_8_a_0 - failure.res.inst_2_a_0) - (__node_trans_pump_control_failure_0 - failure.usr.pump_control_defect_2_a_1 - failure.res.abs_9_a_1 - failure.res.inst_1_a_1 - failure.usr.pump_control_defect_2_a_0 - failure.res.abs_9_a_0 - failure.res.inst_1_a_0) - (__node_trans_pump_control_failure_0 - failure.usr.pump_control_defect_3_a_1 - failure.res.abs_10_a_1 - failure.res.inst_0_a_1 - failure.usr.pump_control_defect_3_a_0 - failure.res.abs_10_a_0 - failure.res.inst_0_a_0) - (not failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_steam_failure_startup_0 ( - (steam_failure_startup.usr.steam_a_0 Int) - (steam_failure_startup.usr.steam_failure_startup_a_0 Bool) - (steam_failure_startup.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - steam_failure_startup.usr.steam_failure_startup_a_0 - (not (= steam_failure_startup.usr.steam_a_0 0))) - steam_failure_startup.res.init_flag_a_0) -) - -(define-fun - __node_trans_steam_failure_startup_0 ( - (steam_failure_startup.usr.steam_a_1 Int) - (steam_failure_startup.usr.steam_failure_startup_a_1 Bool) - (steam_failure_startup.res.init_flag_a_1 Bool) - (steam_failure_startup.usr.steam_a_0 Int) - (steam_failure_startup.usr.steam_failure_startup_a_0 Bool) - (steam_failure_startup.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - steam_failure_startup.usr.steam_failure_startup_a_1 - (not (= steam_failure_startup.usr.steam_a_1 0))) - (not steam_failure_startup.res.init_flag_a_1)) -) - -(define-fun - __node_init_dangerous_level_0 ( - (dangerous_level.usr.q_a_0 Int) - (dangerous_level.usr.dangerous_level_a_0 Bool) - (dangerous_level.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - dangerous_level.usr.dangerous_level_a_0 - (or (<= dangerous_level.usr.q_a_0 150) (>= dangerous_level.usr.q_a_0 850))) - dangerous_level.res.init_flag_a_0) -) - -(define-fun - __node_trans_dangerous_level_0 ( - (dangerous_level.usr.q_a_1 Int) - (dangerous_level.usr.dangerous_level_a_1 Bool) - (dangerous_level.res.init_flag_a_1 Bool) - (dangerous_level.usr.q_a_0 Int) - (dangerous_level.usr.dangerous_level_a_0 Bool) - (dangerous_level.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - dangerous_level.usr.dangerous_level_a_1 - (or (<= dangerous_level.usr.q_a_1 150) (>= dangerous_level.usr.q_a_1 850))) - (not dangerous_level.res.init_flag_a_1)) -) - -(define-fun - __node_init_transmission_failure_0 ( - (transmission_failure.usr.pump_state_0_a_0 Int) - (transmission_failure.usr.pump_state_1_a_0 Int) - (transmission_failure.usr.pump_state_2_a_0 Int) - (transmission_failure.usr.pump_state_3_a_0 Int) - (transmission_failure.usr.transmission_failure_a_0 Bool) - (transmission_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - transmission_failure.usr.transmission_failure_a_0 - (or - (or - (or - (= transmission_failure.usr.pump_state_0_a_0 3) - (= transmission_failure.usr.pump_state_1_a_0 3)) - (= transmission_failure.usr.pump_state_2_a_0 3)) - (= transmission_failure.usr.pump_state_3_a_0 3))) - transmission_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_transmission_failure_0 ( - (transmission_failure.usr.pump_state_0_a_1 Int) - (transmission_failure.usr.pump_state_1_a_1 Int) - (transmission_failure.usr.pump_state_2_a_1 Int) - (transmission_failure.usr.pump_state_3_a_1 Int) - (transmission_failure.usr.transmission_failure_a_1 Bool) - (transmission_failure.res.init_flag_a_1 Bool) - (transmission_failure.usr.pump_state_0_a_0 Int) - (transmission_failure.usr.pump_state_1_a_0 Int) - (transmission_failure.usr.pump_state_2_a_0 Int) - (transmission_failure.usr.pump_state_3_a_0 Int) - (transmission_failure.usr.transmission_failure_a_0 Bool) - (transmission_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - transmission_failure.usr.transmission_failure_a_1 - (or - (or - (or - (= transmission_failure.usr.pump_state_0_a_1 3) - (= transmission_failure.usr.pump_state_1_a_1 3)) - (= transmission_failure.usr.pump_state_2_a_1 3)) - (= transmission_failure.usr.pump_state_3_a_1 3))) - (not transmission_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_critical_failure_0 ( - (critical_failure.usr.op_mode_a_0 Int) - (critical_failure.usr.steam_a_0 Int) - (critical_failure.usr.level_defect_a_0 Int) - (critical_failure.usr.steam_defect_a_0 Int) - (critical_failure.usr.pump_defect_0_a_0 Int) - (critical_failure.usr.pump_defect_1_a_0 Int) - (critical_failure.usr.pump_defect_2_a_0 Int) - (critical_failure.usr.pump_defect_3_a_0 Int) - (critical_failure.usr.q_a_0 Int) - (critical_failure.usr.pump_state_0_a_0 Int) - (critical_failure.usr.pump_state_1_a_0 Int) - (critical_failure.usr.pump_state_2_a_0 Int) - (critical_failure.usr.pump_state_3_a_0 Int) - (critical_failure.usr.critical_failure_a_0 Bool) - (critical_failure.res.init_flag_a_0 Bool) - (critical_failure.res.abs_0_a_0 Bool) - (critical_failure.res.abs_1_a_0 Bool) - (critical_failure.res.abs_2_a_0 Bool) - (critical_failure.res.abs_3_a_0 Bool) - (critical_failure.res.abs_4_a_0 Bool) - (critical_failure.res.abs_5_a_0 Bool) - (critical_failure.res.abs_6_a_0 Bool) - (critical_failure.res.abs_7_a_0 Bool) - (critical_failure.res.abs_8_a_0 Bool) - (critical_failure.res.abs_9_a_0 Bool) - (critical_failure.res.inst_9_a_0 Bool) - (critical_failure.res.inst_8_a_0 Bool) - (critical_failure.res.inst_7_a_0 Bool) - (critical_failure.res.inst_6_a_0 Bool) - (critical_failure.res.inst_5_a_0 Bool) - (critical_failure.res.inst_4_a_0 Bool) - (critical_failure.res.inst_3_a_0 Bool) - (critical_failure.res.inst_2_a_0 Bool) - (critical_failure.res.inst_1_a_0 Bool) - (critical_failure.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - critical_failure.usr.critical_failure_a_0 - (or - (or - (or - (or - (or - critical_failure.res.abs_0_a_0 - (and - (= critical_failure.usr.op_mode_a_0 1) - critical_failure.res.abs_1_a_0)) - (and - (= critical_failure.usr.op_mode_a_0 2) - (or critical_failure.res.abs_2_a_0 critical_failure.res.abs_3_a_0))) - (and - (= critical_failure.usr.op_mode_a_0 3) - critical_failure.res.abs_4_a_0)) - (and (= critical_failure.usr.op_mode_a_0 4) critical_failure.res.abs_4_a_0)) - (and - (= critical_failure.usr.op_mode_a_0 5) - (or - (or critical_failure.res.abs_4_a_0 critical_failure.res.abs_3_a_0) - critical_failure.res.abs_9_a_0)))) - (__node_init_transmission_failure_0 - critical_failure.usr.pump_state_0_a_0 - critical_failure.usr.pump_state_1_a_0 - critical_failure.usr.pump_state_2_a_0 - critical_failure.usr.pump_state_3_a_0 - critical_failure.res.abs_0_a_0 - critical_failure.res.inst_9_a_0) - (__node_init_steam_failure_startup_0 - critical_failure.usr.steam_a_0 - critical_failure.res.abs_1_a_0 - critical_failure.res.inst_8_a_0) - (__node_init_level_failure_0 - critical_failure.usr.level_defect_a_0 - critical_failure.res.abs_2_a_0 - critical_failure.res.inst_7_a_0) - (__node_init_steam_failure_0 - critical_failure.usr.steam_defect_a_0 - critical_failure.res.abs_3_a_0 - critical_failure.res.inst_6_a_0) - (__node_init_dangerous_level_0 - critical_failure.usr.q_a_0 - critical_failure.res.abs_4_a_0 - critical_failure.res.inst_5_a_0) - (__node_init_AND_0 - critical_failure.res.abs_5_a_0 - critical_failure.res.abs_6_a_0 - critical_failure.res.abs_7_a_0 - critical_failure.res.abs_8_a_0 - critical_failure.res.abs_9_a_0 - critical_failure.res.inst_4_a_0) - (__node_init_pump_failure_0 - critical_failure.usr.pump_defect_0_a_0 - critical_failure.res.abs_5_a_0 - critical_failure.res.inst_3_a_0) - (__node_init_pump_failure_0 - critical_failure.usr.pump_defect_1_a_0 - critical_failure.res.abs_6_a_0 - critical_failure.res.inst_2_a_0) - (__node_init_pump_failure_0 - critical_failure.usr.pump_defect_2_a_0 - critical_failure.res.abs_7_a_0 - critical_failure.res.inst_1_a_0) - (__node_init_pump_failure_0 - critical_failure.usr.pump_defect_3_a_0 - critical_failure.res.abs_8_a_0 - critical_failure.res.inst_0_a_0) - critical_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_critical_failure_0 ( - (critical_failure.usr.op_mode_a_1 Int) - (critical_failure.usr.steam_a_1 Int) - (critical_failure.usr.level_defect_a_1 Int) - (critical_failure.usr.steam_defect_a_1 Int) - (critical_failure.usr.pump_defect_0_a_1 Int) - (critical_failure.usr.pump_defect_1_a_1 Int) - (critical_failure.usr.pump_defect_2_a_1 Int) - (critical_failure.usr.pump_defect_3_a_1 Int) - (critical_failure.usr.q_a_1 Int) - (critical_failure.usr.pump_state_0_a_1 Int) - (critical_failure.usr.pump_state_1_a_1 Int) - (critical_failure.usr.pump_state_2_a_1 Int) - (critical_failure.usr.pump_state_3_a_1 Int) - (critical_failure.usr.critical_failure_a_1 Bool) - (critical_failure.res.init_flag_a_1 Bool) - (critical_failure.res.abs_0_a_1 Bool) - (critical_failure.res.abs_1_a_1 Bool) - (critical_failure.res.abs_2_a_1 Bool) - (critical_failure.res.abs_3_a_1 Bool) - (critical_failure.res.abs_4_a_1 Bool) - (critical_failure.res.abs_5_a_1 Bool) - (critical_failure.res.abs_6_a_1 Bool) - (critical_failure.res.abs_7_a_1 Bool) - (critical_failure.res.abs_8_a_1 Bool) - (critical_failure.res.abs_9_a_1 Bool) - (critical_failure.res.inst_9_a_1 Bool) - (critical_failure.res.inst_8_a_1 Bool) - (critical_failure.res.inst_7_a_1 Bool) - (critical_failure.res.inst_6_a_1 Bool) - (critical_failure.res.inst_5_a_1 Bool) - (critical_failure.res.inst_4_a_1 Bool) - (critical_failure.res.inst_3_a_1 Bool) - (critical_failure.res.inst_2_a_1 Bool) - (critical_failure.res.inst_1_a_1 Bool) - (critical_failure.res.inst_0_a_1 Bool) - (critical_failure.usr.op_mode_a_0 Int) - (critical_failure.usr.steam_a_0 Int) - (critical_failure.usr.level_defect_a_0 Int) - (critical_failure.usr.steam_defect_a_0 Int) - (critical_failure.usr.pump_defect_0_a_0 Int) - (critical_failure.usr.pump_defect_1_a_0 Int) - (critical_failure.usr.pump_defect_2_a_0 Int) - (critical_failure.usr.pump_defect_3_a_0 Int) - (critical_failure.usr.q_a_0 Int) - (critical_failure.usr.pump_state_0_a_0 Int) - (critical_failure.usr.pump_state_1_a_0 Int) - (critical_failure.usr.pump_state_2_a_0 Int) - (critical_failure.usr.pump_state_3_a_0 Int) - (critical_failure.usr.critical_failure_a_0 Bool) - (critical_failure.res.init_flag_a_0 Bool) - (critical_failure.res.abs_0_a_0 Bool) - (critical_failure.res.abs_1_a_0 Bool) - (critical_failure.res.abs_2_a_0 Bool) - (critical_failure.res.abs_3_a_0 Bool) - (critical_failure.res.abs_4_a_0 Bool) - (critical_failure.res.abs_5_a_0 Bool) - (critical_failure.res.abs_6_a_0 Bool) - (critical_failure.res.abs_7_a_0 Bool) - (critical_failure.res.abs_8_a_0 Bool) - (critical_failure.res.abs_9_a_0 Bool) - (critical_failure.res.inst_9_a_0 Bool) - (critical_failure.res.inst_8_a_0 Bool) - (critical_failure.res.inst_7_a_0 Bool) - (critical_failure.res.inst_6_a_0 Bool) - (critical_failure.res.inst_5_a_0 Bool) - (critical_failure.res.inst_4_a_0 Bool) - (critical_failure.res.inst_3_a_0 Bool) - (critical_failure.res.inst_2_a_0 Bool) - (critical_failure.res.inst_1_a_0 Bool) - (critical_failure.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - critical_failure.usr.critical_failure_a_1 - (or - (or - (or - (or - (or - critical_failure.res.abs_0_a_1 - (and - (= critical_failure.usr.op_mode_a_1 1) - critical_failure.res.abs_1_a_1)) - (and - (= critical_failure.usr.op_mode_a_1 2) - (or critical_failure.res.abs_2_a_1 critical_failure.res.abs_3_a_1))) - (and - (= critical_failure.usr.op_mode_a_1 3) - critical_failure.res.abs_4_a_1)) - (and (= critical_failure.usr.op_mode_a_1 4) critical_failure.res.abs_4_a_1)) - (and - (= critical_failure.usr.op_mode_a_1 5) - (or - (or critical_failure.res.abs_4_a_1 critical_failure.res.abs_3_a_1) - critical_failure.res.abs_9_a_1)))) - (__node_trans_transmission_failure_0 - critical_failure.usr.pump_state_0_a_1 - critical_failure.usr.pump_state_1_a_1 - critical_failure.usr.pump_state_2_a_1 - critical_failure.usr.pump_state_3_a_1 - critical_failure.res.abs_0_a_1 - critical_failure.res.inst_9_a_1 - critical_failure.usr.pump_state_0_a_0 - critical_failure.usr.pump_state_1_a_0 - critical_failure.usr.pump_state_2_a_0 - critical_failure.usr.pump_state_3_a_0 - critical_failure.res.abs_0_a_0 - critical_failure.res.inst_9_a_0) - (__node_trans_steam_failure_startup_0 - critical_failure.usr.steam_a_1 - critical_failure.res.abs_1_a_1 - critical_failure.res.inst_8_a_1 - critical_failure.usr.steam_a_0 - critical_failure.res.abs_1_a_0 - critical_failure.res.inst_8_a_0) - (__node_trans_level_failure_0 - critical_failure.usr.level_defect_a_1 - critical_failure.res.abs_2_a_1 - critical_failure.res.inst_7_a_1 - critical_failure.usr.level_defect_a_0 - critical_failure.res.abs_2_a_0 - critical_failure.res.inst_7_a_0) - (__node_trans_steam_failure_0 - critical_failure.usr.steam_defect_a_1 - critical_failure.res.abs_3_a_1 - critical_failure.res.inst_6_a_1 - critical_failure.usr.steam_defect_a_0 - critical_failure.res.abs_3_a_0 - critical_failure.res.inst_6_a_0) - (__node_trans_dangerous_level_0 - critical_failure.usr.q_a_1 - critical_failure.res.abs_4_a_1 - critical_failure.res.inst_5_a_1 - critical_failure.usr.q_a_0 - critical_failure.res.abs_4_a_0 - critical_failure.res.inst_5_a_0) - (__node_trans_AND_0 - critical_failure.res.abs_5_a_1 - critical_failure.res.abs_6_a_1 - critical_failure.res.abs_7_a_1 - critical_failure.res.abs_8_a_1 - critical_failure.res.abs_9_a_1 - critical_failure.res.inst_4_a_1 - critical_failure.res.abs_5_a_0 - critical_failure.res.abs_6_a_0 - critical_failure.res.abs_7_a_0 - critical_failure.res.abs_8_a_0 - critical_failure.res.abs_9_a_0 - critical_failure.res.inst_4_a_0) - (__node_trans_pump_failure_0 - critical_failure.usr.pump_defect_0_a_1 - critical_failure.res.abs_5_a_1 - critical_failure.res.inst_3_a_1 - critical_failure.usr.pump_defect_0_a_0 - critical_failure.res.abs_5_a_0 - critical_failure.res.inst_3_a_0) - (__node_trans_pump_failure_0 - critical_failure.usr.pump_defect_1_a_1 - critical_failure.res.abs_6_a_1 - critical_failure.res.inst_2_a_1 - critical_failure.usr.pump_defect_1_a_0 - critical_failure.res.abs_6_a_0 - critical_failure.res.inst_2_a_0) - (__node_trans_pump_failure_0 - critical_failure.usr.pump_defect_2_a_1 - critical_failure.res.abs_7_a_1 - critical_failure.res.inst_1_a_1 - critical_failure.usr.pump_defect_2_a_0 - critical_failure.res.abs_7_a_0 - critical_failure.res.inst_1_a_0) - (__node_trans_pump_failure_0 - critical_failure.usr.pump_defect_3_a_1 - critical_failure.res.abs_8_a_1 - critical_failure.res.inst_0_a_1 - critical_failure.usr.pump_defect_3_a_0 - critical_failure.res.abs_8_a_0 - critical_failure.res.inst_0_a_0) - (not critical_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_ControlMode_0 ( - (ControlMode.usr.steam_boiler_waiting_a_0 Bool) - (ControlMode.usr.physical_units_ready_a_0 Bool) - (ControlMode.usr.stop_request_a_0 Bool) - (ControlMode.usr.steam_a_0 Int) - (ControlMode.usr.level_defect_a_0 Int) - (ControlMode.usr.steam_defect_a_0 Int) - (ControlMode.usr.pump_defect_0_a_0 Int) - (ControlMode.usr.pump_defect_1_a_0 Int) - (ControlMode.usr.pump_defect_2_a_0 Int) - (ControlMode.usr.pump_defect_3_a_0 Int) - (ControlMode.usr.pump_control_defect_0_a_0 Int) - (ControlMode.usr.pump_control_defect_1_a_0 Int) - (ControlMode.usr.pump_control_defect_2_a_0 Int) - (ControlMode.usr.pump_control_defect_3_a_0 Int) - (ControlMode.usr.q_a_0 Int) - (ControlMode.usr.pump_state_0_a_0 Int) - (ControlMode.usr.pump_state_1_a_0 Int) - (ControlMode.usr.pump_state_2_a_0 Int) - (ControlMode.usr.pump_state_3_a_0 Int) - (ControlMode.res.nondet_0 Int) - (ControlMode.usr.op_mode_a_0 Int) - (ControlMode.res.init_flag_a_0 Bool) - (ControlMode.res.abs_0_a_0 Int) - (ControlMode.res.abs_1_a_0 Bool) - (ControlMode.res.abs_2_a_0 Bool) - (ControlMode.res.abs_3_a_0 Bool) - (ControlMode.res.inst_46_a_0 Bool) - (ControlMode.res.inst_45_a_0 Bool) - (ControlMode.res.inst_44_a_0 Bool) - (ControlMode.res.inst_43_a_0 Bool) - (ControlMode.res.inst_42_a_0 Bool) - (ControlMode.res.inst_41_a_0 Bool) - (ControlMode.res.inst_40_a_0 Bool) - (ControlMode.res.inst_39_a_0 Bool) - (ControlMode.res.inst_38_a_0 Bool) - (ControlMode.res.inst_37_a_0 Bool) - (ControlMode.res.inst_36_a_0 Bool) - (ControlMode.res.inst_35_a_0 Bool) - (ControlMode.res.inst_34_a_0 Bool) - (ControlMode.res.inst_33_a_0 Bool) - (ControlMode.res.inst_32_a_0 Bool) - (ControlMode.res.inst_31_a_0 Bool) - (ControlMode.res.inst_30_a_0 Bool) - (ControlMode.res.inst_29_a_0 Bool) - (ControlMode.res.inst_28_a_0 Bool) - (ControlMode.res.inst_27_a_0 Bool) - (ControlMode.res.inst_26_a_0 Bool) - (ControlMode.res.inst_25_a_0 Bool) - (ControlMode.res.inst_24_a_0 Bool) - (ControlMode.res.inst_23_a_0 Bool) - (ControlMode.res.inst_22_a_0 Bool) - (ControlMode.res.inst_21_a_0 Bool) - (ControlMode.res.inst_20_a_0 Bool) - (ControlMode.res.inst_19_a_0 Bool) - (ControlMode.res.inst_18_a_0 Bool) - (ControlMode.res.inst_17_a_0 Bool) - (ControlMode.res.inst_16_a_0 Bool) - (ControlMode.res.inst_15_a_0 Bool) - (ControlMode.res.inst_14_a_0 Bool) - (ControlMode.res.inst_13_a_0 Bool) - (ControlMode.res.inst_12_a_0 Bool) - (ControlMode.res.inst_11_a_0 Bool) - (ControlMode.res.inst_10_a_0 Bool) - (ControlMode.res.inst_9_a_0 Bool) - (ControlMode.res.inst_8_a_0 Bool) - (ControlMode.res.inst_7_a_0 Bool) - (ControlMode.res.inst_6_a_0 Bool) - (ControlMode.res.inst_5_a_0 Bool) - (ControlMode.res.inst_4_a_0 Bool) - (ControlMode.res.inst_3_a_0 Bool) - (ControlMode.res.inst_2_a_0 Bool) - (ControlMode.res.inst_1_a_0 Bool) - (ControlMode.res.inst_0_a_0 Bool) - ) Bool - - (and - (= ControlMode.usr.op_mode_a_0 1) - (= ControlMode.res.abs_0_a_0 (let ((X1 Int ControlMode.res.nondet_0)) X1)) - (__node_init_critical_failure_0 - ControlMode.res.abs_0_a_0 - ControlMode.usr.steam_a_0 - ControlMode.usr.level_defect_a_0 - ControlMode.usr.steam_defect_a_0 - ControlMode.usr.pump_defect_0_a_0 - ControlMode.usr.pump_defect_1_a_0 - ControlMode.usr.pump_defect_2_a_0 - ControlMode.usr.pump_defect_3_a_0 - ControlMode.usr.q_a_0 - ControlMode.usr.pump_state_0_a_0 - ControlMode.usr.pump_state_1_a_0 - ControlMode.usr.pump_state_2_a_0 - ControlMode.usr.pump_state_3_a_0 - ControlMode.res.abs_1_a_0 - ControlMode.res.inst_46_a_0 - ControlMode.res.inst_45_a_0 - ControlMode.res.inst_44_a_0 - ControlMode.res.inst_43_a_0 - ControlMode.res.inst_42_a_0 - ControlMode.res.inst_41_a_0 - ControlMode.res.inst_40_a_0 - ControlMode.res.inst_39_a_0 - ControlMode.res.inst_38_a_0 - ControlMode.res.inst_37_a_0 - ControlMode.res.inst_36_a_0 - ControlMode.res.inst_35_a_0 - ControlMode.res.inst_34_a_0 - ControlMode.res.inst_33_a_0 - ControlMode.res.inst_32_a_0 - ControlMode.res.inst_31_a_0 - ControlMode.res.inst_30_a_0 - ControlMode.res.inst_29_a_0 - ControlMode.res.inst_28_a_0 - ControlMode.res.inst_27_a_0 - ControlMode.res.inst_26_a_0) - (__node_init_level_failure_0 - ControlMode.usr.level_defect_a_0 - ControlMode.res.abs_2_a_0 - ControlMode.res.inst_25_a_0) - (__node_init_failure_0 - ControlMode.usr.level_defect_a_0 - ControlMode.usr.steam_defect_a_0 - ControlMode.usr.pump_defect_0_a_0 - ControlMode.usr.pump_defect_1_a_0 - ControlMode.usr.pump_defect_2_a_0 - ControlMode.usr.pump_defect_3_a_0 - ControlMode.usr.pump_control_defect_0_a_0 - ControlMode.usr.pump_control_defect_1_a_0 - ControlMode.usr.pump_control_defect_2_a_0 - ControlMode.usr.pump_control_defect_3_a_0 - ControlMode.res.abs_3_a_0 - ControlMode.res.inst_24_a_0 - ControlMode.res.inst_23_a_0 - ControlMode.res.inst_22_a_0 - ControlMode.res.inst_21_a_0 - ControlMode.res.inst_20_a_0 - ControlMode.res.inst_19_a_0 - ControlMode.res.inst_18_a_0 - ControlMode.res.inst_17_a_0 - ControlMode.res.inst_16_a_0 - ControlMode.res.inst_15_a_0 - ControlMode.res.inst_14_a_0 - ControlMode.res.inst_13_a_0 - ControlMode.res.inst_12_a_0 - ControlMode.res.inst_11_a_0 - ControlMode.res.inst_10_a_0 - ControlMode.res.inst_9_a_0 - ControlMode.res.inst_8_a_0 - ControlMode.res.inst_7_a_0 - ControlMode.res.inst_6_a_0 - ControlMode.res.inst_5_a_0 - ControlMode.res.inst_4_a_0 - ControlMode.res.inst_3_a_0 - ControlMode.res.inst_2_a_0 - ControlMode.res.inst_1_a_0 - ControlMode.res.inst_0_a_0) - (<= 1 ControlMode.usr.op_mode_a_0 6) - ControlMode.res.init_flag_a_0) -) - -(define-fun - __node_trans_ControlMode_0 ( - (ControlMode.usr.steam_boiler_waiting_a_1 Bool) - (ControlMode.usr.physical_units_ready_a_1 Bool) - (ControlMode.usr.stop_request_a_1 Bool) - (ControlMode.usr.steam_a_1 Int) - (ControlMode.usr.level_defect_a_1 Int) - (ControlMode.usr.steam_defect_a_1 Int) - (ControlMode.usr.pump_defect_0_a_1 Int) - (ControlMode.usr.pump_defect_1_a_1 Int) - (ControlMode.usr.pump_defect_2_a_1 Int) - (ControlMode.usr.pump_defect_3_a_1 Int) - (ControlMode.usr.pump_control_defect_0_a_1 Int) - (ControlMode.usr.pump_control_defect_1_a_1 Int) - (ControlMode.usr.pump_control_defect_2_a_1 Int) - (ControlMode.usr.pump_control_defect_3_a_1 Int) - (ControlMode.usr.q_a_1 Int) - (ControlMode.usr.pump_state_0_a_1 Int) - (ControlMode.usr.pump_state_1_a_1 Int) - (ControlMode.usr.pump_state_2_a_1 Int) - (ControlMode.usr.pump_state_3_a_1 Int) - (ControlMode.res.nondet_0 Int) - (ControlMode.usr.op_mode_a_1 Int) - (ControlMode.res.init_flag_a_1 Bool) - (ControlMode.res.abs_0_a_1 Int) - (ControlMode.res.abs_1_a_1 Bool) - (ControlMode.res.abs_2_a_1 Bool) - (ControlMode.res.abs_3_a_1 Bool) - (ControlMode.res.inst_46_a_1 Bool) - (ControlMode.res.inst_45_a_1 Bool) - (ControlMode.res.inst_44_a_1 Bool) - (ControlMode.res.inst_43_a_1 Bool) - (ControlMode.res.inst_42_a_1 Bool) - (ControlMode.res.inst_41_a_1 Bool) - (ControlMode.res.inst_40_a_1 Bool) - (ControlMode.res.inst_39_a_1 Bool) - (ControlMode.res.inst_38_a_1 Bool) - (ControlMode.res.inst_37_a_1 Bool) - (ControlMode.res.inst_36_a_1 Bool) - (ControlMode.res.inst_35_a_1 Bool) - (ControlMode.res.inst_34_a_1 Bool) - (ControlMode.res.inst_33_a_1 Bool) - (ControlMode.res.inst_32_a_1 Bool) - (ControlMode.res.inst_31_a_1 Bool) - (ControlMode.res.inst_30_a_1 Bool) - (ControlMode.res.inst_29_a_1 Bool) - (ControlMode.res.inst_28_a_1 Bool) - (ControlMode.res.inst_27_a_1 Bool) - (ControlMode.res.inst_26_a_1 Bool) - (ControlMode.res.inst_25_a_1 Bool) - (ControlMode.res.inst_24_a_1 Bool) - (ControlMode.res.inst_23_a_1 Bool) - (ControlMode.res.inst_22_a_1 Bool) - (ControlMode.res.inst_21_a_1 Bool) - (ControlMode.res.inst_20_a_1 Bool) - (ControlMode.res.inst_19_a_1 Bool) - (ControlMode.res.inst_18_a_1 Bool) - (ControlMode.res.inst_17_a_1 Bool) - (ControlMode.res.inst_16_a_1 Bool) - (ControlMode.res.inst_15_a_1 Bool) - (ControlMode.res.inst_14_a_1 Bool) - (ControlMode.res.inst_13_a_1 Bool) - (ControlMode.res.inst_12_a_1 Bool) - (ControlMode.res.inst_11_a_1 Bool) - (ControlMode.res.inst_10_a_1 Bool) - (ControlMode.res.inst_9_a_1 Bool) - (ControlMode.res.inst_8_a_1 Bool) - (ControlMode.res.inst_7_a_1 Bool) - (ControlMode.res.inst_6_a_1 Bool) - (ControlMode.res.inst_5_a_1 Bool) - (ControlMode.res.inst_4_a_1 Bool) - (ControlMode.res.inst_3_a_1 Bool) - (ControlMode.res.inst_2_a_1 Bool) - (ControlMode.res.inst_1_a_1 Bool) - (ControlMode.res.inst_0_a_1 Bool) - (ControlMode.usr.steam_boiler_waiting_a_0 Bool) - (ControlMode.usr.physical_units_ready_a_0 Bool) - (ControlMode.usr.stop_request_a_0 Bool) - (ControlMode.usr.steam_a_0 Int) - (ControlMode.usr.level_defect_a_0 Int) - (ControlMode.usr.steam_defect_a_0 Int) - (ControlMode.usr.pump_defect_0_a_0 Int) - (ControlMode.usr.pump_defect_1_a_0 Int) - (ControlMode.usr.pump_defect_2_a_0 Int) - (ControlMode.usr.pump_defect_3_a_0 Int) - (ControlMode.usr.pump_control_defect_0_a_0 Int) - (ControlMode.usr.pump_control_defect_1_a_0 Int) - (ControlMode.usr.pump_control_defect_2_a_0 Int) - (ControlMode.usr.pump_control_defect_3_a_0 Int) - (ControlMode.usr.q_a_0 Int) - (ControlMode.usr.pump_state_0_a_0 Int) - (ControlMode.usr.pump_state_1_a_0 Int) - (ControlMode.usr.pump_state_2_a_0 Int) - (ControlMode.usr.pump_state_3_a_0 Int) - (ControlMode.usr.op_mode_a_0 Int) - (ControlMode.res.init_flag_a_0 Bool) - (ControlMode.res.abs_0_a_0 Int) - (ControlMode.res.abs_1_a_0 Bool) - (ControlMode.res.abs_2_a_0 Bool) - (ControlMode.res.abs_3_a_0 Bool) - (ControlMode.res.inst_46_a_0 Bool) - (ControlMode.res.inst_45_a_0 Bool) - (ControlMode.res.inst_44_a_0 Bool) - (ControlMode.res.inst_43_a_0 Bool) - (ControlMode.res.inst_42_a_0 Bool) - (ControlMode.res.inst_41_a_0 Bool) - (ControlMode.res.inst_40_a_0 Bool) - (ControlMode.res.inst_39_a_0 Bool) - (ControlMode.res.inst_38_a_0 Bool) - (ControlMode.res.inst_37_a_0 Bool) - (ControlMode.res.inst_36_a_0 Bool) - (ControlMode.res.inst_35_a_0 Bool) - (ControlMode.res.inst_34_a_0 Bool) - (ControlMode.res.inst_33_a_0 Bool) - (ControlMode.res.inst_32_a_0 Bool) - (ControlMode.res.inst_31_a_0 Bool) - (ControlMode.res.inst_30_a_0 Bool) - (ControlMode.res.inst_29_a_0 Bool) - (ControlMode.res.inst_28_a_0 Bool) - (ControlMode.res.inst_27_a_0 Bool) - (ControlMode.res.inst_26_a_0 Bool) - (ControlMode.res.inst_25_a_0 Bool) - (ControlMode.res.inst_24_a_0 Bool) - (ControlMode.res.inst_23_a_0 Bool) - (ControlMode.res.inst_22_a_0 Bool) - (ControlMode.res.inst_21_a_0 Bool) - (ControlMode.res.inst_20_a_0 Bool) - (ControlMode.res.inst_19_a_0 Bool) - (ControlMode.res.inst_18_a_0 Bool) - (ControlMode.res.inst_17_a_0 Bool) - (ControlMode.res.inst_16_a_0 Bool) - (ControlMode.res.inst_15_a_0 Bool) - (ControlMode.res.inst_14_a_0 Bool) - (ControlMode.res.inst_13_a_0 Bool) - (ControlMode.res.inst_12_a_0 Bool) - (ControlMode.res.inst_11_a_0 Bool) - (ControlMode.res.inst_10_a_0 Bool) - (ControlMode.res.inst_9_a_0 Bool) - (ControlMode.res.inst_8_a_0 Bool) - (ControlMode.res.inst_7_a_0 Bool) - (ControlMode.res.inst_6_a_0 Bool) - (ControlMode.res.inst_5_a_0 Bool) - (ControlMode.res.inst_4_a_0 Bool) - (ControlMode.res.inst_3_a_0 Bool) - (ControlMode.res.inst_2_a_0 Bool) - (ControlMode.res.inst_1_a_0 Bool) - (ControlMode.res.inst_0_a_0 Bool) - ) Bool - - (and - (= ControlMode.res.abs_0_a_1 ControlMode.usr.op_mode_a_0) - (= - ControlMode.usr.op_mode_a_1 - (ite - (or - (or ControlMode.res.abs_1_a_1 ControlMode.usr.stop_request_a_1) - (= ControlMode.usr.op_mode_a_0 6)) - 6 - (ite - (= ControlMode.usr.op_mode_a_0 1) - (ite ControlMode.usr.steam_boiler_waiting_a_1 2 1) - (ite - (and - (= ControlMode.usr.op_mode_a_0 2) - (not ControlMode.usr.physical_units_ready_a_1)) - 2 - (ite ControlMode.res.abs_2_a_1 5 (ite ControlMode.res.abs_3_a_1 4 3)))))) - (__node_trans_critical_failure_0 - ControlMode.res.abs_0_a_1 - ControlMode.usr.steam_a_1 - ControlMode.usr.level_defect_a_1 - ControlMode.usr.steam_defect_a_1 - ControlMode.usr.pump_defect_0_a_1 - ControlMode.usr.pump_defect_1_a_1 - ControlMode.usr.pump_defect_2_a_1 - ControlMode.usr.pump_defect_3_a_1 - ControlMode.usr.q_a_1 - ControlMode.usr.pump_state_0_a_1 - ControlMode.usr.pump_state_1_a_1 - ControlMode.usr.pump_state_2_a_1 - ControlMode.usr.pump_state_3_a_1 - ControlMode.res.abs_1_a_1 - ControlMode.res.inst_46_a_1 - ControlMode.res.inst_45_a_1 - ControlMode.res.inst_44_a_1 - ControlMode.res.inst_43_a_1 - ControlMode.res.inst_42_a_1 - ControlMode.res.inst_41_a_1 - ControlMode.res.inst_40_a_1 - ControlMode.res.inst_39_a_1 - ControlMode.res.inst_38_a_1 - ControlMode.res.inst_37_a_1 - ControlMode.res.inst_36_a_1 - ControlMode.res.inst_35_a_1 - ControlMode.res.inst_34_a_1 - ControlMode.res.inst_33_a_1 - ControlMode.res.inst_32_a_1 - ControlMode.res.inst_31_a_1 - ControlMode.res.inst_30_a_1 - ControlMode.res.inst_29_a_1 - ControlMode.res.inst_28_a_1 - ControlMode.res.inst_27_a_1 - ControlMode.res.inst_26_a_1 - ControlMode.res.abs_0_a_0 - ControlMode.usr.steam_a_0 - ControlMode.usr.level_defect_a_0 - ControlMode.usr.steam_defect_a_0 - ControlMode.usr.pump_defect_0_a_0 - ControlMode.usr.pump_defect_1_a_0 - ControlMode.usr.pump_defect_2_a_0 - ControlMode.usr.pump_defect_3_a_0 - ControlMode.usr.q_a_0 - ControlMode.usr.pump_state_0_a_0 - ControlMode.usr.pump_state_1_a_0 - ControlMode.usr.pump_state_2_a_0 - ControlMode.usr.pump_state_3_a_0 - ControlMode.res.abs_1_a_0 - ControlMode.res.inst_46_a_0 - ControlMode.res.inst_45_a_0 - ControlMode.res.inst_44_a_0 - ControlMode.res.inst_43_a_0 - ControlMode.res.inst_42_a_0 - ControlMode.res.inst_41_a_0 - ControlMode.res.inst_40_a_0 - ControlMode.res.inst_39_a_0 - ControlMode.res.inst_38_a_0 - ControlMode.res.inst_37_a_0 - ControlMode.res.inst_36_a_0 - ControlMode.res.inst_35_a_0 - ControlMode.res.inst_34_a_0 - ControlMode.res.inst_33_a_0 - ControlMode.res.inst_32_a_0 - ControlMode.res.inst_31_a_0 - ControlMode.res.inst_30_a_0 - ControlMode.res.inst_29_a_0 - ControlMode.res.inst_28_a_0 - ControlMode.res.inst_27_a_0 - ControlMode.res.inst_26_a_0) - (__node_trans_level_failure_0 - ControlMode.usr.level_defect_a_1 - ControlMode.res.abs_2_a_1 - ControlMode.res.inst_25_a_1 - ControlMode.usr.level_defect_a_0 - ControlMode.res.abs_2_a_0 - ControlMode.res.inst_25_a_0) - (__node_trans_failure_0 - ControlMode.usr.level_defect_a_1 - ControlMode.usr.steam_defect_a_1 - ControlMode.usr.pump_defect_0_a_1 - ControlMode.usr.pump_defect_1_a_1 - ControlMode.usr.pump_defect_2_a_1 - ControlMode.usr.pump_defect_3_a_1 - ControlMode.usr.pump_control_defect_0_a_1 - ControlMode.usr.pump_control_defect_1_a_1 - ControlMode.usr.pump_control_defect_2_a_1 - ControlMode.usr.pump_control_defect_3_a_1 - ControlMode.res.abs_3_a_1 - ControlMode.res.inst_24_a_1 - ControlMode.res.inst_23_a_1 - ControlMode.res.inst_22_a_1 - ControlMode.res.inst_21_a_1 - ControlMode.res.inst_20_a_1 - ControlMode.res.inst_19_a_1 - ControlMode.res.inst_18_a_1 - ControlMode.res.inst_17_a_1 - ControlMode.res.inst_16_a_1 - ControlMode.res.inst_15_a_1 - ControlMode.res.inst_14_a_1 - ControlMode.res.inst_13_a_1 - ControlMode.res.inst_12_a_1 - ControlMode.res.inst_11_a_1 - ControlMode.res.inst_10_a_1 - ControlMode.res.inst_9_a_1 - ControlMode.res.inst_8_a_1 - ControlMode.res.inst_7_a_1 - ControlMode.res.inst_6_a_1 - ControlMode.res.inst_5_a_1 - ControlMode.res.inst_4_a_1 - ControlMode.res.inst_3_a_1 - ControlMode.res.inst_2_a_1 - ControlMode.res.inst_1_a_1 - ControlMode.res.inst_0_a_1 - ControlMode.usr.level_defect_a_0 - ControlMode.usr.steam_defect_a_0 - ControlMode.usr.pump_defect_0_a_0 - ControlMode.usr.pump_defect_1_a_0 - ControlMode.usr.pump_defect_2_a_0 - ControlMode.usr.pump_defect_3_a_0 - ControlMode.usr.pump_control_defect_0_a_0 - ControlMode.usr.pump_control_defect_1_a_0 - ControlMode.usr.pump_control_defect_2_a_0 - ControlMode.usr.pump_control_defect_3_a_0 - ControlMode.res.abs_3_a_0 - ControlMode.res.inst_24_a_0 - ControlMode.res.inst_23_a_0 - ControlMode.res.inst_22_a_0 - ControlMode.res.inst_21_a_0 - ControlMode.res.inst_20_a_0 - ControlMode.res.inst_19_a_0 - ControlMode.res.inst_18_a_0 - ControlMode.res.inst_17_a_0 - ControlMode.res.inst_16_a_0 - ControlMode.res.inst_15_a_0 - ControlMode.res.inst_14_a_0 - ControlMode.res.inst_13_a_0 - ControlMode.res.inst_12_a_0 - ControlMode.res.inst_11_a_0 - ControlMode.res.inst_10_a_0 - ControlMode.res.inst_9_a_0 - ControlMode.res.inst_8_a_0 - ControlMode.res.inst_7_a_0 - ControlMode.res.inst_6_a_0 - ControlMode.res.inst_5_a_0 - ControlMode.res.inst_4_a_0 - ControlMode.res.inst_3_a_0 - ControlMode.res.inst_2_a_0 - ControlMode.res.inst_1_a_0 - ControlMode.res.inst_0_a_0) - (<= 1 ControlMode.usr.op_mode_a_1 6) - (not ControlMode.res.init_flag_a_1)) -) - -(define-fun - __node_init_level_failure_detect_0 ( - (level_failure_detect.usr.level_a_0 Int) - (level_failure_detect.usr.level_failure_detect_a_0 Bool) - (level_failure_detect.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - level_failure_detect.usr.level_failure_detect_a_0 - (or - (< level_failure_detect.usr.level_a_0 0) - (> level_failure_detect.usr.level_a_0 1000))) - level_failure_detect.res.init_flag_a_0) -) - -(define-fun - __node_trans_level_failure_detect_0 ( - (level_failure_detect.usr.level_a_1 Int) - (level_failure_detect.usr.level_failure_detect_a_1 Bool) - (level_failure_detect.res.init_flag_a_1 Bool) - (level_failure_detect.usr.level_a_0 Int) - (level_failure_detect.usr.level_failure_detect_a_0 Bool) - (level_failure_detect.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - level_failure_detect.usr.level_failure_detect_a_1 - (or - (< level_failure_detect.usr.level_a_1 0) - (> level_failure_detect.usr.level_a_1 1000))) - (not level_failure_detect.res.init_flag_a_1)) -) - -(define-fun - __node_init_Defect_0 ( - (Defect.usr.statein_a_0 Int) - (Defect.usr.fail_cond_a_0 Bool) - (Defect.usr.ack_chan_a_0 Bool) - (Defect.usr.repair_chan_a_0 Bool) - (Defect.usr.stateout_a_0 Int) - (Defect.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - Defect.usr.stateout_a_0 - (ite - (= Defect.usr.statein_a_0 0) - (ite Defect.usr.fail_cond_a_0 1 0) - (ite - (= Defect.usr.statein_a_0 1) - (ite Defect.usr.ack_chan_a_0 2 1) - (ite Defect.usr.repair_chan_a_0 0 2)))) - (<= 0 Defect.usr.stateout_a_0 2) - Defect.res.init_flag_a_0) -) - -(define-fun - __node_trans_Defect_0 ( - (Defect.usr.statein_a_1 Int) - (Defect.usr.fail_cond_a_1 Bool) - (Defect.usr.ack_chan_a_1 Bool) - (Defect.usr.repair_chan_a_1 Bool) - (Defect.usr.stateout_a_1 Int) - (Defect.res.init_flag_a_1 Bool) - (Defect.usr.statein_a_0 Int) - (Defect.usr.fail_cond_a_0 Bool) - (Defect.usr.ack_chan_a_0 Bool) - (Defect.usr.repair_chan_a_0 Bool) - (Defect.usr.stateout_a_0 Int) - (Defect.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - Defect.usr.stateout_a_1 - (ite - (= Defect.usr.statein_a_1 0) - (ite Defect.usr.fail_cond_a_1 1 0) - (ite - (= Defect.usr.statein_a_1 1) - (ite Defect.usr.ack_chan_a_1 2 1) - (ite Defect.usr.repair_chan_a_1 0 2)))) - (<= 0 Defect.usr.stateout_a_1 2) - (not Defect.res.init_flag_a_1)) -) - -(define-fun - __node_init_LevelDefect_0 ( - (LevelDefect.usr.level_failure_acknowledgement_a_0 Bool) - (LevelDefect.usr.level_repaired_a_0 Bool) - (LevelDefect.usr.level_a_0 Int) - (LevelDefect.res.nondet_0 Int) - (LevelDefect.usr.LevelDefect_a_0 Int) - (LevelDefect.res.init_flag_a_0 Bool) - (LevelDefect.res.abs_0_a_0 Bool) - (LevelDefect.res.abs_1_a_0 Int) - (LevelDefect.res.abs_2_a_0 Int) - (LevelDefect.res.inst_1_a_0 Bool) - (LevelDefect.res.inst_0_a_0 Bool) - ) Bool - - (and - (= LevelDefect.usr.LevelDefect_a_0 0) - (= LevelDefect.res.abs_1_a_0 (let ((X1 Int LevelDefect.res.nondet_0)) X1)) - (__node_init_Defect_0 - LevelDefect.res.abs_1_a_0 - LevelDefect.res.abs_0_a_0 - LevelDefect.usr.level_failure_acknowledgement_a_0 - LevelDefect.usr.level_repaired_a_0 - LevelDefect.res.abs_2_a_0 - LevelDefect.res.inst_1_a_0) - (__node_init_level_failure_detect_0 - LevelDefect.usr.level_a_0 - LevelDefect.res.abs_0_a_0 - LevelDefect.res.inst_0_a_0) - (<= 0 LevelDefect.res.abs_2_a_0 2) - (<= 0 LevelDefect.usr.LevelDefect_a_0 2) - LevelDefect.res.init_flag_a_0) -) - -(define-fun - __node_trans_LevelDefect_0 ( - (LevelDefect.usr.level_failure_acknowledgement_a_1 Bool) - (LevelDefect.usr.level_repaired_a_1 Bool) - (LevelDefect.usr.level_a_1 Int) - (LevelDefect.res.nondet_0 Int) - (LevelDefect.usr.LevelDefect_a_1 Int) - (LevelDefect.res.init_flag_a_1 Bool) - (LevelDefect.res.abs_0_a_1 Bool) - (LevelDefect.res.abs_1_a_1 Int) - (LevelDefect.res.abs_2_a_1 Int) - (LevelDefect.res.inst_1_a_1 Bool) - (LevelDefect.res.inst_0_a_1 Bool) - (LevelDefect.usr.level_failure_acknowledgement_a_0 Bool) - (LevelDefect.usr.level_repaired_a_0 Bool) - (LevelDefect.usr.level_a_0 Int) - (LevelDefect.usr.LevelDefect_a_0 Int) - (LevelDefect.res.init_flag_a_0 Bool) - (LevelDefect.res.abs_0_a_0 Bool) - (LevelDefect.res.abs_1_a_0 Int) - (LevelDefect.res.abs_2_a_0 Int) - (LevelDefect.res.inst_1_a_0 Bool) - (LevelDefect.res.inst_0_a_0 Bool) - ) Bool - - (and - (= LevelDefect.res.abs_1_a_1 LevelDefect.usr.LevelDefect_a_0) - (= LevelDefect.usr.LevelDefect_a_1 LevelDefect.res.abs_2_a_1) - (__node_trans_Defect_0 - LevelDefect.res.abs_1_a_1 - LevelDefect.res.abs_0_a_1 - LevelDefect.usr.level_failure_acknowledgement_a_1 - LevelDefect.usr.level_repaired_a_1 - LevelDefect.res.abs_2_a_1 - LevelDefect.res.inst_1_a_1 - LevelDefect.res.abs_1_a_0 - LevelDefect.res.abs_0_a_0 - LevelDefect.usr.level_failure_acknowledgement_a_0 - LevelDefect.usr.level_repaired_a_0 - LevelDefect.res.abs_2_a_0 - LevelDefect.res.inst_1_a_0) - (__node_trans_level_failure_detect_0 - LevelDefect.usr.level_a_1 - LevelDefect.res.abs_0_a_1 - LevelDefect.res.inst_0_a_1 - LevelDefect.usr.level_a_0 - LevelDefect.res.abs_0_a_0 - LevelDefect.res.inst_0_a_0) - (<= 0 LevelDefect.res.abs_2_a_1 2) - (<= 0 LevelDefect.usr.LevelDefect_a_1 2) - (not LevelDefect.res.init_flag_a_1)) -) - -(define-fun - __node_init_operate_pumps_0 ( - (operate_pumps.usr.n_a_0 Int) - (operate_pumps.usr.n_pumps_to_open_a_0 Int) - (operate_pumps.usr.pump_status_0_a_0 Int) - (operate_pumps.usr.pump_status_1_a_0 Int) - (operate_pumps.usr.pump_status_2_a_0 Int) - (operate_pumps.usr.pump_status_3_a_0 Int) - (operate_pumps.usr.pump_defect_0_a_0 Int) - (operate_pumps.usr.pump_defect_1_a_0 Int) - (operate_pumps.usr.pump_defect_2_a_0 Int) - (operate_pumps.usr.pump_defect_3_a_0 Int) - (operate_pumps.usr.flow_0_a_0 Bool) - (operate_pumps.usr.flow_1_a_0 Bool) - (operate_pumps.usr.flow_2_a_0 Bool) - (operate_pumps.usr.flow_3_a_0 Bool) - (operate_pumps.res.nondet_3 Int) - (operate_pumps.res.nondet_2 Int) - (operate_pumps.res.nondet_1 Int) - (operate_pumps.res.nondet_0 Int) - (operate_pumps.usr.operate_pumps_0_a_0 Int) - (operate_pumps.usr.operate_pumps_1_a_0 Int) - (operate_pumps.usr.operate_pumps_2_a_0 Int) - (operate_pumps.usr.operate_pumps_3_a_0 Int) - (operate_pumps.res.init_flag_a_0 Bool) - (operate_pumps.res.abs_0_a_0 Int) - (operate_pumps.res.abs_1_a_0 Bool) - (operate_pumps.res.abs_2_a_0 Int) - (operate_pumps.res.abs_3_a_0 Bool) - (operate_pumps.res.abs_5_a_0 Int) - (operate_pumps.res.abs_6_a_0 Bool) - (operate_pumps.res.abs_7_a_0 Int) - (operate_pumps.res.abs_8_a_0 Bool) - (operate_pumps.res.abs_10_a_0 Int) - (operate_pumps.res.abs_11_a_0 Bool) - (operate_pumps.res.abs_12_a_0 Int) - (operate_pumps.res.abs_13_a_0 Bool) - (operate_pumps.res.abs_15_a_0 Int) - (operate_pumps.res.abs_16_a_0 Bool) - (operate_pumps.res.abs_17_a_0 Int) - (operate_pumps.res.abs_18_a_0 Bool) - (operate_pumps.res.inst_7_a_0 Bool) - (operate_pumps.res.inst_6_a_0 Bool) - (operate_pumps.res.inst_5_a_0 Bool) - (operate_pumps.res.inst_4_a_0 Bool) - (operate_pumps.res.inst_3_a_0 Bool) - (operate_pumps.res.inst_2_a_0 Bool) - (operate_pumps.res.inst_1_a_0 Bool) - (operate_pumps.res.inst_0_a_0 Bool) - ) Bool - - (and - (= operate_pumps.res.abs_2_a_0 operate_pumps.usr.pump_defect_0_a_0) - (= operate_pumps.res.abs_0_a_0 operate_pumps.usr.pump_defect_0_a_0) - (= - operate_pumps.usr.operate_pumps_0_a_0 - (let - ((X1 Int operate_pumps.res.nondet_0)) - (ite - (and - (and - (and - (> operate_pumps.usr.n_pumps_to_open_a_0 0) - (not operate_pumps.usr.flow_0_a_0)) - (not operate_pumps.res.abs_1_a_0)) - (= operate_pumps.usr.pump_status_0_a_0 0)) - 2 - (ite - (and - (and - (and - (< operate_pumps.usr.n_pumps_to_open_a_0 0) - operate_pumps.usr.flow_0_a_0) - (not operate_pumps.res.abs_3_a_0)) - (= operate_pumps.usr.pump_status_0_a_0 1)) - 0 - (ite - (= operate_pumps.usr.pump_status_0_a_0 2) - 1 - (ite - (and (= X1 2) (= operate_pumps.usr.pump_defect_0_a_0 0)) - (ite (= operate_pumps.usr.pump_status_0_a_0 1) 0 1) - operate_pumps.usr.pump_status_0_a_0)))))) - (= operate_pumps.res.abs_7_a_0 operate_pumps.usr.pump_defect_1_a_0) - (= operate_pumps.res.abs_5_a_0 operate_pumps.usr.pump_defect_1_a_0) - (= - operate_pumps.usr.operate_pumps_1_a_0 - (let - ((X1 Int operate_pumps.res.nondet_1)) - (ite - (and - (and - (and - (> operate_pumps.usr.n_pumps_to_open_a_0 0) - (not operate_pumps.usr.flow_1_a_0)) - (not operate_pumps.res.abs_6_a_0)) - (= operate_pumps.usr.pump_status_1_a_0 0)) - 2 - (ite - (and - (and - (and - (< operate_pumps.usr.n_pumps_to_open_a_0 0) - operate_pumps.usr.flow_1_a_0) - (not operate_pumps.res.abs_8_a_0)) - (= operate_pumps.usr.pump_status_1_a_0 1)) - 0 - (ite - (= operate_pumps.usr.pump_status_1_a_0 2) - 1 - (ite - (and (= X1 2) (= operate_pumps.usr.pump_defect_1_a_0 0)) - (ite (= operate_pumps.usr.pump_status_1_a_0 1) 0 1) - operate_pumps.usr.pump_status_1_a_0)))))) - (= operate_pumps.res.abs_12_a_0 operate_pumps.usr.pump_defect_2_a_0) - (= operate_pumps.res.abs_10_a_0 operate_pumps.usr.pump_defect_2_a_0) - (= - operate_pumps.usr.operate_pumps_2_a_0 - (let - ((X1 Int operate_pumps.res.nondet_2)) - (ite - (and - (and - (and - (> operate_pumps.usr.n_pumps_to_open_a_0 0) - (not operate_pumps.usr.flow_2_a_0)) - (not operate_pumps.res.abs_11_a_0)) - (= operate_pumps.usr.pump_status_2_a_0 0)) - 2 - (ite - (and - (and - (and - (< operate_pumps.usr.n_pumps_to_open_a_0 0) - operate_pumps.usr.flow_2_a_0) - (not operate_pumps.res.abs_13_a_0)) - (= operate_pumps.usr.pump_status_2_a_0 1)) - 0 - (ite - (= operate_pumps.usr.pump_status_2_a_0 2) - 1 - (ite - (and (= X1 2) (= operate_pumps.usr.pump_defect_2_a_0 0)) - (ite (= operate_pumps.usr.pump_status_2_a_0 1) 0 1) - operate_pumps.usr.pump_status_2_a_0)))))) - (= operate_pumps.res.abs_17_a_0 operate_pumps.usr.pump_defect_3_a_0) - (= operate_pumps.res.abs_15_a_0 operate_pumps.usr.pump_defect_3_a_0) - (= - operate_pumps.usr.operate_pumps_3_a_0 - (let - ((X1 Int operate_pumps.res.nondet_3)) - (ite - (and - (and - (and - (> operate_pumps.usr.n_pumps_to_open_a_0 0) - (not operate_pumps.usr.flow_3_a_0)) - (not operate_pumps.res.abs_16_a_0)) - (= operate_pumps.usr.pump_status_3_a_0 0)) - 2 - (ite - (and - (and - (and - (< operate_pumps.usr.n_pumps_to_open_a_0 0) - operate_pumps.usr.flow_3_a_0) - (not operate_pumps.res.abs_18_a_0)) - (= operate_pumps.usr.pump_status_3_a_0 1)) - 0 - (ite - (= operate_pumps.usr.pump_status_3_a_0 2) - 1 - (ite - (and (= X1 2) (= operate_pumps.usr.pump_defect_3_a_0 0)) - (ite (= operate_pumps.usr.pump_status_3_a_0 1) 0 1) - operate_pumps.usr.pump_status_3_a_0)))))) - (__node_init_pump_failure_0 - operate_pumps.res.abs_0_a_0 - operate_pumps.res.abs_1_a_0 - operate_pumps.res.inst_7_a_0) - (__node_init_pump_failure_0 - operate_pumps.res.abs_2_a_0 - operate_pumps.res.abs_3_a_0 - operate_pumps.res.inst_6_a_0) - (__node_init_pump_failure_0 - operate_pumps.res.abs_5_a_0 - operate_pumps.res.abs_6_a_0 - operate_pumps.res.inst_5_a_0) - (__node_init_pump_failure_0 - operate_pumps.res.abs_7_a_0 - operate_pumps.res.abs_8_a_0 - operate_pumps.res.inst_4_a_0) - (__node_init_pump_failure_0 - operate_pumps.res.abs_10_a_0 - operate_pumps.res.abs_11_a_0 - operate_pumps.res.inst_3_a_0) - (__node_init_pump_failure_0 - operate_pumps.res.abs_12_a_0 - operate_pumps.res.abs_13_a_0 - operate_pumps.res.inst_2_a_0) - (__node_init_pump_failure_0 - operate_pumps.res.abs_15_a_0 - operate_pumps.res.abs_16_a_0 - operate_pumps.res.inst_1_a_0) - (__node_init_pump_failure_0 - operate_pumps.res.abs_17_a_0 - operate_pumps.res.abs_18_a_0 - operate_pumps.res.inst_0_a_0) - operate_pumps.res.init_flag_a_0) -) - -(define-fun - __node_trans_operate_pumps_0 ( - (operate_pumps.usr.n_a_1 Int) - (operate_pumps.usr.n_pumps_to_open_a_1 Int) - (operate_pumps.usr.pump_status_0_a_1 Int) - (operate_pumps.usr.pump_status_1_a_1 Int) - (operate_pumps.usr.pump_status_2_a_1 Int) - (operate_pumps.usr.pump_status_3_a_1 Int) - (operate_pumps.usr.pump_defect_0_a_1 Int) - (operate_pumps.usr.pump_defect_1_a_1 Int) - (operate_pumps.usr.pump_defect_2_a_1 Int) - (operate_pumps.usr.pump_defect_3_a_1 Int) - (operate_pumps.usr.flow_0_a_1 Bool) - (operate_pumps.usr.flow_1_a_1 Bool) - (operate_pumps.usr.flow_2_a_1 Bool) - (operate_pumps.usr.flow_3_a_1 Bool) - (operate_pumps.res.nondet_3 Int) - (operate_pumps.res.nondet_2 Int) - (operate_pumps.res.nondet_1 Int) - (operate_pumps.res.nondet_0 Int) - (operate_pumps.usr.operate_pumps_0_a_1 Int) - (operate_pumps.usr.operate_pumps_1_a_1 Int) - (operate_pumps.usr.operate_pumps_2_a_1 Int) - (operate_pumps.usr.operate_pumps_3_a_1 Int) - (operate_pumps.res.init_flag_a_1 Bool) - (operate_pumps.res.abs_0_a_1 Int) - (operate_pumps.res.abs_1_a_1 Bool) - (operate_pumps.res.abs_2_a_1 Int) - (operate_pumps.res.abs_3_a_1 Bool) - (operate_pumps.res.abs_5_a_1 Int) - (operate_pumps.res.abs_6_a_1 Bool) - (operate_pumps.res.abs_7_a_1 Int) - (operate_pumps.res.abs_8_a_1 Bool) - (operate_pumps.res.abs_10_a_1 Int) - (operate_pumps.res.abs_11_a_1 Bool) - (operate_pumps.res.abs_12_a_1 Int) - (operate_pumps.res.abs_13_a_1 Bool) - (operate_pumps.res.abs_15_a_1 Int) - (operate_pumps.res.abs_16_a_1 Bool) - (operate_pumps.res.abs_17_a_1 Int) - (operate_pumps.res.abs_18_a_1 Bool) - (operate_pumps.res.inst_7_a_1 Bool) - (operate_pumps.res.inst_6_a_1 Bool) - (operate_pumps.res.inst_5_a_1 Bool) - (operate_pumps.res.inst_4_a_1 Bool) - (operate_pumps.res.inst_3_a_1 Bool) - (operate_pumps.res.inst_2_a_1 Bool) - (operate_pumps.res.inst_1_a_1 Bool) - (operate_pumps.res.inst_0_a_1 Bool) - (operate_pumps.usr.n_a_0 Int) - (operate_pumps.usr.n_pumps_to_open_a_0 Int) - (operate_pumps.usr.pump_status_0_a_0 Int) - (operate_pumps.usr.pump_status_1_a_0 Int) - (operate_pumps.usr.pump_status_2_a_0 Int) - (operate_pumps.usr.pump_status_3_a_0 Int) - (operate_pumps.usr.pump_defect_0_a_0 Int) - (operate_pumps.usr.pump_defect_1_a_0 Int) - (operate_pumps.usr.pump_defect_2_a_0 Int) - (operate_pumps.usr.pump_defect_3_a_0 Int) - (operate_pumps.usr.flow_0_a_0 Bool) - (operate_pumps.usr.flow_1_a_0 Bool) - (operate_pumps.usr.flow_2_a_0 Bool) - (operate_pumps.usr.flow_3_a_0 Bool) - (operate_pumps.usr.operate_pumps_0_a_0 Int) - (operate_pumps.usr.operate_pumps_1_a_0 Int) - (operate_pumps.usr.operate_pumps_2_a_0 Int) - (operate_pumps.usr.operate_pumps_3_a_0 Int) - (operate_pumps.res.init_flag_a_0 Bool) - (operate_pumps.res.abs_0_a_0 Int) - (operate_pumps.res.abs_1_a_0 Bool) - (operate_pumps.res.abs_2_a_0 Int) - (operate_pumps.res.abs_3_a_0 Bool) - (operate_pumps.res.abs_5_a_0 Int) - (operate_pumps.res.abs_6_a_0 Bool) - (operate_pumps.res.abs_7_a_0 Int) - (operate_pumps.res.abs_8_a_0 Bool) - (operate_pumps.res.abs_10_a_0 Int) - (operate_pumps.res.abs_11_a_0 Bool) - (operate_pumps.res.abs_12_a_0 Int) - (operate_pumps.res.abs_13_a_0 Bool) - (operate_pumps.res.abs_15_a_0 Int) - (operate_pumps.res.abs_16_a_0 Bool) - (operate_pumps.res.abs_17_a_0 Int) - (operate_pumps.res.abs_18_a_0 Bool) - (operate_pumps.res.inst_7_a_0 Bool) - (operate_pumps.res.inst_6_a_0 Bool) - (operate_pumps.res.inst_5_a_0 Bool) - (operate_pumps.res.inst_4_a_0 Bool) - (operate_pumps.res.inst_3_a_0 Bool) - (operate_pumps.res.inst_2_a_0 Bool) - (operate_pumps.res.inst_1_a_0 Bool) - (operate_pumps.res.inst_0_a_0 Bool) - ) Bool - - (and - (= operate_pumps.res.abs_2_a_1 operate_pumps.usr.pump_defect_0_a_1) - (= operate_pumps.res.abs_0_a_1 operate_pumps.usr.pump_defect_0_a_1) - (= - operate_pumps.usr.operate_pumps_0_a_1 - (ite - (and - (and - (and - (> operate_pumps.usr.n_pumps_to_open_a_1 0) - (not operate_pumps.usr.flow_0_a_1)) - (not operate_pumps.res.abs_1_a_1)) - (= operate_pumps.usr.pump_status_0_a_1 0)) - 2 - (ite - (and - (and - (and - (< operate_pumps.usr.n_pumps_to_open_a_1 0) - operate_pumps.usr.flow_0_a_1) - (not operate_pumps.res.abs_3_a_1)) - (= operate_pumps.usr.pump_status_0_a_1 1)) - 0 - (ite - (= operate_pumps.usr.pump_status_0_a_1 2) - 1 - (ite - (and - (= operate_pumps.usr.pump_defect_0_a_0 2) - (= operate_pumps.usr.pump_defect_0_a_1 0)) - (ite (= operate_pumps.usr.pump_status_0_a_1 1) 0 1) - operate_pumps.usr.pump_status_0_a_1))))) - (= operate_pumps.res.abs_7_a_1 operate_pumps.usr.pump_defect_1_a_1) - (= operate_pumps.res.abs_5_a_1 operate_pumps.usr.pump_defect_1_a_1) - (= - operate_pumps.usr.operate_pumps_1_a_1 - (ite - (and - (and - (and - (> operate_pumps.usr.n_pumps_to_open_a_1 0) - (not operate_pumps.usr.flow_1_a_1)) - (not operate_pumps.res.abs_6_a_1)) - (= operate_pumps.usr.pump_status_1_a_1 0)) - 2 - (ite - (and - (and - (and - (< operate_pumps.usr.n_pumps_to_open_a_1 0) - operate_pumps.usr.flow_1_a_1) - (not operate_pumps.res.abs_8_a_1)) - (= operate_pumps.usr.pump_status_1_a_1 1)) - 0 - (ite - (= operate_pumps.usr.pump_status_1_a_1 2) - 1 - (ite - (and - (= operate_pumps.usr.pump_defect_1_a_0 2) - (= operate_pumps.usr.pump_defect_1_a_1 0)) - (ite (= operate_pumps.usr.pump_status_1_a_1 1) 0 1) - operate_pumps.usr.pump_status_1_a_1))))) - (= operate_pumps.res.abs_12_a_1 operate_pumps.usr.pump_defect_2_a_1) - (= operate_pumps.res.abs_10_a_1 operate_pumps.usr.pump_defect_2_a_1) - (= - operate_pumps.usr.operate_pumps_2_a_1 - (ite - (and - (and - (and - (> operate_pumps.usr.n_pumps_to_open_a_1 0) - (not operate_pumps.usr.flow_2_a_1)) - (not operate_pumps.res.abs_11_a_1)) - (= operate_pumps.usr.pump_status_2_a_1 0)) - 2 - (ite - (and - (and - (and - (< operate_pumps.usr.n_pumps_to_open_a_1 0) - operate_pumps.usr.flow_2_a_1) - (not operate_pumps.res.abs_13_a_1)) - (= operate_pumps.usr.pump_status_2_a_1 1)) - 0 - (ite - (= operate_pumps.usr.pump_status_2_a_1 2) - 1 - (ite - (and - (= operate_pumps.usr.pump_defect_2_a_0 2) - (= operate_pumps.usr.pump_defect_2_a_1 0)) - (ite (= operate_pumps.usr.pump_status_2_a_1 1) 0 1) - operate_pumps.usr.pump_status_2_a_1))))) - (= operate_pumps.res.abs_17_a_1 operate_pumps.usr.pump_defect_3_a_1) - (= operate_pumps.res.abs_15_a_1 operate_pumps.usr.pump_defect_3_a_1) - (= - operate_pumps.usr.operate_pumps_3_a_1 - (ite - (and - (and - (and - (> operate_pumps.usr.n_pumps_to_open_a_1 0) - (not operate_pumps.usr.flow_3_a_1)) - (not operate_pumps.res.abs_16_a_1)) - (= operate_pumps.usr.pump_status_3_a_1 0)) - 2 - (ite - (and - (and - (and - (< operate_pumps.usr.n_pumps_to_open_a_1 0) - operate_pumps.usr.flow_3_a_1) - (not operate_pumps.res.abs_18_a_1)) - (= operate_pumps.usr.pump_status_3_a_1 1)) - 0 - (ite - (= operate_pumps.usr.pump_status_3_a_1 2) - 1 - (ite - (and - (= operate_pumps.usr.pump_defect_3_a_0 2) - (= operate_pumps.usr.pump_defect_3_a_1 0)) - (ite (= operate_pumps.usr.pump_status_3_a_1 1) 0 1) - operate_pumps.usr.pump_status_3_a_1))))) - (__node_trans_pump_failure_0 - operate_pumps.res.abs_0_a_1 - operate_pumps.res.abs_1_a_1 - operate_pumps.res.inst_7_a_1 - operate_pumps.res.abs_0_a_0 - operate_pumps.res.abs_1_a_0 - operate_pumps.res.inst_7_a_0) - (__node_trans_pump_failure_0 - operate_pumps.res.abs_2_a_1 - operate_pumps.res.abs_3_a_1 - operate_pumps.res.inst_6_a_1 - operate_pumps.res.abs_2_a_0 - operate_pumps.res.abs_3_a_0 - operate_pumps.res.inst_6_a_0) - (__node_trans_pump_failure_0 - operate_pumps.res.abs_5_a_1 - operate_pumps.res.abs_6_a_1 - operate_pumps.res.inst_5_a_1 - operate_pumps.res.abs_5_a_0 - operate_pumps.res.abs_6_a_0 - operate_pumps.res.inst_5_a_0) - (__node_trans_pump_failure_0 - operate_pumps.res.abs_7_a_1 - operate_pumps.res.abs_8_a_1 - operate_pumps.res.inst_4_a_1 - operate_pumps.res.abs_7_a_0 - operate_pumps.res.abs_8_a_0 - operate_pumps.res.inst_4_a_0) - (__node_trans_pump_failure_0 - operate_pumps.res.abs_10_a_1 - operate_pumps.res.abs_11_a_1 - operate_pumps.res.inst_3_a_1 - operate_pumps.res.abs_10_a_0 - operate_pumps.res.abs_11_a_0 - operate_pumps.res.inst_3_a_0) - (__node_trans_pump_failure_0 - operate_pumps.res.abs_12_a_1 - operate_pumps.res.abs_13_a_1 - operate_pumps.res.inst_2_a_1 - operate_pumps.res.abs_12_a_0 - operate_pumps.res.abs_13_a_0 - operate_pumps.res.inst_2_a_0) - (__node_trans_pump_failure_0 - operate_pumps.res.abs_15_a_1 - operate_pumps.res.abs_16_a_1 - operate_pumps.res.inst_1_a_1 - operate_pumps.res.abs_15_a_0 - operate_pumps.res.abs_16_a_0 - operate_pumps.res.inst_1_a_0) - (__node_trans_pump_failure_0 - operate_pumps.res.abs_17_a_1 - operate_pumps.res.abs_18_a_1 - operate_pumps.res.inst_0_a_1 - operate_pumps.res.abs_17_a_0 - operate_pumps.res.abs_18_a_0 - operate_pumps.res.inst_0_a_0) - (not operate_pumps.res.init_flag_a_1)) -) - -(define-fun - __node_init_PumpsStatus_0 ( - (PumpsStatus.usr.n_pumps_a_0 Int) - (PumpsStatus.usr.pump_defect_0_a_0 Int) - (PumpsStatus.usr.pump_defect_1_a_0 Int) - (PumpsStatus.usr.pump_defect_2_a_0 Int) - (PumpsStatus.usr.pump_defect_3_a_0 Int) - (PumpsStatus.usr.flow_0_a_0 Bool) - (PumpsStatus.usr.flow_1_a_0 Bool) - (PumpsStatus.usr.flow_2_a_0 Bool) - (PumpsStatus.usr.flow_3_a_0 Bool) - (PumpsStatus.res.nondet_7 Int) - (PumpsStatus.res.nondet_6 Int) - (PumpsStatus.res.nondet_5 Int) - (PumpsStatus.res.nondet_4 Int) - (PumpsStatus.res.nondet_3 Int) - (PumpsStatus.res.nondet_2 Int) - (PumpsStatus.res.nondet_1 Int) - (PumpsStatus.res.nondet_0 Int) - (PumpsStatus.usr.pump_status_0_a_0 Int) - (PumpsStatus.usr.pump_status_1_a_0 Int) - (PumpsStatus.usr.pump_status_2_a_0 Int) - (PumpsStatus.usr.pump_status_3_a_0 Int) - (PumpsStatus.res.init_flag_a_0 Bool) - (PumpsStatus.res.abs_4_a_0 Int) - (PumpsStatus.res.abs_5_a_0 Int) - (PumpsStatus.res.abs_6_a_0 Int) - (PumpsStatus.res.abs_7_a_0 Int) - (PumpsStatus.res.abs_8_a_0 Int) - (PumpsStatus.res.abs_9_a_0 Int) - (PumpsStatus.res.abs_10_a_0 Int) - (PumpsStatus.res.abs_11_a_0 Int) - (PumpsStatus.res.abs_12_a_0 Int) - (PumpsStatus.res.abs_13_a_0 Int) - (PumpsStatus.res.abs_14_a_0 Bool) - (PumpsStatus.res.abs_15_a_0 Bool) - (PumpsStatus.res.abs_16_a_0 Bool) - (PumpsStatus.res.abs_17_a_0 Bool) - (PumpsStatus.res.abs_18_a_0 Int) - (PumpsStatus.res.abs_19_a_0 Int) - (PumpsStatus.res.abs_20_a_0 Int) - (PumpsStatus.res.abs_21_a_0 Int) - (PumpsStatus.res.inst_24_a_0 Bool) - (PumpsStatus.res.inst_23_a_0 Int) - (PumpsStatus.res.inst_22_a_0 Bool) - (PumpsStatus.res.inst_21_a_0 Int) - (PumpsStatus.res.inst_20_a_0 Bool) - (PumpsStatus.res.inst_19_a_0 Int) - (PumpsStatus.res.inst_18_a_0 Bool) - (PumpsStatus.res.inst_17_a_0 Int) - (PumpsStatus.res.inst_16_a_0 Bool) - (PumpsStatus.res.inst_15_a_0 Int) - (PumpsStatus.res.inst_14_a_0 Bool) - (PumpsStatus.res.inst_13_a_0 Int) - (PumpsStatus.res.inst_12_a_0 Bool) - (PumpsStatus.res.inst_11_a_0 Int) - (PumpsStatus.res.inst_10_a_0 Bool) - (PumpsStatus.res.inst_9_a_0 Int) - (PumpsStatus.res.inst_8_a_0 Bool) - (PumpsStatus.res.inst_7_a_0 Bool) - (PumpsStatus.res.inst_6_a_0 Bool) - (PumpsStatus.res.inst_5_a_0 Bool) - (PumpsStatus.res.inst_4_a_0 Bool) - (PumpsStatus.res.inst_3_a_0 Bool) - (PumpsStatus.res.inst_2_a_0 Bool) - (PumpsStatus.res.inst_1_a_0 Bool) - (PumpsStatus.res.inst_0_a_0 Bool) - ) Bool - - (and - (= PumpsStatus.usr.pump_status_0_a_0 0) - (= PumpsStatus.res.abs_14_a_0 PumpsStatus.usr.flow_0_a_0) - (= PumpsStatus.res.abs_10_a_0 PumpsStatus.usr.pump_defect_0_a_0) - (= PumpsStatus.res.abs_6_a_0 (let ((X1 Int PumpsStatus.res.nondet_0)) X1)) - (let - ((X1 - Int (+ - (+ - (+ - (ite PumpsStatus.usr.flow_0_a_0 1 0) - (ite PumpsStatus.usr.flow_1_a_0 1 0)) - (ite PumpsStatus.usr.flow_2_a_0 1 0)) - (ite PumpsStatus.usr.flow_3_a_0 1 0)))) - (let - ((X2 Int (- PumpsStatus.usr.n_pumps_a_0 X1))) - (and - (= PumpsStatus.res.abs_5_a_0 X2) - (let - ((X3 Int PumpsStatus.res.abs_18_a_0)) - (and - (= PumpsStatus.res.abs_4_a_0 4) - (= - PumpsStatus.res.abs_7_a_0 - (let ((X4 Int PumpsStatus.res.nondet_1)) X4)) - (= PumpsStatus.usr.pump_status_1_a_0 0) - (= PumpsStatus.res.abs_15_a_0 PumpsStatus.usr.flow_1_a_0) - (= PumpsStatus.res.abs_11_a_0 PumpsStatus.usr.pump_defect_1_a_0) - (let - ((X4 Int PumpsStatus.res.abs_19_a_0)) - (and - (= - PumpsStatus.res.abs_8_a_0 - (let ((X5 Int PumpsStatus.res.nondet_2)) X5)) - (= PumpsStatus.usr.pump_status_2_a_0 0) - (= PumpsStatus.res.abs_16_a_0 PumpsStatus.usr.flow_2_a_0) - (= PumpsStatus.res.abs_12_a_0 PumpsStatus.usr.pump_defect_2_a_0) - (let - ((X5 Int PumpsStatus.res.abs_20_a_0)) - (and - (= - PumpsStatus.res.abs_9_a_0 - (let ((X6 Int PumpsStatus.res.nondet_3)) X6)) - (= PumpsStatus.usr.pump_status_3_a_0 0) - (= PumpsStatus.res.abs_17_a_0 PumpsStatus.usr.flow_3_a_0) - (= PumpsStatus.res.abs_13_a_0 PumpsStatus.usr.pump_defect_3_a_0) - (let - ((X6 Int PumpsStatus.res.abs_21_a_0)) - (and - (__node_init_operate_pumps_0 - PumpsStatus.res.abs_4_a_0 - PumpsStatus.res.abs_5_a_0 - PumpsStatus.res.abs_6_a_0 - PumpsStatus.res.abs_7_a_0 - PumpsStatus.res.abs_8_a_0 - PumpsStatus.res.abs_9_a_0 - PumpsStatus.res.abs_10_a_0 - PumpsStatus.res.abs_11_a_0 - PumpsStatus.res.abs_12_a_0 - PumpsStatus.res.abs_13_a_0 - PumpsStatus.res.abs_14_a_0 - PumpsStatus.res.abs_15_a_0 - PumpsStatus.res.abs_16_a_0 - PumpsStatus.res.abs_17_a_0 - PumpsStatus.res.nondet_7 - PumpsStatus.res.nondet_6 - PumpsStatus.res.nondet_5 - PumpsStatus.res.nondet_4 - PumpsStatus.res.abs_18_a_0 - PumpsStatus.res.abs_19_a_0 - PumpsStatus.res.abs_20_a_0 - PumpsStatus.res.abs_21_a_0 - PumpsStatus.res.inst_24_a_0 - PumpsStatus.res.inst_23_a_0 - PumpsStatus.res.inst_22_a_0 - PumpsStatus.res.inst_21_a_0 - PumpsStatus.res.inst_20_a_0 - PumpsStatus.res.inst_19_a_0 - PumpsStatus.res.inst_18_a_0 - PumpsStatus.res.inst_17_a_0 - PumpsStatus.res.inst_16_a_0 - PumpsStatus.res.inst_15_a_0 - PumpsStatus.res.inst_14_a_0 - PumpsStatus.res.inst_13_a_0 - PumpsStatus.res.inst_12_a_0 - PumpsStatus.res.inst_11_a_0 - PumpsStatus.res.inst_10_a_0 - PumpsStatus.res.inst_9_a_0 - PumpsStatus.res.inst_8_a_0 - PumpsStatus.res.inst_7_a_0 - PumpsStatus.res.inst_6_a_0 - PumpsStatus.res.inst_5_a_0 - PumpsStatus.res.inst_4_a_0 - PumpsStatus.res.inst_3_a_0 - PumpsStatus.res.inst_2_a_0 - PumpsStatus.res.inst_1_a_0 - PumpsStatus.res.inst_0_a_0) - (<= 4 PumpsStatus.res.abs_4_a_0 4) - (<= 0 X1 4) - PumpsStatus.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_PumpsStatus_0 ( - (PumpsStatus.usr.n_pumps_a_1 Int) - (PumpsStatus.usr.pump_defect_0_a_1 Int) - (PumpsStatus.usr.pump_defect_1_a_1 Int) - (PumpsStatus.usr.pump_defect_2_a_1 Int) - (PumpsStatus.usr.pump_defect_3_a_1 Int) - (PumpsStatus.usr.flow_0_a_1 Bool) - (PumpsStatus.usr.flow_1_a_1 Bool) - (PumpsStatus.usr.flow_2_a_1 Bool) - (PumpsStatus.usr.flow_3_a_1 Bool) - (PumpsStatus.res.nondet_7 Int) - (PumpsStatus.res.nondet_6 Int) - (PumpsStatus.res.nondet_5 Int) - (PumpsStatus.res.nondet_4 Int) - (PumpsStatus.res.nondet_3 Int) - (PumpsStatus.res.nondet_2 Int) - (PumpsStatus.res.nondet_1 Int) - (PumpsStatus.res.nondet_0 Int) - (PumpsStatus.usr.pump_status_0_a_1 Int) - (PumpsStatus.usr.pump_status_1_a_1 Int) - (PumpsStatus.usr.pump_status_2_a_1 Int) - (PumpsStatus.usr.pump_status_3_a_1 Int) - (PumpsStatus.res.init_flag_a_1 Bool) - (PumpsStatus.res.abs_4_a_1 Int) - (PumpsStatus.res.abs_5_a_1 Int) - (PumpsStatus.res.abs_6_a_1 Int) - (PumpsStatus.res.abs_7_a_1 Int) - (PumpsStatus.res.abs_8_a_1 Int) - (PumpsStatus.res.abs_9_a_1 Int) - (PumpsStatus.res.abs_10_a_1 Int) - (PumpsStatus.res.abs_11_a_1 Int) - (PumpsStatus.res.abs_12_a_1 Int) - (PumpsStatus.res.abs_13_a_1 Int) - (PumpsStatus.res.abs_14_a_1 Bool) - (PumpsStatus.res.abs_15_a_1 Bool) - (PumpsStatus.res.abs_16_a_1 Bool) - (PumpsStatus.res.abs_17_a_1 Bool) - (PumpsStatus.res.abs_18_a_1 Int) - (PumpsStatus.res.abs_19_a_1 Int) - (PumpsStatus.res.abs_20_a_1 Int) - (PumpsStatus.res.abs_21_a_1 Int) - (PumpsStatus.res.inst_24_a_1 Bool) - (PumpsStatus.res.inst_23_a_1 Int) - (PumpsStatus.res.inst_22_a_1 Bool) - (PumpsStatus.res.inst_21_a_1 Int) - (PumpsStatus.res.inst_20_a_1 Bool) - (PumpsStatus.res.inst_19_a_1 Int) - (PumpsStatus.res.inst_18_a_1 Bool) - (PumpsStatus.res.inst_17_a_1 Int) - (PumpsStatus.res.inst_16_a_1 Bool) - (PumpsStatus.res.inst_15_a_1 Int) - (PumpsStatus.res.inst_14_a_1 Bool) - (PumpsStatus.res.inst_13_a_1 Int) - (PumpsStatus.res.inst_12_a_1 Bool) - (PumpsStatus.res.inst_11_a_1 Int) - (PumpsStatus.res.inst_10_a_1 Bool) - (PumpsStatus.res.inst_9_a_1 Int) - (PumpsStatus.res.inst_8_a_1 Bool) - (PumpsStatus.res.inst_7_a_1 Bool) - (PumpsStatus.res.inst_6_a_1 Bool) - (PumpsStatus.res.inst_5_a_1 Bool) - (PumpsStatus.res.inst_4_a_1 Bool) - (PumpsStatus.res.inst_3_a_1 Bool) - (PumpsStatus.res.inst_2_a_1 Bool) - (PumpsStatus.res.inst_1_a_1 Bool) - (PumpsStatus.res.inst_0_a_1 Bool) - (PumpsStatus.usr.n_pumps_a_0 Int) - (PumpsStatus.usr.pump_defect_0_a_0 Int) - (PumpsStatus.usr.pump_defect_1_a_0 Int) - (PumpsStatus.usr.pump_defect_2_a_0 Int) - (PumpsStatus.usr.pump_defect_3_a_0 Int) - (PumpsStatus.usr.flow_0_a_0 Bool) - (PumpsStatus.usr.flow_1_a_0 Bool) - (PumpsStatus.usr.flow_2_a_0 Bool) - (PumpsStatus.usr.flow_3_a_0 Bool) - (PumpsStatus.usr.pump_status_0_a_0 Int) - (PumpsStatus.usr.pump_status_1_a_0 Int) - (PumpsStatus.usr.pump_status_2_a_0 Int) - (PumpsStatus.usr.pump_status_3_a_0 Int) - (PumpsStatus.res.init_flag_a_0 Bool) - (PumpsStatus.res.abs_4_a_0 Int) - (PumpsStatus.res.abs_5_a_0 Int) - (PumpsStatus.res.abs_6_a_0 Int) - (PumpsStatus.res.abs_7_a_0 Int) - (PumpsStatus.res.abs_8_a_0 Int) - (PumpsStatus.res.abs_9_a_0 Int) - (PumpsStatus.res.abs_10_a_0 Int) - (PumpsStatus.res.abs_11_a_0 Int) - (PumpsStatus.res.abs_12_a_0 Int) - (PumpsStatus.res.abs_13_a_0 Int) - (PumpsStatus.res.abs_14_a_0 Bool) - (PumpsStatus.res.abs_15_a_0 Bool) - (PumpsStatus.res.abs_16_a_0 Bool) - (PumpsStatus.res.abs_17_a_0 Bool) - (PumpsStatus.res.abs_18_a_0 Int) - (PumpsStatus.res.abs_19_a_0 Int) - (PumpsStatus.res.abs_20_a_0 Int) - (PumpsStatus.res.abs_21_a_0 Int) - (PumpsStatus.res.inst_24_a_0 Bool) - (PumpsStatus.res.inst_23_a_0 Int) - (PumpsStatus.res.inst_22_a_0 Bool) - (PumpsStatus.res.inst_21_a_0 Int) - (PumpsStatus.res.inst_20_a_0 Bool) - (PumpsStatus.res.inst_19_a_0 Int) - (PumpsStatus.res.inst_18_a_0 Bool) - (PumpsStatus.res.inst_17_a_0 Int) - (PumpsStatus.res.inst_16_a_0 Bool) - (PumpsStatus.res.inst_15_a_0 Int) - (PumpsStatus.res.inst_14_a_0 Bool) - (PumpsStatus.res.inst_13_a_0 Int) - (PumpsStatus.res.inst_12_a_0 Bool) - (PumpsStatus.res.inst_11_a_0 Int) - (PumpsStatus.res.inst_10_a_0 Bool) - (PumpsStatus.res.inst_9_a_0 Int) - (PumpsStatus.res.inst_8_a_0 Bool) - (PumpsStatus.res.inst_7_a_0 Bool) - (PumpsStatus.res.inst_6_a_0 Bool) - (PumpsStatus.res.inst_5_a_0 Bool) - (PumpsStatus.res.inst_4_a_0 Bool) - (PumpsStatus.res.inst_3_a_0 Bool) - (PumpsStatus.res.inst_2_a_0 Bool) - (PumpsStatus.res.inst_1_a_0 Bool) - (PumpsStatus.res.inst_0_a_0 Bool) - ) Bool - - (and - (= PumpsStatus.res.abs_14_a_1 PumpsStatus.usr.flow_0_a_1) - (= PumpsStatus.res.abs_10_a_1 PumpsStatus.usr.pump_defect_0_a_1) - (= PumpsStatus.res.abs_6_a_1 PumpsStatus.usr.pump_status_0_a_0) - (let - ((X1 - Int (+ - (+ - (+ - (ite PumpsStatus.usr.flow_0_a_1 1 0) - (ite PumpsStatus.usr.flow_1_a_1 1 0)) - (ite PumpsStatus.usr.flow_2_a_1 1 0)) - (ite PumpsStatus.usr.flow_3_a_1 1 0)))) - (let - ((X2 Int (- PumpsStatus.usr.n_pumps_a_1 X1))) - (and - (= PumpsStatus.res.abs_5_a_1 X2) - (let - ((X3 Int PumpsStatus.res.abs_18_a_1)) - (and - (= PumpsStatus.usr.pump_status_0_a_1 X3) - (= PumpsStatus.res.abs_4_a_1 4) - (= PumpsStatus.res.abs_7_a_1 PumpsStatus.usr.pump_status_1_a_0) - (= PumpsStatus.res.abs_15_a_1 PumpsStatus.usr.flow_1_a_1) - (= PumpsStatus.res.abs_11_a_1 PumpsStatus.usr.pump_defect_1_a_1) - (let - ((X4 Int PumpsStatus.res.abs_19_a_1)) - (and - (= PumpsStatus.usr.pump_status_1_a_1 X4) - (= PumpsStatus.res.abs_8_a_1 PumpsStatus.usr.pump_status_2_a_0) - (= PumpsStatus.res.abs_16_a_1 PumpsStatus.usr.flow_2_a_1) - (= PumpsStatus.res.abs_12_a_1 PumpsStatus.usr.pump_defect_2_a_1) - (let - ((X5 Int PumpsStatus.res.abs_20_a_1)) - (and - (= PumpsStatus.usr.pump_status_2_a_1 X5) - (= PumpsStatus.res.abs_9_a_1 PumpsStatus.usr.pump_status_3_a_0) - (= PumpsStatus.res.abs_17_a_1 PumpsStatus.usr.flow_3_a_1) - (= PumpsStatus.res.abs_13_a_1 PumpsStatus.usr.pump_defect_3_a_1) - (let - ((X6 Int PumpsStatus.res.abs_21_a_1)) - (and - (= PumpsStatus.usr.pump_status_3_a_1 X6) - (__node_trans_operate_pumps_0 - PumpsStatus.res.abs_4_a_1 - PumpsStatus.res.abs_5_a_1 - PumpsStatus.res.abs_6_a_1 - PumpsStatus.res.abs_7_a_1 - PumpsStatus.res.abs_8_a_1 - PumpsStatus.res.abs_9_a_1 - PumpsStatus.res.abs_10_a_1 - PumpsStatus.res.abs_11_a_1 - PumpsStatus.res.abs_12_a_1 - PumpsStatus.res.abs_13_a_1 - PumpsStatus.res.abs_14_a_1 - PumpsStatus.res.abs_15_a_1 - PumpsStatus.res.abs_16_a_1 - PumpsStatus.res.abs_17_a_1 - PumpsStatus.res.nondet_7 - PumpsStatus.res.nondet_6 - PumpsStatus.res.nondet_5 - PumpsStatus.res.nondet_4 - PumpsStatus.res.abs_18_a_1 - PumpsStatus.res.abs_19_a_1 - PumpsStatus.res.abs_20_a_1 - PumpsStatus.res.abs_21_a_1 - PumpsStatus.res.inst_24_a_1 - PumpsStatus.res.inst_23_a_1 - PumpsStatus.res.inst_22_a_1 - PumpsStatus.res.inst_21_a_1 - PumpsStatus.res.inst_20_a_1 - PumpsStatus.res.inst_19_a_1 - PumpsStatus.res.inst_18_a_1 - PumpsStatus.res.inst_17_a_1 - PumpsStatus.res.inst_16_a_1 - PumpsStatus.res.inst_15_a_1 - PumpsStatus.res.inst_14_a_1 - PumpsStatus.res.inst_13_a_1 - PumpsStatus.res.inst_12_a_1 - PumpsStatus.res.inst_11_a_1 - PumpsStatus.res.inst_10_a_1 - PumpsStatus.res.inst_9_a_1 - PumpsStatus.res.inst_8_a_1 - PumpsStatus.res.inst_7_a_1 - PumpsStatus.res.inst_6_a_1 - PumpsStatus.res.inst_5_a_1 - PumpsStatus.res.inst_4_a_1 - PumpsStatus.res.inst_3_a_1 - PumpsStatus.res.inst_2_a_1 - PumpsStatus.res.inst_1_a_1 - PumpsStatus.res.inst_0_a_1 - PumpsStatus.res.abs_4_a_0 - PumpsStatus.res.abs_5_a_0 - PumpsStatus.res.abs_6_a_0 - PumpsStatus.res.abs_7_a_0 - PumpsStatus.res.abs_8_a_0 - PumpsStatus.res.abs_9_a_0 - PumpsStatus.res.abs_10_a_0 - PumpsStatus.res.abs_11_a_0 - PumpsStatus.res.abs_12_a_0 - PumpsStatus.res.abs_13_a_0 - PumpsStatus.res.abs_14_a_0 - PumpsStatus.res.abs_15_a_0 - PumpsStatus.res.abs_16_a_0 - PumpsStatus.res.abs_17_a_0 - PumpsStatus.res.abs_18_a_0 - PumpsStatus.res.abs_19_a_0 - PumpsStatus.res.abs_20_a_0 - PumpsStatus.res.abs_21_a_0 - PumpsStatus.res.inst_24_a_0 - PumpsStatus.res.inst_23_a_0 - PumpsStatus.res.inst_22_a_0 - PumpsStatus.res.inst_21_a_0 - PumpsStatus.res.inst_20_a_0 - PumpsStatus.res.inst_19_a_0 - PumpsStatus.res.inst_18_a_0 - PumpsStatus.res.inst_17_a_0 - PumpsStatus.res.inst_16_a_0 - PumpsStatus.res.inst_15_a_0 - PumpsStatus.res.inst_14_a_0 - PumpsStatus.res.inst_13_a_0 - PumpsStatus.res.inst_12_a_0 - PumpsStatus.res.inst_11_a_0 - PumpsStatus.res.inst_10_a_0 - PumpsStatus.res.inst_9_a_0 - PumpsStatus.res.inst_8_a_0 - PumpsStatus.res.inst_7_a_0 - PumpsStatus.res.inst_6_a_0 - PumpsStatus.res.inst_5_a_0 - PumpsStatus.res.inst_4_a_0 - PumpsStatus.res.inst_3_a_0 - PumpsStatus.res.inst_2_a_0 - PumpsStatus.res.inst_1_a_0 - PumpsStatus.res.inst_0_a_0) - (<= 4 PumpsStatus.res.abs_4_a_1 4) - (<= 0 X1 4) - (not PumpsStatus.res.init_flag_a_1))))))))))))) -) - -(define-fun - __node_init_sum_0 ( - (sum.usr.a_0_a_0 Int) - (sum.usr.a_1_a_0 Int) - (sum.usr.a_2_a_0 Int) - (sum.usr.a_3_a_0 Int) - (sum.usr.sum_a_0 Int) - (sum.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - sum.usr.sum_a_0 - (+ (+ (+ sum.usr.a_0_a_0 sum.usr.a_1_a_0) sum.usr.a_2_a_0) sum.usr.a_3_a_0)) - sum.res.init_flag_a_0) -) - -(define-fun - __node_trans_sum_0 ( - (sum.usr.a_0_a_1 Int) - (sum.usr.a_1_a_1 Int) - (sum.usr.a_2_a_1 Int) - (sum.usr.a_3_a_1 Int) - (sum.usr.sum_a_1 Int) - (sum.res.init_flag_a_1 Bool) - (sum.usr.a_0_a_0 Int) - (sum.usr.a_1_a_0 Int) - (sum.usr.a_2_a_0 Int) - (sum.usr.a_3_a_0 Int) - (sum.usr.sum_a_0 Int) - (sum.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - sum.usr.sum_a_1 - (+ (+ (+ sum.usr.a_0_a_1 sum.usr.a_1_a_1) sum.usr.a_2_a_1) sum.usr.a_3_a_1)) - (not sum.res.init_flag_a_1)) -) - -(define-fun - __node_init_Dynamics_0 ( - (Dynamics.usr.valve_state_a_0 Int) - (Dynamics.usr.level_a_0 Int) - (Dynamics.usr.steam_a_0 Int) - (Dynamics.usr.level_defect_a_0 Int) - (Dynamics.usr.steam_defect_a_0 Int) - (Dynamics.usr.flow_0_a_0 Bool) - (Dynamics.usr.flow_1_a_0 Bool) - (Dynamics.usr.flow_2_a_0 Bool) - (Dynamics.usr.flow_3_a_0 Bool) - (Dynamics.usr.q_a_0 Int) - (Dynamics.usr.v_a_0 Int) - (Dynamics.usr.p_0_a_0 Int) - (Dynamics.usr.p_1_a_0 Int) - (Dynamics.usr.p_2_a_0 Int) - (Dynamics.usr.p_3_a_0 Int) - (Dynamics.res.init_flag_a_0 Bool) - (Dynamics.res.abs_0_a_0 Bool) - (Dynamics.res.abs_1_a_0 Int) - (Dynamics.res.abs_2_a_0 Bool) - (Dynamics.res.inst_2_a_0 Bool) - (Dynamics.res.inst_1_a_0 Bool) - (Dynamics.res.inst_0_a_0 Bool) - ) Bool - - (and - (= Dynamics.usr.q_a_0 Dynamics.usr.level_a_0) - (= Dynamics.usr.p_0_a_0 0) - (= Dynamics.usr.p_1_a_0 0) - (= Dynamics.usr.p_2_a_0 0) - (= Dynamics.usr.p_3_a_0 0) - (= Dynamics.usr.v_a_0 Dynamics.usr.steam_a_0) - (__node_init_level_failure_0 - Dynamics.usr.level_defect_a_0 - Dynamics.res.abs_0_a_0 - Dynamics.res.inst_2_a_0) - (__node_init_sum_0 - Dynamics.usr.p_0_a_0 - Dynamics.usr.p_1_a_0 - Dynamics.usr.p_2_a_0 - Dynamics.usr.p_3_a_0 - Dynamics.res.abs_1_a_0 - Dynamics.res.inst_1_a_0) - (__node_init_steam_failure_0 - Dynamics.usr.steam_defect_a_0 - Dynamics.res.abs_2_a_0 - Dynamics.res.inst_0_a_0) - (<= 0 Dynamics.usr.p_3_a_0 15) - (<= 0 Dynamics.usr.p_2_a_0 15) - (<= 0 Dynamics.usr.p_1_a_0 15) - (<= 0 Dynamics.usr.p_0_a_0 15) - Dynamics.res.init_flag_a_0) -) - -(define-fun - __node_trans_Dynamics_0 ( - (Dynamics.usr.valve_state_a_1 Int) - (Dynamics.usr.level_a_1 Int) - (Dynamics.usr.steam_a_1 Int) - (Dynamics.usr.level_defect_a_1 Int) - (Dynamics.usr.steam_defect_a_1 Int) - (Dynamics.usr.flow_0_a_1 Bool) - (Dynamics.usr.flow_1_a_1 Bool) - (Dynamics.usr.flow_2_a_1 Bool) - (Dynamics.usr.flow_3_a_1 Bool) - (Dynamics.usr.q_a_1 Int) - (Dynamics.usr.v_a_1 Int) - (Dynamics.usr.p_0_a_1 Int) - (Dynamics.usr.p_1_a_1 Int) - (Dynamics.usr.p_2_a_1 Int) - (Dynamics.usr.p_3_a_1 Int) - (Dynamics.res.init_flag_a_1 Bool) - (Dynamics.res.abs_0_a_1 Bool) - (Dynamics.res.abs_1_a_1 Int) - (Dynamics.res.abs_2_a_1 Bool) - (Dynamics.res.inst_2_a_1 Bool) - (Dynamics.res.inst_1_a_1 Bool) - (Dynamics.res.inst_0_a_1 Bool) - (Dynamics.usr.valve_state_a_0 Int) - (Dynamics.usr.level_a_0 Int) - (Dynamics.usr.steam_a_0 Int) - (Dynamics.usr.level_defect_a_0 Int) - (Dynamics.usr.steam_defect_a_0 Int) - (Dynamics.usr.flow_0_a_0 Bool) - (Dynamics.usr.flow_1_a_0 Bool) - (Dynamics.usr.flow_2_a_0 Bool) - (Dynamics.usr.flow_3_a_0 Bool) - (Dynamics.usr.q_a_0 Int) - (Dynamics.usr.v_a_0 Int) - (Dynamics.usr.p_0_a_0 Int) - (Dynamics.usr.p_1_a_0 Int) - (Dynamics.usr.p_2_a_0 Int) - (Dynamics.usr.p_3_a_0 Int) - (Dynamics.res.init_flag_a_0 Bool) - (Dynamics.res.abs_0_a_0 Bool) - (Dynamics.res.abs_1_a_0 Int) - (Dynamics.res.abs_2_a_0 Bool) - (Dynamics.res.inst_2_a_0 Bool) - (Dynamics.res.inst_1_a_0 Bool) - (Dynamics.res.inst_0_a_0 Bool) - ) Bool - - (and - (= Dynamics.usr.p_3_a_1 (ite (not Dynamics.usr.flow_3_a_1) 0 15)) - (= Dynamics.usr.p_2_a_1 (ite (not Dynamics.usr.flow_2_a_1) 0 15)) - (= Dynamics.usr.p_1_a_1 (ite (not Dynamics.usr.flow_1_a_1) 0 15)) - (= Dynamics.usr.p_0_a_1 (ite (not Dynamics.usr.flow_0_a_1) 0 15)) - (= - Dynamics.usr.q_a_1 - (ite - Dynamics.res.abs_0_a_1 - (- - (+ - (- Dynamics.usr.q_a_0 (* Dynamics.usr.steam_a_1 5)) - (* Dynamics.res.abs_1_a_1 5)) - (ite (= Dynamics.usr.valve_state_a_1 1) 50 0)) - Dynamics.usr.level_a_1)) - (= - Dynamics.usr.v_a_1 - (ite - Dynamics.res.abs_2_a_1 - (+ - (div (- Dynamics.usr.q_a_0 Dynamics.usr.q_a_1) 5) - (* Dynamics.res.abs_1_a_1 5)) - Dynamics.usr.steam_a_1)) - (__node_trans_level_failure_0 - Dynamics.usr.level_defect_a_1 - Dynamics.res.abs_0_a_1 - Dynamics.res.inst_2_a_1 - Dynamics.usr.level_defect_a_0 - Dynamics.res.abs_0_a_0 - Dynamics.res.inst_2_a_0) - (__node_trans_sum_0 - Dynamics.usr.p_0_a_1 - Dynamics.usr.p_1_a_1 - Dynamics.usr.p_2_a_1 - Dynamics.usr.p_3_a_1 - Dynamics.res.abs_1_a_1 - Dynamics.res.inst_1_a_1 - Dynamics.usr.p_0_a_0 - Dynamics.usr.p_1_a_0 - Dynamics.usr.p_2_a_0 - Dynamics.usr.p_3_a_0 - Dynamics.res.abs_1_a_0 - Dynamics.res.inst_1_a_0) - (__node_trans_steam_failure_0 - Dynamics.usr.steam_defect_a_1 - Dynamics.res.abs_2_a_1 - Dynamics.res.inst_0_a_1 - Dynamics.usr.steam_defect_a_0 - Dynamics.res.abs_2_a_0 - Dynamics.res.inst_0_a_0) - (<= 0 Dynamics.usr.p_3_a_1 15) - (<= 0 Dynamics.usr.p_2_a_1 15) - (<= 0 Dynamics.usr.p_1_a_1 15) - (<= 0 Dynamics.usr.p_0_a_1 15) - (not Dynamics.res.init_flag_a_1)) -) - -(define-fun - __node_init_pump_failure_detect_0 ( - (pump_failure_detect.usr.pump_status_a_0 Int) - (pump_failure_detect.usr.pump_state_a_0 Int) - (pump_failure_detect.usr.pump_control_state_a_0 Bool) - (pump_failure_detect.usr.pump_failure_detect_a_0 Bool) - (pump_failure_detect.usr.pump_control_failure_detect_a_0 Bool) - (pump_failure_detect.usr.flow_a_0 Bool) - (pump_failure_detect.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - pump_failure_detect.usr.pump_failure_detect_a_0 - (or - (and - (= pump_failure_detect.usr.pump_status_a_0 0) - (= pump_failure_detect.usr.pump_state_a_0 1)) - (and - (or - (= pump_failure_detect.usr.pump_status_a_0 1) - (= pump_failure_detect.usr.pump_status_a_0 2)) - (= pump_failure_detect.usr.pump_state_a_0 0)))) - (= - pump_failure_detect.usr.pump_control_failure_detect_a_0 - (or - (or - (and - (and - (or - (= pump_failure_detect.usr.pump_status_a_0 0) - (= pump_failure_detect.usr.pump_status_a_0 2)) - (= pump_failure_detect.usr.pump_state_a_0 0)) - pump_failure_detect.usr.pump_control_state_a_0) - (and - (and - (= pump_failure_detect.usr.pump_status_a_0 1) - (= pump_failure_detect.usr.pump_state_a_0 1)) - (not pump_failure_detect.usr.pump_control_state_a_0))) - (and - (and - (= pump_failure_detect.usr.pump_status_a_0 2) - (= pump_failure_detect.usr.pump_state_a_0 1)) - pump_failure_detect.usr.pump_control_state_a_0))) - (= - pump_failure_detect.usr.flow_a_0 - (or - (or - (and - (and - (= pump_failure_detect.usr.pump_status_a_0 0) - (= pump_failure_detect.usr.pump_state_a_0 1)) - pump_failure_detect.usr.pump_control_state_a_0) - (and - (and - (= pump_failure_detect.usr.pump_status_a_0 1) - (= pump_failure_detect.usr.pump_state_a_0 0)) - pump_failure_detect.usr.pump_control_state_a_0)) - (and - (= pump_failure_detect.usr.pump_status_a_0 1) - (= pump_failure_detect.usr.pump_state_a_0 1)))) - pump_failure_detect.res.init_flag_a_0) -) - -(define-fun - __node_trans_pump_failure_detect_0 ( - (pump_failure_detect.usr.pump_status_a_1 Int) - (pump_failure_detect.usr.pump_state_a_1 Int) - (pump_failure_detect.usr.pump_control_state_a_1 Bool) - (pump_failure_detect.usr.pump_failure_detect_a_1 Bool) - (pump_failure_detect.usr.pump_control_failure_detect_a_1 Bool) - (pump_failure_detect.usr.flow_a_1 Bool) - (pump_failure_detect.res.init_flag_a_1 Bool) - (pump_failure_detect.usr.pump_status_a_0 Int) - (pump_failure_detect.usr.pump_state_a_0 Int) - (pump_failure_detect.usr.pump_control_state_a_0 Bool) - (pump_failure_detect.usr.pump_failure_detect_a_0 Bool) - (pump_failure_detect.usr.pump_control_failure_detect_a_0 Bool) - (pump_failure_detect.usr.flow_a_0 Bool) - (pump_failure_detect.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - pump_failure_detect.usr.pump_failure_detect_a_1 - (or - (and - (= pump_failure_detect.usr.pump_status_a_1 0) - (= pump_failure_detect.usr.pump_state_a_1 1)) - (and - (or - (= pump_failure_detect.usr.pump_status_a_1 1) - (= pump_failure_detect.usr.pump_status_a_1 2)) - (= pump_failure_detect.usr.pump_state_a_1 0)))) - (= - pump_failure_detect.usr.pump_control_failure_detect_a_1 - (or - (or - (and - (and - (or - (= pump_failure_detect.usr.pump_status_a_1 0) - (= pump_failure_detect.usr.pump_status_a_1 2)) - (= pump_failure_detect.usr.pump_state_a_1 0)) - pump_failure_detect.usr.pump_control_state_a_1) - (and - (and - (= pump_failure_detect.usr.pump_status_a_1 1) - (= pump_failure_detect.usr.pump_state_a_1 1)) - (not pump_failure_detect.usr.pump_control_state_a_1))) - (and - (and - (= pump_failure_detect.usr.pump_status_a_1 2) - (= pump_failure_detect.usr.pump_state_a_1 1)) - pump_failure_detect.usr.pump_control_state_a_1))) - (= - pump_failure_detect.usr.flow_a_1 - (or - (or - (and - (and - (= pump_failure_detect.usr.pump_status_a_1 0) - (= pump_failure_detect.usr.pump_state_a_1 1)) - pump_failure_detect.usr.pump_control_state_a_1) - (and - (and - (= pump_failure_detect.usr.pump_status_a_1 1) - (= pump_failure_detect.usr.pump_state_a_1 0)) - pump_failure_detect.usr.pump_control_state_a_1)) - (and - (= pump_failure_detect.usr.pump_status_a_1 1) - (= pump_failure_detect.usr.pump_state_a_1 1)))) - (not pump_failure_detect.res.init_flag_a_1)) -) - -(define-fun - __node_init_PumpDefect_0 ( - (PumpDefect.usr.pump_failure_acknowledgement_a_0 Bool) - (PumpDefect.usr.pump_repaired_a_0 Bool) - (PumpDefect.usr.pump_control_failure_acknowledgement_a_0 Bool) - (PumpDefect.usr.pump_control_repaired_a_0 Bool) - (PumpDefect.usr.pump_status_a_0 Int) - (PumpDefect.usr.pump_state_a_0 Int) - (PumpDefect.usr.pump_control_state_a_0 Bool) - (PumpDefect.res.nondet_1 Int) - (PumpDefect.res.nondet_0 Int) - (PumpDefect.usr.PumpDefect_a_0 Int) - (PumpDefect.usr.PumpControlDefect_a_0 Int) - (PumpDefect.usr.Flow_a_0 Bool) - (PumpDefect.res.init_flag_a_0 Bool) - (PumpDefect.impl.usr.pump_failure_d_a_0 Bool) - (PumpDefect.impl.usr.pump_control_failure_d_a_0 Bool) - (PumpDefect.res.abs_0_a_0 Bool) - (PumpDefect.res.abs_1_a_0 Bool) - (PumpDefect.res.abs_2_a_0 Bool) - (PumpDefect.res.abs_3_a_0 Int) - (PumpDefect.res.abs_4_a_0 Int) - (PumpDefect.res.abs_5_a_0 Int) - (PumpDefect.res.abs_6_a_0 Int) - (PumpDefect.res.inst_2_a_0 Bool) - (PumpDefect.res.inst_1_a_0 Bool) - (PumpDefect.res.inst_0_a_0 Bool) - ) Bool - - (and - (= PumpDefect.usr.PumpDefect_a_0 0) - (= PumpDefect.res.abs_3_a_0 (let ((X1 Int PumpDefect.res.nondet_0)) X1)) - (= PumpDefect.impl.usr.pump_failure_d_a_0 PumpDefect.res.abs_0_a_0) - (= PumpDefect.usr.PumpControlDefect_a_0 0) - (= PumpDefect.res.abs_5_a_0 (let ((X1 Int PumpDefect.res.nondet_1)) X1)) - (= PumpDefect.impl.usr.pump_control_failure_d_a_0 PumpDefect.res.abs_1_a_0) - (= PumpDefect.usr.Flow_a_0 PumpDefect.res.abs_2_a_0) - (__node_init_Defect_0 - PumpDefect.res.abs_3_a_0 - PumpDefect.impl.usr.pump_failure_d_a_0 - PumpDefect.usr.pump_failure_acknowledgement_a_0 - PumpDefect.usr.pump_repaired_a_0 - PumpDefect.res.abs_4_a_0 - PumpDefect.res.inst_2_a_0) - (__node_init_pump_failure_detect_0 - PumpDefect.usr.pump_status_a_0 - PumpDefect.usr.pump_state_a_0 - PumpDefect.usr.pump_control_state_a_0 - PumpDefect.res.abs_0_a_0 - PumpDefect.res.abs_1_a_0 - PumpDefect.res.abs_2_a_0 - PumpDefect.res.inst_1_a_0) - (__node_init_Defect_0 - PumpDefect.res.abs_5_a_0 - PumpDefect.impl.usr.pump_control_failure_d_a_0 - PumpDefect.usr.pump_control_failure_acknowledgement_a_0 - PumpDefect.usr.pump_control_repaired_a_0 - PumpDefect.res.abs_6_a_0 - PumpDefect.res.inst_0_a_0) - (<= 0 PumpDefect.res.abs_4_a_0 2) - (<= 0 PumpDefect.res.abs_6_a_0 2) - (<= 0 PumpDefect.usr.PumpControlDefect_a_0 2) - (<= 0 PumpDefect.usr.PumpDefect_a_0 2) - PumpDefect.res.init_flag_a_0) -) - -(define-fun - __node_trans_PumpDefect_0 ( - (PumpDefect.usr.pump_failure_acknowledgement_a_1 Bool) - (PumpDefect.usr.pump_repaired_a_1 Bool) - (PumpDefect.usr.pump_control_failure_acknowledgement_a_1 Bool) - (PumpDefect.usr.pump_control_repaired_a_1 Bool) - (PumpDefect.usr.pump_status_a_1 Int) - (PumpDefect.usr.pump_state_a_1 Int) - (PumpDefect.usr.pump_control_state_a_1 Bool) - (PumpDefect.res.nondet_1 Int) - (PumpDefect.res.nondet_0 Int) - (PumpDefect.usr.PumpDefect_a_1 Int) - (PumpDefect.usr.PumpControlDefect_a_1 Int) - (PumpDefect.usr.Flow_a_1 Bool) - (PumpDefect.res.init_flag_a_1 Bool) - (PumpDefect.impl.usr.pump_failure_d_a_1 Bool) - (PumpDefect.impl.usr.pump_control_failure_d_a_1 Bool) - (PumpDefect.res.abs_0_a_1 Bool) - (PumpDefect.res.abs_1_a_1 Bool) - (PumpDefect.res.abs_2_a_1 Bool) - (PumpDefect.res.abs_3_a_1 Int) - (PumpDefect.res.abs_4_a_1 Int) - (PumpDefect.res.abs_5_a_1 Int) - (PumpDefect.res.abs_6_a_1 Int) - (PumpDefect.res.inst_2_a_1 Bool) - (PumpDefect.res.inst_1_a_1 Bool) - (PumpDefect.res.inst_0_a_1 Bool) - (PumpDefect.usr.pump_failure_acknowledgement_a_0 Bool) - (PumpDefect.usr.pump_repaired_a_0 Bool) - (PumpDefect.usr.pump_control_failure_acknowledgement_a_0 Bool) - (PumpDefect.usr.pump_control_repaired_a_0 Bool) - (PumpDefect.usr.pump_status_a_0 Int) - (PumpDefect.usr.pump_state_a_0 Int) - (PumpDefect.usr.pump_control_state_a_0 Bool) - (PumpDefect.usr.PumpDefect_a_0 Int) - (PumpDefect.usr.PumpControlDefect_a_0 Int) - (PumpDefect.usr.Flow_a_0 Bool) - (PumpDefect.res.init_flag_a_0 Bool) - (PumpDefect.impl.usr.pump_failure_d_a_0 Bool) - (PumpDefect.impl.usr.pump_control_failure_d_a_0 Bool) - (PumpDefect.res.abs_0_a_0 Bool) - (PumpDefect.res.abs_1_a_0 Bool) - (PumpDefect.res.abs_2_a_0 Bool) - (PumpDefect.res.abs_3_a_0 Int) - (PumpDefect.res.abs_4_a_0 Int) - (PumpDefect.res.abs_5_a_0 Int) - (PumpDefect.res.abs_6_a_0 Int) - (PumpDefect.res.inst_2_a_0 Bool) - (PumpDefect.res.inst_1_a_0 Bool) - (PumpDefect.res.inst_0_a_0 Bool) - ) Bool - - (and - (= PumpDefect.res.abs_3_a_1 PumpDefect.usr.PumpDefect_a_0) - (= PumpDefect.impl.usr.pump_failure_d_a_1 PumpDefect.res.abs_0_a_1) - (= PumpDefect.usr.PumpDefect_a_1 PumpDefect.res.abs_4_a_1) - (= PumpDefect.res.abs_5_a_1 PumpDefect.usr.PumpControlDefect_a_0) - (= PumpDefect.impl.usr.pump_control_failure_d_a_1 PumpDefect.res.abs_1_a_1) - (= PumpDefect.usr.PumpControlDefect_a_1 PumpDefect.res.abs_6_a_1) - (= PumpDefect.usr.Flow_a_1 PumpDefect.res.abs_2_a_1) - (__node_trans_Defect_0 - PumpDefect.res.abs_3_a_1 - PumpDefect.impl.usr.pump_failure_d_a_1 - PumpDefect.usr.pump_failure_acknowledgement_a_1 - PumpDefect.usr.pump_repaired_a_1 - PumpDefect.res.abs_4_a_1 - PumpDefect.res.inst_2_a_1 - PumpDefect.res.abs_3_a_0 - PumpDefect.impl.usr.pump_failure_d_a_0 - PumpDefect.usr.pump_failure_acknowledgement_a_0 - PumpDefect.usr.pump_repaired_a_0 - PumpDefect.res.abs_4_a_0 - PumpDefect.res.inst_2_a_0) - (__node_trans_pump_failure_detect_0 - PumpDefect.usr.pump_status_a_1 - PumpDefect.usr.pump_state_a_1 - PumpDefect.usr.pump_control_state_a_1 - PumpDefect.res.abs_0_a_1 - PumpDefect.res.abs_1_a_1 - PumpDefect.res.abs_2_a_1 - PumpDefect.res.inst_1_a_1 - PumpDefect.usr.pump_status_a_0 - PumpDefect.usr.pump_state_a_0 - PumpDefect.usr.pump_control_state_a_0 - PumpDefect.res.abs_0_a_0 - PumpDefect.res.abs_1_a_0 - PumpDefect.res.abs_2_a_0 - PumpDefect.res.inst_1_a_0) - (__node_trans_Defect_0 - PumpDefect.res.abs_5_a_1 - PumpDefect.impl.usr.pump_control_failure_d_a_1 - PumpDefect.usr.pump_control_failure_acknowledgement_a_1 - PumpDefect.usr.pump_control_repaired_a_1 - PumpDefect.res.abs_6_a_1 - PumpDefect.res.inst_0_a_1 - PumpDefect.res.abs_5_a_0 - PumpDefect.impl.usr.pump_control_failure_d_a_0 - PumpDefect.usr.pump_control_failure_acknowledgement_a_0 - PumpDefect.usr.pump_control_repaired_a_0 - PumpDefect.res.abs_6_a_0 - PumpDefect.res.inst_0_a_0) - (<= 0 PumpDefect.res.abs_4_a_1 2) - (<= 0 PumpDefect.res.abs_6_a_1 2) - (<= 0 PumpDefect.usr.PumpControlDefect_a_1 2) - (<= 0 PumpDefect.usr.PumpDefect_a_1 2) - (not PumpDefect.res.init_flag_a_1)) -) - -(define-fun - __node_init_LevelOutput_0 ( - (LevelOutput.usr.op_mode_a_0 Int) - (LevelOutput.usr.level_defect_a_0 Int) - (LevelOutput.usr.level_repaired_a_0 Bool) - (LevelOutput.usr.level_outcome_failure_detection_a_0 Bool) - (LevelOutput.usr.level_outcome_repaired_acknowledgement_a_0 Bool) - (LevelOutput.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - LevelOutput.usr.level_outcome_failure_detection_a_0 - (and - (not - (or (= LevelOutput.usr.op_mode_a_0 6) (= LevelOutput.usr.op_mode_a_0 1))) - (= LevelOutput.usr.level_defect_a_0 1))) - (= - LevelOutput.usr.level_outcome_repaired_acknowledgement_a_0 - (and - (not - (or (= LevelOutput.usr.op_mode_a_0 6) (= LevelOutput.usr.op_mode_a_0 1))) - LevelOutput.usr.level_repaired_a_0)) - LevelOutput.res.init_flag_a_0) -) - -(define-fun - __node_trans_LevelOutput_0 ( - (LevelOutput.usr.op_mode_a_1 Int) - (LevelOutput.usr.level_defect_a_1 Int) - (LevelOutput.usr.level_repaired_a_1 Bool) - (LevelOutput.usr.level_outcome_failure_detection_a_1 Bool) - (LevelOutput.usr.level_outcome_repaired_acknowledgement_a_1 Bool) - (LevelOutput.res.init_flag_a_1 Bool) - (LevelOutput.usr.op_mode_a_0 Int) - (LevelOutput.usr.level_defect_a_0 Int) - (LevelOutput.usr.level_repaired_a_0 Bool) - (LevelOutput.usr.level_outcome_failure_detection_a_0 Bool) - (LevelOutput.usr.level_outcome_repaired_acknowledgement_a_0 Bool) - (LevelOutput.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - LevelOutput.usr.level_outcome_failure_detection_a_1 - (and - (not - (or (= LevelOutput.usr.op_mode_a_1 6) (= LevelOutput.usr.op_mode_a_1 1))) - (= LevelOutput.usr.level_defect_a_1 1))) - (= - LevelOutput.usr.level_outcome_repaired_acknowledgement_a_1 - (and - (not - (or (= LevelOutput.usr.op_mode_a_1 6) (= LevelOutput.usr.op_mode_a_1 1))) - LevelOutput.usr.level_repaired_a_1)) - (not LevelOutput.res.init_flag_a_1)) -) - -(define-fun - __node_init_SteamOutput_0 ( - (SteamOutput.usr.op_mode_a_0 Int) - (SteamOutput.usr.steam_defect_a_0 Int) - (SteamOutput.usr.steam_repaired_a_0 Bool) - (SteamOutput.usr.steam_outcome_failure_detection_a_0 Bool) - (SteamOutput.usr.steam_outcome_repaired_acknowledgement_a_0 Bool) - (SteamOutput.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - SteamOutput.usr.steam_outcome_failure_detection_a_0 - (and - (not - (or (= SteamOutput.usr.op_mode_a_0 6) (= SteamOutput.usr.op_mode_a_0 1))) - (= SteamOutput.usr.steam_defect_a_0 1))) - (= - SteamOutput.usr.steam_outcome_repaired_acknowledgement_a_0 - (and - (not - (or (= SteamOutput.usr.op_mode_a_0 6) (= SteamOutput.usr.op_mode_a_0 1))) - SteamOutput.usr.steam_repaired_a_0)) - SteamOutput.res.init_flag_a_0) -) - -(define-fun - __node_trans_SteamOutput_0 ( - (SteamOutput.usr.op_mode_a_1 Int) - (SteamOutput.usr.steam_defect_a_1 Int) - (SteamOutput.usr.steam_repaired_a_1 Bool) - (SteamOutput.usr.steam_outcome_failure_detection_a_1 Bool) - (SteamOutput.usr.steam_outcome_repaired_acknowledgement_a_1 Bool) - (SteamOutput.res.init_flag_a_1 Bool) - (SteamOutput.usr.op_mode_a_0 Int) - (SteamOutput.usr.steam_defect_a_0 Int) - (SteamOutput.usr.steam_repaired_a_0 Bool) - (SteamOutput.usr.steam_outcome_failure_detection_a_0 Bool) - (SteamOutput.usr.steam_outcome_repaired_acknowledgement_a_0 Bool) - (SteamOutput.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - SteamOutput.usr.steam_outcome_failure_detection_a_1 - (and - (not - (or (= SteamOutput.usr.op_mode_a_1 6) (= SteamOutput.usr.op_mode_a_1 1))) - (= SteamOutput.usr.steam_defect_a_1 1))) - (= - SteamOutput.usr.steam_outcome_repaired_acknowledgement_a_1 - (and - (not - (or (= SteamOutput.usr.op_mode_a_1 6) (= SteamOutput.usr.op_mode_a_1 1))) - SteamOutput.usr.steam_repaired_a_1)) - (not SteamOutput.res.init_flag_a_1)) -) - -(define-fun - __node_init_PumpsOutput_0 ( - (PumpsOutput.usr.op_mode_a_0 Int) - (PumpsOutput.usr.pump_status_0_a_0 Int) - (PumpsOutput.usr.pump_status_1_a_0 Int) - (PumpsOutput.usr.pump_status_2_a_0 Int) - (PumpsOutput.usr.pump_status_3_a_0 Int) - (PumpsOutput.usr.pump_defect_0_a_0 Int) - (PumpsOutput.usr.pump_defect_1_a_0 Int) - (PumpsOutput.usr.pump_defect_2_a_0 Int) - (PumpsOutput.usr.pump_defect_3_a_0 Int) - (PumpsOutput.usr.pump_control_defect_0_a_0 Int) - (PumpsOutput.usr.pump_control_defect_1_a_0 Int) - (PumpsOutput.usr.pump_control_defect_2_a_0 Int) - (PumpsOutput.usr.pump_control_defect_3_a_0 Int) - (PumpsOutput.usr.pump_repaired_0_a_0 Bool) - (PumpsOutput.usr.pump_repaired_1_a_0 Bool) - (PumpsOutput.usr.pump_repaired_2_a_0 Bool) - (PumpsOutput.usr.pump_repaired_3_a_0 Bool) - (PumpsOutput.usr.pump_control_repaired_0_a_0 Bool) - (PumpsOutput.usr.pump_control_repaired_1_a_0 Bool) - (PumpsOutput.usr.pump_control_repaired_2_a_0 Bool) - (PumpsOutput.usr.pump_control_repaired_3_a_0 Bool) - (PumpsOutput.res.nondet_7 Int) - (PumpsOutput.res.nondet_6 Int) - (PumpsOutput.res.nondet_5 Int) - (PumpsOutput.res.nondet_4 Int) - (PumpsOutput.res.nondet_3 Int) - (PumpsOutput.res.nondet_2 Int) - (PumpsOutput.res.nondet_1 Int) - (PumpsOutput.res.nondet_0 Int) - (PumpsOutput.usr.open_pump_0_a_0 Bool) - (PumpsOutput.usr.open_pump_1_a_0 Bool) - (PumpsOutput.usr.open_pump_2_a_0 Bool) - (PumpsOutput.usr.open_pump_3_a_0 Bool) - (PumpsOutput.usr.close_pump_0_a_0 Bool) - (PumpsOutput.usr.close_pump_1_a_0 Bool) - (PumpsOutput.usr.close_pump_2_a_0 Bool) - (PumpsOutput.usr.close_pump_3_a_0 Bool) - (PumpsOutput.usr.pump_failure_detection_0_a_0 Bool) - (PumpsOutput.usr.pump_failure_detection_1_a_0 Bool) - (PumpsOutput.usr.pump_failure_detection_2_a_0 Bool) - (PumpsOutput.usr.pump_failure_detection_3_a_0 Bool) - (PumpsOutput.usr.pump_repaired_acknowledgement_0_a_0 Bool) - (PumpsOutput.usr.pump_repaired_acknowledgement_1_a_0 Bool) - (PumpsOutput.usr.pump_repaired_acknowledgement_2_a_0 Bool) - (PumpsOutput.usr.pump_repaired_acknowledgement_3_a_0 Bool) - (PumpsOutput.usr.pump_control_failure_detection_0_a_0 Bool) - (PumpsOutput.usr.pump_control_failure_detection_1_a_0 Bool) - (PumpsOutput.usr.pump_control_failure_detection_2_a_0 Bool) - (PumpsOutput.usr.pump_control_failure_detection_3_a_0 Bool) - (PumpsOutput.usr.pump_control_repaired_acknowledgement_0_a_0 Bool) - (PumpsOutput.usr.pump_control_repaired_acknowledgement_1_a_0 Bool) - (PumpsOutput.usr.pump_control_repaired_acknowledgement_2_a_0 Bool) - (PumpsOutput.usr.pump_control_repaired_acknowledgement_3_a_0 Bool) - (PumpsOutput.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - PumpsOutput.usr.open_pump_0_a_0 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - (= PumpsOutput.usr.pump_status_0_a_0 2))) - (= - PumpsOutput.usr.open_pump_1_a_0 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - (= PumpsOutput.usr.pump_status_1_a_0 2))) - (= - PumpsOutput.usr.open_pump_2_a_0 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - (= PumpsOutput.usr.pump_status_2_a_0 2))) - (= - PumpsOutput.usr.open_pump_3_a_0 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - (= PumpsOutput.usr.pump_status_3_a_0 2))) - (= - PumpsOutput.usr.close_pump_0_a_0 - (let - ((X1 Int PumpsOutput.res.nondet_1) (X2 Int PumpsOutput.res.nondet_0)) - (and - (and - (and - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - (= PumpsOutput.usr.pump_status_0_a_0 0)) - (not (= X2 0))) - (= PumpsOutput.usr.pump_defect_0_a_0 0)) - (= X1 0)))) - (= - PumpsOutput.usr.close_pump_1_a_0 - (let - ((X1 Int PumpsOutput.res.nondet_3) (X2 Int PumpsOutput.res.nondet_2)) - (and - (and - (and - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - (= PumpsOutput.usr.pump_status_0_a_0 0)) - (not (= X2 0))) - (= PumpsOutput.usr.pump_defect_0_a_0 0)) - (= X1 0)))) - (= - PumpsOutput.usr.close_pump_2_a_0 - (let - ((X1 Int PumpsOutput.res.nondet_5) (X2 Int PumpsOutput.res.nondet_4)) - (and - (and - (and - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - (= PumpsOutput.usr.pump_status_0_a_0 0)) - (not (= X2 0))) - (= PumpsOutput.usr.pump_defect_0_a_0 0)) - (= X1 0)))) - (= - PumpsOutput.usr.close_pump_3_a_0 - (let - ((X1 Int PumpsOutput.res.nondet_7) (X2 Int PumpsOutput.res.nondet_6)) - (and - (and - (and - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - (= PumpsOutput.usr.pump_status_0_a_0 0)) - (not (= X2 0))) - (= PumpsOutput.usr.pump_defect_0_a_0 0)) - (= X1 0)))) - (= - PumpsOutput.usr.pump_failure_detection_0_a_0 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - (= PumpsOutput.usr.pump_defect_0_a_0 1))) - (= - PumpsOutput.usr.pump_failure_detection_1_a_0 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - (= PumpsOutput.usr.pump_defect_1_a_0 1))) - (= - PumpsOutput.usr.pump_failure_detection_2_a_0 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - (= PumpsOutput.usr.pump_defect_2_a_0 1))) - (= - PumpsOutput.usr.pump_failure_detection_3_a_0 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - (= PumpsOutput.usr.pump_defect_3_a_0 1))) - (= - PumpsOutput.usr.pump_repaired_acknowledgement_0_a_0 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - PumpsOutput.usr.pump_repaired_0_a_0)) - (= - PumpsOutput.usr.pump_repaired_acknowledgement_1_a_0 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - PumpsOutput.usr.pump_repaired_1_a_0)) - (= - PumpsOutput.usr.pump_repaired_acknowledgement_2_a_0 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - PumpsOutput.usr.pump_repaired_2_a_0)) - (= - PumpsOutput.usr.pump_repaired_acknowledgement_3_a_0 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - PumpsOutput.usr.pump_repaired_3_a_0)) - (= - PumpsOutput.usr.pump_control_failure_detection_0_a_0 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - (= PumpsOutput.usr.pump_control_defect_0_a_0 1))) - (= - PumpsOutput.usr.pump_control_failure_detection_1_a_0 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - (= PumpsOutput.usr.pump_control_defect_1_a_0 1))) - (= - PumpsOutput.usr.pump_control_failure_detection_2_a_0 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - (= PumpsOutput.usr.pump_control_defect_2_a_0 1))) - (= - PumpsOutput.usr.pump_control_failure_detection_3_a_0 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - (= PumpsOutput.usr.pump_control_defect_3_a_0 1))) - (= - PumpsOutput.usr.pump_control_repaired_acknowledgement_0_a_0 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - PumpsOutput.usr.pump_control_repaired_0_a_0)) - (= - PumpsOutput.usr.pump_control_repaired_acknowledgement_1_a_0 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - PumpsOutput.usr.pump_control_repaired_1_a_0)) - (= - PumpsOutput.usr.pump_control_repaired_acknowledgement_2_a_0 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - PumpsOutput.usr.pump_control_repaired_2_a_0)) - (= - PumpsOutput.usr.pump_control_repaired_acknowledgement_3_a_0 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - PumpsOutput.usr.pump_control_repaired_3_a_0)) - PumpsOutput.res.init_flag_a_0) -) - -(define-fun - __node_trans_PumpsOutput_0 ( - (PumpsOutput.usr.op_mode_a_1 Int) - (PumpsOutput.usr.pump_status_0_a_1 Int) - (PumpsOutput.usr.pump_status_1_a_1 Int) - (PumpsOutput.usr.pump_status_2_a_1 Int) - (PumpsOutput.usr.pump_status_3_a_1 Int) - (PumpsOutput.usr.pump_defect_0_a_1 Int) - (PumpsOutput.usr.pump_defect_1_a_1 Int) - (PumpsOutput.usr.pump_defect_2_a_1 Int) - (PumpsOutput.usr.pump_defect_3_a_1 Int) - (PumpsOutput.usr.pump_control_defect_0_a_1 Int) - (PumpsOutput.usr.pump_control_defect_1_a_1 Int) - (PumpsOutput.usr.pump_control_defect_2_a_1 Int) - (PumpsOutput.usr.pump_control_defect_3_a_1 Int) - (PumpsOutput.usr.pump_repaired_0_a_1 Bool) - (PumpsOutput.usr.pump_repaired_1_a_1 Bool) - (PumpsOutput.usr.pump_repaired_2_a_1 Bool) - (PumpsOutput.usr.pump_repaired_3_a_1 Bool) - (PumpsOutput.usr.pump_control_repaired_0_a_1 Bool) - (PumpsOutput.usr.pump_control_repaired_1_a_1 Bool) - (PumpsOutput.usr.pump_control_repaired_2_a_1 Bool) - (PumpsOutput.usr.pump_control_repaired_3_a_1 Bool) - (PumpsOutput.res.nondet_7 Int) - (PumpsOutput.res.nondet_6 Int) - (PumpsOutput.res.nondet_5 Int) - (PumpsOutput.res.nondet_4 Int) - (PumpsOutput.res.nondet_3 Int) - (PumpsOutput.res.nondet_2 Int) - (PumpsOutput.res.nondet_1 Int) - (PumpsOutput.res.nondet_0 Int) - (PumpsOutput.usr.open_pump_0_a_1 Bool) - (PumpsOutput.usr.open_pump_1_a_1 Bool) - (PumpsOutput.usr.open_pump_2_a_1 Bool) - (PumpsOutput.usr.open_pump_3_a_1 Bool) - (PumpsOutput.usr.close_pump_0_a_1 Bool) - (PumpsOutput.usr.close_pump_1_a_1 Bool) - (PumpsOutput.usr.close_pump_2_a_1 Bool) - (PumpsOutput.usr.close_pump_3_a_1 Bool) - (PumpsOutput.usr.pump_failure_detection_0_a_1 Bool) - (PumpsOutput.usr.pump_failure_detection_1_a_1 Bool) - (PumpsOutput.usr.pump_failure_detection_2_a_1 Bool) - (PumpsOutput.usr.pump_failure_detection_3_a_1 Bool) - (PumpsOutput.usr.pump_repaired_acknowledgement_0_a_1 Bool) - (PumpsOutput.usr.pump_repaired_acknowledgement_1_a_1 Bool) - (PumpsOutput.usr.pump_repaired_acknowledgement_2_a_1 Bool) - (PumpsOutput.usr.pump_repaired_acknowledgement_3_a_1 Bool) - (PumpsOutput.usr.pump_control_failure_detection_0_a_1 Bool) - (PumpsOutput.usr.pump_control_failure_detection_1_a_1 Bool) - (PumpsOutput.usr.pump_control_failure_detection_2_a_1 Bool) - (PumpsOutput.usr.pump_control_failure_detection_3_a_1 Bool) - (PumpsOutput.usr.pump_control_repaired_acknowledgement_0_a_1 Bool) - (PumpsOutput.usr.pump_control_repaired_acknowledgement_1_a_1 Bool) - (PumpsOutput.usr.pump_control_repaired_acknowledgement_2_a_1 Bool) - (PumpsOutput.usr.pump_control_repaired_acknowledgement_3_a_1 Bool) - (PumpsOutput.res.init_flag_a_1 Bool) - (PumpsOutput.usr.op_mode_a_0 Int) - (PumpsOutput.usr.pump_status_0_a_0 Int) - (PumpsOutput.usr.pump_status_1_a_0 Int) - (PumpsOutput.usr.pump_status_2_a_0 Int) - (PumpsOutput.usr.pump_status_3_a_0 Int) - (PumpsOutput.usr.pump_defect_0_a_0 Int) - (PumpsOutput.usr.pump_defect_1_a_0 Int) - (PumpsOutput.usr.pump_defect_2_a_0 Int) - (PumpsOutput.usr.pump_defect_3_a_0 Int) - (PumpsOutput.usr.pump_control_defect_0_a_0 Int) - (PumpsOutput.usr.pump_control_defect_1_a_0 Int) - (PumpsOutput.usr.pump_control_defect_2_a_0 Int) - (PumpsOutput.usr.pump_control_defect_3_a_0 Int) - (PumpsOutput.usr.pump_repaired_0_a_0 Bool) - (PumpsOutput.usr.pump_repaired_1_a_0 Bool) - (PumpsOutput.usr.pump_repaired_2_a_0 Bool) - (PumpsOutput.usr.pump_repaired_3_a_0 Bool) - (PumpsOutput.usr.pump_control_repaired_0_a_0 Bool) - (PumpsOutput.usr.pump_control_repaired_1_a_0 Bool) - (PumpsOutput.usr.pump_control_repaired_2_a_0 Bool) - (PumpsOutput.usr.pump_control_repaired_3_a_0 Bool) - (PumpsOutput.usr.open_pump_0_a_0 Bool) - (PumpsOutput.usr.open_pump_1_a_0 Bool) - (PumpsOutput.usr.open_pump_2_a_0 Bool) - (PumpsOutput.usr.open_pump_3_a_0 Bool) - (PumpsOutput.usr.close_pump_0_a_0 Bool) - (PumpsOutput.usr.close_pump_1_a_0 Bool) - (PumpsOutput.usr.close_pump_2_a_0 Bool) - (PumpsOutput.usr.close_pump_3_a_0 Bool) - (PumpsOutput.usr.pump_failure_detection_0_a_0 Bool) - (PumpsOutput.usr.pump_failure_detection_1_a_0 Bool) - (PumpsOutput.usr.pump_failure_detection_2_a_0 Bool) - (PumpsOutput.usr.pump_failure_detection_3_a_0 Bool) - (PumpsOutput.usr.pump_repaired_acknowledgement_0_a_0 Bool) - (PumpsOutput.usr.pump_repaired_acknowledgement_1_a_0 Bool) - (PumpsOutput.usr.pump_repaired_acknowledgement_2_a_0 Bool) - (PumpsOutput.usr.pump_repaired_acknowledgement_3_a_0 Bool) - (PumpsOutput.usr.pump_control_failure_detection_0_a_0 Bool) - (PumpsOutput.usr.pump_control_failure_detection_1_a_0 Bool) - (PumpsOutput.usr.pump_control_failure_detection_2_a_0 Bool) - (PumpsOutput.usr.pump_control_failure_detection_3_a_0 Bool) - (PumpsOutput.usr.pump_control_repaired_acknowledgement_0_a_0 Bool) - (PumpsOutput.usr.pump_control_repaired_acknowledgement_1_a_0 Bool) - (PumpsOutput.usr.pump_control_repaired_acknowledgement_2_a_0 Bool) - (PumpsOutput.usr.pump_control_repaired_acknowledgement_3_a_0 Bool) - (PumpsOutput.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - PumpsOutput.usr.open_pump_0_a_1 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - (= PumpsOutput.usr.pump_status_0_a_1 2))) - (= - PumpsOutput.usr.open_pump_1_a_1 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - (= PumpsOutput.usr.pump_status_1_a_1 2))) - (= - PumpsOutput.usr.open_pump_2_a_1 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - (= PumpsOutput.usr.pump_status_2_a_1 2))) - (= - PumpsOutput.usr.open_pump_3_a_1 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - (= PumpsOutput.usr.pump_status_3_a_1 2))) - (= - PumpsOutput.usr.close_pump_0_a_1 - (and - (and - (and - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - (= PumpsOutput.usr.pump_status_0_a_1 0)) - (not (= PumpsOutput.usr.pump_status_0_a_0 0))) - (= PumpsOutput.usr.pump_defect_0_a_1 0)) - (= PumpsOutput.usr.pump_defect_0_a_0 0))) - (= - PumpsOutput.usr.close_pump_1_a_1 - (and - (and - (and - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - (= PumpsOutput.usr.pump_status_0_a_1 0)) - (not (= PumpsOutput.usr.pump_status_1_a_0 0))) - (= PumpsOutput.usr.pump_defect_0_a_1 0)) - (= PumpsOutput.usr.pump_defect_1_a_0 0))) - (= - PumpsOutput.usr.close_pump_2_a_1 - (and - (and - (and - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - (= PumpsOutput.usr.pump_status_0_a_1 0)) - (not (= PumpsOutput.usr.pump_status_2_a_0 0))) - (= PumpsOutput.usr.pump_defect_0_a_1 0)) - (= PumpsOutput.usr.pump_defect_2_a_0 0))) - (= - PumpsOutput.usr.close_pump_3_a_1 - (and - (and - (and - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - (= PumpsOutput.usr.pump_status_0_a_1 0)) - (not (= PumpsOutput.usr.pump_status_3_a_0 0))) - (= PumpsOutput.usr.pump_defect_0_a_1 0)) - (= PumpsOutput.usr.pump_defect_3_a_0 0))) - (= - PumpsOutput.usr.pump_failure_detection_0_a_1 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - (= PumpsOutput.usr.pump_defect_0_a_1 1))) - (= - PumpsOutput.usr.pump_failure_detection_1_a_1 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - (= PumpsOutput.usr.pump_defect_1_a_1 1))) - (= - PumpsOutput.usr.pump_failure_detection_2_a_1 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - (= PumpsOutput.usr.pump_defect_2_a_1 1))) - (= - PumpsOutput.usr.pump_failure_detection_3_a_1 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - (= PumpsOutput.usr.pump_defect_3_a_1 1))) - (= - PumpsOutput.usr.pump_repaired_acknowledgement_0_a_1 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - PumpsOutput.usr.pump_repaired_0_a_1)) - (= - PumpsOutput.usr.pump_repaired_acknowledgement_1_a_1 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - PumpsOutput.usr.pump_repaired_1_a_1)) - (= - PumpsOutput.usr.pump_repaired_acknowledgement_2_a_1 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - PumpsOutput.usr.pump_repaired_2_a_1)) - (= - PumpsOutput.usr.pump_repaired_acknowledgement_3_a_1 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - PumpsOutput.usr.pump_repaired_3_a_1)) - (= - PumpsOutput.usr.pump_control_failure_detection_0_a_1 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - (= PumpsOutput.usr.pump_control_defect_0_a_1 1))) - (= - PumpsOutput.usr.pump_control_failure_detection_1_a_1 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - (= PumpsOutput.usr.pump_control_defect_1_a_1 1))) - (= - PumpsOutput.usr.pump_control_failure_detection_2_a_1 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - (= PumpsOutput.usr.pump_control_defect_2_a_1 1))) - (= - PumpsOutput.usr.pump_control_failure_detection_3_a_1 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - (= PumpsOutput.usr.pump_control_defect_3_a_1 1))) - (= - PumpsOutput.usr.pump_control_repaired_acknowledgement_0_a_1 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - PumpsOutput.usr.pump_control_repaired_0_a_1)) - (= - PumpsOutput.usr.pump_control_repaired_acknowledgement_1_a_1 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - PumpsOutput.usr.pump_control_repaired_1_a_1)) - (= - PumpsOutput.usr.pump_control_repaired_acknowledgement_2_a_1 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - PumpsOutput.usr.pump_control_repaired_2_a_1)) - (= - PumpsOutput.usr.pump_control_repaired_acknowledgement_3_a_1 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - PumpsOutput.usr.pump_control_repaired_3_a_1)) - (not PumpsOutput.res.init_flag_a_1)) -) - -(define-fun - __node_init_Valve_0 ( - (Valve.usr.op_mode_a_0 Int) - (Valve.usr.q_a_0 Int) - (Valve.usr.valve_a_0 Bool) - (Valve.usr.valve_state_a_0 Int) - (Valve.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Valve.usr.valve_a_0 false) - (= Valve.usr.valve_state_a_0 0) - Valve.res.init_flag_a_0) -) - -(define-fun - __node_trans_Valve_0 ( - (Valve.usr.op_mode_a_1 Int) - (Valve.usr.q_a_1 Int) - (Valve.usr.valve_a_1 Bool) - (Valve.usr.valve_state_a_1 Int) - (Valve.res.init_flag_a_1 Bool) - (Valve.usr.op_mode_a_0 Int) - (Valve.usr.q_a_0 Int) - (Valve.usr.valve_a_0 Bool) - (Valve.usr.valve_state_a_0 Int) - (Valve.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - Valve.usr.valve_state_a_1 - (ite - (= Valve.usr.op_mode_a_1 2) - (ite - (> Valve.usr.q_a_1 600) - 1 - (ite (<= Valve.usr.q_a_1 600) 0 Valve.usr.valve_state_a_0)) - Valve.usr.valve_state_a_0)) - (= - Valve.usr.valve_a_1 - (not (= Valve.usr.valve_state_a_1 Valve.usr.valve_state_a_0))) - (not Valve.res.init_flag_a_1)) -) - -(define-fun - __node_init_PumpsDecision_0 ( - (PumpsDecision.usr.q_a_0 Int) - (PumpsDecision.usr.v_a_0 Int) - (PumpsDecision.res.nondet_0 Int) - (PumpsDecision.usr.n_pumps_a_0 Int) - (PumpsDecision.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - PumpsDecision.usr.n_pumps_a_0 - (let - ((X1 Int PumpsDecision.res.nondet_0)) - (ite - (> PumpsDecision.usr.q_a_0 600) - (div PumpsDecision.usr.v_a_0 15) - (ite - (< PumpsDecision.usr.q_a_0 400) - (+ (div PumpsDecision.usr.v_a_0 15) 1) - X1)))) - PumpsDecision.res.init_flag_a_0) -) - -(define-fun - __node_trans_PumpsDecision_0 ( - (PumpsDecision.usr.q_a_1 Int) - (PumpsDecision.usr.v_a_1 Int) - (PumpsDecision.res.nondet_0 Int) - (PumpsDecision.usr.n_pumps_a_1 Int) - (PumpsDecision.res.init_flag_a_1 Bool) - (PumpsDecision.usr.q_a_0 Int) - (PumpsDecision.usr.v_a_0 Int) - (PumpsDecision.usr.n_pumps_a_0 Int) - (PumpsDecision.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - PumpsDecision.usr.n_pumps_a_1 - (ite - (> PumpsDecision.usr.q_a_1 600) - (div PumpsDecision.usr.v_a_1 15) - (ite - (< PumpsDecision.usr.q_a_1 400) - (+ (div PumpsDecision.usr.v_a_1 15) 1) - PumpsDecision.usr.n_pumps_a_0))) - (not PumpsDecision.res.init_flag_a_1)) -) - -(define-fun - __node_init_steam_failure_detect_0 ( - (steam_failure_detect.usr.steam_a_0 Int) - (steam_failure_detect.usr.steam_failure_detect_a_0 Bool) - (steam_failure_detect.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - steam_failure_detect.usr.steam_failure_detect_a_0 - (or - (< steam_failure_detect.usr.steam_a_0 0) - (> steam_failure_detect.usr.steam_a_0 25))) - steam_failure_detect.res.init_flag_a_0) -) - -(define-fun - __node_trans_steam_failure_detect_0 ( - (steam_failure_detect.usr.steam_a_1 Int) - (steam_failure_detect.usr.steam_failure_detect_a_1 Bool) - (steam_failure_detect.res.init_flag_a_1 Bool) - (steam_failure_detect.usr.steam_a_0 Int) - (steam_failure_detect.usr.steam_failure_detect_a_0 Bool) - (steam_failure_detect.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - steam_failure_detect.usr.steam_failure_detect_a_1 - (or - (< steam_failure_detect.usr.steam_a_1 0) - (> steam_failure_detect.usr.steam_a_1 25))) - (not steam_failure_detect.res.init_flag_a_1)) -) - -(define-fun - __node_init_SteamDefect_0 ( - (SteamDefect.usr.steam_failure_acknowledgement_a_0 Bool) - (SteamDefect.usr.steam_repaired_a_0 Bool) - (SteamDefect.usr.steam_a_0 Int) - (SteamDefect.res.nondet_0 Int) - (SteamDefect.usr.SteamDefect_a_0 Int) - (SteamDefect.res.init_flag_a_0 Bool) - (SteamDefect.res.abs_0_a_0 Bool) - (SteamDefect.res.abs_1_a_0 Int) - (SteamDefect.res.abs_2_a_0 Int) - (SteamDefect.res.inst_1_a_0 Bool) - (SteamDefect.res.inst_0_a_0 Bool) - ) Bool - - (and - (= SteamDefect.usr.SteamDefect_a_0 0) - (= SteamDefect.res.abs_1_a_0 (let ((X1 Int SteamDefect.res.nondet_0)) X1)) - (__node_init_Defect_0 - SteamDefect.res.abs_1_a_0 - SteamDefect.res.abs_0_a_0 - SteamDefect.usr.steam_failure_acknowledgement_a_0 - SteamDefect.usr.steam_repaired_a_0 - SteamDefect.res.abs_2_a_0 - SteamDefect.res.inst_1_a_0) - (__node_init_steam_failure_detect_0 - SteamDefect.usr.steam_a_0 - SteamDefect.res.abs_0_a_0 - SteamDefect.res.inst_0_a_0) - (<= 0 SteamDefect.res.abs_2_a_0 2) - (<= 0 SteamDefect.usr.SteamDefect_a_0 2) - SteamDefect.res.init_flag_a_0) -) - -(define-fun - __node_trans_SteamDefect_0 ( - (SteamDefect.usr.steam_failure_acknowledgement_a_1 Bool) - (SteamDefect.usr.steam_repaired_a_1 Bool) - (SteamDefect.usr.steam_a_1 Int) - (SteamDefect.res.nondet_0 Int) - (SteamDefect.usr.SteamDefect_a_1 Int) - (SteamDefect.res.init_flag_a_1 Bool) - (SteamDefect.res.abs_0_a_1 Bool) - (SteamDefect.res.abs_1_a_1 Int) - (SteamDefect.res.abs_2_a_1 Int) - (SteamDefect.res.inst_1_a_1 Bool) - (SteamDefect.res.inst_0_a_1 Bool) - (SteamDefect.usr.steam_failure_acknowledgement_a_0 Bool) - (SteamDefect.usr.steam_repaired_a_0 Bool) - (SteamDefect.usr.steam_a_0 Int) - (SteamDefect.usr.SteamDefect_a_0 Int) - (SteamDefect.res.init_flag_a_0 Bool) - (SteamDefect.res.abs_0_a_0 Bool) - (SteamDefect.res.abs_1_a_0 Int) - (SteamDefect.res.abs_2_a_0 Int) - (SteamDefect.res.inst_1_a_0 Bool) - (SteamDefect.res.inst_0_a_0 Bool) - ) Bool - - (and - (= SteamDefect.res.abs_1_a_1 SteamDefect.usr.SteamDefect_a_0) - (= SteamDefect.usr.SteamDefect_a_1 SteamDefect.res.abs_2_a_1) - (__node_trans_Defect_0 - SteamDefect.res.abs_1_a_1 - SteamDefect.res.abs_0_a_1 - SteamDefect.usr.steam_failure_acknowledgement_a_1 - SteamDefect.usr.steam_repaired_a_1 - SteamDefect.res.abs_2_a_1 - SteamDefect.res.inst_1_a_1 - SteamDefect.res.abs_1_a_0 - SteamDefect.res.abs_0_a_0 - SteamDefect.usr.steam_failure_acknowledgement_a_0 - SteamDefect.usr.steam_repaired_a_0 - SteamDefect.res.abs_2_a_0 - SteamDefect.res.inst_1_a_0) - (__node_trans_steam_failure_detect_0 - SteamDefect.usr.steam_a_1 - SteamDefect.res.abs_0_a_1 - SteamDefect.res.inst_0_a_1 - SteamDefect.usr.steam_a_0 - SteamDefect.res.abs_0_a_0 - SteamDefect.res.inst_0_a_0) - (<= 0 SteamDefect.res.abs_2_a_1 2) - (<= 0 SteamDefect.usr.SteamDefect_a_1 2) - (not SteamDefect.res.init_flag_a_1)) -) - -(define-fun - __node_init_Operator_0 ( - (Operator.usr.stop_a_0 Bool) - (Operator.usr.stop_request_a_0 Bool) - (Operator.res.init_flag_a_0 Bool) - (Operator.impl.usr.nb_stops_a_0 Int) - ) Bool - - (and - (= Operator.impl.usr.nb_stops_a_0 (ite Operator.usr.stop_a_0 1 0)) - (= Operator.usr.stop_request_a_0 (>= Operator.impl.usr.nb_stops_a_0 3)) - Operator.res.init_flag_a_0) -) - -(define-fun - __node_trans_Operator_0 ( - (Operator.usr.stop_a_1 Bool) - (Operator.usr.stop_request_a_1 Bool) - (Operator.res.init_flag_a_1 Bool) - (Operator.impl.usr.nb_stops_a_1 Int) - (Operator.usr.stop_a_0 Bool) - (Operator.usr.stop_request_a_0 Bool) - (Operator.res.init_flag_a_0 Bool) - (Operator.impl.usr.nb_stops_a_0 Int) - ) Bool - - (and - (= - Operator.impl.usr.nb_stops_a_1 - (ite Operator.usr.stop_a_1 (+ Operator.impl.usr.nb_stops_a_0 1) 0)) - (= Operator.usr.stop_request_a_1 (>= Operator.impl.usr.nb_stops_a_1 3)) - (not Operator.res.init_flag_a_1)) -) - -(define-fun - __node_init_initialization_complete_0 ( - (initialization_complete.usr.op_mode_a_0 Int) - (initialization_complete.usr.level_a_0 Int) - (initialization_complete.usr.valve_a_0 Bool) - (initialization_complete.usr.initialization_complete_a_0 Bool) - (initialization_complete.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - initialization_complete.usr.initialization_complete_a_0 - (and - (and - (= initialization_complete.usr.op_mode_a_0 2) - (and - (<= 400 initialization_complete.usr.level_a_0) - (<= initialization_complete.usr.level_a_0 600))) - (not initialization_complete.usr.valve_a_0))) - initialization_complete.res.init_flag_a_0) -) - -(define-fun - __node_trans_initialization_complete_0 ( - (initialization_complete.usr.op_mode_a_1 Int) - (initialization_complete.usr.level_a_1 Int) - (initialization_complete.usr.valve_a_1 Bool) - (initialization_complete.usr.initialization_complete_a_1 Bool) - (initialization_complete.res.init_flag_a_1 Bool) - (initialization_complete.usr.op_mode_a_0 Int) - (initialization_complete.usr.level_a_0 Int) - (initialization_complete.usr.valve_a_0 Bool) - (initialization_complete.usr.initialization_complete_a_0 Bool) - (initialization_complete.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - initialization_complete.usr.initialization_complete_a_1 - (and - (and - (= initialization_complete.usr.op_mode_a_1 2) - (and - (<= 400 initialization_complete.usr.level_a_1) - (<= initialization_complete.usr.level_a_1 600))) - (not initialization_complete.usr.valve_a_1))) - (not initialization_complete.res.init_flag_a_1)) -) - -(define-fun - __node_init_ControlOutput_0 ( - (ControlOutput.usr.op_mode_a_0 Int) - (ControlOutput.usr.level_a_0 Int) - (ControlOutput.usr.valve_a_0 Bool) - (ControlOutput.usr.program_ready_a_0 Bool) - (ControlOutput.usr.mode_a_0 Int) - (ControlOutput.res.init_flag_a_0 Bool) - (ControlOutput.res.abs_0_a_0 Bool) - (ControlOutput.res.inst_0_a_0 Bool) - ) Bool - - (and - (= ControlOutput.usr.program_ready_a_0 ControlOutput.res.abs_0_a_0) - (= ControlOutput.usr.mode_a_0 ControlOutput.usr.op_mode_a_0) - (__node_init_initialization_complete_0 - ControlOutput.usr.op_mode_a_0 - ControlOutput.usr.level_a_0 - ControlOutput.usr.valve_a_0 - ControlOutput.res.abs_0_a_0 - ControlOutput.res.inst_0_a_0) - ControlOutput.res.init_flag_a_0) -) - -(define-fun - __node_trans_ControlOutput_0 ( - (ControlOutput.usr.op_mode_a_1 Int) - (ControlOutput.usr.level_a_1 Int) - (ControlOutput.usr.valve_a_1 Bool) - (ControlOutput.usr.program_ready_a_1 Bool) - (ControlOutput.usr.mode_a_1 Int) - (ControlOutput.res.init_flag_a_1 Bool) - (ControlOutput.res.abs_0_a_1 Bool) - (ControlOutput.res.inst_0_a_1 Bool) - (ControlOutput.usr.op_mode_a_0 Int) - (ControlOutput.usr.level_a_0 Int) - (ControlOutput.usr.valve_a_0 Bool) - (ControlOutput.usr.program_ready_a_0 Bool) - (ControlOutput.usr.mode_a_0 Int) - (ControlOutput.res.init_flag_a_0 Bool) - (ControlOutput.res.abs_0_a_0 Bool) - (ControlOutput.res.inst_0_a_0 Bool) - ) Bool - - (and - (= ControlOutput.usr.program_ready_a_1 ControlOutput.res.abs_0_a_1) - (= ControlOutput.usr.mode_a_1 ControlOutput.usr.op_mode_a_1) - (__node_trans_initialization_complete_0 - ControlOutput.usr.op_mode_a_1 - ControlOutput.usr.level_a_1 - ControlOutput.usr.valve_a_1 - ControlOutput.res.abs_0_a_1 - ControlOutput.res.inst_0_a_1 - ControlOutput.usr.op_mode_a_0 - ControlOutput.usr.level_a_0 - ControlOutput.usr.valve_a_0 - ControlOutput.res.abs_0_a_0 - ControlOutput.res.inst_0_a_0) - (not ControlOutput.res.init_flag_a_1)) -) - -(define-fun - __node_init_BoilerController_0 ( - (BoilerController.usr.stop_a_0 Bool) - (BoilerController.usr.steam_boiler_waiting_a_0 Bool) - (BoilerController.usr.physical_units_ready_a_0 Bool) - (BoilerController.usr.level_a_0 Int) - (BoilerController.usr.steam_a_0 Int) - (BoilerController.usr.pump_state_0_a_0 Int) - (BoilerController.usr.pump_state_1_a_0 Int) - (BoilerController.usr.pump_state_2_a_0 Int) - (BoilerController.usr.pump_state_3_a_0 Int) - (BoilerController.usr.pump_control_state_0_a_0 Bool) - (BoilerController.usr.pump_control_state_1_a_0 Bool) - (BoilerController.usr.pump_control_state_2_a_0 Bool) - (BoilerController.usr.pump_control_state_3_a_0 Bool) - (BoilerController.usr.pump_repaired_0_a_0 Bool) - (BoilerController.usr.pump_repaired_1_a_0 Bool) - (BoilerController.usr.pump_repaired_2_a_0 Bool) - (BoilerController.usr.pump_repaired_3_a_0 Bool) - (BoilerController.usr.pump_control_repaired_0_a_0 Bool) - (BoilerController.usr.pump_control_repaired_1_a_0 Bool) - (BoilerController.usr.pump_control_repaired_2_a_0 Bool) - (BoilerController.usr.pump_control_repaired_3_a_0 Bool) - (BoilerController.usr.level_repaired_a_0 Bool) - (BoilerController.usr.steam_repaired_a_0 Bool) - (BoilerController.usr.pump_failure_acknowledgement_0_a_0 Bool) - (BoilerController.usr.pump_failure_acknowledgement_1_a_0 Bool) - (BoilerController.usr.pump_failure_acknowledgement_2_a_0 Bool) - (BoilerController.usr.pump_failure_acknowledgement_3_a_0 Bool) - (BoilerController.usr.pump_control_failure_acknowledgement_0_a_0 Bool) - (BoilerController.usr.pump_control_failure_acknowledgement_1_a_0 Bool) - (BoilerController.usr.pump_control_failure_acknowledgement_2_a_0 Bool) - (BoilerController.usr.pump_control_failure_acknowledgement_3_a_0 Bool) - (BoilerController.usr.level_failure_acknowledgement_a_0 Bool) - (BoilerController.usr.steam_failure_acknowledgement_a_0 Bool) - (BoilerController.res.nondet_32 Int) - (BoilerController.res.nondet_31 Int) - (BoilerController.res.nondet_30 Int) - (BoilerController.res.nondet_29 Int) - (BoilerController.res.nondet_28 Int) - (BoilerController.res.nondet_27 Int) - (BoilerController.res.nondet_26 Int) - (BoilerController.res.nondet_25 Int) - (BoilerController.res.nondet_24 Int) - (BoilerController.res.nondet_23 Int) - (BoilerController.res.nondet_22 Int) - (BoilerController.res.nondet_21 Int) - (BoilerController.res.nondet_20 Int) - (BoilerController.res.nondet_19 Int) - (BoilerController.res.nondet_18 Int) - (BoilerController.res.nondet_17 Int) - (BoilerController.res.nondet_16 Int) - (BoilerController.res.nondet_15 Int) - (BoilerController.res.nondet_14 Int) - (BoilerController.res.nondet_13 Int) - (BoilerController.res.nondet_12 Int) - (BoilerController.res.nondet_11 Int) - (BoilerController.res.nondet_10 Int) - (BoilerController.res.nondet_9 Int) - (BoilerController.res.nondet_8 Int) - (BoilerController.res.nondet_7 Int) - (BoilerController.res.nondet_6 Int) - (BoilerController.res.nondet_5 Int) - (BoilerController.res.nondet_4 Int) - (BoilerController.res.nondet_3 Int) - (BoilerController.res.nondet_2 Int) - (BoilerController.res.nondet_1 Int) - (BoilerController.res.nondet_0 Int) - (BoilerController.usr.program_ready_a_0 Bool) - (BoilerController.usr.mode_a_0 Int) - (BoilerController.usr.valve_a_0 Bool) - (BoilerController.usr.open_pump_0_a_0 Bool) - (BoilerController.usr.open_pump_1_a_0 Bool) - (BoilerController.usr.open_pump_2_a_0 Bool) - (BoilerController.usr.open_pump_3_a_0 Bool) - (BoilerController.usr.close_pump_0_a_0 Bool) - (BoilerController.usr.close_pump_1_a_0 Bool) - (BoilerController.usr.close_pump_2_a_0 Bool) - (BoilerController.usr.close_pump_3_a_0 Bool) - (BoilerController.usr.pump_failure_detection_0_a_0 Bool) - (BoilerController.usr.pump_failure_detection_1_a_0 Bool) - (BoilerController.usr.pump_failure_detection_2_a_0 Bool) - (BoilerController.usr.pump_failure_detection_3_a_0 Bool) - (BoilerController.usr.pump_control_failure_detection_0_a_0 Bool) - (BoilerController.usr.pump_control_failure_detection_1_a_0 Bool) - (BoilerController.usr.pump_control_failure_detection_2_a_0 Bool) - (BoilerController.usr.pump_control_failure_detection_3_a_0 Bool) - (BoilerController.usr.level_failure_detection_a_0 Bool) - (BoilerController.usr.steam_outcome_failure_detection_a_0 Bool) - (BoilerController.usr.pump_repaired_acknowledgement_0_a_0 Bool) - (BoilerController.usr.pump_repaired_acknowledgement_1_a_0 Bool) - (BoilerController.usr.pump_repaired_acknowledgement_2_a_0 Bool) - (BoilerController.usr.pump_repaired_acknowledgement_3_a_0 Bool) - (BoilerController.usr.pump_control_repaired_acknowledgement_0_a_0 Bool) - (BoilerController.usr.pump_control_repaired_acknowledgement_1_a_0 Bool) - (BoilerController.usr.pump_control_repaired_acknowledgement_2_a_0 Bool) - (BoilerController.usr.pump_control_repaired_acknowledgement_3_a_0 Bool) - (BoilerController.usr.level_repaired_acknowledgement_a_0 Bool) - (BoilerController.usr.steam_outcome_repaired_acknowledgement_a_0 Bool) - (BoilerController.res.init_flag_a_0 Bool) - (BoilerController.impl.usr.stop_request_a_0 Bool) - (BoilerController.impl.usr.op_mode_a_0 Int) - (BoilerController.impl.usr.q_a_0 Int) - (BoilerController.impl.usr.v_a_0 Int) - (BoilerController.impl.usr.valve_state_a_0 Int) - (BoilerController.impl.usr.n_pumps_a_0 Int) - (BoilerController.impl.usr.pump_status_0_a_0 Int) - (BoilerController.impl.usr.pump_status_1_a_0 Int) - (BoilerController.impl.usr.pump_status_2_a_0 Int) - (BoilerController.impl.usr.pump_status_3_a_0 Int) - (BoilerController.impl.usr.pump_defect_0_a_0 Int) - (BoilerController.impl.usr.pump_defect_1_a_0 Int) - (BoilerController.impl.usr.pump_defect_2_a_0 Int) - (BoilerController.impl.usr.pump_defect_3_a_0 Int) - (BoilerController.impl.usr.pump_control_defect_0_a_0 Int) - (BoilerController.impl.usr.pump_control_defect_1_a_0 Int) - (BoilerController.impl.usr.pump_control_defect_2_a_0 Int) - (BoilerController.impl.usr.pump_control_defect_3_a_0 Int) - (BoilerController.res.abs_0_a_0 Bool) - (BoilerController.res.abs_1_a_0 Int) - (BoilerController.res.abs_2_a_0 Int) - (BoilerController.res.abs_3_a_0 Int) - (BoilerController.res.abs_4_a_0 Bool) - (BoilerController.res.abs_5_a_0 Bool) - (BoilerController.res.abs_6_a_0 Bool) - (BoilerController.res.abs_7_a_0 Bool) - (BoilerController.res.abs_8_a_0 Int) - (BoilerController.res.abs_9_a_0 Int) - (BoilerController.res.abs_10_a_0 Bool) - (BoilerController.res.abs_11_a_0 Int) - (BoilerController.res.abs_12_a_0 Int) - (BoilerController.res.abs_13_a_0 Bool) - (BoilerController.res.abs_14_a_0 Int) - (BoilerController.res.abs_15_a_0 Bool) - (BoilerController.res.abs_16_a_0 Bool) - (BoilerController.res.abs_17_a_0 Bool) - (BoilerController.res.abs_18_a_0 Bool) - (BoilerController.res.abs_19_a_0 Int) - (BoilerController.res.abs_20_a_0 Int) - (BoilerController.res.abs_21_a_0 Bool) - (BoilerController.res.abs_22_a_0 Int) - (BoilerController.res.abs_23_a_0 Int) - (BoilerController.res.abs_24_a_0 Bool) - (BoilerController.res.abs_25_a_0 Int) - (BoilerController.res.abs_26_a_0 Bool) - (BoilerController.res.abs_27_a_0 Bool) - (BoilerController.res.abs_28_a_0 Bool) - (BoilerController.res.abs_29_a_0 Bool) - (BoilerController.res.abs_30_a_0 Int) - (BoilerController.res.abs_31_a_0 Int) - (BoilerController.res.abs_32_a_0 Bool) - (BoilerController.res.abs_33_a_0 Int) - (BoilerController.res.abs_34_a_0 Int) - (BoilerController.res.abs_35_a_0 Bool) - (BoilerController.res.abs_36_a_0 Int) - (BoilerController.res.abs_37_a_0 Bool) - (BoilerController.res.abs_38_a_0 Bool) - (BoilerController.res.abs_39_a_0 Bool) - (BoilerController.res.abs_40_a_0 Bool) - (BoilerController.res.abs_41_a_0 Int) - (BoilerController.res.abs_42_a_0 Int) - (BoilerController.res.abs_43_a_0 Bool) - (BoilerController.res.abs_44_a_0 Int) - (BoilerController.res.abs_45_a_0 Int) - (BoilerController.res.abs_46_a_0 Bool) - (BoilerController.res.abs_48_a_0 Int) - (BoilerController.res.abs_49_a_0 Int) - (BoilerController.res.abs_50_a_0 Int) - (BoilerController.res.abs_51_a_0 Int) - (BoilerController.res.abs_52_a_0 Int) - (BoilerController.res.abs_53_a_0 Bool) - (BoilerController.res.abs_54_a_0 Bool) - (BoilerController.res.abs_55_a_0 Bool) - (BoilerController.res.abs_56_a_0 Bool) - (BoilerController.res.abs_57_a_0 Int) - (BoilerController.res.abs_58_a_0 Int) - (BoilerController.res.abs_59_a_0 Int) - (BoilerController.res.abs_60_a_0 Int) - (BoilerController.res.abs_61_a_0 Int) - (BoilerController.res.abs_62_a_0 Int) - (BoilerController.res.abs_63_a_0 Int) - (BoilerController.res.abs_64_a_0 Int) - (BoilerController.res.abs_65_a_0 Int) - (BoilerController.res.abs_66_a_0 Int) - (BoilerController.res.abs_67_a_0 Int) - (BoilerController.res.abs_68_a_0 Int) - (BoilerController.res.abs_69_a_0 Bool) - (BoilerController.res.abs_70_a_0 Int) - (BoilerController.res.abs_71_a_0 Bool) - (BoilerController.res.abs_72_a_0 Int) - (BoilerController.res.abs_73_a_0 Bool) - (BoilerController.res.abs_74_a_0 Bool) - (BoilerController.res.abs_75_a_0 Bool) - (BoilerController.res.abs_76_a_0 Bool) - (BoilerController.res.abs_77_a_0 Bool) - (BoilerController.res.abs_78_a_0 Bool) - (BoilerController.res.abs_79_a_0 Bool) - (BoilerController.res.abs_80_a_0 Bool) - (BoilerController.res.abs_81_a_0 Bool) - (BoilerController.res.abs_82_a_0 Bool) - (BoilerController.res.abs_83_a_0 Bool) - (BoilerController.res.abs_84_a_0 Bool) - (BoilerController.res.abs_85_a_0 Bool) - (BoilerController.res.abs_86_a_0 Bool) - (BoilerController.res.abs_87_a_0 Bool) - (BoilerController.res.abs_88_a_0 Bool) - (BoilerController.res.abs_89_a_0 Bool) - (BoilerController.res.abs_90_a_0 Bool) - (BoilerController.res.abs_91_a_0 Bool) - (BoilerController.res.abs_92_a_0 Bool) - (BoilerController.res.abs_93_a_0 Bool) - (BoilerController.res.abs_94_a_0 Bool) - (BoilerController.res.abs_95_a_0 Bool) - (BoilerController.res.abs_96_a_0 Bool) - (BoilerController.res.abs_97_a_0 Bool) - (BoilerController.res.abs_98_a_0 Bool) - (BoilerController.res.abs_99_a_0 Bool) - (BoilerController.res.abs_100_a_0 Bool) - (BoilerController.res.inst_176_a_0 Bool) - (BoilerController.res.inst_175_a_0 Bool) - (BoilerController.res.inst_174_a_0 Bool) - (BoilerController.res.inst_173_a_0 Bool) - (BoilerController.res.inst_172_a_0 Int) - (BoilerController.res.inst_171_a_0 Bool) - (BoilerController.res.inst_170_a_0 Bool) - (BoilerController.res.inst_169_a_0 Bool) - (BoilerController.res.inst_168_a_0 Bool) - (BoilerController.res.inst_167_a_0 Bool) - (BoilerController.res.inst_166_a_0 Bool) - (BoilerController.res.inst_165_a_0 Bool) - (BoilerController.res.inst_164_a_0 Bool) - (BoilerController.res.inst_163_a_0 Bool) - (BoilerController.res.inst_162_a_0 Bool) - (BoilerController.res.inst_161_a_0 Bool) - (BoilerController.res.inst_160_a_0 Bool) - (BoilerController.res.inst_159_a_0 Bool) - (BoilerController.res.inst_158_a_0 Bool) - (BoilerController.res.inst_157_a_0 Bool) - (BoilerController.res.inst_156_a_0 Bool) - (BoilerController.res.inst_155_a_0 Bool) - (BoilerController.res.inst_154_a_0 Bool) - (BoilerController.res.inst_153_a_0 Bool) - (BoilerController.res.inst_152_a_0 Bool) - (BoilerController.res.inst_151_a_0 Bool) - (BoilerController.res.inst_150_a_0 Bool) - (BoilerController.res.inst_149_a_0 Bool) - (BoilerController.res.inst_148_a_0 Bool) - (BoilerController.res.inst_147_a_0 Bool) - (BoilerController.res.inst_146_a_0 Bool) - (BoilerController.res.inst_145_a_0 Bool) - (BoilerController.res.inst_144_a_0 Bool) - (BoilerController.res.inst_143_a_0 Bool) - (BoilerController.res.inst_142_a_0 Bool) - (BoilerController.res.inst_141_a_0 Bool) - (BoilerController.res.inst_140_a_0 Bool) - (BoilerController.res.inst_139_a_0 Bool) - (BoilerController.res.inst_138_a_0 Bool) - (BoilerController.res.inst_137_a_0 Bool) - (BoilerController.res.inst_136_a_0 Bool) - (BoilerController.res.inst_135_a_0 Bool) - (BoilerController.res.inst_134_a_0 Bool) - (BoilerController.res.inst_133_a_0 Bool) - (BoilerController.res.inst_132_a_0 Bool) - (BoilerController.res.inst_131_a_0 Bool) - (BoilerController.res.inst_130_a_0 Bool) - (BoilerController.res.inst_129_a_0 Bool) - (BoilerController.res.inst_128_a_0 Bool) - (BoilerController.res.inst_127_a_0 Bool) - (BoilerController.res.inst_126_a_0 Bool) - (BoilerController.res.inst_125_a_0 Bool) - (BoilerController.res.inst_124_a_0 Bool) - (BoilerController.res.inst_123_a_0 Bool) - (BoilerController.res.inst_122_a_0 Bool) - (BoilerController.res.inst_121_a_0 Bool) - (BoilerController.res.inst_120_a_0 Int) - (BoilerController.res.inst_119_a_0 Bool) - (BoilerController.res.inst_118_a_0 Bool) - (BoilerController.res.inst_117_a_0 Int) - (BoilerController.res.inst_116_a_0 Int) - (BoilerController.res.inst_115_a_0 Bool) - (BoilerController.res.inst_114_a_0 Bool) - (BoilerController.res.inst_113_a_0 Bool) - (BoilerController.res.inst_112_a_0 Bool) - (BoilerController.res.inst_111_a_0 Int) - (BoilerController.res.inst_110_a_0 Int) - (BoilerController.res.inst_109_a_0 Bool) - (BoilerController.res.inst_108_a_0 Bool) - (BoilerController.res.inst_107_a_0 Bool) - (BoilerController.res.inst_106_a_0 Bool) - (BoilerController.res.inst_105_a_0 Bool) - (BoilerController.res.inst_104_a_0 Bool) - (BoilerController.res.inst_103_a_0 Bool) - (BoilerController.res.inst_102_a_0 Bool) - (BoilerController.res.inst_101_a_0 Int) - (BoilerController.res.inst_100_a_0 Int) - (BoilerController.res.inst_99_a_0 Int) - (BoilerController.res.inst_98_a_0 Int) - (BoilerController.res.inst_97_a_0 Bool) - (BoilerController.res.inst_96_a_0 Bool) - (BoilerController.res.inst_95_a_0 Bool) - (BoilerController.res.inst_94_a_0 Bool) - (BoilerController.res.inst_93_a_0 Int) - (BoilerController.res.inst_92_a_0 Int) - (BoilerController.res.inst_91_a_0 Int) - (BoilerController.res.inst_90_a_0 Int) - (BoilerController.res.inst_89_a_0 Int) - (BoilerController.res.inst_88_a_0 Int) - (BoilerController.res.inst_87_a_0 Int) - (BoilerController.res.inst_86_a_0 Int) - (BoilerController.res.inst_85_a_0 Int) - (BoilerController.res.inst_84_a_0 Int) - (BoilerController.res.inst_83_a_0 Bool) - (BoilerController.res.inst_82_a_0 Bool) - (BoilerController.res.inst_81_a_0 Bool) - (BoilerController.res.inst_80_a_0 Bool) - (BoilerController.res.inst_79_a_0 Int) - (BoilerController.res.inst_78_a_0 Int) - (BoilerController.res.inst_77_a_0 Int) - (BoilerController.res.inst_76_a_0 Int) - (BoilerController.res.inst_75_a_0 Bool) - (BoilerController.res.inst_74_a_0 Int) - (BoilerController.res.inst_73_a_0 Bool) - (BoilerController.res.inst_72_a_0 Int) - (BoilerController.res.inst_71_a_0 Bool) - (BoilerController.res.inst_70_a_0 Int) - (BoilerController.res.inst_69_a_0 Bool) - (BoilerController.res.inst_68_a_0 Int) - (BoilerController.res.inst_67_a_0 Bool) - (BoilerController.res.inst_66_a_0 Int) - (BoilerController.res.inst_65_a_0 Bool) - (BoilerController.res.inst_64_a_0 Int) - (BoilerController.res.inst_63_a_0 Bool) - (BoilerController.res.inst_62_a_0 Int) - (BoilerController.res.inst_61_a_0 Bool) - (BoilerController.res.inst_60_a_0 Int) - (BoilerController.res.inst_59_a_0 Bool) - (BoilerController.res.inst_58_a_0 Bool) - (BoilerController.res.inst_57_a_0 Bool) - (BoilerController.res.inst_56_a_0 Bool) - (BoilerController.res.inst_55_a_0 Bool) - (BoilerController.res.inst_54_a_0 Bool) - (BoilerController.res.inst_53_a_0 Bool) - (BoilerController.res.inst_52_a_0 Bool) - (BoilerController.res.inst_51_a_0 Bool) - (BoilerController.res.inst_50_a_0 Bool) - (BoilerController.res.inst_49_a_0 Bool) - (BoilerController.res.inst_48_a_0 Bool) - (BoilerController.res.inst_47_a_0 Int) - (BoilerController.res.inst_46_a_0 Bool) - (BoilerController.res.inst_45_a_0 Bool) - (BoilerController.res.inst_44_a_0 Bool) - (BoilerController.res.inst_43_a_0 Bool) - (BoilerController.res.inst_42_a_0 Bool) - (BoilerController.res.inst_41_a_0 Bool) - (BoilerController.res.inst_40_a_0 Bool) - (BoilerController.res.inst_39_a_0 Bool) - (BoilerController.res.inst_38_a_0 Bool) - (BoilerController.res.inst_37_a_0 Bool) - (BoilerController.res.inst_36_a_0 Bool) - (BoilerController.res.inst_35_a_0 Int) - (BoilerController.res.inst_34_a_0 Int) - (BoilerController.res.inst_33_a_0 Int) - (BoilerController.res.inst_32_a_0 Int) - (BoilerController.res.inst_31_a_0 Bool) - (BoilerController.res.inst_30_a_0 Bool) - (BoilerController.res.inst_29_a_0 Bool) - (BoilerController.res.inst_28_a_0 Bool) - (BoilerController.res.inst_27_a_0 Bool) - (BoilerController.res.inst_26_a_0 Bool) - (BoilerController.res.inst_25_a_0 Bool) - (BoilerController.res.inst_24_a_0 Bool) - (BoilerController.res.inst_23_a_0 Bool) - (BoilerController.res.inst_22_a_0 Int) - (BoilerController.res.inst_21_a_0 Int) - (BoilerController.res.inst_20_a_0 Int) - (BoilerController.res.inst_19_a_0 Int) - (BoilerController.res.inst_18_a_0 Bool) - (BoilerController.res.inst_17_a_0 Bool) - (BoilerController.res.inst_16_a_0 Bool) - (BoilerController.res.inst_15_a_0 Bool) - (BoilerController.res.inst_14_a_0 Bool) - (BoilerController.res.inst_13_a_0 Bool) - (BoilerController.res.inst_12_a_0 Bool) - (BoilerController.res.inst_11_a_0 Bool) - (BoilerController.res.inst_10_a_0 Bool) - (BoilerController.res.inst_9_a_0 Int) - (BoilerController.res.inst_8_a_0 Int) - (BoilerController.res.inst_7_a_0 Int) - (BoilerController.res.inst_6_a_0 Int) - (BoilerController.res.inst_5_a_0 Bool) - (BoilerController.res.inst_4_a_0 Bool) - (BoilerController.res.inst_3_a_0 Bool) - (BoilerController.res.inst_2_a_0 Bool) - (BoilerController.res.inst_1_a_0 Bool) - (BoilerController.res.inst_0_a_0 Bool) - ) Bool - - (and - (= BoilerController.usr.program_ready_a_0 false) - (= BoilerController.res.abs_49_a_0 BoilerController.usr.level_a_0) - (= BoilerController.impl.usr.op_mode_a_0 1) - (= BoilerController.usr.valve_a_0 false) - (let - ((X1 Bool BoilerController.res.abs_71_a_0)) - (and - (= - BoilerController.impl.usr.stop_request_a_0 - BoilerController.res.abs_0_a_0) - (= BoilerController.res.abs_50_a_0 BoilerController.usr.steam_a_0) - (let - ((X2 Int 0)) - (and - (= BoilerController.res.abs_51_a_0 X2) - (let - ((X3 Int 0)) - (and - (= BoilerController.res.abs_52_a_0 X3) - (= BoilerController.impl.usr.pump_defect_0_a_0 0) - (let - ((X4 Int BoilerController.res.abs_11_a_0)) - (and - (= - BoilerController.res.abs_4_a_0 - BoilerController.usr.pump_failure_acknowledgement_0_a_0) - (= - BoilerController.res.abs_5_a_0 - BoilerController.usr.pump_repaired_0_a_0) - (= - BoilerController.res.abs_6_a_0 - BoilerController.usr.pump_control_failure_acknowledgement_0_a_0) - (= - BoilerController.res.abs_7_a_0 - BoilerController.usr.pump_control_repaired_0_a_0) - (= - BoilerController.res.abs_8_a_0 - (let ((X5 Int BoilerController.res.nondet_2)) X5)) - (= BoilerController.impl.usr.pump_status_0_a_0 0) - (let - ((X5 Int BoilerController.res.abs_64_a_0)) - (and - (= BoilerController.impl.usr.n_pumps_a_0 0) - (= BoilerController.impl.usr.q_a_0 BoilerController.usr.level_a_0) - (let - ((X6 Int BoilerController.res.abs_57_a_0)) - (and - (= - BoilerController.res.abs_48_a_0 - (let ((X7 Int BoilerController.res.nondet_14)) X7)) - (= BoilerController.impl.usr.valve_state_a_0 0) - (let - ((X7 Int BoilerController.res.abs_70_a_0)) - (let - ((X8 Bool false)) - (and - (= BoilerController.res.abs_53_a_0 X8) - (= - BoilerController.res.abs_10_a_0 - BoilerController.usr.pump_control_state_0_a_0) - (= - BoilerController.res.abs_9_a_0 - BoilerController.usr.pump_state_0_a_0) - (let - ((X9 Bool BoilerController.res.abs_13_a_0)) - (let - ((X10 Bool false)) - (and - (= BoilerController.res.abs_54_a_0 X10) - (= - BoilerController.res.abs_21_a_0 - BoilerController.usr.pump_control_state_1_a_0) - (= - BoilerController.res.abs_20_a_0 - BoilerController.usr.pump_state_1_a_0) - (= - BoilerController.res.abs_19_a_0 - (let ((X11 Int BoilerController.res.nondet_5)) X11)) - (let - ((X11 Bool BoilerController.res.abs_24_a_0)) - (and - (= - BoilerController.res.abs_15_a_0 - BoilerController.usr.pump_failure_acknowledgement_1_a_0) - (= - BoilerController.res.abs_16_a_0 - BoilerController.usr.pump_repaired_1_a_0) - (= - BoilerController.res.abs_17_a_0 - BoilerController.usr.pump_control_failure_acknowledgement_1_a_0) - (= - BoilerController.res.abs_18_a_0 - BoilerController.usr.pump_control_repaired_1_a_0) - (= BoilerController.impl.usr.pump_status_1_a_0 0) - (let - ((X12 Int BoilerController.res.abs_65_a_0)) - (let - ((X13 Bool false)) - (and - (= BoilerController.res.abs_55_a_0 X13) - (= - BoilerController.res.abs_32_a_0 - BoilerController.usr.pump_control_state_2_a_0) - (= - BoilerController.res.abs_31_a_0 - BoilerController.usr.pump_state_2_a_0) - (= - BoilerController.res.abs_30_a_0 - (let - ((X14 Int BoilerController.res.nondet_8)) - X14)) - (let - ((X14 Bool BoilerController.res.abs_35_a_0)) - (and - (= - BoilerController.res.abs_26_a_0 - BoilerController.usr.pump_failure_acknowledgement_2_a_0) - (= - BoilerController.res.abs_27_a_0 - BoilerController.usr.pump_repaired_2_a_0) - (= - BoilerController.res.abs_28_a_0 - BoilerController.usr.pump_control_failure_acknowledgement_2_a_0) - (= - BoilerController.res.abs_29_a_0 - BoilerController.usr.pump_control_repaired_2_a_0) - (= BoilerController.impl.usr.pump_status_2_a_0 0) - (let - ((X15 Int BoilerController.res.abs_66_a_0)) - (let - ((X16 Bool false)) - (and - (= BoilerController.res.abs_56_a_0 X16) - (= - BoilerController.res.abs_43_a_0 - BoilerController.usr.pump_control_state_3_a_0) - (= - BoilerController.res.abs_42_a_0 - BoilerController.usr.pump_state_3_a_0) - (= - BoilerController.res.abs_41_a_0 - (let - ((X17 Int BoilerController.res.nondet_11)) - X17)) - (let - ((X17 Bool BoilerController.res.abs_46_a_0)) - (and - (= - BoilerController.res.abs_37_a_0 - BoilerController.usr.pump_failure_acknowledgement_3_a_0) - (= - BoilerController.res.abs_38_a_0 - BoilerController.usr.pump_repaired_3_a_0) - (= - BoilerController.res.abs_39_a_0 - BoilerController.usr.pump_control_failure_acknowledgement_3_a_0) - (= - BoilerController.res.abs_40_a_0 - BoilerController.usr.pump_control_repaired_3_a_0) - (= - BoilerController.impl.usr.pump_status_3_a_0 - 0) - (let - ((X18 Int BoilerController.res.abs_67_a_0)) - (and - (= - BoilerController.impl.usr.v_a_0 - BoilerController.usr.steam_a_0) - (let - ((X19 Int BoilerController.res.abs_58_a_0)) - (and - (= - BoilerController.impl.usr.pump_defect_1_a_0 - 0) - (let - ((X20 - Int BoilerController.res.abs_22_a_0)) - (and - (= - BoilerController.impl.usr.pump_defect_2_a_0 - 0) - (let - ((X21 - Int BoilerController.res.abs_33_a_0)) - (and - (= - BoilerController.impl.usr.pump_defect_3_a_0 - 0) - (let - ((X22 - Int BoilerController.res.abs_44_a_0)) - (and - (= - BoilerController.impl.usr.pump_control_defect_0_a_0 - 0) - (let - ((X23 - Int BoilerController.res.abs_12_a_0)) - (and - (= - BoilerController.impl.usr.pump_control_defect_1_a_0 - 0) - (let - ((X24 - Int BoilerController.res.abs_23_a_0)) - (and - (= - BoilerController.impl.usr.pump_control_defect_2_a_0 - 0) - (let - ((X25 - Int BoilerController.res.abs_34_a_0)) - (and - (= - BoilerController.impl.usr.pump_control_defect_3_a_0 - 0) - (let - ((X26 - Int BoilerController.res.abs_45_a_0)) - (let - ((X27 - Bool BoilerController.res.abs_69_a_0)) - (and - (= - BoilerController.usr.mode_a_0 - 1) - (let - ((X28 - Int BoilerController.res.abs_72_a_0)) - (and - (= - BoilerController.res.abs_3_a_0 - BoilerController.impl.usr.pump_status_0_a_0) - (let - ((X29 - Bool BoilerController.res.abs_73_a_0)) - (and - (= - BoilerController.usr.open_pump_0_a_0 - X29) - (= - BoilerController.res.abs_14_a_0 - BoilerController.impl.usr.pump_status_1_a_0) - (= - BoilerController.res.abs_25_a_0 - BoilerController.impl.usr.pump_status_2_a_0) - (= - BoilerController.res.abs_36_a_0 - BoilerController.impl.usr.pump_status_3_a_0) - (let - ((X30 - Bool BoilerController.res.abs_74_a_0)) - (and - (= - BoilerController.usr.open_pump_1_a_0 - X30) - (let - ((X31 - Bool BoilerController.res.abs_75_a_0)) - (and - (= - BoilerController.usr.open_pump_2_a_0 - X31) - (let - ((X32 - Bool BoilerController.res.abs_76_a_0)) - (and - (= - BoilerController.usr.open_pump_3_a_0 - X32) - (let - ((X33 - Bool BoilerController.res.abs_77_a_0)) - (and - (= - BoilerController.usr.close_pump_0_a_0 - X33) - (let - ((X34 - Bool BoilerController.res.abs_78_a_0)) - (and - (= - BoilerController.usr.close_pump_1_a_0 - X34) - (let - ((X35 - Bool BoilerController.res.abs_79_a_0)) - (and - (= - BoilerController.usr.close_pump_2_a_0 - X35) - (let - ((X36 - Bool BoilerController.res.abs_80_a_0)) - (and - (= - BoilerController.usr.close_pump_3_a_0 - X36) - (let - ((X37 - Bool BoilerController.res.abs_81_a_0)) - (and - (= - BoilerController.usr.pump_failure_detection_0_a_0 - X37) - (let - ((X38 - Bool BoilerController.res.abs_82_a_0)) - (and - (= - BoilerController.usr.pump_failure_detection_1_a_0 - X38) - (let - ((X39 - Bool BoilerController.res.abs_83_a_0)) - (and - (= - BoilerController.usr.pump_failure_detection_2_a_0 - X39) - (let - ((X40 - Bool BoilerController.res.abs_84_a_0)) - (and - (= - BoilerController.usr.pump_failure_detection_3_a_0 - X40) - (let - ((X41 - Bool BoilerController.res.abs_89_a_0)) - (and - (= - BoilerController.usr.pump_control_failure_detection_0_a_0 - X41) - (let - ((X42 - Bool BoilerController.res.abs_90_a_0)) - (and - (= - BoilerController.usr.pump_control_failure_detection_1_a_0 - X42) - (let - ((X43 - Bool BoilerController.res.abs_91_a_0)) - (and - (= - BoilerController.usr.pump_control_failure_detection_2_a_0 - X43) - (let - ((X44 - Bool BoilerController.res.abs_92_a_0)) - (and - (= - BoilerController.usr.pump_control_failure_detection_3_a_0 - X44) - (= - BoilerController.usr.level_failure_detection_a_0 - false) - (let - ((X45 - Bool BoilerController.res.abs_97_a_0)) - (and - (= - BoilerController.usr.steam_outcome_failure_detection_a_0 - false) - (let - ((X46 - Bool BoilerController.res.abs_99_a_0)) - (let - ((X47 - Bool BoilerController.res.abs_85_a_0)) - (and - (= - BoilerController.usr.pump_repaired_acknowledgement_0_a_0 - X47) - (let - ((X48 - Bool BoilerController.res.abs_86_a_0)) - (and - (= - BoilerController.usr.pump_repaired_acknowledgement_1_a_0 - X48) - (let - ((X49 - Bool BoilerController.res.abs_87_a_0)) - (and - (= - BoilerController.usr.pump_repaired_acknowledgement_2_a_0 - X49) - (let - ((X50 - Bool BoilerController.res.abs_88_a_0)) - (and - (= - BoilerController.usr.pump_repaired_acknowledgement_3_a_0 - X50) - (let - ((X51 - Bool BoilerController.res.abs_93_a_0)) - (and - (= - BoilerController.usr.pump_control_repaired_acknowledgement_0_a_0 - X51) - (let - ((X52 - Bool BoilerController.res.abs_94_a_0)) - (and - (= - BoilerController.usr.pump_control_repaired_acknowledgement_1_a_0 - X52) - (let - ((X53 - Bool BoilerController.res.abs_95_a_0)) - (and - (= - BoilerController.usr.pump_control_repaired_acknowledgement_2_a_0 - X53) - (let - ((X54 - Bool BoilerController.res.abs_96_a_0)) - (and - (= - BoilerController.usr.pump_control_repaired_acknowledgement_3_a_0 - X54) - (= - BoilerController.usr.level_repaired_acknowledgement_a_0 - false) - (let - ((X55 - Bool BoilerController.res.abs_98_a_0)) - (and - (= - BoilerController.usr.steam_outcome_repaired_acknowledgement_a_0 - false) - (let - ((X56 - Bool BoilerController.res.abs_100_a_0)) - (and - (__node_init_ControlOutput_0 - BoilerController.impl.usr.op_mode_a_0 - BoilerController.res.abs_49_a_0 - BoilerController.usr.valve_a_0 - BoilerController.res.abs_71_a_0 - BoilerController.res.abs_72_a_0 - BoilerController.res.inst_176_a_0 - BoilerController.res.inst_175_a_0 - BoilerController.res.inst_174_a_0) - (__node_init_ControlMode_0 - BoilerController.usr.steam_boiler_waiting_a_0 - BoilerController.usr.physical_units_ready_a_0 - BoilerController.impl.usr.stop_request_a_0 - BoilerController.res.abs_50_a_0 - BoilerController.res.abs_51_a_0 - BoilerController.res.abs_52_a_0 - BoilerController.impl.usr.pump_defect_0_a_0 - BoilerController.impl.usr.pump_defect_1_a_0 - BoilerController.impl.usr.pump_defect_2_a_0 - BoilerController.impl.usr.pump_defect_3_a_0 - BoilerController.impl.usr.pump_control_defect_0_a_0 - BoilerController.impl.usr.pump_control_defect_1_a_0 - BoilerController.impl.usr.pump_control_defect_2_a_0 - BoilerController.impl.usr.pump_control_defect_3_a_0 - BoilerController.impl.usr.q_a_0 - BoilerController.res.abs_9_a_0 - BoilerController.res.abs_20_a_0 - BoilerController.res.abs_31_a_0 - BoilerController.res.abs_42_a_0 - BoilerController.res.nondet_24 - BoilerController.res.abs_68_a_0 - BoilerController.res.inst_173_a_0 - BoilerController.res.inst_172_a_0 - BoilerController.res.inst_171_a_0 - BoilerController.res.inst_170_a_0 - BoilerController.res.inst_169_a_0 - BoilerController.res.inst_168_a_0 - BoilerController.res.inst_167_a_0 - BoilerController.res.inst_166_a_0 - BoilerController.res.inst_165_a_0 - BoilerController.res.inst_164_a_0 - BoilerController.res.inst_163_a_0 - BoilerController.res.inst_162_a_0 - BoilerController.res.inst_161_a_0 - BoilerController.res.inst_160_a_0 - BoilerController.res.inst_159_a_0 - BoilerController.res.inst_158_a_0 - BoilerController.res.inst_157_a_0 - BoilerController.res.inst_156_a_0 - BoilerController.res.inst_155_a_0 - BoilerController.res.inst_154_a_0 - BoilerController.res.inst_153_a_0 - BoilerController.res.inst_152_a_0 - BoilerController.res.inst_151_a_0 - BoilerController.res.inst_150_a_0 - BoilerController.res.inst_149_a_0 - BoilerController.res.inst_148_a_0 - BoilerController.res.inst_147_a_0 - BoilerController.res.inst_146_a_0 - BoilerController.res.inst_145_a_0 - BoilerController.res.inst_144_a_0 - BoilerController.res.inst_143_a_0 - BoilerController.res.inst_142_a_0 - BoilerController.res.inst_141_a_0 - BoilerController.res.inst_140_a_0 - BoilerController.res.inst_139_a_0 - BoilerController.res.inst_138_a_0 - BoilerController.res.inst_137_a_0 - BoilerController.res.inst_136_a_0 - BoilerController.res.inst_135_a_0 - BoilerController.res.inst_134_a_0 - BoilerController.res.inst_133_a_0 - BoilerController.res.inst_132_a_0 - BoilerController.res.inst_131_a_0 - BoilerController.res.inst_130_a_0 - BoilerController.res.inst_129_a_0 - BoilerController.res.inst_128_a_0 - BoilerController.res.inst_127_a_0 - BoilerController.res.inst_126_a_0 - BoilerController.res.inst_125_a_0 - BoilerController.res.inst_124_a_0 - BoilerController.res.inst_123_a_0 - BoilerController.res.inst_122_a_0) - (__node_init_Operator_0 - BoilerController.usr.stop_a_0 - BoilerController.res.abs_0_a_0 - BoilerController.res.inst_121_a_0 - BoilerController.res.inst_120_a_0) - (__node_init_LevelDefect_0 - BoilerController.usr.level_failure_acknowledgement_a_0 - BoilerController.usr.level_repaired_a_0 - BoilerController.usr.level_a_0 - BoilerController.res.nondet_0 - BoilerController.res.abs_1_a_0 - BoilerController.res.inst_119_a_0 - BoilerController.res.inst_118_a_0 - BoilerController.res.inst_117_a_0 - BoilerController.res.inst_116_a_0 - BoilerController.res.inst_115_a_0 - BoilerController.res.inst_114_a_0) - (__node_init_SteamDefect_0 - BoilerController.usr.steam_failure_acknowledgement_a_0 - BoilerController.usr.steam_repaired_a_0 - BoilerController.usr.steam_a_0 - BoilerController.res.nondet_1 - BoilerController.res.abs_2_a_0 - BoilerController.res.inst_113_a_0 - BoilerController.res.inst_112_a_0 - BoilerController.res.inst_111_a_0 - BoilerController.res.inst_110_a_0 - BoilerController.res.inst_109_a_0 - BoilerController.res.inst_108_a_0) - (__node_init_PumpDefect_0 - BoilerController.res.abs_4_a_0 - BoilerController.res.abs_5_a_0 - BoilerController.res.abs_6_a_0 - BoilerController.res.abs_7_a_0 - BoilerController.res.abs_8_a_0 - BoilerController.res.abs_9_a_0 - BoilerController.res.abs_10_a_0 - BoilerController.res.nondet_4 - BoilerController.res.nondet_3 - BoilerController.res.abs_11_a_0 - BoilerController.res.abs_12_a_0 - BoilerController.res.abs_13_a_0 - BoilerController.res.inst_107_a_0 - BoilerController.res.inst_106_a_0 - BoilerController.res.inst_105_a_0 - BoilerController.res.inst_104_a_0 - BoilerController.res.inst_103_a_0 - BoilerController.res.inst_102_a_0 - BoilerController.res.inst_101_a_0 - BoilerController.res.inst_100_a_0 - BoilerController.res.inst_99_a_0 - BoilerController.res.inst_98_a_0 - BoilerController.res.inst_97_a_0 - BoilerController.res.inst_96_a_0 - BoilerController.res.inst_95_a_0) - (__node_init_PumpsStatus_0 - BoilerController.impl.usr.n_pumps_a_0 - BoilerController.impl.usr.pump_defect_0_a_0 - BoilerController.impl.usr.pump_defect_1_a_0 - BoilerController.impl.usr.pump_defect_2_a_0 - BoilerController.impl.usr.pump_defect_3_a_0 - BoilerController.res.abs_53_a_0 - BoilerController.res.abs_54_a_0 - BoilerController.res.abs_55_a_0 - BoilerController.res.abs_56_a_0 - BoilerController.res.nondet_23 - BoilerController.res.nondet_22 - BoilerController.res.nondet_21 - BoilerController.res.nondet_20 - BoilerController.res.nondet_19 - BoilerController.res.nondet_18 - BoilerController.res.nondet_17 - BoilerController.res.nondet_16 - BoilerController.res.abs_64_a_0 - BoilerController.res.abs_65_a_0 - BoilerController.res.abs_66_a_0 - BoilerController.res.abs_67_a_0 - BoilerController.res.inst_94_a_0 - BoilerController.res.inst_93_a_0 - BoilerController.res.inst_92_a_0 - BoilerController.res.inst_91_a_0 - BoilerController.res.inst_90_a_0 - BoilerController.res.inst_89_a_0 - BoilerController.res.inst_88_a_0 - BoilerController.res.inst_87_a_0 - BoilerController.res.inst_86_a_0 - BoilerController.res.inst_85_a_0 - BoilerController.res.inst_84_a_0 - BoilerController.res.inst_83_a_0 - BoilerController.res.inst_82_a_0 - BoilerController.res.inst_81_a_0 - BoilerController.res.inst_80_a_0 - BoilerController.res.inst_79_a_0 - BoilerController.res.inst_78_a_0 - BoilerController.res.inst_77_a_0 - BoilerController.res.inst_76_a_0 - BoilerController.res.inst_75_a_0 - BoilerController.res.inst_74_a_0 - BoilerController.res.inst_73_a_0 - BoilerController.res.inst_72_a_0 - BoilerController.res.inst_71_a_0 - BoilerController.res.inst_70_a_0 - BoilerController.res.inst_69_a_0 - BoilerController.res.inst_68_a_0 - BoilerController.res.inst_67_a_0 - BoilerController.res.inst_66_a_0 - BoilerController.res.inst_65_a_0 - BoilerController.res.inst_64_a_0 - BoilerController.res.inst_63_a_0 - BoilerController.res.inst_62_a_0 - BoilerController.res.inst_61_a_0 - BoilerController.res.inst_60_a_0 - BoilerController.res.inst_59_a_0 - BoilerController.res.inst_58_a_0 - BoilerController.res.inst_57_a_0 - BoilerController.res.inst_56_a_0 - BoilerController.res.inst_55_a_0 - BoilerController.res.inst_54_a_0 - BoilerController.res.inst_53_a_0 - BoilerController.res.inst_52_a_0 - BoilerController.res.inst_51_a_0) - (__node_init_PumpsDecision_0 - BoilerController.impl.usr.q_a_0 - BoilerController.impl.usr.v_a_0 - BoilerController.res.nondet_15 - BoilerController.res.abs_63_a_0 - BoilerController.res.inst_50_a_0) - (__node_init_Dynamics_0 - BoilerController.res.abs_48_a_0 - BoilerController.res.abs_49_a_0 - BoilerController.res.abs_50_a_0 - BoilerController.res.abs_51_a_0 - BoilerController.res.abs_52_a_0 - BoilerController.res.abs_53_a_0 - BoilerController.res.abs_54_a_0 - BoilerController.res.abs_55_a_0 - BoilerController.res.abs_56_a_0 - BoilerController.res.abs_57_a_0 - BoilerController.res.abs_58_a_0 - BoilerController.res.abs_59_a_0 - BoilerController.res.abs_60_a_0 - BoilerController.res.abs_61_a_0 - BoilerController.res.abs_62_a_0 - BoilerController.res.inst_49_a_0 - BoilerController.res.inst_48_a_0 - BoilerController.res.inst_47_a_0 - BoilerController.res.inst_46_a_0 - BoilerController.res.inst_45_a_0 - BoilerController.res.inst_44_a_0 - BoilerController.res.inst_43_a_0) - (__node_init_Valve_0 - BoilerController.impl.usr.op_mode_a_0 - BoilerController.impl.usr.q_a_0 - BoilerController.res.abs_69_a_0 - BoilerController.res.abs_70_a_0 - BoilerController.res.inst_42_a_0) - (__node_init_PumpDefect_0 - BoilerController.res.abs_15_a_0 - BoilerController.res.abs_16_a_0 - BoilerController.res.abs_17_a_0 - BoilerController.res.abs_18_a_0 - BoilerController.res.abs_19_a_0 - BoilerController.res.abs_20_a_0 - BoilerController.res.abs_21_a_0 - BoilerController.res.nondet_7 - BoilerController.res.nondet_6 - BoilerController.res.abs_22_a_0 - BoilerController.res.abs_23_a_0 - BoilerController.res.abs_24_a_0 - BoilerController.res.inst_41_a_0 - BoilerController.res.inst_40_a_0 - BoilerController.res.inst_39_a_0 - BoilerController.res.inst_38_a_0 - BoilerController.res.inst_37_a_0 - BoilerController.res.inst_36_a_0 - BoilerController.res.inst_35_a_0 - BoilerController.res.inst_34_a_0 - BoilerController.res.inst_33_a_0 - BoilerController.res.inst_32_a_0 - BoilerController.res.inst_31_a_0 - BoilerController.res.inst_30_a_0 - BoilerController.res.inst_29_a_0) - (__node_init_PumpDefect_0 - BoilerController.res.abs_26_a_0 - BoilerController.res.abs_27_a_0 - BoilerController.res.abs_28_a_0 - BoilerController.res.abs_29_a_0 - BoilerController.res.abs_30_a_0 - BoilerController.res.abs_31_a_0 - BoilerController.res.abs_32_a_0 - BoilerController.res.nondet_10 - BoilerController.res.nondet_9 - BoilerController.res.abs_33_a_0 - BoilerController.res.abs_34_a_0 - BoilerController.res.abs_35_a_0 - BoilerController.res.inst_28_a_0 - BoilerController.res.inst_27_a_0 - BoilerController.res.inst_26_a_0 - BoilerController.res.inst_25_a_0 - BoilerController.res.inst_24_a_0 - BoilerController.res.inst_23_a_0 - BoilerController.res.inst_22_a_0 - BoilerController.res.inst_21_a_0 - BoilerController.res.inst_20_a_0 - BoilerController.res.inst_19_a_0 - BoilerController.res.inst_18_a_0 - BoilerController.res.inst_17_a_0 - BoilerController.res.inst_16_a_0) - (__node_init_PumpDefect_0 - BoilerController.res.abs_37_a_0 - BoilerController.res.abs_38_a_0 - BoilerController.res.abs_39_a_0 - BoilerController.res.abs_40_a_0 - BoilerController.res.abs_41_a_0 - BoilerController.res.abs_42_a_0 - BoilerController.res.abs_43_a_0 - BoilerController.res.nondet_13 - BoilerController.res.nondet_12 - BoilerController.res.abs_44_a_0 - BoilerController.res.abs_45_a_0 - BoilerController.res.abs_46_a_0 - BoilerController.res.inst_15_a_0 - BoilerController.res.inst_14_a_0 - BoilerController.res.inst_13_a_0 - BoilerController.res.inst_12_a_0 - BoilerController.res.inst_11_a_0 - BoilerController.res.inst_10_a_0 - BoilerController.res.inst_9_a_0 - BoilerController.res.inst_8_a_0 - BoilerController.res.inst_7_a_0 - BoilerController.res.inst_6_a_0 - BoilerController.res.inst_5_a_0 - BoilerController.res.inst_4_a_0 - BoilerController.res.inst_3_a_0) - (__node_init_PumpsOutput_0 - BoilerController.impl.usr.op_mode_a_0 - BoilerController.res.abs_3_a_0 - BoilerController.res.abs_14_a_0 - BoilerController.res.abs_25_a_0 - BoilerController.res.abs_36_a_0 - BoilerController.impl.usr.pump_defect_0_a_0 - BoilerController.impl.usr.pump_defect_1_a_0 - BoilerController.impl.usr.pump_defect_2_a_0 - BoilerController.impl.usr.pump_defect_3_a_0 - BoilerController.impl.usr.pump_control_defect_0_a_0 - BoilerController.impl.usr.pump_control_defect_1_a_0 - BoilerController.impl.usr.pump_control_defect_2_a_0 - BoilerController.impl.usr.pump_control_defect_3_a_0 - BoilerController.res.abs_5_a_0 - BoilerController.res.abs_16_a_0 - BoilerController.res.abs_27_a_0 - BoilerController.res.abs_38_a_0 - BoilerController.res.abs_7_a_0 - BoilerController.res.abs_18_a_0 - BoilerController.res.abs_29_a_0 - BoilerController.res.abs_40_a_0 - BoilerController.res.nondet_32 - BoilerController.res.nondet_31 - BoilerController.res.nondet_30 - BoilerController.res.nondet_29 - BoilerController.res.nondet_28 - BoilerController.res.nondet_27 - BoilerController.res.nondet_26 - BoilerController.res.nondet_25 - BoilerController.res.abs_73_a_0 - BoilerController.res.abs_74_a_0 - BoilerController.res.abs_75_a_0 - BoilerController.res.abs_76_a_0 - BoilerController.res.abs_77_a_0 - BoilerController.res.abs_78_a_0 - BoilerController.res.abs_79_a_0 - BoilerController.res.abs_80_a_0 - BoilerController.res.abs_81_a_0 - BoilerController.res.abs_82_a_0 - BoilerController.res.abs_83_a_0 - BoilerController.res.abs_84_a_0 - BoilerController.res.abs_85_a_0 - BoilerController.res.abs_86_a_0 - BoilerController.res.abs_87_a_0 - BoilerController.res.abs_88_a_0 - BoilerController.res.abs_89_a_0 - BoilerController.res.abs_90_a_0 - BoilerController.res.abs_91_a_0 - BoilerController.res.abs_92_a_0 - BoilerController.res.abs_93_a_0 - BoilerController.res.abs_94_a_0 - BoilerController.res.abs_95_a_0 - BoilerController.res.abs_96_a_0 - BoilerController.res.inst_2_a_0) - (__node_init_LevelOutput_0 - BoilerController.impl.usr.op_mode_a_0 - BoilerController.res.abs_51_a_0 - BoilerController.usr.level_repaired_a_0 - BoilerController.res.abs_97_a_0 - BoilerController.res.abs_98_a_0 - BoilerController.res.inst_1_a_0) - (__node_init_SteamOutput_0 - BoilerController.impl.usr.op_mode_a_0 - BoilerController.res.abs_52_a_0 - BoilerController.usr.steam_repaired_a_0 - BoilerController.res.abs_99_a_0 - BoilerController.res.abs_100_a_0 - BoilerController.res.inst_0_a_0) - (<= - 1 - BoilerController.impl.usr.op_mode_a_0 - 6) - (<= - 1 - BoilerController.res.abs_68_a_0 - 6) - (<= - 0 - X2 - 2) - (<= - 0 - BoilerController.res.abs_1_a_0 - 2) - (<= - 0 - X3 - 2) - (<= - 0 - BoilerController.res.abs_2_a_0 - 2) - (<= - 0 - X4 - 2) - (<= - 0 - BoilerController.res.abs_11_a_0 - 2) - (<= - 0 - X20 - 2) - (<= - 0 - BoilerController.res.abs_22_a_0 - 2) - (<= - 0 - X21 - 2) - (<= - 0 - BoilerController.res.abs_33_a_0 - 2) - (<= - 0 - X22 - 2) - (<= - 0 - BoilerController.res.abs_44_a_0 - 2) - (<= - 0 - X23 - 2) - (<= - 0 - BoilerController.res.abs_12_a_0 - 2) - (<= - 0 - X24 - 2) - (<= - 0 - BoilerController.res.abs_23_a_0 - 2) - (<= - 0 - X25 - 2) - (<= - 0 - BoilerController.res.abs_34_a_0 - 2) - (<= - 0 - X26 - 2) - (<= - 0 - BoilerController.res.abs_45_a_0 - 2) - BoilerController.res.init_flag_a_0))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) -) - -(define-fun - __node_trans_BoilerController_0 ( - (BoilerController.usr.stop_a_1 Bool) - (BoilerController.usr.steam_boiler_waiting_a_1 Bool) - (BoilerController.usr.physical_units_ready_a_1 Bool) - (BoilerController.usr.level_a_1 Int) - (BoilerController.usr.steam_a_1 Int) - (BoilerController.usr.pump_state_0_a_1 Int) - (BoilerController.usr.pump_state_1_a_1 Int) - (BoilerController.usr.pump_state_2_a_1 Int) - (BoilerController.usr.pump_state_3_a_1 Int) - (BoilerController.usr.pump_control_state_0_a_1 Bool) - (BoilerController.usr.pump_control_state_1_a_1 Bool) - (BoilerController.usr.pump_control_state_2_a_1 Bool) - (BoilerController.usr.pump_control_state_3_a_1 Bool) - (BoilerController.usr.pump_repaired_0_a_1 Bool) - (BoilerController.usr.pump_repaired_1_a_1 Bool) - (BoilerController.usr.pump_repaired_2_a_1 Bool) - (BoilerController.usr.pump_repaired_3_a_1 Bool) - (BoilerController.usr.pump_control_repaired_0_a_1 Bool) - (BoilerController.usr.pump_control_repaired_1_a_1 Bool) - (BoilerController.usr.pump_control_repaired_2_a_1 Bool) - (BoilerController.usr.pump_control_repaired_3_a_1 Bool) - (BoilerController.usr.level_repaired_a_1 Bool) - (BoilerController.usr.steam_repaired_a_1 Bool) - (BoilerController.usr.pump_failure_acknowledgement_0_a_1 Bool) - (BoilerController.usr.pump_failure_acknowledgement_1_a_1 Bool) - (BoilerController.usr.pump_failure_acknowledgement_2_a_1 Bool) - (BoilerController.usr.pump_failure_acknowledgement_3_a_1 Bool) - (BoilerController.usr.pump_control_failure_acknowledgement_0_a_1 Bool) - (BoilerController.usr.pump_control_failure_acknowledgement_1_a_1 Bool) - (BoilerController.usr.pump_control_failure_acknowledgement_2_a_1 Bool) - (BoilerController.usr.pump_control_failure_acknowledgement_3_a_1 Bool) - (BoilerController.usr.level_failure_acknowledgement_a_1 Bool) - (BoilerController.usr.steam_failure_acknowledgement_a_1 Bool) - (BoilerController.res.nondet_32 Int) - (BoilerController.res.nondet_31 Int) - (BoilerController.res.nondet_30 Int) - (BoilerController.res.nondet_29 Int) - (BoilerController.res.nondet_28 Int) - (BoilerController.res.nondet_27 Int) - (BoilerController.res.nondet_26 Int) - (BoilerController.res.nondet_25 Int) - (BoilerController.res.nondet_24 Int) - (BoilerController.res.nondet_23 Int) - (BoilerController.res.nondet_22 Int) - (BoilerController.res.nondet_21 Int) - (BoilerController.res.nondet_20 Int) - (BoilerController.res.nondet_19 Int) - (BoilerController.res.nondet_18 Int) - (BoilerController.res.nondet_17 Int) - (BoilerController.res.nondet_16 Int) - (BoilerController.res.nondet_15 Int) - (BoilerController.res.nondet_14 Int) - (BoilerController.res.nondet_13 Int) - (BoilerController.res.nondet_12 Int) - (BoilerController.res.nondet_11 Int) - (BoilerController.res.nondet_10 Int) - (BoilerController.res.nondet_9 Int) - (BoilerController.res.nondet_8 Int) - (BoilerController.res.nondet_7 Int) - (BoilerController.res.nondet_6 Int) - (BoilerController.res.nondet_5 Int) - (BoilerController.res.nondet_4 Int) - (BoilerController.res.nondet_3 Int) - (BoilerController.res.nondet_2 Int) - (BoilerController.res.nondet_1 Int) - (BoilerController.res.nondet_0 Int) - (BoilerController.usr.program_ready_a_1 Bool) - (BoilerController.usr.mode_a_1 Int) - (BoilerController.usr.valve_a_1 Bool) - (BoilerController.usr.open_pump_0_a_1 Bool) - (BoilerController.usr.open_pump_1_a_1 Bool) - (BoilerController.usr.open_pump_2_a_1 Bool) - (BoilerController.usr.open_pump_3_a_1 Bool) - (BoilerController.usr.close_pump_0_a_1 Bool) - (BoilerController.usr.close_pump_1_a_1 Bool) - (BoilerController.usr.close_pump_2_a_1 Bool) - (BoilerController.usr.close_pump_3_a_1 Bool) - (BoilerController.usr.pump_failure_detection_0_a_1 Bool) - (BoilerController.usr.pump_failure_detection_1_a_1 Bool) - (BoilerController.usr.pump_failure_detection_2_a_1 Bool) - (BoilerController.usr.pump_failure_detection_3_a_1 Bool) - (BoilerController.usr.pump_control_failure_detection_0_a_1 Bool) - (BoilerController.usr.pump_control_failure_detection_1_a_1 Bool) - (BoilerController.usr.pump_control_failure_detection_2_a_1 Bool) - (BoilerController.usr.pump_control_failure_detection_3_a_1 Bool) - (BoilerController.usr.level_failure_detection_a_1 Bool) - (BoilerController.usr.steam_outcome_failure_detection_a_1 Bool) - (BoilerController.usr.pump_repaired_acknowledgement_0_a_1 Bool) - (BoilerController.usr.pump_repaired_acknowledgement_1_a_1 Bool) - (BoilerController.usr.pump_repaired_acknowledgement_2_a_1 Bool) - (BoilerController.usr.pump_repaired_acknowledgement_3_a_1 Bool) - (BoilerController.usr.pump_control_repaired_acknowledgement_0_a_1 Bool) - (BoilerController.usr.pump_control_repaired_acknowledgement_1_a_1 Bool) - (BoilerController.usr.pump_control_repaired_acknowledgement_2_a_1 Bool) - (BoilerController.usr.pump_control_repaired_acknowledgement_3_a_1 Bool) - (BoilerController.usr.level_repaired_acknowledgement_a_1 Bool) - (BoilerController.usr.steam_outcome_repaired_acknowledgement_a_1 Bool) - (BoilerController.res.init_flag_a_1 Bool) - (BoilerController.impl.usr.stop_request_a_1 Bool) - (BoilerController.impl.usr.op_mode_a_1 Int) - (BoilerController.impl.usr.q_a_1 Int) - (BoilerController.impl.usr.v_a_1 Int) - (BoilerController.impl.usr.valve_state_a_1 Int) - (BoilerController.impl.usr.n_pumps_a_1 Int) - (BoilerController.impl.usr.pump_status_0_a_1 Int) - (BoilerController.impl.usr.pump_status_1_a_1 Int) - (BoilerController.impl.usr.pump_status_2_a_1 Int) - (BoilerController.impl.usr.pump_status_3_a_1 Int) - (BoilerController.impl.usr.pump_defect_0_a_1 Int) - (BoilerController.impl.usr.pump_defect_1_a_1 Int) - (BoilerController.impl.usr.pump_defect_2_a_1 Int) - (BoilerController.impl.usr.pump_defect_3_a_1 Int) - (BoilerController.impl.usr.pump_control_defect_0_a_1 Int) - (BoilerController.impl.usr.pump_control_defect_1_a_1 Int) - (BoilerController.impl.usr.pump_control_defect_2_a_1 Int) - (BoilerController.impl.usr.pump_control_defect_3_a_1 Int) - (BoilerController.res.abs_0_a_1 Bool) - (BoilerController.res.abs_1_a_1 Int) - (BoilerController.res.abs_2_a_1 Int) - (BoilerController.res.abs_3_a_1 Int) - (BoilerController.res.abs_4_a_1 Bool) - (BoilerController.res.abs_5_a_1 Bool) - (BoilerController.res.abs_6_a_1 Bool) - (BoilerController.res.abs_7_a_1 Bool) - (BoilerController.res.abs_8_a_1 Int) - (BoilerController.res.abs_9_a_1 Int) - (BoilerController.res.abs_10_a_1 Bool) - (BoilerController.res.abs_11_a_1 Int) - (BoilerController.res.abs_12_a_1 Int) - (BoilerController.res.abs_13_a_1 Bool) - (BoilerController.res.abs_14_a_1 Int) - (BoilerController.res.abs_15_a_1 Bool) - (BoilerController.res.abs_16_a_1 Bool) - (BoilerController.res.abs_17_a_1 Bool) - (BoilerController.res.abs_18_a_1 Bool) - (BoilerController.res.abs_19_a_1 Int) - (BoilerController.res.abs_20_a_1 Int) - (BoilerController.res.abs_21_a_1 Bool) - (BoilerController.res.abs_22_a_1 Int) - (BoilerController.res.abs_23_a_1 Int) - (BoilerController.res.abs_24_a_1 Bool) - (BoilerController.res.abs_25_a_1 Int) - (BoilerController.res.abs_26_a_1 Bool) - (BoilerController.res.abs_27_a_1 Bool) - (BoilerController.res.abs_28_a_1 Bool) - (BoilerController.res.abs_29_a_1 Bool) - (BoilerController.res.abs_30_a_1 Int) - (BoilerController.res.abs_31_a_1 Int) - (BoilerController.res.abs_32_a_1 Bool) - (BoilerController.res.abs_33_a_1 Int) - (BoilerController.res.abs_34_a_1 Int) - (BoilerController.res.abs_35_a_1 Bool) - (BoilerController.res.abs_36_a_1 Int) - (BoilerController.res.abs_37_a_1 Bool) - (BoilerController.res.abs_38_a_1 Bool) - (BoilerController.res.abs_39_a_1 Bool) - (BoilerController.res.abs_40_a_1 Bool) - (BoilerController.res.abs_41_a_1 Int) - (BoilerController.res.abs_42_a_1 Int) - (BoilerController.res.abs_43_a_1 Bool) - (BoilerController.res.abs_44_a_1 Int) - (BoilerController.res.abs_45_a_1 Int) - (BoilerController.res.abs_46_a_1 Bool) - (BoilerController.res.abs_48_a_1 Int) - (BoilerController.res.abs_49_a_1 Int) - (BoilerController.res.abs_50_a_1 Int) - (BoilerController.res.abs_51_a_1 Int) - (BoilerController.res.abs_52_a_1 Int) - (BoilerController.res.abs_53_a_1 Bool) - (BoilerController.res.abs_54_a_1 Bool) - (BoilerController.res.abs_55_a_1 Bool) - (BoilerController.res.abs_56_a_1 Bool) - (BoilerController.res.abs_57_a_1 Int) - (BoilerController.res.abs_58_a_1 Int) - (BoilerController.res.abs_59_a_1 Int) - (BoilerController.res.abs_60_a_1 Int) - (BoilerController.res.abs_61_a_1 Int) - (BoilerController.res.abs_62_a_1 Int) - (BoilerController.res.abs_63_a_1 Int) - (BoilerController.res.abs_64_a_1 Int) - (BoilerController.res.abs_65_a_1 Int) - (BoilerController.res.abs_66_a_1 Int) - (BoilerController.res.abs_67_a_1 Int) - (BoilerController.res.abs_68_a_1 Int) - (BoilerController.res.abs_69_a_1 Bool) - (BoilerController.res.abs_70_a_1 Int) - (BoilerController.res.abs_71_a_1 Bool) - (BoilerController.res.abs_72_a_1 Int) - (BoilerController.res.abs_73_a_1 Bool) - (BoilerController.res.abs_74_a_1 Bool) - (BoilerController.res.abs_75_a_1 Bool) - (BoilerController.res.abs_76_a_1 Bool) - (BoilerController.res.abs_77_a_1 Bool) - (BoilerController.res.abs_78_a_1 Bool) - (BoilerController.res.abs_79_a_1 Bool) - (BoilerController.res.abs_80_a_1 Bool) - (BoilerController.res.abs_81_a_1 Bool) - (BoilerController.res.abs_82_a_1 Bool) - (BoilerController.res.abs_83_a_1 Bool) - (BoilerController.res.abs_84_a_1 Bool) - (BoilerController.res.abs_85_a_1 Bool) - (BoilerController.res.abs_86_a_1 Bool) - (BoilerController.res.abs_87_a_1 Bool) - (BoilerController.res.abs_88_a_1 Bool) - (BoilerController.res.abs_89_a_1 Bool) - (BoilerController.res.abs_90_a_1 Bool) - (BoilerController.res.abs_91_a_1 Bool) - (BoilerController.res.abs_92_a_1 Bool) - (BoilerController.res.abs_93_a_1 Bool) - (BoilerController.res.abs_94_a_1 Bool) - (BoilerController.res.abs_95_a_1 Bool) - (BoilerController.res.abs_96_a_1 Bool) - (BoilerController.res.abs_97_a_1 Bool) - (BoilerController.res.abs_98_a_1 Bool) - (BoilerController.res.abs_99_a_1 Bool) - (BoilerController.res.abs_100_a_1 Bool) - (BoilerController.res.inst_176_a_1 Bool) - (BoilerController.res.inst_175_a_1 Bool) - (BoilerController.res.inst_174_a_1 Bool) - (BoilerController.res.inst_173_a_1 Bool) - (BoilerController.res.inst_172_a_1 Int) - (BoilerController.res.inst_171_a_1 Bool) - (BoilerController.res.inst_170_a_1 Bool) - (BoilerController.res.inst_169_a_1 Bool) - (BoilerController.res.inst_168_a_1 Bool) - (BoilerController.res.inst_167_a_1 Bool) - (BoilerController.res.inst_166_a_1 Bool) - (BoilerController.res.inst_165_a_1 Bool) - (BoilerController.res.inst_164_a_1 Bool) - (BoilerController.res.inst_163_a_1 Bool) - (BoilerController.res.inst_162_a_1 Bool) - (BoilerController.res.inst_161_a_1 Bool) - (BoilerController.res.inst_160_a_1 Bool) - (BoilerController.res.inst_159_a_1 Bool) - (BoilerController.res.inst_158_a_1 Bool) - (BoilerController.res.inst_157_a_1 Bool) - (BoilerController.res.inst_156_a_1 Bool) - (BoilerController.res.inst_155_a_1 Bool) - (BoilerController.res.inst_154_a_1 Bool) - (BoilerController.res.inst_153_a_1 Bool) - (BoilerController.res.inst_152_a_1 Bool) - (BoilerController.res.inst_151_a_1 Bool) - (BoilerController.res.inst_150_a_1 Bool) - (BoilerController.res.inst_149_a_1 Bool) - (BoilerController.res.inst_148_a_1 Bool) - (BoilerController.res.inst_147_a_1 Bool) - (BoilerController.res.inst_146_a_1 Bool) - (BoilerController.res.inst_145_a_1 Bool) - (BoilerController.res.inst_144_a_1 Bool) - (BoilerController.res.inst_143_a_1 Bool) - (BoilerController.res.inst_142_a_1 Bool) - (BoilerController.res.inst_141_a_1 Bool) - (BoilerController.res.inst_140_a_1 Bool) - (BoilerController.res.inst_139_a_1 Bool) - (BoilerController.res.inst_138_a_1 Bool) - (BoilerController.res.inst_137_a_1 Bool) - (BoilerController.res.inst_136_a_1 Bool) - (BoilerController.res.inst_135_a_1 Bool) - (BoilerController.res.inst_134_a_1 Bool) - (BoilerController.res.inst_133_a_1 Bool) - (BoilerController.res.inst_132_a_1 Bool) - (BoilerController.res.inst_131_a_1 Bool) - (BoilerController.res.inst_130_a_1 Bool) - (BoilerController.res.inst_129_a_1 Bool) - (BoilerController.res.inst_128_a_1 Bool) - (BoilerController.res.inst_127_a_1 Bool) - (BoilerController.res.inst_126_a_1 Bool) - (BoilerController.res.inst_125_a_1 Bool) - (BoilerController.res.inst_124_a_1 Bool) - (BoilerController.res.inst_123_a_1 Bool) - (BoilerController.res.inst_122_a_1 Bool) - (BoilerController.res.inst_121_a_1 Bool) - (BoilerController.res.inst_120_a_1 Int) - (BoilerController.res.inst_119_a_1 Bool) - (BoilerController.res.inst_118_a_1 Bool) - (BoilerController.res.inst_117_a_1 Int) - (BoilerController.res.inst_116_a_1 Int) - (BoilerController.res.inst_115_a_1 Bool) - (BoilerController.res.inst_114_a_1 Bool) - (BoilerController.res.inst_113_a_1 Bool) - (BoilerController.res.inst_112_a_1 Bool) - (BoilerController.res.inst_111_a_1 Int) - (BoilerController.res.inst_110_a_1 Int) - (BoilerController.res.inst_109_a_1 Bool) - (BoilerController.res.inst_108_a_1 Bool) - (BoilerController.res.inst_107_a_1 Bool) - (BoilerController.res.inst_106_a_1 Bool) - (BoilerController.res.inst_105_a_1 Bool) - (BoilerController.res.inst_104_a_1 Bool) - (BoilerController.res.inst_103_a_1 Bool) - (BoilerController.res.inst_102_a_1 Bool) - (BoilerController.res.inst_101_a_1 Int) - (BoilerController.res.inst_100_a_1 Int) - (BoilerController.res.inst_99_a_1 Int) - (BoilerController.res.inst_98_a_1 Int) - (BoilerController.res.inst_97_a_1 Bool) - (BoilerController.res.inst_96_a_1 Bool) - (BoilerController.res.inst_95_a_1 Bool) - (BoilerController.res.inst_94_a_1 Bool) - (BoilerController.res.inst_93_a_1 Int) - (BoilerController.res.inst_92_a_1 Int) - (BoilerController.res.inst_91_a_1 Int) - (BoilerController.res.inst_90_a_1 Int) - (BoilerController.res.inst_89_a_1 Int) - (BoilerController.res.inst_88_a_1 Int) - (BoilerController.res.inst_87_a_1 Int) - (BoilerController.res.inst_86_a_1 Int) - (BoilerController.res.inst_85_a_1 Int) - (BoilerController.res.inst_84_a_1 Int) - (BoilerController.res.inst_83_a_1 Bool) - (BoilerController.res.inst_82_a_1 Bool) - (BoilerController.res.inst_81_a_1 Bool) - (BoilerController.res.inst_80_a_1 Bool) - (BoilerController.res.inst_79_a_1 Int) - (BoilerController.res.inst_78_a_1 Int) - (BoilerController.res.inst_77_a_1 Int) - (BoilerController.res.inst_76_a_1 Int) - (BoilerController.res.inst_75_a_1 Bool) - (BoilerController.res.inst_74_a_1 Int) - (BoilerController.res.inst_73_a_1 Bool) - (BoilerController.res.inst_72_a_1 Int) - (BoilerController.res.inst_71_a_1 Bool) - (BoilerController.res.inst_70_a_1 Int) - (BoilerController.res.inst_69_a_1 Bool) - (BoilerController.res.inst_68_a_1 Int) - (BoilerController.res.inst_67_a_1 Bool) - (BoilerController.res.inst_66_a_1 Int) - (BoilerController.res.inst_65_a_1 Bool) - (BoilerController.res.inst_64_a_1 Int) - (BoilerController.res.inst_63_a_1 Bool) - (BoilerController.res.inst_62_a_1 Int) - (BoilerController.res.inst_61_a_1 Bool) - (BoilerController.res.inst_60_a_1 Int) - (BoilerController.res.inst_59_a_1 Bool) - (BoilerController.res.inst_58_a_1 Bool) - (BoilerController.res.inst_57_a_1 Bool) - (BoilerController.res.inst_56_a_1 Bool) - (BoilerController.res.inst_55_a_1 Bool) - (BoilerController.res.inst_54_a_1 Bool) - (BoilerController.res.inst_53_a_1 Bool) - (BoilerController.res.inst_52_a_1 Bool) - (BoilerController.res.inst_51_a_1 Bool) - (BoilerController.res.inst_50_a_1 Bool) - (BoilerController.res.inst_49_a_1 Bool) - (BoilerController.res.inst_48_a_1 Bool) - (BoilerController.res.inst_47_a_1 Int) - (BoilerController.res.inst_46_a_1 Bool) - (BoilerController.res.inst_45_a_1 Bool) - (BoilerController.res.inst_44_a_1 Bool) - (BoilerController.res.inst_43_a_1 Bool) - (BoilerController.res.inst_42_a_1 Bool) - (BoilerController.res.inst_41_a_1 Bool) - (BoilerController.res.inst_40_a_1 Bool) - (BoilerController.res.inst_39_a_1 Bool) - (BoilerController.res.inst_38_a_1 Bool) - (BoilerController.res.inst_37_a_1 Bool) - (BoilerController.res.inst_36_a_1 Bool) - (BoilerController.res.inst_35_a_1 Int) - (BoilerController.res.inst_34_a_1 Int) - (BoilerController.res.inst_33_a_1 Int) - (BoilerController.res.inst_32_a_1 Int) - (BoilerController.res.inst_31_a_1 Bool) - (BoilerController.res.inst_30_a_1 Bool) - (BoilerController.res.inst_29_a_1 Bool) - (BoilerController.res.inst_28_a_1 Bool) - (BoilerController.res.inst_27_a_1 Bool) - (BoilerController.res.inst_26_a_1 Bool) - (BoilerController.res.inst_25_a_1 Bool) - (BoilerController.res.inst_24_a_1 Bool) - (BoilerController.res.inst_23_a_1 Bool) - (BoilerController.res.inst_22_a_1 Int) - (BoilerController.res.inst_21_a_1 Int) - (BoilerController.res.inst_20_a_1 Int) - (BoilerController.res.inst_19_a_1 Int) - (BoilerController.res.inst_18_a_1 Bool) - (BoilerController.res.inst_17_a_1 Bool) - (BoilerController.res.inst_16_a_1 Bool) - (BoilerController.res.inst_15_a_1 Bool) - (BoilerController.res.inst_14_a_1 Bool) - (BoilerController.res.inst_13_a_1 Bool) - (BoilerController.res.inst_12_a_1 Bool) - (BoilerController.res.inst_11_a_1 Bool) - (BoilerController.res.inst_10_a_1 Bool) - (BoilerController.res.inst_9_a_1 Int) - (BoilerController.res.inst_8_a_1 Int) - (BoilerController.res.inst_7_a_1 Int) - (BoilerController.res.inst_6_a_1 Int) - (BoilerController.res.inst_5_a_1 Bool) - (BoilerController.res.inst_4_a_1 Bool) - (BoilerController.res.inst_3_a_1 Bool) - (BoilerController.res.inst_2_a_1 Bool) - (BoilerController.res.inst_1_a_1 Bool) - (BoilerController.res.inst_0_a_1 Bool) - (BoilerController.usr.stop_a_0 Bool) - (BoilerController.usr.steam_boiler_waiting_a_0 Bool) - (BoilerController.usr.physical_units_ready_a_0 Bool) - (BoilerController.usr.level_a_0 Int) - (BoilerController.usr.steam_a_0 Int) - (BoilerController.usr.pump_state_0_a_0 Int) - (BoilerController.usr.pump_state_1_a_0 Int) - (BoilerController.usr.pump_state_2_a_0 Int) - (BoilerController.usr.pump_state_3_a_0 Int) - (BoilerController.usr.pump_control_state_0_a_0 Bool) - (BoilerController.usr.pump_control_state_1_a_0 Bool) - (BoilerController.usr.pump_control_state_2_a_0 Bool) - (BoilerController.usr.pump_control_state_3_a_0 Bool) - (BoilerController.usr.pump_repaired_0_a_0 Bool) - (BoilerController.usr.pump_repaired_1_a_0 Bool) - (BoilerController.usr.pump_repaired_2_a_0 Bool) - (BoilerController.usr.pump_repaired_3_a_0 Bool) - (BoilerController.usr.pump_control_repaired_0_a_0 Bool) - (BoilerController.usr.pump_control_repaired_1_a_0 Bool) - (BoilerController.usr.pump_control_repaired_2_a_0 Bool) - (BoilerController.usr.pump_control_repaired_3_a_0 Bool) - (BoilerController.usr.level_repaired_a_0 Bool) - (BoilerController.usr.steam_repaired_a_0 Bool) - (BoilerController.usr.pump_failure_acknowledgement_0_a_0 Bool) - (BoilerController.usr.pump_failure_acknowledgement_1_a_0 Bool) - (BoilerController.usr.pump_failure_acknowledgement_2_a_0 Bool) - (BoilerController.usr.pump_failure_acknowledgement_3_a_0 Bool) - (BoilerController.usr.pump_control_failure_acknowledgement_0_a_0 Bool) - (BoilerController.usr.pump_control_failure_acknowledgement_1_a_0 Bool) - (BoilerController.usr.pump_control_failure_acknowledgement_2_a_0 Bool) - (BoilerController.usr.pump_control_failure_acknowledgement_3_a_0 Bool) - (BoilerController.usr.level_failure_acknowledgement_a_0 Bool) - (BoilerController.usr.steam_failure_acknowledgement_a_0 Bool) - (BoilerController.usr.program_ready_a_0 Bool) - (BoilerController.usr.mode_a_0 Int) - (BoilerController.usr.valve_a_0 Bool) - (BoilerController.usr.open_pump_0_a_0 Bool) - (BoilerController.usr.open_pump_1_a_0 Bool) - (BoilerController.usr.open_pump_2_a_0 Bool) - (BoilerController.usr.open_pump_3_a_0 Bool) - (BoilerController.usr.close_pump_0_a_0 Bool) - (BoilerController.usr.close_pump_1_a_0 Bool) - (BoilerController.usr.close_pump_2_a_0 Bool) - (BoilerController.usr.close_pump_3_a_0 Bool) - (BoilerController.usr.pump_failure_detection_0_a_0 Bool) - (BoilerController.usr.pump_failure_detection_1_a_0 Bool) - (BoilerController.usr.pump_failure_detection_2_a_0 Bool) - (BoilerController.usr.pump_failure_detection_3_a_0 Bool) - (BoilerController.usr.pump_control_failure_detection_0_a_0 Bool) - (BoilerController.usr.pump_control_failure_detection_1_a_0 Bool) - (BoilerController.usr.pump_control_failure_detection_2_a_0 Bool) - (BoilerController.usr.pump_control_failure_detection_3_a_0 Bool) - (BoilerController.usr.level_failure_detection_a_0 Bool) - (BoilerController.usr.steam_outcome_failure_detection_a_0 Bool) - (BoilerController.usr.pump_repaired_acknowledgement_0_a_0 Bool) - (BoilerController.usr.pump_repaired_acknowledgement_1_a_0 Bool) - (BoilerController.usr.pump_repaired_acknowledgement_2_a_0 Bool) - (BoilerController.usr.pump_repaired_acknowledgement_3_a_0 Bool) - (BoilerController.usr.pump_control_repaired_acknowledgement_0_a_0 Bool) - (BoilerController.usr.pump_control_repaired_acknowledgement_1_a_0 Bool) - (BoilerController.usr.pump_control_repaired_acknowledgement_2_a_0 Bool) - (BoilerController.usr.pump_control_repaired_acknowledgement_3_a_0 Bool) - (BoilerController.usr.level_repaired_acknowledgement_a_0 Bool) - (BoilerController.usr.steam_outcome_repaired_acknowledgement_a_0 Bool) - (BoilerController.res.init_flag_a_0 Bool) - (BoilerController.impl.usr.stop_request_a_0 Bool) - (BoilerController.impl.usr.op_mode_a_0 Int) - (BoilerController.impl.usr.q_a_0 Int) - (BoilerController.impl.usr.v_a_0 Int) - (BoilerController.impl.usr.valve_state_a_0 Int) - (BoilerController.impl.usr.n_pumps_a_0 Int) - (BoilerController.impl.usr.pump_status_0_a_0 Int) - (BoilerController.impl.usr.pump_status_1_a_0 Int) - (BoilerController.impl.usr.pump_status_2_a_0 Int) - (BoilerController.impl.usr.pump_status_3_a_0 Int) - (BoilerController.impl.usr.pump_defect_0_a_0 Int) - (BoilerController.impl.usr.pump_defect_1_a_0 Int) - (BoilerController.impl.usr.pump_defect_2_a_0 Int) - (BoilerController.impl.usr.pump_defect_3_a_0 Int) - (BoilerController.impl.usr.pump_control_defect_0_a_0 Int) - (BoilerController.impl.usr.pump_control_defect_1_a_0 Int) - (BoilerController.impl.usr.pump_control_defect_2_a_0 Int) - (BoilerController.impl.usr.pump_control_defect_3_a_0 Int) - (BoilerController.res.abs_0_a_0 Bool) - (BoilerController.res.abs_1_a_0 Int) - (BoilerController.res.abs_2_a_0 Int) - (BoilerController.res.abs_3_a_0 Int) - (BoilerController.res.abs_4_a_0 Bool) - (BoilerController.res.abs_5_a_0 Bool) - (BoilerController.res.abs_6_a_0 Bool) - (BoilerController.res.abs_7_a_0 Bool) - (BoilerController.res.abs_8_a_0 Int) - (BoilerController.res.abs_9_a_0 Int) - (BoilerController.res.abs_10_a_0 Bool) - (BoilerController.res.abs_11_a_0 Int) - (BoilerController.res.abs_12_a_0 Int) - (BoilerController.res.abs_13_a_0 Bool) - (BoilerController.res.abs_14_a_0 Int) - (BoilerController.res.abs_15_a_0 Bool) - (BoilerController.res.abs_16_a_0 Bool) - (BoilerController.res.abs_17_a_0 Bool) - (BoilerController.res.abs_18_a_0 Bool) - (BoilerController.res.abs_19_a_0 Int) - (BoilerController.res.abs_20_a_0 Int) - (BoilerController.res.abs_21_a_0 Bool) - (BoilerController.res.abs_22_a_0 Int) - (BoilerController.res.abs_23_a_0 Int) - (BoilerController.res.abs_24_a_0 Bool) - (BoilerController.res.abs_25_a_0 Int) - (BoilerController.res.abs_26_a_0 Bool) - (BoilerController.res.abs_27_a_0 Bool) - (BoilerController.res.abs_28_a_0 Bool) - (BoilerController.res.abs_29_a_0 Bool) - (BoilerController.res.abs_30_a_0 Int) - (BoilerController.res.abs_31_a_0 Int) - (BoilerController.res.abs_32_a_0 Bool) - (BoilerController.res.abs_33_a_0 Int) - (BoilerController.res.abs_34_a_0 Int) - (BoilerController.res.abs_35_a_0 Bool) - (BoilerController.res.abs_36_a_0 Int) - (BoilerController.res.abs_37_a_0 Bool) - (BoilerController.res.abs_38_a_0 Bool) - (BoilerController.res.abs_39_a_0 Bool) - (BoilerController.res.abs_40_a_0 Bool) - (BoilerController.res.abs_41_a_0 Int) - (BoilerController.res.abs_42_a_0 Int) - (BoilerController.res.abs_43_a_0 Bool) - (BoilerController.res.abs_44_a_0 Int) - (BoilerController.res.abs_45_a_0 Int) - (BoilerController.res.abs_46_a_0 Bool) - (BoilerController.res.abs_48_a_0 Int) - (BoilerController.res.abs_49_a_0 Int) - (BoilerController.res.abs_50_a_0 Int) - (BoilerController.res.abs_51_a_0 Int) - (BoilerController.res.abs_52_a_0 Int) - (BoilerController.res.abs_53_a_0 Bool) - (BoilerController.res.abs_54_a_0 Bool) - (BoilerController.res.abs_55_a_0 Bool) - (BoilerController.res.abs_56_a_0 Bool) - (BoilerController.res.abs_57_a_0 Int) - (BoilerController.res.abs_58_a_0 Int) - (BoilerController.res.abs_59_a_0 Int) - (BoilerController.res.abs_60_a_0 Int) - (BoilerController.res.abs_61_a_0 Int) - (BoilerController.res.abs_62_a_0 Int) - (BoilerController.res.abs_63_a_0 Int) - (BoilerController.res.abs_64_a_0 Int) - (BoilerController.res.abs_65_a_0 Int) - (BoilerController.res.abs_66_a_0 Int) - (BoilerController.res.abs_67_a_0 Int) - (BoilerController.res.abs_68_a_0 Int) - (BoilerController.res.abs_69_a_0 Bool) - (BoilerController.res.abs_70_a_0 Int) - (BoilerController.res.abs_71_a_0 Bool) - (BoilerController.res.abs_72_a_0 Int) - (BoilerController.res.abs_73_a_0 Bool) - (BoilerController.res.abs_74_a_0 Bool) - (BoilerController.res.abs_75_a_0 Bool) - (BoilerController.res.abs_76_a_0 Bool) - (BoilerController.res.abs_77_a_0 Bool) - (BoilerController.res.abs_78_a_0 Bool) - (BoilerController.res.abs_79_a_0 Bool) - (BoilerController.res.abs_80_a_0 Bool) - (BoilerController.res.abs_81_a_0 Bool) - (BoilerController.res.abs_82_a_0 Bool) - (BoilerController.res.abs_83_a_0 Bool) - (BoilerController.res.abs_84_a_0 Bool) - (BoilerController.res.abs_85_a_0 Bool) - (BoilerController.res.abs_86_a_0 Bool) - (BoilerController.res.abs_87_a_0 Bool) - (BoilerController.res.abs_88_a_0 Bool) - (BoilerController.res.abs_89_a_0 Bool) - (BoilerController.res.abs_90_a_0 Bool) - (BoilerController.res.abs_91_a_0 Bool) - (BoilerController.res.abs_92_a_0 Bool) - (BoilerController.res.abs_93_a_0 Bool) - (BoilerController.res.abs_94_a_0 Bool) - (BoilerController.res.abs_95_a_0 Bool) - (BoilerController.res.abs_96_a_0 Bool) - (BoilerController.res.abs_97_a_0 Bool) - (BoilerController.res.abs_98_a_0 Bool) - (BoilerController.res.abs_99_a_0 Bool) - (BoilerController.res.abs_100_a_0 Bool) - (BoilerController.res.inst_176_a_0 Bool) - (BoilerController.res.inst_175_a_0 Bool) - (BoilerController.res.inst_174_a_0 Bool) - (BoilerController.res.inst_173_a_0 Bool) - (BoilerController.res.inst_172_a_0 Int) - (BoilerController.res.inst_171_a_0 Bool) - (BoilerController.res.inst_170_a_0 Bool) - (BoilerController.res.inst_169_a_0 Bool) - (BoilerController.res.inst_168_a_0 Bool) - (BoilerController.res.inst_167_a_0 Bool) - (BoilerController.res.inst_166_a_0 Bool) - (BoilerController.res.inst_165_a_0 Bool) - (BoilerController.res.inst_164_a_0 Bool) - (BoilerController.res.inst_163_a_0 Bool) - (BoilerController.res.inst_162_a_0 Bool) - (BoilerController.res.inst_161_a_0 Bool) - (BoilerController.res.inst_160_a_0 Bool) - (BoilerController.res.inst_159_a_0 Bool) - (BoilerController.res.inst_158_a_0 Bool) - (BoilerController.res.inst_157_a_0 Bool) - (BoilerController.res.inst_156_a_0 Bool) - (BoilerController.res.inst_155_a_0 Bool) - (BoilerController.res.inst_154_a_0 Bool) - (BoilerController.res.inst_153_a_0 Bool) - (BoilerController.res.inst_152_a_0 Bool) - (BoilerController.res.inst_151_a_0 Bool) - (BoilerController.res.inst_150_a_0 Bool) - (BoilerController.res.inst_149_a_0 Bool) - (BoilerController.res.inst_148_a_0 Bool) - (BoilerController.res.inst_147_a_0 Bool) - (BoilerController.res.inst_146_a_0 Bool) - (BoilerController.res.inst_145_a_0 Bool) - (BoilerController.res.inst_144_a_0 Bool) - (BoilerController.res.inst_143_a_0 Bool) - (BoilerController.res.inst_142_a_0 Bool) - (BoilerController.res.inst_141_a_0 Bool) - (BoilerController.res.inst_140_a_0 Bool) - (BoilerController.res.inst_139_a_0 Bool) - (BoilerController.res.inst_138_a_0 Bool) - (BoilerController.res.inst_137_a_0 Bool) - (BoilerController.res.inst_136_a_0 Bool) - (BoilerController.res.inst_135_a_0 Bool) - (BoilerController.res.inst_134_a_0 Bool) - (BoilerController.res.inst_133_a_0 Bool) - (BoilerController.res.inst_132_a_0 Bool) - (BoilerController.res.inst_131_a_0 Bool) - (BoilerController.res.inst_130_a_0 Bool) - (BoilerController.res.inst_129_a_0 Bool) - (BoilerController.res.inst_128_a_0 Bool) - (BoilerController.res.inst_127_a_0 Bool) - (BoilerController.res.inst_126_a_0 Bool) - (BoilerController.res.inst_125_a_0 Bool) - (BoilerController.res.inst_124_a_0 Bool) - (BoilerController.res.inst_123_a_0 Bool) - (BoilerController.res.inst_122_a_0 Bool) - (BoilerController.res.inst_121_a_0 Bool) - (BoilerController.res.inst_120_a_0 Int) - (BoilerController.res.inst_119_a_0 Bool) - (BoilerController.res.inst_118_a_0 Bool) - (BoilerController.res.inst_117_a_0 Int) - (BoilerController.res.inst_116_a_0 Int) - (BoilerController.res.inst_115_a_0 Bool) - (BoilerController.res.inst_114_a_0 Bool) - (BoilerController.res.inst_113_a_0 Bool) - (BoilerController.res.inst_112_a_0 Bool) - (BoilerController.res.inst_111_a_0 Int) - (BoilerController.res.inst_110_a_0 Int) - (BoilerController.res.inst_109_a_0 Bool) - (BoilerController.res.inst_108_a_0 Bool) - (BoilerController.res.inst_107_a_0 Bool) - (BoilerController.res.inst_106_a_0 Bool) - (BoilerController.res.inst_105_a_0 Bool) - (BoilerController.res.inst_104_a_0 Bool) - (BoilerController.res.inst_103_a_0 Bool) - (BoilerController.res.inst_102_a_0 Bool) - (BoilerController.res.inst_101_a_0 Int) - (BoilerController.res.inst_100_a_0 Int) - (BoilerController.res.inst_99_a_0 Int) - (BoilerController.res.inst_98_a_0 Int) - (BoilerController.res.inst_97_a_0 Bool) - (BoilerController.res.inst_96_a_0 Bool) - (BoilerController.res.inst_95_a_0 Bool) - (BoilerController.res.inst_94_a_0 Bool) - (BoilerController.res.inst_93_a_0 Int) - (BoilerController.res.inst_92_a_0 Int) - (BoilerController.res.inst_91_a_0 Int) - (BoilerController.res.inst_90_a_0 Int) - (BoilerController.res.inst_89_a_0 Int) - (BoilerController.res.inst_88_a_0 Int) - (BoilerController.res.inst_87_a_0 Int) - (BoilerController.res.inst_86_a_0 Int) - (BoilerController.res.inst_85_a_0 Int) - (BoilerController.res.inst_84_a_0 Int) - (BoilerController.res.inst_83_a_0 Bool) - (BoilerController.res.inst_82_a_0 Bool) - (BoilerController.res.inst_81_a_0 Bool) - (BoilerController.res.inst_80_a_0 Bool) - (BoilerController.res.inst_79_a_0 Int) - (BoilerController.res.inst_78_a_0 Int) - (BoilerController.res.inst_77_a_0 Int) - (BoilerController.res.inst_76_a_0 Int) - (BoilerController.res.inst_75_a_0 Bool) - (BoilerController.res.inst_74_a_0 Int) - (BoilerController.res.inst_73_a_0 Bool) - (BoilerController.res.inst_72_a_0 Int) - (BoilerController.res.inst_71_a_0 Bool) - (BoilerController.res.inst_70_a_0 Int) - (BoilerController.res.inst_69_a_0 Bool) - (BoilerController.res.inst_68_a_0 Int) - (BoilerController.res.inst_67_a_0 Bool) - (BoilerController.res.inst_66_a_0 Int) - (BoilerController.res.inst_65_a_0 Bool) - (BoilerController.res.inst_64_a_0 Int) - (BoilerController.res.inst_63_a_0 Bool) - (BoilerController.res.inst_62_a_0 Int) - (BoilerController.res.inst_61_a_0 Bool) - (BoilerController.res.inst_60_a_0 Int) - (BoilerController.res.inst_59_a_0 Bool) - (BoilerController.res.inst_58_a_0 Bool) - (BoilerController.res.inst_57_a_0 Bool) - (BoilerController.res.inst_56_a_0 Bool) - (BoilerController.res.inst_55_a_0 Bool) - (BoilerController.res.inst_54_a_0 Bool) - (BoilerController.res.inst_53_a_0 Bool) - (BoilerController.res.inst_52_a_0 Bool) - (BoilerController.res.inst_51_a_0 Bool) - (BoilerController.res.inst_50_a_0 Bool) - (BoilerController.res.inst_49_a_0 Bool) - (BoilerController.res.inst_48_a_0 Bool) - (BoilerController.res.inst_47_a_0 Int) - (BoilerController.res.inst_46_a_0 Bool) - (BoilerController.res.inst_45_a_0 Bool) - (BoilerController.res.inst_44_a_0 Bool) - (BoilerController.res.inst_43_a_0 Bool) - (BoilerController.res.inst_42_a_0 Bool) - (BoilerController.res.inst_41_a_0 Bool) - (BoilerController.res.inst_40_a_0 Bool) - (BoilerController.res.inst_39_a_0 Bool) - (BoilerController.res.inst_38_a_0 Bool) - (BoilerController.res.inst_37_a_0 Bool) - (BoilerController.res.inst_36_a_0 Bool) - (BoilerController.res.inst_35_a_0 Int) - (BoilerController.res.inst_34_a_0 Int) - (BoilerController.res.inst_33_a_0 Int) - (BoilerController.res.inst_32_a_0 Int) - (BoilerController.res.inst_31_a_0 Bool) - (BoilerController.res.inst_30_a_0 Bool) - (BoilerController.res.inst_29_a_0 Bool) - (BoilerController.res.inst_28_a_0 Bool) - (BoilerController.res.inst_27_a_0 Bool) - (BoilerController.res.inst_26_a_0 Bool) - (BoilerController.res.inst_25_a_0 Bool) - (BoilerController.res.inst_24_a_0 Bool) - (BoilerController.res.inst_23_a_0 Bool) - (BoilerController.res.inst_22_a_0 Int) - (BoilerController.res.inst_21_a_0 Int) - (BoilerController.res.inst_20_a_0 Int) - (BoilerController.res.inst_19_a_0 Int) - (BoilerController.res.inst_18_a_0 Bool) - (BoilerController.res.inst_17_a_0 Bool) - (BoilerController.res.inst_16_a_0 Bool) - (BoilerController.res.inst_15_a_0 Bool) - (BoilerController.res.inst_14_a_0 Bool) - (BoilerController.res.inst_13_a_0 Bool) - (BoilerController.res.inst_12_a_0 Bool) - (BoilerController.res.inst_11_a_0 Bool) - (BoilerController.res.inst_10_a_0 Bool) - (BoilerController.res.inst_9_a_0 Int) - (BoilerController.res.inst_8_a_0 Int) - (BoilerController.res.inst_7_a_0 Int) - (BoilerController.res.inst_6_a_0 Int) - (BoilerController.res.inst_5_a_0 Bool) - (BoilerController.res.inst_4_a_0 Bool) - (BoilerController.res.inst_3_a_0 Bool) - (BoilerController.res.inst_2_a_0 Bool) - (BoilerController.res.inst_1_a_0 Bool) - (BoilerController.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - BoilerController.res.abs_43_a_1 - BoilerController.usr.pump_control_state_3_a_1) - (= BoilerController.res.abs_42_a_1 BoilerController.usr.pump_state_3_a_1) - (= - BoilerController.res.abs_41_a_1 - BoilerController.impl.usr.pump_status_3_a_0) - (let - ((X1 Bool BoilerController.res.abs_46_a_1)) - (let - ((X2 Bool X1)) - (and - (= BoilerController.res.abs_56_a_1 X2) - (= - BoilerController.res.abs_32_a_1 - BoilerController.usr.pump_control_state_2_a_1) - (= BoilerController.res.abs_31_a_1 BoilerController.usr.pump_state_2_a_1) - (= - BoilerController.res.abs_30_a_1 - BoilerController.impl.usr.pump_status_2_a_0) - (let - ((X3 Bool BoilerController.res.abs_35_a_1)) - (let - ((X4 Bool X3)) - (and - (= BoilerController.res.abs_55_a_1 X4) - (= - BoilerController.res.abs_21_a_1 - BoilerController.usr.pump_control_state_1_a_1) - (= - BoilerController.res.abs_20_a_1 - BoilerController.usr.pump_state_1_a_1) - (= - BoilerController.res.abs_19_a_1 - BoilerController.impl.usr.pump_status_1_a_0) - (let - ((X5 Bool BoilerController.res.abs_24_a_1)) - (let - ((X6 Bool X5)) - (and - (= BoilerController.res.abs_54_a_1 X6) - (= - BoilerController.res.abs_10_a_1 - BoilerController.usr.pump_control_state_0_a_1) - (= - BoilerController.res.abs_9_a_1 - BoilerController.usr.pump_state_0_a_1) - (= - BoilerController.res.abs_8_a_1 - BoilerController.impl.usr.pump_status_0_a_0) - (let - ((X7 Bool BoilerController.res.abs_13_a_1)) - (let - ((X8 Bool X7)) - (and - (= BoilerController.res.abs_53_a_1 X8) - (let - ((X9 Int BoilerController.res.abs_1_a_1)) - (and - (= BoilerController.res.abs_51_a_1 X9) - (= - BoilerController.res.abs_50_a_1 - BoilerController.usr.steam_a_1) - (= - BoilerController.res.abs_49_a_1 - BoilerController.usr.level_a_1) - (= - BoilerController.res.abs_48_a_1 - BoilerController.impl.usr.valve_state_a_0) - (let - ((X10 Int BoilerController.res.abs_2_a_1)) - (and - (= BoilerController.res.abs_52_a_1 X10) - (= - BoilerController.res.abs_40_a_1 - BoilerController.usr.pump_control_repaired_3_a_1) - (= - BoilerController.res.abs_39_a_1 - BoilerController.usr.pump_control_failure_acknowledgement_3_a_1) - (= - BoilerController.res.abs_38_a_1 - BoilerController.usr.pump_repaired_3_a_1) - (= - BoilerController.res.abs_37_a_1 - BoilerController.usr.pump_failure_acknowledgement_3_a_1) - (= - BoilerController.res.abs_29_a_1 - BoilerController.usr.pump_control_repaired_2_a_1) - (= - BoilerController.res.abs_28_a_1 - BoilerController.usr.pump_control_failure_acknowledgement_2_a_1) - (= - BoilerController.res.abs_27_a_1 - BoilerController.usr.pump_repaired_2_a_1) - (= - BoilerController.res.abs_26_a_1 - BoilerController.usr.pump_failure_acknowledgement_2_a_1) - (= - BoilerController.res.abs_18_a_1 - BoilerController.usr.pump_control_repaired_1_a_1) - (= - BoilerController.res.abs_17_a_1 - BoilerController.usr.pump_control_failure_acknowledgement_1_a_1) - (= - BoilerController.res.abs_16_a_1 - BoilerController.usr.pump_repaired_1_a_1) - (= - BoilerController.res.abs_15_a_1 - BoilerController.usr.pump_failure_acknowledgement_1_a_1) - (= - BoilerController.res.abs_7_a_1 - BoilerController.usr.pump_control_repaired_0_a_1) - (= - BoilerController.res.abs_6_a_1 - BoilerController.usr.pump_control_failure_acknowledgement_0_a_1) - (= - BoilerController.res.abs_5_a_1 - BoilerController.usr.pump_repaired_0_a_1) - (= - BoilerController.res.abs_4_a_1 - BoilerController.usr.pump_failure_acknowledgement_0_a_1) - (let - ((X11 Int BoilerController.res.abs_57_a_1)) - (let - ((X12 Int BoilerController.res.abs_45_a_1)) - (let - ((X13 Int BoilerController.res.abs_34_a_1)) - (let - ((X14 Int BoilerController.res.abs_23_a_1)) - (let - ((X15 Int BoilerController.res.abs_44_a_1)) - (let - ((X16 Int BoilerController.res.abs_33_a_1)) - (let - ((X17 Int BoilerController.res.abs_22_a_1)) - (let - ((X18 Int BoilerController.res.abs_12_a_1)) - (let - ((X19 Int BoilerController.res.abs_11_a_1)) - (and - (= - BoilerController.impl.usr.pump_control_defect_3_a_1 - X12) - (= - BoilerController.impl.usr.pump_control_defect_2_a_1 - X13) - (= - BoilerController.impl.usr.pump_control_defect_1_a_1 - X14) - (= - BoilerController.impl.usr.pump_control_defect_0_a_1 - X18) - (= - BoilerController.impl.usr.pump_defect_3_a_1 - X15) - (= - BoilerController.impl.usr.pump_defect_2_a_1 - X16) - (= - BoilerController.impl.usr.pump_defect_1_a_1 - X17) - (= - BoilerController.impl.usr.pump_defect_0_a_1 - X19) - (= BoilerController.impl.usr.q_a_1 X11) - (= - BoilerController.impl.usr.stop_request_a_1 - BoilerController.res.abs_0_a_1) - (= - BoilerController.impl.usr.op_mode_a_1 - BoilerController.res.abs_68_a_1) - (let - ((X20 Bool BoilerController.res.abs_69_a_1)) - (and - (= BoilerController.usr.valve_a_1 X20) - (let - ((X21 Bool BoilerController.res.abs_71_a_1)) - (and - (= BoilerController.usr.program_ready_a_1 X21) - (let - ((X22 Int BoilerController.res.abs_58_a_1)) - (and - (= BoilerController.impl.usr.v_a_1 X22) - (= - BoilerController.impl.usr.n_pumps_a_1 - BoilerController.res.abs_63_a_1) - (let - ((X23 Int BoilerController.res.abs_64_a_1)) - (and - (= - BoilerController.impl.usr.pump_status_0_a_1 - X23) - (let - ((X24 - Int BoilerController.res.abs_70_a_1)) - (and - (= - BoilerController.impl.usr.valve_state_a_1 - X24) - (let - ((X25 - Int BoilerController.res.abs_65_a_1)) - (and - (= - BoilerController.impl.usr.pump_status_1_a_1 - X25) - (let - ((X26 - Int BoilerController.res.abs_66_a_1)) - (and - (= - BoilerController.impl.usr.pump_status_2_a_1 - X26) - (let - ((X27 - Int BoilerController.res.abs_67_a_1)) - (and - (= - BoilerController.impl.usr.pump_status_3_a_1 - X27) - (let - ((X28 - Int BoilerController.res.abs_72_a_1)) - (and - (= - BoilerController.usr.mode_a_1 - X28) - (= - BoilerController.res.abs_3_a_1 - BoilerController.impl.usr.pump_status_0_a_1) - (let - ((X29 - Bool BoilerController.res.abs_73_a_1)) - (and - (= - BoilerController.usr.open_pump_0_a_1 - X29) - (= - BoilerController.res.abs_14_a_1 - BoilerController.impl.usr.pump_status_1_a_1) - (= - BoilerController.res.abs_25_a_1 - BoilerController.impl.usr.pump_status_2_a_1) - (= - BoilerController.res.abs_36_a_1 - BoilerController.impl.usr.pump_status_3_a_1) - (let - ((X30 - Bool BoilerController.res.abs_74_a_1)) - (and - (= - BoilerController.usr.open_pump_1_a_1 - X30) - (let - ((X31 - Bool BoilerController.res.abs_75_a_1)) - (and - (= - BoilerController.usr.open_pump_2_a_1 - X31) - (let - ((X32 - Bool BoilerController.res.abs_76_a_1)) - (and - (= - BoilerController.usr.open_pump_3_a_1 - X32) - (let - ((X33 - Bool BoilerController.res.abs_77_a_1)) - (and - (= - BoilerController.usr.close_pump_0_a_1 - X33) - (let - ((X34 - Bool BoilerController.res.abs_78_a_1)) - (and - (= - BoilerController.usr.close_pump_1_a_1 - X34) - (let - ((X35 - Bool BoilerController.res.abs_79_a_1)) - (and - (= - BoilerController.usr.close_pump_2_a_1 - X35) - (let - ((X36 - Bool BoilerController.res.abs_80_a_1)) - (and - (= - BoilerController.usr.close_pump_3_a_1 - X36) - (let - ((X37 - Bool BoilerController.res.abs_81_a_1)) - (and - (= - BoilerController.usr.pump_failure_detection_0_a_1 - X37) - (let - ((X38 - Bool BoilerController.res.abs_82_a_1)) - (and - (= - BoilerController.usr.pump_failure_detection_1_a_1 - X38) - (let - ((X39 - Bool BoilerController.res.abs_83_a_1)) - (and - (= - BoilerController.usr.pump_failure_detection_2_a_1 - X39) - (let - ((X40 - Bool BoilerController.res.abs_84_a_1)) - (and - (= - BoilerController.usr.pump_failure_detection_3_a_1 - X40) - (let - ((X41 - Bool BoilerController.res.abs_89_a_1)) - (and - (= - BoilerController.usr.pump_control_failure_detection_0_a_1 - X41) - (let - ((X42 - Bool BoilerController.res.abs_90_a_1)) - (and - (= - BoilerController.usr.pump_control_failure_detection_1_a_1 - X42) - (let - ((X43 - Bool BoilerController.res.abs_91_a_1)) - (and - (= - BoilerController.usr.pump_control_failure_detection_2_a_1 - X43) - (let - ((X44 - Bool BoilerController.res.abs_92_a_1)) - (and - (= - BoilerController.usr.pump_control_failure_detection_3_a_1 - X44) - (let - ((X45 - Bool BoilerController.res.abs_97_a_1)) - (and - (= - BoilerController.usr.level_failure_detection_a_1 - X45) - (let - ((X46 - Bool BoilerController.res.abs_99_a_1)) - (and - (= - BoilerController.usr.steam_outcome_failure_detection_a_1 - X46) - (let - ((X47 - Bool BoilerController.res.abs_85_a_1)) - (and - (= - BoilerController.usr.pump_repaired_acknowledgement_0_a_1 - X47) - (let - ((X48 - Bool BoilerController.res.abs_86_a_1)) - (and - (= - BoilerController.usr.pump_repaired_acknowledgement_1_a_1 - X48) - (let - ((X49 - Bool BoilerController.res.abs_87_a_1)) - (and - (= - BoilerController.usr.pump_repaired_acknowledgement_2_a_1 - X49) - (let - ((X50 - Bool BoilerController.res.abs_88_a_1)) - (and - (= - BoilerController.usr.pump_repaired_acknowledgement_3_a_1 - X50) - (let - ((X51 - Bool BoilerController.res.abs_93_a_1)) - (and - (= - BoilerController.usr.pump_control_repaired_acknowledgement_0_a_1 - X51) - (let - ((X52 - Bool BoilerController.res.abs_94_a_1)) - (and - (= - BoilerController.usr.pump_control_repaired_acknowledgement_1_a_1 - X52) - (let - ((X53 - Bool BoilerController.res.abs_95_a_1)) - (and - (= - BoilerController.usr.pump_control_repaired_acknowledgement_2_a_1 - X53) - (let - ((X54 - Bool BoilerController.res.abs_96_a_1)) - (and - (= - BoilerController.usr.pump_control_repaired_acknowledgement_3_a_1 - X54) - (let - ((X55 - Bool BoilerController.res.abs_98_a_1)) - (and - (= - BoilerController.usr.level_repaired_acknowledgement_a_1 - X55) - (let - ((X56 - Bool BoilerController.res.abs_100_a_1)) - (and - (= - BoilerController.usr.steam_outcome_repaired_acknowledgement_a_1 - X56) - (__node_trans_ControlOutput_0 - BoilerController.impl.usr.op_mode_a_1 - BoilerController.res.abs_49_a_1 - BoilerController.usr.valve_a_1 - BoilerController.res.abs_71_a_1 - BoilerController.res.abs_72_a_1 - BoilerController.res.inst_176_a_1 - BoilerController.res.inst_175_a_1 - BoilerController.res.inst_174_a_1 - BoilerController.impl.usr.op_mode_a_0 - BoilerController.res.abs_49_a_0 - BoilerController.usr.valve_a_0 - BoilerController.res.abs_71_a_0 - BoilerController.res.abs_72_a_0 - BoilerController.res.inst_176_a_0 - BoilerController.res.inst_175_a_0 - BoilerController.res.inst_174_a_0) - (__node_trans_ControlMode_0 - BoilerController.usr.steam_boiler_waiting_a_1 - BoilerController.usr.physical_units_ready_a_1 - BoilerController.impl.usr.stop_request_a_1 - BoilerController.res.abs_50_a_1 - BoilerController.res.abs_51_a_1 - BoilerController.res.abs_52_a_1 - BoilerController.impl.usr.pump_defect_0_a_1 - BoilerController.impl.usr.pump_defect_1_a_1 - BoilerController.impl.usr.pump_defect_2_a_1 - BoilerController.impl.usr.pump_defect_3_a_1 - BoilerController.impl.usr.pump_control_defect_0_a_1 - BoilerController.impl.usr.pump_control_defect_1_a_1 - BoilerController.impl.usr.pump_control_defect_2_a_1 - BoilerController.impl.usr.pump_control_defect_3_a_1 - BoilerController.impl.usr.q_a_1 - BoilerController.res.abs_9_a_1 - BoilerController.res.abs_20_a_1 - BoilerController.res.abs_31_a_1 - BoilerController.res.abs_42_a_1 - BoilerController.res.nondet_24 - BoilerController.res.abs_68_a_1 - BoilerController.res.inst_173_a_1 - BoilerController.res.inst_172_a_1 - BoilerController.res.inst_171_a_1 - BoilerController.res.inst_170_a_1 - BoilerController.res.inst_169_a_1 - BoilerController.res.inst_168_a_1 - BoilerController.res.inst_167_a_1 - BoilerController.res.inst_166_a_1 - BoilerController.res.inst_165_a_1 - BoilerController.res.inst_164_a_1 - BoilerController.res.inst_163_a_1 - BoilerController.res.inst_162_a_1 - BoilerController.res.inst_161_a_1 - BoilerController.res.inst_160_a_1 - BoilerController.res.inst_159_a_1 - BoilerController.res.inst_158_a_1 - BoilerController.res.inst_157_a_1 - BoilerController.res.inst_156_a_1 - BoilerController.res.inst_155_a_1 - BoilerController.res.inst_154_a_1 - BoilerController.res.inst_153_a_1 - BoilerController.res.inst_152_a_1 - BoilerController.res.inst_151_a_1 - BoilerController.res.inst_150_a_1 - BoilerController.res.inst_149_a_1 - BoilerController.res.inst_148_a_1 - BoilerController.res.inst_147_a_1 - BoilerController.res.inst_146_a_1 - BoilerController.res.inst_145_a_1 - BoilerController.res.inst_144_a_1 - BoilerController.res.inst_143_a_1 - BoilerController.res.inst_142_a_1 - BoilerController.res.inst_141_a_1 - BoilerController.res.inst_140_a_1 - BoilerController.res.inst_139_a_1 - BoilerController.res.inst_138_a_1 - BoilerController.res.inst_137_a_1 - BoilerController.res.inst_136_a_1 - BoilerController.res.inst_135_a_1 - BoilerController.res.inst_134_a_1 - BoilerController.res.inst_133_a_1 - BoilerController.res.inst_132_a_1 - BoilerController.res.inst_131_a_1 - BoilerController.res.inst_130_a_1 - BoilerController.res.inst_129_a_1 - BoilerController.res.inst_128_a_1 - BoilerController.res.inst_127_a_1 - BoilerController.res.inst_126_a_1 - BoilerController.res.inst_125_a_1 - BoilerController.res.inst_124_a_1 - BoilerController.res.inst_123_a_1 - BoilerController.res.inst_122_a_1 - BoilerController.usr.steam_boiler_waiting_a_0 - BoilerController.usr.physical_units_ready_a_0 - BoilerController.impl.usr.stop_request_a_0 - BoilerController.res.abs_50_a_0 - BoilerController.res.abs_51_a_0 - BoilerController.res.abs_52_a_0 - BoilerController.impl.usr.pump_defect_0_a_0 - BoilerController.impl.usr.pump_defect_1_a_0 - BoilerController.impl.usr.pump_defect_2_a_0 - BoilerController.impl.usr.pump_defect_3_a_0 - BoilerController.impl.usr.pump_control_defect_0_a_0 - BoilerController.impl.usr.pump_control_defect_1_a_0 - BoilerController.impl.usr.pump_control_defect_2_a_0 - BoilerController.impl.usr.pump_control_defect_3_a_0 - BoilerController.impl.usr.q_a_0 - BoilerController.res.abs_9_a_0 - BoilerController.res.abs_20_a_0 - BoilerController.res.abs_31_a_0 - BoilerController.res.abs_42_a_0 - BoilerController.res.abs_68_a_0 - BoilerController.res.inst_173_a_0 - BoilerController.res.inst_172_a_0 - BoilerController.res.inst_171_a_0 - BoilerController.res.inst_170_a_0 - BoilerController.res.inst_169_a_0 - BoilerController.res.inst_168_a_0 - BoilerController.res.inst_167_a_0 - BoilerController.res.inst_166_a_0 - BoilerController.res.inst_165_a_0 - BoilerController.res.inst_164_a_0 - BoilerController.res.inst_163_a_0 - BoilerController.res.inst_162_a_0 - BoilerController.res.inst_161_a_0 - BoilerController.res.inst_160_a_0 - BoilerController.res.inst_159_a_0 - BoilerController.res.inst_158_a_0 - BoilerController.res.inst_157_a_0 - BoilerController.res.inst_156_a_0 - BoilerController.res.inst_155_a_0 - BoilerController.res.inst_154_a_0 - BoilerController.res.inst_153_a_0 - BoilerController.res.inst_152_a_0 - BoilerController.res.inst_151_a_0 - BoilerController.res.inst_150_a_0 - BoilerController.res.inst_149_a_0 - BoilerController.res.inst_148_a_0 - BoilerController.res.inst_147_a_0 - BoilerController.res.inst_146_a_0 - BoilerController.res.inst_145_a_0 - BoilerController.res.inst_144_a_0 - BoilerController.res.inst_143_a_0 - BoilerController.res.inst_142_a_0 - BoilerController.res.inst_141_a_0 - BoilerController.res.inst_140_a_0 - BoilerController.res.inst_139_a_0 - BoilerController.res.inst_138_a_0 - BoilerController.res.inst_137_a_0 - BoilerController.res.inst_136_a_0 - BoilerController.res.inst_135_a_0 - BoilerController.res.inst_134_a_0 - BoilerController.res.inst_133_a_0 - BoilerController.res.inst_132_a_0 - BoilerController.res.inst_131_a_0 - BoilerController.res.inst_130_a_0 - BoilerController.res.inst_129_a_0 - BoilerController.res.inst_128_a_0 - BoilerController.res.inst_127_a_0 - BoilerController.res.inst_126_a_0 - BoilerController.res.inst_125_a_0 - BoilerController.res.inst_124_a_0 - BoilerController.res.inst_123_a_0 - BoilerController.res.inst_122_a_0) - (__node_trans_Operator_0 - BoilerController.usr.stop_a_1 - BoilerController.res.abs_0_a_1 - BoilerController.res.inst_121_a_1 - BoilerController.res.inst_120_a_1 - BoilerController.usr.stop_a_0 - BoilerController.res.abs_0_a_0 - BoilerController.res.inst_121_a_0 - BoilerController.res.inst_120_a_0) - (__node_trans_LevelDefect_0 - BoilerController.usr.level_failure_acknowledgement_a_1 - BoilerController.usr.level_repaired_a_1 - BoilerController.usr.level_a_1 - BoilerController.res.nondet_0 - BoilerController.res.abs_1_a_1 - BoilerController.res.inst_119_a_1 - BoilerController.res.inst_118_a_1 - BoilerController.res.inst_117_a_1 - BoilerController.res.inst_116_a_1 - BoilerController.res.inst_115_a_1 - BoilerController.res.inst_114_a_1 - BoilerController.usr.level_failure_acknowledgement_a_0 - BoilerController.usr.level_repaired_a_0 - BoilerController.usr.level_a_0 - BoilerController.res.abs_1_a_0 - BoilerController.res.inst_119_a_0 - BoilerController.res.inst_118_a_0 - BoilerController.res.inst_117_a_0 - BoilerController.res.inst_116_a_0 - BoilerController.res.inst_115_a_0 - BoilerController.res.inst_114_a_0) - (__node_trans_SteamDefect_0 - BoilerController.usr.steam_failure_acknowledgement_a_1 - BoilerController.usr.steam_repaired_a_1 - BoilerController.usr.steam_a_1 - BoilerController.res.nondet_1 - BoilerController.res.abs_2_a_1 - BoilerController.res.inst_113_a_1 - BoilerController.res.inst_112_a_1 - BoilerController.res.inst_111_a_1 - BoilerController.res.inst_110_a_1 - BoilerController.res.inst_109_a_1 - BoilerController.res.inst_108_a_1 - BoilerController.usr.steam_failure_acknowledgement_a_0 - BoilerController.usr.steam_repaired_a_0 - BoilerController.usr.steam_a_0 - BoilerController.res.abs_2_a_0 - BoilerController.res.inst_113_a_0 - BoilerController.res.inst_112_a_0 - BoilerController.res.inst_111_a_0 - BoilerController.res.inst_110_a_0 - BoilerController.res.inst_109_a_0 - BoilerController.res.inst_108_a_0) - (__node_trans_PumpDefect_0 - BoilerController.res.abs_4_a_1 - BoilerController.res.abs_5_a_1 - BoilerController.res.abs_6_a_1 - BoilerController.res.abs_7_a_1 - BoilerController.res.abs_8_a_1 - BoilerController.res.abs_9_a_1 - BoilerController.res.abs_10_a_1 - BoilerController.res.nondet_4 - BoilerController.res.nondet_3 - BoilerController.res.abs_11_a_1 - BoilerController.res.abs_12_a_1 - BoilerController.res.abs_13_a_1 - BoilerController.res.inst_107_a_1 - BoilerController.res.inst_106_a_1 - BoilerController.res.inst_105_a_1 - BoilerController.res.inst_104_a_1 - BoilerController.res.inst_103_a_1 - BoilerController.res.inst_102_a_1 - BoilerController.res.inst_101_a_1 - BoilerController.res.inst_100_a_1 - BoilerController.res.inst_99_a_1 - BoilerController.res.inst_98_a_1 - BoilerController.res.inst_97_a_1 - BoilerController.res.inst_96_a_1 - BoilerController.res.inst_95_a_1 - BoilerController.res.abs_4_a_0 - BoilerController.res.abs_5_a_0 - BoilerController.res.abs_6_a_0 - BoilerController.res.abs_7_a_0 - BoilerController.res.abs_8_a_0 - BoilerController.res.abs_9_a_0 - BoilerController.res.abs_10_a_0 - BoilerController.res.abs_11_a_0 - BoilerController.res.abs_12_a_0 - BoilerController.res.abs_13_a_0 - BoilerController.res.inst_107_a_0 - BoilerController.res.inst_106_a_0 - BoilerController.res.inst_105_a_0 - BoilerController.res.inst_104_a_0 - BoilerController.res.inst_103_a_0 - BoilerController.res.inst_102_a_0 - BoilerController.res.inst_101_a_0 - BoilerController.res.inst_100_a_0 - BoilerController.res.inst_99_a_0 - BoilerController.res.inst_98_a_0 - BoilerController.res.inst_97_a_0 - BoilerController.res.inst_96_a_0 - BoilerController.res.inst_95_a_0) - (__node_trans_PumpsStatus_0 - BoilerController.impl.usr.n_pumps_a_1 - BoilerController.impl.usr.pump_defect_0_a_1 - BoilerController.impl.usr.pump_defect_1_a_1 - BoilerController.impl.usr.pump_defect_2_a_1 - BoilerController.impl.usr.pump_defect_3_a_1 - BoilerController.res.abs_53_a_1 - BoilerController.res.abs_54_a_1 - BoilerController.res.abs_55_a_1 - BoilerController.res.abs_56_a_1 - BoilerController.res.nondet_23 - BoilerController.res.nondet_22 - BoilerController.res.nondet_21 - BoilerController.res.nondet_20 - BoilerController.res.nondet_19 - BoilerController.res.nondet_18 - BoilerController.res.nondet_17 - BoilerController.res.nondet_16 - BoilerController.res.abs_64_a_1 - BoilerController.res.abs_65_a_1 - BoilerController.res.abs_66_a_1 - BoilerController.res.abs_67_a_1 - BoilerController.res.inst_94_a_1 - BoilerController.res.inst_93_a_1 - BoilerController.res.inst_92_a_1 - BoilerController.res.inst_91_a_1 - BoilerController.res.inst_90_a_1 - BoilerController.res.inst_89_a_1 - BoilerController.res.inst_88_a_1 - BoilerController.res.inst_87_a_1 - BoilerController.res.inst_86_a_1 - BoilerController.res.inst_85_a_1 - BoilerController.res.inst_84_a_1 - BoilerController.res.inst_83_a_1 - BoilerController.res.inst_82_a_1 - BoilerController.res.inst_81_a_1 - BoilerController.res.inst_80_a_1 - BoilerController.res.inst_79_a_1 - BoilerController.res.inst_78_a_1 - BoilerController.res.inst_77_a_1 - BoilerController.res.inst_76_a_1 - BoilerController.res.inst_75_a_1 - BoilerController.res.inst_74_a_1 - BoilerController.res.inst_73_a_1 - BoilerController.res.inst_72_a_1 - BoilerController.res.inst_71_a_1 - BoilerController.res.inst_70_a_1 - BoilerController.res.inst_69_a_1 - BoilerController.res.inst_68_a_1 - BoilerController.res.inst_67_a_1 - BoilerController.res.inst_66_a_1 - BoilerController.res.inst_65_a_1 - BoilerController.res.inst_64_a_1 - BoilerController.res.inst_63_a_1 - BoilerController.res.inst_62_a_1 - BoilerController.res.inst_61_a_1 - BoilerController.res.inst_60_a_1 - BoilerController.res.inst_59_a_1 - BoilerController.res.inst_58_a_1 - BoilerController.res.inst_57_a_1 - BoilerController.res.inst_56_a_1 - BoilerController.res.inst_55_a_1 - BoilerController.res.inst_54_a_1 - BoilerController.res.inst_53_a_1 - BoilerController.res.inst_52_a_1 - BoilerController.res.inst_51_a_1 - BoilerController.impl.usr.n_pumps_a_0 - BoilerController.impl.usr.pump_defect_0_a_0 - BoilerController.impl.usr.pump_defect_1_a_0 - BoilerController.impl.usr.pump_defect_2_a_0 - BoilerController.impl.usr.pump_defect_3_a_0 - BoilerController.res.abs_53_a_0 - BoilerController.res.abs_54_a_0 - BoilerController.res.abs_55_a_0 - BoilerController.res.abs_56_a_0 - BoilerController.res.abs_64_a_0 - BoilerController.res.abs_65_a_0 - BoilerController.res.abs_66_a_0 - BoilerController.res.abs_67_a_0 - BoilerController.res.inst_94_a_0 - BoilerController.res.inst_93_a_0 - BoilerController.res.inst_92_a_0 - BoilerController.res.inst_91_a_0 - BoilerController.res.inst_90_a_0 - BoilerController.res.inst_89_a_0 - BoilerController.res.inst_88_a_0 - BoilerController.res.inst_87_a_0 - BoilerController.res.inst_86_a_0 - BoilerController.res.inst_85_a_0 - BoilerController.res.inst_84_a_0 - BoilerController.res.inst_83_a_0 - BoilerController.res.inst_82_a_0 - BoilerController.res.inst_81_a_0 - BoilerController.res.inst_80_a_0 - BoilerController.res.inst_79_a_0 - BoilerController.res.inst_78_a_0 - BoilerController.res.inst_77_a_0 - BoilerController.res.inst_76_a_0 - BoilerController.res.inst_75_a_0 - BoilerController.res.inst_74_a_0 - BoilerController.res.inst_73_a_0 - BoilerController.res.inst_72_a_0 - BoilerController.res.inst_71_a_0 - BoilerController.res.inst_70_a_0 - BoilerController.res.inst_69_a_0 - BoilerController.res.inst_68_a_0 - BoilerController.res.inst_67_a_0 - BoilerController.res.inst_66_a_0 - BoilerController.res.inst_65_a_0 - BoilerController.res.inst_64_a_0 - BoilerController.res.inst_63_a_0 - BoilerController.res.inst_62_a_0 - BoilerController.res.inst_61_a_0 - BoilerController.res.inst_60_a_0 - BoilerController.res.inst_59_a_0 - BoilerController.res.inst_58_a_0 - BoilerController.res.inst_57_a_0 - BoilerController.res.inst_56_a_0 - BoilerController.res.inst_55_a_0 - BoilerController.res.inst_54_a_0 - BoilerController.res.inst_53_a_0 - BoilerController.res.inst_52_a_0 - BoilerController.res.inst_51_a_0) - (__node_trans_PumpsDecision_0 - BoilerController.impl.usr.q_a_1 - BoilerController.impl.usr.v_a_1 - BoilerController.res.nondet_15 - BoilerController.res.abs_63_a_1 - BoilerController.res.inst_50_a_1 - BoilerController.impl.usr.q_a_0 - BoilerController.impl.usr.v_a_0 - BoilerController.res.abs_63_a_0 - BoilerController.res.inst_50_a_0) - (__node_trans_Dynamics_0 - BoilerController.res.abs_48_a_1 - BoilerController.res.abs_49_a_1 - BoilerController.res.abs_50_a_1 - BoilerController.res.abs_51_a_1 - BoilerController.res.abs_52_a_1 - BoilerController.res.abs_53_a_1 - BoilerController.res.abs_54_a_1 - BoilerController.res.abs_55_a_1 - BoilerController.res.abs_56_a_1 - BoilerController.res.abs_57_a_1 - BoilerController.res.abs_58_a_1 - BoilerController.res.abs_59_a_1 - BoilerController.res.abs_60_a_1 - BoilerController.res.abs_61_a_1 - BoilerController.res.abs_62_a_1 - BoilerController.res.inst_49_a_1 - BoilerController.res.inst_48_a_1 - BoilerController.res.inst_47_a_1 - BoilerController.res.inst_46_a_1 - BoilerController.res.inst_45_a_1 - BoilerController.res.inst_44_a_1 - BoilerController.res.inst_43_a_1 - BoilerController.res.abs_48_a_0 - BoilerController.res.abs_49_a_0 - BoilerController.res.abs_50_a_0 - BoilerController.res.abs_51_a_0 - BoilerController.res.abs_52_a_0 - BoilerController.res.abs_53_a_0 - BoilerController.res.abs_54_a_0 - BoilerController.res.abs_55_a_0 - BoilerController.res.abs_56_a_0 - BoilerController.res.abs_57_a_0 - BoilerController.res.abs_58_a_0 - BoilerController.res.abs_59_a_0 - BoilerController.res.abs_60_a_0 - BoilerController.res.abs_61_a_0 - BoilerController.res.abs_62_a_0 - BoilerController.res.inst_49_a_0 - BoilerController.res.inst_48_a_0 - BoilerController.res.inst_47_a_0 - BoilerController.res.inst_46_a_0 - BoilerController.res.inst_45_a_0 - BoilerController.res.inst_44_a_0 - BoilerController.res.inst_43_a_0) - (__node_trans_Valve_0 - BoilerController.impl.usr.op_mode_a_1 - BoilerController.impl.usr.q_a_1 - BoilerController.res.abs_69_a_1 - BoilerController.res.abs_70_a_1 - BoilerController.res.inst_42_a_1 - BoilerController.impl.usr.op_mode_a_0 - BoilerController.impl.usr.q_a_0 - BoilerController.res.abs_69_a_0 - BoilerController.res.abs_70_a_0 - BoilerController.res.inst_42_a_0) - (__node_trans_PumpDefect_0 - BoilerController.res.abs_15_a_1 - BoilerController.res.abs_16_a_1 - BoilerController.res.abs_17_a_1 - BoilerController.res.abs_18_a_1 - BoilerController.res.abs_19_a_1 - BoilerController.res.abs_20_a_1 - BoilerController.res.abs_21_a_1 - BoilerController.res.nondet_7 - BoilerController.res.nondet_6 - BoilerController.res.abs_22_a_1 - BoilerController.res.abs_23_a_1 - BoilerController.res.abs_24_a_1 - BoilerController.res.inst_41_a_1 - BoilerController.res.inst_40_a_1 - BoilerController.res.inst_39_a_1 - BoilerController.res.inst_38_a_1 - BoilerController.res.inst_37_a_1 - BoilerController.res.inst_36_a_1 - BoilerController.res.inst_35_a_1 - BoilerController.res.inst_34_a_1 - BoilerController.res.inst_33_a_1 - BoilerController.res.inst_32_a_1 - BoilerController.res.inst_31_a_1 - BoilerController.res.inst_30_a_1 - BoilerController.res.inst_29_a_1 - BoilerController.res.abs_15_a_0 - BoilerController.res.abs_16_a_0 - BoilerController.res.abs_17_a_0 - BoilerController.res.abs_18_a_0 - BoilerController.res.abs_19_a_0 - BoilerController.res.abs_20_a_0 - BoilerController.res.abs_21_a_0 - BoilerController.res.abs_22_a_0 - BoilerController.res.abs_23_a_0 - BoilerController.res.abs_24_a_0 - BoilerController.res.inst_41_a_0 - BoilerController.res.inst_40_a_0 - BoilerController.res.inst_39_a_0 - BoilerController.res.inst_38_a_0 - BoilerController.res.inst_37_a_0 - BoilerController.res.inst_36_a_0 - BoilerController.res.inst_35_a_0 - BoilerController.res.inst_34_a_0 - BoilerController.res.inst_33_a_0 - BoilerController.res.inst_32_a_0 - BoilerController.res.inst_31_a_0 - BoilerController.res.inst_30_a_0 - BoilerController.res.inst_29_a_0) - (__node_trans_PumpDefect_0 - BoilerController.res.abs_26_a_1 - BoilerController.res.abs_27_a_1 - BoilerController.res.abs_28_a_1 - BoilerController.res.abs_29_a_1 - BoilerController.res.abs_30_a_1 - BoilerController.res.abs_31_a_1 - BoilerController.res.abs_32_a_1 - BoilerController.res.nondet_10 - BoilerController.res.nondet_9 - BoilerController.res.abs_33_a_1 - BoilerController.res.abs_34_a_1 - BoilerController.res.abs_35_a_1 - BoilerController.res.inst_28_a_1 - BoilerController.res.inst_27_a_1 - BoilerController.res.inst_26_a_1 - BoilerController.res.inst_25_a_1 - BoilerController.res.inst_24_a_1 - BoilerController.res.inst_23_a_1 - BoilerController.res.inst_22_a_1 - BoilerController.res.inst_21_a_1 - BoilerController.res.inst_20_a_1 - BoilerController.res.inst_19_a_1 - BoilerController.res.inst_18_a_1 - BoilerController.res.inst_17_a_1 - BoilerController.res.inst_16_a_1 - BoilerController.res.abs_26_a_0 - BoilerController.res.abs_27_a_0 - BoilerController.res.abs_28_a_0 - BoilerController.res.abs_29_a_0 - BoilerController.res.abs_30_a_0 - BoilerController.res.abs_31_a_0 - BoilerController.res.abs_32_a_0 - BoilerController.res.abs_33_a_0 - BoilerController.res.abs_34_a_0 - BoilerController.res.abs_35_a_0 - BoilerController.res.inst_28_a_0 - BoilerController.res.inst_27_a_0 - BoilerController.res.inst_26_a_0 - BoilerController.res.inst_25_a_0 - BoilerController.res.inst_24_a_0 - BoilerController.res.inst_23_a_0 - BoilerController.res.inst_22_a_0 - BoilerController.res.inst_21_a_0 - BoilerController.res.inst_20_a_0 - BoilerController.res.inst_19_a_0 - BoilerController.res.inst_18_a_0 - BoilerController.res.inst_17_a_0 - BoilerController.res.inst_16_a_0) - (__node_trans_PumpDefect_0 - BoilerController.res.abs_37_a_1 - BoilerController.res.abs_38_a_1 - BoilerController.res.abs_39_a_1 - BoilerController.res.abs_40_a_1 - BoilerController.res.abs_41_a_1 - BoilerController.res.abs_42_a_1 - BoilerController.res.abs_43_a_1 - BoilerController.res.nondet_13 - BoilerController.res.nondet_12 - BoilerController.res.abs_44_a_1 - BoilerController.res.abs_45_a_1 - BoilerController.res.abs_46_a_1 - BoilerController.res.inst_15_a_1 - BoilerController.res.inst_14_a_1 - BoilerController.res.inst_13_a_1 - BoilerController.res.inst_12_a_1 - BoilerController.res.inst_11_a_1 - BoilerController.res.inst_10_a_1 - BoilerController.res.inst_9_a_1 - BoilerController.res.inst_8_a_1 - BoilerController.res.inst_7_a_1 - BoilerController.res.inst_6_a_1 - BoilerController.res.inst_5_a_1 - BoilerController.res.inst_4_a_1 - BoilerController.res.inst_3_a_1 - BoilerController.res.abs_37_a_0 - BoilerController.res.abs_38_a_0 - BoilerController.res.abs_39_a_0 - BoilerController.res.abs_40_a_0 - BoilerController.res.abs_41_a_0 - BoilerController.res.abs_42_a_0 - BoilerController.res.abs_43_a_0 - BoilerController.res.abs_44_a_0 - BoilerController.res.abs_45_a_0 - BoilerController.res.abs_46_a_0 - BoilerController.res.inst_15_a_0 - BoilerController.res.inst_14_a_0 - BoilerController.res.inst_13_a_0 - BoilerController.res.inst_12_a_0 - BoilerController.res.inst_11_a_0 - BoilerController.res.inst_10_a_0 - BoilerController.res.inst_9_a_0 - BoilerController.res.inst_8_a_0 - BoilerController.res.inst_7_a_0 - BoilerController.res.inst_6_a_0 - BoilerController.res.inst_5_a_0 - BoilerController.res.inst_4_a_0 - BoilerController.res.inst_3_a_0) - (__node_trans_PumpsOutput_0 - BoilerController.impl.usr.op_mode_a_1 - BoilerController.res.abs_3_a_1 - BoilerController.res.abs_14_a_1 - BoilerController.res.abs_25_a_1 - BoilerController.res.abs_36_a_1 - BoilerController.impl.usr.pump_defect_0_a_1 - BoilerController.impl.usr.pump_defect_1_a_1 - BoilerController.impl.usr.pump_defect_2_a_1 - BoilerController.impl.usr.pump_defect_3_a_1 - BoilerController.impl.usr.pump_control_defect_0_a_1 - BoilerController.impl.usr.pump_control_defect_1_a_1 - BoilerController.impl.usr.pump_control_defect_2_a_1 - BoilerController.impl.usr.pump_control_defect_3_a_1 - BoilerController.res.abs_5_a_1 - BoilerController.res.abs_16_a_1 - BoilerController.res.abs_27_a_1 - BoilerController.res.abs_38_a_1 - BoilerController.res.abs_7_a_1 - BoilerController.res.abs_18_a_1 - BoilerController.res.abs_29_a_1 - BoilerController.res.abs_40_a_1 - BoilerController.res.nondet_32 - BoilerController.res.nondet_31 - BoilerController.res.nondet_30 - BoilerController.res.nondet_29 - BoilerController.res.nondet_28 - BoilerController.res.nondet_27 - BoilerController.res.nondet_26 - BoilerController.res.nondet_25 - BoilerController.res.abs_73_a_1 - BoilerController.res.abs_74_a_1 - BoilerController.res.abs_75_a_1 - BoilerController.res.abs_76_a_1 - BoilerController.res.abs_77_a_1 - BoilerController.res.abs_78_a_1 - BoilerController.res.abs_79_a_1 - BoilerController.res.abs_80_a_1 - BoilerController.res.abs_81_a_1 - BoilerController.res.abs_82_a_1 - BoilerController.res.abs_83_a_1 - BoilerController.res.abs_84_a_1 - BoilerController.res.abs_85_a_1 - BoilerController.res.abs_86_a_1 - BoilerController.res.abs_87_a_1 - BoilerController.res.abs_88_a_1 - BoilerController.res.abs_89_a_1 - BoilerController.res.abs_90_a_1 - BoilerController.res.abs_91_a_1 - BoilerController.res.abs_92_a_1 - BoilerController.res.abs_93_a_1 - BoilerController.res.abs_94_a_1 - BoilerController.res.abs_95_a_1 - BoilerController.res.abs_96_a_1 - BoilerController.res.inst_2_a_1 - BoilerController.impl.usr.op_mode_a_0 - BoilerController.res.abs_3_a_0 - BoilerController.res.abs_14_a_0 - BoilerController.res.abs_25_a_0 - BoilerController.res.abs_36_a_0 - BoilerController.impl.usr.pump_defect_0_a_0 - BoilerController.impl.usr.pump_defect_1_a_0 - BoilerController.impl.usr.pump_defect_2_a_0 - BoilerController.impl.usr.pump_defect_3_a_0 - BoilerController.impl.usr.pump_control_defect_0_a_0 - BoilerController.impl.usr.pump_control_defect_1_a_0 - BoilerController.impl.usr.pump_control_defect_2_a_0 - BoilerController.impl.usr.pump_control_defect_3_a_0 - BoilerController.res.abs_5_a_0 - BoilerController.res.abs_16_a_0 - BoilerController.res.abs_27_a_0 - BoilerController.res.abs_38_a_0 - BoilerController.res.abs_7_a_0 - BoilerController.res.abs_18_a_0 - BoilerController.res.abs_29_a_0 - BoilerController.res.abs_40_a_0 - BoilerController.res.abs_73_a_0 - BoilerController.res.abs_74_a_0 - BoilerController.res.abs_75_a_0 - BoilerController.res.abs_76_a_0 - BoilerController.res.abs_77_a_0 - BoilerController.res.abs_78_a_0 - BoilerController.res.abs_79_a_0 - BoilerController.res.abs_80_a_0 - BoilerController.res.abs_81_a_0 - BoilerController.res.abs_82_a_0 - BoilerController.res.abs_83_a_0 - BoilerController.res.abs_84_a_0 - BoilerController.res.abs_85_a_0 - BoilerController.res.abs_86_a_0 - BoilerController.res.abs_87_a_0 - BoilerController.res.abs_88_a_0 - BoilerController.res.abs_89_a_0 - BoilerController.res.abs_90_a_0 - BoilerController.res.abs_91_a_0 - BoilerController.res.abs_92_a_0 - BoilerController.res.abs_93_a_0 - BoilerController.res.abs_94_a_0 - BoilerController.res.abs_95_a_0 - BoilerController.res.abs_96_a_0 - BoilerController.res.inst_2_a_0) - (__node_trans_LevelOutput_0 - BoilerController.impl.usr.op_mode_a_1 - BoilerController.res.abs_51_a_1 - BoilerController.usr.level_repaired_a_1 - BoilerController.res.abs_97_a_1 - BoilerController.res.abs_98_a_1 - BoilerController.res.inst_1_a_1 - BoilerController.impl.usr.op_mode_a_0 - BoilerController.res.abs_51_a_0 - BoilerController.usr.level_repaired_a_0 - BoilerController.res.abs_97_a_0 - BoilerController.res.abs_98_a_0 - BoilerController.res.inst_1_a_0) - (__node_trans_SteamOutput_0 - BoilerController.impl.usr.op_mode_a_1 - BoilerController.res.abs_52_a_1 - BoilerController.usr.steam_repaired_a_1 - BoilerController.res.abs_99_a_1 - BoilerController.res.abs_100_a_1 - BoilerController.res.inst_0_a_1 - BoilerController.impl.usr.op_mode_a_0 - BoilerController.res.abs_52_a_0 - BoilerController.usr.steam_repaired_a_0 - BoilerController.res.abs_99_a_0 - BoilerController.res.abs_100_a_0 - BoilerController.res.inst_0_a_0) - (<= - 1 - BoilerController.impl.usr.op_mode_a_1 - 6) - (<= - 1 - BoilerController.res.abs_68_a_1 - 6) - (<= - 0 - X9 - 2) - (<= - 0 - BoilerController.res.abs_1_a_1 - 2) - (<= - 0 - X10 - 2) - (<= - 0 - BoilerController.res.abs_2_a_1 - 2) - (<= - 0 - X19 - 2) - (<= - 0 - BoilerController.res.abs_11_a_1 - 2) - (<= - 0 - X17 - 2) - (<= - 0 - BoilerController.res.abs_22_a_1 - 2) - (<= - 0 - X16 - 2) - (<= - 0 - BoilerController.res.abs_33_a_1 - 2) - (<= - 0 - X15 - 2) - (<= - 0 - BoilerController.res.abs_44_a_1 - 2) - (<= - 0 - X18 - 2) - (<= - 0 - BoilerController.res.abs_12_a_1 - 2) - (<= - 0 - X14 - 2) - (<= - 0 - BoilerController.res.abs_23_a_1 - 2) - (<= - 0 - X13 - 2) - (<= - 0 - BoilerController.res.abs_34_a_1 - 2) - (<= - 0 - X12 - 2) - (<= - 0 - BoilerController.res.abs_45_a_1 - 2) - (not - BoilerController.res.init_flag_a_1)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.stop_a_0 Bool) - (top.usr.steam_boiler_waiting_a_0 Bool) - (top.usr.physical_units_ready_a_0 Bool) - (top.usr.level_a_0 Int) - (top.usr.steam_a_0 Int) - (top.usr.pump_state_0_a_0 Int) - (top.usr.pump_state_1_a_0 Int) - (top.usr.pump_state_2_a_0 Int) - (top.usr.pump_state_3_a_0 Int) - (top.usr.pump_control_state_0_a_0 Bool) - (top.usr.pump_control_state_1_a_0 Bool) - (top.usr.pump_control_state_2_a_0 Bool) - (top.usr.pump_control_state_3_a_0 Bool) - (top.usr.pump_repaired_0_a_0 Bool) - (top.usr.pump_repaired_1_a_0 Bool) - (top.usr.pump_repaired_2_a_0 Bool) - (top.usr.pump_repaired_3_a_0 Bool) - (top.usr.pump_control_repaired_0_a_0 Bool) - (top.usr.pump_control_repaired_1_a_0 Bool) - (top.usr.pump_control_repaired_2_a_0 Bool) - (top.usr.pump_control_repaired_3_a_0 Bool) - (top.usr.level_repaired_a_0 Bool) - (top.usr.steam_repaired_a_0 Bool) - (top.usr.pump_failure_acknowledgement_0_a_0 Bool) - (top.usr.pump_failure_acknowledgement_1_a_0 Bool) - (top.usr.pump_failure_acknowledgement_2_a_0 Bool) - (top.usr.pump_failure_acknowledgement_3_a_0 Bool) - (top.usr.pump_control_failure_acknowledgement_0_a_0 Bool) - (top.usr.pump_control_failure_acknowledgement_1_a_0 Bool) - (top.usr.pump_control_failure_acknowledgement_2_a_0 Bool) - (top.usr.pump_control_failure_acknowledgement_3_a_0 Bool) - (top.usr.level_failure_acknowledgement_a_0 Bool) - (top.usr.steam_failure_acknowledgement_a_0 Bool) - (top.res.nondet_32 Int) - (top.res.nondet_31 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.abs_12_a_0 Bool) - (top.res.abs_13_a_0 Bool) - (top.res.abs_14_a_0 Bool) - (top.res.abs_15_a_0 Bool) - (top.res.abs_16_a_0 Bool) - (top.res.abs_17_a_0 Bool) - (top.res.abs_18_a_0 Bool) - (top.res.abs_19_a_0 Bool) - (top.res.abs_20_a_0 Bool) - (top.res.abs_21_a_0 Bool) - (top.res.abs_22_a_0 Bool) - (top.res.abs_23_a_0 Bool) - (top.res.abs_24_a_0 Bool) - (top.res.abs_25_a_0 Bool) - (top.res.abs_26_a_0 Bool) - (top.res.abs_27_a_0 Bool) - (top.res.abs_28_a_0 Bool) - (top.res.abs_29_a_0 Bool) - (top.res.abs_30_a_0 Bool) - (top.res.abs_31_a_0 Bool) - (top.res.abs_32_a_0 Bool) - (top.res.abs_33_a_0 Bool) - (top.res.abs_34_a_0 Bool) - (top.res.abs_35_a_0 Bool) - (top.res.abs_36_a_0 Bool) - (top.res.abs_37_a_0 Bool) - (top.res.abs_38_a_0 Bool) - (top.res.abs_39_a_0 Bool) - (top.res.abs_40_a_0 Bool) - (top.res.inst_297_a_0 Bool) - (top.res.inst_296_a_0 Bool) - (top.res.inst_295_a_0 Int) - (top.res.inst_294_a_0 Int) - (top.res.inst_293_a_0 Int) - (top.res.inst_292_a_0 Int) - (top.res.inst_291_a_0 Int) - (top.res.inst_290_a_0 Int) - (top.res.inst_289_a_0 Int) - (top.res.inst_288_a_0 Int) - (top.res.inst_287_a_0 Int) - (top.res.inst_286_a_0 Int) - (top.res.inst_285_a_0 Int) - (top.res.inst_284_a_0 Int) - (top.res.inst_283_a_0 Int) - (top.res.inst_282_a_0 Int) - (top.res.inst_281_a_0 Int) - (top.res.inst_280_a_0 Int) - (top.res.inst_279_a_0 Int) - (top.res.inst_278_a_0 Bool) - (top.res.inst_277_a_0 Int) - (top.res.inst_276_a_0 Int) - (top.res.inst_275_a_0 Int) - (top.res.inst_274_a_0 Bool) - (top.res.inst_273_a_0 Bool) - (top.res.inst_272_a_0 Bool) - (top.res.inst_271_a_0 Bool) - (top.res.inst_270_a_0 Int) - (top.res.inst_269_a_0 Int) - (top.res.inst_268_a_0 Bool) - (top.res.inst_267_a_0 Int) - (top.res.inst_266_a_0 Int) - (top.res.inst_265_a_0 Bool) - (top.res.inst_264_a_0 Int) - (top.res.inst_263_a_0 Bool) - (top.res.inst_262_a_0 Bool) - (top.res.inst_261_a_0 Bool) - (top.res.inst_260_a_0 Bool) - (top.res.inst_259_a_0 Int) - (top.res.inst_258_a_0 Int) - (top.res.inst_257_a_0 Bool) - (top.res.inst_256_a_0 Int) - (top.res.inst_255_a_0 Int) - (top.res.inst_254_a_0 Bool) - (top.res.inst_253_a_0 Int) - (top.res.inst_252_a_0 Bool) - (top.res.inst_251_a_0 Bool) - (top.res.inst_250_a_0 Bool) - (top.res.inst_249_a_0 Bool) - (top.res.inst_248_a_0 Int) - (top.res.inst_247_a_0 Int) - (top.res.inst_246_a_0 Bool) - (top.res.inst_245_a_0 Int) - (top.res.inst_244_a_0 Int) - (top.res.inst_243_a_0 Bool) - (top.res.inst_242_a_0 Int) - (top.res.inst_241_a_0 Bool) - (top.res.inst_240_a_0 Bool) - (top.res.inst_239_a_0 Bool) - (top.res.inst_238_a_0 Bool) - (top.res.inst_237_a_0 Int) - (top.res.inst_236_a_0 Int) - (top.res.inst_235_a_0 Bool) - (top.res.inst_234_a_0 Int) - (top.res.inst_233_a_0 Int) - (top.res.inst_232_a_0 Bool) - (top.res.inst_231_a_0 Int) - (top.res.inst_230_a_0 Int) - (top.res.inst_229_a_0 Int) - (top.res.inst_228_a_0 Int) - (top.res.inst_227_a_0 Int) - (top.res.inst_226_a_0 Bool) - (top.res.inst_225_a_0 Bool) - (top.res.inst_224_a_0 Bool) - (top.res.inst_223_a_0 Bool) - (top.res.inst_222_a_0 Int) - (top.res.inst_221_a_0 Int) - (top.res.inst_220_a_0 Int) - (top.res.inst_219_a_0 Int) - (top.res.inst_218_a_0 Int) - (top.res.inst_217_a_0 Int) - (top.res.inst_216_a_0 Int) - (top.res.inst_215_a_0 Int) - (top.res.inst_214_a_0 Int) - (top.res.inst_213_a_0 Int) - (top.res.inst_212_a_0 Int) - (top.res.inst_211_a_0 Int) - (top.res.inst_210_a_0 Bool) - (top.res.inst_209_a_0 Int) - (top.res.inst_208_a_0 Bool) - (top.res.inst_207_a_0 Int) - (top.res.inst_206_a_0 Bool) - (top.res.inst_205_a_0 Bool) - (top.res.inst_204_a_0 Bool) - (top.res.inst_203_a_0 Bool) - (top.res.inst_202_a_0 Bool) - (top.res.inst_201_a_0 Bool) - (top.res.inst_200_a_0 Bool) - (top.res.inst_199_a_0 Bool) - (top.res.inst_198_a_0 Bool) - (top.res.inst_197_a_0 Bool) - (top.res.inst_196_a_0 Bool) - (top.res.inst_195_a_0 Bool) - (top.res.inst_194_a_0 Bool) - (top.res.inst_193_a_0 Bool) - (top.res.inst_192_a_0 Bool) - (top.res.inst_191_a_0 Bool) - (top.res.inst_190_a_0 Bool) - (top.res.inst_189_a_0 Bool) - (top.res.inst_188_a_0 Bool) - (top.res.inst_187_a_0 Bool) - (top.res.inst_186_a_0 Bool) - (top.res.inst_185_a_0 Bool) - (top.res.inst_184_a_0 Bool) - (top.res.inst_183_a_0 Bool) - (top.res.inst_182_a_0 Bool) - (top.res.inst_181_a_0 Bool) - (top.res.inst_180_a_0 Bool) - (top.res.inst_179_a_0 Bool) - (top.res.inst_178_a_0 Bool) - (top.res.inst_177_a_0 Bool) - (top.res.inst_176_a_0 Bool) - (top.res.inst_175_a_0 Bool) - (top.res.inst_174_a_0 Int) - (top.res.inst_173_a_0 Bool) - (top.res.inst_172_a_0 Bool) - (top.res.inst_171_a_0 Bool) - (top.res.inst_170_a_0 Bool) - (top.res.inst_169_a_0 Bool) - (top.res.inst_168_a_0 Bool) - (top.res.inst_167_a_0 Bool) - (top.res.inst_166_a_0 Bool) - (top.res.inst_165_a_0 Bool) - (top.res.inst_164_a_0 Bool) - (top.res.inst_163_a_0 Bool) - (top.res.inst_162_a_0 Bool) - (top.res.inst_161_a_0 Bool) - (top.res.inst_160_a_0 Bool) - (top.res.inst_159_a_0 Bool) - (top.res.inst_158_a_0 Bool) - (top.res.inst_157_a_0 Bool) - (top.res.inst_156_a_0 Bool) - (top.res.inst_155_a_0 Bool) - (top.res.inst_154_a_0 Bool) - (top.res.inst_153_a_0 Bool) - (top.res.inst_152_a_0 Bool) - (top.res.inst_151_a_0 Bool) - (top.res.inst_150_a_0 Bool) - (top.res.inst_149_a_0 Bool) - (top.res.inst_148_a_0 Bool) - (top.res.inst_147_a_0 Bool) - (top.res.inst_146_a_0 Bool) - (top.res.inst_145_a_0 Bool) - (top.res.inst_144_a_0 Bool) - (top.res.inst_143_a_0 Bool) - (top.res.inst_142_a_0 Bool) - (top.res.inst_141_a_0 Bool) - (top.res.inst_140_a_0 Bool) - (top.res.inst_139_a_0 Bool) - (top.res.inst_138_a_0 Bool) - (top.res.inst_137_a_0 Bool) - (top.res.inst_136_a_0 Bool) - (top.res.inst_135_a_0 Bool) - (top.res.inst_134_a_0 Bool) - (top.res.inst_133_a_0 Bool) - (top.res.inst_132_a_0 Bool) - (top.res.inst_131_a_0 Bool) - (top.res.inst_130_a_0 Bool) - (top.res.inst_129_a_0 Bool) - (top.res.inst_128_a_0 Bool) - (top.res.inst_127_a_0 Bool) - (top.res.inst_126_a_0 Bool) - (top.res.inst_125_a_0 Bool) - (top.res.inst_124_a_0 Bool) - (top.res.inst_123_a_0 Bool) - (top.res.inst_122_a_0 Int) - (top.res.inst_121_a_0 Bool) - (top.res.inst_120_a_0 Bool) - (top.res.inst_119_a_0 Int) - (top.res.inst_118_a_0 Int) - (top.res.inst_117_a_0 Bool) - (top.res.inst_116_a_0 Bool) - (top.res.inst_115_a_0 Bool) - (top.res.inst_114_a_0 Bool) - (top.res.inst_113_a_0 Int) - (top.res.inst_112_a_0 Int) - (top.res.inst_111_a_0 Bool) - (top.res.inst_110_a_0 Bool) - (top.res.inst_109_a_0 Bool) - (top.res.inst_108_a_0 Bool) - (top.res.inst_107_a_0 Bool) - (top.res.inst_106_a_0 Bool) - (top.res.inst_105_a_0 Bool) - (top.res.inst_104_a_0 Bool) - (top.res.inst_103_a_0 Int) - (top.res.inst_102_a_0 Int) - (top.res.inst_101_a_0 Int) - (top.res.inst_100_a_0 Int) - (top.res.inst_99_a_0 Bool) - (top.res.inst_98_a_0 Bool) - (top.res.inst_97_a_0 Bool) - (top.res.inst_96_a_0 Bool) - (top.res.inst_95_a_0 Int) - (top.res.inst_94_a_0 Int) - (top.res.inst_93_a_0 Int) - (top.res.inst_92_a_0 Int) - (top.res.inst_91_a_0 Int) - (top.res.inst_90_a_0 Int) - (top.res.inst_89_a_0 Int) - (top.res.inst_88_a_0 Int) - (top.res.inst_87_a_0 Int) - (top.res.inst_86_a_0 Int) - (top.res.inst_85_a_0 Bool) - (top.res.inst_84_a_0 Bool) - (top.res.inst_83_a_0 Bool) - (top.res.inst_82_a_0 Bool) - (top.res.inst_81_a_0 Int) - (top.res.inst_80_a_0 Int) - (top.res.inst_79_a_0 Int) - (top.res.inst_78_a_0 Int) - (top.res.inst_77_a_0 Bool) - (top.res.inst_76_a_0 Int) - (top.res.inst_75_a_0 Bool) - (top.res.inst_74_a_0 Int) - (top.res.inst_73_a_0 Bool) - (top.res.inst_72_a_0 Int) - (top.res.inst_71_a_0 Bool) - (top.res.inst_70_a_0 Int) - (top.res.inst_69_a_0 Bool) - (top.res.inst_68_a_0 Int) - (top.res.inst_67_a_0 Bool) - (top.res.inst_66_a_0 Int) - (top.res.inst_65_a_0 Bool) - (top.res.inst_64_a_0 Int) - (top.res.inst_63_a_0 Bool) - (top.res.inst_62_a_0 Int) - (top.res.inst_61_a_0 Bool) - (top.res.inst_60_a_0 Bool) - (top.res.inst_59_a_0 Bool) - (top.res.inst_58_a_0 Bool) - (top.res.inst_57_a_0 Bool) - (top.res.inst_56_a_0 Bool) - (top.res.inst_55_a_0 Bool) - (top.res.inst_54_a_0 Bool) - (top.res.inst_53_a_0 Bool) - (top.res.inst_52_a_0 Bool) - (top.res.inst_51_a_0 Bool) - (top.res.inst_50_a_0 Bool) - (top.res.inst_49_a_0 Int) - (top.res.inst_48_a_0 Bool) - (top.res.inst_47_a_0 Bool) - (top.res.inst_46_a_0 Bool) - (top.res.inst_45_a_0 Bool) - (top.res.inst_44_a_0 Bool) - (top.res.inst_43_a_0 Bool) - (top.res.inst_42_a_0 Bool) - (top.res.inst_41_a_0 Bool) - (top.res.inst_40_a_0 Bool) - (top.res.inst_39_a_0 Bool) - (top.res.inst_38_a_0 Bool) - (top.res.inst_37_a_0 Int) - (top.res.inst_36_a_0 Int) - (top.res.inst_35_a_0 Int) - (top.res.inst_34_a_0 Int) - (top.res.inst_33_a_0 Bool) - (top.res.inst_32_a_0 Bool) - (top.res.inst_31_a_0 Bool) - (top.res.inst_30_a_0 Bool) - (top.res.inst_29_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Int) - (top.res.inst_23_a_0 Int) - (top.res.inst_22_a_0 Int) - (top.res.inst_21_a_0 Int) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Int) - (top.res.inst_10_a_0 Int) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Int) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_18_a_0)) - (and - (= top.res.abs_39_a_0 (not X1)) - (let - ((X2 Bool top.res.abs_17_a_0)) - (and - (= top.res.abs_38_a_0 (not X2)) - (let - ((X3 Bool top.res.abs_16_a_0)) - (and - (= top.res.abs_37_a_0 (not X3)) - (let - ((X4 Bool top.res.abs_15_a_0)) - (and - (= top.res.abs_36_a_0 (not X4)) - (let - ((X5 Bool top.res.abs_14_a_0)) - (and - (= top.res.abs_34_a_0 (not X5)) - (let - ((X6 Bool top.res.abs_13_a_0)) - (and - (= top.res.abs_33_a_0 (not X6)) - (let - ((X7 Bool top.res.abs_12_a_0)) - (and - (= top.res.abs_32_a_0 (not X7)) - (let - ((X8 Bool top.res.abs_11_a_0)) - (and - (= top.res.abs_31_a_0 (not X8)) - (let - ((X9 Bool top.res.abs_20_a_0)) - (let - ((X10 Bool top.res.abs_19_a_0)) - (let - ((X11 Bool top.res.abs_2_a_0)) - (let - ((X12 Int top.res.abs_1_a_0)) - (let - ((X13 Bool (=> (= X12 3) (not X11)))) - (let - ((X14 - Bool (=> - (= X12 3) - (and - (and - (and (not X10) (not X9)) - top.res.abs_35_a_0) - top.res.abs_40_a_0)))) - (let - ((X15 - Bool (or - (or - (or - (or (or (= X12 1) (= X12 2)) (= X12 3)) - (= X12 4)) - (= X12 5)) - (= X12 6)))) - (and - (= top.usr.OK_a_0 (and (and X15 X14) X13)) - (__node_init_BoilerController_0 - top.usr.stop_a_0 - top.usr.steam_boiler_waiting_a_0 - top.usr.physical_units_ready_a_0 - top.usr.level_a_0 - top.usr.steam_a_0 - top.usr.pump_state_0_a_0 - top.usr.pump_state_1_a_0 - top.usr.pump_state_2_a_0 - top.usr.pump_state_3_a_0 - top.usr.pump_control_state_0_a_0 - top.usr.pump_control_state_1_a_0 - top.usr.pump_control_state_2_a_0 - top.usr.pump_control_state_3_a_0 - top.usr.pump_repaired_0_a_0 - top.usr.pump_repaired_1_a_0 - top.usr.pump_repaired_2_a_0 - top.usr.pump_repaired_3_a_0 - top.usr.pump_control_repaired_0_a_0 - top.usr.pump_control_repaired_1_a_0 - top.usr.pump_control_repaired_2_a_0 - top.usr.pump_control_repaired_3_a_0 - top.usr.level_repaired_a_0 - top.usr.steam_repaired_a_0 - top.usr.pump_failure_acknowledgement_0_a_0 - top.usr.pump_failure_acknowledgement_1_a_0 - top.usr.pump_failure_acknowledgement_2_a_0 - top.usr.pump_failure_acknowledgement_3_a_0 - top.usr.pump_control_failure_acknowledgement_0_a_0 - top.usr.pump_control_failure_acknowledgement_1_a_0 - top.usr.pump_control_failure_acknowledgement_2_a_0 - top.usr.pump_control_failure_acknowledgement_3_a_0 - top.usr.level_failure_acknowledgement_a_0 - top.usr.steam_failure_acknowledgement_a_0 - top.res.nondet_32 - top.res.nondet_31 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.abs_13_a_0 - top.res.abs_14_a_0 - top.res.abs_15_a_0 - top.res.abs_16_a_0 - top.res.abs_17_a_0 - top.res.abs_18_a_0 - top.res.abs_19_a_0 - top.res.abs_20_a_0 - top.res.abs_21_a_0 - top.res.abs_22_a_0 - top.res.abs_23_a_0 - top.res.abs_24_a_0 - top.res.abs_25_a_0 - top.res.abs_26_a_0 - top.res.abs_27_a_0 - top.res.abs_28_a_0 - top.res.abs_29_a_0 - top.res.abs_30_a_0 - top.res.inst_297_a_0 - top.res.inst_296_a_0 - top.res.inst_295_a_0 - top.res.inst_294_a_0 - top.res.inst_293_a_0 - top.res.inst_292_a_0 - top.res.inst_291_a_0 - top.res.inst_290_a_0 - top.res.inst_289_a_0 - top.res.inst_288_a_0 - top.res.inst_287_a_0 - top.res.inst_286_a_0 - top.res.inst_285_a_0 - top.res.inst_284_a_0 - top.res.inst_283_a_0 - top.res.inst_282_a_0 - top.res.inst_281_a_0 - top.res.inst_280_a_0 - top.res.inst_279_a_0 - top.res.inst_278_a_0 - top.res.inst_277_a_0 - top.res.inst_276_a_0 - top.res.inst_275_a_0 - top.res.inst_274_a_0 - top.res.inst_273_a_0 - top.res.inst_272_a_0 - top.res.inst_271_a_0 - top.res.inst_270_a_0 - top.res.inst_269_a_0 - top.res.inst_268_a_0 - top.res.inst_267_a_0 - top.res.inst_266_a_0 - top.res.inst_265_a_0 - top.res.inst_264_a_0 - top.res.inst_263_a_0 - top.res.inst_262_a_0 - top.res.inst_261_a_0 - top.res.inst_260_a_0 - top.res.inst_259_a_0 - top.res.inst_258_a_0 - top.res.inst_257_a_0 - top.res.inst_256_a_0 - top.res.inst_255_a_0 - top.res.inst_254_a_0 - top.res.inst_253_a_0 - top.res.inst_252_a_0 - top.res.inst_251_a_0 - top.res.inst_250_a_0 - top.res.inst_249_a_0 - top.res.inst_248_a_0 - top.res.inst_247_a_0 - top.res.inst_246_a_0 - top.res.inst_245_a_0 - top.res.inst_244_a_0 - top.res.inst_243_a_0 - top.res.inst_242_a_0 - top.res.inst_241_a_0 - top.res.inst_240_a_0 - top.res.inst_239_a_0 - top.res.inst_238_a_0 - top.res.inst_237_a_0 - top.res.inst_236_a_0 - top.res.inst_235_a_0 - top.res.inst_234_a_0 - top.res.inst_233_a_0 - top.res.inst_232_a_0 - top.res.inst_231_a_0 - top.res.inst_230_a_0 - top.res.inst_229_a_0 - top.res.inst_228_a_0 - top.res.inst_227_a_0 - top.res.inst_226_a_0 - top.res.inst_225_a_0 - top.res.inst_224_a_0 - top.res.inst_223_a_0 - top.res.inst_222_a_0 - top.res.inst_221_a_0 - top.res.inst_220_a_0 - top.res.inst_219_a_0 - top.res.inst_218_a_0 - top.res.inst_217_a_0 - top.res.inst_216_a_0 - top.res.inst_215_a_0 - top.res.inst_214_a_0 - top.res.inst_213_a_0 - top.res.inst_212_a_0 - top.res.inst_211_a_0 - top.res.inst_210_a_0 - top.res.inst_209_a_0 - top.res.inst_208_a_0 - top.res.inst_207_a_0 - top.res.inst_206_a_0 - top.res.inst_205_a_0 - top.res.inst_204_a_0 - top.res.inst_203_a_0 - top.res.inst_202_a_0 - top.res.inst_201_a_0 - top.res.inst_200_a_0 - top.res.inst_199_a_0 - top.res.inst_198_a_0 - top.res.inst_197_a_0 - top.res.inst_196_a_0 - top.res.inst_195_a_0 - top.res.inst_194_a_0 - top.res.inst_193_a_0 - top.res.inst_192_a_0 - top.res.inst_191_a_0 - top.res.inst_190_a_0 - top.res.inst_189_a_0 - top.res.inst_188_a_0 - top.res.inst_187_a_0 - top.res.inst_186_a_0 - top.res.inst_185_a_0 - top.res.inst_184_a_0 - top.res.inst_183_a_0 - top.res.inst_182_a_0 - top.res.inst_181_a_0 - top.res.inst_180_a_0 - top.res.inst_179_a_0 - top.res.inst_178_a_0 - top.res.inst_177_a_0 - top.res.inst_176_a_0 - top.res.inst_175_a_0 - top.res.inst_174_a_0 - top.res.inst_173_a_0 - top.res.inst_172_a_0 - top.res.inst_171_a_0 - top.res.inst_170_a_0 - top.res.inst_169_a_0 - top.res.inst_168_a_0 - top.res.inst_167_a_0 - top.res.inst_166_a_0 - top.res.inst_165_a_0 - top.res.inst_164_a_0 - top.res.inst_163_a_0 - top.res.inst_162_a_0 - top.res.inst_161_a_0 - top.res.inst_160_a_0 - top.res.inst_159_a_0 - top.res.inst_158_a_0 - top.res.inst_157_a_0 - top.res.inst_156_a_0 - top.res.inst_155_a_0 - top.res.inst_154_a_0 - top.res.inst_153_a_0 - top.res.inst_152_a_0 - top.res.inst_151_a_0 - top.res.inst_150_a_0 - top.res.inst_149_a_0 - top.res.inst_148_a_0 - top.res.inst_147_a_0 - top.res.inst_146_a_0 - top.res.inst_145_a_0 - top.res.inst_144_a_0 - top.res.inst_143_a_0 - top.res.inst_142_a_0 - top.res.inst_141_a_0 - top.res.inst_140_a_0 - top.res.inst_139_a_0 - top.res.inst_138_a_0 - top.res.inst_137_a_0 - top.res.inst_136_a_0 - top.res.inst_135_a_0 - top.res.inst_134_a_0 - top.res.inst_133_a_0 - top.res.inst_132_a_0 - top.res.inst_131_a_0 - top.res.inst_130_a_0 - top.res.inst_129_a_0 - top.res.inst_128_a_0 - top.res.inst_127_a_0 - top.res.inst_126_a_0 - top.res.inst_125_a_0 - top.res.inst_124_a_0 - top.res.inst_123_a_0 - top.res.inst_122_a_0 - top.res.inst_121_a_0 - top.res.inst_120_a_0 - top.res.inst_119_a_0 - top.res.inst_118_a_0 - top.res.inst_117_a_0 - top.res.inst_116_a_0 - top.res.inst_115_a_0 - top.res.inst_114_a_0 - top.res.inst_113_a_0 - top.res.inst_112_a_0 - top.res.inst_111_a_0 - top.res.inst_110_a_0 - top.res.inst_109_a_0 - top.res.inst_108_a_0 - top.res.inst_107_a_0 - top.res.inst_106_a_0 - top.res.inst_105_a_0 - top.res.inst_104_a_0 - top.res.inst_103_a_0 - top.res.inst_102_a_0 - top.res.inst_101_a_0 - top.res.inst_100_a_0 - top.res.inst_99_a_0 - top.res.inst_98_a_0 - top.res.inst_97_a_0 - top.res.inst_96_a_0 - top.res.inst_95_a_0 - top.res.inst_94_a_0 - top.res.inst_93_a_0 - top.res.inst_92_a_0 - top.res.inst_91_a_0 - top.res.inst_90_a_0 - top.res.inst_89_a_0 - top.res.inst_88_a_0 - top.res.inst_87_a_0 - top.res.inst_86_a_0 - top.res.inst_85_a_0 - top.res.inst_84_a_0 - top.res.inst_83_a_0 - top.res.inst_82_a_0 - top.res.inst_81_a_0 - top.res.inst_80_a_0 - top.res.inst_79_a_0 - top.res.inst_78_a_0 - top.res.inst_77_a_0 - top.res.inst_76_a_0 - top.res.inst_75_a_0 - top.res.inst_74_a_0 - top.res.inst_73_a_0 - top.res.inst_72_a_0 - top.res.inst_71_a_0 - top.res.inst_70_a_0 - top.res.inst_69_a_0 - top.res.inst_68_a_0 - top.res.inst_67_a_0 - top.res.inst_66_a_0 - top.res.inst_65_a_0 - top.res.inst_64_a_0 - top.res.inst_63_a_0 - top.res.inst_62_a_0 - top.res.inst_61_a_0 - top.res.inst_60_a_0 - top.res.inst_59_a_0 - top.res.inst_58_a_0 - top.res.inst_57_a_0 - top.res.inst_56_a_0 - top.res.inst_55_a_0 - top.res.inst_54_a_0 - top.res.inst_53_a_0 - top.res.inst_52_a_0 - top.res.inst_51_a_0 - top.res.inst_50_a_0 - top.res.inst_49_a_0 - top.res.inst_48_a_0 - top.res.inst_47_a_0 - top.res.inst_46_a_0 - top.res.inst_45_a_0 - top.res.inst_44_a_0 - top.res.inst_43_a_0 - top.res.inst_42_a_0 - top.res.inst_41_a_0 - top.res.inst_40_a_0 - top.res.inst_39_a_0 - top.res.inst_38_a_0 - top.res.inst_37_a_0 - top.res.inst_36_a_0 - top.res.inst_35_a_0 - top.res.inst_34_a_0 - top.res.inst_33_a_0 - top.res.inst_32_a_0 - top.res.inst_31_a_0 - top.res.inst_30_a_0 - top.res.inst_29_a_0 - top.res.inst_28_a_0 - top.res.inst_27_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_AND_0 - top.res.abs_31_a_0 - top.res.abs_32_a_0 - top.res.abs_33_a_0 - top.res.abs_34_a_0 - top.res.abs_35_a_0 - top.res.inst_1_a_0) - (__node_init_AND_0 - top.res.abs_36_a_0 - top.res.abs_37_a_0 - top.res.abs_38_a_0 - top.res.abs_39_a_0 - top.res.abs_40_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))))))))))))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.stop_a_1 Bool) - (top.usr.steam_boiler_waiting_a_1 Bool) - (top.usr.physical_units_ready_a_1 Bool) - (top.usr.level_a_1 Int) - (top.usr.steam_a_1 Int) - (top.usr.pump_state_0_a_1 Int) - (top.usr.pump_state_1_a_1 Int) - (top.usr.pump_state_2_a_1 Int) - (top.usr.pump_state_3_a_1 Int) - (top.usr.pump_control_state_0_a_1 Bool) - (top.usr.pump_control_state_1_a_1 Bool) - (top.usr.pump_control_state_2_a_1 Bool) - (top.usr.pump_control_state_3_a_1 Bool) - (top.usr.pump_repaired_0_a_1 Bool) - (top.usr.pump_repaired_1_a_1 Bool) - (top.usr.pump_repaired_2_a_1 Bool) - (top.usr.pump_repaired_3_a_1 Bool) - (top.usr.pump_control_repaired_0_a_1 Bool) - (top.usr.pump_control_repaired_1_a_1 Bool) - (top.usr.pump_control_repaired_2_a_1 Bool) - (top.usr.pump_control_repaired_3_a_1 Bool) - (top.usr.level_repaired_a_1 Bool) - (top.usr.steam_repaired_a_1 Bool) - (top.usr.pump_failure_acknowledgement_0_a_1 Bool) - (top.usr.pump_failure_acknowledgement_1_a_1 Bool) - (top.usr.pump_failure_acknowledgement_2_a_1 Bool) - (top.usr.pump_failure_acknowledgement_3_a_1 Bool) - (top.usr.pump_control_failure_acknowledgement_0_a_1 Bool) - (top.usr.pump_control_failure_acknowledgement_1_a_1 Bool) - (top.usr.pump_control_failure_acknowledgement_2_a_1 Bool) - (top.usr.pump_control_failure_acknowledgement_3_a_1 Bool) - (top.usr.level_failure_acknowledgement_a_1 Bool) - (top.usr.steam_failure_acknowledgement_a_1 Bool) - (top.res.nondet_32 Int) - (top.res.nondet_31 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.abs_12_a_1 Bool) - (top.res.abs_13_a_1 Bool) - (top.res.abs_14_a_1 Bool) - (top.res.abs_15_a_1 Bool) - (top.res.abs_16_a_1 Bool) - (top.res.abs_17_a_1 Bool) - (top.res.abs_18_a_1 Bool) - (top.res.abs_19_a_1 Bool) - (top.res.abs_20_a_1 Bool) - (top.res.abs_21_a_1 Bool) - (top.res.abs_22_a_1 Bool) - (top.res.abs_23_a_1 Bool) - (top.res.abs_24_a_1 Bool) - (top.res.abs_25_a_1 Bool) - (top.res.abs_26_a_1 Bool) - (top.res.abs_27_a_1 Bool) - (top.res.abs_28_a_1 Bool) - (top.res.abs_29_a_1 Bool) - (top.res.abs_30_a_1 Bool) - (top.res.abs_31_a_1 Bool) - (top.res.abs_32_a_1 Bool) - (top.res.abs_33_a_1 Bool) - (top.res.abs_34_a_1 Bool) - (top.res.abs_35_a_1 Bool) - (top.res.abs_36_a_1 Bool) - (top.res.abs_37_a_1 Bool) - (top.res.abs_38_a_1 Bool) - (top.res.abs_39_a_1 Bool) - (top.res.abs_40_a_1 Bool) - (top.res.inst_297_a_1 Bool) - (top.res.inst_296_a_1 Bool) - (top.res.inst_295_a_1 Int) - (top.res.inst_294_a_1 Int) - (top.res.inst_293_a_1 Int) - (top.res.inst_292_a_1 Int) - (top.res.inst_291_a_1 Int) - (top.res.inst_290_a_1 Int) - (top.res.inst_289_a_1 Int) - (top.res.inst_288_a_1 Int) - (top.res.inst_287_a_1 Int) - (top.res.inst_286_a_1 Int) - (top.res.inst_285_a_1 Int) - (top.res.inst_284_a_1 Int) - (top.res.inst_283_a_1 Int) - (top.res.inst_282_a_1 Int) - (top.res.inst_281_a_1 Int) - (top.res.inst_280_a_1 Int) - (top.res.inst_279_a_1 Int) - (top.res.inst_278_a_1 Bool) - (top.res.inst_277_a_1 Int) - (top.res.inst_276_a_1 Int) - (top.res.inst_275_a_1 Int) - (top.res.inst_274_a_1 Bool) - (top.res.inst_273_a_1 Bool) - (top.res.inst_272_a_1 Bool) - (top.res.inst_271_a_1 Bool) - (top.res.inst_270_a_1 Int) - (top.res.inst_269_a_1 Int) - (top.res.inst_268_a_1 Bool) - (top.res.inst_267_a_1 Int) - (top.res.inst_266_a_1 Int) - (top.res.inst_265_a_1 Bool) - (top.res.inst_264_a_1 Int) - (top.res.inst_263_a_1 Bool) - (top.res.inst_262_a_1 Bool) - (top.res.inst_261_a_1 Bool) - (top.res.inst_260_a_1 Bool) - (top.res.inst_259_a_1 Int) - (top.res.inst_258_a_1 Int) - (top.res.inst_257_a_1 Bool) - (top.res.inst_256_a_1 Int) - (top.res.inst_255_a_1 Int) - (top.res.inst_254_a_1 Bool) - (top.res.inst_253_a_1 Int) - (top.res.inst_252_a_1 Bool) - (top.res.inst_251_a_1 Bool) - (top.res.inst_250_a_1 Bool) - (top.res.inst_249_a_1 Bool) - (top.res.inst_248_a_1 Int) - (top.res.inst_247_a_1 Int) - (top.res.inst_246_a_1 Bool) - (top.res.inst_245_a_1 Int) - (top.res.inst_244_a_1 Int) - (top.res.inst_243_a_1 Bool) - (top.res.inst_242_a_1 Int) - (top.res.inst_241_a_1 Bool) - (top.res.inst_240_a_1 Bool) - (top.res.inst_239_a_1 Bool) - (top.res.inst_238_a_1 Bool) - (top.res.inst_237_a_1 Int) - (top.res.inst_236_a_1 Int) - (top.res.inst_235_a_1 Bool) - (top.res.inst_234_a_1 Int) - (top.res.inst_233_a_1 Int) - (top.res.inst_232_a_1 Bool) - (top.res.inst_231_a_1 Int) - (top.res.inst_230_a_1 Int) - (top.res.inst_229_a_1 Int) - (top.res.inst_228_a_1 Int) - (top.res.inst_227_a_1 Int) - (top.res.inst_226_a_1 Bool) - (top.res.inst_225_a_1 Bool) - (top.res.inst_224_a_1 Bool) - (top.res.inst_223_a_1 Bool) - (top.res.inst_222_a_1 Int) - (top.res.inst_221_a_1 Int) - (top.res.inst_220_a_1 Int) - (top.res.inst_219_a_1 Int) - (top.res.inst_218_a_1 Int) - (top.res.inst_217_a_1 Int) - (top.res.inst_216_a_1 Int) - (top.res.inst_215_a_1 Int) - (top.res.inst_214_a_1 Int) - (top.res.inst_213_a_1 Int) - (top.res.inst_212_a_1 Int) - (top.res.inst_211_a_1 Int) - (top.res.inst_210_a_1 Bool) - (top.res.inst_209_a_1 Int) - (top.res.inst_208_a_1 Bool) - (top.res.inst_207_a_1 Int) - (top.res.inst_206_a_1 Bool) - (top.res.inst_205_a_1 Bool) - (top.res.inst_204_a_1 Bool) - (top.res.inst_203_a_1 Bool) - (top.res.inst_202_a_1 Bool) - (top.res.inst_201_a_1 Bool) - (top.res.inst_200_a_1 Bool) - (top.res.inst_199_a_1 Bool) - (top.res.inst_198_a_1 Bool) - (top.res.inst_197_a_1 Bool) - (top.res.inst_196_a_1 Bool) - (top.res.inst_195_a_1 Bool) - (top.res.inst_194_a_1 Bool) - (top.res.inst_193_a_1 Bool) - (top.res.inst_192_a_1 Bool) - (top.res.inst_191_a_1 Bool) - (top.res.inst_190_a_1 Bool) - (top.res.inst_189_a_1 Bool) - (top.res.inst_188_a_1 Bool) - (top.res.inst_187_a_1 Bool) - (top.res.inst_186_a_1 Bool) - (top.res.inst_185_a_1 Bool) - (top.res.inst_184_a_1 Bool) - (top.res.inst_183_a_1 Bool) - (top.res.inst_182_a_1 Bool) - (top.res.inst_181_a_1 Bool) - (top.res.inst_180_a_1 Bool) - (top.res.inst_179_a_1 Bool) - (top.res.inst_178_a_1 Bool) - (top.res.inst_177_a_1 Bool) - (top.res.inst_176_a_1 Bool) - (top.res.inst_175_a_1 Bool) - (top.res.inst_174_a_1 Int) - (top.res.inst_173_a_1 Bool) - (top.res.inst_172_a_1 Bool) - (top.res.inst_171_a_1 Bool) - (top.res.inst_170_a_1 Bool) - (top.res.inst_169_a_1 Bool) - (top.res.inst_168_a_1 Bool) - (top.res.inst_167_a_1 Bool) - (top.res.inst_166_a_1 Bool) - (top.res.inst_165_a_1 Bool) - (top.res.inst_164_a_1 Bool) - (top.res.inst_163_a_1 Bool) - (top.res.inst_162_a_1 Bool) - (top.res.inst_161_a_1 Bool) - (top.res.inst_160_a_1 Bool) - (top.res.inst_159_a_1 Bool) - (top.res.inst_158_a_1 Bool) - (top.res.inst_157_a_1 Bool) - (top.res.inst_156_a_1 Bool) - (top.res.inst_155_a_1 Bool) - (top.res.inst_154_a_1 Bool) - (top.res.inst_153_a_1 Bool) - (top.res.inst_152_a_1 Bool) - (top.res.inst_151_a_1 Bool) - (top.res.inst_150_a_1 Bool) - (top.res.inst_149_a_1 Bool) - (top.res.inst_148_a_1 Bool) - (top.res.inst_147_a_1 Bool) - (top.res.inst_146_a_1 Bool) - (top.res.inst_145_a_1 Bool) - (top.res.inst_144_a_1 Bool) - (top.res.inst_143_a_1 Bool) - (top.res.inst_142_a_1 Bool) - (top.res.inst_141_a_1 Bool) - (top.res.inst_140_a_1 Bool) - (top.res.inst_139_a_1 Bool) - (top.res.inst_138_a_1 Bool) - (top.res.inst_137_a_1 Bool) - (top.res.inst_136_a_1 Bool) - (top.res.inst_135_a_1 Bool) - (top.res.inst_134_a_1 Bool) - (top.res.inst_133_a_1 Bool) - (top.res.inst_132_a_1 Bool) - (top.res.inst_131_a_1 Bool) - (top.res.inst_130_a_1 Bool) - (top.res.inst_129_a_1 Bool) - (top.res.inst_128_a_1 Bool) - (top.res.inst_127_a_1 Bool) - (top.res.inst_126_a_1 Bool) - (top.res.inst_125_a_1 Bool) - (top.res.inst_124_a_1 Bool) - (top.res.inst_123_a_1 Bool) - (top.res.inst_122_a_1 Int) - (top.res.inst_121_a_1 Bool) - (top.res.inst_120_a_1 Bool) - (top.res.inst_119_a_1 Int) - (top.res.inst_118_a_1 Int) - (top.res.inst_117_a_1 Bool) - (top.res.inst_116_a_1 Bool) - (top.res.inst_115_a_1 Bool) - (top.res.inst_114_a_1 Bool) - (top.res.inst_113_a_1 Int) - (top.res.inst_112_a_1 Int) - (top.res.inst_111_a_1 Bool) - (top.res.inst_110_a_1 Bool) - (top.res.inst_109_a_1 Bool) - (top.res.inst_108_a_1 Bool) - (top.res.inst_107_a_1 Bool) - (top.res.inst_106_a_1 Bool) - (top.res.inst_105_a_1 Bool) - (top.res.inst_104_a_1 Bool) - (top.res.inst_103_a_1 Int) - (top.res.inst_102_a_1 Int) - (top.res.inst_101_a_1 Int) - (top.res.inst_100_a_1 Int) - (top.res.inst_99_a_1 Bool) - (top.res.inst_98_a_1 Bool) - (top.res.inst_97_a_1 Bool) - (top.res.inst_96_a_1 Bool) - (top.res.inst_95_a_1 Int) - (top.res.inst_94_a_1 Int) - (top.res.inst_93_a_1 Int) - (top.res.inst_92_a_1 Int) - (top.res.inst_91_a_1 Int) - (top.res.inst_90_a_1 Int) - (top.res.inst_89_a_1 Int) - (top.res.inst_88_a_1 Int) - (top.res.inst_87_a_1 Int) - (top.res.inst_86_a_1 Int) - (top.res.inst_85_a_1 Bool) - (top.res.inst_84_a_1 Bool) - (top.res.inst_83_a_1 Bool) - (top.res.inst_82_a_1 Bool) - (top.res.inst_81_a_1 Int) - (top.res.inst_80_a_1 Int) - (top.res.inst_79_a_1 Int) - (top.res.inst_78_a_1 Int) - (top.res.inst_77_a_1 Bool) - (top.res.inst_76_a_1 Int) - (top.res.inst_75_a_1 Bool) - (top.res.inst_74_a_1 Int) - (top.res.inst_73_a_1 Bool) - (top.res.inst_72_a_1 Int) - (top.res.inst_71_a_1 Bool) - (top.res.inst_70_a_1 Int) - (top.res.inst_69_a_1 Bool) - (top.res.inst_68_a_1 Int) - (top.res.inst_67_a_1 Bool) - (top.res.inst_66_a_1 Int) - (top.res.inst_65_a_1 Bool) - (top.res.inst_64_a_1 Int) - (top.res.inst_63_a_1 Bool) - (top.res.inst_62_a_1 Int) - (top.res.inst_61_a_1 Bool) - (top.res.inst_60_a_1 Bool) - (top.res.inst_59_a_1 Bool) - (top.res.inst_58_a_1 Bool) - (top.res.inst_57_a_1 Bool) - (top.res.inst_56_a_1 Bool) - (top.res.inst_55_a_1 Bool) - (top.res.inst_54_a_1 Bool) - (top.res.inst_53_a_1 Bool) - (top.res.inst_52_a_1 Bool) - (top.res.inst_51_a_1 Bool) - (top.res.inst_50_a_1 Bool) - (top.res.inst_49_a_1 Int) - (top.res.inst_48_a_1 Bool) - (top.res.inst_47_a_1 Bool) - (top.res.inst_46_a_1 Bool) - (top.res.inst_45_a_1 Bool) - (top.res.inst_44_a_1 Bool) - (top.res.inst_43_a_1 Bool) - (top.res.inst_42_a_1 Bool) - (top.res.inst_41_a_1 Bool) - (top.res.inst_40_a_1 Bool) - (top.res.inst_39_a_1 Bool) - (top.res.inst_38_a_1 Bool) - (top.res.inst_37_a_1 Int) - (top.res.inst_36_a_1 Int) - (top.res.inst_35_a_1 Int) - (top.res.inst_34_a_1 Int) - (top.res.inst_33_a_1 Bool) - (top.res.inst_32_a_1 Bool) - (top.res.inst_31_a_1 Bool) - (top.res.inst_30_a_1 Bool) - (top.res.inst_29_a_1 Bool) - (top.res.inst_28_a_1 Bool) - (top.res.inst_27_a_1 Bool) - (top.res.inst_26_a_1 Bool) - (top.res.inst_25_a_1 Bool) - (top.res.inst_24_a_1 Int) - (top.res.inst_23_a_1 Int) - (top.res.inst_22_a_1 Int) - (top.res.inst_21_a_1 Int) - (top.res.inst_20_a_1 Bool) - (top.res.inst_19_a_1 Bool) - (top.res.inst_18_a_1 Bool) - (top.res.inst_17_a_1 Bool) - (top.res.inst_16_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Bool) - (top.res.inst_11_a_1 Int) - (top.res.inst_10_a_1 Int) - (top.res.inst_9_a_1 Int) - (top.res.inst_8_a_1 Int) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Bool) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.stop_a_0 Bool) - (top.usr.steam_boiler_waiting_a_0 Bool) - (top.usr.physical_units_ready_a_0 Bool) - (top.usr.level_a_0 Int) - (top.usr.steam_a_0 Int) - (top.usr.pump_state_0_a_0 Int) - (top.usr.pump_state_1_a_0 Int) - (top.usr.pump_state_2_a_0 Int) - (top.usr.pump_state_3_a_0 Int) - (top.usr.pump_control_state_0_a_0 Bool) - (top.usr.pump_control_state_1_a_0 Bool) - (top.usr.pump_control_state_2_a_0 Bool) - (top.usr.pump_control_state_3_a_0 Bool) - (top.usr.pump_repaired_0_a_0 Bool) - (top.usr.pump_repaired_1_a_0 Bool) - (top.usr.pump_repaired_2_a_0 Bool) - (top.usr.pump_repaired_3_a_0 Bool) - (top.usr.pump_control_repaired_0_a_0 Bool) - (top.usr.pump_control_repaired_1_a_0 Bool) - (top.usr.pump_control_repaired_2_a_0 Bool) - (top.usr.pump_control_repaired_3_a_0 Bool) - (top.usr.level_repaired_a_0 Bool) - (top.usr.steam_repaired_a_0 Bool) - (top.usr.pump_failure_acknowledgement_0_a_0 Bool) - (top.usr.pump_failure_acknowledgement_1_a_0 Bool) - (top.usr.pump_failure_acknowledgement_2_a_0 Bool) - (top.usr.pump_failure_acknowledgement_3_a_0 Bool) - (top.usr.pump_control_failure_acknowledgement_0_a_0 Bool) - (top.usr.pump_control_failure_acknowledgement_1_a_0 Bool) - (top.usr.pump_control_failure_acknowledgement_2_a_0 Bool) - (top.usr.pump_control_failure_acknowledgement_3_a_0 Bool) - (top.usr.level_failure_acknowledgement_a_0 Bool) - (top.usr.steam_failure_acknowledgement_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.abs_12_a_0 Bool) - (top.res.abs_13_a_0 Bool) - (top.res.abs_14_a_0 Bool) - (top.res.abs_15_a_0 Bool) - (top.res.abs_16_a_0 Bool) - (top.res.abs_17_a_0 Bool) - (top.res.abs_18_a_0 Bool) - (top.res.abs_19_a_0 Bool) - (top.res.abs_20_a_0 Bool) - (top.res.abs_21_a_0 Bool) - (top.res.abs_22_a_0 Bool) - (top.res.abs_23_a_0 Bool) - (top.res.abs_24_a_0 Bool) - (top.res.abs_25_a_0 Bool) - (top.res.abs_26_a_0 Bool) - (top.res.abs_27_a_0 Bool) - (top.res.abs_28_a_0 Bool) - (top.res.abs_29_a_0 Bool) - (top.res.abs_30_a_0 Bool) - (top.res.abs_31_a_0 Bool) - (top.res.abs_32_a_0 Bool) - (top.res.abs_33_a_0 Bool) - (top.res.abs_34_a_0 Bool) - (top.res.abs_35_a_0 Bool) - (top.res.abs_36_a_0 Bool) - (top.res.abs_37_a_0 Bool) - (top.res.abs_38_a_0 Bool) - (top.res.abs_39_a_0 Bool) - (top.res.abs_40_a_0 Bool) - (top.res.inst_297_a_0 Bool) - (top.res.inst_296_a_0 Bool) - (top.res.inst_295_a_0 Int) - (top.res.inst_294_a_0 Int) - (top.res.inst_293_a_0 Int) - (top.res.inst_292_a_0 Int) - (top.res.inst_291_a_0 Int) - (top.res.inst_290_a_0 Int) - (top.res.inst_289_a_0 Int) - (top.res.inst_288_a_0 Int) - (top.res.inst_287_a_0 Int) - (top.res.inst_286_a_0 Int) - (top.res.inst_285_a_0 Int) - (top.res.inst_284_a_0 Int) - (top.res.inst_283_a_0 Int) - (top.res.inst_282_a_0 Int) - (top.res.inst_281_a_0 Int) - (top.res.inst_280_a_0 Int) - (top.res.inst_279_a_0 Int) - (top.res.inst_278_a_0 Bool) - (top.res.inst_277_a_0 Int) - (top.res.inst_276_a_0 Int) - (top.res.inst_275_a_0 Int) - (top.res.inst_274_a_0 Bool) - (top.res.inst_273_a_0 Bool) - (top.res.inst_272_a_0 Bool) - (top.res.inst_271_a_0 Bool) - (top.res.inst_270_a_0 Int) - (top.res.inst_269_a_0 Int) - (top.res.inst_268_a_0 Bool) - (top.res.inst_267_a_0 Int) - (top.res.inst_266_a_0 Int) - (top.res.inst_265_a_0 Bool) - (top.res.inst_264_a_0 Int) - (top.res.inst_263_a_0 Bool) - (top.res.inst_262_a_0 Bool) - (top.res.inst_261_a_0 Bool) - (top.res.inst_260_a_0 Bool) - (top.res.inst_259_a_0 Int) - (top.res.inst_258_a_0 Int) - (top.res.inst_257_a_0 Bool) - (top.res.inst_256_a_0 Int) - (top.res.inst_255_a_0 Int) - (top.res.inst_254_a_0 Bool) - (top.res.inst_253_a_0 Int) - (top.res.inst_252_a_0 Bool) - (top.res.inst_251_a_0 Bool) - (top.res.inst_250_a_0 Bool) - (top.res.inst_249_a_0 Bool) - (top.res.inst_248_a_0 Int) - (top.res.inst_247_a_0 Int) - (top.res.inst_246_a_0 Bool) - (top.res.inst_245_a_0 Int) - (top.res.inst_244_a_0 Int) - (top.res.inst_243_a_0 Bool) - (top.res.inst_242_a_0 Int) - (top.res.inst_241_a_0 Bool) - (top.res.inst_240_a_0 Bool) - (top.res.inst_239_a_0 Bool) - (top.res.inst_238_a_0 Bool) - (top.res.inst_237_a_0 Int) - (top.res.inst_236_a_0 Int) - (top.res.inst_235_a_0 Bool) - (top.res.inst_234_a_0 Int) - (top.res.inst_233_a_0 Int) - (top.res.inst_232_a_0 Bool) - (top.res.inst_231_a_0 Int) - (top.res.inst_230_a_0 Int) - (top.res.inst_229_a_0 Int) - (top.res.inst_228_a_0 Int) - (top.res.inst_227_a_0 Int) - (top.res.inst_226_a_0 Bool) - (top.res.inst_225_a_0 Bool) - (top.res.inst_224_a_0 Bool) - (top.res.inst_223_a_0 Bool) - (top.res.inst_222_a_0 Int) - (top.res.inst_221_a_0 Int) - (top.res.inst_220_a_0 Int) - (top.res.inst_219_a_0 Int) - (top.res.inst_218_a_0 Int) - (top.res.inst_217_a_0 Int) - (top.res.inst_216_a_0 Int) - (top.res.inst_215_a_0 Int) - (top.res.inst_214_a_0 Int) - (top.res.inst_213_a_0 Int) - (top.res.inst_212_a_0 Int) - (top.res.inst_211_a_0 Int) - (top.res.inst_210_a_0 Bool) - (top.res.inst_209_a_0 Int) - (top.res.inst_208_a_0 Bool) - (top.res.inst_207_a_0 Int) - (top.res.inst_206_a_0 Bool) - (top.res.inst_205_a_0 Bool) - (top.res.inst_204_a_0 Bool) - (top.res.inst_203_a_0 Bool) - (top.res.inst_202_a_0 Bool) - (top.res.inst_201_a_0 Bool) - (top.res.inst_200_a_0 Bool) - (top.res.inst_199_a_0 Bool) - (top.res.inst_198_a_0 Bool) - (top.res.inst_197_a_0 Bool) - (top.res.inst_196_a_0 Bool) - (top.res.inst_195_a_0 Bool) - (top.res.inst_194_a_0 Bool) - (top.res.inst_193_a_0 Bool) - (top.res.inst_192_a_0 Bool) - (top.res.inst_191_a_0 Bool) - (top.res.inst_190_a_0 Bool) - (top.res.inst_189_a_0 Bool) - (top.res.inst_188_a_0 Bool) - (top.res.inst_187_a_0 Bool) - (top.res.inst_186_a_0 Bool) - (top.res.inst_185_a_0 Bool) - (top.res.inst_184_a_0 Bool) - (top.res.inst_183_a_0 Bool) - (top.res.inst_182_a_0 Bool) - (top.res.inst_181_a_0 Bool) - (top.res.inst_180_a_0 Bool) - (top.res.inst_179_a_0 Bool) - (top.res.inst_178_a_0 Bool) - (top.res.inst_177_a_0 Bool) - (top.res.inst_176_a_0 Bool) - (top.res.inst_175_a_0 Bool) - (top.res.inst_174_a_0 Int) - (top.res.inst_173_a_0 Bool) - (top.res.inst_172_a_0 Bool) - (top.res.inst_171_a_0 Bool) - (top.res.inst_170_a_0 Bool) - (top.res.inst_169_a_0 Bool) - (top.res.inst_168_a_0 Bool) - (top.res.inst_167_a_0 Bool) - (top.res.inst_166_a_0 Bool) - (top.res.inst_165_a_0 Bool) - (top.res.inst_164_a_0 Bool) - (top.res.inst_163_a_0 Bool) - (top.res.inst_162_a_0 Bool) - (top.res.inst_161_a_0 Bool) - (top.res.inst_160_a_0 Bool) - (top.res.inst_159_a_0 Bool) - (top.res.inst_158_a_0 Bool) - (top.res.inst_157_a_0 Bool) - (top.res.inst_156_a_0 Bool) - (top.res.inst_155_a_0 Bool) - (top.res.inst_154_a_0 Bool) - (top.res.inst_153_a_0 Bool) - (top.res.inst_152_a_0 Bool) - (top.res.inst_151_a_0 Bool) - (top.res.inst_150_a_0 Bool) - (top.res.inst_149_a_0 Bool) - (top.res.inst_148_a_0 Bool) - (top.res.inst_147_a_0 Bool) - (top.res.inst_146_a_0 Bool) - (top.res.inst_145_a_0 Bool) - (top.res.inst_144_a_0 Bool) - (top.res.inst_143_a_0 Bool) - (top.res.inst_142_a_0 Bool) - (top.res.inst_141_a_0 Bool) - (top.res.inst_140_a_0 Bool) - (top.res.inst_139_a_0 Bool) - (top.res.inst_138_a_0 Bool) - (top.res.inst_137_a_0 Bool) - (top.res.inst_136_a_0 Bool) - (top.res.inst_135_a_0 Bool) - (top.res.inst_134_a_0 Bool) - (top.res.inst_133_a_0 Bool) - (top.res.inst_132_a_0 Bool) - (top.res.inst_131_a_0 Bool) - (top.res.inst_130_a_0 Bool) - (top.res.inst_129_a_0 Bool) - (top.res.inst_128_a_0 Bool) - (top.res.inst_127_a_0 Bool) - (top.res.inst_126_a_0 Bool) - (top.res.inst_125_a_0 Bool) - (top.res.inst_124_a_0 Bool) - (top.res.inst_123_a_0 Bool) - (top.res.inst_122_a_0 Int) - (top.res.inst_121_a_0 Bool) - (top.res.inst_120_a_0 Bool) - (top.res.inst_119_a_0 Int) - (top.res.inst_118_a_0 Int) - (top.res.inst_117_a_0 Bool) - (top.res.inst_116_a_0 Bool) - (top.res.inst_115_a_0 Bool) - (top.res.inst_114_a_0 Bool) - (top.res.inst_113_a_0 Int) - (top.res.inst_112_a_0 Int) - (top.res.inst_111_a_0 Bool) - (top.res.inst_110_a_0 Bool) - (top.res.inst_109_a_0 Bool) - (top.res.inst_108_a_0 Bool) - (top.res.inst_107_a_0 Bool) - (top.res.inst_106_a_0 Bool) - (top.res.inst_105_a_0 Bool) - (top.res.inst_104_a_0 Bool) - (top.res.inst_103_a_0 Int) - (top.res.inst_102_a_0 Int) - (top.res.inst_101_a_0 Int) - (top.res.inst_100_a_0 Int) - (top.res.inst_99_a_0 Bool) - (top.res.inst_98_a_0 Bool) - (top.res.inst_97_a_0 Bool) - (top.res.inst_96_a_0 Bool) - (top.res.inst_95_a_0 Int) - (top.res.inst_94_a_0 Int) - (top.res.inst_93_a_0 Int) - (top.res.inst_92_a_0 Int) - (top.res.inst_91_a_0 Int) - (top.res.inst_90_a_0 Int) - (top.res.inst_89_a_0 Int) - (top.res.inst_88_a_0 Int) - (top.res.inst_87_a_0 Int) - (top.res.inst_86_a_0 Int) - (top.res.inst_85_a_0 Bool) - (top.res.inst_84_a_0 Bool) - (top.res.inst_83_a_0 Bool) - (top.res.inst_82_a_0 Bool) - (top.res.inst_81_a_0 Int) - (top.res.inst_80_a_0 Int) - (top.res.inst_79_a_0 Int) - (top.res.inst_78_a_0 Int) - (top.res.inst_77_a_0 Bool) - (top.res.inst_76_a_0 Int) - (top.res.inst_75_a_0 Bool) - (top.res.inst_74_a_0 Int) - (top.res.inst_73_a_0 Bool) - (top.res.inst_72_a_0 Int) - (top.res.inst_71_a_0 Bool) - (top.res.inst_70_a_0 Int) - (top.res.inst_69_a_0 Bool) - (top.res.inst_68_a_0 Int) - (top.res.inst_67_a_0 Bool) - (top.res.inst_66_a_0 Int) - (top.res.inst_65_a_0 Bool) - (top.res.inst_64_a_0 Int) - (top.res.inst_63_a_0 Bool) - (top.res.inst_62_a_0 Int) - (top.res.inst_61_a_0 Bool) - (top.res.inst_60_a_0 Bool) - (top.res.inst_59_a_0 Bool) - (top.res.inst_58_a_0 Bool) - (top.res.inst_57_a_0 Bool) - (top.res.inst_56_a_0 Bool) - (top.res.inst_55_a_0 Bool) - (top.res.inst_54_a_0 Bool) - (top.res.inst_53_a_0 Bool) - (top.res.inst_52_a_0 Bool) - (top.res.inst_51_a_0 Bool) - (top.res.inst_50_a_0 Bool) - (top.res.inst_49_a_0 Int) - (top.res.inst_48_a_0 Bool) - (top.res.inst_47_a_0 Bool) - (top.res.inst_46_a_0 Bool) - (top.res.inst_45_a_0 Bool) - (top.res.inst_44_a_0 Bool) - (top.res.inst_43_a_0 Bool) - (top.res.inst_42_a_0 Bool) - (top.res.inst_41_a_0 Bool) - (top.res.inst_40_a_0 Bool) - (top.res.inst_39_a_0 Bool) - (top.res.inst_38_a_0 Bool) - (top.res.inst_37_a_0 Int) - (top.res.inst_36_a_0 Int) - (top.res.inst_35_a_0 Int) - (top.res.inst_34_a_0 Int) - (top.res.inst_33_a_0 Bool) - (top.res.inst_32_a_0 Bool) - (top.res.inst_31_a_0 Bool) - (top.res.inst_30_a_0 Bool) - (top.res.inst_29_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Int) - (top.res.inst_23_a_0 Int) - (top.res.inst_22_a_0 Int) - (top.res.inst_21_a_0 Int) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Int) - (top.res.inst_10_a_0 Int) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Int) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_18_a_1)) - (and - (= top.res.abs_39_a_1 (not X1)) - (let - ((X2 Bool top.res.abs_17_a_1)) - (and - (= top.res.abs_38_a_1 (not X2)) - (let - ((X3 Bool top.res.abs_16_a_1)) - (and - (= top.res.abs_37_a_1 (not X3)) - (let - ((X4 Bool top.res.abs_15_a_1)) - (and - (= top.res.abs_36_a_1 (not X4)) - (let - ((X5 Bool top.res.abs_14_a_1)) - (and - (= top.res.abs_34_a_1 (not X5)) - (let - ((X6 Bool top.res.abs_13_a_1)) - (and - (= top.res.abs_33_a_1 (not X6)) - (let - ((X7 Bool top.res.abs_12_a_1)) - (and - (= top.res.abs_32_a_1 (not X7)) - (let - ((X8 Bool top.res.abs_11_a_1)) - (and - (= top.res.abs_31_a_1 (not X8)) - (let - ((X9 Bool top.res.abs_20_a_1)) - (let - ((X10 Bool top.res.abs_19_a_1)) - (let - ((X11 Bool top.res.abs_2_a_1)) - (let - ((X12 Int top.res.abs_1_a_1)) - (let - ((X13 Bool (=> (= X12 3) (not X11)))) - (let - ((X14 - Bool (=> - (= X12 3) - (and - (and - (and (not X10) (not X9)) - top.res.abs_35_a_1) - top.res.abs_40_a_1)))) - (let - ((X15 - Bool (or - (or - (or - (or (or (= X12 1) (= X12 2)) (= X12 3)) - (= X12 4)) - (= X12 5)) - (= X12 6)))) - (and - (= top.usr.OK_a_1 (and (and X15 X14) X13)) - (__node_trans_BoilerController_0 - top.usr.stop_a_1 - top.usr.steam_boiler_waiting_a_1 - top.usr.physical_units_ready_a_1 - top.usr.level_a_1 - top.usr.steam_a_1 - top.usr.pump_state_0_a_1 - top.usr.pump_state_1_a_1 - top.usr.pump_state_2_a_1 - top.usr.pump_state_3_a_1 - top.usr.pump_control_state_0_a_1 - top.usr.pump_control_state_1_a_1 - top.usr.pump_control_state_2_a_1 - top.usr.pump_control_state_3_a_1 - top.usr.pump_repaired_0_a_1 - top.usr.pump_repaired_1_a_1 - top.usr.pump_repaired_2_a_1 - top.usr.pump_repaired_3_a_1 - top.usr.pump_control_repaired_0_a_1 - top.usr.pump_control_repaired_1_a_1 - top.usr.pump_control_repaired_2_a_1 - top.usr.pump_control_repaired_3_a_1 - top.usr.level_repaired_a_1 - top.usr.steam_repaired_a_1 - top.usr.pump_failure_acknowledgement_0_a_1 - top.usr.pump_failure_acknowledgement_1_a_1 - top.usr.pump_failure_acknowledgement_2_a_1 - top.usr.pump_failure_acknowledgement_3_a_1 - top.usr.pump_control_failure_acknowledgement_0_a_1 - top.usr.pump_control_failure_acknowledgement_1_a_1 - top.usr.pump_control_failure_acknowledgement_2_a_1 - top.usr.pump_control_failure_acknowledgement_3_a_1 - top.usr.level_failure_acknowledgement_a_1 - top.usr.steam_failure_acknowledgement_a_1 - top.res.nondet_32 - top.res.nondet_31 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.abs_12_a_1 - top.res.abs_13_a_1 - top.res.abs_14_a_1 - top.res.abs_15_a_1 - top.res.abs_16_a_1 - top.res.abs_17_a_1 - top.res.abs_18_a_1 - top.res.abs_19_a_1 - top.res.abs_20_a_1 - top.res.abs_21_a_1 - top.res.abs_22_a_1 - top.res.abs_23_a_1 - top.res.abs_24_a_1 - top.res.abs_25_a_1 - top.res.abs_26_a_1 - top.res.abs_27_a_1 - top.res.abs_28_a_1 - top.res.abs_29_a_1 - top.res.abs_30_a_1 - top.res.inst_297_a_1 - top.res.inst_296_a_1 - top.res.inst_295_a_1 - top.res.inst_294_a_1 - top.res.inst_293_a_1 - top.res.inst_292_a_1 - top.res.inst_291_a_1 - top.res.inst_290_a_1 - top.res.inst_289_a_1 - top.res.inst_288_a_1 - top.res.inst_287_a_1 - top.res.inst_286_a_1 - top.res.inst_285_a_1 - top.res.inst_284_a_1 - top.res.inst_283_a_1 - top.res.inst_282_a_1 - top.res.inst_281_a_1 - top.res.inst_280_a_1 - top.res.inst_279_a_1 - top.res.inst_278_a_1 - top.res.inst_277_a_1 - top.res.inst_276_a_1 - top.res.inst_275_a_1 - top.res.inst_274_a_1 - top.res.inst_273_a_1 - top.res.inst_272_a_1 - top.res.inst_271_a_1 - top.res.inst_270_a_1 - top.res.inst_269_a_1 - top.res.inst_268_a_1 - top.res.inst_267_a_1 - top.res.inst_266_a_1 - top.res.inst_265_a_1 - top.res.inst_264_a_1 - top.res.inst_263_a_1 - top.res.inst_262_a_1 - top.res.inst_261_a_1 - top.res.inst_260_a_1 - top.res.inst_259_a_1 - top.res.inst_258_a_1 - top.res.inst_257_a_1 - top.res.inst_256_a_1 - top.res.inst_255_a_1 - top.res.inst_254_a_1 - top.res.inst_253_a_1 - top.res.inst_252_a_1 - top.res.inst_251_a_1 - top.res.inst_250_a_1 - top.res.inst_249_a_1 - top.res.inst_248_a_1 - top.res.inst_247_a_1 - top.res.inst_246_a_1 - top.res.inst_245_a_1 - top.res.inst_244_a_1 - top.res.inst_243_a_1 - top.res.inst_242_a_1 - top.res.inst_241_a_1 - top.res.inst_240_a_1 - top.res.inst_239_a_1 - top.res.inst_238_a_1 - top.res.inst_237_a_1 - top.res.inst_236_a_1 - top.res.inst_235_a_1 - top.res.inst_234_a_1 - top.res.inst_233_a_1 - top.res.inst_232_a_1 - top.res.inst_231_a_1 - top.res.inst_230_a_1 - top.res.inst_229_a_1 - top.res.inst_228_a_1 - top.res.inst_227_a_1 - top.res.inst_226_a_1 - top.res.inst_225_a_1 - top.res.inst_224_a_1 - top.res.inst_223_a_1 - top.res.inst_222_a_1 - top.res.inst_221_a_1 - top.res.inst_220_a_1 - top.res.inst_219_a_1 - top.res.inst_218_a_1 - top.res.inst_217_a_1 - top.res.inst_216_a_1 - top.res.inst_215_a_1 - top.res.inst_214_a_1 - top.res.inst_213_a_1 - top.res.inst_212_a_1 - top.res.inst_211_a_1 - top.res.inst_210_a_1 - top.res.inst_209_a_1 - top.res.inst_208_a_1 - top.res.inst_207_a_1 - top.res.inst_206_a_1 - top.res.inst_205_a_1 - top.res.inst_204_a_1 - top.res.inst_203_a_1 - top.res.inst_202_a_1 - top.res.inst_201_a_1 - top.res.inst_200_a_1 - top.res.inst_199_a_1 - top.res.inst_198_a_1 - top.res.inst_197_a_1 - top.res.inst_196_a_1 - top.res.inst_195_a_1 - top.res.inst_194_a_1 - top.res.inst_193_a_1 - top.res.inst_192_a_1 - top.res.inst_191_a_1 - top.res.inst_190_a_1 - top.res.inst_189_a_1 - top.res.inst_188_a_1 - top.res.inst_187_a_1 - top.res.inst_186_a_1 - top.res.inst_185_a_1 - top.res.inst_184_a_1 - top.res.inst_183_a_1 - top.res.inst_182_a_1 - top.res.inst_181_a_1 - top.res.inst_180_a_1 - top.res.inst_179_a_1 - top.res.inst_178_a_1 - top.res.inst_177_a_1 - top.res.inst_176_a_1 - top.res.inst_175_a_1 - top.res.inst_174_a_1 - top.res.inst_173_a_1 - top.res.inst_172_a_1 - top.res.inst_171_a_1 - top.res.inst_170_a_1 - top.res.inst_169_a_1 - top.res.inst_168_a_1 - top.res.inst_167_a_1 - top.res.inst_166_a_1 - top.res.inst_165_a_1 - top.res.inst_164_a_1 - top.res.inst_163_a_1 - top.res.inst_162_a_1 - top.res.inst_161_a_1 - top.res.inst_160_a_1 - top.res.inst_159_a_1 - top.res.inst_158_a_1 - top.res.inst_157_a_1 - top.res.inst_156_a_1 - top.res.inst_155_a_1 - top.res.inst_154_a_1 - top.res.inst_153_a_1 - top.res.inst_152_a_1 - top.res.inst_151_a_1 - top.res.inst_150_a_1 - top.res.inst_149_a_1 - top.res.inst_148_a_1 - top.res.inst_147_a_1 - top.res.inst_146_a_1 - top.res.inst_145_a_1 - top.res.inst_144_a_1 - top.res.inst_143_a_1 - top.res.inst_142_a_1 - top.res.inst_141_a_1 - top.res.inst_140_a_1 - top.res.inst_139_a_1 - top.res.inst_138_a_1 - top.res.inst_137_a_1 - top.res.inst_136_a_1 - top.res.inst_135_a_1 - top.res.inst_134_a_1 - top.res.inst_133_a_1 - top.res.inst_132_a_1 - top.res.inst_131_a_1 - top.res.inst_130_a_1 - top.res.inst_129_a_1 - top.res.inst_128_a_1 - top.res.inst_127_a_1 - top.res.inst_126_a_1 - top.res.inst_125_a_1 - top.res.inst_124_a_1 - top.res.inst_123_a_1 - top.res.inst_122_a_1 - top.res.inst_121_a_1 - top.res.inst_120_a_1 - top.res.inst_119_a_1 - top.res.inst_118_a_1 - top.res.inst_117_a_1 - top.res.inst_116_a_1 - top.res.inst_115_a_1 - top.res.inst_114_a_1 - top.res.inst_113_a_1 - top.res.inst_112_a_1 - top.res.inst_111_a_1 - top.res.inst_110_a_1 - top.res.inst_109_a_1 - top.res.inst_108_a_1 - top.res.inst_107_a_1 - top.res.inst_106_a_1 - top.res.inst_105_a_1 - top.res.inst_104_a_1 - top.res.inst_103_a_1 - top.res.inst_102_a_1 - top.res.inst_101_a_1 - top.res.inst_100_a_1 - top.res.inst_99_a_1 - top.res.inst_98_a_1 - top.res.inst_97_a_1 - top.res.inst_96_a_1 - top.res.inst_95_a_1 - top.res.inst_94_a_1 - top.res.inst_93_a_1 - top.res.inst_92_a_1 - top.res.inst_91_a_1 - top.res.inst_90_a_1 - top.res.inst_89_a_1 - top.res.inst_88_a_1 - top.res.inst_87_a_1 - top.res.inst_86_a_1 - top.res.inst_85_a_1 - top.res.inst_84_a_1 - top.res.inst_83_a_1 - top.res.inst_82_a_1 - top.res.inst_81_a_1 - top.res.inst_80_a_1 - top.res.inst_79_a_1 - top.res.inst_78_a_1 - top.res.inst_77_a_1 - top.res.inst_76_a_1 - top.res.inst_75_a_1 - top.res.inst_74_a_1 - top.res.inst_73_a_1 - top.res.inst_72_a_1 - top.res.inst_71_a_1 - top.res.inst_70_a_1 - top.res.inst_69_a_1 - top.res.inst_68_a_1 - top.res.inst_67_a_1 - top.res.inst_66_a_1 - top.res.inst_65_a_1 - top.res.inst_64_a_1 - top.res.inst_63_a_1 - top.res.inst_62_a_1 - top.res.inst_61_a_1 - top.res.inst_60_a_1 - top.res.inst_59_a_1 - top.res.inst_58_a_1 - top.res.inst_57_a_1 - top.res.inst_56_a_1 - top.res.inst_55_a_1 - top.res.inst_54_a_1 - top.res.inst_53_a_1 - top.res.inst_52_a_1 - top.res.inst_51_a_1 - top.res.inst_50_a_1 - top.res.inst_49_a_1 - top.res.inst_48_a_1 - top.res.inst_47_a_1 - top.res.inst_46_a_1 - top.res.inst_45_a_1 - top.res.inst_44_a_1 - top.res.inst_43_a_1 - top.res.inst_42_a_1 - top.res.inst_41_a_1 - top.res.inst_40_a_1 - top.res.inst_39_a_1 - top.res.inst_38_a_1 - top.res.inst_37_a_1 - top.res.inst_36_a_1 - top.res.inst_35_a_1 - top.res.inst_34_a_1 - top.res.inst_33_a_1 - top.res.inst_32_a_1 - top.res.inst_31_a_1 - top.res.inst_30_a_1 - top.res.inst_29_a_1 - top.res.inst_28_a_1 - top.res.inst_27_a_1 - top.res.inst_26_a_1 - top.res.inst_25_a_1 - top.res.inst_24_a_1 - top.res.inst_23_a_1 - top.res.inst_22_a_1 - top.res.inst_21_a_1 - top.res.inst_20_a_1 - top.res.inst_19_a_1 - top.res.inst_18_a_1 - top.res.inst_17_a_1 - top.res.inst_16_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.stop_a_0 - top.usr.steam_boiler_waiting_a_0 - top.usr.physical_units_ready_a_0 - top.usr.level_a_0 - top.usr.steam_a_0 - top.usr.pump_state_0_a_0 - top.usr.pump_state_1_a_0 - top.usr.pump_state_2_a_0 - top.usr.pump_state_3_a_0 - top.usr.pump_control_state_0_a_0 - top.usr.pump_control_state_1_a_0 - top.usr.pump_control_state_2_a_0 - top.usr.pump_control_state_3_a_0 - top.usr.pump_repaired_0_a_0 - top.usr.pump_repaired_1_a_0 - top.usr.pump_repaired_2_a_0 - top.usr.pump_repaired_3_a_0 - top.usr.pump_control_repaired_0_a_0 - top.usr.pump_control_repaired_1_a_0 - top.usr.pump_control_repaired_2_a_0 - top.usr.pump_control_repaired_3_a_0 - top.usr.level_repaired_a_0 - top.usr.steam_repaired_a_0 - top.usr.pump_failure_acknowledgement_0_a_0 - top.usr.pump_failure_acknowledgement_1_a_0 - top.usr.pump_failure_acknowledgement_2_a_0 - top.usr.pump_failure_acknowledgement_3_a_0 - top.usr.pump_control_failure_acknowledgement_0_a_0 - top.usr.pump_control_failure_acknowledgement_1_a_0 - top.usr.pump_control_failure_acknowledgement_2_a_0 - top.usr.pump_control_failure_acknowledgement_3_a_0 - top.usr.level_failure_acknowledgement_a_0 - top.usr.steam_failure_acknowledgement_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.abs_13_a_0 - top.res.abs_14_a_0 - top.res.abs_15_a_0 - top.res.abs_16_a_0 - top.res.abs_17_a_0 - top.res.abs_18_a_0 - top.res.abs_19_a_0 - top.res.abs_20_a_0 - top.res.abs_21_a_0 - top.res.abs_22_a_0 - top.res.abs_23_a_0 - top.res.abs_24_a_0 - top.res.abs_25_a_0 - top.res.abs_26_a_0 - top.res.abs_27_a_0 - top.res.abs_28_a_0 - top.res.abs_29_a_0 - top.res.abs_30_a_0 - top.res.inst_297_a_0 - top.res.inst_296_a_0 - top.res.inst_295_a_0 - top.res.inst_294_a_0 - top.res.inst_293_a_0 - top.res.inst_292_a_0 - top.res.inst_291_a_0 - top.res.inst_290_a_0 - top.res.inst_289_a_0 - top.res.inst_288_a_0 - top.res.inst_287_a_0 - top.res.inst_286_a_0 - top.res.inst_285_a_0 - top.res.inst_284_a_0 - top.res.inst_283_a_0 - top.res.inst_282_a_0 - top.res.inst_281_a_0 - top.res.inst_280_a_0 - top.res.inst_279_a_0 - top.res.inst_278_a_0 - top.res.inst_277_a_0 - top.res.inst_276_a_0 - top.res.inst_275_a_0 - top.res.inst_274_a_0 - top.res.inst_273_a_0 - top.res.inst_272_a_0 - top.res.inst_271_a_0 - top.res.inst_270_a_0 - top.res.inst_269_a_0 - top.res.inst_268_a_0 - top.res.inst_267_a_0 - top.res.inst_266_a_0 - top.res.inst_265_a_0 - top.res.inst_264_a_0 - top.res.inst_263_a_0 - top.res.inst_262_a_0 - top.res.inst_261_a_0 - top.res.inst_260_a_0 - top.res.inst_259_a_0 - top.res.inst_258_a_0 - top.res.inst_257_a_0 - top.res.inst_256_a_0 - top.res.inst_255_a_0 - top.res.inst_254_a_0 - top.res.inst_253_a_0 - top.res.inst_252_a_0 - top.res.inst_251_a_0 - top.res.inst_250_a_0 - top.res.inst_249_a_0 - top.res.inst_248_a_0 - top.res.inst_247_a_0 - top.res.inst_246_a_0 - top.res.inst_245_a_0 - top.res.inst_244_a_0 - top.res.inst_243_a_0 - top.res.inst_242_a_0 - top.res.inst_241_a_0 - top.res.inst_240_a_0 - top.res.inst_239_a_0 - top.res.inst_238_a_0 - top.res.inst_237_a_0 - top.res.inst_236_a_0 - top.res.inst_235_a_0 - top.res.inst_234_a_0 - top.res.inst_233_a_0 - top.res.inst_232_a_0 - top.res.inst_231_a_0 - top.res.inst_230_a_0 - top.res.inst_229_a_0 - top.res.inst_228_a_0 - top.res.inst_227_a_0 - top.res.inst_226_a_0 - top.res.inst_225_a_0 - top.res.inst_224_a_0 - top.res.inst_223_a_0 - top.res.inst_222_a_0 - top.res.inst_221_a_0 - top.res.inst_220_a_0 - top.res.inst_219_a_0 - top.res.inst_218_a_0 - top.res.inst_217_a_0 - top.res.inst_216_a_0 - top.res.inst_215_a_0 - top.res.inst_214_a_0 - top.res.inst_213_a_0 - top.res.inst_212_a_0 - top.res.inst_211_a_0 - top.res.inst_210_a_0 - top.res.inst_209_a_0 - top.res.inst_208_a_0 - top.res.inst_207_a_0 - top.res.inst_206_a_0 - top.res.inst_205_a_0 - top.res.inst_204_a_0 - top.res.inst_203_a_0 - top.res.inst_202_a_0 - top.res.inst_201_a_0 - top.res.inst_200_a_0 - top.res.inst_199_a_0 - top.res.inst_198_a_0 - top.res.inst_197_a_0 - top.res.inst_196_a_0 - top.res.inst_195_a_0 - top.res.inst_194_a_0 - top.res.inst_193_a_0 - top.res.inst_192_a_0 - top.res.inst_191_a_0 - top.res.inst_190_a_0 - top.res.inst_189_a_0 - top.res.inst_188_a_0 - top.res.inst_187_a_0 - top.res.inst_186_a_0 - top.res.inst_185_a_0 - top.res.inst_184_a_0 - top.res.inst_183_a_0 - top.res.inst_182_a_0 - top.res.inst_181_a_0 - top.res.inst_180_a_0 - top.res.inst_179_a_0 - top.res.inst_178_a_0 - top.res.inst_177_a_0 - top.res.inst_176_a_0 - top.res.inst_175_a_0 - top.res.inst_174_a_0 - top.res.inst_173_a_0 - top.res.inst_172_a_0 - top.res.inst_171_a_0 - top.res.inst_170_a_0 - top.res.inst_169_a_0 - top.res.inst_168_a_0 - top.res.inst_167_a_0 - top.res.inst_166_a_0 - top.res.inst_165_a_0 - top.res.inst_164_a_0 - top.res.inst_163_a_0 - top.res.inst_162_a_0 - top.res.inst_161_a_0 - top.res.inst_160_a_0 - top.res.inst_159_a_0 - top.res.inst_158_a_0 - top.res.inst_157_a_0 - top.res.inst_156_a_0 - top.res.inst_155_a_0 - top.res.inst_154_a_0 - top.res.inst_153_a_0 - top.res.inst_152_a_0 - top.res.inst_151_a_0 - top.res.inst_150_a_0 - top.res.inst_149_a_0 - top.res.inst_148_a_0 - top.res.inst_147_a_0 - top.res.inst_146_a_0 - top.res.inst_145_a_0 - top.res.inst_144_a_0 - top.res.inst_143_a_0 - top.res.inst_142_a_0 - top.res.inst_141_a_0 - top.res.inst_140_a_0 - top.res.inst_139_a_0 - top.res.inst_138_a_0 - top.res.inst_137_a_0 - top.res.inst_136_a_0 - top.res.inst_135_a_0 - top.res.inst_134_a_0 - top.res.inst_133_a_0 - top.res.inst_132_a_0 - top.res.inst_131_a_0 - top.res.inst_130_a_0 - top.res.inst_129_a_0 - top.res.inst_128_a_0 - top.res.inst_127_a_0 - top.res.inst_126_a_0 - top.res.inst_125_a_0 - top.res.inst_124_a_0 - top.res.inst_123_a_0 - top.res.inst_122_a_0 - top.res.inst_121_a_0 - top.res.inst_120_a_0 - top.res.inst_119_a_0 - top.res.inst_118_a_0 - top.res.inst_117_a_0 - top.res.inst_116_a_0 - top.res.inst_115_a_0 - top.res.inst_114_a_0 - top.res.inst_113_a_0 - top.res.inst_112_a_0 - top.res.inst_111_a_0 - top.res.inst_110_a_0 - top.res.inst_109_a_0 - top.res.inst_108_a_0 - top.res.inst_107_a_0 - top.res.inst_106_a_0 - top.res.inst_105_a_0 - top.res.inst_104_a_0 - top.res.inst_103_a_0 - top.res.inst_102_a_0 - top.res.inst_101_a_0 - top.res.inst_100_a_0 - top.res.inst_99_a_0 - top.res.inst_98_a_0 - top.res.inst_97_a_0 - top.res.inst_96_a_0 - top.res.inst_95_a_0 - top.res.inst_94_a_0 - top.res.inst_93_a_0 - top.res.inst_92_a_0 - top.res.inst_91_a_0 - top.res.inst_90_a_0 - top.res.inst_89_a_0 - top.res.inst_88_a_0 - top.res.inst_87_a_0 - top.res.inst_86_a_0 - top.res.inst_85_a_0 - top.res.inst_84_a_0 - top.res.inst_83_a_0 - top.res.inst_82_a_0 - top.res.inst_81_a_0 - top.res.inst_80_a_0 - top.res.inst_79_a_0 - top.res.inst_78_a_0 - top.res.inst_77_a_0 - top.res.inst_76_a_0 - top.res.inst_75_a_0 - top.res.inst_74_a_0 - top.res.inst_73_a_0 - top.res.inst_72_a_0 - top.res.inst_71_a_0 - top.res.inst_70_a_0 - top.res.inst_69_a_0 - top.res.inst_68_a_0 - top.res.inst_67_a_0 - top.res.inst_66_a_0 - top.res.inst_65_a_0 - top.res.inst_64_a_0 - top.res.inst_63_a_0 - top.res.inst_62_a_0 - top.res.inst_61_a_0 - top.res.inst_60_a_0 - top.res.inst_59_a_0 - top.res.inst_58_a_0 - top.res.inst_57_a_0 - top.res.inst_56_a_0 - top.res.inst_55_a_0 - top.res.inst_54_a_0 - top.res.inst_53_a_0 - top.res.inst_52_a_0 - top.res.inst_51_a_0 - top.res.inst_50_a_0 - top.res.inst_49_a_0 - top.res.inst_48_a_0 - top.res.inst_47_a_0 - top.res.inst_46_a_0 - top.res.inst_45_a_0 - top.res.inst_44_a_0 - top.res.inst_43_a_0 - top.res.inst_42_a_0 - top.res.inst_41_a_0 - top.res.inst_40_a_0 - top.res.inst_39_a_0 - top.res.inst_38_a_0 - top.res.inst_37_a_0 - top.res.inst_36_a_0 - top.res.inst_35_a_0 - top.res.inst_34_a_0 - top.res.inst_33_a_0 - top.res.inst_32_a_0 - top.res.inst_31_a_0 - top.res.inst_30_a_0 - top.res.inst_29_a_0 - top.res.inst_28_a_0 - top.res.inst_27_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_AND_0 - top.res.abs_31_a_1 - top.res.abs_32_a_1 - top.res.abs_33_a_1 - top.res.abs_34_a_1 - top.res.abs_35_a_1 - top.res.inst_1_a_1 - top.res.abs_31_a_0 - top.res.abs_32_a_0 - top.res.abs_33_a_0 - top.res.abs_34_a_0 - top.res.abs_35_a_0 - top.res.inst_1_a_0) - (__node_trans_AND_0 - top.res.abs_36_a_1 - top.res.abs_37_a_1 - top.res.abs_38_a_1 - top.res.abs_39_a_1 - top.res.abs_40_a_1 - top.res.inst_0_a_1 - top.res.abs_36_a_0 - top.res.abs_37_a_0 - top.res.abs_38_a_0 - top.res.abs_39_a_0 - top.res.abs_40_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))))))))))))))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.stop Bool) - (top.usr.steam_boiler_waiting Bool) - (top.usr.physical_units_ready Bool) - (top.usr.level Int) - (top.usr.steam Int) - (top.usr.pump_state_0 Int) - (top.usr.pump_state_1 Int) - (top.usr.pump_state_2 Int) - (top.usr.pump_state_3 Int) - (top.usr.pump_control_state_0 Bool) - (top.usr.pump_control_state_1 Bool) - (top.usr.pump_control_state_2 Bool) - (top.usr.pump_control_state_3 Bool) - (top.usr.pump_repaired_0 Bool) - (top.usr.pump_repaired_1 Bool) - (top.usr.pump_repaired_2 Bool) - (top.usr.pump_repaired_3 Bool) - (top.usr.pump_control_repaired_0 Bool) - (top.usr.pump_control_repaired_1 Bool) - (top.usr.pump_control_repaired_2 Bool) - (top.usr.pump_control_repaired_3 Bool) - (top.usr.level_repaired Bool) - (top.usr.steam_repaired Bool) - (top.usr.pump_failure_acknowledgement_0 Bool) - (top.usr.pump_failure_acknowledgement_1 Bool) - (top.usr.pump_failure_acknowledgement_2 Bool) - (top.usr.pump_failure_acknowledgement_3 Bool) - (top.usr.pump_control_failure_acknowledgement_0 Bool) - (top.usr.pump_control_failure_acknowledgement_1 Bool) - (top.usr.pump_control_failure_acknowledgement_2 Bool) - (top.usr.pump_control_failure_acknowledgement_3 Bool) - (top.usr.level_failure_acknowledgement Bool) - (top.usr.steam_failure_acknowledgement Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.abs_13 Bool) - (top.res.abs_14 Bool) - (top.res.abs_15 Bool) - (top.res.abs_16 Bool) - (top.res.abs_17 Bool) - (top.res.abs_18 Bool) - (top.res.abs_19 Bool) - (top.res.abs_20 Bool) - (top.res.abs_21 Bool) - (top.res.abs_22 Bool) - (top.res.abs_23 Bool) - (top.res.abs_24 Bool) - (top.res.abs_25 Bool) - (top.res.abs_26 Bool) - (top.res.abs_27 Bool) - (top.res.abs_28 Bool) - (top.res.abs_29 Bool) - (top.res.abs_30 Bool) - (top.res.abs_31 Bool) - (top.res.abs_32 Bool) - (top.res.abs_33 Bool) - (top.res.abs_34 Bool) - (top.res.abs_35 Bool) - (top.res.abs_36 Bool) - (top.res.abs_37 Bool) - (top.res.abs_38 Bool) - (top.res.abs_39 Bool) - (top.res.abs_40 Bool) - (top.res.inst_297 Bool) - (top.res.inst_296 Bool) - (top.res.inst_295 Int) - (top.res.inst_294 Int) - (top.res.inst_293 Int) - (top.res.inst_292 Int) - (top.res.inst_291 Int) - (top.res.inst_290 Int) - (top.res.inst_289 Int) - (top.res.inst_288 Int) - (top.res.inst_287 Int) - (top.res.inst_286 Int) - (top.res.inst_285 Int) - (top.res.inst_284 Int) - (top.res.inst_283 Int) - (top.res.inst_282 Int) - (top.res.inst_281 Int) - (top.res.inst_280 Int) - (top.res.inst_279 Int) - (top.res.inst_278 Bool) - (top.res.inst_277 Int) - (top.res.inst_276 Int) - (top.res.inst_275 Int) - (top.res.inst_274 Bool) - (top.res.inst_273 Bool) - (top.res.inst_272 Bool) - (top.res.inst_271 Bool) - (top.res.inst_270 Int) - (top.res.inst_269 Int) - (top.res.inst_268 Bool) - (top.res.inst_267 Int) - (top.res.inst_266 Int) - (top.res.inst_265 Bool) - (top.res.inst_264 Int) - (top.res.inst_263 Bool) - (top.res.inst_262 Bool) - (top.res.inst_261 Bool) - (top.res.inst_260 Bool) - (top.res.inst_259 Int) - (top.res.inst_258 Int) - (top.res.inst_257 Bool) - (top.res.inst_256 Int) - (top.res.inst_255 Int) - (top.res.inst_254 Bool) - (top.res.inst_253 Int) - (top.res.inst_252 Bool) - (top.res.inst_251 Bool) - (top.res.inst_250 Bool) - (top.res.inst_249 Bool) - (top.res.inst_248 Int) - (top.res.inst_247 Int) - (top.res.inst_246 Bool) - (top.res.inst_245 Int) - (top.res.inst_244 Int) - (top.res.inst_243 Bool) - (top.res.inst_242 Int) - (top.res.inst_241 Bool) - (top.res.inst_240 Bool) - (top.res.inst_239 Bool) - (top.res.inst_238 Bool) - (top.res.inst_237 Int) - (top.res.inst_236 Int) - (top.res.inst_235 Bool) - (top.res.inst_234 Int) - (top.res.inst_233 Int) - (top.res.inst_232 Bool) - (top.res.inst_231 Int) - (top.res.inst_230 Int) - (top.res.inst_229 Int) - (top.res.inst_228 Int) - (top.res.inst_227 Int) - (top.res.inst_226 Bool) - (top.res.inst_225 Bool) - (top.res.inst_224 Bool) - (top.res.inst_223 Bool) - (top.res.inst_222 Int) - (top.res.inst_221 Int) - (top.res.inst_220 Int) - (top.res.inst_219 Int) - (top.res.inst_218 Int) - (top.res.inst_217 Int) - (top.res.inst_216 Int) - (top.res.inst_215 Int) - (top.res.inst_214 Int) - (top.res.inst_213 Int) - (top.res.inst_212 Int) - (top.res.inst_211 Int) - (top.res.inst_210 Bool) - (top.res.inst_209 Int) - (top.res.inst_208 Bool) - (top.res.inst_207 Int) - (top.res.inst_206 Bool) - (top.res.inst_205 Bool) - (top.res.inst_204 Bool) - (top.res.inst_203 Bool) - (top.res.inst_202 Bool) - (top.res.inst_201 Bool) - (top.res.inst_200 Bool) - (top.res.inst_199 Bool) - (top.res.inst_198 Bool) - (top.res.inst_197 Bool) - (top.res.inst_196 Bool) - (top.res.inst_195 Bool) - (top.res.inst_194 Bool) - (top.res.inst_193 Bool) - (top.res.inst_192 Bool) - (top.res.inst_191 Bool) - (top.res.inst_190 Bool) - (top.res.inst_189 Bool) - (top.res.inst_188 Bool) - (top.res.inst_187 Bool) - (top.res.inst_186 Bool) - (top.res.inst_185 Bool) - (top.res.inst_184 Bool) - (top.res.inst_183 Bool) - (top.res.inst_182 Bool) - (top.res.inst_181 Bool) - (top.res.inst_180 Bool) - (top.res.inst_179 Bool) - (top.res.inst_178 Bool) - (top.res.inst_177 Bool) - (top.res.inst_176 Bool) - (top.res.inst_175 Bool) - (top.res.inst_174 Int) - (top.res.inst_173 Bool) - (top.res.inst_172 Bool) - (top.res.inst_171 Bool) - (top.res.inst_170 Bool) - (top.res.inst_169 Bool) - (top.res.inst_168 Bool) - (top.res.inst_167 Bool) - (top.res.inst_166 Bool) - (top.res.inst_165 Bool) - (top.res.inst_164 Bool) - (top.res.inst_163 Bool) - (top.res.inst_162 Bool) - (top.res.inst_161 Bool) - (top.res.inst_160 Bool) - (top.res.inst_159 Bool) - (top.res.inst_158 Bool) - (top.res.inst_157 Bool) - (top.res.inst_156 Bool) - (top.res.inst_155 Bool) - (top.res.inst_154 Bool) - (top.res.inst_153 Bool) - (top.res.inst_152 Bool) - (top.res.inst_151 Bool) - (top.res.inst_150 Bool) - (top.res.inst_149 Bool) - (top.res.inst_148 Bool) - (top.res.inst_147 Bool) - (top.res.inst_146 Bool) - (top.res.inst_145 Bool) - (top.res.inst_144 Bool) - (top.res.inst_143 Bool) - (top.res.inst_142 Bool) - (top.res.inst_141 Bool) - (top.res.inst_140 Bool) - (top.res.inst_139 Bool) - (top.res.inst_138 Bool) - (top.res.inst_137 Bool) - (top.res.inst_136 Bool) - (top.res.inst_135 Bool) - (top.res.inst_134 Bool) - (top.res.inst_133 Bool) - (top.res.inst_132 Bool) - (top.res.inst_131 Bool) - (top.res.inst_130 Bool) - (top.res.inst_129 Bool) - (top.res.inst_128 Bool) - (top.res.inst_127 Bool) - (top.res.inst_126 Bool) - (top.res.inst_125 Bool) - (top.res.inst_124 Bool) - (top.res.inst_123 Bool) - (top.res.inst_122 Int) - (top.res.inst_121 Bool) - (top.res.inst_120 Bool) - (top.res.inst_119 Int) - (top.res.inst_118 Int) - (top.res.inst_117 Bool) - (top.res.inst_116 Bool) - (top.res.inst_115 Bool) - (top.res.inst_114 Bool) - (top.res.inst_113 Int) - (top.res.inst_112 Int) - (top.res.inst_111 Bool) - (top.res.inst_110 Bool) - (top.res.inst_109 Bool) - (top.res.inst_108 Bool) - (top.res.inst_107 Bool) - (top.res.inst_106 Bool) - (top.res.inst_105 Bool) - (top.res.inst_104 Bool) - (top.res.inst_103 Int) - (top.res.inst_102 Int) - (top.res.inst_101 Int) - (top.res.inst_100 Int) - (top.res.inst_99 Bool) - (top.res.inst_98 Bool) - (top.res.inst_97 Bool) - (top.res.inst_96 Bool) - (top.res.inst_95 Int) - (top.res.inst_94 Int) - (top.res.inst_93 Int) - (top.res.inst_92 Int) - (top.res.inst_91 Int) - (top.res.inst_90 Int) - (top.res.inst_89 Int) - (top.res.inst_88 Int) - (top.res.inst_87 Int) - (top.res.inst_86 Int) - (top.res.inst_85 Bool) - (top.res.inst_84 Bool) - (top.res.inst_83 Bool) - (top.res.inst_82 Bool) - (top.res.inst_81 Int) - (top.res.inst_80 Int) - (top.res.inst_79 Int) - (top.res.inst_78 Int) - (top.res.inst_77 Bool) - (top.res.inst_76 Int) - (top.res.inst_75 Bool) - (top.res.inst_74 Int) - (top.res.inst_73 Bool) - (top.res.inst_72 Int) - (top.res.inst_71 Bool) - (top.res.inst_70 Int) - (top.res.inst_69 Bool) - (top.res.inst_68 Int) - (top.res.inst_67 Bool) - (top.res.inst_66 Int) - (top.res.inst_65 Bool) - (top.res.inst_64 Int) - (top.res.inst_63 Bool) - (top.res.inst_62 Int) - (top.res.inst_61 Bool) - (top.res.inst_60 Bool) - (top.res.inst_59 Bool) - (top.res.inst_58 Bool) - (top.res.inst_57 Bool) - (top.res.inst_56 Bool) - (top.res.inst_55 Bool) - (top.res.inst_54 Bool) - (top.res.inst_53 Bool) - (top.res.inst_52 Bool) - (top.res.inst_51 Bool) - (top.res.inst_50 Bool) - (top.res.inst_49 Int) - (top.res.inst_48 Bool) - (top.res.inst_47 Bool) - (top.res.inst_46 Bool) - (top.res.inst_45 Bool) - (top.res.inst_44 Bool) - (top.res.inst_43 Bool) - (top.res.inst_42 Bool) - (top.res.inst_41 Bool) - (top.res.inst_40 Bool) - (top.res.inst_39 Bool) - (top.res.inst_38 Bool) - (top.res.inst_37 Int) - (top.res.inst_36 Int) - (top.res.inst_35 Int) - (top.res.inst_34 Int) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Int) - (top.res.inst_23 Int) - (top.res.inst_22 Int) - (top.res.inst_21 Int) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Int) - (top.res.inst_10 Int) - (top.res.inst_9 Int) - (top.res.inst_8 Int) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_32 () Int) -(declare-fun top.res.nondet_31 () Int) -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.stop Bool) -(declare-primed-var top.usr.steam_boiler_waiting Bool) -(declare-primed-var top.usr.physical_units_ready Bool) -(declare-primed-var top.usr.level Int) -(declare-primed-var top.usr.steam Int) -(declare-primed-var top.usr.pump_state_0 Int) -(declare-primed-var top.usr.pump_state_1 Int) -(declare-primed-var top.usr.pump_state_2 Int) -(declare-primed-var top.usr.pump_state_3 Int) -(declare-primed-var top.usr.pump_control_state_0 Bool) -(declare-primed-var top.usr.pump_control_state_1 Bool) -(declare-primed-var top.usr.pump_control_state_2 Bool) -(declare-primed-var top.usr.pump_control_state_3 Bool) -(declare-primed-var top.usr.pump_repaired_0 Bool) -(declare-primed-var top.usr.pump_repaired_1 Bool) -(declare-primed-var top.usr.pump_repaired_2 Bool) -(declare-primed-var top.usr.pump_repaired_3 Bool) -(declare-primed-var top.usr.pump_control_repaired_0 Bool) -(declare-primed-var top.usr.pump_control_repaired_1 Bool) -(declare-primed-var top.usr.pump_control_repaired_2 Bool) -(declare-primed-var top.usr.pump_control_repaired_3 Bool) -(declare-primed-var top.usr.level_repaired Bool) -(declare-primed-var top.usr.steam_repaired Bool) -(declare-primed-var top.usr.pump_failure_acknowledgement_0 Bool) -(declare-primed-var top.usr.pump_failure_acknowledgement_1 Bool) -(declare-primed-var top.usr.pump_failure_acknowledgement_2 Bool) -(declare-primed-var top.usr.pump_failure_acknowledgement_3 Bool) -(declare-primed-var top.usr.pump_control_failure_acknowledgement_0 Bool) -(declare-primed-var top.usr.pump_control_failure_acknowledgement_1 Bool) -(declare-primed-var top.usr.pump_control_failure_acknowledgement_2 Bool) -(declare-primed-var top.usr.pump_control_failure_acknowledgement_3 Bool) -(declare-primed-var top.usr.level_failure_acknowledgement Bool) -(declare-primed-var top.usr.steam_failure_acknowledgement Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.abs_12 Bool) -(declare-primed-var top.res.abs_13 Bool) -(declare-primed-var top.res.abs_14 Bool) -(declare-primed-var top.res.abs_15 Bool) -(declare-primed-var top.res.abs_16 Bool) -(declare-primed-var top.res.abs_17 Bool) -(declare-primed-var top.res.abs_18 Bool) -(declare-primed-var top.res.abs_19 Bool) -(declare-primed-var top.res.abs_20 Bool) -(declare-primed-var top.res.abs_21 Bool) -(declare-primed-var top.res.abs_22 Bool) -(declare-primed-var top.res.abs_23 Bool) -(declare-primed-var top.res.abs_24 Bool) -(declare-primed-var top.res.abs_25 Bool) -(declare-primed-var top.res.abs_26 Bool) -(declare-primed-var top.res.abs_27 Bool) -(declare-primed-var top.res.abs_28 Bool) -(declare-primed-var top.res.abs_29 Bool) -(declare-primed-var top.res.abs_30 Bool) -(declare-primed-var top.res.abs_31 Bool) -(declare-primed-var top.res.abs_32 Bool) -(declare-primed-var top.res.abs_33 Bool) -(declare-primed-var top.res.abs_34 Bool) -(declare-primed-var top.res.abs_35 Bool) -(declare-primed-var top.res.abs_36 Bool) -(declare-primed-var top.res.abs_37 Bool) -(declare-primed-var top.res.abs_38 Bool) -(declare-primed-var top.res.abs_39 Bool) -(declare-primed-var top.res.abs_40 Bool) -(declare-primed-var top.res.inst_297 Bool) -(declare-primed-var top.res.inst_296 Bool) -(declare-primed-var top.res.inst_295 Int) -(declare-primed-var top.res.inst_294 Int) -(declare-primed-var top.res.inst_293 Int) -(declare-primed-var top.res.inst_292 Int) -(declare-primed-var top.res.inst_291 Int) -(declare-primed-var top.res.inst_290 Int) -(declare-primed-var top.res.inst_289 Int) -(declare-primed-var top.res.inst_288 Int) -(declare-primed-var top.res.inst_287 Int) -(declare-primed-var top.res.inst_286 Int) -(declare-primed-var top.res.inst_285 Int) -(declare-primed-var top.res.inst_284 Int) -(declare-primed-var top.res.inst_283 Int) -(declare-primed-var top.res.inst_282 Int) -(declare-primed-var top.res.inst_281 Int) -(declare-primed-var top.res.inst_280 Int) -(declare-primed-var top.res.inst_279 Int) -(declare-primed-var top.res.inst_278 Bool) -(declare-primed-var top.res.inst_277 Int) -(declare-primed-var top.res.inst_276 Int) -(declare-primed-var top.res.inst_275 Int) -(declare-primed-var top.res.inst_274 Bool) -(declare-primed-var top.res.inst_273 Bool) -(declare-primed-var top.res.inst_272 Bool) -(declare-primed-var top.res.inst_271 Bool) -(declare-primed-var top.res.inst_270 Int) -(declare-primed-var top.res.inst_269 Int) -(declare-primed-var top.res.inst_268 Bool) -(declare-primed-var top.res.inst_267 Int) -(declare-primed-var top.res.inst_266 Int) -(declare-primed-var top.res.inst_265 Bool) -(declare-primed-var top.res.inst_264 Int) -(declare-primed-var top.res.inst_263 Bool) -(declare-primed-var top.res.inst_262 Bool) -(declare-primed-var top.res.inst_261 Bool) -(declare-primed-var top.res.inst_260 Bool) -(declare-primed-var top.res.inst_259 Int) -(declare-primed-var top.res.inst_258 Int) -(declare-primed-var top.res.inst_257 Bool) -(declare-primed-var top.res.inst_256 Int) -(declare-primed-var top.res.inst_255 Int) -(declare-primed-var top.res.inst_254 Bool) -(declare-primed-var top.res.inst_253 Int) -(declare-primed-var top.res.inst_252 Bool) -(declare-primed-var top.res.inst_251 Bool) -(declare-primed-var top.res.inst_250 Bool) -(declare-primed-var top.res.inst_249 Bool) -(declare-primed-var top.res.inst_248 Int) -(declare-primed-var top.res.inst_247 Int) -(declare-primed-var top.res.inst_246 Bool) -(declare-primed-var top.res.inst_245 Int) -(declare-primed-var top.res.inst_244 Int) -(declare-primed-var top.res.inst_243 Bool) -(declare-primed-var top.res.inst_242 Int) -(declare-primed-var top.res.inst_241 Bool) -(declare-primed-var top.res.inst_240 Bool) -(declare-primed-var top.res.inst_239 Bool) -(declare-primed-var top.res.inst_238 Bool) -(declare-primed-var top.res.inst_237 Int) -(declare-primed-var top.res.inst_236 Int) -(declare-primed-var top.res.inst_235 Bool) -(declare-primed-var top.res.inst_234 Int) -(declare-primed-var top.res.inst_233 Int) -(declare-primed-var top.res.inst_232 Bool) -(declare-primed-var top.res.inst_231 Int) -(declare-primed-var top.res.inst_230 Int) -(declare-primed-var top.res.inst_229 Int) -(declare-primed-var top.res.inst_228 Int) -(declare-primed-var top.res.inst_227 Int) -(declare-primed-var top.res.inst_226 Bool) -(declare-primed-var top.res.inst_225 Bool) -(declare-primed-var top.res.inst_224 Bool) -(declare-primed-var top.res.inst_223 Bool) -(declare-primed-var top.res.inst_222 Int) -(declare-primed-var top.res.inst_221 Int) -(declare-primed-var top.res.inst_220 Int) -(declare-primed-var top.res.inst_219 Int) -(declare-primed-var top.res.inst_218 Int) -(declare-primed-var top.res.inst_217 Int) -(declare-primed-var top.res.inst_216 Int) -(declare-primed-var top.res.inst_215 Int) -(declare-primed-var top.res.inst_214 Int) -(declare-primed-var top.res.inst_213 Int) -(declare-primed-var top.res.inst_212 Int) -(declare-primed-var top.res.inst_211 Int) -(declare-primed-var top.res.inst_210 Bool) -(declare-primed-var top.res.inst_209 Int) -(declare-primed-var top.res.inst_208 Bool) -(declare-primed-var top.res.inst_207 Int) -(declare-primed-var top.res.inst_206 Bool) -(declare-primed-var top.res.inst_205 Bool) -(declare-primed-var top.res.inst_204 Bool) -(declare-primed-var top.res.inst_203 Bool) -(declare-primed-var top.res.inst_202 Bool) -(declare-primed-var top.res.inst_201 Bool) -(declare-primed-var top.res.inst_200 Bool) -(declare-primed-var top.res.inst_199 Bool) -(declare-primed-var top.res.inst_198 Bool) -(declare-primed-var top.res.inst_197 Bool) -(declare-primed-var top.res.inst_196 Bool) -(declare-primed-var top.res.inst_195 Bool) -(declare-primed-var top.res.inst_194 Bool) -(declare-primed-var top.res.inst_193 Bool) -(declare-primed-var top.res.inst_192 Bool) -(declare-primed-var top.res.inst_191 Bool) -(declare-primed-var top.res.inst_190 Bool) -(declare-primed-var top.res.inst_189 Bool) -(declare-primed-var top.res.inst_188 Bool) -(declare-primed-var top.res.inst_187 Bool) -(declare-primed-var top.res.inst_186 Bool) -(declare-primed-var top.res.inst_185 Bool) -(declare-primed-var top.res.inst_184 Bool) -(declare-primed-var top.res.inst_183 Bool) -(declare-primed-var top.res.inst_182 Bool) -(declare-primed-var top.res.inst_181 Bool) -(declare-primed-var top.res.inst_180 Bool) -(declare-primed-var top.res.inst_179 Bool) -(declare-primed-var top.res.inst_178 Bool) -(declare-primed-var top.res.inst_177 Bool) -(declare-primed-var top.res.inst_176 Bool) -(declare-primed-var top.res.inst_175 Bool) -(declare-primed-var top.res.inst_174 Int) -(declare-primed-var top.res.inst_173 Bool) -(declare-primed-var top.res.inst_172 Bool) -(declare-primed-var top.res.inst_171 Bool) -(declare-primed-var top.res.inst_170 Bool) -(declare-primed-var top.res.inst_169 Bool) -(declare-primed-var top.res.inst_168 Bool) -(declare-primed-var top.res.inst_167 Bool) -(declare-primed-var top.res.inst_166 Bool) -(declare-primed-var top.res.inst_165 Bool) -(declare-primed-var top.res.inst_164 Bool) -(declare-primed-var top.res.inst_163 Bool) -(declare-primed-var top.res.inst_162 Bool) -(declare-primed-var top.res.inst_161 Bool) -(declare-primed-var top.res.inst_160 Bool) -(declare-primed-var top.res.inst_159 Bool) -(declare-primed-var top.res.inst_158 Bool) -(declare-primed-var top.res.inst_157 Bool) -(declare-primed-var top.res.inst_156 Bool) -(declare-primed-var top.res.inst_155 Bool) -(declare-primed-var top.res.inst_154 Bool) -(declare-primed-var top.res.inst_153 Bool) -(declare-primed-var top.res.inst_152 Bool) -(declare-primed-var top.res.inst_151 Bool) -(declare-primed-var top.res.inst_150 Bool) -(declare-primed-var top.res.inst_149 Bool) -(declare-primed-var top.res.inst_148 Bool) -(declare-primed-var top.res.inst_147 Bool) -(declare-primed-var top.res.inst_146 Bool) -(declare-primed-var top.res.inst_145 Bool) -(declare-primed-var top.res.inst_144 Bool) -(declare-primed-var top.res.inst_143 Bool) -(declare-primed-var top.res.inst_142 Bool) -(declare-primed-var top.res.inst_141 Bool) -(declare-primed-var top.res.inst_140 Bool) -(declare-primed-var top.res.inst_139 Bool) -(declare-primed-var top.res.inst_138 Bool) -(declare-primed-var top.res.inst_137 Bool) -(declare-primed-var top.res.inst_136 Bool) -(declare-primed-var top.res.inst_135 Bool) -(declare-primed-var top.res.inst_134 Bool) -(declare-primed-var top.res.inst_133 Bool) -(declare-primed-var top.res.inst_132 Bool) -(declare-primed-var top.res.inst_131 Bool) -(declare-primed-var top.res.inst_130 Bool) -(declare-primed-var top.res.inst_129 Bool) -(declare-primed-var top.res.inst_128 Bool) -(declare-primed-var top.res.inst_127 Bool) -(declare-primed-var top.res.inst_126 Bool) -(declare-primed-var top.res.inst_125 Bool) -(declare-primed-var top.res.inst_124 Bool) -(declare-primed-var top.res.inst_123 Bool) -(declare-primed-var top.res.inst_122 Int) -(declare-primed-var top.res.inst_121 Bool) -(declare-primed-var top.res.inst_120 Bool) -(declare-primed-var top.res.inst_119 Int) -(declare-primed-var top.res.inst_118 Int) -(declare-primed-var top.res.inst_117 Bool) -(declare-primed-var top.res.inst_116 Bool) -(declare-primed-var top.res.inst_115 Bool) -(declare-primed-var top.res.inst_114 Bool) -(declare-primed-var top.res.inst_113 Int) -(declare-primed-var top.res.inst_112 Int) -(declare-primed-var top.res.inst_111 Bool) -(declare-primed-var top.res.inst_110 Bool) -(declare-primed-var top.res.inst_109 Bool) -(declare-primed-var top.res.inst_108 Bool) -(declare-primed-var top.res.inst_107 Bool) -(declare-primed-var top.res.inst_106 Bool) -(declare-primed-var top.res.inst_105 Bool) -(declare-primed-var top.res.inst_104 Bool) -(declare-primed-var top.res.inst_103 Int) -(declare-primed-var top.res.inst_102 Int) -(declare-primed-var top.res.inst_101 Int) -(declare-primed-var top.res.inst_100 Int) -(declare-primed-var top.res.inst_99 Bool) -(declare-primed-var top.res.inst_98 Bool) -(declare-primed-var top.res.inst_97 Bool) -(declare-primed-var top.res.inst_96 Bool) -(declare-primed-var top.res.inst_95 Int) -(declare-primed-var top.res.inst_94 Int) -(declare-primed-var top.res.inst_93 Int) -(declare-primed-var top.res.inst_92 Int) -(declare-primed-var top.res.inst_91 Int) -(declare-primed-var top.res.inst_90 Int) -(declare-primed-var top.res.inst_89 Int) -(declare-primed-var top.res.inst_88 Int) -(declare-primed-var top.res.inst_87 Int) -(declare-primed-var top.res.inst_86 Int) -(declare-primed-var top.res.inst_85 Bool) -(declare-primed-var top.res.inst_84 Bool) -(declare-primed-var top.res.inst_83 Bool) -(declare-primed-var top.res.inst_82 Bool) -(declare-primed-var top.res.inst_81 Int) -(declare-primed-var top.res.inst_80 Int) -(declare-primed-var top.res.inst_79 Int) -(declare-primed-var top.res.inst_78 Int) -(declare-primed-var top.res.inst_77 Bool) -(declare-primed-var top.res.inst_76 Int) -(declare-primed-var top.res.inst_75 Bool) -(declare-primed-var top.res.inst_74 Int) -(declare-primed-var top.res.inst_73 Bool) -(declare-primed-var top.res.inst_72 Int) -(declare-primed-var top.res.inst_71 Bool) -(declare-primed-var top.res.inst_70 Int) -(declare-primed-var top.res.inst_69 Bool) -(declare-primed-var top.res.inst_68 Int) -(declare-primed-var top.res.inst_67 Bool) -(declare-primed-var top.res.inst_66 Int) -(declare-primed-var top.res.inst_65 Bool) -(declare-primed-var top.res.inst_64 Int) -(declare-primed-var top.res.inst_63 Bool) -(declare-primed-var top.res.inst_62 Int) -(declare-primed-var top.res.inst_61 Bool) -(declare-primed-var top.res.inst_60 Bool) -(declare-primed-var top.res.inst_59 Bool) -(declare-primed-var top.res.inst_58 Bool) -(declare-primed-var top.res.inst_57 Bool) -(declare-primed-var top.res.inst_56 Bool) -(declare-primed-var top.res.inst_55 Bool) -(declare-primed-var top.res.inst_54 Bool) -(declare-primed-var top.res.inst_53 Bool) -(declare-primed-var top.res.inst_52 Bool) -(declare-primed-var top.res.inst_51 Bool) -(declare-primed-var top.res.inst_50 Bool) -(declare-primed-var top.res.inst_49 Int) -(declare-primed-var top.res.inst_48 Bool) -(declare-primed-var top.res.inst_47 Bool) -(declare-primed-var top.res.inst_46 Bool) -(declare-primed-var top.res.inst_45 Bool) -(declare-primed-var top.res.inst_44 Bool) -(declare-primed-var top.res.inst_43 Bool) -(declare-primed-var top.res.inst_42 Bool) -(declare-primed-var top.res.inst_41 Bool) -(declare-primed-var top.res.inst_40 Bool) -(declare-primed-var top.res.inst_39 Bool) -(declare-primed-var top.res.inst_38 Bool) -(declare-primed-var top.res.inst_37 Int) -(declare-primed-var top.res.inst_36 Int) -(declare-primed-var top.res.inst_35 Int) -(declare-primed-var top.res.inst_34 Int) -(declare-primed-var top.res.inst_33 Bool) -(declare-primed-var top.res.inst_32 Bool) -(declare-primed-var top.res.inst_31 Bool) -(declare-primed-var top.res.inst_30 Bool) -(declare-primed-var top.res.inst_29 Bool) -(declare-primed-var top.res.inst_28 Bool) -(declare-primed-var top.res.inst_27 Bool) -(declare-primed-var top.res.inst_26 Bool) -(declare-primed-var top.res.inst_25 Bool) -(declare-primed-var top.res.inst_24 Int) -(declare-primed-var top.res.inst_23 Int) -(declare-primed-var top.res.inst_22 Int) -(declare-primed-var top.res.inst_21 Int) -(declare-primed-var top.res.inst_20 Bool) -(declare-primed-var top.res.inst_19 Bool) -(declare-primed-var top.res.inst_18 Bool) -(declare-primed-var top.res.inst_17 Bool) -(declare-primed-var top.res.inst_16 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Bool) -(declare-primed-var top.res.inst_11 Int) -(declare-primed-var top.res.inst_10 Int) -(declare-primed-var top.res.inst_9 Int) -(declare-primed-var top.res.inst_8 Int) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Bool) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.stop Bool) - (top.usr.steam_boiler_waiting Bool) - (top.usr.physical_units_ready Bool) - (top.usr.level Int) - (top.usr.steam Int) - (top.usr.pump_state_0 Int) - (top.usr.pump_state_1 Int) - (top.usr.pump_state_2 Int) - (top.usr.pump_state_3 Int) - (top.usr.pump_control_state_0 Bool) - (top.usr.pump_control_state_1 Bool) - (top.usr.pump_control_state_2 Bool) - (top.usr.pump_control_state_3 Bool) - (top.usr.pump_repaired_0 Bool) - (top.usr.pump_repaired_1 Bool) - (top.usr.pump_repaired_2 Bool) - (top.usr.pump_repaired_3 Bool) - (top.usr.pump_control_repaired_0 Bool) - (top.usr.pump_control_repaired_1 Bool) - (top.usr.pump_control_repaired_2 Bool) - (top.usr.pump_control_repaired_3 Bool) - (top.usr.level_repaired Bool) - (top.usr.steam_repaired Bool) - (top.usr.pump_failure_acknowledgement_0 Bool) - (top.usr.pump_failure_acknowledgement_1 Bool) - (top.usr.pump_failure_acknowledgement_2 Bool) - (top.usr.pump_failure_acknowledgement_3 Bool) - (top.usr.pump_control_failure_acknowledgement_0 Bool) - (top.usr.pump_control_failure_acknowledgement_1 Bool) - (top.usr.pump_control_failure_acknowledgement_2 Bool) - (top.usr.pump_control_failure_acknowledgement_3 Bool) - (top.usr.level_failure_acknowledgement Bool) - (top.usr.steam_failure_acknowledgement Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.abs_13 Bool) - (top.res.abs_14 Bool) - (top.res.abs_15 Bool) - (top.res.abs_16 Bool) - (top.res.abs_17 Bool) - (top.res.abs_18 Bool) - (top.res.abs_19 Bool) - (top.res.abs_20 Bool) - (top.res.abs_21 Bool) - (top.res.abs_22 Bool) - (top.res.abs_23 Bool) - (top.res.abs_24 Bool) - (top.res.abs_25 Bool) - (top.res.abs_26 Bool) - (top.res.abs_27 Bool) - (top.res.abs_28 Bool) - (top.res.abs_29 Bool) - (top.res.abs_30 Bool) - (top.res.abs_31 Bool) - (top.res.abs_32 Bool) - (top.res.abs_33 Bool) - (top.res.abs_34 Bool) - (top.res.abs_35 Bool) - (top.res.abs_36 Bool) - (top.res.abs_37 Bool) - (top.res.abs_38 Bool) - (top.res.abs_39 Bool) - (top.res.abs_40 Bool) - (top.res.inst_297 Bool) - (top.res.inst_296 Bool) - (top.res.inst_295 Int) - (top.res.inst_294 Int) - (top.res.inst_293 Int) - (top.res.inst_292 Int) - (top.res.inst_291 Int) - (top.res.inst_290 Int) - (top.res.inst_289 Int) - (top.res.inst_288 Int) - (top.res.inst_287 Int) - (top.res.inst_286 Int) - (top.res.inst_285 Int) - (top.res.inst_284 Int) - (top.res.inst_283 Int) - (top.res.inst_282 Int) - (top.res.inst_281 Int) - (top.res.inst_280 Int) - (top.res.inst_279 Int) - (top.res.inst_278 Bool) - (top.res.inst_277 Int) - (top.res.inst_276 Int) - (top.res.inst_275 Int) - (top.res.inst_274 Bool) - (top.res.inst_273 Bool) - (top.res.inst_272 Bool) - (top.res.inst_271 Bool) - (top.res.inst_270 Int) - (top.res.inst_269 Int) - (top.res.inst_268 Bool) - (top.res.inst_267 Int) - (top.res.inst_266 Int) - (top.res.inst_265 Bool) - (top.res.inst_264 Int) - (top.res.inst_263 Bool) - (top.res.inst_262 Bool) - (top.res.inst_261 Bool) - (top.res.inst_260 Bool) - (top.res.inst_259 Int) - (top.res.inst_258 Int) - (top.res.inst_257 Bool) - (top.res.inst_256 Int) - (top.res.inst_255 Int) - (top.res.inst_254 Bool) - (top.res.inst_253 Int) - (top.res.inst_252 Bool) - (top.res.inst_251 Bool) - (top.res.inst_250 Bool) - (top.res.inst_249 Bool) - (top.res.inst_248 Int) - (top.res.inst_247 Int) - (top.res.inst_246 Bool) - (top.res.inst_245 Int) - (top.res.inst_244 Int) - (top.res.inst_243 Bool) - (top.res.inst_242 Int) - (top.res.inst_241 Bool) - (top.res.inst_240 Bool) - (top.res.inst_239 Bool) - (top.res.inst_238 Bool) - (top.res.inst_237 Int) - (top.res.inst_236 Int) - (top.res.inst_235 Bool) - (top.res.inst_234 Int) - (top.res.inst_233 Int) - (top.res.inst_232 Bool) - (top.res.inst_231 Int) - (top.res.inst_230 Int) - (top.res.inst_229 Int) - (top.res.inst_228 Int) - (top.res.inst_227 Int) - (top.res.inst_226 Bool) - (top.res.inst_225 Bool) - (top.res.inst_224 Bool) - (top.res.inst_223 Bool) - (top.res.inst_222 Int) - (top.res.inst_221 Int) - (top.res.inst_220 Int) - (top.res.inst_219 Int) - (top.res.inst_218 Int) - (top.res.inst_217 Int) - (top.res.inst_216 Int) - (top.res.inst_215 Int) - (top.res.inst_214 Int) - (top.res.inst_213 Int) - (top.res.inst_212 Int) - (top.res.inst_211 Int) - (top.res.inst_210 Bool) - (top.res.inst_209 Int) - (top.res.inst_208 Bool) - (top.res.inst_207 Int) - (top.res.inst_206 Bool) - (top.res.inst_205 Bool) - (top.res.inst_204 Bool) - (top.res.inst_203 Bool) - (top.res.inst_202 Bool) - (top.res.inst_201 Bool) - (top.res.inst_200 Bool) - (top.res.inst_199 Bool) - (top.res.inst_198 Bool) - (top.res.inst_197 Bool) - (top.res.inst_196 Bool) - (top.res.inst_195 Bool) - (top.res.inst_194 Bool) - (top.res.inst_193 Bool) - (top.res.inst_192 Bool) - (top.res.inst_191 Bool) - (top.res.inst_190 Bool) - (top.res.inst_189 Bool) - (top.res.inst_188 Bool) - (top.res.inst_187 Bool) - (top.res.inst_186 Bool) - (top.res.inst_185 Bool) - (top.res.inst_184 Bool) - (top.res.inst_183 Bool) - (top.res.inst_182 Bool) - (top.res.inst_181 Bool) - (top.res.inst_180 Bool) - (top.res.inst_179 Bool) - (top.res.inst_178 Bool) - (top.res.inst_177 Bool) - (top.res.inst_176 Bool) - (top.res.inst_175 Bool) - (top.res.inst_174 Int) - (top.res.inst_173 Bool) - (top.res.inst_172 Bool) - (top.res.inst_171 Bool) - (top.res.inst_170 Bool) - (top.res.inst_169 Bool) - (top.res.inst_168 Bool) - (top.res.inst_167 Bool) - (top.res.inst_166 Bool) - (top.res.inst_165 Bool) - (top.res.inst_164 Bool) - (top.res.inst_163 Bool) - (top.res.inst_162 Bool) - (top.res.inst_161 Bool) - (top.res.inst_160 Bool) - (top.res.inst_159 Bool) - (top.res.inst_158 Bool) - (top.res.inst_157 Bool) - (top.res.inst_156 Bool) - (top.res.inst_155 Bool) - (top.res.inst_154 Bool) - (top.res.inst_153 Bool) - (top.res.inst_152 Bool) - (top.res.inst_151 Bool) - (top.res.inst_150 Bool) - (top.res.inst_149 Bool) - (top.res.inst_148 Bool) - (top.res.inst_147 Bool) - (top.res.inst_146 Bool) - (top.res.inst_145 Bool) - (top.res.inst_144 Bool) - (top.res.inst_143 Bool) - (top.res.inst_142 Bool) - (top.res.inst_141 Bool) - (top.res.inst_140 Bool) - (top.res.inst_139 Bool) - (top.res.inst_138 Bool) - (top.res.inst_137 Bool) - (top.res.inst_136 Bool) - (top.res.inst_135 Bool) - (top.res.inst_134 Bool) - (top.res.inst_133 Bool) - (top.res.inst_132 Bool) - (top.res.inst_131 Bool) - (top.res.inst_130 Bool) - (top.res.inst_129 Bool) - (top.res.inst_128 Bool) - (top.res.inst_127 Bool) - (top.res.inst_126 Bool) - (top.res.inst_125 Bool) - (top.res.inst_124 Bool) - (top.res.inst_123 Bool) - (top.res.inst_122 Int) - (top.res.inst_121 Bool) - (top.res.inst_120 Bool) - (top.res.inst_119 Int) - (top.res.inst_118 Int) - (top.res.inst_117 Bool) - (top.res.inst_116 Bool) - (top.res.inst_115 Bool) - (top.res.inst_114 Bool) - (top.res.inst_113 Int) - (top.res.inst_112 Int) - (top.res.inst_111 Bool) - (top.res.inst_110 Bool) - (top.res.inst_109 Bool) - (top.res.inst_108 Bool) - (top.res.inst_107 Bool) - (top.res.inst_106 Bool) - (top.res.inst_105 Bool) - (top.res.inst_104 Bool) - (top.res.inst_103 Int) - (top.res.inst_102 Int) - (top.res.inst_101 Int) - (top.res.inst_100 Int) - (top.res.inst_99 Bool) - (top.res.inst_98 Bool) - (top.res.inst_97 Bool) - (top.res.inst_96 Bool) - (top.res.inst_95 Int) - (top.res.inst_94 Int) - (top.res.inst_93 Int) - (top.res.inst_92 Int) - (top.res.inst_91 Int) - (top.res.inst_90 Int) - (top.res.inst_89 Int) - (top.res.inst_88 Int) - (top.res.inst_87 Int) - (top.res.inst_86 Int) - (top.res.inst_85 Bool) - (top.res.inst_84 Bool) - (top.res.inst_83 Bool) - (top.res.inst_82 Bool) - (top.res.inst_81 Int) - (top.res.inst_80 Int) - (top.res.inst_79 Int) - (top.res.inst_78 Int) - (top.res.inst_77 Bool) - (top.res.inst_76 Int) - (top.res.inst_75 Bool) - (top.res.inst_74 Int) - (top.res.inst_73 Bool) - (top.res.inst_72 Int) - (top.res.inst_71 Bool) - (top.res.inst_70 Int) - (top.res.inst_69 Bool) - (top.res.inst_68 Int) - (top.res.inst_67 Bool) - (top.res.inst_66 Int) - (top.res.inst_65 Bool) - (top.res.inst_64 Int) - (top.res.inst_63 Bool) - (top.res.inst_62 Int) - (top.res.inst_61 Bool) - (top.res.inst_60 Bool) - (top.res.inst_59 Bool) - (top.res.inst_58 Bool) - (top.res.inst_57 Bool) - (top.res.inst_56 Bool) - (top.res.inst_55 Bool) - (top.res.inst_54 Bool) - (top.res.inst_53 Bool) - (top.res.inst_52 Bool) - (top.res.inst_51 Bool) - (top.res.inst_50 Bool) - (top.res.inst_49 Int) - (top.res.inst_48 Bool) - (top.res.inst_47 Bool) - (top.res.inst_46 Bool) - (top.res.inst_45 Bool) - (top.res.inst_44 Bool) - (top.res.inst_43 Bool) - (top.res.inst_42 Bool) - (top.res.inst_41 Bool) - (top.res.inst_40 Bool) - (top.res.inst_39 Bool) - (top.res.inst_38 Bool) - (top.res.inst_37 Int) - (top.res.inst_36 Int) - (top.res.inst_35 Int) - (top.res.inst_34 Int) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Int) - (top.res.inst_23 Int) - (top.res.inst_22 Int) - (top.res.inst_21 Int) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Int) - (top.res.inst_10 Int) - (top.res.inst_9 Int) - (top.res.inst_8 Int) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_18)) - (and - (= top.res.abs_39 (not X1)) - (let - ((X2 Bool top.res.abs_17)) - (and - (= top.res.abs_38 (not X2)) - (let - ((X3 Bool top.res.abs_16)) - (and - (= top.res.abs_37 (not X3)) - (let - ((X4 Bool top.res.abs_15)) - (and - (= top.res.abs_36 (not X4)) - (let - ((X5 Bool top.res.abs_14)) - (and - (= top.res.abs_34 (not X5)) - (let - ((X6 Bool top.res.abs_13)) - (and - (= top.res.abs_33 (not X6)) - (let - ((X7 Bool top.res.abs_12)) - (and - (= top.res.abs_32 (not X7)) - (let - ((X8 Bool top.res.abs_11)) - (and - (= top.res.abs_31 (not X8)) - (let - ((X9 Bool top.res.abs_20)) - (let - ((X10 Bool top.res.abs_19)) - (let - ((X11 Bool top.res.abs_2)) - (let - ((X12 Int top.res.abs_1)) - (let - ((X13 Bool (=> (= X12 3) (not X11)))) - (let - ((X14 - Bool (=> - (= X12 3) - (and - (and - (and (not X10) (not X9)) - top.res.abs_35) - top.res.abs_40)))) - (let - ((X15 - Bool (or - (or - (or - (or (or (= X12 1) (= X12 2)) (= X12 3)) - (= X12 4)) - (= X12 5)) - (= X12 6)))) - (and - (= top.usr.OK (and (and X15 X14) X13)) - (__node_init_BoilerController_0 - top.usr.stop - top.usr.steam_boiler_waiting - top.usr.physical_units_ready - top.usr.level - top.usr.steam - top.usr.pump_state_0 - top.usr.pump_state_1 - top.usr.pump_state_2 - top.usr.pump_state_3 - top.usr.pump_control_state_0 - top.usr.pump_control_state_1 - top.usr.pump_control_state_2 - top.usr.pump_control_state_3 - top.usr.pump_repaired_0 - top.usr.pump_repaired_1 - top.usr.pump_repaired_2 - top.usr.pump_repaired_3 - top.usr.pump_control_repaired_0 - top.usr.pump_control_repaired_1 - top.usr.pump_control_repaired_2 - top.usr.pump_control_repaired_3 - top.usr.level_repaired - top.usr.steam_repaired - top.usr.pump_failure_acknowledgement_0 - top.usr.pump_failure_acknowledgement_1 - top.usr.pump_failure_acknowledgement_2 - top.usr.pump_failure_acknowledgement_3 - top.usr.pump_control_failure_acknowledgement_0 - top.usr.pump_control_failure_acknowledgement_1 - top.usr.pump_control_failure_acknowledgement_2 - top.usr.pump_control_failure_acknowledgement_3 - top.usr.level_failure_acknowledgement - top.usr.steam_failure_acknowledgement - top.res.nondet_32 - top.res.nondet_31 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.abs_10 - top.res.abs_11 - top.res.abs_12 - top.res.abs_13 - top.res.abs_14 - top.res.abs_15 - top.res.abs_16 - top.res.abs_17 - top.res.abs_18 - top.res.abs_19 - top.res.abs_20 - top.res.abs_21 - top.res.abs_22 - top.res.abs_23 - top.res.abs_24 - top.res.abs_25 - top.res.abs_26 - top.res.abs_27 - top.res.abs_28 - top.res.abs_29 - top.res.abs_30 - top.res.inst_297 - top.res.inst_296 - top.res.inst_295 - top.res.inst_294 - top.res.inst_293 - top.res.inst_292 - top.res.inst_291 - top.res.inst_290 - top.res.inst_289 - top.res.inst_288 - top.res.inst_287 - top.res.inst_286 - top.res.inst_285 - top.res.inst_284 - top.res.inst_283 - top.res.inst_282 - top.res.inst_281 - top.res.inst_280 - top.res.inst_279 - top.res.inst_278 - top.res.inst_277 - top.res.inst_276 - top.res.inst_275 - top.res.inst_274 - top.res.inst_273 - top.res.inst_272 - top.res.inst_271 - top.res.inst_270 - top.res.inst_269 - top.res.inst_268 - top.res.inst_267 - top.res.inst_266 - top.res.inst_265 - top.res.inst_264 - top.res.inst_263 - top.res.inst_262 - top.res.inst_261 - top.res.inst_260 - top.res.inst_259 - top.res.inst_258 - top.res.inst_257 - top.res.inst_256 - top.res.inst_255 - top.res.inst_254 - top.res.inst_253 - top.res.inst_252 - top.res.inst_251 - top.res.inst_250 - top.res.inst_249 - top.res.inst_248 - top.res.inst_247 - top.res.inst_246 - top.res.inst_245 - top.res.inst_244 - top.res.inst_243 - top.res.inst_242 - top.res.inst_241 - top.res.inst_240 - top.res.inst_239 - top.res.inst_238 - top.res.inst_237 - top.res.inst_236 - top.res.inst_235 - top.res.inst_234 - top.res.inst_233 - top.res.inst_232 - top.res.inst_231 - top.res.inst_230 - top.res.inst_229 - top.res.inst_228 - top.res.inst_227 - top.res.inst_226 - top.res.inst_225 - top.res.inst_224 - top.res.inst_223 - top.res.inst_222 - top.res.inst_221 - top.res.inst_220 - top.res.inst_219 - top.res.inst_218 - top.res.inst_217 - top.res.inst_216 - top.res.inst_215 - top.res.inst_214 - top.res.inst_213 - top.res.inst_212 - top.res.inst_211 - top.res.inst_210 - top.res.inst_209 - top.res.inst_208 - top.res.inst_207 - top.res.inst_206 - top.res.inst_205 - top.res.inst_204 - top.res.inst_203 - top.res.inst_202 - top.res.inst_201 - top.res.inst_200 - top.res.inst_199 - top.res.inst_198 - top.res.inst_197 - top.res.inst_196 - top.res.inst_195 - top.res.inst_194 - top.res.inst_193 - top.res.inst_192 - top.res.inst_191 - top.res.inst_190 - top.res.inst_189 - top.res.inst_188 - top.res.inst_187 - top.res.inst_186 - top.res.inst_185 - top.res.inst_184 - top.res.inst_183 - top.res.inst_182 - top.res.inst_181 - top.res.inst_180 - top.res.inst_179 - top.res.inst_178 - top.res.inst_177 - top.res.inst_176 - top.res.inst_175 - top.res.inst_174 - top.res.inst_173 - top.res.inst_172 - top.res.inst_171 - top.res.inst_170 - top.res.inst_169 - top.res.inst_168 - top.res.inst_167 - top.res.inst_166 - top.res.inst_165 - top.res.inst_164 - top.res.inst_163 - top.res.inst_162 - top.res.inst_161 - top.res.inst_160 - top.res.inst_159 - top.res.inst_158 - top.res.inst_157 - top.res.inst_156 - top.res.inst_155 - top.res.inst_154 - top.res.inst_153 - top.res.inst_152 - top.res.inst_151 - top.res.inst_150 - top.res.inst_149 - top.res.inst_148 - top.res.inst_147 - top.res.inst_146 - top.res.inst_145 - top.res.inst_144 - top.res.inst_143 - top.res.inst_142 - top.res.inst_141 - top.res.inst_140 - top.res.inst_139 - top.res.inst_138 - top.res.inst_137 - top.res.inst_136 - top.res.inst_135 - top.res.inst_134 - top.res.inst_133 - top.res.inst_132 - top.res.inst_131 - top.res.inst_130 - top.res.inst_129 - top.res.inst_128 - top.res.inst_127 - top.res.inst_126 - top.res.inst_125 - top.res.inst_124 - top.res.inst_123 - top.res.inst_122 - top.res.inst_121 - top.res.inst_120 - top.res.inst_119 - top.res.inst_118 - top.res.inst_117 - top.res.inst_116 - top.res.inst_115 - top.res.inst_114 - top.res.inst_113 - top.res.inst_112 - top.res.inst_111 - top.res.inst_110 - top.res.inst_109 - top.res.inst_108 - top.res.inst_107 - top.res.inst_106 - top.res.inst_105 - top.res.inst_104 - top.res.inst_103 - top.res.inst_102 - top.res.inst_101 - top.res.inst_100 - top.res.inst_99 - top.res.inst_98 - top.res.inst_97 - top.res.inst_96 - top.res.inst_95 - top.res.inst_94 - top.res.inst_93 - top.res.inst_92 - top.res.inst_91 - top.res.inst_90 - top.res.inst_89 - top.res.inst_88 - top.res.inst_87 - top.res.inst_86 - top.res.inst_85 - top.res.inst_84 - top.res.inst_83 - top.res.inst_82 - top.res.inst_81 - top.res.inst_80 - top.res.inst_79 - top.res.inst_78 - top.res.inst_77 - top.res.inst_76 - top.res.inst_75 - top.res.inst_74 - top.res.inst_73 - top.res.inst_72 - top.res.inst_71 - top.res.inst_70 - top.res.inst_69 - top.res.inst_68 - top.res.inst_67 - top.res.inst_66 - top.res.inst_65 - top.res.inst_64 - top.res.inst_63 - top.res.inst_62 - top.res.inst_61 - top.res.inst_60 - top.res.inst_59 - top.res.inst_58 - top.res.inst_57 - top.res.inst_56 - top.res.inst_55 - top.res.inst_54 - top.res.inst_53 - top.res.inst_52 - top.res.inst_51 - top.res.inst_50 - top.res.inst_49 - top.res.inst_48 - top.res.inst_47 - top.res.inst_46 - top.res.inst_45 - top.res.inst_44 - top.res.inst_43 - top.res.inst_42 - top.res.inst_41 - top.res.inst_40 - top.res.inst_39 - top.res.inst_38 - top.res.inst_37 - top.res.inst_36 - top.res.inst_35 - top.res.inst_34 - top.res.inst_33 - top.res.inst_32 - top.res.inst_31 - top.res.inst_30 - top.res.inst_29 - top.res.inst_28 - top.res.inst_27 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2) - (__node_init_AND_0 - top.res.abs_31 - top.res.abs_32 - top.res.abs_33 - top.res.abs_34 - top.res.abs_35 - top.res.inst_1) - (__node_init_AND_0 - top.res.abs_36 - top.res.abs_37 - top.res.abs_38 - top.res.abs_39 - top.res.abs_40 - top.res.inst_0) - top.res.init_flag)))))))))))))))))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.stop Bool) - (top.usr.steam_boiler_waiting Bool) - (top.usr.physical_units_ready Bool) - (top.usr.level Int) - (top.usr.steam Int) - (top.usr.pump_state_0 Int) - (top.usr.pump_state_1 Int) - (top.usr.pump_state_2 Int) - (top.usr.pump_state_3 Int) - (top.usr.pump_control_state_0 Bool) - (top.usr.pump_control_state_1 Bool) - (top.usr.pump_control_state_2 Bool) - (top.usr.pump_control_state_3 Bool) - (top.usr.pump_repaired_0 Bool) - (top.usr.pump_repaired_1 Bool) - (top.usr.pump_repaired_2 Bool) - (top.usr.pump_repaired_3 Bool) - (top.usr.pump_control_repaired_0 Bool) - (top.usr.pump_control_repaired_1 Bool) - (top.usr.pump_control_repaired_2 Bool) - (top.usr.pump_control_repaired_3 Bool) - (top.usr.level_repaired Bool) - (top.usr.steam_repaired Bool) - (top.usr.pump_failure_acknowledgement_0 Bool) - (top.usr.pump_failure_acknowledgement_1 Bool) - (top.usr.pump_failure_acknowledgement_2 Bool) - (top.usr.pump_failure_acknowledgement_3 Bool) - (top.usr.pump_control_failure_acknowledgement_0 Bool) - (top.usr.pump_control_failure_acknowledgement_1 Bool) - (top.usr.pump_control_failure_acknowledgement_2 Bool) - (top.usr.pump_control_failure_acknowledgement_3 Bool) - (top.usr.level_failure_acknowledgement Bool) - (top.usr.steam_failure_acknowledgement Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.abs_13 Bool) - (top.res.abs_14 Bool) - (top.res.abs_15 Bool) - (top.res.abs_16 Bool) - (top.res.abs_17 Bool) - (top.res.abs_18 Bool) - (top.res.abs_19 Bool) - (top.res.abs_20 Bool) - (top.res.abs_21 Bool) - (top.res.abs_22 Bool) - (top.res.abs_23 Bool) - (top.res.abs_24 Bool) - (top.res.abs_25 Bool) - (top.res.abs_26 Bool) - (top.res.abs_27 Bool) - (top.res.abs_28 Bool) - (top.res.abs_29 Bool) - (top.res.abs_30 Bool) - (top.res.abs_31 Bool) - (top.res.abs_32 Bool) - (top.res.abs_33 Bool) - (top.res.abs_34 Bool) - (top.res.abs_35 Bool) - (top.res.abs_36 Bool) - (top.res.abs_37 Bool) - (top.res.abs_38 Bool) - (top.res.abs_39 Bool) - (top.res.abs_40 Bool) - (top.res.inst_297 Bool) - (top.res.inst_296 Bool) - (top.res.inst_295 Int) - (top.res.inst_294 Int) - (top.res.inst_293 Int) - (top.res.inst_292 Int) - (top.res.inst_291 Int) - (top.res.inst_290 Int) - (top.res.inst_289 Int) - (top.res.inst_288 Int) - (top.res.inst_287 Int) - (top.res.inst_286 Int) - (top.res.inst_285 Int) - (top.res.inst_284 Int) - (top.res.inst_283 Int) - (top.res.inst_282 Int) - (top.res.inst_281 Int) - (top.res.inst_280 Int) - (top.res.inst_279 Int) - (top.res.inst_278 Bool) - (top.res.inst_277 Int) - (top.res.inst_276 Int) - (top.res.inst_275 Int) - (top.res.inst_274 Bool) - (top.res.inst_273 Bool) - (top.res.inst_272 Bool) - (top.res.inst_271 Bool) - (top.res.inst_270 Int) - (top.res.inst_269 Int) - (top.res.inst_268 Bool) - (top.res.inst_267 Int) - (top.res.inst_266 Int) - (top.res.inst_265 Bool) - (top.res.inst_264 Int) - (top.res.inst_263 Bool) - (top.res.inst_262 Bool) - (top.res.inst_261 Bool) - (top.res.inst_260 Bool) - (top.res.inst_259 Int) - (top.res.inst_258 Int) - (top.res.inst_257 Bool) - (top.res.inst_256 Int) - (top.res.inst_255 Int) - (top.res.inst_254 Bool) - (top.res.inst_253 Int) - (top.res.inst_252 Bool) - (top.res.inst_251 Bool) - (top.res.inst_250 Bool) - (top.res.inst_249 Bool) - (top.res.inst_248 Int) - (top.res.inst_247 Int) - (top.res.inst_246 Bool) - (top.res.inst_245 Int) - (top.res.inst_244 Int) - (top.res.inst_243 Bool) - (top.res.inst_242 Int) - (top.res.inst_241 Bool) - (top.res.inst_240 Bool) - (top.res.inst_239 Bool) - (top.res.inst_238 Bool) - (top.res.inst_237 Int) - (top.res.inst_236 Int) - (top.res.inst_235 Bool) - (top.res.inst_234 Int) - (top.res.inst_233 Int) - (top.res.inst_232 Bool) - (top.res.inst_231 Int) - (top.res.inst_230 Int) - (top.res.inst_229 Int) - (top.res.inst_228 Int) - (top.res.inst_227 Int) - (top.res.inst_226 Bool) - (top.res.inst_225 Bool) - (top.res.inst_224 Bool) - (top.res.inst_223 Bool) - (top.res.inst_222 Int) - (top.res.inst_221 Int) - (top.res.inst_220 Int) - (top.res.inst_219 Int) - (top.res.inst_218 Int) - (top.res.inst_217 Int) - (top.res.inst_216 Int) - (top.res.inst_215 Int) - (top.res.inst_214 Int) - (top.res.inst_213 Int) - (top.res.inst_212 Int) - (top.res.inst_211 Int) - (top.res.inst_210 Bool) - (top.res.inst_209 Int) - (top.res.inst_208 Bool) - (top.res.inst_207 Int) - (top.res.inst_206 Bool) - (top.res.inst_205 Bool) - (top.res.inst_204 Bool) - (top.res.inst_203 Bool) - (top.res.inst_202 Bool) - (top.res.inst_201 Bool) - (top.res.inst_200 Bool) - (top.res.inst_199 Bool) - (top.res.inst_198 Bool) - (top.res.inst_197 Bool) - (top.res.inst_196 Bool) - (top.res.inst_195 Bool) - (top.res.inst_194 Bool) - (top.res.inst_193 Bool) - (top.res.inst_192 Bool) - (top.res.inst_191 Bool) - (top.res.inst_190 Bool) - (top.res.inst_189 Bool) - (top.res.inst_188 Bool) - (top.res.inst_187 Bool) - (top.res.inst_186 Bool) - (top.res.inst_185 Bool) - (top.res.inst_184 Bool) - (top.res.inst_183 Bool) - (top.res.inst_182 Bool) - (top.res.inst_181 Bool) - (top.res.inst_180 Bool) - (top.res.inst_179 Bool) - (top.res.inst_178 Bool) - (top.res.inst_177 Bool) - (top.res.inst_176 Bool) - (top.res.inst_175 Bool) - (top.res.inst_174 Int) - (top.res.inst_173 Bool) - (top.res.inst_172 Bool) - (top.res.inst_171 Bool) - (top.res.inst_170 Bool) - (top.res.inst_169 Bool) - (top.res.inst_168 Bool) - (top.res.inst_167 Bool) - (top.res.inst_166 Bool) - (top.res.inst_165 Bool) - (top.res.inst_164 Bool) - (top.res.inst_163 Bool) - (top.res.inst_162 Bool) - (top.res.inst_161 Bool) - (top.res.inst_160 Bool) - (top.res.inst_159 Bool) - (top.res.inst_158 Bool) - (top.res.inst_157 Bool) - (top.res.inst_156 Bool) - (top.res.inst_155 Bool) - (top.res.inst_154 Bool) - (top.res.inst_153 Bool) - (top.res.inst_152 Bool) - (top.res.inst_151 Bool) - (top.res.inst_150 Bool) - (top.res.inst_149 Bool) - (top.res.inst_148 Bool) - (top.res.inst_147 Bool) - (top.res.inst_146 Bool) - (top.res.inst_145 Bool) - (top.res.inst_144 Bool) - (top.res.inst_143 Bool) - (top.res.inst_142 Bool) - (top.res.inst_141 Bool) - (top.res.inst_140 Bool) - (top.res.inst_139 Bool) - (top.res.inst_138 Bool) - (top.res.inst_137 Bool) - (top.res.inst_136 Bool) - (top.res.inst_135 Bool) - (top.res.inst_134 Bool) - (top.res.inst_133 Bool) - (top.res.inst_132 Bool) - (top.res.inst_131 Bool) - (top.res.inst_130 Bool) - (top.res.inst_129 Bool) - (top.res.inst_128 Bool) - (top.res.inst_127 Bool) - (top.res.inst_126 Bool) - (top.res.inst_125 Bool) - (top.res.inst_124 Bool) - (top.res.inst_123 Bool) - (top.res.inst_122 Int) - (top.res.inst_121 Bool) - (top.res.inst_120 Bool) - (top.res.inst_119 Int) - (top.res.inst_118 Int) - (top.res.inst_117 Bool) - (top.res.inst_116 Bool) - (top.res.inst_115 Bool) - (top.res.inst_114 Bool) - (top.res.inst_113 Int) - (top.res.inst_112 Int) - (top.res.inst_111 Bool) - (top.res.inst_110 Bool) - (top.res.inst_109 Bool) - (top.res.inst_108 Bool) - (top.res.inst_107 Bool) - (top.res.inst_106 Bool) - (top.res.inst_105 Bool) - (top.res.inst_104 Bool) - (top.res.inst_103 Int) - (top.res.inst_102 Int) - (top.res.inst_101 Int) - (top.res.inst_100 Int) - (top.res.inst_99 Bool) - (top.res.inst_98 Bool) - (top.res.inst_97 Bool) - (top.res.inst_96 Bool) - (top.res.inst_95 Int) - (top.res.inst_94 Int) - (top.res.inst_93 Int) - (top.res.inst_92 Int) - (top.res.inst_91 Int) - (top.res.inst_90 Int) - (top.res.inst_89 Int) - (top.res.inst_88 Int) - (top.res.inst_87 Int) - (top.res.inst_86 Int) - (top.res.inst_85 Bool) - (top.res.inst_84 Bool) - (top.res.inst_83 Bool) - (top.res.inst_82 Bool) - (top.res.inst_81 Int) - (top.res.inst_80 Int) - (top.res.inst_79 Int) - (top.res.inst_78 Int) - (top.res.inst_77 Bool) - (top.res.inst_76 Int) - (top.res.inst_75 Bool) - (top.res.inst_74 Int) - (top.res.inst_73 Bool) - (top.res.inst_72 Int) - (top.res.inst_71 Bool) - (top.res.inst_70 Int) - (top.res.inst_69 Bool) - (top.res.inst_68 Int) - (top.res.inst_67 Bool) - (top.res.inst_66 Int) - (top.res.inst_65 Bool) - (top.res.inst_64 Int) - (top.res.inst_63 Bool) - (top.res.inst_62 Int) - (top.res.inst_61 Bool) - (top.res.inst_60 Bool) - (top.res.inst_59 Bool) - (top.res.inst_58 Bool) - (top.res.inst_57 Bool) - (top.res.inst_56 Bool) - (top.res.inst_55 Bool) - (top.res.inst_54 Bool) - (top.res.inst_53 Bool) - (top.res.inst_52 Bool) - (top.res.inst_51 Bool) - (top.res.inst_50 Bool) - (top.res.inst_49 Int) - (top.res.inst_48 Bool) - (top.res.inst_47 Bool) - (top.res.inst_46 Bool) - (top.res.inst_45 Bool) - (top.res.inst_44 Bool) - (top.res.inst_43 Bool) - (top.res.inst_42 Bool) - (top.res.inst_41 Bool) - (top.res.inst_40 Bool) - (top.res.inst_39 Bool) - (top.res.inst_38 Bool) - (top.res.inst_37 Int) - (top.res.inst_36 Int) - (top.res.inst_35 Int) - (top.res.inst_34 Int) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Int) - (top.res.inst_23 Int) - (top.res.inst_22 Int) - (top.res.inst_21 Int) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Int) - (top.res.inst_10 Int) - (top.res.inst_9 Int) - (top.res.inst_8 Int) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.stop! Bool) - (top.usr.steam_boiler_waiting! Bool) - (top.usr.physical_units_ready! Bool) - (top.usr.level! Int) - (top.usr.steam! Int) - (top.usr.pump_state_0! Int) - (top.usr.pump_state_1! Int) - (top.usr.pump_state_2! Int) - (top.usr.pump_state_3! Int) - (top.usr.pump_control_state_0! Bool) - (top.usr.pump_control_state_1! Bool) - (top.usr.pump_control_state_2! Bool) - (top.usr.pump_control_state_3! Bool) - (top.usr.pump_repaired_0! Bool) - (top.usr.pump_repaired_1! Bool) - (top.usr.pump_repaired_2! Bool) - (top.usr.pump_repaired_3! Bool) - (top.usr.pump_control_repaired_0! Bool) - (top.usr.pump_control_repaired_1! Bool) - (top.usr.pump_control_repaired_2! Bool) - (top.usr.pump_control_repaired_3! Bool) - (top.usr.level_repaired! Bool) - (top.usr.steam_repaired! Bool) - (top.usr.pump_failure_acknowledgement_0! Bool) - (top.usr.pump_failure_acknowledgement_1! Bool) - (top.usr.pump_failure_acknowledgement_2! Bool) - (top.usr.pump_failure_acknowledgement_3! Bool) - (top.usr.pump_control_failure_acknowledgement_0! Bool) - (top.usr.pump_control_failure_acknowledgement_1! Bool) - (top.usr.pump_control_failure_acknowledgement_2! Bool) - (top.usr.pump_control_failure_acknowledgement_3! Bool) - (top.usr.level_failure_acknowledgement! Bool) - (top.usr.steam_failure_acknowledgement! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Int) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.abs_12! Bool) - (top.res.abs_13! Bool) - (top.res.abs_14! Bool) - (top.res.abs_15! Bool) - (top.res.abs_16! Bool) - (top.res.abs_17! Bool) - (top.res.abs_18! Bool) - (top.res.abs_19! Bool) - (top.res.abs_20! Bool) - (top.res.abs_21! Bool) - (top.res.abs_22! Bool) - (top.res.abs_23! Bool) - (top.res.abs_24! Bool) - (top.res.abs_25! Bool) - (top.res.abs_26! Bool) - (top.res.abs_27! Bool) - (top.res.abs_28! Bool) - (top.res.abs_29! Bool) - (top.res.abs_30! Bool) - (top.res.abs_31! Bool) - (top.res.abs_32! Bool) - (top.res.abs_33! Bool) - (top.res.abs_34! Bool) - (top.res.abs_35! Bool) - (top.res.abs_36! Bool) - (top.res.abs_37! Bool) - (top.res.abs_38! Bool) - (top.res.abs_39! Bool) - (top.res.abs_40! Bool) - (top.res.inst_297! Bool) - (top.res.inst_296! Bool) - (top.res.inst_295! Int) - (top.res.inst_294! Int) - (top.res.inst_293! Int) - (top.res.inst_292! Int) - (top.res.inst_291! Int) - (top.res.inst_290! Int) - (top.res.inst_289! Int) - (top.res.inst_288! Int) - (top.res.inst_287! Int) - (top.res.inst_286! Int) - (top.res.inst_285! Int) - (top.res.inst_284! Int) - (top.res.inst_283! Int) - (top.res.inst_282! Int) - (top.res.inst_281! Int) - (top.res.inst_280! Int) - (top.res.inst_279! Int) - (top.res.inst_278! Bool) - (top.res.inst_277! Int) - (top.res.inst_276! Int) - (top.res.inst_275! Int) - (top.res.inst_274! Bool) - (top.res.inst_273! Bool) - (top.res.inst_272! Bool) - (top.res.inst_271! Bool) - (top.res.inst_270! Int) - (top.res.inst_269! Int) - (top.res.inst_268! Bool) - (top.res.inst_267! Int) - (top.res.inst_266! Int) - (top.res.inst_265! Bool) - (top.res.inst_264! Int) - (top.res.inst_263! Bool) - (top.res.inst_262! Bool) - (top.res.inst_261! Bool) - (top.res.inst_260! Bool) - (top.res.inst_259! Int) - (top.res.inst_258! Int) - (top.res.inst_257! Bool) - (top.res.inst_256! Int) - (top.res.inst_255! Int) - (top.res.inst_254! Bool) - (top.res.inst_253! Int) - (top.res.inst_252! Bool) - (top.res.inst_251! Bool) - (top.res.inst_250! Bool) - (top.res.inst_249! Bool) - (top.res.inst_248! Int) - (top.res.inst_247! Int) - (top.res.inst_246! Bool) - (top.res.inst_245! Int) - (top.res.inst_244! Int) - (top.res.inst_243! Bool) - (top.res.inst_242! Int) - (top.res.inst_241! Bool) - (top.res.inst_240! Bool) - (top.res.inst_239! Bool) - (top.res.inst_238! Bool) - (top.res.inst_237! Int) - (top.res.inst_236! Int) - (top.res.inst_235! Bool) - (top.res.inst_234! Int) - (top.res.inst_233! Int) - (top.res.inst_232! Bool) - (top.res.inst_231! Int) - (top.res.inst_230! Int) - (top.res.inst_229! Int) - (top.res.inst_228! Int) - (top.res.inst_227! Int) - (top.res.inst_226! Bool) - (top.res.inst_225! Bool) - (top.res.inst_224! Bool) - (top.res.inst_223! Bool) - (top.res.inst_222! Int) - (top.res.inst_221! Int) - (top.res.inst_220! Int) - (top.res.inst_219! Int) - (top.res.inst_218! Int) - (top.res.inst_217! Int) - (top.res.inst_216! Int) - (top.res.inst_215! Int) - (top.res.inst_214! Int) - (top.res.inst_213! Int) - (top.res.inst_212! Int) - (top.res.inst_211! Int) - (top.res.inst_210! Bool) - (top.res.inst_209! Int) - (top.res.inst_208! Bool) - (top.res.inst_207! Int) - (top.res.inst_206! Bool) - (top.res.inst_205! Bool) - (top.res.inst_204! Bool) - (top.res.inst_203! Bool) - (top.res.inst_202! Bool) - (top.res.inst_201! Bool) - (top.res.inst_200! Bool) - (top.res.inst_199! Bool) - (top.res.inst_198! Bool) - (top.res.inst_197! Bool) - (top.res.inst_196! Bool) - (top.res.inst_195! Bool) - (top.res.inst_194! Bool) - (top.res.inst_193! Bool) - (top.res.inst_192! Bool) - (top.res.inst_191! Bool) - (top.res.inst_190! Bool) - (top.res.inst_189! Bool) - (top.res.inst_188! Bool) - (top.res.inst_187! Bool) - (top.res.inst_186! Bool) - (top.res.inst_185! Bool) - (top.res.inst_184! Bool) - (top.res.inst_183! Bool) - (top.res.inst_182! Bool) - (top.res.inst_181! Bool) - (top.res.inst_180! Bool) - (top.res.inst_179! Bool) - (top.res.inst_178! Bool) - (top.res.inst_177! Bool) - (top.res.inst_176! Bool) - (top.res.inst_175! Bool) - (top.res.inst_174! Int) - (top.res.inst_173! Bool) - (top.res.inst_172! Bool) - (top.res.inst_171! Bool) - (top.res.inst_170! Bool) - (top.res.inst_169! Bool) - (top.res.inst_168! Bool) - (top.res.inst_167! Bool) - (top.res.inst_166! Bool) - (top.res.inst_165! Bool) - (top.res.inst_164! Bool) - (top.res.inst_163! Bool) - (top.res.inst_162! Bool) - (top.res.inst_161! Bool) - (top.res.inst_160! Bool) - (top.res.inst_159! Bool) - (top.res.inst_158! Bool) - (top.res.inst_157! Bool) - (top.res.inst_156! Bool) - (top.res.inst_155! Bool) - (top.res.inst_154! Bool) - (top.res.inst_153! Bool) - (top.res.inst_152! Bool) - (top.res.inst_151! Bool) - (top.res.inst_150! Bool) - (top.res.inst_149! Bool) - (top.res.inst_148! Bool) - (top.res.inst_147! Bool) - (top.res.inst_146! Bool) - (top.res.inst_145! Bool) - (top.res.inst_144! Bool) - (top.res.inst_143! Bool) - (top.res.inst_142! Bool) - (top.res.inst_141! Bool) - (top.res.inst_140! Bool) - (top.res.inst_139! Bool) - (top.res.inst_138! Bool) - (top.res.inst_137! Bool) - (top.res.inst_136! Bool) - (top.res.inst_135! Bool) - (top.res.inst_134! Bool) - (top.res.inst_133! Bool) - (top.res.inst_132! Bool) - (top.res.inst_131! Bool) - (top.res.inst_130! Bool) - (top.res.inst_129! Bool) - (top.res.inst_128! Bool) - (top.res.inst_127! Bool) - (top.res.inst_126! Bool) - (top.res.inst_125! Bool) - (top.res.inst_124! Bool) - (top.res.inst_123! Bool) - (top.res.inst_122! Int) - (top.res.inst_121! Bool) - (top.res.inst_120! Bool) - (top.res.inst_119! Int) - (top.res.inst_118! Int) - (top.res.inst_117! Bool) - (top.res.inst_116! Bool) - (top.res.inst_115! Bool) - (top.res.inst_114! Bool) - (top.res.inst_113! Int) - (top.res.inst_112! Int) - (top.res.inst_111! Bool) - (top.res.inst_110! Bool) - (top.res.inst_109! Bool) - (top.res.inst_108! Bool) - (top.res.inst_107! Bool) - (top.res.inst_106! Bool) - (top.res.inst_105! Bool) - (top.res.inst_104! Bool) - (top.res.inst_103! Int) - (top.res.inst_102! Int) - (top.res.inst_101! Int) - (top.res.inst_100! Int) - (top.res.inst_99! Bool) - (top.res.inst_98! Bool) - (top.res.inst_97! Bool) - (top.res.inst_96! Bool) - (top.res.inst_95! Int) - (top.res.inst_94! Int) - (top.res.inst_93! Int) - (top.res.inst_92! Int) - (top.res.inst_91! Int) - (top.res.inst_90! Int) - (top.res.inst_89! Int) - (top.res.inst_88! Int) - (top.res.inst_87! Int) - (top.res.inst_86! Int) - (top.res.inst_85! Bool) - (top.res.inst_84! Bool) - (top.res.inst_83! Bool) - (top.res.inst_82! Bool) - (top.res.inst_81! Int) - (top.res.inst_80! Int) - (top.res.inst_79! Int) - (top.res.inst_78! Int) - (top.res.inst_77! Bool) - (top.res.inst_76! Int) - (top.res.inst_75! Bool) - (top.res.inst_74! Int) - (top.res.inst_73! Bool) - (top.res.inst_72! Int) - (top.res.inst_71! Bool) - (top.res.inst_70! Int) - (top.res.inst_69! Bool) - (top.res.inst_68! Int) - (top.res.inst_67! Bool) - (top.res.inst_66! Int) - (top.res.inst_65! Bool) - (top.res.inst_64! Int) - (top.res.inst_63! Bool) - (top.res.inst_62! Int) - (top.res.inst_61! Bool) - (top.res.inst_60! Bool) - (top.res.inst_59! Bool) - (top.res.inst_58! Bool) - (top.res.inst_57! Bool) - (top.res.inst_56! Bool) - (top.res.inst_55! Bool) - (top.res.inst_54! Bool) - (top.res.inst_53! Bool) - (top.res.inst_52! Bool) - (top.res.inst_51! Bool) - (top.res.inst_50! Bool) - (top.res.inst_49! Int) - (top.res.inst_48! Bool) - (top.res.inst_47! Bool) - (top.res.inst_46! Bool) - (top.res.inst_45! Bool) - (top.res.inst_44! Bool) - (top.res.inst_43! Bool) - (top.res.inst_42! Bool) - (top.res.inst_41! Bool) - (top.res.inst_40! Bool) - (top.res.inst_39! Bool) - (top.res.inst_38! Bool) - (top.res.inst_37! Int) - (top.res.inst_36! Int) - (top.res.inst_35! Int) - (top.res.inst_34! Int) - (top.res.inst_33! Bool) - (top.res.inst_32! Bool) - (top.res.inst_31! Bool) - (top.res.inst_30! Bool) - (top.res.inst_29! Bool) - (top.res.inst_28! Bool) - (top.res.inst_27! Bool) - (top.res.inst_26! Bool) - (top.res.inst_25! Bool) - (top.res.inst_24! Int) - (top.res.inst_23! Int) - (top.res.inst_22! Int) - (top.res.inst_21! Int) - (top.res.inst_20! Bool) - (top.res.inst_19! Bool) - (top.res.inst_18! Bool) - (top.res.inst_17! Bool) - (top.res.inst_16! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Bool) - (top.res.inst_11! Int) - (top.res.inst_10! Int) - (top.res.inst_9! Int) - (top.res.inst_8! Int) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Bool) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Bool top.res.abs_18!)) - (and - (= top.res.abs_39! (not X1)) - (let - ((X2 Bool top.res.abs_17!)) - (and - (= top.res.abs_38! (not X2)) - (let - ((X3 Bool top.res.abs_16!)) - (and - (= top.res.abs_37! (not X3)) - (let - ((X4 Bool top.res.abs_15!)) - (and - (= top.res.abs_36! (not X4)) - (let - ((X5 Bool top.res.abs_14!)) - (and - (= top.res.abs_34! (not X5)) - (let - ((X6 Bool top.res.abs_13!)) - (and - (= top.res.abs_33! (not X6)) - (let - ((X7 Bool top.res.abs_12!)) - (and - (= top.res.abs_32! (not X7)) - (let - ((X8 Bool top.res.abs_11!)) - (and - (= top.res.abs_31! (not X8)) - (let - ((X9 Bool top.res.abs_20!)) - (let - ((X10 Bool top.res.abs_19!)) - (let - ((X11 Bool top.res.abs_2!)) - (let - ((X12 Int top.res.abs_1!)) - (let - ((X13 Bool (=> (= X12 3) (not X11)))) - (let - ((X14 - Bool (=> - (= X12 3) - (and - (and - (and (not X10) (not X9)) - top.res.abs_35!) - top.res.abs_40!)))) - (let - ((X15 - Bool (or - (or - (or - (or (or (= X12 1) (= X12 2)) (= X12 3)) - (= X12 4)) - (= X12 5)) - (= X12 6)))) - (and - (= top.usr.OK! (and (and X15 X14) X13)) - (__node_trans_BoilerController_0 - top.usr.stop! - top.usr.steam_boiler_waiting! - top.usr.physical_units_ready! - top.usr.level! - top.usr.steam! - top.usr.pump_state_0! - top.usr.pump_state_1! - top.usr.pump_state_2! - top.usr.pump_state_3! - top.usr.pump_control_state_0! - top.usr.pump_control_state_1! - top.usr.pump_control_state_2! - top.usr.pump_control_state_3! - top.usr.pump_repaired_0! - top.usr.pump_repaired_1! - top.usr.pump_repaired_2! - top.usr.pump_repaired_3! - top.usr.pump_control_repaired_0! - top.usr.pump_control_repaired_1! - top.usr.pump_control_repaired_2! - top.usr.pump_control_repaired_3! - top.usr.level_repaired! - top.usr.steam_repaired! - top.usr.pump_failure_acknowledgement_0! - top.usr.pump_failure_acknowledgement_1! - top.usr.pump_failure_acknowledgement_2! - top.usr.pump_failure_acknowledgement_3! - top.usr.pump_control_failure_acknowledgement_0! - top.usr.pump_control_failure_acknowledgement_1! - top.usr.pump_control_failure_acknowledgement_2! - top.usr.pump_control_failure_acknowledgement_3! - top.usr.level_failure_acknowledgement! - top.usr.steam_failure_acknowledgement! - top.res.nondet_32 - top.res.nondet_31 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.abs_10! - top.res.abs_11! - top.res.abs_12! - top.res.abs_13! - top.res.abs_14! - top.res.abs_15! - top.res.abs_16! - top.res.abs_17! - top.res.abs_18! - top.res.abs_19! - top.res.abs_20! - top.res.abs_21! - top.res.abs_22! - top.res.abs_23! - top.res.abs_24! - top.res.abs_25! - top.res.abs_26! - top.res.abs_27! - top.res.abs_28! - top.res.abs_29! - top.res.abs_30! - top.res.inst_297! - top.res.inst_296! - top.res.inst_295! - top.res.inst_294! - top.res.inst_293! - top.res.inst_292! - top.res.inst_291! - top.res.inst_290! - top.res.inst_289! - top.res.inst_288! - top.res.inst_287! - top.res.inst_286! - top.res.inst_285! - top.res.inst_284! - top.res.inst_283! - top.res.inst_282! - top.res.inst_281! - top.res.inst_280! - top.res.inst_279! - top.res.inst_278! - top.res.inst_277! - top.res.inst_276! - top.res.inst_275! - top.res.inst_274! - top.res.inst_273! - top.res.inst_272! - top.res.inst_271! - top.res.inst_270! - top.res.inst_269! - top.res.inst_268! - top.res.inst_267! - top.res.inst_266! - top.res.inst_265! - top.res.inst_264! - top.res.inst_263! - top.res.inst_262! - top.res.inst_261! - top.res.inst_260! - top.res.inst_259! - top.res.inst_258! - top.res.inst_257! - top.res.inst_256! - top.res.inst_255! - top.res.inst_254! - top.res.inst_253! - top.res.inst_252! - top.res.inst_251! - top.res.inst_250! - top.res.inst_249! - top.res.inst_248! - top.res.inst_247! - top.res.inst_246! - top.res.inst_245! - top.res.inst_244! - top.res.inst_243! - top.res.inst_242! - top.res.inst_241! - top.res.inst_240! - top.res.inst_239! - top.res.inst_238! - top.res.inst_237! - top.res.inst_236! - top.res.inst_235! - top.res.inst_234! - top.res.inst_233! - top.res.inst_232! - top.res.inst_231! - top.res.inst_230! - top.res.inst_229! - top.res.inst_228! - top.res.inst_227! - top.res.inst_226! - top.res.inst_225! - top.res.inst_224! - top.res.inst_223! - top.res.inst_222! - top.res.inst_221! - top.res.inst_220! - top.res.inst_219! - top.res.inst_218! - top.res.inst_217! - top.res.inst_216! - top.res.inst_215! - top.res.inst_214! - top.res.inst_213! - top.res.inst_212! - top.res.inst_211! - top.res.inst_210! - top.res.inst_209! - top.res.inst_208! - top.res.inst_207! - top.res.inst_206! - top.res.inst_205! - top.res.inst_204! - top.res.inst_203! - top.res.inst_202! - top.res.inst_201! - top.res.inst_200! - top.res.inst_199! - top.res.inst_198! - top.res.inst_197! - top.res.inst_196! - top.res.inst_195! - top.res.inst_194! - top.res.inst_193! - top.res.inst_192! - top.res.inst_191! - top.res.inst_190! - top.res.inst_189! - top.res.inst_188! - top.res.inst_187! - top.res.inst_186! - top.res.inst_185! - top.res.inst_184! - top.res.inst_183! - top.res.inst_182! - top.res.inst_181! - top.res.inst_180! - top.res.inst_179! - top.res.inst_178! - top.res.inst_177! - top.res.inst_176! - top.res.inst_175! - top.res.inst_174! - top.res.inst_173! - top.res.inst_172! - top.res.inst_171! - top.res.inst_170! - top.res.inst_169! - top.res.inst_168! - top.res.inst_167! - top.res.inst_166! - top.res.inst_165! - top.res.inst_164! - top.res.inst_163! - top.res.inst_162! - top.res.inst_161! - top.res.inst_160! - top.res.inst_159! - top.res.inst_158! - top.res.inst_157! - top.res.inst_156! - top.res.inst_155! - top.res.inst_154! - top.res.inst_153! - top.res.inst_152! - top.res.inst_151! - top.res.inst_150! - top.res.inst_149! - top.res.inst_148! - top.res.inst_147! - top.res.inst_146! - top.res.inst_145! - top.res.inst_144! - top.res.inst_143! - top.res.inst_142! - top.res.inst_141! - top.res.inst_140! - top.res.inst_139! - top.res.inst_138! - top.res.inst_137! - top.res.inst_136! - top.res.inst_135! - top.res.inst_134! - top.res.inst_133! - top.res.inst_132! - top.res.inst_131! - top.res.inst_130! - top.res.inst_129! - top.res.inst_128! - top.res.inst_127! - top.res.inst_126! - top.res.inst_125! - top.res.inst_124! - top.res.inst_123! - top.res.inst_122! - top.res.inst_121! - top.res.inst_120! - top.res.inst_119! - top.res.inst_118! - top.res.inst_117! - top.res.inst_116! - top.res.inst_115! - top.res.inst_114! - top.res.inst_113! - top.res.inst_112! - top.res.inst_111! - top.res.inst_110! - top.res.inst_109! - top.res.inst_108! - top.res.inst_107! - top.res.inst_106! - top.res.inst_105! - top.res.inst_104! - top.res.inst_103! - top.res.inst_102! - top.res.inst_101! - top.res.inst_100! - top.res.inst_99! - top.res.inst_98! - top.res.inst_97! - top.res.inst_96! - top.res.inst_95! - top.res.inst_94! - top.res.inst_93! - top.res.inst_92! - top.res.inst_91! - top.res.inst_90! - top.res.inst_89! - top.res.inst_88! - top.res.inst_87! - top.res.inst_86! - top.res.inst_85! - top.res.inst_84! - top.res.inst_83! - top.res.inst_82! - top.res.inst_81! - top.res.inst_80! - top.res.inst_79! - top.res.inst_78! - top.res.inst_77! - top.res.inst_76! - top.res.inst_75! - top.res.inst_74! - top.res.inst_73! - top.res.inst_72! - top.res.inst_71! - top.res.inst_70! - top.res.inst_69! - top.res.inst_68! - top.res.inst_67! - top.res.inst_66! - top.res.inst_65! - top.res.inst_64! - top.res.inst_63! - top.res.inst_62! - top.res.inst_61! - top.res.inst_60! - top.res.inst_59! - top.res.inst_58! - top.res.inst_57! - top.res.inst_56! - top.res.inst_55! - top.res.inst_54! - top.res.inst_53! - top.res.inst_52! - top.res.inst_51! - top.res.inst_50! - top.res.inst_49! - top.res.inst_48! - top.res.inst_47! - top.res.inst_46! - top.res.inst_45! - top.res.inst_44! - top.res.inst_43! - top.res.inst_42! - top.res.inst_41! - top.res.inst_40! - top.res.inst_39! - top.res.inst_38! - top.res.inst_37! - top.res.inst_36! - top.res.inst_35! - top.res.inst_34! - top.res.inst_33! - top.res.inst_32! - top.res.inst_31! - top.res.inst_30! - top.res.inst_29! - top.res.inst_28! - top.res.inst_27! - top.res.inst_26! - top.res.inst_25! - top.res.inst_24! - top.res.inst_23! - top.res.inst_22! - top.res.inst_21! - top.res.inst_20! - top.res.inst_19! - top.res.inst_18! - top.res.inst_17! - top.res.inst_16! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.usr.stop - top.usr.steam_boiler_waiting - top.usr.physical_units_ready - top.usr.level - top.usr.steam - top.usr.pump_state_0 - top.usr.pump_state_1 - top.usr.pump_state_2 - top.usr.pump_state_3 - top.usr.pump_control_state_0 - top.usr.pump_control_state_1 - top.usr.pump_control_state_2 - top.usr.pump_control_state_3 - top.usr.pump_repaired_0 - top.usr.pump_repaired_1 - top.usr.pump_repaired_2 - top.usr.pump_repaired_3 - top.usr.pump_control_repaired_0 - top.usr.pump_control_repaired_1 - top.usr.pump_control_repaired_2 - top.usr.pump_control_repaired_3 - top.usr.level_repaired - top.usr.steam_repaired - top.usr.pump_failure_acknowledgement_0 - top.usr.pump_failure_acknowledgement_1 - top.usr.pump_failure_acknowledgement_2 - top.usr.pump_failure_acknowledgement_3 - top.usr.pump_control_failure_acknowledgement_0 - top.usr.pump_control_failure_acknowledgement_1 - top.usr.pump_control_failure_acknowledgement_2 - top.usr.pump_control_failure_acknowledgement_3 - top.usr.level_failure_acknowledgement - top.usr.steam_failure_acknowledgement - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.abs_10 - top.res.abs_11 - top.res.abs_12 - top.res.abs_13 - top.res.abs_14 - top.res.abs_15 - top.res.abs_16 - top.res.abs_17 - top.res.abs_18 - top.res.abs_19 - top.res.abs_20 - top.res.abs_21 - top.res.abs_22 - top.res.abs_23 - top.res.abs_24 - top.res.abs_25 - top.res.abs_26 - top.res.abs_27 - top.res.abs_28 - top.res.abs_29 - top.res.abs_30 - top.res.inst_297 - top.res.inst_296 - top.res.inst_295 - top.res.inst_294 - top.res.inst_293 - top.res.inst_292 - top.res.inst_291 - top.res.inst_290 - top.res.inst_289 - top.res.inst_288 - top.res.inst_287 - top.res.inst_286 - top.res.inst_285 - top.res.inst_284 - top.res.inst_283 - top.res.inst_282 - top.res.inst_281 - top.res.inst_280 - top.res.inst_279 - top.res.inst_278 - top.res.inst_277 - top.res.inst_276 - top.res.inst_275 - top.res.inst_274 - top.res.inst_273 - top.res.inst_272 - top.res.inst_271 - top.res.inst_270 - top.res.inst_269 - top.res.inst_268 - top.res.inst_267 - top.res.inst_266 - top.res.inst_265 - top.res.inst_264 - top.res.inst_263 - top.res.inst_262 - top.res.inst_261 - top.res.inst_260 - top.res.inst_259 - top.res.inst_258 - top.res.inst_257 - top.res.inst_256 - top.res.inst_255 - top.res.inst_254 - top.res.inst_253 - top.res.inst_252 - top.res.inst_251 - top.res.inst_250 - top.res.inst_249 - top.res.inst_248 - top.res.inst_247 - top.res.inst_246 - top.res.inst_245 - top.res.inst_244 - top.res.inst_243 - top.res.inst_242 - top.res.inst_241 - top.res.inst_240 - top.res.inst_239 - top.res.inst_238 - top.res.inst_237 - top.res.inst_236 - top.res.inst_235 - top.res.inst_234 - top.res.inst_233 - top.res.inst_232 - top.res.inst_231 - top.res.inst_230 - top.res.inst_229 - top.res.inst_228 - top.res.inst_227 - top.res.inst_226 - top.res.inst_225 - top.res.inst_224 - top.res.inst_223 - top.res.inst_222 - top.res.inst_221 - top.res.inst_220 - top.res.inst_219 - top.res.inst_218 - top.res.inst_217 - top.res.inst_216 - top.res.inst_215 - top.res.inst_214 - top.res.inst_213 - top.res.inst_212 - top.res.inst_211 - top.res.inst_210 - top.res.inst_209 - top.res.inst_208 - top.res.inst_207 - top.res.inst_206 - top.res.inst_205 - top.res.inst_204 - top.res.inst_203 - top.res.inst_202 - top.res.inst_201 - top.res.inst_200 - top.res.inst_199 - top.res.inst_198 - top.res.inst_197 - top.res.inst_196 - top.res.inst_195 - top.res.inst_194 - top.res.inst_193 - top.res.inst_192 - top.res.inst_191 - top.res.inst_190 - top.res.inst_189 - top.res.inst_188 - top.res.inst_187 - top.res.inst_186 - top.res.inst_185 - top.res.inst_184 - top.res.inst_183 - top.res.inst_182 - top.res.inst_181 - top.res.inst_180 - top.res.inst_179 - top.res.inst_178 - top.res.inst_177 - top.res.inst_176 - top.res.inst_175 - top.res.inst_174 - top.res.inst_173 - top.res.inst_172 - top.res.inst_171 - top.res.inst_170 - top.res.inst_169 - top.res.inst_168 - top.res.inst_167 - top.res.inst_166 - top.res.inst_165 - top.res.inst_164 - top.res.inst_163 - top.res.inst_162 - top.res.inst_161 - top.res.inst_160 - top.res.inst_159 - top.res.inst_158 - top.res.inst_157 - top.res.inst_156 - top.res.inst_155 - top.res.inst_154 - top.res.inst_153 - top.res.inst_152 - top.res.inst_151 - top.res.inst_150 - top.res.inst_149 - top.res.inst_148 - top.res.inst_147 - top.res.inst_146 - top.res.inst_145 - top.res.inst_144 - top.res.inst_143 - top.res.inst_142 - top.res.inst_141 - top.res.inst_140 - top.res.inst_139 - top.res.inst_138 - top.res.inst_137 - top.res.inst_136 - top.res.inst_135 - top.res.inst_134 - top.res.inst_133 - top.res.inst_132 - top.res.inst_131 - top.res.inst_130 - top.res.inst_129 - top.res.inst_128 - top.res.inst_127 - top.res.inst_126 - top.res.inst_125 - top.res.inst_124 - top.res.inst_123 - top.res.inst_122 - top.res.inst_121 - top.res.inst_120 - top.res.inst_119 - top.res.inst_118 - top.res.inst_117 - top.res.inst_116 - top.res.inst_115 - top.res.inst_114 - top.res.inst_113 - top.res.inst_112 - top.res.inst_111 - top.res.inst_110 - top.res.inst_109 - top.res.inst_108 - top.res.inst_107 - top.res.inst_106 - top.res.inst_105 - top.res.inst_104 - top.res.inst_103 - top.res.inst_102 - top.res.inst_101 - top.res.inst_100 - top.res.inst_99 - top.res.inst_98 - top.res.inst_97 - top.res.inst_96 - top.res.inst_95 - top.res.inst_94 - top.res.inst_93 - top.res.inst_92 - top.res.inst_91 - top.res.inst_90 - top.res.inst_89 - top.res.inst_88 - top.res.inst_87 - top.res.inst_86 - top.res.inst_85 - top.res.inst_84 - top.res.inst_83 - top.res.inst_82 - top.res.inst_81 - top.res.inst_80 - top.res.inst_79 - top.res.inst_78 - top.res.inst_77 - top.res.inst_76 - top.res.inst_75 - top.res.inst_74 - top.res.inst_73 - top.res.inst_72 - top.res.inst_71 - top.res.inst_70 - top.res.inst_69 - top.res.inst_68 - top.res.inst_67 - top.res.inst_66 - top.res.inst_65 - top.res.inst_64 - top.res.inst_63 - top.res.inst_62 - top.res.inst_61 - top.res.inst_60 - top.res.inst_59 - top.res.inst_58 - top.res.inst_57 - top.res.inst_56 - top.res.inst_55 - top.res.inst_54 - top.res.inst_53 - top.res.inst_52 - top.res.inst_51 - top.res.inst_50 - top.res.inst_49 - top.res.inst_48 - top.res.inst_47 - top.res.inst_46 - top.res.inst_45 - top.res.inst_44 - top.res.inst_43 - top.res.inst_42 - top.res.inst_41 - top.res.inst_40 - top.res.inst_39 - top.res.inst_38 - top.res.inst_37 - top.res.inst_36 - top.res.inst_35 - top.res.inst_34 - top.res.inst_33 - top.res.inst_32 - top.res.inst_31 - top.res.inst_30 - top.res.inst_29 - top.res.inst_28 - top.res.inst_27 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2) - (__node_trans_AND_0 - top.res.abs_31! - top.res.abs_32! - top.res.abs_33! - top.res.abs_34! - top.res.abs_35! - top.res.inst_1! - top.res.abs_31 - top.res.abs_32 - top.res.abs_33 - top.res.abs_34 - top.res.abs_35 - top.res.inst_1) - (__node_trans_AND_0 - top.res.abs_36! - top.res.abs_37! - top.res.abs_38! - top.res.abs_39! - top.res.abs_40! - top.res.inst_0! - top.res.abs_36 - top.res.abs_37 - top.res.abs_38 - top.res.abs_39 - top.res.abs_40 - top.res.inst_0) - (not top.res.init_flag!))))))))))))))))))))))))) - (= top.res.nondet_32 top.res.nondet_32) - (= top.res.nondet_31 top.res.nondet_31) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.stop Bool) - (top.usr.steam_boiler_waiting Bool) - (top.usr.physical_units_ready Bool) - (top.usr.level Int) - (top.usr.steam Int) - (top.usr.pump_state_0 Int) - (top.usr.pump_state_1 Int) - (top.usr.pump_state_2 Int) - (top.usr.pump_state_3 Int) - (top.usr.pump_control_state_0 Bool) - (top.usr.pump_control_state_1 Bool) - (top.usr.pump_control_state_2 Bool) - (top.usr.pump_control_state_3 Bool) - (top.usr.pump_repaired_0 Bool) - (top.usr.pump_repaired_1 Bool) - (top.usr.pump_repaired_2 Bool) - (top.usr.pump_repaired_3 Bool) - (top.usr.pump_control_repaired_0 Bool) - (top.usr.pump_control_repaired_1 Bool) - (top.usr.pump_control_repaired_2 Bool) - (top.usr.pump_control_repaired_3 Bool) - (top.usr.level_repaired Bool) - (top.usr.steam_repaired Bool) - (top.usr.pump_failure_acknowledgement_0 Bool) - (top.usr.pump_failure_acknowledgement_1 Bool) - (top.usr.pump_failure_acknowledgement_2 Bool) - (top.usr.pump_failure_acknowledgement_3 Bool) - (top.usr.pump_control_failure_acknowledgement_0 Bool) - (top.usr.pump_control_failure_acknowledgement_1 Bool) - (top.usr.pump_control_failure_acknowledgement_2 Bool) - (top.usr.pump_control_failure_acknowledgement_3 Bool) - (top.usr.level_failure_acknowledgement Bool) - (top.usr.steam_failure_acknowledgement Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.abs_13 Bool) - (top.res.abs_14 Bool) - (top.res.abs_15 Bool) - (top.res.abs_16 Bool) - (top.res.abs_17 Bool) - (top.res.abs_18 Bool) - (top.res.abs_19 Bool) - (top.res.abs_20 Bool) - (top.res.abs_21 Bool) - (top.res.abs_22 Bool) - (top.res.abs_23 Bool) - (top.res.abs_24 Bool) - (top.res.abs_25 Bool) - (top.res.abs_26 Bool) - (top.res.abs_27 Bool) - (top.res.abs_28 Bool) - (top.res.abs_29 Bool) - (top.res.abs_30 Bool) - (top.res.abs_31 Bool) - (top.res.abs_32 Bool) - (top.res.abs_33 Bool) - (top.res.abs_34 Bool) - (top.res.abs_35 Bool) - (top.res.abs_36 Bool) - (top.res.abs_37 Bool) - (top.res.abs_38 Bool) - (top.res.abs_39 Bool) - (top.res.abs_40 Bool) - (top.res.inst_297 Bool) - (top.res.inst_296 Bool) - (top.res.inst_295 Int) - (top.res.inst_294 Int) - (top.res.inst_293 Int) - (top.res.inst_292 Int) - (top.res.inst_291 Int) - (top.res.inst_290 Int) - (top.res.inst_289 Int) - (top.res.inst_288 Int) - (top.res.inst_287 Int) - (top.res.inst_286 Int) - (top.res.inst_285 Int) - (top.res.inst_284 Int) - (top.res.inst_283 Int) - (top.res.inst_282 Int) - (top.res.inst_281 Int) - (top.res.inst_280 Int) - (top.res.inst_279 Int) - (top.res.inst_278 Bool) - (top.res.inst_277 Int) - (top.res.inst_276 Int) - (top.res.inst_275 Int) - (top.res.inst_274 Bool) - (top.res.inst_273 Bool) - (top.res.inst_272 Bool) - (top.res.inst_271 Bool) - (top.res.inst_270 Int) - (top.res.inst_269 Int) - (top.res.inst_268 Bool) - (top.res.inst_267 Int) - (top.res.inst_266 Int) - (top.res.inst_265 Bool) - (top.res.inst_264 Int) - (top.res.inst_263 Bool) - (top.res.inst_262 Bool) - (top.res.inst_261 Bool) - (top.res.inst_260 Bool) - (top.res.inst_259 Int) - (top.res.inst_258 Int) - (top.res.inst_257 Bool) - (top.res.inst_256 Int) - (top.res.inst_255 Int) - (top.res.inst_254 Bool) - (top.res.inst_253 Int) - (top.res.inst_252 Bool) - (top.res.inst_251 Bool) - (top.res.inst_250 Bool) - (top.res.inst_249 Bool) - (top.res.inst_248 Int) - (top.res.inst_247 Int) - (top.res.inst_246 Bool) - (top.res.inst_245 Int) - (top.res.inst_244 Int) - (top.res.inst_243 Bool) - (top.res.inst_242 Int) - (top.res.inst_241 Bool) - (top.res.inst_240 Bool) - (top.res.inst_239 Bool) - (top.res.inst_238 Bool) - (top.res.inst_237 Int) - (top.res.inst_236 Int) - (top.res.inst_235 Bool) - (top.res.inst_234 Int) - (top.res.inst_233 Int) - (top.res.inst_232 Bool) - (top.res.inst_231 Int) - (top.res.inst_230 Int) - (top.res.inst_229 Int) - (top.res.inst_228 Int) - (top.res.inst_227 Int) - (top.res.inst_226 Bool) - (top.res.inst_225 Bool) - (top.res.inst_224 Bool) - (top.res.inst_223 Bool) - (top.res.inst_222 Int) - (top.res.inst_221 Int) - (top.res.inst_220 Int) - (top.res.inst_219 Int) - (top.res.inst_218 Int) - (top.res.inst_217 Int) - (top.res.inst_216 Int) - (top.res.inst_215 Int) - (top.res.inst_214 Int) - (top.res.inst_213 Int) - (top.res.inst_212 Int) - (top.res.inst_211 Int) - (top.res.inst_210 Bool) - (top.res.inst_209 Int) - (top.res.inst_208 Bool) - (top.res.inst_207 Int) - (top.res.inst_206 Bool) - (top.res.inst_205 Bool) - (top.res.inst_204 Bool) - (top.res.inst_203 Bool) - (top.res.inst_202 Bool) - (top.res.inst_201 Bool) - (top.res.inst_200 Bool) - (top.res.inst_199 Bool) - (top.res.inst_198 Bool) - (top.res.inst_197 Bool) - (top.res.inst_196 Bool) - (top.res.inst_195 Bool) - (top.res.inst_194 Bool) - (top.res.inst_193 Bool) - (top.res.inst_192 Bool) - (top.res.inst_191 Bool) - (top.res.inst_190 Bool) - (top.res.inst_189 Bool) - (top.res.inst_188 Bool) - (top.res.inst_187 Bool) - (top.res.inst_186 Bool) - (top.res.inst_185 Bool) - (top.res.inst_184 Bool) - (top.res.inst_183 Bool) - (top.res.inst_182 Bool) - (top.res.inst_181 Bool) - (top.res.inst_180 Bool) - (top.res.inst_179 Bool) - (top.res.inst_178 Bool) - (top.res.inst_177 Bool) - (top.res.inst_176 Bool) - (top.res.inst_175 Bool) - (top.res.inst_174 Int) - (top.res.inst_173 Bool) - (top.res.inst_172 Bool) - (top.res.inst_171 Bool) - (top.res.inst_170 Bool) - (top.res.inst_169 Bool) - (top.res.inst_168 Bool) - (top.res.inst_167 Bool) - (top.res.inst_166 Bool) - (top.res.inst_165 Bool) - (top.res.inst_164 Bool) - (top.res.inst_163 Bool) - (top.res.inst_162 Bool) - (top.res.inst_161 Bool) - (top.res.inst_160 Bool) - (top.res.inst_159 Bool) - (top.res.inst_158 Bool) - (top.res.inst_157 Bool) - (top.res.inst_156 Bool) - (top.res.inst_155 Bool) - (top.res.inst_154 Bool) - (top.res.inst_153 Bool) - (top.res.inst_152 Bool) - (top.res.inst_151 Bool) - (top.res.inst_150 Bool) - (top.res.inst_149 Bool) - (top.res.inst_148 Bool) - (top.res.inst_147 Bool) - (top.res.inst_146 Bool) - (top.res.inst_145 Bool) - (top.res.inst_144 Bool) - (top.res.inst_143 Bool) - (top.res.inst_142 Bool) - (top.res.inst_141 Bool) - (top.res.inst_140 Bool) - (top.res.inst_139 Bool) - (top.res.inst_138 Bool) - (top.res.inst_137 Bool) - (top.res.inst_136 Bool) - (top.res.inst_135 Bool) - (top.res.inst_134 Bool) - (top.res.inst_133 Bool) - (top.res.inst_132 Bool) - (top.res.inst_131 Bool) - (top.res.inst_130 Bool) - (top.res.inst_129 Bool) - (top.res.inst_128 Bool) - (top.res.inst_127 Bool) - (top.res.inst_126 Bool) - (top.res.inst_125 Bool) - (top.res.inst_124 Bool) - (top.res.inst_123 Bool) - (top.res.inst_122 Int) - (top.res.inst_121 Bool) - (top.res.inst_120 Bool) - (top.res.inst_119 Int) - (top.res.inst_118 Int) - (top.res.inst_117 Bool) - (top.res.inst_116 Bool) - (top.res.inst_115 Bool) - (top.res.inst_114 Bool) - (top.res.inst_113 Int) - (top.res.inst_112 Int) - (top.res.inst_111 Bool) - (top.res.inst_110 Bool) - (top.res.inst_109 Bool) - (top.res.inst_108 Bool) - (top.res.inst_107 Bool) - (top.res.inst_106 Bool) - (top.res.inst_105 Bool) - (top.res.inst_104 Bool) - (top.res.inst_103 Int) - (top.res.inst_102 Int) - (top.res.inst_101 Int) - (top.res.inst_100 Int) - (top.res.inst_99 Bool) - (top.res.inst_98 Bool) - (top.res.inst_97 Bool) - (top.res.inst_96 Bool) - (top.res.inst_95 Int) - (top.res.inst_94 Int) - (top.res.inst_93 Int) - (top.res.inst_92 Int) - (top.res.inst_91 Int) - (top.res.inst_90 Int) - (top.res.inst_89 Int) - (top.res.inst_88 Int) - (top.res.inst_87 Int) - (top.res.inst_86 Int) - (top.res.inst_85 Bool) - (top.res.inst_84 Bool) - (top.res.inst_83 Bool) - (top.res.inst_82 Bool) - (top.res.inst_81 Int) - (top.res.inst_80 Int) - (top.res.inst_79 Int) - (top.res.inst_78 Int) - (top.res.inst_77 Bool) - (top.res.inst_76 Int) - (top.res.inst_75 Bool) - (top.res.inst_74 Int) - (top.res.inst_73 Bool) - (top.res.inst_72 Int) - (top.res.inst_71 Bool) - (top.res.inst_70 Int) - (top.res.inst_69 Bool) - (top.res.inst_68 Int) - (top.res.inst_67 Bool) - (top.res.inst_66 Int) - (top.res.inst_65 Bool) - (top.res.inst_64 Int) - (top.res.inst_63 Bool) - (top.res.inst_62 Int) - (top.res.inst_61 Bool) - (top.res.inst_60 Bool) - (top.res.inst_59 Bool) - (top.res.inst_58 Bool) - (top.res.inst_57 Bool) - (top.res.inst_56 Bool) - (top.res.inst_55 Bool) - (top.res.inst_54 Bool) - (top.res.inst_53 Bool) - (top.res.inst_52 Bool) - (top.res.inst_51 Bool) - (top.res.inst_50 Bool) - (top.res.inst_49 Int) - (top.res.inst_48 Bool) - (top.res.inst_47 Bool) - (top.res.inst_46 Bool) - (top.res.inst_45 Bool) - (top.res.inst_44 Bool) - (top.res.inst_43 Bool) - (top.res.inst_42 Bool) - (top.res.inst_41 Bool) - (top.res.inst_40 Bool) - (top.res.inst_39 Bool) - (top.res.inst_38 Bool) - (top.res.inst_37 Int) - (top.res.inst_36 Int) - (top.res.inst_35 Int) - (top.res.inst_34 Int) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Int) - (top.res.inst_23 Int) - (top.res.inst_22 Int) - (top.res.inst_21 Int) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Int) - (top.res.inst_10 Int) - (top.res.inst_9 Int) - (top.res.inst_8 Int) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_AND_0 ((AND.usr.a_0_a_0 Bool) (AND.usr.a_1_a_0 Bool) (AND.usr.a_2_a_0 Bool) (AND.usr.a_3_a_0 Bool) (AND.usr.AND_a_0 Bool) (AND.res.init_flag_a_0 Bool)) Bool + (and (= AND.usr.AND_a_0 (and (and (and AND.usr.a_0_a_0 AND.usr.a_1_a_0) AND.usr.a_2_a_0) AND.usr.a_3_a_0)) AND.res.init_flag_a_0)) +(define-fun __node_trans_AND_0 ((AND.usr.a_0_a_1 Bool) (AND.usr.a_1_a_1 Bool) (AND.usr.a_2_a_1 Bool) (AND.usr.a_3_a_1 Bool) (AND.usr.AND_a_1 Bool) (AND.res.init_flag_a_1 Bool) (AND.usr.a_0_a_0 Bool) (AND.usr.a_1_a_0 Bool) (AND.usr.a_2_a_0 Bool) (AND.usr.a_3_a_0 Bool) (AND.usr.AND_a_0 Bool) (AND.res.init_flag_a_0 Bool)) Bool + (and (= AND.usr.AND_a_1 (and (and (and AND.usr.a_0_a_1 AND.usr.a_1_a_1) AND.usr.a_2_a_1) AND.usr.a_3_a_1)) (not AND.res.init_flag_a_1))) +(define-fun __node_init_level_failure_0 ((level_failure.usr.level_defect_a_0 Int) (level_failure.usr.level_failure_a_0 Bool) (level_failure.res.init_flag_a_0 Bool)) Bool + (and (= level_failure.usr.level_failure_a_0 (not (= level_failure.usr.level_defect_a_0 0))) level_failure.res.init_flag_a_0)) +(define-fun __node_trans_level_failure_0 ((level_failure.usr.level_defect_a_1 Int) (level_failure.usr.level_failure_a_1 Bool) (level_failure.res.init_flag_a_1 Bool) (level_failure.usr.level_defect_a_0 Int) (level_failure.usr.level_failure_a_0 Bool) (level_failure.res.init_flag_a_0 Bool)) Bool + (and (= level_failure.usr.level_failure_a_1 (not (= level_failure.usr.level_defect_a_1 0))) (not level_failure.res.init_flag_a_1))) +(define-fun __node_init_steam_failure_0 ((steam_failure.usr.steam_defect_a_0 Int) (steam_failure.usr.steam_failure_a_0 Bool) (steam_failure.res.init_flag_a_0 Bool)) Bool + (and (= steam_failure.usr.steam_failure_a_0 (not (= steam_failure.usr.steam_defect_a_0 0))) steam_failure.res.init_flag_a_0)) +(define-fun __node_trans_steam_failure_0 ((steam_failure.usr.steam_defect_a_1 Int) (steam_failure.usr.steam_failure_a_1 Bool) (steam_failure.res.init_flag_a_1 Bool) (steam_failure.usr.steam_defect_a_0 Int) (steam_failure.usr.steam_failure_a_0 Bool) (steam_failure.res.init_flag_a_0 Bool)) Bool + (and (= steam_failure.usr.steam_failure_a_1 (not (= steam_failure.usr.steam_defect_a_1 0))) (not steam_failure.res.init_flag_a_1))) +(define-fun __node_init_OR_0 ((OR.usr.a_0_a_0 Bool) (OR.usr.a_1_a_0 Bool) (OR.usr.a_2_a_0 Bool) (OR.usr.a_3_a_0 Bool) (OR.usr.OR_a_0 Bool) (OR.res.init_flag_a_0 Bool)) Bool + (and (= OR.usr.OR_a_0 (or (or (or OR.usr.a_0_a_0 OR.usr.a_1_a_0) OR.usr.a_2_a_0) OR.usr.a_3_a_0)) OR.res.init_flag_a_0)) +(define-fun __node_trans_OR_0 ((OR.usr.a_0_a_1 Bool) (OR.usr.a_1_a_1 Bool) (OR.usr.a_2_a_1 Bool) (OR.usr.a_3_a_1 Bool) (OR.usr.OR_a_1 Bool) (OR.res.init_flag_a_1 Bool) (OR.usr.a_0_a_0 Bool) (OR.usr.a_1_a_0 Bool) (OR.usr.a_2_a_0 Bool) (OR.usr.a_3_a_0 Bool) (OR.usr.OR_a_0 Bool) (OR.res.init_flag_a_0 Bool)) Bool + (and (= OR.usr.OR_a_1 (or (or (or OR.usr.a_0_a_1 OR.usr.a_1_a_1) OR.usr.a_2_a_1) OR.usr.a_3_a_1)) (not OR.res.init_flag_a_1))) +(define-fun __node_init_pump_control_failure_0 ((pump_control_failure.usr.pump_defect_a_0 Int) (pump_control_failure.usr.pump_failure_a_0 Bool) (pump_control_failure.res.init_flag_a_0 Bool)) Bool + (and (= pump_control_failure.usr.pump_failure_a_0 (not (= pump_control_failure.usr.pump_defect_a_0 0))) pump_control_failure.res.init_flag_a_0)) +(define-fun __node_trans_pump_control_failure_0 ((pump_control_failure.usr.pump_defect_a_1 Int) (pump_control_failure.usr.pump_failure_a_1 Bool) (pump_control_failure.res.init_flag_a_1 Bool) (pump_control_failure.usr.pump_defect_a_0 Int) (pump_control_failure.usr.pump_failure_a_0 Bool) (pump_control_failure.res.init_flag_a_0 Bool)) Bool + (and (= pump_control_failure.usr.pump_failure_a_1 (not (= pump_control_failure.usr.pump_defect_a_1 0))) (not pump_control_failure.res.init_flag_a_1))) +(define-fun __node_init_pump_failure_0 ((pump_failure.usr.pump_defect_a_0 Int) (pump_failure.usr.pump_failure_a_0 Bool) (pump_failure.res.init_flag_a_0 Bool)) Bool + (and (= pump_failure.usr.pump_failure_a_0 (not (= pump_failure.usr.pump_defect_a_0 0))) pump_failure.res.init_flag_a_0)) +(define-fun __node_trans_pump_failure_0 ((pump_failure.usr.pump_defect_a_1 Int) (pump_failure.usr.pump_failure_a_1 Bool) (pump_failure.res.init_flag_a_1 Bool) (pump_failure.usr.pump_defect_a_0 Int) (pump_failure.usr.pump_failure_a_0 Bool) (pump_failure.res.init_flag_a_0 Bool)) Bool + (and (= pump_failure.usr.pump_failure_a_1 (not (= pump_failure.usr.pump_defect_a_1 0))) (not pump_failure.res.init_flag_a_1))) +(define-fun __node_init_failure_0 ((failure.usr.level_defect_a_0 Int) (failure.usr.steam_defect_a_0 Int) (failure.usr.pump_defect_0_a_0 Int) (failure.usr.pump_defect_1_a_0 Int) (failure.usr.pump_defect_2_a_0 Int) (failure.usr.pump_defect_3_a_0 Int) (failure.usr.pump_control_defect_0_a_0 Int) (failure.usr.pump_control_defect_1_a_0 Int) (failure.usr.pump_control_defect_2_a_0 Int) (failure.usr.pump_control_defect_3_a_0 Int) (failure.usr.failure_a_0 Bool) (failure.res.init_flag_a_0 Bool) (failure.res.abs_0_a_0 Bool) (failure.res.abs_1_a_0 Bool) (failure.res.abs_2_a_0 Bool) (failure.res.abs_3_a_0 Bool) (failure.res.abs_4_a_0 Bool) (failure.res.abs_5_a_0 Bool) (failure.res.abs_6_a_0 Bool) (failure.res.abs_7_a_0 Bool) (failure.res.abs_8_a_0 Bool) (failure.res.abs_9_a_0 Bool) (failure.res.abs_10_a_0 Bool) (failure.res.abs_11_a_0 Bool) (failure.res.inst_11_a_0 Bool) (failure.res.inst_10_a_0 Bool) (failure.res.inst_9_a_0 Bool) (failure.res.inst_8_a_0 Bool) (failure.res.inst_7_a_0 Bool) (failure.res.inst_6_a_0 Bool) (failure.res.inst_5_a_0 Bool) (failure.res.inst_4_a_0 Bool) (failure.res.inst_3_a_0 Bool) (failure.res.inst_2_a_0 Bool) (failure.res.inst_1_a_0 Bool) (failure.res.inst_0_a_0 Bool)) Bool + (and (= failure.usr.failure_a_0 (or (or (or failure.res.abs_0_a_0 failure.res.abs_1_a_0) failure.res.abs_6_a_0) failure.res.abs_11_a_0)) (__node_init_level_failure_0 failure.usr.level_defect_a_0 failure.res.abs_0_a_0 failure.res.inst_11_a_0) (__node_init_steam_failure_0 failure.usr.steam_defect_a_0 failure.res.abs_1_a_0 failure.res.inst_10_a_0) (__node_init_OR_0 failure.res.abs_2_a_0 failure.res.abs_3_a_0 failure.res.abs_4_a_0 failure.res.abs_5_a_0 failure.res.abs_6_a_0 failure.res.inst_9_a_0) (__node_init_pump_failure_0 failure.usr.pump_defect_0_a_0 failure.res.abs_2_a_0 failure.res.inst_8_a_0) (__node_init_pump_failure_0 failure.usr.pump_defect_1_a_0 failure.res.abs_3_a_0 failure.res.inst_7_a_0) (__node_init_pump_failure_0 failure.usr.pump_defect_2_a_0 failure.res.abs_4_a_0 failure.res.inst_6_a_0) (__node_init_pump_failure_0 failure.usr.pump_defect_3_a_0 failure.res.abs_5_a_0 failure.res.inst_5_a_0) (__node_init_OR_0 failure.res.abs_7_a_0 failure.res.abs_8_a_0 failure.res.abs_9_a_0 failure.res.abs_10_a_0 failure.res.abs_11_a_0 failure.res.inst_4_a_0) (__node_init_pump_control_failure_0 failure.usr.pump_control_defect_0_a_0 failure.res.abs_7_a_0 failure.res.inst_3_a_0) (__node_init_pump_control_failure_0 failure.usr.pump_control_defect_1_a_0 failure.res.abs_8_a_0 failure.res.inst_2_a_0) (__node_init_pump_control_failure_0 failure.usr.pump_control_defect_2_a_0 failure.res.abs_9_a_0 failure.res.inst_1_a_0) (__node_init_pump_control_failure_0 failure.usr.pump_control_defect_3_a_0 failure.res.abs_10_a_0 failure.res.inst_0_a_0) failure.res.init_flag_a_0)) +(define-fun __node_trans_failure_0 ((failure.usr.level_defect_a_1 Int) (failure.usr.steam_defect_a_1 Int) (failure.usr.pump_defect_0_a_1 Int) (failure.usr.pump_defect_1_a_1 Int) (failure.usr.pump_defect_2_a_1 Int) (failure.usr.pump_defect_3_a_1 Int) (failure.usr.pump_control_defect_0_a_1 Int) (failure.usr.pump_control_defect_1_a_1 Int) (failure.usr.pump_control_defect_2_a_1 Int) (failure.usr.pump_control_defect_3_a_1 Int) (failure.usr.failure_a_1 Bool) (failure.res.init_flag_a_1 Bool) (failure.res.abs_0_a_1 Bool) (failure.res.abs_1_a_1 Bool) (failure.res.abs_2_a_1 Bool) (failure.res.abs_3_a_1 Bool) (failure.res.abs_4_a_1 Bool) (failure.res.abs_5_a_1 Bool) (failure.res.abs_6_a_1 Bool) (failure.res.abs_7_a_1 Bool) (failure.res.abs_8_a_1 Bool) (failure.res.abs_9_a_1 Bool) (failure.res.abs_10_a_1 Bool) (failure.res.abs_11_a_1 Bool) (failure.res.inst_11_a_1 Bool) (failure.res.inst_10_a_1 Bool) (failure.res.inst_9_a_1 Bool) (failure.res.inst_8_a_1 Bool) (failure.res.inst_7_a_1 Bool) (failure.res.inst_6_a_1 Bool) (failure.res.inst_5_a_1 Bool) (failure.res.inst_4_a_1 Bool) (failure.res.inst_3_a_1 Bool) (failure.res.inst_2_a_1 Bool) (failure.res.inst_1_a_1 Bool) (failure.res.inst_0_a_1 Bool) (failure.usr.level_defect_a_0 Int) (failure.usr.steam_defect_a_0 Int) (failure.usr.pump_defect_0_a_0 Int) (failure.usr.pump_defect_1_a_0 Int) (failure.usr.pump_defect_2_a_0 Int) (failure.usr.pump_defect_3_a_0 Int) (failure.usr.pump_control_defect_0_a_0 Int) (failure.usr.pump_control_defect_1_a_0 Int) (failure.usr.pump_control_defect_2_a_0 Int) (failure.usr.pump_control_defect_3_a_0 Int) (failure.usr.failure_a_0 Bool) (failure.res.init_flag_a_0 Bool) (failure.res.abs_0_a_0 Bool) (failure.res.abs_1_a_0 Bool) (failure.res.abs_2_a_0 Bool) (failure.res.abs_3_a_0 Bool) (failure.res.abs_4_a_0 Bool) (failure.res.abs_5_a_0 Bool) (failure.res.abs_6_a_0 Bool) (failure.res.abs_7_a_0 Bool) (failure.res.abs_8_a_0 Bool) (failure.res.abs_9_a_0 Bool) (failure.res.abs_10_a_0 Bool) (failure.res.abs_11_a_0 Bool) (failure.res.inst_11_a_0 Bool) (failure.res.inst_10_a_0 Bool) (failure.res.inst_9_a_0 Bool) (failure.res.inst_8_a_0 Bool) (failure.res.inst_7_a_0 Bool) (failure.res.inst_6_a_0 Bool) (failure.res.inst_5_a_0 Bool) (failure.res.inst_4_a_0 Bool) (failure.res.inst_3_a_0 Bool) (failure.res.inst_2_a_0 Bool) (failure.res.inst_1_a_0 Bool) (failure.res.inst_0_a_0 Bool)) Bool + (and (= failure.usr.failure_a_1 (or (or (or failure.res.abs_0_a_1 failure.res.abs_1_a_1) failure.res.abs_6_a_1) failure.res.abs_11_a_1)) (__node_trans_level_failure_0 failure.usr.level_defect_a_1 failure.res.abs_0_a_1 failure.res.inst_11_a_1 failure.usr.level_defect_a_0 failure.res.abs_0_a_0 failure.res.inst_11_a_0) (__node_trans_steam_failure_0 failure.usr.steam_defect_a_1 failure.res.abs_1_a_1 failure.res.inst_10_a_1 failure.usr.steam_defect_a_0 failure.res.abs_1_a_0 failure.res.inst_10_a_0) (__node_trans_OR_0 failure.res.abs_2_a_1 failure.res.abs_3_a_1 failure.res.abs_4_a_1 failure.res.abs_5_a_1 failure.res.abs_6_a_1 failure.res.inst_9_a_1 failure.res.abs_2_a_0 failure.res.abs_3_a_0 failure.res.abs_4_a_0 failure.res.abs_5_a_0 failure.res.abs_6_a_0 failure.res.inst_9_a_0) (__node_trans_pump_failure_0 failure.usr.pump_defect_0_a_1 failure.res.abs_2_a_1 failure.res.inst_8_a_1 failure.usr.pump_defect_0_a_0 failure.res.abs_2_a_0 failure.res.inst_8_a_0) (__node_trans_pump_failure_0 failure.usr.pump_defect_1_a_1 failure.res.abs_3_a_1 failure.res.inst_7_a_1 failure.usr.pump_defect_1_a_0 failure.res.abs_3_a_0 failure.res.inst_7_a_0) (__node_trans_pump_failure_0 failure.usr.pump_defect_2_a_1 failure.res.abs_4_a_1 failure.res.inst_6_a_1 failure.usr.pump_defect_2_a_0 failure.res.abs_4_a_0 failure.res.inst_6_a_0) (__node_trans_pump_failure_0 failure.usr.pump_defect_3_a_1 failure.res.abs_5_a_1 failure.res.inst_5_a_1 failure.usr.pump_defect_3_a_0 failure.res.abs_5_a_0 failure.res.inst_5_a_0) (__node_trans_OR_0 failure.res.abs_7_a_1 failure.res.abs_8_a_1 failure.res.abs_9_a_1 failure.res.abs_10_a_1 failure.res.abs_11_a_1 failure.res.inst_4_a_1 failure.res.abs_7_a_0 failure.res.abs_8_a_0 failure.res.abs_9_a_0 failure.res.abs_10_a_0 failure.res.abs_11_a_0 failure.res.inst_4_a_0) (__node_trans_pump_control_failure_0 failure.usr.pump_control_defect_0_a_1 failure.res.abs_7_a_1 failure.res.inst_3_a_1 failure.usr.pump_control_defect_0_a_0 failure.res.abs_7_a_0 failure.res.inst_3_a_0) (__node_trans_pump_control_failure_0 failure.usr.pump_control_defect_1_a_1 failure.res.abs_8_a_1 failure.res.inst_2_a_1 failure.usr.pump_control_defect_1_a_0 failure.res.abs_8_a_0 failure.res.inst_2_a_0) (__node_trans_pump_control_failure_0 failure.usr.pump_control_defect_2_a_1 failure.res.abs_9_a_1 failure.res.inst_1_a_1 failure.usr.pump_control_defect_2_a_0 failure.res.abs_9_a_0 failure.res.inst_1_a_0) (__node_trans_pump_control_failure_0 failure.usr.pump_control_defect_3_a_1 failure.res.abs_10_a_1 failure.res.inst_0_a_1 failure.usr.pump_control_defect_3_a_0 failure.res.abs_10_a_0 failure.res.inst_0_a_0) (not failure.res.init_flag_a_1))) +(define-fun __node_init_steam_failure_startup_0 ((steam_failure_startup.usr.steam_a_0 Int) (steam_failure_startup.usr.steam_failure_startup_a_0 Bool) (steam_failure_startup.res.init_flag_a_0 Bool)) Bool + (and (= steam_failure_startup.usr.steam_failure_startup_a_0 (not (= steam_failure_startup.usr.steam_a_0 0))) steam_failure_startup.res.init_flag_a_0)) +(define-fun __node_trans_steam_failure_startup_0 ((steam_failure_startup.usr.steam_a_1 Int) (steam_failure_startup.usr.steam_failure_startup_a_1 Bool) (steam_failure_startup.res.init_flag_a_1 Bool) (steam_failure_startup.usr.steam_a_0 Int) (steam_failure_startup.usr.steam_failure_startup_a_0 Bool) (steam_failure_startup.res.init_flag_a_0 Bool)) Bool + (and (= steam_failure_startup.usr.steam_failure_startup_a_1 (not (= steam_failure_startup.usr.steam_a_1 0))) (not steam_failure_startup.res.init_flag_a_1))) +(define-fun __node_init_dangerous_level_0 ((dangerous_level.usr.q_a_0 Int) (dangerous_level.usr.dangerous_level_a_0 Bool) (dangerous_level.res.init_flag_a_0 Bool)) Bool + (and (= dangerous_level.usr.dangerous_level_a_0 (or (<= dangerous_level.usr.q_a_0 150) (>= dangerous_level.usr.q_a_0 850))) dangerous_level.res.init_flag_a_0)) +(define-fun __node_trans_dangerous_level_0 ((dangerous_level.usr.q_a_1 Int) (dangerous_level.usr.dangerous_level_a_1 Bool) (dangerous_level.res.init_flag_a_1 Bool) (dangerous_level.usr.q_a_0 Int) (dangerous_level.usr.dangerous_level_a_0 Bool) (dangerous_level.res.init_flag_a_0 Bool)) Bool + (and (= dangerous_level.usr.dangerous_level_a_1 (or (<= dangerous_level.usr.q_a_1 150) (>= dangerous_level.usr.q_a_1 850))) (not dangerous_level.res.init_flag_a_1))) +(define-fun __node_init_transmission_failure_0 ((transmission_failure.usr.pump_state_0_a_0 Int) (transmission_failure.usr.pump_state_1_a_0 Int) (transmission_failure.usr.pump_state_2_a_0 Int) (transmission_failure.usr.pump_state_3_a_0 Int) (transmission_failure.usr.transmission_failure_a_0 Bool) (transmission_failure.res.init_flag_a_0 Bool)) Bool + (and (= transmission_failure.usr.transmission_failure_a_0 (or (or (or (= transmission_failure.usr.pump_state_0_a_0 3) (= transmission_failure.usr.pump_state_1_a_0 3)) (= transmission_failure.usr.pump_state_2_a_0 3)) (= transmission_failure.usr.pump_state_3_a_0 3))) transmission_failure.res.init_flag_a_0)) +(define-fun __node_trans_transmission_failure_0 ((transmission_failure.usr.pump_state_0_a_1 Int) (transmission_failure.usr.pump_state_1_a_1 Int) (transmission_failure.usr.pump_state_2_a_1 Int) (transmission_failure.usr.pump_state_3_a_1 Int) (transmission_failure.usr.transmission_failure_a_1 Bool) (transmission_failure.res.init_flag_a_1 Bool) (transmission_failure.usr.pump_state_0_a_0 Int) (transmission_failure.usr.pump_state_1_a_0 Int) (transmission_failure.usr.pump_state_2_a_0 Int) (transmission_failure.usr.pump_state_3_a_0 Int) (transmission_failure.usr.transmission_failure_a_0 Bool) (transmission_failure.res.init_flag_a_0 Bool)) Bool + (and (= transmission_failure.usr.transmission_failure_a_1 (or (or (or (= transmission_failure.usr.pump_state_0_a_1 3) (= transmission_failure.usr.pump_state_1_a_1 3)) (= transmission_failure.usr.pump_state_2_a_1 3)) (= transmission_failure.usr.pump_state_3_a_1 3))) (not transmission_failure.res.init_flag_a_1))) +(define-fun __node_init_critical_failure_0 ((critical_failure.usr.op_mode_a_0 Int) (critical_failure.usr.steam_a_0 Int) (critical_failure.usr.level_defect_a_0 Int) (critical_failure.usr.steam_defect_a_0 Int) (critical_failure.usr.pump_defect_0_a_0 Int) (critical_failure.usr.pump_defect_1_a_0 Int) (critical_failure.usr.pump_defect_2_a_0 Int) (critical_failure.usr.pump_defect_3_a_0 Int) (critical_failure.usr.q_a_0 Int) (critical_failure.usr.pump_state_0_a_0 Int) (critical_failure.usr.pump_state_1_a_0 Int) (critical_failure.usr.pump_state_2_a_0 Int) (critical_failure.usr.pump_state_3_a_0 Int) (critical_failure.usr.critical_failure_a_0 Bool) (critical_failure.res.init_flag_a_0 Bool) (critical_failure.res.abs_0_a_0 Bool) (critical_failure.res.abs_1_a_0 Bool) (critical_failure.res.abs_2_a_0 Bool) (critical_failure.res.abs_3_a_0 Bool) (critical_failure.res.abs_4_a_0 Bool) (critical_failure.res.abs_5_a_0 Bool) (critical_failure.res.abs_6_a_0 Bool) (critical_failure.res.abs_7_a_0 Bool) (critical_failure.res.abs_8_a_0 Bool) (critical_failure.res.abs_9_a_0 Bool) (critical_failure.res.inst_9_a_0 Bool) (critical_failure.res.inst_8_a_0 Bool) (critical_failure.res.inst_7_a_0 Bool) (critical_failure.res.inst_6_a_0 Bool) (critical_failure.res.inst_5_a_0 Bool) (critical_failure.res.inst_4_a_0 Bool) (critical_failure.res.inst_3_a_0 Bool) (critical_failure.res.inst_2_a_0 Bool) (critical_failure.res.inst_1_a_0 Bool) (critical_failure.res.inst_0_a_0 Bool)) Bool + (and (= critical_failure.usr.critical_failure_a_0 (or (or (or (or (or critical_failure.res.abs_0_a_0 (and (= critical_failure.usr.op_mode_a_0 1) critical_failure.res.abs_1_a_0)) (and (= critical_failure.usr.op_mode_a_0 2) (or critical_failure.res.abs_2_a_0 critical_failure.res.abs_3_a_0))) (and (= critical_failure.usr.op_mode_a_0 3) critical_failure.res.abs_4_a_0)) (and (= critical_failure.usr.op_mode_a_0 4) critical_failure.res.abs_4_a_0)) (and (= critical_failure.usr.op_mode_a_0 5) (or (or critical_failure.res.abs_4_a_0 critical_failure.res.abs_3_a_0) critical_failure.res.abs_9_a_0)))) (__node_init_transmission_failure_0 critical_failure.usr.pump_state_0_a_0 critical_failure.usr.pump_state_1_a_0 critical_failure.usr.pump_state_2_a_0 critical_failure.usr.pump_state_3_a_0 critical_failure.res.abs_0_a_0 critical_failure.res.inst_9_a_0) (__node_init_steam_failure_startup_0 critical_failure.usr.steam_a_0 critical_failure.res.abs_1_a_0 critical_failure.res.inst_8_a_0) (__node_init_level_failure_0 critical_failure.usr.level_defect_a_0 critical_failure.res.abs_2_a_0 critical_failure.res.inst_7_a_0) (__node_init_steam_failure_0 critical_failure.usr.steam_defect_a_0 critical_failure.res.abs_3_a_0 critical_failure.res.inst_6_a_0) (__node_init_dangerous_level_0 critical_failure.usr.q_a_0 critical_failure.res.abs_4_a_0 critical_failure.res.inst_5_a_0) (__node_init_AND_0 critical_failure.res.abs_5_a_0 critical_failure.res.abs_6_a_0 critical_failure.res.abs_7_a_0 critical_failure.res.abs_8_a_0 critical_failure.res.abs_9_a_0 critical_failure.res.inst_4_a_0) (__node_init_pump_failure_0 critical_failure.usr.pump_defect_0_a_0 critical_failure.res.abs_5_a_0 critical_failure.res.inst_3_a_0) (__node_init_pump_failure_0 critical_failure.usr.pump_defect_1_a_0 critical_failure.res.abs_6_a_0 critical_failure.res.inst_2_a_0) (__node_init_pump_failure_0 critical_failure.usr.pump_defect_2_a_0 critical_failure.res.abs_7_a_0 critical_failure.res.inst_1_a_0) (__node_init_pump_failure_0 critical_failure.usr.pump_defect_3_a_0 critical_failure.res.abs_8_a_0 critical_failure.res.inst_0_a_0) critical_failure.res.init_flag_a_0)) +(define-fun __node_trans_critical_failure_0 ((critical_failure.usr.op_mode_a_1 Int) (critical_failure.usr.steam_a_1 Int) (critical_failure.usr.level_defect_a_1 Int) (critical_failure.usr.steam_defect_a_1 Int) (critical_failure.usr.pump_defect_0_a_1 Int) (critical_failure.usr.pump_defect_1_a_1 Int) (critical_failure.usr.pump_defect_2_a_1 Int) (critical_failure.usr.pump_defect_3_a_1 Int) (critical_failure.usr.q_a_1 Int) (critical_failure.usr.pump_state_0_a_1 Int) (critical_failure.usr.pump_state_1_a_1 Int) (critical_failure.usr.pump_state_2_a_1 Int) (critical_failure.usr.pump_state_3_a_1 Int) (critical_failure.usr.critical_failure_a_1 Bool) (critical_failure.res.init_flag_a_1 Bool) (critical_failure.res.abs_0_a_1 Bool) (critical_failure.res.abs_1_a_1 Bool) (critical_failure.res.abs_2_a_1 Bool) (critical_failure.res.abs_3_a_1 Bool) (critical_failure.res.abs_4_a_1 Bool) (critical_failure.res.abs_5_a_1 Bool) (critical_failure.res.abs_6_a_1 Bool) (critical_failure.res.abs_7_a_1 Bool) (critical_failure.res.abs_8_a_1 Bool) (critical_failure.res.abs_9_a_1 Bool) (critical_failure.res.inst_9_a_1 Bool) (critical_failure.res.inst_8_a_1 Bool) (critical_failure.res.inst_7_a_1 Bool) (critical_failure.res.inst_6_a_1 Bool) (critical_failure.res.inst_5_a_1 Bool) (critical_failure.res.inst_4_a_1 Bool) (critical_failure.res.inst_3_a_1 Bool) (critical_failure.res.inst_2_a_1 Bool) (critical_failure.res.inst_1_a_1 Bool) (critical_failure.res.inst_0_a_1 Bool) (critical_failure.usr.op_mode_a_0 Int) (critical_failure.usr.steam_a_0 Int) (critical_failure.usr.level_defect_a_0 Int) (critical_failure.usr.steam_defect_a_0 Int) (critical_failure.usr.pump_defect_0_a_0 Int) (critical_failure.usr.pump_defect_1_a_0 Int) (critical_failure.usr.pump_defect_2_a_0 Int) (critical_failure.usr.pump_defect_3_a_0 Int) (critical_failure.usr.q_a_0 Int) (critical_failure.usr.pump_state_0_a_0 Int) (critical_failure.usr.pump_state_1_a_0 Int) (critical_failure.usr.pump_state_2_a_0 Int) (critical_failure.usr.pump_state_3_a_0 Int) (critical_failure.usr.critical_failure_a_0 Bool) (critical_failure.res.init_flag_a_0 Bool) (critical_failure.res.abs_0_a_0 Bool) (critical_failure.res.abs_1_a_0 Bool) (critical_failure.res.abs_2_a_0 Bool) (critical_failure.res.abs_3_a_0 Bool) (critical_failure.res.abs_4_a_0 Bool) (critical_failure.res.abs_5_a_0 Bool) (critical_failure.res.abs_6_a_0 Bool) (critical_failure.res.abs_7_a_0 Bool) (critical_failure.res.abs_8_a_0 Bool) (critical_failure.res.abs_9_a_0 Bool) (critical_failure.res.inst_9_a_0 Bool) (critical_failure.res.inst_8_a_0 Bool) (critical_failure.res.inst_7_a_0 Bool) (critical_failure.res.inst_6_a_0 Bool) (critical_failure.res.inst_5_a_0 Bool) (critical_failure.res.inst_4_a_0 Bool) (critical_failure.res.inst_3_a_0 Bool) (critical_failure.res.inst_2_a_0 Bool) (critical_failure.res.inst_1_a_0 Bool) (critical_failure.res.inst_0_a_0 Bool)) Bool + (and (= critical_failure.usr.critical_failure_a_1 (or (or (or (or (or critical_failure.res.abs_0_a_1 (and (= critical_failure.usr.op_mode_a_1 1) critical_failure.res.abs_1_a_1)) (and (= critical_failure.usr.op_mode_a_1 2) (or critical_failure.res.abs_2_a_1 critical_failure.res.abs_3_a_1))) (and (= critical_failure.usr.op_mode_a_1 3) critical_failure.res.abs_4_a_1)) (and (= critical_failure.usr.op_mode_a_1 4) critical_failure.res.abs_4_a_1)) (and (= critical_failure.usr.op_mode_a_1 5) (or (or critical_failure.res.abs_4_a_1 critical_failure.res.abs_3_a_1) critical_failure.res.abs_9_a_1)))) (__node_trans_transmission_failure_0 critical_failure.usr.pump_state_0_a_1 critical_failure.usr.pump_state_1_a_1 critical_failure.usr.pump_state_2_a_1 critical_failure.usr.pump_state_3_a_1 critical_failure.res.abs_0_a_1 critical_failure.res.inst_9_a_1 critical_failure.usr.pump_state_0_a_0 critical_failure.usr.pump_state_1_a_0 critical_failure.usr.pump_state_2_a_0 critical_failure.usr.pump_state_3_a_0 critical_failure.res.abs_0_a_0 critical_failure.res.inst_9_a_0) (__node_trans_steam_failure_startup_0 critical_failure.usr.steam_a_1 critical_failure.res.abs_1_a_1 critical_failure.res.inst_8_a_1 critical_failure.usr.steam_a_0 critical_failure.res.abs_1_a_0 critical_failure.res.inst_8_a_0) (__node_trans_level_failure_0 critical_failure.usr.level_defect_a_1 critical_failure.res.abs_2_a_1 critical_failure.res.inst_7_a_1 critical_failure.usr.level_defect_a_0 critical_failure.res.abs_2_a_0 critical_failure.res.inst_7_a_0) (__node_trans_steam_failure_0 critical_failure.usr.steam_defect_a_1 critical_failure.res.abs_3_a_1 critical_failure.res.inst_6_a_1 critical_failure.usr.steam_defect_a_0 critical_failure.res.abs_3_a_0 critical_failure.res.inst_6_a_0) (__node_trans_dangerous_level_0 critical_failure.usr.q_a_1 critical_failure.res.abs_4_a_1 critical_failure.res.inst_5_a_1 critical_failure.usr.q_a_0 critical_failure.res.abs_4_a_0 critical_failure.res.inst_5_a_0) (__node_trans_AND_0 critical_failure.res.abs_5_a_1 critical_failure.res.abs_6_a_1 critical_failure.res.abs_7_a_1 critical_failure.res.abs_8_a_1 critical_failure.res.abs_9_a_1 critical_failure.res.inst_4_a_1 critical_failure.res.abs_5_a_0 critical_failure.res.abs_6_a_0 critical_failure.res.abs_7_a_0 critical_failure.res.abs_8_a_0 critical_failure.res.abs_9_a_0 critical_failure.res.inst_4_a_0) (__node_trans_pump_failure_0 critical_failure.usr.pump_defect_0_a_1 critical_failure.res.abs_5_a_1 critical_failure.res.inst_3_a_1 critical_failure.usr.pump_defect_0_a_0 critical_failure.res.abs_5_a_0 critical_failure.res.inst_3_a_0) (__node_trans_pump_failure_0 critical_failure.usr.pump_defect_1_a_1 critical_failure.res.abs_6_a_1 critical_failure.res.inst_2_a_1 critical_failure.usr.pump_defect_1_a_0 critical_failure.res.abs_6_a_0 critical_failure.res.inst_2_a_0) (__node_trans_pump_failure_0 critical_failure.usr.pump_defect_2_a_1 critical_failure.res.abs_7_a_1 critical_failure.res.inst_1_a_1 critical_failure.usr.pump_defect_2_a_0 critical_failure.res.abs_7_a_0 critical_failure.res.inst_1_a_0) (__node_trans_pump_failure_0 critical_failure.usr.pump_defect_3_a_1 critical_failure.res.abs_8_a_1 critical_failure.res.inst_0_a_1 critical_failure.usr.pump_defect_3_a_0 critical_failure.res.abs_8_a_0 critical_failure.res.inst_0_a_0) (not critical_failure.res.init_flag_a_1))) +(define-fun __node_init_ControlMode_0 ((ControlMode.usr.steam_boiler_waiting_a_0 Bool) (ControlMode.usr.physical_units_ready_a_0 Bool) (ControlMode.usr.stop_request_a_0 Bool) (ControlMode.usr.steam_a_0 Int) (ControlMode.usr.level_defect_a_0 Int) (ControlMode.usr.steam_defect_a_0 Int) (ControlMode.usr.pump_defect_0_a_0 Int) (ControlMode.usr.pump_defect_1_a_0 Int) (ControlMode.usr.pump_defect_2_a_0 Int) (ControlMode.usr.pump_defect_3_a_0 Int) (ControlMode.usr.pump_control_defect_0_a_0 Int) (ControlMode.usr.pump_control_defect_1_a_0 Int) (ControlMode.usr.pump_control_defect_2_a_0 Int) (ControlMode.usr.pump_control_defect_3_a_0 Int) (ControlMode.usr.q_a_0 Int) (ControlMode.usr.pump_state_0_a_0 Int) (ControlMode.usr.pump_state_1_a_0 Int) (ControlMode.usr.pump_state_2_a_0 Int) (ControlMode.usr.pump_state_3_a_0 Int) (ControlMode.res.nondet_0 Int) (ControlMode.usr.op_mode_a_0 Int) (ControlMode.res.init_flag_a_0 Bool) (ControlMode.res.abs_0_a_0 Int) (ControlMode.res.abs_1_a_0 Bool) (ControlMode.res.abs_2_a_0 Bool) (ControlMode.res.abs_3_a_0 Bool) (ControlMode.res.inst_46_a_0 Bool) (ControlMode.res.inst_45_a_0 Bool) (ControlMode.res.inst_44_a_0 Bool) (ControlMode.res.inst_43_a_0 Bool) (ControlMode.res.inst_42_a_0 Bool) (ControlMode.res.inst_41_a_0 Bool) (ControlMode.res.inst_40_a_0 Bool) (ControlMode.res.inst_39_a_0 Bool) (ControlMode.res.inst_38_a_0 Bool) (ControlMode.res.inst_37_a_0 Bool) (ControlMode.res.inst_36_a_0 Bool) (ControlMode.res.inst_35_a_0 Bool) (ControlMode.res.inst_34_a_0 Bool) (ControlMode.res.inst_33_a_0 Bool) (ControlMode.res.inst_32_a_0 Bool) (ControlMode.res.inst_31_a_0 Bool) (ControlMode.res.inst_30_a_0 Bool) (ControlMode.res.inst_29_a_0 Bool) (ControlMode.res.inst_28_a_0 Bool) (ControlMode.res.inst_27_a_0 Bool) (ControlMode.res.inst_26_a_0 Bool) (ControlMode.res.inst_25_a_0 Bool) (ControlMode.res.inst_24_a_0 Bool) (ControlMode.res.inst_23_a_0 Bool) (ControlMode.res.inst_22_a_0 Bool) (ControlMode.res.inst_21_a_0 Bool) (ControlMode.res.inst_20_a_0 Bool) (ControlMode.res.inst_19_a_0 Bool) (ControlMode.res.inst_18_a_0 Bool) (ControlMode.res.inst_17_a_0 Bool) (ControlMode.res.inst_16_a_0 Bool) (ControlMode.res.inst_15_a_0 Bool) (ControlMode.res.inst_14_a_0 Bool) (ControlMode.res.inst_13_a_0 Bool) (ControlMode.res.inst_12_a_0 Bool) (ControlMode.res.inst_11_a_0 Bool) (ControlMode.res.inst_10_a_0 Bool) (ControlMode.res.inst_9_a_0 Bool) (ControlMode.res.inst_8_a_0 Bool) (ControlMode.res.inst_7_a_0 Bool) (ControlMode.res.inst_6_a_0 Bool) (ControlMode.res.inst_5_a_0 Bool) (ControlMode.res.inst_4_a_0 Bool) (ControlMode.res.inst_3_a_0 Bool) (ControlMode.res.inst_2_a_0 Bool) (ControlMode.res.inst_1_a_0 Bool) (ControlMode.res.inst_0_a_0 Bool)) Bool + (and (= ControlMode.usr.op_mode_a_0 1) (= ControlMode.res.abs_0_a_0 (let ((X1 ControlMode.res.nondet_0)) X1)) (__node_init_critical_failure_0 ControlMode.res.abs_0_a_0 ControlMode.usr.steam_a_0 ControlMode.usr.level_defect_a_0 ControlMode.usr.steam_defect_a_0 ControlMode.usr.pump_defect_0_a_0 ControlMode.usr.pump_defect_1_a_0 ControlMode.usr.pump_defect_2_a_0 ControlMode.usr.pump_defect_3_a_0 ControlMode.usr.q_a_0 ControlMode.usr.pump_state_0_a_0 ControlMode.usr.pump_state_1_a_0 ControlMode.usr.pump_state_2_a_0 ControlMode.usr.pump_state_3_a_0 ControlMode.res.abs_1_a_0 ControlMode.res.inst_46_a_0 ControlMode.res.inst_45_a_0 ControlMode.res.inst_44_a_0 ControlMode.res.inst_43_a_0 ControlMode.res.inst_42_a_0 ControlMode.res.inst_41_a_0 ControlMode.res.inst_40_a_0 ControlMode.res.inst_39_a_0 ControlMode.res.inst_38_a_0 ControlMode.res.inst_37_a_0 ControlMode.res.inst_36_a_0 ControlMode.res.inst_35_a_0 ControlMode.res.inst_34_a_0 ControlMode.res.inst_33_a_0 ControlMode.res.inst_32_a_0 ControlMode.res.inst_31_a_0 ControlMode.res.inst_30_a_0 ControlMode.res.inst_29_a_0 ControlMode.res.inst_28_a_0 ControlMode.res.inst_27_a_0 ControlMode.res.inst_26_a_0) (__node_init_level_failure_0 ControlMode.usr.level_defect_a_0 ControlMode.res.abs_2_a_0 ControlMode.res.inst_25_a_0) (__node_init_failure_0 ControlMode.usr.level_defect_a_0 ControlMode.usr.steam_defect_a_0 ControlMode.usr.pump_defect_0_a_0 ControlMode.usr.pump_defect_1_a_0 ControlMode.usr.pump_defect_2_a_0 ControlMode.usr.pump_defect_3_a_0 ControlMode.usr.pump_control_defect_0_a_0 ControlMode.usr.pump_control_defect_1_a_0 ControlMode.usr.pump_control_defect_2_a_0 ControlMode.usr.pump_control_defect_3_a_0 ControlMode.res.abs_3_a_0 ControlMode.res.inst_24_a_0 ControlMode.res.inst_23_a_0 ControlMode.res.inst_22_a_0 ControlMode.res.inst_21_a_0 ControlMode.res.inst_20_a_0 ControlMode.res.inst_19_a_0 ControlMode.res.inst_18_a_0 ControlMode.res.inst_17_a_0 ControlMode.res.inst_16_a_0 ControlMode.res.inst_15_a_0 ControlMode.res.inst_14_a_0 ControlMode.res.inst_13_a_0 ControlMode.res.inst_12_a_0 ControlMode.res.inst_11_a_0 ControlMode.res.inst_10_a_0 ControlMode.res.inst_9_a_0 ControlMode.res.inst_8_a_0 ControlMode.res.inst_7_a_0 ControlMode.res.inst_6_a_0 ControlMode.res.inst_5_a_0 ControlMode.res.inst_4_a_0 ControlMode.res.inst_3_a_0 ControlMode.res.inst_2_a_0 ControlMode.res.inst_1_a_0 ControlMode.res.inst_0_a_0) (<= 1 ControlMode.usr.op_mode_a_0 6) ControlMode.res.init_flag_a_0)) +(define-fun __node_trans_ControlMode_0 ((ControlMode.usr.steam_boiler_waiting_a_1 Bool) (ControlMode.usr.physical_units_ready_a_1 Bool) (ControlMode.usr.stop_request_a_1 Bool) (ControlMode.usr.steam_a_1 Int) (ControlMode.usr.level_defect_a_1 Int) (ControlMode.usr.steam_defect_a_1 Int) (ControlMode.usr.pump_defect_0_a_1 Int) (ControlMode.usr.pump_defect_1_a_1 Int) (ControlMode.usr.pump_defect_2_a_1 Int) (ControlMode.usr.pump_defect_3_a_1 Int) (ControlMode.usr.pump_control_defect_0_a_1 Int) (ControlMode.usr.pump_control_defect_1_a_1 Int) (ControlMode.usr.pump_control_defect_2_a_1 Int) (ControlMode.usr.pump_control_defect_3_a_1 Int) (ControlMode.usr.q_a_1 Int) (ControlMode.usr.pump_state_0_a_1 Int) (ControlMode.usr.pump_state_1_a_1 Int) (ControlMode.usr.pump_state_2_a_1 Int) (ControlMode.usr.pump_state_3_a_1 Int) (ControlMode.res.nondet_0 Int) (ControlMode.usr.op_mode_a_1 Int) (ControlMode.res.init_flag_a_1 Bool) (ControlMode.res.abs_0_a_1 Int) (ControlMode.res.abs_1_a_1 Bool) (ControlMode.res.abs_2_a_1 Bool) (ControlMode.res.abs_3_a_1 Bool) (ControlMode.res.inst_46_a_1 Bool) (ControlMode.res.inst_45_a_1 Bool) (ControlMode.res.inst_44_a_1 Bool) (ControlMode.res.inst_43_a_1 Bool) (ControlMode.res.inst_42_a_1 Bool) (ControlMode.res.inst_41_a_1 Bool) (ControlMode.res.inst_40_a_1 Bool) (ControlMode.res.inst_39_a_1 Bool) (ControlMode.res.inst_38_a_1 Bool) (ControlMode.res.inst_37_a_1 Bool) (ControlMode.res.inst_36_a_1 Bool) (ControlMode.res.inst_35_a_1 Bool) (ControlMode.res.inst_34_a_1 Bool) (ControlMode.res.inst_33_a_1 Bool) (ControlMode.res.inst_32_a_1 Bool) (ControlMode.res.inst_31_a_1 Bool) (ControlMode.res.inst_30_a_1 Bool) (ControlMode.res.inst_29_a_1 Bool) (ControlMode.res.inst_28_a_1 Bool) (ControlMode.res.inst_27_a_1 Bool) (ControlMode.res.inst_26_a_1 Bool) (ControlMode.res.inst_25_a_1 Bool) (ControlMode.res.inst_24_a_1 Bool) (ControlMode.res.inst_23_a_1 Bool) (ControlMode.res.inst_22_a_1 Bool) (ControlMode.res.inst_21_a_1 Bool) (ControlMode.res.inst_20_a_1 Bool) (ControlMode.res.inst_19_a_1 Bool) (ControlMode.res.inst_18_a_1 Bool) (ControlMode.res.inst_17_a_1 Bool) (ControlMode.res.inst_16_a_1 Bool) (ControlMode.res.inst_15_a_1 Bool) (ControlMode.res.inst_14_a_1 Bool) (ControlMode.res.inst_13_a_1 Bool) (ControlMode.res.inst_12_a_1 Bool) (ControlMode.res.inst_11_a_1 Bool) (ControlMode.res.inst_10_a_1 Bool) (ControlMode.res.inst_9_a_1 Bool) (ControlMode.res.inst_8_a_1 Bool) (ControlMode.res.inst_7_a_1 Bool) (ControlMode.res.inst_6_a_1 Bool) (ControlMode.res.inst_5_a_1 Bool) (ControlMode.res.inst_4_a_1 Bool) (ControlMode.res.inst_3_a_1 Bool) (ControlMode.res.inst_2_a_1 Bool) (ControlMode.res.inst_1_a_1 Bool) (ControlMode.res.inst_0_a_1 Bool) (ControlMode.usr.steam_boiler_waiting_a_0 Bool) (ControlMode.usr.physical_units_ready_a_0 Bool) (ControlMode.usr.stop_request_a_0 Bool) (ControlMode.usr.steam_a_0 Int) (ControlMode.usr.level_defect_a_0 Int) (ControlMode.usr.steam_defect_a_0 Int) (ControlMode.usr.pump_defect_0_a_0 Int) (ControlMode.usr.pump_defect_1_a_0 Int) (ControlMode.usr.pump_defect_2_a_0 Int) (ControlMode.usr.pump_defect_3_a_0 Int) (ControlMode.usr.pump_control_defect_0_a_0 Int) (ControlMode.usr.pump_control_defect_1_a_0 Int) (ControlMode.usr.pump_control_defect_2_a_0 Int) (ControlMode.usr.pump_control_defect_3_a_0 Int) (ControlMode.usr.q_a_0 Int) (ControlMode.usr.pump_state_0_a_0 Int) (ControlMode.usr.pump_state_1_a_0 Int) (ControlMode.usr.pump_state_2_a_0 Int) (ControlMode.usr.pump_state_3_a_0 Int) (ControlMode.usr.op_mode_a_0 Int) (ControlMode.res.init_flag_a_0 Bool) (ControlMode.res.abs_0_a_0 Int) (ControlMode.res.abs_1_a_0 Bool) (ControlMode.res.abs_2_a_0 Bool) (ControlMode.res.abs_3_a_0 Bool) (ControlMode.res.inst_46_a_0 Bool) (ControlMode.res.inst_45_a_0 Bool) (ControlMode.res.inst_44_a_0 Bool) (ControlMode.res.inst_43_a_0 Bool) (ControlMode.res.inst_42_a_0 Bool) (ControlMode.res.inst_41_a_0 Bool) (ControlMode.res.inst_40_a_0 Bool) (ControlMode.res.inst_39_a_0 Bool) (ControlMode.res.inst_38_a_0 Bool) (ControlMode.res.inst_37_a_0 Bool) (ControlMode.res.inst_36_a_0 Bool) (ControlMode.res.inst_35_a_0 Bool) (ControlMode.res.inst_34_a_0 Bool) (ControlMode.res.inst_33_a_0 Bool) (ControlMode.res.inst_32_a_0 Bool) (ControlMode.res.inst_31_a_0 Bool) (ControlMode.res.inst_30_a_0 Bool) (ControlMode.res.inst_29_a_0 Bool) (ControlMode.res.inst_28_a_0 Bool) (ControlMode.res.inst_27_a_0 Bool) (ControlMode.res.inst_26_a_0 Bool) (ControlMode.res.inst_25_a_0 Bool) (ControlMode.res.inst_24_a_0 Bool) (ControlMode.res.inst_23_a_0 Bool) (ControlMode.res.inst_22_a_0 Bool) (ControlMode.res.inst_21_a_0 Bool) (ControlMode.res.inst_20_a_0 Bool) (ControlMode.res.inst_19_a_0 Bool) (ControlMode.res.inst_18_a_0 Bool) (ControlMode.res.inst_17_a_0 Bool) (ControlMode.res.inst_16_a_0 Bool) (ControlMode.res.inst_15_a_0 Bool) (ControlMode.res.inst_14_a_0 Bool) (ControlMode.res.inst_13_a_0 Bool) (ControlMode.res.inst_12_a_0 Bool) (ControlMode.res.inst_11_a_0 Bool) (ControlMode.res.inst_10_a_0 Bool) (ControlMode.res.inst_9_a_0 Bool) (ControlMode.res.inst_8_a_0 Bool) (ControlMode.res.inst_7_a_0 Bool) (ControlMode.res.inst_6_a_0 Bool) (ControlMode.res.inst_5_a_0 Bool) (ControlMode.res.inst_4_a_0 Bool) (ControlMode.res.inst_3_a_0 Bool) (ControlMode.res.inst_2_a_0 Bool) (ControlMode.res.inst_1_a_0 Bool) (ControlMode.res.inst_0_a_0 Bool)) Bool + (and (= ControlMode.res.abs_0_a_1 ControlMode.usr.op_mode_a_0) (= ControlMode.usr.op_mode_a_1 (ite (or (or ControlMode.res.abs_1_a_1 ControlMode.usr.stop_request_a_1) (= ControlMode.usr.op_mode_a_0 6)) 6 (ite (= ControlMode.usr.op_mode_a_0 1) (ite ControlMode.usr.steam_boiler_waiting_a_1 2 1) (ite (and (= ControlMode.usr.op_mode_a_0 2) (not ControlMode.usr.physical_units_ready_a_1)) 2 (ite ControlMode.res.abs_2_a_1 5 (ite ControlMode.res.abs_3_a_1 4 3)))))) (__node_trans_critical_failure_0 ControlMode.res.abs_0_a_1 ControlMode.usr.steam_a_1 ControlMode.usr.level_defect_a_1 ControlMode.usr.steam_defect_a_1 ControlMode.usr.pump_defect_0_a_1 ControlMode.usr.pump_defect_1_a_1 ControlMode.usr.pump_defect_2_a_1 ControlMode.usr.pump_defect_3_a_1 ControlMode.usr.q_a_1 ControlMode.usr.pump_state_0_a_1 ControlMode.usr.pump_state_1_a_1 ControlMode.usr.pump_state_2_a_1 ControlMode.usr.pump_state_3_a_1 ControlMode.res.abs_1_a_1 ControlMode.res.inst_46_a_1 ControlMode.res.inst_45_a_1 ControlMode.res.inst_44_a_1 ControlMode.res.inst_43_a_1 ControlMode.res.inst_42_a_1 ControlMode.res.inst_41_a_1 ControlMode.res.inst_40_a_1 ControlMode.res.inst_39_a_1 ControlMode.res.inst_38_a_1 ControlMode.res.inst_37_a_1 ControlMode.res.inst_36_a_1 ControlMode.res.inst_35_a_1 ControlMode.res.inst_34_a_1 ControlMode.res.inst_33_a_1 ControlMode.res.inst_32_a_1 ControlMode.res.inst_31_a_1 ControlMode.res.inst_30_a_1 ControlMode.res.inst_29_a_1 ControlMode.res.inst_28_a_1 ControlMode.res.inst_27_a_1 ControlMode.res.inst_26_a_1 ControlMode.res.abs_0_a_0 ControlMode.usr.steam_a_0 ControlMode.usr.level_defect_a_0 ControlMode.usr.steam_defect_a_0 ControlMode.usr.pump_defect_0_a_0 ControlMode.usr.pump_defect_1_a_0 ControlMode.usr.pump_defect_2_a_0 ControlMode.usr.pump_defect_3_a_0 ControlMode.usr.q_a_0 ControlMode.usr.pump_state_0_a_0 ControlMode.usr.pump_state_1_a_0 ControlMode.usr.pump_state_2_a_0 ControlMode.usr.pump_state_3_a_0 ControlMode.res.abs_1_a_0 ControlMode.res.inst_46_a_0 ControlMode.res.inst_45_a_0 ControlMode.res.inst_44_a_0 ControlMode.res.inst_43_a_0 ControlMode.res.inst_42_a_0 ControlMode.res.inst_41_a_0 ControlMode.res.inst_40_a_0 ControlMode.res.inst_39_a_0 ControlMode.res.inst_38_a_0 ControlMode.res.inst_37_a_0 ControlMode.res.inst_36_a_0 ControlMode.res.inst_35_a_0 ControlMode.res.inst_34_a_0 ControlMode.res.inst_33_a_0 ControlMode.res.inst_32_a_0 ControlMode.res.inst_31_a_0 ControlMode.res.inst_30_a_0 ControlMode.res.inst_29_a_0 ControlMode.res.inst_28_a_0 ControlMode.res.inst_27_a_0 ControlMode.res.inst_26_a_0) (__node_trans_level_failure_0 ControlMode.usr.level_defect_a_1 ControlMode.res.abs_2_a_1 ControlMode.res.inst_25_a_1 ControlMode.usr.level_defect_a_0 ControlMode.res.abs_2_a_0 ControlMode.res.inst_25_a_0) (__node_trans_failure_0 ControlMode.usr.level_defect_a_1 ControlMode.usr.steam_defect_a_1 ControlMode.usr.pump_defect_0_a_1 ControlMode.usr.pump_defect_1_a_1 ControlMode.usr.pump_defect_2_a_1 ControlMode.usr.pump_defect_3_a_1 ControlMode.usr.pump_control_defect_0_a_1 ControlMode.usr.pump_control_defect_1_a_1 ControlMode.usr.pump_control_defect_2_a_1 ControlMode.usr.pump_control_defect_3_a_1 ControlMode.res.abs_3_a_1 ControlMode.res.inst_24_a_1 ControlMode.res.inst_23_a_1 ControlMode.res.inst_22_a_1 ControlMode.res.inst_21_a_1 ControlMode.res.inst_20_a_1 ControlMode.res.inst_19_a_1 ControlMode.res.inst_18_a_1 ControlMode.res.inst_17_a_1 ControlMode.res.inst_16_a_1 ControlMode.res.inst_15_a_1 ControlMode.res.inst_14_a_1 ControlMode.res.inst_13_a_1 ControlMode.res.inst_12_a_1 ControlMode.res.inst_11_a_1 ControlMode.res.inst_10_a_1 ControlMode.res.inst_9_a_1 ControlMode.res.inst_8_a_1 ControlMode.res.inst_7_a_1 ControlMode.res.inst_6_a_1 ControlMode.res.inst_5_a_1 ControlMode.res.inst_4_a_1 ControlMode.res.inst_3_a_1 ControlMode.res.inst_2_a_1 ControlMode.res.inst_1_a_1 ControlMode.res.inst_0_a_1 ControlMode.usr.level_defect_a_0 ControlMode.usr.steam_defect_a_0 ControlMode.usr.pump_defect_0_a_0 ControlMode.usr.pump_defect_1_a_0 ControlMode.usr.pump_defect_2_a_0 ControlMode.usr.pump_defect_3_a_0 ControlMode.usr.pump_control_defect_0_a_0 ControlMode.usr.pump_control_defect_1_a_0 ControlMode.usr.pump_control_defect_2_a_0 ControlMode.usr.pump_control_defect_3_a_0 ControlMode.res.abs_3_a_0 ControlMode.res.inst_24_a_0 ControlMode.res.inst_23_a_0 ControlMode.res.inst_22_a_0 ControlMode.res.inst_21_a_0 ControlMode.res.inst_20_a_0 ControlMode.res.inst_19_a_0 ControlMode.res.inst_18_a_0 ControlMode.res.inst_17_a_0 ControlMode.res.inst_16_a_0 ControlMode.res.inst_15_a_0 ControlMode.res.inst_14_a_0 ControlMode.res.inst_13_a_0 ControlMode.res.inst_12_a_0 ControlMode.res.inst_11_a_0 ControlMode.res.inst_10_a_0 ControlMode.res.inst_9_a_0 ControlMode.res.inst_8_a_0 ControlMode.res.inst_7_a_0 ControlMode.res.inst_6_a_0 ControlMode.res.inst_5_a_0 ControlMode.res.inst_4_a_0 ControlMode.res.inst_3_a_0 ControlMode.res.inst_2_a_0 ControlMode.res.inst_1_a_0 ControlMode.res.inst_0_a_0) (<= 1 ControlMode.usr.op_mode_a_1 6) (not ControlMode.res.init_flag_a_1))) +(define-fun __node_init_level_failure_detect_0 ((level_failure_detect.usr.level_a_0 Int) (level_failure_detect.usr.level_failure_detect_a_0 Bool) (level_failure_detect.res.init_flag_a_0 Bool)) Bool + (and (= level_failure_detect.usr.level_failure_detect_a_0 (or (< level_failure_detect.usr.level_a_0 0) (> level_failure_detect.usr.level_a_0 1000))) level_failure_detect.res.init_flag_a_0)) +(define-fun __node_trans_level_failure_detect_0 ((level_failure_detect.usr.level_a_1 Int) (level_failure_detect.usr.level_failure_detect_a_1 Bool) (level_failure_detect.res.init_flag_a_1 Bool) (level_failure_detect.usr.level_a_0 Int) (level_failure_detect.usr.level_failure_detect_a_0 Bool) (level_failure_detect.res.init_flag_a_0 Bool)) Bool + (and (= level_failure_detect.usr.level_failure_detect_a_1 (or (< level_failure_detect.usr.level_a_1 0) (> level_failure_detect.usr.level_a_1 1000))) (not level_failure_detect.res.init_flag_a_1))) +(define-fun __node_init_Defect_0 ((Defect.usr.statein_a_0 Int) (Defect.usr.fail_cond_a_0 Bool) (Defect.usr.ack_chan_a_0 Bool) (Defect.usr.repair_chan_a_0 Bool) (Defect.usr.stateout_a_0 Int) (Defect.res.init_flag_a_0 Bool)) Bool + (and (= Defect.usr.stateout_a_0 (ite (= Defect.usr.statein_a_0 0) (ite Defect.usr.fail_cond_a_0 1 0) (ite (= Defect.usr.statein_a_0 1) (ite Defect.usr.ack_chan_a_0 2 1) (ite Defect.usr.repair_chan_a_0 0 2)))) (<= 0 Defect.usr.stateout_a_0 2) Defect.res.init_flag_a_0)) +(define-fun __node_trans_Defect_0 ((Defect.usr.statein_a_1 Int) (Defect.usr.fail_cond_a_1 Bool) (Defect.usr.ack_chan_a_1 Bool) (Defect.usr.repair_chan_a_1 Bool) (Defect.usr.stateout_a_1 Int) (Defect.res.init_flag_a_1 Bool) (Defect.usr.statein_a_0 Int) (Defect.usr.fail_cond_a_0 Bool) (Defect.usr.ack_chan_a_0 Bool) (Defect.usr.repair_chan_a_0 Bool) (Defect.usr.stateout_a_0 Int) (Defect.res.init_flag_a_0 Bool)) Bool + (and (= Defect.usr.stateout_a_1 (ite (= Defect.usr.statein_a_1 0) (ite Defect.usr.fail_cond_a_1 1 0) (ite (= Defect.usr.statein_a_1 1) (ite Defect.usr.ack_chan_a_1 2 1) (ite Defect.usr.repair_chan_a_1 0 2)))) (<= 0 Defect.usr.stateout_a_1 2) (not Defect.res.init_flag_a_1))) +(define-fun __node_init_LevelDefect_0 ((LevelDefect.usr.level_failure_acknowledgement_a_0 Bool) (LevelDefect.usr.level_repaired_a_0 Bool) (LevelDefect.usr.level_a_0 Int) (LevelDefect.res.nondet_0 Int) (LevelDefect.usr.LevelDefect_a_0 Int) (LevelDefect.res.init_flag_a_0 Bool) (LevelDefect.res.abs_0_a_0 Bool) (LevelDefect.res.abs_1_a_0 Int) (LevelDefect.res.abs_2_a_0 Int) (LevelDefect.res.inst_1_a_0 Bool) (LevelDefect.res.inst_0_a_0 Bool)) Bool + (and (= LevelDefect.usr.LevelDefect_a_0 0) (= LevelDefect.res.abs_1_a_0 (let ((X1 LevelDefect.res.nondet_0)) X1)) (__node_init_Defect_0 LevelDefect.res.abs_1_a_0 LevelDefect.res.abs_0_a_0 LevelDefect.usr.level_failure_acknowledgement_a_0 LevelDefect.usr.level_repaired_a_0 LevelDefect.res.abs_2_a_0 LevelDefect.res.inst_1_a_0) (__node_init_level_failure_detect_0 LevelDefect.usr.level_a_0 LevelDefect.res.abs_0_a_0 LevelDefect.res.inst_0_a_0) (<= 0 LevelDefect.res.abs_2_a_0 2) (<= 0 LevelDefect.usr.LevelDefect_a_0 2) LevelDefect.res.init_flag_a_0)) +(define-fun __node_trans_LevelDefect_0 ((LevelDefect.usr.level_failure_acknowledgement_a_1 Bool) (LevelDefect.usr.level_repaired_a_1 Bool) (LevelDefect.usr.level_a_1 Int) (LevelDefect.res.nondet_0 Int) (LevelDefect.usr.LevelDefect_a_1 Int) (LevelDefect.res.init_flag_a_1 Bool) (LevelDefect.res.abs_0_a_1 Bool) (LevelDefect.res.abs_1_a_1 Int) (LevelDefect.res.abs_2_a_1 Int) (LevelDefect.res.inst_1_a_1 Bool) (LevelDefect.res.inst_0_a_1 Bool) (LevelDefect.usr.level_failure_acknowledgement_a_0 Bool) (LevelDefect.usr.level_repaired_a_0 Bool) (LevelDefect.usr.level_a_0 Int) (LevelDefect.usr.LevelDefect_a_0 Int) (LevelDefect.res.init_flag_a_0 Bool) (LevelDefect.res.abs_0_a_0 Bool) (LevelDefect.res.abs_1_a_0 Int) (LevelDefect.res.abs_2_a_0 Int) (LevelDefect.res.inst_1_a_0 Bool) (LevelDefect.res.inst_0_a_0 Bool)) Bool + (and (= LevelDefect.res.abs_1_a_1 LevelDefect.usr.LevelDefect_a_0) (= LevelDefect.usr.LevelDefect_a_1 LevelDefect.res.abs_2_a_1) (__node_trans_Defect_0 LevelDefect.res.abs_1_a_1 LevelDefect.res.abs_0_a_1 LevelDefect.usr.level_failure_acknowledgement_a_1 LevelDefect.usr.level_repaired_a_1 LevelDefect.res.abs_2_a_1 LevelDefect.res.inst_1_a_1 LevelDefect.res.abs_1_a_0 LevelDefect.res.abs_0_a_0 LevelDefect.usr.level_failure_acknowledgement_a_0 LevelDefect.usr.level_repaired_a_0 LevelDefect.res.abs_2_a_0 LevelDefect.res.inst_1_a_0) (__node_trans_level_failure_detect_0 LevelDefect.usr.level_a_1 LevelDefect.res.abs_0_a_1 LevelDefect.res.inst_0_a_1 LevelDefect.usr.level_a_0 LevelDefect.res.abs_0_a_0 LevelDefect.res.inst_0_a_0) (<= 0 LevelDefect.res.abs_2_a_1 2) (<= 0 LevelDefect.usr.LevelDefect_a_1 2) (not LevelDefect.res.init_flag_a_1))) +(define-fun __node_init_operate_pumps_0 ((operate_pumps.usr.n_a_0 Int) (operate_pumps.usr.n_pumps_to_open_a_0 Int) (operate_pumps.usr.pump_status_0_a_0 Int) (operate_pumps.usr.pump_status_1_a_0 Int) (operate_pumps.usr.pump_status_2_a_0 Int) (operate_pumps.usr.pump_status_3_a_0 Int) (operate_pumps.usr.pump_defect_0_a_0 Int) (operate_pumps.usr.pump_defect_1_a_0 Int) (operate_pumps.usr.pump_defect_2_a_0 Int) (operate_pumps.usr.pump_defect_3_a_0 Int) (operate_pumps.usr.flow_0_a_0 Bool) (operate_pumps.usr.flow_1_a_0 Bool) (operate_pumps.usr.flow_2_a_0 Bool) (operate_pumps.usr.flow_3_a_0 Bool) (operate_pumps.res.nondet_3 Int) (operate_pumps.res.nondet_2 Int) (operate_pumps.res.nondet_1 Int) (operate_pumps.res.nondet_0 Int) (operate_pumps.usr.operate_pumps_0_a_0 Int) (operate_pumps.usr.operate_pumps_1_a_0 Int) (operate_pumps.usr.operate_pumps_2_a_0 Int) (operate_pumps.usr.operate_pumps_3_a_0 Int) (operate_pumps.res.init_flag_a_0 Bool) (operate_pumps.res.abs_0_a_0 Int) (operate_pumps.res.abs_1_a_0 Bool) (operate_pumps.res.abs_2_a_0 Int) (operate_pumps.res.abs_3_a_0 Bool) (operate_pumps.res.abs_5_a_0 Int) (operate_pumps.res.abs_6_a_0 Bool) (operate_pumps.res.abs_7_a_0 Int) (operate_pumps.res.abs_8_a_0 Bool) (operate_pumps.res.abs_10_a_0 Int) (operate_pumps.res.abs_11_a_0 Bool) (operate_pumps.res.abs_12_a_0 Int) (operate_pumps.res.abs_13_a_0 Bool) (operate_pumps.res.abs_15_a_0 Int) (operate_pumps.res.abs_16_a_0 Bool) (operate_pumps.res.abs_17_a_0 Int) (operate_pumps.res.abs_18_a_0 Bool) (operate_pumps.res.inst_7_a_0 Bool) (operate_pumps.res.inst_6_a_0 Bool) (operate_pumps.res.inst_5_a_0 Bool) (operate_pumps.res.inst_4_a_0 Bool) (operate_pumps.res.inst_3_a_0 Bool) (operate_pumps.res.inst_2_a_0 Bool) (operate_pumps.res.inst_1_a_0 Bool) (operate_pumps.res.inst_0_a_0 Bool)) Bool + (and (= operate_pumps.res.abs_2_a_0 operate_pumps.usr.pump_defect_0_a_0) (= operate_pumps.res.abs_0_a_0 operate_pumps.usr.pump_defect_0_a_0) (= operate_pumps.usr.operate_pumps_0_a_0 (let ((X1 operate_pumps.res.nondet_0)) (ite (and (and (and (> operate_pumps.usr.n_pumps_to_open_a_0 0) (not operate_pumps.usr.flow_0_a_0)) (not operate_pumps.res.abs_1_a_0)) (= operate_pumps.usr.pump_status_0_a_0 0)) 2 (ite (and (and (and (< operate_pumps.usr.n_pumps_to_open_a_0 0) operate_pumps.usr.flow_0_a_0) (not operate_pumps.res.abs_3_a_0)) (= operate_pumps.usr.pump_status_0_a_0 1)) 0 (ite (= operate_pumps.usr.pump_status_0_a_0 2) 1 (ite (and (= X1 2) (= operate_pumps.usr.pump_defect_0_a_0 0)) (ite (= operate_pumps.usr.pump_status_0_a_0 1) 0 1) operate_pumps.usr.pump_status_0_a_0)))))) (= operate_pumps.res.abs_7_a_0 operate_pumps.usr.pump_defect_1_a_0) (= operate_pumps.res.abs_5_a_0 operate_pumps.usr.pump_defect_1_a_0) (= operate_pumps.usr.operate_pumps_1_a_0 (let ((X1 operate_pumps.res.nondet_1)) (ite (and (and (and (> operate_pumps.usr.n_pumps_to_open_a_0 0) (not operate_pumps.usr.flow_1_a_0)) (not operate_pumps.res.abs_6_a_0)) (= operate_pumps.usr.pump_status_1_a_0 0)) 2 (ite (and (and (and (< operate_pumps.usr.n_pumps_to_open_a_0 0) operate_pumps.usr.flow_1_a_0) (not operate_pumps.res.abs_8_a_0)) (= operate_pumps.usr.pump_status_1_a_0 1)) 0 (ite (= operate_pumps.usr.pump_status_1_a_0 2) 1 (ite (and (= X1 2) (= operate_pumps.usr.pump_defect_1_a_0 0)) (ite (= operate_pumps.usr.pump_status_1_a_0 1) 0 1) operate_pumps.usr.pump_status_1_a_0)))))) (= operate_pumps.res.abs_12_a_0 operate_pumps.usr.pump_defect_2_a_0) (= operate_pumps.res.abs_10_a_0 operate_pumps.usr.pump_defect_2_a_0) (= operate_pumps.usr.operate_pumps_2_a_0 (let ((X1 operate_pumps.res.nondet_2)) (ite (and (and (and (> operate_pumps.usr.n_pumps_to_open_a_0 0) (not operate_pumps.usr.flow_2_a_0)) (not operate_pumps.res.abs_11_a_0)) (= operate_pumps.usr.pump_status_2_a_0 0)) 2 (ite (and (and (and (< operate_pumps.usr.n_pumps_to_open_a_0 0) operate_pumps.usr.flow_2_a_0) (not operate_pumps.res.abs_13_a_0)) (= operate_pumps.usr.pump_status_2_a_0 1)) 0 (ite (= operate_pumps.usr.pump_status_2_a_0 2) 1 (ite (and (= X1 2) (= operate_pumps.usr.pump_defect_2_a_0 0)) (ite (= operate_pumps.usr.pump_status_2_a_0 1) 0 1) operate_pumps.usr.pump_status_2_a_0)))))) (= operate_pumps.res.abs_17_a_0 operate_pumps.usr.pump_defect_3_a_0) (= operate_pumps.res.abs_15_a_0 operate_pumps.usr.pump_defect_3_a_0) (= operate_pumps.usr.operate_pumps_3_a_0 (let ((X1 operate_pumps.res.nondet_3)) (ite (and (and (and (> operate_pumps.usr.n_pumps_to_open_a_0 0) (not operate_pumps.usr.flow_3_a_0)) (not operate_pumps.res.abs_16_a_0)) (= operate_pumps.usr.pump_status_3_a_0 0)) 2 (ite (and (and (and (< operate_pumps.usr.n_pumps_to_open_a_0 0) operate_pumps.usr.flow_3_a_0) (not operate_pumps.res.abs_18_a_0)) (= operate_pumps.usr.pump_status_3_a_0 1)) 0 (ite (= operate_pumps.usr.pump_status_3_a_0 2) 1 (ite (and (= X1 2) (= operate_pumps.usr.pump_defect_3_a_0 0)) (ite (= operate_pumps.usr.pump_status_3_a_0 1) 0 1) operate_pumps.usr.pump_status_3_a_0)))))) (__node_init_pump_failure_0 operate_pumps.res.abs_0_a_0 operate_pumps.res.abs_1_a_0 operate_pumps.res.inst_7_a_0) (__node_init_pump_failure_0 operate_pumps.res.abs_2_a_0 operate_pumps.res.abs_3_a_0 operate_pumps.res.inst_6_a_0) (__node_init_pump_failure_0 operate_pumps.res.abs_5_a_0 operate_pumps.res.abs_6_a_0 operate_pumps.res.inst_5_a_0) (__node_init_pump_failure_0 operate_pumps.res.abs_7_a_0 operate_pumps.res.abs_8_a_0 operate_pumps.res.inst_4_a_0) (__node_init_pump_failure_0 operate_pumps.res.abs_10_a_0 operate_pumps.res.abs_11_a_0 operate_pumps.res.inst_3_a_0) (__node_init_pump_failure_0 operate_pumps.res.abs_12_a_0 operate_pumps.res.abs_13_a_0 operate_pumps.res.inst_2_a_0) (__node_init_pump_failure_0 operate_pumps.res.abs_15_a_0 operate_pumps.res.abs_16_a_0 operate_pumps.res.inst_1_a_0) (__node_init_pump_failure_0 operate_pumps.res.abs_17_a_0 operate_pumps.res.abs_18_a_0 operate_pumps.res.inst_0_a_0) operate_pumps.res.init_flag_a_0)) +(define-fun __node_trans_operate_pumps_0 ((operate_pumps.usr.n_a_1 Int) (operate_pumps.usr.n_pumps_to_open_a_1 Int) (operate_pumps.usr.pump_status_0_a_1 Int) (operate_pumps.usr.pump_status_1_a_1 Int) (operate_pumps.usr.pump_status_2_a_1 Int) (operate_pumps.usr.pump_status_3_a_1 Int) (operate_pumps.usr.pump_defect_0_a_1 Int) (operate_pumps.usr.pump_defect_1_a_1 Int) (operate_pumps.usr.pump_defect_2_a_1 Int) (operate_pumps.usr.pump_defect_3_a_1 Int) (operate_pumps.usr.flow_0_a_1 Bool) (operate_pumps.usr.flow_1_a_1 Bool) (operate_pumps.usr.flow_2_a_1 Bool) (operate_pumps.usr.flow_3_a_1 Bool) (operate_pumps.res.nondet_3 Int) (operate_pumps.res.nondet_2 Int) (operate_pumps.res.nondet_1 Int) (operate_pumps.res.nondet_0 Int) (operate_pumps.usr.operate_pumps_0_a_1 Int) (operate_pumps.usr.operate_pumps_1_a_1 Int) (operate_pumps.usr.operate_pumps_2_a_1 Int) (operate_pumps.usr.operate_pumps_3_a_1 Int) (operate_pumps.res.init_flag_a_1 Bool) (operate_pumps.res.abs_0_a_1 Int) (operate_pumps.res.abs_1_a_1 Bool) (operate_pumps.res.abs_2_a_1 Int) (operate_pumps.res.abs_3_a_1 Bool) (operate_pumps.res.abs_5_a_1 Int) (operate_pumps.res.abs_6_a_1 Bool) (operate_pumps.res.abs_7_a_1 Int) (operate_pumps.res.abs_8_a_1 Bool) (operate_pumps.res.abs_10_a_1 Int) (operate_pumps.res.abs_11_a_1 Bool) (operate_pumps.res.abs_12_a_1 Int) (operate_pumps.res.abs_13_a_1 Bool) (operate_pumps.res.abs_15_a_1 Int) (operate_pumps.res.abs_16_a_1 Bool) (operate_pumps.res.abs_17_a_1 Int) (operate_pumps.res.abs_18_a_1 Bool) (operate_pumps.res.inst_7_a_1 Bool) (operate_pumps.res.inst_6_a_1 Bool) (operate_pumps.res.inst_5_a_1 Bool) (operate_pumps.res.inst_4_a_1 Bool) (operate_pumps.res.inst_3_a_1 Bool) (operate_pumps.res.inst_2_a_1 Bool) (operate_pumps.res.inst_1_a_1 Bool) (operate_pumps.res.inst_0_a_1 Bool) (operate_pumps.usr.n_a_0 Int) (operate_pumps.usr.n_pumps_to_open_a_0 Int) (operate_pumps.usr.pump_status_0_a_0 Int) (operate_pumps.usr.pump_status_1_a_0 Int) (operate_pumps.usr.pump_status_2_a_0 Int) (operate_pumps.usr.pump_status_3_a_0 Int) (operate_pumps.usr.pump_defect_0_a_0 Int) (operate_pumps.usr.pump_defect_1_a_0 Int) (operate_pumps.usr.pump_defect_2_a_0 Int) (operate_pumps.usr.pump_defect_3_a_0 Int) (operate_pumps.usr.flow_0_a_0 Bool) (operate_pumps.usr.flow_1_a_0 Bool) (operate_pumps.usr.flow_2_a_0 Bool) (operate_pumps.usr.flow_3_a_0 Bool) (operate_pumps.usr.operate_pumps_0_a_0 Int) (operate_pumps.usr.operate_pumps_1_a_0 Int) (operate_pumps.usr.operate_pumps_2_a_0 Int) (operate_pumps.usr.operate_pumps_3_a_0 Int) (operate_pumps.res.init_flag_a_0 Bool) (operate_pumps.res.abs_0_a_0 Int) (operate_pumps.res.abs_1_a_0 Bool) (operate_pumps.res.abs_2_a_0 Int) (operate_pumps.res.abs_3_a_0 Bool) (operate_pumps.res.abs_5_a_0 Int) (operate_pumps.res.abs_6_a_0 Bool) (operate_pumps.res.abs_7_a_0 Int) (operate_pumps.res.abs_8_a_0 Bool) (operate_pumps.res.abs_10_a_0 Int) (operate_pumps.res.abs_11_a_0 Bool) (operate_pumps.res.abs_12_a_0 Int) (operate_pumps.res.abs_13_a_0 Bool) (operate_pumps.res.abs_15_a_0 Int) (operate_pumps.res.abs_16_a_0 Bool) (operate_pumps.res.abs_17_a_0 Int) (operate_pumps.res.abs_18_a_0 Bool) (operate_pumps.res.inst_7_a_0 Bool) (operate_pumps.res.inst_6_a_0 Bool) (operate_pumps.res.inst_5_a_0 Bool) (operate_pumps.res.inst_4_a_0 Bool) (operate_pumps.res.inst_3_a_0 Bool) (operate_pumps.res.inst_2_a_0 Bool) (operate_pumps.res.inst_1_a_0 Bool) (operate_pumps.res.inst_0_a_0 Bool)) Bool + (and (= operate_pumps.res.abs_2_a_1 operate_pumps.usr.pump_defect_0_a_1) (= operate_pumps.res.abs_0_a_1 operate_pumps.usr.pump_defect_0_a_1) (= operate_pumps.usr.operate_pumps_0_a_1 (ite (and (and (and (> operate_pumps.usr.n_pumps_to_open_a_1 0) (not operate_pumps.usr.flow_0_a_1)) (not operate_pumps.res.abs_1_a_1)) (= operate_pumps.usr.pump_status_0_a_1 0)) 2 (ite (and (and (and (< operate_pumps.usr.n_pumps_to_open_a_1 0) operate_pumps.usr.flow_0_a_1) (not operate_pumps.res.abs_3_a_1)) (= operate_pumps.usr.pump_status_0_a_1 1)) 0 (ite (= operate_pumps.usr.pump_status_0_a_1 2) 1 (ite (and (= operate_pumps.usr.pump_defect_0_a_0 2) (= operate_pumps.usr.pump_defect_0_a_1 0)) (ite (= operate_pumps.usr.pump_status_0_a_1 1) 0 1) operate_pumps.usr.pump_status_0_a_1))))) (= operate_pumps.res.abs_7_a_1 operate_pumps.usr.pump_defect_1_a_1) (= operate_pumps.res.abs_5_a_1 operate_pumps.usr.pump_defect_1_a_1) (= operate_pumps.usr.operate_pumps_1_a_1 (ite (and (and (and (> operate_pumps.usr.n_pumps_to_open_a_1 0) (not operate_pumps.usr.flow_1_a_1)) (not operate_pumps.res.abs_6_a_1)) (= operate_pumps.usr.pump_status_1_a_1 0)) 2 (ite (and (and (and (< operate_pumps.usr.n_pumps_to_open_a_1 0) operate_pumps.usr.flow_1_a_1) (not operate_pumps.res.abs_8_a_1)) (= operate_pumps.usr.pump_status_1_a_1 1)) 0 (ite (= operate_pumps.usr.pump_status_1_a_1 2) 1 (ite (and (= operate_pumps.usr.pump_defect_1_a_0 2) (= operate_pumps.usr.pump_defect_1_a_1 0)) (ite (= operate_pumps.usr.pump_status_1_a_1 1) 0 1) operate_pumps.usr.pump_status_1_a_1))))) (= operate_pumps.res.abs_12_a_1 operate_pumps.usr.pump_defect_2_a_1) (= operate_pumps.res.abs_10_a_1 operate_pumps.usr.pump_defect_2_a_1) (= operate_pumps.usr.operate_pumps_2_a_1 (ite (and (and (and (> operate_pumps.usr.n_pumps_to_open_a_1 0) (not operate_pumps.usr.flow_2_a_1)) (not operate_pumps.res.abs_11_a_1)) (= operate_pumps.usr.pump_status_2_a_1 0)) 2 (ite (and (and (and (< operate_pumps.usr.n_pumps_to_open_a_1 0) operate_pumps.usr.flow_2_a_1) (not operate_pumps.res.abs_13_a_1)) (= operate_pumps.usr.pump_status_2_a_1 1)) 0 (ite (= operate_pumps.usr.pump_status_2_a_1 2) 1 (ite (and (= operate_pumps.usr.pump_defect_2_a_0 2) (= operate_pumps.usr.pump_defect_2_a_1 0)) (ite (= operate_pumps.usr.pump_status_2_a_1 1) 0 1) operate_pumps.usr.pump_status_2_a_1))))) (= operate_pumps.res.abs_17_a_1 operate_pumps.usr.pump_defect_3_a_1) (= operate_pumps.res.abs_15_a_1 operate_pumps.usr.pump_defect_3_a_1) (= operate_pumps.usr.operate_pumps_3_a_1 (ite (and (and (and (> operate_pumps.usr.n_pumps_to_open_a_1 0) (not operate_pumps.usr.flow_3_a_1)) (not operate_pumps.res.abs_16_a_1)) (= operate_pumps.usr.pump_status_3_a_1 0)) 2 (ite (and (and (and (< operate_pumps.usr.n_pumps_to_open_a_1 0) operate_pumps.usr.flow_3_a_1) (not operate_pumps.res.abs_18_a_1)) (= operate_pumps.usr.pump_status_3_a_1 1)) 0 (ite (= operate_pumps.usr.pump_status_3_a_1 2) 1 (ite (and (= operate_pumps.usr.pump_defect_3_a_0 2) (= operate_pumps.usr.pump_defect_3_a_1 0)) (ite (= operate_pumps.usr.pump_status_3_a_1 1) 0 1) operate_pumps.usr.pump_status_3_a_1))))) (__node_trans_pump_failure_0 operate_pumps.res.abs_0_a_1 operate_pumps.res.abs_1_a_1 operate_pumps.res.inst_7_a_1 operate_pumps.res.abs_0_a_0 operate_pumps.res.abs_1_a_0 operate_pumps.res.inst_7_a_0) (__node_trans_pump_failure_0 operate_pumps.res.abs_2_a_1 operate_pumps.res.abs_3_a_1 operate_pumps.res.inst_6_a_1 operate_pumps.res.abs_2_a_0 operate_pumps.res.abs_3_a_0 operate_pumps.res.inst_6_a_0) (__node_trans_pump_failure_0 operate_pumps.res.abs_5_a_1 operate_pumps.res.abs_6_a_1 operate_pumps.res.inst_5_a_1 operate_pumps.res.abs_5_a_0 operate_pumps.res.abs_6_a_0 operate_pumps.res.inst_5_a_0) (__node_trans_pump_failure_0 operate_pumps.res.abs_7_a_1 operate_pumps.res.abs_8_a_1 operate_pumps.res.inst_4_a_1 operate_pumps.res.abs_7_a_0 operate_pumps.res.abs_8_a_0 operate_pumps.res.inst_4_a_0) (__node_trans_pump_failure_0 operate_pumps.res.abs_10_a_1 operate_pumps.res.abs_11_a_1 operate_pumps.res.inst_3_a_1 operate_pumps.res.abs_10_a_0 operate_pumps.res.abs_11_a_0 operate_pumps.res.inst_3_a_0) (__node_trans_pump_failure_0 operate_pumps.res.abs_12_a_1 operate_pumps.res.abs_13_a_1 operate_pumps.res.inst_2_a_1 operate_pumps.res.abs_12_a_0 operate_pumps.res.abs_13_a_0 operate_pumps.res.inst_2_a_0) (__node_trans_pump_failure_0 operate_pumps.res.abs_15_a_1 operate_pumps.res.abs_16_a_1 operate_pumps.res.inst_1_a_1 operate_pumps.res.abs_15_a_0 operate_pumps.res.abs_16_a_0 operate_pumps.res.inst_1_a_0) (__node_trans_pump_failure_0 operate_pumps.res.abs_17_a_1 operate_pumps.res.abs_18_a_1 operate_pumps.res.inst_0_a_1 operate_pumps.res.abs_17_a_0 operate_pumps.res.abs_18_a_0 operate_pumps.res.inst_0_a_0) (not operate_pumps.res.init_flag_a_1))) +(define-fun __node_init_PumpsStatus_0 ((PumpsStatus.usr.n_pumps_a_0 Int) (PumpsStatus.usr.pump_defect_0_a_0 Int) (PumpsStatus.usr.pump_defect_1_a_0 Int) (PumpsStatus.usr.pump_defect_2_a_0 Int) (PumpsStatus.usr.pump_defect_3_a_0 Int) (PumpsStatus.usr.flow_0_a_0 Bool) (PumpsStatus.usr.flow_1_a_0 Bool) (PumpsStatus.usr.flow_2_a_0 Bool) (PumpsStatus.usr.flow_3_a_0 Bool) (PumpsStatus.res.nondet_7 Int) (PumpsStatus.res.nondet_6 Int) (PumpsStatus.res.nondet_5 Int) (PumpsStatus.res.nondet_4 Int) (PumpsStatus.res.nondet_3 Int) (PumpsStatus.res.nondet_2 Int) (PumpsStatus.res.nondet_1 Int) (PumpsStatus.res.nondet_0 Int) (PumpsStatus.usr.pump_status_0_a_0 Int) (PumpsStatus.usr.pump_status_1_a_0 Int) (PumpsStatus.usr.pump_status_2_a_0 Int) (PumpsStatus.usr.pump_status_3_a_0 Int) (PumpsStatus.res.init_flag_a_0 Bool) (PumpsStatus.res.abs_4_a_0 Int) (PumpsStatus.res.abs_5_a_0 Int) (PumpsStatus.res.abs_6_a_0 Int) (PumpsStatus.res.abs_7_a_0 Int) (PumpsStatus.res.abs_8_a_0 Int) (PumpsStatus.res.abs_9_a_0 Int) (PumpsStatus.res.abs_10_a_0 Int) (PumpsStatus.res.abs_11_a_0 Int) (PumpsStatus.res.abs_12_a_0 Int) (PumpsStatus.res.abs_13_a_0 Int) (PumpsStatus.res.abs_14_a_0 Bool) (PumpsStatus.res.abs_15_a_0 Bool) (PumpsStatus.res.abs_16_a_0 Bool) (PumpsStatus.res.abs_17_a_0 Bool) (PumpsStatus.res.abs_18_a_0 Int) (PumpsStatus.res.abs_19_a_0 Int) (PumpsStatus.res.abs_20_a_0 Int) (PumpsStatus.res.abs_21_a_0 Int) (PumpsStatus.res.inst_24_a_0 Bool) (PumpsStatus.res.inst_23_a_0 Int) (PumpsStatus.res.inst_22_a_0 Bool) (PumpsStatus.res.inst_21_a_0 Int) (PumpsStatus.res.inst_20_a_0 Bool) (PumpsStatus.res.inst_19_a_0 Int) (PumpsStatus.res.inst_18_a_0 Bool) (PumpsStatus.res.inst_17_a_0 Int) (PumpsStatus.res.inst_16_a_0 Bool) (PumpsStatus.res.inst_15_a_0 Int) (PumpsStatus.res.inst_14_a_0 Bool) (PumpsStatus.res.inst_13_a_0 Int) (PumpsStatus.res.inst_12_a_0 Bool) (PumpsStatus.res.inst_11_a_0 Int) (PumpsStatus.res.inst_10_a_0 Bool) (PumpsStatus.res.inst_9_a_0 Int) (PumpsStatus.res.inst_8_a_0 Bool) (PumpsStatus.res.inst_7_a_0 Bool) (PumpsStatus.res.inst_6_a_0 Bool) (PumpsStatus.res.inst_5_a_0 Bool) (PumpsStatus.res.inst_4_a_0 Bool) (PumpsStatus.res.inst_3_a_0 Bool) (PumpsStatus.res.inst_2_a_0 Bool) (PumpsStatus.res.inst_1_a_0 Bool) (PumpsStatus.res.inst_0_a_0 Bool)) Bool + (and (= PumpsStatus.usr.pump_status_0_a_0 0) (= PumpsStatus.res.abs_14_a_0 PumpsStatus.usr.flow_0_a_0) (= PumpsStatus.res.abs_10_a_0 PumpsStatus.usr.pump_defect_0_a_0) (= PumpsStatus.res.abs_6_a_0 (let ((X1 PumpsStatus.res.nondet_0)) X1)) (let ((X1 (+ (+ (+ (ite PumpsStatus.usr.flow_0_a_0 1 0) (ite PumpsStatus.usr.flow_1_a_0 1 0)) (ite PumpsStatus.usr.flow_2_a_0 1 0)) (ite PumpsStatus.usr.flow_3_a_0 1 0)))) (let ((X2 (- PumpsStatus.usr.n_pumps_a_0 X1))) (and (= PumpsStatus.res.abs_5_a_0 X2) (let ((X3 PumpsStatus.res.abs_18_a_0)) (and (= PumpsStatus.res.abs_4_a_0 4) (= PumpsStatus.res.abs_7_a_0 (let ((X4 PumpsStatus.res.nondet_1)) X4)) (= PumpsStatus.usr.pump_status_1_a_0 0) (= PumpsStatus.res.abs_15_a_0 PumpsStatus.usr.flow_1_a_0) (= PumpsStatus.res.abs_11_a_0 PumpsStatus.usr.pump_defect_1_a_0) (let ((X4 PumpsStatus.res.abs_19_a_0)) (and (= PumpsStatus.res.abs_8_a_0 (let ((X5 PumpsStatus.res.nondet_2)) X5)) (= PumpsStatus.usr.pump_status_2_a_0 0) (= PumpsStatus.res.abs_16_a_0 PumpsStatus.usr.flow_2_a_0) (= PumpsStatus.res.abs_12_a_0 PumpsStatus.usr.pump_defect_2_a_0) (let ((X5 PumpsStatus.res.abs_20_a_0)) (and (= PumpsStatus.res.abs_9_a_0 (let ((X6 PumpsStatus.res.nondet_3)) X6)) (= PumpsStatus.usr.pump_status_3_a_0 0) (= PumpsStatus.res.abs_17_a_0 PumpsStatus.usr.flow_3_a_0) (= PumpsStatus.res.abs_13_a_0 PumpsStatus.usr.pump_defect_3_a_0) (let ((X6 PumpsStatus.res.abs_21_a_0)) (and (__node_init_operate_pumps_0 PumpsStatus.res.abs_4_a_0 PumpsStatus.res.abs_5_a_0 PumpsStatus.res.abs_6_a_0 PumpsStatus.res.abs_7_a_0 PumpsStatus.res.abs_8_a_0 PumpsStatus.res.abs_9_a_0 PumpsStatus.res.abs_10_a_0 PumpsStatus.res.abs_11_a_0 PumpsStatus.res.abs_12_a_0 PumpsStatus.res.abs_13_a_0 PumpsStatus.res.abs_14_a_0 PumpsStatus.res.abs_15_a_0 PumpsStatus.res.abs_16_a_0 PumpsStatus.res.abs_17_a_0 PumpsStatus.res.nondet_7 PumpsStatus.res.nondet_6 PumpsStatus.res.nondet_5 PumpsStatus.res.nondet_4 PumpsStatus.res.abs_18_a_0 PumpsStatus.res.abs_19_a_0 PumpsStatus.res.abs_20_a_0 PumpsStatus.res.abs_21_a_0 PumpsStatus.res.inst_24_a_0 PumpsStatus.res.inst_23_a_0 PumpsStatus.res.inst_22_a_0 PumpsStatus.res.inst_21_a_0 PumpsStatus.res.inst_20_a_0 PumpsStatus.res.inst_19_a_0 PumpsStatus.res.inst_18_a_0 PumpsStatus.res.inst_17_a_0 PumpsStatus.res.inst_16_a_0 PumpsStatus.res.inst_15_a_0 PumpsStatus.res.inst_14_a_0 PumpsStatus.res.inst_13_a_0 PumpsStatus.res.inst_12_a_0 PumpsStatus.res.inst_11_a_0 PumpsStatus.res.inst_10_a_0 PumpsStatus.res.inst_9_a_0 PumpsStatus.res.inst_8_a_0 PumpsStatus.res.inst_7_a_0 PumpsStatus.res.inst_6_a_0 PumpsStatus.res.inst_5_a_0 PumpsStatus.res.inst_4_a_0 PumpsStatus.res.inst_3_a_0 PumpsStatus.res.inst_2_a_0 PumpsStatus.res.inst_1_a_0 PumpsStatus.res.inst_0_a_0) (<= 4 PumpsStatus.res.abs_4_a_0 4) (<= 0 X1 4) PumpsStatus.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_PumpsStatus_0 ((PumpsStatus.usr.n_pumps_a_1 Int) (PumpsStatus.usr.pump_defect_0_a_1 Int) (PumpsStatus.usr.pump_defect_1_a_1 Int) (PumpsStatus.usr.pump_defect_2_a_1 Int) (PumpsStatus.usr.pump_defect_3_a_1 Int) (PumpsStatus.usr.flow_0_a_1 Bool) (PumpsStatus.usr.flow_1_a_1 Bool) (PumpsStatus.usr.flow_2_a_1 Bool) (PumpsStatus.usr.flow_3_a_1 Bool) (PumpsStatus.res.nondet_7 Int) (PumpsStatus.res.nondet_6 Int) (PumpsStatus.res.nondet_5 Int) (PumpsStatus.res.nondet_4 Int) (PumpsStatus.res.nondet_3 Int) (PumpsStatus.res.nondet_2 Int) (PumpsStatus.res.nondet_1 Int) (PumpsStatus.res.nondet_0 Int) (PumpsStatus.usr.pump_status_0_a_1 Int) (PumpsStatus.usr.pump_status_1_a_1 Int) (PumpsStatus.usr.pump_status_2_a_1 Int) (PumpsStatus.usr.pump_status_3_a_1 Int) (PumpsStatus.res.init_flag_a_1 Bool) (PumpsStatus.res.abs_4_a_1 Int) (PumpsStatus.res.abs_5_a_1 Int) (PumpsStatus.res.abs_6_a_1 Int) (PumpsStatus.res.abs_7_a_1 Int) (PumpsStatus.res.abs_8_a_1 Int) (PumpsStatus.res.abs_9_a_1 Int) (PumpsStatus.res.abs_10_a_1 Int) (PumpsStatus.res.abs_11_a_1 Int) (PumpsStatus.res.abs_12_a_1 Int) (PumpsStatus.res.abs_13_a_1 Int) (PumpsStatus.res.abs_14_a_1 Bool) (PumpsStatus.res.abs_15_a_1 Bool) (PumpsStatus.res.abs_16_a_1 Bool) (PumpsStatus.res.abs_17_a_1 Bool) (PumpsStatus.res.abs_18_a_1 Int) (PumpsStatus.res.abs_19_a_1 Int) (PumpsStatus.res.abs_20_a_1 Int) (PumpsStatus.res.abs_21_a_1 Int) (PumpsStatus.res.inst_24_a_1 Bool) (PumpsStatus.res.inst_23_a_1 Int) (PumpsStatus.res.inst_22_a_1 Bool) (PumpsStatus.res.inst_21_a_1 Int) (PumpsStatus.res.inst_20_a_1 Bool) (PumpsStatus.res.inst_19_a_1 Int) (PumpsStatus.res.inst_18_a_1 Bool) (PumpsStatus.res.inst_17_a_1 Int) (PumpsStatus.res.inst_16_a_1 Bool) (PumpsStatus.res.inst_15_a_1 Int) (PumpsStatus.res.inst_14_a_1 Bool) (PumpsStatus.res.inst_13_a_1 Int) (PumpsStatus.res.inst_12_a_1 Bool) (PumpsStatus.res.inst_11_a_1 Int) (PumpsStatus.res.inst_10_a_1 Bool) (PumpsStatus.res.inst_9_a_1 Int) (PumpsStatus.res.inst_8_a_1 Bool) (PumpsStatus.res.inst_7_a_1 Bool) (PumpsStatus.res.inst_6_a_1 Bool) (PumpsStatus.res.inst_5_a_1 Bool) (PumpsStatus.res.inst_4_a_1 Bool) (PumpsStatus.res.inst_3_a_1 Bool) (PumpsStatus.res.inst_2_a_1 Bool) (PumpsStatus.res.inst_1_a_1 Bool) (PumpsStatus.res.inst_0_a_1 Bool) (PumpsStatus.usr.n_pumps_a_0 Int) (PumpsStatus.usr.pump_defect_0_a_0 Int) (PumpsStatus.usr.pump_defect_1_a_0 Int) (PumpsStatus.usr.pump_defect_2_a_0 Int) (PumpsStatus.usr.pump_defect_3_a_0 Int) (PumpsStatus.usr.flow_0_a_0 Bool) (PumpsStatus.usr.flow_1_a_0 Bool) (PumpsStatus.usr.flow_2_a_0 Bool) (PumpsStatus.usr.flow_3_a_0 Bool) (PumpsStatus.usr.pump_status_0_a_0 Int) (PumpsStatus.usr.pump_status_1_a_0 Int) (PumpsStatus.usr.pump_status_2_a_0 Int) (PumpsStatus.usr.pump_status_3_a_0 Int) (PumpsStatus.res.init_flag_a_0 Bool) (PumpsStatus.res.abs_4_a_0 Int) (PumpsStatus.res.abs_5_a_0 Int) (PumpsStatus.res.abs_6_a_0 Int) (PumpsStatus.res.abs_7_a_0 Int) (PumpsStatus.res.abs_8_a_0 Int) (PumpsStatus.res.abs_9_a_0 Int) (PumpsStatus.res.abs_10_a_0 Int) (PumpsStatus.res.abs_11_a_0 Int) (PumpsStatus.res.abs_12_a_0 Int) (PumpsStatus.res.abs_13_a_0 Int) (PumpsStatus.res.abs_14_a_0 Bool) (PumpsStatus.res.abs_15_a_0 Bool) (PumpsStatus.res.abs_16_a_0 Bool) (PumpsStatus.res.abs_17_a_0 Bool) (PumpsStatus.res.abs_18_a_0 Int) (PumpsStatus.res.abs_19_a_0 Int) (PumpsStatus.res.abs_20_a_0 Int) (PumpsStatus.res.abs_21_a_0 Int) (PumpsStatus.res.inst_24_a_0 Bool) (PumpsStatus.res.inst_23_a_0 Int) (PumpsStatus.res.inst_22_a_0 Bool) (PumpsStatus.res.inst_21_a_0 Int) (PumpsStatus.res.inst_20_a_0 Bool) (PumpsStatus.res.inst_19_a_0 Int) (PumpsStatus.res.inst_18_a_0 Bool) (PumpsStatus.res.inst_17_a_0 Int) (PumpsStatus.res.inst_16_a_0 Bool) (PumpsStatus.res.inst_15_a_0 Int) (PumpsStatus.res.inst_14_a_0 Bool) (PumpsStatus.res.inst_13_a_0 Int) (PumpsStatus.res.inst_12_a_0 Bool) (PumpsStatus.res.inst_11_a_0 Int) (PumpsStatus.res.inst_10_a_0 Bool) (PumpsStatus.res.inst_9_a_0 Int) (PumpsStatus.res.inst_8_a_0 Bool) (PumpsStatus.res.inst_7_a_0 Bool) (PumpsStatus.res.inst_6_a_0 Bool) (PumpsStatus.res.inst_5_a_0 Bool) (PumpsStatus.res.inst_4_a_0 Bool) (PumpsStatus.res.inst_3_a_0 Bool) (PumpsStatus.res.inst_2_a_0 Bool) (PumpsStatus.res.inst_1_a_0 Bool) (PumpsStatus.res.inst_0_a_0 Bool)) Bool + (and (= PumpsStatus.res.abs_14_a_1 PumpsStatus.usr.flow_0_a_1) (= PumpsStatus.res.abs_10_a_1 PumpsStatus.usr.pump_defect_0_a_1) (= PumpsStatus.res.abs_6_a_1 PumpsStatus.usr.pump_status_0_a_0) (let ((X1 (+ (+ (+ (ite PumpsStatus.usr.flow_0_a_1 1 0) (ite PumpsStatus.usr.flow_1_a_1 1 0)) (ite PumpsStatus.usr.flow_2_a_1 1 0)) (ite PumpsStatus.usr.flow_3_a_1 1 0)))) (let ((X2 (- PumpsStatus.usr.n_pumps_a_1 X1))) (and (= PumpsStatus.res.abs_5_a_1 X2) (let ((X3 PumpsStatus.res.abs_18_a_1)) (and (= PumpsStatus.usr.pump_status_0_a_1 X3) (= PumpsStatus.res.abs_4_a_1 4) (= PumpsStatus.res.abs_7_a_1 PumpsStatus.usr.pump_status_1_a_0) (= PumpsStatus.res.abs_15_a_1 PumpsStatus.usr.flow_1_a_1) (= PumpsStatus.res.abs_11_a_1 PumpsStatus.usr.pump_defect_1_a_1) (let ((X4 PumpsStatus.res.abs_19_a_1)) (and (= PumpsStatus.usr.pump_status_1_a_1 X4) (= PumpsStatus.res.abs_8_a_1 PumpsStatus.usr.pump_status_2_a_0) (= PumpsStatus.res.abs_16_a_1 PumpsStatus.usr.flow_2_a_1) (= PumpsStatus.res.abs_12_a_1 PumpsStatus.usr.pump_defect_2_a_1) (let ((X5 PumpsStatus.res.abs_20_a_1)) (and (= PumpsStatus.usr.pump_status_2_a_1 X5) (= PumpsStatus.res.abs_9_a_1 PumpsStatus.usr.pump_status_3_a_0) (= PumpsStatus.res.abs_17_a_1 PumpsStatus.usr.flow_3_a_1) (= PumpsStatus.res.abs_13_a_1 PumpsStatus.usr.pump_defect_3_a_1) (let ((X6 PumpsStatus.res.abs_21_a_1)) (and (= PumpsStatus.usr.pump_status_3_a_1 X6) (__node_trans_operate_pumps_0 PumpsStatus.res.abs_4_a_1 PumpsStatus.res.abs_5_a_1 PumpsStatus.res.abs_6_a_1 PumpsStatus.res.abs_7_a_1 PumpsStatus.res.abs_8_a_1 PumpsStatus.res.abs_9_a_1 PumpsStatus.res.abs_10_a_1 PumpsStatus.res.abs_11_a_1 PumpsStatus.res.abs_12_a_1 PumpsStatus.res.abs_13_a_1 PumpsStatus.res.abs_14_a_1 PumpsStatus.res.abs_15_a_1 PumpsStatus.res.abs_16_a_1 PumpsStatus.res.abs_17_a_1 PumpsStatus.res.nondet_7 PumpsStatus.res.nondet_6 PumpsStatus.res.nondet_5 PumpsStatus.res.nondet_4 PumpsStatus.res.abs_18_a_1 PumpsStatus.res.abs_19_a_1 PumpsStatus.res.abs_20_a_1 PumpsStatus.res.abs_21_a_1 PumpsStatus.res.inst_24_a_1 PumpsStatus.res.inst_23_a_1 PumpsStatus.res.inst_22_a_1 PumpsStatus.res.inst_21_a_1 PumpsStatus.res.inst_20_a_1 PumpsStatus.res.inst_19_a_1 PumpsStatus.res.inst_18_a_1 PumpsStatus.res.inst_17_a_1 PumpsStatus.res.inst_16_a_1 PumpsStatus.res.inst_15_a_1 PumpsStatus.res.inst_14_a_1 PumpsStatus.res.inst_13_a_1 PumpsStatus.res.inst_12_a_1 PumpsStatus.res.inst_11_a_1 PumpsStatus.res.inst_10_a_1 PumpsStatus.res.inst_9_a_1 PumpsStatus.res.inst_8_a_1 PumpsStatus.res.inst_7_a_1 PumpsStatus.res.inst_6_a_1 PumpsStatus.res.inst_5_a_1 PumpsStatus.res.inst_4_a_1 PumpsStatus.res.inst_3_a_1 PumpsStatus.res.inst_2_a_1 PumpsStatus.res.inst_1_a_1 PumpsStatus.res.inst_0_a_1 PumpsStatus.res.abs_4_a_0 PumpsStatus.res.abs_5_a_0 PumpsStatus.res.abs_6_a_0 PumpsStatus.res.abs_7_a_0 PumpsStatus.res.abs_8_a_0 PumpsStatus.res.abs_9_a_0 PumpsStatus.res.abs_10_a_0 PumpsStatus.res.abs_11_a_0 PumpsStatus.res.abs_12_a_0 PumpsStatus.res.abs_13_a_0 PumpsStatus.res.abs_14_a_0 PumpsStatus.res.abs_15_a_0 PumpsStatus.res.abs_16_a_0 PumpsStatus.res.abs_17_a_0 PumpsStatus.res.abs_18_a_0 PumpsStatus.res.abs_19_a_0 PumpsStatus.res.abs_20_a_0 PumpsStatus.res.abs_21_a_0 PumpsStatus.res.inst_24_a_0 PumpsStatus.res.inst_23_a_0 PumpsStatus.res.inst_22_a_0 PumpsStatus.res.inst_21_a_0 PumpsStatus.res.inst_20_a_0 PumpsStatus.res.inst_19_a_0 PumpsStatus.res.inst_18_a_0 PumpsStatus.res.inst_17_a_0 PumpsStatus.res.inst_16_a_0 PumpsStatus.res.inst_15_a_0 PumpsStatus.res.inst_14_a_0 PumpsStatus.res.inst_13_a_0 PumpsStatus.res.inst_12_a_0 PumpsStatus.res.inst_11_a_0 PumpsStatus.res.inst_10_a_0 PumpsStatus.res.inst_9_a_0 PumpsStatus.res.inst_8_a_0 PumpsStatus.res.inst_7_a_0 PumpsStatus.res.inst_6_a_0 PumpsStatus.res.inst_5_a_0 PumpsStatus.res.inst_4_a_0 PumpsStatus.res.inst_3_a_0 PumpsStatus.res.inst_2_a_0 PumpsStatus.res.inst_1_a_0 PumpsStatus.res.inst_0_a_0) (<= 4 PumpsStatus.res.abs_4_a_1 4) (<= 0 X1 4) (not PumpsStatus.res.init_flag_a_1)))))))))))))) +(define-fun __node_init_sum_0 ((sum.usr.a_0_a_0 Int) (sum.usr.a_1_a_0 Int) (sum.usr.a_2_a_0 Int) (sum.usr.a_3_a_0 Int) (sum.usr.sum_a_0 Int) (sum.res.init_flag_a_0 Bool)) Bool + (and (= sum.usr.sum_a_0 (+ (+ (+ sum.usr.a_0_a_0 sum.usr.a_1_a_0) sum.usr.a_2_a_0) sum.usr.a_3_a_0)) sum.res.init_flag_a_0)) +(define-fun __node_trans_sum_0 ((sum.usr.a_0_a_1 Int) (sum.usr.a_1_a_1 Int) (sum.usr.a_2_a_1 Int) (sum.usr.a_3_a_1 Int) (sum.usr.sum_a_1 Int) (sum.res.init_flag_a_1 Bool) (sum.usr.a_0_a_0 Int) (sum.usr.a_1_a_0 Int) (sum.usr.a_2_a_0 Int) (sum.usr.a_3_a_0 Int) (sum.usr.sum_a_0 Int) (sum.res.init_flag_a_0 Bool)) Bool + (and (= sum.usr.sum_a_1 (+ (+ (+ sum.usr.a_0_a_1 sum.usr.a_1_a_1) sum.usr.a_2_a_1) sum.usr.a_3_a_1)) (not sum.res.init_flag_a_1))) +(define-fun __node_init_Dynamics_0 ((Dynamics.usr.valve_state_a_0 Int) (Dynamics.usr.level_a_0 Int) (Dynamics.usr.steam_a_0 Int) (Dynamics.usr.level_defect_a_0 Int) (Dynamics.usr.steam_defect_a_0 Int) (Dynamics.usr.flow_0_a_0 Bool) (Dynamics.usr.flow_1_a_0 Bool) (Dynamics.usr.flow_2_a_0 Bool) (Dynamics.usr.flow_3_a_0 Bool) (Dynamics.usr.q_a_0 Int) (Dynamics.usr.v_a_0 Int) (Dynamics.usr.p_0_a_0 Int) (Dynamics.usr.p_1_a_0 Int) (Dynamics.usr.p_2_a_0 Int) (Dynamics.usr.p_3_a_0 Int) (Dynamics.res.init_flag_a_0 Bool) (Dynamics.res.abs_0_a_0 Bool) (Dynamics.res.abs_1_a_0 Int) (Dynamics.res.abs_2_a_0 Bool) (Dynamics.res.inst_2_a_0 Bool) (Dynamics.res.inst_1_a_0 Bool) (Dynamics.res.inst_0_a_0 Bool)) Bool + (and (= Dynamics.usr.q_a_0 Dynamics.usr.level_a_0) (= Dynamics.usr.p_0_a_0 0) (= Dynamics.usr.p_1_a_0 0) (= Dynamics.usr.p_2_a_0 0) (= Dynamics.usr.p_3_a_0 0) (= Dynamics.usr.v_a_0 Dynamics.usr.steam_a_0) (__node_init_level_failure_0 Dynamics.usr.level_defect_a_0 Dynamics.res.abs_0_a_0 Dynamics.res.inst_2_a_0) (__node_init_sum_0 Dynamics.usr.p_0_a_0 Dynamics.usr.p_1_a_0 Dynamics.usr.p_2_a_0 Dynamics.usr.p_3_a_0 Dynamics.res.abs_1_a_0 Dynamics.res.inst_1_a_0) (__node_init_steam_failure_0 Dynamics.usr.steam_defect_a_0 Dynamics.res.abs_2_a_0 Dynamics.res.inst_0_a_0) (<= 0 Dynamics.usr.p_3_a_0 15) (<= 0 Dynamics.usr.p_2_a_0 15) (<= 0 Dynamics.usr.p_1_a_0 15) (<= 0 Dynamics.usr.p_0_a_0 15) Dynamics.res.init_flag_a_0)) +(define-fun __node_trans_Dynamics_0 ((Dynamics.usr.valve_state_a_1 Int) (Dynamics.usr.level_a_1 Int) (Dynamics.usr.steam_a_1 Int) (Dynamics.usr.level_defect_a_1 Int) (Dynamics.usr.steam_defect_a_1 Int) (Dynamics.usr.flow_0_a_1 Bool) (Dynamics.usr.flow_1_a_1 Bool) (Dynamics.usr.flow_2_a_1 Bool) (Dynamics.usr.flow_3_a_1 Bool) (Dynamics.usr.q_a_1 Int) (Dynamics.usr.v_a_1 Int) (Dynamics.usr.p_0_a_1 Int) (Dynamics.usr.p_1_a_1 Int) (Dynamics.usr.p_2_a_1 Int) (Dynamics.usr.p_3_a_1 Int) (Dynamics.res.init_flag_a_1 Bool) (Dynamics.res.abs_0_a_1 Bool) (Dynamics.res.abs_1_a_1 Int) (Dynamics.res.abs_2_a_1 Bool) (Dynamics.res.inst_2_a_1 Bool) (Dynamics.res.inst_1_a_1 Bool) (Dynamics.res.inst_0_a_1 Bool) (Dynamics.usr.valve_state_a_0 Int) (Dynamics.usr.level_a_0 Int) (Dynamics.usr.steam_a_0 Int) (Dynamics.usr.level_defect_a_0 Int) (Dynamics.usr.steam_defect_a_0 Int) (Dynamics.usr.flow_0_a_0 Bool) (Dynamics.usr.flow_1_a_0 Bool) (Dynamics.usr.flow_2_a_0 Bool) (Dynamics.usr.flow_3_a_0 Bool) (Dynamics.usr.q_a_0 Int) (Dynamics.usr.v_a_0 Int) (Dynamics.usr.p_0_a_0 Int) (Dynamics.usr.p_1_a_0 Int) (Dynamics.usr.p_2_a_0 Int) (Dynamics.usr.p_3_a_0 Int) (Dynamics.res.init_flag_a_0 Bool) (Dynamics.res.abs_0_a_0 Bool) (Dynamics.res.abs_1_a_0 Int) (Dynamics.res.abs_2_a_0 Bool) (Dynamics.res.inst_2_a_0 Bool) (Dynamics.res.inst_1_a_0 Bool) (Dynamics.res.inst_0_a_0 Bool)) Bool + (and (= Dynamics.usr.p_3_a_1 (ite (not Dynamics.usr.flow_3_a_1) 0 15)) (= Dynamics.usr.p_2_a_1 (ite (not Dynamics.usr.flow_2_a_1) 0 15)) (= Dynamics.usr.p_1_a_1 (ite (not Dynamics.usr.flow_1_a_1) 0 15)) (= Dynamics.usr.p_0_a_1 (ite (not Dynamics.usr.flow_0_a_1) 0 15)) (= Dynamics.usr.q_a_1 (ite Dynamics.res.abs_0_a_1 (- (+ (- Dynamics.usr.q_a_0 (* Dynamics.usr.steam_a_1 5)) (* Dynamics.res.abs_1_a_1 5)) (ite (= Dynamics.usr.valve_state_a_1 1) 50 0)) Dynamics.usr.level_a_1)) (= Dynamics.usr.v_a_1 (ite Dynamics.res.abs_2_a_1 (+ (div (- Dynamics.usr.q_a_0 Dynamics.usr.q_a_1) 5) (* Dynamics.res.abs_1_a_1 5)) Dynamics.usr.steam_a_1)) (__node_trans_level_failure_0 Dynamics.usr.level_defect_a_1 Dynamics.res.abs_0_a_1 Dynamics.res.inst_2_a_1 Dynamics.usr.level_defect_a_0 Dynamics.res.abs_0_a_0 Dynamics.res.inst_2_a_0) (__node_trans_sum_0 Dynamics.usr.p_0_a_1 Dynamics.usr.p_1_a_1 Dynamics.usr.p_2_a_1 Dynamics.usr.p_3_a_1 Dynamics.res.abs_1_a_1 Dynamics.res.inst_1_a_1 Dynamics.usr.p_0_a_0 Dynamics.usr.p_1_a_0 Dynamics.usr.p_2_a_0 Dynamics.usr.p_3_a_0 Dynamics.res.abs_1_a_0 Dynamics.res.inst_1_a_0) (__node_trans_steam_failure_0 Dynamics.usr.steam_defect_a_1 Dynamics.res.abs_2_a_1 Dynamics.res.inst_0_a_1 Dynamics.usr.steam_defect_a_0 Dynamics.res.abs_2_a_0 Dynamics.res.inst_0_a_0) (<= 0 Dynamics.usr.p_3_a_1 15) (<= 0 Dynamics.usr.p_2_a_1 15) (<= 0 Dynamics.usr.p_1_a_1 15) (<= 0 Dynamics.usr.p_0_a_1 15) (not Dynamics.res.init_flag_a_1))) +(define-fun __node_init_pump_failure_detect_0 ((pump_failure_detect.usr.pump_status_a_0 Int) (pump_failure_detect.usr.pump_state_a_0 Int) (pump_failure_detect.usr.pump_control_state_a_0 Bool) (pump_failure_detect.usr.pump_failure_detect_a_0 Bool) (pump_failure_detect.usr.pump_control_failure_detect_a_0 Bool) (pump_failure_detect.usr.flow_a_0 Bool) (pump_failure_detect.res.init_flag_a_0 Bool)) Bool + (and (= pump_failure_detect.usr.pump_failure_detect_a_0 (or (and (= pump_failure_detect.usr.pump_status_a_0 0) (= pump_failure_detect.usr.pump_state_a_0 1)) (and (or (= pump_failure_detect.usr.pump_status_a_0 1) (= pump_failure_detect.usr.pump_status_a_0 2)) (= pump_failure_detect.usr.pump_state_a_0 0)))) (= pump_failure_detect.usr.pump_control_failure_detect_a_0 (or (or (and (and (or (= pump_failure_detect.usr.pump_status_a_0 0) (= pump_failure_detect.usr.pump_status_a_0 2)) (= pump_failure_detect.usr.pump_state_a_0 0)) pump_failure_detect.usr.pump_control_state_a_0) (and (and (= pump_failure_detect.usr.pump_status_a_0 1) (= pump_failure_detect.usr.pump_state_a_0 1)) (not pump_failure_detect.usr.pump_control_state_a_0))) (and (and (= pump_failure_detect.usr.pump_status_a_0 2) (= pump_failure_detect.usr.pump_state_a_0 1)) pump_failure_detect.usr.pump_control_state_a_0))) (= pump_failure_detect.usr.flow_a_0 (or (or (and (and (= pump_failure_detect.usr.pump_status_a_0 0) (= pump_failure_detect.usr.pump_state_a_0 1)) pump_failure_detect.usr.pump_control_state_a_0) (and (and (= pump_failure_detect.usr.pump_status_a_0 1) (= pump_failure_detect.usr.pump_state_a_0 0)) pump_failure_detect.usr.pump_control_state_a_0)) (and (= pump_failure_detect.usr.pump_status_a_0 1) (= pump_failure_detect.usr.pump_state_a_0 1)))) pump_failure_detect.res.init_flag_a_0)) +(define-fun __node_trans_pump_failure_detect_0 ((pump_failure_detect.usr.pump_status_a_1 Int) (pump_failure_detect.usr.pump_state_a_1 Int) (pump_failure_detect.usr.pump_control_state_a_1 Bool) (pump_failure_detect.usr.pump_failure_detect_a_1 Bool) (pump_failure_detect.usr.pump_control_failure_detect_a_1 Bool) (pump_failure_detect.usr.flow_a_1 Bool) (pump_failure_detect.res.init_flag_a_1 Bool) (pump_failure_detect.usr.pump_status_a_0 Int) (pump_failure_detect.usr.pump_state_a_0 Int) (pump_failure_detect.usr.pump_control_state_a_0 Bool) (pump_failure_detect.usr.pump_failure_detect_a_0 Bool) (pump_failure_detect.usr.pump_control_failure_detect_a_0 Bool) (pump_failure_detect.usr.flow_a_0 Bool) (pump_failure_detect.res.init_flag_a_0 Bool)) Bool + (and (= pump_failure_detect.usr.pump_failure_detect_a_1 (or (and (= pump_failure_detect.usr.pump_status_a_1 0) (= pump_failure_detect.usr.pump_state_a_1 1)) (and (or (= pump_failure_detect.usr.pump_status_a_1 1) (= pump_failure_detect.usr.pump_status_a_1 2)) (= pump_failure_detect.usr.pump_state_a_1 0)))) (= pump_failure_detect.usr.pump_control_failure_detect_a_1 (or (or (and (and (or (= pump_failure_detect.usr.pump_status_a_1 0) (= pump_failure_detect.usr.pump_status_a_1 2)) (= pump_failure_detect.usr.pump_state_a_1 0)) pump_failure_detect.usr.pump_control_state_a_1) (and (and (= pump_failure_detect.usr.pump_status_a_1 1) (= pump_failure_detect.usr.pump_state_a_1 1)) (not pump_failure_detect.usr.pump_control_state_a_1))) (and (and (= pump_failure_detect.usr.pump_status_a_1 2) (= pump_failure_detect.usr.pump_state_a_1 1)) pump_failure_detect.usr.pump_control_state_a_1))) (= pump_failure_detect.usr.flow_a_1 (or (or (and (and (= pump_failure_detect.usr.pump_status_a_1 0) (= pump_failure_detect.usr.pump_state_a_1 1)) pump_failure_detect.usr.pump_control_state_a_1) (and (and (= pump_failure_detect.usr.pump_status_a_1 1) (= pump_failure_detect.usr.pump_state_a_1 0)) pump_failure_detect.usr.pump_control_state_a_1)) (and (= pump_failure_detect.usr.pump_status_a_1 1) (= pump_failure_detect.usr.pump_state_a_1 1)))) (not pump_failure_detect.res.init_flag_a_1))) +(define-fun __node_init_PumpDefect_0 ((PumpDefect.usr.pump_failure_acknowledgement_a_0 Bool) (PumpDefect.usr.pump_repaired_a_0 Bool) (PumpDefect.usr.pump_control_failure_acknowledgement_a_0 Bool) (PumpDefect.usr.pump_control_repaired_a_0 Bool) (PumpDefect.usr.pump_status_a_0 Int) (PumpDefect.usr.pump_state_a_0 Int) (PumpDefect.usr.pump_control_state_a_0 Bool) (PumpDefect.res.nondet_1 Int) (PumpDefect.res.nondet_0 Int) (PumpDefect.usr.PumpDefect_a_0 Int) (PumpDefect.usr.PumpControlDefect_a_0 Int) (PumpDefect.usr.Flow_a_0 Bool) (PumpDefect.res.init_flag_a_0 Bool) (PumpDefect.impl.usr.pump_failure_d_a_0 Bool) (PumpDefect.impl.usr.pump_control_failure_d_a_0 Bool) (PumpDefect.res.abs_0_a_0 Bool) (PumpDefect.res.abs_1_a_0 Bool) (PumpDefect.res.abs_2_a_0 Bool) (PumpDefect.res.abs_3_a_0 Int) (PumpDefect.res.abs_4_a_0 Int) (PumpDefect.res.abs_5_a_0 Int) (PumpDefect.res.abs_6_a_0 Int) (PumpDefect.res.inst_2_a_0 Bool) (PumpDefect.res.inst_1_a_0 Bool) (PumpDefect.res.inst_0_a_0 Bool)) Bool + (and (= PumpDefect.usr.PumpDefect_a_0 0) (= PumpDefect.res.abs_3_a_0 (let ((X1 PumpDefect.res.nondet_0)) X1)) (= PumpDefect.impl.usr.pump_failure_d_a_0 PumpDefect.res.abs_0_a_0) (= PumpDefect.usr.PumpControlDefect_a_0 0) (= PumpDefect.res.abs_5_a_0 (let ((X1 PumpDefect.res.nondet_1)) X1)) (= PumpDefect.impl.usr.pump_control_failure_d_a_0 PumpDefect.res.abs_1_a_0) (= PumpDefect.usr.Flow_a_0 PumpDefect.res.abs_2_a_0) (__node_init_Defect_0 PumpDefect.res.abs_3_a_0 PumpDefect.impl.usr.pump_failure_d_a_0 PumpDefect.usr.pump_failure_acknowledgement_a_0 PumpDefect.usr.pump_repaired_a_0 PumpDefect.res.abs_4_a_0 PumpDefect.res.inst_2_a_0) (__node_init_pump_failure_detect_0 PumpDefect.usr.pump_status_a_0 PumpDefect.usr.pump_state_a_0 PumpDefect.usr.pump_control_state_a_0 PumpDefect.res.abs_0_a_0 PumpDefect.res.abs_1_a_0 PumpDefect.res.abs_2_a_0 PumpDefect.res.inst_1_a_0) (__node_init_Defect_0 PumpDefect.res.abs_5_a_0 PumpDefect.impl.usr.pump_control_failure_d_a_0 PumpDefect.usr.pump_control_failure_acknowledgement_a_0 PumpDefect.usr.pump_control_repaired_a_0 PumpDefect.res.abs_6_a_0 PumpDefect.res.inst_0_a_0) (<= 0 PumpDefect.res.abs_4_a_0 2) (<= 0 PumpDefect.res.abs_6_a_0 2) (<= 0 PumpDefect.usr.PumpControlDefect_a_0 2) (<= 0 PumpDefect.usr.PumpDefect_a_0 2) PumpDefect.res.init_flag_a_0)) +(define-fun __node_trans_PumpDefect_0 ((PumpDefect.usr.pump_failure_acknowledgement_a_1 Bool) (PumpDefect.usr.pump_repaired_a_1 Bool) (PumpDefect.usr.pump_control_failure_acknowledgement_a_1 Bool) (PumpDefect.usr.pump_control_repaired_a_1 Bool) (PumpDefect.usr.pump_status_a_1 Int) (PumpDefect.usr.pump_state_a_1 Int) (PumpDefect.usr.pump_control_state_a_1 Bool) (PumpDefect.res.nondet_1 Int) (PumpDefect.res.nondet_0 Int) (PumpDefect.usr.PumpDefect_a_1 Int) (PumpDefect.usr.PumpControlDefect_a_1 Int) (PumpDefect.usr.Flow_a_1 Bool) (PumpDefect.res.init_flag_a_1 Bool) (PumpDefect.impl.usr.pump_failure_d_a_1 Bool) (PumpDefect.impl.usr.pump_control_failure_d_a_1 Bool) (PumpDefect.res.abs_0_a_1 Bool) (PumpDefect.res.abs_1_a_1 Bool) (PumpDefect.res.abs_2_a_1 Bool) (PumpDefect.res.abs_3_a_1 Int) (PumpDefect.res.abs_4_a_1 Int) (PumpDefect.res.abs_5_a_1 Int) (PumpDefect.res.abs_6_a_1 Int) (PumpDefect.res.inst_2_a_1 Bool) (PumpDefect.res.inst_1_a_1 Bool) (PumpDefect.res.inst_0_a_1 Bool) (PumpDefect.usr.pump_failure_acknowledgement_a_0 Bool) (PumpDefect.usr.pump_repaired_a_0 Bool) (PumpDefect.usr.pump_control_failure_acknowledgement_a_0 Bool) (PumpDefect.usr.pump_control_repaired_a_0 Bool) (PumpDefect.usr.pump_status_a_0 Int) (PumpDefect.usr.pump_state_a_0 Int) (PumpDefect.usr.pump_control_state_a_0 Bool) (PumpDefect.usr.PumpDefect_a_0 Int) (PumpDefect.usr.PumpControlDefect_a_0 Int) (PumpDefect.usr.Flow_a_0 Bool) (PumpDefect.res.init_flag_a_0 Bool) (PumpDefect.impl.usr.pump_failure_d_a_0 Bool) (PumpDefect.impl.usr.pump_control_failure_d_a_0 Bool) (PumpDefect.res.abs_0_a_0 Bool) (PumpDefect.res.abs_1_a_0 Bool) (PumpDefect.res.abs_2_a_0 Bool) (PumpDefect.res.abs_3_a_0 Int) (PumpDefect.res.abs_4_a_0 Int) (PumpDefect.res.abs_5_a_0 Int) (PumpDefect.res.abs_6_a_0 Int) (PumpDefect.res.inst_2_a_0 Bool) (PumpDefect.res.inst_1_a_0 Bool) (PumpDefect.res.inst_0_a_0 Bool)) Bool + (and (= PumpDefect.res.abs_3_a_1 PumpDefect.usr.PumpDefect_a_0) (= PumpDefect.impl.usr.pump_failure_d_a_1 PumpDefect.res.abs_0_a_1) (= PumpDefect.usr.PumpDefect_a_1 PumpDefect.res.abs_4_a_1) (= PumpDefect.res.abs_5_a_1 PumpDefect.usr.PumpControlDefect_a_0) (= PumpDefect.impl.usr.pump_control_failure_d_a_1 PumpDefect.res.abs_1_a_1) (= PumpDefect.usr.PumpControlDefect_a_1 PumpDefect.res.abs_6_a_1) (= PumpDefect.usr.Flow_a_1 PumpDefect.res.abs_2_a_1) (__node_trans_Defect_0 PumpDefect.res.abs_3_a_1 PumpDefect.impl.usr.pump_failure_d_a_1 PumpDefect.usr.pump_failure_acknowledgement_a_1 PumpDefect.usr.pump_repaired_a_1 PumpDefect.res.abs_4_a_1 PumpDefect.res.inst_2_a_1 PumpDefect.res.abs_3_a_0 PumpDefect.impl.usr.pump_failure_d_a_0 PumpDefect.usr.pump_failure_acknowledgement_a_0 PumpDefect.usr.pump_repaired_a_0 PumpDefect.res.abs_4_a_0 PumpDefect.res.inst_2_a_0) (__node_trans_pump_failure_detect_0 PumpDefect.usr.pump_status_a_1 PumpDefect.usr.pump_state_a_1 PumpDefect.usr.pump_control_state_a_1 PumpDefect.res.abs_0_a_1 PumpDefect.res.abs_1_a_1 PumpDefect.res.abs_2_a_1 PumpDefect.res.inst_1_a_1 PumpDefect.usr.pump_status_a_0 PumpDefect.usr.pump_state_a_0 PumpDefect.usr.pump_control_state_a_0 PumpDefect.res.abs_0_a_0 PumpDefect.res.abs_1_a_0 PumpDefect.res.abs_2_a_0 PumpDefect.res.inst_1_a_0) (__node_trans_Defect_0 PumpDefect.res.abs_5_a_1 PumpDefect.impl.usr.pump_control_failure_d_a_1 PumpDefect.usr.pump_control_failure_acknowledgement_a_1 PumpDefect.usr.pump_control_repaired_a_1 PumpDefect.res.abs_6_a_1 PumpDefect.res.inst_0_a_1 PumpDefect.res.abs_5_a_0 PumpDefect.impl.usr.pump_control_failure_d_a_0 PumpDefect.usr.pump_control_failure_acknowledgement_a_0 PumpDefect.usr.pump_control_repaired_a_0 PumpDefect.res.abs_6_a_0 PumpDefect.res.inst_0_a_0) (<= 0 PumpDefect.res.abs_4_a_1 2) (<= 0 PumpDefect.res.abs_6_a_1 2) (<= 0 PumpDefect.usr.PumpControlDefect_a_1 2) (<= 0 PumpDefect.usr.PumpDefect_a_1 2) (not PumpDefect.res.init_flag_a_1))) +(define-fun __node_init_LevelOutput_0 ((LevelOutput.usr.op_mode_a_0 Int) (LevelOutput.usr.level_defect_a_0 Int) (LevelOutput.usr.level_repaired_a_0 Bool) (LevelOutput.usr.level_outcome_failure_detection_a_0 Bool) (LevelOutput.usr.level_outcome_repaired_acknowledgement_a_0 Bool) (LevelOutput.res.init_flag_a_0 Bool)) Bool + (and (= LevelOutput.usr.level_outcome_failure_detection_a_0 (and (not (or (= LevelOutput.usr.op_mode_a_0 6) (= LevelOutput.usr.op_mode_a_0 1))) (= LevelOutput.usr.level_defect_a_0 1))) (= LevelOutput.usr.level_outcome_repaired_acknowledgement_a_0 (and (not (or (= LevelOutput.usr.op_mode_a_0 6) (= LevelOutput.usr.op_mode_a_0 1))) LevelOutput.usr.level_repaired_a_0)) LevelOutput.res.init_flag_a_0)) +(define-fun __node_trans_LevelOutput_0 ((LevelOutput.usr.op_mode_a_1 Int) (LevelOutput.usr.level_defect_a_1 Int) (LevelOutput.usr.level_repaired_a_1 Bool) (LevelOutput.usr.level_outcome_failure_detection_a_1 Bool) (LevelOutput.usr.level_outcome_repaired_acknowledgement_a_1 Bool) (LevelOutput.res.init_flag_a_1 Bool) (LevelOutput.usr.op_mode_a_0 Int) (LevelOutput.usr.level_defect_a_0 Int) (LevelOutput.usr.level_repaired_a_0 Bool) (LevelOutput.usr.level_outcome_failure_detection_a_0 Bool) (LevelOutput.usr.level_outcome_repaired_acknowledgement_a_0 Bool) (LevelOutput.res.init_flag_a_0 Bool)) Bool + (and (= LevelOutput.usr.level_outcome_failure_detection_a_1 (and (not (or (= LevelOutput.usr.op_mode_a_1 6) (= LevelOutput.usr.op_mode_a_1 1))) (= LevelOutput.usr.level_defect_a_1 1))) (= LevelOutput.usr.level_outcome_repaired_acknowledgement_a_1 (and (not (or (= LevelOutput.usr.op_mode_a_1 6) (= LevelOutput.usr.op_mode_a_1 1))) LevelOutput.usr.level_repaired_a_1)) (not LevelOutput.res.init_flag_a_1))) +(define-fun __node_init_SteamOutput_0 ((SteamOutput.usr.op_mode_a_0 Int) (SteamOutput.usr.steam_defect_a_0 Int) (SteamOutput.usr.steam_repaired_a_0 Bool) (SteamOutput.usr.steam_outcome_failure_detection_a_0 Bool) (SteamOutput.usr.steam_outcome_repaired_acknowledgement_a_0 Bool) (SteamOutput.res.init_flag_a_0 Bool)) Bool + (and (= SteamOutput.usr.steam_outcome_failure_detection_a_0 (and (not (or (= SteamOutput.usr.op_mode_a_0 6) (= SteamOutput.usr.op_mode_a_0 1))) (= SteamOutput.usr.steam_defect_a_0 1))) (= SteamOutput.usr.steam_outcome_repaired_acknowledgement_a_0 (and (not (or (= SteamOutput.usr.op_mode_a_0 6) (= SteamOutput.usr.op_mode_a_0 1))) SteamOutput.usr.steam_repaired_a_0)) SteamOutput.res.init_flag_a_0)) +(define-fun __node_trans_SteamOutput_0 ((SteamOutput.usr.op_mode_a_1 Int) (SteamOutput.usr.steam_defect_a_1 Int) (SteamOutput.usr.steam_repaired_a_1 Bool) (SteamOutput.usr.steam_outcome_failure_detection_a_1 Bool) (SteamOutput.usr.steam_outcome_repaired_acknowledgement_a_1 Bool) (SteamOutput.res.init_flag_a_1 Bool) (SteamOutput.usr.op_mode_a_0 Int) (SteamOutput.usr.steam_defect_a_0 Int) (SteamOutput.usr.steam_repaired_a_0 Bool) (SteamOutput.usr.steam_outcome_failure_detection_a_0 Bool) (SteamOutput.usr.steam_outcome_repaired_acknowledgement_a_0 Bool) (SteamOutput.res.init_flag_a_0 Bool)) Bool + (and (= SteamOutput.usr.steam_outcome_failure_detection_a_1 (and (not (or (= SteamOutput.usr.op_mode_a_1 6) (= SteamOutput.usr.op_mode_a_1 1))) (= SteamOutput.usr.steam_defect_a_1 1))) (= SteamOutput.usr.steam_outcome_repaired_acknowledgement_a_1 (and (not (or (= SteamOutput.usr.op_mode_a_1 6) (= SteamOutput.usr.op_mode_a_1 1))) SteamOutput.usr.steam_repaired_a_1)) (not SteamOutput.res.init_flag_a_1))) +(define-fun __node_init_PumpsOutput_0 ((PumpsOutput.usr.op_mode_a_0 Int) (PumpsOutput.usr.pump_status_0_a_0 Int) (PumpsOutput.usr.pump_status_1_a_0 Int) (PumpsOutput.usr.pump_status_2_a_0 Int) (PumpsOutput.usr.pump_status_3_a_0 Int) (PumpsOutput.usr.pump_defect_0_a_0 Int) (PumpsOutput.usr.pump_defect_1_a_0 Int) (PumpsOutput.usr.pump_defect_2_a_0 Int) (PumpsOutput.usr.pump_defect_3_a_0 Int) (PumpsOutput.usr.pump_control_defect_0_a_0 Int) (PumpsOutput.usr.pump_control_defect_1_a_0 Int) (PumpsOutput.usr.pump_control_defect_2_a_0 Int) (PumpsOutput.usr.pump_control_defect_3_a_0 Int) (PumpsOutput.usr.pump_repaired_0_a_0 Bool) (PumpsOutput.usr.pump_repaired_1_a_0 Bool) (PumpsOutput.usr.pump_repaired_2_a_0 Bool) (PumpsOutput.usr.pump_repaired_3_a_0 Bool) (PumpsOutput.usr.pump_control_repaired_0_a_0 Bool) (PumpsOutput.usr.pump_control_repaired_1_a_0 Bool) (PumpsOutput.usr.pump_control_repaired_2_a_0 Bool) (PumpsOutput.usr.pump_control_repaired_3_a_0 Bool) (PumpsOutput.res.nondet_7 Int) (PumpsOutput.res.nondet_6 Int) (PumpsOutput.res.nondet_5 Int) (PumpsOutput.res.nondet_4 Int) (PumpsOutput.res.nondet_3 Int) (PumpsOutput.res.nondet_2 Int) (PumpsOutput.res.nondet_1 Int) (PumpsOutput.res.nondet_0 Int) (PumpsOutput.usr.open_pump_0_a_0 Bool) (PumpsOutput.usr.open_pump_1_a_0 Bool) (PumpsOutput.usr.open_pump_2_a_0 Bool) (PumpsOutput.usr.open_pump_3_a_0 Bool) (PumpsOutput.usr.close_pump_0_a_0 Bool) (PumpsOutput.usr.close_pump_1_a_0 Bool) (PumpsOutput.usr.close_pump_2_a_0 Bool) (PumpsOutput.usr.close_pump_3_a_0 Bool) (PumpsOutput.usr.pump_failure_detection_0_a_0 Bool) (PumpsOutput.usr.pump_failure_detection_1_a_0 Bool) (PumpsOutput.usr.pump_failure_detection_2_a_0 Bool) (PumpsOutput.usr.pump_failure_detection_3_a_0 Bool) (PumpsOutput.usr.pump_repaired_acknowledgement_0_a_0 Bool) (PumpsOutput.usr.pump_repaired_acknowledgement_1_a_0 Bool) (PumpsOutput.usr.pump_repaired_acknowledgement_2_a_0 Bool) (PumpsOutput.usr.pump_repaired_acknowledgement_3_a_0 Bool) (PumpsOutput.usr.pump_control_failure_detection_0_a_0 Bool) (PumpsOutput.usr.pump_control_failure_detection_1_a_0 Bool) (PumpsOutput.usr.pump_control_failure_detection_2_a_0 Bool) (PumpsOutput.usr.pump_control_failure_detection_3_a_0 Bool) (PumpsOutput.usr.pump_control_repaired_acknowledgement_0_a_0 Bool) (PumpsOutput.usr.pump_control_repaired_acknowledgement_1_a_0 Bool) (PumpsOutput.usr.pump_control_repaired_acknowledgement_2_a_0 Bool) (PumpsOutput.usr.pump_control_repaired_acknowledgement_3_a_0 Bool) (PumpsOutput.res.init_flag_a_0 Bool)) Bool + (and (= PumpsOutput.usr.open_pump_0_a_0 (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) (= PumpsOutput.usr.pump_status_0_a_0 2))) (= PumpsOutput.usr.open_pump_1_a_0 (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) (= PumpsOutput.usr.pump_status_1_a_0 2))) (= PumpsOutput.usr.open_pump_2_a_0 (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) (= PumpsOutput.usr.pump_status_2_a_0 2))) (= PumpsOutput.usr.open_pump_3_a_0 (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) (= PumpsOutput.usr.pump_status_3_a_0 2))) (= PumpsOutput.usr.close_pump_0_a_0 (let ((X1 PumpsOutput.res.nondet_1) (X2 PumpsOutput.res.nondet_0)) (and (and (and (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) (= PumpsOutput.usr.pump_status_0_a_0 0)) (not (= X2 0))) (= PumpsOutput.usr.pump_defect_0_a_0 0)) (= X1 0)))) (= PumpsOutput.usr.close_pump_1_a_0 (let ((X1 PumpsOutput.res.nondet_3) (X2 PumpsOutput.res.nondet_2)) (and (and (and (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) (= PumpsOutput.usr.pump_status_0_a_0 0)) (not (= X2 0))) (= PumpsOutput.usr.pump_defect_0_a_0 0)) (= X1 0)))) (= PumpsOutput.usr.close_pump_2_a_0 (let ((X1 PumpsOutput.res.nondet_5) (X2 PumpsOutput.res.nondet_4)) (and (and (and (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) (= PumpsOutput.usr.pump_status_0_a_0 0)) (not (= X2 0))) (= PumpsOutput.usr.pump_defect_0_a_0 0)) (= X1 0)))) (= PumpsOutput.usr.close_pump_3_a_0 (let ((X1 PumpsOutput.res.nondet_7) (X2 PumpsOutput.res.nondet_6)) (and (and (and (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) (= PumpsOutput.usr.pump_status_0_a_0 0)) (not (= X2 0))) (= PumpsOutput.usr.pump_defect_0_a_0 0)) (= X1 0)))) (= PumpsOutput.usr.pump_failure_detection_0_a_0 (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) (= PumpsOutput.usr.pump_defect_0_a_0 1))) (= PumpsOutput.usr.pump_failure_detection_1_a_0 (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) (= PumpsOutput.usr.pump_defect_1_a_0 1))) (= PumpsOutput.usr.pump_failure_detection_2_a_0 (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) (= PumpsOutput.usr.pump_defect_2_a_0 1))) (= PumpsOutput.usr.pump_failure_detection_3_a_0 (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) (= PumpsOutput.usr.pump_defect_3_a_0 1))) (= PumpsOutput.usr.pump_repaired_acknowledgement_0_a_0 (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) PumpsOutput.usr.pump_repaired_0_a_0)) (= PumpsOutput.usr.pump_repaired_acknowledgement_1_a_0 (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) PumpsOutput.usr.pump_repaired_1_a_0)) (= PumpsOutput.usr.pump_repaired_acknowledgement_2_a_0 (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) PumpsOutput.usr.pump_repaired_2_a_0)) (= PumpsOutput.usr.pump_repaired_acknowledgement_3_a_0 (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) PumpsOutput.usr.pump_repaired_3_a_0)) (= PumpsOutput.usr.pump_control_failure_detection_0_a_0 (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) (= PumpsOutput.usr.pump_control_defect_0_a_0 1))) (= PumpsOutput.usr.pump_control_failure_detection_1_a_0 (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) (= PumpsOutput.usr.pump_control_defect_1_a_0 1))) (= PumpsOutput.usr.pump_control_failure_detection_2_a_0 (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) (= PumpsOutput.usr.pump_control_defect_2_a_0 1))) (= PumpsOutput.usr.pump_control_failure_detection_3_a_0 (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) (= PumpsOutput.usr.pump_control_defect_3_a_0 1))) (= PumpsOutput.usr.pump_control_repaired_acknowledgement_0_a_0 (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) PumpsOutput.usr.pump_control_repaired_0_a_0)) (= PumpsOutput.usr.pump_control_repaired_acknowledgement_1_a_0 (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) PumpsOutput.usr.pump_control_repaired_1_a_0)) (= PumpsOutput.usr.pump_control_repaired_acknowledgement_2_a_0 (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) PumpsOutput.usr.pump_control_repaired_2_a_0)) (= PumpsOutput.usr.pump_control_repaired_acknowledgement_3_a_0 (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) PumpsOutput.usr.pump_control_repaired_3_a_0)) PumpsOutput.res.init_flag_a_0)) +(define-fun __node_trans_PumpsOutput_0 ((PumpsOutput.usr.op_mode_a_1 Int) (PumpsOutput.usr.pump_status_0_a_1 Int) (PumpsOutput.usr.pump_status_1_a_1 Int) (PumpsOutput.usr.pump_status_2_a_1 Int) (PumpsOutput.usr.pump_status_3_a_1 Int) (PumpsOutput.usr.pump_defect_0_a_1 Int) (PumpsOutput.usr.pump_defect_1_a_1 Int) (PumpsOutput.usr.pump_defect_2_a_1 Int) (PumpsOutput.usr.pump_defect_3_a_1 Int) (PumpsOutput.usr.pump_control_defect_0_a_1 Int) (PumpsOutput.usr.pump_control_defect_1_a_1 Int) (PumpsOutput.usr.pump_control_defect_2_a_1 Int) (PumpsOutput.usr.pump_control_defect_3_a_1 Int) (PumpsOutput.usr.pump_repaired_0_a_1 Bool) (PumpsOutput.usr.pump_repaired_1_a_1 Bool) (PumpsOutput.usr.pump_repaired_2_a_1 Bool) (PumpsOutput.usr.pump_repaired_3_a_1 Bool) (PumpsOutput.usr.pump_control_repaired_0_a_1 Bool) (PumpsOutput.usr.pump_control_repaired_1_a_1 Bool) (PumpsOutput.usr.pump_control_repaired_2_a_1 Bool) (PumpsOutput.usr.pump_control_repaired_3_a_1 Bool) (PumpsOutput.res.nondet_7 Int) (PumpsOutput.res.nondet_6 Int) (PumpsOutput.res.nondet_5 Int) (PumpsOutput.res.nondet_4 Int) (PumpsOutput.res.nondet_3 Int) (PumpsOutput.res.nondet_2 Int) (PumpsOutput.res.nondet_1 Int) (PumpsOutput.res.nondet_0 Int) (PumpsOutput.usr.open_pump_0_a_1 Bool) (PumpsOutput.usr.open_pump_1_a_1 Bool) (PumpsOutput.usr.open_pump_2_a_1 Bool) (PumpsOutput.usr.open_pump_3_a_1 Bool) (PumpsOutput.usr.close_pump_0_a_1 Bool) (PumpsOutput.usr.close_pump_1_a_1 Bool) (PumpsOutput.usr.close_pump_2_a_1 Bool) (PumpsOutput.usr.close_pump_3_a_1 Bool) (PumpsOutput.usr.pump_failure_detection_0_a_1 Bool) (PumpsOutput.usr.pump_failure_detection_1_a_1 Bool) (PumpsOutput.usr.pump_failure_detection_2_a_1 Bool) (PumpsOutput.usr.pump_failure_detection_3_a_1 Bool) (PumpsOutput.usr.pump_repaired_acknowledgement_0_a_1 Bool) (PumpsOutput.usr.pump_repaired_acknowledgement_1_a_1 Bool) (PumpsOutput.usr.pump_repaired_acknowledgement_2_a_1 Bool) (PumpsOutput.usr.pump_repaired_acknowledgement_3_a_1 Bool) (PumpsOutput.usr.pump_control_failure_detection_0_a_1 Bool) (PumpsOutput.usr.pump_control_failure_detection_1_a_1 Bool) (PumpsOutput.usr.pump_control_failure_detection_2_a_1 Bool) (PumpsOutput.usr.pump_control_failure_detection_3_a_1 Bool) (PumpsOutput.usr.pump_control_repaired_acknowledgement_0_a_1 Bool) (PumpsOutput.usr.pump_control_repaired_acknowledgement_1_a_1 Bool) (PumpsOutput.usr.pump_control_repaired_acknowledgement_2_a_1 Bool) (PumpsOutput.usr.pump_control_repaired_acknowledgement_3_a_1 Bool) (PumpsOutput.res.init_flag_a_1 Bool) (PumpsOutput.usr.op_mode_a_0 Int) (PumpsOutput.usr.pump_status_0_a_0 Int) (PumpsOutput.usr.pump_status_1_a_0 Int) (PumpsOutput.usr.pump_status_2_a_0 Int) (PumpsOutput.usr.pump_status_3_a_0 Int) (PumpsOutput.usr.pump_defect_0_a_0 Int) (PumpsOutput.usr.pump_defect_1_a_0 Int) (PumpsOutput.usr.pump_defect_2_a_0 Int) (PumpsOutput.usr.pump_defect_3_a_0 Int) (PumpsOutput.usr.pump_control_defect_0_a_0 Int) (PumpsOutput.usr.pump_control_defect_1_a_0 Int) (PumpsOutput.usr.pump_control_defect_2_a_0 Int) (PumpsOutput.usr.pump_control_defect_3_a_0 Int) (PumpsOutput.usr.pump_repaired_0_a_0 Bool) (PumpsOutput.usr.pump_repaired_1_a_0 Bool) (PumpsOutput.usr.pump_repaired_2_a_0 Bool) (PumpsOutput.usr.pump_repaired_3_a_0 Bool) (PumpsOutput.usr.pump_control_repaired_0_a_0 Bool) (PumpsOutput.usr.pump_control_repaired_1_a_0 Bool) (PumpsOutput.usr.pump_control_repaired_2_a_0 Bool) (PumpsOutput.usr.pump_control_repaired_3_a_0 Bool) (PumpsOutput.usr.open_pump_0_a_0 Bool) (PumpsOutput.usr.open_pump_1_a_0 Bool) (PumpsOutput.usr.open_pump_2_a_0 Bool) (PumpsOutput.usr.open_pump_3_a_0 Bool) (PumpsOutput.usr.close_pump_0_a_0 Bool) (PumpsOutput.usr.close_pump_1_a_0 Bool) (PumpsOutput.usr.close_pump_2_a_0 Bool) (PumpsOutput.usr.close_pump_3_a_0 Bool) (PumpsOutput.usr.pump_failure_detection_0_a_0 Bool) (PumpsOutput.usr.pump_failure_detection_1_a_0 Bool) (PumpsOutput.usr.pump_failure_detection_2_a_0 Bool) (PumpsOutput.usr.pump_failure_detection_3_a_0 Bool) (PumpsOutput.usr.pump_repaired_acknowledgement_0_a_0 Bool) (PumpsOutput.usr.pump_repaired_acknowledgement_1_a_0 Bool) (PumpsOutput.usr.pump_repaired_acknowledgement_2_a_0 Bool) (PumpsOutput.usr.pump_repaired_acknowledgement_3_a_0 Bool) (PumpsOutput.usr.pump_control_failure_detection_0_a_0 Bool) (PumpsOutput.usr.pump_control_failure_detection_1_a_0 Bool) (PumpsOutput.usr.pump_control_failure_detection_2_a_0 Bool) (PumpsOutput.usr.pump_control_failure_detection_3_a_0 Bool) (PumpsOutput.usr.pump_control_repaired_acknowledgement_0_a_0 Bool) (PumpsOutput.usr.pump_control_repaired_acknowledgement_1_a_0 Bool) (PumpsOutput.usr.pump_control_repaired_acknowledgement_2_a_0 Bool) (PumpsOutput.usr.pump_control_repaired_acknowledgement_3_a_0 Bool) (PumpsOutput.res.init_flag_a_0 Bool)) Bool + (and (= PumpsOutput.usr.open_pump_0_a_1 (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) (= PumpsOutput.usr.pump_status_0_a_1 2))) (= PumpsOutput.usr.open_pump_1_a_1 (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) (= PumpsOutput.usr.pump_status_1_a_1 2))) (= PumpsOutput.usr.open_pump_2_a_1 (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) (= PumpsOutput.usr.pump_status_2_a_1 2))) (= PumpsOutput.usr.open_pump_3_a_1 (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) (= PumpsOutput.usr.pump_status_3_a_1 2))) (= PumpsOutput.usr.close_pump_0_a_1 (and (and (and (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) (= PumpsOutput.usr.pump_status_0_a_1 0)) (not (= PumpsOutput.usr.pump_status_0_a_0 0))) (= PumpsOutput.usr.pump_defect_0_a_1 0)) (= PumpsOutput.usr.pump_defect_0_a_0 0))) (= PumpsOutput.usr.close_pump_1_a_1 (and (and (and (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) (= PumpsOutput.usr.pump_status_0_a_1 0)) (not (= PumpsOutput.usr.pump_status_1_a_0 0))) (= PumpsOutput.usr.pump_defect_0_a_1 0)) (= PumpsOutput.usr.pump_defect_1_a_0 0))) (= PumpsOutput.usr.close_pump_2_a_1 (and (and (and (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) (= PumpsOutput.usr.pump_status_0_a_1 0)) (not (= PumpsOutput.usr.pump_status_2_a_0 0))) (= PumpsOutput.usr.pump_defect_0_a_1 0)) (= PumpsOutput.usr.pump_defect_2_a_0 0))) (= PumpsOutput.usr.close_pump_3_a_1 (and (and (and (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) (= PumpsOutput.usr.pump_status_0_a_1 0)) (not (= PumpsOutput.usr.pump_status_3_a_0 0))) (= PumpsOutput.usr.pump_defect_0_a_1 0)) (= PumpsOutput.usr.pump_defect_3_a_0 0))) (= PumpsOutput.usr.pump_failure_detection_0_a_1 (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) (= PumpsOutput.usr.pump_defect_0_a_1 1))) (= PumpsOutput.usr.pump_failure_detection_1_a_1 (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) (= PumpsOutput.usr.pump_defect_1_a_1 1))) (= PumpsOutput.usr.pump_failure_detection_2_a_1 (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) (= PumpsOutput.usr.pump_defect_2_a_1 1))) (= PumpsOutput.usr.pump_failure_detection_3_a_1 (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) (= PumpsOutput.usr.pump_defect_3_a_1 1))) (= PumpsOutput.usr.pump_repaired_acknowledgement_0_a_1 (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) PumpsOutput.usr.pump_repaired_0_a_1)) (= PumpsOutput.usr.pump_repaired_acknowledgement_1_a_1 (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) PumpsOutput.usr.pump_repaired_1_a_1)) (= PumpsOutput.usr.pump_repaired_acknowledgement_2_a_1 (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) PumpsOutput.usr.pump_repaired_2_a_1)) (= PumpsOutput.usr.pump_repaired_acknowledgement_3_a_1 (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) PumpsOutput.usr.pump_repaired_3_a_1)) (= PumpsOutput.usr.pump_control_failure_detection_0_a_1 (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) (= PumpsOutput.usr.pump_control_defect_0_a_1 1))) (= PumpsOutput.usr.pump_control_failure_detection_1_a_1 (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) (= PumpsOutput.usr.pump_control_defect_1_a_1 1))) (= PumpsOutput.usr.pump_control_failure_detection_2_a_1 (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) (= PumpsOutput.usr.pump_control_defect_2_a_1 1))) (= PumpsOutput.usr.pump_control_failure_detection_3_a_1 (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) (= PumpsOutput.usr.pump_control_defect_3_a_1 1))) (= PumpsOutput.usr.pump_control_repaired_acknowledgement_0_a_1 (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) PumpsOutput.usr.pump_control_repaired_0_a_1)) (= PumpsOutput.usr.pump_control_repaired_acknowledgement_1_a_1 (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) PumpsOutput.usr.pump_control_repaired_1_a_1)) (= PumpsOutput.usr.pump_control_repaired_acknowledgement_2_a_1 (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) PumpsOutput.usr.pump_control_repaired_2_a_1)) (= PumpsOutput.usr.pump_control_repaired_acknowledgement_3_a_1 (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) PumpsOutput.usr.pump_control_repaired_3_a_1)) (not PumpsOutput.res.init_flag_a_1))) +(define-fun __node_init_Valve_0 ((Valve.usr.op_mode_a_0 Int) (Valve.usr.q_a_0 Int) (Valve.usr.valve_a_0 Bool) (Valve.usr.valve_state_a_0 Int) (Valve.res.init_flag_a_0 Bool)) Bool + (and (= Valve.usr.valve_a_0 false) (= Valve.usr.valve_state_a_0 0) Valve.res.init_flag_a_0)) +(define-fun __node_trans_Valve_0 ((Valve.usr.op_mode_a_1 Int) (Valve.usr.q_a_1 Int) (Valve.usr.valve_a_1 Bool) (Valve.usr.valve_state_a_1 Int) (Valve.res.init_flag_a_1 Bool) (Valve.usr.op_mode_a_0 Int) (Valve.usr.q_a_0 Int) (Valve.usr.valve_a_0 Bool) (Valve.usr.valve_state_a_0 Int) (Valve.res.init_flag_a_0 Bool)) Bool + (and (= Valve.usr.valve_state_a_1 (ite (= Valve.usr.op_mode_a_1 2) (ite (> Valve.usr.q_a_1 600) 1 (ite (<= Valve.usr.q_a_1 600) 0 Valve.usr.valve_state_a_0)) Valve.usr.valve_state_a_0)) (= Valve.usr.valve_a_1 (not (= Valve.usr.valve_state_a_1 Valve.usr.valve_state_a_0))) (not Valve.res.init_flag_a_1))) +(define-fun __node_init_PumpsDecision_0 ((PumpsDecision.usr.q_a_0 Int) (PumpsDecision.usr.v_a_0 Int) (PumpsDecision.res.nondet_0 Int) (PumpsDecision.usr.n_pumps_a_0 Int) (PumpsDecision.res.init_flag_a_0 Bool)) Bool + (and (= PumpsDecision.usr.n_pumps_a_0 (let ((X1 PumpsDecision.res.nondet_0)) (ite (> PumpsDecision.usr.q_a_0 600) (div PumpsDecision.usr.v_a_0 15) (ite (< PumpsDecision.usr.q_a_0 400) (+ (div PumpsDecision.usr.v_a_0 15) 1) X1)))) PumpsDecision.res.init_flag_a_0)) +(define-fun __node_trans_PumpsDecision_0 ((PumpsDecision.usr.q_a_1 Int) (PumpsDecision.usr.v_a_1 Int) (PumpsDecision.res.nondet_0 Int) (PumpsDecision.usr.n_pumps_a_1 Int) (PumpsDecision.res.init_flag_a_1 Bool) (PumpsDecision.usr.q_a_0 Int) (PumpsDecision.usr.v_a_0 Int) (PumpsDecision.usr.n_pumps_a_0 Int) (PumpsDecision.res.init_flag_a_0 Bool)) Bool + (and (= PumpsDecision.usr.n_pumps_a_1 (ite (> PumpsDecision.usr.q_a_1 600) (div PumpsDecision.usr.v_a_1 15) (ite (< PumpsDecision.usr.q_a_1 400) (+ (div PumpsDecision.usr.v_a_1 15) 1) PumpsDecision.usr.n_pumps_a_0))) (not PumpsDecision.res.init_flag_a_1))) +(define-fun __node_init_steam_failure_detect_0 ((steam_failure_detect.usr.steam_a_0 Int) (steam_failure_detect.usr.steam_failure_detect_a_0 Bool) (steam_failure_detect.res.init_flag_a_0 Bool)) Bool + (and (= steam_failure_detect.usr.steam_failure_detect_a_0 (or (< steam_failure_detect.usr.steam_a_0 0) (> steam_failure_detect.usr.steam_a_0 25))) steam_failure_detect.res.init_flag_a_0)) +(define-fun __node_trans_steam_failure_detect_0 ((steam_failure_detect.usr.steam_a_1 Int) (steam_failure_detect.usr.steam_failure_detect_a_1 Bool) (steam_failure_detect.res.init_flag_a_1 Bool) (steam_failure_detect.usr.steam_a_0 Int) (steam_failure_detect.usr.steam_failure_detect_a_0 Bool) (steam_failure_detect.res.init_flag_a_0 Bool)) Bool + (and (= steam_failure_detect.usr.steam_failure_detect_a_1 (or (< steam_failure_detect.usr.steam_a_1 0) (> steam_failure_detect.usr.steam_a_1 25))) (not steam_failure_detect.res.init_flag_a_1))) +(define-fun __node_init_SteamDefect_0 ((SteamDefect.usr.steam_failure_acknowledgement_a_0 Bool) (SteamDefect.usr.steam_repaired_a_0 Bool) (SteamDefect.usr.steam_a_0 Int) (SteamDefect.res.nondet_0 Int) (SteamDefect.usr.SteamDefect_a_0 Int) (SteamDefect.res.init_flag_a_0 Bool) (SteamDefect.res.abs_0_a_0 Bool) (SteamDefect.res.abs_1_a_0 Int) (SteamDefect.res.abs_2_a_0 Int) (SteamDefect.res.inst_1_a_0 Bool) (SteamDefect.res.inst_0_a_0 Bool)) Bool + (and (= SteamDefect.usr.SteamDefect_a_0 0) (= SteamDefect.res.abs_1_a_0 (let ((X1 SteamDefect.res.nondet_0)) X1)) (__node_init_Defect_0 SteamDefect.res.abs_1_a_0 SteamDefect.res.abs_0_a_0 SteamDefect.usr.steam_failure_acknowledgement_a_0 SteamDefect.usr.steam_repaired_a_0 SteamDefect.res.abs_2_a_0 SteamDefect.res.inst_1_a_0) (__node_init_steam_failure_detect_0 SteamDefect.usr.steam_a_0 SteamDefect.res.abs_0_a_0 SteamDefect.res.inst_0_a_0) (<= 0 SteamDefect.res.abs_2_a_0 2) (<= 0 SteamDefect.usr.SteamDefect_a_0 2) SteamDefect.res.init_flag_a_0)) +(define-fun __node_trans_SteamDefect_0 ((SteamDefect.usr.steam_failure_acknowledgement_a_1 Bool) (SteamDefect.usr.steam_repaired_a_1 Bool) (SteamDefect.usr.steam_a_1 Int) (SteamDefect.res.nondet_0 Int) (SteamDefect.usr.SteamDefect_a_1 Int) (SteamDefect.res.init_flag_a_1 Bool) (SteamDefect.res.abs_0_a_1 Bool) (SteamDefect.res.abs_1_a_1 Int) (SteamDefect.res.abs_2_a_1 Int) (SteamDefect.res.inst_1_a_1 Bool) (SteamDefect.res.inst_0_a_1 Bool) (SteamDefect.usr.steam_failure_acknowledgement_a_0 Bool) (SteamDefect.usr.steam_repaired_a_0 Bool) (SteamDefect.usr.steam_a_0 Int) (SteamDefect.usr.SteamDefect_a_0 Int) (SteamDefect.res.init_flag_a_0 Bool) (SteamDefect.res.abs_0_a_0 Bool) (SteamDefect.res.abs_1_a_0 Int) (SteamDefect.res.abs_2_a_0 Int) (SteamDefect.res.inst_1_a_0 Bool) (SteamDefect.res.inst_0_a_0 Bool)) Bool + (and (= SteamDefect.res.abs_1_a_1 SteamDefect.usr.SteamDefect_a_0) (= SteamDefect.usr.SteamDefect_a_1 SteamDefect.res.abs_2_a_1) (__node_trans_Defect_0 SteamDefect.res.abs_1_a_1 SteamDefect.res.abs_0_a_1 SteamDefect.usr.steam_failure_acknowledgement_a_1 SteamDefect.usr.steam_repaired_a_1 SteamDefect.res.abs_2_a_1 SteamDefect.res.inst_1_a_1 SteamDefect.res.abs_1_a_0 SteamDefect.res.abs_0_a_0 SteamDefect.usr.steam_failure_acknowledgement_a_0 SteamDefect.usr.steam_repaired_a_0 SteamDefect.res.abs_2_a_0 SteamDefect.res.inst_1_a_0) (__node_trans_steam_failure_detect_0 SteamDefect.usr.steam_a_1 SteamDefect.res.abs_0_a_1 SteamDefect.res.inst_0_a_1 SteamDefect.usr.steam_a_0 SteamDefect.res.abs_0_a_0 SteamDefect.res.inst_0_a_0) (<= 0 SteamDefect.res.abs_2_a_1 2) (<= 0 SteamDefect.usr.SteamDefect_a_1 2) (not SteamDefect.res.init_flag_a_1))) +(define-fun __node_init_Operator_0 ((Operator.usr.stop_a_0 Bool) (Operator.usr.stop_request_a_0 Bool) (Operator.res.init_flag_a_0 Bool) (Operator.impl.usr.nb_stops_a_0 Int)) Bool + (and (= Operator.impl.usr.nb_stops_a_0 (ite Operator.usr.stop_a_0 1 0)) (= Operator.usr.stop_request_a_0 (>= Operator.impl.usr.nb_stops_a_0 3)) Operator.res.init_flag_a_0)) +(define-fun __node_trans_Operator_0 ((Operator.usr.stop_a_1 Bool) (Operator.usr.stop_request_a_1 Bool) (Operator.res.init_flag_a_1 Bool) (Operator.impl.usr.nb_stops_a_1 Int) (Operator.usr.stop_a_0 Bool) (Operator.usr.stop_request_a_0 Bool) (Operator.res.init_flag_a_0 Bool) (Operator.impl.usr.nb_stops_a_0 Int)) Bool + (and (= Operator.impl.usr.nb_stops_a_1 (ite Operator.usr.stop_a_1 (+ Operator.impl.usr.nb_stops_a_0 1) 0)) (= Operator.usr.stop_request_a_1 (>= Operator.impl.usr.nb_stops_a_1 3)) (not Operator.res.init_flag_a_1))) +(define-fun __node_init_initialization_complete_0 ((initialization_complete.usr.op_mode_a_0 Int) (initialization_complete.usr.level_a_0 Int) (initialization_complete.usr.valve_a_0 Bool) (initialization_complete.usr.initialization_complete_a_0 Bool) (initialization_complete.res.init_flag_a_0 Bool)) Bool + (and (= initialization_complete.usr.initialization_complete_a_0 (and (and (= initialization_complete.usr.op_mode_a_0 2) (and (<= 400 initialization_complete.usr.level_a_0) (<= initialization_complete.usr.level_a_0 600))) (not initialization_complete.usr.valve_a_0))) initialization_complete.res.init_flag_a_0)) +(define-fun __node_trans_initialization_complete_0 ((initialization_complete.usr.op_mode_a_1 Int) (initialization_complete.usr.level_a_1 Int) (initialization_complete.usr.valve_a_1 Bool) (initialization_complete.usr.initialization_complete_a_1 Bool) (initialization_complete.res.init_flag_a_1 Bool) (initialization_complete.usr.op_mode_a_0 Int) (initialization_complete.usr.level_a_0 Int) (initialization_complete.usr.valve_a_0 Bool) (initialization_complete.usr.initialization_complete_a_0 Bool) (initialization_complete.res.init_flag_a_0 Bool)) Bool + (and (= initialization_complete.usr.initialization_complete_a_1 (and (and (= initialization_complete.usr.op_mode_a_1 2) (and (<= 400 initialization_complete.usr.level_a_1) (<= initialization_complete.usr.level_a_1 600))) (not initialization_complete.usr.valve_a_1))) (not initialization_complete.res.init_flag_a_1))) +(define-fun __node_init_ControlOutput_0 ((ControlOutput.usr.op_mode_a_0 Int) (ControlOutput.usr.level_a_0 Int) (ControlOutput.usr.valve_a_0 Bool) (ControlOutput.usr.program_ready_a_0 Bool) (ControlOutput.usr.mode_a_0 Int) (ControlOutput.res.init_flag_a_0 Bool) (ControlOutput.res.abs_0_a_0 Bool) (ControlOutput.res.inst_0_a_0 Bool)) Bool + (and (= ControlOutput.usr.program_ready_a_0 ControlOutput.res.abs_0_a_0) (= ControlOutput.usr.mode_a_0 ControlOutput.usr.op_mode_a_0) (__node_init_initialization_complete_0 ControlOutput.usr.op_mode_a_0 ControlOutput.usr.level_a_0 ControlOutput.usr.valve_a_0 ControlOutput.res.abs_0_a_0 ControlOutput.res.inst_0_a_0) ControlOutput.res.init_flag_a_0)) +(define-fun __node_trans_ControlOutput_0 ((ControlOutput.usr.op_mode_a_1 Int) (ControlOutput.usr.level_a_1 Int) (ControlOutput.usr.valve_a_1 Bool) (ControlOutput.usr.program_ready_a_1 Bool) (ControlOutput.usr.mode_a_1 Int) (ControlOutput.res.init_flag_a_1 Bool) (ControlOutput.res.abs_0_a_1 Bool) (ControlOutput.res.inst_0_a_1 Bool) (ControlOutput.usr.op_mode_a_0 Int) (ControlOutput.usr.level_a_0 Int) (ControlOutput.usr.valve_a_0 Bool) (ControlOutput.usr.program_ready_a_0 Bool) (ControlOutput.usr.mode_a_0 Int) (ControlOutput.res.init_flag_a_0 Bool) (ControlOutput.res.abs_0_a_0 Bool) (ControlOutput.res.inst_0_a_0 Bool)) Bool + (and (= ControlOutput.usr.program_ready_a_1 ControlOutput.res.abs_0_a_1) (= ControlOutput.usr.mode_a_1 ControlOutput.usr.op_mode_a_1) (__node_trans_initialization_complete_0 ControlOutput.usr.op_mode_a_1 ControlOutput.usr.level_a_1 ControlOutput.usr.valve_a_1 ControlOutput.res.abs_0_a_1 ControlOutput.res.inst_0_a_1 ControlOutput.usr.op_mode_a_0 ControlOutput.usr.level_a_0 ControlOutput.usr.valve_a_0 ControlOutput.res.abs_0_a_0 ControlOutput.res.inst_0_a_0) (not ControlOutput.res.init_flag_a_1))) +(define-fun __node_init_BoilerController_0 ((BoilerController.usr.stop_a_0 Bool) (BoilerController.usr.steam_boiler_waiting_a_0 Bool) (BoilerController.usr.physical_units_ready_a_0 Bool) (BoilerController.usr.level_a_0 Int) (BoilerController.usr.steam_a_0 Int) (BoilerController.usr.pump_state_0_a_0 Int) (BoilerController.usr.pump_state_1_a_0 Int) (BoilerController.usr.pump_state_2_a_0 Int) (BoilerController.usr.pump_state_3_a_0 Int) (BoilerController.usr.pump_control_state_0_a_0 Bool) (BoilerController.usr.pump_control_state_1_a_0 Bool) (BoilerController.usr.pump_control_state_2_a_0 Bool) (BoilerController.usr.pump_control_state_3_a_0 Bool) (BoilerController.usr.pump_repaired_0_a_0 Bool) (BoilerController.usr.pump_repaired_1_a_0 Bool) (BoilerController.usr.pump_repaired_2_a_0 Bool) (BoilerController.usr.pump_repaired_3_a_0 Bool) (BoilerController.usr.pump_control_repaired_0_a_0 Bool) (BoilerController.usr.pump_control_repaired_1_a_0 Bool) (BoilerController.usr.pump_control_repaired_2_a_0 Bool) (BoilerController.usr.pump_control_repaired_3_a_0 Bool) (BoilerController.usr.level_repaired_a_0 Bool) (BoilerController.usr.steam_repaired_a_0 Bool) (BoilerController.usr.pump_failure_acknowledgement_0_a_0 Bool) (BoilerController.usr.pump_failure_acknowledgement_1_a_0 Bool) (BoilerController.usr.pump_failure_acknowledgement_2_a_0 Bool) (BoilerController.usr.pump_failure_acknowledgement_3_a_0 Bool) (BoilerController.usr.pump_control_failure_acknowledgement_0_a_0 Bool) (BoilerController.usr.pump_control_failure_acknowledgement_1_a_0 Bool) (BoilerController.usr.pump_control_failure_acknowledgement_2_a_0 Bool) (BoilerController.usr.pump_control_failure_acknowledgement_3_a_0 Bool) (BoilerController.usr.level_failure_acknowledgement_a_0 Bool) (BoilerController.usr.steam_failure_acknowledgement_a_0 Bool) (BoilerController.res.nondet_32 Int) (BoilerController.res.nondet_31 Int) (BoilerController.res.nondet_30 Int) (BoilerController.res.nondet_29 Int) (BoilerController.res.nondet_28 Int) (BoilerController.res.nondet_27 Int) (BoilerController.res.nondet_26 Int) (BoilerController.res.nondet_25 Int) (BoilerController.res.nondet_24 Int) (BoilerController.res.nondet_23 Int) (BoilerController.res.nondet_22 Int) (BoilerController.res.nondet_21 Int) (BoilerController.res.nondet_20 Int) (BoilerController.res.nondet_19 Int) (BoilerController.res.nondet_18 Int) (BoilerController.res.nondet_17 Int) (BoilerController.res.nondet_16 Int) (BoilerController.res.nondet_15 Int) (BoilerController.res.nondet_14 Int) (BoilerController.res.nondet_13 Int) (BoilerController.res.nondet_12 Int) (BoilerController.res.nondet_11 Int) (BoilerController.res.nondet_10 Int) (BoilerController.res.nondet_9 Int) (BoilerController.res.nondet_8 Int) (BoilerController.res.nondet_7 Int) (BoilerController.res.nondet_6 Int) (BoilerController.res.nondet_5 Int) (BoilerController.res.nondet_4 Int) (BoilerController.res.nondet_3 Int) (BoilerController.res.nondet_2 Int) (BoilerController.res.nondet_1 Int) (BoilerController.res.nondet_0 Int) (BoilerController.usr.program_ready_a_0 Bool) (BoilerController.usr.mode_a_0 Int) (BoilerController.usr.valve_a_0 Bool) (BoilerController.usr.open_pump_0_a_0 Bool) (BoilerController.usr.open_pump_1_a_0 Bool) (BoilerController.usr.open_pump_2_a_0 Bool) (BoilerController.usr.open_pump_3_a_0 Bool) (BoilerController.usr.close_pump_0_a_0 Bool) (BoilerController.usr.close_pump_1_a_0 Bool) (BoilerController.usr.close_pump_2_a_0 Bool) (BoilerController.usr.close_pump_3_a_0 Bool) (BoilerController.usr.pump_failure_detection_0_a_0 Bool) (BoilerController.usr.pump_failure_detection_1_a_0 Bool) (BoilerController.usr.pump_failure_detection_2_a_0 Bool) (BoilerController.usr.pump_failure_detection_3_a_0 Bool) (BoilerController.usr.pump_control_failure_detection_0_a_0 Bool) (BoilerController.usr.pump_control_failure_detection_1_a_0 Bool) (BoilerController.usr.pump_control_failure_detection_2_a_0 Bool) (BoilerController.usr.pump_control_failure_detection_3_a_0 Bool) (BoilerController.usr.level_failure_detection_a_0 Bool) (BoilerController.usr.steam_outcome_failure_detection_a_0 Bool) (BoilerController.usr.pump_repaired_acknowledgement_0_a_0 Bool) (BoilerController.usr.pump_repaired_acknowledgement_1_a_0 Bool) (BoilerController.usr.pump_repaired_acknowledgement_2_a_0 Bool) (BoilerController.usr.pump_repaired_acknowledgement_3_a_0 Bool) (BoilerController.usr.pump_control_repaired_acknowledgement_0_a_0 Bool) (BoilerController.usr.pump_control_repaired_acknowledgement_1_a_0 Bool) (BoilerController.usr.pump_control_repaired_acknowledgement_2_a_0 Bool) (BoilerController.usr.pump_control_repaired_acknowledgement_3_a_0 Bool) (BoilerController.usr.level_repaired_acknowledgement_a_0 Bool) (BoilerController.usr.steam_outcome_repaired_acknowledgement_a_0 Bool) (BoilerController.res.init_flag_a_0 Bool) (BoilerController.impl.usr.stop_request_a_0 Bool) (BoilerController.impl.usr.op_mode_a_0 Int) (BoilerController.impl.usr.q_a_0 Int) (BoilerController.impl.usr.v_a_0 Int) (BoilerController.impl.usr.valve_state_a_0 Int) (BoilerController.impl.usr.n_pumps_a_0 Int) (BoilerController.impl.usr.pump_status_0_a_0 Int) (BoilerController.impl.usr.pump_status_1_a_0 Int) (BoilerController.impl.usr.pump_status_2_a_0 Int) (BoilerController.impl.usr.pump_status_3_a_0 Int) (BoilerController.impl.usr.pump_defect_0_a_0 Int) (BoilerController.impl.usr.pump_defect_1_a_0 Int) (BoilerController.impl.usr.pump_defect_2_a_0 Int) (BoilerController.impl.usr.pump_defect_3_a_0 Int) (BoilerController.impl.usr.pump_control_defect_0_a_0 Int) (BoilerController.impl.usr.pump_control_defect_1_a_0 Int) (BoilerController.impl.usr.pump_control_defect_2_a_0 Int) (BoilerController.impl.usr.pump_control_defect_3_a_0 Int) (BoilerController.res.abs_0_a_0 Bool) (BoilerController.res.abs_1_a_0 Int) (BoilerController.res.abs_2_a_0 Int) (BoilerController.res.abs_3_a_0 Int) (BoilerController.res.abs_4_a_0 Bool) (BoilerController.res.abs_5_a_0 Bool) (BoilerController.res.abs_6_a_0 Bool) (BoilerController.res.abs_7_a_0 Bool) (BoilerController.res.abs_8_a_0 Int) (BoilerController.res.abs_9_a_0 Int) (BoilerController.res.abs_10_a_0 Bool) (BoilerController.res.abs_11_a_0 Int) (BoilerController.res.abs_12_a_0 Int) (BoilerController.res.abs_13_a_0 Bool) (BoilerController.res.abs_14_a_0 Int) (BoilerController.res.abs_15_a_0 Bool) (BoilerController.res.abs_16_a_0 Bool) (BoilerController.res.abs_17_a_0 Bool) (BoilerController.res.abs_18_a_0 Bool) (BoilerController.res.abs_19_a_0 Int) (BoilerController.res.abs_20_a_0 Int) (BoilerController.res.abs_21_a_0 Bool) (BoilerController.res.abs_22_a_0 Int) (BoilerController.res.abs_23_a_0 Int) (BoilerController.res.abs_24_a_0 Bool) (BoilerController.res.abs_25_a_0 Int) (BoilerController.res.abs_26_a_0 Bool) (BoilerController.res.abs_27_a_0 Bool) (BoilerController.res.abs_28_a_0 Bool) (BoilerController.res.abs_29_a_0 Bool) (BoilerController.res.abs_30_a_0 Int) (BoilerController.res.abs_31_a_0 Int) (BoilerController.res.abs_32_a_0 Bool) (BoilerController.res.abs_33_a_0 Int) (BoilerController.res.abs_34_a_0 Int) (BoilerController.res.abs_35_a_0 Bool) (BoilerController.res.abs_36_a_0 Int) (BoilerController.res.abs_37_a_0 Bool) (BoilerController.res.abs_38_a_0 Bool) (BoilerController.res.abs_39_a_0 Bool) (BoilerController.res.abs_40_a_0 Bool) (BoilerController.res.abs_41_a_0 Int) (BoilerController.res.abs_42_a_0 Int) (BoilerController.res.abs_43_a_0 Bool) (BoilerController.res.abs_44_a_0 Int) (BoilerController.res.abs_45_a_0 Int) (BoilerController.res.abs_46_a_0 Bool) (BoilerController.res.abs_48_a_0 Int) (BoilerController.res.abs_49_a_0 Int) (BoilerController.res.abs_50_a_0 Int) (BoilerController.res.abs_51_a_0 Int) (BoilerController.res.abs_52_a_0 Int) (BoilerController.res.abs_53_a_0 Bool) (BoilerController.res.abs_54_a_0 Bool) (BoilerController.res.abs_55_a_0 Bool) (BoilerController.res.abs_56_a_0 Bool) (BoilerController.res.abs_57_a_0 Int) (BoilerController.res.abs_58_a_0 Int) (BoilerController.res.abs_59_a_0 Int) (BoilerController.res.abs_60_a_0 Int) (BoilerController.res.abs_61_a_0 Int) (BoilerController.res.abs_62_a_0 Int) (BoilerController.res.abs_63_a_0 Int) (BoilerController.res.abs_64_a_0 Int) (BoilerController.res.abs_65_a_0 Int) (BoilerController.res.abs_66_a_0 Int) (BoilerController.res.abs_67_a_0 Int) (BoilerController.res.abs_68_a_0 Int) (BoilerController.res.abs_69_a_0 Bool) (BoilerController.res.abs_70_a_0 Int) (BoilerController.res.abs_71_a_0 Bool) (BoilerController.res.abs_72_a_0 Int) (BoilerController.res.abs_73_a_0 Bool) (BoilerController.res.abs_74_a_0 Bool) (BoilerController.res.abs_75_a_0 Bool) (BoilerController.res.abs_76_a_0 Bool) (BoilerController.res.abs_77_a_0 Bool) (BoilerController.res.abs_78_a_0 Bool) (BoilerController.res.abs_79_a_0 Bool) (BoilerController.res.abs_80_a_0 Bool) (BoilerController.res.abs_81_a_0 Bool) (BoilerController.res.abs_82_a_0 Bool) (BoilerController.res.abs_83_a_0 Bool) (BoilerController.res.abs_84_a_0 Bool) (BoilerController.res.abs_85_a_0 Bool) (BoilerController.res.abs_86_a_0 Bool) (BoilerController.res.abs_87_a_0 Bool) (BoilerController.res.abs_88_a_0 Bool) (BoilerController.res.abs_89_a_0 Bool) (BoilerController.res.abs_90_a_0 Bool) (BoilerController.res.abs_91_a_0 Bool) (BoilerController.res.abs_92_a_0 Bool) (BoilerController.res.abs_93_a_0 Bool) (BoilerController.res.abs_94_a_0 Bool) (BoilerController.res.abs_95_a_0 Bool) (BoilerController.res.abs_96_a_0 Bool) (BoilerController.res.abs_97_a_0 Bool) (BoilerController.res.abs_98_a_0 Bool) (BoilerController.res.abs_99_a_0 Bool) (BoilerController.res.abs_100_a_0 Bool) (BoilerController.res.inst_176_a_0 Bool) (BoilerController.res.inst_175_a_0 Bool) (BoilerController.res.inst_174_a_0 Bool) (BoilerController.res.inst_173_a_0 Bool) (BoilerController.res.inst_172_a_0 Int) (BoilerController.res.inst_171_a_0 Bool) (BoilerController.res.inst_170_a_0 Bool) (BoilerController.res.inst_169_a_0 Bool) (BoilerController.res.inst_168_a_0 Bool) (BoilerController.res.inst_167_a_0 Bool) (BoilerController.res.inst_166_a_0 Bool) (BoilerController.res.inst_165_a_0 Bool) (BoilerController.res.inst_164_a_0 Bool) (BoilerController.res.inst_163_a_0 Bool) (BoilerController.res.inst_162_a_0 Bool) (BoilerController.res.inst_161_a_0 Bool) (BoilerController.res.inst_160_a_0 Bool) (BoilerController.res.inst_159_a_0 Bool) (BoilerController.res.inst_158_a_0 Bool) (BoilerController.res.inst_157_a_0 Bool) (BoilerController.res.inst_156_a_0 Bool) (BoilerController.res.inst_155_a_0 Bool) (BoilerController.res.inst_154_a_0 Bool) (BoilerController.res.inst_153_a_0 Bool) (BoilerController.res.inst_152_a_0 Bool) (BoilerController.res.inst_151_a_0 Bool) (BoilerController.res.inst_150_a_0 Bool) (BoilerController.res.inst_149_a_0 Bool) (BoilerController.res.inst_148_a_0 Bool) (BoilerController.res.inst_147_a_0 Bool) (BoilerController.res.inst_146_a_0 Bool) (BoilerController.res.inst_145_a_0 Bool) (BoilerController.res.inst_144_a_0 Bool) (BoilerController.res.inst_143_a_0 Bool) (BoilerController.res.inst_142_a_0 Bool) (BoilerController.res.inst_141_a_0 Bool) (BoilerController.res.inst_140_a_0 Bool) (BoilerController.res.inst_139_a_0 Bool) (BoilerController.res.inst_138_a_0 Bool) (BoilerController.res.inst_137_a_0 Bool) (BoilerController.res.inst_136_a_0 Bool) (BoilerController.res.inst_135_a_0 Bool) (BoilerController.res.inst_134_a_0 Bool) (BoilerController.res.inst_133_a_0 Bool) (BoilerController.res.inst_132_a_0 Bool) (BoilerController.res.inst_131_a_0 Bool) (BoilerController.res.inst_130_a_0 Bool) (BoilerController.res.inst_129_a_0 Bool) (BoilerController.res.inst_128_a_0 Bool) (BoilerController.res.inst_127_a_0 Bool) (BoilerController.res.inst_126_a_0 Bool) (BoilerController.res.inst_125_a_0 Bool) (BoilerController.res.inst_124_a_0 Bool) (BoilerController.res.inst_123_a_0 Bool) (BoilerController.res.inst_122_a_0 Bool) (BoilerController.res.inst_121_a_0 Bool) (BoilerController.res.inst_120_a_0 Int) (BoilerController.res.inst_119_a_0 Bool) (BoilerController.res.inst_118_a_0 Bool) (BoilerController.res.inst_117_a_0 Int) (BoilerController.res.inst_116_a_0 Int) (BoilerController.res.inst_115_a_0 Bool) (BoilerController.res.inst_114_a_0 Bool) (BoilerController.res.inst_113_a_0 Bool) (BoilerController.res.inst_112_a_0 Bool) (BoilerController.res.inst_111_a_0 Int) (BoilerController.res.inst_110_a_0 Int) (BoilerController.res.inst_109_a_0 Bool) (BoilerController.res.inst_108_a_0 Bool) (BoilerController.res.inst_107_a_0 Bool) (BoilerController.res.inst_106_a_0 Bool) (BoilerController.res.inst_105_a_0 Bool) (BoilerController.res.inst_104_a_0 Bool) (BoilerController.res.inst_103_a_0 Bool) (BoilerController.res.inst_102_a_0 Bool) (BoilerController.res.inst_101_a_0 Int) (BoilerController.res.inst_100_a_0 Int) (BoilerController.res.inst_99_a_0 Int) (BoilerController.res.inst_98_a_0 Int) (BoilerController.res.inst_97_a_0 Bool) (BoilerController.res.inst_96_a_0 Bool) (BoilerController.res.inst_95_a_0 Bool) (BoilerController.res.inst_94_a_0 Bool) (BoilerController.res.inst_93_a_0 Int) (BoilerController.res.inst_92_a_0 Int) (BoilerController.res.inst_91_a_0 Int) (BoilerController.res.inst_90_a_0 Int) (BoilerController.res.inst_89_a_0 Int) (BoilerController.res.inst_88_a_0 Int) (BoilerController.res.inst_87_a_0 Int) (BoilerController.res.inst_86_a_0 Int) (BoilerController.res.inst_85_a_0 Int) (BoilerController.res.inst_84_a_0 Int) (BoilerController.res.inst_83_a_0 Bool) (BoilerController.res.inst_82_a_0 Bool) (BoilerController.res.inst_81_a_0 Bool) (BoilerController.res.inst_80_a_0 Bool) (BoilerController.res.inst_79_a_0 Int) (BoilerController.res.inst_78_a_0 Int) (BoilerController.res.inst_77_a_0 Int) (BoilerController.res.inst_76_a_0 Int) (BoilerController.res.inst_75_a_0 Bool) (BoilerController.res.inst_74_a_0 Int) (BoilerController.res.inst_73_a_0 Bool) (BoilerController.res.inst_72_a_0 Int) (BoilerController.res.inst_71_a_0 Bool) (BoilerController.res.inst_70_a_0 Int) (BoilerController.res.inst_69_a_0 Bool) (BoilerController.res.inst_68_a_0 Int) (BoilerController.res.inst_67_a_0 Bool) (BoilerController.res.inst_66_a_0 Int) (BoilerController.res.inst_65_a_0 Bool) (BoilerController.res.inst_64_a_0 Int) (BoilerController.res.inst_63_a_0 Bool) (BoilerController.res.inst_62_a_0 Int) (BoilerController.res.inst_61_a_0 Bool) (BoilerController.res.inst_60_a_0 Int) (BoilerController.res.inst_59_a_0 Bool) (BoilerController.res.inst_58_a_0 Bool) (BoilerController.res.inst_57_a_0 Bool) (BoilerController.res.inst_56_a_0 Bool) (BoilerController.res.inst_55_a_0 Bool) (BoilerController.res.inst_54_a_0 Bool) (BoilerController.res.inst_53_a_0 Bool) (BoilerController.res.inst_52_a_0 Bool) (BoilerController.res.inst_51_a_0 Bool) (BoilerController.res.inst_50_a_0 Bool) (BoilerController.res.inst_49_a_0 Bool) (BoilerController.res.inst_48_a_0 Bool) (BoilerController.res.inst_47_a_0 Int) (BoilerController.res.inst_46_a_0 Bool) (BoilerController.res.inst_45_a_0 Bool) (BoilerController.res.inst_44_a_0 Bool) (BoilerController.res.inst_43_a_0 Bool) (BoilerController.res.inst_42_a_0 Bool) (BoilerController.res.inst_41_a_0 Bool) (BoilerController.res.inst_40_a_0 Bool) (BoilerController.res.inst_39_a_0 Bool) (BoilerController.res.inst_38_a_0 Bool) (BoilerController.res.inst_37_a_0 Bool) (BoilerController.res.inst_36_a_0 Bool) (BoilerController.res.inst_35_a_0 Int) (BoilerController.res.inst_34_a_0 Int) (BoilerController.res.inst_33_a_0 Int) (BoilerController.res.inst_32_a_0 Int) (BoilerController.res.inst_31_a_0 Bool) (BoilerController.res.inst_30_a_0 Bool) (BoilerController.res.inst_29_a_0 Bool) (BoilerController.res.inst_28_a_0 Bool) (BoilerController.res.inst_27_a_0 Bool) (BoilerController.res.inst_26_a_0 Bool) (BoilerController.res.inst_25_a_0 Bool) (BoilerController.res.inst_24_a_0 Bool) (BoilerController.res.inst_23_a_0 Bool) (BoilerController.res.inst_22_a_0 Int) (BoilerController.res.inst_21_a_0 Int) (BoilerController.res.inst_20_a_0 Int) (BoilerController.res.inst_19_a_0 Int) (BoilerController.res.inst_18_a_0 Bool) (BoilerController.res.inst_17_a_0 Bool) (BoilerController.res.inst_16_a_0 Bool) (BoilerController.res.inst_15_a_0 Bool) (BoilerController.res.inst_14_a_0 Bool) (BoilerController.res.inst_13_a_0 Bool) (BoilerController.res.inst_12_a_0 Bool) (BoilerController.res.inst_11_a_0 Bool) (BoilerController.res.inst_10_a_0 Bool) (BoilerController.res.inst_9_a_0 Int) (BoilerController.res.inst_8_a_0 Int) (BoilerController.res.inst_7_a_0 Int) (BoilerController.res.inst_6_a_0 Int) (BoilerController.res.inst_5_a_0 Bool) (BoilerController.res.inst_4_a_0 Bool) (BoilerController.res.inst_3_a_0 Bool) (BoilerController.res.inst_2_a_0 Bool) (BoilerController.res.inst_1_a_0 Bool) (BoilerController.res.inst_0_a_0 Bool)) Bool + (and (= BoilerController.usr.program_ready_a_0 false) (= BoilerController.res.abs_49_a_0 BoilerController.usr.level_a_0) (= BoilerController.impl.usr.op_mode_a_0 1) (= BoilerController.usr.valve_a_0 false) (let ((X1 BoilerController.res.abs_71_a_0)) (and (= BoilerController.impl.usr.stop_request_a_0 BoilerController.res.abs_0_a_0) (= BoilerController.res.abs_50_a_0 BoilerController.usr.steam_a_0) (let ((X2 0)) (and (= BoilerController.res.abs_51_a_0 X2) (let ((X3 0)) (and (= BoilerController.res.abs_52_a_0 X3) (= BoilerController.impl.usr.pump_defect_0_a_0 0) (let ((X4 BoilerController.res.abs_11_a_0)) (and (= BoilerController.res.abs_4_a_0 BoilerController.usr.pump_failure_acknowledgement_0_a_0) (= BoilerController.res.abs_5_a_0 BoilerController.usr.pump_repaired_0_a_0) (= BoilerController.res.abs_6_a_0 BoilerController.usr.pump_control_failure_acknowledgement_0_a_0) (= BoilerController.res.abs_7_a_0 BoilerController.usr.pump_control_repaired_0_a_0) (= BoilerController.res.abs_8_a_0 (let ((X5 BoilerController.res.nondet_2)) X5)) (= BoilerController.impl.usr.pump_status_0_a_0 0) (let ((X5 BoilerController.res.abs_64_a_0)) (and (= BoilerController.impl.usr.n_pumps_a_0 0) (= BoilerController.impl.usr.q_a_0 BoilerController.usr.level_a_0) (let ((X6 BoilerController.res.abs_57_a_0)) (and (= BoilerController.res.abs_48_a_0 (let ((X7 BoilerController.res.nondet_14)) X7)) (= BoilerController.impl.usr.valve_state_a_0 0) (let ((X7 BoilerController.res.abs_70_a_0)) (let ((X8 false)) (and (= BoilerController.res.abs_53_a_0 X8) (= BoilerController.res.abs_10_a_0 BoilerController.usr.pump_control_state_0_a_0) (= BoilerController.res.abs_9_a_0 BoilerController.usr.pump_state_0_a_0) (let ((X9 BoilerController.res.abs_13_a_0)) (let ((X10 false)) (and (= BoilerController.res.abs_54_a_0 X10) (= BoilerController.res.abs_21_a_0 BoilerController.usr.pump_control_state_1_a_0) (= BoilerController.res.abs_20_a_0 BoilerController.usr.pump_state_1_a_0) (= BoilerController.res.abs_19_a_0 (let ((X11 BoilerController.res.nondet_5)) X11)) (let ((X11 BoilerController.res.abs_24_a_0)) (and (= BoilerController.res.abs_15_a_0 BoilerController.usr.pump_failure_acknowledgement_1_a_0) (= BoilerController.res.abs_16_a_0 BoilerController.usr.pump_repaired_1_a_0) (= BoilerController.res.abs_17_a_0 BoilerController.usr.pump_control_failure_acknowledgement_1_a_0) (= BoilerController.res.abs_18_a_0 BoilerController.usr.pump_control_repaired_1_a_0) (= BoilerController.impl.usr.pump_status_1_a_0 0) (let ((X12 BoilerController.res.abs_65_a_0)) (let ((X13 false)) (and (= BoilerController.res.abs_55_a_0 X13) (= BoilerController.res.abs_32_a_0 BoilerController.usr.pump_control_state_2_a_0) (= BoilerController.res.abs_31_a_0 BoilerController.usr.pump_state_2_a_0) (= BoilerController.res.abs_30_a_0 (let ((X14 BoilerController.res.nondet_8)) X14)) (let ((X14 BoilerController.res.abs_35_a_0)) (and (= BoilerController.res.abs_26_a_0 BoilerController.usr.pump_failure_acknowledgement_2_a_0) (= BoilerController.res.abs_27_a_0 BoilerController.usr.pump_repaired_2_a_0) (= BoilerController.res.abs_28_a_0 BoilerController.usr.pump_control_failure_acknowledgement_2_a_0) (= BoilerController.res.abs_29_a_0 BoilerController.usr.pump_control_repaired_2_a_0) (= BoilerController.impl.usr.pump_status_2_a_0 0) (let ((X15 BoilerController.res.abs_66_a_0)) (let ((X16 false)) (and (= BoilerController.res.abs_56_a_0 X16) (= BoilerController.res.abs_43_a_0 BoilerController.usr.pump_control_state_3_a_0) (= BoilerController.res.abs_42_a_0 BoilerController.usr.pump_state_3_a_0) (= BoilerController.res.abs_41_a_0 (let ((X17 BoilerController.res.nondet_11)) X17)) (let ((X17 BoilerController.res.abs_46_a_0)) (and (= BoilerController.res.abs_37_a_0 BoilerController.usr.pump_failure_acknowledgement_3_a_0) (= BoilerController.res.abs_38_a_0 BoilerController.usr.pump_repaired_3_a_0) (= BoilerController.res.abs_39_a_0 BoilerController.usr.pump_control_failure_acknowledgement_3_a_0) (= BoilerController.res.abs_40_a_0 BoilerController.usr.pump_control_repaired_3_a_0) (= BoilerController.impl.usr.pump_status_3_a_0 0) (let ((X18 BoilerController.res.abs_67_a_0)) (and (= BoilerController.impl.usr.v_a_0 BoilerController.usr.steam_a_0) (let ((X19 BoilerController.res.abs_58_a_0)) (and (= BoilerController.impl.usr.pump_defect_1_a_0 0) (let ((X20 BoilerController.res.abs_22_a_0)) (and (= BoilerController.impl.usr.pump_defect_2_a_0 0) (let ((X21 BoilerController.res.abs_33_a_0)) (and (= BoilerController.impl.usr.pump_defect_3_a_0 0) (let ((X22 BoilerController.res.abs_44_a_0)) (and (= BoilerController.impl.usr.pump_control_defect_0_a_0 0) (let ((X23 BoilerController.res.abs_12_a_0)) (and (= BoilerController.impl.usr.pump_control_defect_1_a_0 0) (let ((X24 BoilerController.res.abs_23_a_0)) (and (= BoilerController.impl.usr.pump_control_defect_2_a_0 0) (let ((X25 BoilerController.res.abs_34_a_0)) (and (= BoilerController.impl.usr.pump_control_defect_3_a_0 0) (let ((X26 BoilerController.res.abs_45_a_0)) (let ((X27 BoilerController.res.abs_69_a_0)) (and (= BoilerController.usr.mode_a_0 1) (let ((X28 BoilerController.res.abs_72_a_0)) (and (= BoilerController.res.abs_3_a_0 BoilerController.impl.usr.pump_status_0_a_0) (let ((X29 BoilerController.res.abs_73_a_0)) (and (= BoilerController.usr.open_pump_0_a_0 X29) (= BoilerController.res.abs_14_a_0 BoilerController.impl.usr.pump_status_1_a_0) (= BoilerController.res.abs_25_a_0 BoilerController.impl.usr.pump_status_2_a_0) (= BoilerController.res.abs_36_a_0 BoilerController.impl.usr.pump_status_3_a_0) (let ((X30 BoilerController.res.abs_74_a_0)) (and (= BoilerController.usr.open_pump_1_a_0 X30) (let ((X31 BoilerController.res.abs_75_a_0)) (and (= BoilerController.usr.open_pump_2_a_0 X31) (let ((X32 BoilerController.res.abs_76_a_0)) (and (= BoilerController.usr.open_pump_3_a_0 X32) (let ((X33 BoilerController.res.abs_77_a_0)) (and (= BoilerController.usr.close_pump_0_a_0 X33) (let ((X34 BoilerController.res.abs_78_a_0)) (and (= BoilerController.usr.close_pump_1_a_0 X34) (let ((X35 BoilerController.res.abs_79_a_0)) (and (= BoilerController.usr.close_pump_2_a_0 X35) (let ((X36 BoilerController.res.abs_80_a_0)) (and (= BoilerController.usr.close_pump_3_a_0 X36) (let ((X37 BoilerController.res.abs_81_a_0)) (and (= BoilerController.usr.pump_failure_detection_0_a_0 X37) (let ((X38 BoilerController.res.abs_82_a_0)) (and (= BoilerController.usr.pump_failure_detection_1_a_0 X38) (let ((X39 BoilerController.res.abs_83_a_0)) (and (= BoilerController.usr.pump_failure_detection_2_a_0 X39) (let ((X40 BoilerController.res.abs_84_a_0)) (and (= BoilerController.usr.pump_failure_detection_3_a_0 X40) (let ((X41 BoilerController.res.abs_89_a_0)) (and (= BoilerController.usr.pump_control_failure_detection_0_a_0 X41) (let ((X42 BoilerController.res.abs_90_a_0)) (and (= BoilerController.usr.pump_control_failure_detection_1_a_0 X42) (let ((X43 BoilerController.res.abs_91_a_0)) (and (= BoilerController.usr.pump_control_failure_detection_2_a_0 X43) (let ((X44 BoilerController.res.abs_92_a_0)) (and (= BoilerController.usr.pump_control_failure_detection_3_a_0 X44) (= BoilerController.usr.level_failure_detection_a_0 false) (let ((X45 BoilerController.res.abs_97_a_0)) (and (= BoilerController.usr.steam_outcome_failure_detection_a_0 false) (let ((X46 BoilerController.res.abs_99_a_0)) (let ((X47 BoilerController.res.abs_85_a_0)) (and (= BoilerController.usr.pump_repaired_acknowledgement_0_a_0 X47) (let ((X48 BoilerController.res.abs_86_a_0)) (and (= BoilerController.usr.pump_repaired_acknowledgement_1_a_0 X48) (let ((X49 BoilerController.res.abs_87_a_0)) (and (= BoilerController.usr.pump_repaired_acknowledgement_2_a_0 X49) (let ((X50 BoilerController.res.abs_88_a_0)) (and (= BoilerController.usr.pump_repaired_acknowledgement_3_a_0 X50) (let ((X51 BoilerController.res.abs_93_a_0)) (and (= BoilerController.usr.pump_control_repaired_acknowledgement_0_a_0 X51) (let ((X52 BoilerController.res.abs_94_a_0)) (and (= BoilerController.usr.pump_control_repaired_acknowledgement_1_a_0 X52) (let ((X53 BoilerController.res.abs_95_a_0)) (and (= BoilerController.usr.pump_control_repaired_acknowledgement_2_a_0 X53) (let ((X54 BoilerController.res.abs_96_a_0)) (and (= BoilerController.usr.pump_control_repaired_acknowledgement_3_a_0 X54) (= BoilerController.usr.level_repaired_acknowledgement_a_0 false) (let ((X55 BoilerController.res.abs_98_a_0)) (and (= BoilerController.usr.steam_outcome_repaired_acknowledgement_a_0 false) (let ((X56 BoilerController.res.abs_100_a_0)) (and (__node_init_ControlOutput_0 BoilerController.impl.usr.op_mode_a_0 BoilerController.res.abs_49_a_0 BoilerController.usr.valve_a_0 BoilerController.res.abs_71_a_0 BoilerController.res.abs_72_a_0 BoilerController.res.inst_176_a_0 BoilerController.res.inst_175_a_0 BoilerController.res.inst_174_a_0) (__node_init_ControlMode_0 BoilerController.usr.steam_boiler_waiting_a_0 BoilerController.usr.physical_units_ready_a_0 BoilerController.impl.usr.stop_request_a_0 BoilerController.res.abs_50_a_0 BoilerController.res.abs_51_a_0 BoilerController.res.abs_52_a_0 BoilerController.impl.usr.pump_defect_0_a_0 BoilerController.impl.usr.pump_defect_1_a_0 BoilerController.impl.usr.pump_defect_2_a_0 BoilerController.impl.usr.pump_defect_3_a_0 BoilerController.impl.usr.pump_control_defect_0_a_0 BoilerController.impl.usr.pump_control_defect_1_a_0 BoilerController.impl.usr.pump_control_defect_2_a_0 BoilerController.impl.usr.pump_control_defect_3_a_0 BoilerController.impl.usr.q_a_0 BoilerController.res.abs_9_a_0 BoilerController.res.abs_20_a_0 BoilerController.res.abs_31_a_0 BoilerController.res.abs_42_a_0 BoilerController.res.nondet_24 BoilerController.res.abs_68_a_0 BoilerController.res.inst_173_a_0 BoilerController.res.inst_172_a_0 BoilerController.res.inst_171_a_0 BoilerController.res.inst_170_a_0 BoilerController.res.inst_169_a_0 BoilerController.res.inst_168_a_0 BoilerController.res.inst_167_a_0 BoilerController.res.inst_166_a_0 BoilerController.res.inst_165_a_0 BoilerController.res.inst_164_a_0 BoilerController.res.inst_163_a_0 BoilerController.res.inst_162_a_0 BoilerController.res.inst_161_a_0 BoilerController.res.inst_160_a_0 BoilerController.res.inst_159_a_0 BoilerController.res.inst_158_a_0 BoilerController.res.inst_157_a_0 BoilerController.res.inst_156_a_0 BoilerController.res.inst_155_a_0 BoilerController.res.inst_154_a_0 BoilerController.res.inst_153_a_0 BoilerController.res.inst_152_a_0 BoilerController.res.inst_151_a_0 BoilerController.res.inst_150_a_0 BoilerController.res.inst_149_a_0 BoilerController.res.inst_148_a_0 BoilerController.res.inst_147_a_0 BoilerController.res.inst_146_a_0 BoilerController.res.inst_145_a_0 BoilerController.res.inst_144_a_0 BoilerController.res.inst_143_a_0 BoilerController.res.inst_142_a_0 BoilerController.res.inst_141_a_0 BoilerController.res.inst_140_a_0 BoilerController.res.inst_139_a_0 BoilerController.res.inst_138_a_0 BoilerController.res.inst_137_a_0 BoilerController.res.inst_136_a_0 BoilerController.res.inst_135_a_0 BoilerController.res.inst_134_a_0 BoilerController.res.inst_133_a_0 BoilerController.res.inst_132_a_0 BoilerController.res.inst_131_a_0 BoilerController.res.inst_130_a_0 BoilerController.res.inst_129_a_0 BoilerController.res.inst_128_a_0 BoilerController.res.inst_127_a_0 BoilerController.res.inst_126_a_0 BoilerController.res.inst_125_a_0 BoilerController.res.inst_124_a_0 BoilerController.res.inst_123_a_0 BoilerController.res.inst_122_a_0) (__node_init_Operator_0 BoilerController.usr.stop_a_0 BoilerController.res.abs_0_a_0 BoilerController.res.inst_121_a_0 BoilerController.res.inst_120_a_0) (__node_init_LevelDefect_0 BoilerController.usr.level_failure_acknowledgement_a_0 BoilerController.usr.level_repaired_a_0 BoilerController.usr.level_a_0 BoilerController.res.nondet_0 BoilerController.res.abs_1_a_0 BoilerController.res.inst_119_a_0 BoilerController.res.inst_118_a_0 BoilerController.res.inst_117_a_0 BoilerController.res.inst_116_a_0 BoilerController.res.inst_115_a_0 BoilerController.res.inst_114_a_0) (__node_init_SteamDefect_0 BoilerController.usr.steam_failure_acknowledgement_a_0 BoilerController.usr.steam_repaired_a_0 BoilerController.usr.steam_a_0 BoilerController.res.nondet_1 BoilerController.res.abs_2_a_0 BoilerController.res.inst_113_a_0 BoilerController.res.inst_112_a_0 BoilerController.res.inst_111_a_0 BoilerController.res.inst_110_a_0 BoilerController.res.inst_109_a_0 BoilerController.res.inst_108_a_0) (__node_init_PumpDefect_0 BoilerController.res.abs_4_a_0 BoilerController.res.abs_5_a_0 BoilerController.res.abs_6_a_0 BoilerController.res.abs_7_a_0 BoilerController.res.abs_8_a_0 BoilerController.res.abs_9_a_0 BoilerController.res.abs_10_a_0 BoilerController.res.nondet_4 BoilerController.res.nondet_3 BoilerController.res.abs_11_a_0 BoilerController.res.abs_12_a_0 BoilerController.res.abs_13_a_0 BoilerController.res.inst_107_a_0 BoilerController.res.inst_106_a_0 BoilerController.res.inst_105_a_0 BoilerController.res.inst_104_a_0 BoilerController.res.inst_103_a_0 BoilerController.res.inst_102_a_0 BoilerController.res.inst_101_a_0 BoilerController.res.inst_100_a_0 BoilerController.res.inst_99_a_0 BoilerController.res.inst_98_a_0 BoilerController.res.inst_97_a_0 BoilerController.res.inst_96_a_0 BoilerController.res.inst_95_a_0) (__node_init_PumpsStatus_0 BoilerController.impl.usr.n_pumps_a_0 BoilerController.impl.usr.pump_defect_0_a_0 BoilerController.impl.usr.pump_defect_1_a_0 BoilerController.impl.usr.pump_defect_2_a_0 BoilerController.impl.usr.pump_defect_3_a_0 BoilerController.res.abs_53_a_0 BoilerController.res.abs_54_a_0 BoilerController.res.abs_55_a_0 BoilerController.res.abs_56_a_0 BoilerController.res.nondet_23 BoilerController.res.nondet_22 BoilerController.res.nondet_21 BoilerController.res.nondet_20 BoilerController.res.nondet_19 BoilerController.res.nondet_18 BoilerController.res.nondet_17 BoilerController.res.nondet_16 BoilerController.res.abs_64_a_0 BoilerController.res.abs_65_a_0 BoilerController.res.abs_66_a_0 BoilerController.res.abs_67_a_0 BoilerController.res.inst_94_a_0 BoilerController.res.inst_93_a_0 BoilerController.res.inst_92_a_0 BoilerController.res.inst_91_a_0 BoilerController.res.inst_90_a_0 BoilerController.res.inst_89_a_0 BoilerController.res.inst_88_a_0 BoilerController.res.inst_87_a_0 BoilerController.res.inst_86_a_0 BoilerController.res.inst_85_a_0 BoilerController.res.inst_84_a_0 BoilerController.res.inst_83_a_0 BoilerController.res.inst_82_a_0 BoilerController.res.inst_81_a_0 BoilerController.res.inst_80_a_0 BoilerController.res.inst_79_a_0 BoilerController.res.inst_78_a_0 BoilerController.res.inst_77_a_0 BoilerController.res.inst_76_a_0 BoilerController.res.inst_75_a_0 BoilerController.res.inst_74_a_0 BoilerController.res.inst_73_a_0 BoilerController.res.inst_72_a_0 BoilerController.res.inst_71_a_0 BoilerController.res.inst_70_a_0 BoilerController.res.inst_69_a_0 BoilerController.res.inst_68_a_0 BoilerController.res.inst_67_a_0 BoilerController.res.inst_66_a_0 BoilerController.res.inst_65_a_0 BoilerController.res.inst_64_a_0 BoilerController.res.inst_63_a_0 BoilerController.res.inst_62_a_0 BoilerController.res.inst_61_a_0 BoilerController.res.inst_60_a_0 BoilerController.res.inst_59_a_0 BoilerController.res.inst_58_a_0 BoilerController.res.inst_57_a_0 BoilerController.res.inst_56_a_0 BoilerController.res.inst_55_a_0 BoilerController.res.inst_54_a_0 BoilerController.res.inst_53_a_0 BoilerController.res.inst_52_a_0 BoilerController.res.inst_51_a_0) (__node_init_PumpsDecision_0 BoilerController.impl.usr.q_a_0 BoilerController.impl.usr.v_a_0 BoilerController.res.nondet_15 BoilerController.res.abs_63_a_0 BoilerController.res.inst_50_a_0) (__node_init_Dynamics_0 BoilerController.res.abs_48_a_0 BoilerController.res.abs_49_a_0 BoilerController.res.abs_50_a_0 BoilerController.res.abs_51_a_0 BoilerController.res.abs_52_a_0 BoilerController.res.abs_53_a_0 BoilerController.res.abs_54_a_0 BoilerController.res.abs_55_a_0 BoilerController.res.abs_56_a_0 BoilerController.res.abs_57_a_0 BoilerController.res.abs_58_a_0 BoilerController.res.abs_59_a_0 BoilerController.res.abs_60_a_0 BoilerController.res.abs_61_a_0 BoilerController.res.abs_62_a_0 BoilerController.res.inst_49_a_0 BoilerController.res.inst_48_a_0 BoilerController.res.inst_47_a_0 BoilerController.res.inst_46_a_0 BoilerController.res.inst_45_a_0 BoilerController.res.inst_44_a_0 BoilerController.res.inst_43_a_0) (__node_init_Valve_0 BoilerController.impl.usr.op_mode_a_0 BoilerController.impl.usr.q_a_0 BoilerController.res.abs_69_a_0 BoilerController.res.abs_70_a_0 BoilerController.res.inst_42_a_0) (__node_init_PumpDefect_0 BoilerController.res.abs_15_a_0 BoilerController.res.abs_16_a_0 BoilerController.res.abs_17_a_0 BoilerController.res.abs_18_a_0 BoilerController.res.abs_19_a_0 BoilerController.res.abs_20_a_0 BoilerController.res.abs_21_a_0 BoilerController.res.nondet_7 BoilerController.res.nondet_6 BoilerController.res.abs_22_a_0 BoilerController.res.abs_23_a_0 BoilerController.res.abs_24_a_0 BoilerController.res.inst_41_a_0 BoilerController.res.inst_40_a_0 BoilerController.res.inst_39_a_0 BoilerController.res.inst_38_a_0 BoilerController.res.inst_37_a_0 BoilerController.res.inst_36_a_0 BoilerController.res.inst_35_a_0 BoilerController.res.inst_34_a_0 BoilerController.res.inst_33_a_0 BoilerController.res.inst_32_a_0 BoilerController.res.inst_31_a_0 BoilerController.res.inst_30_a_0 BoilerController.res.inst_29_a_0) (__node_init_PumpDefect_0 BoilerController.res.abs_26_a_0 BoilerController.res.abs_27_a_0 BoilerController.res.abs_28_a_0 BoilerController.res.abs_29_a_0 BoilerController.res.abs_30_a_0 BoilerController.res.abs_31_a_0 BoilerController.res.abs_32_a_0 BoilerController.res.nondet_10 BoilerController.res.nondet_9 BoilerController.res.abs_33_a_0 BoilerController.res.abs_34_a_0 BoilerController.res.abs_35_a_0 BoilerController.res.inst_28_a_0 BoilerController.res.inst_27_a_0 BoilerController.res.inst_26_a_0 BoilerController.res.inst_25_a_0 BoilerController.res.inst_24_a_0 BoilerController.res.inst_23_a_0 BoilerController.res.inst_22_a_0 BoilerController.res.inst_21_a_0 BoilerController.res.inst_20_a_0 BoilerController.res.inst_19_a_0 BoilerController.res.inst_18_a_0 BoilerController.res.inst_17_a_0 BoilerController.res.inst_16_a_0) (__node_init_PumpDefect_0 BoilerController.res.abs_37_a_0 BoilerController.res.abs_38_a_0 BoilerController.res.abs_39_a_0 BoilerController.res.abs_40_a_0 BoilerController.res.abs_41_a_0 BoilerController.res.abs_42_a_0 BoilerController.res.abs_43_a_0 BoilerController.res.nondet_13 BoilerController.res.nondet_12 BoilerController.res.abs_44_a_0 BoilerController.res.abs_45_a_0 BoilerController.res.abs_46_a_0 BoilerController.res.inst_15_a_0 BoilerController.res.inst_14_a_0 BoilerController.res.inst_13_a_0 BoilerController.res.inst_12_a_0 BoilerController.res.inst_11_a_0 BoilerController.res.inst_10_a_0 BoilerController.res.inst_9_a_0 BoilerController.res.inst_8_a_0 BoilerController.res.inst_7_a_0 BoilerController.res.inst_6_a_0 BoilerController.res.inst_5_a_0 BoilerController.res.inst_4_a_0 BoilerController.res.inst_3_a_0) (__node_init_PumpsOutput_0 BoilerController.impl.usr.op_mode_a_0 BoilerController.res.abs_3_a_0 BoilerController.res.abs_14_a_0 BoilerController.res.abs_25_a_0 BoilerController.res.abs_36_a_0 BoilerController.impl.usr.pump_defect_0_a_0 BoilerController.impl.usr.pump_defect_1_a_0 BoilerController.impl.usr.pump_defect_2_a_0 BoilerController.impl.usr.pump_defect_3_a_0 BoilerController.impl.usr.pump_control_defect_0_a_0 BoilerController.impl.usr.pump_control_defect_1_a_0 BoilerController.impl.usr.pump_control_defect_2_a_0 BoilerController.impl.usr.pump_control_defect_3_a_0 BoilerController.res.abs_5_a_0 BoilerController.res.abs_16_a_0 BoilerController.res.abs_27_a_0 BoilerController.res.abs_38_a_0 BoilerController.res.abs_7_a_0 BoilerController.res.abs_18_a_0 BoilerController.res.abs_29_a_0 BoilerController.res.abs_40_a_0 BoilerController.res.nondet_32 BoilerController.res.nondet_31 BoilerController.res.nondet_30 BoilerController.res.nondet_29 BoilerController.res.nondet_28 BoilerController.res.nondet_27 BoilerController.res.nondet_26 BoilerController.res.nondet_25 BoilerController.res.abs_73_a_0 BoilerController.res.abs_74_a_0 BoilerController.res.abs_75_a_0 BoilerController.res.abs_76_a_0 BoilerController.res.abs_77_a_0 BoilerController.res.abs_78_a_0 BoilerController.res.abs_79_a_0 BoilerController.res.abs_80_a_0 BoilerController.res.abs_81_a_0 BoilerController.res.abs_82_a_0 BoilerController.res.abs_83_a_0 BoilerController.res.abs_84_a_0 BoilerController.res.abs_85_a_0 BoilerController.res.abs_86_a_0 BoilerController.res.abs_87_a_0 BoilerController.res.abs_88_a_0 BoilerController.res.abs_89_a_0 BoilerController.res.abs_90_a_0 BoilerController.res.abs_91_a_0 BoilerController.res.abs_92_a_0 BoilerController.res.abs_93_a_0 BoilerController.res.abs_94_a_0 BoilerController.res.abs_95_a_0 BoilerController.res.abs_96_a_0 BoilerController.res.inst_2_a_0) (__node_init_LevelOutput_0 BoilerController.impl.usr.op_mode_a_0 BoilerController.res.abs_51_a_0 BoilerController.usr.level_repaired_a_0 BoilerController.res.abs_97_a_0 BoilerController.res.abs_98_a_0 BoilerController.res.inst_1_a_0) (__node_init_SteamOutput_0 BoilerController.impl.usr.op_mode_a_0 BoilerController.res.abs_52_a_0 BoilerController.usr.steam_repaired_a_0 BoilerController.res.abs_99_a_0 BoilerController.res.abs_100_a_0 BoilerController.res.inst_0_a_0) (<= 1 BoilerController.impl.usr.op_mode_a_0 6) (<= 1 BoilerController.res.abs_68_a_0 6) (<= 0 X2 2) (<= 0 BoilerController.res.abs_1_a_0 2) (<= 0 X3 2) (<= 0 BoilerController.res.abs_2_a_0 2) (<= 0 X4 2) (<= 0 BoilerController.res.abs_11_a_0 2) (<= 0 X20 2) (<= 0 BoilerController.res.abs_22_a_0 2) (<= 0 X21 2) (<= 0 BoilerController.res.abs_33_a_0 2) (<= 0 X22 2) (<= 0 BoilerController.res.abs_44_a_0 2) (<= 0 X23 2) (<= 0 BoilerController.res.abs_12_a_0 2) (<= 0 X24 2) (<= 0 BoilerController.res.abs_23_a_0 2) (<= 0 X25 2) (<= 0 BoilerController.res.abs_34_a_0 2) (<= 0 X26 2) (<= 0 BoilerController.res.abs_45_a_0 2) BoilerController.res.init_flag_a_0)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) +(define-fun __node_trans_BoilerController_0 ((BoilerController.usr.stop_a_1 Bool) (BoilerController.usr.steam_boiler_waiting_a_1 Bool) (BoilerController.usr.physical_units_ready_a_1 Bool) (BoilerController.usr.level_a_1 Int) (BoilerController.usr.steam_a_1 Int) (BoilerController.usr.pump_state_0_a_1 Int) (BoilerController.usr.pump_state_1_a_1 Int) (BoilerController.usr.pump_state_2_a_1 Int) (BoilerController.usr.pump_state_3_a_1 Int) (BoilerController.usr.pump_control_state_0_a_1 Bool) (BoilerController.usr.pump_control_state_1_a_1 Bool) (BoilerController.usr.pump_control_state_2_a_1 Bool) (BoilerController.usr.pump_control_state_3_a_1 Bool) (BoilerController.usr.pump_repaired_0_a_1 Bool) (BoilerController.usr.pump_repaired_1_a_1 Bool) (BoilerController.usr.pump_repaired_2_a_1 Bool) (BoilerController.usr.pump_repaired_3_a_1 Bool) (BoilerController.usr.pump_control_repaired_0_a_1 Bool) (BoilerController.usr.pump_control_repaired_1_a_1 Bool) (BoilerController.usr.pump_control_repaired_2_a_1 Bool) (BoilerController.usr.pump_control_repaired_3_a_1 Bool) (BoilerController.usr.level_repaired_a_1 Bool) (BoilerController.usr.steam_repaired_a_1 Bool) (BoilerController.usr.pump_failure_acknowledgement_0_a_1 Bool) (BoilerController.usr.pump_failure_acknowledgement_1_a_1 Bool) (BoilerController.usr.pump_failure_acknowledgement_2_a_1 Bool) (BoilerController.usr.pump_failure_acknowledgement_3_a_1 Bool) (BoilerController.usr.pump_control_failure_acknowledgement_0_a_1 Bool) (BoilerController.usr.pump_control_failure_acknowledgement_1_a_1 Bool) (BoilerController.usr.pump_control_failure_acknowledgement_2_a_1 Bool) (BoilerController.usr.pump_control_failure_acknowledgement_3_a_1 Bool) (BoilerController.usr.level_failure_acknowledgement_a_1 Bool) (BoilerController.usr.steam_failure_acknowledgement_a_1 Bool) (BoilerController.res.nondet_32 Int) (BoilerController.res.nondet_31 Int) (BoilerController.res.nondet_30 Int) (BoilerController.res.nondet_29 Int) (BoilerController.res.nondet_28 Int) (BoilerController.res.nondet_27 Int) (BoilerController.res.nondet_26 Int) (BoilerController.res.nondet_25 Int) (BoilerController.res.nondet_24 Int) (BoilerController.res.nondet_23 Int) (BoilerController.res.nondet_22 Int) (BoilerController.res.nondet_21 Int) (BoilerController.res.nondet_20 Int) (BoilerController.res.nondet_19 Int) (BoilerController.res.nondet_18 Int) (BoilerController.res.nondet_17 Int) (BoilerController.res.nondet_16 Int) (BoilerController.res.nondet_15 Int) (BoilerController.res.nondet_14 Int) (BoilerController.res.nondet_13 Int) (BoilerController.res.nondet_12 Int) (BoilerController.res.nondet_11 Int) (BoilerController.res.nondet_10 Int) (BoilerController.res.nondet_9 Int) (BoilerController.res.nondet_8 Int) (BoilerController.res.nondet_7 Int) (BoilerController.res.nondet_6 Int) (BoilerController.res.nondet_5 Int) (BoilerController.res.nondet_4 Int) (BoilerController.res.nondet_3 Int) (BoilerController.res.nondet_2 Int) (BoilerController.res.nondet_1 Int) (BoilerController.res.nondet_0 Int) (BoilerController.usr.program_ready_a_1 Bool) (BoilerController.usr.mode_a_1 Int) (BoilerController.usr.valve_a_1 Bool) (BoilerController.usr.open_pump_0_a_1 Bool) (BoilerController.usr.open_pump_1_a_1 Bool) (BoilerController.usr.open_pump_2_a_1 Bool) (BoilerController.usr.open_pump_3_a_1 Bool) (BoilerController.usr.close_pump_0_a_1 Bool) (BoilerController.usr.close_pump_1_a_1 Bool) (BoilerController.usr.close_pump_2_a_1 Bool) (BoilerController.usr.close_pump_3_a_1 Bool) (BoilerController.usr.pump_failure_detection_0_a_1 Bool) (BoilerController.usr.pump_failure_detection_1_a_1 Bool) (BoilerController.usr.pump_failure_detection_2_a_1 Bool) (BoilerController.usr.pump_failure_detection_3_a_1 Bool) (BoilerController.usr.pump_control_failure_detection_0_a_1 Bool) (BoilerController.usr.pump_control_failure_detection_1_a_1 Bool) (BoilerController.usr.pump_control_failure_detection_2_a_1 Bool) (BoilerController.usr.pump_control_failure_detection_3_a_1 Bool) (BoilerController.usr.level_failure_detection_a_1 Bool) (BoilerController.usr.steam_outcome_failure_detection_a_1 Bool) (BoilerController.usr.pump_repaired_acknowledgement_0_a_1 Bool) (BoilerController.usr.pump_repaired_acknowledgement_1_a_1 Bool) (BoilerController.usr.pump_repaired_acknowledgement_2_a_1 Bool) (BoilerController.usr.pump_repaired_acknowledgement_3_a_1 Bool) (BoilerController.usr.pump_control_repaired_acknowledgement_0_a_1 Bool) (BoilerController.usr.pump_control_repaired_acknowledgement_1_a_1 Bool) (BoilerController.usr.pump_control_repaired_acknowledgement_2_a_1 Bool) (BoilerController.usr.pump_control_repaired_acknowledgement_3_a_1 Bool) (BoilerController.usr.level_repaired_acknowledgement_a_1 Bool) (BoilerController.usr.steam_outcome_repaired_acknowledgement_a_1 Bool) (BoilerController.res.init_flag_a_1 Bool) (BoilerController.impl.usr.stop_request_a_1 Bool) (BoilerController.impl.usr.op_mode_a_1 Int) (BoilerController.impl.usr.q_a_1 Int) (BoilerController.impl.usr.v_a_1 Int) (BoilerController.impl.usr.valve_state_a_1 Int) (BoilerController.impl.usr.n_pumps_a_1 Int) (BoilerController.impl.usr.pump_status_0_a_1 Int) (BoilerController.impl.usr.pump_status_1_a_1 Int) (BoilerController.impl.usr.pump_status_2_a_1 Int) (BoilerController.impl.usr.pump_status_3_a_1 Int) (BoilerController.impl.usr.pump_defect_0_a_1 Int) (BoilerController.impl.usr.pump_defect_1_a_1 Int) (BoilerController.impl.usr.pump_defect_2_a_1 Int) (BoilerController.impl.usr.pump_defect_3_a_1 Int) (BoilerController.impl.usr.pump_control_defect_0_a_1 Int) (BoilerController.impl.usr.pump_control_defect_1_a_1 Int) (BoilerController.impl.usr.pump_control_defect_2_a_1 Int) (BoilerController.impl.usr.pump_control_defect_3_a_1 Int) (BoilerController.res.abs_0_a_1 Bool) (BoilerController.res.abs_1_a_1 Int) (BoilerController.res.abs_2_a_1 Int) (BoilerController.res.abs_3_a_1 Int) (BoilerController.res.abs_4_a_1 Bool) (BoilerController.res.abs_5_a_1 Bool) (BoilerController.res.abs_6_a_1 Bool) (BoilerController.res.abs_7_a_1 Bool) (BoilerController.res.abs_8_a_1 Int) (BoilerController.res.abs_9_a_1 Int) (BoilerController.res.abs_10_a_1 Bool) (BoilerController.res.abs_11_a_1 Int) (BoilerController.res.abs_12_a_1 Int) (BoilerController.res.abs_13_a_1 Bool) (BoilerController.res.abs_14_a_1 Int) (BoilerController.res.abs_15_a_1 Bool) (BoilerController.res.abs_16_a_1 Bool) (BoilerController.res.abs_17_a_1 Bool) (BoilerController.res.abs_18_a_1 Bool) (BoilerController.res.abs_19_a_1 Int) (BoilerController.res.abs_20_a_1 Int) (BoilerController.res.abs_21_a_1 Bool) (BoilerController.res.abs_22_a_1 Int) (BoilerController.res.abs_23_a_1 Int) (BoilerController.res.abs_24_a_1 Bool) (BoilerController.res.abs_25_a_1 Int) (BoilerController.res.abs_26_a_1 Bool) (BoilerController.res.abs_27_a_1 Bool) (BoilerController.res.abs_28_a_1 Bool) (BoilerController.res.abs_29_a_1 Bool) (BoilerController.res.abs_30_a_1 Int) (BoilerController.res.abs_31_a_1 Int) (BoilerController.res.abs_32_a_1 Bool) (BoilerController.res.abs_33_a_1 Int) (BoilerController.res.abs_34_a_1 Int) (BoilerController.res.abs_35_a_1 Bool) (BoilerController.res.abs_36_a_1 Int) (BoilerController.res.abs_37_a_1 Bool) (BoilerController.res.abs_38_a_1 Bool) (BoilerController.res.abs_39_a_1 Bool) (BoilerController.res.abs_40_a_1 Bool) (BoilerController.res.abs_41_a_1 Int) (BoilerController.res.abs_42_a_1 Int) (BoilerController.res.abs_43_a_1 Bool) (BoilerController.res.abs_44_a_1 Int) (BoilerController.res.abs_45_a_1 Int) (BoilerController.res.abs_46_a_1 Bool) (BoilerController.res.abs_48_a_1 Int) (BoilerController.res.abs_49_a_1 Int) (BoilerController.res.abs_50_a_1 Int) (BoilerController.res.abs_51_a_1 Int) (BoilerController.res.abs_52_a_1 Int) (BoilerController.res.abs_53_a_1 Bool) (BoilerController.res.abs_54_a_1 Bool) (BoilerController.res.abs_55_a_1 Bool) (BoilerController.res.abs_56_a_1 Bool) (BoilerController.res.abs_57_a_1 Int) (BoilerController.res.abs_58_a_1 Int) (BoilerController.res.abs_59_a_1 Int) (BoilerController.res.abs_60_a_1 Int) (BoilerController.res.abs_61_a_1 Int) (BoilerController.res.abs_62_a_1 Int) (BoilerController.res.abs_63_a_1 Int) (BoilerController.res.abs_64_a_1 Int) (BoilerController.res.abs_65_a_1 Int) (BoilerController.res.abs_66_a_1 Int) (BoilerController.res.abs_67_a_1 Int) (BoilerController.res.abs_68_a_1 Int) (BoilerController.res.abs_69_a_1 Bool) (BoilerController.res.abs_70_a_1 Int) (BoilerController.res.abs_71_a_1 Bool) (BoilerController.res.abs_72_a_1 Int) (BoilerController.res.abs_73_a_1 Bool) (BoilerController.res.abs_74_a_1 Bool) (BoilerController.res.abs_75_a_1 Bool) (BoilerController.res.abs_76_a_1 Bool) (BoilerController.res.abs_77_a_1 Bool) (BoilerController.res.abs_78_a_1 Bool) (BoilerController.res.abs_79_a_1 Bool) (BoilerController.res.abs_80_a_1 Bool) (BoilerController.res.abs_81_a_1 Bool) (BoilerController.res.abs_82_a_1 Bool) (BoilerController.res.abs_83_a_1 Bool) (BoilerController.res.abs_84_a_1 Bool) (BoilerController.res.abs_85_a_1 Bool) (BoilerController.res.abs_86_a_1 Bool) (BoilerController.res.abs_87_a_1 Bool) (BoilerController.res.abs_88_a_1 Bool) (BoilerController.res.abs_89_a_1 Bool) (BoilerController.res.abs_90_a_1 Bool) (BoilerController.res.abs_91_a_1 Bool) (BoilerController.res.abs_92_a_1 Bool) (BoilerController.res.abs_93_a_1 Bool) (BoilerController.res.abs_94_a_1 Bool) (BoilerController.res.abs_95_a_1 Bool) (BoilerController.res.abs_96_a_1 Bool) (BoilerController.res.abs_97_a_1 Bool) (BoilerController.res.abs_98_a_1 Bool) (BoilerController.res.abs_99_a_1 Bool) (BoilerController.res.abs_100_a_1 Bool) (BoilerController.res.inst_176_a_1 Bool) (BoilerController.res.inst_175_a_1 Bool) (BoilerController.res.inst_174_a_1 Bool) (BoilerController.res.inst_173_a_1 Bool) (BoilerController.res.inst_172_a_1 Int) (BoilerController.res.inst_171_a_1 Bool) (BoilerController.res.inst_170_a_1 Bool) (BoilerController.res.inst_169_a_1 Bool) (BoilerController.res.inst_168_a_1 Bool) (BoilerController.res.inst_167_a_1 Bool) (BoilerController.res.inst_166_a_1 Bool) (BoilerController.res.inst_165_a_1 Bool) (BoilerController.res.inst_164_a_1 Bool) (BoilerController.res.inst_163_a_1 Bool) (BoilerController.res.inst_162_a_1 Bool) (BoilerController.res.inst_161_a_1 Bool) (BoilerController.res.inst_160_a_1 Bool) (BoilerController.res.inst_159_a_1 Bool) (BoilerController.res.inst_158_a_1 Bool) (BoilerController.res.inst_157_a_1 Bool) (BoilerController.res.inst_156_a_1 Bool) (BoilerController.res.inst_155_a_1 Bool) (BoilerController.res.inst_154_a_1 Bool) (BoilerController.res.inst_153_a_1 Bool) (BoilerController.res.inst_152_a_1 Bool) (BoilerController.res.inst_151_a_1 Bool) (BoilerController.res.inst_150_a_1 Bool) (BoilerController.res.inst_149_a_1 Bool) (BoilerController.res.inst_148_a_1 Bool) (BoilerController.res.inst_147_a_1 Bool) (BoilerController.res.inst_146_a_1 Bool) (BoilerController.res.inst_145_a_1 Bool) (BoilerController.res.inst_144_a_1 Bool) (BoilerController.res.inst_143_a_1 Bool) (BoilerController.res.inst_142_a_1 Bool) (BoilerController.res.inst_141_a_1 Bool) (BoilerController.res.inst_140_a_1 Bool) (BoilerController.res.inst_139_a_1 Bool) (BoilerController.res.inst_138_a_1 Bool) (BoilerController.res.inst_137_a_1 Bool) (BoilerController.res.inst_136_a_1 Bool) (BoilerController.res.inst_135_a_1 Bool) (BoilerController.res.inst_134_a_1 Bool) (BoilerController.res.inst_133_a_1 Bool) (BoilerController.res.inst_132_a_1 Bool) (BoilerController.res.inst_131_a_1 Bool) (BoilerController.res.inst_130_a_1 Bool) (BoilerController.res.inst_129_a_1 Bool) (BoilerController.res.inst_128_a_1 Bool) (BoilerController.res.inst_127_a_1 Bool) (BoilerController.res.inst_126_a_1 Bool) (BoilerController.res.inst_125_a_1 Bool) (BoilerController.res.inst_124_a_1 Bool) (BoilerController.res.inst_123_a_1 Bool) (BoilerController.res.inst_122_a_1 Bool) (BoilerController.res.inst_121_a_1 Bool) (BoilerController.res.inst_120_a_1 Int) (BoilerController.res.inst_119_a_1 Bool) (BoilerController.res.inst_118_a_1 Bool) (BoilerController.res.inst_117_a_1 Int) (BoilerController.res.inst_116_a_1 Int) (BoilerController.res.inst_115_a_1 Bool) (BoilerController.res.inst_114_a_1 Bool) (BoilerController.res.inst_113_a_1 Bool) (BoilerController.res.inst_112_a_1 Bool) (BoilerController.res.inst_111_a_1 Int) (BoilerController.res.inst_110_a_1 Int) (BoilerController.res.inst_109_a_1 Bool) (BoilerController.res.inst_108_a_1 Bool) (BoilerController.res.inst_107_a_1 Bool) (BoilerController.res.inst_106_a_1 Bool) (BoilerController.res.inst_105_a_1 Bool) (BoilerController.res.inst_104_a_1 Bool) (BoilerController.res.inst_103_a_1 Bool) (BoilerController.res.inst_102_a_1 Bool) (BoilerController.res.inst_101_a_1 Int) (BoilerController.res.inst_100_a_1 Int) (BoilerController.res.inst_99_a_1 Int) (BoilerController.res.inst_98_a_1 Int) (BoilerController.res.inst_97_a_1 Bool) (BoilerController.res.inst_96_a_1 Bool) (BoilerController.res.inst_95_a_1 Bool) (BoilerController.res.inst_94_a_1 Bool) (BoilerController.res.inst_93_a_1 Int) (BoilerController.res.inst_92_a_1 Int) (BoilerController.res.inst_91_a_1 Int) (BoilerController.res.inst_90_a_1 Int) (BoilerController.res.inst_89_a_1 Int) (BoilerController.res.inst_88_a_1 Int) (BoilerController.res.inst_87_a_1 Int) (BoilerController.res.inst_86_a_1 Int) (BoilerController.res.inst_85_a_1 Int) (BoilerController.res.inst_84_a_1 Int) (BoilerController.res.inst_83_a_1 Bool) (BoilerController.res.inst_82_a_1 Bool) (BoilerController.res.inst_81_a_1 Bool) (BoilerController.res.inst_80_a_1 Bool) (BoilerController.res.inst_79_a_1 Int) (BoilerController.res.inst_78_a_1 Int) (BoilerController.res.inst_77_a_1 Int) (BoilerController.res.inst_76_a_1 Int) (BoilerController.res.inst_75_a_1 Bool) (BoilerController.res.inst_74_a_1 Int) (BoilerController.res.inst_73_a_1 Bool) (BoilerController.res.inst_72_a_1 Int) (BoilerController.res.inst_71_a_1 Bool) (BoilerController.res.inst_70_a_1 Int) (BoilerController.res.inst_69_a_1 Bool) (BoilerController.res.inst_68_a_1 Int) (BoilerController.res.inst_67_a_1 Bool) (BoilerController.res.inst_66_a_1 Int) (BoilerController.res.inst_65_a_1 Bool) (BoilerController.res.inst_64_a_1 Int) (BoilerController.res.inst_63_a_1 Bool) (BoilerController.res.inst_62_a_1 Int) (BoilerController.res.inst_61_a_1 Bool) (BoilerController.res.inst_60_a_1 Int) (BoilerController.res.inst_59_a_1 Bool) (BoilerController.res.inst_58_a_1 Bool) (BoilerController.res.inst_57_a_1 Bool) (BoilerController.res.inst_56_a_1 Bool) (BoilerController.res.inst_55_a_1 Bool) (BoilerController.res.inst_54_a_1 Bool) (BoilerController.res.inst_53_a_1 Bool) (BoilerController.res.inst_52_a_1 Bool) (BoilerController.res.inst_51_a_1 Bool) (BoilerController.res.inst_50_a_1 Bool) (BoilerController.res.inst_49_a_1 Bool) (BoilerController.res.inst_48_a_1 Bool) (BoilerController.res.inst_47_a_1 Int) (BoilerController.res.inst_46_a_1 Bool) (BoilerController.res.inst_45_a_1 Bool) (BoilerController.res.inst_44_a_1 Bool) (BoilerController.res.inst_43_a_1 Bool) (BoilerController.res.inst_42_a_1 Bool) (BoilerController.res.inst_41_a_1 Bool) (BoilerController.res.inst_40_a_1 Bool) (BoilerController.res.inst_39_a_1 Bool) (BoilerController.res.inst_38_a_1 Bool) (BoilerController.res.inst_37_a_1 Bool) (BoilerController.res.inst_36_a_1 Bool) (BoilerController.res.inst_35_a_1 Int) (BoilerController.res.inst_34_a_1 Int) (BoilerController.res.inst_33_a_1 Int) (BoilerController.res.inst_32_a_1 Int) (BoilerController.res.inst_31_a_1 Bool) (BoilerController.res.inst_30_a_1 Bool) (BoilerController.res.inst_29_a_1 Bool) (BoilerController.res.inst_28_a_1 Bool) (BoilerController.res.inst_27_a_1 Bool) (BoilerController.res.inst_26_a_1 Bool) (BoilerController.res.inst_25_a_1 Bool) (BoilerController.res.inst_24_a_1 Bool) (BoilerController.res.inst_23_a_1 Bool) (BoilerController.res.inst_22_a_1 Int) (BoilerController.res.inst_21_a_1 Int) (BoilerController.res.inst_20_a_1 Int) (BoilerController.res.inst_19_a_1 Int) (BoilerController.res.inst_18_a_1 Bool) (BoilerController.res.inst_17_a_1 Bool) (BoilerController.res.inst_16_a_1 Bool) (BoilerController.res.inst_15_a_1 Bool) (BoilerController.res.inst_14_a_1 Bool) (BoilerController.res.inst_13_a_1 Bool) (BoilerController.res.inst_12_a_1 Bool) (BoilerController.res.inst_11_a_1 Bool) (BoilerController.res.inst_10_a_1 Bool) (BoilerController.res.inst_9_a_1 Int) (BoilerController.res.inst_8_a_1 Int) (BoilerController.res.inst_7_a_1 Int) (BoilerController.res.inst_6_a_1 Int) (BoilerController.res.inst_5_a_1 Bool) (BoilerController.res.inst_4_a_1 Bool) (BoilerController.res.inst_3_a_1 Bool) (BoilerController.res.inst_2_a_1 Bool) (BoilerController.res.inst_1_a_1 Bool) (BoilerController.res.inst_0_a_1 Bool) (BoilerController.usr.stop_a_0 Bool) (BoilerController.usr.steam_boiler_waiting_a_0 Bool) (BoilerController.usr.physical_units_ready_a_0 Bool) (BoilerController.usr.level_a_0 Int) (BoilerController.usr.steam_a_0 Int) (BoilerController.usr.pump_state_0_a_0 Int) (BoilerController.usr.pump_state_1_a_0 Int) (BoilerController.usr.pump_state_2_a_0 Int) (BoilerController.usr.pump_state_3_a_0 Int) (BoilerController.usr.pump_control_state_0_a_0 Bool) (BoilerController.usr.pump_control_state_1_a_0 Bool) (BoilerController.usr.pump_control_state_2_a_0 Bool) (BoilerController.usr.pump_control_state_3_a_0 Bool) (BoilerController.usr.pump_repaired_0_a_0 Bool) (BoilerController.usr.pump_repaired_1_a_0 Bool) (BoilerController.usr.pump_repaired_2_a_0 Bool) (BoilerController.usr.pump_repaired_3_a_0 Bool) (BoilerController.usr.pump_control_repaired_0_a_0 Bool) (BoilerController.usr.pump_control_repaired_1_a_0 Bool) (BoilerController.usr.pump_control_repaired_2_a_0 Bool) (BoilerController.usr.pump_control_repaired_3_a_0 Bool) (BoilerController.usr.level_repaired_a_0 Bool) (BoilerController.usr.steam_repaired_a_0 Bool) (BoilerController.usr.pump_failure_acknowledgement_0_a_0 Bool) (BoilerController.usr.pump_failure_acknowledgement_1_a_0 Bool) (BoilerController.usr.pump_failure_acknowledgement_2_a_0 Bool) (BoilerController.usr.pump_failure_acknowledgement_3_a_0 Bool) (BoilerController.usr.pump_control_failure_acknowledgement_0_a_0 Bool) (BoilerController.usr.pump_control_failure_acknowledgement_1_a_0 Bool) (BoilerController.usr.pump_control_failure_acknowledgement_2_a_0 Bool) (BoilerController.usr.pump_control_failure_acknowledgement_3_a_0 Bool) (BoilerController.usr.level_failure_acknowledgement_a_0 Bool) (BoilerController.usr.steam_failure_acknowledgement_a_0 Bool) (BoilerController.usr.program_ready_a_0 Bool) (BoilerController.usr.mode_a_0 Int) (BoilerController.usr.valve_a_0 Bool) (BoilerController.usr.open_pump_0_a_0 Bool) (BoilerController.usr.open_pump_1_a_0 Bool) (BoilerController.usr.open_pump_2_a_0 Bool) (BoilerController.usr.open_pump_3_a_0 Bool) (BoilerController.usr.close_pump_0_a_0 Bool) (BoilerController.usr.close_pump_1_a_0 Bool) (BoilerController.usr.close_pump_2_a_0 Bool) (BoilerController.usr.close_pump_3_a_0 Bool) (BoilerController.usr.pump_failure_detection_0_a_0 Bool) (BoilerController.usr.pump_failure_detection_1_a_0 Bool) (BoilerController.usr.pump_failure_detection_2_a_0 Bool) (BoilerController.usr.pump_failure_detection_3_a_0 Bool) (BoilerController.usr.pump_control_failure_detection_0_a_0 Bool) (BoilerController.usr.pump_control_failure_detection_1_a_0 Bool) (BoilerController.usr.pump_control_failure_detection_2_a_0 Bool) (BoilerController.usr.pump_control_failure_detection_3_a_0 Bool) (BoilerController.usr.level_failure_detection_a_0 Bool) (BoilerController.usr.steam_outcome_failure_detection_a_0 Bool) (BoilerController.usr.pump_repaired_acknowledgement_0_a_0 Bool) (BoilerController.usr.pump_repaired_acknowledgement_1_a_0 Bool) (BoilerController.usr.pump_repaired_acknowledgement_2_a_0 Bool) (BoilerController.usr.pump_repaired_acknowledgement_3_a_0 Bool) (BoilerController.usr.pump_control_repaired_acknowledgement_0_a_0 Bool) (BoilerController.usr.pump_control_repaired_acknowledgement_1_a_0 Bool) (BoilerController.usr.pump_control_repaired_acknowledgement_2_a_0 Bool) (BoilerController.usr.pump_control_repaired_acknowledgement_3_a_0 Bool) (BoilerController.usr.level_repaired_acknowledgement_a_0 Bool) (BoilerController.usr.steam_outcome_repaired_acknowledgement_a_0 Bool) (BoilerController.res.init_flag_a_0 Bool) (BoilerController.impl.usr.stop_request_a_0 Bool) (BoilerController.impl.usr.op_mode_a_0 Int) (BoilerController.impl.usr.q_a_0 Int) (BoilerController.impl.usr.v_a_0 Int) (BoilerController.impl.usr.valve_state_a_0 Int) (BoilerController.impl.usr.n_pumps_a_0 Int) (BoilerController.impl.usr.pump_status_0_a_0 Int) (BoilerController.impl.usr.pump_status_1_a_0 Int) (BoilerController.impl.usr.pump_status_2_a_0 Int) (BoilerController.impl.usr.pump_status_3_a_0 Int) (BoilerController.impl.usr.pump_defect_0_a_0 Int) (BoilerController.impl.usr.pump_defect_1_a_0 Int) (BoilerController.impl.usr.pump_defect_2_a_0 Int) (BoilerController.impl.usr.pump_defect_3_a_0 Int) (BoilerController.impl.usr.pump_control_defect_0_a_0 Int) (BoilerController.impl.usr.pump_control_defect_1_a_0 Int) (BoilerController.impl.usr.pump_control_defect_2_a_0 Int) (BoilerController.impl.usr.pump_control_defect_3_a_0 Int) (BoilerController.res.abs_0_a_0 Bool) (BoilerController.res.abs_1_a_0 Int) (BoilerController.res.abs_2_a_0 Int) (BoilerController.res.abs_3_a_0 Int) (BoilerController.res.abs_4_a_0 Bool) (BoilerController.res.abs_5_a_0 Bool) (BoilerController.res.abs_6_a_0 Bool) (BoilerController.res.abs_7_a_0 Bool) (BoilerController.res.abs_8_a_0 Int) (BoilerController.res.abs_9_a_0 Int) (BoilerController.res.abs_10_a_0 Bool) (BoilerController.res.abs_11_a_0 Int) (BoilerController.res.abs_12_a_0 Int) (BoilerController.res.abs_13_a_0 Bool) (BoilerController.res.abs_14_a_0 Int) (BoilerController.res.abs_15_a_0 Bool) (BoilerController.res.abs_16_a_0 Bool) (BoilerController.res.abs_17_a_0 Bool) (BoilerController.res.abs_18_a_0 Bool) (BoilerController.res.abs_19_a_0 Int) (BoilerController.res.abs_20_a_0 Int) (BoilerController.res.abs_21_a_0 Bool) (BoilerController.res.abs_22_a_0 Int) (BoilerController.res.abs_23_a_0 Int) (BoilerController.res.abs_24_a_0 Bool) (BoilerController.res.abs_25_a_0 Int) (BoilerController.res.abs_26_a_0 Bool) (BoilerController.res.abs_27_a_0 Bool) (BoilerController.res.abs_28_a_0 Bool) (BoilerController.res.abs_29_a_0 Bool) (BoilerController.res.abs_30_a_0 Int) (BoilerController.res.abs_31_a_0 Int) (BoilerController.res.abs_32_a_0 Bool) (BoilerController.res.abs_33_a_0 Int) (BoilerController.res.abs_34_a_0 Int) (BoilerController.res.abs_35_a_0 Bool) (BoilerController.res.abs_36_a_0 Int) (BoilerController.res.abs_37_a_0 Bool) (BoilerController.res.abs_38_a_0 Bool) (BoilerController.res.abs_39_a_0 Bool) (BoilerController.res.abs_40_a_0 Bool) (BoilerController.res.abs_41_a_0 Int) (BoilerController.res.abs_42_a_0 Int) (BoilerController.res.abs_43_a_0 Bool) (BoilerController.res.abs_44_a_0 Int) (BoilerController.res.abs_45_a_0 Int) (BoilerController.res.abs_46_a_0 Bool) (BoilerController.res.abs_48_a_0 Int) (BoilerController.res.abs_49_a_0 Int) (BoilerController.res.abs_50_a_0 Int) (BoilerController.res.abs_51_a_0 Int) (BoilerController.res.abs_52_a_0 Int) (BoilerController.res.abs_53_a_0 Bool) (BoilerController.res.abs_54_a_0 Bool) (BoilerController.res.abs_55_a_0 Bool) (BoilerController.res.abs_56_a_0 Bool) (BoilerController.res.abs_57_a_0 Int) (BoilerController.res.abs_58_a_0 Int) (BoilerController.res.abs_59_a_0 Int) (BoilerController.res.abs_60_a_0 Int) (BoilerController.res.abs_61_a_0 Int) (BoilerController.res.abs_62_a_0 Int) (BoilerController.res.abs_63_a_0 Int) (BoilerController.res.abs_64_a_0 Int) (BoilerController.res.abs_65_a_0 Int) (BoilerController.res.abs_66_a_0 Int) (BoilerController.res.abs_67_a_0 Int) (BoilerController.res.abs_68_a_0 Int) (BoilerController.res.abs_69_a_0 Bool) (BoilerController.res.abs_70_a_0 Int) (BoilerController.res.abs_71_a_0 Bool) (BoilerController.res.abs_72_a_0 Int) (BoilerController.res.abs_73_a_0 Bool) (BoilerController.res.abs_74_a_0 Bool) (BoilerController.res.abs_75_a_0 Bool) (BoilerController.res.abs_76_a_0 Bool) (BoilerController.res.abs_77_a_0 Bool) (BoilerController.res.abs_78_a_0 Bool) (BoilerController.res.abs_79_a_0 Bool) (BoilerController.res.abs_80_a_0 Bool) (BoilerController.res.abs_81_a_0 Bool) (BoilerController.res.abs_82_a_0 Bool) (BoilerController.res.abs_83_a_0 Bool) (BoilerController.res.abs_84_a_0 Bool) (BoilerController.res.abs_85_a_0 Bool) (BoilerController.res.abs_86_a_0 Bool) (BoilerController.res.abs_87_a_0 Bool) (BoilerController.res.abs_88_a_0 Bool) (BoilerController.res.abs_89_a_0 Bool) (BoilerController.res.abs_90_a_0 Bool) (BoilerController.res.abs_91_a_0 Bool) (BoilerController.res.abs_92_a_0 Bool) (BoilerController.res.abs_93_a_0 Bool) (BoilerController.res.abs_94_a_0 Bool) (BoilerController.res.abs_95_a_0 Bool) (BoilerController.res.abs_96_a_0 Bool) (BoilerController.res.abs_97_a_0 Bool) (BoilerController.res.abs_98_a_0 Bool) (BoilerController.res.abs_99_a_0 Bool) (BoilerController.res.abs_100_a_0 Bool) (BoilerController.res.inst_176_a_0 Bool) (BoilerController.res.inst_175_a_0 Bool) (BoilerController.res.inst_174_a_0 Bool) (BoilerController.res.inst_173_a_0 Bool) (BoilerController.res.inst_172_a_0 Int) (BoilerController.res.inst_171_a_0 Bool) (BoilerController.res.inst_170_a_0 Bool) (BoilerController.res.inst_169_a_0 Bool) (BoilerController.res.inst_168_a_0 Bool) (BoilerController.res.inst_167_a_0 Bool) (BoilerController.res.inst_166_a_0 Bool) (BoilerController.res.inst_165_a_0 Bool) (BoilerController.res.inst_164_a_0 Bool) (BoilerController.res.inst_163_a_0 Bool) (BoilerController.res.inst_162_a_0 Bool) (BoilerController.res.inst_161_a_0 Bool) (BoilerController.res.inst_160_a_0 Bool) (BoilerController.res.inst_159_a_0 Bool) (BoilerController.res.inst_158_a_0 Bool) (BoilerController.res.inst_157_a_0 Bool) (BoilerController.res.inst_156_a_0 Bool) (BoilerController.res.inst_155_a_0 Bool) (BoilerController.res.inst_154_a_0 Bool) (BoilerController.res.inst_153_a_0 Bool) (BoilerController.res.inst_152_a_0 Bool) (BoilerController.res.inst_151_a_0 Bool) (BoilerController.res.inst_150_a_0 Bool) (BoilerController.res.inst_149_a_0 Bool) (BoilerController.res.inst_148_a_0 Bool) (BoilerController.res.inst_147_a_0 Bool) (BoilerController.res.inst_146_a_0 Bool) (BoilerController.res.inst_145_a_0 Bool) (BoilerController.res.inst_144_a_0 Bool) (BoilerController.res.inst_143_a_0 Bool) (BoilerController.res.inst_142_a_0 Bool) (BoilerController.res.inst_141_a_0 Bool) (BoilerController.res.inst_140_a_0 Bool) (BoilerController.res.inst_139_a_0 Bool) (BoilerController.res.inst_138_a_0 Bool) (BoilerController.res.inst_137_a_0 Bool) (BoilerController.res.inst_136_a_0 Bool) (BoilerController.res.inst_135_a_0 Bool) (BoilerController.res.inst_134_a_0 Bool) (BoilerController.res.inst_133_a_0 Bool) (BoilerController.res.inst_132_a_0 Bool) (BoilerController.res.inst_131_a_0 Bool) (BoilerController.res.inst_130_a_0 Bool) (BoilerController.res.inst_129_a_0 Bool) (BoilerController.res.inst_128_a_0 Bool) (BoilerController.res.inst_127_a_0 Bool) (BoilerController.res.inst_126_a_0 Bool) (BoilerController.res.inst_125_a_0 Bool) (BoilerController.res.inst_124_a_0 Bool) (BoilerController.res.inst_123_a_0 Bool) (BoilerController.res.inst_122_a_0 Bool) (BoilerController.res.inst_121_a_0 Bool) (BoilerController.res.inst_120_a_0 Int) (BoilerController.res.inst_119_a_0 Bool) (BoilerController.res.inst_118_a_0 Bool) (BoilerController.res.inst_117_a_0 Int) (BoilerController.res.inst_116_a_0 Int) (BoilerController.res.inst_115_a_0 Bool) (BoilerController.res.inst_114_a_0 Bool) (BoilerController.res.inst_113_a_0 Bool) (BoilerController.res.inst_112_a_0 Bool) (BoilerController.res.inst_111_a_0 Int) (BoilerController.res.inst_110_a_0 Int) (BoilerController.res.inst_109_a_0 Bool) (BoilerController.res.inst_108_a_0 Bool) (BoilerController.res.inst_107_a_0 Bool) (BoilerController.res.inst_106_a_0 Bool) (BoilerController.res.inst_105_a_0 Bool) (BoilerController.res.inst_104_a_0 Bool) (BoilerController.res.inst_103_a_0 Bool) (BoilerController.res.inst_102_a_0 Bool) (BoilerController.res.inst_101_a_0 Int) (BoilerController.res.inst_100_a_0 Int) (BoilerController.res.inst_99_a_0 Int) (BoilerController.res.inst_98_a_0 Int) (BoilerController.res.inst_97_a_0 Bool) (BoilerController.res.inst_96_a_0 Bool) (BoilerController.res.inst_95_a_0 Bool) (BoilerController.res.inst_94_a_0 Bool) (BoilerController.res.inst_93_a_0 Int) (BoilerController.res.inst_92_a_0 Int) (BoilerController.res.inst_91_a_0 Int) (BoilerController.res.inst_90_a_0 Int) (BoilerController.res.inst_89_a_0 Int) (BoilerController.res.inst_88_a_0 Int) (BoilerController.res.inst_87_a_0 Int) (BoilerController.res.inst_86_a_0 Int) (BoilerController.res.inst_85_a_0 Int) (BoilerController.res.inst_84_a_0 Int) (BoilerController.res.inst_83_a_0 Bool) (BoilerController.res.inst_82_a_0 Bool) (BoilerController.res.inst_81_a_0 Bool) (BoilerController.res.inst_80_a_0 Bool) (BoilerController.res.inst_79_a_0 Int) (BoilerController.res.inst_78_a_0 Int) (BoilerController.res.inst_77_a_0 Int) (BoilerController.res.inst_76_a_0 Int) (BoilerController.res.inst_75_a_0 Bool) (BoilerController.res.inst_74_a_0 Int) (BoilerController.res.inst_73_a_0 Bool) (BoilerController.res.inst_72_a_0 Int) (BoilerController.res.inst_71_a_0 Bool) (BoilerController.res.inst_70_a_0 Int) (BoilerController.res.inst_69_a_0 Bool) (BoilerController.res.inst_68_a_0 Int) (BoilerController.res.inst_67_a_0 Bool) (BoilerController.res.inst_66_a_0 Int) (BoilerController.res.inst_65_a_0 Bool) (BoilerController.res.inst_64_a_0 Int) (BoilerController.res.inst_63_a_0 Bool) (BoilerController.res.inst_62_a_0 Int) (BoilerController.res.inst_61_a_0 Bool) (BoilerController.res.inst_60_a_0 Int) (BoilerController.res.inst_59_a_0 Bool) (BoilerController.res.inst_58_a_0 Bool) (BoilerController.res.inst_57_a_0 Bool) (BoilerController.res.inst_56_a_0 Bool) (BoilerController.res.inst_55_a_0 Bool) (BoilerController.res.inst_54_a_0 Bool) (BoilerController.res.inst_53_a_0 Bool) (BoilerController.res.inst_52_a_0 Bool) (BoilerController.res.inst_51_a_0 Bool) (BoilerController.res.inst_50_a_0 Bool) (BoilerController.res.inst_49_a_0 Bool) (BoilerController.res.inst_48_a_0 Bool) (BoilerController.res.inst_47_a_0 Int) (BoilerController.res.inst_46_a_0 Bool) (BoilerController.res.inst_45_a_0 Bool) (BoilerController.res.inst_44_a_0 Bool) (BoilerController.res.inst_43_a_0 Bool) (BoilerController.res.inst_42_a_0 Bool) (BoilerController.res.inst_41_a_0 Bool) (BoilerController.res.inst_40_a_0 Bool) (BoilerController.res.inst_39_a_0 Bool) (BoilerController.res.inst_38_a_0 Bool) (BoilerController.res.inst_37_a_0 Bool) (BoilerController.res.inst_36_a_0 Bool) (BoilerController.res.inst_35_a_0 Int) (BoilerController.res.inst_34_a_0 Int) (BoilerController.res.inst_33_a_0 Int) (BoilerController.res.inst_32_a_0 Int) (BoilerController.res.inst_31_a_0 Bool) (BoilerController.res.inst_30_a_0 Bool) (BoilerController.res.inst_29_a_0 Bool) (BoilerController.res.inst_28_a_0 Bool) (BoilerController.res.inst_27_a_0 Bool) (BoilerController.res.inst_26_a_0 Bool) (BoilerController.res.inst_25_a_0 Bool) (BoilerController.res.inst_24_a_0 Bool) (BoilerController.res.inst_23_a_0 Bool) (BoilerController.res.inst_22_a_0 Int) (BoilerController.res.inst_21_a_0 Int) (BoilerController.res.inst_20_a_0 Int) (BoilerController.res.inst_19_a_0 Int) (BoilerController.res.inst_18_a_0 Bool) (BoilerController.res.inst_17_a_0 Bool) (BoilerController.res.inst_16_a_0 Bool) (BoilerController.res.inst_15_a_0 Bool) (BoilerController.res.inst_14_a_0 Bool) (BoilerController.res.inst_13_a_0 Bool) (BoilerController.res.inst_12_a_0 Bool) (BoilerController.res.inst_11_a_0 Bool) (BoilerController.res.inst_10_a_0 Bool) (BoilerController.res.inst_9_a_0 Int) (BoilerController.res.inst_8_a_0 Int) (BoilerController.res.inst_7_a_0 Int) (BoilerController.res.inst_6_a_0 Int) (BoilerController.res.inst_5_a_0 Bool) (BoilerController.res.inst_4_a_0 Bool) (BoilerController.res.inst_3_a_0 Bool) (BoilerController.res.inst_2_a_0 Bool) (BoilerController.res.inst_1_a_0 Bool) (BoilerController.res.inst_0_a_0 Bool)) Bool + (and (= BoilerController.res.abs_43_a_1 BoilerController.usr.pump_control_state_3_a_1) (= BoilerController.res.abs_42_a_1 BoilerController.usr.pump_state_3_a_1) (= BoilerController.res.abs_41_a_1 BoilerController.impl.usr.pump_status_3_a_0) (let ((X1 BoilerController.res.abs_46_a_1)) (let ((X2 X1)) (and (= BoilerController.res.abs_56_a_1 X2) (= BoilerController.res.abs_32_a_1 BoilerController.usr.pump_control_state_2_a_1) (= BoilerController.res.abs_31_a_1 BoilerController.usr.pump_state_2_a_1) (= BoilerController.res.abs_30_a_1 BoilerController.impl.usr.pump_status_2_a_0) (let ((X3 BoilerController.res.abs_35_a_1)) (let ((X4 X3)) (and (= BoilerController.res.abs_55_a_1 X4) (= BoilerController.res.abs_21_a_1 BoilerController.usr.pump_control_state_1_a_1) (= BoilerController.res.abs_20_a_1 BoilerController.usr.pump_state_1_a_1) (= BoilerController.res.abs_19_a_1 BoilerController.impl.usr.pump_status_1_a_0) (let ((X5 BoilerController.res.abs_24_a_1)) (let ((X6 X5)) (and (= BoilerController.res.abs_54_a_1 X6) (= BoilerController.res.abs_10_a_1 BoilerController.usr.pump_control_state_0_a_1) (= BoilerController.res.abs_9_a_1 BoilerController.usr.pump_state_0_a_1) (= BoilerController.res.abs_8_a_1 BoilerController.impl.usr.pump_status_0_a_0) (let ((X7 BoilerController.res.abs_13_a_1)) (let ((X8 X7)) (and (= BoilerController.res.abs_53_a_1 X8) (let ((X9 BoilerController.res.abs_1_a_1)) (and (= BoilerController.res.abs_51_a_1 X9) (= BoilerController.res.abs_50_a_1 BoilerController.usr.steam_a_1) (= BoilerController.res.abs_49_a_1 BoilerController.usr.level_a_1) (= BoilerController.res.abs_48_a_1 BoilerController.impl.usr.valve_state_a_0) (let ((X10 BoilerController.res.abs_2_a_1)) (and (= BoilerController.res.abs_52_a_1 X10) (= BoilerController.res.abs_40_a_1 BoilerController.usr.pump_control_repaired_3_a_1) (= BoilerController.res.abs_39_a_1 BoilerController.usr.pump_control_failure_acknowledgement_3_a_1) (= BoilerController.res.abs_38_a_1 BoilerController.usr.pump_repaired_3_a_1) (= BoilerController.res.abs_37_a_1 BoilerController.usr.pump_failure_acknowledgement_3_a_1) (= BoilerController.res.abs_29_a_1 BoilerController.usr.pump_control_repaired_2_a_1) (= BoilerController.res.abs_28_a_1 BoilerController.usr.pump_control_failure_acknowledgement_2_a_1) (= BoilerController.res.abs_27_a_1 BoilerController.usr.pump_repaired_2_a_1) (= BoilerController.res.abs_26_a_1 BoilerController.usr.pump_failure_acknowledgement_2_a_1) (= BoilerController.res.abs_18_a_1 BoilerController.usr.pump_control_repaired_1_a_1) (= BoilerController.res.abs_17_a_1 BoilerController.usr.pump_control_failure_acknowledgement_1_a_1) (= BoilerController.res.abs_16_a_1 BoilerController.usr.pump_repaired_1_a_1) (= BoilerController.res.abs_15_a_1 BoilerController.usr.pump_failure_acknowledgement_1_a_1) (= BoilerController.res.abs_7_a_1 BoilerController.usr.pump_control_repaired_0_a_1) (= BoilerController.res.abs_6_a_1 BoilerController.usr.pump_control_failure_acknowledgement_0_a_1) (= BoilerController.res.abs_5_a_1 BoilerController.usr.pump_repaired_0_a_1) (= BoilerController.res.abs_4_a_1 BoilerController.usr.pump_failure_acknowledgement_0_a_1) (let ((X11 BoilerController.res.abs_57_a_1)) (let ((X12 BoilerController.res.abs_45_a_1)) (let ((X13 BoilerController.res.abs_34_a_1)) (let ((X14 BoilerController.res.abs_23_a_1)) (let ((X15 BoilerController.res.abs_44_a_1)) (let ((X16 BoilerController.res.abs_33_a_1)) (let ((X17 BoilerController.res.abs_22_a_1)) (let ((X18 BoilerController.res.abs_12_a_1)) (let ((X19 BoilerController.res.abs_11_a_1)) (and (= BoilerController.impl.usr.pump_control_defect_3_a_1 X12) (= BoilerController.impl.usr.pump_control_defect_2_a_1 X13) (= BoilerController.impl.usr.pump_control_defect_1_a_1 X14) (= BoilerController.impl.usr.pump_control_defect_0_a_1 X18) (= BoilerController.impl.usr.pump_defect_3_a_1 X15) (= BoilerController.impl.usr.pump_defect_2_a_1 X16) (= BoilerController.impl.usr.pump_defect_1_a_1 X17) (= BoilerController.impl.usr.pump_defect_0_a_1 X19) (= BoilerController.impl.usr.q_a_1 X11) (= BoilerController.impl.usr.stop_request_a_1 BoilerController.res.abs_0_a_1) (= BoilerController.impl.usr.op_mode_a_1 BoilerController.res.abs_68_a_1) (let ((X20 BoilerController.res.abs_69_a_1)) (and (= BoilerController.usr.valve_a_1 X20) (let ((X21 BoilerController.res.abs_71_a_1)) (and (= BoilerController.usr.program_ready_a_1 X21) (let ((X22 BoilerController.res.abs_58_a_1)) (and (= BoilerController.impl.usr.v_a_1 X22) (= BoilerController.impl.usr.n_pumps_a_1 BoilerController.res.abs_63_a_1) (let ((X23 BoilerController.res.abs_64_a_1)) (and (= BoilerController.impl.usr.pump_status_0_a_1 X23) (let ((X24 BoilerController.res.abs_70_a_1)) (and (= BoilerController.impl.usr.valve_state_a_1 X24) (let ((X25 BoilerController.res.abs_65_a_1)) (and (= BoilerController.impl.usr.pump_status_1_a_1 X25) (let ((X26 BoilerController.res.abs_66_a_1)) (and (= BoilerController.impl.usr.pump_status_2_a_1 X26) (let ((X27 BoilerController.res.abs_67_a_1)) (and (= BoilerController.impl.usr.pump_status_3_a_1 X27) (let ((X28 BoilerController.res.abs_72_a_1)) (and (= BoilerController.usr.mode_a_1 X28) (= BoilerController.res.abs_3_a_1 BoilerController.impl.usr.pump_status_0_a_1) (let ((X29 BoilerController.res.abs_73_a_1)) (and (= BoilerController.usr.open_pump_0_a_1 X29) (= BoilerController.res.abs_14_a_1 BoilerController.impl.usr.pump_status_1_a_1) (= BoilerController.res.abs_25_a_1 BoilerController.impl.usr.pump_status_2_a_1) (= BoilerController.res.abs_36_a_1 BoilerController.impl.usr.pump_status_3_a_1) (let ((X30 BoilerController.res.abs_74_a_1)) (and (= BoilerController.usr.open_pump_1_a_1 X30) (let ((X31 BoilerController.res.abs_75_a_1)) (and (= BoilerController.usr.open_pump_2_a_1 X31) (let ((X32 BoilerController.res.abs_76_a_1)) (and (= BoilerController.usr.open_pump_3_a_1 X32) (let ((X33 BoilerController.res.abs_77_a_1)) (and (= BoilerController.usr.close_pump_0_a_1 X33) (let ((X34 BoilerController.res.abs_78_a_1)) (and (= BoilerController.usr.close_pump_1_a_1 X34) (let ((X35 BoilerController.res.abs_79_a_1)) (and (= BoilerController.usr.close_pump_2_a_1 X35) (let ((X36 BoilerController.res.abs_80_a_1)) (and (= BoilerController.usr.close_pump_3_a_1 X36) (let ((X37 BoilerController.res.abs_81_a_1)) (and (= BoilerController.usr.pump_failure_detection_0_a_1 X37) (let ((X38 BoilerController.res.abs_82_a_1)) (and (= BoilerController.usr.pump_failure_detection_1_a_1 X38) (let ((X39 BoilerController.res.abs_83_a_1)) (and (= BoilerController.usr.pump_failure_detection_2_a_1 X39) (let ((X40 BoilerController.res.abs_84_a_1)) (and (= BoilerController.usr.pump_failure_detection_3_a_1 X40) (let ((X41 BoilerController.res.abs_89_a_1)) (and (= BoilerController.usr.pump_control_failure_detection_0_a_1 X41) (let ((X42 BoilerController.res.abs_90_a_1)) (and (= BoilerController.usr.pump_control_failure_detection_1_a_1 X42) (let ((X43 BoilerController.res.abs_91_a_1)) (and (= BoilerController.usr.pump_control_failure_detection_2_a_1 X43) (let ((X44 BoilerController.res.abs_92_a_1)) (and (= BoilerController.usr.pump_control_failure_detection_3_a_1 X44) (let ((X45 BoilerController.res.abs_97_a_1)) (and (= BoilerController.usr.level_failure_detection_a_1 X45) (let ((X46 BoilerController.res.abs_99_a_1)) (and (= BoilerController.usr.steam_outcome_failure_detection_a_1 X46) (let ((X47 BoilerController.res.abs_85_a_1)) (and (= BoilerController.usr.pump_repaired_acknowledgement_0_a_1 X47) (let ((X48 BoilerController.res.abs_86_a_1)) (and (= BoilerController.usr.pump_repaired_acknowledgement_1_a_1 X48) (let ((X49 BoilerController.res.abs_87_a_1)) (and (= BoilerController.usr.pump_repaired_acknowledgement_2_a_1 X49) (let ((X50 BoilerController.res.abs_88_a_1)) (and (= BoilerController.usr.pump_repaired_acknowledgement_3_a_1 X50) (let ((X51 BoilerController.res.abs_93_a_1)) (and (= BoilerController.usr.pump_control_repaired_acknowledgement_0_a_1 X51) (let ((X52 BoilerController.res.abs_94_a_1)) (and (= BoilerController.usr.pump_control_repaired_acknowledgement_1_a_1 X52) (let ((X53 BoilerController.res.abs_95_a_1)) (and (= BoilerController.usr.pump_control_repaired_acknowledgement_2_a_1 X53) (let ((X54 BoilerController.res.abs_96_a_1)) (and (= BoilerController.usr.pump_control_repaired_acknowledgement_3_a_1 X54) (let ((X55 BoilerController.res.abs_98_a_1)) (and (= BoilerController.usr.level_repaired_acknowledgement_a_1 X55) (let ((X56 BoilerController.res.abs_100_a_1)) (and (= BoilerController.usr.steam_outcome_repaired_acknowledgement_a_1 X56) (__node_trans_ControlOutput_0 BoilerController.impl.usr.op_mode_a_1 BoilerController.res.abs_49_a_1 BoilerController.usr.valve_a_1 BoilerController.res.abs_71_a_1 BoilerController.res.abs_72_a_1 BoilerController.res.inst_176_a_1 BoilerController.res.inst_175_a_1 BoilerController.res.inst_174_a_1 BoilerController.impl.usr.op_mode_a_0 BoilerController.res.abs_49_a_0 BoilerController.usr.valve_a_0 BoilerController.res.abs_71_a_0 BoilerController.res.abs_72_a_0 BoilerController.res.inst_176_a_0 BoilerController.res.inst_175_a_0 BoilerController.res.inst_174_a_0) (__node_trans_ControlMode_0 BoilerController.usr.steam_boiler_waiting_a_1 BoilerController.usr.physical_units_ready_a_1 BoilerController.impl.usr.stop_request_a_1 BoilerController.res.abs_50_a_1 BoilerController.res.abs_51_a_1 BoilerController.res.abs_52_a_1 BoilerController.impl.usr.pump_defect_0_a_1 BoilerController.impl.usr.pump_defect_1_a_1 BoilerController.impl.usr.pump_defect_2_a_1 BoilerController.impl.usr.pump_defect_3_a_1 BoilerController.impl.usr.pump_control_defect_0_a_1 BoilerController.impl.usr.pump_control_defect_1_a_1 BoilerController.impl.usr.pump_control_defect_2_a_1 BoilerController.impl.usr.pump_control_defect_3_a_1 BoilerController.impl.usr.q_a_1 BoilerController.res.abs_9_a_1 BoilerController.res.abs_20_a_1 BoilerController.res.abs_31_a_1 BoilerController.res.abs_42_a_1 BoilerController.res.nondet_24 BoilerController.res.abs_68_a_1 BoilerController.res.inst_173_a_1 BoilerController.res.inst_172_a_1 BoilerController.res.inst_171_a_1 BoilerController.res.inst_170_a_1 BoilerController.res.inst_169_a_1 BoilerController.res.inst_168_a_1 BoilerController.res.inst_167_a_1 BoilerController.res.inst_166_a_1 BoilerController.res.inst_165_a_1 BoilerController.res.inst_164_a_1 BoilerController.res.inst_163_a_1 BoilerController.res.inst_162_a_1 BoilerController.res.inst_161_a_1 BoilerController.res.inst_160_a_1 BoilerController.res.inst_159_a_1 BoilerController.res.inst_158_a_1 BoilerController.res.inst_157_a_1 BoilerController.res.inst_156_a_1 BoilerController.res.inst_155_a_1 BoilerController.res.inst_154_a_1 BoilerController.res.inst_153_a_1 BoilerController.res.inst_152_a_1 BoilerController.res.inst_151_a_1 BoilerController.res.inst_150_a_1 BoilerController.res.inst_149_a_1 BoilerController.res.inst_148_a_1 BoilerController.res.inst_147_a_1 BoilerController.res.inst_146_a_1 BoilerController.res.inst_145_a_1 BoilerController.res.inst_144_a_1 BoilerController.res.inst_143_a_1 BoilerController.res.inst_142_a_1 BoilerController.res.inst_141_a_1 BoilerController.res.inst_140_a_1 BoilerController.res.inst_139_a_1 BoilerController.res.inst_138_a_1 BoilerController.res.inst_137_a_1 BoilerController.res.inst_136_a_1 BoilerController.res.inst_135_a_1 BoilerController.res.inst_134_a_1 BoilerController.res.inst_133_a_1 BoilerController.res.inst_132_a_1 BoilerController.res.inst_131_a_1 BoilerController.res.inst_130_a_1 BoilerController.res.inst_129_a_1 BoilerController.res.inst_128_a_1 BoilerController.res.inst_127_a_1 BoilerController.res.inst_126_a_1 BoilerController.res.inst_125_a_1 BoilerController.res.inst_124_a_1 BoilerController.res.inst_123_a_1 BoilerController.res.inst_122_a_1 BoilerController.usr.steam_boiler_waiting_a_0 BoilerController.usr.physical_units_ready_a_0 BoilerController.impl.usr.stop_request_a_0 BoilerController.res.abs_50_a_0 BoilerController.res.abs_51_a_0 BoilerController.res.abs_52_a_0 BoilerController.impl.usr.pump_defect_0_a_0 BoilerController.impl.usr.pump_defect_1_a_0 BoilerController.impl.usr.pump_defect_2_a_0 BoilerController.impl.usr.pump_defect_3_a_0 BoilerController.impl.usr.pump_control_defect_0_a_0 BoilerController.impl.usr.pump_control_defect_1_a_0 BoilerController.impl.usr.pump_control_defect_2_a_0 BoilerController.impl.usr.pump_control_defect_3_a_0 BoilerController.impl.usr.q_a_0 BoilerController.res.abs_9_a_0 BoilerController.res.abs_20_a_0 BoilerController.res.abs_31_a_0 BoilerController.res.abs_42_a_0 BoilerController.res.abs_68_a_0 BoilerController.res.inst_173_a_0 BoilerController.res.inst_172_a_0 BoilerController.res.inst_171_a_0 BoilerController.res.inst_170_a_0 BoilerController.res.inst_169_a_0 BoilerController.res.inst_168_a_0 BoilerController.res.inst_167_a_0 BoilerController.res.inst_166_a_0 BoilerController.res.inst_165_a_0 BoilerController.res.inst_164_a_0 BoilerController.res.inst_163_a_0 BoilerController.res.inst_162_a_0 BoilerController.res.inst_161_a_0 BoilerController.res.inst_160_a_0 BoilerController.res.inst_159_a_0 BoilerController.res.inst_158_a_0 BoilerController.res.inst_157_a_0 BoilerController.res.inst_156_a_0 BoilerController.res.inst_155_a_0 BoilerController.res.inst_154_a_0 BoilerController.res.inst_153_a_0 BoilerController.res.inst_152_a_0 BoilerController.res.inst_151_a_0 BoilerController.res.inst_150_a_0 BoilerController.res.inst_149_a_0 BoilerController.res.inst_148_a_0 BoilerController.res.inst_147_a_0 BoilerController.res.inst_146_a_0 BoilerController.res.inst_145_a_0 BoilerController.res.inst_144_a_0 BoilerController.res.inst_143_a_0 BoilerController.res.inst_142_a_0 BoilerController.res.inst_141_a_0 BoilerController.res.inst_140_a_0 BoilerController.res.inst_139_a_0 BoilerController.res.inst_138_a_0 BoilerController.res.inst_137_a_0 BoilerController.res.inst_136_a_0 BoilerController.res.inst_135_a_0 BoilerController.res.inst_134_a_0 BoilerController.res.inst_133_a_0 BoilerController.res.inst_132_a_0 BoilerController.res.inst_131_a_0 BoilerController.res.inst_130_a_0 BoilerController.res.inst_129_a_0 BoilerController.res.inst_128_a_0 BoilerController.res.inst_127_a_0 BoilerController.res.inst_126_a_0 BoilerController.res.inst_125_a_0 BoilerController.res.inst_124_a_0 BoilerController.res.inst_123_a_0 BoilerController.res.inst_122_a_0) (__node_trans_Operator_0 BoilerController.usr.stop_a_1 BoilerController.res.abs_0_a_1 BoilerController.res.inst_121_a_1 BoilerController.res.inst_120_a_1 BoilerController.usr.stop_a_0 BoilerController.res.abs_0_a_0 BoilerController.res.inst_121_a_0 BoilerController.res.inst_120_a_0) (__node_trans_LevelDefect_0 BoilerController.usr.level_failure_acknowledgement_a_1 BoilerController.usr.level_repaired_a_1 BoilerController.usr.level_a_1 BoilerController.res.nondet_0 BoilerController.res.abs_1_a_1 BoilerController.res.inst_119_a_1 BoilerController.res.inst_118_a_1 BoilerController.res.inst_117_a_1 BoilerController.res.inst_116_a_1 BoilerController.res.inst_115_a_1 BoilerController.res.inst_114_a_1 BoilerController.usr.level_failure_acknowledgement_a_0 BoilerController.usr.level_repaired_a_0 BoilerController.usr.level_a_0 BoilerController.res.abs_1_a_0 BoilerController.res.inst_119_a_0 BoilerController.res.inst_118_a_0 BoilerController.res.inst_117_a_0 BoilerController.res.inst_116_a_0 BoilerController.res.inst_115_a_0 BoilerController.res.inst_114_a_0) (__node_trans_SteamDefect_0 BoilerController.usr.steam_failure_acknowledgement_a_1 BoilerController.usr.steam_repaired_a_1 BoilerController.usr.steam_a_1 BoilerController.res.nondet_1 BoilerController.res.abs_2_a_1 BoilerController.res.inst_113_a_1 BoilerController.res.inst_112_a_1 BoilerController.res.inst_111_a_1 BoilerController.res.inst_110_a_1 BoilerController.res.inst_109_a_1 BoilerController.res.inst_108_a_1 BoilerController.usr.steam_failure_acknowledgement_a_0 BoilerController.usr.steam_repaired_a_0 BoilerController.usr.steam_a_0 BoilerController.res.abs_2_a_0 BoilerController.res.inst_113_a_0 BoilerController.res.inst_112_a_0 BoilerController.res.inst_111_a_0 BoilerController.res.inst_110_a_0 BoilerController.res.inst_109_a_0 BoilerController.res.inst_108_a_0) (__node_trans_PumpDefect_0 BoilerController.res.abs_4_a_1 BoilerController.res.abs_5_a_1 BoilerController.res.abs_6_a_1 BoilerController.res.abs_7_a_1 BoilerController.res.abs_8_a_1 BoilerController.res.abs_9_a_1 BoilerController.res.abs_10_a_1 BoilerController.res.nondet_4 BoilerController.res.nondet_3 BoilerController.res.abs_11_a_1 BoilerController.res.abs_12_a_1 BoilerController.res.abs_13_a_1 BoilerController.res.inst_107_a_1 BoilerController.res.inst_106_a_1 BoilerController.res.inst_105_a_1 BoilerController.res.inst_104_a_1 BoilerController.res.inst_103_a_1 BoilerController.res.inst_102_a_1 BoilerController.res.inst_101_a_1 BoilerController.res.inst_100_a_1 BoilerController.res.inst_99_a_1 BoilerController.res.inst_98_a_1 BoilerController.res.inst_97_a_1 BoilerController.res.inst_96_a_1 BoilerController.res.inst_95_a_1 BoilerController.res.abs_4_a_0 BoilerController.res.abs_5_a_0 BoilerController.res.abs_6_a_0 BoilerController.res.abs_7_a_0 BoilerController.res.abs_8_a_0 BoilerController.res.abs_9_a_0 BoilerController.res.abs_10_a_0 BoilerController.res.abs_11_a_0 BoilerController.res.abs_12_a_0 BoilerController.res.abs_13_a_0 BoilerController.res.inst_107_a_0 BoilerController.res.inst_106_a_0 BoilerController.res.inst_105_a_0 BoilerController.res.inst_104_a_0 BoilerController.res.inst_103_a_0 BoilerController.res.inst_102_a_0 BoilerController.res.inst_101_a_0 BoilerController.res.inst_100_a_0 BoilerController.res.inst_99_a_0 BoilerController.res.inst_98_a_0 BoilerController.res.inst_97_a_0 BoilerController.res.inst_96_a_0 BoilerController.res.inst_95_a_0) (__node_trans_PumpsStatus_0 BoilerController.impl.usr.n_pumps_a_1 BoilerController.impl.usr.pump_defect_0_a_1 BoilerController.impl.usr.pump_defect_1_a_1 BoilerController.impl.usr.pump_defect_2_a_1 BoilerController.impl.usr.pump_defect_3_a_1 BoilerController.res.abs_53_a_1 BoilerController.res.abs_54_a_1 BoilerController.res.abs_55_a_1 BoilerController.res.abs_56_a_1 BoilerController.res.nondet_23 BoilerController.res.nondet_22 BoilerController.res.nondet_21 BoilerController.res.nondet_20 BoilerController.res.nondet_19 BoilerController.res.nondet_18 BoilerController.res.nondet_17 BoilerController.res.nondet_16 BoilerController.res.abs_64_a_1 BoilerController.res.abs_65_a_1 BoilerController.res.abs_66_a_1 BoilerController.res.abs_67_a_1 BoilerController.res.inst_94_a_1 BoilerController.res.inst_93_a_1 BoilerController.res.inst_92_a_1 BoilerController.res.inst_91_a_1 BoilerController.res.inst_90_a_1 BoilerController.res.inst_89_a_1 BoilerController.res.inst_88_a_1 BoilerController.res.inst_87_a_1 BoilerController.res.inst_86_a_1 BoilerController.res.inst_85_a_1 BoilerController.res.inst_84_a_1 BoilerController.res.inst_83_a_1 BoilerController.res.inst_82_a_1 BoilerController.res.inst_81_a_1 BoilerController.res.inst_80_a_1 BoilerController.res.inst_79_a_1 BoilerController.res.inst_78_a_1 BoilerController.res.inst_77_a_1 BoilerController.res.inst_76_a_1 BoilerController.res.inst_75_a_1 BoilerController.res.inst_74_a_1 BoilerController.res.inst_73_a_1 BoilerController.res.inst_72_a_1 BoilerController.res.inst_71_a_1 BoilerController.res.inst_70_a_1 BoilerController.res.inst_69_a_1 BoilerController.res.inst_68_a_1 BoilerController.res.inst_67_a_1 BoilerController.res.inst_66_a_1 BoilerController.res.inst_65_a_1 BoilerController.res.inst_64_a_1 BoilerController.res.inst_63_a_1 BoilerController.res.inst_62_a_1 BoilerController.res.inst_61_a_1 BoilerController.res.inst_60_a_1 BoilerController.res.inst_59_a_1 BoilerController.res.inst_58_a_1 BoilerController.res.inst_57_a_1 BoilerController.res.inst_56_a_1 BoilerController.res.inst_55_a_1 BoilerController.res.inst_54_a_1 BoilerController.res.inst_53_a_1 BoilerController.res.inst_52_a_1 BoilerController.res.inst_51_a_1 BoilerController.impl.usr.n_pumps_a_0 BoilerController.impl.usr.pump_defect_0_a_0 BoilerController.impl.usr.pump_defect_1_a_0 BoilerController.impl.usr.pump_defect_2_a_0 BoilerController.impl.usr.pump_defect_3_a_0 BoilerController.res.abs_53_a_0 BoilerController.res.abs_54_a_0 BoilerController.res.abs_55_a_0 BoilerController.res.abs_56_a_0 BoilerController.res.abs_64_a_0 BoilerController.res.abs_65_a_0 BoilerController.res.abs_66_a_0 BoilerController.res.abs_67_a_0 BoilerController.res.inst_94_a_0 BoilerController.res.inst_93_a_0 BoilerController.res.inst_92_a_0 BoilerController.res.inst_91_a_0 BoilerController.res.inst_90_a_0 BoilerController.res.inst_89_a_0 BoilerController.res.inst_88_a_0 BoilerController.res.inst_87_a_0 BoilerController.res.inst_86_a_0 BoilerController.res.inst_85_a_0 BoilerController.res.inst_84_a_0 BoilerController.res.inst_83_a_0 BoilerController.res.inst_82_a_0 BoilerController.res.inst_81_a_0 BoilerController.res.inst_80_a_0 BoilerController.res.inst_79_a_0 BoilerController.res.inst_78_a_0 BoilerController.res.inst_77_a_0 BoilerController.res.inst_76_a_0 BoilerController.res.inst_75_a_0 BoilerController.res.inst_74_a_0 BoilerController.res.inst_73_a_0 BoilerController.res.inst_72_a_0 BoilerController.res.inst_71_a_0 BoilerController.res.inst_70_a_0 BoilerController.res.inst_69_a_0 BoilerController.res.inst_68_a_0 BoilerController.res.inst_67_a_0 BoilerController.res.inst_66_a_0 BoilerController.res.inst_65_a_0 BoilerController.res.inst_64_a_0 BoilerController.res.inst_63_a_0 BoilerController.res.inst_62_a_0 BoilerController.res.inst_61_a_0 BoilerController.res.inst_60_a_0 BoilerController.res.inst_59_a_0 BoilerController.res.inst_58_a_0 BoilerController.res.inst_57_a_0 BoilerController.res.inst_56_a_0 BoilerController.res.inst_55_a_0 BoilerController.res.inst_54_a_0 BoilerController.res.inst_53_a_0 BoilerController.res.inst_52_a_0 BoilerController.res.inst_51_a_0) (__node_trans_PumpsDecision_0 BoilerController.impl.usr.q_a_1 BoilerController.impl.usr.v_a_1 BoilerController.res.nondet_15 BoilerController.res.abs_63_a_1 BoilerController.res.inst_50_a_1 BoilerController.impl.usr.q_a_0 BoilerController.impl.usr.v_a_0 BoilerController.res.abs_63_a_0 BoilerController.res.inst_50_a_0) (__node_trans_Dynamics_0 BoilerController.res.abs_48_a_1 BoilerController.res.abs_49_a_1 BoilerController.res.abs_50_a_1 BoilerController.res.abs_51_a_1 BoilerController.res.abs_52_a_1 BoilerController.res.abs_53_a_1 BoilerController.res.abs_54_a_1 BoilerController.res.abs_55_a_1 BoilerController.res.abs_56_a_1 BoilerController.res.abs_57_a_1 BoilerController.res.abs_58_a_1 BoilerController.res.abs_59_a_1 BoilerController.res.abs_60_a_1 BoilerController.res.abs_61_a_1 BoilerController.res.abs_62_a_1 BoilerController.res.inst_49_a_1 BoilerController.res.inst_48_a_1 BoilerController.res.inst_47_a_1 BoilerController.res.inst_46_a_1 BoilerController.res.inst_45_a_1 BoilerController.res.inst_44_a_1 BoilerController.res.inst_43_a_1 BoilerController.res.abs_48_a_0 BoilerController.res.abs_49_a_0 BoilerController.res.abs_50_a_0 BoilerController.res.abs_51_a_0 BoilerController.res.abs_52_a_0 BoilerController.res.abs_53_a_0 BoilerController.res.abs_54_a_0 BoilerController.res.abs_55_a_0 BoilerController.res.abs_56_a_0 BoilerController.res.abs_57_a_0 BoilerController.res.abs_58_a_0 BoilerController.res.abs_59_a_0 BoilerController.res.abs_60_a_0 BoilerController.res.abs_61_a_0 BoilerController.res.abs_62_a_0 BoilerController.res.inst_49_a_0 BoilerController.res.inst_48_a_0 BoilerController.res.inst_47_a_0 BoilerController.res.inst_46_a_0 BoilerController.res.inst_45_a_0 BoilerController.res.inst_44_a_0 BoilerController.res.inst_43_a_0) (__node_trans_Valve_0 BoilerController.impl.usr.op_mode_a_1 BoilerController.impl.usr.q_a_1 BoilerController.res.abs_69_a_1 BoilerController.res.abs_70_a_1 BoilerController.res.inst_42_a_1 BoilerController.impl.usr.op_mode_a_0 BoilerController.impl.usr.q_a_0 BoilerController.res.abs_69_a_0 BoilerController.res.abs_70_a_0 BoilerController.res.inst_42_a_0) (__node_trans_PumpDefect_0 BoilerController.res.abs_15_a_1 BoilerController.res.abs_16_a_1 BoilerController.res.abs_17_a_1 BoilerController.res.abs_18_a_1 BoilerController.res.abs_19_a_1 BoilerController.res.abs_20_a_1 BoilerController.res.abs_21_a_1 BoilerController.res.nondet_7 BoilerController.res.nondet_6 BoilerController.res.abs_22_a_1 BoilerController.res.abs_23_a_1 BoilerController.res.abs_24_a_1 BoilerController.res.inst_41_a_1 BoilerController.res.inst_40_a_1 BoilerController.res.inst_39_a_1 BoilerController.res.inst_38_a_1 BoilerController.res.inst_37_a_1 BoilerController.res.inst_36_a_1 BoilerController.res.inst_35_a_1 BoilerController.res.inst_34_a_1 BoilerController.res.inst_33_a_1 BoilerController.res.inst_32_a_1 BoilerController.res.inst_31_a_1 BoilerController.res.inst_30_a_1 BoilerController.res.inst_29_a_1 BoilerController.res.abs_15_a_0 BoilerController.res.abs_16_a_0 BoilerController.res.abs_17_a_0 BoilerController.res.abs_18_a_0 BoilerController.res.abs_19_a_0 BoilerController.res.abs_20_a_0 BoilerController.res.abs_21_a_0 BoilerController.res.abs_22_a_0 BoilerController.res.abs_23_a_0 BoilerController.res.abs_24_a_0 BoilerController.res.inst_41_a_0 BoilerController.res.inst_40_a_0 BoilerController.res.inst_39_a_0 BoilerController.res.inst_38_a_0 BoilerController.res.inst_37_a_0 BoilerController.res.inst_36_a_0 BoilerController.res.inst_35_a_0 BoilerController.res.inst_34_a_0 BoilerController.res.inst_33_a_0 BoilerController.res.inst_32_a_0 BoilerController.res.inst_31_a_0 BoilerController.res.inst_30_a_0 BoilerController.res.inst_29_a_0) (__node_trans_PumpDefect_0 BoilerController.res.abs_26_a_1 BoilerController.res.abs_27_a_1 BoilerController.res.abs_28_a_1 BoilerController.res.abs_29_a_1 BoilerController.res.abs_30_a_1 BoilerController.res.abs_31_a_1 BoilerController.res.abs_32_a_1 BoilerController.res.nondet_10 BoilerController.res.nondet_9 BoilerController.res.abs_33_a_1 BoilerController.res.abs_34_a_1 BoilerController.res.abs_35_a_1 BoilerController.res.inst_28_a_1 BoilerController.res.inst_27_a_1 BoilerController.res.inst_26_a_1 BoilerController.res.inst_25_a_1 BoilerController.res.inst_24_a_1 BoilerController.res.inst_23_a_1 BoilerController.res.inst_22_a_1 BoilerController.res.inst_21_a_1 BoilerController.res.inst_20_a_1 BoilerController.res.inst_19_a_1 BoilerController.res.inst_18_a_1 BoilerController.res.inst_17_a_1 BoilerController.res.inst_16_a_1 BoilerController.res.abs_26_a_0 BoilerController.res.abs_27_a_0 BoilerController.res.abs_28_a_0 BoilerController.res.abs_29_a_0 BoilerController.res.abs_30_a_0 BoilerController.res.abs_31_a_0 BoilerController.res.abs_32_a_0 BoilerController.res.abs_33_a_0 BoilerController.res.abs_34_a_0 BoilerController.res.abs_35_a_0 BoilerController.res.inst_28_a_0 BoilerController.res.inst_27_a_0 BoilerController.res.inst_26_a_0 BoilerController.res.inst_25_a_0 BoilerController.res.inst_24_a_0 BoilerController.res.inst_23_a_0 BoilerController.res.inst_22_a_0 BoilerController.res.inst_21_a_0 BoilerController.res.inst_20_a_0 BoilerController.res.inst_19_a_0 BoilerController.res.inst_18_a_0 BoilerController.res.inst_17_a_0 BoilerController.res.inst_16_a_0) (__node_trans_PumpDefect_0 BoilerController.res.abs_37_a_1 BoilerController.res.abs_38_a_1 BoilerController.res.abs_39_a_1 BoilerController.res.abs_40_a_1 BoilerController.res.abs_41_a_1 BoilerController.res.abs_42_a_1 BoilerController.res.abs_43_a_1 BoilerController.res.nondet_13 BoilerController.res.nondet_12 BoilerController.res.abs_44_a_1 BoilerController.res.abs_45_a_1 BoilerController.res.abs_46_a_1 BoilerController.res.inst_15_a_1 BoilerController.res.inst_14_a_1 BoilerController.res.inst_13_a_1 BoilerController.res.inst_12_a_1 BoilerController.res.inst_11_a_1 BoilerController.res.inst_10_a_1 BoilerController.res.inst_9_a_1 BoilerController.res.inst_8_a_1 BoilerController.res.inst_7_a_1 BoilerController.res.inst_6_a_1 BoilerController.res.inst_5_a_1 BoilerController.res.inst_4_a_1 BoilerController.res.inst_3_a_1 BoilerController.res.abs_37_a_0 BoilerController.res.abs_38_a_0 BoilerController.res.abs_39_a_0 BoilerController.res.abs_40_a_0 BoilerController.res.abs_41_a_0 BoilerController.res.abs_42_a_0 BoilerController.res.abs_43_a_0 BoilerController.res.abs_44_a_0 BoilerController.res.abs_45_a_0 BoilerController.res.abs_46_a_0 BoilerController.res.inst_15_a_0 BoilerController.res.inst_14_a_0 BoilerController.res.inst_13_a_0 BoilerController.res.inst_12_a_0 BoilerController.res.inst_11_a_0 BoilerController.res.inst_10_a_0 BoilerController.res.inst_9_a_0 BoilerController.res.inst_8_a_0 BoilerController.res.inst_7_a_0 BoilerController.res.inst_6_a_0 BoilerController.res.inst_5_a_0 BoilerController.res.inst_4_a_0 BoilerController.res.inst_3_a_0) (__node_trans_PumpsOutput_0 BoilerController.impl.usr.op_mode_a_1 BoilerController.res.abs_3_a_1 BoilerController.res.abs_14_a_1 BoilerController.res.abs_25_a_1 BoilerController.res.abs_36_a_1 BoilerController.impl.usr.pump_defect_0_a_1 BoilerController.impl.usr.pump_defect_1_a_1 BoilerController.impl.usr.pump_defect_2_a_1 BoilerController.impl.usr.pump_defect_3_a_1 BoilerController.impl.usr.pump_control_defect_0_a_1 BoilerController.impl.usr.pump_control_defect_1_a_1 BoilerController.impl.usr.pump_control_defect_2_a_1 BoilerController.impl.usr.pump_control_defect_3_a_1 BoilerController.res.abs_5_a_1 BoilerController.res.abs_16_a_1 BoilerController.res.abs_27_a_1 BoilerController.res.abs_38_a_1 BoilerController.res.abs_7_a_1 BoilerController.res.abs_18_a_1 BoilerController.res.abs_29_a_1 BoilerController.res.abs_40_a_1 BoilerController.res.nondet_32 BoilerController.res.nondet_31 BoilerController.res.nondet_30 BoilerController.res.nondet_29 BoilerController.res.nondet_28 BoilerController.res.nondet_27 BoilerController.res.nondet_26 BoilerController.res.nondet_25 BoilerController.res.abs_73_a_1 BoilerController.res.abs_74_a_1 BoilerController.res.abs_75_a_1 BoilerController.res.abs_76_a_1 BoilerController.res.abs_77_a_1 BoilerController.res.abs_78_a_1 BoilerController.res.abs_79_a_1 BoilerController.res.abs_80_a_1 BoilerController.res.abs_81_a_1 BoilerController.res.abs_82_a_1 BoilerController.res.abs_83_a_1 BoilerController.res.abs_84_a_1 BoilerController.res.abs_85_a_1 BoilerController.res.abs_86_a_1 BoilerController.res.abs_87_a_1 BoilerController.res.abs_88_a_1 BoilerController.res.abs_89_a_1 BoilerController.res.abs_90_a_1 BoilerController.res.abs_91_a_1 BoilerController.res.abs_92_a_1 BoilerController.res.abs_93_a_1 BoilerController.res.abs_94_a_1 BoilerController.res.abs_95_a_1 BoilerController.res.abs_96_a_1 BoilerController.res.inst_2_a_1 BoilerController.impl.usr.op_mode_a_0 BoilerController.res.abs_3_a_0 BoilerController.res.abs_14_a_0 BoilerController.res.abs_25_a_0 BoilerController.res.abs_36_a_0 BoilerController.impl.usr.pump_defect_0_a_0 BoilerController.impl.usr.pump_defect_1_a_0 BoilerController.impl.usr.pump_defect_2_a_0 BoilerController.impl.usr.pump_defect_3_a_0 BoilerController.impl.usr.pump_control_defect_0_a_0 BoilerController.impl.usr.pump_control_defect_1_a_0 BoilerController.impl.usr.pump_control_defect_2_a_0 BoilerController.impl.usr.pump_control_defect_3_a_0 BoilerController.res.abs_5_a_0 BoilerController.res.abs_16_a_0 BoilerController.res.abs_27_a_0 BoilerController.res.abs_38_a_0 BoilerController.res.abs_7_a_0 BoilerController.res.abs_18_a_0 BoilerController.res.abs_29_a_0 BoilerController.res.abs_40_a_0 BoilerController.res.abs_73_a_0 BoilerController.res.abs_74_a_0 BoilerController.res.abs_75_a_0 BoilerController.res.abs_76_a_0 BoilerController.res.abs_77_a_0 BoilerController.res.abs_78_a_0 BoilerController.res.abs_79_a_0 BoilerController.res.abs_80_a_0 BoilerController.res.abs_81_a_0 BoilerController.res.abs_82_a_0 BoilerController.res.abs_83_a_0 BoilerController.res.abs_84_a_0 BoilerController.res.abs_85_a_0 BoilerController.res.abs_86_a_0 BoilerController.res.abs_87_a_0 BoilerController.res.abs_88_a_0 BoilerController.res.abs_89_a_0 BoilerController.res.abs_90_a_0 BoilerController.res.abs_91_a_0 BoilerController.res.abs_92_a_0 BoilerController.res.abs_93_a_0 BoilerController.res.abs_94_a_0 BoilerController.res.abs_95_a_0 BoilerController.res.abs_96_a_0 BoilerController.res.inst_2_a_0) (__node_trans_LevelOutput_0 BoilerController.impl.usr.op_mode_a_1 BoilerController.res.abs_51_a_1 BoilerController.usr.level_repaired_a_1 BoilerController.res.abs_97_a_1 BoilerController.res.abs_98_a_1 BoilerController.res.inst_1_a_1 BoilerController.impl.usr.op_mode_a_0 BoilerController.res.abs_51_a_0 BoilerController.usr.level_repaired_a_0 BoilerController.res.abs_97_a_0 BoilerController.res.abs_98_a_0 BoilerController.res.inst_1_a_0) (__node_trans_SteamOutput_0 BoilerController.impl.usr.op_mode_a_1 BoilerController.res.abs_52_a_1 BoilerController.usr.steam_repaired_a_1 BoilerController.res.abs_99_a_1 BoilerController.res.abs_100_a_1 BoilerController.res.inst_0_a_1 BoilerController.impl.usr.op_mode_a_0 BoilerController.res.abs_52_a_0 BoilerController.usr.steam_repaired_a_0 BoilerController.res.abs_99_a_0 BoilerController.res.abs_100_a_0 BoilerController.res.inst_0_a_0) (<= 1 BoilerController.impl.usr.op_mode_a_1 6) (<= 1 BoilerController.res.abs_68_a_1 6) (<= 0 X9 2) (<= 0 BoilerController.res.abs_1_a_1 2) (<= 0 X10 2) (<= 0 BoilerController.res.abs_2_a_1 2) (<= 0 X19 2) (<= 0 BoilerController.res.abs_11_a_1 2) (<= 0 X17 2) (<= 0 BoilerController.res.abs_22_a_1 2) (<= 0 X16 2) (<= 0 BoilerController.res.abs_33_a_1 2) (<= 0 X15 2) (<= 0 BoilerController.res.abs_44_a_1 2) (<= 0 X18 2) (<= 0 BoilerController.res.abs_12_a_1 2) (<= 0 X14 2) (<= 0 BoilerController.res.abs_23_a_1 2) (<= 0 X13 2) (<= 0 BoilerController.res.abs_34_a_1 2) (<= 0 X12 2) (<= 0 BoilerController.res.abs_45_a_1 2) (not BoilerController.res.init_flag_a_1))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.stop_a_0 Bool) (top.usr.steam_boiler_waiting_a_0 Bool) (top.usr.physical_units_ready_a_0 Bool) (top.usr.level_a_0 Int) (top.usr.steam_a_0 Int) (top.usr.pump_state_0_a_0 Int) (top.usr.pump_state_1_a_0 Int) (top.usr.pump_state_2_a_0 Int) (top.usr.pump_state_3_a_0 Int) (top.usr.pump_control_state_0_a_0 Bool) (top.usr.pump_control_state_1_a_0 Bool) (top.usr.pump_control_state_2_a_0 Bool) (top.usr.pump_control_state_3_a_0 Bool) (top.usr.pump_repaired_0_a_0 Bool) (top.usr.pump_repaired_1_a_0 Bool) (top.usr.pump_repaired_2_a_0 Bool) (top.usr.pump_repaired_3_a_0 Bool) (top.usr.pump_control_repaired_0_a_0 Bool) (top.usr.pump_control_repaired_1_a_0 Bool) (top.usr.pump_control_repaired_2_a_0 Bool) (top.usr.pump_control_repaired_3_a_0 Bool) (top.usr.level_repaired_a_0 Bool) (top.usr.steam_repaired_a_0 Bool) (top.usr.pump_failure_acknowledgement_0_a_0 Bool) (top.usr.pump_failure_acknowledgement_1_a_0 Bool) (top.usr.pump_failure_acknowledgement_2_a_0 Bool) (top.usr.pump_failure_acknowledgement_3_a_0 Bool) (top.usr.pump_control_failure_acknowledgement_0_a_0 Bool) (top.usr.pump_control_failure_acknowledgement_1_a_0 Bool) (top.usr.pump_control_failure_acknowledgement_2_a_0 Bool) (top.usr.pump_control_failure_acknowledgement_3_a_0 Bool) (top.usr.level_failure_acknowledgement_a_0 Bool) (top.usr.steam_failure_acknowledgement_a_0 Bool) (top.res.nondet_32 Int) (top.res.nondet_31 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.abs_12_a_0 Bool) (top.res.abs_13_a_0 Bool) (top.res.abs_14_a_0 Bool) (top.res.abs_15_a_0 Bool) (top.res.abs_16_a_0 Bool) (top.res.abs_17_a_0 Bool) (top.res.abs_18_a_0 Bool) (top.res.abs_19_a_0 Bool) (top.res.abs_20_a_0 Bool) (top.res.abs_21_a_0 Bool) (top.res.abs_22_a_0 Bool) (top.res.abs_23_a_0 Bool) (top.res.abs_24_a_0 Bool) (top.res.abs_25_a_0 Bool) (top.res.abs_26_a_0 Bool) (top.res.abs_27_a_0 Bool) (top.res.abs_28_a_0 Bool) (top.res.abs_29_a_0 Bool) (top.res.abs_30_a_0 Bool) (top.res.abs_31_a_0 Bool) (top.res.abs_32_a_0 Bool) (top.res.abs_33_a_0 Bool) (top.res.abs_34_a_0 Bool) (top.res.abs_35_a_0 Bool) (top.res.abs_36_a_0 Bool) (top.res.abs_37_a_0 Bool) (top.res.abs_38_a_0 Bool) (top.res.abs_39_a_0 Bool) (top.res.abs_40_a_0 Bool) (top.res.inst_297_a_0 Bool) (top.res.inst_296_a_0 Bool) (top.res.inst_295_a_0 Int) (top.res.inst_294_a_0 Int) (top.res.inst_293_a_0 Int) (top.res.inst_292_a_0 Int) (top.res.inst_291_a_0 Int) (top.res.inst_290_a_0 Int) (top.res.inst_289_a_0 Int) (top.res.inst_288_a_0 Int) (top.res.inst_287_a_0 Int) (top.res.inst_286_a_0 Int) (top.res.inst_285_a_0 Int) (top.res.inst_284_a_0 Int) (top.res.inst_283_a_0 Int) (top.res.inst_282_a_0 Int) (top.res.inst_281_a_0 Int) (top.res.inst_280_a_0 Int) (top.res.inst_279_a_0 Int) (top.res.inst_278_a_0 Bool) (top.res.inst_277_a_0 Int) (top.res.inst_276_a_0 Int) (top.res.inst_275_a_0 Int) (top.res.inst_274_a_0 Bool) (top.res.inst_273_a_0 Bool) (top.res.inst_272_a_0 Bool) (top.res.inst_271_a_0 Bool) (top.res.inst_270_a_0 Int) (top.res.inst_269_a_0 Int) (top.res.inst_268_a_0 Bool) (top.res.inst_267_a_0 Int) (top.res.inst_266_a_0 Int) (top.res.inst_265_a_0 Bool) (top.res.inst_264_a_0 Int) (top.res.inst_263_a_0 Bool) (top.res.inst_262_a_0 Bool) (top.res.inst_261_a_0 Bool) (top.res.inst_260_a_0 Bool) (top.res.inst_259_a_0 Int) (top.res.inst_258_a_0 Int) (top.res.inst_257_a_0 Bool) (top.res.inst_256_a_0 Int) (top.res.inst_255_a_0 Int) (top.res.inst_254_a_0 Bool) (top.res.inst_253_a_0 Int) (top.res.inst_252_a_0 Bool) (top.res.inst_251_a_0 Bool) (top.res.inst_250_a_0 Bool) (top.res.inst_249_a_0 Bool) (top.res.inst_248_a_0 Int) (top.res.inst_247_a_0 Int) (top.res.inst_246_a_0 Bool) (top.res.inst_245_a_0 Int) (top.res.inst_244_a_0 Int) (top.res.inst_243_a_0 Bool) (top.res.inst_242_a_0 Int) (top.res.inst_241_a_0 Bool) (top.res.inst_240_a_0 Bool) (top.res.inst_239_a_0 Bool) (top.res.inst_238_a_0 Bool) (top.res.inst_237_a_0 Int) (top.res.inst_236_a_0 Int) (top.res.inst_235_a_0 Bool) (top.res.inst_234_a_0 Int) (top.res.inst_233_a_0 Int) (top.res.inst_232_a_0 Bool) (top.res.inst_231_a_0 Int) (top.res.inst_230_a_0 Int) (top.res.inst_229_a_0 Int) (top.res.inst_228_a_0 Int) (top.res.inst_227_a_0 Int) (top.res.inst_226_a_0 Bool) (top.res.inst_225_a_0 Bool) (top.res.inst_224_a_0 Bool) (top.res.inst_223_a_0 Bool) (top.res.inst_222_a_0 Int) (top.res.inst_221_a_0 Int) (top.res.inst_220_a_0 Int) (top.res.inst_219_a_0 Int) (top.res.inst_218_a_0 Int) (top.res.inst_217_a_0 Int) (top.res.inst_216_a_0 Int) (top.res.inst_215_a_0 Int) (top.res.inst_214_a_0 Int) (top.res.inst_213_a_0 Int) (top.res.inst_212_a_0 Int) (top.res.inst_211_a_0 Int) (top.res.inst_210_a_0 Bool) (top.res.inst_209_a_0 Int) (top.res.inst_208_a_0 Bool) (top.res.inst_207_a_0 Int) (top.res.inst_206_a_0 Bool) (top.res.inst_205_a_0 Bool) (top.res.inst_204_a_0 Bool) (top.res.inst_203_a_0 Bool) (top.res.inst_202_a_0 Bool) (top.res.inst_201_a_0 Bool) (top.res.inst_200_a_0 Bool) (top.res.inst_199_a_0 Bool) (top.res.inst_198_a_0 Bool) (top.res.inst_197_a_0 Bool) (top.res.inst_196_a_0 Bool) (top.res.inst_195_a_0 Bool) (top.res.inst_194_a_0 Bool) (top.res.inst_193_a_0 Bool) (top.res.inst_192_a_0 Bool) (top.res.inst_191_a_0 Bool) (top.res.inst_190_a_0 Bool) (top.res.inst_189_a_0 Bool) (top.res.inst_188_a_0 Bool) (top.res.inst_187_a_0 Bool) (top.res.inst_186_a_0 Bool) (top.res.inst_185_a_0 Bool) (top.res.inst_184_a_0 Bool) (top.res.inst_183_a_0 Bool) (top.res.inst_182_a_0 Bool) (top.res.inst_181_a_0 Bool) (top.res.inst_180_a_0 Bool) (top.res.inst_179_a_0 Bool) (top.res.inst_178_a_0 Bool) (top.res.inst_177_a_0 Bool) (top.res.inst_176_a_0 Bool) (top.res.inst_175_a_0 Bool) (top.res.inst_174_a_0 Int) (top.res.inst_173_a_0 Bool) (top.res.inst_172_a_0 Bool) (top.res.inst_171_a_0 Bool) (top.res.inst_170_a_0 Bool) (top.res.inst_169_a_0 Bool) (top.res.inst_168_a_0 Bool) (top.res.inst_167_a_0 Bool) (top.res.inst_166_a_0 Bool) (top.res.inst_165_a_0 Bool) (top.res.inst_164_a_0 Bool) (top.res.inst_163_a_0 Bool) (top.res.inst_162_a_0 Bool) (top.res.inst_161_a_0 Bool) (top.res.inst_160_a_0 Bool) (top.res.inst_159_a_0 Bool) (top.res.inst_158_a_0 Bool) (top.res.inst_157_a_0 Bool) (top.res.inst_156_a_0 Bool) (top.res.inst_155_a_0 Bool) (top.res.inst_154_a_0 Bool) (top.res.inst_153_a_0 Bool) (top.res.inst_152_a_0 Bool) (top.res.inst_151_a_0 Bool) (top.res.inst_150_a_0 Bool) (top.res.inst_149_a_0 Bool) (top.res.inst_148_a_0 Bool) (top.res.inst_147_a_0 Bool) (top.res.inst_146_a_0 Bool) (top.res.inst_145_a_0 Bool) (top.res.inst_144_a_0 Bool) (top.res.inst_143_a_0 Bool) (top.res.inst_142_a_0 Bool) (top.res.inst_141_a_0 Bool) (top.res.inst_140_a_0 Bool) (top.res.inst_139_a_0 Bool) (top.res.inst_138_a_0 Bool) (top.res.inst_137_a_0 Bool) (top.res.inst_136_a_0 Bool) (top.res.inst_135_a_0 Bool) (top.res.inst_134_a_0 Bool) (top.res.inst_133_a_0 Bool) (top.res.inst_132_a_0 Bool) (top.res.inst_131_a_0 Bool) (top.res.inst_130_a_0 Bool) (top.res.inst_129_a_0 Bool) (top.res.inst_128_a_0 Bool) (top.res.inst_127_a_0 Bool) (top.res.inst_126_a_0 Bool) (top.res.inst_125_a_0 Bool) (top.res.inst_124_a_0 Bool) (top.res.inst_123_a_0 Bool) (top.res.inst_122_a_0 Int) (top.res.inst_121_a_0 Bool) (top.res.inst_120_a_0 Bool) (top.res.inst_119_a_0 Int) (top.res.inst_118_a_0 Int) (top.res.inst_117_a_0 Bool) (top.res.inst_116_a_0 Bool) (top.res.inst_115_a_0 Bool) (top.res.inst_114_a_0 Bool) (top.res.inst_113_a_0 Int) (top.res.inst_112_a_0 Int) (top.res.inst_111_a_0 Bool) (top.res.inst_110_a_0 Bool) (top.res.inst_109_a_0 Bool) (top.res.inst_108_a_0 Bool) (top.res.inst_107_a_0 Bool) (top.res.inst_106_a_0 Bool) (top.res.inst_105_a_0 Bool) (top.res.inst_104_a_0 Bool) (top.res.inst_103_a_0 Int) (top.res.inst_102_a_0 Int) (top.res.inst_101_a_0 Int) (top.res.inst_100_a_0 Int) (top.res.inst_99_a_0 Bool) (top.res.inst_98_a_0 Bool) (top.res.inst_97_a_0 Bool) (top.res.inst_96_a_0 Bool) (top.res.inst_95_a_0 Int) (top.res.inst_94_a_0 Int) (top.res.inst_93_a_0 Int) (top.res.inst_92_a_0 Int) (top.res.inst_91_a_0 Int) (top.res.inst_90_a_0 Int) (top.res.inst_89_a_0 Int) (top.res.inst_88_a_0 Int) (top.res.inst_87_a_0 Int) (top.res.inst_86_a_0 Int) (top.res.inst_85_a_0 Bool) (top.res.inst_84_a_0 Bool) (top.res.inst_83_a_0 Bool) (top.res.inst_82_a_0 Bool) (top.res.inst_81_a_0 Int) (top.res.inst_80_a_0 Int) (top.res.inst_79_a_0 Int) (top.res.inst_78_a_0 Int) (top.res.inst_77_a_0 Bool) (top.res.inst_76_a_0 Int) (top.res.inst_75_a_0 Bool) (top.res.inst_74_a_0 Int) (top.res.inst_73_a_0 Bool) (top.res.inst_72_a_0 Int) (top.res.inst_71_a_0 Bool) (top.res.inst_70_a_0 Int) (top.res.inst_69_a_0 Bool) (top.res.inst_68_a_0 Int) (top.res.inst_67_a_0 Bool) (top.res.inst_66_a_0 Int) (top.res.inst_65_a_0 Bool) (top.res.inst_64_a_0 Int) (top.res.inst_63_a_0 Bool) (top.res.inst_62_a_0 Int) (top.res.inst_61_a_0 Bool) (top.res.inst_60_a_0 Bool) (top.res.inst_59_a_0 Bool) (top.res.inst_58_a_0 Bool) (top.res.inst_57_a_0 Bool) (top.res.inst_56_a_0 Bool) (top.res.inst_55_a_0 Bool) (top.res.inst_54_a_0 Bool) (top.res.inst_53_a_0 Bool) (top.res.inst_52_a_0 Bool) (top.res.inst_51_a_0 Bool) (top.res.inst_50_a_0 Bool) (top.res.inst_49_a_0 Int) (top.res.inst_48_a_0 Bool) (top.res.inst_47_a_0 Bool) (top.res.inst_46_a_0 Bool) (top.res.inst_45_a_0 Bool) (top.res.inst_44_a_0 Bool) (top.res.inst_43_a_0 Bool) (top.res.inst_42_a_0 Bool) (top.res.inst_41_a_0 Bool) (top.res.inst_40_a_0 Bool) (top.res.inst_39_a_0 Bool) (top.res.inst_38_a_0 Bool) (top.res.inst_37_a_0 Int) (top.res.inst_36_a_0 Int) (top.res.inst_35_a_0 Int) (top.res.inst_34_a_0 Int) (top.res.inst_33_a_0 Bool) (top.res.inst_32_a_0 Bool) (top.res.inst_31_a_0 Bool) (top.res.inst_30_a_0 Bool) (top.res.inst_29_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Int) (top.res.inst_23_a_0 Int) (top.res.inst_22_a_0 Int) (top.res.inst_21_a_0 Int) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Int) (top.res.inst_10_a_0 Int) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Int) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_18_a_0)) (and (= top.res.abs_39_a_0 (not X1)) (let ((X2 top.res.abs_17_a_0)) (and (= top.res.abs_38_a_0 (not X2)) (let ((X3 top.res.abs_16_a_0)) (and (= top.res.abs_37_a_0 (not X3)) (let ((X4 top.res.abs_15_a_0)) (and (= top.res.abs_36_a_0 (not X4)) (let ((X5 top.res.abs_14_a_0)) (and (= top.res.abs_34_a_0 (not X5)) (let ((X6 top.res.abs_13_a_0)) (and (= top.res.abs_33_a_0 (not X6)) (let ((X7 top.res.abs_12_a_0)) (and (= top.res.abs_32_a_0 (not X7)) (let ((X8 top.res.abs_11_a_0)) (and (= top.res.abs_31_a_0 (not X8)) (let ((X9 top.res.abs_20_a_0)) (let ((X10 top.res.abs_19_a_0)) (let ((X11 top.res.abs_2_a_0)) (let ((X12 top.res.abs_1_a_0)) (let ((X13 (=> (= X12 3) (not X11)))) (let ((X14 (=> (= X12 3) (and (and (and (not X10) (not X9)) top.res.abs_35_a_0) top.res.abs_40_a_0)))) (let ((X15 (or (or (or (or (or (= X12 1) (= X12 2)) (= X12 3)) (= X12 4)) (= X12 5)) (= X12 6)))) (and (= top.usr.OK_a_0 (and (and X15 X14) X13)) (__node_init_BoilerController_0 top.usr.stop_a_0 top.usr.steam_boiler_waiting_a_0 top.usr.physical_units_ready_a_0 top.usr.level_a_0 top.usr.steam_a_0 top.usr.pump_state_0_a_0 top.usr.pump_state_1_a_0 top.usr.pump_state_2_a_0 top.usr.pump_state_3_a_0 top.usr.pump_control_state_0_a_0 top.usr.pump_control_state_1_a_0 top.usr.pump_control_state_2_a_0 top.usr.pump_control_state_3_a_0 top.usr.pump_repaired_0_a_0 top.usr.pump_repaired_1_a_0 top.usr.pump_repaired_2_a_0 top.usr.pump_repaired_3_a_0 top.usr.pump_control_repaired_0_a_0 top.usr.pump_control_repaired_1_a_0 top.usr.pump_control_repaired_2_a_0 top.usr.pump_control_repaired_3_a_0 top.usr.level_repaired_a_0 top.usr.steam_repaired_a_0 top.usr.pump_failure_acknowledgement_0_a_0 top.usr.pump_failure_acknowledgement_1_a_0 top.usr.pump_failure_acknowledgement_2_a_0 top.usr.pump_failure_acknowledgement_3_a_0 top.usr.pump_control_failure_acknowledgement_0_a_0 top.usr.pump_control_failure_acknowledgement_1_a_0 top.usr.pump_control_failure_acknowledgement_2_a_0 top.usr.pump_control_failure_acknowledgement_3_a_0 top.usr.level_failure_acknowledgement_a_0 top.usr.steam_failure_acknowledgement_a_0 top.res.nondet_32 top.res.nondet_31 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.abs_13_a_0 top.res.abs_14_a_0 top.res.abs_15_a_0 top.res.abs_16_a_0 top.res.abs_17_a_0 top.res.abs_18_a_0 top.res.abs_19_a_0 top.res.abs_20_a_0 top.res.abs_21_a_0 top.res.abs_22_a_0 top.res.abs_23_a_0 top.res.abs_24_a_0 top.res.abs_25_a_0 top.res.abs_26_a_0 top.res.abs_27_a_0 top.res.abs_28_a_0 top.res.abs_29_a_0 top.res.abs_30_a_0 top.res.inst_297_a_0 top.res.inst_296_a_0 top.res.inst_295_a_0 top.res.inst_294_a_0 top.res.inst_293_a_0 top.res.inst_292_a_0 top.res.inst_291_a_0 top.res.inst_290_a_0 top.res.inst_289_a_0 top.res.inst_288_a_0 top.res.inst_287_a_0 top.res.inst_286_a_0 top.res.inst_285_a_0 top.res.inst_284_a_0 top.res.inst_283_a_0 top.res.inst_282_a_0 top.res.inst_281_a_0 top.res.inst_280_a_0 top.res.inst_279_a_0 top.res.inst_278_a_0 top.res.inst_277_a_0 top.res.inst_276_a_0 top.res.inst_275_a_0 top.res.inst_274_a_0 top.res.inst_273_a_0 top.res.inst_272_a_0 top.res.inst_271_a_0 top.res.inst_270_a_0 top.res.inst_269_a_0 top.res.inst_268_a_0 top.res.inst_267_a_0 top.res.inst_266_a_0 top.res.inst_265_a_0 top.res.inst_264_a_0 top.res.inst_263_a_0 top.res.inst_262_a_0 top.res.inst_261_a_0 top.res.inst_260_a_0 top.res.inst_259_a_0 top.res.inst_258_a_0 top.res.inst_257_a_0 top.res.inst_256_a_0 top.res.inst_255_a_0 top.res.inst_254_a_0 top.res.inst_253_a_0 top.res.inst_252_a_0 top.res.inst_251_a_0 top.res.inst_250_a_0 top.res.inst_249_a_0 top.res.inst_248_a_0 top.res.inst_247_a_0 top.res.inst_246_a_0 top.res.inst_245_a_0 top.res.inst_244_a_0 top.res.inst_243_a_0 top.res.inst_242_a_0 top.res.inst_241_a_0 top.res.inst_240_a_0 top.res.inst_239_a_0 top.res.inst_238_a_0 top.res.inst_237_a_0 top.res.inst_236_a_0 top.res.inst_235_a_0 top.res.inst_234_a_0 top.res.inst_233_a_0 top.res.inst_232_a_0 top.res.inst_231_a_0 top.res.inst_230_a_0 top.res.inst_229_a_0 top.res.inst_228_a_0 top.res.inst_227_a_0 top.res.inst_226_a_0 top.res.inst_225_a_0 top.res.inst_224_a_0 top.res.inst_223_a_0 top.res.inst_222_a_0 top.res.inst_221_a_0 top.res.inst_220_a_0 top.res.inst_219_a_0 top.res.inst_218_a_0 top.res.inst_217_a_0 top.res.inst_216_a_0 top.res.inst_215_a_0 top.res.inst_214_a_0 top.res.inst_213_a_0 top.res.inst_212_a_0 top.res.inst_211_a_0 top.res.inst_210_a_0 top.res.inst_209_a_0 top.res.inst_208_a_0 top.res.inst_207_a_0 top.res.inst_206_a_0 top.res.inst_205_a_0 top.res.inst_204_a_0 top.res.inst_203_a_0 top.res.inst_202_a_0 top.res.inst_201_a_0 top.res.inst_200_a_0 top.res.inst_199_a_0 top.res.inst_198_a_0 top.res.inst_197_a_0 top.res.inst_196_a_0 top.res.inst_195_a_0 top.res.inst_194_a_0 top.res.inst_193_a_0 top.res.inst_192_a_0 top.res.inst_191_a_0 top.res.inst_190_a_0 top.res.inst_189_a_0 top.res.inst_188_a_0 top.res.inst_187_a_0 top.res.inst_186_a_0 top.res.inst_185_a_0 top.res.inst_184_a_0 top.res.inst_183_a_0 top.res.inst_182_a_0 top.res.inst_181_a_0 top.res.inst_180_a_0 top.res.inst_179_a_0 top.res.inst_178_a_0 top.res.inst_177_a_0 top.res.inst_176_a_0 top.res.inst_175_a_0 top.res.inst_174_a_0 top.res.inst_173_a_0 top.res.inst_172_a_0 top.res.inst_171_a_0 top.res.inst_170_a_0 top.res.inst_169_a_0 top.res.inst_168_a_0 top.res.inst_167_a_0 top.res.inst_166_a_0 top.res.inst_165_a_0 top.res.inst_164_a_0 top.res.inst_163_a_0 top.res.inst_162_a_0 top.res.inst_161_a_0 top.res.inst_160_a_0 top.res.inst_159_a_0 top.res.inst_158_a_0 top.res.inst_157_a_0 top.res.inst_156_a_0 top.res.inst_155_a_0 top.res.inst_154_a_0 top.res.inst_153_a_0 top.res.inst_152_a_0 top.res.inst_151_a_0 top.res.inst_150_a_0 top.res.inst_149_a_0 top.res.inst_148_a_0 top.res.inst_147_a_0 top.res.inst_146_a_0 top.res.inst_145_a_0 top.res.inst_144_a_0 top.res.inst_143_a_0 top.res.inst_142_a_0 top.res.inst_141_a_0 top.res.inst_140_a_0 top.res.inst_139_a_0 top.res.inst_138_a_0 top.res.inst_137_a_0 top.res.inst_136_a_0 top.res.inst_135_a_0 top.res.inst_134_a_0 top.res.inst_133_a_0 top.res.inst_132_a_0 top.res.inst_131_a_0 top.res.inst_130_a_0 top.res.inst_129_a_0 top.res.inst_128_a_0 top.res.inst_127_a_0 top.res.inst_126_a_0 top.res.inst_125_a_0 top.res.inst_124_a_0 top.res.inst_123_a_0 top.res.inst_122_a_0 top.res.inst_121_a_0 top.res.inst_120_a_0 top.res.inst_119_a_0 top.res.inst_118_a_0 top.res.inst_117_a_0 top.res.inst_116_a_0 top.res.inst_115_a_0 top.res.inst_114_a_0 top.res.inst_113_a_0 top.res.inst_112_a_0 top.res.inst_111_a_0 top.res.inst_110_a_0 top.res.inst_109_a_0 top.res.inst_108_a_0 top.res.inst_107_a_0 top.res.inst_106_a_0 top.res.inst_105_a_0 top.res.inst_104_a_0 top.res.inst_103_a_0 top.res.inst_102_a_0 top.res.inst_101_a_0 top.res.inst_100_a_0 top.res.inst_99_a_0 top.res.inst_98_a_0 top.res.inst_97_a_0 top.res.inst_96_a_0 top.res.inst_95_a_0 top.res.inst_94_a_0 top.res.inst_93_a_0 top.res.inst_92_a_0 top.res.inst_91_a_0 top.res.inst_90_a_0 top.res.inst_89_a_0 top.res.inst_88_a_0 top.res.inst_87_a_0 top.res.inst_86_a_0 top.res.inst_85_a_0 top.res.inst_84_a_0 top.res.inst_83_a_0 top.res.inst_82_a_0 top.res.inst_81_a_0 top.res.inst_80_a_0 top.res.inst_79_a_0 top.res.inst_78_a_0 top.res.inst_77_a_0 top.res.inst_76_a_0 top.res.inst_75_a_0 top.res.inst_74_a_0 top.res.inst_73_a_0 top.res.inst_72_a_0 top.res.inst_71_a_0 top.res.inst_70_a_0 top.res.inst_69_a_0 top.res.inst_68_a_0 top.res.inst_67_a_0 top.res.inst_66_a_0 top.res.inst_65_a_0 top.res.inst_64_a_0 top.res.inst_63_a_0 top.res.inst_62_a_0 top.res.inst_61_a_0 top.res.inst_60_a_0 top.res.inst_59_a_0 top.res.inst_58_a_0 top.res.inst_57_a_0 top.res.inst_56_a_0 top.res.inst_55_a_0 top.res.inst_54_a_0 top.res.inst_53_a_0 top.res.inst_52_a_0 top.res.inst_51_a_0 top.res.inst_50_a_0 top.res.inst_49_a_0 top.res.inst_48_a_0 top.res.inst_47_a_0 top.res.inst_46_a_0 top.res.inst_45_a_0 top.res.inst_44_a_0 top.res.inst_43_a_0 top.res.inst_42_a_0 top.res.inst_41_a_0 top.res.inst_40_a_0 top.res.inst_39_a_0 top.res.inst_38_a_0 top.res.inst_37_a_0 top.res.inst_36_a_0 top.res.inst_35_a_0 top.res.inst_34_a_0 top.res.inst_33_a_0 top.res.inst_32_a_0 top.res.inst_31_a_0 top.res.inst_30_a_0 top.res.inst_29_a_0 top.res.inst_28_a_0 top.res.inst_27_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_AND_0 top.res.abs_31_a_0 top.res.abs_32_a_0 top.res.abs_33_a_0 top.res.abs_34_a_0 top.res.abs_35_a_0 top.res.inst_1_a_0) (__node_init_AND_0 top.res.abs_36_a_0 top.res.abs_37_a_0 top.res.abs_38_a_0 top.res.abs_39_a_0 top.res.abs_40_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))))))))))))))))))) +(define-fun __node_trans_top_0 ((top.usr.stop_a_1 Bool) (top.usr.steam_boiler_waiting_a_1 Bool) (top.usr.physical_units_ready_a_1 Bool) (top.usr.level_a_1 Int) (top.usr.steam_a_1 Int) (top.usr.pump_state_0_a_1 Int) (top.usr.pump_state_1_a_1 Int) (top.usr.pump_state_2_a_1 Int) (top.usr.pump_state_3_a_1 Int) (top.usr.pump_control_state_0_a_1 Bool) (top.usr.pump_control_state_1_a_1 Bool) (top.usr.pump_control_state_2_a_1 Bool) (top.usr.pump_control_state_3_a_1 Bool) (top.usr.pump_repaired_0_a_1 Bool) (top.usr.pump_repaired_1_a_1 Bool) (top.usr.pump_repaired_2_a_1 Bool) (top.usr.pump_repaired_3_a_1 Bool) (top.usr.pump_control_repaired_0_a_1 Bool) (top.usr.pump_control_repaired_1_a_1 Bool) (top.usr.pump_control_repaired_2_a_1 Bool) (top.usr.pump_control_repaired_3_a_1 Bool) (top.usr.level_repaired_a_1 Bool) (top.usr.steam_repaired_a_1 Bool) (top.usr.pump_failure_acknowledgement_0_a_1 Bool) (top.usr.pump_failure_acknowledgement_1_a_1 Bool) (top.usr.pump_failure_acknowledgement_2_a_1 Bool) (top.usr.pump_failure_acknowledgement_3_a_1 Bool) (top.usr.pump_control_failure_acknowledgement_0_a_1 Bool) (top.usr.pump_control_failure_acknowledgement_1_a_1 Bool) (top.usr.pump_control_failure_acknowledgement_2_a_1 Bool) (top.usr.pump_control_failure_acknowledgement_3_a_1 Bool) (top.usr.level_failure_acknowledgement_a_1 Bool) (top.usr.steam_failure_acknowledgement_a_1 Bool) (top.res.nondet_32 Int) (top.res.nondet_31 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.abs_12_a_1 Bool) (top.res.abs_13_a_1 Bool) (top.res.abs_14_a_1 Bool) (top.res.abs_15_a_1 Bool) (top.res.abs_16_a_1 Bool) (top.res.abs_17_a_1 Bool) (top.res.abs_18_a_1 Bool) (top.res.abs_19_a_1 Bool) (top.res.abs_20_a_1 Bool) (top.res.abs_21_a_1 Bool) (top.res.abs_22_a_1 Bool) (top.res.abs_23_a_1 Bool) (top.res.abs_24_a_1 Bool) (top.res.abs_25_a_1 Bool) (top.res.abs_26_a_1 Bool) (top.res.abs_27_a_1 Bool) (top.res.abs_28_a_1 Bool) (top.res.abs_29_a_1 Bool) (top.res.abs_30_a_1 Bool) (top.res.abs_31_a_1 Bool) (top.res.abs_32_a_1 Bool) (top.res.abs_33_a_1 Bool) (top.res.abs_34_a_1 Bool) (top.res.abs_35_a_1 Bool) (top.res.abs_36_a_1 Bool) (top.res.abs_37_a_1 Bool) (top.res.abs_38_a_1 Bool) (top.res.abs_39_a_1 Bool) (top.res.abs_40_a_1 Bool) (top.res.inst_297_a_1 Bool) (top.res.inst_296_a_1 Bool) (top.res.inst_295_a_1 Int) (top.res.inst_294_a_1 Int) (top.res.inst_293_a_1 Int) (top.res.inst_292_a_1 Int) (top.res.inst_291_a_1 Int) (top.res.inst_290_a_1 Int) (top.res.inst_289_a_1 Int) (top.res.inst_288_a_1 Int) (top.res.inst_287_a_1 Int) (top.res.inst_286_a_1 Int) (top.res.inst_285_a_1 Int) (top.res.inst_284_a_1 Int) (top.res.inst_283_a_1 Int) (top.res.inst_282_a_1 Int) (top.res.inst_281_a_1 Int) (top.res.inst_280_a_1 Int) (top.res.inst_279_a_1 Int) (top.res.inst_278_a_1 Bool) (top.res.inst_277_a_1 Int) (top.res.inst_276_a_1 Int) (top.res.inst_275_a_1 Int) (top.res.inst_274_a_1 Bool) (top.res.inst_273_a_1 Bool) (top.res.inst_272_a_1 Bool) (top.res.inst_271_a_1 Bool) (top.res.inst_270_a_1 Int) (top.res.inst_269_a_1 Int) (top.res.inst_268_a_1 Bool) (top.res.inst_267_a_1 Int) (top.res.inst_266_a_1 Int) (top.res.inst_265_a_1 Bool) (top.res.inst_264_a_1 Int) (top.res.inst_263_a_1 Bool) (top.res.inst_262_a_1 Bool) (top.res.inst_261_a_1 Bool) (top.res.inst_260_a_1 Bool) (top.res.inst_259_a_1 Int) (top.res.inst_258_a_1 Int) (top.res.inst_257_a_1 Bool) (top.res.inst_256_a_1 Int) (top.res.inst_255_a_1 Int) (top.res.inst_254_a_1 Bool) (top.res.inst_253_a_1 Int) (top.res.inst_252_a_1 Bool) (top.res.inst_251_a_1 Bool) (top.res.inst_250_a_1 Bool) (top.res.inst_249_a_1 Bool) (top.res.inst_248_a_1 Int) (top.res.inst_247_a_1 Int) (top.res.inst_246_a_1 Bool) (top.res.inst_245_a_1 Int) (top.res.inst_244_a_1 Int) (top.res.inst_243_a_1 Bool) (top.res.inst_242_a_1 Int) (top.res.inst_241_a_1 Bool) (top.res.inst_240_a_1 Bool) (top.res.inst_239_a_1 Bool) (top.res.inst_238_a_1 Bool) (top.res.inst_237_a_1 Int) (top.res.inst_236_a_1 Int) (top.res.inst_235_a_1 Bool) (top.res.inst_234_a_1 Int) (top.res.inst_233_a_1 Int) (top.res.inst_232_a_1 Bool) (top.res.inst_231_a_1 Int) (top.res.inst_230_a_1 Int) (top.res.inst_229_a_1 Int) (top.res.inst_228_a_1 Int) (top.res.inst_227_a_1 Int) (top.res.inst_226_a_1 Bool) (top.res.inst_225_a_1 Bool) (top.res.inst_224_a_1 Bool) (top.res.inst_223_a_1 Bool) (top.res.inst_222_a_1 Int) (top.res.inst_221_a_1 Int) (top.res.inst_220_a_1 Int) (top.res.inst_219_a_1 Int) (top.res.inst_218_a_1 Int) (top.res.inst_217_a_1 Int) (top.res.inst_216_a_1 Int) (top.res.inst_215_a_1 Int) (top.res.inst_214_a_1 Int) (top.res.inst_213_a_1 Int) (top.res.inst_212_a_1 Int) (top.res.inst_211_a_1 Int) (top.res.inst_210_a_1 Bool) (top.res.inst_209_a_1 Int) (top.res.inst_208_a_1 Bool) (top.res.inst_207_a_1 Int) (top.res.inst_206_a_1 Bool) (top.res.inst_205_a_1 Bool) (top.res.inst_204_a_1 Bool) (top.res.inst_203_a_1 Bool) (top.res.inst_202_a_1 Bool) (top.res.inst_201_a_1 Bool) (top.res.inst_200_a_1 Bool) (top.res.inst_199_a_1 Bool) (top.res.inst_198_a_1 Bool) (top.res.inst_197_a_1 Bool) (top.res.inst_196_a_1 Bool) (top.res.inst_195_a_1 Bool) (top.res.inst_194_a_1 Bool) (top.res.inst_193_a_1 Bool) (top.res.inst_192_a_1 Bool) (top.res.inst_191_a_1 Bool) (top.res.inst_190_a_1 Bool) (top.res.inst_189_a_1 Bool) (top.res.inst_188_a_1 Bool) (top.res.inst_187_a_1 Bool) (top.res.inst_186_a_1 Bool) (top.res.inst_185_a_1 Bool) (top.res.inst_184_a_1 Bool) (top.res.inst_183_a_1 Bool) (top.res.inst_182_a_1 Bool) (top.res.inst_181_a_1 Bool) (top.res.inst_180_a_1 Bool) (top.res.inst_179_a_1 Bool) (top.res.inst_178_a_1 Bool) (top.res.inst_177_a_1 Bool) (top.res.inst_176_a_1 Bool) (top.res.inst_175_a_1 Bool) (top.res.inst_174_a_1 Int) (top.res.inst_173_a_1 Bool) (top.res.inst_172_a_1 Bool) (top.res.inst_171_a_1 Bool) (top.res.inst_170_a_1 Bool) (top.res.inst_169_a_1 Bool) (top.res.inst_168_a_1 Bool) (top.res.inst_167_a_1 Bool) (top.res.inst_166_a_1 Bool) (top.res.inst_165_a_1 Bool) (top.res.inst_164_a_1 Bool) (top.res.inst_163_a_1 Bool) (top.res.inst_162_a_1 Bool) (top.res.inst_161_a_1 Bool) (top.res.inst_160_a_1 Bool) (top.res.inst_159_a_1 Bool) (top.res.inst_158_a_1 Bool) (top.res.inst_157_a_1 Bool) (top.res.inst_156_a_1 Bool) (top.res.inst_155_a_1 Bool) (top.res.inst_154_a_1 Bool) (top.res.inst_153_a_1 Bool) (top.res.inst_152_a_1 Bool) (top.res.inst_151_a_1 Bool) (top.res.inst_150_a_1 Bool) (top.res.inst_149_a_1 Bool) (top.res.inst_148_a_1 Bool) (top.res.inst_147_a_1 Bool) (top.res.inst_146_a_1 Bool) (top.res.inst_145_a_1 Bool) (top.res.inst_144_a_1 Bool) (top.res.inst_143_a_1 Bool) (top.res.inst_142_a_1 Bool) (top.res.inst_141_a_1 Bool) (top.res.inst_140_a_1 Bool) (top.res.inst_139_a_1 Bool) (top.res.inst_138_a_1 Bool) (top.res.inst_137_a_1 Bool) (top.res.inst_136_a_1 Bool) (top.res.inst_135_a_1 Bool) (top.res.inst_134_a_1 Bool) (top.res.inst_133_a_1 Bool) (top.res.inst_132_a_1 Bool) (top.res.inst_131_a_1 Bool) (top.res.inst_130_a_1 Bool) (top.res.inst_129_a_1 Bool) (top.res.inst_128_a_1 Bool) (top.res.inst_127_a_1 Bool) (top.res.inst_126_a_1 Bool) (top.res.inst_125_a_1 Bool) (top.res.inst_124_a_1 Bool) (top.res.inst_123_a_1 Bool) (top.res.inst_122_a_1 Int) (top.res.inst_121_a_1 Bool) (top.res.inst_120_a_1 Bool) (top.res.inst_119_a_1 Int) (top.res.inst_118_a_1 Int) (top.res.inst_117_a_1 Bool) (top.res.inst_116_a_1 Bool) (top.res.inst_115_a_1 Bool) (top.res.inst_114_a_1 Bool) (top.res.inst_113_a_1 Int) (top.res.inst_112_a_1 Int) (top.res.inst_111_a_1 Bool) (top.res.inst_110_a_1 Bool) (top.res.inst_109_a_1 Bool) (top.res.inst_108_a_1 Bool) (top.res.inst_107_a_1 Bool) (top.res.inst_106_a_1 Bool) (top.res.inst_105_a_1 Bool) (top.res.inst_104_a_1 Bool) (top.res.inst_103_a_1 Int) (top.res.inst_102_a_1 Int) (top.res.inst_101_a_1 Int) (top.res.inst_100_a_1 Int) (top.res.inst_99_a_1 Bool) (top.res.inst_98_a_1 Bool) (top.res.inst_97_a_1 Bool) (top.res.inst_96_a_1 Bool) (top.res.inst_95_a_1 Int) (top.res.inst_94_a_1 Int) (top.res.inst_93_a_1 Int) (top.res.inst_92_a_1 Int) (top.res.inst_91_a_1 Int) (top.res.inst_90_a_1 Int) (top.res.inst_89_a_1 Int) (top.res.inst_88_a_1 Int) (top.res.inst_87_a_1 Int) (top.res.inst_86_a_1 Int) (top.res.inst_85_a_1 Bool) (top.res.inst_84_a_1 Bool) (top.res.inst_83_a_1 Bool) (top.res.inst_82_a_1 Bool) (top.res.inst_81_a_1 Int) (top.res.inst_80_a_1 Int) (top.res.inst_79_a_1 Int) (top.res.inst_78_a_1 Int) (top.res.inst_77_a_1 Bool) (top.res.inst_76_a_1 Int) (top.res.inst_75_a_1 Bool) (top.res.inst_74_a_1 Int) (top.res.inst_73_a_1 Bool) (top.res.inst_72_a_1 Int) (top.res.inst_71_a_1 Bool) (top.res.inst_70_a_1 Int) (top.res.inst_69_a_1 Bool) (top.res.inst_68_a_1 Int) (top.res.inst_67_a_1 Bool) (top.res.inst_66_a_1 Int) (top.res.inst_65_a_1 Bool) (top.res.inst_64_a_1 Int) (top.res.inst_63_a_1 Bool) (top.res.inst_62_a_1 Int) (top.res.inst_61_a_1 Bool) (top.res.inst_60_a_1 Bool) (top.res.inst_59_a_1 Bool) (top.res.inst_58_a_1 Bool) (top.res.inst_57_a_1 Bool) (top.res.inst_56_a_1 Bool) (top.res.inst_55_a_1 Bool) (top.res.inst_54_a_1 Bool) (top.res.inst_53_a_1 Bool) (top.res.inst_52_a_1 Bool) (top.res.inst_51_a_1 Bool) (top.res.inst_50_a_1 Bool) (top.res.inst_49_a_1 Int) (top.res.inst_48_a_1 Bool) (top.res.inst_47_a_1 Bool) (top.res.inst_46_a_1 Bool) (top.res.inst_45_a_1 Bool) (top.res.inst_44_a_1 Bool) (top.res.inst_43_a_1 Bool) (top.res.inst_42_a_1 Bool) (top.res.inst_41_a_1 Bool) (top.res.inst_40_a_1 Bool) (top.res.inst_39_a_1 Bool) (top.res.inst_38_a_1 Bool) (top.res.inst_37_a_1 Int) (top.res.inst_36_a_1 Int) (top.res.inst_35_a_1 Int) (top.res.inst_34_a_1 Int) (top.res.inst_33_a_1 Bool) (top.res.inst_32_a_1 Bool) (top.res.inst_31_a_1 Bool) (top.res.inst_30_a_1 Bool) (top.res.inst_29_a_1 Bool) (top.res.inst_28_a_1 Bool) (top.res.inst_27_a_1 Bool) (top.res.inst_26_a_1 Bool) (top.res.inst_25_a_1 Bool) (top.res.inst_24_a_1 Int) (top.res.inst_23_a_1 Int) (top.res.inst_22_a_1 Int) (top.res.inst_21_a_1 Int) (top.res.inst_20_a_1 Bool) (top.res.inst_19_a_1 Bool) (top.res.inst_18_a_1 Bool) (top.res.inst_17_a_1 Bool) (top.res.inst_16_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Bool) (top.res.inst_11_a_1 Int) (top.res.inst_10_a_1 Int) (top.res.inst_9_a_1 Int) (top.res.inst_8_a_1 Int) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Bool) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.stop_a_0 Bool) (top.usr.steam_boiler_waiting_a_0 Bool) (top.usr.physical_units_ready_a_0 Bool) (top.usr.level_a_0 Int) (top.usr.steam_a_0 Int) (top.usr.pump_state_0_a_0 Int) (top.usr.pump_state_1_a_0 Int) (top.usr.pump_state_2_a_0 Int) (top.usr.pump_state_3_a_0 Int) (top.usr.pump_control_state_0_a_0 Bool) (top.usr.pump_control_state_1_a_0 Bool) (top.usr.pump_control_state_2_a_0 Bool) (top.usr.pump_control_state_3_a_0 Bool) (top.usr.pump_repaired_0_a_0 Bool) (top.usr.pump_repaired_1_a_0 Bool) (top.usr.pump_repaired_2_a_0 Bool) (top.usr.pump_repaired_3_a_0 Bool) (top.usr.pump_control_repaired_0_a_0 Bool) (top.usr.pump_control_repaired_1_a_0 Bool) (top.usr.pump_control_repaired_2_a_0 Bool) (top.usr.pump_control_repaired_3_a_0 Bool) (top.usr.level_repaired_a_0 Bool) (top.usr.steam_repaired_a_0 Bool) (top.usr.pump_failure_acknowledgement_0_a_0 Bool) (top.usr.pump_failure_acknowledgement_1_a_0 Bool) (top.usr.pump_failure_acknowledgement_2_a_0 Bool) (top.usr.pump_failure_acknowledgement_3_a_0 Bool) (top.usr.pump_control_failure_acknowledgement_0_a_0 Bool) (top.usr.pump_control_failure_acknowledgement_1_a_0 Bool) (top.usr.pump_control_failure_acknowledgement_2_a_0 Bool) (top.usr.pump_control_failure_acknowledgement_3_a_0 Bool) (top.usr.level_failure_acknowledgement_a_0 Bool) (top.usr.steam_failure_acknowledgement_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.abs_12_a_0 Bool) (top.res.abs_13_a_0 Bool) (top.res.abs_14_a_0 Bool) (top.res.abs_15_a_0 Bool) (top.res.abs_16_a_0 Bool) (top.res.abs_17_a_0 Bool) (top.res.abs_18_a_0 Bool) (top.res.abs_19_a_0 Bool) (top.res.abs_20_a_0 Bool) (top.res.abs_21_a_0 Bool) (top.res.abs_22_a_0 Bool) (top.res.abs_23_a_0 Bool) (top.res.abs_24_a_0 Bool) (top.res.abs_25_a_0 Bool) (top.res.abs_26_a_0 Bool) (top.res.abs_27_a_0 Bool) (top.res.abs_28_a_0 Bool) (top.res.abs_29_a_0 Bool) (top.res.abs_30_a_0 Bool) (top.res.abs_31_a_0 Bool) (top.res.abs_32_a_0 Bool) (top.res.abs_33_a_0 Bool) (top.res.abs_34_a_0 Bool) (top.res.abs_35_a_0 Bool) (top.res.abs_36_a_0 Bool) (top.res.abs_37_a_0 Bool) (top.res.abs_38_a_0 Bool) (top.res.abs_39_a_0 Bool) (top.res.abs_40_a_0 Bool) (top.res.inst_297_a_0 Bool) (top.res.inst_296_a_0 Bool) (top.res.inst_295_a_0 Int) (top.res.inst_294_a_0 Int) (top.res.inst_293_a_0 Int) (top.res.inst_292_a_0 Int) (top.res.inst_291_a_0 Int) (top.res.inst_290_a_0 Int) (top.res.inst_289_a_0 Int) (top.res.inst_288_a_0 Int) (top.res.inst_287_a_0 Int) (top.res.inst_286_a_0 Int) (top.res.inst_285_a_0 Int) (top.res.inst_284_a_0 Int) (top.res.inst_283_a_0 Int) (top.res.inst_282_a_0 Int) (top.res.inst_281_a_0 Int) (top.res.inst_280_a_0 Int) (top.res.inst_279_a_0 Int) (top.res.inst_278_a_0 Bool) (top.res.inst_277_a_0 Int) (top.res.inst_276_a_0 Int) (top.res.inst_275_a_0 Int) (top.res.inst_274_a_0 Bool) (top.res.inst_273_a_0 Bool) (top.res.inst_272_a_0 Bool) (top.res.inst_271_a_0 Bool) (top.res.inst_270_a_0 Int) (top.res.inst_269_a_0 Int) (top.res.inst_268_a_0 Bool) (top.res.inst_267_a_0 Int) (top.res.inst_266_a_0 Int) (top.res.inst_265_a_0 Bool) (top.res.inst_264_a_0 Int) (top.res.inst_263_a_0 Bool) (top.res.inst_262_a_0 Bool) (top.res.inst_261_a_0 Bool) (top.res.inst_260_a_0 Bool) (top.res.inst_259_a_0 Int) (top.res.inst_258_a_0 Int) (top.res.inst_257_a_0 Bool) (top.res.inst_256_a_0 Int) (top.res.inst_255_a_0 Int) (top.res.inst_254_a_0 Bool) (top.res.inst_253_a_0 Int) (top.res.inst_252_a_0 Bool) (top.res.inst_251_a_0 Bool) (top.res.inst_250_a_0 Bool) (top.res.inst_249_a_0 Bool) (top.res.inst_248_a_0 Int) (top.res.inst_247_a_0 Int) (top.res.inst_246_a_0 Bool) (top.res.inst_245_a_0 Int) (top.res.inst_244_a_0 Int) (top.res.inst_243_a_0 Bool) (top.res.inst_242_a_0 Int) (top.res.inst_241_a_0 Bool) (top.res.inst_240_a_0 Bool) (top.res.inst_239_a_0 Bool) (top.res.inst_238_a_0 Bool) (top.res.inst_237_a_0 Int) (top.res.inst_236_a_0 Int) (top.res.inst_235_a_0 Bool) (top.res.inst_234_a_0 Int) (top.res.inst_233_a_0 Int) (top.res.inst_232_a_0 Bool) (top.res.inst_231_a_0 Int) (top.res.inst_230_a_0 Int) (top.res.inst_229_a_0 Int) (top.res.inst_228_a_0 Int) (top.res.inst_227_a_0 Int) (top.res.inst_226_a_0 Bool) (top.res.inst_225_a_0 Bool) (top.res.inst_224_a_0 Bool) (top.res.inst_223_a_0 Bool) (top.res.inst_222_a_0 Int) (top.res.inst_221_a_0 Int) (top.res.inst_220_a_0 Int) (top.res.inst_219_a_0 Int) (top.res.inst_218_a_0 Int) (top.res.inst_217_a_0 Int) (top.res.inst_216_a_0 Int) (top.res.inst_215_a_0 Int) (top.res.inst_214_a_0 Int) (top.res.inst_213_a_0 Int) (top.res.inst_212_a_0 Int) (top.res.inst_211_a_0 Int) (top.res.inst_210_a_0 Bool) (top.res.inst_209_a_0 Int) (top.res.inst_208_a_0 Bool) (top.res.inst_207_a_0 Int) (top.res.inst_206_a_0 Bool) (top.res.inst_205_a_0 Bool) (top.res.inst_204_a_0 Bool) (top.res.inst_203_a_0 Bool) (top.res.inst_202_a_0 Bool) (top.res.inst_201_a_0 Bool) (top.res.inst_200_a_0 Bool) (top.res.inst_199_a_0 Bool) (top.res.inst_198_a_0 Bool) (top.res.inst_197_a_0 Bool) (top.res.inst_196_a_0 Bool) (top.res.inst_195_a_0 Bool) (top.res.inst_194_a_0 Bool) (top.res.inst_193_a_0 Bool) (top.res.inst_192_a_0 Bool) (top.res.inst_191_a_0 Bool) (top.res.inst_190_a_0 Bool) (top.res.inst_189_a_0 Bool) (top.res.inst_188_a_0 Bool) (top.res.inst_187_a_0 Bool) (top.res.inst_186_a_0 Bool) (top.res.inst_185_a_0 Bool) (top.res.inst_184_a_0 Bool) (top.res.inst_183_a_0 Bool) (top.res.inst_182_a_0 Bool) (top.res.inst_181_a_0 Bool) (top.res.inst_180_a_0 Bool) (top.res.inst_179_a_0 Bool) (top.res.inst_178_a_0 Bool) (top.res.inst_177_a_0 Bool) (top.res.inst_176_a_0 Bool) (top.res.inst_175_a_0 Bool) (top.res.inst_174_a_0 Int) (top.res.inst_173_a_0 Bool) (top.res.inst_172_a_0 Bool) (top.res.inst_171_a_0 Bool) (top.res.inst_170_a_0 Bool) (top.res.inst_169_a_0 Bool) (top.res.inst_168_a_0 Bool) (top.res.inst_167_a_0 Bool) (top.res.inst_166_a_0 Bool) (top.res.inst_165_a_0 Bool) (top.res.inst_164_a_0 Bool) (top.res.inst_163_a_0 Bool) (top.res.inst_162_a_0 Bool) (top.res.inst_161_a_0 Bool) (top.res.inst_160_a_0 Bool) (top.res.inst_159_a_0 Bool) (top.res.inst_158_a_0 Bool) (top.res.inst_157_a_0 Bool) (top.res.inst_156_a_0 Bool) (top.res.inst_155_a_0 Bool) (top.res.inst_154_a_0 Bool) (top.res.inst_153_a_0 Bool) (top.res.inst_152_a_0 Bool) (top.res.inst_151_a_0 Bool) (top.res.inst_150_a_0 Bool) (top.res.inst_149_a_0 Bool) (top.res.inst_148_a_0 Bool) (top.res.inst_147_a_0 Bool) (top.res.inst_146_a_0 Bool) (top.res.inst_145_a_0 Bool) (top.res.inst_144_a_0 Bool) (top.res.inst_143_a_0 Bool) (top.res.inst_142_a_0 Bool) (top.res.inst_141_a_0 Bool) (top.res.inst_140_a_0 Bool) (top.res.inst_139_a_0 Bool) (top.res.inst_138_a_0 Bool) (top.res.inst_137_a_0 Bool) (top.res.inst_136_a_0 Bool) (top.res.inst_135_a_0 Bool) (top.res.inst_134_a_0 Bool) (top.res.inst_133_a_0 Bool) (top.res.inst_132_a_0 Bool) (top.res.inst_131_a_0 Bool) (top.res.inst_130_a_0 Bool) (top.res.inst_129_a_0 Bool) (top.res.inst_128_a_0 Bool) (top.res.inst_127_a_0 Bool) (top.res.inst_126_a_0 Bool) (top.res.inst_125_a_0 Bool) (top.res.inst_124_a_0 Bool) (top.res.inst_123_a_0 Bool) (top.res.inst_122_a_0 Int) (top.res.inst_121_a_0 Bool) (top.res.inst_120_a_0 Bool) (top.res.inst_119_a_0 Int) (top.res.inst_118_a_0 Int) (top.res.inst_117_a_0 Bool) (top.res.inst_116_a_0 Bool) (top.res.inst_115_a_0 Bool) (top.res.inst_114_a_0 Bool) (top.res.inst_113_a_0 Int) (top.res.inst_112_a_0 Int) (top.res.inst_111_a_0 Bool) (top.res.inst_110_a_0 Bool) (top.res.inst_109_a_0 Bool) (top.res.inst_108_a_0 Bool) (top.res.inst_107_a_0 Bool) (top.res.inst_106_a_0 Bool) (top.res.inst_105_a_0 Bool) (top.res.inst_104_a_0 Bool) (top.res.inst_103_a_0 Int) (top.res.inst_102_a_0 Int) (top.res.inst_101_a_0 Int) (top.res.inst_100_a_0 Int) (top.res.inst_99_a_0 Bool) (top.res.inst_98_a_0 Bool) (top.res.inst_97_a_0 Bool) (top.res.inst_96_a_0 Bool) (top.res.inst_95_a_0 Int) (top.res.inst_94_a_0 Int) (top.res.inst_93_a_0 Int) (top.res.inst_92_a_0 Int) (top.res.inst_91_a_0 Int) (top.res.inst_90_a_0 Int) (top.res.inst_89_a_0 Int) (top.res.inst_88_a_0 Int) (top.res.inst_87_a_0 Int) (top.res.inst_86_a_0 Int) (top.res.inst_85_a_0 Bool) (top.res.inst_84_a_0 Bool) (top.res.inst_83_a_0 Bool) (top.res.inst_82_a_0 Bool) (top.res.inst_81_a_0 Int) (top.res.inst_80_a_0 Int) (top.res.inst_79_a_0 Int) (top.res.inst_78_a_0 Int) (top.res.inst_77_a_0 Bool) (top.res.inst_76_a_0 Int) (top.res.inst_75_a_0 Bool) (top.res.inst_74_a_0 Int) (top.res.inst_73_a_0 Bool) (top.res.inst_72_a_0 Int) (top.res.inst_71_a_0 Bool) (top.res.inst_70_a_0 Int) (top.res.inst_69_a_0 Bool) (top.res.inst_68_a_0 Int) (top.res.inst_67_a_0 Bool) (top.res.inst_66_a_0 Int) (top.res.inst_65_a_0 Bool) (top.res.inst_64_a_0 Int) (top.res.inst_63_a_0 Bool) (top.res.inst_62_a_0 Int) (top.res.inst_61_a_0 Bool) (top.res.inst_60_a_0 Bool) (top.res.inst_59_a_0 Bool) (top.res.inst_58_a_0 Bool) (top.res.inst_57_a_0 Bool) (top.res.inst_56_a_0 Bool) (top.res.inst_55_a_0 Bool) (top.res.inst_54_a_0 Bool) (top.res.inst_53_a_0 Bool) (top.res.inst_52_a_0 Bool) (top.res.inst_51_a_0 Bool) (top.res.inst_50_a_0 Bool) (top.res.inst_49_a_0 Int) (top.res.inst_48_a_0 Bool) (top.res.inst_47_a_0 Bool) (top.res.inst_46_a_0 Bool) (top.res.inst_45_a_0 Bool) (top.res.inst_44_a_0 Bool) (top.res.inst_43_a_0 Bool) (top.res.inst_42_a_0 Bool) (top.res.inst_41_a_0 Bool) (top.res.inst_40_a_0 Bool) (top.res.inst_39_a_0 Bool) (top.res.inst_38_a_0 Bool) (top.res.inst_37_a_0 Int) (top.res.inst_36_a_0 Int) (top.res.inst_35_a_0 Int) (top.res.inst_34_a_0 Int) (top.res.inst_33_a_0 Bool) (top.res.inst_32_a_0 Bool) (top.res.inst_31_a_0 Bool) (top.res.inst_30_a_0 Bool) (top.res.inst_29_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Int) (top.res.inst_23_a_0 Int) (top.res.inst_22_a_0 Int) (top.res.inst_21_a_0 Int) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Int) (top.res.inst_10_a_0 Int) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Int) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_18_a_1)) (and (= top.res.abs_39_a_1 (not X1)) (let ((X2 top.res.abs_17_a_1)) (and (= top.res.abs_38_a_1 (not X2)) (let ((X3 top.res.abs_16_a_1)) (and (= top.res.abs_37_a_1 (not X3)) (let ((X4 top.res.abs_15_a_1)) (and (= top.res.abs_36_a_1 (not X4)) (let ((X5 top.res.abs_14_a_1)) (and (= top.res.abs_34_a_1 (not X5)) (let ((X6 top.res.abs_13_a_1)) (and (= top.res.abs_33_a_1 (not X6)) (let ((X7 top.res.abs_12_a_1)) (and (= top.res.abs_32_a_1 (not X7)) (let ((X8 top.res.abs_11_a_1)) (and (= top.res.abs_31_a_1 (not X8)) (let ((X9 top.res.abs_20_a_1)) (let ((X10 top.res.abs_19_a_1)) (let ((X11 top.res.abs_2_a_1)) (let ((X12 top.res.abs_1_a_1)) (let ((X13 (=> (= X12 3) (not X11)))) (let ((X14 (=> (= X12 3) (and (and (and (not X10) (not X9)) top.res.abs_35_a_1) top.res.abs_40_a_1)))) (let ((X15 (or (or (or (or (or (= X12 1) (= X12 2)) (= X12 3)) (= X12 4)) (= X12 5)) (= X12 6)))) (and (= top.usr.OK_a_1 (and (and X15 X14) X13)) (__node_trans_BoilerController_0 top.usr.stop_a_1 top.usr.steam_boiler_waiting_a_1 top.usr.physical_units_ready_a_1 top.usr.level_a_1 top.usr.steam_a_1 top.usr.pump_state_0_a_1 top.usr.pump_state_1_a_1 top.usr.pump_state_2_a_1 top.usr.pump_state_3_a_1 top.usr.pump_control_state_0_a_1 top.usr.pump_control_state_1_a_1 top.usr.pump_control_state_2_a_1 top.usr.pump_control_state_3_a_1 top.usr.pump_repaired_0_a_1 top.usr.pump_repaired_1_a_1 top.usr.pump_repaired_2_a_1 top.usr.pump_repaired_3_a_1 top.usr.pump_control_repaired_0_a_1 top.usr.pump_control_repaired_1_a_1 top.usr.pump_control_repaired_2_a_1 top.usr.pump_control_repaired_3_a_1 top.usr.level_repaired_a_1 top.usr.steam_repaired_a_1 top.usr.pump_failure_acknowledgement_0_a_1 top.usr.pump_failure_acknowledgement_1_a_1 top.usr.pump_failure_acknowledgement_2_a_1 top.usr.pump_failure_acknowledgement_3_a_1 top.usr.pump_control_failure_acknowledgement_0_a_1 top.usr.pump_control_failure_acknowledgement_1_a_1 top.usr.pump_control_failure_acknowledgement_2_a_1 top.usr.pump_control_failure_acknowledgement_3_a_1 top.usr.level_failure_acknowledgement_a_1 top.usr.steam_failure_acknowledgement_a_1 top.res.nondet_32 top.res.nondet_31 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.abs_12_a_1 top.res.abs_13_a_1 top.res.abs_14_a_1 top.res.abs_15_a_1 top.res.abs_16_a_1 top.res.abs_17_a_1 top.res.abs_18_a_1 top.res.abs_19_a_1 top.res.abs_20_a_1 top.res.abs_21_a_1 top.res.abs_22_a_1 top.res.abs_23_a_1 top.res.abs_24_a_1 top.res.abs_25_a_1 top.res.abs_26_a_1 top.res.abs_27_a_1 top.res.abs_28_a_1 top.res.abs_29_a_1 top.res.abs_30_a_1 top.res.inst_297_a_1 top.res.inst_296_a_1 top.res.inst_295_a_1 top.res.inst_294_a_1 top.res.inst_293_a_1 top.res.inst_292_a_1 top.res.inst_291_a_1 top.res.inst_290_a_1 top.res.inst_289_a_1 top.res.inst_288_a_1 top.res.inst_287_a_1 top.res.inst_286_a_1 top.res.inst_285_a_1 top.res.inst_284_a_1 top.res.inst_283_a_1 top.res.inst_282_a_1 top.res.inst_281_a_1 top.res.inst_280_a_1 top.res.inst_279_a_1 top.res.inst_278_a_1 top.res.inst_277_a_1 top.res.inst_276_a_1 top.res.inst_275_a_1 top.res.inst_274_a_1 top.res.inst_273_a_1 top.res.inst_272_a_1 top.res.inst_271_a_1 top.res.inst_270_a_1 top.res.inst_269_a_1 top.res.inst_268_a_1 top.res.inst_267_a_1 top.res.inst_266_a_1 top.res.inst_265_a_1 top.res.inst_264_a_1 top.res.inst_263_a_1 top.res.inst_262_a_1 top.res.inst_261_a_1 top.res.inst_260_a_1 top.res.inst_259_a_1 top.res.inst_258_a_1 top.res.inst_257_a_1 top.res.inst_256_a_1 top.res.inst_255_a_1 top.res.inst_254_a_1 top.res.inst_253_a_1 top.res.inst_252_a_1 top.res.inst_251_a_1 top.res.inst_250_a_1 top.res.inst_249_a_1 top.res.inst_248_a_1 top.res.inst_247_a_1 top.res.inst_246_a_1 top.res.inst_245_a_1 top.res.inst_244_a_1 top.res.inst_243_a_1 top.res.inst_242_a_1 top.res.inst_241_a_1 top.res.inst_240_a_1 top.res.inst_239_a_1 top.res.inst_238_a_1 top.res.inst_237_a_1 top.res.inst_236_a_1 top.res.inst_235_a_1 top.res.inst_234_a_1 top.res.inst_233_a_1 top.res.inst_232_a_1 top.res.inst_231_a_1 top.res.inst_230_a_1 top.res.inst_229_a_1 top.res.inst_228_a_1 top.res.inst_227_a_1 top.res.inst_226_a_1 top.res.inst_225_a_1 top.res.inst_224_a_1 top.res.inst_223_a_1 top.res.inst_222_a_1 top.res.inst_221_a_1 top.res.inst_220_a_1 top.res.inst_219_a_1 top.res.inst_218_a_1 top.res.inst_217_a_1 top.res.inst_216_a_1 top.res.inst_215_a_1 top.res.inst_214_a_1 top.res.inst_213_a_1 top.res.inst_212_a_1 top.res.inst_211_a_1 top.res.inst_210_a_1 top.res.inst_209_a_1 top.res.inst_208_a_1 top.res.inst_207_a_1 top.res.inst_206_a_1 top.res.inst_205_a_1 top.res.inst_204_a_1 top.res.inst_203_a_1 top.res.inst_202_a_1 top.res.inst_201_a_1 top.res.inst_200_a_1 top.res.inst_199_a_1 top.res.inst_198_a_1 top.res.inst_197_a_1 top.res.inst_196_a_1 top.res.inst_195_a_1 top.res.inst_194_a_1 top.res.inst_193_a_1 top.res.inst_192_a_1 top.res.inst_191_a_1 top.res.inst_190_a_1 top.res.inst_189_a_1 top.res.inst_188_a_1 top.res.inst_187_a_1 top.res.inst_186_a_1 top.res.inst_185_a_1 top.res.inst_184_a_1 top.res.inst_183_a_1 top.res.inst_182_a_1 top.res.inst_181_a_1 top.res.inst_180_a_1 top.res.inst_179_a_1 top.res.inst_178_a_1 top.res.inst_177_a_1 top.res.inst_176_a_1 top.res.inst_175_a_1 top.res.inst_174_a_1 top.res.inst_173_a_1 top.res.inst_172_a_1 top.res.inst_171_a_1 top.res.inst_170_a_1 top.res.inst_169_a_1 top.res.inst_168_a_1 top.res.inst_167_a_1 top.res.inst_166_a_1 top.res.inst_165_a_1 top.res.inst_164_a_1 top.res.inst_163_a_1 top.res.inst_162_a_1 top.res.inst_161_a_1 top.res.inst_160_a_1 top.res.inst_159_a_1 top.res.inst_158_a_1 top.res.inst_157_a_1 top.res.inst_156_a_1 top.res.inst_155_a_1 top.res.inst_154_a_1 top.res.inst_153_a_1 top.res.inst_152_a_1 top.res.inst_151_a_1 top.res.inst_150_a_1 top.res.inst_149_a_1 top.res.inst_148_a_1 top.res.inst_147_a_1 top.res.inst_146_a_1 top.res.inst_145_a_1 top.res.inst_144_a_1 top.res.inst_143_a_1 top.res.inst_142_a_1 top.res.inst_141_a_1 top.res.inst_140_a_1 top.res.inst_139_a_1 top.res.inst_138_a_1 top.res.inst_137_a_1 top.res.inst_136_a_1 top.res.inst_135_a_1 top.res.inst_134_a_1 top.res.inst_133_a_1 top.res.inst_132_a_1 top.res.inst_131_a_1 top.res.inst_130_a_1 top.res.inst_129_a_1 top.res.inst_128_a_1 top.res.inst_127_a_1 top.res.inst_126_a_1 top.res.inst_125_a_1 top.res.inst_124_a_1 top.res.inst_123_a_1 top.res.inst_122_a_1 top.res.inst_121_a_1 top.res.inst_120_a_1 top.res.inst_119_a_1 top.res.inst_118_a_1 top.res.inst_117_a_1 top.res.inst_116_a_1 top.res.inst_115_a_1 top.res.inst_114_a_1 top.res.inst_113_a_1 top.res.inst_112_a_1 top.res.inst_111_a_1 top.res.inst_110_a_1 top.res.inst_109_a_1 top.res.inst_108_a_1 top.res.inst_107_a_1 top.res.inst_106_a_1 top.res.inst_105_a_1 top.res.inst_104_a_1 top.res.inst_103_a_1 top.res.inst_102_a_1 top.res.inst_101_a_1 top.res.inst_100_a_1 top.res.inst_99_a_1 top.res.inst_98_a_1 top.res.inst_97_a_1 top.res.inst_96_a_1 top.res.inst_95_a_1 top.res.inst_94_a_1 top.res.inst_93_a_1 top.res.inst_92_a_1 top.res.inst_91_a_1 top.res.inst_90_a_1 top.res.inst_89_a_1 top.res.inst_88_a_1 top.res.inst_87_a_1 top.res.inst_86_a_1 top.res.inst_85_a_1 top.res.inst_84_a_1 top.res.inst_83_a_1 top.res.inst_82_a_1 top.res.inst_81_a_1 top.res.inst_80_a_1 top.res.inst_79_a_1 top.res.inst_78_a_1 top.res.inst_77_a_1 top.res.inst_76_a_1 top.res.inst_75_a_1 top.res.inst_74_a_1 top.res.inst_73_a_1 top.res.inst_72_a_1 top.res.inst_71_a_1 top.res.inst_70_a_1 top.res.inst_69_a_1 top.res.inst_68_a_1 top.res.inst_67_a_1 top.res.inst_66_a_1 top.res.inst_65_a_1 top.res.inst_64_a_1 top.res.inst_63_a_1 top.res.inst_62_a_1 top.res.inst_61_a_1 top.res.inst_60_a_1 top.res.inst_59_a_1 top.res.inst_58_a_1 top.res.inst_57_a_1 top.res.inst_56_a_1 top.res.inst_55_a_1 top.res.inst_54_a_1 top.res.inst_53_a_1 top.res.inst_52_a_1 top.res.inst_51_a_1 top.res.inst_50_a_1 top.res.inst_49_a_1 top.res.inst_48_a_1 top.res.inst_47_a_1 top.res.inst_46_a_1 top.res.inst_45_a_1 top.res.inst_44_a_1 top.res.inst_43_a_1 top.res.inst_42_a_1 top.res.inst_41_a_1 top.res.inst_40_a_1 top.res.inst_39_a_1 top.res.inst_38_a_1 top.res.inst_37_a_1 top.res.inst_36_a_1 top.res.inst_35_a_1 top.res.inst_34_a_1 top.res.inst_33_a_1 top.res.inst_32_a_1 top.res.inst_31_a_1 top.res.inst_30_a_1 top.res.inst_29_a_1 top.res.inst_28_a_1 top.res.inst_27_a_1 top.res.inst_26_a_1 top.res.inst_25_a_1 top.res.inst_24_a_1 top.res.inst_23_a_1 top.res.inst_22_a_1 top.res.inst_21_a_1 top.res.inst_20_a_1 top.res.inst_19_a_1 top.res.inst_18_a_1 top.res.inst_17_a_1 top.res.inst_16_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.stop_a_0 top.usr.steam_boiler_waiting_a_0 top.usr.physical_units_ready_a_0 top.usr.level_a_0 top.usr.steam_a_0 top.usr.pump_state_0_a_0 top.usr.pump_state_1_a_0 top.usr.pump_state_2_a_0 top.usr.pump_state_3_a_0 top.usr.pump_control_state_0_a_0 top.usr.pump_control_state_1_a_0 top.usr.pump_control_state_2_a_0 top.usr.pump_control_state_3_a_0 top.usr.pump_repaired_0_a_0 top.usr.pump_repaired_1_a_0 top.usr.pump_repaired_2_a_0 top.usr.pump_repaired_3_a_0 top.usr.pump_control_repaired_0_a_0 top.usr.pump_control_repaired_1_a_0 top.usr.pump_control_repaired_2_a_0 top.usr.pump_control_repaired_3_a_0 top.usr.level_repaired_a_0 top.usr.steam_repaired_a_0 top.usr.pump_failure_acknowledgement_0_a_0 top.usr.pump_failure_acknowledgement_1_a_0 top.usr.pump_failure_acknowledgement_2_a_0 top.usr.pump_failure_acknowledgement_3_a_0 top.usr.pump_control_failure_acknowledgement_0_a_0 top.usr.pump_control_failure_acknowledgement_1_a_0 top.usr.pump_control_failure_acknowledgement_2_a_0 top.usr.pump_control_failure_acknowledgement_3_a_0 top.usr.level_failure_acknowledgement_a_0 top.usr.steam_failure_acknowledgement_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.abs_13_a_0 top.res.abs_14_a_0 top.res.abs_15_a_0 top.res.abs_16_a_0 top.res.abs_17_a_0 top.res.abs_18_a_0 top.res.abs_19_a_0 top.res.abs_20_a_0 top.res.abs_21_a_0 top.res.abs_22_a_0 top.res.abs_23_a_0 top.res.abs_24_a_0 top.res.abs_25_a_0 top.res.abs_26_a_0 top.res.abs_27_a_0 top.res.abs_28_a_0 top.res.abs_29_a_0 top.res.abs_30_a_0 top.res.inst_297_a_0 top.res.inst_296_a_0 top.res.inst_295_a_0 top.res.inst_294_a_0 top.res.inst_293_a_0 top.res.inst_292_a_0 top.res.inst_291_a_0 top.res.inst_290_a_0 top.res.inst_289_a_0 top.res.inst_288_a_0 top.res.inst_287_a_0 top.res.inst_286_a_0 top.res.inst_285_a_0 top.res.inst_284_a_0 top.res.inst_283_a_0 top.res.inst_282_a_0 top.res.inst_281_a_0 top.res.inst_280_a_0 top.res.inst_279_a_0 top.res.inst_278_a_0 top.res.inst_277_a_0 top.res.inst_276_a_0 top.res.inst_275_a_0 top.res.inst_274_a_0 top.res.inst_273_a_0 top.res.inst_272_a_0 top.res.inst_271_a_0 top.res.inst_270_a_0 top.res.inst_269_a_0 top.res.inst_268_a_0 top.res.inst_267_a_0 top.res.inst_266_a_0 top.res.inst_265_a_0 top.res.inst_264_a_0 top.res.inst_263_a_0 top.res.inst_262_a_0 top.res.inst_261_a_0 top.res.inst_260_a_0 top.res.inst_259_a_0 top.res.inst_258_a_0 top.res.inst_257_a_0 top.res.inst_256_a_0 top.res.inst_255_a_0 top.res.inst_254_a_0 top.res.inst_253_a_0 top.res.inst_252_a_0 top.res.inst_251_a_0 top.res.inst_250_a_0 top.res.inst_249_a_0 top.res.inst_248_a_0 top.res.inst_247_a_0 top.res.inst_246_a_0 top.res.inst_245_a_0 top.res.inst_244_a_0 top.res.inst_243_a_0 top.res.inst_242_a_0 top.res.inst_241_a_0 top.res.inst_240_a_0 top.res.inst_239_a_0 top.res.inst_238_a_0 top.res.inst_237_a_0 top.res.inst_236_a_0 top.res.inst_235_a_0 top.res.inst_234_a_0 top.res.inst_233_a_0 top.res.inst_232_a_0 top.res.inst_231_a_0 top.res.inst_230_a_0 top.res.inst_229_a_0 top.res.inst_228_a_0 top.res.inst_227_a_0 top.res.inst_226_a_0 top.res.inst_225_a_0 top.res.inst_224_a_0 top.res.inst_223_a_0 top.res.inst_222_a_0 top.res.inst_221_a_0 top.res.inst_220_a_0 top.res.inst_219_a_0 top.res.inst_218_a_0 top.res.inst_217_a_0 top.res.inst_216_a_0 top.res.inst_215_a_0 top.res.inst_214_a_0 top.res.inst_213_a_0 top.res.inst_212_a_0 top.res.inst_211_a_0 top.res.inst_210_a_0 top.res.inst_209_a_0 top.res.inst_208_a_0 top.res.inst_207_a_0 top.res.inst_206_a_0 top.res.inst_205_a_0 top.res.inst_204_a_0 top.res.inst_203_a_0 top.res.inst_202_a_0 top.res.inst_201_a_0 top.res.inst_200_a_0 top.res.inst_199_a_0 top.res.inst_198_a_0 top.res.inst_197_a_0 top.res.inst_196_a_0 top.res.inst_195_a_0 top.res.inst_194_a_0 top.res.inst_193_a_0 top.res.inst_192_a_0 top.res.inst_191_a_0 top.res.inst_190_a_0 top.res.inst_189_a_0 top.res.inst_188_a_0 top.res.inst_187_a_0 top.res.inst_186_a_0 top.res.inst_185_a_0 top.res.inst_184_a_0 top.res.inst_183_a_0 top.res.inst_182_a_0 top.res.inst_181_a_0 top.res.inst_180_a_0 top.res.inst_179_a_0 top.res.inst_178_a_0 top.res.inst_177_a_0 top.res.inst_176_a_0 top.res.inst_175_a_0 top.res.inst_174_a_0 top.res.inst_173_a_0 top.res.inst_172_a_0 top.res.inst_171_a_0 top.res.inst_170_a_0 top.res.inst_169_a_0 top.res.inst_168_a_0 top.res.inst_167_a_0 top.res.inst_166_a_0 top.res.inst_165_a_0 top.res.inst_164_a_0 top.res.inst_163_a_0 top.res.inst_162_a_0 top.res.inst_161_a_0 top.res.inst_160_a_0 top.res.inst_159_a_0 top.res.inst_158_a_0 top.res.inst_157_a_0 top.res.inst_156_a_0 top.res.inst_155_a_0 top.res.inst_154_a_0 top.res.inst_153_a_0 top.res.inst_152_a_0 top.res.inst_151_a_0 top.res.inst_150_a_0 top.res.inst_149_a_0 top.res.inst_148_a_0 top.res.inst_147_a_0 top.res.inst_146_a_0 top.res.inst_145_a_0 top.res.inst_144_a_0 top.res.inst_143_a_0 top.res.inst_142_a_0 top.res.inst_141_a_0 top.res.inst_140_a_0 top.res.inst_139_a_0 top.res.inst_138_a_0 top.res.inst_137_a_0 top.res.inst_136_a_0 top.res.inst_135_a_0 top.res.inst_134_a_0 top.res.inst_133_a_0 top.res.inst_132_a_0 top.res.inst_131_a_0 top.res.inst_130_a_0 top.res.inst_129_a_0 top.res.inst_128_a_0 top.res.inst_127_a_0 top.res.inst_126_a_0 top.res.inst_125_a_0 top.res.inst_124_a_0 top.res.inst_123_a_0 top.res.inst_122_a_0 top.res.inst_121_a_0 top.res.inst_120_a_0 top.res.inst_119_a_0 top.res.inst_118_a_0 top.res.inst_117_a_0 top.res.inst_116_a_0 top.res.inst_115_a_0 top.res.inst_114_a_0 top.res.inst_113_a_0 top.res.inst_112_a_0 top.res.inst_111_a_0 top.res.inst_110_a_0 top.res.inst_109_a_0 top.res.inst_108_a_0 top.res.inst_107_a_0 top.res.inst_106_a_0 top.res.inst_105_a_0 top.res.inst_104_a_0 top.res.inst_103_a_0 top.res.inst_102_a_0 top.res.inst_101_a_0 top.res.inst_100_a_0 top.res.inst_99_a_0 top.res.inst_98_a_0 top.res.inst_97_a_0 top.res.inst_96_a_0 top.res.inst_95_a_0 top.res.inst_94_a_0 top.res.inst_93_a_0 top.res.inst_92_a_0 top.res.inst_91_a_0 top.res.inst_90_a_0 top.res.inst_89_a_0 top.res.inst_88_a_0 top.res.inst_87_a_0 top.res.inst_86_a_0 top.res.inst_85_a_0 top.res.inst_84_a_0 top.res.inst_83_a_0 top.res.inst_82_a_0 top.res.inst_81_a_0 top.res.inst_80_a_0 top.res.inst_79_a_0 top.res.inst_78_a_0 top.res.inst_77_a_0 top.res.inst_76_a_0 top.res.inst_75_a_0 top.res.inst_74_a_0 top.res.inst_73_a_0 top.res.inst_72_a_0 top.res.inst_71_a_0 top.res.inst_70_a_0 top.res.inst_69_a_0 top.res.inst_68_a_0 top.res.inst_67_a_0 top.res.inst_66_a_0 top.res.inst_65_a_0 top.res.inst_64_a_0 top.res.inst_63_a_0 top.res.inst_62_a_0 top.res.inst_61_a_0 top.res.inst_60_a_0 top.res.inst_59_a_0 top.res.inst_58_a_0 top.res.inst_57_a_0 top.res.inst_56_a_0 top.res.inst_55_a_0 top.res.inst_54_a_0 top.res.inst_53_a_0 top.res.inst_52_a_0 top.res.inst_51_a_0 top.res.inst_50_a_0 top.res.inst_49_a_0 top.res.inst_48_a_0 top.res.inst_47_a_0 top.res.inst_46_a_0 top.res.inst_45_a_0 top.res.inst_44_a_0 top.res.inst_43_a_0 top.res.inst_42_a_0 top.res.inst_41_a_0 top.res.inst_40_a_0 top.res.inst_39_a_0 top.res.inst_38_a_0 top.res.inst_37_a_0 top.res.inst_36_a_0 top.res.inst_35_a_0 top.res.inst_34_a_0 top.res.inst_33_a_0 top.res.inst_32_a_0 top.res.inst_31_a_0 top.res.inst_30_a_0 top.res.inst_29_a_0 top.res.inst_28_a_0 top.res.inst_27_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_AND_0 top.res.abs_31_a_1 top.res.abs_32_a_1 top.res.abs_33_a_1 top.res.abs_34_a_1 top.res.abs_35_a_1 top.res.inst_1_a_1 top.res.abs_31_a_0 top.res.abs_32_a_0 top.res.abs_33_a_0 top.res.abs_34_a_0 top.res.abs_35_a_0 top.res.inst_1_a_0) (__node_trans_AND_0 top.res.abs_36_a_1 top.res.abs_37_a_1 top.res.abs_38_a_1 top.res.abs_39_a_1 top.res.abs_40_a_1 top.res.inst_0_a_1 top.res.abs_36_a_0 top.res.abs_37_a_0 top.res.abs_38_a_0 top.res.abs_39_a_0 top.res.abs_40_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))))))))))))))))))))) +(synth-inv str_invariant ((top.usr.stop Bool) (top.usr.steam_boiler_waiting Bool) (top.usr.physical_units_ready Bool) (top.usr.level Int) (top.usr.steam Int) (top.usr.pump_state_0 Int) (top.usr.pump_state_1 Int) (top.usr.pump_state_2 Int) (top.usr.pump_state_3 Int) (top.usr.pump_control_state_0 Bool) (top.usr.pump_control_state_1 Bool) (top.usr.pump_control_state_2 Bool) (top.usr.pump_control_state_3 Bool) (top.usr.pump_repaired_0 Bool) (top.usr.pump_repaired_1 Bool) (top.usr.pump_repaired_2 Bool) (top.usr.pump_repaired_3 Bool) (top.usr.pump_control_repaired_0 Bool) (top.usr.pump_control_repaired_1 Bool) (top.usr.pump_control_repaired_2 Bool) (top.usr.pump_control_repaired_3 Bool) (top.usr.level_repaired Bool) (top.usr.steam_repaired Bool) (top.usr.pump_failure_acknowledgement_0 Bool) (top.usr.pump_failure_acknowledgement_1 Bool) (top.usr.pump_failure_acknowledgement_2 Bool) (top.usr.pump_failure_acknowledgement_3 Bool) (top.usr.pump_control_failure_acknowledgement_0 Bool) (top.usr.pump_control_failure_acknowledgement_1 Bool) (top.usr.pump_control_failure_acknowledgement_2 Bool) (top.usr.pump_control_failure_acknowledgement_3 Bool) (top.usr.level_failure_acknowledgement Bool) (top.usr.steam_failure_acknowledgement Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.abs_13 Bool) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.abs_17 Bool) (top.res.abs_18 Bool) (top.res.abs_19 Bool) (top.res.abs_20 Bool) (top.res.abs_21 Bool) (top.res.abs_22 Bool) (top.res.abs_23 Bool) (top.res.abs_24 Bool) (top.res.abs_25 Bool) (top.res.abs_26 Bool) (top.res.abs_27 Bool) (top.res.abs_28 Bool) (top.res.abs_29 Bool) (top.res.abs_30 Bool) (top.res.abs_31 Bool) (top.res.abs_32 Bool) (top.res.abs_33 Bool) (top.res.abs_34 Bool) (top.res.abs_35 Bool) (top.res.abs_36 Bool) (top.res.abs_37 Bool) (top.res.abs_38 Bool) (top.res.abs_39 Bool) (top.res.abs_40 Bool) (top.res.inst_297 Bool) (top.res.inst_296 Bool) (top.res.inst_295 Int) (top.res.inst_294 Int) (top.res.inst_293 Int) (top.res.inst_292 Int) (top.res.inst_291 Int) (top.res.inst_290 Int) (top.res.inst_289 Int) (top.res.inst_288 Int) (top.res.inst_287 Int) (top.res.inst_286 Int) (top.res.inst_285 Int) (top.res.inst_284 Int) (top.res.inst_283 Int) (top.res.inst_282 Int) (top.res.inst_281 Int) (top.res.inst_280 Int) (top.res.inst_279 Int) (top.res.inst_278 Bool) (top.res.inst_277 Int) (top.res.inst_276 Int) (top.res.inst_275 Int) (top.res.inst_274 Bool) (top.res.inst_273 Bool) (top.res.inst_272 Bool) (top.res.inst_271 Bool) (top.res.inst_270 Int) (top.res.inst_269 Int) (top.res.inst_268 Bool) (top.res.inst_267 Int) (top.res.inst_266 Int) (top.res.inst_265 Bool) (top.res.inst_264 Int) (top.res.inst_263 Bool) (top.res.inst_262 Bool) (top.res.inst_261 Bool) (top.res.inst_260 Bool) (top.res.inst_259 Int) (top.res.inst_258 Int) (top.res.inst_257 Bool) (top.res.inst_256 Int) (top.res.inst_255 Int) (top.res.inst_254 Bool) (top.res.inst_253 Int) (top.res.inst_252 Bool) (top.res.inst_251 Bool) (top.res.inst_250 Bool) (top.res.inst_249 Bool) (top.res.inst_248 Int) (top.res.inst_247 Int) (top.res.inst_246 Bool) (top.res.inst_245 Int) (top.res.inst_244 Int) (top.res.inst_243 Bool) (top.res.inst_242 Int) (top.res.inst_241 Bool) (top.res.inst_240 Bool) (top.res.inst_239 Bool) (top.res.inst_238 Bool) (top.res.inst_237 Int) (top.res.inst_236 Int) (top.res.inst_235 Bool) (top.res.inst_234 Int) (top.res.inst_233 Int) (top.res.inst_232 Bool) (top.res.inst_231 Int) (top.res.inst_230 Int) (top.res.inst_229 Int) (top.res.inst_228 Int) (top.res.inst_227 Int) (top.res.inst_226 Bool) (top.res.inst_225 Bool) (top.res.inst_224 Bool) (top.res.inst_223 Bool) (top.res.inst_222 Int) (top.res.inst_221 Int) (top.res.inst_220 Int) (top.res.inst_219 Int) (top.res.inst_218 Int) (top.res.inst_217 Int) (top.res.inst_216 Int) (top.res.inst_215 Int) (top.res.inst_214 Int) (top.res.inst_213 Int) (top.res.inst_212 Int) (top.res.inst_211 Int) (top.res.inst_210 Bool) (top.res.inst_209 Int) (top.res.inst_208 Bool) (top.res.inst_207 Int) (top.res.inst_206 Bool) (top.res.inst_205 Bool) (top.res.inst_204 Bool) (top.res.inst_203 Bool) (top.res.inst_202 Bool) (top.res.inst_201 Bool) (top.res.inst_200 Bool) (top.res.inst_199 Bool) (top.res.inst_198 Bool) (top.res.inst_197 Bool) (top.res.inst_196 Bool) (top.res.inst_195 Bool) (top.res.inst_194 Bool) (top.res.inst_193 Bool) (top.res.inst_192 Bool) (top.res.inst_191 Bool) (top.res.inst_190 Bool) (top.res.inst_189 Bool) (top.res.inst_188 Bool) (top.res.inst_187 Bool) (top.res.inst_186 Bool) (top.res.inst_185 Bool) (top.res.inst_184 Bool) (top.res.inst_183 Bool) (top.res.inst_182 Bool) (top.res.inst_181 Bool) (top.res.inst_180 Bool) (top.res.inst_179 Bool) (top.res.inst_178 Bool) (top.res.inst_177 Bool) (top.res.inst_176 Bool) (top.res.inst_175 Bool) (top.res.inst_174 Int) (top.res.inst_173 Bool) (top.res.inst_172 Bool) (top.res.inst_171 Bool) (top.res.inst_170 Bool) (top.res.inst_169 Bool) (top.res.inst_168 Bool) (top.res.inst_167 Bool) (top.res.inst_166 Bool) (top.res.inst_165 Bool) (top.res.inst_164 Bool) (top.res.inst_163 Bool) (top.res.inst_162 Bool) (top.res.inst_161 Bool) (top.res.inst_160 Bool) (top.res.inst_159 Bool) (top.res.inst_158 Bool) (top.res.inst_157 Bool) (top.res.inst_156 Bool) (top.res.inst_155 Bool) (top.res.inst_154 Bool) (top.res.inst_153 Bool) (top.res.inst_152 Bool) (top.res.inst_151 Bool) (top.res.inst_150 Bool) (top.res.inst_149 Bool) (top.res.inst_148 Bool) (top.res.inst_147 Bool) (top.res.inst_146 Bool) (top.res.inst_145 Bool) (top.res.inst_144 Bool) (top.res.inst_143 Bool) (top.res.inst_142 Bool) (top.res.inst_141 Bool) (top.res.inst_140 Bool) (top.res.inst_139 Bool) (top.res.inst_138 Bool) (top.res.inst_137 Bool) (top.res.inst_136 Bool) (top.res.inst_135 Bool) (top.res.inst_134 Bool) (top.res.inst_133 Bool) (top.res.inst_132 Bool) (top.res.inst_131 Bool) (top.res.inst_130 Bool) (top.res.inst_129 Bool) (top.res.inst_128 Bool) (top.res.inst_127 Bool) (top.res.inst_126 Bool) (top.res.inst_125 Bool) (top.res.inst_124 Bool) (top.res.inst_123 Bool) (top.res.inst_122 Int) (top.res.inst_121 Bool) (top.res.inst_120 Bool) (top.res.inst_119 Int) (top.res.inst_118 Int) (top.res.inst_117 Bool) (top.res.inst_116 Bool) (top.res.inst_115 Bool) (top.res.inst_114 Bool) (top.res.inst_113 Int) (top.res.inst_112 Int) (top.res.inst_111 Bool) (top.res.inst_110 Bool) (top.res.inst_109 Bool) (top.res.inst_108 Bool) (top.res.inst_107 Bool) (top.res.inst_106 Bool) (top.res.inst_105 Bool) (top.res.inst_104 Bool) (top.res.inst_103 Int) (top.res.inst_102 Int) (top.res.inst_101 Int) (top.res.inst_100 Int) (top.res.inst_99 Bool) (top.res.inst_98 Bool) (top.res.inst_97 Bool) (top.res.inst_96 Bool) (top.res.inst_95 Int) (top.res.inst_94 Int) (top.res.inst_93 Int) (top.res.inst_92 Int) (top.res.inst_91 Int) (top.res.inst_90 Int) (top.res.inst_89 Int) (top.res.inst_88 Int) (top.res.inst_87 Int) (top.res.inst_86 Int) (top.res.inst_85 Bool) (top.res.inst_84 Bool) (top.res.inst_83 Bool) (top.res.inst_82 Bool) (top.res.inst_81 Int) (top.res.inst_80 Int) (top.res.inst_79 Int) (top.res.inst_78 Int) (top.res.inst_77 Bool) (top.res.inst_76 Int) (top.res.inst_75 Bool) (top.res.inst_74 Int) (top.res.inst_73 Bool) (top.res.inst_72 Int) (top.res.inst_71 Bool) (top.res.inst_70 Int) (top.res.inst_69 Bool) (top.res.inst_68 Int) (top.res.inst_67 Bool) (top.res.inst_66 Int) (top.res.inst_65 Bool) (top.res.inst_64 Int) (top.res.inst_63 Bool) (top.res.inst_62 Int) (top.res.inst_61 Bool) (top.res.inst_60 Bool) (top.res.inst_59 Bool) (top.res.inst_58 Bool) (top.res.inst_57 Bool) (top.res.inst_56 Bool) (top.res.inst_55 Bool) (top.res.inst_54 Bool) (top.res.inst_53 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Bool) (top.res.inst_50 Bool) (top.res.inst_49 Int) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Int) (top.res.inst_36 Int) (top.res.inst_35 Int) (top.res.inst_34 Int) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Int) (top.res.inst_23 Int) (top.res.inst_22 Int) (top.res.inst_21 Int) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Int) (top.res.inst_10 Int) (top.res.inst_9 Int) (top.res.inst_8 Int) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_32 Int) +(declare-var top.res.nondet_31 Int) +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.stop Bool) (top.usr.steam_boiler_waiting Bool) (top.usr.physical_units_ready Bool) (top.usr.level Int) (top.usr.steam Int) (top.usr.pump_state_0 Int) (top.usr.pump_state_1 Int) (top.usr.pump_state_2 Int) (top.usr.pump_state_3 Int) (top.usr.pump_control_state_0 Bool) (top.usr.pump_control_state_1 Bool) (top.usr.pump_control_state_2 Bool) (top.usr.pump_control_state_3 Bool) (top.usr.pump_repaired_0 Bool) (top.usr.pump_repaired_1 Bool) (top.usr.pump_repaired_2 Bool) (top.usr.pump_repaired_3 Bool) (top.usr.pump_control_repaired_0 Bool) (top.usr.pump_control_repaired_1 Bool) (top.usr.pump_control_repaired_2 Bool) (top.usr.pump_control_repaired_3 Bool) (top.usr.level_repaired Bool) (top.usr.steam_repaired Bool) (top.usr.pump_failure_acknowledgement_0 Bool) (top.usr.pump_failure_acknowledgement_1 Bool) (top.usr.pump_failure_acknowledgement_2 Bool) (top.usr.pump_failure_acknowledgement_3 Bool) (top.usr.pump_control_failure_acknowledgement_0 Bool) (top.usr.pump_control_failure_acknowledgement_1 Bool) (top.usr.pump_control_failure_acknowledgement_2 Bool) (top.usr.pump_control_failure_acknowledgement_3 Bool) (top.usr.level_failure_acknowledgement Bool) (top.usr.steam_failure_acknowledgement Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.abs_13 Bool) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.abs_17 Bool) (top.res.abs_18 Bool) (top.res.abs_19 Bool) (top.res.abs_20 Bool) (top.res.abs_21 Bool) (top.res.abs_22 Bool) (top.res.abs_23 Bool) (top.res.abs_24 Bool) (top.res.abs_25 Bool) (top.res.abs_26 Bool) (top.res.abs_27 Bool) (top.res.abs_28 Bool) (top.res.abs_29 Bool) (top.res.abs_30 Bool) (top.res.abs_31 Bool) (top.res.abs_32 Bool) (top.res.abs_33 Bool) (top.res.abs_34 Bool) (top.res.abs_35 Bool) (top.res.abs_36 Bool) (top.res.abs_37 Bool) (top.res.abs_38 Bool) (top.res.abs_39 Bool) (top.res.abs_40 Bool) (top.res.inst_297 Bool) (top.res.inst_296 Bool) (top.res.inst_295 Int) (top.res.inst_294 Int) (top.res.inst_293 Int) (top.res.inst_292 Int) (top.res.inst_291 Int) (top.res.inst_290 Int) (top.res.inst_289 Int) (top.res.inst_288 Int) (top.res.inst_287 Int) (top.res.inst_286 Int) (top.res.inst_285 Int) (top.res.inst_284 Int) (top.res.inst_283 Int) (top.res.inst_282 Int) (top.res.inst_281 Int) (top.res.inst_280 Int) (top.res.inst_279 Int) (top.res.inst_278 Bool) (top.res.inst_277 Int) (top.res.inst_276 Int) (top.res.inst_275 Int) (top.res.inst_274 Bool) (top.res.inst_273 Bool) (top.res.inst_272 Bool) (top.res.inst_271 Bool) (top.res.inst_270 Int) (top.res.inst_269 Int) (top.res.inst_268 Bool) (top.res.inst_267 Int) (top.res.inst_266 Int) (top.res.inst_265 Bool) (top.res.inst_264 Int) (top.res.inst_263 Bool) (top.res.inst_262 Bool) (top.res.inst_261 Bool) (top.res.inst_260 Bool) (top.res.inst_259 Int) (top.res.inst_258 Int) (top.res.inst_257 Bool) (top.res.inst_256 Int) (top.res.inst_255 Int) (top.res.inst_254 Bool) (top.res.inst_253 Int) (top.res.inst_252 Bool) (top.res.inst_251 Bool) (top.res.inst_250 Bool) (top.res.inst_249 Bool) (top.res.inst_248 Int) (top.res.inst_247 Int) (top.res.inst_246 Bool) (top.res.inst_245 Int) (top.res.inst_244 Int) (top.res.inst_243 Bool) (top.res.inst_242 Int) (top.res.inst_241 Bool) (top.res.inst_240 Bool) (top.res.inst_239 Bool) (top.res.inst_238 Bool) (top.res.inst_237 Int) (top.res.inst_236 Int) (top.res.inst_235 Bool) (top.res.inst_234 Int) (top.res.inst_233 Int) (top.res.inst_232 Bool) (top.res.inst_231 Int) (top.res.inst_230 Int) (top.res.inst_229 Int) (top.res.inst_228 Int) (top.res.inst_227 Int) (top.res.inst_226 Bool) (top.res.inst_225 Bool) (top.res.inst_224 Bool) (top.res.inst_223 Bool) (top.res.inst_222 Int) (top.res.inst_221 Int) (top.res.inst_220 Int) (top.res.inst_219 Int) (top.res.inst_218 Int) (top.res.inst_217 Int) (top.res.inst_216 Int) (top.res.inst_215 Int) (top.res.inst_214 Int) (top.res.inst_213 Int) (top.res.inst_212 Int) (top.res.inst_211 Int) (top.res.inst_210 Bool) (top.res.inst_209 Int) (top.res.inst_208 Bool) (top.res.inst_207 Int) (top.res.inst_206 Bool) (top.res.inst_205 Bool) (top.res.inst_204 Bool) (top.res.inst_203 Bool) (top.res.inst_202 Bool) (top.res.inst_201 Bool) (top.res.inst_200 Bool) (top.res.inst_199 Bool) (top.res.inst_198 Bool) (top.res.inst_197 Bool) (top.res.inst_196 Bool) (top.res.inst_195 Bool) (top.res.inst_194 Bool) (top.res.inst_193 Bool) (top.res.inst_192 Bool) (top.res.inst_191 Bool) (top.res.inst_190 Bool) (top.res.inst_189 Bool) (top.res.inst_188 Bool) (top.res.inst_187 Bool) (top.res.inst_186 Bool) (top.res.inst_185 Bool) (top.res.inst_184 Bool) (top.res.inst_183 Bool) (top.res.inst_182 Bool) (top.res.inst_181 Bool) (top.res.inst_180 Bool) (top.res.inst_179 Bool) (top.res.inst_178 Bool) (top.res.inst_177 Bool) (top.res.inst_176 Bool) (top.res.inst_175 Bool) (top.res.inst_174 Int) (top.res.inst_173 Bool) (top.res.inst_172 Bool) (top.res.inst_171 Bool) (top.res.inst_170 Bool) (top.res.inst_169 Bool) (top.res.inst_168 Bool) (top.res.inst_167 Bool) (top.res.inst_166 Bool) (top.res.inst_165 Bool) (top.res.inst_164 Bool) (top.res.inst_163 Bool) (top.res.inst_162 Bool) (top.res.inst_161 Bool) (top.res.inst_160 Bool) (top.res.inst_159 Bool) (top.res.inst_158 Bool) (top.res.inst_157 Bool) (top.res.inst_156 Bool) (top.res.inst_155 Bool) (top.res.inst_154 Bool) (top.res.inst_153 Bool) (top.res.inst_152 Bool) (top.res.inst_151 Bool) (top.res.inst_150 Bool) (top.res.inst_149 Bool) (top.res.inst_148 Bool) (top.res.inst_147 Bool) (top.res.inst_146 Bool) (top.res.inst_145 Bool) (top.res.inst_144 Bool) (top.res.inst_143 Bool) (top.res.inst_142 Bool) (top.res.inst_141 Bool) (top.res.inst_140 Bool) (top.res.inst_139 Bool) (top.res.inst_138 Bool) (top.res.inst_137 Bool) (top.res.inst_136 Bool) (top.res.inst_135 Bool) (top.res.inst_134 Bool) (top.res.inst_133 Bool) (top.res.inst_132 Bool) (top.res.inst_131 Bool) (top.res.inst_130 Bool) (top.res.inst_129 Bool) (top.res.inst_128 Bool) (top.res.inst_127 Bool) (top.res.inst_126 Bool) (top.res.inst_125 Bool) (top.res.inst_124 Bool) (top.res.inst_123 Bool) (top.res.inst_122 Int) (top.res.inst_121 Bool) (top.res.inst_120 Bool) (top.res.inst_119 Int) (top.res.inst_118 Int) (top.res.inst_117 Bool) (top.res.inst_116 Bool) (top.res.inst_115 Bool) (top.res.inst_114 Bool) (top.res.inst_113 Int) (top.res.inst_112 Int) (top.res.inst_111 Bool) (top.res.inst_110 Bool) (top.res.inst_109 Bool) (top.res.inst_108 Bool) (top.res.inst_107 Bool) (top.res.inst_106 Bool) (top.res.inst_105 Bool) (top.res.inst_104 Bool) (top.res.inst_103 Int) (top.res.inst_102 Int) (top.res.inst_101 Int) (top.res.inst_100 Int) (top.res.inst_99 Bool) (top.res.inst_98 Bool) (top.res.inst_97 Bool) (top.res.inst_96 Bool) (top.res.inst_95 Int) (top.res.inst_94 Int) (top.res.inst_93 Int) (top.res.inst_92 Int) (top.res.inst_91 Int) (top.res.inst_90 Int) (top.res.inst_89 Int) (top.res.inst_88 Int) (top.res.inst_87 Int) (top.res.inst_86 Int) (top.res.inst_85 Bool) (top.res.inst_84 Bool) (top.res.inst_83 Bool) (top.res.inst_82 Bool) (top.res.inst_81 Int) (top.res.inst_80 Int) (top.res.inst_79 Int) (top.res.inst_78 Int) (top.res.inst_77 Bool) (top.res.inst_76 Int) (top.res.inst_75 Bool) (top.res.inst_74 Int) (top.res.inst_73 Bool) (top.res.inst_72 Int) (top.res.inst_71 Bool) (top.res.inst_70 Int) (top.res.inst_69 Bool) (top.res.inst_68 Int) (top.res.inst_67 Bool) (top.res.inst_66 Int) (top.res.inst_65 Bool) (top.res.inst_64 Int) (top.res.inst_63 Bool) (top.res.inst_62 Int) (top.res.inst_61 Bool) (top.res.inst_60 Bool) (top.res.inst_59 Bool) (top.res.inst_58 Bool) (top.res.inst_57 Bool) (top.res.inst_56 Bool) (top.res.inst_55 Bool) (top.res.inst_54 Bool) (top.res.inst_53 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Bool) (top.res.inst_50 Bool) (top.res.inst_49 Int) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Int) (top.res.inst_36 Int) (top.res.inst_35 Int) (top.res.inst_34 Int) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Int) (top.res.inst_23 Int) (top.res.inst_22 Int) (top.res.inst_21 Int) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Int) (top.res.inst_10 Int) (top.res.inst_9 Int) (top.res.inst_8 Int) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_18)) (and (= top.res.abs_39 (not X1)) (let ((X2 top.res.abs_17)) (and (= top.res.abs_38 (not X2)) (let ((X3 top.res.abs_16)) (and (= top.res.abs_37 (not X3)) (let ((X4 top.res.abs_15)) (and (= top.res.abs_36 (not X4)) (let ((X5 top.res.abs_14)) (and (= top.res.abs_34 (not X5)) (let ((X6 top.res.abs_13)) (and (= top.res.abs_33 (not X6)) (let ((X7 top.res.abs_12)) (and (= top.res.abs_32 (not X7)) (let ((X8 top.res.abs_11)) (and (= top.res.abs_31 (not X8)) (let ((X9 top.res.abs_20)) (let ((X10 top.res.abs_19)) (let ((X11 top.res.abs_2)) (let ((X12 top.res.abs_1)) (let ((X13 (=> (= X12 3) (not X11)))) (let ((X14 (=> (= X12 3) (and (and (and (not X10) (not X9)) top.res.abs_35) top.res.abs_40)))) (let ((X15 (or (or (or (or (or (= X12 1) (= X12 2)) (= X12 3)) (= X12 4)) (= X12 5)) (= X12 6)))) (and (= top.usr.OK (and (and X15 X14) X13)) (__node_init_BoilerController_0 top.usr.stop top.usr.steam_boiler_waiting top.usr.physical_units_ready top.usr.level top.usr.steam top.usr.pump_state_0 top.usr.pump_state_1 top.usr.pump_state_2 top.usr.pump_state_3 top.usr.pump_control_state_0 top.usr.pump_control_state_1 top.usr.pump_control_state_2 top.usr.pump_control_state_3 top.usr.pump_repaired_0 top.usr.pump_repaired_1 top.usr.pump_repaired_2 top.usr.pump_repaired_3 top.usr.pump_control_repaired_0 top.usr.pump_control_repaired_1 top.usr.pump_control_repaired_2 top.usr.pump_control_repaired_3 top.usr.level_repaired top.usr.steam_repaired top.usr.pump_failure_acknowledgement_0 top.usr.pump_failure_acknowledgement_1 top.usr.pump_failure_acknowledgement_2 top.usr.pump_failure_acknowledgement_3 top.usr.pump_control_failure_acknowledgement_0 top.usr.pump_control_failure_acknowledgement_1 top.usr.pump_control_failure_acknowledgement_2 top.usr.pump_control_failure_acknowledgement_3 top.usr.level_failure_acknowledgement top.usr.steam_failure_acknowledgement top.res.nondet_32 top.res.nondet_31 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.abs_10 top.res.abs_11 top.res.abs_12 top.res.abs_13 top.res.abs_14 top.res.abs_15 top.res.abs_16 top.res.abs_17 top.res.abs_18 top.res.abs_19 top.res.abs_20 top.res.abs_21 top.res.abs_22 top.res.abs_23 top.res.abs_24 top.res.abs_25 top.res.abs_26 top.res.abs_27 top.res.abs_28 top.res.abs_29 top.res.abs_30 top.res.inst_297 top.res.inst_296 top.res.inst_295 top.res.inst_294 top.res.inst_293 top.res.inst_292 top.res.inst_291 top.res.inst_290 top.res.inst_289 top.res.inst_288 top.res.inst_287 top.res.inst_286 top.res.inst_285 top.res.inst_284 top.res.inst_283 top.res.inst_282 top.res.inst_281 top.res.inst_280 top.res.inst_279 top.res.inst_278 top.res.inst_277 top.res.inst_276 top.res.inst_275 top.res.inst_274 top.res.inst_273 top.res.inst_272 top.res.inst_271 top.res.inst_270 top.res.inst_269 top.res.inst_268 top.res.inst_267 top.res.inst_266 top.res.inst_265 top.res.inst_264 top.res.inst_263 top.res.inst_262 top.res.inst_261 top.res.inst_260 top.res.inst_259 top.res.inst_258 top.res.inst_257 top.res.inst_256 top.res.inst_255 top.res.inst_254 top.res.inst_253 top.res.inst_252 top.res.inst_251 top.res.inst_250 top.res.inst_249 top.res.inst_248 top.res.inst_247 top.res.inst_246 top.res.inst_245 top.res.inst_244 top.res.inst_243 top.res.inst_242 top.res.inst_241 top.res.inst_240 top.res.inst_239 top.res.inst_238 top.res.inst_237 top.res.inst_236 top.res.inst_235 top.res.inst_234 top.res.inst_233 top.res.inst_232 top.res.inst_231 top.res.inst_230 top.res.inst_229 top.res.inst_228 top.res.inst_227 top.res.inst_226 top.res.inst_225 top.res.inst_224 top.res.inst_223 top.res.inst_222 top.res.inst_221 top.res.inst_220 top.res.inst_219 top.res.inst_218 top.res.inst_217 top.res.inst_216 top.res.inst_215 top.res.inst_214 top.res.inst_213 top.res.inst_212 top.res.inst_211 top.res.inst_210 top.res.inst_209 top.res.inst_208 top.res.inst_207 top.res.inst_206 top.res.inst_205 top.res.inst_204 top.res.inst_203 top.res.inst_202 top.res.inst_201 top.res.inst_200 top.res.inst_199 top.res.inst_198 top.res.inst_197 top.res.inst_196 top.res.inst_195 top.res.inst_194 top.res.inst_193 top.res.inst_192 top.res.inst_191 top.res.inst_190 top.res.inst_189 top.res.inst_188 top.res.inst_187 top.res.inst_186 top.res.inst_185 top.res.inst_184 top.res.inst_183 top.res.inst_182 top.res.inst_181 top.res.inst_180 top.res.inst_179 top.res.inst_178 top.res.inst_177 top.res.inst_176 top.res.inst_175 top.res.inst_174 top.res.inst_173 top.res.inst_172 top.res.inst_171 top.res.inst_170 top.res.inst_169 top.res.inst_168 top.res.inst_167 top.res.inst_166 top.res.inst_165 top.res.inst_164 top.res.inst_163 top.res.inst_162 top.res.inst_161 top.res.inst_160 top.res.inst_159 top.res.inst_158 top.res.inst_157 top.res.inst_156 top.res.inst_155 top.res.inst_154 top.res.inst_153 top.res.inst_152 top.res.inst_151 top.res.inst_150 top.res.inst_149 top.res.inst_148 top.res.inst_147 top.res.inst_146 top.res.inst_145 top.res.inst_144 top.res.inst_143 top.res.inst_142 top.res.inst_141 top.res.inst_140 top.res.inst_139 top.res.inst_138 top.res.inst_137 top.res.inst_136 top.res.inst_135 top.res.inst_134 top.res.inst_133 top.res.inst_132 top.res.inst_131 top.res.inst_130 top.res.inst_129 top.res.inst_128 top.res.inst_127 top.res.inst_126 top.res.inst_125 top.res.inst_124 top.res.inst_123 top.res.inst_122 top.res.inst_121 top.res.inst_120 top.res.inst_119 top.res.inst_118 top.res.inst_117 top.res.inst_116 top.res.inst_115 top.res.inst_114 top.res.inst_113 top.res.inst_112 top.res.inst_111 top.res.inst_110 top.res.inst_109 top.res.inst_108 top.res.inst_107 top.res.inst_106 top.res.inst_105 top.res.inst_104 top.res.inst_103 top.res.inst_102 top.res.inst_101 top.res.inst_100 top.res.inst_99 top.res.inst_98 top.res.inst_97 top.res.inst_96 top.res.inst_95 top.res.inst_94 top.res.inst_93 top.res.inst_92 top.res.inst_91 top.res.inst_90 top.res.inst_89 top.res.inst_88 top.res.inst_87 top.res.inst_86 top.res.inst_85 top.res.inst_84 top.res.inst_83 top.res.inst_82 top.res.inst_81 top.res.inst_80 top.res.inst_79 top.res.inst_78 top.res.inst_77 top.res.inst_76 top.res.inst_75 top.res.inst_74 top.res.inst_73 top.res.inst_72 top.res.inst_71 top.res.inst_70 top.res.inst_69 top.res.inst_68 top.res.inst_67 top.res.inst_66 top.res.inst_65 top.res.inst_64 top.res.inst_63 top.res.inst_62 top.res.inst_61 top.res.inst_60 top.res.inst_59 top.res.inst_58 top.res.inst_57 top.res.inst_56 top.res.inst_55 top.res.inst_54 top.res.inst_53 top.res.inst_52 top.res.inst_51 top.res.inst_50 top.res.inst_49 top.res.inst_48 top.res.inst_47 top.res.inst_46 top.res.inst_45 top.res.inst_44 top.res.inst_43 top.res.inst_42 top.res.inst_41 top.res.inst_40 top.res.inst_39 top.res.inst_38 top.res.inst_37 top.res.inst_36 top.res.inst_35 top.res.inst_34 top.res.inst_33 top.res.inst_32 top.res.inst_31 top.res.inst_30 top.res.inst_29 top.res.inst_28 top.res.inst_27 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2) (__node_init_AND_0 top.res.abs_31 top.res.abs_32 top.res.abs_33 top.res.abs_34 top.res.abs_35 top.res.inst_1) (__node_init_AND_0 top.res.abs_36 top.res.abs_37 top.res.abs_38 top.res.abs_39 top.res.abs_40 top.res.inst_0) top.res.init_flag))))))))))))))))))))))))) +(define-fun trans ((top.usr.stop Bool) (top.usr.steam_boiler_waiting Bool) (top.usr.physical_units_ready Bool) (top.usr.level Int) (top.usr.steam Int) (top.usr.pump_state_0 Int) (top.usr.pump_state_1 Int) (top.usr.pump_state_2 Int) (top.usr.pump_state_3 Int) (top.usr.pump_control_state_0 Bool) (top.usr.pump_control_state_1 Bool) (top.usr.pump_control_state_2 Bool) (top.usr.pump_control_state_3 Bool) (top.usr.pump_repaired_0 Bool) (top.usr.pump_repaired_1 Bool) (top.usr.pump_repaired_2 Bool) (top.usr.pump_repaired_3 Bool) (top.usr.pump_control_repaired_0 Bool) (top.usr.pump_control_repaired_1 Bool) (top.usr.pump_control_repaired_2 Bool) (top.usr.pump_control_repaired_3 Bool) (top.usr.level_repaired Bool) (top.usr.steam_repaired Bool) (top.usr.pump_failure_acknowledgement_0 Bool) (top.usr.pump_failure_acknowledgement_1 Bool) (top.usr.pump_failure_acknowledgement_2 Bool) (top.usr.pump_failure_acknowledgement_3 Bool) (top.usr.pump_control_failure_acknowledgement_0 Bool) (top.usr.pump_control_failure_acknowledgement_1 Bool) (top.usr.pump_control_failure_acknowledgement_2 Bool) (top.usr.pump_control_failure_acknowledgement_3 Bool) (top.usr.level_failure_acknowledgement Bool) (top.usr.steam_failure_acknowledgement Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.abs_13 Bool) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.abs_17 Bool) (top.res.abs_18 Bool) (top.res.abs_19 Bool) (top.res.abs_20 Bool) (top.res.abs_21 Bool) (top.res.abs_22 Bool) (top.res.abs_23 Bool) (top.res.abs_24 Bool) (top.res.abs_25 Bool) (top.res.abs_26 Bool) (top.res.abs_27 Bool) (top.res.abs_28 Bool) (top.res.abs_29 Bool) (top.res.abs_30 Bool) (top.res.abs_31 Bool) (top.res.abs_32 Bool) (top.res.abs_33 Bool) (top.res.abs_34 Bool) (top.res.abs_35 Bool) (top.res.abs_36 Bool) (top.res.abs_37 Bool) (top.res.abs_38 Bool) (top.res.abs_39 Bool) (top.res.abs_40 Bool) (top.res.inst_297 Bool) (top.res.inst_296 Bool) (top.res.inst_295 Int) (top.res.inst_294 Int) (top.res.inst_293 Int) (top.res.inst_292 Int) (top.res.inst_291 Int) (top.res.inst_290 Int) (top.res.inst_289 Int) (top.res.inst_288 Int) (top.res.inst_287 Int) (top.res.inst_286 Int) (top.res.inst_285 Int) (top.res.inst_284 Int) (top.res.inst_283 Int) (top.res.inst_282 Int) (top.res.inst_281 Int) (top.res.inst_280 Int) (top.res.inst_279 Int) (top.res.inst_278 Bool) (top.res.inst_277 Int) (top.res.inst_276 Int) (top.res.inst_275 Int) (top.res.inst_274 Bool) (top.res.inst_273 Bool) (top.res.inst_272 Bool) (top.res.inst_271 Bool) (top.res.inst_270 Int) (top.res.inst_269 Int) (top.res.inst_268 Bool) (top.res.inst_267 Int) (top.res.inst_266 Int) (top.res.inst_265 Bool) (top.res.inst_264 Int) (top.res.inst_263 Bool) (top.res.inst_262 Bool) (top.res.inst_261 Bool) (top.res.inst_260 Bool) (top.res.inst_259 Int) (top.res.inst_258 Int) (top.res.inst_257 Bool) (top.res.inst_256 Int) (top.res.inst_255 Int) (top.res.inst_254 Bool) (top.res.inst_253 Int) (top.res.inst_252 Bool) (top.res.inst_251 Bool) (top.res.inst_250 Bool) (top.res.inst_249 Bool) (top.res.inst_248 Int) (top.res.inst_247 Int) (top.res.inst_246 Bool) (top.res.inst_245 Int) (top.res.inst_244 Int) (top.res.inst_243 Bool) (top.res.inst_242 Int) (top.res.inst_241 Bool) (top.res.inst_240 Bool) (top.res.inst_239 Bool) (top.res.inst_238 Bool) (top.res.inst_237 Int) (top.res.inst_236 Int) (top.res.inst_235 Bool) (top.res.inst_234 Int) (top.res.inst_233 Int) (top.res.inst_232 Bool) (top.res.inst_231 Int) (top.res.inst_230 Int) (top.res.inst_229 Int) (top.res.inst_228 Int) (top.res.inst_227 Int) (top.res.inst_226 Bool) (top.res.inst_225 Bool) (top.res.inst_224 Bool) (top.res.inst_223 Bool) (top.res.inst_222 Int) (top.res.inst_221 Int) (top.res.inst_220 Int) (top.res.inst_219 Int) (top.res.inst_218 Int) (top.res.inst_217 Int) (top.res.inst_216 Int) (top.res.inst_215 Int) (top.res.inst_214 Int) (top.res.inst_213 Int) (top.res.inst_212 Int) (top.res.inst_211 Int) (top.res.inst_210 Bool) (top.res.inst_209 Int) (top.res.inst_208 Bool) (top.res.inst_207 Int) (top.res.inst_206 Bool) (top.res.inst_205 Bool) (top.res.inst_204 Bool) (top.res.inst_203 Bool) (top.res.inst_202 Bool) (top.res.inst_201 Bool) (top.res.inst_200 Bool) (top.res.inst_199 Bool) (top.res.inst_198 Bool) (top.res.inst_197 Bool) (top.res.inst_196 Bool) (top.res.inst_195 Bool) (top.res.inst_194 Bool) (top.res.inst_193 Bool) (top.res.inst_192 Bool) (top.res.inst_191 Bool) (top.res.inst_190 Bool) (top.res.inst_189 Bool) (top.res.inst_188 Bool) (top.res.inst_187 Bool) (top.res.inst_186 Bool) (top.res.inst_185 Bool) (top.res.inst_184 Bool) (top.res.inst_183 Bool) (top.res.inst_182 Bool) (top.res.inst_181 Bool) (top.res.inst_180 Bool) (top.res.inst_179 Bool) (top.res.inst_178 Bool) (top.res.inst_177 Bool) (top.res.inst_176 Bool) (top.res.inst_175 Bool) (top.res.inst_174 Int) (top.res.inst_173 Bool) (top.res.inst_172 Bool) (top.res.inst_171 Bool) (top.res.inst_170 Bool) (top.res.inst_169 Bool) (top.res.inst_168 Bool) (top.res.inst_167 Bool) (top.res.inst_166 Bool) (top.res.inst_165 Bool) (top.res.inst_164 Bool) (top.res.inst_163 Bool) (top.res.inst_162 Bool) (top.res.inst_161 Bool) (top.res.inst_160 Bool) (top.res.inst_159 Bool) (top.res.inst_158 Bool) (top.res.inst_157 Bool) (top.res.inst_156 Bool) (top.res.inst_155 Bool) (top.res.inst_154 Bool) (top.res.inst_153 Bool) (top.res.inst_152 Bool) (top.res.inst_151 Bool) (top.res.inst_150 Bool) (top.res.inst_149 Bool) (top.res.inst_148 Bool) (top.res.inst_147 Bool) (top.res.inst_146 Bool) (top.res.inst_145 Bool) (top.res.inst_144 Bool) (top.res.inst_143 Bool) (top.res.inst_142 Bool) (top.res.inst_141 Bool) (top.res.inst_140 Bool) (top.res.inst_139 Bool) (top.res.inst_138 Bool) (top.res.inst_137 Bool) (top.res.inst_136 Bool) (top.res.inst_135 Bool) (top.res.inst_134 Bool) (top.res.inst_133 Bool) (top.res.inst_132 Bool) (top.res.inst_131 Bool) (top.res.inst_130 Bool) (top.res.inst_129 Bool) (top.res.inst_128 Bool) (top.res.inst_127 Bool) (top.res.inst_126 Bool) (top.res.inst_125 Bool) (top.res.inst_124 Bool) (top.res.inst_123 Bool) (top.res.inst_122 Int) (top.res.inst_121 Bool) (top.res.inst_120 Bool) (top.res.inst_119 Int) (top.res.inst_118 Int) (top.res.inst_117 Bool) (top.res.inst_116 Bool) (top.res.inst_115 Bool) (top.res.inst_114 Bool) (top.res.inst_113 Int) (top.res.inst_112 Int) (top.res.inst_111 Bool) (top.res.inst_110 Bool) (top.res.inst_109 Bool) (top.res.inst_108 Bool) (top.res.inst_107 Bool) (top.res.inst_106 Bool) (top.res.inst_105 Bool) (top.res.inst_104 Bool) (top.res.inst_103 Int) (top.res.inst_102 Int) (top.res.inst_101 Int) (top.res.inst_100 Int) (top.res.inst_99 Bool) (top.res.inst_98 Bool) (top.res.inst_97 Bool) (top.res.inst_96 Bool) (top.res.inst_95 Int) (top.res.inst_94 Int) (top.res.inst_93 Int) (top.res.inst_92 Int) (top.res.inst_91 Int) (top.res.inst_90 Int) (top.res.inst_89 Int) (top.res.inst_88 Int) (top.res.inst_87 Int) (top.res.inst_86 Int) (top.res.inst_85 Bool) (top.res.inst_84 Bool) (top.res.inst_83 Bool) (top.res.inst_82 Bool) (top.res.inst_81 Int) (top.res.inst_80 Int) (top.res.inst_79 Int) (top.res.inst_78 Int) (top.res.inst_77 Bool) (top.res.inst_76 Int) (top.res.inst_75 Bool) (top.res.inst_74 Int) (top.res.inst_73 Bool) (top.res.inst_72 Int) (top.res.inst_71 Bool) (top.res.inst_70 Int) (top.res.inst_69 Bool) (top.res.inst_68 Int) (top.res.inst_67 Bool) (top.res.inst_66 Int) (top.res.inst_65 Bool) (top.res.inst_64 Int) (top.res.inst_63 Bool) (top.res.inst_62 Int) (top.res.inst_61 Bool) (top.res.inst_60 Bool) (top.res.inst_59 Bool) (top.res.inst_58 Bool) (top.res.inst_57 Bool) (top.res.inst_56 Bool) (top.res.inst_55 Bool) (top.res.inst_54 Bool) (top.res.inst_53 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Bool) (top.res.inst_50 Bool) (top.res.inst_49 Int) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Int) (top.res.inst_36 Int) (top.res.inst_35 Int) (top.res.inst_34 Int) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Int) (top.res.inst_23 Int) (top.res.inst_22 Int) (top.res.inst_21 Int) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Int) (top.res.inst_10 Int) (top.res.inst_9 Int) (top.res.inst_8 Int) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.stop! Bool) (top.usr.steam_boiler_waiting! Bool) (top.usr.physical_units_ready! Bool) (top.usr.level! Int) (top.usr.steam! Int) (top.usr.pump_state_0! Int) (top.usr.pump_state_1! Int) (top.usr.pump_state_2! Int) (top.usr.pump_state_3! Int) (top.usr.pump_control_state_0! Bool) (top.usr.pump_control_state_1! Bool) (top.usr.pump_control_state_2! Bool) (top.usr.pump_control_state_3! Bool) (top.usr.pump_repaired_0! Bool) (top.usr.pump_repaired_1! Bool) (top.usr.pump_repaired_2! Bool) (top.usr.pump_repaired_3! Bool) (top.usr.pump_control_repaired_0! Bool) (top.usr.pump_control_repaired_1! Bool) (top.usr.pump_control_repaired_2! Bool) (top.usr.pump_control_repaired_3! Bool) (top.usr.level_repaired! Bool) (top.usr.steam_repaired! Bool) (top.usr.pump_failure_acknowledgement_0! Bool) (top.usr.pump_failure_acknowledgement_1! Bool) (top.usr.pump_failure_acknowledgement_2! Bool) (top.usr.pump_failure_acknowledgement_3! Bool) (top.usr.pump_control_failure_acknowledgement_0! Bool) (top.usr.pump_control_failure_acknowledgement_1! Bool) (top.usr.pump_control_failure_acknowledgement_2! Bool) (top.usr.pump_control_failure_acknowledgement_3! Bool) (top.usr.level_failure_acknowledgement! Bool) (top.usr.steam_failure_acknowledgement! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Int) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.abs_12! Bool) (top.res.abs_13! Bool) (top.res.abs_14! Bool) (top.res.abs_15! Bool) (top.res.abs_16! Bool) (top.res.abs_17! Bool) (top.res.abs_18! Bool) (top.res.abs_19! Bool) (top.res.abs_20! Bool) (top.res.abs_21! Bool) (top.res.abs_22! Bool) (top.res.abs_23! Bool) (top.res.abs_24! Bool) (top.res.abs_25! Bool) (top.res.abs_26! Bool) (top.res.abs_27! Bool) (top.res.abs_28! Bool) (top.res.abs_29! Bool) (top.res.abs_30! Bool) (top.res.abs_31! Bool) (top.res.abs_32! Bool) (top.res.abs_33! Bool) (top.res.abs_34! Bool) (top.res.abs_35! Bool) (top.res.abs_36! Bool) (top.res.abs_37! Bool) (top.res.abs_38! Bool) (top.res.abs_39! Bool) (top.res.abs_40! Bool) (top.res.inst_297! Bool) (top.res.inst_296! Bool) (top.res.inst_295! Int) (top.res.inst_294! Int) (top.res.inst_293! Int) (top.res.inst_292! Int) (top.res.inst_291! Int) (top.res.inst_290! Int) (top.res.inst_289! Int) (top.res.inst_288! Int) (top.res.inst_287! Int) (top.res.inst_286! Int) (top.res.inst_285! Int) (top.res.inst_284! Int) (top.res.inst_283! Int) (top.res.inst_282! Int) (top.res.inst_281! Int) (top.res.inst_280! Int) (top.res.inst_279! Int) (top.res.inst_278! Bool) (top.res.inst_277! Int) (top.res.inst_276! Int) (top.res.inst_275! Int) (top.res.inst_274! Bool) (top.res.inst_273! Bool) (top.res.inst_272! Bool) (top.res.inst_271! Bool) (top.res.inst_270! Int) (top.res.inst_269! Int) (top.res.inst_268! Bool) (top.res.inst_267! Int) (top.res.inst_266! Int) (top.res.inst_265! Bool) (top.res.inst_264! Int) (top.res.inst_263! Bool) (top.res.inst_262! Bool) (top.res.inst_261! Bool) (top.res.inst_260! Bool) (top.res.inst_259! Int) (top.res.inst_258! Int) (top.res.inst_257! Bool) (top.res.inst_256! Int) (top.res.inst_255! Int) (top.res.inst_254! Bool) (top.res.inst_253! Int) (top.res.inst_252! Bool) (top.res.inst_251! Bool) (top.res.inst_250! Bool) (top.res.inst_249! Bool) (top.res.inst_248! Int) (top.res.inst_247! Int) (top.res.inst_246! Bool) (top.res.inst_245! Int) (top.res.inst_244! Int) (top.res.inst_243! Bool) (top.res.inst_242! Int) (top.res.inst_241! Bool) (top.res.inst_240! Bool) (top.res.inst_239! Bool) (top.res.inst_238! Bool) (top.res.inst_237! Int) (top.res.inst_236! Int) (top.res.inst_235! Bool) (top.res.inst_234! Int) (top.res.inst_233! Int) (top.res.inst_232! Bool) (top.res.inst_231! Int) (top.res.inst_230! Int) (top.res.inst_229! Int) (top.res.inst_228! Int) (top.res.inst_227! Int) (top.res.inst_226! Bool) (top.res.inst_225! Bool) (top.res.inst_224! Bool) (top.res.inst_223! Bool) (top.res.inst_222! Int) (top.res.inst_221! Int) (top.res.inst_220! Int) (top.res.inst_219! Int) (top.res.inst_218! Int) (top.res.inst_217! Int) (top.res.inst_216! Int) (top.res.inst_215! Int) (top.res.inst_214! Int) (top.res.inst_213! Int) (top.res.inst_212! Int) (top.res.inst_211! Int) (top.res.inst_210! Bool) (top.res.inst_209! Int) (top.res.inst_208! Bool) (top.res.inst_207! Int) (top.res.inst_206! Bool) (top.res.inst_205! Bool) (top.res.inst_204! Bool) (top.res.inst_203! Bool) (top.res.inst_202! Bool) (top.res.inst_201! Bool) (top.res.inst_200! Bool) (top.res.inst_199! Bool) (top.res.inst_198! Bool) (top.res.inst_197! Bool) (top.res.inst_196! Bool) (top.res.inst_195! Bool) (top.res.inst_194! Bool) (top.res.inst_193! Bool) (top.res.inst_192! Bool) (top.res.inst_191! Bool) (top.res.inst_190! Bool) (top.res.inst_189! Bool) (top.res.inst_188! Bool) (top.res.inst_187! Bool) (top.res.inst_186! Bool) (top.res.inst_185! Bool) (top.res.inst_184! Bool) (top.res.inst_183! Bool) (top.res.inst_182! Bool) (top.res.inst_181! Bool) (top.res.inst_180! Bool) (top.res.inst_179! Bool) (top.res.inst_178! Bool) (top.res.inst_177! Bool) (top.res.inst_176! Bool) (top.res.inst_175! Bool) (top.res.inst_174! Int) (top.res.inst_173! Bool) (top.res.inst_172! Bool) (top.res.inst_171! Bool) (top.res.inst_170! Bool) (top.res.inst_169! Bool) (top.res.inst_168! Bool) (top.res.inst_167! Bool) (top.res.inst_166! Bool) (top.res.inst_165! Bool) (top.res.inst_164! Bool) (top.res.inst_163! Bool) (top.res.inst_162! Bool) (top.res.inst_161! Bool) (top.res.inst_160! Bool) (top.res.inst_159! Bool) (top.res.inst_158! Bool) (top.res.inst_157! Bool) (top.res.inst_156! Bool) (top.res.inst_155! Bool) (top.res.inst_154! Bool) (top.res.inst_153! Bool) (top.res.inst_152! Bool) (top.res.inst_151! Bool) (top.res.inst_150! Bool) (top.res.inst_149! Bool) (top.res.inst_148! Bool) (top.res.inst_147! Bool) (top.res.inst_146! Bool) (top.res.inst_145! Bool) (top.res.inst_144! Bool) (top.res.inst_143! Bool) (top.res.inst_142! Bool) (top.res.inst_141! Bool) (top.res.inst_140! Bool) (top.res.inst_139! Bool) (top.res.inst_138! Bool) (top.res.inst_137! Bool) (top.res.inst_136! Bool) (top.res.inst_135! Bool) (top.res.inst_134! Bool) (top.res.inst_133! Bool) (top.res.inst_132! Bool) (top.res.inst_131! Bool) (top.res.inst_130! Bool) (top.res.inst_129! Bool) (top.res.inst_128! Bool) (top.res.inst_127! Bool) (top.res.inst_126! Bool) (top.res.inst_125! Bool) (top.res.inst_124! Bool) (top.res.inst_123! Bool) (top.res.inst_122! Int) (top.res.inst_121! Bool) (top.res.inst_120! Bool) (top.res.inst_119! Int) (top.res.inst_118! Int) (top.res.inst_117! Bool) (top.res.inst_116! Bool) (top.res.inst_115! Bool) (top.res.inst_114! Bool) (top.res.inst_113! Int) (top.res.inst_112! Int) (top.res.inst_111! Bool) (top.res.inst_110! Bool) (top.res.inst_109! Bool) (top.res.inst_108! Bool) (top.res.inst_107! Bool) (top.res.inst_106! Bool) (top.res.inst_105! Bool) (top.res.inst_104! Bool) (top.res.inst_103! Int) (top.res.inst_102! Int) (top.res.inst_101! Int) (top.res.inst_100! Int) (top.res.inst_99! Bool) (top.res.inst_98! Bool) (top.res.inst_97! Bool) (top.res.inst_96! Bool) (top.res.inst_95! Int) (top.res.inst_94! Int) (top.res.inst_93! Int) (top.res.inst_92! Int) (top.res.inst_91! Int) (top.res.inst_90! Int) (top.res.inst_89! Int) (top.res.inst_88! Int) (top.res.inst_87! Int) (top.res.inst_86! Int) (top.res.inst_85! Bool) (top.res.inst_84! Bool) (top.res.inst_83! Bool) (top.res.inst_82! Bool) (top.res.inst_81! Int) (top.res.inst_80! Int) (top.res.inst_79! Int) (top.res.inst_78! Int) (top.res.inst_77! Bool) (top.res.inst_76! Int) (top.res.inst_75! Bool) (top.res.inst_74! Int) (top.res.inst_73! Bool) (top.res.inst_72! Int) (top.res.inst_71! Bool) (top.res.inst_70! Int) (top.res.inst_69! Bool) (top.res.inst_68! Int) (top.res.inst_67! Bool) (top.res.inst_66! Int) (top.res.inst_65! Bool) (top.res.inst_64! Int) (top.res.inst_63! Bool) (top.res.inst_62! Int) (top.res.inst_61! Bool) (top.res.inst_60! Bool) (top.res.inst_59! Bool) (top.res.inst_58! Bool) (top.res.inst_57! Bool) (top.res.inst_56! Bool) (top.res.inst_55! Bool) (top.res.inst_54! Bool) (top.res.inst_53! Bool) (top.res.inst_52! Bool) (top.res.inst_51! Bool) (top.res.inst_50! Bool) (top.res.inst_49! Int) (top.res.inst_48! Bool) (top.res.inst_47! Bool) (top.res.inst_46! Bool) (top.res.inst_45! Bool) (top.res.inst_44! Bool) (top.res.inst_43! Bool) (top.res.inst_42! Bool) (top.res.inst_41! Bool) (top.res.inst_40! Bool) (top.res.inst_39! Bool) (top.res.inst_38! Bool) (top.res.inst_37! Int) (top.res.inst_36! Int) (top.res.inst_35! Int) (top.res.inst_34! Int) (top.res.inst_33! Bool) (top.res.inst_32! Bool) (top.res.inst_31! Bool) (top.res.inst_30! Bool) (top.res.inst_29! Bool) (top.res.inst_28! Bool) (top.res.inst_27! Bool) (top.res.inst_26! Bool) (top.res.inst_25! Bool) (top.res.inst_24! Int) (top.res.inst_23! Int) (top.res.inst_22! Int) (top.res.inst_21! Int) (top.res.inst_20! Bool) (top.res.inst_19! Bool) (top.res.inst_18! Bool) (top.res.inst_17! Bool) (top.res.inst_16! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Bool) (top.res.inst_11! Int) (top.res.inst_10! Int) (top.res.inst_9! Int) (top.res.inst_8! Int) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Bool) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_18!)) (and (= top.res.abs_39! (not X1)) (let ((X2 top.res.abs_17!)) (and (= top.res.abs_38! (not X2)) (let ((X3 top.res.abs_16!)) (and (= top.res.abs_37! (not X3)) (let ((X4 top.res.abs_15!)) (and (= top.res.abs_36! (not X4)) (let ((X5 top.res.abs_14!)) (and (= top.res.abs_34! (not X5)) (let ((X6 top.res.abs_13!)) (and (= top.res.abs_33! (not X6)) (let ((X7 top.res.abs_12!)) (and (= top.res.abs_32! (not X7)) (let ((X8 top.res.abs_11!)) (and (= top.res.abs_31! (not X8)) (let ((X9 top.res.abs_20!)) (let ((X10 top.res.abs_19!)) (let ((X11 top.res.abs_2!)) (let ((X12 top.res.abs_1!)) (let ((X13 (=> (= X12 3) (not X11)))) (let ((X14 (=> (= X12 3) (and (and (and (not X10) (not X9)) top.res.abs_35!) top.res.abs_40!)))) (let ((X15 (or (or (or (or (or (= X12 1) (= X12 2)) (= X12 3)) (= X12 4)) (= X12 5)) (= X12 6)))) (and (= top.usr.OK! (and (and X15 X14) X13)) (__node_trans_BoilerController_0 top.usr.stop! top.usr.steam_boiler_waiting! top.usr.physical_units_ready! top.usr.level! top.usr.steam! top.usr.pump_state_0! top.usr.pump_state_1! top.usr.pump_state_2! top.usr.pump_state_3! top.usr.pump_control_state_0! top.usr.pump_control_state_1! top.usr.pump_control_state_2! top.usr.pump_control_state_3! top.usr.pump_repaired_0! top.usr.pump_repaired_1! top.usr.pump_repaired_2! top.usr.pump_repaired_3! top.usr.pump_control_repaired_0! top.usr.pump_control_repaired_1! top.usr.pump_control_repaired_2! top.usr.pump_control_repaired_3! top.usr.level_repaired! top.usr.steam_repaired! top.usr.pump_failure_acknowledgement_0! top.usr.pump_failure_acknowledgement_1! top.usr.pump_failure_acknowledgement_2! top.usr.pump_failure_acknowledgement_3! top.usr.pump_control_failure_acknowledgement_0! top.usr.pump_control_failure_acknowledgement_1! top.usr.pump_control_failure_acknowledgement_2! top.usr.pump_control_failure_acknowledgement_3! top.usr.level_failure_acknowledgement! top.usr.steam_failure_acknowledgement! top.res.nondet_32 top.res.nondet_31 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.abs_10! top.res.abs_11! top.res.abs_12! top.res.abs_13! top.res.abs_14! top.res.abs_15! top.res.abs_16! top.res.abs_17! top.res.abs_18! top.res.abs_19! top.res.abs_20! top.res.abs_21! top.res.abs_22! top.res.abs_23! top.res.abs_24! top.res.abs_25! top.res.abs_26! top.res.abs_27! top.res.abs_28! top.res.abs_29! top.res.abs_30! top.res.inst_297! top.res.inst_296! top.res.inst_295! top.res.inst_294! top.res.inst_293! top.res.inst_292! top.res.inst_291! top.res.inst_290! top.res.inst_289! top.res.inst_288! top.res.inst_287! top.res.inst_286! top.res.inst_285! top.res.inst_284! top.res.inst_283! top.res.inst_282! top.res.inst_281! top.res.inst_280! top.res.inst_279! top.res.inst_278! top.res.inst_277! top.res.inst_276! top.res.inst_275! top.res.inst_274! top.res.inst_273! top.res.inst_272! top.res.inst_271! top.res.inst_270! top.res.inst_269! top.res.inst_268! top.res.inst_267! top.res.inst_266! top.res.inst_265! top.res.inst_264! top.res.inst_263! top.res.inst_262! top.res.inst_261! top.res.inst_260! top.res.inst_259! top.res.inst_258! top.res.inst_257! top.res.inst_256! top.res.inst_255! top.res.inst_254! top.res.inst_253! top.res.inst_252! top.res.inst_251! top.res.inst_250! top.res.inst_249! top.res.inst_248! top.res.inst_247! top.res.inst_246! top.res.inst_245! top.res.inst_244! top.res.inst_243! top.res.inst_242! top.res.inst_241! top.res.inst_240! top.res.inst_239! top.res.inst_238! top.res.inst_237! top.res.inst_236! top.res.inst_235! top.res.inst_234! top.res.inst_233! top.res.inst_232! top.res.inst_231! top.res.inst_230! top.res.inst_229! top.res.inst_228! top.res.inst_227! top.res.inst_226! top.res.inst_225! top.res.inst_224! top.res.inst_223! top.res.inst_222! top.res.inst_221! top.res.inst_220! top.res.inst_219! top.res.inst_218! top.res.inst_217! top.res.inst_216! top.res.inst_215! top.res.inst_214! top.res.inst_213! top.res.inst_212! top.res.inst_211! top.res.inst_210! top.res.inst_209! top.res.inst_208! top.res.inst_207! top.res.inst_206! top.res.inst_205! top.res.inst_204! top.res.inst_203! top.res.inst_202! top.res.inst_201! top.res.inst_200! top.res.inst_199! top.res.inst_198! top.res.inst_197! top.res.inst_196! top.res.inst_195! top.res.inst_194! top.res.inst_193! top.res.inst_192! top.res.inst_191! top.res.inst_190! top.res.inst_189! top.res.inst_188! top.res.inst_187! top.res.inst_186! top.res.inst_185! top.res.inst_184! top.res.inst_183! top.res.inst_182! top.res.inst_181! top.res.inst_180! top.res.inst_179! top.res.inst_178! top.res.inst_177! top.res.inst_176! top.res.inst_175! top.res.inst_174! top.res.inst_173! top.res.inst_172! top.res.inst_171! top.res.inst_170! top.res.inst_169! top.res.inst_168! top.res.inst_167! top.res.inst_166! top.res.inst_165! top.res.inst_164! top.res.inst_163! top.res.inst_162! top.res.inst_161! top.res.inst_160! top.res.inst_159! top.res.inst_158! top.res.inst_157! top.res.inst_156! top.res.inst_155! top.res.inst_154! top.res.inst_153! top.res.inst_152! top.res.inst_151! top.res.inst_150! top.res.inst_149! top.res.inst_148! top.res.inst_147! top.res.inst_146! top.res.inst_145! top.res.inst_144! top.res.inst_143! top.res.inst_142! top.res.inst_141! top.res.inst_140! top.res.inst_139! top.res.inst_138! top.res.inst_137! top.res.inst_136! top.res.inst_135! top.res.inst_134! top.res.inst_133! top.res.inst_132! top.res.inst_131! top.res.inst_130! top.res.inst_129! top.res.inst_128! top.res.inst_127! top.res.inst_126! top.res.inst_125! top.res.inst_124! top.res.inst_123! top.res.inst_122! top.res.inst_121! top.res.inst_120! top.res.inst_119! top.res.inst_118! top.res.inst_117! top.res.inst_116! top.res.inst_115! top.res.inst_114! top.res.inst_113! top.res.inst_112! top.res.inst_111! top.res.inst_110! top.res.inst_109! top.res.inst_108! top.res.inst_107! top.res.inst_106! top.res.inst_105! top.res.inst_104! top.res.inst_103! top.res.inst_102! top.res.inst_101! top.res.inst_100! top.res.inst_99! top.res.inst_98! top.res.inst_97! top.res.inst_96! top.res.inst_95! top.res.inst_94! top.res.inst_93! top.res.inst_92! top.res.inst_91! top.res.inst_90! top.res.inst_89! top.res.inst_88! top.res.inst_87! top.res.inst_86! top.res.inst_85! top.res.inst_84! top.res.inst_83! top.res.inst_82! top.res.inst_81! top.res.inst_80! top.res.inst_79! top.res.inst_78! top.res.inst_77! top.res.inst_76! top.res.inst_75! top.res.inst_74! top.res.inst_73! top.res.inst_72! top.res.inst_71! top.res.inst_70! top.res.inst_69! top.res.inst_68! top.res.inst_67! top.res.inst_66! top.res.inst_65! top.res.inst_64! top.res.inst_63! top.res.inst_62! top.res.inst_61! top.res.inst_60! top.res.inst_59! top.res.inst_58! top.res.inst_57! top.res.inst_56! top.res.inst_55! top.res.inst_54! top.res.inst_53! top.res.inst_52! top.res.inst_51! top.res.inst_50! top.res.inst_49! top.res.inst_48! top.res.inst_47! top.res.inst_46! top.res.inst_45! top.res.inst_44! top.res.inst_43! top.res.inst_42! top.res.inst_41! top.res.inst_40! top.res.inst_39! top.res.inst_38! top.res.inst_37! top.res.inst_36! top.res.inst_35! top.res.inst_34! top.res.inst_33! top.res.inst_32! top.res.inst_31! top.res.inst_30! top.res.inst_29! top.res.inst_28! top.res.inst_27! top.res.inst_26! top.res.inst_25! top.res.inst_24! top.res.inst_23! top.res.inst_22! top.res.inst_21! top.res.inst_20! top.res.inst_19! top.res.inst_18! top.res.inst_17! top.res.inst_16! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.usr.stop top.usr.steam_boiler_waiting top.usr.physical_units_ready top.usr.level top.usr.steam top.usr.pump_state_0 top.usr.pump_state_1 top.usr.pump_state_2 top.usr.pump_state_3 top.usr.pump_control_state_0 top.usr.pump_control_state_1 top.usr.pump_control_state_2 top.usr.pump_control_state_3 top.usr.pump_repaired_0 top.usr.pump_repaired_1 top.usr.pump_repaired_2 top.usr.pump_repaired_3 top.usr.pump_control_repaired_0 top.usr.pump_control_repaired_1 top.usr.pump_control_repaired_2 top.usr.pump_control_repaired_3 top.usr.level_repaired top.usr.steam_repaired top.usr.pump_failure_acknowledgement_0 top.usr.pump_failure_acknowledgement_1 top.usr.pump_failure_acknowledgement_2 top.usr.pump_failure_acknowledgement_3 top.usr.pump_control_failure_acknowledgement_0 top.usr.pump_control_failure_acknowledgement_1 top.usr.pump_control_failure_acknowledgement_2 top.usr.pump_control_failure_acknowledgement_3 top.usr.level_failure_acknowledgement top.usr.steam_failure_acknowledgement top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.abs_10 top.res.abs_11 top.res.abs_12 top.res.abs_13 top.res.abs_14 top.res.abs_15 top.res.abs_16 top.res.abs_17 top.res.abs_18 top.res.abs_19 top.res.abs_20 top.res.abs_21 top.res.abs_22 top.res.abs_23 top.res.abs_24 top.res.abs_25 top.res.abs_26 top.res.abs_27 top.res.abs_28 top.res.abs_29 top.res.abs_30 top.res.inst_297 top.res.inst_296 top.res.inst_295 top.res.inst_294 top.res.inst_293 top.res.inst_292 top.res.inst_291 top.res.inst_290 top.res.inst_289 top.res.inst_288 top.res.inst_287 top.res.inst_286 top.res.inst_285 top.res.inst_284 top.res.inst_283 top.res.inst_282 top.res.inst_281 top.res.inst_280 top.res.inst_279 top.res.inst_278 top.res.inst_277 top.res.inst_276 top.res.inst_275 top.res.inst_274 top.res.inst_273 top.res.inst_272 top.res.inst_271 top.res.inst_270 top.res.inst_269 top.res.inst_268 top.res.inst_267 top.res.inst_266 top.res.inst_265 top.res.inst_264 top.res.inst_263 top.res.inst_262 top.res.inst_261 top.res.inst_260 top.res.inst_259 top.res.inst_258 top.res.inst_257 top.res.inst_256 top.res.inst_255 top.res.inst_254 top.res.inst_253 top.res.inst_252 top.res.inst_251 top.res.inst_250 top.res.inst_249 top.res.inst_248 top.res.inst_247 top.res.inst_246 top.res.inst_245 top.res.inst_244 top.res.inst_243 top.res.inst_242 top.res.inst_241 top.res.inst_240 top.res.inst_239 top.res.inst_238 top.res.inst_237 top.res.inst_236 top.res.inst_235 top.res.inst_234 top.res.inst_233 top.res.inst_232 top.res.inst_231 top.res.inst_230 top.res.inst_229 top.res.inst_228 top.res.inst_227 top.res.inst_226 top.res.inst_225 top.res.inst_224 top.res.inst_223 top.res.inst_222 top.res.inst_221 top.res.inst_220 top.res.inst_219 top.res.inst_218 top.res.inst_217 top.res.inst_216 top.res.inst_215 top.res.inst_214 top.res.inst_213 top.res.inst_212 top.res.inst_211 top.res.inst_210 top.res.inst_209 top.res.inst_208 top.res.inst_207 top.res.inst_206 top.res.inst_205 top.res.inst_204 top.res.inst_203 top.res.inst_202 top.res.inst_201 top.res.inst_200 top.res.inst_199 top.res.inst_198 top.res.inst_197 top.res.inst_196 top.res.inst_195 top.res.inst_194 top.res.inst_193 top.res.inst_192 top.res.inst_191 top.res.inst_190 top.res.inst_189 top.res.inst_188 top.res.inst_187 top.res.inst_186 top.res.inst_185 top.res.inst_184 top.res.inst_183 top.res.inst_182 top.res.inst_181 top.res.inst_180 top.res.inst_179 top.res.inst_178 top.res.inst_177 top.res.inst_176 top.res.inst_175 top.res.inst_174 top.res.inst_173 top.res.inst_172 top.res.inst_171 top.res.inst_170 top.res.inst_169 top.res.inst_168 top.res.inst_167 top.res.inst_166 top.res.inst_165 top.res.inst_164 top.res.inst_163 top.res.inst_162 top.res.inst_161 top.res.inst_160 top.res.inst_159 top.res.inst_158 top.res.inst_157 top.res.inst_156 top.res.inst_155 top.res.inst_154 top.res.inst_153 top.res.inst_152 top.res.inst_151 top.res.inst_150 top.res.inst_149 top.res.inst_148 top.res.inst_147 top.res.inst_146 top.res.inst_145 top.res.inst_144 top.res.inst_143 top.res.inst_142 top.res.inst_141 top.res.inst_140 top.res.inst_139 top.res.inst_138 top.res.inst_137 top.res.inst_136 top.res.inst_135 top.res.inst_134 top.res.inst_133 top.res.inst_132 top.res.inst_131 top.res.inst_130 top.res.inst_129 top.res.inst_128 top.res.inst_127 top.res.inst_126 top.res.inst_125 top.res.inst_124 top.res.inst_123 top.res.inst_122 top.res.inst_121 top.res.inst_120 top.res.inst_119 top.res.inst_118 top.res.inst_117 top.res.inst_116 top.res.inst_115 top.res.inst_114 top.res.inst_113 top.res.inst_112 top.res.inst_111 top.res.inst_110 top.res.inst_109 top.res.inst_108 top.res.inst_107 top.res.inst_106 top.res.inst_105 top.res.inst_104 top.res.inst_103 top.res.inst_102 top.res.inst_101 top.res.inst_100 top.res.inst_99 top.res.inst_98 top.res.inst_97 top.res.inst_96 top.res.inst_95 top.res.inst_94 top.res.inst_93 top.res.inst_92 top.res.inst_91 top.res.inst_90 top.res.inst_89 top.res.inst_88 top.res.inst_87 top.res.inst_86 top.res.inst_85 top.res.inst_84 top.res.inst_83 top.res.inst_82 top.res.inst_81 top.res.inst_80 top.res.inst_79 top.res.inst_78 top.res.inst_77 top.res.inst_76 top.res.inst_75 top.res.inst_74 top.res.inst_73 top.res.inst_72 top.res.inst_71 top.res.inst_70 top.res.inst_69 top.res.inst_68 top.res.inst_67 top.res.inst_66 top.res.inst_65 top.res.inst_64 top.res.inst_63 top.res.inst_62 top.res.inst_61 top.res.inst_60 top.res.inst_59 top.res.inst_58 top.res.inst_57 top.res.inst_56 top.res.inst_55 top.res.inst_54 top.res.inst_53 top.res.inst_52 top.res.inst_51 top.res.inst_50 top.res.inst_49 top.res.inst_48 top.res.inst_47 top.res.inst_46 top.res.inst_45 top.res.inst_44 top.res.inst_43 top.res.inst_42 top.res.inst_41 top.res.inst_40 top.res.inst_39 top.res.inst_38 top.res.inst_37 top.res.inst_36 top.res.inst_35 top.res.inst_34 top.res.inst_33 top.res.inst_32 top.res.inst_31 top.res.inst_30 top.res.inst_29 top.res.inst_28 top.res.inst_27 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2) (__node_trans_AND_0 top.res.abs_31! top.res.abs_32! top.res.abs_33! top.res.abs_34! top.res.abs_35! top.res.inst_1! top.res.abs_31 top.res.abs_32 top.res.abs_33 top.res.abs_34 top.res.abs_35 top.res.inst_1) (__node_trans_AND_0 top.res.abs_36! top.res.abs_37! top.res.abs_38! top.res.abs_39! top.res.abs_40! top.res.inst_0! top.res.abs_36 top.res.abs_37 top.res.abs_38 top.res.abs_39 top.res.abs_40 top.res.inst_0) (not top.res.init_flag!))))))))))))))))))))))))) (= top.res.nondet_32 top.res.nondet_32) (= top.res.nondet_31 top.res.nondet_31) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.stop Bool) (top.usr.steam_boiler_waiting Bool) (top.usr.physical_units_ready Bool) (top.usr.level Int) (top.usr.steam Int) (top.usr.pump_state_0 Int) (top.usr.pump_state_1 Int) (top.usr.pump_state_2 Int) (top.usr.pump_state_3 Int) (top.usr.pump_control_state_0 Bool) (top.usr.pump_control_state_1 Bool) (top.usr.pump_control_state_2 Bool) (top.usr.pump_control_state_3 Bool) (top.usr.pump_repaired_0 Bool) (top.usr.pump_repaired_1 Bool) (top.usr.pump_repaired_2 Bool) (top.usr.pump_repaired_3 Bool) (top.usr.pump_control_repaired_0 Bool) (top.usr.pump_control_repaired_1 Bool) (top.usr.pump_control_repaired_2 Bool) (top.usr.pump_control_repaired_3 Bool) (top.usr.level_repaired Bool) (top.usr.steam_repaired Bool) (top.usr.pump_failure_acknowledgement_0 Bool) (top.usr.pump_failure_acknowledgement_1 Bool) (top.usr.pump_failure_acknowledgement_2 Bool) (top.usr.pump_failure_acknowledgement_3 Bool) (top.usr.pump_control_failure_acknowledgement_0 Bool) (top.usr.pump_control_failure_acknowledgement_1 Bool) (top.usr.pump_control_failure_acknowledgement_2 Bool) (top.usr.pump_control_failure_acknowledgement_3 Bool) (top.usr.level_failure_acknowledgement Bool) (top.usr.steam_failure_acknowledgement Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.abs_13 Bool) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.abs_17 Bool) (top.res.abs_18 Bool) (top.res.abs_19 Bool) (top.res.abs_20 Bool) (top.res.abs_21 Bool) (top.res.abs_22 Bool) (top.res.abs_23 Bool) (top.res.abs_24 Bool) (top.res.abs_25 Bool) (top.res.abs_26 Bool) (top.res.abs_27 Bool) (top.res.abs_28 Bool) (top.res.abs_29 Bool) (top.res.abs_30 Bool) (top.res.abs_31 Bool) (top.res.abs_32 Bool) (top.res.abs_33 Bool) (top.res.abs_34 Bool) (top.res.abs_35 Bool) (top.res.abs_36 Bool) (top.res.abs_37 Bool) (top.res.abs_38 Bool) (top.res.abs_39 Bool) (top.res.abs_40 Bool) (top.res.inst_297 Bool) (top.res.inst_296 Bool) (top.res.inst_295 Int) (top.res.inst_294 Int) (top.res.inst_293 Int) (top.res.inst_292 Int) (top.res.inst_291 Int) (top.res.inst_290 Int) (top.res.inst_289 Int) (top.res.inst_288 Int) (top.res.inst_287 Int) (top.res.inst_286 Int) (top.res.inst_285 Int) (top.res.inst_284 Int) (top.res.inst_283 Int) (top.res.inst_282 Int) (top.res.inst_281 Int) (top.res.inst_280 Int) (top.res.inst_279 Int) (top.res.inst_278 Bool) (top.res.inst_277 Int) (top.res.inst_276 Int) (top.res.inst_275 Int) (top.res.inst_274 Bool) (top.res.inst_273 Bool) (top.res.inst_272 Bool) (top.res.inst_271 Bool) (top.res.inst_270 Int) (top.res.inst_269 Int) (top.res.inst_268 Bool) (top.res.inst_267 Int) (top.res.inst_266 Int) (top.res.inst_265 Bool) (top.res.inst_264 Int) (top.res.inst_263 Bool) (top.res.inst_262 Bool) (top.res.inst_261 Bool) (top.res.inst_260 Bool) (top.res.inst_259 Int) (top.res.inst_258 Int) (top.res.inst_257 Bool) (top.res.inst_256 Int) (top.res.inst_255 Int) (top.res.inst_254 Bool) (top.res.inst_253 Int) (top.res.inst_252 Bool) (top.res.inst_251 Bool) (top.res.inst_250 Bool) (top.res.inst_249 Bool) (top.res.inst_248 Int) (top.res.inst_247 Int) (top.res.inst_246 Bool) (top.res.inst_245 Int) (top.res.inst_244 Int) (top.res.inst_243 Bool) (top.res.inst_242 Int) (top.res.inst_241 Bool) (top.res.inst_240 Bool) (top.res.inst_239 Bool) (top.res.inst_238 Bool) (top.res.inst_237 Int) (top.res.inst_236 Int) (top.res.inst_235 Bool) (top.res.inst_234 Int) (top.res.inst_233 Int) (top.res.inst_232 Bool) (top.res.inst_231 Int) (top.res.inst_230 Int) (top.res.inst_229 Int) (top.res.inst_228 Int) (top.res.inst_227 Int) (top.res.inst_226 Bool) (top.res.inst_225 Bool) (top.res.inst_224 Bool) (top.res.inst_223 Bool) (top.res.inst_222 Int) (top.res.inst_221 Int) (top.res.inst_220 Int) (top.res.inst_219 Int) (top.res.inst_218 Int) (top.res.inst_217 Int) (top.res.inst_216 Int) (top.res.inst_215 Int) (top.res.inst_214 Int) (top.res.inst_213 Int) (top.res.inst_212 Int) (top.res.inst_211 Int) (top.res.inst_210 Bool) (top.res.inst_209 Int) (top.res.inst_208 Bool) (top.res.inst_207 Int) (top.res.inst_206 Bool) (top.res.inst_205 Bool) (top.res.inst_204 Bool) (top.res.inst_203 Bool) (top.res.inst_202 Bool) (top.res.inst_201 Bool) (top.res.inst_200 Bool) (top.res.inst_199 Bool) (top.res.inst_198 Bool) (top.res.inst_197 Bool) (top.res.inst_196 Bool) (top.res.inst_195 Bool) (top.res.inst_194 Bool) (top.res.inst_193 Bool) (top.res.inst_192 Bool) (top.res.inst_191 Bool) (top.res.inst_190 Bool) (top.res.inst_189 Bool) (top.res.inst_188 Bool) (top.res.inst_187 Bool) (top.res.inst_186 Bool) (top.res.inst_185 Bool) (top.res.inst_184 Bool) (top.res.inst_183 Bool) (top.res.inst_182 Bool) (top.res.inst_181 Bool) (top.res.inst_180 Bool) (top.res.inst_179 Bool) (top.res.inst_178 Bool) (top.res.inst_177 Bool) (top.res.inst_176 Bool) (top.res.inst_175 Bool) (top.res.inst_174 Int) (top.res.inst_173 Bool) (top.res.inst_172 Bool) (top.res.inst_171 Bool) (top.res.inst_170 Bool) (top.res.inst_169 Bool) (top.res.inst_168 Bool) (top.res.inst_167 Bool) (top.res.inst_166 Bool) (top.res.inst_165 Bool) (top.res.inst_164 Bool) (top.res.inst_163 Bool) (top.res.inst_162 Bool) (top.res.inst_161 Bool) (top.res.inst_160 Bool) (top.res.inst_159 Bool) (top.res.inst_158 Bool) (top.res.inst_157 Bool) (top.res.inst_156 Bool) (top.res.inst_155 Bool) (top.res.inst_154 Bool) (top.res.inst_153 Bool) (top.res.inst_152 Bool) (top.res.inst_151 Bool) (top.res.inst_150 Bool) (top.res.inst_149 Bool) (top.res.inst_148 Bool) (top.res.inst_147 Bool) (top.res.inst_146 Bool) (top.res.inst_145 Bool) (top.res.inst_144 Bool) (top.res.inst_143 Bool) (top.res.inst_142 Bool) (top.res.inst_141 Bool) (top.res.inst_140 Bool) (top.res.inst_139 Bool) (top.res.inst_138 Bool) (top.res.inst_137 Bool) (top.res.inst_136 Bool) (top.res.inst_135 Bool) (top.res.inst_134 Bool) (top.res.inst_133 Bool) (top.res.inst_132 Bool) (top.res.inst_131 Bool) (top.res.inst_130 Bool) (top.res.inst_129 Bool) (top.res.inst_128 Bool) (top.res.inst_127 Bool) (top.res.inst_126 Bool) (top.res.inst_125 Bool) (top.res.inst_124 Bool) (top.res.inst_123 Bool) (top.res.inst_122 Int) (top.res.inst_121 Bool) (top.res.inst_120 Bool) (top.res.inst_119 Int) (top.res.inst_118 Int) (top.res.inst_117 Bool) (top.res.inst_116 Bool) (top.res.inst_115 Bool) (top.res.inst_114 Bool) (top.res.inst_113 Int) (top.res.inst_112 Int) (top.res.inst_111 Bool) (top.res.inst_110 Bool) (top.res.inst_109 Bool) (top.res.inst_108 Bool) (top.res.inst_107 Bool) (top.res.inst_106 Bool) (top.res.inst_105 Bool) (top.res.inst_104 Bool) (top.res.inst_103 Int) (top.res.inst_102 Int) (top.res.inst_101 Int) (top.res.inst_100 Int) (top.res.inst_99 Bool) (top.res.inst_98 Bool) (top.res.inst_97 Bool) (top.res.inst_96 Bool) (top.res.inst_95 Int) (top.res.inst_94 Int) (top.res.inst_93 Int) (top.res.inst_92 Int) (top.res.inst_91 Int) (top.res.inst_90 Int) (top.res.inst_89 Int) (top.res.inst_88 Int) (top.res.inst_87 Int) (top.res.inst_86 Int) (top.res.inst_85 Bool) (top.res.inst_84 Bool) (top.res.inst_83 Bool) (top.res.inst_82 Bool) (top.res.inst_81 Int) (top.res.inst_80 Int) (top.res.inst_79 Int) (top.res.inst_78 Int) (top.res.inst_77 Bool) (top.res.inst_76 Int) (top.res.inst_75 Bool) (top.res.inst_74 Int) (top.res.inst_73 Bool) (top.res.inst_72 Int) (top.res.inst_71 Bool) (top.res.inst_70 Int) (top.res.inst_69 Bool) (top.res.inst_68 Int) (top.res.inst_67 Bool) (top.res.inst_66 Int) (top.res.inst_65 Bool) (top.res.inst_64 Int) (top.res.inst_63 Bool) (top.res.inst_62 Int) (top.res.inst_61 Bool) (top.res.inst_60 Bool) (top.res.inst_59 Bool) (top.res.inst_58 Bool) (top.res.inst_57 Bool) (top.res.inst_56 Bool) (top.res.inst_55 Bool) (top.res.inst_54 Bool) (top.res.inst_53 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Bool) (top.res.inst_50 Bool) (top.res.inst_49 Int) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Int) (top.res.inst_36 Int) (top.res.inst_35 Int) (top.res.inst_34 Int) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Int) (top.res.inst_23 Int) (top.res.inst_22 Int) (top.res.inst_21 Int) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Int) (top.res.inst_10 Int) (top.res.inst_9 Int) (top.res.inst_8 Int) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/steam_boiler_no_arr1_e4_23904_e4_2384.sl b/benchmarks/LIA/Lustre/steam_boiler_no_arr1_e4_23904_e4_2384.sl index 343e0b3..2a613e3 100644 --- a/benchmarks/LIA/Lustre/steam_boiler_no_arr1_e4_23904_e4_2384.sl +++ b/benchmarks/LIA/Lustre/steam_boiler_no_arr1_e4_23904_e4_2384.sl @@ -1,13531 +1,180 @@ (set-logic LIA) -(define-fun - __node_init_AND_0 ( - (AND.usr.a_0_a_0 Bool) - (AND.usr.a_1_a_0 Bool) - (AND.usr.a_2_a_0 Bool) - (AND.usr.a_3_a_0 Bool) - (AND.usr.AND_a_0 Bool) - (AND.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - AND.usr.AND_a_0 - (and (and (and AND.usr.a_0_a_0 AND.usr.a_1_a_0) AND.usr.a_2_a_0) AND.usr.a_3_a_0)) - AND.res.init_flag_a_0) -) - -(define-fun - __node_trans_AND_0 ( - (AND.usr.a_0_a_1 Bool) - (AND.usr.a_1_a_1 Bool) - (AND.usr.a_2_a_1 Bool) - (AND.usr.a_3_a_1 Bool) - (AND.usr.AND_a_1 Bool) - (AND.res.init_flag_a_1 Bool) - (AND.usr.a_0_a_0 Bool) - (AND.usr.a_1_a_0 Bool) - (AND.usr.a_2_a_0 Bool) - (AND.usr.a_3_a_0 Bool) - (AND.usr.AND_a_0 Bool) - (AND.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - AND.usr.AND_a_1 - (and (and (and AND.usr.a_0_a_1 AND.usr.a_1_a_1) AND.usr.a_2_a_1) AND.usr.a_3_a_1)) - (not AND.res.init_flag_a_1)) -) - -(define-fun - __node_init_level_failure_0 ( - (level_failure.usr.level_defect_a_0 Int) - (level_failure.usr.level_failure_a_0 Bool) - (level_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - level_failure.usr.level_failure_a_0 - (not (= level_failure.usr.level_defect_a_0 0))) - level_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_level_failure_0 ( - (level_failure.usr.level_defect_a_1 Int) - (level_failure.usr.level_failure_a_1 Bool) - (level_failure.res.init_flag_a_1 Bool) - (level_failure.usr.level_defect_a_0 Int) - (level_failure.usr.level_failure_a_0 Bool) - (level_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - level_failure.usr.level_failure_a_1 - (not (= level_failure.usr.level_defect_a_1 0))) - (not level_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_steam_failure_0 ( - (steam_failure.usr.steam_defect_a_0 Int) - (steam_failure.usr.steam_failure_a_0 Bool) - (steam_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - steam_failure.usr.steam_failure_a_0 - (not (= steam_failure.usr.steam_defect_a_0 0))) - steam_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_steam_failure_0 ( - (steam_failure.usr.steam_defect_a_1 Int) - (steam_failure.usr.steam_failure_a_1 Bool) - (steam_failure.res.init_flag_a_1 Bool) - (steam_failure.usr.steam_defect_a_0 Int) - (steam_failure.usr.steam_failure_a_0 Bool) - (steam_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - steam_failure.usr.steam_failure_a_1 - (not (= steam_failure.usr.steam_defect_a_1 0))) - (not steam_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_OR_0 ( - (OR.usr.a_0_a_0 Bool) - (OR.usr.a_1_a_0 Bool) - (OR.usr.a_2_a_0 Bool) - (OR.usr.a_3_a_0 Bool) - (OR.usr.OR_a_0 Bool) - (OR.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - OR.usr.OR_a_0 - (or (or (or OR.usr.a_0_a_0 OR.usr.a_1_a_0) OR.usr.a_2_a_0) OR.usr.a_3_a_0)) - OR.res.init_flag_a_0) -) - -(define-fun - __node_trans_OR_0 ( - (OR.usr.a_0_a_1 Bool) - (OR.usr.a_1_a_1 Bool) - (OR.usr.a_2_a_1 Bool) - (OR.usr.a_3_a_1 Bool) - (OR.usr.OR_a_1 Bool) - (OR.res.init_flag_a_1 Bool) - (OR.usr.a_0_a_0 Bool) - (OR.usr.a_1_a_0 Bool) - (OR.usr.a_2_a_0 Bool) - (OR.usr.a_3_a_0 Bool) - (OR.usr.OR_a_0 Bool) - (OR.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - OR.usr.OR_a_1 - (or (or (or OR.usr.a_0_a_1 OR.usr.a_1_a_1) OR.usr.a_2_a_1) OR.usr.a_3_a_1)) - (not OR.res.init_flag_a_1)) -) - -(define-fun - __node_init_pump_control_failure_0 ( - (pump_control_failure.usr.pump_defect_a_0 Int) - (pump_control_failure.usr.pump_failure_a_0 Bool) - (pump_control_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - pump_control_failure.usr.pump_failure_a_0 - (not (= pump_control_failure.usr.pump_defect_a_0 0))) - pump_control_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_pump_control_failure_0 ( - (pump_control_failure.usr.pump_defect_a_1 Int) - (pump_control_failure.usr.pump_failure_a_1 Bool) - (pump_control_failure.res.init_flag_a_1 Bool) - (pump_control_failure.usr.pump_defect_a_0 Int) - (pump_control_failure.usr.pump_failure_a_0 Bool) - (pump_control_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - pump_control_failure.usr.pump_failure_a_1 - (not (= pump_control_failure.usr.pump_defect_a_1 0))) - (not pump_control_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_pump_failure_0 ( - (pump_failure.usr.pump_defect_a_0 Int) - (pump_failure.usr.pump_failure_a_0 Bool) - (pump_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - pump_failure.usr.pump_failure_a_0 - (not (= pump_failure.usr.pump_defect_a_0 0))) - pump_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_pump_failure_0 ( - (pump_failure.usr.pump_defect_a_1 Int) - (pump_failure.usr.pump_failure_a_1 Bool) - (pump_failure.res.init_flag_a_1 Bool) - (pump_failure.usr.pump_defect_a_0 Int) - (pump_failure.usr.pump_failure_a_0 Bool) - (pump_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - pump_failure.usr.pump_failure_a_1 - (not (= pump_failure.usr.pump_defect_a_1 0))) - (not pump_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_failure_0 ( - (failure.usr.level_defect_a_0 Int) - (failure.usr.steam_defect_a_0 Int) - (failure.usr.pump_defect_0_a_0 Int) - (failure.usr.pump_defect_1_a_0 Int) - (failure.usr.pump_defect_2_a_0 Int) - (failure.usr.pump_defect_3_a_0 Int) - (failure.usr.pump_control_defect_0_a_0 Int) - (failure.usr.pump_control_defect_1_a_0 Int) - (failure.usr.pump_control_defect_2_a_0 Int) - (failure.usr.pump_control_defect_3_a_0 Int) - (failure.usr.failure_a_0 Bool) - (failure.res.init_flag_a_0 Bool) - (failure.res.abs_0_a_0 Bool) - (failure.res.abs_1_a_0 Bool) - (failure.res.abs_2_a_0 Bool) - (failure.res.abs_3_a_0 Bool) - (failure.res.abs_4_a_0 Bool) - (failure.res.abs_5_a_0 Bool) - (failure.res.abs_6_a_0 Bool) - (failure.res.abs_7_a_0 Bool) - (failure.res.abs_8_a_0 Bool) - (failure.res.abs_9_a_0 Bool) - (failure.res.abs_10_a_0 Bool) - (failure.res.abs_11_a_0 Bool) - (failure.res.inst_11_a_0 Bool) - (failure.res.inst_10_a_0 Bool) - (failure.res.inst_9_a_0 Bool) - (failure.res.inst_8_a_0 Bool) - (failure.res.inst_7_a_0 Bool) - (failure.res.inst_6_a_0 Bool) - (failure.res.inst_5_a_0 Bool) - (failure.res.inst_4_a_0 Bool) - (failure.res.inst_3_a_0 Bool) - (failure.res.inst_2_a_0 Bool) - (failure.res.inst_1_a_0 Bool) - (failure.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - failure.usr.failure_a_0 - (or - (or (or failure.res.abs_0_a_0 failure.res.abs_1_a_0) failure.res.abs_6_a_0) - failure.res.abs_11_a_0)) - (__node_init_level_failure_0 - failure.usr.level_defect_a_0 - failure.res.abs_0_a_0 - failure.res.inst_11_a_0) - (__node_init_steam_failure_0 - failure.usr.steam_defect_a_0 - failure.res.abs_1_a_0 - failure.res.inst_10_a_0) - (__node_init_OR_0 - failure.res.abs_2_a_0 - failure.res.abs_3_a_0 - failure.res.abs_4_a_0 - failure.res.abs_5_a_0 - failure.res.abs_6_a_0 - failure.res.inst_9_a_0) - (__node_init_pump_failure_0 - failure.usr.pump_defect_0_a_0 - failure.res.abs_2_a_0 - failure.res.inst_8_a_0) - (__node_init_pump_failure_0 - failure.usr.pump_defect_1_a_0 - failure.res.abs_3_a_0 - failure.res.inst_7_a_0) - (__node_init_pump_failure_0 - failure.usr.pump_defect_2_a_0 - failure.res.abs_4_a_0 - failure.res.inst_6_a_0) - (__node_init_pump_failure_0 - failure.usr.pump_defect_3_a_0 - failure.res.abs_5_a_0 - failure.res.inst_5_a_0) - (__node_init_OR_0 - failure.res.abs_7_a_0 - failure.res.abs_8_a_0 - failure.res.abs_9_a_0 - failure.res.abs_10_a_0 - failure.res.abs_11_a_0 - failure.res.inst_4_a_0) - (__node_init_pump_control_failure_0 - failure.usr.pump_control_defect_0_a_0 - failure.res.abs_7_a_0 - failure.res.inst_3_a_0) - (__node_init_pump_control_failure_0 - failure.usr.pump_control_defect_1_a_0 - failure.res.abs_8_a_0 - failure.res.inst_2_a_0) - (__node_init_pump_control_failure_0 - failure.usr.pump_control_defect_2_a_0 - failure.res.abs_9_a_0 - failure.res.inst_1_a_0) - (__node_init_pump_control_failure_0 - failure.usr.pump_control_defect_3_a_0 - failure.res.abs_10_a_0 - failure.res.inst_0_a_0) - failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_failure_0 ( - (failure.usr.level_defect_a_1 Int) - (failure.usr.steam_defect_a_1 Int) - (failure.usr.pump_defect_0_a_1 Int) - (failure.usr.pump_defect_1_a_1 Int) - (failure.usr.pump_defect_2_a_1 Int) - (failure.usr.pump_defect_3_a_1 Int) - (failure.usr.pump_control_defect_0_a_1 Int) - (failure.usr.pump_control_defect_1_a_1 Int) - (failure.usr.pump_control_defect_2_a_1 Int) - (failure.usr.pump_control_defect_3_a_1 Int) - (failure.usr.failure_a_1 Bool) - (failure.res.init_flag_a_1 Bool) - (failure.res.abs_0_a_1 Bool) - (failure.res.abs_1_a_1 Bool) - (failure.res.abs_2_a_1 Bool) - (failure.res.abs_3_a_1 Bool) - (failure.res.abs_4_a_1 Bool) - (failure.res.abs_5_a_1 Bool) - (failure.res.abs_6_a_1 Bool) - (failure.res.abs_7_a_1 Bool) - (failure.res.abs_8_a_1 Bool) - (failure.res.abs_9_a_1 Bool) - (failure.res.abs_10_a_1 Bool) - (failure.res.abs_11_a_1 Bool) - (failure.res.inst_11_a_1 Bool) - (failure.res.inst_10_a_1 Bool) - (failure.res.inst_9_a_1 Bool) - (failure.res.inst_8_a_1 Bool) - (failure.res.inst_7_a_1 Bool) - (failure.res.inst_6_a_1 Bool) - (failure.res.inst_5_a_1 Bool) - (failure.res.inst_4_a_1 Bool) - (failure.res.inst_3_a_1 Bool) - (failure.res.inst_2_a_1 Bool) - (failure.res.inst_1_a_1 Bool) - (failure.res.inst_0_a_1 Bool) - (failure.usr.level_defect_a_0 Int) - (failure.usr.steam_defect_a_0 Int) - (failure.usr.pump_defect_0_a_0 Int) - (failure.usr.pump_defect_1_a_0 Int) - (failure.usr.pump_defect_2_a_0 Int) - (failure.usr.pump_defect_3_a_0 Int) - (failure.usr.pump_control_defect_0_a_0 Int) - (failure.usr.pump_control_defect_1_a_0 Int) - (failure.usr.pump_control_defect_2_a_0 Int) - (failure.usr.pump_control_defect_3_a_0 Int) - (failure.usr.failure_a_0 Bool) - (failure.res.init_flag_a_0 Bool) - (failure.res.abs_0_a_0 Bool) - (failure.res.abs_1_a_0 Bool) - (failure.res.abs_2_a_0 Bool) - (failure.res.abs_3_a_0 Bool) - (failure.res.abs_4_a_0 Bool) - (failure.res.abs_5_a_0 Bool) - (failure.res.abs_6_a_0 Bool) - (failure.res.abs_7_a_0 Bool) - (failure.res.abs_8_a_0 Bool) - (failure.res.abs_9_a_0 Bool) - (failure.res.abs_10_a_0 Bool) - (failure.res.abs_11_a_0 Bool) - (failure.res.inst_11_a_0 Bool) - (failure.res.inst_10_a_0 Bool) - (failure.res.inst_9_a_0 Bool) - (failure.res.inst_8_a_0 Bool) - (failure.res.inst_7_a_0 Bool) - (failure.res.inst_6_a_0 Bool) - (failure.res.inst_5_a_0 Bool) - (failure.res.inst_4_a_0 Bool) - (failure.res.inst_3_a_0 Bool) - (failure.res.inst_2_a_0 Bool) - (failure.res.inst_1_a_0 Bool) - (failure.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - failure.usr.failure_a_1 - (or - (or (or failure.res.abs_0_a_1 failure.res.abs_1_a_1) failure.res.abs_6_a_1) - failure.res.abs_11_a_1)) - (__node_trans_level_failure_0 - failure.usr.level_defect_a_1 - failure.res.abs_0_a_1 - failure.res.inst_11_a_1 - failure.usr.level_defect_a_0 - failure.res.abs_0_a_0 - failure.res.inst_11_a_0) - (__node_trans_steam_failure_0 - failure.usr.steam_defect_a_1 - failure.res.abs_1_a_1 - failure.res.inst_10_a_1 - failure.usr.steam_defect_a_0 - failure.res.abs_1_a_0 - failure.res.inst_10_a_0) - (__node_trans_OR_0 - failure.res.abs_2_a_1 - failure.res.abs_3_a_1 - failure.res.abs_4_a_1 - failure.res.abs_5_a_1 - failure.res.abs_6_a_1 - failure.res.inst_9_a_1 - failure.res.abs_2_a_0 - failure.res.abs_3_a_0 - failure.res.abs_4_a_0 - failure.res.abs_5_a_0 - failure.res.abs_6_a_0 - failure.res.inst_9_a_0) - (__node_trans_pump_failure_0 - failure.usr.pump_defect_0_a_1 - failure.res.abs_2_a_1 - failure.res.inst_8_a_1 - failure.usr.pump_defect_0_a_0 - failure.res.abs_2_a_0 - failure.res.inst_8_a_0) - (__node_trans_pump_failure_0 - failure.usr.pump_defect_1_a_1 - failure.res.abs_3_a_1 - failure.res.inst_7_a_1 - failure.usr.pump_defect_1_a_0 - failure.res.abs_3_a_0 - failure.res.inst_7_a_0) - (__node_trans_pump_failure_0 - failure.usr.pump_defect_2_a_1 - failure.res.abs_4_a_1 - failure.res.inst_6_a_1 - failure.usr.pump_defect_2_a_0 - failure.res.abs_4_a_0 - failure.res.inst_6_a_0) - (__node_trans_pump_failure_0 - failure.usr.pump_defect_3_a_1 - failure.res.abs_5_a_1 - failure.res.inst_5_a_1 - failure.usr.pump_defect_3_a_0 - failure.res.abs_5_a_0 - failure.res.inst_5_a_0) - (__node_trans_OR_0 - failure.res.abs_7_a_1 - failure.res.abs_8_a_1 - failure.res.abs_9_a_1 - failure.res.abs_10_a_1 - failure.res.abs_11_a_1 - failure.res.inst_4_a_1 - failure.res.abs_7_a_0 - failure.res.abs_8_a_0 - failure.res.abs_9_a_0 - failure.res.abs_10_a_0 - failure.res.abs_11_a_0 - failure.res.inst_4_a_0) - (__node_trans_pump_control_failure_0 - failure.usr.pump_control_defect_0_a_1 - failure.res.abs_7_a_1 - failure.res.inst_3_a_1 - failure.usr.pump_control_defect_0_a_0 - failure.res.abs_7_a_0 - failure.res.inst_3_a_0) - (__node_trans_pump_control_failure_0 - failure.usr.pump_control_defect_1_a_1 - failure.res.abs_8_a_1 - failure.res.inst_2_a_1 - failure.usr.pump_control_defect_1_a_0 - failure.res.abs_8_a_0 - failure.res.inst_2_a_0) - (__node_trans_pump_control_failure_0 - failure.usr.pump_control_defect_2_a_1 - failure.res.abs_9_a_1 - failure.res.inst_1_a_1 - failure.usr.pump_control_defect_2_a_0 - failure.res.abs_9_a_0 - failure.res.inst_1_a_0) - (__node_trans_pump_control_failure_0 - failure.usr.pump_control_defect_3_a_1 - failure.res.abs_10_a_1 - failure.res.inst_0_a_1 - failure.usr.pump_control_defect_3_a_0 - failure.res.abs_10_a_0 - failure.res.inst_0_a_0) - (not failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_steam_failure_startup_0 ( - (steam_failure_startup.usr.steam_a_0 Int) - (steam_failure_startup.usr.steam_failure_startup_a_0 Bool) - (steam_failure_startup.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - steam_failure_startup.usr.steam_failure_startup_a_0 - (not (= steam_failure_startup.usr.steam_a_0 0))) - steam_failure_startup.res.init_flag_a_0) -) - -(define-fun - __node_trans_steam_failure_startup_0 ( - (steam_failure_startup.usr.steam_a_1 Int) - (steam_failure_startup.usr.steam_failure_startup_a_1 Bool) - (steam_failure_startup.res.init_flag_a_1 Bool) - (steam_failure_startup.usr.steam_a_0 Int) - (steam_failure_startup.usr.steam_failure_startup_a_0 Bool) - (steam_failure_startup.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - steam_failure_startup.usr.steam_failure_startup_a_1 - (not (= steam_failure_startup.usr.steam_a_1 0))) - (not steam_failure_startup.res.init_flag_a_1)) -) - -(define-fun - __node_init_dangerous_level_0 ( - (dangerous_level.usr.q_a_0 Int) - (dangerous_level.usr.dangerous_level_a_0 Bool) - (dangerous_level.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - dangerous_level.usr.dangerous_level_a_0 - (or (<= dangerous_level.usr.q_a_0 150) (>= dangerous_level.usr.q_a_0 850))) - dangerous_level.res.init_flag_a_0) -) - -(define-fun - __node_trans_dangerous_level_0 ( - (dangerous_level.usr.q_a_1 Int) - (dangerous_level.usr.dangerous_level_a_1 Bool) - (dangerous_level.res.init_flag_a_1 Bool) - (dangerous_level.usr.q_a_0 Int) - (dangerous_level.usr.dangerous_level_a_0 Bool) - (dangerous_level.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - dangerous_level.usr.dangerous_level_a_1 - (or (<= dangerous_level.usr.q_a_1 150) (>= dangerous_level.usr.q_a_1 850))) - (not dangerous_level.res.init_flag_a_1)) -) - -(define-fun - __node_init_transmission_failure_0 ( - (transmission_failure.usr.pump_state_0_a_0 Int) - (transmission_failure.usr.pump_state_1_a_0 Int) - (transmission_failure.usr.pump_state_2_a_0 Int) - (transmission_failure.usr.pump_state_3_a_0 Int) - (transmission_failure.usr.transmission_failure_a_0 Bool) - (transmission_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - transmission_failure.usr.transmission_failure_a_0 - (or - (or - (or - (= transmission_failure.usr.pump_state_0_a_0 3) - (= transmission_failure.usr.pump_state_1_a_0 3)) - (= transmission_failure.usr.pump_state_2_a_0 3)) - (= transmission_failure.usr.pump_state_3_a_0 3))) - transmission_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_transmission_failure_0 ( - (transmission_failure.usr.pump_state_0_a_1 Int) - (transmission_failure.usr.pump_state_1_a_1 Int) - (transmission_failure.usr.pump_state_2_a_1 Int) - (transmission_failure.usr.pump_state_3_a_1 Int) - (transmission_failure.usr.transmission_failure_a_1 Bool) - (transmission_failure.res.init_flag_a_1 Bool) - (transmission_failure.usr.pump_state_0_a_0 Int) - (transmission_failure.usr.pump_state_1_a_0 Int) - (transmission_failure.usr.pump_state_2_a_0 Int) - (transmission_failure.usr.pump_state_3_a_0 Int) - (transmission_failure.usr.transmission_failure_a_0 Bool) - (transmission_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - transmission_failure.usr.transmission_failure_a_1 - (or - (or - (or - (= transmission_failure.usr.pump_state_0_a_1 3) - (= transmission_failure.usr.pump_state_1_a_1 3)) - (= transmission_failure.usr.pump_state_2_a_1 3)) - (= transmission_failure.usr.pump_state_3_a_1 3))) - (not transmission_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_critical_failure_0 ( - (critical_failure.usr.op_mode_a_0 Int) - (critical_failure.usr.steam_a_0 Int) - (critical_failure.usr.level_defect_a_0 Int) - (critical_failure.usr.steam_defect_a_0 Int) - (critical_failure.usr.pump_defect_0_a_0 Int) - (critical_failure.usr.pump_defect_1_a_0 Int) - (critical_failure.usr.pump_defect_2_a_0 Int) - (critical_failure.usr.pump_defect_3_a_0 Int) - (critical_failure.usr.q_a_0 Int) - (critical_failure.usr.pump_state_0_a_0 Int) - (critical_failure.usr.pump_state_1_a_0 Int) - (critical_failure.usr.pump_state_2_a_0 Int) - (critical_failure.usr.pump_state_3_a_0 Int) - (critical_failure.usr.critical_failure_a_0 Bool) - (critical_failure.res.init_flag_a_0 Bool) - (critical_failure.res.abs_0_a_0 Bool) - (critical_failure.res.abs_1_a_0 Bool) - (critical_failure.res.abs_2_a_0 Bool) - (critical_failure.res.abs_3_a_0 Bool) - (critical_failure.res.abs_4_a_0 Bool) - (critical_failure.res.abs_5_a_0 Bool) - (critical_failure.res.abs_6_a_0 Bool) - (critical_failure.res.abs_7_a_0 Bool) - (critical_failure.res.abs_8_a_0 Bool) - (critical_failure.res.abs_9_a_0 Bool) - (critical_failure.res.inst_9_a_0 Bool) - (critical_failure.res.inst_8_a_0 Bool) - (critical_failure.res.inst_7_a_0 Bool) - (critical_failure.res.inst_6_a_0 Bool) - (critical_failure.res.inst_5_a_0 Bool) - (critical_failure.res.inst_4_a_0 Bool) - (critical_failure.res.inst_3_a_0 Bool) - (critical_failure.res.inst_2_a_0 Bool) - (critical_failure.res.inst_1_a_0 Bool) - (critical_failure.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - critical_failure.usr.critical_failure_a_0 - (or - (or - (or - (or - (or - critical_failure.res.abs_0_a_0 - (and - (= critical_failure.usr.op_mode_a_0 1) - critical_failure.res.abs_1_a_0)) - (and - (= critical_failure.usr.op_mode_a_0 2) - (or critical_failure.res.abs_2_a_0 critical_failure.res.abs_3_a_0))) - (and - (= critical_failure.usr.op_mode_a_0 3) - critical_failure.res.abs_4_a_0)) - (and (= critical_failure.usr.op_mode_a_0 4) critical_failure.res.abs_4_a_0)) - (and - (= critical_failure.usr.op_mode_a_0 5) - (or - (or critical_failure.res.abs_4_a_0 critical_failure.res.abs_3_a_0) - critical_failure.res.abs_9_a_0)))) - (__node_init_transmission_failure_0 - critical_failure.usr.pump_state_0_a_0 - critical_failure.usr.pump_state_1_a_0 - critical_failure.usr.pump_state_2_a_0 - critical_failure.usr.pump_state_3_a_0 - critical_failure.res.abs_0_a_0 - critical_failure.res.inst_9_a_0) - (__node_init_steam_failure_startup_0 - critical_failure.usr.steam_a_0 - critical_failure.res.abs_1_a_0 - critical_failure.res.inst_8_a_0) - (__node_init_level_failure_0 - critical_failure.usr.level_defect_a_0 - critical_failure.res.abs_2_a_0 - critical_failure.res.inst_7_a_0) - (__node_init_steam_failure_0 - critical_failure.usr.steam_defect_a_0 - critical_failure.res.abs_3_a_0 - critical_failure.res.inst_6_a_0) - (__node_init_dangerous_level_0 - critical_failure.usr.q_a_0 - critical_failure.res.abs_4_a_0 - critical_failure.res.inst_5_a_0) - (__node_init_AND_0 - critical_failure.res.abs_5_a_0 - critical_failure.res.abs_6_a_0 - critical_failure.res.abs_7_a_0 - critical_failure.res.abs_8_a_0 - critical_failure.res.abs_9_a_0 - critical_failure.res.inst_4_a_0) - (__node_init_pump_failure_0 - critical_failure.usr.pump_defect_0_a_0 - critical_failure.res.abs_5_a_0 - critical_failure.res.inst_3_a_0) - (__node_init_pump_failure_0 - critical_failure.usr.pump_defect_1_a_0 - critical_failure.res.abs_6_a_0 - critical_failure.res.inst_2_a_0) - (__node_init_pump_failure_0 - critical_failure.usr.pump_defect_2_a_0 - critical_failure.res.abs_7_a_0 - critical_failure.res.inst_1_a_0) - (__node_init_pump_failure_0 - critical_failure.usr.pump_defect_3_a_0 - critical_failure.res.abs_8_a_0 - critical_failure.res.inst_0_a_0) - critical_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_critical_failure_0 ( - (critical_failure.usr.op_mode_a_1 Int) - (critical_failure.usr.steam_a_1 Int) - (critical_failure.usr.level_defect_a_1 Int) - (critical_failure.usr.steam_defect_a_1 Int) - (critical_failure.usr.pump_defect_0_a_1 Int) - (critical_failure.usr.pump_defect_1_a_1 Int) - (critical_failure.usr.pump_defect_2_a_1 Int) - (critical_failure.usr.pump_defect_3_a_1 Int) - (critical_failure.usr.q_a_1 Int) - (critical_failure.usr.pump_state_0_a_1 Int) - (critical_failure.usr.pump_state_1_a_1 Int) - (critical_failure.usr.pump_state_2_a_1 Int) - (critical_failure.usr.pump_state_3_a_1 Int) - (critical_failure.usr.critical_failure_a_1 Bool) - (critical_failure.res.init_flag_a_1 Bool) - (critical_failure.res.abs_0_a_1 Bool) - (critical_failure.res.abs_1_a_1 Bool) - (critical_failure.res.abs_2_a_1 Bool) - (critical_failure.res.abs_3_a_1 Bool) - (critical_failure.res.abs_4_a_1 Bool) - (critical_failure.res.abs_5_a_1 Bool) - (critical_failure.res.abs_6_a_1 Bool) - (critical_failure.res.abs_7_a_1 Bool) - (critical_failure.res.abs_8_a_1 Bool) - (critical_failure.res.abs_9_a_1 Bool) - (critical_failure.res.inst_9_a_1 Bool) - (critical_failure.res.inst_8_a_1 Bool) - (critical_failure.res.inst_7_a_1 Bool) - (critical_failure.res.inst_6_a_1 Bool) - (critical_failure.res.inst_5_a_1 Bool) - (critical_failure.res.inst_4_a_1 Bool) - (critical_failure.res.inst_3_a_1 Bool) - (critical_failure.res.inst_2_a_1 Bool) - (critical_failure.res.inst_1_a_1 Bool) - (critical_failure.res.inst_0_a_1 Bool) - (critical_failure.usr.op_mode_a_0 Int) - (critical_failure.usr.steam_a_0 Int) - (critical_failure.usr.level_defect_a_0 Int) - (critical_failure.usr.steam_defect_a_0 Int) - (critical_failure.usr.pump_defect_0_a_0 Int) - (critical_failure.usr.pump_defect_1_a_0 Int) - (critical_failure.usr.pump_defect_2_a_0 Int) - (critical_failure.usr.pump_defect_3_a_0 Int) - (critical_failure.usr.q_a_0 Int) - (critical_failure.usr.pump_state_0_a_0 Int) - (critical_failure.usr.pump_state_1_a_0 Int) - (critical_failure.usr.pump_state_2_a_0 Int) - (critical_failure.usr.pump_state_3_a_0 Int) - (critical_failure.usr.critical_failure_a_0 Bool) - (critical_failure.res.init_flag_a_0 Bool) - (critical_failure.res.abs_0_a_0 Bool) - (critical_failure.res.abs_1_a_0 Bool) - (critical_failure.res.abs_2_a_0 Bool) - (critical_failure.res.abs_3_a_0 Bool) - (critical_failure.res.abs_4_a_0 Bool) - (critical_failure.res.abs_5_a_0 Bool) - (critical_failure.res.abs_6_a_0 Bool) - (critical_failure.res.abs_7_a_0 Bool) - (critical_failure.res.abs_8_a_0 Bool) - (critical_failure.res.abs_9_a_0 Bool) - (critical_failure.res.inst_9_a_0 Bool) - (critical_failure.res.inst_8_a_0 Bool) - (critical_failure.res.inst_7_a_0 Bool) - (critical_failure.res.inst_6_a_0 Bool) - (critical_failure.res.inst_5_a_0 Bool) - (critical_failure.res.inst_4_a_0 Bool) - (critical_failure.res.inst_3_a_0 Bool) - (critical_failure.res.inst_2_a_0 Bool) - (critical_failure.res.inst_1_a_0 Bool) - (critical_failure.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - critical_failure.usr.critical_failure_a_1 - (or - (or - (or - (or - (or - critical_failure.res.abs_0_a_1 - (and - (= critical_failure.usr.op_mode_a_1 1) - critical_failure.res.abs_1_a_1)) - (and - (= critical_failure.usr.op_mode_a_1 2) - (or critical_failure.res.abs_2_a_1 critical_failure.res.abs_3_a_1))) - (and - (= critical_failure.usr.op_mode_a_1 3) - critical_failure.res.abs_4_a_1)) - (and (= critical_failure.usr.op_mode_a_1 4) critical_failure.res.abs_4_a_1)) - (and - (= critical_failure.usr.op_mode_a_1 5) - (or - (or critical_failure.res.abs_4_a_1 critical_failure.res.abs_3_a_1) - critical_failure.res.abs_9_a_1)))) - (__node_trans_transmission_failure_0 - critical_failure.usr.pump_state_0_a_1 - critical_failure.usr.pump_state_1_a_1 - critical_failure.usr.pump_state_2_a_1 - critical_failure.usr.pump_state_3_a_1 - critical_failure.res.abs_0_a_1 - critical_failure.res.inst_9_a_1 - critical_failure.usr.pump_state_0_a_0 - critical_failure.usr.pump_state_1_a_0 - critical_failure.usr.pump_state_2_a_0 - critical_failure.usr.pump_state_3_a_0 - critical_failure.res.abs_0_a_0 - critical_failure.res.inst_9_a_0) - (__node_trans_steam_failure_startup_0 - critical_failure.usr.steam_a_1 - critical_failure.res.abs_1_a_1 - critical_failure.res.inst_8_a_1 - critical_failure.usr.steam_a_0 - critical_failure.res.abs_1_a_0 - critical_failure.res.inst_8_a_0) - (__node_trans_level_failure_0 - critical_failure.usr.level_defect_a_1 - critical_failure.res.abs_2_a_1 - critical_failure.res.inst_7_a_1 - critical_failure.usr.level_defect_a_0 - critical_failure.res.abs_2_a_0 - critical_failure.res.inst_7_a_0) - (__node_trans_steam_failure_0 - critical_failure.usr.steam_defect_a_1 - critical_failure.res.abs_3_a_1 - critical_failure.res.inst_6_a_1 - critical_failure.usr.steam_defect_a_0 - critical_failure.res.abs_3_a_0 - critical_failure.res.inst_6_a_0) - (__node_trans_dangerous_level_0 - critical_failure.usr.q_a_1 - critical_failure.res.abs_4_a_1 - critical_failure.res.inst_5_a_1 - critical_failure.usr.q_a_0 - critical_failure.res.abs_4_a_0 - critical_failure.res.inst_5_a_0) - (__node_trans_AND_0 - critical_failure.res.abs_5_a_1 - critical_failure.res.abs_6_a_1 - critical_failure.res.abs_7_a_1 - critical_failure.res.abs_8_a_1 - critical_failure.res.abs_9_a_1 - critical_failure.res.inst_4_a_1 - critical_failure.res.abs_5_a_0 - critical_failure.res.abs_6_a_0 - critical_failure.res.abs_7_a_0 - critical_failure.res.abs_8_a_0 - critical_failure.res.abs_9_a_0 - critical_failure.res.inst_4_a_0) - (__node_trans_pump_failure_0 - critical_failure.usr.pump_defect_0_a_1 - critical_failure.res.abs_5_a_1 - critical_failure.res.inst_3_a_1 - critical_failure.usr.pump_defect_0_a_0 - critical_failure.res.abs_5_a_0 - critical_failure.res.inst_3_a_0) - (__node_trans_pump_failure_0 - critical_failure.usr.pump_defect_1_a_1 - critical_failure.res.abs_6_a_1 - critical_failure.res.inst_2_a_1 - critical_failure.usr.pump_defect_1_a_0 - critical_failure.res.abs_6_a_0 - critical_failure.res.inst_2_a_0) - (__node_trans_pump_failure_0 - critical_failure.usr.pump_defect_2_a_1 - critical_failure.res.abs_7_a_1 - critical_failure.res.inst_1_a_1 - critical_failure.usr.pump_defect_2_a_0 - critical_failure.res.abs_7_a_0 - critical_failure.res.inst_1_a_0) - (__node_trans_pump_failure_0 - critical_failure.usr.pump_defect_3_a_1 - critical_failure.res.abs_8_a_1 - critical_failure.res.inst_0_a_1 - critical_failure.usr.pump_defect_3_a_0 - critical_failure.res.abs_8_a_0 - critical_failure.res.inst_0_a_0) - (not critical_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_ControlMode_0 ( - (ControlMode.usr.steam_boiler_waiting_a_0 Bool) - (ControlMode.usr.physical_units_ready_a_0 Bool) - (ControlMode.usr.stop_request_a_0 Bool) - (ControlMode.usr.steam_a_0 Int) - (ControlMode.usr.level_defect_a_0 Int) - (ControlMode.usr.steam_defect_a_0 Int) - (ControlMode.usr.pump_defect_0_a_0 Int) - (ControlMode.usr.pump_defect_1_a_0 Int) - (ControlMode.usr.pump_defect_2_a_0 Int) - (ControlMode.usr.pump_defect_3_a_0 Int) - (ControlMode.usr.pump_control_defect_0_a_0 Int) - (ControlMode.usr.pump_control_defect_1_a_0 Int) - (ControlMode.usr.pump_control_defect_2_a_0 Int) - (ControlMode.usr.pump_control_defect_3_a_0 Int) - (ControlMode.usr.q_a_0 Int) - (ControlMode.usr.pump_state_0_a_0 Int) - (ControlMode.usr.pump_state_1_a_0 Int) - (ControlMode.usr.pump_state_2_a_0 Int) - (ControlMode.usr.pump_state_3_a_0 Int) - (ControlMode.res.nondet_0 Int) - (ControlMode.usr.op_mode_a_0 Int) - (ControlMode.res.init_flag_a_0 Bool) - (ControlMode.res.abs_0_a_0 Int) - (ControlMode.res.abs_1_a_0 Bool) - (ControlMode.res.abs_2_a_0 Bool) - (ControlMode.res.abs_3_a_0 Bool) - (ControlMode.res.inst_46_a_0 Bool) - (ControlMode.res.inst_45_a_0 Bool) - (ControlMode.res.inst_44_a_0 Bool) - (ControlMode.res.inst_43_a_0 Bool) - (ControlMode.res.inst_42_a_0 Bool) - (ControlMode.res.inst_41_a_0 Bool) - (ControlMode.res.inst_40_a_0 Bool) - (ControlMode.res.inst_39_a_0 Bool) - (ControlMode.res.inst_38_a_0 Bool) - (ControlMode.res.inst_37_a_0 Bool) - (ControlMode.res.inst_36_a_0 Bool) - (ControlMode.res.inst_35_a_0 Bool) - (ControlMode.res.inst_34_a_0 Bool) - (ControlMode.res.inst_33_a_0 Bool) - (ControlMode.res.inst_32_a_0 Bool) - (ControlMode.res.inst_31_a_0 Bool) - (ControlMode.res.inst_30_a_0 Bool) - (ControlMode.res.inst_29_a_0 Bool) - (ControlMode.res.inst_28_a_0 Bool) - (ControlMode.res.inst_27_a_0 Bool) - (ControlMode.res.inst_26_a_0 Bool) - (ControlMode.res.inst_25_a_0 Bool) - (ControlMode.res.inst_24_a_0 Bool) - (ControlMode.res.inst_23_a_0 Bool) - (ControlMode.res.inst_22_a_0 Bool) - (ControlMode.res.inst_21_a_0 Bool) - (ControlMode.res.inst_20_a_0 Bool) - (ControlMode.res.inst_19_a_0 Bool) - (ControlMode.res.inst_18_a_0 Bool) - (ControlMode.res.inst_17_a_0 Bool) - (ControlMode.res.inst_16_a_0 Bool) - (ControlMode.res.inst_15_a_0 Bool) - (ControlMode.res.inst_14_a_0 Bool) - (ControlMode.res.inst_13_a_0 Bool) - (ControlMode.res.inst_12_a_0 Bool) - (ControlMode.res.inst_11_a_0 Bool) - (ControlMode.res.inst_10_a_0 Bool) - (ControlMode.res.inst_9_a_0 Bool) - (ControlMode.res.inst_8_a_0 Bool) - (ControlMode.res.inst_7_a_0 Bool) - (ControlMode.res.inst_6_a_0 Bool) - (ControlMode.res.inst_5_a_0 Bool) - (ControlMode.res.inst_4_a_0 Bool) - (ControlMode.res.inst_3_a_0 Bool) - (ControlMode.res.inst_2_a_0 Bool) - (ControlMode.res.inst_1_a_0 Bool) - (ControlMode.res.inst_0_a_0 Bool) - ) Bool - - (and - (= ControlMode.usr.op_mode_a_0 1) - (= ControlMode.res.abs_0_a_0 (let ((X1 Int ControlMode.res.nondet_0)) X1)) - (__node_init_critical_failure_0 - ControlMode.res.abs_0_a_0 - ControlMode.usr.steam_a_0 - ControlMode.usr.level_defect_a_0 - ControlMode.usr.steam_defect_a_0 - ControlMode.usr.pump_defect_0_a_0 - ControlMode.usr.pump_defect_1_a_0 - ControlMode.usr.pump_defect_2_a_0 - ControlMode.usr.pump_defect_3_a_0 - ControlMode.usr.q_a_0 - ControlMode.usr.pump_state_0_a_0 - ControlMode.usr.pump_state_1_a_0 - ControlMode.usr.pump_state_2_a_0 - ControlMode.usr.pump_state_3_a_0 - ControlMode.res.abs_1_a_0 - ControlMode.res.inst_46_a_0 - ControlMode.res.inst_45_a_0 - ControlMode.res.inst_44_a_0 - ControlMode.res.inst_43_a_0 - ControlMode.res.inst_42_a_0 - ControlMode.res.inst_41_a_0 - ControlMode.res.inst_40_a_0 - ControlMode.res.inst_39_a_0 - ControlMode.res.inst_38_a_0 - ControlMode.res.inst_37_a_0 - ControlMode.res.inst_36_a_0 - ControlMode.res.inst_35_a_0 - ControlMode.res.inst_34_a_0 - ControlMode.res.inst_33_a_0 - ControlMode.res.inst_32_a_0 - ControlMode.res.inst_31_a_0 - ControlMode.res.inst_30_a_0 - ControlMode.res.inst_29_a_0 - ControlMode.res.inst_28_a_0 - ControlMode.res.inst_27_a_0 - ControlMode.res.inst_26_a_0) - (__node_init_level_failure_0 - ControlMode.usr.level_defect_a_0 - ControlMode.res.abs_2_a_0 - ControlMode.res.inst_25_a_0) - (__node_init_failure_0 - ControlMode.usr.level_defect_a_0 - ControlMode.usr.steam_defect_a_0 - ControlMode.usr.pump_defect_0_a_0 - ControlMode.usr.pump_defect_1_a_0 - ControlMode.usr.pump_defect_2_a_0 - ControlMode.usr.pump_defect_3_a_0 - ControlMode.usr.pump_control_defect_0_a_0 - ControlMode.usr.pump_control_defect_1_a_0 - ControlMode.usr.pump_control_defect_2_a_0 - ControlMode.usr.pump_control_defect_3_a_0 - ControlMode.res.abs_3_a_0 - ControlMode.res.inst_24_a_0 - ControlMode.res.inst_23_a_0 - ControlMode.res.inst_22_a_0 - ControlMode.res.inst_21_a_0 - ControlMode.res.inst_20_a_0 - ControlMode.res.inst_19_a_0 - ControlMode.res.inst_18_a_0 - ControlMode.res.inst_17_a_0 - ControlMode.res.inst_16_a_0 - ControlMode.res.inst_15_a_0 - ControlMode.res.inst_14_a_0 - ControlMode.res.inst_13_a_0 - ControlMode.res.inst_12_a_0 - ControlMode.res.inst_11_a_0 - ControlMode.res.inst_10_a_0 - ControlMode.res.inst_9_a_0 - ControlMode.res.inst_8_a_0 - ControlMode.res.inst_7_a_0 - ControlMode.res.inst_6_a_0 - ControlMode.res.inst_5_a_0 - ControlMode.res.inst_4_a_0 - ControlMode.res.inst_3_a_0 - ControlMode.res.inst_2_a_0 - ControlMode.res.inst_1_a_0 - ControlMode.res.inst_0_a_0) - (<= 1 ControlMode.usr.op_mode_a_0 6) - ControlMode.res.init_flag_a_0) -) - -(define-fun - __node_trans_ControlMode_0 ( - (ControlMode.usr.steam_boiler_waiting_a_1 Bool) - (ControlMode.usr.physical_units_ready_a_1 Bool) - (ControlMode.usr.stop_request_a_1 Bool) - (ControlMode.usr.steam_a_1 Int) - (ControlMode.usr.level_defect_a_1 Int) - (ControlMode.usr.steam_defect_a_1 Int) - (ControlMode.usr.pump_defect_0_a_1 Int) - (ControlMode.usr.pump_defect_1_a_1 Int) - (ControlMode.usr.pump_defect_2_a_1 Int) - (ControlMode.usr.pump_defect_3_a_1 Int) - (ControlMode.usr.pump_control_defect_0_a_1 Int) - (ControlMode.usr.pump_control_defect_1_a_1 Int) - (ControlMode.usr.pump_control_defect_2_a_1 Int) - (ControlMode.usr.pump_control_defect_3_a_1 Int) - (ControlMode.usr.q_a_1 Int) - (ControlMode.usr.pump_state_0_a_1 Int) - (ControlMode.usr.pump_state_1_a_1 Int) - (ControlMode.usr.pump_state_2_a_1 Int) - (ControlMode.usr.pump_state_3_a_1 Int) - (ControlMode.res.nondet_0 Int) - (ControlMode.usr.op_mode_a_1 Int) - (ControlMode.res.init_flag_a_1 Bool) - (ControlMode.res.abs_0_a_1 Int) - (ControlMode.res.abs_1_a_1 Bool) - (ControlMode.res.abs_2_a_1 Bool) - (ControlMode.res.abs_3_a_1 Bool) - (ControlMode.res.inst_46_a_1 Bool) - (ControlMode.res.inst_45_a_1 Bool) - (ControlMode.res.inst_44_a_1 Bool) - (ControlMode.res.inst_43_a_1 Bool) - (ControlMode.res.inst_42_a_1 Bool) - (ControlMode.res.inst_41_a_1 Bool) - (ControlMode.res.inst_40_a_1 Bool) - (ControlMode.res.inst_39_a_1 Bool) - (ControlMode.res.inst_38_a_1 Bool) - (ControlMode.res.inst_37_a_1 Bool) - (ControlMode.res.inst_36_a_1 Bool) - (ControlMode.res.inst_35_a_1 Bool) - (ControlMode.res.inst_34_a_1 Bool) - (ControlMode.res.inst_33_a_1 Bool) - (ControlMode.res.inst_32_a_1 Bool) - (ControlMode.res.inst_31_a_1 Bool) - (ControlMode.res.inst_30_a_1 Bool) - (ControlMode.res.inst_29_a_1 Bool) - (ControlMode.res.inst_28_a_1 Bool) - (ControlMode.res.inst_27_a_1 Bool) - (ControlMode.res.inst_26_a_1 Bool) - (ControlMode.res.inst_25_a_1 Bool) - (ControlMode.res.inst_24_a_1 Bool) - (ControlMode.res.inst_23_a_1 Bool) - (ControlMode.res.inst_22_a_1 Bool) - (ControlMode.res.inst_21_a_1 Bool) - (ControlMode.res.inst_20_a_1 Bool) - (ControlMode.res.inst_19_a_1 Bool) - (ControlMode.res.inst_18_a_1 Bool) - (ControlMode.res.inst_17_a_1 Bool) - (ControlMode.res.inst_16_a_1 Bool) - (ControlMode.res.inst_15_a_1 Bool) - (ControlMode.res.inst_14_a_1 Bool) - (ControlMode.res.inst_13_a_1 Bool) - (ControlMode.res.inst_12_a_1 Bool) - (ControlMode.res.inst_11_a_1 Bool) - (ControlMode.res.inst_10_a_1 Bool) - (ControlMode.res.inst_9_a_1 Bool) - (ControlMode.res.inst_8_a_1 Bool) - (ControlMode.res.inst_7_a_1 Bool) - (ControlMode.res.inst_6_a_1 Bool) - (ControlMode.res.inst_5_a_1 Bool) - (ControlMode.res.inst_4_a_1 Bool) - (ControlMode.res.inst_3_a_1 Bool) - (ControlMode.res.inst_2_a_1 Bool) - (ControlMode.res.inst_1_a_1 Bool) - (ControlMode.res.inst_0_a_1 Bool) - (ControlMode.usr.steam_boiler_waiting_a_0 Bool) - (ControlMode.usr.physical_units_ready_a_0 Bool) - (ControlMode.usr.stop_request_a_0 Bool) - (ControlMode.usr.steam_a_0 Int) - (ControlMode.usr.level_defect_a_0 Int) - (ControlMode.usr.steam_defect_a_0 Int) - (ControlMode.usr.pump_defect_0_a_0 Int) - (ControlMode.usr.pump_defect_1_a_0 Int) - (ControlMode.usr.pump_defect_2_a_0 Int) - (ControlMode.usr.pump_defect_3_a_0 Int) - (ControlMode.usr.pump_control_defect_0_a_0 Int) - (ControlMode.usr.pump_control_defect_1_a_0 Int) - (ControlMode.usr.pump_control_defect_2_a_0 Int) - (ControlMode.usr.pump_control_defect_3_a_0 Int) - (ControlMode.usr.q_a_0 Int) - (ControlMode.usr.pump_state_0_a_0 Int) - (ControlMode.usr.pump_state_1_a_0 Int) - (ControlMode.usr.pump_state_2_a_0 Int) - (ControlMode.usr.pump_state_3_a_0 Int) - (ControlMode.usr.op_mode_a_0 Int) - (ControlMode.res.init_flag_a_0 Bool) - (ControlMode.res.abs_0_a_0 Int) - (ControlMode.res.abs_1_a_0 Bool) - (ControlMode.res.abs_2_a_0 Bool) - (ControlMode.res.abs_3_a_0 Bool) - (ControlMode.res.inst_46_a_0 Bool) - (ControlMode.res.inst_45_a_0 Bool) - (ControlMode.res.inst_44_a_0 Bool) - (ControlMode.res.inst_43_a_0 Bool) - (ControlMode.res.inst_42_a_0 Bool) - (ControlMode.res.inst_41_a_0 Bool) - (ControlMode.res.inst_40_a_0 Bool) - (ControlMode.res.inst_39_a_0 Bool) - (ControlMode.res.inst_38_a_0 Bool) - (ControlMode.res.inst_37_a_0 Bool) - (ControlMode.res.inst_36_a_0 Bool) - (ControlMode.res.inst_35_a_0 Bool) - (ControlMode.res.inst_34_a_0 Bool) - (ControlMode.res.inst_33_a_0 Bool) - (ControlMode.res.inst_32_a_0 Bool) - (ControlMode.res.inst_31_a_0 Bool) - (ControlMode.res.inst_30_a_0 Bool) - (ControlMode.res.inst_29_a_0 Bool) - (ControlMode.res.inst_28_a_0 Bool) - (ControlMode.res.inst_27_a_0 Bool) - (ControlMode.res.inst_26_a_0 Bool) - (ControlMode.res.inst_25_a_0 Bool) - (ControlMode.res.inst_24_a_0 Bool) - (ControlMode.res.inst_23_a_0 Bool) - (ControlMode.res.inst_22_a_0 Bool) - (ControlMode.res.inst_21_a_0 Bool) - (ControlMode.res.inst_20_a_0 Bool) - (ControlMode.res.inst_19_a_0 Bool) - (ControlMode.res.inst_18_a_0 Bool) - (ControlMode.res.inst_17_a_0 Bool) - (ControlMode.res.inst_16_a_0 Bool) - (ControlMode.res.inst_15_a_0 Bool) - (ControlMode.res.inst_14_a_0 Bool) - (ControlMode.res.inst_13_a_0 Bool) - (ControlMode.res.inst_12_a_0 Bool) - (ControlMode.res.inst_11_a_0 Bool) - (ControlMode.res.inst_10_a_0 Bool) - (ControlMode.res.inst_9_a_0 Bool) - (ControlMode.res.inst_8_a_0 Bool) - (ControlMode.res.inst_7_a_0 Bool) - (ControlMode.res.inst_6_a_0 Bool) - (ControlMode.res.inst_5_a_0 Bool) - (ControlMode.res.inst_4_a_0 Bool) - (ControlMode.res.inst_3_a_0 Bool) - (ControlMode.res.inst_2_a_0 Bool) - (ControlMode.res.inst_1_a_0 Bool) - (ControlMode.res.inst_0_a_0 Bool) - ) Bool - - (and - (= ControlMode.res.abs_0_a_1 ControlMode.usr.op_mode_a_0) - (= - ControlMode.usr.op_mode_a_1 - (ite - (or - (or ControlMode.res.abs_1_a_1 ControlMode.usr.stop_request_a_1) - (= ControlMode.usr.op_mode_a_0 6)) - 6 - (ite - (= ControlMode.usr.op_mode_a_0 1) - (ite ControlMode.usr.steam_boiler_waiting_a_1 2 1) - (ite - (and - (= ControlMode.usr.op_mode_a_0 2) - (not ControlMode.usr.physical_units_ready_a_1)) - 2 - (ite ControlMode.res.abs_2_a_1 5 (ite ControlMode.res.abs_3_a_1 4 3)))))) - (__node_trans_critical_failure_0 - ControlMode.res.abs_0_a_1 - ControlMode.usr.steam_a_1 - ControlMode.usr.level_defect_a_1 - ControlMode.usr.steam_defect_a_1 - ControlMode.usr.pump_defect_0_a_1 - ControlMode.usr.pump_defect_1_a_1 - ControlMode.usr.pump_defect_2_a_1 - ControlMode.usr.pump_defect_3_a_1 - ControlMode.usr.q_a_1 - ControlMode.usr.pump_state_0_a_1 - ControlMode.usr.pump_state_1_a_1 - ControlMode.usr.pump_state_2_a_1 - ControlMode.usr.pump_state_3_a_1 - ControlMode.res.abs_1_a_1 - ControlMode.res.inst_46_a_1 - ControlMode.res.inst_45_a_1 - ControlMode.res.inst_44_a_1 - ControlMode.res.inst_43_a_1 - ControlMode.res.inst_42_a_1 - ControlMode.res.inst_41_a_1 - ControlMode.res.inst_40_a_1 - ControlMode.res.inst_39_a_1 - ControlMode.res.inst_38_a_1 - ControlMode.res.inst_37_a_1 - ControlMode.res.inst_36_a_1 - ControlMode.res.inst_35_a_1 - ControlMode.res.inst_34_a_1 - ControlMode.res.inst_33_a_1 - ControlMode.res.inst_32_a_1 - ControlMode.res.inst_31_a_1 - ControlMode.res.inst_30_a_1 - ControlMode.res.inst_29_a_1 - ControlMode.res.inst_28_a_1 - ControlMode.res.inst_27_a_1 - ControlMode.res.inst_26_a_1 - ControlMode.res.abs_0_a_0 - ControlMode.usr.steam_a_0 - ControlMode.usr.level_defect_a_0 - ControlMode.usr.steam_defect_a_0 - ControlMode.usr.pump_defect_0_a_0 - ControlMode.usr.pump_defect_1_a_0 - ControlMode.usr.pump_defect_2_a_0 - ControlMode.usr.pump_defect_3_a_0 - ControlMode.usr.q_a_0 - ControlMode.usr.pump_state_0_a_0 - ControlMode.usr.pump_state_1_a_0 - ControlMode.usr.pump_state_2_a_0 - ControlMode.usr.pump_state_3_a_0 - ControlMode.res.abs_1_a_0 - ControlMode.res.inst_46_a_0 - ControlMode.res.inst_45_a_0 - ControlMode.res.inst_44_a_0 - ControlMode.res.inst_43_a_0 - ControlMode.res.inst_42_a_0 - ControlMode.res.inst_41_a_0 - ControlMode.res.inst_40_a_0 - ControlMode.res.inst_39_a_0 - ControlMode.res.inst_38_a_0 - ControlMode.res.inst_37_a_0 - ControlMode.res.inst_36_a_0 - ControlMode.res.inst_35_a_0 - ControlMode.res.inst_34_a_0 - ControlMode.res.inst_33_a_0 - ControlMode.res.inst_32_a_0 - ControlMode.res.inst_31_a_0 - ControlMode.res.inst_30_a_0 - ControlMode.res.inst_29_a_0 - ControlMode.res.inst_28_a_0 - ControlMode.res.inst_27_a_0 - ControlMode.res.inst_26_a_0) - (__node_trans_level_failure_0 - ControlMode.usr.level_defect_a_1 - ControlMode.res.abs_2_a_1 - ControlMode.res.inst_25_a_1 - ControlMode.usr.level_defect_a_0 - ControlMode.res.abs_2_a_0 - ControlMode.res.inst_25_a_0) - (__node_trans_failure_0 - ControlMode.usr.level_defect_a_1 - ControlMode.usr.steam_defect_a_1 - ControlMode.usr.pump_defect_0_a_1 - ControlMode.usr.pump_defect_1_a_1 - ControlMode.usr.pump_defect_2_a_1 - ControlMode.usr.pump_defect_3_a_1 - ControlMode.usr.pump_control_defect_0_a_1 - ControlMode.usr.pump_control_defect_1_a_1 - ControlMode.usr.pump_control_defect_2_a_1 - ControlMode.usr.pump_control_defect_3_a_1 - ControlMode.res.abs_3_a_1 - ControlMode.res.inst_24_a_1 - ControlMode.res.inst_23_a_1 - ControlMode.res.inst_22_a_1 - ControlMode.res.inst_21_a_1 - ControlMode.res.inst_20_a_1 - ControlMode.res.inst_19_a_1 - ControlMode.res.inst_18_a_1 - ControlMode.res.inst_17_a_1 - ControlMode.res.inst_16_a_1 - ControlMode.res.inst_15_a_1 - ControlMode.res.inst_14_a_1 - ControlMode.res.inst_13_a_1 - ControlMode.res.inst_12_a_1 - ControlMode.res.inst_11_a_1 - ControlMode.res.inst_10_a_1 - ControlMode.res.inst_9_a_1 - ControlMode.res.inst_8_a_1 - ControlMode.res.inst_7_a_1 - ControlMode.res.inst_6_a_1 - ControlMode.res.inst_5_a_1 - ControlMode.res.inst_4_a_1 - ControlMode.res.inst_3_a_1 - ControlMode.res.inst_2_a_1 - ControlMode.res.inst_1_a_1 - ControlMode.res.inst_0_a_1 - ControlMode.usr.level_defect_a_0 - ControlMode.usr.steam_defect_a_0 - ControlMode.usr.pump_defect_0_a_0 - ControlMode.usr.pump_defect_1_a_0 - ControlMode.usr.pump_defect_2_a_0 - ControlMode.usr.pump_defect_3_a_0 - ControlMode.usr.pump_control_defect_0_a_0 - ControlMode.usr.pump_control_defect_1_a_0 - ControlMode.usr.pump_control_defect_2_a_0 - ControlMode.usr.pump_control_defect_3_a_0 - ControlMode.res.abs_3_a_0 - ControlMode.res.inst_24_a_0 - ControlMode.res.inst_23_a_0 - ControlMode.res.inst_22_a_0 - ControlMode.res.inst_21_a_0 - ControlMode.res.inst_20_a_0 - ControlMode.res.inst_19_a_0 - ControlMode.res.inst_18_a_0 - ControlMode.res.inst_17_a_0 - ControlMode.res.inst_16_a_0 - ControlMode.res.inst_15_a_0 - ControlMode.res.inst_14_a_0 - ControlMode.res.inst_13_a_0 - ControlMode.res.inst_12_a_0 - ControlMode.res.inst_11_a_0 - ControlMode.res.inst_10_a_0 - ControlMode.res.inst_9_a_0 - ControlMode.res.inst_8_a_0 - ControlMode.res.inst_7_a_0 - ControlMode.res.inst_6_a_0 - ControlMode.res.inst_5_a_0 - ControlMode.res.inst_4_a_0 - ControlMode.res.inst_3_a_0 - ControlMode.res.inst_2_a_0 - ControlMode.res.inst_1_a_0 - ControlMode.res.inst_0_a_0) - (<= 1 ControlMode.usr.op_mode_a_1 6) - (not ControlMode.res.init_flag_a_1)) -) - -(define-fun - __node_init_level_failure_detect_0 ( - (level_failure_detect.usr.level_a_0 Int) - (level_failure_detect.usr.level_failure_detect_a_0 Bool) - (level_failure_detect.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - level_failure_detect.usr.level_failure_detect_a_0 - (or - (< level_failure_detect.usr.level_a_0 0) - (> level_failure_detect.usr.level_a_0 1000))) - level_failure_detect.res.init_flag_a_0) -) - -(define-fun - __node_trans_level_failure_detect_0 ( - (level_failure_detect.usr.level_a_1 Int) - (level_failure_detect.usr.level_failure_detect_a_1 Bool) - (level_failure_detect.res.init_flag_a_1 Bool) - (level_failure_detect.usr.level_a_0 Int) - (level_failure_detect.usr.level_failure_detect_a_0 Bool) - (level_failure_detect.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - level_failure_detect.usr.level_failure_detect_a_1 - (or - (< level_failure_detect.usr.level_a_1 0) - (> level_failure_detect.usr.level_a_1 1000))) - (not level_failure_detect.res.init_flag_a_1)) -) - -(define-fun - __node_init_Defect_0 ( - (Defect.usr.statein_a_0 Int) - (Defect.usr.fail_cond_a_0 Bool) - (Defect.usr.ack_chan_a_0 Bool) - (Defect.usr.repair_chan_a_0 Bool) - (Defect.usr.stateout_a_0 Int) - (Defect.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - Defect.usr.stateout_a_0 - (ite - (= Defect.usr.statein_a_0 0) - (ite Defect.usr.fail_cond_a_0 1 0) - (ite - (= Defect.usr.statein_a_0 1) - (ite Defect.usr.ack_chan_a_0 2 1) - (ite Defect.usr.repair_chan_a_0 0 2)))) - (<= 0 Defect.usr.stateout_a_0 2) - Defect.res.init_flag_a_0) -) - -(define-fun - __node_trans_Defect_0 ( - (Defect.usr.statein_a_1 Int) - (Defect.usr.fail_cond_a_1 Bool) - (Defect.usr.ack_chan_a_1 Bool) - (Defect.usr.repair_chan_a_1 Bool) - (Defect.usr.stateout_a_1 Int) - (Defect.res.init_flag_a_1 Bool) - (Defect.usr.statein_a_0 Int) - (Defect.usr.fail_cond_a_0 Bool) - (Defect.usr.ack_chan_a_0 Bool) - (Defect.usr.repair_chan_a_0 Bool) - (Defect.usr.stateout_a_0 Int) - (Defect.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - Defect.usr.stateout_a_1 - (ite - (= Defect.usr.statein_a_1 0) - (ite Defect.usr.fail_cond_a_1 1 0) - (ite - (= Defect.usr.statein_a_1 1) - (ite Defect.usr.ack_chan_a_1 2 1) - (ite Defect.usr.repair_chan_a_1 0 2)))) - (<= 0 Defect.usr.stateout_a_1 2) - (not Defect.res.init_flag_a_1)) -) - -(define-fun - __node_init_LevelDefect_0 ( - (LevelDefect.usr.level_failure_acknowledgement_a_0 Bool) - (LevelDefect.usr.level_repaired_a_0 Bool) - (LevelDefect.usr.level_a_0 Int) - (LevelDefect.res.nondet_0 Int) - (LevelDefect.usr.LevelDefect_a_0 Int) - (LevelDefect.res.init_flag_a_0 Bool) - (LevelDefect.res.abs_0_a_0 Bool) - (LevelDefect.res.abs_1_a_0 Int) - (LevelDefect.res.abs_2_a_0 Int) - (LevelDefect.res.inst_1_a_0 Bool) - (LevelDefect.res.inst_0_a_0 Bool) - ) Bool - - (and - (= LevelDefect.usr.LevelDefect_a_0 0) - (= LevelDefect.res.abs_1_a_0 (let ((X1 Int LevelDefect.res.nondet_0)) X1)) - (__node_init_Defect_0 - LevelDefect.res.abs_1_a_0 - LevelDefect.res.abs_0_a_0 - LevelDefect.usr.level_failure_acknowledgement_a_0 - LevelDefect.usr.level_repaired_a_0 - LevelDefect.res.abs_2_a_0 - LevelDefect.res.inst_1_a_0) - (__node_init_level_failure_detect_0 - LevelDefect.usr.level_a_0 - LevelDefect.res.abs_0_a_0 - LevelDefect.res.inst_0_a_0) - (<= 0 LevelDefect.res.abs_2_a_0 2) - (<= 0 LevelDefect.usr.LevelDefect_a_0 2) - LevelDefect.res.init_flag_a_0) -) - -(define-fun - __node_trans_LevelDefect_0 ( - (LevelDefect.usr.level_failure_acknowledgement_a_1 Bool) - (LevelDefect.usr.level_repaired_a_1 Bool) - (LevelDefect.usr.level_a_1 Int) - (LevelDefect.res.nondet_0 Int) - (LevelDefect.usr.LevelDefect_a_1 Int) - (LevelDefect.res.init_flag_a_1 Bool) - (LevelDefect.res.abs_0_a_1 Bool) - (LevelDefect.res.abs_1_a_1 Int) - (LevelDefect.res.abs_2_a_1 Int) - (LevelDefect.res.inst_1_a_1 Bool) - (LevelDefect.res.inst_0_a_1 Bool) - (LevelDefect.usr.level_failure_acknowledgement_a_0 Bool) - (LevelDefect.usr.level_repaired_a_0 Bool) - (LevelDefect.usr.level_a_0 Int) - (LevelDefect.usr.LevelDefect_a_0 Int) - (LevelDefect.res.init_flag_a_0 Bool) - (LevelDefect.res.abs_0_a_0 Bool) - (LevelDefect.res.abs_1_a_0 Int) - (LevelDefect.res.abs_2_a_0 Int) - (LevelDefect.res.inst_1_a_0 Bool) - (LevelDefect.res.inst_0_a_0 Bool) - ) Bool - - (and - (= LevelDefect.res.abs_1_a_1 LevelDefect.usr.LevelDefect_a_0) - (= LevelDefect.usr.LevelDefect_a_1 LevelDefect.res.abs_2_a_1) - (__node_trans_Defect_0 - LevelDefect.res.abs_1_a_1 - LevelDefect.res.abs_0_a_1 - LevelDefect.usr.level_failure_acknowledgement_a_1 - LevelDefect.usr.level_repaired_a_1 - LevelDefect.res.abs_2_a_1 - LevelDefect.res.inst_1_a_1 - LevelDefect.res.abs_1_a_0 - LevelDefect.res.abs_0_a_0 - LevelDefect.usr.level_failure_acknowledgement_a_0 - LevelDefect.usr.level_repaired_a_0 - LevelDefect.res.abs_2_a_0 - LevelDefect.res.inst_1_a_0) - (__node_trans_level_failure_detect_0 - LevelDefect.usr.level_a_1 - LevelDefect.res.abs_0_a_1 - LevelDefect.res.inst_0_a_1 - LevelDefect.usr.level_a_0 - LevelDefect.res.abs_0_a_0 - LevelDefect.res.inst_0_a_0) - (<= 0 LevelDefect.res.abs_2_a_1 2) - (<= 0 LevelDefect.usr.LevelDefect_a_1 2) - (not LevelDefect.res.init_flag_a_1)) -) - -(define-fun - __node_init_operate_pumps_0 ( - (operate_pumps.usr.n_a_0 Int) - (operate_pumps.usr.n_pumps_to_open_a_0 Int) - (operate_pumps.usr.pump_status_0_a_0 Int) - (operate_pumps.usr.pump_status_1_a_0 Int) - (operate_pumps.usr.pump_status_2_a_0 Int) - (operate_pumps.usr.pump_status_3_a_0 Int) - (operate_pumps.usr.pump_defect_0_a_0 Int) - (operate_pumps.usr.pump_defect_1_a_0 Int) - (operate_pumps.usr.pump_defect_2_a_0 Int) - (operate_pumps.usr.pump_defect_3_a_0 Int) - (operate_pumps.usr.flow_0_a_0 Bool) - (operate_pumps.usr.flow_1_a_0 Bool) - (operate_pumps.usr.flow_2_a_0 Bool) - (operate_pumps.usr.flow_3_a_0 Bool) - (operate_pumps.res.nondet_3 Int) - (operate_pumps.res.nondet_2 Int) - (operate_pumps.res.nondet_1 Int) - (operate_pumps.res.nondet_0 Int) - (operate_pumps.usr.operate_pumps_0_a_0 Int) - (operate_pumps.usr.operate_pumps_1_a_0 Int) - (operate_pumps.usr.operate_pumps_2_a_0 Int) - (operate_pumps.usr.operate_pumps_3_a_0 Int) - (operate_pumps.res.init_flag_a_0 Bool) - (operate_pumps.res.abs_0_a_0 Int) - (operate_pumps.res.abs_1_a_0 Bool) - (operate_pumps.res.abs_2_a_0 Int) - (operate_pumps.res.abs_3_a_0 Bool) - (operate_pumps.res.abs_5_a_0 Int) - (operate_pumps.res.abs_6_a_0 Bool) - (operate_pumps.res.abs_7_a_0 Int) - (operate_pumps.res.abs_8_a_0 Bool) - (operate_pumps.res.abs_10_a_0 Int) - (operate_pumps.res.abs_11_a_0 Bool) - (operate_pumps.res.abs_12_a_0 Int) - (operate_pumps.res.abs_13_a_0 Bool) - (operate_pumps.res.abs_15_a_0 Int) - (operate_pumps.res.abs_16_a_0 Bool) - (operate_pumps.res.abs_17_a_0 Int) - (operate_pumps.res.abs_18_a_0 Bool) - (operate_pumps.res.inst_7_a_0 Bool) - (operate_pumps.res.inst_6_a_0 Bool) - (operate_pumps.res.inst_5_a_0 Bool) - (operate_pumps.res.inst_4_a_0 Bool) - (operate_pumps.res.inst_3_a_0 Bool) - (operate_pumps.res.inst_2_a_0 Bool) - (operate_pumps.res.inst_1_a_0 Bool) - (operate_pumps.res.inst_0_a_0 Bool) - ) Bool - - (and - (= operate_pumps.res.abs_2_a_0 operate_pumps.usr.pump_defect_0_a_0) - (= operate_pumps.res.abs_0_a_0 operate_pumps.usr.pump_defect_0_a_0) - (= - operate_pumps.usr.operate_pumps_0_a_0 - (let - ((X1 Int operate_pumps.res.nondet_0)) - (ite - (and - (and - (and - (> operate_pumps.usr.n_pumps_to_open_a_0 0) - (not operate_pumps.usr.flow_0_a_0)) - (not operate_pumps.res.abs_1_a_0)) - (= operate_pumps.usr.pump_status_0_a_0 0)) - 2 - (ite - (and - (and - (and - (< operate_pumps.usr.n_pumps_to_open_a_0 0) - operate_pumps.usr.flow_0_a_0) - (not operate_pumps.res.abs_3_a_0)) - (= operate_pumps.usr.pump_status_0_a_0 1)) - 0 - (ite - (= operate_pumps.usr.pump_status_0_a_0 2) - 1 - (ite - (and (= X1 2) (= operate_pumps.usr.pump_defect_0_a_0 0)) - (ite (= operate_pumps.usr.pump_status_0_a_0 1) 0 1) - operate_pumps.usr.pump_status_0_a_0)))))) - (= operate_pumps.res.abs_7_a_0 operate_pumps.usr.pump_defect_1_a_0) - (= operate_pumps.res.abs_5_a_0 operate_pumps.usr.pump_defect_1_a_0) - (= - operate_pumps.usr.operate_pumps_1_a_0 - (let - ((X1 Int operate_pumps.res.nondet_1)) - (ite - (and - (and - (and - (> operate_pumps.usr.n_pumps_to_open_a_0 0) - (not operate_pumps.usr.flow_1_a_0)) - (not operate_pumps.res.abs_6_a_0)) - (= operate_pumps.usr.pump_status_1_a_0 0)) - 2 - (ite - (and - (and - (and - (< operate_pumps.usr.n_pumps_to_open_a_0 0) - operate_pumps.usr.flow_1_a_0) - (not operate_pumps.res.abs_8_a_0)) - (= operate_pumps.usr.pump_status_1_a_0 1)) - 0 - (ite - (= operate_pumps.usr.pump_status_1_a_0 2) - 1 - (ite - (and (= X1 2) (= operate_pumps.usr.pump_defect_1_a_0 0)) - (ite (= operate_pumps.usr.pump_status_1_a_0 1) 0 1) - operate_pumps.usr.pump_status_1_a_0)))))) - (= operate_pumps.res.abs_12_a_0 operate_pumps.usr.pump_defect_2_a_0) - (= operate_pumps.res.abs_10_a_0 operate_pumps.usr.pump_defect_2_a_0) - (= - operate_pumps.usr.operate_pumps_2_a_0 - (let - ((X1 Int operate_pumps.res.nondet_2)) - (ite - (and - (and - (and - (> operate_pumps.usr.n_pumps_to_open_a_0 0) - (not operate_pumps.usr.flow_2_a_0)) - (not operate_pumps.res.abs_11_a_0)) - (= operate_pumps.usr.pump_status_2_a_0 0)) - 2 - (ite - (and - (and - (and - (< operate_pumps.usr.n_pumps_to_open_a_0 0) - operate_pumps.usr.flow_2_a_0) - (not operate_pumps.res.abs_13_a_0)) - (= operate_pumps.usr.pump_status_2_a_0 1)) - 0 - (ite - (= operate_pumps.usr.pump_status_2_a_0 2) - 1 - (ite - (and (= X1 2) (= operate_pumps.usr.pump_defect_2_a_0 0)) - (ite (= operate_pumps.usr.pump_status_2_a_0 1) 0 1) - operate_pumps.usr.pump_status_2_a_0)))))) - (= operate_pumps.res.abs_17_a_0 operate_pumps.usr.pump_defect_3_a_0) - (= operate_pumps.res.abs_15_a_0 operate_pumps.usr.pump_defect_3_a_0) - (= - operate_pumps.usr.operate_pumps_3_a_0 - (let - ((X1 Int operate_pumps.res.nondet_3)) - (ite - (and - (and - (and - (> operate_pumps.usr.n_pumps_to_open_a_0 0) - (not operate_pumps.usr.flow_3_a_0)) - (not operate_pumps.res.abs_16_a_0)) - (= operate_pumps.usr.pump_status_3_a_0 0)) - 2 - (ite - (and - (and - (and - (< operate_pumps.usr.n_pumps_to_open_a_0 0) - operate_pumps.usr.flow_3_a_0) - (not operate_pumps.res.abs_18_a_0)) - (= operate_pumps.usr.pump_status_3_a_0 1)) - 0 - (ite - (= operate_pumps.usr.pump_status_3_a_0 2) - 1 - (ite - (and (= X1 2) (= operate_pumps.usr.pump_defect_3_a_0 0)) - (ite (= operate_pumps.usr.pump_status_3_a_0 1) 0 1) - operate_pumps.usr.pump_status_3_a_0)))))) - (__node_init_pump_failure_0 - operate_pumps.res.abs_0_a_0 - operate_pumps.res.abs_1_a_0 - operate_pumps.res.inst_7_a_0) - (__node_init_pump_failure_0 - operate_pumps.res.abs_2_a_0 - operate_pumps.res.abs_3_a_0 - operate_pumps.res.inst_6_a_0) - (__node_init_pump_failure_0 - operate_pumps.res.abs_5_a_0 - operate_pumps.res.abs_6_a_0 - operate_pumps.res.inst_5_a_0) - (__node_init_pump_failure_0 - operate_pumps.res.abs_7_a_0 - operate_pumps.res.abs_8_a_0 - operate_pumps.res.inst_4_a_0) - (__node_init_pump_failure_0 - operate_pumps.res.abs_10_a_0 - operate_pumps.res.abs_11_a_0 - operate_pumps.res.inst_3_a_0) - (__node_init_pump_failure_0 - operate_pumps.res.abs_12_a_0 - operate_pumps.res.abs_13_a_0 - operate_pumps.res.inst_2_a_0) - (__node_init_pump_failure_0 - operate_pumps.res.abs_15_a_0 - operate_pumps.res.abs_16_a_0 - operate_pumps.res.inst_1_a_0) - (__node_init_pump_failure_0 - operate_pumps.res.abs_17_a_0 - operate_pumps.res.abs_18_a_0 - operate_pumps.res.inst_0_a_0) - operate_pumps.res.init_flag_a_0) -) - -(define-fun - __node_trans_operate_pumps_0 ( - (operate_pumps.usr.n_a_1 Int) - (operate_pumps.usr.n_pumps_to_open_a_1 Int) - (operate_pumps.usr.pump_status_0_a_1 Int) - (operate_pumps.usr.pump_status_1_a_1 Int) - (operate_pumps.usr.pump_status_2_a_1 Int) - (operate_pumps.usr.pump_status_3_a_1 Int) - (operate_pumps.usr.pump_defect_0_a_1 Int) - (operate_pumps.usr.pump_defect_1_a_1 Int) - (operate_pumps.usr.pump_defect_2_a_1 Int) - (operate_pumps.usr.pump_defect_3_a_1 Int) - (operate_pumps.usr.flow_0_a_1 Bool) - (operate_pumps.usr.flow_1_a_1 Bool) - (operate_pumps.usr.flow_2_a_1 Bool) - (operate_pumps.usr.flow_3_a_1 Bool) - (operate_pumps.res.nondet_3 Int) - (operate_pumps.res.nondet_2 Int) - (operate_pumps.res.nondet_1 Int) - (operate_pumps.res.nondet_0 Int) - (operate_pumps.usr.operate_pumps_0_a_1 Int) - (operate_pumps.usr.operate_pumps_1_a_1 Int) - (operate_pumps.usr.operate_pumps_2_a_1 Int) - (operate_pumps.usr.operate_pumps_3_a_1 Int) - (operate_pumps.res.init_flag_a_1 Bool) - (operate_pumps.res.abs_0_a_1 Int) - (operate_pumps.res.abs_1_a_1 Bool) - (operate_pumps.res.abs_2_a_1 Int) - (operate_pumps.res.abs_3_a_1 Bool) - (operate_pumps.res.abs_5_a_1 Int) - (operate_pumps.res.abs_6_a_1 Bool) - (operate_pumps.res.abs_7_a_1 Int) - (operate_pumps.res.abs_8_a_1 Bool) - (operate_pumps.res.abs_10_a_1 Int) - (operate_pumps.res.abs_11_a_1 Bool) - (operate_pumps.res.abs_12_a_1 Int) - (operate_pumps.res.abs_13_a_1 Bool) - (operate_pumps.res.abs_15_a_1 Int) - (operate_pumps.res.abs_16_a_1 Bool) - (operate_pumps.res.abs_17_a_1 Int) - (operate_pumps.res.abs_18_a_1 Bool) - (operate_pumps.res.inst_7_a_1 Bool) - (operate_pumps.res.inst_6_a_1 Bool) - (operate_pumps.res.inst_5_a_1 Bool) - (operate_pumps.res.inst_4_a_1 Bool) - (operate_pumps.res.inst_3_a_1 Bool) - (operate_pumps.res.inst_2_a_1 Bool) - (operate_pumps.res.inst_1_a_1 Bool) - (operate_pumps.res.inst_0_a_1 Bool) - (operate_pumps.usr.n_a_0 Int) - (operate_pumps.usr.n_pumps_to_open_a_0 Int) - (operate_pumps.usr.pump_status_0_a_0 Int) - (operate_pumps.usr.pump_status_1_a_0 Int) - (operate_pumps.usr.pump_status_2_a_0 Int) - (operate_pumps.usr.pump_status_3_a_0 Int) - (operate_pumps.usr.pump_defect_0_a_0 Int) - (operate_pumps.usr.pump_defect_1_a_0 Int) - (operate_pumps.usr.pump_defect_2_a_0 Int) - (operate_pumps.usr.pump_defect_3_a_0 Int) - (operate_pumps.usr.flow_0_a_0 Bool) - (operate_pumps.usr.flow_1_a_0 Bool) - (operate_pumps.usr.flow_2_a_0 Bool) - (operate_pumps.usr.flow_3_a_0 Bool) - (operate_pumps.usr.operate_pumps_0_a_0 Int) - (operate_pumps.usr.operate_pumps_1_a_0 Int) - (operate_pumps.usr.operate_pumps_2_a_0 Int) - (operate_pumps.usr.operate_pumps_3_a_0 Int) - (operate_pumps.res.init_flag_a_0 Bool) - (operate_pumps.res.abs_0_a_0 Int) - (operate_pumps.res.abs_1_a_0 Bool) - (operate_pumps.res.abs_2_a_0 Int) - (operate_pumps.res.abs_3_a_0 Bool) - (operate_pumps.res.abs_5_a_0 Int) - (operate_pumps.res.abs_6_a_0 Bool) - (operate_pumps.res.abs_7_a_0 Int) - (operate_pumps.res.abs_8_a_0 Bool) - (operate_pumps.res.abs_10_a_0 Int) - (operate_pumps.res.abs_11_a_0 Bool) - (operate_pumps.res.abs_12_a_0 Int) - (operate_pumps.res.abs_13_a_0 Bool) - (operate_pumps.res.abs_15_a_0 Int) - (operate_pumps.res.abs_16_a_0 Bool) - (operate_pumps.res.abs_17_a_0 Int) - (operate_pumps.res.abs_18_a_0 Bool) - (operate_pumps.res.inst_7_a_0 Bool) - (operate_pumps.res.inst_6_a_0 Bool) - (operate_pumps.res.inst_5_a_0 Bool) - (operate_pumps.res.inst_4_a_0 Bool) - (operate_pumps.res.inst_3_a_0 Bool) - (operate_pumps.res.inst_2_a_0 Bool) - (operate_pumps.res.inst_1_a_0 Bool) - (operate_pumps.res.inst_0_a_0 Bool) - ) Bool - - (and - (= operate_pumps.res.abs_2_a_1 operate_pumps.usr.pump_defect_0_a_1) - (= operate_pumps.res.abs_0_a_1 operate_pumps.usr.pump_defect_0_a_1) - (= - operate_pumps.usr.operate_pumps_0_a_1 - (ite - (and - (and - (and - (> operate_pumps.usr.n_pumps_to_open_a_1 0) - (not operate_pumps.usr.flow_0_a_1)) - (not operate_pumps.res.abs_1_a_1)) - (= operate_pumps.usr.pump_status_0_a_1 0)) - 2 - (ite - (and - (and - (and - (< operate_pumps.usr.n_pumps_to_open_a_1 0) - operate_pumps.usr.flow_0_a_1) - (not operate_pumps.res.abs_3_a_1)) - (= operate_pumps.usr.pump_status_0_a_1 1)) - 0 - (ite - (= operate_pumps.usr.pump_status_0_a_1 2) - 1 - (ite - (and - (= operate_pumps.usr.pump_defect_0_a_0 2) - (= operate_pumps.usr.pump_defect_0_a_1 0)) - (ite (= operate_pumps.usr.pump_status_0_a_1 1) 0 1) - operate_pumps.usr.pump_status_0_a_1))))) - (= operate_pumps.res.abs_7_a_1 operate_pumps.usr.pump_defect_1_a_1) - (= operate_pumps.res.abs_5_a_1 operate_pumps.usr.pump_defect_1_a_1) - (= - operate_pumps.usr.operate_pumps_1_a_1 - (ite - (and - (and - (and - (> operate_pumps.usr.n_pumps_to_open_a_1 0) - (not operate_pumps.usr.flow_1_a_1)) - (not operate_pumps.res.abs_6_a_1)) - (= operate_pumps.usr.pump_status_1_a_1 0)) - 2 - (ite - (and - (and - (and - (< operate_pumps.usr.n_pumps_to_open_a_1 0) - operate_pumps.usr.flow_1_a_1) - (not operate_pumps.res.abs_8_a_1)) - (= operate_pumps.usr.pump_status_1_a_1 1)) - 0 - (ite - (= operate_pumps.usr.pump_status_1_a_1 2) - 1 - (ite - (and - (= operate_pumps.usr.pump_defect_1_a_0 2) - (= operate_pumps.usr.pump_defect_1_a_1 0)) - (ite (= operate_pumps.usr.pump_status_1_a_1 1) 0 1) - operate_pumps.usr.pump_status_1_a_1))))) - (= operate_pumps.res.abs_12_a_1 operate_pumps.usr.pump_defect_2_a_1) - (= operate_pumps.res.abs_10_a_1 operate_pumps.usr.pump_defect_2_a_1) - (= - operate_pumps.usr.operate_pumps_2_a_1 - (ite - (and - (and - (and - (> operate_pumps.usr.n_pumps_to_open_a_1 0) - (not operate_pumps.usr.flow_2_a_1)) - (not operate_pumps.res.abs_11_a_1)) - (= operate_pumps.usr.pump_status_2_a_1 0)) - 2 - (ite - (and - (and - (and - (< operate_pumps.usr.n_pumps_to_open_a_1 0) - operate_pumps.usr.flow_2_a_1) - (not operate_pumps.res.abs_13_a_1)) - (= operate_pumps.usr.pump_status_2_a_1 1)) - 0 - (ite - (= operate_pumps.usr.pump_status_2_a_1 2) - 1 - (ite - (and - (= operate_pumps.usr.pump_defect_2_a_0 2) - (= operate_pumps.usr.pump_defect_2_a_1 0)) - (ite (= operate_pumps.usr.pump_status_2_a_1 1) 0 1) - operate_pumps.usr.pump_status_2_a_1))))) - (= operate_pumps.res.abs_17_a_1 operate_pumps.usr.pump_defect_3_a_1) - (= operate_pumps.res.abs_15_a_1 operate_pumps.usr.pump_defect_3_a_1) - (= - operate_pumps.usr.operate_pumps_3_a_1 - (ite - (and - (and - (and - (> operate_pumps.usr.n_pumps_to_open_a_1 0) - (not operate_pumps.usr.flow_3_a_1)) - (not operate_pumps.res.abs_16_a_1)) - (= operate_pumps.usr.pump_status_3_a_1 0)) - 2 - (ite - (and - (and - (and - (< operate_pumps.usr.n_pumps_to_open_a_1 0) - operate_pumps.usr.flow_3_a_1) - (not operate_pumps.res.abs_18_a_1)) - (= operate_pumps.usr.pump_status_3_a_1 1)) - 0 - (ite - (= operate_pumps.usr.pump_status_3_a_1 2) - 1 - (ite - (and - (= operate_pumps.usr.pump_defect_3_a_0 2) - (= operate_pumps.usr.pump_defect_3_a_1 0)) - (ite (= operate_pumps.usr.pump_status_3_a_1 1) 0 1) - operate_pumps.usr.pump_status_3_a_1))))) - (__node_trans_pump_failure_0 - operate_pumps.res.abs_0_a_1 - operate_pumps.res.abs_1_a_1 - operate_pumps.res.inst_7_a_1 - operate_pumps.res.abs_0_a_0 - operate_pumps.res.abs_1_a_0 - operate_pumps.res.inst_7_a_0) - (__node_trans_pump_failure_0 - operate_pumps.res.abs_2_a_1 - operate_pumps.res.abs_3_a_1 - operate_pumps.res.inst_6_a_1 - operate_pumps.res.abs_2_a_0 - operate_pumps.res.abs_3_a_0 - operate_pumps.res.inst_6_a_0) - (__node_trans_pump_failure_0 - operate_pumps.res.abs_5_a_1 - operate_pumps.res.abs_6_a_1 - operate_pumps.res.inst_5_a_1 - operate_pumps.res.abs_5_a_0 - operate_pumps.res.abs_6_a_0 - operate_pumps.res.inst_5_a_0) - (__node_trans_pump_failure_0 - operate_pumps.res.abs_7_a_1 - operate_pumps.res.abs_8_a_1 - operate_pumps.res.inst_4_a_1 - operate_pumps.res.abs_7_a_0 - operate_pumps.res.abs_8_a_0 - operate_pumps.res.inst_4_a_0) - (__node_trans_pump_failure_0 - operate_pumps.res.abs_10_a_1 - operate_pumps.res.abs_11_a_1 - operate_pumps.res.inst_3_a_1 - operate_pumps.res.abs_10_a_0 - operate_pumps.res.abs_11_a_0 - operate_pumps.res.inst_3_a_0) - (__node_trans_pump_failure_0 - operate_pumps.res.abs_12_a_1 - operate_pumps.res.abs_13_a_1 - operate_pumps.res.inst_2_a_1 - operate_pumps.res.abs_12_a_0 - operate_pumps.res.abs_13_a_0 - operate_pumps.res.inst_2_a_0) - (__node_trans_pump_failure_0 - operate_pumps.res.abs_15_a_1 - operate_pumps.res.abs_16_a_1 - operate_pumps.res.inst_1_a_1 - operate_pumps.res.abs_15_a_0 - operate_pumps.res.abs_16_a_0 - operate_pumps.res.inst_1_a_0) - (__node_trans_pump_failure_0 - operate_pumps.res.abs_17_a_1 - operate_pumps.res.abs_18_a_1 - operate_pumps.res.inst_0_a_1 - operate_pumps.res.abs_17_a_0 - operate_pumps.res.abs_18_a_0 - operate_pumps.res.inst_0_a_0) - (not operate_pumps.res.init_flag_a_1)) -) - -(define-fun - __node_init_PumpsStatus_0 ( - (PumpsStatus.usr.n_pumps_a_0 Int) - (PumpsStatus.usr.pump_defect_0_a_0 Int) - (PumpsStatus.usr.pump_defect_1_a_0 Int) - (PumpsStatus.usr.pump_defect_2_a_0 Int) - (PumpsStatus.usr.pump_defect_3_a_0 Int) - (PumpsStatus.usr.flow_0_a_0 Bool) - (PumpsStatus.usr.flow_1_a_0 Bool) - (PumpsStatus.usr.flow_2_a_0 Bool) - (PumpsStatus.usr.flow_3_a_0 Bool) - (PumpsStatus.res.nondet_7 Int) - (PumpsStatus.res.nondet_6 Int) - (PumpsStatus.res.nondet_5 Int) - (PumpsStatus.res.nondet_4 Int) - (PumpsStatus.res.nondet_3 Int) - (PumpsStatus.res.nondet_2 Int) - (PumpsStatus.res.nondet_1 Int) - (PumpsStatus.res.nondet_0 Int) - (PumpsStatus.usr.pump_status_0_a_0 Int) - (PumpsStatus.usr.pump_status_1_a_0 Int) - (PumpsStatus.usr.pump_status_2_a_0 Int) - (PumpsStatus.usr.pump_status_3_a_0 Int) - (PumpsStatus.res.init_flag_a_0 Bool) - (PumpsStatus.res.abs_4_a_0 Int) - (PumpsStatus.res.abs_5_a_0 Int) - (PumpsStatus.res.abs_6_a_0 Int) - (PumpsStatus.res.abs_7_a_0 Int) - (PumpsStatus.res.abs_8_a_0 Int) - (PumpsStatus.res.abs_9_a_0 Int) - (PumpsStatus.res.abs_10_a_0 Int) - (PumpsStatus.res.abs_11_a_0 Int) - (PumpsStatus.res.abs_12_a_0 Int) - (PumpsStatus.res.abs_13_a_0 Int) - (PumpsStatus.res.abs_14_a_0 Bool) - (PumpsStatus.res.abs_15_a_0 Bool) - (PumpsStatus.res.abs_16_a_0 Bool) - (PumpsStatus.res.abs_17_a_0 Bool) - (PumpsStatus.res.abs_18_a_0 Int) - (PumpsStatus.res.abs_19_a_0 Int) - (PumpsStatus.res.abs_20_a_0 Int) - (PumpsStatus.res.abs_21_a_0 Int) - (PumpsStatus.res.inst_24_a_0 Bool) - (PumpsStatus.res.inst_23_a_0 Int) - (PumpsStatus.res.inst_22_a_0 Bool) - (PumpsStatus.res.inst_21_a_0 Int) - (PumpsStatus.res.inst_20_a_0 Bool) - (PumpsStatus.res.inst_19_a_0 Int) - (PumpsStatus.res.inst_18_a_0 Bool) - (PumpsStatus.res.inst_17_a_0 Int) - (PumpsStatus.res.inst_16_a_0 Bool) - (PumpsStatus.res.inst_15_a_0 Int) - (PumpsStatus.res.inst_14_a_0 Bool) - (PumpsStatus.res.inst_13_a_0 Int) - (PumpsStatus.res.inst_12_a_0 Bool) - (PumpsStatus.res.inst_11_a_0 Int) - (PumpsStatus.res.inst_10_a_0 Bool) - (PumpsStatus.res.inst_9_a_0 Int) - (PumpsStatus.res.inst_8_a_0 Bool) - (PumpsStatus.res.inst_7_a_0 Bool) - (PumpsStatus.res.inst_6_a_0 Bool) - (PumpsStatus.res.inst_5_a_0 Bool) - (PumpsStatus.res.inst_4_a_0 Bool) - (PumpsStatus.res.inst_3_a_0 Bool) - (PumpsStatus.res.inst_2_a_0 Bool) - (PumpsStatus.res.inst_1_a_0 Bool) - (PumpsStatus.res.inst_0_a_0 Bool) - ) Bool - - (and - (= PumpsStatus.usr.pump_status_0_a_0 0) - (= PumpsStatus.res.abs_14_a_0 PumpsStatus.usr.flow_0_a_0) - (= PumpsStatus.res.abs_10_a_0 PumpsStatus.usr.pump_defect_0_a_0) - (= PumpsStatus.res.abs_6_a_0 (let ((X1 Int PumpsStatus.res.nondet_0)) X1)) - (let - ((X1 - Int (+ - (+ - (+ - (ite PumpsStatus.usr.flow_0_a_0 1 0) - (ite PumpsStatus.usr.flow_1_a_0 1 0)) - (ite PumpsStatus.usr.flow_2_a_0 1 0)) - (ite PumpsStatus.usr.flow_3_a_0 1 0)))) - (let - ((X2 Int (- PumpsStatus.usr.n_pumps_a_0 X1))) - (and - (= PumpsStatus.res.abs_5_a_0 X2) - (let - ((X3 Int PumpsStatus.res.abs_18_a_0)) - (and - (= PumpsStatus.res.abs_4_a_0 4) - (= - PumpsStatus.res.abs_7_a_0 - (let ((X4 Int PumpsStatus.res.nondet_1)) X4)) - (= PumpsStatus.usr.pump_status_1_a_0 0) - (= PumpsStatus.res.abs_15_a_0 PumpsStatus.usr.flow_1_a_0) - (= PumpsStatus.res.abs_11_a_0 PumpsStatus.usr.pump_defect_1_a_0) - (let - ((X4 Int PumpsStatus.res.abs_19_a_0)) - (and - (= - PumpsStatus.res.abs_8_a_0 - (let ((X5 Int PumpsStatus.res.nondet_2)) X5)) - (= PumpsStatus.usr.pump_status_2_a_0 0) - (= PumpsStatus.res.abs_16_a_0 PumpsStatus.usr.flow_2_a_0) - (= PumpsStatus.res.abs_12_a_0 PumpsStatus.usr.pump_defect_2_a_0) - (let - ((X5 Int PumpsStatus.res.abs_20_a_0)) - (and - (= - PumpsStatus.res.abs_9_a_0 - (let ((X6 Int PumpsStatus.res.nondet_3)) X6)) - (= PumpsStatus.usr.pump_status_3_a_0 0) - (= PumpsStatus.res.abs_17_a_0 PumpsStatus.usr.flow_3_a_0) - (= PumpsStatus.res.abs_13_a_0 PumpsStatus.usr.pump_defect_3_a_0) - (let - ((X6 Int PumpsStatus.res.abs_21_a_0)) - (and - (__node_init_operate_pumps_0 - PumpsStatus.res.abs_4_a_0 - PumpsStatus.res.abs_5_a_0 - PumpsStatus.res.abs_6_a_0 - PumpsStatus.res.abs_7_a_0 - PumpsStatus.res.abs_8_a_0 - PumpsStatus.res.abs_9_a_0 - PumpsStatus.res.abs_10_a_0 - PumpsStatus.res.abs_11_a_0 - PumpsStatus.res.abs_12_a_0 - PumpsStatus.res.abs_13_a_0 - PumpsStatus.res.abs_14_a_0 - PumpsStatus.res.abs_15_a_0 - PumpsStatus.res.abs_16_a_0 - PumpsStatus.res.abs_17_a_0 - PumpsStatus.res.nondet_7 - PumpsStatus.res.nondet_6 - PumpsStatus.res.nondet_5 - PumpsStatus.res.nondet_4 - PumpsStatus.res.abs_18_a_0 - PumpsStatus.res.abs_19_a_0 - PumpsStatus.res.abs_20_a_0 - PumpsStatus.res.abs_21_a_0 - PumpsStatus.res.inst_24_a_0 - PumpsStatus.res.inst_23_a_0 - PumpsStatus.res.inst_22_a_0 - PumpsStatus.res.inst_21_a_0 - PumpsStatus.res.inst_20_a_0 - PumpsStatus.res.inst_19_a_0 - PumpsStatus.res.inst_18_a_0 - PumpsStatus.res.inst_17_a_0 - PumpsStatus.res.inst_16_a_0 - PumpsStatus.res.inst_15_a_0 - PumpsStatus.res.inst_14_a_0 - PumpsStatus.res.inst_13_a_0 - PumpsStatus.res.inst_12_a_0 - PumpsStatus.res.inst_11_a_0 - PumpsStatus.res.inst_10_a_0 - PumpsStatus.res.inst_9_a_0 - PumpsStatus.res.inst_8_a_0 - PumpsStatus.res.inst_7_a_0 - PumpsStatus.res.inst_6_a_0 - PumpsStatus.res.inst_5_a_0 - PumpsStatus.res.inst_4_a_0 - PumpsStatus.res.inst_3_a_0 - PumpsStatus.res.inst_2_a_0 - PumpsStatus.res.inst_1_a_0 - PumpsStatus.res.inst_0_a_0) - (<= 4 PumpsStatus.res.abs_4_a_0 4) - (<= 0 X1 4) - PumpsStatus.res.init_flag_a_0)))))))))))) -) - -(define-fun - __node_trans_PumpsStatus_0 ( - (PumpsStatus.usr.n_pumps_a_1 Int) - (PumpsStatus.usr.pump_defect_0_a_1 Int) - (PumpsStatus.usr.pump_defect_1_a_1 Int) - (PumpsStatus.usr.pump_defect_2_a_1 Int) - (PumpsStatus.usr.pump_defect_3_a_1 Int) - (PumpsStatus.usr.flow_0_a_1 Bool) - (PumpsStatus.usr.flow_1_a_1 Bool) - (PumpsStatus.usr.flow_2_a_1 Bool) - (PumpsStatus.usr.flow_3_a_1 Bool) - (PumpsStatus.res.nondet_7 Int) - (PumpsStatus.res.nondet_6 Int) - (PumpsStatus.res.nondet_5 Int) - (PumpsStatus.res.nondet_4 Int) - (PumpsStatus.res.nondet_3 Int) - (PumpsStatus.res.nondet_2 Int) - (PumpsStatus.res.nondet_1 Int) - (PumpsStatus.res.nondet_0 Int) - (PumpsStatus.usr.pump_status_0_a_1 Int) - (PumpsStatus.usr.pump_status_1_a_1 Int) - (PumpsStatus.usr.pump_status_2_a_1 Int) - (PumpsStatus.usr.pump_status_3_a_1 Int) - (PumpsStatus.res.init_flag_a_1 Bool) - (PumpsStatus.res.abs_4_a_1 Int) - (PumpsStatus.res.abs_5_a_1 Int) - (PumpsStatus.res.abs_6_a_1 Int) - (PumpsStatus.res.abs_7_a_1 Int) - (PumpsStatus.res.abs_8_a_1 Int) - (PumpsStatus.res.abs_9_a_1 Int) - (PumpsStatus.res.abs_10_a_1 Int) - (PumpsStatus.res.abs_11_a_1 Int) - (PumpsStatus.res.abs_12_a_1 Int) - (PumpsStatus.res.abs_13_a_1 Int) - (PumpsStatus.res.abs_14_a_1 Bool) - (PumpsStatus.res.abs_15_a_1 Bool) - (PumpsStatus.res.abs_16_a_1 Bool) - (PumpsStatus.res.abs_17_a_1 Bool) - (PumpsStatus.res.abs_18_a_1 Int) - (PumpsStatus.res.abs_19_a_1 Int) - (PumpsStatus.res.abs_20_a_1 Int) - (PumpsStatus.res.abs_21_a_1 Int) - (PumpsStatus.res.inst_24_a_1 Bool) - (PumpsStatus.res.inst_23_a_1 Int) - (PumpsStatus.res.inst_22_a_1 Bool) - (PumpsStatus.res.inst_21_a_1 Int) - (PumpsStatus.res.inst_20_a_1 Bool) - (PumpsStatus.res.inst_19_a_1 Int) - (PumpsStatus.res.inst_18_a_1 Bool) - (PumpsStatus.res.inst_17_a_1 Int) - (PumpsStatus.res.inst_16_a_1 Bool) - (PumpsStatus.res.inst_15_a_1 Int) - (PumpsStatus.res.inst_14_a_1 Bool) - (PumpsStatus.res.inst_13_a_1 Int) - (PumpsStatus.res.inst_12_a_1 Bool) - (PumpsStatus.res.inst_11_a_1 Int) - (PumpsStatus.res.inst_10_a_1 Bool) - (PumpsStatus.res.inst_9_a_1 Int) - (PumpsStatus.res.inst_8_a_1 Bool) - (PumpsStatus.res.inst_7_a_1 Bool) - (PumpsStatus.res.inst_6_a_1 Bool) - (PumpsStatus.res.inst_5_a_1 Bool) - (PumpsStatus.res.inst_4_a_1 Bool) - (PumpsStatus.res.inst_3_a_1 Bool) - (PumpsStatus.res.inst_2_a_1 Bool) - (PumpsStatus.res.inst_1_a_1 Bool) - (PumpsStatus.res.inst_0_a_1 Bool) - (PumpsStatus.usr.n_pumps_a_0 Int) - (PumpsStatus.usr.pump_defect_0_a_0 Int) - (PumpsStatus.usr.pump_defect_1_a_0 Int) - (PumpsStatus.usr.pump_defect_2_a_0 Int) - (PumpsStatus.usr.pump_defect_3_a_0 Int) - (PumpsStatus.usr.flow_0_a_0 Bool) - (PumpsStatus.usr.flow_1_a_0 Bool) - (PumpsStatus.usr.flow_2_a_0 Bool) - (PumpsStatus.usr.flow_3_a_0 Bool) - (PumpsStatus.usr.pump_status_0_a_0 Int) - (PumpsStatus.usr.pump_status_1_a_0 Int) - (PumpsStatus.usr.pump_status_2_a_0 Int) - (PumpsStatus.usr.pump_status_3_a_0 Int) - (PumpsStatus.res.init_flag_a_0 Bool) - (PumpsStatus.res.abs_4_a_0 Int) - (PumpsStatus.res.abs_5_a_0 Int) - (PumpsStatus.res.abs_6_a_0 Int) - (PumpsStatus.res.abs_7_a_0 Int) - (PumpsStatus.res.abs_8_a_0 Int) - (PumpsStatus.res.abs_9_a_0 Int) - (PumpsStatus.res.abs_10_a_0 Int) - (PumpsStatus.res.abs_11_a_0 Int) - (PumpsStatus.res.abs_12_a_0 Int) - (PumpsStatus.res.abs_13_a_0 Int) - (PumpsStatus.res.abs_14_a_0 Bool) - (PumpsStatus.res.abs_15_a_0 Bool) - (PumpsStatus.res.abs_16_a_0 Bool) - (PumpsStatus.res.abs_17_a_0 Bool) - (PumpsStatus.res.abs_18_a_0 Int) - (PumpsStatus.res.abs_19_a_0 Int) - (PumpsStatus.res.abs_20_a_0 Int) - (PumpsStatus.res.abs_21_a_0 Int) - (PumpsStatus.res.inst_24_a_0 Bool) - (PumpsStatus.res.inst_23_a_0 Int) - (PumpsStatus.res.inst_22_a_0 Bool) - (PumpsStatus.res.inst_21_a_0 Int) - (PumpsStatus.res.inst_20_a_0 Bool) - (PumpsStatus.res.inst_19_a_0 Int) - (PumpsStatus.res.inst_18_a_0 Bool) - (PumpsStatus.res.inst_17_a_0 Int) - (PumpsStatus.res.inst_16_a_0 Bool) - (PumpsStatus.res.inst_15_a_0 Int) - (PumpsStatus.res.inst_14_a_0 Bool) - (PumpsStatus.res.inst_13_a_0 Int) - (PumpsStatus.res.inst_12_a_0 Bool) - (PumpsStatus.res.inst_11_a_0 Int) - (PumpsStatus.res.inst_10_a_0 Bool) - (PumpsStatus.res.inst_9_a_0 Int) - (PumpsStatus.res.inst_8_a_0 Bool) - (PumpsStatus.res.inst_7_a_0 Bool) - (PumpsStatus.res.inst_6_a_0 Bool) - (PumpsStatus.res.inst_5_a_0 Bool) - (PumpsStatus.res.inst_4_a_0 Bool) - (PumpsStatus.res.inst_3_a_0 Bool) - (PumpsStatus.res.inst_2_a_0 Bool) - (PumpsStatus.res.inst_1_a_0 Bool) - (PumpsStatus.res.inst_0_a_0 Bool) - ) Bool - - (and - (= PumpsStatus.res.abs_14_a_1 PumpsStatus.usr.flow_0_a_1) - (= PumpsStatus.res.abs_10_a_1 PumpsStatus.usr.pump_defect_0_a_1) - (= PumpsStatus.res.abs_6_a_1 PumpsStatus.usr.pump_status_0_a_0) - (let - ((X1 - Int (+ - (+ - (+ - (ite PumpsStatus.usr.flow_0_a_1 1 0) - (ite PumpsStatus.usr.flow_1_a_1 1 0)) - (ite PumpsStatus.usr.flow_2_a_1 1 0)) - (ite PumpsStatus.usr.flow_3_a_1 1 0)))) - (let - ((X2 Int (- PumpsStatus.usr.n_pumps_a_1 X1))) - (and - (= PumpsStatus.res.abs_5_a_1 X2) - (let - ((X3 Int PumpsStatus.res.abs_18_a_1)) - (and - (= PumpsStatus.usr.pump_status_0_a_1 X3) - (= PumpsStatus.res.abs_4_a_1 4) - (= PumpsStatus.res.abs_7_a_1 PumpsStatus.usr.pump_status_1_a_0) - (= PumpsStatus.res.abs_15_a_1 PumpsStatus.usr.flow_1_a_1) - (= PumpsStatus.res.abs_11_a_1 PumpsStatus.usr.pump_defect_1_a_1) - (let - ((X4 Int PumpsStatus.res.abs_19_a_1)) - (and - (= PumpsStatus.usr.pump_status_1_a_1 X4) - (= PumpsStatus.res.abs_8_a_1 PumpsStatus.usr.pump_status_2_a_0) - (= PumpsStatus.res.abs_16_a_1 PumpsStatus.usr.flow_2_a_1) - (= PumpsStatus.res.abs_12_a_1 PumpsStatus.usr.pump_defect_2_a_1) - (let - ((X5 Int PumpsStatus.res.abs_20_a_1)) - (and - (= PumpsStatus.usr.pump_status_2_a_1 X5) - (= PumpsStatus.res.abs_9_a_1 PumpsStatus.usr.pump_status_3_a_0) - (= PumpsStatus.res.abs_17_a_1 PumpsStatus.usr.flow_3_a_1) - (= PumpsStatus.res.abs_13_a_1 PumpsStatus.usr.pump_defect_3_a_1) - (let - ((X6 Int PumpsStatus.res.abs_21_a_1)) - (and - (= PumpsStatus.usr.pump_status_3_a_1 X6) - (__node_trans_operate_pumps_0 - PumpsStatus.res.abs_4_a_1 - PumpsStatus.res.abs_5_a_1 - PumpsStatus.res.abs_6_a_1 - PumpsStatus.res.abs_7_a_1 - PumpsStatus.res.abs_8_a_1 - PumpsStatus.res.abs_9_a_1 - PumpsStatus.res.abs_10_a_1 - PumpsStatus.res.abs_11_a_1 - PumpsStatus.res.abs_12_a_1 - PumpsStatus.res.abs_13_a_1 - PumpsStatus.res.abs_14_a_1 - PumpsStatus.res.abs_15_a_1 - PumpsStatus.res.abs_16_a_1 - PumpsStatus.res.abs_17_a_1 - PumpsStatus.res.nondet_7 - PumpsStatus.res.nondet_6 - PumpsStatus.res.nondet_5 - PumpsStatus.res.nondet_4 - PumpsStatus.res.abs_18_a_1 - PumpsStatus.res.abs_19_a_1 - PumpsStatus.res.abs_20_a_1 - PumpsStatus.res.abs_21_a_1 - PumpsStatus.res.inst_24_a_1 - PumpsStatus.res.inst_23_a_1 - PumpsStatus.res.inst_22_a_1 - PumpsStatus.res.inst_21_a_1 - PumpsStatus.res.inst_20_a_1 - PumpsStatus.res.inst_19_a_1 - PumpsStatus.res.inst_18_a_1 - PumpsStatus.res.inst_17_a_1 - PumpsStatus.res.inst_16_a_1 - PumpsStatus.res.inst_15_a_1 - PumpsStatus.res.inst_14_a_1 - PumpsStatus.res.inst_13_a_1 - PumpsStatus.res.inst_12_a_1 - PumpsStatus.res.inst_11_a_1 - PumpsStatus.res.inst_10_a_1 - PumpsStatus.res.inst_9_a_1 - PumpsStatus.res.inst_8_a_1 - PumpsStatus.res.inst_7_a_1 - PumpsStatus.res.inst_6_a_1 - PumpsStatus.res.inst_5_a_1 - PumpsStatus.res.inst_4_a_1 - PumpsStatus.res.inst_3_a_1 - PumpsStatus.res.inst_2_a_1 - PumpsStatus.res.inst_1_a_1 - PumpsStatus.res.inst_0_a_1 - PumpsStatus.res.abs_4_a_0 - PumpsStatus.res.abs_5_a_0 - PumpsStatus.res.abs_6_a_0 - PumpsStatus.res.abs_7_a_0 - PumpsStatus.res.abs_8_a_0 - PumpsStatus.res.abs_9_a_0 - PumpsStatus.res.abs_10_a_0 - PumpsStatus.res.abs_11_a_0 - PumpsStatus.res.abs_12_a_0 - PumpsStatus.res.abs_13_a_0 - PumpsStatus.res.abs_14_a_0 - PumpsStatus.res.abs_15_a_0 - PumpsStatus.res.abs_16_a_0 - PumpsStatus.res.abs_17_a_0 - PumpsStatus.res.abs_18_a_0 - PumpsStatus.res.abs_19_a_0 - PumpsStatus.res.abs_20_a_0 - PumpsStatus.res.abs_21_a_0 - PumpsStatus.res.inst_24_a_0 - PumpsStatus.res.inst_23_a_0 - PumpsStatus.res.inst_22_a_0 - PumpsStatus.res.inst_21_a_0 - PumpsStatus.res.inst_20_a_0 - PumpsStatus.res.inst_19_a_0 - PumpsStatus.res.inst_18_a_0 - PumpsStatus.res.inst_17_a_0 - PumpsStatus.res.inst_16_a_0 - PumpsStatus.res.inst_15_a_0 - PumpsStatus.res.inst_14_a_0 - PumpsStatus.res.inst_13_a_0 - PumpsStatus.res.inst_12_a_0 - PumpsStatus.res.inst_11_a_0 - PumpsStatus.res.inst_10_a_0 - PumpsStatus.res.inst_9_a_0 - PumpsStatus.res.inst_8_a_0 - PumpsStatus.res.inst_7_a_0 - PumpsStatus.res.inst_6_a_0 - PumpsStatus.res.inst_5_a_0 - PumpsStatus.res.inst_4_a_0 - PumpsStatus.res.inst_3_a_0 - PumpsStatus.res.inst_2_a_0 - PumpsStatus.res.inst_1_a_0 - PumpsStatus.res.inst_0_a_0) - (<= 4 PumpsStatus.res.abs_4_a_1 4) - (<= 0 X1 4) - (not PumpsStatus.res.init_flag_a_1))))))))))))) -) - -(define-fun - __node_init_sum_0 ( - (sum.usr.a_0_a_0 Int) - (sum.usr.a_1_a_0 Int) - (sum.usr.a_2_a_0 Int) - (sum.usr.a_3_a_0 Int) - (sum.usr.sum_a_0 Int) - (sum.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - sum.usr.sum_a_0 - (+ (+ (+ sum.usr.a_0_a_0 sum.usr.a_1_a_0) sum.usr.a_2_a_0) sum.usr.a_3_a_0)) - sum.res.init_flag_a_0) -) - -(define-fun - __node_trans_sum_0 ( - (sum.usr.a_0_a_1 Int) - (sum.usr.a_1_a_1 Int) - (sum.usr.a_2_a_1 Int) - (sum.usr.a_3_a_1 Int) - (sum.usr.sum_a_1 Int) - (sum.res.init_flag_a_1 Bool) - (sum.usr.a_0_a_0 Int) - (sum.usr.a_1_a_0 Int) - (sum.usr.a_2_a_0 Int) - (sum.usr.a_3_a_0 Int) - (sum.usr.sum_a_0 Int) - (sum.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - sum.usr.sum_a_1 - (+ (+ (+ sum.usr.a_0_a_1 sum.usr.a_1_a_1) sum.usr.a_2_a_1) sum.usr.a_3_a_1)) - (not sum.res.init_flag_a_1)) -) - -(define-fun - __node_init_Dynamics_0 ( - (Dynamics.usr.valve_state_a_0 Int) - (Dynamics.usr.level_a_0 Int) - (Dynamics.usr.steam_a_0 Int) - (Dynamics.usr.level_defect_a_0 Int) - (Dynamics.usr.steam_defect_a_0 Int) - (Dynamics.usr.flow_0_a_0 Bool) - (Dynamics.usr.flow_1_a_0 Bool) - (Dynamics.usr.flow_2_a_0 Bool) - (Dynamics.usr.flow_3_a_0 Bool) - (Dynamics.usr.q_a_0 Int) - (Dynamics.usr.v_a_0 Int) - (Dynamics.usr.p_0_a_0 Int) - (Dynamics.usr.p_1_a_0 Int) - (Dynamics.usr.p_2_a_0 Int) - (Dynamics.usr.p_3_a_0 Int) - (Dynamics.res.init_flag_a_0 Bool) - (Dynamics.res.abs_0_a_0 Bool) - (Dynamics.res.abs_1_a_0 Int) - (Dynamics.res.abs_2_a_0 Bool) - (Dynamics.res.inst_2_a_0 Bool) - (Dynamics.res.inst_1_a_0 Bool) - (Dynamics.res.inst_0_a_0 Bool) - ) Bool - - (and - (= Dynamics.usr.q_a_0 Dynamics.usr.level_a_0) - (= Dynamics.usr.p_0_a_0 0) - (= Dynamics.usr.p_1_a_0 0) - (= Dynamics.usr.p_2_a_0 0) - (= Dynamics.usr.p_3_a_0 0) - (= Dynamics.usr.v_a_0 Dynamics.usr.steam_a_0) - (__node_init_level_failure_0 - Dynamics.usr.level_defect_a_0 - Dynamics.res.abs_0_a_0 - Dynamics.res.inst_2_a_0) - (__node_init_sum_0 - Dynamics.usr.p_0_a_0 - Dynamics.usr.p_1_a_0 - Dynamics.usr.p_2_a_0 - Dynamics.usr.p_3_a_0 - Dynamics.res.abs_1_a_0 - Dynamics.res.inst_1_a_0) - (__node_init_steam_failure_0 - Dynamics.usr.steam_defect_a_0 - Dynamics.res.abs_2_a_0 - Dynamics.res.inst_0_a_0) - (<= 0 Dynamics.usr.p_3_a_0 15) - (<= 0 Dynamics.usr.p_2_a_0 15) - (<= 0 Dynamics.usr.p_1_a_0 15) - (<= 0 Dynamics.usr.p_0_a_0 15) - Dynamics.res.init_flag_a_0) -) - -(define-fun - __node_trans_Dynamics_0 ( - (Dynamics.usr.valve_state_a_1 Int) - (Dynamics.usr.level_a_1 Int) - (Dynamics.usr.steam_a_1 Int) - (Dynamics.usr.level_defect_a_1 Int) - (Dynamics.usr.steam_defect_a_1 Int) - (Dynamics.usr.flow_0_a_1 Bool) - (Dynamics.usr.flow_1_a_1 Bool) - (Dynamics.usr.flow_2_a_1 Bool) - (Dynamics.usr.flow_3_a_1 Bool) - (Dynamics.usr.q_a_1 Int) - (Dynamics.usr.v_a_1 Int) - (Dynamics.usr.p_0_a_1 Int) - (Dynamics.usr.p_1_a_1 Int) - (Dynamics.usr.p_2_a_1 Int) - (Dynamics.usr.p_3_a_1 Int) - (Dynamics.res.init_flag_a_1 Bool) - (Dynamics.res.abs_0_a_1 Bool) - (Dynamics.res.abs_1_a_1 Int) - (Dynamics.res.abs_2_a_1 Bool) - (Dynamics.res.inst_2_a_1 Bool) - (Dynamics.res.inst_1_a_1 Bool) - (Dynamics.res.inst_0_a_1 Bool) - (Dynamics.usr.valve_state_a_0 Int) - (Dynamics.usr.level_a_0 Int) - (Dynamics.usr.steam_a_0 Int) - (Dynamics.usr.level_defect_a_0 Int) - (Dynamics.usr.steam_defect_a_0 Int) - (Dynamics.usr.flow_0_a_0 Bool) - (Dynamics.usr.flow_1_a_0 Bool) - (Dynamics.usr.flow_2_a_0 Bool) - (Dynamics.usr.flow_3_a_0 Bool) - (Dynamics.usr.q_a_0 Int) - (Dynamics.usr.v_a_0 Int) - (Dynamics.usr.p_0_a_0 Int) - (Dynamics.usr.p_1_a_0 Int) - (Dynamics.usr.p_2_a_0 Int) - (Dynamics.usr.p_3_a_0 Int) - (Dynamics.res.init_flag_a_0 Bool) - (Dynamics.res.abs_0_a_0 Bool) - (Dynamics.res.abs_1_a_0 Int) - (Dynamics.res.abs_2_a_0 Bool) - (Dynamics.res.inst_2_a_0 Bool) - (Dynamics.res.inst_1_a_0 Bool) - (Dynamics.res.inst_0_a_0 Bool) - ) Bool - - (and - (= Dynamics.usr.p_3_a_1 (ite (not Dynamics.usr.flow_3_a_1) 0 15)) - (= Dynamics.usr.p_2_a_1 (ite (not Dynamics.usr.flow_2_a_1) 0 15)) - (= Dynamics.usr.p_1_a_1 (ite (not Dynamics.usr.flow_1_a_1) 0 15)) - (= Dynamics.usr.p_0_a_1 (ite (not Dynamics.usr.flow_0_a_1) 0 15)) - (= - Dynamics.usr.q_a_1 - (ite - Dynamics.res.abs_0_a_1 - (- - (+ - (+ - (- (+ Dynamics.usr.q_a_0 1) (* Dynamics.usr.steam_a_1 5)) - (* Dynamics.res.abs_1_a_1 5)) - 1) - (ite (= Dynamics.usr.valve_state_a_1 1) 50 0)) - Dynamics.usr.level_a_1)) - (= - Dynamics.usr.v_a_1 - (ite - Dynamics.res.abs_2_a_1 - (+ - (div (- Dynamics.usr.q_a_0 Dynamics.usr.q_a_1) 5) - (* Dynamics.res.abs_1_a_1 5)) - Dynamics.usr.steam_a_1)) - (__node_trans_level_failure_0 - Dynamics.usr.level_defect_a_1 - Dynamics.res.abs_0_a_1 - Dynamics.res.inst_2_a_1 - Dynamics.usr.level_defect_a_0 - Dynamics.res.abs_0_a_0 - Dynamics.res.inst_2_a_0) - (__node_trans_sum_0 - Dynamics.usr.p_0_a_1 - Dynamics.usr.p_1_a_1 - Dynamics.usr.p_2_a_1 - Dynamics.usr.p_3_a_1 - Dynamics.res.abs_1_a_1 - Dynamics.res.inst_1_a_1 - Dynamics.usr.p_0_a_0 - Dynamics.usr.p_1_a_0 - Dynamics.usr.p_2_a_0 - Dynamics.usr.p_3_a_0 - Dynamics.res.abs_1_a_0 - Dynamics.res.inst_1_a_0) - (__node_trans_steam_failure_0 - Dynamics.usr.steam_defect_a_1 - Dynamics.res.abs_2_a_1 - Dynamics.res.inst_0_a_1 - Dynamics.usr.steam_defect_a_0 - Dynamics.res.abs_2_a_0 - Dynamics.res.inst_0_a_0) - (<= 0 Dynamics.usr.p_3_a_1 15) - (<= 0 Dynamics.usr.p_2_a_1 15) - (<= 0 Dynamics.usr.p_1_a_1 15) - (<= 0 Dynamics.usr.p_0_a_1 15) - (not Dynamics.res.init_flag_a_1)) -) - -(define-fun - __node_init_pump_failure_detect_0 ( - (pump_failure_detect.usr.pump_status_a_0 Int) - (pump_failure_detect.usr.pump_state_a_0 Int) - (pump_failure_detect.usr.pump_control_state_a_0 Bool) - (pump_failure_detect.usr.pump_failure_detect_a_0 Bool) - (pump_failure_detect.usr.pump_control_failure_detect_a_0 Bool) - (pump_failure_detect.usr.flow_a_0 Bool) - (pump_failure_detect.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - pump_failure_detect.usr.pump_failure_detect_a_0 - (or - (and - (= pump_failure_detect.usr.pump_status_a_0 0) - (= pump_failure_detect.usr.pump_state_a_0 1)) - (and - (or - (= pump_failure_detect.usr.pump_status_a_0 1) - (= pump_failure_detect.usr.pump_status_a_0 2)) - (= pump_failure_detect.usr.pump_state_a_0 0)))) - (= - pump_failure_detect.usr.pump_control_failure_detect_a_0 - (or - (or - (and - (and - (or - (= pump_failure_detect.usr.pump_status_a_0 0) - (= pump_failure_detect.usr.pump_status_a_0 2)) - (= pump_failure_detect.usr.pump_state_a_0 0)) - pump_failure_detect.usr.pump_control_state_a_0) - (and - (and - (= pump_failure_detect.usr.pump_status_a_0 1) - (= pump_failure_detect.usr.pump_state_a_0 1)) - (not pump_failure_detect.usr.pump_control_state_a_0))) - (and - (and - (= pump_failure_detect.usr.pump_status_a_0 2) - (= pump_failure_detect.usr.pump_state_a_0 1)) - pump_failure_detect.usr.pump_control_state_a_0))) - (= - pump_failure_detect.usr.flow_a_0 - (or - (or - (and - (and - (= pump_failure_detect.usr.pump_status_a_0 0) - (= pump_failure_detect.usr.pump_state_a_0 1)) - pump_failure_detect.usr.pump_control_state_a_0) - (and - (and - (= pump_failure_detect.usr.pump_status_a_0 1) - (= pump_failure_detect.usr.pump_state_a_0 0)) - pump_failure_detect.usr.pump_control_state_a_0)) - (and - (= pump_failure_detect.usr.pump_status_a_0 1) - (= pump_failure_detect.usr.pump_state_a_0 1)))) - pump_failure_detect.res.init_flag_a_0) -) - -(define-fun - __node_trans_pump_failure_detect_0 ( - (pump_failure_detect.usr.pump_status_a_1 Int) - (pump_failure_detect.usr.pump_state_a_1 Int) - (pump_failure_detect.usr.pump_control_state_a_1 Bool) - (pump_failure_detect.usr.pump_failure_detect_a_1 Bool) - (pump_failure_detect.usr.pump_control_failure_detect_a_1 Bool) - (pump_failure_detect.usr.flow_a_1 Bool) - (pump_failure_detect.res.init_flag_a_1 Bool) - (pump_failure_detect.usr.pump_status_a_0 Int) - (pump_failure_detect.usr.pump_state_a_0 Int) - (pump_failure_detect.usr.pump_control_state_a_0 Bool) - (pump_failure_detect.usr.pump_failure_detect_a_0 Bool) - (pump_failure_detect.usr.pump_control_failure_detect_a_0 Bool) - (pump_failure_detect.usr.flow_a_0 Bool) - (pump_failure_detect.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - pump_failure_detect.usr.pump_failure_detect_a_1 - (or - (and - (= pump_failure_detect.usr.pump_status_a_1 0) - (= pump_failure_detect.usr.pump_state_a_1 1)) - (and - (or - (= pump_failure_detect.usr.pump_status_a_1 1) - (= pump_failure_detect.usr.pump_status_a_1 2)) - (= pump_failure_detect.usr.pump_state_a_1 0)))) - (= - pump_failure_detect.usr.pump_control_failure_detect_a_1 - (or - (or - (and - (and - (or - (= pump_failure_detect.usr.pump_status_a_1 0) - (= pump_failure_detect.usr.pump_status_a_1 2)) - (= pump_failure_detect.usr.pump_state_a_1 0)) - pump_failure_detect.usr.pump_control_state_a_1) - (and - (and - (= pump_failure_detect.usr.pump_status_a_1 1) - (= pump_failure_detect.usr.pump_state_a_1 1)) - (not pump_failure_detect.usr.pump_control_state_a_1))) - (and - (and - (= pump_failure_detect.usr.pump_status_a_1 2) - (= pump_failure_detect.usr.pump_state_a_1 1)) - pump_failure_detect.usr.pump_control_state_a_1))) - (= - pump_failure_detect.usr.flow_a_1 - (or - (or - (and - (and - (= pump_failure_detect.usr.pump_status_a_1 0) - (= pump_failure_detect.usr.pump_state_a_1 1)) - pump_failure_detect.usr.pump_control_state_a_1) - (and - (and - (= pump_failure_detect.usr.pump_status_a_1 1) - (= pump_failure_detect.usr.pump_state_a_1 0)) - pump_failure_detect.usr.pump_control_state_a_1)) - (and - (= pump_failure_detect.usr.pump_status_a_1 1) - (= pump_failure_detect.usr.pump_state_a_1 1)))) - (not pump_failure_detect.res.init_flag_a_1)) -) - -(define-fun - __node_init_PumpDefect_0 ( - (PumpDefect.usr.pump_failure_acknowledgement_a_0 Bool) - (PumpDefect.usr.pump_repaired_a_0 Bool) - (PumpDefect.usr.pump_control_failure_acknowledgement_a_0 Bool) - (PumpDefect.usr.pump_control_repaired_a_0 Bool) - (PumpDefect.usr.pump_status_a_0 Int) - (PumpDefect.usr.pump_state_a_0 Int) - (PumpDefect.usr.pump_control_state_a_0 Bool) - (PumpDefect.res.nondet_1 Int) - (PumpDefect.res.nondet_0 Int) - (PumpDefect.usr.PumpDefect_a_0 Int) - (PumpDefect.usr.PumpControlDefect_a_0 Int) - (PumpDefect.usr.Flow_a_0 Bool) - (PumpDefect.res.init_flag_a_0 Bool) - (PumpDefect.impl.usr.pump_failure_d_a_0 Bool) - (PumpDefect.impl.usr.pump_control_failure_d_a_0 Bool) - (PumpDefect.res.abs_0_a_0 Bool) - (PumpDefect.res.abs_1_a_0 Bool) - (PumpDefect.res.abs_2_a_0 Bool) - (PumpDefect.res.abs_3_a_0 Int) - (PumpDefect.res.abs_4_a_0 Int) - (PumpDefect.res.abs_5_a_0 Int) - (PumpDefect.res.abs_6_a_0 Int) - (PumpDefect.res.inst_2_a_0 Bool) - (PumpDefect.res.inst_1_a_0 Bool) - (PumpDefect.res.inst_0_a_0 Bool) - ) Bool - - (and - (= PumpDefect.usr.PumpDefect_a_0 0) - (= PumpDefect.res.abs_3_a_0 (let ((X1 Int PumpDefect.res.nondet_0)) X1)) - (= PumpDefect.impl.usr.pump_failure_d_a_0 PumpDefect.res.abs_0_a_0) - (= PumpDefect.usr.PumpControlDefect_a_0 0) - (= PumpDefect.res.abs_5_a_0 (let ((X1 Int PumpDefect.res.nondet_1)) X1)) - (= PumpDefect.impl.usr.pump_control_failure_d_a_0 PumpDefect.res.abs_1_a_0) - (= PumpDefect.usr.Flow_a_0 PumpDefect.res.abs_2_a_0) - (__node_init_Defect_0 - PumpDefect.res.abs_3_a_0 - PumpDefect.impl.usr.pump_failure_d_a_0 - PumpDefect.usr.pump_failure_acknowledgement_a_0 - PumpDefect.usr.pump_repaired_a_0 - PumpDefect.res.abs_4_a_0 - PumpDefect.res.inst_2_a_0) - (__node_init_pump_failure_detect_0 - PumpDefect.usr.pump_status_a_0 - PumpDefect.usr.pump_state_a_0 - PumpDefect.usr.pump_control_state_a_0 - PumpDefect.res.abs_0_a_0 - PumpDefect.res.abs_1_a_0 - PumpDefect.res.abs_2_a_0 - PumpDefect.res.inst_1_a_0) - (__node_init_Defect_0 - PumpDefect.res.abs_5_a_0 - PumpDefect.impl.usr.pump_control_failure_d_a_0 - PumpDefect.usr.pump_control_failure_acknowledgement_a_0 - PumpDefect.usr.pump_control_repaired_a_0 - PumpDefect.res.abs_6_a_0 - PumpDefect.res.inst_0_a_0) - (<= 0 PumpDefect.res.abs_4_a_0 2) - (<= 0 PumpDefect.res.abs_6_a_0 2) - (<= 0 PumpDefect.usr.PumpControlDefect_a_0 2) - (<= 0 PumpDefect.usr.PumpDefect_a_0 2) - PumpDefect.res.init_flag_a_0) -) - -(define-fun - __node_trans_PumpDefect_0 ( - (PumpDefect.usr.pump_failure_acknowledgement_a_1 Bool) - (PumpDefect.usr.pump_repaired_a_1 Bool) - (PumpDefect.usr.pump_control_failure_acknowledgement_a_1 Bool) - (PumpDefect.usr.pump_control_repaired_a_1 Bool) - (PumpDefect.usr.pump_status_a_1 Int) - (PumpDefect.usr.pump_state_a_1 Int) - (PumpDefect.usr.pump_control_state_a_1 Bool) - (PumpDefect.res.nondet_1 Int) - (PumpDefect.res.nondet_0 Int) - (PumpDefect.usr.PumpDefect_a_1 Int) - (PumpDefect.usr.PumpControlDefect_a_1 Int) - (PumpDefect.usr.Flow_a_1 Bool) - (PumpDefect.res.init_flag_a_1 Bool) - (PumpDefect.impl.usr.pump_failure_d_a_1 Bool) - (PumpDefect.impl.usr.pump_control_failure_d_a_1 Bool) - (PumpDefect.res.abs_0_a_1 Bool) - (PumpDefect.res.abs_1_a_1 Bool) - (PumpDefect.res.abs_2_a_1 Bool) - (PumpDefect.res.abs_3_a_1 Int) - (PumpDefect.res.abs_4_a_1 Int) - (PumpDefect.res.abs_5_a_1 Int) - (PumpDefect.res.abs_6_a_1 Int) - (PumpDefect.res.inst_2_a_1 Bool) - (PumpDefect.res.inst_1_a_1 Bool) - (PumpDefect.res.inst_0_a_1 Bool) - (PumpDefect.usr.pump_failure_acknowledgement_a_0 Bool) - (PumpDefect.usr.pump_repaired_a_0 Bool) - (PumpDefect.usr.pump_control_failure_acknowledgement_a_0 Bool) - (PumpDefect.usr.pump_control_repaired_a_0 Bool) - (PumpDefect.usr.pump_status_a_0 Int) - (PumpDefect.usr.pump_state_a_0 Int) - (PumpDefect.usr.pump_control_state_a_0 Bool) - (PumpDefect.usr.PumpDefect_a_0 Int) - (PumpDefect.usr.PumpControlDefect_a_0 Int) - (PumpDefect.usr.Flow_a_0 Bool) - (PumpDefect.res.init_flag_a_0 Bool) - (PumpDefect.impl.usr.pump_failure_d_a_0 Bool) - (PumpDefect.impl.usr.pump_control_failure_d_a_0 Bool) - (PumpDefect.res.abs_0_a_0 Bool) - (PumpDefect.res.abs_1_a_0 Bool) - (PumpDefect.res.abs_2_a_0 Bool) - (PumpDefect.res.abs_3_a_0 Int) - (PumpDefect.res.abs_4_a_0 Int) - (PumpDefect.res.abs_5_a_0 Int) - (PumpDefect.res.abs_6_a_0 Int) - (PumpDefect.res.inst_2_a_0 Bool) - (PumpDefect.res.inst_1_a_0 Bool) - (PumpDefect.res.inst_0_a_0 Bool) - ) Bool - - (and - (= PumpDefect.res.abs_3_a_1 PumpDefect.usr.PumpDefect_a_0) - (= PumpDefect.impl.usr.pump_failure_d_a_1 PumpDefect.res.abs_0_a_1) - (= PumpDefect.usr.PumpDefect_a_1 PumpDefect.res.abs_4_a_1) - (= PumpDefect.res.abs_5_a_1 PumpDefect.usr.PumpControlDefect_a_0) - (= PumpDefect.impl.usr.pump_control_failure_d_a_1 PumpDefect.res.abs_1_a_1) - (= PumpDefect.usr.PumpControlDefect_a_1 PumpDefect.res.abs_6_a_1) - (= PumpDefect.usr.Flow_a_1 PumpDefect.res.abs_2_a_1) - (__node_trans_Defect_0 - PumpDefect.res.abs_3_a_1 - PumpDefect.impl.usr.pump_failure_d_a_1 - PumpDefect.usr.pump_failure_acknowledgement_a_1 - PumpDefect.usr.pump_repaired_a_1 - PumpDefect.res.abs_4_a_1 - PumpDefect.res.inst_2_a_1 - PumpDefect.res.abs_3_a_0 - PumpDefect.impl.usr.pump_failure_d_a_0 - PumpDefect.usr.pump_failure_acknowledgement_a_0 - PumpDefect.usr.pump_repaired_a_0 - PumpDefect.res.abs_4_a_0 - PumpDefect.res.inst_2_a_0) - (__node_trans_pump_failure_detect_0 - PumpDefect.usr.pump_status_a_1 - PumpDefect.usr.pump_state_a_1 - PumpDefect.usr.pump_control_state_a_1 - PumpDefect.res.abs_0_a_1 - PumpDefect.res.abs_1_a_1 - PumpDefect.res.abs_2_a_1 - PumpDefect.res.inst_1_a_1 - PumpDefect.usr.pump_status_a_0 - PumpDefect.usr.pump_state_a_0 - PumpDefect.usr.pump_control_state_a_0 - PumpDefect.res.abs_0_a_0 - PumpDefect.res.abs_1_a_0 - PumpDefect.res.abs_2_a_0 - PumpDefect.res.inst_1_a_0) - (__node_trans_Defect_0 - PumpDefect.res.abs_5_a_1 - PumpDefect.impl.usr.pump_control_failure_d_a_1 - PumpDefect.usr.pump_control_failure_acknowledgement_a_1 - PumpDefect.usr.pump_control_repaired_a_1 - PumpDefect.res.abs_6_a_1 - PumpDefect.res.inst_0_a_1 - PumpDefect.res.abs_5_a_0 - PumpDefect.impl.usr.pump_control_failure_d_a_0 - PumpDefect.usr.pump_control_failure_acknowledgement_a_0 - PumpDefect.usr.pump_control_repaired_a_0 - PumpDefect.res.abs_6_a_0 - PumpDefect.res.inst_0_a_0) - (<= 0 PumpDefect.res.abs_4_a_1 2) - (<= 0 PumpDefect.res.abs_6_a_1 2) - (<= 0 PumpDefect.usr.PumpControlDefect_a_1 2) - (<= 0 PumpDefect.usr.PumpDefect_a_1 2) - (not PumpDefect.res.init_flag_a_1)) -) - -(define-fun - __node_init_LevelOutput_0 ( - (LevelOutput.usr.op_mode_a_0 Int) - (LevelOutput.usr.level_defect_a_0 Int) - (LevelOutput.usr.level_repaired_a_0 Bool) - (LevelOutput.usr.level_outcome_failure_detection_a_0 Bool) - (LevelOutput.usr.level_outcome_repaired_acknowledgement_a_0 Bool) - (LevelOutput.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - LevelOutput.usr.level_outcome_failure_detection_a_0 - (and - (not - (or (= LevelOutput.usr.op_mode_a_0 6) (= LevelOutput.usr.op_mode_a_0 1))) - (= LevelOutput.usr.level_defect_a_0 1))) - (= - LevelOutput.usr.level_outcome_repaired_acknowledgement_a_0 - (and - (not - (or (= LevelOutput.usr.op_mode_a_0 6) (= LevelOutput.usr.op_mode_a_0 1))) - LevelOutput.usr.level_repaired_a_0)) - LevelOutput.res.init_flag_a_0) -) - -(define-fun - __node_trans_LevelOutput_0 ( - (LevelOutput.usr.op_mode_a_1 Int) - (LevelOutput.usr.level_defect_a_1 Int) - (LevelOutput.usr.level_repaired_a_1 Bool) - (LevelOutput.usr.level_outcome_failure_detection_a_1 Bool) - (LevelOutput.usr.level_outcome_repaired_acknowledgement_a_1 Bool) - (LevelOutput.res.init_flag_a_1 Bool) - (LevelOutput.usr.op_mode_a_0 Int) - (LevelOutput.usr.level_defect_a_0 Int) - (LevelOutput.usr.level_repaired_a_0 Bool) - (LevelOutput.usr.level_outcome_failure_detection_a_0 Bool) - (LevelOutput.usr.level_outcome_repaired_acknowledgement_a_0 Bool) - (LevelOutput.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - LevelOutput.usr.level_outcome_failure_detection_a_1 - (and - (not - (or (= LevelOutput.usr.op_mode_a_1 6) (= LevelOutput.usr.op_mode_a_1 1))) - (= LevelOutput.usr.level_defect_a_1 1))) - (= - LevelOutput.usr.level_outcome_repaired_acknowledgement_a_1 - (and - (not - (or (= LevelOutput.usr.op_mode_a_1 6) (= LevelOutput.usr.op_mode_a_1 1))) - LevelOutput.usr.level_repaired_a_1)) - (not LevelOutput.res.init_flag_a_1)) -) - -(define-fun - __node_init_SteamOutput_0 ( - (SteamOutput.usr.op_mode_a_0 Int) - (SteamOutput.usr.steam_defect_a_0 Int) - (SteamOutput.usr.steam_repaired_a_0 Bool) - (SteamOutput.usr.steam_outcome_failure_detection_a_0 Bool) - (SteamOutput.usr.steam_outcome_repaired_acknowledgement_a_0 Bool) - (SteamOutput.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - SteamOutput.usr.steam_outcome_failure_detection_a_0 - (and - (not - (or (= SteamOutput.usr.op_mode_a_0 6) (= SteamOutput.usr.op_mode_a_0 1))) - (= SteamOutput.usr.steam_defect_a_0 1))) - (= - SteamOutput.usr.steam_outcome_repaired_acknowledgement_a_0 - (and - (not - (or (= SteamOutput.usr.op_mode_a_0 6) (= SteamOutput.usr.op_mode_a_0 1))) - SteamOutput.usr.steam_repaired_a_0)) - SteamOutput.res.init_flag_a_0) -) - -(define-fun - __node_trans_SteamOutput_0 ( - (SteamOutput.usr.op_mode_a_1 Int) - (SteamOutput.usr.steam_defect_a_1 Int) - (SteamOutput.usr.steam_repaired_a_1 Bool) - (SteamOutput.usr.steam_outcome_failure_detection_a_1 Bool) - (SteamOutput.usr.steam_outcome_repaired_acknowledgement_a_1 Bool) - (SteamOutput.res.init_flag_a_1 Bool) - (SteamOutput.usr.op_mode_a_0 Int) - (SteamOutput.usr.steam_defect_a_0 Int) - (SteamOutput.usr.steam_repaired_a_0 Bool) - (SteamOutput.usr.steam_outcome_failure_detection_a_0 Bool) - (SteamOutput.usr.steam_outcome_repaired_acknowledgement_a_0 Bool) - (SteamOutput.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - SteamOutput.usr.steam_outcome_failure_detection_a_1 - (and - (not - (or (= SteamOutput.usr.op_mode_a_1 6) (= SteamOutput.usr.op_mode_a_1 1))) - (= SteamOutput.usr.steam_defect_a_1 1))) - (= - SteamOutput.usr.steam_outcome_repaired_acknowledgement_a_1 - (and - (not - (or (= SteamOutput.usr.op_mode_a_1 6) (= SteamOutput.usr.op_mode_a_1 1))) - SteamOutput.usr.steam_repaired_a_1)) - (not SteamOutput.res.init_flag_a_1)) -) - -(define-fun - __node_init_PumpsOutput_0 ( - (PumpsOutput.usr.op_mode_a_0 Int) - (PumpsOutput.usr.pump_status_0_a_0 Int) - (PumpsOutput.usr.pump_status_1_a_0 Int) - (PumpsOutput.usr.pump_status_2_a_0 Int) - (PumpsOutput.usr.pump_status_3_a_0 Int) - (PumpsOutput.usr.pump_defect_0_a_0 Int) - (PumpsOutput.usr.pump_defect_1_a_0 Int) - (PumpsOutput.usr.pump_defect_2_a_0 Int) - (PumpsOutput.usr.pump_defect_3_a_0 Int) - (PumpsOutput.usr.pump_control_defect_0_a_0 Int) - (PumpsOutput.usr.pump_control_defect_1_a_0 Int) - (PumpsOutput.usr.pump_control_defect_2_a_0 Int) - (PumpsOutput.usr.pump_control_defect_3_a_0 Int) - (PumpsOutput.usr.pump_repaired_0_a_0 Bool) - (PumpsOutput.usr.pump_repaired_1_a_0 Bool) - (PumpsOutput.usr.pump_repaired_2_a_0 Bool) - (PumpsOutput.usr.pump_repaired_3_a_0 Bool) - (PumpsOutput.usr.pump_control_repaired_0_a_0 Bool) - (PumpsOutput.usr.pump_control_repaired_1_a_0 Bool) - (PumpsOutput.usr.pump_control_repaired_2_a_0 Bool) - (PumpsOutput.usr.pump_control_repaired_3_a_0 Bool) - (PumpsOutput.res.nondet_7 Int) - (PumpsOutput.res.nondet_6 Int) - (PumpsOutput.res.nondet_5 Int) - (PumpsOutput.res.nondet_4 Int) - (PumpsOutput.res.nondet_3 Int) - (PumpsOutput.res.nondet_2 Int) - (PumpsOutput.res.nondet_1 Int) - (PumpsOutput.res.nondet_0 Int) - (PumpsOutput.usr.open_pump_0_a_0 Bool) - (PumpsOutput.usr.open_pump_1_a_0 Bool) - (PumpsOutput.usr.open_pump_2_a_0 Bool) - (PumpsOutput.usr.open_pump_3_a_0 Bool) - (PumpsOutput.usr.close_pump_0_a_0 Bool) - (PumpsOutput.usr.close_pump_1_a_0 Bool) - (PumpsOutput.usr.close_pump_2_a_0 Bool) - (PumpsOutput.usr.close_pump_3_a_0 Bool) - (PumpsOutput.usr.pump_failure_detection_0_a_0 Bool) - (PumpsOutput.usr.pump_failure_detection_1_a_0 Bool) - (PumpsOutput.usr.pump_failure_detection_2_a_0 Bool) - (PumpsOutput.usr.pump_failure_detection_3_a_0 Bool) - (PumpsOutput.usr.pump_repaired_acknowledgement_0_a_0 Bool) - (PumpsOutput.usr.pump_repaired_acknowledgement_1_a_0 Bool) - (PumpsOutput.usr.pump_repaired_acknowledgement_2_a_0 Bool) - (PumpsOutput.usr.pump_repaired_acknowledgement_3_a_0 Bool) - (PumpsOutput.usr.pump_control_failure_detection_0_a_0 Bool) - (PumpsOutput.usr.pump_control_failure_detection_1_a_0 Bool) - (PumpsOutput.usr.pump_control_failure_detection_2_a_0 Bool) - (PumpsOutput.usr.pump_control_failure_detection_3_a_0 Bool) - (PumpsOutput.usr.pump_control_repaired_acknowledgement_0_a_0 Bool) - (PumpsOutput.usr.pump_control_repaired_acknowledgement_1_a_0 Bool) - (PumpsOutput.usr.pump_control_repaired_acknowledgement_2_a_0 Bool) - (PumpsOutput.usr.pump_control_repaired_acknowledgement_3_a_0 Bool) - (PumpsOutput.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - PumpsOutput.usr.open_pump_0_a_0 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - (= PumpsOutput.usr.pump_status_0_a_0 2))) - (= - PumpsOutput.usr.open_pump_1_a_0 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - (= PumpsOutput.usr.pump_status_1_a_0 2))) - (= - PumpsOutput.usr.open_pump_2_a_0 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - (= PumpsOutput.usr.pump_status_2_a_0 2))) - (= - PumpsOutput.usr.open_pump_3_a_0 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - (= PumpsOutput.usr.pump_status_3_a_0 2))) - (= - PumpsOutput.usr.close_pump_0_a_0 - (let - ((X1 Int PumpsOutput.res.nondet_1) (X2 Int PumpsOutput.res.nondet_0)) - (and - (and - (and - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - (= PumpsOutput.usr.pump_status_0_a_0 0)) - (not (= X2 0))) - (= PumpsOutput.usr.pump_defect_0_a_0 0)) - (= X1 0)))) - (= - PumpsOutput.usr.close_pump_1_a_0 - (let - ((X1 Int PumpsOutput.res.nondet_3) (X2 Int PumpsOutput.res.nondet_2)) - (and - (and - (and - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - (= PumpsOutput.usr.pump_status_0_a_0 0)) - (not (= X2 0))) - (= PumpsOutput.usr.pump_defect_0_a_0 0)) - (= X1 0)))) - (= - PumpsOutput.usr.close_pump_2_a_0 - (let - ((X1 Int PumpsOutput.res.nondet_5) (X2 Int PumpsOutput.res.nondet_4)) - (and - (and - (and - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - (= PumpsOutput.usr.pump_status_0_a_0 0)) - (not (= X2 0))) - (= PumpsOutput.usr.pump_defect_0_a_0 0)) - (= X1 0)))) - (= - PumpsOutput.usr.close_pump_3_a_0 - (let - ((X1 Int PumpsOutput.res.nondet_7) (X2 Int PumpsOutput.res.nondet_6)) - (and - (and - (and - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - (= PumpsOutput.usr.pump_status_0_a_0 0)) - (not (= X2 0))) - (= PumpsOutput.usr.pump_defect_0_a_0 0)) - (= X1 0)))) - (= - PumpsOutput.usr.pump_failure_detection_0_a_0 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - (= PumpsOutput.usr.pump_defect_0_a_0 1))) - (= - PumpsOutput.usr.pump_failure_detection_1_a_0 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - (= PumpsOutput.usr.pump_defect_1_a_0 1))) - (= - PumpsOutput.usr.pump_failure_detection_2_a_0 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - (= PumpsOutput.usr.pump_defect_2_a_0 1))) - (= - PumpsOutput.usr.pump_failure_detection_3_a_0 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - (= PumpsOutput.usr.pump_defect_3_a_0 1))) - (= - PumpsOutput.usr.pump_repaired_acknowledgement_0_a_0 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - PumpsOutput.usr.pump_repaired_0_a_0)) - (= - PumpsOutput.usr.pump_repaired_acknowledgement_1_a_0 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - PumpsOutput.usr.pump_repaired_1_a_0)) - (= - PumpsOutput.usr.pump_repaired_acknowledgement_2_a_0 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - PumpsOutput.usr.pump_repaired_2_a_0)) - (= - PumpsOutput.usr.pump_repaired_acknowledgement_3_a_0 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - PumpsOutput.usr.pump_repaired_3_a_0)) - (= - PumpsOutput.usr.pump_control_failure_detection_0_a_0 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - (= PumpsOutput.usr.pump_control_defect_0_a_0 1))) - (= - PumpsOutput.usr.pump_control_failure_detection_1_a_0 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - (= PumpsOutput.usr.pump_control_defect_1_a_0 1))) - (= - PumpsOutput.usr.pump_control_failure_detection_2_a_0 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - (= PumpsOutput.usr.pump_control_defect_2_a_0 1))) - (= - PumpsOutput.usr.pump_control_failure_detection_3_a_0 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - (= PumpsOutput.usr.pump_control_defect_3_a_0 1))) - (= - PumpsOutput.usr.pump_control_repaired_acknowledgement_0_a_0 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - PumpsOutput.usr.pump_control_repaired_0_a_0)) - (= - PumpsOutput.usr.pump_control_repaired_acknowledgement_1_a_0 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - PumpsOutput.usr.pump_control_repaired_1_a_0)) - (= - PumpsOutput.usr.pump_control_repaired_acknowledgement_2_a_0 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - PumpsOutput.usr.pump_control_repaired_2_a_0)) - (= - PumpsOutput.usr.pump_control_repaired_acknowledgement_3_a_0 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_0 6)) - (not (= PumpsOutput.usr.op_mode_a_0 1))) - PumpsOutput.usr.pump_control_repaired_3_a_0)) - PumpsOutput.res.init_flag_a_0) -) - -(define-fun - __node_trans_PumpsOutput_0 ( - (PumpsOutput.usr.op_mode_a_1 Int) - (PumpsOutput.usr.pump_status_0_a_1 Int) - (PumpsOutput.usr.pump_status_1_a_1 Int) - (PumpsOutput.usr.pump_status_2_a_1 Int) - (PumpsOutput.usr.pump_status_3_a_1 Int) - (PumpsOutput.usr.pump_defect_0_a_1 Int) - (PumpsOutput.usr.pump_defect_1_a_1 Int) - (PumpsOutput.usr.pump_defect_2_a_1 Int) - (PumpsOutput.usr.pump_defect_3_a_1 Int) - (PumpsOutput.usr.pump_control_defect_0_a_1 Int) - (PumpsOutput.usr.pump_control_defect_1_a_1 Int) - (PumpsOutput.usr.pump_control_defect_2_a_1 Int) - (PumpsOutput.usr.pump_control_defect_3_a_1 Int) - (PumpsOutput.usr.pump_repaired_0_a_1 Bool) - (PumpsOutput.usr.pump_repaired_1_a_1 Bool) - (PumpsOutput.usr.pump_repaired_2_a_1 Bool) - (PumpsOutput.usr.pump_repaired_3_a_1 Bool) - (PumpsOutput.usr.pump_control_repaired_0_a_1 Bool) - (PumpsOutput.usr.pump_control_repaired_1_a_1 Bool) - (PumpsOutput.usr.pump_control_repaired_2_a_1 Bool) - (PumpsOutput.usr.pump_control_repaired_3_a_1 Bool) - (PumpsOutput.res.nondet_7 Int) - (PumpsOutput.res.nondet_6 Int) - (PumpsOutput.res.nondet_5 Int) - (PumpsOutput.res.nondet_4 Int) - (PumpsOutput.res.nondet_3 Int) - (PumpsOutput.res.nondet_2 Int) - (PumpsOutput.res.nondet_1 Int) - (PumpsOutput.res.nondet_0 Int) - (PumpsOutput.usr.open_pump_0_a_1 Bool) - (PumpsOutput.usr.open_pump_1_a_1 Bool) - (PumpsOutput.usr.open_pump_2_a_1 Bool) - (PumpsOutput.usr.open_pump_3_a_1 Bool) - (PumpsOutput.usr.close_pump_0_a_1 Bool) - (PumpsOutput.usr.close_pump_1_a_1 Bool) - (PumpsOutput.usr.close_pump_2_a_1 Bool) - (PumpsOutput.usr.close_pump_3_a_1 Bool) - (PumpsOutput.usr.pump_failure_detection_0_a_1 Bool) - (PumpsOutput.usr.pump_failure_detection_1_a_1 Bool) - (PumpsOutput.usr.pump_failure_detection_2_a_1 Bool) - (PumpsOutput.usr.pump_failure_detection_3_a_1 Bool) - (PumpsOutput.usr.pump_repaired_acknowledgement_0_a_1 Bool) - (PumpsOutput.usr.pump_repaired_acknowledgement_1_a_1 Bool) - (PumpsOutput.usr.pump_repaired_acknowledgement_2_a_1 Bool) - (PumpsOutput.usr.pump_repaired_acknowledgement_3_a_1 Bool) - (PumpsOutput.usr.pump_control_failure_detection_0_a_1 Bool) - (PumpsOutput.usr.pump_control_failure_detection_1_a_1 Bool) - (PumpsOutput.usr.pump_control_failure_detection_2_a_1 Bool) - (PumpsOutput.usr.pump_control_failure_detection_3_a_1 Bool) - (PumpsOutput.usr.pump_control_repaired_acknowledgement_0_a_1 Bool) - (PumpsOutput.usr.pump_control_repaired_acknowledgement_1_a_1 Bool) - (PumpsOutput.usr.pump_control_repaired_acknowledgement_2_a_1 Bool) - (PumpsOutput.usr.pump_control_repaired_acknowledgement_3_a_1 Bool) - (PumpsOutput.res.init_flag_a_1 Bool) - (PumpsOutput.usr.op_mode_a_0 Int) - (PumpsOutput.usr.pump_status_0_a_0 Int) - (PumpsOutput.usr.pump_status_1_a_0 Int) - (PumpsOutput.usr.pump_status_2_a_0 Int) - (PumpsOutput.usr.pump_status_3_a_0 Int) - (PumpsOutput.usr.pump_defect_0_a_0 Int) - (PumpsOutput.usr.pump_defect_1_a_0 Int) - (PumpsOutput.usr.pump_defect_2_a_0 Int) - (PumpsOutput.usr.pump_defect_3_a_0 Int) - (PumpsOutput.usr.pump_control_defect_0_a_0 Int) - (PumpsOutput.usr.pump_control_defect_1_a_0 Int) - (PumpsOutput.usr.pump_control_defect_2_a_0 Int) - (PumpsOutput.usr.pump_control_defect_3_a_0 Int) - (PumpsOutput.usr.pump_repaired_0_a_0 Bool) - (PumpsOutput.usr.pump_repaired_1_a_0 Bool) - (PumpsOutput.usr.pump_repaired_2_a_0 Bool) - (PumpsOutput.usr.pump_repaired_3_a_0 Bool) - (PumpsOutput.usr.pump_control_repaired_0_a_0 Bool) - (PumpsOutput.usr.pump_control_repaired_1_a_0 Bool) - (PumpsOutput.usr.pump_control_repaired_2_a_0 Bool) - (PumpsOutput.usr.pump_control_repaired_3_a_0 Bool) - (PumpsOutput.usr.open_pump_0_a_0 Bool) - (PumpsOutput.usr.open_pump_1_a_0 Bool) - (PumpsOutput.usr.open_pump_2_a_0 Bool) - (PumpsOutput.usr.open_pump_3_a_0 Bool) - (PumpsOutput.usr.close_pump_0_a_0 Bool) - (PumpsOutput.usr.close_pump_1_a_0 Bool) - (PumpsOutput.usr.close_pump_2_a_0 Bool) - (PumpsOutput.usr.close_pump_3_a_0 Bool) - (PumpsOutput.usr.pump_failure_detection_0_a_0 Bool) - (PumpsOutput.usr.pump_failure_detection_1_a_0 Bool) - (PumpsOutput.usr.pump_failure_detection_2_a_0 Bool) - (PumpsOutput.usr.pump_failure_detection_3_a_0 Bool) - (PumpsOutput.usr.pump_repaired_acknowledgement_0_a_0 Bool) - (PumpsOutput.usr.pump_repaired_acknowledgement_1_a_0 Bool) - (PumpsOutput.usr.pump_repaired_acknowledgement_2_a_0 Bool) - (PumpsOutput.usr.pump_repaired_acknowledgement_3_a_0 Bool) - (PumpsOutput.usr.pump_control_failure_detection_0_a_0 Bool) - (PumpsOutput.usr.pump_control_failure_detection_1_a_0 Bool) - (PumpsOutput.usr.pump_control_failure_detection_2_a_0 Bool) - (PumpsOutput.usr.pump_control_failure_detection_3_a_0 Bool) - (PumpsOutput.usr.pump_control_repaired_acknowledgement_0_a_0 Bool) - (PumpsOutput.usr.pump_control_repaired_acknowledgement_1_a_0 Bool) - (PumpsOutput.usr.pump_control_repaired_acknowledgement_2_a_0 Bool) - (PumpsOutput.usr.pump_control_repaired_acknowledgement_3_a_0 Bool) - (PumpsOutput.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - PumpsOutput.usr.open_pump_0_a_1 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - (= PumpsOutput.usr.pump_status_0_a_1 2))) - (= - PumpsOutput.usr.open_pump_1_a_1 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - (= PumpsOutput.usr.pump_status_1_a_1 2))) - (= - PumpsOutput.usr.open_pump_2_a_1 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - (= PumpsOutput.usr.pump_status_2_a_1 2))) - (= - PumpsOutput.usr.open_pump_3_a_1 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - (= PumpsOutput.usr.pump_status_3_a_1 2))) - (= - PumpsOutput.usr.close_pump_0_a_1 - (and - (and - (and - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - (= PumpsOutput.usr.pump_status_0_a_1 0)) - (not (= PumpsOutput.usr.pump_status_0_a_0 0))) - (= PumpsOutput.usr.pump_defect_0_a_1 0)) - (= PumpsOutput.usr.pump_defect_0_a_0 0))) - (= - PumpsOutput.usr.close_pump_1_a_1 - (and - (and - (and - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - (= PumpsOutput.usr.pump_status_0_a_1 0)) - (not (= PumpsOutput.usr.pump_status_1_a_0 0))) - (= PumpsOutput.usr.pump_defect_0_a_1 0)) - (= PumpsOutput.usr.pump_defect_1_a_0 0))) - (= - PumpsOutput.usr.close_pump_2_a_1 - (and - (and - (and - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - (= PumpsOutput.usr.pump_status_0_a_1 0)) - (not (= PumpsOutput.usr.pump_status_2_a_0 0))) - (= PumpsOutput.usr.pump_defect_0_a_1 0)) - (= PumpsOutput.usr.pump_defect_2_a_0 0))) - (= - PumpsOutput.usr.close_pump_3_a_1 - (and - (and - (and - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - (= PumpsOutput.usr.pump_status_0_a_1 0)) - (not (= PumpsOutput.usr.pump_status_3_a_0 0))) - (= PumpsOutput.usr.pump_defect_0_a_1 0)) - (= PumpsOutput.usr.pump_defect_3_a_0 0))) - (= - PumpsOutput.usr.pump_failure_detection_0_a_1 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - (= PumpsOutput.usr.pump_defect_0_a_1 1))) - (= - PumpsOutput.usr.pump_failure_detection_1_a_1 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - (= PumpsOutput.usr.pump_defect_1_a_1 1))) - (= - PumpsOutput.usr.pump_failure_detection_2_a_1 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - (= PumpsOutput.usr.pump_defect_2_a_1 1))) - (= - PumpsOutput.usr.pump_failure_detection_3_a_1 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - (= PumpsOutput.usr.pump_defect_3_a_1 1))) - (= - PumpsOutput.usr.pump_repaired_acknowledgement_0_a_1 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - PumpsOutput.usr.pump_repaired_0_a_1)) - (= - PumpsOutput.usr.pump_repaired_acknowledgement_1_a_1 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - PumpsOutput.usr.pump_repaired_1_a_1)) - (= - PumpsOutput.usr.pump_repaired_acknowledgement_2_a_1 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - PumpsOutput.usr.pump_repaired_2_a_1)) - (= - PumpsOutput.usr.pump_repaired_acknowledgement_3_a_1 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - PumpsOutput.usr.pump_repaired_3_a_1)) - (= - PumpsOutput.usr.pump_control_failure_detection_0_a_1 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - (= PumpsOutput.usr.pump_control_defect_0_a_1 1))) - (= - PumpsOutput.usr.pump_control_failure_detection_1_a_1 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - (= PumpsOutput.usr.pump_control_defect_1_a_1 1))) - (= - PumpsOutput.usr.pump_control_failure_detection_2_a_1 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - (= PumpsOutput.usr.pump_control_defect_2_a_1 1))) - (= - PumpsOutput.usr.pump_control_failure_detection_3_a_1 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - (= PumpsOutput.usr.pump_control_defect_3_a_1 1))) - (= - PumpsOutput.usr.pump_control_repaired_acknowledgement_0_a_1 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - PumpsOutput.usr.pump_control_repaired_0_a_1)) - (= - PumpsOutput.usr.pump_control_repaired_acknowledgement_1_a_1 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - PumpsOutput.usr.pump_control_repaired_1_a_1)) - (= - PumpsOutput.usr.pump_control_repaired_acknowledgement_2_a_1 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - PumpsOutput.usr.pump_control_repaired_2_a_1)) - (= - PumpsOutput.usr.pump_control_repaired_acknowledgement_3_a_1 - (and - (and - (not (= PumpsOutput.usr.op_mode_a_1 6)) - (not (= PumpsOutput.usr.op_mode_a_1 1))) - PumpsOutput.usr.pump_control_repaired_3_a_1)) - (not PumpsOutput.res.init_flag_a_1)) -) - -(define-fun - __node_init_Valve_0 ( - (Valve.usr.op_mode_a_0 Int) - (Valve.usr.q_a_0 Int) - (Valve.usr.valve_a_0 Bool) - (Valve.usr.valve_state_a_0 Int) - (Valve.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Valve.usr.valve_a_0 false) - (= Valve.usr.valve_state_a_0 0) - Valve.res.init_flag_a_0) -) - -(define-fun - __node_trans_Valve_0 ( - (Valve.usr.op_mode_a_1 Int) - (Valve.usr.q_a_1 Int) - (Valve.usr.valve_a_1 Bool) - (Valve.usr.valve_state_a_1 Int) - (Valve.res.init_flag_a_1 Bool) - (Valve.usr.op_mode_a_0 Int) - (Valve.usr.q_a_0 Int) - (Valve.usr.valve_a_0 Bool) - (Valve.usr.valve_state_a_0 Int) - (Valve.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - Valve.usr.valve_state_a_1 - (ite - (= Valve.usr.op_mode_a_1 2) - (ite - (> Valve.usr.q_a_1 600) - 1 - (ite (<= Valve.usr.q_a_1 600) 0 Valve.usr.valve_state_a_0)) - Valve.usr.valve_state_a_0)) - (= - Valve.usr.valve_a_1 - (not (= Valve.usr.valve_state_a_1 Valve.usr.valve_state_a_0))) - (not Valve.res.init_flag_a_1)) -) - -(define-fun - __node_init_PumpsDecision_0 ( - (PumpsDecision.usr.q_a_0 Int) - (PumpsDecision.usr.v_a_0 Int) - (PumpsDecision.res.nondet_0 Int) - (PumpsDecision.usr.n_pumps_a_0 Int) - (PumpsDecision.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - PumpsDecision.usr.n_pumps_a_0 - (let - ((X1 Int PumpsDecision.res.nondet_0)) - (ite - (> PumpsDecision.usr.q_a_0 600) - (div PumpsDecision.usr.v_a_0 15) - (ite - (< PumpsDecision.usr.q_a_0 400) - (+ (div PumpsDecision.usr.v_a_0 15) 1) - X1)))) - PumpsDecision.res.init_flag_a_0) -) - -(define-fun - __node_trans_PumpsDecision_0 ( - (PumpsDecision.usr.q_a_1 Int) - (PumpsDecision.usr.v_a_1 Int) - (PumpsDecision.res.nondet_0 Int) - (PumpsDecision.usr.n_pumps_a_1 Int) - (PumpsDecision.res.init_flag_a_1 Bool) - (PumpsDecision.usr.q_a_0 Int) - (PumpsDecision.usr.v_a_0 Int) - (PumpsDecision.usr.n_pumps_a_0 Int) - (PumpsDecision.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - PumpsDecision.usr.n_pumps_a_1 - (ite - (> PumpsDecision.usr.q_a_1 600) - (div PumpsDecision.usr.v_a_1 15) - (ite - (< PumpsDecision.usr.q_a_1 400) - (+ (div PumpsDecision.usr.v_a_1 15) 1) - PumpsDecision.usr.n_pumps_a_0))) - (not PumpsDecision.res.init_flag_a_1)) -) - -(define-fun - __node_init_steam_failure_detect_0 ( - (steam_failure_detect.usr.steam_a_0 Int) - (steam_failure_detect.usr.steam_failure_detect_a_0 Bool) - (steam_failure_detect.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - steam_failure_detect.usr.steam_failure_detect_a_0 - (or - (< steam_failure_detect.usr.steam_a_0 0) - (> steam_failure_detect.usr.steam_a_0 25))) - steam_failure_detect.res.init_flag_a_0) -) - -(define-fun - __node_trans_steam_failure_detect_0 ( - (steam_failure_detect.usr.steam_a_1 Int) - (steam_failure_detect.usr.steam_failure_detect_a_1 Bool) - (steam_failure_detect.res.init_flag_a_1 Bool) - (steam_failure_detect.usr.steam_a_0 Int) - (steam_failure_detect.usr.steam_failure_detect_a_0 Bool) - (steam_failure_detect.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - steam_failure_detect.usr.steam_failure_detect_a_1 - (or - (< steam_failure_detect.usr.steam_a_1 0) - (> steam_failure_detect.usr.steam_a_1 25))) - (not steam_failure_detect.res.init_flag_a_1)) -) - -(define-fun - __node_init_SteamDefect_0 ( - (SteamDefect.usr.steam_failure_acknowledgement_a_0 Bool) - (SteamDefect.usr.steam_repaired_a_0 Bool) - (SteamDefect.usr.steam_a_0 Int) - (SteamDefect.res.nondet_0 Int) - (SteamDefect.usr.SteamDefect_a_0 Int) - (SteamDefect.res.init_flag_a_0 Bool) - (SteamDefect.res.abs_0_a_0 Bool) - (SteamDefect.res.abs_1_a_0 Int) - (SteamDefect.res.abs_2_a_0 Int) - (SteamDefect.res.inst_1_a_0 Bool) - (SteamDefect.res.inst_0_a_0 Bool) - ) Bool - - (and - (= SteamDefect.usr.SteamDefect_a_0 0) - (= SteamDefect.res.abs_1_a_0 (let ((X1 Int SteamDefect.res.nondet_0)) X1)) - (__node_init_Defect_0 - SteamDefect.res.abs_1_a_0 - SteamDefect.res.abs_0_a_0 - SteamDefect.usr.steam_failure_acknowledgement_a_0 - SteamDefect.usr.steam_repaired_a_0 - SteamDefect.res.abs_2_a_0 - SteamDefect.res.inst_1_a_0) - (__node_init_steam_failure_detect_0 - SteamDefect.usr.steam_a_0 - SteamDefect.res.abs_0_a_0 - SteamDefect.res.inst_0_a_0) - (<= 0 SteamDefect.res.abs_2_a_0 2) - (<= 0 SteamDefect.usr.SteamDefect_a_0 2) - SteamDefect.res.init_flag_a_0) -) - -(define-fun - __node_trans_SteamDefect_0 ( - (SteamDefect.usr.steam_failure_acknowledgement_a_1 Bool) - (SteamDefect.usr.steam_repaired_a_1 Bool) - (SteamDefect.usr.steam_a_1 Int) - (SteamDefect.res.nondet_0 Int) - (SteamDefect.usr.SteamDefect_a_1 Int) - (SteamDefect.res.init_flag_a_1 Bool) - (SteamDefect.res.abs_0_a_1 Bool) - (SteamDefect.res.abs_1_a_1 Int) - (SteamDefect.res.abs_2_a_1 Int) - (SteamDefect.res.inst_1_a_1 Bool) - (SteamDefect.res.inst_0_a_1 Bool) - (SteamDefect.usr.steam_failure_acknowledgement_a_0 Bool) - (SteamDefect.usr.steam_repaired_a_0 Bool) - (SteamDefect.usr.steam_a_0 Int) - (SteamDefect.usr.SteamDefect_a_0 Int) - (SteamDefect.res.init_flag_a_0 Bool) - (SteamDefect.res.abs_0_a_0 Bool) - (SteamDefect.res.abs_1_a_0 Int) - (SteamDefect.res.abs_2_a_0 Int) - (SteamDefect.res.inst_1_a_0 Bool) - (SteamDefect.res.inst_0_a_0 Bool) - ) Bool - - (and - (= SteamDefect.res.abs_1_a_1 SteamDefect.usr.SteamDefect_a_0) - (= SteamDefect.usr.SteamDefect_a_1 SteamDefect.res.abs_2_a_1) - (__node_trans_Defect_0 - SteamDefect.res.abs_1_a_1 - SteamDefect.res.abs_0_a_1 - SteamDefect.usr.steam_failure_acknowledgement_a_1 - SteamDefect.usr.steam_repaired_a_1 - SteamDefect.res.abs_2_a_1 - SteamDefect.res.inst_1_a_1 - SteamDefect.res.abs_1_a_0 - SteamDefect.res.abs_0_a_0 - SteamDefect.usr.steam_failure_acknowledgement_a_0 - SteamDefect.usr.steam_repaired_a_0 - SteamDefect.res.abs_2_a_0 - SteamDefect.res.inst_1_a_0) - (__node_trans_steam_failure_detect_0 - SteamDefect.usr.steam_a_1 - SteamDefect.res.abs_0_a_1 - SteamDefect.res.inst_0_a_1 - SteamDefect.usr.steam_a_0 - SteamDefect.res.abs_0_a_0 - SteamDefect.res.inst_0_a_0) - (<= 0 SteamDefect.res.abs_2_a_1 2) - (<= 0 SteamDefect.usr.SteamDefect_a_1 2) - (not SteamDefect.res.init_flag_a_1)) -) - -(define-fun - __node_init_Operator_0 ( - (Operator.usr.stop_a_0 Bool) - (Operator.usr.stop_request_a_0 Bool) - (Operator.res.init_flag_a_0 Bool) - (Operator.impl.usr.nb_stops_a_0 Int) - ) Bool - - (and - (= Operator.impl.usr.nb_stops_a_0 (ite Operator.usr.stop_a_0 1 0)) - (= Operator.usr.stop_request_a_0 (>= Operator.impl.usr.nb_stops_a_0 3)) - Operator.res.init_flag_a_0) -) - -(define-fun - __node_trans_Operator_0 ( - (Operator.usr.stop_a_1 Bool) - (Operator.usr.stop_request_a_1 Bool) - (Operator.res.init_flag_a_1 Bool) - (Operator.impl.usr.nb_stops_a_1 Int) - (Operator.usr.stop_a_0 Bool) - (Operator.usr.stop_request_a_0 Bool) - (Operator.res.init_flag_a_0 Bool) - (Operator.impl.usr.nb_stops_a_0 Int) - ) Bool - - (and - (= - Operator.impl.usr.nb_stops_a_1 - (ite Operator.usr.stop_a_1 (+ Operator.impl.usr.nb_stops_a_0 1) 0)) - (= Operator.usr.stop_request_a_1 (>= Operator.impl.usr.nb_stops_a_1 3)) - (not Operator.res.init_flag_a_1)) -) - -(define-fun - __node_init_initialization_complete_0 ( - (initialization_complete.usr.op_mode_a_0 Int) - (initialization_complete.usr.level_a_0 Int) - (initialization_complete.usr.valve_a_0 Bool) - (initialization_complete.usr.initialization_complete_a_0 Bool) - (initialization_complete.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - initialization_complete.usr.initialization_complete_a_0 - (and - (and - (= initialization_complete.usr.op_mode_a_0 2) - (and - (<= 400 initialization_complete.usr.level_a_0) - (<= initialization_complete.usr.level_a_0 600))) - (not initialization_complete.usr.valve_a_0))) - initialization_complete.res.init_flag_a_0) -) - -(define-fun - __node_trans_initialization_complete_0 ( - (initialization_complete.usr.op_mode_a_1 Int) - (initialization_complete.usr.level_a_1 Int) - (initialization_complete.usr.valve_a_1 Bool) - (initialization_complete.usr.initialization_complete_a_1 Bool) - (initialization_complete.res.init_flag_a_1 Bool) - (initialization_complete.usr.op_mode_a_0 Int) - (initialization_complete.usr.level_a_0 Int) - (initialization_complete.usr.valve_a_0 Bool) - (initialization_complete.usr.initialization_complete_a_0 Bool) - (initialization_complete.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - initialization_complete.usr.initialization_complete_a_1 - (and - (and - (= initialization_complete.usr.op_mode_a_1 2) - (and - (<= 400 initialization_complete.usr.level_a_1) - (<= initialization_complete.usr.level_a_1 600))) - (not initialization_complete.usr.valve_a_1))) - (not initialization_complete.res.init_flag_a_1)) -) - -(define-fun - __node_init_ControlOutput_0 ( - (ControlOutput.usr.op_mode_a_0 Int) - (ControlOutput.usr.level_a_0 Int) - (ControlOutput.usr.valve_a_0 Bool) - (ControlOutput.usr.program_ready_a_0 Bool) - (ControlOutput.usr.mode_a_0 Int) - (ControlOutput.res.init_flag_a_0 Bool) - (ControlOutput.res.abs_0_a_0 Bool) - (ControlOutput.res.inst_0_a_0 Bool) - ) Bool - - (and - (= ControlOutput.usr.program_ready_a_0 ControlOutput.res.abs_0_a_0) - (= ControlOutput.usr.mode_a_0 ControlOutput.usr.op_mode_a_0) - (__node_init_initialization_complete_0 - ControlOutput.usr.op_mode_a_0 - ControlOutput.usr.level_a_0 - ControlOutput.usr.valve_a_0 - ControlOutput.res.abs_0_a_0 - ControlOutput.res.inst_0_a_0) - ControlOutput.res.init_flag_a_0) -) - -(define-fun - __node_trans_ControlOutput_0 ( - (ControlOutput.usr.op_mode_a_1 Int) - (ControlOutput.usr.level_a_1 Int) - (ControlOutput.usr.valve_a_1 Bool) - (ControlOutput.usr.program_ready_a_1 Bool) - (ControlOutput.usr.mode_a_1 Int) - (ControlOutput.res.init_flag_a_1 Bool) - (ControlOutput.res.abs_0_a_1 Bool) - (ControlOutput.res.inst_0_a_1 Bool) - (ControlOutput.usr.op_mode_a_0 Int) - (ControlOutput.usr.level_a_0 Int) - (ControlOutput.usr.valve_a_0 Bool) - (ControlOutput.usr.program_ready_a_0 Bool) - (ControlOutput.usr.mode_a_0 Int) - (ControlOutput.res.init_flag_a_0 Bool) - (ControlOutput.res.abs_0_a_0 Bool) - (ControlOutput.res.inst_0_a_0 Bool) - ) Bool - - (and - (= ControlOutput.usr.program_ready_a_1 ControlOutput.res.abs_0_a_1) - (= ControlOutput.usr.mode_a_1 ControlOutput.usr.op_mode_a_1) - (__node_trans_initialization_complete_0 - ControlOutput.usr.op_mode_a_1 - ControlOutput.usr.level_a_1 - ControlOutput.usr.valve_a_1 - ControlOutput.res.abs_0_a_1 - ControlOutput.res.inst_0_a_1 - ControlOutput.usr.op_mode_a_0 - ControlOutput.usr.level_a_0 - ControlOutput.usr.valve_a_0 - ControlOutput.res.abs_0_a_0 - ControlOutput.res.inst_0_a_0) - (not ControlOutput.res.init_flag_a_1)) -) - -(define-fun - __node_init_BoilerController_0 ( - (BoilerController.usr.stop_a_0 Bool) - (BoilerController.usr.steam_boiler_waiting_a_0 Bool) - (BoilerController.usr.physical_units_ready_a_0 Bool) - (BoilerController.usr.level_a_0 Int) - (BoilerController.usr.steam_a_0 Int) - (BoilerController.usr.pump_state_0_a_0 Int) - (BoilerController.usr.pump_state_1_a_0 Int) - (BoilerController.usr.pump_state_2_a_0 Int) - (BoilerController.usr.pump_state_3_a_0 Int) - (BoilerController.usr.pump_control_state_0_a_0 Bool) - (BoilerController.usr.pump_control_state_1_a_0 Bool) - (BoilerController.usr.pump_control_state_2_a_0 Bool) - (BoilerController.usr.pump_control_state_3_a_0 Bool) - (BoilerController.usr.pump_repaired_0_a_0 Bool) - (BoilerController.usr.pump_repaired_1_a_0 Bool) - (BoilerController.usr.pump_repaired_2_a_0 Bool) - (BoilerController.usr.pump_repaired_3_a_0 Bool) - (BoilerController.usr.pump_control_repaired_0_a_0 Bool) - (BoilerController.usr.pump_control_repaired_1_a_0 Bool) - (BoilerController.usr.pump_control_repaired_2_a_0 Bool) - (BoilerController.usr.pump_control_repaired_3_a_0 Bool) - (BoilerController.usr.level_repaired_a_0 Bool) - (BoilerController.usr.steam_repaired_a_0 Bool) - (BoilerController.usr.pump_failure_acknowledgement_0_a_0 Bool) - (BoilerController.usr.pump_failure_acknowledgement_1_a_0 Bool) - (BoilerController.usr.pump_failure_acknowledgement_2_a_0 Bool) - (BoilerController.usr.pump_failure_acknowledgement_3_a_0 Bool) - (BoilerController.usr.pump_control_failure_acknowledgement_0_a_0 Bool) - (BoilerController.usr.pump_control_failure_acknowledgement_1_a_0 Bool) - (BoilerController.usr.pump_control_failure_acknowledgement_2_a_0 Bool) - (BoilerController.usr.pump_control_failure_acknowledgement_3_a_0 Bool) - (BoilerController.usr.level_failure_acknowledgement_a_0 Bool) - (BoilerController.usr.steam_failure_acknowledgement_a_0 Bool) - (BoilerController.res.nondet_32 Int) - (BoilerController.res.nondet_31 Int) - (BoilerController.res.nondet_30 Int) - (BoilerController.res.nondet_29 Int) - (BoilerController.res.nondet_28 Int) - (BoilerController.res.nondet_27 Int) - (BoilerController.res.nondet_26 Int) - (BoilerController.res.nondet_25 Int) - (BoilerController.res.nondet_24 Int) - (BoilerController.res.nondet_23 Int) - (BoilerController.res.nondet_22 Int) - (BoilerController.res.nondet_21 Int) - (BoilerController.res.nondet_20 Int) - (BoilerController.res.nondet_19 Int) - (BoilerController.res.nondet_18 Int) - (BoilerController.res.nondet_17 Int) - (BoilerController.res.nondet_16 Int) - (BoilerController.res.nondet_15 Int) - (BoilerController.res.nondet_14 Int) - (BoilerController.res.nondet_13 Int) - (BoilerController.res.nondet_12 Int) - (BoilerController.res.nondet_11 Int) - (BoilerController.res.nondet_10 Int) - (BoilerController.res.nondet_9 Int) - (BoilerController.res.nondet_8 Int) - (BoilerController.res.nondet_7 Int) - (BoilerController.res.nondet_6 Int) - (BoilerController.res.nondet_5 Int) - (BoilerController.res.nondet_4 Int) - (BoilerController.res.nondet_3 Int) - (BoilerController.res.nondet_2 Int) - (BoilerController.res.nondet_1 Int) - (BoilerController.res.nondet_0 Int) - (BoilerController.usr.program_ready_a_0 Bool) - (BoilerController.usr.mode_a_0 Int) - (BoilerController.usr.valve_a_0 Bool) - (BoilerController.usr.open_pump_0_a_0 Bool) - (BoilerController.usr.open_pump_1_a_0 Bool) - (BoilerController.usr.open_pump_2_a_0 Bool) - (BoilerController.usr.open_pump_3_a_0 Bool) - (BoilerController.usr.close_pump_0_a_0 Bool) - (BoilerController.usr.close_pump_1_a_0 Bool) - (BoilerController.usr.close_pump_2_a_0 Bool) - (BoilerController.usr.close_pump_3_a_0 Bool) - (BoilerController.usr.pump_failure_detection_0_a_0 Bool) - (BoilerController.usr.pump_failure_detection_1_a_0 Bool) - (BoilerController.usr.pump_failure_detection_2_a_0 Bool) - (BoilerController.usr.pump_failure_detection_3_a_0 Bool) - (BoilerController.usr.pump_control_failure_detection_0_a_0 Bool) - (BoilerController.usr.pump_control_failure_detection_1_a_0 Bool) - (BoilerController.usr.pump_control_failure_detection_2_a_0 Bool) - (BoilerController.usr.pump_control_failure_detection_3_a_0 Bool) - (BoilerController.usr.level_failure_detection_a_0 Bool) - (BoilerController.usr.steam_outcome_failure_detection_a_0 Bool) - (BoilerController.usr.pump_repaired_acknowledgement_0_a_0 Bool) - (BoilerController.usr.pump_repaired_acknowledgement_1_a_0 Bool) - (BoilerController.usr.pump_repaired_acknowledgement_2_a_0 Bool) - (BoilerController.usr.pump_repaired_acknowledgement_3_a_0 Bool) - (BoilerController.usr.pump_control_repaired_acknowledgement_0_a_0 Bool) - (BoilerController.usr.pump_control_repaired_acknowledgement_1_a_0 Bool) - (BoilerController.usr.pump_control_repaired_acknowledgement_2_a_0 Bool) - (BoilerController.usr.pump_control_repaired_acknowledgement_3_a_0 Bool) - (BoilerController.usr.level_repaired_acknowledgement_a_0 Bool) - (BoilerController.usr.steam_outcome_repaired_acknowledgement_a_0 Bool) - (BoilerController.res.init_flag_a_0 Bool) - (BoilerController.impl.usr.stop_request_a_0 Bool) - (BoilerController.impl.usr.op_mode_a_0 Int) - (BoilerController.impl.usr.q_a_0 Int) - (BoilerController.impl.usr.v_a_0 Int) - (BoilerController.impl.usr.valve_state_a_0 Int) - (BoilerController.impl.usr.n_pumps_a_0 Int) - (BoilerController.impl.usr.pump_status_0_a_0 Int) - (BoilerController.impl.usr.pump_status_1_a_0 Int) - (BoilerController.impl.usr.pump_status_2_a_0 Int) - (BoilerController.impl.usr.pump_status_3_a_0 Int) - (BoilerController.impl.usr.pump_defect_0_a_0 Int) - (BoilerController.impl.usr.pump_defect_1_a_0 Int) - (BoilerController.impl.usr.pump_defect_2_a_0 Int) - (BoilerController.impl.usr.pump_defect_3_a_0 Int) - (BoilerController.impl.usr.pump_control_defect_0_a_0 Int) - (BoilerController.impl.usr.pump_control_defect_1_a_0 Int) - (BoilerController.impl.usr.pump_control_defect_2_a_0 Int) - (BoilerController.impl.usr.pump_control_defect_3_a_0 Int) - (BoilerController.res.abs_0_a_0 Bool) - (BoilerController.res.abs_1_a_0 Int) - (BoilerController.res.abs_2_a_0 Int) - (BoilerController.res.abs_3_a_0 Int) - (BoilerController.res.abs_4_a_0 Bool) - (BoilerController.res.abs_5_a_0 Bool) - (BoilerController.res.abs_6_a_0 Bool) - (BoilerController.res.abs_7_a_0 Bool) - (BoilerController.res.abs_8_a_0 Int) - (BoilerController.res.abs_9_a_0 Int) - (BoilerController.res.abs_10_a_0 Bool) - (BoilerController.res.abs_11_a_0 Int) - (BoilerController.res.abs_12_a_0 Int) - (BoilerController.res.abs_13_a_0 Bool) - (BoilerController.res.abs_14_a_0 Int) - (BoilerController.res.abs_15_a_0 Bool) - (BoilerController.res.abs_16_a_0 Bool) - (BoilerController.res.abs_17_a_0 Bool) - (BoilerController.res.abs_18_a_0 Bool) - (BoilerController.res.abs_19_a_0 Int) - (BoilerController.res.abs_20_a_0 Int) - (BoilerController.res.abs_21_a_0 Bool) - (BoilerController.res.abs_22_a_0 Int) - (BoilerController.res.abs_23_a_0 Int) - (BoilerController.res.abs_24_a_0 Bool) - (BoilerController.res.abs_25_a_0 Int) - (BoilerController.res.abs_26_a_0 Bool) - (BoilerController.res.abs_27_a_0 Bool) - (BoilerController.res.abs_28_a_0 Bool) - (BoilerController.res.abs_29_a_0 Bool) - (BoilerController.res.abs_30_a_0 Int) - (BoilerController.res.abs_31_a_0 Int) - (BoilerController.res.abs_32_a_0 Bool) - (BoilerController.res.abs_33_a_0 Int) - (BoilerController.res.abs_34_a_0 Int) - (BoilerController.res.abs_35_a_0 Bool) - (BoilerController.res.abs_36_a_0 Int) - (BoilerController.res.abs_37_a_0 Bool) - (BoilerController.res.abs_38_a_0 Bool) - (BoilerController.res.abs_39_a_0 Bool) - (BoilerController.res.abs_40_a_0 Bool) - (BoilerController.res.abs_41_a_0 Int) - (BoilerController.res.abs_42_a_0 Int) - (BoilerController.res.abs_43_a_0 Bool) - (BoilerController.res.abs_44_a_0 Int) - (BoilerController.res.abs_45_a_0 Int) - (BoilerController.res.abs_46_a_0 Bool) - (BoilerController.res.abs_48_a_0 Int) - (BoilerController.res.abs_49_a_0 Int) - (BoilerController.res.abs_50_a_0 Int) - (BoilerController.res.abs_51_a_0 Int) - (BoilerController.res.abs_52_a_0 Int) - (BoilerController.res.abs_53_a_0 Bool) - (BoilerController.res.abs_54_a_0 Bool) - (BoilerController.res.abs_55_a_0 Bool) - (BoilerController.res.abs_56_a_0 Bool) - (BoilerController.res.abs_57_a_0 Int) - (BoilerController.res.abs_58_a_0 Int) - (BoilerController.res.abs_59_a_0 Int) - (BoilerController.res.abs_60_a_0 Int) - (BoilerController.res.abs_61_a_0 Int) - (BoilerController.res.abs_62_a_0 Int) - (BoilerController.res.abs_63_a_0 Int) - (BoilerController.res.abs_64_a_0 Int) - (BoilerController.res.abs_65_a_0 Int) - (BoilerController.res.abs_66_a_0 Int) - (BoilerController.res.abs_67_a_0 Int) - (BoilerController.res.abs_68_a_0 Int) - (BoilerController.res.abs_69_a_0 Bool) - (BoilerController.res.abs_70_a_0 Int) - (BoilerController.res.abs_71_a_0 Bool) - (BoilerController.res.abs_72_a_0 Int) - (BoilerController.res.abs_73_a_0 Bool) - (BoilerController.res.abs_74_a_0 Bool) - (BoilerController.res.abs_75_a_0 Bool) - (BoilerController.res.abs_76_a_0 Bool) - (BoilerController.res.abs_77_a_0 Bool) - (BoilerController.res.abs_78_a_0 Bool) - (BoilerController.res.abs_79_a_0 Bool) - (BoilerController.res.abs_80_a_0 Bool) - (BoilerController.res.abs_81_a_0 Bool) - (BoilerController.res.abs_82_a_0 Bool) - (BoilerController.res.abs_83_a_0 Bool) - (BoilerController.res.abs_84_a_0 Bool) - (BoilerController.res.abs_85_a_0 Bool) - (BoilerController.res.abs_86_a_0 Bool) - (BoilerController.res.abs_87_a_0 Bool) - (BoilerController.res.abs_88_a_0 Bool) - (BoilerController.res.abs_89_a_0 Bool) - (BoilerController.res.abs_90_a_0 Bool) - (BoilerController.res.abs_91_a_0 Bool) - (BoilerController.res.abs_92_a_0 Bool) - (BoilerController.res.abs_93_a_0 Bool) - (BoilerController.res.abs_94_a_0 Bool) - (BoilerController.res.abs_95_a_0 Bool) - (BoilerController.res.abs_96_a_0 Bool) - (BoilerController.res.abs_97_a_0 Bool) - (BoilerController.res.abs_98_a_0 Bool) - (BoilerController.res.abs_99_a_0 Bool) - (BoilerController.res.abs_100_a_0 Bool) - (BoilerController.res.inst_176_a_0 Bool) - (BoilerController.res.inst_175_a_0 Bool) - (BoilerController.res.inst_174_a_0 Bool) - (BoilerController.res.inst_173_a_0 Bool) - (BoilerController.res.inst_172_a_0 Int) - (BoilerController.res.inst_171_a_0 Bool) - (BoilerController.res.inst_170_a_0 Bool) - (BoilerController.res.inst_169_a_0 Bool) - (BoilerController.res.inst_168_a_0 Bool) - (BoilerController.res.inst_167_a_0 Bool) - (BoilerController.res.inst_166_a_0 Bool) - (BoilerController.res.inst_165_a_0 Bool) - (BoilerController.res.inst_164_a_0 Bool) - (BoilerController.res.inst_163_a_0 Bool) - (BoilerController.res.inst_162_a_0 Bool) - (BoilerController.res.inst_161_a_0 Bool) - (BoilerController.res.inst_160_a_0 Bool) - (BoilerController.res.inst_159_a_0 Bool) - (BoilerController.res.inst_158_a_0 Bool) - (BoilerController.res.inst_157_a_0 Bool) - (BoilerController.res.inst_156_a_0 Bool) - (BoilerController.res.inst_155_a_0 Bool) - (BoilerController.res.inst_154_a_0 Bool) - (BoilerController.res.inst_153_a_0 Bool) - (BoilerController.res.inst_152_a_0 Bool) - (BoilerController.res.inst_151_a_0 Bool) - (BoilerController.res.inst_150_a_0 Bool) - (BoilerController.res.inst_149_a_0 Bool) - (BoilerController.res.inst_148_a_0 Bool) - (BoilerController.res.inst_147_a_0 Bool) - (BoilerController.res.inst_146_a_0 Bool) - (BoilerController.res.inst_145_a_0 Bool) - (BoilerController.res.inst_144_a_0 Bool) - (BoilerController.res.inst_143_a_0 Bool) - (BoilerController.res.inst_142_a_0 Bool) - (BoilerController.res.inst_141_a_0 Bool) - (BoilerController.res.inst_140_a_0 Bool) - (BoilerController.res.inst_139_a_0 Bool) - (BoilerController.res.inst_138_a_0 Bool) - (BoilerController.res.inst_137_a_0 Bool) - (BoilerController.res.inst_136_a_0 Bool) - (BoilerController.res.inst_135_a_0 Bool) - (BoilerController.res.inst_134_a_0 Bool) - (BoilerController.res.inst_133_a_0 Bool) - (BoilerController.res.inst_132_a_0 Bool) - (BoilerController.res.inst_131_a_0 Bool) - (BoilerController.res.inst_130_a_0 Bool) - (BoilerController.res.inst_129_a_0 Bool) - (BoilerController.res.inst_128_a_0 Bool) - (BoilerController.res.inst_127_a_0 Bool) - (BoilerController.res.inst_126_a_0 Bool) - (BoilerController.res.inst_125_a_0 Bool) - (BoilerController.res.inst_124_a_0 Bool) - (BoilerController.res.inst_123_a_0 Bool) - (BoilerController.res.inst_122_a_0 Bool) - (BoilerController.res.inst_121_a_0 Bool) - (BoilerController.res.inst_120_a_0 Int) - (BoilerController.res.inst_119_a_0 Bool) - (BoilerController.res.inst_118_a_0 Bool) - (BoilerController.res.inst_117_a_0 Int) - (BoilerController.res.inst_116_a_0 Int) - (BoilerController.res.inst_115_a_0 Bool) - (BoilerController.res.inst_114_a_0 Bool) - (BoilerController.res.inst_113_a_0 Bool) - (BoilerController.res.inst_112_a_0 Bool) - (BoilerController.res.inst_111_a_0 Int) - (BoilerController.res.inst_110_a_0 Int) - (BoilerController.res.inst_109_a_0 Bool) - (BoilerController.res.inst_108_a_0 Bool) - (BoilerController.res.inst_107_a_0 Bool) - (BoilerController.res.inst_106_a_0 Bool) - (BoilerController.res.inst_105_a_0 Bool) - (BoilerController.res.inst_104_a_0 Bool) - (BoilerController.res.inst_103_a_0 Bool) - (BoilerController.res.inst_102_a_0 Bool) - (BoilerController.res.inst_101_a_0 Int) - (BoilerController.res.inst_100_a_0 Int) - (BoilerController.res.inst_99_a_0 Int) - (BoilerController.res.inst_98_a_0 Int) - (BoilerController.res.inst_97_a_0 Bool) - (BoilerController.res.inst_96_a_0 Bool) - (BoilerController.res.inst_95_a_0 Bool) - (BoilerController.res.inst_94_a_0 Bool) - (BoilerController.res.inst_93_a_0 Int) - (BoilerController.res.inst_92_a_0 Int) - (BoilerController.res.inst_91_a_0 Int) - (BoilerController.res.inst_90_a_0 Int) - (BoilerController.res.inst_89_a_0 Int) - (BoilerController.res.inst_88_a_0 Int) - (BoilerController.res.inst_87_a_0 Int) - (BoilerController.res.inst_86_a_0 Int) - (BoilerController.res.inst_85_a_0 Int) - (BoilerController.res.inst_84_a_0 Int) - (BoilerController.res.inst_83_a_0 Bool) - (BoilerController.res.inst_82_a_0 Bool) - (BoilerController.res.inst_81_a_0 Bool) - (BoilerController.res.inst_80_a_0 Bool) - (BoilerController.res.inst_79_a_0 Int) - (BoilerController.res.inst_78_a_0 Int) - (BoilerController.res.inst_77_a_0 Int) - (BoilerController.res.inst_76_a_0 Int) - (BoilerController.res.inst_75_a_0 Bool) - (BoilerController.res.inst_74_a_0 Int) - (BoilerController.res.inst_73_a_0 Bool) - (BoilerController.res.inst_72_a_0 Int) - (BoilerController.res.inst_71_a_0 Bool) - (BoilerController.res.inst_70_a_0 Int) - (BoilerController.res.inst_69_a_0 Bool) - (BoilerController.res.inst_68_a_0 Int) - (BoilerController.res.inst_67_a_0 Bool) - (BoilerController.res.inst_66_a_0 Int) - (BoilerController.res.inst_65_a_0 Bool) - (BoilerController.res.inst_64_a_0 Int) - (BoilerController.res.inst_63_a_0 Bool) - (BoilerController.res.inst_62_a_0 Int) - (BoilerController.res.inst_61_a_0 Bool) - (BoilerController.res.inst_60_a_0 Int) - (BoilerController.res.inst_59_a_0 Bool) - (BoilerController.res.inst_58_a_0 Bool) - (BoilerController.res.inst_57_a_0 Bool) - (BoilerController.res.inst_56_a_0 Bool) - (BoilerController.res.inst_55_a_0 Bool) - (BoilerController.res.inst_54_a_0 Bool) - (BoilerController.res.inst_53_a_0 Bool) - (BoilerController.res.inst_52_a_0 Bool) - (BoilerController.res.inst_51_a_0 Bool) - (BoilerController.res.inst_50_a_0 Bool) - (BoilerController.res.inst_49_a_0 Bool) - (BoilerController.res.inst_48_a_0 Bool) - (BoilerController.res.inst_47_a_0 Int) - (BoilerController.res.inst_46_a_0 Bool) - (BoilerController.res.inst_45_a_0 Bool) - (BoilerController.res.inst_44_a_0 Bool) - (BoilerController.res.inst_43_a_0 Bool) - (BoilerController.res.inst_42_a_0 Bool) - (BoilerController.res.inst_41_a_0 Bool) - (BoilerController.res.inst_40_a_0 Bool) - (BoilerController.res.inst_39_a_0 Bool) - (BoilerController.res.inst_38_a_0 Bool) - (BoilerController.res.inst_37_a_0 Bool) - (BoilerController.res.inst_36_a_0 Bool) - (BoilerController.res.inst_35_a_0 Int) - (BoilerController.res.inst_34_a_0 Int) - (BoilerController.res.inst_33_a_0 Int) - (BoilerController.res.inst_32_a_0 Int) - (BoilerController.res.inst_31_a_0 Bool) - (BoilerController.res.inst_30_a_0 Bool) - (BoilerController.res.inst_29_a_0 Bool) - (BoilerController.res.inst_28_a_0 Bool) - (BoilerController.res.inst_27_a_0 Bool) - (BoilerController.res.inst_26_a_0 Bool) - (BoilerController.res.inst_25_a_0 Bool) - (BoilerController.res.inst_24_a_0 Bool) - (BoilerController.res.inst_23_a_0 Bool) - (BoilerController.res.inst_22_a_0 Int) - (BoilerController.res.inst_21_a_0 Int) - (BoilerController.res.inst_20_a_0 Int) - (BoilerController.res.inst_19_a_0 Int) - (BoilerController.res.inst_18_a_0 Bool) - (BoilerController.res.inst_17_a_0 Bool) - (BoilerController.res.inst_16_a_0 Bool) - (BoilerController.res.inst_15_a_0 Bool) - (BoilerController.res.inst_14_a_0 Bool) - (BoilerController.res.inst_13_a_0 Bool) - (BoilerController.res.inst_12_a_0 Bool) - (BoilerController.res.inst_11_a_0 Bool) - (BoilerController.res.inst_10_a_0 Bool) - (BoilerController.res.inst_9_a_0 Int) - (BoilerController.res.inst_8_a_0 Int) - (BoilerController.res.inst_7_a_0 Int) - (BoilerController.res.inst_6_a_0 Int) - (BoilerController.res.inst_5_a_0 Bool) - (BoilerController.res.inst_4_a_0 Bool) - (BoilerController.res.inst_3_a_0 Bool) - (BoilerController.res.inst_2_a_0 Bool) - (BoilerController.res.inst_1_a_0 Bool) - (BoilerController.res.inst_0_a_0 Bool) - ) Bool - - (and - (= BoilerController.usr.program_ready_a_0 false) - (= BoilerController.res.abs_49_a_0 BoilerController.usr.level_a_0) - (= BoilerController.impl.usr.op_mode_a_0 1) - (= BoilerController.usr.valve_a_0 false) - (let - ((X1 Bool BoilerController.res.abs_71_a_0)) - (and - (= - BoilerController.impl.usr.stop_request_a_0 - BoilerController.res.abs_0_a_0) - (= BoilerController.res.abs_50_a_0 BoilerController.usr.steam_a_0) - (let - ((X2 Int 0)) - (and - (= BoilerController.res.abs_51_a_0 X2) - (let - ((X3 Int 0)) - (and - (= BoilerController.res.abs_52_a_0 X3) - (= BoilerController.impl.usr.pump_defect_0_a_0 0) - (let - ((X4 Int BoilerController.res.abs_11_a_0)) - (and - (= - BoilerController.res.abs_4_a_0 - BoilerController.usr.pump_failure_acknowledgement_0_a_0) - (= - BoilerController.res.abs_5_a_0 - BoilerController.usr.pump_repaired_0_a_0) - (= - BoilerController.res.abs_6_a_0 - BoilerController.usr.pump_control_failure_acknowledgement_0_a_0) - (= - BoilerController.res.abs_7_a_0 - BoilerController.usr.pump_control_repaired_0_a_0) - (= - BoilerController.res.abs_8_a_0 - (let ((X5 Int BoilerController.res.nondet_2)) X5)) - (= BoilerController.impl.usr.pump_status_0_a_0 0) - (let - ((X5 Int BoilerController.res.abs_64_a_0)) - (and - (= BoilerController.impl.usr.n_pumps_a_0 0) - (= BoilerController.impl.usr.q_a_0 BoilerController.usr.level_a_0) - (let - ((X6 Int BoilerController.res.abs_57_a_0)) - (and - (= - BoilerController.res.abs_48_a_0 - (let ((X7 Int BoilerController.res.nondet_14)) X7)) - (= BoilerController.impl.usr.valve_state_a_0 0) - (let - ((X7 Int BoilerController.res.abs_70_a_0)) - (let - ((X8 Bool false)) - (and - (= BoilerController.res.abs_53_a_0 X8) - (= - BoilerController.res.abs_10_a_0 - BoilerController.usr.pump_control_state_0_a_0) - (= - BoilerController.res.abs_9_a_0 - BoilerController.usr.pump_state_0_a_0) - (let - ((X9 Bool BoilerController.res.abs_13_a_0)) - (let - ((X10 Bool false)) - (and - (= BoilerController.res.abs_54_a_0 X10) - (= - BoilerController.res.abs_21_a_0 - BoilerController.usr.pump_control_state_1_a_0) - (= - BoilerController.res.abs_20_a_0 - BoilerController.usr.pump_state_1_a_0) - (= - BoilerController.res.abs_19_a_0 - (let ((X11 Int BoilerController.res.nondet_5)) X11)) - (let - ((X11 Bool BoilerController.res.abs_24_a_0)) - (and - (= - BoilerController.res.abs_15_a_0 - BoilerController.usr.pump_failure_acknowledgement_1_a_0) - (= - BoilerController.res.abs_16_a_0 - BoilerController.usr.pump_repaired_1_a_0) - (= - BoilerController.res.abs_17_a_0 - BoilerController.usr.pump_control_failure_acknowledgement_1_a_0) - (= - BoilerController.res.abs_18_a_0 - BoilerController.usr.pump_control_repaired_1_a_0) - (= BoilerController.impl.usr.pump_status_1_a_0 0) - (let - ((X12 Int BoilerController.res.abs_65_a_0)) - (let - ((X13 Bool false)) - (and - (= BoilerController.res.abs_55_a_0 X13) - (= - BoilerController.res.abs_32_a_0 - BoilerController.usr.pump_control_state_2_a_0) - (= - BoilerController.res.abs_31_a_0 - BoilerController.usr.pump_state_2_a_0) - (= - BoilerController.res.abs_30_a_0 - (let - ((X14 Int BoilerController.res.nondet_8)) - X14)) - (let - ((X14 Bool BoilerController.res.abs_35_a_0)) - (and - (= - BoilerController.res.abs_26_a_0 - BoilerController.usr.pump_failure_acknowledgement_2_a_0) - (= - BoilerController.res.abs_27_a_0 - BoilerController.usr.pump_repaired_2_a_0) - (= - BoilerController.res.abs_28_a_0 - BoilerController.usr.pump_control_failure_acknowledgement_2_a_0) - (= - BoilerController.res.abs_29_a_0 - BoilerController.usr.pump_control_repaired_2_a_0) - (= BoilerController.impl.usr.pump_status_2_a_0 0) - (let - ((X15 Int BoilerController.res.abs_66_a_0)) - (let - ((X16 Bool false)) - (and - (= BoilerController.res.abs_56_a_0 X16) - (= - BoilerController.res.abs_43_a_0 - BoilerController.usr.pump_control_state_3_a_0) - (= - BoilerController.res.abs_42_a_0 - BoilerController.usr.pump_state_3_a_0) - (= - BoilerController.res.abs_41_a_0 - (let - ((X17 Int BoilerController.res.nondet_11)) - X17)) - (let - ((X17 Bool BoilerController.res.abs_46_a_0)) - (and - (= - BoilerController.res.abs_37_a_0 - BoilerController.usr.pump_failure_acknowledgement_3_a_0) - (= - BoilerController.res.abs_38_a_0 - BoilerController.usr.pump_repaired_3_a_0) - (= - BoilerController.res.abs_39_a_0 - BoilerController.usr.pump_control_failure_acknowledgement_3_a_0) - (= - BoilerController.res.abs_40_a_0 - BoilerController.usr.pump_control_repaired_3_a_0) - (= - BoilerController.impl.usr.pump_status_3_a_0 - 0) - (let - ((X18 Int BoilerController.res.abs_67_a_0)) - (and - (= - BoilerController.impl.usr.v_a_0 - BoilerController.usr.steam_a_0) - (let - ((X19 Int BoilerController.res.abs_58_a_0)) - (and - (= - BoilerController.impl.usr.pump_defect_1_a_0 - 0) - (let - ((X20 - Int BoilerController.res.abs_22_a_0)) - (and - (= - BoilerController.impl.usr.pump_defect_2_a_0 - 0) - (let - ((X21 - Int BoilerController.res.abs_33_a_0)) - (and - (= - BoilerController.impl.usr.pump_defect_3_a_0 - 0) - (let - ((X22 - Int BoilerController.res.abs_44_a_0)) - (and - (= - BoilerController.impl.usr.pump_control_defect_0_a_0 - 0) - (let - ((X23 - Int BoilerController.res.abs_12_a_0)) - (and - (= - BoilerController.impl.usr.pump_control_defect_1_a_0 - 0) - (let - ((X24 - Int BoilerController.res.abs_23_a_0)) - (and - (= - BoilerController.impl.usr.pump_control_defect_2_a_0 - 0) - (let - ((X25 - Int BoilerController.res.abs_34_a_0)) - (and - (= - BoilerController.impl.usr.pump_control_defect_3_a_0 - 0) - (let - ((X26 - Int BoilerController.res.abs_45_a_0)) - (let - ((X27 - Bool BoilerController.res.abs_69_a_0)) - (and - (= - BoilerController.usr.mode_a_0 - 1) - (let - ((X28 - Int BoilerController.res.abs_72_a_0)) - (and - (= - BoilerController.res.abs_3_a_0 - BoilerController.impl.usr.pump_status_0_a_0) - (let - ((X29 - Bool BoilerController.res.abs_73_a_0)) - (and - (= - BoilerController.usr.open_pump_0_a_0 - X29) - (= - BoilerController.res.abs_14_a_0 - BoilerController.impl.usr.pump_status_1_a_0) - (= - BoilerController.res.abs_25_a_0 - BoilerController.impl.usr.pump_status_2_a_0) - (= - BoilerController.res.abs_36_a_0 - BoilerController.impl.usr.pump_status_3_a_0) - (let - ((X30 - Bool BoilerController.res.abs_74_a_0)) - (and - (= - BoilerController.usr.open_pump_1_a_0 - X30) - (let - ((X31 - Bool BoilerController.res.abs_75_a_0)) - (and - (= - BoilerController.usr.open_pump_2_a_0 - X31) - (let - ((X32 - Bool BoilerController.res.abs_76_a_0)) - (and - (= - BoilerController.usr.open_pump_3_a_0 - X32) - (let - ((X33 - Bool BoilerController.res.abs_77_a_0)) - (and - (= - BoilerController.usr.close_pump_0_a_0 - X33) - (let - ((X34 - Bool BoilerController.res.abs_78_a_0)) - (and - (= - BoilerController.usr.close_pump_1_a_0 - X34) - (let - ((X35 - Bool BoilerController.res.abs_79_a_0)) - (and - (= - BoilerController.usr.close_pump_2_a_0 - X35) - (let - ((X36 - Bool BoilerController.res.abs_80_a_0)) - (and - (= - BoilerController.usr.close_pump_3_a_0 - X36) - (let - ((X37 - Bool BoilerController.res.abs_81_a_0)) - (and - (= - BoilerController.usr.pump_failure_detection_0_a_0 - X37) - (let - ((X38 - Bool BoilerController.res.abs_82_a_0)) - (and - (= - BoilerController.usr.pump_failure_detection_1_a_0 - X38) - (let - ((X39 - Bool BoilerController.res.abs_83_a_0)) - (and - (= - BoilerController.usr.pump_failure_detection_2_a_0 - X39) - (let - ((X40 - Bool BoilerController.res.abs_84_a_0)) - (and - (= - BoilerController.usr.pump_failure_detection_3_a_0 - X40) - (let - ((X41 - Bool BoilerController.res.abs_89_a_0)) - (and - (= - BoilerController.usr.pump_control_failure_detection_0_a_0 - X41) - (let - ((X42 - Bool BoilerController.res.abs_90_a_0)) - (and - (= - BoilerController.usr.pump_control_failure_detection_1_a_0 - X42) - (let - ((X43 - Bool BoilerController.res.abs_91_a_0)) - (and - (= - BoilerController.usr.pump_control_failure_detection_2_a_0 - X43) - (let - ((X44 - Bool BoilerController.res.abs_92_a_0)) - (and - (= - BoilerController.usr.pump_control_failure_detection_3_a_0 - X44) - (= - BoilerController.usr.level_failure_detection_a_0 - false) - (let - ((X45 - Bool BoilerController.res.abs_97_a_0)) - (and - (= - BoilerController.usr.steam_outcome_failure_detection_a_0 - false) - (let - ((X46 - Bool BoilerController.res.abs_99_a_0)) - (let - ((X47 - Bool BoilerController.res.abs_85_a_0)) - (and - (= - BoilerController.usr.pump_repaired_acknowledgement_0_a_0 - X47) - (let - ((X48 - Bool BoilerController.res.abs_86_a_0)) - (and - (= - BoilerController.usr.pump_repaired_acknowledgement_1_a_0 - X48) - (let - ((X49 - Bool BoilerController.res.abs_87_a_0)) - (and - (= - BoilerController.usr.pump_repaired_acknowledgement_2_a_0 - X49) - (let - ((X50 - Bool BoilerController.res.abs_88_a_0)) - (and - (= - BoilerController.usr.pump_repaired_acknowledgement_3_a_0 - X50) - (let - ((X51 - Bool BoilerController.res.abs_93_a_0)) - (and - (= - BoilerController.usr.pump_control_repaired_acknowledgement_0_a_0 - X51) - (let - ((X52 - Bool BoilerController.res.abs_94_a_0)) - (and - (= - BoilerController.usr.pump_control_repaired_acknowledgement_1_a_0 - X52) - (let - ((X53 - Bool BoilerController.res.abs_95_a_0)) - (and - (= - BoilerController.usr.pump_control_repaired_acknowledgement_2_a_0 - X53) - (let - ((X54 - Bool BoilerController.res.abs_96_a_0)) - (and - (= - BoilerController.usr.pump_control_repaired_acknowledgement_3_a_0 - X54) - (= - BoilerController.usr.level_repaired_acknowledgement_a_0 - false) - (let - ((X55 - Bool BoilerController.res.abs_98_a_0)) - (and - (= - BoilerController.usr.steam_outcome_repaired_acknowledgement_a_0 - false) - (let - ((X56 - Bool BoilerController.res.abs_100_a_0)) - (and - (__node_init_ControlOutput_0 - BoilerController.impl.usr.op_mode_a_0 - BoilerController.res.abs_49_a_0 - BoilerController.usr.valve_a_0 - BoilerController.res.abs_71_a_0 - BoilerController.res.abs_72_a_0 - BoilerController.res.inst_176_a_0 - BoilerController.res.inst_175_a_0 - BoilerController.res.inst_174_a_0) - (__node_init_ControlMode_0 - BoilerController.usr.steam_boiler_waiting_a_0 - BoilerController.usr.physical_units_ready_a_0 - BoilerController.impl.usr.stop_request_a_0 - BoilerController.res.abs_50_a_0 - BoilerController.res.abs_51_a_0 - BoilerController.res.abs_52_a_0 - BoilerController.impl.usr.pump_defect_0_a_0 - BoilerController.impl.usr.pump_defect_1_a_0 - BoilerController.impl.usr.pump_defect_2_a_0 - BoilerController.impl.usr.pump_defect_3_a_0 - BoilerController.impl.usr.pump_control_defect_0_a_0 - BoilerController.impl.usr.pump_control_defect_1_a_0 - BoilerController.impl.usr.pump_control_defect_2_a_0 - BoilerController.impl.usr.pump_control_defect_3_a_0 - BoilerController.impl.usr.q_a_0 - BoilerController.res.abs_9_a_0 - BoilerController.res.abs_20_a_0 - BoilerController.res.abs_31_a_0 - BoilerController.res.abs_42_a_0 - BoilerController.res.nondet_24 - BoilerController.res.abs_68_a_0 - BoilerController.res.inst_173_a_0 - BoilerController.res.inst_172_a_0 - BoilerController.res.inst_171_a_0 - BoilerController.res.inst_170_a_0 - BoilerController.res.inst_169_a_0 - BoilerController.res.inst_168_a_0 - BoilerController.res.inst_167_a_0 - BoilerController.res.inst_166_a_0 - BoilerController.res.inst_165_a_0 - BoilerController.res.inst_164_a_0 - BoilerController.res.inst_163_a_0 - BoilerController.res.inst_162_a_0 - BoilerController.res.inst_161_a_0 - BoilerController.res.inst_160_a_0 - BoilerController.res.inst_159_a_0 - BoilerController.res.inst_158_a_0 - BoilerController.res.inst_157_a_0 - BoilerController.res.inst_156_a_0 - BoilerController.res.inst_155_a_0 - BoilerController.res.inst_154_a_0 - BoilerController.res.inst_153_a_0 - BoilerController.res.inst_152_a_0 - BoilerController.res.inst_151_a_0 - BoilerController.res.inst_150_a_0 - BoilerController.res.inst_149_a_0 - BoilerController.res.inst_148_a_0 - BoilerController.res.inst_147_a_0 - BoilerController.res.inst_146_a_0 - BoilerController.res.inst_145_a_0 - BoilerController.res.inst_144_a_0 - BoilerController.res.inst_143_a_0 - BoilerController.res.inst_142_a_0 - BoilerController.res.inst_141_a_0 - BoilerController.res.inst_140_a_0 - BoilerController.res.inst_139_a_0 - BoilerController.res.inst_138_a_0 - BoilerController.res.inst_137_a_0 - BoilerController.res.inst_136_a_0 - BoilerController.res.inst_135_a_0 - BoilerController.res.inst_134_a_0 - BoilerController.res.inst_133_a_0 - BoilerController.res.inst_132_a_0 - BoilerController.res.inst_131_a_0 - BoilerController.res.inst_130_a_0 - BoilerController.res.inst_129_a_0 - BoilerController.res.inst_128_a_0 - BoilerController.res.inst_127_a_0 - BoilerController.res.inst_126_a_0 - BoilerController.res.inst_125_a_0 - BoilerController.res.inst_124_a_0 - BoilerController.res.inst_123_a_0 - BoilerController.res.inst_122_a_0) - (__node_init_Operator_0 - BoilerController.usr.stop_a_0 - BoilerController.res.abs_0_a_0 - BoilerController.res.inst_121_a_0 - BoilerController.res.inst_120_a_0) - (__node_init_LevelDefect_0 - BoilerController.usr.level_failure_acknowledgement_a_0 - BoilerController.usr.level_repaired_a_0 - BoilerController.usr.level_a_0 - BoilerController.res.nondet_0 - BoilerController.res.abs_1_a_0 - BoilerController.res.inst_119_a_0 - BoilerController.res.inst_118_a_0 - BoilerController.res.inst_117_a_0 - BoilerController.res.inst_116_a_0 - BoilerController.res.inst_115_a_0 - BoilerController.res.inst_114_a_0) - (__node_init_SteamDefect_0 - BoilerController.usr.steam_failure_acknowledgement_a_0 - BoilerController.usr.steam_repaired_a_0 - BoilerController.usr.steam_a_0 - BoilerController.res.nondet_1 - BoilerController.res.abs_2_a_0 - BoilerController.res.inst_113_a_0 - BoilerController.res.inst_112_a_0 - BoilerController.res.inst_111_a_0 - BoilerController.res.inst_110_a_0 - BoilerController.res.inst_109_a_0 - BoilerController.res.inst_108_a_0) - (__node_init_PumpDefect_0 - BoilerController.res.abs_4_a_0 - BoilerController.res.abs_5_a_0 - BoilerController.res.abs_6_a_0 - BoilerController.res.abs_7_a_0 - BoilerController.res.abs_8_a_0 - BoilerController.res.abs_9_a_0 - BoilerController.res.abs_10_a_0 - BoilerController.res.nondet_4 - BoilerController.res.nondet_3 - BoilerController.res.abs_11_a_0 - BoilerController.res.abs_12_a_0 - BoilerController.res.abs_13_a_0 - BoilerController.res.inst_107_a_0 - BoilerController.res.inst_106_a_0 - BoilerController.res.inst_105_a_0 - BoilerController.res.inst_104_a_0 - BoilerController.res.inst_103_a_0 - BoilerController.res.inst_102_a_0 - BoilerController.res.inst_101_a_0 - BoilerController.res.inst_100_a_0 - BoilerController.res.inst_99_a_0 - BoilerController.res.inst_98_a_0 - BoilerController.res.inst_97_a_0 - BoilerController.res.inst_96_a_0 - BoilerController.res.inst_95_a_0) - (__node_init_PumpsStatus_0 - BoilerController.impl.usr.n_pumps_a_0 - BoilerController.impl.usr.pump_defect_0_a_0 - BoilerController.impl.usr.pump_defect_1_a_0 - BoilerController.impl.usr.pump_defect_2_a_0 - BoilerController.impl.usr.pump_defect_3_a_0 - BoilerController.res.abs_53_a_0 - BoilerController.res.abs_54_a_0 - BoilerController.res.abs_55_a_0 - BoilerController.res.abs_56_a_0 - BoilerController.res.nondet_23 - BoilerController.res.nondet_22 - BoilerController.res.nondet_21 - BoilerController.res.nondet_20 - BoilerController.res.nondet_19 - BoilerController.res.nondet_18 - BoilerController.res.nondet_17 - BoilerController.res.nondet_16 - BoilerController.res.abs_64_a_0 - BoilerController.res.abs_65_a_0 - BoilerController.res.abs_66_a_0 - BoilerController.res.abs_67_a_0 - BoilerController.res.inst_94_a_0 - BoilerController.res.inst_93_a_0 - BoilerController.res.inst_92_a_0 - BoilerController.res.inst_91_a_0 - BoilerController.res.inst_90_a_0 - BoilerController.res.inst_89_a_0 - BoilerController.res.inst_88_a_0 - BoilerController.res.inst_87_a_0 - BoilerController.res.inst_86_a_0 - BoilerController.res.inst_85_a_0 - BoilerController.res.inst_84_a_0 - BoilerController.res.inst_83_a_0 - BoilerController.res.inst_82_a_0 - BoilerController.res.inst_81_a_0 - BoilerController.res.inst_80_a_0 - BoilerController.res.inst_79_a_0 - BoilerController.res.inst_78_a_0 - BoilerController.res.inst_77_a_0 - BoilerController.res.inst_76_a_0 - BoilerController.res.inst_75_a_0 - BoilerController.res.inst_74_a_0 - BoilerController.res.inst_73_a_0 - BoilerController.res.inst_72_a_0 - BoilerController.res.inst_71_a_0 - BoilerController.res.inst_70_a_0 - BoilerController.res.inst_69_a_0 - BoilerController.res.inst_68_a_0 - BoilerController.res.inst_67_a_0 - BoilerController.res.inst_66_a_0 - BoilerController.res.inst_65_a_0 - BoilerController.res.inst_64_a_0 - BoilerController.res.inst_63_a_0 - BoilerController.res.inst_62_a_0 - BoilerController.res.inst_61_a_0 - BoilerController.res.inst_60_a_0 - BoilerController.res.inst_59_a_0 - BoilerController.res.inst_58_a_0 - BoilerController.res.inst_57_a_0 - BoilerController.res.inst_56_a_0 - BoilerController.res.inst_55_a_0 - BoilerController.res.inst_54_a_0 - BoilerController.res.inst_53_a_0 - BoilerController.res.inst_52_a_0 - BoilerController.res.inst_51_a_0) - (__node_init_PumpsDecision_0 - BoilerController.impl.usr.q_a_0 - BoilerController.impl.usr.v_a_0 - BoilerController.res.nondet_15 - BoilerController.res.abs_63_a_0 - BoilerController.res.inst_50_a_0) - (__node_init_Dynamics_0 - BoilerController.res.abs_48_a_0 - BoilerController.res.abs_49_a_0 - BoilerController.res.abs_50_a_0 - BoilerController.res.abs_51_a_0 - BoilerController.res.abs_52_a_0 - BoilerController.res.abs_53_a_0 - BoilerController.res.abs_54_a_0 - BoilerController.res.abs_55_a_0 - BoilerController.res.abs_56_a_0 - BoilerController.res.abs_57_a_0 - BoilerController.res.abs_58_a_0 - BoilerController.res.abs_59_a_0 - BoilerController.res.abs_60_a_0 - BoilerController.res.abs_61_a_0 - BoilerController.res.abs_62_a_0 - BoilerController.res.inst_49_a_0 - BoilerController.res.inst_48_a_0 - BoilerController.res.inst_47_a_0 - BoilerController.res.inst_46_a_0 - BoilerController.res.inst_45_a_0 - BoilerController.res.inst_44_a_0 - BoilerController.res.inst_43_a_0) - (__node_init_Valve_0 - BoilerController.impl.usr.op_mode_a_0 - BoilerController.impl.usr.q_a_0 - BoilerController.res.abs_69_a_0 - BoilerController.res.abs_70_a_0 - BoilerController.res.inst_42_a_0) - (__node_init_PumpDefect_0 - BoilerController.res.abs_15_a_0 - BoilerController.res.abs_16_a_0 - BoilerController.res.abs_17_a_0 - BoilerController.res.abs_18_a_0 - BoilerController.res.abs_19_a_0 - BoilerController.res.abs_20_a_0 - BoilerController.res.abs_21_a_0 - BoilerController.res.nondet_7 - BoilerController.res.nondet_6 - BoilerController.res.abs_22_a_0 - BoilerController.res.abs_23_a_0 - BoilerController.res.abs_24_a_0 - BoilerController.res.inst_41_a_0 - BoilerController.res.inst_40_a_0 - BoilerController.res.inst_39_a_0 - BoilerController.res.inst_38_a_0 - BoilerController.res.inst_37_a_0 - BoilerController.res.inst_36_a_0 - BoilerController.res.inst_35_a_0 - BoilerController.res.inst_34_a_0 - BoilerController.res.inst_33_a_0 - BoilerController.res.inst_32_a_0 - BoilerController.res.inst_31_a_0 - BoilerController.res.inst_30_a_0 - BoilerController.res.inst_29_a_0) - (__node_init_PumpDefect_0 - BoilerController.res.abs_26_a_0 - BoilerController.res.abs_27_a_0 - BoilerController.res.abs_28_a_0 - BoilerController.res.abs_29_a_0 - BoilerController.res.abs_30_a_0 - BoilerController.res.abs_31_a_0 - BoilerController.res.abs_32_a_0 - BoilerController.res.nondet_10 - BoilerController.res.nondet_9 - BoilerController.res.abs_33_a_0 - BoilerController.res.abs_34_a_0 - BoilerController.res.abs_35_a_0 - BoilerController.res.inst_28_a_0 - BoilerController.res.inst_27_a_0 - BoilerController.res.inst_26_a_0 - BoilerController.res.inst_25_a_0 - BoilerController.res.inst_24_a_0 - BoilerController.res.inst_23_a_0 - BoilerController.res.inst_22_a_0 - BoilerController.res.inst_21_a_0 - BoilerController.res.inst_20_a_0 - BoilerController.res.inst_19_a_0 - BoilerController.res.inst_18_a_0 - BoilerController.res.inst_17_a_0 - BoilerController.res.inst_16_a_0) - (__node_init_PumpDefect_0 - BoilerController.res.abs_37_a_0 - BoilerController.res.abs_38_a_0 - BoilerController.res.abs_39_a_0 - BoilerController.res.abs_40_a_0 - BoilerController.res.abs_41_a_0 - BoilerController.res.abs_42_a_0 - BoilerController.res.abs_43_a_0 - BoilerController.res.nondet_13 - BoilerController.res.nondet_12 - BoilerController.res.abs_44_a_0 - BoilerController.res.abs_45_a_0 - BoilerController.res.abs_46_a_0 - BoilerController.res.inst_15_a_0 - BoilerController.res.inst_14_a_0 - BoilerController.res.inst_13_a_0 - BoilerController.res.inst_12_a_0 - BoilerController.res.inst_11_a_0 - BoilerController.res.inst_10_a_0 - BoilerController.res.inst_9_a_0 - BoilerController.res.inst_8_a_0 - BoilerController.res.inst_7_a_0 - BoilerController.res.inst_6_a_0 - BoilerController.res.inst_5_a_0 - BoilerController.res.inst_4_a_0 - BoilerController.res.inst_3_a_0) - (__node_init_PumpsOutput_0 - BoilerController.impl.usr.op_mode_a_0 - BoilerController.res.abs_3_a_0 - BoilerController.res.abs_14_a_0 - BoilerController.res.abs_25_a_0 - BoilerController.res.abs_36_a_0 - BoilerController.impl.usr.pump_defect_0_a_0 - BoilerController.impl.usr.pump_defect_1_a_0 - BoilerController.impl.usr.pump_defect_2_a_0 - BoilerController.impl.usr.pump_defect_3_a_0 - BoilerController.impl.usr.pump_control_defect_0_a_0 - BoilerController.impl.usr.pump_control_defect_1_a_0 - BoilerController.impl.usr.pump_control_defect_2_a_0 - BoilerController.impl.usr.pump_control_defect_3_a_0 - BoilerController.res.abs_5_a_0 - BoilerController.res.abs_16_a_0 - BoilerController.res.abs_27_a_0 - BoilerController.res.abs_38_a_0 - BoilerController.res.abs_7_a_0 - BoilerController.res.abs_18_a_0 - BoilerController.res.abs_29_a_0 - BoilerController.res.abs_40_a_0 - BoilerController.res.nondet_32 - BoilerController.res.nondet_31 - BoilerController.res.nondet_30 - BoilerController.res.nondet_29 - BoilerController.res.nondet_28 - BoilerController.res.nondet_27 - BoilerController.res.nondet_26 - BoilerController.res.nondet_25 - BoilerController.res.abs_73_a_0 - BoilerController.res.abs_74_a_0 - BoilerController.res.abs_75_a_0 - BoilerController.res.abs_76_a_0 - BoilerController.res.abs_77_a_0 - BoilerController.res.abs_78_a_0 - BoilerController.res.abs_79_a_0 - BoilerController.res.abs_80_a_0 - BoilerController.res.abs_81_a_0 - BoilerController.res.abs_82_a_0 - BoilerController.res.abs_83_a_0 - BoilerController.res.abs_84_a_0 - BoilerController.res.abs_85_a_0 - BoilerController.res.abs_86_a_0 - BoilerController.res.abs_87_a_0 - BoilerController.res.abs_88_a_0 - BoilerController.res.abs_89_a_0 - BoilerController.res.abs_90_a_0 - BoilerController.res.abs_91_a_0 - BoilerController.res.abs_92_a_0 - BoilerController.res.abs_93_a_0 - BoilerController.res.abs_94_a_0 - BoilerController.res.abs_95_a_0 - BoilerController.res.abs_96_a_0 - BoilerController.res.inst_2_a_0) - (__node_init_LevelOutput_0 - BoilerController.impl.usr.op_mode_a_0 - BoilerController.res.abs_51_a_0 - BoilerController.usr.level_repaired_a_0 - BoilerController.res.abs_97_a_0 - BoilerController.res.abs_98_a_0 - BoilerController.res.inst_1_a_0) - (__node_init_SteamOutput_0 - BoilerController.impl.usr.op_mode_a_0 - BoilerController.res.abs_52_a_0 - BoilerController.usr.steam_repaired_a_0 - BoilerController.res.abs_99_a_0 - BoilerController.res.abs_100_a_0 - BoilerController.res.inst_0_a_0) - (<= - 1 - BoilerController.impl.usr.op_mode_a_0 - 6) - (<= - 1 - BoilerController.res.abs_68_a_0 - 6) - (<= - 0 - X2 - 2) - (<= - 0 - BoilerController.res.abs_1_a_0 - 2) - (<= - 0 - X3 - 2) - (<= - 0 - BoilerController.res.abs_2_a_0 - 2) - (<= - 0 - X4 - 2) - (<= - 0 - BoilerController.res.abs_11_a_0 - 2) - (<= - 0 - X20 - 2) - (<= - 0 - BoilerController.res.abs_22_a_0 - 2) - (<= - 0 - X21 - 2) - (<= - 0 - BoilerController.res.abs_33_a_0 - 2) - (<= - 0 - X22 - 2) - (<= - 0 - BoilerController.res.abs_44_a_0 - 2) - (<= - 0 - X23 - 2) - (<= - 0 - BoilerController.res.abs_12_a_0 - 2) - (<= - 0 - X24 - 2) - (<= - 0 - BoilerController.res.abs_23_a_0 - 2) - (<= - 0 - X25 - 2) - (<= - 0 - BoilerController.res.abs_34_a_0 - 2) - (<= - 0 - X26 - 2) - (<= - 0 - BoilerController.res.abs_45_a_0 - 2) - BoilerController.res.init_flag_a_0))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) -) - -(define-fun - __node_trans_BoilerController_0 ( - (BoilerController.usr.stop_a_1 Bool) - (BoilerController.usr.steam_boiler_waiting_a_1 Bool) - (BoilerController.usr.physical_units_ready_a_1 Bool) - (BoilerController.usr.level_a_1 Int) - (BoilerController.usr.steam_a_1 Int) - (BoilerController.usr.pump_state_0_a_1 Int) - (BoilerController.usr.pump_state_1_a_1 Int) - (BoilerController.usr.pump_state_2_a_1 Int) - (BoilerController.usr.pump_state_3_a_1 Int) - (BoilerController.usr.pump_control_state_0_a_1 Bool) - (BoilerController.usr.pump_control_state_1_a_1 Bool) - (BoilerController.usr.pump_control_state_2_a_1 Bool) - (BoilerController.usr.pump_control_state_3_a_1 Bool) - (BoilerController.usr.pump_repaired_0_a_1 Bool) - (BoilerController.usr.pump_repaired_1_a_1 Bool) - (BoilerController.usr.pump_repaired_2_a_1 Bool) - (BoilerController.usr.pump_repaired_3_a_1 Bool) - (BoilerController.usr.pump_control_repaired_0_a_1 Bool) - (BoilerController.usr.pump_control_repaired_1_a_1 Bool) - (BoilerController.usr.pump_control_repaired_2_a_1 Bool) - (BoilerController.usr.pump_control_repaired_3_a_1 Bool) - (BoilerController.usr.level_repaired_a_1 Bool) - (BoilerController.usr.steam_repaired_a_1 Bool) - (BoilerController.usr.pump_failure_acknowledgement_0_a_1 Bool) - (BoilerController.usr.pump_failure_acknowledgement_1_a_1 Bool) - (BoilerController.usr.pump_failure_acknowledgement_2_a_1 Bool) - (BoilerController.usr.pump_failure_acknowledgement_3_a_1 Bool) - (BoilerController.usr.pump_control_failure_acknowledgement_0_a_1 Bool) - (BoilerController.usr.pump_control_failure_acknowledgement_1_a_1 Bool) - (BoilerController.usr.pump_control_failure_acknowledgement_2_a_1 Bool) - (BoilerController.usr.pump_control_failure_acknowledgement_3_a_1 Bool) - (BoilerController.usr.level_failure_acknowledgement_a_1 Bool) - (BoilerController.usr.steam_failure_acknowledgement_a_1 Bool) - (BoilerController.res.nondet_32 Int) - (BoilerController.res.nondet_31 Int) - (BoilerController.res.nondet_30 Int) - (BoilerController.res.nondet_29 Int) - (BoilerController.res.nondet_28 Int) - (BoilerController.res.nondet_27 Int) - (BoilerController.res.nondet_26 Int) - (BoilerController.res.nondet_25 Int) - (BoilerController.res.nondet_24 Int) - (BoilerController.res.nondet_23 Int) - (BoilerController.res.nondet_22 Int) - (BoilerController.res.nondet_21 Int) - (BoilerController.res.nondet_20 Int) - (BoilerController.res.nondet_19 Int) - (BoilerController.res.nondet_18 Int) - (BoilerController.res.nondet_17 Int) - (BoilerController.res.nondet_16 Int) - (BoilerController.res.nondet_15 Int) - (BoilerController.res.nondet_14 Int) - (BoilerController.res.nondet_13 Int) - (BoilerController.res.nondet_12 Int) - (BoilerController.res.nondet_11 Int) - (BoilerController.res.nondet_10 Int) - (BoilerController.res.nondet_9 Int) - (BoilerController.res.nondet_8 Int) - (BoilerController.res.nondet_7 Int) - (BoilerController.res.nondet_6 Int) - (BoilerController.res.nondet_5 Int) - (BoilerController.res.nondet_4 Int) - (BoilerController.res.nondet_3 Int) - (BoilerController.res.nondet_2 Int) - (BoilerController.res.nondet_1 Int) - (BoilerController.res.nondet_0 Int) - (BoilerController.usr.program_ready_a_1 Bool) - (BoilerController.usr.mode_a_1 Int) - (BoilerController.usr.valve_a_1 Bool) - (BoilerController.usr.open_pump_0_a_1 Bool) - (BoilerController.usr.open_pump_1_a_1 Bool) - (BoilerController.usr.open_pump_2_a_1 Bool) - (BoilerController.usr.open_pump_3_a_1 Bool) - (BoilerController.usr.close_pump_0_a_1 Bool) - (BoilerController.usr.close_pump_1_a_1 Bool) - (BoilerController.usr.close_pump_2_a_1 Bool) - (BoilerController.usr.close_pump_3_a_1 Bool) - (BoilerController.usr.pump_failure_detection_0_a_1 Bool) - (BoilerController.usr.pump_failure_detection_1_a_1 Bool) - (BoilerController.usr.pump_failure_detection_2_a_1 Bool) - (BoilerController.usr.pump_failure_detection_3_a_1 Bool) - (BoilerController.usr.pump_control_failure_detection_0_a_1 Bool) - (BoilerController.usr.pump_control_failure_detection_1_a_1 Bool) - (BoilerController.usr.pump_control_failure_detection_2_a_1 Bool) - (BoilerController.usr.pump_control_failure_detection_3_a_1 Bool) - (BoilerController.usr.level_failure_detection_a_1 Bool) - (BoilerController.usr.steam_outcome_failure_detection_a_1 Bool) - (BoilerController.usr.pump_repaired_acknowledgement_0_a_1 Bool) - (BoilerController.usr.pump_repaired_acknowledgement_1_a_1 Bool) - (BoilerController.usr.pump_repaired_acknowledgement_2_a_1 Bool) - (BoilerController.usr.pump_repaired_acknowledgement_3_a_1 Bool) - (BoilerController.usr.pump_control_repaired_acknowledgement_0_a_1 Bool) - (BoilerController.usr.pump_control_repaired_acknowledgement_1_a_1 Bool) - (BoilerController.usr.pump_control_repaired_acknowledgement_2_a_1 Bool) - (BoilerController.usr.pump_control_repaired_acknowledgement_3_a_1 Bool) - (BoilerController.usr.level_repaired_acknowledgement_a_1 Bool) - (BoilerController.usr.steam_outcome_repaired_acknowledgement_a_1 Bool) - (BoilerController.res.init_flag_a_1 Bool) - (BoilerController.impl.usr.stop_request_a_1 Bool) - (BoilerController.impl.usr.op_mode_a_1 Int) - (BoilerController.impl.usr.q_a_1 Int) - (BoilerController.impl.usr.v_a_1 Int) - (BoilerController.impl.usr.valve_state_a_1 Int) - (BoilerController.impl.usr.n_pumps_a_1 Int) - (BoilerController.impl.usr.pump_status_0_a_1 Int) - (BoilerController.impl.usr.pump_status_1_a_1 Int) - (BoilerController.impl.usr.pump_status_2_a_1 Int) - (BoilerController.impl.usr.pump_status_3_a_1 Int) - (BoilerController.impl.usr.pump_defect_0_a_1 Int) - (BoilerController.impl.usr.pump_defect_1_a_1 Int) - (BoilerController.impl.usr.pump_defect_2_a_1 Int) - (BoilerController.impl.usr.pump_defect_3_a_1 Int) - (BoilerController.impl.usr.pump_control_defect_0_a_1 Int) - (BoilerController.impl.usr.pump_control_defect_1_a_1 Int) - (BoilerController.impl.usr.pump_control_defect_2_a_1 Int) - (BoilerController.impl.usr.pump_control_defect_3_a_1 Int) - (BoilerController.res.abs_0_a_1 Bool) - (BoilerController.res.abs_1_a_1 Int) - (BoilerController.res.abs_2_a_1 Int) - (BoilerController.res.abs_3_a_1 Int) - (BoilerController.res.abs_4_a_1 Bool) - (BoilerController.res.abs_5_a_1 Bool) - (BoilerController.res.abs_6_a_1 Bool) - (BoilerController.res.abs_7_a_1 Bool) - (BoilerController.res.abs_8_a_1 Int) - (BoilerController.res.abs_9_a_1 Int) - (BoilerController.res.abs_10_a_1 Bool) - (BoilerController.res.abs_11_a_1 Int) - (BoilerController.res.abs_12_a_1 Int) - (BoilerController.res.abs_13_a_1 Bool) - (BoilerController.res.abs_14_a_1 Int) - (BoilerController.res.abs_15_a_1 Bool) - (BoilerController.res.abs_16_a_1 Bool) - (BoilerController.res.abs_17_a_1 Bool) - (BoilerController.res.abs_18_a_1 Bool) - (BoilerController.res.abs_19_a_1 Int) - (BoilerController.res.abs_20_a_1 Int) - (BoilerController.res.abs_21_a_1 Bool) - (BoilerController.res.abs_22_a_1 Int) - (BoilerController.res.abs_23_a_1 Int) - (BoilerController.res.abs_24_a_1 Bool) - (BoilerController.res.abs_25_a_1 Int) - (BoilerController.res.abs_26_a_1 Bool) - (BoilerController.res.abs_27_a_1 Bool) - (BoilerController.res.abs_28_a_1 Bool) - (BoilerController.res.abs_29_a_1 Bool) - (BoilerController.res.abs_30_a_1 Int) - (BoilerController.res.abs_31_a_1 Int) - (BoilerController.res.abs_32_a_1 Bool) - (BoilerController.res.abs_33_a_1 Int) - (BoilerController.res.abs_34_a_1 Int) - (BoilerController.res.abs_35_a_1 Bool) - (BoilerController.res.abs_36_a_1 Int) - (BoilerController.res.abs_37_a_1 Bool) - (BoilerController.res.abs_38_a_1 Bool) - (BoilerController.res.abs_39_a_1 Bool) - (BoilerController.res.abs_40_a_1 Bool) - (BoilerController.res.abs_41_a_1 Int) - (BoilerController.res.abs_42_a_1 Int) - (BoilerController.res.abs_43_a_1 Bool) - (BoilerController.res.abs_44_a_1 Int) - (BoilerController.res.abs_45_a_1 Int) - (BoilerController.res.abs_46_a_1 Bool) - (BoilerController.res.abs_48_a_1 Int) - (BoilerController.res.abs_49_a_1 Int) - (BoilerController.res.abs_50_a_1 Int) - (BoilerController.res.abs_51_a_1 Int) - (BoilerController.res.abs_52_a_1 Int) - (BoilerController.res.abs_53_a_1 Bool) - (BoilerController.res.abs_54_a_1 Bool) - (BoilerController.res.abs_55_a_1 Bool) - (BoilerController.res.abs_56_a_1 Bool) - (BoilerController.res.abs_57_a_1 Int) - (BoilerController.res.abs_58_a_1 Int) - (BoilerController.res.abs_59_a_1 Int) - (BoilerController.res.abs_60_a_1 Int) - (BoilerController.res.abs_61_a_1 Int) - (BoilerController.res.abs_62_a_1 Int) - (BoilerController.res.abs_63_a_1 Int) - (BoilerController.res.abs_64_a_1 Int) - (BoilerController.res.abs_65_a_1 Int) - (BoilerController.res.abs_66_a_1 Int) - (BoilerController.res.abs_67_a_1 Int) - (BoilerController.res.abs_68_a_1 Int) - (BoilerController.res.abs_69_a_1 Bool) - (BoilerController.res.abs_70_a_1 Int) - (BoilerController.res.abs_71_a_1 Bool) - (BoilerController.res.abs_72_a_1 Int) - (BoilerController.res.abs_73_a_1 Bool) - (BoilerController.res.abs_74_a_1 Bool) - (BoilerController.res.abs_75_a_1 Bool) - (BoilerController.res.abs_76_a_1 Bool) - (BoilerController.res.abs_77_a_1 Bool) - (BoilerController.res.abs_78_a_1 Bool) - (BoilerController.res.abs_79_a_1 Bool) - (BoilerController.res.abs_80_a_1 Bool) - (BoilerController.res.abs_81_a_1 Bool) - (BoilerController.res.abs_82_a_1 Bool) - (BoilerController.res.abs_83_a_1 Bool) - (BoilerController.res.abs_84_a_1 Bool) - (BoilerController.res.abs_85_a_1 Bool) - (BoilerController.res.abs_86_a_1 Bool) - (BoilerController.res.abs_87_a_1 Bool) - (BoilerController.res.abs_88_a_1 Bool) - (BoilerController.res.abs_89_a_1 Bool) - (BoilerController.res.abs_90_a_1 Bool) - (BoilerController.res.abs_91_a_1 Bool) - (BoilerController.res.abs_92_a_1 Bool) - (BoilerController.res.abs_93_a_1 Bool) - (BoilerController.res.abs_94_a_1 Bool) - (BoilerController.res.abs_95_a_1 Bool) - (BoilerController.res.abs_96_a_1 Bool) - (BoilerController.res.abs_97_a_1 Bool) - (BoilerController.res.abs_98_a_1 Bool) - (BoilerController.res.abs_99_a_1 Bool) - (BoilerController.res.abs_100_a_1 Bool) - (BoilerController.res.inst_176_a_1 Bool) - (BoilerController.res.inst_175_a_1 Bool) - (BoilerController.res.inst_174_a_1 Bool) - (BoilerController.res.inst_173_a_1 Bool) - (BoilerController.res.inst_172_a_1 Int) - (BoilerController.res.inst_171_a_1 Bool) - (BoilerController.res.inst_170_a_1 Bool) - (BoilerController.res.inst_169_a_1 Bool) - (BoilerController.res.inst_168_a_1 Bool) - (BoilerController.res.inst_167_a_1 Bool) - (BoilerController.res.inst_166_a_1 Bool) - (BoilerController.res.inst_165_a_1 Bool) - (BoilerController.res.inst_164_a_1 Bool) - (BoilerController.res.inst_163_a_1 Bool) - (BoilerController.res.inst_162_a_1 Bool) - (BoilerController.res.inst_161_a_1 Bool) - (BoilerController.res.inst_160_a_1 Bool) - (BoilerController.res.inst_159_a_1 Bool) - (BoilerController.res.inst_158_a_1 Bool) - (BoilerController.res.inst_157_a_1 Bool) - (BoilerController.res.inst_156_a_1 Bool) - (BoilerController.res.inst_155_a_1 Bool) - (BoilerController.res.inst_154_a_1 Bool) - (BoilerController.res.inst_153_a_1 Bool) - (BoilerController.res.inst_152_a_1 Bool) - (BoilerController.res.inst_151_a_1 Bool) - (BoilerController.res.inst_150_a_1 Bool) - (BoilerController.res.inst_149_a_1 Bool) - (BoilerController.res.inst_148_a_1 Bool) - (BoilerController.res.inst_147_a_1 Bool) - (BoilerController.res.inst_146_a_1 Bool) - (BoilerController.res.inst_145_a_1 Bool) - (BoilerController.res.inst_144_a_1 Bool) - (BoilerController.res.inst_143_a_1 Bool) - (BoilerController.res.inst_142_a_1 Bool) - (BoilerController.res.inst_141_a_1 Bool) - (BoilerController.res.inst_140_a_1 Bool) - (BoilerController.res.inst_139_a_1 Bool) - (BoilerController.res.inst_138_a_1 Bool) - (BoilerController.res.inst_137_a_1 Bool) - (BoilerController.res.inst_136_a_1 Bool) - (BoilerController.res.inst_135_a_1 Bool) - (BoilerController.res.inst_134_a_1 Bool) - (BoilerController.res.inst_133_a_1 Bool) - (BoilerController.res.inst_132_a_1 Bool) - (BoilerController.res.inst_131_a_1 Bool) - (BoilerController.res.inst_130_a_1 Bool) - (BoilerController.res.inst_129_a_1 Bool) - (BoilerController.res.inst_128_a_1 Bool) - (BoilerController.res.inst_127_a_1 Bool) - (BoilerController.res.inst_126_a_1 Bool) - (BoilerController.res.inst_125_a_1 Bool) - (BoilerController.res.inst_124_a_1 Bool) - (BoilerController.res.inst_123_a_1 Bool) - (BoilerController.res.inst_122_a_1 Bool) - (BoilerController.res.inst_121_a_1 Bool) - (BoilerController.res.inst_120_a_1 Int) - (BoilerController.res.inst_119_a_1 Bool) - (BoilerController.res.inst_118_a_1 Bool) - (BoilerController.res.inst_117_a_1 Int) - (BoilerController.res.inst_116_a_1 Int) - (BoilerController.res.inst_115_a_1 Bool) - (BoilerController.res.inst_114_a_1 Bool) - (BoilerController.res.inst_113_a_1 Bool) - (BoilerController.res.inst_112_a_1 Bool) - (BoilerController.res.inst_111_a_1 Int) - (BoilerController.res.inst_110_a_1 Int) - (BoilerController.res.inst_109_a_1 Bool) - (BoilerController.res.inst_108_a_1 Bool) - (BoilerController.res.inst_107_a_1 Bool) - (BoilerController.res.inst_106_a_1 Bool) - (BoilerController.res.inst_105_a_1 Bool) - (BoilerController.res.inst_104_a_1 Bool) - (BoilerController.res.inst_103_a_1 Bool) - (BoilerController.res.inst_102_a_1 Bool) - (BoilerController.res.inst_101_a_1 Int) - (BoilerController.res.inst_100_a_1 Int) - (BoilerController.res.inst_99_a_1 Int) - (BoilerController.res.inst_98_a_1 Int) - (BoilerController.res.inst_97_a_1 Bool) - (BoilerController.res.inst_96_a_1 Bool) - (BoilerController.res.inst_95_a_1 Bool) - (BoilerController.res.inst_94_a_1 Bool) - (BoilerController.res.inst_93_a_1 Int) - (BoilerController.res.inst_92_a_1 Int) - (BoilerController.res.inst_91_a_1 Int) - (BoilerController.res.inst_90_a_1 Int) - (BoilerController.res.inst_89_a_1 Int) - (BoilerController.res.inst_88_a_1 Int) - (BoilerController.res.inst_87_a_1 Int) - (BoilerController.res.inst_86_a_1 Int) - (BoilerController.res.inst_85_a_1 Int) - (BoilerController.res.inst_84_a_1 Int) - (BoilerController.res.inst_83_a_1 Bool) - (BoilerController.res.inst_82_a_1 Bool) - (BoilerController.res.inst_81_a_1 Bool) - (BoilerController.res.inst_80_a_1 Bool) - (BoilerController.res.inst_79_a_1 Int) - (BoilerController.res.inst_78_a_1 Int) - (BoilerController.res.inst_77_a_1 Int) - (BoilerController.res.inst_76_a_1 Int) - (BoilerController.res.inst_75_a_1 Bool) - (BoilerController.res.inst_74_a_1 Int) - (BoilerController.res.inst_73_a_1 Bool) - (BoilerController.res.inst_72_a_1 Int) - (BoilerController.res.inst_71_a_1 Bool) - (BoilerController.res.inst_70_a_1 Int) - (BoilerController.res.inst_69_a_1 Bool) - (BoilerController.res.inst_68_a_1 Int) - (BoilerController.res.inst_67_a_1 Bool) - (BoilerController.res.inst_66_a_1 Int) - (BoilerController.res.inst_65_a_1 Bool) - (BoilerController.res.inst_64_a_1 Int) - (BoilerController.res.inst_63_a_1 Bool) - (BoilerController.res.inst_62_a_1 Int) - (BoilerController.res.inst_61_a_1 Bool) - (BoilerController.res.inst_60_a_1 Int) - (BoilerController.res.inst_59_a_1 Bool) - (BoilerController.res.inst_58_a_1 Bool) - (BoilerController.res.inst_57_a_1 Bool) - (BoilerController.res.inst_56_a_1 Bool) - (BoilerController.res.inst_55_a_1 Bool) - (BoilerController.res.inst_54_a_1 Bool) - (BoilerController.res.inst_53_a_1 Bool) - (BoilerController.res.inst_52_a_1 Bool) - (BoilerController.res.inst_51_a_1 Bool) - (BoilerController.res.inst_50_a_1 Bool) - (BoilerController.res.inst_49_a_1 Bool) - (BoilerController.res.inst_48_a_1 Bool) - (BoilerController.res.inst_47_a_1 Int) - (BoilerController.res.inst_46_a_1 Bool) - (BoilerController.res.inst_45_a_1 Bool) - (BoilerController.res.inst_44_a_1 Bool) - (BoilerController.res.inst_43_a_1 Bool) - (BoilerController.res.inst_42_a_1 Bool) - (BoilerController.res.inst_41_a_1 Bool) - (BoilerController.res.inst_40_a_1 Bool) - (BoilerController.res.inst_39_a_1 Bool) - (BoilerController.res.inst_38_a_1 Bool) - (BoilerController.res.inst_37_a_1 Bool) - (BoilerController.res.inst_36_a_1 Bool) - (BoilerController.res.inst_35_a_1 Int) - (BoilerController.res.inst_34_a_1 Int) - (BoilerController.res.inst_33_a_1 Int) - (BoilerController.res.inst_32_a_1 Int) - (BoilerController.res.inst_31_a_1 Bool) - (BoilerController.res.inst_30_a_1 Bool) - (BoilerController.res.inst_29_a_1 Bool) - (BoilerController.res.inst_28_a_1 Bool) - (BoilerController.res.inst_27_a_1 Bool) - (BoilerController.res.inst_26_a_1 Bool) - (BoilerController.res.inst_25_a_1 Bool) - (BoilerController.res.inst_24_a_1 Bool) - (BoilerController.res.inst_23_a_1 Bool) - (BoilerController.res.inst_22_a_1 Int) - (BoilerController.res.inst_21_a_1 Int) - (BoilerController.res.inst_20_a_1 Int) - (BoilerController.res.inst_19_a_1 Int) - (BoilerController.res.inst_18_a_1 Bool) - (BoilerController.res.inst_17_a_1 Bool) - (BoilerController.res.inst_16_a_1 Bool) - (BoilerController.res.inst_15_a_1 Bool) - (BoilerController.res.inst_14_a_1 Bool) - (BoilerController.res.inst_13_a_1 Bool) - (BoilerController.res.inst_12_a_1 Bool) - (BoilerController.res.inst_11_a_1 Bool) - (BoilerController.res.inst_10_a_1 Bool) - (BoilerController.res.inst_9_a_1 Int) - (BoilerController.res.inst_8_a_1 Int) - (BoilerController.res.inst_7_a_1 Int) - (BoilerController.res.inst_6_a_1 Int) - (BoilerController.res.inst_5_a_1 Bool) - (BoilerController.res.inst_4_a_1 Bool) - (BoilerController.res.inst_3_a_1 Bool) - (BoilerController.res.inst_2_a_1 Bool) - (BoilerController.res.inst_1_a_1 Bool) - (BoilerController.res.inst_0_a_1 Bool) - (BoilerController.usr.stop_a_0 Bool) - (BoilerController.usr.steam_boiler_waiting_a_0 Bool) - (BoilerController.usr.physical_units_ready_a_0 Bool) - (BoilerController.usr.level_a_0 Int) - (BoilerController.usr.steam_a_0 Int) - (BoilerController.usr.pump_state_0_a_0 Int) - (BoilerController.usr.pump_state_1_a_0 Int) - (BoilerController.usr.pump_state_2_a_0 Int) - (BoilerController.usr.pump_state_3_a_0 Int) - (BoilerController.usr.pump_control_state_0_a_0 Bool) - (BoilerController.usr.pump_control_state_1_a_0 Bool) - (BoilerController.usr.pump_control_state_2_a_0 Bool) - (BoilerController.usr.pump_control_state_3_a_0 Bool) - (BoilerController.usr.pump_repaired_0_a_0 Bool) - (BoilerController.usr.pump_repaired_1_a_0 Bool) - (BoilerController.usr.pump_repaired_2_a_0 Bool) - (BoilerController.usr.pump_repaired_3_a_0 Bool) - (BoilerController.usr.pump_control_repaired_0_a_0 Bool) - (BoilerController.usr.pump_control_repaired_1_a_0 Bool) - (BoilerController.usr.pump_control_repaired_2_a_0 Bool) - (BoilerController.usr.pump_control_repaired_3_a_0 Bool) - (BoilerController.usr.level_repaired_a_0 Bool) - (BoilerController.usr.steam_repaired_a_0 Bool) - (BoilerController.usr.pump_failure_acknowledgement_0_a_0 Bool) - (BoilerController.usr.pump_failure_acknowledgement_1_a_0 Bool) - (BoilerController.usr.pump_failure_acknowledgement_2_a_0 Bool) - (BoilerController.usr.pump_failure_acknowledgement_3_a_0 Bool) - (BoilerController.usr.pump_control_failure_acknowledgement_0_a_0 Bool) - (BoilerController.usr.pump_control_failure_acknowledgement_1_a_0 Bool) - (BoilerController.usr.pump_control_failure_acknowledgement_2_a_0 Bool) - (BoilerController.usr.pump_control_failure_acknowledgement_3_a_0 Bool) - (BoilerController.usr.level_failure_acknowledgement_a_0 Bool) - (BoilerController.usr.steam_failure_acknowledgement_a_0 Bool) - (BoilerController.usr.program_ready_a_0 Bool) - (BoilerController.usr.mode_a_0 Int) - (BoilerController.usr.valve_a_0 Bool) - (BoilerController.usr.open_pump_0_a_0 Bool) - (BoilerController.usr.open_pump_1_a_0 Bool) - (BoilerController.usr.open_pump_2_a_0 Bool) - (BoilerController.usr.open_pump_3_a_0 Bool) - (BoilerController.usr.close_pump_0_a_0 Bool) - (BoilerController.usr.close_pump_1_a_0 Bool) - (BoilerController.usr.close_pump_2_a_0 Bool) - (BoilerController.usr.close_pump_3_a_0 Bool) - (BoilerController.usr.pump_failure_detection_0_a_0 Bool) - (BoilerController.usr.pump_failure_detection_1_a_0 Bool) - (BoilerController.usr.pump_failure_detection_2_a_0 Bool) - (BoilerController.usr.pump_failure_detection_3_a_0 Bool) - (BoilerController.usr.pump_control_failure_detection_0_a_0 Bool) - (BoilerController.usr.pump_control_failure_detection_1_a_0 Bool) - (BoilerController.usr.pump_control_failure_detection_2_a_0 Bool) - (BoilerController.usr.pump_control_failure_detection_3_a_0 Bool) - (BoilerController.usr.level_failure_detection_a_0 Bool) - (BoilerController.usr.steam_outcome_failure_detection_a_0 Bool) - (BoilerController.usr.pump_repaired_acknowledgement_0_a_0 Bool) - (BoilerController.usr.pump_repaired_acknowledgement_1_a_0 Bool) - (BoilerController.usr.pump_repaired_acknowledgement_2_a_0 Bool) - (BoilerController.usr.pump_repaired_acknowledgement_3_a_0 Bool) - (BoilerController.usr.pump_control_repaired_acknowledgement_0_a_0 Bool) - (BoilerController.usr.pump_control_repaired_acknowledgement_1_a_0 Bool) - (BoilerController.usr.pump_control_repaired_acknowledgement_2_a_0 Bool) - (BoilerController.usr.pump_control_repaired_acknowledgement_3_a_0 Bool) - (BoilerController.usr.level_repaired_acknowledgement_a_0 Bool) - (BoilerController.usr.steam_outcome_repaired_acknowledgement_a_0 Bool) - (BoilerController.res.init_flag_a_0 Bool) - (BoilerController.impl.usr.stop_request_a_0 Bool) - (BoilerController.impl.usr.op_mode_a_0 Int) - (BoilerController.impl.usr.q_a_0 Int) - (BoilerController.impl.usr.v_a_0 Int) - (BoilerController.impl.usr.valve_state_a_0 Int) - (BoilerController.impl.usr.n_pumps_a_0 Int) - (BoilerController.impl.usr.pump_status_0_a_0 Int) - (BoilerController.impl.usr.pump_status_1_a_0 Int) - (BoilerController.impl.usr.pump_status_2_a_0 Int) - (BoilerController.impl.usr.pump_status_3_a_0 Int) - (BoilerController.impl.usr.pump_defect_0_a_0 Int) - (BoilerController.impl.usr.pump_defect_1_a_0 Int) - (BoilerController.impl.usr.pump_defect_2_a_0 Int) - (BoilerController.impl.usr.pump_defect_3_a_0 Int) - (BoilerController.impl.usr.pump_control_defect_0_a_0 Int) - (BoilerController.impl.usr.pump_control_defect_1_a_0 Int) - (BoilerController.impl.usr.pump_control_defect_2_a_0 Int) - (BoilerController.impl.usr.pump_control_defect_3_a_0 Int) - (BoilerController.res.abs_0_a_0 Bool) - (BoilerController.res.abs_1_a_0 Int) - (BoilerController.res.abs_2_a_0 Int) - (BoilerController.res.abs_3_a_0 Int) - (BoilerController.res.abs_4_a_0 Bool) - (BoilerController.res.abs_5_a_0 Bool) - (BoilerController.res.abs_6_a_0 Bool) - (BoilerController.res.abs_7_a_0 Bool) - (BoilerController.res.abs_8_a_0 Int) - (BoilerController.res.abs_9_a_0 Int) - (BoilerController.res.abs_10_a_0 Bool) - (BoilerController.res.abs_11_a_0 Int) - (BoilerController.res.abs_12_a_0 Int) - (BoilerController.res.abs_13_a_0 Bool) - (BoilerController.res.abs_14_a_0 Int) - (BoilerController.res.abs_15_a_0 Bool) - (BoilerController.res.abs_16_a_0 Bool) - (BoilerController.res.abs_17_a_0 Bool) - (BoilerController.res.abs_18_a_0 Bool) - (BoilerController.res.abs_19_a_0 Int) - (BoilerController.res.abs_20_a_0 Int) - (BoilerController.res.abs_21_a_0 Bool) - (BoilerController.res.abs_22_a_0 Int) - (BoilerController.res.abs_23_a_0 Int) - (BoilerController.res.abs_24_a_0 Bool) - (BoilerController.res.abs_25_a_0 Int) - (BoilerController.res.abs_26_a_0 Bool) - (BoilerController.res.abs_27_a_0 Bool) - (BoilerController.res.abs_28_a_0 Bool) - (BoilerController.res.abs_29_a_0 Bool) - (BoilerController.res.abs_30_a_0 Int) - (BoilerController.res.abs_31_a_0 Int) - (BoilerController.res.abs_32_a_0 Bool) - (BoilerController.res.abs_33_a_0 Int) - (BoilerController.res.abs_34_a_0 Int) - (BoilerController.res.abs_35_a_0 Bool) - (BoilerController.res.abs_36_a_0 Int) - (BoilerController.res.abs_37_a_0 Bool) - (BoilerController.res.abs_38_a_0 Bool) - (BoilerController.res.abs_39_a_0 Bool) - (BoilerController.res.abs_40_a_0 Bool) - (BoilerController.res.abs_41_a_0 Int) - (BoilerController.res.abs_42_a_0 Int) - (BoilerController.res.abs_43_a_0 Bool) - (BoilerController.res.abs_44_a_0 Int) - (BoilerController.res.abs_45_a_0 Int) - (BoilerController.res.abs_46_a_0 Bool) - (BoilerController.res.abs_48_a_0 Int) - (BoilerController.res.abs_49_a_0 Int) - (BoilerController.res.abs_50_a_0 Int) - (BoilerController.res.abs_51_a_0 Int) - (BoilerController.res.abs_52_a_0 Int) - (BoilerController.res.abs_53_a_0 Bool) - (BoilerController.res.abs_54_a_0 Bool) - (BoilerController.res.abs_55_a_0 Bool) - (BoilerController.res.abs_56_a_0 Bool) - (BoilerController.res.abs_57_a_0 Int) - (BoilerController.res.abs_58_a_0 Int) - (BoilerController.res.abs_59_a_0 Int) - (BoilerController.res.abs_60_a_0 Int) - (BoilerController.res.abs_61_a_0 Int) - (BoilerController.res.abs_62_a_0 Int) - (BoilerController.res.abs_63_a_0 Int) - (BoilerController.res.abs_64_a_0 Int) - (BoilerController.res.abs_65_a_0 Int) - (BoilerController.res.abs_66_a_0 Int) - (BoilerController.res.abs_67_a_0 Int) - (BoilerController.res.abs_68_a_0 Int) - (BoilerController.res.abs_69_a_0 Bool) - (BoilerController.res.abs_70_a_0 Int) - (BoilerController.res.abs_71_a_0 Bool) - (BoilerController.res.abs_72_a_0 Int) - (BoilerController.res.abs_73_a_0 Bool) - (BoilerController.res.abs_74_a_0 Bool) - (BoilerController.res.abs_75_a_0 Bool) - (BoilerController.res.abs_76_a_0 Bool) - (BoilerController.res.abs_77_a_0 Bool) - (BoilerController.res.abs_78_a_0 Bool) - (BoilerController.res.abs_79_a_0 Bool) - (BoilerController.res.abs_80_a_0 Bool) - (BoilerController.res.abs_81_a_0 Bool) - (BoilerController.res.abs_82_a_0 Bool) - (BoilerController.res.abs_83_a_0 Bool) - (BoilerController.res.abs_84_a_0 Bool) - (BoilerController.res.abs_85_a_0 Bool) - (BoilerController.res.abs_86_a_0 Bool) - (BoilerController.res.abs_87_a_0 Bool) - (BoilerController.res.abs_88_a_0 Bool) - (BoilerController.res.abs_89_a_0 Bool) - (BoilerController.res.abs_90_a_0 Bool) - (BoilerController.res.abs_91_a_0 Bool) - (BoilerController.res.abs_92_a_0 Bool) - (BoilerController.res.abs_93_a_0 Bool) - (BoilerController.res.abs_94_a_0 Bool) - (BoilerController.res.abs_95_a_0 Bool) - (BoilerController.res.abs_96_a_0 Bool) - (BoilerController.res.abs_97_a_0 Bool) - (BoilerController.res.abs_98_a_0 Bool) - (BoilerController.res.abs_99_a_0 Bool) - (BoilerController.res.abs_100_a_0 Bool) - (BoilerController.res.inst_176_a_0 Bool) - (BoilerController.res.inst_175_a_0 Bool) - (BoilerController.res.inst_174_a_0 Bool) - (BoilerController.res.inst_173_a_0 Bool) - (BoilerController.res.inst_172_a_0 Int) - (BoilerController.res.inst_171_a_0 Bool) - (BoilerController.res.inst_170_a_0 Bool) - (BoilerController.res.inst_169_a_0 Bool) - (BoilerController.res.inst_168_a_0 Bool) - (BoilerController.res.inst_167_a_0 Bool) - (BoilerController.res.inst_166_a_0 Bool) - (BoilerController.res.inst_165_a_0 Bool) - (BoilerController.res.inst_164_a_0 Bool) - (BoilerController.res.inst_163_a_0 Bool) - (BoilerController.res.inst_162_a_0 Bool) - (BoilerController.res.inst_161_a_0 Bool) - (BoilerController.res.inst_160_a_0 Bool) - (BoilerController.res.inst_159_a_0 Bool) - (BoilerController.res.inst_158_a_0 Bool) - (BoilerController.res.inst_157_a_0 Bool) - (BoilerController.res.inst_156_a_0 Bool) - (BoilerController.res.inst_155_a_0 Bool) - (BoilerController.res.inst_154_a_0 Bool) - (BoilerController.res.inst_153_a_0 Bool) - (BoilerController.res.inst_152_a_0 Bool) - (BoilerController.res.inst_151_a_0 Bool) - (BoilerController.res.inst_150_a_0 Bool) - (BoilerController.res.inst_149_a_0 Bool) - (BoilerController.res.inst_148_a_0 Bool) - (BoilerController.res.inst_147_a_0 Bool) - (BoilerController.res.inst_146_a_0 Bool) - (BoilerController.res.inst_145_a_0 Bool) - (BoilerController.res.inst_144_a_0 Bool) - (BoilerController.res.inst_143_a_0 Bool) - (BoilerController.res.inst_142_a_0 Bool) - (BoilerController.res.inst_141_a_0 Bool) - (BoilerController.res.inst_140_a_0 Bool) - (BoilerController.res.inst_139_a_0 Bool) - (BoilerController.res.inst_138_a_0 Bool) - (BoilerController.res.inst_137_a_0 Bool) - (BoilerController.res.inst_136_a_0 Bool) - (BoilerController.res.inst_135_a_0 Bool) - (BoilerController.res.inst_134_a_0 Bool) - (BoilerController.res.inst_133_a_0 Bool) - (BoilerController.res.inst_132_a_0 Bool) - (BoilerController.res.inst_131_a_0 Bool) - (BoilerController.res.inst_130_a_0 Bool) - (BoilerController.res.inst_129_a_0 Bool) - (BoilerController.res.inst_128_a_0 Bool) - (BoilerController.res.inst_127_a_0 Bool) - (BoilerController.res.inst_126_a_0 Bool) - (BoilerController.res.inst_125_a_0 Bool) - (BoilerController.res.inst_124_a_0 Bool) - (BoilerController.res.inst_123_a_0 Bool) - (BoilerController.res.inst_122_a_0 Bool) - (BoilerController.res.inst_121_a_0 Bool) - (BoilerController.res.inst_120_a_0 Int) - (BoilerController.res.inst_119_a_0 Bool) - (BoilerController.res.inst_118_a_0 Bool) - (BoilerController.res.inst_117_a_0 Int) - (BoilerController.res.inst_116_a_0 Int) - (BoilerController.res.inst_115_a_0 Bool) - (BoilerController.res.inst_114_a_0 Bool) - (BoilerController.res.inst_113_a_0 Bool) - (BoilerController.res.inst_112_a_0 Bool) - (BoilerController.res.inst_111_a_0 Int) - (BoilerController.res.inst_110_a_0 Int) - (BoilerController.res.inst_109_a_0 Bool) - (BoilerController.res.inst_108_a_0 Bool) - (BoilerController.res.inst_107_a_0 Bool) - (BoilerController.res.inst_106_a_0 Bool) - (BoilerController.res.inst_105_a_0 Bool) - (BoilerController.res.inst_104_a_0 Bool) - (BoilerController.res.inst_103_a_0 Bool) - (BoilerController.res.inst_102_a_0 Bool) - (BoilerController.res.inst_101_a_0 Int) - (BoilerController.res.inst_100_a_0 Int) - (BoilerController.res.inst_99_a_0 Int) - (BoilerController.res.inst_98_a_0 Int) - (BoilerController.res.inst_97_a_0 Bool) - (BoilerController.res.inst_96_a_0 Bool) - (BoilerController.res.inst_95_a_0 Bool) - (BoilerController.res.inst_94_a_0 Bool) - (BoilerController.res.inst_93_a_0 Int) - (BoilerController.res.inst_92_a_0 Int) - (BoilerController.res.inst_91_a_0 Int) - (BoilerController.res.inst_90_a_0 Int) - (BoilerController.res.inst_89_a_0 Int) - (BoilerController.res.inst_88_a_0 Int) - (BoilerController.res.inst_87_a_0 Int) - (BoilerController.res.inst_86_a_0 Int) - (BoilerController.res.inst_85_a_0 Int) - (BoilerController.res.inst_84_a_0 Int) - (BoilerController.res.inst_83_a_0 Bool) - (BoilerController.res.inst_82_a_0 Bool) - (BoilerController.res.inst_81_a_0 Bool) - (BoilerController.res.inst_80_a_0 Bool) - (BoilerController.res.inst_79_a_0 Int) - (BoilerController.res.inst_78_a_0 Int) - (BoilerController.res.inst_77_a_0 Int) - (BoilerController.res.inst_76_a_0 Int) - (BoilerController.res.inst_75_a_0 Bool) - (BoilerController.res.inst_74_a_0 Int) - (BoilerController.res.inst_73_a_0 Bool) - (BoilerController.res.inst_72_a_0 Int) - (BoilerController.res.inst_71_a_0 Bool) - (BoilerController.res.inst_70_a_0 Int) - (BoilerController.res.inst_69_a_0 Bool) - (BoilerController.res.inst_68_a_0 Int) - (BoilerController.res.inst_67_a_0 Bool) - (BoilerController.res.inst_66_a_0 Int) - (BoilerController.res.inst_65_a_0 Bool) - (BoilerController.res.inst_64_a_0 Int) - (BoilerController.res.inst_63_a_0 Bool) - (BoilerController.res.inst_62_a_0 Int) - (BoilerController.res.inst_61_a_0 Bool) - (BoilerController.res.inst_60_a_0 Int) - (BoilerController.res.inst_59_a_0 Bool) - (BoilerController.res.inst_58_a_0 Bool) - (BoilerController.res.inst_57_a_0 Bool) - (BoilerController.res.inst_56_a_0 Bool) - (BoilerController.res.inst_55_a_0 Bool) - (BoilerController.res.inst_54_a_0 Bool) - (BoilerController.res.inst_53_a_0 Bool) - (BoilerController.res.inst_52_a_0 Bool) - (BoilerController.res.inst_51_a_0 Bool) - (BoilerController.res.inst_50_a_0 Bool) - (BoilerController.res.inst_49_a_0 Bool) - (BoilerController.res.inst_48_a_0 Bool) - (BoilerController.res.inst_47_a_0 Int) - (BoilerController.res.inst_46_a_0 Bool) - (BoilerController.res.inst_45_a_0 Bool) - (BoilerController.res.inst_44_a_0 Bool) - (BoilerController.res.inst_43_a_0 Bool) - (BoilerController.res.inst_42_a_0 Bool) - (BoilerController.res.inst_41_a_0 Bool) - (BoilerController.res.inst_40_a_0 Bool) - (BoilerController.res.inst_39_a_0 Bool) - (BoilerController.res.inst_38_a_0 Bool) - (BoilerController.res.inst_37_a_0 Bool) - (BoilerController.res.inst_36_a_0 Bool) - (BoilerController.res.inst_35_a_0 Int) - (BoilerController.res.inst_34_a_0 Int) - (BoilerController.res.inst_33_a_0 Int) - (BoilerController.res.inst_32_a_0 Int) - (BoilerController.res.inst_31_a_0 Bool) - (BoilerController.res.inst_30_a_0 Bool) - (BoilerController.res.inst_29_a_0 Bool) - (BoilerController.res.inst_28_a_0 Bool) - (BoilerController.res.inst_27_a_0 Bool) - (BoilerController.res.inst_26_a_0 Bool) - (BoilerController.res.inst_25_a_0 Bool) - (BoilerController.res.inst_24_a_0 Bool) - (BoilerController.res.inst_23_a_0 Bool) - (BoilerController.res.inst_22_a_0 Int) - (BoilerController.res.inst_21_a_0 Int) - (BoilerController.res.inst_20_a_0 Int) - (BoilerController.res.inst_19_a_0 Int) - (BoilerController.res.inst_18_a_0 Bool) - (BoilerController.res.inst_17_a_0 Bool) - (BoilerController.res.inst_16_a_0 Bool) - (BoilerController.res.inst_15_a_0 Bool) - (BoilerController.res.inst_14_a_0 Bool) - (BoilerController.res.inst_13_a_0 Bool) - (BoilerController.res.inst_12_a_0 Bool) - (BoilerController.res.inst_11_a_0 Bool) - (BoilerController.res.inst_10_a_0 Bool) - (BoilerController.res.inst_9_a_0 Int) - (BoilerController.res.inst_8_a_0 Int) - (BoilerController.res.inst_7_a_0 Int) - (BoilerController.res.inst_6_a_0 Int) - (BoilerController.res.inst_5_a_0 Bool) - (BoilerController.res.inst_4_a_0 Bool) - (BoilerController.res.inst_3_a_0 Bool) - (BoilerController.res.inst_2_a_0 Bool) - (BoilerController.res.inst_1_a_0 Bool) - (BoilerController.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - BoilerController.res.abs_43_a_1 - BoilerController.usr.pump_control_state_3_a_1) - (= BoilerController.res.abs_42_a_1 BoilerController.usr.pump_state_3_a_1) - (= - BoilerController.res.abs_41_a_1 - BoilerController.impl.usr.pump_status_3_a_0) - (let - ((X1 Bool BoilerController.res.abs_46_a_1)) - (let - ((X2 Bool X1)) - (and - (= BoilerController.res.abs_56_a_1 X2) - (= - BoilerController.res.abs_32_a_1 - BoilerController.usr.pump_control_state_2_a_1) - (= BoilerController.res.abs_31_a_1 BoilerController.usr.pump_state_2_a_1) - (= - BoilerController.res.abs_30_a_1 - BoilerController.impl.usr.pump_status_2_a_0) - (let - ((X3 Bool BoilerController.res.abs_35_a_1)) - (let - ((X4 Bool X3)) - (and - (= BoilerController.res.abs_55_a_1 X4) - (= - BoilerController.res.abs_21_a_1 - BoilerController.usr.pump_control_state_1_a_1) - (= - BoilerController.res.abs_20_a_1 - BoilerController.usr.pump_state_1_a_1) - (= - BoilerController.res.abs_19_a_1 - BoilerController.impl.usr.pump_status_1_a_0) - (let - ((X5 Bool BoilerController.res.abs_24_a_1)) - (let - ((X6 Bool X5)) - (and - (= BoilerController.res.abs_54_a_1 X6) - (= - BoilerController.res.abs_10_a_1 - BoilerController.usr.pump_control_state_0_a_1) - (= - BoilerController.res.abs_9_a_1 - BoilerController.usr.pump_state_0_a_1) - (= - BoilerController.res.abs_8_a_1 - BoilerController.impl.usr.pump_status_0_a_0) - (let - ((X7 Bool BoilerController.res.abs_13_a_1)) - (let - ((X8 Bool X7)) - (and - (= BoilerController.res.abs_53_a_1 X8) - (let - ((X9 Int BoilerController.res.abs_1_a_1)) - (and - (= BoilerController.res.abs_51_a_1 X9) - (= - BoilerController.res.abs_50_a_1 - BoilerController.usr.steam_a_1) - (= - BoilerController.res.abs_49_a_1 - BoilerController.usr.level_a_1) - (= - BoilerController.res.abs_48_a_1 - BoilerController.impl.usr.valve_state_a_0) - (let - ((X10 Int BoilerController.res.abs_2_a_1)) - (and - (= BoilerController.res.abs_52_a_1 X10) - (= - BoilerController.res.abs_40_a_1 - BoilerController.usr.pump_control_repaired_3_a_1) - (= - BoilerController.res.abs_39_a_1 - BoilerController.usr.pump_control_failure_acknowledgement_3_a_1) - (= - BoilerController.res.abs_38_a_1 - BoilerController.usr.pump_repaired_3_a_1) - (= - BoilerController.res.abs_37_a_1 - BoilerController.usr.pump_failure_acknowledgement_3_a_1) - (= - BoilerController.res.abs_29_a_1 - BoilerController.usr.pump_control_repaired_2_a_1) - (= - BoilerController.res.abs_28_a_1 - BoilerController.usr.pump_control_failure_acknowledgement_2_a_1) - (= - BoilerController.res.abs_27_a_1 - BoilerController.usr.pump_repaired_2_a_1) - (= - BoilerController.res.abs_26_a_1 - BoilerController.usr.pump_failure_acknowledgement_2_a_1) - (= - BoilerController.res.abs_18_a_1 - BoilerController.usr.pump_control_repaired_1_a_1) - (= - BoilerController.res.abs_17_a_1 - BoilerController.usr.pump_control_failure_acknowledgement_1_a_1) - (= - BoilerController.res.abs_16_a_1 - BoilerController.usr.pump_repaired_1_a_1) - (= - BoilerController.res.abs_15_a_1 - BoilerController.usr.pump_failure_acknowledgement_1_a_1) - (= - BoilerController.res.abs_7_a_1 - BoilerController.usr.pump_control_repaired_0_a_1) - (= - BoilerController.res.abs_6_a_1 - BoilerController.usr.pump_control_failure_acknowledgement_0_a_1) - (= - BoilerController.res.abs_5_a_1 - BoilerController.usr.pump_repaired_0_a_1) - (= - BoilerController.res.abs_4_a_1 - BoilerController.usr.pump_failure_acknowledgement_0_a_1) - (let - ((X11 Int BoilerController.res.abs_57_a_1)) - (let - ((X12 Int BoilerController.res.abs_45_a_1)) - (let - ((X13 Int BoilerController.res.abs_34_a_1)) - (let - ((X14 Int BoilerController.res.abs_23_a_1)) - (let - ((X15 Int BoilerController.res.abs_44_a_1)) - (let - ((X16 Int BoilerController.res.abs_33_a_1)) - (let - ((X17 Int BoilerController.res.abs_22_a_1)) - (let - ((X18 Int BoilerController.res.abs_12_a_1)) - (let - ((X19 Int BoilerController.res.abs_11_a_1)) - (and - (= - BoilerController.impl.usr.pump_control_defect_3_a_1 - X12) - (= - BoilerController.impl.usr.pump_control_defect_2_a_1 - X13) - (= - BoilerController.impl.usr.pump_control_defect_1_a_1 - X14) - (= - BoilerController.impl.usr.pump_control_defect_0_a_1 - X18) - (= - BoilerController.impl.usr.pump_defect_3_a_1 - X15) - (= - BoilerController.impl.usr.pump_defect_2_a_1 - X16) - (= - BoilerController.impl.usr.pump_defect_1_a_1 - X17) - (= - BoilerController.impl.usr.pump_defect_0_a_1 - X19) - (= BoilerController.impl.usr.q_a_1 X11) - (= - BoilerController.impl.usr.stop_request_a_1 - BoilerController.res.abs_0_a_1) - (= - BoilerController.impl.usr.op_mode_a_1 - BoilerController.res.abs_68_a_1) - (let - ((X20 Bool BoilerController.res.abs_69_a_1)) - (and - (= BoilerController.usr.valve_a_1 X20) - (let - ((X21 Bool BoilerController.res.abs_71_a_1)) - (and - (= BoilerController.usr.program_ready_a_1 X21) - (let - ((X22 Int BoilerController.res.abs_58_a_1)) - (and - (= BoilerController.impl.usr.v_a_1 X22) - (= - BoilerController.impl.usr.n_pumps_a_1 - BoilerController.res.abs_63_a_1) - (let - ((X23 Int BoilerController.res.abs_64_a_1)) - (and - (= - BoilerController.impl.usr.pump_status_0_a_1 - X23) - (let - ((X24 - Int BoilerController.res.abs_70_a_1)) - (and - (= - BoilerController.impl.usr.valve_state_a_1 - X24) - (let - ((X25 - Int BoilerController.res.abs_65_a_1)) - (and - (= - BoilerController.impl.usr.pump_status_1_a_1 - X25) - (let - ((X26 - Int BoilerController.res.abs_66_a_1)) - (and - (= - BoilerController.impl.usr.pump_status_2_a_1 - X26) - (let - ((X27 - Int BoilerController.res.abs_67_a_1)) - (and - (= - BoilerController.impl.usr.pump_status_3_a_1 - X27) - (let - ((X28 - Int BoilerController.res.abs_72_a_1)) - (and - (= - BoilerController.usr.mode_a_1 - X28) - (= - BoilerController.res.abs_3_a_1 - BoilerController.impl.usr.pump_status_0_a_1) - (let - ((X29 - Bool BoilerController.res.abs_73_a_1)) - (and - (= - BoilerController.usr.open_pump_0_a_1 - X29) - (= - BoilerController.res.abs_14_a_1 - BoilerController.impl.usr.pump_status_1_a_1) - (= - BoilerController.res.abs_25_a_1 - BoilerController.impl.usr.pump_status_2_a_1) - (= - BoilerController.res.abs_36_a_1 - BoilerController.impl.usr.pump_status_3_a_1) - (let - ((X30 - Bool BoilerController.res.abs_74_a_1)) - (and - (= - BoilerController.usr.open_pump_1_a_1 - X30) - (let - ((X31 - Bool BoilerController.res.abs_75_a_1)) - (and - (= - BoilerController.usr.open_pump_2_a_1 - X31) - (let - ((X32 - Bool BoilerController.res.abs_76_a_1)) - (and - (= - BoilerController.usr.open_pump_3_a_1 - X32) - (let - ((X33 - Bool BoilerController.res.abs_77_a_1)) - (and - (= - BoilerController.usr.close_pump_0_a_1 - X33) - (let - ((X34 - Bool BoilerController.res.abs_78_a_1)) - (and - (= - BoilerController.usr.close_pump_1_a_1 - X34) - (let - ((X35 - Bool BoilerController.res.abs_79_a_1)) - (and - (= - BoilerController.usr.close_pump_2_a_1 - X35) - (let - ((X36 - Bool BoilerController.res.abs_80_a_1)) - (and - (= - BoilerController.usr.close_pump_3_a_1 - X36) - (let - ((X37 - Bool BoilerController.res.abs_81_a_1)) - (and - (= - BoilerController.usr.pump_failure_detection_0_a_1 - X37) - (let - ((X38 - Bool BoilerController.res.abs_82_a_1)) - (and - (= - BoilerController.usr.pump_failure_detection_1_a_1 - X38) - (let - ((X39 - Bool BoilerController.res.abs_83_a_1)) - (and - (= - BoilerController.usr.pump_failure_detection_2_a_1 - X39) - (let - ((X40 - Bool BoilerController.res.abs_84_a_1)) - (and - (= - BoilerController.usr.pump_failure_detection_3_a_1 - X40) - (let - ((X41 - Bool BoilerController.res.abs_89_a_1)) - (and - (= - BoilerController.usr.pump_control_failure_detection_0_a_1 - X41) - (let - ((X42 - Bool BoilerController.res.abs_90_a_1)) - (and - (= - BoilerController.usr.pump_control_failure_detection_1_a_1 - X42) - (let - ((X43 - Bool BoilerController.res.abs_91_a_1)) - (and - (= - BoilerController.usr.pump_control_failure_detection_2_a_1 - X43) - (let - ((X44 - Bool BoilerController.res.abs_92_a_1)) - (and - (= - BoilerController.usr.pump_control_failure_detection_3_a_1 - X44) - (let - ((X45 - Bool BoilerController.res.abs_97_a_1)) - (and - (= - BoilerController.usr.level_failure_detection_a_1 - X45) - (let - ((X46 - Bool BoilerController.res.abs_99_a_1)) - (and - (= - BoilerController.usr.steam_outcome_failure_detection_a_1 - X46) - (let - ((X47 - Bool BoilerController.res.abs_85_a_1)) - (and - (= - BoilerController.usr.pump_repaired_acknowledgement_0_a_1 - X47) - (let - ((X48 - Bool BoilerController.res.abs_86_a_1)) - (and - (= - BoilerController.usr.pump_repaired_acknowledgement_1_a_1 - X48) - (let - ((X49 - Bool BoilerController.res.abs_87_a_1)) - (and - (= - BoilerController.usr.pump_repaired_acknowledgement_2_a_1 - X49) - (let - ((X50 - Bool BoilerController.res.abs_88_a_1)) - (and - (= - BoilerController.usr.pump_repaired_acknowledgement_3_a_1 - X50) - (let - ((X51 - Bool BoilerController.res.abs_93_a_1)) - (and - (= - BoilerController.usr.pump_control_repaired_acknowledgement_0_a_1 - X51) - (let - ((X52 - Bool BoilerController.res.abs_94_a_1)) - (and - (= - BoilerController.usr.pump_control_repaired_acknowledgement_1_a_1 - X52) - (let - ((X53 - Bool BoilerController.res.abs_95_a_1)) - (and - (= - BoilerController.usr.pump_control_repaired_acknowledgement_2_a_1 - X53) - (let - ((X54 - Bool BoilerController.res.abs_96_a_1)) - (and - (= - BoilerController.usr.pump_control_repaired_acknowledgement_3_a_1 - X54) - (let - ((X55 - Bool BoilerController.res.abs_98_a_1)) - (and - (= - BoilerController.usr.level_repaired_acknowledgement_a_1 - X55) - (let - ((X56 - Bool BoilerController.res.abs_100_a_1)) - (and - (= - BoilerController.usr.steam_outcome_repaired_acknowledgement_a_1 - X56) - (__node_trans_ControlOutput_0 - BoilerController.impl.usr.op_mode_a_1 - BoilerController.res.abs_49_a_1 - BoilerController.usr.valve_a_1 - BoilerController.res.abs_71_a_1 - BoilerController.res.abs_72_a_1 - BoilerController.res.inst_176_a_1 - BoilerController.res.inst_175_a_1 - BoilerController.res.inst_174_a_1 - BoilerController.impl.usr.op_mode_a_0 - BoilerController.res.abs_49_a_0 - BoilerController.usr.valve_a_0 - BoilerController.res.abs_71_a_0 - BoilerController.res.abs_72_a_0 - BoilerController.res.inst_176_a_0 - BoilerController.res.inst_175_a_0 - BoilerController.res.inst_174_a_0) - (__node_trans_ControlMode_0 - BoilerController.usr.steam_boiler_waiting_a_1 - BoilerController.usr.physical_units_ready_a_1 - BoilerController.impl.usr.stop_request_a_1 - BoilerController.res.abs_50_a_1 - BoilerController.res.abs_51_a_1 - BoilerController.res.abs_52_a_1 - BoilerController.impl.usr.pump_defect_0_a_1 - BoilerController.impl.usr.pump_defect_1_a_1 - BoilerController.impl.usr.pump_defect_2_a_1 - BoilerController.impl.usr.pump_defect_3_a_1 - BoilerController.impl.usr.pump_control_defect_0_a_1 - BoilerController.impl.usr.pump_control_defect_1_a_1 - BoilerController.impl.usr.pump_control_defect_2_a_1 - BoilerController.impl.usr.pump_control_defect_3_a_1 - BoilerController.impl.usr.q_a_1 - BoilerController.res.abs_9_a_1 - BoilerController.res.abs_20_a_1 - BoilerController.res.abs_31_a_1 - BoilerController.res.abs_42_a_1 - BoilerController.res.nondet_24 - BoilerController.res.abs_68_a_1 - BoilerController.res.inst_173_a_1 - BoilerController.res.inst_172_a_1 - BoilerController.res.inst_171_a_1 - BoilerController.res.inst_170_a_1 - BoilerController.res.inst_169_a_1 - BoilerController.res.inst_168_a_1 - BoilerController.res.inst_167_a_1 - BoilerController.res.inst_166_a_1 - BoilerController.res.inst_165_a_1 - BoilerController.res.inst_164_a_1 - BoilerController.res.inst_163_a_1 - BoilerController.res.inst_162_a_1 - BoilerController.res.inst_161_a_1 - BoilerController.res.inst_160_a_1 - BoilerController.res.inst_159_a_1 - BoilerController.res.inst_158_a_1 - BoilerController.res.inst_157_a_1 - BoilerController.res.inst_156_a_1 - BoilerController.res.inst_155_a_1 - BoilerController.res.inst_154_a_1 - BoilerController.res.inst_153_a_1 - BoilerController.res.inst_152_a_1 - BoilerController.res.inst_151_a_1 - BoilerController.res.inst_150_a_1 - BoilerController.res.inst_149_a_1 - BoilerController.res.inst_148_a_1 - BoilerController.res.inst_147_a_1 - BoilerController.res.inst_146_a_1 - BoilerController.res.inst_145_a_1 - BoilerController.res.inst_144_a_1 - BoilerController.res.inst_143_a_1 - BoilerController.res.inst_142_a_1 - BoilerController.res.inst_141_a_1 - BoilerController.res.inst_140_a_1 - BoilerController.res.inst_139_a_1 - BoilerController.res.inst_138_a_1 - BoilerController.res.inst_137_a_1 - BoilerController.res.inst_136_a_1 - BoilerController.res.inst_135_a_1 - BoilerController.res.inst_134_a_1 - BoilerController.res.inst_133_a_1 - BoilerController.res.inst_132_a_1 - BoilerController.res.inst_131_a_1 - BoilerController.res.inst_130_a_1 - BoilerController.res.inst_129_a_1 - BoilerController.res.inst_128_a_1 - BoilerController.res.inst_127_a_1 - BoilerController.res.inst_126_a_1 - BoilerController.res.inst_125_a_1 - BoilerController.res.inst_124_a_1 - BoilerController.res.inst_123_a_1 - BoilerController.res.inst_122_a_1 - BoilerController.usr.steam_boiler_waiting_a_0 - BoilerController.usr.physical_units_ready_a_0 - BoilerController.impl.usr.stop_request_a_0 - BoilerController.res.abs_50_a_0 - BoilerController.res.abs_51_a_0 - BoilerController.res.abs_52_a_0 - BoilerController.impl.usr.pump_defect_0_a_0 - BoilerController.impl.usr.pump_defect_1_a_0 - BoilerController.impl.usr.pump_defect_2_a_0 - BoilerController.impl.usr.pump_defect_3_a_0 - BoilerController.impl.usr.pump_control_defect_0_a_0 - BoilerController.impl.usr.pump_control_defect_1_a_0 - BoilerController.impl.usr.pump_control_defect_2_a_0 - BoilerController.impl.usr.pump_control_defect_3_a_0 - BoilerController.impl.usr.q_a_0 - BoilerController.res.abs_9_a_0 - BoilerController.res.abs_20_a_0 - BoilerController.res.abs_31_a_0 - BoilerController.res.abs_42_a_0 - BoilerController.res.abs_68_a_0 - BoilerController.res.inst_173_a_0 - BoilerController.res.inst_172_a_0 - BoilerController.res.inst_171_a_0 - BoilerController.res.inst_170_a_0 - BoilerController.res.inst_169_a_0 - BoilerController.res.inst_168_a_0 - BoilerController.res.inst_167_a_0 - BoilerController.res.inst_166_a_0 - BoilerController.res.inst_165_a_0 - BoilerController.res.inst_164_a_0 - BoilerController.res.inst_163_a_0 - BoilerController.res.inst_162_a_0 - BoilerController.res.inst_161_a_0 - BoilerController.res.inst_160_a_0 - BoilerController.res.inst_159_a_0 - BoilerController.res.inst_158_a_0 - BoilerController.res.inst_157_a_0 - BoilerController.res.inst_156_a_0 - BoilerController.res.inst_155_a_0 - BoilerController.res.inst_154_a_0 - BoilerController.res.inst_153_a_0 - BoilerController.res.inst_152_a_0 - BoilerController.res.inst_151_a_0 - BoilerController.res.inst_150_a_0 - BoilerController.res.inst_149_a_0 - BoilerController.res.inst_148_a_0 - BoilerController.res.inst_147_a_0 - BoilerController.res.inst_146_a_0 - BoilerController.res.inst_145_a_0 - BoilerController.res.inst_144_a_0 - BoilerController.res.inst_143_a_0 - BoilerController.res.inst_142_a_0 - BoilerController.res.inst_141_a_0 - BoilerController.res.inst_140_a_0 - BoilerController.res.inst_139_a_0 - BoilerController.res.inst_138_a_0 - BoilerController.res.inst_137_a_0 - BoilerController.res.inst_136_a_0 - BoilerController.res.inst_135_a_0 - BoilerController.res.inst_134_a_0 - BoilerController.res.inst_133_a_0 - BoilerController.res.inst_132_a_0 - BoilerController.res.inst_131_a_0 - BoilerController.res.inst_130_a_0 - BoilerController.res.inst_129_a_0 - BoilerController.res.inst_128_a_0 - BoilerController.res.inst_127_a_0 - BoilerController.res.inst_126_a_0 - BoilerController.res.inst_125_a_0 - BoilerController.res.inst_124_a_0 - BoilerController.res.inst_123_a_0 - BoilerController.res.inst_122_a_0) - (__node_trans_Operator_0 - BoilerController.usr.stop_a_1 - BoilerController.res.abs_0_a_1 - BoilerController.res.inst_121_a_1 - BoilerController.res.inst_120_a_1 - BoilerController.usr.stop_a_0 - BoilerController.res.abs_0_a_0 - BoilerController.res.inst_121_a_0 - BoilerController.res.inst_120_a_0) - (__node_trans_LevelDefect_0 - BoilerController.usr.level_failure_acknowledgement_a_1 - BoilerController.usr.level_repaired_a_1 - BoilerController.usr.level_a_1 - BoilerController.res.nondet_0 - BoilerController.res.abs_1_a_1 - BoilerController.res.inst_119_a_1 - BoilerController.res.inst_118_a_1 - BoilerController.res.inst_117_a_1 - BoilerController.res.inst_116_a_1 - BoilerController.res.inst_115_a_1 - BoilerController.res.inst_114_a_1 - BoilerController.usr.level_failure_acknowledgement_a_0 - BoilerController.usr.level_repaired_a_0 - BoilerController.usr.level_a_0 - BoilerController.res.abs_1_a_0 - BoilerController.res.inst_119_a_0 - BoilerController.res.inst_118_a_0 - BoilerController.res.inst_117_a_0 - BoilerController.res.inst_116_a_0 - BoilerController.res.inst_115_a_0 - BoilerController.res.inst_114_a_0) - (__node_trans_SteamDefect_0 - BoilerController.usr.steam_failure_acknowledgement_a_1 - BoilerController.usr.steam_repaired_a_1 - BoilerController.usr.steam_a_1 - BoilerController.res.nondet_1 - BoilerController.res.abs_2_a_1 - BoilerController.res.inst_113_a_1 - BoilerController.res.inst_112_a_1 - BoilerController.res.inst_111_a_1 - BoilerController.res.inst_110_a_1 - BoilerController.res.inst_109_a_1 - BoilerController.res.inst_108_a_1 - BoilerController.usr.steam_failure_acknowledgement_a_0 - BoilerController.usr.steam_repaired_a_0 - BoilerController.usr.steam_a_0 - BoilerController.res.abs_2_a_0 - BoilerController.res.inst_113_a_0 - BoilerController.res.inst_112_a_0 - BoilerController.res.inst_111_a_0 - BoilerController.res.inst_110_a_0 - BoilerController.res.inst_109_a_0 - BoilerController.res.inst_108_a_0) - (__node_trans_PumpDefect_0 - BoilerController.res.abs_4_a_1 - BoilerController.res.abs_5_a_1 - BoilerController.res.abs_6_a_1 - BoilerController.res.abs_7_a_1 - BoilerController.res.abs_8_a_1 - BoilerController.res.abs_9_a_1 - BoilerController.res.abs_10_a_1 - BoilerController.res.nondet_4 - BoilerController.res.nondet_3 - BoilerController.res.abs_11_a_1 - BoilerController.res.abs_12_a_1 - BoilerController.res.abs_13_a_1 - BoilerController.res.inst_107_a_1 - BoilerController.res.inst_106_a_1 - BoilerController.res.inst_105_a_1 - BoilerController.res.inst_104_a_1 - BoilerController.res.inst_103_a_1 - BoilerController.res.inst_102_a_1 - BoilerController.res.inst_101_a_1 - BoilerController.res.inst_100_a_1 - BoilerController.res.inst_99_a_1 - BoilerController.res.inst_98_a_1 - BoilerController.res.inst_97_a_1 - BoilerController.res.inst_96_a_1 - BoilerController.res.inst_95_a_1 - BoilerController.res.abs_4_a_0 - BoilerController.res.abs_5_a_0 - BoilerController.res.abs_6_a_0 - BoilerController.res.abs_7_a_0 - BoilerController.res.abs_8_a_0 - BoilerController.res.abs_9_a_0 - BoilerController.res.abs_10_a_0 - BoilerController.res.abs_11_a_0 - BoilerController.res.abs_12_a_0 - BoilerController.res.abs_13_a_0 - BoilerController.res.inst_107_a_0 - BoilerController.res.inst_106_a_0 - BoilerController.res.inst_105_a_0 - BoilerController.res.inst_104_a_0 - BoilerController.res.inst_103_a_0 - BoilerController.res.inst_102_a_0 - BoilerController.res.inst_101_a_0 - BoilerController.res.inst_100_a_0 - BoilerController.res.inst_99_a_0 - BoilerController.res.inst_98_a_0 - BoilerController.res.inst_97_a_0 - BoilerController.res.inst_96_a_0 - BoilerController.res.inst_95_a_0) - (__node_trans_PumpsStatus_0 - BoilerController.impl.usr.n_pumps_a_1 - BoilerController.impl.usr.pump_defect_0_a_1 - BoilerController.impl.usr.pump_defect_1_a_1 - BoilerController.impl.usr.pump_defect_2_a_1 - BoilerController.impl.usr.pump_defect_3_a_1 - BoilerController.res.abs_53_a_1 - BoilerController.res.abs_54_a_1 - BoilerController.res.abs_55_a_1 - BoilerController.res.abs_56_a_1 - BoilerController.res.nondet_23 - BoilerController.res.nondet_22 - BoilerController.res.nondet_21 - BoilerController.res.nondet_20 - BoilerController.res.nondet_19 - BoilerController.res.nondet_18 - BoilerController.res.nondet_17 - BoilerController.res.nondet_16 - BoilerController.res.abs_64_a_1 - BoilerController.res.abs_65_a_1 - BoilerController.res.abs_66_a_1 - BoilerController.res.abs_67_a_1 - BoilerController.res.inst_94_a_1 - BoilerController.res.inst_93_a_1 - BoilerController.res.inst_92_a_1 - BoilerController.res.inst_91_a_1 - BoilerController.res.inst_90_a_1 - BoilerController.res.inst_89_a_1 - BoilerController.res.inst_88_a_1 - BoilerController.res.inst_87_a_1 - BoilerController.res.inst_86_a_1 - BoilerController.res.inst_85_a_1 - BoilerController.res.inst_84_a_1 - BoilerController.res.inst_83_a_1 - BoilerController.res.inst_82_a_1 - BoilerController.res.inst_81_a_1 - BoilerController.res.inst_80_a_1 - BoilerController.res.inst_79_a_1 - BoilerController.res.inst_78_a_1 - BoilerController.res.inst_77_a_1 - BoilerController.res.inst_76_a_1 - BoilerController.res.inst_75_a_1 - BoilerController.res.inst_74_a_1 - BoilerController.res.inst_73_a_1 - BoilerController.res.inst_72_a_1 - BoilerController.res.inst_71_a_1 - BoilerController.res.inst_70_a_1 - BoilerController.res.inst_69_a_1 - BoilerController.res.inst_68_a_1 - BoilerController.res.inst_67_a_1 - BoilerController.res.inst_66_a_1 - BoilerController.res.inst_65_a_1 - BoilerController.res.inst_64_a_1 - BoilerController.res.inst_63_a_1 - BoilerController.res.inst_62_a_1 - BoilerController.res.inst_61_a_1 - BoilerController.res.inst_60_a_1 - BoilerController.res.inst_59_a_1 - BoilerController.res.inst_58_a_1 - BoilerController.res.inst_57_a_1 - BoilerController.res.inst_56_a_1 - BoilerController.res.inst_55_a_1 - BoilerController.res.inst_54_a_1 - BoilerController.res.inst_53_a_1 - BoilerController.res.inst_52_a_1 - BoilerController.res.inst_51_a_1 - BoilerController.impl.usr.n_pumps_a_0 - BoilerController.impl.usr.pump_defect_0_a_0 - BoilerController.impl.usr.pump_defect_1_a_0 - BoilerController.impl.usr.pump_defect_2_a_0 - BoilerController.impl.usr.pump_defect_3_a_0 - BoilerController.res.abs_53_a_0 - BoilerController.res.abs_54_a_0 - BoilerController.res.abs_55_a_0 - BoilerController.res.abs_56_a_0 - BoilerController.res.abs_64_a_0 - BoilerController.res.abs_65_a_0 - BoilerController.res.abs_66_a_0 - BoilerController.res.abs_67_a_0 - BoilerController.res.inst_94_a_0 - BoilerController.res.inst_93_a_0 - BoilerController.res.inst_92_a_0 - BoilerController.res.inst_91_a_0 - BoilerController.res.inst_90_a_0 - BoilerController.res.inst_89_a_0 - BoilerController.res.inst_88_a_0 - BoilerController.res.inst_87_a_0 - BoilerController.res.inst_86_a_0 - BoilerController.res.inst_85_a_0 - BoilerController.res.inst_84_a_0 - BoilerController.res.inst_83_a_0 - BoilerController.res.inst_82_a_0 - BoilerController.res.inst_81_a_0 - BoilerController.res.inst_80_a_0 - BoilerController.res.inst_79_a_0 - BoilerController.res.inst_78_a_0 - BoilerController.res.inst_77_a_0 - BoilerController.res.inst_76_a_0 - BoilerController.res.inst_75_a_0 - BoilerController.res.inst_74_a_0 - BoilerController.res.inst_73_a_0 - BoilerController.res.inst_72_a_0 - BoilerController.res.inst_71_a_0 - BoilerController.res.inst_70_a_0 - BoilerController.res.inst_69_a_0 - BoilerController.res.inst_68_a_0 - BoilerController.res.inst_67_a_0 - BoilerController.res.inst_66_a_0 - BoilerController.res.inst_65_a_0 - BoilerController.res.inst_64_a_0 - BoilerController.res.inst_63_a_0 - BoilerController.res.inst_62_a_0 - BoilerController.res.inst_61_a_0 - BoilerController.res.inst_60_a_0 - BoilerController.res.inst_59_a_0 - BoilerController.res.inst_58_a_0 - BoilerController.res.inst_57_a_0 - BoilerController.res.inst_56_a_0 - BoilerController.res.inst_55_a_0 - BoilerController.res.inst_54_a_0 - BoilerController.res.inst_53_a_0 - BoilerController.res.inst_52_a_0 - BoilerController.res.inst_51_a_0) - (__node_trans_PumpsDecision_0 - BoilerController.impl.usr.q_a_1 - BoilerController.impl.usr.v_a_1 - BoilerController.res.nondet_15 - BoilerController.res.abs_63_a_1 - BoilerController.res.inst_50_a_1 - BoilerController.impl.usr.q_a_0 - BoilerController.impl.usr.v_a_0 - BoilerController.res.abs_63_a_0 - BoilerController.res.inst_50_a_0) - (__node_trans_Dynamics_0 - BoilerController.res.abs_48_a_1 - BoilerController.res.abs_49_a_1 - BoilerController.res.abs_50_a_1 - BoilerController.res.abs_51_a_1 - BoilerController.res.abs_52_a_1 - BoilerController.res.abs_53_a_1 - BoilerController.res.abs_54_a_1 - BoilerController.res.abs_55_a_1 - BoilerController.res.abs_56_a_1 - BoilerController.res.abs_57_a_1 - BoilerController.res.abs_58_a_1 - BoilerController.res.abs_59_a_1 - BoilerController.res.abs_60_a_1 - BoilerController.res.abs_61_a_1 - BoilerController.res.abs_62_a_1 - BoilerController.res.inst_49_a_1 - BoilerController.res.inst_48_a_1 - BoilerController.res.inst_47_a_1 - BoilerController.res.inst_46_a_1 - BoilerController.res.inst_45_a_1 - BoilerController.res.inst_44_a_1 - BoilerController.res.inst_43_a_1 - BoilerController.res.abs_48_a_0 - BoilerController.res.abs_49_a_0 - BoilerController.res.abs_50_a_0 - BoilerController.res.abs_51_a_0 - BoilerController.res.abs_52_a_0 - BoilerController.res.abs_53_a_0 - BoilerController.res.abs_54_a_0 - BoilerController.res.abs_55_a_0 - BoilerController.res.abs_56_a_0 - BoilerController.res.abs_57_a_0 - BoilerController.res.abs_58_a_0 - BoilerController.res.abs_59_a_0 - BoilerController.res.abs_60_a_0 - BoilerController.res.abs_61_a_0 - BoilerController.res.abs_62_a_0 - BoilerController.res.inst_49_a_0 - BoilerController.res.inst_48_a_0 - BoilerController.res.inst_47_a_0 - BoilerController.res.inst_46_a_0 - BoilerController.res.inst_45_a_0 - BoilerController.res.inst_44_a_0 - BoilerController.res.inst_43_a_0) - (__node_trans_Valve_0 - BoilerController.impl.usr.op_mode_a_1 - BoilerController.impl.usr.q_a_1 - BoilerController.res.abs_69_a_1 - BoilerController.res.abs_70_a_1 - BoilerController.res.inst_42_a_1 - BoilerController.impl.usr.op_mode_a_0 - BoilerController.impl.usr.q_a_0 - BoilerController.res.abs_69_a_0 - BoilerController.res.abs_70_a_0 - BoilerController.res.inst_42_a_0) - (__node_trans_PumpDefect_0 - BoilerController.res.abs_15_a_1 - BoilerController.res.abs_16_a_1 - BoilerController.res.abs_17_a_1 - BoilerController.res.abs_18_a_1 - BoilerController.res.abs_19_a_1 - BoilerController.res.abs_20_a_1 - BoilerController.res.abs_21_a_1 - BoilerController.res.nondet_7 - BoilerController.res.nondet_6 - BoilerController.res.abs_22_a_1 - BoilerController.res.abs_23_a_1 - BoilerController.res.abs_24_a_1 - BoilerController.res.inst_41_a_1 - BoilerController.res.inst_40_a_1 - BoilerController.res.inst_39_a_1 - BoilerController.res.inst_38_a_1 - BoilerController.res.inst_37_a_1 - BoilerController.res.inst_36_a_1 - BoilerController.res.inst_35_a_1 - BoilerController.res.inst_34_a_1 - BoilerController.res.inst_33_a_1 - BoilerController.res.inst_32_a_1 - BoilerController.res.inst_31_a_1 - BoilerController.res.inst_30_a_1 - BoilerController.res.inst_29_a_1 - BoilerController.res.abs_15_a_0 - BoilerController.res.abs_16_a_0 - BoilerController.res.abs_17_a_0 - BoilerController.res.abs_18_a_0 - BoilerController.res.abs_19_a_0 - BoilerController.res.abs_20_a_0 - BoilerController.res.abs_21_a_0 - BoilerController.res.abs_22_a_0 - BoilerController.res.abs_23_a_0 - BoilerController.res.abs_24_a_0 - BoilerController.res.inst_41_a_0 - BoilerController.res.inst_40_a_0 - BoilerController.res.inst_39_a_0 - BoilerController.res.inst_38_a_0 - BoilerController.res.inst_37_a_0 - BoilerController.res.inst_36_a_0 - BoilerController.res.inst_35_a_0 - BoilerController.res.inst_34_a_0 - BoilerController.res.inst_33_a_0 - BoilerController.res.inst_32_a_0 - BoilerController.res.inst_31_a_0 - BoilerController.res.inst_30_a_0 - BoilerController.res.inst_29_a_0) - (__node_trans_PumpDefect_0 - BoilerController.res.abs_26_a_1 - BoilerController.res.abs_27_a_1 - BoilerController.res.abs_28_a_1 - BoilerController.res.abs_29_a_1 - BoilerController.res.abs_30_a_1 - BoilerController.res.abs_31_a_1 - BoilerController.res.abs_32_a_1 - BoilerController.res.nondet_10 - BoilerController.res.nondet_9 - BoilerController.res.abs_33_a_1 - BoilerController.res.abs_34_a_1 - BoilerController.res.abs_35_a_1 - BoilerController.res.inst_28_a_1 - BoilerController.res.inst_27_a_1 - BoilerController.res.inst_26_a_1 - BoilerController.res.inst_25_a_1 - BoilerController.res.inst_24_a_1 - BoilerController.res.inst_23_a_1 - BoilerController.res.inst_22_a_1 - BoilerController.res.inst_21_a_1 - BoilerController.res.inst_20_a_1 - BoilerController.res.inst_19_a_1 - BoilerController.res.inst_18_a_1 - BoilerController.res.inst_17_a_1 - BoilerController.res.inst_16_a_1 - BoilerController.res.abs_26_a_0 - BoilerController.res.abs_27_a_0 - BoilerController.res.abs_28_a_0 - BoilerController.res.abs_29_a_0 - BoilerController.res.abs_30_a_0 - BoilerController.res.abs_31_a_0 - BoilerController.res.abs_32_a_0 - BoilerController.res.abs_33_a_0 - BoilerController.res.abs_34_a_0 - BoilerController.res.abs_35_a_0 - BoilerController.res.inst_28_a_0 - BoilerController.res.inst_27_a_0 - BoilerController.res.inst_26_a_0 - BoilerController.res.inst_25_a_0 - BoilerController.res.inst_24_a_0 - BoilerController.res.inst_23_a_0 - BoilerController.res.inst_22_a_0 - BoilerController.res.inst_21_a_0 - BoilerController.res.inst_20_a_0 - BoilerController.res.inst_19_a_0 - BoilerController.res.inst_18_a_0 - BoilerController.res.inst_17_a_0 - BoilerController.res.inst_16_a_0) - (__node_trans_PumpDefect_0 - BoilerController.res.abs_37_a_1 - BoilerController.res.abs_38_a_1 - BoilerController.res.abs_39_a_1 - BoilerController.res.abs_40_a_1 - BoilerController.res.abs_41_a_1 - BoilerController.res.abs_42_a_1 - BoilerController.res.abs_43_a_1 - BoilerController.res.nondet_13 - BoilerController.res.nondet_12 - BoilerController.res.abs_44_a_1 - BoilerController.res.abs_45_a_1 - BoilerController.res.abs_46_a_1 - BoilerController.res.inst_15_a_1 - BoilerController.res.inst_14_a_1 - BoilerController.res.inst_13_a_1 - BoilerController.res.inst_12_a_1 - BoilerController.res.inst_11_a_1 - BoilerController.res.inst_10_a_1 - BoilerController.res.inst_9_a_1 - BoilerController.res.inst_8_a_1 - BoilerController.res.inst_7_a_1 - BoilerController.res.inst_6_a_1 - BoilerController.res.inst_5_a_1 - BoilerController.res.inst_4_a_1 - BoilerController.res.inst_3_a_1 - BoilerController.res.abs_37_a_0 - BoilerController.res.abs_38_a_0 - BoilerController.res.abs_39_a_0 - BoilerController.res.abs_40_a_0 - BoilerController.res.abs_41_a_0 - BoilerController.res.abs_42_a_0 - BoilerController.res.abs_43_a_0 - BoilerController.res.abs_44_a_0 - BoilerController.res.abs_45_a_0 - BoilerController.res.abs_46_a_0 - BoilerController.res.inst_15_a_0 - BoilerController.res.inst_14_a_0 - BoilerController.res.inst_13_a_0 - BoilerController.res.inst_12_a_0 - BoilerController.res.inst_11_a_0 - BoilerController.res.inst_10_a_0 - BoilerController.res.inst_9_a_0 - BoilerController.res.inst_8_a_0 - BoilerController.res.inst_7_a_0 - BoilerController.res.inst_6_a_0 - BoilerController.res.inst_5_a_0 - BoilerController.res.inst_4_a_0 - BoilerController.res.inst_3_a_0) - (__node_trans_PumpsOutput_0 - BoilerController.impl.usr.op_mode_a_1 - BoilerController.res.abs_3_a_1 - BoilerController.res.abs_14_a_1 - BoilerController.res.abs_25_a_1 - BoilerController.res.abs_36_a_1 - BoilerController.impl.usr.pump_defect_0_a_1 - BoilerController.impl.usr.pump_defect_1_a_1 - BoilerController.impl.usr.pump_defect_2_a_1 - BoilerController.impl.usr.pump_defect_3_a_1 - BoilerController.impl.usr.pump_control_defect_0_a_1 - BoilerController.impl.usr.pump_control_defect_1_a_1 - BoilerController.impl.usr.pump_control_defect_2_a_1 - BoilerController.impl.usr.pump_control_defect_3_a_1 - BoilerController.res.abs_5_a_1 - BoilerController.res.abs_16_a_1 - BoilerController.res.abs_27_a_1 - BoilerController.res.abs_38_a_1 - BoilerController.res.abs_7_a_1 - BoilerController.res.abs_18_a_1 - BoilerController.res.abs_29_a_1 - BoilerController.res.abs_40_a_1 - BoilerController.res.nondet_32 - BoilerController.res.nondet_31 - BoilerController.res.nondet_30 - BoilerController.res.nondet_29 - BoilerController.res.nondet_28 - BoilerController.res.nondet_27 - BoilerController.res.nondet_26 - BoilerController.res.nondet_25 - BoilerController.res.abs_73_a_1 - BoilerController.res.abs_74_a_1 - BoilerController.res.abs_75_a_1 - BoilerController.res.abs_76_a_1 - BoilerController.res.abs_77_a_1 - BoilerController.res.abs_78_a_1 - BoilerController.res.abs_79_a_1 - BoilerController.res.abs_80_a_1 - BoilerController.res.abs_81_a_1 - BoilerController.res.abs_82_a_1 - BoilerController.res.abs_83_a_1 - BoilerController.res.abs_84_a_1 - BoilerController.res.abs_85_a_1 - BoilerController.res.abs_86_a_1 - BoilerController.res.abs_87_a_1 - BoilerController.res.abs_88_a_1 - BoilerController.res.abs_89_a_1 - BoilerController.res.abs_90_a_1 - BoilerController.res.abs_91_a_1 - BoilerController.res.abs_92_a_1 - BoilerController.res.abs_93_a_1 - BoilerController.res.abs_94_a_1 - BoilerController.res.abs_95_a_1 - BoilerController.res.abs_96_a_1 - BoilerController.res.inst_2_a_1 - BoilerController.impl.usr.op_mode_a_0 - BoilerController.res.abs_3_a_0 - BoilerController.res.abs_14_a_0 - BoilerController.res.abs_25_a_0 - BoilerController.res.abs_36_a_0 - BoilerController.impl.usr.pump_defect_0_a_0 - BoilerController.impl.usr.pump_defect_1_a_0 - BoilerController.impl.usr.pump_defect_2_a_0 - BoilerController.impl.usr.pump_defect_3_a_0 - BoilerController.impl.usr.pump_control_defect_0_a_0 - BoilerController.impl.usr.pump_control_defect_1_a_0 - BoilerController.impl.usr.pump_control_defect_2_a_0 - BoilerController.impl.usr.pump_control_defect_3_a_0 - BoilerController.res.abs_5_a_0 - BoilerController.res.abs_16_a_0 - BoilerController.res.abs_27_a_0 - BoilerController.res.abs_38_a_0 - BoilerController.res.abs_7_a_0 - BoilerController.res.abs_18_a_0 - BoilerController.res.abs_29_a_0 - BoilerController.res.abs_40_a_0 - BoilerController.res.abs_73_a_0 - BoilerController.res.abs_74_a_0 - BoilerController.res.abs_75_a_0 - BoilerController.res.abs_76_a_0 - BoilerController.res.abs_77_a_0 - BoilerController.res.abs_78_a_0 - BoilerController.res.abs_79_a_0 - BoilerController.res.abs_80_a_0 - BoilerController.res.abs_81_a_0 - BoilerController.res.abs_82_a_0 - BoilerController.res.abs_83_a_0 - BoilerController.res.abs_84_a_0 - BoilerController.res.abs_85_a_0 - BoilerController.res.abs_86_a_0 - BoilerController.res.abs_87_a_0 - BoilerController.res.abs_88_a_0 - BoilerController.res.abs_89_a_0 - BoilerController.res.abs_90_a_0 - BoilerController.res.abs_91_a_0 - BoilerController.res.abs_92_a_0 - BoilerController.res.abs_93_a_0 - BoilerController.res.abs_94_a_0 - BoilerController.res.abs_95_a_0 - BoilerController.res.abs_96_a_0 - BoilerController.res.inst_2_a_0) - (__node_trans_LevelOutput_0 - BoilerController.impl.usr.op_mode_a_1 - BoilerController.res.abs_51_a_1 - BoilerController.usr.level_repaired_a_1 - BoilerController.res.abs_97_a_1 - BoilerController.res.abs_98_a_1 - BoilerController.res.inst_1_a_1 - BoilerController.impl.usr.op_mode_a_0 - BoilerController.res.abs_51_a_0 - BoilerController.usr.level_repaired_a_0 - BoilerController.res.abs_97_a_0 - BoilerController.res.abs_98_a_0 - BoilerController.res.inst_1_a_0) - (__node_trans_SteamOutput_0 - BoilerController.impl.usr.op_mode_a_1 - BoilerController.res.abs_52_a_1 - BoilerController.usr.steam_repaired_a_1 - BoilerController.res.abs_99_a_1 - BoilerController.res.abs_100_a_1 - BoilerController.res.inst_0_a_1 - BoilerController.impl.usr.op_mode_a_0 - BoilerController.res.abs_52_a_0 - BoilerController.usr.steam_repaired_a_0 - BoilerController.res.abs_99_a_0 - BoilerController.res.abs_100_a_0 - BoilerController.res.inst_0_a_0) - (<= - 1 - BoilerController.impl.usr.op_mode_a_1 - 6) - (<= - 1 - BoilerController.res.abs_68_a_1 - 6) - (<= - 0 - X9 - 2) - (<= - 0 - BoilerController.res.abs_1_a_1 - 2) - (<= - 0 - X10 - 2) - (<= - 0 - BoilerController.res.abs_2_a_1 - 2) - (<= - 0 - X19 - 2) - (<= - 0 - BoilerController.res.abs_11_a_1 - 2) - (<= - 0 - X17 - 2) - (<= - 0 - BoilerController.res.abs_22_a_1 - 2) - (<= - 0 - X16 - 2) - (<= - 0 - BoilerController.res.abs_33_a_1 - 2) - (<= - 0 - X15 - 2) - (<= - 0 - BoilerController.res.abs_44_a_1 - 2) - (<= - 0 - X18 - 2) - (<= - 0 - BoilerController.res.abs_12_a_1 - 2) - (<= - 0 - X14 - 2) - (<= - 0 - BoilerController.res.abs_23_a_1 - 2) - (<= - 0 - X13 - 2) - (<= - 0 - BoilerController.res.abs_34_a_1 - 2) - (<= - 0 - X12 - 2) - (<= - 0 - BoilerController.res.abs_45_a_1 - 2) - (not - BoilerController.res.init_flag_a_1)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.stop_a_0 Bool) - (top.usr.steam_boiler_waiting_a_0 Bool) - (top.usr.physical_units_ready_a_0 Bool) - (top.usr.level_a_0 Int) - (top.usr.steam_a_0 Int) - (top.usr.pump_state_0_a_0 Int) - (top.usr.pump_state_1_a_0 Int) - (top.usr.pump_state_2_a_0 Int) - (top.usr.pump_state_3_a_0 Int) - (top.usr.pump_control_state_0_a_0 Bool) - (top.usr.pump_control_state_1_a_0 Bool) - (top.usr.pump_control_state_2_a_0 Bool) - (top.usr.pump_control_state_3_a_0 Bool) - (top.usr.pump_repaired_0_a_0 Bool) - (top.usr.pump_repaired_1_a_0 Bool) - (top.usr.pump_repaired_2_a_0 Bool) - (top.usr.pump_repaired_3_a_0 Bool) - (top.usr.pump_control_repaired_0_a_0 Bool) - (top.usr.pump_control_repaired_1_a_0 Bool) - (top.usr.pump_control_repaired_2_a_0 Bool) - (top.usr.pump_control_repaired_3_a_0 Bool) - (top.usr.level_repaired_a_0 Bool) - (top.usr.steam_repaired_a_0 Bool) - (top.usr.pump_failure_acknowledgement_0_a_0 Bool) - (top.usr.pump_failure_acknowledgement_1_a_0 Bool) - (top.usr.pump_failure_acknowledgement_2_a_0 Bool) - (top.usr.pump_failure_acknowledgement_3_a_0 Bool) - (top.usr.pump_control_failure_acknowledgement_0_a_0 Bool) - (top.usr.pump_control_failure_acknowledgement_1_a_0 Bool) - (top.usr.pump_control_failure_acknowledgement_2_a_0 Bool) - (top.usr.pump_control_failure_acknowledgement_3_a_0 Bool) - (top.usr.level_failure_acknowledgement_a_0 Bool) - (top.usr.steam_failure_acknowledgement_a_0 Bool) - (top.res.nondet_32 Int) - (top.res.nondet_31 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.abs_12_a_0 Bool) - (top.res.abs_13_a_0 Bool) - (top.res.abs_14_a_0 Bool) - (top.res.abs_15_a_0 Bool) - (top.res.abs_16_a_0 Bool) - (top.res.abs_17_a_0 Bool) - (top.res.abs_18_a_0 Bool) - (top.res.abs_19_a_0 Bool) - (top.res.abs_20_a_0 Bool) - (top.res.abs_21_a_0 Bool) - (top.res.abs_22_a_0 Bool) - (top.res.abs_23_a_0 Bool) - (top.res.abs_24_a_0 Bool) - (top.res.abs_25_a_0 Bool) - (top.res.abs_26_a_0 Bool) - (top.res.abs_27_a_0 Bool) - (top.res.abs_28_a_0 Bool) - (top.res.abs_29_a_0 Bool) - (top.res.abs_30_a_0 Bool) - (top.res.abs_31_a_0 Bool) - (top.res.abs_32_a_0 Bool) - (top.res.abs_33_a_0 Bool) - (top.res.abs_34_a_0 Bool) - (top.res.abs_35_a_0 Bool) - (top.res.abs_36_a_0 Bool) - (top.res.abs_37_a_0 Bool) - (top.res.abs_38_a_0 Bool) - (top.res.abs_39_a_0 Bool) - (top.res.abs_40_a_0 Bool) - (top.res.inst_297_a_0 Bool) - (top.res.inst_296_a_0 Bool) - (top.res.inst_295_a_0 Int) - (top.res.inst_294_a_0 Int) - (top.res.inst_293_a_0 Int) - (top.res.inst_292_a_0 Int) - (top.res.inst_291_a_0 Int) - (top.res.inst_290_a_0 Int) - (top.res.inst_289_a_0 Int) - (top.res.inst_288_a_0 Int) - (top.res.inst_287_a_0 Int) - (top.res.inst_286_a_0 Int) - (top.res.inst_285_a_0 Int) - (top.res.inst_284_a_0 Int) - (top.res.inst_283_a_0 Int) - (top.res.inst_282_a_0 Int) - (top.res.inst_281_a_0 Int) - (top.res.inst_280_a_0 Int) - (top.res.inst_279_a_0 Int) - (top.res.inst_278_a_0 Bool) - (top.res.inst_277_a_0 Int) - (top.res.inst_276_a_0 Int) - (top.res.inst_275_a_0 Int) - (top.res.inst_274_a_0 Bool) - (top.res.inst_273_a_0 Bool) - (top.res.inst_272_a_0 Bool) - (top.res.inst_271_a_0 Bool) - (top.res.inst_270_a_0 Int) - (top.res.inst_269_a_0 Int) - (top.res.inst_268_a_0 Bool) - (top.res.inst_267_a_0 Int) - (top.res.inst_266_a_0 Int) - (top.res.inst_265_a_0 Bool) - (top.res.inst_264_a_0 Int) - (top.res.inst_263_a_0 Bool) - (top.res.inst_262_a_0 Bool) - (top.res.inst_261_a_0 Bool) - (top.res.inst_260_a_0 Bool) - (top.res.inst_259_a_0 Int) - (top.res.inst_258_a_0 Int) - (top.res.inst_257_a_0 Bool) - (top.res.inst_256_a_0 Int) - (top.res.inst_255_a_0 Int) - (top.res.inst_254_a_0 Bool) - (top.res.inst_253_a_0 Int) - (top.res.inst_252_a_0 Bool) - (top.res.inst_251_a_0 Bool) - (top.res.inst_250_a_0 Bool) - (top.res.inst_249_a_0 Bool) - (top.res.inst_248_a_0 Int) - (top.res.inst_247_a_0 Int) - (top.res.inst_246_a_0 Bool) - (top.res.inst_245_a_0 Int) - (top.res.inst_244_a_0 Int) - (top.res.inst_243_a_0 Bool) - (top.res.inst_242_a_0 Int) - (top.res.inst_241_a_0 Bool) - (top.res.inst_240_a_0 Bool) - (top.res.inst_239_a_0 Bool) - (top.res.inst_238_a_0 Bool) - (top.res.inst_237_a_0 Int) - (top.res.inst_236_a_0 Int) - (top.res.inst_235_a_0 Bool) - (top.res.inst_234_a_0 Int) - (top.res.inst_233_a_0 Int) - (top.res.inst_232_a_0 Bool) - (top.res.inst_231_a_0 Int) - (top.res.inst_230_a_0 Int) - (top.res.inst_229_a_0 Int) - (top.res.inst_228_a_0 Int) - (top.res.inst_227_a_0 Int) - (top.res.inst_226_a_0 Bool) - (top.res.inst_225_a_0 Bool) - (top.res.inst_224_a_0 Bool) - (top.res.inst_223_a_0 Bool) - (top.res.inst_222_a_0 Int) - (top.res.inst_221_a_0 Int) - (top.res.inst_220_a_0 Int) - (top.res.inst_219_a_0 Int) - (top.res.inst_218_a_0 Int) - (top.res.inst_217_a_0 Int) - (top.res.inst_216_a_0 Int) - (top.res.inst_215_a_0 Int) - (top.res.inst_214_a_0 Int) - (top.res.inst_213_a_0 Int) - (top.res.inst_212_a_0 Int) - (top.res.inst_211_a_0 Int) - (top.res.inst_210_a_0 Bool) - (top.res.inst_209_a_0 Int) - (top.res.inst_208_a_0 Bool) - (top.res.inst_207_a_0 Int) - (top.res.inst_206_a_0 Bool) - (top.res.inst_205_a_0 Bool) - (top.res.inst_204_a_0 Bool) - (top.res.inst_203_a_0 Bool) - (top.res.inst_202_a_0 Bool) - (top.res.inst_201_a_0 Bool) - (top.res.inst_200_a_0 Bool) - (top.res.inst_199_a_0 Bool) - (top.res.inst_198_a_0 Bool) - (top.res.inst_197_a_0 Bool) - (top.res.inst_196_a_0 Bool) - (top.res.inst_195_a_0 Bool) - (top.res.inst_194_a_0 Bool) - (top.res.inst_193_a_0 Bool) - (top.res.inst_192_a_0 Bool) - (top.res.inst_191_a_0 Bool) - (top.res.inst_190_a_0 Bool) - (top.res.inst_189_a_0 Bool) - (top.res.inst_188_a_0 Bool) - (top.res.inst_187_a_0 Bool) - (top.res.inst_186_a_0 Bool) - (top.res.inst_185_a_0 Bool) - (top.res.inst_184_a_0 Bool) - (top.res.inst_183_a_0 Bool) - (top.res.inst_182_a_0 Bool) - (top.res.inst_181_a_0 Bool) - (top.res.inst_180_a_0 Bool) - (top.res.inst_179_a_0 Bool) - (top.res.inst_178_a_0 Bool) - (top.res.inst_177_a_0 Bool) - (top.res.inst_176_a_0 Bool) - (top.res.inst_175_a_0 Bool) - (top.res.inst_174_a_0 Int) - (top.res.inst_173_a_0 Bool) - (top.res.inst_172_a_0 Bool) - (top.res.inst_171_a_0 Bool) - (top.res.inst_170_a_0 Bool) - (top.res.inst_169_a_0 Bool) - (top.res.inst_168_a_0 Bool) - (top.res.inst_167_a_0 Bool) - (top.res.inst_166_a_0 Bool) - (top.res.inst_165_a_0 Bool) - (top.res.inst_164_a_0 Bool) - (top.res.inst_163_a_0 Bool) - (top.res.inst_162_a_0 Bool) - (top.res.inst_161_a_0 Bool) - (top.res.inst_160_a_0 Bool) - (top.res.inst_159_a_0 Bool) - (top.res.inst_158_a_0 Bool) - (top.res.inst_157_a_0 Bool) - (top.res.inst_156_a_0 Bool) - (top.res.inst_155_a_0 Bool) - (top.res.inst_154_a_0 Bool) - (top.res.inst_153_a_0 Bool) - (top.res.inst_152_a_0 Bool) - (top.res.inst_151_a_0 Bool) - (top.res.inst_150_a_0 Bool) - (top.res.inst_149_a_0 Bool) - (top.res.inst_148_a_0 Bool) - (top.res.inst_147_a_0 Bool) - (top.res.inst_146_a_0 Bool) - (top.res.inst_145_a_0 Bool) - (top.res.inst_144_a_0 Bool) - (top.res.inst_143_a_0 Bool) - (top.res.inst_142_a_0 Bool) - (top.res.inst_141_a_0 Bool) - (top.res.inst_140_a_0 Bool) - (top.res.inst_139_a_0 Bool) - (top.res.inst_138_a_0 Bool) - (top.res.inst_137_a_0 Bool) - (top.res.inst_136_a_0 Bool) - (top.res.inst_135_a_0 Bool) - (top.res.inst_134_a_0 Bool) - (top.res.inst_133_a_0 Bool) - (top.res.inst_132_a_0 Bool) - (top.res.inst_131_a_0 Bool) - (top.res.inst_130_a_0 Bool) - (top.res.inst_129_a_0 Bool) - (top.res.inst_128_a_0 Bool) - (top.res.inst_127_a_0 Bool) - (top.res.inst_126_a_0 Bool) - (top.res.inst_125_a_0 Bool) - (top.res.inst_124_a_0 Bool) - (top.res.inst_123_a_0 Bool) - (top.res.inst_122_a_0 Int) - (top.res.inst_121_a_0 Bool) - (top.res.inst_120_a_0 Bool) - (top.res.inst_119_a_0 Int) - (top.res.inst_118_a_0 Int) - (top.res.inst_117_a_0 Bool) - (top.res.inst_116_a_0 Bool) - (top.res.inst_115_a_0 Bool) - (top.res.inst_114_a_0 Bool) - (top.res.inst_113_a_0 Int) - (top.res.inst_112_a_0 Int) - (top.res.inst_111_a_0 Bool) - (top.res.inst_110_a_0 Bool) - (top.res.inst_109_a_0 Bool) - (top.res.inst_108_a_0 Bool) - (top.res.inst_107_a_0 Bool) - (top.res.inst_106_a_0 Bool) - (top.res.inst_105_a_0 Bool) - (top.res.inst_104_a_0 Bool) - (top.res.inst_103_a_0 Int) - (top.res.inst_102_a_0 Int) - (top.res.inst_101_a_0 Int) - (top.res.inst_100_a_0 Int) - (top.res.inst_99_a_0 Bool) - (top.res.inst_98_a_0 Bool) - (top.res.inst_97_a_0 Bool) - (top.res.inst_96_a_0 Bool) - (top.res.inst_95_a_0 Int) - (top.res.inst_94_a_0 Int) - (top.res.inst_93_a_0 Int) - (top.res.inst_92_a_0 Int) - (top.res.inst_91_a_0 Int) - (top.res.inst_90_a_0 Int) - (top.res.inst_89_a_0 Int) - (top.res.inst_88_a_0 Int) - (top.res.inst_87_a_0 Int) - (top.res.inst_86_a_0 Int) - (top.res.inst_85_a_0 Bool) - (top.res.inst_84_a_0 Bool) - (top.res.inst_83_a_0 Bool) - (top.res.inst_82_a_0 Bool) - (top.res.inst_81_a_0 Int) - (top.res.inst_80_a_0 Int) - (top.res.inst_79_a_0 Int) - (top.res.inst_78_a_0 Int) - (top.res.inst_77_a_0 Bool) - (top.res.inst_76_a_0 Int) - (top.res.inst_75_a_0 Bool) - (top.res.inst_74_a_0 Int) - (top.res.inst_73_a_0 Bool) - (top.res.inst_72_a_0 Int) - (top.res.inst_71_a_0 Bool) - (top.res.inst_70_a_0 Int) - (top.res.inst_69_a_0 Bool) - (top.res.inst_68_a_0 Int) - (top.res.inst_67_a_0 Bool) - (top.res.inst_66_a_0 Int) - (top.res.inst_65_a_0 Bool) - (top.res.inst_64_a_0 Int) - (top.res.inst_63_a_0 Bool) - (top.res.inst_62_a_0 Int) - (top.res.inst_61_a_0 Bool) - (top.res.inst_60_a_0 Bool) - (top.res.inst_59_a_0 Bool) - (top.res.inst_58_a_0 Bool) - (top.res.inst_57_a_0 Bool) - (top.res.inst_56_a_0 Bool) - (top.res.inst_55_a_0 Bool) - (top.res.inst_54_a_0 Bool) - (top.res.inst_53_a_0 Bool) - (top.res.inst_52_a_0 Bool) - (top.res.inst_51_a_0 Bool) - (top.res.inst_50_a_0 Bool) - (top.res.inst_49_a_0 Int) - (top.res.inst_48_a_0 Bool) - (top.res.inst_47_a_0 Bool) - (top.res.inst_46_a_0 Bool) - (top.res.inst_45_a_0 Bool) - (top.res.inst_44_a_0 Bool) - (top.res.inst_43_a_0 Bool) - (top.res.inst_42_a_0 Bool) - (top.res.inst_41_a_0 Bool) - (top.res.inst_40_a_0 Bool) - (top.res.inst_39_a_0 Bool) - (top.res.inst_38_a_0 Bool) - (top.res.inst_37_a_0 Int) - (top.res.inst_36_a_0 Int) - (top.res.inst_35_a_0 Int) - (top.res.inst_34_a_0 Int) - (top.res.inst_33_a_0 Bool) - (top.res.inst_32_a_0 Bool) - (top.res.inst_31_a_0 Bool) - (top.res.inst_30_a_0 Bool) - (top.res.inst_29_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Int) - (top.res.inst_23_a_0 Int) - (top.res.inst_22_a_0 Int) - (top.res.inst_21_a_0 Int) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Int) - (top.res.inst_10_a_0 Int) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Int) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_18_a_0)) - (and - (= top.res.abs_39_a_0 (not X1)) - (let - ((X2 Bool top.res.abs_17_a_0)) - (and - (= top.res.abs_38_a_0 (not X2)) - (let - ((X3 Bool top.res.abs_16_a_0)) - (and - (= top.res.abs_37_a_0 (not X3)) - (let - ((X4 Bool top.res.abs_15_a_0)) - (and - (= top.res.abs_36_a_0 (not X4)) - (let - ((X5 Bool top.res.abs_14_a_0)) - (and - (= top.res.abs_34_a_0 (not X5)) - (let - ((X6 Bool top.res.abs_13_a_0)) - (and - (= top.res.abs_33_a_0 (not X6)) - (let - ((X7 Bool top.res.abs_12_a_0)) - (and - (= top.res.abs_32_a_0 (not X7)) - (let - ((X8 Bool top.res.abs_11_a_0)) - (and - (= top.res.abs_31_a_0 (not X8)) - (let - ((X9 Bool top.res.abs_20_a_0)) - (let - ((X10 Bool top.res.abs_19_a_0)) - (let - ((X11 Bool top.res.abs_2_a_0)) - (let - ((X12 Int top.res.abs_1_a_0)) - (let - ((X13 Bool (=> (= X12 3) (not X11)))) - (let - ((X14 - Bool (=> - (= X12 3) - (and - (and - (and (not X10) (not X9)) - top.res.abs_35_a_0) - top.res.abs_40_a_0)))) - (let - ((X15 - Bool (or - (or - (or - (or (or (= X12 1) (= X12 2)) (= X12 3)) - (= X12 4)) - (= X12 5)) - (= X12 6)))) - (and - (= top.usr.OK_a_0 (and (and X15 X14) X13)) - (__node_init_BoilerController_0 - top.usr.stop_a_0 - top.usr.steam_boiler_waiting_a_0 - top.usr.physical_units_ready_a_0 - top.usr.level_a_0 - top.usr.steam_a_0 - top.usr.pump_state_0_a_0 - top.usr.pump_state_1_a_0 - top.usr.pump_state_2_a_0 - top.usr.pump_state_3_a_0 - top.usr.pump_control_state_0_a_0 - top.usr.pump_control_state_1_a_0 - top.usr.pump_control_state_2_a_0 - top.usr.pump_control_state_3_a_0 - top.usr.pump_repaired_0_a_0 - top.usr.pump_repaired_1_a_0 - top.usr.pump_repaired_2_a_0 - top.usr.pump_repaired_3_a_0 - top.usr.pump_control_repaired_0_a_0 - top.usr.pump_control_repaired_1_a_0 - top.usr.pump_control_repaired_2_a_0 - top.usr.pump_control_repaired_3_a_0 - top.usr.level_repaired_a_0 - top.usr.steam_repaired_a_0 - top.usr.pump_failure_acknowledgement_0_a_0 - top.usr.pump_failure_acknowledgement_1_a_0 - top.usr.pump_failure_acknowledgement_2_a_0 - top.usr.pump_failure_acknowledgement_3_a_0 - top.usr.pump_control_failure_acknowledgement_0_a_0 - top.usr.pump_control_failure_acknowledgement_1_a_0 - top.usr.pump_control_failure_acknowledgement_2_a_0 - top.usr.pump_control_failure_acknowledgement_3_a_0 - top.usr.level_failure_acknowledgement_a_0 - top.usr.steam_failure_acknowledgement_a_0 - top.res.nondet_32 - top.res.nondet_31 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.abs_13_a_0 - top.res.abs_14_a_0 - top.res.abs_15_a_0 - top.res.abs_16_a_0 - top.res.abs_17_a_0 - top.res.abs_18_a_0 - top.res.abs_19_a_0 - top.res.abs_20_a_0 - top.res.abs_21_a_0 - top.res.abs_22_a_0 - top.res.abs_23_a_0 - top.res.abs_24_a_0 - top.res.abs_25_a_0 - top.res.abs_26_a_0 - top.res.abs_27_a_0 - top.res.abs_28_a_0 - top.res.abs_29_a_0 - top.res.abs_30_a_0 - top.res.inst_297_a_0 - top.res.inst_296_a_0 - top.res.inst_295_a_0 - top.res.inst_294_a_0 - top.res.inst_293_a_0 - top.res.inst_292_a_0 - top.res.inst_291_a_0 - top.res.inst_290_a_0 - top.res.inst_289_a_0 - top.res.inst_288_a_0 - top.res.inst_287_a_0 - top.res.inst_286_a_0 - top.res.inst_285_a_0 - top.res.inst_284_a_0 - top.res.inst_283_a_0 - top.res.inst_282_a_0 - top.res.inst_281_a_0 - top.res.inst_280_a_0 - top.res.inst_279_a_0 - top.res.inst_278_a_0 - top.res.inst_277_a_0 - top.res.inst_276_a_0 - top.res.inst_275_a_0 - top.res.inst_274_a_0 - top.res.inst_273_a_0 - top.res.inst_272_a_0 - top.res.inst_271_a_0 - top.res.inst_270_a_0 - top.res.inst_269_a_0 - top.res.inst_268_a_0 - top.res.inst_267_a_0 - top.res.inst_266_a_0 - top.res.inst_265_a_0 - top.res.inst_264_a_0 - top.res.inst_263_a_0 - top.res.inst_262_a_0 - top.res.inst_261_a_0 - top.res.inst_260_a_0 - top.res.inst_259_a_0 - top.res.inst_258_a_0 - top.res.inst_257_a_0 - top.res.inst_256_a_0 - top.res.inst_255_a_0 - top.res.inst_254_a_0 - top.res.inst_253_a_0 - top.res.inst_252_a_0 - top.res.inst_251_a_0 - top.res.inst_250_a_0 - top.res.inst_249_a_0 - top.res.inst_248_a_0 - top.res.inst_247_a_0 - top.res.inst_246_a_0 - top.res.inst_245_a_0 - top.res.inst_244_a_0 - top.res.inst_243_a_0 - top.res.inst_242_a_0 - top.res.inst_241_a_0 - top.res.inst_240_a_0 - top.res.inst_239_a_0 - top.res.inst_238_a_0 - top.res.inst_237_a_0 - top.res.inst_236_a_0 - top.res.inst_235_a_0 - top.res.inst_234_a_0 - top.res.inst_233_a_0 - top.res.inst_232_a_0 - top.res.inst_231_a_0 - top.res.inst_230_a_0 - top.res.inst_229_a_0 - top.res.inst_228_a_0 - top.res.inst_227_a_0 - top.res.inst_226_a_0 - top.res.inst_225_a_0 - top.res.inst_224_a_0 - top.res.inst_223_a_0 - top.res.inst_222_a_0 - top.res.inst_221_a_0 - top.res.inst_220_a_0 - top.res.inst_219_a_0 - top.res.inst_218_a_0 - top.res.inst_217_a_0 - top.res.inst_216_a_0 - top.res.inst_215_a_0 - top.res.inst_214_a_0 - top.res.inst_213_a_0 - top.res.inst_212_a_0 - top.res.inst_211_a_0 - top.res.inst_210_a_0 - top.res.inst_209_a_0 - top.res.inst_208_a_0 - top.res.inst_207_a_0 - top.res.inst_206_a_0 - top.res.inst_205_a_0 - top.res.inst_204_a_0 - top.res.inst_203_a_0 - top.res.inst_202_a_0 - top.res.inst_201_a_0 - top.res.inst_200_a_0 - top.res.inst_199_a_0 - top.res.inst_198_a_0 - top.res.inst_197_a_0 - top.res.inst_196_a_0 - top.res.inst_195_a_0 - top.res.inst_194_a_0 - top.res.inst_193_a_0 - top.res.inst_192_a_0 - top.res.inst_191_a_0 - top.res.inst_190_a_0 - top.res.inst_189_a_0 - top.res.inst_188_a_0 - top.res.inst_187_a_0 - top.res.inst_186_a_0 - top.res.inst_185_a_0 - top.res.inst_184_a_0 - top.res.inst_183_a_0 - top.res.inst_182_a_0 - top.res.inst_181_a_0 - top.res.inst_180_a_0 - top.res.inst_179_a_0 - top.res.inst_178_a_0 - top.res.inst_177_a_0 - top.res.inst_176_a_0 - top.res.inst_175_a_0 - top.res.inst_174_a_0 - top.res.inst_173_a_0 - top.res.inst_172_a_0 - top.res.inst_171_a_0 - top.res.inst_170_a_0 - top.res.inst_169_a_0 - top.res.inst_168_a_0 - top.res.inst_167_a_0 - top.res.inst_166_a_0 - top.res.inst_165_a_0 - top.res.inst_164_a_0 - top.res.inst_163_a_0 - top.res.inst_162_a_0 - top.res.inst_161_a_0 - top.res.inst_160_a_0 - top.res.inst_159_a_0 - top.res.inst_158_a_0 - top.res.inst_157_a_0 - top.res.inst_156_a_0 - top.res.inst_155_a_0 - top.res.inst_154_a_0 - top.res.inst_153_a_0 - top.res.inst_152_a_0 - top.res.inst_151_a_0 - top.res.inst_150_a_0 - top.res.inst_149_a_0 - top.res.inst_148_a_0 - top.res.inst_147_a_0 - top.res.inst_146_a_0 - top.res.inst_145_a_0 - top.res.inst_144_a_0 - top.res.inst_143_a_0 - top.res.inst_142_a_0 - top.res.inst_141_a_0 - top.res.inst_140_a_0 - top.res.inst_139_a_0 - top.res.inst_138_a_0 - top.res.inst_137_a_0 - top.res.inst_136_a_0 - top.res.inst_135_a_0 - top.res.inst_134_a_0 - top.res.inst_133_a_0 - top.res.inst_132_a_0 - top.res.inst_131_a_0 - top.res.inst_130_a_0 - top.res.inst_129_a_0 - top.res.inst_128_a_0 - top.res.inst_127_a_0 - top.res.inst_126_a_0 - top.res.inst_125_a_0 - top.res.inst_124_a_0 - top.res.inst_123_a_0 - top.res.inst_122_a_0 - top.res.inst_121_a_0 - top.res.inst_120_a_0 - top.res.inst_119_a_0 - top.res.inst_118_a_0 - top.res.inst_117_a_0 - top.res.inst_116_a_0 - top.res.inst_115_a_0 - top.res.inst_114_a_0 - top.res.inst_113_a_0 - top.res.inst_112_a_0 - top.res.inst_111_a_0 - top.res.inst_110_a_0 - top.res.inst_109_a_0 - top.res.inst_108_a_0 - top.res.inst_107_a_0 - top.res.inst_106_a_0 - top.res.inst_105_a_0 - top.res.inst_104_a_0 - top.res.inst_103_a_0 - top.res.inst_102_a_0 - top.res.inst_101_a_0 - top.res.inst_100_a_0 - top.res.inst_99_a_0 - top.res.inst_98_a_0 - top.res.inst_97_a_0 - top.res.inst_96_a_0 - top.res.inst_95_a_0 - top.res.inst_94_a_0 - top.res.inst_93_a_0 - top.res.inst_92_a_0 - top.res.inst_91_a_0 - top.res.inst_90_a_0 - top.res.inst_89_a_0 - top.res.inst_88_a_0 - top.res.inst_87_a_0 - top.res.inst_86_a_0 - top.res.inst_85_a_0 - top.res.inst_84_a_0 - top.res.inst_83_a_0 - top.res.inst_82_a_0 - top.res.inst_81_a_0 - top.res.inst_80_a_0 - top.res.inst_79_a_0 - top.res.inst_78_a_0 - top.res.inst_77_a_0 - top.res.inst_76_a_0 - top.res.inst_75_a_0 - top.res.inst_74_a_0 - top.res.inst_73_a_0 - top.res.inst_72_a_0 - top.res.inst_71_a_0 - top.res.inst_70_a_0 - top.res.inst_69_a_0 - top.res.inst_68_a_0 - top.res.inst_67_a_0 - top.res.inst_66_a_0 - top.res.inst_65_a_0 - top.res.inst_64_a_0 - top.res.inst_63_a_0 - top.res.inst_62_a_0 - top.res.inst_61_a_0 - top.res.inst_60_a_0 - top.res.inst_59_a_0 - top.res.inst_58_a_0 - top.res.inst_57_a_0 - top.res.inst_56_a_0 - top.res.inst_55_a_0 - top.res.inst_54_a_0 - top.res.inst_53_a_0 - top.res.inst_52_a_0 - top.res.inst_51_a_0 - top.res.inst_50_a_0 - top.res.inst_49_a_0 - top.res.inst_48_a_0 - top.res.inst_47_a_0 - top.res.inst_46_a_0 - top.res.inst_45_a_0 - top.res.inst_44_a_0 - top.res.inst_43_a_0 - top.res.inst_42_a_0 - top.res.inst_41_a_0 - top.res.inst_40_a_0 - top.res.inst_39_a_0 - top.res.inst_38_a_0 - top.res.inst_37_a_0 - top.res.inst_36_a_0 - top.res.inst_35_a_0 - top.res.inst_34_a_0 - top.res.inst_33_a_0 - top.res.inst_32_a_0 - top.res.inst_31_a_0 - top.res.inst_30_a_0 - top.res.inst_29_a_0 - top.res.inst_28_a_0 - top.res.inst_27_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_AND_0 - top.res.abs_31_a_0 - top.res.abs_32_a_0 - top.res.abs_33_a_0 - top.res.abs_34_a_0 - top.res.abs_35_a_0 - top.res.inst_1_a_0) - (__node_init_AND_0 - top.res.abs_36_a_0 - top.res.abs_37_a_0 - top.res.abs_38_a_0 - top.res.abs_39_a_0 - top.res.abs_40_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))))))))))))))))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.stop_a_1 Bool) - (top.usr.steam_boiler_waiting_a_1 Bool) - (top.usr.physical_units_ready_a_1 Bool) - (top.usr.level_a_1 Int) - (top.usr.steam_a_1 Int) - (top.usr.pump_state_0_a_1 Int) - (top.usr.pump_state_1_a_1 Int) - (top.usr.pump_state_2_a_1 Int) - (top.usr.pump_state_3_a_1 Int) - (top.usr.pump_control_state_0_a_1 Bool) - (top.usr.pump_control_state_1_a_1 Bool) - (top.usr.pump_control_state_2_a_1 Bool) - (top.usr.pump_control_state_3_a_1 Bool) - (top.usr.pump_repaired_0_a_1 Bool) - (top.usr.pump_repaired_1_a_1 Bool) - (top.usr.pump_repaired_2_a_1 Bool) - (top.usr.pump_repaired_3_a_1 Bool) - (top.usr.pump_control_repaired_0_a_1 Bool) - (top.usr.pump_control_repaired_1_a_1 Bool) - (top.usr.pump_control_repaired_2_a_1 Bool) - (top.usr.pump_control_repaired_3_a_1 Bool) - (top.usr.level_repaired_a_1 Bool) - (top.usr.steam_repaired_a_1 Bool) - (top.usr.pump_failure_acknowledgement_0_a_1 Bool) - (top.usr.pump_failure_acknowledgement_1_a_1 Bool) - (top.usr.pump_failure_acknowledgement_2_a_1 Bool) - (top.usr.pump_failure_acknowledgement_3_a_1 Bool) - (top.usr.pump_control_failure_acknowledgement_0_a_1 Bool) - (top.usr.pump_control_failure_acknowledgement_1_a_1 Bool) - (top.usr.pump_control_failure_acknowledgement_2_a_1 Bool) - (top.usr.pump_control_failure_acknowledgement_3_a_1 Bool) - (top.usr.level_failure_acknowledgement_a_1 Bool) - (top.usr.steam_failure_acknowledgement_a_1 Bool) - (top.res.nondet_32 Int) - (top.res.nondet_31 Int) - (top.res.nondet_30 Int) - (top.res.nondet_29 Int) - (top.res.nondet_28 Int) - (top.res.nondet_27 Int) - (top.res.nondet_26 Int) - (top.res.nondet_25 Int) - (top.res.nondet_24 Int) - (top.res.nondet_23 Int) - (top.res.nondet_22 Int) - (top.res.nondet_21 Int) - (top.res.nondet_20 Int) - (top.res.nondet_19 Int) - (top.res.nondet_18 Int) - (top.res.nondet_17 Int) - (top.res.nondet_16 Int) - (top.res.nondet_15 Int) - (top.res.nondet_14 Int) - (top.res.nondet_13 Int) - (top.res.nondet_12 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.abs_12_a_1 Bool) - (top.res.abs_13_a_1 Bool) - (top.res.abs_14_a_1 Bool) - (top.res.abs_15_a_1 Bool) - (top.res.abs_16_a_1 Bool) - (top.res.abs_17_a_1 Bool) - (top.res.abs_18_a_1 Bool) - (top.res.abs_19_a_1 Bool) - (top.res.abs_20_a_1 Bool) - (top.res.abs_21_a_1 Bool) - (top.res.abs_22_a_1 Bool) - (top.res.abs_23_a_1 Bool) - (top.res.abs_24_a_1 Bool) - (top.res.abs_25_a_1 Bool) - (top.res.abs_26_a_1 Bool) - (top.res.abs_27_a_1 Bool) - (top.res.abs_28_a_1 Bool) - (top.res.abs_29_a_1 Bool) - (top.res.abs_30_a_1 Bool) - (top.res.abs_31_a_1 Bool) - (top.res.abs_32_a_1 Bool) - (top.res.abs_33_a_1 Bool) - (top.res.abs_34_a_1 Bool) - (top.res.abs_35_a_1 Bool) - (top.res.abs_36_a_1 Bool) - (top.res.abs_37_a_1 Bool) - (top.res.abs_38_a_1 Bool) - (top.res.abs_39_a_1 Bool) - (top.res.abs_40_a_1 Bool) - (top.res.inst_297_a_1 Bool) - (top.res.inst_296_a_1 Bool) - (top.res.inst_295_a_1 Int) - (top.res.inst_294_a_1 Int) - (top.res.inst_293_a_1 Int) - (top.res.inst_292_a_1 Int) - (top.res.inst_291_a_1 Int) - (top.res.inst_290_a_1 Int) - (top.res.inst_289_a_1 Int) - (top.res.inst_288_a_1 Int) - (top.res.inst_287_a_1 Int) - (top.res.inst_286_a_1 Int) - (top.res.inst_285_a_1 Int) - (top.res.inst_284_a_1 Int) - (top.res.inst_283_a_1 Int) - (top.res.inst_282_a_1 Int) - (top.res.inst_281_a_1 Int) - (top.res.inst_280_a_1 Int) - (top.res.inst_279_a_1 Int) - (top.res.inst_278_a_1 Bool) - (top.res.inst_277_a_1 Int) - (top.res.inst_276_a_1 Int) - (top.res.inst_275_a_1 Int) - (top.res.inst_274_a_1 Bool) - (top.res.inst_273_a_1 Bool) - (top.res.inst_272_a_1 Bool) - (top.res.inst_271_a_1 Bool) - (top.res.inst_270_a_1 Int) - (top.res.inst_269_a_1 Int) - (top.res.inst_268_a_1 Bool) - (top.res.inst_267_a_1 Int) - (top.res.inst_266_a_1 Int) - (top.res.inst_265_a_1 Bool) - (top.res.inst_264_a_1 Int) - (top.res.inst_263_a_1 Bool) - (top.res.inst_262_a_1 Bool) - (top.res.inst_261_a_1 Bool) - (top.res.inst_260_a_1 Bool) - (top.res.inst_259_a_1 Int) - (top.res.inst_258_a_1 Int) - (top.res.inst_257_a_1 Bool) - (top.res.inst_256_a_1 Int) - (top.res.inst_255_a_1 Int) - (top.res.inst_254_a_1 Bool) - (top.res.inst_253_a_1 Int) - (top.res.inst_252_a_1 Bool) - (top.res.inst_251_a_1 Bool) - (top.res.inst_250_a_1 Bool) - (top.res.inst_249_a_1 Bool) - (top.res.inst_248_a_1 Int) - (top.res.inst_247_a_1 Int) - (top.res.inst_246_a_1 Bool) - (top.res.inst_245_a_1 Int) - (top.res.inst_244_a_1 Int) - (top.res.inst_243_a_1 Bool) - (top.res.inst_242_a_1 Int) - (top.res.inst_241_a_1 Bool) - (top.res.inst_240_a_1 Bool) - (top.res.inst_239_a_1 Bool) - (top.res.inst_238_a_1 Bool) - (top.res.inst_237_a_1 Int) - (top.res.inst_236_a_1 Int) - (top.res.inst_235_a_1 Bool) - (top.res.inst_234_a_1 Int) - (top.res.inst_233_a_1 Int) - (top.res.inst_232_a_1 Bool) - (top.res.inst_231_a_1 Int) - (top.res.inst_230_a_1 Int) - (top.res.inst_229_a_1 Int) - (top.res.inst_228_a_1 Int) - (top.res.inst_227_a_1 Int) - (top.res.inst_226_a_1 Bool) - (top.res.inst_225_a_1 Bool) - (top.res.inst_224_a_1 Bool) - (top.res.inst_223_a_1 Bool) - (top.res.inst_222_a_1 Int) - (top.res.inst_221_a_1 Int) - (top.res.inst_220_a_1 Int) - (top.res.inst_219_a_1 Int) - (top.res.inst_218_a_1 Int) - (top.res.inst_217_a_1 Int) - (top.res.inst_216_a_1 Int) - (top.res.inst_215_a_1 Int) - (top.res.inst_214_a_1 Int) - (top.res.inst_213_a_1 Int) - (top.res.inst_212_a_1 Int) - (top.res.inst_211_a_1 Int) - (top.res.inst_210_a_1 Bool) - (top.res.inst_209_a_1 Int) - (top.res.inst_208_a_1 Bool) - (top.res.inst_207_a_1 Int) - (top.res.inst_206_a_1 Bool) - (top.res.inst_205_a_1 Bool) - (top.res.inst_204_a_1 Bool) - (top.res.inst_203_a_1 Bool) - (top.res.inst_202_a_1 Bool) - (top.res.inst_201_a_1 Bool) - (top.res.inst_200_a_1 Bool) - (top.res.inst_199_a_1 Bool) - (top.res.inst_198_a_1 Bool) - (top.res.inst_197_a_1 Bool) - (top.res.inst_196_a_1 Bool) - (top.res.inst_195_a_1 Bool) - (top.res.inst_194_a_1 Bool) - (top.res.inst_193_a_1 Bool) - (top.res.inst_192_a_1 Bool) - (top.res.inst_191_a_1 Bool) - (top.res.inst_190_a_1 Bool) - (top.res.inst_189_a_1 Bool) - (top.res.inst_188_a_1 Bool) - (top.res.inst_187_a_1 Bool) - (top.res.inst_186_a_1 Bool) - (top.res.inst_185_a_1 Bool) - (top.res.inst_184_a_1 Bool) - (top.res.inst_183_a_1 Bool) - (top.res.inst_182_a_1 Bool) - (top.res.inst_181_a_1 Bool) - (top.res.inst_180_a_1 Bool) - (top.res.inst_179_a_1 Bool) - (top.res.inst_178_a_1 Bool) - (top.res.inst_177_a_1 Bool) - (top.res.inst_176_a_1 Bool) - (top.res.inst_175_a_1 Bool) - (top.res.inst_174_a_1 Int) - (top.res.inst_173_a_1 Bool) - (top.res.inst_172_a_1 Bool) - (top.res.inst_171_a_1 Bool) - (top.res.inst_170_a_1 Bool) - (top.res.inst_169_a_1 Bool) - (top.res.inst_168_a_1 Bool) - (top.res.inst_167_a_1 Bool) - (top.res.inst_166_a_1 Bool) - (top.res.inst_165_a_1 Bool) - (top.res.inst_164_a_1 Bool) - (top.res.inst_163_a_1 Bool) - (top.res.inst_162_a_1 Bool) - (top.res.inst_161_a_1 Bool) - (top.res.inst_160_a_1 Bool) - (top.res.inst_159_a_1 Bool) - (top.res.inst_158_a_1 Bool) - (top.res.inst_157_a_1 Bool) - (top.res.inst_156_a_1 Bool) - (top.res.inst_155_a_1 Bool) - (top.res.inst_154_a_1 Bool) - (top.res.inst_153_a_1 Bool) - (top.res.inst_152_a_1 Bool) - (top.res.inst_151_a_1 Bool) - (top.res.inst_150_a_1 Bool) - (top.res.inst_149_a_1 Bool) - (top.res.inst_148_a_1 Bool) - (top.res.inst_147_a_1 Bool) - (top.res.inst_146_a_1 Bool) - (top.res.inst_145_a_1 Bool) - (top.res.inst_144_a_1 Bool) - (top.res.inst_143_a_1 Bool) - (top.res.inst_142_a_1 Bool) - (top.res.inst_141_a_1 Bool) - (top.res.inst_140_a_1 Bool) - (top.res.inst_139_a_1 Bool) - (top.res.inst_138_a_1 Bool) - (top.res.inst_137_a_1 Bool) - (top.res.inst_136_a_1 Bool) - (top.res.inst_135_a_1 Bool) - (top.res.inst_134_a_1 Bool) - (top.res.inst_133_a_1 Bool) - (top.res.inst_132_a_1 Bool) - (top.res.inst_131_a_1 Bool) - (top.res.inst_130_a_1 Bool) - (top.res.inst_129_a_1 Bool) - (top.res.inst_128_a_1 Bool) - (top.res.inst_127_a_1 Bool) - (top.res.inst_126_a_1 Bool) - (top.res.inst_125_a_1 Bool) - (top.res.inst_124_a_1 Bool) - (top.res.inst_123_a_1 Bool) - (top.res.inst_122_a_1 Int) - (top.res.inst_121_a_1 Bool) - (top.res.inst_120_a_1 Bool) - (top.res.inst_119_a_1 Int) - (top.res.inst_118_a_1 Int) - (top.res.inst_117_a_1 Bool) - (top.res.inst_116_a_1 Bool) - (top.res.inst_115_a_1 Bool) - (top.res.inst_114_a_1 Bool) - (top.res.inst_113_a_1 Int) - (top.res.inst_112_a_1 Int) - (top.res.inst_111_a_1 Bool) - (top.res.inst_110_a_1 Bool) - (top.res.inst_109_a_1 Bool) - (top.res.inst_108_a_1 Bool) - (top.res.inst_107_a_1 Bool) - (top.res.inst_106_a_1 Bool) - (top.res.inst_105_a_1 Bool) - (top.res.inst_104_a_1 Bool) - (top.res.inst_103_a_1 Int) - (top.res.inst_102_a_1 Int) - (top.res.inst_101_a_1 Int) - (top.res.inst_100_a_1 Int) - (top.res.inst_99_a_1 Bool) - (top.res.inst_98_a_1 Bool) - (top.res.inst_97_a_1 Bool) - (top.res.inst_96_a_1 Bool) - (top.res.inst_95_a_1 Int) - (top.res.inst_94_a_1 Int) - (top.res.inst_93_a_1 Int) - (top.res.inst_92_a_1 Int) - (top.res.inst_91_a_1 Int) - (top.res.inst_90_a_1 Int) - (top.res.inst_89_a_1 Int) - (top.res.inst_88_a_1 Int) - (top.res.inst_87_a_1 Int) - (top.res.inst_86_a_1 Int) - (top.res.inst_85_a_1 Bool) - (top.res.inst_84_a_1 Bool) - (top.res.inst_83_a_1 Bool) - (top.res.inst_82_a_1 Bool) - (top.res.inst_81_a_1 Int) - (top.res.inst_80_a_1 Int) - (top.res.inst_79_a_1 Int) - (top.res.inst_78_a_1 Int) - (top.res.inst_77_a_1 Bool) - (top.res.inst_76_a_1 Int) - (top.res.inst_75_a_1 Bool) - (top.res.inst_74_a_1 Int) - (top.res.inst_73_a_1 Bool) - (top.res.inst_72_a_1 Int) - (top.res.inst_71_a_1 Bool) - (top.res.inst_70_a_1 Int) - (top.res.inst_69_a_1 Bool) - (top.res.inst_68_a_1 Int) - (top.res.inst_67_a_1 Bool) - (top.res.inst_66_a_1 Int) - (top.res.inst_65_a_1 Bool) - (top.res.inst_64_a_1 Int) - (top.res.inst_63_a_1 Bool) - (top.res.inst_62_a_1 Int) - (top.res.inst_61_a_1 Bool) - (top.res.inst_60_a_1 Bool) - (top.res.inst_59_a_1 Bool) - (top.res.inst_58_a_1 Bool) - (top.res.inst_57_a_1 Bool) - (top.res.inst_56_a_1 Bool) - (top.res.inst_55_a_1 Bool) - (top.res.inst_54_a_1 Bool) - (top.res.inst_53_a_1 Bool) - (top.res.inst_52_a_1 Bool) - (top.res.inst_51_a_1 Bool) - (top.res.inst_50_a_1 Bool) - (top.res.inst_49_a_1 Int) - (top.res.inst_48_a_1 Bool) - (top.res.inst_47_a_1 Bool) - (top.res.inst_46_a_1 Bool) - (top.res.inst_45_a_1 Bool) - (top.res.inst_44_a_1 Bool) - (top.res.inst_43_a_1 Bool) - (top.res.inst_42_a_1 Bool) - (top.res.inst_41_a_1 Bool) - (top.res.inst_40_a_1 Bool) - (top.res.inst_39_a_1 Bool) - (top.res.inst_38_a_1 Bool) - (top.res.inst_37_a_1 Int) - (top.res.inst_36_a_1 Int) - (top.res.inst_35_a_1 Int) - (top.res.inst_34_a_1 Int) - (top.res.inst_33_a_1 Bool) - (top.res.inst_32_a_1 Bool) - (top.res.inst_31_a_1 Bool) - (top.res.inst_30_a_1 Bool) - (top.res.inst_29_a_1 Bool) - (top.res.inst_28_a_1 Bool) - (top.res.inst_27_a_1 Bool) - (top.res.inst_26_a_1 Bool) - (top.res.inst_25_a_1 Bool) - (top.res.inst_24_a_1 Int) - (top.res.inst_23_a_1 Int) - (top.res.inst_22_a_1 Int) - (top.res.inst_21_a_1 Int) - (top.res.inst_20_a_1 Bool) - (top.res.inst_19_a_1 Bool) - (top.res.inst_18_a_1 Bool) - (top.res.inst_17_a_1 Bool) - (top.res.inst_16_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Bool) - (top.res.inst_11_a_1 Int) - (top.res.inst_10_a_1 Int) - (top.res.inst_9_a_1 Int) - (top.res.inst_8_a_1 Int) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Bool) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.stop_a_0 Bool) - (top.usr.steam_boiler_waiting_a_0 Bool) - (top.usr.physical_units_ready_a_0 Bool) - (top.usr.level_a_0 Int) - (top.usr.steam_a_0 Int) - (top.usr.pump_state_0_a_0 Int) - (top.usr.pump_state_1_a_0 Int) - (top.usr.pump_state_2_a_0 Int) - (top.usr.pump_state_3_a_0 Int) - (top.usr.pump_control_state_0_a_0 Bool) - (top.usr.pump_control_state_1_a_0 Bool) - (top.usr.pump_control_state_2_a_0 Bool) - (top.usr.pump_control_state_3_a_0 Bool) - (top.usr.pump_repaired_0_a_0 Bool) - (top.usr.pump_repaired_1_a_0 Bool) - (top.usr.pump_repaired_2_a_0 Bool) - (top.usr.pump_repaired_3_a_0 Bool) - (top.usr.pump_control_repaired_0_a_0 Bool) - (top.usr.pump_control_repaired_1_a_0 Bool) - (top.usr.pump_control_repaired_2_a_0 Bool) - (top.usr.pump_control_repaired_3_a_0 Bool) - (top.usr.level_repaired_a_0 Bool) - (top.usr.steam_repaired_a_0 Bool) - (top.usr.pump_failure_acknowledgement_0_a_0 Bool) - (top.usr.pump_failure_acknowledgement_1_a_0 Bool) - (top.usr.pump_failure_acknowledgement_2_a_0 Bool) - (top.usr.pump_failure_acknowledgement_3_a_0 Bool) - (top.usr.pump_control_failure_acknowledgement_0_a_0 Bool) - (top.usr.pump_control_failure_acknowledgement_1_a_0 Bool) - (top.usr.pump_control_failure_acknowledgement_2_a_0 Bool) - (top.usr.pump_control_failure_acknowledgement_3_a_0 Bool) - (top.usr.level_failure_acknowledgement_a_0 Bool) - (top.usr.steam_failure_acknowledgement_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.abs_12_a_0 Bool) - (top.res.abs_13_a_0 Bool) - (top.res.abs_14_a_0 Bool) - (top.res.abs_15_a_0 Bool) - (top.res.abs_16_a_0 Bool) - (top.res.abs_17_a_0 Bool) - (top.res.abs_18_a_0 Bool) - (top.res.abs_19_a_0 Bool) - (top.res.abs_20_a_0 Bool) - (top.res.abs_21_a_0 Bool) - (top.res.abs_22_a_0 Bool) - (top.res.abs_23_a_0 Bool) - (top.res.abs_24_a_0 Bool) - (top.res.abs_25_a_0 Bool) - (top.res.abs_26_a_0 Bool) - (top.res.abs_27_a_0 Bool) - (top.res.abs_28_a_0 Bool) - (top.res.abs_29_a_0 Bool) - (top.res.abs_30_a_0 Bool) - (top.res.abs_31_a_0 Bool) - (top.res.abs_32_a_0 Bool) - (top.res.abs_33_a_0 Bool) - (top.res.abs_34_a_0 Bool) - (top.res.abs_35_a_0 Bool) - (top.res.abs_36_a_0 Bool) - (top.res.abs_37_a_0 Bool) - (top.res.abs_38_a_0 Bool) - (top.res.abs_39_a_0 Bool) - (top.res.abs_40_a_0 Bool) - (top.res.inst_297_a_0 Bool) - (top.res.inst_296_a_0 Bool) - (top.res.inst_295_a_0 Int) - (top.res.inst_294_a_0 Int) - (top.res.inst_293_a_0 Int) - (top.res.inst_292_a_0 Int) - (top.res.inst_291_a_0 Int) - (top.res.inst_290_a_0 Int) - (top.res.inst_289_a_0 Int) - (top.res.inst_288_a_0 Int) - (top.res.inst_287_a_0 Int) - (top.res.inst_286_a_0 Int) - (top.res.inst_285_a_0 Int) - (top.res.inst_284_a_0 Int) - (top.res.inst_283_a_0 Int) - (top.res.inst_282_a_0 Int) - (top.res.inst_281_a_0 Int) - (top.res.inst_280_a_0 Int) - (top.res.inst_279_a_0 Int) - (top.res.inst_278_a_0 Bool) - (top.res.inst_277_a_0 Int) - (top.res.inst_276_a_0 Int) - (top.res.inst_275_a_0 Int) - (top.res.inst_274_a_0 Bool) - (top.res.inst_273_a_0 Bool) - (top.res.inst_272_a_0 Bool) - (top.res.inst_271_a_0 Bool) - (top.res.inst_270_a_0 Int) - (top.res.inst_269_a_0 Int) - (top.res.inst_268_a_0 Bool) - (top.res.inst_267_a_0 Int) - (top.res.inst_266_a_0 Int) - (top.res.inst_265_a_0 Bool) - (top.res.inst_264_a_0 Int) - (top.res.inst_263_a_0 Bool) - (top.res.inst_262_a_0 Bool) - (top.res.inst_261_a_0 Bool) - (top.res.inst_260_a_0 Bool) - (top.res.inst_259_a_0 Int) - (top.res.inst_258_a_0 Int) - (top.res.inst_257_a_0 Bool) - (top.res.inst_256_a_0 Int) - (top.res.inst_255_a_0 Int) - (top.res.inst_254_a_0 Bool) - (top.res.inst_253_a_0 Int) - (top.res.inst_252_a_0 Bool) - (top.res.inst_251_a_0 Bool) - (top.res.inst_250_a_0 Bool) - (top.res.inst_249_a_0 Bool) - (top.res.inst_248_a_0 Int) - (top.res.inst_247_a_0 Int) - (top.res.inst_246_a_0 Bool) - (top.res.inst_245_a_0 Int) - (top.res.inst_244_a_0 Int) - (top.res.inst_243_a_0 Bool) - (top.res.inst_242_a_0 Int) - (top.res.inst_241_a_0 Bool) - (top.res.inst_240_a_0 Bool) - (top.res.inst_239_a_0 Bool) - (top.res.inst_238_a_0 Bool) - (top.res.inst_237_a_0 Int) - (top.res.inst_236_a_0 Int) - (top.res.inst_235_a_0 Bool) - (top.res.inst_234_a_0 Int) - (top.res.inst_233_a_0 Int) - (top.res.inst_232_a_0 Bool) - (top.res.inst_231_a_0 Int) - (top.res.inst_230_a_0 Int) - (top.res.inst_229_a_0 Int) - (top.res.inst_228_a_0 Int) - (top.res.inst_227_a_0 Int) - (top.res.inst_226_a_0 Bool) - (top.res.inst_225_a_0 Bool) - (top.res.inst_224_a_0 Bool) - (top.res.inst_223_a_0 Bool) - (top.res.inst_222_a_0 Int) - (top.res.inst_221_a_0 Int) - (top.res.inst_220_a_0 Int) - (top.res.inst_219_a_0 Int) - (top.res.inst_218_a_0 Int) - (top.res.inst_217_a_0 Int) - (top.res.inst_216_a_0 Int) - (top.res.inst_215_a_0 Int) - (top.res.inst_214_a_0 Int) - (top.res.inst_213_a_0 Int) - (top.res.inst_212_a_0 Int) - (top.res.inst_211_a_0 Int) - (top.res.inst_210_a_0 Bool) - (top.res.inst_209_a_0 Int) - (top.res.inst_208_a_0 Bool) - (top.res.inst_207_a_0 Int) - (top.res.inst_206_a_0 Bool) - (top.res.inst_205_a_0 Bool) - (top.res.inst_204_a_0 Bool) - (top.res.inst_203_a_0 Bool) - (top.res.inst_202_a_0 Bool) - (top.res.inst_201_a_0 Bool) - (top.res.inst_200_a_0 Bool) - (top.res.inst_199_a_0 Bool) - (top.res.inst_198_a_0 Bool) - (top.res.inst_197_a_0 Bool) - (top.res.inst_196_a_0 Bool) - (top.res.inst_195_a_0 Bool) - (top.res.inst_194_a_0 Bool) - (top.res.inst_193_a_0 Bool) - (top.res.inst_192_a_0 Bool) - (top.res.inst_191_a_0 Bool) - (top.res.inst_190_a_0 Bool) - (top.res.inst_189_a_0 Bool) - (top.res.inst_188_a_0 Bool) - (top.res.inst_187_a_0 Bool) - (top.res.inst_186_a_0 Bool) - (top.res.inst_185_a_0 Bool) - (top.res.inst_184_a_0 Bool) - (top.res.inst_183_a_0 Bool) - (top.res.inst_182_a_0 Bool) - (top.res.inst_181_a_0 Bool) - (top.res.inst_180_a_0 Bool) - (top.res.inst_179_a_0 Bool) - (top.res.inst_178_a_0 Bool) - (top.res.inst_177_a_0 Bool) - (top.res.inst_176_a_0 Bool) - (top.res.inst_175_a_0 Bool) - (top.res.inst_174_a_0 Int) - (top.res.inst_173_a_0 Bool) - (top.res.inst_172_a_0 Bool) - (top.res.inst_171_a_0 Bool) - (top.res.inst_170_a_0 Bool) - (top.res.inst_169_a_0 Bool) - (top.res.inst_168_a_0 Bool) - (top.res.inst_167_a_0 Bool) - (top.res.inst_166_a_0 Bool) - (top.res.inst_165_a_0 Bool) - (top.res.inst_164_a_0 Bool) - (top.res.inst_163_a_0 Bool) - (top.res.inst_162_a_0 Bool) - (top.res.inst_161_a_0 Bool) - (top.res.inst_160_a_0 Bool) - (top.res.inst_159_a_0 Bool) - (top.res.inst_158_a_0 Bool) - (top.res.inst_157_a_0 Bool) - (top.res.inst_156_a_0 Bool) - (top.res.inst_155_a_0 Bool) - (top.res.inst_154_a_0 Bool) - (top.res.inst_153_a_0 Bool) - (top.res.inst_152_a_0 Bool) - (top.res.inst_151_a_0 Bool) - (top.res.inst_150_a_0 Bool) - (top.res.inst_149_a_0 Bool) - (top.res.inst_148_a_0 Bool) - (top.res.inst_147_a_0 Bool) - (top.res.inst_146_a_0 Bool) - (top.res.inst_145_a_0 Bool) - (top.res.inst_144_a_0 Bool) - (top.res.inst_143_a_0 Bool) - (top.res.inst_142_a_0 Bool) - (top.res.inst_141_a_0 Bool) - (top.res.inst_140_a_0 Bool) - (top.res.inst_139_a_0 Bool) - (top.res.inst_138_a_0 Bool) - (top.res.inst_137_a_0 Bool) - (top.res.inst_136_a_0 Bool) - (top.res.inst_135_a_0 Bool) - (top.res.inst_134_a_0 Bool) - (top.res.inst_133_a_0 Bool) - (top.res.inst_132_a_0 Bool) - (top.res.inst_131_a_0 Bool) - (top.res.inst_130_a_0 Bool) - (top.res.inst_129_a_0 Bool) - (top.res.inst_128_a_0 Bool) - (top.res.inst_127_a_0 Bool) - (top.res.inst_126_a_0 Bool) - (top.res.inst_125_a_0 Bool) - (top.res.inst_124_a_0 Bool) - (top.res.inst_123_a_0 Bool) - (top.res.inst_122_a_0 Int) - (top.res.inst_121_a_0 Bool) - (top.res.inst_120_a_0 Bool) - (top.res.inst_119_a_0 Int) - (top.res.inst_118_a_0 Int) - (top.res.inst_117_a_0 Bool) - (top.res.inst_116_a_0 Bool) - (top.res.inst_115_a_0 Bool) - (top.res.inst_114_a_0 Bool) - (top.res.inst_113_a_0 Int) - (top.res.inst_112_a_0 Int) - (top.res.inst_111_a_0 Bool) - (top.res.inst_110_a_0 Bool) - (top.res.inst_109_a_0 Bool) - (top.res.inst_108_a_0 Bool) - (top.res.inst_107_a_0 Bool) - (top.res.inst_106_a_0 Bool) - (top.res.inst_105_a_0 Bool) - (top.res.inst_104_a_0 Bool) - (top.res.inst_103_a_0 Int) - (top.res.inst_102_a_0 Int) - (top.res.inst_101_a_0 Int) - (top.res.inst_100_a_0 Int) - (top.res.inst_99_a_0 Bool) - (top.res.inst_98_a_0 Bool) - (top.res.inst_97_a_0 Bool) - (top.res.inst_96_a_0 Bool) - (top.res.inst_95_a_0 Int) - (top.res.inst_94_a_0 Int) - (top.res.inst_93_a_0 Int) - (top.res.inst_92_a_0 Int) - (top.res.inst_91_a_0 Int) - (top.res.inst_90_a_0 Int) - (top.res.inst_89_a_0 Int) - (top.res.inst_88_a_0 Int) - (top.res.inst_87_a_0 Int) - (top.res.inst_86_a_0 Int) - (top.res.inst_85_a_0 Bool) - (top.res.inst_84_a_0 Bool) - (top.res.inst_83_a_0 Bool) - (top.res.inst_82_a_0 Bool) - (top.res.inst_81_a_0 Int) - (top.res.inst_80_a_0 Int) - (top.res.inst_79_a_0 Int) - (top.res.inst_78_a_0 Int) - (top.res.inst_77_a_0 Bool) - (top.res.inst_76_a_0 Int) - (top.res.inst_75_a_0 Bool) - (top.res.inst_74_a_0 Int) - (top.res.inst_73_a_0 Bool) - (top.res.inst_72_a_0 Int) - (top.res.inst_71_a_0 Bool) - (top.res.inst_70_a_0 Int) - (top.res.inst_69_a_0 Bool) - (top.res.inst_68_a_0 Int) - (top.res.inst_67_a_0 Bool) - (top.res.inst_66_a_0 Int) - (top.res.inst_65_a_0 Bool) - (top.res.inst_64_a_0 Int) - (top.res.inst_63_a_0 Bool) - (top.res.inst_62_a_0 Int) - (top.res.inst_61_a_0 Bool) - (top.res.inst_60_a_0 Bool) - (top.res.inst_59_a_0 Bool) - (top.res.inst_58_a_0 Bool) - (top.res.inst_57_a_0 Bool) - (top.res.inst_56_a_0 Bool) - (top.res.inst_55_a_0 Bool) - (top.res.inst_54_a_0 Bool) - (top.res.inst_53_a_0 Bool) - (top.res.inst_52_a_0 Bool) - (top.res.inst_51_a_0 Bool) - (top.res.inst_50_a_0 Bool) - (top.res.inst_49_a_0 Int) - (top.res.inst_48_a_0 Bool) - (top.res.inst_47_a_0 Bool) - (top.res.inst_46_a_0 Bool) - (top.res.inst_45_a_0 Bool) - (top.res.inst_44_a_0 Bool) - (top.res.inst_43_a_0 Bool) - (top.res.inst_42_a_0 Bool) - (top.res.inst_41_a_0 Bool) - (top.res.inst_40_a_0 Bool) - (top.res.inst_39_a_0 Bool) - (top.res.inst_38_a_0 Bool) - (top.res.inst_37_a_0 Int) - (top.res.inst_36_a_0 Int) - (top.res.inst_35_a_0 Int) - (top.res.inst_34_a_0 Int) - (top.res.inst_33_a_0 Bool) - (top.res.inst_32_a_0 Bool) - (top.res.inst_31_a_0 Bool) - (top.res.inst_30_a_0 Bool) - (top.res.inst_29_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Int) - (top.res.inst_23_a_0 Int) - (top.res.inst_22_a_0 Int) - (top.res.inst_21_a_0 Int) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Int) - (top.res.inst_10_a_0 Int) - (top.res.inst_9_a_0 Int) - (top.res.inst_8_a_0 Int) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_18_a_1)) - (and - (= top.res.abs_39_a_1 (not X1)) - (let - ((X2 Bool top.res.abs_17_a_1)) - (and - (= top.res.abs_38_a_1 (not X2)) - (let - ((X3 Bool top.res.abs_16_a_1)) - (and - (= top.res.abs_37_a_1 (not X3)) - (let - ((X4 Bool top.res.abs_15_a_1)) - (and - (= top.res.abs_36_a_1 (not X4)) - (let - ((X5 Bool top.res.abs_14_a_1)) - (and - (= top.res.abs_34_a_1 (not X5)) - (let - ((X6 Bool top.res.abs_13_a_1)) - (and - (= top.res.abs_33_a_1 (not X6)) - (let - ((X7 Bool top.res.abs_12_a_1)) - (and - (= top.res.abs_32_a_1 (not X7)) - (let - ((X8 Bool top.res.abs_11_a_1)) - (and - (= top.res.abs_31_a_1 (not X8)) - (let - ((X9 Bool top.res.abs_20_a_1)) - (let - ((X10 Bool top.res.abs_19_a_1)) - (let - ((X11 Bool top.res.abs_2_a_1)) - (let - ((X12 Int top.res.abs_1_a_1)) - (let - ((X13 Bool (=> (= X12 3) (not X11)))) - (let - ((X14 - Bool (=> - (= X12 3) - (and - (and - (and (not X10) (not X9)) - top.res.abs_35_a_1) - top.res.abs_40_a_1)))) - (let - ((X15 - Bool (or - (or - (or - (or (or (= X12 1) (= X12 2)) (= X12 3)) - (= X12 4)) - (= X12 5)) - (= X12 6)))) - (and - (= top.usr.OK_a_1 (and (and X15 X14) X13)) - (__node_trans_BoilerController_0 - top.usr.stop_a_1 - top.usr.steam_boiler_waiting_a_1 - top.usr.physical_units_ready_a_1 - top.usr.level_a_1 - top.usr.steam_a_1 - top.usr.pump_state_0_a_1 - top.usr.pump_state_1_a_1 - top.usr.pump_state_2_a_1 - top.usr.pump_state_3_a_1 - top.usr.pump_control_state_0_a_1 - top.usr.pump_control_state_1_a_1 - top.usr.pump_control_state_2_a_1 - top.usr.pump_control_state_3_a_1 - top.usr.pump_repaired_0_a_1 - top.usr.pump_repaired_1_a_1 - top.usr.pump_repaired_2_a_1 - top.usr.pump_repaired_3_a_1 - top.usr.pump_control_repaired_0_a_1 - top.usr.pump_control_repaired_1_a_1 - top.usr.pump_control_repaired_2_a_1 - top.usr.pump_control_repaired_3_a_1 - top.usr.level_repaired_a_1 - top.usr.steam_repaired_a_1 - top.usr.pump_failure_acknowledgement_0_a_1 - top.usr.pump_failure_acknowledgement_1_a_1 - top.usr.pump_failure_acknowledgement_2_a_1 - top.usr.pump_failure_acknowledgement_3_a_1 - top.usr.pump_control_failure_acknowledgement_0_a_1 - top.usr.pump_control_failure_acknowledgement_1_a_1 - top.usr.pump_control_failure_acknowledgement_2_a_1 - top.usr.pump_control_failure_acknowledgement_3_a_1 - top.usr.level_failure_acknowledgement_a_1 - top.usr.steam_failure_acknowledgement_a_1 - top.res.nondet_32 - top.res.nondet_31 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.abs_12_a_1 - top.res.abs_13_a_1 - top.res.abs_14_a_1 - top.res.abs_15_a_1 - top.res.abs_16_a_1 - top.res.abs_17_a_1 - top.res.abs_18_a_1 - top.res.abs_19_a_1 - top.res.abs_20_a_1 - top.res.abs_21_a_1 - top.res.abs_22_a_1 - top.res.abs_23_a_1 - top.res.abs_24_a_1 - top.res.abs_25_a_1 - top.res.abs_26_a_1 - top.res.abs_27_a_1 - top.res.abs_28_a_1 - top.res.abs_29_a_1 - top.res.abs_30_a_1 - top.res.inst_297_a_1 - top.res.inst_296_a_1 - top.res.inst_295_a_1 - top.res.inst_294_a_1 - top.res.inst_293_a_1 - top.res.inst_292_a_1 - top.res.inst_291_a_1 - top.res.inst_290_a_1 - top.res.inst_289_a_1 - top.res.inst_288_a_1 - top.res.inst_287_a_1 - top.res.inst_286_a_1 - top.res.inst_285_a_1 - top.res.inst_284_a_1 - top.res.inst_283_a_1 - top.res.inst_282_a_1 - top.res.inst_281_a_1 - top.res.inst_280_a_1 - top.res.inst_279_a_1 - top.res.inst_278_a_1 - top.res.inst_277_a_1 - top.res.inst_276_a_1 - top.res.inst_275_a_1 - top.res.inst_274_a_1 - top.res.inst_273_a_1 - top.res.inst_272_a_1 - top.res.inst_271_a_1 - top.res.inst_270_a_1 - top.res.inst_269_a_1 - top.res.inst_268_a_1 - top.res.inst_267_a_1 - top.res.inst_266_a_1 - top.res.inst_265_a_1 - top.res.inst_264_a_1 - top.res.inst_263_a_1 - top.res.inst_262_a_1 - top.res.inst_261_a_1 - top.res.inst_260_a_1 - top.res.inst_259_a_1 - top.res.inst_258_a_1 - top.res.inst_257_a_1 - top.res.inst_256_a_1 - top.res.inst_255_a_1 - top.res.inst_254_a_1 - top.res.inst_253_a_1 - top.res.inst_252_a_1 - top.res.inst_251_a_1 - top.res.inst_250_a_1 - top.res.inst_249_a_1 - top.res.inst_248_a_1 - top.res.inst_247_a_1 - top.res.inst_246_a_1 - top.res.inst_245_a_1 - top.res.inst_244_a_1 - top.res.inst_243_a_1 - top.res.inst_242_a_1 - top.res.inst_241_a_1 - top.res.inst_240_a_1 - top.res.inst_239_a_1 - top.res.inst_238_a_1 - top.res.inst_237_a_1 - top.res.inst_236_a_1 - top.res.inst_235_a_1 - top.res.inst_234_a_1 - top.res.inst_233_a_1 - top.res.inst_232_a_1 - top.res.inst_231_a_1 - top.res.inst_230_a_1 - top.res.inst_229_a_1 - top.res.inst_228_a_1 - top.res.inst_227_a_1 - top.res.inst_226_a_1 - top.res.inst_225_a_1 - top.res.inst_224_a_1 - top.res.inst_223_a_1 - top.res.inst_222_a_1 - top.res.inst_221_a_1 - top.res.inst_220_a_1 - top.res.inst_219_a_1 - top.res.inst_218_a_1 - top.res.inst_217_a_1 - top.res.inst_216_a_1 - top.res.inst_215_a_1 - top.res.inst_214_a_1 - top.res.inst_213_a_1 - top.res.inst_212_a_1 - top.res.inst_211_a_1 - top.res.inst_210_a_1 - top.res.inst_209_a_1 - top.res.inst_208_a_1 - top.res.inst_207_a_1 - top.res.inst_206_a_1 - top.res.inst_205_a_1 - top.res.inst_204_a_1 - top.res.inst_203_a_1 - top.res.inst_202_a_1 - top.res.inst_201_a_1 - top.res.inst_200_a_1 - top.res.inst_199_a_1 - top.res.inst_198_a_1 - top.res.inst_197_a_1 - top.res.inst_196_a_1 - top.res.inst_195_a_1 - top.res.inst_194_a_1 - top.res.inst_193_a_1 - top.res.inst_192_a_1 - top.res.inst_191_a_1 - top.res.inst_190_a_1 - top.res.inst_189_a_1 - top.res.inst_188_a_1 - top.res.inst_187_a_1 - top.res.inst_186_a_1 - top.res.inst_185_a_1 - top.res.inst_184_a_1 - top.res.inst_183_a_1 - top.res.inst_182_a_1 - top.res.inst_181_a_1 - top.res.inst_180_a_1 - top.res.inst_179_a_1 - top.res.inst_178_a_1 - top.res.inst_177_a_1 - top.res.inst_176_a_1 - top.res.inst_175_a_1 - top.res.inst_174_a_1 - top.res.inst_173_a_1 - top.res.inst_172_a_1 - top.res.inst_171_a_1 - top.res.inst_170_a_1 - top.res.inst_169_a_1 - top.res.inst_168_a_1 - top.res.inst_167_a_1 - top.res.inst_166_a_1 - top.res.inst_165_a_1 - top.res.inst_164_a_1 - top.res.inst_163_a_1 - top.res.inst_162_a_1 - top.res.inst_161_a_1 - top.res.inst_160_a_1 - top.res.inst_159_a_1 - top.res.inst_158_a_1 - top.res.inst_157_a_1 - top.res.inst_156_a_1 - top.res.inst_155_a_1 - top.res.inst_154_a_1 - top.res.inst_153_a_1 - top.res.inst_152_a_1 - top.res.inst_151_a_1 - top.res.inst_150_a_1 - top.res.inst_149_a_1 - top.res.inst_148_a_1 - top.res.inst_147_a_1 - top.res.inst_146_a_1 - top.res.inst_145_a_1 - top.res.inst_144_a_1 - top.res.inst_143_a_1 - top.res.inst_142_a_1 - top.res.inst_141_a_1 - top.res.inst_140_a_1 - top.res.inst_139_a_1 - top.res.inst_138_a_1 - top.res.inst_137_a_1 - top.res.inst_136_a_1 - top.res.inst_135_a_1 - top.res.inst_134_a_1 - top.res.inst_133_a_1 - top.res.inst_132_a_1 - top.res.inst_131_a_1 - top.res.inst_130_a_1 - top.res.inst_129_a_1 - top.res.inst_128_a_1 - top.res.inst_127_a_1 - top.res.inst_126_a_1 - top.res.inst_125_a_1 - top.res.inst_124_a_1 - top.res.inst_123_a_1 - top.res.inst_122_a_1 - top.res.inst_121_a_1 - top.res.inst_120_a_1 - top.res.inst_119_a_1 - top.res.inst_118_a_1 - top.res.inst_117_a_1 - top.res.inst_116_a_1 - top.res.inst_115_a_1 - top.res.inst_114_a_1 - top.res.inst_113_a_1 - top.res.inst_112_a_1 - top.res.inst_111_a_1 - top.res.inst_110_a_1 - top.res.inst_109_a_1 - top.res.inst_108_a_1 - top.res.inst_107_a_1 - top.res.inst_106_a_1 - top.res.inst_105_a_1 - top.res.inst_104_a_1 - top.res.inst_103_a_1 - top.res.inst_102_a_1 - top.res.inst_101_a_1 - top.res.inst_100_a_1 - top.res.inst_99_a_1 - top.res.inst_98_a_1 - top.res.inst_97_a_1 - top.res.inst_96_a_1 - top.res.inst_95_a_1 - top.res.inst_94_a_1 - top.res.inst_93_a_1 - top.res.inst_92_a_1 - top.res.inst_91_a_1 - top.res.inst_90_a_1 - top.res.inst_89_a_1 - top.res.inst_88_a_1 - top.res.inst_87_a_1 - top.res.inst_86_a_1 - top.res.inst_85_a_1 - top.res.inst_84_a_1 - top.res.inst_83_a_1 - top.res.inst_82_a_1 - top.res.inst_81_a_1 - top.res.inst_80_a_1 - top.res.inst_79_a_1 - top.res.inst_78_a_1 - top.res.inst_77_a_1 - top.res.inst_76_a_1 - top.res.inst_75_a_1 - top.res.inst_74_a_1 - top.res.inst_73_a_1 - top.res.inst_72_a_1 - top.res.inst_71_a_1 - top.res.inst_70_a_1 - top.res.inst_69_a_1 - top.res.inst_68_a_1 - top.res.inst_67_a_1 - top.res.inst_66_a_1 - top.res.inst_65_a_1 - top.res.inst_64_a_1 - top.res.inst_63_a_1 - top.res.inst_62_a_1 - top.res.inst_61_a_1 - top.res.inst_60_a_1 - top.res.inst_59_a_1 - top.res.inst_58_a_1 - top.res.inst_57_a_1 - top.res.inst_56_a_1 - top.res.inst_55_a_1 - top.res.inst_54_a_1 - top.res.inst_53_a_1 - top.res.inst_52_a_1 - top.res.inst_51_a_1 - top.res.inst_50_a_1 - top.res.inst_49_a_1 - top.res.inst_48_a_1 - top.res.inst_47_a_1 - top.res.inst_46_a_1 - top.res.inst_45_a_1 - top.res.inst_44_a_1 - top.res.inst_43_a_1 - top.res.inst_42_a_1 - top.res.inst_41_a_1 - top.res.inst_40_a_1 - top.res.inst_39_a_1 - top.res.inst_38_a_1 - top.res.inst_37_a_1 - top.res.inst_36_a_1 - top.res.inst_35_a_1 - top.res.inst_34_a_1 - top.res.inst_33_a_1 - top.res.inst_32_a_1 - top.res.inst_31_a_1 - top.res.inst_30_a_1 - top.res.inst_29_a_1 - top.res.inst_28_a_1 - top.res.inst_27_a_1 - top.res.inst_26_a_1 - top.res.inst_25_a_1 - top.res.inst_24_a_1 - top.res.inst_23_a_1 - top.res.inst_22_a_1 - top.res.inst_21_a_1 - top.res.inst_20_a_1 - top.res.inst_19_a_1 - top.res.inst_18_a_1 - top.res.inst_17_a_1 - top.res.inst_16_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.stop_a_0 - top.usr.steam_boiler_waiting_a_0 - top.usr.physical_units_ready_a_0 - top.usr.level_a_0 - top.usr.steam_a_0 - top.usr.pump_state_0_a_0 - top.usr.pump_state_1_a_0 - top.usr.pump_state_2_a_0 - top.usr.pump_state_3_a_0 - top.usr.pump_control_state_0_a_0 - top.usr.pump_control_state_1_a_0 - top.usr.pump_control_state_2_a_0 - top.usr.pump_control_state_3_a_0 - top.usr.pump_repaired_0_a_0 - top.usr.pump_repaired_1_a_0 - top.usr.pump_repaired_2_a_0 - top.usr.pump_repaired_3_a_0 - top.usr.pump_control_repaired_0_a_0 - top.usr.pump_control_repaired_1_a_0 - top.usr.pump_control_repaired_2_a_0 - top.usr.pump_control_repaired_3_a_0 - top.usr.level_repaired_a_0 - top.usr.steam_repaired_a_0 - top.usr.pump_failure_acknowledgement_0_a_0 - top.usr.pump_failure_acknowledgement_1_a_0 - top.usr.pump_failure_acknowledgement_2_a_0 - top.usr.pump_failure_acknowledgement_3_a_0 - top.usr.pump_control_failure_acknowledgement_0_a_0 - top.usr.pump_control_failure_acknowledgement_1_a_0 - top.usr.pump_control_failure_acknowledgement_2_a_0 - top.usr.pump_control_failure_acknowledgement_3_a_0 - top.usr.level_failure_acknowledgement_a_0 - top.usr.steam_failure_acknowledgement_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.abs_13_a_0 - top.res.abs_14_a_0 - top.res.abs_15_a_0 - top.res.abs_16_a_0 - top.res.abs_17_a_0 - top.res.abs_18_a_0 - top.res.abs_19_a_0 - top.res.abs_20_a_0 - top.res.abs_21_a_0 - top.res.abs_22_a_0 - top.res.abs_23_a_0 - top.res.abs_24_a_0 - top.res.abs_25_a_0 - top.res.abs_26_a_0 - top.res.abs_27_a_0 - top.res.abs_28_a_0 - top.res.abs_29_a_0 - top.res.abs_30_a_0 - top.res.inst_297_a_0 - top.res.inst_296_a_0 - top.res.inst_295_a_0 - top.res.inst_294_a_0 - top.res.inst_293_a_0 - top.res.inst_292_a_0 - top.res.inst_291_a_0 - top.res.inst_290_a_0 - top.res.inst_289_a_0 - top.res.inst_288_a_0 - top.res.inst_287_a_0 - top.res.inst_286_a_0 - top.res.inst_285_a_0 - top.res.inst_284_a_0 - top.res.inst_283_a_0 - top.res.inst_282_a_0 - top.res.inst_281_a_0 - top.res.inst_280_a_0 - top.res.inst_279_a_0 - top.res.inst_278_a_0 - top.res.inst_277_a_0 - top.res.inst_276_a_0 - top.res.inst_275_a_0 - top.res.inst_274_a_0 - top.res.inst_273_a_0 - top.res.inst_272_a_0 - top.res.inst_271_a_0 - top.res.inst_270_a_0 - top.res.inst_269_a_0 - top.res.inst_268_a_0 - top.res.inst_267_a_0 - top.res.inst_266_a_0 - top.res.inst_265_a_0 - top.res.inst_264_a_0 - top.res.inst_263_a_0 - top.res.inst_262_a_0 - top.res.inst_261_a_0 - top.res.inst_260_a_0 - top.res.inst_259_a_0 - top.res.inst_258_a_0 - top.res.inst_257_a_0 - top.res.inst_256_a_0 - top.res.inst_255_a_0 - top.res.inst_254_a_0 - top.res.inst_253_a_0 - top.res.inst_252_a_0 - top.res.inst_251_a_0 - top.res.inst_250_a_0 - top.res.inst_249_a_0 - top.res.inst_248_a_0 - top.res.inst_247_a_0 - top.res.inst_246_a_0 - top.res.inst_245_a_0 - top.res.inst_244_a_0 - top.res.inst_243_a_0 - top.res.inst_242_a_0 - top.res.inst_241_a_0 - top.res.inst_240_a_0 - top.res.inst_239_a_0 - top.res.inst_238_a_0 - top.res.inst_237_a_0 - top.res.inst_236_a_0 - top.res.inst_235_a_0 - top.res.inst_234_a_0 - top.res.inst_233_a_0 - top.res.inst_232_a_0 - top.res.inst_231_a_0 - top.res.inst_230_a_0 - top.res.inst_229_a_0 - top.res.inst_228_a_0 - top.res.inst_227_a_0 - top.res.inst_226_a_0 - top.res.inst_225_a_0 - top.res.inst_224_a_0 - top.res.inst_223_a_0 - top.res.inst_222_a_0 - top.res.inst_221_a_0 - top.res.inst_220_a_0 - top.res.inst_219_a_0 - top.res.inst_218_a_0 - top.res.inst_217_a_0 - top.res.inst_216_a_0 - top.res.inst_215_a_0 - top.res.inst_214_a_0 - top.res.inst_213_a_0 - top.res.inst_212_a_0 - top.res.inst_211_a_0 - top.res.inst_210_a_0 - top.res.inst_209_a_0 - top.res.inst_208_a_0 - top.res.inst_207_a_0 - top.res.inst_206_a_0 - top.res.inst_205_a_0 - top.res.inst_204_a_0 - top.res.inst_203_a_0 - top.res.inst_202_a_0 - top.res.inst_201_a_0 - top.res.inst_200_a_0 - top.res.inst_199_a_0 - top.res.inst_198_a_0 - top.res.inst_197_a_0 - top.res.inst_196_a_0 - top.res.inst_195_a_0 - top.res.inst_194_a_0 - top.res.inst_193_a_0 - top.res.inst_192_a_0 - top.res.inst_191_a_0 - top.res.inst_190_a_0 - top.res.inst_189_a_0 - top.res.inst_188_a_0 - top.res.inst_187_a_0 - top.res.inst_186_a_0 - top.res.inst_185_a_0 - top.res.inst_184_a_0 - top.res.inst_183_a_0 - top.res.inst_182_a_0 - top.res.inst_181_a_0 - top.res.inst_180_a_0 - top.res.inst_179_a_0 - top.res.inst_178_a_0 - top.res.inst_177_a_0 - top.res.inst_176_a_0 - top.res.inst_175_a_0 - top.res.inst_174_a_0 - top.res.inst_173_a_0 - top.res.inst_172_a_0 - top.res.inst_171_a_0 - top.res.inst_170_a_0 - top.res.inst_169_a_0 - top.res.inst_168_a_0 - top.res.inst_167_a_0 - top.res.inst_166_a_0 - top.res.inst_165_a_0 - top.res.inst_164_a_0 - top.res.inst_163_a_0 - top.res.inst_162_a_0 - top.res.inst_161_a_0 - top.res.inst_160_a_0 - top.res.inst_159_a_0 - top.res.inst_158_a_0 - top.res.inst_157_a_0 - top.res.inst_156_a_0 - top.res.inst_155_a_0 - top.res.inst_154_a_0 - top.res.inst_153_a_0 - top.res.inst_152_a_0 - top.res.inst_151_a_0 - top.res.inst_150_a_0 - top.res.inst_149_a_0 - top.res.inst_148_a_0 - top.res.inst_147_a_0 - top.res.inst_146_a_0 - top.res.inst_145_a_0 - top.res.inst_144_a_0 - top.res.inst_143_a_0 - top.res.inst_142_a_0 - top.res.inst_141_a_0 - top.res.inst_140_a_0 - top.res.inst_139_a_0 - top.res.inst_138_a_0 - top.res.inst_137_a_0 - top.res.inst_136_a_0 - top.res.inst_135_a_0 - top.res.inst_134_a_0 - top.res.inst_133_a_0 - top.res.inst_132_a_0 - top.res.inst_131_a_0 - top.res.inst_130_a_0 - top.res.inst_129_a_0 - top.res.inst_128_a_0 - top.res.inst_127_a_0 - top.res.inst_126_a_0 - top.res.inst_125_a_0 - top.res.inst_124_a_0 - top.res.inst_123_a_0 - top.res.inst_122_a_0 - top.res.inst_121_a_0 - top.res.inst_120_a_0 - top.res.inst_119_a_0 - top.res.inst_118_a_0 - top.res.inst_117_a_0 - top.res.inst_116_a_0 - top.res.inst_115_a_0 - top.res.inst_114_a_0 - top.res.inst_113_a_0 - top.res.inst_112_a_0 - top.res.inst_111_a_0 - top.res.inst_110_a_0 - top.res.inst_109_a_0 - top.res.inst_108_a_0 - top.res.inst_107_a_0 - top.res.inst_106_a_0 - top.res.inst_105_a_0 - top.res.inst_104_a_0 - top.res.inst_103_a_0 - top.res.inst_102_a_0 - top.res.inst_101_a_0 - top.res.inst_100_a_0 - top.res.inst_99_a_0 - top.res.inst_98_a_0 - top.res.inst_97_a_0 - top.res.inst_96_a_0 - top.res.inst_95_a_0 - top.res.inst_94_a_0 - top.res.inst_93_a_0 - top.res.inst_92_a_0 - top.res.inst_91_a_0 - top.res.inst_90_a_0 - top.res.inst_89_a_0 - top.res.inst_88_a_0 - top.res.inst_87_a_0 - top.res.inst_86_a_0 - top.res.inst_85_a_0 - top.res.inst_84_a_0 - top.res.inst_83_a_0 - top.res.inst_82_a_0 - top.res.inst_81_a_0 - top.res.inst_80_a_0 - top.res.inst_79_a_0 - top.res.inst_78_a_0 - top.res.inst_77_a_0 - top.res.inst_76_a_0 - top.res.inst_75_a_0 - top.res.inst_74_a_0 - top.res.inst_73_a_0 - top.res.inst_72_a_0 - top.res.inst_71_a_0 - top.res.inst_70_a_0 - top.res.inst_69_a_0 - top.res.inst_68_a_0 - top.res.inst_67_a_0 - top.res.inst_66_a_0 - top.res.inst_65_a_0 - top.res.inst_64_a_0 - top.res.inst_63_a_0 - top.res.inst_62_a_0 - top.res.inst_61_a_0 - top.res.inst_60_a_0 - top.res.inst_59_a_0 - top.res.inst_58_a_0 - top.res.inst_57_a_0 - top.res.inst_56_a_0 - top.res.inst_55_a_0 - top.res.inst_54_a_0 - top.res.inst_53_a_0 - top.res.inst_52_a_0 - top.res.inst_51_a_0 - top.res.inst_50_a_0 - top.res.inst_49_a_0 - top.res.inst_48_a_0 - top.res.inst_47_a_0 - top.res.inst_46_a_0 - top.res.inst_45_a_0 - top.res.inst_44_a_0 - top.res.inst_43_a_0 - top.res.inst_42_a_0 - top.res.inst_41_a_0 - top.res.inst_40_a_0 - top.res.inst_39_a_0 - top.res.inst_38_a_0 - top.res.inst_37_a_0 - top.res.inst_36_a_0 - top.res.inst_35_a_0 - top.res.inst_34_a_0 - top.res.inst_33_a_0 - top.res.inst_32_a_0 - top.res.inst_31_a_0 - top.res.inst_30_a_0 - top.res.inst_29_a_0 - top.res.inst_28_a_0 - top.res.inst_27_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_AND_0 - top.res.abs_31_a_1 - top.res.abs_32_a_1 - top.res.abs_33_a_1 - top.res.abs_34_a_1 - top.res.abs_35_a_1 - top.res.inst_1_a_1 - top.res.abs_31_a_0 - top.res.abs_32_a_0 - top.res.abs_33_a_0 - top.res.abs_34_a_0 - top.res.abs_35_a_0 - top.res.inst_1_a_0) - (__node_trans_AND_0 - top.res.abs_36_a_1 - top.res.abs_37_a_1 - top.res.abs_38_a_1 - top.res.abs_39_a_1 - top.res.abs_40_a_1 - top.res.inst_0_a_1 - top.res.abs_36_a_0 - top.res.abs_37_a_0 - top.res.abs_38_a_0 - top.res.abs_39_a_0 - top.res.abs_40_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))))))))))))))))))))) -) - - - -(synth-inv str_invariant( - (top.usr.stop Bool) - (top.usr.steam_boiler_waiting Bool) - (top.usr.physical_units_ready Bool) - (top.usr.level Int) - (top.usr.steam Int) - (top.usr.pump_state_0 Int) - (top.usr.pump_state_1 Int) - (top.usr.pump_state_2 Int) - (top.usr.pump_state_3 Int) - (top.usr.pump_control_state_0 Bool) - (top.usr.pump_control_state_1 Bool) - (top.usr.pump_control_state_2 Bool) - (top.usr.pump_control_state_3 Bool) - (top.usr.pump_repaired_0 Bool) - (top.usr.pump_repaired_1 Bool) - (top.usr.pump_repaired_2 Bool) - (top.usr.pump_repaired_3 Bool) - (top.usr.pump_control_repaired_0 Bool) - (top.usr.pump_control_repaired_1 Bool) - (top.usr.pump_control_repaired_2 Bool) - (top.usr.pump_control_repaired_3 Bool) - (top.usr.level_repaired Bool) - (top.usr.steam_repaired Bool) - (top.usr.pump_failure_acknowledgement_0 Bool) - (top.usr.pump_failure_acknowledgement_1 Bool) - (top.usr.pump_failure_acknowledgement_2 Bool) - (top.usr.pump_failure_acknowledgement_3 Bool) - (top.usr.pump_control_failure_acknowledgement_0 Bool) - (top.usr.pump_control_failure_acknowledgement_1 Bool) - (top.usr.pump_control_failure_acknowledgement_2 Bool) - (top.usr.pump_control_failure_acknowledgement_3 Bool) - (top.usr.level_failure_acknowledgement Bool) - (top.usr.steam_failure_acknowledgement Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.abs_13 Bool) - (top.res.abs_14 Bool) - (top.res.abs_15 Bool) - (top.res.abs_16 Bool) - (top.res.abs_17 Bool) - (top.res.abs_18 Bool) - (top.res.abs_19 Bool) - (top.res.abs_20 Bool) - (top.res.abs_21 Bool) - (top.res.abs_22 Bool) - (top.res.abs_23 Bool) - (top.res.abs_24 Bool) - (top.res.abs_25 Bool) - (top.res.abs_26 Bool) - (top.res.abs_27 Bool) - (top.res.abs_28 Bool) - (top.res.abs_29 Bool) - (top.res.abs_30 Bool) - (top.res.abs_31 Bool) - (top.res.abs_32 Bool) - (top.res.abs_33 Bool) - (top.res.abs_34 Bool) - (top.res.abs_35 Bool) - (top.res.abs_36 Bool) - (top.res.abs_37 Bool) - (top.res.abs_38 Bool) - (top.res.abs_39 Bool) - (top.res.abs_40 Bool) - (top.res.inst_297 Bool) - (top.res.inst_296 Bool) - (top.res.inst_295 Int) - (top.res.inst_294 Int) - (top.res.inst_293 Int) - (top.res.inst_292 Int) - (top.res.inst_291 Int) - (top.res.inst_290 Int) - (top.res.inst_289 Int) - (top.res.inst_288 Int) - (top.res.inst_287 Int) - (top.res.inst_286 Int) - (top.res.inst_285 Int) - (top.res.inst_284 Int) - (top.res.inst_283 Int) - (top.res.inst_282 Int) - (top.res.inst_281 Int) - (top.res.inst_280 Int) - (top.res.inst_279 Int) - (top.res.inst_278 Bool) - (top.res.inst_277 Int) - (top.res.inst_276 Int) - (top.res.inst_275 Int) - (top.res.inst_274 Bool) - (top.res.inst_273 Bool) - (top.res.inst_272 Bool) - (top.res.inst_271 Bool) - (top.res.inst_270 Int) - (top.res.inst_269 Int) - (top.res.inst_268 Bool) - (top.res.inst_267 Int) - (top.res.inst_266 Int) - (top.res.inst_265 Bool) - (top.res.inst_264 Int) - (top.res.inst_263 Bool) - (top.res.inst_262 Bool) - (top.res.inst_261 Bool) - (top.res.inst_260 Bool) - (top.res.inst_259 Int) - (top.res.inst_258 Int) - (top.res.inst_257 Bool) - (top.res.inst_256 Int) - (top.res.inst_255 Int) - (top.res.inst_254 Bool) - (top.res.inst_253 Int) - (top.res.inst_252 Bool) - (top.res.inst_251 Bool) - (top.res.inst_250 Bool) - (top.res.inst_249 Bool) - (top.res.inst_248 Int) - (top.res.inst_247 Int) - (top.res.inst_246 Bool) - (top.res.inst_245 Int) - (top.res.inst_244 Int) - (top.res.inst_243 Bool) - (top.res.inst_242 Int) - (top.res.inst_241 Bool) - (top.res.inst_240 Bool) - (top.res.inst_239 Bool) - (top.res.inst_238 Bool) - (top.res.inst_237 Int) - (top.res.inst_236 Int) - (top.res.inst_235 Bool) - (top.res.inst_234 Int) - (top.res.inst_233 Int) - (top.res.inst_232 Bool) - (top.res.inst_231 Int) - (top.res.inst_230 Int) - (top.res.inst_229 Int) - (top.res.inst_228 Int) - (top.res.inst_227 Int) - (top.res.inst_226 Bool) - (top.res.inst_225 Bool) - (top.res.inst_224 Bool) - (top.res.inst_223 Bool) - (top.res.inst_222 Int) - (top.res.inst_221 Int) - (top.res.inst_220 Int) - (top.res.inst_219 Int) - (top.res.inst_218 Int) - (top.res.inst_217 Int) - (top.res.inst_216 Int) - (top.res.inst_215 Int) - (top.res.inst_214 Int) - (top.res.inst_213 Int) - (top.res.inst_212 Int) - (top.res.inst_211 Int) - (top.res.inst_210 Bool) - (top.res.inst_209 Int) - (top.res.inst_208 Bool) - (top.res.inst_207 Int) - (top.res.inst_206 Bool) - (top.res.inst_205 Bool) - (top.res.inst_204 Bool) - (top.res.inst_203 Bool) - (top.res.inst_202 Bool) - (top.res.inst_201 Bool) - (top.res.inst_200 Bool) - (top.res.inst_199 Bool) - (top.res.inst_198 Bool) - (top.res.inst_197 Bool) - (top.res.inst_196 Bool) - (top.res.inst_195 Bool) - (top.res.inst_194 Bool) - (top.res.inst_193 Bool) - (top.res.inst_192 Bool) - (top.res.inst_191 Bool) - (top.res.inst_190 Bool) - (top.res.inst_189 Bool) - (top.res.inst_188 Bool) - (top.res.inst_187 Bool) - (top.res.inst_186 Bool) - (top.res.inst_185 Bool) - (top.res.inst_184 Bool) - (top.res.inst_183 Bool) - (top.res.inst_182 Bool) - (top.res.inst_181 Bool) - (top.res.inst_180 Bool) - (top.res.inst_179 Bool) - (top.res.inst_178 Bool) - (top.res.inst_177 Bool) - (top.res.inst_176 Bool) - (top.res.inst_175 Bool) - (top.res.inst_174 Int) - (top.res.inst_173 Bool) - (top.res.inst_172 Bool) - (top.res.inst_171 Bool) - (top.res.inst_170 Bool) - (top.res.inst_169 Bool) - (top.res.inst_168 Bool) - (top.res.inst_167 Bool) - (top.res.inst_166 Bool) - (top.res.inst_165 Bool) - (top.res.inst_164 Bool) - (top.res.inst_163 Bool) - (top.res.inst_162 Bool) - (top.res.inst_161 Bool) - (top.res.inst_160 Bool) - (top.res.inst_159 Bool) - (top.res.inst_158 Bool) - (top.res.inst_157 Bool) - (top.res.inst_156 Bool) - (top.res.inst_155 Bool) - (top.res.inst_154 Bool) - (top.res.inst_153 Bool) - (top.res.inst_152 Bool) - (top.res.inst_151 Bool) - (top.res.inst_150 Bool) - (top.res.inst_149 Bool) - (top.res.inst_148 Bool) - (top.res.inst_147 Bool) - (top.res.inst_146 Bool) - (top.res.inst_145 Bool) - (top.res.inst_144 Bool) - (top.res.inst_143 Bool) - (top.res.inst_142 Bool) - (top.res.inst_141 Bool) - (top.res.inst_140 Bool) - (top.res.inst_139 Bool) - (top.res.inst_138 Bool) - (top.res.inst_137 Bool) - (top.res.inst_136 Bool) - (top.res.inst_135 Bool) - (top.res.inst_134 Bool) - (top.res.inst_133 Bool) - (top.res.inst_132 Bool) - (top.res.inst_131 Bool) - (top.res.inst_130 Bool) - (top.res.inst_129 Bool) - (top.res.inst_128 Bool) - (top.res.inst_127 Bool) - (top.res.inst_126 Bool) - (top.res.inst_125 Bool) - (top.res.inst_124 Bool) - (top.res.inst_123 Bool) - (top.res.inst_122 Int) - (top.res.inst_121 Bool) - (top.res.inst_120 Bool) - (top.res.inst_119 Int) - (top.res.inst_118 Int) - (top.res.inst_117 Bool) - (top.res.inst_116 Bool) - (top.res.inst_115 Bool) - (top.res.inst_114 Bool) - (top.res.inst_113 Int) - (top.res.inst_112 Int) - (top.res.inst_111 Bool) - (top.res.inst_110 Bool) - (top.res.inst_109 Bool) - (top.res.inst_108 Bool) - (top.res.inst_107 Bool) - (top.res.inst_106 Bool) - (top.res.inst_105 Bool) - (top.res.inst_104 Bool) - (top.res.inst_103 Int) - (top.res.inst_102 Int) - (top.res.inst_101 Int) - (top.res.inst_100 Int) - (top.res.inst_99 Bool) - (top.res.inst_98 Bool) - (top.res.inst_97 Bool) - (top.res.inst_96 Bool) - (top.res.inst_95 Int) - (top.res.inst_94 Int) - (top.res.inst_93 Int) - (top.res.inst_92 Int) - (top.res.inst_91 Int) - (top.res.inst_90 Int) - (top.res.inst_89 Int) - (top.res.inst_88 Int) - (top.res.inst_87 Int) - (top.res.inst_86 Int) - (top.res.inst_85 Bool) - (top.res.inst_84 Bool) - (top.res.inst_83 Bool) - (top.res.inst_82 Bool) - (top.res.inst_81 Int) - (top.res.inst_80 Int) - (top.res.inst_79 Int) - (top.res.inst_78 Int) - (top.res.inst_77 Bool) - (top.res.inst_76 Int) - (top.res.inst_75 Bool) - (top.res.inst_74 Int) - (top.res.inst_73 Bool) - (top.res.inst_72 Int) - (top.res.inst_71 Bool) - (top.res.inst_70 Int) - (top.res.inst_69 Bool) - (top.res.inst_68 Int) - (top.res.inst_67 Bool) - (top.res.inst_66 Int) - (top.res.inst_65 Bool) - (top.res.inst_64 Int) - (top.res.inst_63 Bool) - (top.res.inst_62 Int) - (top.res.inst_61 Bool) - (top.res.inst_60 Bool) - (top.res.inst_59 Bool) - (top.res.inst_58 Bool) - (top.res.inst_57 Bool) - (top.res.inst_56 Bool) - (top.res.inst_55 Bool) - (top.res.inst_54 Bool) - (top.res.inst_53 Bool) - (top.res.inst_52 Bool) - (top.res.inst_51 Bool) - (top.res.inst_50 Bool) - (top.res.inst_49 Int) - (top.res.inst_48 Bool) - (top.res.inst_47 Bool) - (top.res.inst_46 Bool) - (top.res.inst_45 Bool) - (top.res.inst_44 Bool) - (top.res.inst_43 Bool) - (top.res.inst_42 Bool) - (top.res.inst_41 Bool) - (top.res.inst_40 Bool) - (top.res.inst_39 Bool) - (top.res.inst_38 Bool) - (top.res.inst_37 Int) - (top.res.inst_36 Int) - (top.res.inst_35 Int) - (top.res.inst_34 Int) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Int) - (top.res.inst_23 Int) - (top.res.inst_22 Int) - (top.res.inst_21 Int) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Int) - (top.res.inst_10 Int) - (top.res.inst_9 Int) - (top.res.inst_8 Int) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_32 () Int) -(declare-fun top.res.nondet_31 () Int) -(declare-fun top.res.nondet_30 () Int) -(declare-fun top.res.nondet_29 () Int) -(declare-fun top.res.nondet_28 () Int) -(declare-fun top.res.nondet_27 () Int) -(declare-fun top.res.nondet_26 () Int) -(declare-fun top.res.nondet_25 () Int) -(declare-fun top.res.nondet_24 () Int) -(declare-fun top.res.nondet_23 () Int) -(declare-fun top.res.nondet_22 () Int) -(declare-fun top.res.nondet_21 () Int) -(declare-fun top.res.nondet_20 () Int) -(declare-fun top.res.nondet_19 () Int) -(declare-fun top.res.nondet_18 () Int) -(declare-fun top.res.nondet_17 () Int) -(declare-fun top.res.nondet_16 () Int) -(declare-fun top.res.nondet_15 () Int) -(declare-fun top.res.nondet_14 () Int) -(declare-fun top.res.nondet_13 () Int) -(declare-fun top.res.nondet_12 () Int) -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.stop Bool) -(declare-primed-var top.usr.steam_boiler_waiting Bool) -(declare-primed-var top.usr.physical_units_ready Bool) -(declare-primed-var top.usr.level Int) -(declare-primed-var top.usr.steam Int) -(declare-primed-var top.usr.pump_state_0 Int) -(declare-primed-var top.usr.pump_state_1 Int) -(declare-primed-var top.usr.pump_state_2 Int) -(declare-primed-var top.usr.pump_state_3 Int) -(declare-primed-var top.usr.pump_control_state_0 Bool) -(declare-primed-var top.usr.pump_control_state_1 Bool) -(declare-primed-var top.usr.pump_control_state_2 Bool) -(declare-primed-var top.usr.pump_control_state_3 Bool) -(declare-primed-var top.usr.pump_repaired_0 Bool) -(declare-primed-var top.usr.pump_repaired_1 Bool) -(declare-primed-var top.usr.pump_repaired_2 Bool) -(declare-primed-var top.usr.pump_repaired_3 Bool) -(declare-primed-var top.usr.pump_control_repaired_0 Bool) -(declare-primed-var top.usr.pump_control_repaired_1 Bool) -(declare-primed-var top.usr.pump_control_repaired_2 Bool) -(declare-primed-var top.usr.pump_control_repaired_3 Bool) -(declare-primed-var top.usr.level_repaired Bool) -(declare-primed-var top.usr.steam_repaired Bool) -(declare-primed-var top.usr.pump_failure_acknowledgement_0 Bool) -(declare-primed-var top.usr.pump_failure_acknowledgement_1 Bool) -(declare-primed-var top.usr.pump_failure_acknowledgement_2 Bool) -(declare-primed-var top.usr.pump_failure_acknowledgement_3 Bool) -(declare-primed-var top.usr.pump_control_failure_acknowledgement_0 Bool) -(declare-primed-var top.usr.pump_control_failure_acknowledgement_1 Bool) -(declare-primed-var top.usr.pump_control_failure_acknowledgement_2 Bool) -(declare-primed-var top.usr.pump_control_failure_acknowledgement_3 Bool) -(declare-primed-var top.usr.level_failure_acknowledgement Bool) -(declare-primed-var top.usr.steam_failure_acknowledgement Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.abs_12 Bool) -(declare-primed-var top.res.abs_13 Bool) -(declare-primed-var top.res.abs_14 Bool) -(declare-primed-var top.res.abs_15 Bool) -(declare-primed-var top.res.abs_16 Bool) -(declare-primed-var top.res.abs_17 Bool) -(declare-primed-var top.res.abs_18 Bool) -(declare-primed-var top.res.abs_19 Bool) -(declare-primed-var top.res.abs_20 Bool) -(declare-primed-var top.res.abs_21 Bool) -(declare-primed-var top.res.abs_22 Bool) -(declare-primed-var top.res.abs_23 Bool) -(declare-primed-var top.res.abs_24 Bool) -(declare-primed-var top.res.abs_25 Bool) -(declare-primed-var top.res.abs_26 Bool) -(declare-primed-var top.res.abs_27 Bool) -(declare-primed-var top.res.abs_28 Bool) -(declare-primed-var top.res.abs_29 Bool) -(declare-primed-var top.res.abs_30 Bool) -(declare-primed-var top.res.abs_31 Bool) -(declare-primed-var top.res.abs_32 Bool) -(declare-primed-var top.res.abs_33 Bool) -(declare-primed-var top.res.abs_34 Bool) -(declare-primed-var top.res.abs_35 Bool) -(declare-primed-var top.res.abs_36 Bool) -(declare-primed-var top.res.abs_37 Bool) -(declare-primed-var top.res.abs_38 Bool) -(declare-primed-var top.res.abs_39 Bool) -(declare-primed-var top.res.abs_40 Bool) -(declare-primed-var top.res.inst_297 Bool) -(declare-primed-var top.res.inst_296 Bool) -(declare-primed-var top.res.inst_295 Int) -(declare-primed-var top.res.inst_294 Int) -(declare-primed-var top.res.inst_293 Int) -(declare-primed-var top.res.inst_292 Int) -(declare-primed-var top.res.inst_291 Int) -(declare-primed-var top.res.inst_290 Int) -(declare-primed-var top.res.inst_289 Int) -(declare-primed-var top.res.inst_288 Int) -(declare-primed-var top.res.inst_287 Int) -(declare-primed-var top.res.inst_286 Int) -(declare-primed-var top.res.inst_285 Int) -(declare-primed-var top.res.inst_284 Int) -(declare-primed-var top.res.inst_283 Int) -(declare-primed-var top.res.inst_282 Int) -(declare-primed-var top.res.inst_281 Int) -(declare-primed-var top.res.inst_280 Int) -(declare-primed-var top.res.inst_279 Int) -(declare-primed-var top.res.inst_278 Bool) -(declare-primed-var top.res.inst_277 Int) -(declare-primed-var top.res.inst_276 Int) -(declare-primed-var top.res.inst_275 Int) -(declare-primed-var top.res.inst_274 Bool) -(declare-primed-var top.res.inst_273 Bool) -(declare-primed-var top.res.inst_272 Bool) -(declare-primed-var top.res.inst_271 Bool) -(declare-primed-var top.res.inst_270 Int) -(declare-primed-var top.res.inst_269 Int) -(declare-primed-var top.res.inst_268 Bool) -(declare-primed-var top.res.inst_267 Int) -(declare-primed-var top.res.inst_266 Int) -(declare-primed-var top.res.inst_265 Bool) -(declare-primed-var top.res.inst_264 Int) -(declare-primed-var top.res.inst_263 Bool) -(declare-primed-var top.res.inst_262 Bool) -(declare-primed-var top.res.inst_261 Bool) -(declare-primed-var top.res.inst_260 Bool) -(declare-primed-var top.res.inst_259 Int) -(declare-primed-var top.res.inst_258 Int) -(declare-primed-var top.res.inst_257 Bool) -(declare-primed-var top.res.inst_256 Int) -(declare-primed-var top.res.inst_255 Int) -(declare-primed-var top.res.inst_254 Bool) -(declare-primed-var top.res.inst_253 Int) -(declare-primed-var top.res.inst_252 Bool) -(declare-primed-var top.res.inst_251 Bool) -(declare-primed-var top.res.inst_250 Bool) -(declare-primed-var top.res.inst_249 Bool) -(declare-primed-var top.res.inst_248 Int) -(declare-primed-var top.res.inst_247 Int) -(declare-primed-var top.res.inst_246 Bool) -(declare-primed-var top.res.inst_245 Int) -(declare-primed-var top.res.inst_244 Int) -(declare-primed-var top.res.inst_243 Bool) -(declare-primed-var top.res.inst_242 Int) -(declare-primed-var top.res.inst_241 Bool) -(declare-primed-var top.res.inst_240 Bool) -(declare-primed-var top.res.inst_239 Bool) -(declare-primed-var top.res.inst_238 Bool) -(declare-primed-var top.res.inst_237 Int) -(declare-primed-var top.res.inst_236 Int) -(declare-primed-var top.res.inst_235 Bool) -(declare-primed-var top.res.inst_234 Int) -(declare-primed-var top.res.inst_233 Int) -(declare-primed-var top.res.inst_232 Bool) -(declare-primed-var top.res.inst_231 Int) -(declare-primed-var top.res.inst_230 Int) -(declare-primed-var top.res.inst_229 Int) -(declare-primed-var top.res.inst_228 Int) -(declare-primed-var top.res.inst_227 Int) -(declare-primed-var top.res.inst_226 Bool) -(declare-primed-var top.res.inst_225 Bool) -(declare-primed-var top.res.inst_224 Bool) -(declare-primed-var top.res.inst_223 Bool) -(declare-primed-var top.res.inst_222 Int) -(declare-primed-var top.res.inst_221 Int) -(declare-primed-var top.res.inst_220 Int) -(declare-primed-var top.res.inst_219 Int) -(declare-primed-var top.res.inst_218 Int) -(declare-primed-var top.res.inst_217 Int) -(declare-primed-var top.res.inst_216 Int) -(declare-primed-var top.res.inst_215 Int) -(declare-primed-var top.res.inst_214 Int) -(declare-primed-var top.res.inst_213 Int) -(declare-primed-var top.res.inst_212 Int) -(declare-primed-var top.res.inst_211 Int) -(declare-primed-var top.res.inst_210 Bool) -(declare-primed-var top.res.inst_209 Int) -(declare-primed-var top.res.inst_208 Bool) -(declare-primed-var top.res.inst_207 Int) -(declare-primed-var top.res.inst_206 Bool) -(declare-primed-var top.res.inst_205 Bool) -(declare-primed-var top.res.inst_204 Bool) -(declare-primed-var top.res.inst_203 Bool) -(declare-primed-var top.res.inst_202 Bool) -(declare-primed-var top.res.inst_201 Bool) -(declare-primed-var top.res.inst_200 Bool) -(declare-primed-var top.res.inst_199 Bool) -(declare-primed-var top.res.inst_198 Bool) -(declare-primed-var top.res.inst_197 Bool) -(declare-primed-var top.res.inst_196 Bool) -(declare-primed-var top.res.inst_195 Bool) -(declare-primed-var top.res.inst_194 Bool) -(declare-primed-var top.res.inst_193 Bool) -(declare-primed-var top.res.inst_192 Bool) -(declare-primed-var top.res.inst_191 Bool) -(declare-primed-var top.res.inst_190 Bool) -(declare-primed-var top.res.inst_189 Bool) -(declare-primed-var top.res.inst_188 Bool) -(declare-primed-var top.res.inst_187 Bool) -(declare-primed-var top.res.inst_186 Bool) -(declare-primed-var top.res.inst_185 Bool) -(declare-primed-var top.res.inst_184 Bool) -(declare-primed-var top.res.inst_183 Bool) -(declare-primed-var top.res.inst_182 Bool) -(declare-primed-var top.res.inst_181 Bool) -(declare-primed-var top.res.inst_180 Bool) -(declare-primed-var top.res.inst_179 Bool) -(declare-primed-var top.res.inst_178 Bool) -(declare-primed-var top.res.inst_177 Bool) -(declare-primed-var top.res.inst_176 Bool) -(declare-primed-var top.res.inst_175 Bool) -(declare-primed-var top.res.inst_174 Int) -(declare-primed-var top.res.inst_173 Bool) -(declare-primed-var top.res.inst_172 Bool) -(declare-primed-var top.res.inst_171 Bool) -(declare-primed-var top.res.inst_170 Bool) -(declare-primed-var top.res.inst_169 Bool) -(declare-primed-var top.res.inst_168 Bool) -(declare-primed-var top.res.inst_167 Bool) -(declare-primed-var top.res.inst_166 Bool) -(declare-primed-var top.res.inst_165 Bool) -(declare-primed-var top.res.inst_164 Bool) -(declare-primed-var top.res.inst_163 Bool) -(declare-primed-var top.res.inst_162 Bool) -(declare-primed-var top.res.inst_161 Bool) -(declare-primed-var top.res.inst_160 Bool) -(declare-primed-var top.res.inst_159 Bool) -(declare-primed-var top.res.inst_158 Bool) -(declare-primed-var top.res.inst_157 Bool) -(declare-primed-var top.res.inst_156 Bool) -(declare-primed-var top.res.inst_155 Bool) -(declare-primed-var top.res.inst_154 Bool) -(declare-primed-var top.res.inst_153 Bool) -(declare-primed-var top.res.inst_152 Bool) -(declare-primed-var top.res.inst_151 Bool) -(declare-primed-var top.res.inst_150 Bool) -(declare-primed-var top.res.inst_149 Bool) -(declare-primed-var top.res.inst_148 Bool) -(declare-primed-var top.res.inst_147 Bool) -(declare-primed-var top.res.inst_146 Bool) -(declare-primed-var top.res.inst_145 Bool) -(declare-primed-var top.res.inst_144 Bool) -(declare-primed-var top.res.inst_143 Bool) -(declare-primed-var top.res.inst_142 Bool) -(declare-primed-var top.res.inst_141 Bool) -(declare-primed-var top.res.inst_140 Bool) -(declare-primed-var top.res.inst_139 Bool) -(declare-primed-var top.res.inst_138 Bool) -(declare-primed-var top.res.inst_137 Bool) -(declare-primed-var top.res.inst_136 Bool) -(declare-primed-var top.res.inst_135 Bool) -(declare-primed-var top.res.inst_134 Bool) -(declare-primed-var top.res.inst_133 Bool) -(declare-primed-var top.res.inst_132 Bool) -(declare-primed-var top.res.inst_131 Bool) -(declare-primed-var top.res.inst_130 Bool) -(declare-primed-var top.res.inst_129 Bool) -(declare-primed-var top.res.inst_128 Bool) -(declare-primed-var top.res.inst_127 Bool) -(declare-primed-var top.res.inst_126 Bool) -(declare-primed-var top.res.inst_125 Bool) -(declare-primed-var top.res.inst_124 Bool) -(declare-primed-var top.res.inst_123 Bool) -(declare-primed-var top.res.inst_122 Int) -(declare-primed-var top.res.inst_121 Bool) -(declare-primed-var top.res.inst_120 Bool) -(declare-primed-var top.res.inst_119 Int) -(declare-primed-var top.res.inst_118 Int) -(declare-primed-var top.res.inst_117 Bool) -(declare-primed-var top.res.inst_116 Bool) -(declare-primed-var top.res.inst_115 Bool) -(declare-primed-var top.res.inst_114 Bool) -(declare-primed-var top.res.inst_113 Int) -(declare-primed-var top.res.inst_112 Int) -(declare-primed-var top.res.inst_111 Bool) -(declare-primed-var top.res.inst_110 Bool) -(declare-primed-var top.res.inst_109 Bool) -(declare-primed-var top.res.inst_108 Bool) -(declare-primed-var top.res.inst_107 Bool) -(declare-primed-var top.res.inst_106 Bool) -(declare-primed-var top.res.inst_105 Bool) -(declare-primed-var top.res.inst_104 Bool) -(declare-primed-var top.res.inst_103 Int) -(declare-primed-var top.res.inst_102 Int) -(declare-primed-var top.res.inst_101 Int) -(declare-primed-var top.res.inst_100 Int) -(declare-primed-var top.res.inst_99 Bool) -(declare-primed-var top.res.inst_98 Bool) -(declare-primed-var top.res.inst_97 Bool) -(declare-primed-var top.res.inst_96 Bool) -(declare-primed-var top.res.inst_95 Int) -(declare-primed-var top.res.inst_94 Int) -(declare-primed-var top.res.inst_93 Int) -(declare-primed-var top.res.inst_92 Int) -(declare-primed-var top.res.inst_91 Int) -(declare-primed-var top.res.inst_90 Int) -(declare-primed-var top.res.inst_89 Int) -(declare-primed-var top.res.inst_88 Int) -(declare-primed-var top.res.inst_87 Int) -(declare-primed-var top.res.inst_86 Int) -(declare-primed-var top.res.inst_85 Bool) -(declare-primed-var top.res.inst_84 Bool) -(declare-primed-var top.res.inst_83 Bool) -(declare-primed-var top.res.inst_82 Bool) -(declare-primed-var top.res.inst_81 Int) -(declare-primed-var top.res.inst_80 Int) -(declare-primed-var top.res.inst_79 Int) -(declare-primed-var top.res.inst_78 Int) -(declare-primed-var top.res.inst_77 Bool) -(declare-primed-var top.res.inst_76 Int) -(declare-primed-var top.res.inst_75 Bool) -(declare-primed-var top.res.inst_74 Int) -(declare-primed-var top.res.inst_73 Bool) -(declare-primed-var top.res.inst_72 Int) -(declare-primed-var top.res.inst_71 Bool) -(declare-primed-var top.res.inst_70 Int) -(declare-primed-var top.res.inst_69 Bool) -(declare-primed-var top.res.inst_68 Int) -(declare-primed-var top.res.inst_67 Bool) -(declare-primed-var top.res.inst_66 Int) -(declare-primed-var top.res.inst_65 Bool) -(declare-primed-var top.res.inst_64 Int) -(declare-primed-var top.res.inst_63 Bool) -(declare-primed-var top.res.inst_62 Int) -(declare-primed-var top.res.inst_61 Bool) -(declare-primed-var top.res.inst_60 Bool) -(declare-primed-var top.res.inst_59 Bool) -(declare-primed-var top.res.inst_58 Bool) -(declare-primed-var top.res.inst_57 Bool) -(declare-primed-var top.res.inst_56 Bool) -(declare-primed-var top.res.inst_55 Bool) -(declare-primed-var top.res.inst_54 Bool) -(declare-primed-var top.res.inst_53 Bool) -(declare-primed-var top.res.inst_52 Bool) -(declare-primed-var top.res.inst_51 Bool) -(declare-primed-var top.res.inst_50 Bool) -(declare-primed-var top.res.inst_49 Int) -(declare-primed-var top.res.inst_48 Bool) -(declare-primed-var top.res.inst_47 Bool) -(declare-primed-var top.res.inst_46 Bool) -(declare-primed-var top.res.inst_45 Bool) -(declare-primed-var top.res.inst_44 Bool) -(declare-primed-var top.res.inst_43 Bool) -(declare-primed-var top.res.inst_42 Bool) -(declare-primed-var top.res.inst_41 Bool) -(declare-primed-var top.res.inst_40 Bool) -(declare-primed-var top.res.inst_39 Bool) -(declare-primed-var top.res.inst_38 Bool) -(declare-primed-var top.res.inst_37 Int) -(declare-primed-var top.res.inst_36 Int) -(declare-primed-var top.res.inst_35 Int) -(declare-primed-var top.res.inst_34 Int) -(declare-primed-var top.res.inst_33 Bool) -(declare-primed-var top.res.inst_32 Bool) -(declare-primed-var top.res.inst_31 Bool) -(declare-primed-var top.res.inst_30 Bool) -(declare-primed-var top.res.inst_29 Bool) -(declare-primed-var top.res.inst_28 Bool) -(declare-primed-var top.res.inst_27 Bool) -(declare-primed-var top.res.inst_26 Bool) -(declare-primed-var top.res.inst_25 Bool) -(declare-primed-var top.res.inst_24 Int) -(declare-primed-var top.res.inst_23 Int) -(declare-primed-var top.res.inst_22 Int) -(declare-primed-var top.res.inst_21 Int) -(declare-primed-var top.res.inst_20 Bool) -(declare-primed-var top.res.inst_19 Bool) -(declare-primed-var top.res.inst_18 Bool) -(declare-primed-var top.res.inst_17 Bool) -(declare-primed-var top.res.inst_16 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Bool) -(declare-primed-var top.res.inst_11 Int) -(declare-primed-var top.res.inst_10 Int) -(declare-primed-var top.res.inst_9 Int) -(declare-primed-var top.res.inst_8 Int) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Bool) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.stop Bool) - (top.usr.steam_boiler_waiting Bool) - (top.usr.physical_units_ready Bool) - (top.usr.level Int) - (top.usr.steam Int) - (top.usr.pump_state_0 Int) - (top.usr.pump_state_1 Int) - (top.usr.pump_state_2 Int) - (top.usr.pump_state_3 Int) - (top.usr.pump_control_state_0 Bool) - (top.usr.pump_control_state_1 Bool) - (top.usr.pump_control_state_2 Bool) - (top.usr.pump_control_state_3 Bool) - (top.usr.pump_repaired_0 Bool) - (top.usr.pump_repaired_1 Bool) - (top.usr.pump_repaired_2 Bool) - (top.usr.pump_repaired_3 Bool) - (top.usr.pump_control_repaired_0 Bool) - (top.usr.pump_control_repaired_1 Bool) - (top.usr.pump_control_repaired_2 Bool) - (top.usr.pump_control_repaired_3 Bool) - (top.usr.level_repaired Bool) - (top.usr.steam_repaired Bool) - (top.usr.pump_failure_acknowledgement_0 Bool) - (top.usr.pump_failure_acknowledgement_1 Bool) - (top.usr.pump_failure_acknowledgement_2 Bool) - (top.usr.pump_failure_acknowledgement_3 Bool) - (top.usr.pump_control_failure_acknowledgement_0 Bool) - (top.usr.pump_control_failure_acknowledgement_1 Bool) - (top.usr.pump_control_failure_acknowledgement_2 Bool) - (top.usr.pump_control_failure_acknowledgement_3 Bool) - (top.usr.level_failure_acknowledgement Bool) - (top.usr.steam_failure_acknowledgement Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.abs_13 Bool) - (top.res.abs_14 Bool) - (top.res.abs_15 Bool) - (top.res.abs_16 Bool) - (top.res.abs_17 Bool) - (top.res.abs_18 Bool) - (top.res.abs_19 Bool) - (top.res.abs_20 Bool) - (top.res.abs_21 Bool) - (top.res.abs_22 Bool) - (top.res.abs_23 Bool) - (top.res.abs_24 Bool) - (top.res.abs_25 Bool) - (top.res.abs_26 Bool) - (top.res.abs_27 Bool) - (top.res.abs_28 Bool) - (top.res.abs_29 Bool) - (top.res.abs_30 Bool) - (top.res.abs_31 Bool) - (top.res.abs_32 Bool) - (top.res.abs_33 Bool) - (top.res.abs_34 Bool) - (top.res.abs_35 Bool) - (top.res.abs_36 Bool) - (top.res.abs_37 Bool) - (top.res.abs_38 Bool) - (top.res.abs_39 Bool) - (top.res.abs_40 Bool) - (top.res.inst_297 Bool) - (top.res.inst_296 Bool) - (top.res.inst_295 Int) - (top.res.inst_294 Int) - (top.res.inst_293 Int) - (top.res.inst_292 Int) - (top.res.inst_291 Int) - (top.res.inst_290 Int) - (top.res.inst_289 Int) - (top.res.inst_288 Int) - (top.res.inst_287 Int) - (top.res.inst_286 Int) - (top.res.inst_285 Int) - (top.res.inst_284 Int) - (top.res.inst_283 Int) - (top.res.inst_282 Int) - (top.res.inst_281 Int) - (top.res.inst_280 Int) - (top.res.inst_279 Int) - (top.res.inst_278 Bool) - (top.res.inst_277 Int) - (top.res.inst_276 Int) - (top.res.inst_275 Int) - (top.res.inst_274 Bool) - (top.res.inst_273 Bool) - (top.res.inst_272 Bool) - (top.res.inst_271 Bool) - (top.res.inst_270 Int) - (top.res.inst_269 Int) - (top.res.inst_268 Bool) - (top.res.inst_267 Int) - (top.res.inst_266 Int) - (top.res.inst_265 Bool) - (top.res.inst_264 Int) - (top.res.inst_263 Bool) - (top.res.inst_262 Bool) - (top.res.inst_261 Bool) - (top.res.inst_260 Bool) - (top.res.inst_259 Int) - (top.res.inst_258 Int) - (top.res.inst_257 Bool) - (top.res.inst_256 Int) - (top.res.inst_255 Int) - (top.res.inst_254 Bool) - (top.res.inst_253 Int) - (top.res.inst_252 Bool) - (top.res.inst_251 Bool) - (top.res.inst_250 Bool) - (top.res.inst_249 Bool) - (top.res.inst_248 Int) - (top.res.inst_247 Int) - (top.res.inst_246 Bool) - (top.res.inst_245 Int) - (top.res.inst_244 Int) - (top.res.inst_243 Bool) - (top.res.inst_242 Int) - (top.res.inst_241 Bool) - (top.res.inst_240 Bool) - (top.res.inst_239 Bool) - (top.res.inst_238 Bool) - (top.res.inst_237 Int) - (top.res.inst_236 Int) - (top.res.inst_235 Bool) - (top.res.inst_234 Int) - (top.res.inst_233 Int) - (top.res.inst_232 Bool) - (top.res.inst_231 Int) - (top.res.inst_230 Int) - (top.res.inst_229 Int) - (top.res.inst_228 Int) - (top.res.inst_227 Int) - (top.res.inst_226 Bool) - (top.res.inst_225 Bool) - (top.res.inst_224 Bool) - (top.res.inst_223 Bool) - (top.res.inst_222 Int) - (top.res.inst_221 Int) - (top.res.inst_220 Int) - (top.res.inst_219 Int) - (top.res.inst_218 Int) - (top.res.inst_217 Int) - (top.res.inst_216 Int) - (top.res.inst_215 Int) - (top.res.inst_214 Int) - (top.res.inst_213 Int) - (top.res.inst_212 Int) - (top.res.inst_211 Int) - (top.res.inst_210 Bool) - (top.res.inst_209 Int) - (top.res.inst_208 Bool) - (top.res.inst_207 Int) - (top.res.inst_206 Bool) - (top.res.inst_205 Bool) - (top.res.inst_204 Bool) - (top.res.inst_203 Bool) - (top.res.inst_202 Bool) - (top.res.inst_201 Bool) - (top.res.inst_200 Bool) - (top.res.inst_199 Bool) - (top.res.inst_198 Bool) - (top.res.inst_197 Bool) - (top.res.inst_196 Bool) - (top.res.inst_195 Bool) - (top.res.inst_194 Bool) - (top.res.inst_193 Bool) - (top.res.inst_192 Bool) - (top.res.inst_191 Bool) - (top.res.inst_190 Bool) - (top.res.inst_189 Bool) - (top.res.inst_188 Bool) - (top.res.inst_187 Bool) - (top.res.inst_186 Bool) - (top.res.inst_185 Bool) - (top.res.inst_184 Bool) - (top.res.inst_183 Bool) - (top.res.inst_182 Bool) - (top.res.inst_181 Bool) - (top.res.inst_180 Bool) - (top.res.inst_179 Bool) - (top.res.inst_178 Bool) - (top.res.inst_177 Bool) - (top.res.inst_176 Bool) - (top.res.inst_175 Bool) - (top.res.inst_174 Int) - (top.res.inst_173 Bool) - (top.res.inst_172 Bool) - (top.res.inst_171 Bool) - (top.res.inst_170 Bool) - (top.res.inst_169 Bool) - (top.res.inst_168 Bool) - (top.res.inst_167 Bool) - (top.res.inst_166 Bool) - (top.res.inst_165 Bool) - (top.res.inst_164 Bool) - (top.res.inst_163 Bool) - (top.res.inst_162 Bool) - (top.res.inst_161 Bool) - (top.res.inst_160 Bool) - (top.res.inst_159 Bool) - (top.res.inst_158 Bool) - (top.res.inst_157 Bool) - (top.res.inst_156 Bool) - (top.res.inst_155 Bool) - (top.res.inst_154 Bool) - (top.res.inst_153 Bool) - (top.res.inst_152 Bool) - (top.res.inst_151 Bool) - (top.res.inst_150 Bool) - (top.res.inst_149 Bool) - (top.res.inst_148 Bool) - (top.res.inst_147 Bool) - (top.res.inst_146 Bool) - (top.res.inst_145 Bool) - (top.res.inst_144 Bool) - (top.res.inst_143 Bool) - (top.res.inst_142 Bool) - (top.res.inst_141 Bool) - (top.res.inst_140 Bool) - (top.res.inst_139 Bool) - (top.res.inst_138 Bool) - (top.res.inst_137 Bool) - (top.res.inst_136 Bool) - (top.res.inst_135 Bool) - (top.res.inst_134 Bool) - (top.res.inst_133 Bool) - (top.res.inst_132 Bool) - (top.res.inst_131 Bool) - (top.res.inst_130 Bool) - (top.res.inst_129 Bool) - (top.res.inst_128 Bool) - (top.res.inst_127 Bool) - (top.res.inst_126 Bool) - (top.res.inst_125 Bool) - (top.res.inst_124 Bool) - (top.res.inst_123 Bool) - (top.res.inst_122 Int) - (top.res.inst_121 Bool) - (top.res.inst_120 Bool) - (top.res.inst_119 Int) - (top.res.inst_118 Int) - (top.res.inst_117 Bool) - (top.res.inst_116 Bool) - (top.res.inst_115 Bool) - (top.res.inst_114 Bool) - (top.res.inst_113 Int) - (top.res.inst_112 Int) - (top.res.inst_111 Bool) - (top.res.inst_110 Bool) - (top.res.inst_109 Bool) - (top.res.inst_108 Bool) - (top.res.inst_107 Bool) - (top.res.inst_106 Bool) - (top.res.inst_105 Bool) - (top.res.inst_104 Bool) - (top.res.inst_103 Int) - (top.res.inst_102 Int) - (top.res.inst_101 Int) - (top.res.inst_100 Int) - (top.res.inst_99 Bool) - (top.res.inst_98 Bool) - (top.res.inst_97 Bool) - (top.res.inst_96 Bool) - (top.res.inst_95 Int) - (top.res.inst_94 Int) - (top.res.inst_93 Int) - (top.res.inst_92 Int) - (top.res.inst_91 Int) - (top.res.inst_90 Int) - (top.res.inst_89 Int) - (top.res.inst_88 Int) - (top.res.inst_87 Int) - (top.res.inst_86 Int) - (top.res.inst_85 Bool) - (top.res.inst_84 Bool) - (top.res.inst_83 Bool) - (top.res.inst_82 Bool) - (top.res.inst_81 Int) - (top.res.inst_80 Int) - (top.res.inst_79 Int) - (top.res.inst_78 Int) - (top.res.inst_77 Bool) - (top.res.inst_76 Int) - (top.res.inst_75 Bool) - (top.res.inst_74 Int) - (top.res.inst_73 Bool) - (top.res.inst_72 Int) - (top.res.inst_71 Bool) - (top.res.inst_70 Int) - (top.res.inst_69 Bool) - (top.res.inst_68 Int) - (top.res.inst_67 Bool) - (top.res.inst_66 Int) - (top.res.inst_65 Bool) - (top.res.inst_64 Int) - (top.res.inst_63 Bool) - (top.res.inst_62 Int) - (top.res.inst_61 Bool) - (top.res.inst_60 Bool) - (top.res.inst_59 Bool) - (top.res.inst_58 Bool) - (top.res.inst_57 Bool) - (top.res.inst_56 Bool) - (top.res.inst_55 Bool) - (top.res.inst_54 Bool) - (top.res.inst_53 Bool) - (top.res.inst_52 Bool) - (top.res.inst_51 Bool) - (top.res.inst_50 Bool) - (top.res.inst_49 Int) - (top.res.inst_48 Bool) - (top.res.inst_47 Bool) - (top.res.inst_46 Bool) - (top.res.inst_45 Bool) - (top.res.inst_44 Bool) - (top.res.inst_43 Bool) - (top.res.inst_42 Bool) - (top.res.inst_41 Bool) - (top.res.inst_40 Bool) - (top.res.inst_39 Bool) - (top.res.inst_38 Bool) - (top.res.inst_37 Int) - (top.res.inst_36 Int) - (top.res.inst_35 Int) - (top.res.inst_34 Int) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Int) - (top.res.inst_23 Int) - (top.res.inst_22 Int) - (top.res.inst_21 Int) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Int) - (top.res.inst_10 Int) - (top.res.inst_9 Int) - (top.res.inst_8 Int) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (let - ((X1 Bool top.res.abs_18)) - (and - (= top.res.abs_39 (not X1)) - (let - ((X2 Bool top.res.abs_17)) - (and - (= top.res.abs_38 (not X2)) - (let - ((X3 Bool top.res.abs_16)) - (and - (= top.res.abs_37 (not X3)) - (let - ((X4 Bool top.res.abs_15)) - (and - (= top.res.abs_36 (not X4)) - (let - ((X5 Bool top.res.abs_14)) - (and - (= top.res.abs_34 (not X5)) - (let - ((X6 Bool top.res.abs_13)) - (and - (= top.res.abs_33 (not X6)) - (let - ((X7 Bool top.res.abs_12)) - (and - (= top.res.abs_32 (not X7)) - (let - ((X8 Bool top.res.abs_11)) - (and - (= top.res.abs_31 (not X8)) - (let - ((X9 Bool top.res.abs_20)) - (let - ((X10 Bool top.res.abs_19)) - (let - ((X11 Bool top.res.abs_2)) - (let - ((X12 Int top.res.abs_1)) - (let - ((X13 Bool (=> (= X12 3) (not X11)))) - (let - ((X14 - Bool (=> - (= X12 3) - (and - (and - (and (not X10) (not X9)) - top.res.abs_35) - top.res.abs_40)))) - (let - ((X15 - Bool (or - (or - (or - (or (or (= X12 1) (= X12 2)) (= X12 3)) - (= X12 4)) - (= X12 5)) - (= X12 6)))) - (and - (= top.usr.OK (and (and X15 X14) X13)) - (__node_init_BoilerController_0 - top.usr.stop - top.usr.steam_boiler_waiting - top.usr.physical_units_ready - top.usr.level - top.usr.steam - top.usr.pump_state_0 - top.usr.pump_state_1 - top.usr.pump_state_2 - top.usr.pump_state_3 - top.usr.pump_control_state_0 - top.usr.pump_control_state_1 - top.usr.pump_control_state_2 - top.usr.pump_control_state_3 - top.usr.pump_repaired_0 - top.usr.pump_repaired_1 - top.usr.pump_repaired_2 - top.usr.pump_repaired_3 - top.usr.pump_control_repaired_0 - top.usr.pump_control_repaired_1 - top.usr.pump_control_repaired_2 - top.usr.pump_control_repaired_3 - top.usr.level_repaired - top.usr.steam_repaired - top.usr.pump_failure_acknowledgement_0 - top.usr.pump_failure_acknowledgement_1 - top.usr.pump_failure_acknowledgement_2 - top.usr.pump_failure_acknowledgement_3 - top.usr.pump_control_failure_acknowledgement_0 - top.usr.pump_control_failure_acknowledgement_1 - top.usr.pump_control_failure_acknowledgement_2 - top.usr.pump_control_failure_acknowledgement_3 - top.usr.level_failure_acknowledgement - top.usr.steam_failure_acknowledgement - top.res.nondet_32 - top.res.nondet_31 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.abs_10 - top.res.abs_11 - top.res.abs_12 - top.res.abs_13 - top.res.abs_14 - top.res.abs_15 - top.res.abs_16 - top.res.abs_17 - top.res.abs_18 - top.res.abs_19 - top.res.abs_20 - top.res.abs_21 - top.res.abs_22 - top.res.abs_23 - top.res.abs_24 - top.res.abs_25 - top.res.abs_26 - top.res.abs_27 - top.res.abs_28 - top.res.abs_29 - top.res.abs_30 - top.res.inst_297 - top.res.inst_296 - top.res.inst_295 - top.res.inst_294 - top.res.inst_293 - top.res.inst_292 - top.res.inst_291 - top.res.inst_290 - top.res.inst_289 - top.res.inst_288 - top.res.inst_287 - top.res.inst_286 - top.res.inst_285 - top.res.inst_284 - top.res.inst_283 - top.res.inst_282 - top.res.inst_281 - top.res.inst_280 - top.res.inst_279 - top.res.inst_278 - top.res.inst_277 - top.res.inst_276 - top.res.inst_275 - top.res.inst_274 - top.res.inst_273 - top.res.inst_272 - top.res.inst_271 - top.res.inst_270 - top.res.inst_269 - top.res.inst_268 - top.res.inst_267 - top.res.inst_266 - top.res.inst_265 - top.res.inst_264 - top.res.inst_263 - top.res.inst_262 - top.res.inst_261 - top.res.inst_260 - top.res.inst_259 - top.res.inst_258 - top.res.inst_257 - top.res.inst_256 - top.res.inst_255 - top.res.inst_254 - top.res.inst_253 - top.res.inst_252 - top.res.inst_251 - top.res.inst_250 - top.res.inst_249 - top.res.inst_248 - top.res.inst_247 - top.res.inst_246 - top.res.inst_245 - top.res.inst_244 - top.res.inst_243 - top.res.inst_242 - top.res.inst_241 - top.res.inst_240 - top.res.inst_239 - top.res.inst_238 - top.res.inst_237 - top.res.inst_236 - top.res.inst_235 - top.res.inst_234 - top.res.inst_233 - top.res.inst_232 - top.res.inst_231 - top.res.inst_230 - top.res.inst_229 - top.res.inst_228 - top.res.inst_227 - top.res.inst_226 - top.res.inst_225 - top.res.inst_224 - top.res.inst_223 - top.res.inst_222 - top.res.inst_221 - top.res.inst_220 - top.res.inst_219 - top.res.inst_218 - top.res.inst_217 - top.res.inst_216 - top.res.inst_215 - top.res.inst_214 - top.res.inst_213 - top.res.inst_212 - top.res.inst_211 - top.res.inst_210 - top.res.inst_209 - top.res.inst_208 - top.res.inst_207 - top.res.inst_206 - top.res.inst_205 - top.res.inst_204 - top.res.inst_203 - top.res.inst_202 - top.res.inst_201 - top.res.inst_200 - top.res.inst_199 - top.res.inst_198 - top.res.inst_197 - top.res.inst_196 - top.res.inst_195 - top.res.inst_194 - top.res.inst_193 - top.res.inst_192 - top.res.inst_191 - top.res.inst_190 - top.res.inst_189 - top.res.inst_188 - top.res.inst_187 - top.res.inst_186 - top.res.inst_185 - top.res.inst_184 - top.res.inst_183 - top.res.inst_182 - top.res.inst_181 - top.res.inst_180 - top.res.inst_179 - top.res.inst_178 - top.res.inst_177 - top.res.inst_176 - top.res.inst_175 - top.res.inst_174 - top.res.inst_173 - top.res.inst_172 - top.res.inst_171 - top.res.inst_170 - top.res.inst_169 - top.res.inst_168 - top.res.inst_167 - top.res.inst_166 - top.res.inst_165 - top.res.inst_164 - top.res.inst_163 - top.res.inst_162 - top.res.inst_161 - top.res.inst_160 - top.res.inst_159 - top.res.inst_158 - top.res.inst_157 - top.res.inst_156 - top.res.inst_155 - top.res.inst_154 - top.res.inst_153 - top.res.inst_152 - top.res.inst_151 - top.res.inst_150 - top.res.inst_149 - top.res.inst_148 - top.res.inst_147 - top.res.inst_146 - top.res.inst_145 - top.res.inst_144 - top.res.inst_143 - top.res.inst_142 - top.res.inst_141 - top.res.inst_140 - top.res.inst_139 - top.res.inst_138 - top.res.inst_137 - top.res.inst_136 - top.res.inst_135 - top.res.inst_134 - top.res.inst_133 - top.res.inst_132 - top.res.inst_131 - top.res.inst_130 - top.res.inst_129 - top.res.inst_128 - top.res.inst_127 - top.res.inst_126 - top.res.inst_125 - top.res.inst_124 - top.res.inst_123 - top.res.inst_122 - top.res.inst_121 - top.res.inst_120 - top.res.inst_119 - top.res.inst_118 - top.res.inst_117 - top.res.inst_116 - top.res.inst_115 - top.res.inst_114 - top.res.inst_113 - top.res.inst_112 - top.res.inst_111 - top.res.inst_110 - top.res.inst_109 - top.res.inst_108 - top.res.inst_107 - top.res.inst_106 - top.res.inst_105 - top.res.inst_104 - top.res.inst_103 - top.res.inst_102 - top.res.inst_101 - top.res.inst_100 - top.res.inst_99 - top.res.inst_98 - top.res.inst_97 - top.res.inst_96 - top.res.inst_95 - top.res.inst_94 - top.res.inst_93 - top.res.inst_92 - top.res.inst_91 - top.res.inst_90 - top.res.inst_89 - top.res.inst_88 - top.res.inst_87 - top.res.inst_86 - top.res.inst_85 - top.res.inst_84 - top.res.inst_83 - top.res.inst_82 - top.res.inst_81 - top.res.inst_80 - top.res.inst_79 - top.res.inst_78 - top.res.inst_77 - top.res.inst_76 - top.res.inst_75 - top.res.inst_74 - top.res.inst_73 - top.res.inst_72 - top.res.inst_71 - top.res.inst_70 - top.res.inst_69 - top.res.inst_68 - top.res.inst_67 - top.res.inst_66 - top.res.inst_65 - top.res.inst_64 - top.res.inst_63 - top.res.inst_62 - top.res.inst_61 - top.res.inst_60 - top.res.inst_59 - top.res.inst_58 - top.res.inst_57 - top.res.inst_56 - top.res.inst_55 - top.res.inst_54 - top.res.inst_53 - top.res.inst_52 - top.res.inst_51 - top.res.inst_50 - top.res.inst_49 - top.res.inst_48 - top.res.inst_47 - top.res.inst_46 - top.res.inst_45 - top.res.inst_44 - top.res.inst_43 - top.res.inst_42 - top.res.inst_41 - top.res.inst_40 - top.res.inst_39 - top.res.inst_38 - top.res.inst_37 - top.res.inst_36 - top.res.inst_35 - top.res.inst_34 - top.res.inst_33 - top.res.inst_32 - top.res.inst_31 - top.res.inst_30 - top.res.inst_29 - top.res.inst_28 - top.res.inst_27 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2) - (__node_init_AND_0 - top.res.abs_31 - top.res.abs_32 - top.res.abs_33 - top.res.abs_34 - top.res.abs_35 - top.res.inst_1) - (__node_init_AND_0 - top.res.abs_36 - top.res.abs_37 - top.res.abs_38 - top.res.abs_39 - top.res.abs_40 - top.res.inst_0) - top.res.init_flag)))))))))))))))))))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.stop Bool) - (top.usr.steam_boiler_waiting Bool) - (top.usr.physical_units_ready Bool) - (top.usr.level Int) - (top.usr.steam Int) - (top.usr.pump_state_0 Int) - (top.usr.pump_state_1 Int) - (top.usr.pump_state_2 Int) - (top.usr.pump_state_3 Int) - (top.usr.pump_control_state_0 Bool) - (top.usr.pump_control_state_1 Bool) - (top.usr.pump_control_state_2 Bool) - (top.usr.pump_control_state_3 Bool) - (top.usr.pump_repaired_0 Bool) - (top.usr.pump_repaired_1 Bool) - (top.usr.pump_repaired_2 Bool) - (top.usr.pump_repaired_3 Bool) - (top.usr.pump_control_repaired_0 Bool) - (top.usr.pump_control_repaired_1 Bool) - (top.usr.pump_control_repaired_2 Bool) - (top.usr.pump_control_repaired_3 Bool) - (top.usr.level_repaired Bool) - (top.usr.steam_repaired Bool) - (top.usr.pump_failure_acknowledgement_0 Bool) - (top.usr.pump_failure_acknowledgement_1 Bool) - (top.usr.pump_failure_acknowledgement_2 Bool) - (top.usr.pump_failure_acknowledgement_3 Bool) - (top.usr.pump_control_failure_acknowledgement_0 Bool) - (top.usr.pump_control_failure_acknowledgement_1 Bool) - (top.usr.pump_control_failure_acknowledgement_2 Bool) - (top.usr.pump_control_failure_acknowledgement_3 Bool) - (top.usr.level_failure_acknowledgement Bool) - (top.usr.steam_failure_acknowledgement Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.abs_13 Bool) - (top.res.abs_14 Bool) - (top.res.abs_15 Bool) - (top.res.abs_16 Bool) - (top.res.abs_17 Bool) - (top.res.abs_18 Bool) - (top.res.abs_19 Bool) - (top.res.abs_20 Bool) - (top.res.abs_21 Bool) - (top.res.abs_22 Bool) - (top.res.abs_23 Bool) - (top.res.abs_24 Bool) - (top.res.abs_25 Bool) - (top.res.abs_26 Bool) - (top.res.abs_27 Bool) - (top.res.abs_28 Bool) - (top.res.abs_29 Bool) - (top.res.abs_30 Bool) - (top.res.abs_31 Bool) - (top.res.abs_32 Bool) - (top.res.abs_33 Bool) - (top.res.abs_34 Bool) - (top.res.abs_35 Bool) - (top.res.abs_36 Bool) - (top.res.abs_37 Bool) - (top.res.abs_38 Bool) - (top.res.abs_39 Bool) - (top.res.abs_40 Bool) - (top.res.inst_297 Bool) - (top.res.inst_296 Bool) - (top.res.inst_295 Int) - (top.res.inst_294 Int) - (top.res.inst_293 Int) - (top.res.inst_292 Int) - (top.res.inst_291 Int) - (top.res.inst_290 Int) - (top.res.inst_289 Int) - (top.res.inst_288 Int) - (top.res.inst_287 Int) - (top.res.inst_286 Int) - (top.res.inst_285 Int) - (top.res.inst_284 Int) - (top.res.inst_283 Int) - (top.res.inst_282 Int) - (top.res.inst_281 Int) - (top.res.inst_280 Int) - (top.res.inst_279 Int) - (top.res.inst_278 Bool) - (top.res.inst_277 Int) - (top.res.inst_276 Int) - (top.res.inst_275 Int) - (top.res.inst_274 Bool) - (top.res.inst_273 Bool) - (top.res.inst_272 Bool) - (top.res.inst_271 Bool) - (top.res.inst_270 Int) - (top.res.inst_269 Int) - (top.res.inst_268 Bool) - (top.res.inst_267 Int) - (top.res.inst_266 Int) - (top.res.inst_265 Bool) - (top.res.inst_264 Int) - (top.res.inst_263 Bool) - (top.res.inst_262 Bool) - (top.res.inst_261 Bool) - (top.res.inst_260 Bool) - (top.res.inst_259 Int) - (top.res.inst_258 Int) - (top.res.inst_257 Bool) - (top.res.inst_256 Int) - (top.res.inst_255 Int) - (top.res.inst_254 Bool) - (top.res.inst_253 Int) - (top.res.inst_252 Bool) - (top.res.inst_251 Bool) - (top.res.inst_250 Bool) - (top.res.inst_249 Bool) - (top.res.inst_248 Int) - (top.res.inst_247 Int) - (top.res.inst_246 Bool) - (top.res.inst_245 Int) - (top.res.inst_244 Int) - (top.res.inst_243 Bool) - (top.res.inst_242 Int) - (top.res.inst_241 Bool) - (top.res.inst_240 Bool) - (top.res.inst_239 Bool) - (top.res.inst_238 Bool) - (top.res.inst_237 Int) - (top.res.inst_236 Int) - (top.res.inst_235 Bool) - (top.res.inst_234 Int) - (top.res.inst_233 Int) - (top.res.inst_232 Bool) - (top.res.inst_231 Int) - (top.res.inst_230 Int) - (top.res.inst_229 Int) - (top.res.inst_228 Int) - (top.res.inst_227 Int) - (top.res.inst_226 Bool) - (top.res.inst_225 Bool) - (top.res.inst_224 Bool) - (top.res.inst_223 Bool) - (top.res.inst_222 Int) - (top.res.inst_221 Int) - (top.res.inst_220 Int) - (top.res.inst_219 Int) - (top.res.inst_218 Int) - (top.res.inst_217 Int) - (top.res.inst_216 Int) - (top.res.inst_215 Int) - (top.res.inst_214 Int) - (top.res.inst_213 Int) - (top.res.inst_212 Int) - (top.res.inst_211 Int) - (top.res.inst_210 Bool) - (top.res.inst_209 Int) - (top.res.inst_208 Bool) - (top.res.inst_207 Int) - (top.res.inst_206 Bool) - (top.res.inst_205 Bool) - (top.res.inst_204 Bool) - (top.res.inst_203 Bool) - (top.res.inst_202 Bool) - (top.res.inst_201 Bool) - (top.res.inst_200 Bool) - (top.res.inst_199 Bool) - (top.res.inst_198 Bool) - (top.res.inst_197 Bool) - (top.res.inst_196 Bool) - (top.res.inst_195 Bool) - (top.res.inst_194 Bool) - (top.res.inst_193 Bool) - (top.res.inst_192 Bool) - (top.res.inst_191 Bool) - (top.res.inst_190 Bool) - (top.res.inst_189 Bool) - (top.res.inst_188 Bool) - (top.res.inst_187 Bool) - (top.res.inst_186 Bool) - (top.res.inst_185 Bool) - (top.res.inst_184 Bool) - (top.res.inst_183 Bool) - (top.res.inst_182 Bool) - (top.res.inst_181 Bool) - (top.res.inst_180 Bool) - (top.res.inst_179 Bool) - (top.res.inst_178 Bool) - (top.res.inst_177 Bool) - (top.res.inst_176 Bool) - (top.res.inst_175 Bool) - (top.res.inst_174 Int) - (top.res.inst_173 Bool) - (top.res.inst_172 Bool) - (top.res.inst_171 Bool) - (top.res.inst_170 Bool) - (top.res.inst_169 Bool) - (top.res.inst_168 Bool) - (top.res.inst_167 Bool) - (top.res.inst_166 Bool) - (top.res.inst_165 Bool) - (top.res.inst_164 Bool) - (top.res.inst_163 Bool) - (top.res.inst_162 Bool) - (top.res.inst_161 Bool) - (top.res.inst_160 Bool) - (top.res.inst_159 Bool) - (top.res.inst_158 Bool) - (top.res.inst_157 Bool) - (top.res.inst_156 Bool) - (top.res.inst_155 Bool) - (top.res.inst_154 Bool) - (top.res.inst_153 Bool) - (top.res.inst_152 Bool) - (top.res.inst_151 Bool) - (top.res.inst_150 Bool) - (top.res.inst_149 Bool) - (top.res.inst_148 Bool) - (top.res.inst_147 Bool) - (top.res.inst_146 Bool) - (top.res.inst_145 Bool) - (top.res.inst_144 Bool) - (top.res.inst_143 Bool) - (top.res.inst_142 Bool) - (top.res.inst_141 Bool) - (top.res.inst_140 Bool) - (top.res.inst_139 Bool) - (top.res.inst_138 Bool) - (top.res.inst_137 Bool) - (top.res.inst_136 Bool) - (top.res.inst_135 Bool) - (top.res.inst_134 Bool) - (top.res.inst_133 Bool) - (top.res.inst_132 Bool) - (top.res.inst_131 Bool) - (top.res.inst_130 Bool) - (top.res.inst_129 Bool) - (top.res.inst_128 Bool) - (top.res.inst_127 Bool) - (top.res.inst_126 Bool) - (top.res.inst_125 Bool) - (top.res.inst_124 Bool) - (top.res.inst_123 Bool) - (top.res.inst_122 Int) - (top.res.inst_121 Bool) - (top.res.inst_120 Bool) - (top.res.inst_119 Int) - (top.res.inst_118 Int) - (top.res.inst_117 Bool) - (top.res.inst_116 Bool) - (top.res.inst_115 Bool) - (top.res.inst_114 Bool) - (top.res.inst_113 Int) - (top.res.inst_112 Int) - (top.res.inst_111 Bool) - (top.res.inst_110 Bool) - (top.res.inst_109 Bool) - (top.res.inst_108 Bool) - (top.res.inst_107 Bool) - (top.res.inst_106 Bool) - (top.res.inst_105 Bool) - (top.res.inst_104 Bool) - (top.res.inst_103 Int) - (top.res.inst_102 Int) - (top.res.inst_101 Int) - (top.res.inst_100 Int) - (top.res.inst_99 Bool) - (top.res.inst_98 Bool) - (top.res.inst_97 Bool) - (top.res.inst_96 Bool) - (top.res.inst_95 Int) - (top.res.inst_94 Int) - (top.res.inst_93 Int) - (top.res.inst_92 Int) - (top.res.inst_91 Int) - (top.res.inst_90 Int) - (top.res.inst_89 Int) - (top.res.inst_88 Int) - (top.res.inst_87 Int) - (top.res.inst_86 Int) - (top.res.inst_85 Bool) - (top.res.inst_84 Bool) - (top.res.inst_83 Bool) - (top.res.inst_82 Bool) - (top.res.inst_81 Int) - (top.res.inst_80 Int) - (top.res.inst_79 Int) - (top.res.inst_78 Int) - (top.res.inst_77 Bool) - (top.res.inst_76 Int) - (top.res.inst_75 Bool) - (top.res.inst_74 Int) - (top.res.inst_73 Bool) - (top.res.inst_72 Int) - (top.res.inst_71 Bool) - (top.res.inst_70 Int) - (top.res.inst_69 Bool) - (top.res.inst_68 Int) - (top.res.inst_67 Bool) - (top.res.inst_66 Int) - (top.res.inst_65 Bool) - (top.res.inst_64 Int) - (top.res.inst_63 Bool) - (top.res.inst_62 Int) - (top.res.inst_61 Bool) - (top.res.inst_60 Bool) - (top.res.inst_59 Bool) - (top.res.inst_58 Bool) - (top.res.inst_57 Bool) - (top.res.inst_56 Bool) - (top.res.inst_55 Bool) - (top.res.inst_54 Bool) - (top.res.inst_53 Bool) - (top.res.inst_52 Bool) - (top.res.inst_51 Bool) - (top.res.inst_50 Bool) - (top.res.inst_49 Int) - (top.res.inst_48 Bool) - (top.res.inst_47 Bool) - (top.res.inst_46 Bool) - (top.res.inst_45 Bool) - (top.res.inst_44 Bool) - (top.res.inst_43 Bool) - (top.res.inst_42 Bool) - (top.res.inst_41 Bool) - (top.res.inst_40 Bool) - (top.res.inst_39 Bool) - (top.res.inst_38 Bool) - (top.res.inst_37 Int) - (top.res.inst_36 Int) - (top.res.inst_35 Int) - (top.res.inst_34 Int) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Int) - (top.res.inst_23 Int) - (top.res.inst_22 Int) - (top.res.inst_21 Int) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Int) - (top.res.inst_10 Int) - (top.res.inst_9 Int) - (top.res.inst_8 Int) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.stop! Bool) - (top.usr.steam_boiler_waiting! Bool) - (top.usr.physical_units_ready! Bool) - (top.usr.level! Int) - (top.usr.steam! Int) - (top.usr.pump_state_0! Int) - (top.usr.pump_state_1! Int) - (top.usr.pump_state_2! Int) - (top.usr.pump_state_3! Int) - (top.usr.pump_control_state_0! Bool) - (top.usr.pump_control_state_1! Bool) - (top.usr.pump_control_state_2! Bool) - (top.usr.pump_control_state_3! Bool) - (top.usr.pump_repaired_0! Bool) - (top.usr.pump_repaired_1! Bool) - (top.usr.pump_repaired_2! Bool) - (top.usr.pump_repaired_3! Bool) - (top.usr.pump_control_repaired_0! Bool) - (top.usr.pump_control_repaired_1! Bool) - (top.usr.pump_control_repaired_2! Bool) - (top.usr.pump_control_repaired_3! Bool) - (top.usr.level_repaired! Bool) - (top.usr.steam_repaired! Bool) - (top.usr.pump_failure_acknowledgement_0! Bool) - (top.usr.pump_failure_acknowledgement_1! Bool) - (top.usr.pump_failure_acknowledgement_2! Bool) - (top.usr.pump_failure_acknowledgement_3! Bool) - (top.usr.pump_control_failure_acknowledgement_0! Bool) - (top.usr.pump_control_failure_acknowledgement_1! Bool) - (top.usr.pump_control_failure_acknowledgement_2! Bool) - (top.usr.pump_control_failure_acknowledgement_3! Bool) - (top.usr.level_failure_acknowledgement! Bool) - (top.usr.steam_failure_acknowledgement! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Int) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.abs_12! Bool) - (top.res.abs_13! Bool) - (top.res.abs_14! Bool) - (top.res.abs_15! Bool) - (top.res.abs_16! Bool) - (top.res.abs_17! Bool) - (top.res.abs_18! Bool) - (top.res.abs_19! Bool) - (top.res.abs_20! Bool) - (top.res.abs_21! Bool) - (top.res.abs_22! Bool) - (top.res.abs_23! Bool) - (top.res.abs_24! Bool) - (top.res.abs_25! Bool) - (top.res.abs_26! Bool) - (top.res.abs_27! Bool) - (top.res.abs_28! Bool) - (top.res.abs_29! Bool) - (top.res.abs_30! Bool) - (top.res.abs_31! Bool) - (top.res.abs_32! Bool) - (top.res.abs_33! Bool) - (top.res.abs_34! Bool) - (top.res.abs_35! Bool) - (top.res.abs_36! Bool) - (top.res.abs_37! Bool) - (top.res.abs_38! Bool) - (top.res.abs_39! Bool) - (top.res.abs_40! Bool) - (top.res.inst_297! Bool) - (top.res.inst_296! Bool) - (top.res.inst_295! Int) - (top.res.inst_294! Int) - (top.res.inst_293! Int) - (top.res.inst_292! Int) - (top.res.inst_291! Int) - (top.res.inst_290! Int) - (top.res.inst_289! Int) - (top.res.inst_288! Int) - (top.res.inst_287! Int) - (top.res.inst_286! Int) - (top.res.inst_285! Int) - (top.res.inst_284! Int) - (top.res.inst_283! Int) - (top.res.inst_282! Int) - (top.res.inst_281! Int) - (top.res.inst_280! Int) - (top.res.inst_279! Int) - (top.res.inst_278! Bool) - (top.res.inst_277! Int) - (top.res.inst_276! Int) - (top.res.inst_275! Int) - (top.res.inst_274! Bool) - (top.res.inst_273! Bool) - (top.res.inst_272! Bool) - (top.res.inst_271! Bool) - (top.res.inst_270! Int) - (top.res.inst_269! Int) - (top.res.inst_268! Bool) - (top.res.inst_267! Int) - (top.res.inst_266! Int) - (top.res.inst_265! Bool) - (top.res.inst_264! Int) - (top.res.inst_263! Bool) - (top.res.inst_262! Bool) - (top.res.inst_261! Bool) - (top.res.inst_260! Bool) - (top.res.inst_259! Int) - (top.res.inst_258! Int) - (top.res.inst_257! Bool) - (top.res.inst_256! Int) - (top.res.inst_255! Int) - (top.res.inst_254! Bool) - (top.res.inst_253! Int) - (top.res.inst_252! Bool) - (top.res.inst_251! Bool) - (top.res.inst_250! Bool) - (top.res.inst_249! Bool) - (top.res.inst_248! Int) - (top.res.inst_247! Int) - (top.res.inst_246! Bool) - (top.res.inst_245! Int) - (top.res.inst_244! Int) - (top.res.inst_243! Bool) - (top.res.inst_242! Int) - (top.res.inst_241! Bool) - (top.res.inst_240! Bool) - (top.res.inst_239! Bool) - (top.res.inst_238! Bool) - (top.res.inst_237! Int) - (top.res.inst_236! Int) - (top.res.inst_235! Bool) - (top.res.inst_234! Int) - (top.res.inst_233! Int) - (top.res.inst_232! Bool) - (top.res.inst_231! Int) - (top.res.inst_230! Int) - (top.res.inst_229! Int) - (top.res.inst_228! Int) - (top.res.inst_227! Int) - (top.res.inst_226! Bool) - (top.res.inst_225! Bool) - (top.res.inst_224! Bool) - (top.res.inst_223! Bool) - (top.res.inst_222! Int) - (top.res.inst_221! Int) - (top.res.inst_220! Int) - (top.res.inst_219! Int) - (top.res.inst_218! Int) - (top.res.inst_217! Int) - (top.res.inst_216! Int) - (top.res.inst_215! Int) - (top.res.inst_214! Int) - (top.res.inst_213! Int) - (top.res.inst_212! Int) - (top.res.inst_211! Int) - (top.res.inst_210! Bool) - (top.res.inst_209! Int) - (top.res.inst_208! Bool) - (top.res.inst_207! Int) - (top.res.inst_206! Bool) - (top.res.inst_205! Bool) - (top.res.inst_204! Bool) - (top.res.inst_203! Bool) - (top.res.inst_202! Bool) - (top.res.inst_201! Bool) - (top.res.inst_200! Bool) - (top.res.inst_199! Bool) - (top.res.inst_198! Bool) - (top.res.inst_197! Bool) - (top.res.inst_196! Bool) - (top.res.inst_195! Bool) - (top.res.inst_194! Bool) - (top.res.inst_193! Bool) - (top.res.inst_192! Bool) - (top.res.inst_191! Bool) - (top.res.inst_190! Bool) - (top.res.inst_189! Bool) - (top.res.inst_188! Bool) - (top.res.inst_187! Bool) - (top.res.inst_186! Bool) - (top.res.inst_185! Bool) - (top.res.inst_184! Bool) - (top.res.inst_183! Bool) - (top.res.inst_182! Bool) - (top.res.inst_181! Bool) - (top.res.inst_180! Bool) - (top.res.inst_179! Bool) - (top.res.inst_178! Bool) - (top.res.inst_177! Bool) - (top.res.inst_176! Bool) - (top.res.inst_175! Bool) - (top.res.inst_174! Int) - (top.res.inst_173! Bool) - (top.res.inst_172! Bool) - (top.res.inst_171! Bool) - (top.res.inst_170! Bool) - (top.res.inst_169! Bool) - (top.res.inst_168! Bool) - (top.res.inst_167! Bool) - (top.res.inst_166! Bool) - (top.res.inst_165! Bool) - (top.res.inst_164! Bool) - (top.res.inst_163! Bool) - (top.res.inst_162! Bool) - (top.res.inst_161! Bool) - (top.res.inst_160! Bool) - (top.res.inst_159! Bool) - (top.res.inst_158! Bool) - (top.res.inst_157! Bool) - (top.res.inst_156! Bool) - (top.res.inst_155! Bool) - (top.res.inst_154! Bool) - (top.res.inst_153! Bool) - (top.res.inst_152! Bool) - (top.res.inst_151! Bool) - (top.res.inst_150! Bool) - (top.res.inst_149! Bool) - (top.res.inst_148! Bool) - (top.res.inst_147! Bool) - (top.res.inst_146! Bool) - (top.res.inst_145! Bool) - (top.res.inst_144! Bool) - (top.res.inst_143! Bool) - (top.res.inst_142! Bool) - (top.res.inst_141! Bool) - (top.res.inst_140! Bool) - (top.res.inst_139! Bool) - (top.res.inst_138! Bool) - (top.res.inst_137! Bool) - (top.res.inst_136! Bool) - (top.res.inst_135! Bool) - (top.res.inst_134! Bool) - (top.res.inst_133! Bool) - (top.res.inst_132! Bool) - (top.res.inst_131! Bool) - (top.res.inst_130! Bool) - (top.res.inst_129! Bool) - (top.res.inst_128! Bool) - (top.res.inst_127! Bool) - (top.res.inst_126! Bool) - (top.res.inst_125! Bool) - (top.res.inst_124! Bool) - (top.res.inst_123! Bool) - (top.res.inst_122! Int) - (top.res.inst_121! Bool) - (top.res.inst_120! Bool) - (top.res.inst_119! Int) - (top.res.inst_118! Int) - (top.res.inst_117! Bool) - (top.res.inst_116! Bool) - (top.res.inst_115! Bool) - (top.res.inst_114! Bool) - (top.res.inst_113! Int) - (top.res.inst_112! Int) - (top.res.inst_111! Bool) - (top.res.inst_110! Bool) - (top.res.inst_109! Bool) - (top.res.inst_108! Bool) - (top.res.inst_107! Bool) - (top.res.inst_106! Bool) - (top.res.inst_105! Bool) - (top.res.inst_104! Bool) - (top.res.inst_103! Int) - (top.res.inst_102! Int) - (top.res.inst_101! Int) - (top.res.inst_100! Int) - (top.res.inst_99! Bool) - (top.res.inst_98! Bool) - (top.res.inst_97! Bool) - (top.res.inst_96! Bool) - (top.res.inst_95! Int) - (top.res.inst_94! Int) - (top.res.inst_93! Int) - (top.res.inst_92! Int) - (top.res.inst_91! Int) - (top.res.inst_90! Int) - (top.res.inst_89! Int) - (top.res.inst_88! Int) - (top.res.inst_87! Int) - (top.res.inst_86! Int) - (top.res.inst_85! Bool) - (top.res.inst_84! Bool) - (top.res.inst_83! Bool) - (top.res.inst_82! Bool) - (top.res.inst_81! Int) - (top.res.inst_80! Int) - (top.res.inst_79! Int) - (top.res.inst_78! Int) - (top.res.inst_77! Bool) - (top.res.inst_76! Int) - (top.res.inst_75! Bool) - (top.res.inst_74! Int) - (top.res.inst_73! Bool) - (top.res.inst_72! Int) - (top.res.inst_71! Bool) - (top.res.inst_70! Int) - (top.res.inst_69! Bool) - (top.res.inst_68! Int) - (top.res.inst_67! Bool) - (top.res.inst_66! Int) - (top.res.inst_65! Bool) - (top.res.inst_64! Int) - (top.res.inst_63! Bool) - (top.res.inst_62! Int) - (top.res.inst_61! Bool) - (top.res.inst_60! Bool) - (top.res.inst_59! Bool) - (top.res.inst_58! Bool) - (top.res.inst_57! Bool) - (top.res.inst_56! Bool) - (top.res.inst_55! Bool) - (top.res.inst_54! Bool) - (top.res.inst_53! Bool) - (top.res.inst_52! Bool) - (top.res.inst_51! Bool) - (top.res.inst_50! Bool) - (top.res.inst_49! Int) - (top.res.inst_48! Bool) - (top.res.inst_47! Bool) - (top.res.inst_46! Bool) - (top.res.inst_45! Bool) - (top.res.inst_44! Bool) - (top.res.inst_43! Bool) - (top.res.inst_42! Bool) - (top.res.inst_41! Bool) - (top.res.inst_40! Bool) - (top.res.inst_39! Bool) - (top.res.inst_38! Bool) - (top.res.inst_37! Int) - (top.res.inst_36! Int) - (top.res.inst_35! Int) - (top.res.inst_34! Int) - (top.res.inst_33! Bool) - (top.res.inst_32! Bool) - (top.res.inst_31! Bool) - (top.res.inst_30! Bool) - (top.res.inst_29! Bool) - (top.res.inst_28! Bool) - (top.res.inst_27! Bool) - (top.res.inst_26! Bool) - (top.res.inst_25! Bool) - (top.res.inst_24! Int) - (top.res.inst_23! Int) - (top.res.inst_22! Int) - (top.res.inst_21! Int) - (top.res.inst_20! Bool) - (top.res.inst_19! Bool) - (top.res.inst_18! Bool) - (top.res.inst_17! Bool) - (top.res.inst_16! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Bool) - (top.res.inst_11! Int) - (top.res.inst_10! Int) - (top.res.inst_9! Int) - (top.res.inst_8! Int) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Bool) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (let - ((X1 Bool top.res.abs_18!)) - (and - (= top.res.abs_39! (not X1)) - (let - ((X2 Bool top.res.abs_17!)) - (and - (= top.res.abs_38! (not X2)) - (let - ((X3 Bool top.res.abs_16!)) - (and - (= top.res.abs_37! (not X3)) - (let - ((X4 Bool top.res.abs_15!)) - (and - (= top.res.abs_36! (not X4)) - (let - ((X5 Bool top.res.abs_14!)) - (and - (= top.res.abs_34! (not X5)) - (let - ((X6 Bool top.res.abs_13!)) - (and - (= top.res.abs_33! (not X6)) - (let - ((X7 Bool top.res.abs_12!)) - (and - (= top.res.abs_32! (not X7)) - (let - ((X8 Bool top.res.abs_11!)) - (and - (= top.res.abs_31! (not X8)) - (let - ((X9 Bool top.res.abs_20!)) - (let - ((X10 Bool top.res.abs_19!)) - (let - ((X11 Bool top.res.abs_2!)) - (let - ((X12 Int top.res.abs_1!)) - (let - ((X13 Bool (=> (= X12 3) (not X11)))) - (let - ((X14 - Bool (=> - (= X12 3) - (and - (and - (and (not X10) (not X9)) - top.res.abs_35!) - top.res.abs_40!)))) - (let - ((X15 - Bool (or - (or - (or - (or (or (= X12 1) (= X12 2)) (= X12 3)) - (= X12 4)) - (= X12 5)) - (= X12 6)))) - (and - (= top.usr.OK! (and (and X15 X14) X13)) - (__node_trans_BoilerController_0 - top.usr.stop! - top.usr.steam_boiler_waiting! - top.usr.physical_units_ready! - top.usr.level! - top.usr.steam! - top.usr.pump_state_0! - top.usr.pump_state_1! - top.usr.pump_state_2! - top.usr.pump_state_3! - top.usr.pump_control_state_0! - top.usr.pump_control_state_1! - top.usr.pump_control_state_2! - top.usr.pump_control_state_3! - top.usr.pump_repaired_0! - top.usr.pump_repaired_1! - top.usr.pump_repaired_2! - top.usr.pump_repaired_3! - top.usr.pump_control_repaired_0! - top.usr.pump_control_repaired_1! - top.usr.pump_control_repaired_2! - top.usr.pump_control_repaired_3! - top.usr.level_repaired! - top.usr.steam_repaired! - top.usr.pump_failure_acknowledgement_0! - top.usr.pump_failure_acknowledgement_1! - top.usr.pump_failure_acknowledgement_2! - top.usr.pump_failure_acknowledgement_3! - top.usr.pump_control_failure_acknowledgement_0! - top.usr.pump_control_failure_acknowledgement_1! - top.usr.pump_control_failure_acknowledgement_2! - top.usr.pump_control_failure_acknowledgement_3! - top.usr.level_failure_acknowledgement! - top.usr.steam_failure_acknowledgement! - top.res.nondet_32 - top.res.nondet_31 - top.res.nondet_30 - top.res.nondet_29 - top.res.nondet_28 - top.res.nondet_27 - top.res.nondet_26 - top.res.nondet_25 - top.res.nondet_24 - top.res.nondet_23 - top.res.nondet_22 - top.res.nondet_21 - top.res.nondet_20 - top.res.nondet_19 - top.res.nondet_18 - top.res.nondet_17 - top.res.nondet_16 - top.res.nondet_15 - top.res.nondet_14 - top.res.nondet_13 - top.res.nondet_12 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.abs_10! - top.res.abs_11! - top.res.abs_12! - top.res.abs_13! - top.res.abs_14! - top.res.abs_15! - top.res.abs_16! - top.res.abs_17! - top.res.abs_18! - top.res.abs_19! - top.res.abs_20! - top.res.abs_21! - top.res.abs_22! - top.res.abs_23! - top.res.abs_24! - top.res.abs_25! - top.res.abs_26! - top.res.abs_27! - top.res.abs_28! - top.res.abs_29! - top.res.abs_30! - top.res.inst_297! - top.res.inst_296! - top.res.inst_295! - top.res.inst_294! - top.res.inst_293! - top.res.inst_292! - top.res.inst_291! - top.res.inst_290! - top.res.inst_289! - top.res.inst_288! - top.res.inst_287! - top.res.inst_286! - top.res.inst_285! - top.res.inst_284! - top.res.inst_283! - top.res.inst_282! - top.res.inst_281! - top.res.inst_280! - top.res.inst_279! - top.res.inst_278! - top.res.inst_277! - top.res.inst_276! - top.res.inst_275! - top.res.inst_274! - top.res.inst_273! - top.res.inst_272! - top.res.inst_271! - top.res.inst_270! - top.res.inst_269! - top.res.inst_268! - top.res.inst_267! - top.res.inst_266! - top.res.inst_265! - top.res.inst_264! - top.res.inst_263! - top.res.inst_262! - top.res.inst_261! - top.res.inst_260! - top.res.inst_259! - top.res.inst_258! - top.res.inst_257! - top.res.inst_256! - top.res.inst_255! - top.res.inst_254! - top.res.inst_253! - top.res.inst_252! - top.res.inst_251! - top.res.inst_250! - top.res.inst_249! - top.res.inst_248! - top.res.inst_247! - top.res.inst_246! - top.res.inst_245! - top.res.inst_244! - top.res.inst_243! - top.res.inst_242! - top.res.inst_241! - top.res.inst_240! - top.res.inst_239! - top.res.inst_238! - top.res.inst_237! - top.res.inst_236! - top.res.inst_235! - top.res.inst_234! - top.res.inst_233! - top.res.inst_232! - top.res.inst_231! - top.res.inst_230! - top.res.inst_229! - top.res.inst_228! - top.res.inst_227! - top.res.inst_226! - top.res.inst_225! - top.res.inst_224! - top.res.inst_223! - top.res.inst_222! - top.res.inst_221! - top.res.inst_220! - top.res.inst_219! - top.res.inst_218! - top.res.inst_217! - top.res.inst_216! - top.res.inst_215! - top.res.inst_214! - top.res.inst_213! - top.res.inst_212! - top.res.inst_211! - top.res.inst_210! - top.res.inst_209! - top.res.inst_208! - top.res.inst_207! - top.res.inst_206! - top.res.inst_205! - top.res.inst_204! - top.res.inst_203! - top.res.inst_202! - top.res.inst_201! - top.res.inst_200! - top.res.inst_199! - top.res.inst_198! - top.res.inst_197! - top.res.inst_196! - top.res.inst_195! - top.res.inst_194! - top.res.inst_193! - top.res.inst_192! - top.res.inst_191! - top.res.inst_190! - top.res.inst_189! - top.res.inst_188! - top.res.inst_187! - top.res.inst_186! - top.res.inst_185! - top.res.inst_184! - top.res.inst_183! - top.res.inst_182! - top.res.inst_181! - top.res.inst_180! - top.res.inst_179! - top.res.inst_178! - top.res.inst_177! - top.res.inst_176! - top.res.inst_175! - top.res.inst_174! - top.res.inst_173! - top.res.inst_172! - top.res.inst_171! - top.res.inst_170! - top.res.inst_169! - top.res.inst_168! - top.res.inst_167! - top.res.inst_166! - top.res.inst_165! - top.res.inst_164! - top.res.inst_163! - top.res.inst_162! - top.res.inst_161! - top.res.inst_160! - top.res.inst_159! - top.res.inst_158! - top.res.inst_157! - top.res.inst_156! - top.res.inst_155! - top.res.inst_154! - top.res.inst_153! - top.res.inst_152! - top.res.inst_151! - top.res.inst_150! - top.res.inst_149! - top.res.inst_148! - top.res.inst_147! - top.res.inst_146! - top.res.inst_145! - top.res.inst_144! - top.res.inst_143! - top.res.inst_142! - top.res.inst_141! - top.res.inst_140! - top.res.inst_139! - top.res.inst_138! - top.res.inst_137! - top.res.inst_136! - top.res.inst_135! - top.res.inst_134! - top.res.inst_133! - top.res.inst_132! - top.res.inst_131! - top.res.inst_130! - top.res.inst_129! - top.res.inst_128! - top.res.inst_127! - top.res.inst_126! - top.res.inst_125! - top.res.inst_124! - top.res.inst_123! - top.res.inst_122! - top.res.inst_121! - top.res.inst_120! - top.res.inst_119! - top.res.inst_118! - top.res.inst_117! - top.res.inst_116! - top.res.inst_115! - top.res.inst_114! - top.res.inst_113! - top.res.inst_112! - top.res.inst_111! - top.res.inst_110! - top.res.inst_109! - top.res.inst_108! - top.res.inst_107! - top.res.inst_106! - top.res.inst_105! - top.res.inst_104! - top.res.inst_103! - top.res.inst_102! - top.res.inst_101! - top.res.inst_100! - top.res.inst_99! - top.res.inst_98! - top.res.inst_97! - top.res.inst_96! - top.res.inst_95! - top.res.inst_94! - top.res.inst_93! - top.res.inst_92! - top.res.inst_91! - top.res.inst_90! - top.res.inst_89! - top.res.inst_88! - top.res.inst_87! - top.res.inst_86! - top.res.inst_85! - top.res.inst_84! - top.res.inst_83! - top.res.inst_82! - top.res.inst_81! - top.res.inst_80! - top.res.inst_79! - top.res.inst_78! - top.res.inst_77! - top.res.inst_76! - top.res.inst_75! - top.res.inst_74! - top.res.inst_73! - top.res.inst_72! - top.res.inst_71! - top.res.inst_70! - top.res.inst_69! - top.res.inst_68! - top.res.inst_67! - top.res.inst_66! - top.res.inst_65! - top.res.inst_64! - top.res.inst_63! - top.res.inst_62! - top.res.inst_61! - top.res.inst_60! - top.res.inst_59! - top.res.inst_58! - top.res.inst_57! - top.res.inst_56! - top.res.inst_55! - top.res.inst_54! - top.res.inst_53! - top.res.inst_52! - top.res.inst_51! - top.res.inst_50! - top.res.inst_49! - top.res.inst_48! - top.res.inst_47! - top.res.inst_46! - top.res.inst_45! - top.res.inst_44! - top.res.inst_43! - top.res.inst_42! - top.res.inst_41! - top.res.inst_40! - top.res.inst_39! - top.res.inst_38! - top.res.inst_37! - top.res.inst_36! - top.res.inst_35! - top.res.inst_34! - top.res.inst_33! - top.res.inst_32! - top.res.inst_31! - top.res.inst_30! - top.res.inst_29! - top.res.inst_28! - top.res.inst_27! - top.res.inst_26! - top.res.inst_25! - top.res.inst_24! - top.res.inst_23! - top.res.inst_22! - top.res.inst_21! - top.res.inst_20! - top.res.inst_19! - top.res.inst_18! - top.res.inst_17! - top.res.inst_16! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.usr.stop - top.usr.steam_boiler_waiting - top.usr.physical_units_ready - top.usr.level - top.usr.steam - top.usr.pump_state_0 - top.usr.pump_state_1 - top.usr.pump_state_2 - top.usr.pump_state_3 - top.usr.pump_control_state_0 - top.usr.pump_control_state_1 - top.usr.pump_control_state_2 - top.usr.pump_control_state_3 - top.usr.pump_repaired_0 - top.usr.pump_repaired_1 - top.usr.pump_repaired_2 - top.usr.pump_repaired_3 - top.usr.pump_control_repaired_0 - top.usr.pump_control_repaired_1 - top.usr.pump_control_repaired_2 - top.usr.pump_control_repaired_3 - top.usr.level_repaired - top.usr.steam_repaired - top.usr.pump_failure_acknowledgement_0 - top.usr.pump_failure_acknowledgement_1 - top.usr.pump_failure_acknowledgement_2 - top.usr.pump_failure_acknowledgement_3 - top.usr.pump_control_failure_acknowledgement_0 - top.usr.pump_control_failure_acknowledgement_1 - top.usr.pump_control_failure_acknowledgement_2 - top.usr.pump_control_failure_acknowledgement_3 - top.usr.level_failure_acknowledgement - top.usr.steam_failure_acknowledgement - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.abs_10 - top.res.abs_11 - top.res.abs_12 - top.res.abs_13 - top.res.abs_14 - top.res.abs_15 - top.res.abs_16 - top.res.abs_17 - top.res.abs_18 - top.res.abs_19 - top.res.abs_20 - top.res.abs_21 - top.res.abs_22 - top.res.abs_23 - top.res.abs_24 - top.res.abs_25 - top.res.abs_26 - top.res.abs_27 - top.res.abs_28 - top.res.abs_29 - top.res.abs_30 - top.res.inst_297 - top.res.inst_296 - top.res.inst_295 - top.res.inst_294 - top.res.inst_293 - top.res.inst_292 - top.res.inst_291 - top.res.inst_290 - top.res.inst_289 - top.res.inst_288 - top.res.inst_287 - top.res.inst_286 - top.res.inst_285 - top.res.inst_284 - top.res.inst_283 - top.res.inst_282 - top.res.inst_281 - top.res.inst_280 - top.res.inst_279 - top.res.inst_278 - top.res.inst_277 - top.res.inst_276 - top.res.inst_275 - top.res.inst_274 - top.res.inst_273 - top.res.inst_272 - top.res.inst_271 - top.res.inst_270 - top.res.inst_269 - top.res.inst_268 - top.res.inst_267 - top.res.inst_266 - top.res.inst_265 - top.res.inst_264 - top.res.inst_263 - top.res.inst_262 - top.res.inst_261 - top.res.inst_260 - top.res.inst_259 - top.res.inst_258 - top.res.inst_257 - top.res.inst_256 - top.res.inst_255 - top.res.inst_254 - top.res.inst_253 - top.res.inst_252 - top.res.inst_251 - top.res.inst_250 - top.res.inst_249 - top.res.inst_248 - top.res.inst_247 - top.res.inst_246 - top.res.inst_245 - top.res.inst_244 - top.res.inst_243 - top.res.inst_242 - top.res.inst_241 - top.res.inst_240 - top.res.inst_239 - top.res.inst_238 - top.res.inst_237 - top.res.inst_236 - top.res.inst_235 - top.res.inst_234 - top.res.inst_233 - top.res.inst_232 - top.res.inst_231 - top.res.inst_230 - top.res.inst_229 - top.res.inst_228 - top.res.inst_227 - top.res.inst_226 - top.res.inst_225 - top.res.inst_224 - top.res.inst_223 - top.res.inst_222 - top.res.inst_221 - top.res.inst_220 - top.res.inst_219 - top.res.inst_218 - top.res.inst_217 - top.res.inst_216 - top.res.inst_215 - top.res.inst_214 - top.res.inst_213 - top.res.inst_212 - top.res.inst_211 - top.res.inst_210 - top.res.inst_209 - top.res.inst_208 - top.res.inst_207 - top.res.inst_206 - top.res.inst_205 - top.res.inst_204 - top.res.inst_203 - top.res.inst_202 - top.res.inst_201 - top.res.inst_200 - top.res.inst_199 - top.res.inst_198 - top.res.inst_197 - top.res.inst_196 - top.res.inst_195 - top.res.inst_194 - top.res.inst_193 - top.res.inst_192 - top.res.inst_191 - top.res.inst_190 - top.res.inst_189 - top.res.inst_188 - top.res.inst_187 - top.res.inst_186 - top.res.inst_185 - top.res.inst_184 - top.res.inst_183 - top.res.inst_182 - top.res.inst_181 - top.res.inst_180 - top.res.inst_179 - top.res.inst_178 - top.res.inst_177 - top.res.inst_176 - top.res.inst_175 - top.res.inst_174 - top.res.inst_173 - top.res.inst_172 - top.res.inst_171 - top.res.inst_170 - top.res.inst_169 - top.res.inst_168 - top.res.inst_167 - top.res.inst_166 - top.res.inst_165 - top.res.inst_164 - top.res.inst_163 - top.res.inst_162 - top.res.inst_161 - top.res.inst_160 - top.res.inst_159 - top.res.inst_158 - top.res.inst_157 - top.res.inst_156 - top.res.inst_155 - top.res.inst_154 - top.res.inst_153 - top.res.inst_152 - top.res.inst_151 - top.res.inst_150 - top.res.inst_149 - top.res.inst_148 - top.res.inst_147 - top.res.inst_146 - top.res.inst_145 - top.res.inst_144 - top.res.inst_143 - top.res.inst_142 - top.res.inst_141 - top.res.inst_140 - top.res.inst_139 - top.res.inst_138 - top.res.inst_137 - top.res.inst_136 - top.res.inst_135 - top.res.inst_134 - top.res.inst_133 - top.res.inst_132 - top.res.inst_131 - top.res.inst_130 - top.res.inst_129 - top.res.inst_128 - top.res.inst_127 - top.res.inst_126 - top.res.inst_125 - top.res.inst_124 - top.res.inst_123 - top.res.inst_122 - top.res.inst_121 - top.res.inst_120 - top.res.inst_119 - top.res.inst_118 - top.res.inst_117 - top.res.inst_116 - top.res.inst_115 - top.res.inst_114 - top.res.inst_113 - top.res.inst_112 - top.res.inst_111 - top.res.inst_110 - top.res.inst_109 - top.res.inst_108 - top.res.inst_107 - top.res.inst_106 - top.res.inst_105 - top.res.inst_104 - top.res.inst_103 - top.res.inst_102 - top.res.inst_101 - top.res.inst_100 - top.res.inst_99 - top.res.inst_98 - top.res.inst_97 - top.res.inst_96 - top.res.inst_95 - top.res.inst_94 - top.res.inst_93 - top.res.inst_92 - top.res.inst_91 - top.res.inst_90 - top.res.inst_89 - top.res.inst_88 - top.res.inst_87 - top.res.inst_86 - top.res.inst_85 - top.res.inst_84 - top.res.inst_83 - top.res.inst_82 - top.res.inst_81 - top.res.inst_80 - top.res.inst_79 - top.res.inst_78 - top.res.inst_77 - top.res.inst_76 - top.res.inst_75 - top.res.inst_74 - top.res.inst_73 - top.res.inst_72 - top.res.inst_71 - top.res.inst_70 - top.res.inst_69 - top.res.inst_68 - top.res.inst_67 - top.res.inst_66 - top.res.inst_65 - top.res.inst_64 - top.res.inst_63 - top.res.inst_62 - top.res.inst_61 - top.res.inst_60 - top.res.inst_59 - top.res.inst_58 - top.res.inst_57 - top.res.inst_56 - top.res.inst_55 - top.res.inst_54 - top.res.inst_53 - top.res.inst_52 - top.res.inst_51 - top.res.inst_50 - top.res.inst_49 - top.res.inst_48 - top.res.inst_47 - top.res.inst_46 - top.res.inst_45 - top.res.inst_44 - top.res.inst_43 - top.res.inst_42 - top.res.inst_41 - top.res.inst_40 - top.res.inst_39 - top.res.inst_38 - top.res.inst_37 - top.res.inst_36 - top.res.inst_35 - top.res.inst_34 - top.res.inst_33 - top.res.inst_32 - top.res.inst_31 - top.res.inst_30 - top.res.inst_29 - top.res.inst_28 - top.res.inst_27 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2) - (__node_trans_AND_0 - top.res.abs_31! - top.res.abs_32! - top.res.abs_33! - top.res.abs_34! - top.res.abs_35! - top.res.inst_1! - top.res.abs_31 - top.res.abs_32 - top.res.abs_33 - top.res.abs_34 - top.res.abs_35 - top.res.inst_1) - (__node_trans_AND_0 - top.res.abs_36! - top.res.abs_37! - top.res.abs_38! - top.res.abs_39! - top.res.abs_40! - top.res.inst_0! - top.res.abs_36 - top.res.abs_37 - top.res.abs_38 - top.res.abs_39 - top.res.abs_40 - top.res.inst_0) - (not top.res.init_flag!))))))))))))))))))))))))) - (= top.res.nondet_32 top.res.nondet_32) - (= top.res.nondet_31 top.res.nondet_31) - (= top.res.nondet_30 top.res.nondet_30) - (= top.res.nondet_29 top.res.nondet_29) - (= top.res.nondet_28 top.res.nondet_28) - (= top.res.nondet_27 top.res.nondet_27) - (= top.res.nondet_26 top.res.nondet_26) - (= top.res.nondet_25 top.res.nondet_25) - (= top.res.nondet_24 top.res.nondet_24) - (= top.res.nondet_23 top.res.nondet_23) - (= top.res.nondet_22 top.res.nondet_22) - (= top.res.nondet_21 top.res.nondet_21) - (= top.res.nondet_20 top.res.nondet_20) - (= top.res.nondet_19 top.res.nondet_19) - (= top.res.nondet_18 top.res.nondet_18) - (= top.res.nondet_17 top.res.nondet_17) - (= top.res.nondet_16 top.res.nondet_16) - (= top.res.nondet_15 top.res.nondet_15) - (= top.res.nondet_14 top.res.nondet_14) - (= top.res.nondet_13 top.res.nondet_13) - (= top.res.nondet_12 top.res.nondet_12) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.stop Bool) - (top.usr.steam_boiler_waiting Bool) - (top.usr.physical_units_ready Bool) - (top.usr.level Int) - (top.usr.steam Int) - (top.usr.pump_state_0 Int) - (top.usr.pump_state_1 Int) - (top.usr.pump_state_2 Int) - (top.usr.pump_state_3 Int) - (top.usr.pump_control_state_0 Bool) - (top.usr.pump_control_state_1 Bool) - (top.usr.pump_control_state_2 Bool) - (top.usr.pump_control_state_3 Bool) - (top.usr.pump_repaired_0 Bool) - (top.usr.pump_repaired_1 Bool) - (top.usr.pump_repaired_2 Bool) - (top.usr.pump_repaired_3 Bool) - (top.usr.pump_control_repaired_0 Bool) - (top.usr.pump_control_repaired_1 Bool) - (top.usr.pump_control_repaired_2 Bool) - (top.usr.pump_control_repaired_3 Bool) - (top.usr.level_repaired Bool) - (top.usr.steam_repaired Bool) - (top.usr.pump_failure_acknowledgement_0 Bool) - (top.usr.pump_failure_acknowledgement_1 Bool) - (top.usr.pump_failure_acknowledgement_2 Bool) - (top.usr.pump_failure_acknowledgement_3 Bool) - (top.usr.pump_control_failure_acknowledgement_0 Bool) - (top.usr.pump_control_failure_acknowledgement_1 Bool) - (top.usr.pump_control_failure_acknowledgement_2 Bool) - (top.usr.pump_control_failure_acknowledgement_3 Bool) - (top.usr.level_failure_acknowledgement Bool) - (top.usr.steam_failure_acknowledgement Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Int) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.abs_13 Bool) - (top.res.abs_14 Bool) - (top.res.abs_15 Bool) - (top.res.abs_16 Bool) - (top.res.abs_17 Bool) - (top.res.abs_18 Bool) - (top.res.abs_19 Bool) - (top.res.abs_20 Bool) - (top.res.abs_21 Bool) - (top.res.abs_22 Bool) - (top.res.abs_23 Bool) - (top.res.abs_24 Bool) - (top.res.abs_25 Bool) - (top.res.abs_26 Bool) - (top.res.abs_27 Bool) - (top.res.abs_28 Bool) - (top.res.abs_29 Bool) - (top.res.abs_30 Bool) - (top.res.abs_31 Bool) - (top.res.abs_32 Bool) - (top.res.abs_33 Bool) - (top.res.abs_34 Bool) - (top.res.abs_35 Bool) - (top.res.abs_36 Bool) - (top.res.abs_37 Bool) - (top.res.abs_38 Bool) - (top.res.abs_39 Bool) - (top.res.abs_40 Bool) - (top.res.inst_297 Bool) - (top.res.inst_296 Bool) - (top.res.inst_295 Int) - (top.res.inst_294 Int) - (top.res.inst_293 Int) - (top.res.inst_292 Int) - (top.res.inst_291 Int) - (top.res.inst_290 Int) - (top.res.inst_289 Int) - (top.res.inst_288 Int) - (top.res.inst_287 Int) - (top.res.inst_286 Int) - (top.res.inst_285 Int) - (top.res.inst_284 Int) - (top.res.inst_283 Int) - (top.res.inst_282 Int) - (top.res.inst_281 Int) - (top.res.inst_280 Int) - (top.res.inst_279 Int) - (top.res.inst_278 Bool) - (top.res.inst_277 Int) - (top.res.inst_276 Int) - (top.res.inst_275 Int) - (top.res.inst_274 Bool) - (top.res.inst_273 Bool) - (top.res.inst_272 Bool) - (top.res.inst_271 Bool) - (top.res.inst_270 Int) - (top.res.inst_269 Int) - (top.res.inst_268 Bool) - (top.res.inst_267 Int) - (top.res.inst_266 Int) - (top.res.inst_265 Bool) - (top.res.inst_264 Int) - (top.res.inst_263 Bool) - (top.res.inst_262 Bool) - (top.res.inst_261 Bool) - (top.res.inst_260 Bool) - (top.res.inst_259 Int) - (top.res.inst_258 Int) - (top.res.inst_257 Bool) - (top.res.inst_256 Int) - (top.res.inst_255 Int) - (top.res.inst_254 Bool) - (top.res.inst_253 Int) - (top.res.inst_252 Bool) - (top.res.inst_251 Bool) - (top.res.inst_250 Bool) - (top.res.inst_249 Bool) - (top.res.inst_248 Int) - (top.res.inst_247 Int) - (top.res.inst_246 Bool) - (top.res.inst_245 Int) - (top.res.inst_244 Int) - (top.res.inst_243 Bool) - (top.res.inst_242 Int) - (top.res.inst_241 Bool) - (top.res.inst_240 Bool) - (top.res.inst_239 Bool) - (top.res.inst_238 Bool) - (top.res.inst_237 Int) - (top.res.inst_236 Int) - (top.res.inst_235 Bool) - (top.res.inst_234 Int) - (top.res.inst_233 Int) - (top.res.inst_232 Bool) - (top.res.inst_231 Int) - (top.res.inst_230 Int) - (top.res.inst_229 Int) - (top.res.inst_228 Int) - (top.res.inst_227 Int) - (top.res.inst_226 Bool) - (top.res.inst_225 Bool) - (top.res.inst_224 Bool) - (top.res.inst_223 Bool) - (top.res.inst_222 Int) - (top.res.inst_221 Int) - (top.res.inst_220 Int) - (top.res.inst_219 Int) - (top.res.inst_218 Int) - (top.res.inst_217 Int) - (top.res.inst_216 Int) - (top.res.inst_215 Int) - (top.res.inst_214 Int) - (top.res.inst_213 Int) - (top.res.inst_212 Int) - (top.res.inst_211 Int) - (top.res.inst_210 Bool) - (top.res.inst_209 Int) - (top.res.inst_208 Bool) - (top.res.inst_207 Int) - (top.res.inst_206 Bool) - (top.res.inst_205 Bool) - (top.res.inst_204 Bool) - (top.res.inst_203 Bool) - (top.res.inst_202 Bool) - (top.res.inst_201 Bool) - (top.res.inst_200 Bool) - (top.res.inst_199 Bool) - (top.res.inst_198 Bool) - (top.res.inst_197 Bool) - (top.res.inst_196 Bool) - (top.res.inst_195 Bool) - (top.res.inst_194 Bool) - (top.res.inst_193 Bool) - (top.res.inst_192 Bool) - (top.res.inst_191 Bool) - (top.res.inst_190 Bool) - (top.res.inst_189 Bool) - (top.res.inst_188 Bool) - (top.res.inst_187 Bool) - (top.res.inst_186 Bool) - (top.res.inst_185 Bool) - (top.res.inst_184 Bool) - (top.res.inst_183 Bool) - (top.res.inst_182 Bool) - (top.res.inst_181 Bool) - (top.res.inst_180 Bool) - (top.res.inst_179 Bool) - (top.res.inst_178 Bool) - (top.res.inst_177 Bool) - (top.res.inst_176 Bool) - (top.res.inst_175 Bool) - (top.res.inst_174 Int) - (top.res.inst_173 Bool) - (top.res.inst_172 Bool) - (top.res.inst_171 Bool) - (top.res.inst_170 Bool) - (top.res.inst_169 Bool) - (top.res.inst_168 Bool) - (top.res.inst_167 Bool) - (top.res.inst_166 Bool) - (top.res.inst_165 Bool) - (top.res.inst_164 Bool) - (top.res.inst_163 Bool) - (top.res.inst_162 Bool) - (top.res.inst_161 Bool) - (top.res.inst_160 Bool) - (top.res.inst_159 Bool) - (top.res.inst_158 Bool) - (top.res.inst_157 Bool) - (top.res.inst_156 Bool) - (top.res.inst_155 Bool) - (top.res.inst_154 Bool) - (top.res.inst_153 Bool) - (top.res.inst_152 Bool) - (top.res.inst_151 Bool) - (top.res.inst_150 Bool) - (top.res.inst_149 Bool) - (top.res.inst_148 Bool) - (top.res.inst_147 Bool) - (top.res.inst_146 Bool) - (top.res.inst_145 Bool) - (top.res.inst_144 Bool) - (top.res.inst_143 Bool) - (top.res.inst_142 Bool) - (top.res.inst_141 Bool) - (top.res.inst_140 Bool) - (top.res.inst_139 Bool) - (top.res.inst_138 Bool) - (top.res.inst_137 Bool) - (top.res.inst_136 Bool) - (top.res.inst_135 Bool) - (top.res.inst_134 Bool) - (top.res.inst_133 Bool) - (top.res.inst_132 Bool) - (top.res.inst_131 Bool) - (top.res.inst_130 Bool) - (top.res.inst_129 Bool) - (top.res.inst_128 Bool) - (top.res.inst_127 Bool) - (top.res.inst_126 Bool) - (top.res.inst_125 Bool) - (top.res.inst_124 Bool) - (top.res.inst_123 Bool) - (top.res.inst_122 Int) - (top.res.inst_121 Bool) - (top.res.inst_120 Bool) - (top.res.inst_119 Int) - (top.res.inst_118 Int) - (top.res.inst_117 Bool) - (top.res.inst_116 Bool) - (top.res.inst_115 Bool) - (top.res.inst_114 Bool) - (top.res.inst_113 Int) - (top.res.inst_112 Int) - (top.res.inst_111 Bool) - (top.res.inst_110 Bool) - (top.res.inst_109 Bool) - (top.res.inst_108 Bool) - (top.res.inst_107 Bool) - (top.res.inst_106 Bool) - (top.res.inst_105 Bool) - (top.res.inst_104 Bool) - (top.res.inst_103 Int) - (top.res.inst_102 Int) - (top.res.inst_101 Int) - (top.res.inst_100 Int) - (top.res.inst_99 Bool) - (top.res.inst_98 Bool) - (top.res.inst_97 Bool) - (top.res.inst_96 Bool) - (top.res.inst_95 Int) - (top.res.inst_94 Int) - (top.res.inst_93 Int) - (top.res.inst_92 Int) - (top.res.inst_91 Int) - (top.res.inst_90 Int) - (top.res.inst_89 Int) - (top.res.inst_88 Int) - (top.res.inst_87 Int) - (top.res.inst_86 Int) - (top.res.inst_85 Bool) - (top.res.inst_84 Bool) - (top.res.inst_83 Bool) - (top.res.inst_82 Bool) - (top.res.inst_81 Int) - (top.res.inst_80 Int) - (top.res.inst_79 Int) - (top.res.inst_78 Int) - (top.res.inst_77 Bool) - (top.res.inst_76 Int) - (top.res.inst_75 Bool) - (top.res.inst_74 Int) - (top.res.inst_73 Bool) - (top.res.inst_72 Int) - (top.res.inst_71 Bool) - (top.res.inst_70 Int) - (top.res.inst_69 Bool) - (top.res.inst_68 Int) - (top.res.inst_67 Bool) - (top.res.inst_66 Int) - (top.res.inst_65 Bool) - (top.res.inst_64 Int) - (top.res.inst_63 Bool) - (top.res.inst_62 Int) - (top.res.inst_61 Bool) - (top.res.inst_60 Bool) - (top.res.inst_59 Bool) - (top.res.inst_58 Bool) - (top.res.inst_57 Bool) - (top.res.inst_56 Bool) - (top.res.inst_55 Bool) - (top.res.inst_54 Bool) - (top.res.inst_53 Bool) - (top.res.inst_52 Bool) - (top.res.inst_51 Bool) - (top.res.inst_50 Bool) - (top.res.inst_49 Int) - (top.res.inst_48 Bool) - (top.res.inst_47 Bool) - (top.res.inst_46 Bool) - (top.res.inst_45 Bool) - (top.res.inst_44 Bool) - (top.res.inst_43 Bool) - (top.res.inst_42 Bool) - (top.res.inst_41 Bool) - (top.res.inst_40 Bool) - (top.res.inst_39 Bool) - (top.res.inst_38 Bool) - (top.res.inst_37 Int) - (top.res.inst_36 Int) - (top.res.inst_35 Int) - (top.res.inst_34 Int) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Int) - (top.res.inst_23 Int) - (top.res.inst_22 Int) - (top.res.inst_21 Int) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Int) - (top.res.inst_10 Int) - (top.res.inst_9 Int) - (top.res.inst_8 Int) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_AND_0 ((AND.usr.a_0_a_0 Bool) (AND.usr.a_1_a_0 Bool) (AND.usr.a_2_a_0 Bool) (AND.usr.a_3_a_0 Bool) (AND.usr.AND_a_0 Bool) (AND.res.init_flag_a_0 Bool)) Bool + (and (= AND.usr.AND_a_0 (and (and (and AND.usr.a_0_a_0 AND.usr.a_1_a_0) AND.usr.a_2_a_0) AND.usr.a_3_a_0)) AND.res.init_flag_a_0)) +(define-fun __node_trans_AND_0 ((AND.usr.a_0_a_1 Bool) (AND.usr.a_1_a_1 Bool) (AND.usr.a_2_a_1 Bool) (AND.usr.a_3_a_1 Bool) (AND.usr.AND_a_1 Bool) (AND.res.init_flag_a_1 Bool) (AND.usr.a_0_a_0 Bool) (AND.usr.a_1_a_0 Bool) (AND.usr.a_2_a_0 Bool) (AND.usr.a_3_a_0 Bool) (AND.usr.AND_a_0 Bool) (AND.res.init_flag_a_0 Bool)) Bool + (and (= AND.usr.AND_a_1 (and (and (and AND.usr.a_0_a_1 AND.usr.a_1_a_1) AND.usr.a_2_a_1) AND.usr.a_3_a_1)) (not AND.res.init_flag_a_1))) +(define-fun __node_init_level_failure_0 ((level_failure.usr.level_defect_a_0 Int) (level_failure.usr.level_failure_a_0 Bool) (level_failure.res.init_flag_a_0 Bool)) Bool + (and (= level_failure.usr.level_failure_a_0 (not (= level_failure.usr.level_defect_a_0 0))) level_failure.res.init_flag_a_0)) +(define-fun __node_trans_level_failure_0 ((level_failure.usr.level_defect_a_1 Int) (level_failure.usr.level_failure_a_1 Bool) (level_failure.res.init_flag_a_1 Bool) (level_failure.usr.level_defect_a_0 Int) (level_failure.usr.level_failure_a_0 Bool) (level_failure.res.init_flag_a_0 Bool)) Bool + (and (= level_failure.usr.level_failure_a_1 (not (= level_failure.usr.level_defect_a_1 0))) (not level_failure.res.init_flag_a_1))) +(define-fun __node_init_steam_failure_0 ((steam_failure.usr.steam_defect_a_0 Int) (steam_failure.usr.steam_failure_a_0 Bool) (steam_failure.res.init_flag_a_0 Bool)) Bool + (and (= steam_failure.usr.steam_failure_a_0 (not (= steam_failure.usr.steam_defect_a_0 0))) steam_failure.res.init_flag_a_0)) +(define-fun __node_trans_steam_failure_0 ((steam_failure.usr.steam_defect_a_1 Int) (steam_failure.usr.steam_failure_a_1 Bool) (steam_failure.res.init_flag_a_1 Bool) (steam_failure.usr.steam_defect_a_0 Int) (steam_failure.usr.steam_failure_a_0 Bool) (steam_failure.res.init_flag_a_0 Bool)) Bool + (and (= steam_failure.usr.steam_failure_a_1 (not (= steam_failure.usr.steam_defect_a_1 0))) (not steam_failure.res.init_flag_a_1))) +(define-fun __node_init_OR_0 ((OR.usr.a_0_a_0 Bool) (OR.usr.a_1_a_0 Bool) (OR.usr.a_2_a_0 Bool) (OR.usr.a_3_a_0 Bool) (OR.usr.OR_a_0 Bool) (OR.res.init_flag_a_0 Bool)) Bool + (and (= OR.usr.OR_a_0 (or (or (or OR.usr.a_0_a_0 OR.usr.a_1_a_0) OR.usr.a_2_a_0) OR.usr.a_3_a_0)) OR.res.init_flag_a_0)) +(define-fun __node_trans_OR_0 ((OR.usr.a_0_a_1 Bool) (OR.usr.a_1_a_1 Bool) (OR.usr.a_2_a_1 Bool) (OR.usr.a_3_a_1 Bool) (OR.usr.OR_a_1 Bool) (OR.res.init_flag_a_1 Bool) (OR.usr.a_0_a_0 Bool) (OR.usr.a_1_a_0 Bool) (OR.usr.a_2_a_0 Bool) (OR.usr.a_3_a_0 Bool) (OR.usr.OR_a_0 Bool) (OR.res.init_flag_a_0 Bool)) Bool + (and (= OR.usr.OR_a_1 (or (or (or OR.usr.a_0_a_1 OR.usr.a_1_a_1) OR.usr.a_2_a_1) OR.usr.a_3_a_1)) (not OR.res.init_flag_a_1))) +(define-fun __node_init_pump_control_failure_0 ((pump_control_failure.usr.pump_defect_a_0 Int) (pump_control_failure.usr.pump_failure_a_0 Bool) (pump_control_failure.res.init_flag_a_0 Bool)) Bool + (and (= pump_control_failure.usr.pump_failure_a_0 (not (= pump_control_failure.usr.pump_defect_a_0 0))) pump_control_failure.res.init_flag_a_0)) +(define-fun __node_trans_pump_control_failure_0 ((pump_control_failure.usr.pump_defect_a_1 Int) (pump_control_failure.usr.pump_failure_a_1 Bool) (pump_control_failure.res.init_flag_a_1 Bool) (pump_control_failure.usr.pump_defect_a_0 Int) (pump_control_failure.usr.pump_failure_a_0 Bool) (pump_control_failure.res.init_flag_a_0 Bool)) Bool + (and (= pump_control_failure.usr.pump_failure_a_1 (not (= pump_control_failure.usr.pump_defect_a_1 0))) (not pump_control_failure.res.init_flag_a_1))) +(define-fun __node_init_pump_failure_0 ((pump_failure.usr.pump_defect_a_0 Int) (pump_failure.usr.pump_failure_a_0 Bool) (pump_failure.res.init_flag_a_0 Bool)) Bool + (and (= pump_failure.usr.pump_failure_a_0 (not (= pump_failure.usr.pump_defect_a_0 0))) pump_failure.res.init_flag_a_0)) +(define-fun __node_trans_pump_failure_0 ((pump_failure.usr.pump_defect_a_1 Int) (pump_failure.usr.pump_failure_a_1 Bool) (pump_failure.res.init_flag_a_1 Bool) (pump_failure.usr.pump_defect_a_0 Int) (pump_failure.usr.pump_failure_a_0 Bool) (pump_failure.res.init_flag_a_0 Bool)) Bool + (and (= pump_failure.usr.pump_failure_a_1 (not (= pump_failure.usr.pump_defect_a_1 0))) (not pump_failure.res.init_flag_a_1))) +(define-fun __node_init_failure_0 ((failure.usr.level_defect_a_0 Int) (failure.usr.steam_defect_a_0 Int) (failure.usr.pump_defect_0_a_0 Int) (failure.usr.pump_defect_1_a_0 Int) (failure.usr.pump_defect_2_a_0 Int) (failure.usr.pump_defect_3_a_0 Int) (failure.usr.pump_control_defect_0_a_0 Int) (failure.usr.pump_control_defect_1_a_0 Int) (failure.usr.pump_control_defect_2_a_0 Int) (failure.usr.pump_control_defect_3_a_0 Int) (failure.usr.failure_a_0 Bool) (failure.res.init_flag_a_0 Bool) (failure.res.abs_0_a_0 Bool) (failure.res.abs_1_a_0 Bool) (failure.res.abs_2_a_0 Bool) (failure.res.abs_3_a_0 Bool) (failure.res.abs_4_a_0 Bool) (failure.res.abs_5_a_0 Bool) (failure.res.abs_6_a_0 Bool) (failure.res.abs_7_a_0 Bool) (failure.res.abs_8_a_0 Bool) (failure.res.abs_9_a_0 Bool) (failure.res.abs_10_a_0 Bool) (failure.res.abs_11_a_0 Bool) (failure.res.inst_11_a_0 Bool) (failure.res.inst_10_a_0 Bool) (failure.res.inst_9_a_0 Bool) (failure.res.inst_8_a_0 Bool) (failure.res.inst_7_a_0 Bool) (failure.res.inst_6_a_0 Bool) (failure.res.inst_5_a_0 Bool) (failure.res.inst_4_a_0 Bool) (failure.res.inst_3_a_0 Bool) (failure.res.inst_2_a_0 Bool) (failure.res.inst_1_a_0 Bool) (failure.res.inst_0_a_0 Bool)) Bool + (and (= failure.usr.failure_a_0 (or (or (or failure.res.abs_0_a_0 failure.res.abs_1_a_0) failure.res.abs_6_a_0) failure.res.abs_11_a_0)) (__node_init_level_failure_0 failure.usr.level_defect_a_0 failure.res.abs_0_a_0 failure.res.inst_11_a_0) (__node_init_steam_failure_0 failure.usr.steam_defect_a_0 failure.res.abs_1_a_0 failure.res.inst_10_a_0) (__node_init_OR_0 failure.res.abs_2_a_0 failure.res.abs_3_a_0 failure.res.abs_4_a_0 failure.res.abs_5_a_0 failure.res.abs_6_a_0 failure.res.inst_9_a_0) (__node_init_pump_failure_0 failure.usr.pump_defect_0_a_0 failure.res.abs_2_a_0 failure.res.inst_8_a_0) (__node_init_pump_failure_0 failure.usr.pump_defect_1_a_0 failure.res.abs_3_a_0 failure.res.inst_7_a_0) (__node_init_pump_failure_0 failure.usr.pump_defect_2_a_0 failure.res.abs_4_a_0 failure.res.inst_6_a_0) (__node_init_pump_failure_0 failure.usr.pump_defect_3_a_0 failure.res.abs_5_a_0 failure.res.inst_5_a_0) (__node_init_OR_0 failure.res.abs_7_a_0 failure.res.abs_8_a_0 failure.res.abs_9_a_0 failure.res.abs_10_a_0 failure.res.abs_11_a_0 failure.res.inst_4_a_0) (__node_init_pump_control_failure_0 failure.usr.pump_control_defect_0_a_0 failure.res.abs_7_a_0 failure.res.inst_3_a_0) (__node_init_pump_control_failure_0 failure.usr.pump_control_defect_1_a_0 failure.res.abs_8_a_0 failure.res.inst_2_a_0) (__node_init_pump_control_failure_0 failure.usr.pump_control_defect_2_a_0 failure.res.abs_9_a_0 failure.res.inst_1_a_0) (__node_init_pump_control_failure_0 failure.usr.pump_control_defect_3_a_0 failure.res.abs_10_a_0 failure.res.inst_0_a_0) failure.res.init_flag_a_0)) +(define-fun __node_trans_failure_0 ((failure.usr.level_defect_a_1 Int) (failure.usr.steam_defect_a_1 Int) (failure.usr.pump_defect_0_a_1 Int) (failure.usr.pump_defect_1_a_1 Int) (failure.usr.pump_defect_2_a_1 Int) (failure.usr.pump_defect_3_a_1 Int) (failure.usr.pump_control_defect_0_a_1 Int) (failure.usr.pump_control_defect_1_a_1 Int) (failure.usr.pump_control_defect_2_a_1 Int) (failure.usr.pump_control_defect_3_a_1 Int) (failure.usr.failure_a_1 Bool) (failure.res.init_flag_a_1 Bool) (failure.res.abs_0_a_1 Bool) (failure.res.abs_1_a_1 Bool) (failure.res.abs_2_a_1 Bool) (failure.res.abs_3_a_1 Bool) (failure.res.abs_4_a_1 Bool) (failure.res.abs_5_a_1 Bool) (failure.res.abs_6_a_1 Bool) (failure.res.abs_7_a_1 Bool) (failure.res.abs_8_a_1 Bool) (failure.res.abs_9_a_1 Bool) (failure.res.abs_10_a_1 Bool) (failure.res.abs_11_a_1 Bool) (failure.res.inst_11_a_1 Bool) (failure.res.inst_10_a_1 Bool) (failure.res.inst_9_a_1 Bool) (failure.res.inst_8_a_1 Bool) (failure.res.inst_7_a_1 Bool) (failure.res.inst_6_a_1 Bool) (failure.res.inst_5_a_1 Bool) (failure.res.inst_4_a_1 Bool) (failure.res.inst_3_a_1 Bool) (failure.res.inst_2_a_1 Bool) (failure.res.inst_1_a_1 Bool) (failure.res.inst_0_a_1 Bool) (failure.usr.level_defect_a_0 Int) (failure.usr.steam_defect_a_0 Int) (failure.usr.pump_defect_0_a_0 Int) (failure.usr.pump_defect_1_a_0 Int) (failure.usr.pump_defect_2_a_0 Int) (failure.usr.pump_defect_3_a_0 Int) (failure.usr.pump_control_defect_0_a_0 Int) (failure.usr.pump_control_defect_1_a_0 Int) (failure.usr.pump_control_defect_2_a_0 Int) (failure.usr.pump_control_defect_3_a_0 Int) (failure.usr.failure_a_0 Bool) (failure.res.init_flag_a_0 Bool) (failure.res.abs_0_a_0 Bool) (failure.res.abs_1_a_0 Bool) (failure.res.abs_2_a_0 Bool) (failure.res.abs_3_a_0 Bool) (failure.res.abs_4_a_0 Bool) (failure.res.abs_5_a_0 Bool) (failure.res.abs_6_a_0 Bool) (failure.res.abs_7_a_0 Bool) (failure.res.abs_8_a_0 Bool) (failure.res.abs_9_a_0 Bool) (failure.res.abs_10_a_0 Bool) (failure.res.abs_11_a_0 Bool) (failure.res.inst_11_a_0 Bool) (failure.res.inst_10_a_0 Bool) (failure.res.inst_9_a_0 Bool) (failure.res.inst_8_a_0 Bool) (failure.res.inst_7_a_0 Bool) (failure.res.inst_6_a_0 Bool) (failure.res.inst_5_a_0 Bool) (failure.res.inst_4_a_0 Bool) (failure.res.inst_3_a_0 Bool) (failure.res.inst_2_a_0 Bool) (failure.res.inst_1_a_0 Bool) (failure.res.inst_0_a_0 Bool)) Bool + (and (= failure.usr.failure_a_1 (or (or (or failure.res.abs_0_a_1 failure.res.abs_1_a_1) failure.res.abs_6_a_1) failure.res.abs_11_a_1)) (__node_trans_level_failure_0 failure.usr.level_defect_a_1 failure.res.abs_0_a_1 failure.res.inst_11_a_1 failure.usr.level_defect_a_0 failure.res.abs_0_a_0 failure.res.inst_11_a_0) (__node_trans_steam_failure_0 failure.usr.steam_defect_a_1 failure.res.abs_1_a_1 failure.res.inst_10_a_1 failure.usr.steam_defect_a_0 failure.res.abs_1_a_0 failure.res.inst_10_a_0) (__node_trans_OR_0 failure.res.abs_2_a_1 failure.res.abs_3_a_1 failure.res.abs_4_a_1 failure.res.abs_5_a_1 failure.res.abs_6_a_1 failure.res.inst_9_a_1 failure.res.abs_2_a_0 failure.res.abs_3_a_0 failure.res.abs_4_a_0 failure.res.abs_5_a_0 failure.res.abs_6_a_0 failure.res.inst_9_a_0) (__node_trans_pump_failure_0 failure.usr.pump_defect_0_a_1 failure.res.abs_2_a_1 failure.res.inst_8_a_1 failure.usr.pump_defect_0_a_0 failure.res.abs_2_a_0 failure.res.inst_8_a_0) (__node_trans_pump_failure_0 failure.usr.pump_defect_1_a_1 failure.res.abs_3_a_1 failure.res.inst_7_a_1 failure.usr.pump_defect_1_a_0 failure.res.abs_3_a_0 failure.res.inst_7_a_0) (__node_trans_pump_failure_0 failure.usr.pump_defect_2_a_1 failure.res.abs_4_a_1 failure.res.inst_6_a_1 failure.usr.pump_defect_2_a_0 failure.res.abs_4_a_0 failure.res.inst_6_a_0) (__node_trans_pump_failure_0 failure.usr.pump_defect_3_a_1 failure.res.abs_5_a_1 failure.res.inst_5_a_1 failure.usr.pump_defect_3_a_0 failure.res.abs_5_a_0 failure.res.inst_5_a_0) (__node_trans_OR_0 failure.res.abs_7_a_1 failure.res.abs_8_a_1 failure.res.abs_9_a_1 failure.res.abs_10_a_1 failure.res.abs_11_a_1 failure.res.inst_4_a_1 failure.res.abs_7_a_0 failure.res.abs_8_a_0 failure.res.abs_9_a_0 failure.res.abs_10_a_0 failure.res.abs_11_a_0 failure.res.inst_4_a_0) (__node_trans_pump_control_failure_0 failure.usr.pump_control_defect_0_a_1 failure.res.abs_7_a_1 failure.res.inst_3_a_1 failure.usr.pump_control_defect_0_a_0 failure.res.abs_7_a_0 failure.res.inst_3_a_0) (__node_trans_pump_control_failure_0 failure.usr.pump_control_defect_1_a_1 failure.res.abs_8_a_1 failure.res.inst_2_a_1 failure.usr.pump_control_defect_1_a_0 failure.res.abs_8_a_0 failure.res.inst_2_a_0) (__node_trans_pump_control_failure_0 failure.usr.pump_control_defect_2_a_1 failure.res.abs_9_a_1 failure.res.inst_1_a_1 failure.usr.pump_control_defect_2_a_0 failure.res.abs_9_a_0 failure.res.inst_1_a_0) (__node_trans_pump_control_failure_0 failure.usr.pump_control_defect_3_a_1 failure.res.abs_10_a_1 failure.res.inst_0_a_1 failure.usr.pump_control_defect_3_a_0 failure.res.abs_10_a_0 failure.res.inst_0_a_0) (not failure.res.init_flag_a_1))) +(define-fun __node_init_steam_failure_startup_0 ((steam_failure_startup.usr.steam_a_0 Int) (steam_failure_startup.usr.steam_failure_startup_a_0 Bool) (steam_failure_startup.res.init_flag_a_0 Bool)) Bool + (and (= steam_failure_startup.usr.steam_failure_startup_a_0 (not (= steam_failure_startup.usr.steam_a_0 0))) steam_failure_startup.res.init_flag_a_0)) +(define-fun __node_trans_steam_failure_startup_0 ((steam_failure_startup.usr.steam_a_1 Int) (steam_failure_startup.usr.steam_failure_startup_a_1 Bool) (steam_failure_startup.res.init_flag_a_1 Bool) (steam_failure_startup.usr.steam_a_0 Int) (steam_failure_startup.usr.steam_failure_startup_a_0 Bool) (steam_failure_startup.res.init_flag_a_0 Bool)) Bool + (and (= steam_failure_startup.usr.steam_failure_startup_a_1 (not (= steam_failure_startup.usr.steam_a_1 0))) (not steam_failure_startup.res.init_flag_a_1))) +(define-fun __node_init_dangerous_level_0 ((dangerous_level.usr.q_a_0 Int) (dangerous_level.usr.dangerous_level_a_0 Bool) (dangerous_level.res.init_flag_a_0 Bool)) Bool + (and (= dangerous_level.usr.dangerous_level_a_0 (or (<= dangerous_level.usr.q_a_0 150) (>= dangerous_level.usr.q_a_0 850))) dangerous_level.res.init_flag_a_0)) +(define-fun __node_trans_dangerous_level_0 ((dangerous_level.usr.q_a_1 Int) (dangerous_level.usr.dangerous_level_a_1 Bool) (dangerous_level.res.init_flag_a_1 Bool) (dangerous_level.usr.q_a_0 Int) (dangerous_level.usr.dangerous_level_a_0 Bool) (dangerous_level.res.init_flag_a_0 Bool)) Bool + (and (= dangerous_level.usr.dangerous_level_a_1 (or (<= dangerous_level.usr.q_a_1 150) (>= dangerous_level.usr.q_a_1 850))) (not dangerous_level.res.init_flag_a_1))) +(define-fun __node_init_transmission_failure_0 ((transmission_failure.usr.pump_state_0_a_0 Int) (transmission_failure.usr.pump_state_1_a_0 Int) (transmission_failure.usr.pump_state_2_a_0 Int) (transmission_failure.usr.pump_state_3_a_0 Int) (transmission_failure.usr.transmission_failure_a_0 Bool) (transmission_failure.res.init_flag_a_0 Bool)) Bool + (and (= transmission_failure.usr.transmission_failure_a_0 (or (or (or (= transmission_failure.usr.pump_state_0_a_0 3) (= transmission_failure.usr.pump_state_1_a_0 3)) (= transmission_failure.usr.pump_state_2_a_0 3)) (= transmission_failure.usr.pump_state_3_a_0 3))) transmission_failure.res.init_flag_a_0)) +(define-fun __node_trans_transmission_failure_0 ((transmission_failure.usr.pump_state_0_a_1 Int) (transmission_failure.usr.pump_state_1_a_1 Int) (transmission_failure.usr.pump_state_2_a_1 Int) (transmission_failure.usr.pump_state_3_a_1 Int) (transmission_failure.usr.transmission_failure_a_1 Bool) (transmission_failure.res.init_flag_a_1 Bool) (transmission_failure.usr.pump_state_0_a_0 Int) (transmission_failure.usr.pump_state_1_a_0 Int) (transmission_failure.usr.pump_state_2_a_0 Int) (transmission_failure.usr.pump_state_3_a_0 Int) (transmission_failure.usr.transmission_failure_a_0 Bool) (transmission_failure.res.init_flag_a_0 Bool)) Bool + (and (= transmission_failure.usr.transmission_failure_a_1 (or (or (or (= transmission_failure.usr.pump_state_0_a_1 3) (= transmission_failure.usr.pump_state_1_a_1 3)) (= transmission_failure.usr.pump_state_2_a_1 3)) (= transmission_failure.usr.pump_state_3_a_1 3))) (not transmission_failure.res.init_flag_a_1))) +(define-fun __node_init_critical_failure_0 ((critical_failure.usr.op_mode_a_0 Int) (critical_failure.usr.steam_a_0 Int) (critical_failure.usr.level_defect_a_0 Int) (critical_failure.usr.steam_defect_a_0 Int) (critical_failure.usr.pump_defect_0_a_0 Int) (critical_failure.usr.pump_defect_1_a_0 Int) (critical_failure.usr.pump_defect_2_a_0 Int) (critical_failure.usr.pump_defect_3_a_0 Int) (critical_failure.usr.q_a_0 Int) (critical_failure.usr.pump_state_0_a_0 Int) (critical_failure.usr.pump_state_1_a_0 Int) (critical_failure.usr.pump_state_2_a_0 Int) (critical_failure.usr.pump_state_3_a_0 Int) (critical_failure.usr.critical_failure_a_0 Bool) (critical_failure.res.init_flag_a_0 Bool) (critical_failure.res.abs_0_a_0 Bool) (critical_failure.res.abs_1_a_0 Bool) (critical_failure.res.abs_2_a_0 Bool) (critical_failure.res.abs_3_a_0 Bool) (critical_failure.res.abs_4_a_0 Bool) (critical_failure.res.abs_5_a_0 Bool) (critical_failure.res.abs_6_a_0 Bool) (critical_failure.res.abs_7_a_0 Bool) (critical_failure.res.abs_8_a_0 Bool) (critical_failure.res.abs_9_a_0 Bool) (critical_failure.res.inst_9_a_0 Bool) (critical_failure.res.inst_8_a_0 Bool) (critical_failure.res.inst_7_a_0 Bool) (critical_failure.res.inst_6_a_0 Bool) (critical_failure.res.inst_5_a_0 Bool) (critical_failure.res.inst_4_a_0 Bool) (critical_failure.res.inst_3_a_0 Bool) (critical_failure.res.inst_2_a_0 Bool) (critical_failure.res.inst_1_a_0 Bool) (critical_failure.res.inst_0_a_0 Bool)) Bool + (and (= critical_failure.usr.critical_failure_a_0 (or (or (or (or (or critical_failure.res.abs_0_a_0 (and (= critical_failure.usr.op_mode_a_0 1) critical_failure.res.abs_1_a_0)) (and (= critical_failure.usr.op_mode_a_0 2) (or critical_failure.res.abs_2_a_0 critical_failure.res.abs_3_a_0))) (and (= critical_failure.usr.op_mode_a_0 3) critical_failure.res.abs_4_a_0)) (and (= critical_failure.usr.op_mode_a_0 4) critical_failure.res.abs_4_a_0)) (and (= critical_failure.usr.op_mode_a_0 5) (or (or critical_failure.res.abs_4_a_0 critical_failure.res.abs_3_a_0) critical_failure.res.abs_9_a_0)))) (__node_init_transmission_failure_0 critical_failure.usr.pump_state_0_a_0 critical_failure.usr.pump_state_1_a_0 critical_failure.usr.pump_state_2_a_0 critical_failure.usr.pump_state_3_a_0 critical_failure.res.abs_0_a_0 critical_failure.res.inst_9_a_0) (__node_init_steam_failure_startup_0 critical_failure.usr.steam_a_0 critical_failure.res.abs_1_a_0 critical_failure.res.inst_8_a_0) (__node_init_level_failure_0 critical_failure.usr.level_defect_a_0 critical_failure.res.abs_2_a_0 critical_failure.res.inst_7_a_0) (__node_init_steam_failure_0 critical_failure.usr.steam_defect_a_0 critical_failure.res.abs_3_a_0 critical_failure.res.inst_6_a_0) (__node_init_dangerous_level_0 critical_failure.usr.q_a_0 critical_failure.res.abs_4_a_0 critical_failure.res.inst_5_a_0) (__node_init_AND_0 critical_failure.res.abs_5_a_0 critical_failure.res.abs_6_a_0 critical_failure.res.abs_7_a_0 critical_failure.res.abs_8_a_0 critical_failure.res.abs_9_a_0 critical_failure.res.inst_4_a_0) (__node_init_pump_failure_0 critical_failure.usr.pump_defect_0_a_0 critical_failure.res.abs_5_a_0 critical_failure.res.inst_3_a_0) (__node_init_pump_failure_0 critical_failure.usr.pump_defect_1_a_0 critical_failure.res.abs_6_a_0 critical_failure.res.inst_2_a_0) (__node_init_pump_failure_0 critical_failure.usr.pump_defect_2_a_0 critical_failure.res.abs_7_a_0 critical_failure.res.inst_1_a_0) (__node_init_pump_failure_0 critical_failure.usr.pump_defect_3_a_0 critical_failure.res.abs_8_a_0 critical_failure.res.inst_0_a_0) critical_failure.res.init_flag_a_0)) +(define-fun __node_trans_critical_failure_0 ((critical_failure.usr.op_mode_a_1 Int) (critical_failure.usr.steam_a_1 Int) (critical_failure.usr.level_defect_a_1 Int) (critical_failure.usr.steam_defect_a_1 Int) (critical_failure.usr.pump_defect_0_a_1 Int) (critical_failure.usr.pump_defect_1_a_1 Int) (critical_failure.usr.pump_defect_2_a_1 Int) (critical_failure.usr.pump_defect_3_a_1 Int) (critical_failure.usr.q_a_1 Int) (critical_failure.usr.pump_state_0_a_1 Int) (critical_failure.usr.pump_state_1_a_1 Int) (critical_failure.usr.pump_state_2_a_1 Int) (critical_failure.usr.pump_state_3_a_1 Int) (critical_failure.usr.critical_failure_a_1 Bool) (critical_failure.res.init_flag_a_1 Bool) (critical_failure.res.abs_0_a_1 Bool) (critical_failure.res.abs_1_a_1 Bool) (critical_failure.res.abs_2_a_1 Bool) (critical_failure.res.abs_3_a_1 Bool) (critical_failure.res.abs_4_a_1 Bool) (critical_failure.res.abs_5_a_1 Bool) (critical_failure.res.abs_6_a_1 Bool) (critical_failure.res.abs_7_a_1 Bool) (critical_failure.res.abs_8_a_1 Bool) (critical_failure.res.abs_9_a_1 Bool) (critical_failure.res.inst_9_a_1 Bool) (critical_failure.res.inst_8_a_1 Bool) (critical_failure.res.inst_7_a_1 Bool) (critical_failure.res.inst_6_a_1 Bool) (critical_failure.res.inst_5_a_1 Bool) (critical_failure.res.inst_4_a_1 Bool) (critical_failure.res.inst_3_a_1 Bool) (critical_failure.res.inst_2_a_1 Bool) (critical_failure.res.inst_1_a_1 Bool) (critical_failure.res.inst_0_a_1 Bool) (critical_failure.usr.op_mode_a_0 Int) (critical_failure.usr.steam_a_0 Int) (critical_failure.usr.level_defect_a_0 Int) (critical_failure.usr.steam_defect_a_0 Int) (critical_failure.usr.pump_defect_0_a_0 Int) (critical_failure.usr.pump_defect_1_a_0 Int) (critical_failure.usr.pump_defect_2_a_0 Int) (critical_failure.usr.pump_defect_3_a_0 Int) (critical_failure.usr.q_a_0 Int) (critical_failure.usr.pump_state_0_a_0 Int) (critical_failure.usr.pump_state_1_a_0 Int) (critical_failure.usr.pump_state_2_a_0 Int) (critical_failure.usr.pump_state_3_a_0 Int) (critical_failure.usr.critical_failure_a_0 Bool) (critical_failure.res.init_flag_a_0 Bool) (critical_failure.res.abs_0_a_0 Bool) (critical_failure.res.abs_1_a_0 Bool) (critical_failure.res.abs_2_a_0 Bool) (critical_failure.res.abs_3_a_0 Bool) (critical_failure.res.abs_4_a_0 Bool) (critical_failure.res.abs_5_a_0 Bool) (critical_failure.res.abs_6_a_0 Bool) (critical_failure.res.abs_7_a_0 Bool) (critical_failure.res.abs_8_a_0 Bool) (critical_failure.res.abs_9_a_0 Bool) (critical_failure.res.inst_9_a_0 Bool) (critical_failure.res.inst_8_a_0 Bool) (critical_failure.res.inst_7_a_0 Bool) (critical_failure.res.inst_6_a_0 Bool) (critical_failure.res.inst_5_a_0 Bool) (critical_failure.res.inst_4_a_0 Bool) (critical_failure.res.inst_3_a_0 Bool) (critical_failure.res.inst_2_a_0 Bool) (critical_failure.res.inst_1_a_0 Bool) (critical_failure.res.inst_0_a_0 Bool)) Bool + (and (= critical_failure.usr.critical_failure_a_1 (or (or (or (or (or critical_failure.res.abs_0_a_1 (and (= critical_failure.usr.op_mode_a_1 1) critical_failure.res.abs_1_a_1)) (and (= critical_failure.usr.op_mode_a_1 2) (or critical_failure.res.abs_2_a_1 critical_failure.res.abs_3_a_1))) (and (= critical_failure.usr.op_mode_a_1 3) critical_failure.res.abs_4_a_1)) (and (= critical_failure.usr.op_mode_a_1 4) critical_failure.res.abs_4_a_1)) (and (= critical_failure.usr.op_mode_a_1 5) (or (or critical_failure.res.abs_4_a_1 critical_failure.res.abs_3_a_1) critical_failure.res.abs_9_a_1)))) (__node_trans_transmission_failure_0 critical_failure.usr.pump_state_0_a_1 critical_failure.usr.pump_state_1_a_1 critical_failure.usr.pump_state_2_a_1 critical_failure.usr.pump_state_3_a_1 critical_failure.res.abs_0_a_1 critical_failure.res.inst_9_a_1 critical_failure.usr.pump_state_0_a_0 critical_failure.usr.pump_state_1_a_0 critical_failure.usr.pump_state_2_a_0 critical_failure.usr.pump_state_3_a_0 critical_failure.res.abs_0_a_0 critical_failure.res.inst_9_a_0) (__node_trans_steam_failure_startup_0 critical_failure.usr.steam_a_1 critical_failure.res.abs_1_a_1 critical_failure.res.inst_8_a_1 critical_failure.usr.steam_a_0 critical_failure.res.abs_1_a_0 critical_failure.res.inst_8_a_0) (__node_trans_level_failure_0 critical_failure.usr.level_defect_a_1 critical_failure.res.abs_2_a_1 critical_failure.res.inst_7_a_1 critical_failure.usr.level_defect_a_0 critical_failure.res.abs_2_a_0 critical_failure.res.inst_7_a_0) (__node_trans_steam_failure_0 critical_failure.usr.steam_defect_a_1 critical_failure.res.abs_3_a_1 critical_failure.res.inst_6_a_1 critical_failure.usr.steam_defect_a_0 critical_failure.res.abs_3_a_0 critical_failure.res.inst_6_a_0) (__node_trans_dangerous_level_0 critical_failure.usr.q_a_1 critical_failure.res.abs_4_a_1 critical_failure.res.inst_5_a_1 critical_failure.usr.q_a_0 critical_failure.res.abs_4_a_0 critical_failure.res.inst_5_a_0) (__node_trans_AND_0 critical_failure.res.abs_5_a_1 critical_failure.res.abs_6_a_1 critical_failure.res.abs_7_a_1 critical_failure.res.abs_8_a_1 critical_failure.res.abs_9_a_1 critical_failure.res.inst_4_a_1 critical_failure.res.abs_5_a_0 critical_failure.res.abs_6_a_0 critical_failure.res.abs_7_a_0 critical_failure.res.abs_8_a_0 critical_failure.res.abs_9_a_0 critical_failure.res.inst_4_a_0) (__node_trans_pump_failure_0 critical_failure.usr.pump_defect_0_a_1 critical_failure.res.abs_5_a_1 critical_failure.res.inst_3_a_1 critical_failure.usr.pump_defect_0_a_0 critical_failure.res.abs_5_a_0 critical_failure.res.inst_3_a_0) (__node_trans_pump_failure_0 critical_failure.usr.pump_defect_1_a_1 critical_failure.res.abs_6_a_1 critical_failure.res.inst_2_a_1 critical_failure.usr.pump_defect_1_a_0 critical_failure.res.abs_6_a_0 critical_failure.res.inst_2_a_0) (__node_trans_pump_failure_0 critical_failure.usr.pump_defect_2_a_1 critical_failure.res.abs_7_a_1 critical_failure.res.inst_1_a_1 critical_failure.usr.pump_defect_2_a_0 critical_failure.res.abs_7_a_0 critical_failure.res.inst_1_a_0) (__node_trans_pump_failure_0 critical_failure.usr.pump_defect_3_a_1 critical_failure.res.abs_8_a_1 critical_failure.res.inst_0_a_1 critical_failure.usr.pump_defect_3_a_0 critical_failure.res.abs_8_a_0 critical_failure.res.inst_0_a_0) (not critical_failure.res.init_flag_a_1))) +(define-fun __node_init_ControlMode_0 ((ControlMode.usr.steam_boiler_waiting_a_0 Bool) (ControlMode.usr.physical_units_ready_a_0 Bool) (ControlMode.usr.stop_request_a_0 Bool) (ControlMode.usr.steam_a_0 Int) (ControlMode.usr.level_defect_a_0 Int) (ControlMode.usr.steam_defect_a_0 Int) (ControlMode.usr.pump_defect_0_a_0 Int) (ControlMode.usr.pump_defect_1_a_0 Int) (ControlMode.usr.pump_defect_2_a_0 Int) (ControlMode.usr.pump_defect_3_a_0 Int) (ControlMode.usr.pump_control_defect_0_a_0 Int) (ControlMode.usr.pump_control_defect_1_a_0 Int) (ControlMode.usr.pump_control_defect_2_a_0 Int) (ControlMode.usr.pump_control_defect_3_a_0 Int) (ControlMode.usr.q_a_0 Int) (ControlMode.usr.pump_state_0_a_0 Int) (ControlMode.usr.pump_state_1_a_0 Int) (ControlMode.usr.pump_state_2_a_0 Int) (ControlMode.usr.pump_state_3_a_0 Int) (ControlMode.res.nondet_0 Int) (ControlMode.usr.op_mode_a_0 Int) (ControlMode.res.init_flag_a_0 Bool) (ControlMode.res.abs_0_a_0 Int) (ControlMode.res.abs_1_a_0 Bool) (ControlMode.res.abs_2_a_0 Bool) (ControlMode.res.abs_3_a_0 Bool) (ControlMode.res.inst_46_a_0 Bool) (ControlMode.res.inst_45_a_0 Bool) (ControlMode.res.inst_44_a_0 Bool) (ControlMode.res.inst_43_a_0 Bool) (ControlMode.res.inst_42_a_0 Bool) (ControlMode.res.inst_41_a_0 Bool) (ControlMode.res.inst_40_a_0 Bool) (ControlMode.res.inst_39_a_0 Bool) (ControlMode.res.inst_38_a_0 Bool) (ControlMode.res.inst_37_a_0 Bool) (ControlMode.res.inst_36_a_0 Bool) (ControlMode.res.inst_35_a_0 Bool) (ControlMode.res.inst_34_a_0 Bool) (ControlMode.res.inst_33_a_0 Bool) (ControlMode.res.inst_32_a_0 Bool) (ControlMode.res.inst_31_a_0 Bool) (ControlMode.res.inst_30_a_0 Bool) (ControlMode.res.inst_29_a_0 Bool) (ControlMode.res.inst_28_a_0 Bool) (ControlMode.res.inst_27_a_0 Bool) (ControlMode.res.inst_26_a_0 Bool) (ControlMode.res.inst_25_a_0 Bool) (ControlMode.res.inst_24_a_0 Bool) (ControlMode.res.inst_23_a_0 Bool) (ControlMode.res.inst_22_a_0 Bool) (ControlMode.res.inst_21_a_0 Bool) (ControlMode.res.inst_20_a_0 Bool) (ControlMode.res.inst_19_a_0 Bool) (ControlMode.res.inst_18_a_0 Bool) (ControlMode.res.inst_17_a_0 Bool) (ControlMode.res.inst_16_a_0 Bool) (ControlMode.res.inst_15_a_0 Bool) (ControlMode.res.inst_14_a_0 Bool) (ControlMode.res.inst_13_a_0 Bool) (ControlMode.res.inst_12_a_0 Bool) (ControlMode.res.inst_11_a_0 Bool) (ControlMode.res.inst_10_a_0 Bool) (ControlMode.res.inst_9_a_0 Bool) (ControlMode.res.inst_8_a_0 Bool) (ControlMode.res.inst_7_a_0 Bool) (ControlMode.res.inst_6_a_0 Bool) (ControlMode.res.inst_5_a_0 Bool) (ControlMode.res.inst_4_a_0 Bool) (ControlMode.res.inst_3_a_0 Bool) (ControlMode.res.inst_2_a_0 Bool) (ControlMode.res.inst_1_a_0 Bool) (ControlMode.res.inst_0_a_0 Bool)) Bool + (and (= ControlMode.usr.op_mode_a_0 1) (= ControlMode.res.abs_0_a_0 (let ((X1 ControlMode.res.nondet_0)) X1)) (__node_init_critical_failure_0 ControlMode.res.abs_0_a_0 ControlMode.usr.steam_a_0 ControlMode.usr.level_defect_a_0 ControlMode.usr.steam_defect_a_0 ControlMode.usr.pump_defect_0_a_0 ControlMode.usr.pump_defect_1_a_0 ControlMode.usr.pump_defect_2_a_0 ControlMode.usr.pump_defect_3_a_0 ControlMode.usr.q_a_0 ControlMode.usr.pump_state_0_a_0 ControlMode.usr.pump_state_1_a_0 ControlMode.usr.pump_state_2_a_0 ControlMode.usr.pump_state_3_a_0 ControlMode.res.abs_1_a_0 ControlMode.res.inst_46_a_0 ControlMode.res.inst_45_a_0 ControlMode.res.inst_44_a_0 ControlMode.res.inst_43_a_0 ControlMode.res.inst_42_a_0 ControlMode.res.inst_41_a_0 ControlMode.res.inst_40_a_0 ControlMode.res.inst_39_a_0 ControlMode.res.inst_38_a_0 ControlMode.res.inst_37_a_0 ControlMode.res.inst_36_a_0 ControlMode.res.inst_35_a_0 ControlMode.res.inst_34_a_0 ControlMode.res.inst_33_a_0 ControlMode.res.inst_32_a_0 ControlMode.res.inst_31_a_0 ControlMode.res.inst_30_a_0 ControlMode.res.inst_29_a_0 ControlMode.res.inst_28_a_0 ControlMode.res.inst_27_a_0 ControlMode.res.inst_26_a_0) (__node_init_level_failure_0 ControlMode.usr.level_defect_a_0 ControlMode.res.abs_2_a_0 ControlMode.res.inst_25_a_0) (__node_init_failure_0 ControlMode.usr.level_defect_a_0 ControlMode.usr.steam_defect_a_0 ControlMode.usr.pump_defect_0_a_0 ControlMode.usr.pump_defect_1_a_0 ControlMode.usr.pump_defect_2_a_0 ControlMode.usr.pump_defect_3_a_0 ControlMode.usr.pump_control_defect_0_a_0 ControlMode.usr.pump_control_defect_1_a_0 ControlMode.usr.pump_control_defect_2_a_0 ControlMode.usr.pump_control_defect_3_a_0 ControlMode.res.abs_3_a_0 ControlMode.res.inst_24_a_0 ControlMode.res.inst_23_a_0 ControlMode.res.inst_22_a_0 ControlMode.res.inst_21_a_0 ControlMode.res.inst_20_a_0 ControlMode.res.inst_19_a_0 ControlMode.res.inst_18_a_0 ControlMode.res.inst_17_a_0 ControlMode.res.inst_16_a_0 ControlMode.res.inst_15_a_0 ControlMode.res.inst_14_a_0 ControlMode.res.inst_13_a_0 ControlMode.res.inst_12_a_0 ControlMode.res.inst_11_a_0 ControlMode.res.inst_10_a_0 ControlMode.res.inst_9_a_0 ControlMode.res.inst_8_a_0 ControlMode.res.inst_7_a_0 ControlMode.res.inst_6_a_0 ControlMode.res.inst_5_a_0 ControlMode.res.inst_4_a_0 ControlMode.res.inst_3_a_0 ControlMode.res.inst_2_a_0 ControlMode.res.inst_1_a_0 ControlMode.res.inst_0_a_0) (<= 1 ControlMode.usr.op_mode_a_0 6) ControlMode.res.init_flag_a_0)) +(define-fun __node_trans_ControlMode_0 ((ControlMode.usr.steam_boiler_waiting_a_1 Bool) (ControlMode.usr.physical_units_ready_a_1 Bool) (ControlMode.usr.stop_request_a_1 Bool) (ControlMode.usr.steam_a_1 Int) (ControlMode.usr.level_defect_a_1 Int) (ControlMode.usr.steam_defect_a_1 Int) (ControlMode.usr.pump_defect_0_a_1 Int) (ControlMode.usr.pump_defect_1_a_1 Int) (ControlMode.usr.pump_defect_2_a_1 Int) (ControlMode.usr.pump_defect_3_a_1 Int) (ControlMode.usr.pump_control_defect_0_a_1 Int) (ControlMode.usr.pump_control_defect_1_a_1 Int) (ControlMode.usr.pump_control_defect_2_a_1 Int) (ControlMode.usr.pump_control_defect_3_a_1 Int) (ControlMode.usr.q_a_1 Int) (ControlMode.usr.pump_state_0_a_1 Int) (ControlMode.usr.pump_state_1_a_1 Int) (ControlMode.usr.pump_state_2_a_1 Int) (ControlMode.usr.pump_state_3_a_1 Int) (ControlMode.res.nondet_0 Int) (ControlMode.usr.op_mode_a_1 Int) (ControlMode.res.init_flag_a_1 Bool) (ControlMode.res.abs_0_a_1 Int) (ControlMode.res.abs_1_a_1 Bool) (ControlMode.res.abs_2_a_1 Bool) (ControlMode.res.abs_3_a_1 Bool) (ControlMode.res.inst_46_a_1 Bool) (ControlMode.res.inst_45_a_1 Bool) (ControlMode.res.inst_44_a_1 Bool) (ControlMode.res.inst_43_a_1 Bool) (ControlMode.res.inst_42_a_1 Bool) (ControlMode.res.inst_41_a_1 Bool) (ControlMode.res.inst_40_a_1 Bool) (ControlMode.res.inst_39_a_1 Bool) (ControlMode.res.inst_38_a_1 Bool) (ControlMode.res.inst_37_a_1 Bool) (ControlMode.res.inst_36_a_1 Bool) (ControlMode.res.inst_35_a_1 Bool) (ControlMode.res.inst_34_a_1 Bool) (ControlMode.res.inst_33_a_1 Bool) (ControlMode.res.inst_32_a_1 Bool) (ControlMode.res.inst_31_a_1 Bool) (ControlMode.res.inst_30_a_1 Bool) (ControlMode.res.inst_29_a_1 Bool) (ControlMode.res.inst_28_a_1 Bool) (ControlMode.res.inst_27_a_1 Bool) (ControlMode.res.inst_26_a_1 Bool) (ControlMode.res.inst_25_a_1 Bool) (ControlMode.res.inst_24_a_1 Bool) (ControlMode.res.inst_23_a_1 Bool) (ControlMode.res.inst_22_a_1 Bool) (ControlMode.res.inst_21_a_1 Bool) (ControlMode.res.inst_20_a_1 Bool) (ControlMode.res.inst_19_a_1 Bool) (ControlMode.res.inst_18_a_1 Bool) (ControlMode.res.inst_17_a_1 Bool) (ControlMode.res.inst_16_a_1 Bool) (ControlMode.res.inst_15_a_1 Bool) (ControlMode.res.inst_14_a_1 Bool) (ControlMode.res.inst_13_a_1 Bool) (ControlMode.res.inst_12_a_1 Bool) (ControlMode.res.inst_11_a_1 Bool) (ControlMode.res.inst_10_a_1 Bool) (ControlMode.res.inst_9_a_1 Bool) (ControlMode.res.inst_8_a_1 Bool) (ControlMode.res.inst_7_a_1 Bool) (ControlMode.res.inst_6_a_1 Bool) (ControlMode.res.inst_5_a_1 Bool) (ControlMode.res.inst_4_a_1 Bool) (ControlMode.res.inst_3_a_1 Bool) (ControlMode.res.inst_2_a_1 Bool) (ControlMode.res.inst_1_a_1 Bool) (ControlMode.res.inst_0_a_1 Bool) (ControlMode.usr.steam_boiler_waiting_a_0 Bool) (ControlMode.usr.physical_units_ready_a_0 Bool) (ControlMode.usr.stop_request_a_0 Bool) (ControlMode.usr.steam_a_0 Int) (ControlMode.usr.level_defect_a_0 Int) (ControlMode.usr.steam_defect_a_0 Int) (ControlMode.usr.pump_defect_0_a_0 Int) (ControlMode.usr.pump_defect_1_a_0 Int) (ControlMode.usr.pump_defect_2_a_0 Int) (ControlMode.usr.pump_defect_3_a_0 Int) (ControlMode.usr.pump_control_defect_0_a_0 Int) (ControlMode.usr.pump_control_defect_1_a_0 Int) (ControlMode.usr.pump_control_defect_2_a_0 Int) (ControlMode.usr.pump_control_defect_3_a_0 Int) (ControlMode.usr.q_a_0 Int) (ControlMode.usr.pump_state_0_a_0 Int) (ControlMode.usr.pump_state_1_a_0 Int) (ControlMode.usr.pump_state_2_a_0 Int) (ControlMode.usr.pump_state_3_a_0 Int) (ControlMode.usr.op_mode_a_0 Int) (ControlMode.res.init_flag_a_0 Bool) (ControlMode.res.abs_0_a_0 Int) (ControlMode.res.abs_1_a_0 Bool) (ControlMode.res.abs_2_a_0 Bool) (ControlMode.res.abs_3_a_0 Bool) (ControlMode.res.inst_46_a_0 Bool) (ControlMode.res.inst_45_a_0 Bool) (ControlMode.res.inst_44_a_0 Bool) (ControlMode.res.inst_43_a_0 Bool) (ControlMode.res.inst_42_a_0 Bool) (ControlMode.res.inst_41_a_0 Bool) (ControlMode.res.inst_40_a_0 Bool) (ControlMode.res.inst_39_a_0 Bool) (ControlMode.res.inst_38_a_0 Bool) (ControlMode.res.inst_37_a_0 Bool) (ControlMode.res.inst_36_a_0 Bool) (ControlMode.res.inst_35_a_0 Bool) (ControlMode.res.inst_34_a_0 Bool) (ControlMode.res.inst_33_a_0 Bool) (ControlMode.res.inst_32_a_0 Bool) (ControlMode.res.inst_31_a_0 Bool) (ControlMode.res.inst_30_a_0 Bool) (ControlMode.res.inst_29_a_0 Bool) (ControlMode.res.inst_28_a_0 Bool) (ControlMode.res.inst_27_a_0 Bool) (ControlMode.res.inst_26_a_0 Bool) (ControlMode.res.inst_25_a_0 Bool) (ControlMode.res.inst_24_a_0 Bool) (ControlMode.res.inst_23_a_0 Bool) (ControlMode.res.inst_22_a_0 Bool) (ControlMode.res.inst_21_a_0 Bool) (ControlMode.res.inst_20_a_0 Bool) (ControlMode.res.inst_19_a_0 Bool) (ControlMode.res.inst_18_a_0 Bool) (ControlMode.res.inst_17_a_0 Bool) (ControlMode.res.inst_16_a_0 Bool) (ControlMode.res.inst_15_a_0 Bool) (ControlMode.res.inst_14_a_0 Bool) (ControlMode.res.inst_13_a_0 Bool) (ControlMode.res.inst_12_a_0 Bool) (ControlMode.res.inst_11_a_0 Bool) (ControlMode.res.inst_10_a_0 Bool) (ControlMode.res.inst_9_a_0 Bool) (ControlMode.res.inst_8_a_0 Bool) (ControlMode.res.inst_7_a_0 Bool) (ControlMode.res.inst_6_a_0 Bool) (ControlMode.res.inst_5_a_0 Bool) (ControlMode.res.inst_4_a_0 Bool) (ControlMode.res.inst_3_a_0 Bool) (ControlMode.res.inst_2_a_0 Bool) (ControlMode.res.inst_1_a_0 Bool) (ControlMode.res.inst_0_a_0 Bool)) Bool + (and (= ControlMode.res.abs_0_a_1 ControlMode.usr.op_mode_a_0) (= ControlMode.usr.op_mode_a_1 (ite (or (or ControlMode.res.abs_1_a_1 ControlMode.usr.stop_request_a_1) (= ControlMode.usr.op_mode_a_0 6)) 6 (ite (= ControlMode.usr.op_mode_a_0 1) (ite ControlMode.usr.steam_boiler_waiting_a_1 2 1) (ite (and (= ControlMode.usr.op_mode_a_0 2) (not ControlMode.usr.physical_units_ready_a_1)) 2 (ite ControlMode.res.abs_2_a_1 5 (ite ControlMode.res.abs_3_a_1 4 3)))))) (__node_trans_critical_failure_0 ControlMode.res.abs_0_a_1 ControlMode.usr.steam_a_1 ControlMode.usr.level_defect_a_1 ControlMode.usr.steam_defect_a_1 ControlMode.usr.pump_defect_0_a_1 ControlMode.usr.pump_defect_1_a_1 ControlMode.usr.pump_defect_2_a_1 ControlMode.usr.pump_defect_3_a_1 ControlMode.usr.q_a_1 ControlMode.usr.pump_state_0_a_1 ControlMode.usr.pump_state_1_a_1 ControlMode.usr.pump_state_2_a_1 ControlMode.usr.pump_state_3_a_1 ControlMode.res.abs_1_a_1 ControlMode.res.inst_46_a_1 ControlMode.res.inst_45_a_1 ControlMode.res.inst_44_a_1 ControlMode.res.inst_43_a_1 ControlMode.res.inst_42_a_1 ControlMode.res.inst_41_a_1 ControlMode.res.inst_40_a_1 ControlMode.res.inst_39_a_1 ControlMode.res.inst_38_a_1 ControlMode.res.inst_37_a_1 ControlMode.res.inst_36_a_1 ControlMode.res.inst_35_a_1 ControlMode.res.inst_34_a_1 ControlMode.res.inst_33_a_1 ControlMode.res.inst_32_a_1 ControlMode.res.inst_31_a_1 ControlMode.res.inst_30_a_1 ControlMode.res.inst_29_a_1 ControlMode.res.inst_28_a_1 ControlMode.res.inst_27_a_1 ControlMode.res.inst_26_a_1 ControlMode.res.abs_0_a_0 ControlMode.usr.steam_a_0 ControlMode.usr.level_defect_a_0 ControlMode.usr.steam_defect_a_0 ControlMode.usr.pump_defect_0_a_0 ControlMode.usr.pump_defect_1_a_0 ControlMode.usr.pump_defect_2_a_0 ControlMode.usr.pump_defect_3_a_0 ControlMode.usr.q_a_0 ControlMode.usr.pump_state_0_a_0 ControlMode.usr.pump_state_1_a_0 ControlMode.usr.pump_state_2_a_0 ControlMode.usr.pump_state_3_a_0 ControlMode.res.abs_1_a_0 ControlMode.res.inst_46_a_0 ControlMode.res.inst_45_a_0 ControlMode.res.inst_44_a_0 ControlMode.res.inst_43_a_0 ControlMode.res.inst_42_a_0 ControlMode.res.inst_41_a_0 ControlMode.res.inst_40_a_0 ControlMode.res.inst_39_a_0 ControlMode.res.inst_38_a_0 ControlMode.res.inst_37_a_0 ControlMode.res.inst_36_a_0 ControlMode.res.inst_35_a_0 ControlMode.res.inst_34_a_0 ControlMode.res.inst_33_a_0 ControlMode.res.inst_32_a_0 ControlMode.res.inst_31_a_0 ControlMode.res.inst_30_a_0 ControlMode.res.inst_29_a_0 ControlMode.res.inst_28_a_0 ControlMode.res.inst_27_a_0 ControlMode.res.inst_26_a_0) (__node_trans_level_failure_0 ControlMode.usr.level_defect_a_1 ControlMode.res.abs_2_a_1 ControlMode.res.inst_25_a_1 ControlMode.usr.level_defect_a_0 ControlMode.res.abs_2_a_0 ControlMode.res.inst_25_a_0) (__node_trans_failure_0 ControlMode.usr.level_defect_a_1 ControlMode.usr.steam_defect_a_1 ControlMode.usr.pump_defect_0_a_1 ControlMode.usr.pump_defect_1_a_1 ControlMode.usr.pump_defect_2_a_1 ControlMode.usr.pump_defect_3_a_1 ControlMode.usr.pump_control_defect_0_a_1 ControlMode.usr.pump_control_defect_1_a_1 ControlMode.usr.pump_control_defect_2_a_1 ControlMode.usr.pump_control_defect_3_a_1 ControlMode.res.abs_3_a_1 ControlMode.res.inst_24_a_1 ControlMode.res.inst_23_a_1 ControlMode.res.inst_22_a_1 ControlMode.res.inst_21_a_1 ControlMode.res.inst_20_a_1 ControlMode.res.inst_19_a_1 ControlMode.res.inst_18_a_1 ControlMode.res.inst_17_a_1 ControlMode.res.inst_16_a_1 ControlMode.res.inst_15_a_1 ControlMode.res.inst_14_a_1 ControlMode.res.inst_13_a_1 ControlMode.res.inst_12_a_1 ControlMode.res.inst_11_a_1 ControlMode.res.inst_10_a_1 ControlMode.res.inst_9_a_1 ControlMode.res.inst_8_a_1 ControlMode.res.inst_7_a_1 ControlMode.res.inst_6_a_1 ControlMode.res.inst_5_a_1 ControlMode.res.inst_4_a_1 ControlMode.res.inst_3_a_1 ControlMode.res.inst_2_a_1 ControlMode.res.inst_1_a_1 ControlMode.res.inst_0_a_1 ControlMode.usr.level_defect_a_0 ControlMode.usr.steam_defect_a_0 ControlMode.usr.pump_defect_0_a_0 ControlMode.usr.pump_defect_1_a_0 ControlMode.usr.pump_defect_2_a_0 ControlMode.usr.pump_defect_3_a_0 ControlMode.usr.pump_control_defect_0_a_0 ControlMode.usr.pump_control_defect_1_a_0 ControlMode.usr.pump_control_defect_2_a_0 ControlMode.usr.pump_control_defect_3_a_0 ControlMode.res.abs_3_a_0 ControlMode.res.inst_24_a_0 ControlMode.res.inst_23_a_0 ControlMode.res.inst_22_a_0 ControlMode.res.inst_21_a_0 ControlMode.res.inst_20_a_0 ControlMode.res.inst_19_a_0 ControlMode.res.inst_18_a_0 ControlMode.res.inst_17_a_0 ControlMode.res.inst_16_a_0 ControlMode.res.inst_15_a_0 ControlMode.res.inst_14_a_0 ControlMode.res.inst_13_a_0 ControlMode.res.inst_12_a_0 ControlMode.res.inst_11_a_0 ControlMode.res.inst_10_a_0 ControlMode.res.inst_9_a_0 ControlMode.res.inst_8_a_0 ControlMode.res.inst_7_a_0 ControlMode.res.inst_6_a_0 ControlMode.res.inst_5_a_0 ControlMode.res.inst_4_a_0 ControlMode.res.inst_3_a_0 ControlMode.res.inst_2_a_0 ControlMode.res.inst_1_a_0 ControlMode.res.inst_0_a_0) (<= 1 ControlMode.usr.op_mode_a_1 6) (not ControlMode.res.init_flag_a_1))) +(define-fun __node_init_level_failure_detect_0 ((level_failure_detect.usr.level_a_0 Int) (level_failure_detect.usr.level_failure_detect_a_0 Bool) (level_failure_detect.res.init_flag_a_0 Bool)) Bool + (and (= level_failure_detect.usr.level_failure_detect_a_0 (or (< level_failure_detect.usr.level_a_0 0) (> level_failure_detect.usr.level_a_0 1000))) level_failure_detect.res.init_flag_a_0)) +(define-fun __node_trans_level_failure_detect_0 ((level_failure_detect.usr.level_a_1 Int) (level_failure_detect.usr.level_failure_detect_a_1 Bool) (level_failure_detect.res.init_flag_a_1 Bool) (level_failure_detect.usr.level_a_0 Int) (level_failure_detect.usr.level_failure_detect_a_0 Bool) (level_failure_detect.res.init_flag_a_0 Bool)) Bool + (and (= level_failure_detect.usr.level_failure_detect_a_1 (or (< level_failure_detect.usr.level_a_1 0) (> level_failure_detect.usr.level_a_1 1000))) (not level_failure_detect.res.init_flag_a_1))) +(define-fun __node_init_Defect_0 ((Defect.usr.statein_a_0 Int) (Defect.usr.fail_cond_a_0 Bool) (Defect.usr.ack_chan_a_0 Bool) (Defect.usr.repair_chan_a_0 Bool) (Defect.usr.stateout_a_0 Int) (Defect.res.init_flag_a_0 Bool)) Bool + (and (= Defect.usr.stateout_a_0 (ite (= Defect.usr.statein_a_0 0) (ite Defect.usr.fail_cond_a_0 1 0) (ite (= Defect.usr.statein_a_0 1) (ite Defect.usr.ack_chan_a_0 2 1) (ite Defect.usr.repair_chan_a_0 0 2)))) (<= 0 Defect.usr.stateout_a_0 2) Defect.res.init_flag_a_0)) +(define-fun __node_trans_Defect_0 ((Defect.usr.statein_a_1 Int) (Defect.usr.fail_cond_a_1 Bool) (Defect.usr.ack_chan_a_1 Bool) (Defect.usr.repair_chan_a_1 Bool) (Defect.usr.stateout_a_1 Int) (Defect.res.init_flag_a_1 Bool) (Defect.usr.statein_a_0 Int) (Defect.usr.fail_cond_a_0 Bool) (Defect.usr.ack_chan_a_0 Bool) (Defect.usr.repair_chan_a_0 Bool) (Defect.usr.stateout_a_0 Int) (Defect.res.init_flag_a_0 Bool)) Bool + (and (= Defect.usr.stateout_a_1 (ite (= Defect.usr.statein_a_1 0) (ite Defect.usr.fail_cond_a_1 1 0) (ite (= Defect.usr.statein_a_1 1) (ite Defect.usr.ack_chan_a_1 2 1) (ite Defect.usr.repair_chan_a_1 0 2)))) (<= 0 Defect.usr.stateout_a_1 2) (not Defect.res.init_flag_a_1))) +(define-fun __node_init_LevelDefect_0 ((LevelDefect.usr.level_failure_acknowledgement_a_0 Bool) (LevelDefect.usr.level_repaired_a_0 Bool) (LevelDefect.usr.level_a_0 Int) (LevelDefect.res.nondet_0 Int) (LevelDefect.usr.LevelDefect_a_0 Int) (LevelDefect.res.init_flag_a_0 Bool) (LevelDefect.res.abs_0_a_0 Bool) (LevelDefect.res.abs_1_a_0 Int) (LevelDefect.res.abs_2_a_0 Int) (LevelDefect.res.inst_1_a_0 Bool) (LevelDefect.res.inst_0_a_0 Bool)) Bool + (and (= LevelDefect.usr.LevelDefect_a_0 0) (= LevelDefect.res.abs_1_a_0 (let ((X1 LevelDefect.res.nondet_0)) X1)) (__node_init_Defect_0 LevelDefect.res.abs_1_a_0 LevelDefect.res.abs_0_a_0 LevelDefect.usr.level_failure_acknowledgement_a_0 LevelDefect.usr.level_repaired_a_0 LevelDefect.res.abs_2_a_0 LevelDefect.res.inst_1_a_0) (__node_init_level_failure_detect_0 LevelDefect.usr.level_a_0 LevelDefect.res.abs_0_a_0 LevelDefect.res.inst_0_a_0) (<= 0 LevelDefect.res.abs_2_a_0 2) (<= 0 LevelDefect.usr.LevelDefect_a_0 2) LevelDefect.res.init_flag_a_0)) +(define-fun __node_trans_LevelDefect_0 ((LevelDefect.usr.level_failure_acknowledgement_a_1 Bool) (LevelDefect.usr.level_repaired_a_1 Bool) (LevelDefect.usr.level_a_1 Int) (LevelDefect.res.nondet_0 Int) (LevelDefect.usr.LevelDefect_a_1 Int) (LevelDefect.res.init_flag_a_1 Bool) (LevelDefect.res.abs_0_a_1 Bool) (LevelDefect.res.abs_1_a_1 Int) (LevelDefect.res.abs_2_a_1 Int) (LevelDefect.res.inst_1_a_1 Bool) (LevelDefect.res.inst_0_a_1 Bool) (LevelDefect.usr.level_failure_acknowledgement_a_0 Bool) (LevelDefect.usr.level_repaired_a_0 Bool) (LevelDefect.usr.level_a_0 Int) (LevelDefect.usr.LevelDefect_a_0 Int) (LevelDefect.res.init_flag_a_0 Bool) (LevelDefect.res.abs_0_a_0 Bool) (LevelDefect.res.abs_1_a_0 Int) (LevelDefect.res.abs_2_a_0 Int) (LevelDefect.res.inst_1_a_0 Bool) (LevelDefect.res.inst_0_a_0 Bool)) Bool + (and (= LevelDefect.res.abs_1_a_1 LevelDefect.usr.LevelDefect_a_0) (= LevelDefect.usr.LevelDefect_a_1 LevelDefect.res.abs_2_a_1) (__node_trans_Defect_0 LevelDefect.res.abs_1_a_1 LevelDefect.res.abs_0_a_1 LevelDefect.usr.level_failure_acknowledgement_a_1 LevelDefect.usr.level_repaired_a_1 LevelDefect.res.abs_2_a_1 LevelDefect.res.inst_1_a_1 LevelDefect.res.abs_1_a_0 LevelDefect.res.abs_0_a_0 LevelDefect.usr.level_failure_acknowledgement_a_0 LevelDefect.usr.level_repaired_a_0 LevelDefect.res.abs_2_a_0 LevelDefect.res.inst_1_a_0) (__node_trans_level_failure_detect_0 LevelDefect.usr.level_a_1 LevelDefect.res.abs_0_a_1 LevelDefect.res.inst_0_a_1 LevelDefect.usr.level_a_0 LevelDefect.res.abs_0_a_0 LevelDefect.res.inst_0_a_0) (<= 0 LevelDefect.res.abs_2_a_1 2) (<= 0 LevelDefect.usr.LevelDefect_a_1 2) (not LevelDefect.res.init_flag_a_1))) +(define-fun __node_init_operate_pumps_0 ((operate_pumps.usr.n_a_0 Int) (operate_pumps.usr.n_pumps_to_open_a_0 Int) (operate_pumps.usr.pump_status_0_a_0 Int) (operate_pumps.usr.pump_status_1_a_0 Int) (operate_pumps.usr.pump_status_2_a_0 Int) (operate_pumps.usr.pump_status_3_a_0 Int) (operate_pumps.usr.pump_defect_0_a_0 Int) (operate_pumps.usr.pump_defect_1_a_0 Int) (operate_pumps.usr.pump_defect_2_a_0 Int) (operate_pumps.usr.pump_defect_3_a_0 Int) (operate_pumps.usr.flow_0_a_0 Bool) (operate_pumps.usr.flow_1_a_0 Bool) (operate_pumps.usr.flow_2_a_0 Bool) (operate_pumps.usr.flow_3_a_0 Bool) (operate_pumps.res.nondet_3 Int) (operate_pumps.res.nondet_2 Int) (operate_pumps.res.nondet_1 Int) (operate_pumps.res.nondet_0 Int) (operate_pumps.usr.operate_pumps_0_a_0 Int) (operate_pumps.usr.operate_pumps_1_a_0 Int) (operate_pumps.usr.operate_pumps_2_a_0 Int) (operate_pumps.usr.operate_pumps_3_a_0 Int) (operate_pumps.res.init_flag_a_0 Bool) (operate_pumps.res.abs_0_a_0 Int) (operate_pumps.res.abs_1_a_0 Bool) (operate_pumps.res.abs_2_a_0 Int) (operate_pumps.res.abs_3_a_0 Bool) (operate_pumps.res.abs_5_a_0 Int) (operate_pumps.res.abs_6_a_0 Bool) (operate_pumps.res.abs_7_a_0 Int) (operate_pumps.res.abs_8_a_0 Bool) (operate_pumps.res.abs_10_a_0 Int) (operate_pumps.res.abs_11_a_0 Bool) (operate_pumps.res.abs_12_a_0 Int) (operate_pumps.res.abs_13_a_0 Bool) (operate_pumps.res.abs_15_a_0 Int) (operate_pumps.res.abs_16_a_0 Bool) (operate_pumps.res.abs_17_a_0 Int) (operate_pumps.res.abs_18_a_0 Bool) (operate_pumps.res.inst_7_a_0 Bool) (operate_pumps.res.inst_6_a_0 Bool) (operate_pumps.res.inst_5_a_0 Bool) (operate_pumps.res.inst_4_a_0 Bool) (operate_pumps.res.inst_3_a_0 Bool) (operate_pumps.res.inst_2_a_0 Bool) (operate_pumps.res.inst_1_a_0 Bool) (operate_pumps.res.inst_0_a_0 Bool)) Bool + (and (= operate_pumps.res.abs_2_a_0 operate_pumps.usr.pump_defect_0_a_0) (= operate_pumps.res.abs_0_a_0 operate_pumps.usr.pump_defect_0_a_0) (= operate_pumps.usr.operate_pumps_0_a_0 (let ((X1 operate_pumps.res.nondet_0)) (ite (and (and (and (> operate_pumps.usr.n_pumps_to_open_a_0 0) (not operate_pumps.usr.flow_0_a_0)) (not operate_pumps.res.abs_1_a_0)) (= operate_pumps.usr.pump_status_0_a_0 0)) 2 (ite (and (and (and (< operate_pumps.usr.n_pumps_to_open_a_0 0) operate_pumps.usr.flow_0_a_0) (not operate_pumps.res.abs_3_a_0)) (= operate_pumps.usr.pump_status_0_a_0 1)) 0 (ite (= operate_pumps.usr.pump_status_0_a_0 2) 1 (ite (and (= X1 2) (= operate_pumps.usr.pump_defect_0_a_0 0)) (ite (= operate_pumps.usr.pump_status_0_a_0 1) 0 1) operate_pumps.usr.pump_status_0_a_0)))))) (= operate_pumps.res.abs_7_a_0 operate_pumps.usr.pump_defect_1_a_0) (= operate_pumps.res.abs_5_a_0 operate_pumps.usr.pump_defect_1_a_0) (= operate_pumps.usr.operate_pumps_1_a_0 (let ((X1 operate_pumps.res.nondet_1)) (ite (and (and (and (> operate_pumps.usr.n_pumps_to_open_a_0 0) (not operate_pumps.usr.flow_1_a_0)) (not operate_pumps.res.abs_6_a_0)) (= operate_pumps.usr.pump_status_1_a_0 0)) 2 (ite (and (and (and (< operate_pumps.usr.n_pumps_to_open_a_0 0) operate_pumps.usr.flow_1_a_0) (not operate_pumps.res.abs_8_a_0)) (= operate_pumps.usr.pump_status_1_a_0 1)) 0 (ite (= operate_pumps.usr.pump_status_1_a_0 2) 1 (ite (and (= X1 2) (= operate_pumps.usr.pump_defect_1_a_0 0)) (ite (= operate_pumps.usr.pump_status_1_a_0 1) 0 1) operate_pumps.usr.pump_status_1_a_0)))))) (= operate_pumps.res.abs_12_a_0 operate_pumps.usr.pump_defect_2_a_0) (= operate_pumps.res.abs_10_a_0 operate_pumps.usr.pump_defect_2_a_0) (= operate_pumps.usr.operate_pumps_2_a_0 (let ((X1 operate_pumps.res.nondet_2)) (ite (and (and (and (> operate_pumps.usr.n_pumps_to_open_a_0 0) (not operate_pumps.usr.flow_2_a_0)) (not operate_pumps.res.abs_11_a_0)) (= operate_pumps.usr.pump_status_2_a_0 0)) 2 (ite (and (and (and (< operate_pumps.usr.n_pumps_to_open_a_0 0) operate_pumps.usr.flow_2_a_0) (not operate_pumps.res.abs_13_a_0)) (= operate_pumps.usr.pump_status_2_a_0 1)) 0 (ite (= operate_pumps.usr.pump_status_2_a_0 2) 1 (ite (and (= X1 2) (= operate_pumps.usr.pump_defect_2_a_0 0)) (ite (= operate_pumps.usr.pump_status_2_a_0 1) 0 1) operate_pumps.usr.pump_status_2_a_0)))))) (= operate_pumps.res.abs_17_a_0 operate_pumps.usr.pump_defect_3_a_0) (= operate_pumps.res.abs_15_a_0 operate_pumps.usr.pump_defect_3_a_0) (= operate_pumps.usr.operate_pumps_3_a_0 (let ((X1 operate_pumps.res.nondet_3)) (ite (and (and (and (> operate_pumps.usr.n_pumps_to_open_a_0 0) (not operate_pumps.usr.flow_3_a_0)) (not operate_pumps.res.abs_16_a_0)) (= operate_pumps.usr.pump_status_3_a_0 0)) 2 (ite (and (and (and (< operate_pumps.usr.n_pumps_to_open_a_0 0) operate_pumps.usr.flow_3_a_0) (not operate_pumps.res.abs_18_a_0)) (= operate_pumps.usr.pump_status_3_a_0 1)) 0 (ite (= operate_pumps.usr.pump_status_3_a_0 2) 1 (ite (and (= X1 2) (= operate_pumps.usr.pump_defect_3_a_0 0)) (ite (= operate_pumps.usr.pump_status_3_a_0 1) 0 1) operate_pumps.usr.pump_status_3_a_0)))))) (__node_init_pump_failure_0 operate_pumps.res.abs_0_a_0 operate_pumps.res.abs_1_a_0 operate_pumps.res.inst_7_a_0) (__node_init_pump_failure_0 operate_pumps.res.abs_2_a_0 operate_pumps.res.abs_3_a_0 operate_pumps.res.inst_6_a_0) (__node_init_pump_failure_0 operate_pumps.res.abs_5_a_0 operate_pumps.res.abs_6_a_0 operate_pumps.res.inst_5_a_0) (__node_init_pump_failure_0 operate_pumps.res.abs_7_a_0 operate_pumps.res.abs_8_a_0 operate_pumps.res.inst_4_a_0) (__node_init_pump_failure_0 operate_pumps.res.abs_10_a_0 operate_pumps.res.abs_11_a_0 operate_pumps.res.inst_3_a_0) (__node_init_pump_failure_0 operate_pumps.res.abs_12_a_0 operate_pumps.res.abs_13_a_0 operate_pumps.res.inst_2_a_0) (__node_init_pump_failure_0 operate_pumps.res.abs_15_a_0 operate_pumps.res.abs_16_a_0 operate_pumps.res.inst_1_a_0) (__node_init_pump_failure_0 operate_pumps.res.abs_17_a_0 operate_pumps.res.abs_18_a_0 operate_pumps.res.inst_0_a_0) operate_pumps.res.init_flag_a_0)) +(define-fun __node_trans_operate_pumps_0 ((operate_pumps.usr.n_a_1 Int) (operate_pumps.usr.n_pumps_to_open_a_1 Int) (operate_pumps.usr.pump_status_0_a_1 Int) (operate_pumps.usr.pump_status_1_a_1 Int) (operate_pumps.usr.pump_status_2_a_1 Int) (operate_pumps.usr.pump_status_3_a_1 Int) (operate_pumps.usr.pump_defect_0_a_1 Int) (operate_pumps.usr.pump_defect_1_a_1 Int) (operate_pumps.usr.pump_defect_2_a_1 Int) (operate_pumps.usr.pump_defect_3_a_1 Int) (operate_pumps.usr.flow_0_a_1 Bool) (operate_pumps.usr.flow_1_a_1 Bool) (operate_pumps.usr.flow_2_a_1 Bool) (operate_pumps.usr.flow_3_a_1 Bool) (operate_pumps.res.nondet_3 Int) (operate_pumps.res.nondet_2 Int) (operate_pumps.res.nondet_1 Int) (operate_pumps.res.nondet_0 Int) (operate_pumps.usr.operate_pumps_0_a_1 Int) (operate_pumps.usr.operate_pumps_1_a_1 Int) (operate_pumps.usr.operate_pumps_2_a_1 Int) (operate_pumps.usr.operate_pumps_3_a_1 Int) (operate_pumps.res.init_flag_a_1 Bool) (operate_pumps.res.abs_0_a_1 Int) (operate_pumps.res.abs_1_a_1 Bool) (operate_pumps.res.abs_2_a_1 Int) (operate_pumps.res.abs_3_a_1 Bool) (operate_pumps.res.abs_5_a_1 Int) (operate_pumps.res.abs_6_a_1 Bool) (operate_pumps.res.abs_7_a_1 Int) (operate_pumps.res.abs_8_a_1 Bool) (operate_pumps.res.abs_10_a_1 Int) (operate_pumps.res.abs_11_a_1 Bool) (operate_pumps.res.abs_12_a_1 Int) (operate_pumps.res.abs_13_a_1 Bool) (operate_pumps.res.abs_15_a_1 Int) (operate_pumps.res.abs_16_a_1 Bool) (operate_pumps.res.abs_17_a_1 Int) (operate_pumps.res.abs_18_a_1 Bool) (operate_pumps.res.inst_7_a_1 Bool) (operate_pumps.res.inst_6_a_1 Bool) (operate_pumps.res.inst_5_a_1 Bool) (operate_pumps.res.inst_4_a_1 Bool) (operate_pumps.res.inst_3_a_1 Bool) (operate_pumps.res.inst_2_a_1 Bool) (operate_pumps.res.inst_1_a_1 Bool) (operate_pumps.res.inst_0_a_1 Bool) (operate_pumps.usr.n_a_0 Int) (operate_pumps.usr.n_pumps_to_open_a_0 Int) (operate_pumps.usr.pump_status_0_a_0 Int) (operate_pumps.usr.pump_status_1_a_0 Int) (operate_pumps.usr.pump_status_2_a_0 Int) (operate_pumps.usr.pump_status_3_a_0 Int) (operate_pumps.usr.pump_defect_0_a_0 Int) (operate_pumps.usr.pump_defect_1_a_0 Int) (operate_pumps.usr.pump_defect_2_a_0 Int) (operate_pumps.usr.pump_defect_3_a_0 Int) (operate_pumps.usr.flow_0_a_0 Bool) (operate_pumps.usr.flow_1_a_0 Bool) (operate_pumps.usr.flow_2_a_0 Bool) (operate_pumps.usr.flow_3_a_0 Bool) (operate_pumps.usr.operate_pumps_0_a_0 Int) (operate_pumps.usr.operate_pumps_1_a_0 Int) (operate_pumps.usr.operate_pumps_2_a_0 Int) (operate_pumps.usr.operate_pumps_3_a_0 Int) (operate_pumps.res.init_flag_a_0 Bool) (operate_pumps.res.abs_0_a_0 Int) (operate_pumps.res.abs_1_a_0 Bool) (operate_pumps.res.abs_2_a_0 Int) (operate_pumps.res.abs_3_a_0 Bool) (operate_pumps.res.abs_5_a_0 Int) (operate_pumps.res.abs_6_a_0 Bool) (operate_pumps.res.abs_7_a_0 Int) (operate_pumps.res.abs_8_a_0 Bool) (operate_pumps.res.abs_10_a_0 Int) (operate_pumps.res.abs_11_a_0 Bool) (operate_pumps.res.abs_12_a_0 Int) (operate_pumps.res.abs_13_a_0 Bool) (operate_pumps.res.abs_15_a_0 Int) (operate_pumps.res.abs_16_a_0 Bool) (operate_pumps.res.abs_17_a_0 Int) (operate_pumps.res.abs_18_a_0 Bool) (operate_pumps.res.inst_7_a_0 Bool) (operate_pumps.res.inst_6_a_0 Bool) (operate_pumps.res.inst_5_a_0 Bool) (operate_pumps.res.inst_4_a_0 Bool) (operate_pumps.res.inst_3_a_0 Bool) (operate_pumps.res.inst_2_a_0 Bool) (operate_pumps.res.inst_1_a_0 Bool) (operate_pumps.res.inst_0_a_0 Bool)) Bool + (and (= operate_pumps.res.abs_2_a_1 operate_pumps.usr.pump_defect_0_a_1) (= operate_pumps.res.abs_0_a_1 operate_pumps.usr.pump_defect_0_a_1) (= operate_pumps.usr.operate_pumps_0_a_1 (ite (and (and (and (> operate_pumps.usr.n_pumps_to_open_a_1 0) (not operate_pumps.usr.flow_0_a_1)) (not operate_pumps.res.abs_1_a_1)) (= operate_pumps.usr.pump_status_0_a_1 0)) 2 (ite (and (and (and (< operate_pumps.usr.n_pumps_to_open_a_1 0) operate_pumps.usr.flow_0_a_1) (not operate_pumps.res.abs_3_a_1)) (= operate_pumps.usr.pump_status_0_a_1 1)) 0 (ite (= operate_pumps.usr.pump_status_0_a_1 2) 1 (ite (and (= operate_pumps.usr.pump_defect_0_a_0 2) (= operate_pumps.usr.pump_defect_0_a_1 0)) (ite (= operate_pumps.usr.pump_status_0_a_1 1) 0 1) operate_pumps.usr.pump_status_0_a_1))))) (= operate_pumps.res.abs_7_a_1 operate_pumps.usr.pump_defect_1_a_1) (= operate_pumps.res.abs_5_a_1 operate_pumps.usr.pump_defect_1_a_1) (= operate_pumps.usr.operate_pumps_1_a_1 (ite (and (and (and (> operate_pumps.usr.n_pumps_to_open_a_1 0) (not operate_pumps.usr.flow_1_a_1)) (not operate_pumps.res.abs_6_a_1)) (= operate_pumps.usr.pump_status_1_a_1 0)) 2 (ite (and (and (and (< operate_pumps.usr.n_pumps_to_open_a_1 0) operate_pumps.usr.flow_1_a_1) (not operate_pumps.res.abs_8_a_1)) (= operate_pumps.usr.pump_status_1_a_1 1)) 0 (ite (= operate_pumps.usr.pump_status_1_a_1 2) 1 (ite (and (= operate_pumps.usr.pump_defect_1_a_0 2) (= operate_pumps.usr.pump_defect_1_a_1 0)) (ite (= operate_pumps.usr.pump_status_1_a_1 1) 0 1) operate_pumps.usr.pump_status_1_a_1))))) (= operate_pumps.res.abs_12_a_1 operate_pumps.usr.pump_defect_2_a_1) (= operate_pumps.res.abs_10_a_1 operate_pumps.usr.pump_defect_2_a_1) (= operate_pumps.usr.operate_pumps_2_a_1 (ite (and (and (and (> operate_pumps.usr.n_pumps_to_open_a_1 0) (not operate_pumps.usr.flow_2_a_1)) (not operate_pumps.res.abs_11_a_1)) (= operate_pumps.usr.pump_status_2_a_1 0)) 2 (ite (and (and (and (< operate_pumps.usr.n_pumps_to_open_a_1 0) operate_pumps.usr.flow_2_a_1) (not operate_pumps.res.abs_13_a_1)) (= operate_pumps.usr.pump_status_2_a_1 1)) 0 (ite (= operate_pumps.usr.pump_status_2_a_1 2) 1 (ite (and (= operate_pumps.usr.pump_defect_2_a_0 2) (= operate_pumps.usr.pump_defect_2_a_1 0)) (ite (= operate_pumps.usr.pump_status_2_a_1 1) 0 1) operate_pumps.usr.pump_status_2_a_1))))) (= operate_pumps.res.abs_17_a_1 operate_pumps.usr.pump_defect_3_a_1) (= operate_pumps.res.abs_15_a_1 operate_pumps.usr.pump_defect_3_a_1) (= operate_pumps.usr.operate_pumps_3_a_1 (ite (and (and (and (> operate_pumps.usr.n_pumps_to_open_a_1 0) (not operate_pumps.usr.flow_3_a_1)) (not operate_pumps.res.abs_16_a_1)) (= operate_pumps.usr.pump_status_3_a_1 0)) 2 (ite (and (and (and (< operate_pumps.usr.n_pumps_to_open_a_1 0) operate_pumps.usr.flow_3_a_1) (not operate_pumps.res.abs_18_a_1)) (= operate_pumps.usr.pump_status_3_a_1 1)) 0 (ite (= operate_pumps.usr.pump_status_3_a_1 2) 1 (ite (and (= operate_pumps.usr.pump_defect_3_a_0 2) (= operate_pumps.usr.pump_defect_3_a_1 0)) (ite (= operate_pumps.usr.pump_status_3_a_1 1) 0 1) operate_pumps.usr.pump_status_3_a_1))))) (__node_trans_pump_failure_0 operate_pumps.res.abs_0_a_1 operate_pumps.res.abs_1_a_1 operate_pumps.res.inst_7_a_1 operate_pumps.res.abs_0_a_0 operate_pumps.res.abs_1_a_0 operate_pumps.res.inst_7_a_0) (__node_trans_pump_failure_0 operate_pumps.res.abs_2_a_1 operate_pumps.res.abs_3_a_1 operate_pumps.res.inst_6_a_1 operate_pumps.res.abs_2_a_0 operate_pumps.res.abs_3_a_0 operate_pumps.res.inst_6_a_0) (__node_trans_pump_failure_0 operate_pumps.res.abs_5_a_1 operate_pumps.res.abs_6_a_1 operate_pumps.res.inst_5_a_1 operate_pumps.res.abs_5_a_0 operate_pumps.res.abs_6_a_0 operate_pumps.res.inst_5_a_0) (__node_trans_pump_failure_0 operate_pumps.res.abs_7_a_1 operate_pumps.res.abs_8_a_1 operate_pumps.res.inst_4_a_1 operate_pumps.res.abs_7_a_0 operate_pumps.res.abs_8_a_0 operate_pumps.res.inst_4_a_0) (__node_trans_pump_failure_0 operate_pumps.res.abs_10_a_1 operate_pumps.res.abs_11_a_1 operate_pumps.res.inst_3_a_1 operate_pumps.res.abs_10_a_0 operate_pumps.res.abs_11_a_0 operate_pumps.res.inst_3_a_0) (__node_trans_pump_failure_0 operate_pumps.res.abs_12_a_1 operate_pumps.res.abs_13_a_1 operate_pumps.res.inst_2_a_1 operate_pumps.res.abs_12_a_0 operate_pumps.res.abs_13_a_0 operate_pumps.res.inst_2_a_0) (__node_trans_pump_failure_0 operate_pumps.res.abs_15_a_1 operate_pumps.res.abs_16_a_1 operate_pumps.res.inst_1_a_1 operate_pumps.res.abs_15_a_0 operate_pumps.res.abs_16_a_0 operate_pumps.res.inst_1_a_0) (__node_trans_pump_failure_0 operate_pumps.res.abs_17_a_1 operate_pumps.res.abs_18_a_1 operate_pumps.res.inst_0_a_1 operate_pumps.res.abs_17_a_0 operate_pumps.res.abs_18_a_0 operate_pumps.res.inst_0_a_0) (not operate_pumps.res.init_flag_a_1))) +(define-fun __node_init_PumpsStatus_0 ((PumpsStatus.usr.n_pumps_a_0 Int) (PumpsStatus.usr.pump_defect_0_a_0 Int) (PumpsStatus.usr.pump_defect_1_a_0 Int) (PumpsStatus.usr.pump_defect_2_a_0 Int) (PumpsStatus.usr.pump_defect_3_a_0 Int) (PumpsStatus.usr.flow_0_a_0 Bool) (PumpsStatus.usr.flow_1_a_0 Bool) (PumpsStatus.usr.flow_2_a_0 Bool) (PumpsStatus.usr.flow_3_a_0 Bool) (PumpsStatus.res.nondet_7 Int) (PumpsStatus.res.nondet_6 Int) (PumpsStatus.res.nondet_5 Int) (PumpsStatus.res.nondet_4 Int) (PumpsStatus.res.nondet_3 Int) (PumpsStatus.res.nondet_2 Int) (PumpsStatus.res.nondet_1 Int) (PumpsStatus.res.nondet_0 Int) (PumpsStatus.usr.pump_status_0_a_0 Int) (PumpsStatus.usr.pump_status_1_a_0 Int) (PumpsStatus.usr.pump_status_2_a_0 Int) (PumpsStatus.usr.pump_status_3_a_0 Int) (PumpsStatus.res.init_flag_a_0 Bool) (PumpsStatus.res.abs_4_a_0 Int) (PumpsStatus.res.abs_5_a_0 Int) (PumpsStatus.res.abs_6_a_0 Int) (PumpsStatus.res.abs_7_a_0 Int) (PumpsStatus.res.abs_8_a_0 Int) (PumpsStatus.res.abs_9_a_0 Int) (PumpsStatus.res.abs_10_a_0 Int) (PumpsStatus.res.abs_11_a_0 Int) (PumpsStatus.res.abs_12_a_0 Int) (PumpsStatus.res.abs_13_a_0 Int) (PumpsStatus.res.abs_14_a_0 Bool) (PumpsStatus.res.abs_15_a_0 Bool) (PumpsStatus.res.abs_16_a_0 Bool) (PumpsStatus.res.abs_17_a_0 Bool) (PumpsStatus.res.abs_18_a_0 Int) (PumpsStatus.res.abs_19_a_0 Int) (PumpsStatus.res.abs_20_a_0 Int) (PumpsStatus.res.abs_21_a_0 Int) (PumpsStatus.res.inst_24_a_0 Bool) (PumpsStatus.res.inst_23_a_0 Int) (PumpsStatus.res.inst_22_a_0 Bool) (PumpsStatus.res.inst_21_a_0 Int) (PumpsStatus.res.inst_20_a_0 Bool) (PumpsStatus.res.inst_19_a_0 Int) (PumpsStatus.res.inst_18_a_0 Bool) (PumpsStatus.res.inst_17_a_0 Int) (PumpsStatus.res.inst_16_a_0 Bool) (PumpsStatus.res.inst_15_a_0 Int) (PumpsStatus.res.inst_14_a_0 Bool) (PumpsStatus.res.inst_13_a_0 Int) (PumpsStatus.res.inst_12_a_0 Bool) (PumpsStatus.res.inst_11_a_0 Int) (PumpsStatus.res.inst_10_a_0 Bool) (PumpsStatus.res.inst_9_a_0 Int) (PumpsStatus.res.inst_8_a_0 Bool) (PumpsStatus.res.inst_7_a_0 Bool) (PumpsStatus.res.inst_6_a_0 Bool) (PumpsStatus.res.inst_5_a_0 Bool) (PumpsStatus.res.inst_4_a_0 Bool) (PumpsStatus.res.inst_3_a_0 Bool) (PumpsStatus.res.inst_2_a_0 Bool) (PumpsStatus.res.inst_1_a_0 Bool) (PumpsStatus.res.inst_0_a_0 Bool)) Bool + (and (= PumpsStatus.usr.pump_status_0_a_0 0) (= PumpsStatus.res.abs_14_a_0 PumpsStatus.usr.flow_0_a_0) (= PumpsStatus.res.abs_10_a_0 PumpsStatus.usr.pump_defect_0_a_0) (= PumpsStatus.res.abs_6_a_0 (let ((X1 PumpsStatus.res.nondet_0)) X1)) (let ((X1 (+ (+ (+ (ite PumpsStatus.usr.flow_0_a_0 1 0) (ite PumpsStatus.usr.flow_1_a_0 1 0)) (ite PumpsStatus.usr.flow_2_a_0 1 0)) (ite PumpsStatus.usr.flow_3_a_0 1 0)))) (let ((X2 (- PumpsStatus.usr.n_pumps_a_0 X1))) (and (= PumpsStatus.res.abs_5_a_0 X2) (let ((X3 PumpsStatus.res.abs_18_a_0)) (and (= PumpsStatus.res.abs_4_a_0 4) (= PumpsStatus.res.abs_7_a_0 (let ((X4 PumpsStatus.res.nondet_1)) X4)) (= PumpsStatus.usr.pump_status_1_a_0 0) (= PumpsStatus.res.abs_15_a_0 PumpsStatus.usr.flow_1_a_0) (= PumpsStatus.res.abs_11_a_0 PumpsStatus.usr.pump_defect_1_a_0) (let ((X4 PumpsStatus.res.abs_19_a_0)) (and (= PumpsStatus.res.abs_8_a_0 (let ((X5 PumpsStatus.res.nondet_2)) X5)) (= PumpsStatus.usr.pump_status_2_a_0 0) (= PumpsStatus.res.abs_16_a_0 PumpsStatus.usr.flow_2_a_0) (= PumpsStatus.res.abs_12_a_0 PumpsStatus.usr.pump_defect_2_a_0) (let ((X5 PumpsStatus.res.abs_20_a_0)) (and (= PumpsStatus.res.abs_9_a_0 (let ((X6 PumpsStatus.res.nondet_3)) X6)) (= PumpsStatus.usr.pump_status_3_a_0 0) (= PumpsStatus.res.abs_17_a_0 PumpsStatus.usr.flow_3_a_0) (= PumpsStatus.res.abs_13_a_0 PumpsStatus.usr.pump_defect_3_a_0) (let ((X6 PumpsStatus.res.abs_21_a_0)) (and (__node_init_operate_pumps_0 PumpsStatus.res.abs_4_a_0 PumpsStatus.res.abs_5_a_0 PumpsStatus.res.abs_6_a_0 PumpsStatus.res.abs_7_a_0 PumpsStatus.res.abs_8_a_0 PumpsStatus.res.abs_9_a_0 PumpsStatus.res.abs_10_a_0 PumpsStatus.res.abs_11_a_0 PumpsStatus.res.abs_12_a_0 PumpsStatus.res.abs_13_a_0 PumpsStatus.res.abs_14_a_0 PumpsStatus.res.abs_15_a_0 PumpsStatus.res.abs_16_a_0 PumpsStatus.res.abs_17_a_0 PumpsStatus.res.nondet_7 PumpsStatus.res.nondet_6 PumpsStatus.res.nondet_5 PumpsStatus.res.nondet_4 PumpsStatus.res.abs_18_a_0 PumpsStatus.res.abs_19_a_0 PumpsStatus.res.abs_20_a_0 PumpsStatus.res.abs_21_a_0 PumpsStatus.res.inst_24_a_0 PumpsStatus.res.inst_23_a_0 PumpsStatus.res.inst_22_a_0 PumpsStatus.res.inst_21_a_0 PumpsStatus.res.inst_20_a_0 PumpsStatus.res.inst_19_a_0 PumpsStatus.res.inst_18_a_0 PumpsStatus.res.inst_17_a_0 PumpsStatus.res.inst_16_a_0 PumpsStatus.res.inst_15_a_0 PumpsStatus.res.inst_14_a_0 PumpsStatus.res.inst_13_a_0 PumpsStatus.res.inst_12_a_0 PumpsStatus.res.inst_11_a_0 PumpsStatus.res.inst_10_a_0 PumpsStatus.res.inst_9_a_0 PumpsStatus.res.inst_8_a_0 PumpsStatus.res.inst_7_a_0 PumpsStatus.res.inst_6_a_0 PumpsStatus.res.inst_5_a_0 PumpsStatus.res.inst_4_a_0 PumpsStatus.res.inst_3_a_0 PumpsStatus.res.inst_2_a_0 PumpsStatus.res.inst_1_a_0 PumpsStatus.res.inst_0_a_0) (<= 4 PumpsStatus.res.abs_4_a_0 4) (<= 0 X1 4) PumpsStatus.res.init_flag_a_0))))))))))))) +(define-fun __node_trans_PumpsStatus_0 ((PumpsStatus.usr.n_pumps_a_1 Int) (PumpsStatus.usr.pump_defect_0_a_1 Int) (PumpsStatus.usr.pump_defect_1_a_1 Int) (PumpsStatus.usr.pump_defect_2_a_1 Int) (PumpsStatus.usr.pump_defect_3_a_1 Int) (PumpsStatus.usr.flow_0_a_1 Bool) (PumpsStatus.usr.flow_1_a_1 Bool) (PumpsStatus.usr.flow_2_a_1 Bool) (PumpsStatus.usr.flow_3_a_1 Bool) (PumpsStatus.res.nondet_7 Int) (PumpsStatus.res.nondet_6 Int) (PumpsStatus.res.nondet_5 Int) (PumpsStatus.res.nondet_4 Int) (PumpsStatus.res.nondet_3 Int) (PumpsStatus.res.nondet_2 Int) (PumpsStatus.res.nondet_1 Int) (PumpsStatus.res.nondet_0 Int) (PumpsStatus.usr.pump_status_0_a_1 Int) (PumpsStatus.usr.pump_status_1_a_1 Int) (PumpsStatus.usr.pump_status_2_a_1 Int) (PumpsStatus.usr.pump_status_3_a_1 Int) (PumpsStatus.res.init_flag_a_1 Bool) (PumpsStatus.res.abs_4_a_1 Int) (PumpsStatus.res.abs_5_a_1 Int) (PumpsStatus.res.abs_6_a_1 Int) (PumpsStatus.res.abs_7_a_1 Int) (PumpsStatus.res.abs_8_a_1 Int) (PumpsStatus.res.abs_9_a_1 Int) (PumpsStatus.res.abs_10_a_1 Int) (PumpsStatus.res.abs_11_a_1 Int) (PumpsStatus.res.abs_12_a_1 Int) (PumpsStatus.res.abs_13_a_1 Int) (PumpsStatus.res.abs_14_a_1 Bool) (PumpsStatus.res.abs_15_a_1 Bool) (PumpsStatus.res.abs_16_a_1 Bool) (PumpsStatus.res.abs_17_a_1 Bool) (PumpsStatus.res.abs_18_a_1 Int) (PumpsStatus.res.abs_19_a_1 Int) (PumpsStatus.res.abs_20_a_1 Int) (PumpsStatus.res.abs_21_a_1 Int) (PumpsStatus.res.inst_24_a_1 Bool) (PumpsStatus.res.inst_23_a_1 Int) (PumpsStatus.res.inst_22_a_1 Bool) (PumpsStatus.res.inst_21_a_1 Int) (PumpsStatus.res.inst_20_a_1 Bool) (PumpsStatus.res.inst_19_a_1 Int) (PumpsStatus.res.inst_18_a_1 Bool) (PumpsStatus.res.inst_17_a_1 Int) (PumpsStatus.res.inst_16_a_1 Bool) (PumpsStatus.res.inst_15_a_1 Int) (PumpsStatus.res.inst_14_a_1 Bool) (PumpsStatus.res.inst_13_a_1 Int) (PumpsStatus.res.inst_12_a_1 Bool) (PumpsStatus.res.inst_11_a_1 Int) (PumpsStatus.res.inst_10_a_1 Bool) (PumpsStatus.res.inst_9_a_1 Int) (PumpsStatus.res.inst_8_a_1 Bool) (PumpsStatus.res.inst_7_a_1 Bool) (PumpsStatus.res.inst_6_a_1 Bool) (PumpsStatus.res.inst_5_a_1 Bool) (PumpsStatus.res.inst_4_a_1 Bool) (PumpsStatus.res.inst_3_a_1 Bool) (PumpsStatus.res.inst_2_a_1 Bool) (PumpsStatus.res.inst_1_a_1 Bool) (PumpsStatus.res.inst_0_a_1 Bool) (PumpsStatus.usr.n_pumps_a_0 Int) (PumpsStatus.usr.pump_defect_0_a_0 Int) (PumpsStatus.usr.pump_defect_1_a_0 Int) (PumpsStatus.usr.pump_defect_2_a_0 Int) (PumpsStatus.usr.pump_defect_3_a_0 Int) (PumpsStatus.usr.flow_0_a_0 Bool) (PumpsStatus.usr.flow_1_a_0 Bool) (PumpsStatus.usr.flow_2_a_0 Bool) (PumpsStatus.usr.flow_3_a_0 Bool) (PumpsStatus.usr.pump_status_0_a_0 Int) (PumpsStatus.usr.pump_status_1_a_0 Int) (PumpsStatus.usr.pump_status_2_a_0 Int) (PumpsStatus.usr.pump_status_3_a_0 Int) (PumpsStatus.res.init_flag_a_0 Bool) (PumpsStatus.res.abs_4_a_0 Int) (PumpsStatus.res.abs_5_a_0 Int) (PumpsStatus.res.abs_6_a_0 Int) (PumpsStatus.res.abs_7_a_0 Int) (PumpsStatus.res.abs_8_a_0 Int) (PumpsStatus.res.abs_9_a_0 Int) (PumpsStatus.res.abs_10_a_0 Int) (PumpsStatus.res.abs_11_a_0 Int) (PumpsStatus.res.abs_12_a_0 Int) (PumpsStatus.res.abs_13_a_0 Int) (PumpsStatus.res.abs_14_a_0 Bool) (PumpsStatus.res.abs_15_a_0 Bool) (PumpsStatus.res.abs_16_a_0 Bool) (PumpsStatus.res.abs_17_a_0 Bool) (PumpsStatus.res.abs_18_a_0 Int) (PumpsStatus.res.abs_19_a_0 Int) (PumpsStatus.res.abs_20_a_0 Int) (PumpsStatus.res.abs_21_a_0 Int) (PumpsStatus.res.inst_24_a_0 Bool) (PumpsStatus.res.inst_23_a_0 Int) (PumpsStatus.res.inst_22_a_0 Bool) (PumpsStatus.res.inst_21_a_0 Int) (PumpsStatus.res.inst_20_a_0 Bool) (PumpsStatus.res.inst_19_a_0 Int) (PumpsStatus.res.inst_18_a_0 Bool) (PumpsStatus.res.inst_17_a_0 Int) (PumpsStatus.res.inst_16_a_0 Bool) (PumpsStatus.res.inst_15_a_0 Int) (PumpsStatus.res.inst_14_a_0 Bool) (PumpsStatus.res.inst_13_a_0 Int) (PumpsStatus.res.inst_12_a_0 Bool) (PumpsStatus.res.inst_11_a_0 Int) (PumpsStatus.res.inst_10_a_0 Bool) (PumpsStatus.res.inst_9_a_0 Int) (PumpsStatus.res.inst_8_a_0 Bool) (PumpsStatus.res.inst_7_a_0 Bool) (PumpsStatus.res.inst_6_a_0 Bool) (PumpsStatus.res.inst_5_a_0 Bool) (PumpsStatus.res.inst_4_a_0 Bool) (PumpsStatus.res.inst_3_a_0 Bool) (PumpsStatus.res.inst_2_a_0 Bool) (PumpsStatus.res.inst_1_a_0 Bool) (PumpsStatus.res.inst_0_a_0 Bool)) Bool + (and (= PumpsStatus.res.abs_14_a_1 PumpsStatus.usr.flow_0_a_1) (= PumpsStatus.res.abs_10_a_1 PumpsStatus.usr.pump_defect_0_a_1) (= PumpsStatus.res.abs_6_a_1 PumpsStatus.usr.pump_status_0_a_0) (let ((X1 (+ (+ (+ (ite PumpsStatus.usr.flow_0_a_1 1 0) (ite PumpsStatus.usr.flow_1_a_1 1 0)) (ite PumpsStatus.usr.flow_2_a_1 1 0)) (ite PumpsStatus.usr.flow_3_a_1 1 0)))) (let ((X2 (- PumpsStatus.usr.n_pumps_a_1 X1))) (and (= PumpsStatus.res.abs_5_a_1 X2) (let ((X3 PumpsStatus.res.abs_18_a_1)) (and (= PumpsStatus.usr.pump_status_0_a_1 X3) (= PumpsStatus.res.abs_4_a_1 4) (= PumpsStatus.res.abs_7_a_1 PumpsStatus.usr.pump_status_1_a_0) (= PumpsStatus.res.abs_15_a_1 PumpsStatus.usr.flow_1_a_1) (= PumpsStatus.res.abs_11_a_1 PumpsStatus.usr.pump_defect_1_a_1) (let ((X4 PumpsStatus.res.abs_19_a_1)) (and (= PumpsStatus.usr.pump_status_1_a_1 X4) (= PumpsStatus.res.abs_8_a_1 PumpsStatus.usr.pump_status_2_a_0) (= PumpsStatus.res.abs_16_a_1 PumpsStatus.usr.flow_2_a_1) (= PumpsStatus.res.abs_12_a_1 PumpsStatus.usr.pump_defect_2_a_1) (let ((X5 PumpsStatus.res.abs_20_a_1)) (and (= PumpsStatus.usr.pump_status_2_a_1 X5) (= PumpsStatus.res.abs_9_a_1 PumpsStatus.usr.pump_status_3_a_0) (= PumpsStatus.res.abs_17_a_1 PumpsStatus.usr.flow_3_a_1) (= PumpsStatus.res.abs_13_a_1 PumpsStatus.usr.pump_defect_3_a_1) (let ((X6 PumpsStatus.res.abs_21_a_1)) (and (= PumpsStatus.usr.pump_status_3_a_1 X6) (__node_trans_operate_pumps_0 PumpsStatus.res.abs_4_a_1 PumpsStatus.res.abs_5_a_1 PumpsStatus.res.abs_6_a_1 PumpsStatus.res.abs_7_a_1 PumpsStatus.res.abs_8_a_1 PumpsStatus.res.abs_9_a_1 PumpsStatus.res.abs_10_a_1 PumpsStatus.res.abs_11_a_1 PumpsStatus.res.abs_12_a_1 PumpsStatus.res.abs_13_a_1 PumpsStatus.res.abs_14_a_1 PumpsStatus.res.abs_15_a_1 PumpsStatus.res.abs_16_a_1 PumpsStatus.res.abs_17_a_1 PumpsStatus.res.nondet_7 PumpsStatus.res.nondet_6 PumpsStatus.res.nondet_5 PumpsStatus.res.nondet_4 PumpsStatus.res.abs_18_a_1 PumpsStatus.res.abs_19_a_1 PumpsStatus.res.abs_20_a_1 PumpsStatus.res.abs_21_a_1 PumpsStatus.res.inst_24_a_1 PumpsStatus.res.inst_23_a_1 PumpsStatus.res.inst_22_a_1 PumpsStatus.res.inst_21_a_1 PumpsStatus.res.inst_20_a_1 PumpsStatus.res.inst_19_a_1 PumpsStatus.res.inst_18_a_1 PumpsStatus.res.inst_17_a_1 PumpsStatus.res.inst_16_a_1 PumpsStatus.res.inst_15_a_1 PumpsStatus.res.inst_14_a_1 PumpsStatus.res.inst_13_a_1 PumpsStatus.res.inst_12_a_1 PumpsStatus.res.inst_11_a_1 PumpsStatus.res.inst_10_a_1 PumpsStatus.res.inst_9_a_1 PumpsStatus.res.inst_8_a_1 PumpsStatus.res.inst_7_a_1 PumpsStatus.res.inst_6_a_1 PumpsStatus.res.inst_5_a_1 PumpsStatus.res.inst_4_a_1 PumpsStatus.res.inst_3_a_1 PumpsStatus.res.inst_2_a_1 PumpsStatus.res.inst_1_a_1 PumpsStatus.res.inst_0_a_1 PumpsStatus.res.abs_4_a_0 PumpsStatus.res.abs_5_a_0 PumpsStatus.res.abs_6_a_0 PumpsStatus.res.abs_7_a_0 PumpsStatus.res.abs_8_a_0 PumpsStatus.res.abs_9_a_0 PumpsStatus.res.abs_10_a_0 PumpsStatus.res.abs_11_a_0 PumpsStatus.res.abs_12_a_0 PumpsStatus.res.abs_13_a_0 PumpsStatus.res.abs_14_a_0 PumpsStatus.res.abs_15_a_0 PumpsStatus.res.abs_16_a_0 PumpsStatus.res.abs_17_a_0 PumpsStatus.res.abs_18_a_0 PumpsStatus.res.abs_19_a_0 PumpsStatus.res.abs_20_a_0 PumpsStatus.res.abs_21_a_0 PumpsStatus.res.inst_24_a_0 PumpsStatus.res.inst_23_a_0 PumpsStatus.res.inst_22_a_0 PumpsStatus.res.inst_21_a_0 PumpsStatus.res.inst_20_a_0 PumpsStatus.res.inst_19_a_0 PumpsStatus.res.inst_18_a_0 PumpsStatus.res.inst_17_a_0 PumpsStatus.res.inst_16_a_0 PumpsStatus.res.inst_15_a_0 PumpsStatus.res.inst_14_a_0 PumpsStatus.res.inst_13_a_0 PumpsStatus.res.inst_12_a_0 PumpsStatus.res.inst_11_a_0 PumpsStatus.res.inst_10_a_0 PumpsStatus.res.inst_9_a_0 PumpsStatus.res.inst_8_a_0 PumpsStatus.res.inst_7_a_0 PumpsStatus.res.inst_6_a_0 PumpsStatus.res.inst_5_a_0 PumpsStatus.res.inst_4_a_0 PumpsStatus.res.inst_3_a_0 PumpsStatus.res.inst_2_a_0 PumpsStatus.res.inst_1_a_0 PumpsStatus.res.inst_0_a_0) (<= 4 PumpsStatus.res.abs_4_a_1 4) (<= 0 X1 4) (not PumpsStatus.res.init_flag_a_1)))))))))))))) +(define-fun __node_init_sum_0 ((sum.usr.a_0_a_0 Int) (sum.usr.a_1_a_0 Int) (sum.usr.a_2_a_0 Int) (sum.usr.a_3_a_0 Int) (sum.usr.sum_a_0 Int) (sum.res.init_flag_a_0 Bool)) Bool + (and (= sum.usr.sum_a_0 (+ (+ (+ sum.usr.a_0_a_0 sum.usr.a_1_a_0) sum.usr.a_2_a_0) sum.usr.a_3_a_0)) sum.res.init_flag_a_0)) +(define-fun __node_trans_sum_0 ((sum.usr.a_0_a_1 Int) (sum.usr.a_1_a_1 Int) (sum.usr.a_2_a_1 Int) (sum.usr.a_3_a_1 Int) (sum.usr.sum_a_1 Int) (sum.res.init_flag_a_1 Bool) (sum.usr.a_0_a_0 Int) (sum.usr.a_1_a_0 Int) (sum.usr.a_2_a_0 Int) (sum.usr.a_3_a_0 Int) (sum.usr.sum_a_0 Int) (sum.res.init_flag_a_0 Bool)) Bool + (and (= sum.usr.sum_a_1 (+ (+ (+ sum.usr.a_0_a_1 sum.usr.a_1_a_1) sum.usr.a_2_a_1) sum.usr.a_3_a_1)) (not sum.res.init_flag_a_1))) +(define-fun __node_init_Dynamics_0 ((Dynamics.usr.valve_state_a_0 Int) (Dynamics.usr.level_a_0 Int) (Dynamics.usr.steam_a_0 Int) (Dynamics.usr.level_defect_a_0 Int) (Dynamics.usr.steam_defect_a_0 Int) (Dynamics.usr.flow_0_a_0 Bool) (Dynamics.usr.flow_1_a_0 Bool) (Dynamics.usr.flow_2_a_0 Bool) (Dynamics.usr.flow_3_a_0 Bool) (Dynamics.usr.q_a_0 Int) (Dynamics.usr.v_a_0 Int) (Dynamics.usr.p_0_a_0 Int) (Dynamics.usr.p_1_a_0 Int) (Dynamics.usr.p_2_a_0 Int) (Dynamics.usr.p_3_a_0 Int) (Dynamics.res.init_flag_a_0 Bool) (Dynamics.res.abs_0_a_0 Bool) (Dynamics.res.abs_1_a_0 Int) (Dynamics.res.abs_2_a_0 Bool) (Dynamics.res.inst_2_a_0 Bool) (Dynamics.res.inst_1_a_0 Bool) (Dynamics.res.inst_0_a_0 Bool)) Bool + (and (= Dynamics.usr.q_a_0 Dynamics.usr.level_a_0) (= Dynamics.usr.p_0_a_0 0) (= Dynamics.usr.p_1_a_0 0) (= Dynamics.usr.p_2_a_0 0) (= Dynamics.usr.p_3_a_0 0) (= Dynamics.usr.v_a_0 Dynamics.usr.steam_a_0) (__node_init_level_failure_0 Dynamics.usr.level_defect_a_0 Dynamics.res.abs_0_a_0 Dynamics.res.inst_2_a_0) (__node_init_sum_0 Dynamics.usr.p_0_a_0 Dynamics.usr.p_1_a_0 Dynamics.usr.p_2_a_0 Dynamics.usr.p_3_a_0 Dynamics.res.abs_1_a_0 Dynamics.res.inst_1_a_0) (__node_init_steam_failure_0 Dynamics.usr.steam_defect_a_0 Dynamics.res.abs_2_a_0 Dynamics.res.inst_0_a_0) (<= 0 Dynamics.usr.p_3_a_0 15) (<= 0 Dynamics.usr.p_2_a_0 15) (<= 0 Dynamics.usr.p_1_a_0 15) (<= 0 Dynamics.usr.p_0_a_0 15) Dynamics.res.init_flag_a_0)) +(define-fun __node_trans_Dynamics_0 ((Dynamics.usr.valve_state_a_1 Int) (Dynamics.usr.level_a_1 Int) (Dynamics.usr.steam_a_1 Int) (Dynamics.usr.level_defect_a_1 Int) (Dynamics.usr.steam_defect_a_1 Int) (Dynamics.usr.flow_0_a_1 Bool) (Dynamics.usr.flow_1_a_1 Bool) (Dynamics.usr.flow_2_a_1 Bool) (Dynamics.usr.flow_3_a_1 Bool) (Dynamics.usr.q_a_1 Int) (Dynamics.usr.v_a_1 Int) (Dynamics.usr.p_0_a_1 Int) (Dynamics.usr.p_1_a_1 Int) (Dynamics.usr.p_2_a_1 Int) (Dynamics.usr.p_3_a_1 Int) (Dynamics.res.init_flag_a_1 Bool) (Dynamics.res.abs_0_a_1 Bool) (Dynamics.res.abs_1_a_1 Int) (Dynamics.res.abs_2_a_1 Bool) (Dynamics.res.inst_2_a_1 Bool) (Dynamics.res.inst_1_a_1 Bool) (Dynamics.res.inst_0_a_1 Bool) (Dynamics.usr.valve_state_a_0 Int) (Dynamics.usr.level_a_0 Int) (Dynamics.usr.steam_a_0 Int) (Dynamics.usr.level_defect_a_0 Int) (Dynamics.usr.steam_defect_a_0 Int) (Dynamics.usr.flow_0_a_0 Bool) (Dynamics.usr.flow_1_a_0 Bool) (Dynamics.usr.flow_2_a_0 Bool) (Dynamics.usr.flow_3_a_0 Bool) (Dynamics.usr.q_a_0 Int) (Dynamics.usr.v_a_0 Int) (Dynamics.usr.p_0_a_0 Int) (Dynamics.usr.p_1_a_0 Int) (Dynamics.usr.p_2_a_0 Int) (Dynamics.usr.p_3_a_0 Int) (Dynamics.res.init_flag_a_0 Bool) (Dynamics.res.abs_0_a_0 Bool) (Dynamics.res.abs_1_a_0 Int) (Dynamics.res.abs_2_a_0 Bool) (Dynamics.res.inst_2_a_0 Bool) (Dynamics.res.inst_1_a_0 Bool) (Dynamics.res.inst_0_a_0 Bool)) Bool + (and (= Dynamics.usr.p_3_a_1 (ite (not Dynamics.usr.flow_3_a_1) 0 15)) (= Dynamics.usr.p_2_a_1 (ite (not Dynamics.usr.flow_2_a_1) 0 15)) (= Dynamics.usr.p_1_a_1 (ite (not Dynamics.usr.flow_1_a_1) 0 15)) (= Dynamics.usr.p_0_a_1 (ite (not Dynamics.usr.flow_0_a_1) 0 15)) (= Dynamics.usr.q_a_1 (ite Dynamics.res.abs_0_a_1 (- (+ (+ (- (+ Dynamics.usr.q_a_0 1) (* Dynamics.usr.steam_a_1 5)) (* Dynamics.res.abs_1_a_1 5)) 1) (ite (= Dynamics.usr.valve_state_a_1 1) 50 0)) Dynamics.usr.level_a_1)) (= Dynamics.usr.v_a_1 (ite Dynamics.res.abs_2_a_1 (+ (div (- Dynamics.usr.q_a_0 Dynamics.usr.q_a_1) 5) (* Dynamics.res.abs_1_a_1 5)) Dynamics.usr.steam_a_1)) (__node_trans_level_failure_0 Dynamics.usr.level_defect_a_1 Dynamics.res.abs_0_a_1 Dynamics.res.inst_2_a_1 Dynamics.usr.level_defect_a_0 Dynamics.res.abs_0_a_0 Dynamics.res.inst_2_a_0) (__node_trans_sum_0 Dynamics.usr.p_0_a_1 Dynamics.usr.p_1_a_1 Dynamics.usr.p_2_a_1 Dynamics.usr.p_3_a_1 Dynamics.res.abs_1_a_1 Dynamics.res.inst_1_a_1 Dynamics.usr.p_0_a_0 Dynamics.usr.p_1_a_0 Dynamics.usr.p_2_a_0 Dynamics.usr.p_3_a_0 Dynamics.res.abs_1_a_0 Dynamics.res.inst_1_a_0) (__node_trans_steam_failure_0 Dynamics.usr.steam_defect_a_1 Dynamics.res.abs_2_a_1 Dynamics.res.inst_0_a_1 Dynamics.usr.steam_defect_a_0 Dynamics.res.abs_2_a_0 Dynamics.res.inst_0_a_0) (<= 0 Dynamics.usr.p_3_a_1 15) (<= 0 Dynamics.usr.p_2_a_1 15) (<= 0 Dynamics.usr.p_1_a_1 15) (<= 0 Dynamics.usr.p_0_a_1 15) (not Dynamics.res.init_flag_a_1))) +(define-fun __node_init_pump_failure_detect_0 ((pump_failure_detect.usr.pump_status_a_0 Int) (pump_failure_detect.usr.pump_state_a_0 Int) (pump_failure_detect.usr.pump_control_state_a_0 Bool) (pump_failure_detect.usr.pump_failure_detect_a_0 Bool) (pump_failure_detect.usr.pump_control_failure_detect_a_0 Bool) (pump_failure_detect.usr.flow_a_0 Bool) (pump_failure_detect.res.init_flag_a_0 Bool)) Bool + (and (= pump_failure_detect.usr.pump_failure_detect_a_0 (or (and (= pump_failure_detect.usr.pump_status_a_0 0) (= pump_failure_detect.usr.pump_state_a_0 1)) (and (or (= pump_failure_detect.usr.pump_status_a_0 1) (= pump_failure_detect.usr.pump_status_a_0 2)) (= pump_failure_detect.usr.pump_state_a_0 0)))) (= pump_failure_detect.usr.pump_control_failure_detect_a_0 (or (or (and (and (or (= pump_failure_detect.usr.pump_status_a_0 0) (= pump_failure_detect.usr.pump_status_a_0 2)) (= pump_failure_detect.usr.pump_state_a_0 0)) pump_failure_detect.usr.pump_control_state_a_0) (and (and (= pump_failure_detect.usr.pump_status_a_0 1) (= pump_failure_detect.usr.pump_state_a_0 1)) (not pump_failure_detect.usr.pump_control_state_a_0))) (and (and (= pump_failure_detect.usr.pump_status_a_0 2) (= pump_failure_detect.usr.pump_state_a_0 1)) pump_failure_detect.usr.pump_control_state_a_0))) (= pump_failure_detect.usr.flow_a_0 (or (or (and (and (= pump_failure_detect.usr.pump_status_a_0 0) (= pump_failure_detect.usr.pump_state_a_0 1)) pump_failure_detect.usr.pump_control_state_a_0) (and (and (= pump_failure_detect.usr.pump_status_a_0 1) (= pump_failure_detect.usr.pump_state_a_0 0)) pump_failure_detect.usr.pump_control_state_a_0)) (and (= pump_failure_detect.usr.pump_status_a_0 1) (= pump_failure_detect.usr.pump_state_a_0 1)))) pump_failure_detect.res.init_flag_a_0)) +(define-fun __node_trans_pump_failure_detect_0 ((pump_failure_detect.usr.pump_status_a_1 Int) (pump_failure_detect.usr.pump_state_a_1 Int) (pump_failure_detect.usr.pump_control_state_a_1 Bool) (pump_failure_detect.usr.pump_failure_detect_a_1 Bool) (pump_failure_detect.usr.pump_control_failure_detect_a_1 Bool) (pump_failure_detect.usr.flow_a_1 Bool) (pump_failure_detect.res.init_flag_a_1 Bool) (pump_failure_detect.usr.pump_status_a_0 Int) (pump_failure_detect.usr.pump_state_a_0 Int) (pump_failure_detect.usr.pump_control_state_a_0 Bool) (pump_failure_detect.usr.pump_failure_detect_a_0 Bool) (pump_failure_detect.usr.pump_control_failure_detect_a_0 Bool) (pump_failure_detect.usr.flow_a_0 Bool) (pump_failure_detect.res.init_flag_a_0 Bool)) Bool + (and (= pump_failure_detect.usr.pump_failure_detect_a_1 (or (and (= pump_failure_detect.usr.pump_status_a_1 0) (= pump_failure_detect.usr.pump_state_a_1 1)) (and (or (= pump_failure_detect.usr.pump_status_a_1 1) (= pump_failure_detect.usr.pump_status_a_1 2)) (= pump_failure_detect.usr.pump_state_a_1 0)))) (= pump_failure_detect.usr.pump_control_failure_detect_a_1 (or (or (and (and (or (= pump_failure_detect.usr.pump_status_a_1 0) (= pump_failure_detect.usr.pump_status_a_1 2)) (= pump_failure_detect.usr.pump_state_a_1 0)) pump_failure_detect.usr.pump_control_state_a_1) (and (and (= pump_failure_detect.usr.pump_status_a_1 1) (= pump_failure_detect.usr.pump_state_a_1 1)) (not pump_failure_detect.usr.pump_control_state_a_1))) (and (and (= pump_failure_detect.usr.pump_status_a_1 2) (= pump_failure_detect.usr.pump_state_a_1 1)) pump_failure_detect.usr.pump_control_state_a_1))) (= pump_failure_detect.usr.flow_a_1 (or (or (and (and (= pump_failure_detect.usr.pump_status_a_1 0) (= pump_failure_detect.usr.pump_state_a_1 1)) pump_failure_detect.usr.pump_control_state_a_1) (and (and (= pump_failure_detect.usr.pump_status_a_1 1) (= pump_failure_detect.usr.pump_state_a_1 0)) pump_failure_detect.usr.pump_control_state_a_1)) (and (= pump_failure_detect.usr.pump_status_a_1 1) (= pump_failure_detect.usr.pump_state_a_1 1)))) (not pump_failure_detect.res.init_flag_a_1))) +(define-fun __node_init_PumpDefect_0 ((PumpDefect.usr.pump_failure_acknowledgement_a_0 Bool) (PumpDefect.usr.pump_repaired_a_0 Bool) (PumpDefect.usr.pump_control_failure_acknowledgement_a_0 Bool) (PumpDefect.usr.pump_control_repaired_a_0 Bool) (PumpDefect.usr.pump_status_a_0 Int) (PumpDefect.usr.pump_state_a_0 Int) (PumpDefect.usr.pump_control_state_a_0 Bool) (PumpDefect.res.nondet_1 Int) (PumpDefect.res.nondet_0 Int) (PumpDefect.usr.PumpDefect_a_0 Int) (PumpDefect.usr.PumpControlDefect_a_0 Int) (PumpDefect.usr.Flow_a_0 Bool) (PumpDefect.res.init_flag_a_0 Bool) (PumpDefect.impl.usr.pump_failure_d_a_0 Bool) (PumpDefect.impl.usr.pump_control_failure_d_a_0 Bool) (PumpDefect.res.abs_0_a_0 Bool) (PumpDefect.res.abs_1_a_0 Bool) (PumpDefect.res.abs_2_a_0 Bool) (PumpDefect.res.abs_3_a_0 Int) (PumpDefect.res.abs_4_a_0 Int) (PumpDefect.res.abs_5_a_0 Int) (PumpDefect.res.abs_6_a_0 Int) (PumpDefect.res.inst_2_a_0 Bool) (PumpDefect.res.inst_1_a_0 Bool) (PumpDefect.res.inst_0_a_0 Bool)) Bool + (and (= PumpDefect.usr.PumpDefect_a_0 0) (= PumpDefect.res.abs_3_a_0 (let ((X1 PumpDefect.res.nondet_0)) X1)) (= PumpDefect.impl.usr.pump_failure_d_a_0 PumpDefect.res.abs_0_a_0) (= PumpDefect.usr.PumpControlDefect_a_0 0) (= PumpDefect.res.abs_5_a_0 (let ((X1 PumpDefect.res.nondet_1)) X1)) (= PumpDefect.impl.usr.pump_control_failure_d_a_0 PumpDefect.res.abs_1_a_0) (= PumpDefect.usr.Flow_a_0 PumpDefect.res.abs_2_a_0) (__node_init_Defect_0 PumpDefect.res.abs_3_a_0 PumpDefect.impl.usr.pump_failure_d_a_0 PumpDefect.usr.pump_failure_acknowledgement_a_0 PumpDefect.usr.pump_repaired_a_0 PumpDefect.res.abs_4_a_0 PumpDefect.res.inst_2_a_0) (__node_init_pump_failure_detect_0 PumpDefect.usr.pump_status_a_0 PumpDefect.usr.pump_state_a_0 PumpDefect.usr.pump_control_state_a_0 PumpDefect.res.abs_0_a_0 PumpDefect.res.abs_1_a_0 PumpDefect.res.abs_2_a_0 PumpDefect.res.inst_1_a_0) (__node_init_Defect_0 PumpDefect.res.abs_5_a_0 PumpDefect.impl.usr.pump_control_failure_d_a_0 PumpDefect.usr.pump_control_failure_acknowledgement_a_0 PumpDefect.usr.pump_control_repaired_a_0 PumpDefect.res.abs_6_a_0 PumpDefect.res.inst_0_a_0) (<= 0 PumpDefect.res.abs_4_a_0 2) (<= 0 PumpDefect.res.abs_6_a_0 2) (<= 0 PumpDefect.usr.PumpControlDefect_a_0 2) (<= 0 PumpDefect.usr.PumpDefect_a_0 2) PumpDefect.res.init_flag_a_0)) +(define-fun __node_trans_PumpDefect_0 ((PumpDefect.usr.pump_failure_acknowledgement_a_1 Bool) (PumpDefect.usr.pump_repaired_a_1 Bool) (PumpDefect.usr.pump_control_failure_acknowledgement_a_1 Bool) (PumpDefect.usr.pump_control_repaired_a_1 Bool) (PumpDefect.usr.pump_status_a_1 Int) (PumpDefect.usr.pump_state_a_1 Int) (PumpDefect.usr.pump_control_state_a_1 Bool) (PumpDefect.res.nondet_1 Int) (PumpDefect.res.nondet_0 Int) (PumpDefect.usr.PumpDefect_a_1 Int) (PumpDefect.usr.PumpControlDefect_a_1 Int) (PumpDefect.usr.Flow_a_1 Bool) (PumpDefect.res.init_flag_a_1 Bool) (PumpDefect.impl.usr.pump_failure_d_a_1 Bool) (PumpDefect.impl.usr.pump_control_failure_d_a_1 Bool) (PumpDefect.res.abs_0_a_1 Bool) (PumpDefect.res.abs_1_a_1 Bool) (PumpDefect.res.abs_2_a_1 Bool) (PumpDefect.res.abs_3_a_1 Int) (PumpDefect.res.abs_4_a_1 Int) (PumpDefect.res.abs_5_a_1 Int) (PumpDefect.res.abs_6_a_1 Int) (PumpDefect.res.inst_2_a_1 Bool) (PumpDefect.res.inst_1_a_1 Bool) (PumpDefect.res.inst_0_a_1 Bool) (PumpDefect.usr.pump_failure_acknowledgement_a_0 Bool) (PumpDefect.usr.pump_repaired_a_0 Bool) (PumpDefect.usr.pump_control_failure_acknowledgement_a_0 Bool) (PumpDefect.usr.pump_control_repaired_a_0 Bool) (PumpDefect.usr.pump_status_a_0 Int) (PumpDefect.usr.pump_state_a_0 Int) (PumpDefect.usr.pump_control_state_a_0 Bool) (PumpDefect.usr.PumpDefect_a_0 Int) (PumpDefect.usr.PumpControlDefect_a_0 Int) (PumpDefect.usr.Flow_a_0 Bool) (PumpDefect.res.init_flag_a_0 Bool) (PumpDefect.impl.usr.pump_failure_d_a_0 Bool) (PumpDefect.impl.usr.pump_control_failure_d_a_0 Bool) (PumpDefect.res.abs_0_a_0 Bool) (PumpDefect.res.abs_1_a_0 Bool) (PumpDefect.res.abs_2_a_0 Bool) (PumpDefect.res.abs_3_a_0 Int) (PumpDefect.res.abs_4_a_0 Int) (PumpDefect.res.abs_5_a_0 Int) (PumpDefect.res.abs_6_a_0 Int) (PumpDefect.res.inst_2_a_0 Bool) (PumpDefect.res.inst_1_a_0 Bool) (PumpDefect.res.inst_0_a_0 Bool)) Bool + (and (= PumpDefect.res.abs_3_a_1 PumpDefect.usr.PumpDefect_a_0) (= PumpDefect.impl.usr.pump_failure_d_a_1 PumpDefect.res.abs_0_a_1) (= PumpDefect.usr.PumpDefect_a_1 PumpDefect.res.abs_4_a_1) (= PumpDefect.res.abs_5_a_1 PumpDefect.usr.PumpControlDefect_a_0) (= PumpDefect.impl.usr.pump_control_failure_d_a_1 PumpDefect.res.abs_1_a_1) (= PumpDefect.usr.PumpControlDefect_a_1 PumpDefect.res.abs_6_a_1) (= PumpDefect.usr.Flow_a_1 PumpDefect.res.abs_2_a_1) (__node_trans_Defect_0 PumpDefect.res.abs_3_a_1 PumpDefect.impl.usr.pump_failure_d_a_1 PumpDefect.usr.pump_failure_acknowledgement_a_1 PumpDefect.usr.pump_repaired_a_1 PumpDefect.res.abs_4_a_1 PumpDefect.res.inst_2_a_1 PumpDefect.res.abs_3_a_0 PumpDefect.impl.usr.pump_failure_d_a_0 PumpDefect.usr.pump_failure_acknowledgement_a_0 PumpDefect.usr.pump_repaired_a_0 PumpDefect.res.abs_4_a_0 PumpDefect.res.inst_2_a_0) (__node_trans_pump_failure_detect_0 PumpDefect.usr.pump_status_a_1 PumpDefect.usr.pump_state_a_1 PumpDefect.usr.pump_control_state_a_1 PumpDefect.res.abs_0_a_1 PumpDefect.res.abs_1_a_1 PumpDefect.res.abs_2_a_1 PumpDefect.res.inst_1_a_1 PumpDefect.usr.pump_status_a_0 PumpDefect.usr.pump_state_a_0 PumpDefect.usr.pump_control_state_a_0 PumpDefect.res.abs_0_a_0 PumpDefect.res.abs_1_a_0 PumpDefect.res.abs_2_a_0 PumpDefect.res.inst_1_a_0) (__node_trans_Defect_0 PumpDefect.res.abs_5_a_1 PumpDefect.impl.usr.pump_control_failure_d_a_1 PumpDefect.usr.pump_control_failure_acknowledgement_a_1 PumpDefect.usr.pump_control_repaired_a_1 PumpDefect.res.abs_6_a_1 PumpDefect.res.inst_0_a_1 PumpDefect.res.abs_5_a_0 PumpDefect.impl.usr.pump_control_failure_d_a_0 PumpDefect.usr.pump_control_failure_acknowledgement_a_0 PumpDefect.usr.pump_control_repaired_a_0 PumpDefect.res.abs_6_a_0 PumpDefect.res.inst_0_a_0) (<= 0 PumpDefect.res.abs_4_a_1 2) (<= 0 PumpDefect.res.abs_6_a_1 2) (<= 0 PumpDefect.usr.PumpControlDefect_a_1 2) (<= 0 PumpDefect.usr.PumpDefect_a_1 2) (not PumpDefect.res.init_flag_a_1))) +(define-fun __node_init_LevelOutput_0 ((LevelOutput.usr.op_mode_a_0 Int) (LevelOutput.usr.level_defect_a_0 Int) (LevelOutput.usr.level_repaired_a_0 Bool) (LevelOutput.usr.level_outcome_failure_detection_a_0 Bool) (LevelOutput.usr.level_outcome_repaired_acknowledgement_a_0 Bool) (LevelOutput.res.init_flag_a_0 Bool)) Bool + (and (= LevelOutput.usr.level_outcome_failure_detection_a_0 (and (not (or (= LevelOutput.usr.op_mode_a_0 6) (= LevelOutput.usr.op_mode_a_0 1))) (= LevelOutput.usr.level_defect_a_0 1))) (= LevelOutput.usr.level_outcome_repaired_acknowledgement_a_0 (and (not (or (= LevelOutput.usr.op_mode_a_0 6) (= LevelOutput.usr.op_mode_a_0 1))) LevelOutput.usr.level_repaired_a_0)) LevelOutput.res.init_flag_a_0)) +(define-fun __node_trans_LevelOutput_0 ((LevelOutput.usr.op_mode_a_1 Int) (LevelOutput.usr.level_defect_a_1 Int) (LevelOutput.usr.level_repaired_a_1 Bool) (LevelOutput.usr.level_outcome_failure_detection_a_1 Bool) (LevelOutput.usr.level_outcome_repaired_acknowledgement_a_1 Bool) (LevelOutput.res.init_flag_a_1 Bool) (LevelOutput.usr.op_mode_a_0 Int) (LevelOutput.usr.level_defect_a_0 Int) (LevelOutput.usr.level_repaired_a_0 Bool) (LevelOutput.usr.level_outcome_failure_detection_a_0 Bool) (LevelOutput.usr.level_outcome_repaired_acknowledgement_a_0 Bool) (LevelOutput.res.init_flag_a_0 Bool)) Bool + (and (= LevelOutput.usr.level_outcome_failure_detection_a_1 (and (not (or (= LevelOutput.usr.op_mode_a_1 6) (= LevelOutput.usr.op_mode_a_1 1))) (= LevelOutput.usr.level_defect_a_1 1))) (= LevelOutput.usr.level_outcome_repaired_acknowledgement_a_1 (and (not (or (= LevelOutput.usr.op_mode_a_1 6) (= LevelOutput.usr.op_mode_a_1 1))) LevelOutput.usr.level_repaired_a_1)) (not LevelOutput.res.init_flag_a_1))) +(define-fun __node_init_SteamOutput_0 ((SteamOutput.usr.op_mode_a_0 Int) (SteamOutput.usr.steam_defect_a_0 Int) (SteamOutput.usr.steam_repaired_a_0 Bool) (SteamOutput.usr.steam_outcome_failure_detection_a_0 Bool) (SteamOutput.usr.steam_outcome_repaired_acknowledgement_a_0 Bool) (SteamOutput.res.init_flag_a_0 Bool)) Bool + (and (= SteamOutput.usr.steam_outcome_failure_detection_a_0 (and (not (or (= SteamOutput.usr.op_mode_a_0 6) (= SteamOutput.usr.op_mode_a_0 1))) (= SteamOutput.usr.steam_defect_a_0 1))) (= SteamOutput.usr.steam_outcome_repaired_acknowledgement_a_0 (and (not (or (= SteamOutput.usr.op_mode_a_0 6) (= SteamOutput.usr.op_mode_a_0 1))) SteamOutput.usr.steam_repaired_a_0)) SteamOutput.res.init_flag_a_0)) +(define-fun __node_trans_SteamOutput_0 ((SteamOutput.usr.op_mode_a_1 Int) (SteamOutput.usr.steam_defect_a_1 Int) (SteamOutput.usr.steam_repaired_a_1 Bool) (SteamOutput.usr.steam_outcome_failure_detection_a_1 Bool) (SteamOutput.usr.steam_outcome_repaired_acknowledgement_a_1 Bool) (SteamOutput.res.init_flag_a_1 Bool) (SteamOutput.usr.op_mode_a_0 Int) (SteamOutput.usr.steam_defect_a_0 Int) (SteamOutput.usr.steam_repaired_a_0 Bool) (SteamOutput.usr.steam_outcome_failure_detection_a_0 Bool) (SteamOutput.usr.steam_outcome_repaired_acknowledgement_a_0 Bool) (SteamOutput.res.init_flag_a_0 Bool)) Bool + (and (= SteamOutput.usr.steam_outcome_failure_detection_a_1 (and (not (or (= SteamOutput.usr.op_mode_a_1 6) (= SteamOutput.usr.op_mode_a_1 1))) (= SteamOutput.usr.steam_defect_a_1 1))) (= SteamOutput.usr.steam_outcome_repaired_acknowledgement_a_1 (and (not (or (= SteamOutput.usr.op_mode_a_1 6) (= SteamOutput.usr.op_mode_a_1 1))) SteamOutput.usr.steam_repaired_a_1)) (not SteamOutput.res.init_flag_a_1))) +(define-fun __node_init_PumpsOutput_0 ((PumpsOutput.usr.op_mode_a_0 Int) (PumpsOutput.usr.pump_status_0_a_0 Int) (PumpsOutput.usr.pump_status_1_a_0 Int) (PumpsOutput.usr.pump_status_2_a_0 Int) (PumpsOutput.usr.pump_status_3_a_0 Int) (PumpsOutput.usr.pump_defect_0_a_0 Int) (PumpsOutput.usr.pump_defect_1_a_0 Int) (PumpsOutput.usr.pump_defect_2_a_0 Int) (PumpsOutput.usr.pump_defect_3_a_0 Int) (PumpsOutput.usr.pump_control_defect_0_a_0 Int) (PumpsOutput.usr.pump_control_defect_1_a_0 Int) (PumpsOutput.usr.pump_control_defect_2_a_0 Int) (PumpsOutput.usr.pump_control_defect_3_a_0 Int) (PumpsOutput.usr.pump_repaired_0_a_0 Bool) (PumpsOutput.usr.pump_repaired_1_a_0 Bool) (PumpsOutput.usr.pump_repaired_2_a_0 Bool) (PumpsOutput.usr.pump_repaired_3_a_0 Bool) (PumpsOutput.usr.pump_control_repaired_0_a_0 Bool) (PumpsOutput.usr.pump_control_repaired_1_a_0 Bool) (PumpsOutput.usr.pump_control_repaired_2_a_0 Bool) (PumpsOutput.usr.pump_control_repaired_3_a_0 Bool) (PumpsOutput.res.nondet_7 Int) (PumpsOutput.res.nondet_6 Int) (PumpsOutput.res.nondet_5 Int) (PumpsOutput.res.nondet_4 Int) (PumpsOutput.res.nondet_3 Int) (PumpsOutput.res.nondet_2 Int) (PumpsOutput.res.nondet_1 Int) (PumpsOutput.res.nondet_0 Int) (PumpsOutput.usr.open_pump_0_a_0 Bool) (PumpsOutput.usr.open_pump_1_a_0 Bool) (PumpsOutput.usr.open_pump_2_a_0 Bool) (PumpsOutput.usr.open_pump_3_a_0 Bool) (PumpsOutput.usr.close_pump_0_a_0 Bool) (PumpsOutput.usr.close_pump_1_a_0 Bool) (PumpsOutput.usr.close_pump_2_a_0 Bool) (PumpsOutput.usr.close_pump_3_a_0 Bool) (PumpsOutput.usr.pump_failure_detection_0_a_0 Bool) (PumpsOutput.usr.pump_failure_detection_1_a_0 Bool) (PumpsOutput.usr.pump_failure_detection_2_a_0 Bool) (PumpsOutput.usr.pump_failure_detection_3_a_0 Bool) (PumpsOutput.usr.pump_repaired_acknowledgement_0_a_0 Bool) (PumpsOutput.usr.pump_repaired_acknowledgement_1_a_0 Bool) (PumpsOutput.usr.pump_repaired_acknowledgement_2_a_0 Bool) (PumpsOutput.usr.pump_repaired_acknowledgement_3_a_0 Bool) (PumpsOutput.usr.pump_control_failure_detection_0_a_0 Bool) (PumpsOutput.usr.pump_control_failure_detection_1_a_0 Bool) (PumpsOutput.usr.pump_control_failure_detection_2_a_0 Bool) (PumpsOutput.usr.pump_control_failure_detection_3_a_0 Bool) (PumpsOutput.usr.pump_control_repaired_acknowledgement_0_a_0 Bool) (PumpsOutput.usr.pump_control_repaired_acknowledgement_1_a_0 Bool) (PumpsOutput.usr.pump_control_repaired_acknowledgement_2_a_0 Bool) (PumpsOutput.usr.pump_control_repaired_acknowledgement_3_a_0 Bool) (PumpsOutput.res.init_flag_a_0 Bool)) Bool + (and (= PumpsOutput.usr.open_pump_0_a_0 (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) (= PumpsOutput.usr.pump_status_0_a_0 2))) (= PumpsOutput.usr.open_pump_1_a_0 (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) (= PumpsOutput.usr.pump_status_1_a_0 2))) (= PumpsOutput.usr.open_pump_2_a_0 (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) (= PumpsOutput.usr.pump_status_2_a_0 2))) (= PumpsOutput.usr.open_pump_3_a_0 (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) (= PumpsOutput.usr.pump_status_3_a_0 2))) (= PumpsOutput.usr.close_pump_0_a_0 (let ((X1 PumpsOutput.res.nondet_1) (X2 PumpsOutput.res.nondet_0)) (and (and (and (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) (= PumpsOutput.usr.pump_status_0_a_0 0)) (not (= X2 0))) (= PumpsOutput.usr.pump_defect_0_a_0 0)) (= X1 0)))) (= PumpsOutput.usr.close_pump_1_a_0 (let ((X1 PumpsOutput.res.nondet_3) (X2 PumpsOutput.res.nondet_2)) (and (and (and (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) (= PumpsOutput.usr.pump_status_0_a_0 0)) (not (= X2 0))) (= PumpsOutput.usr.pump_defect_0_a_0 0)) (= X1 0)))) (= PumpsOutput.usr.close_pump_2_a_0 (let ((X1 PumpsOutput.res.nondet_5) (X2 PumpsOutput.res.nondet_4)) (and (and (and (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) (= PumpsOutput.usr.pump_status_0_a_0 0)) (not (= X2 0))) (= PumpsOutput.usr.pump_defect_0_a_0 0)) (= X1 0)))) (= PumpsOutput.usr.close_pump_3_a_0 (let ((X1 PumpsOutput.res.nondet_7) (X2 PumpsOutput.res.nondet_6)) (and (and (and (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) (= PumpsOutput.usr.pump_status_0_a_0 0)) (not (= X2 0))) (= PumpsOutput.usr.pump_defect_0_a_0 0)) (= X1 0)))) (= PumpsOutput.usr.pump_failure_detection_0_a_0 (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) (= PumpsOutput.usr.pump_defect_0_a_0 1))) (= PumpsOutput.usr.pump_failure_detection_1_a_0 (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) (= PumpsOutput.usr.pump_defect_1_a_0 1))) (= PumpsOutput.usr.pump_failure_detection_2_a_0 (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) (= PumpsOutput.usr.pump_defect_2_a_0 1))) (= PumpsOutput.usr.pump_failure_detection_3_a_0 (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) (= PumpsOutput.usr.pump_defect_3_a_0 1))) (= PumpsOutput.usr.pump_repaired_acknowledgement_0_a_0 (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) PumpsOutput.usr.pump_repaired_0_a_0)) (= PumpsOutput.usr.pump_repaired_acknowledgement_1_a_0 (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) PumpsOutput.usr.pump_repaired_1_a_0)) (= PumpsOutput.usr.pump_repaired_acknowledgement_2_a_0 (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) PumpsOutput.usr.pump_repaired_2_a_0)) (= PumpsOutput.usr.pump_repaired_acknowledgement_3_a_0 (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) PumpsOutput.usr.pump_repaired_3_a_0)) (= PumpsOutput.usr.pump_control_failure_detection_0_a_0 (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) (= PumpsOutput.usr.pump_control_defect_0_a_0 1))) (= PumpsOutput.usr.pump_control_failure_detection_1_a_0 (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) (= PumpsOutput.usr.pump_control_defect_1_a_0 1))) (= PumpsOutput.usr.pump_control_failure_detection_2_a_0 (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) (= PumpsOutput.usr.pump_control_defect_2_a_0 1))) (= PumpsOutput.usr.pump_control_failure_detection_3_a_0 (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) (= PumpsOutput.usr.pump_control_defect_3_a_0 1))) (= PumpsOutput.usr.pump_control_repaired_acknowledgement_0_a_0 (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) PumpsOutput.usr.pump_control_repaired_0_a_0)) (= PumpsOutput.usr.pump_control_repaired_acknowledgement_1_a_0 (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) PumpsOutput.usr.pump_control_repaired_1_a_0)) (= PumpsOutput.usr.pump_control_repaired_acknowledgement_2_a_0 (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) PumpsOutput.usr.pump_control_repaired_2_a_0)) (= PumpsOutput.usr.pump_control_repaired_acknowledgement_3_a_0 (and (and (not (= PumpsOutput.usr.op_mode_a_0 6)) (not (= PumpsOutput.usr.op_mode_a_0 1))) PumpsOutput.usr.pump_control_repaired_3_a_0)) PumpsOutput.res.init_flag_a_0)) +(define-fun __node_trans_PumpsOutput_0 ((PumpsOutput.usr.op_mode_a_1 Int) (PumpsOutput.usr.pump_status_0_a_1 Int) (PumpsOutput.usr.pump_status_1_a_1 Int) (PumpsOutput.usr.pump_status_2_a_1 Int) (PumpsOutput.usr.pump_status_3_a_1 Int) (PumpsOutput.usr.pump_defect_0_a_1 Int) (PumpsOutput.usr.pump_defect_1_a_1 Int) (PumpsOutput.usr.pump_defect_2_a_1 Int) (PumpsOutput.usr.pump_defect_3_a_1 Int) (PumpsOutput.usr.pump_control_defect_0_a_1 Int) (PumpsOutput.usr.pump_control_defect_1_a_1 Int) (PumpsOutput.usr.pump_control_defect_2_a_1 Int) (PumpsOutput.usr.pump_control_defect_3_a_1 Int) (PumpsOutput.usr.pump_repaired_0_a_1 Bool) (PumpsOutput.usr.pump_repaired_1_a_1 Bool) (PumpsOutput.usr.pump_repaired_2_a_1 Bool) (PumpsOutput.usr.pump_repaired_3_a_1 Bool) (PumpsOutput.usr.pump_control_repaired_0_a_1 Bool) (PumpsOutput.usr.pump_control_repaired_1_a_1 Bool) (PumpsOutput.usr.pump_control_repaired_2_a_1 Bool) (PumpsOutput.usr.pump_control_repaired_3_a_1 Bool) (PumpsOutput.res.nondet_7 Int) (PumpsOutput.res.nondet_6 Int) (PumpsOutput.res.nondet_5 Int) (PumpsOutput.res.nondet_4 Int) (PumpsOutput.res.nondet_3 Int) (PumpsOutput.res.nondet_2 Int) (PumpsOutput.res.nondet_1 Int) (PumpsOutput.res.nondet_0 Int) (PumpsOutput.usr.open_pump_0_a_1 Bool) (PumpsOutput.usr.open_pump_1_a_1 Bool) (PumpsOutput.usr.open_pump_2_a_1 Bool) (PumpsOutput.usr.open_pump_3_a_1 Bool) (PumpsOutput.usr.close_pump_0_a_1 Bool) (PumpsOutput.usr.close_pump_1_a_1 Bool) (PumpsOutput.usr.close_pump_2_a_1 Bool) (PumpsOutput.usr.close_pump_3_a_1 Bool) (PumpsOutput.usr.pump_failure_detection_0_a_1 Bool) (PumpsOutput.usr.pump_failure_detection_1_a_1 Bool) (PumpsOutput.usr.pump_failure_detection_2_a_1 Bool) (PumpsOutput.usr.pump_failure_detection_3_a_1 Bool) (PumpsOutput.usr.pump_repaired_acknowledgement_0_a_1 Bool) (PumpsOutput.usr.pump_repaired_acknowledgement_1_a_1 Bool) (PumpsOutput.usr.pump_repaired_acknowledgement_2_a_1 Bool) (PumpsOutput.usr.pump_repaired_acknowledgement_3_a_1 Bool) (PumpsOutput.usr.pump_control_failure_detection_0_a_1 Bool) (PumpsOutput.usr.pump_control_failure_detection_1_a_1 Bool) (PumpsOutput.usr.pump_control_failure_detection_2_a_1 Bool) (PumpsOutput.usr.pump_control_failure_detection_3_a_1 Bool) (PumpsOutput.usr.pump_control_repaired_acknowledgement_0_a_1 Bool) (PumpsOutput.usr.pump_control_repaired_acknowledgement_1_a_1 Bool) (PumpsOutput.usr.pump_control_repaired_acknowledgement_2_a_1 Bool) (PumpsOutput.usr.pump_control_repaired_acknowledgement_3_a_1 Bool) (PumpsOutput.res.init_flag_a_1 Bool) (PumpsOutput.usr.op_mode_a_0 Int) (PumpsOutput.usr.pump_status_0_a_0 Int) (PumpsOutput.usr.pump_status_1_a_0 Int) (PumpsOutput.usr.pump_status_2_a_0 Int) (PumpsOutput.usr.pump_status_3_a_0 Int) (PumpsOutput.usr.pump_defect_0_a_0 Int) (PumpsOutput.usr.pump_defect_1_a_0 Int) (PumpsOutput.usr.pump_defect_2_a_0 Int) (PumpsOutput.usr.pump_defect_3_a_0 Int) (PumpsOutput.usr.pump_control_defect_0_a_0 Int) (PumpsOutput.usr.pump_control_defect_1_a_0 Int) (PumpsOutput.usr.pump_control_defect_2_a_0 Int) (PumpsOutput.usr.pump_control_defect_3_a_0 Int) (PumpsOutput.usr.pump_repaired_0_a_0 Bool) (PumpsOutput.usr.pump_repaired_1_a_0 Bool) (PumpsOutput.usr.pump_repaired_2_a_0 Bool) (PumpsOutput.usr.pump_repaired_3_a_0 Bool) (PumpsOutput.usr.pump_control_repaired_0_a_0 Bool) (PumpsOutput.usr.pump_control_repaired_1_a_0 Bool) (PumpsOutput.usr.pump_control_repaired_2_a_0 Bool) (PumpsOutput.usr.pump_control_repaired_3_a_0 Bool) (PumpsOutput.usr.open_pump_0_a_0 Bool) (PumpsOutput.usr.open_pump_1_a_0 Bool) (PumpsOutput.usr.open_pump_2_a_0 Bool) (PumpsOutput.usr.open_pump_3_a_0 Bool) (PumpsOutput.usr.close_pump_0_a_0 Bool) (PumpsOutput.usr.close_pump_1_a_0 Bool) (PumpsOutput.usr.close_pump_2_a_0 Bool) (PumpsOutput.usr.close_pump_3_a_0 Bool) (PumpsOutput.usr.pump_failure_detection_0_a_0 Bool) (PumpsOutput.usr.pump_failure_detection_1_a_0 Bool) (PumpsOutput.usr.pump_failure_detection_2_a_0 Bool) (PumpsOutput.usr.pump_failure_detection_3_a_0 Bool) (PumpsOutput.usr.pump_repaired_acknowledgement_0_a_0 Bool) (PumpsOutput.usr.pump_repaired_acknowledgement_1_a_0 Bool) (PumpsOutput.usr.pump_repaired_acknowledgement_2_a_0 Bool) (PumpsOutput.usr.pump_repaired_acknowledgement_3_a_0 Bool) (PumpsOutput.usr.pump_control_failure_detection_0_a_0 Bool) (PumpsOutput.usr.pump_control_failure_detection_1_a_0 Bool) (PumpsOutput.usr.pump_control_failure_detection_2_a_0 Bool) (PumpsOutput.usr.pump_control_failure_detection_3_a_0 Bool) (PumpsOutput.usr.pump_control_repaired_acknowledgement_0_a_0 Bool) (PumpsOutput.usr.pump_control_repaired_acknowledgement_1_a_0 Bool) (PumpsOutput.usr.pump_control_repaired_acknowledgement_2_a_0 Bool) (PumpsOutput.usr.pump_control_repaired_acknowledgement_3_a_0 Bool) (PumpsOutput.res.init_flag_a_0 Bool)) Bool + (and (= PumpsOutput.usr.open_pump_0_a_1 (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) (= PumpsOutput.usr.pump_status_0_a_1 2))) (= PumpsOutput.usr.open_pump_1_a_1 (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) (= PumpsOutput.usr.pump_status_1_a_1 2))) (= PumpsOutput.usr.open_pump_2_a_1 (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) (= PumpsOutput.usr.pump_status_2_a_1 2))) (= PumpsOutput.usr.open_pump_3_a_1 (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) (= PumpsOutput.usr.pump_status_3_a_1 2))) (= PumpsOutput.usr.close_pump_0_a_1 (and (and (and (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) (= PumpsOutput.usr.pump_status_0_a_1 0)) (not (= PumpsOutput.usr.pump_status_0_a_0 0))) (= PumpsOutput.usr.pump_defect_0_a_1 0)) (= PumpsOutput.usr.pump_defect_0_a_0 0))) (= PumpsOutput.usr.close_pump_1_a_1 (and (and (and (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) (= PumpsOutput.usr.pump_status_0_a_1 0)) (not (= PumpsOutput.usr.pump_status_1_a_0 0))) (= PumpsOutput.usr.pump_defect_0_a_1 0)) (= PumpsOutput.usr.pump_defect_1_a_0 0))) (= PumpsOutput.usr.close_pump_2_a_1 (and (and (and (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) (= PumpsOutput.usr.pump_status_0_a_1 0)) (not (= PumpsOutput.usr.pump_status_2_a_0 0))) (= PumpsOutput.usr.pump_defect_0_a_1 0)) (= PumpsOutput.usr.pump_defect_2_a_0 0))) (= PumpsOutput.usr.close_pump_3_a_1 (and (and (and (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) (= PumpsOutput.usr.pump_status_0_a_1 0)) (not (= PumpsOutput.usr.pump_status_3_a_0 0))) (= PumpsOutput.usr.pump_defect_0_a_1 0)) (= PumpsOutput.usr.pump_defect_3_a_0 0))) (= PumpsOutput.usr.pump_failure_detection_0_a_1 (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) (= PumpsOutput.usr.pump_defect_0_a_1 1))) (= PumpsOutput.usr.pump_failure_detection_1_a_1 (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) (= PumpsOutput.usr.pump_defect_1_a_1 1))) (= PumpsOutput.usr.pump_failure_detection_2_a_1 (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) (= PumpsOutput.usr.pump_defect_2_a_1 1))) (= PumpsOutput.usr.pump_failure_detection_3_a_1 (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) (= PumpsOutput.usr.pump_defect_3_a_1 1))) (= PumpsOutput.usr.pump_repaired_acknowledgement_0_a_1 (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) PumpsOutput.usr.pump_repaired_0_a_1)) (= PumpsOutput.usr.pump_repaired_acknowledgement_1_a_1 (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) PumpsOutput.usr.pump_repaired_1_a_1)) (= PumpsOutput.usr.pump_repaired_acknowledgement_2_a_1 (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) PumpsOutput.usr.pump_repaired_2_a_1)) (= PumpsOutput.usr.pump_repaired_acknowledgement_3_a_1 (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) PumpsOutput.usr.pump_repaired_3_a_1)) (= PumpsOutput.usr.pump_control_failure_detection_0_a_1 (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) (= PumpsOutput.usr.pump_control_defect_0_a_1 1))) (= PumpsOutput.usr.pump_control_failure_detection_1_a_1 (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) (= PumpsOutput.usr.pump_control_defect_1_a_1 1))) (= PumpsOutput.usr.pump_control_failure_detection_2_a_1 (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) (= PumpsOutput.usr.pump_control_defect_2_a_1 1))) (= PumpsOutput.usr.pump_control_failure_detection_3_a_1 (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) (= PumpsOutput.usr.pump_control_defect_3_a_1 1))) (= PumpsOutput.usr.pump_control_repaired_acknowledgement_0_a_1 (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) PumpsOutput.usr.pump_control_repaired_0_a_1)) (= PumpsOutput.usr.pump_control_repaired_acknowledgement_1_a_1 (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) PumpsOutput.usr.pump_control_repaired_1_a_1)) (= PumpsOutput.usr.pump_control_repaired_acknowledgement_2_a_1 (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) PumpsOutput.usr.pump_control_repaired_2_a_1)) (= PumpsOutput.usr.pump_control_repaired_acknowledgement_3_a_1 (and (and (not (= PumpsOutput.usr.op_mode_a_1 6)) (not (= PumpsOutput.usr.op_mode_a_1 1))) PumpsOutput.usr.pump_control_repaired_3_a_1)) (not PumpsOutput.res.init_flag_a_1))) +(define-fun __node_init_Valve_0 ((Valve.usr.op_mode_a_0 Int) (Valve.usr.q_a_0 Int) (Valve.usr.valve_a_0 Bool) (Valve.usr.valve_state_a_0 Int) (Valve.res.init_flag_a_0 Bool)) Bool + (and (= Valve.usr.valve_a_0 false) (= Valve.usr.valve_state_a_0 0) Valve.res.init_flag_a_0)) +(define-fun __node_trans_Valve_0 ((Valve.usr.op_mode_a_1 Int) (Valve.usr.q_a_1 Int) (Valve.usr.valve_a_1 Bool) (Valve.usr.valve_state_a_1 Int) (Valve.res.init_flag_a_1 Bool) (Valve.usr.op_mode_a_0 Int) (Valve.usr.q_a_0 Int) (Valve.usr.valve_a_0 Bool) (Valve.usr.valve_state_a_0 Int) (Valve.res.init_flag_a_0 Bool)) Bool + (and (= Valve.usr.valve_state_a_1 (ite (= Valve.usr.op_mode_a_1 2) (ite (> Valve.usr.q_a_1 600) 1 (ite (<= Valve.usr.q_a_1 600) 0 Valve.usr.valve_state_a_0)) Valve.usr.valve_state_a_0)) (= Valve.usr.valve_a_1 (not (= Valve.usr.valve_state_a_1 Valve.usr.valve_state_a_0))) (not Valve.res.init_flag_a_1))) +(define-fun __node_init_PumpsDecision_0 ((PumpsDecision.usr.q_a_0 Int) (PumpsDecision.usr.v_a_0 Int) (PumpsDecision.res.nondet_0 Int) (PumpsDecision.usr.n_pumps_a_0 Int) (PumpsDecision.res.init_flag_a_0 Bool)) Bool + (and (= PumpsDecision.usr.n_pumps_a_0 (let ((X1 PumpsDecision.res.nondet_0)) (ite (> PumpsDecision.usr.q_a_0 600) (div PumpsDecision.usr.v_a_0 15) (ite (< PumpsDecision.usr.q_a_0 400) (+ (div PumpsDecision.usr.v_a_0 15) 1) X1)))) PumpsDecision.res.init_flag_a_0)) +(define-fun __node_trans_PumpsDecision_0 ((PumpsDecision.usr.q_a_1 Int) (PumpsDecision.usr.v_a_1 Int) (PumpsDecision.res.nondet_0 Int) (PumpsDecision.usr.n_pumps_a_1 Int) (PumpsDecision.res.init_flag_a_1 Bool) (PumpsDecision.usr.q_a_0 Int) (PumpsDecision.usr.v_a_0 Int) (PumpsDecision.usr.n_pumps_a_0 Int) (PumpsDecision.res.init_flag_a_0 Bool)) Bool + (and (= PumpsDecision.usr.n_pumps_a_1 (ite (> PumpsDecision.usr.q_a_1 600) (div PumpsDecision.usr.v_a_1 15) (ite (< PumpsDecision.usr.q_a_1 400) (+ (div PumpsDecision.usr.v_a_1 15) 1) PumpsDecision.usr.n_pumps_a_0))) (not PumpsDecision.res.init_flag_a_1))) +(define-fun __node_init_steam_failure_detect_0 ((steam_failure_detect.usr.steam_a_0 Int) (steam_failure_detect.usr.steam_failure_detect_a_0 Bool) (steam_failure_detect.res.init_flag_a_0 Bool)) Bool + (and (= steam_failure_detect.usr.steam_failure_detect_a_0 (or (< steam_failure_detect.usr.steam_a_0 0) (> steam_failure_detect.usr.steam_a_0 25))) steam_failure_detect.res.init_flag_a_0)) +(define-fun __node_trans_steam_failure_detect_0 ((steam_failure_detect.usr.steam_a_1 Int) (steam_failure_detect.usr.steam_failure_detect_a_1 Bool) (steam_failure_detect.res.init_flag_a_1 Bool) (steam_failure_detect.usr.steam_a_0 Int) (steam_failure_detect.usr.steam_failure_detect_a_0 Bool) (steam_failure_detect.res.init_flag_a_0 Bool)) Bool + (and (= steam_failure_detect.usr.steam_failure_detect_a_1 (or (< steam_failure_detect.usr.steam_a_1 0) (> steam_failure_detect.usr.steam_a_1 25))) (not steam_failure_detect.res.init_flag_a_1))) +(define-fun __node_init_SteamDefect_0 ((SteamDefect.usr.steam_failure_acknowledgement_a_0 Bool) (SteamDefect.usr.steam_repaired_a_0 Bool) (SteamDefect.usr.steam_a_0 Int) (SteamDefect.res.nondet_0 Int) (SteamDefect.usr.SteamDefect_a_0 Int) (SteamDefect.res.init_flag_a_0 Bool) (SteamDefect.res.abs_0_a_0 Bool) (SteamDefect.res.abs_1_a_0 Int) (SteamDefect.res.abs_2_a_0 Int) (SteamDefect.res.inst_1_a_0 Bool) (SteamDefect.res.inst_0_a_0 Bool)) Bool + (and (= SteamDefect.usr.SteamDefect_a_0 0) (= SteamDefect.res.abs_1_a_0 (let ((X1 SteamDefect.res.nondet_0)) X1)) (__node_init_Defect_0 SteamDefect.res.abs_1_a_0 SteamDefect.res.abs_0_a_0 SteamDefect.usr.steam_failure_acknowledgement_a_0 SteamDefect.usr.steam_repaired_a_0 SteamDefect.res.abs_2_a_0 SteamDefect.res.inst_1_a_0) (__node_init_steam_failure_detect_0 SteamDefect.usr.steam_a_0 SteamDefect.res.abs_0_a_0 SteamDefect.res.inst_0_a_0) (<= 0 SteamDefect.res.abs_2_a_0 2) (<= 0 SteamDefect.usr.SteamDefect_a_0 2) SteamDefect.res.init_flag_a_0)) +(define-fun __node_trans_SteamDefect_0 ((SteamDefect.usr.steam_failure_acknowledgement_a_1 Bool) (SteamDefect.usr.steam_repaired_a_1 Bool) (SteamDefect.usr.steam_a_1 Int) (SteamDefect.res.nondet_0 Int) (SteamDefect.usr.SteamDefect_a_1 Int) (SteamDefect.res.init_flag_a_1 Bool) (SteamDefect.res.abs_0_a_1 Bool) (SteamDefect.res.abs_1_a_1 Int) (SteamDefect.res.abs_2_a_1 Int) (SteamDefect.res.inst_1_a_1 Bool) (SteamDefect.res.inst_0_a_1 Bool) (SteamDefect.usr.steam_failure_acknowledgement_a_0 Bool) (SteamDefect.usr.steam_repaired_a_0 Bool) (SteamDefect.usr.steam_a_0 Int) (SteamDefect.usr.SteamDefect_a_0 Int) (SteamDefect.res.init_flag_a_0 Bool) (SteamDefect.res.abs_0_a_0 Bool) (SteamDefect.res.abs_1_a_0 Int) (SteamDefect.res.abs_2_a_0 Int) (SteamDefect.res.inst_1_a_0 Bool) (SteamDefect.res.inst_0_a_0 Bool)) Bool + (and (= SteamDefect.res.abs_1_a_1 SteamDefect.usr.SteamDefect_a_0) (= SteamDefect.usr.SteamDefect_a_1 SteamDefect.res.abs_2_a_1) (__node_trans_Defect_0 SteamDefect.res.abs_1_a_1 SteamDefect.res.abs_0_a_1 SteamDefect.usr.steam_failure_acknowledgement_a_1 SteamDefect.usr.steam_repaired_a_1 SteamDefect.res.abs_2_a_1 SteamDefect.res.inst_1_a_1 SteamDefect.res.abs_1_a_0 SteamDefect.res.abs_0_a_0 SteamDefect.usr.steam_failure_acknowledgement_a_0 SteamDefect.usr.steam_repaired_a_0 SteamDefect.res.abs_2_a_0 SteamDefect.res.inst_1_a_0) (__node_trans_steam_failure_detect_0 SteamDefect.usr.steam_a_1 SteamDefect.res.abs_0_a_1 SteamDefect.res.inst_0_a_1 SteamDefect.usr.steam_a_0 SteamDefect.res.abs_0_a_0 SteamDefect.res.inst_0_a_0) (<= 0 SteamDefect.res.abs_2_a_1 2) (<= 0 SteamDefect.usr.SteamDefect_a_1 2) (not SteamDefect.res.init_flag_a_1))) +(define-fun __node_init_Operator_0 ((Operator.usr.stop_a_0 Bool) (Operator.usr.stop_request_a_0 Bool) (Operator.res.init_flag_a_0 Bool) (Operator.impl.usr.nb_stops_a_0 Int)) Bool + (and (= Operator.impl.usr.nb_stops_a_0 (ite Operator.usr.stop_a_0 1 0)) (= Operator.usr.stop_request_a_0 (>= Operator.impl.usr.nb_stops_a_0 3)) Operator.res.init_flag_a_0)) +(define-fun __node_trans_Operator_0 ((Operator.usr.stop_a_1 Bool) (Operator.usr.stop_request_a_1 Bool) (Operator.res.init_flag_a_1 Bool) (Operator.impl.usr.nb_stops_a_1 Int) (Operator.usr.stop_a_0 Bool) (Operator.usr.stop_request_a_0 Bool) (Operator.res.init_flag_a_0 Bool) (Operator.impl.usr.nb_stops_a_0 Int)) Bool + (and (= Operator.impl.usr.nb_stops_a_1 (ite Operator.usr.stop_a_1 (+ Operator.impl.usr.nb_stops_a_0 1) 0)) (= Operator.usr.stop_request_a_1 (>= Operator.impl.usr.nb_stops_a_1 3)) (not Operator.res.init_flag_a_1))) +(define-fun __node_init_initialization_complete_0 ((initialization_complete.usr.op_mode_a_0 Int) (initialization_complete.usr.level_a_0 Int) (initialization_complete.usr.valve_a_0 Bool) (initialization_complete.usr.initialization_complete_a_0 Bool) (initialization_complete.res.init_flag_a_0 Bool)) Bool + (and (= initialization_complete.usr.initialization_complete_a_0 (and (and (= initialization_complete.usr.op_mode_a_0 2) (and (<= 400 initialization_complete.usr.level_a_0) (<= initialization_complete.usr.level_a_0 600))) (not initialization_complete.usr.valve_a_0))) initialization_complete.res.init_flag_a_0)) +(define-fun __node_trans_initialization_complete_0 ((initialization_complete.usr.op_mode_a_1 Int) (initialization_complete.usr.level_a_1 Int) (initialization_complete.usr.valve_a_1 Bool) (initialization_complete.usr.initialization_complete_a_1 Bool) (initialization_complete.res.init_flag_a_1 Bool) (initialization_complete.usr.op_mode_a_0 Int) (initialization_complete.usr.level_a_0 Int) (initialization_complete.usr.valve_a_0 Bool) (initialization_complete.usr.initialization_complete_a_0 Bool) (initialization_complete.res.init_flag_a_0 Bool)) Bool + (and (= initialization_complete.usr.initialization_complete_a_1 (and (and (= initialization_complete.usr.op_mode_a_1 2) (and (<= 400 initialization_complete.usr.level_a_1) (<= initialization_complete.usr.level_a_1 600))) (not initialization_complete.usr.valve_a_1))) (not initialization_complete.res.init_flag_a_1))) +(define-fun __node_init_ControlOutput_0 ((ControlOutput.usr.op_mode_a_0 Int) (ControlOutput.usr.level_a_0 Int) (ControlOutput.usr.valve_a_0 Bool) (ControlOutput.usr.program_ready_a_0 Bool) (ControlOutput.usr.mode_a_0 Int) (ControlOutput.res.init_flag_a_0 Bool) (ControlOutput.res.abs_0_a_0 Bool) (ControlOutput.res.inst_0_a_0 Bool)) Bool + (and (= ControlOutput.usr.program_ready_a_0 ControlOutput.res.abs_0_a_0) (= ControlOutput.usr.mode_a_0 ControlOutput.usr.op_mode_a_0) (__node_init_initialization_complete_0 ControlOutput.usr.op_mode_a_0 ControlOutput.usr.level_a_0 ControlOutput.usr.valve_a_0 ControlOutput.res.abs_0_a_0 ControlOutput.res.inst_0_a_0) ControlOutput.res.init_flag_a_0)) +(define-fun __node_trans_ControlOutput_0 ((ControlOutput.usr.op_mode_a_1 Int) (ControlOutput.usr.level_a_1 Int) (ControlOutput.usr.valve_a_1 Bool) (ControlOutput.usr.program_ready_a_1 Bool) (ControlOutput.usr.mode_a_1 Int) (ControlOutput.res.init_flag_a_1 Bool) (ControlOutput.res.abs_0_a_1 Bool) (ControlOutput.res.inst_0_a_1 Bool) (ControlOutput.usr.op_mode_a_0 Int) (ControlOutput.usr.level_a_0 Int) (ControlOutput.usr.valve_a_0 Bool) (ControlOutput.usr.program_ready_a_0 Bool) (ControlOutput.usr.mode_a_0 Int) (ControlOutput.res.init_flag_a_0 Bool) (ControlOutput.res.abs_0_a_0 Bool) (ControlOutput.res.inst_0_a_0 Bool)) Bool + (and (= ControlOutput.usr.program_ready_a_1 ControlOutput.res.abs_0_a_1) (= ControlOutput.usr.mode_a_1 ControlOutput.usr.op_mode_a_1) (__node_trans_initialization_complete_0 ControlOutput.usr.op_mode_a_1 ControlOutput.usr.level_a_1 ControlOutput.usr.valve_a_1 ControlOutput.res.abs_0_a_1 ControlOutput.res.inst_0_a_1 ControlOutput.usr.op_mode_a_0 ControlOutput.usr.level_a_0 ControlOutput.usr.valve_a_0 ControlOutput.res.abs_0_a_0 ControlOutput.res.inst_0_a_0) (not ControlOutput.res.init_flag_a_1))) +(define-fun __node_init_BoilerController_0 ((BoilerController.usr.stop_a_0 Bool) (BoilerController.usr.steam_boiler_waiting_a_0 Bool) (BoilerController.usr.physical_units_ready_a_0 Bool) (BoilerController.usr.level_a_0 Int) (BoilerController.usr.steam_a_0 Int) (BoilerController.usr.pump_state_0_a_0 Int) (BoilerController.usr.pump_state_1_a_0 Int) (BoilerController.usr.pump_state_2_a_0 Int) (BoilerController.usr.pump_state_3_a_0 Int) (BoilerController.usr.pump_control_state_0_a_0 Bool) (BoilerController.usr.pump_control_state_1_a_0 Bool) (BoilerController.usr.pump_control_state_2_a_0 Bool) (BoilerController.usr.pump_control_state_3_a_0 Bool) (BoilerController.usr.pump_repaired_0_a_0 Bool) (BoilerController.usr.pump_repaired_1_a_0 Bool) (BoilerController.usr.pump_repaired_2_a_0 Bool) (BoilerController.usr.pump_repaired_3_a_0 Bool) (BoilerController.usr.pump_control_repaired_0_a_0 Bool) (BoilerController.usr.pump_control_repaired_1_a_0 Bool) (BoilerController.usr.pump_control_repaired_2_a_0 Bool) (BoilerController.usr.pump_control_repaired_3_a_0 Bool) (BoilerController.usr.level_repaired_a_0 Bool) (BoilerController.usr.steam_repaired_a_0 Bool) (BoilerController.usr.pump_failure_acknowledgement_0_a_0 Bool) (BoilerController.usr.pump_failure_acknowledgement_1_a_0 Bool) (BoilerController.usr.pump_failure_acknowledgement_2_a_0 Bool) (BoilerController.usr.pump_failure_acknowledgement_3_a_0 Bool) (BoilerController.usr.pump_control_failure_acknowledgement_0_a_0 Bool) (BoilerController.usr.pump_control_failure_acknowledgement_1_a_0 Bool) (BoilerController.usr.pump_control_failure_acknowledgement_2_a_0 Bool) (BoilerController.usr.pump_control_failure_acknowledgement_3_a_0 Bool) (BoilerController.usr.level_failure_acknowledgement_a_0 Bool) (BoilerController.usr.steam_failure_acknowledgement_a_0 Bool) (BoilerController.res.nondet_32 Int) (BoilerController.res.nondet_31 Int) (BoilerController.res.nondet_30 Int) (BoilerController.res.nondet_29 Int) (BoilerController.res.nondet_28 Int) (BoilerController.res.nondet_27 Int) (BoilerController.res.nondet_26 Int) (BoilerController.res.nondet_25 Int) (BoilerController.res.nondet_24 Int) (BoilerController.res.nondet_23 Int) (BoilerController.res.nondet_22 Int) (BoilerController.res.nondet_21 Int) (BoilerController.res.nondet_20 Int) (BoilerController.res.nondet_19 Int) (BoilerController.res.nondet_18 Int) (BoilerController.res.nondet_17 Int) (BoilerController.res.nondet_16 Int) (BoilerController.res.nondet_15 Int) (BoilerController.res.nondet_14 Int) (BoilerController.res.nondet_13 Int) (BoilerController.res.nondet_12 Int) (BoilerController.res.nondet_11 Int) (BoilerController.res.nondet_10 Int) (BoilerController.res.nondet_9 Int) (BoilerController.res.nondet_8 Int) (BoilerController.res.nondet_7 Int) (BoilerController.res.nondet_6 Int) (BoilerController.res.nondet_5 Int) (BoilerController.res.nondet_4 Int) (BoilerController.res.nondet_3 Int) (BoilerController.res.nondet_2 Int) (BoilerController.res.nondet_1 Int) (BoilerController.res.nondet_0 Int) (BoilerController.usr.program_ready_a_0 Bool) (BoilerController.usr.mode_a_0 Int) (BoilerController.usr.valve_a_0 Bool) (BoilerController.usr.open_pump_0_a_0 Bool) (BoilerController.usr.open_pump_1_a_0 Bool) (BoilerController.usr.open_pump_2_a_0 Bool) (BoilerController.usr.open_pump_3_a_0 Bool) (BoilerController.usr.close_pump_0_a_0 Bool) (BoilerController.usr.close_pump_1_a_0 Bool) (BoilerController.usr.close_pump_2_a_0 Bool) (BoilerController.usr.close_pump_3_a_0 Bool) (BoilerController.usr.pump_failure_detection_0_a_0 Bool) (BoilerController.usr.pump_failure_detection_1_a_0 Bool) (BoilerController.usr.pump_failure_detection_2_a_0 Bool) (BoilerController.usr.pump_failure_detection_3_a_0 Bool) (BoilerController.usr.pump_control_failure_detection_0_a_0 Bool) (BoilerController.usr.pump_control_failure_detection_1_a_0 Bool) (BoilerController.usr.pump_control_failure_detection_2_a_0 Bool) (BoilerController.usr.pump_control_failure_detection_3_a_0 Bool) (BoilerController.usr.level_failure_detection_a_0 Bool) (BoilerController.usr.steam_outcome_failure_detection_a_0 Bool) (BoilerController.usr.pump_repaired_acknowledgement_0_a_0 Bool) (BoilerController.usr.pump_repaired_acknowledgement_1_a_0 Bool) (BoilerController.usr.pump_repaired_acknowledgement_2_a_0 Bool) (BoilerController.usr.pump_repaired_acknowledgement_3_a_0 Bool) (BoilerController.usr.pump_control_repaired_acknowledgement_0_a_0 Bool) (BoilerController.usr.pump_control_repaired_acknowledgement_1_a_0 Bool) (BoilerController.usr.pump_control_repaired_acknowledgement_2_a_0 Bool) (BoilerController.usr.pump_control_repaired_acknowledgement_3_a_0 Bool) (BoilerController.usr.level_repaired_acknowledgement_a_0 Bool) (BoilerController.usr.steam_outcome_repaired_acknowledgement_a_0 Bool) (BoilerController.res.init_flag_a_0 Bool) (BoilerController.impl.usr.stop_request_a_0 Bool) (BoilerController.impl.usr.op_mode_a_0 Int) (BoilerController.impl.usr.q_a_0 Int) (BoilerController.impl.usr.v_a_0 Int) (BoilerController.impl.usr.valve_state_a_0 Int) (BoilerController.impl.usr.n_pumps_a_0 Int) (BoilerController.impl.usr.pump_status_0_a_0 Int) (BoilerController.impl.usr.pump_status_1_a_0 Int) (BoilerController.impl.usr.pump_status_2_a_0 Int) (BoilerController.impl.usr.pump_status_3_a_0 Int) (BoilerController.impl.usr.pump_defect_0_a_0 Int) (BoilerController.impl.usr.pump_defect_1_a_0 Int) (BoilerController.impl.usr.pump_defect_2_a_0 Int) (BoilerController.impl.usr.pump_defect_3_a_0 Int) (BoilerController.impl.usr.pump_control_defect_0_a_0 Int) (BoilerController.impl.usr.pump_control_defect_1_a_0 Int) (BoilerController.impl.usr.pump_control_defect_2_a_0 Int) (BoilerController.impl.usr.pump_control_defect_3_a_0 Int) (BoilerController.res.abs_0_a_0 Bool) (BoilerController.res.abs_1_a_0 Int) (BoilerController.res.abs_2_a_0 Int) (BoilerController.res.abs_3_a_0 Int) (BoilerController.res.abs_4_a_0 Bool) (BoilerController.res.abs_5_a_0 Bool) (BoilerController.res.abs_6_a_0 Bool) (BoilerController.res.abs_7_a_0 Bool) (BoilerController.res.abs_8_a_0 Int) (BoilerController.res.abs_9_a_0 Int) (BoilerController.res.abs_10_a_0 Bool) (BoilerController.res.abs_11_a_0 Int) (BoilerController.res.abs_12_a_0 Int) (BoilerController.res.abs_13_a_0 Bool) (BoilerController.res.abs_14_a_0 Int) (BoilerController.res.abs_15_a_0 Bool) (BoilerController.res.abs_16_a_0 Bool) (BoilerController.res.abs_17_a_0 Bool) (BoilerController.res.abs_18_a_0 Bool) (BoilerController.res.abs_19_a_0 Int) (BoilerController.res.abs_20_a_0 Int) (BoilerController.res.abs_21_a_0 Bool) (BoilerController.res.abs_22_a_0 Int) (BoilerController.res.abs_23_a_0 Int) (BoilerController.res.abs_24_a_0 Bool) (BoilerController.res.abs_25_a_0 Int) (BoilerController.res.abs_26_a_0 Bool) (BoilerController.res.abs_27_a_0 Bool) (BoilerController.res.abs_28_a_0 Bool) (BoilerController.res.abs_29_a_0 Bool) (BoilerController.res.abs_30_a_0 Int) (BoilerController.res.abs_31_a_0 Int) (BoilerController.res.abs_32_a_0 Bool) (BoilerController.res.abs_33_a_0 Int) (BoilerController.res.abs_34_a_0 Int) (BoilerController.res.abs_35_a_0 Bool) (BoilerController.res.abs_36_a_0 Int) (BoilerController.res.abs_37_a_0 Bool) (BoilerController.res.abs_38_a_0 Bool) (BoilerController.res.abs_39_a_0 Bool) (BoilerController.res.abs_40_a_0 Bool) (BoilerController.res.abs_41_a_0 Int) (BoilerController.res.abs_42_a_0 Int) (BoilerController.res.abs_43_a_0 Bool) (BoilerController.res.abs_44_a_0 Int) (BoilerController.res.abs_45_a_0 Int) (BoilerController.res.abs_46_a_0 Bool) (BoilerController.res.abs_48_a_0 Int) (BoilerController.res.abs_49_a_0 Int) (BoilerController.res.abs_50_a_0 Int) (BoilerController.res.abs_51_a_0 Int) (BoilerController.res.abs_52_a_0 Int) (BoilerController.res.abs_53_a_0 Bool) (BoilerController.res.abs_54_a_0 Bool) (BoilerController.res.abs_55_a_0 Bool) (BoilerController.res.abs_56_a_0 Bool) (BoilerController.res.abs_57_a_0 Int) (BoilerController.res.abs_58_a_0 Int) (BoilerController.res.abs_59_a_0 Int) (BoilerController.res.abs_60_a_0 Int) (BoilerController.res.abs_61_a_0 Int) (BoilerController.res.abs_62_a_0 Int) (BoilerController.res.abs_63_a_0 Int) (BoilerController.res.abs_64_a_0 Int) (BoilerController.res.abs_65_a_0 Int) (BoilerController.res.abs_66_a_0 Int) (BoilerController.res.abs_67_a_0 Int) (BoilerController.res.abs_68_a_0 Int) (BoilerController.res.abs_69_a_0 Bool) (BoilerController.res.abs_70_a_0 Int) (BoilerController.res.abs_71_a_0 Bool) (BoilerController.res.abs_72_a_0 Int) (BoilerController.res.abs_73_a_0 Bool) (BoilerController.res.abs_74_a_0 Bool) (BoilerController.res.abs_75_a_0 Bool) (BoilerController.res.abs_76_a_0 Bool) (BoilerController.res.abs_77_a_0 Bool) (BoilerController.res.abs_78_a_0 Bool) (BoilerController.res.abs_79_a_0 Bool) (BoilerController.res.abs_80_a_0 Bool) (BoilerController.res.abs_81_a_0 Bool) (BoilerController.res.abs_82_a_0 Bool) (BoilerController.res.abs_83_a_0 Bool) (BoilerController.res.abs_84_a_0 Bool) (BoilerController.res.abs_85_a_0 Bool) (BoilerController.res.abs_86_a_0 Bool) (BoilerController.res.abs_87_a_0 Bool) (BoilerController.res.abs_88_a_0 Bool) (BoilerController.res.abs_89_a_0 Bool) (BoilerController.res.abs_90_a_0 Bool) (BoilerController.res.abs_91_a_0 Bool) (BoilerController.res.abs_92_a_0 Bool) (BoilerController.res.abs_93_a_0 Bool) (BoilerController.res.abs_94_a_0 Bool) (BoilerController.res.abs_95_a_0 Bool) (BoilerController.res.abs_96_a_0 Bool) (BoilerController.res.abs_97_a_0 Bool) (BoilerController.res.abs_98_a_0 Bool) (BoilerController.res.abs_99_a_0 Bool) (BoilerController.res.abs_100_a_0 Bool) (BoilerController.res.inst_176_a_0 Bool) (BoilerController.res.inst_175_a_0 Bool) (BoilerController.res.inst_174_a_0 Bool) (BoilerController.res.inst_173_a_0 Bool) (BoilerController.res.inst_172_a_0 Int) (BoilerController.res.inst_171_a_0 Bool) (BoilerController.res.inst_170_a_0 Bool) (BoilerController.res.inst_169_a_0 Bool) (BoilerController.res.inst_168_a_0 Bool) (BoilerController.res.inst_167_a_0 Bool) (BoilerController.res.inst_166_a_0 Bool) (BoilerController.res.inst_165_a_0 Bool) (BoilerController.res.inst_164_a_0 Bool) (BoilerController.res.inst_163_a_0 Bool) (BoilerController.res.inst_162_a_0 Bool) (BoilerController.res.inst_161_a_0 Bool) (BoilerController.res.inst_160_a_0 Bool) (BoilerController.res.inst_159_a_0 Bool) (BoilerController.res.inst_158_a_0 Bool) (BoilerController.res.inst_157_a_0 Bool) (BoilerController.res.inst_156_a_0 Bool) (BoilerController.res.inst_155_a_0 Bool) (BoilerController.res.inst_154_a_0 Bool) (BoilerController.res.inst_153_a_0 Bool) (BoilerController.res.inst_152_a_0 Bool) (BoilerController.res.inst_151_a_0 Bool) (BoilerController.res.inst_150_a_0 Bool) (BoilerController.res.inst_149_a_0 Bool) (BoilerController.res.inst_148_a_0 Bool) (BoilerController.res.inst_147_a_0 Bool) (BoilerController.res.inst_146_a_0 Bool) (BoilerController.res.inst_145_a_0 Bool) (BoilerController.res.inst_144_a_0 Bool) (BoilerController.res.inst_143_a_0 Bool) (BoilerController.res.inst_142_a_0 Bool) (BoilerController.res.inst_141_a_0 Bool) (BoilerController.res.inst_140_a_0 Bool) (BoilerController.res.inst_139_a_0 Bool) (BoilerController.res.inst_138_a_0 Bool) (BoilerController.res.inst_137_a_0 Bool) (BoilerController.res.inst_136_a_0 Bool) (BoilerController.res.inst_135_a_0 Bool) (BoilerController.res.inst_134_a_0 Bool) (BoilerController.res.inst_133_a_0 Bool) (BoilerController.res.inst_132_a_0 Bool) (BoilerController.res.inst_131_a_0 Bool) (BoilerController.res.inst_130_a_0 Bool) (BoilerController.res.inst_129_a_0 Bool) (BoilerController.res.inst_128_a_0 Bool) (BoilerController.res.inst_127_a_0 Bool) (BoilerController.res.inst_126_a_0 Bool) (BoilerController.res.inst_125_a_0 Bool) (BoilerController.res.inst_124_a_0 Bool) (BoilerController.res.inst_123_a_0 Bool) (BoilerController.res.inst_122_a_0 Bool) (BoilerController.res.inst_121_a_0 Bool) (BoilerController.res.inst_120_a_0 Int) (BoilerController.res.inst_119_a_0 Bool) (BoilerController.res.inst_118_a_0 Bool) (BoilerController.res.inst_117_a_0 Int) (BoilerController.res.inst_116_a_0 Int) (BoilerController.res.inst_115_a_0 Bool) (BoilerController.res.inst_114_a_0 Bool) (BoilerController.res.inst_113_a_0 Bool) (BoilerController.res.inst_112_a_0 Bool) (BoilerController.res.inst_111_a_0 Int) (BoilerController.res.inst_110_a_0 Int) (BoilerController.res.inst_109_a_0 Bool) (BoilerController.res.inst_108_a_0 Bool) (BoilerController.res.inst_107_a_0 Bool) (BoilerController.res.inst_106_a_0 Bool) (BoilerController.res.inst_105_a_0 Bool) (BoilerController.res.inst_104_a_0 Bool) (BoilerController.res.inst_103_a_0 Bool) (BoilerController.res.inst_102_a_0 Bool) (BoilerController.res.inst_101_a_0 Int) (BoilerController.res.inst_100_a_0 Int) (BoilerController.res.inst_99_a_0 Int) (BoilerController.res.inst_98_a_0 Int) (BoilerController.res.inst_97_a_0 Bool) (BoilerController.res.inst_96_a_0 Bool) (BoilerController.res.inst_95_a_0 Bool) (BoilerController.res.inst_94_a_0 Bool) (BoilerController.res.inst_93_a_0 Int) (BoilerController.res.inst_92_a_0 Int) (BoilerController.res.inst_91_a_0 Int) (BoilerController.res.inst_90_a_0 Int) (BoilerController.res.inst_89_a_0 Int) (BoilerController.res.inst_88_a_0 Int) (BoilerController.res.inst_87_a_0 Int) (BoilerController.res.inst_86_a_0 Int) (BoilerController.res.inst_85_a_0 Int) (BoilerController.res.inst_84_a_0 Int) (BoilerController.res.inst_83_a_0 Bool) (BoilerController.res.inst_82_a_0 Bool) (BoilerController.res.inst_81_a_0 Bool) (BoilerController.res.inst_80_a_0 Bool) (BoilerController.res.inst_79_a_0 Int) (BoilerController.res.inst_78_a_0 Int) (BoilerController.res.inst_77_a_0 Int) (BoilerController.res.inst_76_a_0 Int) (BoilerController.res.inst_75_a_0 Bool) (BoilerController.res.inst_74_a_0 Int) (BoilerController.res.inst_73_a_0 Bool) (BoilerController.res.inst_72_a_0 Int) (BoilerController.res.inst_71_a_0 Bool) (BoilerController.res.inst_70_a_0 Int) (BoilerController.res.inst_69_a_0 Bool) (BoilerController.res.inst_68_a_0 Int) (BoilerController.res.inst_67_a_0 Bool) (BoilerController.res.inst_66_a_0 Int) (BoilerController.res.inst_65_a_0 Bool) (BoilerController.res.inst_64_a_0 Int) (BoilerController.res.inst_63_a_0 Bool) (BoilerController.res.inst_62_a_0 Int) (BoilerController.res.inst_61_a_0 Bool) (BoilerController.res.inst_60_a_0 Int) (BoilerController.res.inst_59_a_0 Bool) (BoilerController.res.inst_58_a_0 Bool) (BoilerController.res.inst_57_a_0 Bool) (BoilerController.res.inst_56_a_0 Bool) (BoilerController.res.inst_55_a_0 Bool) (BoilerController.res.inst_54_a_0 Bool) (BoilerController.res.inst_53_a_0 Bool) (BoilerController.res.inst_52_a_0 Bool) (BoilerController.res.inst_51_a_0 Bool) (BoilerController.res.inst_50_a_0 Bool) (BoilerController.res.inst_49_a_0 Bool) (BoilerController.res.inst_48_a_0 Bool) (BoilerController.res.inst_47_a_0 Int) (BoilerController.res.inst_46_a_0 Bool) (BoilerController.res.inst_45_a_0 Bool) (BoilerController.res.inst_44_a_0 Bool) (BoilerController.res.inst_43_a_0 Bool) (BoilerController.res.inst_42_a_0 Bool) (BoilerController.res.inst_41_a_0 Bool) (BoilerController.res.inst_40_a_0 Bool) (BoilerController.res.inst_39_a_0 Bool) (BoilerController.res.inst_38_a_0 Bool) (BoilerController.res.inst_37_a_0 Bool) (BoilerController.res.inst_36_a_0 Bool) (BoilerController.res.inst_35_a_0 Int) (BoilerController.res.inst_34_a_0 Int) (BoilerController.res.inst_33_a_0 Int) (BoilerController.res.inst_32_a_0 Int) (BoilerController.res.inst_31_a_0 Bool) (BoilerController.res.inst_30_a_0 Bool) (BoilerController.res.inst_29_a_0 Bool) (BoilerController.res.inst_28_a_0 Bool) (BoilerController.res.inst_27_a_0 Bool) (BoilerController.res.inst_26_a_0 Bool) (BoilerController.res.inst_25_a_0 Bool) (BoilerController.res.inst_24_a_0 Bool) (BoilerController.res.inst_23_a_0 Bool) (BoilerController.res.inst_22_a_0 Int) (BoilerController.res.inst_21_a_0 Int) (BoilerController.res.inst_20_a_0 Int) (BoilerController.res.inst_19_a_0 Int) (BoilerController.res.inst_18_a_0 Bool) (BoilerController.res.inst_17_a_0 Bool) (BoilerController.res.inst_16_a_0 Bool) (BoilerController.res.inst_15_a_0 Bool) (BoilerController.res.inst_14_a_0 Bool) (BoilerController.res.inst_13_a_0 Bool) (BoilerController.res.inst_12_a_0 Bool) (BoilerController.res.inst_11_a_0 Bool) (BoilerController.res.inst_10_a_0 Bool) (BoilerController.res.inst_9_a_0 Int) (BoilerController.res.inst_8_a_0 Int) (BoilerController.res.inst_7_a_0 Int) (BoilerController.res.inst_6_a_0 Int) (BoilerController.res.inst_5_a_0 Bool) (BoilerController.res.inst_4_a_0 Bool) (BoilerController.res.inst_3_a_0 Bool) (BoilerController.res.inst_2_a_0 Bool) (BoilerController.res.inst_1_a_0 Bool) (BoilerController.res.inst_0_a_0 Bool)) Bool + (and (= BoilerController.usr.program_ready_a_0 false) (= BoilerController.res.abs_49_a_0 BoilerController.usr.level_a_0) (= BoilerController.impl.usr.op_mode_a_0 1) (= BoilerController.usr.valve_a_0 false) (let ((X1 BoilerController.res.abs_71_a_0)) (and (= BoilerController.impl.usr.stop_request_a_0 BoilerController.res.abs_0_a_0) (= BoilerController.res.abs_50_a_0 BoilerController.usr.steam_a_0) (let ((X2 0)) (and (= BoilerController.res.abs_51_a_0 X2) (let ((X3 0)) (and (= BoilerController.res.abs_52_a_0 X3) (= BoilerController.impl.usr.pump_defect_0_a_0 0) (let ((X4 BoilerController.res.abs_11_a_0)) (and (= BoilerController.res.abs_4_a_0 BoilerController.usr.pump_failure_acknowledgement_0_a_0) (= BoilerController.res.abs_5_a_0 BoilerController.usr.pump_repaired_0_a_0) (= BoilerController.res.abs_6_a_0 BoilerController.usr.pump_control_failure_acknowledgement_0_a_0) (= BoilerController.res.abs_7_a_0 BoilerController.usr.pump_control_repaired_0_a_0) (= BoilerController.res.abs_8_a_0 (let ((X5 BoilerController.res.nondet_2)) X5)) (= BoilerController.impl.usr.pump_status_0_a_0 0) (let ((X5 BoilerController.res.abs_64_a_0)) (and (= BoilerController.impl.usr.n_pumps_a_0 0) (= BoilerController.impl.usr.q_a_0 BoilerController.usr.level_a_0) (let ((X6 BoilerController.res.abs_57_a_0)) (and (= BoilerController.res.abs_48_a_0 (let ((X7 BoilerController.res.nondet_14)) X7)) (= BoilerController.impl.usr.valve_state_a_0 0) (let ((X7 BoilerController.res.abs_70_a_0)) (let ((X8 false)) (and (= BoilerController.res.abs_53_a_0 X8) (= BoilerController.res.abs_10_a_0 BoilerController.usr.pump_control_state_0_a_0) (= BoilerController.res.abs_9_a_0 BoilerController.usr.pump_state_0_a_0) (let ((X9 BoilerController.res.abs_13_a_0)) (let ((X10 false)) (and (= BoilerController.res.abs_54_a_0 X10) (= BoilerController.res.abs_21_a_0 BoilerController.usr.pump_control_state_1_a_0) (= BoilerController.res.abs_20_a_0 BoilerController.usr.pump_state_1_a_0) (= BoilerController.res.abs_19_a_0 (let ((X11 BoilerController.res.nondet_5)) X11)) (let ((X11 BoilerController.res.abs_24_a_0)) (and (= BoilerController.res.abs_15_a_0 BoilerController.usr.pump_failure_acknowledgement_1_a_0) (= BoilerController.res.abs_16_a_0 BoilerController.usr.pump_repaired_1_a_0) (= BoilerController.res.abs_17_a_0 BoilerController.usr.pump_control_failure_acknowledgement_1_a_0) (= BoilerController.res.abs_18_a_0 BoilerController.usr.pump_control_repaired_1_a_0) (= BoilerController.impl.usr.pump_status_1_a_0 0) (let ((X12 BoilerController.res.abs_65_a_0)) (let ((X13 false)) (and (= BoilerController.res.abs_55_a_0 X13) (= BoilerController.res.abs_32_a_0 BoilerController.usr.pump_control_state_2_a_0) (= BoilerController.res.abs_31_a_0 BoilerController.usr.pump_state_2_a_0) (= BoilerController.res.abs_30_a_0 (let ((X14 BoilerController.res.nondet_8)) X14)) (let ((X14 BoilerController.res.abs_35_a_0)) (and (= BoilerController.res.abs_26_a_0 BoilerController.usr.pump_failure_acknowledgement_2_a_0) (= BoilerController.res.abs_27_a_0 BoilerController.usr.pump_repaired_2_a_0) (= BoilerController.res.abs_28_a_0 BoilerController.usr.pump_control_failure_acknowledgement_2_a_0) (= BoilerController.res.abs_29_a_0 BoilerController.usr.pump_control_repaired_2_a_0) (= BoilerController.impl.usr.pump_status_2_a_0 0) (let ((X15 BoilerController.res.abs_66_a_0)) (let ((X16 false)) (and (= BoilerController.res.abs_56_a_0 X16) (= BoilerController.res.abs_43_a_0 BoilerController.usr.pump_control_state_3_a_0) (= BoilerController.res.abs_42_a_0 BoilerController.usr.pump_state_3_a_0) (= BoilerController.res.abs_41_a_0 (let ((X17 BoilerController.res.nondet_11)) X17)) (let ((X17 BoilerController.res.abs_46_a_0)) (and (= BoilerController.res.abs_37_a_0 BoilerController.usr.pump_failure_acknowledgement_3_a_0) (= BoilerController.res.abs_38_a_0 BoilerController.usr.pump_repaired_3_a_0) (= BoilerController.res.abs_39_a_0 BoilerController.usr.pump_control_failure_acknowledgement_3_a_0) (= BoilerController.res.abs_40_a_0 BoilerController.usr.pump_control_repaired_3_a_0) (= BoilerController.impl.usr.pump_status_3_a_0 0) (let ((X18 BoilerController.res.abs_67_a_0)) (and (= BoilerController.impl.usr.v_a_0 BoilerController.usr.steam_a_0) (let ((X19 BoilerController.res.abs_58_a_0)) (and (= BoilerController.impl.usr.pump_defect_1_a_0 0) (let ((X20 BoilerController.res.abs_22_a_0)) (and (= BoilerController.impl.usr.pump_defect_2_a_0 0) (let ((X21 BoilerController.res.abs_33_a_0)) (and (= BoilerController.impl.usr.pump_defect_3_a_0 0) (let ((X22 BoilerController.res.abs_44_a_0)) (and (= BoilerController.impl.usr.pump_control_defect_0_a_0 0) (let ((X23 BoilerController.res.abs_12_a_0)) (and (= BoilerController.impl.usr.pump_control_defect_1_a_0 0) (let ((X24 BoilerController.res.abs_23_a_0)) (and (= BoilerController.impl.usr.pump_control_defect_2_a_0 0) (let ((X25 BoilerController.res.abs_34_a_0)) (and (= BoilerController.impl.usr.pump_control_defect_3_a_0 0) (let ((X26 BoilerController.res.abs_45_a_0)) (let ((X27 BoilerController.res.abs_69_a_0)) (and (= BoilerController.usr.mode_a_0 1) (let ((X28 BoilerController.res.abs_72_a_0)) (and (= BoilerController.res.abs_3_a_0 BoilerController.impl.usr.pump_status_0_a_0) (let ((X29 BoilerController.res.abs_73_a_0)) (and (= BoilerController.usr.open_pump_0_a_0 X29) (= BoilerController.res.abs_14_a_0 BoilerController.impl.usr.pump_status_1_a_0) (= BoilerController.res.abs_25_a_0 BoilerController.impl.usr.pump_status_2_a_0) (= BoilerController.res.abs_36_a_0 BoilerController.impl.usr.pump_status_3_a_0) (let ((X30 BoilerController.res.abs_74_a_0)) (and (= BoilerController.usr.open_pump_1_a_0 X30) (let ((X31 BoilerController.res.abs_75_a_0)) (and (= BoilerController.usr.open_pump_2_a_0 X31) (let ((X32 BoilerController.res.abs_76_a_0)) (and (= BoilerController.usr.open_pump_3_a_0 X32) (let ((X33 BoilerController.res.abs_77_a_0)) (and (= BoilerController.usr.close_pump_0_a_0 X33) (let ((X34 BoilerController.res.abs_78_a_0)) (and (= BoilerController.usr.close_pump_1_a_0 X34) (let ((X35 BoilerController.res.abs_79_a_0)) (and (= BoilerController.usr.close_pump_2_a_0 X35) (let ((X36 BoilerController.res.abs_80_a_0)) (and (= BoilerController.usr.close_pump_3_a_0 X36) (let ((X37 BoilerController.res.abs_81_a_0)) (and (= BoilerController.usr.pump_failure_detection_0_a_0 X37) (let ((X38 BoilerController.res.abs_82_a_0)) (and (= BoilerController.usr.pump_failure_detection_1_a_0 X38) (let ((X39 BoilerController.res.abs_83_a_0)) (and (= BoilerController.usr.pump_failure_detection_2_a_0 X39) (let ((X40 BoilerController.res.abs_84_a_0)) (and (= BoilerController.usr.pump_failure_detection_3_a_0 X40) (let ((X41 BoilerController.res.abs_89_a_0)) (and (= BoilerController.usr.pump_control_failure_detection_0_a_0 X41) (let ((X42 BoilerController.res.abs_90_a_0)) (and (= BoilerController.usr.pump_control_failure_detection_1_a_0 X42) (let ((X43 BoilerController.res.abs_91_a_0)) (and (= BoilerController.usr.pump_control_failure_detection_2_a_0 X43) (let ((X44 BoilerController.res.abs_92_a_0)) (and (= BoilerController.usr.pump_control_failure_detection_3_a_0 X44) (= BoilerController.usr.level_failure_detection_a_0 false) (let ((X45 BoilerController.res.abs_97_a_0)) (and (= BoilerController.usr.steam_outcome_failure_detection_a_0 false) (let ((X46 BoilerController.res.abs_99_a_0)) (let ((X47 BoilerController.res.abs_85_a_0)) (and (= BoilerController.usr.pump_repaired_acknowledgement_0_a_0 X47) (let ((X48 BoilerController.res.abs_86_a_0)) (and (= BoilerController.usr.pump_repaired_acknowledgement_1_a_0 X48) (let ((X49 BoilerController.res.abs_87_a_0)) (and (= BoilerController.usr.pump_repaired_acknowledgement_2_a_0 X49) (let ((X50 BoilerController.res.abs_88_a_0)) (and (= BoilerController.usr.pump_repaired_acknowledgement_3_a_0 X50) (let ((X51 BoilerController.res.abs_93_a_0)) (and (= BoilerController.usr.pump_control_repaired_acknowledgement_0_a_0 X51) (let ((X52 BoilerController.res.abs_94_a_0)) (and (= BoilerController.usr.pump_control_repaired_acknowledgement_1_a_0 X52) (let ((X53 BoilerController.res.abs_95_a_0)) (and (= BoilerController.usr.pump_control_repaired_acknowledgement_2_a_0 X53) (let ((X54 BoilerController.res.abs_96_a_0)) (and (= BoilerController.usr.pump_control_repaired_acknowledgement_3_a_0 X54) (= BoilerController.usr.level_repaired_acknowledgement_a_0 false) (let ((X55 BoilerController.res.abs_98_a_0)) (and (= BoilerController.usr.steam_outcome_repaired_acknowledgement_a_0 false) (let ((X56 BoilerController.res.abs_100_a_0)) (and (__node_init_ControlOutput_0 BoilerController.impl.usr.op_mode_a_0 BoilerController.res.abs_49_a_0 BoilerController.usr.valve_a_0 BoilerController.res.abs_71_a_0 BoilerController.res.abs_72_a_0 BoilerController.res.inst_176_a_0 BoilerController.res.inst_175_a_0 BoilerController.res.inst_174_a_0) (__node_init_ControlMode_0 BoilerController.usr.steam_boiler_waiting_a_0 BoilerController.usr.physical_units_ready_a_0 BoilerController.impl.usr.stop_request_a_0 BoilerController.res.abs_50_a_0 BoilerController.res.abs_51_a_0 BoilerController.res.abs_52_a_0 BoilerController.impl.usr.pump_defect_0_a_0 BoilerController.impl.usr.pump_defect_1_a_0 BoilerController.impl.usr.pump_defect_2_a_0 BoilerController.impl.usr.pump_defect_3_a_0 BoilerController.impl.usr.pump_control_defect_0_a_0 BoilerController.impl.usr.pump_control_defect_1_a_0 BoilerController.impl.usr.pump_control_defect_2_a_0 BoilerController.impl.usr.pump_control_defect_3_a_0 BoilerController.impl.usr.q_a_0 BoilerController.res.abs_9_a_0 BoilerController.res.abs_20_a_0 BoilerController.res.abs_31_a_0 BoilerController.res.abs_42_a_0 BoilerController.res.nondet_24 BoilerController.res.abs_68_a_0 BoilerController.res.inst_173_a_0 BoilerController.res.inst_172_a_0 BoilerController.res.inst_171_a_0 BoilerController.res.inst_170_a_0 BoilerController.res.inst_169_a_0 BoilerController.res.inst_168_a_0 BoilerController.res.inst_167_a_0 BoilerController.res.inst_166_a_0 BoilerController.res.inst_165_a_0 BoilerController.res.inst_164_a_0 BoilerController.res.inst_163_a_0 BoilerController.res.inst_162_a_0 BoilerController.res.inst_161_a_0 BoilerController.res.inst_160_a_0 BoilerController.res.inst_159_a_0 BoilerController.res.inst_158_a_0 BoilerController.res.inst_157_a_0 BoilerController.res.inst_156_a_0 BoilerController.res.inst_155_a_0 BoilerController.res.inst_154_a_0 BoilerController.res.inst_153_a_0 BoilerController.res.inst_152_a_0 BoilerController.res.inst_151_a_0 BoilerController.res.inst_150_a_0 BoilerController.res.inst_149_a_0 BoilerController.res.inst_148_a_0 BoilerController.res.inst_147_a_0 BoilerController.res.inst_146_a_0 BoilerController.res.inst_145_a_0 BoilerController.res.inst_144_a_0 BoilerController.res.inst_143_a_0 BoilerController.res.inst_142_a_0 BoilerController.res.inst_141_a_0 BoilerController.res.inst_140_a_0 BoilerController.res.inst_139_a_0 BoilerController.res.inst_138_a_0 BoilerController.res.inst_137_a_0 BoilerController.res.inst_136_a_0 BoilerController.res.inst_135_a_0 BoilerController.res.inst_134_a_0 BoilerController.res.inst_133_a_0 BoilerController.res.inst_132_a_0 BoilerController.res.inst_131_a_0 BoilerController.res.inst_130_a_0 BoilerController.res.inst_129_a_0 BoilerController.res.inst_128_a_0 BoilerController.res.inst_127_a_0 BoilerController.res.inst_126_a_0 BoilerController.res.inst_125_a_0 BoilerController.res.inst_124_a_0 BoilerController.res.inst_123_a_0 BoilerController.res.inst_122_a_0) (__node_init_Operator_0 BoilerController.usr.stop_a_0 BoilerController.res.abs_0_a_0 BoilerController.res.inst_121_a_0 BoilerController.res.inst_120_a_0) (__node_init_LevelDefect_0 BoilerController.usr.level_failure_acknowledgement_a_0 BoilerController.usr.level_repaired_a_0 BoilerController.usr.level_a_0 BoilerController.res.nondet_0 BoilerController.res.abs_1_a_0 BoilerController.res.inst_119_a_0 BoilerController.res.inst_118_a_0 BoilerController.res.inst_117_a_0 BoilerController.res.inst_116_a_0 BoilerController.res.inst_115_a_0 BoilerController.res.inst_114_a_0) (__node_init_SteamDefect_0 BoilerController.usr.steam_failure_acknowledgement_a_0 BoilerController.usr.steam_repaired_a_0 BoilerController.usr.steam_a_0 BoilerController.res.nondet_1 BoilerController.res.abs_2_a_0 BoilerController.res.inst_113_a_0 BoilerController.res.inst_112_a_0 BoilerController.res.inst_111_a_0 BoilerController.res.inst_110_a_0 BoilerController.res.inst_109_a_0 BoilerController.res.inst_108_a_0) (__node_init_PumpDefect_0 BoilerController.res.abs_4_a_0 BoilerController.res.abs_5_a_0 BoilerController.res.abs_6_a_0 BoilerController.res.abs_7_a_0 BoilerController.res.abs_8_a_0 BoilerController.res.abs_9_a_0 BoilerController.res.abs_10_a_0 BoilerController.res.nondet_4 BoilerController.res.nondet_3 BoilerController.res.abs_11_a_0 BoilerController.res.abs_12_a_0 BoilerController.res.abs_13_a_0 BoilerController.res.inst_107_a_0 BoilerController.res.inst_106_a_0 BoilerController.res.inst_105_a_0 BoilerController.res.inst_104_a_0 BoilerController.res.inst_103_a_0 BoilerController.res.inst_102_a_0 BoilerController.res.inst_101_a_0 BoilerController.res.inst_100_a_0 BoilerController.res.inst_99_a_0 BoilerController.res.inst_98_a_0 BoilerController.res.inst_97_a_0 BoilerController.res.inst_96_a_0 BoilerController.res.inst_95_a_0) (__node_init_PumpsStatus_0 BoilerController.impl.usr.n_pumps_a_0 BoilerController.impl.usr.pump_defect_0_a_0 BoilerController.impl.usr.pump_defect_1_a_0 BoilerController.impl.usr.pump_defect_2_a_0 BoilerController.impl.usr.pump_defect_3_a_0 BoilerController.res.abs_53_a_0 BoilerController.res.abs_54_a_0 BoilerController.res.abs_55_a_0 BoilerController.res.abs_56_a_0 BoilerController.res.nondet_23 BoilerController.res.nondet_22 BoilerController.res.nondet_21 BoilerController.res.nondet_20 BoilerController.res.nondet_19 BoilerController.res.nondet_18 BoilerController.res.nondet_17 BoilerController.res.nondet_16 BoilerController.res.abs_64_a_0 BoilerController.res.abs_65_a_0 BoilerController.res.abs_66_a_0 BoilerController.res.abs_67_a_0 BoilerController.res.inst_94_a_0 BoilerController.res.inst_93_a_0 BoilerController.res.inst_92_a_0 BoilerController.res.inst_91_a_0 BoilerController.res.inst_90_a_0 BoilerController.res.inst_89_a_0 BoilerController.res.inst_88_a_0 BoilerController.res.inst_87_a_0 BoilerController.res.inst_86_a_0 BoilerController.res.inst_85_a_0 BoilerController.res.inst_84_a_0 BoilerController.res.inst_83_a_0 BoilerController.res.inst_82_a_0 BoilerController.res.inst_81_a_0 BoilerController.res.inst_80_a_0 BoilerController.res.inst_79_a_0 BoilerController.res.inst_78_a_0 BoilerController.res.inst_77_a_0 BoilerController.res.inst_76_a_0 BoilerController.res.inst_75_a_0 BoilerController.res.inst_74_a_0 BoilerController.res.inst_73_a_0 BoilerController.res.inst_72_a_0 BoilerController.res.inst_71_a_0 BoilerController.res.inst_70_a_0 BoilerController.res.inst_69_a_0 BoilerController.res.inst_68_a_0 BoilerController.res.inst_67_a_0 BoilerController.res.inst_66_a_0 BoilerController.res.inst_65_a_0 BoilerController.res.inst_64_a_0 BoilerController.res.inst_63_a_0 BoilerController.res.inst_62_a_0 BoilerController.res.inst_61_a_0 BoilerController.res.inst_60_a_0 BoilerController.res.inst_59_a_0 BoilerController.res.inst_58_a_0 BoilerController.res.inst_57_a_0 BoilerController.res.inst_56_a_0 BoilerController.res.inst_55_a_0 BoilerController.res.inst_54_a_0 BoilerController.res.inst_53_a_0 BoilerController.res.inst_52_a_0 BoilerController.res.inst_51_a_0) (__node_init_PumpsDecision_0 BoilerController.impl.usr.q_a_0 BoilerController.impl.usr.v_a_0 BoilerController.res.nondet_15 BoilerController.res.abs_63_a_0 BoilerController.res.inst_50_a_0) (__node_init_Dynamics_0 BoilerController.res.abs_48_a_0 BoilerController.res.abs_49_a_0 BoilerController.res.abs_50_a_0 BoilerController.res.abs_51_a_0 BoilerController.res.abs_52_a_0 BoilerController.res.abs_53_a_0 BoilerController.res.abs_54_a_0 BoilerController.res.abs_55_a_0 BoilerController.res.abs_56_a_0 BoilerController.res.abs_57_a_0 BoilerController.res.abs_58_a_0 BoilerController.res.abs_59_a_0 BoilerController.res.abs_60_a_0 BoilerController.res.abs_61_a_0 BoilerController.res.abs_62_a_0 BoilerController.res.inst_49_a_0 BoilerController.res.inst_48_a_0 BoilerController.res.inst_47_a_0 BoilerController.res.inst_46_a_0 BoilerController.res.inst_45_a_0 BoilerController.res.inst_44_a_0 BoilerController.res.inst_43_a_0) (__node_init_Valve_0 BoilerController.impl.usr.op_mode_a_0 BoilerController.impl.usr.q_a_0 BoilerController.res.abs_69_a_0 BoilerController.res.abs_70_a_0 BoilerController.res.inst_42_a_0) (__node_init_PumpDefect_0 BoilerController.res.abs_15_a_0 BoilerController.res.abs_16_a_0 BoilerController.res.abs_17_a_0 BoilerController.res.abs_18_a_0 BoilerController.res.abs_19_a_0 BoilerController.res.abs_20_a_0 BoilerController.res.abs_21_a_0 BoilerController.res.nondet_7 BoilerController.res.nondet_6 BoilerController.res.abs_22_a_0 BoilerController.res.abs_23_a_0 BoilerController.res.abs_24_a_0 BoilerController.res.inst_41_a_0 BoilerController.res.inst_40_a_0 BoilerController.res.inst_39_a_0 BoilerController.res.inst_38_a_0 BoilerController.res.inst_37_a_0 BoilerController.res.inst_36_a_0 BoilerController.res.inst_35_a_0 BoilerController.res.inst_34_a_0 BoilerController.res.inst_33_a_0 BoilerController.res.inst_32_a_0 BoilerController.res.inst_31_a_0 BoilerController.res.inst_30_a_0 BoilerController.res.inst_29_a_0) (__node_init_PumpDefect_0 BoilerController.res.abs_26_a_0 BoilerController.res.abs_27_a_0 BoilerController.res.abs_28_a_0 BoilerController.res.abs_29_a_0 BoilerController.res.abs_30_a_0 BoilerController.res.abs_31_a_0 BoilerController.res.abs_32_a_0 BoilerController.res.nondet_10 BoilerController.res.nondet_9 BoilerController.res.abs_33_a_0 BoilerController.res.abs_34_a_0 BoilerController.res.abs_35_a_0 BoilerController.res.inst_28_a_0 BoilerController.res.inst_27_a_0 BoilerController.res.inst_26_a_0 BoilerController.res.inst_25_a_0 BoilerController.res.inst_24_a_0 BoilerController.res.inst_23_a_0 BoilerController.res.inst_22_a_0 BoilerController.res.inst_21_a_0 BoilerController.res.inst_20_a_0 BoilerController.res.inst_19_a_0 BoilerController.res.inst_18_a_0 BoilerController.res.inst_17_a_0 BoilerController.res.inst_16_a_0) (__node_init_PumpDefect_0 BoilerController.res.abs_37_a_0 BoilerController.res.abs_38_a_0 BoilerController.res.abs_39_a_0 BoilerController.res.abs_40_a_0 BoilerController.res.abs_41_a_0 BoilerController.res.abs_42_a_0 BoilerController.res.abs_43_a_0 BoilerController.res.nondet_13 BoilerController.res.nondet_12 BoilerController.res.abs_44_a_0 BoilerController.res.abs_45_a_0 BoilerController.res.abs_46_a_0 BoilerController.res.inst_15_a_0 BoilerController.res.inst_14_a_0 BoilerController.res.inst_13_a_0 BoilerController.res.inst_12_a_0 BoilerController.res.inst_11_a_0 BoilerController.res.inst_10_a_0 BoilerController.res.inst_9_a_0 BoilerController.res.inst_8_a_0 BoilerController.res.inst_7_a_0 BoilerController.res.inst_6_a_0 BoilerController.res.inst_5_a_0 BoilerController.res.inst_4_a_0 BoilerController.res.inst_3_a_0) (__node_init_PumpsOutput_0 BoilerController.impl.usr.op_mode_a_0 BoilerController.res.abs_3_a_0 BoilerController.res.abs_14_a_0 BoilerController.res.abs_25_a_0 BoilerController.res.abs_36_a_0 BoilerController.impl.usr.pump_defect_0_a_0 BoilerController.impl.usr.pump_defect_1_a_0 BoilerController.impl.usr.pump_defect_2_a_0 BoilerController.impl.usr.pump_defect_3_a_0 BoilerController.impl.usr.pump_control_defect_0_a_0 BoilerController.impl.usr.pump_control_defect_1_a_0 BoilerController.impl.usr.pump_control_defect_2_a_0 BoilerController.impl.usr.pump_control_defect_3_a_0 BoilerController.res.abs_5_a_0 BoilerController.res.abs_16_a_0 BoilerController.res.abs_27_a_0 BoilerController.res.abs_38_a_0 BoilerController.res.abs_7_a_0 BoilerController.res.abs_18_a_0 BoilerController.res.abs_29_a_0 BoilerController.res.abs_40_a_0 BoilerController.res.nondet_32 BoilerController.res.nondet_31 BoilerController.res.nondet_30 BoilerController.res.nondet_29 BoilerController.res.nondet_28 BoilerController.res.nondet_27 BoilerController.res.nondet_26 BoilerController.res.nondet_25 BoilerController.res.abs_73_a_0 BoilerController.res.abs_74_a_0 BoilerController.res.abs_75_a_0 BoilerController.res.abs_76_a_0 BoilerController.res.abs_77_a_0 BoilerController.res.abs_78_a_0 BoilerController.res.abs_79_a_0 BoilerController.res.abs_80_a_0 BoilerController.res.abs_81_a_0 BoilerController.res.abs_82_a_0 BoilerController.res.abs_83_a_0 BoilerController.res.abs_84_a_0 BoilerController.res.abs_85_a_0 BoilerController.res.abs_86_a_0 BoilerController.res.abs_87_a_0 BoilerController.res.abs_88_a_0 BoilerController.res.abs_89_a_0 BoilerController.res.abs_90_a_0 BoilerController.res.abs_91_a_0 BoilerController.res.abs_92_a_0 BoilerController.res.abs_93_a_0 BoilerController.res.abs_94_a_0 BoilerController.res.abs_95_a_0 BoilerController.res.abs_96_a_0 BoilerController.res.inst_2_a_0) (__node_init_LevelOutput_0 BoilerController.impl.usr.op_mode_a_0 BoilerController.res.abs_51_a_0 BoilerController.usr.level_repaired_a_0 BoilerController.res.abs_97_a_0 BoilerController.res.abs_98_a_0 BoilerController.res.inst_1_a_0) (__node_init_SteamOutput_0 BoilerController.impl.usr.op_mode_a_0 BoilerController.res.abs_52_a_0 BoilerController.usr.steam_repaired_a_0 BoilerController.res.abs_99_a_0 BoilerController.res.abs_100_a_0 BoilerController.res.inst_0_a_0) (<= 1 BoilerController.impl.usr.op_mode_a_0 6) (<= 1 BoilerController.res.abs_68_a_0 6) (<= 0 X2 2) (<= 0 BoilerController.res.abs_1_a_0 2) (<= 0 X3 2) (<= 0 BoilerController.res.abs_2_a_0 2) (<= 0 X4 2) (<= 0 BoilerController.res.abs_11_a_0 2) (<= 0 X20 2) (<= 0 BoilerController.res.abs_22_a_0 2) (<= 0 X21 2) (<= 0 BoilerController.res.abs_33_a_0 2) (<= 0 X22 2) (<= 0 BoilerController.res.abs_44_a_0 2) (<= 0 X23 2) (<= 0 BoilerController.res.abs_12_a_0 2) (<= 0 X24 2) (<= 0 BoilerController.res.abs_23_a_0 2) (<= 0 X25 2) (<= 0 BoilerController.res.abs_34_a_0 2) (<= 0 X26 2) (<= 0 BoilerController.res.abs_45_a_0 2) BoilerController.res.init_flag_a_0)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) +(define-fun __node_trans_BoilerController_0 ((BoilerController.usr.stop_a_1 Bool) (BoilerController.usr.steam_boiler_waiting_a_1 Bool) (BoilerController.usr.physical_units_ready_a_1 Bool) (BoilerController.usr.level_a_1 Int) (BoilerController.usr.steam_a_1 Int) (BoilerController.usr.pump_state_0_a_1 Int) (BoilerController.usr.pump_state_1_a_1 Int) (BoilerController.usr.pump_state_2_a_1 Int) (BoilerController.usr.pump_state_3_a_1 Int) (BoilerController.usr.pump_control_state_0_a_1 Bool) (BoilerController.usr.pump_control_state_1_a_1 Bool) (BoilerController.usr.pump_control_state_2_a_1 Bool) (BoilerController.usr.pump_control_state_3_a_1 Bool) (BoilerController.usr.pump_repaired_0_a_1 Bool) (BoilerController.usr.pump_repaired_1_a_1 Bool) (BoilerController.usr.pump_repaired_2_a_1 Bool) (BoilerController.usr.pump_repaired_3_a_1 Bool) (BoilerController.usr.pump_control_repaired_0_a_1 Bool) (BoilerController.usr.pump_control_repaired_1_a_1 Bool) (BoilerController.usr.pump_control_repaired_2_a_1 Bool) (BoilerController.usr.pump_control_repaired_3_a_1 Bool) (BoilerController.usr.level_repaired_a_1 Bool) (BoilerController.usr.steam_repaired_a_1 Bool) (BoilerController.usr.pump_failure_acknowledgement_0_a_1 Bool) (BoilerController.usr.pump_failure_acknowledgement_1_a_1 Bool) (BoilerController.usr.pump_failure_acknowledgement_2_a_1 Bool) (BoilerController.usr.pump_failure_acknowledgement_3_a_1 Bool) (BoilerController.usr.pump_control_failure_acknowledgement_0_a_1 Bool) (BoilerController.usr.pump_control_failure_acknowledgement_1_a_1 Bool) (BoilerController.usr.pump_control_failure_acknowledgement_2_a_1 Bool) (BoilerController.usr.pump_control_failure_acknowledgement_3_a_1 Bool) (BoilerController.usr.level_failure_acknowledgement_a_1 Bool) (BoilerController.usr.steam_failure_acknowledgement_a_1 Bool) (BoilerController.res.nondet_32 Int) (BoilerController.res.nondet_31 Int) (BoilerController.res.nondet_30 Int) (BoilerController.res.nondet_29 Int) (BoilerController.res.nondet_28 Int) (BoilerController.res.nondet_27 Int) (BoilerController.res.nondet_26 Int) (BoilerController.res.nondet_25 Int) (BoilerController.res.nondet_24 Int) (BoilerController.res.nondet_23 Int) (BoilerController.res.nondet_22 Int) (BoilerController.res.nondet_21 Int) (BoilerController.res.nondet_20 Int) (BoilerController.res.nondet_19 Int) (BoilerController.res.nondet_18 Int) (BoilerController.res.nondet_17 Int) (BoilerController.res.nondet_16 Int) (BoilerController.res.nondet_15 Int) (BoilerController.res.nondet_14 Int) (BoilerController.res.nondet_13 Int) (BoilerController.res.nondet_12 Int) (BoilerController.res.nondet_11 Int) (BoilerController.res.nondet_10 Int) (BoilerController.res.nondet_9 Int) (BoilerController.res.nondet_8 Int) (BoilerController.res.nondet_7 Int) (BoilerController.res.nondet_6 Int) (BoilerController.res.nondet_5 Int) (BoilerController.res.nondet_4 Int) (BoilerController.res.nondet_3 Int) (BoilerController.res.nondet_2 Int) (BoilerController.res.nondet_1 Int) (BoilerController.res.nondet_0 Int) (BoilerController.usr.program_ready_a_1 Bool) (BoilerController.usr.mode_a_1 Int) (BoilerController.usr.valve_a_1 Bool) (BoilerController.usr.open_pump_0_a_1 Bool) (BoilerController.usr.open_pump_1_a_1 Bool) (BoilerController.usr.open_pump_2_a_1 Bool) (BoilerController.usr.open_pump_3_a_1 Bool) (BoilerController.usr.close_pump_0_a_1 Bool) (BoilerController.usr.close_pump_1_a_1 Bool) (BoilerController.usr.close_pump_2_a_1 Bool) (BoilerController.usr.close_pump_3_a_1 Bool) (BoilerController.usr.pump_failure_detection_0_a_1 Bool) (BoilerController.usr.pump_failure_detection_1_a_1 Bool) (BoilerController.usr.pump_failure_detection_2_a_1 Bool) (BoilerController.usr.pump_failure_detection_3_a_1 Bool) (BoilerController.usr.pump_control_failure_detection_0_a_1 Bool) (BoilerController.usr.pump_control_failure_detection_1_a_1 Bool) (BoilerController.usr.pump_control_failure_detection_2_a_1 Bool) (BoilerController.usr.pump_control_failure_detection_3_a_1 Bool) (BoilerController.usr.level_failure_detection_a_1 Bool) (BoilerController.usr.steam_outcome_failure_detection_a_1 Bool) (BoilerController.usr.pump_repaired_acknowledgement_0_a_1 Bool) (BoilerController.usr.pump_repaired_acknowledgement_1_a_1 Bool) (BoilerController.usr.pump_repaired_acknowledgement_2_a_1 Bool) (BoilerController.usr.pump_repaired_acknowledgement_3_a_1 Bool) (BoilerController.usr.pump_control_repaired_acknowledgement_0_a_1 Bool) (BoilerController.usr.pump_control_repaired_acknowledgement_1_a_1 Bool) (BoilerController.usr.pump_control_repaired_acknowledgement_2_a_1 Bool) (BoilerController.usr.pump_control_repaired_acknowledgement_3_a_1 Bool) (BoilerController.usr.level_repaired_acknowledgement_a_1 Bool) (BoilerController.usr.steam_outcome_repaired_acknowledgement_a_1 Bool) (BoilerController.res.init_flag_a_1 Bool) (BoilerController.impl.usr.stop_request_a_1 Bool) (BoilerController.impl.usr.op_mode_a_1 Int) (BoilerController.impl.usr.q_a_1 Int) (BoilerController.impl.usr.v_a_1 Int) (BoilerController.impl.usr.valve_state_a_1 Int) (BoilerController.impl.usr.n_pumps_a_1 Int) (BoilerController.impl.usr.pump_status_0_a_1 Int) (BoilerController.impl.usr.pump_status_1_a_1 Int) (BoilerController.impl.usr.pump_status_2_a_1 Int) (BoilerController.impl.usr.pump_status_3_a_1 Int) (BoilerController.impl.usr.pump_defect_0_a_1 Int) (BoilerController.impl.usr.pump_defect_1_a_1 Int) (BoilerController.impl.usr.pump_defect_2_a_1 Int) (BoilerController.impl.usr.pump_defect_3_a_1 Int) (BoilerController.impl.usr.pump_control_defect_0_a_1 Int) (BoilerController.impl.usr.pump_control_defect_1_a_1 Int) (BoilerController.impl.usr.pump_control_defect_2_a_1 Int) (BoilerController.impl.usr.pump_control_defect_3_a_1 Int) (BoilerController.res.abs_0_a_1 Bool) (BoilerController.res.abs_1_a_1 Int) (BoilerController.res.abs_2_a_1 Int) (BoilerController.res.abs_3_a_1 Int) (BoilerController.res.abs_4_a_1 Bool) (BoilerController.res.abs_5_a_1 Bool) (BoilerController.res.abs_6_a_1 Bool) (BoilerController.res.abs_7_a_1 Bool) (BoilerController.res.abs_8_a_1 Int) (BoilerController.res.abs_9_a_1 Int) (BoilerController.res.abs_10_a_1 Bool) (BoilerController.res.abs_11_a_1 Int) (BoilerController.res.abs_12_a_1 Int) (BoilerController.res.abs_13_a_1 Bool) (BoilerController.res.abs_14_a_1 Int) (BoilerController.res.abs_15_a_1 Bool) (BoilerController.res.abs_16_a_1 Bool) (BoilerController.res.abs_17_a_1 Bool) (BoilerController.res.abs_18_a_1 Bool) (BoilerController.res.abs_19_a_1 Int) (BoilerController.res.abs_20_a_1 Int) (BoilerController.res.abs_21_a_1 Bool) (BoilerController.res.abs_22_a_1 Int) (BoilerController.res.abs_23_a_1 Int) (BoilerController.res.abs_24_a_1 Bool) (BoilerController.res.abs_25_a_1 Int) (BoilerController.res.abs_26_a_1 Bool) (BoilerController.res.abs_27_a_1 Bool) (BoilerController.res.abs_28_a_1 Bool) (BoilerController.res.abs_29_a_1 Bool) (BoilerController.res.abs_30_a_1 Int) (BoilerController.res.abs_31_a_1 Int) (BoilerController.res.abs_32_a_1 Bool) (BoilerController.res.abs_33_a_1 Int) (BoilerController.res.abs_34_a_1 Int) (BoilerController.res.abs_35_a_1 Bool) (BoilerController.res.abs_36_a_1 Int) (BoilerController.res.abs_37_a_1 Bool) (BoilerController.res.abs_38_a_1 Bool) (BoilerController.res.abs_39_a_1 Bool) (BoilerController.res.abs_40_a_1 Bool) (BoilerController.res.abs_41_a_1 Int) (BoilerController.res.abs_42_a_1 Int) (BoilerController.res.abs_43_a_1 Bool) (BoilerController.res.abs_44_a_1 Int) (BoilerController.res.abs_45_a_1 Int) (BoilerController.res.abs_46_a_1 Bool) (BoilerController.res.abs_48_a_1 Int) (BoilerController.res.abs_49_a_1 Int) (BoilerController.res.abs_50_a_1 Int) (BoilerController.res.abs_51_a_1 Int) (BoilerController.res.abs_52_a_1 Int) (BoilerController.res.abs_53_a_1 Bool) (BoilerController.res.abs_54_a_1 Bool) (BoilerController.res.abs_55_a_1 Bool) (BoilerController.res.abs_56_a_1 Bool) (BoilerController.res.abs_57_a_1 Int) (BoilerController.res.abs_58_a_1 Int) (BoilerController.res.abs_59_a_1 Int) (BoilerController.res.abs_60_a_1 Int) (BoilerController.res.abs_61_a_1 Int) (BoilerController.res.abs_62_a_1 Int) (BoilerController.res.abs_63_a_1 Int) (BoilerController.res.abs_64_a_1 Int) (BoilerController.res.abs_65_a_1 Int) (BoilerController.res.abs_66_a_1 Int) (BoilerController.res.abs_67_a_1 Int) (BoilerController.res.abs_68_a_1 Int) (BoilerController.res.abs_69_a_1 Bool) (BoilerController.res.abs_70_a_1 Int) (BoilerController.res.abs_71_a_1 Bool) (BoilerController.res.abs_72_a_1 Int) (BoilerController.res.abs_73_a_1 Bool) (BoilerController.res.abs_74_a_1 Bool) (BoilerController.res.abs_75_a_1 Bool) (BoilerController.res.abs_76_a_1 Bool) (BoilerController.res.abs_77_a_1 Bool) (BoilerController.res.abs_78_a_1 Bool) (BoilerController.res.abs_79_a_1 Bool) (BoilerController.res.abs_80_a_1 Bool) (BoilerController.res.abs_81_a_1 Bool) (BoilerController.res.abs_82_a_1 Bool) (BoilerController.res.abs_83_a_1 Bool) (BoilerController.res.abs_84_a_1 Bool) (BoilerController.res.abs_85_a_1 Bool) (BoilerController.res.abs_86_a_1 Bool) (BoilerController.res.abs_87_a_1 Bool) (BoilerController.res.abs_88_a_1 Bool) (BoilerController.res.abs_89_a_1 Bool) (BoilerController.res.abs_90_a_1 Bool) (BoilerController.res.abs_91_a_1 Bool) (BoilerController.res.abs_92_a_1 Bool) (BoilerController.res.abs_93_a_1 Bool) (BoilerController.res.abs_94_a_1 Bool) (BoilerController.res.abs_95_a_1 Bool) (BoilerController.res.abs_96_a_1 Bool) (BoilerController.res.abs_97_a_1 Bool) (BoilerController.res.abs_98_a_1 Bool) (BoilerController.res.abs_99_a_1 Bool) (BoilerController.res.abs_100_a_1 Bool) (BoilerController.res.inst_176_a_1 Bool) (BoilerController.res.inst_175_a_1 Bool) (BoilerController.res.inst_174_a_1 Bool) (BoilerController.res.inst_173_a_1 Bool) (BoilerController.res.inst_172_a_1 Int) (BoilerController.res.inst_171_a_1 Bool) (BoilerController.res.inst_170_a_1 Bool) (BoilerController.res.inst_169_a_1 Bool) (BoilerController.res.inst_168_a_1 Bool) (BoilerController.res.inst_167_a_1 Bool) (BoilerController.res.inst_166_a_1 Bool) (BoilerController.res.inst_165_a_1 Bool) (BoilerController.res.inst_164_a_1 Bool) (BoilerController.res.inst_163_a_1 Bool) (BoilerController.res.inst_162_a_1 Bool) (BoilerController.res.inst_161_a_1 Bool) (BoilerController.res.inst_160_a_1 Bool) (BoilerController.res.inst_159_a_1 Bool) (BoilerController.res.inst_158_a_1 Bool) (BoilerController.res.inst_157_a_1 Bool) (BoilerController.res.inst_156_a_1 Bool) (BoilerController.res.inst_155_a_1 Bool) (BoilerController.res.inst_154_a_1 Bool) (BoilerController.res.inst_153_a_1 Bool) (BoilerController.res.inst_152_a_1 Bool) (BoilerController.res.inst_151_a_1 Bool) (BoilerController.res.inst_150_a_1 Bool) (BoilerController.res.inst_149_a_1 Bool) (BoilerController.res.inst_148_a_1 Bool) (BoilerController.res.inst_147_a_1 Bool) (BoilerController.res.inst_146_a_1 Bool) (BoilerController.res.inst_145_a_1 Bool) (BoilerController.res.inst_144_a_1 Bool) (BoilerController.res.inst_143_a_1 Bool) (BoilerController.res.inst_142_a_1 Bool) (BoilerController.res.inst_141_a_1 Bool) (BoilerController.res.inst_140_a_1 Bool) (BoilerController.res.inst_139_a_1 Bool) (BoilerController.res.inst_138_a_1 Bool) (BoilerController.res.inst_137_a_1 Bool) (BoilerController.res.inst_136_a_1 Bool) (BoilerController.res.inst_135_a_1 Bool) (BoilerController.res.inst_134_a_1 Bool) (BoilerController.res.inst_133_a_1 Bool) (BoilerController.res.inst_132_a_1 Bool) (BoilerController.res.inst_131_a_1 Bool) (BoilerController.res.inst_130_a_1 Bool) (BoilerController.res.inst_129_a_1 Bool) (BoilerController.res.inst_128_a_1 Bool) (BoilerController.res.inst_127_a_1 Bool) (BoilerController.res.inst_126_a_1 Bool) (BoilerController.res.inst_125_a_1 Bool) (BoilerController.res.inst_124_a_1 Bool) (BoilerController.res.inst_123_a_1 Bool) (BoilerController.res.inst_122_a_1 Bool) (BoilerController.res.inst_121_a_1 Bool) (BoilerController.res.inst_120_a_1 Int) (BoilerController.res.inst_119_a_1 Bool) (BoilerController.res.inst_118_a_1 Bool) (BoilerController.res.inst_117_a_1 Int) (BoilerController.res.inst_116_a_1 Int) (BoilerController.res.inst_115_a_1 Bool) (BoilerController.res.inst_114_a_1 Bool) (BoilerController.res.inst_113_a_1 Bool) (BoilerController.res.inst_112_a_1 Bool) (BoilerController.res.inst_111_a_1 Int) (BoilerController.res.inst_110_a_1 Int) (BoilerController.res.inst_109_a_1 Bool) (BoilerController.res.inst_108_a_1 Bool) (BoilerController.res.inst_107_a_1 Bool) (BoilerController.res.inst_106_a_1 Bool) (BoilerController.res.inst_105_a_1 Bool) (BoilerController.res.inst_104_a_1 Bool) (BoilerController.res.inst_103_a_1 Bool) (BoilerController.res.inst_102_a_1 Bool) (BoilerController.res.inst_101_a_1 Int) (BoilerController.res.inst_100_a_1 Int) (BoilerController.res.inst_99_a_1 Int) (BoilerController.res.inst_98_a_1 Int) (BoilerController.res.inst_97_a_1 Bool) (BoilerController.res.inst_96_a_1 Bool) (BoilerController.res.inst_95_a_1 Bool) (BoilerController.res.inst_94_a_1 Bool) (BoilerController.res.inst_93_a_1 Int) (BoilerController.res.inst_92_a_1 Int) (BoilerController.res.inst_91_a_1 Int) (BoilerController.res.inst_90_a_1 Int) (BoilerController.res.inst_89_a_1 Int) (BoilerController.res.inst_88_a_1 Int) (BoilerController.res.inst_87_a_1 Int) (BoilerController.res.inst_86_a_1 Int) (BoilerController.res.inst_85_a_1 Int) (BoilerController.res.inst_84_a_1 Int) (BoilerController.res.inst_83_a_1 Bool) (BoilerController.res.inst_82_a_1 Bool) (BoilerController.res.inst_81_a_1 Bool) (BoilerController.res.inst_80_a_1 Bool) (BoilerController.res.inst_79_a_1 Int) (BoilerController.res.inst_78_a_1 Int) (BoilerController.res.inst_77_a_1 Int) (BoilerController.res.inst_76_a_1 Int) (BoilerController.res.inst_75_a_1 Bool) (BoilerController.res.inst_74_a_1 Int) (BoilerController.res.inst_73_a_1 Bool) (BoilerController.res.inst_72_a_1 Int) (BoilerController.res.inst_71_a_1 Bool) (BoilerController.res.inst_70_a_1 Int) (BoilerController.res.inst_69_a_1 Bool) (BoilerController.res.inst_68_a_1 Int) (BoilerController.res.inst_67_a_1 Bool) (BoilerController.res.inst_66_a_1 Int) (BoilerController.res.inst_65_a_1 Bool) (BoilerController.res.inst_64_a_1 Int) (BoilerController.res.inst_63_a_1 Bool) (BoilerController.res.inst_62_a_1 Int) (BoilerController.res.inst_61_a_1 Bool) (BoilerController.res.inst_60_a_1 Int) (BoilerController.res.inst_59_a_1 Bool) (BoilerController.res.inst_58_a_1 Bool) (BoilerController.res.inst_57_a_1 Bool) (BoilerController.res.inst_56_a_1 Bool) (BoilerController.res.inst_55_a_1 Bool) (BoilerController.res.inst_54_a_1 Bool) (BoilerController.res.inst_53_a_1 Bool) (BoilerController.res.inst_52_a_1 Bool) (BoilerController.res.inst_51_a_1 Bool) (BoilerController.res.inst_50_a_1 Bool) (BoilerController.res.inst_49_a_1 Bool) (BoilerController.res.inst_48_a_1 Bool) (BoilerController.res.inst_47_a_1 Int) (BoilerController.res.inst_46_a_1 Bool) (BoilerController.res.inst_45_a_1 Bool) (BoilerController.res.inst_44_a_1 Bool) (BoilerController.res.inst_43_a_1 Bool) (BoilerController.res.inst_42_a_1 Bool) (BoilerController.res.inst_41_a_1 Bool) (BoilerController.res.inst_40_a_1 Bool) (BoilerController.res.inst_39_a_1 Bool) (BoilerController.res.inst_38_a_1 Bool) (BoilerController.res.inst_37_a_1 Bool) (BoilerController.res.inst_36_a_1 Bool) (BoilerController.res.inst_35_a_1 Int) (BoilerController.res.inst_34_a_1 Int) (BoilerController.res.inst_33_a_1 Int) (BoilerController.res.inst_32_a_1 Int) (BoilerController.res.inst_31_a_1 Bool) (BoilerController.res.inst_30_a_1 Bool) (BoilerController.res.inst_29_a_1 Bool) (BoilerController.res.inst_28_a_1 Bool) (BoilerController.res.inst_27_a_1 Bool) (BoilerController.res.inst_26_a_1 Bool) (BoilerController.res.inst_25_a_1 Bool) (BoilerController.res.inst_24_a_1 Bool) (BoilerController.res.inst_23_a_1 Bool) (BoilerController.res.inst_22_a_1 Int) (BoilerController.res.inst_21_a_1 Int) (BoilerController.res.inst_20_a_1 Int) (BoilerController.res.inst_19_a_1 Int) (BoilerController.res.inst_18_a_1 Bool) (BoilerController.res.inst_17_a_1 Bool) (BoilerController.res.inst_16_a_1 Bool) (BoilerController.res.inst_15_a_1 Bool) (BoilerController.res.inst_14_a_1 Bool) (BoilerController.res.inst_13_a_1 Bool) (BoilerController.res.inst_12_a_1 Bool) (BoilerController.res.inst_11_a_1 Bool) (BoilerController.res.inst_10_a_1 Bool) (BoilerController.res.inst_9_a_1 Int) (BoilerController.res.inst_8_a_1 Int) (BoilerController.res.inst_7_a_1 Int) (BoilerController.res.inst_6_a_1 Int) (BoilerController.res.inst_5_a_1 Bool) (BoilerController.res.inst_4_a_1 Bool) (BoilerController.res.inst_3_a_1 Bool) (BoilerController.res.inst_2_a_1 Bool) (BoilerController.res.inst_1_a_1 Bool) (BoilerController.res.inst_0_a_1 Bool) (BoilerController.usr.stop_a_0 Bool) (BoilerController.usr.steam_boiler_waiting_a_0 Bool) (BoilerController.usr.physical_units_ready_a_0 Bool) (BoilerController.usr.level_a_0 Int) (BoilerController.usr.steam_a_0 Int) (BoilerController.usr.pump_state_0_a_0 Int) (BoilerController.usr.pump_state_1_a_0 Int) (BoilerController.usr.pump_state_2_a_0 Int) (BoilerController.usr.pump_state_3_a_0 Int) (BoilerController.usr.pump_control_state_0_a_0 Bool) (BoilerController.usr.pump_control_state_1_a_0 Bool) (BoilerController.usr.pump_control_state_2_a_0 Bool) (BoilerController.usr.pump_control_state_3_a_0 Bool) (BoilerController.usr.pump_repaired_0_a_0 Bool) (BoilerController.usr.pump_repaired_1_a_0 Bool) (BoilerController.usr.pump_repaired_2_a_0 Bool) (BoilerController.usr.pump_repaired_3_a_0 Bool) (BoilerController.usr.pump_control_repaired_0_a_0 Bool) (BoilerController.usr.pump_control_repaired_1_a_0 Bool) (BoilerController.usr.pump_control_repaired_2_a_0 Bool) (BoilerController.usr.pump_control_repaired_3_a_0 Bool) (BoilerController.usr.level_repaired_a_0 Bool) (BoilerController.usr.steam_repaired_a_0 Bool) (BoilerController.usr.pump_failure_acknowledgement_0_a_0 Bool) (BoilerController.usr.pump_failure_acknowledgement_1_a_0 Bool) (BoilerController.usr.pump_failure_acknowledgement_2_a_0 Bool) (BoilerController.usr.pump_failure_acknowledgement_3_a_0 Bool) (BoilerController.usr.pump_control_failure_acknowledgement_0_a_0 Bool) (BoilerController.usr.pump_control_failure_acknowledgement_1_a_0 Bool) (BoilerController.usr.pump_control_failure_acknowledgement_2_a_0 Bool) (BoilerController.usr.pump_control_failure_acknowledgement_3_a_0 Bool) (BoilerController.usr.level_failure_acknowledgement_a_0 Bool) (BoilerController.usr.steam_failure_acknowledgement_a_0 Bool) (BoilerController.usr.program_ready_a_0 Bool) (BoilerController.usr.mode_a_0 Int) (BoilerController.usr.valve_a_0 Bool) (BoilerController.usr.open_pump_0_a_0 Bool) (BoilerController.usr.open_pump_1_a_0 Bool) (BoilerController.usr.open_pump_2_a_0 Bool) (BoilerController.usr.open_pump_3_a_0 Bool) (BoilerController.usr.close_pump_0_a_0 Bool) (BoilerController.usr.close_pump_1_a_0 Bool) (BoilerController.usr.close_pump_2_a_0 Bool) (BoilerController.usr.close_pump_3_a_0 Bool) (BoilerController.usr.pump_failure_detection_0_a_0 Bool) (BoilerController.usr.pump_failure_detection_1_a_0 Bool) (BoilerController.usr.pump_failure_detection_2_a_0 Bool) (BoilerController.usr.pump_failure_detection_3_a_0 Bool) (BoilerController.usr.pump_control_failure_detection_0_a_0 Bool) (BoilerController.usr.pump_control_failure_detection_1_a_0 Bool) (BoilerController.usr.pump_control_failure_detection_2_a_0 Bool) (BoilerController.usr.pump_control_failure_detection_3_a_0 Bool) (BoilerController.usr.level_failure_detection_a_0 Bool) (BoilerController.usr.steam_outcome_failure_detection_a_0 Bool) (BoilerController.usr.pump_repaired_acknowledgement_0_a_0 Bool) (BoilerController.usr.pump_repaired_acknowledgement_1_a_0 Bool) (BoilerController.usr.pump_repaired_acknowledgement_2_a_0 Bool) (BoilerController.usr.pump_repaired_acknowledgement_3_a_0 Bool) (BoilerController.usr.pump_control_repaired_acknowledgement_0_a_0 Bool) (BoilerController.usr.pump_control_repaired_acknowledgement_1_a_0 Bool) (BoilerController.usr.pump_control_repaired_acknowledgement_2_a_0 Bool) (BoilerController.usr.pump_control_repaired_acknowledgement_3_a_0 Bool) (BoilerController.usr.level_repaired_acknowledgement_a_0 Bool) (BoilerController.usr.steam_outcome_repaired_acknowledgement_a_0 Bool) (BoilerController.res.init_flag_a_0 Bool) (BoilerController.impl.usr.stop_request_a_0 Bool) (BoilerController.impl.usr.op_mode_a_0 Int) (BoilerController.impl.usr.q_a_0 Int) (BoilerController.impl.usr.v_a_0 Int) (BoilerController.impl.usr.valve_state_a_0 Int) (BoilerController.impl.usr.n_pumps_a_0 Int) (BoilerController.impl.usr.pump_status_0_a_0 Int) (BoilerController.impl.usr.pump_status_1_a_0 Int) (BoilerController.impl.usr.pump_status_2_a_0 Int) (BoilerController.impl.usr.pump_status_3_a_0 Int) (BoilerController.impl.usr.pump_defect_0_a_0 Int) (BoilerController.impl.usr.pump_defect_1_a_0 Int) (BoilerController.impl.usr.pump_defect_2_a_0 Int) (BoilerController.impl.usr.pump_defect_3_a_0 Int) (BoilerController.impl.usr.pump_control_defect_0_a_0 Int) (BoilerController.impl.usr.pump_control_defect_1_a_0 Int) (BoilerController.impl.usr.pump_control_defect_2_a_0 Int) (BoilerController.impl.usr.pump_control_defect_3_a_0 Int) (BoilerController.res.abs_0_a_0 Bool) (BoilerController.res.abs_1_a_0 Int) (BoilerController.res.abs_2_a_0 Int) (BoilerController.res.abs_3_a_0 Int) (BoilerController.res.abs_4_a_0 Bool) (BoilerController.res.abs_5_a_0 Bool) (BoilerController.res.abs_6_a_0 Bool) (BoilerController.res.abs_7_a_0 Bool) (BoilerController.res.abs_8_a_0 Int) (BoilerController.res.abs_9_a_0 Int) (BoilerController.res.abs_10_a_0 Bool) (BoilerController.res.abs_11_a_0 Int) (BoilerController.res.abs_12_a_0 Int) (BoilerController.res.abs_13_a_0 Bool) (BoilerController.res.abs_14_a_0 Int) (BoilerController.res.abs_15_a_0 Bool) (BoilerController.res.abs_16_a_0 Bool) (BoilerController.res.abs_17_a_0 Bool) (BoilerController.res.abs_18_a_0 Bool) (BoilerController.res.abs_19_a_0 Int) (BoilerController.res.abs_20_a_0 Int) (BoilerController.res.abs_21_a_0 Bool) (BoilerController.res.abs_22_a_0 Int) (BoilerController.res.abs_23_a_0 Int) (BoilerController.res.abs_24_a_0 Bool) (BoilerController.res.abs_25_a_0 Int) (BoilerController.res.abs_26_a_0 Bool) (BoilerController.res.abs_27_a_0 Bool) (BoilerController.res.abs_28_a_0 Bool) (BoilerController.res.abs_29_a_0 Bool) (BoilerController.res.abs_30_a_0 Int) (BoilerController.res.abs_31_a_0 Int) (BoilerController.res.abs_32_a_0 Bool) (BoilerController.res.abs_33_a_0 Int) (BoilerController.res.abs_34_a_0 Int) (BoilerController.res.abs_35_a_0 Bool) (BoilerController.res.abs_36_a_0 Int) (BoilerController.res.abs_37_a_0 Bool) (BoilerController.res.abs_38_a_0 Bool) (BoilerController.res.abs_39_a_0 Bool) (BoilerController.res.abs_40_a_0 Bool) (BoilerController.res.abs_41_a_0 Int) (BoilerController.res.abs_42_a_0 Int) (BoilerController.res.abs_43_a_0 Bool) (BoilerController.res.abs_44_a_0 Int) (BoilerController.res.abs_45_a_0 Int) (BoilerController.res.abs_46_a_0 Bool) (BoilerController.res.abs_48_a_0 Int) (BoilerController.res.abs_49_a_0 Int) (BoilerController.res.abs_50_a_0 Int) (BoilerController.res.abs_51_a_0 Int) (BoilerController.res.abs_52_a_0 Int) (BoilerController.res.abs_53_a_0 Bool) (BoilerController.res.abs_54_a_0 Bool) (BoilerController.res.abs_55_a_0 Bool) (BoilerController.res.abs_56_a_0 Bool) (BoilerController.res.abs_57_a_0 Int) (BoilerController.res.abs_58_a_0 Int) (BoilerController.res.abs_59_a_0 Int) (BoilerController.res.abs_60_a_0 Int) (BoilerController.res.abs_61_a_0 Int) (BoilerController.res.abs_62_a_0 Int) (BoilerController.res.abs_63_a_0 Int) (BoilerController.res.abs_64_a_0 Int) (BoilerController.res.abs_65_a_0 Int) (BoilerController.res.abs_66_a_0 Int) (BoilerController.res.abs_67_a_0 Int) (BoilerController.res.abs_68_a_0 Int) (BoilerController.res.abs_69_a_0 Bool) (BoilerController.res.abs_70_a_0 Int) (BoilerController.res.abs_71_a_0 Bool) (BoilerController.res.abs_72_a_0 Int) (BoilerController.res.abs_73_a_0 Bool) (BoilerController.res.abs_74_a_0 Bool) (BoilerController.res.abs_75_a_0 Bool) (BoilerController.res.abs_76_a_0 Bool) (BoilerController.res.abs_77_a_0 Bool) (BoilerController.res.abs_78_a_0 Bool) (BoilerController.res.abs_79_a_0 Bool) (BoilerController.res.abs_80_a_0 Bool) (BoilerController.res.abs_81_a_0 Bool) (BoilerController.res.abs_82_a_0 Bool) (BoilerController.res.abs_83_a_0 Bool) (BoilerController.res.abs_84_a_0 Bool) (BoilerController.res.abs_85_a_0 Bool) (BoilerController.res.abs_86_a_0 Bool) (BoilerController.res.abs_87_a_0 Bool) (BoilerController.res.abs_88_a_0 Bool) (BoilerController.res.abs_89_a_0 Bool) (BoilerController.res.abs_90_a_0 Bool) (BoilerController.res.abs_91_a_0 Bool) (BoilerController.res.abs_92_a_0 Bool) (BoilerController.res.abs_93_a_0 Bool) (BoilerController.res.abs_94_a_0 Bool) (BoilerController.res.abs_95_a_0 Bool) (BoilerController.res.abs_96_a_0 Bool) (BoilerController.res.abs_97_a_0 Bool) (BoilerController.res.abs_98_a_0 Bool) (BoilerController.res.abs_99_a_0 Bool) (BoilerController.res.abs_100_a_0 Bool) (BoilerController.res.inst_176_a_0 Bool) (BoilerController.res.inst_175_a_0 Bool) (BoilerController.res.inst_174_a_0 Bool) (BoilerController.res.inst_173_a_0 Bool) (BoilerController.res.inst_172_a_0 Int) (BoilerController.res.inst_171_a_0 Bool) (BoilerController.res.inst_170_a_0 Bool) (BoilerController.res.inst_169_a_0 Bool) (BoilerController.res.inst_168_a_0 Bool) (BoilerController.res.inst_167_a_0 Bool) (BoilerController.res.inst_166_a_0 Bool) (BoilerController.res.inst_165_a_0 Bool) (BoilerController.res.inst_164_a_0 Bool) (BoilerController.res.inst_163_a_0 Bool) (BoilerController.res.inst_162_a_0 Bool) (BoilerController.res.inst_161_a_0 Bool) (BoilerController.res.inst_160_a_0 Bool) (BoilerController.res.inst_159_a_0 Bool) (BoilerController.res.inst_158_a_0 Bool) (BoilerController.res.inst_157_a_0 Bool) (BoilerController.res.inst_156_a_0 Bool) (BoilerController.res.inst_155_a_0 Bool) (BoilerController.res.inst_154_a_0 Bool) (BoilerController.res.inst_153_a_0 Bool) (BoilerController.res.inst_152_a_0 Bool) (BoilerController.res.inst_151_a_0 Bool) (BoilerController.res.inst_150_a_0 Bool) (BoilerController.res.inst_149_a_0 Bool) (BoilerController.res.inst_148_a_0 Bool) (BoilerController.res.inst_147_a_0 Bool) (BoilerController.res.inst_146_a_0 Bool) (BoilerController.res.inst_145_a_0 Bool) (BoilerController.res.inst_144_a_0 Bool) (BoilerController.res.inst_143_a_0 Bool) (BoilerController.res.inst_142_a_0 Bool) (BoilerController.res.inst_141_a_0 Bool) (BoilerController.res.inst_140_a_0 Bool) (BoilerController.res.inst_139_a_0 Bool) (BoilerController.res.inst_138_a_0 Bool) (BoilerController.res.inst_137_a_0 Bool) (BoilerController.res.inst_136_a_0 Bool) (BoilerController.res.inst_135_a_0 Bool) (BoilerController.res.inst_134_a_0 Bool) (BoilerController.res.inst_133_a_0 Bool) (BoilerController.res.inst_132_a_0 Bool) (BoilerController.res.inst_131_a_0 Bool) (BoilerController.res.inst_130_a_0 Bool) (BoilerController.res.inst_129_a_0 Bool) (BoilerController.res.inst_128_a_0 Bool) (BoilerController.res.inst_127_a_0 Bool) (BoilerController.res.inst_126_a_0 Bool) (BoilerController.res.inst_125_a_0 Bool) (BoilerController.res.inst_124_a_0 Bool) (BoilerController.res.inst_123_a_0 Bool) (BoilerController.res.inst_122_a_0 Bool) (BoilerController.res.inst_121_a_0 Bool) (BoilerController.res.inst_120_a_0 Int) (BoilerController.res.inst_119_a_0 Bool) (BoilerController.res.inst_118_a_0 Bool) (BoilerController.res.inst_117_a_0 Int) (BoilerController.res.inst_116_a_0 Int) (BoilerController.res.inst_115_a_0 Bool) (BoilerController.res.inst_114_a_0 Bool) (BoilerController.res.inst_113_a_0 Bool) (BoilerController.res.inst_112_a_0 Bool) (BoilerController.res.inst_111_a_0 Int) (BoilerController.res.inst_110_a_0 Int) (BoilerController.res.inst_109_a_0 Bool) (BoilerController.res.inst_108_a_0 Bool) (BoilerController.res.inst_107_a_0 Bool) (BoilerController.res.inst_106_a_0 Bool) (BoilerController.res.inst_105_a_0 Bool) (BoilerController.res.inst_104_a_0 Bool) (BoilerController.res.inst_103_a_0 Bool) (BoilerController.res.inst_102_a_0 Bool) (BoilerController.res.inst_101_a_0 Int) (BoilerController.res.inst_100_a_0 Int) (BoilerController.res.inst_99_a_0 Int) (BoilerController.res.inst_98_a_0 Int) (BoilerController.res.inst_97_a_0 Bool) (BoilerController.res.inst_96_a_0 Bool) (BoilerController.res.inst_95_a_0 Bool) (BoilerController.res.inst_94_a_0 Bool) (BoilerController.res.inst_93_a_0 Int) (BoilerController.res.inst_92_a_0 Int) (BoilerController.res.inst_91_a_0 Int) (BoilerController.res.inst_90_a_0 Int) (BoilerController.res.inst_89_a_0 Int) (BoilerController.res.inst_88_a_0 Int) (BoilerController.res.inst_87_a_0 Int) (BoilerController.res.inst_86_a_0 Int) (BoilerController.res.inst_85_a_0 Int) (BoilerController.res.inst_84_a_0 Int) (BoilerController.res.inst_83_a_0 Bool) (BoilerController.res.inst_82_a_0 Bool) (BoilerController.res.inst_81_a_0 Bool) (BoilerController.res.inst_80_a_0 Bool) (BoilerController.res.inst_79_a_0 Int) (BoilerController.res.inst_78_a_0 Int) (BoilerController.res.inst_77_a_0 Int) (BoilerController.res.inst_76_a_0 Int) (BoilerController.res.inst_75_a_0 Bool) (BoilerController.res.inst_74_a_0 Int) (BoilerController.res.inst_73_a_0 Bool) (BoilerController.res.inst_72_a_0 Int) (BoilerController.res.inst_71_a_0 Bool) (BoilerController.res.inst_70_a_0 Int) (BoilerController.res.inst_69_a_0 Bool) (BoilerController.res.inst_68_a_0 Int) (BoilerController.res.inst_67_a_0 Bool) (BoilerController.res.inst_66_a_0 Int) (BoilerController.res.inst_65_a_0 Bool) (BoilerController.res.inst_64_a_0 Int) (BoilerController.res.inst_63_a_0 Bool) (BoilerController.res.inst_62_a_0 Int) (BoilerController.res.inst_61_a_0 Bool) (BoilerController.res.inst_60_a_0 Int) (BoilerController.res.inst_59_a_0 Bool) (BoilerController.res.inst_58_a_0 Bool) (BoilerController.res.inst_57_a_0 Bool) (BoilerController.res.inst_56_a_0 Bool) (BoilerController.res.inst_55_a_0 Bool) (BoilerController.res.inst_54_a_0 Bool) (BoilerController.res.inst_53_a_0 Bool) (BoilerController.res.inst_52_a_0 Bool) (BoilerController.res.inst_51_a_0 Bool) (BoilerController.res.inst_50_a_0 Bool) (BoilerController.res.inst_49_a_0 Bool) (BoilerController.res.inst_48_a_0 Bool) (BoilerController.res.inst_47_a_0 Int) (BoilerController.res.inst_46_a_0 Bool) (BoilerController.res.inst_45_a_0 Bool) (BoilerController.res.inst_44_a_0 Bool) (BoilerController.res.inst_43_a_0 Bool) (BoilerController.res.inst_42_a_0 Bool) (BoilerController.res.inst_41_a_0 Bool) (BoilerController.res.inst_40_a_0 Bool) (BoilerController.res.inst_39_a_0 Bool) (BoilerController.res.inst_38_a_0 Bool) (BoilerController.res.inst_37_a_0 Bool) (BoilerController.res.inst_36_a_0 Bool) (BoilerController.res.inst_35_a_0 Int) (BoilerController.res.inst_34_a_0 Int) (BoilerController.res.inst_33_a_0 Int) (BoilerController.res.inst_32_a_0 Int) (BoilerController.res.inst_31_a_0 Bool) (BoilerController.res.inst_30_a_0 Bool) (BoilerController.res.inst_29_a_0 Bool) (BoilerController.res.inst_28_a_0 Bool) (BoilerController.res.inst_27_a_0 Bool) (BoilerController.res.inst_26_a_0 Bool) (BoilerController.res.inst_25_a_0 Bool) (BoilerController.res.inst_24_a_0 Bool) (BoilerController.res.inst_23_a_0 Bool) (BoilerController.res.inst_22_a_0 Int) (BoilerController.res.inst_21_a_0 Int) (BoilerController.res.inst_20_a_0 Int) (BoilerController.res.inst_19_a_0 Int) (BoilerController.res.inst_18_a_0 Bool) (BoilerController.res.inst_17_a_0 Bool) (BoilerController.res.inst_16_a_0 Bool) (BoilerController.res.inst_15_a_0 Bool) (BoilerController.res.inst_14_a_0 Bool) (BoilerController.res.inst_13_a_0 Bool) (BoilerController.res.inst_12_a_0 Bool) (BoilerController.res.inst_11_a_0 Bool) (BoilerController.res.inst_10_a_0 Bool) (BoilerController.res.inst_9_a_0 Int) (BoilerController.res.inst_8_a_0 Int) (BoilerController.res.inst_7_a_0 Int) (BoilerController.res.inst_6_a_0 Int) (BoilerController.res.inst_5_a_0 Bool) (BoilerController.res.inst_4_a_0 Bool) (BoilerController.res.inst_3_a_0 Bool) (BoilerController.res.inst_2_a_0 Bool) (BoilerController.res.inst_1_a_0 Bool) (BoilerController.res.inst_0_a_0 Bool)) Bool + (and (= BoilerController.res.abs_43_a_1 BoilerController.usr.pump_control_state_3_a_1) (= BoilerController.res.abs_42_a_1 BoilerController.usr.pump_state_3_a_1) (= BoilerController.res.abs_41_a_1 BoilerController.impl.usr.pump_status_3_a_0) (let ((X1 BoilerController.res.abs_46_a_1)) (let ((X2 X1)) (and (= BoilerController.res.abs_56_a_1 X2) (= BoilerController.res.abs_32_a_1 BoilerController.usr.pump_control_state_2_a_1) (= BoilerController.res.abs_31_a_1 BoilerController.usr.pump_state_2_a_1) (= BoilerController.res.abs_30_a_1 BoilerController.impl.usr.pump_status_2_a_0) (let ((X3 BoilerController.res.abs_35_a_1)) (let ((X4 X3)) (and (= BoilerController.res.abs_55_a_1 X4) (= BoilerController.res.abs_21_a_1 BoilerController.usr.pump_control_state_1_a_1) (= BoilerController.res.abs_20_a_1 BoilerController.usr.pump_state_1_a_1) (= BoilerController.res.abs_19_a_1 BoilerController.impl.usr.pump_status_1_a_0) (let ((X5 BoilerController.res.abs_24_a_1)) (let ((X6 X5)) (and (= BoilerController.res.abs_54_a_1 X6) (= BoilerController.res.abs_10_a_1 BoilerController.usr.pump_control_state_0_a_1) (= BoilerController.res.abs_9_a_1 BoilerController.usr.pump_state_0_a_1) (= BoilerController.res.abs_8_a_1 BoilerController.impl.usr.pump_status_0_a_0) (let ((X7 BoilerController.res.abs_13_a_1)) (let ((X8 X7)) (and (= BoilerController.res.abs_53_a_1 X8) (let ((X9 BoilerController.res.abs_1_a_1)) (and (= BoilerController.res.abs_51_a_1 X9) (= BoilerController.res.abs_50_a_1 BoilerController.usr.steam_a_1) (= BoilerController.res.abs_49_a_1 BoilerController.usr.level_a_1) (= BoilerController.res.abs_48_a_1 BoilerController.impl.usr.valve_state_a_0) (let ((X10 BoilerController.res.abs_2_a_1)) (and (= BoilerController.res.abs_52_a_1 X10) (= BoilerController.res.abs_40_a_1 BoilerController.usr.pump_control_repaired_3_a_1) (= BoilerController.res.abs_39_a_1 BoilerController.usr.pump_control_failure_acknowledgement_3_a_1) (= BoilerController.res.abs_38_a_1 BoilerController.usr.pump_repaired_3_a_1) (= BoilerController.res.abs_37_a_1 BoilerController.usr.pump_failure_acknowledgement_3_a_1) (= BoilerController.res.abs_29_a_1 BoilerController.usr.pump_control_repaired_2_a_1) (= BoilerController.res.abs_28_a_1 BoilerController.usr.pump_control_failure_acknowledgement_2_a_1) (= BoilerController.res.abs_27_a_1 BoilerController.usr.pump_repaired_2_a_1) (= BoilerController.res.abs_26_a_1 BoilerController.usr.pump_failure_acknowledgement_2_a_1) (= BoilerController.res.abs_18_a_1 BoilerController.usr.pump_control_repaired_1_a_1) (= BoilerController.res.abs_17_a_1 BoilerController.usr.pump_control_failure_acknowledgement_1_a_1) (= BoilerController.res.abs_16_a_1 BoilerController.usr.pump_repaired_1_a_1) (= BoilerController.res.abs_15_a_1 BoilerController.usr.pump_failure_acknowledgement_1_a_1) (= BoilerController.res.abs_7_a_1 BoilerController.usr.pump_control_repaired_0_a_1) (= BoilerController.res.abs_6_a_1 BoilerController.usr.pump_control_failure_acknowledgement_0_a_1) (= BoilerController.res.abs_5_a_1 BoilerController.usr.pump_repaired_0_a_1) (= BoilerController.res.abs_4_a_1 BoilerController.usr.pump_failure_acknowledgement_0_a_1) (let ((X11 BoilerController.res.abs_57_a_1)) (let ((X12 BoilerController.res.abs_45_a_1)) (let ((X13 BoilerController.res.abs_34_a_1)) (let ((X14 BoilerController.res.abs_23_a_1)) (let ((X15 BoilerController.res.abs_44_a_1)) (let ((X16 BoilerController.res.abs_33_a_1)) (let ((X17 BoilerController.res.abs_22_a_1)) (let ((X18 BoilerController.res.abs_12_a_1)) (let ((X19 BoilerController.res.abs_11_a_1)) (and (= BoilerController.impl.usr.pump_control_defect_3_a_1 X12) (= BoilerController.impl.usr.pump_control_defect_2_a_1 X13) (= BoilerController.impl.usr.pump_control_defect_1_a_1 X14) (= BoilerController.impl.usr.pump_control_defect_0_a_1 X18) (= BoilerController.impl.usr.pump_defect_3_a_1 X15) (= BoilerController.impl.usr.pump_defect_2_a_1 X16) (= BoilerController.impl.usr.pump_defect_1_a_1 X17) (= BoilerController.impl.usr.pump_defect_0_a_1 X19) (= BoilerController.impl.usr.q_a_1 X11) (= BoilerController.impl.usr.stop_request_a_1 BoilerController.res.abs_0_a_1) (= BoilerController.impl.usr.op_mode_a_1 BoilerController.res.abs_68_a_1) (let ((X20 BoilerController.res.abs_69_a_1)) (and (= BoilerController.usr.valve_a_1 X20) (let ((X21 BoilerController.res.abs_71_a_1)) (and (= BoilerController.usr.program_ready_a_1 X21) (let ((X22 BoilerController.res.abs_58_a_1)) (and (= BoilerController.impl.usr.v_a_1 X22) (= BoilerController.impl.usr.n_pumps_a_1 BoilerController.res.abs_63_a_1) (let ((X23 BoilerController.res.abs_64_a_1)) (and (= BoilerController.impl.usr.pump_status_0_a_1 X23) (let ((X24 BoilerController.res.abs_70_a_1)) (and (= BoilerController.impl.usr.valve_state_a_1 X24) (let ((X25 BoilerController.res.abs_65_a_1)) (and (= BoilerController.impl.usr.pump_status_1_a_1 X25) (let ((X26 BoilerController.res.abs_66_a_1)) (and (= BoilerController.impl.usr.pump_status_2_a_1 X26) (let ((X27 BoilerController.res.abs_67_a_1)) (and (= BoilerController.impl.usr.pump_status_3_a_1 X27) (let ((X28 BoilerController.res.abs_72_a_1)) (and (= BoilerController.usr.mode_a_1 X28) (= BoilerController.res.abs_3_a_1 BoilerController.impl.usr.pump_status_0_a_1) (let ((X29 BoilerController.res.abs_73_a_1)) (and (= BoilerController.usr.open_pump_0_a_1 X29) (= BoilerController.res.abs_14_a_1 BoilerController.impl.usr.pump_status_1_a_1) (= BoilerController.res.abs_25_a_1 BoilerController.impl.usr.pump_status_2_a_1) (= BoilerController.res.abs_36_a_1 BoilerController.impl.usr.pump_status_3_a_1) (let ((X30 BoilerController.res.abs_74_a_1)) (and (= BoilerController.usr.open_pump_1_a_1 X30) (let ((X31 BoilerController.res.abs_75_a_1)) (and (= BoilerController.usr.open_pump_2_a_1 X31) (let ((X32 BoilerController.res.abs_76_a_1)) (and (= BoilerController.usr.open_pump_3_a_1 X32) (let ((X33 BoilerController.res.abs_77_a_1)) (and (= BoilerController.usr.close_pump_0_a_1 X33) (let ((X34 BoilerController.res.abs_78_a_1)) (and (= BoilerController.usr.close_pump_1_a_1 X34) (let ((X35 BoilerController.res.abs_79_a_1)) (and (= BoilerController.usr.close_pump_2_a_1 X35) (let ((X36 BoilerController.res.abs_80_a_1)) (and (= BoilerController.usr.close_pump_3_a_1 X36) (let ((X37 BoilerController.res.abs_81_a_1)) (and (= BoilerController.usr.pump_failure_detection_0_a_1 X37) (let ((X38 BoilerController.res.abs_82_a_1)) (and (= BoilerController.usr.pump_failure_detection_1_a_1 X38) (let ((X39 BoilerController.res.abs_83_a_1)) (and (= BoilerController.usr.pump_failure_detection_2_a_1 X39) (let ((X40 BoilerController.res.abs_84_a_1)) (and (= BoilerController.usr.pump_failure_detection_3_a_1 X40) (let ((X41 BoilerController.res.abs_89_a_1)) (and (= BoilerController.usr.pump_control_failure_detection_0_a_1 X41) (let ((X42 BoilerController.res.abs_90_a_1)) (and (= BoilerController.usr.pump_control_failure_detection_1_a_1 X42) (let ((X43 BoilerController.res.abs_91_a_1)) (and (= BoilerController.usr.pump_control_failure_detection_2_a_1 X43) (let ((X44 BoilerController.res.abs_92_a_1)) (and (= BoilerController.usr.pump_control_failure_detection_3_a_1 X44) (let ((X45 BoilerController.res.abs_97_a_1)) (and (= BoilerController.usr.level_failure_detection_a_1 X45) (let ((X46 BoilerController.res.abs_99_a_1)) (and (= BoilerController.usr.steam_outcome_failure_detection_a_1 X46) (let ((X47 BoilerController.res.abs_85_a_1)) (and (= BoilerController.usr.pump_repaired_acknowledgement_0_a_1 X47) (let ((X48 BoilerController.res.abs_86_a_1)) (and (= BoilerController.usr.pump_repaired_acknowledgement_1_a_1 X48) (let ((X49 BoilerController.res.abs_87_a_1)) (and (= BoilerController.usr.pump_repaired_acknowledgement_2_a_1 X49) (let ((X50 BoilerController.res.abs_88_a_1)) (and (= BoilerController.usr.pump_repaired_acknowledgement_3_a_1 X50) (let ((X51 BoilerController.res.abs_93_a_1)) (and (= BoilerController.usr.pump_control_repaired_acknowledgement_0_a_1 X51) (let ((X52 BoilerController.res.abs_94_a_1)) (and (= BoilerController.usr.pump_control_repaired_acknowledgement_1_a_1 X52) (let ((X53 BoilerController.res.abs_95_a_1)) (and (= BoilerController.usr.pump_control_repaired_acknowledgement_2_a_1 X53) (let ((X54 BoilerController.res.abs_96_a_1)) (and (= BoilerController.usr.pump_control_repaired_acknowledgement_3_a_1 X54) (let ((X55 BoilerController.res.abs_98_a_1)) (and (= BoilerController.usr.level_repaired_acknowledgement_a_1 X55) (let ((X56 BoilerController.res.abs_100_a_1)) (and (= BoilerController.usr.steam_outcome_repaired_acknowledgement_a_1 X56) (__node_trans_ControlOutput_0 BoilerController.impl.usr.op_mode_a_1 BoilerController.res.abs_49_a_1 BoilerController.usr.valve_a_1 BoilerController.res.abs_71_a_1 BoilerController.res.abs_72_a_1 BoilerController.res.inst_176_a_1 BoilerController.res.inst_175_a_1 BoilerController.res.inst_174_a_1 BoilerController.impl.usr.op_mode_a_0 BoilerController.res.abs_49_a_0 BoilerController.usr.valve_a_0 BoilerController.res.abs_71_a_0 BoilerController.res.abs_72_a_0 BoilerController.res.inst_176_a_0 BoilerController.res.inst_175_a_0 BoilerController.res.inst_174_a_0) (__node_trans_ControlMode_0 BoilerController.usr.steam_boiler_waiting_a_1 BoilerController.usr.physical_units_ready_a_1 BoilerController.impl.usr.stop_request_a_1 BoilerController.res.abs_50_a_1 BoilerController.res.abs_51_a_1 BoilerController.res.abs_52_a_1 BoilerController.impl.usr.pump_defect_0_a_1 BoilerController.impl.usr.pump_defect_1_a_1 BoilerController.impl.usr.pump_defect_2_a_1 BoilerController.impl.usr.pump_defect_3_a_1 BoilerController.impl.usr.pump_control_defect_0_a_1 BoilerController.impl.usr.pump_control_defect_1_a_1 BoilerController.impl.usr.pump_control_defect_2_a_1 BoilerController.impl.usr.pump_control_defect_3_a_1 BoilerController.impl.usr.q_a_1 BoilerController.res.abs_9_a_1 BoilerController.res.abs_20_a_1 BoilerController.res.abs_31_a_1 BoilerController.res.abs_42_a_1 BoilerController.res.nondet_24 BoilerController.res.abs_68_a_1 BoilerController.res.inst_173_a_1 BoilerController.res.inst_172_a_1 BoilerController.res.inst_171_a_1 BoilerController.res.inst_170_a_1 BoilerController.res.inst_169_a_1 BoilerController.res.inst_168_a_1 BoilerController.res.inst_167_a_1 BoilerController.res.inst_166_a_1 BoilerController.res.inst_165_a_1 BoilerController.res.inst_164_a_1 BoilerController.res.inst_163_a_1 BoilerController.res.inst_162_a_1 BoilerController.res.inst_161_a_1 BoilerController.res.inst_160_a_1 BoilerController.res.inst_159_a_1 BoilerController.res.inst_158_a_1 BoilerController.res.inst_157_a_1 BoilerController.res.inst_156_a_1 BoilerController.res.inst_155_a_1 BoilerController.res.inst_154_a_1 BoilerController.res.inst_153_a_1 BoilerController.res.inst_152_a_1 BoilerController.res.inst_151_a_1 BoilerController.res.inst_150_a_1 BoilerController.res.inst_149_a_1 BoilerController.res.inst_148_a_1 BoilerController.res.inst_147_a_1 BoilerController.res.inst_146_a_1 BoilerController.res.inst_145_a_1 BoilerController.res.inst_144_a_1 BoilerController.res.inst_143_a_1 BoilerController.res.inst_142_a_1 BoilerController.res.inst_141_a_1 BoilerController.res.inst_140_a_1 BoilerController.res.inst_139_a_1 BoilerController.res.inst_138_a_1 BoilerController.res.inst_137_a_1 BoilerController.res.inst_136_a_1 BoilerController.res.inst_135_a_1 BoilerController.res.inst_134_a_1 BoilerController.res.inst_133_a_1 BoilerController.res.inst_132_a_1 BoilerController.res.inst_131_a_1 BoilerController.res.inst_130_a_1 BoilerController.res.inst_129_a_1 BoilerController.res.inst_128_a_1 BoilerController.res.inst_127_a_1 BoilerController.res.inst_126_a_1 BoilerController.res.inst_125_a_1 BoilerController.res.inst_124_a_1 BoilerController.res.inst_123_a_1 BoilerController.res.inst_122_a_1 BoilerController.usr.steam_boiler_waiting_a_0 BoilerController.usr.physical_units_ready_a_0 BoilerController.impl.usr.stop_request_a_0 BoilerController.res.abs_50_a_0 BoilerController.res.abs_51_a_0 BoilerController.res.abs_52_a_0 BoilerController.impl.usr.pump_defect_0_a_0 BoilerController.impl.usr.pump_defect_1_a_0 BoilerController.impl.usr.pump_defect_2_a_0 BoilerController.impl.usr.pump_defect_3_a_0 BoilerController.impl.usr.pump_control_defect_0_a_0 BoilerController.impl.usr.pump_control_defect_1_a_0 BoilerController.impl.usr.pump_control_defect_2_a_0 BoilerController.impl.usr.pump_control_defect_3_a_0 BoilerController.impl.usr.q_a_0 BoilerController.res.abs_9_a_0 BoilerController.res.abs_20_a_0 BoilerController.res.abs_31_a_0 BoilerController.res.abs_42_a_0 BoilerController.res.abs_68_a_0 BoilerController.res.inst_173_a_0 BoilerController.res.inst_172_a_0 BoilerController.res.inst_171_a_0 BoilerController.res.inst_170_a_0 BoilerController.res.inst_169_a_0 BoilerController.res.inst_168_a_0 BoilerController.res.inst_167_a_0 BoilerController.res.inst_166_a_0 BoilerController.res.inst_165_a_0 BoilerController.res.inst_164_a_0 BoilerController.res.inst_163_a_0 BoilerController.res.inst_162_a_0 BoilerController.res.inst_161_a_0 BoilerController.res.inst_160_a_0 BoilerController.res.inst_159_a_0 BoilerController.res.inst_158_a_0 BoilerController.res.inst_157_a_0 BoilerController.res.inst_156_a_0 BoilerController.res.inst_155_a_0 BoilerController.res.inst_154_a_0 BoilerController.res.inst_153_a_0 BoilerController.res.inst_152_a_0 BoilerController.res.inst_151_a_0 BoilerController.res.inst_150_a_0 BoilerController.res.inst_149_a_0 BoilerController.res.inst_148_a_0 BoilerController.res.inst_147_a_0 BoilerController.res.inst_146_a_0 BoilerController.res.inst_145_a_0 BoilerController.res.inst_144_a_0 BoilerController.res.inst_143_a_0 BoilerController.res.inst_142_a_0 BoilerController.res.inst_141_a_0 BoilerController.res.inst_140_a_0 BoilerController.res.inst_139_a_0 BoilerController.res.inst_138_a_0 BoilerController.res.inst_137_a_0 BoilerController.res.inst_136_a_0 BoilerController.res.inst_135_a_0 BoilerController.res.inst_134_a_0 BoilerController.res.inst_133_a_0 BoilerController.res.inst_132_a_0 BoilerController.res.inst_131_a_0 BoilerController.res.inst_130_a_0 BoilerController.res.inst_129_a_0 BoilerController.res.inst_128_a_0 BoilerController.res.inst_127_a_0 BoilerController.res.inst_126_a_0 BoilerController.res.inst_125_a_0 BoilerController.res.inst_124_a_0 BoilerController.res.inst_123_a_0 BoilerController.res.inst_122_a_0) (__node_trans_Operator_0 BoilerController.usr.stop_a_1 BoilerController.res.abs_0_a_1 BoilerController.res.inst_121_a_1 BoilerController.res.inst_120_a_1 BoilerController.usr.stop_a_0 BoilerController.res.abs_0_a_0 BoilerController.res.inst_121_a_0 BoilerController.res.inst_120_a_0) (__node_trans_LevelDefect_0 BoilerController.usr.level_failure_acknowledgement_a_1 BoilerController.usr.level_repaired_a_1 BoilerController.usr.level_a_1 BoilerController.res.nondet_0 BoilerController.res.abs_1_a_1 BoilerController.res.inst_119_a_1 BoilerController.res.inst_118_a_1 BoilerController.res.inst_117_a_1 BoilerController.res.inst_116_a_1 BoilerController.res.inst_115_a_1 BoilerController.res.inst_114_a_1 BoilerController.usr.level_failure_acknowledgement_a_0 BoilerController.usr.level_repaired_a_0 BoilerController.usr.level_a_0 BoilerController.res.abs_1_a_0 BoilerController.res.inst_119_a_0 BoilerController.res.inst_118_a_0 BoilerController.res.inst_117_a_0 BoilerController.res.inst_116_a_0 BoilerController.res.inst_115_a_0 BoilerController.res.inst_114_a_0) (__node_trans_SteamDefect_0 BoilerController.usr.steam_failure_acknowledgement_a_1 BoilerController.usr.steam_repaired_a_1 BoilerController.usr.steam_a_1 BoilerController.res.nondet_1 BoilerController.res.abs_2_a_1 BoilerController.res.inst_113_a_1 BoilerController.res.inst_112_a_1 BoilerController.res.inst_111_a_1 BoilerController.res.inst_110_a_1 BoilerController.res.inst_109_a_1 BoilerController.res.inst_108_a_1 BoilerController.usr.steam_failure_acknowledgement_a_0 BoilerController.usr.steam_repaired_a_0 BoilerController.usr.steam_a_0 BoilerController.res.abs_2_a_0 BoilerController.res.inst_113_a_0 BoilerController.res.inst_112_a_0 BoilerController.res.inst_111_a_0 BoilerController.res.inst_110_a_0 BoilerController.res.inst_109_a_0 BoilerController.res.inst_108_a_0) (__node_trans_PumpDefect_0 BoilerController.res.abs_4_a_1 BoilerController.res.abs_5_a_1 BoilerController.res.abs_6_a_1 BoilerController.res.abs_7_a_1 BoilerController.res.abs_8_a_1 BoilerController.res.abs_9_a_1 BoilerController.res.abs_10_a_1 BoilerController.res.nondet_4 BoilerController.res.nondet_3 BoilerController.res.abs_11_a_1 BoilerController.res.abs_12_a_1 BoilerController.res.abs_13_a_1 BoilerController.res.inst_107_a_1 BoilerController.res.inst_106_a_1 BoilerController.res.inst_105_a_1 BoilerController.res.inst_104_a_1 BoilerController.res.inst_103_a_1 BoilerController.res.inst_102_a_1 BoilerController.res.inst_101_a_1 BoilerController.res.inst_100_a_1 BoilerController.res.inst_99_a_1 BoilerController.res.inst_98_a_1 BoilerController.res.inst_97_a_1 BoilerController.res.inst_96_a_1 BoilerController.res.inst_95_a_1 BoilerController.res.abs_4_a_0 BoilerController.res.abs_5_a_0 BoilerController.res.abs_6_a_0 BoilerController.res.abs_7_a_0 BoilerController.res.abs_8_a_0 BoilerController.res.abs_9_a_0 BoilerController.res.abs_10_a_0 BoilerController.res.abs_11_a_0 BoilerController.res.abs_12_a_0 BoilerController.res.abs_13_a_0 BoilerController.res.inst_107_a_0 BoilerController.res.inst_106_a_0 BoilerController.res.inst_105_a_0 BoilerController.res.inst_104_a_0 BoilerController.res.inst_103_a_0 BoilerController.res.inst_102_a_0 BoilerController.res.inst_101_a_0 BoilerController.res.inst_100_a_0 BoilerController.res.inst_99_a_0 BoilerController.res.inst_98_a_0 BoilerController.res.inst_97_a_0 BoilerController.res.inst_96_a_0 BoilerController.res.inst_95_a_0) (__node_trans_PumpsStatus_0 BoilerController.impl.usr.n_pumps_a_1 BoilerController.impl.usr.pump_defect_0_a_1 BoilerController.impl.usr.pump_defect_1_a_1 BoilerController.impl.usr.pump_defect_2_a_1 BoilerController.impl.usr.pump_defect_3_a_1 BoilerController.res.abs_53_a_1 BoilerController.res.abs_54_a_1 BoilerController.res.abs_55_a_1 BoilerController.res.abs_56_a_1 BoilerController.res.nondet_23 BoilerController.res.nondet_22 BoilerController.res.nondet_21 BoilerController.res.nondet_20 BoilerController.res.nondet_19 BoilerController.res.nondet_18 BoilerController.res.nondet_17 BoilerController.res.nondet_16 BoilerController.res.abs_64_a_1 BoilerController.res.abs_65_a_1 BoilerController.res.abs_66_a_1 BoilerController.res.abs_67_a_1 BoilerController.res.inst_94_a_1 BoilerController.res.inst_93_a_1 BoilerController.res.inst_92_a_1 BoilerController.res.inst_91_a_1 BoilerController.res.inst_90_a_1 BoilerController.res.inst_89_a_1 BoilerController.res.inst_88_a_1 BoilerController.res.inst_87_a_1 BoilerController.res.inst_86_a_1 BoilerController.res.inst_85_a_1 BoilerController.res.inst_84_a_1 BoilerController.res.inst_83_a_1 BoilerController.res.inst_82_a_1 BoilerController.res.inst_81_a_1 BoilerController.res.inst_80_a_1 BoilerController.res.inst_79_a_1 BoilerController.res.inst_78_a_1 BoilerController.res.inst_77_a_1 BoilerController.res.inst_76_a_1 BoilerController.res.inst_75_a_1 BoilerController.res.inst_74_a_1 BoilerController.res.inst_73_a_1 BoilerController.res.inst_72_a_1 BoilerController.res.inst_71_a_1 BoilerController.res.inst_70_a_1 BoilerController.res.inst_69_a_1 BoilerController.res.inst_68_a_1 BoilerController.res.inst_67_a_1 BoilerController.res.inst_66_a_1 BoilerController.res.inst_65_a_1 BoilerController.res.inst_64_a_1 BoilerController.res.inst_63_a_1 BoilerController.res.inst_62_a_1 BoilerController.res.inst_61_a_1 BoilerController.res.inst_60_a_1 BoilerController.res.inst_59_a_1 BoilerController.res.inst_58_a_1 BoilerController.res.inst_57_a_1 BoilerController.res.inst_56_a_1 BoilerController.res.inst_55_a_1 BoilerController.res.inst_54_a_1 BoilerController.res.inst_53_a_1 BoilerController.res.inst_52_a_1 BoilerController.res.inst_51_a_1 BoilerController.impl.usr.n_pumps_a_0 BoilerController.impl.usr.pump_defect_0_a_0 BoilerController.impl.usr.pump_defect_1_a_0 BoilerController.impl.usr.pump_defect_2_a_0 BoilerController.impl.usr.pump_defect_3_a_0 BoilerController.res.abs_53_a_0 BoilerController.res.abs_54_a_0 BoilerController.res.abs_55_a_0 BoilerController.res.abs_56_a_0 BoilerController.res.abs_64_a_0 BoilerController.res.abs_65_a_0 BoilerController.res.abs_66_a_0 BoilerController.res.abs_67_a_0 BoilerController.res.inst_94_a_0 BoilerController.res.inst_93_a_0 BoilerController.res.inst_92_a_0 BoilerController.res.inst_91_a_0 BoilerController.res.inst_90_a_0 BoilerController.res.inst_89_a_0 BoilerController.res.inst_88_a_0 BoilerController.res.inst_87_a_0 BoilerController.res.inst_86_a_0 BoilerController.res.inst_85_a_0 BoilerController.res.inst_84_a_0 BoilerController.res.inst_83_a_0 BoilerController.res.inst_82_a_0 BoilerController.res.inst_81_a_0 BoilerController.res.inst_80_a_0 BoilerController.res.inst_79_a_0 BoilerController.res.inst_78_a_0 BoilerController.res.inst_77_a_0 BoilerController.res.inst_76_a_0 BoilerController.res.inst_75_a_0 BoilerController.res.inst_74_a_0 BoilerController.res.inst_73_a_0 BoilerController.res.inst_72_a_0 BoilerController.res.inst_71_a_0 BoilerController.res.inst_70_a_0 BoilerController.res.inst_69_a_0 BoilerController.res.inst_68_a_0 BoilerController.res.inst_67_a_0 BoilerController.res.inst_66_a_0 BoilerController.res.inst_65_a_0 BoilerController.res.inst_64_a_0 BoilerController.res.inst_63_a_0 BoilerController.res.inst_62_a_0 BoilerController.res.inst_61_a_0 BoilerController.res.inst_60_a_0 BoilerController.res.inst_59_a_0 BoilerController.res.inst_58_a_0 BoilerController.res.inst_57_a_0 BoilerController.res.inst_56_a_0 BoilerController.res.inst_55_a_0 BoilerController.res.inst_54_a_0 BoilerController.res.inst_53_a_0 BoilerController.res.inst_52_a_0 BoilerController.res.inst_51_a_0) (__node_trans_PumpsDecision_0 BoilerController.impl.usr.q_a_1 BoilerController.impl.usr.v_a_1 BoilerController.res.nondet_15 BoilerController.res.abs_63_a_1 BoilerController.res.inst_50_a_1 BoilerController.impl.usr.q_a_0 BoilerController.impl.usr.v_a_0 BoilerController.res.abs_63_a_0 BoilerController.res.inst_50_a_0) (__node_trans_Dynamics_0 BoilerController.res.abs_48_a_1 BoilerController.res.abs_49_a_1 BoilerController.res.abs_50_a_1 BoilerController.res.abs_51_a_1 BoilerController.res.abs_52_a_1 BoilerController.res.abs_53_a_1 BoilerController.res.abs_54_a_1 BoilerController.res.abs_55_a_1 BoilerController.res.abs_56_a_1 BoilerController.res.abs_57_a_1 BoilerController.res.abs_58_a_1 BoilerController.res.abs_59_a_1 BoilerController.res.abs_60_a_1 BoilerController.res.abs_61_a_1 BoilerController.res.abs_62_a_1 BoilerController.res.inst_49_a_1 BoilerController.res.inst_48_a_1 BoilerController.res.inst_47_a_1 BoilerController.res.inst_46_a_1 BoilerController.res.inst_45_a_1 BoilerController.res.inst_44_a_1 BoilerController.res.inst_43_a_1 BoilerController.res.abs_48_a_0 BoilerController.res.abs_49_a_0 BoilerController.res.abs_50_a_0 BoilerController.res.abs_51_a_0 BoilerController.res.abs_52_a_0 BoilerController.res.abs_53_a_0 BoilerController.res.abs_54_a_0 BoilerController.res.abs_55_a_0 BoilerController.res.abs_56_a_0 BoilerController.res.abs_57_a_0 BoilerController.res.abs_58_a_0 BoilerController.res.abs_59_a_0 BoilerController.res.abs_60_a_0 BoilerController.res.abs_61_a_0 BoilerController.res.abs_62_a_0 BoilerController.res.inst_49_a_0 BoilerController.res.inst_48_a_0 BoilerController.res.inst_47_a_0 BoilerController.res.inst_46_a_0 BoilerController.res.inst_45_a_0 BoilerController.res.inst_44_a_0 BoilerController.res.inst_43_a_0) (__node_trans_Valve_0 BoilerController.impl.usr.op_mode_a_1 BoilerController.impl.usr.q_a_1 BoilerController.res.abs_69_a_1 BoilerController.res.abs_70_a_1 BoilerController.res.inst_42_a_1 BoilerController.impl.usr.op_mode_a_0 BoilerController.impl.usr.q_a_0 BoilerController.res.abs_69_a_0 BoilerController.res.abs_70_a_0 BoilerController.res.inst_42_a_0) (__node_trans_PumpDefect_0 BoilerController.res.abs_15_a_1 BoilerController.res.abs_16_a_1 BoilerController.res.abs_17_a_1 BoilerController.res.abs_18_a_1 BoilerController.res.abs_19_a_1 BoilerController.res.abs_20_a_1 BoilerController.res.abs_21_a_1 BoilerController.res.nondet_7 BoilerController.res.nondet_6 BoilerController.res.abs_22_a_1 BoilerController.res.abs_23_a_1 BoilerController.res.abs_24_a_1 BoilerController.res.inst_41_a_1 BoilerController.res.inst_40_a_1 BoilerController.res.inst_39_a_1 BoilerController.res.inst_38_a_1 BoilerController.res.inst_37_a_1 BoilerController.res.inst_36_a_1 BoilerController.res.inst_35_a_1 BoilerController.res.inst_34_a_1 BoilerController.res.inst_33_a_1 BoilerController.res.inst_32_a_1 BoilerController.res.inst_31_a_1 BoilerController.res.inst_30_a_1 BoilerController.res.inst_29_a_1 BoilerController.res.abs_15_a_0 BoilerController.res.abs_16_a_0 BoilerController.res.abs_17_a_0 BoilerController.res.abs_18_a_0 BoilerController.res.abs_19_a_0 BoilerController.res.abs_20_a_0 BoilerController.res.abs_21_a_0 BoilerController.res.abs_22_a_0 BoilerController.res.abs_23_a_0 BoilerController.res.abs_24_a_0 BoilerController.res.inst_41_a_0 BoilerController.res.inst_40_a_0 BoilerController.res.inst_39_a_0 BoilerController.res.inst_38_a_0 BoilerController.res.inst_37_a_0 BoilerController.res.inst_36_a_0 BoilerController.res.inst_35_a_0 BoilerController.res.inst_34_a_0 BoilerController.res.inst_33_a_0 BoilerController.res.inst_32_a_0 BoilerController.res.inst_31_a_0 BoilerController.res.inst_30_a_0 BoilerController.res.inst_29_a_0) (__node_trans_PumpDefect_0 BoilerController.res.abs_26_a_1 BoilerController.res.abs_27_a_1 BoilerController.res.abs_28_a_1 BoilerController.res.abs_29_a_1 BoilerController.res.abs_30_a_1 BoilerController.res.abs_31_a_1 BoilerController.res.abs_32_a_1 BoilerController.res.nondet_10 BoilerController.res.nondet_9 BoilerController.res.abs_33_a_1 BoilerController.res.abs_34_a_1 BoilerController.res.abs_35_a_1 BoilerController.res.inst_28_a_1 BoilerController.res.inst_27_a_1 BoilerController.res.inst_26_a_1 BoilerController.res.inst_25_a_1 BoilerController.res.inst_24_a_1 BoilerController.res.inst_23_a_1 BoilerController.res.inst_22_a_1 BoilerController.res.inst_21_a_1 BoilerController.res.inst_20_a_1 BoilerController.res.inst_19_a_1 BoilerController.res.inst_18_a_1 BoilerController.res.inst_17_a_1 BoilerController.res.inst_16_a_1 BoilerController.res.abs_26_a_0 BoilerController.res.abs_27_a_0 BoilerController.res.abs_28_a_0 BoilerController.res.abs_29_a_0 BoilerController.res.abs_30_a_0 BoilerController.res.abs_31_a_0 BoilerController.res.abs_32_a_0 BoilerController.res.abs_33_a_0 BoilerController.res.abs_34_a_0 BoilerController.res.abs_35_a_0 BoilerController.res.inst_28_a_0 BoilerController.res.inst_27_a_0 BoilerController.res.inst_26_a_0 BoilerController.res.inst_25_a_0 BoilerController.res.inst_24_a_0 BoilerController.res.inst_23_a_0 BoilerController.res.inst_22_a_0 BoilerController.res.inst_21_a_0 BoilerController.res.inst_20_a_0 BoilerController.res.inst_19_a_0 BoilerController.res.inst_18_a_0 BoilerController.res.inst_17_a_0 BoilerController.res.inst_16_a_0) (__node_trans_PumpDefect_0 BoilerController.res.abs_37_a_1 BoilerController.res.abs_38_a_1 BoilerController.res.abs_39_a_1 BoilerController.res.abs_40_a_1 BoilerController.res.abs_41_a_1 BoilerController.res.abs_42_a_1 BoilerController.res.abs_43_a_1 BoilerController.res.nondet_13 BoilerController.res.nondet_12 BoilerController.res.abs_44_a_1 BoilerController.res.abs_45_a_1 BoilerController.res.abs_46_a_1 BoilerController.res.inst_15_a_1 BoilerController.res.inst_14_a_1 BoilerController.res.inst_13_a_1 BoilerController.res.inst_12_a_1 BoilerController.res.inst_11_a_1 BoilerController.res.inst_10_a_1 BoilerController.res.inst_9_a_1 BoilerController.res.inst_8_a_1 BoilerController.res.inst_7_a_1 BoilerController.res.inst_6_a_1 BoilerController.res.inst_5_a_1 BoilerController.res.inst_4_a_1 BoilerController.res.inst_3_a_1 BoilerController.res.abs_37_a_0 BoilerController.res.abs_38_a_0 BoilerController.res.abs_39_a_0 BoilerController.res.abs_40_a_0 BoilerController.res.abs_41_a_0 BoilerController.res.abs_42_a_0 BoilerController.res.abs_43_a_0 BoilerController.res.abs_44_a_0 BoilerController.res.abs_45_a_0 BoilerController.res.abs_46_a_0 BoilerController.res.inst_15_a_0 BoilerController.res.inst_14_a_0 BoilerController.res.inst_13_a_0 BoilerController.res.inst_12_a_0 BoilerController.res.inst_11_a_0 BoilerController.res.inst_10_a_0 BoilerController.res.inst_9_a_0 BoilerController.res.inst_8_a_0 BoilerController.res.inst_7_a_0 BoilerController.res.inst_6_a_0 BoilerController.res.inst_5_a_0 BoilerController.res.inst_4_a_0 BoilerController.res.inst_3_a_0) (__node_trans_PumpsOutput_0 BoilerController.impl.usr.op_mode_a_1 BoilerController.res.abs_3_a_1 BoilerController.res.abs_14_a_1 BoilerController.res.abs_25_a_1 BoilerController.res.abs_36_a_1 BoilerController.impl.usr.pump_defect_0_a_1 BoilerController.impl.usr.pump_defect_1_a_1 BoilerController.impl.usr.pump_defect_2_a_1 BoilerController.impl.usr.pump_defect_3_a_1 BoilerController.impl.usr.pump_control_defect_0_a_1 BoilerController.impl.usr.pump_control_defect_1_a_1 BoilerController.impl.usr.pump_control_defect_2_a_1 BoilerController.impl.usr.pump_control_defect_3_a_1 BoilerController.res.abs_5_a_1 BoilerController.res.abs_16_a_1 BoilerController.res.abs_27_a_1 BoilerController.res.abs_38_a_1 BoilerController.res.abs_7_a_1 BoilerController.res.abs_18_a_1 BoilerController.res.abs_29_a_1 BoilerController.res.abs_40_a_1 BoilerController.res.nondet_32 BoilerController.res.nondet_31 BoilerController.res.nondet_30 BoilerController.res.nondet_29 BoilerController.res.nondet_28 BoilerController.res.nondet_27 BoilerController.res.nondet_26 BoilerController.res.nondet_25 BoilerController.res.abs_73_a_1 BoilerController.res.abs_74_a_1 BoilerController.res.abs_75_a_1 BoilerController.res.abs_76_a_1 BoilerController.res.abs_77_a_1 BoilerController.res.abs_78_a_1 BoilerController.res.abs_79_a_1 BoilerController.res.abs_80_a_1 BoilerController.res.abs_81_a_1 BoilerController.res.abs_82_a_1 BoilerController.res.abs_83_a_1 BoilerController.res.abs_84_a_1 BoilerController.res.abs_85_a_1 BoilerController.res.abs_86_a_1 BoilerController.res.abs_87_a_1 BoilerController.res.abs_88_a_1 BoilerController.res.abs_89_a_1 BoilerController.res.abs_90_a_1 BoilerController.res.abs_91_a_1 BoilerController.res.abs_92_a_1 BoilerController.res.abs_93_a_1 BoilerController.res.abs_94_a_1 BoilerController.res.abs_95_a_1 BoilerController.res.abs_96_a_1 BoilerController.res.inst_2_a_1 BoilerController.impl.usr.op_mode_a_0 BoilerController.res.abs_3_a_0 BoilerController.res.abs_14_a_0 BoilerController.res.abs_25_a_0 BoilerController.res.abs_36_a_0 BoilerController.impl.usr.pump_defect_0_a_0 BoilerController.impl.usr.pump_defect_1_a_0 BoilerController.impl.usr.pump_defect_2_a_0 BoilerController.impl.usr.pump_defect_3_a_0 BoilerController.impl.usr.pump_control_defect_0_a_0 BoilerController.impl.usr.pump_control_defect_1_a_0 BoilerController.impl.usr.pump_control_defect_2_a_0 BoilerController.impl.usr.pump_control_defect_3_a_0 BoilerController.res.abs_5_a_0 BoilerController.res.abs_16_a_0 BoilerController.res.abs_27_a_0 BoilerController.res.abs_38_a_0 BoilerController.res.abs_7_a_0 BoilerController.res.abs_18_a_0 BoilerController.res.abs_29_a_0 BoilerController.res.abs_40_a_0 BoilerController.res.abs_73_a_0 BoilerController.res.abs_74_a_0 BoilerController.res.abs_75_a_0 BoilerController.res.abs_76_a_0 BoilerController.res.abs_77_a_0 BoilerController.res.abs_78_a_0 BoilerController.res.abs_79_a_0 BoilerController.res.abs_80_a_0 BoilerController.res.abs_81_a_0 BoilerController.res.abs_82_a_0 BoilerController.res.abs_83_a_0 BoilerController.res.abs_84_a_0 BoilerController.res.abs_85_a_0 BoilerController.res.abs_86_a_0 BoilerController.res.abs_87_a_0 BoilerController.res.abs_88_a_0 BoilerController.res.abs_89_a_0 BoilerController.res.abs_90_a_0 BoilerController.res.abs_91_a_0 BoilerController.res.abs_92_a_0 BoilerController.res.abs_93_a_0 BoilerController.res.abs_94_a_0 BoilerController.res.abs_95_a_0 BoilerController.res.abs_96_a_0 BoilerController.res.inst_2_a_0) (__node_trans_LevelOutput_0 BoilerController.impl.usr.op_mode_a_1 BoilerController.res.abs_51_a_1 BoilerController.usr.level_repaired_a_1 BoilerController.res.abs_97_a_1 BoilerController.res.abs_98_a_1 BoilerController.res.inst_1_a_1 BoilerController.impl.usr.op_mode_a_0 BoilerController.res.abs_51_a_0 BoilerController.usr.level_repaired_a_0 BoilerController.res.abs_97_a_0 BoilerController.res.abs_98_a_0 BoilerController.res.inst_1_a_0) (__node_trans_SteamOutput_0 BoilerController.impl.usr.op_mode_a_1 BoilerController.res.abs_52_a_1 BoilerController.usr.steam_repaired_a_1 BoilerController.res.abs_99_a_1 BoilerController.res.abs_100_a_1 BoilerController.res.inst_0_a_1 BoilerController.impl.usr.op_mode_a_0 BoilerController.res.abs_52_a_0 BoilerController.usr.steam_repaired_a_0 BoilerController.res.abs_99_a_0 BoilerController.res.abs_100_a_0 BoilerController.res.inst_0_a_0) (<= 1 BoilerController.impl.usr.op_mode_a_1 6) (<= 1 BoilerController.res.abs_68_a_1 6) (<= 0 X9 2) (<= 0 BoilerController.res.abs_1_a_1 2) (<= 0 X10 2) (<= 0 BoilerController.res.abs_2_a_1 2) (<= 0 X19 2) (<= 0 BoilerController.res.abs_11_a_1 2) (<= 0 X17 2) (<= 0 BoilerController.res.abs_22_a_1 2) (<= 0 X16 2) (<= 0 BoilerController.res.abs_33_a_1 2) (<= 0 X15 2) (<= 0 BoilerController.res.abs_44_a_1 2) (<= 0 X18 2) (<= 0 BoilerController.res.abs_12_a_1 2) (<= 0 X14 2) (<= 0 BoilerController.res.abs_23_a_1 2) (<= 0 X13 2) (<= 0 BoilerController.res.abs_34_a_1 2) (<= 0 X12 2) (<= 0 BoilerController.res.abs_45_a_1 2) (not BoilerController.res.init_flag_a_1))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.stop_a_0 Bool) (top.usr.steam_boiler_waiting_a_0 Bool) (top.usr.physical_units_ready_a_0 Bool) (top.usr.level_a_0 Int) (top.usr.steam_a_0 Int) (top.usr.pump_state_0_a_0 Int) (top.usr.pump_state_1_a_0 Int) (top.usr.pump_state_2_a_0 Int) (top.usr.pump_state_3_a_0 Int) (top.usr.pump_control_state_0_a_0 Bool) (top.usr.pump_control_state_1_a_0 Bool) (top.usr.pump_control_state_2_a_0 Bool) (top.usr.pump_control_state_3_a_0 Bool) (top.usr.pump_repaired_0_a_0 Bool) (top.usr.pump_repaired_1_a_0 Bool) (top.usr.pump_repaired_2_a_0 Bool) (top.usr.pump_repaired_3_a_0 Bool) (top.usr.pump_control_repaired_0_a_0 Bool) (top.usr.pump_control_repaired_1_a_0 Bool) (top.usr.pump_control_repaired_2_a_0 Bool) (top.usr.pump_control_repaired_3_a_0 Bool) (top.usr.level_repaired_a_0 Bool) (top.usr.steam_repaired_a_0 Bool) (top.usr.pump_failure_acknowledgement_0_a_0 Bool) (top.usr.pump_failure_acknowledgement_1_a_0 Bool) (top.usr.pump_failure_acknowledgement_2_a_0 Bool) (top.usr.pump_failure_acknowledgement_3_a_0 Bool) (top.usr.pump_control_failure_acknowledgement_0_a_0 Bool) (top.usr.pump_control_failure_acknowledgement_1_a_0 Bool) (top.usr.pump_control_failure_acknowledgement_2_a_0 Bool) (top.usr.pump_control_failure_acknowledgement_3_a_0 Bool) (top.usr.level_failure_acknowledgement_a_0 Bool) (top.usr.steam_failure_acknowledgement_a_0 Bool) (top.res.nondet_32 Int) (top.res.nondet_31 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.abs_12_a_0 Bool) (top.res.abs_13_a_0 Bool) (top.res.abs_14_a_0 Bool) (top.res.abs_15_a_0 Bool) (top.res.abs_16_a_0 Bool) (top.res.abs_17_a_0 Bool) (top.res.abs_18_a_0 Bool) (top.res.abs_19_a_0 Bool) (top.res.abs_20_a_0 Bool) (top.res.abs_21_a_0 Bool) (top.res.abs_22_a_0 Bool) (top.res.abs_23_a_0 Bool) (top.res.abs_24_a_0 Bool) (top.res.abs_25_a_0 Bool) (top.res.abs_26_a_0 Bool) (top.res.abs_27_a_0 Bool) (top.res.abs_28_a_0 Bool) (top.res.abs_29_a_0 Bool) (top.res.abs_30_a_0 Bool) (top.res.abs_31_a_0 Bool) (top.res.abs_32_a_0 Bool) (top.res.abs_33_a_0 Bool) (top.res.abs_34_a_0 Bool) (top.res.abs_35_a_0 Bool) (top.res.abs_36_a_0 Bool) (top.res.abs_37_a_0 Bool) (top.res.abs_38_a_0 Bool) (top.res.abs_39_a_0 Bool) (top.res.abs_40_a_0 Bool) (top.res.inst_297_a_0 Bool) (top.res.inst_296_a_0 Bool) (top.res.inst_295_a_0 Int) (top.res.inst_294_a_0 Int) (top.res.inst_293_a_0 Int) (top.res.inst_292_a_0 Int) (top.res.inst_291_a_0 Int) (top.res.inst_290_a_0 Int) (top.res.inst_289_a_0 Int) (top.res.inst_288_a_0 Int) (top.res.inst_287_a_0 Int) (top.res.inst_286_a_0 Int) (top.res.inst_285_a_0 Int) (top.res.inst_284_a_0 Int) (top.res.inst_283_a_0 Int) (top.res.inst_282_a_0 Int) (top.res.inst_281_a_0 Int) (top.res.inst_280_a_0 Int) (top.res.inst_279_a_0 Int) (top.res.inst_278_a_0 Bool) (top.res.inst_277_a_0 Int) (top.res.inst_276_a_0 Int) (top.res.inst_275_a_0 Int) (top.res.inst_274_a_0 Bool) (top.res.inst_273_a_0 Bool) (top.res.inst_272_a_0 Bool) (top.res.inst_271_a_0 Bool) (top.res.inst_270_a_0 Int) (top.res.inst_269_a_0 Int) (top.res.inst_268_a_0 Bool) (top.res.inst_267_a_0 Int) (top.res.inst_266_a_0 Int) (top.res.inst_265_a_0 Bool) (top.res.inst_264_a_0 Int) (top.res.inst_263_a_0 Bool) (top.res.inst_262_a_0 Bool) (top.res.inst_261_a_0 Bool) (top.res.inst_260_a_0 Bool) (top.res.inst_259_a_0 Int) (top.res.inst_258_a_0 Int) (top.res.inst_257_a_0 Bool) (top.res.inst_256_a_0 Int) (top.res.inst_255_a_0 Int) (top.res.inst_254_a_0 Bool) (top.res.inst_253_a_0 Int) (top.res.inst_252_a_0 Bool) (top.res.inst_251_a_0 Bool) (top.res.inst_250_a_0 Bool) (top.res.inst_249_a_0 Bool) (top.res.inst_248_a_0 Int) (top.res.inst_247_a_0 Int) (top.res.inst_246_a_0 Bool) (top.res.inst_245_a_0 Int) (top.res.inst_244_a_0 Int) (top.res.inst_243_a_0 Bool) (top.res.inst_242_a_0 Int) (top.res.inst_241_a_0 Bool) (top.res.inst_240_a_0 Bool) (top.res.inst_239_a_0 Bool) (top.res.inst_238_a_0 Bool) (top.res.inst_237_a_0 Int) (top.res.inst_236_a_0 Int) (top.res.inst_235_a_0 Bool) (top.res.inst_234_a_0 Int) (top.res.inst_233_a_0 Int) (top.res.inst_232_a_0 Bool) (top.res.inst_231_a_0 Int) (top.res.inst_230_a_0 Int) (top.res.inst_229_a_0 Int) (top.res.inst_228_a_0 Int) (top.res.inst_227_a_0 Int) (top.res.inst_226_a_0 Bool) (top.res.inst_225_a_0 Bool) (top.res.inst_224_a_0 Bool) (top.res.inst_223_a_0 Bool) (top.res.inst_222_a_0 Int) (top.res.inst_221_a_0 Int) (top.res.inst_220_a_0 Int) (top.res.inst_219_a_0 Int) (top.res.inst_218_a_0 Int) (top.res.inst_217_a_0 Int) (top.res.inst_216_a_0 Int) (top.res.inst_215_a_0 Int) (top.res.inst_214_a_0 Int) (top.res.inst_213_a_0 Int) (top.res.inst_212_a_0 Int) (top.res.inst_211_a_0 Int) (top.res.inst_210_a_0 Bool) (top.res.inst_209_a_0 Int) (top.res.inst_208_a_0 Bool) (top.res.inst_207_a_0 Int) (top.res.inst_206_a_0 Bool) (top.res.inst_205_a_0 Bool) (top.res.inst_204_a_0 Bool) (top.res.inst_203_a_0 Bool) (top.res.inst_202_a_0 Bool) (top.res.inst_201_a_0 Bool) (top.res.inst_200_a_0 Bool) (top.res.inst_199_a_0 Bool) (top.res.inst_198_a_0 Bool) (top.res.inst_197_a_0 Bool) (top.res.inst_196_a_0 Bool) (top.res.inst_195_a_0 Bool) (top.res.inst_194_a_0 Bool) (top.res.inst_193_a_0 Bool) (top.res.inst_192_a_0 Bool) (top.res.inst_191_a_0 Bool) (top.res.inst_190_a_0 Bool) (top.res.inst_189_a_0 Bool) (top.res.inst_188_a_0 Bool) (top.res.inst_187_a_0 Bool) (top.res.inst_186_a_0 Bool) (top.res.inst_185_a_0 Bool) (top.res.inst_184_a_0 Bool) (top.res.inst_183_a_0 Bool) (top.res.inst_182_a_0 Bool) (top.res.inst_181_a_0 Bool) (top.res.inst_180_a_0 Bool) (top.res.inst_179_a_0 Bool) (top.res.inst_178_a_0 Bool) (top.res.inst_177_a_0 Bool) (top.res.inst_176_a_0 Bool) (top.res.inst_175_a_0 Bool) (top.res.inst_174_a_0 Int) (top.res.inst_173_a_0 Bool) (top.res.inst_172_a_0 Bool) (top.res.inst_171_a_0 Bool) (top.res.inst_170_a_0 Bool) (top.res.inst_169_a_0 Bool) (top.res.inst_168_a_0 Bool) (top.res.inst_167_a_0 Bool) (top.res.inst_166_a_0 Bool) (top.res.inst_165_a_0 Bool) (top.res.inst_164_a_0 Bool) (top.res.inst_163_a_0 Bool) (top.res.inst_162_a_0 Bool) (top.res.inst_161_a_0 Bool) (top.res.inst_160_a_0 Bool) (top.res.inst_159_a_0 Bool) (top.res.inst_158_a_0 Bool) (top.res.inst_157_a_0 Bool) (top.res.inst_156_a_0 Bool) (top.res.inst_155_a_0 Bool) (top.res.inst_154_a_0 Bool) (top.res.inst_153_a_0 Bool) (top.res.inst_152_a_0 Bool) (top.res.inst_151_a_0 Bool) (top.res.inst_150_a_0 Bool) (top.res.inst_149_a_0 Bool) (top.res.inst_148_a_0 Bool) (top.res.inst_147_a_0 Bool) (top.res.inst_146_a_0 Bool) (top.res.inst_145_a_0 Bool) (top.res.inst_144_a_0 Bool) (top.res.inst_143_a_0 Bool) (top.res.inst_142_a_0 Bool) (top.res.inst_141_a_0 Bool) (top.res.inst_140_a_0 Bool) (top.res.inst_139_a_0 Bool) (top.res.inst_138_a_0 Bool) (top.res.inst_137_a_0 Bool) (top.res.inst_136_a_0 Bool) (top.res.inst_135_a_0 Bool) (top.res.inst_134_a_0 Bool) (top.res.inst_133_a_0 Bool) (top.res.inst_132_a_0 Bool) (top.res.inst_131_a_0 Bool) (top.res.inst_130_a_0 Bool) (top.res.inst_129_a_0 Bool) (top.res.inst_128_a_0 Bool) (top.res.inst_127_a_0 Bool) (top.res.inst_126_a_0 Bool) (top.res.inst_125_a_0 Bool) (top.res.inst_124_a_0 Bool) (top.res.inst_123_a_0 Bool) (top.res.inst_122_a_0 Int) (top.res.inst_121_a_0 Bool) (top.res.inst_120_a_0 Bool) (top.res.inst_119_a_0 Int) (top.res.inst_118_a_0 Int) (top.res.inst_117_a_0 Bool) (top.res.inst_116_a_0 Bool) (top.res.inst_115_a_0 Bool) (top.res.inst_114_a_0 Bool) (top.res.inst_113_a_0 Int) (top.res.inst_112_a_0 Int) (top.res.inst_111_a_0 Bool) (top.res.inst_110_a_0 Bool) (top.res.inst_109_a_0 Bool) (top.res.inst_108_a_0 Bool) (top.res.inst_107_a_0 Bool) (top.res.inst_106_a_0 Bool) (top.res.inst_105_a_0 Bool) (top.res.inst_104_a_0 Bool) (top.res.inst_103_a_0 Int) (top.res.inst_102_a_0 Int) (top.res.inst_101_a_0 Int) (top.res.inst_100_a_0 Int) (top.res.inst_99_a_0 Bool) (top.res.inst_98_a_0 Bool) (top.res.inst_97_a_0 Bool) (top.res.inst_96_a_0 Bool) (top.res.inst_95_a_0 Int) (top.res.inst_94_a_0 Int) (top.res.inst_93_a_0 Int) (top.res.inst_92_a_0 Int) (top.res.inst_91_a_0 Int) (top.res.inst_90_a_0 Int) (top.res.inst_89_a_0 Int) (top.res.inst_88_a_0 Int) (top.res.inst_87_a_0 Int) (top.res.inst_86_a_0 Int) (top.res.inst_85_a_0 Bool) (top.res.inst_84_a_0 Bool) (top.res.inst_83_a_0 Bool) (top.res.inst_82_a_0 Bool) (top.res.inst_81_a_0 Int) (top.res.inst_80_a_0 Int) (top.res.inst_79_a_0 Int) (top.res.inst_78_a_0 Int) (top.res.inst_77_a_0 Bool) (top.res.inst_76_a_0 Int) (top.res.inst_75_a_0 Bool) (top.res.inst_74_a_0 Int) (top.res.inst_73_a_0 Bool) (top.res.inst_72_a_0 Int) (top.res.inst_71_a_0 Bool) (top.res.inst_70_a_0 Int) (top.res.inst_69_a_0 Bool) (top.res.inst_68_a_0 Int) (top.res.inst_67_a_0 Bool) (top.res.inst_66_a_0 Int) (top.res.inst_65_a_0 Bool) (top.res.inst_64_a_0 Int) (top.res.inst_63_a_0 Bool) (top.res.inst_62_a_0 Int) (top.res.inst_61_a_0 Bool) (top.res.inst_60_a_0 Bool) (top.res.inst_59_a_0 Bool) (top.res.inst_58_a_0 Bool) (top.res.inst_57_a_0 Bool) (top.res.inst_56_a_0 Bool) (top.res.inst_55_a_0 Bool) (top.res.inst_54_a_0 Bool) (top.res.inst_53_a_0 Bool) (top.res.inst_52_a_0 Bool) (top.res.inst_51_a_0 Bool) (top.res.inst_50_a_0 Bool) (top.res.inst_49_a_0 Int) (top.res.inst_48_a_0 Bool) (top.res.inst_47_a_0 Bool) (top.res.inst_46_a_0 Bool) (top.res.inst_45_a_0 Bool) (top.res.inst_44_a_0 Bool) (top.res.inst_43_a_0 Bool) (top.res.inst_42_a_0 Bool) (top.res.inst_41_a_0 Bool) (top.res.inst_40_a_0 Bool) (top.res.inst_39_a_0 Bool) (top.res.inst_38_a_0 Bool) (top.res.inst_37_a_0 Int) (top.res.inst_36_a_0 Int) (top.res.inst_35_a_0 Int) (top.res.inst_34_a_0 Int) (top.res.inst_33_a_0 Bool) (top.res.inst_32_a_0 Bool) (top.res.inst_31_a_0 Bool) (top.res.inst_30_a_0 Bool) (top.res.inst_29_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Int) (top.res.inst_23_a_0 Int) (top.res.inst_22_a_0 Int) (top.res.inst_21_a_0 Int) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Int) (top.res.inst_10_a_0 Int) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Int) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_18_a_0)) (and (= top.res.abs_39_a_0 (not X1)) (let ((X2 top.res.abs_17_a_0)) (and (= top.res.abs_38_a_0 (not X2)) (let ((X3 top.res.abs_16_a_0)) (and (= top.res.abs_37_a_0 (not X3)) (let ((X4 top.res.abs_15_a_0)) (and (= top.res.abs_36_a_0 (not X4)) (let ((X5 top.res.abs_14_a_0)) (and (= top.res.abs_34_a_0 (not X5)) (let ((X6 top.res.abs_13_a_0)) (and (= top.res.abs_33_a_0 (not X6)) (let ((X7 top.res.abs_12_a_0)) (and (= top.res.abs_32_a_0 (not X7)) (let ((X8 top.res.abs_11_a_0)) (and (= top.res.abs_31_a_0 (not X8)) (let ((X9 top.res.abs_20_a_0)) (let ((X10 top.res.abs_19_a_0)) (let ((X11 top.res.abs_2_a_0)) (let ((X12 top.res.abs_1_a_0)) (let ((X13 (=> (= X12 3) (not X11)))) (let ((X14 (=> (= X12 3) (and (and (and (not X10) (not X9)) top.res.abs_35_a_0) top.res.abs_40_a_0)))) (let ((X15 (or (or (or (or (or (= X12 1) (= X12 2)) (= X12 3)) (= X12 4)) (= X12 5)) (= X12 6)))) (and (= top.usr.OK_a_0 (and (and X15 X14) X13)) (__node_init_BoilerController_0 top.usr.stop_a_0 top.usr.steam_boiler_waiting_a_0 top.usr.physical_units_ready_a_0 top.usr.level_a_0 top.usr.steam_a_0 top.usr.pump_state_0_a_0 top.usr.pump_state_1_a_0 top.usr.pump_state_2_a_0 top.usr.pump_state_3_a_0 top.usr.pump_control_state_0_a_0 top.usr.pump_control_state_1_a_0 top.usr.pump_control_state_2_a_0 top.usr.pump_control_state_3_a_0 top.usr.pump_repaired_0_a_0 top.usr.pump_repaired_1_a_0 top.usr.pump_repaired_2_a_0 top.usr.pump_repaired_3_a_0 top.usr.pump_control_repaired_0_a_0 top.usr.pump_control_repaired_1_a_0 top.usr.pump_control_repaired_2_a_0 top.usr.pump_control_repaired_3_a_0 top.usr.level_repaired_a_0 top.usr.steam_repaired_a_0 top.usr.pump_failure_acknowledgement_0_a_0 top.usr.pump_failure_acknowledgement_1_a_0 top.usr.pump_failure_acknowledgement_2_a_0 top.usr.pump_failure_acknowledgement_3_a_0 top.usr.pump_control_failure_acknowledgement_0_a_0 top.usr.pump_control_failure_acknowledgement_1_a_0 top.usr.pump_control_failure_acknowledgement_2_a_0 top.usr.pump_control_failure_acknowledgement_3_a_0 top.usr.level_failure_acknowledgement_a_0 top.usr.steam_failure_acknowledgement_a_0 top.res.nondet_32 top.res.nondet_31 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.abs_13_a_0 top.res.abs_14_a_0 top.res.abs_15_a_0 top.res.abs_16_a_0 top.res.abs_17_a_0 top.res.abs_18_a_0 top.res.abs_19_a_0 top.res.abs_20_a_0 top.res.abs_21_a_0 top.res.abs_22_a_0 top.res.abs_23_a_0 top.res.abs_24_a_0 top.res.abs_25_a_0 top.res.abs_26_a_0 top.res.abs_27_a_0 top.res.abs_28_a_0 top.res.abs_29_a_0 top.res.abs_30_a_0 top.res.inst_297_a_0 top.res.inst_296_a_0 top.res.inst_295_a_0 top.res.inst_294_a_0 top.res.inst_293_a_0 top.res.inst_292_a_0 top.res.inst_291_a_0 top.res.inst_290_a_0 top.res.inst_289_a_0 top.res.inst_288_a_0 top.res.inst_287_a_0 top.res.inst_286_a_0 top.res.inst_285_a_0 top.res.inst_284_a_0 top.res.inst_283_a_0 top.res.inst_282_a_0 top.res.inst_281_a_0 top.res.inst_280_a_0 top.res.inst_279_a_0 top.res.inst_278_a_0 top.res.inst_277_a_0 top.res.inst_276_a_0 top.res.inst_275_a_0 top.res.inst_274_a_0 top.res.inst_273_a_0 top.res.inst_272_a_0 top.res.inst_271_a_0 top.res.inst_270_a_0 top.res.inst_269_a_0 top.res.inst_268_a_0 top.res.inst_267_a_0 top.res.inst_266_a_0 top.res.inst_265_a_0 top.res.inst_264_a_0 top.res.inst_263_a_0 top.res.inst_262_a_0 top.res.inst_261_a_0 top.res.inst_260_a_0 top.res.inst_259_a_0 top.res.inst_258_a_0 top.res.inst_257_a_0 top.res.inst_256_a_0 top.res.inst_255_a_0 top.res.inst_254_a_0 top.res.inst_253_a_0 top.res.inst_252_a_0 top.res.inst_251_a_0 top.res.inst_250_a_0 top.res.inst_249_a_0 top.res.inst_248_a_0 top.res.inst_247_a_0 top.res.inst_246_a_0 top.res.inst_245_a_0 top.res.inst_244_a_0 top.res.inst_243_a_0 top.res.inst_242_a_0 top.res.inst_241_a_0 top.res.inst_240_a_0 top.res.inst_239_a_0 top.res.inst_238_a_0 top.res.inst_237_a_0 top.res.inst_236_a_0 top.res.inst_235_a_0 top.res.inst_234_a_0 top.res.inst_233_a_0 top.res.inst_232_a_0 top.res.inst_231_a_0 top.res.inst_230_a_0 top.res.inst_229_a_0 top.res.inst_228_a_0 top.res.inst_227_a_0 top.res.inst_226_a_0 top.res.inst_225_a_0 top.res.inst_224_a_0 top.res.inst_223_a_0 top.res.inst_222_a_0 top.res.inst_221_a_0 top.res.inst_220_a_0 top.res.inst_219_a_0 top.res.inst_218_a_0 top.res.inst_217_a_0 top.res.inst_216_a_0 top.res.inst_215_a_0 top.res.inst_214_a_0 top.res.inst_213_a_0 top.res.inst_212_a_0 top.res.inst_211_a_0 top.res.inst_210_a_0 top.res.inst_209_a_0 top.res.inst_208_a_0 top.res.inst_207_a_0 top.res.inst_206_a_0 top.res.inst_205_a_0 top.res.inst_204_a_0 top.res.inst_203_a_0 top.res.inst_202_a_0 top.res.inst_201_a_0 top.res.inst_200_a_0 top.res.inst_199_a_0 top.res.inst_198_a_0 top.res.inst_197_a_0 top.res.inst_196_a_0 top.res.inst_195_a_0 top.res.inst_194_a_0 top.res.inst_193_a_0 top.res.inst_192_a_0 top.res.inst_191_a_0 top.res.inst_190_a_0 top.res.inst_189_a_0 top.res.inst_188_a_0 top.res.inst_187_a_0 top.res.inst_186_a_0 top.res.inst_185_a_0 top.res.inst_184_a_0 top.res.inst_183_a_0 top.res.inst_182_a_0 top.res.inst_181_a_0 top.res.inst_180_a_0 top.res.inst_179_a_0 top.res.inst_178_a_0 top.res.inst_177_a_0 top.res.inst_176_a_0 top.res.inst_175_a_0 top.res.inst_174_a_0 top.res.inst_173_a_0 top.res.inst_172_a_0 top.res.inst_171_a_0 top.res.inst_170_a_0 top.res.inst_169_a_0 top.res.inst_168_a_0 top.res.inst_167_a_0 top.res.inst_166_a_0 top.res.inst_165_a_0 top.res.inst_164_a_0 top.res.inst_163_a_0 top.res.inst_162_a_0 top.res.inst_161_a_0 top.res.inst_160_a_0 top.res.inst_159_a_0 top.res.inst_158_a_0 top.res.inst_157_a_0 top.res.inst_156_a_0 top.res.inst_155_a_0 top.res.inst_154_a_0 top.res.inst_153_a_0 top.res.inst_152_a_0 top.res.inst_151_a_0 top.res.inst_150_a_0 top.res.inst_149_a_0 top.res.inst_148_a_0 top.res.inst_147_a_0 top.res.inst_146_a_0 top.res.inst_145_a_0 top.res.inst_144_a_0 top.res.inst_143_a_0 top.res.inst_142_a_0 top.res.inst_141_a_0 top.res.inst_140_a_0 top.res.inst_139_a_0 top.res.inst_138_a_0 top.res.inst_137_a_0 top.res.inst_136_a_0 top.res.inst_135_a_0 top.res.inst_134_a_0 top.res.inst_133_a_0 top.res.inst_132_a_0 top.res.inst_131_a_0 top.res.inst_130_a_0 top.res.inst_129_a_0 top.res.inst_128_a_0 top.res.inst_127_a_0 top.res.inst_126_a_0 top.res.inst_125_a_0 top.res.inst_124_a_0 top.res.inst_123_a_0 top.res.inst_122_a_0 top.res.inst_121_a_0 top.res.inst_120_a_0 top.res.inst_119_a_0 top.res.inst_118_a_0 top.res.inst_117_a_0 top.res.inst_116_a_0 top.res.inst_115_a_0 top.res.inst_114_a_0 top.res.inst_113_a_0 top.res.inst_112_a_0 top.res.inst_111_a_0 top.res.inst_110_a_0 top.res.inst_109_a_0 top.res.inst_108_a_0 top.res.inst_107_a_0 top.res.inst_106_a_0 top.res.inst_105_a_0 top.res.inst_104_a_0 top.res.inst_103_a_0 top.res.inst_102_a_0 top.res.inst_101_a_0 top.res.inst_100_a_0 top.res.inst_99_a_0 top.res.inst_98_a_0 top.res.inst_97_a_0 top.res.inst_96_a_0 top.res.inst_95_a_0 top.res.inst_94_a_0 top.res.inst_93_a_0 top.res.inst_92_a_0 top.res.inst_91_a_0 top.res.inst_90_a_0 top.res.inst_89_a_0 top.res.inst_88_a_0 top.res.inst_87_a_0 top.res.inst_86_a_0 top.res.inst_85_a_0 top.res.inst_84_a_0 top.res.inst_83_a_0 top.res.inst_82_a_0 top.res.inst_81_a_0 top.res.inst_80_a_0 top.res.inst_79_a_0 top.res.inst_78_a_0 top.res.inst_77_a_0 top.res.inst_76_a_0 top.res.inst_75_a_0 top.res.inst_74_a_0 top.res.inst_73_a_0 top.res.inst_72_a_0 top.res.inst_71_a_0 top.res.inst_70_a_0 top.res.inst_69_a_0 top.res.inst_68_a_0 top.res.inst_67_a_0 top.res.inst_66_a_0 top.res.inst_65_a_0 top.res.inst_64_a_0 top.res.inst_63_a_0 top.res.inst_62_a_0 top.res.inst_61_a_0 top.res.inst_60_a_0 top.res.inst_59_a_0 top.res.inst_58_a_0 top.res.inst_57_a_0 top.res.inst_56_a_0 top.res.inst_55_a_0 top.res.inst_54_a_0 top.res.inst_53_a_0 top.res.inst_52_a_0 top.res.inst_51_a_0 top.res.inst_50_a_0 top.res.inst_49_a_0 top.res.inst_48_a_0 top.res.inst_47_a_0 top.res.inst_46_a_0 top.res.inst_45_a_0 top.res.inst_44_a_0 top.res.inst_43_a_0 top.res.inst_42_a_0 top.res.inst_41_a_0 top.res.inst_40_a_0 top.res.inst_39_a_0 top.res.inst_38_a_0 top.res.inst_37_a_0 top.res.inst_36_a_0 top.res.inst_35_a_0 top.res.inst_34_a_0 top.res.inst_33_a_0 top.res.inst_32_a_0 top.res.inst_31_a_0 top.res.inst_30_a_0 top.res.inst_29_a_0 top.res.inst_28_a_0 top.res.inst_27_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_AND_0 top.res.abs_31_a_0 top.res.abs_32_a_0 top.res.abs_33_a_0 top.res.abs_34_a_0 top.res.abs_35_a_0 top.res.inst_1_a_0) (__node_init_AND_0 top.res.abs_36_a_0 top.res.abs_37_a_0 top.res.abs_38_a_0 top.res.abs_39_a_0 top.res.abs_40_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))))))))))))))))))))) +(define-fun __node_trans_top_0 ((top.usr.stop_a_1 Bool) (top.usr.steam_boiler_waiting_a_1 Bool) (top.usr.physical_units_ready_a_1 Bool) (top.usr.level_a_1 Int) (top.usr.steam_a_1 Int) (top.usr.pump_state_0_a_1 Int) (top.usr.pump_state_1_a_1 Int) (top.usr.pump_state_2_a_1 Int) (top.usr.pump_state_3_a_1 Int) (top.usr.pump_control_state_0_a_1 Bool) (top.usr.pump_control_state_1_a_1 Bool) (top.usr.pump_control_state_2_a_1 Bool) (top.usr.pump_control_state_3_a_1 Bool) (top.usr.pump_repaired_0_a_1 Bool) (top.usr.pump_repaired_1_a_1 Bool) (top.usr.pump_repaired_2_a_1 Bool) (top.usr.pump_repaired_3_a_1 Bool) (top.usr.pump_control_repaired_0_a_1 Bool) (top.usr.pump_control_repaired_1_a_1 Bool) (top.usr.pump_control_repaired_2_a_1 Bool) (top.usr.pump_control_repaired_3_a_1 Bool) (top.usr.level_repaired_a_1 Bool) (top.usr.steam_repaired_a_1 Bool) (top.usr.pump_failure_acknowledgement_0_a_1 Bool) (top.usr.pump_failure_acknowledgement_1_a_1 Bool) (top.usr.pump_failure_acknowledgement_2_a_1 Bool) (top.usr.pump_failure_acknowledgement_3_a_1 Bool) (top.usr.pump_control_failure_acknowledgement_0_a_1 Bool) (top.usr.pump_control_failure_acknowledgement_1_a_1 Bool) (top.usr.pump_control_failure_acknowledgement_2_a_1 Bool) (top.usr.pump_control_failure_acknowledgement_3_a_1 Bool) (top.usr.level_failure_acknowledgement_a_1 Bool) (top.usr.steam_failure_acknowledgement_a_1 Bool) (top.res.nondet_32 Int) (top.res.nondet_31 Int) (top.res.nondet_30 Int) (top.res.nondet_29 Int) (top.res.nondet_28 Int) (top.res.nondet_27 Int) (top.res.nondet_26 Int) (top.res.nondet_25 Int) (top.res.nondet_24 Int) (top.res.nondet_23 Int) (top.res.nondet_22 Int) (top.res.nondet_21 Int) (top.res.nondet_20 Int) (top.res.nondet_19 Int) (top.res.nondet_18 Int) (top.res.nondet_17 Int) (top.res.nondet_16 Int) (top.res.nondet_15 Int) (top.res.nondet_14 Int) (top.res.nondet_13 Int) (top.res.nondet_12 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.abs_12_a_1 Bool) (top.res.abs_13_a_1 Bool) (top.res.abs_14_a_1 Bool) (top.res.abs_15_a_1 Bool) (top.res.abs_16_a_1 Bool) (top.res.abs_17_a_1 Bool) (top.res.abs_18_a_1 Bool) (top.res.abs_19_a_1 Bool) (top.res.abs_20_a_1 Bool) (top.res.abs_21_a_1 Bool) (top.res.abs_22_a_1 Bool) (top.res.abs_23_a_1 Bool) (top.res.abs_24_a_1 Bool) (top.res.abs_25_a_1 Bool) (top.res.abs_26_a_1 Bool) (top.res.abs_27_a_1 Bool) (top.res.abs_28_a_1 Bool) (top.res.abs_29_a_1 Bool) (top.res.abs_30_a_1 Bool) (top.res.abs_31_a_1 Bool) (top.res.abs_32_a_1 Bool) (top.res.abs_33_a_1 Bool) (top.res.abs_34_a_1 Bool) (top.res.abs_35_a_1 Bool) (top.res.abs_36_a_1 Bool) (top.res.abs_37_a_1 Bool) (top.res.abs_38_a_1 Bool) (top.res.abs_39_a_1 Bool) (top.res.abs_40_a_1 Bool) (top.res.inst_297_a_1 Bool) (top.res.inst_296_a_1 Bool) (top.res.inst_295_a_1 Int) (top.res.inst_294_a_1 Int) (top.res.inst_293_a_1 Int) (top.res.inst_292_a_1 Int) (top.res.inst_291_a_1 Int) (top.res.inst_290_a_1 Int) (top.res.inst_289_a_1 Int) (top.res.inst_288_a_1 Int) (top.res.inst_287_a_1 Int) (top.res.inst_286_a_1 Int) (top.res.inst_285_a_1 Int) (top.res.inst_284_a_1 Int) (top.res.inst_283_a_1 Int) (top.res.inst_282_a_1 Int) (top.res.inst_281_a_1 Int) (top.res.inst_280_a_1 Int) (top.res.inst_279_a_1 Int) (top.res.inst_278_a_1 Bool) (top.res.inst_277_a_1 Int) (top.res.inst_276_a_1 Int) (top.res.inst_275_a_1 Int) (top.res.inst_274_a_1 Bool) (top.res.inst_273_a_1 Bool) (top.res.inst_272_a_1 Bool) (top.res.inst_271_a_1 Bool) (top.res.inst_270_a_1 Int) (top.res.inst_269_a_1 Int) (top.res.inst_268_a_1 Bool) (top.res.inst_267_a_1 Int) (top.res.inst_266_a_1 Int) (top.res.inst_265_a_1 Bool) (top.res.inst_264_a_1 Int) (top.res.inst_263_a_1 Bool) (top.res.inst_262_a_1 Bool) (top.res.inst_261_a_1 Bool) (top.res.inst_260_a_1 Bool) (top.res.inst_259_a_1 Int) (top.res.inst_258_a_1 Int) (top.res.inst_257_a_1 Bool) (top.res.inst_256_a_1 Int) (top.res.inst_255_a_1 Int) (top.res.inst_254_a_1 Bool) (top.res.inst_253_a_1 Int) (top.res.inst_252_a_1 Bool) (top.res.inst_251_a_1 Bool) (top.res.inst_250_a_1 Bool) (top.res.inst_249_a_1 Bool) (top.res.inst_248_a_1 Int) (top.res.inst_247_a_1 Int) (top.res.inst_246_a_1 Bool) (top.res.inst_245_a_1 Int) (top.res.inst_244_a_1 Int) (top.res.inst_243_a_1 Bool) (top.res.inst_242_a_1 Int) (top.res.inst_241_a_1 Bool) (top.res.inst_240_a_1 Bool) (top.res.inst_239_a_1 Bool) (top.res.inst_238_a_1 Bool) (top.res.inst_237_a_1 Int) (top.res.inst_236_a_1 Int) (top.res.inst_235_a_1 Bool) (top.res.inst_234_a_1 Int) (top.res.inst_233_a_1 Int) (top.res.inst_232_a_1 Bool) (top.res.inst_231_a_1 Int) (top.res.inst_230_a_1 Int) (top.res.inst_229_a_1 Int) (top.res.inst_228_a_1 Int) (top.res.inst_227_a_1 Int) (top.res.inst_226_a_1 Bool) (top.res.inst_225_a_1 Bool) (top.res.inst_224_a_1 Bool) (top.res.inst_223_a_1 Bool) (top.res.inst_222_a_1 Int) (top.res.inst_221_a_1 Int) (top.res.inst_220_a_1 Int) (top.res.inst_219_a_1 Int) (top.res.inst_218_a_1 Int) (top.res.inst_217_a_1 Int) (top.res.inst_216_a_1 Int) (top.res.inst_215_a_1 Int) (top.res.inst_214_a_1 Int) (top.res.inst_213_a_1 Int) (top.res.inst_212_a_1 Int) (top.res.inst_211_a_1 Int) (top.res.inst_210_a_1 Bool) (top.res.inst_209_a_1 Int) (top.res.inst_208_a_1 Bool) (top.res.inst_207_a_1 Int) (top.res.inst_206_a_1 Bool) (top.res.inst_205_a_1 Bool) (top.res.inst_204_a_1 Bool) (top.res.inst_203_a_1 Bool) (top.res.inst_202_a_1 Bool) (top.res.inst_201_a_1 Bool) (top.res.inst_200_a_1 Bool) (top.res.inst_199_a_1 Bool) (top.res.inst_198_a_1 Bool) (top.res.inst_197_a_1 Bool) (top.res.inst_196_a_1 Bool) (top.res.inst_195_a_1 Bool) (top.res.inst_194_a_1 Bool) (top.res.inst_193_a_1 Bool) (top.res.inst_192_a_1 Bool) (top.res.inst_191_a_1 Bool) (top.res.inst_190_a_1 Bool) (top.res.inst_189_a_1 Bool) (top.res.inst_188_a_1 Bool) (top.res.inst_187_a_1 Bool) (top.res.inst_186_a_1 Bool) (top.res.inst_185_a_1 Bool) (top.res.inst_184_a_1 Bool) (top.res.inst_183_a_1 Bool) (top.res.inst_182_a_1 Bool) (top.res.inst_181_a_1 Bool) (top.res.inst_180_a_1 Bool) (top.res.inst_179_a_1 Bool) (top.res.inst_178_a_1 Bool) (top.res.inst_177_a_1 Bool) (top.res.inst_176_a_1 Bool) (top.res.inst_175_a_1 Bool) (top.res.inst_174_a_1 Int) (top.res.inst_173_a_1 Bool) (top.res.inst_172_a_1 Bool) (top.res.inst_171_a_1 Bool) (top.res.inst_170_a_1 Bool) (top.res.inst_169_a_1 Bool) (top.res.inst_168_a_1 Bool) (top.res.inst_167_a_1 Bool) (top.res.inst_166_a_1 Bool) (top.res.inst_165_a_1 Bool) (top.res.inst_164_a_1 Bool) (top.res.inst_163_a_1 Bool) (top.res.inst_162_a_1 Bool) (top.res.inst_161_a_1 Bool) (top.res.inst_160_a_1 Bool) (top.res.inst_159_a_1 Bool) (top.res.inst_158_a_1 Bool) (top.res.inst_157_a_1 Bool) (top.res.inst_156_a_1 Bool) (top.res.inst_155_a_1 Bool) (top.res.inst_154_a_1 Bool) (top.res.inst_153_a_1 Bool) (top.res.inst_152_a_1 Bool) (top.res.inst_151_a_1 Bool) (top.res.inst_150_a_1 Bool) (top.res.inst_149_a_1 Bool) (top.res.inst_148_a_1 Bool) (top.res.inst_147_a_1 Bool) (top.res.inst_146_a_1 Bool) (top.res.inst_145_a_1 Bool) (top.res.inst_144_a_1 Bool) (top.res.inst_143_a_1 Bool) (top.res.inst_142_a_1 Bool) (top.res.inst_141_a_1 Bool) (top.res.inst_140_a_1 Bool) (top.res.inst_139_a_1 Bool) (top.res.inst_138_a_1 Bool) (top.res.inst_137_a_1 Bool) (top.res.inst_136_a_1 Bool) (top.res.inst_135_a_1 Bool) (top.res.inst_134_a_1 Bool) (top.res.inst_133_a_1 Bool) (top.res.inst_132_a_1 Bool) (top.res.inst_131_a_1 Bool) (top.res.inst_130_a_1 Bool) (top.res.inst_129_a_1 Bool) (top.res.inst_128_a_1 Bool) (top.res.inst_127_a_1 Bool) (top.res.inst_126_a_1 Bool) (top.res.inst_125_a_1 Bool) (top.res.inst_124_a_1 Bool) (top.res.inst_123_a_1 Bool) (top.res.inst_122_a_1 Int) (top.res.inst_121_a_1 Bool) (top.res.inst_120_a_1 Bool) (top.res.inst_119_a_1 Int) (top.res.inst_118_a_1 Int) (top.res.inst_117_a_1 Bool) (top.res.inst_116_a_1 Bool) (top.res.inst_115_a_1 Bool) (top.res.inst_114_a_1 Bool) (top.res.inst_113_a_1 Int) (top.res.inst_112_a_1 Int) (top.res.inst_111_a_1 Bool) (top.res.inst_110_a_1 Bool) (top.res.inst_109_a_1 Bool) (top.res.inst_108_a_1 Bool) (top.res.inst_107_a_1 Bool) (top.res.inst_106_a_1 Bool) (top.res.inst_105_a_1 Bool) (top.res.inst_104_a_1 Bool) (top.res.inst_103_a_1 Int) (top.res.inst_102_a_1 Int) (top.res.inst_101_a_1 Int) (top.res.inst_100_a_1 Int) (top.res.inst_99_a_1 Bool) (top.res.inst_98_a_1 Bool) (top.res.inst_97_a_1 Bool) (top.res.inst_96_a_1 Bool) (top.res.inst_95_a_1 Int) (top.res.inst_94_a_1 Int) (top.res.inst_93_a_1 Int) (top.res.inst_92_a_1 Int) (top.res.inst_91_a_1 Int) (top.res.inst_90_a_1 Int) (top.res.inst_89_a_1 Int) (top.res.inst_88_a_1 Int) (top.res.inst_87_a_1 Int) (top.res.inst_86_a_1 Int) (top.res.inst_85_a_1 Bool) (top.res.inst_84_a_1 Bool) (top.res.inst_83_a_1 Bool) (top.res.inst_82_a_1 Bool) (top.res.inst_81_a_1 Int) (top.res.inst_80_a_1 Int) (top.res.inst_79_a_1 Int) (top.res.inst_78_a_1 Int) (top.res.inst_77_a_1 Bool) (top.res.inst_76_a_1 Int) (top.res.inst_75_a_1 Bool) (top.res.inst_74_a_1 Int) (top.res.inst_73_a_1 Bool) (top.res.inst_72_a_1 Int) (top.res.inst_71_a_1 Bool) (top.res.inst_70_a_1 Int) (top.res.inst_69_a_1 Bool) (top.res.inst_68_a_1 Int) (top.res.inst_67_a_1 Bool) (top.res.inst_66_a_1 Int) (top.res.inst_65_a_1 Bool) (top.res.inst_64_a_1 Int) (top.res.inst_63_a_1 Bool) (top.res.inst_62_a_1 Int) (top.res.inst_61_a_1 Bool) (top.res.inst_60_a_1 Bool) (top.res.inst_59_a_1 Bool) (top.res.inst_58_a_1 Bool) (top.res.inst_57_a_1 Bool) (top.res.inst_56_a_1 Bool) (top.res.inst_55_a_1 Bool) (top.res.inst_54_a_1 Bool) (top.res.inst_53_a_1 Bool) (top.res.inst_52_a_1 Bool) (top.res.inst_51_a_1 Bool) (top.res.inst_50_a_1 Bool) (top.res.inst_49_a_1 Int) (top.res.inst_48_a_1 Bool) (top.res.inst_47_a_1 Bool) (top.res.inst_46_a_1 Bool) (top.res.inst_45_a_1 Bool) (top.res.inst_44_a_1 Bool) (top.res.inst_43_a_1 Bool) (top.res.inst_42_a_1 Bool) (top.res.inst_41_a_1 Bool) (top.res.inst_40_a_1 Bool) (top.res.inst_39_a_1 Bool) (top.res.inst_38_a_1 Bool) (top.res.inst_37_a_1 Int) (top.res.inst_36_a_1 Int) (top.res.inst_35_a_1 Int) (top.res.inst_34_a_1 Int) (top.res.inst_33_a_1 Bool) (top.res.inst_32_a_1 Bool) (top.res.inst_31_a_1 Bool) (top.res.inst_30_a_1 Bool) (top.res.inst_29_a_1 Bool) (top.res.inst_28_a_1 Bool) (top.res.inst_27_a_1 Bool) (top.res.inst_26_a_1 Bool) (top.res.inst_25_a_1 Bool) (top.res.inst_24_a_1 Int) (top.res.inst_23_a_1 Int) (top.res.inst_22_a_1 Int) (top.res.inst_21_a_1 Int) (top.res.inst_20_a_1 Bool) (top.res.inst_19_a_1 Bool) (top.res.inst_18_a_1 Bool) (top.res.inst_17_a_1 Bool) (top.res.inst_16_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Bool) (top.res.inst_11_a_1 Int) (top.res.inst_10_a_1 Int) (top.res.inst_9_a_1 Int) (top.res.inst_8_a_1 Int) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Bool) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.stop_a_0 Bool) (top.usr.steam_boiler_waiting_a_0 Bool) (top.usr.physical_units_ready_a_0 Bool) (top.usr.level_a_0 Int) (top.usr.steam_a_0 Int) (top.usr.pump_state_0_a_0 Int) (top.usr.pump_state_1_a_0 Int) (top.usr.pump_state_2_a_0 Int) (top.usr.pump_state_3_a_0 Int) (top.usr.pump_control_state_0_a_0 Bool) (top.usr.pump_control_state_1_a_0 Bool) (top.usr.pump_control_state_2_a_0 Bool) (top.usr.pump_control_state_3_a_0 Bool) (top.usr.pump_repaired_0_a_0 Bool) (top.usr.pump_repaired_1_a_0 Bool) (top.usr.pump_repaired_2_a_0 Bool) (top.usr.pump_repaired_3_a_0 Bool) (top.usr.pump_control_repaired_0_a_0 Bool) (top.usr.pump_control_repaired_1_a_0 Bool) (top.usr.pump_control_repaired_2_a_0 Bool) (top.usr.pump_control_repaired_3_a_0 Bool) (top.usr.level_repaired_a_0 Bool) (top.usr.steam_repaired_a_0 Bool) (top.usr.pump_failure_acknowledgement_0_a_0 Bool) (top.usr.pump_failure_acknowledgement_1_a_0 Bool) (top.usr.pump_failure_acknowledgement_2_a_0 Bool) (top.usr.pump_failure_acknowledgement_3_a_0 Bool) (top.usr.pump_control_failure_acknowledgement_0_a_0 Bool) (top.usr.pump_control_failure_acknowledgement_1_a_0 Bool) (top.usr.pump_control_failure_acknowledgement_2_a_0 Bool) (top.usr.pump_control_failure_acknowledgement_3_a_0 Bool) (top.usr.level_failure_acknowledgement_a_0 Bool) (top.usr.steam_failure_acknowledgement_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.abs_12_a_0 Bool) (top.res.abs_13_a_0 Bool) (top.res.abs_14_a_0 Bool) (top.res.abs_15_a_0 Bool) (top.res.abs_16_a_0 Bool) (top.res.abs_17_a_0 Bool) (top.res.abs_18_a_0 Bool) (top.res.abs_19_a_0 Bool) (top.res.abs_20_a_0 Bool) (top.res.abs_21_a_0 Bool) (top.res.abs_22_a_0 Bool) (top.res.abs_23_a_0 Bool) (top.res.abs_24_a_0 Bool) (top.res.abs_25_a_0 Bool) (top.res.abs_26_a_0 Bool) (top.res.abs_27_a_0 Bool) (top.res.abs_28_a_0 Bool) (top.res.abs_29_a_0 Bool) (top.res.abs_30_a_0 Bool) (top.res.abs_31_a_0 Bool) (top.res.abs_32_a_0 Bool) (top.res.abs_33_a_0 Bool) (top.res.abs_34_a_0 Bool) (top.res.abs_35_a_0 Bool) (top.res.abs_36_a_0 Bool) (top.res.abs_37_a_0 Bool) (top.res.abs_38_a_0 Bool) (top.res.abs_39_a_0 Bool) (top.res.abs_40_a_0 Bool) (top.res.inst_297_a_0 Bool) (top.res.inst_296_a_0 Bool) (top.res.inst_295_a_0 Int) (top.res.inst_294_a_0 Int) (top.res.inst_293_a_0 Int) (top.res.inst_292_a_0 Int) (top.res.inst_291_a_0 Int) (top.res.inst_290_a_0 Int) (top.res.inst_289_a_0 Int) (top.res.inst_288_a_0 Int) (top.res.inst_287_a_0 Int) (top.res.inst_286_a_0 Int) (top.res.inst_285_a_0 Int) (top.res.inst_284_a_0 Int) (top.res.inst_283_a_0 Int) (top.res.inst_282_a_0 Int) (top.res.inst_281_a_0 Int) (top.res.inst_280_a_0 Int) (top.res.inst_279_a_0 Int) (top.res.inst_278_a_0 Bool) (top.res.inst_277_a_0 Int) (top.res.inst_276_a_0 Int) (top.res.inst_275_a_0 Int) (top.res.inst_274_a_0 Bool) (top.res.inst_273_a_0 Bool) (top.res.inst_272_a_0 Bool) (top.res.inst_271_a_0 Bool) (top.res.inst_270_a_0 Int) (top.res.inst_269_a_0 Int) (top.res.inst_268_a_0 Bool) (top.res.inst_267_a_0 Int) (top.res.inst_266_a_0 Int) (top.res.inst_265_a_0 Bool) (top.res.inst_264_a_0 Int) (top.res.inst_263_a_0 Bool) (top.res.inst_262_a_0 Bool) (top.res.inst_261_a_0 Bool) (top.res.inst_260_a_0 Bool) (top.res.inst_259_a_0 Int) (top.res.inst_258_a_0 Int) (top.res.inst_257_a_0 Bool) (top.res.inst_256_a_0 Int) (top.res.inst_255_a_0 Int) (top.res.inst_254_a_0 Bool) (top.res.inst_253_a_0 Int) (top.res.inst_252_a_0 Bool) (top.res.inst_251_a_0 Bool) (top.res.inst_250_a_0 Bool) (top.res.inst_249_a_0 Bool) (top.res.inst_248_a_0 Int) (top.res.inst_247_a_0 Int) (top.res.inst_246_a_0 Bool) (top.res.inst_245_a_0 Int) (top.res.inst_244_a_0 Int) (top.res.inst_243_a_0 Bool) (top.res.inst_242_a_0 Int) (top.res.inst_241_a_0 Bool) (top.res.inst_240_a_0 Bool) (top.res.inst_239_a_0 Bool) (top.res.inst_238_a_0 Bool) (top.res.inst_237_a_0 Int) (top.res.inst_236_a_0 Int) (top.res.inst_235_a_0 Bool) (top.res.inst_234_a_0 Int) (top.res.inst_233_a_0 Int) (top.res.inst_232_a_0 Bool) (top.res.inst_231_a_0 Int) (top.res.inst_230_a_0 Int) (top.res.inst_229_a_0 Int) (top.res.inst_228_a_0 Int) (top.res.inst_227_a_0 Int) (top.res.inst_226_a_0 Bool) (top.res.inst_225_a_0 Bool) (top.res.inst_224_a_0 Bool) (top.res.inst_223_a_0 Bool) (top.res.inst_222_a_0 Int) (top.res.inst_221_a_0 Int) (top.res.inst_220_a_0 Int) (top.res.inst_219_a_0 Int) (top.res.inst_218_a_0 Int) (top.res.inst_217_a_0 Int) (top.res.inst_216_a_0 Int) (top.res.inst_215_a_0 Int) (top.res.inst_214_a_0 Int) (top.res.inst_213_a_0 Int) (top.res.inst_212_a_0 Int) (top.res.inst_211_a_0 Int) (top.res.inst_210_a_0 Bool) (top.res.inst_209_a_0 Int) (top.res.inst_208_a_0 Bool) (top.res.inst_207_a_0 Int) (top.res.inst_206_a_0 Bool) (top.res.inst_205_a_0 Bool) (top.res.inst_204_a_0 Bool) (top.res.inst_203_a_0 Bool) (top.res.inst_202_a_0 Bool) (top.res.inst_201_a_0 Bool) (top.res.inst_200_a_0 Bool) (top.res.inst_199_a_0 Bool) (top.res.inst_198_a_0 Bool) (top.res.inst_197_a_0 Bool) (top.res.inst_196_a_0 Bool) (top.res.inst_195_a_0 Bool) (top.res.inst_194_a_0 Bool) (top.res.inst_193_a_0 Bool) (top.res.inst_192_a_0 Bool) (top.res.inst_191_a_0 Bool) (top.res.inst_190_a_0 Bool) (top.res.inst_189_a_0 Bool) (top.res.inst_188_a_0 Bool) (top.res.inst_187_a_0 Bool) (top.res.inst_186_a_0 Bool) (top.res.inst_185_a_0 Bool) (top.res.inst_184_a_0 Bool) (top.res.inst_183_a_0 Bool) (top.res.inst_182_a_0 Bool) (top.res.inst_181_a_0 Bool) (top.res.inst_180_a_0 Bool) (top.res.inst_179_a_0 Bool) (top.res.inst_178_a_0 Bool) (top.res.inst_177_a_0 Bool) (top.res.inst_176_a_0 Bool) (top.res.inst_175_a_0 Bool) (top.res.inst_174_a_0 Int) (top.res.inst_173_a_0 Bool) (top.res.inst_172_a_0 Bool) (top.res.inst_171_a_0 Bool) (top.res.inst_170_a_0 Bool) (top.res.inst_169_a_0 Bool) (top.res.inst_168_a_0 Bool) (top.res.inst_167_a_0 Bool) (top.res.inst_166_a_0 Bool) (top.res.inst_165_a_0 Bool) (top.res.inst_164_a_0 Bool) (top.res.inst_163_a_0 Bool) (top.res.inst_162_a_0 Bool) (top.res.inst_161_a_0 Bool) (top.res.inst_160_a_0 Bool) (top.res.inst_159_a_0 Bool) (top.res.inst_158_a_0 Bool) (top.res.inst_157_a_0 Bool) (top.res.inst_156_a_0 Bool) (top.res.inst_155_a_0 Bool) (top.res.inst_154_a_0 Bool) (top.res.inst_153_a_0 Bool) (top.res.inst_152_a_0 Bool) (top.res.inst_151_a_0 Bool) (top.res.inst_150_a_0 Bool) (top.res.inst_149_a_0 Bool) (top.res.inst_148_a_0 Bool) (top.res.inst_147_a_0 Bool) (top.res.inst_146_a_0 Bool) (top.res.inst_145_a_0 Bool) (top.res.inst_144_a_0 Bool) (top.res.inst_143_a_0 Bool) (top.res.inst_142_a_0 Bool) (top.res.inst_141_a_0 Bool) (top.res.inst_140_a_0 Bool) (top.res.inst_139_a_0 Bool) (top.res.inst_138_a_0 Bool) (top.res.inst_137_a_0 Bool) (top.res.inst_136_a_0 Bool) (top.res.inst_135_a_0 Bool) (top.res.inst_134_a_0 Bool) (top.res.inst_133_a_0 Bool) (top.res.inst_132_a_0 Bool) (top.res.inst_131_a_0 Bool) (top.res.inst_130_a_0 Bool) (top.res.inst_129_a_0 Bool) (top.res.inst_128_a_0 Bool) (top.res.inst_127_a_0 Bool) (top.res.inst_126_a_0 Bool) (top.res.inst_125_a_0 Bool) (top.res.inst_124_a_0 Bool) (top.res.inst_123_a_0 Bool) (top.res.inst_122_a_0 Int) (top.res.inst_121_a_0 Bool) (top.res.inst_120_a_0 Bool) (top.res.inst_119_a_0 Int) (top.res.inst_118_a_0 Int) (top.res.inst_117_a_0 Bool) (top.res.inst_116_a_0 Bool) (top.res.inst_115_a_0 Bool) (top.res.inst_114_a_0 Bool) (top.res.inst_113_a_0 Int) (top.res.inst_112_a_0 Int) (top.res.inst_111_a_0 Bool) (top.res.inst_110_a_0 Bool) (top.res.inst_109_a_0 Bool) (top.res.inst_108_a_0 Bool) (top.res.inst_107_a_0 Bool) (top.res.inst_106_a_0 Bool) (top.res.inst_105_a_0 Bool) (top.res.inst_104_a_0 Bool) (top.res.inst_103_a_0 Int) (top.res.inst_102_a_0 Int) (top.res.inst_101_a_0 Int) (top.res.inst_100_a_0 Int) (top.res.inst_99_a_0 Bool) (top.res.inst_98_a_0 Bool) (top.res.inst_97_a_0 Bool) (top.res.inst_96_a_0 Bool) (top.res.inst_95_a_0 Int) (top.res.inst_94_a_0 Int) (top.res.inst_93_a_0 Int) (top.res.inst_92_a_0 Int) (top.res.inst_91_a_0 Int) (top.res.inst_90_a_0 Int) (top.res.inst_89_a_0 Int) (top.res.inst_88_a_0 Int) (top.res.inst_87_a_0 Int) (top.res.inst_86_a_0 Int) (top.res.inst_85_a_0 Bool) (top.res.inst_84_a_0 Bool) (top.res.inst_83_a_0 Bool) (top.res.inst_82_a_0 Bool) (top.res.inst_81_a_0 Int) (top.res.inst_80_a_0 Int) (top.res.inst_79_a_0 Int) (top.res.inst_78_a_0 Int) (top.res.inst_77_a_0 Bool) (top.res.inst_76_a_0 Int) (top.res.inst_75_a_0 Bool) (top.res.inst_74_a_0 Int) (top.res.inst_73_a_0 Bool) (top.res.inst_72_a_0 Int) (top.res.inst_71_a_0 Bool) (top.res.inst_70_a_0 Int) (top.res.inst_69_a_0 Bool) (top.res.inst_68_a_0 Int) (top.res.inst_67_a_0 Bool) (top.res.inst_66_a_0 Int) (top.res.inst_65_a_0 Bool) (top.res.inst_64_a_0 Int) (top.res.inst_63_a_0 Bool) (top.res.inst_62_a_0 Int) (top.res.inst_61_a_0 Bool) (top.res.inst_60_a_0 Bool) (top.res.inst_59_a_0 Bool) (top.res.inst_58_a_0 Bool) (top.res.inst_57_a_0 Bool) (top.res.inst_56_a_0 Bool) (top.res.inst_55_a_0 Bool) (top.res.inst_54_a_0 Bool) (top.res.inst_53_a_0 Bool) (top.res.inst_52_a_0 Bool) (top.res.inst_51_a_0 Bool) (top.res.inst_50_a_0 Bool) (top.res.inst_49_a_0 Int) (top.res.inst_48_a_0 Bool) (top.res.inst_47_a_0 Bool) (top.res.inst_46_a_0 Bool) (top.res.inst_45_a_0 Bool) (top.res.inst_44_a_0 Bool) (top.res.inst_43_a_0 Bool) (top.res.inst_42_a_0 Bool) (top.res.inst_41_a_0 Bool) (top.res.inst_40_a_0 Bool) (top.res.inst_39_a_0 Bool) (top.res.inst_38_a_0 Bool) (top.res.inst_37_a_0 Int) (top.res.inst_36_a_0 Int) (top.res.inst_35_a_0 Int) (top.res.inst_34_a_0 Int) (top.res.inst_33_a_0 Bool) (top.res.inst_32_a_0 Bool) (top.res.inst_31_a_0 Bool) (top.res.inst_30_a_0 Bool) (top.res.inst_29_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Int) (top.res.inst_23_a_0 Int) (top.res.inst_22_a_0 Int) (top.res.inst_21_a_0 Int) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Int) (top.res.inst_10_a_0 Int) (top.res.inst_9_a_0 Int) (top.res.inst_8_a_0 Int) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (let ((X1 top.res.abs_18_a_1)) (and (= top.res.abs_39_a_1 (not X1)) (let ((X2 top.res.abs_17_a_1)) (and (= top.res.abs_38_a_1 (not X2)) (let ((X3 top.res.abs_16_a_1)) (and (= top.res.abs_37_a_1 (not X3)) (let ((X4 top.res.abs_15_a_1)) (and (= top.res.abs_36_a_1 (not X4)) (let ((X5 top.res.abs_14_a_1)) (and (= top.res.abs_34_a_1 (not X5)) (let ((X6 top.res.abs_13_a_1)) (and (= top.res.abs_33_a_1 (not X6)) (let ((X7 top.res.abs_12_a_1)) (and (= top.res.abs_32_a_1 (not X7)) (let ((X8 top.res.abs_11_a_1)) (and (= top.res.abs_31_a_1 (not X8)) (let ((X9 top.res.abs_20_a_1)) (let ((X10 top.res.abs_19_a_1)) (let ((X11 top.res.abs_2_a_1)) (let ((X12 top.res.abs_1_a_1)) (let ((X13 (=> (= X12 3) (not X11)))) (let ((X14 (=> (= X12 3) (and (and (and (not X10) (not X9)) top.res.abs_35_a_1) top.res.abs_40_a_1)))) (let ((X15 (or (or (or (or (or (= X12 1) (= X12 2)) (= X12 3)) (= X12 4)) (= X12 5)) (= X12 6)))) (and (= top.usr.OK_a_1 (and (and X15 X14) X13)) (__node_trans_BoilerController_0 top.usr.stop_a_1 top.usr.steam_boiler_waiting_a_1 top.usr.physical_units_ready_a_1 top.usr.level_a_1 top.usr.steam_a_1 top.usr.pump_state_0_a_1 top.usr.pump_state_1_a_1 top.usr.pump_state_2_a_1 top.usr.pump_state_3_a_1 top.usr.pump_control_state_0_a_1 top.usr.pump_control_state_1_a_1 top.usr.pump_control_state_2_a_1 top.usr.pump_control_state_3_a_1 top.usr.pump_repaired_0_a_1 top.usr.pump_repaired_1_a_1 top.usr.pump_repaired_2_a_1 top.usr.pump_repaired_3_a_1 top.usr.pump_control_repaired_0_a_1 top.usr.pump_control_repaired_1_a_1 top.usr.pump_control_repaired_2_a_1 top.usr.pump_control_repaired_3_a_1 top.usr.level_repaired_a_1 top.usr.steam_repaired_a_1 top.usr.pump_failure_acknowledgement_0_a_1 top.usr.pump_failure_acknowledgement_1_a_1 top.usr.pump_failure_acknowledgement_2_a_1 top.usr.pump_failure_acknowledgement_3_a_1 top.usr.pump_control_failure_acknowledgement_0_a_1 top.usr.pump_control_failure_acknowledgement_1_a_1 top.usr.pump_control_failure_acknowledgement_2_a_1 top.usr.pump_control_failure_acknowledgement_3_a_1 top.usr.level_failure_acknowledgement_a_1 top.usr.steam_failure_acknowledgement_a_1 top.res.nondet_32 top.res.nondet_31 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.abs_12_a_1 top.res.abs_13_a_1 top.res.abs_14_a_1 top.res.abs_15_a_1 top.res.abs_16_a_1 top.res.abs_17_a_1 top.res.abs_18_a_1 top.res.abs_19_a_1 top.res.abs_20_a_1 top.res.abs_21_a_1 top.res.abs_22_a_1 top.res.abs_23_a_1 top.res.abs_24_a_1 top.res.abs_25_a_1 top.res.abs_26_a_1 top.res.abs_27_a_1 top.res.abs_28_a_1 top.res.abs_29_a_1 top.res.abs_30_a_1 top.res.inst_297_a_1 top.res.inst_296_a_1 top.res.inst_295_a_1 top.res.inst_294_a_1 top.res.inst_293_a_1 top.res.inst_292_a_1 top.res.inst_291_a_1 top.res.inst_290_a_1 top.res.inst_289_a_1 top.res.inst_288_a_1 top.res.inst_287_a_1 top.res.inst_286_a_1 top.res.inst_285_a_1 top.res.inst_284_a_1 top.res.inst_283_a_1 top.res.inst_282_a_1 top.res.inst_281_a_1 top.res.inst_280_a_1 top.res.inst_279_a_1 top.res.inst_278_a_1 top.res.inst_277_a_1 top.res.inst_276_a_1 top.res.inst_275_a_1 top.res.inst_274_a_1 top.res.inst_273_a_1 top.res.inst_272_a_1 top.res.inst_271_a_1 top.res.inst_270_a_1 top.res.inst_269_a_1 top.res.inst_268_a_1 top.res.inst_267_a_1 top.res.inst_266_a_1 top.res.inst_265_a_1 top.res.inst_264_a_1 top.res.inst_263_a_1 top.res.inst_262_a_1 top.res.inst_261_a_1 top.res.inst_260_a_1 top.res.inst_259_a_1 top.res.inst_258_a_1 top.res.inst_257_a_1 top.res.inst_256_a_1 top.res.inst_255_a_1 top.res.inst_254_a_1 top.res.inst_253_a_1 top.res.inst_252_a_1 top.res.inst_251_a_1 top.res.inst_250_a_1 top.res.inst_249_a_1 top.res.inst_248_a_1 top.res.inst_247_a_1 top.res.inst_246_a_1 top.res.inst_245_a_1 top.res.inst_244_a_1 top.res.inst_243_a_1 top.res.inst_242_a_1 top.res.inst_241_a_1 top.res.inst_240_a_1 top.res.inst_239_a_1 top.res.inst_238_a_1 top.res.inst_237_a_1 top.res.inst_236_a_1 top.res.inst_235_a_1 top.res.inst_234_a_1 top.res.inst_233_a_1 top.res.inst_232_a_1 top.res.inst_231_a_1 top.res.inst_230_a_1 top.res.inst_229_a_1 top.res.inst_228_a_1 top.res.inst_227_a_1 top.res.inst_226_a_1 top.res.inst_225_a_1 top.res.inst_224_a_1 top.res.inst_223_a_1 top.res.inst_222_a_1 top.res.inst_221_a_1 top.res.inst_220_a_1 top.res.inst_219_a_1 top.res.inst_218_a_1 top.res.inst_217_a_1 top.res.inst_216_a_1 top.res.inst_215_a_1 top.res.inst_214_a_1 top.res.inst_213_a_1 top.res.inst_212_a_1 top.res.inst_211_a_1 top.res.inst_210_a_1 top.res.inst_209_a_1 top.res.inst_208_a_1 top.res.inst_207_a_1 top.res.inst_206_a_1 top.res.inst_205_a_1 top.res.inst_204_a_1 top.res.inst_203_a_1 top.res.inst_202_a_1 top.res.inst_201_a_1 top.res.inst_200_a_1 top.res.inst_199_a_1 top.res.inst_198_a_1 top.res.inst_197_a_1 top.res.inst_196_a_1 top.res.inst_195_a_1 top.res.inst_194_a_1 top.res.inst_193_a_1 top.res.inst_192_a_1 top.res.inst_191_a_1 top.res.inst_190_a_1 top.res.inst_189_a_1 top.res.inst_188_a_1 top.res.inst_187_a_1 top.res.inst_186_a_1 top.res.inst_185_a_1 top.res.inst_184_a_1 top.res.inst_183_a_1 top.res.inst_182_a_1 top.res.inst_181_a_1 top.res.inst_180_a_1 top.res.inst_179_a_1 top.res.inst_178_a_1 top.res.inst_177_a_1 top.res.inst_176_a_1 top.res.inst_175_a_1 top.res.inst_174_a_1 top.res.inst_173_a_1 top.res.inst_172_a_1 top.res.inst_171_a_1 top.res.inst_170_a_1 top.res.inst_169_a_1 top.res.inst_168_a_1 top.res.inst_167_a_1 top.res.inst_166_a_1 top.res.inst_165_a_1 top.res.inst_164_a_1 top.res.inst_163_a_1 top.res.inst_162_a_1 top.res.inst_161_a_1 top.res.inst_160_a_1 top.res.inst_159_a_1 top.res.inst_158_a_1 top.res.inst_157_a_1 top.res.inst_156_a_1 top.res.inst_155_a_1 top.res.inst_154_a_1 top.res.inst_153_a_1 top.res.inst_152_a_1 top.res.inst_151_a_1 top.res.inst_150_a_1 top.res.inst_149_a_1 top.res.inst_148_a_1 top.res.inst_147_a_1 top.res.inst_146_a_1 top.res.inst_145_a_1 top.res.inst_144_a_1 top.res.inst_143_a_1 top.res.inst_142_a_1 top.res.inst_141_a_1 top.res.inst_140_a_1 top.res.inst_139_a_1 top.res.inst_138_a_1 top.res.inst_137_a_1 top.res.inst_136_a_1 top.res.inst_135_a_1 top.res.inst_134_a_1 top.res.inst_133_a_1 top.res.inst_132_a_1 top.res.inst_131_a_1 top.res.inst_130_a_1 top.res.inst_129_a_1 top.res.inst_128_a_1 top.res.inst_127_a_1 top.res.inst_126_a_1 top.res.inst_125_a_1 top.res.inst_124_a_1 top.res.inst_123_a_1 top.res.inst_122_a_1 top.res.inst_121_a_1 top.res.inst_120_a_1 top.res.inst_119_a_1 top.res.inst_118_a_1 top.res.inst_117_a_1 top.res.inst_116_a_1 top.res.inst_115_a_1 top.res.inst_114_a_1 top.res.inst_113_a_1 top.res.inst_112_a_1 top.res.inst_111_a_1 top.res.inst_110_a_1 top.res.inst_109_a_1 top.res.inst_108_a_1 top.res.inst_107_a_1 top.res.inst_106_a_1 top.res.inst_105_a_1 top.res.inst_104_a_1 top.res.inst_103_a_1 top.res.inst_102_a_1 top.res.inst_101_a_1 top.res.inst_100_a_1 top.res.inst_99_a_1 top.res.inst_98_a_1 top.res.inst_97_a_1 top.res.inst_96_a_1 top.res.inst_95_a_1 top.res.inst_94_a_1 top.res.inst_93_a_1 top.res.inst_92_a_1 top.res.inst_91_a_1 top.res.inst_90_a_1 top.res.inst_89_a_1 top.res.inst_88_a_1 top.res.inst_87_a_1 top.res.inst_86_a_1 top.res.inst_85_a_1 top.res.inst_84_a_1 top.res.inst_83_a_1 top.res.inst_82_a_1 top.res.inst_81_a_1 top.res.inst_80_a_1 top.res.inst_79_a_1 top.res.inst_78_a_1 top.res.inst_77_a_1 top.res.inst_76_a_1 top.res.inst_75_a_1 top.res.inst_74_a_1 top.res.inst_73_a_1 top.res.inst_72_a_1 top.res.inst_71_a_1 top.res.inst_70_a_1 top.res.inst_69_a_1 top.res.inst_68_a_1 top.res.inst_67_a_1 top.res.inst_66_a_1 top.res.inst_65_a_1 top.res.inst_64_a_1 top.res.inst_63_a_1 top.res.inst_62_a_1 top.res.inst_61_a_1 top.res.inst_60_a_1 top.res.inst_59_a_1 top.res.inst_58_a_1 top.res.inst_57_a_1 top.res.inst_56_a_1 top.res.inst_55_a_1 top.res.inst_54_a_1 top.res.inst_53_a_1 top.res.inst_52_a_1 top.res.inst_51_a_1 top.res.inst_50_a_1 top.res.inst_49_a_1 top.res.inst_48_a_1 top.res.inst_47_a_1 top.res.inst_46_a_1 top.res.inst_45_a_1 top.res.inst_44_a_1 top.res.inst_43_a_1 top.res.inst_42_a_1 top.res.inst_41_a_1 top.res.inst_40_a_1 top.res.inst_39_a_1 top.res.inst_38_a_1 top.res.inst_37_a_1 top.res.inst_36_a_1 top.res.inst_35_a_1 top.res.inst_34_a_1 top.res.inst_33_a_1 top.res.inst_32_a_1 top.res.inst_31_a_1 top.res.inst_30_a_1 top.res.inst_29_a_1 top.res.inst_28_a_1 top.res.inst_27_a_1 top.res.inst_26_a_1 top.res.inst_25_a_1 top.res.inst_24_a_1 top.res.inst_23_a_1 top.res.inst_22_a_1 top.res.inst_21_a_1 top.res.inst_20_a_1 top.res.inst_19_a_1 top.res.inst_18_a_1 top.res.inst_17_a_1 top.res.inst_16_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.stop_a_0 top.usr.steam_boiler_waiting_a_0 top.usr.physical_units_ready_a_0 top.usr.level_a_0 top.usr.steam_a_0 top.usr.pump_state_0_a_0 top.usr.pump_state_1_a_0 top.usr.pump_state_2_a_0 top.usr.pump_state_3_a_0 top.usr.pump_control_state_0_a_0 top.usr.pump_control_state_1_a_0 top.usr.pump_control_state_2_a_0 top.usr.pump_control_state_3_a_0 top.usr.pump_repaired_0_a_0 top.usr.pump_repaired_1_a_0 top.usr.pump_repaired_2_a_0 top.usr.pump_repaired_3_a_0 top.usr.pump_control_repaired_0_a_0 top.usr.pump_control_repaired_1_a_0 top.usr.pump_control_repaired_2_a_0 top.usr.pump_control_repaired_3_a_0 top.usr.level_repaired_a_0 top.usr.steam_repaired_a_0 top.usr.pump_failure_acknowledgement_0_a_0 top.usr.pump_failure_acknowledgement_1_a_0 top.usr.pump_failure_acknowledgement_2_a_0 top.usr.pump_failure_acknowledgement_3_a_0 top.usr.pump_control_failure_acknowledgement_0_a_0 top.usr.pump_control_failure_acknowledgement_1_a_0 top.usr.pump_control_failure_acknowledgement_2_a_0 top.usr.pump_control_failure_acknowledgement_3_a_0 top.usr.level_failure_acknowledgement_a_0 top.usr.steam_failure_acknowledgement_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.abs_13_a_0 top.res.abs_14_a_0 top.res.abs_15_a_0 top.res.abs_16_a_0 top.res.abs_17_a_0 top.res.abs_18_a_0 top.res.abs_19_a_0 top.res.abs_20_a_0 top.res.abs_21_a_0 top.res.abs_22_a_0 top.res.abs_23_a_0 top.res.abs_24_a_0 top.res.abs_25_a_0 top.res.abs_26_a_0 top.res.abs_27_a_0 top.res.abs_28_a_0 top.res.abs_29_a_0 top.res.abs_30_a_0 top.res.inst_297_a_0 top.res.inst_296_a_0 top.res.inst_295_a_0 top.res.inst_294_a_0 top.res.inst_293_a_0 top.res.inst_292_a_0 top.res.inst_291_a_0 top.res.inst_290_a_0 top.res.inst_289_a_0 top.res.inst_288_a_0 top.res.inst_287_a_0 top.res.inst_286_a_0 top.res.inst_285_a_0 top.res.inst_284_a_0 top.res.inst_283_a_0 top.res.inst_282_a_0 top.res.inst_281_a_0 top.res.inst_280_a_0 top.res.inst_279_a_0 top.res.inst_278_a_0 top.res.inst_277_a_0 top.res.inst_276_a_0 top.res.inst_275_a_0 top.res.inst_274_a_0 top.res.inst_273_a_0 top.res.inst_272_a_0 top.res.inst_271_a_0 top.res.inst_270_a_0 top.res.inst_269_a_0 top.res.inst_268_a_0 top.res.inst_267_a_0 top.res.inst_266_a_0 top.res.inst_265_a_0 top.res.inst_264_a_0 top.res.inst_263_a_0 top.res.inst_262_a_0 top.res.inst_261_a_0 top.res.inst_260_a_0 top.res.inst_259_a_0 top.res.inst_258_a_0 top.res.inst_257_a_0 top.res.inst_256_a_0 top.res.inst_255_a_0 top.res.inst_254_a_0 top.res.inst_253_a_0 top.res.inst_252_a_0 top.res.inst_251_a_0 top.res.inst_250_a_0 top.res.inst_249_a_0 top.res.inst_248_a_0 top.res.inst_247_a_0 top.res.inst_246_a_0 top.res.inst_245_a_0 top.res.inst_244_a_0 top.res.inst_243_a_0 top.res.inst_242_a_0 top.res.inst_241_a_0 top.res.inst_240_a_0 top.res.inst_239_a_0 top.res.inst_238_a_0 top.res.inst_237_a_0 top.res.inst_236_a_0 top.res.inst_235_a_0 top.res.inst_234_a_0 top.res.inst_233_a_0 top.res.inst_232_a_0 top.res.inst_231_a_0 top.res.inst_230_a_0 top.res.inst_229_a_0 top.res.inst_228_a_0 top.res.inst_227_a_0 top.res.inst_226_a_0 top.res.inst_225_a_0 top.res.inst_224_a_0 top.res.inst_223_a_0 top.res.inst_222_a_0 top.res.inst_221_a_0 top.res.inst_220_a_0 top.res.inst_219_a_0 top.res.inst_218_a_0 top.res.inst_217_a_0 top.res.inst_216_a_0 top.res.inst_215_a_0 top.res.inst_214_a_0 top.res.inst_213_a_0 top.res.inst_212_a_0 top.res.inst_211_a_0 top.res.inst_210_a_0 top.res.inst_209_a_0 top.res.inst_208_a_0 top.res.inst_207_a_0 top.res.inst_206_a_0 top.res.inst_205_a_0 top.res.inst_204_a_0 top.res.inst_203_a_0 top.res.inst_202_a_0 top.res.inst_201_a_0 top.res.inst_200_a_0 top.res.inst_199_a_0 top.res.inst_198_a_0 top.res.inst_197_a_0 top.res.inst_196_a_0 top.res.inst_195_a_0 top.res.inst_194_a_0 top.res.inst_193_a_0 top.res.inst_192_a_0 top.res.inst_191_a_0 top.res.inst_190_a_0 top.res.inst_189_a_0 top.res.inst_188_a_0 top.res.inst_187_a_0 top.res.inst_186_a_0 top.res.inst_185_a_0 top.res.inst_184_a_0 top.res.inst_183_a_0 top.res.inst_182_a_0 top.res.inst_181_a_0 top.res.inst_180_a_0 top.res.inst_179_a_0 top.res.inst_178_a_0 top.res.inst_177_a_0 top.res.inst_176_a_0 top.res.inst_175_a_0 top.res.inst_174_a_0 top.res.inst_173_a_0 top.res.inst_172_a_0 top.res.inst_171_a_0 top.res.inst_170_a_0 top.res.inst_169_a_0 top.res.inst_168_a_0 top.res.inst_167_a_0 top.res.inst_166_a_0 top.res.inst_165_a_0 top.res.inst_164_a_0 top.res.inst_163_a_0 top.res.inst_162_a_0 top.res.inst_161_a_0 top.res.inst_160_a_0 top.res.inst_159_a_0 top.res.inst_158_a_0 top.res.inst_157_a_0 top.res.inst_156_a_0 top.res.inst_155_a_0 top.res.inst_154_a_0 top.res.inst_153_a_0 top.res.inst_152_a_0 top.res.inst_151_a_0 top.res.inst_150_a_0 top.res.inst_149_a_0 top.res.inst_148_a_0 top.res.inst_147_a_0 top.res.inst_146_a_0 top.res.inst_145_a_0 top.res.inst_144_a_0 top.res.inst_143_a_0 top.res.inst_142_a_0 top.res.inst_141_a_0 top.res.inst_140_a_0 top.res.inst_139_a_0 top.res.inst_138_a_0 top.res.inst_137_a_0 top.res.inst_136_a_0 top.res.inst_135_a_0 top.res.inst_134_a_0 top.res.inst_133_a_0 top.res.inst_132_a_0 top.res.inst_131_a_0 top.res.inst_130_a_0 top.res.inst_129_a_0 top.res.inst_128_a_0 top.res.inst_127_a_0 top.res.inst_126_a_0 top.res.inst_125_a_0 top.res.inst_124_a_0 top.res.inst_123_a_0 top.res.inst_122_a_0 top.res.inst_121_a_0 top.res.inst_120_a_0 top.res.inst_119_a_0 top.res.inst_118_a_0 top.res.inst_117_a_0 top.res.inst_116_a_0 top.res.inst_115_a_0 top.res.inst_114_a_0 top.res.inst_113_a_0 top.res.inst_112_a_0 top.res.inst_111_a_0 top.res.inst_110_a_0 top.res.inst_109_a_0 top.res.inst_108_a_0 top.res.inst_107_a_0 top.res.inst_106_a_0 top.res.inst_105_a_0 top.res.inst_104_a_0 top.res.inst_103_a_0 top.res.inst_102_a_0 top.res.inst_101_a_0 top.res.inst_100_a_0 top.res.inst_99_a_0 top.res.inst_98_a_0 top.res.inst_97_a_0 top.res.inst_96_a_0 top.res.inst_95_a_0 top.res.inst_94_a_0 top.res.inst_93_a_0 top.res.inst_92_a_0 top.res.inst_91_a_0 top.res.inst_90_a_0 top.res.inst_89_a_0 top.res.inst_88_a_0 top.res.inst_87_a_0 top.res.inst_86_a_0 top.res.inst_85_a_0 top.res.inst_84_a_0 top.res.inst_83_a_0 top.res.inst_82_a_0 top.res.inst_81_a_0 top.res.inst_80_a_0 top.res.inst_79_a_0 top.res.inst_78_a_0 top.res.inst_77_a_0 top.res.inst_76_a_0 top.res.inst_75_a_0 top.res.inst_74_a_0 top.res.inst_73_a_0 top.res.inst_72_a_0 top.res.inst_71_a_0 top.res.inst_70_a_0 top.res.inst_69_a_0 top.res.inst_68_a_0 top.res.inst_67_a_0 top.res.inst_66_a_0 top.res.inst_65_a_0 top.res.inst_64_a_0 top.res.inst_63_a_0 top.res.inst_62_a_0 top.res.inst_61_a_0 top.res.inst_60_a_0 top.res.inst_59_a_0 top.res.inst_58_a_0 top.res.inst_57_a_0 top.res.inst_56_a_0 top.res.inst_55_a_0 top.res.inst_54_a_0 top.res.inst_53_a_0 top.res.inst_52_a_0 top.res.inst_51_a_0 top.res.inst_50_a_0 top.res.inst_49_a_0 top.res.inst_48_a_0 top.res.inst_47_a_0 top.res.inst_46_a_0 top.res.inst_45_a_0 top.res.inst_44_a_0 top.res.inst_43_a_0 top.res.inst_42_a_0 top.res.inst_41_a_0 top.res.inst_40_a_0 top.res.inst_39_a_0 top.res.inst_38_a_0 top.res.inst_37_a_0 top.res.inst_36_a_0 top.res.inst_35_a_0 top.res.inst_34_a_0 top.res.inst_33_a_0 top.res.inst_32_a_0 top.res.inst_31_a_0 top.res.inst_30_a_0 top.res.inst_29_a_0 top.res.inst_28_a_0 top.res.inst_27_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_AND_0 top.res.abs_31_a_1 top.res.abs_32_a_1 top.res.abs_33_a_1 top.res.abs_34_a_1 top.res.abs_35_a_1 top.res.inst_1_a_1 top.res.abs_31_a_0 top.res.abs_32_a_0 top.res.abs_33_a_0 top.res.abs_34_a_0 top.res.abs_35_a_0 top.res.inst_1_a_0) (__node_trans_AND_0 top.res.abs_36_a_1 top.res.abs_37_a_1 top.res.abs_38_a_1 top.res.abs_39_a_1 top.res.abs_40_a_1 top.res.inst_0_a_1 top.res.abs_36_a_0 top.res.abs_37_a_0 top.res.abs_38_a_0 top.res.abs_39_a_0 top.res.abs_40_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))))))))))))))))))))) +(synth-inv str_invariant ((top.usr.stop Bool) (top.usr.steam_boiler_waiting Bool) (top.usr.physical_units_ready Bool) (top.usr.level Int) (top.usr.steam Int) (top.usr.pump_state_0 Int) (top.usr.pump_state_1 Int) (top.usr.pump_state_2 Int) (top.usr.pump_state_3 Int) (top.usr.pump_control_state_0 Bool) (top.usr.pump_control_state_1 Bool) (top.usr.pump_control_state_2 Bool) (top.usr.pump_control_state_3 Bool) (top.usr.pump_repaired_0 Bool) (top.usr.pump_repaired_1 Bool) (top.usr.pump_repaired_2 Bool) (top.usr.pump_repaired_3 Bool) (top.usr.pump_control_repaired_0 Bool) (top.usr.pump_control_repaired_1 Bool) (top.usr.pump_control_repaired_2 Bool) (top.usr.pump_control_repaired_3 Bool) (top.usr.level_repaired Bool) (top.usr.steam_repaired Bool) (top.usr.pump_failure_acknowledgement_0 Bool) (top.usr.pump_failure_acknowledgement_1 Bool) (top.usr.pump_failure_acknowledgement_2 Bool) (top.usr.pump_failure_acknowledgement_3 Bool) (top.usr.pump_control_failure_acknowledgement_0 Bool) (top.usr.pump_control_failure_acknowledgement_1 Bool) (top.usr.pump_control_failure_acknowledgement_2 Bool) (top.usr.pump_control_failure_acknowledgement_3 Bool) (top.usr.level_failure_acknowledgement Bool) (top.usr.steam_failure_acknowledgement Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.abs_13 Bool) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.abs_17 Bool) (top.res.abs_18 Bool) (top.res.abs_19 Bool) (top.res.abs_20 Bool) (top.res.abs_21 Bool) (top.res.abs_22 Bool) (top.res.abs_23 Bool) (top.res.abs_24 Bool) (top.res.abs_25 Bool) (top.res.abs_26 Bool) (top.res.abs_27 Bool) (top.res.abs_28 Bool) (top.res.abs_29 Bool) (top.res.abs_30 Bool) (top.res.abs_31 Bool) (top.res.abs_32 Bool) (top.res.abs_33 Bool) (top.res.abs_34 Bool) (top.res.abs_35 Bool) (top.res.abs_36 Bool) (top.res.abs_37 Bool) (top.res.abs_38 Bool) (top.res.abs_39 Bool) (top.res.abs_40 Bool) (top.res.inst_297 Bool) (top.res.inst_296 Bool) (top.res.inst_295 Int) (top.res.inst_294 Int) (top.res.inst_293 Int) (top.res.inst_292 Int) (top.res.inst_291 Int) (top.res.inst_290 Int) (top.res.inst_289 Int) (top.res.inst_288 Int) (top.res.inst_287 Int) (top.res.inst_286 Int) (top.res.inst_285 Int) (top.res.inst_284 Int) (top.res.inst_283 Int) (top.res.inst_282 Int) (top.res.inst_281 Int) (top.res.inst_280 Int) (top.res.inst_279 Int) (top.res.inst_278 Bool) (top.res.inst_277 Int) (top.res.inst_276 Int) (top.res.inst_275 Int) (top.res.inst_274 Bool) (top.res.inst_273 Bool) (top.res.inst_272 Bool) (top.res.inst_271 Bool) (top.res.inst_270 Int) (top.res.inst_269 Int) (top.res.inst_268 Bool) (top.res.inst_267 Int) (top.res.inst_266 Int) (top.res.inst_265 Bool) (top.res.inst_264 Int) (top.res.inst_263 Bool) (top.res.inst_262 Bool) (top.res.inst_261 Bool) (top.res.inst_260 Bool) (top.res.inst_259 Int) (top.res.inst_258 Int) (top.res.inst_257 Bool) (top.res.inst_256 Int) (top.res.inst_255 Int) (top.res.inst_254 Bool) (top.res.inst_253 Int) (top.res.inst_252 Bool) (top.res.inst_251 Bool) (top.res.inst_250 Bool) (top.res.inst_249 Bool) (top.res.inst_248 Int) (top.res.inst_247 Int) (top.res.inst_246 Bool) (top.res.inst_245 Int) (top.res.inst_244 Int) (top.res.inst_243 Bool) (top.res.inst_242 Int) (top.res.inst_241 Bool) (top.res.inst_240 Bool) (top.res.inst_239 Bool) (top.res.inst_238 Bool) (top.res.inst_237 Int) (top.res.inst_236 Int) (top.res.inst_235 Bool) (top.res.inst_234 Int) (top.res.inst_233 Int) (top.res.inst_232 Bool) (top.res.inst_231 Int) (top.res.inst_230 Int) (top.res.inst_229 Int) (top.res.inst_228 Int) (top.res.inst_227 Int) (top.res.inst_226 Bool) (top.res.inst_225 Bool) (top.res.inst_224 Bool) (top.res.inst_223 Bool) (top.res.inst_222 Int) (top.res.inst_221 Int) (top.res.inst_220 Int) (top.res.inst_219 Int) (top.res.inst_218 Int) (top.res.inst_217 Int) (top.res.inst_216 Int) (top.res.inst_215 Int) (top.res.inst_214 Int) (top.res.inst_213 Int) (top.res.inst_212 Int) (top.res.inst_211 Int) (top.res.inst_210 Bool) (top.res.inst_209 Int) (top.res.inst_208 Bool) (top.res.inst_207 Int) (top.res.inst_206 Bool) (top.res.inst_205 Bool) (top.res.inst_204 Bool) (top.res.inst_203 Bool) (top.res.inst_202 Bool) (top.res.inst_201 Bool) (top.res.inst_200 Bool) (top.res.inst_199 Bool) (top.res.inst_198 Bool) (top.res.inst_197 Bool) (top.res.inst_196 Bool) (top.res.inst_195 Bool) (top.res.inst_194 Bool) (top.res.inst_193 Bool) (top.res.inst_192 Bool) (top.res.inst_191 Bool) (top.res.inst_190 Bool) (top.res.inst_189 Bool) (top.res.inst_188 Bool) (top.res.inst_187 Bool) (top.res.inst_186 Bool) (top.res.inst_185 Bool) (top.res.inst_184 Bool) (top.res.inst_183 Bool) (top.res.inst_182 Bool) (top.res.inst_181 Bool) (top.res.inst_180 Bool) (top.res.inst_179 Bool) (top.res.inst_178 Bool) (top.res.inst_177 Bool) (top.res.inst_176 Bool) (top.res.inst_175 Bool) (top.res.inst_174 Int) (top.res.inst_173 Bool) (top.res.inst_172 Bool) (top.res.inst_171 Bool) (top.res.inst_170 Bool) (top.res.inst_169 Bool) (top.res.inst_168 Bool) (top.res.inst_167 Bool) (top.res.inst_166 Bool) (top.res.inst_165 Bool) (top.res.inst_164 Bool) (top.res.inst_163 Bool) (top.res.inst_162 Bool) (top.res.inst_161 Bool) (top.res.inst_160 Bool) (top.res.inst_159 Bool) (top.res.inst_158 Bool) (top.res.inst_157 Bool) (top.res.inst_156 Bool) (top.res.inst_155 Bool) (top.res.inst_154 Bool) (top.res.inst_153 Bool) (top.res.inst_152 Bool) (top.res.inst_151 Bool) (top.res.inst_150 Bool) (top.res.inst_149 Bool) (top.res.inst_148 Bool) (top.res.inst_147 Bool) (top.res.inst_146 Bool) (top.res.inst_145 Bool) (top.res.inst_144 Bool) (top.res.inst_143 Bool) (top.res.inst_142 Bool) (top.res.inst_141 Bool) (top.res.inst_140 Bool) (top.res.inst_139 Bool) (top.res.inst_138 Bool) (top.res.inst_137 Bool) (top.res.inst_136 Bool) (top.res.inst_135 Bool) (top.res.inst_134 Bool) (top.res.inst_133 Bool) (top.res.inst_132 Bool) (top.res.inst_131 Bool) (top.res.inst_130 Bool) (top.res.inst_129 Bool) (top.res.inst_128 Bool) (top.res.inst_127 Bool) (top.res.inst_126 Bool) (top.res.inst_125 Bool) (top.res.inst_124 Bool) (top.res.inst_123 Bool) (top.res.inst_122 Int) (top.res.inst_121 Bool) (top.res.inst_120 Bool) (top.res.inst_119 Int) (top.res.inst_118 Int) (top.res.inst_117 Bool) (top.res.inst_116 Bool) (top.res.inst_115 Bool) (top.res.inst_114 Bool) (top.res.inst_113 Int) (top.res.inst_112 Int) (top.res.inst_111 Bool) (top.res.inst_110 Bool) (top.res.inst_109 Bool) (top.res.inst_108 Bool) (top.res.inst_107 Bool) (top.res.inst_106 Bool) (top.res.inst_105 Bool) (top.res.inst_104 Bool) (top.res.inst_103 Int) (top.res.inst_102 Int) (top.res.inst_101 Int) (top.res.inst_100 Int) (top.res.inst_99 Bool) (top.res.inst_98 Bool) (top.res.inst_97 Bool) (top.res.inst_96 Bool) (top.res.inst_95 Int) (top.res.inst_94 Int) (top.res.inst_93 Int) (top.res.inst_92 Int) (top.res.inst_91 Int) (top.res.inst_90 Int) (top.res.inst_89 Int) (top.res.inst_88 Int) (top.res.inst_87 Int) (top.res.inst_86 Int) (top.res.inst_85 Bool) (top.res.inst_84 Bool) (top.res.inst_83 Bool) (top.res.inst_82 Bool) (top.res.inst_81 Int) (top.res.inst_80 Int) (top.res.inst_79 Int) (top.res.inst_78 Int) (top.res.inst_77 Bool) (top.res.inst_76 Int) (top.res.inst_75 Bool) (top.res.inst_74 Int) (top.res.inst_73 Bool) (top.res.inst_72 Int) (top.res.inst_71 Bool) (top.res.inst_70 Int) (top.res.inst_69 Bool) (top.res.inst_68 Int) (top.res.inst_67 Bool) (top.res.inst_66 Int) (top.res.inst_65 Bool) (top.res.inst_64 Int) (top.res.inst_63 Bool) (top.res.inst_62 Int) (top.res.inst_61 Bool) (top.res.inst_60 Bool) (top.res.inst_59 Bool) (top.res.inst_58 Bool) (top.res.inst_57 Bool) (top.res.inst_56 Bool) (top.res.inst_55 Bool) (top.res.inst_54 Bool) (top.res.inst_53 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Bool) (top.res.inst_50 Bool) (top.res.inst_49 Int) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Int) (top.res.inst_36 Int) (top.res.inst_35 Int) (top.res.inst_34 Int) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Int) (top.res.inst_23 Int) (top.res.inst_22 Int) (top.res.inst_21 Int) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Int) (top.res.inst_10 Int) (top.res.inst_9 Int) (top.res.inst_8 Int) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_32 Int) +(declare-var top.res.nondet_31 Int) +(declare-var top.res.nondet_30 Int) +(declare-var top.res.nondet_29 Int) +(declare-var top.res.nondet_28 Int) +(declare-var top.res.nondet_27 Int) +(declare-var top.res.nondet_26 Int) +(declare-var top.res.nondet_25 Int) +(declare-var top.res.nondet_24 Int) +(declare-var top.res.nondet_23 Int) +(declare-var top.res.nondet_22 Int) +(declare-var top.res.nondet_21 Int) +(declare-var top.res.nondet_20 Int) +(declare-var top.res.nondet_19 Int) +(declare-var top.res.nondet_18 Int) +(declare-var top.res.nondet_17 Int) +(declare-var top.res.nondet_16 Int) +(declare-var top.res.nondet_15 Int) +(declare-var top.res.nondet_14 Int) +(declare-var top.res.nondet_13 Int) +(declare-var top.res.nondet_12 Int) +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.stop Bool) (top.usr.steam_boiler_waiting Bool) (top.usr.physical_units_ready Bool) (top.usr.level Int) (top.usr.steam Int) (top.usr.pump_state_0 Int) (top.usr.pump_state_1 Int) (top.usr.pump_state_2 Int) (top.usr.pump_state_3 Int) (top.usr.pump_control_state_0 Bool) (top.usr.pump_control_state_1 Bool) (top.usr.pump_control_state_2 Bool) (top.usr.pump_control_state_3 Bool) (top.usr.pump_repaired_0 Bool) (top.usr.pump_repaired_1 Bool) (top.usr.pump_repaired_2 Bool) (top.usr.pump_repaired_3 Bool) (top.usr.pump_control_repaired_0 Bool) (top.usr.pump_control_repaired_1 Bool) (top.usr.pump_control_repaired_2 Bool) (top.usr.pump_control_repaired_3 Bool) (top.usr.level_repaired Bool) (top.usr.steam_repaired Bool) (top.usr.pump_failure_acknowledgement_0 Bool) (top.usr.pump_failure_acknowledgement_1 Bool) (top.usr.pump_failure_acknowledgement_2 Bool) (top.usr.pump_failure_acknowledgement_3 Bool) (top.usr.pump_control_failure_acknowledgement_0 Bool) (top.usr.pump_control_failure_acknowledgement_1 Bool) (top.usr.pump_control_failure_acknowledgement_2 Bool) (top.usr.pump_control_failure_acknowledgement_3 Bool) (top.usr.level_failure_acknowledgement Bool) (top.usr.steam_failure_acknowledgement Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.abs_13 Bool) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.abs_17 Bool) (top.res.abs_18 Bool) (top.res.abs_19 Bool) (top.res.abs_20 Bool) (top.res.abs_21 Bool) (top.res.abs_22 Bool) (top.res.abs_23 Bool) (top.res.abs_24 Bool) (top.res.abs_25 Bool) (top.res.abs_26 Bool) (top.res.abs_27 Bool) (top.res.abs_28 Bool) (top.res.abs_29 Bool) (top.res.abs_30 Bool) (top.res.abs_31 Bool) (top.res.abs_32 Bool) (top.res.abs_33 Bool) (top.res.abs_34 Bool) (top.res.abs_35 Bool) (top.res.abs_36 Bool) (top.res.abs_37 Bool) (top.res.abs_38 Bool) (top.res.abs_39 Bool) (top.res.abs_40 Bool) (top.res.inst_297 Bool) (top.res.inst_296 Bool) (top.res.inst_295 Int) (top.res.inst_294 Int) (top.res.inst_293 Int) (top.res.inst_292 Int) (top.res.inst_291 Int) (top.res.inst_290 Int) (top.res.inst_289 Int) (top.res.inst_288 Int) (top.res.inst_287 Int) (top.res.inst_286 Int) (top.res.inst_285 Int) (top.res.inst_284 Int) (top.res.inst_283 Int) (top.res.inst_282 Int) (top.res.inst_281 Int) (top.res.inst_280 Int) (top.res.inst_279 Int) (top.res.inst_278 Bool) (top.res.inst_277 Int) (top.res.inst_276 Int) (top.res.inst_275 Int) (top.res.inst_274 Bool) (top.res.inst_273 Bool) (top.res.inst_272 Bool) (top.res.inst_271 Bool) (top.res.inst_270 Int) (top.res.inst_269 Int) (top.res.inst_268 Bool) (top.res.inst_267 Int) (top.res.inst_266 Int) (top.res.inst_265 Bool) (top.res.inst_264 Int) (top.res.inst_263 Bool) (top.res.inst_262 Bool) (top.res.inst_261 Bool) (top.res.inst_260 Bool) (top.res.inst_259 Int) (top.res.inst_258 Int) (top.res.inst_257 Bool) (top.res.inst_256 Int) (top.res.inst_255 Int) (top.res.inst_254 Bool) (top.res.inst_253 Int) (top.res.inst_252 Bool) (top.res.inst_251 Bool) (top.res.inst_250 Bool) (top.res.inst_249 Bool) (top.res.inst_248 Int) (top.res.inst_247 Int) (top.res.inst_246 Bool) (top.res.inst_245 Int) (top.res.inst_244 Int) (top.res.inst_243 Bool) (top.res.inst_242 Int) (top.res.inst_241 Bool) (top.res.inst_240 Bool) (top.res.inst_239 Bool) (top.res.inst_238 Bool) (top.res.inst_237 Int) (top.res.inst_236 Int) (top.res.inst_235 Bool) (top.res.inst_234 Int) (top.res.inst_233 Int) (top.res.inst_232 Bool) (top.res.inst_231 Int) (top.res.inst_230 Int) (top.res.inst_229 Int) (top.res.inst_228 Int) (top.res.inst_227 Int) (top.res.inst_226 Bool) (top.res.inst_225 Bool) (top.res.inst_224 Bool) (top.res.inst_223 Bool) (top.res.inst_222 Int) (top.res.inst_221 Int) (top.res.inst_220 Int) (top.res.inst_219 Int) (top.res.inst_218 Int) (top.res.inst_217 Int) (top.res.inst_216 Int) (top.res.inst_215 Int) (top.res.inst_214 Int) (top.res.inst_213 Int) (top.res.inst_212 Int) (top.res.inst_211 Int) (top.res.inst_210 Bool) (top.res.inst_209 Int) (top.res.inst_208 Bool) (top.res.inst_207 Int) (top.res.inst_206 Bool) (top.res.inst_205 Bool) (top.res.inst_204 Bool) (top.res.inst_203 Bool) (top.res.inst_202 Bool) (top.res.inst_201 Bool) (top.res.inst_200 Bool) (top.res.inst_199 Bool) (top.res.inst_198 Bool) (top.res.inst_197 Bool) (top.res.inst_196 Bool) (top.res.inst_195 Bool) (top.res.inst_194 Bool) (top.res.inst_193 Bool) (top.res.inst_192 Bool) (top.res.inst_191 Bool) (top.res.inst_190 Bool) (top.res.inst_189 Bool) (top.res.inst_188 Bool) (top.res.inst_187 Bool) (top.res.inst_186 Bool) (top.res.inst_185 Bool) (top.res.inst_184 Bool) (top.res.inst_183 Bool) (top.res.inst_182 Bool) (top.res.inst_181 Bool) (top.res.inst_180 Bool) (top.res.inst_179 Bool) (top.res.inst_178 Bool) (top.res.inst_177 Bool) (top.res.inst_176 Bool) (top.res.inst_175 Bool) (top.res.inst_174 Int) (top.res.inst_173 Bool) (top.res.inst_172 Bool) (top.res.inst_171 Bool) (top.res.inst_170 Bool) (top.res.inst_169 Bool) (top.res.inst_168 Bool) (top.res.inst_167 Bool) (top.res.inst_166 Bool) (top.res.inst_165 Bool) (top.res.inst_164 Bool) (top.res.inst_163 Bool) (top.res.inst_162 Bool) (top.res.inst_161 Bool) (top.res.inst_160 Bool) (top.res.inst_159 Bool) (top.res.inst_158 Bool) (top.res.inst_157 Bool) (top.res.inst_156 Bool) (top.res.inst_155 Bool) (top.res.inst_154 Bool) (top.res.inst_153 Bool) (top.res.inst_152 Bool) (top.res.inst_151 Bool) (top.res.inst_150 Bool) (top.res.inst_149 Bool) (top.res.inst_148 Bool) (top.res.inst_147 Bool) (top.res.inst_146 Bool) (top.res.inst_145 Bool) (top.res.inst_144 Bool) (top.res.inst_143 Bool) (top.res.inst_142 Bool) (top.res.inst_141 Bool) (top.res.inst_140 Bool) (top.res.inst_139 Bool) (top.res.inst_138 Bool) (top.res.inst_137 Bool) (top.res.inst_136 Bool) (top.res.inst_135 Bool) (top.res.inst_134 Bool) (top.res.inst_133 Bool) (top.res.inst_132 Bool) (top.res.inst_131 Bool) (top.res.inst_130 Bool) (top.res.inst_129 Bool) (top.res.inst_128 Bool) (top.res.inst_127 Bool) (top.res.inst_126 Bool) (top.res.inst_125 Bool) (top.res.inst_124 Bool) (top.res.inst_123 Bool) (top.res.inst_122 Int) (top.res.inst_121 Bool) (top.res.inst_120 Bool) (top.res.inst_119 Int) (top.res.inst_118 Int) (top.res.inst_117 Bool) (top.res.inst_116 Bool) (top.res.inst_115 Bool) (top.res.inst_114 Bool) (top.res.inst_113 Int) (top.res.inst_112 Int) (top.res.inst_111 Bool) (top.res.inst_110 Bool) (top.res.inst_109 Bool) (top.res.inst_108 Bool) (top.res.inst_107 Bool) (top.res.inst_106 Bool) (top.res.inst_105 Bool) (top.res.inst_104 Bool) (top.res.inst_103 Int) (top.res.inst_102 Int) (top.res.inst_101 Int) (top.res.inst_100 Int) (top.res.inst_99 Bool) (top.res.inst_98 Bool) (top.res.inst_97 Bool) (top.res.inst_96 Bool) (top.res.inst_95 Int) (top.res.inst_94 Int) (top.res.inst_93 Int) (top.res.inst_92 Int) (top.res.inst_91 Int) (top.res.inst_90 Int) (top.res.inst_89 Int) (top.res.inst_88 Int) (top.res.inst_87 Int) (top.res.inst_86 Int) (top.res.inst_85 Bool) (top.res.inst_84 Bool) (top.res.inst_83 Bool) (top.res.inst_82 Bool) (top.res.inst_81 Int) (top.res.inst_80 Int) (top.res.inst_79 Int) (top.res.inst_78 Int) (top.res.inst_77 Bool) (top.res.inst_76 Int) (top.res.inst_75 Bool) (top.res.inst_74 Int) (top.res.inst_73 Bool) (top.res.inst_72 Int) (top.res.inst_71 Bool) (top.res.inst_70 Int) (top.res.inst_69 Bool) (top.res.inst_68 Int) (top.res.inst_67 Bool) (top.res.inst_66 Int) (top.res.inst_65 Bool) (top.res.inst_64 Int) (top.res.inst_63 Bool) (top.res.inst_62 Int) (top.res.inst_61 Bool) (top.res.inst_60 Bool) (top.res.inst_59 Bool) (top.res.inst_58 Bool) (top.res.inst_57 Bool) (top.res.inst_56 Bool) (top.res.inst_55 Bool) (top.res.inst_54 Bool) (top.res.inst_53 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Bool) (top.res.inst_50 Bool) (top.res.inst_49 Int) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Int) (top.res.inst_36 Int) (top.res.inst_35 Int) (top.res.inst_34 Int) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Int) (top.res.inst_23 Int) (top.res.inst_22 Int) (top.res.inst_21 Int) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Int) (top.res.inst_10 Int) (top.res.inst_9 Int) (top.res.inst_8 Int) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (let ((X1 top.res.abs_18)) (and (= top.res.abs_39 (not X1)) (let ((X2 top.res.abs_17)) (and (= top.res.abs_38 (not X2)) (let ((X3 top.res.abs_16)) (and (= top.res.abs_37 (not X3)) (let ((X4 top.res.abs_15)) (and (= top.res.abs_36 (not X4)) (let ((X5 top.res.abs_14)) (and (= top.res.abs_34 (not X5)) (let ((X6 top.res.abs_13)) (and (= top.res.abs_33 (not X6)) (let ((X7 top.res.abs_12)) (and (= top.res.abs_32 (not X7)) (let ((X8 top.res.abs_11)) (and (= top.res.abs_31 (not X8)) (let ((X9 top.res.abs_20)) (let ((X10 top.res.abs_19)) (let ((X11 top.res.abs_2)) (let ((X12 top.res.abs_1)) (let ((X13 (=> (= X12 3) (not X11)))) (let ((X14 (=> (= X12 3) (and (and (and (not X10) (not X9)) top.res.abs_35) top.res.abs_40)))) (let ((X15 (or (or (or (or (or (= X12 1) (= X12 2)) (= X12 3)) (= X12 4)) (= X12 5)) (= X12 6)))) (and (= top.usr.OK (and (and X15 X14) X13)) (__node_init_BoilerController_0 top.usr.stop top.usr.steam_boiler_waiting top.usr.physical_units_ready top.usr.level top.usr.steam top.usr.pump_state_0 top.usr.pump_state_1 top.usr.pump_state_2 top.usr.pump_state_3 top.usr.pump_control_state_0 top.usr.pump_control_state_1 top.usr.pump_control_state_2 top.usr.pump_control_state_3 top.usr.pump_repaired_0 top.usr.pump_repaired_1 top.usr.pump_repaired_2 top.usr.pump_repaired_3 top.usr.pump_control_repaired_0 top.usr.pump_control_repaired_1 top.usr.pump_control_repaired_2 top.usr.pump_control_repaired_3 top.usr.level_repaired top.usr.steam_repaired top.usr.pump_failure_acknowledgement_0 top.usr.pump_failure_acknowledgement_1 top.usr.pump_failure_acknowledgement_2 top.usr.pump_failure_acknowledgement_3 top.usr.pump_control_failure_acknowledgement_0 top.usr.pump_control_failure_acknowledgement_1 top.usr.pump_control_failure_acknowledgement_2 top.usr.pump_control_failure_acknowledgement_3 top.usr.level_failure_acknowledgement top.usr.steam_failure_acknowledgement top.res.nondet_32 top.res.nondet_31 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.abs_10 top.res.abs_11 top.res.abs_12 top.res.abs_13 top.res.abs_14 top.res.abs_15 top.res.abs_16 top.res.abs_17 top.res.abs_18 top.res.abs_19 top.res.abs_20 top.res.abs_21 top.res.abs_22 top.res.abs_23 top.res.abs_24 top.res.abs_25 top.res.abs_26 top.res.abs_27 top.res.abs_28 top.res.abs_29 top.res.abs_30 top.res.inst_297 top.res.inst_296 top.res.inst_295 top.res.inst_294 top.res.inst_293 top.res.inst_292 top.res.inst_291 top.res.inst_290 top.res.inst_289 top.res.inst_288 top.res.inst_287 top.res.inst_286 top.res.inst_285 top.res.inst_284 top.res.inst_283 top.res.inst_282 top.res.inst_281 top.res.inst_280 top.res.inst_279 top.res.inst_278 top.res.inst_277 top.res.inst_276 top.res.inst_275 top.res.inst_274 top.res.inst_273 top.res.inst_272 top.res.inst_271 top.res.inst_270 top.res.inst_269 top.res.inst_268 top.res.inst_267 top.res.inst_266 top.res.inst_265 top.res.inst_264 top.res.inst_263 top.res.inst_262 top.res.inst_261 top.res.inst_260 top.res.inst_259 top.res.inst_258 top.res.inst_257 top.res.inst_256 top.res.inst_255 top.res.inst_254 top.res.inst_253 top.res.inst_252 top.res.inst_251 top.res.inst_250 top.res.inst_249 top.res.inst_248 top.res.inst_247 top.res.inst_246 top.res.inst_245 top.res.inst_244 top.res.inst_243 top.res.inst_242 top.res.inst_241 top.res.inst_240 top.res.inst_239 top.res.inst_238 top.res.inst_237 top.res.inst_236 top.res.inst_235 top.res.inst_234 top.res.inst_233 top.res.inst_232 top.res.inst_231 top.res.inst_230 top.res.inst_229 top.res.inst_228 top.res.inst_227 top.res.inst_226 top.res.inst_225 top.res.inst_224 top.res.inst_223 top.res.inst_222 top.res.inst_221 top.res.inst_220 top.res.inst_219 top.res.inst_218 top.res.inst_217 top.res.inst_216 top.res.inst_215 top.res.inst_214 top.res.inst_213 top.res.inst_212 top.res.inst_211 top.res.inst_210 top.res.inst_209 top.res.inst_208 top.res.inst_207 top.res.inst_206 top.res.inst_205 top.res.inst_204 top.res.inst_203 top.res.inst_202 top.res.inst_201 top.res.inst_200 top.res.inst_199 top.res.inst_198 top.res.inst_197 top.res.inst_196 top.res.inst_195 top.res.inst_194 top.res.inst_193 top.res.inst_192 top.res.inst_191 top.res.inst_190 top.res.inst_189 top.res.inst_188 top.res.inst_187 top.res.inst_186 top.res.inst_185 top.res.inst_184 top.res.inst_183 top.res.inst_182 top.res.inst_181 top.res.inst_180 top.res.inst_179 top.res.inst_178 top.res.inst_177 top.res.inst_176 top.res.inst_175 top.res.inst_174 top.res.inst_173 top.res.inst_172 top.res.inst_171 top.res.inst_170 top.res.inst_169 top.res.inst_168 top.res.inst_167 top.res.inst_166 top.res.inst_165 top.res.inst_164 top.res.inst_163 top.res.inst_162 top.res.inst_161 top.res.inst_160 top.res.inst_159 top.res.inst_158 top.res.inst_157 top.res.inst_156 top.res.inst_155 top.res.inst_154 top.res.inst_153 top.res.inst_152 top.res.inst_151 top.res.inst_150 top.res.inst_149 top.res.inst_148 top.res.inst_147 top.res.inst_146 top.res.inst_145 top.res.inst_144 top.res.inst_143 top.res.inst_142 top.res.inst_141 top.res.inst_140 top.res.inst_139 top.res.inst_138 top.res.inst_137 top.res.inst_136 top.res.inst_135 top.res.inst_134 top.res.inst_133 top.res.inst_132 top.res.inst_131 top.res.inst_130 top.res.inst_129 top.res.inst_128 top.res.inst_127 top.res.inst_126 top.res.inst_125 top.res.inst_124 top.res.inst_123 top.res.inst_122 top.res.inst_121 top.res.inst_120 top.res.inst_119 top.res.inst_118 top.res.inst_117 top.res.inst_116 top.res.inst_115 top.res.inst_114 top.res.inst_113 top.res.inst_112 top.res.inst_111 top.res.inst_110 top.res.inst_109 top.res.inst_108 top.res.inst_107 top.res.inst_106 top.res.inst_105 top.res.inst_104 top.res.inst_103 top.res.inst_102 top.res.inst_101 top.res.inst_100 top.res.inst_99 top.res.inst_98 top.res.inst_97 top.res.inst_96 top.res.inst_95 top.res.inst_94 top.res.inst_93 top.res.inst_92 top.res.inst_91 top.res.inst_90 top.res.inst_89 top.res.inst_88 top.res.inst_87 top.res.inst_86 top.res.inst_85 top.res.inst_84 top.res.inst_83 top.res.inst_82 top.res.inst_81 top.res.inst_80 top.res.inst_79 top.res.inst_78 top.res.inst_77 top.res.inst_76 top.res.inst_75 top.res.inst_74 top.res.inst_73 top.res.inst_72 top.res.inst_71 top.res.inst_70 top.res.inst_69 top.res.inst_68 top.res.inst_67 top.res.inst_66 top.res.inst_65 top.res.inst_64 top.res.inst_63 top.res.inst_62 top.res.inst_61 top.res.inst_60 top.res.inst_59 top.res.inst_58 top.res.inst_57 top.res.inst_56 top.res.inst_55 top.res.inst_54 top.res.inst_53 top.res.inst_52 top.res.inst_51 top.res.inst_50 top.res.inst_49 top.res.inst_48 top.res.inst_47 top.res.inst_46 top.res.inst_45 top.res.inst_44 top.res.inst_43 top.res.inst_42 top.res.inst_41 top.res.inst_40 top.res.inst_39 top.res.inst_38 top.res.inst_37 top.res.inst_36 top.res.inst_35 top.res.inst_34 top.res.inst_33 top.res.inst_32 top.res.inst_31 top.res.inst_30 top.res.inst_29 top.res.inst_28 top.res.inst_27 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2) (__node_init_AND_0 top.res.abs_31 top.res.abs_32 top.res.abs_33 top.res.abs_34 top.res.abs_35 top.res.inst_1) (__node_init_AND_0 top.res.abs_36 top.res.abs_37 top.res.abs_38 top.res.abs_39 top.res.abs_40 top.res.inst_0) top.res.init_flag))))))))))))))))))))))))) +(define-fun trans ((top.usr.stop Bool) (top.usr.steam_boiler_waiting Bool) (top.usr.physical_units_ready Bool) (top.usr.level Int) (top.usr.steam Int) (top.usr.pump_state_0 Int) (top.usr.pump_state_1 Int) (top.usr.pump_state_2 Int) (top.usr.pump_state_3 Int) (top.usr.pump_control_state_0 Bool) (top.usr.pump_control_state_1 Bool) (top.usr.pump_control_state_2 Bool) (top.usr.pump_control_state_3 Bool) (top.usr.pump_repaired_0 Bool) (top.usr.pump_repaired_1 Bool) (top.usr.pump_repaired_2 Bool) (top.usr.pump_repaired_3 Bool) (top.usr.pump_control_repaired_0 Bool) (top.usr.pump_control_repaired_1 Bool) (top.usr.pump_control_repaired_2 Bool) (top.usr.pump_control_repaired_3 Bool) (top.usr.level_repaired Bool) (top.usr.steam_repaired Bool) (top.usr.pump_failure_acknowledgement_0 Bool) (top.usr.pump_failure_acknowledgement_1 Bool) (top.usr.pump_failure_acknowledgement_2 Bool) (top.usr.pump_failure_acknowledgement_3 Bool) (top.usr.pump_control_failure_acknowledgement_0 Bool) (top.usr.pump_control_failure_acknowledgement_1 Bool) (top.usr.pump_control_failure_acknowledgement_2 Bool) (top.usr.pump_control_failure_acknowledgement_3 Bool) (top.usr.level_failure_acknowledgement Bool) (top.usr.steam_failure_acknowledgement Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.abs_13 Bool) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.abs_17 Bool) (top.res.abs_18 Bool) (top.res.abs_19 Bool) (top.res.abs_20 Bool) (top.res.abs_21 Bool) (top.res.abs_22 Bool) (top.res.abs_23 Bool) (top.res.abs_24 Bool) (top.res.abs_25 Bool) (top.res.abs_26 Bool) (top.res.abs_27 Bool) (top.res.abs_28 Bool) (top.res.abs_29 Bool) (top.res.abs_30 Bool) (top.res.abs_31 Bool) (top.res.abs_32 Bool) (top.res.abs_33 Bool) (top.res.abs_34 Bool) (top.res.abs_35 Bool) (top.res.abs_36 Bool) (top.res.abs_37 Bool) (top.res.abs_38 Bool) (top.res.abs_39 Bool) (top.res.abs_40 Bool) (top.res.inst_297 Bool) (top.res.inst_296 Bool) (top.res.inst_295 Int) (top.res.inst_294 Int) (top.res.inst_293 Int) (top.res.inst_292 Int) (top.res.inst_291 Int) (top.res.inst_290 Int) (top.res.inst_289 Int) (top.res.inst_288 Int) (top.res.inst_287 Int) (top.res.inst_286 Int) (top.res.inst_285 Int) (top.res.inst_284 Int) (top.res.inst_283 Int) (top.res.inst_282 Int) (top.res.inst_281 Int) (top.res.inst_280 Int) (top.res.inst_279 Int) (top.res.inst_278 Bool) (top.res.inst_277 Int) (top.res.inst_276 Int) (top.res.inst_275 Int) (top.res.inst_274 Bool) (top.res.inst_273 Bool) (top.res.inst_272 Bool) (top.res.inst_271 Bool) (top.res.inst_270 Int) (top.res.inst_269 Int) (top.res.inst_268 Bool) (top.res.inst_267 Int) (top.res.inst_266 Int) (top.res.inst_265 Bool) (top.res.inst_264 Int) (top.res.inst_263 Bool) (top.res.inst_262 Bool) (top.res.inst_261 Bool) (top.res.inst_260 Bool) (top.res.inst_259 Int) (top.res.inst_258 Int) (top.res.inst_257 Bool) (top.res.inst_256 Int) (top.res.inst_255 Int) (top.res.inst_254 Bool) (top.res.inst_253 Int) (top.res.inst_252 Bool) (top.res.inst_251 Bool) (top.res.inst_250 Bool) (top.res.inst_249 Bool) (top.res.inst_248 Int) (top.res.inst_247 Int) (top.res.inst_246 Bool) (top.res.inst_245 Int) (top.res.inst_244 Int) (top.res.inst_243 Bool) (top.res.inst_242 Int) (top.res.inst_241 Bool) (top.res.inst_240 Bool) (top.res.inst_239 Bool) (top.res.inst_238 Bool) (top.res.inst_237 Int) (top.res.inst_236 Int) (top.res.inst_235 Bool) (top.res.inst_234 Int) (top.res.inst_233 Int) (top.res.inst_232 Bool) (top.res.inst_231 Int) (top.res.inst_230 Int) (top.res.inst_229 Int) (top.res.inst_228 Int) (top.res.inst_227 Int) (top.res.inst_226 Bool) (top.res.inst_225 Bool) (top.res.inst_224 Bool) (top.res.inst_223 Bool) (top.res.inst_222 Int) (top.res.inst_221 Int) (top.res.inst_220 Int) (top.res.inst_219 Int) (top.res.inst_218 Int) (top.res.inst_217 Int) (top.res.inst_216 Int) (top.res.inst_215 Int) (top.res.inst_214 Int) (top.res.inst_213 Int) (top.res.inst_212 Int) (top.res.inst_211 Int) (top.res.inst_210 Bool) (top.res.inst_209 Int) (top.res.inst_208 Bool) (top.res.inst_207 Int) (top.res.inst_206 Bool) (top.res.inst_205 Bool) (top.res.inst_204 Bool) (top.res.inst_203 Bool) (top.res.inst_202 Bool) (top.res.inst_201 Bool) (top.res.inst_200 Bool) (top.res.inst_199 Bool) (top.res.inst_198 Bool) (top.res.inst_197 Bool) (top.res.inst_196 Bool) (top.res.inst_195 Bool) (top.res.inst_194 Bool) (top.res.inst_193 Bool) (top.res.inst_192 Bool) (top.res.inst_191 Bool) (top.res.inst_190 Bool) (top.res.inst_189 Bool) (top.res.inst_188 Bool) (top.res.inst_187 Bool) (top.res.inst_186 Bool) (top.res.inst_185 Bool) (top.res.inst_184 Bool) (top.res.inst_183 Bool) (top.res.inst_182 Bool) (top.res.inst_181 Bool) (top.res.inst_180 Bool) (top.res.inst_179 Bool) (top.res.inst_178 Bool) (top.res.inst_177 Bool) (top.res.inst_176 Bool) (top.res.inst_175 Bool) (top.res.inst_174 Int) (top.res.inst_173 Bool) (top.res.inst_172 Bool) (top.res.inst_171 Bool) (top.res.inst_170 Bool) (top.res.inst_169 Bool) (top.res.inst_168 Bool) (top.res.inst_167 Bool) (top.res.inst_166 Bool) (top.res.inst_165 Bool) (top.res.inst_164 Bool) (top.res.inst_163 Bool) (top.res.inst_162 Bool) (top.res.inst_161 Bool) (top.res.inst_160 Bool) (top.res.inst_159 Bool) (top.res.inst_158 Bool) (top.res.inst_157 Bool) (top.res.inst_156 Bool) (top.res.inst_155 Bool) (top.res.inst_154 Bool) (top.res.inst_153 Bool) (top.res.inst_152 Bool) (top.res.inst_151 Bool) (top.res.inst_150 Bool) (top.res.inst_149 Bool) (top.res.inst_148 Bool) (top.res.inst_147 Bool) (top.res.inst_146 Bool) (top.res.inst_145 Bool) (top.res.inst_144 Bool) (top.res.inst_143 Bool) (top.res.inst_142 Bool) (top.res.inst_141 Bool) (top.res.inst_140 Bool) (top.res.inst_139 Bool) (top.res.inst_138 Bool) (top.res.inst_137 Bool) (top.res.inst_136 Bool) (top.res.inst_135 Bool) (top.res.inst_134 Bool) (top.res.inst_133 Bool) (top.res.inst_132 Bool) (top.res.inst_131 Bool) (top.res.inst_130 Bool) (top.res.inst_129 Bool) (top.res.inst_128 Bool) (top.res.inst_127 Bool) (top.res.inst_126 Bool) (top.res.inst_125 Bool) (top.res.inst_124 Bool) (top.res.inst_123 Bool) (top.res.inst_122 Int) (top.res.inst_121 Bool) (top.res.inst_120 Bool) (top.res.inst_119 Int) (top.res.inst_118 Int) (top.res.inst_117 Bool) (top.res.inst_116 Bool) (top.res.inst_115 Bool) (top.res.inst_114 Bool) (top.res.inst_113 Int) (top.res.inst_112 Int) (top.res.inst_111 Bool) (top.res.inst_110 Bool) (top.res.inst_109 Bool) (top.res.inst_108 Bool) (top.res.inst_107 Bool) (top.res.inst_106 Bool) (top.res.inst_105 Bool) (top.res.inst_104 Bool) (top.res.inst_103 Int) (top.res.inst_102 Int) (top.res.inst_101 Int) (top.res.inst_100 Int) (top.res.inst_99 Bool) (top.res.inst_98 Bool) (top.res.inst_97 Bool) (top.res.inst_96 Bool) (top.res.inst_95 Int) (top.res.inst_94 Int) (top.res.inst_93 Int) (top.res.inst_92 Int) (top.res.inst_91 Int) (top.res.inst_90 Int) (top.res.inst_89 Int) (top.res.inst_88 Int) (top.res.inst_87 Int) (top.res.inst_86 Int) (top.res.inst_85 Bool) (top.res.inst_84 Bool) (top.res.inst_83 Bool) (top.res.inst_82 Bool) (top.res.inst_81 Int) (top.res.inst_80 Int) (top.res.inst_79 Int) (top.res.inst_78 Int) (top.res.inst_77 Bool) (top.res.inst_76 Int) (top.res.inst_75 Bool) (top.res.inst_74 Int) (top.res.inst_73 Bool) (top.res.inst_72 Int) (top.res.inst_71 Bool) (top.res.inst_70 Int) (top.res.inst_69 Bool) (top.res.inst_68 Int) (top.res.inst_67 Bool) (top.res.inst_66 Int) (top.res.inst_65 Bool) (top.res.inst_64 Int) (top.res.inst_63 Bool) (top.res.inst_62 Int) (top.res.inst_61 Bool) (top.res.inst_60 Bool) (top.res.inst_59 Bool) (top.res.inst_58 Bool) (top.res.inst_57 Bool) (top.res.inst_56 Bool) (top.res.inst_55 Bool) (top.res.inst_54 Bool) (top.res.inst_53 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Bool) (top.res.inst_50 Bool) (top.res.inst_49 Int) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Int) (top.res.inst_36 Int) (top.res.inst_35 Int) (top.res.inst_34 Int) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Int) (top.res.inst_23 Int) (top.res.inst_22 Int) (top.res.inst_21 Int) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Int) (top.res.inst_10 Int) (top.res.inst_9 Int) (top.res.inst_8 Int) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.stop! Bool) (top.usr.steam_boiler_waiting! Bool) (top.usr.physical_units_ready! Bool) (top.usr.level! Int) (top.usr.steam! Int) (top.usr.pump_state_0! Int) (top.usr.pump_state_1! Int) (top.usr.pump_state_2! Int) (top.usr.pump_state_3! Int) (top.usr.pump_control_state_0! Bool) (top.usr.pump_control_state_1! Bool) (top.usr.pump_control_state_2! Bool) (top.usr.pump_control_state_3! Bool) (top.usr.pump_repaired_0! Bool) (top.usr.pump_repaired_1! Bool) (top.usr.pump_repaired_2! Bool) (top.usr.pump_repaired_3! Bool) (top.usr.pump_control_repaired_0! Bool) (top.usr.pump_control_repaired_1! Bool) (top.usr.pump_control_repaired_2! Bool) (top.usr.pump_control_repaired_3! Bool) (top.usr.level_repaired! Bool) (top.usr.steam_repaired! Bool) (top.usr.pump_failure_acknowledgement_0! Bool) (top.usr.pump_failure_acknowledgement_1! Bool) (top.usr.pump_failure_acknowledgement_2! Bool) (top.usr.pump_failure_acknowledgement_3! Bool) (top.usr.pump_control_failure_acknowledgement_0! Bool) (top.usr.pump_control_failure_acknowledgement_1! Bool) (top.usr.pump_control_failure_acknowledgement_2! Bool) (top.usr.pump_control_failure_acknowledgement_3! Bool) (top.usr.level_failure_acknowledgement! Bool) (top.usr.steam_failure_acknowledgement! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Int) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.abs_12! Bool) (top.res.abs_13! Bool) (top.res.abs_14! Bool) (top.res.abs_15! Bool) (top.res.abs_16! Bool) (top.res.abs_17! Bool) (top.res.abs_18! Bool) (top.res.abs_19! Bool) (top.res.abs_20! Bool) (top.res.abs_21! Bool) (top.res.abs_22! Bool) (top.res.abs_23! Bool) (top.res.abs_24! Bool) (top.res.abs_25! Bool) (top.res.abs_26! Bool) (top.res.abs_27! Bool) (top.res.abs_28! Bool) (top.res.abs_29! Bool) (top.res.abs_30! Bool) (top.res.abs_31! Bool) (top.res.abs_32! Bool) (top.res.abs_33! Bool) (top.res.abs_34! Bool) (top.res.abs_35! Bool) (top.res.abs_36! Bool) (top.res.abs_37! Bool) (top.res.abs_38! Bool) (top.res.abs_39! Bool) (top.res.abs_40! Bool) (top.res.inst_297! Bool) (top.res.inst_296! Bool) (top.res.inst_295! Int) (top.res.inst_294! Int) (top.res.inst_293! Int) (top.res.inst_292! Int) (top.res.inst_291! Int) (top.res.inst_290! Int) (top.res.inst_289! Int) (top.res.inst_288! Int) (top.res.inst_287! Int) (top.res.inst_286! Int) (top.res.inst_285! Int) (top.res.inst_284! Int) (top.res.inst_283! Int) (top.res.inst_282! Int) (top.res.inst_281! Int) (top.res.inst_280! Int) (top.res.inst_279! Int) (top.res.inst_278! Bool) (top.res.inst_277! Int) (top.res.inst_276! Int) (top.res.inst_275! Int) (top.res.inst_274! Bool) (top.res.inst_273! Bool) (top.res.inst_272! Bool) (top.res.inst_271! Bool) (top.res.inst_270! Int) (top.res.inst_269! Int) (top.res.inst_268! Bool) (top.res.inst_267! Int) (top.res.inst_266! Int) (top.res.inst_265! Bool) (top.res.inst_264! Int) (top.res.inst_263! Bool) (top.res.inst_262! Bool) (top.res.inst_261! Bool) (top.res.inst_260! Bool) (top.res.inst_259! Int) (top.res.inst_258! Int) (top.res.inst_257! Bool) (top.res.inst_256! Int) (top.res.inst_255! Int) (top.res.inst_254! Bool) (top.res.inst_253! Int) (top.res.inst_252! Bool) (top.res.inst_251! Bool) (top.res.inst_250! Bool) (top.res.inst_249! Bool) (top.res.inst_248! Int) (top.res.inst_247! Int) (top.res.inst_246! Bool) (top.res.inst_245! Int) (top.res.inst_244! Int) (top.res.inst_243! Bool) (top.res.inst_242! Int) (top.res.inst_241! Bool) (top.res.inst_240! Bool) (top.res.inst_239! Bool) (top.res.inst_238! Bool) (top.res.inst_237! Int) (top.res.inst_236! Int) (top.res.inst_235! Bool) (top.res.inst_234! Int) (top.res.inst_233! Int) (top.res.inst_232! Bool) (top.res.inst_231! Int) (top.res.inst_230! Int) (top.res.inst_229! Int) (top.res.inst_228! Int) (top.res.inst_227! Int) (top.res.inst_226! Bool) (top.res.inst_225! Bool) (top.res.inst_224! Bool) (top.res.inst_223! Bool) (top.res.inst_222! Int) (top.res.inst_221! Int) (top.res.inst_220! Int) (top.res.inst_219! Int) (top.res.inst_218! Int) (top.res.inst_217! Int) (top.res.inst_216! Int) (top.res.inst_215! Int) (top.res.inst_214! Int) (top.res.inst_213! Int) (top.res.inst_212! Int) (top.res.inst_211! Int) (top.res.inst_210! Bool) (top.res.inst_209! Int) (top.res.inst_208! Bool) (top.res.inst_207! Int) (top.res.inst_206! Bool) (top.res.inst_205! Bool) (top.res.inst_204! Bool) (top.res.inst_203! Bool) (top.res.inst_202! Bool) (top.res.inst_201! Bool) (top.res.inst_200! Bool) (top.res.inst_199! Bool) (top.res.inst_198! Bool) (top.res.inst_197! Bool) (top.res.inst_196! Bool) (top.res.inst_195! Bool) (top.res.inst_194! Bool) (top.res.inst_193! Bool) (top.res.inst_192! Bool) (top.res.inst_191! Bool) (top.res.inst_190! Bool) (top.res.inst_189! Bool) (top.res.inst_188! Bool) (top.res.inst_187! Bool) (top.res.inst_186! Bool) (top.res.inst_185! Bool) (top.res.inst_184! Bool) (top.res.inst_183! Bool) (top.res.inst_182! Bool) (top.res.inst_181! Bool) (top.res.inst_180! Bool) (top.res.inst_179! Bool) (top.res.inst_178! Bool) (top.res.inst_177! Bool) (top.res.inst_176! Bool) (top.res.inst_175! Bool) (top.res.inst_174! Int) (top.res.inst_173! Bool) (top.res.inst_172! Bool) (top.res.inst_171! Bool) (top.res.inst_170! Bool) (top.res.inst_169! Bool) (top.res.inst_168! Bool) (top.res.inst_167! Bool) (top.res.inst_166! Bool) (top.res.inst_165! Bool) (top.res.inst_164! Bool) (top.res.inst_163! Bool) (top.res.inst_162! Bool) (top.res.inst_161! Bool) (top.res.inst_160! Bool) (top.res.inst_159! Bool) (top.res.inst_158! Bool) (top.res.inst_157! Bool) (top.res.inst_156! Bool) (top.res.inst_155! Bool) (top.res.inst_154! Bool) (top.res.inst_153! Bool) (top.res.inst_152! Bool) (top.res.inst_151! Bool) (top.res.inst_150! Bool) (top.res.inst_149! Bool) (top.res.inst_148! Bool) (top.res.inst_147! Bool) (top.res.inst_146! Bool) (top.res.inst_145! Bool) (top.res.inst_144! Bool) (top.res.inst_143! Bool) (top.res.inst_142! Bool) (top.res.inst_141! Bool) (top.res.inst_140! Bool) (top.res.inst_139! Bool) (top.res.inst_138! Bool) (top.res.inst_137! Bool) (top.res.inst_136! Bool) (top.res.inst_135! Bool) (top.res.inst_134! Bool) (top.res.inst_133! Bool) (top.res.inst_132! Bool) (top.res.inst_131! Bool) (top.res.inst_130! Bool) (top.res.inst_129! Bool) (top.res.inst_128! Bool) (top.res.inst_127! Bool) (top.res.inst_126! Bool) (top.res.inst_125! Bool) (top.res.inst_124! Bool) (top.res.inst_123! Bool) (top.res.inst_122! Int) (top.res.inst_121! Bool) (top.res.inst_120! Bool) (top.res.inst_119! Int) (top.res.inst_118! Int) (top.res.inst_117! Bool) (top.res.inst_116! Bool) (top.res.inst_115! Bool) (top.res.inst_114! Bool) (top.res.inst_113! Int) (top.res.inst_112! Int) (top.res.inst_111! Bool) (top.res.inst_110! Bool) (top.res.inst_109! Bool) (top.res.inst_108! Bool) (top.res.inst_107! Bool) (top.res.inst_106! Bool) (top.res.inst_105! Bool) (top.res.inst_104! Bool) (top.res.inst_103! Int) (top.res.inst_102! Int) (top.res.inst_101! Int) (top.res.inst_100! Int) (top.res.inst_99! Bool) (top.res.inst_98! Bool) (top.res.inst_97! Bool) (top.res.inst_96! Bool) (top.res.inst_95! Int) (top.res.inst_94! Int) (top.res.inst_93! Int) (top.res.inst_92! Int) (top.res.inst_91! Int) (top.res.inst_90! Int) (top.res.inst_89! Int) (top.res.inst_88! Int) (top.res.inst_87! Int) (top.res.inst_86! Int) (top.res.inst_85! Bool) (top.res.inst_84! Bool) (top.res.inst_83! Bool) (top.res.inst_82! Bool) (top.res.inst_81! Int) (top.res.inst_80! Int) (top.res.inst_79! Int) (top.res.inst_78! Int) (top.res.inst_77! Bool) (top.res.inst_76! Int) (top.res.inst_75! Bool) (top.res.inst_74! Int) (top.res.inst_73! Bool) (top.res.inst_72! Int) (top.res.inst_71! Bool) (top.res.inst_70! Int) (top.res.inst_69! Bool) (top.res.inst_68! Int) (top.res.inst_67! Bool) (top.res.inst_66! Int) (top.res.inst_65! Bool) (top.res.inst_64! Int) (top.res.inst_63! Bool) (top.res.inst_62! Int) (top.res.inst_61! Bool) (top.res.inst_60! Bool) (top.res.inst_59! Bool) (top.res.inst_58! Bool) (top.res.inst_57! Bool) (top.res.inst_56! Bool) (top.res.inst_55! Bool) (top.res.inst_54! Bool) (top.res.inst_53! Bool) (top.res.inst_52! Bool) (top.res.inst_51! Bool) (top.res.inst_50! Bool) (top.res.inst_49! Int) (top.res.inst_48! Bool) (top.res.inst_47! Bool) (top.res.inst_46! Bool) (top.res.inst_45! Bool) (top.res.inst_44! Bool) (top.res.inst_43! Bool) (top.res.inst_42! Bool) (top.res.inst_41! Bool) (top.res.inst_40! Bool) (top.res.inst_39! Bool) (top.res.inst_38! Bool) (top.res.inst_37! Int) (top.res.inst_36! Int) (top.res.inst_35! Int) (top.res.inst_34! Int) (top.res.inst_33! Bool) (top.res.inst_32! Bool) (top.res.inst_31! Bool) (top.res.inst_30! Bool) (top.res.inst_29! Bool) (top.res.inst_28! Bool) (top.res.inst_27! Bool) (top.res.inst_26! Bool) (top.res.inst_25! Bool) (top.res.inst_24! Int) (top.res.inst_23! Int) (top.res.inst_22! Int) (top.res.inst_21! Int) (top.res.inst_20! Bool) (top.res.inst_19! Bool) (top.res.inst_18! Bool) (top.res.inst_17! Bool) (top.res.inst_16! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Bool) (top.res.inst_11! Int) (top.res.inst_10! Int) (top.res.inst_9! Int) (top.res.inst_8! Int) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Bool) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (let ((X1 top.res.abs_18!)) (and (= top.res.abs_39! (not X1)) (let ((X2 top.res.abs_17!)) (and (= top.res.abs_38! (not X2)) (let ((X3 top.res.abs_16!)) (and (= top.res.abs_37! (not X3)) (let ((X4 top.res.abs_15!)) (and (= top.res.abs_36! (not X4)) (let ((X5 top.res.abs_14!)) (and (= top.res.abs_34! (not X5)) (let ((X6 top.res.abs_13!)) (and (= top.res.abs_33! (not X6)) (let ((X7 top.res.abs_12!)) (and (= top.res.abs_32! (not X7)) (let ((X8 top.res.abs_11!)) (and (= top.res.abs_31! (not X8)) (let ((X9 top.res.abs_20!)) (let ((X10 top.res.abs_19!)) (let ((X11 top.res.abs_2!)) (let ((X12 top.res.abs_1!)) (let ((X13 (=> (= X12 3) (not X11)))) (let ((X14 (=> (= X12 3) (and (and (and (not X10) (not X9)) top.res.abs_35!) top.res.abs_40!)))) (let ((X15 (or (or (or (or (or (= X12 1) (= X12 2)) (= X12 3)) (= X12 4)) (= X12 5)) (= X12 6)))) (and (= top.usr.OK! (and (and X15 X14) X13)) (__node_trans_BoilerController_0 top.usr.stop! top.usr.steam_boiler_waiting! top.usr.physical_units_ready! top.usr.level! top.usr.steam! top.usr.pump_state_0! top.usr.pump_state_1! top.usr.pump_state_2! top.usr.pump_state_3! top.usr.pump_control_state_0! top.usr.pump_control_state_1! top.usr.pump_control_state_2! top.usr.pump_control_state_3! top.usr.pump_repaired_0! top.usr.pump_repaired_1! top.usr.pump_repaired_2! top.usr.pump_repaired_3! top.usr.pump_control_repaired_0! top.usr.pump_control_repaired_1! top.usr.pump_control_repaired_2! top.usr.pump_control_repaired_3! top.usr.level_repaired! top.usr.steam_repaired! top.usr.pump_failure_acknowledgement_0! top.usr.pump_failure_acknowledgement_1! top.usr.pump_failure_acknowledgement_2! top.usr.pump_failure_acknowledgement_3! top.usr.pump_control_failure_acknowledgement_0! top.usr.pump_control_failure_acknowledgement_1! top.usr.pump_control_failure_acknowledgement_2! top.usr.pump_control_failure_acknowledgement_3! top.usr.level_failure_acknowledgement! top.usr.steam_failure_acknowledgement! top.res.nondet_32 top.res.nondet_31 top.res.nondet_30 top.res.nondet_29 top.res.nondet_28 top.res.nondet_27 top.res.nondet_26 top.res.nondet_25 top.res.nondet_24 top.res.nondet_23 top.res.nondet_22 top.res.nondet_21 top.res.nondet_20 top.res.nondet_19 top.res.nondet_18 top.res.nondet_17 top.res.nondet_16 top.res.nondet_15 top.res.nondet_14 top.res.nondet_13 top.res.nondet_12 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.abs_10! top.res.abs_11! top.res.abs_12! top.res.abs_13! top.res.abs_14! top.res.abs_15! top.res.abs_16! top.res.abs_17! top.res.abs_18! top.res.abs_19! top.res.abs_20! top.res.abs_21! top.res.abs_22! top.res.abs_23! top.res.abs_24! top.res.abs_25! top.res.abs_26! top.res.abs_27! top.res.abs_28! top.res.abs_29! top.res.abs_30! top.res.inst_297! top.res.inst_296! top.res.inst_295! top.res.inst_294! top.res.inst_293! top.res.inst_292! top.res.inst_291! top.res.inst_290! top.res.inst_289! top.res.inst_288! top.res.inst_287! top.res.inst_286! top.res.inst_285! top.res.inst_284! top.res.inst_283! top.res.inst_282! top.res.inst_281! top.res.inst_280! top.res.inst_279! top.res.inst_278! top.res.inst_277! top.res.inst_276! top.res.inst_275! top.res.inst_274! top.res.inst_273! top.res.inst_272! top.res.inst_271! top.res.inst_270! top.res.inst_269! top.res.inst_268! top.res.inst_267! top.res.inst_266! top.res.inst_265! top.res.inst_264! top.res.inst_263! top.res.inst_262! top.res.inst_261! top.res.inst_260! top.res.inst_259! top.res.inst_258! top.res.inst_257! top.res.inst_256! top.res.inst_255! top.res.inst_254! top.res.inst_253! top.res.inst_252! top.res.inst_251! top.res.inst_250! top.res.inst_249! top.res.inst_248! top.res.inst_247! top.res.inst_246! top.res.inst_245! top.res.inst_244! top.res.inst_243! top.res.inst_242! top.res.inst_241! top.res.inst_240! top.res.inst_239! top.res.inst_238! top.res.inst_237! top.res.inst_236! top.res.inst_235! top.res.inst_234! top.res.inst_233! top.res.inst_232! top.res.inst_231! top.res.inst_230! top.res.inst_229! top.res.inst_228! top.res.inst_227! top.res.inst_226! top.res.inst_225! top.res.inst_224! top.res.inst_223! top.res.inst_222! top.res.inst_221! top.res.inst_220! top.res.inst_219! top.res.inst_218! top.res.inst_217! top.res.inst_216! top.res.inst_215! top.res.inst_214! top.res.inst_213! top.res.inst_212! top.res.inst_211! top.res.inst_210! top.res.inst_209! top.res.inst_208! top.res.inst_207! top.res.inst_206! top.res.inst_205! top.res.inst_204! top.res.inst_203! top.res.inst_202! top.res.inst_201! top.res.inst_200! top.res.inst_199! top.res.inst_198! top.res.inst_197! top.res.inst_196! top.res.inst_195! top.res.inst_194! top.res.inst_193! top.res.inst_192! top.res.inst_191! top.res.inst_190! top.res.inst_189! top.res.inst_188! top.res.inst_187! top.res.inst_186! top.res.inst_185! top.res.inst_184! top.res.inst_183! top.res.inst_182! top.res.inst_181! top.res.inst_180! top.res.inst_179! top.res.inst_178! top.res.inst_177! top.res.inst_176! top.res.inst_175! top.res.inst_174! top.res.inst_173! top.res.inst_172! top.res.inst_171! top.res.inst_170! top.res.inst_169! top.res.inst_168! top.res.inst_167! top.res.inst_166! top.res.inst_165! top.res.inst_164! top.res.inst_163! top.res.inst_162! top.res.inst_161! top.res.inst_160! top.res.inst_159! top.res.inst_158! top.res.inst_157! top.res.inst_156! top.res.inst_155! top.res.inst_154! top.res.inst_153! top.res.inst_152! top.res.inst_151! top.res.inst_150! top.res.inst_149! top.res.inst_148! top.res.inst_147! top.res.inst_146! top.res.inst_145! top.res.inst_144! top.res.inst_143! top.res.inst_142! top.res.inst_141! top.res.inst_140! top.res.inst_139! top.res.inst_138! top.res.inst_137! top.res.inst_136! top.res.inst_135! top.res.inst_134! top.res.inst_133! top.res.inst_132! top.res.inst_131! top.res.inst_130! top.res.inst_129! top.res.inst_128! top.res.inst_127! top.res.inst_126! top.res.inst_125! top.res.inst_124! top.res.inst_123! top.res.inst_122! top.res.inst_121! top.res.inst_120! top.res.inst_119! top.res.inst_118! top.res.inst_117! top.res.inst_116! top.res.inst_115! top.res.inst_114! top.res.inst_113! top.res.inst_112! top.res.inst_111! top.res.inst_110! top.res.inst_109! top.res.inst_108! top.res.inst_107! top.res.inst_106! top.res.inst_105! top.res.inst_104! top.res.inst_103! top.res.inst_102! top.res.inst_101! top.res.inst_100! top.res.inst_99! top.res.inst_98! top.res.inst_97! top.res.inst_96! top.res.inst_95! top.res.inst_94! top.res.inst_93! top.res.inst_92! top.res.inst_91! top.res.inst_90! top.res.inst_89! top.res.inst_88! top.res.inst_87! top.res.inst_86! top.res.inst_85! top.res.inst_84! top.res.inst_83! top.res.inst_82! top.res.inst_81! top.res.inst_80! top.res.inst_79! top.res.inst_78! top.res.inst_77! top.res.inst_76! top.res.inst_75! top.res.inst_74! top.res.inst_73! top.res.inst_72! top.res.inst_71! top.res.inst_70! top.res.inst_69! top.res.inst_68! top.res.inst_67! top.res.inst_66! top.res.inst_65! top.res.inst_64! top.res.inst_63! top.res.inst_62! top.res.inst_61! top.res.inst_60! top.res.inst_59! top.res.inst_58! top.res.inst_57! top.res.inst_56! top.res.inst_55! top.res.inst_54! top.res.inst_53! top.res.inst_52! top.res.inst_51! top.res.inst_50! top.res.inst_49! top.res.inst_48! top.res.inst_47! top.res.inst_46! top.res.inst_45! top.res.inst_44! top.res.inst_43! top.res.inst_42! top.res.inst_41! top.res.inst_40! top.res.inst_39! top.res.inst_38! top.res.inst_37! top.res.inst_36! top.res.inst_35! top.res.inst_34! top.res.inst_33! top.res.inst_32! top.res.inst_31! top.res.inst_30! top.res.inst_29! top.res.inst_28! top.res.inst_27! top.res.inst_26! top.res.inst_25! top.res.inst_24! top.res.inst_23! top.res.inst_22! top.res.inst_21! top.res.inst_20! top.res.inst_19! top.res.inst_18! top.res.inst_17! top.res.inst_16! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.usr.stop top.usr.steam_boiler_waiting top.usr.physical_units_ready top.usr.level top.usr.steam top.usr.pump_state_0 top.usr.pump_state_1 top.usr.pump_state_2 top.usr.pump_state_3 top.usr.pump_control_state_0 top.usr.pump_control_state_1 top.usr.pump_control_state_2 top.usr.pump_control_state_3 top.usr.pump_repaired_0 top.usr.pump_repaired_1 top.usr.pump_repaired_2 top.usr.pump_repaired_3 top.usr.pump_control_repaired_0 top.usr.pump_control_repaired_1 top.usr.pump_control_repaired_2 top.usr.pump_control_repaired_3 top.usr.level_repaired top.usr.steam_repaired top.usr.pump_failure_acknowledgement_0 top.usr.pump_failure_acknowledgement_1 top.usr.pump_failure_acknowledgement_2 top.usr.pump_failure_acknowledgement_3 top.usr.pump_control_failure_acknowledgement_0 top.usr.pump_control_failure_acknowledgement_1 top.usr.pump_control_failure_acknowledgement_2 top.usr.pump_control_failure_acknowledgement_3 top.usr.level_failure_acknowledgement top.usr.steam_failure_acknowledgement top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.abs_10 top.res.abs_11 top.res.abs_12 top.res.abs_13 top.res.abs_14 top.res.abs_15 top.res.abs_16 top.res.abs_17 top.res.abs_18 top.res.abs_19 top.res.abs_20 top.res.abs_21 top.res.abs_22 top.res.abs_23 top.res.abs_24 top.res.abs_25 top.res.abs_26 top.res.abs_27 top.res.abs_28 top.res.abs_29 top.res.abs_30 top.res.inst_297 top.res.inst_296 top.res.inst_295 top.res.inst_294 top.res.inst_293 top.res.inst_292 top.res.inst_291 top.res.inst_290 top.res.inst_289 top.res.inst_288 top.res.inst_287 top.res.inst_286 top.res.inst_285 top.res.inst_284 top.res.inst_283 top.res.inst_282 top.res.inst_281 top.res.inst_280 top.res.inst_279 top.res.inst_278 top.res.inst_277 top.res.inst_276 top.res.inst_275 top.res.inst_274 top.res.inst_273 top.res.inst_272 top.res.inst_271 top.res.inst_270 top.res.inst_269 top.res.inst_268 top.res.inst_267 top.res.inst_266 top.res.inst_265 top.res.inst_264 top.res.inst_263 top.res.inst_262 top.res.inst_261 top.res.inst_260 top.res.inst_259 top.res.inst_258 top.res.inst_257 top.res.inst_256 top.res.inst_255 top.res.inst_254 top.res.inst_253 top.res.inst_252 top.res.inst_251 top.res.inst_250 top.res.inst_249 top.res.inst_248 top.res.inst_247 top.res.inst_246 top.res.inst_245 top.res.inst_244 top.res.inst_243 top.res.inst_242 top.res.inst_241 top.res.inst_240 top.res.inst_239 top.res.inst_238 top.res.inst_237 top.res.inst_236 top.res.inst_235 top.res.inst_234 top.res.inst_233 top.res.inst_232 top.res.inst_231 top.res.inst_230 top.res.inst_229 top.res.inst_228 top.res.inst_227 top.res.inst_226 top.res.inst_225 top.res.inst_224 top.res.inst_223 top.res.inst_222 top.res.inst_221 top.res.inst_220 top.res.inst_219 top.res.inst_218 top.res.inst_217 top.res.inst_216 top.res.inst_215 top.res.inst_214 top.res.inst_213 top.res.inst_212 top.res.inst_211 top.res.inst_210 top.res.inst_209 top.res.inst_208 top.res.inst_207 top.res.inst_206 top.res.inst_205 top.res.inst_204 top.res.inst_203 top.res.inst_202 top.res.inst_201 top.res.inst_200 top.res.inst_199 top.res.inst_198 top.res.inst_197 top.res.inst_196 top.res.inst_195 top.res.inst_194 top.res.inst_193 top.res.inst_192 top.res.inst_191 top.res.inst_190 top.res.inst_189 top.res.inst_188 top.res.inst_187 top.res.inst_186 top.res.inst_185 top.res.inst_184 top.res.inst_183 top.res.inst_182 top.res.inst_181 top.res.inst_180 top.res.inst_179 top.res.inst_178 top.res.inst_177 top.res.inst_176 top.res.inst_175 top.res.inst_174 top.res.inst_173 top.res.inst_172 top.res.inst_171 top.res.inst_170 top.res.inst_169 top.res.inst_168 top.res.inst_167 top.res.inst_166 top.res.inst_165 top.res.inst_164 top.res.inst_163 top.res.inst_162 top.res.inst_161 top.res.inst_160 top.res.inst_159 top.res.inst_158 top.res.inst_157 top.res.inst_156 top.res.inst_155 top.res.inst_154 top.res.inst_153 top.res.inst_152 top.res.inst_151 top.res.inst_150 top.res.inst_149 top.res.inst_148 top.res.inst_147 top.res.inst_146 top.res.inst_145 top.res.inst_144 top.res.inst_143 top.res.inst_142 top.res.inst_141 top.res.inst_140 top.res.inst_139 top.res.inst_138 top.res.inst_137 top.res.inst_136 top.res.inst_135 top.res.inst_134 top.res.inst_133 top.res.inst_132 top.res.inst_131 top.res.inst_130 top.res.inst_129 top.res.inst_128 top.res.inst_127 top.res.inst_126 top.res.inst_125 top.res.inst_124 top.res.inst_123 top.res.inst_122 top.res.inst_121 top.res.inst_120 top.res.inst_119 top.res.inst_118 top.res.inst_117 top.res.inst_116 top.res.inst_115 top.res.inst_114 top.res.inst_113 top.res.inst_112 top.res.inst_111 top.res.inst_110 top.res.inst_109 top.res.inst_108 top.res.inst_107 top.res.inst_106 top.res.inst_105 top.res.inst_104 top.res.inst_103 top.res.inst_102 top.res.inst_101 top.res.inst_100 top.res.inst_99 top.res.inst_98 top.res.inst_97 top.res.inst_96 top.res.inst_95 top.res.inst_94 top.res.inst_93 top.res.inst_92 top.res.inst_91 top.res.inst_90 top.res.inst_89 top.res.inst_88 top.res.inst_87 top.res.inst_86 top.res.inst_85 top.res.inst_84 top.res.inst_83 top.res.inst_82 top.res.inst_81 top.res.inst_80 top.res.inst_79 top.res.inst_78 top.res.inst_77 top.res.inst_76 top.res.inst_75 top.res.inst_74 top.res.inst_73 top.res.inst_72 top.res.inst_71 top.res.inst_70 top.res.inst_69 top.res.inst_68 top.res.inst_67 top.res.inst_66 top.res.inst_65 top.res.inst_64 top.res.inst_63 top.res.inst_62 top.res.inst_61 top.res.inst_60 top.res.inst_59 top.res.inst_58 top.res.inst_57 top.res.inst_56 top.res.inst_55 top.res.inst_54 top.res.inst_53 top.res.inst_52 top.res.inst_51 top.res.inst_50 top.res.inst_49 top.res.inst_48 top.res.inst_47 top.res.inst_46 top.res.inst_45 top.res.inst_44 top.res.inst_43 top.res.inst_42 top.res.inst_41 top.res.inst_40 top.res.inst_39 top.res.inst_38 top.res.inst_37 top.res.inst_36 top.res.inst_35 top.res.inst_34 top.res.inst_33 top.res.inst_32 top.res.inst_31 top.res.inst_30 top.res.inst_29 top.res.inst_28 top.res.inst_27 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2) (__node_trans_AND_0 top.res.abs_31! top.res.abs_32! top.res.abs_33! top.res.abs_34! top.res.abs_35! top.res.inst_1! top.res.abs_31 top.res.abs_32 top.res.abs_33 top.res.abs_34 top.res.abs_35 top.res.inst_1) (__node_trans_AND_0 top.res.abs_36! top.res.abs_37! top.res.abs_38! top.res.abs_39! top.res.abs_40! top.res.inst_0! top.res.abs_36 top.res.abs_37 top.res.abs_38 top.res.abs_39 top.res.abs_40 top.res.inst_0) (not top.res.init_flag!))))))))))))))))))))))))) (= top.res.nondet_32 top.res.nondet_32) (= top.res.nondet_31 top.res.nondet_31) (= top.res.nondet_30 top.res.nondet_30) (= top.res.nondet_29 top.res.nondet_29) (= top.res.nondet_28 top.res.nondet_28) (= top.res.nondet_27 top.res.nondet_27) (= top.res.nondet_26 top.res.nondet_26) (= top.res.nondet_25 top.res.nondet_25) (= top.res.nondet_24 top.res.nondet_24) (= top.res.nondet_23 top.res.nondet_23) (= top.res.nondet_22 top.res.nondet_22) (= top.res.nondet_21 top.res.nondet_21) (= top.res.nondet_20 top.res.nondet_20) (= top.res.nondet_19 top.res.nondet_19) (= top.res.nondet_18 top.res.nondet_18) (= top.res.nondet_17 top.res.nondet_17) (= top.res.nondet_16 top.res.nondet_16) (= top.res.nondet_15 top.res.nondet_15) (= top.res.nondet_14 top.res.nondet_14) (= top.res.nondet_13 top.res.nondet_13) (= top.res.nondet_12 top.res.nondet_12) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.stop Bool) (top.usr.steam_boiler_waiting Bool) (top.usr.physical_units_ready Bool) (top.usr.level Int) (top.usr.steam Int) (top.usr.pump_state_0 Int) (top.usr.pump_state_1 Int) (top.usr.pump_state_2 Int) (top.usr.pump_state_3 Int) (top.usr.pump_control_state_0 Bool) (top.usr.pump_control_state_1 Bool) (top.usr.pump_control_state_2 Bool) (top.usr.pump_control_state_3 Bool) (top.usr.pump_repaired_0 Bool) (top.usr.pump_repaired_1 Bool) (top.usr.pump_repaired_2 Bool) (top.usr.pump_repaired_3 Bool) (top.usr.pump_control_repaired_0 Bool) (top.usr.pump_control_repaired_1 Bool) (top.usr.pump_control_repaired_2 Bool) (top.usr.pump_control_repaired_3 Bool) (top.usr.level_repaired Bool) (top.usr.steam_repaired Bool) (top.usr.pump_failure_acknowledgement_0 Bool) (top.usr.pump_failure_acknowledgement_1 Bool) (top.usr.pump_failure_acknowledgement_2 Bool) (top.usr.pump_failure_acknowledgement_3 Bool) (top.usr.pump_control_failure_acknowledgement_0 Bool) (top.usr.pump_control_failure_acknowledgement_1 Bool) (top.usr.pump_control_failure_acknowledgement_2 Bool) (top.usr.pump_control_failure_acknowledgement_3 Bool) (top.usr.level_failure_acknowledgement Bool) (top.usr.steam_failure_acknowledgement Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Int) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.abs_13 Bool) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.abs_17 Bool) (top.res.abs_18 Bool) (top.res.abs_19 Bool) (top.res.abs_20 Bool) (top.res.abs_21 Bool) (top.res.abs_22 Bool) (top.res.abs_23 Bool) (top.res.abs_24 Bool) (top.res.abs_25 Bool) (top.res.abs_26 Bool) (top.res.abs_27 Bool) (top.res.abs_28 Bool) (top.res.abs_29 Bool) (top.res.abs_30 Bool) (top.res.abs_31 Bool) (top.res.abs_32 Bool) (top.res.abs_33 Bool) (top.res.abs_34 Bool) (top.res.abs_35 Bool) (top.res.abs_36 Bool) (top.res.abs_37 Bool) (top.res.abs_38 Bool) (top.res.abs_39 Bool) (top.res.abs_40 Bool) (top.res.inst_297 Bool) (top.res.inst_296 Bool) (top.res.inst_295 Int) (top.res.inst_294 Int) (top.res.inst_293 Int) (top.res.inst_292 Int) (top.res.inst_291 Int) (top.res.inst_290 Int) (top.res.inst_289 Int) (top.res.inst_288 Int) (top.res.inst_287 Int) (top.res.inst_286 Int) (top.res.inst_285 Int) (top.res.inst_284 Int) (top.res.inst_283 Int) (top.res.inst_282 Int) (top.res.inst_281 Int) (top.res.inst_280 Int) (top.res.inst_279 Int) (top.res.inst_278 Bool) (top.res.inst_277 Int) (top.res.inst_276 Int) (top.res.inst_275 Int) (top.res.inst_274 Bool) (top.res.inst_273 Bool) (top.res.inst_272 Bool) (top.res.inst_271 Bool) (top.res.inst_270 Int) (top.res.inst_269 Int) (top.res.inst_268 Bool) (top.res.inst_267 Int) (top.res.inst_266 Int) (top.res.inst_265 Bool) (top.res.inst_264 Int) (top.res.inst_263 Bool) (top.res.inst_262 Bool) (top.res.inst_261 Bool) (top.res.inst_260 Bool) (top.res.inst_259 Int) (top.res.inst_258 Int) (top.res.inst_257 Bool) (top.res.inst_256 Int) (top.res.inst_255 Int) (top.res.inst_254 Bool) (top.res.inst_253 Int) (top.res.inst_252 Bool) (top.res.inst_251 Bool) (top.res.inst_250 Bool) (top.res.inst_249 Bool) (top.res.inst_248 Int) (top.res.inst_247 Int) (top.res.inst_246 Bool) (top.res.inst_245 Int) (top.res.inst_244 Int) (top.res.inst_243 Bool) (top.res.inst_242 Int) (top.res.inst_241 Bool) (top.res.inst_240 Bool) (top.res.inst_239 Bool) (top.res.inst_238 Bool) (top.res.inst_237 Int) (top.res.inst_236 Int) (top.res.inst_235 Bool) (top.res.inst_234 Int) (top.res.inst_233 Int) (top.res.inst_232 Bool) (top.res.inst_231 Int) (top.res.inst_230 Int) (top.res.inst_229 Int) (top.res.inst_228 Int) (top.res.inst_227 Int) (top.res.inst_226 Bool) (top.res.inst_225 Bool) (top.res.inst_224 Bool) (top.res.inst_223 Bool) (top.res.inst_222 Int) (top.res.inst_221 Int) (top.res.inst_220 Int) (top.res.inst_219 Int) (top.res.inst_218 Int) (top.res.inst_217 Int) (top.res.inst_216 Int) (top.res.inst_215 Int) (top.res.inst_214 Int) (top.res.inst_213 Int) (top.res.inst_212 Int) (top.res.inst_211 Int) (top.res.inst_210 Bool) (top.res.inst_209 Int) (top.res.inst_208 Bool) (top.res.inst_207 Int) (top.res.inst_206 Bool) (top.res.inst_205 Bool) (top.res.inst_204 Bool) (top.res.inst_203 Bool) (top.res.inst_202 Bool) (top.res.inst_201 Bool) (top.res.inst_200 Bool) (top.res.inst_199 Bool) (top.res.inst_198 Bool) (top.res.inst_197 Bool) (top.res.inst_196 Bool) (top.res.inst_195 Bool) (top.res.inst_194 Bool) (top.res.inst_193 Bool) (top.res.inst_192 Bool) (top.res.inst_191 Bool) (top.res.inst_190 Bool) (top.res.inst_189 Bool) (top.res.inst_188 Bool) (top.res.inst_187 Bool) (top.res.inst_186 Bool) (top.res.inst_185 Bool) (top.res.inst_184 Bool) (top.res.inst_183 Bool) (top.res.inst_182 Bool) (top.res.inst_181 Bool) (top.res.inst_180 Bool) (top.res.inst_179 Bool) (top.res.inst_178 Bool) (top.res.inst_177 Bool) (top.res.inst_176 Bool) (top.res.inst_175 Bool) (top.res.inst_174 Int) (top.res.inst_173 Bool) (top.res.inst_172 Bool) (top.res.inst_171 Bool) (top.res.inst_170 Bool) (top.res.inst_169 Bool) (top.res.inst_168 Bool) (top.res.inst_167 Bool) (top.res.inst_166 Bool) (top.res.inst_165 Bool) (top.res.inst_164 Bool) (top.res.inst_163 Bool) (top.res.inst_162 Bool) (top.res.inst_161 Bool) (top.res.inst_160 Bool) (top.res.inst_159 Bool) (top.res.inst_158 Bool) (top.res.inst_157 Bool) (top.res.inst_156 Bool) (top.res.inst_155 Bool) (top.res.inst_154 Bool) (top.res.inst_153 Bool) (top.res.inst_152 Bool) (top.res.inst_151 Bool) (top.res.inst_150 Bool) (top.res.inst_149 Bool) (top.res.inst_148 Bool) (top.res.inst_147 Bool) (top.res.inst_146 Bool) (top.res.inst_145 Bool) (top.res.inst_144 Bool) (top.res.inst_143 Bool) (top.res.inst_142 Bool) (top.res.inst_141 Bool) (top.res.inst_140 Bool) (top.res.inst_139 Bool) (top.res.inst_138 Bool) (top.res.inst_137 Bool) (top.res.inst_136 Bool) (top.res.inst_135 Bool) (top.res.inst_134 Bool) (top.res.inst_133 Bool) (top.res.inst_132 Bool) (top.res.inst_131 Bool) (top.res.inst_130 Bool) (top.res.inst_129 Bool) (top.res.inst_128 Bool) (top.res.inst_127 Bool) (top.res.inst_126 Bool) (top.res.inst_125 Bool) (top.res.inst_124 Bool) (top.res.inst_123 Bool) (top.res.inst_122 Int) (top.res.inst_121 Bool) (top.res.inst_120 Bool) (top.res.inst_119 Int) (top.res.inst_118 Int) (top.res.inst_117 Bool) (top.res.inst_116 Bool) (top.res.inst_115 Bool) (top.res.inst_114 Bool) (top.res.inst_113 Int) (top.res.inst_112 Int) (top.res.inst_111 Bool) (top.res.inst_110 Bool) (top.res.inst_109 Bool) (top.res.inst_108 Bool) (top.res.inst_107 Bool) (top.res.inst_106 Bool) (top.res.inst_105 Bool) (top.res.inst_104 Bool) (top.res.inst_103 Int) (top.res.inst_102 Int) (top.res.inst_101 Int) (top.res.inst_100 Int) (top.res.inst_99 Bool) (top.res.inst_98 Bool) (top.res.inst_97 Bool) (top.res.inst_96 Bool) (top.res.inst_95 Int) (top.res.inst_94 Int) (top.res.inst_93 Int) (top.res.inst_92 Int) (top.res.inst_91 Int) (top.res.inst_90 Int) (top.res.inst_89 Int) (top.res.inst_88 Int) (top.res.inst_87 Int) (top.res.inst_86 Int) (top.res.inst_85 Bool) (top.res.inst_84 Bool) (top.res.inst_83 Bool) (top.res.inst_82 Bool) (top.res.inst_81 Int) (top.res.inst_80 Int) (top.res.inst_79 Int) (top.res.inst_78 Int) (top.res.inst_77 Bool) (top.res.inst_76 Int) (top.res.inst_75 Bool) (top.res.inst_74 Int) (top.res.inst_73 Bool) (top.res.inst_72 Int) (top.res.inst_71 Bool) (top.res.inst_70 Int) (top.res.inst_69 Bool) (top.res.inst_68 Int) (top.res.inst_67 Bool) (top.res.inst_66 Int) (top.res.inst_65 Bool) (top.res.inst_64 Int) (top.res.inst_63 Bool) (top.res.inst_62 Int) (top.res.inst_61 Bool) (top.res.inst_60 Bool) (top.res.inst_59 Bool) (top.res.inst_58 Bool) (top.res.inst_57 Bool) (top.res.inst_56 Bool) (top.res.inst_55 Bool) (top.res.inst_54 Bool) (top.res.inst_53 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Bool) (top.res.inst_50 Bool) (top.res.inst_49 Int) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Int) (top.res.inst_36 Int) (top.res.inst_35 Int) (top.res.inst_34 Int) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Int) (top.res.inst_23 Int) (top.res.inst_22 Int) (top.res.inst_21 Int) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Int) (top.res.inst_10 Int) (top.res.inst_9 Int) (top.res.inst_8 Int) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/steam_boiler_no_arr2.sl b/benchmarks/LIA/Lustre/steam_boiler_no_arr2.sl index 6777783..f911491 100644 --- a/benchmarks/LIA/Lustre/steam_boiler_no_arr2.sl +++ b/benchmarks/LIA/Lustre/steam_boiler_no_arr2.sl @@ -1,2635 +1,68 @@ (set-logic LIA) -(define-fun - __node_init_dangerous_level_0 ( - (dangerous_level.usr.q_a_0 Int) - (dangerous_level.usr.dangerous_level_a_0 Bool) - (dangerous_level.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - dangerous_level.usr.dangerous_level_a_0 - (or (<= dangerous_level.usr.q_a_0 150) (>= dangerous_level.usr.q_a_0 850))) - dangerous_level.res.init_flag_a_0) -) - -(define-fun - __node_trans_dangerous_level_0 ( - (dangerous_level.usr.q_a_1 Int) - (dangerous_level.usr.dangerous_level_a_1 Bool) - (dangerous_level.res.init_flag_a_1 Bool) - (dangerous_level.usr.q_a_0 Int) - (dangerous_level.usr.dangerous_level_a_0 Bool) - (dangerous_level.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - dangerous_level.usr.dangerous_level_a_1 - (or (<= dangerous_level.usr.q_a_1 150) (>= dangerous_level.usr.q_a_1 850))) - (not dangerous_level.res.init_flag_a_1)) -) - -(define-fun - __node_init_level_failure_0 ( - (level_failure.usr.level_defect_a_0 Int) - (level_failure.usr.level_failure_a_0 Bool) - (level_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - level_failure.usr.level_failure_a_0 - (not (= level_failure.usr.level_defect_a_0 0))) - level_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_level_failure_0 ( - (level_failure.usr.level_defect_a_1 Int) - (level_failure.usr.level_failure_a_1 Bool) - (level_failure.res.init_flag_a_1 Bool) - (level_failure.usr.level_defect_a_0 Int) - (level_failure.usr.level_failure_a_0 Bool) - (level_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - level_failure.usr.level_failure_a_1 - (not (= level_failure.usr.level_defect_a_1 0))) - (not level_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_steam_failure_0 ( - (steam_failure.usr.steam_defect_a_0 Int) - (steam_failure.usr.steam_failure_a_0 Bool) - (steam_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - steam_failure.usr.steam_failure_a_0 - (not (= steam_failure.usr.steam_defect_a_0 0))) - steam_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_steam_failure_0 ( - (steam_failure.usr.steam_defect_a_1 Int) - (steam_failure.usr.steam_failure_a_1 Bool) - (steam_failure.res.init_flag_a_1 Bool) - (steam_failure.usr.steam_defect_a_0 Int) - (steam_failure.usr.steam_failure_a_0 Bool) - (steam_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - steam_failure.usr.steam_failure_a_1 - (not (= steam_failure.usr.steam_defect_a_1 0))) - (not steam_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_OR_0 ( - (OR.usr.a_0_a_0 Bool) - (OR.usr.a_1_a_0 Bool) - (OR.usr.a_2_a_0 Bool) - (OR.usr.a_3_a_0 Bool) - (OR.usr.OR_a_0 Bool) - (OR.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - OR.usr.OR_a_0 - (or (or (or OR.usr.a_0_a_0 OR.usr.a_1_a_0) OR.usr.a_2_a_0) OR.usr.a_3_a_0)) - OR.res.init_flag_a_0) -) - -(define-fun - __node_trans_OR_0 ( - (OR.usr.a_0_a_1 Bool) - (OR.usr.a_1_a_1 Bool) - (OR.usr.a_2_a_1 Bool) - (OR.usr.a_3_a_1 Bool) - (OR.usr.OR_a_1 Bool) - (OR.res.init_flag_a_1 Bool) - (OR.usr.a_0_a_0 Bool) - (OR.usr.a_1_a_0 Bool) - (OR.usr.a_2_a_0 Bool) - (OR.usr.a_3_a_0 Bool) - (OR.usr.OR_a_0 Bool) - (OR.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - OR.usr.OR_a_1 - (or (or (or OR.usr.a_0_a_1 OR.usr.a_1_a_1) OR.usr.a_2_a_1) OR.usr.a_3_a_1)) - (not OR.res.init_flag_a_1)) -) - -(define-fun - __node_init_pump_control_failure_0 ( - (pump_control_failure.usr.pump_defect_a_0 Int) - (pump_control_failure.usr.pump_failure_a_0 Bool) - (pump_control_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - pump_control_failure.usr.pump_failure_a_0 - (not (= pump_control_failure.usr.pump_defect_a_0 0))) - pump_control_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_pump_control_failure_0 ( - (pump_control_failure.usr.pump_defect_a_1 Int) - (pump_control_failure.usr.pump_failure_a_1 Bool) - (pump_control_failure.res.init_flag_a_1 Bool) - (pump_control_failure.usr.pump_defect_a_0 Int) - (pump_control_failure.usr.pump_failure_a_0 Bool) - (pump_control_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - pump_control_failure.usr.pump_failure_a_1 - (not (= pump_control_failure.usr.pump_defect_a_1 0))) - (not pump_control_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_pump_failure_0 ( - (pump_failure.usr.pump_defect_a_0 Int) - (pump_failure.usr.pump_failure_a_0 Bool) - (pump_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - pump_failure.usr.pump_failure_a_0 - (not (= pump_failure.usr.pump_defect_a_0 0))) - pump_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_pump_failure_0 ( - (pump_failure.usr.pump_defect_a_1 Int) - (pump_failure.usr.pump_failure_a_1 Bool) - (pump_failure.res.init_flag_a_1 Bool) - (pump_failure.usr.pump_defect_a_0 Int) - (pump_failure.usr.pump_failure_a_0 Bool) - (pump_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - pump_failure.usr.pump_failure_a_1 - (not (= pump_failure.usr.pump_defect_a_1 0))) - (not pump_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_failure_0 ( - (failure.usr.level_defect_a_0 Int) - (failure.usr.steam_defect_a_0 Int) - (failure.usr.pump_defect_0_a_0 Int) - (failure.usr.pump_defect_1_a_0 Int) - (failure.usr.pump_defect_2_a_0 Int) - (failure.usr.pump_defect_3_a_0 Int) - (failure.usr.pump_control_defect_0_a_0 Int) - (failure.usr.pump_control_defect_1_a_0 Int) - (failure.usr.pump_control_defect_2_a_0 Int) - (failure.usr.pump_control_defect_3_a_0 Int) - (failure.usr.failure_a_0 Bool) - (failure.res.init_flag_a_0 Bool) - (failure.res.abs_0_a_0 Bool) - (failure.res.abs_1_a_0 Bool) - (failure.res.abs_2_a_0 Bool) - (failure.res.abs_3_a_0 Bool) - (failure.res.abs_4_a_0 Bool) - (failure.res.abs_5_a_0 Bool) - (failure.res.abs_6_a_0 Bool) - (failure.res.abs_7_a_0 Bool) - (failure.res.abs_8_a_0 Bool) - (failure.res.abs_9_a_0 Bool) - (failure.res.abs_10_a_0 Bool) - (failure.res.abs_11_a_0 Bool) - (failure.res.inst_11_a_0 Bool) - (failure.res.inst_10_a_0 Bool) - (failure.res.inst_9_a_0 Bool) - (failure.res.inst_8_a_0 Bool) - (failure.res.inst_7_a_0 Bool) - (failure.res.inst_6_a_0 Bool) - (failure.res.inst_5_a_0 Bool) - (failure.res.inst_4_a_0 Bool) - (failure.res.inst_3_a_0 Bool) - (failure.res.inst_2_a_0 Bool) - (failure.res.inst_1_a_0 Bool) - (failure.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - failure.usr.failure_a_0 - (or - (or (or failure.res.abs_0_a_0 failure.res.abs_1_a_0) failure.res.abs_6_a_0) - failure.res.abs_11_a_0)) - (__node_init_level_failure_0 - failure.usr.level_defect_a_0 - failure.res.abs_0_a_0 - failure.res.inst_11_a_0) - (__node_init_steam_failure_0 - failure.usr.steam_defect_a_0 - failure.res.abs_1_a_0 - failure.res.inst_10_a_0) - (__node_init_OR_0 - failure.res.abs_2_a_0 - failure.res.abs_3_a_0 - failure.res.abs_4_a_0 - failure.res.abs_5_a_0 - failure.res.abs_6_a_0 - failure.res.inst_9_a_0) - (__node_init_pump_failure_0 - failure.usr.pump_defect_0_a_0 - failure.res.abs_2_a_0 - failure.res.inst_8_a_0) - (__node_init_pump_failure_0 - failure.usr.pump_defect_1_a_0 - failure.res.abs_3_a_0 - failure.res.inst_7_a_0) - (__node_init_pump_failure_0 - failure.usr.pump_defect_2_a_0 - failure.res.abs_4_a_0 - failure.res.inst_6_a_0) - (__node_init_pump_failure_0 - failure.usr.pump_defect_3_a_0 - failure.res.abs_5_a_0 - failure.res.inst_5_a_0) - (__node_init_OR_0 - failure.res.abs_7_a_0 - failure.res.abs_8_a_0 - failure.res.abs_9_a_0 - failure.res.abs_10_a_0 - failure.res.abs_11_a_0 - failure.res.inst_4_a_0) - (__node_init_pump_control_failure_0 - failure.usr.pump_control_defect_0_a_0 - failure.res.abs_7_a_0 - failure.res.inst_3_a_0) - (__node_init_pump_control_failure_0 - failure.usr.pump_control_defect_1_a_0 - failure.res.abs_8_a_0 - failure.res.inst_2_a_0) - (__node_init_pump_control_failure_0 - failure.usr.pump_control_defect_2_a_0 - failure.res.abs_9_a_0 - failure.res.inst_1_a_0) - (__node_init_pump_control_failure_0 - failure.usr.pump_control_defect_3_a_0 - failure.res.abs_10_a_0 - failure.res.inst_0_a_0) - failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_failure_0 ( - (failure.usr.level_defect_a_1 Int) - (failure.usr.steam_defect_a_1 Int) - (failure.usr.pump_defect_0_a_1 Int) - (failure.usr.pump_defect_1_a_1 Int) - (failure.usr.pump_defect_2_a_1 Int) - (failure.usr.pump_defect_3_a_1 Int) - (failure.usr.pump_control_defect_0_a_1 Int) - (failure.usr.pump_control_defect_1_a_1 Int) - (failure.usr.pump_control_defect_2_a_1 Int) - (failure.usr.pump_control_defect_3_a_1 Int) - (failure.usr.failure_a_1 Bool) - (failure.res.init_flag_a_1 Bool) - (failure.res.abs_0_a_1 Bool) - (failure.res.abs_1_a_1 Bool) - (failure.res.abs_2_a_1 Bool) - (failure.res.abs_3_a_1 Bool) - (failure.res.abs_4_a_1 Bool) - (failure.res.abs_5_a_1 Bool) - (failure.res.abs_6_a_1 Bool) - (failure.res.abs_7_a_1 Bool) - (failure.res.abs_8_a_1 Bool) - (failure.res.abs_9_a_1 Bool) - (failure.res.abs_10_a_1 Bool) - (failure.res.abs_11_a_1 Bool) - (failure.res.inst_11_a_1 Bool) - (failure.res.inst_10_a_1 Bool) - (failure.res.inst_9_a_1 Bool) - (failure.res.inst_8_a_1 Bool) - (failure.res.inst_7_a_1 Bool) - (failure.res.inst_6_a_1 Bool) - (failure.res.inst_5_a_1 Bool) - (failure.res.inst_4_a_1 Bool) - (failure.res.inst_3_a_1 Bool) - (failure.res.inst_2_a_1 Bool) - (failure.res.inst_1_a_1 Bool) - (failure.res.inst_0_a_1 Bool) - (failure.usr.level_defect_a_0 Int) - (failure.usr.steam_defect_a_0 Int) - (failure.usr.pump_defect_0_a_0 Int) - (failure.usr.pump_defect_1_a_0 Int) - (failure.usr.pump_defect_2_a_0 Int) - (failure.usr.pump_defect_3_a_0 Int) - (failure.usr.pump_control_defect_0_a_0 Int) - (failure.usr.pump_control_defect_1_a_0 Int) - (failure.usr.pump_control_defect_2_a_0 Int) - (failure.usr.pump_control_defect_3_a_0 Int) - (failure.usr.failure_a_0 Bool) - (failure.res.init_flag_a_0 Bool) - (failure.res.abs_0_a_0 Bool) - (failure.res.abs_1_a_0 Bool) - (failure.res.abs_2_a_0 Bool) - (failure.res.abs_3_a_0 Bool) - (failure.res.abs_4_a_0 Bool) - (failure.res.abs_5_a_0 Bool) - (failure.res.abs_6_a_0 Bool) - (failure.res.abs_7_a_0 Bool) - (failure.res.abs_8_a_0 Bool) - (failure.res.abs_9_a_0 Bool) - (failure.res.abs_10_a_0 Bool) - (failure.res.abs_11_a_0 Bool) - (failure.res.inst_11_a_0 Bool) - (failure.res.inst_10_a_0 Bool) - (failure.res.inst_9_a_0 Bool) - (failure.res.inst_8_a_0 Bool) - (failure.res.inst_7_a_0 Bool) - (failure.res.inst_6_a_0 Bool) - (failure.res.inst_5_a_0 Bool) - (failure.res.inst_4_a_0 Bool) - (failure.res.inst_3_a_0 Bool) - (failure.res.inst_2_a_0 Bool) - (failure.res.inst_1_a_0 Bool) - (failure.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - failure.usr.failure_a_1 - (or - (or (or failure.res.abs_0_a_1 failure.res.abs_1_a_1) failure.res.abs_6_a_1) - failure.res.abs_11_a_1)) - (__node_trans_level_failure_0 - failure.usr.level_defect_a_1 - failure.res.abs_0_a_1 - failure.res.inst_11_a_1 - failure.usr.level_defect_a_0 - failure.res.abs_0_a_0 - failure.res.inst_11_a_0) - (__node_trans_steam_failure_0 - failure.usr.steam_defect_a_1 - failure.res.abs_1_a_1 - failure.res.inst_10_a_1 - failure.usr.steam_defect_a_0 - failure.res.abs_1_a_0 - failure.res.inst_10_a_0) - (__node_trans_OR_0 - failure.res.abs_2_a_1 - failure.res.abs_3_a_1 - failure.res.abs_4_a_1 - failure.res.abs_5_a_1 - failure.res.abs_6_a_1 - failure.res.inst_9_a_1 - failure.res.abs_2_a_0 - failure.res.abs_3_a_0 - failure.res.abs_4_a_0 - failure.res.abs_5_a_0 - failure.res.abs_6_a_0 - failure.res.inst_9_a_0) - (__node_trans_pump_failure_0 - failure.usr.pump_defect_0_a_1 - failure.res.abs_2_a_1 - failure.res.inst_8_a_1 - failure.usr.pump_defect_0_a_0 - failure.res.abs_2_a_0 - failure.res.inst_8_a_0) - (__node_trans_pump_failure_0 - failure.usr.pump_defect_1_a_1 - failure.res.abs_3_a_1 - failure.res.inst_7_a_1 - failure.usr.pump_defect_1_a_0 - failure.res.abs_3_a_0 - failure.res.inst_7_a_0) - (__node_trans_pump_failure_0 - failure.usr.pump_defect_2_a_1 - failure.res.abs_4_a_1 - failure.res.inst_6_a_1 - failure.usr.pump_defect_2_a_0 - failure.res.abs_4_a_0 - failure.res.inst_6_a_0) - (__node_trans_pump_failure_0 - failure.usr.pump_defect_3_a_1 - failure.res.abs_5_a_1 - failure.res.inst_5_a_1 - failure.usr.pump_defect_3_a_0 - failure.res.abs_5_a_0 - failure.res.inst_5_a_0) - (__node_trans_OR_0 - failure.res.abs_7_a_1 - failure.res.abs_8_a_1 - failure.res.abs_9_a_1 - failure.res.abs_10_a_1 - failure.res.abs_11_a_1 - failure.res.inst_4_a_1 - failure.res.abs_7_a_0 - failure.res.abs_8_a_0 - failure.res.abs_9_a_0 - failure.res.abs_10_a_0 - failure.res.abs_11_a_0 - failure.res.inst_4_a_0) - (__node_trans_pump_control_failure_0 - failure.usr.pump_control_defect_0_a_1 - failure.res.abs_7_a_1 - failure.res.inst_3_a_1 - failure.usr.pump_control_defect_0_a_0 - failure.res.abs_7_a_0 - failure.res.inst_3_a_0) - (__node_trans_pump_control_failure_0 - failure.usr.pump_control_defect_1_a_1 - failure.res.abs_8_a_1 - failure.res.inst_2_a_1 - failure.usr.pump_control_defect_1_a_0 - failure.res.abs_8_a_0 - failure.res.inst_2_a_0) - (__node_trans_pump_control_failure_0 - failure.usr.pump_control_defect_2_a_1 - failure.res.abs_9_a_1 - failure.res.inst_1_a_1 - failure.usr.pump_control_defect_2_a_0 - failure.res.abs_9_a_0 - failure.res.inst_1_a_0) - (__node_trans_pump_control_failure_0 - failure.usr.pump_control_defect_3_a_1 - failure.res.abs_10_a_1 - failure.res.inst_0_a_1 - failure.usr.pump_control_defect_3_a_0 - failure.res.abs_10_a_0 - failure.res.inst_0_a_0) - (not failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_steam_failure_startup_0 ( - (steam_failure_startup.usr.steam_a_0 Int) - (steam_failure_startup.usr.steam_failure_startup_a_0 Bool) - (steam_failure_startup.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - steam_failure_startup.usr.steam_failure_startup_a_0 - (not (= steam_failure_startup.usr.steam_a_0 0))) - steam_failure_startup.res.init_flag_a_0) -) - -(define-fun - __node_trans_steam_failure_startup_0 ( - (steam_failure_startup.usr.steam_a_1 Int) - (steam_failure_startup.usr.steam_failure_startup_a_1 Bool) - (steam_failure_startup.res.init_flag_a_1 Bool) - (steam_failure_startup.usr.steam_a_0 Int) - (steam_failure_startup.usr.steam_failure_startup_a_0 Bool) - (steam_failure_startup.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - steam_failure_startup.usr.steam_failure_startup_a_1 - (not (= steam_failure_startup.usr.steam_a_1 0))) - (not steam_failure_startup.res.init_flag_a_1)) -) - -(define-fun - __node_init_AND_0 ( - (AND.usr.a_0_a_0 Bool) - (AND.usr.a_1_a_0 Bool) - (AND.usr.a_2_a_0 Bool) - (AND.usr.a_3_a_0 Bool) - (AND.usr.AND_a_0 Bool) - (AND.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - AND.usr.AND_a_0 - (and (and (and AND.usr.a_0_a_0 AND.usr.a_1_a_0) AND.usr.a_2_a_0) AND.usr.a_3_a_0)) - AND.res.init_flag_a_0) -) - -(define-fun - __node_trans_AND_0 ( - (AND.usr.a_0_a_1 Bool) - (AND.usr.a_1_a_1 Bool) - (AND.usr.a_2_a_1 Bool) - (AND.usr.a_3_a_1 Bool) - (AND.usr.AND_a_1 Bool) - (AND.res.init_flag_a_1 Bool) - (AND.usr.a_0_a_0 Bool) - (AND.usr.a_1_a_0 Bool) - (AND.usr.a_2_a_0 Bool) - (AND.usr.a_3_a_0 Bool) - (AND.usr.AND_a_0 Bool) - (AND.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - AND.usr.AND_a_1 - (and (and (and AND.usr.a_0_a_1 AND.usr.a_1_a_1) AND.usr.a_2_a_1) AND.usr.a_3_a_1)) - (not AND.res.init_flag_a_1)) -) - -(define-fun - __node_init_transmission_failure_0 ( - (transmission_failure.usr.pump_state_0_a_0 Int) - (transmission_failure.usr.pump_state_1_a_0 Int) - (transmission_failure.usr.pump_state_2_a_0 Int) - (transmission_failure.usr.pump_state_3_a_0 Int) - (transmission_failure.usr.transmission_failure_a_0 Bool) - (transmission_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - transmission_failure.usr.transmission_failure_a_0 - (or - (or - (or - (= transmission_failure.usr.pump_state_0_a_0 3) - (= transmission_failure.usr.pump_state_1_a_0 3)) - (= transmission_failure.usr.pump_state_2_a_0 3)) - (= transmission_failure.usr.pump_state_3_a_0 3))) - transmission_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_transmission_failure_0 ( - (transmission_failure.usr.pump_state_0_a_1 Int) - (transmission_failure.usr.pump_state_1_a_1 Int) - (transmission_failure.usr.pump_state_2_a_1 Int) - (transmission_failure.usr.pump_state_3_a_1 Int) - (transmission_failure.usr.transmission_failure_a_1 Bool) - (transmission_failure.res.init_flag_a_1 Bool) - (transmission_failure.usr.pump_state_0_a_0 Int) - (transmission_failure.usr.pump_state_1_a_0 Int) - (transmission_failure.usr.pump_state_2_a_0 Int) - (transmission_failure.usr.pump_state_3_a_0 Int) - (transmission_failure.usr.transmission_failure_a_0 Bool) - (transmission_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - transmission_failure.usr.transmission_failure_a_1 - (or - (or - (or - (= transmission_failure.usr.pump_state_0_a_1 3) - (= transmission_failure.usr.pump_state_1_a_1 3)) - (= transmission_failure.usr.pump_state_2_a_1 3)) - (= transmission_failure.usr.pump_state_3_a_1 3))) - (not transmission_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_critical_failure_0 ( - (critical_failure.usr.op_mode_a_0 Int) - (critical_failure.usr.steam_a_0 Int) - (critical_failure.usr.level_defect_a_0 Int) - (critical_failure.usr.steam_defect_a_0 Int) - (critical_failure.usr.pump_defect_0_a_0 Int) - (critical_failure.usr.pump_defect_1_a_0 Int) - (critical_failure.usr.pump_defect_2_a_0 Int) - (critical_failure.usr.pump_defect_3_a_0 Int) - (critical_failure.usr.q_a_0 Int) - (critical_failure.usr.pump_state_0_a_0 Int) - (critical_failure.usr.pump_state_1_a_0 Int) - (critical_failure.usr.pump_state_2_a_0 Int) - (critical_failure.usr.pump_state_3_a_0 Int) - (critical_failure.usr.critical_failure_a_0 Bool) - (critical_failure.res.init_flag_a_0 Bool) - (critical_failure.res.abs_0_a_0 Bool) - (critical_failure.res.abs_1_a_0 Bool) - (critical_failure.res.abs_2_a_0 Bool) - (critical_failure.res.abs_3_a_0 Bool) - (critical_failure.res.abs_4_a_0 Bool) - (critical_failure.res.abs_5_a_0 Bool) - (critical_failure.res.abs_6_a_0 Bool) - (critical_failure.res.abs_7_a_0 Bool) - (critical_failure.res.abs_8_a_0 Bool) - (critical_failure.res.abs_9_a_0 Bool) - (critical_failure.res.inst_9_a_0 Bool) - (critical_failure.res.inst_8_a_0 Bool) - (critical_failure.res.inst_7_a_0 Bool) - (critical_failure.res.inst_6_a_0 Bool) - (critical_failure.res.inst_5_a_0 Bool) - (critical_failure.res.inst_4_a_0 Bool) - (critical_failure.res.inst_3_a_0 Bool) - (critical_failure.res.inst_2_a_0 Bool) - (critical_failure.res.inst_1_a_0 Bool) - (critical_failure.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - critical_failure.usr.critical_failure_a_0 - (or - (or - (or - (or - (or - critical_failure.res.abs_0_a_0 - (and - (= critical_failure.usr.op_mode_a_0 1) - critical_failure.res.abs_1_a_0)) - (and - (= critical_failure.usr.op_mode_a_0 2) - (or critical_failure.res.abs_2_a_0 critical_failure.res.abs_3_a_0))) - (and - (= critical_failure.usr.op_mode_a_0 3) - critical_failure.res.abs_4_a_0)) - (and (= critical_failure.usr.op_mode_a_0 4) critical_failure.res.abs_4_a_0)) - (and - (= critical_failure.usr.op_mode_a_0 5) - (or - (or critical_failure.res.abs_4_a_0 critical_failure.res.abs_3_a_0) - critical_failure.res.abs_9_a_0)))) - (__node_init_transmission_failure_0 - critical_failure.usr.pump_state_0_a_0 - critical_failure.usr.pump_state_1_a_0 - critical_failure.usr.pump_state_2_a_0 - critical_failure.usr.pump_state_3_a_0 - critical_failure.res.abs_0_a_0 - critical_failure.res.inst_9_a_0) - (__node_init_steam_failure_startup_0 - critical_failure.usr.steam_a_0 - critical_failure.res.abs_1_a_0 - critical_failure.res.inst_8_a_0) - (__node_init_level_failure_0 - critical_failure.usr.level_defect_a_0 - critical_failure.res.abs_2_a_0 - critical_failure.res.inst_7_a_0) - (__node_init_steam_failure_0 - critical_failure.usr.steam_defect_a_0 - critical_failure.res.abs_3_a_0 - critical_failure.res.inst_6_a_0) - (__node_init_dangerous_level_0 - critical_failure.usr.q_a_0 - critical_failure.res.abs_4_a_0 - critical_failure.res.inst_5_a_0) - (__node_init_AND_0 - critical_failure.res.abs_5_a_0 - critical_failure.res.abs_6_a_0 - critical_failure.res.abs_7_a_0 - critical_failure.res.abs_8_a_0 - critical_failure.res.abs_9_a_0 - critical_failure.res.inst_4_a_0) - (__node_init_pump_failure_0 - critical_failure.usr.pump_defect_0_a_0 - critical_failure.res.abs_5_a_0 - critical_failure.res.inst_3_a_0) - (__node_init_pump_failure_0 - critical_failure.usr.pump_defect_1_a_0 - critical_failure.res.abs_6_a_0 - critical_failure.res.inst_2_a_0) - (__node_init_pump_failure_0 - critical_failure.usr.pump_defect_2_a_0 - critical_failure.res.abs_7_a_0 - critical_failure.res.inst_1_a_0) - (__node_init_pump_failure_0 - critical_failure.usr.pump_defect_3_a_0 - critical_failure.res.abs_8_a_0 - critical_failure.res.inst_0_a_0) - critical_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_critical_failure_0 ( - (critical_failure.usr.op_mode_a_1 Int) - (critical_failure.usr.steam_a_1 Int) - (critical_failure.usr.level_defect_a_1 Int) - (critical_failure.usr.steam_defect_a_1 Int) - (critical_failure.usr.pump_defect_0_a_1 Int) - (critical_failure.usr.pump_defect_1_a_1 Int) - (critical_failure.usr.pump_defect_2_a_1 Int) - (critical_failure.usr.pump_defect_3_a_1 Int) - (critical_failure.usr.q_a_1 Int) - (critical_failure.usr.pump_state_0_a_1 Int) - (critical_failure.usr.pump_state_1_a_1 Int) - (critical_failure.usr.pump_state_2_a_1 Int) - (critical_failure.usr.pump_state_3_a_1 Int) - (critical_failure.usr.critical_failure_a_1 Bool) - (critical_failure.res.init_flag_a_1 Bool) - (critical_failure.res.abs_0_a_1 Bool) - (critical_failure.res.abs_1_a_1 Bool) - (critical_failure.res.abs_2_a_1 Bool) - (critical_failure.res.abs_3_a_1 Bool) - (critical_failure.res.abs_4_a_1 Bool) - (critical_failure.res.abs_5_a_1 Bool) - (critical_failure.res.abs_6_a_1 Bool) - (critical_failure.res.abs_7_a_1 Bool) - (critical_failure.res.abs_8_a_1 Bool) - (critical_failure.res.abs_9_a_1 Bool) - (critical_failure.res.inst_9_a_1 Bool) - (critical_failure.res.inst_8_a_1 Bool) - (critical_failure.res.inst_7_a_1 Bool) - (critical_failure.res.inst_6_a_1 Bool) - (critical_failure.res.inst_5_a_1 Bool) - (critical_failure.res.inst_4_a_1 Bool) - (critical_failure.res.inst_3_a_1 Bool) - (critical_failure.res.inst_2_a_1 Bool) - (critical_failure.res.inst_1_a_1 Bool) - (critical_failure.res.inst_0_a_1 Bool) - (critical_failure.usr.op_mode_a_0 Int) - (critical_failure.usr.steam_a_0 Int) - (critical_failure.usr.level_defect_a_0 Int) - (critical_failure.usr.steam_defect_a_0 Int) - (critical_failure.usr.pump_defect_0_a_0 Int) - (critical_failure.usr.pump_defect_1_a_0 Int) - (critical_failure.usr.pump_defect_2_a_0 Int) - (critical_failure.usr.pump_defect_3_a_0 Int) - (critical_failure.usr.q_a_0 Int) - (critical_failure.usr.pump_state_0_a_0 Int) - (critical_failure.usr.pump_state_1_a_0 Int) - (critical_failure.usr.pump_state_2_a_0 Int) - (critical_failure.usr.pump_state_3_a_0 Int) - (critical_failure.usr.critical_failure_a_0 Bool) - (critical_failure.res.init_flag_a_0 Bool) - (critical_failure.res.abs_0_a_0 Bool) - (critical_failure.res.abs_1_a_0 Bool) - (critical_failure.res.abs_2_a_0 Bool) - (critical_failure.res.abs_3_a_0 Bool) - (critical_failure.res.abs_4_a_0 Bool) - (critical_failure.res.abs_5_a_0 Bool) - (critical_failure.res.abs_6_a_0 Bool) - (critical_failure.res.abs_7_a_0 Bool) - (critical_failure.res.abs_8_a_0 Bool) - (critical_failure.res.abs_9_a_0 Bool) - (critical_failure.res.inst_9_a_0 Bool) - (critical_failure.res.inst_8_a_0 Bool) - (critical_failure.res.inst_7_a_0 Bool) - (critical_failure.res.inst_6_a_0 Bool) - (critical_failure.res.inst_5_a_0 Bool) - (critical_failure.res.inst_4_a_0 Bool) - (critical_failure.res.inst_3_a_0 Bool) - (critical_failure.res.inst_2_a_0 Bool) - (critical_failure.res.inst_1_a_0 Bool) - (critical_failure.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - critical_failure.usr.critical_failure_a_1 - (or - (or - (or - (or - (or - critical_failure.res.abs_0_a_1 - (and - (= critical_failure.usr.op_mode_a_1 1) - critical_failure.res.abs_1_a_1)) - (and - (= critical_failure.usr.op_mode_a_1 2) - (or critical_failure.res.abs_2_a_1 critical_failure.res.abs_3_a_1))) - (and - (= critical_failure.usr.op_mode_a_1 3) - critical_failure.res.abs_4_a_1)) - (and (= critical_failure.usr.op_mode_a_1 4) critical_failure.res.abs_4_a_1)) - (and - (= critical_failure.usr.op_mode_a_1 5) - (or - (or critical_failure.res.abs_4_a_1 critical_failure.res.abs_3_a_1) - critical_failure.res.abs_9_a_1)))) - (__node_trans_transmission_failure_0 - critical_failure.usr.pump_state_0_a_1 - critical_failure.usr.pump_state_1_a_1 - critical_failure.usr.pump_state_2_a_1 - critical_failure.usr.pump_state_3_a_1 - critical_failure.res.abs_0_a_1 - critical_failure.res.inst_9_a_1 - critical_failure.usr.pump_state_0_a_0 - critical_failure.usr.pump_state_1_a_0 - critical_failure.usr.pump_state_2_a_0 - critical_failure.usr.pump_state_3_a_0 - critical_failure.res.abs_0_a_0 - critical_failure.res.inst_9_a_0) - (__node_trans_steam_failure_startup_0 - critical_failure.usr.steam_a_1 - critical_failure.res.abs_1_a_1 - critical_failure.res.inst_8_a_1 - critical_failure.usr.steam_a_0 - critical_failure.res.abs_1_a_0 - critical_failure.res.inst_8_a_0) - (__node_trans_level_failure_0 - critical_failure.usr.level_defect_a_1 - critical_failure.res.abs_2_a_1 - critical_failure.res.inst_7_a_1 - critical_failure.usr.level_defect_a_0 - critical_failure.res.abs_2_a_0 - critical_failure.res.inst_7_a_0) - (__node_trans_steam_failure_0 - critical_failure.usr.steam_defect_a_1 - critical_failure.res.abs_3_a_1 - critical_failure.res.inst_6_a_1 - critical_failure.usr.steam_defect_a_0 - critical_failure.res.abs_3_a_0 - critical_failure.res.inst_6_a_0) - (__node_trans_dangerous_level_0 - critical_failure.usr.q_a_1 - critical_failure.res.abs_4_a_1 - critical_failure.res.inst_5_a_1 - critical_failure.usr.q_a_0 - critical_failure.res.abs_4_a_0 - critical_failure.res.inst_5_a_0) - (__node_trans_AND_0 - critical_failure.res.abs_5_a_1 - critical_failure.res.abs_6_a_1 - critical_failure.res.abs_7_a_1 - critical_failure.res.abs_8_a_1 - critical_failure.res.abs_9_a_1 - critical_failure.res.inst_4_a_1 - critical_failure.res.abs_5_a_0 - critical_failure.res.abs_6_a_0 - critical_failure.res.abs_7_a_0 - critical_failure.res.abs_8_a_0 - critical_failure.res.abs_9_a_0 - critical_failure.res.inst_4_a_0) - (__node_trans_pump_failure_0 - critical_failure.usr.pump_defect_0_a_1 - critical_failure.res.abs_5_a_1 - critical_failure.res.inst_3_a_1 - critical_failure.usr.pump_defect_0_a_0 - critical_failure.res.abs_5_a_0 - critical_failure.res.inst_3_a_0) - (__node_trans_pump_failure_0 - critical_failure.usr.pump_defect_1_a_1 - critical_failure.res.abs_6_a_1 - critical_failure.res.inst_2_a_1 - critical_failure.usr.pump_defect_1_a_0 - critical_failure.res.abs_6_a_0 - critical_failure.res.inst_2_a_0) - (__node_trans_pump_failure_0 - critical_failure.usr.pump_defect_2_a_1 - critical_failure.res.abs_7_a_1 - critical_failure.res.inst_1_a_1 - critical_failure.usr.pump_defect_2_a_0 - critical_failure.res.abs_7_a_0 - critical_failure.res.inst_1_a_0) - (__node_trans_pump_failure_0 - critical_failure.usr.pump_defect_3_a_1 - critical_failure.res.abs_8_a_1 - critical_failure.res.inst_0_a_1 - critical_failure.usr.pump_defect_3_a_0 - critical_failure.res.abs_8_a_0 - critical_failure.res.inst_0_a_0) - (not critical_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_ControlMode_0 ( - (ControlMode.usr.steam_boiler_waiting_a_0 Bool) - (ControlMode.usr.physical_units_ready_a_0 Bool) - (ControlMode.usr.stop_request_a_0 Bool) - (ControlMode.usr.steam_a_0 Int) - (ControlMode.usr.level_defect_a_0 Int) - (ControlMode.usr.steam_defect_a_0 Int) - (ControlMode.usr.pump_defect_0_a_0 Int) - (ControlMode.usr.pump_defect_1_a_0 Int) - (ControlMode.usr.pump_defect_2_a_0 Int) - (ControlMode.usr.pump_defect_3_a_0 Int) - (ControlMode.usr.pump_control_defect_0_a_0 Int) - (ControlMode.usr.pump_control_defect_1_a_0 Int) - (ControlMode.usr.pump_control_defect_2_a_0 Int) - (ControlMode.usr.pump_control_defect_3_a_0 Int) - (ControlMode.usr.q_a_0 Int) - (ControlMode.usr.pump_state_0_a_0 Int) - (ControlMode.usr.pump_state_1_a_0 Int) - (ControlMode.usr.pump_state_2_a_0 Int) - (ControlMode.usr.pump_state_3_a_0 Int) - (ControlMode.res.nondet_0 Int) - (ControlMode.usr.op_mode_a_0 Int) - (ControlMode.res.init_flag_a_0 Bool) - (ControlMode.res.abs_0_a_0 Int) - (ControlMode.res.abs_1_a_0 Bool) - (ControlMode.res.abs_2_a_0 Bool) - (ControlMode.res.abs_3_a_0 Bool) - (ControlMode.res.inst_46_a_0 Bool) - (ControlMode.res.inst_45_a_0 Bool) - (ControlMode.res.inst_44_a_0 Bool) - (ControlMode.res.inst_43_a_0 Bool) - (ControlMode.res.inst_42_a_0 Bool) - (ControlMode.res.inst_41_a_0 Bool) - (ControlMode.res.inst_40_a_0 Bool) - (ControlMode.res.inst_39_a_0 Bool) - (ControlMode.res.inst_38_a_0 Bool) - (ControlMode.res.inst_37_a_0 Bool) - (ControlMode.res.inst_36_a_0 Bool) - (ControlMode.res.inst_35_a_0 Bool) - (ControlMode.res.inst_34_a_0 Bool) - (ControlMode.res.inst_33_a_0 Bool) - (ControlMode.res.inst_32_a_0 Bool) - (ControlMode.res.inst_31_a_0 Bool) - (ControlMode.res.inst_30_a_0 Bool) - (ControlMode.res.inst_29_a_0 Bool) - (ControlMode.res.inst_28_a_0 Bool) - (ControlMode.res.inst_27_a_0 Bool) - (ControlMode.res.inst_26_a_0 Bool) - (ControlMode.res.inst_25_a_0 Bool) - (ControlMode.res.inst_24_a_0 Bool) - (ControlMode.res.inst_23_a_0 Bool) - (ControlMode.res.inst_22_a_0 Bool) - (ControlMode.res.inst_21_a_0 Bool) - (ControlMode.res.inst_20_a_0 Bool) - (ControlMode.res.inst_19_a_0 Bool) - (ControlMode.res.inst_18_a_0 Bool) - (ControlMode.res.inst_17_a_0 Bool) - (ControlMode.res.inst_16_a_0 Bool) - (ControlMode.res.inst_15_a_0 Bool) - (ControlMode.res.inst_14_a_0 Bool) - (ControlMode.res.inst_13_a_0 Bool) - (ControlMode.res.inst_12_a_0 Bool) - (ControlMode.res.inst_11_a_0 Bool) - (ControlMode.res.inst_10_a_0 Bool) - (ControlMode.res.inst_9_a_0 Bool) - (ControlMode.res.inst_8_a_0 Bool) - (ControlMode.res.inst_7_a_0 Bool) - (ControlMode.res.inst_6_a_0 Bool) - (ControlMode.res.inst_5_a_0 Bool) - (ControlMode.res.inst_4_a_0 Bool) - (ControlMode.res.inst_3_a_0 Bool) - (ControlMode.res.inst_2_a_0 Bool) - (ControlMode.res.inst_1_a_0 Bool) - (ControlMode.res.inst_0_a_0 Bool) - ) Bool - - (and - (= ControlMode.usr.op_mode_a_0 1) - (= ControlMode.res.abs_0_a_0 (let ((X1 Int ControlMode.res.nondet_0)) X1)) - (__node_init_critical_failure_0 - ControlMode.res.abs_0_a_0 - ControlMode.usr.steam_a_0 - ControlMode.usr.level_defect_a_0 - ControlMode.usr.steam_defect_a_0 - ControlMode.usr.pump_defect_0_a_0 - ControlMode.usr.pump_defect_1_a_0 - ControlMode.usr.pump_defect_2_a_0 - ControlMode.usr.pump_defect_3_a_0 - ControlMode.usr.q_a_0 - ControlMode.usr.pump_state_0_a_0 - ControlMode.usr.pump_state_1_a_0 - ControlMode.usr.pump_state_2_a_0 - ControlMode.usr.pump_state_3_a_0 - ControlMode.res.abs_1_a_0 - ControlMode.res.inst_46_a_0 - ControlMode.res.inst_45_a_0 - ControlMode.res.inst_44_a_0 - ControlMode.res.inst_43_a_0 - ControlMode.res.inst_42_a_0 - ControlMode.res.inst_41_a_0 - ControlMode.res.inst_40_a_0 - ControlMode.res.inst_39_a_0 - ControlMode.res.inst_38_a_0 - ControlMode.res.inst_37_a_0 - ControlMode.res.inst_36_a_0 - ControlMode.res.inst_35_a_0 - ControlMode.res.inst_34_a_0 - ControlMode.res.inst_33_a_0 - ControlMode.res.inst_32_a_0 - ControlMode.res.inst_31_a_0 - ControlMode.res.inst_30_a_0 - ControlMode.res.inst_29_a_0 - ControlMode.res.inst_28_a_0 - ControlMode.res.inst_27_a_0 - ControlMode.res.inst_26_a_0) - (__node_init_level_failure_0 - ControlMode.usr.level_defect_a_0 - ControlMode.res.abs_2_a_0 - ControlMode.res.inst_25_a_0) - (__node_init_failure_0 - ControlMode.usr.level_defect_a_0 - ControlMode.usr.steam_defect_a_0 - ControlMode.usr.pump_defect_0_a_0 - ControlMode.usr.pump_defect_1_a_0 - ControlMode.usr.pump_defect_2_a_0 - ControlMode.usr.pump_defect_3_a_0 - ControlMode.usr.pump_control_defect_0_a_0 - ControlMode.usr.pump_control_defect_1_a_0 - ControlMode.usr.pump_control_defect_2_a_0 - ControlMode.usr.pump_control_defect_3_a_0 - ControlMode.res.abs_3_a_0 - ControlMode.res.inst_24_a_0 - ControlMode.res.inst_23_a_0 - ControlMode.res.inst_22_a_0 - ControlMode.res.inst_21_a_0 - ControlMode.res.inst_20_a_0 - ControlMode.res.inst_19_a_0 - ControlMode.res.inst_18_a_0 - ControlMode.res.inst_17_a_0 - ControlMode.res.inst_16_a_0 - ControlMode.res.inst_15_a_0 - ControlMode.res.inst_14_a_0 - ControlMode.res.inst_13_a_0 - ControlMode.res.inst_12_a_0 - ControlMode.res.inst_11_a_0 - ControlMode.res.inst_10_a_0 - ControlMode.res.inst_9_a_0 - ControlMode.res.inst_8_a_0 - ControlMode.res.inst_7_a_0 - ControlMode.res.inst_6_a_0 - ControlMode.res.inst_5_a_0 - ControlMode.res.inst_4_a_0 - ControlMode.res.inst_3_a_0 - ControlMode.res.inst_2_a_0 - ControlMode.res.inst_1_a_0 - ControlMode.res.inst_0_a_0) - (<= 1 ControlMode.usr.op_mode_a_0 6) - ControlMode.res.init_flag_a_0) -) - -(define-fun - __node_trans_ControlMode_0 ( - (ControlMode.usr.steam_boiler_waiting_a_1 Bool) - (ControlMode.usr.physical_units_ready_a_1 Bool) - (ControlMode.usr.stop_request_a_1 Bool) - (ControlMode.usr.steam_a_1 Int) - (ControlMode.usr.level_defect_a_1 Int) - (ControlMode.usr.steam_defect_a_1 Int) - (ControlMode.usr.pump_defect_0_a_1 Int) - (ControlMode.usr.pump_defect_1_a_1 Int) - (ControlMode.usr.pump_defect_2_a_1 Int) - (ControlMode.usr.pump_defect_3_a_1 Int) - (ControlMode.usr.pump_control_defect_0_a_1 Int) - (ControlMode.usr.pump_control_defect_1_a_1 Int) - (ControlMode.usr.pump_control_defect_2_a_1 Int) - (ControlMode.usr.pump_control_defect_3_a_1 Int) - (ControlMode.usr.q_a_1 Int) - (ControlMode.usr.pump_state_0_a_1 Int) - (ControlMode.usr.pump_state_1_a_1 Int) - (ControlMode.usr.pump_state_2_a_1 Int) - (ControlMode.usr.pump_state_3_a_1 Int) - (ControlMode.res.nondet_0 Int) - (ControlMode.usr.op_mode_a_1 Int) - (ControlMode.res.init_flag_a_1 Bool) - (ControlMode.res.abs_0_a_1 Int) - (ControlMode.res.abs_1_a_1 Bool) - (ControlMode.res.abs_2_a_1 Bool) - (ControlMode.res.abs_3_a_1 Bool) - (ControlMode.res.inst_46_a_1 Bool) - (ControlMode.res.inst_45_a_1 Bool) - (ControlMode.res.inst_44_a_1 Bool) - (ControlMode.res.inst_43_a_1 Bool) - (ControlMode.res.inst_42_a_1 Bool) - (ControlMode.res.inst_41_a_1 Bool) - (ControlMode.res.inst_40_a_1 Bool) - (ControlMode.res.inst_39_a_1 Bool) - (ControlMode.res.inst_38_a_1 Bool) - (ControlMode.res.inst_37_a_1 Bool) - (ControlMode.res.inst_36_a_1 Bool) - (ControlMode.res.inst_35_a_1 Bool) - (ControlMode.res.inst_34_a_1 Bool) - (ControlMode.res.inst_33_a_1 Bool) - (ControlMode.res.inst_32_a_1 Bool) - (ControlMode.res.inst_31_a_1 Bool) - (ControlMode.res.inst_30_a_1 Bool) - (ControlMode.res.inst_29_a_1 Bool) - (ControlMode.res.inst_28_a_1 Bool) - (ControlMode.res.inst_27_a_1 Bool) - (ControlMode.res.inst_26_a_1 Bool) - (ControlMode.res.inst_25_a_1 Bool) - (ControlMode.res.inst_24_a_1 Bool) - (ControlMode.res.inst_23_a_1 Bool) - (ControlMode.res.inst_22_a_1 Bool) - (ControlMode.res.inst_21_a_1 Bool) - (ControlMode.res.inst_20_a_1 Bool) - (ControlMode.res.inst_19_a_1 Bool) - (ControlMode.res.inst_18_a_1 Bool) - (ControlMode.res.inst_17_a_1 Bool) - (ControlMode.res.inst_16_a_1 Bool) - (ControlMode.res.inst_15_a_1 Bool) - (ControlMode.res.inst_14_a_1 Bool) - (ControlMode.res.inst_13_a_1 Bool) - (ControlMode.res.inst_12_a_1 Bool) - (ControlMode.res.inst_11_a_1 Bool) - (ControlMode.res.inst_10_a_1 Bool) - (ControlMode.res.inst_9_a_1 Bool) - (ControlMode.res.inst_8_a_1 Bool) - (ControlMode.res.inst_7_a_1 Bool) - (ControlMode.res.inst_6_a_1 Bool) - (ControlMode.res.inst_5_a_1 Bool) - (ControlMode.res.inst_4_a_1 Bool) - (ControlMode.res.inst_3_a_1 Bool) - (ControlMode.res.inst_2_a_1 Bool) - (ControlMode.res.inst_1_a_1 Bool) - (ControlMode.res.inst_0_a_1 Bool) - (ControlMode.usr.steam_boiler_waiting_a_0 Bool) - (ControlMode.usr.physical_units_ready_a_0 Bool) - (ControlMode.usr.stop_request_a_0 Bool) - (ControlMode.usr.steam_a_0 Int) - (ControlMode.usr.level_defect_a_0 Int) - (ControlMode.usr.steam_defect_a_0 Int) - (ControlMode.usr.pump_defect_0_a_0 Int) - (ControlMode.usr.pump_defect_1_a_0 Int) - (ControlMode.usr.pump_defect_2_a_0 Int) - (ControlMode.usr.pump_defect_3_a_0 Int) - (ControlMode.usr.pump_control_defect_0_a_0 Int) - (ControlMode.usr.pump_control_defect_1_a_0 Int) - (ControlMode.usr.pump_control_defect_2_a_0 Int) - (ControlMode.usr.pump_control_defect_3_a_0 Int) - (ControlMode.usr.q_a_0 Int) - (ControlMode.usr.pump_state_0_a_0 Int) - (ControlMode.usr.pump_state_1_a_0 Int) - (ControlMode.usr.pump_state_2_a_0 Int) - (ControlMode.usr.pump_state_3_a_0 Int) - (ControlMode.usr.op_mode_a_0 Int) - (ControlMode.res.init_flag_a_0 Bool) - (ControlMode.res.abs_0_a_0 Int) - (ControlMode.res.abs_1_a_0 Bool) - (ControlMode.res.abs_2_a_0 Bool) - (ControlMode.res.abs_3_a_0 Bool) - (ControlMode.res.inst_46_a_0 Bool) - (ControlMode.res.inst_45_a_0 Bool) - (ControlMode.res.inst_44_a_0 Bool) - (ControlMode.res.inst_43_a_0 Bool) - (ControlMode.res.inst_42_a_0 Bool) - (ControlMode.res.inst_41_a_0 Bool) - (ControlMode.res.inst_40_a_0 Bool) - (ControlMode.res.inst_39_a_0 Bool) - (ControlMode.res.inst_38_a_0 Bool) - (ControlMode.res.inst_37_a_0 Bool) - (ControlMode.res.inst_36_a_0 Bool) - (ControlMode.res.inst_35_a_0 Bool) - (ControlMode.res.inst_34_a_0 Bool) - (ControlMode.res.inst_33_a_0 Bool) - (ControlMode.res.inst_32_a_0 Bool) - (ControlMode.res.inst_31_a_0 Bool) - (ControlMode.res.inst_30_a_0 Bool) - (ControlMode.res.inst_29_a_0 Bool) - (ControlMode.res.inst_28_a_0 Bool) - (ControlMode.res.inst_27_a_0 Bool) - (ControlMode.res.inst_26_a_0 Bool) - (ControlMode.res.inst_25_a_0 Bool) - (ControlMode.res.inst_24_a_0 Bool) - (ControlMode.res.inst_23_a_0 Bool) - (ControlMode.res.inst_22_a_0 Bool) - (ControlMode.res.inst_21_a_0 Bool) - (ControlMode.res.inst_20_a_0 Bool) - (ControlMode.res.inst_19_a_0 Bool) - (ControlMode.res.inst_18_a_0 Bool) - (ControlMode.res.inst_17_a_0 Bool) - (ControlMode.res.inst_16_a_0 Bool) - (ControlMode.res.inst_15_a_0 Bool) - (ControlMode.res.inst_14_a_0 Bool) - (ControlMode.res.inst_13_a_0 Bool) - (ControlMode.res.inst_12_a_0 Bool) - (ControlMode.res.inst_11_a_0 Bool) - (ControlMode.res.inst_10_a_0 Bool) - (ControlMode.res.inst_9_a_0 Bool) - (ControlMode.res.inst_8_a_0 Bool) - (ControlMode.res.inst_7_a_0 Bool) - (ControlMode.res.inst_6_a_0 Bool) - (ControlMode.res.inst_5_a_0 Bool) - (ControlMode.res.inst_4_a_0 Bool) - (ControlMode.res.inst_3_a_0 Bool) - (ControlMode.res.inst_2_a_0 Bool) - (ControlMode.res.inst_1_a_0 Bool) - (ControlMode.res.inst_0_a_0 Bool) - ) Bool - - (and - (= ControlMode.res.abs_0_a_1 ControlMode.usr.op_mode_a_0) - (= - ControlMode.usr.op_mode_a_1 - (ite - (or - (or ControlMode.res.abs_1_a_1 ControlMode.usr.stop_request_a_1) - (= ControlMode.usr.op_mode_a_0 6)) - 6 - (ite - (= ControlMode.usr.op_mode_a_0 1) - (ite ControlMode.usr.steam_boiler_waiting_a_1 2 1) - (ite - (and - (= ControlMode.usr.op_mode_a_0 2) - (not ControlMode.usr.physical_units_ready_a_1)) - 2 - (ite ControlMode.res.abs_2_a_1 5 (ite ControlMode.res.abs_3_a_1 4 3)))))) - (__node_trans_critical_failure_0 - ControlMode.res.abs_0_a_1 - ControlMode.usr.steam_a_1 - ControlMode.usr.level_defect_a_1 - ControlMode.usr.steam_defect_a_1 - ControlMode.usr.pump_defect_0_a_1 - ControlMode.usr.pump_defect_1_a_1 - ControlMode.usr.pump_defect_2_a_1 - ControlMode.usr.pump_defect_3_a_1 - ControlMode.usr.q_a_1 - ControlMode.usr.pump_state_0_a_1 - ControlMode.usr.pump_state_1_a_1 - ControlMode.usr.pump_state_2_a_1 - ControlMode.usr.pump_state_3_a_1 - ControlMode.res.abs_1_a_1 - ControlMode.res.inst_46_a_1 - ControlMode.res.inst_45_a_1 - ControlMode.res.inst_44_a_1 - ControlMode.res.inst_43_a_1 - ControlMode.res.inst_42_a_1 - ControlMode.res.inst_41_a_1 - ControlMode.res.inst_40_a_1 - ControlMode.res.inst_39_a_1 - ControlMode.res.inst_38_a_1 - ControlMode.res.inst_37_a_1 - ControlMode.res.inst_36_a_1 - ControlMode.res.inst_35_a_1 - ControlMode.res.inst_34_a_1 - ControlMode.res.inst_33_a_1 - ControlMode.res.inst_32_a_1 - ControlMode.res.inst_31_a_1 - ControlMode.res.inst_30_a_1 - ControlMode.res.inst_29_a_1 - ControlMode.res.inst_28_a_1 - ControlMode.res.inst_27_a_1 - ControlMode.res.inst_26_a_1 - ControlMode.res.abs_0_a_0 - ControlMode.usr.steam_a_0 - ControlMode.usr.level_defect_a_0 - ControlMode.usr.steam_defect_a_0 - ControlMode.usr.pump_defect_0_a_0 - ControlMode.usr.pump_defect_1_a_0 - ControlMode.usr.pump_defect_2_a_0 - ControlMode.usr.pump_defect_3_a_0 - ControlMode.usr.q_a_0 - ControlMode.usr.pump_state_0_a_0 - ControlMode.usr.pump_state_1_a_0 - ControlMode.usr.pump_state_2_a_0 - ControlMode.usr.pump_state_3_a_0 - ControlMode.res.abs_1_a_0 - ControlMode.res.inst_46_a_0 - ControlMode.res.inst_45_a_0 - ControlMode.res.inst_44_a_0 - ControlMode.res.inst_43_a_0 - ControlMode.res.inst_42_a_0 - ControlMode.res.inst_41_a_0 - ControlMode.res.inst_40_a_0 - ControlMode.res.inst_39_a_0 - ControlMode.res.inst_38_a_0 - ControlMode.res.inst_37_a_0 - ControlMode.res.inst_36_a_0 - ControlMode.res.inst_35_a_0 - ControlMode.res.inst_34_a_0 - ControlMode.res.inst_33_a_0 - ControlMode.res.inst_32_a_0 - ControlMode.res.inst_31_a_0 - ControlMode.res.inst_30_a_0 - ControlMode.res.inst_29_a_0 - ControlMode.res.inst_28_a_0 - ControlMode.res.inst_27_a_0 - ControlMode.res.inst_26_a_0) - (__node_trans_level_failure_0 - ControlMode.usr.level_defect_a_1 - ControlMode.res.abs_2_a_1 - ControlMode.res.inst_25_a_1 - ControlMode.usr.level_defect_a_0 - ControlMode.res.abs_2_a_0 - ControlMode.res.inst_25_a_0) - (__node_trans_failure_0 - ControlMode.usr.level_defect_a_1 - ControlMode.usr.steam_defect_a_1 - ControlMode.usr.pump_defect_0_a_1 - ControlMode.usr.pump_defect_1_a_1 - ControlMode.usr.pump_defect_2_a_1 - ControlMode.usr.pump_defect_3_a_1 - ControlMode.usr.pump_control_defect_0_a_1 - ControlMode.usr.pump_control_defect_1_a_1 - ControlMode.usr.pump_control_defect_2_a_1 - ControlMode.usr.pump_control_defect_3_a_1 - ControlMode.res.abs_3_a_1 - ControlMode.res.inst_24_a_1 - ControlMode.res.inst_23_a_1 - ControlMode.res.inst_22_a_1 - ControlMode.res.inst_21_a_1 - ControlMode.res.inst_20_a_1 - ControlMode.res.inst_19_a_1 - ControlMode.res.inst_18_a_1 - ControlMode.res.inst_17_a_1 - ControlMode.res.inst_16_a_1 - ControlMode.res.inst_15_a_1 - ControlMode.res.inst_14_a_1 - ControlMode.res.inst_13_a_1 - ControlMode.res.inst_12_a_1 - ControlMode.res.inst_11_a_1 - ControlMode.res.inst_10_a_1 - ControlMode.res.inst_9_a_1 - ControlMode.res.inst_8_a_1 - ControlMode.res.inst_7_a_1 - ControlMode.res.inst_6_a_1 - ControlMode.res.inst_5_a_1 - ControlMode.res.inst_4_a_1 - ControlMode.res.inst_3_a_1 - ControlMode.res.inst_2_a_1 - ControlMode.res.inst_1_a_1 - ControlMode.res.inst_0_a_1 - ControlMode.usr.level_defect_a_0 - ControlMode.usr.steam_defect_a_0 - ControlMode.usr.pump_defect_0_a_0 - ControlMode.usr.pump_defect_1_a_0 - ControlMode.usr.pump_defect_2_a_0 - ControlMode.usr.pump_defect_3_a_0 - ControlMode.usr.pump_control_defect_0_a_0 - ControlMode.usr.pump_control_defect_1_a_0 - ControlMode.usr.pump_control_defect_2_a_0 - ControlMode.usr.pump_control_defect_3_a_0 - ControlMode.res.abs_3_a_0 - ControlMode.res.inst_24_a_0 - ControlMode.res.inst_23_a_0 - ControlMode.res.inst_22_a_0 - ControlMode.res.inst_21_a_0 - ControlMode.res.inst_20_a_0 - ControlMode.res.inst_19_a_0 - ControlMode.res.inst_18_a_0 - ControlMode.res.inst_17_a_0 - ControlMode.res.inst_16_a_0 - ControlMode.res.inst_15_a_0 - ControlMode.res.inst_14_a_0 - ControlMode.res.inst_13_a_0 - ControlMode.res.inst_12_a_0 - ControlMode.res.inst_11_a_0 - ControlMode.res.inst_10_a_0 - ControlMode.res.inst_9_a_0 - ControlMode.res.inst_8_a_0 - ControlMode.res.inst_7_a_0 - ControlMode.res.inst_6_a_0 - ControlMode.res.inst_5_a_0 - ControlMode.res.inst_4_a_0 - ControlMode.res.inst_3_a_0 - ControlMode.res.inst_2_a_0 - ControlMode.res.inst_1_a_0 - ControlMode.res.inst_0_a_0) - (<= 1 ControlMode.usr.op_mode_a_1 6) - (not ControlMode.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.steam_boiler_waiting_a_0 Bool) - (top.usr.physical_units_ready_a_0 Bool) - (top.usr.stop_request_a_0 Bool) - (top.usr.steam_a_0 Int) - (top.usr.level_defect_a_0 Int) - (top.usr.steam_defect_a_0 Int) - (top.usr.pump_defect_0_a_0 Int) - (top.usr.pump_defect_1_a_0 Int) - (top.usr.pump_defect_2_a_0 Int) - (top.usr.pump_defect_3_a_0 Int) - (top.usr.pump_control_defect_0_a_0 Int) - (top.usr.pump_control_defect_1_a_0 Int) - (top.usr.pump_control_defect_2_a_0 Int) - (top.usr.pump_control_defect_3_a_0 Int) - (top.usr.q_a_0 Int) - (top.usr.pump_state_0_a_0 Int) - (top.usr.pump_state_1_a_0 Int) - (top.usr.pump_state_2_a_0 Int) - (top.usr.pump_state_3_a_0 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.op_mode_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Bool) - (top.res.inst_52_a_0 Bool) - (top.res.inst_51_a_0 Int) - (top.res.inst_50_a_0 Bool) - (top.res.inst_49_a_0 Bool) - (top.res.inst_48_a_0 Bool) - (top.res.inst_47_a_0 Bool) - (top.res.inst_46_a_0 Bool) - (top.res.inst_45_a_0 Bool) - (top.res.inst_44_a_0 Bool) - (top.res.inst_43_a_0 Bool) - (top.res.inst_42_a_0 Bool) - (top.res.inst_41_a_0 Bool) - (top.res.inst_40_a_0 Bool) - (top.res.inst_39_a_0 Bool) - (top.res.inst_38_a_0 Bool) - (top.res.inst_37_a_0 Bool) - (top.res.inst_36_a_0 Bool) - (top.res.inst_35_a_0 Bool) - (top.res.inst_34_a_0 Bool) - (top.res.inst_33_a_0 Bool) - (top.res.inst_32_a_0 Bool) - (top.res.inst_31_a_0 Bool) - (top.res.inst_30_a_0 Bool) - (top.res.inst_29_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Bool) - (top.res.inst_23_a_0 Bool) - (top.res.inst_22_a_0 Bool) - (top.res.inst_21_a_0 Bool) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.op_mode_a_0 top.res.abs_0_a_0) - (let - ((X1 Bool (=> (= top.impl.usr.op_mode_a_0 3) (not top.usr.stop_request_a_0)))) - (let - ((X2 Bool true)) - (and - (= top.usr.OK_a_0 (and X2 X1)) - (__node_init_ControlMode_0 - top.usr.steam_boiler_waiting_a_0 - top.usr.physical_units_ready_a_0 - top.usr.stop_request_a_0 - top.usr.steam_a_0 - top.usr.level_defect_a_0 - top.usr.steam_defect_a_0 - top.usr.pump_defect_0_a_0 - top.usr.pump_defect_1_a_0 - top.usr.pump_defect_2_a_0 - top.usr.pump_defect_3_a_0 - top.usr.pump_control_defect_0_a_0 - top.usr.pump_control_defect_1_a_0 - top.usr.pump_control_defect_2_a_0 - top.usr.pump_control_defect_3_a_0 - top.usr.q_a_0 - top.usr.pump_state_0_a_0 - top.usr.pump_state_1_a_0 - top.usr.pump_state_2_a_0 - top.usr.pump_state_3_a_0 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.inst_52_a_0 - top.res.inst_51_a_0 - top.res.inst_50_a_0 - top.res.inst_49_a_0 - top.res.inst_48_a_0 - top.res.inst_47_a_0 - top.res.inst_46_a_0 - top.res.inst_45_a_0 - top.res.inst_44_a_0 - top.res.inst_43_a_0 - top.res.inst_42_a_0 - top.res.inst_41_a_0 - top.res.inst_40_a_0 - top.res.inst_39_a_0 - top.res.inst_38_a_0 - top.res.inst_37_a_0 - top.res.inst_36_a_0 - top.res.inst_35_a_0 - top.res.inst_34_a_0 - top.res.inst_33_a_0 - top.res.inst_32_a_0 - top.res.inst_31_a_0 - top.res.inst_30_a_0 - top.res.inst_29_a_0 - top.res.inst_28_a_0 - top.res.inst_27_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_init_dangerous_level_0 - top.usr.q_a_0 - top.res.abs_1_a_0 - top.res.inst_0_a_0) - (<= 1 top.impl.usr.op_mode_a_0 6) - (<= 1 top.res.abs_0_a_0 6) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.steam_boiler_waiting_a_1 Bool) - (top.usr.physical_units_ready_a_1 Bool) - (top.usr.stop_request_a_1 Bool) - (top.usr.steam_a_1 Int) - (top.usr.level_defect_a_1 Int) - (top.usr.steam_defect_a_1 Int) - (top.usr.pump_defect_0_a_1 Int) - (top.usr.pump_defect_1_a_1 Int) - (top.usr.pump_defect_2_a_1 Int) - (top.usr.pump_defect_3_a_1 Int) - (top.usr.pump_control_defect_0_a_1 Int) - (top.usr.pump_control_defect_1_a_1 Int) - (top.usr.pump_control_defect_2_a_1 Int) - (top.usr.pump_control_defect_3_a_1 Int) - (top.usr.q_a_1 Int) - (top.usr.pump_state_0_a_1 Int) - (top.usr.pump_state_1_a_1 Int) - (top.usr.pump_state_2_a_1 Int) - (top.usr.pump_state_3_a_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.op_mode_a_1 Int) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Bool) - (top.res.inst_52_a_1 Bool) - (top.res.inst_51_a_1 Int) - (top.res.inst_50_a_1 Bool) - (top.res.inst_49_a_1 Bool) - (top.res.inst_48_a_1 Bool) - (top.res.inst_47_a_1 Bool) - (top.res.inst_46_a_1 Bool) - (top.res.inst_45_a_1 Bool) - (top.res.inst_44_a_1 Bool) - (top.res.inst_43_a_1 Bool) - (top.res.inst_42_a_1 Bool) - (top.res.inst_41_a_1 Bool) - (top.res.inst_40_a_1 Bool) - (top.res.inst_39_a_1 Bool) - (top.res.inst_38_a_1 Bool) - (top.res.inst_37_a_1 Bool) - (top.res.inst_36_a_1 Bool) - (top.res.inst_35_a_1 Bool) - (top.res.inst_34_a_1 Bool) - (top.res.inst_33_a_1 Bool) - (top.res.inst_32_a_1 Bool) - (top.res.inst_31_a_1 Bool) - (top.res.inst_30_a_1 Bool) - (top.res.inst_29_a_1 Bool) - (top.res.inst_28_a_1 Bool) - (top.res.inst_27_a_1 Bool) - (top.res.inst_26_a_1 Bool) - (top.res.inst_25_a_1 Bool) - (top.res.inst_24_a_1 Bool) - (top.res.inst_23_a_1 Bool) - (top.res.inst_22_a_1 Bool) - (top.res.inst_21_a_1 Bool) - (top.res.inst_20_a_1 Bool) - (top.res.inst_19_a_1 Bool) - (top.res.inst_18_a_1 Bool) - (top.res.inst_17_a_1 Bool) - (top.res.inst_16_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Bool) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Bool) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Bool) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.steam_boiler_waiting_a_0 Bool) - (top.usr.physical_units_ready_a_0 Bool) - (top.usr.stop_request_a_0 Bool) - (top.usr.steam_a_0 Int) - (top.usr.level_defect_a_0 Int) - (top.usr.steam_defect_a_0 Int) - (top.usr.pump_defect_0_a_0 Int) - (top.usr.pump_defect_1_a_0 Int) - (top.usr.pump_defect_2_a_0 Int) - (top.usr.pump_defect_3_a_0 Int) - (top.usr.pump_control_defect_0_a_0 Int) - (top.usr.pump_control_defect_1_a_0 Int) - (top.usr.pump_control_defect_2_a_0 Int) - (top.usr.pump_control_defect_3_a_0 Int) - (top.usr.q_a_0 Int) - (top.usr.pump_state_0_a_0 Int) - (top.usr.pump_state_1_a_0 Int) - (top.usr.pump_state_2_a_0 Int) - (top.usr.pump_state_3_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.op_mode_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Bool) - (top.res.inst_52_a_0 Bool) - (top.res.inst_51_a_0 Int) - (top.res.inst_50_a_0 Bool) - (top.res.inst_49_a_0 Bool) - (top.res.inst_48_a_0 Bool) - (top.res.inst_47_a_0 Bool) - (top.res.inst_46_a_0 Bool) - (top.res.inst_45_a_0 Bool) - (top.res.inst_44_a_0 Bool) - (top.res.inst_43_a_0 Bool) - (top.res.inst_42_a_0 Bool) - (top.res.inst_41_a_0 Bool) - (top.res.inst_40_a_0 Bool) - (top.res.inst_39_a_0 Bool) - (top.res.inst_38_a_0 Bool) - (top.res.inst_37_a_0 Bool) - (top.res.inst_36_a_0 Bool) - (top.res.inst_35_a_0 Bool) - (top.res.inst_34_a_0 Bool) - (top.res.inst_33_a_0 Bool) - (top.res.inst_32_a_0 Bool) - (top.res.inst_31_a_0 Bool) - (top.res.inst_30_a_0 Bool) - (top.res.inst_29_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Bool) - (top.res.inst_23_a_0 Bool) - (top.res.inst_22_a_0 Bool) - (top.res.inst_21_a_0 Bool) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.op_mode_a_1 top.res.abs_0_a_1) - (let - ((X1 Bool (=> (= top.impl.usr.op_mode_a_1 3) (not top.usr.stop_request_a_1)))) - (let - ((X2 - Bool (=> - (and (= top.impl.usr.op_mode_a_1 3) (= top.impl.usr.op_mode_a_0 3)) - (not top.res.abs_1_a_1)))) - (and - (= top.usr.OK_a_1 (and X2 X1)) - (__node_trans_ControlMode_0 - top.usr.steam_boiler_waiting_a_1 - top.usr.physical_units_ready_a_1 - top.usr.stop_request_a_1 - top.usr.steam_a_1 - top.usr.level_defect_a_1 - top.usr.steam_defect_a_1 - top.usr.pump_defect_0_a_1 - top.usr.pump_defect_1_a_1 - top.usr.pump_defect_2_a_1 - top.usr.pump_defect_3_a_1 - top.usr.pump_control_defect_0_a_1 - top.usr.pump_control_defect_1_a_1 - top.usr.pump_control_defect_2_a_1 - top.usr.pump_control_defect_3_a_1 - top.usr.q_a_1 - top.usr.pump_state_0_a_1 - top.usr.pump_state_1_a_1 - top.usr.pump_state_2_a_1 - top.usr.pump_state_3_a_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.inst_52_a_1 - top.res.inst_51_a_1 - top.res.inst_50_a_1 - top.res.inst_49_a_1 - top.res.inst_48_a_1 - top.res.inst_47_a_1 - top.res.inst_46_a_1 - top.res.inst_45_a_1 - top.res.inst_44_a_1 - top.res.inst_43_a_1 - top.res.inst_42_a_1 - top.res.inst_41_a_1 - top.res.inst_40_a_1 - top.res.inst_39_a_1 - top.res.inst_38_a_1 - top.res.inst_37_a_1 - top.res.inst_36_a_1 - top.res.inst_35_a_1 - top.res.inst_34_a_1 - top.res.inst_33_a_1 - top.res.inst_32_a_1 - top.res.inst_31_a_1 - top.res.inst_30_a_1 - top.res.inst_29_a_1 - top.res.inst_28_a_1 - top.res.inst_27_a_1 - top.res.inst_26_a_1 - top.res.inst_25_a_1 - top.res.inst_24_a_1 - top.res.inst_23_a_1 - top.res.inst_22_a_1 - top.res.inst_21_a_1 - top.res.inst_20_a_1 - top.res.inst_19_a_1 - top.res.inst_18_a_1 - top.res.inst_17_a_1 - top.res.inst_16_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.usr.steam_boiler_waiting_a_0 - top.usr.physical_units_ready_a_0 - top.usr.stop_request_a_0 - top.usr.steam_a_0 - top.usr.level_defect_a_0 - top.usr.steam_defect_a_0 - top.usr.pump_defect_0_a_0 - top.usr.pump_defect_1_a_0 - top.usr.pump_defect_2_a_0 - top.usr.pump_defect_3_a_0 - top.usr.pump_control_defect_0_a_0 - top.usr.pump_control_defect_1_a_0 - top.usr.pump_control_defect_2_a_0 - top.usr.pump_control_defect_3_a_0 - top.usr.q_a_0 - top.usr.pump_state_0_a_0 - top.usr.pump_state_1_a_0 - top.usr.pump_state_2_a_0 - top.usr.pump_state_3_a_0 - top.res.abs_0_a_0 - top.res.inst_52_a_0 - top.res.inst_51_a_0 - top.res.inst_50_a_0 - top.res.inst_49_a_0 - top.res.inst_48_a_0 - top.res.inst_47_a_0 - top.res.inst_46_a_0 - top.res.inst_45_a_0 - top.res.inst_44_a_0 - top.res.inst_43_a_0 - top.res.inst_42_a_0 - top.res.inst_41_a_0 - top.res.inst_40_a_0 - top.res.inst_39_a_0 - top.res.inst_38_a_0 - top.res.inst_37_a_0 - top.res.inst_36_a_0 - top.res.inst_35_a_0 - top.res.inst_34_a_0 - top.res.inst_33_a_0 - top.res.inst_32_a_0 - top.res.inst_31_a_0 - top.res.inst_30_a_0 - top.res.inst_29_a_0 - top.res.inst_28_a_0 - top.res.inst_27_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_trans_dangerous_level_0 - top.usr.q_a_1 - top.res.abs_1_a_1 - top.res.inst_0_a_1 - top.usr.q_a_0 - top.res.abs_1_a_0 - top.res.inst_0_a_0) - (<= 1 top.impl.usr.op_mode_a_1 6) - (<= 1 top.res.abs_0_a_1 6) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.steam_boiler_waiting Bool) - (top.usr.physical_units_ready Bool) - (top.usr.stop_request Bool) - (top.usr.steam Int) - (top.usr.level_defect Int) - (top.usr.steam_defect Int) - (top.usr.pump_defect_0 Int) - (top.usr.pump_defect_1 Int) - (top.usr.pump_defect_2 Int) - (top.usr.pump_defect_3 Int) - (top.usr.pump_control_defect_0 Int) - (top.usr.pump_control_defect_1 Int) - (top.usr.pump_control_defect_2 Int) - (top.usr.pump_control_defect_3 Int) - (top.usr.q Int) - (top.usr.pump_state_0 Int) - (top.usr.pump_state_1 Int) - (top.usr.pump_state_2 Int) - (top.usr.pump_state_3 Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.op_mode Int) - (top.res.abs_0 Int) - (top.res.abs_1 Bool) - (top.res.inst_52 Bool) - (top.res.inst_51 Int) - (top.res.inst_50 Bool) - (top.res.inst_49 Bool) - (top.res.inst_48 Bool) - (top.res.inst_47 Bool) - (top.res.inst_46 Bool) - (top.res.inst_45 Bool) - (top.res.inst_44 Bool) - (top.res.inst_43 Bool) - (top.res.inst_42 Bool) - (top.res.inst_41 Bool) - (top.res.inst_40 Bool) - (top.res.inst_39 Bool) - (top.res.inst_38 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.steam_boiler_waiting Bool) -(declare-primed-var top.usr.physical_units_ready Bool) -(declare-primed-var top.usr.stop_request Bool) -(declare-primed-var top.usr.steam Int) -(declare-primed-var top.usr.level_defect Int) -(declare-primed-var top.usr.steam_defect Int) -(declare-primed-var top.usr.pump_defect_0 Int) -(declare-primed-var top.usr.pump_defect_1 Int) -(declare-primed-var top.usr.pump_defect_2 Int) -(declare-primed-var top.usr.pump_defect_3 Int) -(declare-primed-var top.usr.pump_control_defect_0 Int) -(declare-primed-var top.usr.pump_control_defect_1 Int) -(declare-primed-var top.usr.pump_control_defect_2 Int) -(declare-primed-var top.usr.pump_control_defect_3 Int) -(declare-primed-var top.usr.q Int) -(declare-primed-var top.usr.pump_state_0 Int) -(declare-primed-var top.usr.pump_state_1 Int) -(declare-primed-var top.usr.pump_state_2 Int) -(declare-primed-var top.usr.pump_state_3 Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.op_mode Int) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.inst_52 Bool) -(declare-primed-var top.res.inst_51 Int) -(declare-primed-var top.res.inst_50 Bool) -(declare-primed-var top.res.inst_49 Bool) -(declare-primed-var top.res.inst_48 Bool) -(declare-primed-var top.res.inst_47 Bool) -(declare-primed-var top.res.inst_46 Bool) -(declare-primed-var top.res.inst_45 Bool) -(declare-primed-var top.res.inst_44 Bool) -(declare-primed-var top.res.inst_43 Bool) -(declare-primed-var top.res.inst_42 Bool) -(declare-primed-var top.res.inst_41 Bool) -(declare-primed-var top.res.inst_40 Bool) -(declare-primed-var top.res.inst_39 Bool) -(declare-primed-var top.res.inst_38 Bool) -(declare-primed-var top.res.inst_37 Bool) -(declare-primed-var top.res.inst_36 Bool) -(declare-primed-var top.res.inst_35 Bool) -(declare-primed-var top.res.inst_34 Bool) -(declare-primed-var top.res.inst_33 Bool) -(declare-primed-var top.res.inst_32 Bool) -(declare-primed-var top.res.inst_31 Bool) -(declare-primed-var top.res.inst_30 Bool) -(declare-primed-var top.res.inst_29 Bool) -(declare-primed-var top.res.inst_28 Bool) -(declare-primed-var top.res.inst_27 Bool) -(declare-primed-var top.res.inst_26 Bool) -(declare-primed-var top.res.inst_25 Bool) -(declare-primed-var top.res.inst_24 Bool) -(declare-primed-var top.res.inst_23 Bool) -(declare-primed-var top.res.inst_22 Bool) -(declare-primed-var top.res.inst_21 Bool) -(declare-primed-var top.res.inst_20 Bool) -(declare-primed-var top.res.inst_19 Bool) -(declare-primed-var top.res.inst_18 Bool) -(declare-primed-var top.res.inst_17 Bool) -(declare-primed-var top.res.inst_16 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Bool) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Bool) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Bool) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.steam_boiler_waiting Bool) - (top.usr.physical_units_ready Bool) - (top.usr.stop_request Bool) - (top.usr.steam Int) - (top.usr.level_defect Int) - (top.usr.steam_defect Int) - (top.usr.pump_defect_0 Int) - (top.usr.pump_defect_1 Int) - (top.usr.pump_defect_2 Int) - (top.usr.pump_defect_3 Int) - (top.usr.pump_control_defect_0 Int) - (top.usr.pump_control_defect_1 Int) - (top.usr.pump_control_defect_2 Int) - (top.usr.pump_control_defect_3 Int) - (top.usr.q Int) - (top.usr.pump_state_0 Int) - (top.usr.pump_state_1 Int) - (top.usr.pump_state_2 Int) - (top.usr.pump_state_3 Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.op_mode Int) - (top.res.abs_0 Int) - (top.res.abs_1 Bool) - (top.res.inst_52 Bool) - (top.res.inst_51 Int) - (top.res.inst_50 Bool) - (top.res.inst_49 Bool) - (top.res.inst_48 Bool) - (top.res.inst_47 Bool) - (top.res.inst_46 Bool) - (top.res.inst_45 Bool) - (top.res.inst_44 Bool) - (top.res.inst_43 Bool) - (top.res.inst_42 Bool) - (top.res.inst_41 Bool) - (top.res.inst_40 Bool) - (top.res.inst_39 Bool) - (top.res.inst_38 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.impl.usr.op_mode top.res.abs_0) - (let - ((X1 Bool (=> (= top.impl.usr.op_mode 3) (not top.usr.stop_request)))) - (let - ((X2 Bool true)) - (and - (= top.usr.OK (and X2 X1)) - (__node_init_ControlMode_0 - top.usr.steam_boiler_waiting - top.usr.physical_units_ready - top.usr.stop_request - top.usr.steam - top.usr.level_defect - top.usr.steam_defect - top.usr.pump_defect_0 - top.usr.pump_defect_1 - top.usr.pump_defect_2 - top.usr.pump_defect_3 - top.usr.pump_control_defect_0 - top.usr.pump_control_defect_1 - top.usr.pump_control_defect_2 - top.usr.pump_control_defect_3 - top.usr.q - top.usr.pump_state_0 - top.usr.pump_state_1 - top.usr.pump_state_2 - top.usr.pump_state_3 - top.res.nondet_0 - top.res.abs_0 - top.res.inst_52 - top.res.inst_51 - top.res.inst_50 - top.res.inst_49 - top.res.inst_48 - top.res.inst_47 - top.res.inst_46 - top.res.inst_45 - top.res.inst_44 - top.res.inst_43 - top.res.inst_42 - top.res.inst_41 - top.res.inst_40 - top.res.inst_39 - top.res.inst_38 - top.res.inst_37 - top.res.inst_36 - top.res.inst_35 - top.res.inst_34 - top.res.inst_33 - top.res.inst_32 - top.res.inst_31 - top.res.inst_30 - top.res.inst_29 - top.res.inst_28 - top.res.inst_27 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_init_dangerous_level_0 top.usr.q top.res.abs_1 top.res.inst_0) - (<= 1 top.impl.usr.op_mode 6) - (<= 1 top.res.abs_0 6) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.steam_boiler_waiting Bool) - (top.usr.physical_units_ready Bool) - (top.usr.stop_request Bool) - (top.usr.steam Int) - (top.usr.level_defect Int) - (top.usr.steam_defect Int) - (top.usr.pump_defect_0 Int) - (top.usr.pump_defect_1 Int) - (top.usr.pump_defect_2 Int) - (top.usr.pump_defect_3 Int) - (top.usr.pump_control_defect_0 Int) - (top.usr.pump_control_defect_1 Int) - (top.usr.pump_control_defect_2 Int) - (top.usr.pump_control_defect_3 Int) - (top.usr.q Int) - (top.usr.pump_state_0 Int) - (top.usr.pump_state_1 Int) - (top.usr.pump_state_2 Int) - (top.usr.pump_state_3 Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.op_mode Int) - (top.res.abs_0 Int) - (top.res.abs_1 Bool) - (top.res.inst_52 Bool) - (top.res.inst_51 Int) - (top.res.inst_50 Bool) - (top.res.inst_49 Bool) - (top.res.inst_48 Bool) - (top.res.inst_47 Bool) - (top.res.inst_46 Bool) - (top.res.inst_45 Bool) - (top.res.inst_44 Bool) - (top.res.inst_43 Bool) - (top.res.inst_42 Bool) - (top.res.inst_41 Bool) - (top.res.inst_40 Bool) - (top.res.inst_39 Bool) - (top.res.inst_38 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.steam_boiler_waiting! Bool) - (top.usr.physical_units_ready! Bool) - (top.usr.stop_request! Bool) - (top.usr.steam! Int) - (top.usr.level_defect! Int) - (top.usr.steam_defect! Int) - (top.usr.pump_defect_0! Int) - (top.usr.pump_defect_1! Int) - (top.usr.pump_defect_2! Int) - (top.usr.pump_defect_3! Int) - (top.usr.pump_control_defect_0! Int) - (top.usr.pump_control_defect_1! Int) - (top.usr.pump_control_defect_2! Int) - (top.usr.pump_control_defect_3! Int) - (top.usr.q! Int) - (top.usr.pump_state_0! Int) - (top.usr.pump_state_1! Int) - (top.usr.pump_state_2! Int) - (top.usr.pump_state_3! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.op_mode! Int) - (top.res.abs_0! Int) - (top.res.abs_1! Bool) - (top.res.inst_52! Bool) - (top.res.inst_51! Int) - (top.res.inst_50! Bool) - (top.res.inst_49! Bool) - (top.res.inst_48! Bool) - (top.res.inst_47! Bool) - (top.res.inst_46! Bool) - (top.res.inst_45! Bool) - (top.res.inst_44! Bool) - (top.res.inst_43! Bool) - (top.res.inst_42! Bool) - (top.res.inst_41! Bool) - (top.res.inst_40! Bool) - (top.res.inst_39! Bool) - (top.res.inst_38! Bool) - (top.res.inst_37! Bool) - (top.res.inst_36! Bool) - (top.res.inst_35! Bool) - (top.res.inst_34! Bool) - (top.res.inst_33! Bool) - (top.res.inst_32! Bool) - (top.res.inst_31! Bool) - (top.res.inst_30! Bool) - (top.res.inst_29! Bool) - (top.res.inst_28! Bool) - (top.res.inst_27! Bool) - (top.res.inst_26! Bool) - (top.res.inst_25! Bool) - (top.res.inst_24! Bool) - (top.res.inst_23! Bool) - (top.res.inst_22! Bool) - (top.res.inst_21! Bool) - (top.res.inst_20! Bool) - (top.res.inst_19! Bool) - (top.res.inst_18! Bool) - (top.res.inst_17! Bool) - (top.res.inst_16! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Bool) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Bool) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Bool) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.impl.usr.op_mode! top.res.abs_0!) - (let - ((X1 Bool (=> (= top.impl.usr.op_mode! 3) (not top.usr.stop_request!)))) - (let - ((X2 - Bool (=> - (and (= top.impl.usr.op_mode! 3) (= top.impl.usr.op_mode 3)) - (not top.res.abs_1!)))) - (and - (= top.usr.OK! (and X2 X1)) - (__node_trans_ControlMode_0 - top.usr.steam_boiler_waiting! - top.usr.physical_units_ready! - top.usr.stop_request! - top.usr.steam! - top.usr.level_defect! - top.usr.steam_defect! - top.usr.pump_defect_0! - top.usr.pump_defect_1! - top.usr.pump_defect_2! - top.usr.pump_defect_3! - top.usr.pump_control_defect_0! - top.usr.pump_control_defect_1! - top.usr.pump_control_defect_2! - top.usr.pump_control_defect_3! - top.usr.q! - top.usr.pump_state_0! - top.usr.pump_state_1! - top.usr.pump_state_2! - top.usr.pump_state_3! - top.res.nondet_0 - top.res.abs_0! - top.res.inst_52! - top.res.inst_51! - top.res.inst_50! - top.res.inst_49! - top.res.inst_48! - top.res.inst_47! - top.res.inst_46! - top.res.inst_45! - top.res.inst_44! - top.res.inst_43! - top.res.inst_42! - top.res.inst_41! - top.res.inst_40! - top.res.inst_39! - top.res.inst_38! - top.res.inst_37! - top.res.inst_36! - top.res.inst_35! - top.res.inst_34! - top.res.inst_33! - top.res.inst_32! - top.res.inst_31! - top.res.inst_30! - top.res.inst_29! - top.res.inst_28! - top.res.inst_27! - top.res.inst_26! - top.res.inst_25! - top.res.inst_24! - top.res.inst_23! - top.res.inst_22! - top.res.inst_21! - top.res.inst_20! - top.res.inst_19! - top.res.inst_18! - top.res.inst_17! - top.res.inst_16! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.usr.steam_boiler_waiting - top.usr.physical_units_ready - top.usr.stop_request - top.usr.steam - top.usr.level_defect - top.usr.steam_defect - top.usr.pump_defect_0 - top.usr.pump_defect_1 - top.usr.pump_defect_2 - top.usr.pump_defect_3 - top.usr.pump_control_defect_0 - top.usr.pump_control_defect_1 - top.usr.pump_control_defect_2 - top.usr.pump_control_defect_3 - top.usr.q - top.usr.pump_state_0 - top.usr.pump_state_1 - top.usr.pump_state_2 - top.usr.pump_state_3 - top.res.abs_0 - top.res.inst_52 - top.res.inst_51 - top.res.inst_50 - top.res.inst_49 - top.res.inst_48 - top.res.inst_47 - top.res.inst_46 - top.res.inst_45 - top.res.inst_44 - top.res.inst_43 - top.res.inst_42 - top.res.inst_41 - top.res.inst_40 - top.res.inst_39 - top.res.inst_38 - top.res.inst_37 - top.res.inst_36 - top.res.inst_35 - top.res.inst_34 - top.res.inst_33 - top.res.inst_32 - top.res.inst_31 - top.res.inst_30 - top.res.inst_29 - top.res.inst_28 - top.res.inst_27 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_trans_dangerous_level_0 - top.usr.q! - top.res.abs_1! - top.res.inst_0! - top.usr.q - top.res.abs_1 - top.res.inst_0) - (<= 1 top.impl.usr.op_mode! 6) - (<= 1 top.res.abs_0! 6) - (not top.res.init_flag!))))) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.steam_boiler_waiting Bool) - (top.usr.physical_units_ready Bool) - (top.usr.stop_request Bool) - (top.usr.steam Int) - (top.usr.level_defect Int) - (top.usr.steam_defect Int) - (top.usr.pump_defect_0 Int) - (top.usr.pump_defect_1 Int) - (top.usr.pump_defect_2 Int) - (top.usr.pump_defect_3 Int) - (top.usr.pump_control_defect_0 Int) - (top.usr.pump_control_defect_1 Int) - (top.usr.pump_control_defect_2 Int) - (top.usr.pump_control_defect_3 Int) - (top.usr.q Int) - (top.usr.pump_state_0 Int) - (top.usr.pump_state_1 Int) - (top.usr.pump_state_2 Int) - (top.usr.pump_state_3 Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.op_mode Int) - (top.res.abs_0 Int) - (top.res.abs_1 Bool) - (top.res.inst_52 Bool) - (top.res.inst_51 Int) - (top.res.inst_50 Bool) - (top.res.inst_49 Bool) - (top.res.inst_48 Bool) - (top.res.inst_47 Bool) - (top.res.inst_46 Bool) - (top.res.inst_45 Bool) - (top.res.inst_44 Bool) - (top.res.inst_43 Bool) - (top.res.inst_42 Bool) - (top.res.inst_41 Bool) - (top.res.inst_40 Bool) - (top.res.inst_39 Bool) - (top.res.inst_38 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_dangerous_level_0 ((dangerous_level.usr.q_a_0 Int) (dangerous_level.usr.dangerous_level_a_0 Bool) (dangerous_level.res.init_flag_a_0 Bool)) Bool + (and (= dangerous_level.usr.dangerous_level_a_0 (or (<= dangerous_level.usr.q_a_0 150) (>= dangerous_level.usr.q_a_0 850))) dangerous_level.res.init_flag_a_0)) +(define-fun __node_trans_dangerous_level_0 ((dangerous_level.usr.q_a_1 Int) (dangerous_level.usr.dangerous_level_a_1 Bool) (dangerous_level.res.init_flag_a_1 Bool) (dangerous_level.usr.q_a_0 Int) (dangerous_level.usr.dangerous_level_a_0 Bool) (dangerous_level.res.init_flag_a_0 Bool)) Bool + (and (= dangerous_level.usr.dangerous_level_a_1 (or (<= dangerous_level.usr.q_a_1 150) (>= dangerous_level.usr.q_a_1 850))) (not dangerous_level.res.init_flag_a_1))) +(define-fun __node_init_level_failure_0 ((level_failure.usr.level_defect_a_0 Int) (level_failure.usr.level_failure_a_0 Bool) (level_failure.res.init_flag_a_0 Bool)) Bool + (and (= level_failure.usr.level_failure_a_0 (not (= level_failure.usr.level_defect_a_0 0))) level_failure.res.init_flag_a_0)) +(define-fun __node_trans_level_failure_0 ((level_failure.usr.level_defect_a_1 Int) (level_failure.usr.level_failure_a_1 Bool) (level_failure.res.init_flag_a_1 Bool) (level_failure.usr.level_defect_a_0 Int) (level_failure.usr.level_failure_a_0 Bool) (level_failure.res.init_flag_a_0 Bool)) Bool + (and (= level_failure.usr.level_failure_a_1 (not (= level_failure.usr.level_defect_a_1 0))) (not level_failure.res.init_flag_a_1))) +(define-fun __node_init_steam_failure_0 ((steam_failure.usr.steam_defect_a_0 Int) (steam_failure.usr.steam_failure_a_0 Bool) (steam_failure.res.init_flag_a_0 Bool)) Bool + (and (= steam_failure.usr.steam_failure_a_0 (not (= steam_failure.usr.steam_defect_a_0 0))) steam_failure.res.init_flag_a_0)) +(define-fun __node_trans_steam_failure_0 ((steam_failure.usr.steam_defect_a_1 Int) (steam_failure.usr.steam_failure_a_1 Bool) (steam_failure.res.init_flag_a_1 Bool) (steam_failure.usr.steam_defect_a_0 Int) (steam_failure.usr.steam_failure_a_0 Bool) (steam_failure.res.init_flag_a_0 Bool)) Bool + (and (= steam_failure.usr.steam_failure_a_1 (not (= steam_failure.usr.steam_defect_a_1 0))) (not steam_failure.res.init_flag_a_1))) +(define-fun __node_init_OR_0 ((OR.usr.a_0_a_0 Bool) (OR.usr.a_1_a_0 Bool) (OR.usr.a_2_a_0 Bool) (OR.usr.a_3_a_0 Bool) (OR.usr.OR_a_0 Bool) (OR.res.init_flag_a_0 Bool)) Bool + (and (= OR.usr.OR_a_0 (or (or (or OR.usr.a_0_a_0 OR.usr.a_1_a_0) OR.usr.a_2_a_0) OR.usr.a_3_a_0)) OR.res.init_flag_a_0)) +(define-fun __node_trans_OR_0 ((OR.usr.a_0_a_1 Bool) (OR.usr.a_1_a_1 Bool) (OR.usr.a_2_a_1 Bool) (OR.usr.a_3_a_1 Bool) (OR.usr.OR_a_1 Bool) (OR.res.init_flag_a_1 Bool) (OR.usr.a_0_a_0 Bool) (OR.usr.a_1_a_0 Bool) (OR.usr.a_2_a_0 Bool) (OR.usr.a_3_a_0 Bool) (OR.usr.OR_a_0 Bool) (OR.res.init_flag_a_0 Bool)) Bool + (and (= OR.usr.OR_a_1 (or (or (or OR.usr.a_0_a_1 OR.usr.a_1_a_1) OR.usr.a_2_a_1) OR.usr.a_3_a_1)) (not OR.res.init_flag_a_1))) +(define-fun __node_init_pump_control_failure_0 ((pump_control_failure.usr.pump_defect_a_0 Int) (pump_control_failure.usr.pump_failure_a_0 Bool) (pump_control_failure.res.init_flag_a_0 Bool)) Bool + (and (= pump_control_failure.usr.pump_failure_a_0 (not (= pump_control_failure.usr.pump_defect_a_0 0))) pump_control_failure.res.init_flag_a_0)) +(define-fun __node_trans_pump_control_failure_0 ((pump_control_failure.usr.pump_defect_a_1 Int) (pump_control_failure.usr.pump_failure_a_1 Bool) (pump_control_failure.res.init_flag_a_1 Bool) (pump_control_failure.usr.pump_defect_a_0 Int) (pump_control_failure.usr.pump_failure_a_0 Bool) (pump_control_failure.res.init_flag_a_0 Bool)) Bool + (and (= pump_control_failure.usr.pump_failure_a_1 (not (= pump_control_failure.usr.pump_defect_a_1 0))) (not pump_control_failure.res.init_flag_a_1))) +(define-fun __node_init_pump_failure_0 ((pump_failure.usr.pump_defect_a_0 Int) (pump_failure.usr.pump_failure_a_0 Bool) (pump_failure.res.init_flag_a_0 Bool)) Bool + (and (= pump_failure.usr.pump_failure_a_0 (not (= pump_failure.usr.pump_defect_a_0 0))) pump_failure.res.init_flag_a_0)) +(define-fun __node_trans_pump_failure_0 ((pump_failure.usr.pump_defect_a_1 Int) (pump_failure.usr.pump_failure_a_1 Bool) (pump_failure.res.init_flag_a_1 Bool) (pump_failure.usr.pump_defect_a_0 Int) (pump_failure.usr.pump_failure_a_0 Bool) (pump_failure.res.init_flag_a_0 Bool)) Bool + (and (= pump_failure.usr.pump_failure_a_1 (not (= pump_failure.usr.pump_defect_a_1 0))) (not pump_failure.res.init_flag_a_1))) +(define-fun __node_init_failure_0 ((failure.usr.level_defect_a_0 Int) (failure.usr.steam_defect_a_0 Int) (failure.usr.pump_defect_0_a_0 Int) (failure.usr.pump_defect_1_a_0 Int) (failure.usr.pump_defect_2_a_0 Int) (failure.usr.pump_defect_3_a_0 Int) (failure.usr.pump_control_defect_0_a_0 Int) (failure.usr.pump_control_defect_1_a_0 Int) (failure.usr.pump_control_defect_2_a_0 Int) (failure.usr.pump_control_defect_3_a_0 Int) (failure.usr.failure_a_0 Bool) (failure.res.init_flag_a_0 Bool) (failure.res.abs_0_a_0 Bool) (failure.res.abs_1_a_0 Bool) (failure.res.abs_2_a_0 Bool) (failure.res.abs_3_a_0 Bool) (failure.res.abs_4_a_0 Bool) (failure.res.abs_5_a_0 Bool) (failure.res.abs_6_a_0 Bool) (failure.res.abs_7_a_0 Bool) (failure.res.abs_8_a_0 Bool) (failure.res.abs_9_a_0 Bool) (failure.res.abs_10_a_0 Bool) (failure.res.abs_11_a_0 Bool) (failure.res.inst_11_a_0 Bool) (failure.res.inst_10_a_0 Bool) (failure.res.inst_9_a_0 Bool) (failure.res.inst_8_a_0 Bool) (failure.res.inst_7_a_0 Bool) (failure.res.inst_6_a_0 Bool) (failure.res.inst_5_a_0 Bool) (failure.res.inst_4_a_0 Bool) (failure.res.inst_3_a_0 Bool) (failure.res.inst_2_a_0 Bool) (failure.res.inst_1_a_0 Bool) (failure.res.inst_0_a_0 Bool)) Bool + (and (= failure.usr.failure_a_0 (or (or (or failure.res.abs_0_a_0 failure.res.abs_1_a_0) failure.res.abs_6_a_0) failure.res.abs_11_a_0)) (__node_init_level_failure_0 failure.usr.level_defect_a_0 failure.res.abs_0_a_0 failure.res.inst_11_a_0) (__node_init_steam_failure_0 failure.usr.steam_defect_a_0 failure.res.abs_1_a_0 failure.res.inst_10_a_0) (__node_init_OR_0 failure.res.abs_2_a_0 failure.res.abs_3_a_0 failure.res.abs_4_a_0 failure.res.abs_5_a_0 failure.res.abs_6_a_0 failure.res.inst_9_a_0) (__node_init_pump_failure_0 failure.usr.pump_defect_0_a_0 failure.res.abs_2_a_0 failure.res.inst_8_a_0) (__node_init_pump_failure_0 failure.usr.pump_defect_1_a_0 failure.res.abs_3_a_0 failure.res.inst_7_a_0) (__node_init_pump_failure_0 failure.usr.pump_defect_2_a_0 failure.res.abs_4_a_0 failure.res.inst_6_a_0) (__node_init_pump_failure_0 failure.usr.pump_defect_3_a_0 failure.res.abs_5_a_0 failure.res.inst_5_a_0) (__node_init_OR_0 failure.res.abs_7_a_0 failure.res.abs_8_a_0 failure.res.abs_9_a_0 failure.res.abs_10_a_0 failure.res.abs_11_a_0 failure.res.inst_4_a_0) (__node_init_pump_control_failure_0 failure.usr.pump_control_defect_0_a_0 failure.res.abs_7_a_0 failure.res.inst_3_a_0) (__node_init_pump_control_failure_0 failure.usr.pump_control_defect_1_a_0 failure.res.abs_8_a_0 failure.res.inst_2_a_0) (__node_init_pump_control_failure_0 failure.usr.pump_control_defect_2_a_0 failure.res.abs_9_a_0 failure.res.inst_1_a_0) (__node_init_pump_control_failure_0 failure.usr.pump_control_defect_3_a_0 failure.res.abs_10_a_0 failure.res.inst_0_a_0) failure.res.init_flag_a_0)) +(define-fun __node_trans_failure_0 ((failure.usr.level_defect_a_1 Int) (failure.usr.steam_defect_a_1 Int) (failure.usr.pump_defect_0_a_1 Int) (failure.usr.pump_defect_1_a_1 Int) (failure.usr.pump_defect_2_a_1 Int) (failure.usr.pump_defect_3_a_1 Int) (failure.usr.pump_control_defect_0_a_1 Int) (failure.usr.pump_control_defect_1_a_1 Int) (failure.usr.pump_control_defect_2_a_1 Int) (failure.usr.pump_control_defect_3_a_1 Int) (failure.usr.failure_a_1 Bool) (failure.res.init_flag_a_1 Bool) (failure.res.abs_0_a_1 Bool) (failure.res.abs_1_a_1 Bool) (failure.res.abs_2_a_1 Bool) (failure.res.abs_3_a_1 Bool) (failure.res.abs_4_a_1 Bool) (failure.res.abs_5_a_1 Bool) (failure.res.abs_6_a_1 Bool) (failure.res.abs_7_a_1 Bool) (failure.res.abs_8_a_1 Bool) (failure.res.abs_9_a_1 Bool) (failure.res.abs_10_a_1 Bool) (failure.res.abs_11_a_1 Bool) (failure.res.inst_11_a_1 Bool) (failure.res.inst_10_a_1 Bool) (failure.res.inst_9_a_1 Bool) (failure.res.inst_8_a_1 Bool) (failure.res.inst_7_a_1 Bool) (failure.res.inst_6_a_1 Bool) (failure.res.inst_5_a_1 Bool) (failure.res.inst_4_a_1 Bool) (failure.res.inst_3_a_1 Bool) (failure.res.inst_2_a_1 Bool) (failure.res.inst_1_a_1 Bool) (failure.res.inst_0_a_1 Bool) (failure.usr.level_defect_a_0 Int) (failure.usr.steam_defect_a_0 Int) (failure.usr.pump_defect_0_a_0 Int) (failure.usr.pump_defect_1_a_0 Int) (failure.usr.pump_defect_2_a_0 Int) (failure.usr.pump_defect_3_a_0 Int) (failure.usr.pump_control_defect_0_a_0 Int) (failure.usr.pump_control_defect_1_a_0 Int) (failure.usr.pump_control_defect_2_a_0 Int) (failure.usr.pump_control_defect_3_a_0 Int) (failure.usr.failure_a_0 Bool) (failure.res.init_flag_a_0 Bool) (failure.res.abs_0_a_0 Bool) (failure.res.abs_1_a_0 Bool) (failure.res.abs_2_a_0 Bool) (failure.res.abs_3_a_0 Bool) (failure.res.abs_4_a_0 Bool) (failure.res.abs_5_a_0 Bool) (failure.res.abs_6_a_0 Bool) (failure.res.abs_7_a_0 Bool) (failure.res.abs_8_a_0 Bool) (failure.res.abs_9_a_0 Bool) (failure.res.abs_10_a_0 Bool) (failure.res.abs_11_a_0 Bool) (failure.res.inst_11_a_0 Bool) (failure.res.inst_10_a_0 Bool) (failure.res.inst_9_a_0 Bool) (failure.res.inst_8_a_0 Bool) (failure.res.inst_7_a_0 Bool) (failure.res.inst_6_a_0 Bool) (failure.res.inst_5_a_0 Bool) (failure.res.inst_4_a_0 Bool) (failure.res.inst_3_a_0 Bool) (failure.res.inst_2_a_0 Bool) (failure.res.inst_1_a_0 Bool) (failure.res.inst_0_a_0 Bool)) Bool + (and (= failure.usr.failure_a_1 (or (or (or failure.res.abs_0_a_1 failure.res.abs_1_a_1) failure.res.abs_6_a_1) failure.res.abs_11_a_1)) (__node_trans_level_failure_0 failure.usr.level_defect_a_1 failure.res.abs_0_a_1 failure.res.inst_11_a_1 failure.usr.level_defect_a_0 failure.res.abs_0_a_0 failure.res.inst_11_a_0) (__node_trans_steam_failure_0 failure.usr.steam_defect_a_1 failure.res.abs_1_a_1 failure.res.inst_10_a_1 failure.usr.steam_defect_a_0 failure.res.abs_1_a_0 failure.res.inst_10_a_0) (__node_trans_OR_0 failure.res.abs_2_a_1 failure.res.abs_3_a_1 failure.res.abs_4_a_1 failure.res.abs_5_a_1 failure.res.abs_6_a_1 failure.res.inst_9_a_1 failure.res.abs_2_a_0 failure.res.abs_3_a_0 failure.res.abs_4_a_0 failure.res.abs_5_a_0 failure.res.abs_6_a_0 failure.res.inst_9_a_0) (__node_trans_pump_failure_0 failure.usr.pump_defect_0_a_1 failure.res.abs_2_a_1 failure.res.inst_8_a_1 failure.usr.pump_defect_0_a_0 failure.res.abs_2_a_0 failure.res.inst_8_a_0) (__node_trans_pump_failure_0 failure.usr.pump_defect_1_a_1 failure.res.abs_3_a_1 failure.res.inst_7_a_1 failure.usr.pump_defect_1_a_0 failure.res.abs_3_a_0 failure.res.inst_7_a_0) (__node_trans_pump_failure_0 failure.usr.pump_defect_2_a_1 failure.res.abs_4_a_1 failure.res.inst_6_a_1 failure.usr.pump_defect_2_a_0 failure.res.abs_4_a_0 failure.res.inst_6_a_0) (__node_trans_pump_failure_0 failure.usr.pump_defect_3_a_1 failure.res.abs_5_a_1 failure.res.inst_5_a_1 failure.usr.pump_defect_3_a_0 failure.res.abs_5_a_0 failure.res.inst_5_a_0) (__node_trans_OR_0 failure.res.abs_7_a_1 failure.res.abs_8_a_1 failure.res.abs_9_a_1 failure.res.abs_10_a_1 failure.res.abs_11_a_1 failure.res.inst_4_a_1 failure.res.abs_7_a_0 failure.res.abs_8_a_0 failure.res.abs_9_a_0 failure.res.abs_10_a_0 failure.res.abs_11_a_0 failure.res.inst_4_a_0) (__node_trans_pump_control_failure_0 failure.usr.pump_control_defect_0_a_1 failure.res.abs_7_a_1 failure.res.inst_3_a_1 failure.usr.pump_control_defect_0_a_0 failure.res.abs_7_a_0 failure.res.inst_3_a_0) (__node_trans_pump_control_failure_0 failure.usr.pump_control_defect_1_a_1 failure.res.abs_8_a_1 failure.res.inst_2_a_1 failure.usr.pump_control_defect_1_a_0 failure.res.abs_8_a_0 failure.res.inst_2_a_0) (__node_trans_pump_control_failure_0 failure.usr.pump_control_defect_2_a_1 failure.res.abs_9_a_1 failure.res.inst_1_a_1 failure.usr.pump_control_defect_2_a_0 failure.res.abs_9_a_0 failure.res.inst_1_a_0) (__node_trans_pump_control_failure_0 failure.usr.pump_control_defect_3_a_1 failure.res.abs_10_a_1 failure.res.inst_0_a_1 failure.usr.pump_control_defect_3_a_0 failure.res.abs_10_a_0 failure.res.inst_0_a_0) (not failure.res.init_flag_a_1))) +(define-fun __node_init_steam_failure_startup_0 ((steam_failure_startup.usr.steam_a_0 Int) (steam_failure_startup.usr.steam_failure_startup_a_0 Bool) (steam_failure_startup.res.init_flag_a_0 Bool)) Bool + (and (= steam_failure_startup.usr.steam_failure_startup_a_0 (not (= steam_failure_startup.usr.steam_a_0 0))) steam_failure_startup.res.init_flag_a_0)) +(define-fun __node_trans_steam_failure_startup_0 ((steam_failure_startup.usr.steam_a_1 Int) (steam_failure_startup.usr.steam_failure_startup_a_1 Bool) (steam_failure_startup.res.init_flag_a_1 Bool) (steam_failure_startup.usr.steam_a_0 Int) (steam_failure_startup.usr.steam_failure_startup_a_0 Bool) (steam_failure_startup.res.init_flag_a_0 Bool)) Bool + (and (= steam_failure_startup.usr.steam_failure_startup_a_1 (not (= steam_failure_startup.usr.steam_a_1 0))) (not steam_failure_startup.res.init_flag_a_1))) +(define-fun __node_init_AND_0 ((AND.usr.a_0_a_0 Bool) (AND.usr.a_1_a_0 Bool) (AND.usr.a_2_a_0 Bool) (AND.usr.a_3_a_0 Bool) (AND.usr.AND_a_0 Bool) (AND.res.init_flag_a_0 Bool)) Bool + (and (= AND.usr.AND_a_0 (and (and (and AND.usr.a_0_a_0 AND.usr.a_1_a_0) AND.usr.a_2_a_0) AND.usr.a_3_a_0)) AND.res.init_flag_a_0)) +(define-fun __node_trans_AND_0 ((AND.usr.a_0_a_1 Bool) (AND.usr.a_1_a_1 Bool) (AND.usr.a_2_a_1 Bool) (AND.usr.a_3_a_1 Bool) (AND.usr.AND_a_1 Bool) (AND.res.init_flag_a_1 Bool) (AND.usr.a_0_a_0 Bool) (AND.usr.a_1_a_0 Bool) (AND.usr.a_2_a_0 Bool) (AND.usr.a_3_a_0 Bool) (AND.usr.AND_a_0 Bool) (AND.res.init_flag_a_0 Bool)) Bool + (and (= AND.usr.AND_a_1 (and (and (and AND.usr.a_0_a_1 AND.usr.a_1_a_1) AND.usr.a_2_a_1) AND.usr.a_3_a_1)) (not AND.res.init_flag_a_1))) +(define-fun __node_init_transmission_failure_0 ((transmission_failure.usr.pump_state_0_a_0 Int) (transmission_failure.usr.pump_state_1_a_0 Int) (transmission_failure.usr.pump_state_2_a_0 Int) (transmission_failure.usr.pump_state_3_a_0 Int) (transmission_failure.usr.transmission_failure_a_0 Bool) (transmission_failure.res.init_flag_a_0 Bool)) Bool + (and (= transmission_failure.usr.transmission_failure_a_0 (or (or (or (= transmission_failure.usr.pump_state_0_a_0 3) (= transmission_failure.usr.pump_state_1_a_0 3)) (= transmission_failure.usr.pump_state_2_a_0 3)) (= transmission_failure.usr.pump_state_3_a_0 3))) transmission_failure.res.init_flag_a_0)) +(define-fun __node_trans_transmission_failure_0 ((transmission_failure.usr.pump_state_0_a_1 Int) (transmission_failure.usr.pump_state_1_a_1 Int) (transmission_failure.usr.pump_state_2_a_1 Int) (transmission_failure.usr.pump_state_3_a_1 Int) (transmission_failure.usr.transmission_failure_a_1 Bool) (transmission_failure.res.init_flag_a_1 Bool) (transmission_failure.usr.pump_state_0_a_0 Int) (transmission_failure.usr.pump_state_1_a_0 Int) (transmission_failure.usr.pump_state_2_a_0 Int) (transmission_failure.usr.pump_state_3_a_0 Int) (transmission_failure.usr.transmission_failure_a_0 Bool) (transmission_failure.res.init_flag_a_0 Bool)) Bool + (and (= transmission_failure.usr.transmission_failure_a_1 (or (or (or (= transmission_failure.usr.pump_state_0_a_1 3) (= transmission_failure.usr.pump_state_1_a_1 3)) (= transmission_failure.usr.pump_state_2_a_1 3)) (= transmission_failure.usr.pump_state_3_a_1 3))) (not transmission_failure.res.init_flag_a_1))) +(define-fun __node_init_critical_failure_0 ((critical_failure.usr.op_mode_a_0 Int) (critical_failure.usr.steam_a_0 Int) (critical_failure.usr.level_defect_a_0 Int) (critical_failure.usr.steam_defect_a_0 Int) (critical_failure.usr.pump_defect_0_a_0 Int) (critical_failure.usr.pump_defect_1_a_0 Int) (critical_failure.usr.pump_defect_2_a_0 Int) (critical_failure.usr.pump_defect_3_a_0 Int) (critical_failure.usr.q_a_0 Int) (critical_failure.usr.pump_state_0_a_0 Int) (critical_failure.usr.pump_state_1_a_0 Int) (critical_failure.usr.pump_state_2_a_0 Int) (critical_failure.usr.pump_state_3_a_0 Int) (critical_failure.usr.critical_failure_a_0 Bool) (critical_failure.res.init_flag_a_0 Bool) (critical_failure.res.abs_0_a_0 Bool) (critical_failure.res.abs_1_a_0 Bool) (critical_failure.res.abs_2_a_0 Bool) (critical_failure.res.abs_3_a_0 Bool) (critical_failure.res.abs_4_a_0 Bool) (critical_failure.res.abs_5_a_0 Bool) (critical_failure.res.abs_6_a_0 Bool) (critical_failure.res.abs_7_a_0 Bool) (critical_failure.res.abs_8_a_0 Bool) (critical_failure.res.abs_9_a_0 Bool) (critical_failure.res.inst_9_a_0 Bool) (critical_failure.res.inst_8_a_0 Bool) (critical_failure.res.inst_7_a_0 Bool) (critical_failure.res.inst_6_a_0 Bool) (critical_failure.res.inst_5_a_0 Bool) (critical_failure.res.inst_4_a_0 Bool) (critical_failure.res.inst_3_a_0 Bool) (critical_failure.res.inst_2_a_0 Bool) (critical_failure.res.inst_1_a_0 Bool) (critical_failure.res.inst_0_a_0 Bool)) Bool + (and (= critical_failure.usr.critical_failure_a_0 (or (or (or (or (or critical_failure.res.abs_0_a_0 (and (= critical_failure.usr.op_mode_a_0 1) critical_failure.res.abs_1_a_0)) (and (= critical_failure.usr.op_mode_a_0 2) (or critical_failure.res.abs_2_a_0 critical_failure.res.abs_3_a_0))) (and (= critical_failure.usr.op_mode_a_0 3) critical_failure.res.abs_4_a_0)) (and (= critical_failure.usr.op_mode_a_0 4) critical_failure.res.abs_4_a_0)) (and (= critical_failure.usr.op_mode_a_0 5) (or (or critical_failure.res.abs_4_a_0 critical_failure.res.abs_3_a_0) critical_failure.res.abs_9_a_0)))) (__node_init_transmission_failure_0 critical_failure.usr.pump_state_0_a_0 critical_failure.usr.pump_state_1_a_0 critical_failure.usr.pump_state_2_a_0 critical_failure.usr.pump_state_3_a_0 critical_failure.res.abs_0_a_0 critical_failure.res.inst_9_a_0) (__node_init_steam_failure_startup_0 critical_failure.usr.steam_a_0 critical_failure.res.abs_1_a_0 critical_failure.res.inst_8_a_0) (__node_init_level_failure_0 critical_failure.usr.level_defect_a_0 critical_failure.res.abs_2_a_0 critical_failure.res.inst_7_a_0) (__node_init_steam_failure_0 critical_failure.usr.steam_defect_a_0 critical_failure.res.abs_3_a_0 critical_failure.res.inst_6_a_0) (__node_init_dangerous_level_0 critical_failure.usr.q_a_0 critical_failure.res.abs_4_a_0 critical_failure.res.inst_5_a_0) (__node_init_AND_0 critical_failure.res.abs_5_a_0 critical_failure.res.abs_6_a_0 critical_failure.res.abs_7_a_0 critical_failure.res.abs_8_a_0 critical_failure.res.abs_9_a_0 critical_failure.res.inst_4_a_0) (__node_init_pump_failure_0 critical_failure.usr.pump_defect_0_a_0 critical_failure.res.abs_5_a_0 critical_failure.res.inst_3_a_0) (__node_init_pump_failure_0 critical_failure.usr.pump_defect_1_a_0 critical_failure.res.abs_6_a_0 critical_failure.res.inst_2_a_0) (__node_init_pump_failure_0 critical_failure.usr.pump_defect_2_a_0 critical_failure.res.abs_7_a_0 critical_failure.res.inst_1_a_0) (__node_init_pump_failure_0 critical_failure.usr.pump_defect_3_a_0 critical_failure.res.abs_8_a_0 critical_failure.res.inst_0_a_0) critical_failure.res.init_flag_a_0)) +(define-fun __node_trans_critical_failure_0 ((critical_failure.usr.op_mode_a_1 Int) (critical_failure.usr.steam_a_1 Int) (critical_failure.usr.level_defect_a_1 Int) (critical_failure.usr.steam_defect_a_1 Int) (critical_failure.usr.pump_defect_0_a_1 Int) (critical_failure.usr.pump_defect_1_a_1 Int) (critical_failure.usr.pump_defect_2_a_1 Int) (critical_failure.usr.pump_defect_3_a_1 Int) (critical_failure.usr.q_a_1 Int) (critical_failure.usr.pump_state_0_a_1 Int) (critical_failure.usr.pump_state_1_a_1 Int) (critical_failure.usr.pump_state_2_a_1 Int) (critical_failure.usr.pump_state_3_a_1 Int) (critical_failure.usr.critical_failure_a_1 Bool) (critical_failure.res.init_flag_a_1 Bool) (critical_failure.res.abs_0_a_1 Bool) (critical_failure.res.abs_1_a_1 Bool) (critical_failure.res.abs_2_a_1 Bool) (critical_failure.res.abs_3_a_1 Bool) (critical_failure.res.abs_4_a_1 Bool) (critical_failure.res.abs_5_a_1 Bool) (critical_failure.res.abs_6_a_1 Bool) (critical_failure.res.abs_7_a_1 Bool) (critical_failure.res.abs_8_a_1 Bool) (critical_failure.res.abs_9_a_1 Bool) (critical_failure.res.inst_9_a_1 Bool) (critical_failure.res.inst_8_a_1 Bool) (critical_failure.res.inst_7_a_1 Bool) (critical_failure.res.inst_6_a_1 Bool) (critical_failure.res.inst_5_a_1 Bool) (critical_failure.res.inst_4_a_1 Bool) (critical_failure.res.inst_3_a_1 Bool) (critical_failure.res.inst_2_a_1 Bool) (critical_failure.res.inst_1_a_1 Bool) (critical_failure.res.inst_0_a_1 Bool) (critical_failure.usr.op_mode_a_0 Int) (critical_failure.usr.steam_a_0 Int) (critical_failure.usr.level_defect_a_0 Int) (critical_failure.usr.steam_defect_a_0 Int) (critical_failure.usr.pump_defect_0_a_0 Int) (critical_failure.usr.pump_defect_1_a_0 Int) (critical_failure.usr.pump_defect_2_a_0 Int) (critical_failure.usr.pump_defect_3_a_0 Int) (critical_failure.usr.q_a_0 Int) (critical_failure.usr.pump_state_0_a_0 Int) (critical_failure.usr.pump_state_1_a_0 Int) (critical_failure.usr.pump_state_2_a_0 Int) (critical_failure.usr.pump_state_3_a_0 Int) (critical_failure.usr.critical_failure_a_0 Bool) (critical_failure.res.init_flag_a_0 Bool) (critical_failure.res.abs_0_a_0 Bool) (critical_failure.res.abs_1_a_0 Bool) (critical_failure.res.abs_2_a_0 Bool) (critical_failure.res.abs_3_a_0 Bool) (critical_failure.res.abs_4_a_0 Bool) (critical_failure.res.abs_5_a_0 Bool) (critical_failure.res.abs_6_a_0 Bool) (critical_failure.res.abs_7_a_0 Bool) (critical_failure.res.abs_8_a_0 Bool) (critical_failure.res.abs_9_a_0 Bool) (critical_failure.res.inst_9_a_0 Bool) (critical_failure.res.inst_8_a_0 Bool) (critical_failure.res.inst_7_a_0 Bool) (critical_failure.res.inst_6_a_0 Bool) (critical_failure.res.inst_5_a_0 Bool) (critical_failure.res.inst_4_a_0 Bool) (critical_failure.res.inst_3_a_0 Bool) (critical_failure.res.inst_2_a_0 Bool) (critical_failure.res.inst_1_a_0 Bool) (critical_failure.res.inst_0_a_0 Bool)) Bool + (and (= critical_failure.usr.critical_failure_a_1 (or (or (or (or (or critical_failure.res.abs_0_a_1 (and (= critical_failure.usr.op_mode_a_1 1) critical_failure.res.abs_1_a_1)) (and (= critical_failure.usr.op_mode_a_1 2) (or critical_failure.res.abs_2_a_1 critical_failure.res.abs_3_a_1))) (and (= critical_failure.usr.op_mode_a_1 3) critical_failure.res.abs_4_a_1)) (and (= critical_failure.usr.op_mode_a_1 4) critical_failure.res.abs_4_a_1)) (and (= critical_failure.usr.op_mode_a_1 5) (or (or critical_failure.res.abs_4_a_1 critical_failure.res.abs_3_a_1) critical_failure.res.abs_9_a_1)))) (__node_trans_transmission_failure_0 critical_failure.usr.pump_state_0_a_1 critical_failure.usr.pump_state_1_a_1 critical_failure.usr.pump_state_2_a_1 critical_failure.usr.pump_state_3_a_1 critical_failure.res.abs_0_a_1 critical_failure.res.inst_9_a_1 critical_failure.usr.pump_state_0_a_0 critical_failure.usr.pump_state_1_a_0 critical_failure.usr.pump_state_2_a_0 critical_failure.usr.pump_state_3_a_0 critical_failure.res.abs_0_a_0 critical_failure.res.inst_9_a_0) (__node_trans_steam_failure_startup_0 critical_failure.usr.steam_a_1 critical_failure.res.abs_1_a_1 critical_failure.res.inst_8_a_1 critical_failure.usr.steam_a_0 critical_failure.res.abs_1_a_0 critical_failure.res.inst_8_a_0) (__node_trans_level_failure_0 critical_failure.usr.level_defect_a_1 critical_failure.res.abs_2_a_1 critical_failure.res.inst_7_a_1 critical_failure.usr.level_defect_a_0 critical_failure.res.abs_2_a_0 critical_failure.res.inst_7_a_0) (__node_trans_steam_failure_0 critical_failure.usr.steam_defect_a_1 critical_failure.res.abs_3_a_1 critical_failure.res.inst_6_a_1 critical_failure.usr.steam_defect_a_0 critical_failure.res.abs_3_a_0 critical_failure.res.inst_6_a_0) (__node_trans_dangerous_level_0 critical_failure.usr.q_a_1 critical_failure.res.abs_4_a_1 critical_failure.res.inst_5_a_1 critical_failure.usr.q_a_0 critical_failure.res.abs_4_a_0 critical_failure.res.inst_5_a_0) (__node_trans_AND_0 critical_failure.res.abs_5_a_1 critical_failure.res.abs_6_a_1 critical_failure.res.abs_7_a_1 critical_failure.res.abs_8_a_1 critical_failure.res.abs_9_a_1 critical_failure.res.inst_4_a_1 critical_failure.res.abs_5_a_0 critical_failure.res.abs_6_a_0 critical_failure.res.abs_7_a_0 critical_failure.res.abs_8_a_0 critical_failure.res.abs_9_a_0 critical_failure.res.inst_4_a_0) (__node_trans_pump_failure_0 critical_failure.usr.pump_defect_0_a_1 critical_failure.res.abs_5_a_1 critical_failure.res.inst_3_a_1 critical_failure.usr.pump_defect_0_a_0 critical_failure.res.abs_5_a_0 critical_failure.res.inst_3_a_0) (__node_trans_pump_failure_0 critical_failure.usr.pump_defect_1_a_1 critical_failure.res.abs_6_a_1 critical_failure.res.inst_2_a_1 critical_failure.usr.pump_defect_1_a_0 critical_failure.res.abs_6_a_0 critical_failure.res.inst_2_a_0) (__node_trans_pump_failure_0 critical_failure.usr.pump_defect_2_a_1 critical_failure.res.abs_7_a_1 critical_failure.res.inst_1_a_1 critical_failure.usr.pump_defect_2_a_0 critical_failure.res.abs_7_a_0 critical_failure.res.inst_1_a_0) (__node_trans_pump_failure_0 critical_failure.usr.pump_defect_3_a_1 critical_failure.res.abs_8_a_1 critical_failure.res.inst_0_a_1 critical_failure.usr.pump_defect_3_a_0 critical_failure.res.abs_8_a_0 critical_failure.res.inst_0_a_0) (not critical_failure.res.init_flag_a_1))) +(define-fun __node_init_ControlMode_0 ((ControlMode.usr.steam_boiler_waiting_a_0 Bool) (ControlMode.usr.physical_units_ready_a_0 Bool) (ControlMode.usr.stop_request_a_0 Bool) (ControlMode.usr.steam_a_0 Int) (ControlMode.usr.level_defect_a_0 Int) (ControlMode.usr.steam_defect_a_0 Int) (ControlMode.usr.pump_defect_0_a_0 Int) (ControlMode.usr.pump_defect_1_a_0 Int) (ControlMode.usr.pump_defect_2_a_0 Int) (ControlMode.usr.pump_defect_3_a_0 Int) (ControlMode.usr.pump_control_defect_0_a_0 Int) (ControlMode.usr.pump_control_defect_1_a_0 Int) (ControlMode.usr.pump_control_defect_2_a_0 Int) (ControlMode.usr.pump_control_defect_3_a_0 Int) (ControlMode.usr.q_a_0 Int) (ControlMode.usr.pump_state_0_a_0 Int) (ControlMode.usr.pump_state_1_a_0 Int) (ControlMode.usr.pump_state_2_a_0 Int) (ControlMode.usr.pump_state_3_a_0 Int) (ControlMode.res.nondet_0 Int) (ControlMode.usr.op_mode_a_0 Int) (ControlMode.res.init_flag_a_0 Bool) (ControlMode.res.abs_0_a_0 Int) (ControlMode.res.abs_1_a_0 Bool) (ControlMode.res.abs_2_a_0 Bool) (ControlMode.res.abs_3_a_0 Bool) (ControlMode.res.inst_46_a_0 Bool) (ControlMode.res.inst_45_a_0 Bool) (ControlMode.res.inst_44_a_0 Bool) (ControlMode.res.inst_43_a_0 Bool) (ControlMode.res.inst_42_a_0 Bool) (ControlMode.res.inst_41_a_0 Bool) (ControlMode.res.inst_40_a_0 Bool) (ControlMode.res.inst_39_a_0 Bool) (ControlMode.res.inst_38_a_0 Bool) (ControlMode.res.inst_37_a_0 Bool) (ControlMode.res.inst_36_a_0 Bool) (ControlMode.res.inst_35_a_0 Bool) (ControlMode.res.inst_34_a_0 Bool) (ControlMode.res.inst_33_a_0 Bool) (ControlMode.res.inst_32_a_0 Bool) (ControlMode.res.inst_31_a_0 Bool) (ControlMode.res.inst_30_a_0 Bool) (ControlMode.res.inst_29_a_0 Bool) (ControlMode.res.inst_28_a_0 Bool) (ControlMode.res.inst_27_a_0 Bool) (ControlMode.res.inst_26_a_0 Bool) (ControlMode.res.inst_25_a_0 Bool) (ControlMode.res.inst_24_a_0 Bool) (ControlMode.res.inst_23_a_0 Bool) (ControlMode.res.inst_22_a_0 Bool) (ControlMode.res.inst_21_a_0 Bool) (ControlMode.res.inst_20_a_0 Bool) (ControlMode.res.inst_19_a_0 Bool) (ControlMode.res.inst_18_a_0 Bool) (ControlMode.res.inst_17_a_0 Bool) (ControlMode.res.inst_16_a_0 Bool) (ControlMode.res.inst_15_a_0 Bool) (ControlMode.res.inst_14_a_0 Bool) (ControlMode.res.inst_13_a_0 Bool) (ControlMode.res.inst_12_a_0 Bool) (ControlMode.res.inst_11_a_0 Bool) (ControlMode.res.inst_10_a_0 Bool) (ControlMode.res.inst_9_a_0 Bool) (ControlMode.res.inst_8_a_0 Bool) (ControlMode.res.inst_7_a_0 Bool) (ControlMode.res.inst_6_a_0 Bool) (ControlMode.res.inst_5_a_0 Bool) (ControlMode.res.inst_4_a_0 Bool) (ControlMode.res.inst_3_a_0 Bool) (ControlMode.res.inst_2_a_0 Bool) (ControlMode.res.inst_1_a_0 Bool) (ControlMode.res.inst_0_a_0 Bool)) Bool + (and (= ControlMode.usr.op_mode_a_0 1) (= ControlMode.res.abs_0_a_0 (let ((X1 ControlMode.res.nondet_0)) X1)) (__node_init_critical_failure_0 ControlMode.res.abs_0_a_0 ControlMode.usr.steam_a_0 ControlMode.usr.level_defect_a_0 ControlMode.usr.steam_defect_a_0 ControlMode.usr.pump_defect_0_a_0 ControlMode.usr.pump_defect_1_a_0 ControlMode.usr.pump_defect_2_a_0 ControlMode.usr.pump_defect_3_a_0 ControlMode.usr.q_a_0 ControlMode.usr.pump_state_0_a_0 ControlMode.usr.pump_state_1_a_0 ControlMode.usr.pump_state_2_a_0 ControlMode.usr.pump_state_3_a_0 ControlMode.res.abs_1_a_0 ControlMode.res.inst_46_a_0 ControlMode.res.inst_45_a_0 ControlMode.res.inst_44_a_0 ControlMode.res.inst_43_a_0 ControlMode.res.inst_42_a_0 ControlMode.res.inst_41_a_0 ControlMode.res.inst_40_a_0 ControlMode.res.inst_39_a_0 ControlMode.res.inst_38_a_0 ControlMode.res.inst_37_a_0 ControlMode.res.inst_36_a_0 ControlMode.res.inst_35_a_0 ControlMode.res.inst_34_a_0 ControlMode.res.inst_33_a_0 ControlMode.res.inst_32_a_0 ControlMode.res.inst_31_a_0 ControlMode.res.inst_30_a_0 ControlMode.res.inst_29_a_0 ControlMode.res.inst_28_a_0 ControlMode.res.inst_27_a_0 ControlMode.res.inst_26_a_0) (__node_init_level_failure_0 ControlMode.usr.level_defect_a_0 ControlMode.res.abs_2_a_0 ControlMode.res.inst_25_a_0) (__node_init_failure_0 ControlMode.usr.level_defect_a_0 ControlMode.usr.steam_defect_a_0 ControlMode.usr.pump_defect_0_a_0 ControlMode.usr.pump_defect_1_a_0 ControlMode.usr.pump_defect_2_a_0 ControlMode.usr.pump_defect_3_a_0 ControlMode.usr.pump_control_defect_0_a_0 ControlMode.usr.pump_control_defect_1_a_0 ControlMode.usr.pump_control_defect_2_a_0 ControlMode.usr.pump_control_defect_3_a_0 ControlMode.res.abs_3_a_0 ControlMode.res.inst_24_a_0 ControlMode.res.inst_23_a_0 ControlMode.res.inst_22_a_0 ControlMode.res.inst_21_a_0 ControlMode.res.inst_20_a_0 ControlMode.res.inst_19_a_0 ControlMode.res.inst_18_a_0 ControlMode.res.inst_17_a_0 ControlMode.res.inst_16_a_0 ControlMode.res.inst_15_a_0 ControlMode.res.inst_14_a_0 ControlMode.res.inst_13_a_0 ControlMode.res.inst_12_a_0 ControlMode.res.inst_11_a_0 ControlMode.res.inst_10_a_0 ControlMode.res.inst_9_a_0 ControlMode.res.inst_8_a_0 ControlMode.res.inst_7_a_0 ControlMode.res.inst_6_a_0 ControlMode.res.inst_5_a_0 ControlMode.res.inst_4_a_0 ControlMode.res.inst_3_a_0 ControlMode.res.inst_2_a_0 ControlMode.res.inst_1_a_0 ControlMode.res.inst_0_a_0) (<= 1 ControlMode.usr.op_mode_a_0 6) ControlMode.res.init_flag_a_0)) +(define-fun __node_trans_ControlMode_0 ((ControlMode.usr.steam_boiler_waiting_a_1 Bool) (ControlMode.usr.physical_units_ready_a_1 Bool) (ControlMode.usr.stop_request_a_1 Bool) (ControlMode.usr.steam_a_1 Int) (ControlMode.usr.level_defect_a_1 Int) (ControlMode.usr.steam_defect_a_1 Int) (ControlMode.usr.pump_defect_0_a_1 Int) (ControlMode.usr.pump_defect_1_a_1 Int) (ControlMode.usr.pump_defect_2_a_1 Int) (ControlMode.usr.pump_defect_3_a_1 Int) (ControlMode.usr.pump_control_defect_0_a_1 Int) (ControlMode.usr.pump_control_defect_1_a_1 Int) (ControlMode.usr.pump_control_defect_2_a_1 Int) (ControlMode.usr.pump_control_defect_3_a_1 Int) (ControlMode.usr.q_a_1 Int) (ControlMode.usr.pump_state_0_a_1 Int) (ControlMode.usr.pump_state_1_a_1 Int) (ControlMode.usr.pump_state_2_a_1 Int) (ControlMode.usr.pump_state_3_a_1 Int) (ControlMode.res.nondet_0 Int) (ControlMode.usr.op_mode_a_1 Int) (ControlMode.res.init_flag_a_1 Bool) (ControlMode.res.abs_0_a_1 Int) (ControlMode.res.abs_1_a_1 Bool) (ControlMode.res.abs_2_a_1 Bool) (ControlMode.res.abs_3_a_1 Bool) (ControlMode.res.inst_46_a_1 Bool) (ControlMode.res.inst_45_a_1 Bool) (ControlMode.res.inst_44_a_1 Bool) (ControlMode.res.inst_43_a_1 Bool) (ControlMode.res.inst_42_a_1 Bool) (ControlMode.res.inst_41_a_1 Bool) (ControlMode.res.inst_40_a_1 Bool) (ControlMode.res.inst_39_a_1 Bool) (ControlMode.res.inst_38_a_1 Bool) (ControlMode.res.inst_37_a_1 Bool) (ControlMode.res.inst_36_a_1 Bool) (ControlMode.res.inst_35_a_1 Bool) (ControlMode.res.inst_34_a_1 Bool) (ControlMode.res.inst_33_a_1 Bool) (ControlMode.res.inst_32_a_1 Bool) (ControlMode.res.inst_31_a_1 Bool) (ControlMode.res.inst_30_a_1 Bool) (ControlMode.res.inst_29_a_1 Bool) (ControlMode.res.inst_28_a_1 Bool) (ControlMode.res.inst_27_a_1 Bool) (ControlMode.res.inst_26_a_1 Bool) (ControlMode.res.inst_25_a_1 Bool) (ControlMode.res.inst_24_a_1 Bool) (ControlMode.res.inst_23_a_1 Bool) (ControlMode.res.inst_22_a_1 Bool) (ControlMode.res.inst_21_a_1 Bool) (ControlMode.res.inst_20_a_1 Bool) (ControlMode.res.inst_19_a_1 Bool) (ControlMode.res.inst_18_a_1 Bool) (ControlMode.res.inst_17_a_1 Bool) (ControlMode.res.inst_16_a_1 Bool) (ControlMode.res.inst_15_a_1 Bool) (ControlMode.res.inst_14_a_1 Bool) (ControlMode.res.inst_13_a_1 Bool) (ControlMode.res.inst_12_a_1 Bool) (ControlMode.res.inst_11_a_1 Bool) (ControlMode.res.inst_10_a_1 Bool) (ControlMode.res.inst_9_a_1 Bool) (ControlMode.res.inst_8_a_1 Bool) (ControlMode.res.inst_7_a_1 Bool) (ControlMode.res.inst_6_a_1 Bool) (ControlMode.res.inst_5_a_1 Bool) (ControlMode.res.inst_4_a_1 Bool) (ControlMode.res.inst_3_a_1 Bool) (ControlMode.res.inst_2_a_1 Bool) (ControlMode.res.inst_1_a_1 Bool) (ControlMode.res.inst_0_a_1 Bool) (ControlMode.usr.steam_boiler_waiting_a_0 Bool) (ControlMode.usr.physical_units_ready_a_0 Bool) (ControlMode.usr.stop_request_a_0 Bool) (ControlMode.usr.steam_a_0 Int) (ControlMode.usr.level_defect_a_0 Int) (ControlMode.usr.steam_defect_a_0 Int) (ControlMode.usr.pump_defect_0_a_0 Int) (ControlMode.usr.pump_defect_1_a_0 Int) (ControlMode.usr.pump_defect_2_a_0 Int) (ControlMode.usr.pump_defect_3_a_0 Int) (ControlMode.usr.pump_control_defect_0_a_0 Int) (ControlMode.usr.pump_control_defect_1_a_0 Int) (ControlMode.usr.pump_control_defect_2_a_0 Int) (ControlMode.usr.pump_control_defect_3_a_0 Int) (ControlMode.usr.q_a_0 Int) (ControlMode.usr.pump_state_0_a_0 Int) (ControlMode.usr.pump_state_1_a_0 Int) (ControlMode.usr.pump_state_2_a_0 Int) (ControlMode.usr.pump_state_3_a_0 Int) (ControlMode.usr.op_mode_a_0 Int) (ControlMode.res.init_flag_a_0 Bool) (ControlMode.res.abs_0_a_0 Int) (ControlMode.res.abs_1_a_0 Bool) (ControlMode.res.abs_2_a_0 Bool) (ControlMode.res.abs_3_a_0 Bool) (ControlMode.res.inst_46_a_0 Bool) (ControlMode.res.inst_45_a_0 Bool) (ControlMode.res.inst_44_a_0 Bool) (ControlMode.res.inst_43_a_0 Bool) (ControlMode.res.inst_42_a_0 Bool) (ControlMode.res.inst_41_a_0 Bool) (ControlMode.res.inst_40_a_0 Bool) (ControlMode.res.inst_39_a_0 Bool) (ControlMode.res.inst_38_a_0 Bool) (ControlMode.res.inst_37_a_0 Bool) (ControlMode.res.inst_36_a_0 Bool) (ControlMode.res.inst_35_a_0 Bool) (ControlMode.res.inst_34_a_0 Bool) (ControlMode.res.inst_33_a_0 Bool) (ControlMode.res.inst_32_a_0 Bool) (ControlMode.res.inst_31_a_0 Bool) (ControlMode.res.inst_30_a_0 Bool) (ControlMode.res.inst_29_a_0 Bool) (ControlMode.res.inst_28_a_0 Bool) (ControlMode.res.inst_27_a_0 Bool) (ControlMode.res.inst_26_a_0 Bool) (ControlMode.res.inst_25_a_0 Bool) (ControlMode.res.inst_24_a_0 Bool) (ControlMode.res.inst_23_a_0 Bool) (ControlMode.res.inst_22_a_0 Bool) (ControlMode.res.inst_21_a_0 Bool) (ControlMode.res.inst_20_a_0 Bool) (ControlMode.res.inst_19_a_0 Bool) (ControlMode.res.inst_18_a_0 Bool) (ControlMode.res.inst_17_a_0 Bool) (ControlMode.res.inst_16_a_0 Bool) (ControlMode.res.inst_15_a_0 Bool) (ControlMode.res.inst_14_a_0 Bool) (ControlMode.res.inst_13_a_0 Bool) (ControlMode.res.inst_12_a_0 Bool) (ControlMode.res.inst_11_a_0 Bool) (ControlMode.res.inst_10_a_0 Bool) (ControlMode.res.inst_9_a_0 Bool) (ControlMode.res.inst_8_a_0 Bool) (ControlMode.res.inst_7_a_0 Bool) (ControlMode.res.inst_6_a_0 Bool) (ControlMode.res.inst_5_a_0 Bool) (ControlMode.res.inst_4_a_0 Bool) (ControlMode.res.inst_3_a_0 Bool) (ControlMode.res.inst_2_a_0 Bool) (ControlMode.res.inst_1_a_0 Bool) (ControlMode.res.inst_0_a_0 Bool)) Bool + (and (= ControlMode.res.abs_0_a_1 ControlMode.usr.op_mode_a_0) (= ControlMode.usr.op_mode_a_1 (ite (or (or ControlMode.res.abs_1_a_1 ControlMode.usr.stop_request_a_1) (= ControlMode.usr.op_mode_a_0 6)) 6 (ite (= ControlMode.usr.op_mode_a_0 1) (ite ControlMode.usr.steam_boiler_waiting_a_1 2 1) (ite (and (= ControlMode.usr.op_mode_a_0 2) (not ControlMode.usr.physical_units_ready_a_1)) 2 (ite ControlMode.res.abs_2_a_1 5 (ite ControlMode.res.abs_3_a_1 4 3)))))) (__node_trans_critical_failure_0 ControlMode.res.abs_0_a_1 ControlMode.usr.steam_a_1 ControlMode.usr.level_defect_a_1 ControlMode.usr.steam_defect_a_1 ControlMode.usr.pump_defect_0_a_1 ControlMode.usr.pump_defect_1_a_1 ControlMode.usr.pump_defect_2_a_1 ControlMode.usr.pump_defect_3_a_1 ControlMode.usr.q_a_1 ControlMode.usr.pump_state_0_a_1 ControlMode.usr.pump_state_1_a_1 ControlMode.usr.pump_state_2_a_1 ControlMode.usr.pump_state_3_a_1 ControlMode.res.abs_1_a_1 ControlMode.res.inst_46_a_1 ControlMode.res.inst_45_a_1 ControlMode.res.inst_44_a_1 ControlMode.res.inst_43_a_1 ControlMode.res.inst_42_a_1 ControlMode.res.inst_41_a_1 ControlMode.res.inst_40_a_1 ControlMode.res.inst_39_a_1 ControlMode.res.inst_38_a_1 ControlMode.res.inst_37_a_1 ControlMode.res.inst_36_a_1 ControlMode.res.inst_35_a_1 ControlMode.res.inst_34_a_1 ControlMode.res.inst_33_a_1 ControlMode.res.inst_32_a_1 ControlMode.res.inst_31_a_1 ControlMode.res.inst_30_a_1 ControlMode.res.inst_29_a_1 ControlMode.res.inst_28_a_1 ControlMode.res.inst_27_a_1 ControlMode.res.inst_26_a_1 ControlMode.res.abs_0_a_0 ControlMode.usr.steam_a_0 ControlMode.usr.level_defect_a_0 ControlMode.usr.steam_defect_a_0 ControlMode.usr.pump_defect_0_a_0 ControlMode.usr.pump_defect_1_a_0 ControlMode.usr.pump_defect_2_a_0 ControlMode.usr.pump_defect_3_a_0 ControlMode.usr.q_a_0 ControlMode.usr.pump_state_0_a_0 ControlMode.usr.pump_state_1_a_0 ControlMode.usr.pump_state_2_a_0 ControlMode.usr.pump_state_3_a_0 ControlMode.res.abs_1_a_0 ControlMode.res.inst_46_a_0 ControlMode.res.inst_45_a_0 ControlMode.res.inst_44_a_0 ControlMode.res.inst_43_a_0 ControlMode.res.inst_42_a_0 ControlMode.res.inst_41_a_0 ControlMode.res.inst_40_a_0 ControlMode.res.inst_39_a_0 ControlMode.res.inst_38_a_0 ControlMode.res.inst_37_a_0 ControlMode.res.inst_36_a_0 ControlMode.res.inst_35_a_0 ControlMode.res.inst_34_a_0 ControlMode.res.inst_33_a_0 ControlMode.res.inst_32_a_0 ControlMode.res.inst_31_a_0 ControlMode.res.inst_30_a_0 ControlMode.res.inst_29_a_0 ControlMode.res.inst_28_a_0 ControlMode.res.inst_27_a_0 ControlMode.res.inst_26_a_0) (__node_trans_level_failure_0 ControlMode.usr.level_defect_a_1 ControlMode.res.abs_2_a_1 ControlMode.res.inst_25_a_1 ControlMode.usr.level_defect_a_0 ControlMode.res.abs_2_a_0 ControlMode.res.inst_25_a_0) (__node_trans_failure_0 ControlMode.usr.level_defect_a_1 ControlMode.usr.steam_defect_a_1 ControlMode.usr.pump_defect_0_a_1 ControlMode.usr.pump_defect_1_a_1 ControlMode.usr.pump_defect_2_a_1 ControlMode.usr.pump_defect_3_a_1 ControlMode.usr.pump_control_defect_0_a_1 ControlMode.usr.pump_control_defect_1_a_1 ControlMode.usr.pump_control_defect_2_a_1 ControlMode.usr.pump_control_defect_3_a_1 ControlMode.res.abs_3_a_1 ControlMode.res.inst_24_a_1 ControlMode.res.inst_23_a_1 ControlMode.res.inst_22_a_1 ControlMode.res.inst_21_a_1 ControlMode.res.inst_20_a_1 ControlMode.res.inst_19_a_1 ControlMode.res.inst_18_a_1 ControlMode.res.inst_17_a_1 ControlMode.res.inst_16_a_1 ControlMode.res.inst_15_a_1 ControlMode.res.inst_14_a_1 ControlMode.res.inst_13_a_1 ControlMode.res.inst_12_a_1 ControlMode.res.inst_11_a_1 ControlMode.res.inst_10_a_1 ControlMode.res.inst_9_a_1 ControlMode.res.inst_8_a_1 ControlMode.res.inst_7_a_1 ControlMode.res.inst_6_a_1 ControlMode.res.inst_5_a_1 ControlMode.res.inst_4_a_1 ControlMode.res.inst_3_a_1 ControlMode.res.inst_2_a_1 ControlMode.res.inst_1_a_1 ControlMode.res.inst_0_a_1 ControlMode.usr.level_defect_a_0 ControlMode.usr.steam_defect_a_0 ControlMode.usr.pump_defect_0_a_0 ControlMode.usr.pump_defect_1_a_0 ControlMode.usr.pump_defect_2_a_0 ControlMode.usr.pump_defect_3_a_0 ControlMode.usr.pump_control_defect_0_a_0 ControlMode.usr.pump_control_defect_1_a_0 ControlMode.usr.pump_control_defect_2_a_0 ControlMode.usr.pump_control_defect_3_a_0 ControlMode.res.abs_3_a_0 ControlMode.res.inst_24_a_0 ControlMode.res.inst_23_a_0 ControlMode.res.inst_22_a_0 ControlMode.res.inst_21_a_0 ControlMode.res.inst_20_a_0 ControlMode.res.inst_19_a_0 ControlMode.res.inst_18_a_0 ControlMode.res.inst_17_a_0 ControlMode.res.inst_16_a_0 ControlMode.res.inst_15_a_0 ControlMode.res.inst_14_a_0 ControlMode.res.inst_13_a_0 ControlMode.res.inst_12_a_0 ControlMode.res.inst_11_a_0 ControlMode.res.inst_10_a_0 ControlMode.res.inst_9_a_0 ControlMode.res.inst_8_a_0 ControlMode.res.inst_7_a_0 ControlMode.res.inst_6_a_0 ControlMode.res.inst_5_a_0 ControlMode.res.inst_4_a_0 ControlMode.res.inst_3_a_0 ControlMode.res.inst_2_a_0 ControlMode.res.inst_1_a_0 ControlMode.res.inst_0_a_0) (<= 1 ControlMode.usr.op_mode_a_1 6) (not ControlMode.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.steam_boiler_waiting_a_0 Bool) (top.usr.physical_units_ready_a_0 Bool) (top.usr.stop_request_a_0 Bool) (top.usr.steam_a_0 Int) (top.usr.level_defect_a_0 Int) (top.usr.steam_defect_a_0 Int) (top.usr.pump_defect_0_a_0 Int) (top.usr.pump_defect_1_a_0 Int) (top.usr.pump_defect_2_a_0 Int) (top.usr.pump_defect_3_a_0 Int) (top.usr.pump_control_defect_0_a_0 Int) (top.usr.pump_control_defect_1_a_0 Int) (top.usr.pump_control_defect_2_a_0 Int) (top.usr.pump_control_defect_3_a_0 Int) (top.usr.q_a_0 Int) (top.usr.pump_state_0_a_0 Int) (top.usr.pump_state_1_a_0 Int) (top.usr.pump_state_2_a_0 Int) (top.usr.pump_state_3_a_0 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.op_mode_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Bool) (top.res.inst_52_a_0 Bool) (top.res.inst_51_a_0 Int) (top.res.inst_50_a_0 Bool) (top.res.inst_49_a_0 Bool) (top.res.inst_48_a_0 Bool) (top.res.inst_47_a_0 Bool) (top.res.inst_46_a_0 Bool) (top.res.inst_45_a_0 Bool) (top.res.inst_44_a_0 Bool) (top.res.inst_43_a_0 Bool) (top.res.inst_42_a_0 Bool) (top.res.inst_41_a_0 Bool) (top.res.inst_40_a_0 Bool) (top.res.inst_39_a_0 Bool) (top.res.inst_38_a_0 Bool) (top.res.inst_37_a_0 Bool) (top.res.inst_36_a_0 Bool) (top.res.inst_35_a_0 Bool) (top.res.inst_34_a_0 Bool) (top.res.inst_33_a_0 Bool) (top.res.inst_32_a_0 Bool) (top.res.inst_31_a_0 Bool) (top.res.inst_30_a_0 Bool) (top.res.inst_29_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.op_mode_a_0 top.res.abs_0_a_0) (let ((X1 (=> (= top.impl.usr.op_mode_a_0 3) (not top.usr.stop_request_a_0)))) (let ((X2 true)) (and (= top.usr.OK_a_0 (and X2 X1)) (__node_init_ControlMode_0 top.usr.steam_boiler_waiting_a_0 top.usr.physical_units_ready_a_0 top.usr.stop_request_a_0 top.usr.steam_a_0 top.usr.level_defect_a_0 top.usr.steam_defect_a_0 top.usr.pump_defect_0_a_0 top.usr.pump_defect_1_a_0 top.usr.pump_defect_2_a_0 top.usr.pump_defect_3_a_0 top.usr.pump_control_defect_0_a_0 top.usr.pump_control_defect_1_a_0 top.usr.pump_control_defect_2_a_0 top.usr.pump_control_defect_3_a_0 top.usr.q_a_0 top.usr.pump_state_0_a_0 top.usr.pump_state_1_a_0 top.usr.pump_state_2_a_0 top.usr.pump_state_3_a_0 top.res.nondet_0 top.res.abs_0_a_0 top.res.inst_52_a_0 top.res.inst_51_a_0 top.res.inst_50_a_0 top.res.inst_49_a_0 top.res.inst_48_a_0 top.res.inst_47_a_0 top.res.inst_46_a_0 top.res.inst_45_a_0 top.res.inst_44_a_0 top.res.inst_43_a_0 top.res.inst_42_a_0 top.res.inst_41_a_0 top.res.inst_40_a_0 top.res.inst_39_a_0 top.res.inst_38_a_0 top.res.inst_37_a_0 top.res.inst_36_a_0 top.res.inst_35_a_0 top.res.inst_34_a_0 top.res.inst_33_a_0 top.res.inst_32_a_0 top.res.inst_31_a_0 top.res.inst_30_a_0 top.res.inst_29_a_0 top.res.inst_28_a_0 top.res.inst_27_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_init_dangerous_level_0 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) (<= 1 top.impl.usr.op_mode_a_0 6) (<= 1 top.res.abs_0_a_0 6) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.steam_boiler_waiting_a_1 Bool) (top.usr.physical_units_ready_a_1 Bool) (top.usr.stop_request_a_1 Bool) (top.usr.steam_a_1 Int) (top.usr.level_defect_a_1 Int) (top.usr.steam_defect_a_1 Int) (top.usr.pump_defect_0_a_1 Int) (top.usr.pump_defect_1_a_1 Int) (top.usr.pump_defect_2_a_1 Int) (top.usr.pump_defect_3_a_1 Int) (top.usr.pump_control_defect_0_a_1 Int) (top.usr.pump_control_defect_1_a_1 Int) (top.usr.pump_control_defect_2_a_1 Int) (top.usr.pump_control_defect_3_a_1 Int) (top.usr.q_a_1 Int) (top.usr.pump_state_0_a_1 Int) (top.usr.pump_state_1_a_1 Int) (top.usr.pump_state_2_a_1 Int) (top.usr.pump_state_3_a_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.op_mode_a_1 Int) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Bool) (top.res.inst_52_a_1 Bool) (top.res.inst_51_a_1 Int) (top.res.inst_50_a_1 Bool) (top.res.inst_49_a_1 Bool) (top.res.inst_48_a_1 Bool) (top.res.inst_47_a_1 Bool) (top.res.inst_46_a_1 Bool) (top.res.inst_45_a_1 Bool) (top.res.inst_44_a_1 Bool) (top.res.inst_43_a_1 Bool) (top.res.inst_42_a_1 Bool) (top.res.inst_41_a_1 Bool) (top.res.inst_40_a_1 Bool) (top.res.inst_39_a_1 Bool) (top.res.inst_38_a_1 Bool) (top.res.inst_37_a_1 Bool) (top.res.inst_36_a_1 Bool) (top.res.inst_35_a_1 Bool) (top.res.inst_34_a_1 Bool) (top.res.inst_33_a_1 Bool) (top.res.inst_32_a_1 Bool) (top.res.inst_31_a_1 Bool) (top.res.inst_30_a_1 Bool) (top.res.inst_29_a_1 Bool) (top.res.inst_28_a_1 Bool) (top.res.inst_27_a_1 Bool) (top.res.inst_26_a_1 Bool) (top.res.inst_25_a_1 Bool) (top.res.inst_24_a_1 Bool) (top.res.inst_23_a_1 Bool) (top.res.inst_22_a_1 Bool) (top.res.inst_21_a_1 Bool) (top.res.inst_20_a_1 Bool) (top.res.inst_19_a_1 Bool) (top.res.inst_18_a_1 Bool) (top.res.inst_17_a_1 Bool) (top.res.inst_16_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Bool) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Bool) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Bool) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.steam_boiler_waiting_a_0 Bool) (top.usr.physical_units_ready_a_0 Bool) (top.usr.stop_request_a_0 Bool) (top.usr.steam_a_0 Int) (top.usr.level_defect_a_0 Int) (top.usr.steam_defect_a_0 Int) (top.usr.pump_defect_0_a_0 Int) (top.usr.pump_defect_1_a_0 Int) (top.usr.pump_defect_2_a_0 Int) (top.usr.pump_defect_3_a_0 Int) (top.usr.pump_control_defect_0_a_0 Int) (top.usr.pump_control_defect_1_a_0 Int) (top.usr.pump_control_defect_2_a_0 Int) (top.usr.pump_control_defect_3_a_0 Int) (top.usr.q_a_0 Int) (top.usr.pump_state_0_a_0 Int) (top.usr.pump_state_1_a_0 Int) (top.usr.pump_state_2_a_0 Int) (top.usr.pump_state_3_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.op_mode_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Bool) (top.res.inst_52_a_0 Bool) (top.res.inst_51_a_0 Int) (top.res.inst_50_a_0 Bool) (top.res.inst_49_a_0 Bool) (top.res.inst_48_a_0 Bool) (top.res.inst_47_a_0 Bool) (top.res.inst_46_a_0 Bool) (top.res.inst_45_a_0 Bool) (top.res.inst_44_a_0 Bool) (top.res.inst_43_a_0 Bool) (top.res.inst_42_a_0 Bool) (top.res.inst_41_a_0 Bool) (top.res.inst_40_a_0 Bool) (top.res.inst_39_a_0 Bool) (top.res.inst_38_a_0 Bool) (top.res.inst_37_a_0 Bool) (top.res.inst_36_a_0 Bool) (top.res.inst_35_a_0 Bool) (top.res.inst_34_a_0 Bool) (top.res.inst_33_a_0 Bool) (top.res.inst_32_a_0 Bool) (top.res.inst_31_a_0 Bool) (top.res.inst_30_a_0 Bool) (top.res.inst_29_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.op_mode_a_1 top.res.abs_0_a_1) (let ((X1 (=> (= top.impl.usr.op_mode_a_1 3) (not top.usr.stop_request_a_1)))) (let ((X2 (=> (and (= top.impl.usr.op_mode_a_1 3) (= top.impl.usr.op_mode_a_0 3)) (not top.res.abs_1_a_1)))) (and (= top.usr.OK_a_1 (and X2 X1)) (__node_trans_ControlMode_0 top.usr.steam_boiler_waiting_a_1 top.usr.physical_units_ready_a_1 top.usr.stop_request_a_1 top.usr.steam_a_1 top.usr.level_defect_a_1 top.usr.steam_defect_a_1 top.usr.pump_defect_0_a_1 top.usr.pump_defect_1_a_1 top.usr.pump_defect_2_a_1 top.usr.pump_defect_3_a_1 top.usr.pump_control_defect_0_a_1 top.usr.pump_control_defect_1_a_1 top.usr.pump_control_defect_2_a_1 top.usr.pump_control_defect_3_a_1 top.usr.q_a_1 top.usr.pump_state_0_a_1 top.usr.pump_state_1_a_1 top.usr.pump_state_2_a_1 top.usr.pump_state_3_a_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.inst_52_a_1 top.res.inst_51_a_1 top.res.inst_50_a_1 top.res.inst_49_a_1 top.res.inst_48_a_1 top.res.inst_47_a_1 top.res.inst_46_a_1 top.res.inst_45_a_1 top.res.inst_44_a_1 top.res.inst_43_a_1 top.res.inst_42_a_1 top.res.inst_41_a_1 top.res.inst_40_a_1 top.res.inst_39_a_1 top.res.inst_38_a_1 top.res.inst_37_a_1 top.res.inst_36_a_1 top.res.inst_35_a_1 top.res.inst_34_a_1 top.res.inst_33_a_1 top.res.inst_32_a_1 top.res.inst_31_a_1 top.res.inst_30_a_1 top.res.inst_29_a_1 top.res.inst_28_a_1 top.res.inst_27_a_1 top.res.inst_26_a_1 top.res.inst_25_a_1 top.res.inst_24_a_1 top.res.inst_23_a_1 top.res.inst_22_a_1 top.res.inst_21_a_1 top.res.inst_20_a_1 top.res.inst_19_a_1 top.res.inst_18_a_1 top.res.inst_17_a_1 top.res.inst_16_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.usr.steam_boiler_waiting_a_0 top.usr.physical_units_ready_a_0 top.usr.stop_request_a_0 top.usr.steam_a_0 top.usr.level_defect_a_0 top.usr.steam_defect_a_0 top.usr.pump_defect_0_a_0 top.usr.pump_defect_1_a_0 top.usr.pump_defect_2_a_0 top.usr.pump_defect_3_a_0 top.usr.pump_control_defect_0_a_0 top.usr.pump_control_defect_1_a_0 top.usr.pump_control_defect_2_a_0 top.usr.pump_control_defect_3_a_0 top.usr.q_a_0 top.usr.pump_state_0_a_0 top.usr.pump_state_1_a_0 top.usr.pump_state_2_a_0 top.usr.pump_state_3_a_0 top.res.abs_0_a_0 top.res.inst_52_a_0 top.res.inst_51_a_0 top.res.inst_50_a_0 top.res.inst_49_a_0 top.res.inst_48_a_0 top.res.inst_47_a_0 top.res.inst_46_a_0 top.res.inst_45_a_0 top.res.inst_44_a_0 top.res.inst_43_a_0 top.res.inst_42_a_0 top.res.inst_41_a_0 top.res.inst_40_a_0 top.res.inst_39_a_0 top.res.inst_38_a_0 top.res.inst_37_a_0 top.res.inst_36_a_0 top.res.inst_35_a_0 top.res.inst_34_a_0 top.res.inst_33_a_0 top.res.inst_32_a_0 top.res.inst_31_a_0 top.res.inst_30_a_0 top.res.inst_29_a_0 top.res.inst_28_a_0 top.res.inst_27_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_trans_dangerous_level_0 top.usr.q_a_1 top.res.abs_1_a_1 top.res.inst_0_a_1 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) (<= 1 top.impl.usr.op_mode_a_1 6) (<= 1 top.res.abs_0_a_1 6) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.steam_boiler_waiting Bool) (top.usr.physical_units_ready Bool) (top.usr.stop_request Bool) (top.usr.steam Int) (top.usr.level_defect Int) (top.usr.steam_defect Int) (top.usr.pump_defect_0 Int) (top.usr.pump_defect_1 Int) (top.usr.pump_defect_2 Int) (top.usr.pump_defect_3 Int) (top.usr.pump_control_defect_0 Int) (top.usr.pump_control_defect_1 Int) (top.usr.pump_control_defect_2 Int) (top.usr.pump_control_defect_3 Int) (top.usr.q Int) (top.usr.pump_state_0 Int) (top.usr.pump_state_1 Int) (top.usr.pump_state_2 Int) (top.usr.pump_state_3 Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.op_mode Int) (top.res.abs_0 Int) (top.res.abs_1 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Int) (top.res.inst_50 Bool) (top.res.inst_49 Bool) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.steam_boiler_waiting Bool) (top.usr.physical_units_ready Bool) (top.usr.stop_request Bool) (top.usr.steam Int) (top.usr.level_defect Int) (top.usr.steam_defect Int) (top.usr.pump_defect_0 Int) (top.usr.pump_defect_1 Int) (top.usr.pump_defect_2 Int) (top.usr.pump_defect_3 Int) (top.usr.pump_control_defect_0 Int) (top.usr.pump_control_defect_1 Int) (top.usr.pump_control_defect_2 Int) (top.usr.pump_control_defect_3 Int) (top.usr.q Int) (top.usr.pump_state_0 Int) (top.usr.pump_state_1 Int) (top.usr.pump_state_2 Int) (top.usr.pump_state_3 Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.op_mode Int) (top.res.abs_0 Int) (top.res.abs_1 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Int) (top.res.inst_50 Bool) (top.res.inst_49 Bool) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.op_mode top.res.abs_0) (let ((X1 (=> (= top.impl.usr.op_mode 3) (not top.usr.stop_request)))) (let ((X2 true)) (and (= top.usr.OK (and X2 X1)) (__node_init_ControlMode_0 top.usr.steam_boiler_waiting top.usr.physical_units_ready top.usr.stop_request top.usr.steam top.usr.level_defect top.usr.steam_defect top.usr.pump_defect_0 top.usr.pump_defect_1 top.usr.pump_defect_2 top.usr.pump_defect_3 top.usr.pump_control_defect_0 top.usr.pump_control_defect_1 top.usr.pump_control_defect_2 top.usr.pump_control_defect_3 top.usr.q top.usr.pump_state_0 top.usr.pump_state_1 top.usr.pump_state_2 top.usr.pump_state_3 top.res.nondet_0 top.res.abs_0 top.res.inst_52 top.res.inst_51 top.res.inst_50 top.res.inst_49 top.res.inst_48 top.res.inst_47 top.res.inst_46 top.res.inst_45 top.res.inst_44 top.res.inst_43 top.res.inst_42 top.res.inst_41 top.res.inst_40 top.res.inst_39 top.res.inst_38 top.res.inst_37 top.res.inst_36 top.res.inst_35 top.res.inst_34 top.res.inst_33 top.res.inst_32 top.res.inst_31 top.res.inst_30 top.res.inst_29 top.res.inst_28 top.res.inst_27 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_init_dangerous_level_0 top.usr.q top.res.abs_1 top.res.inst_0) (<= 1 top.impl.usr.op_mode 6) (<= 1 top.res.abs_0 6) top.res.init_flag))))) +(define-fun trans ((top.usr.steam_boiler_waiting Bool) (top.usr.physical_units_ready Bool) (top.usr.stop_request Bool) (top.usr.steam Int) (top.usr.level_defect Int) (top.usr.steam_defect Int) (top.usr.pump_defect_0 Int) (top.usr.pump_defect_1 Int) (top.usr.pump_defect_2 Int) (top.usr.pump_defect_3 Int) (top.usr.pump_control_defect_0 Int) (top.usr.pump_control_defect_1 Int) (top.usr.pump_control_defect_2 Int) (top.usr.pump_control_defect_3 Int) (top.usr.q Int) (top.usr.pump_state_0 Int) (top.usr.pump_state_1 Int) (top.usr.pump_state_2 Int) (top.usr.pump_state_3 Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.op_mode Int) (top.res.abs_0 Int) (top.res.abs_1 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Int) (top.res.inst_50 Bool) (top.res.inst_49 Bool) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.steam_boiler_waiting! Bool) (top.usr.physical_units_ready! Bool) (top.usr.stop_request! Bool) (top.usr.steam! Int) (top.usr.level_defect! Int) (top.usr.steam_defect! Int) (top.usr.pump_defect_0! Int) (top.usr.pump_defect_1! Int) (top.usr.pump_defect_2! Int) (top.usr.pump_defect_3! Int) (top.usr.pump_control_defect_0! Int) (top.usr.pump_control_defect_1! Int) (top.usr.pump_control_defect_2! Int) (top.usr.pump_control_defect_3! Int) (top.usr.q! Int) (top.usr.pump_state_0! Int) (top.usr.pump_state_1! Int) (top.usr.pump_state_2! Int) (top.usr.pump_state_3! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.op_mode! Int) (top.res.abs_0! Int) (top.res.abs_1! Bool) (top.res.inst_52! Bool) (top.res.inst_51! Int) (top.res.inst_50! Bool) (top.res.inst_49! Bool) (top.res.inst_48! Bool) (top.res.inst_47! Bool) (top.res.inst_46! Bool) (top.res.inst_45! Bool) (top.res.inst_44! Bool) (top.res.inst_43! Bool) (top.res.inst_42! Bool) (top.res.inst_41! Bool) (top.res.inst_40! Bool) (top.res.inst_39! Bool) (top.res.inst_38! Bool) (top.res.inst_37! Bool) (top.res.inst_36! Bool) (top.res.inst_35! Bool) (top.res.inst_34! Bool) (top.res.inst_33! Bool) (top.res.inst_32! Bool) (top.res.inst_31! Bool) (top.res.inst_30! Bool) (top.res.inst_29! Bool) (top.res.inst_28! Bool) (top.res.inst_27! Bool) (top.res.inst_26! Bool) (top.res.inst_25! Bool) (top.res.inst_24! Bool) (top.res.inst_23! Bool) (top.res.inst_22! Bool) (top.res.inst_21! Bool) (top.res.inst_20! Bool) (top.res.inst_19! Bool) (top.res.inst_18! Bool) (top.res.inst_17! Bool) (top.res.inst_16! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Bool) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Bool) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Bool) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.impl.usr.op_mode! top.res.abs_0!) (let ((X1 (=> (= top.impl.usr.op_mode! 3) (not top.usr.stop_request!)))) (let ((X2 (=> (and (= top.impl.usr.op_mode! 3) (= top.impl.usr.op_mode 3)) (not top.res.abs_1!)))) (and (= top.usr.OK! (and X2 X1)) (__node_trans_ControlMode_0 top.usr.steam_boiler_waiting! top.usr.physical_units_ready! top.usr.stop_request! top.usr.steam! top.usr.level_defect! top.usr.steam_defect! top.usr.pump_defect_0! top.usr.pump_defect_1! top.usr.pump_defect_2! top.usr.pump_defect_3! top.usr.pump_control_defect_0! top.usr.pump_control_defect_1! top.usr.pump_control_defect_2! top.usr.pump_control_defect_3! top.usr.q! top.usr.pump_state_0! top.usr.pump_state_1! top.usr.pump_state_2! top.usr.pump_state_3! top.res.nondet_0 top.res.abs_0! top.res.inst_52! top.res.inst_51! top.res.inst_50! top.res.inst_49! top.res.inst_48! top.res.inst_47! top.res.inst_46! top.res.inst_45! top.res.inst_44! top.res.inst_43! top.res.inst_42! top.res.inst_41! top.res.inst_40! top.res.inst_39! top.res.inst_38! top.res.inst_37! top.res.inst_36! top.res.inst_35! top.res.inst_34! top.res.inst_33! top.res.inst_32! top.res.inst_31! top.res.inst_30! top.res.inst_29! top.res.inst_28! top.res.inst_27! top.res.inst_26! top.res.inst_25! top.res.inst_24! top.res.inst_23! top.res.inst_22! top.res.inst_21! top.res.inst_20! top.res.inst_19! top.res.inst_18! top.res.inst_17! top.res.inst_16! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.usr.steam_boiler_waiting top.usr.physical_units_ready top.usr.stop_request top.usr.steam top.usr.level_defect top.usr.steam_defect top.usr.pump_defect_0 top.usr.pump_defect_1 top.usr.pump_defect_2 top.usr.pump_defect_3 top.usr.pump_control_defect_0 top.usr.pump_control_defect_1 top.usr.pump_control_defect_2 top.usr.pump_control_defect_3 top.usr.q top.usr.pump_state_0 top.usr.pump_state_1 top.usr.pump_state_2 top.usr.pump_state_3 top.res.abs_0 top.res.inst_52 top.res.inst_51 top.res.inst_50 top.res.inst_49 top.res.inst_48 top.res.inst_47 top.res.inst_46 top.res.inst_45 top.res.inst_44 top.res.inst_43 top.res.inst_42 top.res.inst_41 top.res.inst_40 top.res.inst_39 top.res.inst_38 top.res.inst_37 top.res.inst_36 top.res.inst_35 top.res.inst_34 top.res.inst_33 top.res.inst_32 top.res.inst_31 top.res.inst_30 top.res.inst_29 top.res.inst_28 top.res.inst_27 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_trans_dangerous_level_0 top.usr.q! top.res.abs_1! top.res.inst_0! top.usr.q top.res.abs_1 top.res.inst_0) (<= 1 top.impl.usr.op_mode! 6) (<= 1 top.res.abs_0! 6) (not top.res.init_flag!))))) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.steam_boiler_waiting Bool) (top.usr.physical_units_ready Bool) (top.usr.stop_request Bool) (top.usr.steam Int) (top.usr.level_defect Int) (top.usr.steam_defect Int) (top.usr.pump_defect_0 Int) (top.usr.pump_defect_1 Int) (top.usr.pump_defect_2 Int) (top.usr.pump_defect_3 Int) (top.usr.pump_control_defect_0 Int) (top.usr.pump_control_defect_1 Int) (top.usr.pump_control_defect_2 Int) (top.usr.pump_control_defect_3 Int) (top.usr.q Int) (top.usr.pump_state_0 Int) (top.usr.pump_state_1 Int) (top.usr.pump_state_2 Int) (top.usr.pump_state_3 Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.op_mode Int) (top.res.abs_0 Int) (top.res.abs_1 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Int) (top.res.inst_50 Bool) (top.res.inst_49 Bool) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/steam_boiler_no_arr2_e1_17214_e5_18600.sl b/benchmarks/LIA/Lustre/steam_boiler_no_arr2_e1_17214_e5_18600.sl index 6777783..f911491 100644 --- a/benchmarks/LIA/Lustre/steam_boiler_no_arr2_e1_17214_e5_18600.sl +++ b/benchmarks/LIA/Lustre/steam_boiler_no_arr2_e1_17214_e5_18600.sl @@ -1,2635 +1,68 @@ (set-logic LIA) -(define-fun - __node_init_dangerous_level_0 ( - (dangerous_level.usr.q_a_0 Int) - (dangerous_level.usr.dangerous_level_a_0 Bool) - (dangerous_level.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - dangerous_level.usr.dangerous_level_a_0 - (or (<= dangerous_level.usr.q_a_0 150) (>= dangerous_level.usr.q_a_0 850))) - dangerous_level.res.init_flag_a_0) -) - -(define-fun - __node_trans_dangerous_level_0 ( - (dangerous_level.usr.q_a_1 Int) - (dangerous_level.usr.dangerous_level_a_1 Bool) - (dangerous_level.res.init_flag_a_1 Bool) - (dangerous_level.usr.q_a_0 Int) - (dangerous_level.usr.dangerous_level_a_0 Bool) - (dangerous_level.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - dangerous_level.usr.dangerous_level_a_1 - (or (<= dangerous_level.usr.q_a_1 150) (>= dangerous_level.usr.q_a_1 850))) - (not dangerous_level.res.init_flag_a_1)) -) - -(define-fun - __node_init_level_failure_0 ( - (level_failure.usr.level_defect_a_0 Int) - (level_failure.usr.level_failure_a_0 Bool) - (level_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - level_failure.usr.level_failure_a_0 - (not (= level_failure.usr.level_defect_a_0 0))) - level_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_level_failure_0 ( - (level_failure.usr.level_defect_a_1 Int) - (level_failure.usr.level_failure_a_1 Bool) - (level_failure.res.init_flag_a_1 Bool) - (level_failure.usr.level_defect_a_0 Int) - (level_failure.usr.level_failure_a_0 Bool) - (level_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - level_failure.usr.level_failure_a_1 - (not (= level_failure.usr.level_defect_a_1 0))) - (not level_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_steam_failure_0 ( - (steam_failure.usr.steam_defect_a_0 Int) - (steam_failure.usr.steam_failure_a_0 Bool) - (steam_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - steam_failure.usr.steam_failure_a_0 - (not (= steam_failure.usr.steam_defect_a_0 0))) - steam_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_steam_failure_0 ( - (steam_failure.usr.steam_defect_a_1 Int) - (steam_failure.usr.steam_failure_a_1 Bool) - (steam_failure.res.init_flag_a_1 Bool) - (steam_failure.usr.steam_defect_a_0 Int) - (steam_failure.usr.steam_failure_a_0 Bool) - (steam_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - steam_failure.usr.steam_failure_a_1 - (not (= steam_failure.usr.steam_defect_a_1 0))) - (not steam_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_OR_0 ( - (OR.usr.a_0_a_0 Bool) - (OR.usr.a_1_a_0 Bool) - (OR.usr.a_2_a_0 Bool) - (OR.usr.a_3_a_0 Bool) - (OR.usr.OR_a_0 Bool) - (OR.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - OR.usr.OR_a_0 - (or (or (or OR.usr.a_0_a_0 OR.usr.a_1_a_0) OR.usr.a_2_a_0) OR.usr.a_3_a_0)) - OR.res.init_flag_a_0) -) - -(define-fun - __node_trans_OR_0 ( - (OR.usr.a_0_a_1 Bool) - (OR.usr.a_1_a_1 Bool) - (OR.usr.a_2_a_1 Bool) - (OR.usr.a_3_a_1 Bool) - (OR.usr.OR_a_1 Bool) - (OR.res.init_flag_a_1 Bool) - (OR.usr.a_0_a_0 Bool) - (OR.usr.a_1_a_0 Bool) - (OR.usr.a_2_a_0 Bool) - (OR.usr.a_3_a_0 Bool) - (OR.usr.OR_a_0 Bool) - (OR.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - OR.usr.OR_a_1 - (or (or (or OR.usr.a_0_a_1 OR.usr.a_1_a_1) OR.usr.a_2_a_1) OR.usr.a_3_a_1)) - (not OR.res.init_flag_a_1)) -) - -(define-fun - __node_init_pump_control_failure_0 ( - (pump_control_failure.usr.pump_defect_a_0 Int) - (pump_control_failure.usr.pump_failure_a_0 Bool) - (pump_control_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - pump_control_failure.usr.pump_failure_a_0 - (not (= pump_control_failure.usr.pump_defect_a_0 0))) - pump_control_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_pump_control_failure_0 ( - (pump_control_failure.usr.pump_defect_a_1 Int) - (pump_control_failure.usr.pump_failure_a_1 Bool) - (pump_control_failure.res.init_flag_a_1 Bool) - (pump_control_failure.usr.pump_defect_a_0 Int) - (pump_control_failure.usr.pump_failure_a_0 Bool) - (pump_control_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - pump_control_failure.usr.pump_failure_a_1 - (not (= pump_control_failure.usr.pump_defect_a_1 0))) - (not pump_control_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_pump_failure_0 ( - (pump_failure.usr.pump_defect_a_0 Int) - (pump_failure.usr.pump_failure_a_0 Bool) - (pump_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - pump_failure.usr.pump_failure_a_0 - (not (= pump_failure.usr.pump_defect_a_0 0))) - pump_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_pump_failure_0 ( - (pump_failure.usr.pump_defect_a_1 Int) - (pump_failure.usr.pump_failure_a_1 Bool) - (pump_failure.res.init_flag_a_1 Bool) - (pump_failure.usr.pump_defect_a_0 Int) - (pump_failure.usr.pump_failure_a_0 Bool) - (pump_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - pump_failure.usr.pump_failure_a_1 - (not (= pump_failure.usr.pump_defect_a_1 0))) - (not pump_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_failure_0 ( - (failure.usr.level_defect_a_0 Int) - (failure.usr.steam_defect_a_0 Int) - (failure.usr.pump_defect_0_a_0 Int) - (failure.usr.pump_defect_1_a_0 Int) - (failure.usr.pump_defect_2_a_0 Int) - (failure.usr.pump_defect_3_a_0 Int) - (failure.usr.pump_control_defect_0_a_0 Int) - (failure.usr.pump_control_defect_1_a_0 Int) - (failure.usr.pump_control_defect_2_a_0 Int) - (failure.usr.pump_control_defect_3_a_0 Int) - (failure.usr.failure_a_0 Bool) - (failure.res.init_flag_a_0 Bool) - (failure.res.abs_0_a_0 Bool) - (failure.res.abs_1_a_0 Bool) - (failure.res.abs_2_a_0 Bool) - (failure.res.abs_3_a_0 Bool) - (failure.res.abs_4_a_0 Bool) - (failure.res.abs_5_a_0 Bool) - (failure.res.abs_6_a_0 Bool) - (failure.res.abs_7_a_0 Bool) - (failure.res.abs_8_a_0 Bool) - (failure.res.abs_9_a_0 Bool) - (failure.res.abs_10_a_0 Bool) - (failure.res.abs_11_a_0 Bool) - (failure.res.inst_11_a_0 Bool) - (failure.res.inst_10_a_0 Bool) - (failure.res.inst_9_a_0 Bool) - (failure.res.inst_8_a_0 Bool) - (failure.res.inst_7_a_0 Bool) - (failure.res.inst_6_a_0 Bool) - (failure.res.inst_5_a_0 Bool) - (failure.res.inst_4_a_0 Bool) - (failure.res.inst_3_a_0 Bool) - (failure.res.inst_2_a_0 Bool) - (failure.res.inst_1_a_0 Bool) - (failure.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - failure.usr.failure_a_0 - (or - (or (or failure.res.abs_0_a_0 failure.res.abs_1_a_0) failure.res.abs_6_a_0) - failure.res.abs_11_a_0)) - (__node_init_level_failure_0 - failure.usr.level_defect_a_0 - failure.res.abs_0_a_0 - failure.res.inst_11_a_0) - (__node_init_steam_failure_0 - failure.usr.steam_defect_a_0 - failure.res.abs_1_a_0 - failure.res.inst_10_a_0) - (__node_init_OR_0 - failure.res.abs_2_a_0 - failure.res.abs_3_a_0 - failure.res.abs_4_a_0 - failure.res.abs_5_a_0 - failure.res.abs_6_a_0 - failure.res.inst_9_a_0) - (__node_init_pump_failure_0 - failure.usr.pump_defect_0_a_0 - failure.res.abs_2_a_0 - failure.res.inst_8_a_0) - (__node_init_pump_failure_0 - failure.usr.pump_defect_1_a_0 - failure.res.abs_3_a_0 - failure.res.inst_7_a_0) - (__node_init_pump_failure_0 - failure.usr.pump_defect_2_a_0 - failure.res.abs_4_a_0 - failure.res.inst_6_a_0) - (__node_init_pump_failure_0 - failure.usr.pump_defect_3_a_0 - failure.res.abs_5_a_0 - failure.res.inst_5_a_0) - (__node_init_OR_0 - failure.res.abs_7_a_0 - failure.res.abs_8_a_0 - failure.res.abs_9_a_0 - failure.res.abs_10_a_0 - failure.res.abs_11_a_0 - failure.res.inst_4_a_0) - (__node_init_pump_control_failure_0 - failure.usr.pump_control_defect_0_a_0 - failure.res.abs_7_a_0 - failure.res.inst_3_a_0) - (__node_init_pump_control_failure_0 - failure.usr.pump_control_defect_1_a_0 - failure.res.abs_8_a_0 - failure.res.inst_2_a_0) - (__node_init_pump_control_failure_0 - failure.usr.pump_control_defect_2_a_0 - failure.res.abs_9_a_0 - failure.res.inst_1_a_0) - (__node_init_pump_control_failure_0 - failure.usr.pump_control_defect_3_a_0 - failure.res.abs_10_a_0 - failure.res.inst_0_a_0) - failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_failure_0 ( - (failure.usr.level_defect_a_1 Int) - (failure.usr.steam_defect_a_1 Int) - (failure.usr.pump_defect_0_a_1 Int) - (failure.usr.pump_defect_1_a_1 Int) - (failure.usr.pump_defect_2_a_1 Int) - (failure.usr.pump_defect_3_a_1 Int) - (failure.usr.pump_control_defect_0_a_1 Int) - (failure.usr.pump_control_defect_1_a_1 Int) - (failure.usr.pump_control_defect_2_a_1 Int) - (failure.usr.pump_control_defect_3_a_1 Int) - (failure.usr.failure_a_1 Bool) - (failure.res.init_flag_a_1 Bool) - (failure.res.abs_0_a_1 Bool) - (failure.res.abs_1_a_1 Bool) - (failure.res.abs_2_a_1 Bool) - (failure.res.abs_3_a_1 Bool) - (failure.res.abs_4_a_1 Bool) - (failure.res.abs_5_a_1 Bool) - (failure.res.abs_6_a_1 Bool) - (failure.res.abs_7_a_1 Bool) - (failure.res.abs_8_a_1 Bool) - (failure.res.abs_9_a_1 Bool) - (failure.res.abs_10_a_1 Bool) - (failure.res.abs_11_a_1 Bool) - (failure.res.inst_11_a_1 Bool) - (failure.res.inst_10_a_1 Bool) - (failure.res.inst_9_a_1 Bool) - (failure.res.inst_8_a_1 Bool) - (failure.res.inst_7_a_1 Bool) - (failure.res.inst_6_a_1 Bool) - (failure.res.inst_5_a_1 Bool) - (failure.res.inst_4_a_1 Bool) - (failure.res.inst_3_a_1 Bool) - (failure.res.inst_2_a_1 Bool) - (failure.res.inst_1_a_1 Bool) - (failure.res.inst_0_a_1 Bool) - (failure.usr.level_defect_a_0 Int) - (failure.usr.steam_defect_a_0 Int) - (failure.usr.pump_defect_0_a_0 Int) - (failure.usr.pump_defect_1_a_0 Int) - (failure.usr.pump_defect_2_a_0 Int) - (failure.usr.pump_defect_3_a_0 Int) - (failure.usr.pump_control_defect_0_a_0 Int) - (failure.usr.pump_control_defect_1_a_0 Int) - (failure.usr.pump_control_defect_2_a_0 Int) - (failure.usr.pump_control_defect_3_a_0 Int) - (failure.usr.failure_a_0 Bool) - (failure.res.init_flag_a_0 Bool) - (failure.res.abs_0_a_0 Bool) - (failure.res.abs_1_a_0 Bool) - (failure.res.abs_2_a_0 Bool) - (failure.res.abs_3_a_0 Bool) - (failure.res.abs_4_a_0 Bool) - (failure.res.abs_5_a_0 Bool) - (failure.res.abs_6_a_0 Bool) - (failure.res.abs_7_a_0 Bool) - (failure.res.abs_8_a_0 Bool) - (failure.res.abs_9_a_0 Bool) - (failure.res.abs_10_a_0 Bool) - (failure.res.abs_11_a_0 Bool) - (failure.res.inst_11_a_0 Bool) - (failure.res.inst_10_a_0 Bool) - (failure.res.inst_9_a_0 Bool) - (failure.res.inst_8_a_0 Bool) - (failure.res.inst_7_a_0 Bool) - (failure.res.inst_6_a_0 Bool) - (failure.res.inst_5_a_0 Bool) - (failure.res.inst_4_a_0 Bool) - (failure.res.inst_3_a_0 Bool) - (failure.res.inst_2_a_0 Bool) - (failure.res.inst_1_a_0 Bool) - (failure.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - failure.usr.failure_a_1 - (or - (or (or failure.res.abs_0_a_1 failure.res.abs_1_a_1) failure.res.abs_6_a_1) - failure.res.abs_11_a_1)) - (__node_trans_level_failure_0 - failure.usr.level_defect_a_1 - failure.res.abs_0_a_1 - failure.res.inst_11_a_1 - failure.usr.level_defect_a_0 - failure.res.abs_0_a_0 - failure.res.inst_11_a_0) - (__node_trans_steam_failure_0 - failure.usr.steam_defect_a_1 - failure.res.abs_1_a_1 - failure.res.inst_10_a_1 - failure.usr.steam_defect_a_0 - failure.res.abs_1_a_0 - failure.res.inst_10_a_0) - (__node_trans_OR_0 - failure.res.abs_2_a_1 - failure.res.abs_3_a_1 - failure.res.abs_4_a_1 - failure.res.abs_5_a_1 - failure.res.abs_6_a_1 - failure.res.inst_9_a_1 - failure.res.abs_2_a_0 - failure.res.abs_3_a_0 - failure.res.abs_4_a_0 - failure.res.abs_5_a_0 - failure.res.abs_6_a_0 - failure.res.inst_9_a_0) - (__node_trans_pump_failure_0 - failure.usr.pump_defect_0_a_1 - failure.res.abs_2_a_1 - failure.res.inst_8_a_1 - failure.usr.pump_defect_0_a_0 - failure.res.abs_2_a_0 - failure.res.inst_8_a_0) - (__node_trans_pump_failure_0 - failure.usr.pump_defect_1_a_1 - failure.res.abs_3_a_1 - failure.res.inst_7_a_1 - failure.usr.pump_defect_1_a_0 - failure.res.abs_3_a_0 - failure.res.inst_7_a_0) - (__node_trans_pump_failure_0 - failure.usr.pump_defect_2_a_1 - failure.res.abs_4_a_1 - failure.res.inst_6_a_1 - failure.usr.pump_defect_2_a_0 - failure.res.abs_4_a_0 - failure.res.inst_6_a_0) - (__node_trans_pump_failure_0 - failure.usr.pump_defect_3_a_1 - failure.res.abs_5_a_1 - failure.res.inst_5_a_1 - failure.usr.pump_defect_3_a_0 - failure.res.abs_5_a_0 - failure.res.inst_5_a_0) - (__node_trans_OR_0 - failure.res.abs_7_a_1 - failure.res.abs_8_a_1 - failure.res.abs_9_a_1 - failure.res.abs_10_a_1 - failure.res.abs_11_a_1 - failure.res.inst_4_a_1 - failure.res.abs_7_a_0 - failure.res.abs_8_a_0 - failure.res.abs_9_a_0 - failure.res.abs_10_a_0 - failure.res.abs_11_a_0 - failure.res.inst_4_a_0) - (__node_trans_pump_control_failure_0 - failure.usr.pump_control_defect_0_a_1 - failure.res.abs_7_a_1 - failure.res.inst_3_a_1 - failure.usr.pump_control_defect_0_a_0 - failure.res.abs_7_a_0 - failure.res.inst_3_a_0) - (__node_trans_pump_control_failure_0 - failure.usr.pump_control_defect_1_a_1 - failure.res.abs_8_a_1 - failure.res.inst_2_a_1 - failure.usr.pump_control_defect_1_a_0 - failure.res.abs_8_a_0 - failure.res.inst_2_a_0) - (__node_trans_pump_control_failure_0 - failure.usr.pump_control_defect_2_a_1 - failure.res.abs_9_a_1 - failure.res.inst_1_a_1 - failure.usr.pump_control_defect_2_a_0 - failure.res.abs_9_a_0 - failure.res.inst_1_a_0) - (__node_trans_pump_control_failure_0 - failure.usr.pump_control_defect_3_a_1 - failure.res.abs_10_a_1 - failure.res.inst_0_a_1 - failure.usr.pump_control_defect_3_a_0 - failure.res.abs_10_a_0 - failure.res.inst_0_a_0) - (not failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_steam_failure_startup_0 ( - (steam_failure_startup.usr.steam_a_0 Int) - (steam_failure_startup.usr.steam_failure_startup_a_0 Bool) - (steam_failure_startup.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - steam_failure_startup.usr.steam_failure_startup_a_0 - (not (= steam_failure_startup.usr.steam_a_0 0))) - steam_failure_startup.res.init_flag_a_0) -) - -(define-fun - __node_trans_steam_failure_startup_0 ( - (steam_failure_startup.usr.steam_a_1 Int) - (steam_failure_startup.usr.steam_failure_startup_a_1 Bool) - (steam_failure_startup.res.init_flag_a_1 Bool) - (steam_failure_startup.usr.steam_a_0 Int) - (steam_failure_startup.usr.steam_failure_startup_a_0 Bool) - (steam_failure_startup.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - steam_failure_startup.usr.steam_failure_startup_a_1 - (not (= steam_failure_startup.usr.steam_a_1 0))) - (not steam_failure_startup.res.init_flag_a_1)) -) - -(define-fun - __node_init_AND_0 ( - (AND.usr.a_0_a_0 Bool) - (AND.usr.a_1_a_0 Bool) - (AND.usr.a_2_a_0 Bool) - (AND.usr.a_3_a_0 Bool) - (AND.usr.AND_a_0 Bool) - (AND.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - AND.usr.AND_a_0 - (and (and (and AND.usr.a_0_a_0 AND.usr.a_1_a_0) AND.usr.a_2_a_0) AND.usr.a_3_a_0)) - AND.res.init_flag_a_0) -) - -(define-fun - __node_trans_AND_0 ( - (AND.usr.a_0_a_1 Bool) - (AND.usr.a_1_a_1 Bool) - (AND.usr.a_2_a_1 Bool) - (AND.usr.a_3_a_1 Bool) - (AND.usr.AND_a_1 Bool) - (AND.res.init_flag_a_1 Bool) - (AND.usr.a_0_a_0 Bool) - (AND.usr.a_1_a_0 Bool) - (AND.usr.a_2_a_0 Bool) - (AND.usr.a_3_a_0 Bool) - (AND.usr.AND_a_0 Bool) - (AND.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - AND.usr.AND_a_1 - (and (and (and AND.usr.a_0_a_1 AND.usr.a_1_a_1) AND.usr.a_2_a_1) AND.usr.a_3_a_1)) - (not AND.res.init_flag_a_1)) -) - -(define-fun - __node_init_transmission_failure_0 ( - (transmission_failure.usr.pump_state_0_a_0 Int) - (transmission_failure.usr.pump_state_1_a_0 Int) - (transmission_failure.usr.pump_state_2_a_0 Int) - (transmission_failure.usr.pump_state_3_a_0 Int) - (transmission_failure.usr.transmission_failure_a_0 Bool) - (transmission_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - transmission_failure.usr.transmission_failure_a_0 - (or - (or - (or - (= transmission_failure.usr.pump_state_0_a_0 3) - (= transmission_failure.usr.pump_state_1_a_0 3)) - (= transmission_failure.usr.pump_state_2_a_0 3)) - (= transmission_failure.usr.pump_state_3_a_0 3))) - transmission_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_transmission_failure_0 ( - (transmission_failure.usr.pump_state_0_a_1 Int) - (transmission_failure.usr.pump_state_1_a_1 Int) - (transmission_failure.usr.pump_state_2_a_1 Int) - (transmission_failure.usr.pump_state_3_a_1 Int) - (transmission_failure.usr.transmission_failure_a_1 Bool) - (transmission_failure.res.init_flag_a_1 Bool) - (transmission_failure.usr.pump_state_0_a_0 Int) - (transmission_failure.usr.pump_state_1_a_0 Int) - (transmission_failure.usr.pump_state_2_a_0 Int) - (transmission_failure.usr.pump_state_3_a_0 Int) - (transmission_failure.usr.transmission_failure_a_0 Bool) - (transmission_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - transmission_failure.usr.transmission_failure_a_1 - (or - (or - (or - (= transmission_failure.usr.pump_state_0_a_1 3) - (= transmission_failure.usr.pump_state_1_a_1 3)) - (= transmission_failure.usr.pump_state_2_a_1 3)) - (= transmission_failure.usr.pump_state_3_a_1 3))) - (not transmission_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_critical_failure_0 ( - (critical_failure.usr.op_mode_a_0 Int) - (critical_failure.usr.steam_a_0 Int) - (critical_failure.usr.level_defect_a_0 Int) - (critical_failure.usr.steam_defect_a_0 Int) - (critical_failure.usr.pump_defect_0_a_0 Int) - (critical_failure.usr.pump_defect_1_a_0 Int) - (critical_failure.usr.pump_defect_2_a_0 Int) - (critical_failure.usr.pump_defect_3_a_0 Int) - (critical_failure.usr.q_a_0 Int) - (critical_failure.usr.pump_state_0_a_0 Int) - (critical_failure.usr.pump_state_1_a_0 Int) - (critical_failure.usr.pump_state_2_a_0 Int) - (critical_failure.usr.pump_state_3_a_0 Int) - (critical_failure.usr.critical_failure_a_0 Bool) - (critical_failure.res.init_flag_a_0 Bool) - (critical_failure.res.abs_0_a_0 Bool) - (critical_failure.res.abs_1_a_0 Bool) - (critical_failure.res.abs_2_a_0 Bool) - (critical_failure.res.abs_3_a_0 Bool) - (critical_failure.res.abs_4_a_0 Bool) - (critical_failure.res.abs_5_a_0 Bool) - (critical_failure.res.abs_6_a_0 Bool) - (critical_failure.res.abs_7_a_0 Bool) - (critical_failure.res.abs_8_a_0 Bool) - (critical_failure.res.abs_9_a_0 Bool) - (critical_failure.res.inst_9_a_0 Bool) - (critical_failure.res.inst_8_a_0 Bool) - (critical_failure.res.inst_7_a_0 Bool) - (critical_failure.res.inst_6_a_0 Bool) - (critical_failure.res.inst_5_a_0 Bool) - (critical_failure.res.inst_4_a_0 Bool) - (critical_failure.res.inst_3_a_0 Bool) - (critical_failure.res.inst_2_a_0 Bool) - (critical_failure.res.inst_1_a_0 Bool) - (critical_failure.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - critical_failure.usr.critical_failure_a_0 - (or - (or - (or - (or - (or - critical_failure.res.abs_0_a_0 - (and - (= critical_failure.usr.op_mode_a_0 1) - critical_failure.res.abs_1_a_0)) - (and - (= critical_failure.usr.op_mode_a_0 2) - (or critical_failure.res.abs_2_a_0 critical_failure.res.abs_3_a_0))) - (and - (= critical_failure.usr.op_mode_a_0 3) - critical_failure.res.abs_4_a_0)) - (and (= critical_failure.usr.op_mode_a_0 4) critical_failure.res.abs_4_a_0)) - (and - (= critical_failure.usr.op_mode_a_0 5) - (or - (or critical_failure.res.abs_4_a_0 critical_failure.res.abs_3_a_0) - critical_failure.res.abs_9_a_0)))) - (__node_init_transmission_failure_0 - critical_failure.usr.pump_state_0_a_0 - critical_failure.usr.pump_state_1_a_0 - critical_failure.usr.pump_state_2_a_0 - critical_failure.usr.pump_state_3_a_0 - critical_failure.res.abs_0_a_0 - critical_failure.res.inst_9_a_0) - (__node_init_steam_failure_startup_0 - critical_failure.usr.steam_a_0 - critical_failure.res.abs_1_a_0 - critical_failure.res.inst_8_a_0) - (__node_init_level_failure_0 - critical_failure.usr.level_defect_a_0 - critical_failure.res.abs_2_a_0 - critical_failure.res.inst_7_a_0) - (__node_init_steam_failure_0 - critical_failure.usr.steam_defect_a_0 - critical_failure.res.abs_3_a_0 - critical_failure.res.inst_6_a_0) - (__node_init_dangerous_level_0 - critical_failure.usr.q_a_0 - critical_failure.res.abs_4_a_0 - critical_failure.res.inst_5_a_0) - (__node_init_AND_0 - critical_failure.res.abs_5_a_0 - critical_failure.res.abs_6_a_0 - critical_failure.res.abs_7_a_0 - critical_failure.res.abs_8_a_0 - critical_failure.res.abs_9_a_0 - critical_failure.res.inst_4_a_0) - (__node_init_pump_failure_0 - critical_failure.usr.pump_defect_0_a_0 - critical_failure.res.abs_5_a_0 - critical_failure.res.inst_3_a_0) - (__node_init_pump_failure_0 - critical_failure.usr.pump_defect_1_a_0 - critical_failure.res.abs_6_a_0 - critical_failure.res.inst_2_a_0) - (__node_init_pump_failure_0 - critical_failure.usr.pump_defect_2_a_0 - critical_failure.res.abs_7_a_0 - critical_failure.res.inst_1_a_0) - (__node_init_pump_failure_0 - critical_failure.usr.pump_defect_3_a_0 - critical_failure.res.abs_8_a_0 - critical_failure.res.inst_0_a_0) - critical_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_critical_failure_0 ( - (critical_failure.usr.op_mode_a_1 Int) - (critical_failure.usr.steam_a_1 Int) - (critical_failure.usr.level_defect_a_1 Int) - (critical_failure.usr.steam_defect_a_1 Int) - (critical_failure.usr.pump_defect_0_a_1 Int) - (critical_failure.usr.pump_defect_1_a_1 Int) - (critical_failure.usr.pump_defect_2_a_1 Int) - (critical_failure.usr.pump_defect_3_a_1 Int) - (critical_failure.usr.q_a_1 Int) - (critical_failure.usr.pump_state_0_a_1 Int) - (critical_failure.usr.pump_state_1_a_1 Int) - (critical_failure.usr.pump_state_2_a_1 Int) - (critical_failure.usr.pump_state_3_a_1 Int) - (critical_failure.usr.critical_failure_a_1 Bool) - (critical_failure.res.init_flag_a_1 Bool) - (critical_failure.res.abs_0_a_1 Bool) - (critical_failure.res.abs_1_a_1 Bool) - (critical_failure.res.abs_2_a_1 Bool) - (critical_failure.res.abs_3_a_1 Bool) - (critical_failure.res.abs_4_a_1 Bool) - (critical_failure.res.abs_5_a_1 Bool) - (critical_failure.res.abs_6_a_1 Bool) - (critical_failure.res.abs_7_a_1 Bool) - (critical_failure.res.abs_8_a_1 Bool) - (critical_failure.res.abs_9_a_1 Bool) - (critical_failure.res.inst_9_a_1 Bool) - (critical_failure.res.inst_8_a_1 Bool) - (critical_failure.res.inst_7_a_1 Bool) - (critical_failure.res.inst_6_a_1 Bool) - (critical_failure.res.inst_5_a_1 Bool) - (critical_failure.res.inst_4_a_1 Bool) - (critical_failure.res.inst_3_a_1 Bool) - (critical_failure.res.inst_2_a_1 Bool) - (critical_failure.res.inst_1_a_1 Bool) - (critical_failure.res.inst_0_a_1 Bool) - (critical_failure.usr.op_mode_a_0 Int) - (critical_failure.usr.steam_a_0 Int) - (critical_failure.usr.level_defect_a_0 Int) - (critical_failure.usr.steam_defect_a_0 Int) - (critical_failure.usr.pump_defect_0_a_0 Int) - (critical_failure.usr.pump_defect_1_a_0 Int) - (critical_failure.usr.pump_defect_2_a_0 Int) - (critical_failure.usr.pump_defect_3_a_0 Int) - (critical_failure.usr.q_a_0 Int) - (critical_failure.usr.pump_state_0_a_0 Int) - (critical_failure.usr.pump_state_1_a_0 Int) - (critical_failure.usr.pump_state_2_a_0 Int) - (critical_failure.usr.pump_state_3_a_0 Int) - (critical_failure.usr.critical_failure_a_0 Bool) - (critical_failure.res.init_flag_a_0 Bool) - (critical_failure.res.abs_0_a_0 Bool) - (critical_failure.res.abs_1_a_0 Bool) - (critical_failure.res.abs_2_a_0 Bool) - (critical_failure.res.abs_3_a_0 Bool) - (critical_failure.res.abs_4_a_0 Bool) - (critical_failure.res.abs_5_a_0 Bool) - (critical_failure.res.abs_6_a_0 Bool) - (critical_failure.res.abs_7_a_0 Bool) - (critical_failure.res.abs_8_a_0 Bool) - (critical_failure.res.abs_9_a_0 Bool) - (critical_failure.res.inst_9_a_0 Bool) - (critical_failure.res.inst_8_a_0 Bool) - (critical_failure.res.inst_7_a_0 Bool) - (critical_failure.res.inst_6_a_0 Bool) - (critical_failure.res.inst_5_a_0 Bool) - (critical_failure.res.inst_4_a_0 Bool) - (critical_failure.res.inst_3_a_0 Bool) - (critical_failure.res.inst_2_a_0 Bool) - (critical_failure.res.inst_1_a_0 Bool) - (critical_failure.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - critical_failure.usr.critical_failure_a_1 - (or - (or - (or - (or - (or - critical_failure.res.abs_0_a_1 - (and - (= critical_failure.usr.op_mode_a_1 1) - critical_failure.res.abs_1_a_1)) - (and - (= critical_failure.usr.op_mode_a_1 2) - (or critical_failure.res.abs_2_a_1 critical_failure.res.abs_3_a_1))) - (and - (= critical_failure.usr.op_mode_a_1 3) - critical_failure.res.abs_4_a_1)) - (and (= critical_failure.usr.op_mode_a_1 4) critical_failure.res.abs_4_a_1)) - (and - (= critical_failure.usr.op_mode_a_1 5) - (or - (or critical_failure.res.abs_4_a_1 critical_failure.res.abs_3_a_1) - critical_failure.res.abs_9_a_1)))) - (__node_trans_transmission_failure_0 - critical_failure.usr.pump_state_0_a_1 - critical_failure.usr.pump_state_1_a_1 - critical_failure.usr.pump_state_2_a_1 - critical_failure.usr.pump_state_3_a_1 - critical_failure.res.abs_0_a_1 - critical_failure.res.inst_9_a_1 - critical_failure.usr.pump_state_0_a_0 - critical_failure.usr.pump_state_1_a_0 - critical_failure.usr.pump_state_2_a_0 - critical_failure.usr.pump_state_3_a_0 - critical_failure.res.abs_0_a_0 - critical_failure.res.inst_9_a_0) - (__node_trans_steam_failure_startup_0 - critical_failure.usr.steam_a_1 - critical_failure.res.abs_1_a_1 - critical_failure.res.inst_8_a_1 - critical_failure.usr.steam_a_0 - critical_failure.res.abs_1_a_0 - critical_failure.res.inst_8_a_0) - (__node_trans_level_failure_0 - critical_failure.usr.level_defect_a_1 - critical_failure.res.abs_2_a_1 - critical_failure.res.inst_7_a_1 - critical_failure.usr.level_defect_a_0 - critical_failure.res.abs_2_a_0 - critical_failure.res.inst_7_a_0) - (__node_trans_steam_failure_0 - critical_failure.usr.steam_defect_a_1 - critical_failure.res.abs_3_a_1 - critical_failure.res.inst_6_a_1 - critical_failure.usr.steam_defect_a_0 - critical_failure.res.abs_3_a_0 - critical_failure.res.inst_6_a_0) - (__node_trans_dangerous_level_0 - critical_failure.usr.q_a_1 - critical_failure.res.abs_4_a_1 - critical_failure.res.inst_5_a_1 - critical_failure.usr.q_a_0 - critical_failure.res.abs_4_a_0 - critical_failure.res.inst_5_a_0) - (__node_trans_AND_0 - critical_failure.res.abs_5_a_1 - critical_failure.res.abs_6_a_1 - critical_failure.res.abs_7_a_1 - critical_failure.res.abs_8_a_1 - critical_failure.res.abs_9_a_1 - critical_failure.res.inst_4_a_1 - critical_failure.res.abs_5_a_0 - critical_failure.res.abs_6_a_0 - critical_failure.res.abs_7_a_0 - critical_failure.res.abs_8_a_0 - critical_failure.res.abs_9_a_0 - critical_failure.res.inst_4_a_0) - (__node_trans_pump_failure_0 - critical_failure.usr.pump_defect_0_a_1 - critical_failure.res.abs_5_a_1 - critical_failure.res.inst_3_a_1 - critical_failure.usr.pump_defect_0_a_0 - critical_failure.res.abs_5_a_0 - critical_failure.res.inst_3_a_0) - (__node_trans_pump_failure_0 - critical_failure.usr.pump_defect_1_a_1 - critical_failure.res.abs_6_a_1 - critical_failure.res.inst_2_a_1 - critical_failure.usr.pump_defect_1_a_0 - critical_failure.res.abs_6_a_0 - critical_failure.res.inst_2_a_0) - (__node_trans_pump_failure_0 - critical_failure.usr.pump_defect_2_a_1 - critical_failure.res.abs_7_a_1 - critical_failure.res.inst_1_a_1 - critical_failure.usr.pump_defect_2_a_0 - critical_failure.res.abs_7_a_0 - critical_failure.res.inst_1_a_0) - (__node_trans_pump_failure_0 - critical_failure.usr.pump_defect_3_a_1 - critical_failure.res.abs_8_a_1 - critical_failure.res.inst_0_a_1 - critical_failure.usr.pump_defect_3_a_0 - critical_failure.res.abs_8_a_0 - critical_failure.res.inst_0_a_0) - (not critical_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_ControlMode_0 ( - (ControlMode.usr.steam_boiler_waiting_a_0 Bool) - (ControlMode.usr.physical_units_ready_a_0 Bool) - (ControlMode.usr.stop_request_a_0 Bool) - (ControlMode.usr.steam_a_0 Int) - (ControlMode.usr.level_defect_a_0 Int) - (ControlMode.usr.steam_defect_a_0 Int) - (ControlMode.usr.pump_defect_0_a_0 Int) - (ControlMode.usr.pump_defect_1_a_0 Int) - (ControlMode.usr.pump_defect_2_a_0 Int) - (ControlMode.usr.pump_defect_3_a_0 Int) - (ControlMode.usr.pump_control_defect_0_a_0 Int) - (ControlMode.usr.pump_control_defect_1_a_0 Int) - (ControlMode.usr.pump_control_defect_2_a_0 Int) - (ControlMode.usr.pump_control_defect_3_a_0 Int) - (ControlMode.usr.q_a_0 Int) - (ControlMode.usr.pump_state_0_a_0 Int) - (ControlMode.usr.pump_state_1_a_0 Int) - (ControlMode.usr.pump_state_2_a_0 Int) - (ControlMode.usr.pump_state_3_a_0 Int) - (ControlMode.res.nondet_0 Int) - (ControlMode.usr.op_mode_a_0 Int) - (ControlMode.res.init_flag_a_0 Bool) - (ControlMode.res.abs_0_a_0 Int) - (ControlMode.res.abs_1_a_0 Bool) - (ControlMode.res.abs_2_a_0 Bool) - (ControlMode.res.abs_3_a_0 Bool) - (ControlMode.res.inst_46_a_0 Bool) - (ControlMode.res.inst_45_a_0 Bool) - (ControlMode.res.inst_44_a_0 Bool) - (ControlMode.res.inst_43_a_0 Bool) - (ControlMode.res.inst_42_a_0 Bool) - (ControlMode.res.inst_41_a_0 Bool) - (ControlMode.res.inst_40_a_0 Bool) - (ControlMode.res.inst_39_a_0 Bool) - (ControlMode.res.inst_38_a_0 Bool) - (ControlMode.res.inst_37_a_0 Bool) - (ControlMode.res.inst_36_a_0 Bool) - (ControlMode.res.inst_35_a_0 Bool) - (ControlMode.res.inst_34_a_0 Bool) - (ControlMode.res.inst_33_a_0 Bool) - (ControlMode.res.inst_32_a_0 Bool) - (ControlMode.res.inst_31_a_0 Bool) - (ControlMode.res.inst_30_a_0 Bool) - (ControlMode.res.inst_29_a_0 Bool) - (ControlMode.res.inst_28_a_0 Bool) - (ControlMode.res.inst_27_a_0 Bool) - (ControlMode.res.inst_26_a_0 Bool) - (ControlMode.res.inst_25_a_0 Bool) - (ControlMode.res.inst_24_a_0 Bool) - (ControlMode.res.inst_23_a_0 Bool) - (ControlMode.res.inst_22_a_0 Bool) - (ControlMode.res.inst_21_a_0 Bool) - (ControlMode.res.inst_20_a_0 Bool) - (ControlMode.res.inst_19_a_0 Bool) - (ControlMode.res.inst_18_a_0 Bool) - (ControlMode.res.inst_17_a_0 Bool) - (ControlMode.res.inst_16_a_0 Bool) - (ControlMode.res.inst_15_a_0 Bool) - (ControlMode.res.inst_14_a_0 Bool) - (ControlMode.res.inst_13_a_0 Bool) - (ControlMode.res.inst_12_a_0 Bool) - (ControlMode.res.inst_11_a_0 Bool) - (ControlMode.res.inst_10_a_0 Bool) - (ControlMode.res.inst_9_a_0 Bool) - (ControlMode.res.inst_8_a_0 Bool) - (ControlMode.res.inst_7_a_0 Bool) - (ControlMode.res.inst_6_a_0 Bool) - (ControlMode.res.inst_5_a_0 Bool) - (ControlMode.res.inst_4_a_0 Bool) - (ControlMode.res.inst_3_a_0 Bool) - (ControlMode.res.inst_2_a_0 Bool) - (ControlMode.res.inst_1_a_0 Bool) - (ControlMode.res.inst_0_a_0 Bool) - ) Bool - - (and - (= ControlMode.usr.op_mode_a_0 1) - (= ControlMode.res.abs_0_a_0 (let ((X1 Int ControlMode.res.nondet_0)) X1)) - (__node_init_critical_failure_0 - ControlMode.res.abs_0_a_0 - ControlMode.usr.steam_a_0 - ControlMode.usr.level_defect_a_0 - ControlMode.usr.steam_defect_a_0 - ControlMode.usr.pump_defect_0_a_0 - ControlMode.usr.pump_defect_1_a_0 - ControlMode.usr.pump_defect_2_a_0 - ControlMode.usr.pump_defect_3_a_0 - ControlMode.usr.q_a_0 - ControlMode.usr.pump_state_0_a_0 - ControlMode.usr.pump_state_1_a_0 - ControlMode.usr.pump_state_2_a_0 - ControlMode.usr.pump_state_3_a_0 - ControlMode.res.abs_1_a_0 - ControlMode.res.inst_46_a_0 - ControlMode.res.inst_45_a_0 - ControlMode.res.inst_44_a_0 - ControlMode.res.inst_43_a_0 - ControlMode.res.inst_42_a_0 - ControlMode.res.inst_41_a_0 - ControlMode.res.inst_40_a_0 - ControlMode.res.inst_39_a_0 - ControlMode.res.inst_38_a_0 - ControlMode.res.inst_37_a_0 - ControlMode.res.inst_36_a_0 - ControlMode.res.inst_35_a_0 - ControlMode.res.inst_34_a_0 - ControlMode.res.inst_33_a_0 - ControlMode.res.inst_32_a_0 - ControlMode.res.inst_31_a_0 - ControlMode.res.inst_30_a_0 - ControlMode.res.inst_29_a_0 - ControlMode.res.inst_28_a_0 - ControlMode.res.inst_27_a_0 - ControlMode.res.inst_26_a_0) - (__node_init_level_failure_0 - ControlMode.usr.level_defect_a_0 - ControlMode.res.abs_2_a_0 - ControlMode.res.inst_25_a_0) - (__node_init_failure_0 - ControlMode.usr.level_defect_a_0 - ControlMode.usr.steam_defect_a_0 - ControlMode.usr.pump_defect_0_a_0 - ControlMode.usr.pump_defect_1_a_0 - ControlMode.usr.pump_defect_2_a_0 - ControlMode.usr.pump_defect_3_a_0 - ControlMode.usr.pump_control_defect_0_a_0 - ControlMode.usr.pump_control_defect_1_a_0 - ControlMode.usr.pump_control_defect_2_a_0 - ControlMode.usr.pump_control_defect_3_a_0 - ControlMode.res.abs_3_a_0 - ControlMode.res.inst_24_a_0 - ControlMode.res.inst_23_a_0 - ControlMode.res.inst_22_a_0 - ControlMode.res.inst_21_a_0 - ControlMode.res.inst_20_a_0 - ControlMode.res.inst_19_a_0 - ControlMode.res.inst_18_a_0 - ControlMode.res.inst_17_a_0 - ControlMode.res.inst_16_a_0 - ControlMode.res.inst_15_a_0 - ControlMode.res.inst_14_a_0 - ControlMode.res.inst_13_a_0 - ControlMode.res.inst_12_a_0 - ControlMode.res.inst_11_a_0 - ControlMode.res.inst_10_a_0 - ControlMode.res.inst_9_a_0 - ControlMode.res.inst_8_a_0 - ControlMode.res.inst_7_a_0 - ControlMode.res.inst_6_a_0 - ControlMode.res.inst_5_a_0 - ControlMode.res.inst_4_a_0 - ControlMode.res.inst_3_a_0 - ControlMode.res.inst_2_a_0 - ControlMode.res.inst_1_a_0 - ControlMode.res.inst_0_a_0) - (<= 1 ControlMode.usr.op_mode_a_0 6) - ControlMode.res.init_flag_a_0) -) - -(define-fun - __node_trans_ControlMode_0 ( - (ControlMode.usr.steam_boiler_waiting_a_1 Bool) - (ControlMode.usr.physical_units_ready_a_1 Bool) - (ControlMode.usr.stop_request_a_1 Bool) - (ControlMode.usr.steam_a_1 Int) - (ControlMode.usr.level_defect_a_1 Int) - (ControlMode.usr.steam_defect_a_1 Int) - (ControlMode.usr.pump_defect_0_a_1 Int) - (ControlMode.usr.pump_defect_1_a_1 Int) - (ControlMode.usr.pump_defect_2_a_1 Int) - (ControlMode.usr.pump_defect_3_a_1 Int) - (ControlMode.usr.pump_control_defect_0_a_1 Int) - (ControlMode.usr.pump_control_defect_1_a_1 Int) - (ControlMode.usr.pump_control_defect_2_a_1 Int) - (ControlMode.usr.pump_control_defect_3_a_1 Int) - (ControlMode.usr.q_a_1 Int) - (ControlMode.usr.pump_state_0_a_1 Int) - (ControlMode.usr.pump_state_1_a_1 Int) - (ControlMode.usr.pump_state_2_a_1 Int) - (ControlMode.usr.pump_state_3_a_1 Int) - (ControlMode.res.nondet_0 Int) - (ControlMode.usr.op_mode_a_1 Int) - (ControlMode.res.init_flag_a_1 Bool) - (ControlMode.res.abs_0_a_1 Int) - (ControlMode.res.abs_1_a_1 Bool) - (ControlMode.res.abs_2_a_1 Bool) - (ControlMode.res.abs_3_a_1 Bool) - (ControlMode.res.inst_46_a_1 Bool) - (ControlMode.res.inst_45_a_1 Bool) - (ControlMode.res.inst_44_a_1 Bool) - (ControlMode.res.inst_43_a_1 Bool) - (ControlMode.res.inst_42_a_1 Bool) - (ControlMode.res.inst_41_a_1 Bool) - (ControlMode.res.inst_40_a_1 Bool) - (ControlMode.res.inst_39_a_1 Bool) - (ControlMode.res.inst_38_a_1 Bool) - (ControlMode.res.inst_37_a_1 Bool) - (ControlMode.res.inst_36_a_1 Bool) - (ControlMode.res.inst_35_a_1 Bool) - (ControlMode.res.inst_34_a_1 Bool) - (ControlMode.res.inst_33_a_1 Bool) - (ControlMode.res.inst_32_a_1 Bool) - (ControlMode.res.inst_31_a_1 Bool) - (ControlMode.res.inst_30_a_1 Bool) - (ControlMode.res.inst_29_a_1 Bool) - (ControlMode.res.inst_28_a_1 Bool) - (ControlMode.res.inst_27_a_1 Bool) - (ControlMode.res.inst_26_a_1 Bool) - (ControlMode.res.inst_25_a_1 Bool) - (ControlMode.res.inst_24_a_1 Bool) - (ControlMode.res.inst_23_a_1 Bool) - (ControlMode.res.inst_22_a_1 Bool) - (ControlMode.res.inst_21_a_1 Bool) - (ControlMode.res.inst_20_a_1 Bool) - (ControlMode.res.inst_19_a_1 Bool) - (ControlMode.res.inst_18_a_1 Bool) - (ControlMode.res.inst_17_a_1 Bool) - (ControlMode.res.inst_16_a_1 Bool) - (ControlMode.res.inst_15_a_1 Bool) - (ControlMode.res.inst_14_a_1 Bool) - (ControlMode.res.inst_13_a_1 Bool) - (ControlMode.res.inst_12_a_1 Bool) - (ControlMode.res.inst_11_a_1 Bool) - (ControlMode.res.inst_10_a_1 Bool) - (ControlMode.res.inst_9_a_1 Bool) - (ControlMode.res.inst_8_a_1 Bool) - (ControlMode.res.inst_7_a_1 Bool) - (ControlMode.res.inst_6_a_1 Bool) - (ControlMode.res.inst_5_a_1 Bool) - (ControlMode.res.inst_4_a_1 Bool) - (ControlMode.res.inst_3_a_1 Bool) - (ControlMode.res.inst_2_a_1 Bool) - (ControlMode.res.inst_1_a_1 Bool) - (ControlMode.res.inst_0_a_1 Bool) - (ControlMode.usr.steam_boiler_waiting_a_0 Bool) - (ControlMode.usr.physical_units_ready_a_0 Bool) - (ControlMode.usr.stop_request_a_0 Bool) - (ControlMode.usr.steam_a_0 Int) - (ControlMode.usr.level_defect_a_0 Int) - (ControlMode.usr.steam_defect_a_0 Int) - (ControlMode.usr.pump_defect_0_a_0 Int) - (ControlMode.usr.pump_defect_1_a_0 Int) - (ControlMode.usr.pump_defect_2_a_0 Int) - (ControlMode.usr.pump_defect_3_a_0 Int) - (ControlMode.usr.pump_control_defect_0_a_0 Int) - (ControlMode.usr.pump_control_defect_1_a_0 Int) - (ControlMode.usr.pump_control_defect_2_a_0 Int) - (ControlMode.usr.pump_control_defect_3_a_0 Int) - (ControlMode.usr.q_a_0 Int) - (ControlMode.usr.pump_state_0_a_0 Int) - (ControlMode.usr.pump_state_1_a_0 Int) - (ControlMode.usr.pump_state_2_a_0 Int) - (ControlMode.usr.pump_state_3_a_0 Int) - (ControlMode.usr.op_mode_a_0 Int) - (ControlMode.res.init_flag_a_0 Bool) - (ControlMode.res.abs_0_a_0 Int) - (ControlMode.res.abs_1_a_0 Bool) - (ControlMode.res.abs_2_a_0 Bool) - (ControlMode.res.abs_3_a_0 Bool) - (ControlMode.res.inst_46_a_0 Bool) - (ControlMode.res.inst_45_a_0 Bool) - (ControlMode.res.inst_44_a_0 Bool) - (ControlMode.res.inst_43_a_0 Bool) - (ControlMode.res.inst_42_a_0 Bool) - (ControlMode.res.inst_41_a_0 Bool) - (ControlMode.res.inst_40_a_0 Bool) - (ControlMode.res.inst_39_a_0 Bool) - (ControlMode.res.inst_38_a_0 Bool) - (ControlMode.res.inst_37_a_0 Bool) - (ControlMode.res.inst_36_a_0 Bool) - (ControlMode.res.inst_35_a_0 Bool) - (ControlMode.res.inst_34_a_0 Bool) - (ControlMode.res.inst_33_a_0 Bool) - (ControlMode.res.inst_32_a_0 Bool) - (ControlMode.res.inst_31_a_0 Bool) - (ControlMode.res.inst_30_a_0 Bool) - (ControlMode.res.inst_29_a_0 Bool) - (ControlMode.res.inst_28_a_0 Bool) - (ControlMode.res.inst_27_a_0 Bool) - (ControlMode.res.inst_26_a_0 Bool) - (ControlMode.res.inst_25_a_0 Bool) - (ControlMode.res.inst_24_a_0 Bool) - (ControlMode.res.inst_23_a_0 Bool) - (ControlMode.res.inst_22_a_0 Bool) - (ControlMode.res.inst_21_a_0 Bool) - (ControlMode.res.inst_20_a_0 Bool) - (ControlMode.res.inst_19_a_0 Bool) - (ControlMode.res.inst_18_a_0 Bool) - (ControlMode.res.inst_17_a_0 Bool) - (ControlMode.res.inst_16_a_0 Bool) - (ControlMode.res.inst_15_a_0 Bool) - (ControlMode.res.inst_14_a_0 Bool) - (ControlMode.res.inst_13_a_0 Bool) - (ControlMode.res.inst_12_a_0 Bool) - (ControlMode.res.inst_11_a_0 Bool) - (ControlMode.res.inst_10_a_0 Bool) - (ControlMode.res.inst_9_a_0 Bool) - (ControlMode.res.inst_8_a_0 Bool) - (ControlMode.res.inst_7_a_0 Bool) - (ControlMode.res.inst_6_a_0 Bool) - (ControlMode.res.inst_5_a_0 Bool) - (ControlMode.res.inst_4_a_0 Bool) - (ControlMode.res.inst_3_a_0 Bool) - (ControlMode.res.inst_2_a_0 Bool) - (ControlMode.res.inst_1_a_0 Bool) - (ControlMode.res.inst_0_a_0 Bool) - ) Bool - - (and - (= ControlMode.res.abs_0_a_1 ControlMode.usr.op_mode_a_0) - (= - ControlMode.usr.op_mode_a_1 - (ite - (or - (or ControlMode.res.abs_1_a_1 ControlMode.usr.stop_request_a_1) - (= ControlMode.usr.op_mode_a_0 6)) - 6 - (ite - (= ControlMode.usr.op_mode_a_0 1) - (ite ControlMode.usr.steam_boiler_waiting_a_1 2 1) - (ite - (and - (= ControlMode.usr.op_mode_a_0 2) - (not ControlMode.usr.physical_units_ready_a_1)) - 2 - (ite ControlMode.res.abs_2_a_1 5 (ite ControlMode.res.abs_3_a_1 4 3)))))) - (__node_trans_critical_failure_0 - ControlMode.res.abs_0_a_1 - ControlMode.usr.steam_a_1 - ControlMode.usr.level_defect_a_1 - ControlMode.usr.steam_defect_a_1 - ControlMode.usr.pump_defect_0_a_1 - ControlMode.usr.pump_defect_1_a_1 - ControlMode.usr.pump_defect_2_a_1 - ControlMode.usr.pump_defect_3_a_1 - ControlMode.usr.q_a_1 - ControlMode.usr.pump_state_0_a_1 - ControlMode.usr.pump_state_1_a_1 - ControlMode.usr.pump_state_2_a_1 - ControlMode.usr.pump_state_3_a_1 - ControlMode.res.abs_1_a_1 - ControlMode.res.inst_46_a_1 - ControlMode.res.inst_45_a_1 - ControlMode.res.inst_44_a_1 - ControlMode.res.inst_43_a_1 - ControlMode.res.inst_42_a_1 - ControlMode.res.inst_41_a_1 - ControlMode.res.inst_40_a_1 - ControlMode.res.inst_39_a_1 - ControlMode.res.inst_38_a_1 - ControlMode.res.inst_37_a_1 - ControlMode.res.inst_36_a_1 - ControlMode.res.inst_35_a_1 - ControlMode.res.inst_34_a_1 - ControlMode.res.inst_33_a_1 - ControlMode.res.inst_32_a_1 - ControlMode.res.inst_31_a_1 - ControlMode.res.inst_30_a_1 - ControlMode.res.inst_29_a_1 - ControlMode.res.inst_28_a_1 - ControlMode.res.inst_27_a_1 - ControlMode.res.inst_26_a_1 - ControlMode.res.abs_0_a_0 - ControlMode.usr.steam_a_0 - ControlMode.usr.level_defect_a_0 - ControlMode.usr.steam_defect_a_0 - ControlMode.usr.pump_defect_0_a_0 - ControlMode.usr.pump_defect_1_a_0 - ControlMode.usr.pump_defect_2_a_0 - ControlMode.usr.pump_defect_3_a_0 - ControlMode.usr.q_a_0 - ControlMode.usr.pump_state_0_a_0 - ControlMode.usr.pump_state_1_a_0 - ControlMode.usr.pump_state_2_a_0 - ControlMode.usr.pump_state_3_a_0 - ControlMode.res.abs_1_a_0 - ControlMode.res.inst_46_a_0 - ControlMode.res.inst_45_a_0 - ControlMode.res.inst_44_a_0 - ControlMode.res.inst_43_a_0 - ControlMode.res.inst_42_a_0 - ControlMode.res.inst_41_a_0 - ControlMode.res.inst_40_a_0 - ControlMode.res.inst_39_a_0 - ControlMode.res.inst_38_a_0 - ControlMode.res.inst_37_a_0 - ControlMode.res.inst_36_a_0 - ControlMode.res.inst_35_a_0 - ControlMode.res.inst_34_a_0 - ControlMode.res.inst_33_a_0 - ControlMode.res.inst_32_a_0 - ControlMode.res.inst_31_a_0 - ControlMode.res.inst_30_a_0 - ControlMode.res.inst_29_a_0 - ControlMode.res.inst_28_a_0 - ControlMode.res.inst_27_a_0 - ControlMode.res.inst_26_a_0) - (__node_trans_level_failure_0 - ControlMode.usr.level_defect_a_1 - ControlMode.res.abs_2_a_1 - ControlMode.res.inst_25_a_1 - ControlMode.usr.level_defect_a_0 - ControlMode.res.abs_2_a_0 - ControlMode.res.inst_25_a_0) - (__node_trans_failure_0 - ControlMode.usr.level_defect_a_1 - ControlMode.usr.steam_defect_a_1 - ControlMode.usr.pump_defect_0_a_1 - ControlMode.usr.pump_defect_1_a_1 - ControlMode.usr.pump_defect_2_a_1 - ControlMode.usr.pump_defect_3_a_1 - ControlMode.usr.pump_control_defect_0_a_1 - ControlMode.usr.pump_control_defect_1_a_1 - ControlMode.usr.pump_control_defect_2_a_1 - ControlMode.usr.pump_control_defect_3_a_1 - ControlMode.res.abs_3_a_1 - ControlMode.res.inst_24_a_1 - ControlMode.res.inst_23_a_1 - ControlMode.res.inst_22_a_1 - ControlMode.res.inst_21_a_1 - ControlMode.res.inst_20_a_1 - ControlMode.res.inst_19_a_1 - ControlMode.res.inst_18_a_1 - ControlMode.res.inst_17_a_1 - ControlMode.res.inst_16_a_1 - ControlMode.res.inst_15_a_1 - ControlMode.res.inst_14_a_1 - ControlMode.res.inst_13_a_1 - ControlMode.res.inst_12_a_1 - ControlMode.res.inst_11_a_1 - ControlMode.res.inst_10_a_1 - ControlMode.res.inst_9_a_1 - ControlMode.res.inst_8_a_1 - ControlMode.res.inst_7_a_1 - ControlMode.res.inst_6_a_1 - ControlMode.res.inst_5_a_1 - ControlMode.res.inst_4_a_1 - ControlMode.res.inst_3_a_1 - ControlMode.res.inst_2_a_1 - ControlMode.res.inst_1_a_1 - ControlMode.res.inst_0_a_1 - ControlMode.usr.level_defect_a_0 - ControlMode.usr.steam_defect_a_0 - ControlMode.usr.pump_defect_0_a_0 - ControlMode.usr.pump_defect_1_a_0 - ControlMode.usr.pump_defect_2_a_0 - ControlMode.usr.pump_defect_3_a_0 - ControlMode.usr.pump_control_defect_0_a_0 - ControlMode.usr.pump_control_defect_1_a_0 - ControlMode.usr.pump_control_defect_2_a_0 - ControlMode.usr.pump_control_defect_3_a_0 - ControlMode.res.abs_3_a_0 - ControlMode.res.inst_24_a_0 - ControlMode.res.inst_23_a_0 - ControlMode.res.inst_22_a_0 - ControlMode.res.inst_21_a_0 - ControlMode.res.inst_20_a_0 - ControlMode.res.inst_19_a_0 - ControlMode.res.inst_18_a_0 - ControlMode.res.inst_17_a_0 - ControlMode.res.inst_16_a_0 - ControlMode.res.inst_15_a_0 - ControlMode.res.inst_14_a_0 - ControlMode.res.inst_13_a_0 - ControlMode.res.inst_12_a_0 - ControlMode.res.inst_11_a_0 - ControlMode.res.inst_10_a_0 - ControlMode.res.inst_9_a_0 - ControlMode.res.inst_8_a_0 - ControlMode.res.inst_7_a_0 - ControlMode.res.inst_6_a_0 - ControlMode.res.inst_5_a_0 - ControlMode.res.inst_4_a_0 - ControlMode.res.inst_3_a_0 - ControlMode.res.inst_2_a_0 - ControlMode.res.inst_1_a_0 - ControlMode.res.inst_0_a_0) - (<= 1 ControlMode.usr.op_mode_a_1 6) - (not ControlMode.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.steam_boiler_waiting_a_0 Bool) - (top.usr.physical_units_ready_a_0 Bool) - (top.usr.stop_request_a_0 Bool) - (top.usr.steam_a_0 Int) - (top.usr.level_defect_a_0 Int) - (top.usr.steam_defect_a_0 Int) - (top.usr.pump_defect_0_a_0 Int) - (top.usr.pump_defect_1_a_0 Int) - (top.usr.pump_defect_2_a_0 Int) - (top.usr.pump_defect_3_a_0 Int) - (top.usr.pump_control_defect_0_a_0 Int) - (top.usr.pump_control_defect_1_a_0 Int) - (top.usr.pump_control_defect_2_a_0 Int) - (top.usr.pump_control_defect_3_a_0 Int) - (top.usr.q_a_0 Int) - (top.usr.pump_state_0_a_0 Int) - (top.usr.pump_state_1_a_0 Int) - (top.usr.pump_state_2_a_0 Int) - (top.usr.pump_state_3_a_0 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.op_mode_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Bool) - (top.res.inst_52_a_0 Bool) - (top.res.inst_51_a_0 Int) - (top.res.inst_50_a_0 Bool) - (top.res.inst_49_a_0 Bool) - (top.res.inst_48_a_0 Bool) - (top.res.inst_47_a_0 Bool) - (top.res.inst_46_a_0 Bool) - (top.res.inst_45_a_0 Bool) - (top.res.inst_44_a_0 Bool) - (top.res.inst_43_a_0 Bool) - (top.res.inst_42_a_0 Bool) - (top.res.inst_41_a_0 Bool) - (top.res.inst_40_a_0 Bool) - (top.res.inst_39_a_0 Bool) - (top.res.inst_38_a_0 Bool) - (top.res.inst_37_a_0 Bool) - (top.res.inst_36_a_0 Bool) - (top.res.inst_35_a_0 Bool) - (top.res.inst_34_a_0 Bool) - (top.res.inst_33_a_0 Bool) - (top.res.inst_32_a_0 Bool) - (top.res.inst_31_a_0 Bool) - (top.res.inst_30_a_0 Bool) - (top.res.inst_29_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Bool) - (top.res.inst_23_a_0 Bool) - (top.res.inst_22_a_0 Bool) - (top.res.inst_21_a_0 Bool) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.op_mode_a_0 top.res.abs_0_a_0) - (let - ((X1 Bool (=> (= top.impl.usr.op_mode_a_0 3) (not top.usr.stop_request_a_0)))) - (let - ((X2 Bool true)) - (and - (= top.usr.OK_a_0 (and X2 X1)) - (__node_init_ControlMode_0 - top.usr.steam_boiler_waiting_a_0 - top.usr.physical_units_ready_a_0 - top.usr.stop_request_a_0 - top.usr.steam_a_0 - top.usr.level_defect_a_0 - top.usr.steam_defect_a_0 - top.usr.pump_defect_0_a_0 - top.usr.pump_defect_1_a_0 - top.usr.pump_defect_2_a_0 - top.usr.pump_defect_3_a_0 - top.usr.pump_control_defect_0_a_0 - top.usr.pump_control_defect_1_a_0 - top.usr.pump_control_defect_2_a_0 - top.usr.pump_control_defect_3_a_0 - top.usr.q_a_0 - top.usr.pump_state_0_a_0 - top.usr.pump_state_1_a_0 - top.usr.pump_state_2_a_0 - top.usr.pump_state_3_a_0 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.inst_52_a_0 - top.res.inst_51_a_0 - top.res.inst_50_a_0 - top.res.inst_49_a_0 - top.res.inst_48_a_0 - top.res.inst_47_a_0 - top.res.inst_46_a_0 - top.res.inst_45_a_0 - top.res.inst_44_a_0 - top.res.inst_43_a_0 - top.res.inst_42_a_0 - top.res.inst_41_a_0 - top.res.inst_40_a_0 - top.res.inst_39_a_0 - top.res.inst_38_a_0 - top.res.inst_37_a_0 - top.res.inst_36_a_0 - top.res.inst_35_a_0 - top.res.inst_34_a_0 - top.res.inst_33_a_0 - top.res.inst_32_a_0 - top.res.inst_31_a_0 - top.res.inst_30_a_0 - top.res.inst_29_a_0 - top.res.inst_28_a_0 - top.res.inst_27_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_init_dangerous_level_0 - top.usr.q_a_0 - top.res.abs_1_a_0 - top.res.inst_0_a_0) - (<= 1 top.impl.usr.op_mode_a_0 6) - (<= 1 top.res.abs_0_a_0 6) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.steam_boiler_waiting_a_1 Bool) - (top.usr.physical_units_ready_a_1 Bool) - (top.usr.stop_request_a_1 Bool) - (top.usr.steam_a_1 Int) - (top.usr.level_defect_a_1 Int) - (top.usr.steam_defect_a_1 Int) - (top.usr.pump_defect_0_a_1 Int) - (top.usr.pump_defect_1_a_1 Int) - (top.usr.pump_defect_2_a_1 Int) - (top.usr.pump_defect_3_a_1 Int) - (top.usr.pump_control_defect_0_a_1 Int) - (top.usr.pump_control_defect_1_a_1 Int) - (top.usr.pump_control_defect_2_a_1 Int) - (top.usr.pump_control_defect_3_a_1 Int) - (top.usr.q_a_1 Int) - (top.usr.pump_state_0_a_1 Int) - (top.usr.pump_state_1_a_1 Int) - (top.usr.pump_state_2_a_1 Int) - (top.usr.pump_state_3_a_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.op_mode_a_1 Int) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Bool) - (top.res.inst_52_a_1 Bool) - (top.res.inst_51_a_1 Int) - (top.res.inst_50_a_1 Bool) - (top.res.inst_49_a_1 Bool) - (top.res.inst_48_a_1 Bool) - (top.res.inst_47_a_1 Bool) - (top.res.inst_46_a_1 Bool) - (top.res.inst_45_a_1 Bool) - (top.res.inst_44_a_1 Bool) - (top.res.inst_43_a_1 Bool) - (top.res.inst_42_a_1 Bool) - (top.res.inst_41_a_1 Bool) - (top.res.inst_40_a_1 Bool) - (top.res.inst_39_a_1 Bool) - (top.res.inst_38_a_1 Bool) - (top.res.inst_37_a_1 Bool) - (top.res.inst_36_a_1 Bool) - (top.res.inst_35_a_1 Bool) - (top.res.inst_34_a_1 Bool) - (top.res.inst_33_a_1 Bool) - (top.res.inst_32_a_1 Bool) - (top.res.inst_31_a_1 Bool) - (top.res.inst_30_a_1 Bool) - (top.res.inst_29_a_1 Bool) - (top.res.inst_28_a_1 Bool) - (top.res.inst_27_a_1 Bool) - (top.res.inst_26_a_1 Bool) - (top.res.inst_25_a_1 Bool) - (top.res.inst_24_a_1 Bool) - (top.res.inst_23_a_1 Bool) - (top.res.inst_22_a_1 Bool) - (top.res.inst_21_a_1 Bool) - (top.res.inst_20_a_1 Bool) - (top.res.inst_19_a_1 Bool) - (top.res.inst_18_a_1 Bool) - (top.res.inst_17_a_1 Bool) - (top.res.inst_16_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Bool) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Bool) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Bool) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.steam_boiler_waiting_a_0 Bool) - (top.usr.physical_units_ready_a_0 Bool) - (top.usr.stop_request_a_0 Bool) - (top.usr.steam_a_0 Int) - (top.usr.level_defect_a_0 Int) - (top.usr.steam_defect_a_0 Int) - (top.usr.pump_defect_0_a_0 Int) - (top.usr.pump_defect_1_a_0 Int) - (top.usr.pump_defect_2_a_0 Int) - (top.usr.pump_defect_3_a_0 Int) - (top.usr.pump_control_defect_0_a_0 Int) - (top.usr.pump_control_defect_1_a_0 Int) - (top.usr.pump_control_defect_2_a_0 Int) - (top.usr.pump_control_defect_3_a_0 Int) - (top.usr.q_a_0 Int) - (top.usr.pump_state_0_a_0 Int) - (top.usr.pump_state_1_a_0 Int) - (top.usr.pump_state_2_a_0 Int) - (top.usr.pump_state_3_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.op_mode_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Bool) - (top.res.inst_52_a_0 Bool) - (top.res.inst_51_a_0 Int) - (top.res.inst_50_a_0 Bool) - (top.res.inst_49_a_0 Bool) - (top.res.inst_48_a_0 Bool) - (top.res.inst_47_a_0 Bool) - (top.res.inst_46_a_0 Bool) - (top.res.inst_45_a_0 Bool) - (top.res.inst_44_a_0 Bool) - (top.res.inst_43_a_0 Bool) - (top.res.inst_42_a_0 Bool) - (top.res.inst_41_a_0 Bool) - (top.res.inst_40_a_0 Bool) - (top.res.inst_39_a_0 Bool) - (top.res.inst_38_a_0 Bool) - (top.res.inst_37_a_0 Bool) - (top.res.inst_36_a_0 Bool) - (top.res.inst_35_a_0 Bool) - (top.res.inst_34_a_0 Bool) - (top.res.inst_33_a_0 Bool) - (top.res.inst_32_a_0 Bool) - (top.res.inst_31_a_0 Bool) - (top.res.inst_30_a_0 Bool) - (top.res.inst_29_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Bool) - (top.res.inst_23_a_0 Bool) - (top.res.inst_22_a_0 Bool) - (top.res.inst_21_a_0 Bool) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.op_mode_a_1 top.res.abs_0_a_1) - (let - ((X1 Bool (=> (= top.impl.usr.op_mode_a_1 3) (not top.usr.stop_request_a_1)))) - (let - ((X2 - Bool (=> - (and (= top.impl.usr.op_mode_a_1 3) (= top.impl.usr.op_mode_a_0 3)) - (not top.res.abs_1_a_1)))) - (and - (= top.usr.OK_a_1 (and X2 X1)) - (__node_trans_ControlMode_0 - top.usr.steam_boiler_waiting_a_1 - top.usr.physical_units_ready_a_1 - top.usr.stop_request_a_1 - top.usr.steam_a_1 - top.usr.level_defect_a_1 - top.usr.steam_defect_a_1 - top.usr.pump_defect_0_a_1 - top.usr.pump_defect_1_a_1 - top.usr.pump_defect_2_a_1 - top.usr.pump_defect_3_a_1 - top.usr.pump_control_defect_0_a_1 - top.usr.pump_control_defect_1_a_1 - top.usr.pump_control_defect_2_a_1 - top.usr.pump_control_defect_3_a_1 - top.usr.q_a_1 - top.usr.pump_state_0_a_1 - top.usr.pump_state_1_a_1 - top.usr.pump_state_2_a_1 - top.usr.pump_state_3_a_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.inst_52_a_1 - top.res.inst_51_a_1 - top.res.inst_50_a_1 - top.res.inst_49_a_1 - top.res.inst_48_a_1 - top.res.inst_47_a_1 - top.res.inst_46_a_1 - top.res.inst_45_a_1 - top.res.inst_44_a_1 - top.res.inst_43_a_1 - top.res.inst_42_a_1 - top.res.inst_41_a_1 - top.res.inst_40_a_1 - top.res.inst_39_a_1 - top.res.inst_38_a_1 - top.res.inst_37_a_1 - top.res.inst_36_a_1 - top.res.inst_35_a_1 - top.res.inst_34_a_1 - top.res.inst_33_a_1 - top.res.inst_32_a_1 - top.res.inst_31_a_1 - top.res.inst_30_a_1 - top.res.inst_29_a_1 - top.res.inst_28_a_1 - top.res.inst_27_a_1 - top.res.inst_26_a_1 - top.res.inst_25_a_1 - top.res.inst_24_a_1 - top.res.inst_23_a_1 - top.res.inst_22_a_1 - top.res.inst_21_a_1 - top.res.inst_20_a_1 - top.res.inst_19_a_1 - top.res.inst_18_a_1 - top.res.inst_17_a_1 - top.res.inst_16_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.usr.steam_boiler_waiting_a_0 - top.usr.physical_units_ready_a_0 - top.usr.stop_request_a_0 - top.usr.steam_a_0 - top.usr.level_defect_a_0 - top.usr.steam_defect_a_0 - top.usr.pump_defect_0_a_0 - top.usr.pump_defect_1_a_0 - top.usr.pump_defect_2_a_0 - top.usr.pump_defect_3_a_0 - top.usr.pump_control_defect_0_a_0 - top.usr.pump_control_defect_1_a_0 - top.usr.pump_control_defect_2_a_0 - top.usr.pump_control_defect_3_a_0 - top.usr.q_a_0 - top.usr.pump_state_0_a_0 - top.usr.pump_state_1_a_0 - top.usr.pump_state_2_a_0 - top.usr.pump_state_3_a_0 - top.res.abs_0_a_0 - top.res.inst_52_a_0 - top.res.inst_51_a_0 - top.res.inst_50_a_0 - top.res.inst_49_a_0 - top.res.inst_48_a_0 - top.res.inst_47_a_0 - top.res.inst_46_a_0 - top.res.inst_45_a_0 - top.res.inst_44_a_0 - top.res.inst_43_a_0 - top.res.inst_42_a_0 - top.res.inst_41_a_0 - top.res.inst_40_a_0 - top.res.inst_39_a_0 - top.res.inst_38_a_0 - top.res.inst_37_a_0 - top.res.inst_36_a_0 - top.res.inst_35_a_0 - top.res.inst_34_a_0 - top.res.inst_33_a_0 - top.res.inst_32_a_0 - top.res.inst_31_a_0 - top.res.inst_30_a_0 - top.res.inst_29_a_0 - top.res.inst_28_a_0 - top.res.inst_27_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_trans_dangerous_level_0 - top.usr.q_a_1 - top.res.abs_1_a_1 - top.res.inst_0_a_1 - top.usr.q_a_0 - top.res.abs_1_a_0 - top.res.inst_0_a_0) - (<= 1 top.impl.usr.op_mode_a_1 6) - (<= 1 top.res.abs_0_a_1 6) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.steam_boiler_waiting Bool) - (top.usr.physical_units_ready Bool) - (top.usr.stop_request Bool) - (top.usr.steam Int) - (top.usr.level_defect Int) - (top.usr.steam_defect Int) - (top.usr.pump_defect_0 Int) - (top.usr.pump_defect_1 Int) - (top.usr.pump_defect_2 Int) - (top.usr.pump_defect_3 Int) - (top.usr.pump_control_defect_0 Int) - (top.usr.pump_control_defect_1 Int) - (top.usr.pump_control_defect_2 Int) - (top.usr.pump_control_defect_3 Int) - (top.usr.q Int) - (top.usr.pump_state_0 Int) - (top.usr.pump_state_1 Int) - (top.usr.pump_state_2 Int) - (top.usr.pump_state_3 Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.op_mode Int) - (top.res.abs_0 Int) - (top.res.abs_1 Bool) - (top.res.inst_52 Bool) - (top.res.inst_51 Int) - (top.res.inst_50 Bool) - (top.res.inst_49 Bool) - (top.res.inst_48 Bool) - (top.res.inst_47 Bool) - (top.res.inst_46 Bool) - (top.res.inst_45 Bool) - (top.res.inst_44 Bool) - (top.res.inst_43 Bool) - (top.res.inst_42 Bool) - (top.res.inst_41 Bool) - (top.res.inst_40 Bool) - (top.res.inst_39 Bool) - (top.res.inst_38 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.steam_boiler_waiting Bool) -(declare-primed-var top.usr.physical_units_ready Bool) -(declare-primed-var top.usr.stop_request Bool) -(declare-primed-var top.usr.steam Int) -(declare-primed-var top.usr.level_defect Int) -(declare-primed-var top.usr.steam_defect Int) -(declare-primed-var top.usr.pump_defect_0 Int) -(declare-primed-var top.usr.pump_defect_1 Int) -(declare-primed-var top.usr.pump_defect_2 Int) -(declare-primed-var top.usr.pump_defect_3 Int) -(declare-primed-var top.usr.pump_control_defect_0 Int) -(declare-primed-var top.usr.pump_control_defect_1 Int) -(declare-primed-var top.usr.pump_control_defect_2 Int) -(declare-primed-var top.usr.pump_control_defect_3 Int) -(declare-primed-var top.usr.q Int) -(declare-primed-var top.usr.pump_state_0 Int) -(declare-primed-var top.usr.pump_state_1 Int) -(declare-primed-var top.usr.pump_state_2 Int) -(declare-primed-var top.usr.pump_state_3 Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.op_mode Int) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.inst_52 Bool) -(declare-primed-var top.res.inst_51 Int) -(declare-primed-var top.res.inst_50 Bool) -(declare-primed-var top.res.inst_49 Bool) -(declare-primed-var top.res.inst_48 Bool) -(declare-primed-var top.res.inst_47 Bool) -(declare-primed-var top.res.inst_46 Bool) -(declare-primed-var top.res.inst_45 Bool) -(declare-primed-var top.res.inst_44 Bool) -(declare-primed-var top.res.inst_43 Bool) -(declare-primed-var top.res.inst_42 Bool) -(declare-primed-var top.res.inst_41 Bool) -(declare-primed-var top.res.inst_40 Bool) -(declare-primed-var top.res.inst_39 Bool) -(declare-primed-var top.res.inst_38 Bool) -(declare-primed-var top.res.inst_37 Bool) -(declare-primed-var top.res.inst_36 Bool) -(declare-primed-var top.res.inst_35 Bool) -(declare-primed-var top.res.inst_34 Bool) -(declare-primed-var top.res.inst_33 Bool) -(declare-primed-var top.res.inst_32 Bool) -(declare-primed-var top.res.inst_31 Bool) -(declare-primed-var top.res.inst_30 Bool) -(declare-primed-var top.res.inst_29 Bool) -(declare-primed-var top.res.inst_28 Bool) -(declare-primed-var top.res.inst_27 Bool) -(declare-primed-var top.res.inst_26 Bool) -(declare-primed-var top.res.inst_25 Bool) -(declare-primed-var top.res.inst_24 Bool) -(declare-primed-var top.res.inst_23 Bool) -(declare-primed-var top.res.inst_22 Bool) -(declare-primed-var top.res.inst_21 Bool) -(declare-primed-var top.res.inst_20 Bool) -(declare-primed-var top.res.inst_19 Bool) -(declare-primed-var top.res.inst_18 Bool) -(declare-primed-var top.res.inst_17 Bool) -(declare-primed-var top.res.inst_16 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Bool) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Bool) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Bool) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.steam_boiler_waiting Bool) - (top.usr.physical_units_ready Bool) - (top.usr.stop_request Bool) - (top.usr.steam Int) - (top.usr.level_defect Int) - (top.usr.steam_defect Int) - (top.usr.pump_defect_0 Int) - (top.usr.pump_defect_1 Int) - (top.usr.pump_defect_2 Int) - (top.usr.pump_defect_3 Int) - (top.usr.pump_control_defect_0 Int) - (top.usr.pump_control_defect_1 Int) - (top.usr.pump_control_defect_2 Int) - (top.usr.pump_control_defect_3 Int) - (top.usr.q Int) - (top.usr.pump_state_0 Int) - (top.usr.pump_state_1 Int) - (top.usr.pump_state_2 Int) - (top.usr.pump_state_3 Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.op_mode Int) - (top.res.abs_0 Int) - (top.res.abs_1 Bool) - (top.res.inst_52 Bool) - (top.res.inst_51 Int) - (top.res.inst_50 Bool) - (top.res.inst_49 Bool) - (top.res.inst_48 Bool) - (top.res.inst_47 Bool) - (top.res.inst_46 Bool) - (top.res.inst_45 Bool) - (top.res.inst_44 Bool) - (top.res.inst_43 Bool) - (top.res.inst_42 Bool) - (top.res.inst_41 Bool) - (top.res.inst_40 Bool) - (top.res.inst_39 Bool) - (top.res.inst_38 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.impl.usr.op_mode top.res.abs_0) - (let - ((X1 Bool (=> (= top.impl.usr.op_mode 3) (not top.usr.stop_request)))) - (let - ((X2 Bool true)) - (and - (= top.usr.OK (and X2 X1)) - (__node_init_ControlMode_0 - top.usr.steam_boiler_waiting - top.usr.physical_units_ready - top.usr.stop_request - top.usr.steam - top.usr.level_defect - top.usr.steam_defect - top.usr.pump_defect_0 - top.usr.pump_defect_1 - top.usr.pump_defect_2 - top.usr.pump_defect_3 - top.usr.pump_control_defect_0 - top.usr.pump_control_defect_1 - top.usr.pump_control_defect_2 - top.usr.pump_control_defect_3 - top.usr.q - top.usr.pump_state_0 - top.usr.pump_state_1 - top.usr.pump_state_2 - top.usr.pump_state_3 - top.res.nondet_0 - top.res.abs_0 - top.res.inst_52 - top.res.inst_51 - top.res.inst_50 - top.res.inst_49 - top.res.inst_48 - top.res.inst_47 - top.res.inst_46 - top.res.inst_45 - top.res.inst_44 - top.res.inst_43 - top.res.inst_42 - top.res.inst_41 - top.res.inst_40 - top.res.inst_39 - top.res.inst_38 - top.res.inst_37 - top.res.inst_36 - top.res.inst_35 - top.res.inst_34 - top.res.inst_33 - top.res.inst_32 - top.res.inst_31 - top.res.inst_30 - top.res.inst_29 - top.res.inst_28 - top.res.inst_27 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_init_dangerous_level_0 top.usr.q top.res.abs_1 top.res.inst_0) - (<= 1 top.impl.usr.op_mode 6) - (<= 1 top.res.abs_0 6) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.steam_boiler_waiting Bool) - (top.usr.physical_units_ready Bool) - (top.usr.stop_request Bool) - (top.usr.steam Int) - (top.usr.level_defect Int) - (top.usr.steam_defect Int) - (top.usr.pump_defect_0 Int) - (top.usr.pump_defect_1 Int) - (top.usr.pump_defect_2 Int) - (top.usr.pump_defect_3 Int) - (top.usr.pump_control_defect_0 Int) - (top.usr.pump_control_defect_1 Int) - (top.usr.pump_control_defect_2 Int) - (top.usr.pump_control_defect_3 Int) - (top.usr.q Int) - (top.usr.pump_state_0 Int) - (top.usr.pump_state_1 Int) - (top.usr.pump_state_2 Int) - (top.usr.pump_state_3 Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.op_mode Int) - (top.res.abs_0 Int) - (top.res.abs_1 Bool) - (top.res.inst_52 Bool) - (top.res.inst_51 Int) - (top.res.inst_50 Bool) - (top.res.inst_49 Bool) - (top.res.inst_48 Bool) - (top.res.inst_47 Bool) - (top.res.inst_46 Bool) - (top.res.inst_45 Bool) - (top.res.inst_44 Bool) - (top.res.inst_43 Bool) - (top.res.inst_42 Bool) - (top.res.inst_41 Bool) - (top.res.inst_40 Bool) - (top.res.inst_39 Bool) - (top.res.inst_38 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.steam_boiler_waiting! Bool) - (top.usr.physical_units_ready! Bool) - (top.usr.stop_request! Bool) - (top.usr.steam! Int) - (top.usr.level_defect! Int) - (top.usr.steam_defect! Int) - (top.usr.pump_defect_0! Int) - (top.usr.pump_defect_1! Int) - (top.usr.pump_defect_2! Int) - (top.usr.pump_defect_3! Int) - (top.usr.pump_control_defect_0! Int) - (top.usr.pump_control_defect_1! Int) - (top.usr.pump_control_defect_2! Int) - (top.usr.pump_control_defect_3! Int) - (top.usr.q! Int) - (top.usr.pump_state_0! Int) - (top.usr.pump_state_1! Int) - (top.usr.pump_state_2! Int) - (top.usr.pump_state_3! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.op_mode! Int) - (top.res.abs_0! Int) - (top.res.abs_1! Bool) - (top.res.inst_52! Bool) - (top.res.inst_51! Int) - (top.res.inst_50! Bool) - (top.res.inst_49! Bool) - (top.res.inst_48! Bool) - (top.res.inst_47! Bool) - (top.res.inst_46! Bool) - (top.res.inst_45! Bool) - (top.res.inst_44! Bool) - (top.res.inst_43! Bool) - (top.res.inst_42! Bool) - (top.res.inst_41! Bool) - (top.res.inst_40! Bool) - (top.res.inst_39! Bool) - (top.res.inst_38! Bool) - (top.res.inst_37! Bool) - (top.res.inst_36! Bool) - (top.res.inst_35! Bool) - (top.res.inst_34! Bool) - (top.res.inst_33! Bool) - (top.res.inst_32! Bool) - (top.res.inst_31! Bool) - (top.res.inst_30! Bool) - (top.res.inst_29! Bool) - (top.res.inst_28! Bool) - (top.res.inst_27! Bool) - (top.res.inst_26! Bool) - (top.res.inst_25! Bool) - (top.res.inst_24! Bool) - (top.res.inst_23! Bool) - (top.res.inst_22! Bool) - (top.res.inst_21! Bool) - (top.res.inst_20! Bool) - (top.res.inst_19! Bool) - (top.res.inst_18! Bool) - (top.res.inst_17! Bool) - (top.res.inst_16! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Bool) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Bool) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Bool) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.impl.usr.op_mode! top.res.abs_0!) - (let - ((X1 Bool (=> (= top.impl.usr.op_mode! 3) (not top.usr.stop_request!)))) - (let - ((X2 - Bool (=> - (and (= top.impl.usr.op_mode! 3) (= top.impl.usr.op_mode 3)) - (not top.res.abs_1!)))) - (and - (= top.usr.OK! (and X2 X1)) - (__node_trans_ControlMode_0 - top.usr.steam_boiler_waiting! - top.usr.physical_units_ready! - top.usr.stop_request! - top.usr.steam! - top.usr.level_defect! - top.usr.steam_defect! - top.usr.pump_defect_0! - top.usr.pump_defect_1! - top.usr.pump_defect_2! - top.usr.pump_defect_3! - top.usr.pump_control_defect_0! - top.usr.pump_control_defect_1! - top.usr.pump_control_defect_2! - top.usr.pump_control_defect_3! - top.usr.q! - top.usr.pump_state_0! - top.usr.pump_state_1! - top.usr.pump_state_2! - top.usr.pump_state_3! - top.res.nondet_0 - top.res.abs_0! - top.res.inst_52! - top.res.inst_51! - top.res.inst_50! - top.res.inst_49! - top.res.inst_48! - top.res.inst_47! - top.res.inst_46! - top.res.inst_45! - top.res.inst_44! - top.res.inst_43! - top.res.inst_42! - top.res.inst_41! - top.res.inst_40! - top.res.inst_39! - top.res.inst_38! - top.res.inst_37! - top.res.inst_36! - top.res.inst_35! - top.res.inst_34! - top.res.inst_33! - top.res.inst_32! - top.res.inst_31! - top.res.inst_30! - top.res.inst_29! - top.res.inst_28! - top.res.inst_27! - top.res.inst_26! - top.res.inst_25! - top.res.inst_24! - top.res.inst_23! - top.res.inst_22! - top.res.inst_21! - top.res.inst_20! - top.res.inst_19! - top.res.inst_18! - top.res.inst_17! - top.res.inst_16! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.usr.steam_boiler_waiting - top.usr.physical_units_ready - top.usr.stop_request - top.usr.steam - top.usr.level_defect - top.usr.steam_defect - top.usr.pump_defect_0 - top.usr.pump_defect_1 - top.usr.pump_defect_2 - top.usr.pump_defect_3 - top.usr.pump_control_defect_0 - top.usr.pump_control_defect_1 - top.usr.pump_control_defect_2 - top.usr.pump_control_defect_3 - top.usr.q - top.usr.pump_state_0 - top.usr.pump_state_1 - top.usr.pump_state_2 - top.usr.pump_state_3 - top.res.abs_0 - top.res.inst_52 - top.res.inst_51 - top.res.inst_50 - top.res.inst_49 - top.res.inst_48 - top.res.inst_47 - top.res.inst_46 - top.res.inst_45 - top.res.inst_44 - top.res.inst_43 - top.res.inst_42 - top.res.inst_41 - top.res.inst_40 - top.res.inst_39 - top.res.inst_38 - top.res.inst_37 - top.res.inst_36 - top.res.inst_35 - top.res.inst_34 - top.res.inst_33 - top.res.inst_32 - top.res.inst_31 - top.res.inst_30 - top.res.inst_29 - top.res.inst_28 - top.res.inst_27 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_trans_dangerous_level_0 - top.usr.q! - top.res.abs_1! - top.res.inst_0! - top.usr.q - top.res.abs_1 - top.res.inst_0) - (<= 1 top.impl.usr.op_mode! 6) - (<= 1 top.res.abs_0! 6) - (not top.res.init_flag!))))) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.steam_boiler_waiting Bool) - (top.usr.physical_units_ready Bool) - (top.usr.stop_request Bool) - (top.usr.steam Int) - (top.usr.level_defect Int) - (top.usr.steam_defect Int) - (top.usr.pump_defect_0 Int) - (top.usr.pump_defect_1 Int) - (top.usr.pump_defect_2 Int) - (top.usr.pump_defect_3 Int) - (top.usr.pump_control_defect_0 Int) - (top.usr.pump_control_defect_1 Int) - (top.usr.pump_control_defect_2 Int) - (top.usr.pump_control_defect_3 Int) - (top.usr.q Int) - (top.usr.pump_state_0 Int) - (top.usr.pump_state_1 Int) - (top.usr.pump_state_2 Int) - (top.usr.pump_state_3 Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.op_mode Int) - (top.res.abs_0 Int) - (top.res.abs_1 Bool) - (top.res.inst_52 Bool) - (top.res.inst_51 Int) - (top.res.inst_50 Bool) - (top.res.inst_49 Bool) - (top.res.inst_48 Bool) - (top.res.inst_47 Bool) - (top.res.inst_46 Bool) - (top.res.inst_45 Bool) - (top.res.inst_44 Bool) - (top.res.inst_43 Bool) - (top.res.inst_42 Bool) - (top.res.inst_41 Bool) - (top.res.inst_40 Bool) - (top.res.inst_39 Bool) - (top.res.inst_38 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_dangerous_level_0 ((dangerous_level.usr.q_a_0 Int) (dangerous_level.usr.dangerous_level_a_0 Bool) (dangerous_level.res.init_flag_a_0 Bool)) Bool + (and (= dangerous_level.usr.dangerous_level_a_0 (or (<= dangerous_level.usr.q_a_0 150) (>= dangerous_level.usr.q_a_0 850))) dangerous_level.res.init_flag_a_0)) +(define-fun __node_trans_dangerous_level_0 ((dangerous_level.usr.q_a_1 Int) (dangerous_level.usr.dangerous_level_a_1 Bool) (dangerous_level.res.init_flag_a_1 Bool) (dangerous_level.usr.q_a_0 Int) (dangerous_level.usr.dangerous_level_a_0 Bool) (dangerous_level.res.init_flag_a_0 Bool)) Bool + (and (= dangerous_level.usr.dangerous_level_a_1 (or (<= dangerous_level.usr.q_a_1 150) (>= dangerous_level.usr.q_a_1 850))) (not dangerous_level.res.init_flag_a_1))) +(define-fun __node_init_level_failure_0 ((level_failure.usr.level_defect_a_0 Int) (level_failure.usr.level_failure_a_0 Bool) (level_failure.res.init_flag_a_0 Bool)) Bool + (and (= level_failure.usr.level_failure_a_0 (not (= level_failure.usr.level_defect_a_0 0))) level_failure.res.init_flag_a_0)) +(define-fun __node_trans_level_failure_0 ((level_failure.usr.level_defect_a_1 Int) (level_failure.usr.level_failure_a_1 Bool) (level_failure.res.init_flag_a_1 Bool) (level_failure.usr.level_defect_a_0 Int) (level_failure.usr.level_failure_a_0 Bool) (level_failure.res.init_flag_a_0 Bool)) Bool + (and (= level_failure.usr.level_failure_a_1 (not (= level_failure.usr.level_defect_a_1 0))) (not level_failure.res.init_flag_a_1))) +(define-fun __node_init_steam_failure_0 ((steam_failure.usr.steam_defect_a_0 Int) (steam_failure.usr.steam_failure_a_0 Bool) (steam_failure.res.init_flag_a_0 Bool)) Bool + (and (= steam_failure.usr.steam_failure_a_0 (not (= steam_failure.usr.steam_defect_a_0 0))) steam_failure.res.init_flag_a_0)) +(define-fun __node_trans_steam_failure_0 ((steam_failure.usr.steam_defect_a_1 Int) (steam_failure.usr.steam_failure_a_1 Bool) (steam_failure.res.init_flag_a_1 Bool) (steam_failure.usr.steam_defect_a_0 Int) (steam_failure.usr.steam_failure_a_0 Bool) (steam_failure.res.init_flag_a_0 Bool)) Bool + (and (= steam_failure.usr.steam_failure_a_1 (not (= steam_failure.usr.steam_defect_a_1 0))) (not steam_failure.res.init_flag_a_1))) +(define-fun __node_init_OR_0 ((OR.usr.a_0_a_0 Bool) (OR.usr.a_1_a_0 Bool) (OR.usr.a_2_a_0 Bool) (OR.usr.a_3_a_0 Bool) (OR.usr.OR_a_0 Bool) (OR.res.init_flag_a_0 Bool)) Bool + (and (= OR.usr.OR_a_0 (or (or (or OR.usr.a_0_a_0 OR.usr.a_1_a_0) OR.usr.a_2_a_0) OR.usr.a_3_a_0)) OR.res.init_flag_a_0)) +(define-fun __node_trans_OR_0 ((OR.usr.a_0_a_1 Bool) (OR.usr.a_1_a_1 Bool) (OR.usr.a_2_a_1 Bool) (OR.usr.a_3_a_1 Bool) (OR.usr.OR_a_1 Bool) (OR.res.init_flag_a_1 Bool) (OR.usr.a_0_a_0 Bool) (OR.usr.a_1_a_0 Bool) (OR.usr.a_2_a_0 Bool) (OR.usr.a_3_a_0 Bool) (OR.usr.OR_a_0 Bool) (OR.res.init_flag_a_0 Bool)) Bool + (and (= OR.usr.OR_a_1 (or (or (or OR.usr.a_0_a_1 OR.usr.a_1_a_1) OR.usr.a_2_a_1) OR.usr.a_3_a_1)) (not OR.res.init_flag_a_1))) +(define-fun __node_init_pump_control_failure_0 ((pump_control_failure.usr.pump_defect_a_0 Int) (pump_control_failure.usr.pump_failure_a_0 Bool) (pump_control_failure.res.init_flag_a_0 Bool)) Bool + (and (= pump_control_failure.usr.pump_failure_a_0 (not (= pump_control_failure.usr.pump_defect_a_0 0))) pump_control_failure.res.init_flag_a_0)) +(define-fun __node_trans_pump_control_failure_0 ((pump_control_failure.usr.pump_defect_a_1 Int) (pump_control_failure.usr.pump_failure_a_1 Bool) (pump_control_failure.res.init_flag_a_1 Bool) (pump_control_failure.usr.pump_defect_a_0 Int) (pump_control_failure.usr.pump_failure_a_0 Bool) (pump_control_failure.res.init_flag_a_0 Bool)) Bool + (and (= pump_control_failure.usr.pump_failure_a_1 (not (= pump_control_failure.usr.pump_defect_a_1 0))) (not pump_control_failure.res.init_flag_a_1))) +(define-fun __node_init_pump_failure_0 ((pump_failure.usr.pump_defect_a_0 Int) (pump_failure.usr.pump_failure_a_0 Bool) (pump_failure.res.init_flag_a_0 Bool)) Bool + (and (= pump_failure.usr.pump_failure_a_0 (not (= pump_failure.usr.pump_defect_a_0 0))) pump_failure.res.init_flag_a_0)) +(define-fun __node_trans_pump_failure_0 ((pump_failure.usr.pump_defect_a_1 Int) (pump_failure.usr.pump_failure_a_1 Bool) (pump_failure.res.init_flag_a_1 Bool) (pump_failure.usr.pump_defect_a_0 Int) (pump_failure.usr.pump_failure_a_0 Bool) (pump_failure.res.init_flag_a_0 Bool)) Bool + (and (= pump_failure.usr.pump_failure_a_1 (not (= pump_failure.usr.pump_defect_a_1 0))) (not pump_failure.res.init_flag_a_1))) +(define-fun __node_init_failure_0 ((failure.usr.level_defect_a_0 Int) (failure.usr.steam_defect_a_0 Int) (failure.usr.pump_defect_0_a_0 Int) (failure.usr.pump_defect_1_a_0 Int) (failure.usr.pump_defect_2_a_0 Int) (failure.usr.pump_defect_3_a_0 Int) (failure.usr.pump_control_defect_0_a_0 Int) (failure.usr.pump_control_defect_1_a_0 Int) (failure.usr.pump_control_defect_2_a_0 Int) (failure.usr.pump_control_defect_3_a_0 Int) (failure.usr.failure_a_0 Bool) (failure.res.init_flag_a_0 Bool) (failure.res.abs_0_a_0 Bool) (failure.res.abs_1_a_0 Bool) (failure.res.abs_2_a_0 Bool) (failure.res.abs_3_a_0 Bool) (failure.res.abs_4_a_0 Bool) (failure.res.abs_5_a_0 Bool) (failure.res.abs_6_a_0 Bool) (failure.res.abs_7_a_0 Bool) (failure.res.abs_8_a_0 Bool) (failure.res.abs_9_a_0 Bool) (failure.res.abs_10_a_0 Bool) (failure.res.abs_11_a_0 Bool) (failure.res.inst_11_a_0 Bool) (failure.res.inst_10_a_0 Bool) (failure.res.inst_9_a_0 Bool) (failure.res.inst_8_a_0 Bool) (failure.res.inst_7_a_0 Bool) (failure.res.inst_6_a_0 Bool) (failure.res.inst_5_a_0 Bool) (failure.res.inst_4_a_0 Bool) (failure.res.inst_3_a_0 Bool) (failure.res.inst_2_a_0 Bool) (failure.res.inst_1_a_0 Bool) (failure.res.inst_0_a_0 Bool)) Bool + (and (= failure.usr.failure_a_0 (or (or (or failure.res.abs_0_a_0 failure.res.abs_1_a_0) failure.res.abs_6_a_0) failure.res.abs_11_a_0)) (__node_init_level_failure_0 failure.usr.level_defect_a_0 failure.res.abs_0_a_0 failure.res.inst_11_a_0) (__node_init_steam_failure_0 failure.usr.steam_defect_a_0 failure.res.abs_1_a_0 failure.res.inst_10_a_0) (__node_init_OR_0 failure.res.abs_2_a_0 failure.res.abs_3_a_0 failure.res.abs_4_a_0 failure.res.abs_5_a_0 failure.res.abs_6_a_0 failure.res.inst_9_a_0) (__node_init_pump_failure_0 failure.usr.pump_defect_0_a_0 failure.res.abs_2_a_0 failure.res.inst_8_a_0) (__node_init_pump_failure_0 failure.usr.pump_defect_1_a_0 failure.res.abs_3_a_0 failure.res.inst_7_a_0) (__node_init_pump_failure_0 failure.usr.pump_defect_2_a_0 failure.res.abs_4_a_0 failure.res.inst_6_a_0) (__node_init_pump_failure_0 failure.usr.pump_defect_3_a_0 failure.res.abs_5_a_0 failure.res.inst_5_a_0) (__node_init_OR_0 failure.res.abs_7_a_0 failure.res.abs_8_a_0 failure.res.abs_9_a_0 failure.res.abs_10_a_0 failure.res.abs_11_a_0 failure.res.inst_4_a_0) (__node_init_pump_control_failure_0 failure.usr.pump_control_defect_0_a_0 failure.res.abs_7_a_0 failure.res.inst_3_a_0) (__node_init_pump_control_failure_0 failure.usr.pump_control_defect_1_a_0 failure.res.abs_8_a_0 failure.res.inst_2_a_0) (__node_init_pump_control_failure_0 failure.usr.pump_control_defect_2_a_0 failure.res.abs_9_a_0 failure.res.inst_1_a_0) (__node_init_pump_control_failure_0 failure.usr.pump_control_defect_3_a_0 failure.res.abs_10_a_0 failure.res.inst_0_a_0) failure.res.init_flag_a_0)) +(define-fun __node_trans_failure_0 ((failure.usr.level_defect_a_1 Int) (failure.usr.steam_defect_a_1 Int) (failure.usr.pump_defect_0_a_1 Int) (failure.usr.pump_defect_1_a_1 Int) (failure.usr.pump_defect_2_a_1 Int) (failure.usr.pump_defect_3_a_1 Int) (failure.usr.pump_control_defect_0_a_1 Int) (failure.usr.pump_control_defect_1_a_1 Int) (failure.usr.pump_control_defect_2_a_1 Int) (failure.usr.pump_control_defect_3_a_1 Int) (failure.usr.failure_a_1 Bool) (failure.res.init_flag_a_1 Bool) (failure.res.abs_0_a_1 Bool) (failure.res.abs_1_a_1 Bool) (failure.res.abs_2_a_1 Bool) (failure.res.abs_3_a_1 Bool) (failure.res.abs_4_a_1 Bool) (failure.res.abs_5_a_1 Bool) (failure.res.abs_6_a_1 Bool) (failure.res.abs_7_a_1 Bool) (failure.res.abs_8_a_1 Bool) (failure.res.abs_9_a_1 Bool) (failure.res.abs_10_a_1 Bool) (failure.res.abs_11_a_1 Bool) (failure.res.inst_11_a_1 Bool) (failure.res.inst_10_a_1 Bool) (failure.res.inst_9_a_1 Bool) (failure.res.inst_8_a_1 Bool) (failure.res.inst_7_a_1 Bool) (failure.res.inst_6_a_1 Bool) (failure.res.inst_5_a_1 Bool) (failure.res.inst_4_a_1 Bool) (failure.res.inst_3_a_1 Bool) (failure.res.inst_2_a_1 Bool) (failure.res.inst_1_a_1 Bool) (failure.res.inst_0_a_1 Bool) (failure.usr.level_defect_a_0 Int) (failure.usr.steam_defect_a_0 Int) (failure.usr.pump_defect_0_a_0 Int) (failure.usr.pump_defect_1_a_0 Int) (failure.usr.pump_defect_2_a_0 Int) (failure.usr.pump_defect_3_a_0 Int) (failure.usr.pump_control_defect_0_a_0 Int) (failure.usr.pump_control_defect_1_a_0 Int) (failure.usr.pump_control_defect_2_a_0 Int) (failure.usr.pump_control_defect_3_a_0 Int) (failure.usr.failure_a_0 Bool) (failure.res.init_flag_a_0 Bool) (failure.res.abs_0_a_0 Bool) (failure.res.abs_1_a_0 Bool) (failure.res.abs_2_a_0 Bool) (failure.res.abs_3_a_0 Bool) (failure.res.abs_4_a_0 Bool) (failure.res.abs_5_a_0 Bool) (failure.res.abs_6_a_0 Bool) (failure.res.abs_7_a_0 Bool) (failure.res.abs_8_a_0 Bool) (failure.res.abs_9_a_0 Bool) (failure.res.abs_10_a_0 Bool) (failure.res.abs_11_a_0 Bool) (failure.res.inst_11_a_0 Bool) (failure.res.inst_10_a_0 Bool) (failure.res.inst_9_a_0 Bool) (failure.res.inst_8_a_0 Bool) (failure.res.inst_7_a_0 Bool) (failure.res.inst_6_a_0 Bool) (failure.res.inst_5_a_0 Bool) (failure.res.inst_4_a_0 Bool) (failure.res.inst_3_a_0 Bool) (failure.res.inst_2_a_0 Bool) (failure.res.inst_1_a_0 Bool) (failure.res.inst_0_a_0 Bool)) Bool + (and (= failure.usr.failure_a_1 (or (or (or failure.res.abs_0_a_1 failure.res.abs_1_a_1) failure.res.abs_6_a_1) failure.res.abs_11_a_1)) (__node_trans_level_failure_0 failure.usr.level_defect_a_1 failure.res.abs_0_a_1 failure.res.inst_11_a_1 failure.usr.level_defect_a_0 failure.res.abs_0_a_0 failure.res.inst_11_a_0) (__node_trans_steam_failure_0 failure.usr.steam_defect_a_1 failure.res.abs_1_a_1 failure.res.inst_10_a_1 failure.usr.steam_defect_a_0 failure.res.abs_1_a_0 failure.res.inst_10_a_0) (__node_trans_OR_0 failure.res.abs_2_a_1 failure.res.abs_3_a_1 failure.res.abs_4_a_1 failure.res.abs_5_a_1 failure.res.abs_6_a_1 failure.res.inst_9_a_1 failure.res.abs_2_a_0 failure.res.abs_3_a_0 failure.res.abs_4_a_0 failure.res.abs_5_a_0 failure.res.abs_6_a_0 failure.res.inst_9_a_0) (__node_trans_pump_failure_0 failure.usr.pump_defect_0_a_1 failure.res.abs_2_a_1 failure.res.inst_8_a_1 failure.usr.pump_defect_0_a_0 failure.res.abs_2_a_0 failure.res.inst_8_a_0) (__node_trans_pump_failure_0 failure.usr.pump_defect_1_a_1 failure.res.abs_3_a_1 failure.res.inst_7_a_1 failure.usr.pump_defect_1_a_0 failure.res.abs_3_a_0 failure.res.inst_7_a_0) (__node_trans_pump_failure_0 failure.usr.pump_defect_2_a_1 failure.res.abs_4_a_1 failure.res.inst_6_a_1 failure.usr.pump_defect_2_a_0 failure.res.abs_4_a_0 failure.res.inst_6_a_0) (__node_trans_pump_failure_0 failure.usr.pump_defect_3_a_1 failure.res.abs_5_a_1 failure.res.inst_5_a_1 failure.usr.pump_defect_3_a_0 failure.res.abs_5_a_0 failure.res.inst_5_a_0) (__node_trans_OR_0 failure.res.abs_7_a_1 failure.res.abs_8_a_1 failure.res.abs_9_a_1 failure.res.abs_10_a_1 failure.res.abs_11_a_1 failure.res.inst_4_a_1 failure.res.abs_7_a_0 failure.res.abs_8_a_0 failure.res.abs_9_a_0 failure.res.abs_10_a_0 failure.res.abs_11_a_0 failure.res.inst_4_a_0) (__node_trans_pump_control_failure_0 failure.usr.pump_control_defect_0_a_1 failure.res.abs_7_a_1 failure.res.inst_3_a_1 failure.usr.pump_control_defect_0_a_0 failure.res.abs_7_a_0 failure.res.inst_3_a_0) (__node_trans_pump_control_failure_0 failure.usr.pump_control_defect_1_a_1 failure.res.abs_8_a_1 failure.res.inst_2_a_1 failure.usr.pump_control_defect_1_a_0 failure.res.abs_8_a_0 failure.res.inst_2_a_0) (__node_trans_pump_control_failure_0 failure.usr.pump_control_defect_2_a_1 failure.res.abs_9_a_1 failure.res.inst_1_a_1 failure.usr.pump_control_defect_2_a_0 failure.res.abs_9_a_0 failure.res.inst_1_a_0) (__node_trans_pump_control_failure_0 failure.usr.pump_control_defect_3_a_1 failure.res.abs_10_a_1 failure.res.inst_0_a_1 failure.usr.pump_control_defect_3_a_0 failure.res.abs_10_a_0 failure.res.inst_0_a_0) (not failure.res.init_flag_a_1))) +(define-fun __node_init_steam_failure_startup_0 ((steam_failure_startup.usr.steam_a_0 Int) (steam_failure_startup.usr.steam_failure_startup_a_0 Bool) (steam_failure_startup.res.init_flag_a_0 Bool)) Bool + (and (= steam_failure_startup.usr.steam_failure_startup_a_0 (not (= steam_failure_startup.usr.steam_a_0 0))) steam_failure_startup.res.init_flag_a_0)) +(define-fun __node_trans_steam_failure_startup_0 ((steam_failure_startup.usr.steam_a_1 Int) (steam_failure_startup.usr.steam_failure_startup_a_1 Bool) (steam_failure_startup.res.init_flag_a_1 Bool) (steam_failure_startup.usr.steam_a_0 Int) (steam_failure_startup.usr.steam_failure_startup_a_0 Bool) (steam_failure_startup.res.init_flag_a_0 Bool)) Bool + (and (= steam_failure_startup.usr.steam_failure_startup_a_1 (not (= steam_failure_startup.usr.steam_a_1 0))) (not steam_failure_startup.res.init_flag_a_1))) +(define-fun __node_init_AND_0 ((AND.usr.a_0_a_0 Bool) (AND.usr.a_1_a_0 Bool) (AND.usr.a_2_a_0 Bool) (AND.usr.a_3_a_0 Bool) (AND.usr.AND_a_0 Bool) (AND.res.init_flag_a_0 Bool)) Bool + (and (= AND.usr.AND_a_0 (and (and (and AND.usr.a_0_a_0 AND.usr.a_1_a_0) AND.usr.a_2_a_0) AND.usr.a_3_a_0)) AND.res.init_flag_a_0)) +(define-fun __node_trans_AND_0 ((AND.usr.a_0_a_1 Bool) (AND.usr.a_1_a_1 Bool) (AND.usr.a_2_a_1 Bool) (AND.usr.a_3_a_1 Bool) (AND.usr.AND_a_1 Bool) (AND.res.init_flag_a_1 Bool) (AND.usr.a_0_a_0 Bool) (AND.usr.a_1_a_0 Bool) (AND.usr.a_2_a_0 Bool) (AND.usr.a_3_a_0 Bool) (AND.usr.AND_a_0 Bool) (AND.res.init_flag_a_0 Bool)) Bool + (and (= AND.usr.AND_a_1 (and (and (and AND.usr.a_0_a_1 AND.usr.a_1_a_1) AND.usr.a_2_a_1) AND.usr.a_3_a_1)) (not AND.res.init_flag_a_1))) +(define-fun __node_init_transmission_failure_0 ((transmission_failure.usr.pump_state_0_a_0 Int) (transmission_failure.usr.pump_state_1_a_0 Int) (transmission_failure.usr.pump_state_2_a_0 Int) (transmission_failure.usr.pump_state_3_a_0 Int) (transmission_failure.usr.transmission_failure_a_0 Bool) (transmission_failure.res.init_flag_a_0 Bool)) Bool + (and (= transmission_failure.usr.transmission_failure_a_0 (or (or (or (= transmission_failure.usr.pump_state_0_a_0 3) (= transmission_failure.usr.pump_state_1_a_0 3)) (= transmission_failure.usr.pump_state_2_a_0 3)) (= transmission_failure.usr.pump_state_3_a_0 3))) transmission_failure.res.init_flag_a_0)) +(define-fun __node_trans_transmission_failure_0 ((transmission_failure.usr.pump_state_0_a_1 Int) (transmission_failure.usr.pump_state_1_a_1 Int) (transmission_failure.usr.pump_state_2_a_1 Int) (transmission_failure.usr.pump_state_3_a_1 Int) (transmission_failure.usr.transmission_failure_a_1 Bool) (transmission_failure.res.init_flag_a_1 Bool) (transmission_failure.usr.pump_state_0_a_0 Int) (transmission_failure.usr.pump_state_1_a_0 Int) (transmission_failure.usr.pump_state_2_a_0 Int) (transmission_failure.usr.pump_state_3_a_0 Int) (transmission_failure.usr.transmission_failure_a_0 Bool) (transmission_failure.res.init_flag_a_0 Bool)) Bool + (and (= transmission_failure.usr.transmission_failure_a_1 (or (or (or (= transmission_failure.usr.pump_state_0_a_1 3) (= transmission_failure.usr.pump_state_1_a_1 3)) (= transmission_failure.usr.pump_state_2_a_1 3)) (= transmission_failure.usr.pump_state_3_a_1 3))) (not transmission_failure.res.init_flag_a_1))) +(define-fun __node_init_critical_failure_0 ((critical_failure.usr.op_mode_a_0 Int) (critical_failure.usr.steam_a_0 Int) (critical_failure.usr.level_defect_a_0 Int) (critical_failure.usr.steam_defect_a_0 Int) (critical_failure.usr.pump_defect_0_a_0 Int) (critical_failure.usr.pump_defect_1_a_0 Int) (critical_failure.usr.pump_defect_2_a_0 Int) (critical_failure.usr.pump_defect_3_a_0 Int) (critical_failure.usr.q_a_0 Int) (critical_failure.usr.pump_state_0_a_0 Int) (critical_failure.usr.pump_state_1_a_0 Int) (critical_failure.usr.pump_state_2_a_0 Int) (critical_failure.usr.pump_state_3_a_0 Int) (critical_failure.usr.critical_failure_a_0 Bool) (critical_failure.res.init_flag_a_0 Bool) (critical_failure.res.abs_0_a_0 Bool) (critical_failure.res.abs_1_a_0 Bool) (critical_failure.res.abs_2_a_0 Bool) (critical_failure.res.abs_3_a_0 Bool) (critical_failure.res.abs_4_a_0 Bool) (critical_failure.res.abs_5_a_0 Bool) (critical_failure.res.abs_6_a_0 Bool) (critical_failure.res.abs_7_a_0 Bool) (critical_failure.res.abs_8_a_0 Bool) (critical_failure.res.abs_9_a_0 Bool) (critical_failure.res.inst_9_a_0 Bool) (critical_failure.res.inst_8_a_0 Bool) (critical_failure.res.inst_7_a_0 Bool) (critical_failure.res.inst_6_a_0 Bool) (critical_failure.res.inst_5_a_0 Bool) (critical_failure.res.inst_4_a_0 Bool) (critical_failure.res.inst_3_a_0 Bool) (critical_failure.res.inst_2_a_0 Bool) (critical_failure.res.inst_1_a_0 Bool) (critical_failure.res.inst_0_a_0 Bool)) Bool + (and (= critical_failure.usr.critical_failure_a_0 (or (or (or (or (or critical_failure.res.abs_0_a_0 (and (= critical_failure.usr.op_mode_a_0 1) critical_failure.res.abs_1_a_0)) (and (= critical_failure.usr.op_mode_a_0 2) (or critical_failure.res.abs_2_a_0 critical_failure.res.abs_3_a_0))) (and (= critical_failure.usr.op_mode_a_0 3) critical_failure.res.abs_4_a_0)) (and (= critical_failure.usr.op_mode_a_0 4) critical_failure.res.abs_4_a_0)) (and (= critical_failure.usr.op_mode_a_0 5) (or (or critical_failure.res.abs_4_a_0 critical_failure.res.abs_3_a_0) critical_failure.res.abs_9_a_0)))) (__node_init_transmission_failure_0 critical_failure.usr.pump_state_0_a_0 critical_failure.usr.pump_state_1_a_0 critical_failure.usr.pump_state_2_a_0 critical_failure.usr.pump_state_3_a_0 critical_failure.res.abs_0_a_0 critical_failure.res.inst_9_a_0) (__node_init_steam_failure_startup_0 critical_failure.usr.steam_a_0 critical_failure.res.abs_1_a_0 critical_failure.res.inst_8_a_0) (__node_init_level_failure_0 critical_failure.usr.level_defect_a_0 critical_failure.res.abs_2_a_0 critical_failure.res.inst_7_a_0) (__node_init_steam_failure_0 critical_failure.usr.steam_defect_a_0 critical_failure.res.abs_3_a_0 critical_failure.res.inst_6_a_0) (__node_init_dangerous_level_0 critical_failure.usr.q_a_0 critical_failure.res.abs_4_a_0 critical_failure.res.inst_5_a_0) (__node_init_AND_0 critical_failure.res.abs_5_a_0 critical_failure.res.abs_6_a_0 critical_failure.res.abs_7_a_0 critical_failure.res.abs_8_a_0 critical_failure.res.abs_9_a_0 critical_failure.res.inst_4_a_0) (__node_init_pump_failure_0 critical_failure.usr.pump_defect_0_a_0 critical_failure.res.abs_5_a_0 critical_failure.res.inst_3_a_0) (__node_init_pump_failure_0 critical_failure.usr.pump_defect_1_a_0 critical_failure.res.abs_6_a_0 critical_failure.res.inst_2_a_0) (__node_init_pump_failure_0 critical_failure.usr.pump_defect_2_a_0 critical_failure.res.abs_7_a_0 critical_failure.res.inst_1_a_0) (__node_init_pump_failure_0 critical_failure.usr.pump_defect_3_a_0 critical_failure.res.abs_8_a_0 critical_failure.res.inst_0_a_0) critical_failure.res.init_flag_a_0)) +(define-fun __node_trans_critical_failure_0 ((critical_failure.usr.op_mode_a_1 Int) (critical_failure.usr.steam_a_1 Int) (critical_failure.usr.level_defect_a_1 Int) (critical_failure.usr.steam_defect_a_1 Int) (critical_failure.usr.pump_defect_0_a_1 Int) (critical_failure.usr.pump_defect_1_a_1 Int) (critical_failure.usr.pump_defect_2_a_1 Int) (critical_failure.usr.pump_defect_3_a_1 Int) (critical_failure.usr.q_a_1 Int) (critical_failure.usr.pump_state_0_a_1 Int) (critical_failure.usr.pump_state_1_a_1 Int) (critical_failure.usr.pump_state_2_a_1 Int) (critical_failure.usr.pump_state_3_a_1 Int) (critical_failure.usr.critical_failure_a_1 Bool) (critical_failure.res.init_flag_a_1 Bool) (critical_failure.res.abs_0_a_1 Bool) (critical_failure.res.abs_1_a_1 Bool) (critical_failure.res.abs_2_a_1 Bool) (critical_failure.res.abs_3_a_1 Bool) (critical_failure.res.abs_4_a_1 Bool) (critical_failure.res.abs_5_a_1 Bool) (critical_failure.res.abs_6_a_1 Bool) (critical_failure.res.abs_7_a_1 Bool) (critical_failure.res.abs_8_a_1 Bool) (critical_failure.res.abs_9_a_1 Bool) (critical_failure.res.inst_9_a_1 Bool) (critical_failure.res.inst_8_a_1 Bool) (critical_failure.res.inst_7_a_1 Bool) (critical_failure.res.inst_6_a_1 Bool) (critical_failure.res.inst_5_a_1 Bool) (critical_failure.res.inst_4_a_1 Bool) (critical_failure.res.inst_3_a_1 Bool) (critical_failure.res.inst_2_a_1 Bool) (critical_failure.res.inst_1_a_1 Bool) (critical_failure.res.inst_0_a_1 Bool) (critical_failure.usr.op_mode_a_0 Int) (critical_failure.usr.steam_a_0 Int) (critical_failure.usr.level_defect_a_0 Int) (critical_failure.usr.steam_defect_a_0 Int) (critical_failure.usr.pump_defect_0_a_0 Int) (critical_failure.usr.pump_defect_1_a_0 Int) (critical_failure.usr.pump_defect_2_a_0 Int) (critical_failure.usr.pump_defect_3_a_0 Int) (critical_failure.usr.q_a_0 Int) (critical_failure.usr.pump_state_0_a_0 Int) (critical_failure.usr.pump_state_1_a_0 Int) (critical_failure.usr.pump_state_2_a_0 Int) (critical_failure.usr.pump_state_3_a_0 Int) (critical_failure.usr.critical_failure_a_0 Bool) (critical_failure.res.init_flag_a_0 Bool) (critical_failure.res.abs_0_a_0 Bool) (critical_failure.res.abs_1_a_0 Bool) (critical_failure.res.abs_2_a_0 Bool) (critical_failure.res.abs_3_a_0 Bool) (critical_failure.res.abs_4_a_0 Bool) (critical_failure.res.abs_5_a_0 Bool) (critical_failure.res.abs_6_a_0 Bool) (critical_failure.res.abs_7_a_0 Bool) (critical_failure.res.abs_8_a_0 Bool) (critical_failure.res.abs_9_a_0 Bool) (critical_failure.res.inst_9_a_0 Bool) (critical_failure.res.inst_8_a_0 Bool) (critical_failure.res.inst_7_a_0 Bool) (critical_failure.res.inst_6_a_0 Bool) (critical_failure.res.inst_5_a_0 Bool) (critical_failure.res.inst_4_a_0 Bool) (critical_failure.res.inst_3_a_0 Bool) (critical_failure.res.inst_2_a_0 Bool) (critical_failure.res.inst_1_a_0 Bool) (critical_failure.res.inst_0_a_0 Bool)) Bool + (and (= critical_failure.usr.critical_failure_a_1 (or (or (or (or (or critical_failure.res.abs_0_a_1 (and (= critical_failure.usr.op_mode_a_1 1) critical_failure.res.abs_1_a_1)) (and (= critical_failure.usr.op_mode_a_1 2) (or critical_failure.res.abs_2_a_1 critical_failure.res.abs_3_a_1))) (and (= critical_failure.usr.op_mode_a_1 3) critical_failure.res.abs_4_a_1)) (and (= critical_failure.usr.op_mode_a_1 4) critical_failure.res.abs_4_a_1)) (and (= critical_failure.usr.op_mode_a_1 5) (or (or critical_failure.res.abs_4_a_1 critical_failure.res.abs_3_a_1) critical_failure.res.abs_9_a_1)))) (__node_trans_transmission_failure_0 critical_failure.usr.pump_state_0_a_1 critical_failure.usr.pump_state_1_a_1 critical_failure.usr.pump_state_2_a_1 critical_failure.usr.pump_state_3_a_1 critical_failure.res.abs_0_a_1 critical_failure.res.inst_9_a_1 critical_failure.usr.pump_state_0_a_0 critical_failure.usr.pump_state_1_a_0 critical_failure.usr.pump_state_2_a_0 critical_failure.usr.pump_state_3_a_0 critical_failure.res.abs_0_a_0 critical_failure.res.inst_9_a_0) (__node_trans_steam_failure_startup_0 critical_failure.usr.steam_a_1 critical_failure.res.abs_1_a_1 critical_failure.res.inst_8_a_1 critical_failure.usr.steam_a_0 critical_failure.res.abs_1_a_0 critical_failure.res.inst_8_a_0) (__node_trans_level_failure_0 critical_failure.usr.level_defect_a_1 critical_failure.res.abs_2_a_1 critical_failure.res.inst_7_a_1 critical_failure.usr.level_defect_a_0 critical_failure.res.abs_2_a_0 critical_failure.res.inst_7_a_0) (__node_trans_steam_failure_0 critical_failure.usr.steam_defect_a_1 critical_failure.res.abs_3_a_1 critical_failure.res.inst_6_a_1 critical_failure.usr.steam_defect_a_0 critical_failure.res.abs_3_a_0 critical_failure.res.inst_6_a_0) (__node_trans_dangerous_level_0 critical_failure.usr.q_a_1 critical_failure.res.abs_4_a_1 critical_failure.res.inst_5_a_1 critical_failure.usr.q_a_0 critical_failure.res.abs_4_a_0 critical_failure.res.inst_5_a_0) (__node_trans_AND_0 critical_failure.res.abs_5_a_1 critical_failure.res.abs_6_a_1 critical_failure.res.abs_7_a_1 critical_failure.res.abs_8_a_1 critical_failure.res.abs_9_a_1 critical_failure.res.inst_4_a_1 critical_failure.res.abs_5_a_0 critical_failure.res.abs_6_a_0 critical_failure.res.abs_7_a_0 critical_failure.res.abs_8_a_0 critical_failure.res.abs_9_a_0 critical_failure.res.inst_4_a_0) (__node_trans_pump_failure_0 critical_failure.usr.pump_defect_0_a_1 critical_failure.res.abs_5_a_1 critical_failure.res.inst_3_a_1 critical_failure.usr.pump_defect_0_a_0 critical_failure.res.abs_5_a_0 critical_failure.res.inst_3_a_0) (__node_trans_pump_failure_0 critical_failure.usr.pump_defect_1_a_1 critical_failure.res.abs_6_a_1 critical_failure.res.inst_2_a_1 critical_failure.usr.pump_defect_1_a_0 critical_failure.res.abs_6_a_0 critical_failure.res.inst_2_a_0) (__node_trans_pump_failure_0 critical_failure.usr.pump_defect_2_a_1 critical_failure.res.abs_7_a_1 critical_failure.res.inst_1_a_1 critical_failure.usr.pump_defect_2_a_0 critical_failure.res.abs_7_a_0 critical_failure.res.inst_1_a_0) (__node_trans_pump_failure_0 critical_failure.usr.pump_defect_3_a_1 critical_failure.res.abs_8_a_1 critical_failure.res.inst_0_a_1 critical_failure.usr.pump_defect_3_a_0 critical_failure.res.abs_8_a_0 critical_failure.res.inst_0_a_0) (not critical_failure.res.init_flag_a_1))) +(define-fun __node_init_ControlMode_0 ((ControlMode.usr.steam_boiler_waiting_a_0 Bool) (ControlMode.usr.physical_units_ready_a_0 Bool) (ControlMode.usr.stop_request_a_0 Bool) (ControlMode.usr.steam_a_0 Int) (ControlMode.usr.level_defect_a_0 Int) (ControlMode.usr.steam_defect_a_0 Int) (ControlMode.usr.pump_defect_0_a_0 Int) (ControlMode.usr.pump_defect_1_a_0 Int) (ControlMode.usr.pump_defect_2_a_0 Int) (ControlMode.usr.pump_defect_3_a_0 Int) (ControlMode.usr.pump_control_defect_0_a_0 Int) (ControlMode.usr.pump_control_defect_1_a_0 Int) (ControlMode.usr.pump_control_defect_2_a_0 Int) (ControlMode.usr.pump_control_defect_3_a_0 Int) (ControlMode.usr.q_a_0 Int) (ControlMode.usr.pump_state_0_a_0 Int) (ControlMode.usr.pump_state_1_a_0 Int) (ControlMode.usr.pump_state_2_a_0 Int) (ControlMode.usr.pump_state_3_a_0 Int) (ControlMode.res.nondet_0 Int) (ControlMode.usr.op_mode_a_0 Int) (ControlMode.res.init_flag_a_0 Bool) (ControlMode.res.abs_0_a_0 Int) (ControlMode.res.abs_1_a_0 Bool) (ControlMode.res.abs_2_a_0 Bool) (ControlMode.res.abs_3_a_0 Bool) (ControlMode.res.inst_46_a_0 Bool) (ControlMode.res.inst_45_a_0 Bool) (ControlMode.res.inst_44_a_0 Bool) (ControlMode.res.inst_43_a_0 Bool) (ControlMode.res.inst_42_a_0 Bool) (ControlMode.res.inst_41_a_0 Bool) (ControlMode.res.inst_40_a_0 Bool) (ControlMode.res.inst_39_a_0 Bool) (ControlMode.res.inst_38_a_0 Bool) (ControlMode.res.inst_37_a_0 Bool) (ControlMode.res.inst_36_a_0 Bool) (ControlMode.res.inst_35_a_0 Bool) (ControlMode.res.inst_34_a_0 Bool) (ControlMode.res.inst_33_a_0 Bool) (ControlMode.res.inst_32_a_0 Bool) (ControlMode.res.inst_31_a_0 Bool) (ControlMode.res.inst_30_a_0 Bool) (ControlMode.res.inst_29_a_0 Bool) (ControlMode.res.inst_28_a_0 Bool) (ControlMode.res.inst_27_a_0 Bool) (ControlMode.res.inst_26_a_0 Bool) (ControlMode.res.inst_25_a_0 Bool) (ControlMode.res.inst_24_a_0 Bool) (ControlMode.res.inst_23_a_0 Bool) (ControlMode.res.inst_22_a_0 Bool) (ControlMode.res.inst_21_a_0 Bool) (ControlMode.res.inst_20_a_0 Bool) (ControlMode.res.inst_19_a_0 Bool) (ControlMode.res.inst_18_a_0 Bool) (ControlMode.res.inst_17_a_0 Bool) (ControlMode.res.inst_16_a_0 Bool) (ControlMode.res.inst_15_a_0 Bool) (ControlMode.res.inst_14_a_0 Bool) (ControlMode.res.inst_13_a_0 Bool) (ControlMode.res.inst_12_a_0 Bool) (ControlMode.res.inst_11_a_0 Bool) (ControlMode.res.inst_10_a_0 Bool) (ControlMode.res.inst_9_a_0 Bool) (ControlMode.res.inst_8_a_0 Bool) (ControlMode.res.inst_7_a_0 Bool) (ControlMode.res.inst_6_a_0 Bool) (ControlMode.res.inst_5_a_0 Bool) (ControlMode.res.inst_4_a_0 Bool) (ControlMode.res.inst_3_a_0 Bool) (ControlMode.res.inst_2_a_0 Bool) (ControlMode.res.inst_1_a_0 Bool) (ControlMode.res.inst_0_a_0 Bool)) Bool + (and (= ControlMode.usr.op_mode_a_0 1) (= ControlMode.res.abs_0_a_0 (let ((X1 ControlMode.res.nondet_0)) X1)) (__node_init_critical_failure_0 ControlMode.res.abs_0_a_0 ControlMode.usr.steam_a_0 ControlMode.usr.level_defect_a_0 ControlMode.usr.steam_defect_a_0 ControlMode.usr.pump_defect_0_a_0 ControlMode.usr.pump_defect_1_a_0 ControlMode.usr.pump_defect_2_a_0 ControlMode.usr.pump_defect_3_a_0 ControlMode.usr.q_a_0 ControlMode.usr.pump_state_0_a_0 ControlMode.usr.pump_state_1_a_0 ControlMode.usr.pump_state_2_a_0 ControlMode.usr.pump_state_3_a_0 ControlMode.res.abs_1_a_0 ControlMode.res.inst_46_a_0 ControlMode.res.inst_45_a_0 ControlMode.res.inst_44_a_0 ControlMode.res.inst_43_a_0 ControlMode.res.inst_42_a_0 ControlMode.res.inst_41_a_0 ControlMode.res.inst_40_a_0 ControlMode.res.inst_39_a_0 ControlMode.res.inst_38_a_0 ControlMode.res.inst_37_a_0 ControlMode.res.inst_36_a_0 ControlMode.res.inst_35_a_0 ControlMode.res.inst_34_a_0 ControlMode.res.inst_33_a_0 ControlMode.res.inst_32_a_0 ControlMode.res.inst_31_a_0 ControlMode.res.inst_30_a_0 ControlMode.res.inst_29_a_0 ControlMode.res.inst_28_a_0 ControlMode.res.inst_27_a_0 ControlMode.res.inst_26_a_0) (__node_init_level_failure_0 ControlMode.usr.level_defect_a_0 ControlMode.res.abs_2_a_0 ControlMode.res.inst_25_a_0) (__node_init_failure_0 ControlMode.usr.level_defect_a_0 ControlMode.usr.steam_defect_a_0 ControlMode.usr.pump_defect_0_a_0 ControlMode.usr.pump_defect_1_a_0 ControlMode.usr.pump_defect_2_a_0 ControlMode.usr.pump_defect_3_a_0 ControlMode.usr.pump_control_defect_0_a_0 ControlMode.usr.pump_control_defect_1_a_0 ControlMode.usr.pump_control_defect_2_a_0 ControlMode.usr.pump_control_defect_3_a_0 ControlMode.res.abs_3_a_0 ControlMode.res.inst_24_a_0 ControlMode.res.inst_23_a_0 ControlMode.res.inst_22_a_0 ControlMode.res.inst_21_a_0 ControlMode.res.inst_20_a_0 ControlMode.res.inst_19_a_0 ControlMode.res.inst_18_a_0 ControlMode.res.inst_17_a_0 ControlMode.res.inst_16_a_0 ControlMode.res.inst_15_a_0 ControlMode.res.inst_14_a_0 ControlMode.res.inst_13_a_0 ControlMode.res.inst_12_a_0 ControlMode.res.inst_11_a_0 ControlMode.res.inst_10_a_0 ControlMode.res.inst_9_a_0 ControlMode.res.inst_8_a_0 ControlMode.res.inst_7_a_0 ControlMode.res.inst_6_a_0 ControlMode.res.inst_5_a_0 ControlMode.res.inst_4_a_0 ControlMode.res.inst_3_a_0 ControlMode.res.inst_2_a_0 ControlMode.res.inst_1_a_0 ControlMode.res.inst_0_a_0) (<= 1 ControlMode.usr.op_mode_a_0 6) ControlMode.res.init_flag_a_0)) +(define-fun __node_trans_ControlMode_0 ((ControlMode.usr.steam_boiler_waiting_a_1 Bool) (ControlMode.usr.physical_units_ready_a_1 Bool) (ControlMode.usr.stop_request_a_1 Bool) (ControlMode.usr.steam_a_1 Int) (ControlMode.usr.level_defect_a_1 Int) (ControlMode.usr.steam_defect_a_1 Int) (ControlMode.usr.pump_defect_0_a_1 Int) (ControlMode.usr.pump_defect_1_a_1 Int) (ControlMode.usr.pump_defect_2_a_1 Int) (ControlMode.usr.pump_defect_3_a_1 Int) (ControlMode.usr.pump_control_defect_0_a_1 Int) (ControlMode.usr.pump_control_defect_1_a_1 Int) (ControlMode.usr.pump_control_defect_2_a_1 Int) (ControlMode.usr.pump_control_defect_3_a_1 Int) (ControlMode.usr.q_a_1 Int) (ControlMode.usr.pump_state_0_a_1 Int) (ControlMode.usr.pump_state_1_a_1 Int) (ControlMode.usr.pump_state_2_a_1 Int) (ControlMode.usr.pump_state_3_a_1 Int) (ControlMode.res.nondet_0 Int) (ControlMode.usr.op_mode_a_1 Int) (ControlMode.res.init_flag_a_1 Bool) (ControlMode.res.abs_0_a_1 Int) (ControlMode.res.abs_1_a_1 Bool) (ControlMode.res.abs_2_a_1 Bool) (ControlMode.res.abs_3_a_1 Bool) (ControlMode.res.inst_46_a_1 Bool) (ControlMode.res.inst_45_a_1 Bool) (ControlMode.res.inst_44_a_1 Bool) (ControlMode.res.inst_43_a_1 Bool) (ControlMode.res.inst_42_a_1 Bool) (ControlMode.res.inst_41_a_1 Bool) (ControlMode.res.inst_40_a_1 Bool) (ControlMode.res.inst_39_a_1 Bool) (ControlMode.res.inst_38_a_1 Bool) (ControlMode.res.inst_37_a_1 Bool) (ControlMode.res.inst_36_a_1 Bool) (ControlMode.res.inst_35_a_1 Bool) (ControlMode.res.inst_34_a_1 Bool) (ControlMode.res.inst_33_a_1 Bool) (ControlMode.res.inst_32_a_1 Bool) (ControlMode.res.inst_31_a_1 Bool) (ControlMode.res.inst_30_a_1 Bool) (ControlMode.res.inst_29_a_1 Bool) (ControlMode.res.inst_28_a_1 Bool) (ControlMode.res.inst_27_a_1 Bool) (ControlMode.res.inst_26_a_1 Bool) (ControlMode.res.inst_25_a_1 Bool) (ControlMode.res.inst_24_a_1 Bool) (ControlMode.res.inst_23_a_1 Bool) (ControlMode.res.inst_22_a_1 Bool) (ControlMode.res.inst_21_a_1 Bool) (ControlMode.res.inst_20_a_1 Bool) (ControlMode.res.inst_19_a_1 Bool) (ControlMode.res.inst_18_a_1 Bool) (ControlMode.res.inst_17_a_1 Bool) (ControlMode.res.inst_16_a_1 Bool) (ControlMode.res.inst_15_a_1 Bool) (ControlMode.res.inst_14_a_1 Bool) (ControlMode.res.inst_13_a_1 Bool) (ControlMode.res.inst_12_a_1 Bool) (ControlMode.res.inst_11_a_1 Bool) (ControlMode.res.inst_10_a_1 Bool) (ControlMode.res.inst_9_a_1 Bool) (ControlMode.res.inst_8_a_1 Bool) (ControlMode.res.inst_7_a_1 Bool) (ControlMode.res.inst_6_a_1 Bool) (ControlMode.res.inst_5_a_1 Bool) (ControlMode.res.inst_4_a_1 Bool) (ControlMode.res.inst_3_a_1 Bool) (ControlMode.res.inst_2_a_1 Bool) (ControlMode.res.inst_1_a_1 Bool) (ControlMode.res.inst_0_a_1 Bool) (ControlMode.usr.steam_boiler_waiting_a_0 Bool) (ControlMode.usr.physical_units_ready_a_0 Bool) (ControlMode.usr.stop_request_a_0 Bool) (ControlMode.usr.steam_a_0 Int) (ControlMode.usr.level_defect_a_0 Int) (ControlMode.usr.steam_defect_a_0 Int) (ControlMode.usr.pump_defect_0_a_0 Int) (ControlMode.usr.pump_defect_1_a_0 Int) (ControlMode.usr.pump_defect_2_a_0 Int) (ControlMode.usr.pump_defect_3_a_0 Int) (ControlMode.usr.pump_control_defect_0_a_0 Int) (ControlMode.usr.pump_control_defect_1_a_0 Int) (ControlMode.usr.pump_control_defect_2_a_0 Int) (ControlMode.usr.pump_control_defect_3_a_0 Int) (ControlMode.usr.q_a_0 Int) (ControlMode.usr.pump_state_0_a_0 Int) (ControlMode.usr.pump_state_1_a_0 Int) (ControlMode.usr.pump_state_2_a_0 Int) (ControlMode.usr.pump_state_3_a_0 Int) (ControlMode.usr.op_mode_a_0 Int) (ControlMode.res.init_flag_a_0 Bool) (ControlMode.res.abs_0_a_0 Int) (ControlMode.res.abs_1_a_0 Bool) (ControlMode.res.abs_2_a_0 Bool) (ControlMode.res.abs_3_a_0 Bool) (ControlMode.res.inst_46_a_0 Bool) (ControlMode.res.inst_45_a_0 Bool) (ControlMode.res.inst_44_a_0 Bool) (ControlMode.res.inst_43_a_0 Bool) (ControlMode.res.inst_42_a_0 Bool) (ControlMode.res.inst_41_a_0 Bool) (ControlMode.res.inst_40_a_0 Bool) (ControlMode.res.inst_39_a_0 Bool) (ControlMode.res.inst_38_a_0 Bool) (ControlMode.res.inst_37_a_0 Bool) (ControlMode.res.inst_36_a_0 Bool) (ControlMode.res.inst_35_a_0 Bool) (ControlMode.res.inst_34_a_0 Bool) (ControlMode.res.inst_33_a_0 Bool) (ControlMode.res.inst_32_a_0 Bool) (ControlMode.res.inst_31_a_0 Bool) (ControlMode.res.inst_30_a_0 Bool) (ControlMode.res.inst_29_a_0 Bool) (ControlMode.res.inst_28_a_0 Bool) (ControlMode.res.inst_27_a_0 Bool) (ControlMode.res.inst_26_a_0 Bool) (ControlMode.res.inst_25_a_0 Bool) (ControlMode.res.inst_24_a_0 Bool) (ControlMode.res.inst_23_a_0 Bool) (ControlMode.res.inst_22_a_0 Bool) (ControlMode.res.inst_21_a_0 Bool) (ControlMode.res.inst_20_a_0 Bool) (ControlMode.res.inst_19_a_0 Bool) (ControlMode.res.inst_18_a_0 Bool) (ControlMode.res.inst_17_a_0 Bool) (ControlMode.res.inst_16_a_0 Bool) (ControlMode.res.inst_15_a_0 Bool) (ControlMode.res.inst_14_a_0 Bool) (ControlMode.res.inst_13_a_0 Bool) (ControlMode.res.inst_12_a_0 Bool) (ControlMode.res.inst_11_a_0 Bool) (ControlMode.res.inst_10_a_0 Bool) (ControlMode.res.inst_9_a_0 Bool) (ControlMode.res.inst_8_a_0 Bool) (ControlMode.res.inst_7_a_0 Bool) (ControlMode.res.inst_6_a_0 Bool) (ControlMode.res.inst_5_a_0 Bool) (ControlMode.res.inst_4_a_0 Bool) (ControlMode.res.inst_3_a_0 Bool) (ControlMode.res.inst_2_a_0 Bool) (ControlMode.res.inst_1_a_0 Bool) (ControlMode.res.inst_0_a_0 Bool)) Bool + (and (= ControlMode.res.abs_0_a_1 ControlMode.usr.op_mode_a_0) (= ControlMode.usr.op_mode_a_1 (ite (or (or ControlMode.res.abs_1_a_1 ControlMode.usr.stop_request_a_1) (= ControlMode.usr.op_mode_a_0 6)) 6 (ite (= ControlMode.usr.op_mode_a_0 1) (ite ControlMode.usr.steam_boiler_waiting_a_1 2 1) (ite (and (= ControlMode.usr.op_mode_a_0 2) (not ControlMode.usr.physical_units_ready_a_1)) 2 (ite ControlMode.res.abs_2_a_1 5 (ite ControlMode.res.abs_3_a_1 4 3)))))) (__node_trans_critical_failure_0 ControlMode.res.abs_0_a_1 ControlMode.usr.steam_a_1 ControlMode.usr.level_defect_a_1 ControlMode.usr.steam_defect_a_1 ControlMode.usr.pump_defect_0_a_1 ControlMode.usr.pump_defect_1_a_1 ControlMode.usr.pump_defect_2_a_1 ControlMode.usr.pump_defect_3_a_1 ControlMode.usr.q_a_1 ControlMode.usr.pump_state_0_a_1 ControlMode.usr.pump_state_1_a_1 ControlMode.usr.pump_state_2_a_1 ControlMode.usr.pump_state_3_a_1 ControlMode.res.abs_1_a_1 ControlMode.res.inst_46_a_1 ControlMode.res.inst_45_a_1 ControlMode.res.inst_44_a_1 ControlMode.res.inst_43_a_1 ControlMode.res.inst_42_a_1 ControlMode.res.inst_41_a_1 ControlMode.res.inst_40_a_1 ControlMode.res.inst_39_a_1 ControlMode.res.inst_38_a_1 ControlMode.res.inst_37_a_1 ControlMode.res.inst_36_a_1 ControlMode.res.inst_35_a_1 ControlMode.res.inst_34_a_1 ControlMode.res.inst_33_a_1 ControlMode.res.inst_32_a_1 ControlMode.res.inst_31_a_1 ControlMode.res.inst_30_a_1 ControlMode.res.inst_29_a_1 ControlMode.res.inst_28_a_1 ControlMode.res.inst_27_a_1 ControlMode.res.inst_26_a_1 ControlMode.res.abs_0_a_0 ControlMode.usr.steam_a_0 ControlMode.usr.level_defect_a_0 ControlMode.usr.steam_defect_a_0 ControlMode.usr.pump_defect_0_a_0 ControlMode.usr.pump_defect_1_a_0 ControlMode.usr.pump_defect_2_a_0 ControlMode.usr.pump_defect_3_a_0 ControlMode.usr.q_a_0 ControlMode.usr.pump_state_0_a_0 ControlMode.usr.pump_state_1_a_0 ControlMode.usr.pump_state_2_a_0 ControlMode.usr.pump_state_3_a_0 ControlMode.res.abs_1_a_0 ControlMode.res.inst_46_a_0 ControlMode.res.inst_45_a_0 ControlMode.res.inst_44_a_0 ControlMode.res.inst_43_a_0 ControlMode.res.inst_42_a_0 ControlMode.res.inst_41_a_0 ControlMode.res.inst_40_a_0 ControlMode.res.inst_39_a_0 ControlMode.res.inst_38_a_0 ControlMode.res.inst_37_a_0 ControlMode.res.inst_36_a_0 ControlMode.res.inst_35_a_0 ControlMode.res.inst_34_a_0 ControlMode.res.inst_33_a_0 ControlMode.res.inst_32_a_0 ControlMode.res.inst_31_a_0 ControlMode.res.inst_30_a_0 ControlMode.res.inst_29_a_0 ControlMode.res.inst_28_a_0 ControlMode.res.inst_27_a_0 ControlMode.res.inst_26_a_0) (__node_trans_level_failure_0 ControlMode.usr.level_defect_a_1 ControlMode.res.abs_2_a_1 ControlMode.res.inst_25_a_1 ControlMode.usr.level_defect_a_0 ControlMode.res.abs_2_a_0 ControlMode.res.inst_25_a_0) (__node_trans_failure_0 ControlMode.usr.level_defect_a_1 ControlMode.usr.steam_defect_a_1 ControlMode.usr.pump_defect_0_a_1 ControlMode.usr.pump_defect_1_a_1 ControlMode.usr.pump_defect_2_a_1 ControlMode.usr.pump_defect_3_a_1 ControlMode.usr.pump_control_defect_0_a_1 ControlMode.usr.pump_control_defect_1_a_1 ControlMode.usr.pump_control_defect_2_a_1 ControlMode.usr.pump_control_defect_3_a_1 ControlMode.res.abs_3_a_1 ControlMode.res.inst_24_a_1 ControlMode.res.inst_23_a_1 ControlMode.res.inst_22_a_1 ControlMode.res.inst_21_a_1 ControlMode.res.inst_20_a_1 ControlMode.res.inst_19_a_1 ControlMode.res.inst_18_a_1 ControlMode.res.inst_17_a_1 ControlMode.res.inst_16_a_1 ControlMode.res.inst_15_a_1 ControlMode.res.inst_14_a_1 ControlMode.res.inst_13_a_1 ControlMode.res.inst_12_a_1 ControlMode.res.inst_11_a_1 ControlMode.res.inst_10_a_1 ControlMode.res.inst_9_a_1 ControlMode.res.inst_8_a_1 ControlMode.res.inst_7_a_1 ControlMode.res.inst_6_a_1 ControlMode.res.inst_5_a_1 ControlMode.res.inst_4_a_1 ControlMode.res.inst_3_a_1 ControlMode.res.inst_2_a_1 ControlMode.res.inst_1_a_1 ControlMode.res.inst_0_a_1 ControlMode.usr.level_defect_a_0 ControlMode.usr.steam_defect_a_0 ControlMode.usr.pump_defect_0_a_0 ControlMode.usr.pump_defect_1_a_0 ControlMode.usr.pump_defect_2_a_0 ControlMode.usr.pump_defect_3_a_0 ControlMode.usr.pump_control_defect_0_a_0 ControlMode.usr.pump_control_defect_1_a_0 ControlMode.usr.pump_control_defect_2_a_0 ControlMode.usr.pump_control_defect_3_a_0 ControlMode.res.abs_3_a_0 ControlMode.res.inst_24_a_0 ControlMode.res.inst_23_a_0 ControlMode.res.inst_22_a_0 ControlMode.res.inst_21_a_0 ControlMode.res.inst_20_a_0 ControlMode.res.inst_19_a_0 ControlMode.res.inst_18_a_0 ControlMode.res.inst_17_a_0 ControlMode.res.inst_16_a_0 ControlMode.res.inst_15_a_0 ControlMode.res.inst_14_a_0 ControlMode.res.inst_13_a_0 ControlMode.res.inst_12_a_0 ControlMode.res.inst_11_a_0 ControlMode.res.inst_10_a_0 ControlMode.res.inst_9_a_0 ControlMode.res.inst_8_a_0 ControlMode.res.inst_7_a_0 ControlMode.res.inst_6_a_0 ControlMode.res.inst_5_a_0 ControlMode.res.inst_4_a_0 ControlMode.res.inst_3_a_0 ControlMode.res.inst_2_a_0 ControlMode.res.inst_1_a_0 ControlMode.res.inst_0_a_0) (<= 1 ControlMode.usr.op_mode_a_1 6) (not ControlMode.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.steam_boiler_waiting_a_0 Bool) (top.usr.physical_units_ready_a_0 Bool) (top.usr.stop_request_a_0 Bool) (top.usr.steam_a_0 Int) (top.usr.level_defect_a_0 Int) (top.usr.steam_defect_a_0 Int) (top.usr.pump_defect_0_a_0 Int) (top.usr.pump_defect_1_a_0 Int) (top.usr.pump_defect_2_a_0 Int) (top.usr.pump_defect_3_a_0 Int) (top.usr.pump_control_defect_0_a_0 Int) (top.usr.pump_control_defect_1_a_0 Int) (top.usr.pump_control_defect_2_a_0 Int) (top.usr.pump_control_defect_3_a_0 Int) (top.usr.q_a_0 Int) (top.usr.pump_state_0_a_0 Int) (top.usr.pump_state_1_a_0 Int) (top.usr.pump_state_2_a_0 Int) (top.usr.pump_state_3_a_0 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.op_mode_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Bool) (top.res.inst_52_a_0 Bool) (top.res.inst_51_a_0 Int) (top.res.inst_50_a_0 Bool) (top.res.inst_49_a_0 Bool) (top.res.inst_48_a_0 Bool) (top.res.inst_47_a_0 Bool) (top.res.inst_46_a_0 Bool) (top.res.inst_45_a_0 Bool) (top.res.inst_44_a_0 Bool) (top.res.inst_43_a_0 Bool) (top.res.inst_42_a_0 Bool) (top.res.inst_41_a_0 Bool) (top.res.inst_40_a_0 Bool) (top.res.inst_39_a_0 Bool) (top.res.inst_38_a_0 Bool) (top.res.inst_37_a_0 Bool) (top.res.inst_36_a_0 Bool) (top.res.inst_35_a_0 Bool) (top.res.inst_34_a_0 Bool) (top.res.inst_33_a_0 Bool) (top.res.inst_32_a_0 Bool) (top.res.inst_31_a_0 Bool) (top.res.inst_30_a_0 Bool) (top.res.inst_29_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.op_mode_a_0 top.res.abs_0_a_0) (let ((X1 (=> (= top.impl.usr.op_mode_a_0 3) (not top.usr.stop_request_a_0)))) (let ((X2 true)) (and (= top.usr.OK_a_0 (and X2 X1)) (__node_init_ControlMode_0 top.usr.steam_boiler_waiting_a_0 top.usr.physical_units_ready_a_0 top.usr.stop_request_a_0 top.usr.steam_a_0 top.usr.level_defect_a_0 top.usr.steam_defect_a_0 top.usr.pump_defect_0_a_0 top.usr.pump_defect_1_a_0 top.usr.pump_defect_2_a_0 top.usr.pump_defect_3_a_0 top.usr.pump_control_defect_0_a_0 top.usr.pump_control_defect_1_a_0 top.usr.pump_control_defect_2_a_0 top.usr.pump_control_defect_3_a_0 top.usr.q_a_0 top.usr.pump_state_0_a_0 top.usr.pump_state_1_a_0 top.usr.pump_state_2_a_0 top.usr.pump_state_3_a_0 top.res.nondet_0 top.res.abs_0_a_0 top.res.inst_52_a_0 top.res.inst_51_a_0 top.res.inst_50_a_0 top.res.inst_49_a_0 top.res.inst_48_a_0 top.res.inst_47_a_0 top.res.inst_46_a_0 top.res.inst_45_a_0 top.res.inst_44_a_0 top.res.inst_43_a_0 top.res.inst_42_a_0 top.res.inst_41_a_0 top.res.inst_40_a_0 top.res.inst_39_a_0 top.res.inst_38_a_0 top.res.inst_37_a_0 top.res.inst_36_a_0 top.res.inst_35_a_0 top.res.inst_34_a_0 top.res.inst_33_a_0 top.res.inst_32_a_0 top.res.inst_31_a_0 top.res.inst_30_a_0 top.res.inst_29_a_0 top.res.inst_28_a_0 top.res.inst_27_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_init_dangerous_level_0 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) (<= 1 top.impl.usr.op_mode_a_0 6) (<= 1 top.res.abs_0_a_0 6) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.steam_boiler_waiting_a_1 Bool) (top.usr.physical_units_ready_a_1 Bool) (top.usr.stop_request_a_1 Bool) (top.usr.steam_a_1 Int) (top.usr.level_defect_a_1 Int) (top.usr.steam_defect_a_1 Int) (top.usr.pump_defect_0_a_1 Int) (top.usr.pump_defect_1_a_1 Int) (top.usr.pump_defect_2_a_1 Int) (top.usr.pump_defect_3_a_1 Int) (top.usr.pump_control_defect_0_a_1 Int) (top.usr.pump_control_defect_1_a_1 Int) (top.usr.pump_control_defect_2_a_1 Int) (top.usr.pump_control_defect_3_a_1 Int) (top.usr.q_a_1 Int) (top.usr.pump_state_0_a_1 Int) (top.usr.pump_state_1_a_1 Int) (top.usr.pump_state_2_a_1 Int) (top.usr.pump_state_3_a_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.op_mode_a_1 Int) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Bool) (top.res.inst_52_a_1 Bool) (top.res.inst_51_a_1 Int) (top.res.inst_50_a_1 Bool) (top.res.inst_49_a_1 Bool) (top.res.inst_48_a_1 Bool) (top.res.inst_47_a_1 Bool) (top.res.inst_46_a_1 Bool) (top.res.inst_45_a_1 Bool) (top.res.inst_44_a_1 Bool) (top.res.inst_43_a_1 Bool) (top.res.inst_42_a_1 Bool) (top.res.inst_41_a_1 Bool) (top.res.inst_40_a_1 Bool) (top.res.inst_39_a_1 Bool) (top.res.inst_38_a_1 Bool) (top.res.inst_37_a_1 Bool) (top.res.inst_36_a_1 Bool) (top.res.inst_35_a_1 Bool) (top.res.inst_34_a_1 Bool) (top.res.inst_33_a_1 Bool) (top.res.inst_32_a_1 Bool) (top.res.inst_31_a_1 Bool) (top.res.inst_30_a_1 Bool) (top.res.inst_29_a_1 Bool) (top.res.inst_28_a_1 Bool) (top.res.inst_27_a_1 Bool) (top.res.inst_26_a_1 Bool) (top.res.inst_25_a_1 Bool) (top.res.inst_24_a_1 Bool) (top.res.inst_23_a_1 Bool) (top.res.inst_22_a_1 Bool) (top.res.inst_21_a_1 Bool) (top.res.inst_20_a_1 Bool) (top.res.inst_19_a_1 Bool) (top.res.inst_18_a_1 Bool) (top.res.inst_17_a_1 Bool) (top.res.inst_16_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Bool) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Bool) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Bool) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.steam_boiler_waiting_a_0 Bool) (top.usr.physical_units_ready_a_0 Bool) (top.usr.stop_request_a_0 Bool) (top.usr.steam_a_0 Int) (top.usr.level_defect_a_0 Int) (top.usr.steam_defect_a_0 Int) (top.usr.pump_defect_0_a_0 Int) (top.usr.pump_defect_1_a_0 Int) (top.usr.pump_defect_2_a_0 Int) (top.usr.pump_defect_3_a_0 Int) (top.usr.pump_control_defect_0_a_0 Int) (top.usr.pump_control_defect_1_a_0 Int) (top.usr.pump_control_defect_2_a_0 Int) (top.usr.pump_control_defect_3_a_0 Int) (top.usr.q_a_0 Int) (top.usr.pump_state_0_a_0 Int) (top.usr.pump_state_1_a_0 Int) (top.usr.pump_state_2_a_0 Int) (top.usr.pump_state_3_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.op_mode_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Bool) (top.res.inst_52_a_0 Bool) (top.res.inst_51_a_0 Int) (top.res.inst_50_a_0 Bool) (top.res.inst_49_a_0 Bool) (top.res.inst_48_a_0 Bool) (top.res.inst_47_a_0 Bool) (top.res.inst_46_a_0 Bool) (top.res.inst_45_a_0 Bool) (top.res.inst_44_a_0 Bool) (top.res.inst_43_a_0 Bool) (top.res.inst_42_a_0 Bool) (top.res.inst_41_a_0 Bool) (top.res.inst_40_a_0 Bool) (top.res.inst_39_a_0 Bool) (top.res.inst_38_a_0 Bool) (top.res.inst_37_a_0 Bool) (top.res.inst_36_a_0 Bool) (top.res.inst_35_a_0 Bool) (top.res.inst_34_a_0 Bool) (top.res.inst_33_a_0 Bool) (top.res.inst_32_a_0 Bool) (top.res.inst_31_a_0 Bool) (top.res.inst_30_a_0 Bool) (top.res.inst_29_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.op_mode_a_1 top.res.abs_0_a_1) (let ((X1 (=> (= top.impl.usr.op_mode_a_1 3) (not top.usr.stop_request_a_1)))) (let ((X2 (=> (and (= top.impl.usr.op_mode_a_1 3) (= top.impl.usr.op_mode_a_0 3)) (not top.res.abs_1_a_1)))) (and (= top.usr.OK_a_1 (and X2 X1)) (__node_trans_ControlMode_0 top.usr.steam_boiler_waiting_a_1 top.usr.physical_units_ready_a_1 top.usr.stop_request_a_1 top.usr.steam_a_1 top.usr.level_defect_a_1 top.usr.steam_defect_a_1 top.usr.pump_defect_0_a_1 top.usr.pump_defect_1_a_1 top.usr.pump_defect_2_a_1 top.usr.pump_defect_3_a_1 top.usr.pump_control_defect_0_a_1 top.usr.pump_control_defect_1_a_1 top.usr.pump_control_defect_2_a_1 top.usr.pump_control_defect_3_a_1 top.usr.q_a_1 top.usr.pump_state_0_a_1 top.usr.pump_state_1_a_1 top.usr.pump_state_2_a_1 top.usr.pump_state_3_a_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.inst_52_a_1 top.res.inst_51_a_1 top.res.inst_50_a_1 top.res.inst_49_a_1 top.res.inst_48_a_1 top.res.inst_47_a_1 top.res.inst_46_a_1 top.res.inst_45_a_1 top.res.inst_44_a_1 top.res.inst_43_a_1 top.res.inst_42_a_1 top.res.inst_41_a_1 top.res.inst_40_a_1 top.res.inst_39_a_1 top.res.inst_38_a_1 top.res.inst_37_a_1 top.res.inst_36_a_1 top.res.inst_35_a_1 top.res.inst_34_a_1 top.res.inst_33_a_1 top.res.inst_32_a_1 top.res.inst_31_a_1 top.res.inst_30_a_1 top.res.inst_29_a_1 top.res.inst_28_a_1 top.res.inst_27_a_1 top.res.inst_26_a_1 top.res.inst_25_a_1 top.res.inst_24_a_1 top.res.inst_23_a_1 top.res.inst_22_a_1 top.res.inst_21_a_1 top.res.inst_20_a_1 top.res.inst_19_a_1 top.res.inst_18_a_1 top.res.inst_17_a_1 top.res.inst_16_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.usr.steam_boiler_waiting_a_0 top.usr.physical_units_ready_a_0 top.usr.stop_request_a_0 top.usr.steam_a_0 top.usr.level_defect_a_0 top.usr.steam_defect_a_0 top.usr.pump_defect_0_a_0 top.usr.pump_defect_1_a_0 top.usr.pump_defect_2_a_0 top.usr.pump_defect_3_a_0 top.usr.pump_control_defect_0_a_0 top.usr.pump_control_defect_1_a_0 top.usr.pump_control_defect_2_a_0 top.usr.pump_control_defect_3_a_0 top.usr.q_a_0 top.usr.pump_state_0_a_0 top.usr.pump_state_1_a_0 top.usr.pump_state_2_a_0 top.usr.pump_state_3_a_0 top.res.abs_0_a_0 top.res.inst_52_a_0 top.res.inst_51_a_0 top.res.inst_50_a_0 top.res.inst_49_a_0 top.res.inst_48_a_0 top.res.inst_47_a_0 top.res.inst_46_a_0 top.res.inst_45_a_0 top.res.inst_44_a_0 top.res.inst_43_a_0 top.res.inst_42_a_0 top.res.inst_41_a_0 top.res.inst_40_a_0 top.res.inst_39_a_0 top.res.inst_38_a_0 top.res.inst_37_a_0 top.res.inst_36_a_0 top.res.inst_35_a_0 top.res.inst_34_a_0 top.res.inst_33_a_0 top.res.inst_32_a_0 top.res.inst_31_a_0 top.res.inst_30_a_0 top.res.inst_29_a_0 top.res.inst_28_a_0 top.res.inst_27_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_trans_dangerous_level_0 top.usr.q_a_1 top.res.abs_1_a_1 top.res.inst_0_a_1 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) (<= 1 top.impl.usr.op_mode_a_1 6) (<= 1 top.res.abs_0_a_1 6) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.steam_boiler_waiting Bool) (top.usr.physical_units_ready Bool) (top.usr.stop_request Bool) (top.usr.steam Int) (top.usr.level_defect Int) (top.usr.steam_defect Int) (top.usr.pump_defect_0 Int) (top.usr.pump_defect_1 Int) (top.usr.pump_defect_2 Int) (top.usr.pump_defect_3 Int) (top.usr.pump_control_defect_0 Int) (top.usr.pump_control_defect_1 Int) (top.usr.pump_control_defect_2 Int) (top.usr.pump_control_defect_3 Int) (top.usr.q Int) (top.usr.pump_state_0 Int) (top.usr.pump_state_1 Int) (top.usr.pump_state_2 Int) (top.usr.pump_state_3 Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.op_mode Int) (top.res.abs_0 Int) (top.res.abs_1 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Int) (top.res.inst_50 Bool) (top.res.inst_49 Bool) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.steam_boiler_waiting Bool) (top.usr.physical_units_ready Bool) (top.usr.stop_request Bool) (top.usr.steam Int) (top.usr.level_defect Int) (top.usr.steam_defect Int) (top.usr.pump_defect_0 Int) (top.usr.pump_defect_1 Int) (top.usr.pump_defect_2 Int) (top.usr.pump_defect_3 Int) (top.usr.pump_control_defect_0 Int) (top.usr.pump_control_defect_1 Int) (top.usr.pump_control_defect_2 Int) (top.usr.pump_control_defect_3 Int) (top.usr.q Int) (top.usr.pump_state_0 Int) (top.usr.pump_state_1 Int) (top.usr.pump_state_2 Int) (top.usr.pump_state_3 Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.op_mode Int) (top.res.abs_0 Int) (top.res.abs_1 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Int) (top.res.inst_50 Bool) (top.res.inst_49 Bool) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.op_mode top.res.abs_0) (let ((X1 (=> (= top.impl.usr.op_mode 3) (not top.usr.stop_request)))) (let ((X2 true)) (and (= top.usr.OK (and X2 X1)) (__node_init_ControlMode_0 top.usr.steam_boiler_waiting top.usr.physical_units_ready top.usr.stop_request top.usr.steam top.usr.level_defect top.usr.steam_defect top.usr.pump_defect_0 top.usr.pump_defect_1 top.usr.pump_defect_2 top.usr.pump_defect_3 top.usr.pump_control_defect_0 top.usr.pump_control_defect_1 top.usr.pump_control_defect_2 top.usr.pump_control_defect_3 top.usr.q top.usr.pump_state_0 top.usr.pump_state_1 top.usr.pump_state_2 top.usr.pump_state_3 top.res.nondet_0 top.res.abs_0 top.res.inst_52 top.res.inst_51 top.res.inst_50 top.res.inst_49 top.res.inst_48 top.res.inst_47 top.res.inst_46 top.res.inst_45 top.res.inst_44 top.res.inst_43 top.res.inst_42 top.res.inst_41 top.res.inst_40 top.res.inst_39 top.res.inst_38 top.res.inst_37 top.res.inst_36 top.res.inst_35 top.res.inst_34 top.res.inst_33 top.res.inst_32 top.res.inst_31 top.res.inst_30 top.res.inst_29 top.res.inst_28 top.res.inst_27 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_init_dangerous_level_0 top.usr.q top.res.abs_1 top.res.inst_0) (<= 1 top.impl.usr.op_mode 6) (<= 1 top.res.abs_0 6) top.res.init_flag))))) +(define-fun trans ((top.usr.steam_boiler_waiting Bool) (top.usr.physical_units_ready Bool) (top.usr.stop_request Bool) (top.usr.steam Int) (top.usr.level_defect Int) (top.usr.steam_defect Int) (top.usr.pump_defect_0 Int) (top.usr.pump_defect_1 Int) (top.usr.pump_defect_2 Int) (top.usr.pump_defect_3 Int) (top.usr.pump_control_defect_0 Int) (top.usr.pump_control_defect_1 Int) (top.usr.pump_control_defect_2 Int) (top.usr.pump_control_defect_3 Int) (top.usr.q Int) (top.usr.pump_state_0 Int) (top.usr.pump_state_1 Int) (top.usr.pump_state_2 Int) (top.usr.pump_state_3 Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.op_mode Int) (top.res.abs_0 Int) (top.res.abs_1 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Int) (top.res.inst_50 Bool) (top.res.inst_49 Bool) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.steam_boiler_waiting! Bool) (top.usr.physical_units_ready! Bool) (top.usr.stop_request! Bool) (top.usr.steam! Int) (top.usr.level_defect! Int) (top.usr.steam_defect! Int) (top.usr.pump_defect_0! Int) (top.usr.pump_defect_1! Int) (top.usr.pump_defect_2! Int) (top.usr.pump_defect_3! Int) (top.usr.pump_control_defect_0! Int) (top.usr.pump_control_defect_1! Int) (top.usr.pump_control_defect_2! Int) (top.usr.pump_control_defect_3! Int) (top.usr.q! Int) (top.usr.pump_state_0! Int) (top.usr.pump_state_1! Int) (top.usr.pump_state_2! Int) (top.usr.pump_state_3! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.op_mode! Int) (top.res.abs_0! Int) (top.res.abs_1! Bool) (top.res.inst_52! Bool) (top.res.inst_51! Int) (top.res.inst_50! Bool) (top.res.inst_49! Bool) (top.res.inst_48! Bool) (top.res.inst_47! Bool) (top.res.inst_46! Bool) (top.res.inst_45! Bool) (top.res.inst_44! Bool) (top.res.inst_43! Bool) (top.res.inst_42! Bool) (top.res.inst_41! Bool) (top.res.inst_40! Bool) (top.res.inst_39! Bool) (top.res.inst_38! Bool) (top.res.inst_37! Bool) (top.res.inst_36! Bool) (top.res.inst_35! Bool) (top.res.inst_34! Bool) (top.res.inst_33! Bool) (top.res.inst_32! Bool) (top.res.inst_31! Bool) (top.res.inst_30! Bool) (top.res.inst_29! Bool) (top.res.inst_28! Bool) (top.res.inst_27! Bool) (top.res.inst_26! Bool) (top.res.inst_25! Bool) (top.res.inst_24! Bool) (top.res.inst_23! Bool) (top.res.inst_22! Bool) (top.res.inst_21! Bool) (top.res.inst_20! Bool) (top.res.inst_19! Bool) (top.res.inst_18! Bool) (top.res.inst_17! Bool) (top.res.inst_16! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Bool) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Bool) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Bool) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.impl.usr.op_mode! top.res.abs_0!) (let ((X1 (=> (= top.impl.usr.op_mode! 3) (not top.usr.stop_request!)))) (let ((X2 (=> (and (= top.impl.usr.op_mode! 3) (= top.impl.usr.op_mode 3)) (not top.res.abs_1!)))) (and (= top.usr.OK! (and X2 X1)) (__node_trans_ControlMode_0 top.usr.steam_boiler_waiting! top.usr.physical_units_ready! top.usr.stop_request! top.usr.steam! top.usr.level_defect! top.usr.steam_defect! top.usr.pump_defect_0! top.usr.pump_defect_1! top.usr.pump_defect_2! top.usr.pump_defect_3! top.usr.pump_control_defect_0! top.usr.pump_control_defect_1! top.usr.pump_control_defect_2! top.usr.pump_control_defect_3! top.usr.q! top.usr.pump_state_0! top.usr.pump_state_1! top.usr.pump_state_2! top.usr.pump_state_3! top.res.nondet_0 top.res.abs_0! top.res.inst_52! top.res.inst_51! top.res.inst_50! top.res.inst_49! top.res.inst_48! top.res.inst_47! top.res.inst_46! top.res.inst_45! top.res.inst_44! top.res.inst_43! top.res.inst_42! top.res.inst_41! top.res.inst_40! top.res.inst_39! top.res.inst_38! top.res.inst_37! top.res.inst_36! top.res.inst_35! top.res.inst_34! top.res.inst_33! top.res.inst_32! top.res.inst_31! top.res.inst_30! top.res.inst_29! top.res.inst_28! top.res.inst_27! top.res.inst_26! top.res.inst_25! top.res.inst_24! top.res.inst_23! top.res.inst_22! top.res.inst_21! top.res.inst_20! top.res.inst_19! top.res.inst_18! top.res.inst_17! top.res.inst_16! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.usr.steam_boiler_waiting top.usr.physical_units_ready top.usr.stop_request top.usr.steam top.usr.level_defect top.usr.steam_defect top.usr.pump_defect_0 top.usr.pump_defect_1 top.usr.pump_defect_2 top.usr.pump_defect_3 top.usr.pump_control_defect_0 top.usr.pump_control_defect_1 top.usr.pump_control_defect_2 top.usr.pump_control_defect_3 top.usr.q top.usr.pump_state_0 top.usr.pump_state_1 top.usr.pump_state_2 top.usr.pump_state_3 top.res.abs_0 top.res.inst_52 top.res.inst_51 top.res.inst_50 top.res.inst_49 top.res.inst_48 top.res.inst_47 top.res.inst_46 top.res.inst_45 top.res.inst_44 top.res.inst_43 top.res.inst_42 top.res.inst_41 top.res.inst_40 top.res.inst_39 top.res.inst_38 top.res.inst_37 top.res.inst_36 top.res.inst_35 top.res.inst_34 top.res.inst_33 top.res.inst_32 top.res.inst_31 top.res.inst_30 top.res.inst_29 top.res.inst_28 top.res.inst_27 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_trans_dangerous_level_0 top.usr.q! top.res.abs_1! top.res.inst_0! top.usr.q top.res.abs_1 top.res.inst_0) (<= 1 top.impl.usr.op_mode! 6) (<= 1 top.res.abs_0! 6) (not top.res.init_flag!))))) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.steam_boiler_waiting Bool) (top.usr.physical_units_ready Bool) (top.usr.stop_request Bool) (top.usr.steam Int) (top.usr.level_defect Int) (top.usr.steam_defect Int) (top.usr.pump_defect_0 Int) (top.usr.pump_defect_1 Int) (top.usr.pump_defect_2 Int) (top.usr.pump_defect_3 Int) (top.usr.pump_control_defect_0 Int) (top.usr.pump_control_defect_1 Int) (top.usr.pump_control_defect_2 Int) (top.usr.pump_control_defect_3 Int) (top.usr.q Int) (top.usr.pump_state_0 Int) (top.usr.pump_state_1 Int) (top.usr.pump_state_2 Int) (top.usr.pump_state_3 Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.op_mode Int) (top.res.abs_0 Int) (top.res.abs_1 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Int) (top.res.inst_50 Bool) (top.res.inst_49 Bool) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/steam_boiler_no_arr2_e3_514_e4_11150.sl b/benchmarks/LIA/Lustre/steam_boiler_no_arr2_e3_514_e4_11150.sl index 6777783..f911491 100644 --- a/benchmarks/LIA/Lustre/steam_boiler_no_arr2_e3_514_e4_11150.sl +++ b/benchmarks/LIA/Lustre/steam_boiler_no_arr2_e3_514_e4_11150.sl @@ -1,2635 +1,68 @@ (set-logic LIA) -(define-fun - __node_init_dangerous_level_0 ( - (dangerous_level.usr.q_a_0 Int) - (dangerous_level.usr.dangerous_level_a_0 Bool) - (dangerous_level.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - dangerous_level.usr.dangerous_level_a_0 - (or (<= dangerous_level.usr.q_a_0 150) (>= dangerous_level.usr.q_a_0 850))) - dangerous_level.res.init_flag_a_0) -) - -(define-fun - __node_trans_dangerous_level_0 ( - (dangerous_level.usr.q_a_1 Int) - (dangerous_level.usr.dangerous_level_a_1 Bool) - (dangerous_level.res.init_flag_a_1 Bool) - (dangerous_level.usr.q_a_0 Int) - (dangerous_level.usr.dangerous_level_a_0 Bool) - (dangerous_level.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - dangerous_level.usr.dangerous_level_a_1 - (or (<= dangerous_level.usr.q_a_1 150) (>= dangerous_level.usr.q_a_1 850))) - (not dangerous_level.res.init_flag_a_1)) -) - -(define-fun - __node_init_level_failure_0 ( - (level_failure.usr.level_defect_a_0 Int) - (level_failure.usr.level_failure_a_0 Bool) - (level_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - level_failure.usr.level_failure_a_0 - (not (= level_failure.usr.level_defect_a_0 0))) - level_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_level_failure_0 ( - (level_failure.usr.level_defect_a_1 Int) - (level_failure.usr.level_failure_a_1 Bool) - (level_failure.res.init_flag_a_1 Bool) - (level_failure.usr.level_defect_a_0 Int) - (level_failure.usr.level_failure_a_0 Bool) - (level_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - level_failure.usr.level_failure_a_1 - (not (= level_failure.usr.level_defect_a_1 0))) - (not level_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_steam_failure_0 ( - (steam_failure.usr.steam_defect_a_0 Int) - (steam_failure.usr.steam_failure_a_0 Bool) - (steam_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - steam_failure.usr.steam_failure_a_0 - (not (= steam_failure.usr.steam_defect_a_0 0))) - steam_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_steam_failure_0 ( - (steam_failure.usr.steam_defect_a_1 Int) - (steam_failure.usr.steam_failure_a_1 Bool) - (steam_failure.res.init_flag_a_1 Bool) - (steam_failure.usr.steam_defect_a_0 Int) - (steam_failure.usr.steam_failure_a_0 Bool) - (steam_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - steam_failure.usr.steam_failure_a_1 - (not (= steam_failure.usr.steam_defect_a_1 0))) - (not steam_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_OR_0 ( - (OR.usr.a_0_a_0 Bool) - (OR.usr.a_1_a_0 Bool) - (OR.usr.a_2_a_0 Bool) - (OR.usr.a_3_a_0 Bool) - (OR.usr.OR_a_0 Bool) - (OR.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - OR.usr.OR_a_0 - (or (or (or OR.usr.a_0_a_0 OR.usr.a_1_a_0) OR.usr.a_2_a_0) OR.usr.a_3_a_0)) - OR.res.init_flag_a_0) -) - -(define-fun - __node_trans_OR_0 ( - (OR.usr.a_0_a_1 Bool) - (OR.usr.a_1_a_1 Bool) - (OR.usr.a_2_a_1 Bool) - (OR.usr.a_3_a_1 Bool) - (OR.usr.OR_a_1 Bool) - (OR.res.init_flag_a_1 Bool) - (OR.usr.a_0_a_0 Bool) - (OR.usr.a_1_a_0 Bool) - (OR.usr.a_2_a_0 Bool) - (OR.usr.a_3_a_0 Bool) - (OR.usr.OR_a_0 Bool) - (OR.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - OR.usr.OR_a_1 - (or (or (or OR.usr.a_0_a_1 OR.usr.a_1_a_1) OR.usr.a_2_a_1) OR.usr.a_3_a_1)) - (not OR.res.init_flag_a_1)) -) - -(define-fun - __node_init_pump_control_failure_0 ( - (pump_control_failure.usr.pump_defect_a_0 Int) - (pump_control_failure.usr.pump_failure_a_0 Bool) - (pump_control_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - pump_control_failure.usr.pump_failure_a_0 - (not (= pump_control_failure.usr.pump_defect_a_0 0))) - pump_control_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_pump_control_failure_0 ( - (pump_control_failure.usr.pump_defect_a_1 Int) - (pump_control_failure.usr.pump_failure_a_1 Bool) - (pump_control_failure.res.init_flag_a_1 Bool) - (pump_control_failure.usr.pump_defect_a_0 Int) - (pump_control_failure.usr.pump_failure_a_0 Bool) - (pump_control_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - pump_control_failure.usr.pump_failure_a_1 - (not (= pump_control_failure.usr.pump_defect_a_1 0))) - (not pump_control_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_pump_failure_0 ( - (pump_failure.usr.pump_defect_a_0 Int) - (pump_failure.usr.pump_failure_a_0 Bool) - (pump_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - pump_failure.usr.pump_failure_a_0 - (not (= pump_failure.usr.pump_defect_a_0 0))) - pump_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_pump_failure_0 ( - (pump_failure.usr.pump_defect_a_1 Int) - (pump_failure.usr.pump_failure_a_1 Bool) - (pump_failure.res.init_flag_a_1 Bool) - (pump_failure.usr.pump_defect_a_0 Int) - (pump_failure.usr.pump_failure_a_0 Bool) - (pump_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - pump_failure.usr.pump_failure_a_1 - (not (= pump_failure.usr.pump_defect_a_1 0))) - (not pump_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_failure_0 ( - (failure.usr.level_defect_a_0 Int) - (failure.usr.steam_defect_a_0 Int) - (failure.usr.pump_defect_0_a_0 Int) - (failure.usr.pump_defect_1_a_0 Int) - (failure.usr.pump_defect_2_a_0 Int) - (failure.usr.pump_defect_3_a_0 Int) - (failure.usr.pump_control_defect_0_a_0 Int) - (failure.usr.pump_control_defect_1_a_0 Int) - (failure.usr.pump_control_defect_2_a_0 Int) - (failure.usr.pump_control_defect_3_a_0 Int) - (failure.usr.failure_a_0 Bool) - (failure.res.init_flag_a_0 Bool) - (failure.res.abs_0_a_0 Bool) - (failure.res.abs_1_a_0 Bool) - (failure.res.abs_2_a_0 Bool) - (failure.res.abs_3_a_0 Bool) - (failure.res.abs_4_a_0 Bool) - (failure.res.abs_5_a_0 Bool) - (failure.res.abs_6_a_0 Bool) - (failure.res.abs_7_a_0 Bool) - (failure.res.abs_8_a_0 Bool) - (failure.res.abs_9_a_0 Bool) - (failure.res.abs_10_a_0 Bool) - (failure.res.abs_11_a_0 Bool) - (failure.res.inst_11_a_0 Bool) - (failure.res.inst_10_a_0 Bool) - (failure.res.inst_9_a_0 Bool) - (failure.res.inst_8_a_0 Bool) - (failure.res.inst_7_a_0 Bool) - (failure.res.inst_6_a_0 Bool) - (failure.res.inst_5_a_0 Bool) - (failure.res.inst_4_a_0 Bool) - (failure.res.inst_3_a_0 Bool) - (failure.res.inst_2_a_0 Bool) - (failure.res.inst_1_a_0 Bool) - (failure.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - failure.usr.failure_a_0 - (or - (or (or failure.res.abs_0_a_0 failure.res.abs_1_a_0) failure.res.abs_6_a_0) - failure.res.abs_11_a_0)) - (__node_init_level_failure_0 - failure.usr.level_defect_a_0 - failure.res.abs_0_a_0 - failure.res.inst_11_a_0) - (__node_init_steam_failure_0 - failure.usr.steam_defect_a_0 - failure.res.abs_1_a_0 - failure.res.inst_10_a_0) - (__node_init_OR_0 - failure.res.abs_2_a_0 - failure.res.abs_3_a_0 - failure.res.abs_4_a_0 - failure.res.abs_5_a_0 - failure.res.abs_6_a_0 - failure.res.inst_9_a_0) - (__node_init_pump_failure_0 - failure.usr.pump_defect_0_a_0 - failure.res.abs_2_a_0 - failure.res.inst_8_a_0) - (__node_init_pump_failure_0 - failure.usr.pump_defect_1_a_0 - failure.res.abs_3_a_0 - failure.res.inst_7_a_0) - (__node_init_pump_failure_0 - failure.usr.pump_defect_2_a_0 - failure.res.abs_4_a_0 - failure.res.inst_6_a_0) - (__node_init_pump_failure_0 - failure.usr.pump_defect_3_a_0 - failure.res.abs_5_a_0 - failure.res.inst_5_a_0) - (__node_init_OR_0 - failure.res.abs_7_a_0 - failure.res.abs_8_a_0 - failure.res.abs_9_a_0 - failure.res.abs_10_a_0 - failure.res.abs_11_a_0 - failure.res.inst_4_a_0) - (__node_init_pump_control_failure_0 - failure.usr.pump_control_defect_0_a_0 - failure.res.abs_7_a_0 - failure.res.inst_3_a_0) - (__node_init_pump_control_failure_0 - failure.usr.pump_control_defect_1_a_0 - failure.res.abs_8_a_0 - failure.res.inst_2_a_0) - (__node_init_pump_control_failure_0 - failure.usr.pump_control_defect_2_a_0 - failure.res.abs_9_a_0 - failure.res.inst_1_a_0) - (__node_init_pump_control_failure_0 - failure.usr.pump_control_defect_3_a_0 - failure.res.abs_10_a_0 - failure.res.inst_0_a_0) - failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_failure_0 ( - (failure.usr.level_defect_a_1 Int) - (failure.usr.steam_defect_a_1 Int) - (failure.usr.pump_defect_0_a_1 Int) - (failure.usr.pump_defect_1_a_1 Int) - (failure.usr.pump_defect_2_a_1 Int) - (failure.usr.pump_defect_3_a_1 Int) - (failure.usr.pump_control_defect_0_a_1 Int) - (failure.usr.pump_control_defect_1_a_1 Int) - (failure.usr.pump_control_defect_2_a_1 Int) - (failure.usr.pump_control_defect_3_a_1 Int) - (failure.usr.failure_a_1 Bool) - (failure.res.init_flag_a_1 Bool) - (failure.res.abs_0_a_1 Bool) - (failure.res.abs_1_a_1 Bool) - (failure.res.abs_2_a_1 Bool) - (failure.res.abs_3_a_1 Bool) - (failure.res.abs_4_a_1 Bool) - (failure.res.abs_5_a_1 Bool) - (failure.res.abs_6_a_1 Bool) - (failure.res.abs_7_a_1 Bool) - (failure.res.abs_8_a_1 Bool) - (failure.res.abs_9_a_1 Bool) - (failure.res.abs_10_a_1 Bool) - (failure.res.abs_11_a_1 Bool) - (failure.res.inst_11_a_1 Bool) - (failure.res.inst_10_a_1 Bool) - (failure.res.inst_9_a_1 Bool) - (failure.res.inst_8_a_1 Bool) - (failure.res.inst_7_a_1 Bool) - (failure.res.inst_6_a_1 Bool) - (failure.res.inst_5_a_1 Bool) - (failure.res.inst_4_a_1 Bool) - (failure.res.inst_3_a_1 Bool) - (failure.res.inst_2_a_1 Bool) - (failure.res.inst_1_a_1 Bool) - (failure.res.inst_0_a_1 Bool) - (failure.usr.level_defect_a_0 Int) - (failure.usr.steam_defect_a_0 Int) - (failure.usr.pump_defect_0_a_0 Int) - (failure.usr.pump_defect_1_a_0 Int) - (failure.usr.pump_defect_2_a_0 Int) - (failure.usr.pump_defect_3_a_0 Int) - (failure.usr.pump_control_defect_0_a_0 Int) - (failure.usr.pump_control_defect_1_a_0 Int) - (failure.usr.pump_control_defect_2_a_0 Int) - (failure.usr.pump_control_defect_3_a_0 Int) - (failure.usr.failure_a_0 Bool) - (failure.res.init_flag_a_0 Bool) - (failure.res.abs_0_a_0 Bool) - (failure.res.abs_1_a_0 Bool) - (failure.res.abs_2_a_0 Bool) - (failure.res.abs_3_a_0 Bool) - (failure.res.abs_4_a_0 Bool) - (failure.res.abs_5_a_0 Bool) - (failure.res.abs_6_a_0 Bool) - (failure.res.abs_7_a_0 Bool) - (failure.res.abs_8_a_0 Bool) - (failure.res.abs_9_a_0 Bool) - (failure.res.abs_10_a_0 Bool) - (failure.res.abs_11_a_0 Bool) - (failure.res.inst_11_a_0 Bool) - (failure.res.inst_10_a_0 Bool) - (failure.res.inst_9_a_0 Bool) - (failure.res.inst_8_a_0 Bool) - (failure.res.inst_7_a_0 Bool) - (failure.res.inst_6_a_0 Bool) - (failure.res.inst_5_a_0 Bool) - (failure.res.inst_4_a_0 Bool) - (failure.res.inst_3_a_0 Bool) - (failure.res.inst_2_a_0 Bool) - (failure.res.inst_1_a_0 Bool) - (failure.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - failure.usr.failure_a_1 - (or - (or (or failure.res.abs_0_a_1 failure.res.abs_1_a_1) failure.res.abs_6_a_1) - failure.res.abs_11_a_1)) - (__node_trans_level_failure_0 - failure.usr.level_defect_a_1 - failure.res.abs_0_a_1 - failure.res.inst_11_a_1 - failure.usr.level_defect_a_0 - failure.res.abs_0_a_0 - failure.res.inst_11_a_0) - (__node_trans_steam_failure_0 - failure.usr.steam_defect_a_1 - failure.res.abs_1_a_1 - failure.res.inst_10_a_1 - failure.usr.steam_defect_a_0 - failure.res.abs_1_a_0 - failure.res.inst_10_a_0) - (__node_trans_OR_0 - failure.res.abs_2_a_1 - failure.res.abs_3_a_1 - failure.res.abs_4_a_1 - failure.res.abs_5_a_1 - failure.res.abs_6_a_1 - failure.res.inst_9_a_1 - failure.res.abs_2_a_0 - failure.res.abs_3_a_0 - failure.res.abs_4_a_0 - failure.res.abs_5_a_0 - failure.res.abs_6_a_0 - failure.res.inst_9_a_0) - (__node_trans_pump_failure_0 - failure.usr.pump_defect_0_a_1 - failure.res.abs_2_a_1 - failure.res.inst_8_a_1 - failure.usr.pump_defect_0_a_0 - failure.res.abs_2_a_0 - failure.res.inst_8_a_0) - (__node_trans_pump_failure_0 - failure.usr.pump_defect_1_a_1 - failure.res.abs_3_a_1 - failure.res.inst_7_a_1 - failure.usr.pump_defect_1_a_0 - failure.res.abs_3_a_0 - failure.res.inst_7_a_0) - (__node_trans_pump_failure_0 - failure.usr.pump_defect_2_a_1 - failure.res.abs_4_a_1 - failure.res.inst_6_a_1 - failure.usr.pump_defect_2_a_0 - failure.res.abs_4_a_0 - failure.res.inst_6_a_0) - (__node_trans_pump_failure_0 - failure.usr.pump_defect_3_a_1 - failure.res.abs_5_a_1 - failure.res.inst_5_a_1 - failure.usr.pump_defect_3_a_0 - failure.res.abs_5_a_0 - failure.res.inst_5_a_0) - (__node_trans_OR_0 - failure.res.abs_7_a_1 - failure.res.abs_8_a_1 - failure.res.abs_9_a_1 - failure.res.abs_10_a_1 - failure.res.abs_11_a_1 - failure.res.inst_4_a_1 - failure.res.abs_7_a_0 - failure.res.abs_8_a_0 - failure.res.abs_9_a_0 - failure.res.abs_10_a_0 - failure.res.abs_11_a_0 - failure.res.inst_4_a_0) - (__node_trans_pump_control_failure_0 - failure.usr.pump_control_defect_0_a_1 - failure.res.abs_7_a_1 - failure.res.inst_3_a_1 - failure.usr.pump_control_defect_0_a_0 - failure.res.abs_7_a_0 - failure.res.inst_3_a_0) - (__node_trans_pump_control_failure_0 - failure.usr.pump_control_defect_1_a_1 - failure.res.abs_8_a_1 - failure.res.inst_2_a_1 - failure.usr.pump_control_defect_1_a_0 - failure.res.abs_8_a_0 - failure.res.inst_2_a_0) - (__node_trans_pump_control_failure_0 - failure.usr.pump_control_defect_2_a_1 - failure.res.abs_9_a_1 - failure.res.inst_1_a_1 - failure.usr.pump_control_defect_2_a_0 - failure.res.abs_9_a_0 - failure.res.inst_1_a_0) - (__node_trans_pump_control_failure_0 - failure.usr.pump_control_defect_3_a_1 - failure.res.abs_10_a_1 - failure.res.inst_0_a_1 - failure.usr.pump_control_defect_3_a_0 - failure.res.abs_10_a_0 - failure.res.inst_0_a_0) - (not failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_steam_failure_startup_0 ( - (steam_failure_startup.usr.steam_a_0 Int) - (steam_failure_startup.usr.steam_failure_startup_a_0 Bool) - (steam_failure_startup.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - steam_failure_startup.usr.steam_failure_startup_a_0 - (not (= steam_failure_startup.usr.steam_a_0 0))) - steam_failure_startup.res.init_flag_a_0) -) - -(define-fun - __node_trans_steam_failure_startup_0 ( - (steam_failure_startup.usr.steam_a_1 Int) - (steam_failure_startup.usr.steam_failure_startup_a_1 Bool) - (steam_failure_startup.res.init_flag_a_1 Bool) - (steam_failure_startup.usr.steam_a_0 Int) - (steam_failure_startup.usr.steam_failure_startup_a_0 Bool) - (steam_failure_startup.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - steam_failure_startup.usr.steam_failure_startup_a_1 - (not (= steam_failure_startup.usr.steam_a_1 0))) - (not steam_failure_startup.res.init_flag_a_1)) -) - -(define-fun - __node_init_AND_0 ( - (AND.usr.a_0_a_0 Bool) - (AND.usr.a_1_a_0 Bool) - (AND.usr.a_2_a_0 Bool) - (AND.usr.a_3_a_0 Bool) - (AND.usr.AND_a_0 Bool) - (AND.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - AND.usr.AND_a_0 - (and (and (and AND.usr.a_0_a_0 AND.usr.a_1_a_0) AND.usr.a_2_a_0) AND.usr.a_3_a_0)) - AND.res.init_flag_a_0) -) - -(define-fun - __node_trans_AND_0 ( - (AND.usr.a_0_a_1 Bool) - (AND.usr.a_1_a_1 Bool) - (AND.usr.a_2_a_1 Bool) - (AND.usr.a_3_a_1 Bool) - (AND.usr.AND_a_1 Bool) - (AND.res.init_flag_a_1 Bool) - (AND.usr.a_0_a_0 Bool) - (AND.usr.a_1_a_0 Bool) - (AND.usr.a_2_a_0 Bool) - (AND.usr.a_3_a_0 Bool) - (AND.usr.AND_a_0 Bool) - (AND.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - AND.usr.AND_a_1 - (and (and (and AND.usr.a_0_a_1 AND.usr.a_1_a_1) AND.usr.a_2_a_1) AND.usr.a_3_a_1)) - (not AND.res.init_flag_a_1)) -) - -(define-fun - __node_init_transmission_failure_0 ( - (transmission_failure.usr.pump_state_0_a_0 Int) - (transmission_failure.usr.pump_state_1_a_0 Int) - (transmission_failure.usr.pump_state_2_a_0 Int) - (transmission_failure.usr.pump_state_3_a_0 Int) - (transmission_failure.usr.transmission_failure_a_0 Bool) - (transmission_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - transmission_failure.usr.transmission_failure_a_0 - (or - (or - (or - (= transmission_failure.usr.pump_state_0_a_0 3) - (= transmission_failure.usr.pump_state_1_a_0 3)) - (= transmission_failure.usr.pump_state_2_a_0 3)) - (= transmission_failure.usr.pump_state_3_a_0 3))) - transmission_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_transmission_failure_0 ( - (transmission_failure.usr.pump_state_0_a_1 Int) - (transmission_failure.usr.pump_state_1_a_1 Int) - (transmission_failure.usr.pump_state_2_a_1 Int) - (transmission_failure.usr.pump_state_3_a_1 Int) - (transmission_failure.usr.transmission_failure_a_1 Bool) - (transmission_failure.res.init_flag_a_1 Bool) - (transmission_failure.usr.pump_state_0_a_0 Int) - (transmission_failure.usr.pump_state_1_a_0 Int) - (transmission_failure.usr.pump_state_2_a_0 Int) - (transmission_failure.usr.pump_state_3_a_0 Int) - (transmission_failure.usr.transmission_failure_a_0 Bool) - (transmission_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - transmission_failure.usr.transmission_failure_a_1 - (or - (or - (or - (= transmission_failure.usr.pump_state_0_a_1 3) - (= transmission_failure.usr.pump_state_1_a_1 3)) - (= transmission_failure.usr.pump_state_2_a_1 3)) - (= transmission_failure.usr.pump_state_3_a_1 3))) - (not transmission_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_critical_failure_0 ( - (critical_failure.usr.op_mode_a_0 Int) - (critical_failure.usr.steam_a_0 Int) - (critical_failure.usr.level_defect_a_0 Int) - (critical_failure.usr.steam_defect_a_0 Int) - (critical_failure.usr.pump_defect_0_a_0 Int) - (critical_failure.usr.pump_defect_1_a_0 Int) - (critical_failure.usr.pump_defect_2_a_0 Int) - (critical_failure.usr.pump_defect_3_a_0 Int) - (critical_failure.usr.q_a_0 Int) - (critical_failure.usr.pump_state_0_a_0 Int) - (critical_failure.usr.pump_state_1_a_0 Int) - (critical_failure.usr.pump_state_2_a_0 Int) - (critical_failure.usr.pump_state_3_a_0 Int) - (critical_failure.usr.critical_failure_a_0 Bool) - (critical_failure.res.init_flag_a_0 Bool) - (critical_failure.res.abs_0_a_0 Bool) - (critical_failure.res.abs_1_a_0 Bool) - (critical_failure.res.abs_2_a_0 Bool) - (critical_failure.res.abs_3_a_0 Bool) - (critical_failure.res.abs_4_a_0 Bool) - (critical_failure.res.abs_5_a_0 Bool) - (critical_failure.res.abs_6_a_0 Bool) - (critical_failure.res.abs_7_a_0 Bool) - (critical_failure.res.abs_8_a_0 Bool) - (critical_failure.res.abs_9_a_0 Bool) - (critical_failure.res.inst_9_a_0 Bool) - (critical_failure.res.inst_8_a_0 Bool) - (critical_failure.res.inst_7_a_0 Bool) - (critical_failure.res.inst_6_a_0 Bool) - (critical_failure.res.inst_5_a_0 Bool) - (critical_failure.res.inst_4_a_0 Bool) - (critical_failure.res.inst_3_a_0 Bool) - (critical_failure.res.inst_2_a_0 Bool) - (critical_failure.res.inst_1_a_0 Bool) - (critical_failure.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - critical_failure.usr.critical_failure_a_0 - (or - (or - (or - (or - (or - critical_failure.res.abs_0_a_0 - (and - (= critical_failure.usr.op_mode_a_0 1) - critical_failure.res.abs_1_a_0)) - (and - (= critical_failure.usr.op_mode_a_0 2) - (or critical_failure.res.abs_2_a_0 critical_failure.res.abs_3_a_0))) - (and - (= critical_failure.usr.op_mode_a_0 3) - critical_failure.res.abs_4_a_0)) - (and (= critical_failure.usr.op_mode_a_0 4) critical_failure.res.abs_4_a_0)) - (and - (= critical_failure.usr.op_mode_a_0 5) - (or - (or critical_failure.res.abs_4_a_0 critical_failure.res.abs_3_a_0) - critical_failure.res.abs_9_a_0)))) - (__node_init_transmission_failure_0 - critical_failure.usr.pump_state_0_a_0 - critical_failure.usr.pump_state_1_a_0 - critical_failure.usr.pump_state_2_a_0 - critical_failure.usr.pump_state_3_a_0 - critical_failure.res.abs_0_a_0 - critical_failure.res.inst_9_a_0) - (__node_init_steam_failure_startup_0 - critical_failure.usr.steam_a_0 - critical_failure.res.abs_1_a_0 - critical_failure.res.inst_8_a_0) - (__node_init_level_failure_0 - critical_failure.usr.level_defect_a_0 - critical_failure.res.abs_2_a_0 - critical_failure.res.inst_7_a_0) - (__node_init_steam_failure_0 - critical_failure.usr.steam_defect_a_0 - critical_failure.res.abs_3_a_0 - critical_failure.res.inst_6_a_0) - (__node_init_dangerous_level_0 - critical_failure.usr.q_a_0 - critical_failure.res.abs_4_a_0 - critical_failure.res.inst_5_a_0) - (__node_init_AND_0 - critical_failure.res.abs_5_a_0 - critical_failure.res.abs_6_a_0 - critical_failure.res.abs_7_a_0 - critical_failure.res.abs_8_a_0 - critical_failure.res.abs_9_a_0 - critical_failure.res.inst_4_a_0) - (__node_init_pump_failure_0 - critical_failure.usr.pump_defect_0_a_0 - critical_failure.res.abs_5_a_0 - critical_failure.res.inst_3_a_0) - (__node_init_pump_failure_0 - critical_failure.usr.pump_defect_1_a_0 - critical_failure.res.abs_6_a_0 - critical_failure.res.inst_2_a_0) - (__node_init_pump_failure_0 - critical_failure.usr.pump_defect_2_a_0 - critical_failure.res.abs_7_a_0 - critical_failure.res.inst_1_a_0) - (__node_init_pump_failure_0 - critical_failure.usr.pump_defect_3_a_0 - critical_failure.res.abs_8_a_0 - critical_failure.res.inst_0_a_0) - critical_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_critical_failure_0 ( - (critical_failure.usr.op_mode_a_1 Int) - (critical_failure.usr.steam_a_1 Int) - (critical_failure.usr.level_defect_a_1 Int) - (critical_failure.usr.steam_defect_a_1 Int) - (critical_failure.usr.pump_defect_0_a_1 Int) - (critical_failure.usr.pump_defect_1_a_1 Int) - (critical_failure.usr.pump_defect_2_a_1 Int) - (critical_failure.usr.pump_defect_3_a_1 Int) - (critical_failure.usr.q_a_1 Int) - (critical_failure.usr.pump_state_0_a_1 Int) - (critical_failure.usr.pump_state_1_a_1 Int) - (critical_failure.usr.pump_state_2_a_1 Int) - (critical_failure.usr.pump_state_3_a_1 Int) - (critical_failure.usr.critical_failure_a_1 Bool) - (critical_failure.res.init_flag_a_1 Bool) - (critical_failure.res.abs_0_a_1 Bool) - (critical_failure.res.abs_1_a_1 Bool) - (critical_failure.res.abs_2_a_1 Bool) - (critical_failure.res.abs_3_a_1 Bool) - (critical_failure.res.abs_4_a_1 Bool) - (critical_failure.res.abs_5_a_1 Bool) - (critical_failure.res.abs_6_a_1 Bool) - (critical_failure.res.abs_7_a_1 Bool) - (critical_failure.res.abs_8_a_1 Bool) - (critical_failure.res.abs_9_a_1 Bool) - (critical_failure.res.inst_9_a_1 Bool) - (critical_failure.res.inst_8_a_1 Bool) - (critical_failure.res.inst_7_a_1 Bool) - (critical_failure.res.inst_6_a_1 Bool) - (critical_failure.res.inst_5_a_1 Bool) - (critical_failure.res.inst_4_a_1 Bool) - (critical_failure.res.inst_3_a_1 Bool) - (critical_failure.res.inst_2_a_1 Bool) - (critical_failure.res.inst_1_a_1 Bool) - (critical_failure.res.inst_0_a_1 Bool) - (critical_failure.usr.op_mode_a_0 Int) - (critical_failure.usr.steam_a_0 Int) - (critical_failure.usr.level_defect_a_0 Int) - (critical_failure.usr.steam_defect_a_0 Int) - (critical_failure.usr.pump_defect_0_a_0 Int) - (critical_failure.usr.pump_defect_1_a_0 Int) - (critical_failure.usr.pump_defect_2_a_0 Int) - (critical_failure.usr.pump_defect_3_a_0 Int) - (critical_failure.usr.q_a_0 Int) - (critical_failure.usr.pump_state_0_a_0 Int) - (critical_failure.usr.pump_state_1_a_0 Int) - (critical_failure.usr.pump_state_2_a_0 Int) - (critical_failure.usr.pump_state_3_a_0 Int) - (critical_failure.usr.critical_failure_a_0 Bool) - (critical_failure.res.init_flag_a_0 Bool) - (critical_failure.res.abs_0_a_0 Bool) - (critical_failure.res.abs_1_a_0 Bool) - (critical_failure.res.abs_2_a_0 Bool) - (critical_failure.res.abs_3_a_0 Bool) - (critical_failure.res.abs_4_a_0 Bool) - (critical_failure.res.abs_5_a_0 Bool) - (critical_failure.res.abs_6_a_0 Bool) - (critical_failure.res.abs_7_a_0 Bool) - (critical_failure.res.abs_8_a_0 Bool) - (critical_failure.res.abs_9_a_0 Bool) - (critical_failure.res.inst_9_a_0 Bool) - (critical_failure.res.inst_8_a_0 Bool) - (critical_failure.res.inst_7_a_0 Bool) - (critical_failure.res.inst_6_a_0 Bool) - (critical_failure.res.inst_5_a_0 Bool) - (critical_failure.res.inst_4_a_0 Bool) - (critical_failure.res.inst_3_a_0 Bool) - (critical_failure.res.inst_2_a_0 Bool) - (critical_failure.res.inst_1_a_0 Bool) - (critical_failure.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - critical_failure.usr.critical_failure_a_1 - (or - (or - (or - (or - (or - critical_failure.res.abs_0_a_1 - (and - (= critical_failure.usr.op_mode_a_1 1) - critical_failure.res.abs_1_a_1)) - (and - (= critical_failure.usr.op_mode_a_1 2) - (or critical_failure.res.abs_2_a_1 critical_failure.res.abs_3_a_1))) - (and - (= critical_failure.usr.op_mode_a_1 3) - critical_failure.res.abs_4_a_1)) - (and (= critical_failure.usr.op_mode_a_1 4) critical_failure.res.abs_4_a_1)) - (and - (= critical_failure.usr.op_mode_a_1 5) - (or - (or critical_failure.res.abs_4_a_1 critical_failure.res.abs_3_a_1) - critical_failure.res.abs_9_a_1)))) - (__node_trans_transmission_failure_0 - critical_failure.usr.pump_state_0_a_1 - critical_failure.usr.pump_state_1_a_1 - critical_failure.usr.pump_state_2_a_1 - critical_failure.usr.pump_state_3_a_1 - critical_failure.res.abs_0_a_1 - critical_failure.res.inst_9_a_1 - critical_failure.usr.pump_state_0_a_0 - critical_failure.usr.pump_state_1_a_0 - critical_failure.usr.pump_state_2_a_0 - critical_failure.usr.pump_state_3_a_0 - critical_failure.res.abs_0_a_0 - critical_failure.res.inst_9_a_0) - (__node_trans_steam_failure_startup_0 - critical_failure.usr.steam_a_1 - critical_failure.res.abs_1_a_1 - critical_failure.res.inst_8_a_1 - critical_failure.usr.steam_a_0 - critical_failure.res.abs_1_a_0 - critical_failure.res.inst_8_a_0) - (__node_trans_level_failure_0 - critical_failure.usr.level_defect_a_1 - critical_failure.res.abs_2_a_1 - critical_failure.res.inst_7_a_1 - critical_failure.usr.level_defect_a_0 - critical_failure.res.abs_2_a_0 - critical_failure.res.inst_7_a_0) - (__node_trans_steam_failure_0 - critical_failure.usr.steam_defect_a_1 - critical_failure.res.abs_3_a_1 - critical_failure.res.inst_6_a_1 - critical_failure.usr.steam_defect_a_0 - critical_failure.res.abs_3_a_0 - critical_failure.res.inst_6_a_0) - (__node_trans_dangerous_level_0 - critical_failure.usr.q_a_1 - critical_failure.res.abs_4_a_1 - critical_failure.res.inst_5_a_1 - critical_failure.usr.q_a_0 - critical_failure.res.abs_4_a_0 - critical_failure.res.inst_5_a_0) - (__node_trans_AND_0 - critical_failure.res.abs_5_a_1 - critical_failure.res.abs_6_a_1 - critical_failure.res.abs_7_a_1 - critical_failure.res.abs_8_a_1 - critical_failure.res.abs_9_a_1 - critical_failure.res.inst_4_a_1 - critical_failure.res.abs_5_a_0 - critical_failure.res.abs_6_a_0 - critical_failure.res.abs_7_a_0 - critical_failure.res.abs_8_a_0 - critical_failure.res.abs_9_a_0 - critical_failure.res.inst_4_a_0) - (__node_trans_pump_failure_0 - critical_failure.usr.pump_defect_0_a_1 - critical_failure.res.abs_5_a_1 - critical_failure.res.inst_3_a_1 - critical_failure.usr.pump_defect_0_a_0 - critical_failure.res.abs_5_a_0 - critical_failure.res.inst_3_a_0) - (__node_trans_pump_failure_0 - critical_failure.usr.pump_defect_1_a_1 - critical_failure.res.abs_6_a_1 - critical_failure.res.inst_2_a_1 - critical_failure.usr.pump_defect_1_a_0 - critical_failure.res.abs_6_a_0 - critical_failure.res.inst_2_a_0) - (__node_trans_pump_failure_0 - critical_failure.usr.pump_defect_2_a_1 - critical_failure.res.abs_7_a_1 - critical_failure.res.inst_1_a_1 - critical_failure.usr.pump_defect_2_a_0 - critical_failure.res.abs_7_a_0 - critical_failure.res.inst_1_a_0) - (__node_trans_pump_failure_0 - critical_failure.usr.pump_defect_3_a_1 - critical_failure.res.abs_8_a_1 - critical_failure.res.inst_0_a_1 - critical_failure.usr.pump_defect_3_a_0 - critical_failure.res.abs_8_a_0 - critical_failure.res.inst_0_a_0) - (not critical_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_ControlMode_0 ( - (ControlMode.usr.steam_boiler_waiting_a_0 Bool) - (ControlMode.usr.physical_units_ready_a_0 Bool) - (ControlMode.usr.stop_request_a_0 Bool) - (ControlMode.usr.steam_a_0 Int) - (ControlMode.usr.level_defect_a_0 Int) - (ControlMode.usr.steam_defect_a_0 Int) - (ControlMode.usr.pump_defect_0_a_0 Int) - (ControlMode.usr.pump_defect_1_a_0 Int) - (ControlMode.usr.pump_defect_2_a_0 Int) - (ControlMode.usr.pump_defect_3_a_0 Int) - (ControlMode.usr.pump_control_defect_0_a_0 Int) - (ControlMode.usr.pump_control_defect_1_a_0 Int) - (ControlMode.usr.pump_control_defect_2_a_0 Int) - (ControlMode.usr.pump_control_defect_3_a_0 Int) - (ControlMode.usr.q_a_0 Int) - (ControlMode.usr.pump_state_0_a_0 Int) - (ControlMode.usr.pump_state_1_a_0 Int) - (ControlMode.usr.pump_state_2_a_0 Int) - (ControlMode.usr.pump_state_3_a_0 Int) - (ControlMode.res.nondet_0 Int) - (ControlMode.usr.op_mode_a_0 Int) - (ControlMode.res.init_flag_a_0 Bool) - (ControlMode.res.abs_0_a_0 Int) - (ControlMode.res.abs_1_a_0 Bool) - (ControlMode.res.abs_2_a_0 Bool) - (ControlMode.res.abs_3_a_0 Bool) - (ControlMode.res.inst_46_a_0 Bool) - (ControlMode.res.inst_45_a_0 Bool) - (ControlMode.res.inst_44_a_0 Bool) - (ControlMode.res.inst_43_a_0 Bool) - (ControlMode.res.inst_42_a_0 Bool) - (ControlMode.res.inst_41_a_0 Bool) - (ControlMode.res.inst_40_a_0 Bool) - (ControlMode.res.inst_39_a_0 Bool) - (ControlMode.res.inst_38_a_0 Bool) - (ControlMode.res.inst_37_a_0 Bool) - (ControlMode.res.inst_36_a_0 Bool) - (ControlMode.res.inst_35_a_0 Bool) - (ControlMode.res.inst_34_a_0 Bool) - (ControlMode.res.inst_33_a_0 Bool) - (ControlMode.res.inst_32_a_0 Bool) - (ControlMode.res.inst_31_a_0 Bool) - (ControlMode.res.inst_30_a_0 Bool) - (ControlMode.res.inst_29_a_0 Bool) - (ControlMode.res.inst_28_a_0 Bool) - (ControlMode.res.inst_27_a_0 Bool) - (ControlMode.res.inst_26_a_0 Bool) - (ControlMode.res.inst_25_a_0 Bool) - (ControlMode.res.inst_24_a_0 Bool) - (ControlMode.res.inst_23_a_0 Bool) - (ControlMode.res.inst_22_a_0 Bool) - (ControlMode.res.inst_21_a_0 Bool) - (ControlMode.res.inst_20_a_0 Bool) - (ControlMode.res.inst_19_a_0 Bool) - (ControlMode.res.inst_18_a_0 Bool) - (ControlMode.res.inst_17_a_0 Bool) - (ControlMode.res.inst_16_a_0 Bool) - (ControlMode.res.inst_15_a_0 Bool) - (ControlMode.res.inst_14_a_0 Bool) - (ControlMode.res.inst_13_a_0 Bool) - (ControlMode.res.inst_12_a_0 Bool) - (ControlMode.res.inst_11_a_0 Bool) - (ControlMode.res.inst_10_a_0 Bool) - (ControlMode.res.inst_9_a_0 Bool) - (ControlMode.res.inst_8_a_0 Bool) - (ControlMode.res.inst_7_a_0 Bool) - (ControlMode.res.inst_6_a_0 Bool) - (ControlMode.res.inst_5_a_0 Bool) - (ControlMode.res.inst_4_a_0 Bool) - (ControlMode.res.inst_3_a_0 Bool) - (ControlMode.res.inst_2_a_0 Bool) - (ControlMode.res.inst_1_a_0 Bool) - (ControlMode.res.inst_0_a_0 Bool) - ) Bool - - (and - (= ControlMode.usr.op_mode_a_0 1) - (= ControlMode.res.abs_0_a_0 (let ((X1 Int ControlMode.res.nondet_0)) X1)) - (__node_init_critical_failure_0 - ControlMode.res.abs_0_a_0 - ControlMode.usr.steam_a_0 - ControlMode.usr.level_defect_a_0 - ControlMode.usr.steam_defect_a_0 - ControlMode.usr.pump_defect_0_a_0 - ControlMode.usr.pump_defect_1_a_0 - ControlMode.usr.pump_defect_2_a_0 - ControlMode.usr.pump_defect_3_a_0 - ControlMode.usr.q_a_0 - ControlMode.usr.pump_state_0_a_0 - ControlMode.usr.pump_state_1_a_0 - ControlMode.usr.pump_state_2_a_0 - ControlMode.usr.pump_state_3_a_0 - ControlMode.res.abs_1_a_0 - ControlMode.res.inst_46_a_0 - ControlMode.res.inst_45_a_0 - ControlMode.res.inst_44_a_0 - ControlMode.res.inst_43_a_0 - ControlMode.res.inst_42_a_0 - ControlMode.res.inst_41_a_0 - ControlMode.res.inst_40_a_0 - ControlMode.res.inst_39_a_0 - ControlMode.res.inst_38_a_0 - ControlMode.res.inst_37_a_0 - ControlMode.res.inst_36_a_0 - ControlMode.res.inst_35_a_0 - ControlMode.res.inst_34_a_0 - ControlMode.res.inst_33_a_0 - ControlMode.res.inst_32_a_0 - ControlMode.res.inst_31_a_0 - ControlMode.res.inst_30_a_0 - ControlMode.res.inst_29_a_0 - ControlMode.res.inst_28_a_0 - ControlMode.res.inst_27_a_0 - ControlMode.res.inst_26_a_0) - (__node_init_level_failure_0 - ControlMode.usr.level_defect_a_0 - ControlMode.res.abs_2_a_0 - ControlMode.res.inst_25_a_0) - (__node_init_failure_0 - ControlMode.usr.level_defect_a_0 - ControlMode.usr.steam_defect_a_0 - ControlMode.usr.pump_defect_0_a_0 - ControlMode.usr.pump_defect_1_a_0 - ControlMode.usr.pump_defect_2_a_0 - ControlMode.usr.pump_defect_3_a_0 - ControlMode.usr.pump_control_defect_0_a_0 - ControlMode.usr.pump_control_defect_1_a_0 - ControlMode.usr.pump_control_defect_2_a_0 - ControlMode.usr.pump_control_defect_3_a_0 - ControlMode.res.abs_3_a_0 - ControlMode.res.inst_24_a_0 - ControlMode.res.inst_23_a_0 - ControlMode.res.inst_22_a_0 - ControlMode.res.inst_21_a_0 - ControlMode.res.inst_20_a_0 - ControlMode.res.inst_19_a_0 - ControlMode.res.inst_18_a_0 - ControlMode.res.inst_17_a_0 - ControlMode.res.inst_16_a_0 - ControlMode.res.inst_15_a_0 - ControlMode.res.inst_14_a_0 - ControlMode.res.inst_13_a_0 - ControlMode.res.inst_12_a_0 - ControlMode.res.inst_11_a_0 - ControlMode.res.inst_10_a_0 - ControlMode.res.inst_9_a_0 - ControlMode.res.inst_8_a_0 - ControlMode.res.inst_7_a_0 - ControlMode.res.inst_6_a_0 - ControlMode.res.inst_5_a_0 - ControlMode.res.inst_4_a_0 - ControlMode.res.inst_3_a_0 - ControlMode.res.inst_2_a_0 - ControlMode.res.inst_1_a_0 - ControlMode.res.inst_0_a_0) - (<= 1 ControlMode.usr.op_mode_a_0 6) - ControlMode.res.init_flag_a_0) -) - -(define-fun - __node_trans_ControlMode_0 ( - (ControlMode.usr.steam_boiler_waiting_a_1 Bool) - (ControlMode.usr.physical_units_ready_a_1 Bool) - (ControlMode.usr.stop_request_a_1 Bool) - (ControlMode.usr.steam_a_1 Int) - (ControlMode.usr.level_defect_a_1 Int) - (ControlMode.usr.steam_defect_a_1 Int) - (ControlMode.usr.pump_defect_0_a_1 Int) - (ControlMode.usr.pump_defect_1_a_1 Int) - (ControlMode.usr.pump_defect_2_a_1 Int) - (ControlMode.usr.pump_defect_3_a_1 Int) - (ControlMode.usr.pump_control_defect_0_a_1 Int) - (ControlMode.usr.pump_control_defect_1_a_1 Int) - (ControlMode.usr.pump_control_defect_2_a_1 Int) - (ControlMode.usr.pump_control_defect_3_a_1 Int) - (ControlMode.usr.q_a_1 Int) - (ControlMode.usr.pump_state_0_a_1 Int) - (ControlMode.usr.pump_state_1_a_1 Int) - (ControlMode.usr.pump_state_2_a_1 Int) - (ControlMode.usr.pump_state_3_a_1 Int) - (ControlMode.res.nondet_0 Int) - (ControlMode.usr.op_mode_a_1 Int) - (ControlMode.res.init_flag_a_1 Bool) - (ControlMode.res.abs_0_a_1 Int) - (ControlMode.res.abs_1_a_1 Bool) - (ControlMode.res.abs_2_a_1 Bool) - (ControlMode.res.abs_3_a_1 Bool) - (ControlMode.res.inst_46_a_1 Bool) - (ControlMode.res.inst_45_a_1 Bool) - (ControlMode.res.inst_44_a_1 Bool) - (ControlMode.res.inst_43_a_1 Bool) - (ControlMode.res.inst_42_a_1 Bool) - (ControlMode.res.inst_41_a_1 Bool) - (ControlMode.res.inst_40_a_1 Bool) - (ControlMode.res.inst_39_a_1 Bool) - (ControlMode.res.inst_38_a_1 Bool) - (ControlMode.res.inst_37_a_1 Bool) - (ControlMode.res.inst_36_a_1 Bool) - (ControlMode.res.inst_35_a_1 Bool) - (ControlMode.res.inst_34_a_1 Bool) - (ControlMode.res.inst_33_a_1 Bool) - (ControlMode.res.inst_32_a_1 Bool) - (ControlMode.res.inst_31_a_1 Bool) - (ControlMode.res.inst_30_a_1 Bool) - (ControlMode.res.inst_29_a_1 Bool) - (ControlMode.res.inst_28_a_1 Bool) - (ControlMode.res.inst_27_a_1 Bool) - (ControlMode.res.inst_26_a_1 Bool) - (ControlMode.res.inst_25_a_1 Bool) - (ControlMode.res.inst_24_a_1 Bool) - (ControlMode.res.inst_23_a_1 Bool) - (ControlMode.res.inst_22_a_1 Bool) - (ControlMode.res.inst_21_a_1 Bool) - (ControlMode.res.inst_20_a_1 Bool) - (ControlMode.res.inst_19_a_1 Bool) - (ControlMode.res.inst_18_a_1 Bool) - (ControlMode.res.inst_17_a_1 Bool) - (ControlMode.res.inst_16_a_1 Bool) - (ControlMode.res.inst_15_a_1 Bool) - (ControlMode.res.inst_14_a_1 Bool) - (ControlMode.res.inst_13_a_1 Bool) - (ControlMode.res.inst_12_a_1 Bool) - (ControlMode.res.inst_11_a_1 Bool) - (ControlMode.res.inst_10_a_1 Bool) - (ControlMode.res.inst_9_a_1 Bool) - (ControlMode.res.inst_8_a_1 Bool) - (ControlMode.res.inst_7_a_1 Bool) - (ControlMode.res.inst_6_a_1 Bool) - (ControlMode.res.inst_5_a_1 Bool) - (ControlMode.res.inst_4_a_1 Bool) - (ControlMode.res.inst_3_a_1 Bool) - (ControlMode.res.inst_2_a_1 Bool) - (ControlMode.res.inst_1_a_1 Bool) - (ControlMode.res.inst_0_a_1 Bool) - (ControlMode.usr.steam_boiler_waiting_a_0 Bool) - (ControlMode.usr.physical_units_ready_a_0 Bool) - (ControlMode.usr.stop_request_a_0 Bool) - (ControlMode.usr.steam_a_0 Int) - (ControlMode.usr.level_defect_a_0 Int) - (ControlMode.usr.steam_defect_a_0 Int) - (ControlMode.usr.pump_defect_0_a_0 Int) - (ControlMode.usr.pump_defect_1_a_0 Int) - (ControlMode.usr.pump_defect_2_a_0 Int) - (ControlMode.usr.pump_defect_3_a_0 Int) - (ControlMode.usr.pump_control_defect_0_a_0 Int) - (ControlMode.usr.pump_control_defect_1_a_0 Int) - (ControlMode.usr.pump_control_defect_2_a_0 Int) - (ControlMode.usr.pump_control_defect_3_a_0 Int) - (ControlMode.usr.q_a_0 Int) - (ControlMode.usr.pump_state_0_a_0 Int) - (ControlMode.usr.pump_state_1_a_0 Int) - (ControlMode.usr.pump_state_2_a_0 Int) - (ControlMode.usr.pump_state_3_a_0 Int) - (ControlMode.usr.op_mode_a_0 Int) - (ControlMode.res.init_flag_a_0 Bool) - (ControlMode.res.abs_0_a_0 Int) - (ControlMode.res.abs_1_a_0 Bool) - (ControlMode.res.abs_2_a_0 Bool) - (ControlMode.res.abs_3_a_0 Bool) - (ControlMode.res.inst_46_a_0 Bool) - (ControlMode.res.inst_45_a_0 Bool) - (ControlMode.res.inst_44_a_0 Bool) - (ControlMode.res.inst_43_a_0 Bool) - (ControlMode.res.inst_42_a_0 Bool) - (ControlMode.res.inst_41_a_0 Bool) - (ControlMode.res.inst_40_a_0 Bool) - (ControlMode.res.inst_39_a_0 Bool) - (ControlMode.res.inst_38_a_0 Bool) - (ControlMode.res.inst_37_a_0 Bool) - (ControlMode.res.inst_36_a_0 Bool) - (ControlMode.res.inst_35_a_0 Bool) - (ControlMode.res.inst_34_a_0 Bool) - (ControlMode.res.inst_33_a_0 Bool) - (ControlMode.res.inst_32_a_0 Bool) - (ControlMode.res.inst_31_a_0 Bool) - (ControlMode.res.inst_30_a_0 Bool) - (ControlMode.res.inst_29_a_0 Bool) - (ControlMode.res.inst_28_a_0 Bool) - (ControlMode.res.inst_27_a_0 Bool) - (ControlMode.res.inst_26_a_0 Bool) - (ControlMode.res.inst_25_a_0 Bool) - (ControlMode.res.inst_24_a_0 Bool) - (ControlMode.res.inst_23_a_0 Bool) - (ControlMode.res.inst_22_a_0 Bool) - (ControlMode.res.inst_21_a_0 Bool) - (ControlMode.res.inst_20_a_0 Bool) - (ControlMode.res.inst_19_a_0 Bool) - (ControlMode.res.inst_18_a_0 Bool) - (ControlMode.res.inst_17_a_0 Bool) - (ControlMode.res.inst_16_a_0 Bool) - (ControlMode.res.inst_15_a_0 Bool) - (ControlMode.res.inst_14_a_0 Bool) - (ControlMode.res.inst_13_a_0 Bool) - (ControlMode.res.inst_12_a_0 Bool) - (ControlMode.res.inst_11_a_0 Bool) - (ControlMode.res.inst_10_a_0 Bool) - (ControlMode.res.inst_9_a_0 Bool) - (ControlMode.res.inst_8_a_0 Bool) - (ControlMode.res.inst_7_a_0 Bool) - (ControlMode.res.inst_6_a_0 Bool) - (ControlMode.res.inst_5_a_0 Bool) - (ControlMode.res.inst_4_a_0 Bool) - (ControlMode.res.inst_3_a_0 Bool) - (ControlMode.res.inst_2_a_0 Bool) - (ControlMode.res.inst_1_a_0 Bool) - (ControlMode.res.inst_0_a_0 Bool) - ) Bool - - (and - (= ControlMode.res.abs_0_a_1 ControlMode.usr.op_mode_a_0) - (= - ControlMode.usr.op_mode_a_1 - (ite - (or - (or ControlMode.res.abs_1_a_1 ControlMode.usr.stop_request_a_1) - (= ControlMode.usr.op_mode_a_0 6)) - 6 - (ite - (= ControlMode.usr.op_mode_a_0 1) - (ite ControlMode.usr.steam_boiler_waiting_a_1 2 1) - (ite - (and - (= ControlMode.usr.op_mode_a_0 2) - (not ControlMode.usr.physical_units_ready_a_1)) - 2 - (ite ControlMode.res.abs_2_a_1 5 (ite ControlMode.res.abs_3_a_1 4 3)))))) - (__node_trans_critical_failure_0 - ControlMode.res.abs_0_a_1 - ControlMode.usr.steam_a_1 - ControlMode.usr.level_defect_a_1 - ControlMode.usr.steam_defect_a_1 - ControlMode.usr.pump_defect_0_a_1 - ControlMode.usr.pump_defect_1_a_1 - ControlMode.usr.pump_defect_2_a_1 - ControlMode.usr.pump_defect_3_a_1 - ControlMode.usr.q_a_1 - ControlMode.usr.pump_state_0_a_1 - ControlMode.usr.pump_state_1_a_1 - ControlMode.usr.pump_state_2_a_1 - ControlMode.usr.pump_state_3_a_1 - ControlMode.res.abs_1_a_1 - ControlMode.res.inst_46_a_1 - ControlMode.res.inst_45_a_1 - ControlMode.res.inst_44_a_1 - ControlMode.res.inst_43_a_1 - ControlMode.res.inst_42_a_1 - ControlMode.res.inst_41_a_1 - ControlMode.res.inst_40_a_1 - ControlMode.res.inst_39_a_1 - ControlMode.res.inst_38_a_1 - ControlMode.res.inst_37_a_1 - ControlMode.res.inst_36_a_1 - ControlMode.res.inst_35_a_1 - ControlMode.res.inst_34_a_1 - ControlMode.res.inst_33_a_1 - ControlMode.res.inst_32_a_1 - ControlMode.res.inst_31_a_1 - ControlMode.res.inst_30_a_1 - ControlMode.res.inst_29_a_1 - ControlMode.res.inst_28_a_1 - ControlMode.res.inst_27_a_1 - ControlMode.res.inst_26_a_1 - ControlMode.res.abs_0_a_0 - ControlMode.usr.steam_a_0 - ControlMode.usr.level_defect_a_0 - ControlMode.usr.steam_defect_a_0 - ControlMode.usr.pump_defect_0_a_0 - ControlMode.usr.pump_defect_1_a_0 - ControlMode.usr.pump_defect_2_a_0 - ControlMode.usr.pump_defect_3_a_0 - ControlMode.usr.q_a_0 - ControlMode.usr.pump_state_0_a_0 - ControlMode.usr.pump_state_1_a_0 - ControlMode.usr.pump_state_2_a_0 - ControlMode.usr.pump_state_3_a_0 - ControlMode.res.abs_1_a_0 - ControlMode.res.inst_46_a_0 - ControlMode.res.inst_45_a_0 - ControlMode.res.inst_44_a_0 - ControlMode.res.inst_43_a_0 - ControlMode.res.inst_42_a_0 - ControlMode.res.inst_41_a_0 - ControlMode.res.inst_40_a_0 - ControlMode.res.inst_39_a_0 - ControlMode.res.inst_38_a_0 - ControlMode.res.inst_37_a_0 - ControlMode.res.inst_36_a_0 - ControlMode.res.inst_35_a_0 - ControlMode.res.inst_34_a_0 - ControlMode.res.inst_33_a_0 - ControlMode.res.inst_32_a_0 - ControlMode.res.inst_31_a_0 - ControlMode.res.inst_30_a_0 - ControlMode.res.inst_29_a_0 - ControlMode.res.inst_28_a_0 - ControlMode.res.inst_27_a_0 - ControlMode.res.inst_26_a_0) - (__node_trans_level_failure_0 - ControlMode.usr.level_defect_a_1 - ControlMode.res.abs_2_a_1 - ControlMode.res.inst_25_a_1 - ControlMode.usr.level_defect_a_0 - ControlMode.res.abs_2_a_0 - ControlMode.res.inst_25_a_0) - (__node_trans_failure_0 - ControlMode.usr.level_defect_a_1 - ControlMode.usr.steam_defect_a_1 - ControlMode.usr.pump_defect_0_a_1 - ControlMode.usr.pump_defect_1_a_1 - ControlMode.usr.pump_defect_2_a_1 - ControlMode.usr.pump_defect_3_a_1 - ControlMode.usr.pump_control_defect_0_a_1 - ControlMode.usr.pump_control_defect_1_a_1 - ControlMode.usr.pump_control_defect_2_a_1 - ControlMode.usr.pump_control_defect_3_a_1 - ControlMode.res.abs_3_a_1 - ControlMode.res.inst_24_a_1 - ControlMode.res.inst_23_a_1 - ControlMode.res.inst_22_a_1 - ControlMode.res.inst_21_a_1 - ControlMode.res.inst_20_a_1 - ControlMode.res.inst_19_a_1 - ControlMode.res.inst_18_a_1 - ControlMode.res.inst_17_a_1 - ControlMode.res.inst_16_a_1 - ControlMode.res.inst_15_a_1 - ControlMode.res.inst_14_a_1 - ControlMode.res.inst_13_a_1 - ControlMode.res.inst_12_a_1 - ControlMode.res.inst_11_a_1 - ControlMode.res.inst_10_a_1 - ControlMode.res.inst_9_a_1 - ControlMode.res.inst_8_a_1 - ControlMode.res.inst_7_a_1 - ControlMode.res.inst_6_a_1 - ControlMode.res.inst_5_a_1 - ControlMode.res.inst_4_a_1 - ControlMode.res.inst_3_a_1 - ControlMode.res.inst_2_a_1 - ControlMode.res.inst_1_a_1 - ControlMode.res.inst_0_a_1 - ControlMode.usr.level_defect_a_0 - ControlMode.usr.steam_defect_a_0 - ControlMode.usr.pump_defect_0_a_0 - ControlMode.usr.pump_defect_1_a_0 - ControlMode.usr.pump_defect_2_a_0 - ControlMode.usr.pump_defect_3_a_0 - ControlMode.usr.pump_control_defect_0_a_0 - ControlMode.usr.pump_control_defect_1_a_0 - ControlMode.usr.pump_control_defect_2_a_0 - ControlMode.usr.pump_control_defect_3_a_0 - ControlMode.res.abs_3_a_0 - ControlMode.res.inst_24_a_0 - ControlMode.res.inst_23_a_0 - ControlMode.res.inst_22_a_0 - ControlMode.res.inst_21_a_0 - ControlMode.res.inst_20_a_0 - ControlMode.res.inst_19_a_0 - ControlMode.res.inst_18_a_0 - ControlMode.res.inst_17_a_0 - ControlMode.res.inst_16_a_0 - ControlMode.res.inst_15_a_0 - ControlMode.res.inst_14_a_0 - ControlMode.res.inst_13_a_0 - ControlMode.res.inst_12_a_0 - ControlMode.res.inst_11_a_0 - ControlMode.res.inst_10_a_0 - ControlMode.res.inst_9_a_0 - ControlMode.res.inst_8_a_0 - ControlMode.res.inst_7_a_0 - ControlMode.res.inst_6_a_0 - ControlMode.res.inst_5_a_0 - ControlMode.res.inst_4_a_0 - ControlMode.res.inst_3_a_0 - ControlMode.res.inst_2_a_0 - ControlMode.res.inst_1_a_0 - ControlMode.res.inst_0_a_0) - (<= 1 ControlMode.usr.op_mode_a_1 6) - (not ControlMode.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.steam_boiler_waiting_a_0 Bool) - (top.usr.physical_units_ready_a_0 Bool) - (top.usr.stop_request_a_0 Bool) - (top.usr.steam_a_0 Int) - (top.usr.level_defect_a_0 Int) - (top.usr.steam_defect_a_0 Int) - (top.usr.pump_defect_0_a_0 Int) - (top.usr.pump_defect_1_a_0 Int) - (top.usr.pump_defect_2_a_0 Int) - (top.usr.pump_defect_3_a_0 Int) - (top.usr.pump_control_defect_0_a_0 Int) - (top.usr.pump_control_defect_1_a_0 Int) - (top.usr.pump_control_defect_2_a_0 Int) - (top.usr.pump_control_defect_3_a_0 Int) - (top.usr.q_a_0 Int) - (top.usr.pump_state_0_a_0 Int) - (top.usr.pump_state_1_a_0 Int) - (top.usr.pump_state_2_a_0 Int) - (top.usr.pump_state_3_a_0 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.op_mode_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Bool) - (top.res.inst_52_a_0 Bool) - (top.res.inst_51_a_0 Int) - (top.res.inst_50_a_0 Bool) - (top.res.inst_49_a_0 Bool) - (top.res.inst_48_a_0 Bool) - (top.res.inst_47_a_0 Bool) - (top.res.inst_46_a_0 Bool) - (top.res.inst_45_a_0 Bool) - (top.res.inst_44_a_0 Bool) - (top.res.inst_43_a_0 Bool) - (top.res.inst_42_a_0 Bool) - (top.res.inst_41_a_0 Bool) - (top.res.inst_40_a_0 Bool) - (top.res.inst_39_a_0 Bool) - (top.res.inst_38_a_0 Bool) - (top.res.inst_37_a_0 Bool) - (top.res.inst_36_a_0 Bool) - (top.res.inst_35_a_0 Bool) - (top.res.inst_34_a_0 Bool) - (top.res.inst_33_a_0 Bool) - (top.res.inst_32_a_0 Bool) - (top.res.inst_31_a_0 Bool) - (top.res.inst_30_a_0 Bool) - (top.res.inst_29_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Bool) - (top.res.inst_23_a_0 Bool) - (top.res.inst_22_a_0 Bool) - (top.res.inst_21_a_0 Bool) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.op_mode_a_0 top.res.abs_0_a_0) - (let - ((X1 Bool (=> (= top.impl.usr.op_mode_a_0 3) (not top.usr.stop_request_a_0)))) - (let - ((X2 Bool true)) - (and - (= top.usr.OK_a_0 (and X2 X1)) - (__node_init_ControlMode_0 - top.usr.steam_boiler_waiting_a_0 - top.usr.physical_units_ready_a_0 - top.usr.stop_request_a_0 - top.usr.steam_a_0 - top.usr.level_defect_a_0 - top.usr.steam_defect_a_0 - top.usr.pump_defect_0_a_0 - top.usr.pump_defect_1_a_0 - top.usr.pump_defect_2_a_0 - top.usr.pump_defect_3_a_0 - top.usr.pump_control_defect_0_a_0 - top.usr.pump_control_defect_1_a_0 - top.usr.pump_control_defect_2_a_0 - top.usr.pump_control_defect_3_a_0 - top.usr.q_a_0 - top.usr.pump_state_0_a_0 - top.usr.pump_state_1_a_0 - top.usr.pump_state_2_a_0 - top.usr.pump_state_3_a_0 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.inst_52_a_0 - top.res.inst_51_a_0 - top.res.inst_50_a_0 - top.res.inst_49_a_0 - top.res.inst_48_a_0 - top.res.inst_47_a_0 - top.res.inst_46_a_0 - top.res.inst_45_a_0 - top.res.inst_44_a_0 - top.res.inst_43_a_0 - top.res.inst_42_a_0 - top.res.inst_41_a_0 - top.res.inst_40_a_0 - top.res.inst_39_a_0 - top.res.inst_38_a_0 - top.res.inst_37_a_0 - top.res.inst_36_a_0 - top.res.inst_35_a_0 - top.res.inst_34_a_0 - top.res.inst_33_a_0 - top.res.inst_32_a_0 - top.res.inst_31_a_0 - top.res.inst_30_a_0 - top.res.inst_29_a_0 - top.res.inst_28_a_0 - top.res.inst_27_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_init_dangerous_level_0 - top.usr.q_a_0 - top.res.abs_1_a_0 - top.res.inst_0_a_0) - (<= 1 top.impl.usr.op_mode_a_0 6) - (<= 1 top.res.abs_0_a_0 6) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.steam_boiler_waiting_a_1 Bool) - (top.usr.physical_units_ready_a_1 Bool) - (top.usr.stop_request_a_1 Bool) - (top.usr.steam_a_1 Int) - (top.usr.level_defect_a_1 Int) - (top.usr.steam_defect_a_1 Int) - (top.usr.pump_defect_0_a_1 Int) - (top.usr.pump_defect_1_a_1 Int) - (top.usr.pump_defect_2_a_1 Int) - (top.usr.pump_defect_3_a_1 Int) - (top.usr.pump_control_defect_0_a_1 Int) - (top.usr.pump_control_defect_1_a_1 Int) - (top.usr.pump_control_defect_2_a_1 Int) - (top.usr.pump_control_defect_3_a_1 Int) - (top.usr.q_a_1 Int) - (top.usr.pump_state_0_a_1 Int) - (top.usr.pump_state_1_a_1 Int) - (top.usr.pump_state_2_a_1 Int) - (top.usr.pump_state_3_a_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.op_mode_a_1 Int) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Bool) - (top.res.inst_52_a_1 Bool) - (top.res.inst_51_a_1 Int) - (top.res.inst_50_a_1 Bool) - (top.res.inst_49_a_1 Bool) - (top.res.inst_48_a_1 Bool) - (top.res.inst_47_a_1 Bool) - (top.res.inst_46_a_1 Bool) - (top.res.inst_45_a_1 Bool) - (top.res.inst_44_a_1 Bool) - (top.res.inst_43_a_1 Bool) - (top.res.inst_42_a_1 Bool) - (top.res.inst_41_a_1 Bool) - (top.res.inst_40_a_1 Bool) - (top.res.inst_39_a_1 Bool) - (top.res.inst_38_a_1 Bool) - (top.res.inst_37_a_1 Bool) - (top.res.inst_36_a_1 Bool) - (top.res.inst_35_a_1 Bool) - (top.res.inst_34_a_1 Bool) - (top.res.inst_33_a_1 Bool) - (top.res.inst_32_a_1 Bool) - (top.res.inst_31_a_1 Bool) - (top.res.inst_30_a_1 Bool) - (top.res.inst_29_a_1 Bool) - (top.res.inst_28_a_1 Bool) - (top.res.inst_27_a_1 Bool) - (top.res.inst_26_a_1 Bool) - (top.res.inst_25_a_1 Bool) - (top.res.inst_24_a_1 Bool) - (top.res.inst_23_a_1 Bool) - (top.res.inst_22_a_1 Bool) - (top.res.inst_21_a_1 Bool) - (top.res.inst_20_a_1 Bool) - (top.res.inst_19_a_1 Bool) - (top.res.inst_18_a_1 Bool) - (top.res.inst_17_a_1 Bool) - (top.res.inst_16_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Bool) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Bool) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Bool) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.steam_boiler_waiting_a_0 Bool) - (top.usr.physical_units_ready_a_0 Bool) - (top.usr.stop_request_a_0 Bool) - (top.usr.steam_a_0 Int) - (top.usr.level_defect_a_0 Int) - (top.usr.steam_defect_a_0 Int) - (top.usr.pump_defect_0_a_0 Int) - (top.usr.pump_defect_1_a_0 Int) - (top.usr.pump_defect_2_a_0 Int) - (top.usr.pump_defect_3_a_0 Int) - (top.usr.pump_control_defect_0_a_0 Int) - (top.usr.pump_control_defect_1_a_0 Int) - (top.usr.pump_control_defect_2_a_0 Int) - (top.usr.pump_control_defect_3_a_0 Int) - (top.usr.q_a_0 Int) - (top.usr.pump_state_0_a_0 Int) - (top.usr.pump_state_1_a_0 Int) - (top.usr.pump_state_2_a_0 Int) - (top.usr.pump_state_3_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.op_mode_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Bool) - (top.res.inst_52_a_0 Bool) - (top.res.inst_51_a_0 Int) - (top.res.inst_50_a_0 Bool) - (top.res.inst_49_a_0 Bool) - (top.res.inst_48_a_0 Bool) - (top.res.inst_47_a_0 Bool) - (top.res.inst_46_a_0 Bool) - (top.res.inst_45_a_0 Bool) - (top.res.inst_44_a_0 Bool) - (top.res.inst_43_a_0 Bool) - (top.res.inst_42_a_0 Bool) - (top.res.inst_41_a_0 Bool) - (top.res.inst_40_a_0 Bool) - (top.res.inst_39_a_0 Bool) - (top.res.inst_38_a_0 Bool) - (top.res.inst_37_a_0 Bool) - (top.res.inst_36_a_0 Bool) - (top.res.inst_35_a_0 Bool) - (top.res.inst_34_a_0 Bool) - (top.res.inst_33_a_0 Bool) - (top.res.inst_32_a_0 Bool) - (top.res.inst_31_a_0 Bool) - (top.res.inst_30_a_0 Bool) - (top.res.inst_29_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Bool) - (top.res.inst_23_a_0 Bool) - (top.res.inst_22_a_0 Bool) - (top.res.inst_21_a_0 Bool) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.op_mode_a_1 top.res.abs_0_a_1) - (let - ((X1 Bool (=> (= top.impl.usr.op_mode_a_1 3) (not top.usr.stop_request_a_1)))) - (let - ((X2 - Bool (=> - (and (= top.impl.usr.op_mode_a_1 3) (= top.impl.usr.op_mode_a_0 3)) - (not top.res.abs_1_a_1)))) - (and - (= top.usr.OK_a_1 (and X2 X1)) - (__node_trans_ControlMode_0 - top.usr.steam_boiler_waiting_a_1 - top.usr.physical_units_ready_a_1 - top.usr.stop_request_a_1 - top.usr.steam_a_1 - top.usr.level_defect_a_1 - top.usr.steam_defect_a_1 - top.usr.pump_defect_0_a_1 - top.usr.pump_defect_1_a_1 - top.usr.pump_defect_2_a_1 - top.usr.pump_defect_3_a_1 - top.usr.pump_control_defect_0_a_1 - top.usr.pump_control_defect_1_a_1 - top.usr.pump_control_defect_2_a_1 - top.usr.pump_control_defect_3_a_1 - top.usr.q_a_1 - top.usr.pump_state_0_a_1 - top.usr.pump_state_1_a_1 - top.usr.pump_state_2_a_1 - top.usr.pump_state_3_a_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.inst_52_a_1 - top.res.inst_51_a_1 - top.res.inst_50_a_1 - top.res.inst_49_a_1 - top.res.inst_48_a_1 - top.res.inst_47_a_1 - top.res.inst_46_a_1 - top.res.inst_45_a_1 - top.res.inst_44_a_1 - top.res.inst_43_a_1 - top.res.inst_42_a_1 - top.res.inst_41_a_1 - top.res.inst_40_a_1 - top.res.inst_39_a_1 - top.res.inst_38_a_1 - top.res.inst_37_a_1 - top.res.inst_36_a_1 - top.res.inst_35_a_1 - top.res.inst_34_a_1 - top.res.inst_33_a_1 - top.res.inst_32_a_1 - top.res.inst_31_a_1 - top.res.inst_30_a_1 - top.res.inst_29_a_1 - top.res.inst_28_a_1 - top.res.inst_27_a_1 - top.res.inst_26_a_1 - top.res.inst_25_a_1 - top.res.inst_24_a_1 - top.res.inst_23_a_1 - top.res.inst_22_a_1 - top.res.inst_21_a_1 - top.res.inst_20_a_1 - top.res.inst_19_a_1 - top.res.inst_18_a_1 - top.res.inst_17_a_1 - top.res.inst_16_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.usr.steam_boiler_waiting_a_0 - top.usr.physical_units_ready_a_0 - top.usr.stop_request_a_0 - top.usr.steam_a_0 - top.usr.level_defect_a_0 - top.usr.steam_defect_a_0 - top.usr.pump_defect_0_a_0 - top.usr.pump_defect_1_a_0 - top.usr.pump_defect_2_a_0 - top.usr.pump_defect_3_a_0 - top.usr.pump_control_defect_0_a_0 - top.usr.pump_control_defect_1_a_0 - top.usr.pump_control_defect_2_a_0 - top.usr.pump_control_defect_3_a_0 - top.usr.q_a_0 - top.usr.pump_state_0_a_0 - top.usr.pump_state_1_a_0 - top.usr.pump_state_2_a_0 - top.usr.pump_state_3_a_0 - top.res.abs_0_a_0 - top.res.inst_52_a_0 - top.res.inst_51_a_0 - top.res.inst_50_a_0 - top.res.inst_49_a_0 - top.res.inst_48_a_0 - top.res.inst_47_a_0 - top.res.inst_46_a_0 - top.res.inst_45_a_0 - top.res.inst_44_a_0 - top.res.inst_43_a_0 - top.res.inst_42_a_0 - top.res.inst_41_a_0 - top.res.inst_40_a_0 - top.res.inst_39_a_0 - top.res.inst_38_a_0 - top.res.inst_37_a_0 - top.res.inst_36_a_0 - top.res.inst_35_a_0 - top.res.inst_34_a_0 - top.res.inst_33_a_0 - top.res.inst_32_a_0 - top.res.inst_31_a_0 - top.res.inst_30_a_0 - top.res.inst_29_a_0 - top.res.inst_28_a_0 - top.res.inst_27_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_trans_dangerous_level_0 - top.usr.q_a_1 - top.res.abs_1_a_1 - top.res.inst_0_a_1 - top.usr.q_a_0 - top.res.abs_1_a_0 - top.res.inst_0_a_0) - (<= 1 top.impl.usr.op_mode_a_1 6) - (<= 1 top.res.abs_0_a_1 6) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.steam_boiler_waiting Bool) - (top.usr.physical_units_ready Bool) - (top.usr.stop_request Bool) - (top.usr.steam Int) - (top.usr.level_defect Int) - (top.usr.steam_defect Int) - (top.usr.pump_defect_0 Int) - (top.usr.pump_defect_1 Int) - (top.usr.pump_defect_2 Int) - (top.usr.pump_defect_3 Int) - (top.usr.pump_control_defect_0 Int) - (top.usr.pump_control_defect_1 Int) - (top.usr.pump_control_defect_2 Int) - (top.usr.pump_control_defect_3 Int) - (top.usr.q Int) - (top.usr.pump_state_0 Int) - (top.usr.pump_state_1 Int) - (top.usr.pump_state_2 Int) - (top.usr.pump_state_3 Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.op_mode Int) - (top.res.abs_0 Int) - (top.res.abs_1 Bool) - (top.res.inst_52 Bool) - (top.res.inst_51 Int) - (top.res.inst_50 Bool) - (top.res.inst_49 Bool) - (top.res.inst_48 Bool) - (top.res.inst_47 Bool) - (top.res.inst_46 Bool) - (top.res.inst_45 Bool) - (top.res.inst_44 Bool) - (top.res.inst_43 Bool) - (top.res.inst_42 Bool) - (top.res.inst_41 Bool) - (top.res.inst_40 Bool) - (top.res.inst_39 Bool) - (top.res.inst_38 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.steam_boiler_waiting Bool) -(declare-primed-var top.usr.physical_units_ready Bool) -(declare-primed-var top.usr.stop_request Bool) -(declare-primed-var top.usr.steam Int) -(declare-primed-var top.usr.level_defect Int) -(declare-primed-var top.usr.steam_defect Int) -(declare-primed-var top.usr.pump_defect_0 Int) -(declare-primed-var top.usr.pump_defect_1 Int) -(declare-primed-var top.usr.pump_defect_2 Int) -(declare-primed-var top.usr.pump_defect_3 Int) -(declare-primed-var top.usr.pump_control_defect_0 Int) -(declare-primed-var top.usr.pump_control_defect_1 Int) -(declare-primed-var top.usr.pump_control_defect_2 Int) -(declare-primed-var top.usr.pump_control_defect_3 Int) -(declare-primed-var top.usr.q Int) -(declare-primed-var top.usr.pump_state_0 Int) -(declare-primed-var top.usr.pump_state_1 Int) -(declare-primed-var top.usr.pump_state_2 Int) -(declare-primed-var top.usr.pump_state_3 Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.op_mode Int) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.inst_52 Bool) -(declare-primed-var top.res.inst_51 Int) -(declare-primed-var top.res.inst_50 Bool) -(declare-primed-var top.res.inst_49 Bool) -(declare-primed-var top.res.inst_48 Bool) -(declare-primed-var top.res.inst_47 Bool) -(declare-primed-var top.res.inst_46 Bool) -(declare-primed-var top.res.inst_45 Bool) -(declare-primed-var top.res.inst_44 Bool) -(declare-primed-var top.res.inst_43 Bool) -(declare-primed-var top.res.inst_42 Bool) -(declare-primed-var top.res.inst_41 Bool) -(declare-primed-var top.res.inst_40 Bool) -(declare-primed-var top.res.inst_39 Bool) -(declare-primed-var top.res.inst_38 Bool) -(declare-primed-var top.res.inst_37 Bool) -(declare-primed-var top.res.inst_36 Bool) -(declare-primed-var top.res.inst_35 Bool) -(declare-primed-var top.res.inst_34 Bool) -(declare-primed-var top.res.inst_33 Bool) -(declare-primed-var top.res.inst_32 Bool) -(declare-primed-var top.res.inst_31 Bool) -(declare-primed-var top.res.inst_30 Bool) -(declare-primed-var top.res.inst_29 Bool) -(declare-primed-var top.res.inst_28 Bool) -(declare-primed-var top.res.inst_27 Bool) -(declare-primed-var top.res.inst_26 Bool) -(declare-primed-var top.res.inst_25 Bool) -(declare-primed-var top.res.inst_24 Bool) -(declare-primed-var top.res.inst_23 Bool) -(declare-primed-var top.res.inst_22 Bool) -(declare-primed-var top.res.inst_21 Bool) -(declare-primed-var top.res.inst_20 Bool) -(declare-primed-var top.res.inst_19 Bool) -(declare-primed-var top.res.inst_18 Bool) -(declare-primed-var top.res.inst_17 Bool) -(declare-primed-var top.res.inst_16 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Bool) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Bool) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Bool) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.steam_boiler_waiting Bool) - (top.usr.physical_units_ready Bool) - (top.usr.stop_request Bool) - (top.usr.steam Int) - (top.usr.level_defect Int) - (top.usr.steam_defect Int) - (top.usr.pump_defect_0 Int) - (top.usr.pump_defect_1 Int) - (top.usr.pump_defect_2 Int) - (top.usr.pump_defect_3 Int) - (top.usr.pump_control_defect_0 Int) - (top.usr.pump_control_defect_1 Int) - (top.usr.pump_control_defect_2 Int) - (top.usr.pump_control_defect_3 Int) - (top.usr.q Int) - (top.usr.pump_state_0 Int) - (top.usr.pump_state_1 Int) - (top.usr.pump_state_2 Int) - (top.usr.pump_state_3 Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.op_mode Int) - (top.res.abs_0 Int) - (top.res.abs_1 Bool) - (top.res.inst_52 Bool) - (top.res.inst_51 Int) - (top.res.inst_50 Bool) - (top.res.inst_49 Bool) - (top.res.inst_48 Bool) - (top.res.inst_47 Bool) - (top.res.inst_46 Bool) - (top.res.inst_45 Bool) - (top.res.inst_44 Bool) - (top.res.inst_43 Bool) - (top.res.inst_42 Bool) - (top.res.inst_41 Bool) - (top.res.inst_40 Bool) - (top.res.inst_39 Bool) - (top.res.inst_38 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.impl.usr.op_mode top.res.abs_0) - (let - ((X1 Bool (=> (= top.impl.usr.op_mode 3) (not top.usr.stop_request)))) - (let - ((X2 Bool true)) - (and - (= top.usr.OK (and X2 X1)) - (__node_init_ControlMode_0 - top.usr.steam_boiler_waiting - top.usr.physical_units_ready - top.usr.stop_request - top.usr.steam - top.usr.level_defect - top.usr.steam_defect - top.usr.pump_defect_0 - top.usr.pump_defect_1 - top.usr.pump_defect_2 - top.usr.pump_defect_3 - top.usr.pump_control_defect_0 - top.usr.pump_control_defect_1 - top.usr.pump_control_defect_2 - top.usr.pump_control_defect_3 - top.usr.q - top.usr.pump_state_0 - top.usr.pump_state_1 - top.usr.pump_state_2 - top.usr.pump_state_3 - top.res.nondet_0 - top.res.abs_0 - top.res.inst_52 - top.res.inst_51 - top.res.inst_50 - top.res.inst_49 - top.res.inst_48 - top.res.inst_47 - top.res.inst_46 - top.res.inst_45 - top.res.inst_44 - top.res.inst_43 - top.res.inst_42 - top.res.inst_41 - top.res.inst_40 - top.res.inst_39 - top.res.inst_38 - top.res.inst_37 - top.res.inst_36 - top.res.inst_35 - top.res.inst_34 - top.res.inst_33 - top.res.inst_32 - top.res.inst_31 - top.res.inst_30 - top.res.inst_29 - top.res.inst_28 - top.res.inst_27 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_init_dangerous_level_0 top.usr.q top.res.abs_1 top.res.inst_0) - (<= 1 top.impl.usr.op_mode 6) - (<= 1 top.res.abs_0 6) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.steam_boiler_waiting Bool) - (top.usr.physical_units_ready Bool) - (top.usr.stop_request Bool) - (top.usr.steam Int) - (top.usr.level_defect Int) - (top.usr.steam_defect Int) - (top.usr.pump_defect_0 Int) - (top.usr.pump_defect_1 Int) - (top.usr.pump_defect_2 Int) - (top.usr.pump_defect_3 Int) - (top.usr.pump_control_defect_0 Int) - (top.usr.pump_control_defect_1 Int) - (top.usr.pump_control_defect_2 Int) - (top.usr.pump_control_defect_3 Int) - (top.usr.q Int) - (top.usr.pump_state_0 Int) - (top.usr.pump_state_1 Int) - (top.usr.pump_state_2 Int) - (top.usr.pump_state_3 Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.op_mode Int) - (top.res.abs_0 Int) - (top.res.abs_1 Bool) - (top.res.inst_52 Bool) - (top.res.inst_51 Int) - (top.res.inst_50 Bool) - (top.res.inst_49 Bool) - (top.res.inst_48 Bool) - (top.res.inst_47 Bool) - (top.res.inst_46 Bool) - (top.res.inst_45 Bool) - (top.res.inst_44 Bool) - (top.res.inst_43 Bool) - (top.res.inst_42 Bool) - (top.res.inst_41 Bool) - (top.res.inst_40 Bool) - (top.res.inst_39 Bool) - (top.res.inst_38 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.steam_boiler_waiting! Bool) - (top.usr.physical_units_ready! Bool) - (top.usr.stop_request! Bool) - (top.usr.steam! Int) - (top.usr.level_defect! Int) - (top.usr.steam_defect! Int) - (top.usr.pump_defect_0! Int) - (top.usr.pump_defect_1! Int) - (top.usr.pump_defect_2! Int) - (top.usr.pump_defect_3! Int) - (top.usr.pump_control_defect_0! Int) - (top.usr.pump_control_defect_1! Int) - (top.usr.pump_control_defect_2! Int) - (top.usr.pump_control_defect_3! Int) - (top.usr.q! Int) - (top.usr.pump_state_0! Int) - (top.usr.pump_state_1! Int) - (top.usr.pump_state_2! Int) - (top.usr.pump_state_3! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.op_mode! Int) - (top.res.abs_0! Int) - (top.res.abs_1! Bool) - (top.res.inst_52! Bool) - (top.res.inst_51! Int) - (top.res.inst_50! Bool) - (top.res.inst_49! Bool) - (top.res.inst_48! Bool) - (top.res.inst_47! Bool) - (top.res.inst_46! Bool) - (top.res.inst_45! Bool) - (top.res.inst_44! Bool) - (top.res.inst_43! Bool) - (top.res.inst_42! Bool) - (top.res.inst_41! Bool) - (top.res.inst_40! Bool) - (top.res.inst_39! Bool) - (top.res.inst_38! Bool) - (top.res.inst_37! Bool) - (top.res.inst_36! Bool) - (top.res.inst_35! Bool) - (top.res.inst_34! Bool) - (top.res.inst_33! Bool) - (top.res.inst_32! Bool) - (top.res.inst_31! Bool) - (top.res.inst_30! Bool) - (top.res.inst_29! Bool) - (top.res.inst_28! Bool) - (top.res.inst_27! Bool) - (top.res.inst_26! Bool) - (top.res.inst_25! Bool) - (top.res.inst_24! Bool) - (top.res.inst_23! Bool) - (top.res.inst_22! Bool) - (top.res.inst_21! Bool) - (top.res.inst_20! Bool) - (top.res.inst_19! Bool) - (top.res.inst_18! Bool) - (top.res.inst_17! Bool) - (top.res.inst_16! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Bool) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Bool) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Bool) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.impl.usr.op_mode! top.res.abs_0!) - (let - ((X1 Bool (=> (= top.impl.usr.op_mode! 3) (not top.usr.stop_request!)))) - (let - ((X2 - Bool (=> - (and (= top.impl.usr.op_mode! 3) (= top.impl.usr.op_mode 3)) - (not top.res.abs_1!)))) - (and - (= top.usr.OK! (and X2 X1)) - (__node_trans_ControlMode_0 - top.usr.steam_boiler_waiting! - top.usr.physical_units_ready! - top.usr.stop_request! - top.usr.steam! - top.usr.level_defect! - top.usr.steam_defect! - top.usr.pump_defect_0! - top.usr.pump_defect_1! - top.usr.pump_defect_2! - top.usr.pump_defect_3! - top.usr.pump_control_defect_0! - top.usr.pump_control_defect_1! - top.usr.pump_control_defect_2! - top.usr.pump_control_defect_3! - top.usr.q! - top.usr.pump_state_0! - top.usr.pump_state_1! - top.usr.pump_state_2! - top.usr.pump_state_3! - top.res.nondet_0 - top.res.abs_0! - top.res.inst_52! - top.res.inst_51! - top.res.inst_50! - top.res.inst_49! - top.res.inst_48! - top.res.inst_47! - top.res.inst_46! - top.res.inst_45! - top.res.inst_44! - top.res.inst_43! - top.res.inst_42! - top.res.inst_41! - top.res.inst_40! - top.res.inst_39! - top.res.inst_38! - top.res.inst_37! - top.res.inst_36! - top.res.inst_35! - top.res.inst_34! - top.res.inst_33! - top.res.inst_32! - top.res.inst_31! - top.res.inst_30! - top.res.inst_29! - top.res.inst_28! - top.res.inst_27! - top.res.inst_26! - top.res.inst_25! - top.res.inst_24! - top.res.inst_23! - top.res.inst_22! - top.res.inst_21! - top.res.inst_20! - top.res.inst_19! - top.res.inst_18! - top.res.inst_17! - top.res.inst_16! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.usr.steam_boiler_waiting - top.usr.physical_units_ready - top.usr.stop_request - top.usr.steam - top.usr.level_defect - top.usr.steam_defect - top.usr.pump_defect_0 - top.usr.pump_defect_1 - top.usr.pump_defect_2 - top.usr.pump_defect_3 - top.usr.pump_control_defect_0 - top.usr.pump_control_defect_1 - top.usr.pump_control_defect_2 - top.usr.pump_control_defect_3 - top.usr.q - top.usr.pump_state_0 - top.usr.pump_state_1 - top.usr.pump_state_2 - top.usr.pump_state_3 - top.res.abs_0 - top.res.inst_52 - top.res.inst_51 - top.res.inst_50 - top.res.inst_49 - top.res.inst_48 - top.res.inst_47 - top.res.inst_46 - top.res.inst_45 - top.res.inst_44 - top.res.inst_43 - top.res.inst_42 - top.res.inst_41 - top.res.inst_40 - top.res.inst_39 - top.res.inst_38 - top.res.inst_37 - top.res.inst_36 - top.res.inst_35 - top.res.inst_34 - top.res.inst_33 - top.res.inst_32 - top.res.inst_31 - top.res.inst_30 - top.res.inst_29 - top.res.inst_28 - top.res.inst_27 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_trans_dangerous_level_0 - top.usr.q! - top.res.abs_1! - top.res.inst_0! - top.usr.q - top.res.abs_1 - top.res.inst_0) - (<= 1 top.impl.usr.op_mode! 6) - (<= 1 top.res.abs_0! 6) - (not top.res.init_flag!))))) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.steam_boiler_waiting Bool) - (top.usr.physical_units_ready Bool) - (top.usr.stop_request Bool) - (top.usr.steam Int) - (top.usr.level_defect Int) - (top.usr.steam_defect Int) - (top.usr.pump_defect_0 Int) - (top.usr.pump_defect_1 Int) - (top.usr.pump_defect_2 Int) - (top.usr.pump_defect_3 Int) - (top.usr.pump_control_defect_0 Int) - (top.usr.pump_control_defect_1 Int) - (top.usr.pump_control_defect_2 Int) - (top.usr.pump_control_defect_3 Int) - (top.usr.q Int) - (top.usr.pump_state_0 Int) - (top.usr.pump_state_1 Int) - (top.usr.pump_state_2 Int) - (top.usr.pump_state_3 Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.op_mode Int) - (top.res.abs_0 Int) - (top.res.abs_1 Bool) - (top.res.inst_52 Bool) - (top.res.inst_51 Int) - (top.res.inst_50 Bool) - (top.res.inst_49 Bool) - (top.res.inst_48 Bool) - (top.res.inst_47 Bool) - (top.res.inst_46 Bool) - (top.res.inst_45 Bool) - (top.res.inst_44 Bool) - (top.res.inst_43 Bool) - (top.res.inst_42 Bool) - (top.res.inst_41 Bool) - (top.res.inst_40 Bool) - (top.res.inst_39 Bool) - (top.res.inst_38 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_dangerous_level_0 ((dangerous_level.usr.q_a_0 Int) (dangerous_level.usr.dangerous_level_a_0 Bool) (dangerous_level.res.init_flag_a_0 Bool)) Bool + (and (= dangerous_level.usr.dangerous_level_a_0 (or (<= dangerous_level.usr.q_a_0 150) (>= dangerous_level.usr.q_a_0 850))) dangerous_level.res.init_flag_a_0)) +(define-fun __node_trans_dangerous_level_0 ((dangerous_level.usr.q_a_1 Int) (dangerous_level.usr.dangerous_level_a_1 Bool) (dangerous_level.res.init_flag_a_1 Bool) (dangerous_level.usr.q_a_0 Int) (dangerous_level.usr.dangerous_level_a_0 Bool) (dangerous_level.res.init_flag_a_0 Bool)) Bool + (and (= dangerous_level.usr.dangerous_level_a_1 (or (<= dangerous_level.usr.q_a_1 150) (>= dangerous_level.usr.q_a_1 850))) (not dangerous_level.res.init_flag_a_1))) +(define-fun __node_init_level_failure_0 ((level_failure.usr.level_defect_a_0 Int) (level_failure.usr.level_failure_a_0 Bool) (level_failure.res.init_flag_a_0 Bool)) Bool + (and (= level_failure.usr.level_failure_a_0 (not (= level_failure.usr.level_defect_a_0 0))) level_failure.res.init_flag_a_0)) +(define-fun __node_trans_level_failure_0 ((level_failure.usr.level_defect_a_1 Int) (level_failure.usr.level_failure_a_1 Bool) (level_failure.res.init_flag_a_1 Bool) (level_failure.usr.level_defect_a_0 Int) (level_failure.usr.level_failure_a_0 Bool) (level_failure.res.init_flag_a_0 Bool)) Bool + (and (= level_failure.usr.level_failure_a_1 (not (= level_failure.usr.level_defect_a_1 0))) (not level_failure.res.init_flag_a_1))) +(define-fun __node_init_steam_failure_0 ((steam_failure.usr.steam_defect_a_0 Int) (steam_failure.usr.steam_failure_a_0 Bool) (steam_failure.res.init_flag_a_0 Bool)) Bool + (and (= steam_failure.usr.steam_failure_a_0 (not (= steam_failure.usr.steam_defect_a_0 0))) steam_failure.res.init_flag_a_0)) +(define-fun __node_trans_steam_failure_0 ((steam_failure.usr.steam_defect_a_1 Int) (steam_failure.usr.steam_failure_a_1 Bool) (steam_failure.res.init_flag_a_1 Bool) (steam_failure.usr.steam_defect_a_0 Int) (steam_failure.usr.steam_failure_a_0 Bool) (steam_failure.res.init_flag_a_0 Bool)) Bool + (and (= steam_failure.usr.steam_failure_a_1 (not (= steam_failure.usr.steam_defect_a_1 0))) (not steam_failure.res.init_flag_a_1))) +(define-fun __node_init_OR_0 ((OR.usr.a_0_a_0 Bool) (OR.usr.a_1_a_0 Bool) (OR.usr.a_2_a_0 Bool) (OR.usr.a_3_a_0 Bool) (OR.usr.OR_a_0 Bool) (OR.res.init_flag_a_0 Bool)) Bool + (and (= OR.usr.OR_a_0 (or (or (or OR.usr.a_0_a_0 OR.usr.a_1_a_0) OR.usr.a_2_a_0) OR.usr.a_3_a_0)) OR.res.init_flag_a_0)) +(define-fun __node_trans_OR_0 ((OR.usr.a_0_a_1 Bool) (OR.usr.a_1_a_1 Bool) (OR.usr.a_2_a_1 Bool) (OR.usr.a_3_a_1 Bool) (OR.usr.OR_a_1 Bool) (OR.res.init_flag_a_1 Bool) (OR.usr.a_0_a_0 Bool) (OR.usr.a_1_a_0 Bool) (OR.usr.a_2_a_0 Bool) (OR.usr.a_3_a_0 Bool) (OR.usr.OR_a_0 Bool) (OR.res.init_flag_a_0 Bool)) Bool + (and (= OR.usr.OR_a_1 (or (or (or OR.usr.a_0_a_1 OR.usr.a_1_a_1) OR.usr.a_2_a_1) OR.usr.a_3_a_1)) (not OR.res.init_flag_a_1))) +(define-fun __node_init_pump_control_failure_0 ((pump_control_failure.usr.pump_defect_a_0 Int) (pump_control_failure.usr.pump_failure_a_0 Bool) (pump_control_failure.res.init_flag_a_0 Bool)) Bool + (and (= pump_control_failure.usr.pump_failure_a_0 (not (= pump_control_failure.usr.pump_defect_a_0 0))) pump_control_failure.res.init_flag_a_0)) +(define-fun __node_trans_pump_control_failure_0 ((pump_control_failure.usr.pump_defect_a_1 Int) (pump_control_failure.usr.pump_failure_a_1 Bool) (pump_control_failure.res.init_flag_a_1 Bool) (pump_control_failure.usr.pump_defect_a_0 Int) (pump_control_failure.usr.pump_failure_a_0 Bool) (pump_control_failure.res.init_flag_a_0 Bool)) Bool + (and (= pump_control_failure.usr.pump_failure_a_1 (not (= pump_control_failure.usr.pump_defect_a_1 0))) (not pump_control_failure.res.init_flag_a_1))) +(define-fun __node_init_pump_failure_0 ((pump_failure.usr.pump_defect_a_0 Int) (pump_failure.usr.pump_failure_a_0 Bool) (pump_failure.res.init_flag_a_0 Bool)) Bool + (and (= pump_failure.usr.pump_failure_a_0 (not (= pump_failure.usr.pump_defect_a_0 0))) pump_failure.res.init_flag_a_0)) +(define-fun __node_trans_pump_failure_0 ((pump_failure.usr.pump_defect_a_1 Int) (pump_failure.usr.pump_failure_a_1 Bool) (pump_failure.res.init_flag_a_1 Bool) (pump_failure.usr.pump_defect_a_0 Int) (pump_failure.usr.pump_failure_a_0 Bool) (pump_failure.res.init_flag_a_0 Bool)) Bool + (and (= pump_failure.usr.pump_failure_a_1 (not (= pump_failure.usr.pump_defect_a_1 0))) (not pump_failure.res.init_flag_a_1))) +(define-fun __node_init_failure_0 ((failure.usr.level_defect_a_0 Int) (failure.usr.steam_defect_a_0 Int) (failure.usr.pump_defect_0_a_0 Int) (failure.usr.pump_defect_1_a_0 Int) (failure.usr.pump_defect_2_a_0 Int) (failure.usr.pump_defect_3_a_0 Int) (failure.usr.pump_control_defect_0_a_0 Int) (failure.usr.pump_control_defect_1_a_0 Int) (failure.usr.pump_control_defect_2_a_0 Int) (failure.usr.pump_control_defect_3_a_0 Int) (failure.usr.failure_a_0 Bool) (failure.res.init_flag_a_0 Bool) (failure.res.abs_0_a_0 Bool) (failure.res.abs_1_a_0 Bool) (failure.res.abs_2_a_0 Bool) (failure.res.abs_3_a_0 Bool) (failure.res.abs_4_a_0 Bool) (failure.res.abs_5_a_0 Bool) (failure.res.abs_6_a_0 Bool) (failure.res.abs_7_a_0 Bool) (failure.res.abs_8_a_0 Bool) (failure.res.abs_9_a_0 Bool) (failure.res.abs_10_a_0 Bool) (failure.res.abs_11_a_0 Bool) (failure.res.inst_11_a_0 Bool) (failure.res.inst_10_a_0 Bool) (failure.res.inst_9_a_0 Bool) (failure.res.inst_8_a_0 Bool) (failure.res.inst_7_a_0 Bool) (failure.res.inst_6_a_0 Bool) (failure.res.inst_5_a_0 Bool) (failure.res.inst_4_a_0 Bool) (failure.res.inst_3_a_0 Bool) (failure.res.inst_2_a_0 Bool) (failure.res.inst_1_a_0 Bool) (failure.res.inst_0_a_0 Bool)) Bool + (and (= failure.usr.failure_a_0 (or (or (or failure.res.abs_0_a_0 failure.res.abs_1_a_0) failure.res.abs_6_a_0) failure.res.abs_11_a_0)) (__node_init_level_failure_0 failure.usr.level_defect_a_0 failure.res.abs_0_a_0 failure.res.inst_11_a_0) (__node_init_steam_failure_0 failure.usr.steam_defect_a_0 failure.res.abs_1_a_0 failure.res.inst_10_a_0) (__node_init_OR_0 failure.res.abs_2_a_0 failure.res.abs_3_a_0 failure.res.abs_4_a_0 failure.res.abs_5_a_0 failure.res.abs_6_a_0 failure.res.inst_9_a_0) (__node_init_pump_failure_0 failure.usr.pump_defect_0_a_0 failure.res.abs_2_a_0 failure.res.inst_8_a_0) (__node_init_pump_failure_0 failure.usr.pump_defect_1_a_0 failure.res.abs_3_a_0 failure.res.inst_7_a_0) (__node_init_pump_failure_0 failure.usr.pump_defect_2_a_0 failure.res.abs_4_a_0 failure.res.inst_6_a_0) (__node_init_pump_failure_0 failure.usr.pump_defect_3_a_0 failure.res.abs_5_a_0 failure.res.inst_5_a_0) (__node_init_OR_0 failure.res.abs_7_a_0 failure.res.abs_8_a_0 failure.res.abs_9_a_0 failure.res.abs_10_a_0 failure.res.abs_11_a_0 failure.res.inst_4_a_0) (__node_init_pump_control_failure_0 failure.usr.pump_control_defect_0_a_0 failure.res.abs_7_a_0 failure.res.inst_3_a_0) (__node_init_pump_control_failure_0 failure.usr.pump_control_defect_1_a_0 failure.res.abs_8_a_0 failure.res.inst_2_a_0) (__node_init_pump_control_failure_0 failure.usr.pump_control_defect_2_a_0 failure.res.abs_9_a_0 failure.res.inst_1_a_0) (__node_init_pump_control_failure_0 failure.usr.pump_control_defect_3_a_0 failure.res.abs_10_a_0 failure.res.inst_0_a_0) failure.res.init_flag_a_0)) +(define-fun __node_trans_failure_0 ((failure.usr.level_defect_a_1 Int) (failure.usr.steam_defect_a_1 Int) (failure.usr.pump_defect_0_a_1 Int) (failure.usr.pump_defect_1_a_1 Int) (failure.usr.pump_defect_2_a_1 Int) (failure.usr.pump_defect_3_a_1 Int) (failure.usr.pump_control_defect_0_a_1 Int) (failure.usr.pump_control_defect_1_a_1 Int) (failure.usr.pump_control_defect_2_a_1 Int) (failure.usr.pump_control_defect_3_a_1 Int) (failure.usr.failure_a_1 Bool) (failure.res.init_flag_a_1 Bool) (failure.res.abs_0_a_1 Bool) (failure.res.abs_1_a_1 Bool) (failure.res.abs_2_a_1 Bool) (failure.res.abs_3_a_1 Bool) (failure.res.abs_4_a_1 Bool) (failure.res.abs_5_a_1 Bool) (failure.res.abs_6_a_1 Bool) (failure.res.abs_7_a_1 Bool) (failure.res.abs_8_a_1 Bool) (failure.res.abs_9_a_1 Bool) (failure.res.abs_10_a_1 Bool) (failure.res.abs_11_a_1 Bool) (failure.res.inst_11_a_1 Bool) (failure.res.inst_10_a_1 Bool) (failure.res.inst_9_a_1 Bool) (failure.res.inst_8_a_1 Bool) (failure.res.inst_7_a_1 Bool) (failure.res.inst_6_a_1 Bool) (failure.res.inst_5_a_1 Bool) (failure.res.inst_4_a_1 Bool) (failure.res.inst_3_a_1 Bool) (failure.res.inst_2_a_1 Bool) (failure.res.inst_1_a_1 Bool) (failure.res.inst_0_a_1 Bool) (failure.usr.level_defect_a_0 Int) (failure.usr.steam_defect_a_0 Int) (failure.usr.pump_defect_0_a_0 Int) (failure.usr.pump_defect_1_a_0 Int) (failure.usr.pump_defect_2_a_0 Int) (failure.usr.pump_defect_3_a_0 Int) (failure.usr.pump_control_defect_0_a_0 Int) (failure.usr.pump_control_defect_1_a_0 Int) (failure.usr.pump_control_defect_2_a_0 Int) (failure.usr.pump_control_defect_3_a_0 Int) (failure.usr.failure_a_0 Bool) (failure.res.init_flag_a_0 Bool) (failure.res.abs_0_a_0 Bool) (failure.res.abs_1_a_0 Bool) (failure.res.abs_2_a_0 Bool) (failure.res.abs_3_a_0 Bool) (failure.res.abs_4_a_0 Bool) (failure.res.abs_5_a_0 Bool) (failure.res.abs_6_a_0 Bool) (failure.res.abs_7_a_0 Bool) (failure.res.abs_8_a_0 Bool) (failure.res.abs_9_a_0 Bool) (failure.res.abs_10_a_0 Bool) (failure.res.abs_11_a_0 Bool) (failure.res.inst_11_a_0 Bool) (failure.res.inst_10_a_0 Bool) (failure.res.inst_9_a_0 Bool) (failure.res.inst_8_a_0 Bool) (failure.res.inst_7_a_0 Bool) (failure.res.inst_6_a_0 Bool) (failure.res.inst_5_a_0 Bool) (failure.res.inst_4_a_0 Bool) (failure.res.inst_3_a_0 Bool) (failure.res.inst_2_a_0 Bool) (failure.res.inst_1_a_0 Bool) (failure.res.inst_0_a_0 Bool)) Bool + (and (= failure.usr.failure_a_1 (or (or (or failure.res.abs_0_a_1 failure.res.abs_1_a_1) failure.res.abs_6_a_1) failure.res.abs_11_a_1)) (__node_trans_level_failure_0 failure.usr.level_defect_a_1 failure.res.abs_0_a_1 failure.res.inst_11_a_1 failure.usr.level_defect_a_0 failure.res.abs_0_a_0 failure.res.inst_11_a_0) (__node_trans_steam_failure_0 failure.usr.steam_defect_a_1 failure.res.abs_1_a_1 failure.res.inst_10_a_1 failure.usr.steam_defect_a_0 failure.res.abs_1_a_0 failure.res.inst_10_a_0) (__node_trans_OR_0 failure.res.abs_2_a_1 failure.res.abs_3_a_1 failure.res.abs_4_a_1 failure.res.abs_5_a_1 failure.res.abs_6_a_1 failure.res.inst_9_a_1 failure.res.abs_2_a_0 failure.res.abs_3_a_0 failure.res.abs_4_a_0 failure.res.abs_5_a_0 failure.res.abs_6_a_0 failure.res.inst_9_a_0) (__node_trans_pump_failure_0 failure.usr.pump_defect_0_a_1 failure.res.abs_2_a_1 failure.res.inst_8_a_1 failure.usr.pump_defect_0_a_0 failure.res.abs_2_a_0 failure.res.inst_8_a_0) (__node_trans_pump_failure_0 failure.usr.pump_defect_1_a_1 failure.res.abs_3_a_1 failure.res.inst_7_a_1 failure.usr.pump_defect_1_a_0 failure.res.abs_3_a_0 failure.res.inst_7_a_0) (__node_trans_pump_failure_0 failure.usr.pump_defect_2_a_1 failure.res.abs_4_a_1 failure.res.inst_6_a_1 failure.usr.pump_defect_2_a_0 failure.res.abs_4_a_0 failure.res.inst_6_a_0) (__node_trans_pump_failure_0 failure.usr.pump_defect_3_a_1 failure.res.abs_5_a_1 failure.res.inst_5_a_1 failure.usr.pump_defect_3_a_0 failure.res.abs_5_a_0 failure.res.inst_5_a_0) (__node_trans_OR_0 failure.res.abs_7_a_1 failure.res.abs_8_a_1 failure.res.abs_9_a_1 failure.res.abs_10_a_1 failure.res.abs_11_a_1 failure.res.inst_4_a_1 failure.res.abs_7_a_0 failure.res.abs_8_a_0 failure.res.abs_9_a_0 failure.res.abs_10_a_0 failure.res.abs_11_a_0 failure.res.inst_4_a_0) (__node_trans_pump_control_failure_0 failure.usr.pump_control_defect_0_a_1 failure.res.abs_7_a_1 failure.res.inst_3_a_1 failure.usr.pump_control_defect_0_a_0 failure.res.abs_7_a_0 failure.res.inst_3_a_0) (__node_trans_pump_control_failure_0 failure.usr.pump_control_defect_1_a_1 failure.res.abs_8_a_1 failure.res.inst_2_a_1 failure.usr.pump_control_defect_1_a_0 failure.res.abs_8_a_0 failure.res.inst_2_a_0) (__node_trans_pump_control_failure_0 failure.usr.pump_control_defect_2_a_1 failure.res.abs_9_a_1 failure.res.inst_1_a_1 failure.usr.pump_control_defect_2_a_0 failure.res.abs_9_a_0 failure.res.inst_1_a_0) (__node_trans_pump_control_failure_0 failure.usr.pump_control_defect_3_a_1 failure.res.abs_10_a_1 failure.res.inst_0_a_1 failure.usr.pump_control_defect_3_a_0 failure.res.abs_10_a_0 failure.res.inst_0_a_0) (not failure.res.init_flag_a_1))) +(define-fun __node_init_steam_failure_startup_0 ((steam_failure_startup.usr.steam_a_0 Int) (steam_failure_startup.usr.steam_failure_startup_a_0 Bool) (steam_failure_startup.res.init_flag_a_0 Bool)) Bool + (and (= steam_failure_startup.usr.steam_failure_startup_a_0 (not (= steam_failure_startup.usr.steam_a_0 0))) steam_failure_startup.res.init_flag_a_0)) +(define-fun __node_trans_steam_failure_startup_0 ((steam_failure_startup.usr.steam_a_1 Int) (steam_failure_startup.usr.steam_failure_startup_a_1 Bool) (steam_failure_startup.res.init_flag_a_1 Bool) (steam_failure_startup.usr.steam_a_0 Int) (steam_failure_startup.usr.steam_failure_startup_a_0 Bool) (steam_failure_startup.res.init_flag_a_0 Bool)) Bool + (and (= steam_failure_startup.usr.steam_failure_startup_a_1 (not (= steam_failure_startup.usr.steam_a_1 0))) (not steam_failure_startup.res.init_flag_a_1))) +(define-fun __node_init_AND_0 ((AND.usr.a_0_a_0 Bool) (AND.usr.a_1_a_0 Bool) (AND.usr.a_2_a_0 Bool) (AND.usr.a_3_a_0 Bool) (AND.usr.AND_a_0 Bool) (AND.res.init_flag_a_0 Bool)) Bool + (and (= AND.usr.AND_a_0 (and (and (and AND.usr.a_0_a_0 AND.usr.a_1_a_0) AND.usr.a_2_a_0) AND.usr.a_3_a_0)) AND.res.init_flag_a_0)) +(define-fun __node_trans_AND_0 ((AND.usr.a_0_a_1 Bool) (AND.usr.a_1_a_1 Bool) (AND.usr.a_2_a_1 Bool) (AND.usr.a_3_a_1 Bool) (AND.usr.AND_a_1 Bool) (AND.res.init_flag_a_1 Bool) (AND.usr.a_0_a_0 Bool) (AND.usr.a_1_a_0 Bool) (AND.usr.a_2_a_0 Bool) (AND.usr.a_3_a_0 Bool) (AND.usr.AND_a_0 Bool) (AND.res.init_flag_a_0 Bool)) Bool + (and (= AND.usr.AND_a_1 (and (and (and AND.usr.a_0_a_1 AND.usr.a_1_a_1) AND.usr.a_2_a_1) AND.usr.a_3_a_1)) (not AND.res.init_flag_a_1))) +(define-fun __node_init_transmission_failure_0 ((transmission_failure.usr.pump_state_0_a_0 Int) (transmission_failure.usr.pump_state_1_a_0 Int) (transmission_failure.usr.pump_state_2_a_0 Int) (transmission_failure.usr.pump_state_3_a_0 Int) (transmission_failure.usr.transmission_failure_a_0 Bool) (transmission_failure.res.init_flag_a_0 Bool)) Bool + (and (= transmission_failure.usr.transmission_failure_a_0 (or (or (or (= transmission_failure.usr.pump_state_0_a_0 3) (= transmission_failure.usr.pump_state_1_a_0 3)) (= transmission_failure.usr.pump_state_2_a_0 3)) (= transmission_failure.usr.pump_state_3_a_0 3))) transmission_failure.res.init_flag_a_0)) +(define-fun __node_trans_transmission_failure_0 ((transmission_failure.usr.pump_state_0_a_1 Int) (transmission_failure.usr.pump_state_1_a_1 Int) (transmission_failure.usr.pump_state_2_a_1 Int) (transmission_failure.usr.pump_state_3_a_1 Int) (transmission_failure.usr.transmission_failure_a_1 Bool) (transmission_failure.res.init_flag_a_1 Bool) (transmission_failure.usr.pump_state_0_a_0 Int) (transmission_failure.usr.pump_state_1_a_0 Int) (transmission_failure.usr.pump_state_2_a_0 Int) (transmission_failure.usr.pump_state_3_a_0 Int) (transmission_failure.usr.transmission_failure_a_0 Bool) (transmission_failure.res.init_flag_a_0 Bool)) Bool + (and (= transmission_failure.usr.transmission_failure_a_1 (or (or (or (= transmission_failure.usr.pump_state_0_a_1 3) (= transmission_failure.usr.pump_state_1_a_1 3)) (= transmission_failure.usr.pump_state_2_a_1 3)) (= transmission_failure.usr.pump_state_3_a_1 3))) (not transmission_failure.res.init_flag_a_1))) +(define-fun __node_init_critical_failure_0 ((critical_failure.usr.op_mode_a_0 Int) (critical_failure.usr.steam_a_0 Int) (critical_failure.usr.level_defect_a_0 Int) (critical_failure.usr.steam_defect_a_0 Int) (critical_failure.usr.pump_defect_0_a_0 Int) (critical_failure.usr.pump_defect_1_a_0 Int) (critical_failure.usr.pump_defect_2_a_0 Int) (critical_failure.usr.pump_defect_3_a_0 Int) (critical_failure.usr.q_a_0 Int) (critical_failure.usr.pump_state_0_a_0 Int) (critical_failure.usr.pump_state_1_a_0 Int) (critical_failure.usr.pump_state_2_a_0 Int) (critical_failure.usr.pump_state_3_a_0 Int) (critical_failure.usr.critical_failure_a_0 Bool) (critical_failure.res.init_flag_a_0 Bool) (critical_failure.res.abs_0_a_0 Bool) (critical_failure.res.abs_1_a_0 Bool) (critical_failure.res.abs_2_a_0 Bool) (critical_failure.res.abs_3_a_0 Bool) (critical_failure.res.abs_4_a_0 Bool) (critical_failure.res.abs_5_a_0 Bool) (critical_failure.res.abs_6_a_0 Bool) (critical_failure.res.abs_7_a_0 Bool) (critical_failure.res.abs_8_a_0 Bool) (critical_failure.res.abs_9_a_0 Bool) (critical_failure.res.inst_9_a_0 Bool) (critical_failure.res.inst_8_a_0 Bool) (critical_failure.res.inst_7_a_0 Bool) (critical_failure.res.inst_6_a_0 Bool) (critical_failure.res.inst_5_a_0 Bool) (critical_failure.res.inst_4_a_0 Bool) (critical_failure.res.inst_3_a_0 Bool) (critical_failure.res.inst_2_a_0 Bool) (critical_failure.res.inst_1_a_0 Bool) (critical_failure.res.inst_0_a_0 Bool)) Bool + (and (= critical_failure.usr.critical_failure_a_0 (or (or (or (or (or critical_failure.res.abs_0_a_0 (and (= critical_failure.usr.op_mode_a_0 1) critical_failure.res.abs_1_a_0)) (and (= critical_failure.usr.op_mode_a_0 2) (or critical_failure.res.abs_2_a_0 critical_failure.res.abs_3_a_0))) (and (= critical_failure.usr.op_mode_a_0 3) critical_failure.res.abs_4_a_0)) (and (= critical_failure.usr.op_mode_a_0 4) critical_failure.res.abs_4_a_0)) (and (= critical_failure.usr.op_mode_a_0 5) (or (or critical_failure.res.abs_4_a_0 critical_failure.res.abs_3_a_0) critical_failure.res.abs_9_a_0)))) (__node_init_transmission_failure_0 critical_failure.usr.pump_state_0_a_0 critical_failure.usr.pump_state_1_a_0 critical_failure.usr.pump_state_2_a_0 critical_failure.usr.pump_state_3_a_0 critical_failure.res.abs_0_a_0 critical_failure.res.inst_9_a_0) (__node_init_steam_failure_startup_0 critical_failure.usr.steam_a_0 critical_failure.res.abs_1_a_0 critical_failure.res.inst_8_a_0) (__node_init_level_failure_0 critical_failure.usr.level_defect_a_0 critical_failure.res.abs_2_a_0 critical_failure.res.inst_7_a_0) (__node_init_steam_failure_0 critical_failure.usr.steam_defect_a_0 critical_failure.res.abs_3_a_0 critical_failure.res.inst_6_a_0) (__node_init_dangerous_level_0 critical_failure.usr.q_a_0 critical_failure.res.abs_4_a_0 critical_failure.res.inst_5_a_0) (__node_init_AND_0 critical_failure.res.abs_5_a_0 critical_failure.res.abs_6_a_0 critical_failure.res.abs_7_a_0 critical_failure.res.abs_8_a_0 critical_failure.res.abs_9_a_0 critical_failure.res.inst_4_a_0) (__node_init_pump_failure_0 critical_failure.usr.pump_defect_0_a_0 critical_failure.res.abs_5_a_0 critical_failure.res.inst_3_a_0) (__node_init_pump_failure_0 critical_failure.usr.pump_defect_1_a_0 critical_failure.res.abs_6_a_0 critical_failure.res.inst_2_a_0) (__node_init_pump_failure_0 critical_failure.usr.pump_defect_2_a_0 critical_failure.res.abs_7_a_0 critical_failure.res.inst_1_a_0) (__node_init_pump_failure_0 critical_failure.usr.pump_defect_3_a_0 critical_failure.res.abs_8_a_0 critical_failure.res.inst_0_a_0) critical_failure.res.init_flag_a_0)) +(define-fun __node_trans_critical_failure_0 ((critical_failure.usr.op_mode_a_1 Int) (critical_failure.usr.steam_a_1 Int) (critical_failure.usr.level_defect_a_1 Int) (critical_failure.usr.steam_defect_a_1 Int) (critical_failure.usr.pump_defect_0_a_1 Int) (critical_failure.usr.pump_defect_1_a_1 Int) (critical_failure.usr.pump_defect_2_a_1 Int) (critical_failure.usr.pump_defect_3_a_1 Int) (critical_failure.usr.q_a_1 Int) (critical_failure.usr.pump_state_0_a_1 Int) (critical_failure.usr.pump_state_1_a_1 Int) (critical_failure.usr.pump_state_2_a_1 Int) (critical_failure.usr.pump_state_3_a_1 Int) (critical_failure.usr.critical_failure_a_1 Bool) (critical_failure.res.init_flag_a_1 Bool) (critical_failure.res.abs_0_a_1 Bool) (critical_failure.res.abs_1_a_1 Bool) (critical_failure.res.abs_2_a_1 Bool) (critical_failure.res.abs_3_a_1 Bool) (critical_failure.res.abs_4_a_1 Bool) (critical_failure.res.abs_5_a_1 Bool) (critical_failure.res.abs_6_a_1 Bool) (critical_failure.res.abs_7_a_1 Bool) (critical_failure.res.abs_8_a_1 Bool) (critical_failure.res.abs_9_a_1 Bool) (critical_failure.res.inst_9_a_1 Bool) (critical_failure.res.inst_8_a_1 Bool) (critical_failure.res.inst_7_a_1 Bool) (critical_failure.res.inst_6_a_1 Bool) (critical_failure.res.inst_5_a_1 Bool) (critical_failure.res.inst_4_a_1 Bool) (critical_failure.res.inst_3_a_1 Bool) (critical_failure.res.inst_2_a_1 Bool) (critical_failure.res.inst_1_a_1 Bool) (critical_failure.res.inst_0_a_1 Bool) (critical_failure.usr.op_mode_a_0 Int) (critical_failure.usr.steam_a_0 Int) (critical_failure.usr.level_defect_a_0 Int) (critical_failure.usr.steam_defect_a_0 Int) (critical_failure.usr.pump_defect_0_a_0 Int) (critical_failure.usr.pump_defect_1_a_0 Int) (critical_failure.usr.pump_defect_2_a_0 Int) (critical_failure.usr.pump_defect_3_a_0 Int) (critical_failure.usr.q_a_0 Int) (critical_failure.usr.pump_state_0_a_0 Int) (critical_failure.usr.pump_state_1_a_0 Int) (critical_failure.usr.pump_state_2_a_0 Int) (critical_failure.usr.pump_state_3_a_0 Int) (critical_failure.usr.critical_failure_a_0 Bool) (critical_failure.res.init_flag_a_0 Bool) (critical_failure.res.abs_0_a_0 Bool) (critical_failure.res.abs_1_a_0 Bool) (critical_failure.res.abs_2_a_0 Bool) (critical_failure.res.abs_3_a_0 Bool) (critical_failure.res.abs_4_a_0 Bool) (critical_failure.res.abs_5_a_0 Bool) (critical_failure.res.abs_6_a_0 Bool) (critical_failure.res.abs_7_a_0 Bool) (critical_failure.res.abs_8_a_0 Bool) (critical_failure.res.abs_9_a_0 Bool) (critical_failure.res.inst_9_a_0 Bool) (critical_failure.res.inst_8_a_0 Bool) (critical_failure.res.inst_7_a_0 Bool) (critical_failure.res.inst_6_a_0 Bool) (critical_failure.res.inst_5_a_0 Bool) (critical_failure.res.inst_4_a_0 Bool) (critical_failure.res.inst_3_a_0 Bool) (critical_failure.res.inst_2_a_0 Bool) (critical_failure.res.inst_1_a_0 Bool) (critical_failure.res.inst_0_a_0 Bool)) Bool + (and (= critical_failure.usr.critical_failure_a_1 (or (or (or (or (or critical_failure.res.abs_0_a_1 (and (= critical_failure.usr.op_mode_a_1 1) critical_failure.res.abs_1_a_1)) (and (= critical_failure.usr.op_mode_a_1 2) (or critical_failure.res.abs_2_a_1 critical_failure.res.abs_3_a_1))) (and (= critical_failure.usr.op_mode_a_1 3) critical_failure.res.abs_4_a_1)) (and (= critical_failure.usr.op_mode_a_1 4) critical_failure.res.abs_4_a_1)) (and (= critical_failure.usr.op_mode_a_1 5) (or (or critical_failure.res.abs_4_a_1 critical_failure.res.abs_3_a_1) critical_failure.res.abs_9_a_1)))) (__node_trans_transmission_failure_0 critical_failure.usr.pump_state_0_a_1 critical_failure.usr.pump_state_1_a_1 critical_failure.usr.pump_state_2_a_1 critical_failure.usr.pump_state_3_a_1 critical_failure.res.abs_0_a_1 critical_failure.res.inst_9_a_1 critical_failure.usr.pump_state_0_a_0 critical_failure.usr.pump_state_1_a_0 critical_failure.usr.pump_state_2_a_0 critical_failure.usr.pump_state_3_a_0 critical_failure.res.abs_0_a_0 critical_failure.res.inst_9_a_0) (__node_trans_steam_failure_startup_0 critical_failure.usr.steam_a_1 critical_failure.res.abs_1_a_1 critical_failure.res.inst_8_a_1 critical_failure.usr.steam_a_0 critical_failure.res.abs_1_a_0 critical_failure.res.inst_8_a_0) (__node_trans_level_failure_0 critical_failure.usr.level_defect_a_1 critical_failure.res.abs_2_a_1 critical_failure.res.inst_7_a_1 critical_failure.usr.level_defect_a_0 critical_failure.res.abs_2_a_0 critical_failure.res.inst_7_a_0) (__node_trans_steam_failure_0 critical_failure.usr.steam_defect_a_1 critical_failure.res.abs_3_a_1 critical_failure.res.inst_6_a_1 critical_failure.usr.steam_defect_a_0 critical_failure.res.abs_3_a_0 critical_failure.res.inst_6_a_0) (__node_trans_dangerous_level_0 critical_failure.usr.q_a_1 critical_failure.res.abs_4_a_1 critical_failure.res.inst_5_a_1 critical_failure.usr.q_a_0 critical_failure.res.abs_4_a_0 critical_failure.res.inst_5_a_0) (__node_trans_AND_0 critical_failure.res.abs_5_a_1 critical_failure.res.abs_6_a_1 critical_failure.res.abs_7_a_1 critical_failure.res.abs_8_a_1 critical_failure.res.abs_9_a_1 critical_failure.res.inst_4_a_1 critical_failure.res.abs_5_a_0 critical_failure.res.abs_6_a_0 critical_failure.res.abs_7_a_0 critical_failure.res.abs_8_a_0 critical_failure.res.abs_9_a_0 critical_failure.res.inst_4_a_0) (__node_trans_pump_failure_0 critical_failure.usr.pump_defect_0_a_1 critical_failure.res.abs_5_a_1 critical_failure.res.inst_3_a_1 critical_failure.usr.pump_defect_0_a_0 critical_failure.res.abs_5_a_0 critical_failure.res.inst_3_a_0) (__node_trans_pump_failure_0 critical_failure.usr.pump_defect_1_a_1 critical_failure.res.abs_6_a_1 critical_failure.res.inst_2_a_1 critical_failure.usr.pump_defect_1_a_0 critical_failure.res.abs_6_a_0 critical_failure.res.inst_2_a_0) (__node_trans_pump_failure_0 critical_failure.usr.pump_defect_2_a_1 critical_failure.res.abs_7_a_1 critical_failure.res.inst_1_a_1 critical_failure.usr.pump_defect_2_a_0 critical_failure.res.abs_7_a_0 critical_failure.res.inst_1_a_0) (__node_trans_pump_failure_0 critical_failure.usr.pump_defect_3_a_1 critical_failure.res.abs_8_a_1 critical_failure.res.inst_0_a_1 critical_failure.usr.pump_defect_3_a_0 critical_failure.res.abs_8_a_0 critical_failure.res.inst_0_a_0) (not critical_failure.res.init_flag_a_1))) +(define-fun __node_init_ControlMode_0 ((ControlMode.usr.steam_boiler_waiting_a_0 Bool) (ControlMode.usr.physical_units_ready_a_0 Bool) (ControlMode.usr.stop_request_a_0 Bool) (ControlMode.usr.steam_a_0 Int) (ControlMode.usr.level_defect_a_0 Int) (ControlMode.usr.steam_defect_a_0 Int) (ControlMode.usr.pump_defect_0_a_0 Int) (ControlMode.usr.pump_defect_1_a_0 Int) (ControlMode.usr.pump_defect_2_a_0 Int) (ControlMode.usr.pump_defect_3_a_0 Int) (ControlMode.usr.pump_control_defect_0_a_0 Int) (ControlMode.usr.pump_control_defect_1_a_0 Int) (ControlMode.usr.pump_control_defect_2_a_0 Int) (ControlMode.usr.pump_control_defect_3_a_0 Int) (ControlMode.usr.q_a_0 Int) (ControlMode.usr.pump_state_0_a_0 Int) (ControlMode.usr.pump_state_1_a_0 Int) (ControlMode.usr.pump_state_2_a_0 Int) (ControlMode.usr.pump_state_3_a_0 Int) (ControlMode.res.nondet_0 Int) (ControlMode.usr.op_mode_a_0 Int) (ControlMode.res.init_flag_a_0 Bool) (ControlMode.res.abs_0_a_0 Int) (ControlMode.res.abs_1_a_0 Bool) (ControlMode.res.abs_2_a_0 Bool) (ControlMode.res.abs_3_a_0 Bool) (ControlMode.res.inst_46_a_0 Bool) (ControlMode.res.inst_45_a_0 Bool) (ControlMode.res.inst_44_a_0 Bool) (ControlMode.res.inst_43_a_0 Bool) (ControlMode.res.inst_42_a_0 Bool) (ControlMode.res.inst_41_a_0 Bool) (ControlMode.res.inst_40_a_0 Bool) (ControlMode.res.inst_39_a_0 Bool) (ControlMode.res.inst_38_a_0 Bool) (ControlMode.res.inst_37_a_0 Bool) (ControlMode.res.inst_36_a_0 Bool) (ControlMode.res.inst_35_a_0 Bool) (ControlMode.res.inst_34_a_0 Bool) (ControlMode.res.inst_33_a_0 Bool) (ControlMode.res.inst_32_a_0 Bool) (ControlMode.res.inst_31_a_0 Bool) (ControlMode.res.inst_30_a_0 Bool) (ControlMode.res.inst_29_a_0 Bool) (ControlMode.res.inst_28_a_0 Bool) (ControlMode.res.inst_27_a_0 Bool) (ControlMode.res.inst_26_a_0 Bool) (ControlMode.res.inst_25_a_0 Bool) (ControlMode.res.inst_24_a_0 Bool) (ControlMode.res.inst_23_a_0 Bool) (ControlMode.res.inst_22_a_0 Bool) (ControlMode.res.inst_21_a_0 Bool) (ControlMode.res.inst_20_a_0 Bool) (ControlMode.res.inst_19_a_0 Bool) (ControlMode.res.inst_18_a_0 Bool) (ControlMode.res.inst_17_a_0 Bool) (ControlMode.res.inst_16_a_0 Bool) (ControlMode.res.inst_15_a_0 Bool) (ControlMode.res.inst_14_a_0 Bool) (ControlMode.res.inst_13_a_0 Bool) (ControlMode.res.inst_12_a_0 Bool) (ControlMode.res.inst_11_a_0 Bool) (ControlMode.res.inst_10_a_0 Bool) (ControlMode.res.inst_9_a_0 Bool) (ControlMode.res.inst_8_a_0 Bool) (ControlMode.res.inst_7_a_0 Bool) (ControlMode.res.inst_6_a_0 Bool) (ControlMode.res.inst_5_a_0 Bool) (ControlMode.res.inst_4_a_0 Bool) (ControlMode.res.inst_3_a_0 Bool) (ControlMode.res.inst_2_a_0 Bool) (ControlMode.res.inst_1_a_0 Bool) (ControlMode.res.inst_0_a_0 Bool)) Bool + (and (= ControlMode.usr.op_mode_a_0 1) (= ControlMode.res.abs_0_a_0 (let ((X1 ControlMode.res.nondet_0)) X1)) (__node_init_critical_failure_0 ControlMode.res.abs_0_a_0 ControlMode.usr.steam_a_0 ControlMode.usr.level_defect_a_0 ControlMode.usr.steam_defect_a_0 ControlMode.usr.pump_defect_0_a_0 ControlMode.usr.pump_defect_1_a_0 ControlMode.usr.pump_defect_2_a_0 ControlMode.usr.pump_defect_3_a_0 ControlMode.usr.q_a_0 ControlMode.usr.pump_state_0_a_0 ControlMode.usr.pump_state_1_a_0 ControlMode.usr.pump_state_2_a_0 ControlMode.usr.pump_state_3_a_0 ControlMode.res.abs_1_a_0 ControlMode.res.inst_46_a_0 ControlMode.res.inst_45_a_0 ControlMode.res.inst_44_a_0 ControlMode.res.inst_43_a_0 ControlMode.res.inst_42_a_0 ControlMode.res.inst_41_a_0 ControlMode.res.inst_40_a_0 ControlMode.res.inst_39_a_0 ControlMode.res.inst_38_a_0 ControlMode.res.inst_37_a_0 ControlMode.res.inst_36_a_0 ControlMode.res.inst_35_a_0 ControlMode.res.inst_34_a_0 ControlMode.res.inst_33_a_0 ControlMode.res.inst_32_a_0 ControlMode.res.inst_31_a_0 ControlMode.res.inst_30_a_0 ControlMode.res.inst_29_a_0 ControlMode.res.inst_28_a_0 ControlMode.res.inst_27_a_0 ControlMode.res.inst_26_a_0) (__node_init_level_failure_0 ControlMode.usr.level_defect_a_0 ControlMode.res.abs_2_a_0 ControlMode.res.inst_25_a_0) (__node_init_failure_0 ControlMode.usr.level_defect_a_0 ControlMode.usr.steam_defect_a_0 ControlMode.usr.pump_defect_0_a_0 ControlMode.usr.pump_defect_1_a_0 ControlMode.usr.pump_defect_2_a_0 ControlMode.usr.pump_defect_3_a_0 ControlMode.usr.pump_control_defect_0_a_0 ControlMode.usr.pump_control_defect_1_a_0 ControlMode.usr.pump_control_defect_2_a_0 ControlMode.usr.pump_control_defect_3_a_0 ControlMode.res.abs_3_a_0 ControlMode.res.inst_24_a_0 ControlMode.res.inst_23_a_0 ControlMode.res.inst_22_a_0 ControlMode.res.inst_21_a_0 ControlMode.res.inst_20_a_0 ControlMode.res.inst_19_a_0 ControlMode.res.inst_18_a_0 ControlMode.res.inst_17_a_0 ControlMode.res.inst_16_a_0 ControlMode.res.inst_15_a_0 ControlMode.res.inst_14_a_0 ControlMode.res.inst_13_a_0 ControlMode.res.inst_12_a_0 ControlMode.res.inst_11_a_0 ControlMode.res.inst_10_a_0 ControlMode.res.inst_9_a_0 ControlMode.res.inst_8_a_0 ControlMode.res.inst_7_a_0 ControlMode.res.inst_6_a_0 ControlMode.res.inst_5_a_0 ControlMode.res.inst_4_a_0 ControlMode.res.inst_3_a_0 ControlMode.res.inst_2_a_0 ControlMode.res.inst_1_a_0 ControlMode.res.inst_0_a_0) (<= 1 ControlMode.usr.op_mode_a_0 6) ControlMode.res.init_flag_a_0)) +(define-fun __node_trans_ControlMode_0 ((ControlMode.usr.steam_boiler_waiting_a_1 Bool) (ControlMode.usr.physical_units_ready_a_1 Bool) (ControlMode.usr.stop_request_a_1 Bool) (ControlMode.usr.steam_a_1 Int) (ControlMode.usr.level_defect_a_1 Int) (ControlMode.usr.steam_defect_a_1 Int) (ControlMode.usr.pump_defect_0_a_1 Int) (ControlMode.usr.pump_defect_1_a_1 Int) (ControlMode.usr.pump_defect_2_a_1 Int) (ControlMode.usr.pump_defect_3_a_1 Int) (ControlMode.usr.pump_control_defect_0_a_1 Int) (ControlMode.usr.pump_control_defect_1_a_1 Int) (ControlMode.usr.pump_control_defect_2_a_1 Int) (ControlMode.usr.pump_control_defect_3_a_1 Int) (ControlMode.usr.q_a_1 Int) (ControlMode.usr.pump_state_0_a_1 Int) (ControlMode.usr.pump_state_1_a_1 Int) (ControlMode.usr.pump_state_2_a_1 Int) (ControlMode.usr.pump_state_3_a_1 Int) (ControlMode.res.nondet_0 Int) (ControlMode.usr.op_mode_a_1 Int) (ControlMode.res.init_flag_a_1 Bool) (ControlMode.res.abs_0_a_1 Int) (ControlMode.res.abs_1_a_1 Bool) (ControlMode.res.abs_2_a_1 Bool) (ControlMode.res.abs_3_a_1 Bool) (ControlMode.res.inst_46_a_1 Bool) (ControlMode.res.inst_45_a_1 Bool) (ControlMode.res.inst_44_a_1 Bool) (ControlMode.res.inst_43_a_1 Bool) (ControlMode.res.inst_42_a_1 Bool) (ControlMode.res.inst_41_a_1 Bool) (ControlMode.res.inst_40_a_1 Bool) (ControlMode.res.inst_39_a_1 Bool) (ControlMode.res.inst_38_a_1 Bool) (ControlMode.res.inst_37_a_1 Bool) (ControlMode.res.inst_36_a_1 Bool) (ControlMode.res.inst_35_a_1 Bool) (ControlMode.res.inst_34_a_1 Bool) (ControlMode.res.inst_33_a_1 Bool) (ControlMode.res.inst_32_a_1 Bool) (ControlMode.res.inst_31_a_1 Bool) (ControlMode.res.inst_30_a_1 Bool) (ControlMode.res.inst_29_a_1 Bool) (ControlMode.res.inst_28_a_1 Bool) (ControlMode.res.inst_27_a_1 Bool) (ControlMode.res.inst_26_a_1 Bool) (ControlMode.res.inst_25_a_1 Bool) (ControlMode.res.inst_24_a_1 Bool) (ControlMode.res.inst_23_a_1 Bool) (ControlMode.res.inst_22_a_1 Bool) (ControlMode.res.inst_21_a_1 Bool) (ControlMode.res.inst_20_a_1 Bool) (ControlMode.res.inst_19_a_1 Bool) (ControlMode.res.inst_18_a_1 Bool) (ControlMode.res.inst_17_a_1 Bool) (ControlMode.res.inst_16_a_1 Bool) (ControlMode.res.inst_15_a_1 Bool) (ControlMode.res.inst_14_a_1 Bool) (ControlMode.res.inst_13_a_1 Bool) (ControlMode.res.inst_12_a_1 Bool) (ControlMode.res.inst_11_a_1 Bool) (ControlMode.res.inst_10_a_1 Bool) (ControlMode.res.inst_9_a_1 Bool) (ControlMode.res.inst_8_a_1 Bool) (ControlMode.res.inst_7_a_1 Bool) (ControlMode.res.inst_6_a_1 Bool) (ControlMode.res.inst_5_a_1 Bool) (ControlMode.res.inst_4_a_1 Bool) (ControlMode.res.inst_3_a_1 Bool) (ControlMode.res.inst_2_a_1 Bool) (ControlMode.res.inst_1_a_1 Bool) (ControlMode.res.inst_0_a_1 Bool) (ControlMode.usr.steam_boiler_waiting_a_0 Bool) (ControlMode.usr.physical_units_ready_a_0 Bool) (ControlMode.usr.stop_request_a_0 Bool) (ControlMode.usr.steam_a_0 Int) (ControlMode.usr.level_defect_a_0 Int) (ControlMode.usr.steam_defect_a_0 Int) (ControlMode.usr.pump_defect_0_a_0 Int) (ControlMode.usr.pump_defect_1_a_0 Int) (ControlMode.usr.pump_defect_2_a_0 Int) (ControlMode.usr.pump_defect_3_a_0 Int) (ControlMode.usr.pump_control_defect_0_a_0 Int) (ControlMode.usr.pump_control_defect_1_a_0 Int) (ControlMode.usr.pump_control_defect_2_a_0 Int) (ControlMode.usr.pump_control_defect_3_a_0 Int) (ControlMode.usr.q_a_0 Int) (ControlMode.usr.pump_state_0_a_0 Int) (ControlMode.usr.pump_state_1_a_0 Int) (ControlMode.usr.pump_state_2_a_0 Int) (ControlMode.usr.pump_state_3_a_0 Int) (ControlMode.usr.op_mode_a_0 Int) (ControlMode.res.init_flag_a_0 Bool) (ControlMode.res.abs_0_a_0 Int) (ControlMode.res.abs_1_a_0 Bool) (ControlMode.res.abs_2_a_0 Bool) (ControlMode.res.abs_3_a_0 Bool) (ControlMode.res.inst_46_a_0 Bool) (ControlMode.res.inst_45_a_0 Bool) (ControlMode.res.inst_44_a_0 Bool) (ControlMode.res.inst_43_a_0 Bool) (ControlMode.res.inst_42_a_0 Bool) (ControlMode.res.inst_41_a_0 Bool) (ControlMode.res.inst_40_a_0 Bool) (ControlMode.res.inst_39_a_0 Bool) (ControlMode.res.inst_38_a_0 Bool) (ControlMode.res.inst_37_a_0 Bool) (ControlMode.res.inst_36_a_0 Bool) (ControlMode.res.inst_35_a_0 Bool) (ControlMode.res.inst_34_a_0 Bool) (ControlMode.res.inst_33_a_0 Bool) (ControlMode.res.inst_32_a_0 Bool) (ControlMode.res.inst_31_a_0 Bool) (ControlMode.res.inst_30_a_0 Bool) (ControlMode.res.inst_29_a_0 Bool) (ControlMode.res.inst_28_a_0 Bool) (ControlMode.res.inst_27_a_0 Bool) (ControlMode.res.inst_26_a_0 Bool) (ControlMode.res.inst_25_a_0 Bool) (ControlMode.res.inst_24_a_0 Bool) (ControlMode.res.inst_23_a_0 Bool) (ControlMode.res.inst_22_a_0 Bool) (ControlMode.res.inst_21_a_0 Bool) (ControlMode.res.inst_20_a_0 Bool) (ControlMode.res.inst_19_a_0 Bool) (ControlMode.res.inst_18_a_0 Bool) (ControlMode.res.inst_17_a_0 Bool) (ControlMode.res.inst_16_a_0 Bool) (ControlMode.res.inst_15_a_0 Bool) (ControlMode.res.inst_14_a_0 Bool) (ControlMode.res.inst_13_a_0 Bool) (ControlMode.res.inst_12_a_0 Bool) (ControlMode.res.inst_11_a_0 Bool) (ControlMode.res.inst_10_a_0 Bool) (ControlMode.res.inst_9_a_0 Bool) (ControlMode.res.inst_8_a_0 Bool) (ControlMode.res.inst_7_a_0 Bool) (ControlMode.res.inst_6_a_0 Bool) (ControlMode.res.inst_5_a_0 Bool) (ControlMode.res.inst_4_a_0 Bool) (ControlMode.res.inst_3_a_0 Bool) (ControlMode.res.inst_2_a_0 Bool) (ControlMode.res.inst_1_a_0 Bool) (ControlMode.res.inst_0_a_0 Bool)) Bool + (and (= ControlMode.res.abs_0_a_1 ControlMode.usr.op_mode_a_0) (= ControlMode.usr.op_mode_a_1 (ite (or (or ControlMode.res.abs_1_a_1 ControlMode.usr.stop_request_a_1) (= ControlMode.usr.op_mode_a_0 6)) 6 (ite (= ControlMode.usr.op_mode_a_0 1) (ite ControlMode.usr.steam_boiler_waiting_a_1 2 1) (ite (and (= ControlMode.usr.op_mode_a_0 2) (not ControlMode.usr.physical_units_ready_a_1)) 2 (ite ControlMode.res.abs_2_a_1 5 (ite ControlMode.res.abs_3_a_1 4 3)))))) (__node_trans_critical_failure_0 ControlMode.res.abs_0_a_1 ControlMode.usr.steam_a_1 ControlMode.usr.level_defect_a_1 ControlMode.usr.steam_defect_a_1 ControlMode.usr.pump_defect_0_a_1 ControlMode.usr.pump_defect_1_a_1 ControlMode.usr.pump_defect_2_a_1 ControlMode.usr.pump_defect_3_a_1 ControlMode.usr.q_a_1 ControlMode.usr.pump_state_0_a_1 ControlMode.usr.pump_state_1_a_1 ControlMode.usr.pump_state_2_a_1 ControlMode.usr.pump_state_3_a_1 ControlMode.res.abs_1_a_1 ControlMode.res.inst_46_a_1 ControlMode.res.inst_45_a_1 ControlMode.res.inst_44_a_1 ControlMode.res.inst_43_a_1 ControlMode.res.inst_42_a_1 ControlMode.res.inst_41_a_1 ControlMode.res.inst_40_a_1 ControlMode.res.inst_39_a_1 ControlMode.res.inst_38_a_1 ControlMode.res.inst_37_a_1 ControlMode.res.inst_36_a_1 ControlMode.res.inst_35_a_1 ControlMode.res.inst_34_a_1 ControlMode.res.inst_33_a_1 ControlMode.res.inst_32_a_1 ControlMode.res.inst_31_a_1 ControlMode.res.inst_30_a_1 ControlMode.res.inst_29_a_1 ControlMode.res.inst_28_a_1 ControlMode.res.inst_27_a_1 ControlMode.res.inst_26_a_1 ControlMode.res.abs_0_a_0 ControlMode.usr.steam_a_0 ControlMode.usr.level_defect_a_0 ControlMode.usr.steam_defect_a_0 ControlMode.usr.pump_defect_0_a_0 ControlMode.usr.pump_defect_1_a_0 ControlMode.usr.pump_defect_2_a_0 ControlMode.usr.pump_defect_3_a_0 ControlMode.usr.q_a_0 ControlMode.usr.pump_state_0_a_0 ControlMode.usr.pump_state_1_a_0 ControlMode.usr.pump_state_2_a_0 ControlMode.usr.pump_state_3_a_0 ControlMode.res.abs_1_a_0 ControlMode.res.inst_46_a_0 ControlMode.res.inst_45_a_0 ControlMode.res.inst_44_a_0 ControlMode.res.inst_43_a_0 ControlMode.res.inst_42_a_0 ControlMode.res.inst_41_a_0 ControlMode.res.inst_40_a_0 ControlMode.res.inst_39_a_0 ControlMode.res.inst_38_a_0 ControlMode.res.inst_37_a_0 ControlMode.res.inst_36_a_0 ControlMode.res.inst_35_a_0 ControlMode.res.inst_34_a_0 ControlMode.res.inst_33_a_0 ControlMode.res.inst_32_a_0 ControlMode.res.inst_31_a_0 ControlMode.res.inst_30_a_0 ControlMode.res.inst_29_a_0 ControlMode.res.inst_28_a_0 ControlMode.res.inst_27_a_0 ControlMode.res.inst_26_a_0) (__node_trans_level_failure_0 ControlMode.usr.level_defect_a_1 ControlMode.res.abs_2_a_1 ControlMode.res.inst_25_a_1 ControlMode.usr.level_defect_a_0 ControlMode.res.abs_2_a_0 ControlMode.res.inst_25_a_0) (__node_trans_failure_0 ControlMode.usr.level_defect_a_1 ControlMode.usr.steam_defect_a_1 ControlMode.usr.pump_defect_0_a_1 ControlMode.usr.pump_defect_1_a_1 ControlMode.usr.pump_defect_2_a_1 ControlMode.usr.pump_defect_3_a_1 ControlMode.usr.pump_control_defect_0_a_1 ControlMode.usr.pump_control_defect_1_a_1 ControlMode.usr.pump_control_defect_2_a_1 ControlMode.usr.pump_control_defect_3_a_1 ControlMode.res.abs_3_a_1 ControlMode.res.inst_24_a_1 ControlMode.res.inst_23_a_1 ControlMode.res.inst_22_a_1 ControlMode.res.inst_21_a_1 ControlMode.res.inst_20_a_1 ControlMode.res.inst_19_a_1 ControlMode.res.inst_18_a_1 ControlMode.res.inst_17_a_1 ControlMode.res.inst_16_a_1 ControlMode.res.inst_15_a_1 ControlMode.res.inst_14_a_1 ControlMode.res.inst_13_a_1 ControlMode.res.inst_12_a_1 ControlMode.res.inst_11_a_1 ControlMode.res.inst_10_a_1 ControlMode.res.inst_9_a_1 ControlMode.res.inst_8_a_1 ControlMode.res.inst_7_a_1 ControlMode.res.inst_6_a_1 ControlMode.res.inst_5_a_1 ControlMode.res.inst_4_a_1 ControlMode.res.inst_3_a_1 ControlMode.res.inst_2_a_1 ControlMode.res.inst_1_a_1 ControlMode.res.inst_0_a_1 ControlMode.usr.level_defect_a_0 ControlMode.usr.steam_defect_a_0 ControlMode.usr.pump_defect_0_a_0 ControlMode.usr.pump_defect_1_a_0 ControlMode.usr.pump_defect_2_a_0 ControlMode.usr.pump_defect_3_a_0 ControlMode.usr.pump_control_defect_0_a_0 ControlMode.usr.pump_control_defect_1_a_0 ControlMode.usr.pump_control_defect_2_a_0 ControlMode.usr.pump_control_defect_3_a_0 ControlMode.res.abs_3_a_0 ControlMode.res.inst_24_a_0 ControlMode.res.inst_23_a_0 ControlMode.res.inst_22_a_0 ControlMode.res.inst_21_a_0 ControlMode.res.inst_20_a_0 ControlMode.res.inst_19_a_0 ControlMode.res.inst_18_a_0 ControlMode.res.inst_17_a_0 ControlMode.res.inst_16_a_0 ControlMode.res.inst_15_a_0 ControlMode.res.inst_14_a_0 ControlMode.res.inst_13_a_0 ControlMode.res.inst_12_a_0 ControlMode.res.inst_11_a_0 ControlMode.res.inst_10_a_0 ControlMode.res.inst_9_a_0 ControlMode.res.inst_8_a_0 ControlMode.res.inst_7_a_0 ControlMode.res.inst_6_a_0 ControlMode.res.inst_5_a_0 ControlMode.res.inst_4_a_0 ControlMode.res.inst_3_a_0 ControlMode.res.inst_2_a_0 ControlMode.res.inst_1_a_0 ControlMode.res.inst_0_a_0) (<= 1 ControlMode.usr.op_mode_a_1 6) (not ControlMode.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.steam_boiler_waiting_a_0 Bool) (top.usr.physical_units_ready_a_0 Bool) (top.usr.stop_request_a_0 Bool) (top.usr.steam_a_0 Int) (top.usr.level_defect_a_0 Int) (top.usr.steam_defect_a_0 Int) (top.usr.pump_defect_0_a_0 Int) (top.usr.pump_defect_1_a_0 Int) (top.usr.pump_defect_2_a_0 Int) (top.usr.pump_defect_3_a_0 Int) (top.usr.pump_control_defect_0_a_0 Int) (top.usr.pump_control_defect_1_a_0 Int) (top.usr.pump_control_defect_2_a_0 Int) (top.usr.pump_control_defect_3_a_0 Int) (top.usr.q_a_0 Int) (top.usr.pump_state_0_a_0 Int) (top.usr.pump_state_1_a_0 Int) (top.usr.pump_state_2_a_0 Int) (top.usr.pump_state_3_a_0 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.op_mode_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Bool) (top.res.inst_52_a_0 Bool) (top.res.inst_51_a_0 Int) (top.res.inst_50_a_0 Bool) (top.res.inst_49_a_0 Bool) (top.res.inst_48_a_0 Bool) (top.res.inst_47_a_0 Bool) (top.res.inst_46_a_0 Bool) (top.res.inst_45_a_0 Bool) (top.res.inst_44_a_0 Bool) (top.res.inst_43_a_0 Bool) (top.res.inst_42_a_0 Bool) (top.res.inst_41_a_0 Bool) (top.res.inst_40_a_0 Bool) (top.res.inst_39_a_0 Bool) (top.res.inst_38_a_0 Bool) (top.res.inst_37_a_0 Bool) (top.res.inst_36_a_0 Bool) (top.res.inst_35_a_0 Bool) (top.res.inst_34_a_0 Bool) (top.res.inst_33_a_0 Bool) (top.res.inst_32_a_0 Bool) (top.res.inst_31_a_0 Bool) (top.res.inst_30_a_0 Bool) (top.res.inst_29_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.op_mode_a_0 top.res.abs_0_a_0) (let ((X1 (=> (= top.impl.usr.op_mode_a_0 3) (not top.usr.stop_request_a_0)))) (let ((X2 true)) (and (= top.usr.OK_a_0 (and X2 X1)) (__node_init_ControlMode_0 top.usr.steam_boiler_waiting_a_0 top.usr.physical_units_ready_a_0 top.usr.stop_request_a_0 top.usr.steam_a_0 top.usr.level_defect_a_0 top.usr.steam_defect_a_0 top.usr.pump_defect_0_a_0 top.usr.pump_defect_1_a_0 top.usr.pump_defect_2_a_0 top.usr.pump_defect_3_a_0 top.usr.pump_control_defect_0_a_0 top.usr.pump_control_defect_1_a_0 top.usr.pump_control_defect_2_a_0 top.usr.pump_control_defect_3_a_0 top.usr.q_a_0 top.usr.pump_state_0_a_0 top.usr.pump_state_1_a_0 top.usr.pump_state_2_a_0 top.usr.pump_state_3_a_0 top.res.nondet_0 top.res.abs_0_a_0 top.res.inst_52_a_0 top.res.inst_51_a_0 top.res.inst_50_a_0 top.res.inst_49_a_0 top.res.inst_48_a_0 top.res.inst_47_a_0 top.res.inst_46_a_0 top.res.inst_45_a_0 top.res.inst_44_a_0 top.res.inst_43_a_0 top.res.inst_42_a_0 top.res.inst_41_a_0 top.res.inst_40_a_0 top.res.inst_39_a_0 top.res.inst_38_a_0 top.res.inst_37_a_0 top.res.inst_36_a_0 top.res.inst_35_a_0 top.res.inst_34_a_0 top.res.inst_33_a_0 top.res.inst_32_a_0 top.res.inst_31_a_0 top.res.inst_30_a_0 top.res.inst_29_a_0 top.res.inst_28_a_0 top.res.inst_27_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_init_dangerous_level_0 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) (<= 1 top.impl.usr.op_mode_a_0 6) (<= 1 top.res.abs_0_a_0 6) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.steam_boiler_waiting_a_1 Bool) (top.usr.physical_units_ready_a_1 Bool) (top.usr.stop_request_a_1 Bool) (top.usr.steam_a_1 Int) (top.usr.level_defect_a_1 Int) (top.usr.steam_defect_a_1 Int) (top.usr.pump_defect_0_a_1 Int) (top.usr.pump_defect_1_a_1 Int) (top.usr.pump_defect_2_a_1 Int) (top.usr.pump_defect_3_a_1 Int) (top.usr.pump_control_defect_0_a_1 Int) (top.usr.pump_control_defect_1_a_1 Int) (top.usr.pump_control_defect_2_a_1 Int) (top.usr.pump_control_defect_3_a_1 Int) (top.usr.q_a_1 Int) (top.usr.pump_state_0_a_1 Int) (top.usr.pump_state_1_a_1 Int) (top.usr.pump_state_2_a_1 Int) (top.usr.pump_state_3_a_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.op_mode_a_1 Int) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Bool) (top.res.inst_52_a_1 Bool) (top.res.inst_51_a_1 Int) (top.res.inst_50_a_1 Bool) (top.res.inst_49_a_1 Bool) (top.res.inst_48_a_1 Bool) (top.res.inst_47_a_1 Bool) (top.res.inst_46_a_1 Bool) (top.res.inst_45_a_1 Bool) (top.res.inst_44_a_1 Bool) (top.res.inst_43_a_1 Bool) (top.res.inst_42_a_1 Bool) (top.res.inst_41_a_1 Bool) (top.res.inst_40_a_1 Bool) (top.res.inst_39_a_1 Bool) (top.res.inst_38_a_1 Bool) (top.res.inst_37_a_1 Bool) (top.res.inst_36_a_1 Bool) (top.res.inst_35_a_1 Bool) (top.res.inst_34_a_1 Bool) (top.res.inst_33_a_1 Bool) (top.res.inst_32_a_1 Bool) (top.res.inst_31_a_1 Bool) (top.res.inst_30_a_1 Bool) (top.res.inst_29_a_1 Bool) (top.res.inst_28_a_1 Bool) (top.res.inst_27_a_1 Bool) (top.res.inst_26_a_1 Bool) (top.res.inst_25_a_1 Bool) (top.res.inst_24_a_1 Bool) (top.res.inst_23_a_1 Bool) (top.res.inst_22_a_1 Bool) (top.res.inst_21_a_1 Bool) (top.res.inst_20_a_1 Bool) (top.res.inst_19_a_1 Bool) (top.res.inst_18_a_1 Bool) (top.res.inst_17_a_1 Bool) (top.res.inst_16_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Bool) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Bool) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Bool) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.steam_boiler_waiting_a_0 Bool) (top.usr.physical_units_ready_a_0 Bool) (top.usr.stop_request_a_0 Bool) (top.usr.steam_a_0 Int) (top.usr.level_defect_a_0 Int) (top.usr.steam_defect_a_0 Int) (top.usr.pump_defect_0_a_0 Int) (top.usr.pump_defect_1_a_0 Int) (top.usr.pump_defect_2_a_0 Int) (top.usr.pump_defect_3_a_0 Int) (top.usr.pump_control_defect_0_a_0 Int) (top.usr.pump_control_defect_1_a_0 Int) (top.usr.pump_control_defect_2_a_0 Int) (top.usr.pump_control_defect_3_a_0 Int) (top.usr.q_a_0 Int) (top.usr.pump_state_0_a_0 Int) (top.usr.pump_state_1_a_0 Int) (top.usr.pump_state_2_a_0 Int) (top.usr.pump_state_3_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.op_mode_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Bool) (top.res.inst_52_a_0 Bool) (top.res.inst_51_a_0 Int) (top.res.inst_50_a_0 Bool) (top.res.inst_49_a_0 Bool) (top.res.inst_48_a_0 Bool) (top.res.inst_47_a_0 Bool) (top.res.inst_46_a_0 Bool) (top.res.inst_45_a_0 Bool) (top.res.inst_44_a_0 Bool) (top.res.inst_43_a_0 Bool) (top.res.inst_42_a_0 Bool) (top.res.inst_41_a_0 Bool) (top.res.inst_40_a_0 Bool) (top.res.inst_39_a_0 Bool) (top.res.inst_38_a_0 Bool) (top.res.inst_37_a_0 Bool) (top.res.inst_36_a_0 Bool) (top.res.inst_35_a_0 Bool) (top.res.inst_34_a_0 Bool) (top.res.inst_33_a_0 Bool) (top.res.inst_32_a_0 Bool) (top.res.inst_31_a_0 Bool) (top.res.inst_30_a_0 Bool) (top.res.inst_29_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.op_mode_a_1 top.res.abs_0_a_1) (let ((X1 (=> (= top.impl.usr.op_mode_a_1 3) (not top.usr.stop_request_a_1)))) (let ((X2 (=> (and (= top.impl.usr.op_mode_a_1 3) (= top.impl.usr.op_mode_a_0 3)) (not top.res.abs_1_a_1)))) (and (= top.usr.OK_a_1 (and X2 X1)) (__node_trans_ControlMode_0 top.usr.steam_boiler_waiting_a_1 top.usr.physical_units_ready_a_1 top.usr.stop_request_a_1 top.usr.steam_a_1 top.usr.level_defect_a_1 top.usr.steam_defect_a_1 top.usr.pump_defect_0_a_1 top.usr.pump_defect_1_a_1 top.usr.pump_defect_2_a_1 top.usr.pump_defect_3_a_1 top.usr.pump_control_defect_0_a_1 top.usr.pump_control_defect_1_a_1 top.usr.pump_control_defect_2_a_1 top.usr.pump_control_defect_3_a_1 top.usr.q_a_1 top.usr.pump_state_0_a_1 top.usr.pump_state_1_a_1 top.usr.pump_state_2_a_1 top.usr.pump_state_3_a_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.inst_52_a_1 top.res.inst_51_a_1 top.res.inst_50_a_1 top.res.inst_49_a_1 top.res.inst_48_a_1 top.res.inst_47_a_1 top.res.inst_46_a_1 top.res.inst_45_a_1 top.res.inst_44_a_1 top.res.inst_43_a_1 top.res.inst_42_a_1 top.res.inst_41_a_1 top.res.inst_40_a_1 top.res.inst_39_a_1 top.res.inst_38_a_1 top.res.inst_37_a_1 top.res.inst_36_a_1 top.res.inst_35_a_1 top.res.inst_34_a_1 top.res.inst_33_a_1 top.res.inst_32_a_1 top.res.inst_31_a_1 top.res.inst_30_a_1 top.res.inst_29_a_1 top.res.inst_28_a_1 top.res.inst_27_a_1 top.res.inst_26_a_1 top.res.inst_25_a_1 top.res.inst_24_a_1 top.res.inst_23_a_1 top.res.inst_22_a_1 top.res.inst_21_a_1 top.res.inst_20_a_1 top.res.inst_19_a_1 top.res.inst_18_a_1 top.res.inst_17_a_1 top.res.inst_16_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.usr.steam_boiler_waiting_a_0 top.usr.physical_units_ready_a_0 top.usr.stop_request_a_0 top.usr.steam_a_0 top.usr.level_defect_a_0 top.usr.steam_defect_a_0 top.usr.pump_defect_0_a_0 top.usr.pump_defect_1_a_0 top.usr.pump_defect_2_a_0 top.usr.pump_defect_3_a_0 top.usr.pump_control_defect_0_a_0 top.usr.pump_control_defect_1_a_0 top.usr.pump_control_defect_2_a_0 top.usr.pump_control_defect_3_a_0 top.usr.q_a_0 top.usr.pump_state_0_a_0 top.usr.pump_state_1_a_0 top.usr.pump_state_2_a_0 top.usr.pump_state_3_a_0 top.res.abs_0_a_0 top.res.inst_52_a_0 top.res.inst_51_a_0 top.res.inst_50_a_0 top.res.inst_49_a_0 top.res.inst_48_a_0 top.res.inst_47_a_0 top.res.inst_46_a_0 top.res.inst_45_a_0 top.res.inst_44_a_0 top.res.inst_43_a_0 top.res.inst_42_a_0 top.res.inst_41_a_0 top.res.inst_40_a_0 top.res.inst_39_a_0 top.res.inst_38_a_0 top.res.inst_37_a_0 top.res.inst_36_a_0 top.res.inst_35_a_0 top.res.inst_34_a_0 top.res.inst_33_a_0 top.res.inst_32_a_0 top.res.inst_31_a_0 top.res.inst_30_a_0 top.res.inst_29_a_0 top.res.inst_28_a_0 top.res.inst_27_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_trans_dangerous_level_0 top.usr.q_a_1 top.res.abs_1_a_1 top.res.inst_0_a_1 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) (<= 1 top.impl.usr.op_mode_a_1 6) (<= 1 top.res.abs_0_a_1 6) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.steam_boiler_waiting Bool) (top.usr.physical_units_ready Bool) (top.usr.stop_request Bool) (top.usr.steam Int) (top.usr.level_defect Int) (top.usr.steam_defect Int) (top.usr.pump_defect_0 Int) (top.usr.pump_defect_1 Int) (top.usr.pump_defect_2 Int) (top.usr.pump_defect_3 Int) (top.usr.pump_control_defect_0 Int) (top.usr.pump_control_defect_1 Int) (top.usr.pump_control_defect_2 Int) (top.usr.pump_control_defect_3 Int) (top.usr.q Int) (top.usr.pump_state_0 Int) (top.usr.pump_state_1 Int) (top.usr.pump_state_2 Int) (top.usr.pump_state_3 Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.op_mode Int) (top.res.abs_0 Int) (top.res.abs_1 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Int) (top.res.inst_50 Bool) (top.res.inst_49 Bool) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.steam_boiler_waiting Bool) (top.usr.physical_units_ready Bool) (top.usr.stop_request Bool) (top.usr.steam Int) (top.usr.level_defect Int) (top.usr.steam_defect Int) (top.usr.pump_defect_0 Int) (top.usr.pump_defect_1 Int) (top.usr.pump_defect_2 Int) (top.usr.pump_defect_3 Int) (top.usr.pump_control_defect_0 Int) (top.usr.pump_control_defect_1 Int) (top.usr.pump_control_defect_2 Int) (top.usr.pump_control_defect_3 Int) (top.usr.q Int) (top.usr.pump_state_0 Int) (top.usr.pump_state_1 Int) (top.usr.pump_state_2 Int) (top.usr.pump_state_3 Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.op_mode Int) (top.res.abs_0 Int) (top.res.abs_1 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Int) (top.res.inst_50 Bool) (top.res.inst_49 Bool) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.op_mode top.res.abs_0) (let ((X1 (=> (= top.impl.usr.op_mode 3) (not top.usr.stop_request)))) (let ((X2 true)) (and (= top.usr.OK (and X2 X1)) (__node_init_ControlMode_0 top.usr.steam_boiler_waiting top.usr.physical_units_ready top.usr.stop_request top.usr.steam top.usr.level_defect top.usr.steam_defect top.usr.pump_defect_0 top.usr.pump_defect_1 top.usr.pump_defect_2 top.usr.pump_defect_3 top.usr.pump_control_defect_0 top.usr.pump_control_defect_1 top.usr.pump_control_defect_2 top.usr.pump_control_defect_3 top.usr.q top.usr.pump_state_0 top.usr.pump_state_1 top.usr.pump_state_2 top.usr.pump_state_3 top.res.nondet_0 top.res.abs_0 top.res.inst_52 top.res.inst_51 top.res.inst_50 top.res.inst_49 top.res.inst_48 top.res.inst_47 top.res.inst_46 top.res.inst_45 top.res.inst_44 top.res.inst_43 top.res.inst_42 top.res.inst_41 top.res.inst_40 top.res.inst_39 top.res.inst_38 top.res.inst_37 top.res.inst_36 top.res.inst_35 top.res.inst_34 top.res.inst_33 top.res.inst_32 top.res.inst_31 top.res.inst_30 top.res.inst_29 top.res.inst_28 top.res.inst_27 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_init_dangerous_level_0 top.usr.q top.res.abs_1 top.res.inst_0) (<= 1 top.impl.usr.op_mode 6) (<= 1 top.res.abs_0 6) top.res.init_flag))))) +(define-fun trans ((top.usr.steam_boiler_waiting Bool) (top.usr.physical_units_ready Bool) (top.usr.stop_request Bool) (top.usr.steam Int) (top.usr.level_defect Int) (top.usr.steam_defect Int) (top.usr.pump_defect_0 Int) (top.usr.pump_defect_1 Int) (top.usr.pump_defect_2 Int) (top.usr.pump_defect_3 Int) (top.usr.pump_control_defect_0 Int) (top.usr.pump_control_defect_1 Int) (top.usr.pump_control_defect_2 Int) (top.usr.pump_control_defect_3 Int) (top.usr.q Int) (top.usr.pump_state_0 Int) (top.usr.pump_state_1 Int) (top.usr.pump_state_2 Int) (top.usr.pump_state_3 Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.op_mode Int) (top.res.abs_0 Int) (top.res.abs_1 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Int) (top.res.inst_50 Bool) (top.res.inst_49 Bool) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.steam_boiler_waiting! Bool) (top.usr.physical_units_ready! Bool) (top.usr.stop_request! Bool) (top.usr.steam! Int) (top.usr.level_defect! Int) (top.usr.steam_defect! Int) (top.usr.pump_defect_0! Int) (top.usr.pump_defect_1! Int) (top.usr.pump_defect_2! Int) (top.usr.pump_defect_3! Int) (top.usr.pump_control_defect_0! Int) (top.usr.pump_control_defect_1! Int) (top.usr.pump_control_defect_2! Int) (top.usr.pump_control_defect_3! Int) (top.usr.q! Int) (top.usr.pump_state_0! Int) (top.usr.pump_state_1! Int) (top.usr.pump_state_2! Int) (top.usr.pump_state_3! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.op_mode! Int) (top.res.abs_0! Int) (top.res.abs_1! Bool) (top.res.inst_52! Bool) (top.res.inst_51! Int) (top.res.inst_50! Bool) (top.res.inst_49! Bool) (top.res.inst_48! Bool) (top.res.inst_47! Bool) (top.res.inst_46! Bool) (top.res.inst_45! Bool) (top.res.inst_44! Bool) (top.res.inst_43! Bool) (top.res.inst_42! Bool) (top.res.inst_41! Bool) (top.res.inst_40! Bool) (top.res.inst_39! Bool) (top.res.inst_38! Bool) (top.res.inst_37! Bool) (top.res.inst_36! Bool) (top.res.inst_35! Bool) (top.res.inst_34! Bool) (top.res.inst_33! Bool) (top.res.inst_32! Bool) (top.res.inst_31! Bool) (top.res.inst_30! Bool) (top.res.inst_29! Bool) (top.res.inst_28! Bool) (top.res.inst_27! Bool) (top.res.inst_26! Bool) (top.res.inst_25! Bool) (top.res.inst_24! Bool) (top.res.inst_23! Bool) (top.res.inst_22! Bool) (top.res.inst_21! Bool) (top.res.inst_20! Bool) (top.res.inst_19! Bool) (top.res.inst_18! Bool) (top.res.inst_17! Bool) (top.res.inst_16! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Bool) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Bool) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Bool) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.impl.usr.op_mode! top.res.abs_0!) (let ((X1 (=> (= top.impl.usr.op_mode! 3) (not top.usr.stop_request!)))) (let ((X2 (=> (and (= top.impl.usr.op_mode! 3) (= top.impl.usr.op_mode 3)) (not top.res.abs_1!)))) (and (= top.usr.OK! (and X2 X1)) (__node_trans_ControlMode_0 top.usr.steam_boiler_waiting! top.usr.physical_units_ready! top.usr.stop_request! top.usr.steam! top.usr.level_defect! top.usr.steam_defect! top.usr.pump_defect_0! top.usr.pump_defect_1! top.usr.pump_defect_2! top.usr.pump_defect_3! top.usr.pump_control_defect_0! top.usr.pump_control_defect_1! top.usr.pump_control_defect_2! top.usr.pump_control_defect_3! top.usr.q! top.usr.pump_state_0! top.usr.pump_state_1! top.usr.pump_state_2! top.usr.pump_state_3! top.res.nondet_0 top.res.abs_0! top.res.inst_52! top.res.inst_51! top.res.inst_50! top.res.inst_49! top.res.inst_48! top.res.inst_47! top.res.inst_46! top.res.inst_45! top.res.inst_44! top.res.inst_43! top.res.inst_42! top.res.inst_41! top.res.inst_40! top.res.inst_39! top.res.inst_38! top.res.inst_37! top.res.inst_36! top.res.inst_35! top.res.inst_34! top.res.inst_33! top.res.inst_32! top.res.inst_31! top.res.inst_30! top.res.inst_29! top.res.inst_28! top.res.inst_27! top.res.inst_26! top.res.inst_25! top.res.inst_24! top.res.inst_23! top.res.inst_22! top.res.inst_21! top.res.inst_20! top.res.inst_19! top.res.inst_18! top.res.inst_17! top.res.inst_16! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.usr.steam_boiler_waiting top.usr.physical_units_ready top.usr.stop_request top.usr.steam top.usr.level_defect top.usr.steam_defect top.usr.pump_defect_0 top.usr.pump_defect_1 top.usr.pump_defect_2 top.usr.pump_defect_3 top.usr.pump_control_defect_0 top.usr.pump_control_defect_1 top.usr.pump_control_defect_2 top.usr.pump_control_defect_3 top.usr.q top.usr.pump_state_0 top.usr.pump_state_1 top.usr.pump_state_2 top.usr.pump_state_3 top.res.abs_0 top.res.inst_52 top.res.inst_51 top.res.inst_50 top.res.inst_49 top.res.inst_48 top.res.inst_47 top.res.inst_46 top.res.inst_45 top.res.inst_44 top.res.inst_43 top.res.inst_42 top.res.inst_41 top.res.inst_40 top.res.inst_39 top.res.inst_38 top.res.inst_37 top.res.inst_36 top.res.inst_35 top.res.inst_34 top.res.inst_33 top.res.inst_32 top.res.inst_31 top.res.inst_30 top.res.inst_29 top.res.inst_28 top.res.inst_27 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_trans_dangerous_level_0 top.usr.q! top.res.abs_1! top.res.inst_0! top.usr.q top.res.abs_1 top.res.inst_0) (<= 1 top.impl.usr.op_mode! 6) (<= 1 top.res.abs_0! 6) (not top.res.init_flag!))))) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.steam_boiler_waiting Bool) (top.usr.physical_units_ready Bool) (top.usr.stop_request Bool) (top.usr.steam Int) (top.usr.level_defect Int) (top.usr.steam_defect Int) (top.usr.pump_defect_0 Int) (top.usr.pump_defect_1 Int) (top.usr.pump_defect_2 Int) (top.usr.pump_defect_3 Int) (top.usr.pump_control_defect_0 Int) (top.usr.pump_control_defect_1 Int) (top.usr.pump_control_defect_2 Int) (top.usr.pump_control_defect_3 Int) (top.usr.q Int) (top.usr.pump_state_0 Int) (top.usr.pump_state_1 Int) (top.usr.pump_state_2 Int) (top.usr.pump_state_3 Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.op_mode Int) (top.res.abs_0 Int) (top.res.abs_1 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Int) (top.res.inst_50 Bool) (top.res.inst_49 Bool) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/steam_boiler_no_arr2_e6_3003_e4_15091.sl b/benchmarks/LIA/Lustre/steam_boiler_no_arr2_e6_3003_e4_15091.sl index 6777783..f911491 100644 --- a/benchmarks/LIA/Lustre/steam_boiler_no_arr2_e6_3003_e4_15091.sl +++ b/benchmarks/LIA/Lustre/steam_boiler_no_arr2_e6_3003_e4_15091.sl @@ -1,2635 +1,68 @@ (set-logic LIA) -(define-fun - __node_init_dangerous_level_0 ( - (dangerous_level.usr.q_a_0 Int) - (dangerous_level.usr.dangerous_level_a_0 Bool) - (dangerous_level.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - dangerous_level.usr.dangerous_level_a_0 - (or (<= dangerous_level.usr.q_a_0 150) (>= dangerous_level.usr.q_a_0 850))) - dangerous_level.res.init_flag_a_0) -) - -(define-fun - __node_trans_dangerous_level_0 ( - (dangerous_level.usr.q_a_1 Int) - (dangerous_level.usr.dangerous_level_a_1 Bool) - (dangerous_level.res.init_flag_a_1 Bool) - (dangerous_level.usr.q_a_0 Int) - (dangerous_level.usr.dangerous_level_a_0 Bool) - (dangerous_level.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - dangerous_level.usr.dangerous_level_a_1 - (or (<= dangerous_level.usr.q_a_1 150) (>= dangerous_level.usr.q_a_1 850))) - (not dangerous_level.res.init_flag_a_1)) -) - -(define-fun - __node_init_level_failure_0 ( - (level_failure.usr.level_defect_a_0 Int) - (level_failure.usr.level_failure_a_0 Bool) - (level_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - level_failure.usr.level_failure_a_0 - (not (= level_failure.usr.level_defect_a_0 0))) - level_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_level_failure_0 ( - (level_failure.usr.level_defect_a_1 Int) - (level_failure.usr.level_failure_a_1 Bool) - (level_failure.res.init_flag_a_1 Bool) - (level_failure.usr.level_defect_a_0 Int) - (level_failure.usr.level_failure_a_0 Bool) - (level_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - level_failure.usr.level_failure_a_1 - (not (= level_failure.usr.level_defect_a_1 0))) - (not level_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_steam_failure_0 ( - (steam_failure.usr.steam_defect_a_0 Int) - (steam_failure.usr.steam_failure_a_0 Bool) - (steam_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - steam_failure.usr.steam_failure_a_0 - (not (= steam_failure.usr.steam_defect_a_0 0))) - steam_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_steam_failure_0 ( - (steam_failure.usr.steam_defect_a_1 Int) - (steam_failure.usr.steam_failure_a_1 Bool) - (steam_failure.res.init_flag_a_1 Bool) - (steam_failure.usr.steam_defect_a_0 Int) - (steam_failure.usr.steam_failure_a_0 Bool) - (steam_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - steam_failure.usr.steam_failure_a_1 - (not (= steam_failure.usr.steam_defect_a_1 0))) - (not steam_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_OR_0 ( - (OR.usr.a_0_a_0 Bool) - (OR.usr.a_1_a_0 Bool) - (OR.usr.a_2_a_0 Bool) - (OR.usr.a_3_a_0 Bool) - (OR.usr.OR_a_0 Bool) - (OR.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - OR.usr.OR_a_0 - (or (or (or OR.usr.a_0_a_0 OR.usr.a_1_a_0) OR.usr.a_2_a_0) OR.usr.a_3_a_0)) - OR.res.init_flag_a_0) -) - -(define-fun - __node_trans_OR_0 ( - (OR.usr.a_0_a_1 Bool) - (OR.usr.a_1_a_1 Bool) - (OR.usr.a_2_a_1 Bool) - (OR.usr.a_3_a_1 Bool) - (OR.usr.OR_a_1 Bool) - (OR.res.init_flag_a_1 Bool) - (OR.usr.a_0_a_0 Bool) - (OR.usr.a_1_a_0 Bool) - (OR.usr.a_2_a_0 Bool) - (OR.usr.a_3_a_0 Bool) - (OR.usr.OR_a_0 Bool) - (OR.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - OR.usr.OR_a_1 - (or (or (or OR.usr.a_0_a_1 OR.usr.a_1_a_1) OR.usr.a_2_a_1) OR.usr.a_3_a_1)) - (not OR.res.init_flag_a_1)) -) - -(define-fun - __node_init_pump_control_failure_0 ( - (pump_control_failure.usr.pump_defect_a_0 Int) - (pump_control_failure.usr.pump_failure_a_0 Bool) - (pump_control_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - pump_control_failure.usr.pump_failure_a_0 - (not (= pump_control_failure.usr.pump_defect_a_0 0))) - pump_control_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_pump_control_failure_0 ( - (pump_control_failure.usr.pump_defect_a_1 Int) - (pump_control_failure.usr.pump_failure_a_1 Bool) - (pump_control_failure.res.init_flag_a_1 Bool) - (pump_control_failure.usr.pump_defect_a_0 Int) - (pump_control_failure.usr.pump_failure_a_0 Bool) - (pump_control_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - pump_control_failure.usr.pump_failure_a_1 - (not (= pump_control_failure.usr.pump_defect_a_1 0))) - (not pump_control_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_pump_failure_0 ( - (pump_failure.usr.pump_defect_a_0 Int) - (pump_failure.usr.pump_failure_a_0 Bool) - (pump_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - pump_failure.usr.pump_failure_a_0 - (not (= pump_failure.usr.pump_defect_a_0 0))) - pump_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_pump_failure_0 ( - (pump_failure.usr.pump_defect_a_1 Int) - (pump_failure.usr.pump_failure_a_1 Bool) - (pump_failure.res.init_flag_a_1 Bool) - (pump_failure.usr.pump_defect_a_0 Int) - (pump_failure.usr.pump_failure_a_0 Bool) - (pump_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - pump_failure.usr.pump_failure_a_1 - (not (= pump_failure.usr.pump_defect_a_1 0))) - (not pump_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_failure_0 ( - (failure.usr.level_defect_a_0 Int) - (failure.usr.steam_defect_a_0 Int) - (failure.usr.pump_defect_0_a_0 Int) - (failure.usr.pump_defect_1_a_0 Int) - (failure.usr.pump_defect_2_a_0 Int) - (failure.usr.pump_defect_3_a_0 Int) - (failure.usr.pump_control_defect_0_a_0 Int) - (failure.usr.pump_control_defect_1_a_0 Int) - (failure.usr.pump_control_defect_2_a_0 Int) - (failure.usr.pump_control_defect_3_a_0 Int) - (failure.usr.failure_a_0 Bool) - (failure.res.init_flag_a_0 Bool) - (failure.res.abs_0_a_0 Bool) - (failure.res.abs_1_a_0 Bool) - (failure.res.abs_2_a_0 Bool) - (failure.res.abs_3_a_0 Bool) - (failure.res.abs_4_a_0 Bool) - (failure.res.abs_5_a_0 Bool) - (failure.res.abs_6_a_0 Bool) - (failure.res.abs_7_a_0 Bool) - (failure.res.abs_8_a_0 Bool) - (failure.res.abs_9_a_0 Bool) - (failure.res.abs_10_a_0 Bool) - (failure.res.abs_11_a_0 Bool) - (failure.res.inst_11_a_0 Bool) - (failure.res.inst_10_a_0 Bool) - (failure.res.inst_9_a_0 Bool) - (failure.res.inst_8_a_0 Bool) - (failure.res.inst_7_a_0 Bool) - (failure.res.inst_6_a_0 Bool) - (failure.res.inst_5_a_0 Bool) - (failure.res.inst_4_a_0 Bool) - (failure.res.inst_3_a_0 Bool) - (failure.res.inst_2_a_0 Bool) - (failure.res.inst_1_a_0 Bool) - (failure.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - failure.usr.failure_a_0 - (or - (or (or failure.res.abs_0_a_0 failure.res.abs_1_a_0) failure.res.abs_6_a_0) - failure.res.abs_11_a_0)) - (__node_init_level_failure_0 - failure.usr.level_defect_a_0 - failure.res.abs_0_a_0 - failure.res.inst_11_a_0) - (__node_init_steam_failure_0 - failure.usr.steam_defect_a_0 - failure.res.abs_1_a_0 - failure.res.inst_10_a_0) - (__node_init_OR_0 - failure.res.abs_2_a_0 - failure.res.abs_3_a_0 - failure.res.abs_4_a_0 - failure.res.abs_5_a_0 - failure.res.abs_6_a_0 - failure.res.inst_9_a_0) - (__node_init_pump_failure_0 - failure.usr.pump_defect_0_a_0 - failure.res.abs_2_a_0 - failure.res.inst_8_a_0) - (__node_init_pump_failure_0 - failure.usr.pump_defect_1_a_0 - failure.res.abs_3_a_0 - failure.res.inst_7_a_0) - (__node_init_pump_failure_0 - failure.usr.pump_defect_2_a_0 - failure.res.abs_4_a_0 - failure.res.inst_6_a_0) - (__node_init_pump_failure_0 - failure.usr.pump_defect_3_a_0 - failure.res.abs_5_a_0 - failure.res.inst_5_a_0) - (__node_init_OR_0 - failure.res.abs_7_a_0 - failure.res.abs_8_a_0 - failure.res.abs_9_a_0 - failure.res.abs_10_a_0 - failure.res.abs_11_a_0 - failure.res.inst_4_a_0) - (__node_init_pump_control_failure_0 - failure.usr.pump_control_defect_0_a_0 - failure.res.abs_7_a_0 - failure.res.inst_3_a_0) - (__node_init_pump_control_failure_0 - failure.usr.pump_control_defect_1_a_0 - failure.res.abs_8_a_0 - failure.res.inst_2_a_0) - (__node_init_pump_control_failure_0 - failure.usr.pump_control_defect_2_a_0 - failure.res.abs_9_a_0 - failure.res.inst_1_a_0) - (__node_init_pump_control_failure_0 - failure.usr.pump_control_defect_3_a_0 - failure.res.abs_10_a_0 - failure.res.inst_0_a_0) - failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_failure_0 ( - (failure.usr.level_defect_a_1 Int) - (failure.usr.steam_defect_a_1 Int) - (failure.usr.pump_defect_0_a_1 Int) - (failure.usr.pump_defect_1_a_1 Int) - (failure.usr.pump_defect_2_a_1 Int) - (failure.usr.pump_defect_3_a_1 Int) - (failure.usr.pump_control_defect_0_a_1 Int) - (failure.usr.pump_control_defect_1_a_1 Int) - (failure.usr.pump_control_defect_2_a_1 Int) - (failure.usr.pump_control_defect_3_a_1 Int) - (failure.usr.failure_a_1 Bool) - (failure.res.init_flag_a_1 Bool) - (failure.res.abs_0_a_1 Bool) - (failure.res.abs_1_a_1 Bool) - (failure.res.abs_2_a_1 Bool) - (failure.res.abs_3_a_1 Bool) - (failure.res.abs_4_a_1 Bool) - (failure.res.abs_5_a_1 Bool) - (failure.res.abs_6_a_1 Bool) - (failure.res.abs_7_a_1 Bool) - (failure.res.abs_8_a_1 Bool) - (failure.res.abs_9_a_1 Bool) - (failure.res.abs_10_a_1 Bool) - (failure.res.abs_11_a_1 Bool) - (failure.res.inst_11_a_1 Bool) - (failure.res.inst_10_a_1 Bool) - (failure.res.inst_9_a_1 Bool) - (failure.res.inst_8_a_1 Bool) - (failure.res.inst_7_a_1 Bool) - (failure.res.inst_6_a_1 Bool) - (failure.res.inst_5_a_1 Bool) - (failure.res.inst_4_a_1 Bool) - (failure.res.inst_3_a_1 Bool) - (failure.res.inst_2_a_1 Bool) - (failure.res.inst_1_a_1 Bool) - (failure.res.inst_0_a_1 Bool) - (failure.usr.level_defect_a_0 Int) - (failure.usr.steam_defect_a_0 Int) - (failure.usr.pump_defect_0_a_0 Int) - (failure.usr.pump_defect_1_a_0 Int) - (failure.usr.pump_defect_2_a_0 Int) - (failure.usr.pump_defect_3_a_0 Int) - (failure.usr.pump_control_defect_0_a_0 Int) - (failure.usr.pump_control_defect_1_a_0 Int) - (failure.usr.pump_control_defect_2_a_0 Int) - (failure.usr.pump_control_defect_3_a_0 Int) - (failure.usr.failure_a_0 Bool) - (failure.res.init_flag_a_0 Bool) - (failure.res.abs_0_a_0 Bool) - (failure.res.abs_1_a_0 Bool) - (failure.res.abs_2_a_0 Bool) - (failure.res.abs_3_a_0 Bool) - (failure.res.abs_4_a_0 Bool) - (failure.res.abs_5_a_0 Bool) - (failure.res.abs_6_a_0 Bool) - (failure.res.abs_7_a_0 Bool) - (failure.res.abs_8_a_0 Bool) - (failure.res.abs_9_a_0 Bool) - (failure.res.abs_10_a_0 Bool) - (failure.res.abs_11_a_0 Bool) - (failure.res.inst_11_a_0 Bool) - (failure.res.inst_10_a_0 Bool) - (failure.res.inst_9_a_0 Bool) - (failure.res.inst_8_a_0 Bool) - (failure.res.inst_7_a_0 Bool) - (failure.res.inst_6_a_0 Bool) - (failure.res.inst_5_a_0 Bool) - (failure.res.inst_4_a_0 Bool) - (failure.res.inst_3_a_0 Bool) - (failure.res.inst_2_a_0 Bool) - (failure.res.inst_1_a_0 Bool) - (failure.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - failure.usr.failure_a_1 - (or - (or (or failure.res.abs_0_a_1 failure.res.abs_1_a_1) failure.res.abs_6_a_1) - failure.res.abs_11_a_1)) - (__node_trans_level_failure_0 - failure.usr.level_defect_a_1 - failure.res.abs_0_a_1 - failure.res.inst_11_a_1 - failure.usr.level_defect_a_0 - failure.res.abs_0_a_0 - failure.res.inst_11_a_0) - (__node_trans_steam_failure_0 - failure.usr.steam_defect_a_1 - failure.res.abs_1_a_1 - failure.res.inst_10_a_1 - failure.usr.steam_defect_a_0 - failure.res.abs_1_a_0 - failure.res.inst_10_a_0) - (__node_trans_OR_0 - failure.res.abs_2_a_1 - failure.res.abs_3_a_1 - failure.res.abs_4_a_1 - failure.res.abs_5_a_1 - failure.res.abs_6_a_1 - failure.res.inst_9_a_1 - failure.res.abs_2_a_0 - failure.res.abs_3_a_0 - failure.res.abs_4_a_0 - failure.res.abs_5_a_0 - failure.res.abs_6_a_0 - failure.res.inst_9_a_0) - (__node_trans_pump_failure_0 - failure.usr.pump_defect_0_a_1 - failure.res.abs_2_a_1 - failure.res.inst_8_a_1 - failure.usr.pump_defect_0_a_0 - failure.res.abs_2_a_0 - failure.res.inst_8_a_0) - (__node_trans_pump_failure_0 - failure.usr.pump_defect_1_a_1 - failure.res.abs_3_a_1 - failure.res.inst_7_a_1 - failure.usr.pump_defect_1_a_0 - failure.res.abs_3_a_0 - failure.res.inst_7_a_0) - (__node_trans_pump_failure_0 - failure.usr.pump_defect_2_a_1 - failure.res.abs_4_a_1 - failure.res.inst_6_a_1 - failure.usr.pump_defect_2_a_0 - failure.res.abs_4_a_0 - failure.res.inst_6_a_0) - (__node_trans_pump_failure_0 - failure.usr.pump_defect_3_a_1 - failure.res.abs_5_a_1 - failure.res.inst_5_a_1 - failure.usr.pump_defect_3_a_0 - failure.res.abs_5_a_0 - failure.res.inst_5_a_0) - (__node_trans_OR_0 - failure.res.abs_7_a_1 - failure.res.abs_8_a_1 - failure.res.abs_9_a_1 - failure.res.abs_10_a_1 - failure.res.abs_11_a_1 - failure.res.inst_4_a_1 - failure.res.abs_7_a_0 - failure.res.abs_8_a_0 - failure.res.abs_9_a_0 - failure.res.abs_10_a_0 - failure.res.abs_11_a_0 - failure.res.inst_4_a_0) - (__node_trans_pump_control_failure_0 - failure.usr.pump_control_defect_0_a_1 - failure.res.abs_7_a_1 - failure.res.inst_3_a_1 - failure.usr.pump_control_defect_0_a_0 - failure.res.abs_7_a_0 - failure.res.inst_3_a_0) - (__node_trans_pump_control_failure_0 - failure.usr.pump_control_defect_1_a_1 - failure.res.abs_8_a_1 - failure.res.inst_2_a_1 - failure.usr.pump_control_defect_1_a_0 - failure.res.abs_8_a_0 - failure.res.inst_2_a_0) - (__node_trans_pump_control_failure_0 - failure.usr.pump_control_defect_2_a_1 - failure.res.abs_9_a_1 - failure.res.inst_1_a_1 - failure.usr.pump_control_defect_2_a_0 - failure.res.abs_9_a_0 - failure.res.inst_1_a_0) - (__node_trans_pump_control_failure_0 - failure.usr.pump_control_defect_3_a_1 - failure.res.abs_10_a_1 - failure.res.inst_0_a_1 - failure.usr.pump_control_defect_3_a_0 - failure.res.abs_10_a_0 - failure.res.inst_0_a_0) - (not failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_steam_failure_startup_0 ( - (steam_failure_startup.usr.steam_a_0 Int) - (steam_failure_startup.usr.steam_failure_startup_a_0 Bool) - (steam_failure_startup.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - steam_failure_startup.usr.steam_failure_startup_a_0 - (not (= steam_failure_startup.usr.steam_a_0 0))) - steam_failure_startup.res.init_flag_a_0) -) - -(define-fun - __node_trans_steam_failure_startup_0 ( - (steam_failure_startup.usr.steam_a_1 Int) - (steam_failure_startup.usr.steam_failure_startup_a_1 Bool) - (steam_failure_startup.res.init_flag_a_1 Bool) - (steam_failure_startup.usr.steam_a_0 Int) - (steam_failure_startup.usr.steam_failure_startup_a_0 Bool) - (steam_failure_startup.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - steam_failure_startup.usr.steam_failure_startup_a_1 - (not (= steam_failure_startup.usr.steam_a_1 0))) - (not steam_failure_startup.res.init_flag_a_1)) -) - -(define-fun - __node_init_AND_0 ( - (AND.usr.a_0_a_0 Bool) - (AND.usr.a_1_a_0 Bool) - (AND.usr.a_2_a_0 Bool) - (AND.usr.a_3_a_0 Bool) - (AND.usr.AND_a_0 Bool) - (AND.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - AND.usr.AND_a_0 - (and (and (and AND.usr.a_0_a_0 AND.usr.a_1_a_0) AND.usr.a_2_a_0) AND.usr.a_3_a_0)) - AND.res.init_flag_a_0) -) - -(define-fun - __node_trans_AND_0 ( - (AND.usr.a_0_a_1 Bool) - (AND.usr.a_1_a_1 Bool) - (AND.usr.a_2_a_1 Bool) - (AND.usr.a_3_a_1 Bool) - (AND.usr.AND_a_1 Bool) - (AND.res.init_flag_a_1 Bool) - (AND.usr.a_0_a_0 Bool) - (AND.usr.a_1_a_0 Bool) - (AND.usr.a_2_a_0 Bool) - (AND.usr.a_3_a_0 Bool) - (AND.usr.AND_a_0 Bool) - (AND.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - AND.usr.AND_a_1 - (and (and (and AND.usr.a_0_a_1 AND.usr.a_1_a_1) AND.usr.a_2_a_1) AND.usr.a_3_a_1)) - (not AND.res.init_flag_a_1)) -) - -(define-fun - __node_init_transmission_failure_0 ( - (transmission_failure.usr.pump_state_0_a_0 Int) - (transmission_failure.usr.pump_state_1_a_0 Int) - (transmission_failure.usr.pump_state_2_a_0 Int) - (transmission_failure.usr.pump_state_3_a_0 Int) - (transmission_failure.usr.transmission_failure_a_0 Bool) - (transmission_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - transmission_failure.usr.transmission_failure_a_0 - (or - (or - (or - (= transmission_failure.usr.pump_state_0_a_0 3) - (= transmission_failure.usr.pump_state_1_a_0 3)) - (= transmission_failure.usr.pump_state_2_a_0 3)) - (= transmission_failure.usr.pump_state_3_a_0 3))) - transmission_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_transmission_failure_0 ( - (transmission_failure.usr.pump_state_0_a_1 Int) - (transmission_failure.usr.pump_state_1_a_1 Int) - (transmission_failure.usr.pump_state_2_a_1 Int) - (transmission_failure.usr.pump_state_3_a_1 Int) - (transmission_failure.usr.transmission_failure_a_1 Bool) - (transmission_failure.res.init_flag_a_1 Bool) - (transmission_failure.usr.pump_state_0_a_0 Int) - (transmission_failure.usr.pump_state_1_a_0 Int) - (transmission_failure.usr.pump_state_2_a_0 Int) - (transmission_failure.usr.pump_state_3_a_0 Int) - (transmission_failure.usr.transmission_failure_a_0 Bool) - (transmission_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - transmission_failure.usr.transmission_failure_a_1 - (or - (or - (or - (= transmission_failure.usr.pump_state_0_a_1 3) - (= transmission_failure.usr.pump_state_1_a_1 3)) - (= transmission_failure.usr.pump_state_2_a_1 3)) - (= transmission_failure.usr.pump_state_3_a_1 3))) - (not transmission_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_critical_failure_0 ( - (critical_failure.usr.op_mode_a_0 Int) - (critical_failure.usr.steam_a_0 Int) - (critical_failure.usr.level_defect_a_0 Int) - (critical_failure.usr.steam_defect_a_0 Int) - (critical_failure.usr.pump_defect_0_a_0 Int) - (critical_failure.usr.pump_defect_1_a_0 Int) - (critical_failure.usr.pump_defect_2_a_0 Int) - (critical_failure.usr.pump_defect_3_a_0 Int) - (critical_failure.usr.q_a_0 Int) - (critical_failure.usr.pump_state_0_a_0 Int) - (critical_failure.usr.pump_state_1_a_0 Int) - (critical_failure.usr.pump_state_2_a_0 Int) - (critical_failure.usr.pump_state_3_a_0 Int) - (critical_failure.usr.critical_failure_a_0 Bool) - (critical_failure.res.init_flag_a_0 Bool) - (critical_failure.res.abs_0_a_0 Bool) - (critical_failure.res.abs_1_a_0 Bool) - (critical_failure.res.abs_2_a_0 Bool) - (critical_failure.res.abs_3_a_0 Bool) - (critical_failure.res.abs_4_a_0 Bool) - (critical_failure.res.abs_5_a_0 Bool) - (critical_failure.res.abs_6_a_0 Bool) - (critical_failure.res.abs_7_a_0 Bool) - (critical_failure.res.abs_8_a_0 Bool) - (critical_failure.res.abs_9_a_0 Bool) - (critical_failure.res.inst_9_a_0 Bool) - (critical_failure.res.inst_8_a_0 Bool) - (critical_failure.res.inst_7_a_0 Bool) - (critical_failure.res.inst_6_a_0 Bool) - (critical_failure.res.inst_5_a_0 Bool) - (critical_failure.res.inst_4_a_0 Bool) - (critical_failure.res.inst_3_a_0 Bool) - (critical_failure.res.inst_2_a_0 Bool) - (critical_failure.res.inst_1_a_0 Bool) - (critical_failure.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - critical_failure.usr.critical_failure_a_0 - (or - (or - (or - (or - (or - critical_failure.res.abs_0_a_0 - (and - (= critical_failure.usr.op_mode_a_0 1) - critical_failure.res.abs_1_a_0)) - (and - (= critical_failure.usr.op_mode_a_0 2) - (or critical_failure.res.abs_2_a_0 critical_failure.res.abs_3_a_0))) - (and - (= critical_failure.usr.op_mode_a_0 3) - critical_failure.res.abs_4_a_0)) - (and (= critical_failure.usr.op_mode_a_0 4) critical_failure.res.abs_4_a_0)) - (and - (= critical_failure.usr.op_mode_a_0 5) - (or - (or critical_failure.res.abs_4_a_0 critical_failure.res.abs_3_a_0) - critical_failure.res.abs_9_a_0)))) - (__node_init_transmission_failure_0 - critical_failure.usr.pump_state_0_a_0 - critical_failure.usr.pump_state_1_a_0 - critical_failure.usr.pump_state_2_a_0 - critical_failure.usr.pump_state_3_a_0 - critical_failure.res.abs_0_a_0 - critical_failure.res.inst_9_a_0) - (__node_init_steam_failure_startup_0 - critical_failure.usr.steam_a_0 - critical_failure.res.abs_1_a_0 - critical_failure.res.inst_8_a_0) - (__node_init_level_failure_0 - critical_failure.usr.level_defect_a_0 - critical_failure.res.abs_2_a_0 - critical_failure.res.inst_7_a_0) - (__node_init_steam_failure_0 - critical_failure.usr.steam_defect_a_0 - critical_failure.res.abs_3_a_0 - critical_failure.res.inst_6_a_0) - (__node_init_dangerous_level_0 - critical_failure.usr.q_a_0 - critical_failure.res.abs_4_a_0 - critical_failure.res.inst_5_a_0) - (__node_init_AND_0 - critical_failure.res.abs_5_a_0 - critical_failure.res.abs_6_a_0 - critical_failure.res.abs_7_a_0 - critical_failure.res.abs_8_a_0 - critical_failure.res.abs_9_a_0 - critical_failure.res.inst_4_a_0) - (__node_init_pump_failure_0 - critical_failure.usr.pump_defect_0_a_0 - critical_failure.res.abs_5_a_0 - critical_failure.res.inst_3_a_0) - (__node_init_pump_failure_0 - critical_failure.usr.pump_defect_1_a_0 - critical_failure.res.abs_6_a_0 - critical_failure.res.inst_2_a_0) - (__node_init_pump_failure_0 - critical_failure.usr.pump_defect_2_a_0 - critical_failure.res.abs_7_a_0 - critical_failure.res.inst_1_a_0) - (__node_init_pump_failure_0 - critical_failure.usr.pump_defect_3_a_0 - critical_failure.res.abs_8_a_0 - critical_failure.res.inst_0_a_0) - critical_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_critical_failure_0 ( - (critical_failure.usr.op_mode_a_1 Int) - (critical_failure.usr.steam_a_1 Int) - (critical_failure.usr.level_defect_a_1 Int) - (critical_failure.usr.steam_defect_a_1 Int) - (critical_failure.usr.pump_defect_0_a_1 Int) - (critical_failure.usr.pump_defect_1_a_1 Int) - (critical_failure.usr.pump_defect_2_a_1 Int) - (critical_failure.usr.pump_defect_3_a_1 Int) - (critical_failure.usr.q_a_1 Int) - (critical_failure.usr.pump_state_0_a_1 Int) - (critical_failure.usr.pump_state_1_a_1 Int) - (critical_failure.usr.pump_state_2_a_1 Int) - (critical_failure.usr.pump_state_3_a_1 Int) - (critical_failure.usr.critical_failure_a_1 Bool) - (critical_failure.res.init_flag_a_1 Bool) - (critical_failure.res.abs_0_a_1 Bool) - (critical_failure.res.abs_1_a_1 Bool) - (critical_failure.res.abs_2_a_1 Bool) - (critical_failure.res.abs_3_a_1 Bool) - (critical_failure.res.abs_4_a_1 Bool) - (critical_failure.res.abs_5_a_1 Bool) - (critical_failure.res.abs_6_a_1 Bool) - (critical_failure.res.abs_7_a_1 Bool) - (critical_failure.res.abs_8_a_1 Bool) - (critical_failure.res.abs_9_a_1 Bool) - (critical_failure.res.inst_9_a_1 Bool) - (critical_failure.res.inst_8_a_1 Bool) - (critical_failure.res.inst_7_a_1 Bool) - (critical_failure.res.inst_6_a_1 Bool) - (critical_failure.res.inst_5_a_1 Bool) - (critical_failure.res.inst_4_a_1 Bool) - (critical_failure.res.inst_3_a_1 Bool) - (critical_failure.res.inst_2_a_1 Bool) - (critical_failure.res.inst_1_a_1 Bool) - (critical_failure.res.inst_0_a_1 Bool) - (critical_failure.usr.op_mode_a_0 Int) - (critical_failure.usr.steam_a_0 Int) - (critical_failure.usr.level_defect_a_0 Int) - (critical_failure.usr.steam_defect_a_0 Int) - (critical_failure.usr.pump_defect_0_a_0 Int) - (critical_failure.usr.pump_defect_1_a_0 Int) - (critical_failure.usr.pump_defect_2_a_0 Int) - (critical_failure.usr.pump_defect_3_a_0 Int) - (critical_failure.usr.q_a_0 Int) - (critical_failure.usr.pump_state_0_a_0 Int) - (critical_failure.usr.pump_state_1_a_0 Int) - (critical_failure.usr.pump_state_2_a_0 Int) - (critical_failure.usr.pump_state_3_a_0 Int) - (critical_failure.usr.critical_failure_a_0 Bool) - (critical_failure.res.init_flag_a_0 Bool) - (critical_failure.res.abs_0_a_0 Bool) - (critical_failure.res.abs_1_a_0 Bool) - (critical_failure.res.abs_2_a_0 Bool) - (critical_failure.res.abs_3_a_0 Bool) - (critical_failure.res.abs_4_a_0 Bool) - (critical_failure.res.abs_5_a_0 Bool) - (critical_failure.res.abs_6_a_0 Bool) - (critical_failure.res.abs_7_a_0 Bool) - (critical_failure.res.abs_8_a_0 Bool) - (critical_failure.res.abs_9_a_0 Bool) - (critical_failure.res.inst_9_a_0 Bool) - (critical_failure.res.inst_8_a_0 Bool) - (critical_failure.res.inst_7_a_0 Bool) - (critical_failure.res.inst_6_a_0 Bool) - (critical_failure.res.inst_5_a_0 Bool) - (critical_failure.res.inst_4_a_0 Bool) - (critical_failure.res.inst_3_a_0 Bool) - (critical_failure.res.inst_2_a_0 Bool) - (critical_failure.res.inst_1_a_0 Bool) - (critical_failure.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - critical_failure.usr.critical_failure_a_1 - (or - (or - (or - (or - (or - critical_failure.res.abs_0_a_1 - (and - (= critical_failure.usr.op_mode_a_1 1) - critical_failure.res.abs_1_a_1)) - (and - (= critical_failure.usr.op_mode_a_1 2) - (or critical_failure.res.abs_2_a_1 critical_failure.res.abs_3_a_1))) - (and - (= critical_failure.usr.op_mode_a_1 3) - critical_failure.res.abs_4_a_1)) - (and (= critical_failure.usr.op_mode_a_1 4) critical_failure.res.abs_4_a_1)) - (and - (= critical_failure.usr.op_mode_a_1 5) - (or - (or critical_failure.res.abs_4_a_1 critical_failure.res.abs_3_a_1) - critical_failure.res.abs_9_a_1)))) - (__node_trans_transmission_failure_0 - critical_failure.usr.pump_state_0_a_1 - critical_failure.usr.pump_state_1_a_1 - critical_failure.usr.pump_state_2_a_1 - critical_failure.usr.pump_state_3_a_1 - critical_failure.res.abs_0_a_1 - critical_failure.res.inst_9_a_1 - critical_failure.usr.pump_state_0_a_0 - critical_failure.usr.pump_state_1_a_0 - critical_failure.usr.pump_state_2_a_0 - critical_failure.usr.pump_state_3_a_0 - critical_failure.res.abs_0_a_0 - critical_failure.res.inst_9_a_0) - (__node_trans_steam_failure_startup_0 - critical_failure.usr.steam_a_1 - critical_failure.res.abs_1_a_1 - critical_failure.res.inst_8_a_1 - critical_failure.usr.steam_a_0 - critical_failure.res.abs_1_a_0 - critical_failure.res.inst_8_a_0) - (__node_trans_level_failure_0 - critical_failure.usr.level_defect_a_1 - critical_failure.res.abs_2_a_1 - critical_failure.res.inst_7_a_1 - critical_failure.usr.level_defect_a_0 - critical_failure.res.abs_2_a_0 - critical_failure.res.inst_7_a_0) - (__node_trans_steam_failure_0 - critical_failure.usr.steam_defect_a_1 - critical_failure.res.abs_3_a_1 - critical_failure.res.inst_6_a_1 - critical_failure.usr.steam_defect_a_0 - critical_failure.res.abs_3_a_0 - critical_failure.res.inst_6_a_0) - (__node_trans_dangerous_level_0 - critical_failure.usr.q_a_1 - critical_failure.res.abs_4_a_1 - critical_failure.res.inst_5_a_1 - critical_failure.usr.q_a_0 - critical_failure.res.abs_4_a_0 - critical_failure.res.inst_5_a_0) - (__node_trans_AND_0 - critical_failure.res.abs_5_a_1 - critical_failure.res.abs_6_a_1 - critical_failure.res.abs_7_a_1 - critical_failure.res.abs_8_a_1 - critical_failure.res.abs_9_a_1 - critical_failure.res.inst_4_a_1 - critical_failure.res.abs_5_a_0 - critical_failure.res.abs_6_a_0 - critical_failure.res.abs_7_a_0 - critical_failure.res.abs_8_a_0 - critical_failure.res.abs_9_a_0 - critical_failure.res.inst_4_a_0) - (__node_trans_pump_failure_0 - critical_failure.usr.pump_defect_0_a_1 - critical_failure.res.abs_5_a_1 - critical_failure.res.inst_3_a_1 - critical_failure.usr.pump_defect_0_a_0 - critical_failure.res.abs_5_a_0 - critical_failure.res.inst_3_a_0) - (__node_trans_pump_failure_0 - critical_failure.usr.pump_defect_1_a_1 - critical_failure.res.abs_6_a_1 - critical_failure.res.inst_2_a_1 - critical_failure.usr.pump_defect_1_a_0 - critical_failure.res.abs_6_a_0 - critical_failure.res.inst_2_a_0) - (__node_trans_pump_failure_0 - critical_failure.usr.pump_defect_2_a_1 - critical_failure.res.abs_7_a_1 - critical_failure.res.inst_1_a_1 - critical_failure.usr.pump_defect_2_a_0 - critical_failure.res.abs_7_a_0 - critical_failure.res.inst_1_a_0) - (__node_trans_pump_failure_0 - critical_failure.usr.pump_defect_3_a_1 - critical_failure.res.abs_8_a_1 - critical_failure.res.inst_0_a_1 - critical_failure.usr.pump_defect_3_a_0 - critical_failure.res.abs_8_a_0 - critical_failure.res.inst_0_a_0) - (not critical_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_ControlMode_0 ( - (ControlMode.usr.steam_boiler_waiting_a_0 Bool) - (ControlMode.usr.physical_units_ready_a_0 Bool) - (ControlMode.usr.stop_request_a_0 Bool) - (ControlMode.usr.steam_a_0 Int) - (ControlMode.usr.level_defect_a_0 Int) - (ControlMode.usr.steam_defect_a_0 Int) - (ControlMode.usr.pump_defect_0_a_0 Int) - (ControlMode.usr.pump_defect_1_a_0 Int) - (ControlMode.usr.pump_defect_2_a_0 Int) - (ControlMode.usr.pump_defect_3_a_0 Int) - (ControlMode.usr.pump_control_defect_0_a_0 Int) - (ControlMode.usr.pump_control_defect_1_a_0 Int) - (ControlMode.usr.pump_control_defect_2_a_0 Int) - (ControlMode.usr.pump_control_defect_3_a_0 Int) - (ControlMode.usr.q_a_0 Int) - (ControlMode.usr.pump_state_0_a_0 Int) - (ControlMode.usr.pump_state_1_a_0 Int) - (ControlMode.usr.pump_state_2_a_0 Int) - (ControlMode.usr.pump_state_3_a_0 Int) - (ControlMode.res.nondet_0 Int) - (ControlMode.usr.op_mode_a_0 Int) - (ControlMode.res.init_flag_a_0 Bool) - (ControlMode.res.abs_0_a_0 Int) - (ControlMode.res.abs_1_a_0 Bool) - (ControlMode.res.abs_2_a_0 Bool) - (ControlMode.res.abs_3_a_0 Bool) - (ControlMode.res.inst_46_a_0 Bool) - (ControlMode.res.inst_45_a_0 Bool) - (ControlMode.res.inst_44_a_0 Bool) - (ControlMode.res.inst_43_a_0 Bool) - (ControlMode.res.inst_42_a_0 Bool) - (ControlMode.res.inst_41_a_0 Bool) - (ControlMode.res.inst_40_a_0 Bool) - (ControlMode.res.inst_39_a_0 Bool) - (ControlMode.res.inst_38_a_0 Bool) - (ControlMode.res.inst_37_a_0 Bool) - (ControlMode.res.inst_36_a_0 Bool) - (ControlMode.res.inst_35_a_0 Bool) - (ControlMode.res.inst_34_a_0 Bool) - (ControlMode.res.inst_33_a_0 Bool) - (ControlMode.res.inst_32_a_0 Bool) - (ControlMode.res.inst_31_a_0 Bool) - (ControlMode.res.inst_30_a_0 Bool) - (ControlMode.res.inst_29_a_0 Bool) - (ControlMode.res.inst_28_a_0 Bool) - (ControlMode.res.inst_27_a_0 Bool) - (ControlMode.res.inst_26_a_0 Bool) - (ControlMode.res.inst_25_a_0 Bool) - (ControlMode.res.inst_24_a_0 Bool) - (ControlMode.res.inst_23_a_0 Bool) - (ControlMode.res.inst_22_a_0 Bool) - (ControlMode.res.inst_21_a_0 Bool) - (ControlMode.res.inst_20_a_0 Bool) - (ControlMode.res.inst_19_a_0 Bool) - (ControlMode.res.inst_18_a_0 Bool) - (ControlMode.res.inst_17_a_0 Bool) - (ControlMode.res.inst_16_a_0 Bool) - (ControlMode.res.inst_15_a_0 Bool) - (ControlMode.res.inst_14_a_0 Bool) - (ControlMode.res.inst_13_a_0 Bool) - (ControlMode.res.inst_12_a_0 Bool) - (ControlMode.res.inst_11_a_0 Bool) - (ControlMode.res.inst_10_a_0 Bool) - (ControlMode.res.inst_9_a_0 Bool) - (ControlMode.res.inst_8_a_0 Bool) - (ControlMode.res.inst_7_a_0 Bool) - (ControlMode.res.inst_6_a_0 Bool) - (ControlMode.res.inst_5_a_0 Bool) - (ControlMode.res.inst_4_a_0 Bool) - (ControlMode.res.inst_3_a_0 Bool) - (ControlMode.res.inst_2_a_0 Bool) - (ControlMode.res.inst_1_a_0 Bool) - (ControlMode.res.inst_0_a_0 Bool) - ) Bool - - (and - (= ControlMode.usr.op_mode_a_0 1) - (= ControlMode.res.abs_0_a_0 (let ((X1 Int ControlMode.res.nondet_0)) X1)) - (__node_init_critical_failure_0 - ControlMode.res.abs_0_a_0 - ControlMode.usr.steam_a_0 - ControlMode.usr.level_defect_a_0 - ControlMode.usr.steam_defect_a_0 - ControlMode.usr.pump_defect_0_a_0 - ControlMode.usr.pump_defect_1_a_0 - ControlMode.usr.pump_defect_2_a_0 - ControlMode.usr.pump_defect_3_a_0 - ControlMode.usr.q_a_0 - ControlMode.usr.pump_state_0_a_0 - ControlMode.usr.pump_state_1_a_0 - ControlMode.usr.pump_state_2_a_0 - ControlMode.usr.pump_state_3_a_0 - ControlMode.res.abs_1_a_0 - ControlMode.res.inst_46_a_0 - ControlMode.res.inst_45_a_0 - ControlMode.res.inst_44_a_0 - ControlMode.res.inst_43_a_0 - ControlMode.res.inst_42_a_0 - ControlMode.res.inst_41_a_0 - ControlMode.res.inst_40_a_0 - ControlMode.res.inst_39_a_0 - ControlMode.res.inst_38_a_0 - ControlMode.res.inst_37_a_0 - ControlMode.res.inst_36_a_0 - ControlMode.res.inst_35_a_0 - ControlMode.res.inst_34_a_0 - ControlMode.res.inst_33_a_0 - ControlMode.res.inst_32_a_0 - ControlMode.res.inst_31_a_0 - ControlMode.res.inst_30_a_0 - ControlMode.res.inst_29_a_0 - ControlMode.res.inst_28_a_0 - ControlMode.res.inst_27_a_0 - ControlMode.res.inst_26_a_0) - (__node_init_level_failure_0 - ControlMode.usr.level_defect_a_0 - ControlMode.res.abs_2_a_0 - ControlMode.res.inst_25_a_0) - (__node_init_failure_0 - ControlMode.usr.level_defect_a_0 - ControlMode.usr.steam_defect_a_0 - ControlMode.usr.pump_defect_0_a_0 - ControlMode.usr.pump_defect_1_a_0 - ControlMode.usr.pump_defect_2_a_0 - ControlMode.usr.pump_defect_3_a_0 - ControlMode.usr.pump_control_defect_0_a_0 - ControlMode.usr.pump_control_defect_1_a_0 - ControlMode.usr.pump_control_defect_2_a_0 - ControlMode.usr.pump_control_defect_3_a_0 - ControlMode.res.abs_3_a_0 - ControlMode.res.inst_24_a_0 - ControlMode.res.inst_23_a_0 - ControlMode.res.inst_22_a_0 - ControlMode.res.inst_21_a_0 - ControlMode.res.inst_20_a_0 - ControlMode.res.inst_19_a_0 - ControlMode.res.inst_18_a_0 - ControlMode.res.inst_17_a_0 - ControlMode.res.inst_16_a_0 - ControlMode.res.inst_15_a_0 - ControlMode.res.inst_14_a_0 - ControlMode.res.inst_13_a_0 - ControlMode.res.inst_12_a_0 - ControlMode.res.inst_11_a_0 - ControlMode.res.inst_10_a_0 - ControlMode.res.inst_9_a_0 - ControlMode.res.inst_8_a_0 - ControlMode.res.inst_7_a_0 - ControlMode.res.inst_6_a_0 - ControlMode.res.inst_5_a_0 - ControlMode.res.inst_4_a_0 - ControlMode.res.inst_3_a_0 - ControlMode.res.inst_2_a_0 - ControlMode.res.inst_1_a_0 - ControlMode.res.inst_0_a_0) - (<= 1 ControlMode.usr.op_mode_a_0 6) - ControlMode.res.init_flag_a_0) -) - -(define-fun - __node_trans_ControlMode_0 ( - (ControlMode.usr.steam_boiler_waiting_a_1 Bool) - (ControlMode.usr.physical_units_ready_a_1 Bool) - (ControlMode.usr.stop_request_a_1 Bool) - (ControlMode.usr.steam_a_1 Int) - (ControlMode.usr.level_defect_a_1 Int) - (ControlMode.usr.steam_defect_a_1 Int) - (ControlMode.usr.pump_defect_0_a_1 Int) - (ControlMode.usr.pump_defect_1_a_1 Int) - (ControlMode.usr.pump_defect_2_a_1 Int) - (ControlMode.usr.pump_defect_3_a_1 Int) - (ControlMode.usr.pump_control_defect_0_a_1 Int) - (ControlMode.usr.pump_control_defect_1_a_1 Int) - (ControlMode.usr.pump_control_defect_2_a_1 Int) - (ControlMode.usr.pump_control_defect_3_a_1 Int) - (ControlMode.usr.q_a_1 Int) - (ControlMode.usr.pump_state_0_a_1 Int) - (ControlMode.usr.pump_state_1_a_1 Int) - (ControlMode.usr.pump_state_2_a_1 Int) - (ControlMode.usr.pump_state_3_a_1 Int) - (ControlMode.res.nondet_0 Int) - (ControlMode.usr.op_mode_a_1 Int) - (ControlMode.res.init_flag_a_1 Bool) - (ControlMode.res.abs_0_a_1 Int) - (ControlMode.res.abs_1_a_1 Bool) - (ControlMode.res.abs_2_a_1 Bool) - (ControlMode.res.abs_3_a_1 Bool) - (ControlMode.res.inst_46_a_1 Bool) - (ControlMode.res.inst_45_a_1 Bool) - (ControlMode.res.inst_44_a_1 Bool) - (ControlMode.res.inst_43_a_1 Bool) - (ControlMode.res.inst_42_a_1 Bool) - (ControlMode.res.inst_41_a_1 Bool) - (ControlMode.res.inst_40_a_1 Bool) - (ControlMode.res.inst_39_a_1 Bool) - (ControlMode.res.inst_38_a_1 Bool) - (ControlMode.res.inst_37_a_1 Bool) - (ControlMode.res.inst_36_a_1 Bool) - (ControlMode.res.inst_35_a_1 Bool) - (ControlMode.res.inst_34_a_1 Bool) - (ControlMode.res.inst_33_a_1 Bool) - (ControlMode.res.inst_32_a_1 Bool) - (ControlMode.res.inst_31_a_1 Bool) - (ControlMode.res.inst_30_a_1 Bool) - (ControlMode.res.inst_29_a_1 Bool) - (ControlMode.res.inst_28_a_1 Bool) - (ControlMode.res.inst_27_a_1 Bool) - (ControlMode.res.inst_26_a_1 Bool) - (ControlMode.res.inst_25_a_1 Bool) - (ControlMode.res.inst_24_a_1 Bool) - (ControlMode.res.inst_23_a_1 Bool) - (ControlMode.res.inst_22_a_1 Bool) - (ControlMode.res.inst_21_a_1 Bool) - (ControlMode.res.inst_20_a_1 Bool) - (ControlMode.res.inst_19_a_1 Bool) - (ControlMode.res.inst_18_a_1 Bool) - (ControlMode.res.inst_17_a_1 Bool) - (ControlMode.res.inst_16_a_1 Bool) - (ControlMode.res.inst_15_a_1 Bool) - (ControlMode.res.inst_14_a_1 Bool) - (ControlMode.res.inst_13_a_1 Bool) - (ControlMode.res.inst_12_a_1 Bool) - (ControlMode.res.inst_11_a_1 Bool) - (ControlMode.res.inst_10_a_1 Bool) - (ControlMode.res.inst_9_a_1 Bool) - (ControlMode.res.inst_8_a_1 Bool) - (ControlMode.res.inst_7_a_1 Bool) - (ControlMode.res.inst_6_a_1 Bool) - (ControlMode.res.inst_5_a_1 Bool) - (ControlMode.res.inst_4_a_1 Bool) - (ControlMode.res.inst_3_a_1 Bool) - (ControlMode.res.inst_2_a_1 Bool) - (ControlMode.res.inst_1_a_1 Bool) - (ControlMode.res.inst_0_a_1 Bool) - (ControlMode.usr.steam_boiler_waiting_a_0 Bool) - (ControlMode.usr.physical_units_ready_a_0 Bool) - (ControlMode.usr.stop_request_a_0 Bool) - (ControlMode.usr.steam_a_0 Int) - (ControlMode.usr.level_defect_a_0 Int) - (ControlMode.usr.steam_defect_a_0 Int) - (ControlMode.usr.pump_defect_0_a_0 Int) - (ControlMode.usr.pump_defect_1_a_0 Int) - (ControlMode.usr.pump_defect_2_a_0 Int) - (ControlMode.usr.pump_defect_3_a_0 Int) - (ControlMode.usr.pump_control_defect_0_a_0 Int) - (ControlMode.usr.pump_control_defect_1_a_0 Int) - (ControlMode.usr.pump_control_defect_2_a_0 Int) - (ControlMode.usr.pump_control_defect_3_a_0 Int) - (ControlMode.usr.q_a_0 Int) - (ControlMode.usr.pump_state_0_a_0 Int) - (ControlMode.usr.pump_state_1_a_0 Int) - (ControlMode.usr.pump_state_2_a_0 Int) - (ControlMode.usr.pump_state_3_a_0 Int) - (ControlMode.usr.op_mode_a_0 Int) - (ControlMode.res.init_flag_a_0 Bool) - (ControlMode.res.abs_0_a_0 Int) - (ControlMode.res.abs_1_a_0 Bool) - (ControlMode.res.abs_2_a_0 Bool) - (ControlMode.res.abs_3_a_0 Bool) - (ControlMode.res.inst_46_a_0 Bool) - (ControlMode.res.inst_45_a_0 Bool) - (ControlMode.res.inst_44_a_0 Bool) - (ControlMode.res.inst_43_a_0 Bool) - (ControlMode.res.inst_42_a_0 Bool) - (ControlMode.res.inst_41_a_0 Bool) - (ControlMode.res.inst_40_a_0 Bool) - (ControlMode.res.inst_39_a_0 Bool) - (ControlMode.res.inst_38_a_0 Bool) - (ControlMode.res.inst_37_a_0 Bool) - (ControlMode.res.inst_36_a_0 Bool) - (ControlMode.res.inst_35_a_0 Bool) - (ControlMode.res.inst_34_a_0 Bool) - (ControlMode.res.inst_33_a_0 Bool) - (ControlMode.res.inst_32_a_0 Bool) - (ControlMode.res.inst_31_a_0 Bool) - (ControlMode.res.inst_30_a_0 Bool) - (ControlMode.res.inst_29_a_0 Bool) - (ControlMode.res.inst_28_a_0 Bool) - (ControlMode.res.inst_27_a_0 Bool) - (ControlMode.res.inst_26_a_0 Bool) - (ControlMode.res.inst_25_a_0 Bool) - (ControlMode.res.inst_24_a_0 Bool) - (ControlMode.res.inst_23_a_0 Bool) - (ControlMode.res.inst_22_a_0 Bool) - (ControlMode.res.inst_21_a_0 Bool) - (ControlMode.res.inst_20_a_0 Bool) - (ControlMode.res.inst_19_a_0 Bool) - (ControlMode.res.inst_18_a_0 Bool) - (ControlMode.res.inst_17_a_0 Bool) - (ControlMode.res.inst_16_a_0 Bool) - (ControlMode.res.inst_15_a_0 Bool) - (ControlMode.res.inst_14_a_0 Bool) - (ControlMode.res.inst_13_a_0 Bool) - (ControlMode.res.inst_12_a_0 Bool) - (ControlMode.res.inst_11_a_0 Bool) - (ControlMode.res.inst_10_a_0 Bool) - (ControlMode.res.inst_9_a_0 Bool) - (ControlMode.res.inst_8_a_0 Bool) - (ControlMode.res.inst_7_a_0 Bool) - (ControlMode.res.inst_6_a_0 Bool) - (ControlMode.res.inst_5_a_0 Bool) - (ControlMode.res.inst_4_a_0 Bool) - (ControlMode.res.inst_3_a_0 Bool) - (ControlMode.res.inst_2_a_0 Bool) - (ControlMode.res.inst_1_a_0 Bool) - (ControlMode.res.inst_0_a_0 Bool) - ) Bool - - (and - (= ControlMode.res.abs_0_a_1 ControlMode.usr.op_mode_a_0) - (= - ControlMode.usr.op_mode_a_1 - (ite - (or - (or ControlMode.res.abs_1_a_1 ControlMode.usr.stop_request_a_1) - (= ControlMode.usr.op_mode_a_0 6)) - 6 - (ite - (= ControlMode.usr.op_mode_a_0 1) - (ite ControlMode.usr.steam_boiler_waiting_a_1 2 1) - (ite - (and - (= ControlMode.usr.op_mode_a_0 2) - (not ControlMode.usr.physical_units_ready_a_1)) - 2 - (ite ControlMode.res.abs_2_a_1 5 (ite ControlMode.res.abs_3_a_1 4 3)))))) - (__node_trans_critical_failure_0 - ControlMode.res.abs_0_a_1 - ControlMode.usr.steam_a_1 - ControlMode.usr.level_defect_a_1 - ControlMode.usr.steam_defect_a_1 - ControlMode.usr.pump_defect_0_a_1 - ControlMode.usr.pump_defect_1_a_1 - ControlMode.usr.pump_defect_2_a_1 - ControlMode.usr.pump_defect_3_a_1 - ControlMode.usr.q_a_1 - ControlMode.usr.pump_state_0_a_1 - ControlMode.usr.pump_state_1_a_1 - ControlMode.usr.pump_state_2_a_1 - ControlMode.usr.pump_state_3_a_1 - ControlMode.res.abs_1_a_1 - ControlMode.res.inst_46_a_1 - ControlMode.res.inst_45_a_1 - ControlMode.res.inst_44_a_1 - ControlMode.res.inst_43_a_1 - ControlMode.res.inst_42_a_1 - ControlMode.res.inst_41_a_1 - ControlMode.res.inst_40_a_1 - ControlMode.res.inst_39_a_1 - ControlMode.res.inst_38_a_1 - ControlMode.res.inst_37_a_1 - ControlMode.res.inst_36_a_1 - ControlMode.res.inst_35_a_1 - ControlMode.res.inst_34_a_1 - ControlMode.res.inst_33_a_1 - ControlMode.res.inst_32_a_1 - ControlMode.res.inst_31_a_1 - ControlMode.res.inst_30_a_1 - ControlMode.res.inst_29_a_1 - ControlMode.res.inst_28_a_1 - ControlMode.res.inst_27_a_1 - ControlMode.res.inst_26_a_1 - ControlMode.res.abs_0_a_0 - ControlMode.usr.steam_a_0 - ControlMode.usr.level_defect_a_0 - ControlMode.usr.steam_defect_a_0 - ControlMode.usr.pump_defect_0_a_0 - ControlMode.usr.pump_defect_1_a_0 - ControlMode.usr.pump_defect_2_a_0 - ControlMode.usr.pump_defect_3_a_0 - ControlMode.usr.q_a_0 - ControlMode.usr.pump_state_0_a_0 - ControlMode.usr.pump_state_1_a_0 - ControlMode.usr.pump_state_2_a_0 - ControlMode.usr.pump_state_3_a_0 - ControlMode.res.abs_1_a_0 - ControlMode.res.inst_46_a_0 - ControlMode.res.inst_45_a_0 - ControlMode.res.inst_44_a_0 - ControlMode.res.inst_43_a_0 - ControlMode.res.inst_42_a_0 - ControlMode.res.inst_41_a_0 - ControlMode.res.inst_40_a_0 - ControlMode.res.inst_39_a_0 - ControlMode.res.inst_38_a_0 - ControlMode.res.inst_37_a_0 - ControlMode.res.inst_36_a_0 - ControlMode.res.inst_35_a_0 - ControlMode.res.inst_34_a_0 - ControlMode.res.inst_33_a_0 - ControlMode.res.inst_32_a_0 - ControlMode.res.inst_31_a_0 - ControlMode.res.inst_30_a_0 - ControlMode.res.inst_29_a_0 - ControlMode.res.inst_28_a_0 - ControlMode.res.inst_27_a_0 - ControlMode.res.inst_26_a_0) - (__node_trans_level_failure_0 - ControlMode.usr.level_defect_a_1 - ControlMode.res.abs_2_a_1 - ControlMode.res.inst_25_a_1 - ControlMode.usr.level_defect_a_0 - ControlMode.res.abs_2_a_0 - ControlMode.res.inst_25_a_0) - (__node_trans_failure_0 - ControlMode.usr.level_defect_a_1 - ControlMode.usr.steam_defect_a_1 - ControlMode.usr.pump_defect_0_a_1 - ControlMode.usr.pump_defect_1_a_1 - ControlMode.usr.pump_defect_2_a_1 - ControlMode.usr.pump_defect_3_a_1 - ControlMode.usr.pump_control_defect_0_a_1 - ControlMode.usr.pump_control_defect_1_a_1 - ControlMode.usr.pump_control_defect_2_a_1 - ControlMode.usr.pump_control_defect_3_a_1 - ControlMode.res.abs_3_a_1 - ControlMode.res.inst_24_a_1 - ControlMode.res.inst_23_a_1 - ControlMode.res.inst_22_a_1 - ControlMode.res.inst_21_a_1 - ControlMode.res.inst_20_a_1 - ControlMode.res.inst_19_a_1 - ControlMode.res.inst_18_a_1 - ControlMode.res.inst_17_a_1 - ControlMode.res.inst_16_a_1 - ControlMode.res.inst_15_a_1 - ControlMode.res.inst_14_a_1 - ControlMode.res.inst_13_a_1 - ControlMode.res.inst_12_a_1 - ControlMode.res.inst_11_a_1 - ControlMode.res.inst_10_a_1 - ControlMode.res.inst_9_a_1 - ControlMode.res.inst_8_a_1 - ControlMode.res.inst_7_a_1 - ControlMode.res.inst_6_a_1 - ControlMode.res.inst_5_a_1 - ControlMode.res.inst_4_a_1 - ControlMode.res.inst_3_a_1 - ControlMode.res.inst_2_a_1 - ControlMode.res.inst_1_a_1 - ControlMode.res.inst_0_a_1 - ControlMode.usr.level_defect_a_0 - ControlMode.usr.steam_defect_a_0 - ControlMode.usr.pump_defect_0_a_0 - ControlMode.usr.pump_defect_1_a_0 - ControlMode.usr.pump_defect_2_a_0 - ControlMode.usr.pump_defect_3_a_0 - ControlMode.usr.pump_control_defect_0_a_0 - ControlMode.usr.pump_control_defect_1_a_0 - ControlMode.usr.pump_control_defect_2_a_0 - ControlMode.usr.pump_control_defect_3_a_0 - ControlMode.res.abs_3_a_0 - ControlMode.res.inst_24_a_0 - ControlMode.res.inst_23_a_0 - ControlMode.res.inst_22_a_0 - ControlMode.res.inst_21_a_0 - ControlMode.res.inst_20_a_0 - ControlMode.res.inst_19_a_0 - ControlMode.res.inst_18_a_0 - ControlMode.res.inst_17_a_0 - ControlMode.res.inst_16_a_0 - ControlMode.res.inst_15_a_0 - ControlMode.res.inst_14_a_0 - ControlMode.res.inst_13_a_0 - ControlMode.res.inst_12_a_0 - ControlMode.res.inst_11_a_0 - ControlMode.res.inst_10_a_0 - ControlMode.res.inst_9_a_0 - ControlMode.res.inst_8_a_0 - ControlMode.res.inst_7_a_0 - ControlMode.res.inst_6_a_0 - ControlMode.res.inst_5_a_0 - ControlMode.res.inst_4_a_0 - ControlMode.res.inst_3_a_0 - ControlMode.res.inst_2_a_0 - ControlMode.res.inst_1_a_0 - ControlMode.res.inst_0_a_0) - (<= 1 ControlMode.usr.op_mode_a_1 6) - (not ControlMode.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.steam_boiler_waiting_a_0 Bool) - (top.usr.physical_units_ready_a_0 Bool) - (top.usr.stop_request_a_0 Bool) - (top.usr.steam_a_0 Int) - (top.usr.level_defect_a_0 Int) - (top.usr.steam_defect_a_0 Int) - (top.usr.pump_defect_0_a_0 Int) - (top.usr.pump_defect_1_a_0 Int) - (top.usr.pump_defect_2_a_0 Int) - (top.usr.pump_defect_3_a_0 Int) - (top.usr.pump_control_defect_0_a_0 Int) - (top.usr.pump_control_defect_1_a_0 Int) - (top.usr.pump_control_defect_2_a_0 Int) - (top.usr.pump_control_defect_3_a_0 Int) - (top.usr.q_a_0 Int) - (top.usr.pump_state_0_a_0 Int) - (top.usr.pump_state_1_a_0 Int) - (top.usr.pump_state_2_a_0 Int) - (top.usr.pump_state_3_a_0 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.op_mode_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Bool) - (top.res.inst_52_a_0 Bool) - (top.res.inst_51_a_0 Int) - (top.res.inst_50_a_0 Bool) - (top.res.inst_49_a_0 Bool) - (top.res.inst_48_a_0 Bool) - (top.res.inst_47_a_0 Bool) - (top.res.inst_46_a_0 Bool) - (top.res.inst_45_a_0 Bool) - (top.res.inst_44_a_0 Bool) - (top.res.inst_43_a_0 Bool) - (top.res.inst_42_a_0 Bool) - (top.res.inst_41_a_0 Bool) - (top.res.inst_40_a_0 Bool) - (top.res.inst_39_a_0 Bool) - (top.res.inst_38_a_0 Bool) - (top.res.inst_37_a_0 Bool) - (top.res.inst_36_a_0 Bool) - (top.res.inst_35_a_0 Bool) - (top.res.inst_34_a_0 Bool) - (top.res.inst_33_a_0 Bool) - (top.res.inst_32_a_0 Bool) - (top.res.inst_31_a_0 Bool) - (top.res.inst_30_a_0 Bool) - (top.res.inst_29_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Bool) - (top.res.inst_23_a_0 Bool) - (top.res.inst_22_a_0 Bool) - (top.res.inst_21_a_0 Bool) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.op_mode_a_0 top.res.abs_0_a_0) - (let - ((X1 Bool (=> (= top.impl.usr.op_mode_a_0 3) (not top.usr.stop_request_a_0)))) - (let - ((X2 Bool true)) - (and - (= top.usr.OK_a_0 (and X2 X1)) - (__node_init_ControlMode_0 - top.usr.steam_boiler_waiting_a_0 - top.usr.physical_units_ready_a_0 - top.usr.stop_request_a_0 - top.usr.steam_a_0 - top.usr.level_defect_a_0 - top.usr.steam_defect_a_0 - top.usr.pump_defect_0_a_0 - top.usr.pump_defect_1_a_0 - top.usr.pump_defect_2_a_0 - top.usr.pump_defect_3_a_0 - top.usr.pump_control_defect_0_a_0 - top.usr.pump_control_defect_1_a_0 - top.usr.pump_control_defect_2_a_0 - top.usr.pump_control_defect_3_a_0 - top.usr.q_a_0 - top.usr.pump_state_0_a_0 - top.usr.pump_state_1_a_0 - top.usr.pump_state_2_a_0 - top.usr.pump_state_3_a_0 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.inst_52_a_0 - top.res.inst_51_a_0 - top.res.inst_50_a_0 - top.res.inst_49_a_0 - top.res.inst_48_a_0 - top.res.inst_47_a_0 - top.res.inst_46_a_0 - top.res.inst_45_a_0 - top.res.inst_44_a_0 - top.res.inst_43_a_0 - top.res.inst_42_a_0 - top.res.inst_41_a_0 - top.res.inst_40_a_0 - top.res.inst_39_a_0 - top.res.inst_38_a_0 - top.res.inst_37_a_0 - top.res.inst_36_a_0 - top.res.inst_35_a_0 - top.res.inst_34_a_0 - top.res.inst_33_a_0 - top.res.inst_32_a_0 - top.res.inst_31_a_0 - top.res.inst_30_a_0 - top.res.inst_29_a_0 - top.res.inst_28_a_0 - top.res.inst_27_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_init_dangerous_level_0 - top.usr.q_a_0 - top.res.abs_1_a_0 - top.res.inst_0_a_0) - (<= 1 top.impl.usr.op_mode_a_0 6) - (<= 1 top.res.abs_0_a_0 6) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.steam_boiler_waiting_a_1 Bool) - (top.usr.physical_units_ready_a_1 Bool) - (top.usr.stop_request_a_1 Bool) - (top.usr.steam_a_1 Int) - (top.usr.level_defect_a_1 Int) - (top.usr.steam_defect_a_1 Int) - (top.usr.pump_defect_0_a_1 Int) - (top.usr.pump_defect_1_a_1 Int) - (top.usr.pump_defect_2_a_1 Int) - (top.usr.pump_defect_3_a_1 Int) - (top.usr.pump_control_defect_0_a_1 Int) - (top.usr.pump_control_defect_1_a_1 Int) - (top.usr.pump_control_defect_2_a_1 Int) - (top.usr.pump_control_defect_3_a_1 Int) - (top.usr.q_a_1 Int) - (top.usr.pump_state_0_a_1 Int) - (top.usr.pump_state_1_a_1 Int) - (top.usr.pump_state_2_a_1 Int) - (top.usr.pump_state_3_a_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.op_mode_a_1 Int) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Bool) - (top.res.inst_52_a_1 Bool) - (top.res.inst_51_a_1 Int) - (top.res.inst_50_a_1 Bool) - (top.res.inst_49_a_1 Bool) - (top.res.inst_48_a_1 Bool) - (top.res.inst_47_a_1 Bool) - (top.res.inst_46_a_1 Bool) - (top.res.inst_45_a_1 Bool) - (top.res.inst_44_a_1 Bool) - (top.res.inst_43_a_1 Bool) - (top.res.inst_42_a_1 Bool) - (top.res.inst_41_a_1 Bool) - (top.res.inst_40_a_1 Bool) - (top.res.inst_39_a_1 Bool) - (top.res.inst_38_a_1 Bool) - (top.res.inst_37_a_1 Bool) - (top.res.inst_36_a_1 Bool) - (top.res.inst_35_a_1 Bool) - (top.res.inst_34_a_1 Bool) - (top.res.inst_33_a_1 Bool) - (top.res.inst_32_a_1 Bool) - (top.res.inst_31_a_1 Bool) - (top.res.inst_30_a_1 Bool) - (top.res.inst_29_a_1 Bool) - (top.res.inst_28_a_1 Bool) - (top.res.inst_27_a_1 Bool) - (top.res.inst_26_a_1 Bool) - (top.res.inst_25_a_1 Bool) - (top.res.inst_24_a_1 Bool) - (top.res.inst_23_a_1 Bool) - (top.res.inst_22_a_1 Bool) - (top.res.inst_21_a_1 Bool) - (top.res.inst_20_a_1 Bool) - (top.res.inst_19_a_1 Bool) - (top.res.inst_18_a_1 Bool) - (top.res.inst_17_a_1 Bool) - (top.res.inst_16_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Bool) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Bool) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Bool) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.steam_boiler_waiting_a_0 Bool) - (top.usr.physical_units_ready_a_0 Bool) - (top.usr.stop_request_a_0 Bool) - (top.usr.steam_a_0 Int) - (top.usr.level_defect_a_0 Int) - (top.usr.steam_defect_a_0 Int) - (top.usr.pump_defect_0_a_0 Int) - (top.usr.pump_defect_1_a_0 Int) - (top.usr.pump_defect_2_a_0 Int) - (top.usr.pump_defect_3_a_0 Int) - (top.usr.pump_control_defect_0_a_0 Int) - (top.usr.pump_control_defect_1_a_0 Int) - (top.usr.pump_control_defect_2_a_0 Int) - (top.usr.pump_control_defect_3_a_0 Int) - (top.usr.q_a_0 Int) - (top.usr.pump_state_0_a_0 Int) - (top.usr.pump_state_1_a_0 Int) - (top.usr.pump_state_2_a_0 Int) - (top.usr.pump_state_3_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.op_mode_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Bool) - (top.res.inst_52_a_0 Bool) - (top.res.inst_51_a_0 Int) - (top.res.inst_50_a_0 Bool) - (top.res.inst_49_a_0 Bool) - (top.res.inst_48_a_0 Bool) - (top.res.inst_47_a_0 Bool) - (top.res.inst_46_a_0 Bool) - (top.res.inst_45_a_0 Bool) - (top.res.inst_44_a_0 Bool) - (top.res.inst_43_a_0 Bool) - (top.res.inst_42_a_0 Bool) - (top.res.inst_41_a_0 Bool) - (top.res.inst_40_a_0 Bool) - (top.res.inst_39_a_0 Bool) - (top.res.inst_38_a_0 Bool) - (top.res.inst_37_a_0 Bool) - (top.res.inst_36_a_0 Bool) - (top.res.inst_35_a_0 Bool) - (top.res.inst_34_a_0 Bool) - (top.res.inst_33_a_0 Bool) - (top.res.inst_32_a_0 Bool) - (top.res.inst_31_a_0 Bool) - (top.res.inst_30_a_0 Bool) - (top.res.inst_29_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Bool) - (top.res.inst_23_a_0 Bool) - (top.res.inst_22_a_0 Bool) - (top.res.inst_21_a_0 Bool) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.op_mode_a_1 top.res.abs_0_a_1) - (let - ((X1 Bool (=> (= top.impl.usr.op_mode_a_1 3) (not top.usr.stop_request_a_1)))) - (let - ((X2 - Bool (=> - (and (= top.impl.usr.op_mode_a_1 3) (= top.impl.usr.op_mode_a_0 3)) - (not top.res.abs_1_a_1)))) - (and - (= top.usr.OK_a_1 (and X2 X1)) - (__node_trans_ControlMode_0 - top.usr.steam_boiler_waiting_a_1 - top.usr.physical_units_ready_a_1 - top.usr.stop_request_a_1 - top.usr.steam_a_1 - top.usr.level_defect_a_1 - top.usr.steam_defect_a_1 - top.usr.pump_defect_0_a_1 - top.usr.pump_defect_1_a_1 - top.usr.pump_defect_2_a_1 - top.usr.pump_defect_3_a_1 - top.usr.pump_control_defect_0_a_1 - top.usr.pump_control_defect_1_a_1 - top.usr.pump_control_defect_2_a_1 - top.usr.pump_control_defect_3_a_1 - top.usr.q_a_1 - top.usr.pump_state_0_a_1 - top.usr.pump_state_1_a_1 - top.usr.pump_state_2_a_1 - top.usr.pump_state_3_a_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.inst_52_a_1 - top.res.inst_51_a_1 - top.res.inst_50_a_1 - top.res.inst_49_a_1 - top.res.inst_48_a_1 - top.res.inst_47_a_1 - top.res.inst_46_a_1 - top.res.inst_45_a_1 - top.res.inst_44_a_1 - top.res.inst_43_a_1 - top.res.inst_42_a_1 - top.res.inst_41_a_1 - top.res.inst_40_a_1 - top.res.inst_39_a_1 - top.res.inst_38_a_1 - top.res.inst_37_a_1 - top.res.inst_36_a_1 - top.res.inst_35_a_1 - top.res.inst_34_a_1 - top.res.inst_33_a_1 - top.res.inst_32_a_1 - top.res.inst_31_a_1 - top.res.inst_30_a_1 - top.res.inst_29_a_1 - top.res.inst_28_a_1 - top.res.inst_27_a_1 - top.res.inst_26_a_1 - top.res.inst_25_a_1 - top.res.inst_24_a_1 - top.res.inst_23_a_1 - top.res.inst_22_a_1 - top.res.inst_21_a_1 - top.res.inst_20_a_1 - top.res.inst_19_a_1 - top.res.inst_18_a_1 - top.res.inst_17_a_1 - top.res.inst_16_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.usr.steam_boiler_waiting_a_0 - top.usr.physical_units_ready_a_0 - top.usr.stop_request_a_0 - top.usr.steam_a_0 - top.usr.level_defect_a_0 - top.usr.steam_defect_a_0 - top.usr.pump_defect_0_a_0 - top.usr.pump_defect_1_a_0 - top.usr.pump_defect_2_a_0 - top.usr.pump_defect_3_a_0 - top.usr.pump_control_defect_0_a_0 - top.usr.pump_control_defect_1_a_0 - top.usr.pump_control_defect_2_a_0 - top.usr.pump_control_defect_3_a_0 - top.usr.q_a_0 - top.usr.pump_state_0_a_0 - top.usr.pump_state_1_a_0 - top.usr.pump_state_2_a_0 - top.usr.pump_state_3_a_0 - top.res.abs_0_a_0 - top.res.inst_52_a_0 - top.res.inst_51_a_0 - top.res.inst_50_a_0 - top.res.inst_49_a_0 - top.res.inst_48_a_0 - top.res.inst_47_a_0 - top.res.inst_46_a_0 - top.res.inst_45_a_0 - top.res.inst_44_a_0 - top.res.inst_43_a_0 - top.res.inst_42_a_0 - top.res.inst_41_a_0 - top.res.inst_40_a_0 - top.res.inst_39_a_0 - top.res.inst_38_a_0 - top.res.inst_37_a_0 - top.res.inst_36_a_0 - top.res.inst_35_a_0 - top.res.inst_34_a_0 - top.res.inst_33_a_0 - top.res.inst_32_a_0 - top.res.inst_31_a_0 - top.res.inst_30_a_0 - top.res.inst_29_a_0 - top.res.inst_28_a_0 - top.res.inst_27_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_trans_dangerous_level_0 - top.usr.q_a_1 - top.res.abs_1_a_1 - top.res.inst_0_a_1 - top.usr.q_a_0 - top.res.abs_1_a_0 - top.res.inst_0_a_0) - (<= 1 top.impl.usr.op_mode_a_1 6) - (<= 1 top.res.abs_0_a_1 6) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.steam_boiler_waiting Bool) - (top.usr.physical_units_ready Bool) - (top.usr.stop_request Bool) - (top.usr.steam Int) - (top.usr.level_defect Int) - (top.usr.steam_defect Int) - (top.usr.pump_defect_0 Int) - (top.usr.pump_defect_1 Int) - (top.usr.pump_defect_2 Int) - (top.usr.pump_defect_3 Int) - (top.usr.pump_control_defect_0 Int) - (top.usr.pump_control_defect_1 Int) - (top.usr.pump_control_defect_2 Int) - (top.usr.pump_control_defect_3 Int) - (top.usr.q Int) - (top.usr.pump_state_0 Int) - (top.usr.pump_state_1 Int) - (top.usr.pump_state_2 Int) - (top.usr.pump_state_3 Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.op_mode Int) - (top.res.abs_0 Int) - (top.res.abs_1 Bool) - (top.res.inst_52 Bool) - (top.res.inst_51 Int) - (top.res.inst_50 Bool) - (top.res.inst_49 Bool) - (top.res.inst_48 Bool) - (top.res.inst_47 Bool) - (top.res.inst_46 Bool) - (top.res.inst_45 Bool) - (top.res.inst_44 Bool) - (top.res.inst_43 Bool) - (top.res.inst_42 Bool) - (top.res.inst_41 Bool) - (top.res.inst_40 Bool) - (top.res.inst_39 Bool) - (top.res.inst_38 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.steam_boiler_waiting Bool) -(declare-primed-var top.usr.physical_units_ready Bool) -(declare-primed-var top.usr.stop_request Bool) -(declare-primed-var top.usr.steam Int) -(declare-primed-var top.usr.level_defect Int) -(declare-primed-var top.usr.steam_defect Int) -(declare-primed-var top.usr.pump_defect_0 Int) -(declare-primed-var top.usr.pump_defect_1 Int) -(declare-primed-var top.usr.pump_defect_2 Int) -(declare-primed-var top.usr.pump_defect_3 Int) -(declare-primed-var top.usr.pump_control_defect_0 Int) -(declare-primed-var top.usr.pump_control_defect_1 Int) -(declare-primed-var top.usr.pump_control_defect_2 Int) -(declare-primed-var top.usr.pump_control_defect_3 Int) -(declare-primed-var top.usr.q Int) -(declare-primed-var top.usr.pump_state_0 Int) -(declare-primed-var top.usr.pump_state_1 Int) -(declare-primed-var top.usr.pump_state_2 Int) -(declare-primed-var top.usr.pump_state_3 Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.op_mode Int) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.inst_52 Bool) -(declare-primed-var top.res.inst_51 Int) -(declare-primed-var top.res.inst_50 Bool) -(declare-primed-var top.res.inst_49 Bool) -(declare-primed-var top.res.inst_48 Bool) -(declare-primed-var top.res.inst_47 Bool) -(declare-primed-var top.res.inst_46 Bool) -(declare-primed-var top.res.inst_45 Bool) -(declare-primed-var top.res.inst_44 Bool) -(declare-primed-var top.res.inst_43 Bool) -(declare-primed-var top.res.inst_42 Bool) -(declare-primed-var top.res.inst_41 Bool) -(declare-primed-var top.res.inst_40 Bool) -(declare-primed-var top.res.inst_39 Bool) -(declare-primed-var top.res.inst_38 Bool) -(declare-primed-var top.res.inst_37 Bool) -(declare-primed-var top.res.inst_36 Bool) -(declare-primed-var top.res.inst_35 Bool) -(declare-primed-var top.res.inst_34 Bool) -(declare-primed-var top.res.inst_33 Bool) -(declare-primed-var top.res.inst_32 Bool) -(declare-primed-var top.res.inst_31 Bool) -(declare-primed-var top.res.inst_30 Bool) -(declare-primed-var top.res.inst_29 Bool) -(declare-primed-var top.res.inst_28 Bool) -(declare-primed-var top.res.inst_27 Bool) -(declare-primed-var top.res.inst_26 Bool) -(declare-primed-var top.res.inst_25 Bool) -(declare-primed-var top.res.inst_24 Bool) -(declare-primed-var top.res.inst_23 Bool) -(declare-primed-var top.res.inst_22 Bool) -(declare-primed-var top.res.inst_21 Bool) -(declare-primed-var top.res.inst_20 Bool) -(declare-primed-var top.res.inst_19 Bool) -(declare-primed-var top.res.inst_18 Bool) -(declare-primed-var top.res.inst_17 Bool) -(declare-primed-var top.res.inst_16 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Bool) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Bool) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Bool) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.steam_boiler_waiting Bool) - (top.usr.physical_units_ready Bool) - (top.usr.stop_request Bool) - (top.usr.steam Int) - (top.usr.level_defect Int) - (top.usr.steam_defect Int) - (top.usr.pump_defect_0 Int) - (top.usr.pump_defect_1 Int) - (top.usr.pump_defect_2 Int) - (top.usr.pump_defect_3 Int) - (top.usr.pump_control_defect_0 Int) - (top.usr.pump_control_defect_1 Int) - (top.usr.pump_control_defect_2 Int) - (top.usr.pump_control_defect_3 Int) - (top.usr.q Int) - (top.usr.pump_state_0 Int) - (top.usr.pump_state_1 Int) - (top.usr.pump_state_2 Int) - (top.usr.pump_state_3 Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.op_mode Int) - (top.res.abs_0 Int) - (top.res.abs_1 Bool) - (top.res.inst_52 Bool) - (top.res.inst_51 Int) - (top.res.inst_50 Bool) - (top.res.inst_49 Bool) - (top.res.inst_48 Bool) - (top.res.inst_47 Bool) - (top.res.inst_46 Bool) - (top.res.inst_45 Bool) - (top.res.inst_44 Bool) - (top.res.inst_43 Bool) - (top.res.inst_42 Bool) - (top.res.inst_41 Bool) - (top.res.inst_40 Bool) - (top.res.inst_39 Bool) - (top.res.inst_38 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.impl.usr.op_mode top.res.abs_0) - (let - ((X1 Bool (=> (= top.impl.usr.op_mode 3) (not top.usr.stop_request)))) - (let - ((X2 Bool true)) - (and - (= top.usr.OK (and X2 X1)) - (__node_init_ControlMode_0 - top.usr.steam_boiler_waiting - top.usr.physical_units_ready - top.usr.stop_request - top.usr.steam - top.usr.level_defect - top.usr.steam_defect - top.usr.pump_defect_0 - top.usr.pump_defect_1 - top.usr.pump_defect_2 - top.usr.pump_defect_3 - top.usr.pump_control_defect_0 - top.usr.pump_control_defect_1 - top.usr.pump_control_defect_2 - top.usr.pump_control_defect_3 - top.usr.q - top.usr.pump_state_0 - top.usr.pump_state_1 - top.usr.pump_state_2 - top.usr.pump_state_3 - top.res.nondet_0 - top.res.abs_0 - top.res.inst_52 - top.res.inst_51 - top.res.inst_50 - top.res.inst_49 - top.res.inst_48 - top.res.inst_47 - top.res.inst_46 - top.res.inst_45 - top.res.inst_44 - top.res.inst_43 - top.res.inst_42 - top.res.inst_41 - top.res.inst_40 - top.res.inst_39 - top.res.inst_38 - top.res.inst_37 - top.res.inst_36 - top.res.inst_35 - top.res.inst_34 - top.res.inst_33 - top.res.inst_32 - top.res.inst_31 - top.res.inst_30 - top.res.inst_29 - top.res.inst_28 - top.res.inst_27 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_init_dangerous_level_0 top.usr.q top.res.abs_1 top.res.inst_0) - (<= 1 top.impl.usr.op_mode 6) - (<= 1 top.res.abs_0 6) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.steam_boiler_waiting Bool) - (top.usr.physical_units_ready Bool) - (top.usr.stop_request Bool) - (top.usr.steam Int) - (top.usr.level_defect Int) - (top.usr.steam_defect Int) - (top.usr.pump_defect_0 Int) - (top.usr.pump_defect_1 Int) - (top.usr.pump_defect_2 Int) - (top.usr.pump_defect_3 Int) - (top.usr.pump_control_defect_0 Int) - (top.usr.pump_control_defect_1 Int) - (top.usr.pump_control_defect_2 Int) - (top.usr.pump_control_defect_3 Int) - (top.usr.q Int) - (top.usr.pump_state_0 Int) - (top.usr.pump_state_1 Int) - (top.usr.pump_state_2 Int) - (top.usr.pump_state_3 Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.op_mode Int) - (top.res.abs_0 Int) - (top.res.abs_1 Bool) - (top.res.inst_52 Bool) - (top.res.inst_51 Int) - (top.res.inst_50 Bool) - (top.res.inst_49 Bool) - (top.res.inst_48 Bool) - (top.res.inst_47 Bool) - (top.res.inst_46 Bool) - (top.res.inst_45 Bool) - (top.res.inst_44 Bool) - (top.res.inst_43 Bool) - (top.res.inst_42 Bool) - (top.res.inst_41 Bool) - (top.res.inst_40 Bool) - (top.res.inst_39 Bool) - (top.res.inst_38 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.steam_boiler_waiting! Bool) - (top.usr.physical_units_ready! Bool) - (top.usr.stop_request! Bool) - (top.usr.steam! Int) - (top.usr.level_defect! Int) - (top.usr.steam_defect! Int) - (top.usr.pump_defect_0! Int) - (top.usr.pump_defect_1! Int) - (top.usr.pump_defect_2! Int) - (top.usr.pump_defect_3! Int) - (top.usr.pump_control_defect_0! Int) - (top.usr.pump_control_defect_1! Int) - (top.usr.pump_control_defect_2! Int) - (top.usr.pump_control_defect_3! Int) - (top.usr.q! Int) - (top.usr.pump_state_0! Int) - (top.usr.pump_state_1! Int) - (top.usr.pump_state_2! Int) - (top.usr.pump_state_3! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.op_mode! Int) - (top.res.abs_0! Int) - (top.res.abs_1! Bool) - (top.res.inst_52! Bool) - (top.res.inst_51! Int) - (top.res.inst_50! Bool) - (top.res.inst_49! Bool) - (top.res.inst_48! Bool) - (top.res.inst_47! Bool) - (top.res.inst_46! Bool) - (top.res.inst_45! Bool) - (top.res.inst_44! Bool) - (top.res.inst_43! Bool) - (top.res.inst_42! Bool) - (top.res.inst_41! Bool) - (top.res.inst_40! Bool) - (top.res.inst_39! Bool) - (top.res.inst_38! Bool) - (top.res.inst_37! Bool) - (top.res.inst_36! Bool) - (top.res.inst_35! Bool) - (top.res.inst_34! Bool) - (top.res.inst_33! Bool) - (top.res.inst_32! Bool) - (top.res.inst_31! Bool) - (top.res.inst_30! Bool) - (top.res.inst_29! Bool) - (top.res.inst_28! Bool) - (top.res.inst_27! Bool) - (top.res.inst_26! Bool) - (top.res.inst_25! Bool) - (top.res.inst_24! Bool) - (top.res.inst_23! Bool) - (top.res.inst_22! Bool) - (top.res.inst_21! Bool) - (top.res.inst_20! Bool) - (top.res.inst_19! Bool) - (top.res.inst_18! Bool) - (top.res.inst_17! Bool) - (top.res.inst_16! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Bool) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Bool) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Bool) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.impl.usr.op_mode! top.res.abs_0!) - (let - ((X1 Bool (=> (= top.impl.usr.op_mode! 3) (not top.usr.stop_request!)))) - (let - ((X2 - Bool (=> - (and (= top.impl.usr.op_mode! 3) (= top.impl.usr.op_mode 3)) - (not top.res.abs_1!)))) - (and - (= top.usr.OK! (and X2 X1)) - (__node_trans_ControlMode_0 - top.usr.steam_boiler_waiting! - top.usr.physical_units_ready! - top.usr.stop_request! - top.usr.steam! - top.usr.level_defect! - top.usr.steam_defect! - top.usr.pump_defect_0! - top.usr.pump_defect_1! - top.usr.pump_defect_2! - top.usr.pump_defect_3! - top.usr.pump_control_defect_0! - top.usr.pump_control_defect_1! - top.usr.pump_control_defect_2! - top.usr.pump_control_defect_3! - top.usr.q! - top.usr.pump_state_0! - top.usr.pump_state_1! - top.usr.pump_state_2! - top.usr.pump_state_3! - top.res.nondet_0 - top.res.abs_0! - top.res.inst_52! - top.res.inst_51! - top.res.inst_50! - top.res.inst_49! - top.res.inst_48! - top.res.inst_47! - top.res.inst_46! - top.res.inst_45! - top.res.inst_44! - top.res.inst_43! - top.res.inst_42! - top.res.inst_41! - top.res.inst_40! - top.res.inst_39! - top.res.inst_38! - top.res.inst_37! - top.res.inst_36! - top.res.inst_35! - top.res.inst_34! - top.res.inst_33! - top.res.inst_32! - top.res.inst_31! - top.res.inst_30! - top.res.inst_29! - top.res.inst_28! - top.res.inst_27! - top.res.inst_26! - top.res.inst_25! - top.res.inst_24! - top.res.inst_23! - top.res.inst_22! - top.res.inst_21! - top.res.inst_20! - top.res.inst_19! - top.res.inst_18! - top.res.inst_17! - top.res.inst_16! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.usr.steam_boiler_waiting - top.usr.physical_units_ready - top.usr.stop_request - top.usr.steam - top.usr.level_defect - top.usr.steam_defect - top.usr.pump_defect_0 - top.usr.pump_defect_1 - top.usr.pump_defect_2 - top.usr.pump_defect_3 - top.usr.pump_control_defect_0 - top.usr.pump_control_defect_1 - top.usr.pump_control_defect_2 - top.usr.pump_control_defect_3 - top.usr.q - top.usr.pump_state_0 - top.usr.pump_state_1 - top.usr.pump_state_2 - top.usr.pump_state_3 - top.res.abs_0 - top.res.inst_52 - top.res.inst_51 - top.res.inst_50 - top.res.inst_49 - top.res.inst_48 - top.res.inst_47 - top.res.inst_46 - top.res.inst_45 - top.res.inst_44 - top.res.inst_43 - top.res.inst_42 - top.res.inst_41 - top.res.inst_40 - top.res.inst_39 - top.res.inst_38 - top.res.inst_37 - top.res.inst_36 - top.res.inst_35 - top.res.inst_34 - top.res.inst_33 - top.res.inst_32 - top.res.inst_31 - top.res.inst_30 - top.res.inst_29 - top.res.inst_28 - top.res.inst_27 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_trans_dangerous_level_0 - top.usr.q! - top.res.abs_1! - top.res.inst_0! - top.usr.q - top.res.abs_1 - top.res.inst_0) - (<= 1 top.impl.usr.op_mode! 6) - (<= 1 top.res.abs_0! 6) - (not top.res.init_flag!))))) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.steam_boiler_waiting Bool) - (top.usr.physical_units_ready Bool) - (top.usr.stop_request Bool) - (top.usr.steam Int) - (top.usr.level_defect Int) - (top.usr.steam_defect Int) - (top.usr.pump_defect_0 Int) - (top.usr.pump_defect_1 Int) - (top.usr.pump_defect_2 Int) - (top.usr.pump_defect_3 Int) - (top.usr.pump_control_defect_0 Int) - (top.usr.pump_control_defect_1 Int) - (top.usr.pump_control_defect_2 Int) - (top.usr.pump_control_defect_3 Int) - (top.usr.q Int) - (top.usr.pump_state_0 Int) - (top.usr.pump_state_1 Int) - (top.usr.pump_state_2 Int) - (top.usr.pump_state_3 Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.op_mode Int) - (top.res.abs_0 Int) - (top.res.abs_1 Bool) - (top.res.inst_52 Bool) - (top.res.inst_51 Int) - (top.res.inst_50 Bool) - (top.res.inst_49 Bool) - (top.res.inst_48 Bool) - (top.res.inst_47 Bool) - (top.res.inst_46 Bool) - (top.res.inst_45 Bool) - (top.res.inst_44 Bool) - (top.res.inst_43 Bool) - (top.res.inst_42 Bool) - (top.res.inst_41 Bool) - (top.res.inst_40 Bool) - (top.res.inst_39 Bool) - (top.res.inst_38 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_dangerous_level_0 ((dangerous_level.usr.q_a_0 Int) (dangerous_level.usr.dangerous_level_a_0 Bool) (dangerous_level.res.init_flag_a_0 Bool)) Bool + (and (= dangerous_level.usr.dangerous_level_a_0 (or (<= dangerous_level.usr.q_a_0 150) (>= dangerous_level.usr.q_a_0 850))) dangerous_level.res.init_flag_a_0)) +(define-fun __node_trans_dangerous_level_0 ((dangerous_level.usr.q_a_1 Int) (dangerous_level.usr.dangerous_level_a_1 Bool) (dangerous_level.res.init_flag_a_1 Bool) (dangerous_level.usr.q_a_0 Int) (dangerous_level.usr.dangerous_level_a_0 Bool) (dangerous_level.res.init_flag_a_0 Bool)) Bool + (and (= dangerous_level.usr.dangerous_level_a_1 (or (<= dangerous_level.usr.q_a_1 150) (>= dangerous_level.usr.q_a_1 850))) (not dangerous_level.res.init_flag_a_1))) +(define-fun __node_init_level_failure_0 ((level_failure.usr.level_defect_a_0 Int) (level_failure.usr.level_failure_a_0 Bool) (level_failure.res.init_flag_a_0 Bool)) Bool + (and (= level_failure.usr.level_failure_a_0 (not (= level_failure.usr.level_defect_a_0 0))) level_failure.res.init_flag_a_0)) +(define-fun __node_trans_level_failure_0 ((level_failure.usr.level_defect_a_1 Int) (level_failure.usr.level_failure_a_1 Bool) (level_failure.res.init_flag_a_1 Bool) (level_failure.usr.level_defect_a_0 Int) (level_failure.usr.level_failure_a_0 Bool) (level_failure.res.init_flag_a_0 Bool)) Bool + (and (= level_failure.usr.level_failure_a_1 (not (= level_failure.usr.level_defect_a_1 0))) (not level_failure.res.init_flag_a_1))) +(define-fun __node_init_steam_failure_0 ((steam_failure.usr.steam_defect_a_0 Int) (steam_failure.usr.steam_failure_a_0 Bool) (steam_failure.res.init_flag_a_0 Bool)) Bool + (and (= steam_failure.usr.steam_failure_a_0 (not (= steam_failure.usr.steam_defect_a_0 0))) steam_failure.res.init_flag_a_0)) +(define-fun __node_trans_steam_failure_0 ((steam_failure.usr.steam_defect_a_1 Int) (steam_failure.usr.steam_failure_a_1 Bool) (steam_failure.res.init_flag_a_1 Bool) (steam_failure.usr.steam_defect_a_0 Int) (steam_failure.usr.steam_failure_a_0 Bool) (steam_failure.res.init_flag_a_0 Bool)) Bool + (and (= steam_failure.usr.steam_failure_a_1 (not (= steam_failure.usr.steam_defect_a_1 0))) (not steam_failure.res.init_flag_a_1))) +(define-fun __node_init_OR_0 ((OR.usr.a_0_a_0 Bool) (OR.usr.a_1_a_0 Bool) (OR.usr.a_2_a_0 Bool) (OR.usr.a_3_a_0 Bool) (OR.usr.OR_a_0 Bool) (OR.res.init_flag_a_0 Bool)) Bool + (and (= OR.usr.OR_a_0 (or (or (or OR.usr.a_0_a_0 OR.usr.a_1_a_0) OR.usr.a_2_a_0) OR.usr.a_3_a_0)) OR.res.init_flag_a_0)) +(define-fun __node_trans_OR_0 ((OR.usr.a_0_a_1 Bool) (OR.usr.a_1_a_1 Bool) (OR.usr.a_2_a_1 Bool) (OR.usr.a_3_a_1 Bool) (OR.usr.OR_a_1 Bool) (OR.res.init_flag_a_1 Bool) (OR.usr.a_0_a_0 Bool) (OR.usr.a_1_a_0 Bool) (OR.usr.a_2_a_0 Bool) (OR.usr.a_3_a_0 Bool) (OR.usr.OR_a_0 Bool) (OR.res.init_flag_a_0 Bool)) Bool + (and (= OR.usr.OR_a_1 (or (or (or OR.usr.a_0_a_1 OR.usr.a_1_a_1) OR.usr.a_2_a_1) OR.usr.a_3_a_1)) (not OR.res.init_flag_a_1))) +(define-fun __node_init_pump_control_failure_0 ((pump_control_failure.usr.pump_defect_a_0 Int) (pump_control_failure.usr.pump_failure_a_0 Bool) (pump_control_failure.res.init_flag_a_0 Bool)) Bool + (and (= pump_control_failure.usr.pump_failure_a_0 (not (= pump_control_failure.usr.pump_defect_a_0 0))) pump_control_failure.res.init_flag_a_0)) +(define-fun __node_trans_pump_control_failure_0 ((pump_control_failure.usr.pump_defect_a_1 Int) (pump_control_failure.usr.pump_failure_a_1 Bool) (pump_control_failure.res.init_flag_a_1 Bool) (pump_control_failure.usr.pump_defect_a_0 Int) (pump_control_failure.usr.pump_failure_a_0 Bool) (pump_control_failure.res.init_flag_a_0 Bool)) Bool + (and (= pump_control_failure.usr.pump_failure_a_1 (not (= pump_control_failure.usr.pump_defect_a_1 0))) (not pump_control_failure.res.init_flag_a_1))) +(define-fun __node_init_pump_failure_0 ((pump_failure.usr.pump_defect_a_0 Int) (pump_failure.usr.pump_failure_a_0 Bool) (pump_failure.res.init_flag_a_0 Bool)) Bool + (and (= pump_failure.usr.pump_failure_a_0 (not (= pump_failure.usr.pump_defect_a_0 0))) pump_failure.res.init_flag_a_0)) +(define-fun __node_trans_pump_failure_0 ((pump_failure.usr.pump_defect_a_1 Int) (pump_failure.usr.pump_failure_a_1 Bool) (pump_failure.res.init_flag_a_1 Bool) (pump_failure.usr.pump_defect_a_0 Int) (pump_failure.usr.pump_failure_a_0 Bool) (pump_failure.res.init_flag_a_0 Bool)) Bool + (and (= pump_failure.usr.pump_failure_a_1 (not (= pump_failure.usr.pump_defect_a_1 0))) (not pump_failure.res.init_flag_a_1))) +(define-fun __node_init_failure_0 ((failure.usr.level_defect_a_0 Int) (failure.usr.steam_defect_a_0 Int) (failure.usr.pump_defect_0_a_0 Int) (failure.usr.pump_defect_1_a_0 Int) (failure.usr.pump_defect_2_a_0 Int) (failure.usr.pump_defect_3_a_0 Int) (failure.usr.pump_control_defect_0_a_0 Int) (failure.usr.pump_control_defect_1_a_0 Int) (failure.usr.pump_control_defect_2_a_0 Int) (failure.usr.pump_control_defect_3_a_0 Int) (failure.usr.failure_a_0 Bool) (failure.res.init_flag_a_0 Bool) (failure.res.abs_0_a_0 Bool) (failure.res.abs_1_a_0 Bool) (failure.res.abs_2_a_0 Bool) (failure.res.abs_3_a_0 Bool) (failure.res.abs_4_a_0 Bool) (failure.res.abs_5_a_0 Bool) (failure.res.abs_6_a_0 Bool) (failure.res.abs_7_a_0 Bool) (failure.res.abs_8_a_0 Bool) (failure.res.abs_9_a_0 Bool) (failure.res.abs_10_a_0 Bool) (failure.res.abs_11_a_0 Bool) (failure.res.inst_11_a_0 Bool) (failure.res.inst_10_a_0 Bool) (failure.res.inst_9_a_0 Bool) (failure.res.inst_8_a_0 Bool) (failure.res.inst_7_a_0 Bool) (failure.res.inst_6_a_0 Bool) (failure.res.inst_5_a_0 Bool) (failure.res.inst_4_a_0 Bool) (failure.res.inst_3_a_0 Bool) (failure.res.inst_2_a_0 Bool) (failure.res.inst_1_a_0 Bool) (failure.res.inst_0_a_0 Bool)) Bool + (and (= failure.usr.failure_a_0 (or (or (or failure.res.abs_0_a_0 failure.res.abs_1_a_0) failure.res.abs_6_a_0) failure.res.abs_11_a_0)) (__node_init_level_failure_0 failure.usr.level_defect_a_0 failure.res.abs_0_a_0 failure.res.inst_11_a_0) (__node_init_steam_failure_0 failure.usr.steam_defect_a_0 failure.res.abs_1_a_0 failure.res.inst_10_a_0) (__node_init_OR_0 failure.res.abs_2_a_0 failure.res.abs_3_a_0 failure.res.abs_4_a_0 failure.res.abs_5_a_0 failure.res.abs_6_a_0 failure.res.inst_9_a_0) (__node_init_pump_failure_0 failure.usr.pump_defect_0_a_0 failure.res.abs_2_a_0 failure.res.inst_8_a_0) (__node_init_pump_failure_0 failure.usr.pump_defect_1_a_0 failure.res.abs_3_a_0 failure.res.inst_7_a_0) (__node_init_pump_failure_0 failure.usr.pump_defect_2_a_0 failure.res.abs_4_a_0 failure.res.inst_6_a_0) (__node_init_pump_failure_0 failure.usr.pump_defect_3_a_0 failure.res.abs_5_a_0 failure.res.inst_5_a_0) (__node_init_OR_0 failure.res.abs_7_a_0 failure.res.abs_8_a_0 failure.res.abs_9_a_0 failure.res.abs_10_a_0 failure.res.abs_11_a_0 failure.res.inst_4_a_0) (__node_init_pump_control_failure_0 failure.usr.pump_control_defect_0_a_0 failure.res.abs_7_a_0 failure.res.inst_3_a_0) (__node_init_pump_control_failure_0 failure.usr.pump_control_defect_1_a_0 failure.res.abs_8_a_0 failure.res.inst_2_a_0) (__node_init_pump_control_failure_0 failure.usr.pump_control_defect_2_a_0 failure.res.abs_9_a_0 failure.res.inst_1_a_0) (__node_init_pump_control_failure_0 failure.usr.pump_control_defect_3_a_0 failure.res.abs_10_a_0 failure.res.inst_0_a_0) failure.res.init_flag_a_0)) +(define-fun __node_trans_failure_0 ((failure.usr.level_defect_a_1 Int) (failure.usr.steam_defect_a_1 Int) (failure.usr.pump_defect_0_a_1 Int) (failure.usr.pump_defect_1_a_1 Int) (failure.usr.pump_defect_2_a_1 Int) (failure.usr.pump_defect_3_a_1 Int) (failure.usr.pump_control_defect_0_a_1 Int) (failure.usr.pump_control_defect_1_a_1 Int) (failure.usr.pump_control_defect_2_a_1 Int) (failure.usr.pump_control_defect_3_a_1 Int) (failure.usr.failure_a_1 Bool) (failure.res.init_flag_a_1 Bool) (failure.res.abs_0_a_1 Bool) (failure.res.abs_1_a_1 Bool) (failure.res.abs_2_a_1 Bool) (failure.res.abs_3_a_1 Bool) (failure.res.abs_4_a_1 Bool) (failure.res.abs_5_a_1 Bool) (failure.res.abs_6_a_1 Bool) (failure.res.abs_7_a_1 Bool) (failure.res.abs_8_a_1 Bool) (failure.res.abs_9_a_1 Bool) (failure.res.abs_10_a_1 Bool) (failure.res.abs_11_a_1 Bool) (failure.res.inst_11_a_1 Bool) (failure.res.inst_10_a_1 Bool) (failure.res.inst_9_a_1 Bool) (failure.res.inst_8_a_1 Bool) (failure.res.inst_7_a_1 Bool) (failure.res.inst_6_a_1 Bool) (failure.res.inst_5_a_1 Bool) (failure.res.inst_4_a_1 Bool) (failure.res.inst_3_a_1 Bool) (failure.res.inst_2_a_1 Bool) (failure.res.inst_1_a_1 Bool) (failure.res.inst_0_a_1 Bool) (failure.usr.level_defect_a_0 Int) (failure.usr.steam_defect_a_0 Int) (failure.usr.pump_defect_0_a_0 Int) (failure.usr.pump_defect_1_a_0 Int) (failure.usr.pump_defect_2_a_0 Int) (failure.usr.pump_defect_3_a_0 Int) (failure.usr.pump_control_defect_0_a_0 Int) (failure.usr.pump_control_defect_1_a_0 Int) (failure.usr.pump_control_defect_2_a_0 Int) (failure.usr.pump_control_defect_3_a_0 Int) (failure.usr.failure_a_0 Bool) (failure.res.init_flag_a_0 Bool) (failure.res.abs_0_a_0 Bool) (failure.res.abs_1_a_0 Bool) (failure.res.abs_2_a_0 Bool) (failure.res.abs_3_a_0 Bool) (failure.res.abs_4_a_0 Bool) (failure.res.abs_5_a_0 Bool) (failure.res.abs_6_a_0 Bool) (failure.res.abs_7_a_0 Bool) (failure.res.abs_8_a_0 Bool) (failure.res.abs_9_a_0 Bool) (failure.res.abs_10_a_0 Bool) (failure.res.abs_11_a_0 Bool) (failure.res.inst_11_a_0 Bool) (failure.res.inst_10_a_0 Bool) (failure.res.inst_9_a_0 Bool) (failure.res.inst_8_a_0 Bool) (failure.res.inst_7_a_0 Bool) (failure.res.inst_6_a_0 Bool) (failure.res.inst_5_a_0 Bool) (failure.res.inst_4_a_0 Bool) (failure.res.inst_3_a_0 Bool) (failure.res.inst_2_a_0 Bool) (failure.res.inst_1_a_0 Bool) (failure.res.inst_0_a_0 Bool)) Bool + (and (= failure.usr.failure_a_1 (or (or (or failure.res.abs_0_a_1 failure.res.abs_1_a_1) failure.res.abs_6_a_1) failure.res.abs_11_a_1)) (__node_trans_level_failure_0 failure.usr.level_defect_a_1 failure.res.abs_0_a_1 failure.res.inst_11_a_1 failure.usr.level_defect_a_0 failure.res.abs_0_a_0 failure.res.inst_11_a_0) (__node_trans_steam_failure_0 failure.usr.steam_defect_a_1 failure.res.abs_1_a_1 failure.res.inst_10_a_1 failure.usr.steam_defect_a_0 failure.res.abs_1_a_0 failure.res.inst_10_a_0) (__node_trans_OR_0 failure.res.abs_2_a_1 failure.res.abs_3_a_1 failure.res.abs_4_a_1 failure.res.abs_5_a_1 failure.res.abs_6_a_1 failure.res.inst_9_a_1 failure.res.abs_2_a_0 failure.res.abs_3_a_0 failure.res.abs_4_a_0 failure.res.abs_5_a_0 failure.res.abs_6_a_0 failure.res.inst_9_a_0) (__node_trans_pump_failure_0 failure.usr.pump_defect_0_a_1 failure.res.abs_2_a_1 failure.res.inst_8_a_1 failure.usr.pump_defect_0_a_0 failure.res.abs_2_a_0 failure.res.inst_8_a_0) (__node_trans_pump_failure_0 failure.usr.pump_defect_1_a_1 failure.res.abs_3_a_1 failure.res.inst_7_a_1 failure.usr.pump_defect_1_a_0 failure.res.abs_3_a_0 failure.res.inst_7_a_0) (__node_trans_pump_failure_0 failure.usr.pump_defect_2_a_1 failure.res.abs_4_a_1 failure.res.inst_6_a_1 failure.usr.pump_defect_2_a_0 failure.res.abs_4_a_0 failure.res.inst_6_a_0) (__node_trans_pump_failure_0 failure.usr.pump_defect_3_a_1 failure.res.abs_5_a_1 failure.res.inst_5_a_1 failure.usr.pump_defect_3_a_0 failure.res.abs_5_a_0 failure.res.inst_5_a_0) (__node_trans_OR_0 failure.res.abs_7_a_1 failure.res.abs_8_a_1 failure.res.abs_9_a_1 failure.res.abs_10_a_1 failure.res.abs_11_a_1 failure.res.inst_4_a_1 failure.res.abs_7_a_0 failure.res.abs_8_a_0 failure.res.abs_9_a_0 failure.res.abs_10_a_0 failure.res.abs_11_a_0 failure.res.inst_4_a_0) (__node_trans_pump_control_failure_0 failure.usr.pump_control_defect_0_a_1 failure.res.abs_7_a_1 failure.res.inst_3_a_1 failure.usr.pump_control_defect_0_a_0 failure.res.abs_7_a_0 failure.res.inst_3_a_0) (__node_trans_pump_control_failure_0 failure.usr.pump_control_defect_1_a_1 failure.res.abs_8_a_1 failure.res.inst_2_a_1 failure.usr.pump_control_defect_1_a_0 failure.res.abs_8_a_0 failure.res.inst_2_a_0) (__node_trans_pump_control_failure_0 failure.usr.pump_control_defect_2_a_1 failure.res.abs_9_a_1 failure.res.inst_1_a_1 failure.usr.pump_control_defect_2_a_0 failure.res.abs_9_a_0 failure.res.inst_1_a_0) (__node_trans_pump_control_failure_0 failure.usr.pump_control_defect_3_a_1 failure.res.abs_10_a_1 failure.res.inst_0_a_1 failure.usr.pump_control_defect_3_a_0 failure.res.abs_10_a_0 failure.res.inst_0_a_0) (not failure.res.init_flag_a_1))) +(define-fun __node_init_steam_failure_startup_0 ((steam_failure_startup.usr.steam_a_0 Int) (steam_failure_startup.usr.steam_failure_startup_a_0 Bool) (steam_failure_startup.res.init_flag_a_0 Bool)) Bool + (and (= steam_failure_startup.usr.steam_failure_startup_a_0 (not (= steam_failure_startup.usr.steam_a_0 0))) steam_failure_startup.res.init_flag_a_0)) +(define-fun __node_trans_steam_failure_startup_0 ((steam_failure_startup.usr.steam_a_1 Int) (steam_failure_startup.usr.steam_failure_startup_a_1 Bool) (steam_failure_startup.res.init_flag_a_1 Bool) (steam_failure_startup.usr.steam_a_0 Int) (steam_failure_startup.usr.steam_failure_startup_a_0 Bool) (steam_failure_startup.res.init_flag_a_0 Bool)) Bool + (and (= steam_failure_startup.usr.steam_failure_startup_a_1 (not (= steam_failure_startup.usr.steam_a_1 0))) (not steam_failure_startup.res.init_flag_a_1))) +(define-fun __node_init_AND_0 ((AND.usr.a_0_a_0 Bool) (AND.usr.a_1_a_0 Bool) (AND.usr.a_2_a_0 Bool) (AND.usr.a_3_a_0 Bool) (AND.usr.AND_a_0 Bool) (AND.res.init_flag_a_0 Bool)) Bool + (and (= AND.usr.AND_a_0 (and (and (and AND.usr.a_0_a_0 AND.usr.a_1_a_0) AND.usr.a_2_a_0) AND.usr.a_3_a_0)) AND.res.init_flag_a_0)) +(define-fun __node_trans_AND_0 ((AND.usr.a_0_a_1 Bool) (AND.usr.a_1_a_1 Bool) (AND.usr.a_2_a_1 Bool) (AND.usr.a_3_a_1 Bool) (AND.usr.AND_a_1 Bool) (AND.res.init_flag_a_1 Bool) (AND.usr.a_0_a_0 Bool) (AND.usr.a_1_a_0 Bool) (AND.usr.a_2_a_0 Bool) (AND.usr.a_3_a_0 Bool) (AND.usr.AND_a_0 Bool) (AND.res.init_flag_a_0 Bool)) Bool + (and (= AND.usr.AND_a_1 (and (and (and AND.usr.a_0_a_1 AND.usr.a_1_a_1) AND.usr.a_2_a_1) AND.usr.a_3_a_1)) (not AND.res.init_flag_a_1))) +(define-fun __node_init_transmission_failure_0 ((transmission_failure.usr.pump_state_0_a_0 Int) (transmission_failure.usr.pump_state_1_a_0 Int) (transmission_failure.usr.pump_state_2_a_0 Int) (transmission_failure.usr.pump_state_3_a_0 Int) (transmission_failure.usr.transmission_failure_a_0 Bool) (transmission_failure.res.init_flag_a_0 Bool)) Bool + (and (= transmission_failure.usr.transmission_failure_a_0 (or (or (or (= transmission_failure.usr.pump_state_0_a_0 3) (= transmission_failure.usr.pump_state_1_a_0 3)) (= transmission_failure.usr.pump_state_2_a_0 3)) (= transmission_failure.usr.pump_state_3_a_0 3))) transmission_failure.res.init_flag_a_0)) +(define-fun __node_trans_transmission_failure_0 ((transmission_failure.usr.pump_state_0_a_1 Int) (transmission_failure.usr.pump_state_1_a_1 Int) (transmission_failure.usr.pump_state_2_a_1 Int) (transmission_failure.usr.pump_state_3_a_1 Int) (transmission_failure.usr.transmission_failure_a_1 Bool) (transmission_failure.res.init_flag_a_1 Bool) (transmission_failure.usr.pump_state_0_a_0 Int) (transmission_failure.usr.pump_state_1_a_0 Int) (transmission_failure.usr.pump_state_2_a_0 Int) (transmission_failure.usr.pump_state_3_a_0 Int) (transmission_failure.usr.transmission_failure_a_0 Bool) (transmission_failure.res.init_flag_a_0 Bool)) Bool + (and (= transmission_failure.usr.transmission_failure_a_1 (or (or (or (= transmission_failure.usr.pump_state_0_a_1 3) (= transmission_failure.usr.pump_state_1_a_1 3)) (= transmission_failure.usr.pump_state_2_a_1 3)) (= transmission_failure.usr.pump_state_3_a_1 3))) (not transmission_failure.res.init_flag_a_1))) +(define-fun __node_init_critical_failure_0 ((critical_failure.usr.op_mode_a_0 Int) (critical_failure.usr.steam_a_0 Int) (critical_failure.usr.level_defect_a_0 Int) (critical_failure.usr.steam_defect_a_0 Int) (critical_failure.usr.pump_defect_0_a_0 Int) (critical_failure.usr.pump_defect_1_a_0 Int) (critical_failure.usr.pump_defect_2_a_0 Int) (critical_failure.usr.pump_defect_3_a_0 Int) (critical_failure.usr.q_a_0 Int) (critical_failure.usr.pump_state_0_a_0 Int) (critical_failure.usr.pump_state_1_a_0 Int) (critical_failure.usr.pump_state_2_a_0 Int) (critical_failure.usr.pump_state_3_a_0 Int) (critical_failure.usr.critical_failure_a_0 Bool) (critical_failure.res.init_flag_a_0 Bool) (critical_failure.res.abs_0_a_0 Bool) (critical_failure.res.abs_1_a_0 Bool) (critical_failure.res.abs_2_a_0 Bool) (critical_failure.res.abs_3_a_0 Bool) (critical_failure.res.abs_4_a_0 Bool) (critical_failure.res.abs_5_a_0 Bool) (critical_failure.res.abs_6_a_0 Bool) (critical_failure.res.abs_7_a_0 Bool) (critical_failure.res.abs_8_a_0 Bool) (critical_failure.res.abs_9_a_0 Bool) (critical_failure.res.inst_9_a_0 Bool) (critical_failure.res.inst_8_a_0 Bool) (critical_failure.res.inst_7_a_0 Bool) (critical_failure.res.inst_6_a_0 Bool) (critical_failure.res.inst_5_a_0 Bool) (critical_failure.res.inst_4_a_0 Bool) (critical_failure.res.inst_3_a_0 Bool) (critical_failure.res.inst_2_a_0 Bool) (critical_failure.res.inst_1_a_0 Bool) (critical_failure.res.inst_0_a_0 Bool)) Bool + (and (= critical_failure.usr.critical_failure_a_0 (or (or (or (or (or critical_failure.res.abs_0_a_0 (and (= critical_failure.usr.op_mode_a_0 1) critical_failure.res.abs_1_a_0)) (and (= critical_failure.usr.op_mode_a_0 2) (or critical_failure.res.abs_2_a_0 critical_failure.res.abs_3_a_0))) (and (= critical_failure.usr.op_mode_a_0 3) critical_failure.res.abs_4_a_0)) (and (= critical_failure.usr.op_mode_a_0 4) critical_failure.res.abs_4_a_0)) (and (= critical_failure.usr.op_mode_a_0 5) (or (or critical_failure.res.abs_4_a_0 critical_failure.res.abs_3_a_0) critical_failure.res.abs_9_a_0)))) (__node_init_transmission_failure_0 critical_failure.usr.pump_state_0_a_0 critical_failure.usr.pump_state_1_a_0 critical_failure.usr.pump_state_2_a_0 critical_failure.usr.pump_state_3_a_0 critical_failure.res.abs_0_a_0 critical_failure.res.inst_9_a_0) (__node_init_steam_failure_startup_0 critical_failure.usr.steam_a_0 critical_failure.res.abs_1_a_0 critical_failure.res.inst_8_a_0) (__node_init_level_failure_0 critical_failure.usr.level_defect_a_0 critical_failure.res.abs_2_a_0 critical_failure.res.inst_7_a_0) (__node_init_steam_failure_0 critical_failure.usr.steam_defect_a_0 critical_failure.res.abs_3_a_0 critical_failure.res.inst_6_a_0) (__node_init_dangerous_level_0 critical_failure.usr.q_a_0 critical_failure.res.abs_4_a_0 critical_failure.res.inst_5_a_0) (__node_init_AND_0 critical_failure.res.abs_5_a_0 critical_failure.res.abs_6_a_0 critical_failure.res.abs_7_a_0 critical_failure.res.abs_8_a_0 critical_failure.res.abs_9_a_0 critical_failure.res.inst_4_a_0) (__node_init_pump_failure_0 critical_failure.usr.pump_defect_0_a_0 critical_failure.res.abs_5_a_0 critical_failure.res.inst_3_a_0) (__node_init_pump_failure_0 critical_failure.usr.pump_defect_1_a_0 critical_failure.res.abs_6_a_0 critical_failure.res.inst_2_a_0) (__node_init_pump_failure_0 critical_failure.usr.pump_defect_2_a_0 critical_failure.res.abs_7_a_0 critical_failure.res.inst_1_a_0) (__node_init_pump_failure_0 critical_failure.usr.pump_defect_3_a_0 critical_failure.res.abs_8_a_0 critical_failure.res.inst_0_a_0) critical_failure.res.init_flag_a_0)) +(define-fun __node_trans_critical_failure_0 ((critical_failure.usr.op_mode_a_1 Int) (critical_failure.usr.steam_a_1 Int) (critical_failure.usr.level_defect_a_1 Int) (critical_failure.usr.steam_defect_a_1 Int) (critical_failure.usr.pump_defect_0_a_1 Int) (critical_failure.usr.pump_defect_1_a_1 Int) (critical_failure.usr.pump_defect_2_a_1 Int) (critical_failure.usr.pump_defect_3_a_1 Int) (critical_failure.usr.q_a_1 Int) (critical_failure.usr.pump_state_0_a_1 Int) (critical_failure.usr.pump_state_1_a_1 Int) (critical_failure.usr.pump_state_2_a_1 Int) (critical_failure.usr.pump_state_3_a_1 Int) (critical_failure.usr.critical_failure_a_1 Bool) (critical_failure.res.init_flag_a_1 Bool) (critical_failure.res.abs_0_a_1 Bool) (critical_failure.res.abs_1_a_1 Bool) (critical_failure.res.abs_2_a_1 Bool) (critical_failure.res.abs_3_a_1 Bool) (critical_failure.res.abs_4_a_1 Bool) (critical_failure.res.abs_5_a_1 Bool) (critical_failure.res.abs_6_a_1 Bool) (critical_failure.res.abs_7_a_1 Bool) (critical_failure.res.abs_8_a_1 Bool) (critical_failure.res.abs_9_a_1 Bool) (critical_failure.res.inst_9_a_1 Bool) (critical_failure.res.inst_8_a_1 Bool) (critical_failure.res.inst_7_a_1 Bool) (critical_failure.res.inst_6_a_1 Bool) (critical_failure.res.inst_5_a_1 Bool) (critical_failure.res.inst_4_a_1 Bool) (critical_failure.res.inst_3_a_1 Bool) (critical_failure.res.inst_2_a_1 Bool) (critical_failure.res.inst_1_a_1 Bool) (critical_failure.res.inst_0_a_1 Bool) (critical_failure.usr.op_mode_a_0 Int) (critical_failure.usr.steam_a_0 Int) (critical_failure.usr.level_defect_a_0 Int) (critical_failure.usr.steam_defect_a_0 Int) (critical_failure.usr.pump_defect_0_a_0 Int) (critical_failure.usr.pump_defect_1_a_0 Int) (critical_failure.usr.pump_defect_2_a_0 Int) (critical_failure.usr.pump_defect_3_a_0 Int) (critical_failure.usr.q_a_0 Int) (critical_failure.usr.pump_state_0_a_0 Int) (critical_failure.usr.pump_state_1_a_0 Int) (critical_failure.usr.pump_state_2_a_0 Int) (critical_failure.usr.pump_state_3_a_0 Int) (critical_failure.usr.critical_failure_a_0 Bool) (critical_failure.res.init_flag_a_0 Bool) (critical_failure.res.abs_0_a_0 Bool) (critical_failure.res.abs_1_a_0 Bool) (critical_failure.res.abs_2_a_0 Bool) (critical_failure.res.abs_3_a_0 Bool) (critical_failure.res.abs_4_a_0 Bool) (critical_failure.res.abs_5_a_0 Bool) (critical_failure.res.abs_6_a_0 Bool) (critical_failure.res.abs_7_a_0 Bool) (critical_failure.res.abs_8_a_0 Bool) (critical_failure.res.abs_9_a_0 Bool) (critical_failure.res.inst_9_a_0 Bool) (critical_failure.res.inst_8_a_0 Bool) (critical_failure.res.inst_7_a_0 Bool) (critical_failure.res.inst_6_a_0 Bool) (critical_failure.res.inst_5_a_0 Bool) (critical_failure.res.inst_4_a_0 Bool) (critical_failure.res.inst_3_a_0 Bool) (critical_failure.res.inst_2_a_0 Bool) (critical_failure.res.inst_1_a_0 Bool) (critical_failure.res.inst_0_a_0 Bool)) Bool + (and (= critical_failure.usr.critical_failure_a_1 (or (or (or (or (or critical_failure.res.abs_0_a_1 (and (= critical_failure.usr.op_mode_a_1 1) critical_failure.res.abs_1_a_1)) (and (= critical_failure.usr.op_mode_a_1 2) (or critical_failure.res.abs_2_a_1 critical_failure.res.abs_3_a_1))) (and (= critical_failure.usr.op_mode_a_1 3) critical_failure.res.abs_4_a_1)) (and (= critical_failure.usr.op_mode_a_1 4) critical_failure.res.abs_4_a_1)) (and (= critical_failure.usr.op_mode_a_1 5) (or (or critical_failure.res.abs_4_a_1 critical_failure.res.abs_3_a_1) critical_failure.res.abs_9_a_1)))) (__node_trans_transmission_failure_0 critical_failure.usr.pump_state_0_a_1 critical_failure.usr.pump_state_1_a_1 critical_failure.usr.pump_state_2_a_1 critical_failure.usr.pump_state_3_a_1 critical_failure.res.abs_0_a_1 critical_failure.res.inst_9_a_1 critical_failure.usr.pump_state_0_a_0 critical_failure.usr.pump_state_1_a_0 critical_failure.usr.pump_state_2_a_0 critical_failure.usr.pump_state_3_a_0 critical_failure.res.abs_0_a_0 critical_failure.res.inst_9_a_0) (__node_trans_steam_failure_startup_0 critical_failure.usr.steam_a_1 critical_failure.res.abs_1_a_1 critical_failure.res.inst_8_a_1 critical_failure.usr.steam_a_0 critical_failure.res.abs_1_a_0 critical_failure.res.inst_8_a_0) (__node_trans_level_failure_0 critical_failure.usr.level_defect_a_1 critical_failure.res.abs_2_a_1 critical_failure.res.inst_7_a_1 critical_failure.usr.level_defect_a_0 critical_failure.res.abs_2_a_0 critical_failure.res.inst_7_a_0) (__node_trans_steam_failure_0 critical_failure.usr.steam_defect_a_1 critical_failure.res.abs_3_a_1 critical_failure.res.inst_6_a_1 critical_failure.usr.steam_defect_a_0 critical_failure.res.abs_3_a_0 critical_failure.res.inst_6_a_0) (__node_trans_dangerous_level_0 critical_failure.usr.q_a_1 critical_failure.res.abs_4_a_1 critical_failure.res.inst_5_a_1 critical_failure.usr.q_a_0 critical_failure.res.abs_4_a_0 critical_failure.res.inst_5_a_0) (__node_trans_AND_0 critical_failure.res.abs_5_a_1 critical_failure.res.abs_6_a_1 critical_failure.res.abs_7_a_1 critical_failure.res.abs_8_a_1 critical_failure.res.abs_9_a_1 critical_failure.res.inst_4_a_1 critical_failure.res.abs_5_a_0 critical_failure.res.abs_6_a_0 critical_failure.res.abs_7_a_0 critical_failure.res.abs_8_a_0 critical_failure.res.abs_9_a_0 critical_failure.res.inst_4_a_0) (__node_trans_pump_failure_0 critical_failure.usr.pump_defect_0_a_1 critical_failure.res.abs_5_a_1 critical_failure.res.inst_3_a_1 critical_failure.usr.pump_defect_0_a_0 critical_failure.res.abs_5_a_0 critical_failure.res.inst_3_a_0) (__node_trans_pump_failure_0 critical_failure.usr.pump_defect_1_a_1 critical_failure.res.abs_6_a_1 critical_failure.res.inst_2_a_1 critical_failure.usr.pump_defect_1_a_0 critical_failure.res.abs_6_a_0 critical_failure.res.inst_2_a_0) (__node_trans_pump_failure_0 critical_failure.usr.pump_defect_2_a_1 critical_failure.res.abs_7_a_1 critical_failure.res.inst_1_a_1 critical_failure.usr.pump_defect_2_a_0 critical_failure.res.abs_7_a_0 critical_failure.res.inst_1_a_0) (__node_trans_pump_failure_0 critical_failure.usr.pump_defect_3_a_1 critical_failure.res.abs_8_a_1 critical_failure.res.inst_0_a_1 critical_failure.usr.pump_defect_3_a_0 critical_failure.res.abs_8_a_0 critical_failure.res.inst_0_a_0) (not critical_failure.res.init_flag_a_1))) +(define-fun __node_init_ControlMode_0 ((ControlMode.usr.steam_boiler_waiting_a_0 Bool) (ControlMode.usr.physical_units_ready_a_0 Bool) (ControlMode.usr.stop_request_a_0 Bool) (ControlMode.usr.steam_a_0 Int) (ControlMode.usr.level_defect_a_0 Int) (ControlMode.usr.steam_defect_a_0 Int) (ControlMode.usr.pump_defect_0_a_0 Int) (ControlMode.usr.pump_defect_1_a_0 Int) (ControlMode.usr.pump_defect_2_a_0 Int) (ControlMode.usr.pump_defect_3_a_0 Int) (ControlMode.usr.pump_control_defect_0_a_0 Int) (ControlMode.usr.pump_control_defect_1_a_0 Int) (ControlMode.usr.pump_control_defect_2_a_0 Int) (ControlMode.usr.pump_control_defect_3_a_0 Int) (ControlMode.usr.q_a_0 Int) (ControlMode.usr.pump_state_0_a_0 Int) (ControlMode.usr.pump_state_1_a_0 Int) (ControlMode.usr.pump_state_2_a_0 Int) (ControlMode.usr.pump_state_3_a_0 Int) (ControlMode.res.nondet_0 Int) (ControlMode.usr.op_mode_a_0 Int) (ControlMode.res.init_flag_a_0 Bool) (ControlMode.res.abs_0_a_0 Int) (ControlMode.res.abs_1_a_0 Bool) (ControlMode.res.abs_2_a_0 Bool) (ControlMode.res.abs_3_a_0 Bool) (ControlMode.res.inst_46_a_0 Bool) (ControlMode.res.inst_45_a_0 Bool) (ControlMode.res.inst_44_a_0 Bool) (ControlMode.res.inst_43_a_0 Bool) (ControlMode.res.inst_42_a_0 Bool) (ControlMode.res.inst_41_a_0 Bool) (ControlMode.res.inst_40_a_0 Bool) (ControlMode.res.inst_39_a_0 Bool) (ControlMode.res.inst_38_a_0 Bool) (ControlMode.res.inst_37_a_0 Bool) (ControlMode.res.inst_36_a_0 Bool) (ControlMode.res.inst_35_a_0 Bool) (ControlMode.res.inst_34_a_0 Bool) (ControlMode.res.inst_33_a_0 Bool) (ControlMode.res.inst_32_a_0 Bool) (ControlMode.res.inst_31_a_0 Bool) (ControlMode.res.inst_30_a_0 Bool) (ControlMode.res.inst_29_a_0 Bool) (ControlMode.res.inst_28_a_0 Bool) (ControlMode.res.inst_27_a_0 Bool) (ControlMode.res.inst_26_a_0 Bool) (ControlMode.res.inst_25_a_0 Bool) (ControlMode.res.inst_24_a_0 Bool) (ControlMode.res.inst_23_a_0 Bool) (ControlMode.res.inst_22_a_0 Bool) (ControlMode.res.inst_21_a_0 Bool) (ControlMode.res.inst_20_a_0 Bool) (ControlMode.res.inst_19_a_0 Bool) (ControlMode.res.inst_18_a_0 Bool) (ControlMode.res.inst_17_a_0 Bool) (ControlMode.res.inst_16_a_0 Bool) (ControlMode.res.inst_15_a_0 Bool) (ControlMode.res.inst_14_a_0 Bool) (ControlMode.res.inst_13_a_0 Bool) (ControlMode.res.inst_12_a_0 Bool) (ControlMode.res.inst_11_a_0 Bool) (ControlMode.res.inst_10_a_0 Bool) (ControlMode.res.inst_9_a_0 Bool) (ControlMode.res.inst_8_a_0 Bool) (ControlMode.res.inst_7_a_0 Bool) (ControlMode.res.inst_6_a_0 Bool) (ControlMode.res.inst_5_a_0 Bool) (ControlMode.res.inst_4_a_0 Bool) (ControlMode.res.inst_3_a_0 Bool) (ControlMode.res.inst_2_a_0 Bool) (ControlMode.res.inst_1_a_0 Bool) (ControlMode.res.inst_0_a_0 Bool)) Bool + (and (= ControlMode.usr.op_mode_a_0 1) (= ControlMode.res.abs_0_a_0 (let ((X1 ControlMode.res.nondet_0)) X1)) (__node_init_critical_failure_0 ControlMode.res.abs_0_a_0 ControlMode.usr.steam_a_0 ControlMode.usr.level_defect_a_0 ControlMode.usr.steam_defect_a_0 ControlMode.usr.pump_defect_0_a_0 ControlMode.usr.pump_defect_1_a_0 ControlMode.usr.pump_defect_2_a_0 ControlMode.usr.pump_defect_3_a_0 ControlMode.usr.q_a_0 ControlMode.usr.pump_state_0_a_0 ControlMode.usr.pump_state_1_a_0 ControlMode.usr.pump_state_2_a_0 ControlMode.usr.pump_state_3_a_0 ControlMode.res.abs_1_a_0 ControlMode.res.inst_46_a_0 ControlMode.res.inst_45_a_0 ControlMode.res.inst_44_a_0 ControlMode.res.inst_43_a_0 ControlMode.res.inst_42_a_0 ControlMode.res.inst_41_a_0 ControlMode.res.inst_40_a_0 ControlMode.res.inst_39_a_0 ControlMode.res.inst_38_a_0 ControlMode.res.inst_37_a_0 ControlMode.res.inst_36_a_0 ControlMode.res.inst_35_a_0 ControlMode.res.inst_34_a_0 ControlMode.res.inst_33_a_0 ControlMode.res.inst_32_a_0 ControlMode.res.inst_31_a_0 ControlMode.res.inst_30_a_0 ControlMode.res.inst_29_a_0 ControlMode.res.inst_28_a_0 ControlMode.res.inst_27_a_0 ControlMode.res.inst_26_a_0) (__node_init_level_failure_0 ControlMode.usr.level_defect_a_0 ControlMode.res.abs_2_a_0 ControlMode.res.inst_25_a_0) (__node_init_failure_0 ControlMode.usr.level_defect_a_0 ControlMode.usr.steam_defect_a_0 ControlMode.usr.pump_defect_0_a_0 ControlMode.usr.pump_defect_1_a_0 ControlMode.usr.pump_defect_2_a_0 ControlMode.usr.pump_defect_3_a_0 ControlMode.usr.pump_control_defect_0_a_0 ControlMode.usr.pump_control_defect_1_a_0 ControlMode.usr.pump_control_defect_2_a_0 ControlMode.usr.pump_control_defect_3_a_0 ControlMode.res.abs_3_a_0 ControlMode.res.inst_24_a_0 ControlMode.res.inst_23_a_0 ControlMode.res.inst_22_a_0 ControlMode.res.inst_21_a_0 ControlMode.res.inst_20_a_0 ControlMode.res.inst_19_a_0 ControlMode.res.inst_18_a_0 ControlMode.res.inst_17_a_0 ControlMode.res.inst_16_a_0 ControlMode.res.inst_15_a_0 ControlMode.res.inst_14_a_0 ControlMode.res.inst_13_a_0 ControlMode.res.inst_12_a_0 ControlMode.res.inst_11_a_0 ControlMode.res.inst_10_a_0 ControlMode.res.inst_9_a_0 ControlMode.res.inst_8_a_0 ControlMode.res.inst_7_a_0 ControlMode.res.inst_6_a_0 ControlMode.res.inst_5_a_0 ControlMode.res.inst_4_a_0 ControlMode.res.inst_3_a_0 ControlMode.res.inst_2_a_0 ControlMode.res.inst_1_a_0 ControlMode.res.inst_0_a_0) (<= 1 ControlMode.usr.op_mode_a_0 6) ControlMode.res.init_flag_a_0)) +(define-fun __node_trans_ControlMode_0 ((ControlMode.usr.steam_boiler_waiting_a_1 Bool) (ControlMode.usr.physical_units_ready_a_1 Bool) (ControlMode.usr.stop_request_a_1 Bool) (ControlMode.usr.steam_a_1 Int) (ControlMode.usr.level_defect_a_1 Int) (ControlMode.usr.steam_defect_a_1 Int) (ControlMode.usr.pump_defect_0_a_1 Int) (ControlMode.usr.pump_defect_1_a_1 Int) (ControlMode.usr.pump_defect_2_a_1 Int) (ControlMode.usr.pump_defect_3_a_1 Int) (ControlMode.usr.pump_control_defect_0_a_1 Int) (ControlMode.usr.pump_control_defect_1_a_1 Int) (ControlMode.usr.pump_control_defect_2_a_1 Int) (ControlMode.usr.pump_control_defect_3_a_1 Int) (ControlMode.usr.q_a_1 Int) (ControlMode.usr.pump_state_0_a_1 Int) (ControlMode.usr.pump_state_1_a_1 Int) (ControlMode.usr.pump_state_2_a_1 Int) (ControlMode.usr.pump_state_3_a_1 Int) (ControlMode.res.nondet_0 Int) (ControlMode.usr.op_mode_a_1 Int) (ControlMode.res.init_flag_a_1 Bool) (ControlMode.res.abs_0_a_1 Int) (ControlMode.res.abs_1_a_1 Bool) (ControlMode.res.abs_2_a_1 Bool) (ControlMode.res.abs_3_a_1 Bool) (ControlMode.res.inst_46_a_1 Bool) (ControlMode.res.inst_45_a_1 Bool) (ControlMode.res.inst_44_a_1 Bool) (ControlMode.res.inst_43_a_1 Bool) (ControlMode.res.inst_42_a_1 Bool) (ControlMode.res.inst_41_a_1 Bool) (ControlMode.res.inst_40_a_1 Bool) (ControlMode.res.inst_39_a_1 Bool) (ControlMode.res.inst_38_a_1 Bool) (ControlMode.res.inst_37_a_1 Bool) (ControlMode.res.inst_36_a_1 Bool) (ControlMode.res.inst_35_a_1 Bool) (ControlMode.res.inst_34_a_1 Bool) (ControlMode.res.inst_33_a_1 Bool) (ControlMode.res.inst_32_a_1 Bool) (ControlMode.res.inst_31_a_1 Bool) (ControlMode.res.inst_30_a_1 Bool) (ControlMode.res.inst_29_a_1 Bool) (ControlMode.res.inst_28_a_1 Bool) (ControlMode.res.inst_27_a_1 Bool) (ControlMode.res.inst_26_a_1 Bool) (ControlMode.res.inst_25_a_1 Bool) (ControlMode.res.inst_24_a_1 Bool) (ControlMode.res.inst_23_a_1 Bool) (ControlMode.res.inst_22_a_1 Bool) (ControlMode.res.inst_21_a_1 Bool) (ControlMode.res.inst_20_a_1 Bool) (ControlMode.res.inst_19_a_1 Bool) (ControlMode.res.inst_18_a_1 Bool) (ControlMode.res.inst_17_a_1 Bool) (ControlMode.res.inst_16_a_1 Bool) (ControlMode.res.inst_15_a_1 Bool) (ControlMode.res.inst_14_a_1 Bool) (ControlMode.res.inst_13_a_1 Bool) (ControlMode.res.inst_12_a_1 Bool) (ControlMode.res.inst_11_a_1 Bool) (ControlMode.res.inst_10_a_1 Bool) (ControlMode.res.inst_9_a_1 Bool) (ControlMode.res.inst_8_a_1 Bool) (ControlMode.res.inst_7_a_1 Bool) (ControlMode.res.inst_6_a_1 Bool) (ControlMode.res.inst_5_a_1 Bool) (ControlMode.res.inst_4_a_1 Bool) (ControlMode.res.inst_3_a_1 Bool) (ControlMode.res.inst_2_a_1 Bool) (ControlMode.res.inst_1_a_1 Bool) (ControlMode.res.inst_0_a_1 Bool) (ControlMode.usr.steam_boiler_waiting_a_0 Bool) (ControlMode.usr.physical_units_ready_a_0 Bool) (ControlMode.usr.stop_request_a_0 Bool) (ControlMode.usr.steam_a_0 Int) (ControlMode.usr.level_defect_a_0 Int) (ControlMode.usr.steam_defect_a_0 Int) (ControlMode.usr.pump_defect_0_a_0 Int) (ControlMode.usr.pump_defect_1_a_0 Int) (ControlMode.usr.pump_defect_2_a_0 Int) (ControlMode.usr.pump_defect_3_a_0 Int) (ControlMode.usr.pump_control_defect_0_a_0 Int) (ControlMode.usr.pump_control_defect_1_a_0 Int) (ControlMode.usr.pump_control_defect_2_a_0 Int) (ControlMode.usr.pump_control_defect_3_a_0 Int) (ControlMode.usr.q_a_0 Int) (ControlMode.usr.pump_state_0_a_0 Int) (ControlMode.usr.pump_state_1_a_0 Int) (ControlMode.usr.pump_state_2_a_0 Int) (ControlMode.usr.pump_state_3_a_0 Int) (ControlMode.usr.op_mode_a_0 Int) (ControlMode.res.init_flag_a_0 Bool) (ControlMode.res.abs_0_a_0 Int) (ControlMode.res.abs_1_a_0 Bool) (ControlMode.res.abs_2_a_0 Bool) (ControlMode.res.abs_3_a_0 Bool) (ControlMode.res.inst_46_a_0 Bool) (ControlMode.res.inst_45_a_0 Bool) (ControlMode.res.inst_44_a_0 Bool) (ControlMode.res.inst_43_a_0 Bool) (ControlMode.res.inst_42_a_0 Bool) (ControlMode.res.inst_41_a_0 Bool) (ControlMode.res.inst_40_a_0 Bool) (ControlMode.res.inst_39_a_0 Bool) (ControlMode.res.inst_38_a_0 Bool) (ControlMode.res.inst_37_a_0 Bool) (ControlMode.res.inst_36_a_0 Bool) (ControlMode.res.inst_35_a_0 Bool) (ControlMode.res.inst_34_a_0 Bool) (ControlMode.res.inst_33_a_0 Bool) (ControlMode.res.inst_32_a_0 Bool) (ControlMode.res.inst_31_a_0 Bool) (ControlMode.res.inst_30_a_0 Bool) (ControlMode.res.inst_29_a_0 Bool) (ControlMode.res.inst_28_a_0 Bool) (ControlMode.res.inst_27_a_0 Bool) (ControlMode.res.inst_26_a_0 Bool) (ControlMode.res.inst_25_a_0 Bool) (ControlMode.res.inst_24_a_0 Bool) (ControlMode.res.inst_23_a_0 Bool) (ControlMode.res.inst_22_a_0 Bool) (ControlMode.res.inst_21_a_0 Bool) (ControlMode.res.inst_20_a_0 Bool) (ControlMode.res.inst_19_a_0 Bool) (ControlMode.res.inst_18_a_0 Bool) (ControlMode.res.inst_17_a_0 Bool) (ControlMode.res.inst_16_a_0 Bool) (ControlMode.res.inst_15_a_0 Bool) (ControlMode.res.inst_14_a_0 Bool) (ControlMode.res.inst_13_a_0 Bool) (ControlMode.res.inst_12_a_0 Bool) (ControlMode.res.inst_11_a_0 Bool) (ControlMode.res.inst_10_a_0 Bool) (ControlMode.res.inst_9_a_0 Bool) (ControlMode.res.inst_8_a_0 Bool) (ControlMode.res.inst_7_a_0 Bool) (ControlMode.res.inst_6_a_0 Bool) (ControlMode.res.inst_5_a_0 Bool) (ControlMode.res.inst_4_a_0 Bool) (ControlMode.res.inst_3_a_0 Bool) (ControlMode.res.inst_2_a_0 Bool) (ControlMode.res.inst_1_a_0 Bool) (ControlMode.res.inst_0_a_0 Bool)) Bool + (and (= ControlMode.res.abs_0_a_1 ControlMode.usr.op_mode_a_0) (= ControlMode.usr.op_mode_a_1 (ite (or (or ControlMode.res.abs_1_a_1 ControlMode.usr.stop_request_a_1) (= ControlMode.usr.op_mode_a_0 6)) 6 (ite (= ControlMode.usr.op_mode_a_0 1) (ite ControlMode.usr.steam_boiler_waiting_a_1 2 1) (ite (and (= ControlMode.usr.op_mode_a_0 2) (not ControlMode.usr.physical_units_ready_a_1)) 2 (ite ControlMode.res.abs_2_a_1 5 (ite ControlMode.res.abs_3_a_1 4 3)))))) (__node_trans_critical_failure_0 ControlMode.res.abs_0_a_1 ControlMode.usr.steam_a_1 ControlMode.usr.level_defect_a_1 ControlMode.usr.steam_defect_a_1 ControlMode.usr.pump_defect_0_a_1 ControlMode.usr.pump_defect_1_a_1 ControlMode.usr.pump_defect_2_a_1 ControlMode.usr.pump_defect_3_a_1 ControlMode.usr.q_a_1 ControlMode.usr.pump_state_0_a_1 ControlMode.usr.pump_state_1_a_1 ControlMode.usr.pump_state_2_a_1 ControlMode.usr.pump_state_3_a_1 ControlMode.res.abs_1_a_1 ControlMode.res.inst_46_a_1 ControlMode.res.inst_45_a_1 ControlMode.res.inst_44_a_1 ControlMode.res.inst_43_a_1 ControlMode.res.inst_42_a_1 ControlMode.res.inst_41_a_1 ControlMode.res.inst_40_a_1 ControlMode.res.inst_39_a_1 ControlMode.res.inst_38_a_1 ControlMode.res.inst_37_a_1 ControlMode.res.inst_36_a_1 ControlMode.res.inst_35_a_1 ControlMode.res.inst_34_a_1 ControlMode.res.inst_33_a_1 ControlMode.res.inst_32_a_1 ControlMode.res.inst_31_a_1 ControlMode.res.inst_30_a_1 ControlMode.res.inst_29_a_1 ControlMode.res.inst_28_a_1 ControlMode.res.inst_27_a_1 ControlMode.res.inst_26_a_1 ControlMode.res.abs_0_a_0 ControlMode.usr.steam_a_0 ControlMode.usr.level_defect_a_0 ControlMode.usr.steam_defect_a_0 ControlMode.usr.pump_defect_0_a_0 ControlMode.usr.pump_defect_1_a_0 ControlMode.usr.pump_defect_2_a_0 ControlMode.usr.pump_defect_3_a_0 ControlMode.usr.q_a_0 ControlMode.usr.pump_state_0_a_0 ControlMode.usr.pump_state_1_a_0 ControlMode.usr.pump_state_2_a_0 ControlMode.usr.pump_state_3_a_0 ControlMode.res.abs_1_a_0 ControlMode.res.inst_46_a_0 ControlMode.res.inst_45_a_0 ControlMode.res.inst_44_a_0 ControlMode.res.inst_43_a_0 ControlMode.res.inst_42_a_0 ControlMode.res.inst_41_a_0 ControlMode.res.inst_40_a_0 ControlMode.res.inst_39_a_0 ControlMode.res.inst_38_a_0 ControlMode.res.inst_37_a_0 ControlMode.res.inst_36_a_0 ControlMode.res.inst_35_a_0 ControlMode.res.inst_34_a_0 ControlMode.res.inst_33_a_0 ControlMode.res.inst_32_a_0 ControlMode.res.inst_31_a_0 ControlMode.res.inst_30_a_0 ControlMode.res.inst_29_a_0 ControlMode.res.inst_28_a_0 ControlMode.res.inst_27_a_0 ControlMode.res.inst_26_a_0) (__node_trans_level_failure_0 ControlMode.usr.level_defect_a_1 ControlMode.res.abs_2_a_1 ControlMode.res.inst_25_a_1 ControlMode.usr.level_defect_a_0 ControlMode.res.abs_2_a_0 ControlMode.res.inst_25_a_0) (__node_trans_failure_0 ControlMode.usr.level_defect_a_1 ControlMode.usr.steam_defect_a_1 ControlMode.usr.pump_defect_0_a_1 ControlMode.usr.pump_defect_1_a_1 ControlMode.usr.pump_defect_2_a_1 ControlMode.usr.pump_defect_3_a_1 ControlMode.usr.pump_control_defect_0_a_1 ControlMode.usr.pump_control_defect_1_a_1 ControlMode.usr.pump_control_defect_2_a_1 ControlMode.usr.pump_control_defect_3_a_1 ControlMode.res.abs_3_a_1 ControlMode.res.inst_24_a_1 ControlMode.res.inst_23_a_1 ControlMode.res.inst_22_a_1 ControlMode.res.inst_21_a_1 ControlMode.res.inst_20_a_1 ControlMode.res.inst_19_a_1 ControlMode.res.inst_18_a_1 ControlMode.res.inst_17_a_1 ControlMode.res.inst_16_a_1 ControlMode.res.inst_15_a_1 ControlMode.res.inst_14_a_1 ControlMode.res.inst_13_a_1 ControlMode.res.inst_12_a_1 ControlMode.res.inst_11_a_1 ControlMode.res.inst_10_a_1 ControlMode.res.inst_9_a_1 ControlMode.res.inst_8_a_1 ControlMode.res.inst_7_a_1 ControlMode.res.inst_6_a_1 ControlMode.res.inst_5_a_1 ControlMode.res.inst_4_a_1 ControlMode.res.inst_3_a_1 ControlMode.res.inst_2_a_1 ControlMode.res.inst_1_a_1 ControlMode.res.inst_0_a_1 ControlMode.usr.level_defect_a_0 ControlMode.usr.steam_defect_a_0 ControlMode.usr.pump_defect_0_a_0 ControlMode.usr.pump_defect_1_a_0 ControlMode.usr.pump_defect_2_a_0 ControlMode.usr.pump_defect_3_a_0 ControlMode.usr.pump_control_defect_0_a_0 ControlMode.usr.pump_control_defect_1_a_0 ControlMode.usr.pump_control_defect_2_a_0 ControlMode.usr.pump_control_defect_3_a_0 ControlMode.res.abs_3_a_0 ControlMode.res.inst_24_a_0 ControlMode.res.inst_23_a_0 ControlMode.res.inst_22_a_0 ControlMode.res.inst_21_a_0 ControlMode.res.inst_20_a_0 ControlMode.res.inst_19_a_0 ControlMode.res.inst_18_a_0 ControlMode.res.inst_17_a_0 ControlMode.res.inst_16_a_0 ControlMode.res.inst_15_a_0 ControlMode.res.inst_14_a_0 ControlMode.res.inst_13_a_0 ControlMode.res.inst_12_a_0 ControlMode.res.inst_11_a_0 ControlMode.res.inst_10_a_0 ControlMode.res.inst_9_a_0 ControlMode.res.inst_8_a_0 ControlMode.res.inst_7_a_0 ControlMode.res.inst_6_a_0 ControlMode.res.inst_5_a_0 ControlMode.res.inst_4_a_0 ControlMode.res.inst_3_a_0 ControlMode.res.inst_2_a_0 ControlMode.res.inst_1_a_0 ControlMode.res.inst_0_a_0) (<= 1 ControlMode.usr.op_mode_a_1 6) (not ControlMode.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.steam_boiler_waiting_a_0 Bool) (top.usr.physical_units_ready_a_0 Bool) (top.usr.stop_request_a_0 Bool) (top.usr.steam_a_0 Int) (top.usr.level_defect_a_0 Int) (top.usr.steam_defect_a_0 Int) (top.usr.pump_defect_0_a_0 Int) (top.usr.pump_defect_1_a_0 Int) (top.usr.pump_defect_2_a_0 Int) (top.usr.pump_defect_3_a_0 Int) (top.usr.pump_control_defect_0_a_0 Int) (top.usr.pump_control_defect_1_a_0 Int) (top.usr.pump_control_defect_2_a_0 Int) (top.usr.pump_control_defect_3_a_0 Int) (top.usr.q_a_0 Int) (top.usr.pump_state_0_a_0 Int) (top.usr.pump_state_1_a_0 Int) (top.usr.pump_state_2_a_0 Int) (top.usr.pump_state_3_a_0 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.op_mode_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Bool) (top.res.inst_52_a_0 Bool) (top.res.inst_51_a_0 Int) (top.res.inst_50_a_0 Bool) (top.res.inst_49_a_0 Bool) (top.res.inst_48_a_0 Bool) (top.res.inst_47_a_0 Bool) (top.res.inst_46_a_0 Bool) (top.res.inst_45_a_0 Bool) (top.res.inst_44_a_0 Bool) (top.res.inst_43_a_0 Bool) (top.res.inst_42_a_0 Bool) (top.res.inst_41_a_0 Bool) (top.res.inst_40_a_0 Bool) (top.res.inst_39_a_0 Bool) (top.res.inst_38_a_0 Bool) (top.res.inst_37_a_0 Bool) (top.res.inst_36_a_0 Bool) (top.res.inst_35_a_0 Bool) (top.res.inst_34_a_0 Bool) (top.res.inst_33_a_0 Bool) (top.res.inst_32_a_0 Bool) (top.res.inst_31_a_0 Bool) (top.res.inst_30_a_0 Bool) (top.res.inst_29_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.op_mode_a_0 top.res.abs_0_a_0) (let ((X1 (=> (= top.impl.usr.op_mode_a_0 3) (not top.usr.stop_request_a_0)))) (let ((X2 true)) (and (= top.usr.OK_a_0 (and X2 X1)) (__node_init_ControlMode_0 top.usr.steam_boiler_waiting_a_0 top.usr.physical_units_ready_a_0 top.usr.stop_request_a_0 top.usr.steam_a_0 top.usr.level_defect_a_0 top.usr.steam_defect_a_0 top.usr.pump_defect_0_a_0 top.usr.pump_defect_1_a_0 top.usr.pump_defect_2_a_0 top.usr.pump_defect_3_a_0 top.usr.pump_control_defect_0_a_0 top.usr.pump_control_defect_1_a_0 top.usr.pump_control_defect_2_a_0 top.usr.pump_control_defect_3_a_0 top.usr.q_a_0 top.usr.pump_state_0_a_0 top.usr.pump_state_1_a_0 top.usr.pump_state_2_a_0 top.usr.pump_state_3_a_0 top.res.nondet_0 top.res.abs_0_a_0 top.res.inst_52_a_0 top.res.inst_51_a_0 top.res.inst_50_a_0 top.res.inst_49_a_0 top.res.inst_48_a_0 top.res.inst_47_a_0 top.res.inst_46_a_0 top.res.inst_45_a_0 top.res.inst_44_a_0 top.res.inst_43_a_0 top.res.inst_42_a_0 top.res.inst_41_a_0 top.res.inst_40_a_0 top.res.inst_39_a_0 top.res.inst_38_a_0 top.res.inst_37_a_0 top.res.inst_36_a_0 top.res.inst_35_a_0 top.res.inst_34_a_0 top.res.inst_33_a_0 top.res.inst_32_a_0 top.res.inst_31_a_0 top.res.inst_30_a_0 top.res.inst_29_a_0 top.res.inst_28_a_0 top.res.inst_27_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_init_dangerous_level_0 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) (<= 1 top.impl.usr.op_mode_a_0 6) (<= 1 top.res.abs_0_a_0 6) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.steam_boiler_waiting_a_1 Bool) (top.usr.physical_units_ready_a_1 Bool) (top.usr.stop_request_a_1 Bool) (top.usr.steam_a_1 Int) (top.usr.level_defect_a_1 Int) (top.usr.steam_defect_a_1 Int) (top.usr.pump_defect_0_a_1 Int) (top.usr.pump_defect_1_a_1 Int) (top.usr.pump_defect_2_a_1 Int) (top.usr.pump_defect_3_a_1 Int) (top.usr.pump_control_defect_0_a_1 Int) (top.usr.pump_control_defect_1_a_1 Int) (top.usr.pump_control_defect_2_a_1 Int) (top.usr.pump_control_defect_3_a_1 Int) (top.usr.q_a_1 Int) (top.usr.pump_state_0_a_1 Int) (top.usr.pump_state_1_a_1 Int) (top.usr.pump_state_2_a_1 Int) (top.usr.pump_state_3_a_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.op_mode_a_1 Int) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Bool) (top.res.inst_52_a_1 Bool) (top.res.inst_51_a_1 Int) (top.res.inst_50_a_1 Bool) (top.res.inst_49_a_1 Bool) (top.res.inst_48_a_1 Bool) (top.res.inst_47_a_1 Bool) (top.res.inst_46_a_1 Bool) (top.res.inst_45_a_1 Bool) (top.res.inst_44_a_1 Bool) (top.res.inst_43_a_1 Bool) (top.res.inst_42_a_1 Bool) (top.res.inst_41_a_1 Bool) (top.res.inst_40_a_1 Bool) (top.res.inst_39_a_1 Bool) (top.res.inst_38_a_1 Bool) (top.res.inst_37_a_1 Bool) (top.res.inst_36_a_1 Bool) (top.res.inst_35_a_1 Bool) (top.res.inst_34_a_1 Bool) (top.res.inst_33_a_1 Bool) (top.res.inst_32_a_1 Bool) (top.res.inst_31_a_1 Bool) (top.res.inst_30_a_1 Bool) (top.res.inst_29_a_1 Bool) (top.res.inst_28_a_1 Bool) (top.res.inst_27_a_1 Bool) (top.res.inst_26_a_1 Bool) (top.res.inst_25_a_1 Bool) (top.res.inst_24_a_1 Bool) (top.res.inst_23_a_1 Bool) (top.res.inst_22_a_1 Bool) (top.res.inst_21_a_1 Bool) (top.res.inst_20_a_1 Bool) (top.res.inst_19_a_1 Bool) (top.res.inst_18_a_1 Bool) (top.res.inst_17_a_1 Bool) (top.res.inst_16_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Bool) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Bool) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Bool) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.steam_boiler_waiting_a_0 Bool) (top.usr.physical_units_ready_a_0 Bool) (top.usr.stop_request_a_0 Bool) (top.usr.steam_a_0 Int) (top.usr.level_defect_a_0 Int) (top.usr.steam_defect_a_0 Int) (top.usr.pump_defect_0_a_0 Int) (top.usr.pump_defect_1_a_0 Int) (top.usr.pump_defect_2_a_0 Int) (top.usr.pump_defect_3_a_0 Int) (top.usr.pump_control_defect_0_a_0 Int) (top.usr.pump_control_defect_1_a_0 Int) (top.usr.pump_control_defect_2_a_0 Int) (top.usr.pump_control_defect_3_a_0 Int) (top.usr.q_a_0 Int) (top.usr.pump_state_0_a_0 Int) (top.usr.pump_state_1_a_0 Int) (top.usr.pump_state_2_a_0 Int) (top.usr.pump_state_3_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.op_mode_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Bool) (top.res.inst_52_a_0 Bool) (top.res.inst_51_a_0 Int) (top.res.inst_50_a_0 Bool) (top.res.inst_49_a_0 Bool) (top.res.inst_48_a_0 Bool) (top.res.inst_47_a_0 Bool) (top.res.inst_46_a_0 Bool) (top.res.inst_45_a_0 Bool) (top.res.inst_44_a_0 Bool) (top.res.inst_43_a_0 Bool) (top.res.inst_42_a_0 Bool) (top.res.inst_41_a_0 Bool) (top.res.inst_40_a_0 Bool) (top.res.inst_39_a_0 Bool) (top.res.inst_38_a_0 Bool) (top.res.inst_37_a_0 Bool) (top.res.inst_36_a_0 Bool) (top.res.inst_35_a_0 Bool) (top.res.inst_34_a_0 Bool) (top.res.inst_33_a_0 Bool) (top.res.inst_32_a_0 Bool) (top.res.inst_31_a_0 Bool) (top.res.inst_30_a_0 Bool) (top.res.inst_29_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.op_mode_a_1 top.res.abs_0_a_1) (let ((X1 (=> (= top.impl.usr.op_mode_a_1 3) (not top.usr.stop_request_a_1)))) (let ((X2 (=> (and (= top.impl.usr.op_mode_a_1 3) (= top.impl.usr.op_mode_a_0 3)) (not top.res.abs_1_a_1)))) (and (= top.usr.OK_a_1 (and X2 X1)) (__node_trans_ControlMode_0 top.usr.steam_boiler_waiting_a_1 top.usr.physical_units_ready_a_1 top.usr.stop_request_a_1 top.usr.steam_a_1 top.usr.level_defect_a_1 top.usr.steam_defect_a_1 top.usr.pump_defect_0_a_1 top.usr.pump_defect_1_a_1 top.usr.pump_defect_2_a_1 top.usr.pump_defect_3_a_1 top.usr.pump_control_defect_0_a_1 top.usr.pump_control_defect_1_a_1 top.usr.pump_control_defect_2_a_1 top.usr.pump_control_defect_3_a_1 top.usr.q_a_1 top.usr.pump_state_0_a_1 top.usr.pump_state_1_a_1 top.usr.pump_state_2_a_1 top.usr.pump_state_3_a_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.inst_52_a_1 top.res.inst_51_a_1 top.res.inst_50_a_1 top.res.inst_49_a_1 top.res.inst_48_a_1 top.res.inst_47_a_1 top.res.inst_46_a_1 top.res.inst_45_a_1 top.res.inst_44_a_1 top.res.inst_43_a_1 top.res.inst_42_a_1 top.res.inst_41_a_1 top.res.inst_40_a_1 top.res.inst_39_a_1 top.res.inst_38_a_1 top.res.inst_37_a_1 top.res.inst_36_a_1 top.res.inst_35_a_1 top.res.inst_34_a_1 top.res.inst_33_a_1 top.res.inst_32_a_1 top.res.inst_31_a_1 top.res.inst_30_a_1 top.res.inst_29_a_1 top.res.inst_28_a_1 top.res.inst_27_a_1 top.res.inst_26_a_1 top.res.inst_25_a_1 top.res.inst_24_a_1 top.res.inst_23_a_1 top.res.inst_22_a_1 top.res.inst_21_a_1 top.res.inst_20_a_1 top.res.inst_19_a_1 top.res.inst_18_a_1 top.res.inst_17_a_1 top.res.inst_16_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.usr.steam_boiler_waiting_a_0 top.usr.physical_units_ready_a_0 top.usr.stop_request_a_0 top.usr.steam_a_0 top.usr.level_defect_a_0 top.usr.steam_defect_a_0 top.usr.pump_defect_0_a_0 top.usr.pump_defect_1_a_0 top.usr.pump_defect_2_a_0 top.usr.pump_defect_3_a_0 top.usr.pump_control_defect_0_a_0 top.usr.pump_control_defect_1_a_0 top.usr.pump_control_defect_2_a_0 top.usr.pump_control_defect_3_a_0 top.usr.q_a_0 top.usr.pump_state_0_a_0 top.usr.pump_state_1_a_0 top.usr.pump_state_2_a_0 top.usr.pump_state_3_a_0 top.res.abs_0_a_0 top.res.inst_52_a_0 top.res.inst_51_a_0 top.res.inst_50_a_0 top.res.inst_49_a_0 top.res.inst_48_a_0 top.res.inst_47_a_0 top.res.inst_46_a_0 top.res.inst_45_a_0 top.res.inst_44_a_0 top.res.inst_43_a_0 top.res.inst_42_a_0 top.res.inst_41_a_0 top.res.inst_40_a_0 top.res.inst_39_a_0 top.res.inst_38_a_0 top.res.inst_37_a_0 top.res.inst_36_a_0 top.res.inst_35_a_0 top.res.inst_34_a_0 top.res.inst_33_a_0 top.res.inst_32_a_0 top.res.inst_31_a_0 top.res.inst_30_a_0 top.res.inst_29_a_0 top.res.inst_28_a_0 top.res.inst_27_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_trans_dangerous_level_0 top.usr.q_a_1 top.res.abs_1_a_1 top.res.inst_0_a_1 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) (<= 1 top.impl.usr.op_mode_a_1 6) (<= 1 top.res.abs_0_a_1 6) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.steam_boiler_waiting Bool) (top.usr.physical_units_ready Bool) (top.usr.stop_request Bool) (top.usr.steam Int) (top.usr.level_defect Int) (top.usr.steam_defect Int) (top.usr.pump_defect_0 Int) (top.usr.pump_defect_1 Int) (top.usr.pump_defect_2 Int) (top.usr.pump_defect_3 Int) (top.usr.pump_control_defect_0 Int) (top.usr.pump_control_defect_1 Int) (top.usr.pump_control_defect_2 Int) (top.usr.pump_control_defect_3 Int) (top.usr.q Int) (top.usr.pump_state_0 Int) (top.usr.pump_state_1 Int) (top.usr.pump_state_2 Int) (top.usr.pump_state_3 Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.op_mode Int) (top.res.abs_0 Int) (top.res.abs_1 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Int) (top.res.inst_50 Bool) (top.res.inst_49 Bool) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.steam_boiler_waiting Bool) (top.usr.physical_units_ready Bool) (top.usr.stop_request Bool) (top.usr.steam Int) (top.usr.level_defect Int) (top.usr.steam_defect Int) (top.usr.pump_defect_0 Int) (top.usr.pump_defect_1 Int) (top.usr.pump_defect_2 Int) (top.usr.pump_defect_3 Int) (top.usr.pump_control_defect_0 Int) (top.usr.pump_control_defect_1 Int) (top.usr.pump_control_defect_2 Int) (top.usr.pump_control_defect_3 Int) (top.usr.q Int) (top.usr.pump_state_0 Int) (top.usr.pump_state_1 Int) (top.usr.pump_state_2 Int) (top.usr.pump_state_3 Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.op_mode Int) (top.res.abs_0 Int) (top.res.abs_1 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Int) (top.res.inst_50 Bool) (top.res.inst_49 Bool) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.op_mode top.res.abs_0) (let ((X1 (=> (= top.impl.usr.op_mode 3) (not top.usr.stop_request)))) (let ((X2 true)) (and (= top.usr.OK (and X2 X1)) (__node_init_ControlMode_0 top.usr.steam_boiler_waiting top.usr.physical_units_ready top.usr.stop_request top.usr.steam top.usr.level_defect top.usr.steam_defect top.usr.pump_defect_0 top.usr.pump_defect_1 top.usr.pump_defect_2 top.usr.pump_defect_3 top.usr.pump_control_defect_0 top.usr.pump_control_defect_1 top.usr.pump_control_defect_2 top.usr.pump_control_defect_3 top.usr.q top.usr.pump_state_0 top.usr.pump_state_1 top.usr.pump_state_2 top.usr.pump_state_3 top.res.nondet_0 top.res.abs_0 top.res.inst_52 top.res.inst_51 top.res.inst_50 top.res.inst_49 top.res.inst_48 top.res.inst_47 top.res.inst_46 top.res.inst_45 top.res.inst_44 top.res.inst_43 top.res.inst_42 top.res.inst_41 top.res.inst_40 top.res.inst_39 top.res.inst_38 top.res.inst_37 top.res.inst_36 top.res.inst_35 top.res.inst_34 top.res.inst_33 top.res.inst_32 top.res.inst_31 top.res.inst_30 top.res.inst_29 top.res.inst_28 top.res.inst_27 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_init_dangerous_level_0 top.usr.q top.res.abs_1 top.res.inst_0) (<= 1 top.impl.usr.op_mode 6) (<= 1 top.res.abs_0 6) top.res.init_flag))))) +(define-fun trans ((top.usr.steam_boiler_waiting Bool) (top.usr.physical_units_ready Bool) (top.usr.stop_request Bool) (top.usr.steam Int) (top.usr.level_defect Int) (top.usr.steam_defect Int) (top.usr.pump_defect_0 Int) (top.usr.pump_defect_1 Int) (top.usr.pump_defect_2 Int) (top.usr.pump_defect_3 Int) (top.usr.pump_control_defect_0 Int) (top.usr.pump_control_defect_1 Int) (top.usr.pump_control_defect_2 Int) (top.usr.pump_control_defect_3 Int) (top.usr.q Int) (top.usr.pump_state_0 Int) (top.usr.pump_state_1 Int) (top.usr.pump_state_2 Int) (top.usr.pump_state_3 Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.op_mode Int) (top.res.abs_0 Int) (top.res.abs_1 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Int) (top.res.inst_50 Bool) (top.res.inst_49 Bool) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.steam_boiler_waiting! Bool) (top.usr.physical_units_ready! Bool) (top.usr.stop_request! Bool) (top.usr.steam! Int) (top.usr.level_defect! Int) (top.usr.steam_defect! Int) (top.usr.pump_defect_0! Int) (top.usr.pump_defect_1! Int) (top.usr.pump_defect_2! Int) (top.usr.pump_defect_3! Int) (top.usr.pump_control_defect_0! Int) (top.usr.pump_control_defect_1! Int) (top.usr.pump_control_defect_2! Int) (top.usr.pump_control_defect_3! Int) (top.usr.q! Int) (top.usr.pump_state_0! Int) (top.usr.pump_state_1! Int) (top.usr.pump_state_2! Int) (top.usr.pump_state_3! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.op_mode! Int) (top.res.abs_0! Int) (top.res.abs_1! Bool) (top.res.inst_52! Bool) (top.res.inst_51! Int) (top.res.inst_50! Bool) (top.res.inst_49! Bool) (top.res.inst_48! Bool) (top.res.inst_47! Bool) (top.res.inst_46! Bool) (top.res.inst_45! Bool) (top.res.inst_44! Bool) (top.res.inst_43! Bool) (top.res.inst_42! Bool) (top.res.inst_41! Bool) (top.res.inst_40! Bool) (top.res.inst_39! Bool) (top.res.inst_38! Bool) (top.res.inst_37! Bool) (top.res.inst_36! Bool) (top.res.inst_35! Bool) (top.res.inst_34! Bool) (top.res.inst_33! Bool) (top.res.inst_32! Bool) (top.res.inst_31! Bool) (top.res.inst_30! Bool) (top.res.inst_29! Bool) (top.res.inst_28! Bool) (top.res.inst_27! Bool) (top.res.inst_26! Bool) (top.res.inst_25! Bool) (top.res.inst_24! Bool) (top.res.inst_23! Bool) (top.res.inst_22! Bool) (top.res.inst_21! Bool) (top.res.inst_20! Bool) (top.res.inst_19! Bool) (top.res.inst_18! Bool) (top.res.inst_17! Bool) (top.res.inst_16! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Bool) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Bool) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Bool) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.impl.usr.op_mode! top.res.abs_0!) (let ((X1 (=> (= top.impl.usr.op_mode! 3) (not top.usr.stop_request!)))) (let ((X2 (=> (and (= top.impl.usr.op_mode! 3) (= top.impl.usr.op_mode 3)) (not top.res.abs_1!)))) (and (= top.usr.OK! (and X2 X1)) (__node_trans_ControlMode_0 top.usr.steam_boiler_waiting! top.usr.physical_units_ready! top.usr.stop_request! top.usr.steam! top.usr.level_defect! top.usr.steam_defect! top.usr.pump_defect_0! top.usr.pump_defect_1! top.usr.pump_defect_2! top.usr.pump_defect_3! top.usr.pump_control_defect_0! top.usr.pump_control_defect_1! top.usr.pump_control_defect_2! top.usr.pump_control_defect_3! top.usr.q! top.usr.pump_state_0! top.usr.pump_state_1! top.usr.pump_state_2! top.usr.pump_state_3! top.res.nondet_0 top.res.abs_0! top.res.inst_52! top.res.inst_51! top.res.inst_50! top.res.inst_49! top.res.inst_48! top.res.inst_47! top.res.inst_46! top.res.inst_45! top.res.inst_44! top.res.inst_43! top.res.inst_42! top.res.inst_41! top.res.inst_40! top.res.inst_39! top.res.inst_38! top.res.inst_37! top.res.inst_36! top.res.inst_35! top.res.inst_34! top.res.inst_33! top.res.inst_32! top.res.inst_31! top.res.inst_30! top.res.inst_29! top.res.inst_28! top.res.inst_27! top.res.inst_26! top.res.inst_25! top.res.inst_24! top.res.inst_23! top.res.inst_22! top.res.inst_21! top.res.inst_20! top.res.inst_19! top.res.inst_18! top.res.inst_17! top.res.inst_16! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.usr.steam_boiler_waiting top.usr.physical_units_ready top.usr.stop_request top.usr.steam top.usr.level_defect top.usr.steam_defect top.usr.pump_defect_0 top.usr.pump_defect_1 top.usr.pump_defect_2 top.usr.pump_defect_3 top.usr.pump_control_defect_0 top.usr.pump_control_defect_1 top.usr.pump_control_defect_2 top.usr.pump_control_defect_3 top.usr.q top.usr.pump_state_0 top.usr.pump_state_1 top.usr.pump_state_2 top.usr.pump_state_3 top.res.abs_0 top.res.inst_52 top.res.inst_51 top.res.inst_50 top.res.inst_49 top.res.inst_48 top.res.inst_47 top.res.inst_46 top.res.inst_45 top.res.inst_44 top.res.inst_43 top.res.inst_42 top.res.inst_41 top.res.inst_40 top.res.inst_39 top.res.inst_38 top.res.inst_37 top.res.inst_36 top.res.inst_35 top.res.inst_34 top.res.inst_33 top.res.inst_32 top.res.inst_31 top.res.inst_30 top.res.inst_29 top.res.inst_28 top.res.inst_27 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_trans_dangerous_level_0 top.usr.q! top.res.abs_1! top.res.inst_0! top.usr.q top.res.abs_1 top.res.inst_0) (<= 1 top.impl.usr.op_mode! 6) (<= 1 top.res.abs_0! 6) (not top.res.init_flag!))))) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.steam_boiler_waiting Bool) (top.usr.physical_units_ready Bool) (top.usr.stop_request Bool) (top.usr.steam Int) (top.usr.level_defect Int) (top.usr.steam_defect Int) (top.usr.pump_defect_0 Int) (top.usr.pump_defect_1 Int) (top.usr.pump_defect_2 Int) (top.usr.pump_defect_3 Int) (top.usr.pump_control_defect_0 Int) (top.usr.pump_control_defect_1 Int) (top.usr.pump_control_defect_2 Int) (top.usr.pump_control_defect_3 Int) (top.usr.q Int) (top.usr.pump_state_0 Int) (top.usr.pump_state_1 Int) (top.usr.pump_state_2 Int) (top.usr.pump_state_3 Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.op_mode Int) (top.res.abs_0 Int) (top.res.abs_1 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Int) (top.res.inst_50 Bool) (top.res.inst_49 Bool) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/steam_boiler_no_arr2_e7_12307.sl b/benchmarks/LIA/Lustre/steam_boiler_no_arr2_e7_12307.sl index 6777783..f911491 100644 --- a/benchmarks/LIA/Lustre/steam_boiler_no_arr2_e7_12307.sl +++ b/benchmarks/LIA/Lustre/steam_boiler_no_arr2_e7_12307.sl @@ -1,2635 +1,68 @@ (set-logic LIA) -(define-fun - __node_init_dangerous_level_0 ( - (dangerous_level.usr.q_a_0 Int) - (dangerous_level.usr.dangerous_level_a_0 Bool) - (dangerous_level.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - dangerous_level.usr.dangerous_level_a_0 - (or (<= dangerous_level.usr.q_a_0 150) (>= dangerous_level.usr.q_a_0 850))) - dangerous_level.res.init_flag_a_0) -) - -(define-fun - __node_trans_dangerous_level_0 ( - (dangerous_level.usr.q_a_1 Int) - (dangerous_level.usr.dangerous_level_a_1 Bool) - (dangerous_level.res.init_flag_a_1 Bool) - (dangerous_level.usr.q_a_0 Int) - (dangerous_level.usr.dangerous_level_a_0 Bool) - (dangerous_level.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - dangerous_level.usr.dangerous_level_a_1 - (or (<= dangerous_level.usr.q_a_1 150) (>= dangerous_level.usr.q_a_1 850))) - (not dangerous_level.res.init_flag_a_1)) -) - -(define-fun - __node_init_level_failure_0 ( - (level_failure.usr.level_defect_a_0 Int) - (level_failure.usr.level_failure_a_0 Bool) - (level_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - level_failure.usr.level_failure_a_0 - (not (= level_failure.usr.level_defect_a_0 0))) - level_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_level_failure_0 ( - (level_failure.usr.level_defect_a_1 Int) - (level_failure.usr.level_failure_a_1 Bool) - (level_failure.res.init_flag_a_1 Bool) - (level_failure.usr.level_defect_a_0 Int) - (level_failure.usr.level_failure_a_0 Bool) - (level_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - level_failure.usr.level_failure_a_1 - (not (= level_failure.usr.level_defect_a_1 0))) - (not level_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_steam_failure_0 ( - (steam_failure.usr.steam_defect_a_0 Int) - (steam_failure.usr.steam_failure_a_0 Bool) - (steam_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - steam_failure.usr.steam_failure_a_0 - (not (= steam_failure.usr.steam_defect_a_0 0))) - steam_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_steam_failure_0 ( - (steam_failure.usr.steam_defect_a_1 Int) - (steam_failure.usr.steam_failure_a_1 Bool) - (steam_failure.res.init_flag_a_1 Bool) - (steam_failure.usr.steam_defect_a_0 Int) - (steam_failure.usr.steam_failure_a_0 Bool) - (steam_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - steam_failure.usr.steam_failure_a_1 - (not (= steam_failure.usr.steam_defect_a_1 0))) - (not steam_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_OR_0 ( - (OR.usr.a_0_a_0 Bool) - (OR.usr.a_1_a_0 Bool) - (OR.usr.a_2_a_0 Bool) - (OR.usr.a_3_a_0 Bool) - (OR.usr.OR_a_0 Bool) - (OR.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - OR.usr.OR_a_0 - (or (or (or OR.usr.a_0_a_0 OR.usr.a_1_a_0) OR.usr.a_2_a_0) OR.usr.a_3_a_0)) - OR.res.init_flag_a_0) -) - -(define-fun - __node_trans_OR_0 ( - (OR.usr.a_0_a_1 Bool) - (OR.usr.a_1_a_1 Bool) - (OR.usr.a_2_a_1 Bool) - (OR.usr.a_3_a_1 Bool) - (OR.usr.OR_a_1 Bool) - (OR.res.init_flag_a_1 Bool) - (OR.usr.a_0_a_0 Bool) - (OR.usr.a_1_a_0 Bool) - (OR.usr.a_2_a_0 Bool) - (OR.usr.a_3_a_0 Bool) - (OR.usr.OR_a_0 Bool) - (OR.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - OR.usr.OR_a_1 - (or (or (or OR.usr.a_0_a_1 OR.usr.a_1_a_1) OR.usr.a_2_a_1) OR.usr.a_3_a_1)) - (not OR.res.init_flag_a_1)) -) - -(define-fun - __node_init_pump_control_failure_0 ( - (pump_control_failure.usr.pump_defect_a_0 Int) - (pump_control_failure.usr.pump_failure_a_0 Bool) - (pump_control_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - pump_control_failure.usr.pump_failure_a_0 - (not (= pump_control_failure.usr.pump_defect_a_0 0))) - pump_control_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_pump_control_failure_0 ( - (pump_control_failure.usr.pump_defect_a_1 Int) - (pump_control_failure.usr.pump_failure_a_1 Bool) - (pump_control_failure.res.init_flag_a_1 Bool) - (pump_control_failure.usr.pump_defect_a_0 Int) - (pump_control_failure.usr.pump_failure_a_0 Bool) - (pump_control_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - pump_control_failure.usr.pump_failure_a_1 - (not (= pump_control_failure.usr.pump_defect_a_1 0))) - (not pump_control_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_pump_failure_0 ( - (pump_failure.usr.pump_defect_a_0 Int) - (pump_failure.usr.pump_failure_a_0 Bool) - (pump_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - pump_failure.usr.pump_failure_a_0 - (not (= pump_failure.usr.pump_defect_a_0 0))) - pump_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_pump_failure_0 ( - (pump_failure.usr.pump_defect_a_1 Int) - (pump_failure.usr.pump_failure_a_1 Bool) - (pump_failure.res.init_flag_a_1 Bool) - (pump_failure.usr.pump_defect_a_0 Int) - (pump_failure.usr.pump_failure_a_0 Bool) - (pump_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - pump_failure.usr.pump_failure_a_1 - (not (= pump_failure.usr.pump_defect_a_1 0))) - (not pump_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_failure_0 ( - (failure.usr.level_defect_a_0 Int) - (failure.usr.steam_defect_a_0 Int) - (failure.usr.pump_defect_0_a_0 Int) - (failure.usr.pump_defect_1_a_0 Int) - (failure.usr.pump_defect_2_a_0 Int) - (failure.usr.pump_defect_3_a_0 Int) - (failure.usr.pump_control_defect_0_a_0 Int) - (failure.usr.pump_control_defect_1_a_0 Int) - (failure.usr.pump_control_defect_2_a_0 Int) - (failure.usr.pump_control_defect_3_a_0 Int) - (failure.usr.failure_a_0 Bool) - (failure.res.init_flag_a_0 Bool) - (failure.res.abs_0_a_0 Bool) - (failure.res.abs_1_a_0 Bool) - (failure.res.abs_2_a_0 Bool) - (failure.res.abs_3_a_0 Bool) - (failure.res.abs_4_a_0 Bool) - (failure.res.abs_5_a_0 Bool) - (failure.res.abs_6_a_0 Bool) - (failure.res.abs_7_a_0 Bool) - (failure.res.abs_8_a_0 Bool) - (failure.res.abs_9_a_0 Bool) - (failure.res.abs_10_a_0 Bool) - (failure.res.abs_11_a_0 Bool) - (failure.res.inst_11_a_0 Bool) - (failure.res.inst_10_a_0 Bool) - (failure.res.inst_9_a_0 Bool) - (failure.res.inst_8_a_0 Bool) - (failure.res.inst_7_a_0 Bool) - (failure.res.inst_6_a_0 Bool) - (failure.res.inst_5_a_0 Bool) - (failure.res.inst_4_a_0 Bool) - (failure.res.inst_3_a_0 Bool) - (failure.res.inst_2_a_0 Bool) - (failure.res.inst_1_a_0 Bool) - (failure.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - failure.usr.failure_a_0 - (or - (or (or failure.res.abs_0_a_0 failure.res.abs_1_a_0) failure.res.abs_6_a_0) - failure.res.abs_11_a_0)) - (__node_init_level_failure_0 - failure.usr.level_defect_a_0 - failure.res.abs_0_a_0 - failure.res.inst_11_a_0) - (__node_init_steam_failure_0 - failure.usr.steam_defect_a_0 - failure.res.abs_1_a_0 - failure.res.inst_10_a_0) - (__node_init_OR_0 - failure.res.abs_2_a_0 - failure.res.abs_3_a_0 - failure.res.abs_4_a_0 - failure.res.abs_5_a_0 - failure.res.abs_6_a_0 - failure.res.inst_9_a_0) - (__node_init_pump_failure_0 - failure.usr.pump_defect_0_a_0 - failure.res.abs_2_a_0 - failure.res.inst_8_a_0) - (__node_init_pump_failure_0 - failure.usr.pump_defect_1_a_0 - failure.res.abs_3_a_0 - failure.res.inst_7_a_0) - (__node_init_pump_failure_0 - failure.usr.pump_defect_2_a_0 - failure.res.abs_4_a_0 - failure.res.inst_6_a_0) - (__node_init_pump_failure_0 - failure.usr.pump_defect_3_a_0 - failure.res.abs_5_a_0 - failure.res.inst_5_a_0) - (__node_init_OR_0 - failure.res.abs_7_a_0 - failure.res.abs_8_a_0 - failure.res.abs_9_a_0 - failure.res.abs_10_a_0 - failure.res.abs_11_a_0 - failure.res.inst_4_a_0) - (__node_init_pump_control_failure_0 - failure.usr.pump_control_defect_0_a_0 - failure.res.abs_7_a_0 - failure.res.inst_3_a_0) - (__node_init_pump_control_failure_0 - failure.usr.pump_control_defect_1_a_0 - failure.res.abs_8_a_0 - failure.res.inst_2_a_0) - (__node_init_pump_control_failure_0 - failure.usr.pump_control_defect_2_a_0 - failure.res.abs_9_a_0 - failure.res.inst_1_a_0) - (__node_init_pump_control_failure_0 - failure.usr.pump_control_defect_3_a_0 - failure.res.abs_10_a_0 - failure.res.inst_0_a_0) - failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_failure_0 ( - (failure.usr.level_defect_a_1 Int) - (failure.usr.steam_defect_a_1 Int) - (failure.usr.pump_defect_0_a_1 Int) - (failure.usr.pump_defect_1_a_1 Int) - (failure.usr.pump_defect_2_a_1 Int) - (failure.usr.pump_defect_3_a_1 Int) - (failure.usr.pump_control_defect_0_a_1 Int) - (failure.usr.pump_control_defect_1_a_1 Int) - (failure.usr.pump_control_defect_2_a_1 Int) - (failure.usr.pump_control_defect_3_a_1 Int) - (failure.usr.failure_a_1 Bool) - (failure.res.init_flag_a_1 Bool) - (failure.res.abs_0_a_1 Bool) - (failure.res.abs_1_a_1 Bool) - (failure.res.abs_2_a_1 Bool) - (failure.res.abs_3_a_1 Bool) - (failure.res.abs_4_a_1 Bool) - (failure.res.abs_5_a_1 Bool) - (failure.res.abs_6_a_1 Bool) - (failure.res.abs_7_a_1 Bool) - (failure.res.abs_8_a_1 Bool) - (failure.res.abs_9_a_1 Bool) - (failure.res.abs_10_a_1 Bool) - (failure.res.abs_11_a_1 Bool) - (failure.res.inst_11_a_1 Bool) - (failure.res.inst_10_a_1 Bool) - (failure.res.inst_9_a_1 Bool) - (failure.res.inst_8_a_1 Bool) - (failure.res.inst_7_a_1 Bool) - (failure.res.inst_6_a_1 Bool) - (failure.res.inst_5_a_1 Bool) - (failure.res.inst_4_a_1 Bool) - (failure.res.inst_3_a_1 Bool) - (failure.res.inst_2_a_1 Bool) - (failure.res.inst_1_a_1 Bool) - (failure.res.inst_0_a_1 Bool) - (failure.usr.level_defect_a_0 Int) - (failure.usr.steam_defect_a_0 Int) - (failure.usr.pump_defect_0_a_0 Int) - (failure.usr.pump_defect_1_a_0 Int) - (failure.usr.pump_defect_2_a_0 Int) - (failure.usr.pump_defect_3_a_0 Int) - (failure.usr.pump_control_defect_0_a_0 Int) - (failure.usr.pump_control_defect_1_a_0 Int) - (failure.usr.pump_control_defect_2_a_0 Int) - (failure.usr.pump_control_defect_3_a_0 Int) - (failure.usr.failure_a_0 Bool) - (failure.res.init_flag_a_0 Bool) - (failure.res.abs_0_a_0 Bool) - (failure.res.abs_1_a_0 Bool) - (failure.res.abs_2_a_0 Bool) - (failure.res.abs_3_a_0 Bool) - (failure.res.abs_4_a_0 Bool) - (failure.res.abs_5_a_0 Bool) - (failure.res.abs_6_a_0 Bool) - (failure.res.abs_7_a_0 Bool) - (failure.res.abs_8_a_0 Bool) - (failure.res.abs_9_a_0 Bool) - (failure.res.abs_10_a_0 Bool) - (failure.res.abs_11_a_0 Bool) - (failure.res.inst_11_a_0 Bool) - (failure.res.inst_10_a_0 Bool) - (failure.res.inst_9_a_0 Bool) - (failure.res.inst_8_a_0 Bool) - (failure.res.inst_7_a_0 Bool) - (failure.res.inst_6_a_0 Bool) - (failure.res.inst_5_a_0 Bool) - (failure.res.inst_4_a_0 Bool) - (failure.res.inst_3_a_0 Bool) - (failure.res.inst_2_a_0 Bool) - (failure.res.inst_1_a_0 Bool) - (failure.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - failure.usr.failure_a_1 - (or - (or (or failure.res.abs_0_a_1 failure.res.abs_1_a_1) failure.res.abs_6_a_1) - failure.res.abs_11_a_1)) - (__node_trans_level_failure_0 - failure.usr.level_defect_a_1 - failure.res.abs_0_a_1 - failure.res.inst_11_a_1 - failure.usr.level_defect_a_0 - failure.res.abs_0_a_0 - failure.res.inst_11_a_0) - (__node_trans_steam_failure_0 - failure.usr.steam_defect_a_1 - failure.res.abs_1_a_1 - failure.res.inst_10_a_1 - failure.usr.steam_defect_a_0 - failure.res.abs_1_a_0 - failure.res.inst_10_a_0) - (__node_trans_OR_0 - failure.res.abs_2_a_1 - failure.res.abs_3_a_1 - failure.res.abs_4_a_1 - failure.res.abs_5_a_1 - failure.res.abs_6_a_1 - failure.res.inst_9_a_1 - failure.res.abs_2_a_0 - failure.res.abs_3_a_0 - failure.res.abs_4_a_0 - failure.res.abs_5_a_0 - failure.res.abs_6_a_0 - failure.res.inst_9_a_0) - (__node_trans_pump_failure_0 - failure.usr.pump_defect_0_a_1 - failure.res.abs_2_a_1 - failure.res.inst_8_a_1 - failure.usr.pump_defect_0_a_0 - failure.res.abs_2_a_0 - failure.res.inst_8_a_0) - (__node_trans_pump_failure_0 - failure.usr.pump_defect_1_a_1 - failure.res.abs_3_a_1 - failure.res.inst_7_a_1 - failure.usr.pump_defect_1_a_0 - failure.res.abs_3_a_0 - failure.res.inst_7_a_0) - (__node_trans_pump_failure_0 - failure.usr.pump_defect_2_a_1 - failure.res.abs_4_a_1 - failure.res.inst_6_a_1 - failure.usr.pump_defect_2_a_0 - failure.res.abs_4_a_0 - failure.res.inst_6_a_0) - (__node_trans_pump_failure_0 - failure.usr.pump_defect_3_a_1 - failure.res.abs_5_a_1 - failure.res.inst_5_a_1 - failure.usr.pump_defect_3_a_0 - failure.res.abs_5_a_0 - failure.res.inst_5_a_0) - (__node_trans_OR_0 - failure.res.abs_7_a_1 - failure.res.abs_8_a_1 - failure.res.abs_9_a_1 - failure.res.abs_10_a_1 - failure.res.abs_11_a_1 - failure.res.inst_4_a_1 - failure.res.abs_7_a_0 - failure.res.abs_8_a_0 - failure.res.abs_9_a_0 - failure.res.abs_10_a_0 - failure.res.abs_11_a_0 - failure.res.inst_4_a_0) - (__node_trans_pump_control_failure_0 - failure.usr.pump_control_defect_0_a_1 - failure.res.abs_7_a_1 - failure.res.inst_3_a_1 - failure.usr.pump_control_defect_0_a_0 - failure.res.abs_7_a_0 - failure.res.inst_3_a_0) - (__node_trans_pump_control_failure_0 - failure.usr.pump_control_defect_1_a_1 - failure.res.abs_8_a_1 - failure.res.inst_2_a_1 - failure.usr.pump_control_defect_1_a_0 - failure.res.abs_8_a_0 - failure.res.inst_2_a_0) - (__node_trans_pump_control_failure_0 - failure.usr.pump_control_defect_2_a_1 - failure.res.abs_9_a_1 - failure.res.inst_1_a_1 - failure.usr.pump_control_defect_2_a_0 - failure.res.abs_9_a_0 - failure.res.inst_1_a_0) - (__node_trans_pump_control_failure_0 - failure.usr.pump_control_defect_3_a_1 - failure.res.abs_10_a_1 - failure.res.inst_0_a_1 - failure.usr.pump_control_defect_3_a_0 - failure.res.abs_10_a_0 - failure.res.inst_0_a_0) - (not failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_steam_failure_startup_0 ( - (steam_failure_startup.usr.steam_a_0 Int) - (steam_failure_startup.usr.steam_failure_startup_a_0 Bool) - (steam_failure_startup.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - steam_failure_startup.usr.steam_failure_startup_a_0 - (not (= steam_failure_startup.usr.steam_a_0 0))) - steam_failure_startup.res.init_flag_a_0) -) - -(define-fun - __node_trans_steam_failure_startup_0 ( - (steam_failure_startup.usr.steam_a_1 Int) - (steam_failure_startup.usr.steam_failure_startup_a_1 Bool) - (steam_failure_startup.res.init_flag_a_1 Bool) - (steam_failure_startup.usr.steam_a_0 Int) - (steam_failure_startup.usr.steam_failure_startup_a_0 Bool) - (steam_failure_startup.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - steam_failure_startup.usr.steam_failure_startup_a_1 - (not (= steam_failure_startup.usr.steam_a_1 0))) - (not steam_failure_startup.res.init_flag_a_1)) -) - -(define-fun - __node_init_AND_0 ( - (AND.usr.a_0_a_0 Bool) - (AND.usr.a_1_a_0 Bool) - (AND.usr.a_2_a_0 Bool) - (AND.usr.a_3_a_0 Bool) - (AND.usr.AND_a_0 Bool) - (AND.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - AND.usr.AND_a_0 - (and (and (and AND.usr.a_0_a_0 AND.usr.a_1_a_0) AND.usr.a_2_a_0) AND.usr.a_3_a_0)) - AND.res.init_flag_a_0) -) - -(define-fun - __node_trans_AND_0 ( - (AND.usr.a_0_a_1 Bool) - (AND.usr.a_1_a_1 Bool) - (AND.usr.a_2_a_1 Bool) - (AND.usr.a_3_a_1 Bool) - (AND.usr.AND_a_1 Bool) - (AND.res.init_flag_a_1 Bool) - (AND.usr.a_0_a_0 Bool) - (AND.usr.a_1_a_0 Bool) - (AND.usr.a_2_a_0 Bool) - (AND.usr.a_3_a_0 Bool) - (AND.usr.AND_a_0 Bool) - (AND.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - AND.usr.AND_a_1 - (and (and (and AND.usr.a_0_a_1 AND.usr.a_1_a_1) AND.usr.a_2_a_1) AND.usr.a_3_a_1)) - (not AND.res.init_flag_a_1)) -) - -(define-fun - __node_init_transmission_failure_0 ( - (transmission_failure.usr.pump_state_0_a_0 Int) - (transmission_failure.usr.pump_state_1_a_0 Int) - (transmission_failure.usr.pump_state_2_a_0 Int) - (transmission_failure.usr.pump_state_3_a_0 Int) - (transmission_failure.usr.transmission_failure_a_0 Bool) - (transmission_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - transmission_failure.usr.transmission_failure_a_0 - (or - (or - (or - (= transmission_failure.usr.pump_state_0_a_0 3) - (= transmission_failure.usr.pump_state_1_a_0 3)) - (= transmission_failure.usr.pump_state_2_a_0 3)) - (= transmission_failure.usr.pump_state_3_a_0 3))) - transmission_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_transmission_failure_0 ( - (transmission_failure.usr.pump_state_0_a_1 Int) - (transmission_failure.usr.pump_state_1_a_1 Int) - (transmission_failure.usr.pump_state_2_a_1 Int) - (transmission_failure.usr.pump_state_3_a_1 Int) - (transmission_failure.usr.transmission_failure_a_1 Bool) - (transmission_failure.res.init_flag_a_1 Bool) - (transmission_failure.usr.pump_state_0_a_0 Int) - (transmission_failure.usr.pump_state_1_a_0 Int) - (transmission_failure.usr.pump_state_2_a_0 Int) - (transmission_failure.usr.pump_state_3_a_0 Int) - (transmission_failure.usr.transmission_failure_a_0 Bool) - (transmission_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - transmission_failure.usr.transmission_failure_a_1 - (or - (or - (or - (= transmission_failure.usr.pump_state_0_a_1 3) - (= transmission_failure.usr.pump_state_1_a_1 3)) - (= transmission_failure.usr.pump_state_2_a_1 3)) - (= transmission_failure.usr.pump_state_3_a_1 3))) - (not transmission_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_critical_failure_0 ( - (critical_failure.usr.op_mode_a_0 Int) - (critical_failure.usr.steam_a_0 Int) - (critical_failure.usr.level_defect_a_0 Int) - (critical_failure.usr.steam_defect_a_0 Int) - (critical_failure.usr.pump_defect_0_a_0 Int) - (critical_failure.usr.pump_defect_1_a_0 Int) - (critical_failure.usr.pump_defect_2_a_0 Int) - (critical_failure.usr.pump_defect_3_a_0 Int) - (critical_failure.usr.q_a_0 Int) - (critical_failure.usr.pump_state_0_a_0 Int) - (critical_failure.usr.pump_state_1_a_0 Int) - (critical_failure.usr.pump_state_2_a_0 Int) - (critical_failure.usr.pump_state_3_a_0 Int) - (critical_failure.usr.critical_failure_a_0 Bool) - (critical_failure.res.init_flag_a_0 Bool) - (critical_failure.res.abs_0_a_0 Bool) - (critical_failure.res.abs_1_a_0 Bool) - (critical_failure.res.abs_2_a_0 Bool) - (critical_failure.res.abs_3_a_0 Bool) - (critical_failure.res.abs_4_a_0 Bool) - (critical_failure.res.abs_5_a_0 Bool) - (critical_failure.res.abs_6_a_0 Bool) - (critical_failure.res.abs_7_a_0 Bool) - (critical_failure.res.abs_8_a_0 Bool) - (critical_failure.res.abs_9_a_0 Bool) - (critical_failure.res.inst_9_a_0 Bool) - (critical_failure.res.inst_8_a_0 Bool) - (critical_failure.res.inst_7_a_0 Bool) - (critical_failure.res.inst_6_a_0 Bool) - (critical_failure.res.inst_5_a_0 Bool) - (critical_failure.res.inst_4_a_0 Bool) - (critical_failure.res.inst_3_a_0 Bool) - (critical_failure.res.inst_2_a_0 Bool) - (critical_failure.res.inst_1_a_0 Bool) - (critical_failure.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - critical_failure.usr.critical_failure_a_0 - (or - (or - (or - (or - (or - critical_failure.res.abs_0_a_0 - (and - (= critical_failure.usr.op_mode_a_0 1) - critical_failure.res.abs_1_a_0)) - (and - (= critical_failure.usr.op_mode_a_0 2) - (or critical_failure.res.abs_2_a_0 critical_failure.res.abs_3_a_0))) - (and - (= critical_failure.usr.op_mode_a_0 3) - critical_failure.res.abs_4_a_0)) - (and (= critical_failure.usr.op_mode_a_0 4) critical_failure.res.abs_4_a_0)) - (and - (= critical_failure.usr.op_mode_a_0 5) - (or - (or critical_failure.res.abs_4_a_0 critical_failure.res.abs_3_a_0) - critical_failure.res.abs_9_a_0)))) - (__node_init_transmission_failure_0 - critical_failure.usr.pump_state_0_a_0 - critical_failure.usr.pump_state_1_a_0 - critical_failure.usr.pump_state_2_a_0 - critical_failure.usr.pump_state_3_a_0 - critical_failure.res.abs_0_a_0 - critical_failure.res.inst_9_a_0) - (__node_init_steam_failure_startup_0 - critical_failure.usr.steam_a_0 - critical_failure.res.abs_1_a_0 - critical_failure.res.inst_8_a_0) - (__node_init_level_failure_0 - critical_failure.usr.level_defect_a_0 - critical_failure.res.abs_2_a_0 - critical_failure.res.inst_7_a_0) - (__node_init_steam_failure_0 - critical_failure.usr.steam_defect_a_0 - critical_failure.res.abs_3_a_0 - critical_failure.res.inst_6_a_0) - (__node_init_dangerous_level_0 - critical_failure.usr.q_a_0 - critical_failure.res.abs_4_a_0 - critical_failure.res.inst_5_a_0) - (__node_init_AND_0 - critical_failure.res.abs_5_a_0 - critical_failure.res.abs_6_a_0 - critical_failure.res.abs_7_a_0 - critical_failure.res.abs_8_a_0 - critical_failure.res.abs_9_a_0 - critical_failure.res.inst_4_a_0) - (__node_init_pump_failure_0 - critical_failure.usr.pump_defect_0_a_0 - critical_failure.res.abs_5_a_0 - critical_failure.res.inst_3_a_0) - (__node_init_pump_failure_0 - critical_failure.usr.pump_defect_1_a_0 - critical_failure.res.abs_6_a_0 - critical_failure.res.inst_2_a_0) - (__node_init_pump_failure_0 - critical_failure.usr.pump_defect_2_a_0 - critical_failure.res.abs_7_a_0 - critical_failure.res.inst_1_a_0) - (__node_init_pump_failure_0 - critical_failure.usr.pump_defect_3_a_0 - critical_failure.res.abs_8_a_0 - critical_failure.res.inst_0_a_0) - critical_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_critical_failure_0 ( - (critical_failure.usr.op_mode_a_1 Int) - (critical_failure.usr.steam_a_1 Int) - (critical_failure.usr.level_defect_a_1 Int) - (critical_failure.usr.steam_defect_a_1 Int) - (critical_failure.usr.pump_defect_0_a_1 Int) - (critical_failure.usr.pump_defect_1_a_1 Int) - (critical_failure.usr.pump_defect_2_a_1 Int) - (critical_failure.usr.pump_defect_3_a_1 Int) - (critical_failure.usr.q_a_1 Int) - (critical_failure.usr.pump_state_0_a_1 Int) - (critical_failure.usr.pump_state_1_a_1 Int) - (critical_failure.usr.pump_state_2_a_1 Int) - (critical_failure.usr.pump_state_3_a_1 Int) - (critical_failure.usr.critical_failure_a_1 Bool) - (critical_failure.res.init_flag_a_1 Bool) - (critical_failure.res.abs_0_a_1 Bool) - (critical_failure.res.abs_1_a_1 Bool) - (critical_failure.res.abs_2_a_1 Bool) - (critical_failure.res.abs_3_a_1 Bool) - (critical_failure.res.abs_4_a_1 Bool) - (critical_failure.res.abs_5_a_1 Bool) - (critical_failure.res.abs_6_a_1 Bool) - (critical_failure.res.abs_7_a_1 Bool) - (critical_failure.res.abs_8_a_1 Bool) - (critical_failure.res.abs_9_a_1 Bool) - (critical_failure.res.inst_9_a_1 Bool) - (critical_failure.res.inst_8_a_1 Bool) - (critical_failure.res.inst_7_a_1 Bool) - (critical_failure.res.inst_6_a_1 Bool) - (critical_failure.res.inst_5_a_1 Bool) - (critical_failure.res.inst_4_a_1 Bool) - (critical_failure.res.inst_3_a_1 Bool) - (critical_failure.res.inst_2_a_1 Bool) - (critical_failure.res.inst_1_a_1 Bool) - (critical_failure.res.inst_0_a_1 Bool) - (critical_failure.usr.op_mode_a_0 Int) - (critical_failure.usr.steam_a_0 Int) - (critical_failure.usr.level_defect_a_0 Int) - (critical_failure.usr.steam_defect_a_0 Int) - (critical_failure.usr.pump_defect_0_a_0 Int) - (critical_failure.usr.pump_defect_1_a_0 Int) - (critical_failure.usr.pump_defect_2_a_0 Int) - (critical_failure.usr.pump_defect_3_a_0 Int) - (critical_failure.usr.q_a_0 Int) - (critical_failure.usr.pump_state_0_a_0 Int) - (critical_failure.usr.pump_state_1_a_0 Int) - (critical_failure.usr.pump_state_2_a_0 Int) - (critical_failure.usr.pump_state_3_a_0 Int) - (critical_failure.usr.critical_failure_a_0 Bool) - (critical_failure.res.init_flag_a_0 Bool) - (critical_failure.res.abs_0_a_0 Bool) - (critical_failure.res.abs_1_a_0 Bool) - (critical_failure.res.abs_2_a_0 Bool) - (critical_failure.res.abs_3_a_0 Bool) - (critical_failure.res.abs_4_a_0 Bool) - (critical_failure.res.abs_5_a_0 Bool) - (critical_failure.res.abs_6_a_0 Bool) - (critical_failure.res.abs_7_a_0 Bool) - (critical_failure.res.abs_8_a_0 Bool) - (critical_failure.res.abs_9_a_0 Bool) - (critical_failure.res.inst_9_a_0 Bool) - (critical_failure.res.inst_8_a_0 Bool) - (critical_failure.res.inst_7_a_0 Bool) - (critical_failure.res.inst_6_a_0 Bool) - (critical_failure.res.inst_5_a_0 Bool) - (critical_failure.res.inst_4_a_0 Bool) - (critical_failure.res.inst_3_a_0 Bool) - (critical_failure.res.inst_2_a_0 Bool) - (critical_failure.res.inst_1_a_0 Bool) - (critical_failure.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - critical_failure.usr.critical_failure_a_1 - (or - (or - (or - (or - (or - critical_failure.res.abs_0_a_1 - (and - (= critical_failure.usr.op_mode_a_1 1) - critical_failure.res.abs_1_a_1)) - (and - (= critical_failure.usr.op_mode_a_1 2) - (or critical_failure.res.abs_2_a_1 critical_failure.res.abs_3_a_1))) - (and - (= critical_failure.usr.op_mode_a_1 3) - critical_failure.res.abs_4_a_1)) - (and (= critical_failure.usr.op_mode_a_1 4) critical_failure.res.abs_4_a_1)) - (and - (= critical_failure.usr.op_mode_a_1 5) - (or - (or critical_failure.res.abs_4_a_1 critical_failure.res.abs_3_a_1) - critical_failure.res.abs_9_a_1)))) - (__node_trans_transmission_failure_0 - critical_failure.usr.pump_state_0_a_1 - critical_failure.usr.pump_state_1_a_1 - critical_failure.usr.pump_state_2_a_1 - critical_failure.usr.pump_state_3_a_1 - critical_failure.res.abs_0_a_1 - critical_failure.res.inst_9_a_1 - critical_failure.usr.pump_state_0_a_0 - critical_failure.usr.pump_state_1_a_0 - critical_failure.usr.pump_state_2_a_0 - critical_failure.usr.pump_state_3_a_0 - critical_failure.res.abs_0_a_0 - critical_failure.res.inst_9_a_0) - (__node_trans_steam_failure_startup_0 - critical_failure.usr.steam_a_1 - critical_failure.res.abs_1_a_1 - critical_failure.res.inst_8_a_1 - critical_failure.usr.steam_a_0 - critical_failure.res.abs_1_a_0 - critical_failure.res.inst_8_a_0) - (__node_trans_level_failure_0 - critical_failure.usr.level_defect_a_1 - critical_failure.res.abs_2_a_1 - critical_failure.res.inst_7_a_1 - critical_failure.usr.level_defect_a_0 - critical_failure.res.abs_2_a_0 - critical_failure.res.inst_7_a_0) - (__node_trans_steam_failure_0 - critical_failure.usr.steam_defect_a_1 - critical_failure.res.abs_3_a_1 - critical_failure.res.inst_6_a_1 - critical_failure.usr.steam_defect_a_0 - critical_failure.res.abs_3_a_0 - critical_failure.res.inst_6_a_0) - (__node_trans_dangerous_level_0 - critical_failure.usr.q_a_1 - critical_failure.res.abs_4_a_1 - critical_failure.res.inst_5_a_1 - critical_failure.usr.q_a_0 - critical_failure.res.abs_4_a_0 - critical_failure.res.inst_5_a_0) - (__node_trans_AND_0 - critical_failure.res.abs_5_a_1 - critical_failure.res.abs_6_a_1 - critical_failure.res.abs_7_a_1 - critical_failure.res.abs_8_a_1 - critical_failure.res.abs_9_a_1 - critical_failure.res.inst_4_a_1 - critical_failure.res.abs_5_a_0 - critical_failure.res.abs_6_a_0 - critical_failure.res.abs_7_a_0 - critical_failure.res.abs_8_a_0 - critical_failure.res.abs_9_a_0 - critical_failure.res.inst_4_a_0) - (__node_trans_pump_failure_0 - critical_failure.usr.pump_defect_0_a_1 - critical_failure.res.abs_5_a_1 - critical_failure.res.inst_3_a_1 - critical_failure.usr.pump_defect_0_a_0 - critical_failure.res.abs_5_a_0 - critical_failure.res.inst_3_a_0) - (__node_trans_pump_failure_0 - critical_failure.usr.pump_defect_1_a_1 - critical_failure.res.abs_6_a_1 - critical_failure.res.inst_2_a_1 - critical_failure.usr.pump_defect_1_a_0 - critical_failure.res.abs_6_a_0 - critical_failure.res.inst_2_a_0) - (__node_trans_pump_failure_0 - critical_failure.usr.pump_defect_2_a_1 - critical_failure.res.abs_7_a_1 - critical_failure.res.inst_1_a_1 - critical_failure.usr.pump_defect_2_a_0 - critical_failure.res.abs_7_a_0 - critical_failure.res.inst_1_a_0) - (__node_trans_pump_failure_0 - critical_failure.usr.pump_defect_3_a_1 - critical_failure.res.abs_8_a_1 - critical_failure.res.inst_0_a_1 - critical_failure.usr.pump_defect_3_a_0 - critical_failure.res.abs_8_a_0 - critical_failure.res.inst_0_a_0) - (not critical_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_ControlMode_0 ( - (ControlMode.usr.steam_boiler_waiting_a_0 Bool) - (ControlMode.usr.physical_units_ready_a_0 Bool) - (ControlMode.usr.stop_request_a_0 Bool) - (ControlMode.usr.steam_a_0 Int) - (ControlMode.usr.level_defect_a_0 Int) - (ControlMode.usr.steam_defect_a_0 Int) - (ControlMode.usr.pump_defect_0_a_0 Int) - (ControlMode.usr.pump_defect_1_a_0 Int) - (ControlMode.usr.pump_defect_2_a_0 Int) - (ControlMode.usr.pump_defect_3_a_0 Int) - (ControlMode.usr.pump_control_defect_0_a_0 Int) - (ControlMode.usr.pump_control_defect_1_a_0 Int) - (ControlMode.usr.pump_control_defect_2_a_0 Int) - (ControlMode.usr.pump_control_defect_3_a_0 Int) - (ControlMode.usr.q_a_0 Int) - (ControlMode.usr.pump_state_0_a_0 Int) - (ControlMode.usr.pump_state_1_a_0 Int) - (ControlMode.usr.pump_state_2_a_0 Int) - (ControlMode.usr.pump_state_3_a_0 Int) - (ControlMode.res.nondet_0 Int) - (ControlMode.usr.op_mode_a_0 Int) - (ControlMode.res.init_flag_a_0 Bool) - (ControlMode.res.abs_0_a_0 Int) - (ControlMode.res.abs_1_a_0 Bool) - (ControlMode.res.abs_2_a_0 Bool) - (ControlMode.res.abs_3_a_0 Bool) - (ControlMode.res.inst_46_a_0 Bool) - (ControlMode.res.inst_45_a_0 Bool) - (ControlMode.res.inst_44_a_0 Bool) - (ControlMode.res.inst_43_a_0 Bool) - (ControlMode.res.inst_42_a_0 Bool) - (ControlMode.res.inst_41_a_0 Bool) - (ControlMode.res.inst_40_a_0 Bool) - (ControlMode.res.inst_39_a_0 Bool) - (ControlMode.res.inst_38_a_0 Bool) - (ControlMode.res.inst_37_a_0 Bool) - (ControlMode.res.inst_36_a_0 Bool) - (ControlMode.res.inst_35_a_0 Bool) - (ControlMode.res.inst_34_a_0 Bool) - (ControlMode.res.inst_33_a_0 Bool) - (ControlMode.res.inst_32_a_0 Bool) - (ControlMode.res.inst_31_a_0 Bool) - (ControlMode.res.inst_30_a_0 Bool) - (ControlMode.res.inst_29_a_0 Bool) - (ControlMode.res.inst_28_a_0 Bool) - (ControlMode.res.inst_27_a_0 Bool) - (ControlMode.res.inst_26_a_0 Bool) - (ControlMode.res.inst_25_a_0 Bool) - (ControlMode.res.inst_24_a_0 Bool) - (ControlMode.res.inst_23_a_0 Bool) - (ControlMode.res.inst_22_a_0 Bool) - (ControlMode.res.inst_21_a_0 Bool) - (ControlMode.res.inst_20_a_0 Bool) - (ControlMode.res.inst_19_a_0 Bool) - (ControlMode.res.inst_18_a_0 Bool) - (ControlMode.res.inst_17_a_0 Bool) - (ControlMode.res.inst_16_a_0 Bool) - (ControlMode.res.inst_15_a_0 Bool) - (ControlMode.res.inst_14_a_0 Bool) - (ControlMode.res.inst_13_a_0 Bool) - (ControlMode.res.inst_12_a_0 Bool) - (ControlMode.res.inst_11_a_0 Bool) - (ControlMode.res.inst_10_a_0 Bool) - (ControlMode.res.inst_9_a_0 Bool) - (ControlMode.res.inst_8_a_0 Bool) - (ControlMode.res.inst_7_a_0 Bool) - (ControlMode.res.inst_6_a_0 Bool) - (ControlMode.res.inst_5_a_0 Bool) - (ControlMode.res.inst_4_a_0 Bool) - (ControlMode.res.inst_3_a_0 Bool) - (ControlMode.res.inst_2_a_0 Bool) - (ControlMode.res.inst_1_a_0 Bool) - (ControlMode.res.inst_0_a_0 Bool) - ) Bool - - (and - (= ControlMode.usr.op_mode_a_0 1) - (= ControlMode.res.abs_0_a_0 (let ((X1 Int ControlMode.res.nondet_0)) X1)) - (__node_init_critical_failure_0 - ControlMode.res.abs_0_a_0 - ControlMode.usr.steam_a_0 - ControlMode.usr.level_defect_a_0 - ControlMode.usr.steam_defect_a_0 - ControlMode.usr.pump_defect_0_a_0 - ControlMode.usr.pump_defect_1_a_0 - ControlMode.usr.pump_defect_2_a_0 - ControlMode.usr.pump_defect_3_a_0 - ControlMode.usr.q_a_0 - ControlMode.usr.pump_state_0_a_0 - ControlMode.usr.pump_state_1_a_0 - ControlMode.usr.pump_state_2_a_0 - ControlMode.usr.pump_state_3_a_0 - ControlMode.res.abs_1_a_0 - ControlMode.res.inst_46_a_0 - ControlMode.res.inst_45_a_0 - ControlMode.res.inst_44_a_0 - ControlMode.res.inst_43_a_0 - ControlMode.res.inst_42_a_0 - ControlMode.res.inst_41_a_0 - ControlMode.res.inst_40_a_0 - ControlMode.res.inst_39_a_0 - ControlMode.res.inst_38_a_0 - ControlMode.res.inst_37_a_0 - ControlMode.res.inst_36_a_0 - ControlMode.res.inst_35_a_0 - ControlMode.res.inst_34_a_0 - ControlMode.res.inst_33_a_0 - ControlMode.res.inst_32_a_0 - ControlMode.res.inst_31_a_0 - ControlMode.res.inst_30_a_0 - ControlMode.res.inst_29_a_0 - ControlMode.res.inst_28_a_0 - ControlMode.res.inst_27_a_0 - ControlMode.res.inst_26_a_0) - (__node_init_level_failure_0 - ControlMode.usr.level_defect_a_0 - ControlMode.res.abs_2_a_0 - ControlMode.res.inst_25_a_0) - (__node_init_failure_0 - ControlMode.usr.level_defect_a_0 - ControlMode.usr.steam_defect_a_0 - ControlMode.usr.pump_defect_0_a_0 - ControlMode.usr.pump_defect_1_a_0 - ControlMode.usr.pump_defect_2_a_0 - ControlMode.usr.pump_defect_3_a_0 - ControlMode.usr.pump_control_defect_0_a_0 - ControlMode.usr.pump_control_defect_1_a_0 - ControlMode.usr.pump_control_defect_2_a_0 - ControlMode.usr.pump_control_defect_3_a_0 - ControlMode.res.abs_3_a_0 - ControlMode.res.inst_24_a_0 - ControlMode.res.inst_23_a_0 - ControlMode.res.inst_22_a_0 - ControlMode.res.inst_21_a_0 - ControlMode.res.inst_20_a_0 - ControlMode.res.inst_19_a_0 - ControlMode.res.inst_18_a_0 - ControlMode.res.inst_17_a_0 - ControlMode.res.inst_16_a_0 - ControlMode.res.inst_15_a_0 - ControlMode.res.inst_14_a_0 - ControlMode.res.inst_13_a_0 - ControlMode.res.inst_12_a_0 - ControlMode.res.inst_11_a_0 - ControlMode.res.inst_10_a_0 - ControlMode.res.inst_9_a_0 - ControlMode.res.inst_8_a_0 - ControlMode.res.inst_7_a_0 - ControlMode.res.inst_6_a_0 - ControlMode.res.inst_5_a_0 - ControlMode.res.inst_4_a_0 - ControlMode.res.inst_3_a_0 - ControlMode.res.inst_2_a_0 - ControlMode.res.inst_1_a_0 - ControlMode.res.inst_0_a_0) - (<= 1 ControlMode.usr.op_mode_a_0 6) - ControlMode.res.init_flag_a_0) -) - -(define-fun - __node_trans_ControlMode_0 ( - (ControlMode.usr.steam_boiler_waiting_a_1 Bool) - (ControlMode.usr.physical_units_ready_a_1 Bool) - (ControlMode.usr.stop_request_a_1 Bool) - (ControlMode.usr.steam_a_1 Int) - (ControlMode.usr.level_defect_a_1 Int) - (ControlMode.usr.steam_defect_a_1 Int) - (ControlMode.usr.pump_defect_0_a_1 Int) - (ControlMode.usr.pump_defect_1_a_1 Int) - (ControlMode.usr.pump_defect_2_a_1 Int) - (ControlMode.usr.pump_defect_3_a_1 Int) - (ControlMode.usr.pump_control_defect_0_a_1 Int) - (ControlMode.usr.pump_control_defect_1_a_1 Int) - (ControlMode.usr.pump_control_defect_2_a_1 Int) - (ControlMode.usr.pump_control_defect_3_a_1 Int) - (ControlMode.usr.q_a_1 Int) - (ControlMode.usr.pump_state_0_a_1 Int) - (ControlMode.usr.pump_state_1_a_1 Int) - (ControlMode.usr.pump_state_2_a_1 Int) - (ControlMode.usr.pump_state_3_a_1 Int) - (ControlMode.res.nondet_0 Int) - (ControlMode.usr.op_mode_a_1 Int) - (ControlMode.res.init_flag_a_1 Bool) - (ControlMode.res.abs_0_a_1 Int) - (ControlMode.res.abs_1_a_1 Bool) - (ControlMode.res.abs_2_a_1 Bool) - (ControlMode.res.abs_3_a_1 Bool) - (ControlMode.res.inst_46_a_1 Bool) - (ControlMode.res.inst_45_a_1 Bool) - (ControlMode.res.inst_44_a_1 Bool) - (ControlMode.res.inst_43_a_1 Bool) - (ControlMode.res.inst_42_a_1 Bool) - (ControlMode.res.inst_41_a_1 Bool) - (ControlMode.res.inst_40_a_1 Bool) - (ControlMode.res.inst_39_a_1 Bool) - (ControlMode.res.inst_38_a_1 Bool) - (ControlMode.res.inst_37_a_1 Bool) - (ControlMode.res.inst_36_a_1 Bool) - (ControlMode.res.inst_35_a_1 Bool) - (ControlMode.res.inst_34_a_1 Bool) - (ControlMode.res.inst_33_a_1 Bool) - (ControlMode.res.inst_32_a_1 Bool) - (ControlMode.res.inst_31_a_1 Bool) - (ControlMode.res.inst_30_a_1 Bool) - (ControlMode.res.inst_29_a_1 Bool) - (ControlMode.res.inst_28_a_1 Bool) - (ControlMode.res.inst_27_a_1 Bool) - (ControlMode.res.inst_26_a_1 Bool) - (ControlMode.res.inst_25_a_1 Bool) - (ControlMode.res.inst_24_a_1 Bool) - (ControlMode.res.inst_23_a_1 Bool) - (ControlMode.res.inst_22_a_1 Bool) - (ControlMode.res.inst_21_a_1 Bool) - (ControlMode.res.inst_20_a_1 Bool) - (ControlMode.res.inst_19_a_1 Bool) - (ControlMode.res.inst_18_a_1 Bool) - (ControlMode.res.inst_17_a_1 Bool) - (ControlMode.res.inst_16_a_1 Bool) - (ControlMode.res.inst_15_a_1 Bool) - (ControlMode.res.inst_14_a_1 Bool) - (ControlMode.res.inst_13_a_1 Bool) - (ControlMode.res.inst_12_a_1 Bool) - (ControlMode.res.inst_11_a_1 Bool) - (ControlMode.res.inst_10_a_1 Bool) - (ControlMode.res.inst_9_a_1 Bool) - (ControlMode.res.inst_8_a_1 Bool) - (ControlMode.res.inst_7_a_1 Bool) - (ControlMode.res.inst_6_a_1 Bool) - (ControlMode.res.inst_5_a_1 Bool) - (ControlMode.res.inst_4_a_1 Bool) - (ControlMode.res.inst_3_a_1 Bool) - (ControlMode.res.inst_2_a_1 Bool) - (ControlMode.res.inst_1_a_1 Bool) - (ControlMode.res.inst_0_a_1 Bool) - (ControlMode.usr.steam_boiler_waiting_a_0 Bool) - (ControlMode.usr.physical_units_ready_a_0 Bool) - (ControlMode.usr.stop_request_a_0 Bool) - (ControlMode.usr.steam_a_0 Int) - (ControlMode.usr.level_defect_a_0 Int) - (ControlMode.usr.steam_defect_a_0 Int) - (ControlMode.usr.pump_defect_0_a_0 Int) - (ControlMode.usr.pump_defect_1_a_0 Int) - (ControlMode.usr.pump_defect_2_a_0 Int) - (ControlMode.usr.pump_defect_3_a_0 Int) - (ControlMode.usr.pump_control_defect_0_a_0 Int) - (ControlMode.usr.pump_control_defect_1_a_0 Int) - (ControlMode.usr.pump_control_defect_2_a_0 Int) - (ControlMode.usr.pump_control_defect_3_a_0 Int) - (ControlMode.usr.q_a_0 Int) - (ControlMode.usr.pump_state_0_a_0 Int) - (ControlMode.usr.pump_state_1_a_0 Int) - (ControlMode.usr.pump_state_2_a_0 Int) - (ControlMode.usr.pump_state_3_a_0 Int) - (ControlMode.usr.op_mode_a_0 Int) - (ControlMode.res.init_flag_a_0 Bool) - (ControlMode.res.abs_0_a_0 Int) - (ControlMode.res.abs_1_a_0 Bool) - (ControlMode.res.abs_2_a_0 Bool) - (ControlMode.res.abs_3_a_0 Bool) - (ControlMode.res.inst_46_a_0 Bool) - (ControlMode.res.inst_45_a_0 Bool) - (ControlMode.res.inst_44_a_0 Bool) - (ControlMode.res.inst_43_a_0 Bool) - (ControlMode.res.inst_42_a_0 Bool) - (ControlMode.res.inst_41_a_0 Bool) - (ControlMode.res.inst_40_a_0 Bool) - (ControlMode.res.inst_39_a_0 Bool) - (ControlMode.res.inst_38_a_0 Bool) - (ControlMode.res.inst_37_a_0 Bool) - (ControlMode.res.inst_36_a_0 Bool) - (ControlMode.res.inst_35_a_0 Bool) - (ControlMode.res.inst_34_a_0 Bool) - (ControlMode.res.inst_33_a_0 Bool) - (ControlMode.res.inst_32_a_0 Bool) - (ControlMode.res.inst_31_a_0 Bool) - (ControlMode.res.inst_30_a_0 Bool) - (ControlMode.res.inst_29_a_0 Bool) - (ControlMode.res.inst_28_a_0 Bool) - (ControlMode.res.inst_27_a_0 Bool) - (ControlMode.res.inst_26_a_0 Bool) - (ControlMode.res.inst_25_a_0 Bool) - (ControlMode.res.inst_24_a_0 Bool) - (ControlMode.res.inst_23_a_0 Bool) - (ControlMode.res.inst_22_a_0 Bool) - (ControlMode.res.inst_21_a_0 Bool) - (ControlMode.res.inst_20_a_0 Bool) - (ControlMode.res.inst_19_a_0 Bool) - (ControlMode.res.inst_18_a_0 Bool) - (ControlMode.res.inst_17_a_0 Bool) - (ControlMode.res.inst_16_a_0 Bool) - (ControlMode.res.inst_15_a_0 Bool) - (ControlMode.res.inst_14_a_0 Bool) - (ControlMode.res.inst_13_a_0 Bool) - (ControlMode.res.inst_12_a_0 Bool) - (ControlMode.res.inst_11_a_0 Bool) - (ControlMode.res.inst_10_a_0 Bool) - (ControlMode.res.inst_9_a_0 Bool) - (ControlMode.res.inst_8_a_0 Bool) - (ControlMode.res.inst_7_a_0 Bool) - (ControlMode.res.inst_6_a_0 Bool) - (ControlMode.res.inst_5_a_0 Bool) - (ControlMode.res.inst_4_a_0 Bool) - (ControlMode.res.inst_3_a_0 Bool) - (ControlMode.res.inst_2_a_0 Bool) - (ControlMode.res.inst_1_a_0 Bool) - (ControlMode.res.inst_0_a_0 Bool) - ) Bool - - (and - (= ControlMode.res.abs_0_a_1 ControlMode.usr.op_mode_a_0) - (= - ControlMode.usr.op_mode_a_1 - (ite - (or - (or ControlMode.res.abs_1_a_1 ControlMode.usr.stop_request_a_1) - (= ControlMode.usr.op_mode_a_0 6)) - 6 - (ite - (= ControlMode.usr.op_mode_a_0 1) - (ite ControlMode.usr.steam_boiler_waiting_a_1 2 1) - (ite - (and - (= ControlMode.usr.op_mode_a_0 2) - (not ControlMode.usr.physical_units_ready_a_1)) - 2 - (ite ControlMode.res.abs_2_a_1 5 (ite ControlMode.res.abs_3_a_1 4 3)))))) - (__node_trans_critical_failure_0 - ControlMode.res.abs_0_a_1 - ControlMode.usr.steam_a_1 - ControlMode.usr.level_defect_a_1 - ControlMode.usr.steam_defect_a_1 - ControlMode.usr.pump_defect_0_a_1 - ControlMode.usr.pump_defect_1_a_1 - ControlMode.usr.pump_defect_2_a_1 - ControlMode.usr.pump_defect_3_a_1 - ControlMode.usr.q_a_1 - ControlMode.usr.pump_state_0_a_1 - ControlMode.usr.pump_state_1_a_1 - ControlMode.usr.pump_state_2_a_1 - ControlMode.usr.pump_state_3_a_1 - ControlMode.res.abs_1_a_1 - ControlMode.res.inst_46_a_1 - ControlMode.res.inst_45_a_1 - ControlMode.res.inst_44_a_1 - ControlMode.res.inst_43_a_1 - ControlMode.res.inst_42_a_1 - ControlMode.res.inst_41_a_1 - ControlMode.res.inst_40_a_1 - ControlMode.res.inst_39_a_1 - ControlMode.res.inst_38_a_1 - ControlMode.res.inst_37_a_1 - ControlMode.res.inst_36_a_1 - ControlMode.res.inst_35_a_1 - ControlMode.res.inst_34_a_1 - ControlMode.res.inst_33_a_1 - ControlMode.res.inst_32_a_1 - ControlMode.res.inst_31_a_1 - ControlMode.res.inst_30_a_1 - ControlMode.res.inst_29_a_1 - ControlMode.res.inst_28_a_1 - ControlMode.res.inst_27_a_1 - ControlMode.res.inst_26_a_1 - ControlMode.res.abs_0_a_0 - ControlMode.usr.steam_a_0 - ControlMode.usr.level_defect_a_0 - ControlMode.usr.steam_defect_a_0 - ControlMode.usr.pump_defect_0_a_0 - ControlMode.usr.pump_defect_1_a_0 - ControlMode.usr.pump_defect_2_a_0 - ControlMode.usr.pump_defect_3_a_0 - ControlMode.usr.q_a_0 - ControlMode.usr.pump_state_0_a_0 - ControlMode.usr.pump_state_1_a_0 - ControlMode.usr.pump_state_2_a_0 - ControlMode.usr.pump_state_3_a_0 - ControlMode.res.abs_1_a_0 - ControlMode.res.inst_46_a_0 - ControlMode.res.inst_45_a_0 - ControlMode.res.inst_44_a_0 - ControlMode.res.inst_43_a_0 - ControlMode.res.inst_42_a_0 - ControlMode.res.inst_41_a_0 - ControlMode.res.inst_40_a_0 - ControlMode.res.inst_39_a_0 - ControlMode.res.inst_38_a_0 - ControlMode.res.inst_37_a_0 - ControlMode.res.inst_36_a_0 - ControlMode.res.inst_35_a_0 - ControlMode.res.inst_34_a_0 - ControlMode.res.inst_33_a_0 - ControlMode.res.inst_32_a_0 - ControlMode.res.inst_31_a_0 - ControlMode.res.inst_30_a_0 - ControlMode.res.inst_29_a_0 - ControlMode.res.inst_28_a_0 - ControlMode.res.inst_27_a_0 - ControlMode.res.inst_26_a_0) - (__node_trans_level_failure_0 - ControlMode.usr.level_defect_a_1 - ControlMode.res.abs_2_a_1 - ControlMode.res.inst_25_a_1 - ControlMode.usr.level_defect_a_0 - ControlMode.res.abs_2_a_0 - ControlMode.res.inst_25_a_0) - (__node_trans_failure_0 - ControlMode.usr.level_defect_a_1 - ControlMode.usr.steam_defect_a_1 - ControlMode.usr.pump_defect_0_a_1 - ControlMode.usr.pump_defect_1_a_1 - ControlMode.usr.pump_defect_2_a_1 - ControlMode.usr.pump_defect_3_a_1 - ControlMode.usr.pump_control_defect_0_a_1 - ControlMode.usr.pump_control_defect_1_a_1 - ControlMode.usr.pump_control_defect_2_a_1 - ControlMode.usr.pump_control_defect_3_a_1 - ControlMode.res.abs_3_a_1 - ControlMode.res.inst_24_a_1 - ControlMode.res.inst_23_a_1 - ControlMode.res.inst_22_a_1 - ControlMode.res.inst_21_a_1 - ControlMode.res.inst_20_a_1 - ControlMode.res.inst_19_a_1 - ControlMode.res.inst_18_a_1 - ControlMode.res.inst_17_a_1 - ControlMode.res.inst_16_a_1 - ControlMode.res.inst_15_a_1 - ControlMode.res.inst_14_a_1 - ControlMode.res.inst_13_a_1 - ControlMode.res.inst_12_a_1 - ControlMode.res.inst_11_a_1 - ControlMode.res.inst_10_a_1 - ControlMode.res.inst_9_a_1 - ControlMode.res.inst_8_a_1 - ControlMode.res.inst_7_a_1 - ControlMode.res.inst_6_a_1 - ControlMode.res.inst_5_a_1 - ControlMode.res.inst_4_a_1 - ControlMode.res.inst_3_a_1 - ControlMode.res.inst_2_a_1 - ControlMode.res.inst_1_a_1 - ControlMode.res.inst_0_a_1 - ControlMode.usr.level_defect_a_0 - ControlMode.usr.steam_defect_a_0 - ControlMode.usr.pump_defect_0_a_0 - ControlMode.usr.pump_defect_1_a_0 - ControlMode.usr.pump_defect_2_a_0 - ControlMode.usr.pump_defect_3_a_0 - ControlMode.usr.pump_control_defect_0_a_0 - ControlMode.usr.pump_control_defect_1_a_0 - ControlMode.usr.pump_control_defect_2_a_0 - ControlMode.usr.pump_control_defect_3_a_0 - ControlMode.res.abs_3_a_0 - ControlMode.res.inst_24_a_0 - ControlMode.res.inst_23_a_0 - ControlMode.res.inst_22_a_0 - ControlMode.res.inst_21_a_0 - ControlMode.res.inst_20_a_0 - ControlMode.res.inst_19_a_0 - ControlMode.res.inst_18_a_0 - ControlMode.res.inst_17_a_0 - ControlMode.res.inst_16_a_0 - ControlMode.res.inst_15_a_0 - ControlMode.res.inst_14_a_0 - ControlMode.res.inst_13_a_0 - ControlMode.res.inst_12_a_0 - ControlMode.res.inst_11_a_0 - ControlMode.res.inst_10_a_0 - ControlMode.res.inst_9_a_0 - ControlMode.res.inst_8_a_0 - ControlMode.res.inst_7_a_0 - ControlMode.res.inst_6_a_0 - ControlMode.res.inst_5_a_0 - ControlMode.res.inst_4_a_0 - ControlMode.res.inst_3_a_0 - ControlMode.res.inst_2_a_0 - ControlMode.res.inst_1_a_0 - ControlMode.res.inst_0_a_0) - (<= 1 ControlMode.usr.op_mode_a_1 6) - (not ControlMode.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.steam_boiler_waiting_a_0 Bool) - (top.usr.physical_units_ready_a_0 Bool) - (top.usr.stop_request_a_0 Bool) - (top.usr.steam_a_0 Int) - (top.usr.level_defect_a_0 Int) - (top.usr.steam_defect_a_0 Int) - (top.usr.pump_defect_0_a_0 Int) - (top.usr.pump_defect_1_a_0 Int) - (top.usr.pump_defect_2_a_0 Int) - (top.usr.pump_defect_3_a_0 Int) - (top.usr.pump_control_defect_0_a_0 Int) - (top.usr.pump_control_defect_1_a_0 Int) - (top.usr.pump_control_defect_2_a_0 Int) - (top.usr.pump_control_defect_3_a_0 Int) - (top.usr.q_a_0 Int) - (top.usr.pump_state_0_a_0 Int) - (top.usr.pump_state_1_a_0 Int) - (top.usr.pump_state_2_a_0 Int) - (top.usr.pump_state_3_a_0 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.op_mode_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Bool) - (top.res.inst_52_a_0 Bool) - (top.res.inst_51_a_0 Int) - (top.res.inst_50_a_0 Bool) - (top.res.inst_49_a_0 Bool) - (top.res.inst_48_a_0 Bool) - (top.res.inst_47_a_0 Bool) - (top.res.inst_46_a_0 Bool) - (top.res.inst_45_a_0 Bool) - (top.res.inst_44_a_0 Bool) - (top.res.inst_43_a_0 Bool) - (top.res.inst_42_a_0 Bool) - (top.res.inst_41_a_0 Bool) - (top.res.inst_40_a_0 Bool) - (top.res.inst_39_a_0 Bool) - (top.res.inst_38_a_0 Bool) - (top.res.inst_37_a_0 Bool) - (top.res.inst_36_a_0 Bool) - (top.res.inst_35_a_0 Bool) - (top.res.inst_34_a_0 Bool) - (top.res.inst_33_a_0 Bool) - (top.res.inst_32_a_0 Bool) - (top.res.inst_31_a_0 Bool) - (top.res.inst_30_a_0 Bool) - (top.res.inst_29_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Bool) - (top.res.inst_23_a_0 Bool) - (top.res.inst_22_a_0 Bool) - (top.res.inst_21_a_0 Bool) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.op_mode_a_0 top.res.abs_0_a_0) - (let - ((X1 Bool (=> (= top.impl.usr.op_mode_a_0 3) (not top.usr.stop_request_a_0)))) - (let - ((X2 Bool true)) - (and - (= top.usr.OK_a_0 (and X2 X1)) - (__node_init_ControlMode_0 - top.usr.steam_boiler_waiting_a_0 - top.usr.physical_units_ready_a_0 - top.usr.stop_request_a_0 - top.usr.steam_a_0 - top.usr.level_defect_a_0 - top.usr.steam_defect_a_0 - top.usr.pump_defect_0_a_0 - top.usr.pump_defect_1_a_0 - top.usr.pump_defect_2_a_0 - top.usr.pump_defect_3_a_0 - top.usr.pump_control_defect_0_a_0 - top.usr.pump_control_defect_1_a_0 - top.usr.pump_control_defect_2_a_0 - top.usr.pump_control_defect_3_a_0 - top.usr.q_a_0 - top.usr.pump_state_0_a_0 - top.usr.pump_state_1_a_0 - top.usr.pump_state_2_a_0 - top.usr.pump_state_3_a_0 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.inst_52_a_0 - top.res.inst_51_a_0 - top.res.inst_50_a_0 - top.res.inst_49_a_0 - top.res.inst_48_a_0 - top.res.inst_47_a_0 - top.res.inst_46_a_0 - top.res.inst_45_a_0 - top.res.inst_44_a_0 - top.res.inst_43_a_0 - top.res.inst_42_a_0 - top.res.inst_41_a_0 - top.res.inst_40_a_0 - top.res.inst_39_a_0 - top.res.inst_38_a_0 - top.res.inst_37_a_0 - top.res.inst_36_a_0 - top.res.inst_35_a_0 - top.res.inst_34_a_0 - top.res.inst_33_a_0 - top.res.inst_32_a_0 - top.res.inst_31_a_0 - top.res.inst_30_a_0 - top.res.inst_29_a_0 - top.res.inst_28_a_0 - top.res.inst_27_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_init_dangerous_level_0 - top.usr.q_a_0 - top.res.abs_1_a_0 - top.res.inst_0_a_0) - (<= 1 top.impl.usr.op_mode_a_0 6) - (<= 1 top.res.abs_0_a_0 6) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.steam_boiler_waiting_a_1 Bool) - (top.usr.physical_units_ready_a_1 Bool) - (top.usr.stop_request_a_1 Bool) - (top.usr.steam_a_1 Int) - (top.usr.level_defect_a_1 Int) - (top.usr.steam_defect_a_1 Int) - (top.usr.pump_defect_0_a_1 Int) - (top.usr.pump_defect_1_a_1 Int) - (top.usr.pump_defect_2_a_1 Int) - (top.usr.pump_defect_3_a_1 Int) - (top.usr.pump_control_defect_0_a_1 Int) - (top.usr.pump_control_defect_1_a_1 Int) - (top.usr.pump_control_defect_2_a_1 Int) - (top.usr.pump_control_defect_3_a_1 Int) - (top.usr.q_a_1 Int) - (top.usr.pump_state_0_a_1 Int) - (top.usr.pump_state_1_a_1 Int) - (top.usr.pump_state_2_a_1 Int) - (top.usr.pump_state_3_a_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.op_mode_a_1 Int) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Bool) - (top.res.inst_52_a_1 Bool) - (top.res.inst_51_a_1 Int) - (top.res.inst_50_a_1 Bool) - (top.res.inst_49_a_1 Bool) - (top.res.inst_48_a_1 Bool) - (top.res.inst_47_a_1 Bool) - (top.res.inst_46_a_1 Bool) - (top.res.inst_45_a_1 Bool) - (top.res.inst_44_a_1 Bool) - (top.res.inst_43_a_1 Bool) - (top.res.inst_42_a_1 Bool) - (top.res.inst_41_a_1 Bool) - (top.res.inst_40_a_1 Bool) - (top.res.inst_39_a_1 Bool) - (top.res.inst_38_a_1 Bool) - (top.res.inst_37_a_1 Bool) - (top.res.inst_36_a_1 Bool) - (top.res.inst_35_a_1 Bool) - (top.res.inst_34_a_1 Bool) - (top.res.inst_33_a_1 Bool) - (top.res.inst_32_a_1 Bool) - (top.res.inst_31_a_1 Bool) - (top.res.inst_30_a_1 Bool) - (top.res.inst_29_a_1 Bool) - (top.res.inst_28_a_1 Bool) - (top.res.inst_27_a_1 Bool) - (top.res.inst_26_a_1 Bool) - (top.res.inst_25_a_1 Bool) - (top.res.inst_24_a_1 Bool) - (top.res.inst_23_a_1 Bool) - (top.res.inst_22_a_1 Bool) - (top.res.inst_21_a_1 Bool) - (top.res.inst_20_a_1 Bool) - (top.res.inst_19_a_1 Bool) - (top.res.inst_18_a_1 Bool) - (top.res.inst_17_a_1 Bool) - (top.res.inst_16_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Bool) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Bool) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Bool) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.steam_boiler_waiting_a_0 Bool) - (top.usr.physical_units_ready_a_0 Bool) - (top.usr.stop_request_a_0 Bool) - (top.usr.steam_a_0 Int) - (top.usr.level_defect_a_0 Int) - (top.usr.steam_defect_a_0 Int) - (top.usr.pump_defect_0_a_0 Int) - (top.usr.pump_defect_1_a_0 Int) - (top.usr.pump_defect_2_a_0 Int) - (top.usr.pump_defect_3_a_0 Int) - (top.usr.pump_control_defect_0_a_0 Int) - (top.usr.pump_control_defect_1_a_0 Int) - (top.usr.pump_control_defect_2_a_0 Int) - (top.usr.pump_control_defect_3_a_0 Int) - (top.usr.q_a_0 Int) - (top.usr.pump_state_0_a_0 Int) - (top.usr.pump_state_1_a_0 Int) - (top.usr.pump_state_2_a_0 Int) - (top.usr.pump_state_3_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.op_mode_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Bool) - (top.res.inst_52_a_0 Bool) - (top.res.inst_51_a_0 Int) - (top.res.inst_50_a_0 Bool) - (top.res.inst_49_a_0 Bool) - (top.res.inst_48_a_0 Bool) - (top.res.inst_47_a_0 Bool) - (top.res.inst_46_a_0 Bool) - (top.res.inst_45_a_0 Bool) - (top.res.inst_44_a_0 Bool) - (top.res.inst_43_a_0 Bool) - (top.res.inst_42_a_0 Bool) - (top.res.inst_41_a_0 Bool) - (top.res.inst_40_a_0 Bool) - (top.res.inst_39_a_0 Bool) - (top.res.inst_38_a_0 Bool) - (top.res.inst_37_a_0 Bool) - (top.res.inst_36_a_0 Bool) - (top.res.inst_35_a_0 Bool) - (top.res.inst_34_a_0 Bool) - (top.res.inst_33_a_0 Bool) - (top.res.inst_32_a_0 Bool) - (top.res.inst_31_a_0 Bool) - (top.res.inst_30_a_0 Bool) - (top.res.inst_29_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Bool) - (top.res.inst_23_a_0 Bool) - (top.res.inst_22_a_0 Bool) - (top.res.inst_21_a_0 Bool) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.op_mode_a_1 top.res.abs_0_a_1) - (let - ((X1 Bool (=> (= top.impl.usr.op_mode_a_1 3) (not top.usr.stop_request_a_1)))) - (let - ((X2 - Bool (=> - (and (= top.impl.usr.op_mode_a_1 3) (= top.impl.usr.op_mode_a_0 3)) - (not top.res.abs_1_a_1)))) - (and - (= top.usr.OK_a_1 (and X2 X1)) - (__node_trans_ControlMode_0 - top.usr.steam_boiler_waiting_a_1 - top.usr.physical_units_ready_a_1 - top.usr.stop_request_a_1 - top.usr.steam_a_1 - top.usr.level_defect_a_1 - top.usr.steam_defect_a_1 - top.usr.pump_defect_0_a_1 - top.usr.pump_defect_1_a_1 - top.usr.pump_defect_2_a_1 - top.usr.pump_defect_3_a_1 - top.usr.pump_control_defect_0_a_1 - top.usr.pump_control_defect_1_a_1 - top.usr.pump_control_defect_2_a_1 - top.usr.pump_control_defect_3_a_1 - top.usr.q_a_1 - top.usr.pump_state_0_a_1 - top.usr.pump_state_1_a_1 - top.usr.pump_state_2_a_1 - top.usr.pump_state_3_a_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.inst_52_a_1 - top.res.inst_51_a_1 - top.res.inst_50_a_1 - top.res.inst_49_a_1 - top.res.inst_48_a_1 - top.res.inst_47_a_1 - top.res.inst_46_a_1 - top.res.inst_45_a_1 - top.res.inst_44_a_1 - top.res.inst_43_a_1 - top.res.inst_42_a_1 - top.res.inst_41_a_1 - top.res.inst_40_a_1 - top.res.inst_39_a_1 - top.res.inst_38_a_1 - top.res.inst_37_a_1 - top.res.inst_36_a_1 - top.res.inst_35_a_1 - top.res.inst_34_a_1 - top.res.inst_33_a_1 - top.res.inst_32_a_1 - top.res.inst_31_a_1 - top.res.inst_30_a_1 - top.res.inst_29_a_1 - top.res.inst_28_a_1 - top.res.inst_27_a_1 - top.res.inst_26_a_1 - top.res.inst_25_a_1 - top.res.inst_24_a_1 - top.res.inst_23_a_1 - top.res.inst_22_a_1 - top.res.inst_21_a_1 - top.res.inst_20_a_1 - top.res.inst_19_a_1 - top.res.inst_18_a_1 - top.res.inst_17_a_1 - top.res.inst_16_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.usr.steam_boiler_waiting_a_0 - top.usr.physical_units_ready_a_0 - top.usr.stop_request_a_0 - top.usr.steam_a_0 - top.usr.level_defect_a_0 - top.usr.steam_defect_a_0 - top.usr.pump_defect_0_a_0 - top.usr.pump_defect_1_a_0 - top.usr.pump_defect_2_a_0 - top.usr.pump_defect_3_a_0 - top.usr.pump_control_defect_0_a_0 - top.usr.pump_control_defect_1_a_0 - top.usr.pump_control_defect_2_a_0 - top.usr.pump_control_defect_3_a_0 - top.usr.q_a_0 - top.usr.pump_state_0_a_0 - top.usr.pump_state_1_a_0 - top.usr.pump_state_2_a_0 - top.usr.pump_state_3_a_0 - top.res.abs_0_a_0 - top.res.inst_52_a_0 - top.res.inst_51_a_0 - top.res.inst_50_a_0 - top.res.inst_49_a_0 - top.res.inst_48_a_0 - top.res.inst_47_a_0 - top.res.inst_46_a_0 - top.res.inst_45_a_0 - top.res.inst_44_a_0 - top.res.inst_43_a_0 - top.res.inst_42_a_0 - top.res.inst_41_a_0 - top.res.inst_40_a_0 - top.res.inst_39_a_0 - top.res.inst_38_a_0 - top.res.inst_37_a_0 - top.res.inst_36_a_0 - top.res.inst_35_a_0 - top.res.inst_34_a_0 - top.res.inst_33_a_0 - top.res.inst_32_a_0 - top.res.inst_31_a_0 - top.res.inst_30_a_0 - top.res.inst_29_a_0 - top.res.inst_28_a_0 - top.res.inst_27_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_trans_dangerous_level_0 - top.usr.q_a_1 - top.res.abs_1_a_1 - top.res.inst_0_a_1 - top.usr.q_a_0 - top.res.abs_1_a_0 - top.res.inst_0_a_0) - (<= 1 top.impl.usr.op_mode_a_1 6) - (<= 1 top.res.abs_0_a_1 6) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.steam_boiler_waiting Bool) - (top.usr.physical_units_ready Bool) - (top.usr.stop_request Bool) - (top.usr.steam Int) - (top.usr.level_defect Int) - (top.usr.steam_defect Int) - (top.usr.pump_defect_0 Int) - (top.usr.pump_defect_1 Int) - (top.usr.pump_defect_2 Int) - (top.usr.pump_defect_3 Int) - (top.usr.pump_control_defect_0 Int) - (top.usr.pump_control_defect_1 Int) - (top.usr.pump_control_defect_2 Int) - (top.usr.pump_control_defect_3 Int) - (top.usr.q Int) - (top.usr.pump_state_0 Int) - (top.usr.pump_state_1 Int) - (top.usr.pump_state_2 Int) - (top.usr.pump_state_3 Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.op_mode Int) - (top.res.abs_0 Int) - (top.res.abs_1 Bool) - (top.res.inst_52 Bool) - (top.res.inst_51 Int) - (top.res.inst_50 Bool) - (top.res.inst_49 Bool) - (top.res.inst_48 Bool) - (top.res.inst_47 Bool) - (top.res.inst_46 Bool) - (top.res.inst_45 Bool) - (top.res.inst_44 Bool) - (top.res.inst_43 Bool) - (top.res.inst_42 Bool) - (top.res.inst_41 Bool) - (top.res.inst_40 Bool) - (top.res.inst_39 Bool) - (top.res.inst_38 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.steam_boiler_waiting Bool) -(declare-primed-var top.usr.physical_units_ready Bool) -(declare-primed-var top.usr.stop_request Bool) -(declare-primed-var top.usr.steam Int) -(declare-primed-var top.usr.level_defect Int) -(declare-primed-var top.usr.steam_defect Int) -(declare-primed-var top.usr.pump_defect_0 Int) -(declare-primed-var top.usr.pump_defect_1 Int) -(declare-primed-var top.usr.pump_defect_2 Int) -(declare-primed-var top.usr.pump_defect_3 Int) -(declare-primed-var top.usr.pump_control_defect_0 Int) -(declare-primed-var top.usr.pump_control_defect_1 Int) -(declare-primed-var top.usr.pump_control_defect_2 Int) -(declare-primed-var top.usr.pump_control_defect_3 Int) -(declare-primed-var top.usr.q Int) -(declare-primed-var top.usr.pump_state_0 Int) -(declare-primed-var top.usr.pump_state_1 Int) -(declare-primed-var top.usr.pump_state_2 Int) -(declare-primed-var top.usr.pump_state_3 Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.op_mode Int) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.inst_52 Bool) -(declare-primed-var top.res.inst_51 Int) -(declare-primed-var top.res.inst_50 Bool) -(declare-primed-var top.res.inst_49 Bool) -(declare-primed-var top.res.inst_48 Bool) -(declare-primed-var top.res.inst_47 Bool) -(declare-primed-var top.res.inst_46 Bool) -(declare-primed-var top.res.inst_45 Bool) -(declare-primed-var top.res.inst_44 Bool) -(declare-primed-var top.res.inst_43 Bool) -(declare-primed-var top.res.inst_42 Bool) -(declare-primed-var top.res.inst_41 Bool) -(declare-primed-var top.res.inst_40 Bool) -(declare-primed-var top.res.inst_39 Bool) -(declare-primed-var top.res.inst_38 Bool) -(declare-primed-var top.res.inst_37 Bool) -(declare-primed-var top.res.inst_36 Bool) -(declare-primed-var top.res.inst_35 Bool) -(declare-primed-var top.res.inst_34 Bool) -(declare-primed-var top.res.inst_33 Bool) -(declare-primed-var top.res.inst_32 Bool) -(declare-primed-var top.res.inst_31 Bool) -(declare-primed-var top.res.inst_30 Bool) -(declare-primed-var top.res.inst_29 Bool) -(declare-primed-var top.res.inst_28 Bool) -(declare-primed-var top.res.inst_27 Bool) -(declare-primed-var top.res.inst_26 Bool) -(declare-primed-var top.res.inst_25 Bool) -(declare-primed-var top.res.inst_24 Bool) -(declare-primed-var top.res.inst_23 Bool) -(declare-primed-var top.res.inst_22 Bool) -(declare-primed-var top.res.inst_21 Bool) -(declare-primed-var top.res.inst_20 Bool) -(declare-primed-var top.res.inst_19 Bool) -(declare-primed-var top.res.inst_18 Bool) -(declare-primed-var top.res.inst_17 Bool) -(declare-primed-var top.res.inst_16 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Bool) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Bool) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Bool) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.steam_boiler_waiting Bool) - (top.usr.physical_units_ready Bool) - (top.usr.stop_request Bool) - (top.usr.steam Int) - (top.usr.level_defect Int) - (top.usr.steam_defect Int) - (top.usr.pump_defect_0 Int) - (top.usr.pump_defect_1 Int) - (top.usr.pump_defect_2 Int) - (top.usr.pump_defect_3 Int) - (top.usr.pump_control_defect_0 Int) - (top.usr.pump_control_defect_1 Int) - (top.usr.pump_control_defect_2 Int) - (top.usr.pump_control_defect_3 Int) - (top.usr.q Int) - (top.usr.pump_state_0 Int) - (top.usr.pump_state_1 Int) - (top.usr.pump_state_2 Int) - (top.usr.pump_state_3 Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.op_mode Int) - (top.res.abs_0 Int) - (top.res.abs_1 Bool) - (top.res.inst_52 Bool) - (top.res.inst_51 Int) - (top.res.inst_50 Bool) - (top.res.inst_49 Bool) - (top.res.inst_48 Bool) - (top.res.inst_47 Bool) - (top.res.inst_46 Bool) - (top.res.inst_45 Bool) - (top.res.inst_44 Bool) - (top.res.inst_43 Bool) - (top.res.inst_42 Bool) - (top.res.inst_41 Bool) - (top.res.inst_40 Bool) - (top.res.inst_39 Bool) - (top.res.inst_38 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.impl.usr.op_mode top.res.abs_0) - (let - ((X1 Bool (=> (= top.impl.usr.op_mode 3) (not top.usr.stop_request)))) - (let - ((X2 Bool true)) - (and - (= top.usr.OK (and X2 X1)) - (__node_init_ControlMode_0 - top.usr.steam_boiler_waiting - top.usr.physical_units_ready - top.usr.stop_request - top.usr.steam - top.usr.level_defect - top.usr.steam_defect - top.usr.pump_defect_0 - top.usr.pump_defect_1 - top.usr.pump_defect_2 - top.usr.pump_defect_3 - top.usr.pump_control_defect_0 - top.usr.pump_control_defect_1 - top.usr.pump_control_defect_2 - top.usr.pump_control_defect_3 - top.usr.q - top.usr.pump_state_0 - top.usr.pump_state_1 - top.usr.pump_state_2 - top.usr.pump_state_3 - top.res.nondet_0 - top.res.abs_0 - top.res.inst_52 - top.res.inst_51 - top.res.inst_50 - top.res.inst_49 - top.res.inst_48 - top.res.inst_47 - top.res.inst_46 - top.res.inst_45 - top.res.inst_44 - top.res.inst_43 - top.res.inst_42 - top.res.inst_41 - top.res.inst_40 - top.res.inst_39 - top.res.inst_38 - top.res.inst_37 - top.res.inst_36 - top.res.inst_35 - top.res.inst_34 - top.res.inst_33 - top.res.inst_32 - top.res.inst_31 - top.res.inst_30 - top.res.inst_29 - top.res.inst_28 - top.res.inst_27 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_init_dangerous_level_0 top.usr.q top.res.abs_1 top.res.inst_0) - (<= 1 top.impl.usr.op_mode 6) - (<= 1 top.res.abs_0 6) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.steam_boiler_waiting Bool) - (top.usr.physical_units_ready Bool) - (top.usr.stop_request Bool) - (top.usr.steam Int) - (top.usr.level_defect Int) - (top.usr.steam_defect Int) - (top.usr.pump_defect_0 Int) - (top.usr.pump_defect_1 Int) - (top.usr.pump_defect_2 Int) - (top.usr.pump_defect_3 Int) - (top.usr.pump_control_defect_0 Int) - (top.usr.pump_control_defect_1 Int) - (top.usr.pump_control_defect_2 Int) - (top.usr.pump_control_defect_3 Int) - (top.usr.q Int) - (top.usr.pump_state_0 Int) - (top.usr.pump_state_1 Int) - (top.usr.pump_state_2 Int) - (top.usr.pump_state_3 Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.op_mode Int) - (top.res.abs_0 Int) - (top.res.abs_1 Bool) - (top.res.inst_52 Bool) - (top.res.inst_51 Int) - (top.res.inst_50 Bool) - (top.res.inst_49 Bool) - (top.res.inst_48 Bool) - (top.res.inst_47 Bool) - (top.res.inst_46 Bool) - (top.res.inst_45 Bool) - (top.res.inst_44 Bool) - (top.res.inst_43 Bool) - (top.res.inst_42 Bool) - (top.res.inst_41 Bool) - (top.res.inst_40 Bool) - (top.res.inst_39 Bool) - (top.res.inst_38 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.steam_boiler_waiting! Bool) - (top.usr.physical_units_ready! Bool) - (top.usr.stop_request! Bool) - (top.usr.steam! Int) - (top.usr.level_defect! Int) - (top.usr.steam_defect! Int) - (top.usr.pump_defect_0! Int) - (top.usr.pump_defect_1! Int) - (top.usr.pump_defect_2! Int) - (top.usr.pump_defect_3! Int) - (top.usr.pump_control_defect_0! Int) - (top.usr.pump_control_defect_1! Int) - (top.usr.pump_control_defect_2! Int) - (top.usr.pump_control_defect_3! Int) - (top.usr.q! Int) - (top.usr.pump_state_0! Int) - (top.usr.pump_state_1! Int) - (top.usr.pump_state_2! Int) - (top.usr.pump_state_3! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.op_mode! Int) - (top.res.abs_0! Int) - (top.res.abs_1! Bool) - (top.res.inst_52! Bool) - (top.res.inst_51! Int) - (top.res.inst_50! Bool) - (top.res.inst_49! Bool) - (top.res.inst_48! Bool) - (top.res.inst_47! Bool) - (top.res.inst_46! Bool) - (top.res.inst_45! Bool) - (top.res.inst_44! Bool) - (top.res.inst_43! Bool) - (top.res.inst_42! Bool) - (top.res.inst_41! Bool) - (top.res.inst_40! Bool) - (top.res.inst_39! Bool) - (top.res.inst_38! Bool) - (top.res.inst_37! Bool) - (top.res.inst_36! Bool) - (top.res.inst_35! Bool) - (top.res.inst_34! Bool) - (top.res.inst_33! Bool) - (top.res.inst_32! Bool) - (top.res.inst_31! Bool) - (top.res.inst_30! Bool) - (top.res.inst_29! Bool) - (top.res.inst_28! Bool) - (top.res.inst_27! Bool) - (top.res.inst_26! Bool) - (top.res.inst_25! Bool) - (top.res.inst_24! Bool) - (top.res.inst_23! Bool) - (top.res.inst_22! Bool) - (top.res.inst_21! Bool) - (top.res.inst_20! Bool) - (top.res.inst_19! Bool) - (top.res.inst_18! Bool) - (top.res.inst_17! Bool) - (top.res.inst_16! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Bool) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Bool) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Bool) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.impl.usr.op_mode! top.res.abs_0!) - (let - ((X1 Bool (=> (= top.impl.usr.op_mode! 3) (not top.usr.stop_request!)))) - (let - ((X2 - Bool (=> - (and (= top.impl.usr.op_mode! 3) (= top.impl.usr.op_mode 3)) - (not top.res.abs_1!)))) - (and - (= top.usr.OK! (and X2 X1)) - (__node_trans_ControlMode_0 - top.usr.steam_boiler_waiting! - top.usr.physical_units_ready! - top.usr.stop_request! - top.usr.steam! - top.usr.level_defect! - top.usr.steam_defect! - top.usr.pump_defect_0! - top.usr.pump_defect_1! - top.usr.pump_defect_2! - top.usr.pump_defect_3! - top.usr.pump_control_defect_0! - top.usr.pump_control_defect_1! - top.usr.pump_control_defect_2! - top.usr.pump_control_defect_3! - top.usr.q! - top.usr.pump_state_0! - top.usr.pump_state_1! - top.usr.pump_state_2! - top.usr.pump_state_3! - top.res.nondet_0 - top.res.abs_0! - top.res.inst_52! - top.res.inst_51! - top.res.inst_50! - top.res.inst_49! - top.res.inst_48! - top.res.inst_47! - top.res.inst_46! - top.res.inst_45! - top.res.inst_44! - top.res.inst_43! - top.res.inst_42! - top.res.inst_41! - top.res.inst_40! - top.res.inst_39! - top.res.inst_38! - top.res.inst_37! - top.res.inst_36! - top.res.inst_35! - top.res.inst_34! - top.res.inst_33! - top.res.inst_32! - top.res.inst_31! - top.res.inst_30! - top.res.inst_29! - top.res.inst_28! - top.res.inst_27! - top.res.inst_26! - top.res.inst_25! - top.res.inst_24! - top.res.inst_23! - top.res.inst_22! - top.res.inst_21! - top.res.inst_20! - top.res.inst_19! - top.res.inst_18! - top.res.inst_17! - top.res.inst_16! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.usr.steam_boiler_waiting - top.usr.physical_units_ready - top.usr.stop_request - top.usr.steam - top.usr.level_defect - top.usr.steam_defect - top.usr.pump_defect_0 - top.usr.pump_defect_1 - top.usr.pump_defect_2 - top.usr.pump_defect_3 - top.usr.pump_control_defect_0 - top.usr.pump_control_defect_1 - top.usr.pump_control_defect_2 - top.usr.pump_control_defect_3 - top.usr.q - top.usr.pump_state_0 - top.usr.pump_state_1 - top.usr.pump_state_2 - top.usr.pump_state_3 - top.res.abs_0 - top.res.inst_52 - top.res.inst_51 - top.res.inst_50 - top.res.inst_49 - top.res.inst_48 - top.res.inst_47 - top.res.inst_46 - top.res.inst_45 - top.res.inst_44 - top.res.inst_43 - top.res.inst_42 - top.res.inst_41 - top.res.inst_40 - top.res.inst_39 - top.res.inst_38 - top.res.inst_37 - top.res.inst_36 - top.res.inst_35 - top.res.inst_34 - top.res.inst_33 - top.res.inst_32 - top.res.inst_31 - top.res.inst_30 - top.res.inst_29 - top.res.inst_28 - top.res.inst_27 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_trans_dangerous_level_0 - top.usr.q! - top.res.abs_1! - top.res.inst_0! - top.usr.q - top.res.abs_1 - top.res.inst_0) - (<= 1 top.impl.usr.op_mode! 6) - (<= 1 top.res.abs_0! 6) - (not top.res.init_flag!))))) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.steam_boiler_waiting Bool) - (top.usr.physical_units_ready Bool) - (top.usr.stop_request Bool) - (top.usr.steam Int) - (top.usr.level_defect Int) - (top.usr.steam_defect Int) - (top.usr.pump_defect_0 Int) - (top.usr.pump_defect_1 Int) - (top.usr.pump_defect_2 Int) - (top.usr.pump_defect_3 Int) - (top.usr.pump_control_defect_0 Int) - (top.usr.pump_control_defect_1 Int) - (top.usr.pump_control_defect_2 Int) - (top.usr.pump_control_defect_3 Int) - (top.usr.q Int) - (top.usr.pump_state_0 Int) - (top.usr.pump_state_1 Int) - (top.usr.pump_state_2 Int) - (top.usr.pump_state_3 Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.op_mode Int) - (top.res.abs_0 Int) - (top.res.abs_1 Bool) - (top.res.inst_52 Bool) - (top.res.inst_51 Int) - (top.res.inst_50 Bool) - (top.res.inst_49 Bool) - (top.res.inst_48 Bool) - (top.res.inst_47 Bool) - (top.res.inst_46 Bool) - (top.res.inst_45 Bool) - (top.res.inst_44 Bool) - (top.res.inst_43 Bool) - (top.res.inst_42 Bool) - (top.res.inst_41 Bool) - (top.res.inst_40 Bool) - (top.res.inst_39 Bool) - (top.res.inst_38 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_dangerous_level_0 ((dangerous_level.usr.q_a_0 Int) (dangerous_level.usr.dangerous_level_a_0 Bool) (dangerous_level.res.init_flag_a_0 Bool)) Bool + (and (= dangerous_level.usr.dangerous_level_a_0 (or (<= dangerous_level.usr.q_a_0 150) (>= dangerous_level.usr.q_a_0 850))) dangerous_level.res.init_flag_a_0)) +(define-fun __node_trans_dangerous_level_0 ((dangerous_level.usr.q_a_1 Int) (dangerous_level.usr.dangerous_level_a_1 Bool) (dangerous_level.res.init_flag_a_1 Bool) (dangerous_level.usr.q_a_0 Int) (dangerous_level.usr.dangerous_level_a_0 Bool) (dangerous_level.res.init_flag_a_0 Bool)) Bool + (and (= dangerous_level.usr.dangerous_level_a_1 (or (<= dangerous_level.usr.q_a_1 150) (>= dangerous_level.usr.q_a_1 850))) (not dangerous_level.res.init_flag_a_1))) +(define-fun __node_init_level_failure_0 ((level_failure.usr.level_defect_a_0 Int) (level_failure.usr.level_failure_a_0 Bool) (level_failure.res.init_flag_a_0 Bool)) Bool + (and (= level_failure.usr.level_failure_a_0 (not (= level_failure.usr.level_defect_a_0 0))) level_failure.res.init_flag_a_0)) +(define-fun __node_trans_level_failure_0 ((level_failure.usr.level_defect_a_1 Int) (level_failure.usr.level_failure_a_1 Bool) (level_failure.res.init_flag_a_1 Bool) (level_failure.usr.level_defect_a_0 Int) (level_failure.usr.level_failure_a_0 Bool) (level_failure.res.init_flag_a_0 Bool)) Bool + (and (= level_failure.usr.level_failure_a_1 (not (= level_failure.usr.level_defect_a_1 0))) (not level_failure.res.init_flag_a_1))) +(define-fun __node_init_steam_failure_0 ((steam_failure.usr.steam_defect_a_0 Int) (steam_failure.usr.steam_failure_a_0 Bool) (steam_failure.res.init_flag_a_0 Bool)) Bool + (and (= steam_failure.usr.steam_failure_a_0 (not (= steam_failure.usr.steam_defect_a_0 0))) steam_failure.res.init_flag_a_0)) +(define-fun __node_trans_steam_failure_0 ((steam_failure.usr.steam_defect_a_1 Int) (steam_failure.usr.steam_failure_a_1 Bool) (steam_failure.res.init_flag_a_1 Bool) (steam_failure.usr.steam_defect_a_0 Int) (steam_failure.usr.steam_failure_a_0 Bool) (steam_failure.res.init_flag_a_0 Bool)) Bool + (and (= steam_failure.usr.steam_failure_a_1 (not (= steam_failure.usr.steam_defect_a_1 0))) (not steam_failure.res.init_flag_a_1))) +(define-fun __node_init_OR_0 ((OR.usr.a_0_a_0 Bool) (OR.usr.a_1_a_0 Bool) (OR.usr.a_2_a_0 Bool) (OR.usr.a_3_a_0 Bool) (OR.usr.OR_a_0 Bool) (OR.res.init_flag_a_0 Bool)) Bool + (and (= OR.usr.OR_a_0 (or (or (or OR.usr.a_0_a_0 OR.usr.a_1_a_0) OR.usr.a_2_a_0) OR.usr.a_3_a_0)) OR.res.init_flag_a_0)) +(define-fun __node_trans_OR_0 ((OR.usr.a_0_a_1 Bool) (OR.usr.a_1_a_1 Bool) (OR.usr.a_2_a_1 Bool) (OR.usr.a_3_a_1 Bool) (OR.usr.OR_a_1 Bool) (OR.res.init_flag_a_1 Bool) (OR.usr.a_0_a_0 Bool) (OR.usr.a_1_a_0 Bool) (OR.usr.a_2_a_0 Bool) (OR.usr.a_3_a_0 Bool) (OR.usr.OR_a_0 Bool) (OR.res.init_flag_a_0 Bool)) Bool + (and (= OR.usr.OR_a_1 (or (or (or OR.usr.a_0_a_1 OR.usr.a_1_a_1) OR.usr.a_2_a_1) OR.usr.a_3_a_1)) (not OR.res.init_flag_a_1))) +(define-fun __node_init_pump_control_failure_0 ((pump_control_failure.usr.pump_defect_a_0 Int) (pump_control_failure.usr.pump_failure_a_0 Bool) (pump_control_failure.res.init_flag_a_0 Bool)) Bool + (and (= pump_control_failure.usr.pump_failure_a_0 (not (= pump_control_failure.usr.pump_defect_a_0 0))) pump_control_failure.res.init_flag_a_0)) +(define-fun __node_trans_pump_control_failure_0 ((pump_control_failure.usr.pump_defect_a_1 Int) (pump_control_failure.usr.pump_failure_a_1 Bool) (pump_control_failure.res.init_flag_a_1 Bool) (pump_control_failure.usr.pump_defect_a_0 Int) (pump_control_failure.usr.pump_failure_a_0 Bool) (pump_control_failure.res.init_flag_a_0 Bool)) Bool + (and (= pump_control_failure.usr.pump_failure_a_1 (not (= pump_control_failure.usr.pump_defect_a_1 0))) (not pump_control_failure.res.init_flag_a_1))) +(define-fun __node_init_pump_failure_0 ((pump_failure.usr.pump_defect_a_0 Int) (pump_failure.usr.pump_failure_a_0 Bool) (pump_failure.res.init_flag_a_0 Bool)) Bool + (and (= pump_failure.usr.pump_failure_a_0 (not (= pump_failure.usr.pump_defect_a_0 0))) pump_failure.res.init_flag_a_0)) +(define-fun __node_trans_pump_failure_0 ((pump_failure.usr.pump_defect_a_1 Int) (pump_failure.usr.pump_failure_a_1 Bool) (pump_failure.res.init_flag_a_1 Bool) (pump_failure.usr.pump_defect_a_0 Int) (pump_failure.usr.pump_failure_a_0 Bool) (pump_failure.res.init_flag_a_0 Bool)) Bool + (and (= pump_failure.usr.pump_failure_a_1 (not (= pump_failure.usr.pump_defect_a_1 0))) (not pump_failure.res.init_flag_a_1))) +(define-fun __node_init_failure_0 ((failure.usr.level_defect_a_0 Int) (failure.usr.steam_defect_a_0 Int) (failure.usr.pump_defect_0_a_0 Int) (failure.usr.pump_defect_1_a_0 Int) (failure.usr.pump_defect_2_a_0 Int) (failure.usr.pump_defect_3_a_0 Int) (failure.usr.pump_control_defect_0_a_0 Int) (failure.usr.pump_control_defect_1_a_0 Int) (failure.usr.pump_control_defect_2_a_0 Int) (failure.usr.pump_control_defect_3_a_0 Int) (failure.usr.failure_a_0 Bool) (failure.res.init_flag_a_0 Bool) (failure.res.abs_0_a_0 Bool) (failure.res.abs_1_a_0 Bool) (failure.res.abs_2_a_0 Bool) (failure.res.abs_3_a_0 Bool) (failure.res.abs_4_a_0 Bool) (failure.res.abs_5_a_0 Bool) (failure.res.abs_6_a_0 Bool) (failure.res.abs_7_a_0 Bool) (failure.res.abs_8_a_0 Bool) (failure.res.abs_9_a_0 Bool) (failure.res.abs_10_a_0 Bool) (failure.res.abs_11_a_0 Bool) (failure.res.inst_11_a_0 Bool) (failure.res.inst_10_a_0 Bool) (failure.res.inst_9_a_0 Bool) (failure.res.inst_8_a_0 Bool) (failure.res.inst_7_a_0 Bool) (failure.res.inst_6_a_0 Bool) (failure.res.inst_5_a_0 Bool) (failure.res.inst_4_a_0 Bool) (failure.res.inst_3_a_0 Bool) (failure.res.inst_2_a_0 Bool) (failure.res.inst_1_a_0 Bool) (failure.res.inst_0_a_0 Bool)) Bool + (and (= failure.usr.failure_a_0 (or (or (or failure.res.abs_0_a_0 failure.res.abs_1_a_0) failure.res.abs_6_a_0) failure.res.abs_11_a_0)) (__node_init_level_failure_0 failure.usr.level_defect_a_0 failure.res.abs_0_a_0 failure.res.inst_11_a_0) (__node_init_steam_failure_0 failure.usr.steam_defect_a_0 failure.res.abs_1_a_0 failure.res.inst_10_a_0) (__node_init_OR_0 failure.res.abs_2_a_0 failure.res.abs_3_a_0 failure.res.abs_4_a_0 failure.res.abs_5_a_0 failure.res.abs_6_a_0 failure.res.inst_9_a_0) (__node_init_pump_failure_0 failure.usr.pump_defect_0_a_0 failure.res.abs_2_a_0 failure.res.inst_8_a_0) (__node_init_pump_failure_0 failure.usr.pump_defect_1_a_0 failure.res.abs_3_a_0 failure.res.inst_7_a_0) (__node_init_pump_failure_0 failure.usr.pump_defect_2_a_0 failure.res.abs_4_a_0 failure.res.inst_6_a_0) (__node_init_pump_failure_0 failure.usr.pump_defect_3_a_0 failure.res.abs_5_a_0 failure.res.inst_5_a_0) (__node_init_OR_0 failure.res.abs_7_a_0 failure.res.abs_8_a_0 failure.res.abs_9_a_0 failure.res.abs_10_a_0 failure.res.abs_11_a_0 failure.res.inst_4_a_0) (__node_init_pump_control_failure_0 failure.usr.pump_control_defect_0_a_0 failure.res.abs_7_a_0 failure.res.inst_3_a_0) (__node_init_pump_control_failure_0 failure.usr.pump_control_defect_1_a_0 failure.res.abs_8_a_0 failure.res.inst_2_a_0) (__node_init_pump_control_failure_0 failure.usr.pump_control_defect_2_a_0 failure.res.abs_9_a_0 failure.res.inst_1_a_0) (__node_init_pump_control_failure_0 failure.usr.pump_control_defect_3_a_0 failure.res.abs_10_a_0 failure.res.inst_0_a_0) failure.res.init_flag_a_0)) +(define-fun __node_trans_failure_0 ((failure.usr.level_defect_a_1 Int) (failure.usr.steam_defect_a_1 Int) (failure.usr.pump_defect_0_a_1 Int) (failure.usr.pump_defect_1_a_1 Int) (failure.usr.pump_defect_2_a_1 Int) (failure.usr.pump_defect_3_a_1 Int) (failure.usr.pump_control_defect_0_a_1 Int) (failure.usr.pump_control_defect_1_a_1 Int) (failure.usr.pump_control_defect_2_a_1 Int) (failure.usr.pump_control_defect_3_a_1 Int) (failure.usr.failure_a_1 Bool) (failure.res.init_flag_a_1 Bool) (failure.res.abs_0_a_1 Bool) (failure.res.abs_1_a_1 Bool) (failure.res.abs_2_a_1 Bool) (failure.res.abs_3_a_1 Bool) (failure.res.abs_4_a_1 Bool) (failure.res.abs_5_a_1 Bool) (failure.res.abs_6_a_1 Bool) (failure.res.abs_7_a_1 Bool) (failure.res.abs_8_a_1 Bool) (failure.res.abs_9_a_1 Bool) (failure.res.abs_10_a_1 Bool) (failure.res.abs_11_a_1 Bool) (failure.res.inst_11_a_1 Bool) (failure.res.inst_10_a_1 Bool) (failure.res.inst_9_a_1 Bool) (failure.res.inst_8_a_1 Bool) (failure.res.inst_7_a_1 Bool) (failure.res.inst_6_a_1 Bool) (failure.res.inst_5_a_1 Bool) (failure.res.inst_4_a_1 Bool) (failure.res.inst_3_a_1 Bool) (failure.res.inst_2_a_1 Bool) (failure.res.inst_1_a_1 Bool) (failure.res.inst_0_a_1 Bool) (failure.usr.level_defect_a_0 Int) (failure.usr.steam_defect_a_0 Int) (failure.usr.pump_defect_0_a_0 Int) (failure.usr.pump_defect_1_a_0 Int) (failure.usr.pump_defect_2_a_0 Int) (failure.usr.pump_defect_3_a_0 Int) (failure.usr.pump_control_defect_0_a_0 Int) (failure.usr.pump_control_defect_1_a_0 Int) (failure.usr.pump_control_defect_2_a_0 Int) (failure.usr.pump_control_defect_3_a_0 Int) (failure.usr.failure_a_0 Bool) (failure.res.init_flag_a_0 Bool) (failure.res.abs_0_a_0 Bool) (failure.res.abs_1_a_0 Bool) (failure.res.abs_2_a_0 Bool) (failure.res.abs_3_a_0 Bool) (failure.res.abs_4_a_0 Bool) (failure.res.abs_5_a_0 Bool) (failure.res.abs_6_a_0 Bool) (failure.res.abs_7_a_0 Bool) (failure.res.abs_8_a_0 Bool) (failure.res.abs_9_a_0 Bool) (failure.res.abs_10_a_0 Bool) (failure.res.abs_11_a_0 Bool) (failure.res.inst_11_a_0 Bool) (failure.res.inst_10_a_0 Bool) (failure.res.inst_9_a_0 Bool) (failure.res.inst_8_a_0 Bool) (failure.res.inst_7_a_0 Bool) (failure.res.inst_6_a_0 Bool) (failure.res.inst_5_a_0 Bool) (failure.res.inst_4_a_0 Bool) (failure.res.inst_3_a_0 Bool) (failure.res.inst_2_a_0 Bool) (failure.res.inst_1_a_0 Bool) (failure.res.inst_0_a_0 Bool)) Bool + (and (= failure.usr.failure_a_1 (or (or (or failure.res.abs_0_a_1 failure.res.abs_1_a_1) failure.res.abs_6_a_1) failure.res.abs_11_a_1)) (__node_trans_level_failure_0 failure.usr.level_defect_a_1 failure.res.abs_0_a_1 failure.res.inst_11_a_1 failure.usr.level_defect_a_0 failure.res.abs_0_a_0 failure.res.inst_11_a_0) (__node_trans_steam_failure_0 failure.usr.steam_defect_a_1 failure.res.abs_1_a_1 failure.res.inst_10_a_1 failure.usr.steam_defect_a_0 failure.res.abs_1_a_0 failure.res.inst_10_a_0) (__node_trans_OR_0 failure.res.abs_2_a_1 failure.res.abs_3_a_1 failure.res.abs_4_a_1 failure.res.abs_5_a_1 failure.res.abs_6_a_1 failure.res.inst_9_a_1 failure.res.abs_2_a_0 failure.res.abs_3_a_0 failure.res.abs_4_a_0 failure.res.abs_5_a_0 failure.res.abs_6_a_0 failure.res.inst_9_a_0) (__node_trans_pump_failure_0 failure.usr.pump_defect_0_a_1 failure.res.abs_2_a_1 failure.res.inst_8_a_1 failure.usr.pump_defect_0_a_0 failure.res.abs_2_a_0 failure.res.inst_8_a_0) (__node_trans_pump_failure_0 failure.usr.pump_defect_1_a_1 failure.res.abs_3_a_1 failure.res.inst_7_a_1 failure.usr.pump_defect_1_a_0 failure.res.abs_3_a_0 failure.res.inst_7_a_0) (__node_trans_pump_failure_0 failure.usr.pump_defect_2_a_1 failure.res.abs_4_a_1 failure.res.inst_6_a_1 failure.usr.pump_defect_2_a_0 failure.res.abs_4_a_0 failure.res.inst_6_a_0) (__node_trans_pump_failure_0 failure.usr.pump_defect_3_a_1 failure.res.abs_5_a_1 failure.res.inst_5_a_1 failure.usr.pump_defect_3_a_0 failure.res.abs_5_a_0 failure.res.inst_5_a_0) (__node_trans_OR_0 failure.res.abs_7_a_1 failure.res.abs_8_a_1 failure.res.abs_9_a_1 failure.res.abs_10_a_1 failure.res.abs_11_a_1 failure.res.inst_4_a_1 failure.res.abs_7_a_0 failure.res.abs_8_a_0 failure.res.abs_9_a_0 failure.res.abs_10_a_0 failure.res.abs_11_a_0 failure.res.inst_4_a_0) (__node_trans_pump_control_failure_0 failure.usr.pump_control_defect_0_a_1 failure.res.abs_7_a_1 failure.res.inst_3_a_1 failure.usr.pump_control_defect_0_a_0 failure.res.abs_7_a_0 failure.res.inst_3_a_0) (__node_trans_pump_control_failure_0 failure.usr.pump_control_defect_1_a_1 failure.res.abs_8_a_1 failure.res.inst_2_a_1 failure.usr.pump_control_defect_1_a_0 failure.res.abs_8_a_0 failure.res.inst_2_a_0) (__node_trans_pump_control_failure_0 failure.usr.pump_control_defect_2_a_1 failure.res.abs_9_a_1 failure.res.inst_1_a_1 failure.usr.pump_control_defect_2_a_0 failure.res.abs_9_a_0 failure.res.inst_1_a_0) (__node_trans_pump_control_failure_0 failure.usr.pump_control_defect_3_a_1 failure.res.abs_10_a_1 failure.res.inst_0_a_1 failure.usr.pump_control_defect_3_a_0 failure.res.abs_10_a_0 failure.res.inst_0_a_0) (not failure.res.init_flag_a_1))) +(define-fun __node_init_steam_failure_startup_0 ((steam_failure_startup.usr.steam_a_0 Int) (steam_failure_startup.usr.steam_failure_startup_a_0 Bool) (steam_failure_startup.res.init_flag_a_0 Bool)) Bool + (and (= steam_failure_startup.usr.steam_failure_startup_a_0 (not (= steam_failure_startup.usr.steam_a_0 0))) steam_failure_startup.res.init_flag_a_0)) +(define-fun __node_trans_steam_failure_startup_0 ((steam_failure_startup.usr.steam_a_1 Int) (steam_failure_startup.usr.steam_failure_startup_a_1 Bool) (steam_failure_startup.res.init_flag_a_1 Bool) (steam_failure_startup.usr.steam_a_0 Int) (steam_failure_startup.usr.steam_failure_startup_a_0 Bool) (steam_failure_startup.res.init_flag_a_0 Bool)) Bool + (and (= steam_failure_startup.usr.steam_failure_startup_a_1 (not (= steam_failure_startup.usr.steam_a_1 0))) (not steam_failure_startup.res.init_flag_a_1))) +(define-fun __node_init_AND_0 ((AND.usr.a_0_a_0 Bool) (AND.usr.a_1_a_0 Bool) (AND.usr.a_2_a_0 Bool) (AND.usr.a_3_a_0 Bool) (AND.usr.AND_a_0 Bool) (AND.res.init_flag_a_0 Bool)) Bool + (and (= AND.usr.AND_a_0 (and (and (and AND.usr.a_0_a_0 AND.usr.a_1_a_0) AND.usr.a_2_a_0) AND.usr.a_3_a_0)) AND.res.init_flag_a_0)) +(define-fun __node_trans_AND_0 ((AND.usr.a_0_a_1 Bool) (AND.usr.a_1_a_1 Bool) (AND.usr.a_2_a_1 Bool) (AND.usr.a_3_a_1 Bool) (AND.usr.AND_a_1 Bool) (AND.res.init_flag_a_1 Bool) (AND.usr.a_0_a_0 Bool) (AND.usr.a_1_a_0 Bool) (AND.usr.a_2_a_0 Bool) (AND.usr.a_3_a_0 Bool) (AND.usr.AND_a_0 Bool) (AND.res.init_flag_a_0 Bool)) Bool + (and (= AND.usr.AND_a_1 (and (and (and AND.usr.a_0_a_1 AND.usr.a_1_a_1) AND.usr.a_2_a_1) AND.usr.a_3_a_1)) (not AND.res.init_flag_a_1))) +(define-fun __node_init_transmission_failure_0 ((transmission_failure.usr.pump_state_0_a_0 Int) (transmission_failure.usr.pump_state_1_a_0 Int) (transmission_failure.usr.pump_state_2_a_0 Int) (transmission_failure.usr.pump_state_3_a_0 Int) (transmission_failure.usr.transmission_failure_a_0 Bool) (transmission_failure.res.init_flag_a_0 Bool)) Bool + (and (= transmission_failure.usr.transmission_failure_a_0 (or (or (or (= transmission_failure.usr.pump_state_0_a_0 3) (= transmission_failure.usr.pump_state_1_a_0 3)) (= transmission_failure.usr.pump_state_2_a_0 3)) (= transmission_failure.usr.pump_state_3_a_0 3))) transmission_failure.res.init_flag_a_0)) +(define-fun __node_trans_transmission_failure_0 ((transmission_failure.usr.pump_state_0_a_1 Int) (transmission_failure.usr.pump_state_1_a_1 Int) (transmission_failure.usr.pump_state_2_a_1 Int) (transmission_failure.usr.pump_state_3_a_1 Int) (transmission_failure.usr.transmission_failure_a_1 Bool) (transmission_failure.res.init_flag_a_1 Bool) (transmission_failure.usr.pump_state_0_a_0 Int) (transmission_failure.usr.pump_state_1_a_0 Int) (transmission_failure.usr.pump_state_2_a_0 Int) (transmission_failure.usr.pump_state_3_a_0 Int) (transmission_failure.usr.transmission_failure_a_0 Bool) (transmission_failure.res.init_flag_a_0 Bool)) Bool + (and (= transmission_failure.usr.transmission_failure_a_1 (or (or (or (= transmission_failure.usr.pump_state_0_a_1 3) (= transmission_failure.usr.pump_state_1_a_1 3)) (= transmission_failure.usr.pump_state_2_a_1 3)) (= transmission_failure.usr.pump_state_3_a_1 3))) (not transmission_failure.res.init_flag_a_1))) +(define-fun __node_init_critical_failure_0 ((critical_failure.usr.op_mode_a_0 Int) (critical_failure.usr.steam_a_0 Int) (critical_failure.usr.level_defect_a_0 Int) (critical_failure.usr.steam_defect_a_0 Int) (critical_failure.usr.pump_defect_0_a_0 Int) (critical_failure.usr.pump_defect_1_a_0 Int) (critical_failure.usr.pump_defect_2_a_0 Int) (critical_failure.usr.pump_defect_3_a_0 Int) (critical_failure.usr.q_a_0 Int) (critical_failure.usr.pump_state_0_a_0 Int) (critical_failure.usr.pump_state_1_a_0 Int) (critical_failure.usr.pump_state_2_a_0 Int) (critical_failure.usr.pump_state_3_a_0 Int) (critical_failure.usr.critical_failure_a_0 Bool) (critical_failure.res.init_flag_a_0 Bool) (critical_failure.res.abs_0_a_0 Bool) (critical_failure.res.abs_1_a_0 Bool) (critical_failure.res.abs_2_a_0 Bool) (critical_failure.res.abs_3_a_0 Bool) (critical_failure.res.abs_4_a_0 Bool) (critical_failure.res.abs_5_a_0 Bool) (critical_failure.res.abs_6_a_0 Bool) (critical_failure.res.abs_7_a_0 Bool) (critical_failure.res.abs_8_a_0 Bool) (critical_failure.res.abs_9_a_0 Bool) (critical_failure.res.inst_9_a_0 Bool) (critical_failure.res.inst_8_a_0 Bool) (critical_failure.res.inst_7_a_0 Bool) (critical_failure.res.inst_6_a_0 Bool) (critical_failure.res.inst_5_a_0 Bool) (critical_failure.res.inst_4_a_0 Bool) (critical_failure.res.inst_3_a_0 Bool) (critical_failure.res.inst_2_a_0 Bool) (critical_failure.res.inst_1_a_0 Bool) (critical_failure.res.inst_0_a_0 Bool)) Bool + (and (= critical_failure.usr.critical_failure_a_0 (or (or (or (or (or critical_failure.res.abs_0_a_0 (and (= critical_failure.usr.op_mode_a_0 1) critical_failure.res.abs_1_a_0)) (and (= critical_failure.usr.op_mode_a_0 2) (or critical_failure.res.abs_2_a_0 critical_failure.res.abs_3_a_0))) (and (= critical_failure.usr.op_mode_a_0 3) critical_failure.res.abs_4_a_0)) (and (= critical_failure.usr.op_mode_a_0 4) critical_failure.res.abs_4_a_0)) (and (= critical_failure.usr.op_mode_a_0 5) (or (or critical_failure.res.abs_4_a_0 critical_failure.res.abs_3_a_0) critical_failure.res.abs_9_a_0)))) (__node_init_transmission_failure_0 critical_failure.usr.pump_state_0_a_0 critical_failure.usr.pump_state_1_a_0 critical_failure.usr.pump_state_2_a_0 critical_failure.usr.pump_state_3_a_0 critical_failure.res.abs_0_a_0 critical_failure.res.inst_9_a_0) (__node_init_steam_failure_startup_0 critical_failure.usr.steam_a_0 critical_failure.res.abs_1_a_0 critical_failure.res.inst_8_a_0) (__node_init_level_failure_0 critical_failure.usr.level_defect_a_0 critical_failure.res.abs_2_a_0 critical_failure.res.inst_7_a_0) (__node_init_steam_failure_0 critical_failure.usr.steam_defect_a_0 critical_failure.res.abs_3_a_0 critical_failure.res.inst_6_a_0) (__node_init_dangerous_level_0 critical_failure.usr.q_a_0 critical_failure.res.abs_4_a_0 critical_failure.res.inst_5_a_0) (__node_init_AND_0 critical_failure.res.abs_5_a_0 critical_failure.res.abs_6_a_0 critical_failure.res.abs_7_a_0 critical_failure.res.abs_8_a_0 critical_failure.res.abs_9_a_0 critical_failure.res.inst_4_a_0) (__node_init_pump_failure_0 critical_failure.usr.pump_defect_0_a_0 critical_failure.res.abs_5_a_0 critical_failure.res.inst_3_a_0) (__node_init_pump_failure_0 critical_failure.usr.pump_defect_1_a_0 critical_failure.res.abs_6_a_0 critical_failure.res.inst_2_a_0) (__node_init_pump_failure_0 critical_failure.usr.pump_defect_2_a_0 critical_failure.res.abs_7_a_0 critical_failure.res.inst_1_a_0) (__node_init_pump_failure_0 critical_failure.usr.pump_defect_3_a_0 critical_failure.res.abs_8_a_0 critical_failure.res.inst_0_a_0) critical_failure.res.init_flag_a_0)) +(define-fun __node_trans_critical_failure_0 ((critical_failure.usr.op_mode_a_1 Int) (critical_failure.usr.steam_a_1 Int) (critical_failure.usr.level_defect_a_1 Int) (critical_failure.usr.steam_defect_a_1 Int) (critical_failure.usr.pump_defect_0_a_1 Int) (critical_failure.usr.pump_defect_1_a_1 Int) (critical_failure.usr.pump_defect_2_a_1 Int) (critical_failure.usr.pump_defect_3_a_1 Int) (critical_failure.usr.q_a_1 Int) (critical_failure.usr.pump_state_0_a_1 Int) (critical_failure.usr.pump_state_1_a_1 Int) (critical_failure.usr.pump_state_2_a_1 Int) (critical_failure.usr.pump_state_3_a_1 Int) (critical_failure.usr.critical_failure_a_1 Bool) (critical_failure.res.init_flag_a_1 Bool) (critical_failure.res.abs_0_a_1 Bool) (critical_failure.res.abs_1_a_1 Bool) (critical_failure.res.abs_2_a_1 Bool) (critical_failure.res.abs_3_a_1 Bool) (critical_failure.res.abs_4_a_1 Bool) (critical_failure.res.abs_5_a_1 Bool) (critical_failure.res.abs_6_a_1 Bool) (critical_failure.res.abs_7_a_1 Bool) (critical_failure.res.abs_8_a_1 Bool) (critical_failure.res.abs_9_a_1 Bool) (critical_failure.res.inst_9_a_1 Bool) (critical_failure.res.inst_8_a_1 Bool) (critical_failure.res.inst_7_a_1 Bool) (critical_failure.res.inst_6_a_1 Bool) (critical_failure.res.inst_5_a_1 Bool) (critical_failure.res.inst_4_a_1 Bool) (critical_failure.res.inst_3_a_1 Bool) (critical_failure.res.inst_2_a_1 Bool) (critical_failure.res.inst_1_a_1 Bool) (critical_failure.res.inst_0_a_1 Bool) (critical_failure.usr.op_mode_a_0 Int) (critical_failure.usr.steam_a_0 Int) (critical_failure.usr.level_defect_a_0 Int) (critical_failure.usr.steam_defect_a_0 Int) (critical_failure.usr.pump_defect_0_a_0 Int) (critical_failure.usr.pump_defect_1_a_0 Int) (critical_failure.usr.pump_defect_2_a_0 Int) (critical_failure.usr.pump_defect_3_a_0 Int) (critical_failure.usr.q_a_0 Int) (critical_failure.usr.pump_state_0_a_0 Int) (critical_failure.usr.pump_state_1_a_0 Int) (critical_failure.usr.pump_state_2_a_0 Int) (critical_failure.usr.pump_state_3_a_0 Int) (critical_failure.usr.critical_failure_a_0 Bool) (critical_failure.res.init_flag_a_0 Bool) (critical_failure.res.abs_0_a_0 Bool) (critical_failure.res.abs_1_a_0 Bool) (critical_failure.res.abs_2_a_0 Bool) (critical_failure.res.abs_3_a_0 Bool) (critical_failure.res.abs_4_a_0 Bool) (critical_failure.res.abs_5_a_0 Bool) (critical_failure.res.abs_6_a_0 Bool) (critical_failure.res.abs_7_a_0 Bool) (critical_failure.res.abs_8_a_0 Bool) (critical_failure.res.abs_9_a_0 Bool) (critical_failure.res.inst_9_a_0 Bool) (critical_failure.res.inst_8_a_0 Bool) (critical_failure.res.inst_7_a_0 Bool) (critical_failure.res.inst_6_a_0 Bool) (critical_failure.res.inst_5_a_0 Bool) (critical_failure.res.inst_4_a_0 Bool) (critical_failure.res.inst_3_a_0 Bool) (critical_failure.res.inst_2_a_0 Bool) (critical_failure.res.inst_1_a_0 Bool) (critical_failure.res.inst_0_a_0 Bool)) Bool + (and (= critical_failure.usr.critical_failure_a_1 (or (or (or (or (or critical_failure.res.abs_0_a_1 (and (= critical_failure.usr.op_mode_a_1 1) critical_failure.res.abs_1_a_1)) (and (= critical_failure.usr.op_mode_a_1 2) (or critical_failure.res.abs_2_a_1 critical_failure.res.abs_3_a_1))) (and (= critical_failure.usr.op_mode_a_1 3) critical_failure.res.abs_4_a_1)) (and (= critical_failure.usr.op_mode_a_1 4) critical_failure.res.abs_4_a_1)) (and (= critical_failure.usr.op_mode_a_1 5) (or (or critical_failure.res.abs_4_a_1 critical_failure.res.abs_3_a_1) critical_failure.res.abs_9_a_1)))) (__node_trans_transmission_failure_0 critical_failure.usr.pump_state_0_a_1 critical_failure.usr.pump_state_1_a_1 critical_failure.usr.pump_state_2_a_1 critical_failure.usr.pump_state_3_a_1 critical_failure.res.abs_0_a_1 critical_failure.res.inst_9_a_1 critical_failure.usr.pump_state_0_a_0 critical_failure.usr.pump_state_1_a_0 critical_failure.usr.pump_state_2_a_0 critical_failure.usr.pump_state_3_a_0 critical_failure.res.abs_0_a_0 critical_failure.res.inst_9_a_0) (__node_trans_steam_failure_startup_0 critical_failure.usr.steam_a_1 critical_failure.res.abs_1_a_1 critical_failure.res.inst_8_a_1 critical_failure.usr.steam_a_0 critical_failure.res.abs_1_a_0 critical_failure.res.inst_8_a_0) (__node_trans_level_failure_0 critical_failure.usr.level_defect_a_1 critical_failure.res.abs_2_a_1 critical_failure.res.inst_7_a_1 critical_failure.usr.level_defect_a_0 critical_failure.res.abs_2_a_0 critical_failure.res.inst_7_a_0) (__node_trans_steam_failure_0 critical_failure.usr.steam_defect_a_1 critical_failure.res.abs_3_a_1 critical_failure.res.inst_6_a_1 critical_failure.usr.steam_defect_a_0 critical_failure.res.abs_3_a_0 critical_failure.res.inst_6_a_0) (__node_trans_dangerous_level_0 critical_failure.usr.q_a_1 critical_failure.res.abs_4_a_1 critical_failure.res.inst_5_a_1 critical_failure.usr.q_a_0 critical_failure.res.abs_4_a_0 critical_failure.res.inst_5_a_0) (__node_trans_AND_0 critical_failure.res.abs_5_a_1 critical_failure.res.abs_6_a_1 critical_failure.res.abs_7_a_1 critical_failure.res.abs_8_a_1 critical_failure.res.abs_9_a_1 critical_failure.res.inst_4_a_1 critical_failure.res.abs_5_a_0 critical_failure.res.abs_6_a_0 critical_failure.res.abs_7_a_0 critical_failure.res.abs_8_a_0 critical_failure.res.abs_9_a_0 critical_failure.res.inst_4_a_0) (__node_trans_pump_failure_0 critical_failure.usr.pump_defect_0_a_1 critical_failure.res.abs_5_a_1 critical_failure.res.inst_3_a_1 critical_failure.usr.pump_defect_0_a_0 critical_failure.res.abs_5_a_0 critical_failure.res.inst_3_a_0) (__node_trans_pump_failure_0 critical_failure.usr.pump_defect_1_a_1 critical_failure.res.abs_6_a_1 critical_failure.res.inst_2_a_1 critical_failure.usr.pump_defect_1_a_0 critical_failure.res.abs_6_a_0 critical_failure.res.inst_2_a_0) (__node_trans_pump_failure_0 critical_failure.usr.pump_defect_2_a_1 critical_failure.res.abs_7_a_1 critical_failure.res.inst_1_a_1 critical_failure.usr.pump_defect_2_a_0 critical_failure.res.abs_7_a_0 critical_failure.res.inst_1_a_0) (__node_trans_pump_failure_0 critical_failure.usr.pump_defect_3_a_1 critical_failure.res.abs_8_a_1 critical_failure.res.inst_0_a_1 critical_failure.usr.pump_defect_3_a_0 critical_failure.res.abs_8_a_0 critical_failure.res.inst_0_a_0) (not critical_failure.res.init_flag_a_1))) +(define-fun __node_init_ControlMode_0 ((ControlMode.usr.steam_boiler_waiting_a_0 Bool) (ControlMode.usr.physical_units_ready_a_0 Bool) (ControlMode.usr.stop_request_a_0 Bool) (ControlMode.usr.steam_a_0 Int) (ControlMode.usr.level_defect_a_0 Int) (ControlMode.usr.steam_defect_a_0 Int) (ControlMode.usr.pump_defect_0_a_0 Int) (ControlMode.usr.pump_defect_1_a_0 Int) (ControlMode.usr.pump_defect_2_a_0 Int) (ControlMode.usr.pump_defect_3_a_0 Int) (ControlMode.usr.pump_control_defect_0_a_0 Int) (ControlMode.usr.pump_control_defect_1_a_0 Int) (ControlMode.usr.pump_control_defect_2_a_0 Int) (ControlMode.usr.pump_control_defect_3_a_0 Int) (ControlMode.usr.q_a_0 Int) (ControlMode.usr.pump_state_0_a_0 Int) (ControlMode.usr.pump_state_1_a_0 Int) (ControlMode.usr.pump_state_2_a_0 Int) (ControlMode.usr.pump_state_3_a_0 Int) (ControlMode.res.nondet_0 Int) (ControlMode.usr.op_mode_a_0 Int) (ControlMode.res.init_flag_a_0 Bool) (ControlMode.res.abs_0_a_0 Int) (ControlMode.res.abs_1_a_0 Bool) (ControlMode.res.abs_2_a_0 Bool) (ControlMode.res.abs_3_a_0 Bool) (ControlMode.res.inst_46_a_0 Bool) (ControlMode.res.inst_45_a_0 Bool) (ControlMode.res.inst_44_a_0 Bool) (ControlMode.res.inst_43_a_0 Bool) (ControlMode.res.inst_42_a_0 Bool) (ControlMode.res.inst_41_a_0 Bool) (ControlMode.res.inst_40_a_0 Bool) (ControlMode.res.inst_39_a_0 Bool) (ControlMode.res.inst_38_a_0 Bool) (ControlMode.res.inst_37_a_0 Bool) (ControlMode.res.inst_36_a_0 Bool) (ControlMode.res.inst_35_a_0 Bool) (ControlMode.res.inst_34_a_0 Bool) (ControlMode.res.inst_33_a_0 Bool) (ControlMode.res.inst_32_a_0 Bool) (ControlMode.res.inst_31_a_0 Bool) (ControlMode.res.inst_30_a_0 Bool) (ControlMode.res.inst_29_a_0 Bool) (ControlMode.res.inst_28_a_0 Bool) (ControlMode.res.inst_27_a_0 Bool) (ControlMode.res.inst_26_a_0 Bool) (ControlMode.res.inst_25_a_0 Bool) (ControlMode.res.inst_24_a_0 Bool) (ControlMode.res.inst_23_a_0 Bool) (ControlMode.res.inst_22_a_0 Bool) (ControlMode.res.inst_21_a_0 Bool) (ControlMode.res.inst_20_a_0 Bool) (ControlMode.res.inst_19_a_0 Bool) (ControlMode.res.inst_18_a_0 Bool) (ControlMode.res.inst_17_a_0 Bool) (ControlMode.res.inst_16_a_0 Bool) (ControlMode.res.inst_15_a_0 Bool) (ControlMode.res.inst_14_a_0 Bool) (ControlMode.res.inst_13_a_0 Bool) (ControlMode.res.inst_12_a_0 Bool) (ControlMode.res.inst_11_a_0 Bool) (ControlMode.res.inst_10_a_0 Bool) (ControlMode.res.inst_9_a_0 Bool) (ControlMode.res.inst_8_a_0 Bool) (ControlMode.res.inst_7_a_0 Bool) (ControlMode.res.inst_6_a_0 Bool) (ControlMode.res.inst_5_a_0 Bool) (ControlMode.res.inst_4_a_0 Bool) (ControlMode.res.inst_3_a_0 Bool) (ControlMode.res.inst_2_a_0 Bool) (ControlMode.res.inst_1_a_0 Bool) (ControlMode.res.inst_0_a_0 Bool)) Bool + (and (= ControlMode.usr.op_mode_a_0 1) (= ControlMode.res.abs_0_a_0 (let ((X1 ControlMode.res.nondet_0)) X1)) (__node_init_critical_failure_0 ControlMode.res.abs_0_a_0 ControlMode.usr.steam_a_0 ControlMode.usr.level_defect_a_0 ControlMode.usr.steam_defect_a_0 ControlMode.usr.pump_defect_0_a_0 ControlMode.usr.pump_defect_1_a_0 ControlMode.usr.pump_defect_2_a_0 ControlMode.usr.pump_defect_3_a_0 ControlMode.usr.q_a_0 ControlMode.usr.pump_state_0_a_0 ControlMode.usr.pump_state_1_a_0 ControlMode.usr.pump_state_2_a_0 ControlMode.usr.pump_state_3_a_0 ControlMode.res.abs_1_a_0 ControlMode.res.inst_46_a_0 ControlMode.res.inst_45_a_0 ControlMode.res.inst_44_a_0 ControlMode.res.inst_43_a_0 ControlMode.res.inst_42_a_0 ControlMode.res.inst_41_a_0 ControlMode.res.inst_40_a_0 ControlMode.res.inst_39_a_0 ControlMode.res.inst_38_a_0 ControlMode.res.inst_37_a_0 ControlMode.res.inst_36_a_0 ControlMode.res.inst_35_a_0 ControlMode.res.inst_34_a_0 ControlMode.res.inst_33_a_0 ControlMode.res.inst_32_a_0 ControlMode.res.inst_31_a_0 ControlMode.res.inst_30_a_0 ControlMode.res.inst_29_a_0 ControlMode.res.inst_28_a_0 ControlMode.res.inst_27_a_0 ControlMode.res.inst_26_a_0) (__node_init_level_failure_0 ControlMode.usr.level_defect_a_0 ControlMode.res.abs_2_a_0 ControlMode.res.inst_25_a_0) (__node_init_failure_0 ControlMode.usr.level_defect_a_0 ControlMode.usr.steam_defect_a_0 ControlMode.usr.pump_defect_0_a_0 ControlMode.usr.pump_defect_1_a_0 ControlMode.usr.pump_defect_2_a_0 ControlMode.usr.pump_defect_3_a_0 ControlMode.usr.pump_control_defect_0_a_0 ControlMode.usr.pump_control_defect_1_a_0 ControlMode.usr.pump_control_defect_2_a_0 ControlMode.usr.pump_control_defect_3_a_0 ControlMode.res.abs_3_a_0 ControlMode.res.inst_24_a_0 ControlMode.res.inst_23_a_0 ControlMode.res.inst_22_a_0 ControlMode.res.inst_21_a_0 ControlMode.res.inst_20_a_0 ControlMode.res.inst_19_a_0 ControlMode.res.inst_18_a_0 ControlMode.res.inst_17_a_0 ControlMode.res.inst_16_a_0 ControlMode.res.inst_15_a_0 ControlMode.res.inst_14_a_0 ControlMode.res.inst_13_a_0 ControlMode.res.inst_12_a_0 ControlMode.res.inst_11_a_0 ControlMode.res.inst_10_a_0 ControlMode.res.inst_9_a_0 ControlMode.res.inst_8_a_0 ControlMode.res.inst_7_a_0 ControlMode.res.inst_6_a_0 ControlMode.res.inst_5_a_0 ControlMode.res.inst_4_a_0 ControlMode.res.inst_3_a_0 ControlMode.res.inst_2_a_0 ControlMode.res.inst_1_a_0 ControlMode.res.inst_0_a_0) (<= 1 ControlMode.usr.op_mode_a_0 6) ControlMode.res.init_flag_a_0)) +(define-fun __node_trans_ControlMode_0 ((ControlMode.usr.steam_boiler_waiting_a_1 Bool) (ControlMode.usr.physical_units_ready_a_1 Bool) (ControlMode.usr.stop_request_a_1 Bool) (ControlMode.usr.steam_a_1 Int) (ControlMode.usr.level_defect_a_1 Int) (ControlMode.usr.steam_defect_a_1 Int) (ControlMode.usr.pump_defect_0_a_1 Int) (ControlMode.usr.pump_defect_1_a_1 Int) (ControlMode.usr.pump_defect_2_a_1 Int) (ControlMode.usr.pump_defect_3_a_1 Int) (ControlMode.usr.pump_control_defect_0_a_1 Int) (ControlMode.usr.pump_control_defect_1_a_1 Int) (ControlMode.usr.pump_control_defect_2_a_1 Int) (ControlMode.usr.pump_control_defect_3_a_1 Int) (ControlMode.usr.q_a_1 Int) (ControlMode.usr.pump_state_0_a_1 Int) (ControlMode.usr.pump_state_1_a_1 Int) (ControlMode.usr.pump_state_2_a_1 Int) (ControlMode.usr.pump_state_3_a_1 Int) (ControlMode.res.nondet_0 Int) (ControlMode.usr.op_mode_a_1 Int) (ControlMode.res.init_flag_a_1 Bool) (ControlMode.res.abs_0_a_1 Int) (ControlMode.res.abs_1_a_1 Bool) (ControlMode.res.abs_2_a_1 Bool) (ControlMode.res.abs_3_a_1 Bool) (ControlMode.res.inst_46_a_1 Bool) (ControlMode.res.inst_45_a_1 Bool) (ControlMode.res.inst_44_a_1 Bool) (ControlMode.res.inst_43_a_1 Bool) (ControlMode.res.inst_42_a_1 Bool) (ControlMode.res.inst_41_a_1 Bool) (ControlMode.res.inst_40_a_1 Bool) (ControlMode.res.inst_39_a_1 Bool) (ControlMode.res.inst_38_a_1 Bool) (ControlMode.res.inst_37_a_1 Bool) (ControlMode.res.inst_36_a_1 Bool) (ControlMode.res.inst_35_a_1 Bool) (ControlMode.res.inst_34_a_1 Bool) (ControlMode.res.inst_33_a_1 Bool) (ControlMode.res.inst_32_a_1 Bool) (ControlMode.res.inst_31_a_1 Bool) (ControlMode.res.inst_30_a_1 Bool) (ControlMode.res.inst_29_a_1 Bool) (ControlMode.res.inst_28_a_1 Bool) (ControlMode.res.inst_27_a_1 Bool) (ControlMode.res.inst_26_a_1 Bool) (ControlMode.res.inst_25_a_1 Bool) (ControlMode.res.inst_24_a_1 Bool) (ControlMode.res.inst_23_a_1 Bool) (ControlMode.res.inst_22_a_1 Bool) (ControlMode.res.inst_21_a_1 Bool) (ControlMode.res.inst_20_a_1 Bool) (ControlMode.res.inst_19_a_1 Bool) (ControlMode.res.inst_18_a_1 Bool) (ControlMode.res.inst_17_a_1 Bool) (ControlMode.res.inst_16_a_1 Bool) (ControlMode.res.inst_15_a_1 Bool) (ControlMode.res.inst_14_a_1 Bool) (ControlMode.res.inst_13_a_1 Bool) (ControlMode.res.inst_12_a_1 Bool) (ControlMode.res.inst_11_a_1 Bool) (ControlMode.res.inst_10_a_1 Bool) (ControlMode.res.inst_9_a_1 Bool) (ControlMode.res.inst_8_a_1 Bool) (ControlMode.res.inst_7_a_1 Bool) (ControlMode.res.inst_6_a_1 Bool) (ControlMode.res.inst_5_a_1 Bool) (ControlMode.res.inst_4_a_1 Bool) (ControlMode.res.inst_3_a_1 Bool) (ControlMode.res.inst_2_a_1 Bool) (ControlMode.res.inst_1_a_1 Bool) (ControlMode.res.inst_0_a_1 Bool) (ControlMode.usr.steam_boiler_waiting_a_0 Bool) (ControlMode.usr.physical_units_ready_a_0 Bool) (ControlMode.usr.stop_request_a_0 Bool) (ControlMode.usr.steam_a_0 Int) (ControlMode.usr.level_defect_a_0 Int) (ControlMode.usr.steam_defect_a_0 Int) (ControlMode.usr.pump_defect_0_a_0 Int) (ControlMode.usr.pump_defect_1_a_0 Int) (ControlMode.usr.pump_defect_2_a_0 Int) (ControlMode.usr.pump_defect_3_a_0 Int) (ControlMode.usr.pump_control_defect_0_a_0 Int) (ControlMode.usr.pump_control_defect_1_a_0 Int) (ControlMode.usr.pump_control_defect_2_a_0 Int) (ControlMode.usr.pump_control_defect_3_a_0 Int) (ControlMode.usr.q_a_0 Int) (ControlMode.usr.pump_state_0_a_0 Int) (ControlMode.usr.pump_state_1_a_0 Int) (ControlMode.usr.pump_state_2_a_0 Int) (ControlMode.usr.pump_state_3_a_0 Int) (ControlMode.usr.op_mode_a_0 Int) (ControlMode.res.init_flag_a_0 Bool) (ControlMode.res.abs_0_a_0 Int) (ControlMode.res.abs_1_a_0 Bool) (ControlMode.res.abs_2_a_0 Bool) (ControlMode.res.abs_3_a_0 Bool) (ControlMode.res.inst_46_a_0 Bool) (ControlMode.res.inst_45_a_0 Bool) (ControlMode.res.inst_44_a_0 Bool) (ControlMode.res.inst_43_a_0 Bool) (ControlMode.res.inst_42_a_0 Bool) (ControlMode.res.inst_41_a_0 Bool) (ControlMode.res.inst_40_a_0 Bool) (ControlMode.res.inst_39_a_0 Bool) (ControlMode.res.inst_38_a_0 Bool) (ControlMode.res.inst_37_a_0 Bool) (ControlMode.res.inst_36_a_0 Bool) (ControlMode.res.inst_35_a_0 Bool) (ControlMode.res.inst_34_a_0 Bool) (ControlMode.res.inst_33_a_0 Bool) (ControlMode.res.inst_32_a_0 Bool) (ControlMode.res.inst_31_a_0 Bool) (ControlMode.res.inst_30_a_0 Bool) (ControlMode.res.inst_29_a_0 Bool) (ControlMode.res.inst_28_a_0 Bool) (ControlMode.res.inst_27_a_0 Bool) (ControlMode.res.inst_26_a_0 Bool) (ControlMode.res.inst_25_a_0 Bool) (ControlMode.res.inst_24_a_0 Bool) (ControlMode.res.inst_23_a_0 Bool) (ControlMode.res.inst_22_a_0 Bool) (ControlMode.res.inst_21_a_0 Bool) (ControlMode.res.inst_20_a_0 Bool) (ControlMode.res.inst_19_a_0 Bool) (ControlMode.res.inst_18_a_0 Bool) (ControlMode.res.inst_17_a_0 Bool) (ControlMode.res.inst_16_a_0 Bool) (ControlMode.res.inst_15_a_0 Bool) (ControlMode.res.inst_14_a_0 Bool) (ControlMode.res.inst_13_a_0 Bool) (ControlMode.res.inst_12_a_0 Bool) (ControlMode.res.inst_11_a_0 Bool) (ControlMode.res.inst_10_a_0 Bool) (ControlMode.res.inst_9_a_0 Bool) (ControlMode.res.inst_8_a_0 Bool) (ControlMode.res.inst_7_a_0 Bool) (ControlMode.res.inst_6_a_0 Bool) (ControlMode.res.inst_5_a_0 Bool) (ControlMode.res.inst_4_a_0 Bool) (ControlMode.res.inst_3_a_0 Bool) (ControlMode.res.inst_2_a_0 Bool) (ControlMode.res.inst_1_a_0 Bool) (ControlMode.res.inst_0_a_0 Bool)) Bool + (and (= ControlMode.res.abs_0_a_1 ControlMode.usr.op_mode_a_0) (= ControlMode.usr.op_mode_a_1 (ite (or (or ControlMode.res.abs_1_a_1 ControlMode.usr.stop_request_a_1) (= ControlMode.usr.op_mode_a_0 6)) 6 (ite (= ControlMode.usr.op_mode_a_0 1) (ite ControlMode.usr.steam_boiler_waiting_a_1 2 1) (ite (and (= ControlMode.usr.op_mode_a_0 2) (not ControlMode.usr.physical_units_ready_a_1)) 2 (ite ControlMode.res.abs_2_a_1 5 (ite ControlMode.res.abs_3_a_1 4 3)))))) (__node_trans_critical_failure_0 ControlMode.res.abs_0_a_1 ControlMode.usr.steam_a_1 ControlMode.usr.level_defect_a_1 ControlMode.usr.steam_defect_a_1 ControlMode.usr.pump_defect_0_a_1 ControlMode.usr.pump_defect_1_a_1 ControlMode.usr.pump_defect_2_a_1 ControlMode.usr.pump_defect_3_a_1 ControlMode.usr.q_a_1 ControlMode.usr.pump_state_0_a_1 ControlMode.usr.pump_state_1_a_1 ControlMode.usr.pump_state_2_a_1 ControlMode.usr.pump_state_3_a_1 ControlMode.res.abs_1_a_1 ControlMode.res.inst_46_a_1 ControlMode.res.inst_45_a_1 ControlMode.res.inst_44_a_1 ControlMode.res.inst_43_a_1 ControlMode.res.inst_42_a_1 ControlMode.res.inst_41_a_1 ControlMode.res.inst_40_a_1 ControlMode.res.inst_39_a_1 ControlMode.res.inst_38_a_1 ControlMode.res.inst_37_a_1 ControlMode.res.inst_36_a_1 ControlMode.res.inst_35_a_1 ControlMode.res.inst_34_a_1 ControlMode.res.inst_33_a_1 ControlMode.res.inst_32_a_1 ControlMode.res.inst_31_a_1 ControlMode.res.inst_30_a_1 ControlMode.res.inst_29_a_1 ControlMode.res.inst_28_a_1 ControlMode.res.inst_27_a_1 ControlMode.res.inst_26_a_1 ControlMode.res.abs_0_a_0 ControlMode.usr.steam_a_0 ControlMode.usr.level_defect_a_0 ControlMode.usr.steam_defect_a_0 ControlMode.usr.pump_defect_0_a_0 ControlMode.usr.pump_defect_1_a_0 ControlMode.usr.pump_defect_2_a_0 ControlMode.usr.pump_defect_3_a_0 ControlMode.usr.q_a_0 ControlMode.usr.pump_state_0_a_0 ControlMode.usr.pump_state_1_a_0 ControlMode.usr.pump_state_2_a_0 ControlMode.usr.pump_state_3_a_0 ControlMode.res.abs_1_a_0 ControlMode.res.inst_46_a_0 ControlMode.res.inst_45_a_0 ControlMode.res.inst_44_a_0 ControlMode.res.inst_43_a_0 ControlMode.res.inst_42_a_0 ControlMode.res.inst_41_a_0 ControlMode.res.inst_40_a_0 ControlMode.res.inst_39_a_0 ControlMode.res.inst_38_a_0 ControlMode.res.inst_37_a_0 ControlMode.res.inst_36_a_0 ControlMode.res.inst_35_a_0 ControlMode.res.inst_34_a_0 ControlMode.res.inst_33_a_0 ControlMode.res.inst_32_a_0 ControlMode.res.inst_31_a_0 ControlMode.res.inst_30_a_0 ControlMode.res.inst_29_a_0 ControlMode.res.inst_28_a_0 ControlMode.res.inst_27_a_0 ControlMode.res.inst_26_a_0) (__node_trans_level_failure_0 ControlMode.usr.level_defect_a_1 ControlMode.res.abs_2_a_1 ControlMode.res.inst_25_a_1 ControlMode.usr.level_defect_a_0 ControlMode.res.abs_2_a_0 ControlMode.res.inst_25_a_0) (__node_trans_failure_0 ControlMode.usr.level_defect_a_1 ControlMode.usr.steam_defect_a_1 ControlMode.usr.pump_defect_0_a_1 ControlMode.usr.pump_defect_1_a_1 ControlMode.usr.pump_defect_2_a_1 ControlMode.usr.pump_defect_3_a_1 ControlMode.usr.pump_control_defect_0_a_1 ControlMode.usr.pump_control_defect_1_a_1 ControlMode.usr.pump_control_defect_2_a_1 ControlMode.usr.pump_control_defect_3_a_1 ControlMode.res.abs_3_a_1 ControlMode.res.inst_24_a_1 ControlMode.res.inst_23_a_1 ControlMode.res.inst_22_a_1 ControlMode.res.inst_21_a_1 ControlMode.res.inst_20_a_1 ControlMode.res.inst_19_a_1 ControlMode.res.inst_18_a_1 ControlMode.res.inst_17_a_1 ControlMode.res.inst_16_a_1 ControlMode.res.inst_15_a_1 ControlMode.res.inst_14_a_1 ControlMode.res.inst_13_a_1 ControlMode.res.inst_12_a_1 ControlMode.res.inst_11_a_1 ControlMode.res.inst_10_a_1 ControlMode.res.inst_9_a_1 ControlMode.res.inst_8_a_1 ControlMode.res.inst_7_a_1 ControlMode.res.inst_6_a_1 ControlMode.res.inst_5_a_1 ControlMode.res.inst_4_a_1 ControlMode.res.inst_3_a_1 ControlMode.res.inst_2_a_1 ControlMode.res.inst_1_a_1 ControlMode.res.inst_0_a_1 ControlMode.usr.level_defect_a_0 ControlMode.usr.steam_defect_a_0 ControlMode.usr.pump_defect_0_a_0 ControlMode.usr.pump_defect_1_a_0 ControlMode.usr.pump_defect_2_a_0 ControlMode.usr.pump_defect_3_a_0 ControlMode.usr.pump_control_defect_0_a_0 ControlMode.usr.pump_control_defect_1_a_0 ControlMode.usr.pump_control_defect_2_a_0 ControlMode.usr.pump_control_defect_3_a_0 ControlMode.res.abs_3_a_0 ControlMode.res.inst_24_a_0 ControlMode.res.inst_23_a_0 ControlMode.res.inst_22_a_0 ControlMode.res.inst_21_a_0 ControlMode.res.inst_20_a_0 ControlMode.res.inst_19_a_0 ControlMode.res.inst_18_a_0 ControlMode.res.inst_17_a_0 ControlMode.res.inst_16_a_0 ControlMode.res.inst_15_a_0 ControlMode.res.inst_14_a_0 ControlMode.res.inst_13_a_0 ControlMode.res.inst_12_a_0 ControlMode.res.inst_11_a_0 ControlMode.res.inst_10_a_0 ControlMode.res.inst_9_a_0 ControlMode.res.inst_8_a_0 ControlMode.res.inst_7_a_0 ControlMode.res.inst_6_a_0 ControlMode.res.inst_5_a_0 ControlMode.res.inst_4_a_0 ControlMode.res.inst_3_a_0 ControlMode.res.inst_2_a_0 ControlMode.res.inst_1_a_0 ControlMode.res.inst_0_a_0) (<= 1 ControlMode.usr.op_mode_a_1 6) (not ControlMode.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.steam_boiler_waiting_a_0 Bool) (top.usr.physical_units_ready_a_0 Bool) (top.usr.stop_request_a_0 Bool) (top.usr.steam_a_0 Int) (top.usr.level_defect_a_0 Int) (top.usr.steam_defect_a_0 Int) (top.usr.pump_defect_0_a_0 Int) (top.usr.pump_defect_1_a_0 Int) (top.usr.pump_defect_2_a_0 Int) (top.usr.pump_defect_3_a_0 Int) (top.usr.pump_control_defect_0_a_0 Int) (top.usr.pump_control_defect_1_a_0 Int) (top.usr.pump_control_defect_2_a_0 Int) (top.usr.pump_control_defect_3_a_0 Int) (top.usr.q_a_0 Int) (top.usr.pump_state_0_a_0 Int) (top.usr.pump_state_1_a_0 Int) (top.usr.pump_state_2_a_0 Int) (top.usr.pump_state_3_a_0 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.op_mode_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Bool) (top.res.inst_52_a_0 Bool) (top.res.inst_51_a_0 Int) (top.res.inst_50_a_0 Bool) (top.res.inst_49_a_0 Bool) (top.res.inst_48_a_0 Bool) (top.res.inst_47_a_0 Bool) (top.res.inst_46_a_0 Bool) (top.res.inst_45_a_0 Bool) (top.res.inst_44_a_0 Bool) (top.res.inst_43_a_0 Bool) (top.res.inst_42_a_0 Bool) (top.res.inst_41_a_0 Bool) (top.res.inst_40_a_0 Bool) (top.res.inst_39_a_0 Bool) (top.res.inst_38_a_0 Bool) (top.res.inst_37_a_0 Bool) (top.res.inst_36_a_0 Bool) (top.res.inst_35_a_0 Bool) (top.res.inst_34_a_0 Bool) (top.res.inst_33_a_0 Bool) (top.res.inst_32_a_0 Bool) (top.res.inst_31_a_0 Bool) (top.res.inst_30_a_0 Bool) (top.res.inst_29_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.op_mode_a_0 top.res.abs_0_a_0) (let ((X1 (=> (= top.impl.usr.op_mode_a_0 3) (not top.usr.stop_request_a_0)))) (let ((X2 true)) (and (= top.usr.OK_a_0 (and X2 X1)) (__node_init_ControlMode_0 top.usr.steam_boiler_waiting_a_0 top.usr.physical_units_ready_a_0 top.usr.stop_request_a_0 top.usr.steam_a_0 top.usr.level_defect_a_0 top.usr.steam_defect_a_0 top.usr.pump_defect_0_a_0 top.usr.pump_defect_1_a_0 top.usr.pump_defect_2_a_0 top.usr.pump_defect_3_a_0 top.usr.pump_control_defect_0_a_0 top.usr.pump_control_defect_1_a_0 top.usr.pump_control_defect_2_a_0 top.usr.pump_control_defect_3_a_0 top.usr.q_a_0 top.usr.pump_state_0_a_0 top.usr.pump_state_1_a_0 top.usr.pump_state_2_a_0 top.usr.pump_state_3_a_0 top.res.nondet_0 top.res.abs_0_a_0 top.res.inst_52_a_0 top.res.inst_51_a_0 top.res.inst_50_a_0 top.res.inst_49_a_0 top.res.inst_48_a_0 top.res.inst_47_a_0 top.res.inst_46_a_0 top.res.inst_45_a_0 top.res.inst_44_a_0 top.res.inst_43_a_0 top.res.inst_42_a_0 top.res.inst_41_a_0 top.res.inst_40_a_0 top.res.inst_39_a_0 top.res.inst_38_a_0 top.res.inst_37_a_0 top.res.inst_36_a_0 top.res.inst_35_a_0 top.res.inst_34_a_0 top.res.inst_33_a_0 top.res.inst_32_a_0 top.res.inst_31_a_0 top.res.inst_30_a_0 top.res.inst_29_a_0 top.res.inst_28_a_0 top.res.inst_27_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_init_dangerous_level_0 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) (<= 1 top.impl.usr.op_mode_a_0 6) (<= 1 top.res.abs_0_a_0 6) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.steam_boiler_waiting_a_1 Bool) (top.usr.physical_units_ready_a_1 Bool) (top.usr.stop_request_a_1 Bool) (top.usr.steam_a_1 Int) (top.usr.level_defect_a_1 Int) (top.usr.steam_defect_a_1 Int) (top.usr.pump_defect_0_a_1 Int) (top.usr.pump_defect_1_a_1 Int) (top.usr.pump_defect_2_a_1 Int) (top.usr.pump_defect_3_a_1 Int) (top.usr.pump_control_defect_0_a_1 Int) (top.usr.pump_control_defect_1_a_1 Int) (top.usr.pump_control_defect_2_a_1 Int) (top.usr.pump_control_defect_3_a_1 Int) (top.usr.q_a_1 Int) (top.usr.pump_state_0_a_1 Int) (top.usr.pump_state_1_a_1 Int) (top.usr.pump_state_2_a_1 Int) (top.usr.pump_state_3_a_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.op_mode_a_1 Int) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Bool) (top.res.inst_52_a_1 Bool) (top.res.inst_51_a_1 Int) (top.res.inst_50_a_1 Bool) (top.res.inst_49_a_1 Bool) (top.res.inst_48_a_1 Bool) (top.res.inst_47_a_1 Bool) (top.res.inst_46_a_1 Bool) (top.res.inst_45_a_1 Bool) (top.res.inst_44_a_1 Bool) (top.res.inst_43_a_1 Bool) (top.res.inst_42_a_1 Bool) (top.res.inst_41_a_1 Bool) (top.res.inst_40_a_1 Bool) (top.res.inst_39_a_1 Bool) (top.res.inst_38_a_1 Bool) (top.res.inst_37_a_1 Bool) (top.res.inst_36_a_1 Bool) (top.res.inst_35_a_1 Bool) (top.res.inst_34_a_1 Bool) (top.res.inst_33_a_1 Bool) (top.res.inst_32_a_1 Bool) (top.res.inst_31_a_1 Bool) (top.res.inst_30_a_1 Bool) (top.res.inst_29_a_1 Bool) (top.res.inst_28_a_1 Bool) (top.res.inst_27_a_1 Bool) (top.res.inst_26_a_1 Bool) (top.res.inst_25_a_1 Bool) (top.res.inst_24_a_1 Bool) (top.res.inst_23_a_1 Bool) (top.res.inst_22_a_1 Bool) (top.res.inst_21_a_1 Bool) (top.res.inst_20_a_1 Bool) (top.res.inst_19_a_1 Bool) (top.res.inst_18_a_1 Bool) (top.res.inst_17_a_1 Bool) (top.res.inst_16_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Bool) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Bool) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Bool) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.steam_boiler_waiting_a_0 Bool) (top.usr.physical_units_ready_a_0 Bool) (top.usr.stop_request_a_0 Bool) (top.usr.steam_a_0 Int) (top.usr.level_defect_a_0 Int) (top.usr.steam_defect_a_0 Int) (top.usr.pump_defect_0_a_0 Int) (top.usr.pump_defect_1_a_0 Int) (top.usr.pump_defect_2_a_0 Int) (top.usr.pump_defect_3_a_0 Int) (top.usr.pump_control_defect_0_a_0 Int) (top.usr.pump_control_defect_1_a_0 Int) (top.usr.pump_control_defect_2_a_0 Int) (top.usr.pump_control_defect_3_a_0 Int) (top.usr.q_a_0 Int) (top.usr.pump_state_0_a_0 Int) (top.usr.pump_state_1_a_0 Int) (top.usr.pump_state_2_a_0 Int) (top.usr.pump_state_3_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.op_mode_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Bool) (top.res.inst_52_a_0 Bool) (top.res.inst_51_a_0 Int) (top.res.inst_50_a_0 Bool) (top.res.inst_49_a_0 Bool) (top.res.inst_48_a_0 Bool) (top.res.inst_47_a_0 Bool) (top.res.inst_46_a_0 Bool) (top.res.inst_45_a_0 Bool) (top.res.inst_44_a_0 Bool) (top.res.inst_43_a_0 Bool) (top.res.inst_42_a_0 Bool) (top.res.inst_41_a_0 Bool) (top.res.inst_40_a_0 Bool) (top.res.inst_39_a_0 Bool) (top.res.inst_38_a_0 Bool) (top.res.inst_37_a_0 Bool) (top.res.inst_36_a_0 Bool) (top.res.inst_35_a_0 Bool) (top.res.inst_34_a_0 Bool) (top.res.inst_33_a_0 Bool) (top.res.inst_32_a_0 Bool) (top.res.inst_31_a_0 Bool) (top.res.inst_30_a_0 Bool) (top.res.inst_29_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.op_mode_a_1 top.res.abs_0_a_1) (let ((X1 (=> (= top.impl.usr.op_mode_a_1 3) (not top.usr.stop_request_a_1)))) (let ((X2 (=> (and (= top.impl.usr.op_mode_a_1 3) (= top.impl.usr.op_mode_a_0 3)) (not top.res.abs_1_a_1)))) (and (= top.usr.OK_a_1 (and X2 X1)) (__node_trans_ControlMode_0 top.usr.steam_boiler_waiting_a_1 top.usr.physical_units_ready_a_1 top.usr.stop_request_a_1 top.usr.steam_a_1 top.usr.level_defect_a_1 top.usr.steam_defect_a_1 top.usr.pump_defect_0_a_1 top.usr.pump_defect_1_a_1 top.usr.pump_defect_2_a_1 top.usr.pump_defect_3_a_1 top.usr.pump_control_defect_0_a_1 top.usr.pump_control_defect_1_a_1 top.usr.pump_control_defect_2_a_1 top.usr.pump_control_defect_3_a_1 top.usr.q_a_1 top.usr.pump_state_0_a_1 top.usr.pump_state_1_a_1 top.usr.pump_state_2_a_1 top.usr.pump_state_3_a_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.inst_52_a_1 top.res.inst_51_a_1 top.res.inst_50_a_1 top.res.inst_49_a_1 top.res.inst_48_a_1 top.res.inst_47_a_1 top.res.inst_46_a_1 top.res.inst_45_a_1 top.res.inst_44_a_1 top.res.inst_43_a_1 top.res.inst_42_a_1 top.res.inst_41_a_1 top.res.inst_40_a_1 top.res.inst_39_a_1 top.res.inst_38_a_1 top.res.inst_37_a_1 top.res.inst_36_a_1 top.res.inst_35_a_1 top.res.inst_34_a_1 top.res.inst_33_a_1 top.res.inst_32_a_1 top.res.inst_31_a_1 top.res.inst_30_a_1 top.res.inst_29_a_1 top.res.inst_28_a_1 top.res.inst_27_a_1 top.res.inst_26_a_1 top.res.inst_25_a_1 top.res.inst_24_a_1 top.res.inst_23_a_1 top.res.inst_22_a_1 top.res.inst_21_a_1 top.res.inst_20_a_1 top.res.inst_19_a_1 top.res.inst_18_a_1 top.res.inst_17_a_1 top.res.inst_16_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.usr.steam_boiler_waiting_a_0 top.usr.physical_units_ready_a_0 top.usr.stop_request_a_0 top.usr.steam_a_0 top.usr.level_defect_a_0 top.usr.steam_defect_a_0 top.usr.pump_defect_0_a_0 top.usr.pump_defect_1_a_0 top.usr.pump_defect_2_a_0 top.usr.pump_defect_3_a_0 top.usr.pump_control_defect_0_a_0 top.usr.pump_control_defect_1_a_0 top.usr.pump_control_defect_2_a_0 top.usr.pump_control_defect_3_a_0 top.usr.q_a_0 top.usr.pump_state_0_a_0 top.usr.pump_state_1_a_0 top.usr.pump_state_2_a_0 top.usr.pump_state_3_a_0 top.res.abs_0_a_0 top.res.inst_52_a_0 top.res.inst_51_a_0 top.res.inst_50_a_0 top.res.inst_49_a_0 top.res.inst_48_a_0 top.res.inst_47_a_0 top.res.inst_46_a_0 top.res.inst_45_a_0 top.res.inst_44_a_0 top.res.inst_43_a_0 top.res.inst_42_a_0 top.res.inst_41_a_0 top.res.inst_40_a_0 top.res.inst_39_a_0 top.res.inst_38_a_0 top.res.inst_37_a_0 top.res.inst_36_a_0 top.res.inst_35_a_0 top.res.inst_34_a_0 top.res.inst_33_a_0 top.res.inst_32_a_0 top.res.inst_31_a_0 top.res.inst_30_a_0 top.res.inst_29_a_0 top.res.inst_28_a_0 top.res.inst_27_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_trans_dangerous_level_0 top.usr.q_a_1 top.res.abs_1_a_1 top.res.inst_0_a_1 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) (<= 1 top.impl.usr.op_mode_a_1 6) (<= 1 top.res.abs_0_a_1 6) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.steam_boiler_waiting Bool) (top.usr.physical_units_ready Bool) (top.usr.stop_request Bool) (top.usr.steam Int) (top.usr.level_defect Int) (top.usr.steam_defect Int) (top.usr.pump_defect_0 Int) (top.usr.pump_defect_1 Int) (top.usr.pump_defect_2 Int) (top.usr.pump_defect_3 Int) (top.usr.pump_control_defect_0 Int) (top.usr.pump_control_defect_1 Int) (top.usr.pump_control_defect_2 Int) (top.usr.pump_control_defect_3 Int) (top.usr.q Int) (top.usr.pump_state_0 Int) (top.usr.pump_state_1 Int) (top.usr.pump_state_2 Int) (top.usr.pump_state_3 Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.op_mode Int) (top.res.abs_0 Int) (top.res.abs_1 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Int) (top.res.inst_50 Bool) (top.res.inst_49 Bool) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.steam_boiler_waiting Bool) (top.usr.physical_units_ready Bool) (top.usr.stop_request Bool) (top.usr.steam Int) (top.usr.level_defect Int) (top.usr.steam_defect Int) (top.usr.pump_defect_0 Int) (top.usr.pump_defect_1 Int) (top.usr.pump_defect_2 Int) (top.usr.pump_defect_3 Int) (top.usr.pump_control_defect_0 Int) (top.usr.pump_control_defect_1 Int) (top.usr.pump_control_defect_2 Int) (top.usr.pump_control_defect_3 Int) (top.usr.q Int) (top.usr.pump_state_0 Int) (top.usr.pump_state_1 Int) (top.usr.pump_state_2 Int) (top.usr.pump_state_3 Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.op_mode Int) (top.res.abs_0 Int) (top.res.abs_1 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Int) (top.res.inst_50 Bool) (top.res.inst_49 Bool) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.op_mode top.res.abs_0) (let ((X1 (=> (= top.impl.usr.op_mode 3) (not top.usr.stop_request)))) (let ((X2 true)) (and (= top.usr.OK (and X2 X1)) (__node_init_ControlMode_0 top.usr.steam_boiler_waiting top.usr.physical_units_ready top.usr.stop_request top.usr.steam top.usr.level_defect top.usr.steam_defect top.usr.pump_defect_0 top.usr.pump_defect_1 top.usr.pump_defect_2 top.usr.pump_defect_3 top.usr.pump_control_defect_0 top.usr.pump_control_defect_1 top.usr.pump_control_defect_2 top.usr.pump_control_defect_3 top.usr.q top.usr.pump_state_0 top.usr.pump_state_1 top.usr.pump_state_2 top.usr.pump_state_3 top.res.nondet_0 top.res.abs_0 top.res.inst_52 top.res.inst_51 top.res.inst_50 top.res.inst_49 top.res.inst_48 top.res.inst_47 top.res.inst_46 top.res.inst_45 top.res.inst_44 top.res.inst_43 top.res.inst_42 top.res.inst_41 top.res.inst_40 top.res.inst_39 top.res.inst_38 top.res.inst_37 top.res.inst_36 top.res.inst_35 top.res.inst_34 top.res.inst_33 top.res.inst_32 top.res.inst_31 top.res.inst_30 top.res.inst_29 top.res.inst_28 top.res.inst_27 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_init_dangerous_level_0 top.usr.q top.res.abs_1 top.res.inst_0) (<= 1 top.impl.usr.op_mode 6) (<= 1 top.res.abs_0 6) top.res.init_flag))))) +(define-fun trans ((top.usr.steam_boiler_waiting Bool) (top.usr.physical_units_ready Bool) (top.usr.stop_request Bool) (top.usr.steam Int) (top.usr.level_defect Int) (top.usr.steam_defect Int) (top.usr.pump_defect_0 Int) (top.usr.pump_defect_1 Int) (top.usr.pump_defect_2 Int) (top.usr.pump_defect_3 Int) (top.usr.pump_control_defect_0 Int) (top.usr.pump_control_defect_1 Int) (top.usr.pump_control_defect_2 Int) (top.usr.pump_control_defect_3 Int) (top.usr.q Int) (top.usr.pump_state_0 Int) (top.usr.pump_state_1 Int) (top.usr.pump_state_2 Int) (top.usr.pump_state_3 Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.op_mode Int) (top.res.abs_0 Int) (top.res.abs_1 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Int) (top.res.inst_50 Bool) (top.res.inst_49 Bool) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.steam_boiler_waiting! Bool) (top.usr.physical_units_ready! Bool) (top.usr.stop_request! Bool) (top.usr.steam! Int) (top.usr.level_defect! Int) (top.usr.steam_defect! Int) (top.usr.pump_defect_0! Int) (top.usr.pump_defect_1! Int) (top.usr.pump_defect_2! Int) (top.usr.pump_defect_3! Int) (top.usr.pump_control_defect_0! Int) (top.usr.pump_control_defect_1! Int) (top.usr.pump_control_defect_2! Int) (top.usr.pump_control_defect_3! Int) (top.usr.q! Int) (top.usr.pump_state_0! Int) (top.usr.pump_state_1! Int) (top.usr.pump_state_2! Int) (top.usr.pump_state_3! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.op_mode! Int) (top.res.abs_0! Int) (top.res.abs_1! Bool) (top.res.inst_52! Bool) (top.res.inst_51! Int) (top.res.inst_50! Bool) (top.res.inst_49! Bool) (top.res.inst_48! Bool) (top.res.inst_47! Bool) (top.res.inst_46! Bool) (top.res.inst_45! Bool) (top.res.inst_44! Bool) (top.res.inst_43! Bool) (top.res.inst_42! Bool) (top.res.inst_41! Bool) (top.res.inst_40! Bool) (top.res.inst_39! Bool) (top.res.inst_38! Bool) (top.res.inst_37! Bool) (top.res.inst_36! Bool) (top.res.inst_35! Bool) (top.res.inst_34! Bool) (top.res.inst_33! Bool) (top.res.inst_32! Bool) (top.res.inst_31! Bool) (top.res.inst_30! Bool) (top.res.inst_29! Bool) (top.res.inst_28! Bool) (top.res.inst_27! Bool) (top.res.inst_26! Bool) (top.res.inst_25! Bool) (top.res.inst_24! Bool) (top.res.inst_23! Bool) (top.res.inst_22! Bool) (top.res.inst_21! Bool) (top.res.inst_20! Bool) (top.res.inst_19! Bool) (top.res.inst_18! Bool) (top.res.inst_17! Bool) (top.res.inst_16! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Bool) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Bool) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Bool) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.impl.usr.op_mode! top.res.abs_0!) (let ((X1 (=> (= top.impl.usr.op_mode! 3) (not top.usr.stop_request!)))) (let ((X2 (=> (and (= top.impl.usr.op_mode! 3) (= top.impl.usr.op_mode 3)) (not top.res.abs_1!)))) (and (= top.usr.OK! (and X2 X1)) (__node_trans_ControlMode_0 top.usr.steam_boiler_waiting! top.usr.physical_units_ready! top.usr.stop_request! top.usr.steam! top.usr.level_defect! top.usr.steam_defect! top.usr.pump_defect_0! top.usr.pump_defect_1! top.usr.pump_defect_2! top.usr.pump_defect_3! top.usr.pump_control_defect_0! top.usr.pump_control_defect_1! top.usr.pump_control_defect_2! top.usr.pump_control_defect_3! top.usr.q! top.usr.pump_state_0! top.usr.pump_state_1! top.usr.pump_state_2! top.usr.pump_state_3! top.res.nondet_0 top.res.abs_0! top.res.inst_52! top.res.inst_51! top.res.inst_50! top.res.inst_49! top.res.inst_48! top.res.inst_47! top.res.inst_46! top.res.inst_45! top.res.inst_44! top.res.inst_43! top.res.inst_42! top.res.inst_41! top.res.inst_40! top.res.inst_39! top.res.inst_38! top.res.inst_37! top.res.inst_36! top.res.inst_35! top.res.inst_34! top.res.inst_33! top.res.inst_32! top.res.inst_31! top.res.inst_30! top.res.inst_29! top.res.inst_28! top.res.inst_27! top.res.inst_26! top.res.inst_25! top.res.inst_24! top.res.inst_23! top.res.inst_22! top.res.inst_21! top.res.inst_20! top.res.inst_19! top.res.inst_18! top.res.inst_17! top.res.inst_16! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.usr.steam_boiler_waiting top.usr.physical_units_ready top.usr.stop_request top.usr.steam top.usr.level_defect top.usr.steam_defect top.usr.pump_defect_0 top.usr.pump_defect_1 top.usr.pump_defect_2 top.usr.pump_defect_3 top.usr.pump_control_defect_0 top.usr.pump_control_defect_1 top.usr.pump_control_defect_2 top.usr.pump_control_defect_3 top.usr.q top.usr.pump_state_0 top.usr.pump_state_1 top.usr.pump_state_2 top.usr.pump_state_3 top.res.abs_0 top.res.inst_52 top.res.inst_51 top.res.inst_50 top.res.inst_49 top.res.inst_48 top.res.inst_47 top.res.inst_46 top.res.inst_45 top.res.inst_44 top.res.inst_43 top.res.inst_42 top.res.inst_41 top.res.inst_40 top.res.inst_39 top.res.inst_38 top.res.inst_37 top.res.inst_36 top.res.inst_35 top.res.inst_34 top.res.inst_33 top.res.inst_32 top.res.inst_31 top.res.inst_30 top.res.inst_29 top.res.inst_28 top.res.inst_27 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_trans_dangerous_level_0 top.usr.q! top.res.abs_1! top.res.inst_0! top.usr.q top.res.abs_1 top.res.inst_0) (<= 1 top.impl.usr.op_mode! 6) (<= 1 top.res.abs_0! 6) (not top.res.init_flag!))))) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.steam_boiler_waiting Bool) (top.usr.physical_units_ready Bool) (top.usr.stop_request Bool) (top.usr.steam Int) (top.usr.level_defect Int) (top.usr.steam_defect Int) (top.usr.pump_defect_0 Int) (top.usr.pump_defect_1 Int) (top.usr.pump_defect_2 Int) (top.usr.pump_defect_3 Int) (top.usr.pump_control_defect_0 Int) (top.usr.pump_control_defect_1 Int) (top.usr.pump_control_defect_2 Int) (top.usr.pump_control_defect_3 Int) (top.usr.q Int) (top.usr.pump_state_0 Int) (top.usr.pump_state_1 Int) (top.usr.pump_state_2 Int) (top.usr.pump_state_3 Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.op_mode Int) (top.res.abs_0 Int) (top.res.abs_1 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Int) (top.res.inst_50 Bool) (top.res.inst_49 Bool) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/steam_boiler_no_arr2_e8_21449_e5_18210.sl b/benchmarks/LIA/Lustre/steam_boiler_no_arr2_e8_21449_e5_18210.sl index 5a203a2..15b671f 100644 --- a/benchmarks/LIA/Lustre/steam_boiler_no_arr2_e8_21449_e5_18210.sl +++ b/benchmarks/LIA/Lustre/steam_boiler_no_arr2_e8_21449_e5_18210.sl @@ -1,2635 +1,68 @@ (set-logic LIA) -(define-fun - __node_init_dangerous_level_0 ( - (dangerous_level.usr.q_a_0 Int) - (dangerous_level.usr.dangerous_level_a_0 Bool) - (dangerous_level.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - dangerous_level.usr.dangerous_level_a_0 - (or (<= dangerous_level.usr.q_a_0 150) (>= dangerous_level.usr.q_a_0 850))) - dangerous_level.res.init_flag_a_0) -) - -(define-fun - __node_trans_dangerous_level_0 ( - (dangerous_level.usr.q_a_1 Int) - (dangerous_level.usr.dangerous_level_a_1 Bool) - (dangerous_level.res.init_flag_a_1 Bool) - (dangerous_level.usr.q_a_0 Int) - (dangerous_level.usr.dangerous_level_a_0 Bool) - (dangerous_level.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - dangerous_level.usr.dangerous_level_a_1 - (or (<= dangerous_level.usr.q_a_1 150) (>= dangerous_level.usr.q_a_1 850))) - (not dangerous_level.res.init_flag_a_1)) -) - -(define-fun - __node_init_level_failure_0 ( - (level_failure.usr.level_defect_a_0 Int) - (level_failure.usr.level_failure_a_0 Bool) - (level_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - level_failure.usr.level_failure_a_0 - (not (= level_failure.usr.level_defect_a_0 0))) - level_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_level_failure_0 ( - (level_failure.usr.level_defect_a_1 Int) - (level_failure.usr.level_failure_a_1 Bool) - (level_failure.res.init_flag_a_1 Bool) - (level_failure.usr.level_defect_a_0 Int) - (level_failure.usr.level_failure_a_0 Bool) - (level_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - level_failure.usr.level_failure_a_1 - (not (= level_failure.usr.level_defect_a_1 0))) - (not level_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_steam_failure_0 ( - (steam_failure.usr.steam_defect_a_0 Int) - (steam_failure.usr.steam_failure_a_0 Bool) - (steam_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - steam_failure.usr.steam_failure_a_0 - (not (= steam_failure.usr.steam_defect_a_0 0))) - steam_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_steam_failure_0 ( - (steam_failure.usr.steam_defect_a_1 Int) - (steam_failure.usr.steam_failure_a_1 Bool) - (steam_failure.res.init_flag_a_1 Bool) - (steam_failure.usr.steam_defect_a_0 Int) - (steam_failure.usr.steam_failure_a_0 Bool) - (steam_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - steam_failure.usr.steam_failure_a_1 - (not (= steam_failure.usr.steam_defect_a_1 0))) - (not steam_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_OR_0 ( - (OR.usr.a_0_a_0 Bool) - (OR.usr.a_1_a_0 Bool) - (OR.usr.a_2_a_0 Bool) - (OR.usr.a_3_a_0 Bool) - (OR.usr.OR_a_0 Bool) - (OR.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - OR.usr.OR_a_0 - (or (or (and OR.usr.a_0_a_0 OR.usr.a_1_a_0) OR.usr.a_2_a_0) OR.usr.a_3_a_0)) - OR.res.init_flag_a_0) -) - -(define-fun - __node_trans_OR_0 ( - (OR.usr.a_0_a_1 Bool) - (OR.usr.a_1_a_1 Bool) - (OR.usr.a_2_a_1 Bool) - (OR.usr.a_3_a_1 Bool) - (OR.usr.OR_a_1 Bool) - (OR.res.init_flag_a_1 Bool) - (OR.usr.a_0_a_0 Bool) - (OR.usr.a_1_a_0 Bool) - (OR.usr.a_2_a_0 Bool) - (OR.usr.a_3_a_0 Bool) - (OR.usr.OR_a_0 Bool) - (OR.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - OR.usr.OR_a_1 - (or (or (and OR.usr.a_0_a_1 OR.usr.a_1_a_1) OR.usr.a_2_a_1) OR.usr.a_3_a_1)) - (not OR.res.init_flag_a_1)) -) - -(define-fun - __node_init_pump_control_failure_0 ( - (pump_control_failure.usr.pump_defect_a_0 Int) - (pump_control_failure.usr.pump_failure_a_0 Bool) - (pump_control_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - pump_control_failure.usr.pump_failure_a_0 - (not (= pump_control_failure.usr.pump_defect_a_0 0))) - pump_control_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_pump_control_failure_0 ( - (pump_control_failure.usr.pump_defect_a_1 Int) - (pump_control_failure.usr.pump_failure_a_1 Bool) - (pump_control_failure.res.init_flag_a_1 Bool) - (pump_control_failure.usr.pump_defect_a_0 Int) - (pump_control_failure.usr.pump_failure_a_0 Bool) - (pump_control_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - pump_control_failure.usr.pump_failure_a_1 - (not (= pump_control_failure.usr.pump_defect_a_1 0))) - (not pump_control_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_pump_failure_0 ( - (pump_failure.usr.pump_defect_a_0 Int) - (pump_failure.usr.pump_failure_a_0 Bool) - (pump_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - pump_failure.usr.pump_failure_a_0 - (not (= pump_failure.usr.pump_defect_a_0 0))) - pump_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_pump_failure_0 ( - (pump_failure.usr.pump_defect_a_1 Int) - (pump_failure.usr.pump_failure_a_1 Bool) - (pump_failure.res.init_flag_a_1 Bool) - (pump_failure.usr.pump_defect_a_0 Int) - (pump_failure.usr.pump_failure_a_0 Bool) - (pump_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - pump_failure.usr.pump_failure_a_1 - (not (= pump_failure.usr.pump_defect_a_1 0))) - (not pump_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_failure_0 ( - (failure.usr.level_defect_a_0 Int) - (failure.usr.steam_defect_a_0 Int) - (failure.usr.pump_defect_0_a_0 Int) - (failure.usr.pump_defect_1_a_0 Int) - (failure.usr.pump_defect_2_a_0 Int) - (failure.usr.pump_defect_3_a_0 Int) - (failure.usr.pump_control_defect_0_a_0 Int) - (failure.usr.pump_control_defect_1_a_0 Int) - (failure.usr.pump_control_defect_2_a_0 Int) - (failure.usr.pump_control_defect_3_a_0 Int) - (failure.usr.failure_a_0 Bool) - (failure.res.init_flag_a_0 Bool) - (failure.res.abs_0_a_0 Bool) - (failure.res.abs_1_a_0 Bool) - (failure.res.abs_2_a_0 Bool) - (failure.res.abs_3_a_0 Bool) - (failure.res.abs_4_a_0 Bool) - (failure.res.abs_5_a_0 Bool) - (failure.res.abs_6_a_0 Bool) - (failure.res.abs_7_a_0 Bool) - (failure.res.abs_8_a_0 Bool) - (failure.res.abs_9_a_0 Bool) - (failure.res.abs_10_a_0 Bool) - (failure.res.abs_11_a_0 Bool) - (failure.res.inst_11_a_0 Bool) - (failure.res.inst_10_a_0 Bool) - (failure.res.inst_9_a_0 Bool) - (failure.res.inst_8_a_0 Bool) - (failure.res.inst_7_a_0 Bool) - (failure.res.inst_6_a_0 Bool) - (failure.res.inst_5_a_0 Bool) - (failure.res.inst_4_a_0 Bool) - (failure.res.inst_3_a_0 Bool) - (failure.res.inst_2_a_0 Bool) - (failure.res.inst_1_a_0 Bool) - (failure.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - failure.usr.failure_a_0 - (or - (or (or failure.res.abs_0_a_0 failure.res.abs_1_a_0) failure.res.abs_6_a_0) - failure.res.abs_11_a_0)) - (__node_init_level_failure_0 - failure.usr.level_defect_a_0 - failure.res.abs_0_a_0 - failure.res.inst_11_a_0) - (__node_init_steam_failure_0 - failure.usr.steam_defect_a_0 - failure.res.abs_1_a_0 - failure.res.inst_10_a_0) - (__node_init_OR_0 - failure.res.abs_2_a_0 - failure.res.abs_3_a_0 - failure.res.abs_4_a_0 - failure.res.abs_5_a_0 - failure.res.abs_6_a_0 - failure.res.inst_9_a_0) - (__node_init_pump_failure_0 - failure.usr.pump_defect_0_a_0 - failure.res.abs_2_a_0 - failure.res.inst_8_a_0) - (__node_init_pump_failure_0 - failure.usr.pump_defect_1_a_0 - failure.res.abs_3_a_0 - failure.res.inst_7_a_0) - (__node_init_pump_failure_0 - failure.usr.pump_defect_2_a_0 - failure.res.abs_4_a_0 - failure.res.inst_6_a_0) - (__node_init_pump_failure_0 - failure.usr.pump_defect_3_a_0 - failure.res.abs_5_a_0 - failure.res.inst_5_a_0) - (__node_init_OR_0 - failure.res.abs_7_a_0 - failure.res.abs_8_a_0 - failure.res.abs_9_a_0 - failure.res.abs_10_a_0 - failure.res.abs_11_a_0 - failure.res.inst_4_a_0) - (__node_init_pump_control_failure_0 - failure.usr.pump_control_defect_0_a_0 - failure.res.abs_7_a_0 - failure.res.inst_3_a_0) - (__node_init_pump_control_failure_0 - failure.usr.pump_control_defect_1_a_0 - failure.res.abs_8_a_0 - failure.res.inst_2_a_0) - (__node_init_pump_control_failure_0 - failure.usr.pump_control_defect_2_a_0 - failure.res.abs_9_a_0 - failure.res.inst_1_a_0) - (__node_init_pump_control_failure_0 - failure.usr.pump_control_defect_3_a_0 - failure.res.abs_10_a_0 - failure.res.inst_0_a_0) - failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_failure_0 ( - (failure.usr.level_defect_a_1 Int) - (failure.usr.steam_defect_a_1 Int) - (failure.usr.pump_defect_0_a_1 Int) - (failure.usr.pump_defect_1_a_1 Int) - (failure.usr.pump_defect_2_a_1 Int) - (failure.usr.pump_defect_3_a_1 Int) - (failure.usr.pump_control_defect_0_a_1 Int) - (failure.usr.pump_control_defect_1_a_1 Int) - (failure.usr.pump_control_defect_2_a_1 Int) - (failure.usr.pump_control_defect_3_a_1 Int) - (failure.usr.failure_a_1 Bool) - (failure.res.init_flag_a_1 Bool) - (failure.res.abs_0_a_1 Bool) - (failure.res.abs_1_a_1 Bool) - (failure.res.abs_2_a_1 Bool) - (failure.res.abs_3_a_1 Bool) - (failure.res.abs_4_a_1 Bool) - (failure.res.abs_5_a_1 Bool) - (failure.res.abs_6_a_1 Bool) - (failure.res.abs_7_a_1 Bool) - (failure.res.abs_8_a_1 Bool) - (failure.res.abs_9_a_1 Bool) - (failure.res.abs_10_a_1 Bool) - (failure.res.abs_11_a_1 Bool) - (failure.res.inst_11_a_1 Bool) - (failure.res.inst_10_a_1 Bool) - (failure.res.inst_9_a_1 Bool) - (failure.res.inst_8_a_1 Bool) - (failure.res.inst_7_a_1 Bool) - (failure.res.inst_6_a_1 Bool) - (failure.res.inst_5_a_1 Bool) - (failure.res.inst_4_a_1 Bool) - (failure.res.inst_3_a_1 Bool) - (failure.res.inst_2_a_1 Bool) - (failure.res.inst_1_a_1 Bool) - (failure.res.inst_0_a_1 Bool) - (failure.usr.level_defect_a_0 Int) - (failure.usr.steam_defect_a_0 Int) - (failure.usr.pump_defect_0_a_0 Int) - (failure.usr.pump_defect_1_a_0 Int) - (failure.usr.pump_defect_2_a_0 Int) - (failure.usr.pump_defect_3_a_0 Int) - (failure.usr.pump_control_defect_0_a_0 Int) - (failure.usr.pump_control_defect_1_a_0 Int) - (failure.usr.pump_control_defect_2_a_0 Int) - (failure.usr.pump_control_defect_3_a_0 Int) - (failure.usr.failure_a_0 Bool) - (failure.res.init_flag_a_0 Bool) - (failure.res.abs_0_a_0 Bool) - (failure.res.abs_1_a_0 Bool) - (failure.res.abs_2_a_0 Bool) - (failure.res.abs_3_a_0 Bool) - (failure.res.abs_4_a_0 Bool) - (failure.res.abs_5_a_0 Bool) - (failure.res.abs_6_a_0 Bool) - (failure.res.abs_7_a_0 Bool) - (failure.res.abs_8_a_0 Bool) - (failure.res.abs_9_a_0 Bool) - (failure.res.abs_10_a_0 Bool) - (failure.res.abs_11_a_0 Bool) - (failure.res.inst_11_a_0 Bool) - (failure.res.inst_10_a_0 Bool) - (failure.res.inst_9_a_0 Bool) - (failure.res.inst_8_a_0 Bool) - (failure.res.inst_7_a_0 Bool) - (failure.res.inst_6_a_0 Bool) - (failure.res.inst_5_a_0 Bool) - (failure.res.inst_4_a_0 Bool) - (failure.res.inst_3_a_0 Bool) - (failure.res.inst_2_a_0 Bool) - (failure.res.inst_1_a_0 Bool) - (failure.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - failure.usr.failure_a_1 - (or - (or (or failure.res.abs_0_a_1 failure.res.abs_1_a_1) failure.res.abs_6_a_1) - failure.res.abs_11_a_1)) - (__node_trans_level_failure_0 - failure.usr.level_defect_a_1 - failure.res.abs_0_a_1 - failure.res.inst_11_a_1 - failure.usr.level_defect_a_0 - failure.res.abs_0_a_0 - failure.res.inst_11_a_0) - (__node_trans_steam_failure_0 - failure.usr.steam_defect_a_1 - failure.res.abs_1_a_1 - failure.res.inst_10_a_1 - failure.usr.steam_defect_a_0 - failure.res.abs_1_a_0 - failure.res.inst_10_a_0) - (__node_trans_OR_0 - failure.res.abs_2_a_1 - failure.res.abs_3_a_1 - failure.res.abs_4_a_1 - failure.res.abs_5_a_1 - failure.res.abs_6_a_1 - failure.res.inst_9_a_1 - failure.res.abs_2_a_0 - failure.res.abs_3_a_0 - failure.res.abs_4_a_0 - failure.res.abs_5_a_0 - failure.res.abs_6_a_0 - failure.res.inst_9_a_0) - (__node_trans_pump_failure_0 - failure.usr.pump_defect_0_a_1 - failure.res.abs_2_a_1 - failure.res.inst_8_a_1 - failure.usr.pump_defect_0_a_0 - failure.res.abs_2_a_0 - failure.res.inst_8_a_0) - (__node_trans_pump_failure_0 - failure.usr.pump_defect_1_a_1 - failure.res.abs_3_a_1 - failure.res.inst_7_a_1 - failure.usr.pump_defect_1_a_0 - failure.res.abs_3_a_0 - failure.res.inst_7_a_0) - (__node_trans_pump_failure_0 - failure.usr.pump_defect_2_a_1 - failure.res.abs_4_a_1 - failure.res.inst_6_a_1 - failure.usr.pump_defect_2_a_0 - failure.res.abs_4_a_0 - failure.res.inst_6_a_0) - (__node_trans_pump_failure_0 - failure.usr.pump_defect_3_a_1 - failure.res.abs_5_a_1 - failure.res.inst_5_a_1 - failure.usr.pump_defect_3_a_0 - failure.res.abs_5_a_0 - failure.res.inst_5_a_0) - (__node_trans_OR_0 - failure.res.abs_7_a_1 - failure.res.abs_8_a_1 - failure.res.abs_9_a_1 - failure.res.abs_10_a_1 - failure.res.abs_11_a_1 - failure.res.inst_4_a_1 - failure.res.abs_7_a_0 - failure.res.abs_8_a_0 - failure.res.abs_9_a_0 - failure.res.abs_10_a_0 - failure.res.abs_11_a_0 - failure.res.inst_4_a_0) - (__node_trans_pump_control_failure_0 - failure.usr.pump_control_defect_0_a_1 - failure.res.abs_7_a_1 - failure.res.inst_3_a_1 - failure.usr.pump_control_defect_0_a_0 - failure.res.abs_7_a_0 - failure.res.inst_3_a_0) - (__node_trans_pump_control_failure_0 - failure.usr.pump_control_defect_1_a_1 - failure.res.abs_8_a_1 - failure.res.inst_2_a_1 - failure.usr.pump_control_defect_1_a_0 - failure.res.abs_8_a_0 - failure.res.inst_2_a_0) - (__node_trans_pump_control_failure_0 - failure.usr.pump_control_defect_2_a_1 - failure.res.abs_9_a_1 - failure.res.inst_1_a_1 - failure.usr.pump_control_defect_2_a_0 - failure.res.abs_9_a_0 - failure.res.inst_1_a_0) - (__node_trans_pump_control_failure_0 - failure.usr.pump_control_defect_3_a_1 - failure.res.abs_10_a_1 - failure.res.inst_0_a_1 - failure.usr.pump_control_defect_3_a_0 - failure.res.abs_10_a_0 - failure.res.inst_0_a_0) - (not failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_steam_failure_startup_0 ( - (steam_failure_startup.usr.steam_a_0 Int) - (steam_failure_startup.usr.steam_failure_startup_a_0 Bool) - (steam_failure_startup.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - steam_failure_startup.usr.steam_failure_startup_a_0 - (not (= steam_failure_startup.usr.steam_a_0 0))) - steam_failure_startup.res.init_flag_a_0) -) - -(define-fun - __node_trans_steam_failure_startup_0 ( - (steam_failure_startup.usr.steam_a_1 Int) - (steam_failure_startup.usr.steam_failure_startup_a_1 Bool) - (steam_failure_startup.res.init_flag_a_1 Bool) - (steam_failure_startup.usr.steam_a_0 Int) - (steam_failure_startup.usr.steam_failure_startup_a_0 Bool) - (steam_failure_startup.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - steam_failure_startup.usr.steam_failure_startup_a_1 - (not (= steam_failure_startup.usr.steam_a_1 0))) - (not steam_failure_startup.res.init_flag_a_1)) -) - -(define-fun - __node_init_AND_0 ( - (AND.usr.a_0_a_0 Bool) - (AND.usr.a_1_a_0 Bool) - (AND.usr.a_2_a_0 Bool) - (AND.usr.a_3_a_0 Bool) - (AND.usr.AND_a_0 Bool) - (AND.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - AND.usr.AND_a_0 - (and (and (and AND.usr.a_0_a_0 AND.usr.a_1_a_0) AND.usr.a_2_a_0) AND.usr.a_3_a_0)) - AND.res.init_flag_a_0) -) - -(define-fun - __node_trans_AND_0 ( - (AND.usr.a_0_a_1 Bool) - (AND.usr.a_1_a_1 Bool) - (AND.usr.a_2_a_1 Bool) - (AND.usr.a_3_a_1 Bool) - (AND.usr.AND_a_1 Bool) - (AND.res.init_flag_a_1 Bool) - (AND.usr.a_0_a_0 Bool) - (AND.usr.a_1_a_0 Bool) - (AND.usr.a_2_a_0 Bool) - (AND.usr.a_3_a_0 Bool) - (AND.usr.AND_a_0 Bool) - (AND.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - AND.usr.AND_a_1 - (and (and (and AND.usr.a_0_a_1 AND.usr.a_1_a_1) AND.usr.a_2_a_1) AND.usr.a_3_a_1)) - (not AND.res.init_flag_a_1)) -) - -(define-fun - __node_init_transmission_failure_0 ( - (transmission_failure.usr.pump_state_0_a_0 Int) - (transmission_failure.usr.pump_state_1_a_0 Int) - (transmission_failure.usr.pump_state_2_a_0 Int) - (transmission_failure.usr.pump_state_3_a_0 Int) - (transmission_failure.usr.transmission_failure_a_0 Bool) - (transmission_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - transmission_failure.usr.transmission_failure_a_0 - (or - (or - (or - (= transmission_failure.usr.pump_state_0_a_0 3) - (= transmission_failure.usr.pump_state_1_a_0 3)) - (= transmission_failure.usr.pump_state_2_a_0 3)) - (= transmission_failure.usr.pump_state_3_a_0 3))) - transmission_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_transmission_failure_0 ( - (transmission_failure.usr.pump_state_0_a_1 Int) - (transmission_failure.usr.pump_state_1_a_1 Int) - (transmission_failure.usr.pump_state_2_a_1 Int) - (transmission_failure.usr.pump_state_3_a_1 Int) - (transmission_failure.usr.transmission_failure_a_1 Bool) - (transmission_failure.res.init_flag_a_1 Bool) - (transmission_failure.usr.pump_state_0_a_0 Int) - (transmission_failure.usr.pump_state_1_a_0 Int) - (transmission_failure.usr.pump_state_2_a_0 Int) - (transmission_failure.usr.pump_state_3_a_0 Int) - (transmission_failure.usr.transmission_failure_a_0 Bool) - (transmission_failure.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - transmission_failure.usr.transmission_failure_a_1 - (or - (or - (or - (= transmission_failure.usr.pump_state_0_a_1 3) - (= transmission_failure.usr.pump_state_1_a_1 3)) - (= transmission_failure.usr.pump_state_2_a_1 3)) - (= transmission_failure.usr.pump_state_3_a_1 3))) - (not transmission_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_critical_failure_0 ( - (critical_failure.usr.op_mode_a_0 Int) - (critical_failure.usr.steam_a_0 Int) - (critical_failure.usr.level_defect_a_0 Int) - (critical_failure.usr.steam_defect_a_0 Int) - (critical_failure.usr.pump_defect_0_a_0 Int) - (critical_failure.usr.pump_defect_1_a_0 Int) - (critical_failure.usr.pump_defect_2_a_0 Int) - (critical_failure.usr.pump_defect_3_a_0 Int) - (critical_failure.usr.q_a_0 Int) - (critical_failure.usr.pump_state_0_a_0 Int) - (critical_failure.usr.pump_state_1_a_0 Int) - (critical_failure.usr.pump_state_2_a_0 Int) - (critical_failure.usr.pump_state_3_a_0 Int) - (critical_failure.usr.critical_failure_a_0 Bool) - (critical_failure.res.init_flag_a_0 Bool) - (critical_failure.res.abs_0_a_0 Bool) - (critical_failure.res.abs_1_a_0 Bool) - (critical_failure.res.abs_2_a_0 Bool) - (critical_failure.res.abs_3_a_0 Bool) - (critical_failure.res.abs_4_a_0 Bool) - (critical_failure.res.abs_5_a_0 Bool) - (critical_failure.res.abs_6_a_0 Bool) - (critical_failure.res.abs_7_a_0 Bool) - (critical_failure.res.abs_8_a_0 Bool) - (critical_failure.res.abs_9_a_0 Bool) - (critical_failure.res.inst_9_a_0 Bool) - (critical_failure.res.inst_8_a_0 Bool) - (critical_failure.res.inst_7_a_0 Bool) - (critical_failure.res.inst_6_a_0 Bool) - (critical_failure.res.inst_5_a_0 Bool) - (critical_failure.res.inst_4_a_0 Bool) - (critical_failure.res.inst_3_a_0 Bool) - (critical_failure.res.inst_2_a_0 Bool) - (critical_failure.res.inst_1_a_0 Bool) - (critical_failure.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - critical_failure.usr.critical_failure_a_0 - (or - (or - (or - (or - (or - critical_failure.res.abs_0_a_0 - (and - (= critical_failure.usr.op_mode_a_0 1) - critical_failure.res.abs_1_a_0)) - (and - (= critical_failure.usr.op_mode_a_0 2) - (or critical_failure.res.abs_2_a_0 critical_failure.res.abs_3_a_0))) - (and - (= critical_failure.usr.op_mode_a_0 3) - critical_failure.res.abs_4_a_0)) - (and (= critical_failure.usr.op_mode_a_0 4) critical_failure.res.abs_4_a_0)) - (and - (= critical_failure.usr.op_mode_a_0 5) - (or - (or critical_failure.res.abs_4_a_0 critical_failure.res.abs_3_a_0) - critical_failure.res.abs_9_a_0)))) - (__node_init_transmission_failure_0 - critical_failure.usr.pump_state_0_a_0 - critical_failure.usr.pump_state_1_a_0 - critical_failure.usr.pump_state_2_a_0 - critical_failure.usr.pump_state_3_a_0 - critical_failure.res.abs_0_a_0 - critical_failure.res.inst_9_a_0) - (__node_init_steam_failure_startup_0 - critical_failure.usr.steam_a_0 - critical_failure.res.abs_1_a_0 - critical_failure.res.inst_8_a_0) - (__node_init_level_failure_0 - critical_failure.usr.level_defect_a_0 - critical_failure.res.abs_2_a_0 - critical_failure.res.inst_7_a_0) - (__node_init_steam_failure_0 - critical_failure.usr.steam_defect_a_0 - critical_failure.res.abs_3_a_0 - critical_failure.res.inst_6_a_0) - (__node_init_dangerous_level_0 - critical_failure.usr.q_a_0 - critical_failure.res.abs_4_a_0 - critical_failure.res.inst_5_a_0) - (__node_init_AND_0 - critical_failure.res.abs_5_a_0 - critical_failure.res.abs_6_a_0 - critical_failure.res.abs_7_a_0 - critical_failure.res.abs_8_a_0 - critical_failure.res.abs_9_a_0 - critical_failure.res.inst_4_a_0) - (__node_init_pump_failure_0 - critical_failure.usr.pump_defect_0_a_0 - critical_failure.res.abs_5_a_0 - critical_failure.res.inst_3_a_0) - (__node_init_pump_failure_0 - critical_failure.usr.pump_defect_1_a_0 - critical_failure.res.abs_6_a_0 - critical_failure.res.inst_2_a_0) - (__node_init_pump_failure_0 - critical_failure.usr.pump_defect_2_a_0 - critical_failure.res.abs_7_a_0 - critical_failure.res.inst_1_a_0) - (__node_init_pump_failure_0 - critical_failure.usr.pump_defect_3_a_0 - critical_failure.res.abs_8_a_0 - critical_failure.res.inst_0_a_0) - critical_failure.res.init_flag_a_0) -) - -(define-fun - __node_trans_critical_failure_0 ( - (critical_failure.usr.op_mode_a_1 Int) - (critical_failure.usr.steam_a_1 Int) - (critical_failure.usr.level_defect_a_1 Int) - (critical_failure.usr.steam_defect_a_1 Int) - (critical_failure.usr.pump_defect_0_a_1 Int) - (critical_failure.usr.pump_defect_1_a_1 Int) - (critical_failure.usr.pump_defect_2_a_1 Int) - (critical_failure.usr.pump_defect_3_a_1 Int) - (critical_failure.usr.q_a_1 Int) - (critical_failure.usr.pump_state_0_a_1 Int) - (critical_failure.usr.pump_state_1_a_1 Int) - (critical_failure.usr.pump_state_2_a_1 Int) - (critical_failure.usr.pump_state_3_a_1 Int) - (critical_failure.usr.critical_failure_a_1 Bool) - (critical_failure.res.init_flag_a_1 Bool) - (critical_failure.res.abs_0_a_1 Bool) - (critical_failure.res.abs_1_a_1 Bool) - (critical_failure.res.abs_2_a_1 Bool) - (critical_failure.res.abs_3_a_1 Bool) - (critical_failure.res.abs_4_a_1 Bool) - (critical_failure.res.abs_5_a_1 Bool) - (critical_failure.res.abs_6_a_1 Bool) - (critical_failure.res.abs_7_a_1 Bool) - (critical_failure.res.abs_8_a_1 Bool) - (critical_failure.res.abs_9_a_1 Bool) - (critical_failure.res.inst_9_a_1 Bool) - (critical_failure.res.inst_8_a_1 Bool) - (critical_failure.res.inst_7_a_1 Bool) - (critical_failure.res.inst_6_a_1 Bool) - (critical_failure.res.inst_5_a_1 Bool) - (critical_failure.res.inst_4_a_1 Bool) - (critical_failure.res.inst_3_a_1 Bool) - (critical_failure.res.inst_2_a_1 Bool) - (critical_failure.res.inst_1_a_1 Bool) - (critical_failure.res.inst_0_a_1 Bool) - (critical_failure.usr.op_mode_a_0 Int) - (critical_failure.usr.steam_a_0 Int) - (critical_failure.usr.level_defect_a_0 Int) - (critical_failure.usr.steam_defect_a_0 Int) - (critical_failure.usr.pump_defect_0_a_0 Int) - (critical_failure.usr.pump_defect_1_a_0 Int) - (critical_failure.usr.pump_defect_2_a_0 Int) - (critical_failure.usr.pump_defect_3_a_0 Int) - (critical_failure.usr.q_a_0 Int) - (critical_failure.usr.pump_state_0_a_0 Int) - (critical_failure.usr.pump_state_1_a_0 Int) - (critical_failure.usr.pump_state_2_a_0 Int) - (critical_failure.usr.pump_state_3_a_0 Int) - (critical_failure.usr.critical_failure_a_0 Bool) - (critical_failure.res.init_flag_a_0 Bool) - (critical_failure.res.abs_0_a_0 Bool) - (critical_failure.res.abs_1_a_0 Bool) - (critical_failure.res.abs_2_a_0 Bool) - (critical_failure.res.abs_3_a_0 Bool) - (critical_failure.res.abs_4_a_0 Bool) - (critical_failure.res.abs_5_a_0 Bool) - (critical_failure.res.abs_6_a_0 Bool) - (critical_failure.res.abs_7_a_0 Bool) - (critical_failure.res.abs_8_a_0 Bool) - (critical_failure.res.abs_9_a_0 Bool) - (critical_failure.res.inst_9_a_0 Bool) - (critical_failure.res.inst_8_a_0 Bool) - (critical_failure.res.inst_7_a_0 Bool) - (critical_failure.res.inst_6_a_0 Bool) - (critical_failure.res.inst_5_a_0 Bool) - (critical_failure.res.inst_4_a_0 Bool) - (critical_failure.res.inst_3_a_0 Bool) - (critical_failure.res.inst_2_a_0 Bool) - (critical_failure.res.inst_1_a_0 Bool) - (critical_failure.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - critical_failure.usr.critical_failure_a_1 - (or - (or - (or - (or - (or - critical_failure.res.abs_0_a_1 - (and - (= critical_failure.usr.op_mode_a_1 1) - critical_failure.res.abs_1_a_1)) - (and - (= critical_failure.usr.op_mode_a_1 2) - (or critical_failure.res.abs_2_a_1 critical_failure.res.abs_3_a_1))) - (and - (= critical_failure.usr.op_mode_a_1 3) - critical_failure.res.abs_4_a_1)) - (and (= critical_failure.usr.op_mode_a_1 4) critical_failure.res.abs_4_a_1)) - (and - (= critical_failure.usr.op_mode_a_1 5) - (or - (or critical_failure.res.abs_4_a_1 critical_failure.res.abs_3_a_1) - critical_failure.res.abs_9_a_1)))) - (__node_trans_transmission_failure_0 - critical_failure.usr.pump_state_0_a_1 - critical_failure.usr.pump_state_1_a_1 - critical_failure.usr.pump_state_2_a_1 - critical_failure.usr.pump_state_3_a_1 - critical_failure.res.abs_0_a_1 - critical_failure.res.inst_9_a_1 - critical_failure.usr.pump_state_0_a_0 - critical_failure.usr.pump_state_1_a_0 - critical_failure.usr.pump_state_2_a_0 - critical_failure.usr.pump_state_3_a_0 - critical_failure.res.abs_0_a_0 - critical_failure.res.inst_9_a_0) - (__node_trans_steam_failure_startup_0 - critical_failure.usr.steam_a_1 - critical_failure.res.abs_1_a_1 - critical_failure.res.inst_8_a_1 - critical_failure.usr.steam_a_0 - critical_failure.res.abs_1_a_0 - critical_failure.res.inst_8_a_0) - (__node_trans_level_failure_0 - critical_failure.usr.level_defect_a_1 - critical_failure.res.abs_2_a_1 - critical_failure.res.inst_7_a_1 - critical_failure.usr.level_defect_a_0 - critical_failure.res.abs_2_a_0 - critical_failure.res.inst_7_a_0) - (__node_trans_steam_failure_0 - critical_failure.usr.steam_defect_a_1 - critical_failure.res.abs_3_a_1 - critical_failure.res.inst_6_a_1 - critical_failure.usr.steam_defect_a_0 - critical_failure.res.abs_3_a_0 - critical_failure.res.inst_6_a_0) - (__node_trans_dangerous_level_0 - critical_failure.usr.q_a_1 - critical_failure.res.abs_4_a_1 - critical_failure.res.inst_5_a_1 - critical_failure.usr.q_a_0 - critical_failure.res.abs_4_a_0 - critical_failure.res.inst_5_a_0) - (__node_trans_AND_0 - critical_failure.res.abs_5_a_1 - critical_failure.res.abs_6_a_1 - critical_failure.res.abs_7_a_1 - critical_failure.res.abs_8_a_1 - critical_failure.res.abs_9_a_1 - critical_failure.res.inst_4_a_1 - critical_failure.res.abs_5_a_0 - critical_failure.res.abs_6_a_0 - critical_failure.res.abs_7_a_0 - critical_failure.res.abs_8_a_0 - critical_failure.res.abs_9_a_0 - critical_failure.res.inst_4_a_0) - (__node_trans_pump_failure_0 - critical_failure.usr.pump_defect_0_a_1 - critical_failure.res.abs_5_a_1 - critical_failure.res.inst_3_a_1 - critical_failure.usr.pump_defect_0_a_0 - critical_failure.res.abs_5_a_0 - critical_failure.res.inst_3_a_0) - (__node_trans_pump_failure_0 - critical_failure.usr.pump_defect_1_a_1 - critical_failure.res.abs_6_a_1 - critical_failure.res.inst_2_a_1 - critical_failure.usr.pump_defect_1_a_0 - critical_failure.res.abs_6_a_0 - critical_failure.res.inst_2_a_0) - (__node_trans_pump_failure_0 - critical_failure.usr.pump_defect_2_a_1 - critical_failure.res.abs_7_a_1 - critical_failure.res.inst_1_a_1 - critical_failure.usr.pump_defect_2_a_0 - critical_failure.res.abs_7_a_0 - critical_failure.res.inst_1_a_0) - (__node_trans_pump_failure_0 - critical_failure.usr.pump_defect_3_a_1 - critical_failure.res.abs_8_a_1 - critical_failure.res.inst_0_a_1 - critical_failure.usr.pump_defect_3_a_0 - critical_failure.res.abs_8_a_0 - critical_failure.res.inst_0_a_0) - (not critical_failure.res.init_flag_a_1)) -) - -(define-fun - __node_init_ControlMode_0 ( - (ControlMode.usr.steam_boiler_waiting_a_0 Bool) - (ControlMode.usr.physical_units_ready_a_0 Bool) - (ControlMode.usr.stop_request_a_0 Bool) - (ControlMode.usr.steam_a_0 Int) - (ControlMode.usr.level_defect_a_0 Int) - (ControlMode.usr.steam_defect_a_0 Int) - (ControlMode.usr.pump_defect_0_a_0 Int) - (ControlMode.usr.pump_defect_1_a_0 Int) - (ControlMode.usr.pump_defect_2_a_0 Int) - (ControlMode.usr.pump_defect_3_a_0 Int) - (ControlMode.usr.pump_control_defect_0_a_0 Int) - (ControlMode.usr.pump_control_defect_1_a_0 Int) - (ControlMode.usr.pump_control_defect_2_a_0 Int) - (ControlMode.usr.pump_control_defect_3_a_0 Int) - (ControlMode.usr.q_a_0 Int) - (ControlMode.usr.pump_state_0_a_0 Int) - (ControlMode.usr.pump_state_1_a_0 Int) - (ControlMode.usr.pump_state_2_a_0 Int) - (ControlMode.usr.pump_state_3_a_0 Int) - (ControlMode.res.nondet_0 Int) - (ControlMode.usr.op_mode_a_0 Int) - (ControlMode.res.init_flag_a_0 Bool) - (ControlMode.res.abs_0_a_0 Int) - (ControlMode.res.abs_1_a_0 Bool) - (ControlMode.res.abs_2_a_0 Bool) - (ControlMode.res.abs_3_a_0 Bool) - (ControlMode.res.inst_46_a_0 Bool) - (ControlMode.res.inst_45_a_0 Bool) - (ControlMode.res.inst_44_a_0 Bool) - (ControlMode.res.inst_43_a_0 Bool) - (ControlMode.res.inst_42_a_0 Bool) - (ControlMode.res.inst_41_a_0 Bool) - (ControlMode.res.inst_40_a_0 Bool) - (ControlMode.res.inst_39_a_0 Bool) - (ControlMode.res.inst_38_a_0 Bool) - (ControlMode.res.inst_37_a_0 Bool) - (ControlMode.res.inst_36_a_0 Bool) - (ControlMode.res.inst_35_a_0 Bool) - (ControlMode.res.inst_34_a_0 Bool) - (ControlMode.res.inst_33_a_0 Bool) - (ControlMode.res.inst_32_a_0 Bool) - (ControlMode.res.inst_31_a_0 Bool) - (ControlMode.res.inst_30_a_0 Bool) - (ControlMode.res.inst_29_a_0 Bool) - (ControlMode.res.inst_28_a_0 Bool) - (ControlMode.res.inst_27_a_0 Bool) - (ControlMode.res.inst_26_a_0 Bool) - (ControlMode.res.inst_25_a_0 Bool) - (ControlMode.res.inst_24_a_0 Bool) - (ControlMode.res.inst_23_a_0 Bool) - (ControlMode.res.inst_22_a_0 Bool) - (ControlMode.res.inst_21_a_0 Bool) - (ControlMode.res.inst_20_a_0 Bool) - (ControlMode.res.inst_19_a_0 Bool) - (ControlMode.res.inst_18_a_0 Bool) - (ControlMode.res.inst_17_a_0 Bool) - (ControlMode.res.inst_16_a_0 Bool) - (ControlMode.res.inst_15_a_0 Bool) - (ControlMode.res.inst_14_a_0 Bool) - (ControlMode.res.inst_13_a_0 Bool) - (ControlMode.res.inst_12_a_0 Bool) - (ControlMode.res.inst_11_a_0 Bool) - (ControlMode.res.inst_10_a_0 Bool) - (ControlMode.res.inst_9_a_0 Bool) - (ControlMode.res.inst_8_a_0 Bool) - (ControlMode.res.inst_7_a_0 Bool) - (ControlMode.res.inst_6_a_0 Bool) - (ControlMode.res.inst_5_a_0 Bool) - (ControlMode.res.inst_4_a_0 Bool) - (ControlMode.res.inst_3_a_0 Bool) - (ControlMode.res.inst_2_a_0 Bool) - (ControlMode.res.inst_1_a_0 Bool) - (ControlMode.res.inst_0_a_0 Bool) - ) Bool - - (and - (= ControlMode.usr.op_mode_a_0 1) - (= ControlMode.res.abs_0_a_0 (let ((X1 Int ControlMode.res.nondet_0)) X1)) - (__node_init_critical_failure_0 - ControlMode.res.abs_0_a_0 - ControlMode.usr.steam_a_0 - ControlMode.usr.level_defect_a_0 - ControlMode.usr.steam_defect_a_0 - ControlMode.usr.pump_defect_0_a_0 - ControlMode.usr.pump_defect_1_a_0 - ControlMode.usr.pump_defect_2_a_0 - ControlMode.usr.pump_defect_3_a_0 - ControlMode.usr.q_a_0 - ControlMode.usr.pump_state_0_a_0 - ControlMode.usr.pump_state_1_a_0 - ControlMode.usr.pump_state_2_a_0 - ControlMode.usr.pump_state_3_a_0 - ControlMode.res.abs_1_a_0 - ControlMode.res.inst_46_a_0 - ControlMode.res.inst_45_a_0 - ControlMode.res.inst_44_a_0 - ControlMode.res.inst_43_a_0 - ControlMode.res.inst_42_a_0 - ControlMode.res.inst_41_a_0 - ControlMode.res.inst_40_a_0 - ControlMode.res.inst_39_a_0 - ControlMode.res.inst_38_a_0 - ControlMode.res.inst_37_a_0 - ControlMode.res.inst_36_a_0 - ControlMode.res.inst_35_a_0 - ControlMode.res.inst_34_a_0 - ControlMode.res.inst_33_a_0 - ControlMode.res.inst_32_a_0 - ControlMode.res.inst_31_a_0 - ControlMode.res.inst_30_a_0 - ControlMode.res.inst_29_a_0 - ControlMode.res.inst_28_a_0 - ControlMode.res.inst_27_a_0 - ControlMode.res.inst_26_a_0) - (__node_init_level_failure_0 - ControlMode.usr.level_defect_a_0 - ControlMode.res.abs_2_a_0 - ControlMode.res.inst_25_a_0) - (__node_init_failure_0 - ControlMode.usr.level_defect_a_0 - ControlMode.usr.steam_defect_a_0 - ControlMode.usr.pump_defect_0_a_0 - ControlMode.usr.pump_defect_1_a_0 - ControlMode.usr.pump_defect_2_a_0 - ControlMode.usr.pump_defect_3_a_0 - ControlMode.usr.pump_control_defect_0_a_0 - ControlMode.usr.pump_control_defect_1_a_0 - ControlMode.usr.pump_control_defect_2_a_0 - ControlMode.usr.pump_control_defect_3_a_0 - ControlMode.res.abs_3_a_0 - ControlMode.res.inst_24_a_0 - ControlMode.res.inst_23_a_0 - ControlMode.res.inst_22_a_0 - ControlMode.res.inst_21_a_0 - ControlMode.res.inst_20_a_0 - ControlMode.res.inst_19_a_0 - ControlMode.res.inst_18_a_0 - ControlMode.res.inst_17_a_0 - ControlMode.res.inst_16_a_0 - ControlMode.res.inst_15_a_0 - ControlMode.res.inst_14_a_0 - ControlMode.res.inst_13_a_0 - ControlMode.res.inst_12_a_0 - ControlMode.res.inst_11_a_0 - ControlMode.res.inst_10_a_0 - ControlMode.res.inst_9_a_0 - ControlMode.res.inst_8_a_0 - ControlMode.res.inst_7_a_0 - ControlMode.res.inst_6_a_0 - ControlMode.res.inst_5_a_0 - ControlMode.res.inst_4_a_0 - ControlMode.res.inst_3_a_0 - ControlMode.res.inst_2_a_0 - ControlMode.res.inst_1_a_0 - ControlMode.res.inst_0_a_0) - (<= 1 ControlMode.usr.op_mode_a_0 6) - ControlMode.res.init_flag_a_0) -) - -(define-fun - __node_trans_ControlMode_0 ( - (ControlMode.usr.steam_boiler_waiting_a_1 Bool) - (ControlMode.usr.physical_units_ready_a_1 Bool) - (ControlMode.usr.stop_request_a_1 Bool) - (ControlMode.usr.steam_a_1 Int) - (ControlMode.usr.level_defect_a_1 Int) - (ControlMode.usr.steam_defect_a_1 Int) - (ControlMode.usr.pump_defect_0_a_1 Int) - (ControlMode.usr.pump_defect_1_a_1 Int) - (ControlMode.usr.pump_defect_2_a_1 Int) - (ControlMode.usr.pump_defect_3_a_1 Int) - (ControlMode.usr.pump_control_defect_0_a_1 Int) - (ControlMode.usr.pump_control_defect_1_a_1 Int) - (ControlMode.usr.pump_control_defect_2_a_1 Int) - (ControlMode.usr.pump_control_defect_3_a_1 Int) - (ControlMode.usr.q_a_1 Int) - (ControlMode.usr.pump_state_0_a_1 Int) - (ControlMode.usr.pump_state_1_a_1 Int) - (ControlMode.usr.pump_state_2_a_1 Int) - (ControlMode.usr.pump_state_3_a_1 Int) - (ControlMode.res.nondet_0 Int) - (ControlMode.usr.op_mode_a_1 Int) - (ControlMode.res.init_flag_a_1 Bool) - (ControlMode.res.abs_0_a_1 Int) - (ControlMode.res.abs_1_a_1 Bool) - (ControlMode.res.abs_2_a_1 Bool) - (ControlMode.res.abs_3_a_1 Bool) - (ControlMode.res.inst_46_a_1 Bool) - (ControlMode.res.inst_45_a_1 Bool) - (ControlMode.res.inst_44_a_1 Bool) - (ControlMode.res.inst_43_a_1 Bool) - (ControlMode.res.inst_42_a_1 Bool) - (ControlMode.res.inst_41_a_1 Bool) - (ControlMode.res.inst_40_a_1 Bool) - (ControlMode.res.inst_39_a_1 Bool) - (ControlMode.res.inst_38_a_1 Bool) - (ControlMode.res.inst_37_a_1 Bool) - (ControlMode.res.inst_36_a_1 Bool) - (ControlMode.res.inst_35_a_1 Bool) - (ControlMode.res.inst_34_a_1 Bool) - (ControlMode.res.inst_33_a_1 Bool) - (ControlMode.res.inst_32_a_1 Bool) - (ControlMode.res.inst_31_a_1 Bool) - (ControlMode.res.inst_30_a_1 Bool) - (ControlMode.res.inst_29_a_1 Bool) - (ControlMode.res.inst_28_a_1 Bool) - (ControlMode.res.inst_27_a_1 Bool) - (ControlMode.res.inst_26_a_1 Bool) - (ControlMode.res.inst_25_a_1 Bool) - (ControlMode.res.inst_24_a_1 Bool) - (ControlMode.res.inst_23_a_1 Bool) - (ControlMode.res.inst_22_a_1 Bool) - (ControlMode.res.inst_21_a_1 Bool) - (ControlMode.res.inst_20_a_1 Bool) - (ControlMode.res.inst_19_a_1 Bool) - (ControlMode.res.inst_18_a_1 Bool) - (ControlMode.res.inst_17_a_1 Bool) - (ControlMode.res.inst_16_a_1 Bool) - (ControlMode.res.inst_15_a_1 Bool) - (ControlMode.res.inst_14_a_1 Bool) - (ControlMode.res.inst_13_a_1 Bool) - (ControlMode.res.inst_12_a_1 Bool) - (ControlMode.res.inst_11_a_1 Bool) - (ControlMode.res.inst_10_a_1 Bool) - (ControlMode.res.inst_9_a_1 Bool) - (ControlMode.res.inst_8_a_1 Bool) - (ControlMode.res.inst_7_a_1 Bool) - (ControlMode.res.inst_6_a_1 Bool) - (ControlMode.res.inst_5_a_1 Bool) - (ControlMode.res.inst_4_a_1 Bool) - (ControlMode.res.inst_3_a_1 Bool) - (ControlMode.res.inst_2_a_1 Bool) - (ControlMode.res.inst_1_a_1 Bool) - (ControlMode.res.inst_0_a_1 Bool) - (ControlMode.usr.steam_boiler_waiting_a_0 Bool) - (ControlMode.usr.physical_units_ready_a_0 Bool) - (ControlMode.usr.stop_request_a_0 Bool) - (ControlMode.usr.steam_a_0 Int) - (ControlMode.usr.level_defect_a_0 Int) - (ControlMode.usr.steam_defect_a_0 Int) - (ControlMode.usr.pump_defect_0_a_0 Int) - (ControlMode.usr.pump_defect_1_a_0 Int) - (ControlMode.usr.pump_defect_2_a_0 Int) - (ControlMode.usr.pump_defect_3_a_0 Int) - (ControlMode.usr.pump_control_defect_0_a_0 Int) - (ControlMode.usr.pump_control_defect_1_a_0 Int) - (ControlMode.usr.pump_control_defect_2_a_0 Int) - (ControlMode.usr.pump_control_defect_3_a_0 Int) - (ControlMode.usr.q_a_0 Int) - (ControlMode.usr.pump_state_0_a_0 Int) - (ControlMode.usr.pump_state_1_a_0 Int) - (ControlMode.usr.pump_state_2_a_0 Int) - (ControlMode.usr.pump_state_3_a_0 Int) - (ControlMode.usr.op_mode_a_0 Int) - (ControlMode.res.init_flag_a_0 Bool) - (ControlMode.res.abs_0_a_0 Int) - (ControlMode.res.abs_1_a_0 Bool) - (ControlMode.res.abs_2_a_0 Bool) - (ControlMode.res.abs_3_a_0 Bool) - (ControlMode.res.inst_46_a_0 Bool) - (ControlMode.res.inst_45_a_0 Bool) - (ControlMode.res.inst_44_a_0 Bool) - (ControlMode.res.inst_43_a_0 Bool) - (ControlMode.res.inst_42_a_0 Bool) - (ControlMode.res.inst_41_a_0 Bool) - (ControlMode.res.inst_40_a_0 Bool) - (ControlMode.res.inst_39_a_0 Bool) - (ControlMode.res.inst_38_a_0 Bool) - (ControlMode.res.inst_37_a_0 Bool) - (ControlMode.res.inst_36_a_0 Bool) - (ControlMode.res.inst_35_a_0 Bool) - (ControlMode.res.inst_34_a_0 Bool) - (ControlMode.res.inst_33_a_0 Bool) - (ControlMode.res.inst_32_a_0 Bool) - (ControlMode.res.inst_31_a_0 Bool) - (ControlMode.res.inst_30_a_0 Bool) - (ControlMode.res.inst_29_a_0 Bool) - (ControlMode.res.inst_28_a_0 Bool) - (ControlMode.res.inst_27_a_0 Bool) - (ControlMode.res.inst_26_a_0 Bool) - (ControlMode.res.inst_25_a_0 Bool) - (ControlMode.res.inst_24_a_0 Bool) - (ControlMode.res.inst_23_a_0 Bool) - (ControlMode.res.inst_22_a_0 Bool) - (ControlMode.res.inst_21_a_0 Bool) - (ControlMode.res.inst_20_a_0 Bool) - (ControlMode.res.inst_19_a_0 Bool) - (ControlMode.res.inst_18_a_0 Bool) - (ControlMode.res.inst_17_a_0 Bool) - (ControlMode.res.inst_16_a_0 Bool) - (ControlMode.res.inst_15_a_0 Bool) - (ControlMode.res.inst_14_a_0 Bool) - (ControlMode.res.inst_13_a_0 Bool) - (ControlMode.res.inst_12_a_0 Bool) - (ControlMode.res.inst_11_a_0 Bool) - (ControlMode.res.inst_10_a_0 Bool) - (ControlMode.res.inst_9_a_0 Bool) - (ControlMode.res.inst_8_a_0 Bool) - (ControlMode.res.inst_7_a_0 Bool) - (ControlMode.res.inst_6_a_0 Bool) - (ControlMode.res.inst_5_a_0 Bool) - (ControlMode.res.inst_4_a_0 Bool) - (ControlMode.res.inst_3_a_0 Bool) - (ControlMode.res.inst_2_a_0 Bool) - (ControlMode.res.inst_1_a_0 Bool) - (ControlMode.res.inst_0_a_0 Bool) - ) Bool - - (and - (= ControlMode.res.abs_0_a_1 ControlMode.usr.op_mode_a_0) - (= - ControlMode.usr.op_mode_a_1 - (ite - (or - (or ControlMode.res.abs_1_a_1 ControlMode.usr.stop_request_a_1) - (= ControlMode.usr.op_mode_a_0 6)) - 6 - (ite - (= ControlMode.usr.op_mode_a_0 1) - (ite ControlMode.usr.steam_boiler_waiting_a_1 2 1) - (ite - (and - (= ControlMode.usr.op_mode_a_0 2) - (not ControlMode.usr.physical_units_ready_a_1)) - 2 - (ite ControlMode.res.abs_2_a_1 5 (ite ControlMode.res.abs_3_a_1 4 3)))))) - (__node_trans_critical_failure_0 - ControlMode.res.abs_0_a_1 - ControlMode.usr.steam_a_1 - ControlMode.usr.level_defect_a_1 - ControlMode.usr.steam_defect_a_1 - ControlMode.usr.pump_defect_0_a_1 - ControlMode.usr.pump_defect_1_a_1 - ControlMode.usr.pump_defect_2_a_1 - ControlMode.usr.pump_defect_3_a_1 - ControlMode.usr.q_a_1 - ControlMode.usr.pump_state_0_a_1 - ControlMode.usr.pump_state_1_a_1 - ControlMode.usr.pump_state_2_a_1 - ControlMode.usr.pump_state_3_a_1 - ControlMode.res.abs_1_a_1 - ControlMode.res.inst_46_a_1 - ControlMode.res.inst_45_a_1 - ControlMode.res.inst_44_a_1 - ControlMode.res.inst_43_a_1 - ControlMode.res.inst_42_a_1 - ControlMode.res.inst_41_a_1 - ControlMode.res.inst_40_a_1 - ControlMode.res.inst_39_a_1 - ControlMode.res.inst_38_a_1 - ControlMode.res.inst_37_a_1 - ControlMode.res.inst_36_a_1 - ControlMode.res.inst_35_a_1 - ControlMode.res.inst_34_a_1 - ControlMode.res.inst_33_a_1 - ControlMode.res.inst_32_a_1 - ControlMode.res.inst_31_a_1 - ControlMode.res.inst_30_a_1 - ControlMode.res.inst_29_a_1 - ControlMode.res.inst_28_a_1 - ControlMode.res.inst_27_a_1 - ControlMode.res.inst_26_a_1 - ControlMode.res.abs_0_a_0 - ControlMode.usr.steam_a_0 - ControlMode.usr.level_defect_a_0 - ControlMode.usr.steam_defect_a_0 - ControlMode.usr.pump_defect_0_a_0 - ControlMode.usr.pump_defect_1_a_0 - ControlMode.usr.pump_defect_2_a_0 - ControlMode.usr.pump_defect_3_a_0 - ControlMode.usr.q_a_0 - ControlMode.usr.pump_state_0_a_0 - ControlMode.usr.pump_state_1_a_0 - ControlMode.usr.pump_state_2_a_0 - ControlMode.usr.pump_state_3_a_0 - ControlMode.res.abs_1_a_0 - ControlMode.res.inst_46_a_0 - ControlMode.res.inst_45_a_0 - ControlMode.res.inst_44_a_0 - ControlMode.res.inst_43_a_0 - ControlMode.res.inst_42_a_0 - ControlMode.res.inst_41_a_0 - ControlMode.res.inst_40_a_0 - ControlMode.res.inst_39_a_0 - ControlMode.res.inst_38_a_0 - ControlMode.res.inst_37_a_0 - ControlMode.res.inst_36_a_0 - ControlMode.res.inst_35_a_0 - ControlMode.res.inst_34_a_0 - ControlMode.res.inst_33_a_0 - ControlMode.res.inst_32_a_0 - ControlMode.res.inst_31_a_0 - ControlMode.res.inst_30_a_0 - ControlMode.res.inst_29_a_0 - ControlMode.res.inst_28_a_0 - ControlMode.res.inst_27_a_0 - ControlMode.res.inst_26_a_0) - (__node_trans_level_failure_0 - ControlMode.usr.level_defect_a_1 - ControlMode.res.abs_2_a_1 - ControlMode.res.inst_25_a_1 - ControlMode.usr.level_defect_a_0 - ControlMode.res.abs_2_a_0 - ControlMode.res.inst_25_a_0) - (__node_trans_failure_0 - ControlMode.usr.level_defect_a_1 - ControlMode.usr.steam_defect_a_1 - ControlMode.usr.pump_defect_0_a_1 - ControlMode.usr.pump_defect_1_a_1 - ControlMode.usr.pump_defect_2_a_1 - ControlMode.usr.pump_defect_3_a_1 - ControlMode.usr.pump_control_defect_0_a_1 - ControlMode.usr.pump_control_defect_1_a_1 - ControlMode.usr.pump_control_defect_2_a_1 - ControlMode.usr.pump_control_defect_3_a_1 - ControlMode.res.abs_3_a_1 - ControlMode.res.inst_24_a_1 - ControlMode.res.inst_23_a_1 - ControlMode.res.inst_22_a_1 - ControlMode.res.inst_21_a_1 - ControlMode.res.inst_20_a_1 - ControlMode.res.inst_19_a_1 - ControlMode.res.inst_18_a_1 - ControlMode.res.inst_17_a_1 - ControlMode.res.inst_16_a_1 - ControlMode.res.inst_15_a_1 - ControlMode.res.inst_14_a_1 - ControlMode.res.inst_13_a_1 - ControlMode.res.inst_12_a_1 - ControlMode.res.inst_11_a_1 - ControlMode.res.inst_10_a_1 - ControlMode.res.inst_9_a_1 - ControlMode.res.inst_8_a_1 - ControlMode.res.inst_7_a_1 - ControlMode.res.inst_6_a_1 - ControlMode.res.inst_5_a_1 - ControlMode.res.inst_4_a_1 - ControlMode.res.inst_3_a_1 - ControlMode.res.inst_2_a_1 - ControlMode.res.inst_1_a_1 - ControlMode.res.inst_0_a_1 - ControlMode.usr.level_defect_a_0 - ControlMode.usr.steam_defect_a_0 - ControlMode.usr.pump_defect_0_a_0 - ControlMode.usr.pump_defect_1_a_0 - ControlMode.usr.pump_defect_2_a_0 - ControlMode.usr.pump_defect_3_a_0 - ControlMode.usr.pump_control_defect_0_a_0 - ControlMode.usr.pump_control_defect_1_a_0 - ControlMode.usr.pump_control_defect_2_a_0 - ControlMode.usr.pump_control_defect_3_a_0 - ControlMode.res.abs_3_a_0 - ControlMode.res.inst_24_a_0 - ControlMode.res.inst_23_a_0 - ControlMode.res.inst_22_a_0 - ControlMode.res.inst_21_a_0 - ControlMode.res.inst_20_a_0 - ControlMode.res.inst_19_a_0 - ControlMode.res.inst_18_a_0 - ControlMode.res.inst_17_a_0 - ControlMode.res.inst_16_a_0 - ControlMode.res.inst_15_a_0 - ControlMode.res.inst_14_a_0 - ControlMode.res.inst_13_a_0 - ControlMode.res.inst_12_a_0 - ControlMode.res.inst_11_a_0 - ControlMode.res.inst_10_a_0 - ControlMode.res.inst_9_a_0 - ControlMode.res.inst_8_a_0 - ControlMode.res.inst_7_a_0 - ControlMode.res.inst_6_a_0 - ControlMode.res.inst_5_a_0 - ControlMode.res.inst_4_a_0 - ControlMode.res.inst_3_a_0 - ControlMode.res.inst_2_a_0 - ControlMode.res.inst_1_a_0 - ControlMode.res.inst_0_a_0) - (<= 1 ControlMode.usr.op_mode_a_1 6) - (not ControlMode.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.steam_boiler_waiting_a_0 Bool) - (top.usr.physical_units_ready_a_0 Bool) - (top.usr.stop_request_a_0 Bool) - (top.usr.steam_a_0 Int) - (top.usr.level_defect_a_0 Int) - (top.usr.steam_defect_a_0 Int) - (top.usr.pump_defect_0_a_0 Int) - (top.usr.pump_defect_1_a_0 Int) - (top.usr.pump_defect_2_a_0 Int) - (top.usr.pump_defect_3_a_0 Int) - (top.usr.pump_control_defect_0_a_0 Int) - (top.usr.pump_control_defect_1_a_0 Int) - (top.usr.pump_control_defect_2_a_0 Int) - (top.usr.pump_control_defect_3_a_0 Int) - (top.usr.q_a_0 Int) - (top.usr.pump_state_0_a_0 Int) - (top.usr.pump_state_1_a_0 Int) - (top.usr.pump_state_2_a_0 Int) - (top.usr.pump_state_3_a_0 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.op_mode_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Bool) - (top.res.inst_52_a_0 Bool) - (top.res.inst_51_a_0 Int) - (top.res.inst_50_a_0 Bool) - (top.res.inst_49_a_0 Bool) - (top.res.inst_48_a_0 Bool) - (top.res.inst_47_a_0 Bool) - (top.res.inst_46_a_0 Bool) - (top.res.inst_45_a_0 Bool) - (top.res.inst_44_a_0 Bool) - (top.res.inst_43_a_0 Bool) - (top.res.inst_42_a_0 Bool) - (top.res.inst_41_a_0 Bool) - (top.res.inst_40_a_0 Bool) - (top.res.inst_39_a_0 Bool) - (top.res.inst_38_a_0 Bool) - (top.res.inst_37_a_0 Bool) - (top.res.inst_36_a_0 Bool) - (top.res.inst_35_a_0 Bool) - (top.res.inst_34_a_0 Bool) - (top.res.inst_33_a_0 Bool) - (top.res.inst_32_a_0 Bool) - (top.res.inst_31_a_0 Bool) - (top.res.inst_30_a_0 Bool) - (top.res.inst_29_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Bool) - (top.res.inst_23_a_0 Bool) - (top.res.inst_22_a_0 Bool) - (top.res.inst_21_a_0 Bool) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.op_mode_a_0 top.res.abs_0_a_0) - (let - ((X1 Bool (=> (= top.impl.usr.op_mode_a_0 3) (not top.usr.stop_request_a_0)))) - (let - ((X2 Bool true)) - (and - (= top.usr.OK_a_0 (and X2 X1)) - (__node_init_ControlMode_0 - top.usr.steam_boiler_waiting_a_0 - top.usr.physical_units_ready_a_0 - top.usr.stop_request_a_0 - top.usr.steam_a_0 - top.usr.level_defect_a_0 - top.usr.steam_defect_a_0 - top.usr.pump_defect_0_a_0 - top.usr.pump_defect_1_a_0 - top.usr.pump_defect_2_a_0 - top.usr.pump_defect_3_a_0 - top.usr.pump_control_defect_0_a_0 - top.usr.pump_control_defect_1_a_0 - top.usr.pump_control_defect_2_a_0 - top.usr.pump_control_defect_3_a_0 - top.usr.q_a_0 - top.usr.pump_state_0_a_0 - top.usr.pump_state_1_a_0 - top.usr.pump_state_2_a_0 - top.usr.pump_state_3_a_0 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.inst_52_a_0 - top.res.inst_51_a_0 - top.res.inst_50_a_0 - top.res.inst_49_a_0 - top.res.inst_48_a_0 - top.res.inst_47_a_0 - top.res.inst_46_a_0 - top.res.inst_45_a_0 - top.res.inst_44_a_0 - top.res.inst_43_a_0 - top.res.inst_42_a_0 - top.res.inst_41_a_0 - top.res.inst_40_a_0 - top.res.inst_39_a_0 - top.res.inst_38_a_0 - top.res.inst_37_a_0 - top.res.inst_36_a_0 - top.res.inst_35_a_0 - top.res.inst_34_a_0 - top.res.inst_33_a_0 - top.res.inst_32_a_0 - top.res.inst_31_a_0 - top.res.inst_30_a_0 - top.res.inst_29_a_0 - top.res.inst_28_a_0 - top.res.inst_27_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_init_dangerous_level_0 - top.usr.q_a_0 - top.res.abs_1_a_0 - top.res.inst_0_a_0) - (<= 1 top.impl.usr.op_mode_a_0 6) - (<= 1 top.res.abs_0_a_0 6) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.steam_boiler_waiting_a_1 Bool) - (top.usr.physical_units_ready_a_1 Bool) - (top.usr.stop_request_a_1 Bool) - (top.usr.steam_a_1 Int) - (top.usr.level_defect_a_1 Int) - (top.usr.steam_defect_a_1 Int) - (top.usr.pump_defect_0_a_1 Int) - (top.usr.pump_defect_1_a_1 Int) - (top.usr.pump_defect_2_a_1 Int) - (top.usr.pump_defect_3_a_1 Int) - (top.usr.pump_control_defect_0_a_1 Int) - (top.usr.pump_control_defect_1_a_1 Int) - (top.usr.pump_control_defect_2_a_1 Int) - (top.usr.pump_control_defect_3_a_1 Int) - (top.usr.q_a_1 Int) - (top.usr.pump_state_0_a_1 Int) - (top.usr.pump_state_1_a_1 Int) - (top.usr.pump_state_2_a_1 Int) - (top.usr.pump_state_3_a_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.op_mode_a_1 Int) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Bool) - (top.res.inst_52_a_1 Bool) - (top.res.inst_51_a_1 Int) - (top.res.inst_50_a_1 Bool) - (top.res.inst_49_a_1 Bool) - (top.res.inst_48_a_1 Bool) - (top.res.inst_47_a_1 Bool) - (top.res.inst_46_a_1 Bool) - (top.res.inst_45_a_1 Bool) - (top.res.inst_44_a_1 Bool) - (top.res.inst_43_a_1 Bool) - (top.res.inst_42_a_1 Bool) - (top.res.inst_41_a_1 Bool) - (top.res.inst_40_a_1 Bool) - (top.res.inst_39_a_1 Bool) - (top.res.inst_38_a_1 Bool) - (top.res.inst_37_a_1 Bool) - (top.res.inst_36_a_1 Bool) - (top.res.inst_35_a_1 Bool) - (top.res.inst_34_a_1 Bool) - (top.res.inst_33_a_1 Bool) - (top.res.inst_32_a_1 Bool) - (top.res.inst_31_a_1 Bool) - (top.res.inst_30_a_1 Bool) - (top.res.inst_29_a_1 Bool) - (top.res.inst_28_a_1 Bool) - (top.res.inst_27_a_1 Bool) - (top.res.inst_26_a_1 Bool) - (top.res.inst_25_a_1 Bool) - (top.res.inst_24_a_1 Bool) - (top.res.inst_23_a_1 Bool) - (top.res.inst_22_a_1 Bool) - (top.res.inst_21_a_1 Bool) - (top.res.inst_20_a_1 Bool) - (top.res.inst_19_a_1 Bool) - (top.res.inst_18_a_1 Bool) - (top.res.inst_17_a_1 Bool) - (top.res.inst_16_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Bool) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Bool) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Bool) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.steam_boiler_waiting_a_0 Bool) - (top.usr.physical_units_ready_a_0 Bool) - (top.usr.stop_request_a_0 Bool) - (top.usr.steam_a_0 Int) - (top.usr.level_defect_a_0 Int) - (top.usr.steam_defect_a_0 Int) - (top.usr.pump_defect_0_a_0 Int) - (top.usr.pump_defect_1_a_0 Int) - (top.usr.pump_defect_2_a_0 Int) - (top.usr.pump_defect_3_a_0 Int) - (top.usr.pump_control_defect_0_a_0 Int) - (top.usr.pump_control_defect_1_a_0 Int) - (top.usr.pump_control_defect_2_a_0 Int) - (top.usr.pump_control_defect_3_a_0 Int) - (top.usr.q_a_0 Int) - (top.usr.pump_state_0_a_0 Int) - (top.usr.pump_state_1_a_0 Int) - (top.usr.pump_state_2_a_0 Int) - (top.usr.pump_state_3_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.op_mode_a_0 Int) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Bool) - (top.res.inst_52_a_0 Bool) - (top.res.inst_51_a_0 Int) - (top.res.inst_50_a_0 Bool) - (top.res.inst_49_a_0 Bool) - (top.res.inst_48_a_0 Bool) - (top.res.inst_47_a_0 Bool) - (top.res.inst_46_a_0 Bool) - (top.res.inst_45_a_0 Bool) - (top.res.inst_44_a_0 Bool) - (top.res.inst_43_a_0 Bool) - (top.res.inst_42_a_0 Bool) - (top.res.inst_41_a_0 Bool) - (top.res.inst_40_a_0 Bool) - (top.res.inst_39_a_0 Bool) - (top.res.inst_38_a_0 Bool) - (top.res.inst_37_a_0 Bool) - (top.res.inst_36_a_0 Bool) - (top.res.inst_35_a_0 Bool) - (top.res.inst_34_a_0 Bool) - (top.res.inst_33_a_0 Bool) - (top.res.inst_32_a_0 Bool) - (top.res.inst_31_a_0 Bool) - (top.res.inst_30_a_0 Bool) - (top.res.inst_29_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Bool) - (top.res.inst_23_a_0 Bool) - (top.res.inst_22_a_0 Bool) - (top.res.inst_21_a_0 Bool) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.op_mode_a_1 top.res.abs_0_a_1) - (let - ((X1 Bool (=> (= top.impl.usr.op_mode_a_1 3) (not top.usr.stop_request_a_1)))) - (let - ((X2 - Bool (=> - (and (= top.impl.usr.op_mode_a_1 3) (= top.impl.usr.op_mode_a_0 3)) - (not top.res.abs_1_a_1)))) - (and - (= top.usr.OK_a_1 (and X2 X1)) - (__node_trans_ControlMode_0 - top.usr.steam_boiler_waiting_a_1 - top.usr.physical_units_ready_a_1 - top.usr.stop_request_a_1 - top.usr.steam_a_1 - top.usr.level_defect_a_1 - top.usr.steam_defect_a_1 - top.usr.pump_defect_0_a_1 - top.usr.pump_defect_1_a_1 - top.usr.pump_defect_2_a_1 - top.usr.pump_defect_3_a_1 - top.usr.pump_control_defect_0_a_1 - top.usr.pump_control_defect_1_a_1 - top.usr.pump_control_defect_2_a_1 - top.usr.pump_control_defect_3_a_1 - top.usr.q_a_1 - top.usr.pump_state_0_a_1 - top.usr.pump_state_1_a_1 - top.usr.pump_state_2_a_1 - top.usr.pump_state_3_a_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.inst_52_a_1 - top.res.inst_51_a_1 - top.res.inst_50_a_1 - top.res.inst_49_a_1 - top.res.inst_48_a_1 - top.res.inst_47_a_1 - top.res.inst_46_a_1 - top.res.inst_45_a_1 - top.res.inst_44_a_1 - top.res.inst_43_a_1 - top.res.inst_42_a_1 - top.res.inst_41_a_1 - top.res.inst_40_a_1 - top.res.inst_39_a_1 - top.res.inst_38_a_1 - top.res.inst_37_a_1 - top.res.inst_36_a_1 - top.res.inst_35_a_1 - top.res.inst_34_a_1 - top.res.inst_33_a_1 - top.res.inst_32_a_1 - top.res.inst_31_a_1 - top.res.inst_30_a_1 - top.res.inst_29_a_1 - top.res.inst_28_a_1 - top.res.inst_27_a_1 - top.res.inst_26_a_1 - top.res.inst_25_a_1 - top.res.inst_24_a_1 - top.res.inst_23_a_1 - top.res.inst_22_a_1 - top.res.inst_21_a_1 - top.res.inst_20_a_1 - top.res.inst_19_a_1 - top.res.inst_18_a_1 - top.res.inst_17_a_1 - top.res.inst_16_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.usr.steam_boiler_waiting_a_0 - top.usr.physical_units_ready_a_0 - top.usr.stop_request_a_0 - top.usr.steam_a_0 - top.usr.level_defect_a_0 - top.usr.steam_defect_a_0 - top.usr.pump_defect_0_a_0 - top.usr.pump_defect_1_a_0 - top.usr.pump_defect_2_a_0 - top.usr.pump_defect_3_a_0 - top.usr.pump_control_defect_0_a_0 - top.usr.pump_control_defect_1_a_0 - top.usr.pump_control_defect_2_a_0 - top.usr.pump_control_defect_3_a_0 - top.usr.q_a_0 - top.usr.pump_state_0_a_0 - top.usr.pump_state_1_a_0 - top.usr.pump_state_2_a_0 - top.usr.pump_state_3_a_0 - top.res.abs_0_a_0 - top.res.inst_52_a_0 - top.res.inst_51_a_0 - top.res.inst_50_a_0 - top.res.inst_49_a_0 - top.res.inst_48_a_0 - top.res.inst_47_a_0 - top.res.inst_46_a_0 - top.res.inst_45_a_0 - top.res.inst_44_a_0 - top.res.inst_43_a_0 - top.res.inst_42_a_0 - top.res.inst_41_a_0 - top.res.inst_40_a_0 - top.res.inst_39_a_0 - top.res.inst_38_a_0 - top.res.inst_37_a_0 - top.res.inst_36_a_0 - top.res.inst_35_a_0 - top.res.inst_34_a_0 - top.res.inst_33_a_0 - top.res.inst_32_a_0 - top.res.inst_31_a_0 - top.res.inst_30_a_0 - top.res.inst_29_a_0 - top.res.inst_28_a_0 - top.res.inst_27_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0) - (__node_trans_dangerous_level_0 - top.usr.q_a_1 - top.res.abs_1_a_1 - top.res.inst_0_a_1 - top.usr.q_a_0 - top.res.abs_1_a_0 - top.res.inst_0_a_0) - (<= 1 top.impl.usr.op_mode_a_1 6) - (<= 1 top.res.abs_0_a_1 6) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.steam_boiler_waiting Bool) - (top.usr.physical_units_ready Bool) - (top.usr.stop_request Bool) - (top.usr.steam Int) - (top.usr.level_defect Int) - (top.usr.steam_defect Int) - (top.usr.pump_defect_0 Int) - (top.usr.pump_defect_1 Int) - (top.usr.pump_defect_2 Int) - (top.usr.pump_defect_3 Int) - (top.usr.pump_control_defect_0 Int) - (top.usr.pump_control_defect_1 Int) - (top.usr.pump_control_defect_2 Int) - (top.usr.pump_control_defect_3 Int) - (top.usr.q Int) - (top.usr.pump_state_0 Int) - (top.usr.pump_state_1 Int) - (top.usr.pump_state_2 Int) - (top.usr.pump_state_3 Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.op_mode Int) - (top.res.abs_0 Int) - (top.res.abs_1 Bool) - (top.res.inst_52 Bool) - (top.res.inst_51 Int) - (top.res.inst_50 Bool) - (top.res.inst_49 Bool) - (top.res.inst_48 Bool) - (top.res.inst_47 Bool) - (top.res.inst_46 Bool) - (top.res.inst_45 Bool) - (top.res.inst_44 Bool) - (top.res.inst_43 Bool) - (top.res.inst_42 Bool) - (top.res.inst_41 Bool) - (top.res.inst_40 Bool) - (top.res.inst_39 Bool) - (top.res.inst_38 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.steam_boiler_waiting Bool) -(declare-primed-var top.usr.physical_units_ready Bool) -(declare-primed-var top.usr.stop_request Bool) -(declare-primed-var top.usr.steam Int) -(declare-primed-var top.usr.level_defect Int) -(declare-primed-var top.usr.steam_defect Int) -(declare-primed-var top.usr.pump_defect_0 Int) -(declare-primed-var top.usr.pump_defect_1 Int) -(declare-primed-var top.usr.pump_defect_2 Int) -(declare-primed-var top.usr.pump_defect_3 Int) -(declare-primed-var top.usr.pump_control_defect_0 Int) -(declare-primed-var top.usr.pump_control_defect_1 Int) -(declare-primed-var top.usr.pump_control_defect_2 Int) -(declare-primed-var top.usr.pump_control_defect_3 Int) -(declare-primed-var top.usr.q Int) -(declare-primed-var top.usr.pump_state_0 Int) -(declare-primed-var top.usr.pump_state_1 Int) -(declare-primed-var top.usr.pump_state_2 Int) -(declare-primed-var top.usr.pump_state_3 Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.op_mode Int) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.inst_52 Bool) -(declare-primed-var top.res.inst_51 Int) -(declare-primed-var top.res.inst_50 Bool) -(declare-primed-var top.res.inst_49 Bool) -(declare-primed-var top.res.inst_48 Bool) -(declare-primed-var top.res.inst_47 Bool) -(declare-primed-var top.res.inst_46 Bool) -(declare-primed-var top.res.inst_45 Bool) -(declare-primed-var top.res.inst_44 Bool) -(declare-primed-var top.res.inst_43 Bool) -(declare-primed-var top.res.inst_42 Bool) -(declare-primed-var top.res.inst_41 Bool) -(declare-primed-var top.res.inst_40 Bool) -(declare-primed-var top.res.inst_39 Bool) -(declare-primed-var top.res.inst_38 Bool) -(declare-primed-var top.res.inst_37 Bool) -(declare-primed-var top.res.inst_36 Bool) -(declare-primed-var top.res.inst_35 Bool) -(declare-primed-var top.res.inst_34 Bool) -(declare-primed-var top.res.inst_33 Bool) -(declare-primed-var top.res.inst_32 Bool) -(declare-primed-var top.res.inst_31 Bool) -(declare-primed-var top.res.inst_30 Bool) -(declare-primed-var top.res.inst_29 Bool) -(declare-primed-var top.res.inst_28 Bool) -(declare-primed-var top.res.inst_27 Bool) -(declare-primed-var top.res.inst_26 Bool) -(declare-primed-var top.res.inst_25 Bool) -(declare-primed-var top.res.inst_24 Bool) -(declare-primed-var top.res.inst_23 Bool) -(declare-primed-var top.res.inst_22 Bool) -(declare-primed-var top.res.inst_21 Bool) -(declare-primed-var top.res.inst_20 Bool) -(declare-primed-var top.res.inst_19 Bool) -(declare-primed-var top.res.inst_18 Bool) -(declare-primed-var top.res.inst_17 Bool) -(declare-primed-var top.res.inst_16 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Bool) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Bool) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Bool) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.steam_boiler_waiting Bool) - (top.usr.physical_units_ready Bool) - (top.usr.stop_request Bool) - (top.usr.steam Int) - (top.usr.level_defect Int) - (top.usr.steam_defect Int) - (top.usr.pump_defect_0 Int) - (top.usr.pump_defect_1 Int) - (top.usr.pump_defect_2 Int) - (top.usr.pump_defect_3 Int) - (top.usr.pump_control_defect_0 Int) - (top.usr.pump_control_defect_1 Int) - (top.usr.pump_control_defect_2 Int) - (top.usr.pump_control_defect_3 Int) - (top.usr.q Int) - (top.usr.pump_state_0 Int) - (top.usr.pump_state_1 Int) - (top.usr.pump_state_2 Int) - (top.usr.pump_state_3 Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.op_mode Int) - (top.res.abs_0 Int) - (top.res.abs_1 Bool) - (top.res.inst_52 Bool) - (top.res.inst_51 Int) - (top.res.inst_50 Bool) - (top.res.inst_49 Bool) - (top.res.inst_48 Bool) - (top.res.inst_47 Bool) - (top.res.inst_46 Bool) - (top.res.inst_45 Bool) - (top.res.inst_44 Bool) - (top.res.inst_43 Bool) - (top.res.inst_42 Bool) - (top.res.inst_41 Bool) - (top.res.inst_40 Bool) - (top.res.inst_39 Bool) - (top.res.inst_38 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.impl.usr.op_mode top.res.abs_0) - (let - ((X1 Bool (=> (= top.impl.usr.op_mode 3) (not top.usr.stop_request)))) - (let - ((X2 Bool true)) - (and - (= top.usr.OK (and X2 X1)) - (__node_init_ControlMode_0 - top.usr.steam_boiler_waiting - top.usr.physical_units_ready - top.usr.stop_request - top.usr.steam - top.usr.level_defect - top.usr.steam_defect - top.usr.pump_defect_0 - top.usr.pump_defect_1 - top.usr.pump_defect_2 - top.usr.pump_defect_3 - top.usr.pump_control_defect_0 - top.usr.pump_control_defect_1 - top.usr.pump_control_defect_2 - top.usr.pump_control_defect_3 - top.usr.q - top.usr.pump_state_0 - top.usr.pump_state_1 - top.usr.pump_state_2 - top.usr.pump_state_3 - top.res.nondet_0 - top.res.abs_0 - top.res.inst_52 - top.res.inst_51 - top.res.inst_50 - top.res.inst_49 - top.res.inst_48 - top.res.inst_47 - top.res.inst_46 - top.res.inst_45 - top.res.inst_44 - top.res.inst_43 - top.res.inst_42 - top.res.inst_41 - top.res.inst_40 - top.res.inst_39 - top.res.inst_38 - top.res.inst_37 - top.res.inst_36 - top.res.inst_35 - top.res.inst_34 - top.res.inst_33 - top.res.inst_32 - top.res.inst_31 - top.res.inst_30 - top.res.inst_29 - top.res.inst_28 - top.res.inst_27 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_init_dangerous_level_0 top.usr.q top.res.abs_1 top.res.inst_0) - (<= 1 top.impl.usr.op_mode 6) - (<= 1 top.res.abs_0 6) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.steam_boiler_waiting Bool) - (top.usr.physical_units_ready Bool) - (top.usr.stop_request Bool) - (top.usr.steam Int) - (top.usr.level_defect Int) - (top.usr.steam_defect Int) - (top.usr.pump_defect_0 Int) - (top.usr.pump_defect_1 Int) - (top.usr.pump_defect_2 Int) - (top.usr.pump_defect_3 Int) - (top.usr.pump_control_defect_0 Int) - (top.usr.pump_control_defect_1 Int) - (top.usr.pump_control_defect_2 Int) - (top.usr.pump_control_defect_3 Int) - (top.usr.q Int) - (top.usr.pump_state_0 Int) - (top.usr.pump_state_1 Int) - (top.usr.pump_state_2 Int) - (top.usr.pump_state_3 Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.op_mode Int) - (top.res.abs_0 Int) - (top.res.abs_1 Bool) - (top.res.inst_52 Bool) - (top.res.inst_51 Int) - (top.res.inst_50 Bool) - (top.res.inst_49 Bool) - (top.res.inst_48 Bool) - (top.res.inst_47 Bool) - (top.res.inst_46 Bool) - (top.res.inst_45 Bool) - (top.res.inst_44 Bool) - (top.res.inst_43 Bool) - (top.res.inst_42 Bool) - (top.res.inst_41 Bool) - (top.res.inst_40 Bool) - (top.res.inst_39 Bool) - (top.res.inst_38 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.steam_boiler_waiting! Bool) - (top.usr.physical_units_ready! Bool) - (top.usr.stop_request! Bool) - (top.usr.steam! Int) - (top.usr.level_defect! Int) - (top.usr.steam_defect! Int) - (top.usr.pump_defect_0! Int) - (top.usr.pump_defect_1! Int) - (top.usr.pump_defect_2! Int) - (top.usr.pump_defect_3! Int) - (top.usr.pump_control_defect_0! Int) - (top.usr.pump_control_defect_1! Int) - (top.usr.pump_control_defect_2! Int) - (top.usr.pump_control_defect_3! Int) - (top.usr.q! Int) - (top.usr.pump_state_0! Int) - (top.usr.pump_state_1! Int) - (top.usr.pump_state_2! Int) - (top.usr.pump_state_3! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.op_mode! Int) - (top.res.abs_0! Int) - (top.res.abs_1! Bool) - (top.res.inst_52! Bool) - (top.res.inst_51! Int) - (top.res.inst_50! Bool) - (top.res.inst_49! Bool) - (top.res.inst_48! Bool) - (top.res.inst_47! Bool) - (top.res.inst_46! Bool) - (top.res.inst_45! Bool) - (top.res.inst_44! Bool) - (top.res.inst_43! Bool) - (top.res.inst_42! Bool) - (top.res.inst_41! Bool) - (top.res.inst_40! Bool) - (top.res.inst_39! Bool) - (top.res.inst_38! Bool) - (top.res.inst_37! Bool) - (top.res.inst_36! Bool) - (top.res.inst_35! Bool) - (top.res.inst_34! Bool) - (top.res.inst_33! Bool) - (top.res.inst_32! Bool) - (top.res.inst_31! Bool) - (top.res.inst_30! Bool) - (top.res.inst_29! Bool) - (top.res.inst_28! Bool) - (top.res.inst_27! Bool) - (top.res.inst_26! Bool) - (top.res.inst_25! Bool) - (top.res.inst_24! Bool) - (top.res.inst_23! Bool) - (top.res.inst_22! Bool) - (top.res.inst_21! Bool) - (top.res.inst_20! Bool) - (top.res.inst_19! Bool) - (top.res.inst_18! Bool) - (top.res.inst_17! Bool) - (top.res.inst_16! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Bool) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Bool) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Bool) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= top.impl.usr.op_mode! top.res.abs_0!) - (let - ((X1 Bool (=> (= top.impl.usr.op_mode! 3) (not top.usr.stop_request!)))) - (let - ((X2 - Bool (=> - (and (= top.impl.usr.op_mode! 3) (= top.impl.usr.op_mode 3)) - (not top.res.abs_1!)))) - (and - (= top.usr.OK! (and X2 X1)) - (__node_trans_ControlMode_0 - top.usr.steam_boiler_waiting! - top.usr.physical_units_ready! - top.usr.stop_request! - top.usr.steam! - top.usr.level_defect! - top.usr.steam_defect! - top.usr.pump_defect_0! - top.usr.pump_defect_1! - top.usr.pump_defect_2! - top.usr.pump_defect_3! - top.usr.pump_control_defect_0! - top.usr.pump_control_defect_1! - top.usr.pump_control_defect_2! - top.usr.pump_control_defect_3! - top.usr.q! - top.usr.pump_state_0! - top.usr.pump_state_1! - top.usr.pump_state_2! - top.usr.pump_state_3! - top.res.nondet_0 - top.res.abs_0! - top.res.inst_52! - top.res.inst_51! - top.res.inst_50! - top.res.inst_49! - top.res.inst_48! - top.res.inst_47! - top.res.inst_46! - top.res.inst_45! - top.res.inst_44! - top.res.inst_43! - top.res.inst_42! - top.res.inst_41! - top.res.inst_40! - top.res.inst_39! - top.res.inst_38! - top.res.inst_37! - top.res.inst_36! - top.res.inst_35! - top.res.inst_34! - top.res.inst_33! - top.res.inst_32! - top.res.inst_31! - top.res.inst_30! - top.res.inst_29! - top.res.inst_28! - top.res.inst_27! - top.res.inst_26! - top.res.inst_25! - top.res.inst_24! - top.res.inst_23! - top.res.inst_22! - top.res.inst_21! - top.res.inst_20! - top.res.inst_19! - top.res.inst_18! - top.res.inst_17! - top.res.inst_16! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.usr.steam_boiler_waiting - top.usr.physical_units_ready - top.usr.stop_request - top.usr.steam - top.usr.level_defect - top.usr.steam_defect - top.usr.pump_defect_0 - top.usr.pump_defect_1 - top.usr.pump_defect_2 - top.usr.pump_defect_3 - top.usr.pump_control_defect_0 - top.usr.pump_control_defect_1 - top.usr.pump_control_defect_2 - top.usr.pump_control_defect_3 - top.usr.q - top.usr.pump_state_0 - top.usr.pump_state_1 - top.usr.pump_state_2 - top.usr.pump_state_3 - top.res.abs_0 - top.res.inst_52 - top.res.inst_51 - top.res.inst_50 - top.res.inst_49 - top.res.inst_48 - top.res.inst_47 - top.res.inst_46 - top.res.inst_45 - top.res.inst_44 - top.res.inst_43 - top.res.inst_42 - top.res.inst_41 - top.res.inst_40 - top.res.inst_39 - top.res.inst_38 - top.res.inst_37 - top.res.inst_36 - top.res.inst_35 - top.res.inst_34 - top.res.inst_33 - top.res.inst_32 - top.res.inst_31 - top.res.inst_30 - top.res.inst_29 - top.res.inst_28 - top.res.inst_27 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1) - (__node_trans_dangerous_level_0 - top.usr.q! - top.res.abs_1! - top.res.inst_0! - top.usr.q - top.res.abs_1 - top.res.inst_0) - (<= 1 top.impl.usr.op_mode! 6) - (<= 1 top.res.abs_0! 6) - (not top.res.init_flag!))))) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.steam_boiler_waiting Bool) - (top.usr.physical_units_ready Bool) - (top.usr.stop_request Bool) - (top.usr.steam Int) - (top.usr.level_defect Int) - (top.usr.steam_defect Int) - (top.usr.pump_defect_0 Int) - (top.usr.pump_defect_1 Int) - (top.usr.pump_defect_2 Int) - (top.usr.pump_defect_3 Int) - (top.usr.pump_control_defect_0 Int) - (top.usr.pump_control_defect_1 Int) - (top.usr.pump_control_defect_2 Int) - (top.usr.pump_control_defect_3 Int) - (top.usr.q Int) - (top.usr.pump_state_0 Int) - (top.usr.pump_state_1 Int) - (top.usr.pump_state_2 Int) - (top.usr.pump_state_3 Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.op_mode Int) - (top.res.abs_0 Int) - (top.res.abs_1 Bool) - (top.res.inst_52 Bool) - (top.res.inst_51 Int) - (top.res.inst_50 Bool) - (top.res.inst_49 Bool) - (top.res.inst_48 Bool) - (top.res.inst_47 Bool) - (top.res.inst_46 Bool) - (top.res.inst_45 Bool) - (top.res.inst_44 Bool) - (top.res.inst_43 Bool) - (top.res.inst_42 Bool) - (top.res.inst_41 Bool) - (top.res.inst_40 Bool) - (top.res.inst_39 Bool) - (top.res.inst_38 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_dangerous_level_0 ((dangerous_level.usr.q_a_0 Int) (dangerous_level.usr.dangerous_level_a_0 Bool) (dangerous_level.res.init_flag_a_0 Bool)) Bool + (and (= dangerous_level.usr.dangerous_level_a_0 (or (<= dangerous_level.usr.q_a_0 150) (>= dangerous_level.usr.q_a_0 850))) dangerous_level.res.init_flag_a_0)) +(define-fun __node_trans_dangerous_level_0 ((dangerous_level.usr.q_a_1 Int) (dangerous_level.usr.dangerous_level_a_1 Bool) (dangerous_level.res.init_flag_a_1 Bool) (dangerous_level.usr.q_a_0 Int) (dangerous_level.usr.dangerous_level_a_0 Bool) (dangerous_level.res.init_flag_a_0 Bool)) Bool + (and (= dangerous_level.usr.dangerous_level_a_1 (or (<= dangerous_level.usr.q_a_1 150) (>= dangerous_level.usr.q_a_1 850))) (not dangerous_level.res.init_flag_a_1))) +(define-fun __node_init_level_failure_0 ((level_failure.usr.level_defect_a_0 Int) (level_failure.usr.level_failure_a_0 Bool) (level_failure.res.init_flag_a_0 Bool)) Bool + (and (= level_failure.usr.level_failure_a_0 (not (= level_failure.usr.level_defect_a_0 0))) level_failure.res.init_flag_a_0)) +(define-fun __node_trans_level_failure_0 ((level_failure.usr.level_defect_a_1 Int) (level_failure.usr.level_failure_a_1 Bool) (level_failure.res.init_flag_a_1 Bool) (level_failure.usr.level_defect_a_0 Int) (level_failure.usr.level_failure_a_0 Bool) (level_failure.res.init_flag_a_0 Bool)) Bool + (and (= level_failure.usr.level_failure_a_1 (not (= level_failure.usr.level_defect_a_1 0))) (not level_failure.res.init_flag_a_1))) +(define-fun __node_init_steam_failure_0 ((steam_failure.usr.steam_defect_a_0 Int) (steam_failure.usr.steam_failure_a_0 Bool) (steam_failure.res.init_flag_a_0 Bool)) Bool + (and (= steam_failure.usr.steam_failure_a_0 (not (= steam_failure.usr.steam_defect_a_0 0))) steam_failure.res.init_flag_a_0)) +(define-fun __node_trans_steam_failure_0 ((steam_failure.usr.steam_defect_a_1 Int) (steam_failure.usr.steam_failure_a_1 Bool) (steam_failure.res.init_flag_a_1 Bool) (steam_failure.usr.steam_defect_a_0 Int) (steam_failure.usr.steam_failure_a_0 Bool) (steam_failure.res.init_flag_a_0 Bool)) Bool + (and (= steam_failure.usr.steam_failure_a_1 (not (= steam_failure.usr.steam_defect_a_1 0))) (not steam_failure.res.init_flag_a_1))) +(define-fun __node_init_OR_0 ((OR.usr.a_0_a_0 Bool) (OR.usr.a_1_a_0 Bool) (OR.usr.a_2_a_0 Bool) (OR.usr.a_3_a_0 Bool) (OR.usr.OR_a_0 Bool) (OR.res.init_flag_a_0 Bool)) Bool + (and (= OR.usr.OR_a_0 (or (or (and OR.usr.a_0_a_0 OR.usr.a_1_a_0) OR.usr.a_2_a_0) OR.usr.a_3_a_0)) OR.res.init_flag_a_0)) +(define-fun __node_trans_OR_0 ((OR.usr.a_0_a_1 Bool) (OR.usr.a_1_a_1 Bool) (OR.usr.a_2_a_1 Bool) (OR.usr.a_3_a_1 Bool) (OR.usr.OR_a_1 Bool) (OR.res.init_flag_a_1 Bool) (OR.usr.a_0_a_0 Bool) (OR.usr.a_1_a_0 Bool) (OR.usr.a_2_a_0 Bool) (OR.usr.a_3_a_0 Bool) (OR.usr.OR_a_0 Bool) (OR.res.init_flag_a_0 Bool)) Bool + (and (= OR.usr.OR_a_1 (or (or (and OR.usr.a_0_a_1 OR.usr.a_1_a_1) OR.usr.a_2_a_1) OR.usr.a_3_a_1)) (not OR.res.init_flag_a_1))) +(define-fun __node_init_pump_control_failure_0 ((pump_control_failure.usr.pump_defect_a_0 Int) (pump_control_failure.usr.pump_failure_a_0 Bool) (pump_control_failure.res.init_flag_a_0 Bool)) Bool + (and (= pump_control_failure.usr.pump_failure_a_0 (not (= pump_control_failure.usr.pump_defect_a_0 0))) pump_control_failure.res.init_flag_a_0)) +(define-fun __node_trans_pump_control_failure_0 ((pump_control_failure.usr.pump_defect_a_1 Int) (pump_control_failure.usr.pump_failure_a_1 Bool) (pump_control_failure.res.init_flag_a_1 Bool) (pump_control_failure.usr.pump_defect_a_0 Int) (pump_control_failure.usr.pump_failure_a_0 Bool) (pump_control_failure.res.init_flag_a_0 Bool)) Bool + (and (= pump_control_failure.usr.pump_failure_a_1 (not (= pump_control_failure.usr.pump_defect_a_1 0))) (not pump_control_failure.res.init_flag_a_1))) +(define-fun __node_init_pump_failure_0 ((pump_failure.usr.pump_defect_a_0 Int) (pump_failure.usr.pump_failure_a_0 Bool) (pump_failure.res.init_flag_a_0 Bool)) Bool + (and (= pump_failure.usr.pump_failure_a_0 (not (= pump_failure.usr.pump_defect_a_0 0))) pump_failure.res.init_flag_a_0)) +(define-fun __node_trans_pump_failure_0 ((pump_failure.usr.pump_defect_a_1 Int) (pump_failure.usr.pump_failure_a_1 Bool) (pump_failure.res.init_flag_a_1 Bool) (pump_failure.usr.pump_defect_a_0 Int) (pump_failure.usr.pump_failure_a_0 Bool) (pump_failure.res.init_flag_a_0 Bool)) Bool + (and (= pump_failure.usr.pump_failure_a_1 (not (= pump_failure.usr.pump_defect_a_1 0))) (not pump_failure.res.init_flag_a_1))) +(define-fun __node_init_failure_0 ((failure.usr.level_defect_a_0 Int) (failure.usr.steam_defect_a_0 Int) (failure.usr.pump_defect_0_a_0 Int) (failure.usr.pump_defect_1_a_0 Int) (failure.usr.pump_defect_2_a_0 Int) (failure.usr.pump_defect_3_a_0 Int) (failure.usr.pump_control_defect_0_a_0 Int) (failure.usr.pump_control_defect_1_a_0 Int) (failure.usr.pump_control_defect_2_a_0 Int) (failure.usr.pump_control_defect_3_a_0 Int) (failure.usr.failure_a_0 Bool) (failure.res.init_flag_a_0 Bool) (failure.res.abs_0_a_0 Bool) (failure.res.abs_1_a_0 Bool) (failure.res.abs_2_a_0 Bool) (failure.res.abs_3_a_0 Bool) (failure.res.abs_4_a_0 Bool) (failure.res.abs_5_a_0 Bool) (failure.res.abs_6_a_0 Bool) (failure.res.abs_7_a_0 Bool) (failure.res.abs_8_a_0 Bool) (failure.res.abs_9_a_0 Bool) (failure.res.abs_10_a_0 Bool) (failure.res.abs_11_a_0 Bool) (failure.res.inst_11_a_0 Bool) (failure.res.inst_10_a_0 Bool) (failure.res.inst_9_a_0 Bool) (failure.res.inst_8_a_0 Bool) (failure.res.inst_7_a_0 Bool) (failure.res.inst_6_a_0 Bool) (failure.res.inst_5_a_0 Bool) (failure.res.inst_4_a_0 Bool) (failure.res.inst_3_a_0 Bool) (failure.res.inst_2_a_0 Bool) (failure.res.inst_1_a_0 Bool) (failure.res.inst_0_a_0 Bool)) Bool + (and (= failure.usr.failure_a_0 (or (or (or failure.res.abs_0_a_0 failure.res.abs_1_a_0) failure.res.abs_6_a_0) failure.res.abs_11_a_0)) (__node_init_level_failure_0 failure.usr.level_defect_a_0 failure.res.abs_0_a_0 failure.res.inst_11_a_0) (__node_init_steam_failure_0 failure.usr.steam_defect_a_0 failure.res.abs_1_a_0 failure.res.inst_10_a_0) (__node_init_OR_0 failure.res.abs_2_a_0 failure.res.abs_3_a_0 failure.res.abs_4_a_0 failure.res.abs_5_a_0 failure.res.abs_6_a_0 failure.res.inst_9_a_0) (__node_init_pump_failure_0 failure.usr.pump_defect_0_a_0 failure.res.abs_2_a_0 failure.res.inst_8_a_0) (__node_init_pump_failure_0 failure.usr.pump_defect_1_a_0 failure.res.abs_3_a_0 failure.res.inst_7_a_0) (__node_init_pump_failure_0 failure.usr.pump_defect_2_a_0 failure.res.abs_4_a_0 failure.res.inst_6_a_0) (__node_init_pump_failure_0 failure.usr.pump_defect_3_a_0 failure.res.abs_5_a_0 failure.res.inst_5_a_0) (__node_init_OR_0 failure.res.abs_7_a_0 failure.res.abs_8_a_0 failure.res.abs_9_a_0 failure.res.abs_10_a_0 failure.res.abs_11_a_0 failure.res.inst_4_a_0) (__node_init_pump_control_failure_0 failure.usr.pump_control_defect_0_a_0 failure.res.abs_7_a_0 failure.res.inst_3_a_0) (__node_init_pump_control_failure_0 failure.usr.pump_control_defect_1_a_0 failure.res.abs_8_a_0 failure.res.inst_2_a_0) (__node_init_pump_control_failure_0 failure.usr.pump_control_defect_2_a_0 failure.res.abs_9_a_0 failure.res.inst_1_a_0) (__node_init_pump_control_failure_0 failure.usr.pump_control_defect_3_a_0 failure.res.abs_10_a_0 failure.res.inst_0_a_0) failure.res.init_flag_a_0)) +(define-fun __node_trans_failure_0 ((failure.usr.level_defect_a_1 Int) (failure.usr.steam_defect_a_1 Int) (failure.usr.pump_defect_0_a_1 Int) (failure.usr.pump_defect_1_a_1 Int) (failure.usr.pump_defect_2_a_1 Int) (failure.usr.pump_defect_3_a_1 Int) (failure.usr.pump_control_defect_0_a_1 Int) (failure.usr.pump_control_defect_1_a_1 Int) (failure.usr.pump_control_defect_2_a_1 Int) (failure.usr.pump_control_defect_3_a_1 Int) (failure.usr.failure_a_1 Bool) (failure.res.init_flag_a_1 Bool) (failure.res.abs_0_a_1 Bool) (failure.res.abs_1_a_1 Bool) (failure.res.abs_2_a_1 Bool) (failure.res.abs_3_a_1 Bool) (failure.res.abs_4_a_1 Bool) (failure.res.abs_5_a_1 Bool) (failure.res.abs_6_a_1 Bool) (failure.res.abs_7_a_1 Bool) (failure.res.abs_8_a_1 Bool) (failure.res.abs_9_a_1 Bool) (failure.res.abs_10_a_1 Bool) (failure.res.abs_11_a_1 Bool) (failure.res.inst_11_a_1 Bool) (failure.res.inst_10_a_1 Bool) (failure.res.inst_9_a_1 Bool) (failure.res.inst_8_a_1 Bool) (failure.res.inst_7_a_1 Bool) (failure.res.inst_6_a_1 Bool) (failure.res.inst_5_a_1 Bool) (failure.res.inst_4_a_1 Bool) (failure.res.inst_3_a_1 Bool) (failure.res.inst_2_a_1 Bool) (failure.res.inst_1_a_1 Bool) (failure.res.inst_0_a_1 Bool) (failure.usr.level_defect_a_0 Int) (failure.usr.steam_defect_a_0 Int) (failure.usr.pump_defect_0_a_0 Int) (failure.usr.pump_defect_1_a_0 Int) (failure.usr.pump_defect_2_a_0 Int) (failure.usr.pump_defect_3_a_0 Int) (failure.usr.pump_control_defect_0_a_0 Int) (failure.usr.pump_control_defect_1_a_0 Int) (failure.usr.pump_control_defect_2_a_0 Int) (failure.usr.pump_control_defect_3_a_0 Int) (failure.usr.failure_a_0 Bool) (failure.res.init_flag_a_0 Bool) (failure.res.abs_0_a_0 Bool) (failure.res.abs_1_a_0 Bool) (failure.res.abs_2_a_0 Bool) (failure.res.abs_3_a_0 Bool) (failure.res.abs_4_a_0 Bool) (failure.res.abs_5_a_0 Bool) (failure.res.abs_6_a_0 Bool) (failure.res.abs_7_a_0 Bool) (failure.res.abs_8_a_0 Bool) (failure.res.abs_9_a_0 Bool) (failure.res.abs_10_a_0 Bool) (failure.res.abs_11_a_0 Bool) (failure.res.inst_11_a_0 Bool) (failure.res.inst_10_a_0 Bool) (failure.res.inst_9_a_0 Bool) (failure.res.inst_8_a_0 Bool) (failure.res.inst_7_a_0 Bool) (failure.res.inst_6_a_0 Bool) (failure.res.inst_5_a_0 Bool) (failure.res.inst_4_a_0 Bool) (failure.res.inst_3_a_0 Bool) (failure.res.inst_2_a_0 Bool) (failure.res.inst_1_a_0 Bool) (failure.res.inst_0_a_0 Bool)) Bool + (and (= failure.usr.failure_a_1 (or (or (or failure.res.abs_0_a_1 failure.res.abs_1_a_1) failure.res.abs_6_a_1) failure.res.abs_11_a_1)) (__node_trans_level_failure_0 failure.usr.level_defect_a_1 failure.res.abs_0_a_1 failure.res.inst_11_a_1 failure.usr.level_defect_a_0 failure.res.abs_0_a_0 failure.res.inst_11_a_0) (__node_trans_steam_failure_0 failure.usr.steam_defect_a_1 failure.res.abs_1_a_1 failure.res.inst_10_a_1 failure.usr.steam_defect_a_0 failure.res.abs_1_a_0 failure.res.inst_10_a_0) (__node_trans_OR_0 failure.res.abs_2_a_1 failure.res.abs_3_a_1 failure.res.abs_4_a_1 failure.res.abs_5_a_1 failure.res.abs_6_a_1 failure.res.inst_9_a_1 failure.res.abs_2_a_0 failure.res.abs_3_a_0 failure.res.abs_4_a_0 failure.res.abs_5_a_0 failure.res.abs_6_a_0 failure.res.inst_9_a_0) (__node_trans_pump_failure_0 failure.usr.pump_defect_0_a_1 failure.res.abs_2_a_1 failure.res.inst_8_a_1 failure.usr.pump_defect_0_a_0 failure.res.abs_2_a_0 failure.res.inst_8_a_0) (__node_trans_pump_failure_0 failure.usr.pump_defect_1_a_1 failure.res.abs_3_a_1 failure.res.inst_7_a_1 failure.usr.pump_defect_1_a_0 failure.res.abs_3_a_0 failure.res.inst_7_a_0) (__node_trans_pump_failure_0 failure.usr.pump_defect_2_a_1 failure.res.abs_4_a_1 failure.res.inst_6_a_1 failure.usr.pump_defect_2_a_0 failure.res.abs_4_a_0 failure.res.inst_6_a_0) (__node_trans_pump_failure_0 failure.usr.pump_defect_3_a_1 failure.res.abs_5_a_1 failure.res.inst_5_a_1 failure.usr.pump_defect_3_a_0 failure.res.abs_5_a_0 failure.res.inst_5_a_0) (__node_trans_OR_0 failure.res.abs_7_a_1 failure.res.abs_8_a_1 failure.res.abs_9_a_1 failure.res.abs_10_a_1 failure.res.abs_11_a_1 failure.res.inst_4_a_1 failure.res.abs_7_a_0 failure.res.abs_8_a_0 failure.res.abs_9_a_0 failure.res.abs_10_a_0 failure.res.abs_11_a_0 failure.res.inst_4_a_0) (__node_trans_pump_control_failure_0 failure.usr.pump_control_defect_0_a_1 failure.res.abs_7_a_1 failure.res.inst_3_a_1 failure.usr.pump_control_defect_0_a_0 failure.res.abs_7_a_0 failure.res.inst_3_a_0) (__node_trans_pump_control_failure_0 failure.usr.pump_control_defect_1_a_1 failure.res.abs_8_a_1 failure.res.inst_2_a_1 failure.usr.pump_control_defect_1_a_0 failure.res.abs_8_a_0 failure.res.inst_2_a_0) (__node_trans_pump_control_failure_0 failure.usr.pump_control_defect_2_a_1 failure.res.abs_9_a_1 failure.res.inst_1_a_1 failure.usr.pump_control_defect_2_a_0 failure.res.abs_9_a_0 failure.res.inst_1_a_0) (__node_trans_pump_control_failure_0 failure.usr.pump_control_defect_3_a_1 failure.res.abs_10_a_1 failure.res.inst_0_a_1 failure.usr.pump_control_defect_3_a_0 failure.res.abs_10_a_0 failure.res.inst_0_a_0) (not failure.res.init_flag_a_1))) +(define-fun __node_init_steam_failure_startup_0 ((steam_failure_startup.usr.steam_a_0 Int) (steam_failure_startup.usr.steam_failure_startup_a_0 Bool) (steam_failure_startup.res.init_flag_a_0 Bool)) Bool + (and (= steam_failure_startup.usr.steam_failure_startup_a_0 (not (= steam_failure_startup.usr.steam_a_0 0))) steam_failure_startup.res.init_flag_a_0)) +(define-fun __node_trans_steam_failure_startup_0 ((steam_failure_startup.usr.steam_a_1 Int) (steam_failure_startup.usr.steam_failure_startup_a_1 Bool) (steam_failure_startup.res.init_flag_a_1 Bool) (steam_failure_startup.usr.steam_a_0 Int) (steam_failure_startup.usr.steam_failure_startup_a_0 Bool) (steam_failure_startup.res.init_flag_a_0 Bool)) Bool + (and (= steam_failure_startup.usr.steam_failure_startup_a_1 (not (= steam_failure_startup.usr.steam_a_1 0))) (not steam_failure_startup.res.init_flag_a_1))) +(define-fun __node_init_AND_0 ((AND.usr.a_0_a_0 Bool) (AND.usr.a_1_a_0 Bool) (AND.usr.a_2_a_0 Bool) (AND.usr.a_3_a_0 Bool) (AND.usr.AND_a_0 Bool) (AND.res.init_flag_a_0 Bool)) Bool + (and (= AND.usr.AND_a_0 (and (and (and AND.usr.a_0_a_0 AND.usr.a_1_a_0) AND.usr.a_2_a_0) AND.usr.a_3_a_0)) AND.res.init_flag_a_0)) +(define-fun __node_trans_AND_0 ((AND.usr.a_0_a_1 Bool) (AND.usr.a_1_a_1 Bool) (AND.usr.a_2_a_1 Bool) (AND.usr.a_3_a_1 Bool) (AND.usr.AND_a_1 Bool) (AND.res.init_flag_a_1 Bool) (AND.usr.a_0_a_0 Bool) (AND.usr.a_1_a_0 Bool) (AND.usr.a_2_a_0 Bool) (AND.usr.a_3_a_0 Bool) (AND.usr.AND_a_0 Bool) (AND.res.init_flag_a_0 Bool)) Bool + (and (= AND.usr.AND_a_1 (and (and (and AND.usr.a_0_a_1 AND.usr.a_1_a_1) AND.usr.a_2_a_1) AND.usr.a_3_a_1)) (not AND.res.init_flag_a_1))) +(define-fun __node_init_transmission_failure_0 ((transmission_failure.usr.pump_state_0_a_0 Int) (transmission_failure.usr.pump_state_1_a_0 Int) (transmission_failure.usr.pump_state_2_a_0 Int) (transmission_failure.usr.pump_state_3_a_0 Int) (transmission_failure.usr.transmission_failure_a_0 Bool) (transmission_failure.res.init_flag_a_0 Bool)) Bool + (and (= transmission_failure.usr.transmission_failure_a_0 (or (or (or (= transmission_failure.usr.pump_state_0_a_0 3) (= transmission_failure.usr.pump_state_1_a_0 3)) (= transmission_failure.usr.pump_state_2_a_0 3)) (= transmission_failure.usr.pump_state_3_a_0 3))) transmission_failure.res.init_flag_a_0)) +(define-fun __node_trans_transmission_failure_0 ((transmission_failure.usr.pump_state_0_a_1 Int) (transmission_failure.usr.pump_state_1_a_1 Int) (transmission_failure.usr.pump_state_2_a_1 Int) (transmission_failure.usr.pump_state_3_a_1 Int) (transmission_failure.usr.transmission_failure_a_1 Bool) (transmission_failure.res.init_flag_a_1 Bool) (transmission_failure.usr.pump_state_0_a_0 Int) (transmission_failure.usr.pump_state_1_a_0 Int) (transmission_failure.usr.pump_state_2_a_0 Int) (transmission_failure.usr.pump_state_3_a_0 Int) (transmission_failure.usr.transmission_failure_a_0 Bool) (transmission_failure.res.init_flag_a_0 Bool)) Bool + (and (= transmission_failure.usr.transmission_failure_a_1 (or (or (or (= transmission_failure.usr.pump_state_0_a_1 3) (= transmission_failure.usr.pump_state_1_a_1 3)) (= transmission_failure.usr.pump_state_2_a_1 3)) (= transmission_failure.usr.pump_state_3_a_1 3))) (not transmission_failure.res.init_flag_a_1))) +(define-fun __node_init_critical_failure_0 ((critical_failure.usr.op_mode_a_0 Int) (critical_failure.usr.steam_a_0 Int) (critical_failure.usr.level_defect_a_0 Int) (critical_failure.usr.steam_defect_a_0 Int) (critical_failure.usr.pump_defect_0_a_0 Int) (critical_failure.usr.pump_defect_1_a_0 Int) (critical_failure.usr.pump_defect_2_a_0 Int) (critical_failure.usr.pump_defect_3_a_0 Int) (critical_failure.usr.q_a_0 Int) (critical_failure.usr.pump_state_0_a_0 Int) (critical_failure.usr.pump_state_1_a_0 Int) (critical_failure.usr.pump_state_2_a_0 Int) (critical_failure.usr.pump_state_3_a_0 Int) (critical_failure.usr.critical_failure_a_0 Bool) (critical_failure.res.init_flag_a_0 Bool) (critical_failure.res.abs_0_a_0 Bool) (critical_failure.res.abs_1_a_0 Bool) (critical_failure.res.abs_2_a_0 Bool) (critical_failure.res.abs_3_a_0 Bool) (critical_failure.res.abs_4_a_0 Bool) (critical_failure.res.abs_5_a_0 Bool) (critical_failure.res.abs_6_a_0 Bool) (critical_failure.res.abs_7_a_0 Bool) (critical_failure.res.abs_8_a_0 Bool) (critical_failure.res.abs_9_a_0 Bool) (critical_failure.res.inst_9_a_0 Bool) (critical_failure.res.inst_8_a_0 Bool) (critical_failure.res.inst_7_a_0 Bool) (critical_failure.res.inst_6_a_0 Bool) (critical_failure.res.inst_5_a_0 Bool) (critical_failure.res.inst_4_a_0 Bool) (critical_failure.res.inst_3_a_0 Bool) (critical_failure.res.inst_2_a_0 Bool) (critical_failure.res.inst_1_a_0 Bool) (critical_failure.res.inst_0_a_0 Bool)) Bool + (and (= critical_failure.usr.critical_failure_a_0 (or (or (or (or (or critical_failure.res.abs_0_a_0 (and (= critical_failure.usr.op_mode_a_0 1) critical_failure.res.abs_1_a_0)) (and (= critical_failure.usr.op_mode_a_0 2) (or critical_failure.res.abs_2_a_0 critical_failure.res.abs_3_a_0))) (and (= critical_failure.usr.op_mode_a_0 3) critical_failure.res.abs_4_a_0)) (and (= critical_failure.usr.op_mode_a_0 4) critical_failure.res.abs_4_a_0)) (and (= critical_failure.usr.op_mode_a_0 5) (or (or critical_failure.res.abs_4_a_0 critical_failure.res.abs_3_a_0) critical_failure.res.abs_9_a_0)))) (__node_init_transmission_failure_0 critical_failure.usr.pump_state_0_a_0 critical_failure.usr.pump_state_1_a_0 critical_failure.usr.pump_state_2_a_0 critical_failure.usr.pump_state_3_a_0 critical_failure.res.abs_0_a_0 critical_failure.res.inst_9_a_0) (__node_init_steam_failure_startup_0 critical_failure.usr.steam_a_0 critical_failure.res.abs_1_a_0 critical_failure.res.inst_8_a_0) (__node_init_level_failure_0 critical_failure.usr.level_defect_a_0 critical_failure.res.abs_2_a_0 critical_failure.res.inst_7_a_0) (__node_init_steam_failure_0 critical_failure.usr.steam_defect_a_0 critical_failure.res.abs_3_a_0 critical_failure.res.inst_6_a_0) (__node_init_dangerous_level_0 critical_failure.usr.q_a_0 critical_failure.res.abs_4_a_0 critical_failure.res.inst_5_a_0) (__node_init_AND_0 critical_failure.res.abs_5_a_0 critical_failure.res.abs_6_a_0 critical_failure.res.abs_7_a_0 critical_failure.res.abs_8_a_0 critical_failure.res.abs_9_a_0 critical_failure.res.inst_4_a_0) (__node_init_pump_failure_0 critical_failure.usr.pump_defect_0_a_0 critical_failure.res.abs_5_a_0 critical_failure.res.inst_3_a_0) (__node_init_pump_failure_0 critical_failure.usr.pump_defect_1_a_0 critical_failure.res.abs_6_a_0 critical_failure.res.inst_2_a_0) (__node_init_pump_failure_0 critical_failure.usr.pump_defect_2_a_0 critical_failure.res.abs_7_a_0 critical_failure.res.inst_1_a_0) (__node_init_pump_failure_0 critical_failure.usr.pump_defect_3_a_0 critical_failure.res.abs_8_a_0 critical_failure.res.inst_0_a_0) critical_failure.res.init_flag_a_0)) +(define-fun __node_trans_critical_failure_0 ((critical_failure.usr.op_mode_a_1 Int) (critical_failure.usr.steam_a_1 Int) (critical_failure.usr.level_defect_a_1 Int) (critical_failure.usr.steam_defect_a_1 Int) (critical_failure.usr.pump_defect_0_a_1 Int) (critical_failure.usr.pump_defect_1_a_1 Int) (critical_failure.usr.pump_defect_2_a_1 Int) (critical_failure.usr.pump_defect_3_a_1 Int) (critical_failure.usr.q_a_1 Int) (critical_failure.usr.pump_state_0_a_1 Int) (critical_failure.usr.pump_state_1_a_1 Int) (critical_failure.usr.pump_state_2_a_1 Int) (critical_failure.usr.pump_state_3_a_1 Int) (critical_failure.usr.critical_failure_a_1 Bool) (critical_failure.res.init_flag_a_1 Bool) (critical_failure.res.abs_0_a_1 Bool) (critical_failure.res.abs_1_a_1 Bool) (critical_failure.res.abs_2_a_1 Bool) (critical_failure.res.abs_3_a_1 Bool) (critical_failure.res.abs_4_a_1 Bool) (critical_failure.res.abs_5_a_1 Bool) (critical_failure.res.abs_6_a_1 Bool) (critical_failure.res.abs_7_a_1 Bool) (critical_failure.res.abs_8_a_1 Bool) (critical_failure.res.abs_9_a_1 Bool) (critical_failure.res.inst_9_a_1 Bool) (critical_failure.res.inst_8_a_1 Bool) (critical_failure.res.inst_7_a_1 Bool) (critical_failure.res.inst_6_a_1 Bool) (critical_failure.res.inst_5_a_1 Bool) (critical_failure.res.inst_4_a_1 Bool) (critical_failure.res.inst_3_a_1 Bool) (critical_failure.res.inst_2_a_1 Bool) (critical_failure.res.inst_1_a_1 Bool) (critical_failure.res.inst_0_a_1 Bool) (critical_failure.usr.op_mode_a_0 Int) (critical_failure.usr.steam_a_0 Int) (critical_failure.usr.level_defect_a_0 Int) (critical_failure.usr.steam_defect_a_0 Int) (critical_failure.usr.pump_defect_0_a_0 Int) (critical_failure.usr.pump_defect_1_a_0 Int) (critical_failure.usr.pump_defect_2_a_0 Int) (critical_failure.usr.pump_defect_3_a_0 Int) (critical_failure.usr.q_a_0 Int) (critical_failure.usr.pump_state_0_a_0 Int) (critical_failure.usr.pump_state_1_a_0 Int) (critical_failure.usr.pump_state_2_a_0 Int) (critical_failure.usr.pump_state_3_a_0 Int) (critical_failure.usr.critical_failure_a_0 Bool) (critical_failure.res.init_flag_a_0 Bool) (critical_failure.res.abs_0_a_0 Bool) (critical_failure.res.abs_1_a_0 Bool) (critical_failure.res.abs_2_a_0 Bool) (critical_failure.res.abs_3_a_0 Bool) (critical_failure.res.abs_4_a_0 Bool) (critical_failure.res.abs_5_a_0 Bool) (critical_failure.res.abs_6_a_0 Bool) (critical_failure.res.abs_7_a_0 Bool) (critical_failure.res.abs_8_a_0 Bool) (critical_failure.res.abs_9_a_0 Bool) (critical_failure.res.inst_9_a_0 Bool) (critical_failure.res.inst_8_a_0 Bool) (critical_failure.res.inst_7_a_0 Bool) (critical_failure.res.inst_6_a_0 Bool) (critical_failure.res.inst_5_a_0 Bool) (critical_failure.res.inst_4_a_0 Bool) (critical_failure.res.inst_3_a_0 Bool) (critical_failure.res.inst_2_a_0 Bool) (critical_failure.res.inst_1_a_0 Bool) (critical_failure.res.inst_0_a_0 Bool)) Bool + (and (= critical_failure.usr.critical_failure_a_1 (or (or (or (or (or critical_failure.res.abs_0_a_1 (and (= critical_failure.usr.op_mode_a_1 1) critical_failure.res.abs_1_a_1)) (and (= critical_failure.usr.op_mode_a_1 2) (or critical_failure.res.abs_2_a_1 critical_failure.res.abs_3_a_1))) (and (= critical_failure.usr.op_mode_a_1 3) critical_failure.res.abs_4_a_1)) (and (= critical_failure.usr.op_mode_a_1 4) critical_failure.res.abs_4_a_1)) (and (= critical_failure.usr.op_mode_a_1 5) (or (or critical_failure.res.abs_4_a_1 critical_failure.res.abs_3_a_1) critical_failure.res.abs_9_a_1)))) (__node_trans_transmission_failure_0 critical_failure.usr.pump_state_0_a_1 critical_failure.usr.pump_state_1_a_1 critical_failure.usr.pump_state_2_a_1 critical_failure.usr.pump_state_3_a_1 critical_failure.res.abs_0_a_1 critical_failure.res.inst_9_a_1 critical_failure.usr.pump_state_0_a_0 critical_failure.usr.pump_state_1_a_0 critical_failure.usr.pump_state_2_a_0 critical_failure.usr.pump_state_3_a_0 critical_failure.res.abs_0_a_0 critical_failure.res.inst_9_a_0) (__node_trans_steam_failure_startup_0 critical_failure.usr.steam_a_1 critical_failure.res.abs_1_a_1 critical_failure.res.inst_8_a_1 critical_failure.usr.steam_a_0 critical_failure.res.abs_1_a_0 critical_failure.res.inst_8_a_0) (__node_trans_level_failure_0 critical_failure.usr.level_defect_a_1 critical_failure.res.abs_2_a_1 critical_failure.res.inst_7_a_1 critical_failure.usr.level_defect_a_0 critical_failure.res.abs_2_a_0 critical_failure.res.inst_7_a_0) (__node_trans_steam_failure_0 critical_failure.usr.steam_defect_a_1 critical_failure.res.abs_3_a_1 critical_failure.res.inst_6_a_1 critical_failure.usr.steam_defect_a_0 critical_failure.res.abs_3_a_0 critical_failure.res.inst_6_a_0) (__node_trans_dangerous_level_0 critical_failure.usr.q_a_1 critical_failure.res.abs_4_a_1 critical_failure.res.inst_5_a_1 critical_failure.usr.q_a_0 critical_failure.res.abs_4_a_0 critical_failure.res.inst_5_a_0) (__node_trans_AND_0 critical_failure.res.abs_5_a_1 critical_failure.res.abs_6_a_1 critical_failure.res.abs_7_a_1 critical_failure.res.abs_8_a_1 critical_failure.res.abs_9_a_1 critical_failure.res.inst_4_a_1 critical_failure.res.abs_5_a_0 critical_failure.res.abs_6_a_0 critical_failure.res.abs_7_a_0 critical_failure.res.abs_8_a_0 critical_failure.res.abs_9_a_0 critical_failure.res.inst_4_a_0) (__node_trans_pump_failure_0 critical_failure.usr.pump_defect_0_a_1 critical_failure.res.abs_5_a_1 critical_failure.res.inst_3_a_1 critical_failure.usr.pump_defect_0_a_0 critical_failure.res.abs_5_a_0 critical_failure.res.inst_3_a_0) (__node_trans_pump_failure_0 critical_failure.usr.pump_defect_1_a_1 critical_failure.res.abs_6_a_1 critical_failure.res.inst_2_a_1 critical_failure.usr.pump_defect_1_a_0 critical_failure.res.abs_6_a_0 critical_failure.res.inst_2_a_0) (__node_trans_pump_failure_0 critical_failure.usr.pump_defect_2_a_1 critical_failure.res.abs_7_a_1 critical_failure.res.inst_1_a_1 critical_failure.usr.pump_defect_2_a_0 critical_failure.res.abs_7_a_0 critical_failure.res.inst_1_a_0) (__node_trans_pump_failure_0 critical_failure.usr.pump_defect_3_a_1 critical_failure.res.abs_8_a_1 critical_failure.res.inst_0_a_1 critical_failure.usr.pump_defect_3_a_0 critical_failure.res.abs_8_a_0 critical_failure.res.inst_0_a_0) (not critical_failure.res.init_flag_a_1))) +(define-fun __node_init_ControlMode_0 ((ControlMode.usr.steam_boiler_waiting_a_0 Bool) (ControlMode.usr.physical_units_ready_a_0 Bool) (ControlMode.usr.stop_request_a_0 Bool) (ControlMode.usr.steam_a_0 Int) (ControlMode.usr.level_defect_a_0 Int) (ControlMode.usr.steam_defect_a_0 Int) (ControlMode.usr.pump_defect_0_a_0 Int) (ControlMode.usr.pump_defect_1_a_0 Int) (ControlMode.usr.pump_defect_2_a_0 Int) (ControlMode.usr.pump_defect_3_a_0 Int) (ControlMode.usr.pump_control_defect_0_a_0 Int) (ControlMode.usr.pump_control_defect_1_a_0 Int) (ControlMode.usr.pump_control_defect_2_a_0 Int) (ControlMode.usr.pump_control_defect_3_a_0 Int) (ControlMode.usr.q_a_0 Int) (ControlMode.usr.pump_state_0_a_0 Int) (ControlMode.usr.pump_state_1_a_0 Int) (ControlMode.usr.pump_state_2_a_0 Int) (ControlMode.usr.pump_state_3_a_0 Int) (ControlMode.res.nondet_0 Int) (ControlMode.usr.op_mode_a_0 Int) (ControlMode.res.init_flag_a_0 Bool) (ControlMode.res.abs_0_a_0 Int) (ControlMode.res.abs_1_a_0 Bool) (ControlMode.res.abs_2_a_0 Bool) (ControlMode.res.abs_3_a_0 Bool) (ControlMode.res.inst_46_a_0 Bool) (ControlMode.res.inst_45_a_0 Bool) (ControlMode.res.inst_44_a_0 Bool) (ControlMode.res.inst_43_a_0 Bool) (ControlMode.res.inst_42_a_0 Bool) (ControlMode.res.inst_41_a_0 Bool) (ControlMode.res.inst_40_a_0 Bool) (ControlMode.res.inst_39_a_0 Bool) (ControlMode.res.inst_38_a_0 Bool) (ControlMode.res.inst_37_a_0 Bool) (ControlMode.res.inst_36_a_0 Bool) (ControlMode.res.inst_35_a_0 Bool) (ControlMode.res.inst_34_a_0 Bool) (ControlMode.res.inst_33_a_0 Bool) (ControlMode.res.inst_32_a_0 Bool) (ControlMode.res.inst_31_a_0 Bool) (ControlMode.res.inst_30_a_0 Bool) (ControlMode.res.inst_29_a_0 Bool) (ControlMode.res.inst_28_a_0 Bool) (ControlMode.res.inst_27_a_0 Bool) (ControlMode.res.inst_26_a_0 Bool) (ControlMode.res.inst_25_a_0 Bool) (ControlMode.res.inst_24_a_0 Bool) (ControlMode.res.inst_23_a_0 Bool) (ControlMode.res.inst_22_a_0 Bool) (ControlMode.res.inst_21_a_0 Bool) (ControlMode.res.inst_20_a_0 Bool) (ControlMode.res.inst_19_a_0 Bool) (ControlMode.res.inst_18_a_0 Bool) (ControlMode.res.inst_17_a_0 Bool) (ControlMode.res.inst_16_a_0 Bool) (ControlMode.res.inst_15_a_0 Bool) (ControlMode.res.inst_14_a_0 Bool) (ControlMode.res.inst_13_a_0 Bool) (ControlMode.res.inst_12_a_0 Bool) (ControlMode.res.inst_11_a_0 Bool) (ControlMode.res.inst_10_a_0 Bool) (ControlMode.res.inst_9_a_0 Bool) (ControlMode.res.inst_8_a_0 Bool) (ControlMode.res.inst_7_a_0 Bool) (ControlMode.res.inst_6_a_0 Bool) (ControlMode.res.inst_5_a_0 Bool) (ControlMode.res.inst_4_a_0 Bool) (ControlMode.res.inst_3_a_0 Bool) (ControlMode.res.inst_2_a_0 Bool) (ControlMode.res.inst_1_a_0 Bool) (ControlMode.res.inst_0_a_0 Bool)) Bool + (and (= ControlMode.usr.op_mode_a_0 1) (= ControlMode.res.abs_0_a_0 (let ((X1 ControlMode.res.nondet_0)) X1)) (__node_init_critical_failure_0 ControlMode.res.abs_0_a_0 ControlMode.usr.steam_a_0 ControlMode.usr.level_defect_a_0 ControlMode.usr.steam_defect_a_0 ControlMode.usr.pump_defect_0_a_0 ControlMode.usr.pump_defect_1_a_0 ControlMode.usr.pump_defect_2_a_0 ControlMode.usr.pump_defect_3_a_0 ControlMode.usr.q_a_0 ControlMode.usr.pump_state_0_a_0 ControlMode.usr.pump_state_1_a_0 ControlMode.usr.pump_state_2_a_0 ControlMode.usr.pump_state_3_a_0 ControlMode.res.abs_1_a_0 ControlMode.res.inst_46_a_0 ControlMode.res.inst_45_a_0 ControlMode.res.inst_44_a_0 ControlMode.res.inst_43_a_0 ControlMode.res.inst_42_a_0 ControlMode.res.inst_41_a_0 ControlMode.res.inst_40_a_0 ControlMode.res.inst_39_a_0 ControlMode.res.inst_38_a_0 ControlMode.res.inst_37_a_0 ControlMode.res.inst_36_a_0 ControlMode.res.inst_35_a_0 ControlMode.res.inst_34_a_0 ControlMode.res.inst_33_a_0 ControlMode.res.inst_32_a_0 ControlMode.res.inst_31_a_0 ControlMode.res.inst_30_a_0 ControlMode.res.inst_29_a_0 ControlMode.res.inst_28_a_0 ControlMode.res.inst_27_a_0 ControlMode.res.inst_26_a_0) (__node_init_level_failure_0 ControlMode.usr.level_defect_a_0 ControlMode.res.abs_2_a_0 ControlMode.res.inst_25_a_0) (__node_init_failure_0 ControlMode.usr.level_defect_a_0 ControlMode.usr.steam_defect_a_0 ControlMode.usr.pump_defect_0_a_0 ControlMode.usr.pump_defect_1_a_0 ControlMode.usr.pump_defect_2_a_0 ControlMode.usr.pump_defect_3_a_0 ControlMode.usr.pump_control_defect_0_a_0 ControlMode.usr.pump_control_defect_1_a_0 ControlMode.usr.pump_control_defect_2_a_0 ControlMode.usr.pump_control_defect_3_a_0 ControlMode.res.abs_3_a_0 ControlMode.res.inst_24_a_0 ControlMode.res.inst_23_a_0 ControlMode.res.inst_22_a_0 ControlMode.res.inst_21_a_0 ControlMode.res.inst_20_a_0 ControlMode.res.inst_19_a_0 ControlMode.res.inst_18_a_0 ControlMode.res.inst_17_a_0 ControlMode.res.inst_16_a_0 ControlMode.res.inst_15_a_0 ControlMode.res.inst_14_a_0 ControlMode.res.inst_13_a_0 ControlMode.res.inst_12_a_0 ControlMode.res.inst_11_a_0 ControlMode.res.inst_10_a_0 ControlMode.res.inst_9_a_0 ControlMode.res.inst_8_a_0 ControlMode.res.inst_7_a_0 ControlMode.res.inst_6_a_0 ControlMode.res.inst_5_a_0 ControlMode.res.inst_4_a_0 ControlMode.res.inst_3_a_0 ControlMode.res.inst_2_a_0 ControlMode.res.inst_1_a_0 ControlMode.res.inst_0_a_0) (<= 1 ControlMode.usr.op_mode_a_0 6) ControlMode.res.init_flag_a_0)) +(define-fun __node_trans_ControlMode_0 ((ControlMode.usr.steam_boiler_waiting_a_1 Bool) (ControlMode.usr.physical_units_ready_a_1 Bool) (ControlMode.usr.stop_request_a_1 Bool) (ControlMode.usr.steam_a_1 Int) (ControlMode.usr.level_defect_a_1 Int) (ControlMode.usr.steam_defect_a_1 Int) (ControlMode.usr.pump_defect_0_a_1 Int) (ControlMode.usr.pump_defect_1_a_1 Int) (ControlMode.usr.pump_defect_2_a_1 Int) (ControlMode.usr.pump_defect_3_a_1 Int) (ControlMode.usr.pump_control_defect_0_a_1 Int) (ControlMode.usr.pump_control_defect_1_a_1 Int) (ControlMode.usr.pump_control_defect_2_a_1 Int) (ControlMode.usr.pump_control_defect_3_a_1 Int) (ControlMode.usr.q_a_1 Int) (ControlMode.usr.pump_state_0_a_1 Int) (ControlMode.usr.pump_state_1_a_1 Int) (ControlMode.usr.pump_state_2_a_1 Int) (ControlMode.usr.pump_state_3_a_1 Int) (ControlMode.res.nondet_0 Int) (ControlMode.usr.op_mode_a_1 Int) (ControlMode.res.init_flag_a_1 Bool) (ControlMode.res.abs_0_a_1 Int) (ControlMode.res.abs_1_a_1 Bool) (ControlMode.res.abs_2_a_1 Bool) (ControlMode.res.abs_3_a_1 Bool) (ControlMode.res.inst_46_a_1 Bool) (ControlMode.res.inst_45_a_1 Bool) (ControlMode.res.inst_44_a_1 Bool) (ControlMode.res.inst_43_a_1 Bool) (ControlMode.res.inst_42_a_1 Bool) (ControlMode.res.inst_41_a_1 Bool) (ControlMode.res.inst_40_a_1 Bool) (ControlMode.res.inst_39_a_1 Bool) (ControlMode.res.inst_38_a_1 Bool) (ControlMode.res.inst_37_a_1 Bool) (ControlMode.res.inst_36_a_1 Bool) (ControlMode.res.inst_35_a_1 Bool) (ControlMode.res.inst_34_a_1 Bool) (ControlMode.res.inst_33_a_1 Bool) (ControlMode.res.inst_32_a_1 Bool) (ControlMode.res.inst_31_a_1 Bool) (ControlMode.res.inst_30_a_1 Bool) (ControlMode.res.inst_29_a_1 Bool) (ControlMode.res.inst_28_a_1 Bool) (ControlMode.res.inst_27_a_1 Bool) (ControlMode.res.inst_26_a_1 Bool) (ControlMode.res.inst_25_a_1 Bool) (ControlMode.res.inst_24_a_1 Bool) (ControlMode.res.inst_23_a_1 Bool) (ControlMode.res.inst_22_a_1 Bool) (ControlMode.res.inst_21_a_1 Bool) (ControlMode.res.inst_20_a_1 Bool) (ControlMode.res.inst_19_a_1 Bool) (ControlMode.res.inst_18_a_1 Bool) (ControlMode.res.inst_17_a_1 Bool) (ControlMode.res.inst_16_a_1 Bool) (ControlMode.res.inst_15_a_1 Bool) (ControlMode.res.inst_14_a_1 Bool) (ControlMode.res.inst_13_a_1 Bool) (ControlMode.res.inst_12_a_1 Bool) (ControlMode.res.inst_11_a_1 Bool) (ControlMode.res.inst_10_a_1 Bool) (ControlMode.res.inst_9_a_1 Bool) (ControlMode.res.inst_8_a_1 Bool) (ControlMode.res.inst_7_a_1 Bool) (ControlMode.res.inst_6_a_1 Bool) (ControlMode.res.inst_5_a_1 Bool) (ControlMode.res.inst_4_a_1 Bool) (ControlMode.res.inst_3_a_1 Bool) (ControlMode.res.inst_2_a_1 Bool) (ControlMode.res.inst_1_a_1 Bool) (ControlMode.res.inst_0_a_1 Bool) (ControlMode.usr.steam_boiler_waiting_a_0 Bool) (ControlMode.usr.physical_units_ready_a_0 Bool) (ControlMode.usr.stop_request_a_0 Bool) (ControlMode.usr.steam_a_0 Int) (ControlMode.usr.level_defect_a_0 Int) (ControlMode.usr.steam_defect_a_0 Int) (ControlMode.usr.pump_defect_0_a_0 Int) (ControlMode.usr.pump_defect_1_a_0 Int) (ControlMode.usr.pump_defect_2_a_0 Int) (ControlMode.usr.pump_defect_3_a_0 Int) (ControlMode.usr.pump_control_defect_0_a_0 Int) (ControlMode.usr.pump_control_defect_1_a_0 Int) (ControlMode.usr.pump_control_defect_2_a_0 Int) (ControlMode.usr.pump_control_defect_3_a_0 Int) (ControlMode.usr.q_a_0 Int) (ControlMode.usr.pump_state_0_a_0 Int) (ControlMode.usr.pump_state_1_a_0 Int) (ControlMode.usr.pump_state_2_a_0 Int) (ControlMode.usr.pump_state_3_a_0 Int) (ControlMode.usr.op_mode_a_0 Int) (ControlMode.res.init_flag_a_0 Bool) (ControlMode.res.abs_0_a_0 Int) (ControlMode.res.abs_1_a_0 Bool) (ControlMode.res.abs_2_a_0 Bool) (ControlMode.res.abs_3_a_0 Bool) (ControlMode.res.inst_46_a_0 Bool) (ControlMode.res.inst_45_a_0 Bool) (ControlMode.res.inst_44_a_0 Bool) (ControlMode.res.inst_43_a_0 Bool) (ControlMode.res.inst_42_a_0 Bool) (ControlMode.res.inst_41_a_0 Bool) (ControlMode.res.inst_40_a_0 Bool) (ControlMode.res.inst_39_a_0 Bool) (ControlMode.res.inst_38_a_0 Bool) (ControlMode.res.inst_37_a_0 Bool) (ControlMode.res.inst_36_a_0 Bool) (ControlMode.res.inst_35_a_0 Bool) (ControlMode.res.inst_34_a_0 Bool) (ControlMode.res.inst_33_a_0 Bool) (ControlMode.res.inst_32_a_0 Bool) (ControlMode.res.inst_31_a_0 Bool) (ControlMode.res.inst_30_a_0 Bool) (ControlMode.res.inst_29_a_0 Bool) (ControlMode.res.inst_28_a_0 Bool) (ControlMode.res.inst_27_a_0 Bool) (ControlMode.res.inst_26_a_0 Bool) (ControlMode.res.inst_25_a_0 Bool) (ControlMode.res.inst_24_a_0 Bool) (ControlMode.res.inst_23_a_0 Bool) (ControlMode.res.inst_22_a_0 Bool) (ControlMode.res.inst_21_a_0 Bool) (ControlMode.res.inst_20_a_0 Bool) (ControlMode.res.inst_19_a_0 Bool) (ControlMode.res.inst_18_a_0 Bool) (ControlMode.res.inst_17_a_0 Bool) (ControlMode.res.inst_16_a_0 Bool) (ControlMode.res.inst_15_a_0 Bool) (ControlMode.res.inst_14_a_0 Bool) (ControlMode.res.inst_13_a_0 Bool) (ControlMode.res.inst_12_a_0 Bool) (ControlMode.res.inst_11_a_0 Bool) (ControlMode.res.inst_10_a_0 Bool) (ControlMode.res.inst_9_a_0 Bool) (ControlMode.res.inst_8_a_0 Bool) (ControlMode.res.inst_7_a_0 Bool) (ControlMode.res.inst_6_a_0 Bool) (ControlMode.res.inst_5_a_0 Bool) (ControlMode.res.inst_4_a_0 Bool) (ControlMode.res.inst_3_a_0 Bool) (ControlMode.res.inst_2_a_0 Bool) (ControlMode.res.inst_1_a_0 Bool) (ControlMode.res.inst_0_a_0 Bool)) Bool + (and (= ControlMode.res.abs_0_a_1 ControlMode.usr.op_mode_a_0) (= ControlMode.usr.op_mode_a_1 (ite (or (or ControlMode.res.abs_1_a_1 ControlMode.usr.stop_request_a_1) (= ControlMode.usr.op_mode_a_0 6)) 6 (ite (= ControlMode.usr.op_mode_a_0 1) (ite ControlMode.usr.steam_boiler_waiting_a_1 2 1) (ite (and (= ControlMode.usr.op_mode_a_0 2) (not ControlMode.usr.physical_units_ready_a_1)) 2 (ite ControlMode.res.abs_2_a_1 5 (ite ControlMode.res.abs_3_a_1 4 3)))))) (__node_trans_critical_failure_0 ControlMode.res.abs_0_a_1 ControlMode.usr.steam_a_1 ControlMode.usr.level_defect_a_1 ControlMode.usr.steam_defect_a_1 ControlMode.usr.pump_defect_0_a_1 ControlMode.usr.pump_defect_1_a_1 ControlMode.usr.pump_defect_2_a_1 ControlMode.usr.pump_defect_3_a_1 ControlMode.usr.q_a_1 ControlMode.usr.pump_state_0_a_1 ControlMode.usr.pump_state_1_a_1 ControlMode.usr.pump_state_2_a_1 ControlMode.usr.pump_state_3_a_1 ControlMode.res.abs_1_a_1 ControlMode.res.inst_46_a_1 ControlMode.res.inst_45_a_1 ControlMode.res.inst_44_a_1 ControlMode.res.inst_43_a_1 ControlMode.res.inst_42_a_1 ControlMode.res.inst_41_a_1 ControlMode.res.inst_40_a_1 ControlMode.res.inst_39_a_1 ControlMode.res.inst_38_a_1 ControlMode.res.inst_37_a_1 ControlMode.res.inst_36_a_1 ControlMode.res.inst_35_a_1 ControlMode.res.inst_34_a_1 ControlMode.res.inst_33_a_1 ControlMode.res.inst_32_a_1 ControlMode.res.inst_31_a_1 ControlMode.res.inst_30_a_1 ControlMode.res.inst_29_a_1 ControlMode.res.inst_28_a_1 ControlMode.res.inst_27_a_1 ControlMode.res.inst_26_a_1 ControlMode.res.abs_0_a_0 ControlMode.usr.steam_a_0 ControlMode.usr.level_defect_a_0 ControlMode.usr.steam_defect_a_0 ControlMode.usr.pump_defect_0_a_0 ControlMode.usr.pump_defect_1_a_0 ControlMode.usr.pump_defect_2_a_0 ControlMode.usr.pump_defect_3_a_0 ControlMode.usr.q_a_0 ControlMode.usr.pump_state_0_a_0 ControlMode.usr.pump_state_1_a_0 ControlMode.usr.pump_state_2_a_0 ControlMode.usr.pump_state_3_a_0 ControlMode.res.abs_1_a_0 ControlMode.res.inst_46_a_0 ControlMode.res.inst_45_a_0 ControlMode.res.inst_44_a_0 ControlMode.res.inst_43_a_0 ControlMode.res.inst_42_a_0 ControlMode.res.inst_41_a_0 ControlMode.res.inst_40_a_0 ControlMode.res.inst_39_a_0 ControlMode.res.inst_38_a_0 ControlMode.res.inst_37_a_0 ControlMode.res.inst_36_a_0 ControlMode.res.inst_35_a_0 ControlMode.res.inst_34_a_0 ControlMode.res.inst_33_a_0 ControlMode.res.inst_32_a_0 ControlMode.res.inst_31_a_0 ControlMode.res.inst_30_a_0 ControlMode.res.inst_29_a_0 ControlMode.res.inst_28_a_0 ControlMode.res.inst_27_a_0 ControlMode.res.inst_26_a_0) (__node_trans_level_failure_0 ControlMode.usr.level_defect_a_1 ControlMode.res.abs_2_a_1 ControlMode.res.inst_25_a_1 ControlMode.usr.level_defect_a_0 ControlMode.res.abs_2_a_0 ControlMode.res.inst_25_a_0) (__node_trans_failure_0 ControlMode.usr.level_defect_a_1 ControlMode.usr.steam_defect_a_1 ControlMode.usr.pump_defect_0_a_1 ControlMode.usr.pump_defect_1_a_1 ControlMode.usr.pump_defect_2_a_1 ControlMode.usr.pump_defect_3_a_1 ControlMode.usr.pump_control_defect_0_a_1 ControlMode.usr.pump_control_defect_1_a_1 ControlMode.usr.pump_control_defect_2_a_1 ControlMode.usr.pump_control_defect_3_a_1 ControlMode.res.abs_3_a_1 ControlMode.res.inst_24_a_1 ControlMode.res.inst_23_a_1 ControlMode.res.inst_22_a_1 ControlMode.res.inst_21_a_1 ControlMode.res.inst_20_a_1 ControlMode.res.inst_19_a_1 ControlMode.res.inst_18_a_1 ControlMode.res.inst_17_a_1 ControlMode.res.inst_16_a_1 ControlMode.res.inst_15_a_1 ControlMode.res.inst_14_a_1 ControlMode.res.inst_13_a_1 ControlMode.res.inst_12_a_1 ControlMode.res.inst_11_a_1 ControlMode.res.inst_10_a_1 ControlMode.res.inst_9_a_1 ControlMode.res.inst_8_a_1 ControlMode.res.inst_7_a_1 ControlMode.res.inst_6_a_1 ControlMode.res.inst_5_a_1 ControlMode.res.inst_4_a_1 ControlMode.res.inst_3_a_1 ControlMode.res.inst_2_a_1 ControlMode.res.inst_1_a_1 ControlMode.res.inst_0_a_1 ControlMode.usr.level_defect_a_0 ControlMode.usr.steam_defect_a_0 ControlMode.usr.pump_defect_0_a_0 ControlMode.usr.pump_defect_1_a_0 ControlMode.usr.pump_defect_2_a_0 ControlMode.usr.pump_defect_3_a_0 ControlMode.usr.pump_control_defect_0_a_0 ControlMode.usr.pump_control_defect_1_a_0 ControlMode.usr.pump_control_defect_2_a_0 ControlMode.usr.pump_control_defect_3_a_0 ControlMode.res.abs_3_a_0 ControlMode.res.inst_24_a_0 ControlMode.res.inst_23_a_0 ControlMode.res.inst_22_a_0 ControlMode.res.inst_21_a_0 ControlMode.res.inst_20_a_0 ControlMode.res.inst_19_a_0 ControlMode.res.inst_18_a_0 ControlMode.res.inst_17_a_0 ControlMode.res.inst_16_a_0 ControlMode.res.inst_15_a_0 ControlMode.res.inst_14_a_0 ControlMode.res.inst_13_a_0 ControlMode.res.inst_12_a_0 ControlMode.res.inst_11_a_0 ControlMode.res.inst_10_a_0 ControlMode.res.inst_9_a_0 ControlMode.res.inst_8_a_0 ControlMode.res.inst_7_a_0 ControlMode.res.inst_6_a_0 ControlMode.res.inst_5_a_0 ControlMode.res.inst_4_a_0 ControlMode.res.inst_3_a_0 ControlMode.res.inst_2_a_0 ControlMode.res.inst_1_a_0 ControlMode.res.inst_0_a_0) (<= 1 ControlMode.usr.op_mode_a_1 6) (not ControlMode.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.steam_boiler_waiting_a_0 Bool) (top.usr.physical_units_ready_a_0 Bool) (top.usr.stop_request_a_0 Bool) (top.usr.steam_a_0 Int) (top.usr.level_defect_a_0 Int) (top.usr.steam_defect_a_0 Int) (top.usr.pump_defect_0_a_0 Int) (top.usr.pump_defect_1_a_0 Int) (top.usr.pump_defect_2_a_0 Int) (top.usr.pump_defect_3_a_0 Int) (top.usr.pump_control_defect_0_a_0 Int) (top.usr.pump_control_defect_1_a_0 Int) (top.usr.pump_control_defect_2_a_0 Int) (top.usr.pump_control_defect_3_a_0 Int) (top.usr.q_a_0 Int) (top.usr.pump_state_0_a_0 Int) (top.usr.pump_state_1_a_0 Int) (top.usr.pump_state_2_a_0 Int) (top.usr.pump_state_3_a_0 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.op_mode_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Bool) (top.res.inst_52_a_0 Bool) (top.res.inst_51_a_0 Int) (top.res.inst_50_a_0 Bool) (top.res.inst_49_a_0 Bool) (top.res.inst_48_a_0 Bool) (top.res.inst_47_a_0 Bool) (top.res.inst_46_a_0 Bool) (top.res.inst_45_a_0 Bool) (top.res.inst_44_a_0 Bool) (top.res.inst_43_a_0 Bool) (top.res.inst_42_a_0 Bool) (top.res.inst_41_a_0 Bool) (top.res.inst_40_a_0 Bool) (top.res.inst_39_a_0 Bool) (top.res.inst_38_a_0 Bool) (top.res.inst_37_a_0 Bool) (top.res.inst_36_a_0 Bool) (top.res.inst_35_a_0 Bool) (top.res.inst_34_a_0 Bool) (top.res.inst_33_a_0 Bool) (top.res.inst_32_a_0 Bool) (top.res.inst_31_a_0 Bool) (top.res.inst_30_a_0 Bool) (top.res.inst_29_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.op_mode_a_0 top.res.abs_0_a_0) (let ((X1 (=> (= top.impl.usr.op_mode_a_0 3) (not top.usr.stop_request_a_0)))) (let ((X2 true)) (and (= top.usr.OK_a_0 (and X2 X1)) (__node_init_ControlMode_0 top.usr.steam_boiler_waiting_a_0 top.usr.physical_units_ready_a_0 top.usr.stop_request_a_0 top.usr.steam_a_0 top.usr.level_defect_a_0 top.usr.steam_defect_a_0 top.usr.pump_defect_0_a_0 top.usr.pump_defect_1_a_0 top.usr.pump_defect_2_a_0 top.usr.pump_defect_3_a_0 top.usr.pump_control_defect_0_a_0 top.usr.pump_control_defect_1_a_0 top.usr.pump_control_defect_2_a_0 top.usr.pump_control_defect_3_a_0 top.usr.q_a_0 top.usr.pump_state_0_a_0 top.usr.pump_state_1_a_0 top.usr.pump_state_2_a_0 top.usr.pump_state_3_a_0 top.res.nondet_0 top.res.abs_0_a_0 top.res.inst_52_a_0 top.res.inst_51_a_0 top.res.inst_50_a_0 top.res.inst_49_a_0 top.res.inst_48_a_0 top.res.inst_47_a_0 top.res.inst_46_a_0 top.res.inst_45_a_0 top.res.inst_44_a_0 top.res.inst_43_a_0 top.res.inst_42_a_0 top.res.inst_41_a_0 top.res.inst_40_a_0 top.res.inst_39_a_0 top.res.inst_38_a_0 top.res.inst_37_a_0 top.res.inst_36_a_0 top.res.inst_35_a_0 top.res.inst_34_a_0 top.res.inst_33_a_0 top.res.inst_32_a_0 top.res.inst_31_a_0 top.res.inst_30_a_0 top.res.inst_29_a_0 top.res.inst_28_a_0 top.res.inst_27_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_init_dangerous_level_0 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) (<= 1 top.impl.usr.op_mode_a_0 6) (<= 1 top.res.abs_0_a_0 6) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.steam_boiler_waiting_a_1 Bool) (top.usr.physical_units_ready_a_1 Bool) (top.usr.stop_request_a_1 Bool) (top.usr.steam_a_1 Int) (top.usr.level_defect_a_1 Int) (top.usr.steam_defect_a_1 Int) (top.usr.pump_defect_0_a_1 Int) (top.usr.pump_defect_1_a_1 Int) (top.usr.pump_defect_2_a_1 Int) (top.usr.pump_defect_3_a_1 Int) (top.usr.pump_control_defect_0_a_1 Int) (top.usr.pump_control_defect_1_a_1 Int) (top.usr.pump_control_defect_2_a_1 Int) (top.usr.pump_control_defect_3_a_1 Int) (top.usr.q_a_1 Int) (top.usr.pump_state_0_a_1 Int) (top.usr.pump_state_1_a_1 Int) (top.usr.pump_state_2_a_1 Int) (top.usr.pump_state_3_a_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.op_mode_a_1 Int) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Bool) (top.res.inst_52_a_1 Bool) (top.res.inst_51_a_1 Int) (top.res.inst_50_a_1 Bool) (top.res.inst_49_a_1 Bool) (top.res.inst_48_a_1 Bool) (top.res.inst_47_a_1 Bool) (top.res.inst_46_a_1 Bool) (top.res.inst_45_a_1 Bool) (top.res.inst_44_a_1 Bool) (top.res.inst_43_a_1 Bool) (top.res.inst_42_a_1 Bool) (top.res.inst_41_a_1 Bool) (top.res.inst_40_a_1 Bool) (top.res.inst_39_a_1 Bool) (top.res.inst_38_a_1 Bool) (top.res.inst_37_a_1 Bool) (top.res.inst_36_a_1 Bool) (top.res.inst_35_a_1 Bool) (top.res.inst_34_a_1 Bool) (top.res.inst_33_a_1 Bool) (top.res.inst_32_a_1 Bool) (top.res.inst_31_a_1 Bool) (top.res.inst_30_a_1 Bool) (top.res.inst_29_a_1 Bool) (top.res.inst_28_a_1 Bool) (top.res.inst_27_a_1 Bool) (top.res.inst_26_a_1 Bool) (top.res.inst_25_a_1 Bool) (top.res.inst_24_a_1 Bool) (top.res.inst_23_a_1 Bool) (top.res.inst_22_a_1 Bool) (top.res.inst_21_a_1 Bool) (top.res.inst_20_a_1 Bool) (top.res.inst_19_a_1 Bool) (top.res.inst_18_a_1 Bool) (top.res.inst_17_a_1 Bool) (top.res.inst_16_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Bool) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Bool) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Bool) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.steam_boiler_waiting_a_0 Bool) (top.usr.physical_units_ready_a_0 Bool) (top.usr.stop_request_a_0 Bool) (top.usr.steam_a_0 Int) (top.usr.level_defect_a_0 Int) (top.usr.steam_defect_a_0 Int) (top.usr.pump_defect_0_a_0 Int) (top.usr.pump_defect_1_a_0 Int) (top.usr.pump_defect_2_a_0 Int) (top.usr.pump_defect_3_a_0 Int) (top.usr.pump_control_defect_0_a_0 Int) (top.usr.pump_control_defect_1_a_0 Int) (top.usr.pump_control_defect_2_a_0 Int) (top.usr.pump_control_defect_3_a_0 Int) (top.usr.q_a_0 Int) (top.usr.pump_state_0_a_0 Int) (top.usr.pump_state_1_a_0 Int) (top.usr.pump_state_2_a_0 Int) (top.usr.pump_state_3_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.op_mode_a_0 Int) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Bool) (top.res.inst_52_a_0 Bool) (top.res.inst_51_a_0 Int) (top.res.inst_50_a_0 Bool) (top.res.inst_49_a_0 Bool) (top.res.inst_48_a_0 Bool) (top.res.inst_47_a_0 Bool) (top.res.inst_46_a_0 Bool) (top.res.inst_45_a_0 Bool) (top.res.inst_44_a_0 Bool) (top.res.inst_43_a_0 Bool) (top.res.inst_42_a_0 Bool) (top.res.inst_41_a_0 Bool) (top.res.inst_40_a_0 Bool) (top.res.inst_39_a_0 Bool) (top.res.inst_38_a_0 Bool) (top.res.inst_37_a_0 Bool) (top.res.inst_36_a_0 Bool) (top.res.inst_35_a_0 Bool) (top.res.inst_34_a_0 Bool) (top.res.inst_33_a_0 Bool) (top.res.inst_32_a_0 Bool) (top.res.inst_31_a_0 Bool) (top.res.inst_30_a_0 Bool) (top.res.inst_29_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.op_mode_a_1 top.res.abs_0_a_1) (let ((X1 (=> (= top.impl.usr.op_mode_a_1 3) (not top.usr.stop_request_a_1)))) (let ((X2 (=> (and (= top.impl.usr.op_mode_a_1 3) (= top.impl.usr.op_mode_a_0 3)) (not top.res.abs_1_a_1)))) (and (= top.usr.OK_a_1 (and X2 X1)) (__node_trans_ControlMode_0 top.usr.steam_boiler_waiting_a_1 top.usr.physical_units_ready_a_1 top.usr.stop_request_a_1 top.usr.steam_a_1 top.usr.level_defect_a_1 top.usr.steam_defect_a_1 top.usr.pump_defect_0_a_1 top.usr.pump_defect_1_a_1 top.usr.pump_defect_2_a_1 top.usr.pump_defect_3_a_1 top.usr.pump_control_defect_0_a_1 top.usr.pump_control_defect_1_a_1 top.usr.pump_control_defect_2_a_1 top.usr.pump_control_defect_3_a_1 top.usr.q_a_1 top.usr.pump_state_0_a_1 top.usr.pump_state_1_a_1 top.usr.pump_state_2_a_1 top.usr.pump_state_3_a_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.inst_52_a_1 top.res.inst_51_a_1 top.res.inst_50_a_1 top.res.inst_49_a_1 top.res.inst_48_a_1 top.res.inst_47_a_1 top.res.inst_46_a_1 top.res.inst_45_a_1 top.res.inst_44_a_1 top.res.inst_43_a_1 top.res.inst_42_a_1 top.res.inst_41_a_1 top.res.inst_40_a_1 top.res.inst_39_a_1 top.res.inst_38_a_1 top.res.inst_37_a_1 top.res.inst_36_a_1 top.res.inst_35_a_1 top.res.inst_34_a_1 top.res.inst_33_a_1 top.res.inst_32_a_1 top.res.inst_31_a_1 top.res.inst_30_a_1 top.res.inst_29_a_1 top.res.inst_28_a_1 top.res.inst_27_a_1 top.res.inst_26_a_1 top.res.inst_25_a_1 top.res.inst_24_a_1 top.res.inst_23_a_1 top.res.inst_22_a_1 top.res.inst_21_a_1 top.res.inst_20_a_1 top.res.inst_19_a_1 top.res.inst_18_a_1 top.res.inst_17_a_1 top.res.inst_16_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.usr.steam_boiler_waiting_a_0 top.usr.physical_units_ready_a_0 top.usr.stop_request_a_0 top.usr.steam_a_0 top.usr.level_defect_a_0 top.usr.steam_defect_a_0 top.usr.pump_defect_0_a_0 top.usr.pump_defect_1_a_0 top.usr.pump_defect_2_a_0 top.usr.pump_defect_3_a_0 top.usr.pump_control_defect_0_a_0 top.usr.pump_control_defect_1_a_0 top.usr.pump_control_defect_2_a_0 top.usr.pump_control_defect_3_a_0 top.usr.q_a_0 top.usr.pump_state_0_a_0 top.usr.pump_state_1_a_0 top.usr.pump_state_2_a_0 top.usr.pump_state_3_a_0 top.res.abs_0_a_0 top.res.inst_52_a_0 top.res.inst_51_a_0 top.res.inst_50_a_0 top.res.inst_49_a_0 top.res.inst_48_a_0 top.res.inst_47_a_0 top.res.inst_46_a_0 top.res.inst_45_a_0 top.res.inst_44_a_0 top.res.inst_43_a_0 top.res.inst_42_a_0 top.res.inst_41_a_0 top.res.inst_40_a_0 top.res.inst_39_a_0 top.res.inst_38_a_0 top.res.inst_37_a_0 top.res.inst_36_a_0 top.res.inst_35_a_0 top.res.inst_34_a_0 top.res.inst_33_a_0 top.res.inst_32_a_0 top.res.inst_31_a_0 top.res.inst_30_a_0 top.res.inst_29_a_0 top.res.inst_28_a_0 top.res.inst_27_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0) (__node_trans_dangerous_level_0 top.usr.q_a_1 top.res.abs_1_a_1 top.res.inst_0_a_1 top.usr.q_a_0 top.res.abs_1_a_0 top.res.inst_0_a_0) (<= 1 top.impl.usr.op_mode_a_1 6) (<= 1 top.res.abs_0_a_1 6) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.steam_boiler_waiting Bool) (top.usr.physical_units_ready Bool) (top.usr.stop_request Bool) (top.usr.steam Int) (top.usr.level_defect Int) (top.usr.steam_defect Int) (top.usr.pump_defect_0 Int) (top.usr.pump_defect_1 Int) (top.usr.pump_defect_2 Int) (top.usr.pump_defect_3 Int) (top.usr.pump_control_defect_0 Int) (top.usr.pump_control_defect_1 Int) (top.usr.pump_control_defect_2 Int) (top.usr.pump_control_defect_3 Int) (top.usr.q Int) (top.usr.pump_state_0 Int) (top.usr.pump_state_1 Int) (top.usr.pump_state_2 Int) (top.usr.pump_state_3 Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.op_mode Int) (top.res.abs_0 Int) (top.res.abs_1 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Int) (top.res.inst_50 Bool) (top.res.inst_49 Bool) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.steam_boiler_waiting Bool) (top.usr.physical_units_ready Bool) (top.usr.stop_request Bool) (top.usr.steam Int) (top.usr.level_defect Int) (top.usr.steam_defect Int) (top.usr.pump_defect_0 Int) (top.usr.pump_defect_1 Int) (top.usr.pump_defect_2 Int) (top.usr.pump_defect_3 Int) (top.usr.pump_control_defect_0 Int) (top.usr.pump_control_defect_1 Int) (top.usr.pump_control_defect_2 Int) (top.usr.pump_control_defect_3 Int) (top.usr.q Int) (top.usr.pump_state_0 Int) (top.usr.pump_state_1 Int) (top.usr.pump_state_2 Int) (top.usr.pump_state_3 Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.op_mode Int) (top.res.abs_0 Int) (top.res.abs_1 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Int) (top.res.inst_50 Bool) (top.res.inst_49 Bool) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.op_mode top.res.abs_0) (let ((X1 (=> (= top.impl.usr.op_mode 3) (not top.usr.stop_request)))) (let ((X2 true)) (and (= top.usr.OK (and X2 X1)) (__node_init_ControlMode_0 top.usr.steam_boiler_waiting top.usr.physical_units_ready top.usr.stop_request top.usr.steam top.usr.level_defect top.usr.steam_defect top.usr.pump_defect_0 top.usr.pump_defect_1 top.usr.pump_defect_2 top.usr.pump_defect_3 top.usr.pump_control_defect_0 top.usr.pump_control_defect_1 top.usr.pump_control_defect_2 top.usr.pump_control_defect_3 top.usr.q top.usr.pump_state_0 top.usr.pump_state_1 top.usr.pump_state_2 top.usr.pump_state_3 top.res.nondet_0 top.res.abs_0 top.res.inst_52 top.res.inst_51 top.res.inst_50 top.res.inst_49 top.res.inst_48 top.res.inst_47 top.res.inst_46 top.res.inst_45 top.res.inst_44 top.res.inst_43 top.res.inst_42 top.res.inst_41 top.res.inst_40 top.res.inst_39 top.res.inst_38 top.res.inst_37 top.res.inst_36 top.res.inst_35 top.res.inst_34 top.res.inst_33 top.res.inst_32 top.res.inst_31 top.res.inst_30 top.res.inst_29 top.res.inst_28 top.res.inst_27 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_init_dangerous_level_0 top.usr.q top.res.abs_1 top.res.inst_0) (<= 1 top.impl.usr.op_mode 6) (<= 1 top.res.abs_0 6) top.res.init_flag))))) +(define-fun trans ((top.usr.steam_boiler_waiting Bool) (top.usr.physical_units_ready Bool) (top.usr.stop_request Bool) (top.usr.steam Int) (top.usr.level_defect Int) (top.usr.steam_defect Int) (top.usr.pump_defect_0 Int) (top.usr.pump_defect_1 Int) (top.usr.pump_defect_2 Int) (top.usr.pump_defect_3 Int) (top.usr.pump_control_defect_0 Int) (top.usr.pump_control_defect_1 Int) (top.usr.pump_control_defect_2 Int) (top.usr.pump_control_defect_3 Int) (top.usr.q Int) (top.usr.pump_state_0 Int) (top.usr.pump_state_1 Int) (top.usr.pump_state_2 Int) (top.usr.pump_state_3 Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.op_mode Int) (top.res.abs_0 Int) (top.res.abs_1 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Int) (top.res.inst_50 Bool) (top.res.inst_49 Bool) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.steam_boiler_waiting! Bool) (top.usr.physical_units_ready! Bool) (top.usr.stop_request! Bool) (top.usr.steam! Int) (top.usr.level_defect! Int) (top.usr.steam_defect! Int) (top.usr.pump_defect_0! Int) (top.usr.pump_defect_1! Int) (top.usr.pump_defect_2! Int) (top.usr.pump_defect_3! Int) (top.usr.pump_control_defect_0! Int) (top.usr.pump_control_defect_1! Int) (top.usr.pump_control_defect_2! Int) (top.usr.pump_control_defect_3! Int) (top.usr.q! Int) (top.usr.pump_state_0! Int) (top.usr.pump_state_1! Int) (top.usr.pump_state_2! Int) (top.usr.pump_state_3! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.op_mode! Int) (top.res.abs_0! Int) (top.res.abs_1! Bool) (top.res.inst_52! Bool) (top.res.inst_51! Int) (top.res.inst_50! Bool) (top.res.inst_49! Bool) (top.res.inst_48! Bool) (top.res.inst_47! Bool) (top.res.inst_46! Bool) (top.res.inst_45! Bool) (top.res.inst_44! Bool) (top.res.inst_43! Bool) (top.res.inst_42! Bool) (top.res.inst_41! Bool) (top.res.inst_40! Bool) (top.res.inst_39! Bool) (top.res.inst_38! Bool) (top.res.inst_37! Bool) (top.res.inst_36! Bool) (top.res.inst_35! Bool) (top.res.inst_34! Bool) (top.res.inst_33! Bool) (top.res.inst_32! Bool) (top.res.inst_31! Bool) (top.res.inst_30! Bool) (top.res.inst_29! Bool) (top.res.inst_28! Bool) (top.res.inst_27! Bool) (top.res.inst_26! Bool) (top.res.inst_25! Bool) (top.res.inst_24! Bool) (top.res.inst_23! Bool) (top.res.inst_22! Bool) (top.res.inst_21! Bool) (top.res.inst_20! Bool) (top.res.inst_19! Bool) (top.res.inst_18! Bool) (top.res.inst_17! Bool) (top.res.inst_16! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Bool) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Bool) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Bool) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.impl.usr.op_mode! top.res.abs_0!) (let ((X1 (=> (= top.impl.usr.op_mode! 3) (not top.usr.stop_request!)))) (let ((X2 (=> (and (= top.impl.usr.op_mode! 3) (= top.impl.usr.op_mode 3)) (not top.res.abs_1!)))) (and (= top.usr.OK! (and X2 X1)) (__node_trans_ControlMode_0 top.usr.steam_boiler_waiting! top.usr.physical_units_ready! top.usr.stop_request! top.usr.steam! top.usr.level_defect! top.usr.steam_defect! top.usr.pump_defect_0! top.usr.pump_defect_1! top.usr.pump_defect_2! top.usr.pump_defect_3! top.usr.pump_control_defect_0! top.usr.pump_control_defect_1! top.usr.pump_control_defect_2! top.usr.pump_control_defect_3! top.usr.q! top.usr.pump_state_0! top.usr.pump_state_1! top.usr.pump_state_2! top.usr.pump_state_3! top.res.nondet_0 top.res.abs_0! top.res.inst_52! top.res.inst_51! top.res.inst_50! top.res.inst_49! top.res.inst_48! top.res.inst_47! top.res.inst_46! top.res.inst_45! top.res.inst_44! top.res.inst_43! top.res.inst_42! top.res.inst_41! top.res.inst_40! top.res.inst_39! top.res.inst_38! top.res.inst_37! top.res.inst_36! top.res.inst_35! top.res.inst_34! top.res.inst_33! top.res.inst_32! top.res.inst_31! top.res.inst_30! top.res.inst_29! top.res.inst_28! top.res.inst_27! top.res.inst_26! top.res.inst_25! top.res.inst_24! top.res.inst_23! top.res.inst_22! top.res.inst_21! top.res.inst_20! top.res.inst_19! top.res.inst_18! top.res.inst_17! top.res.inst_16! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.usr.steam_boiler_waiting top.usr.physical_units_ready top.usr.stop_request top.usr.steam top.usr.level_defect top.usr.steam_defect top.usr.pump_defect_0 top.usr.pump_defect_1 top.usr.pump_defect_2 top.usr.pump_defect_3 top.usr.pump_control_defect_0 top.usr.pump_control_defect_1 top.usr.pump_control_defect_2 top.usr.pump_control_defect_3 top.usr.q top.usr.pump_state_0 top.usr.pump_state_1 top.usr.pump_state_2 top.usr.pump_state_3 top.res.abs_0 top.res.inst_52 top.res.inst_51 top.res.inst_50 top.res.inst_49 top.res.inst_48 top.res.inst_47 top.res.inst_46 top.res.inst_45 top.res.inst_44 top.res.inst_43 top.res.inst_42 top.res.inst_41 top.res.inst_40 top.res.inst_39 top.res.inst_38 top.res.inst_37 top.res.inst_36 top.res.inst_35 top.res.inst_34 top.res.inst_33 top.res.inst_32 top.res.inst_31 top.res.inst_30 top.res.inst_29 top.res.inst_28 top.res.inst_27 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1) (__node_trans_dangerous_level_0 top.usr.q! top.res.abs_1! top.res.inst_0! top.usr.q top.res.abs_1 top.res.inst_0) (<= 1 top.impl.usr.op_mode! 6) (<= 1 top.res.abs_0! 6) (not top.res.init_flag!))))) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.steam_boiler_waiting Bool) (top.usr.physical_units_ready Bool) (top.usr.stop_request Bool) (top.usr.steam Int) (top.usr.level_defect Int) (top.usr.steam_defect Int) (top.usr.pump_defect_0 Int) (top.usr.pump_defect_1 Int) (top.usr.pump_defect_2 Int) (top.usr.pump_defect_3 Int) (top.usr.pump_control_defect_0 Int) (top.usr.pump_control_defect_1 Int) (top.usr.pump_control_defect_2 Int) (top.usr.pump_control_defect_3 Int) (top.usr.q Int) (top.usr.pump_state_0 Int) (top.usr.pump_state_1 Int) (top.usr.pump_state_2 Int) (top.usr.pump_state_3 Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.op_mode Int) (top.res.abs_0 Int) (top.res.abs_1 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Int) (top.res.inst_50 Bool) (top.res.inst_49 Bool) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/test.sl b/benchmarks/LIA/Lustre/test.sl index 764d113..a80d75b 100644 --- a/benchmarks/LIA/Lustre/test.sl +++ b/benchmarks/LIA/Lustre/test.sl @@ -1,24 +1,43 @@ (set-logic LIA) -(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) -(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) -(define-fun __node_init_implies_0 ((implies.usr.A_a_0 Bool) (implies.usr.B_a_0 Bool) (implies.usr.AimpliesB_a_0 Bool) (implies.res.init_flag_a_0 Bool)) Bool (and (= implies.usr.AimpliesB_a_0 (or (not implies.usr.A_a_0) implies.usr.B_a_0)) implies.res.init_flag_a_0)) -(define-fun __node_trans_implies_0 ((implies.usr.A_a_1 Bool) (implies.usr.B_a_1 Bool) (implies.usr.AimpliesB_a_1 Bool) (implies.res.init_flag_a_1 Bool) (implies.usr.A_a_0 Bool) (implies.usr.B_a_0 Bool) (implies.usr.AimpliesB_a_0 Bool) (implies.res.init_flag_a_0 Bool)) Bool (and (= implies.usr.AimpliesB_a_1 (or (not implies.usr.A_a_1) implies.usr.B_a_1)) (not implies.res.init_flag_a_1))) -(define-fun __node_init_edge_0 ((edge.usr.X_a_0 Bool) (edge.usr.Y_a_0 Bool) (edge.res.init_flag_a_0 Bool)) Bool (and (= edge.usr.Y_a_0 edge.usr.X_a_0) edge.res.init_flag_a_0)) -(define-fun __node_trans_edge_0 ((edge.usr.X_a_1 Bool) (edge.usr.Y_a_1 Bool) (edge.res.init_flag_a_1 Bool) (edge.usr.X_a_0 Bool) (edge.usr.Y_a_0 Bool) (edge.res.init_flag_a_0 Bool)) Bool (and (= edge.usr.Y_a_1 (and edge.usr.X_a_1 (not edge.usr.X_a_0))) (not edge.res.init_flag_a_1))) -(define-fun __node_init_after_0 ((after.usr.A_a_0 Bool) (after.usr.afterA_a_0 Bool) (after.res.init_flag_a_0 Bool) (after.res.abs_0_a_0 Bool)) Bool (and (= after.usr.afterA_a_0 false) (= after.res.abs_0_a_0 (or after.usr.A_a_0 after.usr.afterA_a_0)) after.res.init_flag_a_0)) -(define-fun __node_trans_after_0 ((after.usr.A_a_1 Bool) (after.usr.afterA_a_1 Bool) (after.res.init_flag_a_1 Bool) (after.res.abs_0_a_1 Bool) (after.usr.A_a_0 Bool) (after.usr.afterA_a_0 Bool) (after.res.init_flag_a_0 Bool) (after.res.abs_0_a_0 Bool)) Bool (and (= after.usr.afterA_a_1 after.res.abs_0_a_0) (= after.res.abs_0_a_1 (or after.usr.A_a_1 after.usr.afterA_a_1)) (not after.res.init_flag_a_1))) -(define-fun __node_init_once_since_0 ((once_since.usr.C_a_0 Bool) (once_since.usr.A_a_0 Bool) (once_since.res.nondet_0 Bool) (once_since.usr.onceCsinceA_a_0 Bool) (once_since.res.init_flag_a_0 Bool) (once_since.res.abs_0_a_0 Bool) (once_since.res.abs_1_a_0 Bool) (once_since.res.inst_1_a_0 Bool) (once_since.res.inst_0_a_0 Bool)) Bool (and (= once_since.usr.onceCsinceA_a_0 (ite once_since.usr.A_a_0 once_since.usr.C_a_0 (ite once_since.res.abs_1_a_0 (or once_since.usr.C_a_0 once_since.res.nondet_0) true))) (= once_since.res.abs_0_a_0 once_since.usr.A_a_0) (__node_init_after_0 once_since.res.abs_0_a_0 once_since.res.abs_1_a_0 once_since.res.inst_1_a_0 once_since.res.inst_0_a_0) once_since.res.init_flag_a_0)) -(define-fun __node_trans_once_since_0 ((once_since.usr.C_a_1 Bool) (once_since.usr.A_a_1 Bool) (once_since.res.nondet_0 Bool) (once_since.usr.onceCsinceA_a_1 Bool) (once_since.res.init_flag_a_1 Bool) (once_since.res.abs_0_a_1 Bool) (once_since.res.abs_1_a_1 Bool) (once_since.res.inst_1_a_1 Bool) (once_since.res.inst_0_a_1 Bool) (once_since.usr.C_a_0 Bool) (once_since.usr.A_a_0 Bool) (once_since.usr.onceCsinceA_a_0 Bool) (once_since.res.init_flag_a_0 Bool) (once_since.res.abs_0_a_0 Bool) (once_since.res.abs_1_a_0 Bool) (once_since.res.inst_1_a_0 Bool) (once_since.res.inst_0_a_0 Bool)) Bool (and (= once_since.usr.onceCsinceA_a_1 (ite once_since.usr.A_a_1 once_since.usr.C_a_1 (ite once_since.res.abs_1_a_1 (or once_since.usr.C_a_1 once_since.usr.onceCsinceA_a_0) true))) (= once_since.res.abs_0_a_1 once_since.usr.A_a_1) (__node_trans_after_0 once_since.res.abs_0_a_1 once_since.res.abs_1_a_1 once_since.res.inst_1_a_1 once_since.res.inst_0_a_1 once_since.res.abs_0_a_0 once_since.res.abs_1_a_0 once_since.res.inst_1_a_0 once_since.res.inst_0_a_0) (not once_since.res.init_flag_a_1))) -(define-fun __node_init_always_since_0 ((always_since.usr.B_a_0 Bool) (always_since.usr.A_a_0 Bool) (always_since.res.nondet_0 Bool) (always_since.usr.alwaysBsinceA_a_0 Bool) (always_since.res.init_flag_a_0 Bool) (always_since.res.abs_0_a_0 Bool) (always_since.res.abs_1_a_0 Bool) (always_since.res.inst_1_a_0 Bool) (always_since.res.inst_0_a_0 Bool)) Bool (and (= always_since.usr.alwaysBsinceA_a_0 (ite always_since.usr.A_a_0 always_since.usr.B_a_0 (ite always_since.res.abs_1_a_0 (and always_since.usr.B_a_0 always_since.res.nondet_0) true))) (= always_since.res.abs_0_a_0 always_since.usr.A_a_0) (__node_init_after_0 always_since.res.abs_0_a_0 always_since.res.abs_1_a_0 always_since.res.inst_1_a_0 always_since.res.inst_0_a_0) always_since.res.init_flag_a_0)) -(define-fun __node_trans_always_since_0 ((always_since.usr.B_a_1 Bool) (always_since.usr.A_a_1 Bool) (always_since.res.nondet_0 Bool) (always_since.usr.alwaysBsinceA_a_1 Bool) (always_since.res.init_flag_a_1 Bool) (always_since.res.abs_0_a_1 Bool) (always_since.res.abs_1_a_1 Bool) (always_since.res.inst_1_a_1 Bool) (always_since.res.inst_0_a_1 Bool) (always_since.usr.B_a_0 Bool) (always_since.usr.A_a_0 Bool) (always_since.usr.alwaysBsinceA_a_0 Bool) (always_since.res.init_flag_a_0 Bool) (always_since.res.abs_0_a_0 Bool) (always_since.res.abs_1_a_0 Bool) (always_since.res.inst_1_a_0 Bool) (always_since.res.inst_0_a_0 Bool)) Bool (and (= always_since.usr.alwaysBsinceA_a_1 (ite always_since.usr.A_a_1 always_since.usr.B_a_1 (ite always_since.res.abs_1_a_1 (and always_since.usr.B_a_1 always_since.usr.alwaysBsinceA_a_0) true))) (= always_since.res.abs_0_a_1 always_since.usr.A_a_1) (__node_trans_after_0 always_since.res.abs_0_a_1 always_since.res.abs_1_a_1 always_since.res.inst_1_a_1 always_since.res.inst_0_a_1 always_since.res.abs_0_a_0 always_since.res.abs_1_a_0 always_since.res.inst_1_a_0 always_since.res.inst_0_a_0) (not always_since.res.init_flag_a_1))) -(define-fun __node_init_always_from_to_0 ((always_from_to.usr.B_a_0 Bool) (always_from_to.usr.A_a_0 Bool) (always_from_to.usr.C_a_0 Bool) (always_from_to.res.nondet_1 Bool) (always_from_to.res.nondet_0 Bool) (always_from_to.usr.X_a_0 Bool) (always_from_to.res.init_flag_a_0 Bool) (always_from_to.res.abs_0_a_0 Bool) (always_from_to.res.abs_1_a_0 Bool) (always_from_to.res.abs_2_a_0 Bool) (always_from_to.res.abs_3_a_0 Bool) (always_from_to.res.abs_4_a_0 Bool) (always_from_to.res.inst_12_a_0 Bool) (always_from_to.res.inst_11_a_0 Bool) (always_from_to.res.inst_10_a_0 Bool) (always_from_to.res.inst_9_a_0 Bool) (always_from_to.res.inst_8_a_0 Bool) (always_from_to.res.inst_7_a_0 Bool) (always_from_to.res.inst_6_a_0 Bool) (always_from_to.res.inst_5_a_0 Bool) (always_from_to.res.inst_4_a_0 Bool) (always_from_to.res.inst_3_a_0 Bool) (always_from_to.res.inst_2_a_0 Bool) (always_from_to.res.inst_1_a_0 Bool) (always_from_to.res.inst_0_a_0 Bool)) Bool (and (= always_from_to.res.abs_3_a_0 (or always_from_to.res.abs_1_a_0 always_from_to.res.abs_2_a_0)) (= always_from_to.usr.X_a_0 always_from_to.res.abs_4_a_0) (__node_init_implies_0 always_from_to.res.abs_0_a_0 always_from_to.res.abs_3_a_0 always_from_to.res.abs_4_a_0 always_from_to.res.inst_12_a_0) (__node_init_after_0 always_from_to.usr.A_a_0 always_from_to.res.abs_0_a_0 always_from_to.res.inst_11_a_0 always_from_to.res.inst_10_a_0) (__node_init_always_since_0 always_from_to.usr.B_a_0 always_from_to.usr.A_a_0 always_from_to.res.nondet_0 always_from_to.res.abs_1_a_0 always_from_to.res.inst_9_a_0 always_from_to.res.inst_8_a_0 always_from_to.res.inst_7_a_0 always_from_to.res.inst_6_a_0 always_from_to.res.inst_5_a_0) (__node_init_once_since_0 always_from_to.usr.C_a_0 always_from_to.usr.A_a_0 always_from_to.res.nondet_1 always_from_to.res.abs_2_a_0 always_from_to.res.inst_4_a_0 always_from_to.res.inst_3_a_0 always_from_to.res.inst_2_a_0 always_from_to.res.inst_1_a_0 always_from_to.res.inst_0_a_0) always_from_to.res.init_flag_a_0)) -(define-fun __node_trans_always_from_to_0 ((always_from_to.usr.B_a_1 Bool) (always_from_to.usr.A_a_1 Bool) (always_from_to.usr.C_a_1 Bool) (always_from_to.res.nondet_1 Bool) (always_from_to.res.nondet_0 Bool) (always_from_to.usr.X_a_1 Bool) (always_from_to.res.init_flag_a_1 Bool) (always_from_to.res.abs_0_a_1 Bool) (always_from_to.res.abs_1_a_1 Bool) (always_from_to.res.abs_2_a_1 Bool) (always_from_to.res.abs_3_a_1 Bool) (always_from_to.res.abs_4_a_1 Bool) (always_from_to.res.inst_12_a_1 Bool) (always_from_to.res.inst_11_a_1 Bool) (always_from_to.res.inst_10_a_1 Bool) (always_from_to.res.inst_9_a_1 Bool) (always_from_to.res.inst_8_a_1 Bool) (always_from_to.res.inst_7_a_1 Bool) (always_from_to.res.inst_6_a_1 Bool) (always_from_to.res.inst_5_a_1 Bool) (always_from_to.res.inst_4_a_1 Bool) (always_from_to.res.inst_3_a_1 Bool) (always_from_to.res.inst_2_a_1 Bool) (always_from_to.res.inst_1_a_1 Bool) (always_from_to.res.inst_0_a_1 Bool) (always_from_to.usr.B_a_0 Bool) (always_from_to.usr.A_a_0 Bool) (always_from_to.usr.C_a_0 Bool) (always_from_to.usr.X_a_0 Bool) (always_from_to.res.init_flag_a_0 Bool) (always_from_to.res.abs_0_a_0 Bool) (always_from_to.res.abs_1_a_0 Bool) (always_from_to.res.abs_2_a_0 Bool) (always_from_to.res.abs_3_a_0 Bool) (always_from_to.res.abs_4_a_0 Bool) (always_from_to.res.inst_12_a_0 Bool) (always_from_to.res.inst_11_a_0 Bool) (always_from_to.res.inst_10_a_0 Bool) (always_from_to.res.inst_9_a_0 Bool) (always_from_to.res.inst_8_a_0 Bool) (always_from_to.res.inst_7_a_0 Bool) (always_from_to.res.inst_6_a_0 Bool) (always_from_to.res.inst_5_a_0 Bool) (always_from_to.res.inst_4_a_0 Bool) (always_from_to.res.inst_3_a_0 Bool) (always_from_to.res.inst_2_a_0 Bool) (always_from_to.res.inst_1_a_0 Bool) (always_from_to.res.inst_0_a_0 Bool)) Bool (and (= always_from_to.res.abs_3_a_1 (or always_from_to.res.abs_1_a_1 always_from_to.res.abs_2_a_1)) (= always_from_to.usr.X_a_1 always_from_to.res.abs_4_a_1) (__node_trans_implies_0 always_from_to.res.abs_0_a_1 always_from_to.res.abs_3_a_1 always_from_to.res.abs_4_a_1 always_from_to.res.inst_12_a_1 always_from_to.res.abs_0_a_0 always_from_to.res.abs_3_a_0 always_from_to.res.abs_4_a_0 always_from_to.res.inst_12_a_0) (__node_trans_after_0 always_from_to.usr.A_a_1 always_from_to.res.abs_0_a_1 always_from_to.res.inst_11_a_1 always_from_to.res.inst_10_a_1 always_from_to.usr.A_a_0 always_from_to.res.abs_0_a_0 always_from_to.res.inst_11_a_0 always_from_to.res.inst_10_a_0) (__node_trans_always_since_0 always_from_to.usr.B_a_1 always_from_to.usr.A_a_1 always_from_to.res.nondet_0 always_from_to.res.abs_1_a_1 always_from_to.res.inst_9_a_1 always_from_to.res.inst_8_a_1 always_from_to.res.inst_7_a_1 always_from_to.res.inst_6_a_1 always_from_to.res.inst_5_a_1 always_from_to.usr.B_a_0 always_from_to.usr.A_a_0 always_from_to.res.abs_1_a_0 always_from_to.res.inst_9_a_0 always_from_to.res.inst_8_a_0 always_from_to.res.inst_7_a_0 always_from_to.res.inst_6_a_0 always_from_to.res.inst_5_a_0) (__node_trans_once_since_0 always_from_to.usr.C_a_1 always_from_to.usr.A_a_1 always_from_to.res.nondet_1 always_from_to.res.abs_2_a_1 always_from_to.res.inst_4_a_1 always_from_to.res.inst_3_a_1 always_from_to.res.inst_2_a_1 always_from_to.res.inst_1_a_1 always_from_to.res.inst_0_a_1 always_from_to.usr.C_a_0 always_from_to.usr.A_a_0 always_from_to.res.abs_2_a_0 always_from_to.res.inst_4_a_0 always_from_to.res.inst_3_a_0 always_from_to.res.inst_2_a_0 always_from_to.res.inst_1_a_0 always_from_to.res.inst_0_a_0) (not always_from_to.res.init_flag_a_1))) -(define-fun __node_init_UMS_0 ((UMS.usr.on_A_a_0 Bool) (UMS.usr.on_B_a_0 Bool) (UMS.usr.on_C_a_0 Bool) (UMS.usr.ack_AB_a_0 Bool) (UMS.usr.ack_BC_a_0 Bool) (UMS.usr.grant_access_a_0 Bool) (UMS.usr.grant_exit_a_0 Bool) (UMS.usr.do_AB_a_0 Bool) (UMS.usr.do_BC_a_0 Bool) (UMS.res.init_flag_a_0 Bool)) Bool (and (= UMS.usr.grant_access_a_0 (and (not (or (or UMS.usr.on_A_a_0 UMS.usr.on_B_a_0) UMS.usr.on_C_a_0)) UMS.usr.ack_AB_a_0)) (and (= UMS.usr.grant_exit_a_0 (and (and UMS.usr.on_B_a_0 (not (or UMS.usr.on_A_a_0 UMS.usr.on_C_a_0))) UMS.usr.ack_BC_a_0)) (= UMS.usr.do_AB_a_0 (and (not UMS.usr.ack_AB_a_0) (not (or (or UMS.usr.on_A_a_0 UMS.usr.on_B_a_0) UMS.usr.on_C_a_0)))) (= UMS.usr.do_BC_a_0 (and (not UMS.usr.ack_BC_a_0) (and UMS.usr.on_B_a_0 (not (or UMS.usr.on_A_a_0 UMS.usr.on_C_a_0))))) UMS.res.init_flag_a_0))) -(define-fun __node_trans_UMS_0 ((UMS.usr.on_A_a_1 Bool) (UMS.usr.on_B_a_1 Bool) (UMS.usr.on_C_a_1 Bool) (UMS.usr.ack_AB_a_1 Bool) (UMS.usr.ack_BC_a_1 Bool) (UMS.usr.grant_access_a_1 Bool) (UMS.usr.grant_exit_a_1 Bool) (UMS.usr.do_AB_a_1 Bool) (UMS.usr.do_BC_a_1 Bool) (UMS.res.init_flag_a_1 Bool) (UMS.usr.on_A_a_0 Bool) (UMS.usr.on_B_a_0 Bool) (UMS.usr.on_C_a_0 Bool) (UMS.usr.ack_AB_a_0 Bool) (UMS.usr.ack_BC_a_0 Bool) (UMS.usr.grant_access_a_0 Bool) (UMS.usr.grant_exit_a_0 Bool) (UMS.usr.do_AB_a_0 Bool) (UMS.usr.do_BC_a_0 Bool) (UMS.res.init_flag_a_0 Bool)) Bool (and (= UMS.usr.grant_access_a_1 (and (not (or (or UMS.usr.on_A_a_1 UMS.usr.on_B_a_1) UMS.usr.on_C_a_1)) UMS.usr.ack_AB_a_1)) (and (= UMS.usr.grant_exit_a_1 (and (and UMS.usr.on_B_a_1 (not (or UMS.usr.on_A_a_1 UMS.usr.on_C_a_1))) UMS.usr.ack_BC_a_1)) (= UMS.usr.do_AB_a_1 (and (not UMS.usr.ack_AB_a_1) (not (or (or UMS.usr.on_A_a_1 UMS.usr.on_B_a_1) UMS.usr.on_C_a_1)))) (= UMS.usr.do_BC_a_1 (and (not UMS.usr.ack_BC_a_1) (and UMS.usr.on_B_a_1 (not (or UMS.usr.on_A_a_1 UMS.usr.on_C_a_1))))) (not UMS.res.init_flag_a_1)))) -(define-fun __node_init_top_0 ((top.usr.on_A_a_0 Bool) (top.usr.on_B_a_0 Bool) (top.usr.on_C_a_0 Bool) (top.usr.ack_AB_a_0 Bool) (top.usr.ack_BC_a_0 Bool) (top.res.nondet_9 Bool) (top.res.nondet_8 Bool) (top.res.nondet_7 Bool) (top.res.nondet_6 Bool) (top.res.nondet_5 Bool) (top.res.nondet_4 Bool) (top.res.nondet_3 Bool) (top.res.nondet_2 Bool) (top.res.nondet_1 Bool) (top.res.nondet_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.grant_access_a_0 Bool) (top.impl.usr.grant_exit_a_0 Bool) (top.impl.usr.do_AB_a_0 Bool) (top.impl.usr.do_BC_a_0 Bool) (top.impl.usr.empty_section_a_0 Bool) (top.impl.usr.only_on_B_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.abs_12_a_0 Bool) (top.res.abs_13_a_0 Bool) (top.res.abs_14_a_0 Bool) (top.res.abs_15_a_0 Bool) (top.res.abs_16_a_0 Bool) (top.res.abs_17_a_0 Bool) (top.res.abs_18_a_0 Bool) (top.res.abs_19_a_0 Bool) (top.res.abs_20_a_0 Bool) (top.res.abs_21_a_0 Bool) (top.res.abs_22_a_0 Bool) (top.res.abs_23_a_0 Bool) (top.res.abs_24_a_0 Bool) (top.res.inst_86_a_0 Bool) (top.res.inst_85_a_0 Bool) (top.res.inst_84_a_0 Bool) (top.res.inst_83_a_0 Bool) (top.res.inst_82_a_0 Bool) (top.res.inst_81_a_0 Bool) (top.res.inst_80_a_0 Bool) (top.res.inst_79_a_0 Bool) (top.res.inst_78_a_0 Bool) (top.res.inst_77_a_0 Bool) (top.res.inst_76_a_0 Bool) (top.res.inst_75_a_0 Bool) (top.res.inst_74_a_0 Bool) (top.res.inst_73_a_0 Bool) (top.res.inst_72_a_0 Bool) (top.res.inst_71_a_0 Bool) (top.res.inst_70_a_0 Bool) (top.res.inst_69_a_0 Bool) (top.res.inst_68_a_0 Bool) (top.res.inst_67_a_0 Bool) (top.res.inst_66_a_0 Bool) (top.res.inst_65_a_0 Bool) (top.res.inst_64_a_0 Bool) (top.res.inst_63_a_0 Bool) (top.res.inst_62_a_0 Bool) (top.res.inst_61_a_0 Bool) (top.res.inst_60_a_0 Bool) (top.res.inst_59_a_0 Bool) (top.res.inst_58_a_0 Bool) (top.res.inst_57_a_0 Bool) (top.res.inst_56_a_0 Bool) (top.res.inst_55_a_0 Bool) (top.res.inst_54_a_0 Bool) (top.res.inst_53_a_0 Bool) (top.res.inst_52_a_0 Bool) (top.res.inst_51_a_0 Bool) (top.res.inst_50_a_0 Bool) (top.res.inst_49_a_0 Bool) (top.res.inst_48_a_0 Bool) (top.res.inst_47_a_0 Bool) (top.res.inst_46_a_0 Bool) (top.res.inst_45_a_0 Bool) (top.res.inst_44_a_0 Bool) (top.res.inst_43_a_0 Bool) (top.res.inst_42_a_0 Bool) (top.res.inst_41_a_0 Bool) (top.res.inst_40_a_0 Bool) (top.res.inst_39_a_0 Bool) (top.res.inst_38_a_0 Bool) (top.res.inst_37_a_0 Bool) (top.res.inst_36_a_0 Bool) (top.res.inst_35_a_0 Bool) (top.res.inst_34_a_0 Bool) (top.res.inst_33_a_0 Bool) (top.res.inst_32_a_0 Bool) (top.res.inst_31_a_0 Bool) (top.res.inst_30_a_0 Bool) (top.res.inst_29_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool (and (= top.impl.usr.empty_section_a_0 (not (or (or top.usr.on_A_a_0 top.usr.on_B_a_0) top.usr.on_C_a_0))) (= top.impl.usr.grant_exit_a_0 top.res.abs_1_a_0) (= top.impl.usr.only_on_B_a_0 (and top.usr.on_B_a_0 (not (or top.usr.on_A_a_0 top.usr.on_C_a_0)))) (= top.impl.usr.grant_access_a_0 top.res.abs_0_a_0) (= top.res.abs_18_a_0 (or top.usr.on_A_a_0 top.usr.on_C_a_0)) (= top.res.abs_16_a_0 (not top.usr.on_B_a_0)) (= top.res.abs_13_a_0 (not top.usr.on_A_a_0)) (= top.impl.usr.do_AB_a_0 top.res.abs_2_a_0) (= top.impl.usr.do_BC_a_0 top.res.abs_3_a_0) (= top.res.abs_20_a_0 (and (and (and (and (and (not (and top.usr.ack_AB_a_0 top.usr.ack_BC_a_0)) top.res.abs_4_a_0) top.res.abs_5_a_0) top.impl.usr.empty_section_a_0) top.res.abs_15_a_0) top.res.abs_19_a_0)) (and (= top.usr.OK_a_0 (=> top.res.abs_21_a_0 (and (and (and top.res.abs_22_a_0 (not (and top.impl.usr.do_AB_a_0 top.impl.usr.do_BC_a_0))) top.res.abs_23_a_0) top.res.abs_24_a_0))) (= top.res.abs_6_a_0 (not top.impl.usr.empty_section_a_0)) (= top.res.abs_8_a_0 top.res.nondet_4) (= top.res.abs_11_a_0 top.res.nondet_5) (__node_init_implies_0 top.impl.usr.grant_access_a_0 top.impl.usr.empty_section_a_0 top.res.abs_22_a_0 top.res.inst_86_a_0) (__node_init_UMS_0 top.usr.on_A_a_0 top.usr.on_B_a_0 top.usr.on_C_a_0 top.usr.ack_AB_a_0 top.usr.ack_BC_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_85_a_0) (__node_init_always_from_to_0 top.usr.ack_AB_a_0 top.impl.usr.grant_access_a_0 top.impl.usr.only_on_B_a_0 top.res.nondet_7 top.res.nondet_6 top.res.abs_23_a_0 top.res.inst_84_a_0 top.res.inst_83_a_0 top.res.inst_82_a_0 top.res.inst_81_a_0 top.res.inst_80_a_0 top.res.inst_79_a_0 top.res.inst_78_a_0 top.res.inst_77_a_0 top.res.inst_76_a_0 top.res.inst_75_a_0 top.res.inst_74_a_0 top.res.inst_73_a_0 top.res.inst_72_a_0 top.res.inst_71_a_0 top.res.inst_70_a_0 top.res.inst_69_a_0 top.res.inst_68_a_0 top.res.inst_67_a_0 top.res.inst_66_a_0) (__node_init_always_from_to_0 top.usr.ack_BC_a_0 top.impl.usr.grant_exit_a_0 top.impl.usr.empty_section_a_0 top.res.nondet_9 top.res.nondet_8 top.res.abs_24_a_0 top.res.inst_65_a_0 top.res.inst_64_a_0 top.res.inst_63_a_0 top.res.inst_62_a_0 top.res.inst_61_a_0 top.res.inst_60_a_0 top.res.inst_59_a_0 top.res.inst_58_a_0 top.res.inst_57_a_0 top.res.inst_56_a_0 top.res.inst_55_a_0 top.res.inst_54_a_0 top.res.inst_53_a_0 top.res.inst_52_a_0 top.res.inst_51_a_0 top.res.inst_50_a_0 top.res.inst_49_a_0 top.res.inst_48_a_0 top.res.inst_47_a_0) (__node_init_Sofar_0 top.res.abs_20_a_0 top.res.abs_21_a_0 top.res.inst_46_a_0) (__node_init_always_from_to_0 top.usr.ack_AB_a_0 top.usr.ack_AB_a_0 top.impl.usr.do_BC_a_0 top.res.nondet_1 top.res.nondet_0 top.res.abs_4_a_0 top.res.inst_45_a_0 top.res.inst_44_a_0 top.res.inst_43_a_0 top.res.inst_42_a_0 top.res.inst_41_a_0 top.res.inst_40_a_0 top.res.inst_39_a_0 top.res.inst_38_a_0 top.res.inst_37_a_0 top.res.inst_36_a_0 top.res.inst_35_a_0 top.res.inst_34_a_0 top.res.inst_33_a_0 top.res.inst_32_a_0 top.res.inst_31_a_0 top.res.inst_30_a_0 top.res.inst_29_a_0 top.res.inst_28_a_0 top.res.inst_27_a_0) (__node_init_always_from_to_0 top.usr.ack_BC_a_0 top.usr.ack_BC_a_0 top.impl.usr.do_AB_a_0 top.res.nondet_3 top.res.nondet_2 top.res.abs_5_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0) (__node_init_implies_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_7_a_0) (__node_init_edge_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_6_a_0) (__node_init_implies_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.inst_5_a_0) (__node_init_edge_0 top.usr.on_C_a_0 top.res.abs_10_a_0 top.res.inst_4_a_0) (__node_init_implies_0 top.res.abs_14_a_0 top.usr.on_B_a_0 top.res.abs_15_a_0 top.res.inst_3_a_0) (__node_init_edge_0 top.res.abs_13_a_0 top.res.abs_14_a_0 top.res.inst_2_a_0) (__node_init_implies_0 top.res.abs_17_a_0 top.res.abs_18_a_0 top.res.abs_19_a_0 top.res.inst_1_a_0) (__node_init_edge_0 top.res.abs_16_a_0 top.res.abs_17_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))) -(define-fun __node_trans_top_0 ((top.usr.on_A_a_1 Bool) (top.usr.on_B_a_1 Bool) (top.usr.on_C_a_1 Bool) (top.usr.ack_AB_a_1 Bool) (top.usr.ack_BC_a_1 Bool) (top.res.nondet_9 Bool) (top.res.nondet_8 Bool) (top.res.nondet_7 Bool) (top.res.nondet_6 Bool) (top.res.nondet_5 Bool) (top.res.nondet_4 Bool) (top.res.nondet_3 Bool) (top.res.nondet_2 Bool) (top.res.nondet_1 Bool) (top.res.nondet_0 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.grant_access_a_1 Bool) (top.impl.usr.grant_exit_a_1 Bool) (top.impl.usr.do_AB_a_1 Bool) (top.impl.usr.do_BC_a_1 Bool) (top.impl.usr.empty_section_a_1 Bool) (top.impl.usr.only_on_B_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.abs_12_a_1 Bool) (top.res.abs_13_a_1 Bool) (top.res.abs_14_a_1 Bool) (top.res.abs_15_a_1 Bool) (top.res.abs_16_a_1 Bool) (top.res.abs_17_a_1 Bool) (top.res.abs_18_a_1 Bool) (top.res.abs_19_a_1 Bool) (top.res.abs_20_a_1 Bool) (top.res.abs_21_a_1 Bool) (top.res.abs_22_a_1 Bool) (top.res.abs_23_a_1 Bool) (top.res.abs_24_a_1 Bool) (top.res.inst_86_a_1 Bool) (top.res.inst_85_a_1 Bool) (top.res.inst_84_a_1 Bool) (top.res.inst_83_a_1 Bool) (top.res.inst_82_a_1 Bool) (top.res.inst_81_a_1 Bool) (top.res.inst_80_a_1 Bool) (top.res.inst_79_a_1 Bool) (top.res.inst_78_a_1 Bool) (top.res.inst_77_a_1 Bool) (top.res.inst_76_a_1 Bool) (top.res.inst_75_a_1 Bool) (top.res.inst_74_a_1 Bool) (top.res.inst_73_a_1 Bool) (top.res.inst_72_a_1 Bool) (top.res.inst_71_a_1 Bool) (top.res.inst_70_a_1 Bool) (top.res.inst_69_a_1 Bool) (top.res.inst_68_a_1 Bool) (top.res.inst_67_a_1 Bool) (top.res.inst_66_a_1 Bool) (top.res.inst_65_a_1 Bool) (top.res.inst_64_a_1 Bool) (top.res.inst_63_a_1 Bool) (top.res.inst_62_a_1 Bool) (top.res.inst_61_a_1 Bool) (top.res.inst_60_a_1 Bool) (top.res.inst_59_a_1 Bool) (top.res.inst_58_a_1 Bool) (top.res.inst_57_a_1 Bool) (top.res.inst_56_a_1 Bool) (top.res.inst_55_a_1 Bool) (top.res.inst_54_a_1 Bool) (top.res.inst_53_a_1 Bool) (top.res.inst_52_a_1 Bool) (top.res.inst_51_a_1 Bool) (top.res.inst_50_a_1 Bool) (top.res.inst_49_a_1 Bool) (top.res.inst_48_a_1 Bool) (top.res.inst_47_a_1 Bool) (top.res.inst_46_a_1 Bool) (top.res.inst_45_a_1 Bool) (top.res.inst_44_a_1 Bool) (top.res.inst_43_a_1 Bool) (top.res.inst_42_a_1 Bool) (top.res.inst_41_a_1 Bool) (top.res.inst_40_a_1 Bool) (top.res.inst_39_a_1 Bool) (top.res.inst_38_a_1 Bool) (top.res.inst_37_a_1 Bool) (top.res.inst_36_a_1 Bool) (top.res.inst_35_a_1 Bool) (top.res.inst_34_a_1 Bool) (top.res.inst_33_a_1 Bool) (top.res.inst_32_a_1 Bool) (top.res.inst_31_a_1 Bool) (top.res.inst_30_a_1 Bool) (top.res.inst_29_a_1 Bool) (top.res.inst_28_a_1 Bool) (top.res.inst_27_a_1 Bool) (top.res.inst_26_a_1 Bool) (top.res.inst_25_a_1 Bool) (top.res.inst_24_a_1 Bool) (top.res.inst_23_a_1 Bool) (top.res.inst_22_a_1 Bool) (top.res.inst_21_a_1 Bool) (top.res.inst_20_a_1 Bool) (top.res.inst_19_a_1 Bool) (top.res.inst_18_a_1 Bool) (top.res.inst_17_a_1 Bool) (top.res.inst_16_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Bool) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Bool) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Bool) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.on_A_a_0 Bool) (top.usr.on_B_a_0 Bool) (top.usr.on_C_a_0 Bool) (top.usr.ack_AB_a_0 Bool) (top.usr.ack_BC_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.grant_access_a_0 Bool) (top.impl.usr.grant_exit_a_0 Bool) (top.impl.usr.do_AB_a_0 Bool) (top.impl.usr.do_BC_a_0 Bool) (top.impl.usr.empty_section_a_0 Bool) (top.impl.usr.only_on_B_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.abs_12_a_0 Bool) (top.res.abs_13_a_0 Bool) (top.res.abs_14_a_0 Bool) (top.res.abs_15_a_0 Bool) (top.res.abs_16_a_0 Bool) (top.res.abs_17_a_0 Bool) (top.res.abs_18_a_0 Bool) (top.res.abs_19_a_0 Bool) (top.res.abs_20_a_0 Bool) (top.res.abs_21_a_0 Bool) (top.res.abs_22_a_0 Bool) (top.res.abs_23_a_0 Bool) (top.res.abs_24_a_0 Bool) (top.res.inst_86_a_0 Bool) (top.res.inst_85_a_0 Bool) (top.res.inst_84_a_0 Bool) (top.res.inst_83_a_0 Bool) (top.res.inst_82_a_0 Bool) (top.res.inst_81_a_0 Bool) (top.res.inst_80_a_0 Bool) (top.res.inst_79_a_0 Bool) (top.res.inst_78_a_0 Bool) (top.res.inst_77_a_0 Bool) (top.res.inst_76_a_0 Bool) (top.res.inst_75_a_0 Bool) (top.res.inst_74_a_0 Bool) (top.res.inst_73_a_0 Bool) (top.res.inst_72_a_0 Bool) (top.res.inst_71_a_0 Bool) (top.res.inst_70_a_0 Bool) (top.res.inst_69_a_0 Bool) (top.res.inst_68_a_0 Bool) (top.res.inst_67_a_0 Bool) (top.res.inst_66_a_0 Bool) (top.res.inst_65_a_0 Bool) (top.res.inst_64_a_0 Bool) (top.res.inst_63_a_0 Bool) (top.res.inst_62_a_0 Bool) (top.res.inst_61_a_0 Bool) (top.res.inst_60_a_0 Bool) (top.res.inst_59_a_0 Bool) (top.res.inst_58_a_0 Bool) (top.res.inst_57_a_0 Bool) (top.res.inst_56_a_0 Bool) (top.res.inst_55_a_0 Bool) (top.res.inst_54_a_0 Bool) (top.res.inst_53_a_0 Bool) (top.res.inst_52_a_0 Bool) (top.res.inst_51_a_0 Bool) (top.res.inst_50_a_0 Bool) (top.res.inst_49_a_0 Bool) (top.res.inst_48_a_0 Bool) (top.res.inst_47_a_0 Bool) (top.res.inst_46_a_0 Bool) (top.res.inst_45_a_0 Bool) (top.res.inst_44_a_0 Bool) (top.res.inst_43_a_0 Bool) (top.res.inst_42_a_0 Bool) (top.res.inst_41_a_0 Bool) (top.res.inst_40_a_0 Bool) (top.res.inst_39_a_0 Bool) (top.res.inst_38_a_0 Bool) (top.res.inst_37_a_0 Bool) (top.res.inst_36_a_0 Bool) (top.res.inst_35_a_0 Bool) (top.res.inst_34_a_0 Bool) (top.res.inst_33_a_0 Bool) (top.res.inst_32_a_0 Bool) (top.res.inst_31_a_0 Bool) (top.res.inst_30_a_0 Bool) (top.res.inst_29_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool (and (= top.impl.usr.empty_section_a_1 (not (or (or top.usr.on_A_a_1 top.usr.on_B_a_1) top.usr.on_C_a_1))) (= top.impl.usr.grant_exit_a_1 top.res.abs_1_a_1) (= top.impl.usr.only_on_B_a_1 (and top.usr.on_B_a_1 (not (or top.usr.on_A_a_1 top.usr.on_C_a_1)))) (= top.impl.usr.grant_access_a_1 top.res.abs_0_a_1) (= top.res.abs_18_a_1 (or top.usr.on_A_a_1 top.usr.on_C_a_1)) (= top.res.abs_16_a_1 (not top.usr.on_B_a_1)) (= top.res.abs_13_a_1 (not top.usr.on_A_a_1)) (= top.res.abs_11_a_1 top.impl.usr.grant_exit_a_0) (= top.res.abs_8_a_1 top.impl.usr.grant_access_a_0) (= top.res.abs_6_a_1 (not top.impl.usr.empty_section_a_1)) (= top.impl.usr.do_AB_a_1 top.res.abs_2_a_1) (= top.impl.usr.do_BC_a_1 top.res.abs_3_a_1) (= top.res.abs_20_a_1 (and (and (and (and (and (and (not (and top.usr.ack_AB_a_1 top.usr.ack_BC_a_1)) top.res.abs_4_a_1) top.res.abs_5_a_1) top.res.abs_9_a_1) top.res.abs_12_a_1) top.res.abs_15_a_1) top.res.abs_19_a_1)) (and (= top.usr.OK_a_1 (=> top.res.abs_21_a_1 (and (and (and top.res.abs_22_a_1 (not (and top.impl.usr.do_AB_a_1 top.impl.usr.do_BC_a_1))) top.res.abs_23_a_1) top.res.abs_24_a_1))) (__node_trans_implies_0 top.impl.usr.grant_access_a_1 top.impl.usr.empty_section_a_1 top.res.abs_22_a_1 top.res.inst_86_a_1 top.impl.usr.grant_access_a_0 top.impl.usr.empty_section_a_0 top.res.abs_22_a_0 top.res.inst_86_a_0) (__node_trans_UMS_0 top.usr.on_A_a_1 top.usr.on_B_a_1 top.usr.on_C_a_1 top.usr.ack_AB_a_1 top.usr.ack_BC_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_85_a_1 top.usr.on_A_a_0 top.usr.on_B_a_0 top.usr.on_C_a_0 top.usr.ack_AB_a_0 top.usr.ack_BC_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_85_a_0) (__node_trans_always_from_to_0 top.usr.ack_AB_a_1 top.impl.usr.grant_access_a_1 top.impl.usr.only_on_B_a_1 top.res.nondet_7 top.res.nondet_6 top.res.abs_23_a_1 top.res.inst_84_a_1 top.res.inst_83_a_1 top.res.inst_82_a_1 top.res.inst_81_a_1 top.res.inst_80_a_1 top.res.inst_79_a_1 top.res.inst_78_a_1 top.res.inst_77_a_1 top.res.inst_76_a_1 top.res.inst_75_a_1 top.res.inst_74_a_1 top.res.inst_73_a_1 top.res.inst_72_a_1 top.res.inst_71_a_1 top.res.inst_70_a_1 top.res.inst_69_a_1 top.res.inst_68_a_1 top.res.inst_67_a_1 top.res.inst_66_a_1 top.usr.ack_AB_a_0 top.impl.usr.grant_access_a_0 top.impl.usr.only_on_B_a_0 top.res.abs_23_a_0 top.res.inst_84_a_0 top.res.inst_83_a_0 top.res.inst_82_a_0 top.res.inst_81_a_0 top.res.inst_80_a_0 top.res.inst_79_a_0 top.res.inst_78_a_0 top.res.inst_77_a_0 top.res.inst_76_a_0 top.res.inst_75_a_0 top.res.inst_74_a_0 top.res.inst_73_a_0 top.res.inst_72_a_0 top.res.inst_71_a_0 top.res.inst_70_a_0 top.res.inst_69_a_0 top.res.inst_68_a_0 top.res.inst_67_a_0 top.res.inst_66_a_0) (__node_trans_always_from_to_0 top.usr.ack_BC_a_1 top.impl.usr.grant_exit_a_1 top.impl.usr.empty_section_a_1 top.res.nondet_9 top.res.nondet_8 top.res.abs_24_a_1 top.res.inst_65_a_1 top.res.inst_64_a_1 top.res.inst_63_a_1 top.res.inst_62_a_1 top.res.inst_61_a_1 top.res.inst_60_a_1 top.res.inst_59_a_1 top.res.inst_58_a_1 top.res.inst_57_a_1 top.res.inst_56_a_1 top.res.inst_55_a_1 top.res.inst_54_a_1 top.res.inst_53_a_1 top.res.inst_52_a_1 top.res.inst_51_a_1 top.res.inst_50_a_1 top.res.inst_49_a_1 top.res.inst_48_a_1 top.res.inst_47_a_1 top.usr.ack_BC_a_0 top.impl.usr.grant_exit_a_0 top.impl.usr.empty_section_a_0 top.res.abs_24_a_0 top.res.inst_65_a_0 top.res.inst_64_a_0 top.res.inst_63_a_0 top.res.inst_62_a_0 top.res.inst_61_a_0 top.res.inst_60_a_0 top.res.inst_59_a_0 top.res.inst_58_a_0 top.res.inst_57_a_0 top.res.inst_56_a_0 top.res.inst_55_a_0 top.res.inst_54_a_0 top.res.inst_53_a_0 top.res.inst_52_a_0 top.res.inst_51_a_0 top.res.inst_50_a_0 top.res.inst_49_a_0 top.res.inst_48_a_0 top.res.inst_47_a_0) (__node_trans_Sofar_0 top.res.abs_20_a_1 top.res.abs_21_a_1 top.res.inst_46_a_1 top.res.abs_20_a_0 top.res.abs_21_a_0 top.res.inst_46_a_0) (__node_trans_always_from_to_0 top.usr.ack_AB_a_1 top.usr.ack_AB_a_1 top.impl.usr.do_BC_a_1 top.res.nondet_1 top.res.nondet_0 top.res.abs_4_a_1 top.res.inst_45_a_1 top.res.inst_44_a_1 top.res.inst_43_a_1 top.res.inst_42_a_1 top.res.inst_41_a_1 top.res.inst_40_a_1 top.res.inst_39_a_1 top.res.inst_38_a_1 top.res.inst_37_a_1 top.res.inst_36_a_1 top.res.inst_35_a_1 top.res.inst_34_a_1 top.res.inst_33_a_1 top.res.inst_32_a_1 top.res.inst_31_a_1 top.res.inst_30_a_1 top.res.inst_29_a_1 top.res.inst_28_a_1 top.res.inst_27_a_1 top.usr.ack_AB_a_0 top.usr.ack_AB_a_0 top.impl.usr.do_BC_a_0 top.res.abs_4_a_0 top.res.inst_45_a_0 top.res.inst_44_a_0 top.res.inst_43_a_0 top.res.inst_42_a_0 top.res.inst_41_a_0 top.res.inst_40_a_0 top.res.inst_39_a_0 top.res.inst_38_a_0 top.res.inst_37_a_0 top.res.inst_36_a_0 top.res.inst_35_a_0 top.res.inst_34_a_0 top.res.inst_33_a_0 top.res.inst_32_a_0 top.res.inst_31_a_0 top.res.inst_30_a_0 top.res.inst_29_a_0 top.res.inst_28_a_0 top.res.inst_27_a_0) (__node_trans_always_from_to_0 top.usr.ack_BC_a_1 top.usr.ack_BC_a_1 top.impl.usr.do_AB_a_1 top.res.nondet_3 top.res.nondet_2 top.res.abs_5_a_1 top.res.inst_26_a_1 top.res.inst_25_a_1 top.res.inst_24_a_1 top.res.inst_23_a_1 top.res.inst_22_a_1 top.res.inst_21_a_1 top.res.inst_20_a_1 top.res.inst_19_a_1 top.res.inst_18_a_1 top.res.inst_17_a_1 top.res.inst_16_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.usr.ack_BC_a_0 top.usr.ack_BC_a_0 top.impl.usr.do_AB_a_0 top.res.abs_5_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0) (__node_trans_implies_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_7_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_7_a_0) (__node_trans_edge_0 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.inst_6_a_1 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_6_a_0) (__node_trans_implies_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.abs_12_a_1 top.res.inst_5_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.inst_5_a_0) (__node_trans_edge_0 top.usr.on_C_a_1 top.res.abs_10_a_1 top.res.inst_4_a_1 top.usr.on_C_a_0 top.res.abs_10_a_0 top.res.inst_4_a_0) (__node_trans_implies_0 top.res.abs_14_a_1 top.usr.on_B_a_1 top.res.abs_15_a_1 top.res.inst_3_a_1 top.res.abs_14_a_0 top.usr.on_B_a_0 top.res.abs_15_a_0 top.res.inst_3_a_0) (__node_trans_edge_0 top.res.abs_13_a_1 top.res.abs_14_a_1 top.res.inst_2_a_1 top.res.abs_13_a_0 top.res.abs_14_a_0 top.res.inst_2_a_0) (__node_trans_implies_0 top.res.abs_17_a_1 top.res.abs_18_a_1 top.res.abs_19_a_1 top.res.inst_1_a_1 top.res.abs_17_a_0 top.res.abs_18_a_0 top.res.abs_19_a_0 top.res.inst_1_a_0) (__node_trans_edge_0 top.res.abs_16_a_1 top.res.abs_17_a_1 top.res.inst_0_a_1 top.res.abs_16_a_0 top.res.abs_17_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_implies_0 ((implies.usr.A_a_0 Bool) (implies.usr.B_a_0 Bool) (implies.usr.AimpliesB_a_0 Bool) (implies.res.init_flag_a_0 Bool)) Bool + (and (= implies.usr.AimpliesB_a_0 (or (not implies.usr.A_a_0) implies.usr.B_a_0)) implies.res.init_flag_a_0)) +(define-fun __node_trans_implies_0 ((implies.usr.A_a_1 Bool) (implies.usr.B_a_1 Bool) (implies.usr.AimpliesB_a_1 Bool) (implies.res.init_flag_a_1 Bool) (implies.usr.A_a_0 Bool) (implies.usr.B_a_0 Bool) (implies.usr.AimpliesB_a_0 Bool) (implies.res.init_flag_a_0 Bool)) Bool + (and (= implies.usr.AimpliesB_a_1 (or (not implies.usr.A_a_1) implies.usr.B_a_1)) (not implies.res.init_flag_a_1))) +(define-fun __node_init_edge_0 ((edge.usr.X_a_0 Bool) (edge.usr.Y_a_0 Bool) (edge.res.init_flag_a_0 Bool)) Bool + (and (= edge.usr.Y_a_0 edge.usr.X_a_0) edge.res.init_flag_a_0)) +(define-fun __node_trans_edge_0 ((edge.usr.X_a_1 Bool) (edge.usr.Y_a_1 Bool) (edge.res.init_flag_a_1 Bool) (edge.usr.X_a_0 Bool) (edge.usr.Y_a_0 Bool) (edge.res.init_flag_a_0 Bool)) Bool + (and (= edge.usr.Y_a_1 (and edge.usr.X_a_1 (not edge.usr.X_a_0))) (not edge.res.init_flag_a_1))) +(define-fun __node_init_after_0 ((after.usr.A_a_0 Bool) (after.usr.afterA_a_0 Bool) (after.res.init_flag_a_0 Bool) (after.res.abs_0_a_0 Bool)) Bool + (and (= after.usr.afterA_a_0 false) (= after.res.abs_0_a_0 (or after.usr.A_a_0 after.usr.afterA_a_0)) after.res.init_flag_a_0)) +(define-fun __node_trans_after_0 ((after.usr.A_a_1 Bool) (after.usr.afterA_a_1 Bool) (after.res.init_flag_a_1 Bool) (after.res.abs_0_a_1 Bool) (after.usr.A_a_0 Bool) (after.usr.afterA_a_0 Bool) (after.res.init_flag_a_0 Bool) (after.res.abs_0_a_0 Bool)) Bool + (and (= after.usr.afterA_a_1 after.res.abs_0_a_0) (= after.res.abs_0_a_1 (or after.usr.A_a_1 after.usr.afterA_a_1)) (not after.res.init_flag_a_1))) +(define-fun __node_init_once_since_0 ((once_since.usr.C_a_0 Bool) (once_since.usr.A_a_0 Bool) (once_since.res.nondet_0 Bool) (once_since.usr.onceCsinceA_a_0 Bool) (once_since.res.init_flag_a_0 Bool) (once_since.res.abs_0_a_0 Bool) (once_since.res.abs_1_a_0 Bool) (once_since.res.inst_1_a_0 Bool) (once_since.res.inst_0_a_0 Bool)) Bool + (and (= once_since.usr.onceCsinceA_a_0 (ite once_since.usr.A_a_0 once_since.usr.C_a_0 (ite once_since.res.abs_1_a_0 (or once_since.usr.C_a_0 once_since.res.nondet_0) true))) (= once_since.res.abs_0_a_0 once_since.usr.A_a_0) (__node_init_after_0 once_since.res.abs_0_a_0 once_since.res.abs_1_a_0 once_since.res.inst_1_a_0 once_since.res.inst_0_a_0) once_since.res.init_flag_a_0)) +(define-fun __node_trans_once_since_0 ((once_since.usr.C_a_1 Bool) (once_since.usr.A_a_1 Bool) (once_since.res.nondet_0 Bool) (once_since.usr.onceCsinceA_a_1 Bool) (once_since.res.init_flag_a_1 Bool) (once_since.res.abs_0_a_1 Bool) (once_since.res.abs_1_a_1 Bool) (once_since.res.inst_1_a_1 Bool) (once_since.res.inst_0_a_1 Bool) (once_since.usr.C_a_0 Bool) (once_since.usr.A_a_0 Bool) (once_since.usr.onceCsinceA_a_0 Bool) (once_since.res.init_flag_a_0 Bool) (once_since.res.abs_0_a_0 Bool) (once_since.res.abs_1_a_0 Bool) (once_since.res.inst_1_a_0 Bool) (once_since.res.inst_0_a_0 Bool)) Bool + (and (= once_since.usr.onceCsinceA_a_1 (ite once_since.usr.A_a_1 once_since.usr.C_a_1 (ite once_since.res.abs_1_a_1 (or once_since.usr.C_a_1 once_since.usr.onceCsinceA_a_0) true))) (= once_since.res.abs_0_a_1 once_since.usr.A_a_1) (__node_trans_after_0 once_since.res.abs_0_a_1 once_since.res.abs_1_a_1 once_since.res.inst_1_a_1 once_since.res.inst_0_a_1 once_since.res.abs_0_a_0 once_since.res.abs_1_a_0 once_since.res.inst_1_a_0 once_since.res.inst_0_a_0) (not once_since.res.init_flag_a_1))) +(define-fun __node_init_always_since_0 ((always_since.usr.B_a_0 Bool) (always_since.usr.A_a_0 Bool) (always_since.res.nondet_0 Bool) (always_since.usr.alwaysBsinceA_a_0 Bool) (always_since.res.init_flag_a_0 Bool) (always_since.res.abs_0_a_0 Bool) (always_since.res.abs_1_a_0 Bool) (always_since.res.inst_1_a_0 Bool) (always_since.res.inst_0_a_0 Bool)) Bool + (and (= always_since.usr.alwaysBsinceA_a_0 (ite always_since.usr.A_a_0 always_since.usr.B_a_0 (ite always_since.res.abs_1_a_0 (and always_since.usr.B_a_0 always_since.res.nondet_0) true))) (= always_since.res.abs_0_a_0 always_since.usr.A_a_0) (__node_init_after_0 always_since.res.abs_0_a_0 always_since.res.abs_1_a_0 always_since.res.inst_1_a_0 always_since.res.inst_0_a_0) always_since.res.init_flag_a_0)) +(define-fun __node_trans_always_since_0 ((always_since.usr.B_a_1 Bool) (always_since.usr.A_a_1 Bool) (always_since.res.nondet_0 Bool) (always_since.usr.alwaysBsinceA_a_1 Bool) (always_since.res.init_flag_a_1 Bool) (always_since.res.abs_0_a_1 Bool) (always_since.res.abs_1_a_1 Bool) (always_since.res.inst_1_a_1 Bool) (always_since.res.inst_0_a_1 Bool) (always_since.usr.B_a_0 Bool) (always_since.usr.A_a_0 Bool) (always_since.usr.alwaysBsinceA_a_0 Bool) (always_since.res.init_flag_a_0 Bool) (always_since.res.abs_0_a_0 Bool) (always_since.res.abs_1_a_0 Bool) (always_since.res.inst_1_a_0 Bool) (always_since.res.inst_0_a_0 Bool)) Bool + (and (= always_since.usr.alwaysBsinceA_a_1 (ite always_since.usr.A_a_1 always_since.usr.B_a_1 (ite always_since.res.abs_1_a_1 (and always_since.usr.B_a_1 always_since.usr.alwaysBsinceA_a_0) true))) (= always_since.res.abs_0_a_1 always_since.usr.A_a_1) (__node_trans_after_0 always_since.res.abs_0_a_1 always_since.res.abs_1_a_1 always_since.res.inst_1_a_1 always_since.res.inst_0_a_1 always_since.res.abs_0_a_0 always_since.res.abs_1_a_0 always_since.res.inst_1_a_0 always_since.res.inst_0_a_0) (not always_since.res.init_flag_a_1))) +(define-fun __node_init_always_from_to_0 ((always_from_to.usr.B_a_0 Bool) (always_from_to.usr.A_a_0 Bool) (always_from_to.usr.C_a_0 Bool) (always_from_to.res.nondet_1 Bool) (always_from_to.res.nondet_0 Bool) (always_from_to.usr.X_a_0 Bool) (always_from_to.res.init_flag_a_0 Bool) (always_from_to.res.abs_0_a_0 Bool) (always_from_to.res.abs_1_a_0 Bool) (always_from_to.res.abs_2_a_0 Bool) (always_from_to.res.abs_3_a_0 Bool) (always_from_to.res.abs_4_a_0 Bool) (always_from_to.res.inst_12_a_0 Bool) (always_from_to.res.inst_11_a_0 Bool) (always_from_to.res.inst_10_a_0 Bool) (always_from_to.res.inst_9_a_0 Bool) (always_from_to.res.inst_8_a_0 Bool) (always_from_to.res.inst_7_a_0 Bool) (always_from_to.res.inst_6_a_0 Bool) (always_from_to.res.inst_5_a_0 Bool) (always_from_to.res.inst_4_a_0 Bool) (always_from_to.res.inst_3_a_0 Bool) (always_from_to.res.inst_2_a_0 Bool) (always_from_to.res.inst_1_a_0 Bool) (always_from_to.res.inst_0_a_0 Bool)) Bool + (and (= always_from_to.res.abs_3_a_0 (or always_from_to.res.abs_1_a_0 always_from_to.res.abs_2_a_0)) (= always_from_to.usr.X_a_0 always_from_to.res.abs_4_a_0) (__node_init_implies_0 always_from_to.res.abs_0_a_0 always_from_to.res.abs_3_a_0 always_from_to.res.abs_4_a_0 always_from_to.res.inst_12_a_0) (__node_init_after_0 always_from_to.usr.A_a_0 always_from_to.res.abs_0_a_0 always_from_to.res.inst_11_a_0 always_from_to.res.inst_10_a_0) (__node_init_always_since_0 always_from_to.usr.B_a_0 always_from_to.usr.A_a_0 always_from_to.res.nondet_0 always_from_to.res.abs_1_a_0 always_from_to.res.inst_9_a_0 always_from_to.res.inst_8_a_0 always_from_to.res.inst_7_a_0 always_from_to.res.inst_6_a_0 always_from_to.res.inst_5_a_0) (__node_init_once_since_0 always_from_to.usr.C_a_0 always_from_to.usr.A_a_0 always_from_to.res.nondet_1 always_from_to.res.abs_2_a_0 always_from_to.res.inst_4_a_0 always_from_to.res.inst_3_a_0 always_from_to.res.inst_2_a_0 always_from_to.res.inst_1_a_0 always_from_to.res.inst_0_a_0) always_from_to.res.init_flag_a_0)) +(define-fun __node_trans_always_from_to_0 ((always_from_to.usr.B_a_1 Bool) (always_from_to.usr.A_a_1 Bool) (always_from_to.usr.C_a_1 Bool) (always_from_to.res.nondet_1 Bool) (always_from_to.res.nondet_0 Bool) (always_from_to.usr.X_a_1 Bool) (always_from_to.res.init_flag_a_1 Bool) (always_from_to.res.abs_0_a_1 Bool) (always_from_to.res.abs_1_a_1 Bool) (always_from_to.res.abs_2_a_1 Bool) (always_from_to.res.abs_3_a_1 Bool) (always_from_to.res.abs_4_a_1 Bool) (always_from_to.res.inst_12_a_1 Bool) (always_from_to.res.inst_11_a_1 Bool) (always_from_to.res.inst_10_a_1 Bool) (always_from_to.res.inst_9_a_1 Bool) (always_from_to.res.inst_8_a_1 Bool) (always_from_to.res.inst_7_a_1 Bool) (always_from_to.res.inst_6_a_1 Bool) (always_from_to.res.inst_5_a_1 Bool) (always_from_to.res.inst_4_a_1 Bool) (always_from_to.res.inst_3_a_1 Bool) (always_from_to.res.inst_2_a_1 Bool) (always_from_to.res.inst_1_a_1 Bool) (always_from_to.res.inst_0_a_1 Bool) (always_from_to.usr.B_a_0 Bool) (always_from_to.usr.A_a_0 Bool) (always_from_to.usr.C_a_0 Bool) (always_from_to.usr.X_a_0 Bool) (always_from_to.res.init_flag_a_0 Bool) (always_from_to.res.abs_0_a_0 Bool) (always_from_to.res.abs_1_a_0 Bool) (always_from_to.res.abs_2_a_0 Bool) (always_from_to.res.abs_3_a_0 Bool) (always_from_to.res.abs_4_a_0 Bool) (always_from_to.res.inst_12_a_0 Bool) (always_from_to.res.inst_11_a_0 Bool) (always_from_to.res.inst_10_a_0 Bool) (always_from_to.res.inst_9_a_0 Bool) (always_from_to.res.inst_8_a_0 Bool) (always_from_to.res.inst_7_a_0 Bool) (always_from_to.res.inst_6_a_0 Bool) (always_from_to.res.inst_5_a_0 Bool) (always_from_to.res.inst_4_a_0 Bool) (always_from_to.res.inst_3_a_0 Bool) (always_from_to.res.inst_2_a_0 Bool) (always_from_to.res.inst_1_a_0 Bool) (always_from_to.res.inst_0_a_0 Bool)) Bool + (and (= always_from_to.res.abs_3_a_1 (or always_from_to.res.abs_1_a_1 always_from_to.res.abs_2_a_1)) (= always_from_to.usr.X_a_1 always_from_to.res.abs_4_a_1) (__node_trans_implies_0 always_from_to.res.abs_0_a_1 always_from_to.res.abs_3_a_1 always_from_to.res.abs_4_a_1 always_from_to.res.inst_12_a_1 always_from_to.res.abs_0_a_0 always_from_to.res.abs_3_a_0 always_from_to.res.abs_4_a_0 always_from_to.res.inst_12_a_0) (__node_trans_after_0 always_from_to.usr.A_a_1 always_from_to.res.abs_0_a_1 always_from_to.res.inst_11_a_1 always_from_to.res.inst_10_a_1 always_from_to.usr.A_a_0 always_from_to.res.abs_0_a_0 always_from_to.res.inst_11_a_0 always_from_to.res.inst_10_a_0) (__node_trans_always_since_0 always_from_to.usr.B_a_1 always_from_to.usr.A_a_1 always_from_to.res.nondet_0 always_from_to.res.abs_1_a_1 always_from_to.res.inst_9_a_1 always_from_to.res.inst_8_a_1 always_from_to.res.inst_7_a_1 always_from_to.res.inst_6_a_1 always_from_to.res.inst_5_a_1 always_from_to.usr.B_a_0 always_from_to.usr.A_a_0 always_from_to.res.abs_1_a_0 always_from_to.res.inst_9_a_0 always_from_to.res.inst_8_a_0 always_from_to.res.inst_7_a_0 always_from_to.res.inst_6_a_0 always_from_to.res.inst_5_a_0) (__node_trans_once_since_0 always_from_to.usr.C_a_1 always_from_to.usr.A_a_1 always_from_to.res.nondet_1 always_from_to.res.abs_2_a_1 always_from_to.res.inst_4_a_1 always_from_to.res.inst_3_a_1 always_from_to.res.inst_2_a_1 always_from_to.res.inst_1_a_1 always_from_to.res.inst_0_a_1 always_from_to.usr.C_a_0 always_from_to.usr.A_a_0 always_from_to.res.abs_2_a_0 always_from_to.res.inst_4_a_0 always_from_to.res.inst_3_a_0 always_from_to.res.inst_2_a_0 always_from_to.res.inst_1_a_0 always_from_to.res.inst_0_a_0) (not always_from_to.res.init_flag_a_1))) +(define-fun __node_init_UMS_0 ((UMS.usr.on_A_a_0 Bool) (UMS.usr.on_B_a_0 Bool) (UMS.usr.on_C_a_0 Bool) (UMS.usr.ack_AB_a_0 Bool) (UMS.usr.ack_BC_a_0 Bool) (UMS.usr.grant_access_a_0 Bool) (UMS.usr.grant_exit_a_0 Bool) (UMS.usr.do_AB_a_0 Bool) (UMS.usr.do_BC_a_0 Bool) (UMS.res.init_flag_a_0 Bool)) Bool + (and (= UMS.usr.grant_access_a_0 (and (not (or (or UMS.usr.on_A_a_0 UMS.usr.on_B_a_0) UMS.usr.on_C_a_0)) UMS.usr.ack_AB_a_0)) (and (= UMS.usr.grant_exit_a_0 (and (and UMS.usr.on_B_a_0 (not (or UMS.usr.on_A_a_0 UMS.usr.on_C_a_0))) UMS.usr.ack_BC_a_0)) (= UMS.usr.do_AB_a_0 (and (not UMS.usr.ack_AB_a_0) (not (or (or UMS.usr.on_A_a_0 UMS.usr.on_B_a_0) UMS.usr.on_C_a_0)))) (= UMS.usr.do_BC_a_0 (and (not UMS.usr.ack_BC_a_0) (and UMS.usr.on_B_a_0 (not (or UMS.usr.on_A_a_0 UMS.usr.on_C_a_0))))) UMS.res.init_flag_a_0))) +(define-fun __node_trans_UMS_0 ((UMS.usr.on_A_a_1 Bool) (UMS.usr.on_B_a_1 Bool) (UMS.usr.on_C_a_1 Bool) (UMS.usr.ack_AB_a_1 Bool) (UMS.usr.ack_BC_a_1 Bool) (UMS.usr.grant_access_a_1 Bool) (UMS.usr.grant_exit_a_1 Bool) (UMS.usr.do_AB_a_1 Bool) (UMS.usr.do_BC_a_1 Bool) (UMS.res.init_flag_a_1 Bool) (UMS.usr.on_A_a_0 Bool) (UMS.usr.on_B_a_0 Bool) (UMS.usr.on_C_a_0 Bool) (UMS.usr.ack_AB_a_0 Bool) (UMS.usr.ack_BC_a_0 Bool) (UMS.usr.grant_access_a_0 Bool) (UMS.usr.grant_exit_a_0 Bool) (UMS.usr.do_AB_a_0 Bool) (UMS.usr.do_BC_a_0 Bool) (UMS.res.init_flag_a_0 Bool)) Bool + (and (= UMS.usr.grant_access_a_1 (and (not (or (or UMS.usr.on_A_a_1 UMS.usr.on_B_a_1) UMS.usr.on_C_a_1)) UMS.usr.ack_AB_a_1)) (and (= UMS.usr.grant_exit_a_1 (and (and UMS.usr.on_B_a_1 (not (or UMS.usr.on_A_a_1 UMS.usr.on_C_a_1))) UMS.usr.ack_BC_a_1)) (= UMS.usr.do_AB_a_1 (and (not UMS.usr.ack_AB_a_1) (not (or (or UMS.usr.on_A_a_1 UMS.usr.on_B_a_1) UMS.usr.on_C_a_1)))) (= UMS.usr.do_BC_a_1 (and (not UMS.usr.ack_BC_a_1) (and UMS.usr.on_B_a_1 (not (or UMS.usr.on_A_a_1 UMS.usr.on_C_a_1))))) (not UMS.res.init_flag_a_1)))) +(define-fun __node_init_top_0 ((top.usr.on_A_a_0 Bool) (top.usr.on_B_a_0 Bool) (top.usr.on_C_a_0 Bool) (top.usr.ack_AB_a_0 Bool) (top.usr.ack_BC_a_0 Bool) (top.res.nondet_9 Bool) (top.res.nondet_8 Bool) (top.res.nondet_7 Bool) (top.res.nondet_6 Bool) (top.res.nondet_5 Bool) (top.res.nondet_4 Bool) (top.res.nondet_3 Bool) (top.res.nondet_2 Bool) (top.res.nondet_1 Bool) (top.res.nondet_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.grant_access_a_0 Bool) (top.impl.usr.grant_exit_a_0 Bool) (top.impl.usr.do_AB_a_0 Bool) (top.impl.usr.do_BC_a_0 Bool) (top.impl.usr.empty_section_a_0 Bool) (top.impl.usr.only_on_B_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.abs_12_a_0 Bool) (top.res.abs_13_a_0 Bool) (top.res.abs_14_a_0 Bool) (top.res.abs_15_a_0 Bool) (top.res.abs_16_a_0 Bool) (top.res.abs_17_a_0 Bool) (top.res.abs_18_a_0 Bool) (top.res.abs_19_a_0 Bool) (top.res.abs_20_a_0 Bool) (top.res.abs_21_a_0 Bool) (top.res.abs_22_a_0 Bool) (top.res.abs_23_a_0 Bool) (top.res.abs_24_a_0 Bool) (top.res.inst_86_a_0 Bool) (top.res.inst_85_a_0 Bool) (top.res.inst_84_a_0 Bool) (top.res.inst_83_a_0 Bool) (top.res.inst_82_a_0 Bool) (top.res.inst_81_a_0 Bool) (top.res.inst_80_a_0 Bool) (top.res.inst_79_a_0 Bool) (top.res.inst_78_a_0 Bool) (top.res.inst_77_a_0 Bool) (top.res.inst_76_a_0 Bool) (top.res.inst_75_a_0 Bool) (top.res.inst_74_a_0 Bool) (top.res.inst_73_a_0 Bool) (top.res.inst_72_a_0 Bool) (top.res.inst_71_a_0 Bool) (top.res.inst_70_a_0 Bool) (top.res.inst_69_a_0 Bool) (top.res.inst_68_a_0 Bool) (top.res.inst_67_a_0 Bool) (top.res.inst_66_a_0 Bool) (top.res.inst_65_a_0 Bool) (top.res.inst_64_a_0 Bool) (top.res.inst_63_a_0 Bool) (top.res.inst_62_a_0 Bool) (top.res.inst_61_a_0 Bool) (top.res.inst_60_a_0 Bool) (top.res.inst_59_a_0 Bool) (top.res.inst_58_a_0 Bool) (top.res.inst_57_a_0 Bool) (top.res.inst_56_a_0 Bool) (top.res.inst_55_a_0 Bool) (top.res.inst_54_a_0 Bool) (top.res.inst_53_a_0 Bool) (top.res.inst_52_a_0 Bool) (top.res.inst_51_a_0 Bool) (top.res.inst_50_a_0 Bool) (top.res.inst_49_a_0 Bool) (top.res.inst_48_a_0 Bool) (top.res.inst_47_a_0 Bool) (top.res.inst_46_a_0 Bool) (top.res.inst_45_a_0 Bool) (top.res.inst_44_a_0 Bool) (top.res.inst_43_a_0 Bool) (top.res.inst_42_a_0 Bool) (top.res.inst_41_a_0 Bool) (top.res.inst_40_a_0 Bool) (top.res.inst_39_a_0 Bool) (top.res.inst_38_a_0 Bool) (top.res.inst_37_a_0 Bool) (top.res.inst_36_a_0 Bool) (top.res.inst_35_a_0 Bool) (top.res.inst_34_a_0 Bool) (top.res.inst_33_a_0 Bool) (top.res.inst_32_a_0 Bool) (top.res.inst_31_a_0 Bool) (top.res.inst_30_a_0 Bool) (top.res.inst_29_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.empty_section_a_0 (not (or (or top.usr.on_A_a_0 top.usr.on_B_a_0) top.usr.on_C_a_0))) (= top.impl.usr.grant_exit_a_0 top.res.abs_1_a_0) (= top.impl.usr.only_on_B_a_0 (and top.usr.on_B_a_0 (not (or top.usr.on_A_a_0 top.usr.on_C_a_0)))) (= top.impl.usr.grant_access_a_0 top.res.abs_0_a_0) (= top.res.abs_18_a_0 (or top.usr.on_A_a_0 top.usr.on_C_a_0)) (= top.res.abs_16_a_0 (not top.usr.on_B_a_0)) (= top.res.abs_13_a_0 (not top.usr.on_A_a_0)) (= top.impl.usr.do_AB_a_0 top.res.abs_2_a_0) (= top.impl.usr.do_BC_a_0 top.res.abs_3_a_0) (= top.res.abs_20_a_0 (and (and (and (and (and (not (and top.usr.ack_AB_a_0 top.usr.ack_BC_a_0)) top.res.abs_4_a_0) top.res.abs_5_a_0) top.impl.usr.empty_section_a_0) top.res.abs_15_a_0) top.res.abs_19_a_0)) (and (= top.usr.OK_a_0 (=> top.res.abs_21_a_0 (and (and (and top.res.abs_22_a_0 (not (and top.impl.usr.do_AB_a_0 top.impl.usr.do_BC_a_0))) top.res.abs_23_a_0) top.res.abs_24_a_0))) (= top.res.abs_6_a_0 (not top.impl.usr.empty_section_a_0)) (= top.res.abs_8_a_0 top.res.nondet_4) (= top.res.abs_11_a_0 top.res.nondet_5) (__node_init_implies_0 top.impl.usr.grant_access_a_0 top.impl.usr.empty_section_a_0 top.res.abs_22_a_0 top.res.inst_86_a_0) (__node_init_UMS_0 top.usr.on_A_a_0 top.usr.on_B_a_0 top.usr.on_C_a_0 top.usr.ack_AB_a_0 top.usr.ack_BC_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_85_a_0) (__node_init_always_from_to_0 top.usr.ack_AB_a_0 top.impl.usr.grant_access_a_0 top.impl.usr.only_on_B_a_0 top.res.nondet_7 top.res.nondet_6 top.res.abs_23_a_0 top.res.inst_84_a_0 top.res.inst_83_a_0 top.res.inst_82_a_0 top.res.inst_81_a_0 top.res.inst_80_a_0 top.res.inst_79_a_0 top.res.inst_78_a_0 top.res.inst_77_a_0 top.res.inst_76_a_0 top.res.inst_75_a_0 top.res.inst_74_a_0 top.res.inst_73_a_0 top.res.inst_72_a_0 top.res.inst_71_a_0 top.res.inst_70_a_0 top.res.inst_69_a_0 top.res.inst_68_a_0 top.res.inst_67_a_0 top.res.inst_66_a_0) (__node_init_always_from_to_0 top.usr.ack_BC_a_0 top.impl.usr.grant_exit_a_0 top.impl.usr.empty_section_a_0 top.res.nondet_9 top.res.nondet_8 top.res.abs_24_a_0 top.res.inst_65_a_0 top.res.inst_64_a_0 top.res.inst_63_a_0 top.res.inst_62_a_0 top.res.inst_61_a_0 top.res.inst_60_a_0 top.res.inst_59_a_0 top.res.inst_58_a_0 top.res.inst_57_a_0 top.res.inst_56_a_0 top.res.inst_55_a_0 top.res.inst_54_a_0 top.res.inst_53_a_0 top.res.inst_52_a_0 top.res.inst_51_a_0 top.res.inst_50_a_0 top.res.inst_49_a_0 top.res.inst_48_a_0 top.res.inst_47_a_0) (__node_init_Sofar_0 top.res.abs_20_a_0 top.res.abs_21_a_0 top.res.inst_46_a_0) (__node_init_always_from_to_0 top.usr.ack_AB_a_0 top.usr.ack_AB_a_0 top.impl.usr.do_BC_a_0 top.res.nondet_1 top.res.nondet_0 top.res.abs_4_a_0 top.res.inst_45_a_0 top.res.inst_44_a_0 top.res.inst_43_a_0 top.res.inst_42_a_0 top.res.inst_41_a_0 top.res.inst_40_a_0 top.res.inst_39_a_0 top.res.inst_38_a_0 top.res.inst_37_a_0 top.res.inst_36_a_0 top.res.inst_35_a_0 top.res.inst_34_a_0 top.res.inst_33_a_0 top.res.inst_32_a_0 top.res.inst_31_a_0 top.res.inst_30_a_0 top.res.inst_29_a_0 top.res.inst_28_a_0 top.res.inst_27_a_0) (__node_init_always_from_to_0 top.usr.ack_BC_a_0 top.usr.ack_BC_a_0 top.impl.usr.do_AB_a_0 top.res.nondet_3 top.res.nondet_2 top.res.abs_5_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0) (__node_init_implies_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_7_a_0) (__node_init_edge_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_6_a_0) (__node_init_implies_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.inst_5_a_0) (__node_init_edge_0 top.usr.on_C_a_0 top.res.abs_10_a_0 top.res.inst_4_a_0) (__node_init_implies_0 top.res.abs_14_a_0 top.usr.on_B_a_0 top.res.abs_15_a_0 top.res.inst_3_a_0) (__node_init_edge_0 top.res.abs_13_a_0 top.res.abs_14_a_0 top.res.inst_2_a_0) (__node_init_implies_0 top.res.abs_17_a_0 top.res.abs_18_a_0 top.res.abs_19_a_0 top.res.inst_1_a_0) (__node_init_edge_0 top.res.abs_16_a_0 top.res.abs_17_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))) +(define-fun __node_trans_top_0 ((top.usr.on_A_a_1 Bool) (top.usr.on_B_a_1 Bool) (top.usr.on_C_a_1 Bool) (top.usr.ack_AB_a_1 Bool) (top.usr.ack_BC_a_1 Bool) (top.res.nondet_9 Bool) (top.res.nondet_8 Bool) (top.res.nondet_7 Bool) (top.res.nondet_6 Bool) (top.res.nondet_5 Bool) (top.res.nondet_4 Bool) (top.res.nondet_3 Bool) (top.res.nondet_2 Bool) (top.res.nondet_1 Bool) (top.res.nondet_0 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.grant_access_a_1 Bool) (top.impl.usr.grant_exit_a_1 Bool) (top.impl.usr.do_AB_a_1 Bool) (top.impl.usr.do_BC_a_1 Bool) (top.impl.usr.empty_section_a_1 Bool) (top.impl.usr.only_on_B_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.abs_12_a_1 Bool) (top.res.abs_13_a_1 Bool) (top.res.abs_14_a_1 Bool) (top.res.abs_15_a_1 Bool) (top.res.abs_16_a_1 Bool) (top.res.abs_17_a_1 Bool) (top.res.abs_18_a_1 Bool) (top.res.abs_19_a_1 Bool) (top.res.abs_20_a_1 Bool) (top.res.abs_21_a_1 Bool) (top.res.abs_22_a_1 Bool) (top.res.abs_23_a_1 Bool) (top.res.abs_24_a_1 Bool) (top.res.inst_86_a_1 Bool) (top.res.inst_85_a_1 Bool) (top.res.inst_84_a_1 Bool) (top.res.inst_83_a_1 Bool) (top.res.inst_82_a_1 Bool) (top.res.inst_81_a_1 Bool) (top.res.inst_80_a_1 Bool) (top.res.inst_79_a_1 Bool) (top.res.inst_78_a_1 Bool) (top.res.inst_77_a_1 Bool) (top.res.inst_76_a_1 Bool) (top.res.inst_75_a_1 Bool) (top.res.inst_74_a_1 Bool) (top.res.inst_73_a_1 Bool) (top.res.inst_72_a_1 Bool) (top.res.inst_71_a_1 Bool) (top.res.inst_70_a_1 Bool) (top.res.inst_69_a_1 Bool) (top.res.inst_68_a_1 Bool) (top.res.inst_67_a_1 Bool) (top.res.inst_66_a_1 Bool) (top.res.inst_65_a_1 Bool) (top.res.inst_64_a_1 Bool) (top.res.inst_63_a_1 Bool) (top.res.inst_62_a_1 Bool) (top.res.inst_61_a_1 Bool) (top.res.inst_60_a_1 Bool) (top.res.inst_59_a_1 Bool) (top.res.inst_58_a_1 Bool) (top.res.inst_57_a_1 Bool) (top.res.inst_56_a_1 Bool) (top.res.inst_55_a_1 Bool) (top.res.inst_54_a_1 Bool) (top.res.inst_53_a_1 Bool) (top.res.inst_52_a_1 Bool) (top.res.inst_51_a_1 Bool) (top.res.inst_50_a_1 Bool) (top.res.inst_49_a_1 Bool) (top.res.inst_48_a_1 Bool) (top.res.inst_47_a_1 Bool) (top.res.inst_46_a_1 Bool) (top.res.inst_45_a_1 Bool) (top.res.inst_44_a_1 Bool) (top.res.inst_43_a_1 Bool) (top.res.inst_42_a_1 Bool) (top.res.inst_41_a_1 Bool) (top.res.inst_40_a_1 Bool) (top.res.inst_39_a_1 Bool) (top.res.inst_38_a_1 Bool) (top.res.inst_37_a_1 Bool) (top.res.inst_36_a_1 Bool) (top.res.inst_35_a_1 Bool) (top.res.inst_34_a_1 Bool) (top.res.inst_33_a_1 Bool) (top.res.inst_32_a_1 Bool) (top.res.inst_31_a_1 Bool) (top.res.inst_30_a_1 Bool) (top.res.inst_29_a_1 Bool) (top.res.inst_28_a_1 Bool) (top.res.inst_27_a_1 Bool) (top.res.inst_26_a_1 Bool) (top.res.inst_25_a_1 Bool) (top.res.inst_24_a_1 Bool) (top.res.inst_23_a_1 Bool) (top.res.inst_22_a_1 Bool) (top.res.inst_21_a_1 Bool) (top.res.inst_20_a_1 Bool) (top.res.inst_19_a_1 Bool) (top.res.inst_18_a_1 Bool) (top.res.inst_17_a_1 Bool) (top.res.inst_16_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Bool) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Bool) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Bool) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.on_A_a_0 Bool) (top.usr.on_B_a_0 Bool) (top.usr.on_C_a_0 Bool) (top.usr.ack_AB_a_0 Bool) (top.usr.ack_BC_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.grant_access_a_0 Bool) (top.impl.usr.grant_exit_a_0 Bool) (top.impl.usr.do_AB_a_0 Bool) (top.impl.usr.do_BC_a_0 Bool) (top.impl.usr.empty_section_a_0 Bool) (top.impl.usr.only_on_B_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.abs_12_a_0 Bool) (top.res.abs_13_a_0 Bool) (top.res.abs_14_a_0 Bool) (top.res.abs_15_a_0 Bool) (top.res.abs_16_a_0 Bool) (top.res.abs_17_a_0 Bool) (top.res.abs_18_a_0 Bool) (top.res.abs_19_a_0 Bool) (top.res.abs_20_a_0 Bool) (top.res.abs_21_a_0 Bool) (top.res.abs_22_a_0 Bool) (top.res.abs_23_a_0 Bool) (top.res.abs_24_a_0 Bool) (top.res.inst_86_a_0 Bool) (top.res.inst_85_a_0 Bool) (top.res.inst_84_a_0 Bool) (top.res.inst_83_a_0 Bool) (top.res.inst_82_a_0 Bool) (top.res.inst_81_a_0 Bool) (top.res.inst_80_a_0 Bool) (top.res.inst_79_a_0 Bool) (top.res.inst_78_a_0 Bool) (top.res.inst_77_a_0 Bool) (top.res.inst_76_a_0 Bool) (top.res.inst_75_a_0 Bool) (top.res.inst_74_a_0 Bool) (top.res.inst_73_a_0 Bool) (top.res.inst_72_a_0 Bool) (top.res.inst_71_a_0 Bool) (top.res.inst_70_a_0 Bool) (top.res.inst_69_a_0 Bool) (top.res.inst_68_a_0 Bool) (top.res.inst_67_a_0 Bool) (top.res.inst_66_a_0 Bool) (top.res.inst_65_a_0 Bool) (top.res.inst_64_a_0 Bool) (top.res.inst_63_a_0 Bool) (top.res.inst_62_a_0 Bool) (top.res.inst_61_a_0 Bool) (top.res.inst_60_a_0 Bool) (top.res.inst_59_a_0 Bool) (top.res.inst_58_a_0 Bool) (top.res.inst_57_a_0 Bool) (top.res.inst_56_a_0 Bool) (top.res.inst_55_a_0 Bool) (top.res.inst_54_a_0 Bool) (top.res.inst_53_a_0 Bool) (top.res.inst_52_a_0 Bool) (top.res.inst_51_a_0 Bool) (top.res.inst_50_a_0 Bool) (top.res.inst_49_a_0 Bool) (top.res.inst_48_a_0 Bool) (top.res.inst_47_a_0 Bool) (top.res.inst_46_a_0 Bool) (top.res.inst_45_a_0 Bool) (top.res.inst_44_a_0 Bool) (top.res.inst_43_a_0 Bool) (top.res.inst_42_a_0 Bool) (top.res.inst_41_a_0 Bool) (top.res.inst_40_a_0 Bool) (top.res.inst_39_a_0 Bool) (top.res.inst_38_a_0 Bool) (top.res.inst_37_a_0 Bool) (top.res.inst_36_a_0 Bool) (top.res.inst_35_a_0 Bool) (top.res.inst_34_a_0 Bool) (top.res.inst_33_a_0 Bool) (top.res.inst_32_a_0 Bool) (top.res.inst_31_a_0 Bool) (top.res.inst_30_a_0 Bool) (top.res.inst_29_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.empty_section_a_1 (not (or (or top.usr.on_A_a_1 top.usr.on_B_a_1) top.usr.on_C_a_1))) (= top.impl.usr.grant_exit_a_1 top.res.abs_1_a_1) (= top.impl.usr.only_on_B_a_1 (and top.usr.on_B_a_1 (not (or top.usr.on_A_a_1 top.usr.on_C_a_1)))) (= top.impl.usr.grant_access_a_1 top.res.abs_0_a_1) (= top.res.abs_18_a_1 (or top.usr.on_A_a_1 top.usr.on_C_a_1)) (= top.res.abs_16_a_1 (not top.usr.on_B_a_1)) (= top.res.abs_13_a_1 (not top.usr.on_A_a_1)) (= top.res.abs_11_a_1 top.impl.usr.grant_exit_a_0) (= top.res.abs_8_a_1 top.impl.usr.grant_access_a_0) (= top.res.abs_6_a_1 (not top.impl.usr.empty_section_a_1)) (= top.impl.usr.do_AB_a_1 top.res.abs_2_a_1) (= top.impl.usr.do_BC_a_1 top.res.abs_3_a_1) (= top.res.abs_20_a_1 (and (and (and (and (and (and (not (and top.usr.ack_AB_a_1 top.usr.ack_BC_a_1)) top.res.abs_4_a_1) top.res.abs_5_a_1) top.res.abs_9_a_1) top.res.abs_12_a_1) top.res.abs_15_a_1) top.res.abs_19_a_1)) (and (= top.usr.OK_a_1 (=> top.res.abs_21_a_1 (and (and (and top.res.abs_22_a_1 (not (and top.impl.usr.do_AB_a_1 top.impl.usr.do_BC_a_1))) top.res.abs_23_a_1) top.res.abs_24_a_1))) (__node_trans_implies_0 top.impl.usr.grant_access_a_1 top.impl.usr.empty_section_a_1 top.res.abs_22_a_1 top.res.inst_86_a_1 top.impl.usr.grant_access_a_0 top.impl.usr.empty_section_a_0 top.res.abs_22_a_0 top.res.inst_86_a_0) (__node_trans_UMS_0 top.usr.on_A_a_1 top.usr.on_B_a_1 top.usr.on_C_a_1 top.usr.ack_AB_a_1 top.usr.ack_BC_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_85_a_1 top.usr.on_A_a_0 top.usr.on_B_a_0 top.usr.on_C_a_0 top.usr.ack_AB_a_0 top.usr.ack_BC_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_85_a_0) (__node_trans_always_from_to_0 top.usr.ack_AB_a_1 top.impl.usr.grant_access_a_1 top.impl.usr.only_on_B_a_1 top.res.nondet_7 top.res.nondet_6 top.res.abs_23_a_1 top.res.inst_84_a_1 top.res.inst_83_a_1 top.res.inst_82_a_1 top.res.inst_81_a_1 top.res.inst_80_a_1 top.res.inst_79_a_1 top.res.inst_78_a_1 top.res.inst_77_a_1 top.res.inst_76_a_1 top.res.inst_75_a_1 top.res.inst_74_a_1 top.res.inst_73_a_1 top.res.inst_72_a_1 top.res.inst_71_a_1 top.res.inst_70_a_1 top.res.inst_69_a_1 top.res.inst_68_a_1 top.res.inst_67_a_1 top.res.inst_66_a_1 top.usr.ack_AB_a_0 top.impl.usr.grant_access_a_0 top.impl.usr.only_on_B_a_0 top.res.abs_23_a_0 top.res.inst_84_a_0 top.res.inst_83_a_0 top.res.inst_82_a_0 top.res.inst_81_a_0 top.res.inst_80_a_0 top.res.inst_79_a_0 top.res.inst_78_a_0 top.res.inst_77_a_0 top.res.inst_76_a_0 top.res.inst_75_a_0 top.res.inst_74_a_0 top.res.inst_73_a_0 top.res.inst_72_a_0 top.res.inst_71_a_0 top.res.inst_70_a_0 top.res.inst_69_a_0 top.res.inst_68_a_0 top.res.inst_67_a_0 top.res.inst_66_a_0) (__node_trans_always_from_to_0 top.usr.ack_BC_a_1 top.impl.usr.grant_exit_a_1 top.impl.usr.empty_section_a_1 top.res.nondet_9 top.res.nondet_8 top.res.abs_24_a_1 top.res.inst_65_a_1 top.res.inst_64_a_1 top.res.inst_63_a_1 top.res.inst_62_a_1 top.res.inst_61_a_1 top.res.inst_60_a_1 top.res.inst_59_a_1 top.res.inst_58_a_1 top.res.inst_57_a_1 top.res.inst_56_a_1 top.res.inst_55_a_1 top.res.inst_54_a_1 top.res.inst_53_a_1 top.res.inst_52_a_1 top.res.inst_51_a_1 top.res.inst_50_a_1 top.res.inst_49_a_1 top.res.inst_48_a_1 top.res.inst_47_a_1 top.usr.ack_BC_a_0 top.impl.usr.grant_exit_a_0 top.impl.usr.empty_section_a_0 top.res.abs_24_a_0 top.res.inst_65_a_0 top.res.inst_64_a_0 top.res.inst_63_a_0 top.res.inst_62_a_0 top.res.inst_61_a_0 top.res.inst_60_a_0 top.res.inst_59_a_0 top.res.inst_58_a_0 top.res.inst_57_a_0 top.res.inst_56_a_0 top.res.inst_55_a_0 top.res.inst_54_a_0 top.res.inst_53_a_0 top.res.inst_52_a_0 top.res.inst_51_a_0 top.res.inst_50_a_0 top.res.inst_49_a_0 top.res.inst_48_a_0 top.res.inst_47_a_0) (__node_trans_Sofar_0 top.res.abs_20_a_1 top.res.abs_21_a_1 top.res.inst_46_a_1 top.res.abs_20_a_0 top.res.abs_21_a_0 top.res.inst_46_a_0) (__node_trans_always_from_to_0 top.usr.ack_AB_a_1 top.usr.ack_AB_a_1 top.impl.usr.do_BC_a_1 top.res.nondet_1 top.res.nondet_0 top.res.abs_4_a_1 top.res.inst_45_a_1 top.res.inst_44_a_1 top.res.inst_43_a_1 top.res.inst_42_a_1 top.res.inst_41_a_1 top.res.inst_40_a_1 top.res.inst_39_a_1 top.res.inst_38_a_1 top.res.inst_37_a_1 top.res.inst_36_a_1 top.res.inst_35_a_1 top.res.inst_34_a_1 top.res.inst_33_a_1 top.res.inst_32_a_1 top.res.inst_31_a_1 top.res.inst_30_a_1 top.res.inst_29_a_1 top.res.inst_28_a_1 top.res.inst_27_a_1 top.usr.ack_AB_a_0 top.usr.ack_AB_a_0 top.impl.usr.do_BC_a_0 top.res.abs_4_a_0 top.res.inst_45_a_0 top.res.inst_44_a_0 top.res.inst_43_a_0 top.res.inst_42_a_0 top.res.inst_41_a_0 top.res.inst_40_a_0 top.res.inst_39_a_0 top.res.inst_38_a_0 top.res.inst_37_a_0 top.res.inst_36_a_0 top.res.inst_35_a_0 top.res.inst_34_a_0 top.res.inst_33_a_0 top.res.inst_32_a_0 top.res.inst_31_a_0 top.res.inst_30_a_0 top.res.inst_29_a_0 top.res.inst_28_a_0 top.res.inst_27_a_0) (__node_trans_always_from_to_0 top.usr.ack_BC_a_1 top.usr.ack_BC_a_1 top.impl.usr.do_AB_a_1 top.res.nondet_3 top.res.nondet_2 top.res.abs_5_a_1 top.res.inst_26_a_1 top.res.inst_25_a_1 top.res.inst_24_a_1 top.res.inst_23_a_1 top.res.inst_22_a_1 top.res.inst_21_a_1 top.res.inst_20_a_1 top.res.inst_19_a_1 top.res.inst_18_a_1 top.res.inst_17_a_1 top.res.inst_16_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.usr.ack_BC_a_0 top.usr.ack_BC_a_0 top.impl.usr.do_AB_a_0 top.res.abs_5_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0) (__node_trans_implies_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_7_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_7_a_0) (__node_trans_edge_0 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.inst_6_a_1 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_6_a_0) (__node_trans_implies_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.abs_12_a_1 top.res.inst_5_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.inst_5_a_0) (__node_trans_edge_0 top.usr.on_C_a_1 top.res.abs_10_a_1 top.res.inst_4_a_1 top.usr.on_C_a_0 top.res.abs_10_a_0 top.res.inst_4_a_0) (__node_trans_implies_0 top.res.abs_14_a_1 top.usr.on_B_a_1 top.res.abs_15_a_1 top.res.inst_3_a_1 top.res.abs_14_a_0 top.usr.on_B_a_0 top.res.abs_15_a_0 top.res.inst_3_a_0) (__node_trans_edge_0 top.res.abs_13_a_1 top.res.abs_14_a_1 top.res.inst_2_a_1 top.res.abs_13_a_0 top.res.abs_14_a_0 top.res.inst_2_a_0) (__node_trans_implies_0 top.res.abs_17_a_1 top.res.abs_18_a_1 top.res.abs_19_a_1 top.res.inst_1_a_1 top.res.abs_17_a_0 top.res.abs_18_a_0 top.res.abs_19_a_0 top.res.inst_1_a_0) (__node_trans_edge_0 top.res.abs_16_a_1 top.res.abs_17_a_1 top.res.inst_0_a_1 top.res.abs_16_a_0 top.res.abs_17_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))) (synth-inv str_invariant ((top.usr.on_A Bool) (top.usr.on_B Bool) (top.usr.on_C Bool) (top.usr.ack_AB Bool) (top.usr.ack_BC Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.grant_access Bool) (top.impl.usr.grant_exit Bool) (top.impl.usr.do_AB Bool) (top.impl.usr.do_BC Bool) (top.impl.usr.empty_section Bool) (top.impl.usr.only_on_B Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.abs_13 Bool) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.abs_17 Bool) (top.res.abs_18 Bool) (top.res.abs_19 Bool) (top.res.abs_20 Bool) (top.res.abs_21 Bool) (top.res.abs_22 Bool) (top.res.abs_23 Bool) (top.res.abs_24 Bool) (top.res.inst_86 Bool) (top.res.inst_85 Bool) (top.res.inst_84 Bool) (top.res.inst_83 Bool) (top.res.inst_82 Bool) (top.res.inst_81 Bool) (top.res.inst_80 Bool) (top.res.inst_79 Bool) (top.res.inst_78 Bool) (top.res.inst_77 Bool) (top.res.inst_76 Bool) (top.res.inst_75 Bool) (top.res.inst_74 Bool) (top.res.inst_73 Bool) (top.res.inst_72 Bool) (top.res.inst_71 Bool) (top.res.inst_70 Bool) (top.res.inst_69 Bool) (top.res.inst_68 Bool) (top.res.inst_67 Bool) (top.res.inst_66 Bool) (top.res.inst_65 Bool) (top.res.inst_64 Bool) (top.res.inst_63 Bool) (top.res.inst_62 Bool) (top.res.inst_61 Bool) (top.res.inst_60 Bool) (top.res.inst_59 Bool) (top.res.inst_58 Bool) (top.res.inst_57 Bool) (top.res.inst_56 Bool) (top.res.inst_55 Bool) (top.res.inst_54 Bool) (top.res.inst_53 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Bool) (top.res.inst_50 Bool) (top.res.inst_49 Bool) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + (declare-var top.res.nondet_9 Bool) (declare-var top.res.nondet_8 Bool) (declare-var top.res.nondet_7 Bool) @@ -29,135 +48,14 @@ (declare-var top.res.nondet_2 Bool) (declare-var top.res.nondet_1 Bool) (declare-var top.res.nondet_0 Bool) -(declare-primed-var top.usr.on_A Bool) -(declare-primed-var top.usr.on_B Bool) -(declare-primed-var top.usr.on_C Bool) -(declare-primed-var top.usr.ack_AB Bool) -(declare-primed-var top.usr.ack_BC Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.grant_access Bool) -(declare-primed-var top.impl.usr.grant_exit Bool) -(declare-primed-var top.impl.usr.do_AB Bool) -(declare-primed-var top.impl.usr.do_BC Bool) -(declare-primed-var top.impl.usr.empty_section Bool) -(declare-primed-var top.impl.usr.only_on_B Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.abs_12 Bool) -(declare-primed-var top.res.abs_13 Bool) -(declare-primed-var top.res.abs_14 Bool) -(declare-primed-var top.res.abs_15 Bool) -(declare-primed-var top.res.abs_16 Bool) -(declare-primed-var top.res.abs_17 Bool) -(declare-primed-var top.res.abs_18 Bool) -(declare-primed-var top.res.abs_19 Bool) -(declare-primed-var top.res.abs_20 Bool) -(declare-primed-var top.res.abs_21 Bool) -(declare-primed-var top.res.abs_22 Bool) -(declare-primed-var top.res.abs_23 Bool) -(declare-primed-var top.res.abs_24 Bool) -(declare-primed-var top.res.inst_86 Bool) -(declare-primed-var top.res.inst_85 Bool) -(declare-primed-var top.res.inst_84 Bool) -(declare-primed-var top.res.inst_83 Bool) -(declare-primed-var top.res.inst_82 Bool) -(declare-primed-var top.res.inst_81 Bool) -(declare-primed-var top.res.inst_80 Bool) -(declare-primed-var top.res.inst_79 Bool) -(declare-primed-var top.res.inst_78 Bool) -(declare-primed-var top.res.inst_77 Bool) -(declare-primed-var top.res.inst_76 Bool) -(declare-primed-var top.res.inst_75 Bool) -(declare-primed-var top.res.inst_74 Bool) -(declare-primed-var top.res.inst_73 Bool) -(declare-primed-var top.res.inst_72 Bool) -(declare-primed-var top.res.inst_71 Bool) -(declare-primed-var top.res.inst_70 Bool) -(declare-primed-var top.res.inst_69 Bool) -(declare-primed-var top.res.inst_68 Bool) -(declare-primed-var top.res.inst_67 Bool) -(declare-primed-var top.res.inst_66 Bool) -(declare-primed-var top.res.inst_65 Bool) -(declare-primed-var top.res.inst_64 Bool) -(declare-primed-var top.res.inst_63 Bool) -(declare-primed-var top.res.inst_62 Bool) -(declare-primed-var top.res.inst_61 Bool) -(declare-primed-var top.res.inst_60 Bool) -(declare-primed-var top.res.inst_59 Bool) -(declare-primed-var top.res.inst_58 Bool) -(declare-primed-var top.res.inst_57 Bool) -(declare-primed-var top.res.inst_56 Bool) -(declare-primed-var top.res.inst_55 Bool) -(declare-primed-var top.res.inst_54 Bool) -(declare-primed-var top.res.inst_53 Bool) -(declare-primed-var top.res.inst_52 Bool) -(declare-primed-var top.res.inst_51 Bool) -(declare-primed-var top.res.inst_50 Bool) -(declare-primed-var top.res.inst_49 Bool) -(declare-primed-var top.res.inst_48 Bool) -(declare-primed-var top.res.inst_47 Bool) -(declare-primed-var top.res.inst_46 Bool) -(declare-primed-var top.res.inst_45 Bool) -(declare-primed-var top.res.inst_44 Bool) -(declare-primed-var top.res.inst_43 Bool) -(declare-primed-var top.res.inst_42 Bool) -(declare-primed-var top.res.inst_41 Bool) -(declare-primed-var top.res.inst_40 Bool) -(declare-primed-var top.res.inst_39 Bool) -(declare-primed-var top.res.inst_38 Bool) -(declare-primed-var top.res.inst_37 Bool) -(declare-primed-var top.res.inst_36 Bool) -(declare-primed-var top.res.inst_35 Bool) -(declare-primed-var top.res.inst_34 Bool) -(declare-primed-var top.res.inst_33 Bool) -(declare-primed-var top.res.inst_32 Bool) -(declare-primed-var top.res.inst_31 Bool) -(declare-primed-var top.res.inst_30 Bool) -(declare-primed-var top.res.inst_29 Bool) -(declare-primed-var top.res.inst_28 Bool) -(declare-primed-var top.res.inst_27 Bool) -(declare-primed-var top.res.inst_26 Bool) -(declare-primed-var top.res.inst_25 Bool) -(declare-primed-var top.res.inst_24 Bool) -(declare-primed-var top.res.inst_23 Bool) -(declare-primed-var top.res.inst_22 Bool) -(declare-primed-var top.res.inst_21 Bool) -(declare-primed-var top.res.inst_20 Bool) -(declare-primed-var top.res.inst_19 Bool) -(declare-primed-var top.res.inst_18 Bool) -(declare-primed-var top.res.inst_17 Bool) -(declare-primed-var top.res.inst_16 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Bool) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Bool) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Bool) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) -(define-fun init ((top.usr.on_A Bool) (top.usr.on_B Bool) (top.usr.on_C Bool) (top.usr.ack_AB Bool) (top.usr.ack_BC Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.grant_access Bool) (top.impl.usr.grant_exit Bool) (top.impl.usr.do_AB Bool) (top.impl.usr.do_BC Bool) (top.impl.usr.empty_section Bool) (top.impl.usr.only_on_B Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.abs_13 Bool) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.abs_17 Bool) (top.res.abs_18 Bool) (top.res.abs_19 Bool) (top.res.abs_20 Bool) (top.res.abs_21 Bool) (top.res.abs_22 Bool) (top.res.abs_23 Bool) (top.res.abs_24 Bool) (top.res.inst_86 Bool) (top.res.inst_85 Bool) (top.res.inst_84 Bool) (top.res.inst_83 Bool) (top.res.inst_82 Bool) (top.res.inst_81 Bool) (top.res.inst_80 Bool) (top.res.inst_79 Bool) (top.res.inst_78 Bool) (top.res.inst_77 Bool) (top.res.inst_76 Bool) (top.res.inst_75 Bool) (top.res.inst_74 Bool) (top.res.inst_73 Bool) (top.res.inst_72 Bool) (top.res.inst_71 Bool) (top.res.inst_70 Bool) (top.res.inst_69 Bool) (top.res.inst_68 Bool) (top.res.inst_67 Bool) (top.res.inst_66 Bool) (top.res.inst_65 Bool) (top.res.inst_64 Bool) (top.res.inst_63 Bool) (top.res.inst_62 Bool) (top.res.inst_61 Bool) (top.res.inst_60 Bool) (top.res.inst_59 Bool) (top.res.inst_58 Bool) (top.res.inst_57 Bool) (top.res.inst_56 Bool) (top.res.inst_55 Bool) (top.res.inst_54 Bool) (top.res.inst_53 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Bool) (top.res.inst_50 Bool) (top.res.inst_49 Bool) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool (and (= top.impl.usr.empty_section (not (or (or top.usr.on_A top.usr.on_B) top.usr.on_C))) (= top.impl.usr.grant_exit top.res.abs_1) (= top.impl.usr.only_on_B (and top.usr.on_B (not (or top.usr.on_A top.usr.on_C)))) (= top.impl.usr.grant_access top.res.abs_0) (= top.res.abs_18 (or top.usr.on_A top.usr.on_C)) (= top.res.abs_16 (not top.usr.on_B)) (= top.res.abs_13 (not top.usr.on_A)) (= top.impl.usr.do_AB top.res.abs_2) (= top.impl.usr.do_BC top.res.abs_3) (= top.res.abs_20 (and (and (and (and (and (not (and top.usr.ack_AB top.usr.ack_BC)) top.res.abs_4) top.res.abs_5) top.impl.usr.empty_section) top.res.abs_15) top.res.abs_19)) (and (= top.usr.OK (=> top.res.abs_21 (and (and (and top.res.abs_22 (not (and top.impl.usr.do_AB top.impl.usr.do_BC))) top.res.abs_23) top.res.abs_24))) (= top.res.abs_6 (not top.impl.usr.empty_section)) (= top.res.abs_8 top.res.nondet_4) (= top.res.abs_11 top.res.nondet_5) (__node_init_implies_0 top.impl.usr.grant_access top.impl.usr.empty_section top.res.abs_22 top.res.inst_86) (__node_init_UMS_0 top.usr.on_A top.usr.on_B top.usr.on_C top.usr.ack_AB top.usr.ack_BC top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_85) (__node_init_always_from_to_0 top.usr.ack_AB top.impl.usr.grant_access top.impl.usr.only_on_B top.res.nondet_7 top.res.nondet_6 top.res.abs_23 top.res.inst_84 top.res.inst_83 top.res.inst_82 top.res.inst_81 top.res.inst_80 top.res.inst_79 top.res.inst_78 top.res.inst_77 top.res.inst_76 top.res.inst_75 top.res.inst_74 top.res.inst_73 top.res.inst_72 top.res.inst_71 top.res.inst_70 top.res.inst_69 top.res.inst_68 top.res.inst_67 top.res.inst_66) (__node_init_always_from_to_0 top.usr.ack_BC top.impl.usr.grant_exit top.impl.usr.empty_section top.res.nondet_9 top.res.nondet_8 top.res.abs_24 top.res.inst_65 top.res.inst_64 top.res.inst_63 top.res.inst_62 top.res.inst_61 top.res.inst_60 top.res.inst_59 top.res.inst_58 top.res.inst_57 top.res.inst_56 top.res.inst_55 top.res.inst_54 top.res.inst_53 top.res.inst_52 top.res.inst_51 top.res.inst_50 top.res.inst_49 top.res.inst_48 top.res.inst_47) (__node_init_Sofar_0 top.res.abs_20 top.res.abs_21 top.res.inst_46) (__node_init_always_from_to_0 top.usr.ack_AB top.usr.ack_AB top.impl.usr.do_BC top.res.nondet_1 top.res.nondet_0 top.res.abs_4 top.res.inst_45 top.res.inst_44 top.res.inst_43 top.res.inst_42 top.res.inst_41 top.res.inst_40 top.res.inst_39 top.res.inst_38 top.res.inst_37 top.res.inst_36 top.res.inst_35 top.res.inst_34 top.res.inst_33 top.res.inst_32 top.res.inst_31 top.res.inst_30 top.res.inst_29 top.res.inst_28 top.res.inst_27) (__node_init_always_from_to_0 top.usr.ack_BC top.usr.ack_BC top.impl.usr.do_AB top.res.nondet_3 top.res.nondet_2 top.res.abs_5 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8) (__node_init_implies_0 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_7) (__node_init_edge_0 top.res.abs_6 top.res.abs_7 top.res.inst_6) (__node_init_implies_0 top.res.abs_10 top.res.abs_11 top.res.abs_12 top.res.inst_5) (__node_init_edge_0 top.usr.on_C top.res.abs_10 top.res.inst_4) (__node_init_implies_0 top.res.abs_14 top.usr.on_B top.res.abs_15 top.res.inst_3) (__node_init_edge_0 top.res.abs_13 top.res.abs_14 top.res.inst_2) (__node_init_implies_0 top.res.abs_17 top.res.abs_18 top.res.abs_19 top.res.inst_1) (__node_init_edge_0 top.res.abs_16 top.res.abs_17 top.res.inst_0) top.res.init_flag))) -(define-fun trans ((top.usr.on_A Bool) (top.usr.on_B Bool) (top.usr.on_C Bool) (top.usr.ack_AB Bool) (top.usr.ack_BC Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.grant_access Bool) (top.impl.usr.grant_exit Bool) (top.impl.usr.do_AB Bool) (top.impl.usr.do_BC Bool) (top.impl.usr.empty_section Bool) (top.impl.usr.only_on_B Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.abs_13 Bool) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.abs_17 Bool) (top.res.abs_18 Bool) (top.res.abs_19 Bool) (top.res.abs_20 Bool) (top.res.abs_21 Bool) (top.res.abs_22 Bool) (top.res.abs_23 Bool) (top.res.abs_24 Bool) (top.res.inst_86 Bool) (top.res.inst_85 Bool) (top.res.inst_84 Bool) (top.res.inst_83 Bool) (top.res.inst_82 Bool) (top.res.inst_81 Bool) (top.res.inst_80 Bool) (top.res.inst_79 Bool) (top.res.inst_78 Bool) (top.res.inst_77 Bool) (top.res.inst_76 Bool) (top.res.inst_75 Bool) (top.res.inst_74 Bool) (top.res.inst_73 Bool) (top.res.inst_72 Bool) (top.res.inst_71 Bool) (top.res.inst_70 Bool) (top.res.inst_69 Bool) (top.res.inst_68 Bool) (top.res.inst_67 Bool) (top.res.inst_66 Bool) (top.res.inst_65 Bool) (top.res.inst_64 Bool) (top.res.inst_63 Bool) (top.res.inst_62 Bool) (top.res.inst_61 Bool) (top.res.inst_60 Bool) (top.res.inst_59 Bool) (top.res.inst_58 Bool) (top.res.inst_57 Bool) (top.res.inst_56 Bool) (top.res.inst_55 Bool) (top.res.inst_54 Bool) (top.res.inst_53 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Bool) (top.res.inst_50 Bool) (top.res.inst_49 Bool) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.on_A! Bool) (top.usr.on_B! Bool) (top.usr.on_C! Bool) (top.usr.ack_AB! Bool) (top.usr.ack_BC! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.grant_access! Bool) (top.impl.usr.grant_exit! Bool) (top.impl.usr.do_AB! Bool) (top.impl.usr.do_BC! Bool) (top.impl.usr.empty_section! Bool) (top.impl.usr.only_on_B! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.abs_12! Bool) (top.res.abs_13! Bool) (top.res.abs_14! Bool) (top.res.abs_15! Bool) (top.res.abs_16! Bool) (top.res.abs_17! Bool) (top.res.abs_18! Bool) (top.res.abs_19! Bool) (top.res.abs_20! Bool) (top.res.abs_21! Bool) (top.res.abs_22! Bool) (top.res.abs_23! Bool) (top.res.abs_24! Bool) (top.res.inst_86! Bool) (top.res.inst_85! Bool) (top.res.inst_84! Bool) (top.res.inst_83! Bool) (top.res.inst_82! Bool) (top.res.inst_81! Bool) (top.res.inst_80! Bool) (top.res.inst_79! Bool) (top.res.inst_78! Bool) (top.res.inst_77! Bool) (top.res.inst_76! Bool) (top.res.inst_75! Bool) (top.res.inst_74! Bool) (top.res.inst_73! Bool) (top.res.inst_72! Bool) (top.res.inst_71! Bool) (top.res.inst_70! Bool) (top.res.inst_69! Bool) (top.res.inst_68! Bool) (top.res.inst_67! Bool) (top.res.inst_66! Bool) (top.res.inst_65! Bool) (top.res.inst_64! Bool) (top.res.inst_63! Bool) (top.res.inst_62! Bool) (top.res.inst_61! Bool) (top.res.inst_60! Bool) (top.res.inst_59! Bool) (top.res.inst_58! Bool) (top.res.inst_57! Bool) (top.res.inst_56! Bool) (top.res.inst_55! Bool) (top.res.inst_54! Bool) (top.res.inst_53! Bool) (top.res.inst_52! Bool) (top.res.inst_51! Bool) (top.res.inst_50! Bool) (top.res.inst_49! Bool) (top.res.inst_48! Bool) (top.res.inst_47! Bool) (top.res.inst_46! Bool) (top.res.inst_45! Bool) (top.res.inst_44! Bool) (top.res.inst_43! Bool) (top.res.inst_42! Bool) (top.res.inst_41! Bool) (top.res.inst_40! Bool) (top.res.inst_39! Bool) (top.res.inst_38! Bool) (top.res.inst_37! Bool) (top.res.inst_36! Bool) (top.res.inst_35! Bool) (top.res.inst_34! Bool) (top.res.inst_33! Bool) (top.res.inst_32! Bool) (top.res.inst_31! Bool) (top.res.inst_30! Bool) (top.res.inst_29! Bool) (top.res.inst_28! Bool) (top.res.inst_27! Bool) (top.res.inst_26! Bool) (top.res.inst_25! Bool) (top.res.inst_24! Bool) (top.res.inst_23! Bool) (top.res.inst_22! Bool) (top.res.inst_21! Bool) (top.res.inst_20! Bool) (top.res.inst_19! Bool) (top.res.inst_18! Bool) (top.res.inst_17! Bool) (top.res.inst_16! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Bool) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Bool) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Bool) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool (and (and (= top.impl.usr.empty_section! (not (or (or top.usr.on_A! top.usr.on_B!) top.usr.on_C!))) (= top.impl.usr.grant_exit! top.res.abs_1!) (= top.impl.usr.only_on_B! (and top.usr.on_B! (not (or top.usr.on_A! top.usr.on_C!)))) (= top.impl.usr.grant_access! top.res.abs_0!) (= top.res.abs_18! (or top.usr.on_A! top.usr.on_C!)) (= top.res.abs_16! (not top.usr.on_B!)) (= top.res.abs_13! (not top.usr.on_A!)) (= top.res.abs_11! top.impl.usr.grant_exit) (= top.res.abs_8! top.impl.usr.grant_access) (= top.res.abs_6! (not top.impl.usr.empty_section!)) (= top.impl.usr.do_AB! top.res.abs_2!) (= top.impl.usr.do_BC! top.res.abs_3!) (= top.res.abs_20! (and (and (and (and (and (and (not (and top.usr.ack_AB! top.usr.ack_BC!)) top.res.abs_4!) top.res.abs_5!) top.res.abs_9!) top.res.abs_12!) top.res.abs_15!) top.res.abs_19!)) (and (= top.usr.OK! (=> top.res.abs_21! (and (and (and top.res.abs_22! (not (and top.impl.usr.do_AB! top.impl.usr.do_BC!))) top.res.abs_23!) top.res.abs_24!))) (__node_trans_implies_0 top.impl.usr.grant_access! top.impl.usr.empty_section! top.res.abs_22! top.res.inst_86! top.impl.usr.grant_access top.impl.usr.empty_section top.res.abs_22 top.res.inst_86) (__node_trans_UMS_0 top.usr.on_A! top.usr.on_B! top.usr.on_C! top.usr.ack_AB! top.usr.ack_BC! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_85! top.usr.on_A top.usr.on_B top.usr.on_C top.usr.ack_AB top.usr.ack_BC top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_85) (__node_trans_always_from_to_0 top.usr.ack_AB! top.impl.usr.grant_access! top.impl.usr.only_on_B! top.res.nondet_7 top.res.nondet_6 top.res.abs_23! top.res.inst_84! top.res.inst_83! top.res.inst_82! top.res.inst_81! top.res.inst_80! top.res.inst_79! top.res.inst_78! top.res.inst_77! top.res.inst_76! top.res.inst_75! top.res.inst_74! top.res.inst_73! top.res.inst_72! top.res.inst_71! top.res.inst_70! top.res.inst_69! top.res.inst_68! top.res.inst_67! top.res.inst_66! top.usr.ack_AB top.impl.usr.grant_access top.impl.usr.only_on_B top.res.abs_23 top.res.inst_84 top.res.inst_83 top.res.inst_82 top.res.inst_81 top.res.inst_80 top.res.inst_79 top.res.inst_78 top.res.inst_77 top.res.inst_76 top.res.inst_75 top.res.inst_74 top.res.inst_73 top.res.inst_72 top.res.inst_71 top.res.inst_70 top.res.inst_69 top.res.inst_68 top.res.inst_67 top.res.inst_66) (__node_trans_always_from_to_0 top.usr.ack_BC! top.impl.usr.grant_exit! top.impl.usr.empty_section! top.res.nondet_9 top.res.nondet_8 top.res.abs_24! top.res.inst_65! top.res.inst_64! top.res.inst_63! top.res.inst_62! top.res.inst_61! top.res.inst_60! top.res.inst_59! top.res.inst_58! top.res.inst_57! top.res.inst_56! top.res.inst_55! top.res.inst_54! top.res.inst_53! top.res.inst_52! top.res.inst_51! top.res.inst_50! top.res.inst_49! top.res.inst_48! top.res.inst_47! top.usr.ack_BC top.impl.usr.grant_exit top.impl.usr.empty_section top.res.abs_24 top.res.inst_65 top.res.inst_64 top.res.inst_63 top.res.inst_62 top.res.inst_61 top.res.inst_60 top.res.inst_59 top.res.inst_58 top.res.inst_57 top.res.inst_56 top.res.inst_55 top.res.inst_54 top.res.inst_53 top.res.inst_52 top.res.inst_51 top.res.inst_50 top.res.inst_49 top.res.inst_48 top.res.inst_47) (__node_trans_Sofar_0 top.res.abs_20! top.res.abs_21! top.res.inst_46! top.res.abs_20 top.res.abs_21 top.res.inst_46) (__node_trans_always_from_to_0 top.usr.ack_AB! top.usr.ack_AB! top.impl.usr.do_BC! top.res.nondet_1 top.res.nondet_0 top.res.abs_4! top.res.inst_45! top.res.inst_44! top.res.inst_43! top.res.inst_42! top.res.inst_41! top.res.inst_40! top.res.inst_39! top.res.inst_38! top.res.inst_37! top.res.inst_36! top.res.inst_35! top.res.inst_34! top.res.inst_33! top.res.inst_32! top.res.inst_31! top.res.inst_30! top.res.inst_29! top.res.inst_28! top.res.inst_27! top.usr.ack_AB top.usr.ack_AB top.impl.usr.do_BC top.res.abs_4 top.res.inst_45 top.res.inst_44 top.res.inst_43 top.res.inst_42 top.res.inst_41 top.res.inst_40 top.res.inst_39 top.res.inst_38 top.res.inst_37 top.res.inst_36 top.res.inst_35 top.res.inst_34 top.res.inst_33 top.res.inst_32 top.res.inst_31 top.res.inst_30 top.res.inst_29 top.res.inst_28 top.res.inst_27) (__node_trans_always_from_to_0 top.usr.ack_BC! top.usr.ack_BC! top.impl.usr.do_AB! top.res.nondet_3 top.res.nondet_2 top.res.abs_5! top.res.inst_26! top.res.inst_25! top.res.inst_24! top.res.inst_23! top.res.inst_22! top.res.inst_21! top.res.inst_20! top.res.inst_19! top.res.inst_18! top.res.inst_17! top.res.inst_16! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.usr.ack_BC top.usr.ack_BC top.impl.usr.do_AB top.res.abs_5 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8) (__node_trans_implies_0 top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_7! top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_7) (__node_trans_edge_0 top.res.abs_6! top.res.abs_7! top.res.inst_6! top.res.abs_6 top.res.abs_7 top.res.inst_6) (__node_trans_implies_0 top.res.abs_10! top.res.abs_11! top.res.abs_12! top.res.inst_5! top.res.abs_10 top.res.abs_11 top.res.abs_12 top.res.inst_5) (__node_trans_edge_0 top.usr.on_C! top.res.abs_10! top.res.inst_4! top.usr.on_C top.res.abs_10 top.res.inst_4) (__node_trans_implies_0 top.res.abs_14! top.usr.on_B! top.res.abs_15! top.res.inst_3! top.res.abs_14 top.usr.on_B top.res.abs_15 top.res.inst_3) (__node_trans_edge_0 top.res.abs_13! top.res.abs_14! top.res.inst_2! top.res.abs_13 top.res.abs_14 top.res.inst_2) (__node_trans_implies_0 top.res.abs_17! top.res.abs_18! top.res.abs_19! top.res.inst_1! top.res.abs_17 top.res.abs_18 top.res.abs_19 top.res.inst_1) (__node_trans_edge_0 top.res.abs_16! top.res.abs_17! top.res.inst_0! top.res.abs_16 top.res.abs_17 top.res.inst_0) (not top.res.init_flag!))) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) -(define-fun prop ((top.usr.on_A Bool) (top.usr.on_B Bool) (top.usr.on_C Bool) (top.usr.ack_AB Bool) (top.usr.ack_BC Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.grant_access Bool) (top.impl.usr.grant_exit Bool) (top.impl.usr.do_AB Bool) (top.impl.usr.do_BC Bool) (top.impl.usr.empty_section Bool) (top.impl.usr.only_on_B Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.abs_13 Bool) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.abs_17 Bool) (top.res.abs_18 Bool) (top.res.abs_19 Bool) (top.res.abs_20 Bool) (top.res.abs_21 Bool) (top.res.abs_22 Bool) (top.res.abs_23 Bool) (top.res.abs_24 Bool) (top.res.inst_86 Bool) (top.res.inst_85 Bool) (top.res.inst_84 Bool) (top.res.inst_83 Bool) (top.res.inst_82 Bool) (top.res.inst_81 Bool) (top.res.inst_80 Bool) (top.res.inst_79 Bool) (top.res.inst_78 Bool) (top.res.inst_77 Bool) (top.res.inst_76 Bool) (top.res.inst_75 Bool) (top.res.inst_74 Bool) (top.res.inst_73 Bool) (top.res.inst_72 Bool) (top.res.inst_71 Bool) (top.res.inst_70 Bool) (top.res.inst_69 Bool) (top.res.inst_68 Bool) (top.res.inst_67 Bool) (top.res.inst_66 Bool) (top.res.inst_65 Bool) (top.res.inst_64 Bool) (top.res.inst_63 Bool) (top.res.inst_62 Bool) (top.res.inst_61 Bool) (top.res.inst_60 Bool) (top.res.inst_59 Bool) (top.res.inst_58 Bool) (top.res.inst_57 Bool) (top.res.inst_56 Bool) (top.res.inst_55 Bool) (top.res.inst_54 Bool) (top.res.inst_53 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Bool) (top.res.inst_50 Bool) (top.res.inst_49 Bool) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool top.usr.OK) +(define-fun init ((top.usr.on_A Bool) (top.usr.on_B Bool) (top.usr.on_C Bool) (top.usr.ack_AB Bool) (top.usr.ack_BC Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.grant_access Bool) (top.impl.usr.grant_exit Bool) (top.impl.usr.do_AB Bool) (top.impl.usr.do_BC Bool) (top.impl.usr.empty_section Bool) (top.impl.usr.only_on_B Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.abs_13 Bool) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.abs_17 Bool) (top.res.abs_18 Bool) (top.res.abs_19 Bool) (top.res.abs_20 Bool) (top.res.abs_21 Bool) (top.res.abs_22 Bool) (top.res.abs_23 Bool) (top.res.abs_24 Bool) (top.res.inst_86 Bool) (top.res.inst_85 Bool) (top.res.inst_84 Bool) (top.res.inst_83 Bool) (top.res.inst_82 Bool) (top.res.inst_81 Bool) (top.res.inst_80 Bool) (top.res.inst_79 Bool) (top.res.inst_78 Bool) (top.res.inst_77 Bool) (top.res.inst_76 Bool) (top.res.inst_75 Bool) (top.res.inst_74 Bool) (top.res.inst_73 Bool) (top.res.inst_72 Bool) (top.res.inst_71 Bool) (top.res.inst_70 Bool) (top.res.inst_69 Bool) (top.res.inst_68 Bool) (top.res.inst_67 Bool) (top.res.inst_66 Bool) (top.res.inst_65 Bool) (top.res.inst_64 Bool) (top.res.inst_63 Bool) (top.res.inst_62 Bool) (top.res.inst_61 Bool) (top.res.inst_60 Bool) (top.res.inst_59 Bool) (top.res.inst_58 Bool) (top.res.inst_57 Bool) (top.res.inst_56 Bool) (top.res.inst_55 Bool) (top.res.inst_54 Bool) (top.res.inst_53 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Bool) (top.res.inst_50 Bool) (top.res.inst_49 Bool) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.empty_section (not (or (or top.usr.on_A top.usr.on_B) top.usr.on_C))) (= top.impl.usr.grant_exit top.res.abs_1) (= top.impl.usr.only_on_B (and top.usr.on_B (not (or top.usr.on_A top.usr.on_C)))) (= top.impl.usr.grant_access top.res.abs_0) (= top.res.abs_18 (or top.usr.on_A top.usr.on_C)) (= top.res.abs_16 (not top.usr.on_B)) (= top.res.abs_13 (not top.usr.on_A)) (= top.impl.usr.do_AB top.res.abs_2) (= top.impl.usr.do_BC top.res.abs_3) (= top.res.abs_20 (and (and (and (and (and (not (and top.usr.ack_AB top.usr.ack_BC)) top.res.abs_4) top.res.abs_5) top.impl.usr.empty_section) top.res.abs_15) top.res.abs_19)) (and (= top.usr.OK (=> top.res.abs_21 (and (and (and top.res.abs_22 (not (and top.impl.usr.do_AB top.impl.usr.do_BC))) top.res.abs_23) top.res.abs_24))) (= top.res.abs_6 (not top.impl.usr.empty_section)) (= top.res.abs_8 top.res.nondet_4) (= top.res.abs_11 top.res.nondet_5) (__node_init_implies_0 top.impl.usr.grant_access top.impl.usr.empty_section top.res.abs_22 top.res.inst_86) (__node_init_UMS_0 top.usr.on_A top.usr.on_B top.usr.on_C top.usr.ack_AB top.usr.ack_BC top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_85) (__node_init_always_from_to_0 top.usr.ack_AB top.impl.usr.grant_access top.impl.usr.only_on_B top.res.nondet_7 top.res.nondet_6 top.res.abs_23 top.res.inst_84 top.res.inst_83 top.res.inst_82 top.res.inst_81 top.res.inst_80 top.res.inst_79 top.res.inst_78 top.res.inst_77 top.res.inst_76 top.res.inst_75 top.res.inst_74 top.res.inst_73 top.res.inst_72 top.res.inst_71 top.res.inst_70 top.res.inst_69 top.res.inst_68 top.res.inst_67 top.res.inst_66) (__node_init_always_from_to_0 top.usr.ack_BC top.impl.usr.grant_exit top.impl.usr.empty_section top.res.nondet_9 top.res.nondet_8 top.res.abs_24 top.res.inst_65 top.res.inst_64 top.res.inst_63 top.res.inst_62 top.res.inst_61 top.res.inst_60 top.res.inst_59 top.res.inst_58 top.res.inst_57 top.res.inst_56 top.res.inst_55 top.res.inst_54 top.res.inst_53 top.res.inst_52 top.res.inst_51 top.res.inst_50 top.res.inst_49 top.res.inst_48 top.res.inst_47) (__node_init_Sofar_0 top.res.abs_20 top.res.abs_21 top.res.inst_46) (__node_init_always_from_to_0 top.usr.ack_AB top.usr.ack_AB top.impl.usr.do_BC top.res.nondet_1 top.res.nondet_0 top.res.abs_4 top.res.inst_45 top.res.inst_44 top.res.inst_43 top.res.inst_42 top.res.inst_41 top.res.inst_40 top.res.inst_39 top.res.inst_38 top.res.inst_37 top.res.inst_36 top.res.inst_35 top.res.inst_34 top.res.inst_33 top.res.inst_32 top.res.inst_31 top.res.inst_30 top.res.inst_29 top.res.inst_28 top.res.inst_27) (__node_init_always_from_to_0 top.usr.ack_BC top.usr.ack_BC top.impl.usr.do_AB top.res.nondet_3 top.res.nondet_2 top.res.abs_5 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8) (__node_init_implies_0 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_7) (__node_init_edge_0 top.res.abs_6 top.res.abs_7 top.res.inst_6) (__node_init_implies_0 top.res.abs_10 top.res.abs_11 top.res.abs_12 top.res.inst_5) (__node_init_edge_0 top.usr.on_C top.res.abs_10 top.res.inst_4) (__node_init_implies_0 top.res.abs_14 top.usr.on_B top.res.abs_15 top.res.inst_3) (__node_init_edge_0 top.res.abs_13 top.res.abs_14 top.res.inst_2) (__node_init_implies_0 top.res.abs_17 top.res.abs_18 top.res.abs_19 top.res.inst_1) (__node_init_edge_0 top.res.abs_16 top.res.abs_17 top.res.inst_0) top.res.init_flag))) +(define-fun trans ((top.usr.on_A Bool) (top.usr.on_B Bool) (top.usr.on_C Bool) (top.usr.ack_AB Bool) (top.usr.ack_BC Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.grant_access Bool) (top.impl.usr.grant_exit Bool) (top.impl.usr.do_AB Bool) (top.impl.usr.do_BC Bool) (top.impl.usr.empty_section Bool) (top.impl.usr.only_on_B Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.abs_13 Bool) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.abs_17 Bool) (top.res.abs_18 Bool) (top.res.abs_19 Bool) (top.res.abs_20 Bool) (top.res.abs_21 Bool) (top.res.abs_22 Bool) (top.res.abs_23 Bool) (top.res.abs_24 Bool) (top.res.inst_86 Bool) (top.res.inst_85 Bool) (top.res.inst_84 Bool) (top.res.inst_83 Bool) (top.res.inst_82 Bool) (top.res.inst_81 Bool) (top.res.inst_80 Bool) (top.res.inst_79 Bool) (top.res.inst_78 Bool) (top.res.inst_77 Bool) (top.res.inst_76 Bool) (top.res.inst_75 Bool) (top.res.inst_74 Bool) (top.res.inst_73 Bool) (top.res.inst_72 Bool) (top.res.inst_71 Bool) (top.res.inst_70 Bool) (top.res.inst_69 Bool) (top.res.inst_68 Bool) (top.res.inst_67 Bool) (top.res.inst_66 Bool) (top.res.inst_65 Bool) (top.res.inst_64 Bool) (top.res.inst_63 Bool) (top.res.inst_62 Bool) (top.res.inst_61 Bool) (top.res.inst_60 Bool) (top.res.inst_59 Bool) (top.res.inst_58 Bool) (top.res.inst_57 Bool) (top.res.inst_56 Bool) (top.res.inst_55 Bool) (top.res.inst_54 Bool) (top.res.inst_53 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Bool) (top.res.inst_50 Bool) (top.res.inst_49 Bool) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.on_A! Bool) (top.usr.on_B! Bool) (top.usr.on_C! Bool) (top.usr.ack_AB! Bool) (top.usr.ack_BC! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.grant_access! Bool) (top.impl.usr.grant_exit! Bool) (top.impl.usr.do_AB! Bool) (top.impl.usr.do_BC! Bool) (top.impl.usr.empty_section! Bool) (top.impl.usr.only_on_B! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.abs_12! Bool) (top.res.abs_13! Bool) (top.res.abs_14! Bool) (top.res.abs_15! Bool) (top.res.abs_16! Bool) (top.res.abs_17! Bool) (top.res.abs_18! Bool) (top.res.abs_19! Bool) (top.res.abs_20! Bool) (top.res.abs_21! Bool) (top.res.abs_22! Bool) (top.res.abs_23! Bool) (top.res.abs_24! Bool) (top.res.inst_86! Bool) (top.res.inst_85! Bool) (top.res.inst_84! Bool) (top.res.inst_83! Bool) (top.res.inst_82! Bool) (top.res.inst_81! Bool) (top.res.inst_80! Bool) (top.res.inst_79! Bool) (top.res.inst_78! Bool) (top.res.inst_77! Bool) (top.res.inst_76! Bool) (top.res.inst_75! Bool) (top.res.inst_74! Bool) (top.res.inst_73! Bool) (top.res.inst_72! Bool) (top.res.inst_71! Bool) (top.res.inst_70! Bool) (top.res.inst_69! Bool) (top.res.inst_68! Bool) (top.res.inst_67! Bool) (top.res.inst_66! Bool) (top.res.inst_65! Bool) (top.res.inst_64! Bool) (top.res.inst_63! Bool) (top.res.inst_62! Bool) (top.res.inst_61! Bool) (top.res.inst_60! Bool) (top.res.inst_59! Bool) (top.res.inst_58! Bool) (top.res.inst_57! Bool) (top.res.inst_56! Bool) (top.res.inst_55! Bool) (top.res.inst_54! Bool) (top.res.inst_53! Bool) (top.res.inst_52! Bool) (top.res.inst_51! Bool) (top.res.inst_50! Bool) (top.res.inst_49! Bool) (top.res.inst_48! Bool) (top.res.inst_47! Bool) (top.res.inst_46! Bool) (top.res.inst_45! Bool) (top.res.inst_44! Bool) (top.res.inst_43! Bool) (top.res.inst_42! Bool) (top.res.inst_41! Bool) (top.res.inst_40! Bool) (top.res.inst_39! Bool) (top.res.inst_38! Bool) (top.res.inst_37! Bool) (top.res.inst_36! Bool) (top.res.inst_35! Bool) (top.res.inst_34! Bool) (top.res.inst_33! Bool) (top.res.inst_32! Bool) (top.res.inst_31! Bool) (top.res.inst_30! Bool) (top.res.inst_29! Bool) (top.res.inst_28! Bool) (top.res.inst_27! Bool) (top.res.inst_26! Bool) (top.res.inst_25! Bool) (top.res.inst_24! Bool) (top.res.inst_23! Bool) (top.res.inst_22! Bool) (top.res.inst_21! Bool) (top.res.inst_20! Bool) (top.res.inst_19! Bool) (top.res.inst_18! Bool) (top.res.inst_17! Bool) (top.res.inst_16! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Bool) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Bool) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Bool) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.impl.usr.empty_section! (not (or (or top.usr.on_A! top.usr.on_B!) top.usr.on_C!))) (= top.impl.usr.grant_exit! top.res.abs_1!) (= top.impl.usr.only_on_B! (and top.usr.on_B! (not (or top.usr.on_A! top.usr.on_C!)))) (= top.impl.usr.grant_access! top.res.abs_0!) (= top.res.abs_18! (or top.usr.on_A! top.usr.on_C!)) (= top.res.abs_16! (not top.usr.on_B!)) (= top.res.abs_13! (not top.usr.on_A!)) (= top.res.abs_11! top.impl.usr.grant_exit) (= top.res.abs_8! top.impl.usr.grant_access) (= top.res.abs_6! (not top.impl.usr.empty_section!)) (= top.impl.usr.do_AB! top.res.abs_2!) (= top.impl.usr.do_BC! top.res.abs_3!) (= top.res.abs_20! (and (and (and (and (and (and (not (and top.usr.ack_AB! top.usr.ack_BC!)) top.res.abs_4!) top.res.abs_5!) top.res.abs_9!) top.res.abs_12!) top.res.abs_15!) top.res.abs_19!)) (and (= top.usr.OK! (=> top.res.abs_21! (and (and (and top.res.abs_22! (not (and top.impl.usr.do_AB! top.impl.usr.do_BC!))) top.res.abs_23!) top.res.abs_24!))) (__node_trans_implies_0 top.impl.usr.grant_access! top.impl.usr.empty_section! top.res.abs_22! top.res.inst_86! top.impl.usr.grant_access top.impl.usr.empty_section top.res.abs_22 top.res.inst_86) (__node_trans_UMS_0 top.usr.on_A! top.usr.on_B! top.usr.on_C! top.usr.ack_AB! top.usr.ack_BC! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_85! top.usr.on_A top.usr.on_B top.usr.on_C top.usr.ack_AB top.usr.ack_BC top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_85) (__node_trans_always_from_to_0 top.usr.ack_AB! top.impl.usr.grant_access! top.impl.usr.only_on_B! top.res.nondet_7 top.res.nondet_6 top.res.abs_23! top.res.inst_84! top.res.inst_83! top.res.inst_82! top.res.inst_81! top.res.inst_80! top.res.inst_79! top.res.inst_78! top.res.inst_77! top.res.inst_76! top.res.inst_75! top.res.inst_74! top.res.inst_73! top.res.inst_72! top.res.inst_71! top.res.inst_70! top.res.inst_69! top.res.inst_68! top.res.inst_67! top.res.inst_66! top.usr.ack_AB top.impl.usr.grant_access top.impl.usr.only_on_B top.res.abs_23 top.res.inst_84 top.res.inst_83 top.res.inst_82 top.res.inst_81 top.res.inst_80 top.res.inst_79 top.res.inst_78 top.res.inst_77 top.res.inst_76 top.res.inst_75 top.res.inst_74 top.res.inst_73 top.res.inst_72 top.res.inst_71 top.res.inst_70 top.res.inst_69 top.res.inst_68 top.res.inst_67 top.res.inst_66) (__node_trans_always_from_to_0 top.usr.ack_BC! top.impl.usr.grant_exit! top.impl.usr.empty_section! top.res.nondet_9 top.res.nondet_8 top.res.abs_24! top.res.inst_65! top.res.inst_64! top.res.inst_63! top.res.inst_62! top.res.inst_61! top.res.inst_60! top.res.inst_59! top.res.inst_58! top.res.inst_57! top.res.inst_56! top.res.inst_55! top.res.inst_54! top.res.inst_53! top.res.inst_52! top.res.inst_51! top.res.inst_50! top.res.inst_49! top.res.inst_48! top.res.inst_47! top.usr.ack_BC top.impl.usr.grant_exit top.impl.usr.empty_section top.res.abs_24 top.res.inst_65 top.res.inst_64 top.res.inst_63 top.res.inst_62 top.res.inst_61 top.res.inst_60 top.res.inst_59 top.res.inst_58 top.res.inst_57 top.res.inst_56 top.res.inst_55 top.res.inst_54 top.res.inst_53 top.res.inst_52 top.res.inst_51 top.res.inst_50 top.res.inst_49 top.res.inst_48 top.res.inst_47) (__node_trans_Sofar_0 top.res.abs_20! top.res.abs_21! top.res.inst_46! top.res.abs_20 top.res.abs_21 top.res.inst_46) (__node_trans_always_from_to_0 top.usr.ack_AB! top.usr.ack_AB! top.impl.usr.do_BC! top.res.nondet_1 top.res.nondet_0 top.res.abs_4! top.res.inst_45! top.res.inst_44! top.res.inst_43! top.res.inst_42! top.res.inst_41! top.res.inst_40! top.res.inst_39! top.res.inst_38! top.res.inst_37! top.res.inst_36! top.res.inst_35! top.res.inst_34! top.res.inst_33! top.res.inst_32! top.res.inst_31! top.res.inst_30! top.res.inst_29! top.res.inst_28! top.res.inst_27! top.usr.ack_AB top.usr.ack_AB top.impl.usr.do_BC top.res.abs_4 top.res.inst_45 top.res.inst_44 top.res.inst_43 top.res.inst_42 top.res.inst_41 top.res.inst_40 top.res.inst_39 top.res.inst_38 top.res.inst_37 top.res.inst_36 top.res.inst_35 top.res.inst_34 top.res.inst_33 top.res.inst_32 top.res.inst_31 top.res.inst_30 top.res.inst_29 top.res.inst_28 top.res.inst_27) (__node_trans_always_from_to_0 top.usr.ack_BC! top.usr.ack_BC! top.impl.usr.do_AB! top.res.nondet_3 top.res.nondet_2 top.res.abs_5! top.res.inst_26! top.res.inst_25! top.res.inst_24! top.res.inst_23! top.res.inst_22! top.res.inst_21! top.res.inst_20! top.res.inst_19! top.res.inst_18! top.res.inst_17! top.res.inst_16! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.usr.ack_BC top.usr.ack_BC top.impl.usr.do_AB top.res.abs_5 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8) (__node_trans_implies_0 top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_7! top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_7) (__node_trans_edge_0 top.res.abs_6! top.res.abs_7! top.res.inst_6! top.res.abs_6 top.res.abs_7 top.res.inst_6) (__node_trans_implies_0 top.res.abs_10! top.res.abs_11! top.res.abs_12! top.res.inst_5! top.res.abs_10 top.res.abs_11 top.res.abs_12 top.res.inst_5) (__node_trans_edge_0 top.usr.on_C! top.res.abs_10! top.res.inst_4! top.usr.on_C top.res.abs_10 top.res.inst_4) (__node_trans_implies_0 top.res.abs_14! top.usr.on_B! top.res.abs_15! top.res.inst_3! top.res.abs_14 top.usr.on_B top.res.abs_15 top.res.inst_3) (__node_trans_edge_0 top.res.abs_13! top.res.abs_14! top.res.inst_2! top.res.abs_13 top.res.abs_14 top.res.inst_2) (__node_trans_implies_0 top.res.abs_17! top.res.abs_18! top.res.abs_19! top.res.inst_1! top.res.abs_17 top.res.abs_18 top.res.abs_19 top.res.inst_1) (__node_trans_edge_0 top.res.abs_16! top.res.abs_17! top.res.inst_0! top.res.abs_16 top.res.abs_17 top.res.inst_0) (not top.res.init_flag!))) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.on_A Bool) (top.usr.on_B Bool) (top.usr.on_C Bool) (top.usr.ack_AB Bool) (top.usr.ack_BC Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.grant_access Bool) (top.impl.usr.grant_exit Bool) (top.impl.usr.do_AB Bool) (top.impl.usr.do_BC Bool) (top.impl.usr.empty_section Bool) (top.impl.usr.only_on_B Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.abs_13 Bool) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.abs_17 Bool) (top.res.abs_18 Bool) (top.res.abs_19 Bool) (top.res.abs_20 Bool) (top.res.abs_21 Bool) (top.res.abs_22 Bool) (top.res.abs_23 Bool) (top.res.abs_24 Bool) (top.res.inst_86 Bool) (top.res.inst_85 Bool) (top.res.inst_84 Bool) (top.res.inst_83 Bool) (top.res.inst_82 Bool) (top.res.inst_81 Bool) (top.res.inst_80 Bool) (top.res.inst_79 Bool) (top.res.inst_78 Bool) (top.res.inst_77 Bool) (top.res.inst_76 Bool) (top.res.inst_75 Bool) (top.res.inst_74 Bool) (top.res.inst_73 Bool) (top.res.inst_72 Bool) (top.res.inst_71 Bool) (top.res.inst_70 Bool) (top.res.inst_69 Bool) (top.res.inst_68 Bool) (top.res.inst_67 Bool) (top.res.inst_66 Bool) (top.res.inst_65 Bool) (top.res.inst_64 Bool) (top.res.inst_63 Bool) (top.res.inst_62 Bool) (top.res.inst_61 Bool) (top.res.inst_60 Bool) (top.res.inst_59 Bool) (top.res.inst_58 Bool) (top.res.inst_57 Bool) (top.res.inst_56 Bool) (top.res.inst_55 Bool) (top.res.inst_54 Bool) (top.res.inst_53 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Bool) (top.res.inst_50 Bool) (top.res.inst_49 Bool) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) + (inv-constraint str_invariant init trans prop) -(check-synth) +(check-synth) diff --git a/benchmarks/LIA/Lustre/ticket3i_1.sl b/benchmarks/LIA/Lustre/ticket3i_1.sl index d2954fb..1dcbc2d 100644 --- a/benchmarks/LIA/Lustre/ticket3i_1.sl +++ b/benchmarks/LIA/Lustre/ticket3i_1.sl @@ -1,1374 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes9_0 ( - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - excludes9.usr.X3_a_0) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - excludes9.usr.X4_a_0) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - excludes9.usr.X5_a_0) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - excludes9.usr.X6_a_0) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - excludes9.usr.X7_a_0) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - excludes9.usr.X8_a_0) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - excludes9.usr.X9_a_0))) - excludes9.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes9_0 ( - (excludes9.usr.X1_a_1 Bool) - (excludes9.usr.X2_a_1 Bool) - (excludes9.usr.X3_a_1 Bool) - (excludes9.usr.X4_a_1 Bool) - (excludes9.usr.X5_a_1 Bool) - (excludes9.usr.X6_a_1 Bool) - (excludes9.usr.X7_a_1 Bool) - (excludes9.usr.X8_a_1 Bool) - (excludes9.usr.X9_a_1 Bool) - (excludes9.usr.excludes_a_1 Bool) - (excludes9.res.init_flag_a_1 Bool) - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - excludes9.usr.X3_a_1) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - excludes9.usr.X4_a_1) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - excludes9.usr.X5_a_1) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - excludes9.usr.X6_a_1) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - excludes9.usr.X7_a_1) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - excludes9.usr.X8_a_1) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - excludes9.usr.X9_a_1))) - (not excludes9.res.init_flag_a_1)) -) - -(define-fun - __node_init_ticket3i_0 ( - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (and - (= ticket3i.usr.p1_a_0 0) - (let - ((X1 Bool (let ((X1 Int ticket3i.res.nondet_0)) (= X1 0)))) - (and - (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) - (let - ((X2 - Bool (let - ((X2 Int ticket3i.res.nondet_2) (X3 Int ticket3i.res.nondet_1)) - (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) - (and - (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) - (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) - (let - ((X3 Bool (let ((X3 Int ticket3i.res.nondet_4)) (= X3 0)))) - (and - (= ticket3i.usr.p2_a_0 0) - (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) - (let - ((X4 - Bool (let - ((X4 Int ticket3i.res.nondet_6) - (X5 Int ticket3i.res.nondet_5)) - (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) - (let - ((X5 Bool (let ((X5 Int ticket3i.res.nondet_7)) (= X5 2)))) - (let - ((X6 Bool (let ((X6 Int ticket3i.res.nondet_8)) (= X6 0)))) - (and - (= ticket3i.usr.p3_a_0 0) - (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) - (let - ((X7 - Bool (let - ((X7 Int ticket3i.res.nondet_10) - (X8 Int ticket3i.res.nondet_9)) - (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) - (let - ((X8 Bool (let ((X8 Int ticket3i.res.nondet_11)) (= X8 2)))) - (let - ((X9 Bool (let ((X9 Int ticket3i.res.nondet_3)) (= X9 2)))) - (and - (= - ticket3i.usr.erreur_ticket3i_a_0 - (ite - (or - (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) - (>= ticket3i.usr.p3_a_0 3)) - true - false)) - ticket3i.res.init_flag_a_0))))))))))))))) -) - -(define-fun - __node_trans_ticket3i_0 ( - (ticket3i.usr.e1_a_1 Bool) - (ticket3i.usr.e2_a_1 Bool) - (ticket3i.usr.e3_a_1 Bool) - (ticket3i.usr.e4_a_1 Bool) - (ticket3i.usr.e5_a_1 Bool) - (ticket3i.usr.e6_a_1 Bool) - (ticket3i.usr.e7_a_1 Bool) - (ticket3i.usr.e8_a_1 Bool) - (ticket3i.usr.e9_a_1 Bool) - (ticket3i.usr.init_a1_a_1 Int) - (ticket3i.usr.init_a2_a_1 Int) - (ticket3i.usr.init_a3_a_1 Int) - (ticket3i.usr.init_t_a_1 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_1 Int) - (ticket3i.usr.p2_a_1 Int) - (ticket3i.usr.p3_a_1 Int) - (ticket3i.usr.t_a_1 Int) - (ticket3i.usr.s_a_1 Int) - (ticket3i.usr.a1_a_1 Int) - (ticket3i.usr.a2_a_1 Int) - (ticket3i.usr.a3_a_1 Int) - (ticket3i.usr.erreur_ticket3i_a_1 Bool) - (ticket3i.res.init_flag_a_1 Bool) - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (= ticket3i.usr.p1_a_0 2))) - (let - ((X2 Bool (= ticket3i.usr.p1_a_0 0))) - (and - (= - ticket3i.usr.a1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) - ticket3i.usr.a1_a_0)) - (let - ((X3 - Bool (and - (= ticket3i.usr.p1_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) - (and - (= - ticket3i.usr.p1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 1 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e2_a_1 - (ite X3 2 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e3_a_1 - (ite X1 0 ticket3i.usr.p1_a_0) - ticket3i.usr.p1_a_0)))) - (let - ((X4 Bool (= ticket3i.usr.p3_a_0 2))) - (let - ((X5 Bool (= ticket3i.usr.p2_a_0 2))) - (and - (= - ticket3i.usr.s_a_1 - (ite - ticket3i.usr.e3_a_1 - (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - ticket3i.usr.s_a_0)))) - (let - ((X6 Bool (= ticket3i.usr.p3_a_0 0))) - (let - ((X7 Bool (= ticket3i.usr.p2_a_0 0))) - (and - (= - ticket3i.usr.t_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e4_a_1 - (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e7_a_1 - (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - ticket3i.usr.t_a_0)))) - (= - ticket3i.usr.a2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) - ticket3i.usr.a2_a_0)) - (let - ((X8 - Bool (and - (= ticket3i.usr.p2_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) - (and - (= - ticket3i.usr.p2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 1 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e5_a_1 - (ite X8 2 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 0 ticket3i.usr.p2_a_0) - ticket3i.usr.p2_a_0)))) - (= - ticket3i.usr.a3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) - ticket3i.usr.a3_a_0)) - (let - ((X9 - Bool (and - (= ticket3i.usr.p3_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) - (and - (= - ticket3i.usr.p3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 1 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e8_a_1 - (ite X9 2 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 0 ticket3i.usr.p3_a_0) - ticket3i.usr.p3_a_0)))) - (= - ticket3i.usr.erreur_ticket3i_a_1 - (ite - (or - (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) - (>= ticket3i.usr.p3_a_1 3)) - true - false)) - (not ticket3i.res.init_flag_a_1)))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_0 - (and - (and - (and - (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) - (>= top.usr.init_a2_a_0 0)) - (>= top.usr.init_a3_a_0 0)) - (>= top.usr.init_t_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (and - (= top.usr.OK_a_0 (=> top.res.abs_11_a_0 (not X1))) - (__node_init_ticket3i_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) - (__node_init_excludes9_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.e9_a_1 Bool) - (top.usr.init_a1_a_1 Int) - (top.usr.init_a2_a_1 Int) - (top.usr.init_a3_a_1 Int) - (top.usr.init_t_a_1 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_1 - (and - (and - (and - (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) - (>= top.usr.init_a2_a_1 0)) - (>= top.usr.init_a3_a_1 0)) - (>= top.usr.init_t_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (and - (= top.usr.OK_a_1 (=> top.res.abs_11_a_1 (not X1))) - (__node_trans_ticket3i_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.usr.init_a1_a_1 - top.usr.init_a2_a_1 - top.usr.init_a3_a_1 - top.usr.init_t_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes9_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.e9 Bool) -(declare-primed-var top.usr.init_a1 Int) -(declare-primed-var top.usr.init_a2 Int) -(declare-primed-var top.usr.init_a3 Int) -(declare-primed-var top.usr.init_t Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_10 - (and - (and - (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) - (>= top.usr.init_a3 0)) - (>= top.usr.init_t 0))) - (let - ((X1 Bool top.res.abs_8)) - (and - (= top.usr.OK (=> top.res.abs_11 (not X1))) - (__node_init_ticket3i_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) - (__node_init_excludes9_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.e9! Bool) - (top.usr.init_a1! Int) - (top.usr.init_a2! Int) - (top.usr.init_a3! Int) - (top.usr.init_t! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_10! - (and - (and - (and - (and top.res.abs_9! (>= top.usr.init_a1! 0)) - (>= top.usr.init_a2! 0)) - (>= top.usr.init_a3! 0)) - (>= top.usr.init_t! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (and - (= top.usr.OK! (=> top.res.abs_11! (not X1))) - (__node_trans_ticket3i_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.usr.init_a1! - top.usr.init_a2! - top.usr.init_a3! - top.usr.init_t! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_1! - top.res.abs_10 - top.res.abs_11 - top.res.inst_1) - (__node_trans_excludes9_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.res.abs_9! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes9_0 ((excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) excludes9.usr.X3_a_0) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) excludes9.usr.X4_a_0) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) excludes9.usr.X5_a_0) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) excludes9.usr.X6_a_0) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) excludes9.usr.X7_a_0) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) excludes9.usr.X8_a_0) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) excludes9.usr.X9_a_0))) excludes9.res.init_flag_a_0)) +(define-fun __node_trans_excludes9_0 ((excludes9.usr.X1_a_1 Bool) (excludes9.usr.X2_a_1 Bool) (excludes9.usr.X3_a_1 Bool) (excludes9.usr.X4_a_1 Bool) (excludes9.usr.X5_a_1 Bool) (excludes9.usr.X6_a_1 Bool) (excludes9.usr.X7_a_1 Bool) (excludes9.usr.X8_a_1 Bool) (excludes9.usr.X9_a_1 Bool) (excludes9.usr.excludes_a_1 Bool) (excludes9.res.init_flag_a_1 Bool) (excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) excludes9.usr.X3_a_1) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) excludes9.usr.X4_a_1) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) excludes9.usr.X5_a_1) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) excludes9.usr.X6_a_1) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) excludes9.usr.X7_a_1) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) excludes9.usr.X8_a_1) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) excludes9.usr.X9_a_1))) (not excludes9.res.init_flag_a_1))) +(define-fun __node_init_ticket3i_0 ((ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (and (= ticket3i.usr.p1_a_0 0) (let ((X1 (let ((X1 ticket3i.res.nondet_0)) (= X1 0)))) (and (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) (let ((X2 (let ((X2 ticket3i.res.nondet_2) (X3 ticket3i.res.nondet_1)) (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) (and (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) (let ((X3 (let ((X3 ticket3i.res.nondet_4)) (= X3 0)))) (and (= ticket3i.usr.p2_a_0 0) (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) (let ((X4 (let ((X4 ticket3i.res.nondet_6) (X5 ticket3i.res.nondet_5)) (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) (let ((X5 (let ((X5 ticket3i.res.nondet_7)) (= X5 2)))) (let ((X6 (let ((X6 ticket3i.res.nondet_8)) (= X6 0)))) (and (= ticket3i.usr.p3_a_0 0) (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) (let ((X7 (let ((X7 ticket3i.res.nondet_10) (X8 ticket3i.res.nondet_9)) (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) (let ((X8 (let ((X8 ticket3i.res.nondet_11)) (= X8 2)))) (let ((X9 (let ((X9 ticket3i.res.nondet_3)) (= X9 2)))) (and (= ticket3i.usr.erreur_ticket3i_a_0 (ite (or (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) (>= ticket3i.usr.p3_a_0 3)) true false)) ticket3i.res.init_flag_a_0)))))))))))))))) +(define-fun __node_trans_ticket3i_0 ((ticket3i.usr.e1_a_1 Bool) (ticket3i.usr.e2_a_1 Bool) (ticket3i.usr.e3_a_1 Bool) (ticket3i.usr.e4_a_1 Bool) (ticket3i.usr.e5_a_1 Bool) (ticket3i.usr.e6_a_1 Bool) (ticket3i.usr.e7_a_1 Bool) (ticket3i.usr.e8_a_1 Bool) (ticket3i.usr.e9_a_1 Bool) (ticket3i.usr.init_a1_a_1 Int) (ticket3i.usr.init_a2_a_1 Int) (ticket3i.usr.init_a3_a_1 Int) (ticket3i.usr.init_t_a_1 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_1 Int) (ticket3i.usr.p2_a_1 Int) (ticket3i.usr.p3_a_1 Int) (ticket3i.usr.t_a_1 Int) (ticket3i.usr.s_a_1 Int) (ticket3i.usr.a1_a_1 Int) (ticket3i.usr.a2_a_1 Int) (ticket3i.usr.a3_a_1 Int) (ticket3i.usr.erreur_ticket3i_a_1 Bool) (ticket3i.res.init_flag_a_1 Bool) (ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (let ((X1 (= ticket3i.usr.p1_a_0 2))) (let ((X2 (= ticket3i.usr.p1_a_0 0))) (and (= ticket3i.usr.a1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) ticket3i.usr.a1_a_0)) (let ((X3 (and (= ticket3i.usr.p1_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) (and (= ticket3i.usr.p1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 1 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e2_a_1 (ite X3 2 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e3_a_1 (ite X1 0 ticket3i.usr.p1_a_0) ticket3i.usr.p1_a_0)))) (let ((X4 (= ticket3i.usr.p3_a_0 2))) (let ((X5 (= ticket3i.usr.p2_a_0 2))) (and (= ticket3i.usr.s_a_1 (ite ticket3i.usr.e3_a_1 (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) ticket3i.usr.s_a_0)))) (let ((X6 (= ticket3i.usr.p3_a_0 0))) (let ((X7 (= ticket3i.usr.p2_a_0 0))) (and (= ticket3i.usr.t_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e4_a_1 (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e7_a_1 (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) ticket3i.usr.t_a_0)))) (= ticket3i.usr.a2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) ticket3i.usr.a2_a_0)) (let ((X8 (and (= ticket3i.usr.p2_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) (and (= ticket3i.usr.p2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 1 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e5_a_1 (ite X8 2 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 0 ticket3i.usr.p2_a_0) ticket3i.usr.p2_a_0)))) (= ticket3i.usr.a3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) ticket3i.usr.a3_a_0)) (let ((X9 (and (= ticket3i.usr.p3_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) (and (= ticket3i.usr.p3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 1 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e8_a_1 (ite X9 2 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 0 ticket3i.usr.p3_a_0) ticket3i.usr.p3_a_0)))) (= ticket3i.usr.erreur_ticket3i_a_1 (ite (or (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) (>= ticket3i.usr.p3_a_1 3)) true false)) (not ticket3i.res.init_flag_a_1))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_0 (and (and (and (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) (>= top.usr.init_a2_a_0 0)) (>= top.usr.init_a3_a_0 0)) (>= top.usr.init_t_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (and (= top.usr.OK_a_0 (=> top.res.abs_11_a_0 (not X1))) (__node_init_ticket3i_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_init_excludes9_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.e9_a_1 Bool) (top.usr.init_a1_a_1 Int) (top.usr.init_a2_a_1 Int) (top.usr.init_a3_a_1 Int) (top.usr.init_t_a_1 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_1 (and (and (and (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) (>= top.usr.init_a2_a_1 0)) (>= top.usr.init_a3_a_1 0)) (>= top.usr.init_t_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (and (= top.usr.OK_a_1 (=> top.res.abs_11_a_1 (not X1))) (__node_trans_ticket3i_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.usr.init_a1_a_1 top.usr.init_a2_a_1 top.usr.init_a3_a_1 top.usr.init_t_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_trans_excludes9_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_10 (and (and (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) (>= top.usr.init_a3 0)) (>= top.usr.init_t 0))) (let ((X1 top.res.abs_8)) (and (= top.usr.OK (=> top.res.abs_11 (not X1))) (__node_init_ticket3i_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_init_excludes9_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.e9! Bool) (top.usr.init_a1! Int) (top.usr.init_a2! Int) (top.usr.init_a3! Int) (top.usr.init_t! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_10! (and (and (and (and top.res.abs_9! (>= top.usr.init_a1! 0)) (>= top.usr.init_a2! 0)) (>= top.usr.init_a3! 0)) (>= top.usr.init_t! 0))) (let ((X1 top.res.abs_8!)) (and (= top.usr.OK! (=> top.res.abs_11! (not X1))) (__node_trans_ticket3i_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.usr.init_a1! top.usr.init_a2! top.usr.init_a3! top.usr.init_t! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_1! top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_trans_excludes9_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.res.abs_9! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) (not top.res.init_flag!)))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ticket3i_1_e7_1669.sl b/benchmarks/LIA/Lustre/ticket3i_1_e7_1669.sl index 079a0ef..8489bf4 100644 --- a/benchmarks/LIA/Lustre/ticket3i_1_e7_1669.sl +++ b/benchmarks/LIA/Lustre/ticket3i_1_e7_1669.sl @@ -1,1374 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes9_0 ( - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - excludes9.usr.X3_a_0) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - excludes9.usr.X4_a_0) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - excludes9.usr.X5_a_0) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - excludes9.usr.X6_a_0) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - excludes9.usr.X7_a_0) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - excludes9.usr.X8_a_0) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - excludes9.usr.X9_a_0))) - excludes9.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes9_0 ( - (excludes9.usr.X1_a_1 Bool) - (excludes9.usr.X2_a_1 Bool) - (excludes9.usr.X3_a_1 Bool) - (excludes9.usr.X4_a_1 Bool) - (excludes9.usr.X5_a_1 Bool) - (excludes9.usr.X6_a_1 Bool) - (excludes9.usr.X7_a_1 Bool) - (excludes9.usr.X8_a_1 Bool) - (excludes9.usr.X9_a_1 Bool) - (excludes9.usr.excludes_a_1 Bool) - (excludes9.res.init_flag_a_1 Bool) - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - excludes9.usr.X3_a_1) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - excludes9.usr.X4_a_1) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - excludes9.usr.X5_a_1) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - excludes9.usr.X6_a_1) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - excludes9.usr.X7_a_1) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - excludes9.usr.X8_a_1) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - excludes9.usr.X9_a_1))) - (not excludes9.res.init_flag_a_1)) -) - -(define-fun - __node_init_ticket3i_0 ( - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (and - (= ticket3i.usr.p1_a_0 0) - (let - ((X1 Bool (let ((X1 Int ticket3i.res.nondet_0)) (= X1 0)))) - (and - (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) - (let - ((X2 - Bool (let - ((X2 Int ticket3i.res.nondet_2) (X3 Int ticket3i.res.nondet_1)) - (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) - (and - (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) - (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) - (let - ((X3 Bool (let ((X3 Int ticket3i.res.nondet_4)) (= X3 0)))) - (and - (= ticket3i.usr.p2_a_0 0) - (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) - (let - ((X4 - Bool (let - ((X4 Int ticket3i.res.nondet_6) - (X5 Int ticket3i.res.nondet_5)) - (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) - (let - ((X5 Bool (let ((X5 Int ticket3i.res.nondet_7)) (= X5 2)))) - (let - ((X6 Bool (let ((X6 Int ticket3i.res.nondet_8)) (= X6 0)))) - (and - (= ticket3i.usr.p3_a_0 0) - (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) - (let - ((X7 - Bool (let - ((X7 Int ticket3i.res.nondet_10) - (X8 Int ticket3i.res.nondet_9)) - (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) - (let - ((X8 Bool (let ((X8 Int ticket3i.res.nondet_11)) (= X8 2)))) - (let - ((X9 Bool (let ((X9 Int ticket3i.res.nondet_3)) (= X9 2)))) - (and - (= - ticket3i.usr.erreur_ticket3i_a_0 - (ite - (or - (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) - (>= ticket3i.usr.p3_a_0 3)) - true - false)) - ticket3i.res.init_flag_a_0))))))))))))))) -) - -(define-fun - __node_trans_ticket3i_0 ( - (ticket3i.usr.e1_a_1 Bool) - (ticket3i.usr.e2_a_1 Bool) - (ticket3i.usr.e3_a_1 Bool) - (ticket3i.usr.e4_a_1 Bool) - (ticket3i.usr.e5_a_1 Bool) - (ticket3i.usr.e6_a_1 Bool) - (ticket3i.usr.e7_a_1 Bool) - (ticket3i.usr.e8_a_1 Bool) - (ticket3i.usr.e9_a_1 Bool) - (ticket3i.usr.init_a1_a_1 Int) - (ticket3i.usr.init_a2_a_1 Int) - (ticket3i.usr.init_a3_a_1 Int) - (ticket3i.usr.init_t_a_1 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_1 Int) - (ticket3i.usr.p2_a_1 Int) - (ticket3i.usr.p3_a_1 Int) - (ticket3i.usr.t_a_1 Int) - (ticket3i.usr.s_a_1 Int) - (ticket3i.usr.a1_a_1 Int) - (ticket3i.usr.a2_a_1 Int) - (ticket3i.usr.a3_a_1 Int) - (ticket3i.usr.erreur_ticket3i_a_1 Bool) - (ticket3i.res.init_flag_a_1 Bool) - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (= ticket3i.usr.p1_a_0 2))) - (let - ((X2 Bool (= ticket3i.usr.p1_a_0 0))) - (and - (= - ticket3i.usr.a1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) - ticket3i.usr.a1_a_0)) - (let - ((X3 - Bool (and - (= ticket3i.usr.p1_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) - (and - (= - ticket3i.usr.p1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 1 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e2_a_1 - (ite X3 2 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e3_a_1 - (ite X1 0 ticket3i.usr.p1_a_0) - ticket3i.usr.p1_a_0)))) - (let - ((X4 Bool (= ticket3i.usr.p3_a_0 2))) - (let - ((X5 Bool (= ticket3i.usr.p2_a_0 2))) - (and - (= - ticket3i.usr.s_a_1 - (ite - ticket3i.usr.e3_a_1 - (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - ticket3i.usr.s_a_0)))) - (let - ((X6 Bool (= ticket3i.usr.p3_a_0 0))) - (let - ((X7 Bool (= ticket3i.usr.p2_a_0 0))) - (and - (= - ticket3i.usr.t_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e4_a_1 - (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e7_a_1 - (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - ticket3i.usr.t_a_0)))) - (= - ticket3i.usr.a2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) - ticket3i.usr.a2_a_0)) - (let - ((X8 - Bool (and - (= ticket3i.usr.p2_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) - (and - (= - ticket3i.usr.p2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 1 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e5_a_1 - (ite X8 2 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 0 ticket3i.usr.p2_a_0) - ticket3i.usr.p2_a_0)))) - (= - ticket3i.usr.a3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) - ticket3i.usr.a3_a_0)) - (let - ((X9 - Bool (and - (= ticket3i.usr.p3_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) - (and - (= - ticket3i.usr.p3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 1 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e8_a_1 - (ite X9 2 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 0 ticket3i.usr.p3_a_0) - ticket3i.usr.p3_a_0)))) - (= - ticket3i.usr.erreur_ticket3i_a_1 - (ite - (or - (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) - (>= ticket3i.usr.p3_a_1 3)) - true - false)) - (not ticket3i.res.init_flag_a_1)))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_0 - (and - (and - (and - (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) - (>= top.usr.init_a2_a_0 0)) - (>= top.usr.init_a3_a_0 0)) - (>= top.usr.init_t_a_0 0))) - (let - ((X1 Bool top.res.abs_8_a_0)) - (and - (= top.usr.OK_a_0 (=> top.res.abs_11_a_0 (not X1))) - (__node_init_ticket3i_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) - (__node_init_excludes9_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.e9_a_1 Bool) - (top.usr.init_a1_a_1 Int) - (top.usr.init_a2_a_1 Int) - (top.usr.init_a3_a_1 Int) - (top.usr.init_t_a_1 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_1 - (and - (and - (and - (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) - (>= top.usr.init_a2_a_1 0)) - (>= top.usr.init_a3_a_1 0)) - (>= top.usr.init_t_a_1 0))) - (let - ((X1 Bool top.res.abs_8_a_1)) - (and - (= top.usr.OK_a_1 (=> top.res.abs_11_a_1 (not X1))) - (__node_trans_ticket3i_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.usr.init_a1_a_1 - top.usr.init_a2_a_1 - top.usr.init_a3_a_1 - top.usr.init_t_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes9_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.e9 Bool) -(declare-primed-var top.usr.init_a1 Int) -(declare-primed-var top.usr.init_a2 Int) -(declare-primed-var top.usr.init_a3 Int) -(declare-primed-var top.usr.init_t Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_10 - (and - (and - (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) - (>= top.usr.init_a3 0)) - (>= top.usr.init_t 0))) - (let - ((X1 Bool top.res.abs_8)) - (and - (= top.usr.OK (=> top.res.abs_11 (not X1))) - (__node_init_ticket3i_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) - (__node_init_excludes9_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.e9! Bool) - (top.usr.init_a1! Int) - (top.usr.init_a2! Int) - (top.usr.init_a3! Int) - (top.usr.init_t! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_10! - (and - (and - (and - (and top.res.abs_9! (>= top.usr.init_a1! 0)) - (>= top.usr.init_a2! 0)) - (>= top.usr.init_a3! 0)) - (>= top.usr.init_t! 0))) - (let - ((X1 Bool top.res.abs_8!)) - (and - (= top.usr.OK! (=> top.res.abs_11! (not X1))) - (__node_trans_ticket3i_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.usr.init_a1! - top.usr.init_a2! - top.usr.init_a3! - top.usr.init_t! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_1! - top.res.abs_10 - top.res.abs_11 - top.res.inst_1) - (__node_trans_excludes9_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.res.abs_9! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes9_0 ((excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) excludes9.usr.X3_a_0) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) excludes9.usr.X4_a_0) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) excludes9.usr.X5_a_0) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) excludes9.usr.X6_a_0) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) excludes9.usr.X7_a_0) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) excludes9.usr.X8_a_0) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) excludes9.usr.X9_a_0))) excludes9.res.init_flag_a_0)) +(define-fun __node_trans_excludes9_0 ((excludes9.usr.X1_a_1 Bool) (excludes9.usr.X2_a_1 Bool) (excludes9.usr.X3_a_1 Bool) (excludes9.usr.X4_a_1 Bool) (excludes9.usr.X5_a_1 Bool) (excludes9.usr.X6_a_1 Bool) (excludes9.usr.X7_a_1 Bool) (excludes9.usr.X8_a_1 Bool) (excludes9.usr.X9_a_1 Bool) (excludes9.usr.excludes_a_1 Bool) (excludes9.res.init_flag_a_1 Bool) (excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) excludes9.usr.X3_a_1) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) excludes9.usr.X4_a_1) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) excludes9.usr.X5_a_1) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) excludes9.usr.X6_a_1) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) excludes9.usr.X7_a_1) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) excludes9.usr.X8_a_1) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) excludes9.usr.X9_a_1))) (not excludes9.res.init_flag_a_1))) +(define-fun __node_init_ticket3i_0 ((ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (and (= ticket3i.usr.p1_a_0 0) (let ((X1 (let ((X1 ticket3i.res.nondet_0)) (= X1 0)))) (and (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) (let ((X2 (let ((X2 ticket3i.res.nondet_2) (X3 ticket3i.res.nondet_1)) (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) (and (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) (let ((X3 (let ((X3 ticket3i.res.nondet_4)) (= X3 0)))) (and (= ticket3i.usr.p2_a_0 0) (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) (let ((X4 (let ((X4 ticket3i.res.nondet_6) (X5 ticket3i.res.nondet_5)) (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) (let ((X5 (let ((X5 ticket3i.res.nondet_7)) (= X5 2)))) (let ((X6 (let ((X6 ticket3i.res.nondet_8)) (= X6 0)))) (and (= ticket3i.usr.p3_a_0 0) (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) (let ((X7 (let ((X7 ticket3i.res.nondet_10) (X8 ticket3i.res.nondet_9)) (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) (let ((X8 (let ((X8 ticket3i.res.nondet_11)) (= X8 2)))) (let ((X9 (let ((X9 ticket3i.res.nondet_3)) (= X9 2)))) (and (= ticket3i.usr.erreur_ticket3i_a_0 (ite (or (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) (>= ticket3i.usr.p3_a_0 3)) true false)) ticket3i.res.init_flag_a_0)))))))))))))))) +(define-fun __node_trans_ticket3i_0 ((ticket3i.usr.e1_a_1 Bool) (ticket3i.usr.e2_a_1 Bool) (ticket3i.usr.e3_a_1 Bool) (ticket3i.usr.e4_a_1 Bool) (ticket3i.usr.e5_a_1 Bool) (ticket3i.usr.e6_a_1 Bool) (ticket3i.usr.e7_a_1 Bool) (ticket3i.usr.e8_a_1 Bool) (ticket3i.usr.e9_a_1 Bool) (ticket3i.usr.init_a1_a_1 Int) (ticket3i.usr.init_a2_a_1 Int) (ticket3i.usr.init_a3_a_1 Int) (ticket3i.usr.init_t_a_1 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_1 Int) (ticket3i.usr.p2_a_1 Int) (ticket3i.usr.p3_a_1 Int) (ticket3i.usr.t_a_1 Int) (ticket3i.usr.s_a_1 Int) (ticket3i.usr.a1_a_1 Int) (ticket3i.usr.a2_a_1 Int) (ticket3i.usr.a3_a_1 Int) (ticket3i.usr.erreur_ticket3i_a_1 Bool) (ticket3i.res.init_flag_a_1 Bool) (ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (let ((X1 (= ticket3i.usr.p1_a_0 2))) (let ((X2 (= ticket3i.usr.p1_a_0 0))) (and (= ticket3i.usr.a1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) ticket3i.usr.a1_a_0)) (let ((X3 (and (= ticket3i.usr.p1_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) (and (= ticket3i.usr.p1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 1 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e2_a_1 (ite X3 2 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e3_a_1 (ite X1 0 ticket3i.usr.p1_a_0) ticket3i.usr.p1_a_0)))) (let ((X4 (= ticket3i.usr.p3_a_0 2))) (let ((X5 (= ticket3i.usr.p2_a_0 2))) (and (= ticket3i.usr.s_a_1 (ite ticket3i.usr.e3_a_1 (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) ticket3i.usr.s_a_0)))) (let ((X6 (= ticket3i.usr.p3_a_0 0))) (let ((X7 (= ticket3i.usr.p2_a_0 0))) (and (= ticket3i.usr.t_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e4_a_1 (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e7_a_1 (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) ticket3i.usr.t_a_0)))) (= ticket3i.usr.a2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) ticket3i.usr.a2_a_0)) (let ((X8 (and (= ticket3i.usr.p2_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) (and (= ticket3i.usr.p2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 1 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e5_a_1 (ite X8 2 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 0 ticket3i.usr.p2_a_0) ticket3i.usr.p2_a_0)))) (= ticket3i.usr.a3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) ticket3i.usr.a3_a_0)) (let ((X9 (and (= ticket3i.usr.p3_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) (and (= ticket3i.usr.p3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 1 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e8_a_1 (ite X9 2 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 0 ticket3i.usr.p3_a_0) ticket3i.usr.p3_a_0)))) (= ticket3i.usr.erreur_ticket3i_a_1 (ite (or (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) (>= ticket3i.usr.p3_a_1 3)) true false)) (not ticket3i.res.init_flag_a_1))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_0 (and (and (and (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) (>= top.usr.init_a2_a_0 0)) (>= top.usr.init_a3_a_0 0)) (>= top.usr.init_t_a_0 0))) (let ((X1 top.res.abs_8_a_0)) (and (= top.usr.OK_a_0 (=> top.res.abs_11_a_0 (not X1))) (__node_init_ticket3i_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_init_excludes9_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.e9_a_1 Bool) (top.usr.init_a1_a_1 Int) (top.usr.init_a2_a_1 Int) (top.usr.init_a3_a_1 Int) (top.usr.init_t_a_1 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_1 (and (and (and (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) (>= top.usr.init_a2_a_1 0)) (>= top.usr.init_a3_a_1 0)) (>= top.usr.init_t_a_1 0))) (let ((X1 top.res.abs_8_a_1)) (and (= top.usr.OK_a_1 (=> top.res.abs_11_a_1 (not X1))) (__node_trans_ticket3i_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.usr.init_a1_a_1 top.usr.init_a2_a_1 top.usr.init_a3_a_1 top.usr.init_t_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_trans_excludes9_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_10 (and (and (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) (>= top.usr.init_a3 0)) (>= top.usr.init_t 0))) (let ((X1 top.res.abs_8)) (and (= top.usr.OK (=> top.res.abs_11 (not X1))) (__node_init_ticket3i_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_init_excludes9_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.e9! Bool) (top.usr.init_a1! Int) (top.usr.init_a2! Int) (top.usr.init_a3! Int) (top.usr.init_t! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_10! (and (and (and (and top.res.abs_9! (>= top.usr.init_a1! 0)) (>= top.usr.init_a2! 0)) (>= top.usr.init_a3! 0)) (>= top.usr.init_t! 0))) (let ((X1 top.res.abs_8!)) (and (= top.usr.OK! (=> top.res.abs_11! (not X1))) (__node_trans_ticket3i_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.usr.init_a1! top.usr.init_a2! top.usr.init_a3! top.usr.init_t! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_1! top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_trans_excludes9_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.res.abs_9! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) (not top.res.init_flag!)))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ticket3i_2.sl b/benchmarks/LIA/Lustre/ticket3i_2.sl index cdcd728..53c0630 100644 --- a/benchmarks/LIA/Lustre/ticket3i_2.sl +++ b/benchmarks/LIA/Lustre/ticket3i_2.sl @@ -1,1385 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes9_0 ( - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - excludes9.usr.X3_a_0) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - excludes9.usr.X4_a_0) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - excludes9.usr.X5_a_0) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - excludes9.usr.X6_a_0) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - excludes9.usr.X7_a_0) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - excludes9.usr.X8_a_0) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - excludes9.usr.X9_a_0))) - excludes9.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes9_0 ( - (excludes9.usr.X1_a_1 Bool) - (excludes9.usr.X2_a_1 Bool) - (excludes9.usr.X3_a_1 Bool) - (excludes9.usr.X4_a_1 Bool) - (excludes9.usr.X5_a_1 Bool) - (excludes9.usr.X6_a_1 Bool) - (excludes9.usr.X7_a_1 Bool) - (excludes9.usr.X8_a_1 Bool) - (excludes9.usr.X9_a_1 Bool) - (excludes9.usr.excludes_a_1 Bool) - (excludes9.res.init_flag_a_1 Bool) - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - excludes9.usr.X3_a_1) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - excludes9.usr.X4_a_1) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - excludes9.usr.X5_a_1) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - excludes9.usr.X6_a_1) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - excludes9.usr.X7_a_1) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - excludes9.usr.X8_a_1) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - excludes9.usr.X9_a_1))) - (not excludes9.res.init_flag_a_1)) -) - -(define-fun - __node_init_ticket3i_0 ( - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (and - (= ticket3i.usr.p1_a_0 0) - (let - ((X1 Bool (let ((X1 Int ticket3i.res.nondet_0)) (= X1 0)))) - (and - (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) - (let - ((X2 - Bool (let - ((X2 Int ticket3i.res.nondet_2) (X3 Int ticket3i.res.nondet_1)) - (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) - (and - (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) - (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) - (let - ((X3 Bool (let ((X3 Int ticket3i.res.nondet_4)) (= X3 0)))) - (and - (= ticket3i.usr.p2_a_0 0) - (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) - (let - ((X4 - Bool (let - ((X4 Int ticket3i.res.nondet_6) - (X5 Int ticket3i.res.nondet_5)) - (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) - (let - ((X5 Bool (let ((X5 Int ticket3i.res.nondet_7)) (= X5 2)))) - (let - ((X6 Bool (let ((X6 Int ticket3i.res.nondet_8)) (= X6 0)))) - (and - (= ticket3i.usr.p3_a_0 0) - (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) - (let - ((X7 - Bool (let - ((X7 Int ticket3i.res.nondet_10) - (X8 Int ticket3i.res.nondet_9)) - (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) - (let - ((X8 Bool (let ((X8 Int ticket3i.res.nondet_11)) (= X8 2)))) - (let - ((X9 Bool (let ((X9 Int ticket3i.res.nondet_3)) (= X9 2)))) - (and - (= - ticket3i.usr.erreur_ticket3i_a_0 - (ite - (or - (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) - (>= ticket3i.usr.p3_a_0 3)) - true - false)) - ticket3i.res.init_flag_a_0))))))))))))))) -) - -(define-fun - __node_trans_ticket3i_0 ( - (ticket3i.usr.e1_a_1 Bool) - (ticket3i.usr.e2_a_1 Bool) - (ticket3i.usr.e3_a_1 Bool) - (ticket3i.usr.e4_a_1 Bool) - (ticket3i.usr.e5_a_1 Bool) - (ticket3i.usr.e6_a_1 Bool) - (ticket3i.usr.e7_a_1 Bool) - (ticket3i.usr.e8_a_1 Bool) - (ticket3i.usr.e9_a_1 Bool) - (ticket3i.usr.init_a1_a_1 Int) - (ticket3i.usr.init_a2_a_1 Int) - (ticket3i.usr.init_a3_a_1 Int) - (ticket3i.usr.init_t_a_1 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_1 Int) - (ticket3i.usr.p2_a_1 Int) - (ticket3i.usr.p3_a_1 Int) - (ticket3i.usr.t_a_1 Int) - (ticket3i.usr.s_a_1 Int) - (ticket3i.usr.a1_a_1 Int) - (ticket3i.usr.a2_a_1 Int) - (ticket3i.usr.a3_a_1 Int) - (ticket3i.usr.erreur_ticket3i_a_1 Bool) - (ticket3i.res.init_flag_a_1 Bool) - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (= ticket3i.usr.p1_a_0 2))) - (let - ((X2 Bool (= ticket3i.usr.p1_a_0 0))) - (and - (= - ticket3i.usr.a1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) - ticket3i.usr.a1_a_0)) - (let - ((X3 - Bool (and - (= ticket3i.usr.p1_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) - (and - (= - ticket3i.usr.p1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 1 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e2_a_1 - (ite X3 2 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e3_a_1 - (ite X1 0 ticket3i.usr.p1_a_0) - ticket3i.usr.p1_a_0)))) - (let - ((X4 Bool (= ticket3i.usr.p3_a_0 2))) - (let - ((X5 Bool (= ticket3i.usr.p2_a_0 2))) - (and - (= - ticket3i.usr.s_a_1 - (ite - ticket3i.usr.e3_a_1 - (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - ticket3i.usr.s_a_0)))) - (let - ((X6 Bool (= ticket3i.usr.p3_a_0 0))) - (let - ((X7 Bool (= ticket3i.usr.p2_a_0 0))) - (and - (= - ticket3i.usr.t_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e4_a_1 - (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e7_a_1 - (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - ticket3i.usr.t_a_0)))) - (= - ticket3i.usr.a2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) - ticket3i.usr.a2_a_0)) - (let - ((X8 - Bool (and - (= ticket3i.usr.p2_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) - (and - (= - ticket3i.usr.p2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 1 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e5_a_1 - (ite X8 2 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 0 ticket3i.usr.p2_a_0) - ticket3i.usr.p2_a_0)))) - (= - ticket3i.usr.a3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) - ticket3i.usr.a3_a_0)) - (let - ((X9 - Bool (and - (= ticket3i.usr.p3_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) - (and - (= - ticket3i.usr.p3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 1 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e8_a_1 - (ite X9 2 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 0 ticket3i.usr.p3_a_0) - ticket3i.usr.p3_a_0)))) - (= - ticket3i.usr.erreur_ticket3i_a_1 - (ite - (or - (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) - (>= ticket3i.usr.p3_a_1 3)) - true - false)) - (not ticket3i.res.init_flag_a_1)))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_0 - (and - (and - (and - (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) - (>= top.usr.init_a2_a_0 0)) - (>= top.usr.init_a3_a_0 0)) - (>= top.usr.init_t_a_0 0))) - (let - ((X1 Bool top.res.abs_11_a_0)) - (let - ((X2 Int top.res.abs_4_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_ticket3i_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_init_excludes9_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.e9_a_1 Bool) - (top.usr.init_a1_a_1 Int) - (top.usr.init_a2_a_1 Int) - (top.usr.init_a3_a_1 Int) - (top.usr.init_t_a_1 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_1 - (and - (and - (and - (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) - (>= top.usr.init_a2_a_1 0)) - (>= top.usr.init_a3_a_1 0)) - (>= top.usr.init_t_a_1 0))) - (let - ((X1 Bool top.res.abs_11_a_1)) - (let - ((X2 Int top.res.abs_4_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_ticket3i_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.usr.init_a1_a_1 - top.usr.init_a2_a_1 - top.usr.init_a3_a_1 - top.usr.init_t_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes9_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.e9 Bool) -(declare-primed-var top.usr.init_a1 Int) -(declare-primed-var top.usr.init_a2 Int) -(declare-primed-var top.usr.init_a3 Int) -(declare-primed-var top.usr.init_t Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_10 - (and - (and - (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) - (>= top.usr.init_a3 0)) - (>= top.usr.init_t 0))) - (let - ((X1 Bool top.res.abs_11)) - (let - ((X2 Int top.res.abs_4)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_ticket3i_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) - (__node_init_excludes9_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.e9! Bool) - (top.usr.init_a1! Int) - (top.usr.init_a2! Int) - (top.usr.init_a3! Int) - (top.usr.init_t! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_10! - (and - (and - (and - (and top.res.abs_9! (>= top.usr.init_a1! 0)) - (>= top.usr.init_a2! 0)) - (>= top.usr.init_a3! 0)) - (>= top.usr.init_t! 0))) - (let - ((X1 Bool top.res.abs_11!)) - (let - ((X2 Int top.res.abs_4!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_ticket3i_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.usr.init_a1! - top.usr.init_a2! - top.usr.init_a3! - top.usr.init_t! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_1! - top.res.abs_10 - top.res.abs_11 - top.res.inst_1) - (__node_trans_excludes9_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.res.abs_9! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes9_0 ((excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) excludes9.usr.X3_a_0) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) excludes9.usr.X4_a_0) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) excludes9.usr.X5_a_0) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) excludes9.usr.X6_a_0) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) excludes9.usr.X7_a_0) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) excludes9.usr.X8_a_0) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) excludes9.usr.X9_a_0))) excludes9.res.init_flag_a_0)) +(define-fun __node_trans_excludes9_0 ((excludes9.usr.X1_a_1 Bool) (excludes9.usr.X2_a_1 Bool) (excludes9.usr.X3_a_1 Bool) (excludes9.usr.X4_a_1 Bool) (excludes9.usr.X5_a_1 Bool) (excludes9.usr.X6_a_1 Bool) (excludes9.usr.X7_a_1 Bool) (excludes9.usr.X8_a_1 Bool) (excludes9.usr.X9_a_1 Bool) (excludes9.usr.excludes_a_1 Bool) (excludes9.res.init_flag_a_1 Bool) (excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) excludes9.usr.X3_a_1) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) excludes9.usr.X4_a_1) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) excludes9.usr.X5_a_1) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) excludes9.usr.X6_a_1) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) excludes9.usr.X7_a_1) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) excludes9.usr.X8_a_1) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) excludes9.usr.X9_a_1))) (not excludes9.res.init_flag_a_1))) +(define-fun __node_init_ticket3i_0 ((ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (and (= ticket3i.usr.p1_a_0 0) (let ((X1 (let ((X1 ticket3i.res.nondet_0)) (= X1 0)))) (and (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) (let ((X2 (let ((X2 ticket3i.res.nondet_2) (X3 ticket3i.res.nondet_1)) (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) (and (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) (let ((X3 (let ((X3 ticket3i.res.nondet_4)) (= X3 0)))) (and (= ticket3i.usr.p2_a_0 0) (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) (let ((X4 (let ((X4 ticket3i.res.nondet_6) (X5 ticket3i.res.nondet_5)) (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) (let ((X5 (let ((X5 ticket3i.res.nondet_7)) (= X5 2)))) (let ((X6 (let ((X6 ticket3i.res.nondet_8)) (= X6 0)))) (and (= ticket3i.usr.p3_a_0 0) (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) (let ((X7 (let ((X7 ticket3i.res.nondet_10) (X8 ticket3i.res.nondet_9)) (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) (let ((X8 (let ((X8 ticket3i.res.nondet_11)) (= X8 2)))) (let ((X9 (let ((X9 ticket3i.res.nondet_3)) (= X9 2)))) (and (= ticket3i.usr.erreur_ticket3i_a_0 (ite (or (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) (>= ticket3i.usr.p3_a_0 3)) true false)) ticket3i.res.init_flag_a_0)))))))))))))))) +(define-fun __node_trans_ticket3i_0 ((ticket3i.usr.e1_a_1 Bool) (ticket3i.usr.e2_a_1 Bool) (ticket3i.usr.e3_a_1 Bool) (ticket3i.usr.e4_a_1 Bool) (ticket3i.usr.e5_a_1 Bool) (ticket3i.usr.e6_a_1 Bool) (ticket3i.usr.e7_a_1 Bool) (ticket3i.usr.e8_a_1 Bool) (ticket3i.usr.e9_a_1 Bool) (ticket3i.usr.init_a1_a_1 Int) (ticket3i.usr.init_a2_a_1 Int) (ticket3i.usr.init_a3_a_1 Int) (ticket3i.usr.init_t_a_1 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_1 Int) (ticket3i.usr.p2_a_1 Int) (ticket3i.usr.p3_a_1 Int) (ticket3i.usr.t_a_1 Int) (ticket3i.usr.s_a_1 Int) (ticket3i.usr.a1_a_1 Int) (ticket3i.usr.a2_a_1 Int) (ticket3i.usr.a3_a_1 Int) (ticket3i.usr.erreur_ticket3i_a_1 Bool) (ticket3i.res.init_flag_a_1 Bool) (ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (let ((X1 (= ticket3i.usr.p1_a_0 2))) (let ((X2 (= ticket3i.usr.p1_a_0 0))) (and (= ticket3i.usr.a1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) ticket3i.usr.a1_a_0)) (let ((X3 (and (= ticket3i.usr.p1_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) (and (= ticket3i.usr.p1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 1 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e2_a_1 (ite X3 2 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e3_a_1 (ite X1 0 ticket3i.usr.p1_a_0) ticket3i.usr.p1_a_0)))) (let ((X4 (= ticket3i.usr.p3_a_0 2))) (let ((X5 (= ticket3i.usr.p2_a_0 2))) (and (= ticket3i.usr.s_a_1 (ite ticket3i.usr.e3_a_1 (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) ticket3i.usr.s_a_0)))) (let ((X6 (= ticket3i.usr.p3_a_0 0))) (let ((X7 (= ticket3i.usr.p2_a_0 0))) (and (= ticket3i.usr.t_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e4_a_1 (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e7_a_1 (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) ticket3i.usr.t_a_0)))) (= ticket3i.usr.a2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) ticket3i.usr.a2_a_0)) (let ((X8 (and (= ticket3i.usr.p2_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) (and (= ticket3i.usr.p2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 1 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e5_a_1 (ite X8 2 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 0 ticket3i.usr.p2_a_0) ticket3i.usr.p2_a_0)))) (= ticket3i.usr.a3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) ticket3i.usr.a3_a_0)) (let ((X9 (and (= ticket3i.usr.p3_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) (and (= ticket3i.usr.p3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 1 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e8_a_1 (ite X9 2 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 0 ticket3i.usr.p3_a_0) ticket3i.usr.p3_a_0)))) (= ticket3i.usr.erreur_ticket3i_a_1 (ite (or (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) (>= ticket3i.usr.p3_a_1 3)) true false)) (not ticket3i.res.init_flag_a_1))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_0 (and (and (and (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) (>= top.usr.init_a2_a_0 0)) (>= top.usr.init_a3_a_0 0)) (>= top.usr.init_t_a_0 0))) (let ((X1 top.res.abs_11_a_0)) (let ((X2 top.res.abs_4_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_ticket3i_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_init_excludes9_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.e9_a_1 Bool) (top.usr.init_a1_a_1 Int) (top.usr.init_a2_a_1 Int) (top.usr.init_a3_a_1 Int) (top.usr.init_t_a_1 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_1 (and (and (and (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) (>= top.usr.init_a2_a_1 0)) (>= top.usr.init_a3_a_1 0)) (>= top.usr.init_t_a_1 0))) (let ((X1 top.res.abs_11_a_1)) (let ((X2 top.res.abs_4_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_ticket3i_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.usr.init_a1_a_1 top.usr.init_a2_a_1 top.usr.init_a3_a_1 top.usr.init_t_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_trans_excludes9_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_10 (and (and (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) (>= top.usr.init_a3 0)) (>= top.usr.init_t 0))) (let ((X1 top.res.abs_11)) (let ((X2 top.res.abs_4)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_ticket3i_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_init_excludes9_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.e9! Bool) (top.usr.init_a1! Int) (top.usr.init_a2! Int) (top.usr.init_a3! Int) (top.usr.init_t! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_10! (and (and (and (and top.res.abs_9! (>= top.usr.init_a1! 0)) (>= top.usr.init_a2! 0)) (>= top.usr.init_a3! 0)) (>= top.usr.init_t! 0))) (let ((X1 top.res.abs_11!)) (let ((X2 top.res.abs_4!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_ticket3i_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.usr.init_a1! top.usr.init_a2! top.usr.init_a3! top.usr.init_t! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_1! top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_trans_excludes9_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.res.abs_9! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ticket3i_3.sl b/benchmarks/LIA/Lustre/ticket3i_3.sl index ad8f922..24d2a89 100644 --- a/benchmarks/LIA/Lustre/ticket3i_3.sl +++ b/benchmarks/LIA/Lustre/ticket3i_3.sl @@ -1,1385 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes9_0 ( - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - excludes9.usr.X3_a_0) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - excludes9.usr.X4_a_0) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - excludes9.usr.X5_a_0) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - excludes9.usr.X6_a_0) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - excludes9.usr.X7_a_0) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - excludes9.usr.X8_a_0) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - excludes9.usr.X9_a_0))) - excludes9.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes9_0 ( - (excludes9.usr.X1_a_1 Bool) - (excludes9.usr.X2_a_1 Bool) - (excludes9.usr.X3_a_1 Bool) - (excludes9.usr.X4_a_1 Bool) - (excludes9.usr.X5_a_1 Bool) - (excludes9.usr.X6_a_1 Bool) - (excludes9.usr.X7_a_1 Bool) - (excludes9.usr.X8_a_1 Bool) - (excludes9.usr.X9_a_1 Bool) - (excludes9.usr.excludes_a_1 Bool) - (excludes9.res.init_flag_a_1 Bool) - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - excludes9.usr.X3_a_1) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - excludes9.usr.X4_a_1) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - excludes9.usr.X5_a_1) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - excludes9.usr.X6_a_1) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - excludes9.usr.X7_a_1) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - excludes9.usr.X8_a_1) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - excludes9.usr.X9_a_1))) - (not excludes9.res.init_flag_a_1)) -) - -(define-fun - __node_init_ticket3i_0 ( - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (and - (= ticket3i.usr.p1_a_0 0) - (let - ((X1 Bool (let ((X1 Int ticket3i.res.nondet_0)) (= X1 0)))) - (and - (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) - (let - ((X2 - Bool (let - ((X2 Int ticket3i.res.nondet_2) (X3 Int ticket3i.res.nondet_1)) - (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) - (and - (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) - (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) - (let - ((X3 Bool (let ((X3 Int ticket3i.res.nondet_4)) (= X3 0)))) - (and - (= ticket3i.usr.p2_a_0 0) - (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) - (let - ((X4 - Bool (let - ((X4 Int ticket3i.res.nondet_6) - (X5 Int ticket3i.res.nondet_5)) - (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) - (let - ((X5 Bool (let ((X5 Int ticket3i.res.nondet_7)) (= X5 2)))) - (let - ((X6 Bool (let ((X6 Int ticket3i.res.nondet_8)) (= X6 0)))) - (and - (= ticket3i.usr.p3_a_0 0) - (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) - (let - ((X7 - Bool (let - ((X7 Int ticket3i.res.nondet_10) - (X8 Int ticket3i.res.nondet_9)) - (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) - (let - ((X8 Bool (let ((X8 Int ticket3i.res.nondet_11)) (= X8 2)))) - (let - ((X9 Bool (let ((X9 Int ticket3i.res.nondet_3)) (= X9 2)))) - (and - (= - ticket3i.usr.erreur_ticket3i_a_0 - (ite - (or - (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) - (>= ticket3i.usr.p3_a_0 3)) - true - false)) - ticket3i.res.init_flag_a_0))))))))))))))) -) - -(define-fun - __node_trans_ticket3i_0 ( - (ticket3i.usr.e1_a_1 Bool) - (ticket3i.usr.e2_a_1 Bool) - (ticket3i.usr.e3_a_1 Bool) - (ticket3i.usr.e4_a_1 Bool) - (ticket3i.usr.e5_a_1 Bool) - (ticket3i.usr.e6_a_1 Bool) - (ticket3i.usr.e7_a_1 Bool) - (ticket3i.usr.e8_a_1 Bool) - (ticket3i.usr.e9_a_1 Bool) - (ticket3i.usr.init_a1_a_1 Int) - (ticket3i.usr.init_a2_a_1 Int) - (ticket3i.usr.init_a3_a_1 Int) - (ticket3i.usr.init_t_a_1 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_1 Int) - (ticket3i.usr.p2_a_1 Int) - (ticket3i.usr.p3_a_1 Int) - (ticket3i.usr.t_a_1 Int) - (ticket3i.usr.s_a_1 Int) - (ticket3i.usr.a1_a_1 Int) - (ticket3i.usr.a2_a_1 Int) - (ticket3i.usr.a3_a_1 Int) - (ticket3i.usr.erreur_ticket3i_a_1 Bool) - (ticket3i.res.init_flag_a_1 Bool) - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (= ticket3i.usr.p1_a_0 2))) - (let - ((X2 Bool (= ticket3i.usr.p1_a_0 0))) - (and - (= - ticket3i.usr.a1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) - ticket3i.usr.a1_a_0)) - (let - ((X3 - Bool (and - (= ticket3i.usr.p1_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) - (and - (= - ticket3i.usr.p1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 1 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e2_a_1 - (ite X3 2 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e3_a_1 - (ite X1 0 ticket3i.usr.p1_a_0) - ticket3i.usr.p1_a_0)))) - (let - ((X4 Bool (= ticket3i.usr.p3_a_0 2))) - (let - ((X5 Bool (= ticket3i.usr.p2_a_0 2))) - (and - (= - ticket3i.usr.s_a_1 - (ite - ticket3i.usr.e3_a_1 - (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - ticket3i.usr.s_a_0)))) - (let - ((X6 Bool (= ticket3i.usr.p3_a_0 0))) - (let - ((X7 Bool (= ticket3i.usr.p2_a_0 0))) - (and - (= - ticket3i.usr.t_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e4_a_1 - (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e7_a_1 - (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - ticket3i.usr.t_a_0)))) - (= - ticket3i.usr.a2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) - ticket3i.usr.a2_a_0)) - (let - ((X8 - Bool (and - (= ticket3i.usr.p2_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) - (and - (= - ticket3i.usr.p2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 1 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e5_a_1 - (ite X8 2 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 0 ticket3i.usr.p2_a_0) - ticket3i.usr.p2_a_0)))) - (= - ticket3i.usr.a3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) - ticket3i.usr.a3_a_0)) - (let - ((X9 - Bool (and - (= ticket3i.usr.p3_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) - (and - (= - ticket3i.usr.p3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 1 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e8_a_1 - (ite X9 2 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 0 ticket3i.usr.p3_a_0) - ticket3i.usr.p3_a_0)))) - (= - ticket3i.usr.erreur_ticket3i_a_1 - (ite - (or - (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) - (>= ticket3i.usr.p3_a_1 3)) - true - false)) - (not ticket3i.res.init_flag_a_1)))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_0 - (and - (and - (and - (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) - (>= top.usr.init_a2_a_0 0)) - (>= top.usr.init_a3_a_0 0)) - (>= top.usr.init_t_a_0 0))) - (let - ((X1 Bool top.res.abs_11_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_ticket3i_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_init_excludes9_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.e9_a_1 Bool) - (top.usr.init_a1_a_1 Int) - (top.usr.init_a2_a_1 Int) - (top.usr.init_a3_a_1 Int) - (top.usr.init_t_a_1 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_1 - (and - (and - (and - (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) - (>= top.usr.init_a2_a_1 0)) - (>= top.usr.init_a3_a_1 0)) - (>= top.usr.init_t_a_1 0))) - (let - ((X1 Bool top.res.abs_11_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_ticket3i_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.usr.init_a1_a_1 - top.usr.init_a2_a_1 - top.usr.init_a3_a_1 - top.usr.init_t_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes9_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.e9 Bool) -(declare-primed-var top.usr.init_a1 Int) -(declare-primed-var top.usr.init_a2 Int) -(declare-primed-var top.usr.init_a3 Int) -(declare-primed-var top.usr.init_t Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_10 - (and - (and - (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) - (>= top.usr.init_a3 0)) - (>= top.usr.init_t 0))) - (let - ((X1 Bool top.res.abs_11)) - (let - ((X2 Int top.res.abs_3)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_ticket3i_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) - (__node_init_excludes9_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.e9! Bool) - (top.usr.init_a1! Int) - (top.usr.init_a2! Int) - (top.usr.init_a3! Int) - (top.usr.init_t! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_10! - (and - (and - (and - (and top.res.abs_9! (>= top.usr.init_a1! 0)) - (>= top.usr.init_a2! 0)) - (>= top.usr.init_a3! 0)) - (>= top.usr.init_t! 0))) - (let - ((X1 Bool top.res.abs_11!)) - (let - ((X2 Int top.res.abs_3!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_ticket3i_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.usr.init_a1! - top.usr.init_a2! - top.usr.init_a3! - top.usr.init_t! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_1! - top.res.abs_10 - top.res.abs_11 - top.res.inst_1) - (__node_trans_excludes9_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.res.abs_9! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes9_0 ((excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) excludes9.usr.X3_a_0) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) excludes9.usr.X4_a_0) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) excludes9.usr.X5_a_0) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) excludes9.usr.X6_a_0) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) excludes9.usr.X7_a_0) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) excludes9.usr.X8_a_0) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) excludes9.usr.X9_a_0))) excludes9.res.init_flag_a_0)) +(define-fun __node_trans_excludes9_0 ((excludes9.usr.X1_a_1 Bool) (excludes9.usr.X2_a_1 Bool) (excludes9.usr.X3_a_1 Bool) (excludes9.usr.X4_a_1 Bool) (excludes9.usr.X5_a_1 Bool) (excludes9.usr.X6_a_1 Bool) (excludes9.usr.X7_a_1 Bool) (excludes9.usr.X8_a_1 Bool) (excludes9.usr.X9_a_1 Bool) (excludes9.usr.excludes_a_1 Bool) (excludes9.res.init_flag_a_1 Bool) (excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) excludes9.usr.X3_a_1) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) excludes9.usr.X4_a_1) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) excludes9.usr.X5_a_1) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) excludes9.usr.X6_a_1) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) excludes9.usr.X7_a_1) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) excludes9.usr.X8_a_1) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) excludes9.usr.X9_a_1))) (not excludes9.res.init_flag_a_1))) +(define-fun __node_init_ticket3i_0 ((ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (and (= ticket3i.usr.p1_a_0 0) (let ((X1 (let ((X1 ticket3i.res.nondet_0)) (= X1 0)))) (and (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) (let ((X2 (let ((X2 ticket3i.res.nondet_2) (X3 ticket3i.res.nondet_1)) (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) (and (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) (let ((X3 (let ((X3 ticket3i.res.nondet_4)) (= X3 0)))) (and (= ticket3i.usr.p2_a_0 0) (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) (let ((X4 (let ((X4 ticket3i.res.nondet_6) (X5 ticket3i.res.nondet_5)) (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) (let ((X5 (let ((X5 ticket3i.res.nondet_7)) (= X5 2)))) (let ((X6 (let ((X6 ticket3i.res.nondet_8)) (= X6 0)))) (and (= ticket3i.usr.p3_a_0 0) (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) (let ((X7 (let ((X7 ticket3i.res.nondet_10) (X8 ticket3i.res.nondet_9)) (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) (let ((X8 (let ((X8 ticket3i.res.nondet_11)) (= X8 2)))) (let ((X9 (let ((X9 ticket3i.res.nondet_3)) (= X9 2)))) (and (= ticket3i.usr.erreur_ticket3i_a_0 (ite (or (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) (>= ticket3i.usr.p3_a_0 3)) true false)) ticket3i.res.init_flag_a_0)))))))))))))))) +(define-fun __node_trans_ticket3i_0 ((ticket3i.usr.e1_a_1 Bool) (ticket3i.usr.e2_a_1 Bool) (ticket3i.usr.e3_a_1 Bool) (ticket3i.usr.e4_a_1 Bool) (ticket3i.usr.e5_a_1 Bool) (ticket3i.usr.e6_a_1 Bool) (ticket3i.usr.e7_a_1 Bool) (ticket3i.usr.e8_a_1 Bool) (ticket3i.usr.e9_a_1 Bool) (ticket3i.usr.init_a1_a_1 Int) (ticket3i.usr.init_a2_a_1 Int) (ticket3i.usr.init_a3_a_1 Int) (ticket3i.usr.init_t_a_1 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_1 Int) (ticket3i.usr.p2_a_1 Int) (ticket3i.usr.p3_a_1 Int) (ticket3i.usr.t_a_1 Int) (ticket3i.usr.s_a_1 Int) (ticket3i.usr.a1_a_1 Int) (ticket3i.usr.a2_a_1 Int) (ticket3i.usr.a3_a_1 Int) (ticket3i.usr.erreur_ticket3i_a_1 Bool) (ticket3i.res.init_flag_a_1 Bool) (ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (let ((X1 (= ticket3i.usr.p1_a_0 2))) (let ((X2 (= ticket3i.usr.p1_a_0 0))) (and (= ticket3i.usr.a1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) ticket3i.usr.a1_a_0)) (let ((X3 (and (= ticket3i.usr.p1_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) (and (= ticket3i.usr.p1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 1 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e2_a_1 (ite X3 2 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e3_a_1 (ite X1 0 ticket3i.usr.p1_a_0) ticket3i.usr.p1_a_0)))) (let ((X4 (= ticket3i.usr.p3_a_0 2))) (let ((X5 (= ticket3i.usr.p2_a_0 2))) (and (= ticket3i.usr.s_a_1 (ite ticket3i.usr.e3_a_1 (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) ticket3i.usr.s_a_0)))) (let ((X6 (= ticket3i.usr.p3_a_0 0))) (let ((X7 (= ticket3i.usr.p2_a_0 0))) (and (= ticket3i.usr.t_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e4_a_1 (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e7_a_1 (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) ticket3i.usr.t_a_0)))) (= ticket3i.usr.a2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) ticket3i.usr.a2_a_0)) (let ((X8 (and (= ticket3i.usr.p2_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) (and (= ticket3i.usr.p2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 1 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e5_a_1 (ite X8 2 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 0 ticket3i.usr.p2_a_0) ticket3i.usr.p2_a_0)))) (= ticket3i.usr.a3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) ticket3i.usr.a3_a_0)) (let ((X9 (and (= ticket3i.usr.p3_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) (and (= ticket3i.usr.p3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 1 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e8_a_1 (ite X9 2 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 0 ticket3i.usr.p3_a_0) ticket3i.usr.p3_a_0)))) (= ticket3i.usr.erreur_ticket3i_a_1 (ite (or (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) (>= ticket3i.usr.p3_a_1 3)) true false)) (not ticket3i.res.init_flag_a_1))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_0 (and (and (and (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) (>= top.usr.init_a2_a_0 0)) (>= top.usr.init_a3_a_0 0)) (>= top.usr.init_t_a_0 0))) (let ((X1 top.res.abs_11_a_0)) (let ((X2 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_ticket3i_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_init_excludes9_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.e9_a_1 Bool) (top.usr.init_a1_a_1 Int) (top.usr.init_a2_a_1 Int) (top.usr.init_a3_a_1 Int) (top.usr.init_t_a_1 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_1 (and (and (and (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) (>= top.usr.init_a2_a_1 0)) (>= top.usr.init_a3_a_1 0)) (>= top.usr.init_t_a_1 0))) (let ((X1 top.res.abs_11_a_1)) (let ((X2 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_ticket3i_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.usr.init_a1_a_1 top.usr.init_a2_a_1 top.usr.init_a3_a_1 top.usr.init_t_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_trans_excludes9_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_10 (and (and (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) (>= top.usr.init_a3 0)) (>= top.usr.init_t 0))) (let ((X1 top.res.abs_11)) (let ((X2 top.res.abs_3)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_ticket3i_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_init_excludes9_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.e9! Bool) (top.usr.init_a1! Int) (top.usr.init_a2! Int) (top.usr.init_a3! Int) (top.usr.init_t! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_10! (and (and (and (and top.res.abs_9! (>= top.usr.init_a1! 0)) (>= top.usr.init_a2! 0)) (>= top.usr.init_a3! 0)) (>= top.usr.init_t! 0))) (let ((X1 top.res.abs_11!)) (let ((X2 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_ticket3i_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.usr.init_a1! top.usr.init_a2! top.usr.init_a3! top.usr.init_t! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_1! top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_trans_excludes9_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.res.abs_9! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ticket3i_3_e7_1312_e8_1916.sl b/benchmarks/LIA/Lustre/ticket3i_3_e7_1312_e8_1916.sl index ad8f922..24d2a89 100644 --- a/benchmarks/LIA/Lustre/ticket3i_3_e7_1312_e8_1916.sl +++ b/benchmarks/LIA/Lustre/ticket3i_3_e7_1312_e8_1916.sl @@ -1,1385 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes9_0 ( - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - excludes9.usr.X3_a_0) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - excludes9.usr.X4_a_0) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - excludes9.usr.X5_a_0) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - excludes9.usr.X6_a_0) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - excludes9.usr.X7_a_0) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - excludes9.usr.X8_a_0) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - excludes9.usr.X9_a_0))) - excludes9.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes9_0 ( - (excludes9.usr.X1_a_1 Bool) - (excludes9.usr.X2_a_1 Bool) - (excludes9.usr.X3_a_1 Bool) - (excludes9.usr.X4_a_1 Bool) - (excludes9.usr.X5_a_1 Bool) - (excludes9.usr.X6_a_1 Bool) - (excludes9.usr.X7_a_1 Bool) - (excludes9.usr.X8_a_1 Bool) - (excludes9.usr.X9_a_1 Bool) - (excludes9.usr.excludes_a_1 Bool) - (excludes9.res.init_flag_a_1 Bool) - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - excludes9.usr.X3_a_1) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - excludes9.usr.X4_a_1) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - excludes9.usr.X5_a_1) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - excludes9.usr.X6_a_1) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - excludes9.usr.X7_a_1) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - excludes9.usr.X8_a_1) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - excludes9.usr.X9_a_1))) - (not excludes9.res.init_flag_a_1)) -) - -(define-fun - __node_init_ticket3i_0 ( - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (and - (= ticket3i.usr.p1_a_0 0) - (let - ((X1 Bool (let ((X1 Int ticket3i.res.nondet_0)) (= X1 0)))) - (and - (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) - (let - ((X2 - Bool (let - ((X2 Int ticket3i.res.nondet_2) (X3 Int ticket3i.res.nondet_1)) - (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) - (and - (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) - (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) - (let - ((X3 Bool (let ((X3 Int ticket3i.res.nondet_4)) (= X3 0)))) - (and - (= ticket3i.usr.p2_a_0 0) - (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) - (let - ((X4 - Bool (let - ((X4 Int ticket3i.res.nondet_6) - (X5 Int ticket3i.res.nondet_5)) - (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) - (let - ((X5 Bool (let ((X5 Int ticket3i.res.nondet_7)) (= X5 2)))) - (let - ((X6 Bool (let ((X6 Int ticket3i.res.nondet_8)) (= X6 0)))) - (and - (= ticket3i.usr.p3_a_0 0) - (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) - (let - ((X7 - Bool (let - ((X7 Int ticket3i.res.nondet_10) - (X8 Int ticket3i.res.nondet_9)) - (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) - (let - ((X8 Bool (let ((X8 Int ticket3i.res.nondet_11)) (= X8 2)))) - (let - ((X9 Bool (let ((X9 Int ticket3i.res.nondet_3)) (= X9 2)))) - (and - (= - ticket3i.usr.erreur_ticket3i_a_0 - (ite - (or - (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) - (>= ticket3i.usr.p3_a_0 3)) - true - false)) - ticket3i.res.init_flag_a_0))))))))))))))) -) - -(define-fun - __node_trans_ticket3i_0 ( - (ticket3i.usr.e1_a_1 Bool) - (ticket3i.usr.e2_a_1 Bool) - (ticket3i.usr.e3_a_1 Bool) - (ticket3i.usr.e4_a_1 Bool) - (ticket3i.usr.e5_a_1 Bool) - (ticket3i.usr.e6_a_1 Bool) - (ticket3i.usr.e7_a_1 Bool) - (ticket3i.usr.e8_a_1 Bool) - (ticket3i.usr.e9_a_1 Bool) - (ticket3i.usr.init_a1_a_1 Int) - (ticket3i.usr.init_a2_a_1 Int) - (ticket3i.usr.init_a3_a_1 Int) - (ticket3i.usr.init_t_a_1 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_1 Int) - (ticket3i.usr.p2_a_1 Int) - (ticket3i.usr.p3_a_1 Int) - (ticket3i.usr.t_a_1 Int) - (ticket3i.usr.s_a_1 Int) - (ticket3i.usr.a1_a_1 Int) - (ticket3i.usr.a2_a_1 Int) - (ticket3i.usr.a3_a_1 Int) - (ticket3i.usr.erreur_ticket3i_a_1 Bool) - (ticket3i.res.init_flag_a_1 Bool) - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (= ticket3i.usr.p1_a_0 2))) - (let - ((X2 Bool (= ticket3i.usr.p1_a_0 0))) - (and - (= - ticket3i.usr.a1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) - ticket3i.usr.a1_a_0)) - (let - ((X3 - Bool (and - (= ticket3i.usr.p1_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) - (and - (= - ticket3i.usr.p1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 1 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e2_a_1 - (ite X3 2 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e3_a_1 - (ite X1 0 ticket3i.usr.p1_a_0) - ticket3i.usr.p1_a_0)))) - (let - ((X4 Bool (= ticket3i.usr.p3_a_0 2))) - (let - ((X5 Bool (= ticket3i.usr.p2_a_0 2))) - (and - (= - ticket3i.usr.s_a_1 - (ite - ticket3i.usr.e3_a_1 - (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - ticket3i.usr.s_a_0)))) - (let - ((X6 Bool (= ticket3i.usr.p3_a_0 0))) - (let - ((X7 Bool (= ticket3i.usr.p2_a_0 0))) - (and - (= - ticket3i.usr.t_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e4_a_1 - (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e7_a_1 - (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - ticket3i.usr.t_a_0)))) - (= - ticket3i.usr.a2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) - ticket3i.usr.a2_a_0)) - (let - ((X8 - Bool (and - (= ticket3i.usr.p2_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) - (and - (= - ticket3i.usr.p2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 1 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e5_a_1 - (ite X8 2 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 0 ticket3i.usr.p2_a_0) - ticket3i.usr.p2_a_0)))) - (= - ticket3i.usr.a3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) - ticket3i.usr.a3_a_0)) - (let - ((X9 - Bool (and - (= ticket3i.usr.p3_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) - (and - (= - ticket3i.usr.p3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 1 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e8_a_1 - (ite X9 2 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 0 ticket3i.usr.p3_a_0) - ticket3i.usr.p3_a_0)))) - (= - ticket3i.usr.erreur_ticket3i_a_1 - (ite - (or - (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) - (>= ticket3i.usr.p3_a_1 3)) - true - false)) - (not ticket3i.res.init_flag_a_1)))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_0 - (and - (and - (and - (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) - (>= top.usr.init_a2_a_0 0)) - (>= top.usr.init_a3_a_0 0)) - (>= top.usr.init_t_a_0 0))) - (let - ((X1 Bool top.res.abs_11_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_ticket3i_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_init_excludes9_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.e9_a_1 Bool) - (top.usr.init_a1_a_1 Int) - (top.usr.init_a2_a_1 Int) - (top.usr.init_a3_a_1 Int) - (top.usr.init_t_a_1 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_1 - (and - (and - (and - (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) - (>= top.usr.init_a2_a_1 0)) - (>= top.usr.init_a3_a_1 0)) - (>= top.usr.init_t_a_1 0))) - (let - ((X1 Bool top.res.abs_11_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_ticket3i_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.usr.init_a1_a_1 - top.usr.init_a2_a_1 - top.usr.init_a3_a_1 - top.usr.init_t_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes9_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.e9 Bool) -(declare-primed-var top.usr.init_a1 Int) -(declare-primed-var top.usr.init_a2 Int) -(declare-primed-var top.usr.init_a3 Int) -(declare-primed-var top.usr.init_t Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_10 - (and - (and - (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) - (>= top.usr.init_a3 0)) - (>= top.usr.init_t 0))) - (let - ((X1 Bool top.res.abs_11)) - (let - ((X2 Int top.res.abs_3)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_ticket3i_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) - (__node_init_excludes9_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.e9! Bool) - (top.usr.init_a1! Int) - (top.usr.init_a2! Int) - (top.usr.init_a3! Int) - (top.usr.init_t! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_10! - (and - (and - (and - (and top.res.abs_9! (>= top.usr.init_a1! 0)) - (>= top.usr.init_a2! 0)) - (>= top.usr.init_a3! 0)) - (>= top.usr.init_t! 0))) - (let - ((X1 Bool top.res.abs_11!)) - (let - ((X2 Int top.res.abs_3!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_ticket3i_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.usr.init_a1! - top.usr.init_a2! - top.usr.init_a3! - top.usr.init_t! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_1! - top.res.abs_10 - top.res.abs_11 - top.res.inst_1) - (__node_trans_excludes9_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.res.abs_9! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes9_0 ((excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) excludes9.usr.X3_a_0) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) excludes9.usr.X4_a_0) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) excludes9.usr.X5_a_0) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) excludes9.usr.X6_a_0) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) excludes9.usr.X7_a_0) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) excludes9.usr.X8_a_0) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) excludes9.usr.X9_a_0))) excludes9.res.init_flag_a_0)) +(define-fun __node_trans_excludes9_0 ((excludes9.usr.X1_a_1 Bool) (excludes9.usr.X2_a_1 Bool) (excludes9.usr.X3_a_1 Bool) (excludes9.usr.X4_a_1 Bool) (excludes9.usr.X5_a_1 Bool) (excludes9.usr.X6_a_1 Bool) (excludes9.usr.X7_a_1 Bool) (excludes9.usr.X8_a_1 Bool) (excludes9.usr.X9_a_1 Bool) (excludes9.usr.excludes_a_1 Bool) (excludes9.res.init_flag_a_1 Bool) (excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) excludes9.usr.X3_a_1) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) excludes9.usr.X4_a_1) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) excludes9.usr.X5_a_1) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) excludes9.usr.X6_a_1) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) excludes9.usr.X7_a_1) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) excludes9.usr.X8_a_1) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) excludes9.usr.X9_a_1))) (not excludes9.res.init_flag_a_1))) +(define-fun __node_init_ticket3i_0 ((ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (and (= ticket3i.usr.p1_a_0 0) (let ((X1 (let ((X1 ticket3i.res.nondet_0)) (= X1 0)))) (and (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) (let ((X2 (let ((X2 ticket3i.res.nondet_2) (X3 ticket3i.res.nondet_1)) (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) (and (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) (let ((X3 (let ((X3 ticket3i.res.nondet_4)) (= X3 0)))) (and (= ticket3i.usr.p2_a_0 0) (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) (let ((X4 (let ((X4 ticket3i.res.nondet_6) (X5 ticket3i.res.nondet_5)) (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) (let ((X5 (let ((X5 ticket3i.res.nondet_7)) (= X5 2)))) (let ((X6 (let ((X6 ticket3i.res.nondet_8)) (= X6 0)))) (and (= ticket3i.usr.p3_a_0 0) (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) (let ((X7 (let ((X7 ticket3i.res.nondet_10) (X8 ticket3i.res.nondet_9)) (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) (let ((X8 (let ((X8 ticket3i.res.nondet_11)) (= X8 2)))) (let ((X9 (let ((X9 ticket3i.res.nondet_3)) (= X9 2)))) (and (= ticket3i.usr.erreur_ticket3i_a_0 (ite (or (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) (>= ticket3i.usr.p3_a_0 3)) true false)) ticket3i.res.init_flag_a_0)))))))))))))))) +(define-fun __node_trans_ticket3i_0 ((ticket3i.usr.e1_a_1 Bool) (ticket3i.usr.e2_a_1 Bool) (ticket3i.usr.e3_a_1 Bool) (ticket3i.usr.e4_a_1 Bool) (ticket3i.usr.e5_a_1 Bool) (ticket3i.usr.e6_a_1 Bool) (ticket3i.usr.e7_a_1 Bool) (ticket3i.usr.e8_a_1 Bool) (ticket3i.usr.e9_a_1 Bool) (ticket3i.usr.init_a1_a_1 Int) (ticket3i.usr.init_a2_a_1 Int) (ticket3i.usr.init_a3_a_1 Int) (ticket3i.usr.init_t_a_1 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_1 Int) (ticket3i.usr.p2_a_1 Int) (ticket3i.usr.p3_a_1 Int) (ticket3i.usr.t_a_1 Int) (ticket3i.usr.s_a_1 Int) (ticket3i.usr.a1_a_1 Int) (ticket3i.usr.a2_a_1 Int) (ticket3i.usr.a3_a_1 Int) (ticket3i.usr.erreur_ticket3i_a_1 Bool) (ticket3i.res.init_flag_a_1 Bool) (ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (let ((X1 (= ticket3i.usr.p1_a_0 2))) (let ((X2 (= ticket3i.usr.p1_a_0 0))) (and (= ticket3i.usr.a1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) ticket3i.usr.a1_a_0)) (let ((X3 (and (= ticket3i.usr.p1_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) (and (= ticket3i.usr.p1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 1 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e2_a_1 (ite X3 2 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e3_a_1 (ite X1 0 ticket3i.usr.p1_a_0) ticket3i.usr.p1_a_0)))) (let ((X4 (= ticket3i.usr.p3_a_0 2))) (let ((X5 (= ticket3i.usr.p2_a_0 2))) (and (= ticket3i.usr.s_a_1 (ite ticket3i.usr.e3_a_1 (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) ticket3i.usr.s_a_0)))) (let ((X6 (= ticket3i.usr.p3_a_0 0))) (let ((X7 (= ticket3i.usr.p2_a_0 0))) (and (= ticket3i.usr.t_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e4_a_1 (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e7_a_1 (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) ticket3i.usr.t_a_0)))) (= ticket3i.usr.a2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) ticket3i.usr.a2_a_0)) (let ((X8 (and (= ticket3i.usr.p2_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) (and (= ticket3i.usr.p2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 1 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e5_a_1 (ite X8 2 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 0 ticket3i.usr.p2_a_0) ticket3i.usr.p2_a_0)))) (= ticket3i.usr.a3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) ticket3i.usr.a3_a_0)) (let ((X9 (and (= ticket3i.usr.p3_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) (and (= ticket3i.usr.p3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 1 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e8_a_1 (ite X9 2 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 0 ticket3i.usr.p3_a_0) ticket3i.usr.p3_a_0)))) (= ticket3i.usr.erreur_ticket3i_a_1 (ite (or (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) (>= ticket3i.usr.p3_a_1 3)) true false)) (not ticket3i.res.init_flag_a_1))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_0 (and (and (and (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) (>= top.usr.init_a2_a_0 0)) (>= top.usr.init_a3_a_0 0)) (>= top.usr.init_t_a_0 0))) (let ((X1 top.res.abs_11_a_0)) (let ((X2 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_ticket3i_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_init_excludes9_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.e9_a_1 Bool) (top.usr.init_a1_a_1 Int) (top.usr.init_a2_a_1 Int) (top.usr.init_a3_a_1 Int) (top.usr.init_t_a_1 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_1 (and (and (and (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) (>= top.usr.init_a2_a_1 0)) (>= top.usr.init_a3_a_1 0)) (>= top.usr.init_t_a_1 0))) (let ((X1 top.res.abs_11_a_1)) (let ((X2 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_ticket3i_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.usr.init_a1_a_1 top.usr.init_a2_a_1 top.usr.init_a3_a_1 top.usr.init_t_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_trans_excludes9_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_10 (and (and (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) (>= top.usr.init_a3 0)) (>= top.usr.init_t 0))) (let ((X1 top.res.abs_11)) (let ((X2 top.res.abs_3)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_ticket3i_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_init_excludes9_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.e9! Bool) (top.usr.init_a1! Int) (top.usr.init_a2! Int) (top.usr.init_a3! Int) (top.usr.init_t! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_10! (and (and (and (and top.res.abs_9! (>= top.usr.init_a1! 0)) (>= top.usr.init_a2! 0)) (>= top.usr.init_a3! 0)) (>= top.usr.init_t! 0))) (let ((X1 top.res.abs_11!)) (let ((X2 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_ticket3i_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.usr.init_a1! top.usr.init_a2! top.usr.init_a3! top.usr.init_t! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_1! top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_trans_excludes9_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.res.abs_9! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ticket3i_3_e8_1703.sl b/benchmarks/LIA/Lustre/ticket3i_3_e8_1703.sl index 189d376..e5e1069 100644 --- a/benchmarks/LIA/Lustre/ticket3i_3_e8_1703.sl +++ b/benchmarks/LIA/Lustre/ticket3i_3_e8_1703.sl @@ -1,1385 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes9_0 ( - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - excludes9.usr.X3_a_0) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - excludes9.usr.X4_a_0) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - excludes9.usr.X5_a_0) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - excludes9.usr.X6_a_0) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - excludes9.usr.X7_a_0) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - excludes9.usr.X8_a_0) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - excludes9.usr.X9_a_0))) - excludes9.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes9_0 ( - (excludes9.usr.X1_a_1 Bool) - (excludes9.usr.X2_a_1 Bool) - (excludes9.usr.X3_a_1 Bool) - (excludes9.usr.X4_a_1 Bool) - (excludes9.usr.X5_a_1 Bool) - (excludes9.usr.X6_a_1 Bool) - (excludes9.usr.X7_a_1 Bool) - (excludes9.usr.X8_a_1 Bool) - (excludes9.usr.X9_a_1 Bool) - (excludes9.usr.excludes_a_1 Bool) - (excludes9.res.init_flag_a_1 Bool) - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - excludes9.usr.X3_a_1) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - excludes9.usr.X4_a_1) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - excludes9.usr.X5_a_1) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - excludes9.usr.X6_a_1) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - excludes9.usr.X7_a_1) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - excludes9.usr.X8_a_1) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - excludes9.usr.X9_a_1))) - (not excludes9.res.init_flag_a_1)) -) - -(define-fun - __node_init_ticket3i_0 ( - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (and - (= ticket3i.usr.p1_a_0 0) - (let - ((X1 Bool (let ((X1 Int ticket3i.res.nondet_0)) (= X1 0)))) - (and - (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) - (let - ((X2 - Bool (let - ((X2 Int ticket3i.res.nondet_2) (X3 Int ticket3i.res.nondet_1)) - (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) - (and - (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) - (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) - (let - ((X3 Bool (let ((X3 Int ticket3i.res.nondet_4)) (= X3 0)))) - (and - (= ticket3i.usr.p2_a_0 0) - (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) - (let - ((X4 - Bool (let - ((X4 Int ticket3i.res.nondet_6) - (X5 Int ticket3i.res.nondet_5)) - (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) - (let - ((X5 Bool (let ((X5 Int ticket3i.res.nondet_7)) (= X5 2)))) - (let - ((X6 Bool (let ((X6 Int ticket3i.res.nondet_8)) (= X6 0)))) - (and - (= ticket3i.usr.p3_a_0 0) - (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) - (let - ((X7 - Bool (let - ((X7 Int ticket3i.res.nondet_10) - (X8 Int ticket3i.res.nondet_9)) - (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) - (let - ((X8 Bool (let ((X8 Int ticket3i.res.nondet_11)) (= X8 2)))) - (let - ((X9 Bool (let ((X9 Int ticket3i.res.nondet_3)) (= X9 2)))) - (and - (= - ticket3i.usr.erreur_ticket3i_a_0 - (ite - (or - (and (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) - (>= ticket3i.usr.p3_a_0 3)) - true - false)) - ticket3i.res.init_flag_a_0))))))))))))))) -) - -(define-fun - __node_trans_ticket3i_0 ( - (ticket3i.usr.e1_a_1 Bool) - (ticket3i.usr.e2_a_1 Bool) - (ticket3i.usr.e3_a_1 Bool) - (ticket3i.usr.e4_a_1 Bool) - (ticket3i.usr.e5_a_1 Bool) - (ticket3i.usr.e6_a_1 Bool) - (ticket3i.usr.e7_a_1 Bool) - (ticket3i.usr.e8_a_1 Bool) - (ticket3i.usr.e9_a_1 Bool) - (ticket3i.usr.init_a1_a_1 Int) - (ticket3i.usr.init_a2_a_1 Int) - (ticket3i.usr.init_a3_a_1 Int) - (ticket3i.usr.init_t_a_1 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_1 Int) - (ticket3i.usr.p2_a_1 Int) - (ticket3i.usr.p3_a_1 Int) - (ticket3i.usr.t_a_1 Int) - (ticket3i.usr.s_a_1 Int) - (ticket3i.usr.a1_a_1 Int) - (ticket3i.usr.a2_a_1 Int) - (ticket3i.usr.a3_a_1 Int) - (ticket3i.usr.erreur_ticket3i_a_1 Bool) - (ticket3i.res.init_flag_a_1 Bool) - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (= ticket3i.usr.p1_a_0 2))) - (let - ((X2 Bool (= ticket3i.usr.p1_a_0 0))) - (and - (= - ticket3i.usr.a1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) - ticket3i.usr.a1_a_0)) - (let - ((X3 - Bool (and - (= ticket3i.usr.p1_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) - (and - (= - ticket3i.usr.p1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 1 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e2_a_1 - (ite X3 2 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e3_a_1 - (ite X1 0 ticket3i.usr.p1_a_0) - ticket3i.usr.p1_a_0)))) - (let - ((X4 Bool (= ticket3i.usr.p3_a_0 2))) - (let - ((X5 Bool (= ticket3i.usr.p2_a_0 2))) - (and - (= - ticket3i.usr.s_a_1 - (ite - ticket3i.usr.e3_a_1 - (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - ticket3i.usr.s_a_0)))) - (let - ((X6 Bool (= ticket3i.usr.p3_a_0 0))) - (let - ((X7 Bool (= ticket3i.usr.p2_a_0 0))) - (and - (= - ticket3i.usr.t_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e4_a_1 - (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e7_a_1 - (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - ticket3i.usr.t_a_0)))) - (= - ticket3i.usr.a2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) - ticket3i.usr.a2_a_0)) - (let - ((X8 - Bool (and - (= ticket3i.usr.p2_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) - (and - (= - ticket3i.usr.p2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 1 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e5_a_1 - (ite X8 2 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 0 ticket3i.usr.p2_a_0) - ticket3i.usr.p2_a_0)))) - (= - ticket3i.usr.a3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) - ticket3i.usr.a3_a_0)) - (let - ((X9 - Bool (and - (= ticket3i.usr.p3_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) - (and - (= - ticket3i.usr.p3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 1 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e8_a_1 - (ite X9 2 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 0 ticket3i.usr.p3_a_0) - ticket3i.usr.p3_a_0)))) - (= - ticket3i.usr.erreur_ticket3i_a_1 - (ite - (or - (and (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) - (>= ticket3i.usr.p3_a_1 3)) - true - false)) - (not ticket3i.res.init_flag_a_1)))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_0 - (and - (and - (and - (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) - (>= top.usr.init_a2_a_0 0)) - (>= top.usr.init_a3_a_0 0)) - (>= top.usr.init_t_a_0 0))) - (let - ((X1 Bool top.res.abs_11_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_ticket3i_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_init_excludes9_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.e9_a_1 Bool) - (top.usr.init_a1_a_1 Int) - (top.usr.init_a2_a_1 Int) - (top.usr.init_a3_a_1 Int) - (top.usr.init_t_a_1 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_1 - (and - (and - (and - (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) - (>= top.usr.init_a2_a_1 0)) - (>= top.usr.init_a3_a_1 0)) - (>= top.usr.init_t_a_1 0))) - (let - ((X1 Bool top.res.abs_11_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_ticket3i_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.usr.init_a1_a_1 - top.usr.init_a2_a_1 - top.usr.init_a3_a_1 - top.usr.init_t_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes9_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.e9 Bool) -(declare-primed-var top.usr.init_a1 Int) -(declare-primed-var top.usr.init_a2 Int) -(declare-primed-var top.usr.init_a3 Int) -(declare-primed-var top.usr.init_t Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_10 - (and - (and - (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) - (>= top.usr.init_a3 0)) - (>= top.usr.init_t 0))) - (let - ((X1 Bool top.res.abs_11)) - (let - ((X2 Int top.res.abs_3)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_ticket3i_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) - (__node_init_excludes9_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.e9! Bool) - (top.usr.init_a1! Int) - (top.usr.init_a2! Int) - (top.usr.init_a3! Int) - (top.usr.init_t! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_10! - (and - (and - (and - (and top.res.abs_9! (>= top.usr.init_a1! 0)) - (>= top.usr.init_a2! 0)) - (>= top.usr.init_a3! 0)) - (>= top.usr.init_t! 0))) - (let - ((X1 Bool top.res.abs_11!)) - (let - ((X2 Int top.res.abs_3!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_ticket3i_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.usr.init_a1! - top.usr.init_a2! - top.usr.init_a3! - top.usr.init_t! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_1! - top.res.abs_10 - top.res.abs_11 - top.res.inst_1) - (__node_trans_excludes9_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.res.abs_9! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes9_0 ((excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) excludes9.usr.X3_a_0) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) excludes9.usr.X4_a_0) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) excludes9.usr.X5_a_0) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) excludes9.usr.X6_a_0) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) excludes9.usr.X7_a_0) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) excludes9.usr.X8_a_0) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) excludes9.usr.X9_a_0))) excludes9.res.init_flag_a_0)) +(define-fun __node_trans_excludes9_0 ((excludes9.usr.X1_a_1 Bool) (excludes9.usr.X2_a_1 Bool) (excludes9.usr.X3_a_1 Bool) (excludes9.usr.X4_a_1 Bool) (excludes9.usr.X5_a_1 Bool) (excludes9.usr.X6_a_1 Bool) (excludes9.usr.X7_a_1 Bool) (excludes9.usr.X8_a_1 Bool) (excludes9.usr.X9_a_1 Bool) (excludes9.usr.excludes_a_1 Bool) (excludes9.res.init_flag_a_1 Bool) (excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) excludes9.usr.X3_a_1) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) excludes9.usr.X4_a_1) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) excludes9.usr.X5_a_1) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) excludes9.usr.X6_a_1) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) excludes9.usr.X7_a_1) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) excludes9.usr.X8_a_1) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) excludes9.usr.X9_a_1))) (not excludes9.res.init_flag_a_1))) +(define-fun __node_init_ticket3i_0 ((ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (and (= ticket3i.usr.p1_a_0 0) (let ((X1 (let ((X1 ticket3i.res.nondet_0)) (= X1 0)))) (and (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) (let ((X2 (let ((X2 ticket3i.res.nondet_2) (X3 ticket3i.res.nondet_1)) (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) (and (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) (let ((X3 (let ((X3 ticket3i.res.nondet_4)) (= X3 0)))) (and (= ticket3i.usr.p2_a_0 0) (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) (let ((X4 (let ((X4 ticket3i.res.nondet_6) (X5 ticket3i.res.nondet_5)) (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) (let ((X5 (let ((X5 ticket3i.res.nondet_7)) (= X5 2)))) (let ((X6 (let ((X6 ticket3i.res.nondet_8)) (= X6 0)))) (and (= ticket3i.usr.p3_a_0 0) (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) (let ((X7 (let ((X7 ticket3i.res.nondet_10) (X8 ticket3i.res.nondet_9)) (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) (let ((X8 (let ((X8 ticket3i.res.nondet_11)) (= X8 2)))) (let ((X9 (let ((X9 ticket3i.res.nondet_3)) (= X9 2)))) (and (= ticket3i.usr.erreur_ticket3i_a_0 (ite (or (and (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) (>= ticket3i.usr.p3_a_0 3)) true false)) ticket3i.res.init_flag_a_0)))))))))))))))) +(define-fun __node_trans_ticket3i_0 ((ticket3i.usr.e1_a_1 Bool) (ticket3i.usr.e2_a_1 Bool) (ticket3i.usr.e3_a_1 Bool) (ticket3i.usr.e4_a_1 Bool) (ticket3i.usr.e5_a_1 Bool) (ticket3i.usr.e6_a_1 Bool) (ticket3i.usr.e7_a_1 Bool) (ticket3i.usr.e8_a_1 Bool) (ticket3i.usr.e9_a_1 Bool) (ticket3i.usr.init_a1_a_1 Int) (ticket3i.usr.init_a2_a_1 Int) (ticket3i.usr.init_a3_a_1 Int) (ticket3i.usr.init_t_a_1 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_1 Int) (ticket3i.usr.p2_a_1 Int) (ticket3i.usr.p3_a_1 Int) (ticket3i.usr.t_a_1 Int) (ticket3i.usr.s_a_1 Int) (ticket3i.usr.a1_a_1 Int) (ticket3i.usr.a2_a_1 Int) (ticket3i.usr.a3_a_1 Int) (ticket3i.usr.erreur_ticket3i_a_1 Bool) (ticket3i.res.init_flag_a_1 Bool) (ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (let ((X1 (= ticket3i.usr.p1_a_0 2))) (let ((X2 (= ticket3i.usr.p1_a_0 0))) (and (= ticket3i.usr.a1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) ticket3i.usr.a1_a_0)) (let ((X3 (and (= ticket3i.usr.p1_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) (and (= ticket3i.usr.p1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 1 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e2_a_1 (ite X3 2 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e3_a_1 (ite X1 0 ticket3i.usr.p1_a_0) ticket3i.usr.p1_a_0)))) (let ((X4 (= ticket3i.usr.p3_a_0 2))) (let ((X5 (= ticket3i.usr.p2_a_0 2))) (and (= ticket3i.usr.s_a_1 (ite ticket3i.usr.e3_a_1 (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) ticket3i.usr.s_a_0)))) (let ((X6 (= ticket3i.usr.p3_a_0 0))) (let ((X7 (= ticket3i.usr.p2_a_0 0))) (and (= ticket3i.usr.t_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e4_a_1 (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e7_a_1 (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) ticket3i.usr.t_a_0)))) (= ticket3i.usr.a2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) ticket3i.usr.a2_a_0)) (let ((X8 (and (= ticket3i.usr.p2_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) (and (= ticket3i.usr.p2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 1 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e5_a_1 (ite X8 2 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 0 ticket3i.usr.p2_a_0) ticket3i.usr.p2_a_0)))) (= ticket3i.usr.a3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) ticket3i.usr.a3_a_0)) (let ((X9 (and (= ticket3i.usr.p3_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) (and (= ticket3i.usr.p3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 1 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e8_a_1 (ite X9 2 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 0 ticket3i.usr.p3_a_0) ticket3i.usr.p3_a_0)))) (= ticket3i.usr.erreur_ticket3i_a_1 (ite (or (and (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) (>= ticket3i.usr.p3_a_1 3)) true false)) (not ticket3i.res.init_flag_a_1))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_0 (and (and (and (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) (>= top.usr.init_a2_a_0 0)) (>= top.usr.init_a3_a_0 0)) (>= top.usr.init_t_a_0 0))) (let ((X1 top.res.abs_11_a_0)) (let ((X2 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_ticket3i_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_init_excludes9_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.e9_a_1 Bool) (top.usr.init_a1_a_1 Int) (top.usr.init_a2_a_1 Int) (top.usr.init_a3_a_1 Int) (top.usr.init_t_a_1 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_1 (and (and (and (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) (>= top.usr.init_a2_a_1 0)) (>= top.usr.init_a3_a_1 0)) (>= top.usr.init_t_a_1 0))) (let ((X1 top.res.abs_11_a_1)) (let ((X2 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_ticket3i_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.usr.init_a1_a_1 top.usr.init_a2_a_1 top.usr.init_a3_a_1 top.usr.init_t_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_trans_excludes9_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_10 (and (and (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) (>= top.usr.init_a3 0)) (>= top.usr.init_t 0))) (let ((X1 top.res.abs_11)) (let ((X2 top.res.abs_3)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_ticket3i_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_init_excludes9_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.e9! Bool) (top.usr.init_a1! Int) (top.usr.init_a2! Int) (top.usr.init_a3! Int) (top.usr.init_t! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_10! (and (and (and (and top.res.abs_9! (>= top.usr.init_a1! 0)) (>= top.usr.init_a2! 0)) (>= top.usr.init_a3! 0)) (>= top.usr.init_t! 0))) (let ((X1 top.res.abs_11!)) (let ((X2 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_ticket3i_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.usr.init_a1! top.usr.init_a2! top.usr.init_a3! top.usr.init_t! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_1! top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_trans_excludes9_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.res.abs_9! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ticket3i_3_e8_1703_e8_2560.sl b/benchmarks/LIA/Lustre/ticket3i_3_e8_1703_e8_2560.sl index 3224383..c236230 100644 --- a/benchmarks/LIA/Lustre/ticket3i_3_e8_1703_e8_2560.sl +++ b/benchmarks/LIA/Lustre/ticket3i_3_e8_1703_e8_2560.sl @@ -1,1385 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes9_0 ( - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - excludes9.usr.X3_a_0) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - excludes9.usr.X4_a_0) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - excludes9.usr.X5_a_0) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - excludes9.usr.X6_a_0) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - excludes9.usr.X7_a_0) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - excludes9.usr.X8_a_0) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - excludes9.usr.X9_a_0))) - excludes9.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes9_0 ( - (excludes9.usr.X1_a_1 Bool) - (excludes9.usr.X2_a_1 Bool) - (excludes9.usr.X3_a_1 Bool) - (excludes9.usr.X4_a_1 Bool) - (excludes9.usr.X5_a_1 Bool) - (excludes9.usr.X6_a_1 Bool) - (excludes9.usr.X7_a_1 Bool) - (excludes9.usr.X8_a_1 Bool) - (excludes9.usr.X9_a_1 Bool) - (excludes9.usr.excludes_a_1 Bool) - (excludes9.res.init_flag_a_1 Bool) - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - excludes9.usr.X3_a_1) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - excludes9.usr.X4_a_1) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - excludes9.usr.X5_a_1) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - excludes9.usr.X6_a_1) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - excludes9.usr.X7_a_1) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - excludes9.usr.X8_a_1) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - excludes9.usr.X9_a_1))) - (not excludes9.res.init_flag_a_1)) -) - -(define-fun - __node_init_ticket3i_0 ( - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (and - (= ticket3i.usr.p1_a_0 0) - (let - ((X1 Bool (let ((X1 Int ticket3i.res.nondet_0)) (= X1 0)))) - (and - (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) - (let - ((X2 - Bool (let - ((X2 Int ticket3i.res.nondet_2) (X3 Int ticket3i.res.nondet_1)) - (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) - (and - (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) - (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) - (let - ((X3 Bool (let ((X3 Int ticket3i.res.nondet_4)) (= X3 0)))) - (and - (= ticket3i.usr.p2_a_0 0) - (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) - (let - ((X4 - Bool (let - ((X4 Int ticket3i.res.nondet_6) - (X5 Int ticket3i.res.nondet_5)) - (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) - (let - ((X5 Bool (let ((X5 Int ticket3i.res.nondet_7)) (= X5 2)))) - (let - ((X6 Bool (let ((X6 Int ticket3i.res.nondet_8)) (= X6 0)))) - (and - (= ticket3i.usr.p3_a_0 0) - (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) - (let - ((X7 - Bool (let - ((X7 Int ticket3i.res.nondet_10) - (X8 Int ticket3i.res.nondet_9)) - (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) - (let - ((X8 Bool (let ((X8 Int ticket3i.res.nondet_11)) (= X8 2)))) - (let - ((X9 Bool (let ((X9 Int ticket3i.res.nondet_3)) (= X9 2)))) - (and - (= - ticket3i.usr.erreur_ticket3i_a_0 - (ite - (and - (and (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) - (>= ticket3i.usr.p3_a_0 3)) - true - false)) - ticket3i.res.init_flag_a_0))))))))))))))) -) - -(define-fun - __node_trans_ticket3i_0 ( - (ticket3i.usr.e1_a_1 Bool) - (ticket3i.usr.e2_a_1 Bool) - (ticket3i.usr.e3_a_1 Bool) - (ticket3i.usr.e4_a_1 Bool) - (ticket3i.usr.e5_a_1 Bool) - (ticket3i.usr.e6_a_1 Bool) - (ticket3i.usr.e7_a_1 Bool) - (ticket3i.usr.e8_a_1 Bool) - (ticket3i.usr.e9_a_1 Bool) - (ticket3i.usr.init_a1_a_1 Int) - (ticket3i.usr.init_a2_a_1 Int) - (ticket3i.usr.init_a3_a_1 Int) - (ticket3i.usr.init_t_a_1 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_1 Int) - (ticket3i.usr.p2_a_1 Int) - (ticket3i.usr.p3_a_1 Int) - (ticket3i.usr.t_a_1 Int) - (ticket3i.usr.s_a_1 Int) - (ticket3i.usr.a1_a_1 Int) - (ticket3i.usr.a2_a_1 Int) - (ticket3i.usr.a3_a_1 Int) - (ticket3i.usr.erreur_ticket3i_a_1 Bool) - (ticket3i.res.init_flag_a_1 Bool) - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (= ticket3i.usr.p1_a_0 2))) - (let - ((X2 Bool (= ticket3i.usr.p1_a_0 0))) - (and - (= - ticket3i.usr.a1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) - ticket3i.usr.a1_a_0)) - (let - ((X3 - Bool (and - (= ticket3i.usr.p1_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) - (and - (= - ticket3i.usr.p1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 1 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e2_a_1 - (ite X3 2 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e3_a_1 - (ite X1 0 ticket3i.usr.p1_a_0) - ticket3i.usr.p1_a_0)))) - (let - ((X4 Bool (= ticket3i.usr.p3_a_0 2))) - (let - ((X5 Bool (= ticket3i.usr.p2_a_0 2))) - (and - (= - ticket3i.usr.s_a_1 - (ite - ticket3i.usr.e3_a_1 - (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - ticket3i.usr.s_a_0)))) - (let - ((X6 Bool (= ticket3i.usr.p3_a_0 0))) - (let - ((X7 Bool (= ticket3i.usr.p2_a_0 0))) - (and - (= - ticket3i.usr.t_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e4_a_1 - (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e7_a_1 - (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - ticket3i.usr.t_a_0)))) - (= - ticket3i.usr.a2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) - ticket3i.usr.a2_a_0)) - (let - ((X8 - Bool (and - (= ticket3i.usr.p2_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) - (and - (= - ticket3i.usr.p2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 1 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e5_a_1 - (ite X8 2 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 0 ticket3i.usr.p2_a_0) - ticket3i.usr.p2_a_0)))) - (= - ticket3i.usr.a3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) - ticket3i.usr.a3_a_0)) - (let - ((X9 - Bool (and - (= ticket3i.usr.p3_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) - (and - (= - ticket3i.usr.p3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 1 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e8_a_1 - (ite X9 2 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 0 ticket3i.usr.p3_a_0) - ticket3i.usr.p3_a_0)))) - (= - ticket3i.usr.erreur_ticket3i_a_1 - (ite - (and - (and (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) - (>= ticket3i.usr.p3_a_1 3)) - true - false)) - (not ticket3i.res.init_flag_a_1)))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_0 - (and - (and - (and - (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) - (>= top.usr.init_a2_a_0 0)) - (>= top.usr.init_a3_a_0 0)) - (>= top.usr.init_t_a_0 0))) - (let - ((X1 Bool top.res.abs_11_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_ticket3i_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_init_excludes9_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.e9_a_1 Bool) - (top.usr.init_a1_a_1 Int) - (top.usr.init_a2_a_1 Int) - (top.usr.init_a3_a_1 Int) - (top.usr.init_t_a_1 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_1 - (and - (and - (and - (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) - (>= top.usr.init_a2_a_1 0)) - (>= top.usr.init_a3_a_1 0)) - (>= top.usr.init_t_a_1 0))) - (let - ((X1 Bool top.res.abs_11_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_ticket3i_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.usr.init_a1_a_1 - top.usr.init_a2_a_1 - top.usr.init_a3_a_1 - top.usr.init_t_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes9_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.e9 Bool) -(declare-primed-var top.usr.init_a1 Int) -(declare-primed-var top.usr.init_a2 Int) -(declare-primed-var top.usr.init_a3 Int) -(declare-primed-var top.usr.init_t Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_10 - (and - (and - (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) - (>= top.usr.init_a3 0)) - (>= top.usr.init_t 0))) - (let - ((X1 Bool top.res.abs_11)) - (let - ((X2 Int top.res.abs_3)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_ticket3i_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) - (__node_init_excludes9_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.e9! Bool) - (top.usr.init_a1! Int) - (top.usr.init_a2! Int) - (top.usr.init_a3! Int) - (top.usr.init_t! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_10! - (and - (and - (and - (and top.res.abs_9! (>= top.usr.init_a1! 0)) - (>= top.usr.init_a2! 0)) - (>= top.usr.init_a3! 0)) - (>= top.usr.init_t! 0))) - (let - ((X1 Bool top.res.abs_11!)) - (let - ((X2 Int top.res.abs_3!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_ticket3i_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.usr.init_a1! - top.usr.init_a2! - top.usr.init_a3! - top.usr.init_t! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_1! - top.res.abs_10 - top.res.abs_11 - top.res.inst_1) - (__node_trans_excludes9_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.res.abs_9! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes9_0 ((excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) excludes9.usr.X3_a_0) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) excludes9.usr.X4_a_0) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) excludes9.usr.X5_a_0) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) excludes9.usr.X6_a_0) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) excludes9.usr.X7_a_0) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) excludes9.usr.X8_a_0) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) excludes9.usr.X9_a_0))) excludes9.res.init_flag_a_0)) +(define-fun __node_trans_excludes9_0 ((excludes9.usr.X1_a_1 Bool) (excludes9.usr.X2_a_1 Bool) (excludes9.usr.X3_a_1 Bool) (excludes9.usr.X4_a_1 Bool) (excludes9.usr.X5_a_1 Bool) (excludes9.usr.X6_a_1 Bool) (excludes9.usr.X7_a_1 Bool) (excludes9.usr.X8_a_1 Bool) (excludes9.usr.X9_a_1 Bool) (excludes9.usr.excludes_a_1 Bool) (excludes9.res.init_flag_a_1 Bool) (excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) excludes9.usr.X3_a_1) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) excludes9.usr.X4_a_1) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) excludes9.usr.X5_a_1) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) excludes9.usr.X6_a_1) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) excludes9.usr.X7_a_1) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) excludes9.usr.X8_a_1) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) excludes9.usr.X9_a_1))) (not excludes9.res.init_flag_a_1))) +(define-fun __node_init_ticket3i_0 ((ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (and (= ticket3i.usr.p1_a_0 0) (let ((X1 (let ((X1 ticket3i.res.nondet_0)) (= X1 0)))) (and (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) (let ((X2 (let ((X2 ticket3i.res.nondet_2) (X3 ticket3i.res.nondet_1)) (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) (and (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) (let ((X3 (let ((X3 ticket3i.res.nondet_4)) (= X3 0)))) (and (= ticket3i.usr.p2_a_0 0) (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) (let ((X4 (let ((X4 ticket3i.res.nondet_6) (X5 ticket3i.res.nondet_5)) (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) (let ((X5 (let ((X5 ticket3i.res.nondet_7)) (= X5 2)))) (let ((X6 (let ((X6 ticket3i.res.nondet_8)) (= X6 0)))) (and (= ticket3i.usr.p3_a_0 0) (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) (let ((X7 (let ((X7 ticket3i.res.nondet_10) (X8 ticket3i.res.nondet_9)) (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) (let ((X8 (let ((X8 ticket3i.res.nondet_11)) (= X8 2)))) (let ((X9 (let ((X9 ticket3i.res.nondet_3)) (= X9 2)))) (and (= ticket3i.usr.erreur_ticket3i_a_0 (ite (and (and (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) (>= ticket3i.usr.p3_a_0 3)) true false)) ticket3i.res.init_flag_a_0)))))))))))))))) +(define-fun __node_trans_ticket3i_0 ((ticket3i.usr.e1_a_1 Bool) (ticket3i.usr.e2_a_1 Bool) (ticket3i.usr.e3_a_1 Bool) (ticket3i.usr.e4_a_1 Bool) (ticket3i.usr.e5_a_1 Bool) (ticket3i.usr.e6_a_1 Bool) (ticket3i.usr.e7_a_1 Bool) (ticket3i.usr.e8_a_1 Bool) (ticket3i.usr.e9_a_1 Bool) (ticket3i.usr.init_a1_a_1 Int) (ticket3i.usr.init_a2_a_1 Int) (ticket3i.usr.init_a3_a_1 Int) (ticket3i.usr.init_t_a_1 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_1 Int) (ticket3i.usr.p2_a_1 Int) (ticket3i.usr.p3_a_1 Int) (ticket3i.usr.t_a_1 Int) (ticket3i.usr.s_a_1 Int) (ticket3i.usr.a1_a_1 Int) (ticket3i.usr.a2_a_1 Int) (ticket3i.usr.a3_a_1 Int) (ticket3i.usr.erreur_ticket3i_a_1 Bool) (ticket3i.res.init_flag_a_1 Bool) (ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (let ((X1 (= ticket3i.usr.p1_a_0 2))) (let ((X2 (= ticket3i.usr.p1_a_0 0))) (and (= ticket3i.usr.a1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) ticket3i.usr.a1_a_0)) (let ((X3 (and (= ticket3i.usr.p1_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) (and (= ticket3i.usr.p1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 1 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e2_a_1 (ite X3 2 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e3_a_1 (ite X1 0 ticket3i.usr.p1_a_0) ticket3i.usr.p1_a_0)))) (let ((X4 (= ticket3i.usr.p3_a_0 2))) (let ((X5 (= ticket3i.usr.p2_a_0 2))) (and (= ticket3i.usr.s_a_1 (ite ticket3i.usr.e3_a_1 (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) ticket3i.usr.s_a_0)))) (let ((X6 (= ticket3i.usr.p3_a_0 0))) (let ((X7 (= ticket3i.usr.p2_a_0 0))) (and (= ticket3i.usr.t_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e4_a_1 (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e7_a_1 (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) ticket3i.usr.t_a_0)))) (= ticket3i.usr.a2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) ticket3i.usr.a2_a_0)) (let ((X8 (and (= ticket3i.usr.p2_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) (and (= ticket3i.usr.p2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 1 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e5_a_1 (ite X8 2 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 0 ticket3i.usr.p2_a_0) ticket3i.usr.p2_a_0)))) (= ticket3i.usr.a3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) ticket3i.usr.a3_a_0)) (let ((X9 (and (= ticket3i.usr.p3_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) (and (= ticket3i.usr.p3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 1 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e8_a_1 (ite X9 2 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 0 ticket3i.usr.p3_a_0) ticket3i.usr.p3_a_0)))) (= ticket3i.usr.erreur_ticket3i_a_1 (ite (and (and (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) (>= ticket3i.usr.p3_a_1 3)) true false)) (not ticket3i.res.init_flag_a_1))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_0 (and (and (and (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) (>= top.usr.init_a2_a_0 0)) (>= top.usr.init_a3_a_0 0)) (>= top.usr.init_t_a_0 0))) (let ((X1 top.res.abs_11_a_0)) (let ((X2 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_ticket3i_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_init_excludes9_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.e9_a_1 Bool) (top.usr.init_a1_a_1 Int) (top.usr.init_a2_a_1 Int) (top.usr.init_a3_a_1 Int) (top.usr.init_t_a_1 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_1 (and (and (and (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) (>= top.usr.init_a2_a_1 0)) (>= top.usr.init_a3_a_1 0)) (>= top.usr.init_t_a_1 0))) (let ((X1 top.res.abs_11_a_1)) (let ((X2 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_ticket3i_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.usr.init_a1_a_1 top.usr.init_a2_a_1 top.usr.init_a3_a_1 top.usr.init_t_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_trans_excludes9_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_10 (and (and (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) (>= top.usr.init_a3 0)) (>= top.usr.init_t 0))) (let ((X1 top.res.abs_11)) (let ((X2 top.res.abs_3)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_ticket3i_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_init_excludes9_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.e9! Bool) (top.usr.init_a1! Int) (top.usr.init_a2! Int) (top.usr.init_a3! Int) (top.usr.init_t! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_10! (and (and (and (and top.res.abs_9! (>= top.usr.init_a1! 0)) (>= top.usr.init_a2! 0)) (>= top.usr.init_a3! 0)) (>= top.usr.init_t! 0))) (let ((X1 top.res.abs_11!)) (let ((X2 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_ticket3i_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.usr.init_a1! top.usr.init_a2! top.usr.init_a3! top.usr.init_t! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_1! top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_trans_excludes9_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.res.abs_9! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ticket3i_3_e8_1788.sl b/benchmarks/LIA/Lustre/ticket3i_3_e8_1788.sl index 189d376..e5e1069 100644 --- a/benchmarks/LIA/Lustre/ticket3i_3_e8_1788.sl +++ b/benchmarks/LIA/Lustre/ticket3i_3_e8_1788.sl @@ -1,1385 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes9_0 ( - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - excludes9.usr.X3_a_0) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - excludes9.usr.X4_a_0) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - excludes9.usr.X5_a_0) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - excludes9.usr.X6_a_0) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - excludes9.usr.X7_a_0) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - excludes9.usr.X8_a_0) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - excludes9.usr.X9_a_0))) - excludes9.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes9_0 ( - (excludes9.usr.X1_a_1 Bool) - (excludes9.usr.X2_a_1 Bool) - (excludes9.usr.X3_a_1 Bool) - (excludes9.usr.X4_a_1 Bool) - (excludes9.usr.X5_a_1 Bool) - (excludes9.usr.X6_a_1 Bool) - (excludes9.usr.X7_a_1 Bool) - (excludes9.usr.X8_a_1 Bool) - (excludes9.usr.X9_a_1 Bool) - (excludes9.usr.excludes_a_1 Bool) - (excludes9.res.init_flag_a_1 Bool) - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - excludes9.usr.X3_a_1) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - excludes9.usr.X4_a_1) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - excludes9.usr.X5_a_1) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - excludes9.usr.X6_a_1) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - excludes9.usr.X7_a_1) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - excludes9.usr.X8_a_1) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - excludes9.usr.X9_a_1))) - (not excludes9.res.init_flag_a_1)) -) - -(define-fun - __node_init_ticket3i_0 ( - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (and - (= ticket3i.usr.p1_a_0 0) - (let - ((X1 Bool (let ((X1 Int ticket3i.res.nondet_0)) (= X1 0)))) - (and - (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) - (let - ((X2 - Bool (let - ((X2 Int ticket3i.res.nondet_2) (X3 Int ticket3i.res.nondet_1)) - (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) - (and - (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) - (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) - (let - ((X3 Bool (let ((X3 Int ticket3i.res.nondet_4)) (= X3 0)))) - (and - (= ticket3i.usr.p2_a_0 0) - (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) - (let - ((X4 - Bool (let - ((X4 Int ticket3i.res.nondet_6) - (X5 Int ticket3i.res.nondet_5)) - (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) - (let - ((X5 Bool (let ((X5 Int ticket3i.res.nondet_7)) (= X5 2)))) - (let - ((X6 Bool (let ((X6 Int ticket3i.res.nondet_8)) (= X6 0)))) - (and - (= ticket3i.usr.p3_a_0 0) - (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) - (let - ((X7 - Bool (let - ((X7 Int ticket3i.res.nondet_10) - (X8 Int ticket3i.res.nondet_9)) - (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) - (let - ((X8 Bool (let ((X8 Int ticket3i.res.nondet_11)) (= X8 2)))) - (let - ((X9 Bool (let ((X9 Int ticket3i.res.nondet_3)) (= X9 2)))) - (and - (= - ticket3i.usr.erreur_ticket3i_a_0 - (ite - (or - (and (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) - (>= ticket3i.usr.p3_a_0 3)) - true - false)) - ticket3i.res.init_flag_a_0))))))))))))))) -) - -(define-fun - __node_trans_ticket3i_0 ( - (ticket3i.usr.e1_a_1 Bool) - (ticket3i.usr.e2_a_1 Bool) - (ticket3i.usr.e3_a_1 Bool) - (ticket3i.usr.e4_a_1 Bool) - (ticket3i.usr.e5_a_1 Bool) - (ticket3i.usr.e6_a_1 Bool) - (ticket3i.usr.e7_a_1 Bool) - (ticket3i.usr.e8_a_1 Bool) - (ticket3i.usr.e9_a_1 Bool) - (ticket3i.usr.init_a1_a_1 Int) - (ticket3i.usr.init_a2_a_1 Int) - (ticket3i.usr.init_a3_a_1 Int) - (ticket3i.usr.init_t_a_1 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_1 Int) - (ticket3i.usr.p2_a_1 Int) - (ticket3i.usr.p3_a_1 Int) - (ticket3i.usr.t_a_1 Int) - (ticket3i.usr.s_a_1 Int) - (ticket3i.usr.a1_a_1 Int) - (ticket3i.usr.a2_a_1 Int) - (ticket3i.usr.a3_a_1 Int) - (ticket3i.usr.erreur_ticket3i_a_1 Bool) - (ticket3i.res.init_flag_a_1 Bool) - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (= ticket3i.usr.p1_a_0 2))) - (let - ((X2 Bool (= ticket3i.usr.p1_a_0 0))) - (and - (= - ticket3i.usr.a1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) - ticket3i.usr.a1_a_0)) - (let - ((X3 - Bool (and - (= ticket3i.usr.p1_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) - (and - (= - ticket3i.usr.p1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 1 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e2_a_1 - (ite X3 2 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e3_a_1 - (ite X1 0 ticket3i.usr.p1_a_0) - ticket3i.usr.p1_a_0)))) - (let - ((X4 Bool (= ticket3i.usr.p3_a_0 2))) - (let - ((X5 Bool (= ticket3i.usr.p2_a_0 2))) - (and - (= - ticket3i.usr.s_a_1 - (ite - ticket3i.usr.e3_a_1 - (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - ticket3i.usr.s_a_0)))) - (let - ((X6 Bool (= ticket3i.usr.p3_a_0 0))) - (let - ((X7 Bool (= ticket3i.usr.p2_a_0 0))) - (and - (= - ticket3i.usr.t_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e4_a_1 - (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e7_a_1 - (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - ticket3i.usr.t_a_0)))) - (= - ticket3i.usr.a2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) - ticket3i.usr.a2_a_0)) - (let - ((X8 - Bool (and - (= ticket3i.usr.p2_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) - (and - (= - ticket3i.usr.p2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 1 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e5_a_1 - (ite X8 2 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 0 ticket3i.usr.p2_a_0) - ticket3i.usr.p2_a_0)))) - (= - ticket3i.usr.a3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) - ticket3i.usr.a3_a_0)) - (let - ((X9 - Bool (and - (= ticket3i.usr.p3_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) - (and - (= - ticket3i.usr.p3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 1 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e8_a_1 - (ite X9 2 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 0 ticket3i.usr.p3_a_0) - ticket3i.usr.p3_a_0)))) - (= - ticket3i.usr.erreur_ticket3i_a_1 - (ite - (or - (and (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) - (>= ticket3i.usr.p3_a_1 3)) - true - false)) - (not ticket3i.res.init_flag_a_1)))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_0 - (and - (and - (and - (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) - (>= top.usr.init_a2_a_0 0)) - (>= top.usr.init_a3_a_0 0)) - (>= top.usr.init_t_a_0 0))) - (let - ((X1 Bool top.res.abs_11_a_0)) - (let - ((X2 Int top.res.abs_3_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (>= X2 0))) - (__node_init_ticket3i_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_init_excludes9_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.e9_a_1 Bool) - (top.usr.init_a1_a_1 Int) - (top.usr.init_a2_a_1 Int) - (top.usr.init_a3_a_1 Int) - (top.usr.init_t_a_1 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_1 - (and - (and - (and - (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) - (>= top.usr.init_a2_a_1 0)) - (>= top.usr.init_a3_a_1 0)) - (>= top.usr.init_t_a_1 0))) - (let - ((X1 Bool top.res.abs_11_a_1)) - (let - ((X2 Int top.res.abs_3_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (>= X2 0))) - (__node_trans_ticket3i_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.usr.init_a1_a_1 - top.usr.init_a2_a_1 - top.usr.init_a3_a_1 - top.usr.init_t_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes9_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.e9 Bool) -(declare-primed-var top.usr.init_a1 Int) -(declare-primed-var top.usr.init_a2 Int) -(declare-primed-var top.usr.init_a3 Int) -(declare-primed-var top.usr.init_t Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_10 - (and - (and - (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) - (>= top.usr.init_a3 0)) - (>= top.usr.init_t 0))) - (let - ((X1 Bool top.res.abs_11)) - (let - ((X2 Int top.res.abs_3)) - (and - (= top.usr.OK (=> X1 (>= X2 0))) - (__node_init_ticket3i_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) - (__node_init_excludes9_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.e9! Bool) - (top.usr.init_a1! Int) - (top.usr.init_a2! Int) - (top.usr.init_a3! Int) - (top.usr.init_t! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_10! - (and - (and - (and - (and top.res.abs_9! (>= top.usr.init_a1! 0)) - (>= top.usr.init_a2! 0)) - (>= top.usr.init_a3! 0)) - (>= top.usr.init_t! 0))) - (let - ((X1 Bool top.res.abs_11!)) - (let - ((X2 Int top.res.abs_3!)) - (and - (= top.usr.OK! (=> X1 (>= X2 0))) - (__node_trans_ticket3i_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.usr.init_a1! - top.usr.init_a2! - top.usr.init_a3! - top.usr.init_t! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_1! - top.res.abs_10 - top.res.abs_11 - top.res.inst_1) - (__node_trans_excludes9_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.res.abs_9! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes9_0 ((excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) excludes9.usr.X3_a_0) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) excludes9.usr.X4_a_0) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) excludes9.usr.X5_a_0) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) excludes9.usr.X6_a_0) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) excludes9.usr.X7_a_0) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) excludes9.usr.X8_a_0) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) excludes9.usr.X9_a_0))) excludes9.res.init_flag_a_0)) +(define-fun __node_trans_excludes9_0 ((excludes9.usr.X1_a_1 Bool) (excludes9.usr.X2_a_1 Bool) (excludes9.usr.X3_a_1 Bool) (excludes9.usr.X4_a_1 Bool) (excludes9.usr.X5_a_1 Bool) (excludes9.usr.X6_a_1 Bool) (excludes9.usr.X7_a_1 Bool) (excludes9.usr.X8_a_1 Bool) (excludes9.usr.X9_a_1 Bool) (excludes9.usr.excludes_a_1 Bool) (excludes9.res.init_flag_a_1 Bool) (excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) excludes9.usr.X3_a_1) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) excludes9.usr.X4_a_1) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) excludes9.usr.X5_a_1) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) excludes9.usr.X6_a_1) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) excludes9.usr.X7_a_1) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) excludes9.usr.X8_a_1) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) excludes9.usr.X9_a_1))) (not excludes9.res.init_flag_a_1))) +(define-fun __node_init_ticket3i_0 ((ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (and (= ticket3i.usr.p1_a_0 0) (let ((X1 (let ((X1 ticket3i.res.nondet_0)) (= X1 0)))) (and (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) (let ((X2 (let ((X2 ticket3i.res.nondet_2) (X3 ticket3i.res.nondet_1)) (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) (and (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) (let ((X3 (let ((X3 ticket3i.res.nondet_4)) (= X3 0)))) (and (= ticket3i.usr.p2_a_0 0) (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) (let ((X4 (let ((X4 ticket3i.res.nondet_6) (X5 ticket3i.res.nondet_5)) (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) (let ((X5 (let ((X5 ticket3i.res.nondet_7)) (= X5 2)))) (let ((X6 (let ((X6 ticket3i.res.nondet_8)) (= X6 0)))) (and (= ticket3i.usr.p3_a_0 0) (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) (let ((X7 (let ((X7 ticket3i.res.nondet_10) (X8 ticket3i.res.nondet_9)) (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) (let ((X8 (let ((X8 ticket3i.res.nondet_11)) (= X8 2)))) (let ((X9 (let ((X9 ticket3i.res.nondet_3)) (= X9 2)))) (and (= ticket3i.usr.erreur_ticket3i_a_0 (ite (or (and (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) (>= ticket3i.usr.p3_a_0 3)) true false)) ticket3i.res.init_flag_a_0)))))))))))))))) +(define-fun __node_trans_ticket3i_0 ((ticket3i.usr.e1_a_1 Bool) (ticket3i.usr.e2_a_1 Bool) (ticket3i.usr.e3_a_1 Bool) (ticket3i.usr.e4_a_1 Bool) (ticket3i.usr.e5_a_1 Bool) (ticket3i.usr.e6_a_1 Bool) (ticket3i.usr.e7_a_1 Bool) (ticket3i.usr.e8_a_1 Bool) (ticket3i.usr.e9_a_1 Bool) (ticket3i.usr.init_a1_a_1 Int) (ticket3i.usr.init_a2_a_1 Int) (ticket3i.usr.init_a3_a_1 Int) (ticket3i.usr.init_t_a_1 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_1 Int) (ticket3i.usr.p2_a_1 Int) (ticket3i.usr.p3_a_1 Int) (ticket3i.usr.t_a_1 Int) (ticket3i.usr.s_a_1 Int) (ticket3i.usr.a1_a_1 Int) (ticket3i.usr.a2_a_1 Int) (ticket3i.usr.a3_a_1 Int) (ticket3i.usr.erreur_ticket3i_a_1 Bool) (ticket3i.res.init_flag_a_1 Bool) (ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (let ((X1 (= ticket3i.usr.p1_a_0 2))) (let ((X2 (= ticket3i.usr.p1_a_0 0))) (and (= ticket3i.usr.a1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) ticket3i.usr.a1_a_0)) (let ((X3 (and (= ticket3i.usr.p1_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) (and (= ticket3i.usr.p1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 1 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e2_a_1 (ite X3 2 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e3_a_1 (ite X1 0 ticket3i.usr.p1_a_0) ticket3i.usr.p1_a_0)))) (let ((X4 (= ticket3i.usr.p3_a_0 2))) (let ((X5 (= ticket3i.usr.p2_a_0 2))) (and (= ticket3i.usr.s_a_1 (ite ticket3i.usr.e3_a_1 (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) ticket3i.usr.s_a_0)))) (let ((X6 (= ticket3i.usr.p3_a_0 0))) (let ((X7 (= ticket3i.usr.p2_a_0 0))) (and (= ticket3i.usr.t_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e4_a_1 (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e7_a_1 (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) ticket3i.usr.t_a_0)))) (= ticket3i.usr.a2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) ticket3i.usr.a2_a_0)) (let ((X8 (and (= ticket3i.usr.p2_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) (and (= ticket3i.usr.p2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 1 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e5_a_1 (ite X8 2 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 0 ticket3i.usr.p2_a_0) ticket3i.usr.p2_a_0)))) (= ticket3i.usr.a3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) ticket3i.usr.a3_a_0)) (let ((X9 (and (= ticket3i.usr.p3_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) (and (= ticket3i.usr.p3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 1 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e8_a_1 (ite X9 2 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 0 ticket3i.usr.p3_a_0) ticket3i.usr.p3_a_0)))) (= ticket3i.usr.erreur_ticket3i_a_1 (ite (or (and (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) (>= ticket3i.usr.p3_a_1 3)) true false)) (not ticket3i.res.init_flag_a_1))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_0 (and (and (and (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) (>= top.usr.init_a2_a_0 0)) (>= top.usr.init_a3_a_0 0)) (>= top.usr.init_t_a_0 0))) (let ((X1 top.res.abs_11_a_0)) (let ((X2 top.res.abs_3_a_0)) (and (= top.usr.OK_a_0 (=> X1 (>= X2 0))) (__node_init_ticket3i_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_init_excludes9_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.e9_a_1 Bool) (top.usr.init_a1_a_1 Int) (top.usr.init_a2_a_1 Int) (top.usr.init_a3_a_1 Int) (top.usr.init_t_a_1 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_1 (and (and (and (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) (>= top.usr.init_a2_a_1 0)) (>= top.usr.init_a3_a_1 0)) (>= top.usr.init_t_a_1 0))) (let ((X1 top.res.abs_11_a_1)) (let ((X2 top.res.abs_3_a_1)) (and (= top.usr.OK_a_1 (=> X1 (>= X2 0))) (__node_trans_ticket3i_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.usr.init_a1_a_1 top.usr.init_a2_a_1 top.usr.init_a3_a_1 top.usr.init_t_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_trans_excludes9_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_10 (and (and (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) (>= top.usr.init_a3 0)) (>= top.usr.init_t 0))) (let ((X1 top.res.abs_11)) (let ((X2 top.res.abs_3)) (and (= top.usr.OK (=> X1 (>= X2 0))) (__node_init_ticket3i_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_init_excludes9_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.e9! Bool) (top.usr.init_a1! Int) (top.usr.init_a2! Int) (top.usr.init_a3! Int) (top.usr.init_t! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_10! (and (and (and (and top.res.abs_9! (>= top.usr.init_a1! 0)) (>= top.usr.init_a2! 0)) (>= top.usr.init_a3! 0)) (>= top.usr.init_t! 0))) (let ((X1 top.res.abs_11!)) (let ((X2 top.res.abs_3!)) (and (= top.usr.OK! (=> X1 (>= X2 0))) (__node_trans_ticket3i_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.usr.init_a1! top.usr.init_a2! top.usr.init_a3! top.usr.init_t! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_1! top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_trans_excludes9_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.res.abs_9! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ticket3i_4.sl b/benchmarks/LIA/Lustre/ticket3i_4.sl index 7fe3402..3f23a41 100644 --- a/benchmarks/LIA/Lustre/ticket3i_4.sl +++ b/benchmarks/LIA/Lustre/ticket3i_4.sl @@ -1,1385 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes9_0 ( - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - excludes9.usr.X3_a_0) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - excludes9.usr.X4_a_0) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - excludes9.usr.X5_a_0) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - excludes9.usr.X6_a_0) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - excludes9.usr.X7_a_0) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - excludes9.usr.X8_a_0) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - excludes9.usr.X9_a_0))) - excludes9.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes9_0 ( - (excludes9.usr.X1_a_1 Bool) - (excludes9.usr.X2_a_1 Bool) - (excludes9.usr.X3_a_1 Bool) - (excludes9.usr.X4_a_1 Bool) - (excludes9.usr.X5_a_1 Bool) - (excludes9.usr.X6_a_1 Bool) - (excludes9.usr.X7_a_1 Bool) - (excludes9.usr.X8_a_1 Bool) - (excludes9.usr.X9_a_1 Bool) - (excludes9.usr.excludes_a_1 Bool) - (excludes9.res.init_flag_a_1 Bool) - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - excludes9.usr.X3_a_1) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - excludes9.usr.X4_a_1) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - excludes9.usr.X5_a_1) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - excludes9.usr.X6_a_1) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - excludes9.usr.X7_a_1) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - excludes9.usr.X8_a_1) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - excludes9.usr.X9_a_1))) - (not excludes9.res.init_flag_a_1)) -) - -(define-fun - __node_init_ticket3i_0 ( - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (and - (= ticket3i.usr.p1_a_0 0) - (let - ((X1 Bool (let ((X1 Int ticket3i.res.nondet_0)) (= X1 0)))) - (and - (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) - (let - ((X2 - Bool (let - ((X2 Int ticket3i.res.nondet_2) (X3 Int ticket3i.res.nondet_1)) - (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) - (and - (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) - (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) - (let - ((X3 Bool (let ((X3 Int ticket3i.res.nondet_4)) (= X3 0)))) - (and - (= ticket3i.usr.p2_a_0 0) - (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) - (let - ((X4 - Bool (let - ((X4 Int ticket3i.res.nondet_6) - (X5 Int ticket3i.res.nondet_5)) - (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) - (let - ((X5 Bool (let ((X5 Int ticket3i.res.nondet_7)) (= X5 2)))) - (let - ((X6 Bool (let ((X6 Int ticket3i.res.nondet_8)) (= X6 0)))) - (and - (= ticket3i.usr.p3_a_0 0) - (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) - (let - ((X7 - Bool (let - ((X7 Int ticket3i.res.nondet_10) - (X8 Int ticket3i.res.nondet_9)) - (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) - (let - ((X8 Bool (let ((X8 Int ticket3i.res.nondet_11)) (= X8 2)))) - (let - ((X9 Bool (let ((X9 Int ticket3i.res.nondet_3)) (= X9 2)))) - (and - (= - ticket3i.usr.erreur_ticket3i_a_0 - (ite - (or - (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) - (>= ticket3i.usr.p3_a_0 3)) - true - false)) - ticket3i.res.init_flag_a_0))))))))))))))) -) - -(define-fun - __node_trans_ticket3i_0 ( - (ticket3i.usr.e1_a_1 Bool) - (ticket3i.usr.e2_a_1 Bool) - (ticket3i.usr.e3_a_1 Bool) - (ticket3i.usr.e4_a_1 Bool) - (ticket3i.usr.e5_a_1 Bool) - (ticket3i.usr.e6_a_1 Bool) - (ticket3i.usr.e7_a_1 Bool) - (ticket3i.usr.e8_a_1 Bool) - (ticket3i.usr.e9_a_1 Bool) - (ticket3i.usr.init_a1_a_1 Int) - (ticket3i.usr.init_a2_a_1 Int) - (ticket3i.usr.init_a3_a_1 Int) - (ticket3i.usr.init_t_a_1 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_1 Int) - (ticket3i.usr.p2_a_1 Int) - (ticket3i.usr.p3_a_1 Int) - (ticket3i.usr.t_a_1 Int) - (ticket3i.usr.s_a_1 Int) - (ticket3i.usr.a1_a_1 Int) - (ticket3i.usr.a2_a_1 Int) - (ticket3i.usr.a3_a_1 Int) - (ticket3i.usr.erreur_ticket3i_a_1 Bool) - (ticket3i.res.init_flag_a_1 Bool) - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (= ticket3i.usr.p1_a_0 2))) - (let - ((X2 Bool (= ticket3i.usr.p1_a_0 0))) - (and - (= - ticket3i.usr.a1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) - ticket3i.usr.a1_a_0)) - (let - ((X3 - Bool (and - (= ticket3i.usr.p1_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) - (and - (= - ticket3i.usr.p1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 1 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e2_a_1 - (ite X3 2 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e3_a_1 - (ite X1 0 ticket3i.usr.p1_a_0) - ticket3i.usr.p1_a_0)))) - (let - ((X4 Bool (= ticket3i.usr.p3_a_0 2))) - (let - ((X5 Bool (= ticket3i.usr.p2_a_0 2))) - (and - (= - ticket3i.usr.s_a_1 - (ite - ticket3i.usr.e3_a_1 - (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - ticket3i.usr.s_a_0)))) - (let - ((X6 Bool (= ticket3i.usr.p3_a_0 0))) - (let - ((X7 Bool (= ticket3i.usr.p2_a_0 0))) - (and - (= - ticket3i.usr.t_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e4_a_1 - (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e7_a_1 - (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - ticket3i.usr.t_a_0)))) - (= - ticket3i.usr.a2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) - ticket3i.usr.a2_a_0)) - (let - ((X8 - Bool (and - (= ticket3i.usr.p2_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) - (and - (= - ticket3i.usr.p2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 1 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e5_a_1 - (ite X8 2 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 0 ticket3i.usr.p2_a_0) - ticket3i.usr.p2_a_0)))) - (= - ticket3i.usr.a3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) - ticket3i.usr.a3_a_0)) - (let - ((X9 - Bool (and - (= ticket3i.usr.p3_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) - (and - (= - ticket3i.usr.p3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 1 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e8_a_1 - (ite X9 2 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 0 ticket3i.usr.p3_a_0) - ticket3i.usr.p3_a_0)))) - (= - ticket3i.usr.erreur_ticket3i_a_1 - (ite - (or - (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) - (>= ticket3i.usr.p3_a_1 3)) - true - false)) - (not ticket3i.res.init_flag_a_1)))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_0 - (and - (and - (and - (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) - (>= top.usr.init_a2_a_0 0)) - (>= top.usr.init_a3_a_0 0)) - (>= top.usr.init_t_a_0 0))) - (let - ((X1 Bool top.res.abs_11_a_0)) - (let - ((X2 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (and (<= 0 X2) (<= X2 3)))) - (__node_init_ticket3i_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_init_excludes9_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.e9_a_1 Bool) - (top.usr.init_a1_a_1 Int) - (top.usr.init_a2_a_1 Int) - (top.usr.init_a3_a_1 Int) - (top.usr.init_t_a_1 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_1 - (and - (and - (and - (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) - (>= top.usr.init_a2_a_1 0)) - (>= top.usr.init_a3_a_1 0)) - (>= top.usr.init_t_a_1 0))) - (let - ((X1 Bool top.res.abs_11_a_1)) - (let - ((X2 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (and (<= 0 X2) (<= X2 3)))) - (__node_trans_ticket3i_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.usr.init_a1_a_1 - top.usr.init_a2_a_1 - top.usr.init_a3_a_1 - top.usr.init_t_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes9_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.e9 Bool) -(declare-primed-var top.usr.init_a1 Int) -(declare-primed-var top.usr.init_a2 Int) -(declare-primed-var top.usr.init_a3 Int) -(declare-primed-var top.usr.init_t Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_10 - (and - (and - (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) - (>= top.usr.init_a3 0)) - (>= top.usr.init_t 0))) - (let - ((X1 Bool top.res.abs_11)) - (let - ((X2 Int top.res.abs_0)) - (and - (= top.usr.OK (=> X1 (and (<= 0 X2) (<= X2 3)))) - (__node_init_ticket3i_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) - (__node_init_excludes9_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.e9! Bool) - (top.usr.init_a1! Int) - (top.usr.init_a2! Int) - (top.usr.init_a3! Int) - (top.usr.init_t! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_10! - (and - (and - (and - (and top.res.abs_9! (>= top.usr.init_a1! 0)) - (>= top.usr.init_a2! 0)) - (>= top.usr.init_a3! 0)) - (>= top.usr.init_t! 0))) - (let - ((X1 Bool top.res.abs_11!)) - (let - ((X2 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (and (<= 0 X2) (<= X2 3)))) - (__node_trans_ticket3i_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.usr.init_a1! - top.usr.init_a2! - top.usr.init_a3! - top.usr.init_t! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_1! - top.res.abs_10 - top.res.abs_11 - top.res.inst_1) - (__node_trans_excludes9_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.res.abs_9! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes9_0 ((excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) excludes9.usr.X3_a_0) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) excludes9.usr.X4_a_0) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) excludes9.usr.X5_a_0) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) excludes9.usr.X6_a_0) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) excludes9.usr.X7_a_0) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) excludes9.usr.X8_a_0) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) excludes9.usr.X9_a_0))) excludes9.res.init_flag_a_0)) +(define-fun __node_trans_excludes9_0 ((excludes9.usr.X1_a_1 Bool) (excludes9.usr.X2_a_1 Bool) (excludes9.usr.X3_a_1 Bool) (excludes9.usr.X4_a_1 Bool) (excludes9.usr.X5_a_1 Bool) (excludes9.usr.X6_a_1 Bool) (excludes9.usr.X7_a_1 Bool) (excludes9.usr.X8_a_1 Bool) (excludes9.usr.X9_a_1 Bool) (excludes9.usr.excludes_a_1 Bool) (excludes9.res.init_flag_a_1 Bool) (excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) excludes9.usr.X3_a_1) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) excludes9.usr.X4_a_1) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) excludes9.usr.X5_a_1) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) excludes9.usr.X6_a_1) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) excludes9.usr.X7_a_1) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) excludes9.usr.X8_a_1) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) excludes9.usr.X9_a_1))) (not excludes9.res.init_flag_a_1))) +(define-fun __node_init_ticket3i_0 ((ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (and (= ticket3i.usr.p1_a_0 0) (let ((X1 (let ((X1 ticket3i.res.nondet_0)) (= X1 0)))) (and (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) (let ((X2 (let ((X2 ticket3i.res.nondet_2) (X3 ticket3i.res.nondet_1)) (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) (and (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) (let ((X3 (let ((X3 ticket3i.res.nondet_4)) (= X3 0)))) (and (= ticket3i.usr.p2_a_0 0) (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) (let ((X4 (let ((X4 ticket3i.res.nondet_6) (X5 ticket3i.res.nondet_5)) (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) (let ((X5 (let ((X5 ticket3i.res.nondet_7)) (= X5 2)))) (let ((X6 (let ((X6 ticket3i.res.nondet_8)) (= X6 0)))) (and (= ticket3i.usr.p3_a_0 0) (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) (let ((X7 (let ((X7 ticket3i.res.nondet_10) (X8 ticket3i.res.nondet_9)) (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) (let ((X8 (let ((X8 ticket3i.res.nondet_11)) (= X8 2)))) (let ((X9 (let ((X9 ticket3i.res.nondet_3)) (= X9 2)))) (and (= ticket3i.usr.erreur_ticket3i_a_0 (ite (or (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) (>= ticket3i.usr.p3_a_0 3)) true false)) ticket3i.res.init_flag_a_0)))))))))))))))) +(define-fun __node_trans_ticket3i_0 ((ticket3i.usr.e1_a_1 Bool) (ticket3i.usr.e2_a_1 Bool) (ticket3i.usr.e3_a_1 Bool) (ticket3i.usr.e4_a_1 Bool) (ticket3i.usr.e5_a_1 Bool) (ticket3i.usr.e6_a_1 Bool) (ticket3i.usr.e7_a_1 Bool) (ticket3i.usr.e8_a_1 Bool) (ticket3i.usr.e9_a_1 Bool) (ticket3i.usr.init_a1_a_1 Int) (ticket3i.usr.init_a2_a_1 Int) (ticket3i.usr.init_a3_a_1 Int) (ticket3i.usr.init_t_a_1 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_1 Int) (ticket3i.usr.p2_a_1 Int) (ticket3i.usr.p3_a_1 Int) (ticket3i.usr.t_a_1 Int) (ticket3i.usr.s_a_1 Int) (ticket3i.usr.a1_a_1 Int) (ticket3i.usr.a2_a_1 Int) (ticket3i.usr.a3_a_1 Int) (ticket3i.usr.erreur_ticket3i_a_1 Bool) (ticket3i.res.init_flag_a_1 Bool) (ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (let ((X1 (= ticket3i.usr.p1_a_0 2))) (let ((X2 (= ticket3i.usr.p1_a_0 0))) (and (= ticket3i.usr.a1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) ticket3i.usr.a1_a_0)) (let ((X3 (and (= ticket3i.usr.p1_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) (and (= ticket3i.usr.p1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 1 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e2_a_1 (ite X3 2 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e3_a_1 (ite X1 0 ticket3i.usr.p1_a_0) ticket3i.usr.p1_a_0)))) (let ((X4 (= ticket3i.usr.p3_a_0 2))) (let ((X5 (= ticket3i.usr.p2_a_0 2))) (and (= ticket3i.usr.s_a_1 (ite ticket3i.usr.e3_a_1 (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) ticket3i.usr.s_a_0)))) (let ((X6 (= ticket3i.usr.p3_a_0 0))) (let ((X7 (= ticket3i.usr.p2_a_0 0))) (and (= ticket3i.usr.t_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e4_a_1 (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e7_a_1 (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) ticket3i.usr.t_a_0)))) (= ticket3i.usr.a2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) ticket3i.usr.a2_a_0)) (let ((X8 (and (= ticket3i.usr.p2_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) (and (= ticket3i.usr.p2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 1 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e5_a_1 (ite X8 2 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 0 ticket3i.usr.p2_a_0) ticket3i.usr.p2_a_0)))) (= ticket3i.usr.a3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) ticket3i.usr.a3_a_0)) (let ((X9 (and (= ticket3i.usr.p3_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) (and (= ticket3i.usr.p3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 1 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e8_a_1 (ite X9 2 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 0 ticket3i.usr.p3_a_0) ticket3i.usr.p3_a_0)))) (= ticket3i.usr.erreur_ticket3i_a_1 (ite (or (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) (>= ticket3i.usr.p3_a_1 3)) true false)) (not ticket3i.res.init_flag_a_1))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_0 (and (and (and (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) (>= top.usr.init_a2_a_0 0)) (>= top.usr.init_a3_a_0 0)) (>= top.usr.init_t_a_0 0))) (let ((X1 top.res.abs_11_a_0)) (let ((X2 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (<= 0 X2) (<= X2 3)))) (__node_init_ticket3i_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_init_excludes9_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.e9_a_1 Bool) (top.usr.init_a1_a_1 Int) (top.usr.init_a2_a_1 Int) (top.usr.init_a3_a_1 Int) (top.usr.init_t_a_1 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_1 (and (and (and (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) (>= top.usr.init_a2_a_1 0)) (>= top.usr.init_a3_a_1 0)) (>= top.usr.init_t_a_1 0))) (let ((X1 top.res.abs_11_a_1)) (let ((X2 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (<= 0 X2) (<= X2 3)))) (__node_trans_ticket3i_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.usr.init_a1_a_1 top.usr.init_a2_a_1 top.usr.init_a3_a_1 top.usr.init_t_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_trans_excludes9_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_10 (and (and (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) (>= top.usr.init_a3 0)) (>= top.usr.init_t 0))) (let ((X1 top.res.abs_11)) (let ((X2 top.res.abs_0)) (and (= top.usr.OK (=> X1 (and (<= 0 X2) (<= X2 3)))) (__node_init_ticket3i_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_init_excludes9_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.e9! Bool) (top.usr.init_a1! Int) (top.usr.init_a2! Int) (top.usr.init_a3! Int) (top.usr.init_t! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_10! (and (and (and (and top.res.abs_9! (>= top.usr.init_a1! 0)) (>= top.usr.init_a2! 0)) (>= top.usr.init_a3! 0)) (>= top.usr.init_t! 0))) (let ((X1 top.res.abs_11!)) (let ((X2 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (<= 0 X2) (<= X2 3)))) (__node_trans_ticket3i_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.usr.init_a1! top.usr.init_a2! top.usr.init_a3! top.usr.init_t! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_1! top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_trans_excludes9_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.res.abs_9! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ticket3i_4_e7_1775_e7_3320.sl b/benchmarks/LIA/Lustre/ticket3i_4_e7_1775_e7_3320.sl index 5ef5a9a..f73e569 100644 --- a/benchmarks/LIA/Lustre/ticket3i_4_e7_1775_e7_3320.sl +++ b/benchmarks/LIA/Lustre/ticket3i_4_e7_1775_e7_3320.sl @@ -1,1385 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes9_0 ( - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (not excludes9.usr.X1_a_0) - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - excludes9.usr.X3_a_0) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - excludes9.usr.X4_a_0) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - excludes9.usr.X5_a_0) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - excludes9.usr.X6_a_0) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - excludes9.usr.X7_a_0) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - excludes9.usr.X8_a_0) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - excludes9.usr.X9_a_0))) - excludes9.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes9_0 ( - (excludes9.usr.X1_a_1 Bool) - (excludes9.usr.X2_a_1 Bool) - (excludes9.usr.X3_a_1 Bool) - (excludes9.usr.X4_a_1 Bool) - (excludes9.usr.X5_a_1 Bool) - (excludes9.usr.X6_a_1 Bool) - (excludes9.usr.X7_a_1 Bool) - (excludes9.usr.X8_a_1 Bool) - (excludes9.usr.X9_a_1 Bool) - (excludes9.usr.excludes_a_1 Bool) - (excludes9.res.init_flag_a_1 Bool) - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (not excludes9.usr.X1_a_1) - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - excludes9.usr.X3_a_1) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - excludes9.usr.X4_a_1) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - excludes9.usr.X5_a_1) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - excludes9.usr.X6_a_1) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - excludes9.usr.X7_a_1) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - excludes9.usr.X8_a_1) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - excludes9.usr.X9_a_1))) - (not excludes9.res.init_flag_a_1)) -) - -(define-fun - __node_init_ticket3i_0 ( - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (and - (= ticket3i.usr.p1_a_0 0) - (let - ((X1 Bool (let ((X1 Int ticket3i.res.nondet_0)) (= X1 0)))) - (and - (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) - (let - ((X2 - Bool (let - ((X2 Int ticket3i.res.nondet_2) (X3 Int ticket3i.res.nondet_1)) - (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) - (and - (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) - (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) - (let - ((X3 Bool (let ((X3 Int ticket3i.res.nondet_4)) (= X3 0)))) - (and - (= ticket3i.usr.p2_a_0 0) - (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) - (let - ((X4 - Bool (let - ((X4 Int ticket3i.res.nondet_6) - (X5 Int ticket3i.res.nondet_5)) - (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) - (let - ((X5 Bool (let ((X5 Int ticket3i.res.nondet_7)) (= X5 2)))) - (let - ((X6 Bool (let ((X6 Int ticket3i.res.nondet_8)) (= X6 0)))) - (and - (= ticket3i.usr.p3_a_0 0) - (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) - (let - ((X7 - Bool (let - ((X7 Int ticket3i.res.nondet_10) - (X8 Int ticket3i.res.nondet_9)) - (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) - (let - ((X8 Bool (let ((X8 Int ticket3i.res.nondet_11)) (= X8 2)))) - (let - ((X9 Bool (let ((X9 Int ticket3i.res.nondet_3)) (= X9 2)))) - (and - (= - ticket3i.usr.erreur_ticket3i_a_0 - (ite - (or - (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) - (>= ticket3i.usr.p3_a_0 3)) - true - false)) - ticket3i.res.init_flag_a_0))))))))))))))) -) - -(define-fun - __node_trans_ticket3i_0 ( - (ticket3i.usr.e1_a_1 Bool) - (ticket3i.usr.e2_a_1 Bool) - (ticket3i.usr.e3_a_1 Bool) - (ticket3i.usr.e4_a_1 Bool) - (ticket3i.usr.e5_a_1 Bool) - (ticket3i.usr.e6_a_1 Bool) - (ticket3i.usr.e7_a_1 Bool) - (ticket3i.usr.e8_a_1 Bool) - (ticket3i.usr.e9_a_1 Bool) - (ticket3i.usr.init_a1_a_1 Int) - (ticket3i.usr.init_a2_a_1 Int) - (ticket3i.usr.init_a3_a_1 Int) - (ticket3i.usr.init_t_a_1 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_1 Int) - (ticket3i.usr.p2_a_1 Int) - (ticket3i.usr.p3_a_1 Int) - (ticket3i.usr.t_a_1 Int) - (ticket3i.usr.s_a_1 Int) - (ticket3i.usr.a1_a_1 Int) - (ticket3i.usr.a2_a_1 Int) - (ticket3i.usr.a3_a_1 Int) - (ticket3i.usr.erreur_ticket3i_a_1 Bool) - (ticket3i.res.init_flag_a_1 Bool) - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (= ticket3i.usr.p1_a_0 2))) - (let - ((X2 Bool (= ticket3i.usr.p1_a_0 0))) - (and - (= - ticket3i.usr.a1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) - ticket3i.usr.a1_a_0)) - (let - ((X3 - Bool (and - (= ticket3i.usr.p1_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) - (and - (= - ticket3i.usr.p1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 1 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e2_a_1 - (ite X3 2 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e3_a_1 - (ite X1 0 ticket3i.usr.p1_a_0) - ticket3i.usr.p1_a_0)))) - (let - ((X4 Bool (= ticket3i.usr.p3_a_0 2))) - (let - ((X5 Bool (= ticket3i.usr.p2_a_0 2))) - (and - (= - ticket3i.usr.s_a_1 - (ite - ticket3i.usr.e3_a_1 - (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - ticket3i.usr.s_a_0)))) - (let - ((X6 Bool (= ticket3i.usr.p3_a_0 0))) - (let - ((X7 Bool (= ticket3i.usr.p2_a_0 0))) - (and - (= - ticket3i.usr.t_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e4_a_1 - (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e7_a_1 - (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - ticket3i.usr.t_a_0)))) - (= - ticket3i.usr.a2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) - ticket3i.usr.a2_a_0)) - (let - ((X8 - Bool (and - (= ticket3i.usr.p2_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) - (and - (= - ticket3i.usr.p2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 1 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e5_a_1 - (ite X8 2 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 0 ticket3i.usr.p2_a_0) - ticket3i.usr.p2_a_0)))) - (= - ticket3i.usr.a3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) - ticket3i.usr.a3_a_0)) - (let - ((X9 - Bool (and - (= ticket3i.usr.p3_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) - (and - (= - ticket3i.usr.p3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 1 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e8_a_1 - (ite X9 2 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 0 ticket3i.usr.p3_a_0) - ticket3i.usr.p3_a_0)))) - (= - ticket3i.usr.erreur_ticket3i_a_1 - (ite - (or - (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) - (>= ticket3i.usr.p3_a_1 3)) - true - false)) - (not ticket3i.res.init_flag_a_1)))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_0 - (and - (and - (and - (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) - (>= top.usr.init_a2_a_0 0)) - (>= top.usr.init_a3_a_0 0)) - (>= top.usr.init_t_a_0 0))) - (let - ((X1 Bool top.res.abs_11_a_0)) - (let - ((X2 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (and (<= 0 X2) (<= X2 3)))) - (__node_init_ticket3i_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_init_excludes9_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.e9_a_1 Bool) - (top.usr.init_a1_a_1 Int) - (top.usr.init_a2_a_1 Int) - (top.usr.init_a3_a_1 Int) - (top.usr.init_t_a_1 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_1 - (and - (and - (and - (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) - (>= top.usr.init_a2_a_1 0)) - (>= top.usr.init_a3_a_1 0)) - (>= top.usr.init_t_a_1 0))) - (let - ((X1 Bool top.res.abs_11_a_1)) - (let - ((X2 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (and (<= 0 X2) (<= X2 3)))) - (__node_trans_ticket3i_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.usr.init_a1_a_1 - top.usr.init_a2_a_1 - top.usr.init_a3_a_1 - top.usr.init_t_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes9_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.e9 Bool) -(declare-primed-var top.usr.init_a1 Int) -(declare-primed-var top.usr.init_a2 Int) -(declare-primed-var top.usr.init_a3 Int) -(declare-primed-var top.usr.init_t Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_10 - (and - (and - (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) - (>= top.usr.init_a3 0)) - (>= top.usr.init_t 0))) - (let - ((X1 Bool top.res.abs_11)) - (let - ((X2 Int top.res.abs_0)) - (and - (= top.usr.OK (=> X1 (and (<= 0 X2) (<= X2 3)))) - (__node_init_ticket3i_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) - (__node_init_excludes9_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.e9! Bool) - (top.usr.init_a1! Int) - (top.usr.init_a2! Int) - (top.usr.init_a3! Int) - (top.usr.init_t! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_10! - (and - (and - (and - (and top.res.abs_9! (>= top.usr.init_a1! 0)) - (>= top.usr.init_a2! 0)) - (>= top.usr.init_a3! 0)) - (>= top.usr.init_t! 0))) - (let - ((X1 Bool top.res.abs_11!)) - (let - ((X2 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> X1 (and (<= 0 X2) (<= X2 3)))) - (__node_trans_ticket3i_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.usr.init_a1! - top.usr.init_a2! - top.usr.init_a3! - top.usr.init_t! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_1! - top.res.abs_10 - top.res.abs_11 - top.res.inst_1) - (__node_trans_excludes9_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.res.abs_9! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes9_0 ((excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (not excludes9.usr.X1_a_0) (and (and (and (and (and (and (and (not excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) excludes9.usr.X3_a_0) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) excludes9.usr.X4_a_0) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) excludes9.usr.X5_a_0) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) excludes9.usr.X6_a_0) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) excludes9.usr.X7_a_0) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) excludes9.usr.X8_a_0) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) excludes9.usr.X9_a_0))) excludes9.res.init_flag_a_0)) +(define-fun __node_trans_excludes9_0 ((excludes9.usr.X1_a_1 Bool) (excludes9.usr.X2_a_1 Bool) (excludes9.usr.X3_a_1 Bool) (excludes9.usr.X4_a_1 Bool) (excludes9.usr.X5_a_1 Bool) (excludes9.usr.X6_a_1 Bool) (excludes9.usr.X7_a_1 Bool) (excludes9.usr.X8_a_1 Bool) (excludes9.usr.X9_a_1 Bool) (excludes9.usr.excludes_a_1 Bool) (excludes9.res.init_flag_a_1 Bool) (excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (not excludes9.usr.X1_a_1) (and (and (and (and (and (and (and (not excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) excludes9.usr.X3_a_1) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) excludes9.usr.X4_a_1) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) excludes9.usr.X5_a_1) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) excludes9.usr.X6_a_1) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) excludes9.usr.X7_a_1) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) excludes9.usr.X8_a_1) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) excludes9.usr.X9_a_1))) (not excludes9.res.init_flag_a_1))) +(define-fun __node_init_ticket3i_0 ((ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (and (= ticket3i.usr.p1_a_0 0) (let ((X1 (let ((X1 ticket3i.res.nondet_0)) (= X1 0)))) (and (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) (let ((X2 (let ((X2 ticket3i.res.nondet_2) (X3 ticket3i.res.nondet_1)) (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) (and (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) (let ((X3 (let ((X3 ticket3i.res.nondet_4)) (= X3 0)))) (and (= ticket3i.usr.p2_a_0 0) (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) (let ((X4 (let ((X4 ticket3i.res.nondet_6) (X5 ticket3i.res.nondet_5)) (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) (let ((X5 (let ((X5 ticket3i.res.nondet_7)) (= X5 2)))) (let ((X6 (let ((X6 ticket3i.res.nondet_8)) (= X6 0)))) (and (= ticket3i.usr.p3_a_0 0) (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) (let ((X7 (let ((X7 ticket3i.res.nondet_10) (X8 ticket3i.res.nondet_9)) (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) (let ((X8 (let ((X8 ticket3i.res.nondet_11)) (= X8 2)))) (let ((X9 (let ((X9 ticket3i.res.nondet_3)) (= X9 2)))) (and (= ticket3i.usr.erreur_ticket3i_a_0 (ite (or (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) (>= ticket3i.usr.p3_a_0 3)) true false)) ticket3i.res.init_flag_a_0)))))))))))))))) +(define-fun __node_trans_ticket3i_0 ((ticket3i.usr.e1_a_1 Bool) (ticket3i.usr.e2_a_1 Bool) (ticket3i.usr.e3_a_1 Bool) (ticket3i.usr.e4_a_1 Bool) (ticket3i.usr.e5_a_1 Bool) (ticket3i.usr.e6_a_1 Bool) (ticket3i.usr.e7_a_1 Bool) (ticket3i.usr.e8_a_1 Bool) (ticket3i.usr.e9_a_1 Bool) (ticket3i.usr.init_a1_a_1 Int) (ticket3i.usr.init_a2_a_1 Int) (ticket3i.usr.init_a3_a_1 Int) (ticket3i.usr.init_t_a_1 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_1 Int) (ticket3i.usr.p2_a_1 Int) (ticket3i.usr.p3_a_1 Int) (ticket3i.usr.t_a_1 Int) (ticket3i.usr.s_a_1 Int) (ticket3i.usr.a1_a_1 Int) (ticket3i.usr.a2_a_1 Int) (ticket3i.usr.a3_a_1 Int) (ticket3i.usr.erreur_ticket3i_a_1 Bool) (ticket3i.res.init_flag_a_1 Bool) (ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (let ((X1 (= ticket3i.usr.p1_a_0 2))) (let ((X2 (= ticket3i.usr.p1_a_0 0))) (and (= ticket3i.usr.a1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) ticket3i.usr.a1_a_0)) (let ((X3 (and (= ticket3i.usr.p1_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) (and (= ticket3i.usr.p1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 1 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e2_a_1 (ite X3 2 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e3_a_1 (ite X1 0 ticket3i.usr.p1_a_0) ticket3i.usr.p1_a_0)))) (let ((X4 (= ticket3i.usr.p3_a_0 2))) (let ((X5 (= ticket3i.usr.p2_a_0 2))) (and (= ticket3i.usr.s_a_1 (ite ticket3i.usr.e3_a_1 (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) ticket3i.usr.s_a_0)))) (let ((X6 (= ticket3i.usr.p3_a_0 0))) (let ((X7 (= ticket3i.usr.p2_a_0 0))) (and (= ticket3i.usr.t_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e4_a_1 (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e7_a_1 (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) ticket3i.usr.t_a_0)))) (= ticket3i.usr.a2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) ticket3i.usr.a2_a_0)) (let ((X8 (and (= ticket3i.usr.p2_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) (and (= ticket3i.usr.p2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 1 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e5_a_1 (ite X8 2 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 0 ticket3i.usr.p2_a_0) ticket3i.usr.p2_a_0)))) (= ticket3i.usr.a3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) ticket3i.usr.a3_a_0)) (let ((X9 (and (= ticket3i.usr.p3_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) (and (= ticket3i.usr.p3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 1 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e8_a_1 (ite X9 2 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 0 ticket3i.usr.p3_a_0) ticket3i.usr.p3_a_0)))) (= ticket3i.usr.erreur_ticket3i_a_1 (ite (or (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) (>= ticket3i.usr.p3_a_1 3)) true false)) (not ticket3i.res.init_flag_a_1))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_0 (and (and (and (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) (>= top.usr.init_a2_a_0 0)) (>= top.usr.init_a3_a_0 0)) (>= top.usr.init_t_a_0 0))) (let ((X1 top.res.abs_11_a_0)) (let ((X2 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (<= 0 X2) (<= X2 3)))) (__node_init_ticket3i_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_init_excludes9_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.e9_a_1 Bool) (top.usr.init_a1_a_1 Int) (top.usr.init_a2_a_1 Int) (top.usr.init_a3_a_1 Int) (top.usr.init_t_a_1 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_1 (and (and (and (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) (>= top.usr.init_a2_a_1 0)) (>= top.usr.init_a3_a_1 0)) (>= top.usr.init_t_a_1 0))) (let ((X1 top.res.abs_11_a_1)) (let ((X2 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (<= 0 X2) (<= X2 3)))) (__node_trans_ticket3i_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.usr.init_a1_a_1 top.usr.init_a2_a_1 top.usr.init_a3_a_1 top.usr.init_t_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_trans_excludes9_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_10 (and (and (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) (>= top.usr.init_a3 0)) (>= top.usr.init_t 0))) (let ((X1 top.res.abs_11)) (let ((X2 top.res.abs_0)) (and (= top.usr.OK (=> X1 (and (<= 0 X2) (<= X2 3)))) (__node_init_ticket3i_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_init_excludes9_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.e9! Bool) (top.usr.init_a1! Int) (top.usr.init_a2! Int) (top.usr.init_a3! Int) (top.usr.init_t! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_10! (and (and (and (and top.res.abs_9! (>= top.usr.init_a1! 0)) (>= top.usr.init_a2! 0)) (>= top.usr.init_a3! 0)) (>= top.usr.init_t! 0))) (let ((X1 top.res.abs_11!)) (let ((X2 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (<= 0 X2) (<= X2 3)))) (__node_trans_ticket3i_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.usr.init_a1! top.usr.init_a2! top.usr.init_a3! top.usr.init_t! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_1! top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_trans_excludes9_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.res.abs_9! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ticket3i_5.sl b/benchmarks/LIA/Lustre/ticket3i_5.sl index 1bd744d..7f570f6 100644 --- a/benchmarks/LIA/Lustre/ticket3i_5.sl +++ b/benchmarks/LIA/Lustre/ticket3i_5.sl @@ -1,1385 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes9_0 ( - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - excludes9.usr.X3_a_0) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - excludes9.usr.X4_a_0) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - excludes9.usr.X5_a_0) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - excludes9.usr.X6_a_0) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - excludes9.usr.X7_a_0) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - excludes9.usr.X8_a_0) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - excludes9.usr.X9_a_0))) - excludes9.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes9_0 ( - (excludes9.usr.X1_a_1 Bool) - (excludes9.usr.X2_a_1 Bool) - (excludes9.usr.X3_a_1 Bool) - (excludes9.usr.X4_a_1 Bool) - (excludes9.usr.X5_a_1 Bool) - (excludes9.usr.X6_a_1 Bool) - (excludes9.usr.X7_a_1 Bool) - (excludes9.usr.X8_a_1 Bool) - (excludes9.usr.X9_a_1 Bool) - (excludes9.usr.excludes_a_1 Bool) - (excludes9.res.init_flag_a_1 Bool) - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - excludes9.usr.X3_a_1) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - excludes9.usr.X4_a_1) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - excludes9.usr.X5_a_1) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - excludes9.usr.X6_a_1) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - excludes9.usr.X7_a_1) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - excludes9.usr.X8_a_1) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - excludes9.usr.X9_a_1))) - (not excludes9.res.init_flag_a_1)) -) - -(define-fun - __node_init_ticket3i_0 ( - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (and - (= ticket3i.usr.p1_a_0 0) - (let - ((X1 Bool (let ((X1 Int ticket3i.res.nondet_0)) (= X1 0)))) - (and - (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) - (let - ((X2 - Bool (let - ((X2 Int ticket3i.res.nondet_2) (X3 Int ticket3i.res.nondet_1)) - (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) - (and - (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) - (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) - (let - ((X3 Bool (let ((X3 Int ticket3i.res.nondet_4)) (= X3 0)))) - (and - (= ticket3i.usr.p2_a_0 0) - (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) - (let - ((X4 - Bool (let - ((X4 Int ticket3i.res.nondet_6) - (X5 Int ticket3i.res.nondet_5)) - (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) - (let - ((X5 Bool (let ((X5 Int ticket3i.res.nondet_7)) (= X5 2)))) - (let - ((X6 Bool (let ((X6 Int ticket3i.res.nondet_8)) (= X6 0)))) - (and - (= ticket3i.usr.p3_a_0 0) - (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) - (let - ((X7 - Bool (let - ((X7 Int ticket3i.res.nondet_10) - (X8 Int ticket3i.res.nondet_9)) - (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) - (let - ((X8 Bool (let ((X8 Int ticket3i.res.nondet_11)) (= X8 2)))) - (let - ((X9 Bool (let ((X9 Int ticket3i.res.nondet_3)) (= X9 2)))) - (and - (= - ticket3i.usr.erreur_ticket3i_a_0 - (ite - (or - (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) - (>= ticket3i.usr.p3_a_0 3)) - true - false)) - ticket3i.res.init_flag_a_0))))))))))))))) -) - -(define-fun - __node_trans_ticket3i_0 ( - (ticket3i.usr.e1_a_1 Bool) - (ticket3i.usr.e2_a_1 Bool) - (ticket3i.usr.e3_a_1 Bool) - (ticket3i.usr.e4_a_1 Bool) - (ticket3i.usr.e5_a_1 Bool) - (ticket3i.usr.e6_a_1 Bool) - (ticket3i.usr.e7_a_1 Bool) - (ticket3i.usr.e8_a_1 Bool) - (ticket3i.usr.e9_a_1 Bool) - (ticket3i.usr.init_a1_a_1 Int) - (ticket3i.usr.init_a2_a_1 Int) - (ticket3i.usr.init_a3_a_1 Int) - (ticket3i.usr.init_t_a_1 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_1 Int) - (ticket3i.usr.p2_a_1 Int) - (ticket3i.usr.p3_a_1 Int) - (ticket3i.usr.t_a_1 Int) - (ticket3i.usr.s_a_1 Int) - (ticket3i.usr.a1_a_1 Int) - (ticket3i.usr.a2_a_1 Int) - (ticket3i.usr.a3_a_1 Int) - (ticket3i.usr.erreur_ticket3i_a_1 Bool) - (ticket3i.res.init_flag_a_1 Bool) - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (= ticket3i.usr.p1_a_0 2))) - (let - ((X2 Bool (= ticket3i.usr.p1_a_0 0))) - (and - (= - ticket3i.usr.a1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) - ticket3i.usr.a1_a_0)) - (let - ((X3 - Bool (and - (= ticket3i.usr.p1_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) - (and - (= - ticket3i.usr.p1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 1 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e2_a_1 - (ite X3 2 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e3_a_1 - (ite X1 0 ticket3i.usr.p1_a_0) - ticket3i.usr.p1_a_0)))) - (let - ((X4 Bool (= ticket3i.usr.p3_a_0 2))) - (let - ((X5 Bool (= ticket3i.usr.p2_a_0 2))) - (and - (= - ticket3i.usr.s_a_1 - (ite - ticket3i.usr.e3_a_1 - (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - ticket3i.usr.s_a_0)))) - (let - ((X6 Bool (= ticket3i.usr.p3_a_0 0))) - (let - ((X7 Bool (= ticket3i.usr.p2_a_0 0))) - (and - (= - ticket3i.usr.t_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e4_a_1 - (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e7_a_1 - (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - ticket3i.usr.t_a_0)))) - (= - ticket3i.usr.a2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) - ticket3i.usr.a2_a_0)) - (let - ((X8 - Bool (and - (= ticket3i.usr.p2_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) - (and - (= - ticket3i.usr.p2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 1 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e5_a_1 - (ite X8 2 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 0 ticket3i.usr.p2_a_0) - ticket3i.usr.p2_a_0)))) - (= - ticket3i.usr.a3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) - ticket3i.usr.a3_a_0)) - (let - ((X9 - Bool (and - (= ticket3i.usr.p3_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) - (and - (= - ticket3i.usr.p3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 1 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e8_a_1 - (ite X9 2 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 0 ticket3i.usr.p3_a_0) - ticket3i.usr.p3_a_0)))) - (= - ticket3i.usr.erreur_ticket3i_a_1 - (ite - (or - (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) - (>= ticket3i.usr.p3_a_1 3)) - true - false)) - (not ticket3i.res.init_flag_a_1)))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_0 - (and - (and - (and - (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) - (>= top.usr.init_a2_a_0 0)) - (>= top.usr.init_a3_a_0 0)) - (>= top.usr.init_t_a_0 0))) - (let - ((X1 Bool top.res.abs_11_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (and (<= 0 X2) (<= X2 3)))) - (__node_init_ticket3i_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_init_excludes9_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.e9_a_1 Bool) - (top.usr.init_a1_a_1 Int) - (top.usr.init_a2_a_1 Int) - (top.usr.init_a3_a_1 Int) - (top.usr.init_t_a_1 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_1 - (and - (and - (and - (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) - (>= top.usr.init_a2_a_1 0)) - (>= top.usr.init_a3_a_1 0)) - (>= top.usr.init_t_a_1 0))) - (let - ((X1 Bool top.res.abs_11_a_1)) - (let - ((X2 Int top.res.abs_1_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (and (<= 0 X2) (<= X2 3)))) - (__node_trans_ticket3i_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.usr.init_a1_a_1 - top.usr.init_a2_a_1 - top.usr.init_a3_a_1 - top.usr.init_t_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes9_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.e9 Bool) -(declare-primed-var top.usr.init_a1 Int) -(declare-primed-var top.usr.init_a2 Int) -(declare-primed-var top.usr.init_a3 Int) -(declare-primed-var top.usr.init_t Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_10 - (and - (and - (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) - (>= top.usr.init_a3 0)) - (>= top.usr.init_t 0))) - (let - ((X1 Bool top.res.abs_11)) - (let - ((X2 Int top.res.abs_1)) - (and - (= top.usr.OK (=> X1 (and (<= 0 X2) (<= X2 3)))) - (__node_init_ticket3i_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) - (__node_init_excludes9_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.e9! Bool) - (top.usr.init_a1! Int) - (top.usr.init_a2! Int) - (top.usr.init_a3! Int) - (top.usr.init_t! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_10! - (and - (and - (and - (and top.res.abs_9! (>= top.usr.init_a1! 0)) - (>= top.usr.init_a2! 0)) - (>= top.usr.init_a3! 0)) - (>= top.usr.init_t! 0))) - (let - ((X1 Bool top.res.abs_11!)) - (let - ((X2 Int top.res.abs_1!)) - (and - (= top.usr.OK! (=> X1 (and (<= 0 X2) (<= X2 3)))) - (__node_trans_ticket3i_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.usr.init_a1! - top.usr.init_a2! - top.usr.init_a3! - top.usr.init_t! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_1! - top.res.abs_10 - top.res.abs_11 - top.res.inst_1) - (__node_trans_excludes9_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.res.abs_9! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes9_0 ((excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) excludes9.usr.X3_a_0) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) excludes9.usr.X4_a_0) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) excludes9.usr.X5_a_0) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) excludes9.usr.X6_a_0) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) excludes9.usr.X7_a_0) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) excludes9.usr.X8_a_0) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) excludes9.usr.X9_a_0))) excludes9.res.init_flag_a_0)) +(define-fun __node_trans_excludes9_0 ((excludes9.usr.X1_a_1 Bool) (excludes9.usr.X2_a_1 Bool) (excludes9.usr.X3_a_1 Bool) (excludes9.usr.X4_a_1 Bool) (excludes9.usr.X5_a_1 Bool) (excludes9.usr.X6_a_1 Bool) (excludes9.usr.X7_a_1 Bool) (excludes9.usr.X8_a_1 Bool) (excludes9.usr.X9_a_1 Bool) (excludes9.usr.excludes_a_1 Bool) (excludes9.res.init_flag_a_1 Bool) (excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) excludes9.usr.X3_a_1) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) excludes9.usr.X4_a_1) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) excludes9.usr.X5_a_1) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) excludes9.usr.X6_a_1) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) excludes9.usr.X7_a_1) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) excludes9.usr.X8_a_1) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) excludes9.usr.X9_a_1))) (not excludes9.res.init_flag_a_1))) +(define-fun __node_init_ticket3i_0 ((ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (and (= ticket3i.usr.p1_a_0 0) (let ((X1 (let ((X1 ticket3i.res.nondet_0)) (= X1 0)))) (and (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) (let ((X2 (let ((X2 ticket3i.res.nondet_2) (X3 ticket3i.res.nondet_1)) (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) (and (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) (let ((X3 (let ((X3 ticket3i.res.nondet_4)) (= X3 0)))) (and (= ticket3i.usr.p2_a_0 0) (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) (let ((X4 (let ((X4 ticket3i.res.nondet_6) (X5 ticket3i.res.nondet_5)) (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) (let ((X5 (let ((X5 ticket3i.res.nondet_7)) (= X5 2)))) (let ((X6 (let ((X6 ticket3i.res.nondet_8)) (= X6 0)))) (and (= ticket3i.usr.p3_a_0 0) (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) (let ((X7 (let ((X7 ticket3i.res.nondet_10) (X8 ticket3i.res.nondet_9)) (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) (let ((X8 (let ((X8 ticket3i.res.nondet_11)) (= X8 2)))) (let ((X9 (let ((X9 ticket3i.res.nondet_3)) (= X9 2)))) (and (= ticket3i.usr.erreur_ticket3i_a_0 (ite (or (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) (>= ticket3i.usr.p3_a_0 3)) true false)) ticket3i.res.init_flag_a_0)))))))))))))))) +(define-fun __node_trans_ticket3i_0 ((ticket3i.usr.e1_a_1 Bool) (ticket3i.usr.e2_a_1 Bool) (ticket3i.usr.e3_a_1 Bool) (ticket3i.usr.e4_a_1 Bool) (ticket3i.usr.e5_a_1 Bool) (ticket3i.usr.e6_a_1 Bool) (ticket3i.usr.e7_a_1 Bool) (ticket3i.usr.e8_a_1 Bool) (ticket3i.usr.e9_a_1 Bool) (ticket3i.usr.init_a1_a_1 Int) (ticket3i.usr.init_a2_a_1 Int) (ticket3i.usr.init_a3_a_1 Int) (ticket3i.usr.init_t_a_1 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_1 Int) (ticket3i.usr.p2_a_1 Int) (ticket3i.usr.p3_a_1 Int) (ticket3i.usr.t_a_1 Int) (ticket3i.usr.s_a_1 Int) (ticket3i.usr.a1_a_1 Int) (ticket3i.usr.a2_a_1 Int) (ticket3i.usr.a3_a_1 Int) (ticket3i.usr.erreur_ticket3i_a_1 Bool) (ticket3i.res.init_flag_a_1 Bool) (ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (let ((X1 (= ticket3i.usr.p1_a_0 2))) (let ((X2 (= ticket3i.usr.p1_a_0 0))) (and (= ticket3i.usr.a1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) ticket3i.usr.a1_a_0)) (let ((X3 (and (= ticket3i.usr.p1_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) (and (= ticket3i.usr.p1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 1 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e2_a_1 (ite X3 2 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e3_a_1 (ite X1 0 ticket3i.usr.p1_a_0) ticket3i.usr.p1_a_0)))) (let ((X4 (= ticket3i.usr.p3_a_0 2))) (let ((X5 (= ticket3i.usr.p2_a_0 2))) (and (= ticket3i.usr.s_a_1 (ite ticket3i.usr.e3_a_1 (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) ticket3i.usr.s_a_0)))) (let ((X6 (= ticket3i.usr.p3_a_0 0))) (let ((X7 (= ticket3i.usr.p2_a_0 0))) (and (= ticket3i.usr.t_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e4_a_1 (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e7_a_1 (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) ticket3i.usr.t_a_0)))) (= ticket3i.usr.a2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) ticket3i.usr.a2_a_0)) (let ((X8 (and (= ticket3i.usr.p2_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) (and (= ticket3i.usr.p2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 1 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e5_a_1 (ite X8 2 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 0 ticket3i.usr.p2_a_0) ticket3i.usr.p2_a_0)))) (= ticket3i.usr.a3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) ticket3i.usr.a3_a_0)) (let ((X9 (and (= ticket3i.usr.p3_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) (and (= ticket3i.usr.p3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 1 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e8_a_1 (ite X9 2 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 0 ticket3i.usr.p3_a_0) ticket3i.usr.p3_a_0)))) (= ticket3i.usr.erreur_ticket3i_a_1 (ite (or (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) (>= ticket3i.usr.p3_a_1 3)) true false)) (not ticket3i.res.init_flag_a_1))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_0 (and (and (and (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) (>= top.usr.init_a2_a_0 0)) (>= top.usr.init_a3_a_0 0)) (>= top.usr.init_t_a_0 0))) (let ((X1 top.res.abs_11_a_0)) (let ((X2 top.res.abs_1_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (<= 0 X2) (<= X2 3)))) (__node_init_ticket3i_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_init_excludes9_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.e9_a_1 Bool) (top.usr.init_a1_a_1 Int) (top.usr.init_a2_a_1 Int) (top.usr.init_a3_a_1 Int) (top.usr.init_t_a_1 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_1 (and (and (and (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) (>= top.usr.init_a2_a_1 0)) (>= top.usr.init_a3_a_1 0)) (>= top.usr.init_t_a_1 0))) (let ((X1 top.res.abs_11_a_1)) (let ((X2 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (<= 0 X2) (<= X2 3)))) (__node_trans_ticket3i_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.usr.init_a1_a_1 top.usr.init_a2_a_1 top.usr.init_a3_a_1 top.usr.init_t_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_trans_excludes9_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_10 (and (and (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) (>= top.usr.init_a3 0)) (>= top.usr.init_t 0))) (let ((X1 top.res.abs_11)) (let ((X2 top.res.abs_1)) (and (= top.usr.OK (=> X1 (and (<= 0 X2) (<= X2 3)))) (__node_init_ticket3i_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_init_excludes9_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.e9! Bool) (top.usr.init_a1! Int) (top.usr.init_a2! Int) (top.usr.init_a3! Int) (top.usr.init_t! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_10! (and (and (and (and top.res.abs_9! (>= top.usr.init_a1! 0)) (>= top.usr.init_a2! 0)) (>= top.usr.init_a3! 0)) (>= top.usr.init_t! 0))) (let ((X1 top.res.abs_11!)) (let ((X2 top.res.abs_1!)) (and (= top.usr.OK! (=> X1 (and (<= 0 X2) (<= X2 3)))) (__node_trans_ticket3i_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.usr.init_a1! top.usr.init_a2! top.usr.init_a3! top.usr.init_t! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_1! top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_trans_excludes9_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.res.abs_9! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ticket3i_5_e7_3307.sl b/benchmarks/LIA/Lustre/ticket3i_5_e7_3307.sl index 0dd2fc6..2f4b890 100644 --- a/benchmarks/LIA/Lustre/ticket3i_5_e7_3307.sl +++ b/benchmarks/LIA/Lustre/ticket3i_5_e7_3307.sl @@ -1,1385 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes9_0 ( - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - excludes9.usr.X3_a_0) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - excludes9.usr.X4_a_0) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - excludes9.usr.X5_a_0) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - excludes9.usr.X6_a_0) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - excludes9.usr.X7_a_0) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - excludes9.usr.X8_a_0) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - excludes9.usr.X9_a_0))) - excludes9.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes9_0 ( - (excludes9.usr.X1_a_1 Bool) - (excludes9.usr.X2_a_1 Bool) - (excludes9.usr.X3_a_1 Bool) - (excludes9.usr.X4_a_1 Bool) - (excludes9.usr.X5_a_1 Bool) - (excludes9.usr.X6_a_1 Bool) - (excludes9.usr.X7_a_1 Bool) - (excludes9.usr.X8_a_1 Bool) - (excludes9.usr.X9_a_1 Bool) - (excludes9.usr.excludes_a_1 Bool) - (excludes9.res.init_flag_a_1 Bool) - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - excludes9.usr.X3_a_1) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - excludes9.usr.X4_a_1) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - excludes9.usr.X5_a_1) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - excludes9.usr.X6_a_1) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - excludes9.usr.X7_a_1) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - excludes9.usr.X8_a_1) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - excludes9.usr.X9_a_1))) - (not excludes9.res.init_flag_a_1)) -) - -(define-fun - __node_init_ticket3i_0 ( - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (and - (= ticket3i.usr.p1_a_0 0) - (let - ((X1 Bool (let ((X1 Int ticket3i.res.nondet_0)) (= X1 0)))) - (and - (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) - (let - ((X2 - Bool (let - ((X2 Int ticket3i.res.nondet_2) (X3 Int ticket3i.res.nondet_1)) - (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) - (and - (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) - (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) - (let - ((X3 Bool (let ((X3 Int ticket3i.res.nondet_4)) (= X3 0)))) - (and - (= ticket3i.usr.p2_a_0 0) - (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) - (let - ((X4 - Bool (let - ((X4 Int ticket3i.res.nondet_6) - (X5 Int ticket3i.res.nondet_5)) - (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) - (let - ((X5 Bool (let ((X5 Int ticket3i.res.nondet_7)) (= X5 2)))) - (let - ((X6 Bool (let ((X6 Int ticket3i.res.nondet_8)) (= X6 0)))) - (and - (= ticket3i.usr.p3_a_0 0) - (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) - (let - ((X7 - Bool (let - ((X7 Int ticket3i.res.nondet_10) - (X8 Int ticket3i.res.nondet_9)) - (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) - (let - ((X8 Bool (let ((X8 Int ticket3i.res.nondet_11)) (= X8 2)))) - (let - ((X9 Bool (let ((X9 Int ticket3i.res.nondet_3)) (= X9 2)))) - (and - (= - ticket3i.usr.erreur_ticket3i_a_0 - (ite - (or - (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) - (>= ticket3i.usr.p3_a_0 3)) - true - false)) - ticket3i.res.init_flag_a_0))))))))))))))) -) - -(define-fun - __node_trans_ticket3i_0 ( - (ticket3i.usr.e1_a_1 Bool) - (ticket3i.usr.e2_a_1 Bool) - (ticket3i.usr.e3_a_1 Bool) - (ticket3i.usr.e4_a_1 Bool) - (ticket3i.usr.e5_a_1 Bool) - (ticket3i.usr.e6_a_1 Bool) - (ticket3i.usr.e7_a_1 Bool) - (ticket3i.usr.e8_a_1 Bool) - (ticket3i.usr.e9_a_1 Bool) - (ticket3i.usr.init_a1_a_1 Int) - (ticket3i.usr.init_a2_a_1 Int) - (ticket3i.usr.init_a3_a_1 Int) - (ticket3i.usr.init_t_a_1 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_1 Int) - (ticket3i.usr.p2_a_1 Int) - (ticket3i.usr.p3_a_1 Int) - (ticket3i.usr.t_a_1 Int) - (ticket3i.usr.s_a_1 Int) - (ticket3i.usr.a1_a_1 Int) - (ticket3i.usr.a2_a_1 Int) - (ticket3i.usr.a3_a_1 Int) - (ticket3i.usr.erreur_ticket3i_a_1 Bool) - (ticket3i.res.init_flag_a_1 Bool) - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (= ticket3i.usr.p1_a_0 2))) - (let - ((X2 Bool (= ticket3i.usr.p1_a_0 0))) - (and - (= - ticket3i.usr.a1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) - ticket3i.usr.a1_a_0)) - (let - ((X3 - Bool (and - (= ticket3i.usr.p1_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) - (and - (= - ticket3i.usr.p1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 1 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e2_a_1 - (ite X3 2 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e3_a_1 - (ite X1 0 ticket3i.usr.p1_a_0) - ticket3i.usr.p1_a_0)))) - (let - ((X4 Bool (= ticket3i.usr.p3_a_0 2))) - (let - ((X5 Bool (= ticket3i.usr.p2_a_0 2))) - (and - (= - ticket3i.usr.s_a_1 - (ite - ticket3i.usr.e3_a_1 - (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - ticket3i.usr.s_a_0)))) - (let - ((X6 Bool (= ticket3i.usr.p3_a_0 0))) - (let - ((X7 Bool (= ticket3i.usr.p2_a_0 0))) - (and - (= - ticket3i.usr.t_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e4_a_1 - (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e7_a_1 - (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - ticket3i.usr.t_a_0)))) - (= - ticket3i.usr.a2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) - ticket3i.usr.a2_a_0)) - (let - ((X8 - Bool (and - (= ticket3i.usr.p2_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) - (and - (= - ticket3i.usr.p2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 1 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e5_a_1 - (ite X8 2 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 0 ticket3i.usr.p2_a_0) - ticket3i.usr.p2_a_0)))) - (= - ticket3i.usr.a3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) - ticket3i.usr.a3_a_0)) - (let - ((X9 - Bool (and - (= ticket3i.usr.p3_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) - (and - (= - ticket3i.usr.p3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 1 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e8_a_1 - (ite X9 2 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 0 ticket3i.usr.p3_a_0) - ticket3i.usr.p3_a_0)))) - (= - ticket3i.usr.erreur_ticket3i_a_1 - (ite - (or - (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) - (>= ticket3i.usr.p3_a_1 3)) - true - false)) - (not ticket3i.res.init_flag_a_1)))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_0 - (and - (and - (and - (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) - (>= top.usr.init_a2_a_0 0)) - (>= top.usr.init_a3_a_0 0)) - (>= top.usr.init_t_a_0 0))) - (let - ((X1 Bool top.res.abs_11_a_0)) - (let - ((X2 Int top.res.abs_1_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (and (<= 0 X2) (<= X2 3)))) - (__node_init_ticket3i_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_init_excludes9_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.e9_a_1 Bool) - (top.usr.init_a1_a_1 Int) - (top.usr.init_a2_a_1 Int) - (top.usr.init_a3_a_1 Int) - (top.usr.init_t_a_1 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_1 - (and - (and - (and - (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) - (>= top.usr.init_a2_a_1 0)) - (>= top.usr.init_a3_a_1 0)) - (>= top.usr.init_t_a_1 0))) - (let - ((X1 Bool top.res.abs_11_a_1)) - (let - ((X2 Int top.res.abs_1_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (and (<= 0 X2) (<= X2 3)))) - (__node_trans_ticket3i_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.usr.init_a1_a_1 - top.usr.init_a2_a_1 - top.usr.init_a3_a_1 - top.usr.init_t_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes9_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.e9 Bool) -(declare-primed-var top.usr.init_a1 Int) -(declare-primed-var top.usr.init_a2 Int) -(declare-primed-var top.usr.init_a3 Int) -(declare-primed-var top.usr.init_t Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_10 - (and - (and - (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) - (>= top.usr.init_a3 0)) - (>= top.usr.init_t 0))) - (let - ((X1 Bool top.res.abs_11)) - (let - ((X2 Int top.res.abs_1)) - (and - (= top.usr.OK (=> X1 (and (<= 0 X2) (<= X2 3)))) - (__node_init_ticket3i_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) - (__node_init_excludes9_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.e9! Bool) - (top.usr.init_a1! Int) - (top.usr.init_a2! Int) - (top.usr.init_a3! Int) - (top.usr.init_t! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_10! - (and - (and - (and - (and top.res.abs_9! (>= top.usr.init_a1! 0)) - (>= top.usr.init_a2! 0)) - (>= top.usr.init_a3! 0)) - (>= top.usr.init_t! 0))) - (let - ((X1 Bool top.res.abs_11!)) - (let - ((X2 Int top.res.abs_1!)) - (and - (= top.usr.OK! (=> X1 (and (<= 0 X2) (<= X2 3)))) - (__node_trans_ticket3i_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.usr.init_a1! - top.usr.init_a2! - top.usr.init_a3! - top.usr.init_t! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_1! - top.res.abs_10 - top.res.abs_11 - top.res.inst_1) - (__node_trans_excludes9_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.res.abs_9! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes9_0 ((excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) excludes9.usr.X3_a_0) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) excludes9.usr.X4_a_0) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) excludes9.usr.X5_a_0) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) excludes9.usr.X6_a_0) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) excludes9.usr.X7_a_0) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) excludes9.usr.X8_a_0) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) excludes9.usr.X9_a_0))) excludes9.res.init_flag_a_0)) +(define-fun __node_trans_excludes9_0 ((excludes9.usr.X1_a_1 Bool) (excludes9.usr.X2_a_1 Bool) (excludes9.usr.X3_a_1 Bool) (excludes9.usr.X4_a_1 Bool) (excludes9.usr.X5_a_1 Bool) (excludes9.usr.X6_a_1 Bool) (excludes9.usr.X7_a_1 Bool) (excludes9.usr.X8_a_1 Bool) (excludes9.usr.X9_a_1 Bool) (excludes9.usr.excludes_a_1 Bool) (excludes9.res.init_flag_a_1 Bool) (excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) excludes9.usr.X3_a_1) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) excludes9.usr.X4_a_1) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) excludes9.usr.X5_a_1) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) excludes9.usr.X6_a_1) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) excludes9.usr.X7_a_1) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) excludes9.usr.X8_a_1) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) excludes9.usr.X9_a_1))) (not excludes9.res.init_flag_a_1))) +(define-fun __node_init_ticket3i_0 ((ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (and (= ticket3i.usr.p1_a_0 0) (let ((X1 (let ((X1 ticket3i.res.nondet_0)) (= X1 0)))) (and (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) (let ((X2 (let ((X2 ticket3i.res.nondet_2) (X3 ticket3i.res.nondet_1)) (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) (and (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) (let ((X3 (let ((X3 ticket3i.res.nondet_4)) (= X3 0)))) (and (= ticket3i.usr.p2_a_0 0) (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) (let ((X4 (let ((X4 ticket3i.res.nondet_6) (X5 ticket3i.res.nondet_5)) (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) (let ((X5 (let ((X5 ticket3i.res.nondet_7)) (= X5 2)))) (let ((X6 (let ((X6 ticket3i.res.nondet_8)) (= X6 0)))) (and (= ticket3i.usr.p3_a_0 0) (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) (let ((X7 (let ((X7 ticket3i.res.nondet_10) (X8 ticket3i.res.nondet_9)) (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) (let ((X8 (let ((X8 ticket3i.res.nondet_11)) (= X8 2)))) (let ((X9 (let ((X9 ticket3i.res.nondet_3)) (= X9 2)))) (and (= ticket3i.usr.erreur_ticket3i_a_0 (ite (or (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) (>= ticket3i.usr.p3_a_0 3)) true false)) ticket3i.res.init_flag_a_0)))))))))))))))) +(define-fun __node_trans_ticket3i_0 ((ticket3i.usr.e1_a_1 Bool) (ticket3i.usr.e2_a_1 Bool) (ticket3i.usr.e3_a_1 Bool) (ticket3i.usr.e4_a_1 Bool) (ticket3i.usr.e5_a_1 Bool) (ticket3i.usr.e6_a_1 Bool) (ticket3i.usr.e7_a_1 Bool) (ticket3i.usr.e8_a_1 Bool) (ticket3i.usr.e9_a_1 Bool) (ticket3i.usr.init_a1_a_1 Int) (ticket3i.usr.init_a2_a_1 Int) (ticket3i.usr.init_a3_a_1 Int) (ticket3i.usr.init_t_a_1 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_1 Int) (ticket3i.usr.p2_a_1 Int) (ticket3i.usr.p3_a_1 Int) (ticket3i.usr.t_a_1 Int) (ticket3i.usr.s_a_1 Int) (ticket3i.usr.a1_a_1 Int) (ticket3i.usr.a2_a_1 Int) (ticket3i.usr.a3_a_1 Int) (ticket3i.usr.erreur_ticket3i_a_1 Bool) (ticket3i.res.init_flag_a_1 Bool) (ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (let ((X1 (= ticket3i.usr.p1_a_0 2))) (let ((X2 (= ticket3i.usr.p1_a_0 0))) (and (= ticket3i.usr.a1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) ticket3i.usr.a1_a_0)) (let ((X3 (and (= ticket3i.usr.p1_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) (and (= ticket3i.usr.p1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 1 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e2_a_1 (ite X3 2 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e3_a_1 (ite X1 0 ticket3i.usr.p1_a_0) ticket3i.usr.p1_a_0)))) (let ((X4 (= ticket3i.usr.p3_a_0 2))) (let ((X5 (= ticket3i.usr.p2_a_0 2))) (and (= ticket3i.usr.s_a_1 (ite ticket3i.usr.e3_a_1 (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) ticket3i.usr.s_a_0)))) (let ((X6 (= ticket3i.usr.p3_a_0 0))) (let ((X7 (= ticket3i.usr.p2_a_0 0))) (and (= ticket3i.usr.t_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e4_a_1 (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e7_a_1 (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) ticket3i.usr.t_a_0)))) (= ticket3i.usr.a2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) ticket3i.usr.a2_a_0)) (let ((X8 (and (= ticket3i.usr.p2_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) (and (= ticket3i.usr.p2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 1 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e5_a_1 (ite X8 2 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 0 ticket3i.usr.p2_a_0) ticket3i.usr.p2_a_0)))) (= ticket3i.usr.a3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) ticket3i.usr.a3_a_0)) (let ((X9 (and (= ticket3i.usr.p3_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) (and (= ticket3i.usr.p3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 1 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e8_a_1 (ite X9 2 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 0 ticket3i.usr.p3_a_0) ticket3i.usr.p3_a_0)))) (= ticket3i.usr.erreur_ticket3i_a_1 (ite (or (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) (>= ticket3i.usr.p3_a_1 3)) true false)) (not ticket3i.res.init_flag_a_1))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_0 (and (and (and (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) (>= top.usr.init_a2_a_0 0)) (>= top.usr.init_a3_a_0 0)) (>= top.usr.init_t_a_0 0))) (let ((X1 top.res.abs_11_a_0)) (let ((X2 top.res.abs_1_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (<= 0 X2) (<= X2 3)))) (__node_init_ticket3i_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_init_excludes9_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.e9_a_1 Bool) (top.usr.init_a1_a_1 Int) (top.usr.init_a2_a_1 Int) (top.usr.init_a3_a_1 Int) (top.usr.init_t_a_1 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_1 (and (and (and (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) (>= top.usr.init_a2_a_1 0)) (>= top.usr.init_a3_a_1 0)) (>= top.usr.init_t_a_1 0))) (let ((X1 top.res.abs_11_a_1)) (let ((X2 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (<= 0 X2) (<= X2 3)))) (__node_trans_ticket3i_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.usr.init_a1_a_1 top.usr.init_a2_a_1 top.usr.init_a3_a_1 top.usr.init_t_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_trans_excludes9_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_10 (and (and (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) (>= top.usr.init_a3 0)) (>= top.usr.init_t 0))) (let ((X1 top.res.abs_11)) (let ((X2 top.res.abs_1)) (and (= top.usr.OK (=> X1 (and (<= 0 X2) (<= X2 3)))) (__node_init_ticket3i_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_init_excludes9_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.e9! Bool) (top.usr.init_a1! Int) (top.usr.init_a2! Int) (top.usr.init_a3! Int) (top.usr.init_t! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_10! (and (and (and (and top.res.abs_9! (>= top.usr.init_a1! 0)) (>= top.usr.init_a2! 0)) (>= top.usr.init_a3! 0)) (>= top.usr.init_t! 0))) (let ((X1 top.res.abs_11!)) (let ((X2 top.res.abs_1!)) (and (= top.usr.OK! (=> X1 (and (<= 0 X2) (<= X2 3)))) (__node_trans_ticket3i_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.usr.init_a1! top.usr.init_a2! top.usr.init_a3! top.usr.init_t! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_1! top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_trans_excludes9_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.res.abs_9! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ticket3i_6.sl b/benchmarks/LIA/Lustre/ticket3i_6.sl index 6819da9..9ec008b 100644 --- a/benchmarks/LIA/Lustre/ticket3i_6.sl +++ b/benchmarks/LIA/Lustre/ticket3i_6.sl @@ -1,1385 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes9_0 ( - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - excludes9.usr.X3_a_0) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - excludes9.usr.X4_a_0) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - excludes9.usr.X5_a_0) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - excludes9.usr.X6_a_0) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - excludes9.usr.X7_a_0) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - excludes9.usr.X8_a_0) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - excludes9.usr.X9_a_0))) - excludes9.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes9_0 ( - (excludes9.usr.X1_a_1 Bool) - (excludes9.usr.X2_a_1 Bool) - (excludes9.usr.X3_a_1 Bool) - (excludes9.usr.X4_a_1 Bool) - (excludes9.usr.X5_a_1 Bool) - (excludes9.usr.X6_a_1 Bool) - (excludes9.usr.X7_a_1 Bool) - (excludes9.usr.X8_a_1 Bool) - (excludes9.usr.X9_a_1 Bool) - (excludes9.usr.excludes_a_1 Bool) - (excludes9.res.init_flag_a_1 Bool) - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - excludes9.usr.X3_a_1) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - excludes9.usr.X4_a_1) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - excludes9.usr.X5_a_1) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - excludes9.usr.X6_a_1) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - excludes9.usr.X7_a_1) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - excludes9.usr.X8_a_1) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - excludes9.usr.X9_a_1))) - (not excludes9.res.init_flag_a_1)) -) - -(define-fun - __node_init_ticket3i_0 ( - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (and - (= ticket3i.usr.p1_a_0 0) - (let - ((X1 Bool (let ((X1 Int ticket3i.res.nondet_0)) (= X1 0)))) - (and - (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) - (let - ((X2 - Bool (let - ((X2 Int ticket3i.res.nondet_2) (X3 Int ticket3i.res.nondet_1)) - (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) - (and - (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) - (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) - (let - ((X3 Bool (let ((X3 Int ticket3i.res.nondet_4)) (= X3 0)))) - (and - (= ticket3i.usr.p2_a_0 0) - (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) - (let - ((X4 - Bool (let - ((X4 Int ticket3i.res.nondet_6) - (X5 Int ticket3i.res.nondet_5)) - (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) - (let - ((X5 Bool (let ((X5 Int ticket3i.res.nondet_7)) (= X5 2)))) - (let - ((X6 Bool (let ((X6 Int ticket3i.res.nondet_8)) (= X6 0)))) - (and - (= ticket3i.usr.p3_a_0 0) - (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) - (let - ((X7 - Bool (let - ((X7 Int ticket3i.res.nondet_10) - (X8 Int ticket3i.res.nondet_9)) - (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) - (let - ((X8 Bool (let ((X8 Int ticket3i.res.nondet_11)) (= X8 2)))) - (let - ((X9 Bool (let ((X9 Int ticket3i.res.nondet_3)) (= X9 2)))) - (and - (= - ticket3i.usr.erreur_ticket3i_a_0 - (ite - (or - (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) - (>= ticket3i.usr.p3_a_0 3)) - true - false)) - ticket3i.res.init_flag_a_0))))))))))))))) -) - -(define-fun - __node_trans_ticket3i_0 ( - (ticket3i.usr.e1_a_1 Bool) - (ticket3i.usr.e2_a_1 Bool) - (ticket3i.usr.e3_a_1 Bool) - (ticket3i.usr.e4_a_1 Bool) - (ticket3i.usr.e5_a_1 Bool) - (ticket3i.usr.e6_a_1 Bool) - (ticket3i.usr.e7_a_1 Bool) - (ticket3i.usr.e8_a_1 Bool) - (ticket3i.usr.e9_a_1 Bool) - (ticket3i.usr.init_a1_a_1 Int) - (ticket3i.usr.init_a2_a_1 Int) - (ticket3i.usr.init_a3_a_1 Int) - (ticket3i.usr.init_t_a_1 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_1 Int) - (ticket3i.usr.p2_a_1 Int) - (ticket3i.usr.p3_a_1 Int) - (ticket3i.usr.t_a_1 Int) - (ticket3i.usr.s_a_1 Int) - (ticket3i.usr.a1_a_1 Int) - (ticket3i.usr.a2_a_1 Int) - (ticket3i.usr.a3_a_1 Int) - (ticket3i.usr.erreur_ticket3i_a_1 Bool) - (ticket3i.res.init_flag_a_1 Bool) - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (= ticket3i.usr.p1_a_0 2))) - (let - ((X2 Bool (= ticket3i.usr.p1_a_0 0))) - (and - (= - ticket3i.usr.a1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) - ticket3i.usr.a1_a_0)) - (let - ((X3 - Bool (and - (= ticket3i.usr.p1_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) - (and - (= - ticket3i.usr.p1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 1 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e2_a_1 - (ite X3 2 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e3_a_1 - (ite X1 0 ticket3i.usr.p1_a_0) - ticket3i.usr.p1_a_0)))) - (let - ((X4 Bool (= ticket3i.usr.p3_a_0 2))) - (let - ((X5 Bool (= ticket3i.usr.p2_a_0 2))) - (and - (= - ticket3i.usr.s_a_1 - (ite - ticket3i.usr.e3_a_1 - (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - ticket3i.usr.s_a_0)))) - (let - ((X6 Bool (= ticket3i.usr.p3_a_0 0))) - (let - ((X7 Bool (= ticket3i.usr.p2_a_0 0))) - (and - (= - ticket3i.usr.t_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e4_a_1 - (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e7_a_1 - (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - ticket3i.usr.t_a_0)))) - (= - ticket3i.usr.a2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) - ticket3i.usr.a2_a_0)) - (let - ((X8 - Bool (and - (= ticket3i.usr.p2_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) - (and - (= - ticket3i.usr.p2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 1 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e5_a_1 - (ite X8 2 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 0 ticket3i.usr.p2_a_0) - ticket3i.usr.p2_a_0)))) - (= - ticket3i.usr.a3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) - ticket3i.usr.a3_a_0)) - (let - ((X9 - Bool (and - (= ticket3i.usr.p3_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) - (and - (= - ticket3i.usr.p3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 1 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e8_a_1 - (ite X9 2 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 0 ticket3i.usr.p3_a_0) - ticket3i.usr.p3_a_0)))) - (= - ticket3i.usr.erreur_ticket3i_a_1 - (ite - (or - (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) - (>= ticket3i.usr.p3_a_1 3)) - true - false)) - (not ticket3i.res.init_flag_a_1)))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_0 - (and - (and - (and - (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) - (>= top.usr.init_a2_a_0 0)) - (>= top.usr.init_a3_a_0 0)) - (>= top.usr.init_t_a_0 0))) - (let - ((X1 Bool top.res.abs_11_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (and (<= 0 X2) (<= X2 3)))) - (__node_init_ticket3i_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_init_excludes9_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.e9_a_1 Bool) - (top.usr.init_a1_a_1 Int) - (top.usr.init_a2_a_1 Int) - (top.usr.init_a3_a_1 Int) - (top.usr.init_t_a_1 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_1 - (and - (and - (and - (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) - (>= top.usr.init_a2_a_1 0)) - (>= top.usr.init_a3_a_1 0)) - (>= top.usr.init_t_a_1 0))) - (let - ((X1 Bool top.res.abs_11_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (and (<= 0 X2) (<= X2 3)))) - (__node_trans_ticket3i_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.usr.init_a1_a_1 - top.usr.init_a2_a_1 - top.usr.init_a3_a_1 - top.usr.init_t_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes9_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.e9 Bool) -(declare-primed-var top.usr.init_a1 Int) -(declare-primed-var top.usr.init_a2 Int) -(declare-primed-var top.usr.init_a3 Int) -(declare-primed-var top.usr.init_t Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_10 - (and - (and - (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) - (>= top.usr.init_a3 0)) - (>= top.usr.init_t 0))) - (let - ((X1 Bool top.res.abs_11)) - (let - ((X2 Int top.res.abs_2)) - (and - (= top.usr.OK (=> X1 (and (<= 0 X2) (<= X2 3)))) - (__node_init_ticket3i_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) - (__node_init_excludes9_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.e9! Bool) - (top.usr.init_a1! Int) - (top.usr.init_a2! Int) - (top.usr.init_a3! Int) - (top.usr.init_t! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_10! - (and - (and - (and - (and top.res.abs_9! (>= top.usr.init_a1! 0)) - (>= top.usr.init_a2! 0)) - (>= top.usr.init_a3! 0)) - (>= top.usr.init_t! 0))) - (let - ((X1 Bool top.res.abs_11!)) - (let - ((X2 Int top.res.abs_2!)) - (and - (= top.usr.OK! (=> X1 (and (<= 0 X2) (<= X2 3)))) - (__node_trans_ticket3i_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.usr.init_a1! - top.usr.init_a2! - top.usr.init_a3! - top.usr.init_t! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_1! - top.res.abs_10 - top.res.abs_11 - top.res.inst_1) - (__node_trans_excludes9_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.res.abs_9! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes9_0 ((excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) excludes9.usr.X3_a_0) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) excludes9.usr.X4_a_0) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) excludes9.usr.X5_a_0) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) excludes9.usr.X6_a_0) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) excludes9.usr.X7_a_0) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) excludes9.usr.X8_a_0) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) excludes9.usr.X9_a_0))) excludes9.res.init_flag_a_0)) +(define-fun __node_trans_excludes9_0 ((excludes9.usr.X1_a_1 Bool) (excludes9.usr.X2_a_1 Bool) (excludes9.usr.X3_a_1 Bool) (excludes9.usr.X4_a_1 Bool) (excludes9.usr.X5_a_1 Bool) (excludes9.usr.X6_a_1 Bool) (excludes9.usr.X7_a_1 Bool) (excludes9.usr.X8_a_1 Bool) (excludes9.usr.X9_a_1 Bool) (excludes9.usr.excludes_a_1 Bool) (excludes9.res.init_flag_a_1 Bool) (excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) excludes9.usr.X3_a_1) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) excludes9.usr.X4_a_1) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) excludes9.usr.X5_a_1) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) excludes9.usr.X6_a_1) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) excludes9.usr.X7_a_1) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) excludes9.usr.X8_a_1) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) excludes9.usr.X9_a_1))) (not excludes9.res.init_flag_a_1))) +(define-fun __node_init_ticket3i_0 ((ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (and (= ticket3i.usr.p1_a_0 0) (let ((X1 (let ((X1 ticket3i.res.nondet_0)) (= X1 0)))) (and (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) (let ((X2 (let ((X2 ticket3i.res.nondet_2) (X3 ticket3i.res.nondet_1)) (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) (and (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) (let ((X3 (let ((X3 ticket3i.res.nondet_4)) (= X3 0)))) (and (= ticket3i.usr.p2_a_0 0) (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) (let ((X4 (let ((X4 ticket3i.res.nondet_6) (X5 ticket3i.res.nondet_5)) (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) (let ((X5 (let ((X5 ticket3i.res.nondet_7)) (= X5 2)))) (let ((X6 (let ((X6 ticket3i.res.nondet_8)) (= X6 0)))) (and (= ticket3i.usr.p3_a_0 0) (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) (let ((X7 (let ((X7 ticket3i.res.nondet_10) (X8 ticket3i.res.nondet_9)) (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) (let ((X8 (let ((X8 ticket3i.res.nondet_11)) (= X8 2)))) (let ((X9 (let ((X9 ticket3i.res.nondet_3)) (= X9 2)))) (and (= ticket3i.usr.erreur_ticket3i_a_0 (ite (or (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) (>= ticket3i.usr.p3_a_0 3)) true false)) ticket3i.res.init_flag_a_0)))))))))))))))) +(define-fun __node_trans_ticket3i_0 ((ticket3i.usr.e1_a_1 Bool) (ticket3i.usr.e2_a_1 Bool) (ticket3i.usr.e3_a_1 Bool) (ticket3i.usr.e4_a_1 Bool) (ticket3i.usr.e5_a_1 Bool) (ticket3i.usr.e6_a_1 Bool) (ticket3i.usr.e7_a_1 Bool) (ticket3i.usr.e8_a_1 Bool) (ticket3i.usr.e9_a_1 Bool) (ticket3i.usr.init_a1_a_1 Int) (ticket3i.usr.init_a2_a_1 Int) (ticket3i.usr.init_a3_a_1 Int) (ticket3i.usr.init_t_a_1 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_1 Int) (ticket3i.usr.p2_a_1 Int) (ticket3i.usr.p3_a_1 Int) (ticket3i.usr.t_a_1 Int) (ticket3i.usr.s_a_1 Int) (ticket3i.usr.a1_a_1 Int) (ticket3i.usr.a2_a_1 Int) (ticket3i.usr.a3_a_1 Int) (ticket3i.usr.erreur_ticket3i_a_1 Bool) (ticket3i.res.init_flag_a_1 Bool) (ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (let ((X1 (= ticket3i.usr.p1_a_0 2))) (let ((X2 (= ticket3i.usr.p1_a_0 0))) (and (= ticket3i.usr.a1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) ticket3i.usr.a1_a_0)) (let ((X3 (and (= ticket3i.usr.p1_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) (and (= ticket3i.usr.p1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 1 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e2_a_1 (ite X3 2 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e3_a_1 (ite X1 0 ticket3i.usr.p1_a_0) ticket3i.usr.p1_a_0)))) (let ((X4 (= ticket3i.usr.p3_a_0 2))) (let ((X5 (= ticket3i.usr.p2_a_0 2))) (and (= ticket3i.usr.s_a_1 (ite ticket3i.usr.e3_a_1 (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) ticket3i.usr.s_a_0)))) (let ((X6 (= ticket3i.usr.p3_a_0 0))) (let ((X7 (= ticket3i.usr.p2_a_0 0))) (and (= ticket3i.usr.t_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e4_a_1 (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e7_a_1 (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) ticket3i.usr.t_a_0)))) (= ticket3i.usr.a2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) ticket3i.usr.a2_a_0)) (let ((X8 (and (= ticket3i.usr.p2_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) (and (= ticket3i.usr.p2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 1 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e5_a_1 (ite X8 2 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 0 ticket3i.usr.p2_a_0) ticket3i.usr.p2_a_0)))) (= ticket3i.usr.a3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) ticket3i.usr.a3_a_0)) (let ((X9 (and (= ticket3i.usr.p3_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) (and (= ticket3i.usr.p3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 1 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e8_a_1 (ite X9 2 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 0 ticket3i.usr.p3_a_0) ticket3i.usr.p3_a_0)))) (= ticket3i.usr.erreur_ticket3i_a_1 (ite (or (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) (>= ticket3i.usr.p3_a_1 3)) true false)) (not ticket3i.res.init_flag_a_1))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_0 (and (and (and (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) (>= top.usr.init_a2_a_0 0)) (>= top.usr.init_a3_a_0 0)) (>= top.usr.init_t_a_0 0))) (let ((X1 top.res.abs_11_a_0)) (let ((X2 top.res.abs_2_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (<= 0 X2) (<= X2 3)))) (__node_init_ticket3i_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_init_excludes9_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.e9_a_1 Bool) (top.usr.init_a1_a_1 Int) (top.usr.init_a2_a_1 Int) (top.usr.init_a3_a_1 Int) (top.usr.init_t_a_1 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_1 (and (and (and (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) (>= top.usr.init_a2_a_1 0)) (>= top.usr.init_a3_a_1 0)) (>= top.usr.init_t_a_1 0))) (let ((X1 top.res.abs_11_a_1)) (let ((X2 top.res.abs_2_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (<= 0 X2) (<= X2 3)))) (__node_trans_ticket3i_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.usr.init_a1_a_1 top.usr.init_a2_a_1 top.usr.init_a3_a_1 top.usr.init_t_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_trans_excludes9_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_10 (and (and (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) (>= top.usr.init_a3 0)) (>= top.usr.init_t 0))) (let ((X1 top.res.abs_11)) (let ((X2 top.res.abs_2)) (and (= top.usr.OK (=> X1 (and (<= 0 X2) (<= X2 3)))) (__node_init_ticket3i_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_init_excludes9_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.e9! Bool) (top.usr.init_a1! Int) (top.usr.init_a2! Int) (top.usr.init_a3! Int) (top.usr.init_t! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_10! (and (and (and (and top.res.abs_9! (>= top.usr.init_a1! 0)) (>= top.usr.init_a2! 0)) (>= top.usr.init_a3! 0)) (>= top.usr.init_t! 0))) (let ((X1 top.res.abs_11!)) (let ((X2 top.res.abs_2!)) (and (= top.usr.OK! (=> X1 (and (<= 0 X2) (<= X2 3)))) (__node_trans_ticket3i_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.usr.init_a1! top.usr.init_a2! top.usr.init_a3! top.usr.init_t! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_1! top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_trans_excludes9_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.res.abs_9! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ticket3i_6_e7_1096_e7_2688.sl b/benchmarks/LIA/Lustre/ticket3i_6_e7_1096_e7_2688.sl index 59ffcdb..3e93c44 100644 --- a/benchmarks/LIA/Lustre/ticket3i_6_e7_1096_e7_2688.sl +++ b/benchmarks/LIA/Lustre/ticket3i_6_e7_1096_e7_2688.sl @@ -1,1385 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes9_0 ( - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (not excludes9.usr.X1_a_0) - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - excludes9.usr.X3_a_0) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - excludes9.usr.X4_a_0) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - excludes9.usr.X5_a_0) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - excludes9.usr.X6_a_0) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - excludes9.usr.X7_a_0) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - excludes9.usr.X8_a_0) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - excludes9.usr.X9_a_0))) - excludes9.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes9_0 ( - (excludes9.usr.X1_a_1 Bool) - (excludes9.usr.X2_a_1 Bool) - (excludes9.usr.X3_a_1 Bool) - (excludes9.usr.X4_a_1 Bool) - (excludes9.usr.X5_a_1 Bool) - (excludes9.usr.X6_a_1 Bool) - (excludes9.usr.X7_a_1 Bool) - (excludes9.usr.X8_a_1 Bool) - (excludes9.usr.X9_a_1 Bool) - (excludes9.usr.excludes_a_1 Bool) - (excludes9.res.init_flag_a_1 Bool) - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (or - (not excludes9.usr.X1_a_1) - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - excludes9.usr.X3_a_1) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - excludes9.usr.X4_a_1) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - excludes9.usr.X5_a_1) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - excludes9.usr.X6_a_1) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - excludes9.usr.X7_a_1) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - excludes9.usr.X8_a_1) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - excludes9.usr.X9_a_1))) - (not excludes9.res.init_flag_a_1)) -) - -(define-fun - __node_init_ticket3i_0 ( - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (and - (= ticket3i.usr.p1_a_0 0) - (let - ((X1 Bool (let ((X1 Int ticket3i.res.nondet_0)) (= X1 0)))) - (and - (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) - (let - ((X2 - Bool (let - ((X2 Int ticket3i.res.nondet_2) (X3 Int ticket3i.res.nondet_1)) - (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) - (and - (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) - (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) - (let - ((X3 Bool (let ((X3 Int ticket3i.res.nondet_4)) (= X3 0)))) - (and - (= ticket3i.usr.p2_a_0 0) - (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) - (let - ((X4 - Bool (let - ((X4 Int ticket3i.res.nondet_6) - (X5 Int ticket3i.res.nondet_5)) - (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) - (let - ((X5 Bool (let ((X5 Int ticket3i.res.nondet_7)) (= X5 2)))) - (let - ((X6 Bool (let ((X6 Int ticket3i.res.nondet_8)) (= X6 0)))) - (and - (= ticket3i.usr.p3_a_0 0) - (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) - (let - ((X7 - Bool (let - ((X7 Int ticket3i.res.nondet_10) - (X8 Int ticket3i.res.nondet_9)) - (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) - (let - ((X8 Bool (let ((X8 Int ticket3i.res.nondet_11)) (= X8 2)))) - (let - ((X9 Bool (let ((X9 Int ticket3i.res.nondet_3)) (= X9 2)))) - (and - (= - ticket3i.usr.erreur_ticket3i_a_0 - (ite - (or - (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) - (>= ticket3i.usr.p3_a_0 3)) - true - false)) - ticket3i.res.init_flag_a_0))))))))))))))) -) - -(define-fun - __node_trans_ticket3i_0 ( - (ticket3i.usr.e1_a_1 Bool) - (ticket3i.usr.e2_a_1 Bool) - (ticket3i.usr.e3_a_1 Bool) - (ticket3i.usr.e4_a_1 Bool) - (ticket3i.usr.e5_a_1 Bool) - (ticket3i.usr.e6_a_1 Bool) - (ticket3i.usr.e7_a_1 Bool) - (ticket3i.usr.e8_a_1 Bool) - (ticket3i.usr.e9_a_1 Bool) - (ticket3i.usr.init_a1_a_1 Int) - (ticket3i.usr.init_a2_a_1 Int) - (ticket3i.usr.init_a3_a_1 Int) - (ticket3i.usr.init_t_a_1 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_1 Int) - (ticket3i.usr.p2_a_1 Int) - (ticket3i.usr.p3_a_1 Int) - (ticket3i.usr.t_a_1 Int) - (ticket3i.usr.s_a_1 Int) - (ticket3i.usr.a1_a_1 Int) - (ticket3i.usr.a2_a_1 Int) - (ticket3i.usr.a3_a_1 Int) - (ticket3i.usr.erreur_ticket3i_a_1 Bool) - (ticket3i.res.init_flag_a_1 Bool) - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (= ticket3i.usr.p1_a_0 2))) - (let - ((X2 Bool (= ticket3i.usr.p1_a_0 0))) - (and - (= - ticket3i.usr.a1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) - ticket3i.usr.a1_a_0)) - (let - ((X3 - Bool (and - (= ticket3i.usr.p1_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) - (and - (= - ticket3i.usr.p1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 1 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e2_a_1 - (ite X3 2 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e3_a_1 - (ite X1 0 ticket3i.usr.p1_a_0) - ticket3i.usr.p1_a_0)))) - (let - ((X4 Bool (= ticket3i.usr.p3_a_0 2))) - (let - ((X5 Bool (= ticket3i.usr.p2_a_0 2))) - (and - (= - ticket3i.usr.s_a_1 - (ite - ticket3i.usr.e3_a_1 - (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - ticket3i.usr.s_a_0)))) - (let - ((X6 Bool (= ticket3i.usr.p3_a_0 0))) - (let - ((X7 Bool (= ticket3i.usr.p2_a_0 0))) - (and - (= - ticket3i.usr.t_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e4_a_1 - (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e7_a_1 - (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - ticket3i.usr.t_a_0)))) - (= - ticket3i.usr.a2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) - ticket3i.usr.a2_a_0)) - (let - ((X8 - Bool (and - (= ticket3i.usr.p2_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) - (and - (= - ticket3i.usr.p2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 1 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e5_a_1 - (ite X8 2 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 0 ticket3i.usr.p2_a_0) - ticket3i.usr.p2_a_0)))) - (= - ticket3i.usr.a3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) - ticket3i.usr.a3_a_0)) - (let - ((X9 - Bool (and - (= ticket3i.usr.p3_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) - (and - (= - ticket3i.usr.p3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 1 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e8_a_1 - (ite X9 2 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 0 ticket3i.usr.p3_a_0) - ticket3i.usr.p3_a_0)))) - (= - ticket3i.usr.erreur_ticket3i_a_1 - (ite - (or - (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) - (>= ticket3i.usr.p3_a_1 3)) - true - false)) - (not ticket3i.res.init_flag_a_1)))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_0 - (and - (and - (and - (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) - (>= top.usr.init_a2_a_0 0)) - (>= top.usr.init_a3_a_0 0)) - (>= top.usr.init_t_a_0 0))) - (let - ((X1 Bool top.res.abs_11_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (and (<= 0 X2) (<= X2 3)))) - (__node_init_ticket3i_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_init_excludes9_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.e9_a_1 Bool) - (top.usr.init_a1_a_1 Int) - (top.usr.init_a2_a_1 Int) - (top.usr.init_a3_a_1 Int) - (top.usr.init_t_a_1 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_1 - (and - (and - (and - (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) - (>= top.usr.init_a2_a_1 0)) - (>= top.usr.init_a3_a_1 0)) - (>= top.usr.init_t_a_1 0))) - (let - ((X1 Bool top.res.abs_11_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (and (<= 0 X2) (<= X2 3)))) - (__node_trans_ticket3i_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.usr.init_a1_a_1 - top.usr.init_a2_a_1 - top.usr.init_a3_a_1 - top.usr.init_t_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes9_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.e9 Bool) -(declare-primed-var top.usr.init_a1 Int) -(declare-primed-var top.usr.init_a2 Int) -(declare-primed-var top.usr.init_a3 Int) -(declare-primed-var top.usr.init_t Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_10 - (and - (and - (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) - (>= top.usr.init_a3 0)) - (>= top.usr.init_t 0))) - (let - ((X1 Bool top.res.abs_11)) - (let - ((X2 Int top.res.abs_2)) - (and - (= top.usr.OK (=> X1 (and (<= 0 X2) (<= X2 3)))) - (__node_init_ticket3i_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) - (__node_init_excludes9_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.e9! Bool) - (top.usr.init_a1! Int) - (top.usr.init_a2! Int) - (top.usr.init_a3! Int) - (top.usr.init_t! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_10! - (and - (and - (and - (and top.res.abs_9! (>= top.usr.init_a1! 0)) - (>= top.usr.init_a2! 0)) - (>= top.usr.init_a3! 0)) - (>= top.usr.init_t! 0))) - (let - ((X1 Bool top.res.abs_11!)) - (let - ((X2 Int top.res.abs_2!)) - (and - (= top.usr.OK! (=> X1 (and (<= 0 X2) (<= X2 3)))) - (__node_trans_ticket3i_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.usr.init_a1! - top.usr.init_a2! - top.usr.init_a3! - top.usr.init_t! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_1! - top.res.abs_10 - top.res.abs_11 - top.res.inst_1) - (__node_trans_excludes9_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.res.abs_9! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!))))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes9_0 ((excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (or (not excludes9.usr.X1_a_0) (and (and (and (and (and (and (and (not excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) excludes9.usr.X3_a_0) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) excludes9.usr.X4_a_0) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) excludes9.usr.X5_a_0) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) excludes9.usr.X6_a_0) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) excludes9.usr.X7_a_0) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) excludes9.usr.X8_a_0) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) excludes9.usr.X9_a_0))) excludes9.res.init_flag_a_0)) +(define-fun __node_trans_excludes9_0 ((excludes9.usr.X1_a_1 Bool) (excludes9.usr.X2_a_1 Bool) (excludes9.usr.X3_a_1 Bool) (excludes9.usr.X4_a_1 Bool) (excludes9.usr.X5_a_1 Bool) (excludes9.usr.X6_a_1 Bool) (excludes9.usr.X7_a_1 Bool) (excludes9.usr.X8_a_1 Bool) (excludes9.usr.X9_a_1 Bool) (excludes9.usr.excludes_a_1 Bool) (excludes9.res.init_flag_a_1 Bool) (excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (or (not excludes9.usr.X1_a_1) (and (and (and (and (and (and (and (not excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) excludes9.usr.X3_a_1) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) excludes9.usr.X4_a_1) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) excludes9.usr.X5_a_1) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) excludes9.usr.X6_a_1) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) excludes9.usr.X7_a_1) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) excludes9.usr.X8_a_1) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) excludes9.usr.X9_a_1))) (not excludes9.res.init_flag_a_1))) +(define-fun __node_init_ticket3i_0 ((ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (and (= ticket3i.usr.p1_a_0 0) (let ((X1 (let ((X1 ticket3i.res.nondet_0)) (= X1 0)))) (and (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) (let ((X2 (let ((X2 ticket3i.res.nondet_2) (X3 ticket3i.res.nondet_1)) (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) (and (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) (let ((X3 (let ((X3 ticket3i.res.nondet_4)) (= X3 0)))) (and (= ticket3i.usr.p2_a_0 0) (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) (let ((X4 (let ((X4 ticket3i.res.nondet_6) (X5 ticket3i.res.nondet_5)) (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) (let ((X5 (let ((X5 ticket3i.res.nondet_7)) (= X5 2)))) (let ((X6 (let ((X6 ticket3i.res.nondet_8)) (= X6 0)))) (and (= ticket3i.usr.p3_a_0 0) (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) (let ((X7 (let ((X7 ticket3i.res.nondet_10) (X8 ticket3i.res.nondet_9)) (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) (let ((X8 (let ((X8 ticket3i.res.nondet_11)) (= X8 2)))) (let ((X9 (let ((X9 ticket3i.res.nondet_3)) (= X9 2)))) (and (= ticket3i.usr.erreur_ticket3i_a_0 (ite (or (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) (>= ticket3i.usr.p3_a_0 3)) true false)) ticket3i.res.init_flag_a_0)))))))))))))))) +(define-fun __node_trans_ticket3i_0 ((ticket3i.usr.e1_a_1 Bool) (ticket3i.usr.e2_a_1 Bool) (ticket3i.usr.e3_a_1 Bool) (ticket3i.usr.e4_a_1 Bool) (ticket3i.usr.e5_a_1 Bool) (ticket3i.usr.e6_a_1 Bool) (ticket3i.usr.e7_a_1 Bool) (ticket3i.usr.e8_a_1 Bool) (ticket3i.usr.e9_a_1 Bool) (ticket3i.usr.init_a1_a_1 Int) (ticket3i.usr.init_a2_a_1 Int) (ticket3i.usr.init_a3_a_1 Int) (ticket3i.usr.init_t_a_1 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_1 Int) (ticket3i.usr.p2_a_1 Int) (ticket3i.usr.p3_a_1 Int) (ticket3i.usr.t_a_1 Int) (ticket3i.usr.s_a_1 Int) (ticket3i.usr.a1_a_1 Int) (ticket3i.usr.a2_a_1 Int) (ticket3i.usr.a3_a_1 Int) (ticket3i.usr.erreur_ticket3i_a_1 Bool) (ticket3i.res.init_flag_a_1 Bool) (ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (let ((X1 (= ticket3i.usr.p1_a_0 2))) (let ((X2 (= ticket3i.usr.p1_a_0 0))) (and (= ticket3i.usr.a1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) ticket3i.usr.a1_a_0)) (let ((X3 (and (= ticket3i.usr.p1_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) (and (= ticket3i.usr.p1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 1 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e2_a_1 (ite X3 2 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e3_a_1 (ite X1 0 ticket3i.usr.p1_a_0) ticket3i.usr.p1_a_0)))) (let ((X4 (= ticket3i.usr.p3_a_0 2))) (let ((X5 (= ticket3i.usr.p2_a_0 2))) (and (= ticket3i.usr.s_a_1 (ite ticket3i.usr.e3_a_1 (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) ticket3i.usr.s_a_0)))) (let ((X6 (= ticket3i.usr.p3_a_0 0))) (let ((X7 (= ticket3i.usr.p2_a_0 0))) (and (= ticket3i.usr.t_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e4_a_1 (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e7_a_1 (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) ticket3i.usr.t_a_0)))) (= ticket3i.usr.a2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) ticket3i.usr.a2_a_0)) (let ((X8 (and (= ticket3i.usr.p2_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) (and (= ticket3i.usr.p2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 1 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e5_a_1 (ite X8 2 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 0 ticket3i.usr.p2_a_0) ticket3i.usr.p2_a_0)))) (= ticket3i.usr.a3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) ticket3i.usr.a3_a_0)) (let ((X9 (and (= ticket3i.usr.p3_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) (and (= ticket3i.usr.p3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 1 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e8_a_1 (ite X9 2 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 0 ticket3i.usr.p3_a_0) ticket3i.usr.p3_a_0)))) (= ticket3i.usr.erreur_ticket3i_a_1 (ite (or (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) (>= ticket3i.usr.p3_a_1 3)) true false)) (not ticket3i.res.init_flag_a_1))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_0 (and (and (and (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) (>= top.usr.init_a2_a_0 0)) (>= top.usr.init_a3_a_0 0)) (>= top.usr.init_t_a_0 0))) (let ((X1 top.res.abs_11_a_0)) (let ((X2 top.res.abs_2_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (<= 0 X2) (<= X2 3)))) (__node_init_ticket3i_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_init_excludes9_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.e9_a_1 Bool) (top.usr.init_a1_a_1 Int) (top.usr.init_a2_a_1 Int) (top.usr.init_a3_a_1 Int) (top.usr.init_t_a_1 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_1 (and (and (and (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) (>= top.usr.init_a2_a_1 0)) (>= top.usr.init_a3_a_1 0)) (>= top.usr.init_t_a_1 0))) (let ((X1 top.res.abs_11_a_1)) (let ((X2 top.res.abs_2_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (<= 0 X2) (<= X2 3)))) (__node_trans_ticket3i_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.usr.init_a1_a_1 top.usr.init_a2_a_1 top.usr.init_a3_a_1 top.usr.init_t_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_trans_excludes9_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_10 (and (and (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) (>= top.usr.init_a3 0)) (>= top.usr.init_t 0))) (let ((X1 top.res.abs_11)) (let ((X2 top.res.abs_2)) (and (= top.usr.OK (=> X1 (and (<= 0 X2) (<= X2 3)))) (__node_init_ticket3i_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_init_excludes9_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.e9! Bool) (top.usr.init_a1! Int) (top.usr.init_a2! Int) (top.usr.init_a3! Int) (top.usr.init_t! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_10! (and (and (and (and top.res.abs_9! (>= top.usr.init_a1! 0)) (>= top.usr.init_a2! 0)) (>= top.usr.init_a3! 0)) (>= top.usr.init_t! 0))) (let ((X1 top.res.abs_11!)) (let ((X2 top.res.abs_2!)) (and (= top.usr.OK! (=> X1 (and (<= 0 X2) (<= X2 3)))) (__node_trans_ticket3i_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.usr.init_a1! top.usr.init_a2! top.usr.init_a3! top.usr.init_t! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_1! top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_trans_excludes9_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.res.abs_9! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ticket3i_7.sl b/benchmarks/LIA/Lustre/ticket3i_7.sl index 7b18d34..5257618 100644 --- a/benchmarks/LIA/Lustre/ticket3i_7.sl +++ b/benchmarks/LIA/Lustre/ticket3i_7.sl @@ -1,1441 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes9_0 ( - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - excludes9.usr.X3_a_0) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - excludes9.usr.X4_a_0) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - excludes9.usr.X5_a_0) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - excludes9.usr.X6_a_0) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - excludes9.usr.X7_a_0) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - excludes9.usr.X8_a_0) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - excludes9.usr.X9_a_0))) - excludes9.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes9_0 ( - (excludes9.usr.X1_a_1 Bool) - (excludes9.usr.X2_a_1 Bool) - (excludes9.usr.X3_a_1 Bool) - (excludes9.usr.X4_a_1 Bool) - (excludes9.usr.X5_a_1 Bool) - (excludes9.usr.X6_a_1 Bool) - (excludes9.usr.X7_a_1 Bool) - (excludes9.usr.X8_a_1 Bool) - (excludes9.usr.X9_a_1 Bool) - (excludes9.usr.excludes_a_1 Bool) - (excludes9.res.init_flag_a_1 Bool) - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - excludes9.usr.X3_a_1) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - excludes9.usr.X4_a_1) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - excludes9.usr.X5_a_1) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - excludes9.usr.X6_a_1) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - excludes9.usr.X7_a_1) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - excludes9.usr.X8_a_1) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - excludes9.usr.X9_a_1))) - (not excludes9.res.init_flag_a_1)) -) - -(define-fun - __node_init_ticket3i_0 ( - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (and - (= ticket3i.usr.p1_a_0 0) - (let - ((X1 Bool (let ((X1 Int ticket3i.res.nondet_0)) (= X1 0)))) - (and - (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) - (let - ((X2 - Bool (let - ((X2 Int ticket3i.res.nondet_2) (X3 Int ticket3i.res.nondet_1)) - (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) - (and - (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) - (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) - (let - ((X3 Bool (let ((X3 Int ticket3i.res.nondet_4)) (= X3 0)))) - (and - (= ticket3i.usr.p2_a_0 0) - (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) - (let - ((X4 - Bool (let - ((X4 Int ticket3i.res.nondet_6) - (X5 Int ticket3i.res.nondet_5)) - (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) - (let - ((X5 Bool (let ((X5 Int ticket3i.res.nondet_7)) (= X5 2)))) - (let - ((X6 Bool (let ((X6 Int ticket3i.res.nondet_8)) (= X6 0)))) - (and - (= ticket3i.usr.p3_a_0 0) - (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) - (let - ((X7 - Bool (let - ((X7 Int ticket3i.res.nondet_10) - (X8 Int ticket3i.res.nondet_9)) - (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) - (let - ((X8 Bool (let ((X8 Int ticket3i.res.nondet_11)) (= X8 2)))) - (let - ((X9 Bool (let ((X9 Int ticket3i.res.nondet_3)) (= X9 2)))) - (and - (= - ticket3i.usr.erreur_ticket3i_a_0 - (ite - (or - (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) - (>= ticket3i.usr.p3_a_0 3)) - true - false)) - ticket3i.res.init_flag_a_0))))))))))))))) -) - -(define-fun - __node_trans_ticket3i_0 ( - (ticket3i.usr.e1_a_1 Bool) - (ticket3i.usr.e2_a_1 Bool) - (ticket3i.usr.e3_a_1 Bool) - (ticket3i.usr.e4_a_1 Bool) - (ticket3i.usr.e5_a_1 Bool) - (ticket3i.usr.e6_a_1 Bool) - (ticket3i.usr.e7_a_1 Bool) - (ticket3i.usr.e8_a_1 Bool) - (ticket3i.usr.e9_a_1 Bool) - (ticket3i.usr.init_a1_a_1 Int) - (ticket3i.usr.init_a2_a_1 Int) - (ticket3i.usr.init_a3_a_1 Int) - (ticket3i.usr.init_t_a_1 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_1 Int) - (ticket3i.usr.p2_a_1 Int) - (ticket3i.usr.p3_a_1 Int) - (ticket3i.usr.t_a_1 Int) - (ticket3i.usr.s_a_1 Int) - (ticket3i.usr.a1_a_1 Int) - (ticket3i.usr.a2_a_1 Int) - (ticket3i.usr.a3_a_1 Int) - (ticket3i.usr.erreur_ticket3i_a_1 Bool) - (ticket3i.res.init_flag_a_1 Bool) - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (= ticket3i.usr.p1_a_0 2))) - (let - ((X2 Bool (= ticket3i.usr.p1_a_0 0))) - (and - (= - ticket3i.usr.a1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) - ticket3i.usr.a1_a_0)) - (let - ((X3 - Bool (and - (= ticket3i.usr.p1_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) - (and - (= - ticket3i.usr.p1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 1 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e2_a_1 - (ite X3 2 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e3_a_1 - (ite X1 0 ticket3i.usr.p1_a_0) - ticket3i.usr.p1_a_0)))) - (let - ((X4 Bool (= ticket3i.usr.p3_a_0 2))) - (let - ((X5 Bool (= ticket3i.usr.p2_a_0 2))) - (and - (= - ticket3i.usr.s_a_1 - (ite - ticket3i.usr.e3_a_1 - (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - ticket3i.usr.s_a_0)))) - (let - ((X6 Bool (= ticket3i.usr.p3_a_0 0))) - (let - ((X7 Bool (= ticket3i.usr.p2_a_0 0))) - (and - (= - ticket3i.usr.t_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e4_a_1 - (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e7_a_1 - (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - ticket3i.usr.t_a_0)))) - (= - ticket3i.usr.a2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) - ticket3i.usr.a2_a_0)) - (let - ((X8 - Bool (and - (= ticket3i.usr.p2_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) - (and - (= - ticket3i.usr.p2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 1 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e5_a_1 - (ite X8 2 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 0 ticket3i.usr.p2_a_0) - ticket3i.usr.p2_a_0)))) - (= - ticket3i.usr.a3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) - ticket3i.usr.a3_a_0)) - (let - ((X9 - Bool (and - (= ticket3i.usr.p3_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) - (and - (= - ticket3i.usr.p3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 1 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e8_a_1 - (ite X9 2 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 0 ticket3i.usr.p3_a_0) - ticket3i.usr.p3_a_0)))) - (= - ticket3i.usr.erreur_ticket3i_a_1 - (ite - (or - (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) - (>= ticket3i.usr.p3_a_1 3)) - true - false)) - (not ticket3i.res.init_flag_a_1)))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_0 - (and - (and - (and - (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) - (>= top.usr.init_a2_a_0 0)) - (>= top.usr.init_a3_a_0 0)) - (>= top.usr.init_t_a_0 0))) - (let - ((X1 Bool top.res.abs_11_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (let - ((X3 Int top.res.abs_1_a_0)) - (let - ((X4 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (and - (and - (and - (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) - (<= 0 X2)) - (<= X2 3)) - (<= (+ (+ X4 X3) X2) 9)))) - (__node_init_ticket3i_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_init_excludes9_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.e9_a_1 Bool) - (top.usr.init_a1_a_1 Int) - (top.usr.init_a2_a_1 Int) - (top.usr.init_a3_a_1 Int) - (top.usr.init_t_a_1 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_1 - (and - (and - (and - (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) - (>= top.usr.init_a2_a_1 0)) - (>= top.usr.init_a3_a_1 0)) - (>= top.usr.init_t_a_1 0))) - (let - ((X1 Bool top.res.abs_11_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (let - ((X3 Int top.res.abs_1_a_1)) - (let - ((X4 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (and - (and - (and - (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) - (<= 0 X2)) - (<= X2 3)) - (<= (+ (+ X4 X3) X2) 9)))) - (__node_trans_ticket3i_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.usr.init_a1_a_1 - top.usr.init_a2_a_1 - top.usr.init_a3_a_1 - top.usr.init_t_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes9_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.e9 Bool) -(declare-primed-var top.usr.init_a1 Int) -(declare-primed-var top.usr.init_a2 Int) -(declare-primed-var top.usr.init_a3 Int) -(declare-primed-var top.usr.init_t Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_10 - (and - (and - (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) - (>= top.usr.init_a3 0)) - (>= top.usr.init_t 0))) - (let - ((X1 Bool top.res.abs_11)) - (let - ((X2 Int top.res.abs_2)) - (let - ((X3 Int top.res.abs_1)) - (let - ((X4 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> - X1 - (and - (and - (and - (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) - (<= 0 X2)) - (<= X2 3)) - (<= (+ (+ X4 X3) X2) 9)))) - (__node_init_ticket3i_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) - (__node_init_excludes9_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - top.res.init_flag)))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.e9! Bool) - (top.usr.init_a1! Int) - (top.usr.init_a2! Int) - (top.usr.init_a3! Int) - (top.usr.init_t! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_10! - (and - (and - (and - (and top.res.abs_9! (>= top.usr.init_a1! 0)) - (>= top.usr.init_a2! 0)) - (>= top.usr.init_a3! 0)) - (>= top.usr.init_t! 0))) - (let - ((X1 Bool top.res.abs_11!)) - (let - ((X2 Int top.res.abs_2!)) - (let - ((X3 Int top.res.abs_1!)) - (let - ((X4 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> - X1 - (and - (and - (and - (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) - (<= 0 X2)) - (<= X2 3)) - (<= (+ (+ X4 X3) X2) 9)))) - (__node_trans_ticket3i_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.usr.init_a1! - top.usr.init_a2! - top.usr.init_a3! - top.usr.init_t! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_1! - top.res.abs_10 - top.res.abs_11 - top.res.inst_1) - (__node_trans_excludes9_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.res.abs_9! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!))))))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes9_0 ((excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) excludes9.usr.X3_a_0) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) excludes9.usr.X4_a_0) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) excludes9.usr.X5_a_0) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) excludes9.usr.X6_a_0) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) excludes9.usr.X7_a_0) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) excludes9.usr.X8_a_0) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) excludes9.usr.X9_a_0))) excludes9.res.init_flag_a_0)) +(define-fun __node_trans_excludes9_0 ((excludes9.usr.X1_a_1 Bool) (excludes9.usr.X2_a_1 Bool) (excludes9.usr.X3_a_1 Bool) (excludes9.usr.X4_a_1 Bool) (excludes9.usr.X5_a_1 Bool) (excludes9.usr.X6_a_1 Bool) (excludes9.usr.X7_a_1 Bool) (excludes9.usr.X8_a_1 Bool) (excludes9.usr.X9_a_1 Bool) (excludes9.usr.excludes_a_1 Bool) (excludes9.res.init_flag_a_1 Bool) (excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) excludes9.usr.X3_a_1) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) excludes9.usr.X4_a_1) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) excludes9.usr.X5_a_1) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) excludes9.usr.X6_a_1) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) excludes9.usr.X7_a_1) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) excludes9.usr.X8_a_1) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) excludes9.usr.X9_a_1))) (not excludes9.res.init_flag_a_1))) +(define-fun __node_init_ticket3i_0 ((ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (and (= ticket3i.usr.p1_a_0 0) (let ((X1 (let ((X1 ticket3i.res.nondet_0)) (= X1 0)))) (and (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) (let ((X2 (let ((X2 ticket3i.res.nondet_2) (X3 ticket3i.res.nondet_1)) (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) (and (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) (let ((X3 (let ((X3 ticket3i.res.nondet_4)) (= X3 0)))) (and (= ticket3i.usr.p2_a_0 0) (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) (let ((X4 (let ((X4 ticket3i.res.nondet_6) (X5 ticket3i.res.nondet_5)) (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) (let ((X5 (let ((X5 ticket3i.res.nondet_7)) (= X5 2)))) (let ((X6 (let ((X6 ticket3i.res.nondet_8)) (= X6 0)))) (and (= ticket3i.usr.p3_a_0 0) (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) (let ((X7 (let ((X7 ticket3i.res.nondet_10) (X8 ticket3i.res.nondet_9)) (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) (let ((X8 (let ((X8 ticket3i.res.nondet_11)) (= X8 2)))) (let ((X9 (let ((X9 ticket3i.res.nondet_3)) (= X9 2)))) (and (= ticket3i.usr.erreur_ticket3i_a_0 (ite (or (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) (>= ticket3i.usr.p3_a_0 3)) true false)) ticket3i.res.init_flag_a_0)))))))))))))))) +(define-fun __node_trans_ticket3i_0 ((ticket3i.usr.e1_a_1 Bool) (ticket3i.usr.e2_a_1 Bool) (ticket3i.usr.e3_a_1 Bool) (ticket3i.usr.e4_a_1 Bool) (ticket3i.usr.e5_a_1 Bool) (ticket3i.usr.e6_a_1 Bool) (ticket3i.usr.e7_a_1 Bool) (ticket3i.usr.e8_a_1 Bool) (ticket3i.usr.e9_a_1 Bool) (ticket3i.usr.init_a1_a_1 Int) (ticket3i.usr.init_a2_a_1 Int) (ticket3i.usr.init_a3_a_1 Int) (ticket3i.usr.init_t_a_1 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_1 Int) (ticket3i.usr.p2_a_1 Int) (ticket3i.usr.p3_a_1 Int) (ticket3i.usr.t_a_1 Int) (ticket3i.usr.s_a_1 Int) (ticket3i.usr.a1_a_1 Int) (ticket3i.usr.a2_a_1 Int) (ticket3i.usr.a3_a_1 Int) (ticket3i.usr.erreur_ticket3i_a_1 Bool) (ticket3i.res.init_flag_a_1 Bool) (ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (let ((X1 (= ticket3i.usr.p1_a_0 2))) (let ((X2 (= ticket3i.usr.p1_a_0 0))) (and (= ticket3i.usr.a1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) ticket3i.usr.a1_a_0)) (let ((X3 (and (= ticket3i.usr.p1_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) (and (= ticket3i.usr.p1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 1 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e2_a_1 (ite X3 2 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e3_a_1 (ite X1 0 ticket3i.usr.p1_a_0) ticket3i.usr.p1_a_0)))) (let ((X4 (= ticket3i.usr.p3_a_0 2))) (let ((X5 (= ticket3i.usr.p2_a_0 2))) (and (= ticket3i.usr.s_a_1 (ite ticket3i.usr.e3_a_1 (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) ticket3i.usr.s_a_0)))) (let ((X6 (= ticket3i.usr.p3_a_0 0))) (let ((X7 (= ticket3i.usr.p2_a_0 0))) (and (= ticket3i.usr.t_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e4_a_1 (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e7_a_1 (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) ticket3i.usr.t_a_0)))) (= ticket3i.usr.a2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) ticket3i.usr.a2_a_0)) (let ((X8 (and (= ticket3i.usr.p2_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) (and (= ticket3i.usr.p2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 1 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e5_a_1 (ite X8 2 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 0 ticket3i.usr.p2_a_0) ticket3i.usr.p2_a_0)))) (= ticket3i.usr.a3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) ticket3i.usr.a3_a_0)) (let ((X9 (and (= ticket3i.usr.p3_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) (and (= ticket3i.usr.p3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 1 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e8_a_1 (ite X9 2 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 0 ticket3i.usr.p3_a_0) ticket3i.usr.p3_a_0)))) (= ticket3i.usr.erreur_ticket3i_a_1 (ite (or (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) (>= ticket3i.usr.p3_a_1 3)) true false)) (not ticket3i.res.init_flag_a_1))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_0 (and (and (and (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) (>= top.usr.init_a2_a_0 0)) (>= top.usr.init_a3_a_0 0)) (>= top.usr.init_t_a_0 0))) (let ((X1 top.res.abs_11_a_0)) (let ((X2 top.res.abs_2_a_0)) (let ((X3 top.res.abs_1_a_0)) (let ((X4 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (and (and (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= 0 X2)) (<= X2 3)) (<= (+ (+ X4 X3) X2) 9)))) (__node_init_ticket3i_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_init_excludes9_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.e9_a_1 Bool) (top.usr.init_a1_a_1 Int) (top.usr.init_a2_a_1 Int) (top.usr.init_a3_a_1 Int) (top.usr.init_t_a_1 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_1 (and (and (and (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) (>= top.usr.init_a2_a_1 0)) (>= top.usr.init_a3_a_1 0)) (>= top.usr.init_t_a_1 0))) (let ((X1 top.res.abs_11_a_1)) (let ((X2 top.res.abs_2_a_1)) (let ((X3 top.res.abs_1_a_1)) (let ((X4 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (and (and (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= 0 X2)) (<= X2 3)) (<= (+ (+ X4 X3) X2) 9)))) (__node_trans_ticket3i_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.usr.init_a1_a_1 top.usr.init_a2_a_1 top.usr.init_a3_a_1 top.usr.init_t_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_trans_excludes9_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_10 (and (and (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) (>= top.usr.init_a3 0)) (>= top.usr.init_t 0))) (let ((X1 top.res.abs_11)) (let ((X2 top.res.abs_2)) (let ((X3 top.res.abs_1)) (let ((X4 top.res.abs_0)) (and (= top.usr.OK (=> X1 (and (and (and (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= 0 X2)) (<= X2 3)) (<= (+ (+ X4 X3) X2) 9)))) (__node_init_ticket3i_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_init_excludes9_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) top.res.init_flag))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.e9! Bool) (top.usr.init_a1! Int) (top.usr.init_a2! Int) (top.usr.init_a3! Int) (top.usr.init_t! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_10! (and (and (and (and top.res.abs_9! (>= top.usr.init_a1! 0)) (>= top.usr.init_a2! 0)) (>= top.usr.init_a3! 0)) (>= top.usr.init_t! 0))) (let ((X1 top.res.abs_11!)) (let ((X2 top.res.abs_2!)) (let ((X3 top.res.abs_1!)) (let ((X4 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (and (and (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= 0 X2)) (<= X2 3)) (<= (+ (+ X4 X3) X2) 9)))) (__node_trans_ticket3i_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.usr.init_a1! top.usr.init_a2! top.usr.init_a3! top.usr.init_t! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_1! top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_trans_excludes9_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.res.abs_9! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ticket3i_7_e1_2192_e1_1852.sl b/benchmarks/LIA/Lustre/ticket3i_7_e1_2192_e1_1852.sl index c6c9ab3..fc6ceb1 100644 --- a/benchmarks/LIA/Lustre/ticket3i_7_e1_2192_e1_1852.sl +++ b/benchmarks/LIA/Lustre/ticket3i_7_e1_2192_e1_1852.sl @@ -1,1441 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes9_0 ( - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - excludes9.usr.X3_a_0) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - excludes9.usr.X4_a_0) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - excludes9.usr.X5_a_0) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - excludes9.usr.X6_a_0) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - excludes9.usr.X7_a_0) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - excludes9.usr.X8_a_0) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - excludes9.usr.X9_a_0))) - excludes9.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes9_0 ( - (excludes9.usr.X1_a_1 Bool) - (excludes9.usr.X2_a_1 Bool) - (excludes9.usr.X3_a_1 Bool) - (excludes9.usr.X4_a_1 Bool) - (excludes9.usr.X5_a_1 Bool) - (excludes9.usr.X6_a_1 Bool) - (excludes9.usr.X7_a_1 Bool) - (excludes9.usr.X8_a_1 Bool) - (excludes9.usr.X9_a_1 Bool) - (excludes9.usr.excludes_a_1 Bool) - (excludes9.res.init_flag_a_1 Bool) - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - excludes9.usr.X3_a_1) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - excludes9.usr.X4_a_1) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - excludes9.usr.X5_a_1) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - excludes9.usr.X6_a_1) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - excludes9.usr.X7_a_1) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - excludes9.usr.X8_a_1) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - excludes9.usr.X9_a_1))) - (not excludes9.res.init_flag_a_1)) -) - -(define-fun - __node_init_ticket3i_0 ( - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (and - (= ticket3i.usr.p1_a_0 0) - (let - ((X1 Bool (let ((X1 Int ticket3i.res.nondet_0)) (= X1 0)))) - (and - (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) - (let - ((X2 - Bool (let - ((X2 Int ticket3i.res.nondet_2) (X3 Int ticket3i.res.nondet_1)) - (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) - (and - (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) - (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) - (let - ((X3 Bool (let ((X3 Int ticket3i.res.nondet_4)) (= X3 0)))) - (and - (= ticket3i.usr.p2_a_0 0) - (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) - (let - ((X4 - Bool (let - ((X4 Int ticket3i.res.nondet_6) - (X5 Int ticket3i.res.nondet_5)) - (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) - (let - ((X5 Bool (let ((X5 Int ticket3i.res.nondet_7)) (= X5 2)))) - (let - ((X6 Bool (let ((X6 Int ticket3i.res.nondet_8)) (= X6 0)))) - (and - (= ticket3i.usr.p3_a_0 0) - (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) - (let - ((X7 - Bool (let - ((X7 Int ticket3i.res.nondet_10) - (X8 Int ticket3i.res.nondet_9)) - (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) - (let - ((X8 Bool (let ((X8 Int ticket3i.res.nondet_11)) (= X8 2)))) - (let - ((X9 Bool (let ((X9 Int ticket3i.res.nondet_3)) (= X9 2)))) - (and - (= - ticket3i.usr.erreur_ticket3i_a_0 - (ite - (or - (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) - (>= ticket3i.usr.p3_a_0 3)) - true - false)) - ticket3i.res.init_flag_a_0))))))))))))))) -) - -(define-fun - __node_trans_ticket3i_0 ( - (ticket3i.usr.e1_a_1 Bool) - (ticket3i.usr.e2_a_1 Bool) - (ticket3i.usr.e3_a_1 Bool) - (ticket3i.usr.e4_a_1 Bool) - (ticket3i.usr.e5_a_1 Bool) - (ticket3i.usr.e6_a_1 Bool) - (ticket3i.usr.e7_a_1 Bool) - (ticket3i.usr.e8_a_1 Bool) - (ticket3i.usr.e9_a_1 Bool) - (ticket3i.usr.init_a1_a_1 Int) - (ticket3i.usr.init_a2_a_1 Int) - (ticket3i.usr.init_a3_a_1 Int) - (ticket3i.usr.init_t_a_1 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_1 Int) - (ticket3i.usr.p2_a_1 Int) - (ticket3i.usr.p3_a_1 Int) - (ticket3i.usr.t_a_1 Int) - (ticket3i.usr.s_a_1 Int) - (ticket3i.usr.a1_a_1 Int) - (ticket3i.usr.a2_a_1 Int) - (ticket3i.usr.a3_a_1 Int) - (ticket3i.usr.erreur_ticket3i_a_1 Bool) - (ticket3i.res.init_flag_a_1 Bool) - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (= ticket3i.usr.p1_a_0 2))) - (let - ((X2 Bool (= ticket3i.usr.p1_a_0 0))) - (and - (= - ticket3i.usr.a1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) - ticket3i.usr.a1_a_0)) - (let - ((X3 - Bool (and - (= ticket3i.usr.p1_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) - (and - (= - ticket3i.usr.p1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 1 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e2_a_1 - (ite X3 2 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e3_a_1 - (ite X1 0 ticket3i.usr.p1_a_0) - ticket3i.usr.p1_a_0)))) - (let - ((X4 Bool (= ticket3i.usr.p3_a_0 2))) - (let - ((X5 Bool (= ticket3i.usr.p2_a_0 2))) - (and - (= - ticket3i.usr.s_a_1 - (ite - ticket3i.usr.e3_a_1 - (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - ticket3i.usr.s_a_0)))) - (let - ((X6 Bool (= ticket3i.usr.p3_a_0 0))) - (let - ((X7 Bool (= ticket3i.usr.p2_a_0 0))) - (and - (= - ticket3i.usr.t_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e4_a_1 - (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e7_a_1 - (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - ticket3i.usr.t_a_0)))) - (= - ticket3i.usr.a2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) - ticket3i.usr.a2_a_0)) - (let - ((X8 - Bool (and - (= ticket3i.usr.p2_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) - (and - (= - ticket3i.usr.p2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 1 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e5_a_1 - (ite X8 2 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 0 ticket3i.usr.p2_a_0) - ticket3i.usr.p2_a_0)))) - (= - ticket3i.usr.a3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) - ticket3i.usr.a3_a_0)) - (let - ((X9 - Bool (and - (= ticket3i.usr.p3_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) - (and - (= - ticket3i.usr.p3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 1 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e8_a_1 - (ite X9 2 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 0 ticket3i.usr.p3_a_0) - ticket3i.usr.p3_a_0)))) - (= - ticket3i.usr.erreur_ticket3i_a_1 - (ite - (or - (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) - (>= ticket3i.usr.p3_a_1 3)) - true - false)) - (not ticket3i.res.init_flag_a_1)))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_0 - (and - (and - (and - (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) - (>= top.usr.init_a2_a_0 0)) - (>= top.usr.init_a3_a_0 0)) - (>= top.usr.init_t_a_0 0))) - (let - ((X1 Bool top.res.abs_11_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (let - ((X3 Int top.res.abs_1_a_0)) - (let - ((X4 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (and - (and - (and - (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) - (<= 0 X2)) - (<= X2 3)) - (<= (+ (+ (+ (+ X4 1) X3) 1) X2) 9)))) - (__node_init_ticket3i_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_init_excludes9_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.e9_a_1 Bool) - (top.usr.init_a1_a_1 Int) - (top.usr.init_a2_a_1 Int) - (top.usr.init_a3_a_1 Int) - (top.usr.init_t_a_1 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_1 - (and - (and - (and - (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) - (>= top.usr.init_a2_a_1 0)) - (>= top.usr.init_a3_a_1 0)) - (>= top.usr.init_t_a_1 0))) - (let - ((X1 Bool top.res.abs_11_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (let - ((X3 Int top.res.abs_1_a_1)) - (let - ((X4 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (and - (and - (and - (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) - (<= 0 X2)) - (<= X2 3)) - (<= (+ (+ (+ (+ X4 1) X3) 1) X2) 9)))) - (__node_trans_ticket3i_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.usr.init_a1_a_1 - top.usr.init_a2_a_1 - top.usr.init_a3_a_1 - top.usr.init_t_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes9_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.e9 Bool) -(declare-primed-var top.usr.init_a1 Int) -(declare-primed-var top.usr.init_a2 Int) -(declare-primed-var top.usr.init_a3 Int) -(declare-primed-var top.usr.init_t Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_10 - (and - (and - (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) - (>= top.usr.init_a3 0)) - (>= top.usr.init_t 0))) - (let - ((X1 Bool top.res.abs_11)) - (let - ((X2 Int top.res.abs_2)) - (let - ((X3 Int top.res.abs_1)) - (let - ((X4 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> - X1 - (and - (and - (and - (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) - (<= 0 X2)) - (<= X2 3)) - (<= (+ (+ (+ (+ X4 1) X3) 1) X2) 9)))) - (__node_init_ticket3i_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) - (__node_init_excludes9_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - top.res.init_flag)))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.e9! Bool) - (top.usr.init_a1! Int) - (top.usr.init_a2! Int) - (top.usr.init_a3! Int) - (top.usr.init_t! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_10! - (and - (and - (and - (and top.res.abs_9! (>= top.usr.init_a1! 0)) - (>= top.usr.init_a2! 0)) - (>= top.usr.init_a3! 0)) - (>= top.usr.init_t! 0))) - (let - ((X1 Bool top.res.abs_11!)) - (let - ((X2 Int top.res.abs_2!)) - (let - ((X3 Int top.res.abs_1!)) - (let - ((X4 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> - X1 - (and - (and - (and - (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) - (<= 0 X2)) - (<= X2 3)) - (<= (+ (+ (+ (+ X4 1) X3) 1) X2) 9)))) - (__node_trans_ticket3i_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.usr.init_a1! - top.usr.init_a2! - top.usr.init_a3! - top.usr.init_t! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_1! - top.res.abs_10 - top.res.abs_11 - top.res.inst_1) - (__node_trans_excludes9_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.res.abs_9! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!))))))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes9_0 ((excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) excludes9.usr.X3_a_0) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) excludes9.usr.X4_a_0) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) excludes9.usr.X5_a_0) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) excludes9.usr.X6_a_0) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) excludes9.usr.X7_a_0) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) excludes9.usr.X8_a_0) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) excludes9.usr.X9_a_0))) excludes9.res.init_flag_a_0)) +(define-fun __node_trans_excludes9_0 ((excludes9.usr.X1_a_1 Bool) (excludes9.usr.X2_a_1 Bool) (excludes9.usr.X3_a_1 Bool) (excludes9.usr.X4_a_1 Bool) (excludes9.usr.X5_a_1 Bool) (excludes9.usr.X6_a_1 Bool) (excludes9.usr.X7_a_1 Bool) (excludes9.usr.X8_a_1 Bool) (excludes9.usr.X9_a_1 Bool) (excludes9.usr.excludes_a_1 Bool) (excludes9.res.init_flag_a_1 Bool) (excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) excludes9.usr.X3_a_1) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) excludes9.usr.X4_a_1) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) excludes9.usr.X5_a_1) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) excludes9.usr.X6_a_1) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) excludes9.usr.X7_a_1) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) excludes9.usr.X8_a_1) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) excludes9.usr.X9_a_1))) (not excludes9.res.init_flag_a_1))) +(define-fun __node_init_ticket3i_0 ((ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (and (= ticket3i.usr.p1_a_0 0) (let ((X1 (let ((X1 ticket3i.res.nondet_0)) (= X1 0)))) (and (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) (let ((X2 (let ((X2 ticket3i.res.nondet_2) (X3 ticket3i.res.nondet_1)) (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) (and (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) (let ((X3 (let ((X3 ticket3i.res.nondet_4)) (= X3 0)))) (and (= ticket3i.usr.p2_a_0 0) (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) (let ((X4 (let ((X4 ticket3i.res.nondet_6) (X5 ticket3i.res.nondet_5)) (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) (let ((X5 (let ((X5 ticket3i.res.nondet_7)) (= X5 2)))) (let ((X6 (let ((X6 ticket3i.res.nondet_8)) (= X6 0)))) (and (= ticket3i.usr.p3_a_0 0) (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) (let ((X7 (let ((X7 ticket3i.res.nondet_10) (X8 ticket3i.res.nondet_9)) (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) (let ((X8 (let ((X8 ticket3i.res.nondet_11)) (= X8 2)))) (let ((X9 (let ((X9 ticket3i.res.nondet_3)) (= X9 2)))) (and (= ticket3i.usr.erreur_ticket3i_a_0 (ite (or (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) (>= ticket3i.usr.p3_a_0 3)) true false)) ticket3i.res.init_flag_a_0)))))))))))))))) +(define-fun __node_trans_ticket3i_0 ((ticket3i.usr.e1_a_1 Bool) (ticket3i.usr.e2_a_1 Bool) (ticket3i.usr.e3_a_1 Bool) (ticket3i.usr.e4_a_1 Bool) (ticket3i.usr.e5_a_1 Bool) (ticket3i.usr.e6_a_1 Bool) (ticket3i.usr.e7_a_1 Bool) (ticket3i.usr.e8_a_1 Bool) (ticket3i.usr.e9_a_1 Bool) (ticket3i.usr.init_a1_a_1 Int) (ticket3i.usr.init_a2_a_1 Int) (ticket3i.usr.init_a3_a_1 Int) (ticket3i.usr.init_t_a_1 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_1 Int) (ticket3i.usr.p2_a_1 Int) (ticket3i.usr.p3_a_1 Int) (ticket3i.usr.t_a_1 Int) (ticket3i.usr.s_a_1 Int) (ticket3i.usr.a1_a_1 Int) (ticket3i.usr.a2_a_1 Int) (ticket3i.usr.a3_a_1 Int) (ticket3i.usr.erreur_ticket3i_a_1 Bool) (ticket3i.res.init_flag_a_1 Bool) (ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (let ((X1 (= ticket3i.usr.p1_a_0 2))) (let ((X2 (= ticket3i.usr.p1_a_0 0))) (and (= ticket3i.usr.a1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) ticket3i.usr.a1_a_0)) (let ((X3 (and (= ticket3i.usr.p1_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) (and (= ticket3i.usr.p1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 1 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e2_a_1 (ite X3 2 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e3_a_1 (ite X1 0 ticket3i.usr.p1_a_0) ticket3i.usr.p1_a_0)))) (let ((X4 (= ticket3i.usr.p3_a_0 2))) (let ((X5 (= ticket3i.usr.p2_a_0 2))) (and (= ticket3i.usr.s_a_1 (ite ticket3i.usr.e3_a_1 (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) ticket3i.usr.s_a_0)))) (let ((X6 (= ticket3i.usr.p3_a_0 0))) (let ((X7 (= ticket3i.usr.p2_a_0 0))) (and (= ticket3i.usr.t_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e4_a_1 (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e7_a_1 (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) ticket3i.usr.t_a_0)))) (= ticket3i.usr.a2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) ticket3i.usr.a2_a_0)) (let ((X8 (and (= ticket3i.usr.p2_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) (and (= ticket3i.usr.p2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 1 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e5_a_1 (ite X8 2 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 0 ticket3i.usr.p2_a_0) ticket3i.usr.p2_a_0)))) (= ticket3i.usr.a3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) ticket3i.usr.a3_a_0)) (let ((X9 (and (= ticket3i.usr.p3_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) (and (= ticket3i.usr.p3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 1 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e8_a_1 (ite X9 2 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 0 ticket3i.usr.p3_a_0) ticket3i.usr.p3_a_0)))) (= ticket3i.usr.erreur_ticket3i_a_1 (ite (or (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) (>= ticket3i.usr.p3_a_1 3)) true false)) (not ticket3i.res.init_flag_a_1))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_0 (and (and (and (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) (>= top.usr.init_a2_a_0 0)) (>= top.usr.init_a3_a_0 0)) (>= top.usr.init_t_a_0 0))) (let ((X1 top.res.abs_11_a_0)) (let ((X2 top.res.abs_2_a_0)) (let ((X3 top.res.abs_1_a_0)) (let ((X4 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (and (and (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= 0 X2)) (<= X2 3)) (<= (+ (+ (+ (+ X4 1) X3) 1) X2) 9)))) (__node_init_ticket3i_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_init_excludes9_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.e9_a_1 Bool) (top.usr.init_a1_a_1 Int) (top.usr.init_a2_a_1 Int) (top.usr.init_a3_a_1 Int) (top.usr.init_t_a_1 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_1 (and (and (and (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) (>= top.usr.init_a2_a_1 0)) (>= top.usr.init_a3_a_1 0)) (>= top.usr.init_t_a_1 0))) (let ((X1 top.res.abs_11_a_1)) (let ((X2 top.res.abs_2_a_1)) (let ((X3 top.res.abs_1_a_1)) (let ((X4 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (and (and (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= 0 X2)) (<= X2 3)) (<= (+ (+ (+ (+ X4 1) X3) 1) X2) 9)))) (__node_trans_ticket3i_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.usr.init_a1_a_1 top.usr.init_a2_a_1 top.usr.init_a3_a_1 top.usr.init_t_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_trans_excludes9_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_10 (and (and (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) (>= top.usr.init_a3 0)) (>= top.usr.init_t 0))) (let ((X1 top.res.abs_11)) (let ((X2 top.res.abs_2)) (let ((X3 top.res.abs_1)) (let ((X4 top.res.abs_0)) (and (= top.usr.OK (=> X1 (and (and (and (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= 0 X2)) (<= X2 3)) (<= (+ (+ (+ (+ X4 1) X3) 1) X2) 9)))) (__node_init_ticket3i_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_init_excludes9_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) top.res.init_flag))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.e9! Bool) (top.usr.init_a1! Int) (top.usr.init_a2! Int) (top.usr.init_a3! Int) (top.usr.init_t! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_10! (and (and (and (and top.res.abs_9! (>= top.usr.init_a1! 0)) (>= top.usr.init_a2! 0)) (>= top.usr.init_a3! 0)) (>= top.usr.init_t! 0))) (let ((X1 top.res.abs_11!)) (let ((X2 top.res.abs_2!)) (let ((X3 top.res.abs_1!)) (let ((X4 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (and (and (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= 0 X2)) (<= X2 3)) (<= (+ (+ (+ (+ X4 1) X3) 1) X2) 9)))) (__node_trans_ticket3i_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.usr.init_a1! top.usr.init_a2! top.usr.init_a3! top.usr.init_t! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_1! top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_trans_excludes9_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.res.abs_9! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ticket3i_7_e2_2724_e7_524.sl b/benchmarks/LIA/Lustre/ticket3i_7_e2_2724_e7_524.sl index 4b2de29..dfb2d87 100644 --- a/benchmarks/LIA/Lustre/ticket3i_7_e2_2724_e7_524.sl +++ b/benchmarks/LIA/Lustre/ticket3i_7_e2_2724_e7_524.sl @@ -1,1441 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes9_0 ( - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - excludes9.usr.X3_a_0) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - excludes9.usr.X4_a_0) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - excludes9.usr.X5_a_0) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - excludes9.usr.X6_a_0) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - excludes9.usr.X7_a_0) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - excludes9.usr.X8_a_0) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - excludes9.usr.X9_a_0))) - excludes9.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes9_0 ( - (excludes9.usr.X1_a_1 Bool) - (excludes9.usr.X2_a_1 Bool) - (excludes9.usr.X3_a_1 Bool) - (excludes9.usr.X4_a_1 Bool) - (excludes9.usr.X5_a_1 Bool) - (excludes9.usr.X6_a_1 Bool) - (excludes9.usr.X7_a_1 Bool) - (excludes9.usr.X8_a_1 Bool) - (excludes9.usr.X9_a_1 Bool) - (excludes9.usr.excludes_a_1 Bool) - (excludes9.res.init_flag_a_1 Bool) - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - excludes9.usr.X3_a_1) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - excludes9.usr.X4_a_1) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - excludes9.usr.X5_a_1) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - excludes9.usr.X6_a_1) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - excludes9.usr.X7_a_1) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - excludes9.usr.X8_a_1) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - excludes9.usr.X9_a_1))) - (not excludes9.res.init_flag_a_1)) -) - -(define-fun - __node_init_ticket3i_0 ( - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (and - (= ticket3i.usr.p1_a_0 0) - (let - ((X1 Bool (let ((X1 Int ticket3i.res.nondet_0)) (= X1 0)))) - (and - (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) - (let - ((X2 - Bool (let - ((X2 Int ticket3i.res.nondet_2) (X3 Int ticket3i.res.nondet_1)) - (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) - (and - (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) - (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) - (let - ((X3 Bool (let ((X3 Int ticket3i.res.nondet_4)) (= X3 0)))) - (and - (= ticket3i.usr.p2_a_0 0) - (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) - (let - ((X4 - Bool (let - ((X4 Int ticket3i.res.nondet_6) - (X5 Int ticket3i.res.nondet_5)) - (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) - (let - ((X5 Bool (let ((X5 Int ticket3i.res.nondet_7)) (= X5 2)))) - (let - ((X6 Bool (let ((X6 Int ticket3i.res.nondet_8)) (= X6 0)))) - (and - (= ticket3i.usr.p3_a_0 0) - (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) - (let - ((X7 - Bool (let - ((X7 Int ticket3i.res.nondet_10) - (X8 Int ticket3i.res.nondet_9)) - (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) - (let - ((X8 Bool (let ((X8 Int ticket3i.res.nondet_11)) (= X8 2)))) - (let - ((X9 Bool (let ((X9 Int ticket3i.res.nondet_3)) (= X9 2)))) - (and - (= - ticket3i.usr.erreur_ticket3i_a_0 - (ite - (or - (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) - (>= ticket3i.usr.p3_a_0 3)) - true - false)) - ticket3i.res.init_flag_a_0))))))))))))))) -) - -(define-fun - __node_trans_ticket3i_0 ( - (ticket3i.usr.e1_a_1 Bool) - (ticket3i.usr.e2_a_1 Bool) - (ticket3i.usr.e3_a_1 Bool) - (ticket3i.usr.e4_a_1 Bool) - (ticket3i.usr.e5_a_1 Bool) - (ticket3i.usr.e6_a_1 Bool) - (ticket3i.usr.e7_a_1 Bool) - (ticket3i.usr.e8_a_1 Bool) - (ticket3i.usr.e9_a_1 Bool) - (ticket3i.usr.init_a1_a_1 Int) - (ticket3i.usr.init_a2_a_1 Int) - (ticket3i.usr.init_a3_a_1 Int) - (ticket3i.usr.init_t_a_1 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_1 Int) - (ticket3i.usr.p2_a_1 Int) - (ticket3i.usr.p3_a_1 Int) - (ticket3i.usr.t_a_1 Int) - (ticket3i.usr.s_a_1 Int) - (ticket3i.usr.a1_a_1 Int) - (ticket3i.usr.a2_a_1 Int) - (ticket3i.usr.a3_a_1 Int) - (ticket3i.usr.erreur_ticket3i_a_1 Bool) - (ticket3i.res.init_flag_a_1 Bool) - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (= ticket3i.usr.p1_a_0 2))) - (let - ((X2 Bool (= ticket3i.usr.p1_a_0 0))) - (and - (= - ticket3i.usr.a1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) - ticket3i.usr.a1_a_0)) - (let - ((X3 - Bool (and - (= ticket3i.usr.p1_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) - (and - (= - ticket3i.usr.p1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 1 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e2_a_1 - (ite X3 2 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e3_a_1 - (ite X1 0 ticket3i.usr.p1_a_0) - ticket3i.usr.p1_a_0)))) - (let - ((X4 Bool (= ticket3i.usr.p3_a_0 2))) - (let - ((X5 Bool (= ticket3i.usr.p2_a_0 2))) - (and - (= - ticket3i.usr.s_a_1 - (ite - ticket3i.usr.e3_a_1 - (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - ticket3i.usr.s_a_0)))) - (let - ((X6 Bool (= ticket3i.usr.p3_a_0 0))) - (let - ((X7 Bool (= ticket3i.usr.p2_a_0 0))) - (and - (= - ticket3i.usr.t_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e4_a_1 - (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e7_a_1 - (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - ticket3i.usr.t_a_0)))) - (= - ticket3i.usr.a2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) - ticket3i.usr.a2_a_0)) - (let - ((X8 - Bool (and - (= ticket3i.usr.p2_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) - (and - (= - ticket3i.usr.p2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 1 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e5_a_1 - (ite X8 2 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 0 ticket3i.usr.p2_a_0) - ticket3i.usr.p2_a_0)))) - (= - ticket3i.usr.a3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) - ticket3i.usr.a3_a_0)) - (let - ((X9 - Bool (and - (= ticket3i.usr.p3_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) - (and - (= - ticket3i.usr.p3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 1 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e8_a_1 - (ite X9 2 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 0 ticket3i.usr.p3_a_0) - ticket3i.usr.p3_a_0)))) - (= - ticket3i.usr.erreur_ticket3i_a_1 - (ite - (or - (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) - (>= ticket3i.usr.p3_a_1 3)) - true - false)) - (not ticket3i.res.init_flag_a_1)))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_0 - (and - (and - (and - (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) - (>= top.usr.init_a2_a_0 0)) - (>= top.usr.init_a3_a_0 0)) - (>= top.usr.init_t_a_0 0))) - (let - ((X1 Bool top.res.abs_11_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (let - ((X3 Int top.res.abs_1_a_0)) - (let - ((X4 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (and - (and - (and - (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) - (<= 0 X2)) - (<= X2 3)) - (<= (+ (+ (- X4 1) X3) X2) 9)))) - (__node_init_ticket3i_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_init_excludes9_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.e9_a_1 Bool) - (top.usr.init_a1_a_1 Int) - (top.usr.init_a2_a_1 Int) - (top.usr.init_a3_a_1 Int) - (top.usr.init_t_a_1 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_1 - (and - (and - (and - (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) - (>= top.usr.init_a2_a_1 0)) - (>= top.usr.init_a3_a_1 0)) - (>= top.usr.init_t_a_1 0))) - (let - ((X1 Bool top.res.abs_11_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (let - ((X3 Int top.res.abs_1_a_1)) - (let - ((X4 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (and - (and - (and - (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) - (<= 0 X2)) - (<= X2 3)) - (<= (+ (+ (- X4 1) X3) X2) 9)))) - (__node_trans_ticket3i_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.usr.init_a1_a_1 - top.usr.init_a2_a_1 - top.usr.init_a3_a_1 - top.usr.init_t_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes9_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.e9 Bool) -(declare-primed-var top.usr.init_a1 Int) -(declare-primed-var top.usr.init_a2 Int) -(declare-primed-var top.usr.init_a3 Int) -(declare-primed-var top.usr.init_t Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_10 - (and - (and - (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) - (>= top.usr.init_a3 0)) - (>= top.usr.init_t 0))) - (let - ((X1 Bool top.res.abs_11)) - (let - ((X2 Int top.res.abs_2)) - (let - ((X3 Int top.res.abs_1)) - (let - ((X4 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> - X1 - (and - (and - (and - (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) - (<= 0 X2)) - (<= X2 3)) - (<= (+ (+ (- X4 1) X3) X2) 9)))) - (__node_init_ticket3i_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) - (__node_init_excludes9_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - top.res.init_flag)))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.e9! Bool) - (top.usr.init_a1! Int) - (top.usr.init_a2! Int) - (top.usr.init_a3! Int) - (top.usr.init_t! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_10! - (and - (and - (and - (and top.res.abs_9! (>= top.usr.init_a1! 0)) - (>= top.usr.init_a2! 0)) - (>= top.usr.init_a3! 0)) - (>= top.usr.init_t! 0))) - (let - ((X1 Bool top.res.abs_11!)) - (let - ((X2 Int top.res.abs_2!)) - (let - ((X3 Int top.res.abs_1!)) - (let - ((X4 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> - X1 - (and - (and - (and - (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) - (<= 0 X2)) - (<= X2 3)) - (<= (+ (+ (- X4 1) X3) X2) 9)))) - (__node_trans_ticket3i_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.usr.init_a1! - top.usr.init_a2! - top.usr.init_a3! - top.usr.init_t! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_1! - top.res.abs_10 - top.res.abs_11 - top.res.inst_1) - (__node_trans_excludes9_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.res.abs_9! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!))))))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes9_0 ((excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) excludes9.usr.X3_a_0) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) excludes9.usr.X4_a_0) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) excludes9.usr.X5_a_0) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) excludes9.usr.X6_a_0) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) excludes9.usr.X7_a_0) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) excludes9.usr.X8_a_0) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) excludes9.usr.X9_a_0))) excludes9.res.init_flag_a_0)) +(define-fun __node_trans_excludes9_0 ((excludes9.usr.X1_a_1 Bool) (excludes9.usr.X2_a_1 Bool) (excludes9.usr.X3_a_1 Bool) (excludes9.usr.X4_a_1 Bool) (excludes9.usr.X5_a_1 Bool) (excludes9.usr.X6_a_1 Bool) (excludes9.usr.X7_a_1 Bool) (excludes9.usr.X8_a_1 Bool) (excludes9.usr.X9_a_1 Bool) (excludes9.usr.excludes_a_1 Bool) (excludes9.res.init_flag_a_1 Bool) (excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) excludes9.usr.X3_a_1) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) excludes9.usr.X4_a_1) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) excludes9.usr.X5_a_1) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) excludes9.usr.X6_a_1) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) excludes9.usr.X7_a_1) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) excludes9.usr.X8_a_1) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) excludes9.usr.X9_a_1))) (not excludes9.res.init_flag_a_1))) +(define-fun __node_init_ticket3i_0 ((ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (and (= ticket3i.usr.p1_a_0 0) (let ((X1 (let ((X1 ticket3i.res.nondet_0)) (= X1 0)))) (and (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) (let ((X2 (let ((X2 ticket3i.res.nondet_2) (X3 ticket3i.res.nondet_1)) (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) (and (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) (let ((X3 (let ((X3 ticket3i.res.nondet_4)) (= X3 0)))) (and (= ticket3i.usr.p2_a_0 0) (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) (let ((X4 (let ((X4 ticket3i.res.nondet_6) (X5 ticket3i.res.nondet_5)) (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) (let ((X5 (let ((X5 ticket3i.res.nondet_7)) (= X5 2)))) (let ((X6 (let ((X6 ticket3i.res.nondet_8)) (= X6 0)))) (and (= ticket3i.usr.p3_a_0 0) (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) (let ((X7 (let ((X7 ticket3i.res.nondet_10) (X8 ticket3i.res.nondet_9)) (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) (let ((X8 (let ((X8 ticket3i.res.nondet_11)) (= X8 2)))) (let ((X9 (let ((X9 ticket3i.res.nondet_3)) (= X9 2)))) (and (= ticket3i.usr.erreur_ticket3i_a_0 (ite (or (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) (>= ticket3i.usr.p3_a_0 3)) true false)) ticket3i.res.init_flag_a_0)))))))))))))))) +(define-fun __node_trans_ticket3i_0 ((ticket3i.usr.e1_a_1 Bool) (ticket3i.usr.e2_a_1 Bool) (ticket3i.usr.e3_a_1 Bool) (ticket3i.usr.e4_a_1 Bool) (ticket3i.usr.e5_a_1 Bool) (ticket3i.usr.e6_a_1 Bool) (ticket3i.usr.e7_a_1 Bool) (ticket3i.usr.e8_a_1 Bool) (ticket3i.usr.e9_a_1 Bool) (ticket3i.usr.init_a1_a_1 Int) (ticket3i.usr.init_a2_a_1 Int) (ticket3i.usr.init_a3_a_1 Int) (ticket3i.usr.init_t_a_1 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_1 Int) (ticket3i.usr.p2_a_1 Int) (ticket3i.usr.p3_a_1 Int) (ticket3i.usr.t_a_1 Int) (ticket3i.usr.s_a_1 Int) (ticket3i.usr.a1_a_1 Int) (ticket3i.usr.a2_a_1 Int) (ticket3i.usr.a3_a_1 Int) (ticket3i.usr.erreur_ticket3i_a_1 Bool) (ticket3i.res.init_flag_a_1 Bool) (ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (let ((X1 (= ticket3i.usr.p1_a_0 2))) (let ((X2 (= ticket3i.usr.p1_a_0 0))) (and (= ticket3i.usr.a1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) ticket3i.usr.a1_a_0)) (let ((X3 (and (= ticket3i.usr.p1_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) (and (= ticket3i.usr.p1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 1 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e2_a_1 (ite X3 2 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e3_a_1 (ite X1 0 ticket3i.usr.p1_a_0) ticket3i.usr.p1_a_0)))) (let ((X4 (= ticket3i.usr.p3_a_0 2))) (let ((X5 (= ticket3i.usr.p2_a_0 2))) (and (= ticket3i.usr.s_a_1 (ite ticket3i.usr.e3_a_1 (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) ticket3i.usr.s_a_0)))) (let ((X6 (= ticket3i.usr.p3_a_0 0))) (let ((X7 (= ticket3i.usr.p2_a_0 0))) (and (= ticket3i.usr.t_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e4_a_1 (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e7_a_1 (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) ticket3i.usr.t_a_0)))) (= ticket3i.usr.a2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) ticket3i.usr.a2_a_0)) (let ((X8 (and (= ticket3i.usr.p2_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) (and (= ticket3i.usr.p2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 1 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e5_a_1 (ite X8 2 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 0 ticket3i.usr.p2_a_0) ticket3i.usr.p2_a_0)))) (= ticket3i.usr.a3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) ticket3i.usr.a3_a_0)) (let ((X9 (and (= ticket3i.usr.p3_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) (and (= ticket3i.usr.p3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 1 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e8_a_1 (ite X9 2 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 0 ticket3i.usr.p3_a_0) ticket3i.usr.p3_a_0)))) (= ticket3i.usr.erreur_ticket3i_a_1 (ite (or (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) (>= ticket3i.usr.p3_a_1 3)) true false)) (not ticket3i.res.init_flag_a_1))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_0 (and (and (and (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) (>= top.usr.init_a2_a_0 0)) (>= top.usr.init_a3_a_0 0)) (>= top.usr.init_t_a_0 0))) (let ((X1 top.res.abs_11_a_0)) (let ((X2 top.res.abs_2_a_0)) (let ((X3 top.res.abs_1_a_0)) (let ((X4 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (and (and (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= 0 X2)) (<= X2 3)) (<= (+ (+ (- X4 1) X3) X2) 9)))) (__node_init_ticket3i_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_init_excludes9_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.e9_a_1 Bool) (top.usr.init_a1_a_1 Int) (top.usr.init_a2_a_1 Int) (top.usr.init_a3_a_1 Int) (top.usr.init_t_a_1 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_1 (and (and (and (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) (>= top.usr.init_a2_a_1 0)) (>= top.usr.init_a3_a_1 0)) (>= top.usr.init_t_a_1 0))) (let ((X1 top.res.abs_11_a_1)) (let ((X2 top.res.abs_2_a_1)) (let ((X3 top.res.abs_1_a_1)) (let ((X4 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (and (and (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= 0 X2)) (<= X2 3)) (<= (+ (+ (- X4 1) X3) X2) 9)))) (__node_trans_ticket3i_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.usr.init_a1_a_1 top.usr.init_a2_a_1 top.usr.init_a3_a_1 top.usr.init_t_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_trans_excludes9_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_10 (and (and (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) (>= top.usr.init_a3 0)) (>= top.usr.init_t 0))) (let ((X1 top.res.abs_11)) (let ((X2 top.res.abs_2)) (let ((X3 top.res.abs_1)) (let ((X4 top.res.abs_0)) (and (= top.usr.OK (=> X1 (and (and (and (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= 0 X2)) (<= X2 3)) (<= (+ (+ (- X4 1) X3) X2) 9)))) (__node_init_ticket3i_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_init_excludes9_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) top.res.init_flag))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.e9! Bool) (top.usr.init_a1! Int) (top.usr.init_a2! Int) (top.usr.init_a3! Int) (top.usr.init_t! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_10! (and (and (and (and top.res.abs_9! (>= top.usr.init_a1! 0)) (>= top.usr.init_a2! 0)) (>= top.usr.init_a3! 0)) (>= top.usr.init_t! 0))) (let ((X1 top.res.abs_11!)) (let ((X2 top.res.abs_2!)) (let ((X3 top.res.abs_1!)) (let ((X4 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (and (and (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= 0 X2)) (<= X2 3)) (<= (+ (+ (- X4 1) X3) X2) 9)))) (__node_trans_ticket3i_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.usr.init_a1! top.usr.init_a2! top.usr.init_a3! top.usr.init_t! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_1! top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_trans_excludes9_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.res.abs_9! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ticket3i_7_e3_59_e7_2122.sl b/benchmarks/LIA/Lustre/ticket3i_7_e3_59_e7_2122.sl index 6710982..44f36ac 100644 --- a/benchmarks/LIA/Lustre/ticket3i_7_e3_59_e7_2122.sl +++ b/benchmarks/LIA/Lustre/ticket3i_7_e3_59_e7_2122.sl @@ -1,1441 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes9_0 ( - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - excludes9.usr.X3_a_0) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - excludes9.usr.X4_a_0) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - excludes9.usr.X5_a_0) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - excludes9.usr.X6_a_0) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - excludes9.usr.X7_a_0) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - excludes9.usr.X8_a_0) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - excludes9.usr.X9_a_0))) - excludes9.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes9_0 ( - (excludes9.usr.X1_a_1 Bool) - (excludes9.usr.X2_a_1 Bool) - (excludes9.usr.X3_a_1 Bool) - (excludes9.usr.X4_a_1 Bool) - (excludes9.usr.X5_a_1 Bool) - (excludes9.usr.X6_a_1 Bool) - (excludes9.usr.X7_a_1 Bool) - (excludes9.usr.X8_a_1 Bool) - (excludes9.usr.X9_a_1 Bool) - (excludes9.usr.excludes_a_1 Bool) - (excludes9.res.init_flag_a_1 Bool) - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - excludes9.usr.X3_a_1) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - excludes9.usr.X4_a_1) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - excludes9.usr.X5_a_1) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - excludes9.usr.X6_a_1) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - excludes9.usr.X7_a_1) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - excludes9.usr.X8_a_1) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - excludes9.usr.X9_a_1))) - (not excludes9.res.init_flag_a_1)) -) - -(define-fun - __node_init_ticket3i_0 ( - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (and - (= ticket3i.usr.p1_a_0 0) - (let - ((X1 Bool (let ((X1 Int ticket3i.res.nondet_0)) (= X1 0)))) - (and - (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) - (let - ((X2 - Bool (let - ((X2 Int ticket3i.res.nondet_2) (X3 Int ticket3i.res.nondet_1)) - (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) - (and - (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) - (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) - (let - ((X3 Bool (let ((X3 Int ticket3i.res.nondet_4)) (= X3 0)))) - (and - (= ticket3i.usr.p2_a_0 0) - (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) - (let - ((X4 - Bool (let - ((X4 Int ticket3i.res.nondet_6) - (X5 Int ticket3i.res.nondet_5)) - (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) - (let - ((X5 Bool (let ((X5 Int ticket3i.res.nondet_7)) (= X5 2)))) - (let - ((X6 Bool (let ((X6 Int ticket3i.res.nondet_8)) (= X6 0)))) - (and - (= ticket3i.usr.p3_a_0 0) - (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) - (let - ((X7 - Bool (let - ((X7 Int ticket3i.res.nondet_10) - (X8 Int ticket3i.res.nondet_9)) - (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) - (let - ((X8 Bool (let ((X8 Int ticket3i.res.nondet_11)) (= X8 2)))) - (let - ((X9 Bool (let ((X9 Int ticket3i.res.nondet_3)) (= X9 2)))) - (and - (= - ticket3i.usr.erreur_ticket3i_a_0 - (ite - (or - (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) - (>= ticket3i.usr.p3_a_0 3)) - true - false)) - ticket3i.res.init_flag_a_0))))))))))))))) -) - -(define-fun - __node_trans_ticket3i_0 ( - (ticket3i.usr.e1_a_1 Bool) - (ticket3i.usr.e2_a_1 Bool) - (ticket3i.usr.e3_a_1 Bool) - (ticket3i.usr.e4_a_1 Bool) - (ticket3i.usr.e5_a_1 Bool) - (ticket3i.usr.e6_a_1 Bool) - (ticket3i.usr.e7_a_1 Bool) - (ticket3i.usr.e8_a_1 Bool) - (ticket3i.usr.e9_a_1 Bool) - (ticket3i.usr.init_a1_a_1 Int) - (ticket3i.usr.init_a2_a_1 Int) - (ticket3i.usr.init_a3_a_1 Int) - (ticket3i.usr.init_t_a_1 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_1 Int) - (ticket3i.usr.p2_a_1 Int) - (ticket3i.usr.p3_a_1 Int) - (ticket3i.usr.t_a_1 Int) - (ticket3i.usr.s_a_1 Int) - (ticket3i.usr.a1_a_1 Int) - (ticket3i.usr.a2_a_1 Int) - (ticket3i.usr.a3_a_1 Int) - (ticket3i.usr.erreur_ticket3i_a_1 Bool) - (ticket3i.res.init_flag_a_1 Bool) - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (= ticket3i.usr.p1_a_0 2))) - (let - ((X2 Bool (= ticket3i.usr.p1_a_0 0))) - (and - (= - ticket3i.usr.a1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) - ticket3i.usr.a1_a_0)) - (let - ((X3 - Bool (and - (= ticket3i.usr.p1_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) - (and - (= - ticket3i.usr.p1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 1 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e2_a_1 - (ite X3 2 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e3_a_1 - (ite X1 0 ticket3i.usr.p1_a_0) - ticket3i.usr.p1_a_0)))) - (let - ((X4 Bool (= ticket3i.usr.p3_a_0 2))) - (let - ((X5 Bool (= ticket3i.usr.p2_a_0 2))) - (and - (= - ticket3i.usr.s_a_1 - (ite - ticket3i.usr.e3_a_1 - (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - ticket3i.usr.s_a_0)))) - (let - ((X6 Bool (= ticket3i.usr.p3_a_0 0))) - (let - ((X7 Bool (= ticket3i.usr.p2_a_0 0))) - (and - (= - ticket3i.usr.t_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e4_a_1 - (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e7_a_1 - (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - ticket3i.usr.t_a_0)))) - (= - ticket3i.usr.a2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) - ticket3i.usr.a2_a_0)) - (let - ((X8 - Bool (and - (= ticket3i.usr.p2_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) - (and - (= - ticket3i.usr.p2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 1 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e5_a_1 - (ite X8 2 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 0 ticket3i.usr.p2_a_0) - ticket3i.usr.p2_a_0)))) - (= - ticket3i.usr.a3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) - ticket3i.usr.a3_a_0)) - (let - ((X9 - Bool (and - (= ticket3i.usr.p3_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) - (and - (= - ticket3i.usr.p3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 1 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e8_a_1 - (ite X9 2 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 0 ticket3i.usr.p3_a_0) - ticket3i.usr.p3_a_0)))) - (= - ticket3i.usr.erreur_ticket3i_a_1 - (ite - (or - (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) - (>= ticket3i.usr.p3_a_1 3)) - true - false)) - (not ticket3i.res.init_flag_a_1)))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_0 - (and - (and - (and - (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) - (>= top.usr.init_a2_a_0 0)) - (>= top.usr.init_a3_a_0 0)) - (>= top.usr.init_t_a_0 0))) - (let - ((X1 Bool top.res.abs_11_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (let - ((X3 Int top.res.abs_1_a_0)) - (let - ((X4 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (and - (and - (and - (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) - (<= 0 X2)) - (<= X2 3)) - (<= (+ (- X4 X3) X2) 9)))) - (__node_init_ticket3i_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_init_excludes9_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.e9_a_1 Bool) - (top.usr.init_a1_a_1 Int) - (top.usr.init_a2_a_1 Int) - (top.usr.init_a3_a_1 Int) - (top.usr.init_t_a_1 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_1 - (and - (and - (and - (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) - (>= top.usr.init_a2_a_1 0)) - (>= top.usr.init_a3_a_1 0)) - (>= top.usr.init_t_a_1 0))) - (let - ((X1 Bool top.res.abs_11_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (let - ((X3 Int top.res.abs_1_a_1)) - (let - ((X4 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (and - (and - (and - (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) - (<= 0 X2)) - (<= X2 3)) - (<= (+ (- X4 X3) X2) 9)))) - (__node_trans_ticket3i_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.usr.init_a1_a_1 - top.usr.init_a2_a_1 - top.usr.init_a3_a_1 - top.usr.init_t_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes9_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.e9 Bool) -(declare-primed-var top.usr.init_a1 Int) -(declare-primed-var top.usr.init_a2 Int) -(declare-primed-var top.usr.init_a3 Int) -(declare-primed-var top.usr.init_t Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_10 - (and - (and - (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) - (>= top.usr.init_a3 0)) - (>= top.usr.init_t 0))) - (let - ((X1 Bool top.res.abs_11)) - (let - ((X2 Int top.res.abs_2)) - (let - ((X3 Int top.res.abs_1)) - (let - ((X4 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> - X1 - (and - (and - (and - (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) - (<= 0 X2)) - (<= X2 3)) - (<= (+ (- X4 X3) X2) 9)))) - (__node_init_ticket3i_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) - (__node_init_excludes9_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - top.res.init_flag)))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.e9! Bool) - (top.usr.init_a1! Int) - (top.usr.init_a2! Int) - (top.usr.init_a3! Int) - (top.usr.init_t! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_10! - (and - (and - (and - (and top.res.abs_9! (>= top.usr.init_a1! 0)) - (>= top.usr.init_a2! 0)) - (>= top.usr.init_a3! 0)) - (>= top.usr.init_t! 0))) - (let - ((X1 Bool top.res.abs_11!)) - (let - ((X2 Int top.res.abs_2!)) - (let - ((X3 Int top.res.abs_1!)) - (let - ((X4 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> - X1 - (and - (and - (and - (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) - (<= 0 X2)) - (<= X2 3)) - (<= (+ (- X4 X3) X2) 9)))) - (__node_trans_ticket3i_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.usr.init_a1! - top.usr.init_a2! - top.usr.init_a3! - top.usr.init_t! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_1! - top.res.abs_10 - top.res.abs_11 - top.res.inst_1) - (__node_trans_excludes9_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.res.abs_9! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!))))))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes9_0 ((excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) excludes9.usr.X3_a_0) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) excludes9.usr.X4_a_0) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) excludes9.usr.X5_a_0) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) excludes9.usr.X6_a_0) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) excludes9.usr.X7_a_0) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) excludes9.usr.X8_a_0) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) excludes9.usr.X9_a_0))) excludes9.res.init_flag_a_0)) +(define-fun __node_trans_excludes9_0 ((excludes9.usr.X1_a_1 Bool) (excludes9.usr.X2_a_1 Bool) (excludes9.usr.X3_a_1 Bool) (excludes9.usr.X4_a_1 Bool) (excludes9.usr.X5_a_1 Bool) (excludes9.usr.X6_a_1 Bool) (excludes9.usr.X7_a_1 Bool) (excludes9.usr.X8_a_1 Bool) (excludes9.usr.X9_a_1 Bool) (excludes9.usr.excludes_a_1 Bool) (excludes9.res.init_flag_a_1 Bool) (excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) excludes9.usr.X3_a_1) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) excludes9.usr.X4_a_1) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) excludes9.usr.X5_a_1) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) excludes9.usr.X6_a_1) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) excludes9.usr.X7_a_1) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) excludes9.usr.X8_a_1) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) excludes9.usr.X9_a_1))) (not excludes9.res.init_flag_a_1))) +(define-fun __node_init_ticket3i_0 ((ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (and (= ticket3i.usr.p1_a_0 0) (let ((X1 (let ((X1 ticket3i.res.nondet_0)) (= X1 0)))) (and (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) (let ((X2 (let ((X2 ticket3i.res.nondet_2) (X3 ticket3i.res.nondet_1)) (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) (and (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) (let ((X3 (let ((X3 ticket3i.res.nondet_4)) (= X3 0)))) (and (= ticket3i.usr.p2_a_0 0) (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) (let ((X4 (let ((X4 ticket3i.res.nondet_6) (X5 ticket3i.res.nondet_5)) (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) (let ((X5 (let ((X5 ticket3i.res.nondet_7)) (= X5 2)))) (let ((X6 (let ((X6 ticket3i.res.nondet_8)) (= X6 0)))) (and (= ticket3i.usr.p3_a_0 0) (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) (let ((X7 (let ((X7 ticket3i.res.nondet_10) (X8 ticket3i.res.nondet_9)) (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) (let ((X8 (let ((X8 ticket3i.res.nondet_11)) (= X8 2)))) (let ((X9 (let ((X9 ticket3i.res.nondet_3)) (= X9 2)))) (and (= ticket3i.usr.erreur_ticket3i_a_0 (ite (or (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) (>= ticket3i.usr.p3_a_0 3)) true false)) ticket3i.res.init_flag_a_0)))))))))))))))) +(define-fun __node_trans_ticket3i_0 ((ticket3i.usr.e1_a_1 Bool) (ticket3i.usr.e2_a_1 Bool) (ticket3i.usr.e3_a_1 Bool) (ticket3i.usr.e4_a_1 Bool) (ticket3i.usr.e5_a_1 Bool) (ticket3i.usr.e6_a_1 Bool) (ticket3i.usr.e7_a_1 Bool) (ticket3i.usr.e8_a_1 Bool) (ticket3i.usr.e9_a_1 Bool) (ticket3i.usr.init_a1_a_1 Int) (ticket3i.usr.init_a2_a_1 Int) (ticket3i.usr.init_a3_a_1 Int) (ticket3i.usr.init_t_a_1 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_1 Int) (ticket3i.usr.p2_a_1 Int) (ticket3i.usr.p3_a_1 Int) (ticket3i.usr.t_a_1 Int) (ticket3i.usr.s_a_1 Int) (ticket3i.usr.a1_a_1 Int) (ticket3i.usr.a2_a_1 Int) (ticket3i.usr.a3_a_1 Int) (ticket3i.usr.erreur_ticket3i_a_1 Bool) (ticket3i.res.init_flag_a_1 Bool) (ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (let ((X1 (= ticket3i.usr.p1_a_0 2))) (let ((X2 (= ticket3i.usr.p1_a_0 0))) (and (= ticket3i.usr.a1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) ticket3i.usr.a1_a_0)) (let ((X3 (and (= ticket3i.usr.p1_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) (and (= ticket3i.usr.p1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 1 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e2_a_1 (ite X3 2 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e3_a_1 (ite X1 0 ticket3i.usr.p1_a_0) ticket3i.usr.p1_a_0)))) (let ((X4 (= ticket3i.usr.p3_a_0 2))) (let ((X5 (= ticket3i.usr.p2_a_0 2))) (and (= ticket3i.usr.s_a_1 (ite ticket3i.usr.e3_a_1 (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) ticket3i.usr.s_a_0)))) (let ((X6 (= ticket3i.usr.p3_a_0 0))) (let ((X7 (= ticket3i.usr.p2_a_0 0))) (and (= ticket3i.usr.t_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e4_a_1 (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e7_a_1 (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) ticket3i.usr.t_a_0)))) (= ticket3i.usr.a2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) ticket3i.usr.a2_a_0)) (let ((X8 (and (= ticket3i.usr.p2_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) (and (= ticket3i.usr.p2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 1 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e5_a_1 (ite X8 2 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 0 ticket3i.usr.p2_a_0) ticket3i.usr.p2_a_0)))) (= ticket3i.usr.a3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) ticket3i.usr.a3_a_0)) (let ((X9 (and (= ticket3i.usr.p3_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) (and (= ticket3i.usr.p3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 1 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e8_a_1 (ite X9 2 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 0 ticket3i.usr.p3_a_0) ticket3i.usr.p3_a_0)))) (= ticket3i.usr.erreur_ticket3i_a_1 (ite (or (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) (>= ticket3i.usr.p3_a_1 3)) true false)) (not ticket3i.res.init_flag_a_1))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_0 (and (and (and (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) (>= top.usr.init_a2_a_0 0)) (>= top.usr.init_a3_a_0 0)) (>= top.usr.init_t_a_0 0))) (let ((X1 top.res.abs_11_a_0)) (let ((X2 top.res.abs_2_a_0)) (let ((X3 top.res.abs_1_a_0)) (let ((X4 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (and (and (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= 0 X2)) (<= X2 3)) (<= (+ (- X4 X3) X2) 9)))) (__node_init_ticket3i_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_init_excludes9_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.e9_a_1 Bool) (top.usr.init_a1_a_1 Int) (top.usr.init_a2_a_1 Int) (top.usr.init_a3_a_1 Int) (top.usr.init_t_a_1 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_1 (and (and (and (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) (>= top.usr.init_a2_a_1 0)) (>= top.usr.init_a3_a_1 0)) (>= top.usr.init_t_a_1 0))) (let ((X1 top.res.abs_11_a_1)) (let ((X2 top.res.abs_2_a_1)) (let ((X3 top.res.abs_1_a_1)) (let ((X4 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (and (and (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= 0 X2)) (<= X2 3)) (<= (+ (- X4 X3) X2) 9)))) (__node_trans_ticket3i_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.usr.init_a1_a_1 top.usr.init_a2_a_1 top.usr.init_a3_a_1 top.usr.init_t_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_trans_excludes9_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_10 (and (and (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) (>= top.usr.init_a3 0)) (>= top.usr.init_t 0))) (let ((X1 top.res.abs_11)) (let ((X2 top.res.abs_2)) (let ((X3 top.res.abs_1)) (let ((X4 top.res.abs_0)) (and (= top.usr.OK (=> X1 (and (and (and (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= 0 X2)) (<= X2 3)) (<= (+ (- X4 X3) X2) 9)))) (__node_init_ticket3i_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_init_excludes9_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) top.res.init_flag))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.e9! Bool) (top.usr.init_a1! Int) (top.usr.init_a2! Int) (top.usr.init_a3! Int) (top.usr.init_t! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_10! (and (and (and (and top.res.abs_9! (>= top.usr.init_a1! 0)) (>= top.usr.init_a2! 0)) (>= top.usr.init_a3! 0)) (>= top.usr.init_t! 0))) (let ((X1 top.res.abs_11!)) (let ((X2 top.res.abs_2!)) (let ((X3 top.res.abs_1!)) (let ((X4 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (and (and (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= 0 X2)) (<= X2 3)) (<= (+ (- X4 X3) X2) 9)))) (__node_trans_ticket3i_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.usr.init_a1! top.usr.init_a2! top.usr.init_a3! top.usr.init_t! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_1! top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_trans_excludes9_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.res.abs_9! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ticket3i_7_e7_3176.sl b/benchmarks/LIA/Lustre/ticket3i_7_e7_3176.sl index 349c5a6..e6df010 100644 --- a/benchmarks/LIA/Lustre/ticket3i_7_e7_3176.sl +++ b/benchmarks/LIA/Lustre/ticket3i_7_e7_3176.sl @@ -1,1441 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes9_0 ( - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - excludes9.usr.X3_a_0) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - excludes9.usr.X4_a_0) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - excludes9.usr.X5_a_0) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - excludes9.usr.X6_a_0) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - excludes9.usr.X7_a_0) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - excludes9.usr.X8_a_0) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - excludes9.usr.X9_a_0))) - excludes9.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes9_0 ( - (excludes9.usr.X1_a_1 Bool) - (excludes9.usr.X2_a_1 Bool) - (excludes9.usr.X3_a_1 Bool) - (excludes9.usr.X4_a_1 Bool) - (excludes9.usr.X5_a_1 Bool) - (excludes9.usr.X6_a_1 Bool) - (excludes9.usr.X7_a_1 Bool) - (excludes9.usr.X8_a_1 Bool) - (excludes9.usr.X9_a_1 Bool) - (excludes9.usr.excludes_a_1 Bool) - (excludes9.res.init_flag_a_1 Bool) - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - excludes9.usr.X3_a_1) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - excludes9.usr.X4_a_1) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - excludes9.usr.X5_a_1) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - excludes9.usr.X6_a_1) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - excludes9.usr.X7_a_1) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - excludes9.usr.X8_a_1) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - excludes9.usr.X9_a_1))) - (not excludes9.res.init_flag_a_1)) -) - -(define-fun - __node_init_ticket3i_0 ( - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (and - (= ticket3i.usr.p1_a_0 0) - (let - ((X1 Bool (let ((X1 Int ticket3i.res.nondet_0)) (= X1 0)))) - (and - (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) - (let - ((X2 - Bool (let - ((X2 Int ticket3i.res.nondet_2) (X3 Int ticket3i.res.nondet_1)) - (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) - (and - (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) - (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) - (let - ((X3 Bool (let ((X3 Int ticket3i.res.nondet_4)) (= X3 0)))) - (and - (= ticket3i.usr.p2_a_0 0) - (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) - (let - ((X4 - Bool (let - ((X4 Int ticket3i.res.nondet_6) - (X5 Int ticket3i.res.nondet_5)) - (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) - (let - ((X5 Bool (let ((X5 Int ticket3i.res.nondet_7)) (= X5 2)))) - (let - ((X6 Bool (let ((X6 Int ticket3i.res.nondet_8)) (= X6 0)))) - (and - (= ticket3i.usr.p3_a_0 0) - (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) - (let - ((X7 - Bool (let - ((X7 Int ticket3i.res.nondet_10) - (X8 Int ticket3i.res.nondet_9)) - (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) - (let - ((X8 Bool (let ((X8 Int ticket3i.res.nondet_11)) (= X8 2)))) - (let - ((X9 Bool (let ((X9 Int ticket3i.res.nondet_3)) (= X9 2)))) - (and - (= - ticket3i.usr.erreur_ticket3i_a_0 - (ite - (or - (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) - (>= ticket3i.usr.p3_a_0 3)) - true - false)) - ticket3i.res.init_flag_a_0))))))))))))))) -) - -(define-fun - __node_trans_ticket3i_0 ( - (ticket3i.usr.e1_a_1 Bool) - (ticket3i.usr.e2_a_1 Bool) - (ticket3i.usr.e3_a_1 Bool) - (ticket3i.usr.e4_a_1 Bool) - (ticket3i.usr.e5_a_1 Bool) - (ticket3i.usr.e6_a_1 Bool) - (ticket3i.usr.e7_a_1 Bool) - (ticket3i.usr.e8_a_1 Bool) - (ticket3i.usr.e9_a_1 Bool) - (ticket3i.usr.init_a1_a_1 Int) - (ticket3i.usr.init_a2_a_1 Int) - (ticket3i.usr.init_a3_a_1 Int) - (ticket3i.usr.init_t_a_1 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_1 Int) - (ticket3i.usr.p2_a_1 Int) - (ticket3i.usr.p3_a_1 Int) - (ticket3i.usr.t_a_1 Int) - (ticket3i.usr.s_a_1 Int) - (ticket3i.usr.a1_a_1 Int) - (ticket3i.usr.a2_a_1 Int) - (ticket3i.usr.a3_a_1 Int) - (ticket3i.usr.erreur_ticket3i_a_1 Bool) - (ticket3i.res.init_flag_a_1 Bool) - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (= ticket3i.usr.p1_a_0 2))) - (let - ((X2 Bool (= ticket3i.usr.p1_a_0 0))) - (and - (= - ticket3i.usr.a1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) - ticket3i.usr.a1_a_0)) - (let - ((X3 - Bool (and - (= ticket3i.usr.p1_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) - (and - (= - ticket3i.usr.p1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 1 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e2_a_1 - (ite X3 2 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e3_a_1 - (ite X1 0 ticket3i.usr.p1_a_0) - ticket3i.usr.p1_a_0)))) - (let - ((X4 Bool (= ticket3i.usr.p3_a_0 2))) - (let - ((X5 Bool (= ticket3i.usr.p2_a_0 2))) - (and - (= - ticket3i.usr.s_a_1 - (ite - ticket3i.usr.e3_a_1 - (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - ticket3i.usr.s_a_0)))) - (let - ((X6 Bool (= ticket3i.usr.p3_a_0 0))) - (let - ((X7 Bool (= ticket3i.usr.p2_a_0 0))) - (and - (= - ticket3i.usr.t_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e4_a_1 - (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e7_a_1 - (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - ticket3i.usr.t_a_0)))) - (= - ticket3i.usr.a2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) - ticket3i.usr.a2_a_0)) - (let - ((X8 - Bool (and - (= ticket3i.usr.p2_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) - (and - (= - ticket3i.usr.p2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 1 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e5_a_1 - (ite X8 2 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 0 ticket3i.usr.p2_a_0) - ticket3i.usr.p2_a_0)))) - (= - ticket3i.usr.a3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) - ticket3i.usr.a3_a_0)) - (let - ((X9 - Bool (and - (= ticket3i.usr.p3_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) - (and - (= - ticket3i.usr.p3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 1 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e8_a_1 - (ite X9 2 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 0 ticket3i.usr.p3_a_0) - ticket3i.usr.p3_a_0)))) - (= - ticket3i.usr.erreur_ticket3i_a_1 - (ite - (or - (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) - (>= ticket3i.usr.p3_a_1 3)) - true - false)) - (not ticket3i.res.init_flag_a_1)))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_0 - (and - (and - (and - (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) - (>= top.usr.init_a2_a_0 0)) - (>= top.usr.init_a3_a_0 0)) - (>= top.usr.init_t_a_0 0))) - (let - ((X1 Bool top.res.abs_11_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (let - ((X3 Int top.res.abs_1_a_0)) - (let - ((X4 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (and - (and - (and - (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) - (<= 0 X2)) - (<= X2 3)) - (<= (+ (+ X4 X3) X2) 9)))) - (__node_init_ticket3i_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_init_excludes9_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.e9_a_1 Bool) - (top.usr.init_a1_a_1 Int) - (top.usr.init_a2_a_1 Int) - (top.usr.init_a3_a_1 Int) - (top.usr.init_t_a_1 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_1 - (and - (and - (and - (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) - (>= top.usr.init_a2_a_1 0)) - (>= top.usr.init_a3_a_1 0)) - (>= top.usr.init_t_a_1 0))) - (let - ((X1 Bool top.res.abs_11_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (let - ((X3 Int top.res.abs_1_a_1)) - (let - ((X4 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (and - (and - (and - (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) - (<= 0 X2)) - (<= X2 3)) - (<= (+ (+ X4 X3) X2) 9)))) - (__node_trans_ticket3i_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.usr.init_a1_a_1 - top.usr.init_a2_a_1 - top.usr.init_a3_a_1 - top.usr.init_t_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes9_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.e9 Bool) -(declare-primed-var top.usr.init_a1 Int) -(declare-primed-var top.usr.init_a2 Int) -(declare-primed-var top.usr.init_a3 Int) -(declare-primed-var top.usr.init_t Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_10 - (and - (and - (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) - (>= top.usr.init_a3 0)) - (>= top.usr.init_t 0))) - (let - ((X1 Bool top.res.abs_11)) - (let - ((X2 Int top.res.abs_2)) - (let - ((X3 Int top.res.abs_1)) - (let - ((X4 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> - X1 - (and - (and - (and - (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) - (<= 0 X2)) - (<= X2 3)) - (<= (+ (+ X4 X3) X2) 9)))) - (__node_init_ticket3i_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) - (__node_init_excludes9_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - top.res.init_flag)))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.e9! Bool) - (top.usr.init_a1! Int) - (top.usr.init_a2! Int) - (top.usr.init_a3! Int) - (top.usr.init_t! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_10! - (and - (and - (and - (and top.res.abs_9! (>= top.usr.init_a1! 0)) - (>= top.usr.init_a2! 0)) - (>= top.usr.init_a3! 0)) - (>= top.usr.init_t! 0))) - (let - ((X1 Bool top.res.abs_11!)) - (let - ((X2 Int top.res.abs_2!)) - (let - ((X3 Int top.res.abs_1!)) - (let - ((X4 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> - X1 - (and - (and - (and - (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) - (<= 0 X2)) - (<= X2 3)) - (<= (+ (+ X4 X3) X2) 9)))) - (__node_trans_ticket3i_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.usr.init_a1! - top.usr.init_a2! - top.usr.init_a3! - top.usr.init_t! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_1! - top.res.abs_10 - top.res.abs_11 - top.res.inst_1) - (__node_trans_excludes9_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.res.abs_9! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!))))))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes9_0 ((excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) excludes9.usr.X3_a_0) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) excludes9.usr.X4_a_0) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) excludes9.usr.X5_a_0) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) excludes9.usr.X6_a_0) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) excludes9.usr.X7_a_0) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) excludes9.usr.X8_a_0) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) excludes9.usr.X9_a_0))) excludes9.res.init_flag_a_0)) +(define-fun __node_trans_excludes9_0 ((excludes9.usr.X1_a_1 Bool) (excludes9.usr.X2_a_1 Bool) (excludes9.usr.X3_a_1 Bool) (excludes9.usr.X4_a_1 Bool) (excludes9.usr.X5_a_1 Bool) (excludes9.usr.X6_a_1 Bool) (excludes9.usr.X7_a_1 Bool) (excludes9.usr.X8_a_1 Bool) (excludes9.usr.X9_a_1 Bool) (excludes9.usr.excludes_a_1 Bool) (excludes9.res.init_flag_a_1 Bool) (excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) excludes9.usr.X3_a_1) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) excludes9.usr.X4_a_1) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) excludes9.usr.X5_a_1) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) excludes9.usr.X6_a_1) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) excludes9.usr.X7_a_1) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) excludes9.usr.X8_a_1) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) excludes9.usr.X9_a_1))) (not excludes9.res.init_flag_a_1))) +(define-fun __node_init_ticket3i_0 ((ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (and (= ticket3i.usr.p1_a_0 0) (let ((X1 (let ((X1 ticket3i.res.nondet_0)) (= X1 0)))) (and (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) (let ((X2 (let ((X2 ticket3i.res.nondet_2) (X3 ticket3i.res.nondet_1)) (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) (and (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) (let ((X3 (let ((X3 ticket3i.res.nondet_4)) (= X3 0)))) (and (= ticket3i.usr.p2_a_0 0) (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) (let ((X4 (let ((X4 ticket3i.res.nondet_6) (X5 ticket3i.res.nondet_5)) (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) (let ((X5 (let ((X5 ticket3i.res.nondet_7)) (= X5 2)))) (let ((X6 (let ((X6 ticket3i.res.nondet_8)) (= X6 0)))) (and (= ticket3i.usr.p3_a_0 0) (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) (let ((X7 (let ((X7 ticket3i.res.nondet_10) (X8 ticket3i.res.nondet_9)) (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) (let ((X8 (let ((X8 ticket3i.res.nondet_11)) (= X8 2)))) (let ((X9 (let ((X9 ticket3i.res.nondet_3)) (= X9 2)))) (and (= ticket3i.usr.erreur_ticket3i_a_0 (ite (or (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) (>= ticket3i.usr.p3_a_0 3)) true false)) ticket3i.res.init_flag_a_0)))))))))))))))) +(define-fun __node_trans_ticket3i_0 ((ticket3i.usr.e1_a_1 Bool) (ticket3i.usr.e2_a_1 Bool) (ticket3i.usr.e3_a_1 Bool) (ticket3i.usr.e4_a_1 Bool) (ticket3i.usr.e5_a_1 Bool) (ticket3i.usr.e6_a_1 Bool) (ticket3i.usr.e7_a_1 Bool) (ticket3i.usr.e8_a_1 Bool) (ticket3i.usr.e9_a_1 Bool) (ticket3i.usr.init_a1_a_1 Int) (ticket3i.usr.init_a2_a_1 Int) (ticket3i.usr.init_a3_a_1 Int) (ticket3i.usr.init_t_a_1 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_1 Int) (ticket3i.usr.p2_a_1 Int) (ticket3i.usr.p3_a_1 Int) (ticket3i.usr.t_a_1 Int) (ticket3i.usr.s_a_1 Int) (ticket3i.usr.a1_a_1 Int) (ticket3i.usr.a2_a_1 Int) (ticket3i.usr.a3_a_1 Int) (ticket3i.usr.erreur_ticket3i_a_1 Bool) (ticket3i.res.init_flag_a_1 Bool) (ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (let ((X1 (= ticket3i.usr.p1_a_0 2))) (let ((X2 (= ticket3i.usr.p1_a_0 0))) (and (= ticket3i.usr.a1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) ticket3i.usr.a1_a_0)) (let ((X3 (and (= ticket3i.usr.p1_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) (and (= ticket3i.usr.p1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 1 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e2_a_1 (ite X3 2 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e3_a_1 (ite X1 0 ticket3i.usr.p1_a_0) ticket3i.usr.p1_a_0)))) (let ((X4 (= ticket3i.usr.p3_a_0 2))) (let ((X5 (= ticket3i.usr.p2_a_0 2))) (and (= ticket3i.usr.s_a_1 (ite ticket3i.usr.e3_a_1 (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) ticket3i.usr.s_a_0)))) (let ((X6 (= ticket3i.usr.p3_a_0 0))) (let ((X7 (= ticket3i.usr.p2_a_0 0))) (and (= ticket3i.usr.t_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e4_a_1 (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e7_a_1 (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) ticket3i.usr.t_a_0)))) (= ticket3i.usr.a2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) ticket3i.usr.a2_a_0)) (let ((X8 (and (= ticket3i.usr.p2_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) (and (= ticket3i.usr.p2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 1 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e5_a_1 (ite X8 2 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 0 ticket3i.usr.p2_a_0) ticket3i.usr.p2_a_0)))) (= ticket3i.usr.a3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) ticket3i.usr.a3_a_0)) (let ((X9 (and (= ticket3i.usr.p3_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) (and (= ticket3i.usr.p3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 1 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e8_a_1 (ite X9 2 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 0 ticket3i.usr.p3_a_0) ticket3i.usr.p3_a_0)))) (= ticket3i.usr.erreur_ticket3i_a_1 (ite (or (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) (>= ticket3i.usr.p3_a_1 3)) true false)) (not ticket3i.res.init_flag_a_1))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_0 (and (and (and (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) (>= top.usr.init_a2_a_0 0)) (>= top.usr.init_a3_a_0 0)) (>= top.usr.init_t_a_0 0))) (let ((X1 top.res.abs_11_a_0)) (let ((X2 top.res.abs_2_a_0)) (let ((X3 top.res.abs_1_a_0)) (let ((X4 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (and (and (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= 0 X2)) (<= X2 3)) (<= (+ (+ X4 X3) X2) 9)))) (__node_init_ticket3i_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_init_excludes9_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.e9_a_1 Bool) (top.usr.init_a1_a_1 Int) (top.usr.init_a2_a_1 Int) (top.usr.init_a3_a_1 Int) (top.usr.init_t_a_1 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_1 (and (and (and (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) (>= top.usr.init_a2_a_1 0)) (>= top.usr.init_a3_a_1 0)) (>= top.usr.init_t_a_1 0))) (let ((X1 top.res.abs_11_a_1)) (let ((X2 top.res.abs_2_a_1)) (let ((X3 top.res.abs_1_a_1)) (let ((X4 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (and (and (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= 0 X2)) (<= X2 3)) (<= (+ (+ X4 X3) X2) 9)))) (__node_trans_ticket3i_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.usr.init_a1_a_1 top.usr.init_a2_a_1 top.usr.init_a3_a_1 top.usr.init_t_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_trans_excludes9_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_10 (and (and (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) (>= top.usr.init_a3 0)) (>= top.usr.init_t 0))) (let ((X1 top.res.abs_11)) (let ((X2 top.res.abs_2)) (let ((X3 top.res.abs_1)) (let ((X4 top.res.abs_0)) (and (= top.usr.OK (=> X1 (and (and (and (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= 0 X2)) (<= X2 3)) (<= (+ (+ X4 X3) X2) 9)))) (__node_init_ticket3i_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_init_excludes9_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) top.res.init_flag))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.e9! Bool) (top.usr.init_a1! Int) (top.usr.init_a2! Int) (top.usr.init_a3! Int) (top.usr.init_t! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_10! (and (and (and (and top.res.abs_9! (>= top.usr.init_a1! 0)) (>= top.usr.init_a2! 0)) (>= top.usr.init_a3! 0)) (>= top.usr.init_t! 0))) (let ((X1 top.res.abs_11!)) (let ((X2 top.res.abs_2!)) (let ((X3 top.res.abs_1!)) (let ((X4 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (and (and (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= 0 X2)) (<= X2 3)) (<= (+ (+ X4 X3) X2) 9)))) (__node_trans_ticket3i_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.usr.init_a1! top.usr.init_a2! top.usr.init_a3! top.usr.init_t! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_1! top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_trans_excludes9_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.res.abs_9! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ticket3i_7_e7_3176_e1_2924.sl b/benchmarks/LIA/Lustre/ticket3i_7_e7_3176_e1_2924.sl index 6a7263e..ccecf2b 100644 --- a/benchmarks/LIA/Lustre/ticket3i_7_e7_3176_e1_2924.sl +++ b/benchmarks/LIA/Lustre/ticket3i_7_e7_3176_e1_2924.sl @@ -1,1441 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes9_0 ( - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - excludes9.usr.X3_a_0) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - excludes9.usr.X4_a_0) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - excludes9.usr.X5_a_0) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - excludes9.usr.X6_a_0) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - excludes9.usr.X7_a_0) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - excludes9.usr.X8_a_0) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - excludes9.usr.X9_a_0))) - excludes9.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes9_0 ( - (excludes9.usr.X1_a_1 Bool) - (excludes9.usr.X2_a_1 Bool) - (excludes9.usr.X3_a_1 Bool) - (excludes9.usr.X4_a_1 Bool) - (excludes9.usr.X5_a_1 Bool) - (excludes9.usr.X6_a_1 Bool) - (excludes9.usr.X7_a_1 Bool) - (excludes9.usr.X8_a_1 Bool) - (excludes9.usr.X9_a_1 Bool) - (excludes9.usr.excludes_a_1 Bool) - (excludes9.res.init_flag_a_1 Bool) - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - excludes9.usr.X3_a_1) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - excludes9.usr.X4_a_1) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - excludes9.usr.X5_a_1) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - excludes9.usr.X6_a_1) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - excludes9.usr.X7_a_1) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - excludes9.usr.X8_a_1) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - excludes9.usr.X9_a_1))) - (not excludes9.res.init_flag_a_1)) -) - -(define-fun - __node_init_ticket3i_0 ( - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (and - (= ticket3i.usr.p1_a_0 0) - (let - ((X1 Bool (let ((X1 Int ticket3i.res.nondet_0)) (= X1 0)))) - (and - (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) - (let - ((X2 - Bool (let - ((X2 Int ticket3i.res.nondet_2) (X3 Int ticket3i.res.nondet_1)) - (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) - (and - (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) - (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) - (let - ((X3 Bool (let ((X3 Int ticket3i.res.nondet_4)) (= X3 0)))) - (and - (= ticket3i.usr.p2_a_0 0) - (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) - (let - ((X4 - Bool (let - ((X4 Int ticket3i.res.nondet_6) - (X5 Int ticket3i.res.nondet_5)) - (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) - (let - ((X5 Bool (let ((X5 Int ticket3i.res.nondet_7)) (= X5 2)))) - (let - ((X6 Bool (let ((X6 Int ticket3i.res.nondet_8)) (= X6 0)))) - (and - (= ticket3i.usr.p3_a_0 0) - (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) - (let - ((X7 - Bool (let - ((X7 Int ticket3i.res.nondet_10) - (X8 Int ticket3i.res.nondet_9)) - (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) - (let - ((X8 Bool (let ((X8 Int ticket3i.res.nondet_11)) (= X8 2)))) - (let - ((X9 Bool (let ((X9 Int ticket3i.res.nondet_3)) (= X9 2)))) - (and - (= - ticket3i.usr.erreur_ticket3i_a_0 - (ite - (or - (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) - (>= ticket3i.usr.p3_a_0 3)) - true - false)) - ticket3i.res.init_flag_a_0))))))))))))))) -) - -(define-fun - __node_trans_ticket3i_0 ( - (ticket3i.usr.e1_a_1 Bool) - (ticket3i.usr.e2_a_1 Bool) - (ticket3i.usr.e3_a_1 Bool) - (ticket3i.usr.e4_a_1 Bool) - (ticket3i.usr.e5_a_1 Bool) - (ticket3i.usr.e6_a_1 Bool) - (ticket3i.usr.e7_a_1 Bool) - (ticket3i.usr.e8_a_1 Bool) - (ticket3i.usr.e9_a_1 Bool) - (ticket3i.usr.init_a1_a_1 Int) - (ticket3i.usr.init_a2_a_1 Int) - (ticket3i.usr.init_a3_a_1 Int) - (ticket3i.usr.init_t_a_1 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_1 Int) - (ticket3i.usr.p2_a_1 Int) - (ticket3i.usr.p3_a_1 Int) - (ticket3i.usr.t_a_1 Int) - (ticket3i.usr.s_a_1 Int) - (ticket3i.usr.a1_a_1 Int) - (ticket3i.usr.a2_a_1 Int) - (ticket3i.usr.a3_a_1 Int) - (ticket3i.usr.erreur_ticket3i_a_1 Bool) - (ticket3i.res.init_flag_a_1 Bool) - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (= ticket3i.usr.p1_a_0 2))) - (let - ((X2 Bool (= ticket3i.usr.p1_a_0 0))) - (and - (= - ticket3i.usr.a1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) - ticket3i.usr.a1_a_0)) - (let - ((X3 - Bool (and - (= ticket3i.usr.p1_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) - (and - (= - ticket3i.usr.p1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 1 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e2_a_1 - (ite X3 2 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e3_a_1 - (ite X1 0 ticket3i.usr.p1_a_0) - ticket3i.usr.p1_a_0)))) - (let - ((X4 Bool (= ticket3i.usr.p3_a_0 2))) - (let - ((X5 Bool (= ticket3i.usr.p2_a_0 2))) - (and - (= - ticket3i.usr.s_a_1 - (ite - ticket3i.usr.e3_a_1 - (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - ticket3i.usr.s_a_0)))) - (let - ((X6 Bool (= ticket3i.usr.p3_a_0 0))) - (let - ((X7 Bool (= ticket3i.usr.p2_a_0 0))) - (and - (= - ticket3i.usr.t_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e4_a_1 - (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e7_a_1 - (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - ticket3i.usr.t_a_0)))) - (= - ticket3i.usr.a2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) - ticket3i.usr.a2_a_0)) - (let - ((X8 - Bool (and - (= ticket3i.usr.p2_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) - (and - (= - ticket3i.usr.p2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 1 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e5_a_1 - (ite X8 2 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 0 ticket3i.usr.p2_a_0) - ticket3i.usr.p2_a_0)))) - (= - ticket3i.usr.a3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) - ticket3i.usr.a3_a_0)) - (let - ((X9 - Bool (and - (= ticket3i.usr.p3_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) - (and - (= - ticket3i.usr.p3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 1 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e8_a_1 - (ite X9 2 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 0 ticket3i.usr.p3_a_0) - ticket3i.usr.p3_a_0)))) - (= - ticket3i.usr.erreur_ticket3i_a_1 - (ite - (or - (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) - (>= ticket3i.usr.p3_a_1 3)) - true - false)) - (not ticket3i.res.init_flag_a_1)))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_0 - (and - (and - (and - (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) - (>= top.usr.init_a2_a_0 0)) - (>= top.usr.init_a3_a_0 0)) - (>= top.usr.init_t_a_0 0))) - (let - ((X1 Bool top.res.abs_11_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (let - ((X3 Int top.res.abs_1_a_0)) - (let - ((X4 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (and - (and - (and - (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) - (<= 0 X2)) - (<= X2 3)) - (<= (+ (+ (+ X4 1) X3) X2) 9)))) - (__node_init_ticket3i_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_init_excludes9_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.e9_a_1 Bool) - (top.usr.init_a1_a_1 Int) - (top.usr.init_a2_a_1 Int) - (top.usr.init_a3_a_1 Int) - (top.usr.init_t_a_1 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_1 - (and - (and - (and - (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) - (>= top.usr.init_a2_a_1 0)) - (>= top.usr.init_a3_a_1 0)) - (>= top.usr.init_t_a_1 0))) - (let - ((X1 Bool top.res.abs_11_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (let - ((X3 Int top.res.abs_1_a_1)) - (let - ((X4 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (and - (and - (and - (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) - (<= 0 X2)) - (<= X2 3)) - (<= (+ (+ (+ X4 1) X3) X2) 9)))) - (__node_trans_ticket3i_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.usr.init_a1_a_1 - top.usr.init_a2_a_1 - top.usr.init_a3_a_1 - top.usr.init_t_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes9_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.e9 Bool) -(declare-primed-var top.usr.init_a1 Int) -(declare-primed-var top.usr.init_a2 Int) -(declare-primed-var top.usr.init_a3 Int) -(declare-primed-var top.usr.init_t Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_10 - (and - (and - (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) - (>= top.usr.init_a3 0)) - (>= top.usr.init_t 0))) - (let - ((X1 Bool top.res.abs_11)) - (let - ((X2 Int top.res.abs_2)) - (let - ((X3 Int top.res.abs_1)) - (let - ((X4 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> - X1 - (and - (and - (and - (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) - (<= 0 X2)) - (<= X2 3)) - (<= (+ (+ (+ X4 1) X3) X2) 9)))) - (__node_init_ticket3i_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) - (__node_init_excludes9_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - top.res.init_flag)))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.e9! Bool) - (top.usr.init_a1! Int) - (top.usr.init_a2! Int) - (top.usr.init_a3! Int) - (top.usr.init_t! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_10! - (and - (and - (and - (and top.res.abs_9! (>= top.usr.init_a1! 0)) - (>= top.usr.init_a2! 0)) - (>= top.usr.init_a3! 0)) - (>= top.usr.init_t! 0))) - (let - ((X1 Bool top.res.abs_11!)) - (let - ((X2 Int top.res.abs_2!)) - (let - ((X3 Int top.res.abs_1!)) - (let - ((X4 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> - X1 - (and - (and - (and - (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) - (<= 0 X2)) - (<= X2 3)) - (<= (+ (+ (+ X4 1) X3) X2) 9)))) - (__node_trans_ticket3i_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.usr.init_a1! - top.usr.init_a2! - top.usr.init_a3! - top.usr.init_t! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_1! - top.res.abs_10 - top.res.abs_11 - top.res.inst_1) - (__node_trans_excludes9_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.res.abs_9! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!))))))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes9_0 ((excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) excludes9.usr.X3_a_0) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) excludes9.usr.X4_a_0) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) excludes9.usr.X5_a_0) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) excludes9.usr.X6_a_0) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) excludes9.usr.X7_a_0) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) excludes9.usr.X8_a_0) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) excludes9.usr.X9_a_0))) excludes9.res.init_flag_a_0)) +(define-fun __node_trans_excludes9_0 ((excludes9.usr.X1_a_1 Bool) (excludes9.usr.X2_a_1 Bool) (excludes9.usr.X3_a_1 Bool) (excludes9.usr.X4_a_1 Bool) (excludes9.usr.X5_a_1 Bool) (excludes9.usr.X6_a_1 Bool) (excludes9.usr.X7_a_1 Bool) (excludes9.usr.X8_a_1 Bool) (excludes9.usr.X9_a_1 Bool) (excludes9.usr.excludes_a_1 Bool) (excludes9.res.init_flag_a_1 Bool) (excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) excludes9.usr.X3_a_1) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) excludes9.usr.X4_a_1) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) excludes9.usr.X5_a_1) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) excludes9.usr.X6_a_1) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) excludes9.usr.X7_a_1) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) excludes9.usr.X8_a_1) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) excludes9.usr.X9_a_1))) (not excludes9.res.init_flag_a_1))) +(define-fun __node_init_ticket3i_0 ((ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (and (= ticket3i.usr.p1_a_0 0) (let ((X1 (let ((X1 ticket3i.res.nondet_0)) (= X1 0)))) (and (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) (let ((X2 (let ((X2 ticket3i.res.nondet_2) (X3 ticket3i.res.nondet_1)) (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) (and (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) (let ((X3 (let ((X3 ticket3i.res.nondet_4)) (= X3 0)))) (and (= ticket3i.usr.p2_a_0 0) (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) (let ((X4 (let ((X4 ticket3i.res.nondet_6) (X5 ticket3i.res.nondet_5)) (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) (let ((X5 (let ((X5 ticket3i.res.nondet_7)) (= X5 2)))) (let ((X6 (let ((X6 ticket3i.res.nondet_8)) (= X6 0)))) (and (= ticket3i.usr.p3_a_0 0) (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) (let ((X7 (let ((X7 ticket3i.res.nondet_10) (X8 ticket3i.res.nondet_9)) (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) (let ((X8 (let ((X8 ticket3i.res.nondet_11)) (= X8 2)))) (let ((X9 (let ((X9 ticket3i.res.nondet_3)) (= X9 2)))) (and (= ticket3i.usr.erreur_ticket3i_a_0 (ite (or (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) (>= ticket3i.usr.p3_a_0 3)) true false)) ticket3i.res.init_flag_a_0)))))))))))))))) +(define-fun __node_trans_ticket3i_0 ((ticket3i.usr.e1_a_1 Bool) (ticket3i.usr.e2_a_1 Bool) (ticket3i.usr.e3_a_1 Bool) (ticket3i.usr.e4_a_1 Bool) (ticket3i.usr.e5_a_1 Bool) (ticket3i.usr.e6_a_1 Bool) (ticket3i.usr.e7_a_1 Bool) (ticket3i.usr.e8_a_1 Bool) (ticket3i.usr.e9_a_1 Bool) (ticket3i.usr.init_a1_a_1 Int) (ticket3i.usr.init_a2_a_1 Int) (ticket3i.usr.init_a3_a_1 Int) (ticket3i.usr.init_t_a_1 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_1 Int) (ticket3i.usr.p2_a_1 Int) (ticket3i.usr.p3_a_1 Int) (ticket3i.usr.t_a_1 Int) (ticket3i.usr.s_a_1 Int) (ticket3i.usr.a1_a_1 Int) (ticket3i.usr.a2_a_1 Int) (ticket3i.usr.a3_a_1 Int) (ticket3i.usr.erreur_ticket3i_a_1 Bool) (ticket3i.res.init_flag_a_1 Bool) (ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (let ((X1 (= ticket3i.usr.p1_a_0 2))) (let ((X2 (= ticket3i.usr.p1_a_0 0))) (and (= ticket3i.usr.a1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) ticket3i.usr.a1_a_0)) (let ((X3 (and (= ticket3i.usr.p1_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) (and (= ticket3i.usr.p1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 1 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e2_a_1 (ite X3 2 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e3_a_1 (ite X1 0 ticket3i.usr.p1_a_0) ticket3i.usr.p1_a_0)))) (let ((X4 (= ticket3i.usr.p3_a_0 2))) (let ((X5 (= ticket3i.usr.p2_a_0 2))) (and (= ticket3i.usr.s_a_1 (ite ticket3i.usr.e3_a_1 (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) ticket3i.usr.s_a_0)))) (let ((X6 (= ticket3i.usr.p3_a_0 0))) (let ((X7 (= ticket3i.usr.p2_a_0 0))) (and (= ticket3i.usr.t_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e4_a_1 (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e7_a_1 (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) ticket3i.usr.t_a_0)))) (= ticket3i.usr.a2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) ticket3i.usr.a2_a_0)) (let ((X8 (and (= ticket3i.usr.p2_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) (and (= ticket3i.usr.p2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 1 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e5_a_1 (ite X8 2 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 0 ticket3i.usr.p2_a_0) ticket3i.usr.p2_a_0)))) (= ticket3i.usr.a3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) ticket3i.usr.a3_a_0)) (let ((X9 (and (= ticket3i.usr.p3_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) (and (= ticket3i.usr.p3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 1 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e8_a_1 (ite X9 2 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 0 ticket3i.usr.p3_a_0) ticket3i.usr.p3_a_0)))) (= ticket3i.usr.erreur_ticket3i_a_1 (ite (or (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) (>= ticket3i.usr.p3_a_1 3)) true false)) (not ticket3i.res.init_flag_a_1))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_0 (and (and (and (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) (>= top.usr.init_a2_a_0 0)) (>= top.usr.init_a3_a_0 0)) (>= top.usr.init_t_a_0 0))) (let ((X1 top.res.abs_11_a_0)) (let ((X2 top.res.abs_2_a_0)) (let ((X3 top.res.abs_1_a_0)) (let ((X4 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (and (and (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= 0 X2)) (<= X2 3)) (<= (+ (+ (+ X4 1) X3) X2) 9)))) (__node_init_ticket3i_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_init_excludes9_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.e9_a_1 Bool) (top.usr.init_a1_a_1 Int) (top.usr.init_a2_a_1 Int) (top.usr.init_a3_a_1 Int) (top.usr.init_t_a_1 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_1 (and (and (and (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) (>= top.usr.init_a2_a_1 0)) (>= top.usr.init_a3_a_1 0)) (>= top.usr.init_t_a_1 0))) (let ((X1 top.res.abs_11_a_1)) (let ((X2 top.res.abs_2_a_1)) (let ((X3 top.res.abs_1_a_1)) (let ((X4 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (and (and (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= 0 X2)) (<= X2 3)) (<= (+ (+ (+ X4 1) X3) X2) 9)))) (__node_trans_ticket3i_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.usr.init_a1_a_1 top.usr.init_a2_a_1 top.usr.init_a3_a_1 top.usr.init_t_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_trans_excludes9_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_10 (and (and (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) (>= top.usr.init_a3 0)) (>= top.usr.init_t 0))) (let ((X1 top.res.abs_11)) (let ((X2 top.res.abs_2)) (let ((X3 top.res.abs_1)) (let ((X4 top.res.abs_0)) (and (= top.usr.OK (=> X1 (and (and (and (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= 0 X2)) (<= X2 3)) (<= (+ (+ (+ X4 1) X3) X2) 9)))) (__node_init_ticket3i_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_init_excludes9_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) top.res.init_flag))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.e9! Bool) (top.usr.init_a1! Int) (top.usr.init_a2! Int) (top.usr.init_a3! Int) (top.usr.init_t! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_10! (and (and (and (and top.res.abs_9! (>= top.usr.init_a1! 0)) (>= top.usr.init_a2! 0)) (>= top.usr.init_a3! 0)) (>= top.usr.init_t! 0))) (let ((X1 top.res.abs_11!)) (let ((X2 top.res.abs_2!)) (let ((X3 top.res.abs_1!)) (let ((X4 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (and (and (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= 0 X2)) (<= X2 3)) (<= (+ (+ (+ X4 1) X3) X2) 9)))) (__node_trans_ticket3i_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.usr.init_a1! top.usr.init_a2! top.usr.init_a3! top.usr.init_t! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_1! top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_trans_excludes9_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.res.abs_9! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ticket3i_7_e8_2126_e7_78.sl b/benchmarks/LIA/Lustre/ticket3i_7_e8_2126_e7_78.sl index 4c7fc74..7e7e3c5 100644 --- a/benchmarks/LIA/Lustre/ticket3i_7_e8_2126_e7_78.sl +++ b/benchmarks/LIA/Lustre/ticket3i_7_e8_2126_e7_78.sl @@ -1,1441 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes9_0 ( - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - excludes9.usr.X3_a_0) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - excludes9.usr.X4_a_0) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - excludes9.usr.X5_a_0) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - excludes9.usr.X6_a_0) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - excludes9.usr.X7_a_0) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - excludes9.usr.X8_a_0) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - excludes9.usr.X9_a_0))) - excludes9.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes9_0 ( - (excludes9.usr.X1_a_1 Bool) - (excludes9.usr.X2_a_1 Bool) - (excludes9.usr.X3_a_1 Bool) - (excludes9.usr.X4_a_1 Bool) - (excludes9.usr.X5_a_1 Bool) - (excludes9.usr.X6_a_1 Bool) - (excludes9.usr.X7_a_1 Bool) - (excludes9.usr.X8_a_1 Bool) - (excludes9.usr.X9_a_1 Bool) - (excludes9.usr.excludes_a_1 Bool) - (excludes9.res.init_flag_a_1 Bool) - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - excludes9.usr.X3_a_1) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - excludes9.usr.X4_a_1) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - excludes9.usr.X5_a_1) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - excludes9.usr.X6_a_1) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - excludes9.usr.X7_a_1) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - excludes9.usr.X8_a_1) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - excludes9.usr.X9_a_1))) - (not excludes9.res.init_flag_a_1)) -) - -(define-fun - __node_init_ticket3i_0 ( - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (and - (= ticket3i.usr.p1_a_0 0) - (let - ((X1 Bool (let ((X1 Int ticket3i.res.nondet_0)) (= X1 0)))) - (and - (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) - (let - ((X2 - Bool (let - ((X2 Int ticket3i.res.nondet_2) (X3 Int ticket3i.res.nondet_1)) - (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) - (and - (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) - (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) - (let - ((X3 Bool (let ((X3 Int ticket3i.res.nondet_4)) (= X3 0)))) - (and - (= ticket3i.usr.p2_a_0 0) - (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) - (let - ((X4 - Bool (let - ((X4 Int ticket3i.res.nondet_6) - (X5 Int ticket3i.res.nondet_5)) - (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) - (let - ((X5 Bool (let ((X5 Int ticket3i.res.nondet_7)) (= X5 2)))) - (let - ((X6 Bool (let ((X6 Int ticket3i.res.nondet_8)) (= X6 0)))) - (and - (= ticket3i.usr.p3_a_0 0) - (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) - (let - ((X7 - Bool (let - ((X7 Int ticket3i.res.nondet_10) - (X8 Int ticket3i.res.nondet_9)) - (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) - (let - ((X8 Bool (let ((X8 Int ticket3i.res.nondet_11)) (= X8 2)))) - (let - ((X9 Bool (let ((X9 Int ticket3i.res.nondet_3)) (= X9 2)))) - (and - (= - ticket3i.usr.erreur_ticket3i_a_0 - (ite - (or - (and (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) - (>= ticket3i.usr.p3_a_0 3)) - true - false)) - ticket3i.res.init_flag_a_0))))))))))))))) -) - -(define-fun - __node_trans_ticket3i_0 ( - (ticket3i.usr.e1_a_1 Bool) - (ticket3i.usr.e2_a_1 Bool) - (ticket3i.usr.e3_a_1 Bool) - (ticket3i.usr.e4_a_1 Bool) - (ticket3i.usr.e5_a_1 Bool) - (ticket3i.usr.e6_a_1 Bool) - (ticket3i.usr.e7_a_1 Bool) - (ticket3i.usr.e8_a_1 Bool) - (ticket3i.usr.e9_a_1 Bool) - (ticket3i.usr.init_a1_a_1 Int) - (ticket3i.usr.init_a2_a_1 Int) - (ticket3i.usr.init_a3_a_1 Int) - (ticket3i.usr.init_t_a_1 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_1 Int) - (ticket3i.usr.p2_a_1 Int) - (ticket3i.usr.p3_a_1 Int) - (ticket3i.usr.t_a_1 Int) - (ticket3i.usr.s_a_1 Int) - (ticket3i.usr.a1_a_1 Int) - (ticket3i.usr.a2_a_1 Int) - (ticket3i.usr.a3_a_1 Int) - (ticket3i.usr.erreur_ticket3i_a_1 Bool) - (ticket3i.res.init_flag_a_1 Bool) - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (= ticket3i.usr.p1_a_0 2))) - (let - ((X2 Bool (= ticket3i.usr.p1_a_0 0))) - (and - (= - ticket3i.usr.a1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) - ticket3i.usr.a1_a_0)) - (let - ((X3 - Bool (and - (= ticket3i.usr.p1_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) - (and - (= - ticket3i.usr.p1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 1 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e2_a_1 - (ite X3 2 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e3_a_1 - (ite X1 0 ticket3i.usr.p1_a_0) - ticket3i.usr.p1_a_0)))) - (let - ((X4 Bool (= ticket3i.usr.p3_a_0 2))) - (let - ((X5 Bool (= ticket3i.usr.p2_a_0 2))) - (and - (= - ticket3i.usr.s_a_1 - (ite - ticket3i.usr.e3_a_1 - (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - ticket3i.usr.s_a_0)))) - (let - ((X6 Bool (= ticket3i.usr.p3_a_0 0))) - (let - ((X7 Bool (= ticket3i.usr.p2_a_0 0))) - (and - (= - ticket3i.usr.t_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e4_a_1 - (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e7_a_1 - (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - ticket3i.usr.t_a_0)))) - (= - ticket3i.usr.a2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) - ticket3i.usr.a2_a_0)) - (let - ((X8 - Bool (and - (= ticket3i.usr.p2_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) - (and - (= - ticket3i.usr.p2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 1 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e5_a_1 - (ite X8 2 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 0 ticket3i.usr.p2_a_0) - ticket3i.usr.p2_a_0)))) - (= - ticket3i.usr.a3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) - ticket3i.usr.a3_a_0)) - (let - ((X9 - Bool (and - (= ticket3i.usr.p3_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) - (and - (= - ticket3i.usr.p3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 1 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e8_a_1 - (ite X9 2 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 0 ticket3i.usr.p3_a_0) - ticket3i.usr.p3_a_0)))) - (= - ticket3i.usr.erreur_ticket3i_a_1 - (ite - (or - (and (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) - (>= ticket3i.usr.p3_a_1 3)) - true - false)) - (not ticket3i.res.init_flag_a_1)))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_0 - (and - (and - (and - (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) - (>= top.usr.init_a2_a_0 0)) - (>= top.usr.init_a3_a_0 0)) - (>= top.usr.init_t_a_0 0))) - (let - ((X1 Bool top.res.abs_11_a_0)) - (let - ((X2 Int top.res.abs_2_a_0)) - (let - ((X3 Int top.res.abs_1_a_0)) - (let - ((X4 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (and - (and - (and - (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) - (<= 0 X2)) - (<= X2 3)) - (<= (+ (+ X4 X3) X2) 9)))) - (__node_init_ticket3i_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_init_excludes9_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.e9_a_1 Bool) - (top.usr.init_a1_a_1 Int) - (top.usr.init_a2_a_1 Int) - (top.usr.init_a3_a_1 Int) - (top.usr.init_t_a_1 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_1 - (and - (and - (and - (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) - (>= top.usr.init_a2_a_1 0)) - (>= top.usr.init_a3_a_1 0)) - (>= top.usr.init_t_a_1 0))) - (let - ((X1 Bool top.res.abs_11_a_1)) - (let - ((X2 Int top.res.abs_2_a_1)) - (let - ((X3 Int top.res.abs_1_a_1)) - (let - ((X4 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (and - (and - (and - (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) - (<= 0 X2)) - (<= X2 3)) - (<= (+ (+ X4 X3) X2) 9)))) - (__node_trans_ticket3i_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.usr.init_a1_a_1 - top.usr.init_a2_a_1 - top.usr.init_a3_a_1 - top.usr.init_t_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes9_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.e9 Bool) -(declare-primed-var top.usr.init_a1 Int) -(declare-primed-var top.usr.init_a2 Int) -(declare-primed-var top.usr.init_a3 Int) -(declare-primed-var top.usr.init_t Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_10 - (and - (and - (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) - (>= top.usr.init_a3 0)) - (>= top.usr.init_t 0))) - (let - ((X1 Bool top.res.abs_11)) - (let - ((X2 Int top.res.abs_2)) - (let - ((X3 Int top.res.abs_1)) - (let - ((X4 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> - X1 - (and - (and - (and - (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) - (<= 0 X2)) - (<= X2 3)) - (<= (+ (+ X4 X3) X2) 9)))) - (__node_init_ticket3i_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) - (__node_init_excludes9_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - top.res.init_flag)))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.e9! Bool) - (top.usr.init_a1! Int) - (top.usr.init_a2! Int) - (top.usr.init_a3! Int) - (top.usr.init_t! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_10! - (and - (and - (and - (and top.res.abs_9! (>= top.usr.init_a1! 0)) - (>= top.usr.init_a2! 0)) - (>= top.usr.init_a3! 0)) - (>= top.usr.init_t! 0))) - (let - ((X1 Bool top.res.abs_11!)) - (let - ((X2 Int top.res.abs_2!)) - (let - ((X3 Int top.res.abs_1!)) - (let - ((X4 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> - X1 - (and - (and - (and - (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) - (<= 0 X2)) - (<= X2 3)) - (<= (+ (+ X4 X3) X2) 9)))) - (__node_trans_ticket3i_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.usr.init_a1! - top.usr.init_a2! - top.usr.init_a3! - top.usr.init_t! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_1! - top.res.abs_10 - top.res.abs_11 - top.res.inst_1) - (__node_trans_excludes9_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.res.abs_9! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!))))))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes9_0 ((excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) excludes9.usr.X3_a_0) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) excludes9.usr.X4_a_0) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) excludes9.usr.X5_a_0) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) excludes9.usr.X6_a_0) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) excludes9.usr.X7_a_0) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) excludes9.usr.X8_a_0) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) excludes9.usr.X9_a_0))) excludes9.res.init_flag_a_0)) +(define-fun __node_trans_excludes9_0 ((excludes9.usr.X1_a_1 Bool) (excludes9.usr.X2_a_1 Bool) (excludes9.usr.X3_a_1 Bool) (excludes9.usr.X4_a_1 Bool) (excludes9.usr.X5_a_1 Bool) (excludes9.usr.X6_a_1 Bool) (excludes9.usr.X7_a_1 Bool) (excludes9.usr.X8_a_1 Bool) (excludes9.usr.X9_a_1 Bool) (excludes9.usr.excludes_a_1 Bool) (excludes9.res.init_flag_a_1 Bool) (excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) excludes9.usr.X3_a_1) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) excludes9.usr.X4_a_1) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) excludes9.usr.X5_a_1) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) excludes9.usr.X6_a_1) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) excludes9.usr.X7_a_1) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) excludes9.usr.X8_a_1) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) excludes9.usr.X9_a_1))) (not excludes9.res.init_flag_a_1))) +(define-fun __node_init_ticket3i_0 ((ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (and (= ticket3i.usr.p1_a_0 0) (let ((X1 (let ((X1 ticket3i.res.nondet_0)) (= X1 0)))) (and (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) (let ((X2 (let ((X2 ticket3i.res.nondet_2) (X3 ticket3i.res.nondet_1)) (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) (and (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) (let ((X3 (let ((X3 ticket3i.res.nondet_4)) (= X3 0)))) (and (= ticket3i.usr.p2_a_0 0) (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) (let ((X4 (let ((X4 ticket3i.res.nondet_6) (X5 ticket3i.res.nondet_5)) (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) (let ((X5 (let ((X5 ticket3i.res.nondet_7)) (= X5 2)))) (let ((X6 (let ((X6 ticket3i.res.nondet_8)) (= X6 0)))) (and (= ticket3i.usr.p3_a_0 0) (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) (let ((X7 (let ((X7 ticket3i.res.nondet_10) (X8 ticket3i.res.nondet_9)) (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) (let ((X8 (let ((X8 ticket3i.res.nondet_11)) (= X8 2)))) (let ((X9 (let ((X9 ticket3i.res.nondet_3)) (= X9 2)))) (and (= ticket3i.usr.erreur_ticket3i_a_0 (ite (or (and (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) (>= ticket3i.usr.p3_a_0 3)) true false)) ticket3i.res.init_flag_a_0)))))))))))))))) +(define-fun __node_trans_ticket3i_0 ((ticket3i.usr.e1_a_1 Bool) (ticket3i.usr.e2_a_1 Bool) (ticket3i.usr.e3_a_1 Bool) (ticket3i.usr.e4_a_1 Bool) (ticket3i.usr.e5_a_1 Bool) (ticket3i.usr.e6_a_1 Bool) (ticket3i.usr.e7_a_1 Bool) (ticket3i.usr.e8_a_1 Bool) (ticket3i.usr.e9_a_1 Bool) (ticket3i.usr.init_a1_a_1 Int) (ticket3i.usr.init_a2_a_1 Int) (ticket3i.usr.init_a3_a_1 Int) (ticket3i.usr.init_t_a_1 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_1 Int) (ticket3i.usr.p2_a_1 Int) (ticket3i.usr.p3_a_1 Int) (ticket3i.usr.t_a_1 Int) (ticket3i.usr.s_a_1 Int) (ticket3i.usr.a1_a_1 Int) (ticket3i.usr.a2_a_1 Int) (ticket3i.usr.a3_a_1 Int) (ticket3i.usr.erreur_ticket3i_a_1 Bool) (ticket3i.res.init_flag_a_1 Bool) (ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (let ((X1 (= ticket3i.usr.p1_a_0 2))) (let ((X2 (= ticket3i.usr.p1_a_0 0))) (and (= ticket3i.usr.a1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) ticket3i.usr.a1_a_0)) (let ((X3 (and (= ticket3i.usr.p1_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) (and (= ticket3i.usr.p1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 1 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e2_a_1 (ite X3 2 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e3_a_1 (ite X1 0 ticket3i.usr.p1_a_0) ticket3i.usr.p1_a_0)))) (let ((X4 (= ticket3i.usr.p3_a_0 2))) (let ((X5 (= ticket3i.usr.p2_a_0 2))) (and (= ticket3i.usr.s_a_1 (ite ticket3i.usr.e3_a_1 (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) ticket3i.usr.s_a_0)))) (let ((X6 (= ticket3i.usr.p3_a_0 0))) (let ((X7 (= ticket3i.usr.p2_a_0 0))) (and (= ticket3i.usr.t_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e4_a_1 (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e7_a_1 (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) ticket3i.usr.t_a_0)))) (= ticket3i.usr.a2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) ticket3i.usr.a2_a_0)) (let ((X8 (and (= ticket3i.usr.p2_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) (and (= ticket3i.usr.p2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 1 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e5_a_1 (ite X8 2 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 0 ticket3i.usr.p2_a_0) ticket3i.usr.p2_a_0)))) (= ticket3i.usr.a3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) ticket3i.usr.a3_a_0)) (let ((X9 (and (= ticket3i.usr.p3_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) (and (= ticket3i.usr.p3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 1 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e8_a_1 (ite X9 2 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 0 ticket3i.usr.p3_a_0) ticket3i.usr.p3_a_0)))) (= ticket3i.usr.erreur_ticket3i_a_1 (ite (or (and (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) (>= ticket3i.usr.p3_a_1 3)) true false)) (not ticket3i.res.init_flag_a_1))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_0 (and (and (and (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) (>= top.usr.init_a2_a_0 0)) (>= top.usr.init_a3_a_0 0)) (>= top.usr.init_t_a_0 0))) (let ((X1 top.res.abs_11_a_0)) (let ((X2 top.res.abs_2_a_0)) (let ((X3 top.res.abs_1_a_0)) (let ((X4 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (and (and (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= 0 X2)) (<= X2 3)) (<= (+ (+ X4 X3) X2) 9)))) (__node_init_ticket3i_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_init_excludes9_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.e9_a_1 Bool) (top.usr.init_a1_a_1 Int) (top.usr.init_a2_a_1 Int) (top.usr.init_a3_a_1 Int) (top.usr.init_t_a_1 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_1 (and (and (and (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) (>= top.usr.init_a2_a_1 0)) (>= top.usr.init_a3_a_1 0)) (>= top.usr.init_t_a_1 0))) (let ((X1 top.res.abs_11_a_1)) (let ((X2 top.res.abs_2_a_1)) (let ((X3 top.res.abs_1_a_1)) (let ((X4 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (and (and (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= 0 X2)) (<= X2 3)) (<= (+ (+ X4 X3) X2) 9)))) (__node_trans_ticket3i_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.usr.init_a1_a_1 top.usr.init_a2_a_1 top.usr.init_a3_a_1 top.usr.init_t_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_trans_excludes9_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_10 (and (and (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) (>= top.usr.init_a3 0)) (>= top.usr.init_t 0))) (let ((X1 top.res.abs_11)) (let ((X2 top.res.abs_2)) (let ((X3 top.res.abs_1)) (let ((X4 top.res.abs_0)) (and (= top.usr.OK (=> X1 (and (and (and (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= 0 X2)) (<= X2 3)) (<= (+ (+ X4 X3) X2) 9)))) (__node_init_ticket3i_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_init_excludes9_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) top.res.init_flag))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.e9! Bool) (top.usr.init_a1! Int) (top.usr.init_a2! Int) (top.usr.init_a3! Int) (top.usr.init_t! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_10! (and (and (and (and top.res.abs_9! (>= top.usr.init_a1! 0)) (>= top.usr.init_a2! 0)) (>= top.usr.init_a3! 0)) (>= top.usr.init_t! 0))) (let ((X1 top.res.abs_11!)) (let ((X2 top.res.abs_2!)) (let ((X3 top.res.abs_1!)) (let ((X4 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (and (and (and (and (and (<= 0 X4) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= 0 X2)) (<= X2 3)) (<= (+ (+ X4 X3) X2) 9)))) (__node_trans_ticket3i_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.usr.init_a1! top.usr.init_a2! top.usr.init_a3! top.usr.init_t! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_1! top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_trans_excludes9_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.res.abs_9! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) (not top.res.init_flag!))))))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ticket3i_all.sl b/benchmarks/LIA/Lustre/ticket3i_all.sl index c4a63c4..09d5e41 100644 --- a/benchmarks/LIA/Lustre/ticket3i_all.sl +++ b/benchmarks/LIA/Lustre/ticket3i_all.sl @@ -1,1457 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes9_0 ( - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - excludes9.usr.X3_a_0) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - excludes9.usr.X4_a_0) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - excludes9.usr.X5_a_0) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - excludes9.usr.X6_a_0) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - excludes9.usr.X7_a_0) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - excludes9.usr.X8_a_0) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - excludes9.usr.X9_a_0))) - excludes9.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes9_0 ( - (excludes9.usr.X1_a_1 Bool) - (excludes9.usr.X2_a_1 Bool) - (excludes9.usr.X3_a_1 Bool) - (excludes9.usr.X4_a_1 Bool) - (excludes9.usr.X5_a_1 Bool) - (excludes9.usr.X6_a_1 Bool) - (excludes9.usr.X7_a_1 Bool) - (excludes9.usr.X8_a_1 Bool) - (excludes9.usr.X9_a_1 Bool) - (excludes9.usr.excludes_a_1 Bool) - (excludes9.res.init_flag_a_1 Bool) - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - excludes9.usr.X3_a_1) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - excludes9.usr.X4_a_1) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - excludes9.usr.X5_a_1) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - excludes9.usr.X6_a_1) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - excludes9.usr.X7_a_1) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - excludes9.usr.X8_a_1) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - excludes9.usr.X9_a_1))) - (not excludes9.res.init_flag_a_1)) -) - -(define-fun - __node_init_ticket3i_0 ( - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (and - (= ticket3i.usr.p1_a_0 0) - (let - ((X1 Bool (let ((X1 Int ticket3i.res.nondet_0)) (= X1 0)))) - (and - (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) - (let - ((X2 - Bool (let - ((X2 Int ticket3i.res.nondet_2) (X3 Int ticket3i.res.nondet_1)) - (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) - (and - (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) - (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) - (let - ((X3 Bool (let ((X3 Int ticket3i.res.nondet_4)) (= X3 0)))) - (and - (= ticket3i.usr.p2_a_0 0) - (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) - (let - ((X4 - Bool (let - ((X4 Int ticket3i.res.nondet_6) - (X5 Int ticket3i.res.nondet_5)) - (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) - (let - ((X5 Bool (let ((X5 Int ticket3i.res.nondet_7)) (= X5 2)))) - (let - ((X6 Bool (let ((X6 Int ticket3i.res.nondet_8)) (= X6 0)))) - (and - (= ticket3i.usr.p3_a_0 0) - (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) - (let - ((X7 - Bool (let - ((X7 Int ticket3i.res.nondet_10) - (X8 Int ticket3i.res.nondet_9)) - (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) - (let - ((X8 Bool (let ((X8 Int ticket3i.res.nondet_11)) (= X8 2)))) - (let - ((X9 Bool (let ((X9 Int ticket3i.res.nondet_3)) (= X9 2)))) - (and - (= - ticket3i.usr.erreur_ticket3i_a_0 - (ite - (or - (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) - (>= ticket3i.usr.p3_a_0 3)) - true - false)) - ticket3i.res.init_flag_a_0))))))))))))))) -) - -(define-fun - __node_trans_ticket3i_0 ( - (ticket3i.usr.e1_a_1 Bool) - (ticket3i.usr.e2_a_1 Bool) - (ticket3i.usr.e3_a_1 Bool) - (ticket3i.usr.e4_a_1 Bool) - (ticket3i.usr.e5_a_1 Bool) - (ticket3i.usr.e6_a_1 Bool) - (ticket3i.usr.e7_a_1 Bool) - (ticket3i.usr.e8_a_1 Bool) - (ticket3i.usr.e9_a_1 Bool) - (ticket3i.usr.init_a1_a_1 Int) - (ticket3i.usr.init_a2_a_1 Int) - (ticket3i.usr.init_a3_a_1 Int) - (ticket3i.usr.init_t_a_1 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_1 Int) - (ticket3i.usr.p2_a_1 Int) - (ticket3i.usr.p3_a_1 Int) - (ticket3i.usr.t_a_1 Int) - (ticket3i.usr.s_a_1 Int) - (ticket3i.usr.a1_a_1 Int) - (ticket3i.usr.a2_a_1 Int) - (ticket3i.usr.a3_a_1 Int) - (ticket3i.usr.erreur_ticket3i_a_1 Bool) - (ticket3i.res.init_flag_a_1 Bool) - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (= ticket3i.usr.p1_a_0 2))) - (let - ((X2 Bool (= ticket3i.usr.p1_a_0 0))) - (and - (= - ticket3i.usr.a1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) - ticket3i.usr.a1_a_0)) - (let - ((X3 - Bool (and - (= ticket3i.usr.p1_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) - (and - (= - ticket3i.usr.p1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 1 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e2_a_1 - (ite X3 2 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e3_a_1 - (ite X1 0 ticket3i.usr.p1_a_0) - ticket3i.usr.p1_a_0)))) - (let - ((X4 Bool (= ticket3i.usr.p3_a_0 2))) - (let - ((X5 Bool (= ticket3i.usr.p2_a_0 2))) - (and - (= - ticket3i.usr.s_a_1 - (ite - ticket3i.usr.e3_a_1 - (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - ticket3i.usr.s_a_0)))) - (let - ((X6 Bool (= ticket3i.usr.p3_a_0 0))) - (let - ((X7 Bool (= ticket3i.usr.p2_a_0 0))) - (and - (= - ticket3i.usr.t_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e4_a_1 - (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e7_a_1 - (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - ticket3i.usr.t_a_0)))) - (= - ticket3i.usr.a2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) - ticket3i.usr.a2_a_0)) - (let - ((X8 - Bool (and - (= ticket3i.usr.p2_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) - (and - (= - ticket3i.usr.p2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 1 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e5_a_1 - (ite X8 2 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 0 ticket3i.usr.p2_a_0) - ticket3i.usr.p2_a_0)))) - (= - ticket3i.usr.a3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) - ticket3i.usr.a3_a_0)) - (let - ((X9 - Bool (and - (= ticket3i.usr.p3_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) - (and - (= - ticket3i.usr.p3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 1 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e8_a_1 - (ite X9 2 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 0 ticket3i.usr.p3_a_0) - ticket3i.usr.p3_a_0)))) - (= - ticket3i.usr.erreur_ticket3i_a_1 - (ite - (or - (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) - (>= ticket3i.usr.p3_a_1 3)) - true - false)) - (not ticket3i.res.init_flag_a_1)))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_0 - (and - (and - (and - (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) - (>= top.usr.init_a2_a_0 0)) - (>= top.usr.init_a3_a_0 0)) - (>= top.usr.init_t_a_0 0))) - (let - ((X1 Bool top.res.abs_11_a_0)) - (let - ((X2 Bool top.res.abs_8_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_1_a_0)) - (let - ((X5 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (and - (and - (and - (and - (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) - (<= X4 3)) - (<= 0 X3)) - (<= X3 3)) - (<= (+ (+ X5 X4) X3) 9)))) - (__node_init_ticket3i_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_init_excludes9_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.e9_a_1 Bool) - (top.usr.init_a1_a_1 Int) - (top.usr.init_a2_a_1 Int) - (top.usr.init_a3_a_1 Int) - (top.usr.init_t_a_1 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_1 - (and - (and - (and - (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) - (>= top.usr.init_a2_a_1 0)) - (>= top.usr.init_a3_a_1 0)) - (>= top.usr.init_t_a_1 0))) - (let - ((X1 Bool top.res.abs_11_a_1)) - (let - ((X2 Bool top.res.abs_8_a_1)) - (let - ((X3 Int top.res.abs_2_a_1)) - (let - ((X4 Int top.res.abs_1_a_1)) - (let - ((X5 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (and - (and - (and - (and - (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) - (<= X4 3)) - (<= 0 X3)) - (<= X3 3)) - (<= (+ (+ X5 X4) X3) 9)))) - (__node_trans_ticket3i_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.usr.init_a1_a_1 - top.usr.init_a2_a_1 - top.usr.init_a3_a_1 - top.usr.init_t_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes9_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.e9 Bool) -(declare-primed-var top.usr.init_a1 Int) -(declare-primed-var top.usr.init_a2 Int) -(declare-primed-var top.usr.init_a3 Int) -(declare-primed-var top.usr.init_t Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_10 - (and - (and - (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) - (>= top.usr.init_a3 0)) - (>= top.usr.init_t 0))) - (let - ((X1 Bool top.res.abs_11)) - (let - ((X2 Bool top.res.abs_8)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_1)) - (let - ((X5 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> - X1 - (and - (and - (and - (and - (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) - (<= X4 3)) - (<= 0 X3)) - (<= X3 3)) - (<= (+ (+ X5 X4) X3) 9)))) - (__node_init_ticket3i_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) - (__node_init_excludes9_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.e9! Bool) - (top.usr.init_a1! Int) - (top.usr.init_a2! Int) - (top.usr.init_a3! Int) - (top.usr.init_t! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_10! - (and - (and - (and - (and top.res.abs_9! (>= top.usr.init_a1! 0)) - (>= top.usr.init_a2! 0)) - (>= top.usr.init_a3! 0)) - (>= top.usr.init_t! 0))) - (let - ((X1 Bool top.res.abs_11!)) - (let - ((X2 Bool top.res.abs_8!)) - (let - ((X3 Int top.res.abs_2!)) - (let - ((X4 Int top.res.abs_1!)) - (let - ((X5 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> - X1 - (and - (and - (and - (and - (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) - (<= X4 3)) - (<= 0 X3)) - (<= X3 3)) - (<= (+ (+ X5 X4) X3) 9)))) - (__node_trans_ticket3i_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.usr.init_a1! - top.usr.init_a2! - top.usr.init_a3! - top.usr.init_t! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_1! - top.res.abs_10 - top.res.abs_11 - top.res.inst_1) - (__node_trans_excludes9_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.res.abs_9! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes9_0 ((excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) excludes9.usr.X3_a_0) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) excludes9.usr.X4_a_0) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) excludes9.usr.X5_a_0) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) excludes9.usr.X6_a_0) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) excludes9.usr.X7_a_0) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) excludes9.usr.X8_a_0) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) excludes9.usr.X9_a_0))) excludes9.res.init_flag_a_0)) +(define-fun __node_trans_excludes9_0 ((excludes9.usr.X1_a_1 Bool) (excludes9.usr.X2_a_1 Bool) (excludes9.usr.X3_a_1 Bool) (excludes9.usr.X4_a_1 Bool) (excludes9.usr.X5_a_1 Bool) (excludes9.usr.X6_a_1 Bool) (excludes9.usr.X7_a_1 Bool) (excludes9.usr.X8_a_1 Bool) (excludes9.usr.X9_a_1 Bool) (excludes9.usr.excludes_a_1 Bool) (excludes9.res.init_flag_a_1 Bool) (excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) excludes9.usr.X3_a_1) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) excludes9.usr.X4_a_1) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) excludes9.usr.X5_a_1) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) excludes9.usr.X6_a_1) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) excludes9.usr.X7_a_1) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) excludes9.usr.X8_a_1) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) excludes9.usr.X9_a_1))) (not excludes9.res.init_flag_a_1))) +(define-fun __node_init_ticket3i_0 ((ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (and (= ticket3i.usr.p1_a_0 0) (let ((X1 (let ((X1 ticket3i.res.nondet_0)) (= X1 0)))) (and (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) (let ((X2 (let ((X2 ticket3i.res.nondet_2) (X3 ticket3i.res.nondet_1)) (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) (and (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) (let ((X3 (let ((X3 ticket3i.res.nondet_4)) (= X3 0)))) (and (= ticket3i.usr.p2_a_0 0) (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) (let ((X4 (let ((X4 ticket3i.res.nondet_6) (X5 ticket3i.res.nondet_5)) (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) (let ((X5 (let ((X5 ticket3i.res.nondet_7)) (= X5 2)))) (let ((X6 (let ((X6 ticket3i.res.nondet_8)) (= X6 0)))) (and (= ticket3i.usr.p3_a_0 0) (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) (let ((X7 (let ((X7 ticket3i.res.nondet_10) (X8 ticket3i.res.nondet_9)) (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) (let ((X8 (let ((X8 ticket3i.res.nondet_11)) (= X8 2)))) (let ((X9 (let ((X9 ticket3i.res.nondet_3)) (= X9 2)))) (and (= ticket3i.usr.erreur_ticket3i_a_0 (ite (or (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) (>= ticket3i.usr.p3_a_0 3)) true false)) ticket3i.res.init_flag_a_0)))))))))))))))) +(define-fun __node_trans_ticket3i_0 ((ticket3i.usr.e1_a_1 Bool) (ticket3i.usr.e2_a_1 Bool) (ticket3i.usr.e3_a_1 Bool) (ticket3i.usr.e4_a_1 Bool) (ticket3i.usr.e5_a_1 Bool) (ticket3i.usr.e6_a_1 Bool) (ticket3i.usr.e7_a_1 Bool) (ticket3i.usr.e8_a_1 Bool) (ticket3i.usr.e9_a_1 Bool) (ticket3i.usr.init_a1_a_1 Int) (ticket3i.usr.init_a2_a_1 Int) (ticket3i.usr.init_a3_a_1 Int) (ticket3i.usr.init_t_a_1 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_1 Int) (ticket3i.usr.p2_a_1 Int) (ticket3i.usr.p3_a_1 Int) (ticket3i.usr.t_a_1 Int) (ticket3i.usr.s_a_1 Int) (ticket3i.usr.a1_a_1 Int) (ticket3i.usr.a2_a_1 Int) (ticket3i.usr.a3_a_1 Int) (ticket3i.usr.erreur_ticket3i_a_1 Bool) (ticket3i.res.init_flag_a_1 Bool) (ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (let ((X1 (= ticket3i.usr.p1_a_0 2))) (let ((X2 (= ticket3i.usr.p1_a_0 0))) (and (= ticket3i.usr.a1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) ticket3i.usr.a1_a_0)) (let ((X3 (and (= ticket3i.usr.p1_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) (and (= ticket3i.usr.p1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 1 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e2_a_1 (ite X3 2 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e3_a_1 (ite X1 0 ticket3i.usr.p1_a_0) ticket3i.usr.p1_a_0)))) (let ((X4 (= ticket3i.usr.p3_a_0 2))) (let ((X5 (= ticket3i.usr.p2_a_0 2))) (and (= ticket3i.usr.s_a_1 (ite ticket3i.usr.e3_a_1 (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) ticket3i.usr.s_a_0)))) (let ((X6 (= ticket3i.usr.p3_a_0 0))) (let ((X7 (= ticket3i.usr.p2_a_0 0))) (and (= ticket3i.usr.t_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e4_a_1 (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e7_a_1 (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) ticket3i.usr.t_a_0)))) (= ticket3i.usr.a2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) ticket3i.usr.a2_a_0)) (let ((X8 (and (= ticket3i.usr.p2_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) (and (= ticket3i.usr.p2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 1 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e5_a_1 (ite X8 2 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 0 ticket3i.usr.p2_a_0) ticket3i.usr.p2_a_0)))) (= ticket3i.usr.a3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) ticket3i.usr.a3_a_0)) (let ((X9 (and (= ticket3i.usr.p3_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) (and (= ticket3i.usr.p3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 1 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e8_a_1 (ite X9 2 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 0 ticket3i.usr.p3_a_0) ticket3i.usr.p3_a_0)))) (= ticket3i.usr.erreur_ticket3i_a_1 (ite (or (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) (>= ticket3i.usr.p3_a_1 3)) true false)) (not ticket3i.res.init_flag_a_1))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_0 (and (and (and (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) (>= top.usr.init_a2_a_0 0)) (>= top.usr.init_a3_a_0 0)) (>= top.usr.init_t_a_0 0))) (let ((X1 top.res.abs_11_a_0)) (let ((X2 top.res.abs_8_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_1_a_0)) (let ((X5 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (and (and (and (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= (+ (+ X5 X4) X3) 9)))) (__node_init_ticket3i_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_init_excludes9_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.e9_a_1 Bool) (top.usr.init_a1_a_1 Int) (top.usr.init_a2_a_1 Int) (top.usr.init_a3_a_1 Int) (top.usr.init_t_a_1 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_1 (and (and (and (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) (>= top.usr.init_a2_a_1 0)) (>= top.usr.init_a3_a_1 0)) (>= top.usr.init_t_a_1 0))) (let ((X1 top.res.abs_11_a_1)) (let ((X2 top.res.abs_8_a_1)) (let ((X3 top.res.abs_2_a_1)) (let ((X4 top.res.abs_1_a_1)) (let ((X5 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (and (and (and (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= (+ (+ X5 X4) X3) 9)))) (__node_trans_ticket3i_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.usr.init_a1_a_1 top.usr.init_a2_a_1 top.usr.init_a3_a_1 top.usr.init_t_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_trans_excludes9_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_10 (and (and (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) (>= top.usr.init_a3 0)) (>= top.usr.init_t 0))) (let ((X1 top.res.abs_11)) (let ((X2 top.res.abs_8)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_1)) (let ((X5 top.res.abs_0)) (and (= top.usr.OK (=> X1 (and (and (and (and (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= (+ (+ X5 X4) X3) 9)))) (__node_init_ticket3i_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_init_excludes9_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.e9! Bool) (top.usr.init_a1! Int) (top.usr.init_a2! Int) (top.usr.init_a3! Int) (top.usr.init_t! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_10! (and (and (and (and top.res.abs_9! (>= top.usr.init_a1! 0)) (>= top.usr.init_a2! 0)) (>= top.usr.init_a3! 0)) (>= top.usr.init_t! 0))) (let ((X1 top.res.abs_11!)) (let ((X2 top.res.abs_8!)) (let ((X3 top.res.abs_2!)) (let ((X4 top.res.abs_1!)) (let ((X5 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (and (and (and (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= (+ (+ X5 X4) X3) 9)))) (__node_trans_ticket3i_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.usr.init_a1! top.usr.init_a2! top.usr.init_a3! top.usr.init_t! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_1! top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_trans_excludes9_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.res.abs_9! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ticket3i_all_e1_2706_e7_1776.sl b/benchmarks/LIA/Lustre/ticket3i_all_e1_2706_e7_1776.sl index 5a2af9c..42b023f 100644 --- a/benchmarks/LIA/Lustre/ticket3i_all_e1_2706_e7_1776.sl +++ b/benchmarks/LIA/Lustre/ticket3i_all_e1_2706_e7_1776.sl @@ -1,1457 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes9_0 ( - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - excludes9.usr.X3_a_0) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - excludes9.usr.X4_a_0) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - excludes9.usr.X5_a_0) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - excludes9.usr.X6_a_0) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - excludes9.usr.X7_a_0) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - excludes9.usr.X8_a_0) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - excludes9.usr.X9_a_0))) - excludes9.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes9_0 ( - (excludes9.usr.X1_a_1 Bool) - (excludes9.usr.X2_a_1 Bool) - (excludes9.usr.X3_a_1 Bool) - (excludes9.usr.X4_a_1 Bool) - (excludes9.usr.X5_a_1 Bool) - (excludes9.usr.X6_a_1 Bool) - (excludes9.usr.X7_a_1 Bool) - (excludes9.usr.X8_a_1 Bool) - (excludes9.usr.X9_a_1 Bool) - (excludes9.usr.excludes_a_1 Bool) - (excludes9.res.init_flag_a_1 Bool) - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - excludes9.usr.X3_a_1) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - excludes9.usr.X4_a_1) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - excludes9.usr.X5_a_1) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - excludes9.usr.X6_a_1) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - excludes9.usr.X7_a_1) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - excludes9.usr.X8_a_1) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - excludes9.usr.X9_a_1))) - (not excludes9.res.init_flag_a_1)) -) - -(define-fun - __node_init_ticket3i_0 ( - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (and - (= ticket3i.usr.p1_a_0 0) - (let - ((X1 Bool (let ((X1 Int ticket3i.res.nondet_0)) (= X1 0)))) - (and - (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) - (let - ((X2 - Bool (let - ((X2 Int ticket3i.res.nondet_2) (X3 Int ticket3i.res.nondet_1)) - (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) - (and - (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) - (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) - (let - ((X3 Bool (let ((X3 Int ticket3i.res.nondet_4)) (= X3 0)))) - (and - (= ticket3i.usr.p2_a_0 0) - (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) - (let - ((X4 - Bool (let - ((X4 Int ticket3i.res.nondet_6) - (X5 Int ticket3i.res.nondet_5)) - (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) - (let - ((X5 Bool (let ((X5 Int ticket3i.res.nondet_7)) (= X5 2)))) - (let - ((X6 Bool (let ((X6 Int ticket3i.res.nondet_8)) (= X6 0)))) - (and - (= ticket3i.usr.p3_a_0 0) - (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) - (let - ((X7 - Bool (let - ((X7 Int ticket3i.res.nondet_10) - (X8 Int ticket3i.res.nondet_9)) - (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) - (let - ((X8 Bool (let ((X8 Int ticket3i.res.nondet_11)) (= X8 2)))) - (let - ((X9 Bool (let ((X9 Int ticket3i.res.nondet_3)) (= X9 2)))) - (and - (= - ticket3i.usr.erreur_ticket3i_a_0 - (ite - (or - (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) - (>= ticket3i.usr.p3_a_0 3)) - true - false)) - ticket3i.res.init_flag_a_0))))))))))))))) -) - -(define-fun - __node_trans_ticket3i_0 ( - (ticket3i.usr.e1_a_1 Bool) - (ticket3i.usr.e2_a_1 Bool) - (ticket3i.usr.e3_a_1 Bool) - (ticket3i.usr.e4_a_1 Bool) - (ticket3i.usr.e5_a_1 Bool) - (ticket3i.usr.e6_a_1 Bool) - (ticket3i.usr.e7_a_1 Bool) - (ticket3i.usr.e8_a_1 Bool) - (ticket3i.usr.e9_a_1 Bool) - (ticket3i.usr.init_a1_a_1 Int) - (ticket3i.usr.init_a2_a_1 Int) - (ticket3i.usr.init_a3_a_1 Int) - (ticket3i.usr.init_t_a_1 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_1 Int) - (ticket3i.usr.p2_a_1 Int) - (ticket3i.usr.p3_a_1 Int) - (ticket3i.usr.t_a_1 Int) - (ticket3i.usr.s_a_1 Int) - (ticket3i.usr.a1_a_1 Int) - (ticket3i.usr.a2_a_1 Int) - (ticket3i.usr.a3_a_1 Int) - (ticket3i.usr.erreur_ticket3i_a_1 Bool) - (ticket3i.res.init_flag_a_1 Bool) - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (= ticket3i.usr.p1_a_0 2))) - (let - ((X2 Bool (= ticket3i.usr.p1_a_0 0))) - (and - (= - ticket3i.usr.a1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) - ticket3i.usr.a1_a_0)) - (let - ((X3 - Bool (and - (= ticket3i.usr.p1_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) - (and - (= - ticket3i.usr.p1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 1 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e2_a_1 - (ite X3 2 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e3_a_1 - (ite X1 0 ticket3i.usr.p1_a_0) - ticket3i.usr.p1_a_0)))) - (let - ((X4 Bool (= ticket3i.usr.p3_a_0 2))) - (let - ((X5 Bool (= ticket3i.usr.p2_a_0 2))) - (and - (= - ticket3i.usr.s_a_1 - (ite - ticket3i.usr.e3_a_1 - (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - ticket3i.usr.s_a_0)))) - (let - ((X6 Bool (= ticket3i.usr.p3_a_0 0))) - (let - ((X7 Bool (= ticket3i.usr.p2_a_0 0))) - (and - (= - ticket3i.usr.t_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e4_a_1 - (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e7_a_1 - (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - ticket3i.usr.t_a_0)))) - (= - ticket3i.usr.a2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) - ticket3i.usr.a2_a_0)) - (let - ((X8 - Bool (and - (= ticket3i.usr.p2_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) - (and - (= - ticket3i.usr.p2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 1 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e5_a_1 - (ite X8 2 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 0 ticket3i.usr.p2_a_0) - ticket3i.usr.p2_a_0)))) - (= - ticket3i.usr.a3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) - ticket3i.usr.a3_a_0)) - (let - ((X9 - Bool (and - (= ticket3i.usr.p3_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) - (and - (= - ticket3i.usr.p3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 1 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e8_a_1 - (ite X9 2 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 0 ticket3i.usr.p3_a_0) - ticket3i.usr.p3_a_0)))) - (= - ticket3i.usr.erreur_ticket3i_a_1 - (ite - (or - (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) - (>= ticket3i.usr.p3_a_1 3)) - true - false)) - (not ticket3i.res.init_flag_a_1)))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_0 - (and - (and - (and - (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) - (>= top.usr.init_a2_a_0 0)) - (>= top.usr.init_a3_a_0 0)) - (>= top.usr.init_t_a_0 0))) - (let - ((X1 Bool top.res.abs_11_a_0)) - (let - ((X2 Bool top.res.abs_8_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_1_a_0)) - (let - ((X5 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (and - (and - (and - (and - (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) - (<= X4 3)) - (<= 0 X3)) - (<= X3 3)) - (<= (+ (+ (+ X5 1) X4) X3) 9)))) - (__node_init_ticket3i_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_init_excludes9_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.e9_a_1 Bool) - (top.usr.init_a1_a_1 Int) - (top.usr.init_a2_a_1 Int) - (top.usr.init_a3_a_1 Int) - (top.usr.init_t_a_1 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_1 - (and - (and - (and - (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) - (>= top.usr.init_a2_a_1 0)) - (>= top.usr.init_a3_a_1 0)) - (>= top.usr.init_t_a_1 0))) - (let - ((X1 Bool top.res.abs_11_a_1)) - (let - ((X2 Bool top.res.abs_8_a_1)) - (let - ((X3 Int top.res.abs_2_a_1)) - (let - ((X4 Int top.res.abs_1_a_1)) - (let - ((X5 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (and - (and - (and - (and - (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) - (<= X4 3)) - (<= 0 X3)) - (<= X3 3)) - (<= (+ (+ (+ X5 1) X4) X3) 9)))) - (__node_trans_ticket3i_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.usr.init_a1_a_1 - top.usr.init_a2_a_1 - top.usr.init_a3_a_1 - top.usr.init_t_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes9_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.e9 Bool) -(declare-primed-var top.usr.init_a1 Int) -(declare-primed-var top.usr.init_a2 Int) -(declare-primed-var top.usr.init_a3 Int) -(declare-primed-var top.usr.init_t Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_10 - (and - (and - (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) - (>= top.usr.init_a3 0)) - (>= top.usr.init_t 0))) - (let - ((X1 Bool top.res.abs_11)) - (let - ((X2 Bool top.res.abs_8)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_1)) - (let - ((X5 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> - X1 - (and - (and - (and - (and - (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) - (<= X4 3)) - (<= 0 X3)) - (<= X3 3)) - (<= (+ (+ (+ X5 1) X4) X3) 9)))) - (__node_init_ticket3i_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) - (__node_init_excludes9_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.e9! Bool) - (top.usr.init_a1! Int) - (top.usr.init_a2! Int) - (top.usr.init_a3! Int) - (top.usr.init_t! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_10! - (and - (and - (and - (and top.res.abs_9! (>= top.usr.init_a1! 0)) - (>= top.usr.init_a2! 0)) - (>= top.usr.init_a3! 0)) - (>= top.usr.init_t! 0))) - (let - ((X1 Bool top.res.abs_11!)) - (let - ((X2 Bool top.res.abs_8!)) - (let - ((X3 Int top.res.abs_2!)) - (let - ((X4 Int top.res.abs_1!)) - (let - ((X5 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> - X1 - (and - (and - (and - (and - (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) - (<= X4 3)) - (<= 0 X3)) - (<= X3 3)) - (<= (+ (+ (+ X5 1) X4) X3) 9)))) - (__node_trans_ticket3i_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.usr.init_a1! - top.usr.init_a2! - top.usr.init_a3! - top.usr.init_t! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_1! - top.res.abs_10 - top.res.abs_11 - top.res.inst_1) - (__node_trans_excludes9_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.res.abs_9! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes9_0 ((excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) excludes9.usr.X3_a_0) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) excludes9.usr.X4_a_0) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) excludes9.usr.X5_a_0) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) excludes9.usr.X6_a_0) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) excludes9.usr.X7_a_0) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) excludes9.usr.X8_a_0) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) excludes9.usr.X9_a_0))) excludes9.res.init_flag_a_0)) +(define-fun __node_trans_excludes9_0 ((excludes9.usr.X1_a_1 Bool) (excludes9.usr.X2_a_1 Bool) (excludes9.usr.X3_a_1 Bool) (excludes9.usr.X4_a_1 Bool) (excludes9.usr.X5_a_1 Bool) (excludes9.usr.X6_a_1 Bool) (excludes9.usr.X7_a_1 Bool) (excludes9.usr.X8_a_1 Bool) (excludes9.usr.X9_a_1 Bool) (excludes9.usr.excludes_a_1 Bool) (excludes9.res.init_flag_a_1 Bool) (excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) excludes9.usr.X3_a_1) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) excludes9.usr.X4_a_1) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) excludes9.usr.X5_a_1) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) excludes9.usr.X6_a_1) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) excludes9.usr.X7_a_1) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) excludes9.usr.X8_a_1) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) excludes9.usr.X9_a_1))) (not excludes9.res.init_flag_a_1))) +(define-fun __node_init_ticket3i_0 ((ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (and (= ticket3i.usr.p1_a_0 0) (let ((X1 (let ((X1 ticket3i.res.nondet_0)) (= X1 0)))) (and (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) (let ((X2 (let ((X2 ticket3i.res.nondet_2) (X3 ticket3i.res.nondet_1)) (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) (and (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) (let ((X3 (let ((X3 ticket3i.res.nondet_4)) (= X3 0)))) (and (= ticket3i.usr.p2_a_0 0) (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) (let ((X4 (let ((X4 ticket3i.res.nondet_6) (X5 ticket3i.res.nondet_5)) (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) (let ((X5 (let ((X5 ticket3i.res.nondet_7)) (= X5 2)))) (let ((X6 (let ((X6 ticket3i.res.nondet_8)) (= X6 0)))) (and (= ticket3i.usr.p3_a_0 0) (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) (let ((X7 (let ((X7 ticket3i.res.nondet_10) (X8 ticket3i.res.nondet_9)) (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) (let ((X8 (let ((X8 ticket3i.res.nondet_11)) (= X8 2)))) (let ((X9 (let ((X9 ticket3i.res.nondet_3)) (= X9 2)))) (and (= ticket3i.usr.erreur_ticket3i_a_0 (ite (or (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) (>= ticket3i.usr.p3_a_0 3)) true false)) ticket3i.res.init_flag_a_0)))))))))))))))) +(define-fun __node_trans_ticket3i_0 ((ticket3i.usr.e1_a_1 Bool) (ticket3i.usr.e2_a_1 Bool) (ticket3i.usr.e3_a_1 Bool) (ticket3i.usr.e4_a_1 Bool) (ticket3i.usr.e5_a_1 Bool) (ticket3i.usr.e6_a_1 Bool) (ticket3i.usr.e7_a_1 Bool) (ticket3i.usr.e8_a_1 Bool) (ticket3i.usr.e9_a_1 Bool) (ticket3i.usr.init_a1_a_1 Int) (ticket3i.usr.init_a2_a_1 Int) (ticket3i.usr.init_a3_a_1 Int) (ticket3i.usr.init_t_a_1 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_1 Int) (ticket3i.usr.p2_a_1 Int) (ticket3i.usr.p3_a_1 Int) (ticket3i.usr.t_a_1 Int) (ticket3i.usr.s_a_1 Int) (ticket3i.usr.a1_a_1 Int) (ticket3i.usr.a2_a_1 Int) (ticket3i.usr.a3_a_1 Int) (ticket3i.usr.erreur_ticket3i_a_1 Bool) (ticket3i.res.init_flag_a_1 Bool) (ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (let ((X1 (= ticket3i.usr.p1_a_0 2))) (let ((X2 (= ticket3i.usr.p1_a_0 0))) (and (= ticket3i.usr.a1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) ticket3i.usr.a1_a_0)) (let ((X3 (and (= ticket3i.usr.p1_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) (and (= ticket3i.usr.p1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 1 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e2_a_1 (ite X3 2 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e3_a_1 (ite X1 0 ticket3i.usr.p1_a_0) ticket3i.usr.p1_a_0)))) (let ((X4 (= ticket3i.usr.p3_a_0 2))) (let ((X5 (= ticket3i.usr.p2_a_0 2))) (and (= ticket3i.usr.s_a_1 (ite ticket3i.usr.e3_a_1 (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) ticket3i.usr.s_a_0)))) (let ((X6 (= ticket3i.usr.p3_a_0 0))) (let ((X7 (= ticket3i.usr.p2_a_0 0))) (and (= ticket3i.usr.t_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e4_a_1 (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e7_a_1 (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) ticket3i.usr.t_a_0)))) (= ticket3i.usr.a2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) ticket3i.usr.a2_a_0)) (let ((X8 (and (= ticket3i.usr.p2_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) (and (= ticket3i.usr.p2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 1 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e5_a_1 (ite X8 2 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 0 ticket3i.usr.p2_a_0) ticket3i.usr.p2_a_0)))) (= ticket3i.usr.a3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) ticket3i.usr.a3_a_0)) (let ((X9 (and (= ticket3i.usr.p3_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) (and (= ticket3i.usr.p3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 1 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e8_a_1 (ite X9 2 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 0 ticket3i.usr.p3_a_0) ticket3i.usr.p3_a_0)))) (= ticket3i.usr.erreur_ticket3i_a_1 (ite (or (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) (>= ticket3i.usr.p3_a_1 3)) true false)) (not ticket3i.res.init_flag_a_1))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_0 (and (and (and (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) (>= top.usr.init_a2_a_0 0)) (>= top.usr.init_a3_a_0 0)) (>= top.usr.init_t_a_0 0))) (let ((X1 top.res.abs_11_a_0)) (let ((X2 top.res.abs_8_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_1_a_0)) (let ((X5 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (and (and (and (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= (+ (+ (+ X5 1) X4) X3) 9)))) (__node_init_ticket3i_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_init_excludes9_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.e9_a_1 Bool) (top.usr.init_a1_a_1 Int) (top.usr.init_a2_a_1 Int) (top.usr.init_a3_a_1 Int) (top.usr.init_t_a_1 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_1 (and (and (and (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) (>= top.usr.init_a2_a_1 0)) (>= top.usr.init_a3_a_1 0)) (>= top.usr.init_t_a_1 0))) (let ((X1 top.res.abs_11_a_1)) (let ((X2 top.res.abs_8_a_1)) (let ((X3 top.res.abs_2_a_1)) (let ((X4 top.res.abs_1_a_1)) (let ((X5 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (and (and (and (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= (+ (+ (+ X5 1) X4) X3) 9)))) (__node_trans_ticket3i_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.usr.init_a1_a_1 top.usr.init_a2_a_1 top.usr.init_a3_a_1 top.usr.init_t_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_trans_excludes9_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_10 (and (and (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) (>= top.usr.init_a3 0)) (>= top.usr.init_t 0))) (let ((X1 top.res.abs_11)) (let ((X2 top.res.abs_8)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_1)) (let ((X5 top.res.abs_0)) (and (= top.usr.OK (=> X1 (and (and (and (and (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= (+ (+ (+ X5 1) X4) X3) 9)))) (__node_init_ticket3i_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_init_excludes9_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.e9! Bool) (top.usr.init_a1! Int) (top.usr.init_a2! Int) (top.usr.init_a3! Int) (top.usr.init_t! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_10! (and (and (and (and top.res.abs_9! (>= top.usr.init_a1! 0)) (>= top.usr.init_a2! 0)) (>= top.usr.init_a3! 0)) (>= top.usr.init_t! 0))) (let ((X1 top.res.abs_11!)) (let ((X2 top.res.abs_8!)) (let ((X3 top.res.abs_2!)) (let ((X4 top.res.abs_1!)) (let ((X5 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (and (and (and (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= (+ (+ (+ X5 1) X4) X3) 9)))) (__node_trans_ticket3i_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.usr.init_a1! top.usr.init_a2! top.usr.init_a3! top.usr.init_t! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_1! top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_trans_excludes9_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.res.abs_9! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ticket3i_all_e2_1117_e7_553.sl b/benchmarks/LIA/Lustre/ticket3i_all_e2_1117_e7_553.sl index 16eece5..2150f15 100644 --- a/benchmarks/LIA/Lustre/ticket3i_all_e2_1117_e7_553.sl +++ b/benchmarks/LIA/Lustre/ticket3i_all_e2_1117_e7_553.sl @@ -1,1457 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes9_0 ( - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - excludes9.usr.X3_a_0) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - excludes9.usr.X4_a_0) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - excludes9.usr.X5_a_0) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - excludes9.usr.X6_a_0) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - excludes9.usr.X7_a_0) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - excludes9.usr.X8_a_0) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - excludes9.usr.X9_a_0))) - excludes9.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes9_0 ( - (excludes9.usr.X1_a_1 Bool) - (excludes9.usr.X2_a_1 Bool) - (excludes9.usr.X3_a_1 Bool) - (excludes9.usr.X4_a_1 Bool) - (excludes9.usr.X5_a_1 Bool) - (excludes9.usr.X6_a_1 Bool) - (excludes9.usr.X7_a_1 Bool) - (excludes9.usr.X8_a_1 Bool) - (excludes9.usr.X9_a_1 Bool) - (excludes9.usr.excludes_a_1 Bool) - (excludes9.res.init_flag_a_1 Bool) - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - excludes9.usr.X3_a_1) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - excludes9.usr.X4_a_1) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - excludes9.usr.X5_a_1) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - excludes9.usr.X6_a_1) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - excludes9.usr.X7_a_1) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - excludes9.usr.X8_a_1) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - excludes9.usr.X9_a_1))) - (not excludes9.res.init_flag_a_1)) -) - -(define-fun - __node_init_ticket3i_0 ( - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (and - (= ticket3i.usr.p1_a_0 0) - (let - ((X1 Bool (let ((X1 Int ticket3i.res.nondet_0)) (= X1 0)))) - (and - (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) - (let - ((X2 - Bool (let - ((X2 Int ticket3i.res.nondet_2) (X3 Int ticket3i.res.nondet_1)) - (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) - (and - (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) - (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) - (let - ((X3 Bool (let ((X3 Int ticket3i.res.nondet_4)) (= X3 0)))) - (and - (= ticket3i.usr.p2_a_0 0) - (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) - (let - ((X4 - Bool (let - ((X4 Int ticket3i.res.nondet_6) - (X5 Int ticket3i.res.nondet_5)) - (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) - (let - ((X5 Bool (let ((X5 Int ticket3i.res.nondet_7)) (= X5 2)))) - (let - ((X6 Bool (let ((X6 Int ticket3i.res.nondet_8)) (= X6 0)))) - (and - (= ticket3i.usr.p3_a_0 0) - (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) - (let - ((X7 - Bool (let - ((X7 Int ticket3i.res.nondet_10) - (X8 Int ticket3i.res.nondet_9)) - (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) - (let - ((X8 Bool (let ((X8 Int ticket3i.res.nondet_11)) (= X8 2)))) - (let - ((X9 Bool (let ((X9 Int ticket3i.res.nondet_3)) (= X9 2)))) - (and - (= - ticket3i.usr.erreur_ticket3i_a_0 - (ite - (or - (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) - (>= ticket3i.usr.p3_a_0 3)) - true - false)) - ticket3i.res.init_flag_a_0))))))))))))))) -) - -(define-fun - __node_trans_ticket3i_0 ( - (ticket3i.usr.e1_a_1 Bool) - (ticket3i.usr.e2_a_1 Bool) - (ticket3i.usr.e3_a_1 Bool) - (ticket3i.usr.e4_a_1 Bool) - (ticket3i.usr.e5_a_1 Bool) - (ticket3i.usr.e6_a_1 Bool) - (ticket3i.usr.e7_a_1 Bool) - (ticket3i.usr.e8_a_1 Bool) - (ticket3i.usr.e9_a_1 Bool) - (ticket3i.usr.init_a1_a_1 Int) - (ticket3i.usr.init_a2_a_1 Int) - (ticket3i.usr.init_a3_a_1 Int) - (ticket3i.usr.init_t_a_1 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_1 Int) - (ticket3i.usr.p2_a_1 Int) - (ticket3i.usr.p3_a_1 Int) - (ticket3i.usr.t_a_1 Int) - (ticket3i.usr.s_a_1 Int) - (ticket3i.usr.a1_a_1 Int) - (ticket3i.usr.a2_a_1 Int) - (ticket3i.usr.a3_a_1 Int) - (ticket3i.usr.erreur_ticket3i_a_1 Bool) - (ticket3i.res.init_flag_a_1 Bool) - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (= ticket3i.usr.p1_a_0 2))) - (let - ((X2 Bool (= ticket3i.usr.p1_a_0 0))) - (and - (= - ticket3i.usr.a1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) - ticket3i.usr.a1_a_0)) - (let - ((X3 - Bool (and - (= ticket3i.usr.p1_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) - (and - (= - ticket3i.usr.p1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 1 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e2_a_1 - (ite X3 2 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e3_a_1 - (ite X1 0 ticket3i.usr.p1_a_0) - ticket3i.usr.p1_a_0)))) - (let - ((X4 Bool (= ticket3i.usr.p3_a_0 2))) - (let - ((X5 Bool (= ticket3i.usr.p2_a_0 2))) - (and - (= - ticket3i.usr.s_a_1 - (ite - ticket3i.usr.e3_a_1 - (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - ticket3i.usr.s_a_0)))) - (let - ((X6 Bool (= ticket3i.usr.p3_a_0 0))) - (let - ((X7 Bool (= ticket3i.usr.p2_a_0 0))) - (and - (= - ticket3i.usr.t_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e4_a_1 - (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e7_a_1 - (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - ticket3i.usr.t_a_0)))) - (= - ticket3i.usr.a2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) - ticket3i.usr.a2_a_0)) - (let - ((X8 - Bool (and - (= ticket3i.usr.p2_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) - (and - (= - ticket3i.usr.p2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 1 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e5_a_1 - (ite X8 2 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 0 ticket3i.usr.p2_a_0) - ticket3i.usr.p2_a_0)))) - (= - ticket3i.usr.a3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) - ticket3i.usr.a3_a_0)) - (let - ((X9 - Bool (and - (= ticket3i.usr.p3_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) - (and - (= - ticket3i.usr.p3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 1 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e8_a_1 - (ite X9 2 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 0 ticket3i.usr.p3_a_0) - ticket3i.usr.p3_a_0)))) - (= - ticket3i.usr.erreur_ticket3i_a_1 - (ite - (or - (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) - (>= ticket3i.usr.p3_a_1 3)) - true - false)) - (not ticket3i.res.init_flag_a_1)))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_0 - (and - (and - (and - (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) - (>= top.usr.init_a2_a_0 0)) - (>= top.usr.init_a3_a_0 0)) - (>= top.usr.init_t_a_0 0))) - (let - ((X1 Bool top.res.abs_11_a_0)) - (let - ((X2 Bool top.res.abs_8_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_1_a_0)) - (let - ((X5 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (and - (and - (and - (and - (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) - (<= X4 3)) - (<= 0 X3)) - (<= X3 3)) - (<= (+ (+ (- X5 1) X4) X3) 9)))) - (__node_init_ticket3i_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_init_excludes9_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.e9_a_1 Bool) - (top.usr.init_a1_a_1 Int) - (top.usr.init_a2_a_1 Int) - (top.usr.init_a3_a_1 Int) - (top.usr.init_t_a_1 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_1 - (and - (and - (and - (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) - (>= top.usr.init_a2_a_1 0)) - (>= top.usr.init_a3_a_1 0)) - (>= top.usr.init_t_a_1 0))) - (let - ((X1 Bool top.res.abs_11_a_1)) - (let - ((X2 Bool top.res.abs_8_a_1)) - (let - ((X3 Int top.res.abs_2_a_1)) - (let - ((X4 Int top.res.abs_1_a_1)) - (let - ((X5 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (and - (and - (and - (and - (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) - (<= X4 3)) - (<= 0 X3)) - (<= X3 3)) - (<= (+ (+ (- X5 1) X4) X3) 9)))) - (__node_trans_ticket3i_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.usr.init_a1_a_1 - top.usr.init_a2_a_1 - top.usr.init_a3_a_1 - top.usr.init_t_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes9_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.e9 Bool) -(declare-primed-var top.usr.init_a1 Int) -(declare-primed-var top.usr.init_a2 Int) -(declare-primed-var top.usr.init_a3 Int) -(declare-primed-var top.usr.init_t Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_10 - (and - (and - (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) - (>= top.usr.init_a3 0)) - (>= top.usr.init_t 0))) - (let - ((X1 Bool top.res.abs_11)) - (let - ((X2 Bool top.res.abs_8)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_1)) - (let - ((X5 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> - X1 - (and - (and - (and - (and - (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) - (<= X4 3)) - (<= 0 X3)) - (<= X3 3)) - (<= (+ (+ (- X5 1) X4) X3) 9)))) - (__node_init_ticket3i_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) - (__node_init_excludes9_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.e9! Bool) - (top.usr.init_a1! Int) - (top.usr.init_a2! Int) - (top.usr.init_a3! Int) - (top.usr.init_t! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_10! - (and - (and - (and - (and top.res.abs_9! (>= top.usr.init_a1! 0)) - (>= top.usr.init_a2! 0)) - (>= top.usr.init_a3! 0)) - (>= top.usr.init_t! 0))) - (let - ((X1 Bool top.res.abs_11!)) - (let - ((X2 Bool top.res.abs_8!)) - (let - ((X3 Int top.res.abs_2!)) - (let - ((X4 Int top.res.abs_1!)) - (let - ((X5 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> - X1 - (and - (and - (and - (and - (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) - (<= X4 3)) - (<= 0 X3)) - (<= X3 3)) - (<= (+ (+ (- X5 1) X4) X3) 9)))) - (__node_trans_ticket3i_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.usr.init_a1! - top.usr.init_a2! - top.usr.init_a3! - top.usr.init_t! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_1! - top.res.abs_10 - top.res.abs_11 - top.res.inst_1) - (__node_trans_excludes9_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.res.abs_9! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes9_0 ((excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) excludes9.usr.X3_a_0) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) excludes9.usr.X4_a_0) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) excludes9.usr.X5_a_0) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) excludes9.usr.X6_a_0) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) excludes9.usr.X7_a_0) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) excludes9.usr.X8_a_0) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) excludes9.usr.X9_a_0))) excludes9.res.init_flag_a_0)) +(define-fun __node_trans_excludes9_0 ((excludes9.usr.X1_a_1 Bool) (excludes9.usr.X2_a_1 Bool) (excludes9.usr.X3_a_1 Bool) (excludes9.usr.X4_a_1 Bool) (excludes9.usr.X5_a_1 Bool) (excludes9.usr.X6_a_1 Bool) (excludes9.usr.X7_a_1 Bool) (excludes9.usr.X8_a_1 Bool) (excludes9.usr.X9_a_1 Bool) (excludes9.usr.excludes_a_1 Bool) (excludes9.res.init_flag_a_1 Bool) (excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) excludes9.usr.X3_a_1) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) excludes9.usr.X4_a_1) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) excludes9.usr.X5_a_1) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) excludes9.usr.X6_a_1) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) excludes9.usr.X7_a_1) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) excludes9.usr.X8_a_1) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) excludes9.usr.X9_a_1))) (not excludes9.res.init_flag_a_1))) +(define-fun __node_init_ticket3i_0 ((ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (and (= ticket3i.usr.p1_a_0 0) (let ((X1 (let ((X1 ticket3i.res.nondet_0)) (= X1 0)))) (and (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) (let ((X2 (let ((X2 ticket3i.res.nondet_2) (X3 ticket3i.res.nondet_1)) (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) (and (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) (let ((X3 (let ((X3 ticket3i.res.nondet_4)) (= X3 0)))) (and (= ticket3i.usr.p2_a_0 0) (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) (let ((X4 (let ((X4 ticket3i.res.nondet_6) (X5 ticket3i.res.nondet_5)) (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) (let ((X5 (let ((X5 ticket3i.res.nondet_7)) (= X5 2)))) (let ((X6 (let ((X6 ticket3i.res.nondet_8)) (= X6 0)))) (and (= ticket3i.usr.p3_a_0 0) (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) (let ((X7 (let ((X7 ticket3i.res.nondet_10) (X8 ticket3i.res.nondet_9)) (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) (let ((X8 (let ((X8 ticket3i.res.nondet_11)) (= X8 2)))) (let ((X9 (let ((X9 ticket3i.res.nondet_3)) (= X9 2)))) (and (= ticket3i.usr.erreur_ticket3i_a_0 (ite (or (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) (>= ticket3i.usr.p3_a_0 3)) true false)) ticket3i.res.init_flag_a_0)))))))))))))))) +(define-fun __node_trans_ticket3i_0 ((ticket3i.usr.e1_a_1 Bool) (ticket3i.usr.e2_a_1 Bool) (ticket3i.usr.e3_a_1 Bool) (ticket3i.usr.e4_a_1 Bool) (ticket3i.usr.e5_a_1 Bool) (ticket3i.usr.e6_a_1 Bool) (ticket3i.usr.e7_a_1 Bool) (ticket3i.usr.e8_a_1 Bool) (ticket3i.usr.e9_a_1 Bool) (ticket3i.usr.init_a1_a_1 Int) (ticket3i.usr.init_a2_a_1 Int) (ticket3i.usr.init_a3_a_1 Int) (ticket3i.usr.init_t_a_1 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_1 Int) (ticket3i.usr.p2_a_1 Int) (ticket3i.usr.p3_a_1 Int) (ticket3i.usr.t_a_1 Int) (ticket3i.usr.s_a_1 Int) (ticket3i.usr.a1_a_1 Int) (ticket3i.usr.a2_a_1 Int) (ticket3i.usr.a3_a_1 Int) (ticket3i.usr.erreur_ticket3i_a_1 Bool) (ticket3i.res.init_flag_a_1 Bool) (ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (let ((X1 (= ticket3i.usr.p1_a_0 2))) (let ((X2 (= ticket3i.usr.p1_a_0 0))) (and (= ticket3i.usr.a1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) ticket3i.usr.a1_a_0)) (let ((X3 (and (= ticket3i.usr.p1_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) (and (= ticket3i.usr.p1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 1 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e2_a_1 (ite X3 2 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e3_a_1 (ite X1 0 ticket3i.usr.p1_a_0) ticket3i.usr.p1_a_0)))) (let ((X4 (= ticket3i.usr.p3_a_0 2))) (let ((X5 (= ticket3i.usr.p2_a_0 2))) (and (= ticket3i.usr.s_a_1 (ite ticket3i.usr.e3_a_1 (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) ticket3i.usr.s_a_0)))) (let ((X6 (= ticket3i.usr.p3_a_0 0))) (let ((X7 (= ticket3i.usr.p2_a_0 0))) (and (= ticket3i.usr.t_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e4_a_1 (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e7_a_1 (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) ticket3i.usr.t_a_0)))) (= ticket3i.usr.a2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) ticket3i.usr.a2_a_0)) (let ((X8 (and (= ticket3i.usr.p2_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) (and (= ticket3i.usr.p2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 1 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e5_a_1 (ite X8 2 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 0 ticket3i.usr.p2_a_0) ticket3i.usr.p2_a_0)))) (= ticket3i.usr.a3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) ticket3i.usr.a3_a_0)) (let ((X9 (and (= ticket3i.usr.p3_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) (and (= ticket3i.usr.p3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 1 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e8_a_1 (ite X9 2 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 0 ticket3i.usr.p3_a_0) ticket3i.usr.p3_a_0)))) (= ticket3i.usr.erreur_ticket3i_a_1 (ite (or (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) (>= ticket3i.usr.p3_a_1 3)) true false)) (not ticket3i.res.init_flag_a_1))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_0 (and (and (and (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) (>= top.usr.init_a2_a_0 0)) (>= top.usr.init_a3_a_0 0)) (>= top.usr.init_t_a_0 0))) (let ((X1 top.res.abs_11_a_0)) (let ((X2 top.res.abs_8_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_1_a_0)) (let ((X5 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (and (and (and (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= (+ (+ (- X5 1) X4) X3) 9)))) (__node_init_ticket3i_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_init_excludes9_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.e9_a_1 Bool) (top.usr.init_a1_a_1 Int) (top.usr.init_a2_a_1 Int) (top.usr.init_a3_a_1 Int) (top.usr.init_t_a_1 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_1 (and (and (and (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) (>= top.usr.init_a2_a_1 0)) (>= top.usr.init_a3_a_1 0)) (>= top.usr.init_t_a_1 0))) (let ((X1 top.res.abs_11_a_1)) (let ((X2 top.res.abs_8_a_1)) (let ((X3 top.res.abs_2_a_1)) (let ((X4 top.res.abs_1_a_1)) (let ((X5 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (and (and (and (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= (+ (+ (- X5 1) X4) X3) 9)))) (__node_trans_ticket3i_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.usr.init_a1_a_1 top.usr.init_a2_a_1 top.usr.init_a3_a_1 top.usr.init_t_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_trans_excludes9_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_10 (and (and (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) (>= top.usr.init_a3 0)) (>= top.usr.init_t 0))) (let ((X1 top.res.abs_11)) (let ((X2 top.res.abs_8)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_1)) (let ((X5 top.res.abs_0)) (and (= top.usr.OK (=> X1 (and (and (and (and (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= (+ (+ (- X5 1) X4) X3) 9)))) (__node_init_ticket3i_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_init_excludes9_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.e9! Bool) (top.usr.init_a1! Int) (top.usr.init_a2! Int) (top.usr.init_a3! Int) (top.usr.init_t! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_10! (and (and (and (and top.res.abs_9! (>= top.usr.init_a1! 0)) (>= top.usr.init_a2! 0)) (>= top.usr.init_a3! 0)) (>= top.usr.init_t! 0))) (let ((X1 top.res.abs_11!)) (let ((X2 top.res.abs_8!)) (let ((X3 top.res.abs_2!)) (let ((X4 top.res.abs_1!)) (let ((X5 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (and (and (and (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= (+ (+ (- X5 1) X4) X3) 9)))) (__node_trans_ticket3i_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.usr.init_a1! top.usr.init_a2! top.usr.init_a3! top.usr.init_t! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_1! top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_trans_excludes9_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.res.abs_9! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ticket3i_all_e3_557_e7_3464.sl b/benchmarks/LIA/Lustre/ticket3i_all_e3_557_e7_3464.sl index c4b5bc3..ef0fe2f 100644 --- a/benchmarks/LIA/Lustre/ticket3i_all_e3_557_e7_3464.sl +++ b/benchmarks/LIA/Lustre/ticket3i_all_e3_557_e7_3464.sl @@ -1,1457 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes9_0 ( - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - excludes9.usr.X3_a_0) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - excludes9.usr.X4_a_0) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - excludes9.usr.X5_a_0) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - excludes9.usr.X6_a_0) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - excludes9.usr.X7_a_0) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - excludes9.usr.X8_a_0) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - excludes9.usr.X9_a_0))) - excludes9.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes9_0 ( - (excludes9.usr.X1_a_1 Bool) - (excludes9.usr.X2_a_1 Bool) - (excludes9.usr.X3_a_1 Bool) - (excludes9.usr.X4_a_1 Bool) - (excludes9.usr.X5_a_1 Bool) - (excludes9.usr.X6_a_1 Bool) - (excludes9.usr.X7_a_1 Bool) - (excludes9.usr.X8_a_1 Bool) - (excludes9.usr.X9_a_1 Bool) - (excludes9.usr.excludes_a_1 Bool) - (excludes9.res.init_flag_a_1 Bool) - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - excludes9.usr.X3_a_1) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - excludes9.usr.X4_a_1) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - excludes9.usr.X5_a_1) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - excludes9.usr.X6_a_1) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - excludes9.usr.X7_a_1) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - excludes9.usr.X8_a_1) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - excludes9.usr.X9_a_1))) - (not excludes9.res.init_flag_a_1)) -) - -(define-fun - __node_init_ticket3i_0 ( - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (and - (= ticket3i.usr.p1_a_0 0) - (let - ((X1 Bool (let ((X1 Int ticket3i.res.nondet_0)) (= X1 0)))) - (and - (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) - (let - ((X2 - Bool (let - ((X2 Int ticket3i.res.nondet_2) (X3 Int ticket3i.res.nondet_1)) - (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) - (and - (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) - (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) - (let - ((X3 Bool (let ((X3 Int ticket3i.res.nondet_4)) (= X3 0)))) - (and - (= ticket3i.usr.p2_a_0 0) - (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) - (let - ((X4 - Bool (let - ((X4 Int ticket3i.res.nondet_6) - (X5 Int ticket3i.res.nondet_5)) - (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) - (let - ((X5 Bool (let ((X5 Int ticket3i.res.nondet_7)) (= X5 2)))) - (let - ((X6 Bool (let ((X6 Int ticket3i.res.nondet_8)) (= X6 0)))) - (and - (= ticket3i.usr.p3_a_0 0) - (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) - (let - ((X7 - Bool (let - ((X7 Int ticket3i.res.nondet_10) - (X8 Int ticket3i.res.nondet_9)) - (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) - (let - ((X8 Bool (let ((X8 Int ticket3i.res.nondet_11)) (= X8 2)))) - (let - ((X9 Bool (let ((X9 Int ticket3i.res.nondet_3)) (= X9 2)))) - (and - (= - ticket3i.usr.erreur_ticket3i_a_0 - (ite - (or - (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) - (>= ticket3i.usr.p3_a_0 3)) - true - false)) - ticket3i.res.init_flag_a_0))))))))))))))) -) - -(define-fun - __node_trans_ticket3i_0 ( - (ticket3i.usr.e1_a_1 Bool) - (ticket3i.usr.e2_a_1 Bool) - (ticket3i.usr.e3_a_1 Bool) - (ticket3i.usr.e4_a_1 Bool) - (ticket3i.usr.e5_a_1 Bool) - (ticket3i.usr.e6_a_1 Bool) - (ticket3i.usr.e7_a_1 Bool) - (ticket3i.usr.e8_a_1 Bool) - (ticket3i.usr.e9_a_1 Bool) - (ticket3i.usr.init_a1_a_1 Int) - (ticket3i.usr.init_a2_a_1 Int) - (ticket3i.usr.init_a3_a_1 Int) - (ticket3i.usr.init_t_a_1 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_1 Int) - (ticket3i.usr.p2_a_1 Int) - (ticket3i.usr.p3_a_1 Int) - (ticket3i.usr.t_a_1 Int) - (ticket3i.usr.s_a_1 Int) - (ticket3i.usr.a1_a_1 Int) - (ticket3i.usr.a2_a_1 Int) - (ticket3i.usr.a3_a_1 Int) - (ticket3i.usr.erreur_ticket3i_a_1 Bool) - (ticket3i.res.init_flag_a_1 Bool) - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (= ticket3i.usr.p1_a_0 2))) - (let - ((X2 Bool (= ticket3i.usr.p1_a_0 0))) - (and - (= - ticket3i.usr.a1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) - ticket3i.usr.a1_a_0)) - (let - ((X3 - Bool (and - (= ticket3i.usr.p1_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) - (and - (= - ticket3i.usr.p1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 1 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e2_a_1 - (ite X3 2 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e3_a_1 - (ite X1 0 ticket3i.usr.p1_a_0) - ticket3i.usr.p1_a_0)))) - (let - ((X4 Bool (= ticket3i.usr.p3_a_0 2))) - (let - ((X5 Bool (= ticket3i.usr.p2_a_0 2))) - (and - (= - ticket3i.usr.s_a_1 - (ite - ticket3i.usr.e3_a_1 - (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - ticket3i.usr.s_a_0)))) - (let - ((X6 Bool (= ticket3i.usr.p3_a_0 0))) - (let - ((X7 Bool (= ticket3i.usr.p2_a_0 0))) - (and - (= - ticket3i.usr.t_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e4_a_1 - (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e7_a_1 - (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - ticket3i.usr.t_a_0)))) - (= - ticket3i.usr.a2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) - ticket3i.usr.a2_a_0)) - (let - ((X8 - Bool (and - (= ticket3i.usr.p2_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) - (and - (= - ticket3i.usr.p2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 1 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e5_a_1 - (ite X8 2 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 0 ticket3i.usr.p2_a_0) - ticket3i.usr.p2_a_0)))) - (= - ticket3i.usr.a3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) - ticket3i.usr.a3_a_0)) - (let - ((X9 - Bool (and - (= ticket3i.usr.p3_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) - (and - (= - ticket3i.usr.p3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 1 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e8_a_1 - (ite X9 2 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 0 ticket3i.usr.p3_a_0) - ticket3i.usr.p3_a_0)))) - (= - ticket3i.usr.erreur_ticket3i_a_1 - (ite - (or - (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) - (>= ticket3i.usr.p3_a_1 3)) - true - false)) - (not ticket3i.res.init_flag_a_1)))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_0 - (and - (and - (and - (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) - (>= top.usr.init_a2_a_0 0)) - (>= top.usr.init_a3_a_0 0)) - (>= top.usr.init_t_a_0 0))) - (let - ((X1 Bool top.res.abs_11_a_0)) - (let - ((X2 Bool top.res.abs_8_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_1_a_0)) - (let - ((X5 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (and - (and - (and - (and - (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) - (<= X4 3)) - (<= 0 X3)) - (<= X3 3)) - (<= (+ (- X5 X4) X3) 9)))) - (__node_init_ticket3i_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_init_excludes9_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.e9_a_1 Bool) - (top.usr.init_a1_a_1 Int) - (top.usr.init_a2_a_1 Int) - (top.usr.init_a3_a_1 Int) - (top.usr.init_t_a_1 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_1 - (and - (and - (and - (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) - (>= top.usr.init_a2_a_1 0)) - (>= top.usr.init_a3_a_1 0)) - (>= top.usr.init_t_a_1 0))) - (let - ((X1 Bool top.res.abs_11_a_1)) - (let - ((X2 Bool top.res.abs_8_a_1)) - (let - ((X3 Int top.res.abs_2_a_1)) - (let - ((X4 Int top.res.abs_1_a_1)) - (let - ((X5 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (and - (and - (and - (and - (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) - (<= X4 3)) - (<= 0 X3)) - (<= X3 3)) - (<= (+ (- X5 X4) X3) 9)))) - (__node_trans_ticket3i_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.usr.init_a1_a_1 - top.usr.init_a2_a_1 - top.usr.init_a3_a_1 - top.usr.init_t_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes9_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.e9 Bool) -(declare-primed-var top.usr.init_a1 Int) -(declare-primed-var top.usr.init_a2 Int) -(declare-primed-var top.usr.init_a3 Int) -(declare-primed-var top.usr.init_t Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_10 - (and - (and - (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) - (>= top.usr.init_a3 0)) - (>= top.usr.init_t 0))) - (let - ((X1 Bool top.res.abs_11)) - (let - ((X2 Bool top.res.abs_8)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_1)) - (let - ((X5 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> - X1 - (and - (and - (and - (and - (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) - (<= X4 3)) - (<= 0 X3)) - (<= X3 3)) - (<= (+ (- X5 X4) X3) 9)))) - (__node_init_ticket3i_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) - (__node_init_excludes9_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.e9! Bool) - (top.usr.init_a1! Int) - (top.usr.init_a2! Int) - (top.usr.init_a3! Int) - (top.usr.init_t! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_10! - (and - (and - (and - (and top.res.abs_9! (>= top.usr.init_a1! 0)) - (>= top.usr.init_a2! 0)) - (>= top.usr.init_a3! 0)) - (>= top.usr.init_t! 0))) - (let - ((X1 Bool top.res.abs_11!)) - (let - ((X2 Bool top.res.abs_8!)) - (let - ((X3 Int top.res.abs_2!)) - (let - ((X4 Int top.res.abs_1!)) - (let - ((X5 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> - X1 - (and - (and - (and - (and - (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) - (<= X4 3)) - (<= 0 X3)) - (<= X3 3)) - (<= (+ (- X5 X4) X3) 9)))) - (__node_trans_ticket3i_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.usr.init_a1! - top.usr.init_a2! - top.usr.init_a3! - top.usr.init_t! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_1! - top.res.abs_10 - top.res.abs_11 - top.res.inst_1) - (__node_trans_excludes9_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.res.abs_9! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes9_0 ((excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) excludes9.usr.X3_a_0) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) excludes9.usr.X4_a_0) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) excludes9.usr.X5_a_0) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) excludes9.usr.X6_a_0) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) excludes9.usr.X7_a_0) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) excludes9.usr.X8_a_0) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) excludes9.usr.X9_a_0))) excludes9.res.init_flag_a_0)) +(define-fun __node_trans_excludes9_0 ((excludes9.usr.X1_a_1 Bool) (excludes9.usr.X2_a_1 Bool) (excludes9.usr.X3_a_1 Bool) (excludes9.usr.X4_a_1 Bool) (excludes9.usr.X5_a_1 Bool) (excludes9.usr.X6_a_1 Bool) (excludes9.usr.X7_a_1 Bool) (excludes9.usr.X8_a_1 Bool) (excludes9.usr.X9_a_1 Bool) (excludes9.usr.excludes_a_1 Bool) (excludes9.res.init_flag_a_1 Bool) (excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) excludes9.usr.X3_a_1) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) excludes9.usr.X4_a_1) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) excludes9.usr.X5_a_1) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) excludes9.usr.X6_a_1) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) excludes9.usr.X7_a_1) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) excludes9.usr.X8_a_1) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) excludes9.usr.X9_a_1))) (not excludes9.res.init_flag_a_1))) +(define-fun __node_init_ticket3i_0 ((ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (and (= ticket3i.usr.p1_a_0 0) (let ((X1 (let ((X1 ticket3i.res.nondet_0)) (= X1 0)))) (and (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) (let ((X2 (let ((X2 ticket3i.res.nondet_2) (X3 ticket3i.res.nondet_1)) (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) (and (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) (let ((X3 (let ((X3 ticket3i.res.nondet_4)) (= X3 0)))) (and (= ticket3i.usr.p2_a_0 0) (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) (let ((X4 (let ((X4 ticket3i.res.nondet_6) (X5 ticket3i.res.nondet_5)) (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) (let ((X5 (let ((X5 ticket3i.res.nondet_7)) (= X5 2)))) (let ((X6 (let ((X6 ticket3i.res.nondet_8)) (= X6 0)))) (and (= ticket3i.usr.p3_a_0 0) (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) (let ((X7 (let ((X7 ticket3i.res.nondet_10) (X8 ticket3i.res.nondet_9)) (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) (let ((X8 (let ((X8 ticket3i.res.nondet_11)) (= X8 2)))) (let ((X9 (let ((X9 ticket3i.res.nondet_3)) (= X9 2)))) (and (= ticket3i.usr.erreur_ticket3i_a_0 (ite (or (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) (>= ticket3i.usr.p3_a_0 3)) true false)) ticket3i.res.init_flag_a_0)))))))))))))))) +(define-fun __node_trans_ticket3i_0 ((ticket3i.usr.e1_a_1 Bool) (ticket3i.usr.e2_a_1 Bool) (ticket3i.usr.e3_a_1 Bool) (ticket3i.usr.e4_a_1 Bool) (ticket3i.usr.e5_a_1 Bool) (ticket3i.usr.e6_a_1 Bool) (ticket3i.usr.e7_a_1 Bool) (ticket3i.usr.e8_a_1 Bool) (ticket3i.usr.e9_a_1 Bool) (ticket3i.usr.init_a1_a_1 Int) (ticket3i.usr.init_a2_a_1 Int) (ticket3i.usr.init_a3_a_1 Int) (ticket3i.usr.init_t_a_1 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_1 Int) (ticket3i.usr.p2_a_1 Int) (ticket3i.usr.p3_a_1 Int) (ticket3i.usr.t_a_1 Int) (ticket3i.usr.s_a_1 Int) (ticket3i.usr.a1_a_1 Int) (ticket3i.usr.a2_a_1 Int) (ticket3i.usr.a3_a_1 Int) (ticket3i.usr.erreur_ticket3i_a_1 Bool) (ticket3i.res.init_flag_a_1 Bool) (ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (let ((X1 (= ticket3i.usr.p1_a_0 2))) (let ((X2 (= ticket3i.usr.p1_a_0 0))) (and (= ticket3i.usr.a1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) ticket3i.usr.a1_a_0)) (let ((X3 (and (= ticket3i.usr.p1_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) (and (= ticket3i.usr.p1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 1 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e2_a_1 (ite X3 2 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e3_a_1 (ite X1 0 ticket3i.usr.p1_a_0) ticket3i.usr.p1_a_0)))) (let ((X4 (= ticket3i.usr.p3_a_0 2))) (let ((X5 (= ticket3i.usr.p2_a_0 2))) (and (= ticket3i.usr.s_a_1 (ite ticket3i.usr.e3_a_1 (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) ticket3i.usr.s_a_0)))) (let ((X6 (= ticket3i.usr.p3_a_0 0))) (let ((X7 (= ticket3i.usr.p2_a_0 0))) (and (= ticket3i.usr.t_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e4_a_1 (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e7_a_1 (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) ticket3i.usr.t_a_0)))) (= ticket3i.usr.a2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) ticket3i.usr.a2_a_0)) (let ((X8 (and (= ticket3i.usr.p2_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) (and (= ticket3i.usr.p2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 1 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e5_a_1 (ite X8 2 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 0 ticket3i.usr.p2_a_0) ticket3i.usr.p2_a_0)))) (= ticket3i.usr.a3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) ticket3i.usr.a3_a_0)) (let ((X9 (and (= ticket3i.usr.p3_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) (and (= ticket3i.usr.p3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 1 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e8_a_1 (ite X9 2 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 0 ticket3i.usr.p3_a_0) ticket3i.usr.p3_a_0)))) (= ticket3i.usr.erreur_ticket3i_a_1 (ite (or (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) (>= ticket3i.usr.p3_a_1 3)) true false)) (not ticket3i.res.init_flag_a_1))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_0 (and (and (and (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) (>= top.usr.init_a2_a_0 0)) (>= top.usr.init_a3_a_0 0)) (>= top.usr.init_t_a_0 0))) (let ((X1 top.res.abs_11_a_0)) (let ((X2 top.res.abs_8_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_1_a_0)) (let ((X5 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (and (and (and (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= (+ (- X5 X4) X3) 9)))) (__node_init_ticket3i_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_init_excludes9_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.e9_a_1 Bool) (top.usr.init_a1_a_1 Int) (top.usr.init_a2_a_1 Int) (top.usr.init_a3_a_1 Int) (top.usr.init_t_a_1 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_1 (and (and (and (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) (>= top.usr.init_a2_a_1 0)) (>= top.usr.init_a3_a_1 0)) (>= top.usr.init_t_a_1 0))) (let ((X1 top.res.abs_11_a_1)) (let ((X2 top.res.abs_8_a_1)) (let ((X3 top.res.abs_2_a_1)) (let ((X4 top.res.abs_1_a_1)) (let ((X5 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (and (and (and (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= (+ (- X5 X4) X3) 9)))) (__node_trans_ticket3i_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.usr.init_a1_a_1 top.usr.init_a2_a_1 top.usr.init_a3_a_1 top.usr.init_t_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_trans_excludes9_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_10 (and (and (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) (>= top.usr.init_a3 0)) (>= top.usr.init_t 0))) (let ((X1 top.res.abs_11)) (let ((X2 top.res.abs_8)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_1)) (let ((X5 top.res.abs_0)) (and (= top.usr.OK (=> X1 (and (and (and (and (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= (+ (- X5 X4) X3) 9)))) (__node_init_ticket3i_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_init_excludes9_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.e9! Bool) (top.usr.init_a1! Int) (top.usr.init_a2! Int) (top.usr.init_a3! Int) (top.usr.init_t! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_10! (and (and (and (and top.res.abs_9! (>= top.usr.init_a1! 0)) (>= top.usr.init_a2! 0)) (>= top.usr.init_a3! 0)) (>= top.usr.init_t! 0))) (let ((X1 top.res.abs_11!)) (let ((X2 top.res.abs_8!)) (let ((X3 top.res.abs_2!)) (let ((X4 top.res.abs_1!)) (let ((X5 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (and (and (and (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= (+ (- X5 X4) X3) 9)))) (__node_trans_ticket3i_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.usr.init_a1! top.usr.init_a2! top.usr.init_a3! top.usr.init_t! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_1! top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_trans_excludes9_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.res.abs_9! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ticket3i_all_e7_1837.sl b/benchmarks/LIA/Lustre/ticket3i_all_e7_1837.sl index 7879ce2..dc76baa 100644 --- a/benchmarks/LIA/Lustre/ticket3i_all_e7_1837.sl +++ b/benchmarks/LIA/Lustre/ticket3i_all_e7_1837.sl @@ -1,1457 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes9_0 ( - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - excludes9.usr.X3_a_0) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - excludes9.usr.X4_a_0) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - excludes9.usr.X5_a_0) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - excludes9.usr.X6_a_0) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - excludes9.usr.X7_a_0) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - excludes9.usr.X8_a_0) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - excludes9.usr.X9_a_0))) - excludes9.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes9_0 ( - (excludes9.usr.X1_a_1 Bool) - (excludes9.usr.X2_a_1 Bool) - (excludes9.usr.X3_a_1 Bool) - (excludes9.usr.X4_a_1 Bool) - (excludes9.usr.X5_a_1 Bool) - (excludes9.usr.X6_a_1 Bool) - (excludes9.usr.X7_a_1 Bool) - (excludes9.usr.X8_a_1 Bool) - (excludes9.usr.X9_a_1 Bool) - (excludes9.usr.excludes_a_1 Bool) - (excludes9.res.init_flag_a_1 Bool) - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - excludes9.usr.X3_a_1) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - excludes9.usr.X4_a_1) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - excludes9.usr.X5_a_1) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - excludes9.usr.X6_a_1) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - excludes9.usr.X7_a_1) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - excludes9.usr.X8_a_1) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - excludes9.usr.X9_a_1))) - (not excludes9.res.init_flag_a_1)) -) - -(define-fun - __node_init_ticket3i_0 ( - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (and - (= ticket3i.usr.p1_a_0 0) - (let - ((X1 Bool (let ((X1 Int ticket3i.res.nondet_0)) (= X1 0)))) - (and - (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) - (let - ((X2 - Bool (let - ((X2 Int ticket3i.res.nondet_2) (X3 Int ticket3i.res.nondet_1)) - (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) - (and - (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) - (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) - (let - ((X3 Bool (let ((X3 Int ticket3i.res.nondet_4)) (= X3 0)))) - (and - (= ticket3i.usr.p2_a_0 0) - (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) - (let - ((X4 - Bool (let - ((X4 Int ticket3i.res.nondet_6) - (X5 Int ticket3i.res.nondet_5)) - (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) - (let - ((X5 Bool (let ((X5 Int ticket3i.res.nondet_7)) (= X5 2)))) - (let - ((X6 Bool (let ((X6 Int ticket3i.res.nondet_8)) (= X6 0)))) - (and - (= ticket3i.usr.p3_a_0 0) - (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) - (let - ((X7 - Bool (let - ((X7 Int ticket3i.res.nondet_10) - (X8 Int ticket3i.res.nondet_9)) - (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) - (let - ((X8 Bool (let ((X8 Int ticket3i.res.nondet_11)) (= X8 2)))) - (let - ((X9 Bool (let ((X9 Int ticket3i.res.nondet_3)) (= X9 2)))) - (and - (= - ticket3i.usr.erreur_ticket3i_a_0 - (ite - (or - (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) - (>= ticket3i.usr.p3_a_0 3)) - true - false)) - ticket3i.res.init_flag_a_0))))))))))))))) -) - -(define-fun - __node_trans_ticket3i_0 ( - (ticket3i.usr.e1_a_1 Bool) - (ticket3i.usr.e2_a_1 Bool) - (ticket3i.usr.e3_a_1 Bool) - (ticket3i.usr.e4_a_1 Bool) - (ticket3i.usr.e5_a_1 Bool) - (ticket3i.usr.e6_a_1 Bool) - (ticket3i.usr.e7_a_1 Bool) - (ticket3i.usr.e8_a_1 Bool) - (ticket3i.usr.e9_a_1 Bool) - (ticket3i.usr.init_a1_a_1 Int) - (ticket3i.usr.init_a2_a_1 Int) - (ticket3i.usr.init_a3_a_1 Int) - (ticket3i.usr.init_t_a_1 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_1 Int) - (ticket3i.usr.p2_a_1 Int) - (ticket3i.usr.p3_a_1 Int) - (ticket3i.usr.t_a_1 Int) - (ticket3i.usr.s_a_1 Int) - (ticket3i.usr.a1_a_1 Int) - (ticket3i.usr.a2_a_1 Int) - (ticket3i.usr.a3_a_1 Int) - (ticket3i.usr.erreur_ticket3i_a_1 Bool) - (ticket3i.res.init_flag_a_1 Bool) - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (= ticket3i.usr.p1_a_0 2))) - (let - ((X2 Bool (= ticket3i.usr.p1_a_0 0))) - (and - (= - ticket3i.usr.a1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) - ticket3i.usr.a1_a_0)) - (let - ((X3 - Bool (and - (= ticket3i.usr.p1_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) - (and - (= - ticket3i.usr.p1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 1 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e2_a_1 - (ite X3 2 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e3_a_1 - (ite X1 0 ticket3i.usr.p1_a_0) - ticket3i.usr.p1_a_0)))) - (let - ((X4 Bool (= ticket3i.usr.p3_a_0 2))) - (let - ((X5 Bool (= ticket3i.usr.p2_a_0 2))) - (and - (= - ticket3i.usr.s_a_1 - (ite - ticket3i.usr.e3_a_1 - (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - ticket3i.usr.s_a_0)))) - (let - ((X6 Bool (= ticket3i.usr.p3_a_0 0))) - (let - ((X7 Bool (= ticket3i.usr.p2_a_0 0))) - (and - (= - ticket3i.usr.t_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e4_a_1 - (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e7_a_1 - (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - ticket3i.usr.t_a_0)))) - (= - ticket3i.usr.a2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) - ticket3i.usr.a2_a_0)) - (let - ((X8 - Bool (and - (= ticket3i.usr.p2_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) - (and - (= - ticket3i.usr.p2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 1 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e5_a_1 - (ite X8 2 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 0 ticket3i.usr.p2_a_0) - ticket3i.usr.p2_a_0)))) - (= - ticket3i.usr.a3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) - ticket3i.usr.a3_a_0)) - (let - ((X9 - Bool (and - (= ticket3i.usr.p3_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) - (and - (= - ticket3i.usr.p3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 1 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e8_a_1 - (ite X9 2 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 0 ticket3i.usr.p3_a_0) - ticket3i.usr.p3_a_0)))) - (= - ticket3i.usr.erreur_ticket3i_a_1 - (ite - (or - (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) - (>= ticket3i.usr.p3_a_1 3)) - true - false)) - (not ticket3i.res.init_flag_a_1)))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_0 - (and - (and - (and - (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) - (>= top.usr.init_a2_a_0 0)) - (>= top.usr.init_a3_a_0 0)) - (>= top.usr.init_t_a_0 0))) - (let - ((X1 Bool top.res.abs_11_a_0)) - (let - ((X2 Bool top.res.abs_8_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_1_a_0)) - (let - ((X5 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (and - (and - (and - (and - (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) - (<= X4 3)) - (<= 0 X3)) - (<= X3 3)) - (<= (+ (+ X5 X4) X3) 9)))) - (__node_init_ticket3i_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_init_excludes9_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.e9_a_1 Bool) - (top.usr.init_a1_a_1 Int) - (top.usr.init_a2_a_1 Int) - (top.usr.init_a3_a_1 Int) - (top.usr.init_t_a_1 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_1 - (and - (and - (and - (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) - (>= top.usr.init_a2_a_1 0)) - (>= top.usr.init_a3_a_1 0)) - (>= top.usr.init_t_a_1 0))) - (let - ((X1 Bool top.res.abs_11_a_1)) - (let - ((X2 Bool top.res.abs_8_a_1)) - (let - ((X3 Int top.res.abs_2_a_1)) - (let - ((X4 Int top.res.abs_1_a_1)) - (let - ((X5 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (and - (and - (and - (and - (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) - (<= X4 3)) - (<= 0 X3)) - (<= X3 3)) - (<= (+ (+ X5 X4) X3) 9)))) - (__node_trans_ticket3i_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.usr.init_a1_a_1 - top.usr.init_a2_a_1 - top.usr.init_a3_a_1 - top.usr.init_t_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes9_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.e9 Bool) -(declare-primed-var top.usr.init_a1 Int) -(declare-primed-var top.usr.init_a2 Int) -(declare-primed-var top.usr.init_a3 Int) -(declare-primed-var top.usr.init_t Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_10 - (and - (and - (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) - (>= top.usr.init_a3 0)) - (>= top.usr.init_t 0))) - (let - ((X1 Bool top.res.abs_11)) - (let - ((X2 Bool top.res.abs_8)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_1)) - (let - ((X5 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> - X1 - (and - (and - (and - (and - (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) - (<= X4 3)) - (<= 0 X3)) - (<= X3 3)) - (<= (+ (+ X5 X4) X3) 9)))) - (__node_init_ticket3i_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) - (__node_init_excludes9_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.e9! Bool) - (top.usr.init_a1! Int) - (top.usr.init_a2! Int) - (top.usr.init_a3! Int) - (top.usr.init_t! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_10! - (and - (and - (and - (and top.res.abs_9! (>= top.usr.init_a1! 0)) - (>= top.usr.init_a2! 0)) - (>= top.usr.init_a3! 0)) - (>= top.usr.init_t! 0))) - (let - ((X1 Bool top.res.abs_11!)) - (let - ((X2 Bool top.res.abs_8!)) - (let - ((X3 Int top.res.abs_2!)) - (let - ((X4 Int top.res.abs_1!)) - (let - ((X5 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> - X1 - (and - (and - (and - (and - (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) - (<= X4 3)) - (<= 0 X3)) - (<= X3 3)) - (<= (+ (+ X5 X4) X3) 9)))) - (__node_trans_ticket3i_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.usr.init_a1! - top.usr.init_a2! - top.usr.init_a3! - top.usr.init_t! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_1! - top.res.abs_10 - top.res.abs_11 - top.res.inst_1) - (__node_trans_excludes9_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.res.abs_9! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes9_0 ((excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) excludes9.usr.X3_a_0) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) excludes9.usr.X4_a_0) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) excludes9.usr.X5_a_0) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) excludes9.usr.X6_a_0) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) excludes9.usr.X7_a_0) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) excludes9.usr.X8_a_0) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) excludes9.usr.X9_a_0))) excludes9.res.init_flag_a_0)) +(define-fun __node_trans_excludes9_0 ((excludes9.usr.X1_a_1 Bool) (excludes9.usr.X2_a_1 Bool) (excludes9.usr.X3_a_1 Bool) (excludes9.usr.X4_a_1 Bool) (excludes9.usr.X5_a_1 Bool) (excludes9.usr.X6_a_1 Bool) (excludes9.usr.X7_a_1 Bool) (excludes9.usr.X8_a_1 Bool) (excludes9.usr.X9_a_1 Bool) (excludes9.usr.excludes_a_1 Bool) (excludes9.res.init_flag_a_1 Bool) (excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) excludes9.usr.X3_a_1) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) excludes9.usr.X4_a_1) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) excludes9.usr.X5_a_1) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) excludes9.usr.X6_a_1) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) excludes9.usr.X7_a_1) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) excludes9.usr.X8_a_1) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) excludes9.usr.X9_a_1))) (not excludes9.res.init_flag_a_1))) +(define-fun __node_init_ticket3i_0 ((ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (and (= ticket3i.usr.p1_a_0 0) (let ((X1 (let ((X1 ticket3i.res.nondet_0)) (= X1 0)))) (and (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) (let ((X2 (let ((X2 ticket3i.res.nondet_2) (X3 ticket3i.res.nondet_1)) (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) (and (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) (let ((X3 (let ((X3 ticket3i.res.nondet_4)) (= X3 0)))) (and (= ticket3i.usr.p2_a_0 0) (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) (let ((X4 (let ((X4 ticket3i.res.nondet_6) (X5 ticket3i.res.nondet_5)) (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) (let ((X5 (let ((X5 ticket3i.res.nondet_7)) (= X5 2)))) (let ((X6 (let ((X6 ticket3i.res.nondet_8)) (= X6 0)))) (and (= ticket3i.usr.p3_a_0 0) (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) (let ((X7 (let ((X7 ticket3i.res.nondet_10) (X8 ticket3i.res.nondet_9)) (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) (let ((X8 (let ((X8 ticket3i.res.nondet_11)) (= X8 2)))) (let ((X9 (let ((X9 ticket3i.res.nondet_3)) (= X9 2)))) (and (= ticket3i.usr.erreur_ticket3i_a_0 (ite (or (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) (>= ticket3i.usr.p3_a_0 3)) true false)) ticket3i.res.init_flag_a_0)))))))))))))))) +(define-fun __node_trans_ticket3i_0 ((ticket3i.usr.e1_a_1 Bool) (ticket3i.usr.e2_a_1 Bool) (ticket3i.usr.e3_a_1 Bool) (ticket3i.usr.e4_a_1 Bool) (ticket3i.usr.e5_a_1 Bool) (ticket3i.usr.e6_a_1 Bool) (ticket3i.usr.e7_a_1 Bool) (ticket3i.usr.e8_a_1 Bool) (ticket3i.usr.e9_a_1 Bool) (ticket3i.usr.init_a1_a_1 Int) (ticket3i.usr.init_a2_a_1 Int) (ticket3i.usr.init_a3_a_1 Int) (ticket3i.usr.init_t_a_1 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_1 Int) (ticket3i.usr.p2_a_1 Int) (ticket3i.usr.p3_a_1 Int) (ticket3i.usr.t_a_1 Int) (ticket3i.usr.s_a_1 Int) (ticket3i.usr.a1_a_1 Int) (ticket3i.usr.a2_a_1 Int) (ticket3i.usr.a3_a_1 Int) (ticket3i.usr.erreur_ticket3i_a_1 Bool) (ticket3i.res.init_flag_a_1 Bool) (ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (let ((X1 (= ticket3i.usr.p1_a_0 2))) (let ((X2 (= ticket3i.usr.p1_a_0 0))) (and (= ticket3i.usr.a1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) ticket3i.usr.a1_a_0)) (let ((X3 (and (= ticket3i.usr.p1_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) (and (= ticket3i.usr.p1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 1 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e2_a_1 (ite X3 2 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e3_a_1 (ite X1 0 ticket3i.usr.p1_a_0) ticket3i.usr.p1_a_0)))) (let ((X4 (= ticket3i.usr.p3_a_0 2))) (let ((X5 (= ticket3i.usr.p2_a_0 2))) (and (= ticket3i.usr.s_a_1 (ite ticket3i.usr.e3_a_1 (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) ticket3i.usr.s_a_0)))) (let ((X6 (= ticket3i.usr.p3_a_0 0))) (let ((X7 (= ticket3i.usr.p2_a_0 0))) (and (= ticket3i.usr.t_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e4_a_1 (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e7_a_1 (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) ticket3i.usr.t_a_0)))) (= ticket3i.usr.a2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) ticket3i.usr.a2_a_0)) (let ((X8 (and (= ticket3i.usr.p2_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) (and (= ticket3i.usr.p2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 1 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e5_a_1 (ite X8 2 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 0 ticket3i.usr.p2_a_0) ticket3i.usr.p2_a_0)))) (= ticket3i.usr.a3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) ticket3i.usr.a3_a_0)) (let ((X9 (and (= ticket3i.usr.p3_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) (and (= ticket3i.usr.p3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 1 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e8_a_1 (ite X9 2 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 0 ticket3i.usr.p3_a_0) ticket3i.usr.p3_a_0)))) (= ticket3i.usr.erreur_ticket3i_a_1 (ite (or (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) (>= ticket3i.usr.p3_a_1 3)) true false)) (not ticket3i.res.init_flag_a_1))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_0 (and (and (and (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) (>= top.usr.init_a2_a_0 0)) (>= top.usr.init_a3_a_0 0)) (>= top.usr.init_t_a_0 0))) (let ((X1 top.res.abs_11_a_0)) (let ((X2 top.res.abs_8_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_1_a_0)) (let ((X5 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (and (and (and (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= (+ (+ X5 X4) X3) 9)))) (__node_init_ticket3i_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_init_excludes9_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.e9_a_1 Bool) (top.usr.init_a1_a_1 Int) (top.usr.init_a2_a_1 Int) (top.usr.init_a3_a_1 Int) (top.usr.init_t_a_1 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_1 (and (and (and (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) (>= top.usr.init_a2_a_1 0)) (>= top.usr.init_a3_a_1 0)) (>= top.usr.init_t_a_1 0))) (let ((X1 top.res.abs_11_a_1)) (let ((X2 top.res.abs_8_a_1)) (let ((X3 top.res.abs_2_a_1)) (let ((X4 top.res.abs_1_a_1)) (let ((X5 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (and (and (and (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= (+ (+ X5 X4) X3) 9)))) (__node_trans_ticket3i_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.usr.init_a1_a_1 top.usr.init_a2_a_1 top.usr.init_a3_a_1 top.usr.init_t_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_trans_excludes9_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_10 (and (and (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) (>= top.usr.init_a3 0)) (>= top.usr.init_t 0))) (let ((X1 top.res.abs_11)) (let ((X2 top.res.abs_8)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_1)) (let ((X5 top.res.abs_0)) (and (= top.usr.OK (=> X1 (and (and (and (and (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= (+ (+ X5 X4) X3) 9)))) (__node_init_ticket3i_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_init_excludes9_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.e9! Bool) (top.usr.init_a1! Int) (top.usr.init_a2! Int) (top.usr.init_a3! Int) (top.usr.init_t! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_10! (and (and (and (and top.res.abs_9! (>= top.usr.init_a1! 0)) (>= top.usr.init_a2! 0)) (>= top.usr.init_a3! 0)) (>= top.usr.init_t! 0))) (let ((X1 top.res.abs_11!)) (let ((X2 top.res.abs_8!)) (let ((X3 top.res.abs_2!)) (let ((X4 top.res.abs_1!)) (let ((X5 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (and (and (and (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= (+ (+ X5 X4) X3) 9)))) (__node_trans_ticket3i_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.usr.init_a1! top.usr.init_a2! top.usr.init_a3! top.usr.init_t! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_1! top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_trans_excludes9_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.res.abs_9! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ticket3i_all_e7_591.sl b/benchmarks/LIA/Lustre/ticket3i_all_e7_591.sl index 7879ce2..dc76baa 100644 --- a/benchmarks/LIA/Lustre/ticket3i_all_e7_591.sl +++ b/benchmarks/LIA/Lustre/ticket3i_all_e7_591.sl @@ -1,1457 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes9_0 ( - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - excludes9.usr.X3_a_0) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - excludes9.usr.X4_a_0) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - excludes9.usr.X5_a_0) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - excludes9.usr.X6_a_0) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - excludes9.usr.X7_a_0) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - excludes9.usr.X8_a_0) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - excludes9.usr.X9_a_0))) - excludes9.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes9_0 ( - (excludes9.usr.X1_a_1 Bool) - (excludes9.usr.X2_a_1 Bool) - (excludes9.usr.X3_a_1 Bool) - (excludes9.usr.X4_a_1 Bool) - (excludes9.usr.X5_a_1 Bool) - (excludes9.usr.X6_a_1 Bool) - (excludes9.usr.X7_a_1 Bool) - (excludes9.usr.X8_a_1 Bool) - (excludes9.usr.X9_a_1 Bool) - (excludes9.usr.excludes_a_1 Bool) - (excludes9.res.init_flag_a_1 Bool) - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - excludes9.usr.X3_a_1) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - excludes9.usr.X4_a_1) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - excludes9.usr.X5_a_1) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - excludes9.usr.X6_a_1) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - excludes9.usr.X7_a_1) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - excludes9.usr.X8_a_1) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - excludes9.usr.X9_a_1))) - (not excludes9.res.init_flag_a_1)) -) - -(define-fun - __node_init_ticket3i_0 ( - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (and - (= ticket3i.usr.p1_a_0 0) - (let - ((X1 Bool (let ((X1 Int ticket3i.res.nondet_0)) (= X1 0)))) - (and - (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) - (let - ((X2 - Bool (let - ((X2 Int ticket3i.res.nondet_2) (X3 Int ticket3i.res.nondet_1)) - (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) - (and - (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) - (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) - (let - ((X3 Bool (let ((X3 Int ticket3i.res.nondet_4)) (= X3 0)))) - (and - (= ticket3i.usr.p2_a_0 0) - (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) - (let - ((X4 - Bool (let - ((X4 Int ticket3i.res.nondet_6) - (X5 Int ticket3i.res.nondet_5)) - (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) - (let - ((X5 Bool (let ((X5 Int ticket3i.res.nondet_7)) (= X5 2)))) - (let - ((X6 Bool (let ((X6 Int ticket3i.res.nondet_8)) (= X6 0)))) - (and - (= ticket3i.usr.p3_a_0 0) - (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) - (let - ((X7 - Bool (let - ((X7 Int ticket3i.res.nondet_10) - (X8 Int ticket3i.res.nondet_9)) - (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) - (let - ((X8 Bool (let ((X8 Int ticket3i.res.nondet_11)) (= X8 2)))) - (let - ((X9 Bool (let ((X9 Int ticket3i.res.nondet_3)) (= X9 2)))) - (and - (= - ticket3i.usr.erreur_ticket3i_a_0 - (ite - (or - (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) - (>= ticket3i.usr.p3_a_0 3)) - true - false)) - ticket3i.res.init_flag_a_0))))))))))))))) -) - -(define-fun - __node_trans_ticket3i_0 ( - (ticket3i.usr.e1_a_1 Bool) - (ticket3i.usr.e2_a_1 Bool) - (ticket3i.usr.e3_a_1 Bool) - (ticket3i.usr.e4_a_1 Bool) - (ticket3i.usr.e5_a_1 Bool) - (ticket3i.usr.e6_a_1 Bool) - (ticket3i.usr.e7_a_1 Bool) - (ticket3i.usr.e8_a_1 Bool) - (ticket3i.usr.e9_a_1 Bool) - (ticket3i.usr.init_a1_a_1 Int) - (ticket3i.usr.init_a2_a_1 Int) - (ticket3i.usr.init_a3_a_1 Int) - (ticket3i.usr.init_t_a_1 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_1 Int) - (ticket3i.usr.p2_a_1 Int) - (ticket3i.usr.p3_a_1 Int) - (ticket3i.usr.t_a_1 Int) - (ticket3i.usr.s_a_1 Int) - (ticket3i.usr.a1_a_1 Int) - (ticket3i.usr.a2_a_1 Int) - (ticket3i.usr.a3_a_1 Int) - (ticket3i.usr.erreur_ticket3i_a_1 Bool) - (ticket3i.res.init_flag_a_1 Bool) - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (= ticket3i.usr.p1_a_0 2))) - (let - ((X2 Bool (= ticket3i.usr.p1_a_0 0))) - (and - (= - ticket3i.usr.a1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) - ticket3i.usr.a1_a_0)) - (let - ((X3 - Bool (and - (= ticket3i.usr.p1_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) - (and - (= - ticket3i.usr.p1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 1 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e2_a_1 - (ite X3 2 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e3_a_1 - (ite X1 0 ticket3i.usr.p1_a_0) - ticket3i.usr.p1_a_0)))) - (let - ((X4 Bool (= ticket3i.usr.p3_a_0 2))) - (let - ((X5 Bool (= ticket3i.usr.p2_a_0 2))) - (and - (= - ticket3i.usr.s_a_1 - (ite - ticket3i.usr.e3_a_1 - (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - ticket3i.usr.s_a_0)))) - (let - ((X6 Bool (= ticket3i.usr.p3_a_0 0))) - (let - ((X7 Bool (= ticket3i.usr.p2_a_0 0))) - (and - (= - ticket3i.usr.t_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e4_a_1 - (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e7_a_1 - (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - ticket3i.usr.t_a_0)))) - (= - ticket3i.usr.a2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) - ticket3i.usr.a2_a_0)) - (let - ((X8 - Bool (and - (= ticket3i.usr.p2_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) - (and - (= - ticket3i.usr.p2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 1 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e5_a_1 - (ite X8 2 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 0 ticket3i.usr.p2_a_0) - ticket3i.usr.p2_a_0)))) - (= - ticket3i.usr.a3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) - ticket3i.usr.a3_a_0)) - (let - ((X9 - Bool (and - (= ticket3i.usr.p3_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) - (and - (= - ticket3i.usr.p3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 1 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e8_a_1 - (ite X9 2 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 0 ticket3i.usr.p3_a_0) - ticket3i.usr.p3_a_0)))) - (= - ticket3i.usr.erreur_ticket3i_a_1 - (ite - (or - (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) - (>= ticket3i.usr.p3_a_1 3)) - true - false)) - (not ticket3i.res.init_flag_a_1)))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_0 - (and - (and - (and - (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) - (>= top.usr.init_a2_a_0 0)) - (>= top.usr.init_a3_a_0 0)) - (>= top.usr.init_t_a_0 0))) - (let - ((X1 Bool top.res.abs_11_a_0)) - (let - ((X2 Bool top.res.abs_8_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_1_a_0)) - (let - ((X5 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (and - (and - (and - (and - (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) - (<= X4 3)) - (<= 0 X3)) - (<= X3 3)) - (<= (+ (+ X5 X4) X3) 9)))) - (__node_init_ticket3i_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_init_excludes9_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.e9_a_1 Bool) - (top.usr.init_a1_a_1 Int) - (top.usr.init_a2_a_1 Int) - (top.usr.init_a3_a_1 Int) - (top.usr.init_t_a_1 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_1 - (and - (and - (and - (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) - (>= top.usr.init_a2_a_1 0)) - (>= top.usr.init_a3_a_1 0)) - (>= top.usr.init_t_a_1 0))) - (let - ((X1 Bool top.res.abs_11_a_1)) - (let - ((X2 Bool top.res.abs_8_a_1)) - (let - ((X3 Int top.res.abs_2_a_1)) - (let - ((X4 Int top.res.abs_1_a_1)) - (let - ((X5 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (and - (and - (and - (and - (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) - (<= X4 3)) - (<= 0 X3)) - (<= X3 3)) - (<= (+ (+ X5 X4) X3) 9)))) - (__node_trans_ticket3i_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.usr.init_a1_a_1 - top.usr.init_a2_a_1 - top.usr.init_a3_a_1 - top.usr.init_t_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes9_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.e9 Bool) -(declare-primed-var top.usr.init_a1 Int) -(declare-primed-var top.usr.init_a2 Int) -(declare-primed-var top.usr.init_a3 Int) -(declare-primed-var top.usr.init_t Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_10 - (and - (and - (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) - (>= top.usr.init_a3 0)) - (>= top.usr.init_t 0))) - (let - ((X1 Bool top.res.abs_11)) - (let - ((X2 Bool top.res.abs_8)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_1)) - (let - ((X5 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> - X1 - (and - (and - (and - (and - (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) - (<= X4 3)) - (<= 0 X3)) - (<= X3 3)) - (<= (+ (+ X5 X4) X3) 9)))) - (__node_init_ticket3i_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) - (__node_init_excludes9_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.e9! Bool) - (top.usr.init_a1! Int) - (top.usr.init_a2! Int) - (top.usr.init_a3! Int) - (top.usr.init_t! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_10! - (and - (and - (and - (and top.res.abs_9! (>= top.usr.init_a1! 0)) - (>= top.usr.init_a2! 0)) - (>= top.usr.init_a3! 0)) - (>= top.usr.init_t! 0))) - (let - ((X1 Bool top.res.abs_11!)) - (let - ((X2 Bool top.res.abs_8!)) - (let - ((X3 Int top.res.abs_2!)) - (let - ((X4 Int top.res.abs_1!)) - (let - ((X5 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> - X1 - (and - (and - (and - (and - (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) - (<= X4 3)) - (<= 0 X3)) - (<= X3 3)) - (<= (+ (+ X5 X4) X3) 9)))) - (__node_trans_ticket3i_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.usr.init_a1! - top.usr.init_a2! - top.usr.init_a3! - top.usr.init_t! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_1! - top.res.abs_10 - top.res.abs_11 - top.res.inst_1) - (__node_trans_excludes9_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.res.abs_9! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes9_0 ((excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) excludes9.usr.X3_a_0) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) excludes9.usr.X4_a_0) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) excludes9.usr.X5_a_0) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) excludes9.usr.X6_a_0) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) excludes9.usr.X7_a_0) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) excludes9.usr.X8_a_0) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) excludes9.usr.X9_a_0))) excludes9.res.init_flag_a_0)) +(define-fun __node_trans_excludes9_0 ((excludes9.usr.X1_a_1 Bool) (excludes9.usr.X2_a_1 Bool) (excludes9.usr.X3_a_1 Bool) (excludes9.usr.X4_a_1 Bool) (excludes9.usr.X5_a_1 Bool) (excludes9.usr.X6_a_1 Bool) (excludes9.usr.X7_a_1 Bool) (excludes9.usr.X8_a_1 Bool) (excludes9.usr.X9_a_1 Bool) (excludes9.usr.excludes_a_1 Bool) (excludes9.res.init_flag_a_1 Bool) (excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) excludes9.usr.X3_a_1) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) excludes9.usr.X4_a_1) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) excludes9.usr.X5_a_1) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) excludes9.usr.X6_a_1) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) excludes9.usr.X7_a_1) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) excludes9.usr.X8_a_1) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) excludes9.usr.X9_a_1))) (not excludes9.res.init_flag_a_1))) +(define-fun __node_init_ticket3i_0 ((ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (and (= ticket3i.usr.p1_a_0 0) (let ((X1 (let ((X1 ticket3i.res.nondet_0)) (= X1 0)))) (and (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) (let ((X2 (let ((X2 ticket3i.res.nondet_2) (X3 ticket3i.res.nondet_1)) (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) (and (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) (let ((X3 (let ((X3 ticket3i.res.nondet_4)) (= X3 0)))) (and (= ticket3i.usr.p2_a_0 0) (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) (let ((X4 (let ((X4 ticket3i.res.nondet_6) (X5 ticket3i.res.nondet_5)) (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) (let ((X5 (let ((X5 ticket3i.res.nondet_7)) (= X5 2)))) (let ((X6 (let ((X6 ticket3i.res.nondet_8)) (= X6 0)))) (and (= ticket3i.usr.p3_a_0 0) (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) (let ((X7 (let ((X7 ticket3i.res.nondet_10) (X8 ticket3i.res.nondet_9)) (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) (let ((X8 (let ((X8 ticket3i.res.nondet_11)) (= X8 2)))) (let ((X9 (let ((X9 ticket3i.res.nondet_3)) (= X9 2)))) (and (= ticket3i.usr.erreur_ticket3i_a_0 (ite (or (or (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) (>= ticket3i.usr.p3_a_0 3)) true false)) ticket3i.res.init_flag_a_0)))))))))))))))) +(define-fun __node_trans_ticket3i_0 ((ticket3i.usr.e1_a_1 Bool) (ticket3i.usr.e2_a_1 Bool) (ticket3i.usr.e3_a_1 Bool) (ticket3i.usr.e4_a_1 Bool) (ticket3i.usr.e5_a_1 Bool) (ticket3i.usr.e6_a_1 Bool) (ticket3i.usr.e7_a_1 Bool) (ticket3i.usr.e8_a_1 Bool) (ticket3i.usr.e9_a_1 Bool) (ticket3i.usr.init_a1_a_1 Int) (ticket3i.usr.init_a2_a_1 Int) (ticket3i.usr.init_a3_a_1 Int) (ticket3i.usr.init_t_a_1 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_1 Int) (ticket3i.usr.p2_a_1 Int) (ticket3i.usr.p3_a_1 Int) (ticket3i.usr.t_a_1 Int) (ticket3i.usr.s_a_1 Int) (ticket3i.usr.a1_a_1 Int) (ticket3i.usr.a2_a_1 Int) (ticket3i.usr.a3_a_1 Int) (ticket3i.usr.erreur_ticket3i_a_1 Bool) (ticket3i.res.init_flag_a_1 Bool) (ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (let ((X1 (= ticket3i.usr.p1_a_0 2))) (let ((X2 (= ticket3i.usr.p1_a_0 0))) (and (= ticket3i.usr.a1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) ticket3i.usr.a1_a_0)) (let ((X3 (and (= ticket3i.usr.p1_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) (and (= ticket3i.usr.p1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 1 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e2_a_1 (ite X3 2 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e3_a_1 (ite X1 0 ticket3i.usr.p1_a_0) ticket3i.usr.p1_a_0)))) (let ((X4 (= ticket3i.usr.p3_a_0 2))) (let ((X5 (= ticket3i.usr.p2_a_0 2))) (and (= ticket3i.usr.s_a_1 (ite ticket3i.usr.e3_a_1 (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) ticket3i.usr.s_a_0)))) (let ((X6 (= ticket3i.usr.p3_a_0 0))) (let ((X7 (= ticket3i.usr.p2_a_0 0))) (and (= ticket3i.usr.t_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e4_a_1 (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e7_a_1 (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) ticket3i.usr.t_a_0)))) (= ticket3i.usr.a2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) ticket3i.usr.a2_a_0)) (let ((X8 (and (= ticket3i.usr.p2_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) (and (= ticket3i.usr.p2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 1 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e5_a_1 (ite X8 2 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 0 ticket3i.usr.p2_a_0) ticket3i.usr.p2_a_0)))) (= ticket3i.usr.a3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) ticket3i.usr.a3_a_0)) (let ((X9 (and (= ticket3i.usr.p3_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) (and (= ticket3i.usr.p3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 1 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e8_a_1 (ite X9 2 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 0 ticket3i.usr.p3_a_0) ticket3i.usr.p3_a_0)))) (= ticket3i.usr.erreur_ticket3i_a_1 (ite (or (or (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) (>= ticket3i.usr.p3_a_1 3)) true false)) (not ticket3i.res.init_flag_a_1))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_0 (and (and (and (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) (>= top.usr.init_a2_a_0 0)) (>= top.usr.init_a3_a_0 0)) (>= top.usr.init_t_a_0 0))) (let ((X1 top.res.abs_11_a_0)) (let ((X2 top.res.abs_8_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_1_a_0)) (let ((X5 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (and (and (and (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= (+ (+ X5 X4) X3) 9)))) (__node_init_ticket3i_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_init_excludes9_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.e9_a_1 Bool) (top.usr.init_a1_a_1 Int) (top.usr.init_a2_a_1 Int) (top.usr.init_a3_a_1 Int) (top.usr.init_t_a_1 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_1 (and (and (and (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) (>= top.usr.init_a2_a_1 0)) (>= top.usr.init_a3_a_1 0)) (>= top.usr.init_t_a_1 0))) (let ((X1 top.res.abs_11_a_1)) (let ((X2 top.res.abs_8_a_1)) (let ((X3 top.res.abs_2_a_1)) (let ((X4 top.res.abs_1_a_1)) (let ((X5 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (and (and (and (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= (+ (+ X5 X4) X3) 9)))) (__node_trans_ticket3i_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.usr.init_a1_a_1 top.usr.init_a2_a_1 top.usr.init_a3_a_1 top.usr.init_t_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_trans_excludes9_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_10 (and (and (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) (>= top.usr.init_a3 0)) (>= top.usr.init_t 0))) (let ((X1 top.res.abs_11)) (let ((X2 top.res.abs_8)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_1)) (let ((X5 top.res.abs_0)) (and (= top.usr.OK (=> X1 (and (and (and (and (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= (+ (+ X5 X4) X3) 9)))) (__node_init_ticket3i_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_init_excludes9_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.e9! Bool) (top.usr.init_a1! Int) (top.usr.init_a2! Int) (top.usr.init_a3! Int) (top.usr.init_t! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_10! (and (and (and (and top.res.abs_9! (>= top.usr.init_a1! 0)) (>= top.usr.init_a2! 0)) (>= top.usr.init_a3! 0)) (>= top.usr.init_t! 0))) (let ((X1 top.res.abs_11!)) (let ((X2 top.res.abs_8!)) (let ((X3 top.res.abs_2!)) (let ((X4 top.res.abs_1!)) (let ((X5 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (and (and (and (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= (+ (+ X5 X4) X3) 9)))) (__node_trans_ticket3i_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.usr.init_a1! top.usr.init_a2! top.usr.init_a3! top.usr.init_t! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_1! top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_trans_excludes9_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.res.abs_9! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ticket3i_all_e8_505_e7_2450.sl b/benchmarks/LIA/Lustre/ticket3i_all_e8_505_e7_2450.sl index d35d897..55f6959 100644 --- a/benchmarks/LIA/Lustre/ticket3i_all_e8_505_e7_2450.sl +++ b/benchmarks/LIA/Lustre/ticket3i_all_e8_505_e7_2450.sl @@ -1,1457 +1,43 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_excludes9_0 ( - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_0 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - excludes9.usr.X3_a_0) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - excludes9.usr.X4_a_0) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - excludes9.usr.X5_a_0) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - excludes9.usr.X6_a_0) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - excludes9.usr.X7_a_0) - (not excludes9.usr.X8_a_0)) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - excludes9.usr.X8_a_0) - (not excludes9.usr.X9_a_0))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) - (not excludes9.usr.X3_a_0)) - (not excludes9.usr.X4_a_0)) - (not excludes9.usr.X5_a_0)) - (not excludes9.usr.X6_a_0)) - (not excludes9.usr.X7_a_0)) - (not excludes9.usr.X8_a_0)) - excludes9.usr.X9_a_0))) - excludes9.res.init_flag_a_0) -) - -(define-fun - __node_trans_excludes9_0 ( - (excludes9.usr.X1_a_1 Bool) - (excludes9.usr.X2_a_1 Bool) - (excludes9.usr.X3_a_1 Bool) - (excludes9.usr.X4_a_1 Bool) - (excludes9.usr.X5_a_1 Bool) - (excludes9.usr.X6_a_1 Bool) - (excludes9.usr.X7_a_1 Bool) - (excludes9.usr.X8_a_1 Bool) - (excludes9.usr.X9_a_1 Bool) - (excludes9.usr.excludes_a_1 Bool) - (excludes9.res.init_flag_a_1 Bool) - (excludes9.usr.X1_a_0 Bool) - (excludes9.usr.X2_a_0 Bool) - (excludes9.usr.X3_a_0 Bool) - (excludes9.usr.X4_a_0 Bool) - (excludes9.usr.X5_a_0 Bool) - (excludes9.usr.X6_a_0 Bool) - (excludes9.usr.X7_a_0 Bool) - (excludes9.usr.X8_a_0 Bool) - (excludes9.usr.X9_a_0 Bool) - (excludes9.usr.excludes_a_0 Bool) - (excludes9.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - excludes9.usr.excludes_a_1 - (or - (or - (or - (or - (or - (or - (or - (or - (or - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1)) - (and - (and - (and - (and - (and - (and - (and - (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - excludes9.usr.X3_a_1) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - excludes9.usr.X4_a_1) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - excludes9.usr.X5_a_1) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - excludes9.usr.X6_a_1) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - excludes9.usr.X7_a_1) - (not excludes9.usr.X8_a_1)) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - excludes9.usr.X8_a_1) - (not excludes9.usr.X9_a_1))) - (and - (and - (and - (and - (and - (and - (and - (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) - (not excludes9.usr.X3_a_1)) - (not excludes9.usr.X4_a_1)) - (not excludes9.usr.X5_a_1)) - (not excludes9.usr.X6_a_1)) - (not excludes9.usr.X7_a_1)) - (not excludes9.usr.X8_a_1)) - excludes9.usr.X9_a_1))) - (not excludes9.res.init_flag_a_1)) -) - -(define-fun - __node_init_ticket3i_0 ( - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (and - (= ticket3i.usr.p1_a_0 0) - (let - ((X1 Bool (let ((X1 Int ticket3i.res.nondet_0)) (= X1 0)))) - (and - (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) - (let - ((X2 - Bool (let - ((X2 Int ticket3i.res.nondet_2) (X3 Int ticket3i.res.nondet_1)) - (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) - (and - (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) - (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) - (let - ((X3 Bool (let ((X3 Int ticket3i.res.nondet_4)) (= X3 0)))) - (and - (= ticket3i.usr.p2_a_0 0) - (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) - (let - ((X4 - Bool (let - ((X4 Int ticket3i.res.nondet_6) - (X5 Int ticket3i.res.nondet_5)) - (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) - (let - ((X5 Bool (let ((X5 Int ticket3i.res.nondet_7)) (= X5 2)))) - (let - ((X6 Bool (let ((X6 Int ticket3i.res.nondet_8)) (= X6 0)))) - (and - (= ticket3i.usr.p3_a_0 0) - (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) - (let - ((X7 - Bool (let - ((X7 Int ticket3i.res.nondet_10) - (X8 Int ticket3i.res.nondet_9)) - (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) - (let - ((X8 Bool (let ((X8 Int ticket3i.res.nondet_11)) (= X8 2)))) - (let - ((X9 Bool (let ((X9 Int ticket3i.res.nondet_3)) (= X9 2)))) - (and - (= - ticket3i.usr.erreur_ticket3i_a_0 - (ite - (or - (and (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) - (>= ticket3i.usr.p3_a_0 3)) - true - false)) - ticket3i.res.init_flag_a_0))))))))))))))) -) - -(define-fun - __node_trans_ticket3i_0 ( - (ticket3i.usr.e1_a_1 Bool) - (ticket3i.usr.e2_a_1 Bool) - (ticket3i.usr.e3_a_1 Bool) - (ticket3i.usr.e4_a_1 Bool) - (ticket3i.usr.e5_a_1 Bool) - (ticket3i.usr.e6_a_1 Bool) - (ticket3i.usr.e7_a_1 Bool) - (ticket3i.usr.e8_a_1 Bool) - (ticket3i.usr.e9_a_1 Bool) - (ticket3i.usr.init_a1_a_1 Int) - (ticket3i.usr.init_a2_a_1 Int) - (ticket3i.usr.init_a3_a_1 Int) - (ticket3i.usr.init_t_a_1 Int) - (ticket3i.res.nondet_11 Int) - (ticket3i.res.nondet_10 Int) - (ticket3i.res.nondet_9 Int) - (ticket3i.res.nondet_8 Int) - (ticket3i.res.nondet_7 Int) - (ticket3i.res.nondet_6 Int) - (ticket3i.res.nondet_5 Int) - (ticket3i.res.nondet_4 Int) - (ticket3i.res.nondet_3 Int) - (ticket3i.res.nondet_2 Int) - (ticket3i.res.nondet_1 Int) - (ticket3i.res.nondet_0 Int) - (ticket3i.usr.p1_a_1 Int) - (ticket3i.usr.p2_a_1 Int) - (ticket3i.usr.p3_a_1 Int) - (ticket3i.usr.t_a_1 Int) - (ticket3i.usr.s_a_1 Int) - (ticket3i.usr.a1_a_1 Int) - (ticket3i.usr.a2_a_1 Int) - (ticket3i.usr.a3_a_1 Int) - (ticket3i.usr.erreur_ticket3i_a_1 Bool) - (ticket3i.res.init_flag_a_1 Bool) - (ticket3i.usr.e1_a_0 Bool) - (ticket3i.usr.e2_a_0 Bool) - (ticket3i.usr.e3_a_0 Bool) - (ticket3i.usr.e4_a_0 Bool) - (ticket3i.usr.e5_a_0 Bool) - (ticket3i.usr.e6_a_0 Bool) - (ticket3i.usr.e7_a_0 Bool) - (ticket3i.usr.e8_a_0 Bool) - (ticket3i.usr.e9_a_0 Bool) - (ticket3i.usr.init_a1_a_0 Int) - (ticket3i.usr.init_a2_a_0 Int) - (ticket3i.usr.init_a3_a_0 Int) - (ticket3i.usr.init_t_a_0 Int) - (ticket3i.usr.p1_a_0 Int) - (ticket3i.usr.p2_a_0 Int) - (ticket3i.usr.p3_a_0 Int) - (ticket3i.usr.t_a_0 Int) - (ticket3i.usr.s_a_0 Int) - (ticket3i.usr.a1_a_0 Int) - (ticket3i.usr.a2_a_0 Int) - (ticket3i.usr.a3_a_0 Int) - (ticket3i.usr.erreur_ticket3i_a_0 Bool) - (ticket3i.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (= ticket3i.usr.p1_a_0 2))) - (let - ((X2 Bool (= ticket3i.usr.p1_a_0 0))) - (and - (= - ticket3i.usr.a1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) - ticket3i.usr.a1_a_0)) - (let - ((X3 - Bool (and - (= ticket3i.usr.p1_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) - (and - (= - ticket3i.usr.p1_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 1 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e2_a_1 - (ite X3 2 ticket3i.usr.p1_a_0) - (ite - ticket3i.usr.e3_a_1 - (ite X1 0 ticket3i.usr.p1_a_0) - ticket3i.usr.p1_a_0)))) - (let - ((X4 Bool (= ticket3i.usr.p3_a_0 2))) - (let - ((X5 Bool (= ticket3i.usr.p2_a_0 2))) - (and - (= - ticket3i.usr.s_a_1 - (ite - ticket3i.usr.e3_a_1 - (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) - ticket3i.usr.s_a_0)))) - (let - ((X6 Bool (= ticket3i.usr.p3_a_0 0))) - (let - ((X7 Bool (= ticket3i.usr.p2_a_0 0))) - (and - (= - ticket3i.usr.t_a_1 - (ite - ticket3i.usr.e1_a_1 - (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e4_a_1 - (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - (ite - ticket3i.usr.e7_a_1 - (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) - ticket3i.usr.t_a_0)))) - (= - ticket3i.usr.a2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) - ticket3i.usr.a2_a_0)) - (let - ((X8 - Bool (and - (= ticket3i.usr.p2_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) - (and - (= - ticket3i.usr.p2_a_1 - (ite - ticket3i.usr.e4_a_1 - (ite X7 1 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e5_a_1 - (ite X8 2 ticket3i.usr.p2_a_0) - (ite - ticket3i.usr.e6_a_1 - (ite X5 0 ticket3i.usr.p2_a_0) - ticket3i.usr.p2_a_0)))) - (= - ticket3i.usr.a3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) - ticket3i.usr.a3_a_0)) - (let - ((X9 - Bool (and - (= ticket3i.usr.p3_a_0 1) - (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) - (and - (= - ticket3i.usr.p3_a_1 - (ite - ticket3i.usr.e7_a_1 - (ite X6 1 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e8_a_1 - (ite X9 2 ticket3i.usr.p3_a_0) - (ite - ticket3i.usr.e9_a_1 - (ite X4 0 ticket3i.usr.p3_a_0) - ticket3i.usr.p3_a_0)))) - (= - ticket3i.usr.erreur_ticket3i_a_1 - (ite - (or - (and (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) - (>= ticket3i.usr.p3_a_1 3)) - true - false)) - (not ticket3i.res.init_flag_a_1)))))))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_0 - (and - (and - (and - (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) - (>= top.usr.init_a2_a_0 0)) - (>= top.usr.init_a3_a_0 0)) - (>= top.usr.init_t_a_0 0))) - (let - ((X1 Bool top.res.abs_11_a_0)) - (let - ((X2 Bool top.res.abs_8_a_0)) - (let - ((X3 Int top.res.abs_2_a_0)) - (let - ((X4 Int top.res.abs_1_a_0)) - (let - ((X5 Int top.res.abs_0_a_0)) - (and - (= - top.usr.OK_a_0 - (=> - X1 - (and - (and - (and - (and - (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) - (<= X4 3)) - (<= 0 X3)) - (<= X3 3)) - (<= (+ (+ X5 X4) X3) 9)))) - (__node_init_ticket3i_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_init_Sofar_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_init_excludes9_0 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.e1_a_1 Bool) - (top.usr.e2_a_1 Bool) - (top.usr.e3_a_1 Bool) - (top.usr.e4_a_1 Bool) - (top.usr.e5_a_1 Bool) - (top.usr.e6_a_1 Bool) - (top.usr.e7_a_1 Bool) - (top.usr.e8_a_1 Bool) - (top.usr.e9_a_1 Bool) - (top.usr.init_a1_a_1 Int) - (top.usr.init_a2_a_1 Int) - (top.usr.init_a3_a_1 Int) - (top.usr.init_t_a_1 Int) - (top.res.nondet_11 Int) - (top.res.nondet_10 Int) - (top.res.nondet_9 Int) - (top.res.nondet_8 Int) - (top.res.nondet_7 Int) - (top.res.nondet_6 Int) - (top.res.nondet_5 Int) - (top.res.nondet_4 Int) - (top.res.nondet_3 Int) - (top.res.nondet_2 Int) - (top.res.nondet_1 Int) - (top.res.nondet_0 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Int) - (top.res.abs_2_a_1 Int) - (top.res.abs_3_a_1 Int) - (top.res.abs_4_a_1 Int) - (top.res.abs_5_a_1 Int) - (top.res.abs_6_a_1 Int) - (top.res.abs_7_a_1 Int) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.e1_a_0 Bool) - (top.usr.e2_a_0 Bool) - (top.usr.e3_a_0 Bool) - (top.usr.e4_a_0 Bool) - (top.usr.e5_a_0 Bool) - (top.usr.e6_a_0 Bool) - (top.usr.e7_a_0 Bool) - (top.usr.e8_a_0 Bool) - (top.usr.e9_a_0 Bool) - (top.usr.init_a1_a_0 Int) - (top.usr.init_a2_a_0 Int) - (top.usr.init_a3_a_0 Int) - (top.usr.init_t_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Int) - (top.res.abs_2_a_0 Int) - (top.res.abs_3_a_0 Int) - (top.res.abs_4_a_0 Int) - (top.res.abs_5_a_0 Int) - (top.res.abs_6_a_0 Int) - (top.res.abs_7_a_0 Int) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_10_a_1 - (and - (and - (and - (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) - (>= top.usr.init_a2_a_1 0)) - (>= top.usr.init_a3_a_1 0)) - (>= top.usr.init_t_a_1 0))) - (let - ((X1 Bool top.res.abs_11_a_1)) - (let - ((X2 Bool top.res.abs_8_a_1)) - (let - ((X3 Int top.res.abs_2_a_1)) - (let - ((X4 Int top.res.abs_1_a_1)) - (let - ((X5 Int top.res.abs_0_a_1)) - (and - (= - top.usr.OK_a_1 - (=> - X1 - (and - (and - (and - (and - (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) - (<= X4 3)) - (<= 0 X3)) - (<= X3 3)) - (<= (+ (+ X5 X4) X3) 9)))) - (__node_trans_ticket3i_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.usr.init_a1_a_1 - top.usr.init_a2_a_1 - top.usr.init_a3_a_1 - top.usr.init_t_a_1 - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.abs_5_a_1 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.inst_2_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.usr.init_a1_a_0 - top.usr.init_a2_a_0 - top.usr.init_a3_a_0 - top.usr.init_t_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.abs_5_a_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.inst_2_a_0) - (__node_trans_Sofar_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.inst_1_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.inst_1_a_0) - (__node_trans_excludes9_0 - top.usr.e1_a_1 - top.usr.e2_a_1 - top.usr.e3_a_1 - top.usr.e4_a_1 - top.usr.e5_a_1 - top.usr.e6_a_1 - top.usr.e7_a_1 - top.usr.e8_a_1 - top.usr.e9_a_1 - top.res.abs_9_a_1 - top.res.inst_0_a_1 - top.usr.e1_a_0 - top.usr.e2_a_0 - top.usr.e3_a_0 - top.usr.e4_a_0 - top.usr.e5_a_0 - top.usr.e6_a_0 - top.usr.e7_a_0 - top.usr.e8_a_0 - top.usr.e9_a_0 - top.res.abs_9_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_11 () Int) -(declare-fun top.res.nondet_10 () Int) -(declare-fun top.res.nondet_9 () Int) -(declare-fun top.res.nondet_8 () Int) -(declare-fun top.res.nondet_7 () Int) -(declare-fun top.res.nondet_6 () Int) -(declare-fun top.res.nondet_5 () Int) -(declare-fun top.res.nondet_4 () Int) -(declare-fun top.res.nondet_3 () Int) -(declare-fun top.res.nondet_2 () Int) -(declare-fun top.res.nondet_1 () Int) -(declare-fun top.res.nondet_0 () Int) - -(declare-primed-var top.usr.e1 Bool) -(declare-primed-var top.usr.e2 Bool) -(declare-primed-var top.usr.e3 Bool) -(declare-primed-var top.usr.e4 Bool) -(declare-primed-var top.usr.e5 Bool) -(declare-primed-var top.usr.e6 Bool) -(declare-primed-var top.usr.e7 Bool) -(declare-primed-var top.usr.e8 Bool) -(declare-primed-var top.usr.e9 Bool) -(declare-primed-var top.usr.init_a1 Int) -(declare-primed-var top.usr.init_a2 Int) -(declare-primed-var top.usr.init_a3 Int) -(declare-primed-var top.usr.init_t Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Int) -(declare-primed-var top.res.abs_2 Int) -(declare-primed-var top.res.abs_3 Int) -(declare-primed-var top.res.abs_4 Int) -(declare-primed-var top.res.abs_5 Int) -(declare-primed-var top.res.abs_6 Int) -(declare-primed-var top.res.abs_7 Int) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.res.abs_10 - (and - (and - (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) - (>= top.usr.init_a3 0)) - (>= top.usr.init_t 0))) - (let - ((X1 Bool top.res.abs_11)) - (let - ((X2 Bool top.res.abs_8)) - (let - ((X3 Int top.res.abs_2)) - (let - ((X4 Int top.res.abs_1)) - (let - ((X5 Int top.res.abs_0)) - (and - (= - top.usr.OK - (=> - X1 - (and - (and - (and - (and - (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) - (<= X4 3)) - (<= 0 X3)) - (<= X3 3)) - (<= (+ (+ X5 X4) X3) 9)))) - (__node_init_ticket3i_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) - (__node_init_excludes9_0 - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.e1! Bool) - (top.usr.e2! Bool) - (top.usr.e3! Bool) - (top.usr.e4! Bool) - (top.usr.e5! Bool) - (top.usr.e6! Bool) - (top.usr.e7! Bool) - (top.usr.e8! Bool) - (top.usr.e9! Bool) - (top.usr.init_a1! Int) - (top.usr.init_a2! Int) - (top.usr.init_a3! Int) - (top.usr.init_t! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Int) - (top.res.abs_2! Int) - (top.res.abs_3! Int) - (top.res.abs_4! Int) - (top.res.abs_5! Int) - (top.res.abs_6! Int) - (top.res.abs_7! Int) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.res.abs_10! - (and - (and - (and - (and top.res.abs_9! (>= top.usr.init_a1! 0)) - (>= top.usr.init_a2! 0)) - (>= top.usr.init_a3! 0)) - (>= top.usr.init_t! 0))) - (let - ((X1 Bool top.res.abs_11!)) - (let - ((X2 Bool top.res.abs_8!)) - (let - ((X3 Int top.res.abs_2!)) - (let - ((X4 Int top.res.abs_1!)) - (let - ((X5 Int top.res.abs_0!)) - (and - (= - top.usr.OK! - (=> - X1 - (and - (and - (and - (and - (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) - (<= X4 3)) - (<= 0 X3)) - (<= X3 3)) - (<= (+ (+ X5 X4) X3) 9)))) - (__node_trans_ticket3i_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.usr.init_a1! - top.usr.init_a2! - top.usr.init_a3! - top.usr.init_t! - top.res.nondet_11 - top.res.nondet_10 - top.res.nondet_9 - top.res.nondet_8 - top.res.nondet_7 - top.res.nondet_6 - top.res.nondet_5 - top.res.nondet_4 - top.res.nondet_3 - top.res.nondet_2 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.abs_5! - top.res.abs_6! - top.res.abs_7! - top.res.abs_8! - top.res.inst_2! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.usr.init_a1 - top.usr.init_a2 - top.usr.init_a3 - top.usr.init_t - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.abs_5 - top.res.abs_6 - top.res.abs_7 - top.res.abs_8 - top.res.inst_2) - (__node_trans_Sofar_0 - top.res.abs_10! - top.res.abs_11! - top.res.inst_1! - top.res.abs_10 - top.res.abs_11 - top.res.inst_1) - (__node_trans_excludes9_0 - top.usr.e1! - top.usr.e2! - top.usr.e3! - top.usr.e4! - top.usr.e5! - top.usr.e6! - top.usr.e7! - top.usr.e8! - top.usr.e9! - top.res.abs_9! - top.res.inst_0! - top.usr.e1 - top.usr.e2 - top.usr.e3 - top.usr.e4 - top.usr.e5 - top.usr.e6 - top.usr.e7 - top.usr.e8 - top.usr.e9 - top.res.abs_9 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_11 top.res.nondet_11) - (= top.res.nondet_10 top.res.nondet_10) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.e1 Bool) - (top.usr.e2 Bool) - (top.usr.e3 Bool) - (top.usr.e4 Bool) - (top.usr.e5 Bool) - (top.usr.e6 Bool) - (top.usr.e7 Bool) - (top.usr.e8 Bool) - (top.usr.e9 Bool) - (top.usr.init_a1 Int) - (top.usr.init_a2 Int) - (top.usr.init_a3 Int) - (top.usr.init_t Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Int) - (top.res.abs_2 Int) - (top.res.abs_3 Int) - (top.res.abs_4 Int) - (top.res.abs_5 Int) - (top.res.abs_6 Int) - (top.res.abs_7 Int) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (or Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_excludes9_0 ((excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_0 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_0 (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) excludes9.usr.X2_a_0) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) excludes9.usr.X3_a_0) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) excludes9.usr.X4_a_0) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) excludes9.usr.X5_a_0) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) excludes9.usr.X6_a_0) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) excludes9.usr.X7_a_0) (not excludes9.usr.X8_a_0)) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) excludes9.usr.X8_a_0) (not excludes9.usr.X9_a_0))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_0) (not excludes9.usr.X2_a_0)) (not excludes9.usr.X3_a_0)) (not excludes9.usr.X4_a_0)) (not excludes9.usr.X5_a_0)) (not excludes9.usr.X6_a_0)) (not excludes9.usr.X7_a_0)) (not excludes9.usr.X8_a_0)) excludes9.usr.X9_a_0))) excludes9.res.init_flag_a_0)) +(define-fun __node_trans_excludes9_0 ((excludes9.usr.X1_a_1 Bool) (excludes9.usr.X2_a_1 Bool) (excludes9.usr.X3_a_1 Bool) (excludes9.usr.X4_a_1 Bool) (excludes9.usr.X5_a_1 Bool) (excludes9.usr.X6_a_1 Bool) (excludes9.usr.X7_a_1 Bool) (excludes9.usr.X8_a_1 Bool) (excludes9.usr.X9_a_1 Bool) (excludes9.usr.excludes_a_1 Bool) (excludes9.res.init_flag_a_1 Bool) (excludes9.usr.X1_a_0 Bool) (excludes9.usr.X2_a_0 Bool) (excludes9.usr.X3_a_0 Bool) (excludes9.usr.X4_a_0 Bool) (excludes9.usr.X5_a_0 Bool) (excludes9.usr.X6_a_0 Bool) (excludes9.usr.X7_a_0 Bool) (excludes9.usr.X8_a_0 Bool) (excludes9.usr.X9_a_0 Bool) (excludes9.usr.excludes_a_0 Bool) (excludes9.res.init_flag_a_0 Bool)) Bool + (and (= excludes9.usr.excludes_a_1 (or (or (or (or (or (or (or (or (or (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1)) (and (and (and (and (and (and (and (and excludes9.usr.X1_a_1 (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) excludes9.usr.X2_a_1) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) excludes9.usr.X3_a_1) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) excludes9.usr.X4_a_1) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) excludes9.usr.X5_a_1) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) excludes9.usr.X6_a_1) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) excludes9.usr.X7_a_1) (not excludes9.usr.X8_a_1)) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) excludes9.usr.X8_a_1) (not excludes9.usr.X9_a_1))) (and (and (and (and (and (and (and (and (not excludes9.usr.X1_a_1) (not excludes9.usr.X2_a_1)) (not excludes9.usr.X3_a_1)) (not excludes9.usr.X4_a_1)) (not excludes9.usr.X5_a_1)) (not excludes9.usr.X6_a_1)) (not excludes9.usr.X7_a_1)) (not excludes9.usr.X8_a_1)) excludes9.usr.X9_a_1))) (not excludes9.res.init_flag_a_1))) +(define-fun __node_init_ticket3i_0 ((ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (and (= ticket3i.usr.p1_a_0 0) (let ((X1 (let ((X1 ticket3i.res.nondet_0)) (= X1 0)))) (and (= ticket3i.usr.a1_a_0 ticket3i.usr.init_a1_a_0) (let ((X2 (let ((X2 ticket3i.res.nondet_2) (X3 ticket3i.res.nondet_1)) (and (= X3 1) (>= X2 ticket3i.usr.a1_a_0))))) (and (= ticket3i.usr.t_a_0 ticket3i.usr.init_t_a_0) (= ticket3i.usr.s_a_0 ticket3i.usr.t_a_0) (let ((X3 (let ((X3 ticket3i.res.nondet_4)) (= X3 0)))) (and (= ticket3i.usr.p2_a_0 0) (= ticket3i.usr.a2_a_0 ticket3i.usr.init_a2_a_0) (let ((X4 (let ((X4 ticket3i.res.nondet_6) (X5 ticket3i.res.nondet_5)) (and (= X5 1) (>= X4 ticket3i.usr.a2_a_0))))) (let ((X5 (let ((X5 ticket3i.res.nondet_7)) (= X5 2)))) (let ((X6 (let ((X6 ticket3i.res.nondet_8)) (= X6 0)))) (and (= ticket3i.usr.p3_a_0 0) (= ticket3i.usr.a3_a_0 ticket3i.usr.init_a3_a_0) (let ((X7 (let ((X7 ticket3i.res.nondet_10) (X8 ticket3i.res.nondet_9)) (and (= X8 1) (>= X7 ticket3i.usr.a3_a_0))))) (let ((X8 (let ((X8 ticket3i.res.nondet_11)) (= X8 2)))) (let ((X9 (let ((X9 ticket3i.res.nondet_3)) (= X9 2)))) (and (= ticket3i.usr.erreur_ticket3i_a_0 (ite (or (and (>= ticket3i.usr.p1_a_0 3) (>= ticket3i.usr.p2_a_0 3)) (>= ticket3i.usr.p3_a_0 3)) true false)) ticket3i.res.init_flag_a_0)))))))))))))))) +(define-fun __node_trans_ticket3i_0 ((ticket3i.usr.e1_a_1 Bool) (ticket3i.usr.e2_a_1 Bool) (ticket3i.usr.e3_a_1 Bool) (ticket3i.usr.e4_a_1 Bool) (ticket3i.usr.e5_a_1 Bool) (ticket3i.usr.e6_a_1 Bool) (ticket3i.usr.e7_a_1 Bool) (ticket3i.usr.e8_a_1 Bool) (ticket3i.usr.e9_a_1 Bool) (ticket3i.usr.init_a1_a_1 Int) (ticket3i.usr.init_a2_a_1 Int) (ticket3i.usr.init_a3_a_1 Int) (ticket3i.usr.init_t_a_1 Int) (ticket3i.res.nondet_11 Int) (ticket3i.res.nondet_10 Int) (ticket3i.res.nondet_9 Int) (ticket3i.res.nondet_8 Int) (ticket3i.res.nondet_7 Int) (ticket3i.res.nondet_6 Int) (ticket3i.res.nondet_5 Int) (ticket3i.res.nondet_4 Int) (ticket3i.res.nondet_3 Int) (ticket3i.res.nondet_2 Int) (ticket3i.res.nondet_1 Int) (ticket3i.res.nondet_0 Int) (ticket3i.usr.p1_a_1 Int) (ticket3i.usr.p2_a_1 Int) (ticket3i.usr.p3_a_1 Int) (ticket3i.usr.t_a_1 Int) (ticket3i.usr.s_a_1 Int) (ticket3i.usr.a1_a_1 Int) (ticket3i.usr.a2_a_1 Int) (ticket3i.usr.a3_a_1 Int) (ticket3i.usr.erreur_ticket3i_a_1 Bool) (ticket3i.res.init_flag_a_1 Bool) (ticket3i.usr.e1_a_0 Bool) (ticket3i.usr.e2_a_0 Bool) (ticket3i.usr.e3_a_0 Bool) (ticket3i.usr.e4_a_0 Bool) (ticket3i.usr.e5_a_0 Bool) (ticket3i.usr.e6_a_0 Bool) (ticket3i.usr.e7_a_0 Bool) (ticket3i.usr.e8_a_0 Bool) (ticket3i.usr.e9_a_0 Bool) (ticket3i.usr.init_a1_a_0 Int) (ticket3i.usr.init_a2_a_0 Int) (ticket3i.usr.init_a3_a_0 Int) (ticket3i.usr.init_t_a_0 Int) (ticket3i.usr.p1_a_0 Int) (ticket3i.usr.p2_a_0 Int) (ticket3i.usr.p3_a_0 Int) (ticket3i.usr.t_a_0 Int) (ticket3i.usr.s_a_0 Int) (ticket3i.usr.a1_a_0 Int) (ticket3i.usr.a2_a_0 Int) (ticket3i.usr.a3_a_0 Int) (ticket3i.usr.erreur_ticket3i_a_0 Bool) (ticket3i.res.init_flag_a_0 Bool)) Bool + (let ((X1 (= ticket3i.usr.p1_a_0 2))) (let ((X2 (= ticket3i.usr.p1_a_0 0))) (and (= ticket3i.usr.a1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 ticket3i.usr.t_a_0 ticket3i.usr.a1_a_0) ticket3i.usr.a1_a_0)) (let ((X3 (and (= ticket3i.usr.p1_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a1_a_1)))) (and (= ticket3i.usr.p1_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 1 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e2_a_1 (ite X3 2 ticket3i.usr.p1_a_0) (ite ticket3i.usr.e3_a_1 (ite X1 0 ticket3i.usr.p1_a_0) ticket3i.usr.p1_a_0)))) (let ((X4 (= ticket3i.usr.p3_a_0 2))) (let ((X5 (= ticket3i.usr.p2_a_0 2))) (and (= ticket3i.usr.s_a_1 (ite ticket3i.usr.e3_a_1 (ite X1 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 (+ ticket3i.usr.s_a_0 1) ticket3i.usr.s_a_0) ticket3i.usr.s_a_0)))) (let ((X6 (= ticket3i.usr.p3_a_0 0))) (let ((X7 (= ticket3i.usr.p2_a_0 0))) (and (= ticket3i.usr.t_a_1 (ite ticket3i.usr.e1_a_1 (ite X2 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e4_a_1 (ite X7 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) (ite ticket3i.usr.e7_a_1 (ite X6 (+ ticket3i.usr.t_a_0 1) ticket3i.usr.t_a_0) ticket3i.usr.t_a_0)))) (= ticket3i.usr.a2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 ticket3i.usr.t_a_0 ticket3i.usr.a2_a_0) ticket3i.usr.a2_a_0)) (let ((X8 (and (= ticket3i.usr.p2_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a2_a_1)))) (and (= ticket3i.usr.p2_a_1 (ite ticket3i.usr.e4_a_1 (ite X7 1 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e5_a_1 (ite X8 2 ticket3i.usr.p2_a_0) (ite ticket3i.usr.e6_a_1 (ite X5 0 ticket3i.usr.p2_a_0) ticket3i.usr.p2_a_0)))) (= ticket3i.usr.a3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 ticket3i.usr.t_a_0 ticket3i.usr.a3_a_0) ticket3i.usr.a3_a_0)) (let ((X9 (and (= ticket3i.usr.p3_a_0 1) (>= ticket3i.usr.s_a_0 ticket3i.usr.a3_a_1)))) (and (= ticket3i.usr.p3_a_1 (ite ticket3i.usr.e7_a_1 (ite X6 1 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e8_a_1 (ite X9 2 ticket3i.usr.p3_a_0) (ite ticket3i.usr.e9_a_1 (ite X4 0 ticket3i.usr.p3_a_0) ticket3i.usr.p3_a_0)))) (= ticket3i.usr.erreur_ticket3i_a_1 (ite (or (and (>= ticket3i.usr.p1_a_1 3) (>= ticket3i.usr.p2_a_1 3)) (>= ticket3i.usr.p3_a_1 3)) true false)) (not ticket3i.res.init_flag_a_1))))))))))))))))) +(define-fun __node_init_top_0 ((top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_0 (and (and (and (and top.res.abs_9_a_0 (>= top.usr.init_a1_a_0 0)) (>= top.usr.init_a2_a_0 0)) (>= top.usr.init_a3_a_0 0)) (>= top.usr.init_t_a_0 0))) (let ((X1 top.res.abs_11_a_0)) (let ((X2 top.res.abs_8_a_0)) (let ((X3 top.res.abs_2_a_0)) (let ((X4 top.res.abs_1_a_0)) (let ((X5 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (and (and (and (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= (+ (+ X5 X4) X3) 9)))) (__node_init_ticket3i_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_init_Sofar_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_init_excludes9_0 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.e1_a_1 Bool) (top.usr.e2_a_1 Bool) (top.usr.e3_a_1 Bool) (top.usr.e4_a_1 Bool) (top.usr.e5_a_1 Bool) (top.usr.e6_a_1 Bool) (top.usr.e7_a_1 Bool) (top.usr.e8_a_1 Bool) (top.usr.e9_a_1 Bool) (top.usr.init_a1_a_1 Int) (top.usr.init_a2_a_1 Int) (top.usr.init_a3_a_1 Int) (top.usr.init_t_a_1 Int) (top.res.nondet_11 Int) (top.res.nondet_10 Int) (top.res.nondet_9 Int) (top.res.nondet_8 Int) (top.res.nondet_7 Int) (top.res.nondet_6 Int) (top.res.nondet_5 Int) (top.res.nondet_4 Int) (top.res.nondet_3 Int) (top.res.nondet_2 Int) (top.res.nondet_1 Int) (top.res.nondet_0 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Int) (top.res.abs_2_a_1 Int) (top.res.abs_3_a_1 Int) (top.res.abs_4_a_1 Int) (top.res.abs_5_a_1 Int) (top.res.abs_6_a_1 Int) (top.res.abs_7_a_1 Int) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.e1_a_0 Bool) (top.usr.e2_a_0 Bool) (top.usr.e3_a_0 Bool) (top.usr.e4_a_0 Bool) (top.usr.e5_a_0 Bool) (top.usr.e6_a_0 Bool) (top.usr.e7_a_0 Bool) (top.usr.e8_a_0 Bool) (top.usr.e9_a_0 Bool) (top.usr.init_a1_a_0 Int) (top.usr.init_a2_a_0 Int) (top.usr.init_a3_a_0 Int) (top.usr.init_t_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Int) (top.res.abs_2_a_0 Int) (top.res.abs_3_a_0 Int) (top.res.abs_4_a_0 Int) (top.res.abs_5_a_0 Int) (top.res.abs_6_a_0 Int) (top.res.abs_7_a_0 Int) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_10_a_1 (and (and (and (and top.res.abs_9_a_1 (>= top.usr.init_a1_a_1 0)) (>= top.usr.init_a2_a_1 0)) (>= top.usr.init_a3_a_1 0)) (>= top.usr.init_t_a_1 0))) (let ((X1 top.res.abs_11_a_1)) (let ((X2 top.res.abs_8_a_1)) (let ((X3 top.res.abs_2_a_1)) (let ((X4 top.res.abs_1_a_1)) (let ((X5 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (and (and (and (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= (+ (+ X5 X4) X3) 9)))) (__node_trans_ticket3i_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.usr.init_a1_a_1 top.usr.init_a2_a_1 top.usr.init_a3_a_1 top.usr.init_t_a_1 top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.abs_5_a_1 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.inst_2_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.usr.init_a1_a_0 top.usr.init_a2_a_0 top.usr.init_a3_a_0 top.usr.init_t_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.abs_5_a_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.inst_2_a_0) (__node_trans_Sofar_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.inst_1_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.inst_1_a_0) (__node_trans_excludes9_0 top.usr.e1_a_1 top.usr.e2_a_1 top.usr.e3_a_1 top.usr.e4_a_1 top.usr.e5_a_1 top.usr.e6_a_1 top.usr.e7_a_1 top.usr.e8_a_1 top.usr.e9_a_1 top.res.abs_9_a_1 top.res.inst_0_a_1 top.usr.e1_a_0 top.usr.e2_a_0 top.usr.e3_a_0 top.usr.e4_a_0 top.usr.e5_a_0 top.usr.e6_a_0 top.usr.e7_a_0 top.usr.e8_a_0 top.usr.e9_a_0 top.res.abs_9_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_11 Int) +(declare-var top.res.nondet_10 Int) +(declare-var top.res.nondet_9 Int) +(declare-var top.res.nondet_8 Int) +(declare-var top.res.nondet_7 Int) +(declare-var top.res.nondet_6 Int) +(declare-var top.res.nondet_5 Int) +(declare-var top.res.nondet_4 Int) +(declare-var top.res.nondet_3 Int) +(declare-var top.res.nondet_2 Int) +(declare-var top.res.nondet_1 Int) +(declare-var top.res.nondet_0 Int) +(define-fun init ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_10 (and (and (and (and top.res.abs_9 (>= top.usr.init_a1 0)) (>= top.usr.init_a2 0)) (>= top.usr.init_a3 0)) (>= top.usr.init_t 0))) (let ((X1 top.res.abs_11)) (let ((X2 top.res.abs_8)) (let ((X3 top.res.abs_2)) (let ((X4 top.res.abs_1)) (let ((X5 top.res.abs_0)) (and (= top.usr.OK (=> X1 (and (and (and (and (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= (+ (+ X5 X4) X3) 9)))) (__node_init_ticket3i_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_init_Sofar_0 top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_init_excludes9_0 top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.e1! Bool) (top.usr.e2! Bool) (top.usr.e3! Bool) (top.usr.e4! Bool) (top.usr.e5! Bool) (top.usr.e6! Bool) (top.usr.e7! Bool) (top.usr.e8! Bool) (top.usr.e9! Bool) (top.usr.init_a1! Int) (top.usr.init_a2! Int) (top.usr.init_a3! Int) (top.usr.init_t! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Int) (top.res.abs_2! Int) (top.res.abs_3! Int) (top.res.abs_4! Int) (top.res.abs_5! Int) (top.res.abs_6! Int) (top.res.abs_7! Int) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.res.abs_10! (and (and (and (and top.res.abs_9! (>= top.usr.init_a1! 0)) (>= top.usr.init_a2! 0)) (>= top.usr.init_a3! 0)) (>= top.usr.init_t! 0))) (let ((X1 top.res.abs_11!)) (let ((X2 top.res.abs_8!)) (let ((X3 top.res.abs_2!)) (let ((X4 top.res.abs_1!)) (let ((X5 top.res.abs_0!)) (and (= top.usr.OK! (=> X1 (and (and (and (and (and (and (and (not X2) (<= 0 X5)) (<= X5 3)) (<= 0 X4)) (<= X4 3)) (<= 0 X3)) (<= X3 3)) (<= (+ (+ X5 X4) X3) 9)))) (__node_trans_ticket3i_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.usr.init_a1! top.usr.init_a2! top.usr.init_a3! top.usr.init_t! top.res.nondet_11 top.res.nondet_10 top.res.nondet_9 top.res.nondet_8 top.res.nondet_7 top.res.nondet_6 top.res.nondet_5 top.res.nondet_4 top.res.nondet_3 top.res.nondet_2 top.res.nondet_1 top.res.nondet_0 top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.abs_5! top.res.abs_6! top.res.abs_7! top.res.abs_8! top.res.inst_2! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.usr.init_a1 top.usr.init_a2 top.usr.init_a3 top.usr.init_t top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.abs_5 top.res.abs_6 top.res.abs_7 top.res.abs_8 top.res.inst_2) (__node_trans_Sofar_0 top.res.abs_10! top.res.abs_11! top.res.inst_1! top.res.abs_10 top.res.abs_11 top.res.inst_1) (__node_trans_excludes9_0 top.usr.e1! top.usr.e2! top.usr.e3! top.usr.e4! top.usr.e5! top.usr.e6! top.usr.e7! top.usr.e8! top.usr.e9! top.res.abs_9! top.res.inst_0! top.usr.e1 top.usr.e2 top.usr.e3 top.usr.e4 top.usr.e5 top.usr.e6 top.usr.e7 top.usr.e8 top.usr.e9 top.res.abs_9 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_11 top.res.nondet_11) (= top.res.nondet_10 top.res.nondet_10) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.e1 Bool) (top.usr.e2 Bool) (top.usr.e3 Bool) (top.usr.e4 Bool) (top.usr.e5 Bool) (top.usr.e6 Bool) (top.usr.e7 Bool) (top.usr.e8 Bool) (top.usr.e9 Bool) (top.usr.init_a1 Int) (top.usr.init_a2 Int) (top.usr.init_a3 Int) (top.usr.init_t Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Int) (top.res.abs_2 Int) (top.res.abs_3 Int) (top.res.abs_4 Int) (top.res.abs_5 Int) (top.res.abs_6 Int) (top.res.abs_7 Int) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/traffic.sl b/benchmarks/LIA/Lustre/traffic.sl index a22e8a5..71975b3 100644 --- a/benchmarks/LIA/Lustre/traffic.sl +++ b/benchmarks/LIA/Lustre/traffic.sl @@ -1,256 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Y_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Y_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Y_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Y_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Y_a_1 (and Sofar.usr.Y_a_0 Sofar.usr.X_a_1)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_Store_0 ( - (Store.usr.Delta_a_0 Int) - (Store.usr.Total_a_0 Int) - (Store.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int 0)) - (and - (= - Store.usr.Total_a_0 - (ite - (and (< Store.usr.Delta_a_0 0) (> X1 0)) - (+ X1 Store.usr.Delta_a_0) - (ite - (and (> Store.usr.Delta_a_0 0) (< X1 10)) - (+ X1 Store.usr.Delta_a_0) - X1))) - Store.res.init_flag_a_0)) -) - -(define-fun - __node_trans_Store_0 ( - (Store.usr.Delta_a_1 Int) - (Store.usr.Total_a_1 Int) - (Store.res.init_flag_a_1 Bool) - (Store.usr.Delta_a_0 Int) - (Store.usr.Total_a_0 Int) - (Store.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Int Store.usr.Total_a_0)) - (and - (= - Store.usr.Total_a_1 - (ite - (and (< Store.usr.Delta_a_1 0) (> X1 0)) - (+ X1 Store.usr.Delta_a_1) - (ite - (and (> Store.usr.Delta_a_1 0) (< X1 10)) - (+ X1 Store.usr.Delta_a_1) - X1))) - (not Store.res.init_flag_a_1))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.Delta_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_1_a_0 - (and (<= (- 1) top.usr.Delta_a_0) (<= top.usr.Delta_a_0 1))) - (let - ((X1 Int top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (=> top.res.abs_2_a_0 (and (<= 0 X1) (<= X1 20)))) - (__node_init_Store_0 top.usr.Delta_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) - (__node_init_Sofar_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.Delta_a_1 Int) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Int) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.Delta_a_0 Int) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Int) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.res.abs_1_a_1 - (and (<= (- 1) top.usr.Delta_a_1) (<= top.usr.Delta_a_1 1))) - (let - ((X1 Int top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (=> top.res.abs_2_a_1 (and (<= 0 X1) (<= X1 20)))) - (__node_trans_Store_0 - top.usr.Delta_a_1 - top.res.abs_0_a_1 - top.res.inst_1_a_1 - top.usr.Delta_a_0 - top.res.abs_0_a_0 - top.res.inst_1_a_0) - (__node_trans_Sofar_0 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.inst_0_a_1 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.Delta Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.Delta Int) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Int) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.Delta Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.res.abs_1 (and (<= (- 1) top.usr.Delta) (<= top.usr.Delta 1))) - (let - ((X1 Int top.res.abs_0)) - (and - (= top.usr.OK (=> top.res.abs_2 (and (<= 0 X1) (<= X1 20)))) - (__node_init_Store_0 top.usr.Delta top.res.abs_0 top.res.inst_1) - (__node_init_Sofar_0 top.res.abs_1 top.res.abs_2 top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.Delta Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.Delta! Int) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Int) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.res.abs_1! (and (<= (- 1) top.usr.Delta!) (<= top.usr.Delta! 1))) - (let - ((X1 Int top.res.abs_0!)) - (and - (= top.usr.OK! (=> top.res.abs_2! (and (<= 0 X1) (<= X1 20)))) - (__node_trans_Store_0 - top.usr.Delta! - top.res.abs_0! - top.res.inst_1! - top.usr.Delta - top.res.abs_0 - top.res.inst_1) - (__node_trans_Sofar_0 - top.res.abs_1! - top.res.abs_2! - top.res.inst_0! - top.res.abs_1 - top.res.abs_2 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.Delta Int) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Int) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Y_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Y_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Y_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Y_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Y_a_1 (and Sofar.usr.Y_a_0 Sofar.usr.X_a_1)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_Store_0 ((Store.usr.Delta_a_0 Int) (Store.usr.Total_a_0 Int) (Store.res.init_flag_a_0 Bool)) Bool + (let ((X1 0)) (and (= Store.usr.Total_a_0 (ite (and (< Store.usr.Delta_a_0 0) (> X1 0)) (+ X1 Store.usr.Delta_a_0) (ite (and (> Store.usr.Delta_a_0 0) (< X1 10)) (+ X1 Store.usr.Delta_a_0) X1))) Store.res.init_flag_a_0))) +(define-fun __node_trans_Store_0 ((Store.usr.Delta_a_1 Int) (Store.usr.Total_a_1 Int) (Store.res.init_flag_a_1 Bool) (Store.usr.Delta_a_0 Int) (Store.usr.Total_a_0 Int) (Store.res.init_flag_a_0 Bool)) Bool + (let ((X1 Store.usr.Total_a_0)) (and (= Store.usr.Total_a_1 (ite (and (< Store.usr.Delta_a_1 0) (> X1 0)) (+ X1 Store.usr.Delta_a_1) (ite (and (> Store.usr.Delta_a_1 0) (< X1 10)) (+ X1 Store.usr.Delta_a_1) X1))) (not Store.res.init_flag_a_1)))) +(define-fun __node_init_top_0 ((top.usr.Delta_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_1_a_0 (and (<= (- 1) top.usr.Delta_a_0) (<= top.usr.Delta_a_0 1))) (let ((X1 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (=> top.res.abs_2_a_0 (and (<= 0 X1) (<= X1 20)))) (__node_init_Store_0 top.usr.Delta_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) (__node_init_Sofar_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.Delta_a_1 Int) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Int) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.Delta_a_0 Int) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Int) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.res.abs_1_a_1 (and (<= (- 1) top.usr.Delta_a_1) (<= top.usr.Delta_a_1 1))) (let ((X1 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (=> top.res.abs_2_a_1 (and (<= 0 X1) (<= X1 20)))) (__node_trans_Store_0 top.usr.Delta_a_1 top.res.abs_0_a_1 top.res.inst_1_a_1 top.usr.Delta_a_0 top.res.abs_0_a_0 top.res.inst_1_a_0) (__node_trans_Sofar_0 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.inst_0_a_1 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.Delta Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.Delta Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.res.abs_1 (and (<= (- 1) top.usr.Delta) (<= top.usr.Delta 1))) (let ((X1 top.res.abs_0)) (and (= top.usr.OK (=> top.res.abs_2 (and (<= 0 X1) (<= X1 20)))) (__node_init_Store_0 top.usr.Delta top.res.abs_0 top.res.inst_1) (__node_init_Sofar_0 top.res.abs_1 top.res.abs_2 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.Delta Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.Delta! Int) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Int) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.res.abs_1! (and (<= (- 1) top.usr.Delta!) (<= top.usr.Delta! 1))) (let ((X1 top.res.abs_0!)) (and (= top.usr.OK! (=> top.res.abs_2! (and (<= 0 X1) (<= X1 20)))) (__node_trans_Store_0 top.usr.Delta! top.res.abs_0! top.res.inst_1! top.usr.Delta top.res.abs_0 top.res.inst_1) (__node_trans_Sofar_0 top.res.abs_1! top.res.abs_2! top.res.inst_0! top.res.abs_1 top.res.abs_2 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.Delta Int) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Int) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/tramway.sl b/benchmarks/LIA/Lustre/tramway.sl index 7b9752a..03ba191 100644 --- a/benchmarks/LIA/Lustre/tramway.sl +++ b/benchmarks/LIA/Lustre/tramway.sl @@ -1,1547 +1,47 @@ (set-logic LIA) -(define-fun - __node_init_switch_0 ( - (switch.usr.init_a_0 Bool) - (switch.usr.on_a_0 Bool) - (switch.usr.off_a_0 Bool) - (switch.usr.value_a_0 Bool) - (switch.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - switch.usr.value_a_0 - (ite switch.usr.on_a_0 true (ite switch.usr.off_a_0 false switch.usr.init_a_0))) - switch.res.init_flag_a_0) -) - -(define-fun - __node_trans_switch_0 ( - (switch.usr.init_a_1 Bool) - (switch.usr.on_a_1 Bool) - (switch.usr.off_a_1 Bool) - (switch.usr.value_a_1 Bool) - (switch.res.init_flag_a_1 Bool) - (switch.usr.init_a_0 Bool) - (switch.usr.on_a_0 Bool) - (switch.usr.off_a_0 Bool) - (switch.usr.value_a_0 Bool) - (switch.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - switch.usr.value_a_1 - (ite - switch.usr.on_a_1 - true - (ite switch.usr.off_a_1 false switch.usr.value_a_0))) - (not switch.res.init_flag_a_1)) -) - -(define-fun - __node_init_controller_0 ( - (controller.usr.request_door_a_0 Bool) - (controller.usr.warning_start_a_0 Bool) - (controller.usr.in_station_a_0 Bool) - (controller.usr.door_is_open_a_0 Bool) - (controller.usr.open_door_a_0 Bool) - (controller.usr.close_door_a_0 Bool) - (controller.usr.door_ok_a_0 Bool) - (controller.res.init_flag_a_0 Bool) - (controller.res.abs_0_a_0 Bool) - (controller.res.abs_1_a_0 Bool) - (controller.res.abs_2_a_0 Bool) - (controller.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - controller.res.abs_1_a_0 - (and controller.usr.request_door_a_0 (not controller.usr.warning_start_a_0))) - (= controller.res.abs_0_a_0 false) - (let - ((X1 Bool controller.res.abs_2_a_0)) - (and - (= controller.usr.open_door_a_0 (and X1 controller.usr.in_station_a_0)) - (= - controller.usr.close_door_a_0 - (and controller.usr.warning_start_a_0 controller.usr.door_is_open_a_0)) - (= - controller.usr.door_ok_a_0 - (and - (not controller.usr.door_is_open_a_0) - controller.usr.warning_start_a_0)) - (__node_init_switch_0 - controller.res.abs_0_a_0 - controller.res.abs_1_a_0 - controller.usr.door_is_open_a_0 - controller.res.abs_2_a_0 - controller.res.inst_0_a_0) - controller.res.init_flag_a_0))) -) - -(define-fun - __node_trans_controller_0 ( - (controller.usr.request_door_a_1 Bool) - (controller.usr.warning_start_a_1 Bool) - (controller.usr.in_station_a_1 Bool) - (controller.usr.door_is_open_a_1 Bool) - (controller.usr.open_door_a_1 Bool) - (controller.usr.close_door_a_1 Bool) - (controller.usr.door_ok_a_1 Bool) - (controller.res.init_flag_a_1 Bool) - (controller.res.abs_0_a_1 Bool) - (controller.res.abs_1_a_1 Bool) - (controller.res.abs_2_a_1 Bool) - (controller.res.inst_0_a_1 Bool) - (controller.usr.request_door_a_0 Bool) - (controller.usr.warning_start_a_0 Bool) - (controller.usr.in_station_a_0 Bool) - (controller.usr.door_is_open_a_0 Bool) - (controller.usr.open_door_a_0 Bool) - (controller.usr.close_door_a_0 Bool) - (controller.usr.door_ok_a_0 Bool) - (controller.res.init_flag_a_0 Bool) - (controller.res.abs_0_a_0 Bool) - (controller.res.abs_1_a_0 Bool) - (controller.res.abs_2_a_0 Bool) - (controller.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - controller.res.abs_1_a_1 - (and controller.usr.request_door_a_1 (not controller.usr.warning_start_a_1))) - (let - ((X1 Bool controller.res.abs_2_a_1)) - (and - (= controller.usr.open_door_a_1 (and X1 controller.usr.in_station_a_1)) - (= controller.res.abs_0_a_1 false) - (= - controller.usr.close_door_a_1 - (and controller.usr.warning_start_a_1 controller.usr.door_is_open_a_1)) - (= - controller.usr.door_ok_a_1 - (and - (not controller.usr.door_is_open_a_1) - controller.usr.warning_start_a_1)) - (__node_trans_switch_0 - controller.res.abs_0_a_1 - controller.res.abs_1_a_1 - controller.usr.door_is_open_a_1 - controller.res.abs_2_a_1 - controller.res.inst_0_a_1 - controller.res.abs_0_a_0 - controller.res.abs_1_a_0 - controller.usr.door_is_open_a_0 - controller.res.abs_2_a_0 - controller.res.inst_0_a_0) - (not controller.res.init_flag_a_1)))) -) - -(define-fun - __node_init_edge_0 ( - (edge.usr.X_a_0 Bool) - (edge.usr.edge_a_0 Bool) - (edge.res.init_flag_a_0 Bool) - ) Bool - - (and (= edge.usr.edge_a_0 false) edge.res.init_flag_a_0) -) - -(define-fun - __node_trans_edge_0 ( - (edge.usr.X_a_1 Bool) - (edge.usr.edge_a_1 Bool) - (edge.res.init_flag_a_1 Bool) - (edge.usr.X_a_0 Bool) - (edge.usr.edge_a_0 Bool) - (edge.res.init_flag_a_0 Bool) - ) Bool - - (and - (= edge.usr.edge_a_1 (and edge.usr.X_a_1 (not edge.usr.X_a_0))) - (not edge.res.init_flag_a_1)) -) - -(define-fun - __node_init_jafter_0 ( - (jafter.usr.X_a_0 Bool) - (jafter.usr.after_a_0 Bool) - (jafter.res.init_flag_a_0 Bool) - ) Bool - - (and (= jafter.usr.after_a_0 false) jafter.res.init_flag_a_0) -) - -(define-fun - __node_trans_jafter_0 ( - (jafter.usr.X_a_1 Bool) - (jafter.usr.after_a_1 Bool) - (jafter.res.init_flag_a_1 Bool) - (jafter.usr.X_a_0 Bool) - (jafter.usr.after_a_0 Bool) - (jafter.res.init_flag_a_0 Bool) - ) Bool - - (and (= jafter.usr.after_a_1 jafter.usr.X_a_0) (not jafter.res.init_flag_a_1)) -) - -(define-fun - __node_init_once_from_to_0 ( - (once_from_to.usr.A_a_0 Bool) - (once_from_to.usr.B_a_0 Bool) - (once_from_to.usr.X_a_0 Bool) - (once_from_to.usr.OK_a_0 Bool) - (once_from_to.res.init_flag_a_0 Bool) - (once_from_to.res.abs_0_a_0 Bool) - (once_from_to.res.abs_1_a_0 Bool) - (once_from_to.res.abs_2_a_0 Bool) - (once_from_to.res.inst_1_a_0 Bool) - (once_from_to.res.inst_0_a_0 Bool) - ) Bool - - (and - (= once_from_to.res.abs_1_a_0 false) - (let - ((X1 Bool once_from_to.res.abs_2_a_0)) - (and - (= once_from_to.usr.OK_a_0 (not (and X1 once_from_to.usr.B_a_0))) - (__node_init_switch_0 - once_from_to.res.abs_1_a_0 - once_from_to.usr.A_a_0 - once_from_to.res.abs_0_a_0 - once_from_to.res.abs_2_a_0 - once_from_to.res.inst_1_a_0) - (__node_init_jafter_0 - once_from_to.usr.X_a_0 - once_from_to.res.abs_0_a_0 - once_from_to.res.inst_0_a_0) - once_from_to.res.init_flag_a_0))) -) - -(define-fun - __node_trans_once_from_to_0 ( - (once_from_to.usr.A_a_1 Bool) - (once_from_to.usr.B_a_1 Bool) - (once_from_to.usr.X_a_1 Bool) - (once_from_to.usr.OK_a_1 Bool) - (once_from_to.res.init_flag_a_1 Bool) - (once_from_to.res.abs_0_a_1 Bool) - (once_from_to.res.abs_1_a_1 Bool) - (once_from_to.res.abs_2_a_1 Bool) - (once_from_to.res.inst_1_a_1 Bool) - (once_from_to.res.inst_0_a_1 Bool) - (once_from_to.usr.A_a_0 Bool) - (once_from_to.usr.B_a_0 Bool) - (once_from_to.usr.X_a_0 Bool) - (once_from_to.usr.OK_a_0 Bool) - (once_from_to.res.init_flag_a_0 Bool) - (once_from_to.res.abs_0_a_0 Bool) - (once_from_to.res.abs_1_a_0 Bool) - (once_from_to.res.abs_2_a_0 Bool) - (once_from_to.res.inst_1_a_0 Bool) - (once_from_to.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool once_from_to.res.abs_2_a_1)) - (and - (= once_from_to.usr.OK_a_1 (not (and X1 once_from_to.usr.B_a_1))) - (= once_from_to.res.abs_1_a_1 false) - (__node_trans_switch_0 - once_from_to.res.abs_1_a_1 - once_from_to.usr.A_a_1 - once_from_to.res.abs_0_a_1 - once_from_to.res.abs_2_a_1 - once_from_to.res.inst_1_a_1 - once_from_to.res.abs_1_a_0 - once_from_to.usr.A_a_0 - once_from_to.res.abs_0_a_0 - once_from_to.res.abs_2_a_0 - once_from_to.res.inst_1_a_0) - (__node_trans_jafter_0 - once_from_to.usr.X_a_1 - once_from_to.res.abs_0_a_1 - once_from_to.res.inst_0_a_1 - once_from_to.usr.X_a_0 - once_from_to.res.abs_0_a_0 - once_from_to.res.inst_0_a_0) - (not once_from_to.res.init_flag_a_1))) -) - -(define-fun - __node_init_properties_0 ( - (properties.usr.door_is_open_a_0 Bool) - (properties.usr.in_station_a_0 Bool) - (properties.usr.request_door_a_0 Bool) - (properties.usr.warning_start_a_0 Bool) - (properties.usr.OK_a_0 Bool) - (properties.res.init_flag_a_0 Bool) - (properties.res.abs_0_a_0 Bool) - (properties.res.abs_1_a_0 Bool) - (properties.res.abs_2_a_0 Bool) - (properties.res.abs_3_a_0 Bool) - (properties.res.abs_4_a_0 Bool) - (properties.res.abs_5_a_0 Bool) - (properties.res.inst_8_a_0 Bool) - (properties.res.inst_7_a_0 Bool) - (properties.res.inst_6_a_0 Bool) - (properties.res.inst_5_a_0 Bool) - (properties.res.inst_4_a_0 Bool) - (properties.res.inst_3_a_0 Bool) - (properties.res.inst_2_a_0 Bool) - (properties.res.inst_1_a_0 Bool) - (properties.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool properties.res.abs_5_a_0)) - (let - ((X2 Bool (=> properties.usr.door_is_open_a_0 properties.usr.in_station_a_0))) - (and - (= properties.usr.OK_a_0 (and X2 X1)) - (= - properties.res.abs_0_a_0 - (and - properties.usr.request_door_a_0 - (not properties.usr.warning_start_a_0))) - (= properties.res.abs_2_a_0 (not properties.usr.in_station_a_0)) - (__node_init_once_from_to_0 - properties.res.abs_1_a_0 - properties.res.abs_3_a_0 - properties.res.abs_4_a_0 - properties.res.abs_5_a_0 - properties.res.inst_8_a_0 - properties.res.inst_7_a_0 - properties.res.inst_6_a_0 - properties.res.inst_5_a_0 - properties.res.inst_4_a_0 - properties.res.inst_3_a_0) - (__node_init_jafter_0 - properties.res.abs_0_a_0 - properties.res.abs_1_a_0 - properties.res.inst_2_a_0) - (__node_init_edge_0 - properties.res.abs_2_a_0 - properties.res.abs_3_a_0 - properties.res.inst_1_a_0) - (__node_init_jafter_0 - properties.usr.door_is_open_a_0 - properties.res.abs_4_a_0 - properties.res.inst_0_a_0) - properties.res.init_flag_a_0))) -) - -(define-fun - __node_trans_properties_0 ( - (properties.usr.door_is_open_a_1 Bool) - (properties.usr.in_station_a_1 Bool) - (properties.usr.request_door_a_1 Bool) - (properties.usr.warning_start_a_1 Bool) - (properties.usr.OK_a_1 Bool) - (properties.res.init_flag_a_1 Bool) - (properties.res.abs_0_a_1 Bool) - (properties.res.abs_1_a_1 Bool) - (properties.res.abs_2_a_1 Bool) - (properties.res.abs_3_a_1 Bool) - (properties.res.abs_4_a_1 Bool) - (properties.res.abs_5_a_1 Bool) - (properties.res.inst_8_a_1 Bool) - (properties.res.inst_7_a_1 Bool) - (properties.res.inst_6_a_1 Bool) - (properties.res.inst_5_a_1 Bool) - (properties.res.inst_4_a_1 Bool) - (properties.res.inst_3_a_1 Bool) - (properties.res.inst_2_a_1 Bool) - (properties.res.inst_1_a_1 Bool) - (properties.res.inst_0_a_1 Bool) - (properties.usr.door_is_open_a_0 Bool) - (properties.usr.in_station_a_0 Bool) - (properties.usr.request_door_a_0 Bool) - (properties.usr.warning_start_a_0 Bool) - (properties.usr.OK_a_0 Bool) - (properties.res.init_flag_a_0 Bool) - (properties.res.abs_0_a_0 Bool) - (properties.res.abs_1_a_0 Bool) - (properties.res.abs_2_a_0 Bool) - (properties.res.abs_3_a_0 Bool) - (properties.res.abs_4_a_0 Bool) - (properties.res.abs_5_a_0 Bool) - (properties.res.inst_8_a_0 Bool) - (properties.res.inst_7_a_0 Bool) - (properties.res.inst_6_a_0 Bool) - (properties.res.inst_5_a_0 Bool) - (properties.res.inst_4_a_0 Bool) - (properties.res.inst_3_a_0 Bool) - (properties.res.inst_2_a_0 Bool) - (properties.res.inst_1_a_0 Bool) - (properties.res.inst_0_a_0 Bool) - ) Bool - - (and - (= properties.res.abs_2_a_1 (not properties.usr.in_station_a_1)) - (let - ((X1 Bool properties.res.abs_5_a_1)) - (let - ((X2 - Bool (=> properties.usr.door_is_open_a_1 properties.usr.in_station_a_1))) - (and - (= properties.usr.OK_a_1 (and X2 X1)) - (= - properties.res.abs_0_a_1 - (and - properties.usr.request_door_a_1 - (not properties.usr.warning_start_a_1))) - (__node_trans_once_from_to_0 - properties.res.abs_1_a_1 - properties.res.abs_3_a_1 - properties.res.abs_4_a_1 - properties.res.abs_5_a_1 - properties.res.inst_8_a_1 - properties.res.inst_7_a_1 - properties.res.inst_6_a_1 - properties.res.inst_5_a_1 - properties.res.inst_4_a_1 - properties.res.inst_3_a_1 - properties.res.abs_1_a_0 - properties.res.abs_3_a_0 - properties.res.abs_4_a_0 - properties.res.abs_5_a_0 - properties.res.inst_8_a_0 - properties.res.inst_7_a_0 - properties.res.inst_6_a_0 - properties.res.inst_5_a_0 - properties.res.inst_4_a_0 - properties.res.inst_3_a_0) - (__node_trans_jafter_0 - properties.res.abs_0_a_1 - properties.res.abs_1_a_1 - properties.res.inst_2_a_1 - properties.res.abs_0_a_0 - properties.res.abs_1_a_0 - properties.res.inst_2_a_0) - (__node_trans_edge_0 - properties.res.abs_2_a_1 - properties.res.abs_3_a_1 - properties.res.inst_1_a_1 - properties.res.abs_2_a_0 - properties.res.abs_3_a_0 - properties.res.inst_1_a_0) - (__node_trans_jafter_0 - properties.usr.door_is_open_a_1 - properties.res.abs_4_a_1 - properties.res.inst_0_a_1 - properties.usr.door_is_open_a_0 - properties.res.abs_4_a_0 - properties.res.inst_0_a_0) - (not properties.res.init_flag_a_1))))) -) - -(define-fun - __node_init_environment_0 ( - (environment.usr.door_is_open_a_0 Bool) - (environment.usr.open_door_a_0 Bool) - (environment.usr.close_door_a_0 Bool) - (environment.usr.in_station_a_0 Bool) - (environment.usr.door_ok_a_0 Bool) - (environment.usr.warning_start_a_0 Bool) - (environment.usr.env_always_ok_a_0 Bool) - (environment.res.init_flag_a_0 Bool) - (environment.res.abs_0_a_0 Bool) - (environment.res.abs_1_a_0 Bool) - (environment.res.abs_2_a_0 Bool) - (environment.res.abs_3_a_0 Bool) - (environment.res.abs_4_a_0 Bool) - (environment.res.abs_5_a_0 Bool) - (environment.res.abs_6_a_0 Bool) - (environment.res.abs_7_a_0 Bool) - (environment.res.abs_8_a_0 Bool) - (environment.res.inst_5_a_0 Bool) - (environment.res.inst_4_a_0 Bool) - (environment.res.inst_3_a_0 Bool) - (environment.res.inst_2_a_0 Bool) - (environment.res.inst_1_a_0 Bool) - (environment.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool (=> environment.res.abs_8_a_0 (not environment.usr.open_door_a_0)))) - (let - ((X2 - Bool (=> environment.usr.warning_start_a_0 environment.usr.in_station_a_0))) - (let - ((X3 Bool (= environment.res.abs_4_a_0 environment.res.abs_7_a_0))) - (let - ((X4 Bool (not environment.usr.in_station_a_0))) - (let - ((X5 Bool (not environment.usr.door_is_open_a_0))) - (let - ((X6 Bool (=> environment.res.abs_4_a_0 environment.res.abs_5_a_0))) - (let - ((X7 Bool (=> environment.res.abs_2_a_0 environment.usr.close_door_a_0))) - (let - ((X8 Bool (=> environment.res.abs_0_a_0 environment.usr.open_door_a_0))) - (let - ((X9 - Bool (and - (and (and (and (and (and (and X7 X8) X6) X5) X4) X3) X2) - X1))) - (and - (= environment.usr.env_always_ok_a_0 X9) - (= environment.res.abs_1_a_0 (not environment.usr.door_is_open_a_0)) - (= environment.res.abs_3_a_0 (not environment.usr.in_station_a_0)) - (= environment.res.abs_6_a_0 (not environment.usr.warning_start_a_0)) - (__node_init_edge_0 - environment.usr.door_is_open_a_0 - environment.res.abs_0_a_0 - environment.res.inst_5_a_0) - (__node_init_edge_0 - environment.res.abs_1_a_0 - environment.res.abs_2_a_0 - environment.res.inst_4_a_0) - (__node_init_edge_0 - environment.res.abs_3_a_0 - environment.res.abs_4_a_0 - environment.res.inst_3_a_0) - (__node_init_jafter_0 - environment.usr.door_ok_a_0 - environment.res.abs_5_a_0 - environment.res.inst_2_a_0) - (__node_init_edge_0 - environment.res.abs_6_a_0 - environment.res.abs_7_a_0 - environment.res.inst_1_a_0) - (__node_init_edge_0 - environment.usr.warning_start_a_0 - environment.res.abs_8_a_0 - environment.res.inst_0_a_0) - environment.res.init_flag_a_0)))))))))) -) - -(define-fun - __node_trans_environment_0 ( - (environment.usr.door_is_open_a_1 Bool) - (environment.usr.open_door_a_1 Bool) - (environment.usr.close_door_a_1 Bool) - (environment.usr.in_station_a_1 Bool) - (environment.usr.door_ok_a_1 Bool) - (environment.usr.warning_start_a_1 Bool) - (environment.usr.env_always_ok_a_1 Bool) - (environment.res.init_flag_a_1 Bool) - (environment.res.abs_0_a_1 Bool) - (environment.res.abs_1_a_1 Bool) - (environment.res.abs_2_a_1 Bool) - (environment.res.abs_3_a_1 Bool) - (environment.res.abs_4_a_1 Bool) - (environment.res.abs_5_a_1 Bool) - (environment.res.abs_6_a_1 Bool) - (environment.res.abs_7_a_1 Bool) - (environment.res.abs_8_a_1 Bool) - (environment.res.inst_5_a_1 Bool) - (environment.res.inst_4_a_1 Bool) - (environment.res.inst_3_a_1 Bool) - (environment.res.inst_2_a_1 Bool) - (environment.res.inst_1_a_1 Bool) - (environment.res.inst_0_a_1 Bool) - (environment.usr.door_is_open_a_0 Bool) - (environment.usr.open_door_a_0 Bool) - (environment.usr.close_door_a_0 Bool) - (environment.usr.in_station_a_0 Bool) - (environment.usr.door_ok_a_0 Bool) - (environment.usr.warning_start_a_0 Bool) - (environment.usr.env_always_ok_a_0 Bool) - (environment.res.init_flag_a_0 Bool) - (environment.res.abs_0_a_0 Bool) - (environment.res.abs_1_a_0 Bool) - (environment.res.abs_2_a_0 Bool) - (environment.res.abs_3_a_0 Bool) - (environment.res.abs_4_a_0 Bool) - (environment.res.abs_5_a_0 Bool) - (environment.res.abs_6_a_0 Bool) - (environment.res.abs_7_a_0 Bool) - (environment.res.abs_8_a_0 Bool) - (environment.res.inst_5_a_0 Bool) - (environment.res.inst_4_a_0 Bool) - (environment.res.inst_3_a_0 Bool) - (environment.res.inst_2_a_0 Bool) - (environment.res.inst_1_a_0 Bool) - (environment.res.inst_0_a_0 Bool) - ) Bool - - (and - (= environment.res.abs_6_a_1 (not environment.usr.warning_start_a_1)) - (= environment.res.abs_3_a_1 (not environment.usr.in_station_a_1)) - (= environment.res.abs_1_a_1 (not environment.usr.door_is_open_a_1)) - (let - ((X1 Bool (=> environment.res.abs_8_a_1 (not environment.usr.open_door_a_1)))) - (let - ((X2 - Bool (=> environment.usr.warning_start_a_1 environment.usr.in_station_a_1))) - (let - ((X3 Bool (= environment.res.abs_4_a_1 environment.res.abs_7_a_1))) - (let - ((X4 Bool true)) - (let - ((X5 Bool true)) - (let - ((X6 Bool (=> environment.res.abs_4_a_1 environment.res.abs_5_a_1))) - (let - ((X7 - Bool (=> environment.res.abs_2_a_1 environment.usr.close_door_a_1))) - (let - ((X8 - Bool (=> environment.res.abs_0_a_1 environment.usr.open_door_a_1))) - (let - ((X9 - Bool (and - (and (and (and (and (and (and X7 X8) X6) X5) X4) X3) X2) - X1))) - (and - (= - environment.usr.env_always_ok_a_1 - (and X9 environment.usr.env_always_ok_a_0)) - (__node_trans_edge_0 - environment.usr.door_is_open_a_1 - environment.res.abs_0_a_1 - environment.res.inst_5_a_1 - environment.usr.door_is_open_a_0 - environment.res.abs_0_a_0 - environment.res.inst_5_a_0) - (__node_trans_edge_0 - environment.res.abs_1_a_1 - environment.res.abs_2_a_1 - environment.res.inst_4_a_1 - environment.res.abs_1_a_0 - environment.res.abs_2_a_0 - environment.res.inst_4_a_0) - (__node_trans_edge_0 - environment.res.abs_3_a_1 - environment.res.abs_4_a_1 - environment.res.inst_3_a_1 - environment.res.abs_3_a_0 - environment.res.abs_4_a_0 - environment.res.inst_3_a_0) - (__node_trans_jafter_0 - environment.usr.door_ok_a_1 - environment.res.abs_5_a_1 - environment.res.inst_2_a_1 - environment.usr.door_ok_a_0 - environment.res.abs_5_a_0 - environment.res.inst_2_a_0) - (__node_trans_edge_0 - environment.res.abs_6_a_1 - environment.res.abs_7_a_1 - environment.res.inst_1_a_1 - environment.res.abs_6_a_0 - environment.res.abs_7_a_0 - environment.res.inst_1_a_0) - (__node_trans_edge_0 - environment.usr.warning_start_a_1 - environment.res.abs_8_a_1 - environment.res.inst_0_a_1 - environment.usr.warning_start_a_0 - environment.res.abs_8_a_0 - environment.res.inst_0_a_0) - (not environment.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.request_door_a_0 Bool) - (top.usr.warning_start_a_0 Bool) - (top.usr.in_station_a_0 Bool) - (top.usr.door_is_open_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.open_door_a_0 Bool) - (top.impl.usr.close_door_a_0 Bool) - (top.impl.usr.door_ok_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.inst_36_a_0 Bool) - (top.res.inst_35_a_0 Bool) - (top.res.inst_34_a_0 Bool) - (top.res.inst_33_a_0 Bool) - (top.res.inst_32_a_0 Bool) - (top.res.inst_31_a_0 Bool) - (top.res.inst_30_a_0 Bool) - (top.res.inst_29_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Bool) - (top.res.inst_23_a_0 Bool) - (top.res.inst_22_a_0 Bool) - (top.res.inst_21_a_0 Bool) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.close_door_a_0 top.res.abs_3_a_0) - (= top.impl.usr.open_door_a_0 top.res.abs_2_a_0) - (let - ((X1 Bool top.res.abs_0_a_0)) - (let - ((X2 Bool top.res.abs_1_a_0)) - (and - (= top.usr.OK_a_0 (=> X2 X1)) - (= top.impl.usr.door_ok_a_0 top.res.abs_4_a_0) - (__node_init_environment_0 - top.usr.door_is_open_a_0 - top.impl.usr.open_door_a_0 - top.impl.usr.close_door_a_0 - top.usr.in_station_a_0 - top.impl.usr.door_ok_a_0 - top.usr.warning_start_a_0 - top.res.abs_1_a_0 - top.res.inst_36_a_0 - top.res.inst_35_a_0 - top.res.inst_34_a_0 - top.res.inst_33_a_0 - top.res.inst_32_a_0 - top.res.inst_31_a_0 - top.res.inst_30_a_0 - top.res.inst_29_a_0 - top.res.inst_28_a_0 - top.res.inst_27_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0) - (__node_init_controller_0 - top.usr.request_door_a_0 - top.usr.warning_start_a_0 - top.usr.in_station_a_0 - top.usr.door_is_open_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0) - (__node_init_properties_0 - top.usr.door_is_open_a_0 - top.usr.in_station_a_0 - top.usr.request_door_a_0 - top.usr.warning_start_a_0 - top.res.abs_0_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.request_door_a_1 Bool) - (top.usr.warning_start_a_1 Bool) - (top.usr.in_station_a_1 Bool) - (top.usr.door_is_open_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.open_door_a_1 Bool) - (top.impl.usr.close_door_a_1 Bool) - (top.impl.usr.door_ok_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.abs_4_a_1 Bool) - (top.res.inst_36_a_1 Bool) - (top.res.inst_35_a_1 Bool) - (top.res.inst_34_a_1 Bool) - (top.res.inst_33_a_1 Bool) - (top.res.inst_32_a_1 Bool) - (top.res.inst_31_a_1 Bool) - (top.res.inst_30_a_1 Bool) - (top.res.inst_29_a_1 Bool) - (top.res.inst_28_a_1 Bool) - (top.res.inst_27_a_1 Bool) - (top.res.inst_26_a_1 Bool) - (top.res.inst_25_a_1 Bool) - (top.res.inst_24_a_1 Bool) - (top.res.inst_23_a_1 Bool) - (top.res.inst_22_a_1 Bool) - (top.res.inst_21_a_1 Bool) - (top.res.inst_20_a_1 Bool) - (top.res.inst_19_a_1 Bool) - (top.res.inst_18_a_1 Bool) - (top.res.inst_17_a_1 Bool) - (top.res.inst_16_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Bool) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Bool) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Bool) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.request_door_a_0 Bool) - (top.usr.warning_start_a_0 Bool) - (top.usr.in_station_a_0 Bool) - (top.usr.door_is_open_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.open_door_a_0 Bool) - (top.impl.usr.close_door_a_0 Bool) - (top.impl.usr.door_ok_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.inst_36_a_0 Bool) - (top.res.inst_35_a_0 Bool) - (top.res.inst_34_a_0 Bool) - (top.res.inst_33_a_0 Bool) - (top.res.inst_32_a_0 Bool) - (top.res.inst_31_a_0 Bool) - (top.res.inst_30_a_0 Bool) - (top.res.inst_29_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Bool) - (top.res.inst_23_a_0 Bool) - (top.res.inst_22_a_0 Bool) - (top.res.inst_21_a_0 Bool) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.close_door_a_1 top.res.abs_3_a_1) - (= top.impl.usr.open_door_a_1 top.res.abs_2_a_1) - (let - ((X1 Bool top.res.abs_0_a_1)) - (let - ((X2 Bool top.res.abs_1_a_1)) - (and - (= top.usr.OK_a_1 (=> X2 X1)) - (= top.impl.usr.door_ok_a_1 top.res.abs_4_a_1) - (__node_trans_environment_0 - top.usr.door_is_open_a_1 - top.impl.usr.open_door_a_1 - top.impl.usr.close_door_a_1 - top.usr.in_station_a_1 - top.impl.usr.door_ok_a_1 - top.usr.warning_start_a_1 - top.res.abs_1_a_1 - top.res.inst_36_a_1 - top.res.inst_35_a_1 - top.res.inst_34_a_1 - top.res.inst_33_a_1 - top.res.inst_32_a_1 - top.res.inst_31_a_1 - top.res.inst_30_a_1 - top.res.inst_29_a_1 - top.res.inst_28_a_1 - top.res.inst_27_a_1 - top.res.inst_26_a_1 - top.res.inst_25_a_1 - top.res.inst_24_a_1 - top.res.inst_23_a_1 - top.res.inst_22_a_1 - top.res.inst_21_a_1 - top.usr.door_is_open_a_0 - top.impl.usr.open_door_a_0 - top.impl.usr.close_door_a_0 - top.usr.in_station_a_0 - top.impl.usr.door_ok_a_0 - top.usr.warning_start_a_0 - top.res.abs_1_a_0 - top.res.inst_36_a_0 - top.res.inst_35_a_0 - top.res.inst_34_a_0 - top.res.inst_33_a_0 - top.res.inst_32_a_0 - top.res.inst_31_a_0 - top.res.inst_30_a_0 - top.res.inst_29_a_0 - top.res.inst_28_a_0 - top.res.inst_27_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0) - (__node_trans_controller_0 - top.usr.request_door_a_1 - top.usr.warning_start_a_1 - top.usr.in_station_a_1 - top.usr.door_is_open_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.inst_20_a_1 - top.res.inst_19_a_1 - top.res.inst_18_a_1 - top.res.inst_17_a_1 - top.res.inst_16_a_1 - top.usr.request_door_a_0 - top.usr.warning_start_a_0 - top.usr.in_station_a_0 - top.usr.door_is_open_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0) - (__node_trans_properties_0 - top.usr.door_is_open_a_1 - top.usr.in_station_a_1 - top.usr.request_door_a_1 - top.usr.warning_start_a_1 - top.res.abs_0_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.res.inst_0_a_1 - top.usr.door_is_open_a_0 - top.usr.in_station_a_0 - top.usr.request_door_a_0 - top.usr.warning_start_a_0 - top.res.abs_0_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.request_door Bool) - (top.usr.warning_start Bool) - (top.usr.in_station Bool) - (top.usr.door_is_open Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.open_door Bool) - (top.impl.usr.close_door Bool) - (top.impl.usr.door_ok Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.request_door Bool) -(declare-primed-var top.usr.warning_start Bool) -(declare-primed-var top.usr.in_station Bool) -(declare-primed-var top.usr.door_is_open Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.open_door Bool) -(declare-primed-var top.impl.usr.close_door Bool) -(declare-primed-var top.impl.usr.door_ok Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.inst_36 Bool) -(declare-primed-var top.res.inst_35 Bool) -(declare-primed-var top.res.inst_34 Bool) -(declare-primed-var top.res.inst_33 Bool) -(declare-primed-var top.res.inst_32 Bool) -(declare-primed-var top.res.inst_31 Bool) -(declare-primed-var top.res.inst_30 Bool) -(declare-primed-var top.res.inst_29 Bool) -(declare-primed-var top.res.inst_28 Bool) -(declare-primed-var top.res.inst_27 Bool) -(declare-primed-var top.res.inst_26 Bool) -(declare-primed-var top.res.inst_25 Bool) -(declare-primed-var top.res.inst_24 Bool) -(declare-primed-var top.res.inst_23 Bool) -(declare-primed-var top.res.inst_22 Bool) -(declare-primed-var top.res.inst_21 Bool) -(declare-primed-var top.res.inst_20 Bool) -(declare-primed-var top.res.inst_19 Bool) -(declare-primed-var top.res.inst_18 Bool) -(declare-primed-var top.res.inst_17 Bool) -(declare-primed-var top.res.inst_16 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Bool) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Bool) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Bool) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.request_door Bool) - (top.usr.warning_start Bool) - (top.usr.in_station Bool) - (top.usr.door_is_open Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.open_door Bool) - (top.impl.usr.close_door Bool) - (top.impl.usr.door_ok Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.impl.usr.close_door top.res.abs_3) - (= top.impl.usr.open_door top.res.abs_2) - (let - ((X1 Bool top.res.abs_0)) - (let - ((X2 Bool top.res.abs_1)) - (and - (= top.usr.OK (=> X2 X1)) - (= top.impl.usr.door_ok top.res.abs_4) - (__node_init_environment_0 - top.usr.door_is_open - top.impl.usr.open_door - top.impl.usr.close_door - top.usr.in_station - top.impl.usr.door_ok - top.usr.warning_start - top.res.abs_1 - top.res.inst_36 - top.res.inst_35 - top.res.inst_34 - top.res.inst_33 - top.res.inst_32 - top.res.inst_31 - top.res.inst_30 - top.res.inst_29 - top.res.inst_28 - top.res.inst_27 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21) - (__node_init_controller_0 - top.usr.request_door - top.usr.warning_start - top.usr.in_station - top.usr.door_is_open - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16) - (__node_init_properties_0 - top.usr.door_is_open - top.usr.in_station - top.usr.request_door - top.usr.warning_start - top.res.abs_0 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.request_door Bool) - (top.usr.warning_start Bool) - (top.usr.in_station Bool) - (top.usr.door_is_open Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.open_door Bool) - (top.impl.usr.close_door Bool) - (top.impl.usr.door_ok Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.request_door! Bool) - (top.usr.warning_start! Bool) - (top.usr.in_station! Bool) - (top.usr.door_is_open! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.open_door! Bool) - (top.impl.usr.close_door! Bool) - (top.impl.usr.door_ok! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.abs_4! Bool) - (top.res.inst_36! Bool) - (top.res.inst_35! Bool) - (top.res.inst_34! Bool) - (top.res.inst_33! Bool) - (top.res.inst_32! Bool) - (top.res.inst_31! Bool) - (top.res.inst_30! Bool) - (top.res.inst_29! Bool) - (top.res.inst_28! Bool) - (top.res.inst_27! Bool) - (top.res.inst_26! Bool) - (top.res.inst_25! Bool) - (top.res.inst_24! Bool) - (top.res.inst_23! Bool) - (top.res.inst_22! Bool) - (top.res.inst_21! Bool) - (top.res.inst_20! Bool) - (top.res.inst_19! Bool) - (top.res.inst_18! Bool) - (top.res.inst_17! Bool) - (top.res.inst_16! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Bool) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Bool) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Bool) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.impl.usr.close_door! top.res.abs_3!) - (= top.impl.usr.open_door! top.res.abs_2!) - (let - ((X1 Bool top.res.abs_0!)) - (let - ((X2 Bool top.res.abs_1!)) - (and - (= top.usr.OK! (=> X2 X1)) - (= top.impl.usr.door_ok! top.res.abs_4!) - (__node_trans_environment_0 - top.usr.door_is_open! - top.impl.usr.open_door! - top.impl.usr.close_door! - top.usr.in_station! - top.impl.usr.door_ok! - top.usr.warning_start! - top.res.abs_1! - top.res.inst_36! - top.res.inst_35! - top.res.inst_34! - top.res.inst_33! - top.res.inst_32! - top.res.inst_31! - top.res.inst_30! - top.res.inst_29! - top.res.inst_28! - top.res.inst_27! - top.res.inst_26! - top.res.inst_25! - top.res.inst_24! - top.res.inst_23! - top.res.inst_22! - top.res.inst_21! - top.usr.door_is_open - top.impl.usr.open_door - top.impl.usr.close_door - top.usr.in_station - top.impl.usr.door_ok - top.usr.warning_start - top.res.abs_1 - top.res.inst_36 - top.res.inst_35 - top.res.inst_34 - top.res.inst_33 - top.res.inst_32 - top.res.inst_31 - top.res.inst_30 - top.res.inst_29 - top.res.inst_28 - top.res.inst_27 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21) - (__node_trans_controller_0 - top.usr.request_door! - top.usr.warning_start! - top.usr.in_station! - top.usr.door_is_open! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.inst_20! - top.res.inst_19! - top.res.inst_18! - top.res.inst_17! - top.res.inst_16! - top.usr.request_door - top.usr.warning_start - top.usr.in_station - top.usr.door_is_open - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16) - (__node_trans_properties_0 - top.usr.door_is_open! - top.usr.in_station! - top.usr.request_door! - top.usr.warning_start! - top.res.abs_0! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.res.inst_0! - top.usr.door_is_open - top.usr.in_station - top.usr.request_door - top.usr.warning_start - top.res.abs_0 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - (not top.res.init_flag!))))) -) - -(define-fun - prop ( - (top.usr.request_door Bool) - (top.usr.warning_start Bool) - (top.usr.in_station Bool) - (top.usr.door_is_open Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.open_door Bool) - (top.impl.usr.close_door Bool) - (top.impl.usr.door_ok Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_switch_0 ((switch.usr.init_a_0 Bool) (switch.usr.on_a_0 Bool) (switch.usr.off_a_0 Bool) (switch.usr.value_a_0 Bool) (switch.res.init_flag_a_0 Bool)) Bool + (and (= switch.usr.value_a_0 (ite switch.usr.on_a_0 true (ite switch.usr.off_a_0 false switch.usr.init_a_0))) switch.res.init_flag_a_0)) +(define-fun __node_trans_switch_0 ((switch.usr.init_a_1 Bool) (switch.usr.on_a_1 Bool) (switch.usr.off_a_1 Bool) (switch.usr.value_a_1 Bool) (switch.res.init_flag_a_1 Bool) (switch.usr.init_a_0 Bool) (switch.usr.on_a_0 Bool) (switch.usr.off_a_0 Bool) (switch.usr.value_a_0 Bool) (switch.res.init_flag_a_0 Bool)) Bool + (and (= switch.usr.value_a_1 (ite switch.usr.on_a_1 true (ite switch.usr.off_a_1 false switch.usr.value_a_0))) (not switch.res.init_flag_a_1))) +(define-fun __node_init_controller_0 ((controller.usr.request_door_a_0 Bool) (controller.usr.warning_start_a_0 Bool) (controller.usr.in_station_a_0 Bool) (controller.usr.door_is_open_a_0 Bool) (controller.usr.open_door_a_0 Bool) (controller.usr.close_door_a_0 Bool) (controller.usr.door_ok_a_0 Bool) (controller.res.init_flag_a_0 Bool) (controller.res.abs_0_a_0 Bool) (controller.res.abs_1_a_0 Bool) (controller.res.abs_2_a_0 Bool) (controller.res.inst_0_a_0 Bool)) Bool + (and (= controller.res.abs_1_a_0 (and controller.usr.request_door_a_0 (not controller.usr.warning_start_a_0))) (= controller.res.abs_0_a_0 false) (let ((X1 controller.res.abs_2_a_0)) (and (= controller.usr.open_door_a_0 (and X1 controller.usr.in_station_a_0)) (= controller.usr.close_door_a_0 (and controller.usr.warning_start_a_0 controller.usr.door_is_open_a_0)) (= controller.usr.door_ok_a_0 (and (not controller.usr.door_is_open_a_0) controller.usr.warning_start_a_0)) (__node_init_switch_0 controller.res.abs_0_a_0 controller.res.abs_1_a_0 controller.usr.door_is_open_a_0 controller.res.abs_2_a_0 controller.res.inst_0_a_0) controller.res.init_flag_a_0)))) +(define-fun __node_trans_controller_0 ((controller.usr.request_door_a_1 Bool) (controller.usr.warning_start_a_1 Bool) (controller.usr.in_station_a_1 Bool) (controller.usr.door_is_open_a_1 Bool) (controller.usr.open_door_a_1 Bool) (controller.usr.close_door_a_1 Bool) (controller.usr.door_ok_a_1 Bool) (controller.res.init_flag_a_1 Bool) (controller.res.abs_0_a_1 Bool) (controller.res.abs_1_a_1 Bool) (controller.res.abs_2_a_1 Bool) (controller.res.inst_0_a_1 Bool) (controller.usr.request_door_a_0 Bool) (controller.usr.warning_start_a_0 Bool) (controller.usr.in_station_a_0 Bool) (controller.usr.door_is_open_a_0 Bool) (controller.usr.open_door_a_0 Bool) (controller.usr.close_door_a_0 Bool) (controller.usr.door_ok_a_0 Bool) (controller.res.init_flag_a_0 Bool) (controller.res.abs_0_a_0 Bool) (controller.res.abs_1_a_0 Bool) (controller.res.abs_2_a_0 Bool) (controller.res.inst_0_a_0 Bool)) Bool + (and (= controller.res.abs_1_a_1 (and controller.usr.request_door_a_1 (not controller.usr.warning_start_a_1))) (let ((X1 controller.res.abs_2_a_1)) (and (= controller.usr.open_door_a_1 (and X1 controller.usr.in_station_a_1)) (= controller.res.abs_0_a_1 false) (= controller.usr.close_door_a_1 (and controller.usr.warning_start_a_1 controller.usr.door_is_open_a_1)) (= controller.usr.door_ok_a_1 (and (not controller.usr.door_is_open_a_1) controller.usr.warning_start_a_1)) (__node_trans_switch_0 controller.res.abs_0_a_1 controller.res.abs_1_a_1 controller.usr.door_is_open_a_1 controller.res.abs_2_a_1 controller.res.inst_0_a_1 controller.res.abs_0_a_0 controller.res.abs_1_a_0 controller.usr.door_is_open_a_0 controller.res.abs_2_a_0 controller.res.inst_0_a_0) (not controller.res.init_flag_a_1))))) +(define-fun __node_init_edge_0 ((edge.usr.X_a_0 Bool) (edge.usr.edge_a_0 Bool) (edge.res.init_flag_a_0 Bool)) Bool + (and (= edge.usr.edge_a_0 false) edge.res.init_flag_a_0)) +(define-fun __node_trans_edge_0 ((edge.usr.X_a_1 Bool) (edge.usr.edge_a_1 Bool) (edge.res.init_flag_a_1 Bool) (edge.usr.X_a_0 Bool) (edge.usr.edge_a_0 Bool) (edge.res.init_flag_a_0 Bool)) Bool + (and (= edge.usr.edge_a_1 (and edge.usr.X_a_1 (not edge.usr.X_a_0))) (not edge.res.init_flag_a_1))) +(define-fun __node_init_jafter_0 ((jafter.usr.X_a_0 Bool) (jafter.usr.after_a_0 Bool) (jafter.res.init_flag_a_0 Bool)) Bool + (and (= jafter.usr.after_a_0 false) jafter.res.init_flag_a_0)) +(define-fun __node_trans_jafter_0 ((jafter.usr.X_a_1 Bool) (jafter.usr.after_a_1 Bool) (jafter.res.init_flag_a_1 Bool) (jafter.usr.X_a_0 Bool) (jafter.usr.after_a_0 Bool) (jafter.res.init_flag_a_0 Bool)) Bool + (and (= jafter.usr.after_a_1 jafter.usr.X_a_0) (not jafter.res.init_flag_a_1))) +(define-fun __node_init_once_from_to_0 ((once_from_to.usr.A_a_0 Bool) (once_from_to.usr.B_a_0 Bool) (once_from_to.usr.X_a_0 Bool) (once_from_to.usr.OK_a_0 Bool) (once_from_to.res.init_flag_a_0 Bool) (once_from_to.res.abs_0_a_0 Bool) (once_from_to.res.abs_1_a_0 Bool) (once_from_to.res.abs_2_a_0 Bool) (once_from_to.res.inst_1_a_0 Bool) (once_from_to.res.inst_0_a_0 Bool)) Bool + (and (= once_from_to.res.abs_1_a_0 false) (let ((X1 once_from_to.res.abs_2_a_0)) (and (= once_from_to.usr.OK_a_0 (not (and X1 once_from_to.usr.B_a_0))) (__node_init_switch_0 once_from_to.res.abs_1_a_0 once_from_to.usr.A_a_0 once_from_to.res.abs_0_a_0 once_from_to.res.abs_2_a_0 once_from_to.res.inst_1_a_0) (__node_init_jafter_0 once_from_to.usr.X_a_0 once_from_to.res.abs_0_a_0 once_from_to.res.inst_0_a_0) once_from_to.res.init_flag_a_0)))) +(define-fun __node_trans_once_from_to_0 ((once_from_to.usr.A_a_1 Bool) (once_from_to.usr.B_a_1 Bool) (once_from_to.usr.X_a_1 Bool) (once_from_to.usr.OK_a_1 Bool) (once_from_to.res.init_flag_a_1 Bool) (once_from_to.res.abs_0_a_1 Bool) (once_from_to.res.abs_1_a_1 Bool) (once_from_to.res.abs_2_a_1 Bool) (once_from_to.res.inst_1_a_1 Bool) (once_from_to.res.inst_0_a_1 Bool) (once_from_to.usr.A_a_0 Bool) (once_from_to.usr.B_a_0 Bool) (once_from_to.usr.X_a_0 Bool) (once_from_to.usr.OK_a_0 Bool) (once_from_to.res.init_flag_a_0 Bool) (once_from_to.res.abs_0_a_0 Bool) (once_from_to.res.abs_1_a_0 Bool) (once_from_to.res.abs_2_a_0 Bool) (once_from_to.res.inst_1_a_0 Bool) (once_from_to.res.inst_0_a_0 Bool)) Bool + (let ((X1 once_from_to.res.abs_2_a_1)) (and (= once_from_to.usr.OK_a_1 (not (and X1 once_from_to.usr.B_a_1))) (= once_from_to.res.abs_1_a_1 false) (__node_trans_switch_0 once_from_to.res.abs_1_a_1 once_from_to.usr.A_a_1 once_from_to.res.abs_0_a_1 once_from_to.res.abs_2_a_1 once_from_to.res.inst_1_a_1 once_from_to.res.abs_1_a_0 once_from_to.usr.A_a_0 once_from_to.res.abs_0_a_0 once_from_to.res.abs_2_a_0 once_from_to.res.inst_1_a_0) (__node_trans_jafter_0 once_from_to.usr.X_a_1 once_from_to.res.abs_0_a_1 once_from_to.res.inst_0_a_1 once_from_to.usr.X_a_0 once_from_to.res.abs_0_a_0 once_from_to.res.inst_0_a_0) (not once_from_to.res.init_flag_a_1)))) +(define-fun __node_init_properties_0 ((properties.usr.door_is_open_a_0 Bool) (properties.usr.in_station_a_0 Bool) (properties.usr.request_door_a_0 Bool) (properties.usr.warning_start_a_0 Bool) (properties.usr.OK_a_0 Bool) (properties.res.init_flag_a_0 Bool) (properties.res.abs_0_a_0 Bool) (properties.res.abs_1_a_0 Bool) (properties.res.abs_2_a_0 Bool) (properties.res.abs_3_a_0 Bool) (properties.res.abs_4_a_0 Bool) (properties.res.abs_5_a_0 Bool) (properties.res.inst_8_a_0 Bool) (properties.res.inst_7_a_0 Bool) (properties.res.inst_6_a_0 Bool) (properties.res.inst_5_a_0 Bool) (properties.res.inst_4_a_0 Bool) (properties.res.inst_3_a_0 Bool) (properties.res.inst_2_a_0 Bool) (properties.res.inst_1_a_0 Bool) (properties.res.inst_0_a_0 Bool)) Bool + (let ((X1 properties.res.abs_5_a_0)) (let ((X2 (=> properties.usr.door_is_open_a_0 properties.usr.in_station_a_0))) (and (= properties.usr.OK_a_0 (and X2 X1)) (= properties.res.abs_0_a_0 (and properties.usr.request_door_a_0 (not properties.usr.warning_start_a_0))) (= properties.res.abs_2_a_0 (not properties.usr.in_station_a_0)) (__node_init_once_from_to_0 properties.res.abs_1_a_0 properties.res.abs_3_a_0 properties.res.abs_4_a_0 properties.res.abs_5_a_0 properties.res.inst_8_a_0 properties.res.inst_7_a_0 properties.res.inst_6_a_0 properties.res.inst_5_a_0 properties.res.inst_4_a_0 properties.res.inst_3_a_0) (__node_init_jafter_0 properties.res.abs_0_a_0 properties.res.abs_1_a_0 properties.res.inst_2_a_0) (__node_init_edge_0 properties.res.abs_2_a_0 properties.res.abs_3_a_0 properties.res.inst_1_a_0) (__node_init_jafter_0 properties.usr.door_is_open_a_0 properties.res.abs_4_a_0 properties.res.inst_0_a_0) properties.res.init_flag_a_0)))) +(define-fun __node_trans_properties_0 ((properties.usr.door_is_open_a_1 Bool) (properties.usr.in_station_a_1 Bool) (properties.usr.request_door_a_1 Bool) (properties.usr.warning_start_a_1 Bool) (properties.usr.OK_a_1 Bool) (properties.res.init_flag_a_1 Bool) (properties.res.abs_0_a_1 Bool) (properties.res.abs_1_a_1 Bool) (properties.res.abs_2_a_1 Bool) (properties.res.abs_3_a_1 Bool) (properties.res.abs_4_a_1 Bool) (properties.res.abs_5_a_1 Bool) (properties.res.inst_8_a_1 Bool) (properties.res.inst_7_a_1 Bool) (properties.res.inst_6_a_1 Bool) (properties.res.inst_5_a_1 Bool) (properties.res.inst_4_a_1 Bool) (properties.res.inst_3_a_1 Bool) (properties.res.inst_2_a_1 Bool) (properties.res.inst_1_a_1 Bool) (properties.res.inst_0_a_1 Bool) (properties.usr.door_is_open_a_0 Bool) (properties.usr.in_station_a_0 Bool) (properties.usr.request_door_a_0 Bool) (properties.usr.warning_start_a_0 Bool) (properties.usr.OK_a_0 Bool) (properties.res.init_flag_a_0 Bool) (properties.res.abs_0_a_0 Bool) (properties.res.abs_1_a_0 Bool) (properties.res.abs_2_a_0 Bool) (properties.res.abs_3_a_0 Bool) (properties.res.abs_4_a_0 Bool) (properties.res.abs_5_a_0 Bool) (properties.res.inst_8_a_0 Bool) (properties.res.inst_7_a_0 Bool) (properties.res.inst_6_a_0 Bool) (properties.res.inst_5_a_0 Bool) (properties.res.inst_4_a_0 Bool) (properties.res.inst_3_a_0 Bool) (properties.res.inst_2_a_0 Bool) (properties.res.inst_1_a_0 Bool) (properties.res.inst_0_a_0 Bool)) Bool + (and (= properties.res.abs_2_a_1 (not properties.usr.in_station_a_1)) (let ((X1 properties.res.abs_5_a_1)) (let ((X2 (=> properties.usr.door_is_open_a_1 properties.usr.in_station_a_1))) (and (= properties.usr.OK_a_1 (and X2 X1)) (= properties.res.abs_0_a_1 (and properties.usr.request_door_a_1 (not properties.usr.warning_start_a_1))) (__node_trans_once_from_to_0 properties.res.abs_1_a_1 properties.res.abs_3_a_1 properties.res.abs_4_a_1 properties.res.abs_5_a_1 properties.res.inst_8_a_1 properties.res.inst_7_a_1 properties.res.inst_6_a_1 properties.res.inst_5_a_1 properties.res.inst_4_a_1 properties.res.inst_3_a_1 properties.res.abs_1_a_0 properties.res.abs_3_a_0 properties.res.abs_4_a_0 properties.res.abs_5_a_0 properties.res.inst_8_a_0 properties.res.inst_7_a_0 properties.res.inst_6_a_0 properties.res.inst_5_a_0 properties.res.inst_4_a_0 properties.res.inst_3_a_0) (__node_trans_jafter_0 properties.res.abs_0_a_1 properties.res.abs_1_a_1 properties.res.inst_2_a_1 properties.res.abs_0_a_0 properties.res.abs_1_a_0 properties.res.inst_2_a_0) (__node_trans_edge_0 properties.res.abs_2_a_1 properties.res.abs_3_a_1 properties.res.inst_1_a_1 properties.res.abs_2_a_0 properties.res.abs_3_a_0 properties.res.inst_1_a_0) (__node_trans_jafter_0 properties.usr.door_is_open_a_1 properties.res.abs_4_a_1 properties.res.inst_0_a_1 properties.usr.door_is_open_a_0 properties.res.abs_4_a_0 properties.res.inst_0_a_0) (not properties.res.init_flag_a_1)))))) +(define-fun __node_init_environment_0 ((environment.usr.door_is_open_a_0 Bool) (environment.usr.open_door_a_0 Bool) (environment.usr.close_door_a_0 Bool) (environment.usr.in_station_a_0 Bool) (environment.usr.door_ok_a_0 Bool) (environment.usr.warning_start_a_0 Bool) (environment.usr.env_always_ok_a_0 Bool) (environment.res.init_flag_a_0 Bool) (environment.res.abs_0_a_0 Bool) (environment.res.abs_1_a_0 Bool) (environment.res.abs_2_a_0 Bool) (environment.res.abs_3_a_0 Bool) (environment.res.abs_4_a_0 Bool) (environment.res.abs_5_a_0 Bool) (environment.res.abs_6_a_0 Bool) (environment.res.abs_7_a_0 Bool) (environment.res.abs_8_a_0 Bool) (environment.res.inst_5_a_0 Bool) (environment.res.inst_4_a_0 Bool) (environment.res.inst_3_a_0 Bool) (environment.res.inst_2_a_0 Bool) (environment.res.inst_1_a_0 Bool) (environment.res.inst_0_a_0 Bool)) Bool + (let ((X1 (=> environment.res.abs_8_a_0 (not environment.usr.open_door_a_0)))) (let ((X2 (=> environment.usr.warning_start_a_0 environment.usr.in_station_a_0))) (let ((X3 (= environment.res.abs_4_a_0 environment.res.abs_7_a_0))) (let ((X4 (not environment.usr.in_station_a_0))) (let ((X5 (not environment.usr.door_is_open_a_0))) (let ((X6 (=> environment.res.abs_4_a_0 environment.res.abs_5_a_0))) (let ((X7 (=> environment.res.abs_2_a_0 environment.usr.close_door_a_0))) (let ((X8 (=> environment.res.abs_0_a_0 environment.usr.open_door_a_0))) (let ((X9 (and (and (and (and (and (and (and X7 X8) X6) X5) X4) X3) X2) X1))) (and (= environment.usr.env_always_ok_a_0 X9) (= environment.res.abs_1_a_0 (not environment.usr.door_is_open_a_0)) (= environment.res.abs_3_a_0 (not environment.usr.in_station_a_0)) (= environment.res.abs_6_a_0 (not environment.usr.warning_start_a_0)) (__node_init_edge_0 environment.usr.door_is_open_a_0 environment.res.abs_0_a_0 environment.res.inst_5_a_0) (__node_init_edge_0 environment.res.abs_1_a_0 environment.res.abs_2_a_0 environment.res.inst_4_a_0) (__node_init_edge_0 environment.res.abs_3_a_0 environment.res.abs_4_a_0 environment.res.inst_3_a_0) (__node_init_jafter_0 environment.usr.door_ok_a_0 environment.res.abs_5_a_0 environment.res.inst_2_a_0) (__node_init_edge_0 environment.res.abs_6_a_0 environment.res.abs_7_a_0 environment.res.inst_1_a_0) (__node_init_edge_0 environment.usr.warning_start_a_0 environment.res.abs_8_a_0 environment.res.inst_0_a_0) environment.res.init_flag_a_0))))))))))) +(define-fun __node_trans_environment_0 ((environment.usr.door_is_open_a_1 Bool) (environment.usr.open_door_a_1 Bool) (environment.usr.close_door_a_1 Bool) (environment.usr.in_station_a_1 Bool) (environment.usr.door_ok_a_1 Bool) (environment.usr.warning_start_a_1 Bool) (environment.usr.env_always_ok_a_1 Bool) (environment.res.init_flag_a_1 Bool) (environment.res.abs_0_a_1 Bool) (environment.res.abs_1_a_1 Bool) (environment.res.abs_2_a_1 Bool) (environment.res.abs_3_a_1 Bool) (environment.res.abs_4_a_1 Bool) (environment.res.abs_5_a_1 Bool) (environment.res.abs_6_a_1 Bool) (environment.res.abs_7_a_1 Bool) (environment.res.abs_8_a_1 Bool) (environment.res.inst_5_a_1 Bool) (environment.res.inst_4_a_1 Bool) (environment.res.inst_3_a_1 Bool) (environment.res.inst_2_a_1 Bool) (environment.res.inst_1_a_1 Bool) (environment.res.inst_0_a_1 Bool) (environment.usr.door_is_open_a_0 Bool) (environment.usr.open_door_a_0 Bool) (environment.usr.close_door_a_0 Bool) (environment.usr.in_station_a_0 Bool) (environment.usr.door_ok_a_0 Bool) (environment.usr.warning_start_a_0 Bool) (environment.usr.env_always_ok_a_0 Bool) (environment.res.init_flag_a_0 Bool) (environment.res.abs_0_a_0 Bool) (environment.res.abs_1_a_0 Bool) (environment.res.abs_2_a_0 Bool) (environment.res.abs_3_a_0 Bool) (environment.res.abs_4_a_0 Bool) (environment.res.abs_5_a_0 Bool) (environment.res.abs_6_a_0 Bool) (environment.res.abs_7_a_0 Bool) (environment.res.abs_8_a_0 Bool) (environment.res.inst_5_a_0 Bool) (environment.res.inst_4_a_0 Bool) (environment.res.inst_3_a_0 Bool) (environment.res.inst_2_a_0 Bool) (environment.res.inst_1_a_0 Bool) (environment.res.inst_0_a_0 Bool)) Bool + (and (= environment.res.abs_6_a_1 (not environment.usr.warning_start_a_1)) (= environment.res.abs_3_a_1 (not environment.usr.in_station_a_1)) (= environment.res.abs_1_a_1 (not environment.usr.door_is_open_a_1)) (let ((X1 (=> environment.res.abs_8_a_1 (not environment.usr.open_door_a_1)))) (let ((X2 (=> environment.usr.warning_start_a_1 environment.usr.in_station_a_1))) (let ((X3 (= environment.res.abs_4_a_1 environment.res.abs_7_a_1))) (let ((X4 true)) (let ((X5 true)) (let ((X6 (=> environment.res.abs_4_a_1 environment.res.abs_5_a_1))) (let ((X7 (=> environment.res.abs_2_a_1 environment.usr.close_door_a_1))) (let ((X8 (=> environment.res.abs_0_a_1 environment.usr.open_door_a_1))) (let ((X9 (and (and (and (and (and (and (and X7 X8) X6) X5) X4) X3) X2) X1))) (and (= environment.usr.env_always_ok_a_1 (and X9 environment.usr.env_always_ok_a_0)) (__node_trans_edge_0 environment.usr.door_is_open_a_1 environment.res.abs_0_a_1 environment.res.inst_5_a_1 environment.usr.door_is_open_a_0 environment.res.abs_0_a_0 environment.res.inst_5_a_0) (__node_trans_edge_0 environment.res.abs_1_a_1 environment.res.abs_2_a_1 environment.res.inst_4_a_1 environment.res.abs_1_a_0 environment.res.abs_2_a_0 environment.res.inst_4_a_0) (__node_trans_edge_0 environment.res.abs_3_a_1 environment.res.abs_4_a_1 environment.res.inst_3_a_1 environment.res.abs_3_a_0 environment.res.abs_4_a_0 environment.res.inst_3_a_0) (__node_trans_jafter_0 environment.usr.door_ok_a_1 environment.res.abs_5_a_1 environment.res.inst_2_a_1 environment.usr.door_ok_a_0 environment.res.abs_5_a_0 environment.res.inst_2_a_0) (__node_trans_edge_0 environment.res.abs_6_a_1 environment.res.abs_7_a_1 environment.res.inst_1_a_1 environment.res.abs_6_a_0 environment.res.abs_7_a_0 environment.res.inst_1_a_0) (__node_trans_edge_0 environment.usr.warning_start_a_1 environment.res.abs_8_a_1 environment.res.inst_0_a_1 environment.usr.warning_start_a_0 environment.res.abs_8_a_0 environment.res.inst_0_a_0) (not environment.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.request_door_a_0 Bool) (top.usr.warning_start_a_0 Bool) (top.usr.in_station_a_0 Bool) (top.usr.door_is_open_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.open_door_a_0 Bool) (top.impl.usr.close_door_a_0 Bool) (top.impl.usr.door_ok_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.inst_36_a_0 Bool) (top.res.inst_35_a_0 Bool) (top.res.inst_34_a_0 Bool) (top.res.inst_33_a_0 Bool) (top.res.inst_32_a_0 Bool) (top.res.inst_31_a_0 Bool) (top.res.inst_30_a_0 Bool) (top.res.inst_29_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.close_door_a_0 top.res.abs_3_a_0) (= top.impl.usr.open_door_a_0 top.res.abs_2_a_0) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (and (= top.usr.OK_a_0 (=> X2 X1)) (= top.impl.usr.door_ok_a_0 top.res.abs_4_a_0) (__node_init_environment_0 top.usr.door_is_open_a_0 top.impl.usr.open_door_a_0 top.impl.usr.close_door_a_0 top.usr.in_station_a_0 top.impl.usr.door_ok_a_0 top.usr.warning_start_a_0 top.res.abs_1_a_0 top.res.inst_36_a_0 top.res.inst_35_a_0 top.res.inst_34_a_0 top.res.inst_33_a_0 top.res.inst_32_a_0 top.res.inst_31_a_0 top.res.inst_30_a_0 top.res.inst_29_a_0 top.res.inst_28_a_0 top.res.inst_27_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0) (__node_init_controller_0 top.usr.request_door_a_0 top.usr.warning_start_a_0 top.usr.in_station_a_0 top.usr.door_is_open_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0) (__node_init_properties_0 top.usr.door_is_open_a_0 top.usr.in_station_a_0 top.usr.request_door_a_0 top.usr.warning_start_a_0 top.res.abs_0_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.request_door_a_1 Bool) (top.usr.warning_start_a_1 Bool) (top.usr.in_station_a_1 Bool) (top.usr.door_is_open_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.open_door_a_1 Bool) (top.impl.usr.close_door_a_1 Bool) (top.impl.usr.door_ok_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.abs_4_a_1 Bool) (top.res.inst_36_a_1 Bool) (top.res.inst_35_a_1 Bool) (top.res.inst_34_a_1 Bool) (top.res.inst_33_a_1 Bool) (top.res.inst_32_a_1 Bool) (top.res.inst_31_a_1 Bool) (top.res.inst_30_a_1 Bool) (top.res.inst_29_a_1 Bool) (top.res.inst_28_a_1 Bool) (top.res.inst_27_a_1 Bool) (top.res.inst_26_a_1 Bool) (top.res.inst_25_a_1 Bool) (top.res.inst_24_a_1 Bool) (top.res.inst_23_a_1 Bool) (top.res.inst_22_a_1 Bool) (top.res.inst_21_a_1 Bool) (top.res.inst_20_a_1 Bool) (top.res.inst_19_a_1 Bool) (top.res.inst_18_a_1 Bool) (top.res.inst_17_a_1 Bool) (top.res.inst_16_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Bool) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Bool) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Bool) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.request_door_a_0 Bool) (top.usr.warning_start_a_0 Bool) (top.usr.in_station_a_0 Bool) (top.usr.door_is_open_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.open_door_a_0 Bool) (top.impl.usr.close_door_a_0 Bool) (top.impl.usr.door_ok_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.inst_36_a_0 Bool) (top.res.inst_35_a_0 Bool) (top.res.inst_34_a_0 Bool) (top.res.inst_33_a_0 Bool) (top.res.inst_32_a_0 Bool) (top.res.inst_31_a_0 Bool) (top.res.inst_30_a_0 Bool) (top.res.inst_29_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.close_door_a_1 top.res.abs_3_a_1) (= top.impl.usr.open_door_a_1 top.res.abs_2_a_1) (let ((X1 top.res.abs_0_a_1)) (let ((X2 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (=> X2 X1)) (= top.impl.usr.door_ok_a_1 top.res.abs_4_a_1) (__node_trans_environment_0 top.usr.door_is_open_a_1 top.impl.usr.open_door_a_1 top.impl.usr.close_door_a_1 top.usr.in_station_a_1 top.impl.usr.door_ok_a_1 top.usr.warning_start_a_1 top.res.abs_1_a_1 top.res.inst_36_a_1 top.res.inst_35_a_1 top.res.inst_34_a_1 top.res.inst_33_a_1 top.res.inst_32_a_1 top.res.inst_31_a_1 top.res.inst_30_a_1 top.res.inst_29_a_1 top.res.inst_28_a_1 top.res.inst_27_a_1 top.res.inst_26_a_1 top.res.inst_25_a_1 top.res.inst_24_a_1 top.res.inst_23_a_1 top.res.inst_22_a_1 top.res.inst_21_a_1 top.usr.door_is_open_a_0 top.impl.usr.open_door_a_0 top.impl.usr.close_door_a_0 top.usr.in_station_a_0 top.impl.usr.door_ok_a_0 top.usr.warning_start_a_0 top.res.abs_1_a_0 top.res.inst_36_a_0 top.res.inst_35_a_0 top.res.inst_34_a_0 top.res.inst_33_a_0 top.res.inst_32_a_0 top.res.inst_31_a_0 top.res.inst_30_a_0 top.res.inst_29_a_0 top.res.inst_28_a_0 top.res.inst_27_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0) (__node_trans_controller_0 top.usr.request_door_a_1 top.usr.warning_start_a_1 top.usr.in_station_a_1 top.usr.door_is_open_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.inst_20_a_1 top.res.inst_19_a_1 top.res.inst_18_a_1 top.res.inst_17_a_1 top.res.inst_16_a_1 top.usr.request_door_a_0 top.usr.warning_start_a_0 top.usr.in_station_a_0 top.usr.door_is_open_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0) (__node_trans_properties_0 top.usr.door_is_open_a_1 top.usr.in_station_a_1 top.usr.request_door_a_1 top.usr.warning_start_a_1 top.res.abs_0_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.res.inst_0_a_1 top.usr.door_is_open_a_0 top.usr.in_station_a_0 top.usr.request_door_a_0 top.usr.warning_start_a_0 top.res.abs_0_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.request_door Bool) (top.usr.warning_start Bool) (top.usr.in_station Bool) (top.usr.door_is_open Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.open_door Bool) (top.impl.usr.close_door Bool) (top.impl.usr.door_ok Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.request_door Bool) (top.usr.warning_start Bool) (top.usr.in_station Bool) (top.usr.door_is_open Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.open_door Bool) (top.impl.usr.close_door Bool) (top.impl.usr.door_ok Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.close_door top.res.abs_3) (= top.impl.usr.open_door top.res.abs_2) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (and (= top.usr.OK (=> X2 X1)) (= top.impl.usr.door_ok top.res.abs_4) (__node_init_environment_0 top.usr.door_is_open top.impl.usr.open_door top.impl.usr.close_door top.usr.in_station top.impl.usr.door_ok top.usr.warning_start top.res.abs_1 top.res.inst_36 top.res.inst_35 top.res.inst_34 top.res.inst_33 top.res.inst_32 top.res.inst_31 top.res.inst_30 top.res.inst_29 top.res.inst_28 top.res.inst_27 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21) (__node_init_controller_0 top.usr.request_door top.usr.warning_start top.usr.in_station top.usr.door_is_open top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16) (__node_init_properties_0 top.usr.door_is_open top.usr.in_station top.usr.request_door top.usr.warning_start top.res.abs_0 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.request_door Bool) (top.usr.warning_start Bool) (top.usr.in_station Bool) (top.usr.door_is_open Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.open_door Bool) (top.impl.usr.close_door Bool) (top.impl.usr.door_ok Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.request_door! Bool) (top.usr.warning_start! Bool) (top.usr.in_station! Bool) (top.usr.door_is_open! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.open_door! Bool) (top.impl.usr.close_door! Bool) (top.impl.usr.door_ok! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.abs_4! Bool) (top.res.inst_36! Bool) (top.res.inst_35! Bool) (top.res.inst_34! Bool) (top.res.inst_33! Bool) (top.res.inst_32! Bool) (top.res.inst_31! Bool) (top.res.inst_30! Bool) (top.res.inst_29! Bool) (top.res.inst_28! Bool) (top.res.inst_27! Bool) (top.res.inst_26! Bool) (top.res.inst_25! Bool) (top.res.inst_24! Bool) (top.res.inst_23! Bool) (top.res.inst_22! Bool) (top.res.inst_21! Bool) (top.res.inst_20! Bool) (top.res.inst_19! Bool) (top.res.inst_18! Bool) (top.res.inst_17! Bool) (top.res.inst_16! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Bool) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Bool) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Bool) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.close_door! top.res.abs_3!) (= top.impl.usr.open_door! top.res.abs_2!) (let ((X1 top.res.abs_0!)) (let ((X2 top.res.abs_1!)) (and (= top.usr.OK! (=> X2 X1)) (= top.impl.usr.door_ok! top.res.abs_4!) (__node_trans_environment_0 top.usr.door_is_open! top.impl.usr.open_door! top.impl.usr.close_door! top.usr.in_station! top.impl.usr.door_ok! top.usr.warning_start! top.res.abs_1! top.res.inst_36! top.res.inst_35! top.res.inst_34! top.res.inst_33! top.res.inst_32! top.res.inst_31! top.res.inst_30! top.res.inst_29! top.res.inst_28! top.res.inst_27! top.res.inst_26! top.res.inst_25! top.res.inst_24! top.res.inst_23! top.res.inst_22! top.res.inst_21! top.usr.door_is_open top.impl.usr.open_door top.impl.usr.close_door top.usr.in_station top.impl.usr.door_ok top.usr.warning_start top.res.abs_1 top.res.inst_36 top.res.inst_35 top.res.inst_34 top.res.inst_33 top.res.inst_32 top.res.inst_31 top.res.inst_30 top.res.inst_29 top.res.inst_28 top.res.inst_27 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21) (__node_trans_controller_0 top.usr.request_door! top.usr.warning_start! top.usr.in_station! top.usr.door_is_open! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.inst_20! top.res.inst_19! top.res.inst_18! top.res.inst_17! top.res.inst_16! top.usr.request_door top.usr.warning_start top.usr.in_station top.usr.door_is_open top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16) (__node_trans_properties_0 top.usr.door_is_open! top.usr.in_station! top.usr.request_door! top.usr.warning_start! top.res.abs_0! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.res.inst_0! top.usr.door_is_open top.usr.in_station top.usr.request_door top.usr.warning_start top.res.abs_0 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) (not top.res.init_flag!)))))) +(define-fun prop ((top.usr.request_door Bool) (top.usr.warning_start Bool) (top.usr.in_station Bool) (top.usr.door_is_open Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.open_door Bool) (top.impl.usr.close_door Bool) (top.impl.usr.door_ok Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/tramway_e7_1834.sl b/benchmarks/LIA/Lustre/tramway_e7_1834.sl index 1798887..995f703 100644 --- a/benchmarks/LIA/Lustre/tramway_e7_1834.sl +++ b/benchmarks/LIA/Lustre/tramway_e7_1834.sl @@ -1,1547 +1,47 @@ (set-logic LIA) -(define-fun - __node_init_switch_0 ( - (switch.usr.init_a_0 Bool) - (switch.usr.on_a_0 Bool) - (switch.usr.off_a_0 Bool) - (switch.usr.value_a_0 Bool) - (switch.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - switch.usr.value_a_0 - (ite switch.usr.on_a_0 true (ite switch.usr.off_a_0 false switch.usr.init_a_0))) - switch.res.init_flag_a_0) -) - -(define-fun - __node_trans_switch_0 ( - (switch.usr.init_a_1 Bool) - (switch.usr.on_a_1 Bool) - (switch.usr.off_a_1 Bool) - (switch.usr.value_a_1 Bool) - (switch.res.init_flag_a_1 Bool) - (switch.usr.init_a_0 Bool) - (switch.usr.on_a_0 Bool) - (switch.usr.off_a_0 Bool) - (switch.usr.value_a_0 Bool) - (switch.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - switch.usr.value_a_1 - (ite - switch.usr.on_a_1 - true - (ite switch.usr.off_a_1 false switch.usr.value_a_0))) - (not switch.res.init_flag_a_1)) -) - -(define-fun - __node_init_controller_0 ( - (controller.usr.request_door_a_0 Bool) - (controller.usr.warning_start_a_0 Bool) - (controller.usr.in_station_a_0 Bool) - (controller.usr.door_is_open_a_0 Bool) - (controller.usr.open_door_a_0 Bool) - (controller.usr.close_door_a_0 Bool) - (controller.usr.door_ok_a_0 Bool) - (controller.res.init_flag_a_0 Bool) - (controller.res.abs_0_a_0 Bool) - (controller.res.abs_1_a_0 Bool) - (controller.res.abs_2_a_0 Bool) - (controller.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - controller.res.abs_1_a_0 - (and controller.usr.request_door_a_0 (not controller.usr.warning_start_a_0))) - (= controller.res.abs_0_a_0 false) - (let - ((X1 Bool controller.res.abs_2_a_0)) - (and - (= controller.usr.open_door_a_0 (and X1 controller.usr.in_station_a_0)) - (= - controller.usr.close_door_a_0 - (and controller.usr.warning_start_a_0 controller.usr.door_is_open_a_0)) - (= - controller.usr.door_ok_a_0 - (and - (not controller.usr.door_is_open_a_0) - controller.usr.warning_start_a_0)) - (__node_init_switch_0 - controller.res.abs_0_a_0 - controller.res.abs_1_a_0 - controller.usr.door_is_open_a_0 - controller.res.abs_2_a_0 - controller.res.inst_0_a_0) - controller.res.init_flag_a_0))) -) - -(define-fun - __node_trans_controller_0 ( - (controller.usr.request_door_a_1 Bool) - (controller.usr.warning_start_a_1 Bool) - (controller.usr.in_station_a_1 Bool) - (controller.usr.door_is_open_a_1 Bool) - (controller.usr.open_door_a_1 Bool) - (controller.usr.close_door_a_1 Bool) - (controller.usr.door_ok_a_1 Bool) - (controller.res.init_flag_a_1 Bool) - (controller.res.abs_0_a_1 Bool) - (controller.res.abs_1_a_1 Bool) - (controller.res.abs_2_a_1 Bool) - (controller.res.inst_0_a_1 Bool) - (controller.usr.request_door_a_0 Bool) - (controller.usr.warning_start_a_0 Bool) - (controller.usr.in_station_a_0 Bool) - (controller.usr.door_is_open_a_0 Bool) - (controller.usr.open_door_a_0 Bool) - (controller.usr.close_door_a_0 Bool) - (controller.usr.door_ok_a_0 Bool) - (controller.res.init_flag_a_0 Bool) - (controller.res.abs_0_a_0 Bool) - (controller.res.abs_1_a_0 Bool) - (controller.res.abs_2_a_0 Bool) - (controller.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - controller.res.abs_1_a_1 - (and controller.usr.request_door_a_1 (not controller.usr.warning_start_a_1))) - (let - ((X1 Bool controller.res.abs_2_a_1)) - (and - (= controller.usr.open_door_a_1 (and X1 controller.usr.in_station_a_1)) - (= controller.res.abs_0_a_1 false) - (= - controller.usr.close_door_a_1 - (and controller.usr.warning_start_a_1 controller.usr.door_is_open_a_1)) - (= - controller.usr.door_ok_a_1 - (and - (not controller.usr.door_is_open_a_1) - controller.usr.warning_start_a_1)) - (__node_trans_switch_0 - controller.res.abs_0_a_1 - controller.res.abs_1_a_1 - controller.usr.door_is_open_a_1 - controller.res.abs_2_a_1 - controller.res.inst_0_a_1 - controller.res.abs_0_a_0 - controller.res.abs_1_a_0 - controller.usr.door_is_open_a_0 - controller.res.abs_2_a_0 - controller.res.inst_0_a_0) - (not controller.res.init_flag_a_1)))) -) - -(define-fun - __node_init_edge_0 ( - (edge.usr.X_a_0 Bool) - (edge.usr.edge_a_0 Bool) - (edge.res.init_flag_a_0 Bool) - ) Bool - - (and (= edge.usr.edge_a_0 false) edge.res.init_flag_a_0) -) - -(define-fun - __node_trans_edge_0 ( - (edge.usr.X_a_1 Bool) - (edge.usr.edge_a_1 Bool) - (edge.res.init_flag_a_1 Bool) - (edge.usr.X_a_0 Bool) - (edge.usr.edge_a_0 Bool) - (edge.res.init_flag_a_0 Bool) - ) Bool - - (and - (= edge.usr.edge_a_1 (or edge.usr.X_a_1 (not edge.usr.X_a_0))) - (not edge.res.init_flag_a_1)) -) - -(define-fun - __node_init_jafter_0 ( - (jafter.usr.X_a_0 Bool) - (jafter.usr.after_a_0 Bool) - (jafter.res.init_flag_a_0 Bool) - ) Bool - - (and (= jafter.usr.after_a_0 false) jafter.res.init_flag_a_0) -) - -(define-fun - __node_trans_jafter_0 ( - (jafter.usr.X_a_1 Bool) - (jafter.usr.after_a_1 Bool) - (jafter.res.init_flag_a_1 Bool) - (jafter.usr.X_a_0 Bool) - (jafter.usr.after_a_0 Bool) - (jafter.res.init_flag_a_0 Bool) - ) Bool - - (and (= jafter.usr.after_a_1 jafter.usr.X_a_0) (not jafter.res.init_flag_a_1)) -) - -(define-fun - __node_init_once_from_to_0 ( - (once_from_to.usr.A_a_0 Bool) - (once_from_to.usr.B_a_0 Bool) - (once_from_to.usr.X_a_0 Bool) - (once_from_to.usr.OK_a_0 Bool) - (once_from_to.res.init_flag_a_0 Bool) - (once_from_to.res.abs_0_a_0 Bool) - (once_from_to.res.abs_1_a_0 Bool) - (once_from_to.res.abs_2_a_0 Bool) - (once_from_to.res.inst_1_a_0 Bool) - (once_from_to.res.inst_0_a_0 Bool) - ) Bool - - (and - (= once_from_to.res.abs_1_a_0 false) - (let - ((X1 Bool once_from_to.res.abs_2_a_0)) - (and - (= once_from_to.usr.OK_a_0 (not (and X1 once_from_to.usr.B_a_0))) - (__node_init_switch_0 - once_from_to.res.abs_1_a_0 - once_from_to.usr.A_a_0 - once_from_to.res.abs_0_a_0 - once_from_to.res.abs_2_a_0 - once_from_to.res.inst_1_a_0) - (__node_init_jafter_0 - once_from_to.usr.X_a_0 - once_from_to.res.abs_0_a_0 - once_from_to.res.inst_0_a_0) - once_from_to.res.init_flag_a_0))) -) - -(define-fun - __node_trans_once_from_to_0 ( - (once_from_to.usr.A_a_1 Bool) - (once_from_to.usr.B_a_1 Bool) - (once_from_to.usr.X_a_1 Bool) - (once_from_to.usr.OK_a_1 Bool) - (once_from_to.res.init_flag_a_1 Bool) - (once_from_to.res.abs_0_a_1 Bool) - (once_from_to.res.abs_1_a_1 Bool) - (once_from_to.res.abs_2_a_1 Bool) - (once_from_to.res.inst_1_a_1 Bool) - (once_from_to.res.inst_0_a_1 Bool) - (once_from_to.usr.A_a_0 Bool) - (once_from_to.usr.B_a_0 Bool) - (once_from_to.usr.X_a_0 Bool) - (once_from_to.usr.OK_a_0 Bool) - (once_from_to.res.init_flag_a_0 Bool) - (once_from_to.res.abs_0_a_0 Bool) - (once_from_to.res.abs_1_a_0 Bool) - (once_from_to.res.abs_2_a_0 Bool) - (once_from_to.res.inst_1_a_0 Bool) - (once_from_to.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool once_from_to.res.abs_2_a_1)) - (and - (= once_from_to.usr.OK_a_1 (not (and X1 once_from_to.usr.B_a_1))) - (= once_from_to.res.abs_1_a_1 false) - (__node_trans_switch_0 - once_from_to.res.abs_1_a_1 - once_from_to.usr.A_a_1 - once_from_to.res.abs_0_a_1 - once_from_to.res.abs_2_a_1 - once_from_to.res.inst_1_a_1 - once_from_to.res.abs_1_a_0 - once_from_to.usr.A_a_0 - once_from_to.res.abs_0_a_0 - once_from_to.res.abs_2_a_0 - once_from_to.res.inst_1_a_0) - (__node_trans_jafter_0 - once_from_to.usr.X_a_1 - once_from_to.res.abs_0_a_1 - once_from_to.res.inst_0_a_1 - once_from_to.usr.X_a_0 - once_from_to.res.abs_0_a_0 - once_from_to.res.inst_0_a_0) - (not once_from_to.res.init_flag_a_1))) -) - -(define-fun - __node_init_properties_0 ( - (properties.usr.door_is_open_a_0 Bool) - (properties.usr.in_station_a_0 Bool) - (properties.usr.request_door_a_0 Bool) - (properties.usr.warning_start_a_0 Bool) - (properties.usr.OK_a_0 Bool) - (properties.res.init_flag_a_0 Bool) - (properties.res.abs_0_a_0 Bool) - (properties.res.abs_1_a_0 Bool) - (properties.res.abs_2_a_0 Bool) - (properties.res.abs_3_a_0 Bool) - (properties.res.abs_4_a_0 Bool) - (properties.res.abs_5_a_0 Bool) - (properties.res.inst_8_a_0 Bool) - (properties.res.inst_7_a_0 Bool) - (properties.res.inst_6_a_0 Bool) - (properties.res.inst_5_a_0 Bool) - (properties.res.inst_4_a_0 Bool) - (properties.res.inst_3_a_0 Bool) - (properties.res.inst_2_a_0 Bool) - (properties.res.inst_1_a_0 Bool) - (properties.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool properties.res.abs_5_a_0)) - (let - ((X2 Bool (=> properties.usr.door_is_open_a_0 properties.usr.in_station_a_0))) - (and - (= properties.usr.OK_a_0 (and X2 X1)) - (= - properties.res.abs_0_a_0 - (and - properties.usr.request_door_a_0 - (not properties.usr.warning_start_a_0))) - (= properties.res.abs_2_a_0 (not properties.usr.in_station_a_0)) - (__node_init_once_from_to_0 - properties.res.abs_1_a_0 - properties.res.abs_3_a_0 - properties.res.abs_4_a_0 - properties.res.abs_5_a_0 - properties.res.inst_8_a_0 - properties.res.inst_7_a_0 - properties.res.inst_6_a_0 - properties.res.inst_5_a_0 - properties.res.inst_4_a_0 - properties.res.inst_3_a_0) - (__node_init_jafter_0 - properties.res.abs_0_a_0 - properties.res.abs_1_a_0 - properties.res.inst_2_a_0) - (__node_init_edge_0 - properties.res.abs_2_a_0 - properties.res.abs_3_a_0 - properties.res.inst_1_a_0) - (__node_init_jafter_0 - properties.usr.door_is_open_a_0 - properties.res.abs_4_a_0 - properties.res.inst_0_a_0) - properties.res.init_flag_a_0))) -) - -(define-fun - __node_trans_properties_0 ( - (properties.usr.door_is_open_a_1 Bool) - (properties.usr.in_station_a_1 Bool) - (properties.usr.request_door_a_1 Bool) - (properties.usr.warning_start_a_1 Bool) - (properties.usr.OK_a_1 Bool) - (properties.res.init_flag_a_1 Bool) - (properties.res.abs_0_a_1 Bool) - (properties.res.abs_1_a_1 Bool) - (properties.res.abs_2_a_1 Bool) - (properties.res.abs_3_a_1 Bool) - (properties.res.abs_4_a_1 Bool) - (properties.res.abs_5_a_1 Bool) - (properties.res.inst_8_a_1 Bool) - (properties.res.inst_7_a_1 Bool) - (properties.res.inst_6_a_1 Bool) - (properties.res.inst_5_a_1 Bool) - (properties.res.inst_4_a_1 Bool) - (properties.res.inst_3_a_1 Bool) - (properties.res.inst_2_a_1 Bool) - (properties.res.inst_1_a_1 Bool) - (properties.res.inst_0_a_1 Bool) - (properties.usr.door_is_open_a_0 Bool) - (properties.usr.in_station_a_0 Bool) - (properties.usr.request_door_a_0 Bool) - (properties.usr.warning_start_a_0 Bool) - (properties.usr.OK_a_0 Bool) - (properties.res.init_flag_a_0 Bool) - (properties.res.abs_0_a_0 Bool) - (properties.res.abs_1_a_0 Bool) - (properties.res.abs_2_a_0 Bool) - (properties.res.abs_3_a_0 Bool) - (properties.res.abs_4_a_0 Bool) - (properties.res.abs_5_a_0 Bool) - (properties.res.inst_8_a_0 Bool) - (properties.res.inst_7_a_0 Bool) - (properties.res.inst_6_a_0 Bool) - (properties.res.inst_5_a_0 Bool) - (properties.res.inst_4_a_0 Bool) - (properties.res.inst_3_a_0 Bool) - (properties.res.inst_2_a_0 Bool) - (properties.res.inst_1_a_0 Bool) - (properties.res.inst_0_a_0 Bool) - ) Bool - - (and - (= properties.res.abs_2_a_1 (not properties.usr.in_station_a_1)) - (let - ((X1 Bool properties.res.abs_5_a_1)) - (let - ((X2 - Bool (=> properties.usr.door_is_open_a_1 properties.usr.in_station_a_1))) - (and - (= properties.usr.OK_a_1 (and X2 X1)) - (= - properties.res.abs_0_a_1 - (and - properties.usr.request_door_a_1 - (not properties.usr.warning_start_a_1))) - (__node_trans_once_from_to_0 - properties.res.abs_1_a_1 - properties.res.abs_3_a_1 - properties.res.abs_4_a_1 - properties.res.abs_5_a_1 - properties.res.inst_8_a_1 - properties.res.inst_7_a_1 - properties.res.inst_6_a_1 - properties.res.inst_5_a_1 - properties.res.inst_4_a_1 - properties.res.inst_3_a_1 - properties.res.abs_1_a_0 - properties.res.abs_3_a_0 - properties.res.abs_4_a_0 - properties.res.abs_5_a_0 - properties.res.inst_8_a_0 - properties.res.inst_7_a_0 - properties.res.inst_6_a_0 - properties.res.inst_5_a_0 - properties.res.inst_4_a_0 - properties.res.inst_3_a_0) - (__node_trans_jafter_0 - properties.res.abs_0_a_1 - properties.res.abs_1_a_1 - properties.res.inst_2_a_1 - properties.res.abs_0_a_0 - properties.res.abs_1_a_0 - properties.res.inst_2_a_0) - (__node_trans_edge_0 - properties.res.abs_2_a_1 - properties.res.abs_3_a_1 - properties.res.inst_1_a_1 - properties.res.abs_2_a_0 - properties.res.abs_3_a_0 - properties.res.inst_1_a_0) - (__node_trans_jafter_0 - properties.usr.door_is_open_a_1 - properties.res.abs_4_a_1 - properties.res.inst_0_a_1 - properties.usr.door_is_open_a_0 - properties.res.abs_4_a_0 - properties.res.inst_0_a_0) - (not properties.res.init_flag_a_1))))) -) - -(define-fun - __node_init_environment_0 ( - (environment.usr.door_is_open_a_0 Bool) - (environment.usr.open_door_a_0 Bool) - (environment.usr.close_door_a_0 Bool) - (environment.usr.in_station_a_0 Bool) - (environment.usr.door_ok_a_0 Bool) - (environment.usr.warning_start_a_0 Bool) - (environment.usr.env_always_ok_a_0 Bool) - (environment.res.init_flag_a_0 Bool) - (environment.res.abs_0_a_0 Bool) - (environment.res.abs_1_a_0 Bool) - (environment.res.abs_2_a_0 Bool) - (environment.res.abs_3_a_0 Bool) - (environment.res.abs_4_a_0 Bool) - (environment.res.abs_5_a_0 Bool) - (environment.res.abs_6_a_0 Bool) - (environment.res.abs_7_a_0 Bool) - (environment.res.abs_8_a_0 Bool) - (environment.res.inst_5_a_0 Bool) - (environment.res.inst_4_a_0 Bool) - (environment.res.inst_3_a_0 Bool) - (environment.res.inst_2_a_0 Bool) - (environment.res.inst_1_a_0 Bool) - (environment.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool (=> environment.res.abs_8_a_0 (not environment.usr.open_door_a_0)))) - (let - ((X2 - Bool (=> environment.usr.warning_start_a_0 environment.usr.in_station_a_0))) - (let - ((X3 Bool (= environment.res.abs_4_a_0 environment.res.abs_7_a_0))) - (let - ((X4 Bool (not environment.usr.in_station_a_0))) - (let - ((X5 Bool (not environment.usr.door_is_open_a_0))) - (let - ((X6 Bool (=> environment.res.abs_4_a_0 environment.res.abs_5_a_0))) - (let - ((X7 Bool (=> environment.res.abs_2_a_0 environment.usr.close_door_a_0))) - (let - ((X8 Bool (=> environment.res.abs_0_a_0 environment.usr.open_door_a_0))) - (let - ((X9 - Bool (and - (and (and (and (and (and (and X7 X8) X6) X5) X4) X3) X2) - X1))) - (and - (= environment.usr.env_always_ok_a_0 X9) - (= environment.res.abs_1_a_0 (not environment.usr.door_is_open_a_0)) - (= environment.res.abs_3_a_0 (not environment.usr.in_station_a_0)) - (= environment.res.abs_6_a_0 (not environment.usr.warning_start_a_0)) - (__node_init_edge_0 - environment.usr.door_is_open_a_0 - environment.res.abs_0_a_0 - environment.res.inst_5_a_0) - (__node_init_edge_0 - environment.res.abs_1_a_0 - environment.res.abs_2_a_0 - environment.res.inst_4_a_0) - (__node_init_edge_0 - environment.res.abs_3_a_0 - environment.res.abs_4_a_0 - environment.res.inst_3_a_0) - (__node_init_jafter_0 - environment.usr.door_ok_a_0 - environment.res.abs_5_a_0 - environment.res.inst_2_a_0) - (__node_init_edge_0 - environment.res.abs_6_a_0 - environment.res.abs_7_a_0 - environment.res.inst_1_a_0) - (__node_init_edge_0 - environment.usr.warning_start_a_0 - environment.res.abs_8_a_0 - environment.res.inst_0_a_0) - environment.res.init_flag_a_0)))))))))) -) - -(define-fun - __node_trans_environment_0 ( - (environment.usr.door_is_open_a_1 Bool) - (environment.usr.open_door_a_1 Bool) - (environment.usr.close_door_a_1 Bool) - (environment.usr.in_station_a_1 Bool) - (environment.usr.door_ok_a_1 Bool) - (environment.usr.warning_start_a_1 Bool) - (environment.usr.env_always_ok_a_1 Bool) - (environment.res.init_flag_a_1 Bool) - (environment.res.abs_0_a_1 Bool) - (environment.res.abs_1_a_1 Bool) - (environment.res.abs_2_a_1 Bool) - (environment.res.abs_3_a_1 Bool) - (environment.res.abs_4_a_1 Bool) - (environment.res.abs_5_a_1 Bool) - (environment.res.abs_6_a_1 Bool) - (environment.res.abs_7_a_1 Bool) - (environment.res.abs_8_a_1 Bool) - (environment.res.inst_5_a_1 Bool) - (environment.res.inst_4_a_1 Bool) - (environment.res.inst_3_a_1 Bool) - (environment.res.inst_2_a_1 Bool) - (environment.res.inst_1_a_1 Bool) - (environment.res.inst_0_a_1 Bool) - (environment.usr.door_is_open_a_0 Bool) - (environment.usr.open_door_a_0 Bool) - (environment.usr.close_door_a_0 Bool) - (environment.usr.in_station_a_0 Bool) - (environment.usr.door_ok_a_0 Bool) - (environment.usr.warning_start_a_0 Bool) - (environment.usr.env_always_ok_a_0 Bool) - (environment.res.init_flag_a_0 Bool) - (environment.res.abs_0_a_0 Bool) - (environment.res.abs_1_a_0 Bool) - (environment.res.abs_2_a_0 Bool) - (environment.res.abs_3_a_0 Bool) - (environment.res.abs_4_a_0 Bool) - (environment.res.abs_5_a_0 Bool) - (environment.res.abs_6_a_0 Bool) - (environment.res.abs_7_a_0 Bool) - (environment.res.abs_8_a_0 Bool) - (environment.res.inst_5_a_0 Bool) - (environment.res.inst_4_a_0 Bool) - (environment.res.inst_3_a_0 Bool) - (environment.res.inst_2_a_0 Bool) - (environment.res.inst_1_a_0 Bool) - (environment.res.inst_0_a_0 Bool) - ) Bool - - (and - (= environment.res.abs_6_a_1 (not environment.usr.warning_start_a_1)) - (= environment.res.abs_3_a_1 (not environment.usr.in_station_a_1)) - (= environment.res.abs_1_a_1 (not environment.usr.door_is_open_a_1)) - (let - ((X1 Bool (=> environment.res.abs_8_a_1 (not environment.usr.open_door_a_1)))) - (let - ((X2 - Bool (=> environment.usr.warning_start_a_1 environment.usr.in_station_a_1))) - (let - ((X3 Bool (= environment.res.abs_4_a_1 environment.res.abs_7_a_1))) - (let - ((X4 Bool true)) - (let - ((X5 Bool true)) - (let - ((X6 Bool (=> environment.res.abs_4_a_1 environment.res.abs_5_a_1))) - (let - ((X7 - Bool (=> environment.res.abs_2_a_1 environment.usr.close_door_a_1))) - (let - ((X8 - Bool (=> environment.res.abs_0_a_1 environment.usr.open_door_a_1))) - (let - ((X9 - Bool (and - (and (and (and (and (and (and X7 X8) X6) X5) X4) X3) X2) - X1))) - (and - (= - environment.usr.env_always_ok_a_1 - (and X9 environment.usr.env_always_ok_a_0)) - (__node_trans_edge_0 - environment.usr.door_is_open_a_1 - environment.res.abs_0_a_1 - environment.res.inst_5_a_1 - environment.usr.door_is_open_a_0 - environment.res.abs_0_a_0 - environment.res.inst_5_a_0) - (__node_trans_edge_0 - environment.res.abs_1_a_1 - environment.res.abs_2_a_1 - environment.res.inst_4_a_1 - environment.res.abs_1_a_0 - environment.res.abs_2_a_0 - environment.res.inst_4_a_0) - (__node_trans_edge_0 - environment.res.abs_3_a_1 - environment.res.abs_4_a_1 - environment.res.inst_3_a_1 - environment.res.abs_3_a_0 - environment.res.abs_4_a_0 - environment.res.inst_3_a_0) - (__node_trans_jafter_0 - environment.usr.door_ok_a_1 - environment.res.abs_5_a_1 - environment.res.inst_2_a_1 - environment.usr.door_ok_a_0 - environment.res.abs_5_a_0 - environment.res.inst_2_a_0) - (__node_trans_edge_0 - environment.res.abs_6_a_1 - environment.res.abs_7_a_1 - environment.res.inst_1_a_1 - environment.res.abs_6_a_0 - environment.res.abs_7_a_0 - environment.res.inst_1_a_0) - (__node_trans_edge_0 - environment.usr.warning_start_a_1 - environment.res.abs_8_a_1 - environment.res.inst_0_a_1 - environment.usr.warning_start_a_0 - environment.res.abs_8_a_0 - environment.res.inst_0_a_0) - (not environment.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.request_door_a_0 Bool) - (top.usr.warning_start_a_0 Bool) - (top.usr.in_station_a_0 Bool) - (top.usr.door_is_open_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.open_door_a_0 Bool) - (top.impl.usr.close_door_a_0 Bool) - (top.impl.usr.door_ok_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.inst_36_a_0 Bool) - (top.res.inst_35_a_0 Bool) - (top.res.inst_34_a_0 Bool) - (top.res.inst_33_a_0 Bool) - (top.res.inst_32_a_0 Bool) - (top.res.inst_31_a_0 Bool) - (top.res.inst_30_a_0 Bool) - (top.res.inst_29_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Bool) - (top.res.inst_23_a_0 Bool) - (top.res.inst_22_a_0 Bool) - (top.res.inst_21_a_0 Bool) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.close_door_a_0 top.res.abs_3_a_0) - (= top.impl.usr.open_door_a_0 top.res.abs_2_a_0) - (let - ((X1 Bool top.res.abs_0_a_0)) - (let - ((X2 Bool top.res.abs_1_a_0)) - (and - (= top.usr.OK_a_0 (=> X2 X1)) - (= top.impl.usr.door_ok_a_0 top.res.abs_4_a_0) - (__node_init_environment_0 - top.usr.door_is_open_a_0 - top.impl.usr.open_door_a_0 - top.impl.usr.close_door_a_0 - top.usr.in_station_a_0 - top.impl.usr.door_ok_a_0 - top.usr.warning_start_a_0 - top.res.abs_1_a_0 - top.res.inst_36_a_0 - top.res.inst_35_a_0 - top.res.inst_34_a_0 - top.res.inst_33_a_0 - top.res.inst_32_a_0 - top.res.inst_31_a_0 - top.res.inst_30_a_0 - top.res.inst_29_a_0 - top.res.inst_28_a_0 - top.res.inst_27_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0) - (__node_init_controller_0 - top.usr.request_door_a_0 - top.usr.warning_start_a_0 - top.usr.in_station_a_0 - top.usr.door_is_open_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0) - (__node_init_properties_0 - top.usr.door_is_open_a_0 - top.usr.in_station_a_0 - top.usr.request_door_a_0 - top.usr.warning_start_a_0 - top.res.abs_0_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.request_door_a_1 Bool) - (top.usr.warning_start_a_1 Bool) - (top.usr.in_station_a_1 Bool) - (top.usr.door_is_open_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.open_door_a_1 Bool) - (top.impl.usr.close_door_a_1 Bool) - (top.impl.usr.door_ok_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.abs_4_a_1 Bool) - (top.res.inst_36_a_1 Bool) - (top.res.inst_35_a_1 Bool) - (top.res.inst_34_a_1 Bool) - (top.res.inst_33_a_1 Bool) - (top.res.inst_32_a_1 Bool) - (top.res.inst_31_a_1 Bool) - (top.res.inst_30_a_1 Bool) - (top.res.inst_29_a_1 Bool) - (top.res.inst_28_a_1 Bool) - (top.res.inst_27_a_1 Bool) - (top.res.inst_26_a_1 Bool) - (top.res.inst_25_a_1 Bool) - (top.res.inst_24_a_1 Bool) - (top.res.inst_23_a_1 Bool) - (top.res.inst_22_a_1 Bool) - (top.res.inst_21_a_1 Bool) - (top.res.inst_20_a_1 Bool) - (top.res.inst_19_a_1 Bool) - (top.res.inst_18_a_1 Bool) - (top.res.inst_17_a_1 Bool) - (top.res.inst_16_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Bool) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Bool) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Bool) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.request_door_a_0 Bool) - (top.usr.warning_start_a_0 Bool) - (top.usr.in_station_a_0 Bool) - (top.usr.door_is_open_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.open_door_a_0 Bool) - (top.impl.usr.close_door_a_0 Bool) - (top.impl.usr.door_ok_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.inst_36_a_0 Bool) - (top.res.inst_35_a_0 Bool) - (top.res.inst_34_a_0 Bool) - (top.res.inst_33_a_0 Bool) - (top.res.inst_32_a_0 Bool) - (top.res.inst_31_a_0 Bool) - (top.res.inst_30_a_0 Bool) - (top.res.inst_29_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Bool) - (top.res.inst_23_a_0 Bool) - (top.res.inst_22_a_0 Bool) - (top.res.inst_21_a_0 Bool) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.close_door_a_1 top.res.abs_3_a_1) - (= top.impl.usr.open_door_a_1 top.res.abs_2_a_1) - (let - ((X1 Bool top.res.abs_0_a_1)) - (let - ((X2 Bool top.res.abs_1_a_1)) - (and - (= top.usr.OK_a_1 (=> X2 X1)) - (= top.impl.usr.door_ok_a_1 top.res.abs_4_a_1) - (__node_trans_environment_0 - top.usr.door_is_open_a_1 - top.impl.usr.open_door_a_1 - top.impl.usr.close_door_a_1 - top.usr.in_station_a_1 - top.impl.usr.door_ok_a_1 - top.usr.warning_start_a_1 - top.res.abs_1_a_1 - top.res.inst_36_a_1 - top.res.inst_35_a_1 - top.res.inst_34_a_1 - top.res.inst_33_a_1 - top.res.inst_32_a_1 - top.res.inst_31_a_1 - top.res.inst_30_a_1 - top.res.inst_29_a_1 - top.res.inst_28_a_1 - top.res.inst_27_a_1 - top.res.inst_26_a_1 - top.res.inst_25_a_1 - top.res.inst_24_a_1 - top.res.inst_23_a_1 - top.res.inst_22_a_1 - top.res.inst_21_a_1 - top.usr.door_is_open_a_0 - top.impl.usr.open_door_a_0 - top.impl.usr.close_door_a_0 - top.usr.in_station_a_0 - top.impl.usr.door_ok_a_0 - top.usr.warning_start_a_0 - top.res.abs_1_a_0 - top.res.inst_36_a_0 - top.res.inst_35_a_0 - top.res.inst_34_a_0 - top.res.inst_33_a_0 - top.res.inst_32_a_0 - top.res.inst_31_a_0 - top.res.inst_30_a_0 - top.res.inst_29_a_0 - top.res.inst_28_a_0 - top.res.inst_27_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0) - (__node_trans_controller_0 - top.usr.request_door_a_1 - top.usr.warning_start_a_1 - top.usr.in_station_a_1 - top.usr.door_is_open_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.inst_20_a_1 - top.res.inst_19_a_1 - top.res.inst_18_a_1 - top.res.inst_17_a_1 - top.res.inst_16_a_1 - top.usr.request_door_a_0 - top.usr.warning_start_a_0 - top.usr.in_station_a_0 - top.usr.door_is_open_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0) - (__node_trans_properties_0 - top.usr.door_is_open_a_1 - top.usr.in_station_a_1 - top.usr.request_door_a_1 - top.usr.warning_start_a_1 - top.res.abs_0_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.res.inst_0_a_1 - top.usr.door_is_open_a_0 - top.usr.in_station_a_0 - top.usr.request_door_a_0 - top.usr.warning_start_a_0 - top.res.abs_0_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.request_door Bool) - (top.usr.warning_start Bool) - (top.usr.in_station Bool) - (top.usr.door_is_open Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.open_door Bool) - (top.impl.usr.close_door Bool) - (top.impl.usr.door_ok Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.request_door Bool) -(declare-primed-var top.usr.warning_start Bool) -(declare-primed-var top.usr.in_station Bool) -(declare-primed-var top.usr.door_is_open Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.open_door Bool) -(declare-primed-var top.impl.usr.close_door Bool) -(declare-primed-var top.impl.usr.door_ok Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.inst_36 Bool) -(declare-primed-var top.res.inst_35 Bool) -(declare-primed-var top.res.inst_34 Bool) -(declare-primed-var top.res.inst_33 Bool) -(declare-primed-var top.res.inst_32 Bool) -(declare-primed-var top.res.inst_31 Bool) -(declare-primed-var top.res.inst_30 Bool) -(declare-primed-var top.res.inst_29 Bool) -(declare-primed-var top.res.inst_28 Bool) -(declare-primed-var top.res.inst_27 Bool) -(declare-primed-var top.res.inst_26 Bool) -(declare-primed-var top.res.inst_25 Bool) -(declare-primed-var top.res.inst_24 Bool) -(declare-primed-var top.res.inst_23 Bool) -(declare-primed-var top.res.inst_22 Bool) -(declare-primed-var top.res.inst_21 Bool) -(declare-primed-var top.res.inst_20 Bool) -(declare-primed-var top.res.inst_19 Bool) -(declare-primed-var top.res.inst_18 Bool) -(declare-primed-var top.res.inst_17 Bool) -(declare-primed-var top.res.inst_16 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Bool) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Bool) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Bool) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.request_door Bool) - (top.usr.warning_start Bool) - (top.usr.in_station Bool) - (top.usr.door_is_open Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.open_door Bool) - (top.impl.usr.close_door Bool) - (top.impl.usr.door_ok Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.impl.usr.close_door top.res.abs_3) - (= top.impl.usr.open_door top.res.abs_2) - (let - ((X1 Bool top.res.abs_0)) - (let - ((X2 Bool top.res.abs_1)) - (and - (= top.usr.OK (=> X2 X1)) - (= top.impl.usr.door_ok top.res.abs_4) - (__node_init_environment_0 - top.usr.door_is_open - top.impl.usr.open_door - top.impl.usr.close_door - top.usr.in_station - top.impl.usr.door_ok - top.usr.warning_start - top.res.abs_1 - top.res.inst_36 - top.res.inst_35 - top.res.inst_34 - top.res.inst_33 - top.res.inst_32 - top.res.inst_31 - top.res.inst_30 - top.res.inst_29 - top.res.inst_28 - top.res.inst_27 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21) - (__node_init_controller_0 - top.usr.request_door - top.usr.warning_start - top.usr.in_station - top.usr.door_is_open - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16) - (__node_init_properties_0 - top.usr.door_is_open - top.usr.in_station - top.usr.request_door - top.usr.warning_start - top.res.abs_0 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.request_door Bool) - (top.usr.warning_start Bool) - (top.usr.in_station Bool) - (top.usr.door_is_open Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.open_door Bool) - (top.impl.usr.close_door Bool) - (top.impl.usr.door_ok Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.request_door! Bool) - (top.usr.warning_start! Bool) - (top.usr.in_station! Bool) - (top.usr.door_is_open! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.open_door! Bool) - (top.impl.usr.close_door! Bool) - (top.impl.usr.door_ok! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.abs_4! Bool) - (top.res.inst_36! Bool) - (top.res.inst_35! Bool) - (top.res.inst_34! Bool) - (top.res.inst_33! Bool) - (top.res.inst_32! Bool) - (top.res.inst_31! Bool) - (top.res.inst_30! Bool) - (top.res.inst_29! Bool) - (top.res.inst_28! Bool) - (top.res.inst_27! Bool) - (top.res.inst_26! Bool) - (top.res.inst_25! Bool) - (top.res.inst_24! Bool) - (top.res.inst_23! Bool) - (top.res.inst_22! Bool) - (top.res.inst_21! Bool) - (top.res.inst_20! Bool) - (top.res.inst_19! Bool) - (top.res.inst_18! Bool) - (top.res.inst_17! Bool) - (top.res.inst_16! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Bool) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Bool) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Bool) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.impl.usr.close_door! top.res.abs_3!) - (= top.impl.usr.open_door! top.res.abs_2!) - (let - ((X1 Bool top.res.abs_0!)) - (let - ((X2 Bool top.res.abs_1!)) - (and - (= top.usr.OK! (=> X2 X1)) - (= top.impl.usr.door_ok! top.res.abs_4!) - (__node_trans_environment_0 - top.usr.door_is_open! - top.impl.usr.open_door! - top.impl.usr.close_door! - top.usr.in_station! - top.impl.usr.door_ok! - top.usr.warning_start! - top.res.abs_1! - top.res.inst_36! - top.res.inst_35! - top.res.inst_34! - top.res.inst_33! - top.res.inst_32! - top.res.inst_31! - top.res.inst_30! - top.res.inst_29! - top.res.inst_28! - top.res.inst_27! - top.res.inst_26! - top.res.inst_25! - top.res.inst_24! - top.res.inst_23! - top.res.inst_22! - top.res.inst_21! - top.usr.door_is_open - top.impl.usr.open_door - top.impl.usr.close_door - top.usr.in_station - top.impl.usr.door_ok - top.usr.warning_start - top.res.abs_1 - top.res.inst_36 - top.res.inst_35 - top.res.inst_34 - top.res.inst_33 - top.res.inst_32 - top.res.inst_31 - top.res.inst_30 - top.res.inst_29 - top.res.inst_28 - top.res.inst_27 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21) - (__node_trans_controller_0 - top.usr.request_door! - top.usr.warning_start! - top.usr.in_station! - top.usr.door_is_open! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.inst_20! - top.res.inst_19! - top.res.inst_18! - top.res.inst_17! - top.res.inst_16! - top.usr.request_door - top.usr.warning_start - top.usr.in_station - top.usr.door_is_open - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16) - (__node_trans_properties_0 - top.usr.door_is_open! - top.usr.in_station! - top.usr.request_door! - top.usr.warning_start! - top.res.abs_0! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.res.inst_0! - top.usr.door_is_open - top.usr.in_station - top.usr.request_door - top.usr.warning_start - top.res.abs_0 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - (not top.res.init_flag!))))) -) - -(define-fun - prop ( - (top.usr.request_door Bool) - (top.usr.warning_start Bool) - (top.usr.in_station Bool) - (top.usr.door_is_open Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.open_door Bool) - (top.impl.usr.close_door Bool) - (top.impl.usr.door_ok Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_switch_0 ((switch.usr.init_a_0 Bool) (switch.usr.on_a_0 Bool) (switch.usr.off_a_0 Bool) (switch.usr.value_a_0 Bool) (switch.res.init_flag_a_0 Bool)) Bool + (and (= switch.usr.value_a_0 (ite switch.usr.on_a_0 true (ite switch.usr.off_a_0 false switch.usr.init_a_0))) switch.res.init_flag_a_0)) +(define-fun __node_trans_switch_0 ((switch.usr.init_a_1 Bool) (switch.usr.on_a_1 Bool) (switch.usr.off_a_1 Bool) (switch.usr.value_a_1 Bool) (switch.res.init_flag_a_1 Bool) (switch.usr.init_a_0 Bool) (switch.usr.on_a_0 Bool) (switch.usr.off_a_0 Bool) (switch.usr.value_a_0 Bool) (switch.res.init_flag_a_0 Bool)) Bool + (and (= switch.usr.value_a_1 (ite switch.usr.on_a_1 true (ite switch.usr.off_a_1 false switch.usr.value_a_0))) (not switch.res.init_flag_a_1))) +(define-fun __node_init_controller_0 ((controller.usr.request_door_a_0 Bool) (controller.usr.warning_start_a_0 Bool) (controller.usr.in_station_a_0 Bool) (controller.usr.door_is_open_a_0 Bool) (controller.usr.open_door_a_0 Bool) (controller.usr.close_door_a_0 Bool) (controller.usr.door_ok_a_0 Bool) (controller.res.init_flag_a_0 Bool) (controller.res.abs_0_a_0 Bool) (controller.res.abs_1_a_0 Bool) (controller.res.abs_2_a_0 Bool) (controller.res.inst_0_a_0 Bool)) Bool + (and (= controller.res.abs_1_a_0 (and controller.usr.request_door_a_0 (not controller.usr.warning_start_a_0))) (= controller.res.abs_0_a_0 false) (let ((X1 controller.res.abs_2_a_0)) (and (= controller.usr.open_door_a_0 (and X1 controller.usr.in_station_a_0)) (= controller.usr.close_door_a_0 (and controller.usr.warning_start_a_0 controller.usr.door_is_open_a_0)) (= controller.usr.door_ok_a_0 (and (not controller.usr.door_is_open_a_0) controller.usr.warning_start_a_0)) (__node_init_switch_0 controller.res.abs_0_a_0 controller.res.abs_1_a_0 controller.usr.door_is_open_a_0 controller.res.abs_2_a_0 controller.res.inst_0_a_0) controller.res.init_flag_a_0)))) +(define-fun __node_trans_controller_0 ((controller.usr.request_door_a_1 Bool) (controller.usr.warning_start_a_1 Bool) (controller.usr.in_station_a_1 Bool) (controller.usr.door_is_open_a_1 Bool) (controller.usr.open_door_a_1 Bool) (controller.usr.close_door_a_1 Bool) (controller.usr.door_ok_a_1 Bool) (controller.res.init_flag_a_1 Bool) (controller.res.abs_0_a_1 Bool) (controller.res.abs_1_a_1 Bool) (controller.res.abs_2_a_1 Bool) (controller.res.inst_0_a_1 Bool) (controller.usr.request_door_a_0 Bool) (controller.usr.warning_start_a_0 Bool) (controller.usr.in_station_a_0 Bool) (controller.usr.door_is_open_a_0 Bool) (controller.usr.open_door_a_0 Bool) (controller.usr.close_door_a_0 Bool) (controller.usr.door_ok_a_0 Bool) (controller.res.init_flag_a_0 Bool) (controller.res.abs_0_a_0 Bool) (controller.res.abs_1_a_0 Bool) (controller.res.abs_2_a_0 Bool) (controller.res.inst_0_a_0 Bool)) Bool + (and (= controller.res.abs_1_a_1 (and controller.usr.request_door_a_1 (not controller.usr.warning_start_a_1))) (let ((X1 controller.res.abs_2_a_1)) (and (= controller.usr.open_door_a_1 (and X1 controller.usr.in_station_a_1)) (= controller.res.abs_0_a_1 false) (= controller.usr.close_door_a_1 (and controller.usr.warning_start_a_1 controller.usr.door_is_open_a_1)) (= controller.usr.door_ok_a_1 (and (not controller.usr.door_is_open_a_1) controller.usr.warning_start_a_1)) (__node_trans_switch_0 controller.res.abs_0_a_1 controller.res.abs_1_a_1 controller.usr.door_is_open_a_1 controller.res.abs_2_a_1 controller.res.inst_0_a_1 controller.res.abs_0_a_0 controller.res.abs_1_a_0 controller.usr.door_is_open_a_0 controller.res.abs_2_a_0 controller.res.inst_0_a_0) (not controller.res.init_flag_a_1))))) +(define-fun __node_init_edge_0 ((edge.usr.X_a_0 Bool) (edge.usr.edge_a_0 Bool) (edge.res.init_flag_a_0 Bool)) Bool + (and (= edge.usr.edge_a_0 false) edge.res.init_flag_a_0)) +(define-fun __node_trans_edge_0 ((edge.usr.X_a_1 Bool) (edge.usr.edge_a_1 Bool) (edge.res.init_flag_a_1 Bool) (edge.usr.X_a_0 Bool) (edge.usr.edge_a_0 Bool) (edge.res.init_flag_a_0 Bool)) Bool + (and (= edge.usr.edge_a_1 (or edge.usr.X_a_1 (not edge.usr.X_a_0))) (not edge.res.init_flag_a_1))) +(define-fun __node_init_jafter_0 ((jafter.usr.X_a_0 Bool) (jafter.usr.after_a_0 Bool) (jafter.res.init_flag_a_0 Bool)) Bool + (and (= jafter.usr.after_a_0 false) jafter.res.init_flag_a_0)) +(define-fun __node_trans_jafter_0 ((jafter.usr.X_a_1 Bool) (jafter.usr.after_a_1 Bool) (jafter.res.init_flag_a_1 Bool) (jafter.usr.X_a_0 Bool) (jafter.usr.after_a_0 Bool) (jafter.res.init_flag_a_0 Bool)) Bool + (and (= jafter.usr.after_a_1 jafter.usr.X_a_0) (not jafter.res.init_flag_a_1))) +(define-fun __node_init_once_from_to_0 ((once_from_to.usr.A_a_0 Bool) (once_from_to.usr.B_a_0 Bool) (once_from_to.usr.X_a_0 Bool) (once_from_to.usr.OK_a_0 Bool) (once_from_to.res.init_flag_a_0 Bool) (once_from_to.res.abs_0_a_0 Bool) (once_from_to.res.abs_1_a_0 Bool) (once_from_to.res.abs_2_a_0 Bool) (once_from_to.res.inst_1_a_0 Bool) (once_from_to.res.inst_0_a_0 Bool)) Bool + (and (= once_from_to.res.abs_1_a_0 false) (let ((X1 once_from_to.res.abs_2_a_0)) (and (= once_from_to.usr.OK_a_0 (not (and X1 once_from_to.usr.B_a_0))) (__node_init_switch_0 once_from_to.res.abs_1_a_0 once_from_to.usr.A_a_0 once_from_to.res.abs_0_a_0 once_from_to.res.abs_2_a_0 once_from_to.res.inst_1_a_0) (__node_init_jafter_0 once_from_to.usr.X_a_0 once_from_to.res.abs_0_a_0 once_from_to.res.inst_0_a_0) once_from_to.res.init_flag_a_0)))) +(define-fun __node_trans_once_from_to_0 ((once_from_to.usr.A_a_1 Bool) (once_from_to.usr.B_a_1 Bool) (once_from_to.usr.X_a_1 Bool) (once_from_to.usr.OK_a_1 Bool) (once_from_to.res.init_flag_a_1 Bool) (once_from_to.res.abs_0_a_1 Bool) (once_from_to.res.abs_1_a_1 Bool) (once_from_to.res.abs_2_a_1 Bool) (once_from_to.res.inst_1_a_1 Bool) (once_from_to.res.inst_0_a_1 Bool) (once_from_to.usr.A_a_0 Bool) (once_from_to.usr.B_a_0 Bool) (once_from_to.usr.X_a_0 Bool) (once_from_to.usr.OK_a_0 Bool) (once_from_to.res.init_flag_a_0 Bool) (once_from_to.res.abs_0_a_0 Bool) (once_from_to.res.abs_1_a_0 Bool) (once_from_to.res.abs_2_a_0 Bool) (once_from_to.res.inst_1_a_0 Bool) (once_from_to.res.inst_0_a_0 Bool)) Bool + (let ((X1 once_from_to.res.abs_2_a_1)) (and (= once_from_to.usr.OK_a_1 (not (and X1 once_from_to.usr.B_a_1))) (= once_from_to.res.abs_1_a_1 false) (__node_trans_switch_0 once_from_to.res.abs_1_a_1 once_from_to.usr.A_a_1 once_from_to.res.abs_0_a_1 once_from_to.res.abs_2_a_1 once_from_to.res.inst_1_a_1 once_from_to.res.abs_1_a_0 once_from_to.usr.A_a_0 once_from_to.res.abs_0_a_0 once_from_to.res.abs_2_a_0 once_from_to.res.inst_1_a_0) (__node_trans_jafter_0 once_from_to.usr.X_a_1 once_from_to.res.abs_0_a_1 once_from_to.res.inst_0_a_1 once_from_to.usr.X_a_0 once_from_to.res.abs_0_a_0 once_from_to.res.inst_0_a_0) (not once_from_to.res.init_flag_a_1)))) +(define-fun __node_init_properties_0 ((properties.usr.door_is_open_a_0 Bool) (properties.usr.in_station_a_0 Bool) (properties.usr.request_door_a_0 Bool) (properties.usr.warning_start_a_0 Bool) (properties.usr.OK_a_0 Bool) (properties.res.init_flag_a_0 Bool) (properties.res.abs_0_a_0 Bool) (properties.res.abs_1_a_0 Bool) (properties.res.abs_2_a_0 Bool) (properties.res.abs_3_a_0 Bool) (properties.res.abs_4_a_0 Bool) (properties.res.abs_5_a_0 Bool) (properties.res.inst_8_a_0 Bool) (properties.res.inst_7_a_0 Bool) (properties.res.inst_6_a_0 Bool) (properties.res.inst_5_a_0 Bool) (properties.res.inst_4_a_0 Bool) (properties.res.inst_3_a_0 Bool) (properties.res.inst_2_a_0 Bool) (properties.res.inst_1_a_0 Bool) (properties.res.inst_0_a_0 Bool)) Bool + (let ((X1 properties.res.abs_5_a_0)) (let ((X2 (=> properties.usr.door_is_open_a_0 properties.usr.in_station_a_0))) (and (= properties.usr.OK_a_0 (and X2 X1)) (= properties.res.abs_0_a_0 (and properties.usr.request_door_a_0 (not properties.usr.warning_start_a_0))) (= properties.res.abs_2_a_0 (not properties.usr.in_station_a_0)) (__node_init_once_from_to_0 properties.res.abs_1_a_0 properties.res.abs_3_a_0 properties.res.abs_4_a_0 properties.res.abs_5_a_0 properties.res.inst_8_a_0 properties.res.inst_7_a_0 properties.res.inst_6_a_0 properties.res.inst_5_a_0 properties.res.inst_4_a_0 properties.res.inst_3_a_0) (__node_init_jafter_0 properties.res.abs_0_a_0 properties.res.abs_1_a_0 properties.res.inst_2_a_0) (__node_init_edge_0 properties.res.abs_2_a_0 properties.res.abs_3_a_0 properties.res.inst_1_a_0) (__node_init_jafter_0 properties.usr.door_is_open_a_0 properties.res.abs_4_a_0 properties.res.inst_0_a_0) properties.res.init_flag_a_0)))) +(define-fun __node_trans_properties_0 ((properties.usr.door_is_open_a_1 Bool) (properties.usr.in_station_a_1 Bool) (properties.usr.request_door_a_1 Bool) (properties.usr.warning_start_a_1 Bool) (properties.usr.OK_a_1 Bool) (properties.res.init_flag_a_1 Bool) (properties.res.abs_0_a_1 Bool) (properties.res.abs_1_a_1 Bool) (properties.res.abs_2_a_1 Bool) (properties.res.abs_3_a_1 Bool) (properties.res.abs_4_a_1 Bool) (properties.res.abs_5_a_1 Bool) (properties.res.inst_8_a_1 Bool) (properties.res.inst_7_a_1 Bool) (properties.res.inst_6_a_1 Bool) (properties.res.inst_5_a_1 Bool) (properties.res.inst_4_a_1 Bool) (properties.res.inst_3_a_1 Bool) (properties.res.inst_2_a_1 Bool) (properties.res.inst_1_a_1 Bool) (properties.res.inst_0_a_1 Bool) (properties.usr.door_is_open_a_0 Bool) (properties.usr.in_station_a_0 Bool) (properties.usr.request_door_a_0 Bool) (properties.usr.warning_start_a_0 Bool) (properties.usr.OK_a_0 Bool) (properties.res.init_flag_a_0 Bool) (properties.res.abs_0_a_0 Bool) (properties.res.abs_1_a_0 Bool) (properties.res.abs_2_a_0 Bool) (properties.res.abs_3_a_0 Bool) (properties.res.abs_4_a_0 Bool) (properties.res.abs_5_a_0 Bool) (properties.res.inst_8_a_0 Bool) (properties.res.inst_7_a_0 Bool) (properties.res.inst_6_a_0 Bool) (properties.res.inst_5_a_0 Bool) (properties.res.inst_4_a_0 Bool) (properties.res.inst_3_a_0 Bool) (properties.res.inst_2_a_0 Bool) (properties.res.inst_1_a_0 Bool) (properties.res.inst_0_a_0 Bool)) Bool + (and (= properties.res.abs_2_a_1 (not properties.usr.in_station_a_1)) (let ((X1 properties.res.abs_5_a_1)) (let ((X2 (=> properties.usr.door_is_open_a_1 properties.usr.in_station_a_1))) (and (= properties.usr.OK_a_1 (and X2 X1)) (= properties.res.abs_0_a_1 (and properties.usr.request_door_a_1 (not properties.usr.warning_start_a_1))) (__node_trans_once_from_to_0 properties.res.abs_1_a_1 properties.res.abs_3_a_1 properties.res.abs_4_a_1 properties.res.abs_5_a_1 properties.res.inst_8_a_1 properties.res.inst_7_a_1 properties.res.inst_6_a_1 properties.res.inst_5_a_1 properties.res.inst_4_a_1 properties.res.inst_3_a_1 properties.res.abs_1_a_0 properties.res.abs_3_a_0 properties.res.abs_4_a_0 properties.res.abs_5_a_0 properties.res.inst_8_a_0 properties.res.inst_7_a_0 properties.res.inst_6_a_0 properties.res.inst_5_a_0 properties.res.inst_4_a_0 properties.res.inst_3_a_0) (__node_trans_jafter_0 properties.res.abs_0_a_1 properties.res.abs_1_a_1 properties.res.inst_2_a_1 properties.res.abs_0_a_0 properties.res.abs_1_a_0 properties.res.inst_2_a_0) (__node_trans_edge_0 properties.res.abs_2_a_1 properties.res.abs_3_a_1 properties.res.inst_1_a_1 properties.res.abs_2_a_0 properties.res.abs_3_a_0 properties.res.inst_1_a_0) (__node_trans_jafter_0 properties.usr.door_is_open_a_1 properties.res.abs_4_a_1 properties.res.inst_0_a_1 properties.usr.door_is_open_a_0 properties.res.abs_4_a_0 properties.res.inst_0_a_0) (not properties.res.init_flag_a_1)))))) +(define-fun __node_init_environment_0 ((environment.usr.door_is_open_a_0 Bool) (environment.usr.open_door_a_0 Bool) (environment.usr.close_door_a_0 Bool) (environment.usr.in_station_a_0 Bool) (environment.usr.door_ok_a_0 Bool) (environment.usr.warning_start_a_0 Bool) (environment.usr.env_always_ok_a_0 Bool) (environment.res.init_flag_a_0 Bool) (environment.res.abs_0_a_0 Bool) (environment.res.abs_1_a_0 Bool) (environment.res.abs_2_a_0 Bool) (environment.res.abs_3_a_0 Bool) (environment.res.abs_4_a_0 Bool) (environment.res.abs_5_a_0 Bool) (environment.res.abs_6_a_0 Bool) (environment.res.abs_7_a_0 Bool) (environment.res.abs_8_a_0 Bool) (environment.res.inst_5_a_0 Bool) (environment.res.inst_4_a_0 Bool) (environment.res.inst_3_a_0 Bool) (environment.res.inst_2_a_0 Bool) (environment.res.inst_1_a_0 Bool) (environment.res.inst_0_a_0 Bool)) Bool + (let ((X1 (=> environment.res.abs_8_a_0 (not environment.usr.open_door_a_0)))) (let ((X2 (=> environment.usr.warning_start_a_0 environment.usr.in_station_a_0))) (let ((X3 (= environment.res.abs_4_a_0 environment.res.abs_7_a_0))) (let ((X4 (not environment.usr.in_station_a_0))) (let ((X5 (not environment.usr.door_is_open_a_0))) (let ((X6 (=> environment.res.abs_4_a_0 environment.res.abs_5_a_0))) (let ((X7 (=> environment.res.abs_2_a_0 environment.usr.close_door_a_0))) (let ((X8 (=> environment.res.abs_0_a_0 environment.usr.open_door_a_0))) (let ((X9 (and (and (and (and (and (and (and X7 X8) X6) X5) X4) X3) X2) X1))) (and (= environment.usr.env_always_ok_a_0 X9) (= environment.res.abs_1_a_0 (not environment.usr.door_is_open_a_0)) (= environment.res.abs_3_a_0 (not environment.usr.in_station_a_0)) (= environment.res.abs_6_a_0 (not environment.usr.warning_start_a_0)) (__node_init_edge_0 environment.usr.door_is_open_a_0 environment.res.abs_0_a_0 environment.res.inst_5_a_0) (__node_init_edge_0 environment.res.abs_1_a_0 environment.res.abs_2_a_0 environment.res.inst_4_a_0) (__node_init_edge_0 environment.res.abs_3_a_0 environment.res.abs_4_a_0 environment.res.inst_3_a_0) (__node_init_jafter_0 environment.usr.door_ok_a_0 environment.res.abs_5_a_0 environment.res.inst_2_a_0) (__node_init_edge_0 environment.res.abs_6_a_0 environment.res.abs_7_a_0 environment.res.inst_1_a_0) (__node_init_edge_0 environment.usr.warning_start_a_0 environment.res.abs_8_a_0 environment.res.inst_0_a_0) environment.res.init_flag_a_0))))))))))) +(define-fun __node_trans_environment_0 ((environment.usr.door_is_open_a_1 Bool) (environment.usr.open_door_a_1 Bool) (environment.usr.close_door_a_1 Bool) (environment.usr.in_station_a_1 Bool) (environment.usr.door_ok_a_1 Bool) (environment.usr.warning_start_a_1 Bool) (environment.usr.env_always_ok_a_1 Bool) (environment.res.init_flag_a_1 Bool) (environment.res.abs_0_a_1 Bool) (environment.res.abs_1_a_1 Bool) (environment.res.abs_2_a_1 Bool) (environment.res.abs_3_a_1 Bool) (environment.res.abs_4_a_1 Bool) (environment.res.abs_5_a_1 Bool) (environment.res.abs_6_a_1 Bool) (environment.res.abs_7_a_1 Bool) (environment.res.abs_8_a_1 Bool) (environment.res.inst_5_a_1 Bool) (environment.res.inst_4_a_1 Bool) (environment.res.inst_3_a_1 Bool) (environment.res.inst_2_a_1 Bool) (environment.res.inst_1_a_1 Bool) (environment.res.inst_0_a_1 Bool) (environment.usr.door_is_open_a_0 Bool) (environment.usr.open_door_a_0 Bool) (environment.usr.close_door_a_0 Bool) (environment.usr.in_station_a_0 Bool) (environment.usr.door_ok_a_0 Bool) (environment.usr.warning_start_a_0 Bool) (environment.usr.env_always_ok_a_0 Bool) (environment.res.init_flag_a_0 Bool) (environment.res.abs_0_a_0 Bool) (environment.res.abs_1_a_0 Bool) (environment.res.abs_2_a_0 Bool) (environment.res.abs_3_a_0 Bool) (environment.res.abs_4_a_0 Bool) (environment.res.abs_5_a_0 Bool) (environment.res.abs_6_a_0 Bool) (environment.res.abs_7_a_0 Bool) (environment.res.abs_8_a_0 Bool) (environment.res.inst_5_a_0 Bool) (environment.res.inst_4_a_0 Bool) (environment.res.inst_3_a_0 Bool) (environment.res.inst_2_a_0 Bool) (environment.res.inst_1_a_0 Bool) (environment.res.inst_0_a_0 Bool)) Bool + (and (= environment.res.abs_6_a_1 (not environment.usr.warning_start_a_1)) (= environment.res.abs_3_a_1 (not environment.usr.in_station_a_1)) (= environment.res.abs_1_a_1 (not environment.usr.door_is_open_a_1)) (let ((X1 (=> environment.res.abs_8_a_1 (not environment.usr.open_door_a_1)))) (let ((X2 (=> environment.usr.warning_start_a_1 environment.usr.in_station_a_1))) (let ((X3 (= environment.res.abs_4_a_1 environment.res.abs_7_a_1))) (let ((X4 true)) (let ((X5 true)) (let ((X6 (=> environment.res.abs_4_a_1 environment.res.abs_5_a_1))) (let ((X7 (=> environment.res.abs_2_a_1 environment.usr.close_door_a_1))) (let ((X8 (=> environment.res.abs_0_a_1 environment.usr.open_door_a_1))) (let ((X9 (and (and (and (and (and (and (and X7 X8) X6) X5) X4) X3) X2) X1))) (and (= environment.usr.env_always_ok_a_1 (and X9 environment.usr.env_always_ok_a_0)) (__node_trans_edge_0 environment.usr.door_is_open_a_1 environment.res.abs_0_a_1 environment.res.inst_5_a_1 environment.usr.door_is_open_a_0 environment.res.abs_0_a_0 environment.res.inst_5_a_0) (__node_trans_edge_0 environment.res.abs_1_a_1 environment.res.abs_2_a_1 environment.res.inst_4_a_1 environment.res.abs_1_a_0 environment.res.abs_2_a_0 environment.res.inst_4_a_0) (__node_trans_edge_0 environment.res.abs_3_a_1 environment.res.abs_4_a_1 environment.res.inst_3_a_1 environment.res.abs_3_a_0 environment.res.abs_4_a_0 environment.res.inst_3_a_0) (__node_trans_jafter_0 environment.usr.door_ok_a_1 environment.res.abs_5_a_1 environment.res.inst_2_a_1 environment.usr.door_ok_a_0 environment.res.abs_5_a_0 environment.res.inst_2_a_0) (__node_trans_edge_0 environment.res.abs_6_a_1 environment.res.abs_7_a_1 environment.res.inst_1_a_1 environment.res.abs_6_a_0 environment.res.abs_7_a_0 environment.res.inst_1_a_0) (__node_trans_edge_0 environment.usr.warning_start_a_1 environment.res.abs_8_a_1 environment.res.inst_0_a_1 environment.usr.warning_start_a_0 environment.res.abs_8_a_0 environment.res.inst_0_a_0) (not environment.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.request_door_a_0 Bool) (top.usr.warning_start_a_0 Bool) (top.usr.in_station_a_0 Bool) (top.usr.door_is_open_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.open_door_a_0 Bool) (top.impl.usr.close_door_a_0 Bool) (top.impl.usr.door_ok_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.inst_36_a_0 Bool) (top.res.inst_35_a_0 Bool) (top.res.inst_34_a_0 Bool) (top.res.inst_33_a_0 Bool) (top.res.inst_32_a_0 Bool) (top.res.inst_31_a_0 Bool) (top.res.inst_30_a_0 Bool) (top.res.inst_29_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.close_door_a_0 top.res.abs_3_a_0) (= top.impl.usr.open_door_a_0 top.res.abs_2_a_0) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (and (= top.usr.OK_a_0 (=> X2 X1)) (= top.impl.usr.door_ok_a_0 top.res.abs_4_a_0) (__node_init_environment_0 top.usr.door_is_open_a_0 top.impl.usr.open_door_a_0 top.impl.usr.close_door_a_0 top.usr.in_station_a_0 top.impl.usr.door_ok_a_0 top.usr.warning_start_a_0 top.res.abs_1_a_0 top.res.inst_36_a_0 top.res.inst_35_a_0 top.res.inst_34_a_0 top.res.inst_33_a_0 top.res.inst_32_a_0 top.res.inst_31_a_0 top.res.inst_30_a_0 top.res.inst_29_a_0 top.res.inst_28_a_0 top.res.inst_27_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0) (__node_init_controller_0 top.usr.request_door_a_0 top.usr.warning_start_a_0 top.usr.in_station_a_0 top.usr.door_is_open_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0) (__node_init_properties_0 top.usr.door_is_open_a_0 top.usr.in_station_a_0 top.usr.request_door_a_0 top.usr.warning_start_a_0 top.res.abs_0_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.request_door_a_1 Bool) (top.usr.warning_start_a_1 Bool) (top.usr.in_station_a_1 Bool) (top.usr.door_is_open_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.open_door_a_1 Bool) (top.impl.usr.close_door_a_1 Bool) (top.impl.usr.door_ok_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.abs_4_a_1 Bool) (top.res.inst_36_a_1 Bool) (top.res.inst_35_a_1 Bool) (top.res.inst_34_a_1 Bool) (top.res.inst_33_a_1 Bool) (top.res.inst_32_a_1 Bool) (top.res.inst_31_a_1 Bool) (top.res.inst_30_a_1 Bool) (top.res.inst_29_a_1 Bool) (top.res.inst_28_a_1 Bool) (top.res.inst_27_a_1 Bool) (top.res.inst_26_a_1 Bool) (top.res.inst_25_a_1 Bool) (top.res.inst_24_a_1 Bool) (top.res.inst_23_a_1 Bool) (top.res.inst_22_a_1 Bool) (top.res.inst_21_a_1 Bool) (top.res.inst_20_a_1 Bool) (top.res.inst_19_a_1 Bool) (top.res.inst_18_a_1 Bool) (top.res.inst_17_a_1 Bool) (top.res.inst_16_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Bool) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Bool) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Bool) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.request_door_a_0 Bool) (top.usr.warning_start_a_0 Bool) (top.usr.in_station_a_0 Bool) (top.usr.door_is_open_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.open_door_a_0 Bool) (top.impl.usr.close_door_a_0 Bool) (top.impl.usr.door_ok_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.inst_36_a_0 Bool) (top.res.inst_35_a_0 Bool) (top.res.inst_34_a_0 Bool) (top.res.inst_33_a_0 Bool) (top.res.inst_32_a_0 Bool) (top.res.inst_31_a_0 Bool) (top.res.inst_30_a_0 Bool) (top.res.inst_29_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.close_door_a_1 top.res.abs_3_a_1) (= top.impl.usr.open_door_a_1 top.res.abs_2_a_1) (let ((X1 top.res.abs_0_a_1)) (let ((X2 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (=> X2 X1)) (= top.impl.usr.door_ok_a_1 top.res.abs_4_a_1) (__node_trans_environment_0 top.usr.door_is_open_a_1 top.impl.usr.open_door_a_1 top.impl.usr.close_door_a_1 top.usr.in_station_a_1 top.impl.usr.door_ok_a_1 top.usr.warning_start_a_1 top.res.abs_1_a_1 top.res.inst_36_a_1 top.res.inst_35_a_1 top.res.inst_34_a_1 top.res.inst_33_a_1 top.res.inst_32_a_1 top.res.inst_31_a_1 top.res.inst_30_a_1 top.res.inst_29_a_1 top.res.inst_28_a_1 top.res.inst_27_a_1 top.res.inst_26_a_1 top.res.inst_25_a_1 top.res.inst_24_a_1 top.res.inst_23_a_1 top.res.inst_22_a_1 top.res.inst_21_a_1 top.usr.door_is_open_a_0 top.impl.usr.open_door_a_0 top.impl.usr.close_door_a_0 top.usr.in_station_a_0 top.impl.usr.door_ok_a_0 top.usr.warning_start_a_0 top.res.abs_1_a_0 top.res.inst_36_a_0 top.res.inst_35_a_0 top.res.inst_34_a_0 top.res.inst_33_a_0 top.res.inst_32_a_0 top.res.inst_31_a_0 top.res.inst_30_a_0 top.res.inst_29_a_0 top.res.inst_28_a_0 top.res.inst_27_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0) (__node_trans_controller_0 top.usr.request_door_a_1 top.usr.warning_start_a_1 top.usr.in_station_a_1 top.usr.door_is_open_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.inst_20_a_1 top.res.inst_19_a_1 top.res.inst_18_a_1 top.res.inst_17_a_1 top.res.inst_16_a_1 top.usr.request_door_a_0 top.usr.warning_start_a_0 top.usr.in_station_a_0 top.usr.door_is_open_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0) (__node_trans_properties_0 top.usr.door_is_open_a_1 top.usr.in_station_a_1 top.usr.request_door_a_1 top.usr.warning_start_a_1 top.res.abs_0_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.res.inst_0_a_1 top.usr.door_is_open_a_0 top.usr.in_station_a_0 top.usr.request_door_a_0 top.usr.warning_start_a_0 top.res.abs_0_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.request_door Bool) (top.usr.warning_start Bool) (top.usr.in_station Bool) (top.usr.door_is_open Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.open_door Bool) (top.impl.usr.close_door Bool) (top.impl.usr.door_ok Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.request_door Bool) (top.usr.warning_start Bool) (top.usr.in_station Bool) (top.usr.door_is_open Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.open_door Bool) (top.impl.usr.close_door Bool) (top.impl.usr.door_ok Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.close_door top.res.abs_3) (= top.impl.usr.open_door top.res.abs_2) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (and (= top.usr.OK (=> X2 X1)) (= top.impl.usr.door_ok top.res.abs_4) (__node_init_environment_0 top.usr.door_is_open top.impl.usr.open_door top.impl.usr.close_door top.usr.in_station top.impl.usr.door_ok top.usr.warning_start top.res.abs_1 top.res.inst_36 top.res.inst_35 top.res.inst_34 top.res.inst_33 top.res.inst_32 top.res.inst_31 top.res.inst_30 top.res.inst_29 top.res.inst_28 top.res.inst_27 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21) (__node_init_controller_0 top.usr.request_door top.usr.warning_start top.usr.in_station top.usr.door_is_open top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16) (__node_init_properties_0 top.usr.door_is_open top.usr.in_station top.usr.request_door top.usr.warning_start top.res.abs_0 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.request_door Bool) (top.usr.warning_start Bool) (top.usr.in_station Bool) (top.usr.door_is_open Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.open_door Bool) (top.impl.usr.close_door Bool) (top.impl.usr.door_ok Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.request_door! Bool) (top.usr.warning_start! Bool) (top.usr.in_station! Bool) (top.usr.door_is_open! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.open_door! Bool) (top.impl.usr.close_door! Bool) (top.impl.usr.door_ok! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.abs_4! Bool) (top.res.inst_36! Bool) (top.res.inst_35! Bool) (top.res.inst_34! Bool) (top.res.inst_33! Bool) (top.res.inst_32! Bool) (top.res.inst_31! Bool) (top.res.inst_30! Bool) (top.res.inst_29! Bool) (top.res.inst_28! Bool) (top.res.inst_27! Bool) (top.res.inst_26! Bool) (top.res.inst_25! Bool) (top.res.inst_24! Bool) (top.res.inst_23! Bool) (top.res.inst_22! Bool) (top.res.inst_21! Bool) (top.res.inst_20! Bool) (top.res.inst_19! Bool) (top.res.inst_18! Bool) (top.res.inst_17! Bool) (top.res.inst_16! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Bool) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Bool) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Bool) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.close_door! top.res.abs_3!) (= top.impl.usr.open_door! top.res.abs_2!) (let ((X1 top.res.abs_0!)) (let ((X2 top.res.abs_1!)) (and (= top.usr.OK! (=> X2 X1)) (= top.impl.usr.door_ok! top.res.abs_4!) (__node_trans_environment_0 top.usr.door_is_open! top.impl.usr.open_door! top.impl.usr.close_door! top.usr.in_station! top.impl.usr.door_ok! top.usr.warning_start! top.res.abs_1! top.res.inst_36! top.res.inst_35! top.res.inst_34! top.res.inst_33! top.res.inst_32! top.res.inst_31! top.res.inst_30! top.res.inst_29! top.res.inst_28! top.res.inst_27! top.res.inst_26! top.res.inst_25! top.res.inst_24! top.res.inst_23! top.res.inst_22! top.res.inst_21! top.usr.door_is_open top.impl.usr.open_door top.impl.usr.close_door top.usr.in_station top.impl.usr.door_ok top.usr.warning_start top.res.abs_1 top.res.inst_36 top.res.inst_35 top.res.inst_34 top.res.inst_33 top.res.inst_32 top.res.inst_31 top.res.inst_30 top.res.inst_29 top.res.inst_28 top.res.inst_27 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21) (__node_trans_controller_0 top.usr.request_door! top.usr.warning_start! top.usr.in_station! top.usr.door_is_open! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.inst_20! top.res.inst_19! top.res.inst_18! top.res.inst_17! top.res.inst_16! top.usr.request_door top.usr.warning_start top.usr.in_station top.usr.door_is_open top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16) (__node_trans_properties_0 top.usr.door_is_open! top.usr.in_station! top.usr.request_door! top.usr.warning_start! top.res.abs_0! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.res.inst_0! top.usr.door_is_open top.usr.in_station top.usr.request_door top.usr.warning_start top.res.abs_0 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) (not top.res.init_flag!)))))) +(define-fun prop ((top.usr.request_door Bool) (top.usr.warning_start Bool) (top.usr.in_station Bool) (top.usr.door_is_open Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.open_door Bool) (top.impl.usr.close_door Bool) (top.impl.usr.door_ok Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/tramway_e7_1834_e7_2363.sl b/benchmarks/LIA/Lustre/tramway_e7_1834_e7_2363.sl index bbba531..3065083 100644 --- a/benchmarks/LIA/Lustre/tramway_e7_1834_e7_2363.sl +++ b/benchmarks/LIA/Lustre/tramway_e7_1834_e7_2363.sl @@ -1,1547 +1,47 @@ (set-logic LIA) -(define-fun - __node_init_switch_0 ( - (switch.usr.init_a_0 Bool) - (switch.usr.on_a_0 Bool) - (switch.usr.off_a_0 Bool) - (switch.usr.value_a_0 Bool) - (switch.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - switch.usr.value_a_0 - (ite switch.usr.on_a_0 true (ite switch.usr.off_a_0 false switch.usr.init_a_0))) - switch.res.init_flag_a_0) -) - -(define-fun - __node_trans_switch_0 ( - (switch.usr.init_a_1 Bool) - (switch.usr.on_a_1 Bool) - (switch.usr.off_a_1 Bool) - (switch.usr.value_a_1 Bool) - (switch.res.init_flag_a_1 Bool) - (switch.usr.init_a_0 Bool) - (switch.usr.on_a_0 Bool) - (switch.usr.off_a_0 Bool) - (switch.usr.value_a_0 Bool) - (switch.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - switch.usr.value_a_1 - (ite - switch.usr.on_a_1 - true - (ite switch.usr.off_a_1 false switch.usr.value_a_0))) - (not switch.res.init_flag_a_1)) -) - -(define-fun - __node_init_controller_0 ( - (controller.usr.request_door_a_0 Bool) - (controller.usr.warning_start_a_0 Bool) - (controller.usr.in_station_a_0 Bool) - (controller.usr.door_is_open_a_0 Bool) - (controller.usr.open_door_a_0 Bool) - (controller.usr.close_door_a_0 Bool) - (controller.usr.door_ok_a_0 Bool) - (controller.res.init_flag_a_0 Bool) - (controller.res.abs_0_a_0 Bool) - (controller.res.abs_1_a_0 Bool) - (controller.res.abs_2_a_0 Bool) - (controller.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - controller.res.abs_1_a_0 - (and controller.usr.request_door_a_0 (not controller.usr.warning_start_a_0))) - (= controller.res.abs_0_a_0 false) - (let - ((X1 Bool controller.res.abs_2_a_0)) - (and - (= controller.usr.open_door_a_0 (and X1 controller.usr.in_station_a_0)) - (= - controller.usr.close_door_a_0 - (and controller.usr.warning_start_a_0 controller.usr.door_is_open_a_0)) - (= - controller.usr.door_ok_a_0 - (and - (not controller.usr.door_is_open_a_0) - controller.usr.warning_start_a_0)) - (__node_init_switch_0 - controller.res.abs_0_a_0 - controller.res.abs_1_a_0 - controller.usr.door_is_open_a_0 - controller.res.abs_2_a_0 - controller.res.inst_0_a_0) - controller.res.init_flag_a_0))) -) - -(define-fun - __node_trans_controller_0 ( - (controller.usr.request_door_a_1 Bool) - (controller.usr.warning_start_a_1 Bool) - (controller.usr.in_station_a_1 Bool) - (controller.usr.door_is_open_a_1 Bool) - (controller.usr.open_door_a_1 Bool) - (controller.usr.close_door_a_1 Bool) - (controller.usr.door_ok_a_1 Bool) - (controller.res.init_flag_a_1 Bool) - (controller.res.abs_0_a_1 Bool) - (controller.res.abs_1_a_1 Bool) - (controller.res.abs_2_a_1 Bool) - (controller.res.inst_0_a_1 Bool) - (controller.usr.request_door_a_0 Bool) - (controller.usr.warning_start_a_0 Bool) - (controller.usr.in_station_a_0 Bool) - (controller.usr.door_is_open_a_0 Bool) - (controller.usr.open_door_a_0 Bool) - (controller.usr.close_door_a_0 Bool) - (controller.usr.door_ok_a_0 Bool) - (controller.res.init_flag_a_0 Bool) - (controller.res.abs_0_a_0 Bool) - (controller.res.abs_1_a_0 Bool) - (controller.res.abs_2_a_0 Bool) - (controller.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - controller.res.abs_1_a_1 - (and controller.usr.request_door_a_1 (not controller.usr.warning_start_a_1))) - (let - ((X1 Bool controller.res.abs_2_a_1)) - (and - (= controller.usr.open_door_a_1 (and X1 controller.usr.in_station_a_1)) - (= controller.res.abs_0_a_1 false) - (= - controller.usr.close_door_a_1 - (and controller.usr.warning_start_a_1 controller.usr.door_is_open_a_1)) - (= - controller.usr.door_ok_a_1 - (and - (not controller.usr.door_is_open_a_1) - controller.usr.warning_start_a_1)) - (__node_trans_switch_0 - controller.res.abs_0_a_1 - controller.res.abs_1_a_1 - controller.usr.door_is_open_a_1 - controller.res.abs_2_a_1 - controller.res.inst_0_a_1 - controller.res.abs_0_a_0 - controller.res.abs_1_a_0 - controller.usr.door_is_open_a_0 - controller.res.abs_2_a_0 - controller.res.inst_0_a_0) - (not controller.res.init_flag_a_1)))) -) - -(define-fun - __node_init_edge_0 ( - (edge.usr.X_a_0 Bool) - (edge.usr.edge_a_0 Bool) - (edge.res.init_flag_a_0 Bool) - ) Bool - - (and (= edge.usr.edge_a_0 false) edge.res.init_flag_a_0) -) - -(define-fun - __node_trans_edge_0 ( - (edge.usr.X_a_1 Bool) - (edge.usr.edge_a_1 Bool) - (edge.res.init_flag_a_1 Bool) - (edge.usr.X_a_0 Bool) - (edge.usr.edge_a_0 Bool) - (edge.res.init_flag_a_0 Bool) - ) Bool - - (and - (= edge.usr.edge_a_1 (or edge.usr.X_a_1 (not edge.usr.X_a_0))) - (not edge.res.init_flag_a_1)) -) - -(define-fun - __node_init_jafter_0 ( - (jafter.usr.X_a_0 Bool) - (jafter.usr.after_a_0 Bool) - (jafter.res.init_flag_a_0 Bool) - ) Bool - - (and (= jafter.usr.after_a_0 false) jafter.res.init_flag_a_0) -) - -(define-fun - __node_trans_jafter_0 ( - (jafter.usr.X_a_1 Bool) - (jafter.usr.after_a_1 Bool) - (jafter.res.init_flag_a_1 Bool) - (jafter.usr.X_a_0 Bool) - (jafter.usr.after_a_0 Bool) - (jafter.res.init_flag_a_0 Bool) - ) Bool - - (and (= jafter.usr.after_a_1 jafter.usr.X_a_0) (not jafter.res.init_flag_a_1)) -) - -(define-fun - __node_init_once_from_to_0 ( - (once_from_to.usr.A_a_0 Bool) - (once_from_to.usr.B_a_0 Bool) - (once_from_to.usr.X_a_0 Bool) - (once_from_to.usr.OK_a_0 Bool) - (once_from_to.res.init_flag_a_0 Bool) - (once_from_to.res.abs_0_a_0 Bool) - (once_from_to.res.abs_1_a_0 Bool) - (once_from_to.res.abs_2_a_0 Bool) - (once_from_to.res.inst_1_a_0 Bool) - (once_from_to.res.inst_0_a_0 Bool) - ) Bool - - (and - (= once_from_to.res.abs_1_a_0 false) - (let - ((X1 Bool once_from_to.res.abs_2_a_0)) - (and - (= once_from_to.usr.OK_a_0 (not (or X1 once_from_to.usr.B_a_0))) - (__node_init_switch_0 - once_from_to.res.abs_1_a_0 - once_from_to.usr.A_a_0 - once_from_to.res.abs_0_a_0 - once_from_to.res.abs_2_a_0 - once_from_to.res.inst_1_a_0) - (__node_init_jafter_0 - once_from_to.usr.X_a_0 - once_from_to.res.abs_0_a_0 - once_from_to.res.inst_0_a_0) - once_from_to.res.init_flag_a_0))) -) - -(define-fun - __node_trans_once_from_to_0 ( - (once_from_to.usr.A_a_1 Bool) - (once_from_to.usr.B_a_1 Bool) - (once_from_to.usr.X_a_1 Bool) - (once_from_to.usr.OK_a_1 Bool) - (once_from_to.res.init_flag_a_1 Bool) - (once_from_to.res.abs_0_a_1 Bool) - (once_from_to.res.abs_1_a_1 Bool) - (once_from_to.res.abs_2_a_1 Bool) - (once_from_to.res.inst_1_a_1 Bool) - (once_from_to.res.inst_0_a_1 Bool) - (once_from_to.usr.A_a_0 Bool) - (once_from_to.usr.B_a_0 Bool) - (once_from_to.usr.X_a_0 Bool) - (once_from_to.usr.OK_a_0 Bool) - (once_from_to.res.init_flag_a_0 Bool) - (once_from_to.res.abs_0_a_0 Bool) - (once_from_to.res.abs_1_a_0 Bool) - (once_from_to.res.abs_2_a_0 Bool) - (once_from_to.res.inst_1_a_0 Bool) - (once_from_to.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool once_from_to.res.abs_2_a_1)) - (and - (= once_from_to.usr.OK_a_1 (not (or X1 once_from_to.usr.B_a_1))) - (= once_from_to.res.abs_1_a_1 false) - (__node_trans_switch_0 - once_from_to.res.abs_1_a_1 - once_from_to.usr.A_a_1 - once_from_to.res.abs_0_a_1 - once_from_to.res.abs_2_a_1 - once_from_to.res.inst_1_a_1 - once_from_to.res.abs_1_a_0 - once_from_to.usr.A_a_0 - once_from_to.res.abs_0_a_0 - once_from_to.res.abs_2_a_0 - once_from_to.res.inst_1_a_0) - (__node_trans_jafter_0 - once_from_to.usr.X_a_1 - once_from_to.res.abs_0_a_1 - once_from_to.res.inst_0_a_1 - once_from_to.usr.X_a_0 - once_from_to.res.abs_0_a_0 - once_from_to.res.inst_0_a_0) - (not once_from_to.res.init_flag_a_1))) -) - -(define-fun - __node_init_properties_0 ( - (properties.usr.door_is_open_a_0 Bool) - (properties.usr.in_station_a_0 Bool) - (properties.usr.request_door_a_0 Bool) - (properties.usr.warning_start_a_0 Bool) - (properties.usr.OK_a_0 Bool) - (properties.res.init_flag_a_0 Bool) - (properties.res.abs_0_a_0 Bool) - (properties.res.abs_1_a_0 Bool) - (properties.res.abs_2_a_0 Bool) - (properties.res.abs_3_a_0 Bool) - (properties.res.abs_4_a_0 Bool) - (properties.res.abs_5_a_0 Bool) - (properties.res.inst_8_a_0 Bool) - (properties.res.inst_7_a_0 Bool) - (properties.res.inst_6_a_0 Bool) - (properties.res.inst_5_a_0 Bool) - (properties.res.inst_4_a_0 Bool) - (properties.res.inst_3_a_0 Bool) - (properties.res.inst_2_a_0 Bool) - (properties.res.inst_1_a_0 Bool) - (properties.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool properties.res.abs_5_a_0)) - (let - ((X2 Bool (=> properties.usr.door_is_open_a_0 properties.usr.in_station_a_0))) - (and - (= properties.usr.OK_a_0 (and X2 X1)) - (= - properties.res.abs_0_a_0 - (and - properties.usr.request_door_a_0 - (not properties.usr.warning_start_a_0))) - (= properties.res.abs_2_a_0 (not properties.usr.in_station_a_0)) - (__node_init_once_from_to_0 - properties.res.abs_1_a_0 - properties.res.abs_3_a_0 - properties.res.abs_4_a_0 - properties.res.abs_5_a_0 - properties.res.inst_8_a_0 - properties.res.inst_7_a_0 - properties.res.inst_6_a_0 - properties.res.inst_5_a_0 - properties.res.inst_4_a_0 - properties.res.inst_3_a_0) - (__node_init_jafter_0 - properties.res.abs_0_a_0 - properties.res.abs_1_a_0 - properties.res.inst_2_a_0) - (__node_init_edge_0 - properties.res.abs_2_a_0 - properties.res.abs_3_a_0 - properties.res.inst_1_a_0) - (__node_init_jafter_0 - properties.usr.door_is_open_a_0 - properties.res.abs_4_a_0 - properties.res.inst_0_a_0) - properties.res.init_flag_a_0))) -) - -(define-fun - __node_trans_properties_0 ( - (properties.usr.door_is_open_a_1 Bool) - (properties.usr.in_station_a_1 Bool) - (properties.usr.request_door_a_1 Bool) - (properties.usr.warning_start_a_1 Bool) - (properties.usr.OK_a_1 Bool) - (properties.res.init_flag_a_1 Bool) - (properties.res.abs_0_a_1 Bool) - (properties.res.abs_1_a_1 Bool) - (properties.res.abs_2_a_1 Bool) - (properties.res.abs_3_a_1 Bool) - (properties.res.abs_4_a_1 Bool) - (properties.res.abs_5_a_1 Bool) - (properties.res.inst_8_a_1 Bool) - (properties.res.inst_7_a_1 Bool) - (properties.res.inst_6_a_1 Bool) - (properties.res.inst_5_a_1 Bool) - (properties.res.inst_4_a_1 Bool) - (properties.res.inst_3_a_1 Bool) - (properties.res.inst_2_a_1 Bool) - (properties.res.inst_1_a_1 Bool) - (properties.res.inst_0_a_1 Bool) - (properties.usr.door_is_open_a_0 Bool) - (properties.usr.in_station_a_0 Bool) - (properties.usr.request_door_a_0 Bool) - (properties.usr.warning_start_a_0 Bool) - (properties.usr.OK_a_0 Bool) - (properties.res.init_flag_a_0 Bool) - (properties.res.abs_0_a_0 Bool) - (properties.res.abs_1_a_0 Bool) - (properties.res.abs_2_a_0 Bool) - (properties.res.abs_3_a_0 Bool) - (properties.res.abs_4_a_0 Bool) - (properties.res.abs_5_a_0 Bool) - (properties.res.inst_8_a_0 Bool) - (properties.res.inst_7_a_0 Bool) - (properties.res.inst_6_a_0 Bool) - (properties.res.inst_5_a_0 Bool) - (properties.res.inst_4_a_0 Bool) - (properties.res.inst_3_a_0 Bool) - (properties.res.inst_2_a_0 Bool) - (properties.res.inst_1_a_0 Bool) - (properties.res.inst_0_a_0 Bool) - ) Bool - - (and - (= properties.res.abs_2_a_1 (not properties.usr.in_station_a_1)) - (let - ((X1 Bool properties.res.abs_5_a_1)) - (let - ((X2 - Bool (=> properties.usr.door_is_open_a_1 properties.usr.in_station_a_1))) - (and - (= properties.usr.OK_a_1 (and X2 X1)) - (= - properties.res.abs_0_a_1 - (and - properties.usr.request_door_a_1 - (not properties.usr.warning_start_a_1))) - (__node_trans_once_from_to_0 - properties.res.abs_1_a_1 - properties.res.abs_3_a_1 - properties.res.abs_4_a_1 - properties.res.abs_5_a_1 - properties.res.inst_8_a_1 - properties.res.inst_7_a_1 - properties.res.inst_6_a_1 - properties.res.inst_5_a_1 - properties.res.inst_4_a_1 - properties.res.inst_3_a_1 - properties.res.abs_1_a_0 - properties.res.abs_3_a_0 - properties.res.abs_4_a_0 - properties.res.abs_5_a_0 - properties.res.inst_8_a_0 - properties.res.inst_7_a_0 - properties.res.inst_6_a_0 - properties.res.inst_5_a_0 - properties.res.inst_4_a_0 - properties.res.inst_3_a_0) - (__node_trans_jafter_0 - properties.res.abs_0_a_1 - properties.res.abs_1_a_1 - properties.res.inst_2_a_1 - properties.res.abs_0_a_0 - properties.res.abs_1_a_0 - properties.res.inst_2_a_0) - (__node_trans_edge_0 - properties.res.abs_2_a_1 - properties.res.abs_3_a_1 - properties.res.inst_1_a_1 - properties.res.abs_2_a_0 - properties.res.abs_3_a_0 - properties.res.inst_1_a_0) - (__node_trans_jafter_0 - properties.usr.door_is_open_a_1 - properties.res.abs_4_a_1 - properties.res.inst_0_a_1 - properties.usr.door_is_open_a_0 - properties.res.abs_4_a_0 - properties.res.inst_0_a_0) - (not properties.res.init_flag_a_1))))) -) - -(define-fun - __node_init_environment_0 ( - (environment.usr.door_is_open_a_0 Bool) - (environment.usr.open_door_a_0 Bool) - (environment.usr.close_door_a_0 Bool) - (environment.usr.in_station_a_0 Bool) - (environment.usr.door_ok_a_0 Bool) - (environment.usr.warning_start_a_0 Bool) - (environment.usr.env_always_ok_a_0 Bool) - (environment.res.init_flag_a_0 Bool) - (environment.res.abs_0_a_0 Bool) - (environment.res.abs_1_a_0 Bool) - (environment.res.abs_2_a_0 Bool) - (environment.res.abs_3_a_0 Bool) - (environment.res.abs_4_a_0 Bool) - (environment.res.abs_5_a_0 Bool) - (environment.res.abs_6_a_0 Bool) - (environment.res.abs_7_a_0 Bool) - (environment.res.abs_8_a_0 Bool) - (environment.res.inst_5_a_0 Bool) - (environment.res.inst_4_a_0 Bool) - (environment.res.inst_3_a_0 Bool) - (environment.res.inst_2_a_0 Bool) - (environment.res.inst_1_a_0 Bool) - (environment.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool (=> environment.res.abs_8_a_0 (not environment.usr.open_door_a_0)))) - (let - ((X2 - Bool (=> environment.usr.warning_start_a_0 environment.usr.in_station_a_0))) - (let - ((X3 Bool (= environment.res.abs_4_a_0 environment.res.abs_7_a_0))) - (let - ((X4 Bool (not environment.usr.in_station_a_0))) - (let - ((X5 Bool (not environment.usr.door_is_open_a_0))) - (let - ((X6 Bool (=> environment.res.abs_4_a_0 environment.res.abs_5_a_0))) - (let - ((X7 Bool (=> environment.res.abs_2_a_0 environment.usr.close_door_a_0))) - (let - ((X8 Bool (=> environment.res.abs_0_a_0 environment.usr.open_door_a_0))) - (let - ((X9 - Bool (and - (and (and (and (and (and (and X7 X8) X6) X5) X4) X3) X2) - X1))) - (and - (= environment.usr.env_always_ok_a_0 X9) - (= environment.res.abs_1_a_0 (not environment.usr.door_is_open_a_0)) - (= environment.res.abs_3_a_0 (not environment.usr.in_station_a_0)) - (= environment.res.abs_6_a_0 (not environment.usr.warning_start_a_0)) - (__node_init_edge_0 - environment.usr.door_is_open_a_0 - environment.res.abs_0_a_0 - environment.res.inst_5_a_0) - (__node_init_edge_0 - environment.res.abs_1_a_0 - environment.res.abs_2_a_0 - environment.res.inst_4_a_0) - (__node_init_edge_0 - environment.res.abs_3_a_0 - environment.res.abs_4_a_0 - environment.res.inst_3_a_0) - (__node_init_jafter_0 - environment.usr.door_ok_a_0 - environment.res.abs_5_a_0 - environment.res.inst_2_a_0) - (__node_init_edge_0 - environment.res.abs_6_a_0 - environment.res.abs_7_a_0 - environment.res.inst_1_a_0) - (__node_init_edge_0 - environment.usr.warning_start_a_0 - environment.res.abs_8_a_0 - environment.res.inst_0_a_0) - environment.res.init_flag_a_0)))))))))) -) - -(define-fun - __node_trans_environment_0 ( - (environment.usr.door_is_open_a_1 Bool) - (environment.usr.open_door_a_1 Bool) - (environment.usr.close_door_a_1 Bool) - (environment.usr.in_station_a_1 Bool) - (environment.usr.door_ok_a_1 Bool) - (environment.usr.warning_start_a_1 Bool) - (environment.usr.env_always_ok_a_1 Bool) - (environment.res.init_flag_a_1 Bool) - (environment.res.abs_0_a_1 Bool) - (environment.res.abs_1_a_1 Bool) - (environment.res.abs_2_a_1 Bool) - (environment.res.abs_3_a_1 Bool) - (environment.res.abs_4_a_1 Bool) - (environment.res.abs_5_a_1 Bool) - (environment.res.abs_6_a_1 Bool) - (environment.res.abs_7_a_1 Bool) - (environment.res.abs_8_a_1 Bool) - (environment.res.inst_5_a_1 Bool) - (environment.res.inst_4_a_1 Bool) - (environment.res.inst_3_a_1 Bool) - (environment.res.inst_2_a_1 Bool) - (environment.res.inst_1_a_1 Bool) - (environment.res.inst_0_a_1 Bool) - (environment.usr.door_is_open_a_0 Bool) - (environment.usr.open_door_a_0 Bool) - (environment.usr.close_door_a_0 Bool) - (environment.usr.in_station_a_0 Bool) - (environment.usr.door_ok_a_0 Bool) - (environment.usr.warning_start_a_0 Bool) - (environment.usr.env_always_ok_a_0 Bool) - (environment.res.init_flag_a_0 Bool) - (environment.res.abs_0_a_0 Bool) - (environment.res.abs_1_a_0 Bool) - (environment.res.abs_2_a_0 Bool) - (environment.res.abs_3_a_0 Bool) - (environment.res.abs_4_a_0 Bool) - (environment.res.abs_5_a_0 Bool) - (environment.res.abs_6_a_0 Bool) - (environment.res.abs_7_a_0 Bool) - (environment.res.abs_8_a_0 Bool) - (environment.res.inst_5_a_0 Bool) - (environment.res.inst_4_a_0 Bool) - (environment.res.inst_3_a_0 Bool) - (environment.res.inst_2_a_0 Bool) - (environment.res.inst_1_a_0 Bool) - (environment.res.inst_0_a_0 Bool) - ) Bool - - (and - (= environment.res.abs_6_a_1 (not environment.usr.warning_start_a_1)) - (= environment.res.abs_3_a_1 (not environment.usr.in_station_a_1)) - (= environment.res.abs_1_a_1 (not environment.usr.door_is_open_a_1)) - (let - ((X1 Bool (=> environment.res.abs_8_a_1 (not environment.usr.open_door_a_1)))) - (let - ((X2 - Bool (=> environment.usr.warning_start_a_1 environment.usr.in_station_a_1))) - (let - ((X3 Bool (= environment.res.abs_4_a_1 environment.res.abs_7_a_1))) - (let - ((X4 Bool true)) - (let - ((X5 Bool true)) - (let - ((X6 Bool (=> environment.res.abs_4_a_1 environment.res.abs_5_a_1))) - (let - ((X7 - Bool (=> environment.res.abs_2_a_1 environment.usr.close_door_a_1))) - (let - ((X8 - Bool (=> environment.res.abs_0_a_1 environment.usr.open_door_a_1))) - (let - ((X9 - Bool (and - (and (and (and (and (and (and X7 X8) X6) X5) X4) X3) X2) - X1))) - (and - (= - environment.usr.env_always_ok_a_1 - (and X9 environment.usr.env_always_ok_a_0)) - (__node_trans_edge_0 - environment.usr.door_is_open_a_1 - environment.res.abs_0_a_1 - environment.res.inst_5_a_1 - environment.usr.door_is_open_a_0 - environment.res.abs_0_a_0 - environment.res.inst_5_a_0) - (__node_trans_edge_0 - environment.res.abs_1_a_1 - environment.res.abs_2_a_1 - environment.res.inst_4_a_1 - environment.res.abs_1_a_0 - environment.res.abs_2_a_0 - environment.res.inst_4_a_0) - (__node_trans_edge_0 - environment.res.abs_3_a_1 - environment.res.abs_4_a_1 - environment.res.inst_3_a_1 - environment.res.abs_3_a_0 - environment.res.abs_4_a_0 - environment.res.inst_3_a_0) - (__node_trans_jafter_0 - environment.usr.door_ok_a_1 - environment.res.abs_5_a_1 - environment.res.inst_2_a_1 - environment.usr.door_ok_a_0 - environment.res.abs_5_a_0 - environment.res.inst_2_a_0) - (__node_trans_edge_0 - environment.res.abs_6_a_1 - environment.res.abs_7_a_1 - environment.res.inst_1_a_1 - environment.res.abs_6_a_0 - environment.res.abs_7_a_0 - environment.res.inst_1_a_0) - (__node_trans_edge_0 - environment.usr.warning_start_a_1 - environment.res.abs_8_a_1 - environment.res.inst_0_a_1 - environment.usr.warning_start_a_0 - environment.res.abs_8_a_0 - environment.res.inst_0_a_0) - (not environment.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.request_door_a_0 Bool) - (top.usr.warning_start_a_0 Bool) - (top.usr.in_station_a_0 Bool) - (top.usr.door_is_open_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.open_door_a_0 Bool) - (top.impl.usr.close_door_a_0 Bool) - (top.impl.usr.door_ok_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.inst_36_a_0 Bool) - (top.res.inst_35_a_0 Bool) - (top.res.inst_34_a_0 Bool) - (top.res.inst_33_a_0 Bool) - (top.res.inst_32_a_0 Bool) - (top.res.inst_31_a_0 Bool) - (top.res.inst_30_a_0 Bool) - (top.res.inst_29_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Bool) - (top.res.inst_23_a_0 Bool) - (top.res.inst_22_a_0 Bool) - (top.res.inst_21_a_0 Bool) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.close_door_a_0 top.res.abs_3_a_0) - (= top.impl.usr.open_door_a_0 top.res.abs_2_a_0) - (let - ((X1 Bool top.res.abs_0_a_0)) - (let - ((X2 Bool top.res.abs_1_a_0)) - (and - (= top.usr.OK_a_0 (=> X2 X1)) - (= top.impl.usr.door_ok_a_0 top.res.abs_4_a_0) - (__node_init_environment_0 - top.usr.door_is_open_a_0 - top.impl.usr.open_door_a_0 - top.impl.usr.close_door_a_0 - top.usr.in_station_a_0 - top.impl.usr.door_ok_a_0 - top.usr.warning_start_a_0 - top.res.abs_1_a_0 - top.res.inst_36_a_0 - top.res.inst_35_a_0 - top.res.inst_34_a_0 - top.res.inst_33_a_0 - top.res.inst_32_a_0 - top.res.inst_31_a_0 - top.res.inst_30_a_0 - top.res.inst_29_a_0 - top.res.inst_28_a_0 - top.res.inst_27_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0) - (__node_init_controller_0 - top.usr.request_door_a_0 - top.usr.warning_start_a_0 - top.usr.in_station_a_0 - top.usr.door_is_open_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0) - (__node_init_properties_0 - top.usr.door_is_open_a_0 - top.usr.in_station_a_0 - top.usr.request_door_a_0 - top.usr.warning_start_a_0 - top.res.abs_0_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.request_door_a_1 Bool) - (top.usr.warning_start_a_1 Bool) - (top.usr.in_station_a_1 Bool) - (top.usr.door_is_open_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.open_door_a_1 Bool) - (top.impl.usr.close_door_a_1 Bool) - (top.impl.usr.door_ok_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.abs_4_a_1 Bool) - (top.res.inst_36_a_1 Bool) - (top.res.inst_35_a_1 Bool) - (top.res.inst_34_a_1 Bool) - (top.res.inst_33_a_1 Bool) - (top.res.inst_32_a_1 Bool) - (top.res.inst_31_a_1 Bool) - (top.res.inst_30_a_1 Bool) - (top.res.inst_29_a_1 Bool) - (top.res.inst_28_a_1 Bool) - (top.res.inst_27_a_1 Bool) - (top.res.inst_26_a_1 Bool) - (top.res.inst_25_a_1 Bool) - (top.res.inst_24_a_1 Bool) - (top.res.inst_23_a_1 Bool) - (top.res.inst_22_a_1 Bool) - (top.res.inst_21_a_1 Bool) - (top.res.inst_20_a_1 Bool) - (top.res.inst_19_a_1 Bool) - (top.res.inst_18_a_1 Bool) - (top.res.inst_17_a_1 Bool) - (top.res.inst_16_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Bool) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Bool) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Bool) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.request_door_a_0 Bool) - (top.usr.warning_start_a_0 Bool) - (top.usr.in_station_a_0 Bool) - (top.usr.door_is_open_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.open_door_a_0 Bool) - (top.impl.usr.close_door_a_0 Bool) - (top.impl.usr.door_ok_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.inst_36_a_0 Bool) - (top.res.inst_35_a_0 Bool) - (top.res.inst_34_a_0 Bool) - (top.res.inst_33_a_0 Bool) - (top.res.inst_32_a_0 Bool) - (top.res.inst_31_a_0 Bool) - (top.res.inst_30_a_0 Bool) - (top.res.inst_29_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Bool) - (top.res.inst_23_a_0 Bool) - (top.res.inst_22_a_0 Bool) - (top.res.inst_21_a_0 Bool) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.close_door_a_1 top.res.abs_3_a_1) - (= top.impl.usr.open_door_a_1 top.res.abs_2_a_1) - (let - ((X1 Bool top.res.abs_0_a_1)) - (let - ((X2 Bool top.res.abs_1_a_1)) - (and - (= top.usr.OK_a_1 (=> X2 X1)) - (= top.impl.usr.door_ok_a_1 top.res.abs_4_a_1) - (__node_trans_environment_0 - top.usr.door_is_open_a_1 - top.impl.usr.open_door_a_1 - top.impl.usr.close_door_a_1 - top.usr.in_station_a_1 - top.impl.usr.door_ok_a_1 - top.usr.warning_start_a_1 - top.res.abs_1_a_1 - top.res.inst_36_a_1 - top.res.inst_35_a_1 - top.res.inst_34_a_1 - top.res.inst_33_a_1 - top.res.inst_32_a_1 - top.res.inst_31_a_1 - top.res.inst_30_a_1 - top.res.inst_29_a_1 - top.res.inst_28_a_1 - top.res.inst_27_a_1 - top.res.inst_26_a_1 - top.res.inst_25_a_1 - top.res.inst_24_a_1 - top.res.inst_23_a_1 - top.res.inst_22_a_1 - top.res.inst_21_a_1 - top.usr.door_is_open_a_0 - top.impl.usr.open_door_a_0 - top.impl.usr.close_door_a_0 - top.usr.in_station_a_0 - top.impl.usr.door_ok_a_0 - top.usr.warning_start_a_0 - top.res.abs_1_a_0 - top.res.inst_36_a_0 - top.res.inst_35_a_0 - top.res.inst_34_a_0 - top.res.inst_33_a_0 - top.res.inst_32_a_0 - top.res.inst_31_a_0 - top.res.inst_30_a_0 - top.res.inst_29_a_0 - top.res.inst_28_a_0 - top.res.inst_27_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0) - (__node_trans_controller_0 - top.usr.request_door_a_1 - top.usr.warning_start_a_1 - top.usr.in_station_a_1 - top.usr.door_is_open_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.inst_20_a_1 - top.res.inst_19_a_1 - top.res.inst_18_a_1 - top.res.inst_17_a_1 - top.res.inst_16_a_1 - top.usr.request_door_a_0 - top.usr.warning_start_a_0 - top.usr.in_station_a_0 - top.usr.door_is_open_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0) - (__node_trans_properties_0 - top.usr.door_is_open_a_1 - top.usr.in_station_a_1 - top.usr.request_door_a_1 - top.usr.warning_start_a_1 - top.res.abs_0_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.res.inst_0_a_1 - top.usr.door_is_open_a_0 - top.usr.in_station_a_0 - top.usr.request_door_a_0 - top.usr.warning_start_a_0 - top.res.abs_0_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.request_door Bool) - (top.usr.warning_start Bool) - (top.usr.in_station Bool) - (top.usr.door_is_open Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.open_door Bool) - (top.impl.usr.close_door Bool) - (top.impl.usr.door_ok Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.request_door Bool) -(declare-primed-var top.usr.warning_start Bool) -(declare-primed-var top.usr.in_station Bool) -(declare-primed-var top.usr.door_is_open Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.open_door Bool) -(declare-primed-var top.impl.usr.close_door Bool) -(declare-primed-var top.impl.usr.door_ok Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.inst_36 Bool) -(declare-primed-var top.res.inst_35 Bool) -(declare-primed-var top.res.inst_34 Bool) -(declare-primed-var top.res.inst_33 Bool) -(declare-primed-var top.res.inst_32 Bool) -(declare-primed-var top.res.inst_31 Bool) -(declare-primed-var top.res.inst_30 Bool) -(declare-primed-var top.res.inst_29 Bool) -(declare-primed-var top.res.inst_28 Bool) -(declare-primed-var top.res.inst_27 Bool) -(declare-primed-var top.res.inst_26 Bool) -(declare-primed-var top.res.inst_25 Bool) -(declare-primed-var top.res.inst_24 Bool) -(declare-primed-var top.res.inst_23 Bool) -(declare-primed-var top.res.inst_22 Bool) -(declare-primed-var top.res.inst_21 Bool) -(declare-primed-var top.res.inst_20 Bool) -(declare-primed-var top.res.inst_19 Bool) -(declare-primed-var top.res.inst_18 Bool) -(declare-primed-var top.res.inst_17 Bool) -(declare-primed-var top.res.inst_16 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Bool) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Bool) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Bool) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.request_door Bool) - (top.usr.warning_start Bool) - (top.usr.in_station Bool) - (top.usr.door_is_open Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.open_door Bool) - (top.impl.usr.close_door Bool) - (top.impl.usr.door_ok Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.impl.usr.close_door top.res.abs_3) - (= top.impl.usr.open_door top.res.abs_2) - (let - ((X1 Bool top.res.abs_0)) - (let - ((X2 Bool top.res.abs_1)) - (and - (= top.usr.OK (=> X2 X1)) - (= top.impl.usr.door_ok top.res.abs_4) - (__node_init_environment_0 - top.usr.door_is_open - top.impl.usr.open_door - top.impl.usr.close_door - top.usr.in_station - top.impl.usr.door_ok - top.usr.warning_start - top.res.abs_1 - top.res.inst_36 - top.res.inst_35 - top.res.inst_34 - top.res.inst_33 - top.res.inst_32 - top.res.inst_31 - top.res.inst_30 - top.res.inst_29 - top.res.inst_28 - top.res.inst_27 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21) - (__node_init_controller_0 - top.usr.request_door - top.usr.warning_start - top.usr.in_station - top.usr.door_is_open - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16) - (__node_init_properties_0 - top.usr.door_is_open - top.usr.in_station - top.usr.request_door - top.usr.warning_start - top.res.abs_0 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.request_door Bool) - (top.usr.warning_start Bool) - (top.usr.in_station Bool) - (top.usr.door_is_open Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.open_door Bool) - (top.impl.usr.close_door Bool) - (top.impl.usr.door_ok Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.request_door! Bool) - (top.usr.warning_start! Bool) - (top.usr.in_station! Bool) - (top.usr.door_is_open! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.open_door! Bool) - (top.impl.usr.close_door! Bool) - (top.impl.usr.door_ok! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.abs_4! Bool) - (top.res.inst_36! Bool) - (top.res.inst_35! Bool) - (top.res.inst_34! Bool) - (top.res.inst_33! Bool) - (top.res.inst_32! Bool) - (top.res.inst_31! Bool) - (top.res.inst_30! Bool) - (top.res.inst_29! Bool) - (top.res.inst_28! Bool) - (top.res.inst_27! Bool) - (top.res.inst_26! Bool) - (top.res.inst_25! Bool) - (top.res.inst_24! Bool) - (top.res.inst_23! Bool) - (top.res.inst_22! Bool) - (top.res.inst_21! Bool) - (top.res.inst_20! Bool) - (top.res.inst_19! Bool) - (top.res.inst_18! Bool) - (top.res.inst_17! Bool) - (top.res.inst_16! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Bool) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Bool) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Bool) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.impl.usr.close_door! top.res.abs_3!) - (= top.impl.usr.open_door! top.res.abs_2!) - (let - ((X1 Bool top.res.abs_0!)) - (let - ((X2 Bool top.res.abs_1!)) - (and - (= top.usr.OK! (=> X2 X1)) - (= top.impl.usr.door_ok! top.res.abs_4!) - (__node_trans_environment_0 - top.usr.door_is_open! - top.impl.usr.open_door! - top.impl.usr.close_door! - top.usr.in_station! - top.impl.usr.door_ok! - top.usr.warning_start! - top.res.abs_1! - top.res.inst_36! - top.res.inst_35! - top.res.inst_34! - top.res.inst_33! - top.res.inst_32! - top.res.inst_31! - top.res.inst_30! - top.res.inst_29! - top.res.inst_28! - top.res.inst_27! - top.res.inst_26! - top.res.inst_25! - top.res.inst_24! - top.res.inst_23! - top.res.inst_22! - top.res.inst_21! - top.usr.door_is_open - top.impl.usr.open_door - top.impl.usr.close_door - top.usr.in_station - top.impl.usr.door_ok - top.usr.warning_start - top.res.abs_1 - top.res.inst_36 - top.res.inst_35 - top.res.inst_34 - top.res.inst_33 - top.res.inst_32 - top.res.inst_31 - top.res.inst_30 - top.res.inst_29 - top.res.inst_28 - top.res.inst_27 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21) - (__node_trans_controller_0 - top.usr.request_door! - top.usr.warning_start! - top.usr.in_station! - top.usr.door_is_open! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.inst_20! - top.res.inst_19! - top.res.inst_18! - top.res.inst_17! - top.res.inst_16! - top.usr.request_door - top.usr.warning_start - top.usr.in_station - top.usr.door_is_open - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16) - (__node_trans_properties_0 - top.usr.door_is_open! - top.usr.in_station! - top.usr.request_door! - top.usr.warning_start! - top.res.abs_0! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.res.inst_0! - top.usr.door_is_open - top.usr.in_station - top.usr.request_door - top.usr.warning_start - top.res.abs_0 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - (not top.res.init_flag!))))) -) - -(define-fun - prop ( - (top.usr.request_door Bool) - (top.usr.warning_start Bool) - (top.usr.in_station Bool) - (top.usr.door_is_open Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.open_door Bool) - (top.impl.usr.close_door Bool) - (top.impl.usr.door_ok Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_switch_0 ((switch.usr.init_a_0 Bool) (switch.usr.on_a_0 Bool) (switch.usr.off_a_0 Bool) (switch.usr.value_a_0 Bool) (switch.res.init_flag_a_0 Bool)) Bool + (and (= switch.usr.value_a_0 (ite switch.usr.on_a_0 true (ite switch.usr.off_a_0 false switch.usr.init_a_0))) switch.res.init_flag_a_0)) +(define-fun __node_trans_switch_0 ((switch.usr.init_a_1 Bool) (switch.usr.on_a_1 Bool) (switch.usr.off_a_1 Bool) (switch.usr.value_a_1 Bool) (switch.res.init_flag_a_1 Bool) (switch.usr.init_a_0 Bool) (switch.usr.on_a_0 Bool) (switch.usr.off_a_0 Bool) (switch.usr.value_a_0 Bool) (switch.res.init_flag_a_0 Bool)) Bool + (and (= switch.usr.value_a_1 (ite switch.usr.on_a_1 true (ite switch.usr.off_a_1 false switch.usr.value_a_0))) (not switch.res.init_flag_a_1))) +(define-fun __node_init_controller_0 ((controller.usr.request_door_a_0 Bool) (controller.usr.warning_start_a_0 Bool) (controller.usr.in_station_a_0 Bool) (controller.usr.door_is_open_a_0 Bool) (controller.usr.open_door_a_0 Bool) (controller.usr.close_door_a_0 Bool) (controller.usr.door_ok_a_0 Bool) (controller.res.init_flag_a_0 Bool) (controller.res.abs_0_a_0 Bool) (controller.res.abs_1_a_0 Bool) (controller.res.abs_2_a_0 Bool) (controller.res.inst_0_a_0 Bool)) Bool + (and (= controller.res.abs_1_a_0 (and controller.usr.request_door_a_0 (not controller.usr.warning_start_a_0))) (= controller.res.abs_0_a_0 false) (let ((X1 controller.res.abs_2_a_0)) (and (= controller.usr.open_door_a_0 (and X1 controller.usr.in_station_a_0)) (= controller.usr.close_door_a_0 (and controller.usr.warning_start_a_0 controller.usr.door_is_open_a_0)) (= controller.usr.door_ok_a_0 (and (not controller.usr.door_is_open_a_0) controller.usr.warning_start_a_0)) (__node_init_switch_0 controller.res.abs_0_a_0 controller.res.abs_1_a_0 controller.usr.door_is_open_a_0 controller.res.abs_2_a_0 controller.res.inst_0_a_0) controller.res.init_flag_a_0)))) +(define-fun __node_trans_controller_0 ((controller.usr.request_door_a_1 Bool) (controller.usr.warning_start_a_1 Bool) (controller.usr.in_station_a_1 Bool) (controller.usr.door_is_open_a_1 Bool) (controller.usr.open_door_a_1 Bool) (controller.usr.close_door_a_1 Bool) (controller.usr.door_ok_a_1 Bool) (controller.res.init_flag_a_1 Bool) (controller.res.abs_0_a_1 Bool) (controller.res.abs_1_a_1 Bool) (controller.res.abs_2_a_1 Bool) (controller.res.inst_0_a_1 Bool) (controller.usr.request_door_a_0 Bool) (controller.usr.warning_start_a_0 Bool) (controller.usr.in_station_a_0 Bool) (controller.usr.door_is_open_a_0 Bool) (controller.usr.open_door_a_0 Bool) (controller.usr.close_door_a_0 Bool) (controller.usr.door_ok_a_0 Bool) (controller.res.init_flag_a_0 Bool) (controller.res.abs_0_a_0 Bool) (controller.res.abs_1_a_0 Bool) (controller.res.abs_2_a_0 Bool) (controller.res.inst_0_a_0 Bool)) Bool + (and (= controller.res.abs_1_a_1 (and controller.usr.request_door_a_1 (not controller.usr.warning_start_a_1))) (let ((X1 controller.res.abs_2_a_1)) (and (= controller.usr.open_door_a_1 (and X1 controller.usr.in_station_a_1)) (= controller.res.abs_0_a_1 false) (= controller.usr.close_door_a_1 (and controller.usr.warning_start_a_1 controller.usr.door_is_open_a_1)) (= controller.usr.door_ok_a_1 (and (not controller.usr.door_is_open_a_1) controller.usr.warning_start_a_1)) (__node_trans_switch_0 controller.res.abs_0_a_1 controller.res.abs_1_a_1 controller.usr.door_is_open_a_1 controller.res.abs_2_a_1 controller.res.inst_0_a_1 controller.res.abs_0_a_0 controller.res.abs_1_a_0 controller.usr.door_is_open_a_0 controller.res.abs_2_a_0 controller.res.inst_0_a_0) (not controller.res.init_flag_a_1))))) +(define-fun __node_init_edge_0 ((edge.usr.X_a_0 Bool) (edge.usr.edge_a_0 Bool) (edge.res.init_flag_a_0 Bool)) Bool + (and (= edge.usr.edge_a_0 false) edge.res.init_flag_a_0)) +(define-fun __node_trans_edge_0 ((edge.usr.X_a_1 Bool) (edge.usr.edge_a_1 Bool) (edge.res.init_flag_a_1 Bool) (edge.usr.X_a_0 Bool) (edge.usr.edge_a_0 Bool) (edge.res.init_flag_a_0 Bool)) Bool + (and (= edge.usr.edge_a_1 (or edge.usr.X_a_1 (not edge.usr.X_a_0))) (not edge.res.init_flag_a_1))) +(define-fun __node_init_jafter_0 ((jafter.usr.X_a_0 Bool) (jafter.usr.after_a_0 Bool) (jafter.res.init_flag_a_0 Bool)) Bool + (and (= jafter.usr.after_a_0 false) jafter.res.init_flag_a_0)) +(define-fun __node_trans_jafter_0 ((jafter.usr.X_a_1 Bool) (jafter.usr.after_a_1 Bool) (jafter.res.init_flag_a_1 Bool) (jafter.usr.X_a_0 Bool) (jafter.usr.after_a_0 Bool) (jafter.res.init_flag_a_0 Bool)) Bool + (and (= jafter.usr.after_a_1 jafter.usr.X_a_0) (not jafter.res.init_flag_a_1))) +(define-fun __node_init_once_from_to_0 ((once_from_to.usr.A_a_0 Bool) (once_from_to.usr.B_a_0 Bool) (once_from_to.usr.X_a_0 Bool) (once_from_to.usr.OK_a_0 Bool) (once_from_to.res.init_flag_a_0 Bool) (once_from_to.res.abs_0_a_0 Bool) (once_from_to.res.abs_1_a_0 Bool) (once_from_to.res.abs_2_a_0 Bool) (once_from_to.res.inst_1_a_0 Bool) (once_from_to.res.inst_0_a_0 Bool)) Bool + (and (= once_from_to.res.abs_1_a_0 false) (let ((X1 once_from_to.res.abs_2_a_0)) (and (= once_from_to.usr.OK_a_0 (not (or X1 once_from_to.usr.B_a_0))) (__node_init_switch_0 once_from_to.res.abs_1_a_0 once_from_to.usr.A_a_0 once_from_to.res.abs_0_a_0 once_from_to.res.abs_2_a_0 once_from_to.res.inst_1_a_0) (__node_init_jafter_0 once_from_to.usr.X_a_0 once_from_to.res.abs_0_a_0 once_from_to.res.inst_0_a_0) once_from_to.res.init_flag_a_0)))) +(define-fun __node_trans_once_from_to_0 ((once_from_to.usr.A_a_1 Bool) (once_from_to.usr.B_a_1 Bool) (once_from_to.usr.X_a_1 Bool) (once_from_to.usr.OK_a_1 Bool) (once_from_to.res.init_flag_a_1 Bool) (once_from_to.res.abs_0_a_1 Bool) (once_from_to.res.abs_1_a_1 Bool) (once_from_to.res.abs_2_a_1 Bool) (once_from_to.res.inst_1_a_1 Bool) (once_from_to.res.inst_0_a_1 Bool) (once_from_to.usr.A_a_0 Bool) (once_from_to.usr.B_a_0 Bool) (once_from_to.usr.X_a_0 Bool) (once_from_to.usr.OK_a_0 Bool) (once_from_to.res.init_flag_a_0 Bool) (once_from_to.res.abs_0_a_0 Bool) (once_from_to.res.abs_1_a_0 Bool) (once_from_to.res.abs_2_a_0 Bool) (once_from_to.res.inst_1_a_0 Bool) (once_from_to.res.inst_0_a_0 Bool)) Bool + (let ((X1 once_from_to.res.abs_2_a_1)) (and (= once_from_to.usr.OK_a_1 (not (or X1 once_from_to.usr.B_a_1))) (= once_from_to.res.abs_1_a_1 false) (__node_trans_switch_0 once_from_to.res.abs_1_a_1 once_from_to.usr.A_a_1 once_from_to.res.abs_0_a_1 once_from_to.res.abs_2_a_1 once_from_to.res.inst_1_a_1 once_from_to.res.abs_1_a_0 once_from_to.usr.A_a_0 once_from_to.res.abs_0_a_0 once_from_to.res.abs_2_a_0 once_from_to.res.inst_1_a_0) (__node_trans_jafter_0 once_from_to.usr.X_a_1 once_from_to.res.abs_0_a_1 once_from_to.res.inst_0_a_1 once_from_to.usr.X_a_0 once_from_to.res.abs_0_a_0 once_from_to.res.inst_0_a_0) (not once_from_to.res.init_flag_a_1)))) +(define-fun __node_init_properties_0 ((properties.usr.door_is_open_a_0 Bool) (properties.usr.in_station_a_0 Bool) (properties.usr.request_door_a_0 Bool) (properties.usr.warning_start_a_0 Bool) (properties.usr.OK_a_0 Bool) (properties.res.init_flag_a_0 Bool) (properties.res.abs_0_a_0 Bool) (properties.res.abs_1_a_0 Bool) (properties.res.abs_2_a_0 Bool) (properties.res.abs_3_a_0 Bool) (properties.res.abs_4_a_0 Bool) (properties.res.abs_5_a_0 Bool) (properties.res.inst_8_a_0 Bool) (properties.res.inst_7_a_0 Bool) (properties.res.inst_6_a_0 Bool) (properties.res.inst_5_a_0 Bool) (properties.res.inst_4_a_0 Bool) (properties.res.inst_3_a_0 Bool) (properties.res.inst_2_a_0 Bool) (properties.res.inst_1_a_0 Bool) (properties.res.inst_0_a_0 Bool)) Bool + (let ((X1 properties.res.abs_5_a_0)) (let ((X2 (=> properties.usr.door_is_open_a_0 properties.usr.in_station_a_0))) (and (= properties.usr.OK_a_0 (and X2 X1)) (= properties.res.abs_0_a_0 (and properties.usr.request_door_a_0 (not properties.usr.warning_start_a_0))) (= properties.res.abs_2_a_0 (not properties.usr.in_station_a_0)) (__node_init_once_from_to_0 properties.res.abs_1_a_0 properties.res.abs_3_a_0 properties.res.abs_4_a_0 properties.res.abs_5_a_0 properties.res.inst_8_a_0 properties.res.inst_7_a_0 properties.res.inst_6_a_0 properties.res.inst_5_a_0 properties.res.inst_4_a_0 properties.res.inst_3_a_0) (__node_init_jafter_0 properties.res.abs_0_a_0 properties.res.abs_1_a_0 properties.res.inst_2_a_0) (__node_init_edge_0 properties.res.abs_2_a_0 properties.res.abs_3_a_0 properties.res.inst_1_a_0) (__node_init_jafter_0 properties.usr.door_is_open_a_0 properties.res.abs_4_a_0 properties.res.inst_0_a_0) properties.res.init_flag_a_0)))) +(define-fun __node_trans_properties_0 ((properties.usr.door_is_open_a_1 Bool) (properties.usr.in_station_a_1 Bool) (properties.usr.request_door_a_1 Bool) (properties.usr.warning_start_a_1 Bool) (properties.usr.OK_a_1 Bool) (properties.res.init_flag_a_1 Bool) (properties.res.abs_0_a_1 Bool) (properties.res.abs_1_a_1 Bool) (properties.res.abs_2_a_1 Bool) (properties.res.abs_3_a_1 Bool) (properties.res.abs_4_a_1 Bool) (properties.res.abs_5_a_1 Bool) (properties.res.inst_8_a_1 Bool) (properties.res.inst_7_a_1 Bool) (properties.res.inst_6_a_1 Bool) (properties.res.inst_5_a_1 Bool) (properties.res.inst_4_a_1 Bool) (properties.res.inst_3_a_1 Bool) (properties.res.inst_2_a_1 Bool) (properties.res.inst_1_a_1 Bool) (properties.res.inst_0_a_1 Bool) (properties.usr.door_is_open_a_0 Bool) (properties.usr.in_station_a_0 Bool) (properties.usr.request_door_a_0 Bool) (properties.usr.warning_start_a_0 Bool) (properties.usr.OK_a_0 Bool) (properties.res.init_flag_a_0 Bool) (properties.res.abs_0_a_0 Bool) (properties.res.abs_1_a_0 Bool) (properties.res.abs_2_a_0 Bool) (properties.res.abs_3_a_0 Bool) (properties.res.abs_4_a_0 Bool) (properties.res.abs_5_a_0 Bool) (properties.res.inst_8_a_0 Bool) (properties.res.inst_7_a_0 Bool) (properties.res.inst_6_a_0 Bool) (properties.res.inst_5_a_0 Bool) (properties.res.inst_4_a_0 Bool) (properties.res.inst_3_a_0 Bool) (properties.res.inst_2_a_0 Bool) (properties.res.inst_1_a_0 Bool) (properties.res.inst_0_a_0 Bool)) Bool + (and (= properties.res.abs_2_a_1 (not properties.usr.in_station_a_1)) (let ((X1 properties.res.abs_5_a_1)) (let ((X2 (=> properties.usr.door_is_open_a_1 properties.usr.in_station_a_1))) (and (= properties.usr.OK_a_1 (and X2 X1)) (= properties.res.abs_0_a_1 (and properties.usr.request_door_a_1 (not properties.usr.warning_start_a_1))) (__node_trans_once_from_to_0 properties.res.abs_1_a_1 properties.res.abs_3_a_1 properties.res.abs_4_a_1 properties.res.abs_5_a_1 properties.res.inst_8_a_1 properties.res.inst_7_a_1 properties.res.inst_6_a_1 properties.res.inst_5_a_1 properties.res.inst_4_a_1 properties.res.inst_3_a_1 properties.res.abs_1_a_0 properties.res.abs_3_a_0 properties.res.abs_4_a_0 properties.res.abs_5_a_0 properties.res.inst_8_a_0 properties.res.inst_7_a_0 properties.res.inst_6_a_0 properties.res.inst_5_a_0 properties.res.inst_4_a_0 properties.res.inst_3_a_0) (__node_trans_jafter_0 properties.res.abs_0_a_1 properties.res.abs_1_a_1 properties.res.inst_2_a_1 properties.res.abs_0_a_0 properties.res.abs_1_a_0 properties.res.inst_2_a_0) (__node_trans_edge_0 properties.res.abs_2_a_1 properties.res.abs_3_a_1 properties.res.inst_1_a_1 properties.res.abs_2_a_0 properties.res.abs_3_a_0 properties.res.inst_1_a_0) (__node_trans_jafter_0 properties.usr.door_is_open_a_1 properties.res.abs_4_a_1 properties.res.inst_0_a_1 properties.usr.door_is_open_a_0 properties.res.abs_4_a_0 properties.res.inst_0_a_0) (not properties.res.init_flag_a_1)))))) +(define-fun __node_init_environment_0 ((environment.usr.door_is_open_a_0 Bool) (environment.usr.open_door_a_0 Bool) (environment.usr.close_door_a_0 Bool) (environment.usr.in_station_a_0 Bool) (environment.usr.door_ok_a_0 Bool) (environment.usr.warning_start_a_0 Bool) (environment.usr.env_always_ok_a_0 Bool) (environment.res.init_flag_a_0 Bool) (environment.res.abs_0_a_0 Bool) (environment.res.abs_1_a_0 Bool) (environment.res.abs_2_a_0 Bool) (environment.res.abs_3_a_0 Bool) (environment.res.abs_4_a_0 Bool) (environment.res.abs_5_a_0 Bool) (environment.res.abs_6_a_0 Bool) (environment.res.abs_7_a_0 Bool) (environment.res.abs_8_a_0 Bool) (environment.res.inst_5_a_0 Bool) (environment.res.inst_4_a_0 Bool) (environment.res.inst_3_a_0 Bool) (environment.res.inst_2_a_0 Bool) (environment.res.inst_1_a_0 Bool) (environment.res.inst_0_a_0 Bool)) Bool + (let ((X1 (=> environment.res.abs_8_a_0 (not environment.usr.open_door_a_0)))) (let ((X2 (=> environment.usr.warning_start_a_0 environment.usr.in_station_a_0))) (let ((X3 (= environment.res.abs_4_a_0 environment.res.abs_7_a_0))) (let ((X4 (not environment.usr.in_station_a_0))) (let ((X5 (not environment.usr.door_is_open_a_0))) (let ((X6 (=> environment.res.abs_4_a_0 environment.res.abs_5_a_0))) (let ((X7 (=> environment.res.abs_2_a_0 environment.usr.close_door_a_0))) (let ((X8 (=> environment.res.abs_0_a_0 environment.usr.open_door_a_0))) (let ((X9 (and (and (and (and (and (and (and X7 X8) X6) X5) X4) X3) X2) X1))) (and (= environment.usr.env_always_ok_a_0 X9) (= environment.res.abs_1_a_0 (not environment.usr.door_is_open_a_0)) (= environment.res.abs_3_a_0 (not environment.usr.in_station_a_0)) (= environment.res.abs_6_a_0 (not environment.usr.warning_start_a_0)) (__node_init_edge_0 environment.usr.door_is_open_a_0 environment.res.abs_0_a_0 environment.res.inst_5_a_0) (__node_init_edge_0 environment.res.abs_1_a_0 environment.res.abs_2_a_0 environment.res.inst_4_a_0) (__node_init_edge_0 environment.res.abs_3_a_0 environment.res.abs_4_a_0 environment.res.inst_3_a_0) (__node_init_jafter_0 environment.usr.door_ok_a_0 environment.res.abs_5_a_0 environment.res.inst_2_a_0) (__node_init_edge_0 environment.res.abs_6_a_0 environment.res.abs_7_a_0 environment.res.inst_1_a_0) (__node_init_edge_0 environment.usr.warning_start_a_0 environment.res.abs_8_a_0 environment.res.inst_0_a_0) environment.res.init_flag_a_0))))))))))) +(define-fun __node_trans_environment_0 ((environment.usr.door_is_open_a_1 Bool) (environment.usr.open_door_a_1 Bool) (environment.usr.close_door_a_1 Bool) (environment.usr.in_station_a_1 Bool) (environment.usr.door_ok_a_1 Bool) (environment.usr.warning_start_a_1 Bool) (environment.usr.env_always_ok_a_1 Bool) (environment.res.init_flag_a_1 Bool) (environment.res.abs_0_a_1 Bool) (environment.res.abs_1_a_1 Bool) (environment.res.abs_2_a_1 Bool) (environment.res.abs_3_a_1 Bool) (environment.res.abs_4_a_1 Bool) (environment.res.abs_5_a_1 Bool) (environment.res.abs_6_a_1 Bool) (environment.res.abs_7_a_1 Bool) (environment.res.abs_8_a_1 Bool) (environment.res.inst_5_a_1 Bool) (environment.res.inst_4_a_1 Bool) (environment.res.inst_3_a_1 Bool) (environment.res.inst_2_a_1 Bool) (environment.res.inst_1_a_1 Bool) (environment.res.inst_0_a_1 Bool) (environment.usr.door_is_open_a_0 Bool) (environment.usr.open_door_a_0 Bool) (environment.usr.close_door_a_0 Bool) (environment.usr.in_station_a_0 Bool) (environment.usr.door_ok_a_0 Bool) (environment.usr.warning_start_a_0 Bool) (environment.usr.env_always_ok_a_0 Bool) (environment.res.init_flag_a_0 Bool) (environment.res.abs_0_a_0 Bool) (environment.res.abs_1_a_0 Bool) (environment.res.abs_2_a_0 Bool) (environment.res.abs_3_a_0 Bool) (environment.res.abs_4_a_0 Bool) (environment.res.abs_5_a_0 Bool) (environment.res.abs_6_a_0 Bool) (environment.res.abs_7_a_0 Bool) (environment.res.abs_8_a_0 Bool) (environment.res.inst_5_a_0 Bool) (environment.res.inst_4_a_0 Bool) (environment.res.inst_3_a_0 Bool) (environment.res.inst_2_a_0 Bool) (environment.res.inst_1_a_0 Bool) (environment.res.inst_0_a_0 Bool)) Bool + (and (= environment.res.abs_6_a_1 (not environment.usr.warning_start_a_1)) (= environment.res.abs_3_a_1 (not environment.usr.in_station_a_1)) (= environment.res.abs_1_a_1 (not environment.usr.door_is_open_a_1)) (let ((X1 (=> environment.res.abs_8_a_1 (not environment.usr.open_door_a_1)))) (let ((X2 (=> environment.usr.warning_start_a_1 environment.usr.in_station_a_1))) (let ((X3 (= environment.res.abs_4_a_1 environment.res.abs_7_a_1))) (let ((X4 true)) (let ((X5 true)) (let ((X6 (=> environment.res.abs_4_a_1 environment.res.abs_5_a_1))) (let ((X7 (=> environment.res.abs_2_a_1 environment.usr.close_door_a_1))) (let ((X8 (=> environment.res.abs_0_a_1 environment.usr.open_door_a_1))) (let ((X9 (and (and (and (and (and (and (and X7 X8) X6) X5) X4) X3) X2) X1))) (and (= environment.usr.env_always_ok_a_1 (and X9 environment.usr.env_always_ok_a_0)) (__node_trans_edge_0 environment.usr.door_is_open_a_1 environment.res.abs_0_a_1 environment.res.inst_5_a_1 environment.usr.door_is_open_a_0 environment.res.abs_0_a_0 environment.res.inst_5_a_0) (__node_trans_edge_0 environment.res.abs_1_a_1 environment.res.abs_2_a_1 environment.res.inst_4_a_1 environment.res.abs_1_a_0 environment.res.abs_2_a_0 environment.res.inst_4_a_0) (__node_trans_edge_0 environment.res.abs_3_a_1 environment.res.abs_4_a_1 environment.res.inst_3_a_1 environment.res.abs_3_a_0 environment.res.abs_4_a_0 environment.res.inst_3_a_0) (__node_trans_jafter_0 environment.usr.door_ok_a_1 environment.res.abs_5_a_1 environment.res.inst_2_a_1 environment.usr.door_ok_a_0 environment.res.abs_5_a_0 environment.res.inst_2_a_0) (__node_trans_edge_0 environment.res.abs_6_a_1 environment.res.abs_7_a_1 environment.res.inst_1_a_1 environment.res.abs_6_a_0 environment.res.abs_7_a_0 environment.res.inst_1_a_0) (__node_trans_edge_0 environment.usr.warning_start_a_1 environment.res.abs_8_a_1 environment.res.inst_0_a_1 environment.usr.warning_start_a_0 environment.res.abs_8_a_0 environment.res.inst_0_a_0) (not environment.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.request_door_a_0 Bool) (top.usr.warning_start_a_0 Bool) (top.usr.in_station_a_0 Bool) (top.usr.door_is_open_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.open_door_a_0 Bool) (top.impl.usr.close_door_a_0 Bool) (top.impl.usr.door_ok_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.inst_36_a_0 Bool) (top.res.inst_35_a_0 Bool) (top.res.inst_34_a_0 Bool) (top.res.inst_33_a_0 Bool) (top.res.inst_32_a_0 Bool) (top.res.inst_31_a_0 Bool) (top.res.inst_30_a_0 Bool) (top.res.inst_29_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.close_door_a_0 top.res.abs_3_a_0) (= top.impl.usr.open_door_a_0 top.res.abs_2_a_0) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (and (= top.usr.OK_a_0 (=> X2 X1)) (= top.impl.usr.door_ok_a_0 top.res.abs_4_a_0) (__node_init_environment_0 top.usr.door_is_open_a_0 top.impl.usr.open_door_a_0 top.impl.usr.close_door_a_0 top.usr.in_station_a_0 top.impl.usr.door_ok_a_0 top.usr.warning_start_a_0 top.res.abs_1_a_0 top.res.inst_36_a_0 top.res.inst_35_a_0 top.res.inst_34_a_0 top.res.inst_33_a_0 top.res.inst_32_a_0 top.res.inst_31_a_0 top.res.inst_30_a_0 top.res.inst_29_a_0 top.res.inst_28_a_0 top.res.inst_27_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0) (__node_init_controller_0 top.usr.request_door_a_0 top.usr.warning_start_a_0 top.usr.in_station_a_0 top.usr.door_is_open_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0) (__node_init_properties_0 top.usr.door_is_open_a_0 top.usr.in_station_a_0 top.usr.request_door_a_0 top.usr.warning_start_a_0 top.res.abs_0_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.request_door_a_1 Bool) (top.usr.warning_start_a_1 Bool) (top.usr.in_station_a_1 Bool) (top.usr.door_is_open_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.open_door_a_1 Bool) (top.impl.usr.close_door_a_1 Bool) (top.impl.usr.door_ok_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.abs_4_a_1 Bool) (top.res.inst_36_a_1 Bool) (top.res.inst_35_a_1 Bool) (top.res.inst_34_a_1 Bool) (top.res.inst_33_a_1 Bool) (top.res.inst_32_a_1 Bool) (top.res.inst_31_a_1 Bool) (top.res.inst_30_a_1 Bool) (top.res.inst_29_a_1 Bool) (top.res.inst_28_a_1 Bool) (top.res.inst_27_a_1 Bool) (top.res.inst_26_a_1 Bool) (top.res.inst_25_a_1 Bool) (top.res.inst_24_a_1 Bool) (top.res.inst_23_a_1 Bool) (top.res.inst_22_a_1 Bool) (top.res.inst_21_a_1 Bool) (top.res.inst_20_a_1 Bool) (top.res.inst_19_a_1 Bool) (top.res.inst_18_a_1 Bool) (top.res.inst_17_a_1 Bool) (top.res.inst_16_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Bool) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Bool) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Bool) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.request_door_a_0 Bool) (top.usr.warning_start_a_0 Bool) (top.usr.in_station_a_0 Bool) (top.usr.door_is_open_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.open_door_a_0 Bool) (top.impl.usr.close_door_a_0 Bool) (top.impl.usr.door_ok_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.inst_36_a_0 Bool) (top.res.inst_35_a_0 Bool) (top.res.inst_34_a_0 Bool) (top.res.inst_33_a_0 Bool) (top.res.inst_32_a_0 Bool) (top.res.inst_31_a_0 Bool) (top.res.inst_30_a_0 Bool) (top.res.inst_29_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.close_door_a_1 top.res.abs_3_a_1) (= top.impl.usr.open_door_a_1 top.res.abs_2_a_1) (let ((X1 top.res.abs_0_a_1)) (let ((X2 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (=> X2 X1)) (= top.impl.usr.door_ok_a_1 top.res.abs_4_a_1) (__node_trans_environment_0 top.usr.door_is_open_a_1 top.impl.usr.open_door_a_1 top.impl.usr.close_door_a_1 top.usr.in_station_a_1 top.impl.usr.door_ok_a_1 top.usr.warning_start_a_1 top.res.abs_1_a_1 top.res.inst_36_a_1 top.res.inst_35_a_1 top.res.inst_34_a_1 top.res.inst_33_a_1 top.res.inst_32_a_1 top.res.inst_31_a_1 top.res.inst_30_a_1 top.res.inst_29_a_1 top.res.inst_28_a_1 top.res.inst_27_a_1 top.res.inst_26_a_1 top.res.inst_25_a_1 top.res.inst_24_a_1 top.res.inst_23_a_1 top.res.inst_22_a_1 top.res.inst_21_a_1 top.usr.door_is_open_a_0 top.impl.usr.open_door_a_0 top.impl.usr.close_door_a_0 top.usr.in_station_a_0 top.impl.usr.door_ok_a_0 top.usr.warning_start_a_0 top.res.abs_1_a_0 top.res.inst_36_a_0 top.res.inst_35_a_0 top.res.inst_34_a_0 top.res.inst_33_a_0 top.res.inst_32_a_0 top.res.inst_31_a_0 top.res.inst_30_a_0 top.res.inst_29_a_0 top.res.inst_28_a_0 top.res.inst_27_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0) (__node_trans_controller_0 top.usr.request_door_a_1 top.usr.warning_start_a_1 top.usr.in_station_a_1 top.usr.door_is_open_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.inst_20_a_1 top.res.inst_19_a_1 top.res.inst_18_a_1 top.res.inst_17_a_1 top.res.inst_16_a_1 top.usr.request_door_a_0 top.usr.warning_start_a_0 top.usr.in_station_a_0 top.usr.door_is_open_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0) (__node_trans_properties_0 top.usr.door_is_open_a_1 top.usr.in_station_a_1 top.usr.request_door_a_1 top.usr.warning_start_a_1 top.res.abs_0_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.res.inst_0_a_1 top.usr.door_is_open_a_0 top.usr.in_station_a_0 top.usr.request_door_a_0 top.usr.warning_start_a_0 top.res.abs_0_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.request_door Bool) (top.usr.warning_start Bool) (top.usr.in_station Bool) (top.usr.door_is_open Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.open_door Bool) (top.impl.usr.close_door Bool) (top.impl.usr.door_ok Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.request_door Bool) (top.usr.warning_start Bool) (top.usr.in_station Bool) (top.usr.door_is_open Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.open_door Bool) (top.impl.usr.close_door Bool) (top.impl.usr.door_ok Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.close_door top.res.abs_3) (= top.impl.usr.open_door top.res.abs_2) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (and (= top.usr.OK (=> X2 X1)) (= top.impl.usr.door_ok top.res.abs_4) (__node_init_environment_0 top.usr.door_is_open top.impl.usr.open_door top.impl.usr.close_door top.usr.in_station top.impl.usr.door_ok top.usr.warning_start top.res.abs_1 top.res.inst_36 top.res.inst_35 top.res.inst_34 top.res.inst_33 top.res.inst_32 top.res.inst_31 top.res.inst_30 top.res.inst_29 top.res.inst_28 top.res.inst_27 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21) (__node_init_controller_0 top.usr.request_door top.usr.warning_start top.usr.in_station top.usr.door_is_open top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16) (__node_init_properties_0 top.usr.door_is_open top.usr.in_station top.usr.request_door top.usr.warning_start top.res.abs_0 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.request_door Bool) (top.usr.warning_start Bool) (top.usr.in_station Bool) (top.usr.door_is_open Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.open_door Bool) (top.impl.usr.close_door Bool) (top.impl.usr.door_ok Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.request_door! Bool) (top.usr.warning_start! Bool) (top.usr.in_station! Bool) (top.usr.door_is_open! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.open_door! Bool) (top.impl.usr.close_door! Bool) (top.impl.usr.door_ok! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.abs_4! Bool) (top.res.inst_36! Bool) (top.res.inst_35! Bool) (top.res.inst_34! Bool) (top.res.inst_33! Bool) (top.res.inst_32! Bool) (top.res.inst_31! Bool) (top.res.inst_30! Bool) (top.res.inst_29! Bool) (top.res.inst_28! Bool) (top.res.inst_27! Bool) (top.res.inst_26! Bool) (top.res.inst_25! Bool) (top.res.inst_24! Bool) (top.res.inst_23! Bool) (top.res.inst_22! Bool) (top.res.inst_21! Bool) (top.res.inst_20! Bool) (top.res.inst_19! Bool) (top.res.inst_18! Bool) (top.res.inst_17! Bool) (top.res.inst_16! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Bool) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Bool) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Bool) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.close_door! top.res.abs_3!) (= top.impl.usr.open_door! top.res.abs_2!) (let ((X1 top.res.abs_0!)) (let ((X2 top.res.abs_1!)) (and (= top.usr.OK! (=> X2 X1)) (= top.impl.usr.door_ok! top.res.abs_4!) (__node_trans_environment_0 top.usr.door_is_open! top.impl.usr.open_door! top.impl.usr.close_door! top.usr.in_station! top.impl.usr.door_ok! top.usr.warning_start! top.res.abs_1! top.res.inst_36! top.res.inst_35! top.res.inst_34! top.res.inst_33! top.res.inst_32! top.res.inst_31! top.res.inst_30! top.res.inst_29! top.res.inst_28! top.res.inst_27! top.res.inst_26! top.res.inst_25! top.res.inst_24! top.res.inst_23! top.res.inst_22! top.res.inst_21! top.usr.door_is_open top.impl.usr.open_door top.impl.usr.close_door top.usr.in_station top.impl.usr.door_ok top.usr.warning_start top.res.abs_1 top.res.inst_36 top.res.inst_35 top.res.inst_34 top.res.inst_33 top.res.inst_32 top.res.inst_31 top.res.inst_30 top.res.inst_29 top.res.inst_28 top.res.inst_27 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21) (__node_trans_controller_0 top.usr.request_door! top.usr.warning_start! top.usr.in_station! top.usr.door_is_open! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.inst_20! top.res.inst_19! top.res.inst_18! top.res.inst_17! top.res.inst_16! top.usr.request_door top.usr.warning_start top.usr.in_station top.usr.door_is_open top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16) (__node_trans_properties_0 top.usr.door_is_open! top.usr.in_station! top.usr.request_door! top.usr.warning_start! top.res.abs_0! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.res.inst_0! top.usr.door_is_open top.usr.in_station top.usr.request_door top.usr.warning_start top.res.abs_0 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) (not top.res.init_flag!)))))) +(define-fun prop ((top.usr.request_door Bool) (top.usr.warning_start Bool) (top.usr.in_station Bool) (top.usr.door_is_open Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.open_door Bool) (top.impl.usr.close_door Bool) (top.impl.usr.door_ok Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/tramway_e7_1834_e8_3192.sl b/benchmarks/LIA/Lustre/tramway_e7_1834_e8_3192.sl index 7b9752a..03ba191 100644 --- a/benchmarks/LIA/Lustre/tramway_e7_1834_e8_3192.sl +++ b/benchmarks/LIA/Lustre/tramway_e7_1834_e8_3192.sl @@ -1,1547 +1,47 @@ (set-logic LIA) -(define-fun - __node_init_switch_0 ( - (switch.usr.init_a_0 Bool) - (switch.usr.on_a_0 Bool) - (switch.usr.off_a_0 Bool) - (switch.usr.value_a_0 Bool) - (switch.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - switch.usr.value_a_0 - (ite switch.usr.on_a_0 true (ite switch.usr.off_a_0 false switch.usr.init_a_0))) - switch.res.init_flag_a_0) -) - -(define-fun - __node_trans_switch_0 ( - (switch.usr.init_a_1 Bool) - (switch.usr.on_a_1 Bool) - (switch.usr.off_a_1 Bool) - (switch.usr.value_a_1 Bool) - (switch.res.init_flag_a_1 Bool) - (switch.usr.init_a_0 Bool) - (switch.usr.on_a_0 Bool) - (switch.usr.off_a_0 Bool) - (switch.usr.value_a_0 Bool) - (switch.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - switch.usr.value_a_1 - (ite - switch.usr.on_a_1 - true - (ite switch.usr.off_a_1 false switch.usr.value_a_0))) - (not switch.res.init_flag_a_1)) -) - -(define-fun - __node_init_controller_0 ( - (controller.usr.request_door_a_0 Bool) - (controller.usr.warning_start_a_0 Bool) - (controller.usr.in_station_a_0 Bool) - (controller.usr.door_is_open_a_0 Bool) - (controller.usr.open_door_a_0 Bool) - (controller.usr.close_door_a_0 Bool) - (controller.usr.door_ok_a_0 Bool) - (controller.res.init_flag_a_0 Bool) - (controller.res.abs_0_a_0 Bool) - (controller.res.abs_1_a_0 Bool) - (controller.res.abs_2_a_0 Bool) - (controller.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - controller.res.abs_1_a_0 - (and controller.usr.request_door_a_0 (not controller.usr.warning_start_a_0))) - (= controller.res.abs_0_a_0 false) - (let - ((X1 Bool controller.res.abs_2_a_0)) - (and - (= controller.usr.open_door_a_0 (and X1 controller.usr.in_station_a_0)) - (= - controller.usr.close_door_a_0 - (and controller.usr.warning_start_a_0 controller.usr.door_is_open_a_0)) - (= - controller.usr.door_ok_a_0 - (and - (not controller.usr.door_is_open_a_0) - controller.usr.warning_start_a_0)) - (__node_init_switch_0 - controller.res.abs_0_a_0 - controller.res.abs_1_a_0 - controller.usr.door_is_open_a_0 - controller.res.abs_2_a_0 - controller.res.inst_0_a_0) - controller.res.init_flag_a_0))) -) - -(define-fun - __node_trans_controller_0 ( - (controller.usr.request_door_a_1 Bool) - (controller.usr.warning_start_a_1 Bool) - (controller.usr.in_station_a_1 Bool) - (controller.usr.door_is_open_a_1 Bool) - (controller.usr.open_door_a_1 Bool) - (controller.usr.close_door_a_1 Bool) - (controller.usr.door_ok_a_1 Bool) - (controller.res.init_flag_a_1 Bool) - (controller.res.abs_0_a_1 Bool) - (controller.res.abs_1_a_1 Bool) - (controller.res.abs_2_a_1 Bool) - (controller.res.inst_0_a_1 Bool) - (controller.usr.request_door_a_0 Bool) - (controller.usr.warning_start_a_0 Bool) - (controller.usr.in_station_a_0 Bool) - (controller.usr.door_is_open_a_0 Bool) - (controller.usr.open_door_a_0 Bool) - (controller.usr.close_door_a_0 Bool) - (controller.usr.door_ok_a_0 Bool) - (controller.res.init_flag_a_0 Bool) - (controller.res.abs_0_a_0 Bool) - (controller.res.abs_1_a_0 Bool) - (controller.res.abs_2_a_0 Bool) - (controller.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - controller.res.abs_1_a_1 - (and controller.usr.request_door_a_1 (not controller.usr.warning_start_a_1))) - (let - ((X1 Bool controller.res.abs_2_a_1)) - (and - (= controller.usr.open_door_a_1 (and X1 controller.usr.in_station_a_1)) - (= controller.res.abs_0_a_1 false) - (= - controller.usr.close_door_a_1 - (and controller.usr.warning_start_a_1 controller.usr.door_is_open_a_1)) - (= - controller.usr.door_ok_a_1 - (and - (not controller.usr.door_is_open_a_1) - controller.usr.warning_start_a_1)) - (__node_trans_switch_0 - controller.res.abs_0_a_1 - controller.res.abs_1_a_1 - controller.usr.door_is_open_a_1 - controller.res.abs_2_a_1 - controller.res.inst_0_a_1 - controller.res.abs_0_a_0 - controller.res.abs_1_a_0 - controller.usr.door_is_open_a_0 - controller.res.abs_2_a_0 - controller.res.inst_0_a_0) - (not controller.res.init_flag_a_1)))) -) - -(define-fun - __node_init_edge_0 ( - (edge.usr.X_a_0 Bool) - (edge.usr.edge_a_0 Bool) - (edge.res.init_flag_a_0 Bool) - ) Bool - - (and (= edge.usr.edge_a_0 false) edge.res.init_flag_a_0) -) - -(define-fun - __node_trans_edge_0 ( - (edge.usr.X_a_1 Bool) - (edge.usr.edge_a_1 Bool) - (edge.res.init_flag_a_1 Bool) - (edge.usr.X_a_0 Bool) - (edge.usr.edge_a_0 Bool) - (edge.res.init_flag_a_0 Bool) - ) Bool - - (and - (= edge.usr.edge_a_1 (and edge.usr.X_a_1 (not edge.usr.X_a_0))) - (not edge.res.init_flag_a_1)) -) - -(define-fun - __node_init_jafter_0 ( - (jafter.usr.X_a_0 Bool) - (jafter.usr.after_a_0 Bool) - (jafter.res.init_flag_a_0 Bool) - ) Bool - - (and (= jafter.usr.after_a_0 false) jafter.res.init_flag_a_0) -) - -(define-fun - __node_trans_jafter_0 ( - (jafter.usr.X_a_1 Bool) - (jafter.usr.after_a_1 Bool) - (jafter.res.init_flag_a_1 Bool) - (jafter.usr.X_a_0 Bool) - (jafter.usr.after_a_0 Bool) - (jafter.res.init_flag_a_0 Bool) - ) Bool - - (and (= jafter.usr.after_a_1 jafter.usr.X_a_0) (not jafter.res.init_flag_a_1)) -) - -(define-fun - __node_init_once_from_to_0 ( - (once_from_to.usr.A_a_0 Bool) - (once_from_to.usr.B_a_0 Bool) - (once_from_to.usr.X_a_0 Bool) - (once_from_to.usr.OK_a_0 Bool) - (once_from_to.res.init_flag_a_0 Bool) - (once_from_to.res.abs_0_a_0 Bool) - (once_from_to.res.abs_1_a_0 Bool) - (once_from_to.res.abs_2_a_0 Bool) - (once_from_to.res.inst_1_a_0 Bool) - (once_from_to.res.inst_0_a_0 Bool) - ) Bool - - (and - (= once_from_to.res.abs_1_a_0 false) - (let - ((X1 Bool once_from_to.res.abs_2_a_0)) - (and - (= once_from_to.usr.OK_a_0 (not (and X1 once_from_to.usr.B_a_0))) - (__node_init_switch_0 - once_from_to.res.abs_1_a_0 - once_from_to.usr.A_a_0 - once_from_to.res.abs_0_a_0 - once_from_to.res.abs_2_a_0 - once_from_to.res.inst_1_a_0) - (__node_init_jafter_0 - once_from_to.usr.X_a_0 - once_from_to.res.abs_0_a_0 - once_from_to.res.inst_0_a_0) - once_from_to.res.init_flag_a_0))) -) - -(define-fun - __node_trans_once_from_to_0 ( - (once_from_to.usr.A_a_1 Bool) - (once_from_to.usr.B_a_1 Bool) - (once_from_to.usr.X_a_1 Bool) - (once_from_to.usr.OK_a_1 Bool) - (once_from_to.res.init_flag_a_1 Bool) - (once_from_to.res.abs_0_a_1 Bool) - (once_from_to.res.abs_1_a_1 Bool) - (once_from_to.res.abs_2_a_1 Bool) - (once_from_to.res.inst_1_a_1 Bool) - (once_from_to.res.inst_0_a_1 Bool) - (once_from_to.usr.A_a_0 Bool) - (once_from_to.usr.B_a_0 Bool) - (once_from_to.usr.X_a_0 Bool) - (once_from_to.usr.OK_a_0 Bool) - (once_from_to.res.init_flag_a_0 Bool) - (once_from_to.res.abs_0_a_0 Bool) - (once_from_to.res.abs_1_a_0 Bool) - (once_from_to.res.abs_2_a_0 Bool) - (once_from_to.res.inst_1_a_0 Bool) - (once_from_to.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool once_from_to.res.abs_2_a_1)) - (and - (= once_from_to.usr.OK_a_1 (not (and X1 once_from_to.usr.B_a_1))) - (= once_from_to.res.abs_1_a_1 false) - (__node_trans_switch_0 - once_from_to.res.abs_1_a_1 - once_from_to.usr.A_a_1 - once_from_to.res.abs_0_a_1 - once_from_to.res.abs_2_a_1 - once_from_to.res.inst_1_a_1 - once_from_to.res.abs_1_a_0 - once_from_to.usr.A_a_0 - once_from_to.res.abs_0_a_0 - once_from_to.res.abs_2_a_0 - once_from_to.res.inst_1_a_0) - (__node_trans_jafter_0 - once_from_to.usr.X_a_1 - once_from_to.res.abs_0_a_1 - once_from_to.res.inst_0_a_1 - once_from_to.usr.X_a_0 - once_from_to.res.abs_0_a_0 - once_from_to.res.inst_0_a_0) - (not once_from_to.res.init_flag_a_1))) -) - -(define-fun - __node_init_properties_0 ( - (properties.usr.door_is_open_a_0 Bool) - (properties.usr.in_station_a_0 Bool) - (properties.usr.request_door_a_0 Bool) - (properties.usr.warning_start_a_0 Bool) - (properties.usr.OK_a_0 Bool) - (properties.res.init_flag_a_0 Bool) - (properties.res.abs_0_a_0 Bool) - (properties.res.abs_1_a_0 Bool) - (properties.res.abs_2_a_0 Bool) - (properties.res.abs_3_a_0 Bool) - (properties.res.abs_4_a_0 Bool) - (properties.res.abs_5_a_0 Bool) - (properties.res.inst_8_a_0 Bool) - (properties.res.inst_7_a_0 Bool) - (properties.res.inst_6_a_0 Bool) - (properties.res.inst_5_a_0 Bool) - (properties.res.inst_4_a_0 Bool) - (properties.res.inst_3_a_0 Bool) - (properties.res.inst_2_a_0 Bool) - (properties.res.inst_1_a_0 Bool) - (properties.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool properties.res.abs_5_a_0)) - (let - ((X2 Bool (=> properties.usr.door_is_open_a_0 properties.usr.in_station_a_0))) - (and - (= properties.usr.OK_a_0 (and X2 X1)) - (= - properties.res.abs_0_a_0 - (and - properties.usr.request_door_a_0 - (not properties.usr.warning_start_a_0))) - (= properties.res.abs_2_a_0 (not properties.usr.in_station_a_0)) - (__node_init_once_from_to_0 - properties.res.abs_1_a_0 - properties.res.abs_3_a_0 - properties.res.abs_4_a_0 - properties.res.abs_5_a_0 - properties.res.inst_8_a_0 - properties.res.inst_7_a_0 - properties.res.inst_6_a_0 - properties.res.inst_5_a_0 - properties.res.inst_4_a_0 - properties.res.inst_3_a_0) - (__node_init_jafter_0 - properties.res.abs_0_a_0 - properties.res.abs_1_a_0 - properties.res.inst_2_a_0) - (__node_init_edge_0 - properties.res.abs_2_a_0 - properties.res.abs_3_a_0 - properties.res.inst_1_a_0) - (__node_init_jafter_0 - properties.usr.door_is_open_a_0 - properties.res.abs_4_a_0 - properties.res.inst_0_a_0) - properties.res.init_flag_a_0))) -) - -(define-fun - __node_trans_properties_0 ( - (properties.usr.door_is_open_a_1 Bool) - (properties.usr.in_station_a_1 Bool) - (properties.usr.request_door_a_1 Bool) - (properties.usr.warning_start_a_1 Bool) - (properties.usr.OK_a_1 Bool) - (properties.res.init_flag_a_1 Bool) - (properties.res.abs_0_a_1 Bool) - (properties.res.abs_1_a_1 Bool) - (properties.res.abs_2_a_1 Bool) - (properties.res.abs_3_a_1 Bool) - (properties.res.abs_4_a_1 Bool) - (properties.res.abs_5_a_1 Bool) - (properties.res.inst_8_a_1 Bool) - (properties.res.inst_7_a_1 Bool) - (properties.res.inst_6_a_1 Bool) - (properties.res.inst_5_a_1 Bool) - (properties.res.inst_4_a_1 Bool) - (properties.res.inst_3_a_1 Bool) - (properties.res.inst_2_a_1 Bool) - (properties.res.inst_1_a_1 Bool) - (properties.res.inst_0_a_1 Bool) - (properties.usr.door_is_open_a_0 Bool) - (properties.usr.in_station_a_0 Bool) - (properties.usr.request_door_a_0 Bool) - (properties.usr.warning_start_a_0 Bool) - (properties.usr.OK_a_0 Bool) - (properties.res.init_flag_a_0 Bool) - (properties.res.abs_0_a_0 Bool) - (properties.res.abs_1_a_0 Bool) - (properties.res.abs_2_a_0 Bool) - (properties.res.abs_3_a_0 Bool) - (properties.res.abs_4_a_0 Bool) - (properties.res.abs_5_a_0 Bool) - (properties.res.inst_8_a_0 Bool) - (properties.res.inst_7_a_0 Bool) - (properties.res.inst_6_a_0 Bool) - (properties.res.inst_5_a_0 Bool) - (properties.res.inst_4_a_0 Bool) - (properties.res.inst_3_a_0 Bool) - (properties.res.inst_2_a_0 Bool) - (properties.res.inst_1_a_0 Bool) - (properties.res.inst_0_a_0 Bool) - ) Bool - - (and - (= properties.res.abs_2_a_1 (not properties.usr.in_station_a_1)) - (let - ((X1 Bool properties.res.abs_5_a_1)) - (let - ((X2 - Bool (=> properties.usr.door_is_open_a_1 properties.usr.in_station_a_1))) - (and - (= properties.usr.OK_a_1 (and X2 X1)) - (= - properties.res.abs_0_a_1 - (and - properties.usr.request_door_a_1 - (not properties.usr.warning_start_a_1))) - (__node_trans_once_from_to_0 - properties.res.abs_1_a_1 - properties.res.abs_3_a_1 - properties.res.abs_4_a_1 - properties.res.abs_5_a_1 - properties.res.inst_8_a_1 - properties.res.inst_7_a_1 - properties.res.inst_6_a_1 - properties.res.inst_5_a_1 - properties.res.inst_4_a_1 - properties.res.inst_3_a_1 - properties.res.abs_1_a_0 - properties.res.abs_3_a_0 - properties.res.abs_4_a_0 - properties.res.abs_5_a_0 - properties.res.inst_8_a_0 - properties.res.inst_7_a_0 - properties.res.inst_6_a_0 - properties.res.inst_5_a_0 - properties.res.inst_4_a_0 - properties.res.inst_3_a_0) - (__node_trans_jafter_0 - properties.res.abs_0_a_1 - properties.res.abs_1_a_1 - properties.res.inst_2_a_1 - properties.res.abs_0_a_0 - properties.res.abs_1_a_0 - properties.res.inst_2_a_0) - (__node_trans_edge_0 - properties.res.abs_2_a_1 - properties.res.abs_3_a_1 - properties.res.inst_1_a_1 - properties.res.abs_2_a_0 - properties.res.abs_3_a_0 - properties.res.inst_1_a_0) - (__node_trans_jafter_0 - properties.usr.door_is_open_a_1 - properties.res.abs_4_a_1 - properties.res.inst_0_a_1 - properties.usr.door_is_open_a_0 - properties.res.abs_4_a_0 - properties.res.inst_0_a_0) - (not properties.res.init_flag_a_1))))) -) - -(define-fun - __node_init_environment_0 ( - (environment.usr.door_is_open_a_0 Bool) - (environment.usr.open_door_a_0 Bool) - (environment.usr.close_door_a_0 Bool) - (environment.usr.in_station_a_0 Bool) - (environment.usr.door_ok_a_0 Bool) - (environment.usr.warning_start_a_0 Bool) - (environment.usr.env_always_ok_a_0 Bool) - (environment.res.init_flag_a_0 Bool) - (environment.res.abs_0_a_0 Bool) - (environment.res.abs_1_a_0 Bool) - (environment.res.abs_2_a_0 Bool) - (environment.res.abs_3_a_0 Bool) - (environment.res.abs_4_a_0 Bool) - (environment.res.abs_5_a_0 Bool) - (environment.res.abs_6_a_0 Bool) - (environment.res.abs_7_a_0 Bool) - (environment.res.abs_8_a_0 Bool) - (environment.res.inst_5_a_0 Bool) - (environment.res.inst_4_a_0 Bool) - (environment.res.inst_3_a_0 Bool) - (environment.res.inst_2_a_0 Bool) - (environment.res.inst_1_a_0 Bool) - (environment.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool (=> environment.res.abs_8_a_0 (not environment.usr.open_door_a_0)))) - (let - ((X2 - Bool (=> environment.usr.warning_start_a_0 environment.usr.in_station_a_0))) - (let - ((X3 Bool (= environment.res.abs_4_a_0 environment.res.abs_7_a_0))) - (let - ((X4 Bool (not environment.usr.in_station_a_0))) - (let - ((X5 Bool (not environment.usr.door_is_open_a_0))) - (let - ((X6 Bool (=> environment.res.abs_4_a_0 environment.res.abs_5_a_0))) - (let - ((X7 Bool (=> environment.res.abs_2_a_0 environment.usr.close_door_a_0))) - (let - ((X8 Bool (=> environment.res.abs_0_a_0 environment.usr.open_door_a_0))) - (let - ((X9 - Bool (and - (and (and (and (and (and (and X7 X8) X6) X5) X4) X3) X2) - X1))) - (and - (= environment.usr.env_always_ok_a_0 X9) - (= environment.res.abs_1_a_0 (not environment.usr.door_is_open_a_0)) - (= environment.res.abs_3_a_0 (not environment.usr.in_station_a_0)) - (= environment.res.abs_6_a_0 (not environment.usr.warning_start_a_0)) - (__node_init_edge_0 - environment.usr.door_is_open_a_0 - environment.res.abs_0_a_0 - environment.res.inst_5_a_0) - (__node_init_edge_0 - environment.res.abs_1_a_0 - environment.res.abs_2_a_0 - environment.res.inst_4_a_0) - (__node_init_edge_0 - environment.res.abs_3_a_0 - environment.res.abs_4_a_0 - environment.res.inst_3_a_0) - (__node_init_jafter_0 - environment.usr.door_ok_a_0 - environment.res.abs_5_a_0 - environment.res.inst_2_a_0) - (__node_init_edge_0 - environment.res.abs_6_a_0 - environment.res.abs_7_a_0 - environment.res.inst_1_a_0) - (__node_init_edge_0 - environment.usr.warning_start_a_0 - environment.res.abs_8_a_0 - environment.res.inst_0_a_0) - environment.res.init_flag_a_0)))))))))) -) - -(define-fun - __node_trans_environment_0 ( - (environment.usr.door_is_open_a_1 Bool) - (environment.usr.open_door_a_1 Bool) - (environment.usr.close_door_a_1 Bool) - (environment.usr.in_station_a_1 Bool) - (environment.usr.door_ok_a_1 Bool) - (environment.usr.warning_start_a_1 Bool) - (environment.usr.env_always_ok_a_1 Bool) - (environment.res.init_flag_a_1 Bool) - (environment.res.abs_0_a_1 Bool) - (environment.res.abs_1_a_1 Bool) - (environment.res.abs_2_a_1 Bool) - (environment.res.abs_3_a_1 Bool) - (environment.res.abs_4_a_1 Bool) - (environment.res.abs_5_a_1 Bool) - (environment.res.abs_6_a_1 Bool) - (environment.res.abs_7_a_1 Bool) - (environment.res.abs_8_a_1 Bool) - (environment.res.inst_5_a_1 Bool) - (environment.res.inst_4_a_1 Bool) - (environment.res.inst_3_a_1 Bool) - (environment.res.inst_2_a_1 Bool) - (environment.res.inst_1_a_1 Bool) - (environment.res.inst_0_a_1 Bool) - (environment.usr.door_is_open_a_0 Bool) - (environment.usr.open_door_a_0 Bool) - (environment.usr.close_door_a_0 Bool) - (environment.usr.in_station_a_0 Bool) - (environment.usr.door_ok_a_0 Bool) - (environment.usr.warning_start_a_0 Bool) - (environment.usr.env_always_ok_a_0 Bool) - (environment.res.init_flag_a_0 Bool) - (environment.res.abs_0_a_0 Bool) - (environment.res.abs_1_a_0 Bool) - (environment.res.abs_2_a_0 Bool) - (environment.res.abs_3_a_0 Bool) - (environment.res.abs_4_a_0 Bool) - (environment.res.abs_5_a_0 Bool) - (environment.res.abs_6_a_0 Bool) - (environment.res.abs_7_a_0 Bool) - (environment.res.abs_8_a_0 Bool) - (environment.res.inst_5_a_0 Bool) - (environment.res.inst_4_a_0 Bool) - (environment.res.inst_3_a_0 Bool) - (environment.res.inst_2_a_0 Bool) - (environment.res.inst_1_a_0 Bool) - (environment.res.inst_0_a_0 Bool) - ) Bool - - (and - (= environment.res.abs_6_a_1 (not environment.usr.warning_start_a_1)) - (= environment.res.abs_3_a_1 (not environment.usr.in_station_a_1)) - (= environment.res.abs_1_a_1 (not environment.usr.door_is_open_a_1)) - (let - ((X1 Bool (=> environment.res.abs_8_a_1 (not environment.usr.open_door_a_1)))) - (let - ((X2 - Bool (=> environment.usr.warning_start_a_1 environment.usr.in_station_a_1))) - (let - ((X3 Bool (= environment.res.abs_4_a_1 environment.res.abs_7_a_1))) - (let - ((X4 Bool true)) - (let - ((X5 Bool true)) - (let - ((X6 Bool (=> environment.res.abs_4_a_1 environment.res.abs_5_a_1))) - (let - ((X7 - Bool (=> environment.res.abs_2_a_1 environment.usr.close_door_a_1))) - (let - ((X8 - Bool (=> environment.res.abs_0_a_1 environment.usr.open_door_a_1))) - (let - ((X9 - Bool (and - (and (and (and (and (and (and X7 X8) X6) X5) X4) X3) X2) - X1))) - (and - (= - environment.usr.env_always_ok_a_1 - (and X9 environment.usr.env_always_ok_a_0)) - (__node_trans_edge_0 - environment.usr.door_is_open_a_1 - environment.res.abs_0_a_1 - environment.res.inst_5_a_1 - environment.usr.door_is_open_a_0 - environment.res.abs_0_a_0 - environment.res.inst_5_a_0) - (__node_trans_edge_0 - environment.res.abs_1_a_1 - environment.res.abs_2_a_1 - environment.res.inst_4_a_1 - environment.res.abs_1_a_0 - environment.res.abs_2_a_0 - environment.res.inst_4_a_0) - (__node_trans_edge_0 - environment.res.abs_3_a_1 - environment.res.abs_4_a_1 - environment.res.inst_3_a_1 - environment.res.abs_3_a_0 - environment.res.abs_4_a_0 - environment.res.inst_3_a_0) - (__node_trans_jafter_0 - environment.usr.door_ok_a_1 - environment.res.abs_5_a_1 - environment.res.inst_2_a_1 - environment.usr.door_ok_a_0 - environment.res.abs_5_a_0 - environment.res.inst_2_a_0) - (__node_trans_edge_0 - environment.res.abs_6_a_1 - environment.res.abs_7_a_1 - environment.res.inst_1_a_1 - environment.res.abs_6_a_0 - environment.res.abs_7_a_0 - environment.res.inst_1_a_0) - (__node_trans_edge_0 - environment.usr.warning_start_a_1 - environment.res.abs_8_a_1 - environment.res.inst_0_a_1 - environment.usr.warning_start_a_0 - environment.res.abs_8_a_0 - environment.res.inst_0_a_0) - (not environment.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.request_door_a_0 Bool) - (top.usr.warning_start_a_0 Bool) - (top.usr.in_station_a_0 Bool) - (top.usr.door_is_open_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.open_door_a_0 Bool) - (top.impl.usr.close_door_a_0 Bool) - (top.impl.usr.door_ok_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.inst_36_a_0 Bool) - (top.res.inst_35_a_0 Bool) - (top.res.inst_34_a_0 Bool) - (top.res.inst_33_a_0 Bool) - (top.res.inst_32_a_0 Bool) - (top.res.inst_31_a_0 Bool) - (top.res.inst_30_a_0 Bool) - (top.res.inst_29_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Bool) - (top.res.inst_23_a_0 Bool) - (top.res.inst_22_a_0 Bool) - (top.res.inst_21_a_0 Bool) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.close_door_a_0 top.res.abs_3_a_0) - (= top.impl.usr.open_door_a_0 top.res.abs_2_a_0) - (let - ((X1 Bool top.res.abs_0_a_0)) - (let - ((X2 Bool top.res.abs_1_a_0)) - (and - (= top.usr.OK_a_0 (=> X2 X1)) - (= top.impl.usr.door_ok_a_0 top.res.abs_4_a_0) - (__node_init_environment_0 - top.usr.door_is_open_a_0 - top.impl.usr.open_door_a_0 - top.impl.usr.close_door_a_0 - top.usr.in_station_a_0 - top.impl.usr.door_ok_a_0 - top.usr.warning_start_a_0 - top.res.abs_1_a_0 - top.res.inst_36_a_0 - top.res.inst_35_a_0 - top.res.inst_34_a_0 - top.res.inst_33_a_0 - top.res.inst_32_a_0 - top.res.inst_31_a_0 - top.res.inst_30_a_0 - top.res.inst_29_a_0 - top.res.inst_28_a_0 - top.res.inst_27_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0) - (__node_init_controller_0 - top.usr.request_door_a_0 - top.usr.warning_start_a_0 - top.usr.in_station_a_0 - top.usr.door_is_open_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0) - (__node_init_properties_0 - top.usr.door_is_open_a_0 - top.usr.in_station_a_0 - top.usr.request_door_a_0 - top.usr.warning_start_a_0 - top.res.abs_0_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.request_door_a_1 Bool) - (top.usr.warning_start_a_1 Bool) - (top.usr.in_station_a_1 Bool) - (top.usr.door_is_open_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.open_door_a_1 Bool) - (top.impl.usr.close_door_a_1 Bool) - (top.impl.usr.door_ok_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.abs_4_a_1 Bool) - (top.res.inst_36_a_1 Bool) - (top.res.inst_35_a_1 Bool) - (top.res.inst_34_a_1 Bool) - (top.res.inst_33_a_1 Bool) - (top.res.inst_32_a_1 Bool) - (top.res.inst_31_a_1 Bool) - (top.res.inst_30_a_1 Bool) - (top.res.inst_29_a_1 Bool) - (top.res.inst_28_a_1 Bool) - (top.res.inst_27_a_1 Bool) - (top.res.inst_26_a_1 Bool) - (top.res.inst_25_a_1 Bool) - (top.res.inst_24_a_1 Bool) - (top.res.inst_23_a_1 Bool) - (top.res.inst_22_a_1 Bool) - (top.res.inst_21_a_1 Bool) - (top.res.inst_20_a_1 Bool) - (top.res.inst_19_a_1 Bool) - (top.res.inst_18_a_1 Bool) - (top.res.inst_17_a_1 Bool) - (top.res.inst_16_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Bool) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Bool) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Bool) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.request_door_a_0 Bool) - (top.usr.warning_start_a_0 Bool) - (top.usr.in_station_a_0 Bool) - (top.usr.door_is_open_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.open_door_a_0 Bool) - (top.impl.usr.close_door_a_0 Bool) - (top.impl.usr.door_ok_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.inst_36_a_0 Bool) - (top.res.inst_35_a_0 Bool) - (top.res.inst_34_a_0 Bool) - (top.res.inst_33_a_0 Bool) - (top.res.inst_32_a_0 Bool) - (top.res.inst_31_a_0 Bool) - (top.res.inst_30_a_0 Bool) - (top.res.inst_29_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Bool) - (top.res.inst_23_a_0 Bool) - (top.res.inst_22_a_0 Bool) - (top.res.inst_21_a_0 Bool) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.close_door_a_1 top.res.abs_3_a_1) - (= top.impl.usr.open_door_a_1 top.res.abs_2_a_1) - (let - ((X1 Bool top.res.abs_0_a_1)) - (let - ((X2 Bool top.res.abs_1_a_1)) - (and - (= top.usr.OK_a_1 (=> X2 X1)) - (= top.impl.usr.door_ok_a_1 top.res.abs_4_a_1) - (__node_trans_environment_0 - top.usr.door_is_open_a_1 - top.impl.usr.open_door_a_1 - top.impl.usr.close_door_a_1 - top.usr.in_station_a_1 - top.impl.usr.door_ok_a_1 - top.usr.warning_start_a_1 - top.res.abs_1_a_1 - top.res.inst_36_a_1 - top.res.inst_35_a_1 - top.res.inst_34_a_1 - top.res.inst_33_a_1 - top.res.inst_32_a_1 - top.res.inst_31_a_1 - top.res.inst_30_a_1 - top.res.inst_29_a_1 - top.res.inst_28_a_1 - top.res.inst_27_a_1 - top.res.inst_26_a_1 - top.res.inst_25_a_1 - top.res.inst_24_a_1 - top.res.inst_23_a_1 - top.res.inst_22_a_1 - top.res.inst_21_a_1 - top.usr.door_is_open_a_0 - top.impl.usr.open_door_a_0 - top.impl.usr.close_door_a_0 - top.usr.in_station_a_0 - top.impl.usr.door_ok_a_0 - top.usr.warning_start_a_0 - top.res.abs_1_a_0 - top.res.inst_36_a_0 - top.res.inst_35_a_0 - top.res.inst_34_a_0 - top.res.inst_33_a_0 - top.res.inst_32_a_0 - top.res.inst_31_a_0 - top.res.inst_30_a_0 - top.res.inst_29_a_0 - top.res.inst_28_a_0 - top.res.inst_27_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0) - (__node_trans_controller_0 - top.usr.request_door_a_1 - top.usr.warning_start_a_1 - top.usr.in_station_a_1 - top.usr.door_is_open_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.inst_20_a_1 - top.res.inst_19_a_1 - top.res.inst_18_a_1 - top.res.inst_17_a_1 - top.res.inst_16_a_1 - top.usr.request_door_a_0 - top.usr.warning_start_a_0 - top.usr.in_station_a_0 - top.usr.door_is_open_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0) - (__node_trans_properties_0 - top.usr.door_is_open_a_1 - top.usr.in_station_a_1 - top.usr.request_door_a_1 - top.usr.warning_start_a_1 - top.res.abs_0_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.res.inst_0_a_1 - top.usr.door_is_open_a_0 - top.usr.in_station_a_0 - top.usr.request_door_a_0 - top.usr.warning_start_a_0 - top.res.abs_0_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.request_door Bool) - (top.usr.warning_start Bool) - (top.usr.in_station Bool) - (top.usr.door_is_open Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.open_door Bool) - (top.impl.usr.close_door Bool) - (top.impl.usr.door_ok Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.request_door Bool) -(declare-primed-var top.usr.warning_start Bool) -(declare-primed-var top.usr.in_station Bool) -(declare-primed-var top.usr.door_is_open Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.open_door Bool) -(declare-primed-var top.impl.usr.close_door Bool) -(declare-primed-var top.impl.usr.door_ok Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.inst_36 Bool) -(declare-primed-var top.res.inst_35 Bool) -(declare-primed-var top.res.inst_34 Bool) -(declare-primed-var top.res.inst_33 Bool) -(declare-primed-var top.res.inst_32 Bool) -(declare-primed-var top.res.inst_31 Bool) -(declare-primed-var top.res.inst_30 Bool) -(declare-primed-var top.res.inst_29 Bool) -(declare-primed-var top.res.inst_28 Bool) -(declare-primed-var top.res.inst_27 Bool) -(declare-primed-var top.res.inst_26 Bool) -(declare-primed-var top.res.inst_25 Bool) -(declare-primed-var top.res.inst_24 Bool) -(declare-primed-var top.res.inst_23 Bool) -(declare-primed-var top.res.inst_22 Bool) -(declare-primed-var top.res.inst_21 Bool) -(declare-primed-var top.res.inst_20 Bool) -(declare-primed-var top.res.inst_19 Bool) -(declare-primed-var top.res.inst_18 Bool) -(declare-primed-var top.res.inst_17 Bool) -(declare-primed-var top.res.inst_16 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Bool) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Bool) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Bool) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.request_door Bool) - (top.usr.warning_start Bool) - (top.usr.in_station Bool) - (top.usr.door_is_open Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.open_door Bool) - (top.impl.usr.close_door Bool) - (top.impl.usr.door_ok Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.impl.usr.close_door top.res.abs_3) - (= top.impl.usr.open_door top.res.abs_2) - (let - ((X1 Bool top.res.abs_0)) - (let - ((X2 Bool top.res.abs_1)) - (and - (= top.usr.OK (=> X2 X1)) - (= top.impl.usr.door_ok top.res.abs_4) - (__node_init_environment_0 - top.usr.door_is_open - top.impl.usr.open_door - top.impl.usr.close_door - top.usr.in_station - top.impl.usr.door_ok - top.usr.warning_start - top.res.abs_1 - top.res.inst_36 - top.res.inst_35 - top.res.inst_34 - top.res.inst_33 - top.res.inst_32 - top.res.inst_31 - top.res.inst_30 - top.res.inst_29 - top.res.inst_28 - top.res.inst_27 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21) - (__node_init_controller_0 - top.usr.request_door - top.usr.warning_start - top.usr.in_station - top.usr.door_is_open - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16) - (__node_init_properties_0 - top.usr.door_is_open - top.usr.in_station - top.usr.request_door - top.usr.warning_start - top.res.abs_0 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.request_door Bool) - (top.usr.warning_start Bool) - (top.usr.in_station Bool) - (top.usr.door_is_open Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.open_door Bool) - (top.impl.usr.close_door Bool) - (top.impl.usr.door_ok Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.request_door! Bool) - (top.usr.warning_start! Bool) - (top.usr.in_station! Bool) - (top.usr.door_is_open! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.open_door! Bool) - (top.impl.usr.close_door! Bool) - (top.impl.usr.door_ok! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.abs_4! Bool) - (top.res.inst_36! Bool) - (top.res.inst_35! Bool) - (top.res.inst_34! Bool) - (top.res.inst_33! Bool) - (top.res.inst_32! Bool) - (top.res.inst_31! Bool) - (top.res.inst_30! Bool) - (top.res.inst_29! Bool) - (top.res.inst_28! Bool) - (top.res.inst_27! Bool) - (top.res.inst_26! Bool) - (top.res.inst_25! Bool) - (top.res.inst_24! Bool) - (top.res.inst_23! Bool) - (top.res.inst_22! Bool) - (top.res.inst_21! Bool) - (top.res.inst_20! Bool) - (top.res.inst_19! Bool) - (top.res.inst_18! Bool) - (top.res.inst_17! Bool) - (top.res.inst_16! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Bool) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Bool) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Bool) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.impl.usr.close_door! top.res.abs_3!) - (= top.impl.usr.open_door! top.res.abs_2!) - (let - ((X1 Bool top.res.abs_0!)) - (let - ((X2 Bool top.res.abs_1!)) - (and - (= top.usr.OK! (=> X2 X1)) - (= top.impl.usr.door_ok! top.res.abs_4!) - (__node_trans_environment_0 - top.usr.door_is_open! - top.impl.usr.open_door! - top.impl.usr.close_door! - top.usr.in_station! - top.impl.usr.door_ok! - top.usr.warning_start! - top.res.abs_1! - top.res.inst_36! - top.res.inst_35! - top.res.inst_34! - top.res.inst_33! - top.res.inst_32! - top.res.inst_31! - top.res.inst_30! - top.res.inst_29! - top.res.inst_28! - top.res.inst_27! - top.res.inst_26! - top.res.inst_25! - top.res.inst_24! - top.res.inst_23! - top.res.inst_22! - top.res.inst_21! - top.usr.door_is_open - top.impl.usr.open_door - top.impl.usr.close_door - top.usr.in_station - top.impl.usr.door_ok - top.usr.warning_start - top.res.abs_1 - top.res.inst_36 - top.res.inst_35 - top.res.inst_34 - top.res.inst_33 - top.res.inst_32 - top.res.inst_31 - top.res.inst_30 - top.res.inst_29 - top.res.inst_28 - top.res.inst_27 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21) - (__node_trans_controller_0 - top.usr.request_door! - top.usr.warning_start! - top.usr.in_station! - top.usr.door_is_open! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.inst_20! - top.res.inst_19! - top.res.inst_18! - top.res.inst_17! - top.res.inst_16! - top.usr.request_door - top.usr.warning_start - top.usr.in_station - top.usr.door_is_open - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16) - (__node_trans_properties_0 - top.usr.door_is_open! - top.usr.in_station! - top.usr.request_door! - top.usr.warning_start! - top.res.abs_0! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.res.inst_0! - top.usr.door_is_open - top.usr.in_station - top.usr.request_door - top.usr.warning_start - top.res.abs_0 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - (not top.res.init_flag!))))) -) - -(define-fun - prop ( - (top.usr.request_door Bool) - (top.usr.warning_start Bool) - (top.usr.in_station Bool) - (top.usr.door_is_open Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.open_door Bool) - (top.impl.usr.close_door Bool) - (top.impl.usr.door_ok Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_switch_0 ((switch.usr.init_a_0 Bool) (switch.usr.on_a_0 Bool) (switch.usr.off_a_0 Bool) (switch.usr.value_a_0 Bool) (switch.res.init_flag_a_0 Bool)) Bool + (and (= switch.usr.value_a_0 (ite switch.usr.on_a_0 true (ite switch.usr.off_a_0 false switch.usr.init_a_0))) switch.res.init_flag_a_0)) +(define-fun __node_trans_switch_0 ((switch.usr.init_a_1 Bool) (switch.usr.on_a_1 Bool) (switch.usr.off_a_1 Bool) (switch.usr.value_a_1 Bool) (switch.res.init_flag_a_1 Bool) (switch.usr.init_a_0 Bool) (switch.usr.on_a_0 Bool) (switch.usr.off_a_0 Bool) (switch.usr.value_a_0 Bool) (switch.res.init_flag_a_0 Bool)) Bool + (and (= switch.usr.value_a_1 (ite switch.usr.on_a_1 true (ite switch.usr.off_a_1 false switch.usr.value_a_0))) (not switch.res.init_flag_a_1))) +(define-fun __node_init_controller_0 ((controller.usr.request_door_a_0 Bool) (controller.usr.warning_start_a_0 Bool) (controller.usr.in_station_a_0 Bool) (controller.usr.door_is_open_a_0 Bool) (controller.usr.open_door_a_0 Bool) (controller.usr.close_door_a_0 Bool) (controller.usr.door_ok_a_0 Bool) (controller.res.init_flag_a_0 Bool) (controller.res.abs_0_a_0 Bool) (controller.res.abs_1_a_0 Bool) (controller.res.abs_2_a_0 Bool) (controller.res.inst_0_a_0 Bool)) Bool + (and (= controller.res.abs_1_a_0 (and controller.usr.request_door_a_0 (not controller.usr.warning_start_a_0))) (= controller.res.abs_0_a_0 false) (let ((X1 controller.res.abs_2_a_0)) (and (= controller.usr.open_door_a_0 (and X1 controller.usr.in_station_a_0)) (= controller.usr.close_door_a_0 (and controller.usr.warning_start_a_0 controller.usr.door_is_open_a_0)) (= controller.usr.door_ok_a_0 (and (not controller.usr.door_is_open_a_0) controller.usr.warning_start_a_0)) (__node_init_switch_0 controller.res.abs_0_a_0 controller.res.abs_1_a_0 controller.usr.door_is_open_a_0 controller.res.abs_2_a_0 controller.res.inst_0_a_0) controller.res.init_flag_a_0)))) +(define-fun __node_trans_controller_0 ((controller.usr.request_door_a_1 Bool) (controller.usr.warning_start_a_1 Bool) (controller.usr.in_station_a_1 Bool) (controller.usr.door_is_open_a_1 Bool) (controller.usr.open_door_a_1 Bool) (controller.usr.close_door_a_1 Bool) (controller.usr.door_ok_a_1 Bool) (controller.res.init_flag_a_1 Bool) (controller.res.abs_0_a_1 Bool) (controller.res.abs_1_a_1 Bool) (controller.res.abs_2_a_1 Bool) (controller.res.inst_0_a_1 Bool) (controller.usr.request_door_a_0 Bool) (controller.usr.warning_start_a_0 Bool) (controller.usr.in_station_a_0 Bool) (controller.usr.door_is_open_a_0 Bool) (controller.usr.open_door_a_0 Bool) (controller.usr.close_door_a_0 Bool) (controller.usr.door_ok_a_0 Bool) (controller.res.init_flag_a_0 Bool) (controller.res.abs_0_a_0 Bool) (controller.res.abs_1_a_0 Bool) (controller.res.abs_2_a_0 Bool) (controller.res.inst_0_a_0 Bool)) Bool + (and (= controller.res.abs_1_a_1 (and controller.usr.request_door_a_1 (not controller.usr.warning_start_a_1))) (let ((X1 controller.res.abs_2_a_1)) (and (= controller.usr.open_door_a_1 (and X1 controller.usr.in_station_a_1)) (= controller.res.abs_0_a_1 false) (= controller.usr.close_door_a_1 (and controller.usr.warning_start_a_1 controller.usr.door_is_open_a_1)) (= controller.usr.door_ok_a_1 (and (not controller.usr.door_is_open_a_1) controller.usr.warning_start_a_1)) (__node_trans_switch_0 controller.res.abs_0_a_1 controller.res.abs_1_a_1 controller.usr.door_is_open_a_1 controller.res.abs_2_a_1 controller.res.inst_0_a_1 controller.res.abs_0_a_0 controller.res.abs_1_a_0 controller.usr.door_is_open_a_0 controller.res.abs_2_a_0 controller.res.inst_0_a_0) (not controller.res.init_flag_a_1))))) +(define-fun __node_init_edge_0 ((edge.usr.X_a_0 Bool) (edge.usr.edge_a_0 Bool) (edge.res.init_flag_a_0 Bool)) Bool + (and (= edge.usr.edge_a_0 false) edge.res.init_flag_a_0)) +(define-fun __node_trans_edge_0 ((edge.usr.X_a_1 Bool) (edge.usr.edge_a_1 Bool) (edge.res.init_flag_a_1 Bool) (edge.usr.X_a_0 Bool) (edge.usr.edge_a_0 Bool) (edge.res.init_flag_a_0 Bool)) Bool + (and (= edge.usr.edge_a_1 (and edge.usr.X_a_1 (not edge.usr.X_a_0))) (not edge.res.init_flag_a_1))) +(define-fun __node_init_jafter_0 ((jafter.usr.X_a_0 Bool) (jafter.usr.after_a_0 Bool) (jafter.res.init_flag_a_0 Bool)) Bool + (and (= jafter.usr.after_a_0 false) jafter.res.init_flag_a_0)) +(define-fun __node_trans_jafter_0 ((jafter.usr.X_a_1 Bool) (jafter.usr.after_a_1 Bool) (jafter.res.init_flag_a_1 Bool) (jafter.usr.X_a_0 Bool) (jafter.usr.after_a_0 Bool) (jafter.res.init_flag_a_0 Bool)) Bool + (and (= jafter.usr.after_a_1 jafter.usr.X_a_0) (not jafter.res.init_flag_a_1))) +(define-fun __node_init_once_from_to_0 ((once_from_to.usr.A_a_0 Bool) (once_from_to.usr.B_a_0 Bool) (once_from_to.usr.X_a_0 Bool) (once_from_to.usr.OK_a_0 Bool) (once_from_to.res.init_flag_a_0 Bool) (once_from_to.res.abs_0_a_0 Bool) (once_from_to.res.abs_1_a_0 Bool) (once_from_to.res.abs_2_a_0 Bool) (once_from_to.res.inst_1_a_0 Bool) (once_from_to.res.inst_0_a_0 Bool)) Bool + (and (= once_from_to.res.abs_1_a_0 false) (let ((X1 once_from_to.res.abs_2_a_0)) (and (= once_from_to.usr.OK_a_0 (not (and X1 once_from_to.usr.B_a_0))) (__node_init_switch_0 once_from_to.res.abs_1_a_0 once_from_to.usr.A_a_0 once_from_to.res.abs_0_a_0 once_from_to.res.abs_2_a_0 once_from_to.res.inst_1_a_0) (__node_init_jafter_0 once_from_to.usr.X_a_0 once_from_to.res.abs_0_a_0 once_from_to.res.inst_0_a_0) once_from_to.res.init_flag_a_0)))) +(define-fun __node_trans_once_from_to_0 ((once_from_to.usr.A_a_1 Bool) (once_from_to.usr.B_a_1 Bool) (once_from_to.usr.X_a_1 Bool) (once_from_to.usr.OK_a_1 Bool) (once_from_to.res.init_flag_a_1 Bool) (once_from_to.res.abs_0_a_1 Bool) (once_from_to.res.abs_1_a_1 Bool) (once_from_to.res.abs_2_a_1 Bool) (once_from_to.res.inst_1_a_1 Bool) (once_from_to.res.inst_0_a_1 Bool) (once_from_to.usr.A_a_0 Bool) (once_from_to.usr.B_a_0 Bool) (once_from_to.usr.X_a_0 Bool) (once_from_to.usr.OK_a_0 Bool) (once_from_to.res.init_flag_a_0 Bool) (once_from_to.res.abs_0_a_0 Bool) (once_from_to.res.abs_1_a_0 Bool) (once_from_to.res.abs_2_a_0 Bool) (once_from_to.res.inst_1_a_0 Bool) (once_from_to.res.inst_0_a_0 Bool)) Bool + (let ((X1 once_from_to.res.abs_2_a_1)) (and (= once_from_to.usr.OK_a_1 (not (and X1 once_from_to.usr.B_a_1))) (= once_from_to.res.abs_1_a_1 false) (__node_trans_switch_0 once_from_to.res.abs_1_a_1 once_from_to.usr.A_a_1 once_from_to.res.abs_0_a_1 once_from_to.res.abs_2_a_1 once_from_to.res.inst_1_a_1 once_from_to.res.abs_1_a_0 once_from_to.usr.A_a_0 once_from_to.res.abs_0_a_0 once_from_to.res.abs_2_a_0 once_from_to.res.inst_1_a_0) (__node_trans_jafter_0 once_from_to.usr.X_a_1 once_from_to.res.abs_0_a_1 once_from_to.res.inst_0_a_1 once_from_to.usr.X_a_0 once_from_to.res.abs_0_a_0 once_from_to.res.inst_0_a_0) (not once_from_to.res.init_flag_a_1)))) +(define-fun __node_init_properties_0 ((properties.usr.door_is_open_a_0 Bool) (properties.usr.in_station_a_0 Bool) (properties.usr.request_door_a_0 Bool) (properties.usr.warning_start_a_0 Bool) (properties.usr.OK_a_0 Bool) (properties.res.init_flag_a_0 Bool) (properties.res.abs_0_a_0 Bool) (properties.res.abs_1_a_0 Bool) (properties.res.abs_2_a_0 Bool) (properties.res.abs_3_a_0 Bool) (properties.res.abs_4_a_0 Bool) (properties.res.abs_5_a_0 Bool) (properties.res.inst_8_a_0 Bool) (properties.res.inst_7_a_0 Bool) (properties.res.inst_6_a_0 Bool) (properties.res.inst_5_a_0 Bool) (properties.res.inst_4_a_0 Bool) (properties.res.inst_3_a_0 Bool) (properties.res.inst_2_a_0 Bool) (properties.res.inst_1_a_0 Bool) (properties.res.inst_0_a_0 Bool)) Bool + (let ((X1 properties.res.abs_5_a_0)) (let ((X2 (=> properties.usr.door_is_open_a_0 properties.usr.in_station_a_0))) (and (= properties.usr.OK_a_0 (and X2 X1)) (= properties.res.abs_0_a_0 (and properties.usr.request_door_a_0 (not properties.usr.warning_start_a_0))) (= properties.res.abs_2_a_0 (not properties.usr.in_station_a_0)) (__node_init_once_from_to_0 properties.res.abs_1_a_0 properties.res.abs_3_a_0 properties.res.abs_4_a_0 properties.res.abs_5_a_0 properties.res.inst_8_a_0 properties.res.inst_7_a_0 properties.res.inst_6_a_0 properties.res.inst_5_a_0 properties.res.inst_4_a_0 properties.res.inst_3_a_0) (__node_init_jafter_0 properties.res.abs_0_a_0 properties.res.abs_1_a_0 properties.res.inst_2_a_0) (__node_init_edge_0 properties.res.abs_2_a_0 properties.res.abs_3_a_0 properties.res.inst_1_a_0) (__node_init_jafter_0 properties.usr.door_is_open_a_0 properties.res.abs_4_a_0 properties.res.inst_0_a_0) properties.res.init_flag_a_0)))) +(define-fun __node_trans_properties_0 ((properties.usr.door_is_open_a_1 Bool) (properties.usr.in_station_a_1 Bool) (properties.usr.request_door_a_1 Bool) (properties.usr.warning_start_a_1 Bool) (properties.usr.OK_a_1 Bool) (properties.res.init_flag_a_1 Bool) (properties.res.abs_0_a_1 Bool) (properties.res.abs_1_a_1 Bool) (properties.res.abs_2_a_1 Bool) (properties.res.abs_3_a_1 Bool) (properties.res.abs_4_a_1 Bool) (properties.res.abs_5_a_1 Bool) (properties.res.inst_8_a_1 Bool) (properties.res.inst_7_a_1 Bool) (properties.res.inst_6_a_1 Bool) (properties.res.inst_5_a_1 Bool) (properties.res.inst_4_a_1 Bool) (properties.res.inst_3_a_1 Bool) (properties.res.inst_2_a_1 Bool) (properties.res.inst_1_a_1 Bool) (properties.res.inst_0_a_1 Bool) (properties.usr.door_is_open_a_0 Bool) (properties.usr.in_station_a_0 Bool) (properties.usr.request_door_a_0 Bool) (properties.usr.warning_start_a_0 Bool) (properties.usr.OK_a_0 Bool) (properties.res.init_flag_a_0 Bool) (properties.res.abs_0_a_0 Bool) (properties.res.abs_1_a_0 Bool) (properties.res.abs_2_a_0 Bool) (properties.res.abs_3_a_0 Bool) (properties.res.abs_4_a_0 Bool) (properties.res.abs_5_a_0 Bool) (properties.res.inst_8_a_0 Bool) (properties.res.inst_7_a_0 Bool) (properties.res.inst_6_a_0 Bool) (properties.res.inst_5_a_0 Bool) (properties.res.inst_4_a_0 Bool) (properties.res.inst_3_a_0 Bool) (properties.res.inst_2_a_0 Bool) (properties.res.inst_1_a_0 Bool) (properties.res.inst_0_a_0 Bool)) Bool + (and (= properties.res.abs_2_a_1 (not properties.usr.in_station_a_1)) (let ((X1 properties.res.abs_5_a_1)) (let ((X2 (=> properties.usr.door_is_open_a_1 properties.usr.in_station_a_1))) (and (= properties.usr.OK_a_1 (and X2 X1)) (= properties.res.abs_0_a_1 (and properties.usr.request_door_a_1 (not properties.usr.warning_start_a_1))) (__node_trans_once_from_to_0 properties.res.abs_1_a_1 properties.res.abs_3_a_1 properties.res.abs_4_a_1 properties.res.abs_5_a_1 properties.res.inst_8_a_1 properties.res.inst_7_a_1 properties.res.inst_6_a_1 properties.res.inst_5_a_1 properties.res.inst_4_a_1 properties.res.inst_3_a_1 properties.res.abs_1_a_0 properties.res.abs_3_a_0 properties.res.abs_4_a_0 properties.res.abs_5_a_0 properties.res.inst_8_a_0 properties.res.inst_7_a_0 properties.res.inst_6_a_0 properties.res.inst_5_a_0 properties.res.inst_4_a_0 properties.res.inst_3_a_0) (__node_trans_jafter_0 properties.res.abs_0_a_1 properties.res.abs_1_a_1 properties.res.inst_2_a_1 properties.res.abs_0_a_0 properties.res.abs_1_a_0 properties.res.inst_2_a_0) (__node_trans_edge_0 properties.res.abs_2_a_1 properties.res.abs_3_a_1 properties.res.inst_1_a_1 properties.res.abs_2_a_0 properties.res.abs_3_a_0 properties.res.inst_1_a_0) (__node_trans_jafter_0 properties.usr.door_is_open_a_1 properties.res.abs_4_a_1 properties.res.inst_0_a_1 properties.usr.door_is_open_a_0 properties.res.abs_4_a_0 properties.res.inst_0_a_0) (not properties.res.init_flag_a_1)))))) +(define-fun __node_init_environment_0 ((environment.usr.door_is_open_a_0 Bool) (environment.usr.open_door_a_0 Bool) (environment.usr.close_door_a_0 Bool) (environment.usr.in_station_a_0 Bool) (environment.usr.door_ok_a_0 Bool) (environment.usr.warning_start_a_0 Bool) (environment.usr.env_always_ok_a_0 Bool) (environment.res.init_flag_a_0 Bool) (environment.res.abs_0_a_0 Bool) (environment.res.abs_1_a_0 Bool) (environment.res.abs_2_a_0 Bool) (environment.res.abs_3_a_0 Bool) (environment.res.abs_4_a_0 Bool) (environment.res.abs_5_a_0 Bool) (environment.res.abs_6_a_0 Bool) (environment.res.abs_7_a_0 Bool) (environment.res.abs_8_a_0 Bool) (environment.res.inst_5_a_0 Bool) (environment.res.inst_4_a_0 Bool) (environment.res.inst_3_a_0 Bool) (environment.res.inst_2_a_0 Bool) (environment.res.inst_1_a_0 Bool) (environment.res.inst_0_a_0 Bool)) Bool + (let ((X1 (=> environment.res.abs_8_a_0 (not environment.usr.open_door_a_0)))) (let ((X2 (=> environment.usr.warning_start_a_0 environment.usr.in_station_a_0))) (let ((X3 (= environment.res.abs_4_a_0 environment.res.abs_7_a_0))) (let ((X4 (not environment.usr.in_station_a_0))) (let ((X5 (not environment.usr.door_is_open_a_0))) (let ((X6 (=> environment.res.abs_4_a_0 environment.res.abs_5_a_0))) (let ((X7 (=> environment.res.abs_2_a_0 environment.usr.close_door_a_0))) (let ((X8 (=> environment.res.abs_0_a_0 environment.usr.open_door_a_0))) (let ((X9 (and (and (and (and (and (and (and X7 X8) X6) X5) X4) X3) X2) X1))) (and (= environment.usr.env_always_ok_a_0 X9) (= environment.res.abs_1_a_0 (not environment.usr.door_is_open_a_0)) (= environment.res.abs_3_a_0 (not environment.usr.in_station_a_0)) (= environment.res.abs_6_a_0 (not environment.usr.warning_start_a_0)) (__node_init_edge_0 environment.usr.door_is_open_a_0 environment.res.abs_0_a_0 environment.res.inst_5_a_0) (__node_init_edge_0 environment.res.abs_1_a_0 environment.res.abs_2_a_0 environment.res.inst_4_a_0) (__node_init_edge_0 environment.res.abs_3_a_0 environment.res.abs_4_a_0 environment.res.inst_3_a_0) (__node_init_jafter_0 environment.usr.door_ok_a_0 environment.res.abs_5_a_0 environment.res.inst_2_a_0) (__node_init_edge_0 environment.res.abs_6_a_0 environment.res.abs_7_a_0 environment.res.inst_1_a_0) (__node_init_edge_0 environment.usr.warning_start_a_0 environment.res.abs_8_a_0 environment.res.inst_0_a_0) environment.res.init_flag_a_0))))))))))) +(define-fun __node_trans_environment_0 ((environment.usr.door_is_open_a_1 Bool) (environment.usr.open_door_a_1 Bool) (environment.usr.close_door_a_1 Bool) (environment.usr.in_station_a_1 Bool) (environment.usr.door_ok_a_1 Bool) (environment.usr.warning_start_a_1 Bool) (environment.usr.env_always_ok_a_1 Bool) (environment.res.init_flag_a_1 Bool) (environment.res.abs_0_a_1 Bool) (environment.res.abs_1_a_1 Bool) (environment.res.abs_2_a_1 Bool) (environment.res.abs_3_a_1 Bool) (environment.res.abs_4_a_1 Bool) (environment.res.abs_5_a_1 Bool) (environment.res.abs_6_a_1 Bool) (environment.res.abs_7_a_1 Bool) (environment.res.abs_8_a_1 Bool) (environment.res.inst_5_a_1 Bool) (environment.res.inst_4_a_1 Bool) (environment.res.inst_3_a_1 Bool) (environment.res.inst_2_a_1 Bool) (environment.res.inst_1_a_1 Bool) (environment.res.inst_0_a_1 Bool) (environment.usr.door_is_open_a_0 Bool) (environment.usr.open_door_a_0 Bool) (environment.usr.close_door_a_0 Bool) (environment.usr.in_station_a_0 Bool) (environment.usr.door_ok_a_0 Bool) (environment.usr.warning_start_a_0 Bool) (environment.usr.env_always_ok_a_0 Bool) (environment.res.init_flag_a_0 Bool) (environment.res.abs_0_a_0 Bool) (environment.res.abs_1_a_0 Bool) (environment.res.abs_2_a_0 Bool) (environment.res.abs_3_a_0 Bool) (environment.res.abs_4_a_0 Bool) (environment.res.abs_5_a_0 Bool) (environment.res.abs_6_a_0 Bool) (environment.res.abs_7_a_0 Bool) (environment.res.abs_8_a_0 Bool) (environment.res.inst_5_a_0 Bool) (environment.res.inst_4_a_0 Bool) (environment.res.inst_3_a_0 Bool) (environment.res.inst_2_a_0 Bool) (environment.res.inst_1_a_0 Bool) (environment.res.inst_0_a_0 Bool)) Bool + (and (= environment.res.abs_6_a_1 (not environment.usr.warning_start_a_1)) (= environment.res.abs_3_a_1 (not environment.usr.in_station_a_1)) (= environment.res.abs_1_a_1 (not environment.usr.door_is_open_a_1)) (let ((X1 (=> environment.res.abs_8_a_1 (not environment.usr.open_door_a_1)))) (let ((X2 (=> environment.usr.warning_start_a_1 environment.usr.in_station_a_1))) (let ((X3 (= environment.res.abs_4_a_1 environment.res.abs_7_a_1))) (let ((X4 true)) (let ((X5 true)) (let ((X6 (=> environment.res.abs_4_a_1 environment.res.abs_5_a_1))) (let ((X7 (=> environment.res.abs_2_a_1 environment.usr.close_door_a_1))) (let ((X8 (=> environment.res.abs_0_a_1 environment.usr.open_door_a_1))) (let ((X9 (and (and (and (and (and (and (and X7 X8) X6) X5) X4) X3) X2) X1))) (and (= environment.usr.env_always_ok_a_1 (and X9 environment.usr.env_always_ok_a_0)) (__node_trans_edge_0 environment.usr.door_is_open_a_1 environment.res.abs_0_a_1 environment.res.inst_5_a_1 environment.usr.door_is_open_a_0 environment.res.abs_0_a_0 environment.res.inst_5_a_0) (__node_trans_edge_0 environment.res.abs_1_a_1 environment.res.abs_2_a_1 environment.res.inst_4_a_1 environment.res.abs_1_a_0 environment.res.abs_2_a_0 environment.res.inst_4_a_0) (__node_trans_edge_0 environment.res.abs_3_a_1 environment.res.abs_4_a_1 environment.res.inst_3_a_1 environment.res.abs_3_a_0 environment.res.abs_4_a_0 environment.res.inst_3_a_0) (__node_trans_jafter_0 environment.usr.door_ok_a_1 environment.res.abs_5_a_1 environment.res.inst_2_a_1 environment.usr.door_ok_a_0 environment.res.abs_5_a_0 environment.res.inst_2_a_0) (__node_trans_edge_0 environment.res.abs_6_a_1 environment.res.abs_7_a_1 environment.res.inst_1_a_1 environment.res.abs_6_a_0 environment.res.abs_7_a_0 environment.res.inst_1_a_0) (__node_trans_edge_0 environment.usr.warning_start_a_1 environment.res.abs_8_a_1 environment.res.inst_0_a_1 environment.usr.warning_start_a_0 environment.res.abs_8_a_0 environment.res.inst_0_a_0) (not environment.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.request_door_a_0 Bool) (top.usr.warning_start_a_0 Bool) (top.usr.in_station_a_0 Bool) (top.usr.door_is_open_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.open_door_a_0 Bool) (top.impl.usr.close_door_a_0 Bool) (top.impl.usr.door_ok_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.inst_36_a_0 Bool) (top.res.inst_35_a_0 Bool) (top.res.inst_34_a_0 Bool) (top.res.inst_33_a_0 Bool) (top.res.inst_32_a_0 Bool) (top.res.inst_31_a_0 Bool) (top.res.inst_30_a_0 Bool) (top.res.inst_29_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.close_door_a_0 top.res.abs_3_a_0) (= top.impl.usr.open_door_a_0 top.res.abs_2_a_0) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (and (= top.usr.OK_a_0 (=> X2 X1)) (= top.impl.usr.door_ok_a_0 top.res.abs_4_a_0) (__node_init_environment_0 top.usr.door_is_open_a_0 top.impl.usr.open_door_a_0 top.impl.usr.close_door_a_0 top.usr.in_station_a_0 top.impl.usr.door_ok_a_0 top.usr.warning_start_a_0 top.res.abs_1_a_0 top.res.inst_36_a_0 top.res.inst_35_a_0 top.res.inst_34_a_0 top.res.inst_33_a_0 top.res.inst_32_a_0 top.res.inst_31_a_0 top.res.inst_30_a_0 top.res.inst_29_a_0 top.res.inst_28_a_0 top.res.inst_27_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0) (__node_init_controller_0 top.usr.request_door_a_0 top.usr.warning_start_a_0 top.usr.in_station_a_0 top.usr.door_is_open_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0) (__node_init_properties_0 top.usr.door_is_open_a_0 top.usr.in_station_a_0 top.usr.request_door_a_0 top.usr.warning_start_a_0 top.res.abs_0_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.request_door_a_1 Bool) (top.usr.warning_start_a_1 Bool) (top.usr.in_station_a_1 Bool) (top.usr.door_is_open_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.open_door_a_1 Bool) (top.impl.usr.close_door_a_1 Bool) (top.impl.usr.door_ok_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.abs_4_a_1 Bool) (top.res.inst_36_a_1 Bool) (top.res.inst_35_a_1 Bool) (top.res.inst_34_a_1 Bool) (top.res.inst_33_a_1 Bool) (top.res.inst_32_a_1 Bool) (top.res.inst_31_a_1 Bool) (top.res.inst_30_a_1 Bool) (top.res.inst_29_a_1 Bool) (top.res.inst_28_a_1 Bool) (top.res.inst_27_a_1 Bool) (top.res.inst_26_a_1 Bool) (top.res.inst_25_a_1 Bool) (top.res.inst_24_a_1 Bool) (top.res.inst_23_a_1 Bool) (top.res.inst_22_a_1 Bool) (top.res.inst_21_a_1 Bool) (top.res.inst_20_a_1 Bool) (top.res.inst_19_a_1 Bool) (top.res.inst_18_a_1 Bool) (top.res.inst_17_a_1 Bool) (top.res.inst_16_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Bool) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Bool) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Bool) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.request_door_a_0 Bool) (top.usr.warning_start_a_0 Bool) (top.usr.in_station_a_0 Bool) (top.usr.door_is_open_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.open_door_a_0 Bool) (top.impl.usr.close_door_a_0 Bool) (top.impl.usr.door_ok_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.inst_36_a_0 Bool) (top.res.inst_35_a_0 Bool) (top.res.inst_34_a_0 Bool) (top.res.inst_33_a_0 Bool) (top.res.inst_32_a_0 Bool) (top.res.inst_31_a_0 Bool) (top.res.inst_30_a_0 Bool) (top.res.inst_29_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.close_door_a_1 top.res.abs_3_a_1) (= top.impl.usr.open_door_a_1 top.res.abs_2_a_1) (let ((X1 top.res.abs_0_a_1)) (let ((X2 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (=> X2 X1)) (= top.impl.usr.door_ok_a_1 top.res.abs_4_a_1) (__node_trans_environment_0 top.usr.door_is_open_a_1 top.impl.usr.open_door_a_1 top.impl.usr.close_door_a_1 top.usr.in_station_a_1 top.impl.usr.door_ok_a_1 top.usr.warning_start_a_1 top.res.abs_1_a_1 top.res.inst_36_a_1 top.res.inst_35_a_1 top.res.inst_34_a_1 top.res.inst_33_a_1 top.res.inst_32_a_1 top.res.inst_31_a_1 top.res.inst_30_a_1 top.res.inst_29_a_1 top.res.inst_28_a_1 top.res.inst_27_a_1 top.res.inst_26_a_1 top.res.inst_25_a_1 top.res.inst_24_a_1 top.res.inst_23_a_1 top.res.inst_22_a_1 top.res.inst_21_a_1 top.usr.door_is_open_a_0 top.impl.usr.open_door_a_0 top.impl.usr.close_door_a_0 top.usr.in_station_a_0 top.impl.usr.door_ok_a_0 top.usr.warning_start_a_0 top.res.abs_1_a_0 top.res.inst_36_a_0 top.res.inst_35_a_0 top.res.inst_34_a_0 top.res.inst_33_a_0 top.res.inst_32_a_0 top.res.inst_31_a_0 top.res.inst_30_a_0 top.res.inst_29_a_0 top.res.inst_28_a_0 top.res.inst_27_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0) (__node_trans_controller_0 top.usr.request_door_a_1 top.usr.warning_start_a_1 top.usr.in_station_a_1 top.usr.door_is_open_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.inst_20_a_1 top.res.inst_19_a_1 top.res.inst_18_a_1 top.res.inst_17_a_1 top.res.inst_16_a_1 top.usr.request_door_a_0 top.usr.warning_start_a_0 top.usr.in_station_a_0 top.usr.door_is_open_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0) (__node_trans_properties_0 top.usr.door_is_open_a_1 top.usr.in_station_a_1 top.usr.request_door_a_1 top.usr.warning_start_a_1 top.res.abs_0_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.res.inst_0_a_1 top.usr.door_is_open_a_0 top.usr.in_station_a_0 top.usr.request_door_a_0 top.usr.warning_start_a_0 top.res.abs_0_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.request_door Bool) (top.usr.warning_start Bool) (top.usr.in_station Bool) (top.usr.door_is_open Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.open_door Bool) (top.impl.usr.close_door Bool) (top.impl.usr.door_ok Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.request_door Bool) (top.usr.warning_start Bool) (top.usr.in_station Bool) (top.usr.door_is_open Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.open_door Bool) (top.impl.usr.close_door Bool) (top.impl.usr.door_ok Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.close_door top.res.abs_3) (= top.impl.usr.open_door top.res.abs_2) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (and (= top.usr.OK (=> X2 X1)) (= top.impl.usr.door_ok top.res.abs_4) (__node_init_environment_0 top.usr.door_is_open top.impl.usr.open_door top.impl.usr.close_door top.usr.in_station top.impl.usr.door_ok top.usr.warning_start top.res.abs_1 top.res.inst_36 top.res.inst_35 top.res.inst_34 top.res.inst_33 top.res.inst_32 top.res.inst_31 top.res.inst_30 top.res.inst_29 top.res.inst_28 top.res.inst_27 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21) (__node_init_controller_0 top.usr.request_door top.usr.warning_start top.usr.in_station top.usr.door_is_open top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16) (__node_init_properties_0 top.usr.door_is_open top.usr.in_station top.usr.request_door top.usr.warning_start top.res.abs_0 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.request_door Bool) (top.usr.warning_start Bool) (top.usr.in_station Bool) (top.usr.door_is_open Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.open_door Bool) (top.impl.usr.close_door Bool) (top.impl.usr.door_ok Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.request_door! Bool) (top.usr.warning_start! Bool) (top.usr.in_station! Bool) (top.usr.door_is_open! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.open_door! Bool) (top.impl.usr.close_door! Bool) (top.impl.usr.door_ok! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.abs_4! Bool) (top.res.inst_36! Bool) (top.res.inst_35! Bool) (top.res.inst_34! Bool) (top.res.inst_33! Bool) (top.res.inst_32! Bool) (top.res.inst_31! Bool) (top.res.inst_30! Bool) (top.res.inst_29! Bool) (top.res.inst_28! Bool) (top.res.inst_27! Bool) (top.res.inst_26! Bool) (top.res.inst_25! Bool) (top.res.inst_24! Bool) (top.res.inst_23! Bool) (top.res.inst_22! Bool) (top.res.inst_21! Bool) (top.res.inst_20! Bool) (top.res.inst_19! Bool) (top.res.inst_18! Bool) (top.res.inst_17! Bool) (top.res.inst_16! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Bool) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Bool) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Bool) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.close_door! top.res.abs_3!) (= top.impl.usr.open_door! top.res.abs_2!) (let ((X1 top.res.abs_0!)) (let ((X2 top.res.abs_1!)) (and (= top.usr.OK! (=> X2 X1)) (= top.impl.usr.door_ok! top.res.abs_4!) (__node_trans_environment_0 top.usr.door_is_open! top.impl.usr.open_door! top.impl.usr.close_door! top.usr.in_station! top.impl.usr.door_ok! top.usr.warning_start! top.res.abs_1! top.res.inst_36! top.res.inst_35! top.res.inst_34! top.res.inst_33! top.res.inst_32! top.res.inst_31! top.res.inst_30! top.res.inst_29! top.res.inst_28! top.res.inst_27! top.res.inst_26! top.res.inst_25! top.res.inst_24! top.res.inst_23! top.res.inst_22! top.res.inst_21! top.usr.door_is_open top.impl.usr.open_door top.impl.usr.close_door top.usr.in_station top.impl.usr.door_ok top.usr.warning_start top.res.abs_1 top.res.inst_36 top.res.inst_35 top.res.inst_34 top.res.inst_33 top.res.inst_32 top.res.inst_31 top.res.inst_30 top.res.inst_29 top.res.inst_28 top.res.inst_27 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21) (__node_trans_controller_0 top.usr.request_door! top.usr.warning_start! top.usr.in_station! top.usr.door_is_open! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.inst_20! top.res.inst_19! top.res.inst_18! top.res.inst_17! top.res.inst_16! top.usr.request_door top.usr.warning_start top.usr.in_station top.usr.door_is_open top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16) (__node_trans_properties_0 top.usr.door_is_open! top.usr.in_station! top.usr.request_door! top.usr.warning_start! top.res.abs_0! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.res.inst_0! top.usr.door_is_open top.usr.in_station top.usr.request_door top.usr.warning_start top.res.abs_0 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) (not top.res.init_flag!)))))) +(define-fun prop ((top.usr.request_door Bool) (top.usr.warning_start Bool) (top.usr.in_station Bool) (top.usr.door_is_open Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.open_door Bool) (top.impl.usr.close_door Bool) (top.impl.usr.door_ok Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/tramway_e7_3304.sl b/benchmarks/LIA/Lustre/tramway_e7_3304.sl index 1798887..995f703 100644 --- a/benchmarks/LIA/Lustre/tramway_e7_3304.sl +++ b/benchmarks/LIA/Lustre/tramway_e7_3304.sl @@ -1,1547 +1,47 @@ (set-logic LIA) -(define-fun - __node_init_switch_0 ( - (switch.usr.init_a_0 Bool) - (switch.usr.on_a_0 Bool) - (switch.usr.off_a_0 Bool) - (switch.usr.value_a_0 Bool) - (switch.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - switch.usr.value_a_0 - (ite switch.usr.on_a_0 true (ite switch.usr.off_a_0 false switch.usr.init_a_0))) - switch.res.init_flag_a_0) -) - -(define-fun - __node_trans_switch_0 ( - (switch.usr.init_a_1 Bool) - (switch.usr.on_a_1 Bool) - (switch.usr.off_a_1 Bool) - (switch.usr.value_a_1 Bool) - (switch.res.init_flag_a_1 Bool) - (switch.usr.init_a_0 Bool) - (switch.usr.on_a_0 Bool) - (switch.usr.off_a_0 Bool) - (switch.usr.value_a_0 Bool) - (switch.res.init_flag_a_0 Bool) - ) Bool - - (and - (= - switch.usr.value_a_1 - (ite - switch.usr.on_a_1 - true - (ite switch.usr.off_a_1 false switch.usr.value_a_0))) - (not switch.res.init_flag_a_1)) -) - -(define-fun - __node_init_controller_0 ( - (controller.usr.request_door_a_0 Bool) - (controller.usr.warning_start_a_0 Bool) - (controller.usr.in_station_a_0 Bool) - (controller.usr.door_is_open_a_0 Bool) - (controller.usr.open_door_a_0 Bool) - (controller.usr.close_door_a_0 Bool) - (controller.usr.door_ok_a_0 Bool) - (controller.res.init_flag_a_0 Bool) - (controller.res.abs_0_a_0 Bool) - (controller.res.abs_1_a_0 Bool) - (controller.res.abs_2_a_0 Bool) - (controller.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - controller.res.abs_1_a_0 - (and controller.usr.request_door_a_0 (not controller.usr.warning_start_a_0))) - (= controller.res.abs_0_a_0 false) - (let - ((X1 Bool controller.res.abs_2_a_0)) - (and - (= controller.usr.open_door_a_0 (and X1 controller.usr.in_station_a_0)) - (= - controller.usr.close_door_a_0 - (and controller.usr.warning_start_a_0 controller.usr.door_is_open_a_0)) - (= - controller.usr.door_ok_a_0 - (and - (not controller.usr.door_is_open_a_0) - controller.usr.warning_start_a_0)) - (__node_init_switch_0 - controller.res.abs_0_a_0 - controller.res.abs_1_a_0 - controller.usr.door_is_open_a_0 - controller.res.abs_2_a_0 - controller.res.inst_0_a_0) - controller.res.init_flag_a_0))) -) - -(define-fun - __node_trans_controller_0 ( - (controller.usr.request_door_a_1 Bool) - (controller.usr.warning_start_a_1 Bool) - (controller.usr.in_station_a_1 Bool) - (controller.usr.door_is_open_a_1 Bool) - (controller.usr.open_door_a_1 Bool) - (controller.usr.close_door_a_1 Bool) - (controller.usr.door_ok_a_1 Bool) - (controller.res.init_flag_a_1 Bool) - (controller.res.abs_0_a_1 Bool) - (controller.res.abs_1_a_1 Bool) - (controller.res.abs_2_a_1 Bool) - (controller.res.inst_0_a_1 Bool) - (controller.usr.request_door_a_0 Bool) - (controller.usr.warning_start_a_0 Bool) - (controller.usr.in_station_a_0 Bool) - (controller.usr.door_is_open_a_0 Bool) - (controller.usr.open_door_a_0 Bool) - (controller.usr.close_door_a_0 Bool) - (controller.usr.door_ok_a_0 Bool) - (controller.res.init_flag_a_0 Bool) - (controller.res.abs_0_a_0 Bool) - (controller.res.abs_1_a_0 Bool) - (controller.res.abs_2_a_0 Bool) - (controller.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - controller.res.abs_1_a_1 - (and controller.usr.request_door_a_1 (not controller.usr.warning_start_a_1))) - (let - ((X1 Bool controller.res.abs_2_a_1)) - (and - (= controller.usr.open_door_a_1 (and X1 controller.usr.in_station_a_1)) - (= controller.res.abs_0_a_1 false) - (= - controller.usr.close_door_a_1 - (and controller.usr.warning_start_a_1 controller.usr.door_is_open_a_1)) - (= - controller.usr.door_ok_a_1 - (and - (not controller.usr.door_is_open_a_1) - controller.usr.warning_start_a_1)) - (__node_trans_switch_0 - controller.res.abs_0_a_1 - controller.res.abs_1_a_1 - controller.usr.door_is_open_a_1 - controller.res.abs_2_a_1 - controller.res.inst_0_a_1 - controller.res.abs_0_a_0 - controller.res.abs_1_a_0 - controller.usr.door_is_open_a_0 - controller.res.abs_2_a_0 - controller.res.inst_0_a_0) - (not controller.res.init_flag_a_1)))) -) - -(define-fun - __node_init_edge_0 ( - (edge.usr.X_a_0 Bool) - (edge.usr.edge_a_0 Bool) - (edge.res.init_flag_a_0 Bool) - ) Bool - - (and (= edge.usr.edge_a_0 false) edge.res.init_flag_a_0) -) - -(define-fun - __node_trans_edge_0 ( - (edge.usr.X_a_1 Bool) - (edge.usr.edge_a_1 Bool) - (edge.res.init_flag_a_1 Bool) - (edge.usr.X_a_0 Bool) - (edge.usr.edge_a_0 Bool) - (edge.res.init_flag_a_0 Bool) - ) Bool - - (and - (= edge.usr.edge_a_1 (or edge.usr.X_a_1 (not edge.usr.X_a_0))) - (not edge.res.init_flag_a_1)) -) - -(define-fun - __node_init_jafter_0 ( - (jafter.usr.X_a_0 Bool) - (jafter.usr.after_a_0 Bool) - (jafter.res.init_flag_a_0 Bool) - ) Bool - - (and (= jafter.usr.after_a_0 false) jafter.res.init_flag_a_0) -) - -(define-fun - __node_trans_jafter_0 ( - (jafter.usr.X_a_1 Bool) - (jafter.usr.after_a_1 Bool) - (jafter.res.init_flag_a_1 Bool) - (jafter.usr.X_a_0 Bool) - (jafter.usr.after_a_0 Bool) - (jafter.res.init_flag_a_0 Bool) - ) Bool - - (and (= jafter.usr.after_a_1 jafter.usr.X_a_0) (not jafter.res.init_flag_a_1)) -) - -(define-fun - __node_init_once_from_to_0 ( - (once_from_to.usr.A_a_0 Bool) - (once_from_to.usr.B_a_0 Bool) - (once_from_to.usr.X_a_0 Bool) - (once_from_to.usr.OK_a_0 Bool) - (once_from_to.res.init_flag_a_0 Bool) - (once_from_to.res.abs_0_a_0 Bool) - (once_from_to.res.abs_1_a_0 Bool) - (once_from_to.res.abs_2_a_0 Bool) - (once_from_to.res.inst_1_a_0 Bool) - (once_from_to.res.inst_0_a_0 Bool) - ) Bool - - (and - (= once_from_to.res.abs_1_a_0 false) - (let - ((X1 Bool once_from_to.res.abs_2_a_0)) - (and - (= once_from_to.usr.OK_a_0 (not (and X1 once_from_to.usr.B_a_0))) - (__node_init_switch_0 - once_from_to.res.abs_1_a_0 - once_from_to.usr.A_a_0 - once_from_to.res.abs_0_a_0 - once_from_to.res.abs_2_a_0 - once_from_to.res.inst_1_a_0) - (__node_init_jafter_0 - once_from_to.usr.X_a_0 - once_from_to.res.abs_0_a_0 - once_from_to.res.inst_0_a_0) - once_from_to.res.init_flag_a_0))) -) - -(define-fun - __node_trans_once_from_to_0 ( - (once_from_to.usr.A_a_1 Bool) - (once_from_to.usr.B_a_1 Bool) - (once_from_to.usr.X_a_1 Bool) - (once_from_to.usr.OK_a_1 Bool) - (once_from_to.res.init_flag_a_1 Bool) - (once_from_to.res.abs_0_a_1 Bool) - (once_from_to.res.abs_1_a_1 Bool) - (once_from_to.res.abs_2_a_1 Bool) - (once_from_to.res.inst_1_a_1 Bool) - (once_from_to.res.inst_0_a_1 Bool) - (once_from_to.usr.A_a_0 Bool) - (once_from_to.usr.B_a_0 Bool) - (once_from_to.usr.X_a_0 Bool) - (once_from_to.usr.OK_a_0 Bool) - (once_from_to.res.init_flag_a_0 Bool) - (once_from_to.res.abs_0_a_0 Bool) - (once_from_to.res.abs_1_a_0 Bool) - (once_from_to.res.abs_2_a_0 Bool) - (once_from_to.res.inst_1_a_0 Bool) - (once_from_to.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool once_from_to.res.abs_2_a_1)) - (and - (= once_from_to.usr.OK_a_1 (not (and X1 once_from_to.usr.B_a_1))) - (= once_from_to.res.abs_1_a_1 false) - (__node_trans_switch_0 - once_from_to.res.abs_1_a_1 - once_from_to.usr.A_a_1 - once_from_to.res.abs_0_a_1 - once_from_to.res.abs_2_a_1 - once_from_to.res.inst_1_a_1 - once_from_to.res.abs_1_a_0 - once_from_to.usr.A_a_0 - once_from_to.res.abs_0_a_0 - once_from_to.res.abs_2_a_0 - once_from_to.res.inst_1_a_0) - (__node_trans_jafter_0 - once_from_to.usr.X_a_1 - once_from_to.res.abs_0_a_1 - once_from_to.res.inst_0_a_1 - once_from_to.usr.X_a_0 - once_from_to.res.abs_0_a_0 - once_from_to.res.inst_0_a_0) - (not once_from_to.res.init_flag_a_1))) -) - -(define-fun - __node_init_properties_0 ( - (properties.usr.door_is_open_a_0 Bool) - (properties.usr.in_station_a_0 Bool) - (properties.usr.request_door_a_0 Bool) - (properties.usr.warning_start_a_0 Bool) - (properties.usr.OK_a_0 Bool) - (properties.res.init_flag_a_0 Bool) - (properties.res.abs_0_a_0 Bool) - (properties.res.abs_1_a_0 Bool) - (properties.res.abs_2_a_0 Bool) - (properties.res.abs_3_a_0 Bool) - (properties.res.abs_4_a_0 Bool) - (properties.res.abs_5_a_0 Bool) - (properties.res.inst_8_a_0 Bool) - (properties.res.inst_7_a_0 Bool) - (properties.res.inst_6_a_0 Bool) - (properties.res.inst_5_a_0 Bool) - (properties.res.inst_4_a_0 Bool) - (properties.res.inst_3_a_0 Bool) - (properties.res.inst_2_a_0 Bool) - (properties.res.inst_1_a_0 Bool) - (properties.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool properties.res.abs_5_a_0)) - (let - ((X2 Bool (=> properties.usr.door_is_open_a_0 properties.usr.in_station_a_0))) - (and - (= properties.usr.OK_a_0 (and X2 X1)) - (= - properties.res.abs_0_a_0 - (and - properties.usr.request_door_a_0 - (not properties.usr.warning_start_a_0))) - (= properties.res.abs_2_a_0 (not properties.usr.in_station_a_0)) - (__node_init_once_from_to_0 - properties.res.abs_1_a_0 - properties.res.abs_3_a_0 - properties.res.abs_4_a_0 - properties.res.abs_5_a_0 - properties.res.inst_8_a_0 - properties.res.inst_7_a_0 - properties.res.inst_6_a_0 - properties.res.inst_5_a_0 - properties.res.inst_4_a_0 - properties.res.inst_3_a_0) - (__node_init_jafter_0 - properties.res.abs_0_a_0 - properties.res.abs_1_a_0 - properties.res.inst_2_a_0) - (__node_init_edge_0 - properties.res.abs_2_a_0 - properties.res.abs_3_a_0 - properties.res.inst_1_a_0) - (__node_init_jafter_0 - properties.usr.door_is_open_a_0 - properties.res.abs_4_a_0 - properties.res.inst_0_a_0) - properties.res.init_flag_a_0))) -) - -(define-fun - __node_trans_properties_0 ( - (properties.usr.door_is_open_a_1 Bool) - (properties.usr.in_station_a_1 Bool) - (properties.usr.request_door_a_1 Bool) - (properties.usr.warning_start_a_1 Bool) - (properties.usr.OK_a_1 Bool) - (properties.res.init_flag_a_1 Bool) - (properties.res.abs_0_a_1 Bool) - (properties.res.abs_1_a_1 Bool) - (properties.res.abs_2_a_1 Bool) - (properties.res.abs_3_a_1 Bool) - (properties.res.abs_4_a_1 Bool) - (properties.res.abs_5_a_1 Bool) - (properties.res.inst_8_a_1 Bool) - (properties.res.inst_7_a_1 Bool) - (properties.res.inst_6_a_1 Bool) - (properties.res.inst_5_a_1 Bool) - (properties.res.inst_4_a_1 Bool) - (properties.res.inst_3_a_1 Bool) - (properties.res.inst_2_a_1 Bool) - (properties.res.inst_1_a_1 Bool) - (properties.res.inst_0_a_1 Bool) - (properties.usr.door_is_open_a_0 Bool) - (properties.usr.in_station_a_0 Bool) - (properties.usr.request_door_a_0 Bool) - (properties.usr.warning_start_a_0 Bool) - (properties.usr.OK_a_0 Bool) - (properties.res.init_flag_a_0 Bool) - (properties.res.abs_0_a_0 Bool) - (properties.res.abs_1_a_0 Bool) - (properties.res.abs_2_a_0 Bool) - (properties.res.abs_3_a_0 Bool) - (properties.res.abs_4_a_0 Bool) - (properties.res.abs_5_a_0 Bool) - (properties.res.inst_8_a_0 Bool) - (properties.res.inst_7_a_0 Bool) - (properties.res.inst_6_a_0 Bool) - (properties.res.inst_5_a_0 Bool) - (properties.res.inst_4_a_0 Bool) - (properties.res.inst_3_a_0 Bool) - (properties.res.inst_2_a_0 Bool) - (properties.res.inst_1_a_0 Bool) - (properties.res.inst_0_a_0 Bool) - ) Bool - - (and - (= properties.res.abs_2_a_1 (not properties.usr.in_station_a_1)) - (let - ((X1 Bool properties.res.abs_5_a_1)) - (let - ((X2 - Bool (=> properties.usr.door_is_open_a_1 properties.usr.in_station_a_1))) - (and - (= properties.usr.OK_a_1 (and X2 X1)) - (= - properties.res.abs_0_a_1 - (and - properties.usr.request_door_a_1 - (not properties.usr.warning_start_a_1))) - (__node_trans_once_from_to_0 - properties.res.abs_1_a_1 - properties.res.abs_3_a_1 - properties.res.abs_4_a_1 - properties.res.abs_5_a_1 - properties.res.inst_8_a_1 - properties.res.inst_7_a_1 - properties.res.inst_6_a_1 - properties.res.inst_5_a_1 - properties.res.inst_4_a_1 - properties.res.inst_3_a_1 - properties.res.abs_1_a_0 - properties.res.abs_3_a_0 - properties.res.abs_4_a_0 - properties.res.abs_5_a_0 - properties.res.inst_8_a_0 - properties.res.inst_7_a_0 - properties.res.inst_6_a_0 - properties.res.inst_5_a_0 - properties.res.inst_4_a_0 - properties.res.inst_3_a_0) - (__node_trans_jafter_0 - properties.res.abs_0_a_1 - properties.res.abs_1_a_1 - properties.res.inst_2_a_1 - properties.res.abs_0_a_0 - properties.res.abs_1_a_0 - properties.res.inst_2_a_0) - (__node_trans_edge_0 - properties.res.abs_2_a_1 - properties.res.abs_3_a_1 - properties.res.inst_1_a_1 - properties.res.abs_2_a_0 - properties.res.abs_3_a_0 - properties.res.inst_1_a_0) - (__node_trans_jafter_0 - properties.usr.door_is_open_a_1 - properties.res.abs_4_a_1 - properties.res.inst_0_a_1 - properties.usr.door_is_open_a_0 - properties.res.abs_4_a_0 - properties.res.inst_0_a_0) - (not properties.res.init_flag_a_1))))) -) - -(define-fun - __node_init_environment_0 ( - (environment.usr.door_is_open_a_0 Bool) - (environment.usr.open_door_a_0 Bool) - (environment.usr.close_door_a_0 Bool) - (environment.usr.in_station_a_0 Bool) - (environment.usr.door_ok_a_0 Bool) - (environment.usr.warning_start_a_0 Bool) - (environment.usr.env_always_ok_a_0 Bool) - (environment.res.init_flag_a_0 Bool) - (environment.res.abs_0_a_0 Bool) - (environment.res.abs_1_a_0 Bool) - (environment.res.abs_2_a_0 Bool) - (environment.res.abs_3_a_0 Bool) - (environment.res.abs_4_a_0 Bool) - (environment.res.abs_5_a_0 Bool) - (environment.res.abs_6_a_0 Bool) - (environment.res.abs_7_a_0 Bool) - (environment.res.abs_8_a_0 Bool) - (environment.res.inst_5_a_0 Bool) - (environment.res.inst_4_a_0 Bool) - (environment.res.inst_3_a_0 Bool) - (environment.res.inst_2_a_0 Bool) - (environment.res.inst_1_a_0 Bool) - (environment.res.inst_0_a_0 Bool) - ) Bool - - (let - ((X1 Bool (=> environment.res.abs_8_a_0 (not environment.usr.open_door_a_0)))) - (let - ((X2 - Bool (=> environment.usr.warning_start_a_0 environment.usr.in_station_a_0))) - (let - ((X3 Bool (= environment.res.abs_4_a_0 environment.res.abs_7_a_0))) - (let - ((X4 Bool (not environment.usr.in_station_a_0))) - (let - ((X5 Bool (not environment.usr.door_is_open_a_0))) - (let - ((X6 Bool (=> environment.res.abs_4_a_0 environment.res.abs_5_a_0))) - (let - ((X7 Bool (=> environment.res.abs_2_a_0 environment.usr.close_door_a_0))) - (let - ((X8 Bool (=> environment.res.abs_0_a_0 environment.usr.open_door_a_0))) - (let - ((X9 - Bool (and - (and (and (and (and (and (and X7 X8) X6) X5) X4) X3) X2) - X1))) - (and - (= environment.usr.env_always_ok_a_0 X9) - (= environment.res.abs_1_a_0 (not environment.usr.door_is_open_a_0)) - (= environment.res.abs_3_a_0 (not environment.usr.in_station_a_0)) - (= environment.res.abs_6_a_0 (not environment.usr.warning_start_a_0)) - (__node_init_edge_0 - environment.usr.door_is_open_a_0 - environment.res.abs_0_a_0 - environment.res.inst_5_a_0) - (__node_init_edge_0 - environment.res.abs_1_a_0 - environment.res.abs_2_a_0 - environment.res.inst_4_a_0) - (__node_init_edge_0 - environment.res.abs_3_a_0 - environment.res.abs_4_a_0 - environment.res.inst_3_a_0) - (__node_init_jafter_0 - environment.usr.door_ok_a_0 - environment.res.abs_5_a_0 - environment.res.inst_2_a_0) - (__node_init_edge_0 - environment.res.abs_6_a_0 - environment.res.abs_7_a_0 - environment.res.inst_1_a_0) - (__node_init_edge_0 - environment.usr.warning_start_a_0 - environment.res.abs_8_a_0 - environment.res.inst_0_a_0) - environment.res.init_flag_a_0)))))))))) -) - -(define-fun - __node_trans_environment_0 ( - (environment.usr.door_is_open_a_1 Bool) - (environment.usr.open_door_a_1 Bool) - (environment.usr.close_door_a_1 Bool) - (environment.usr.in_station_a_1 Bool) - (environment.usr.door_ok_a_1 Bool) - (environment.usr.warning_start_a_1 Bool) - (environment.usr.env_always_ok_a_1 Bool) - (environment.res.init_flag_a_1 Bool) - (environment.res.abs_0_a_1 Bool) - (environment.res.abs_1_a_1 Bool) - (environment.res.abs_2_a_1 Bool) - (environment.res.abs_3_a_1 Bool) - (environment.res.abs_4_a_1 Bool) - (environment.res.abs_5_a_1 Bool) - (environment.res.abs_6_a_1 Bool) - (environment.res.abs_7_a_1 Bool) - (environment.res.abs_8_a_1 Bool) - (environment.res.inst_5_a_1 Bool) - (environment.res.inst_4_a_1 Bool) - (environment.res.inst_3_a_1 Bool) - (environment.res.inst_2_a_1 Bool) - (environment.res.inst_1_a_1 Bool) - (environment.res.inst_0_a_1 Bool) - (environment.usr.door_is_open_a_0 Bool) - (environment.usr.open_door_a_0 Bool) - (environment.usr.close_door_a_0 Bool) - (environment.usr.in_station_a_0 Bool) - (environment.usr.door_ok_a_0 Bool) - (environment.usr.warning_start_a_0 Bool) - (environment.usr.env_always_ok_a_0 Bool) - (environment.res.init_flag_a_0 Bool) - (environment.res.abs_0_a_0 Bool) - (environment.res.abs_1_a_0 Bool) - (environment.res.abs_2_a_0 Bool) - (environment.res.abs_3_a_0 Bool) - (environment.res.abs_4_a_0 Bool) - (environment.res.abs_5_a_0 Bool) - (environment.res.abs_6_a_0 Bool) - (environment.res.abs_7_a_0 Bool) - (environment.res.abs_8_a_0 Bool) - (environment.res.inst_5_a_0 Bool) - (environment.res.inst_4_a_0 Bool) - (environment.res.inst_3_a_0 Bool) - (environment.res.inst_2_a_0 Bool) - (environment.res.inst_1_a_0 Bool) - (environment.res.inst_0_a_0 Bool) - ) Bool - - (and - (= environment.res.abs_6_a_1 (not environment.usr.warning_start_a_1)) - (= environment.res.abs_3_a_1 (not environment.usr.in_station_a_1)) - (= environment.res.abs_1_a_1 (not environment.usr.door_is_open_a_1)) - (let - ((X1 Bool (=> environment.res.abs_8_a_1 (not environment.usr.open_door_a_1)))) - (let - ((X2 - Bool (=> environment.usr.warning_start_a_1 environment.usr.in_station_a_1))) - (let - ((X3 Bool (= environment.res.abs_4_a_1 environment.res.abs_7_a_1))) - (let - ((X4 Bool true)) - (let - ((X5 Bool true)) - (let - ((X6 Bool (=> environment.res.abs_4_a_1 environment.res.abs_5_a_1))) - (let - ((X7 - Bool (=> environment.res.abs_2_a_1 environment.usr.close_door_a_1))) - (let - ((X8 - Bool (=> environment.res.abs_0_a_1 environment.usr.open_door_a_1))) - (let - ((X9 - Bool (and - (and (and (and (and (and (and X7 X8) X6) X5) X4) X3) X2) - X1))) - (and - (= - environment.usr.env_always_ok_a_1 - (and X9 environment.usr.env_always_ok_a_0)) - (__node_trans_edge_0 - environment.usr.door_is_open_a_1 - environment.res.abs_0_a_1 - environment.res.inst_5_a_1 - environment.usr.door_is_open_a_0 - environment.res.abs_0_a_0 - environment.res.inst_5_a_0) - (__node_trans_edge_0 - environment.res.abs_1_a_1 - environment.res.abs_2_a_1 - environment.res.inst_4_a_1 - environment.res.abs_1_a_0 - environment.res.abs_2_a_0 - environment.res.inst_4_a_0) - (__node_trans_edge_0 - environment.res.abs_3_a_1 - environment.res.abs_4_a_1 - environment.res.inst_3_a_1 - environment.res.abs_3_a_0 - environment.res.abs_4_a_0 - environment.res.inst_3_a_0) - (__node_trans_jafter_0 - environment.usr.door_ok_a_1 - environment.res.abs_5_a_1 - environment.res.inst_2_a_1 - environment.usr.door_ok_a_0 - environment.res.abs_5_a_0 - environment.res.inst_2_a_0) - (__node_trans_edge_0 - environment.res.abs_6_a_1 - environment.res.abs_7_a_1 - environment.res.inst_1_a_1 - environment.res.abs_6_a_0 - environment.res.abs_7_a_0 - environment.res.inst_1_a_0) - (__node_trans_edge_0 - environment.usr.warning_start_a_1 - environment.res.abs_8_a_1 - environment.res.inst_0_a_1 - environment.usr.warning_start_a_0 - environment.res.abs_8_a_0 - environment.res.inst_0_a_0) - (not environment.res.init_flag_a_1)))))))))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.request_door_a_0 Bool) - (top.usr.warning_start_a_0 Bool) - (top.usr.in_station_a_0 Bool) - (top.usr.door_is_open_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.open_door_a_0 Bool) - (top.impl.usr.close_door_a_0 Bool) - (top.impl.usr.door_ok_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.inst_36_a_0 Bool) - (top.res.inst_35_a_0 Bool) - (top.res.inst_34_a_0 Bool) - (top.res.inst_33_a_0 Bool) - (top.res.inst_32_a_0 Bool) - (top.res.inst_31_a_0 Bool) - (top.res.inst_30_a_0 Bool) - (top.res.inst_29_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Bool) - (top.res.inst_23_a_0 Bool) - (top.res.inst_22_a_0 Bool) - (top.res.inst_21_a_0 Bool) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.close_door_a_0 top.res.abs_3_a_0) - (= top.impl.usr.open_door_a_0 top.res.abs_2_a_0) - (let - ((X1 Bool top.res.abs_0_a_0)) - (let - ((X2 Bool top.res.abs_1_a_0)) - (and - (= top.usr.OK_a_0 (=> X2 X1)) - (= top.impl.usr.door_ok_a_0 top.res.abs_4_a_0) - (__node_init_environment_0 - top.usr.door_is_open_a_0 - top.impl.usr.open_door_a_0 - top.impl.usr.close_door_a_0 - top.usr.in_station_a_0 - top.impl.usr.door_ok_a_0 - top.usr.warning_start_a_0 - top.res.abs_1_a_0 - top.res.inst_36_a_0 - top.res.inst_35_a_0 - top.res.inst_34_a_0 - top.res.inst_33_a_0 - top.res.inst_32_a_0 - top.res.inst_31_a_0 - top.res.inst_30_a_0 - top.res.inst_29_a_0 - top.res.inst_28_a_0 - top.res.inst_27_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0) - (__node_init_controller_0 - top.usr.request_door_a_0 - top.usr.warning_start_a_0 - top.usr.in_station_a_0 - top.usr.door_is_open_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0) - (__node_init_properties_0 - top.usr.door_is_open_a_0 - top.usr.in_station_a_0 - top.usr.request_door_a_0 - top.usr.warning_start_a_0 - top.res.abs_0_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.request_door_a_1 Bool) - (top.usr.warning_start_a_1 Bool) - (top.usr.in_station_a_1 Bool) - (top.usr.door_is_open_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.open_door_a_1 Bool) - (top.impl.usr.close_door_a_1 Bool) - (top.impl.usr.door_ok_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.abs_4_a_1 Bool) - (top.res.inst_36_a_1 Bool) - (top.res.inst_35_a_1 Bool) - (top.res.inst_34_a_1 Bool) - (top.res.inst_33_a_1 Bool) - (top.res.inst_32_a_1 Bool) - (top.res.inst_31_a_1 Bool) - (top.res.inst_30_a_1 Bool) - (top.res.inst_29_a_1 Bool) - (top.res.inst_28_a_1 Bool) - (top.res.inst_27_a_1 Bool) - (top.res.inst_26_a_1 Bool) - (top.res.inst_25_a_1 Bool) - (top.res.inst_24_a_1 Bool) - (top.res.inst_23_a_1 Bool) - (top.res.inst_22_a_1 Bool) - (top.res.inst_21_a_1 Bool) - (top.res.inst_20_a_1 Bool) - (top.res.inst_19_a_1 Bool) - (top.res.inst_18_a_1 Bool) - (top.res.inst_17_a_1 Bool) - (top.res.inst_16_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Bool) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Bool) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Bool) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.request_door_a_0 Bool) - (top.usr.warning_start_a_0 Bool) - (top.usr.in_station_a_0 Bool) - (top.usr.door_is_open_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.open_door_a_0 Bool) - (top.impl.usr.close_door_a_0 Bool) - (top.impl.usr.door_ok_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.inst_36_a_0 Bool) - (top.res.inst_35_a_0 Bool) - (top.res.inst_34_a_0 Bool) - (top.res.inst_33_a_0 Bool) - (top.res.inst_32_a_0 Bool) - (top.res.inst_31_a_0 Bool) - (top.res.inst_30_a_0 Bool) - (top.res.inst_29_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Bool) - (top.res.inst_23_a_0 Bool) - (top.res.inst_22_a_0 Bool) - (top.res.inst_21_a_0 Bool) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= top.impl.usr.close_door_a_1 top.res.abs_3_a_1) - (= top.impl.usr.open_door_a_1 top.res.abs_2_a_1) - (let - ((X1 Bool top.res.abs_0_a_1)) - (let - ((X2 Bool top.res.abs_1_a_1)) - (and - (= top.usr.OK_a_1 (=> X2 X1)) - (= top.impl.usr.door_ok_a_1 top.res.abs_4_a_1) - (__node_trans_environment_0 - top.usr.door_is_open_a_1 - top.impl.usr.open_door_a_1 - top.impl.usr.close_door_a_1 - top.usr.in_station_a_1 - top.impl.usr.door_ok_a_1 - top.usr.warning_start_a_1 - top.res.abs_1_a_1 - top.res.inst_36_a_1 - top.res.inst_35_a_1 - top.res.inst_34_a_1 - top.res.inst_33_a_1 - top.res.inst_32_a_1 - top.res.inst_31_a_1 - top.res.inst_30_a_1 - top.res.inst_29_a_1 - top.res.inst_28_a_1 - top.res.inst_27_a_1 - top.res.inst_26_a_1 - top.res.inst_25_a_1 - top.res.inst_24_a_1 - top.res.inst_23_a_1 - top.res.inst_22_a_1 - top.res.inst_21_a_1 - top.usr.door_is_open_a_0 - top.impl.usr.open_door_a_0 - top.impl.usr.close_door_a_0 - top.usr.in_station_a_0 - top.impl.usr.door_ok_a_0 - top.usr.warning_start_a_0 - top.res.abs_1_a_0 - top.res.inst_36_a_0 - top.res.inst_35_a_0 - top.res.inst_34_a_0 - top.res.inst_33_a_0 - top.res.inst_32_a_0 - top.res.inst_31_a_0 - top.res.inst_30_a_0 - top.res.inst_29_a_0 - top.res.inst_28_a_0 - top.res.inst_27_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0) - (__node_trans_controller_0 - top.usr.request_door_a_1 - top.usr.warning_start_a_1 - top.usr.in_station_a_1 - top.usr.door_is_open_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.abs_4_a_1 - top.res.inst_20_a_1 - top.res.inst_19_a_1 - top.res.inst_18_a_1 - top.res.inst_17_a_1 - top.res.inst_16_a_1 - top.usr.request_door_a_0 - top.usr.warning_start_a_0 - top.usr.in_station_a_0 - top.usr.door_is_open_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.abs_4_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0) - (__node_trans_properties_0 - top.usr.door_is_open_a_1 - top.usr.in_station_a_1 - top.usr.request_door_a_1 - top.usr.warning_start_a_1 - top.res.abs_0_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.res.inst_7_a_1 - top.res.inst_6_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.res.inst_1_a_1 - top.res.inst_0_a_1 - top.usr.door_is_open_a_0 - top.usr.in_station_a_0 - top.usr.request_door_a_0 - top.usr.warning_start_a_0 - top.res.abs_0_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0 - top.res.inst_7_a_0 - top.res.inst_6_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1))))) -) - - - -(synth-inv str_invariant( - (top.usr.request_door Bool) - (top.usr.warning_start Bool) - (top.usr.in_station Bool) - (top.usr.door_is_open Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.open_door Bool) - (top.impl.usr.close_door Bool) - (top.impl.usr.door_ok Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - - -(declare-primed-var top.usr.request_door Bool) -(declare-primed-var top.usr.warning_start Bool) -(declare-primed-var top.usr.in_station Bool) -(declare-primed-var top.usr.door_is_open Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.open_door Bool) -(declare-primed-var top.impl.usr.close_door Bool) -(declare-primed-var top.impl.usr.door_ok Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.inst_36 Bool) -(declare-primed-var top.res.inst_35 Bool) -(declare-primed-var top.res.inst_34 Bool) -(declare-primed-var top.res.inst_33 Bool) -(declare-primed-var top.res.inst_32 Bool) -(declare-primed-var top.res.inst_31 Bool) -(declare-primed-var top.res.inst_30 Bool) -(declare-primed-var top.res.inst_29 Bool) -(declare-primed-var top.res.inst_28 Bool) -(declare-primed-var top.res.inst_27 Bool) -(declare-primed-var top.res.inst_26 Bool) -(declare-primed-var top.res.inst_25 Bool) -(declare-primed-var top.res.inst_24 Bool) -(declare-primed-var top.res.inst_23 Bool) -(declare-primed-var top.res.inst_22 Bool) -(declare-primed-var top.res.inst_21 Bool) -(declare-primed-var top.res.inst_20 Bool) -(declare-primed-var top.res.inst_19 Bool) -(declare-primed-var top.res.inst_18 Bool) -(declare-primed-var top.res.inst_17 Bool) -(declare-primed-var top.res.inst_16 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Bool) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Bool) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Bool) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.request_door Bool) - (top.usr.warning_start Bool) - (top.usr.in_station Bool) - (top.usr.door_is_open Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.open_door Bool) - (top.impl.usr.close_door Bool) - (top.impl.usr.door_ok Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= top.impl.usr.close_door top.res.abs_3) - (= top.impl.usr.open_door top.res.abs_2) - (let - ((X1 Bool top.res.abs_0)) - (let - ((X2 Bool top.res.abs_1)) - (and - (= top.usr.OK (=> X2 X1)) - (= top.impl.usr.door_ok top.res.abs_4) - (__node_init_environment_0 - top.usr.door_is_open - top.impl.usr.open_door - top.impl.usr.close_door - top.usr.in_station - top.impl.usr.door_ok - top.usr.warning_start - top.res.abs_1 - top.res.inst_36 - top.res.inst_35 - top.res.inst_34 - top.res.inst_33 - top.res.inst_32 - top.res.inst_31 - top.res.inst_30 - top.res.inst_29 - top.res.inst_28 - top.res.inst_27 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21) - (__node_init_controller_0 - top.usr.request_door - top.usr.warning_start - top.usr.in_station - top.usr.door_is_open - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16) - (__node_init_properties_0 - top.usr.door_is_open - top.usr.in_station - top.usr.request_door - top.usr.warning_start - top.res.abs_0 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - top.res.init_flag)))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.request_door Bool) - (top.usr.warning_start Bool) - (top.usr.in_station Bool) - (top.usr.door_is_open Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.open_door Bool) - (top.impl.usr.close_door Bool) - (top.impl.usr.door_ok Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.request_door! Bool) - (top.usr.warning_start! Bool) - (top.usr.in_station! Bool) - (top.usr.door_is_open! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.open_door! Bool) - (top.impl.usr.close_door! Bool) - (top.impl.usr.door_ok! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.abs_4! Bool) - (top.res.inst_36! Bool) - (top.res.inst_35! Bool) - (top.res.inst_34! Bool) - (top.res.inst_33! Bool) - (top.res.inst_32! Bool) - (top.res.inst_31! Bool) - (top.res.inst_30! Bool) - (top.res.inst_29! Bool) - (top.res.inst_28! Bool) - (top.res.inst_27! Bool) - (top.res.inst_26! Bool) - (top.res.inst_25! Bool) - (top.res.inst_24! Bool) - (top.res.inst_23! Bool) - (top.res.inst_22! Bool) - (top.res.inst_21! Bool) - (top.res.inst_20! Bool) - (top.res.inst_19! Bool) - (top.res.inst_18! Bool) - (top.res.inst_17! Bool) - (top.res.inst_16! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Bool) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Bool) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Bool) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (= top.impl.usr.close_door! top.res.abs_3!) - (= top.impl.usr.open_door! top.res.abs_2!) - (let - ((X1 Bool top.res.abs_0!)) - (let - ((X2 Bool top.res.abs_1!)) - (and - (= top.usr.OK! (=> X2 X1)) - (= top.impl.usr.door_ok! top.res.abs_4!) - (__node_trans_environment_0 - top.usr.door_is_open! - top.impl.usr.open_door! - top.impl.usr.close_door! - top.usr.in_station! - top.impl.usr.door_ok! - top.usr.warning_start! - top.res.abs_1! - top.res.inst_36! - top.res.inst_35! - top.res.inst_34! - top.res.inst_33! - top.res.inst_32! - top.res.inst_31! - top.res.inst_30! - top.res.inst_29! - top.res.inst_28! - top.res.inst_27! - top.res.inst_26! - top.res.inst_25! - top.res.inst_24! - top.res.inst_23! - top.res.inst_22! - top.res.inst_21! - top.usr.door_is_open - top.impl.usr.open_door - top.impl.usr.close_door - top.usr.in_station - top.impl.usr.door_ok - top.usr.warning_start - top.res.abs_1 - top.res.inst_36 - top.res.inst_35 - top.res.inst_34 - top.res.inst_33 - top.res.inst_32 - top.res.inst_31 - top.res.inst_30 - top.res.inst_29 - top.res.inst_28 - top.res.inst_27 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21) - (__node_trans_controller_0 - top.usr.request_door! - top.usr.warning_start! - top.usr.in_station! - top.usr.door_is_open! - top.res.abs_2! - top.res.abs_3! - top.res.abs_4! - top.res.inst_20! - top.res.inst_19! - top.res.inst_18! - top.res.inst_17! - top.res.inst_16! - top.usr.request_door - top.usr.warning_start - top.usr.in_station - top.usr.door_is_open - top.res.abs_2 - top.res.abs_3 - top.res.abs_4 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16) - (__node_trans_properties_0 - top.usr.door_is_open! - top.usr.in_station! - top.usr.request_door! - top.usr.warning_start! - top.res.abs_0! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.res.inst_7! - top.res.inst_6! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.res.inst_1! - top.res.inst_0! - top.usr.door_is_open - top.usr.in_station - top.usr.request_door - top.usr.warning_start - top.res.abs_0 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8 - top.res.inst_7 - top.res.inst_6 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2 - top.res.inst_1 - top.res.inst_0) - (not top.res.init_flag!))))) -) - -(define-fun - prop ( - (top.usr.request_door Bool) - (top.usr.warning_start Bool) - (top.usr.in_station Bool) - (top.usr.door_is_open Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.open_door Bool) - (top.impl.usr.close_door Bool) - (top.impl.usr.door_ok Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_switch_0 ((switch.usr.init_a_0 Bool) (switch.usr.on_a_0 Bool) (switch.usr.off_a_0 Bool) (switch.usr.value_a_0 Bool) (switch.res.init_flag_a_0 Bool)) Bool + (and (= switch.usr.value_a_0 (ite switch.usr.on_a_0 true (ite switch.usr.off_a_0 false switch.usr.init_a_0))) switch.res.init_flag_a_0)) +(define-fun __node_trans_switch_0 ((switch.usr.init_a_1 Bool) (switch.usr.on_a_1 Bool) (switch.usr.off_a_1 Bool) (switch.usr.value_a_1 Bool) (switch.res.init_flag_a_1 Bool) (switch.usr.init_a_0 Bool) (switch.usr.on_a_0 Bool) (switch.usr.off_a_0 Bool) (switch.usr.value_a_0 Bool) (switch.res.init_flag_a_0 Bool)) Bool + (and (= switch.usr.value_a_1 (ite switch.usr.on_a_1 true (ite switch.usr.off_a_1 false switch.usr.value_a_0))) (not switch.res.init_flag_a_1))) +(define-fun __node_init_controller_0 ((controller.usr.request_door_a_0 Bool) (controller.usr.warning_start_a_0 Bool) (controller.usr.in_station_a_0 Bool) (controller.usr.door_is_open_a_0 Bool) (controller.usr.open_door_a_0 Bool) (controller.usr.close_door_a_0 Bool) (controller.usr.door_ok_a_0 Bool) (controller.res.init_flag_a_0 Bool) (controller.res.abs_0_a_0 Bool) (controller.res.abs_1_a_0 Bool) (controller.res.abs_2_a_0 Bool) (controller.res.inst_0_a_0 Bool)) Bool + (and (= controller.res.abs_1_a_0 (and controller.usr.request_door_a_0 (not controller.usr.warning_start_a_0))) (= controller.res.abs_0_a_0 false) (let ((X1 controller.res.abs_2_a_0)) (and (= controller.usr.open_door_a_0 (and X1 controller.usr.in_station_a_0)) (= controller.usr.close_door_a_0 (and controller.usr.warning_start_a_0 controller.usr.door_is_open_a_0)) (= controller.usr.door_ok_a_0 (and (not controller.usr.door_is_open_a_0) controller.usr.warning_start_a_0)) (__node_init_switch_0 controller.res.abs_0_a_0 controller.res.abs_1_a_0 controller.usr.door_is_open_a_0 controller.res.abs_2_a_0 controller.res.inst_0_a_0) controller.res.init_flag_a_0)))) +(define-fun __node_trans_controller_0 ((controller.usr.request_door_a_1 Bool) (controller.usr.warning_start_a_1 Bool) (controller.usr.in_station_a_1 Bool) (controller.usr.door_is_open_a_1 Bool) (controller.usr.open_door_a_1 Bool) (controller.usr.close_door_a_1 Bool) (controller.usr.door_ok_a_1 Bool) (controller.res.init_flag_a_1 Bool) (controller.res.abs_0_a_1 Bool) (controller.res.abs_1_a_1 Bool) (controller.res.abs_2_a_1 Bool) (controller.res.inst_0_a_1 Bool) (controller.usr.request_door_a_0 Bool) (controller.usr.warning_start_a_0 Bool) (controller.usr.in_station_a_0 Bool) (controller.usr.door_is_open_a_0 Bool) (controller.usr.open_door_a_0 Bool) (controller.usr.close_door_a_0 Bool) (controller.usr.door_ok_a_0 Bool) (controller.res.init_flag_a_0 Bool) (controller.res.abs_0_a_0 Bool) (controller.res.abs_1_a_0 Bool) (controller.res.abs_2_a_0 Bool) (controller.res.inst_0_a_0 Bool)) Bool + (and (= controller.res.abs_1_a_1 (and controller.usr.request_door_a_1 (not controller.usr.warning_start_a_1))) (let ((X1 controller.res.abs_2_a_1)) (and (= controller.usr.open_door_a_1 (and X1 controller.usr.in_station_a_1)) (= controller.res.abs_0_a_1 false) (= controller.usr.close_door_a_1 (and controller.usr.warning_start_a_1 controller.usr.door_is_open_a_1)) (= controller.usr.door_ok_a_1 (and (not controller.usr.door_is_open_a_1) controller.usr.warning_start_a_1)) (__node_trans_switch_0 controller.res.abs_0_a_1 controller.res.abs_1_a_1 controller.usr.door_is_open_a_1 controller.res.abs_2_a_1 controller.res.inst_0_a_1 controller.res.abs_0_a_0 controller.res.abs_1_a_0 controller.usr.door_is_open_a_0 controller.res.abs_2_a_0 controller.res.inst_0_a_0) (not controller.res.init_flag_a_1))))) +(define-fun __node_init_edge_0 ((edge.usr.X_a_0 Bool) (edge.usr.edge_a_0 Bool) (edge.res.init_flag_a_0 Bool)) Bool + (and (= edge.usr.edge_a_0 false) edge.res.init_flag_a_0)) +(define-fun __node_trans_edge_0 ((edge.usr.X_a_1 Bool) (edge.usr.edge_a_1 Bool) (edge.res.init_flag_a_1 Bool) (edge.usr.X_a_0 Bool) (edge.usr.edge_a_0 Bool) (edge.res.init_flag_a_0 Bool)) Bool + (and (= edge.usr.edge_a_1 (or edge.usr.X_a_1 (not edge.usr.X_a_0))) (not edge.res.init_flag_a_1))) +(define-fun __node_init_jafter_0 ((jafter.usr.X_a_0 Bool) (jafter.usr.after_a_0 Bool) (jafter.res.init_flag_a_0 Bool)) Bool + (and (= jafter.usr.after_a_0 false) jafter.res.init_flag_a_0)) +(define-fun __node_trans_jafter_0 ((jafter.usr.X_a_1 Bool) (jafter.usr.after_a_1 Bool) (jafter.res.init_flag_a_1 Bool) (jafter.usr.X_a_0 Bool) (jafter.usr.after_a_0 Bool) (jafter.res.init_flag_a_0 Bool)) Bool + (and (= jafter.usr.after_a_1 jafter.usr.X_a_0) (not jafter.res.init_flag_a_1))) +(define-fun __node_init_once_from_to_0 ((once_from_to.usr.A_a_0 Bool) (once_from_to.usr.B_a_0 Bool) (once_from_to.usr.X_a_0 Bool) (once_from_to.usr.OK_a_0 Bool) (once_from_to.res.init_flag_a_0 Bool) (once_from_to.res.abs_0_a_0 Bool) (once_from_to.res.abs_1_a_0 Bool) (once_from_to.res.abs_2_a_0 Bool) (once_from_to.res.inst_1_a_0 Bool) (once_from_to.res.inst_0_a_0 Bool)) Bool + (and (= once_from_to.res.abs_1_a_0 false) (let ((X1 once_from_to.res.abs_2_a_0)) (and (= once_from_to.usr.OK_a_0 (not (and X1 once_from_to.usr.B_a_0))) (__node_init_switch_0 once_from_to.res.abs_1_a_0 once_from_to.usr.A_a_0 once_from_to.res.abs_0_a_0 once_from_to.res.abs_2_a_0 once_from_to.res.inst_1_a_0) (__node_init_jafter_0 once_from_to.usr.X_a_0 once_from_to.res.abs_0_a_0 once_from_to.res.inst_0_a_0) once_from_to.res.init_flag_a_0)))) +(define-fun __node_trans_once_from_to_0 ((once_from_to.usr.A_a_1 Bool) (once_from_to.usr.B_a_1 Bool) (once_from_to.usr.X_a_1 Bool) (once_from_to.usr.OK_a_1 Bool) (once_from_to.res.init_flag_a_1 Bool) (once_from_to.res.abs_0_a_1 Bool) (once_from_to.res.abs_1_a_1 Bool) (once_from_to.res.abs_2_a_1 Bool) (once_from_to.res.inst_1_a_1 Bool) (once_from_to.res.inst_0_a_1 Bool) (once_from_to.usr.A_a_0 Bool) (once_from_to.usr.B_a_0 Bool) (once_from_to.usr.X_a_0 Bool) (once_from_to.usr.OK_a_0 Bool) (once_from_to.res.init_flag_a_0 Bool) (once_from_to.res.abs_0_a_0 Bool) (once_from_to.res.abs_1_a_0 Bool) (once_from_to.res.abs_2_a_0 Bool) (once_from_to.res.inst_1_a_0 Bool) (once_from_to.res.inst_0_a_0 Bool)) Bool + (let ((X1 once_from_to.res.abs_2_a_1)) (and (= once_from_to.usr.OK_a_1 (not (and X1 once_from_to.usr.B_a_1))) (= once_from_to.res.abs_1_a_1 false) (__node_trans_switch_0 once_from_to.res.abs_1_a_1 once_from_to.usr.A_a_1 once_from_to.res.abs_0_a_1 once_from_to.res.abs_2_a_1 once_from_to.res.inst_1_a_1 once_from_to.res.abs_1_a_0 once_from_to.usr.A_a_0 once_from_to.res.abs_0_a_0 once_from_to.res.abs_2_a_0 once_from_to.res.inst_1_a_0) (__node_trans_jafter_0 once_from_to.usr.X_a_1 once_from_to.res.abs_0_a_1 once_from_to.res.inst_0_a_1 once_from_to.usr.X_a_0 once_from_to.res.abs_0_a_0 once_from_to.res.inst_0_a_0) (not once_from_to.res.init_flag_a_1)))) +(define-fun __node_init_properties_0 ((properties.usr.door_is_open_a_0 Bool) (properties.usr.in_station_a_0 Bool) (properties.usr.request_door_a_0 Bool) (properties.usr.warning_start_a_0 Bool) (properties.usr.OK_a_0 Bool) (properties.res.init_flag_a_0 Bool) (properties.res.abs_0_a_0 Bool) (properties.res.abs_1_a_0 Bool) (properties.res.abs_2_a_0 Bool) (properties.res.abs_3_a_0 Bool) (properties.res.abs_4_a_0 Bool) (properties.res.abs_5_a_0 Bool) (properties.res.inst_8_a_0 Bool) (properties.res.inst_7_a_0 Bool) (properties.res.inst_6_a_0 Bool) (properties.res.inst_5_a_0 Bool) (properties.res.inst_4_a_0 Bool) (properties.res.inst_3_a_0 Bool) (properties.res.inst_2_a_0 Bool) (properties.res.inst_1_a_0 Bool) (properties.res.inst_0_a_0 Bool)) Bool + (let ((X1 properties.res.abs_5_a_0)) (let ((X2 (=> properties.usr.door_is_open_a_0 properties.usr.in_station_a_0))) (and (= properties.usr.OK_a_0 (and X2 X1)) (= properties.res.abs_0_a_0 (and properties.usr.request_door_a_0 (not properties.usr.warning_start_a_0))) (= properties.res.abs_2_a_0 (not properties.usr.in_station_a_0)) (__node_init_once_from_to_0 properties.res.abs_1_a_0 properties.res.abs_3_a_0 properties.res.abs_4_a_0 properties.res.abs_5_a_0 properties.res.inst_8_a_0 properties.res.inst_7_a_0 properties.res.inst_6_a_0 properties.res.inst_5_a_0 properties.res.inst_4_a_0 properties.res.inst_3_a_0) (__node_init_jafter_0 properties.res.abs_0_a_0 properties.res.abs_1_a_0 properties.res.inst_2_a_0) (__node_init_edge_0 properties.res.abs_2_a_0 properties.res.abs_3_a_0 properties.res.inst_1_a_0) (__node_init_jafter_0 properties.usr.door_is_open_a_0 properties.res.abs_4_a_0 properties.res.inst_0_a_0) properties.res.init_flag_a_0)))) +(define-fun __node_trans_properties_0 ((properties.usr.door_is_open_a_1 Bool) (properties.usr.in_station_a_1 Bool) (properties.usr.request_door_a_1 Bool) (properties.usr.warning_start_a_1 Bool) (properties.usr.OK_a_1 Bool) (properties.res.init_flag_a_1 Bool) (properties.res.abs_0_a_1 Bool) (properties.res.abs_1_a_1 Bool) (properties.res.abs_2_a_1 Bool) (properties.res.abs_3_a_1 Bool) (properties.res.abs_4_a_1 Bool) (properties.res.abs_5_a_1 Bool) (properties.res.inst_8_a_1 Bool) (properties.res.inst_7_a_1 Bool) (properties.res.inst_6_a_1 Bool) (properties.res.inst_5_a_1 Bool) (properties.res.inst_4_a_1 Bool) (properties.res.inst_3_a_1 Bool) (properties.res.inst_2_a_1 Bool) (properties.res.inst_1_a_1 Bool) (properties.res.inst_0_a_1 Bool) (properties.usr.door_is_open_a_0 Bool) (properties.usr.in_station_a_0 Bool) (properties.usr.request_door_a_0 Bool) (properties.usr.warning_start_a_0 Bool) (properties.usr.OK_a_0 Bool) (properties.res.init_flag_a_0 Bool) (properties.res.abs_0_a_0 Bool) (properties.res.abs_1_a_0 Bool) (properties.res.abs_2_a_0 Bool) (properties.res.abs_3_a_0 Bool) (properties.res.abs_4_a_0 Bool) (properties.res.abs_5_a_0 Bool) (properties.res.inst_8_a_0 Bool) (properties.res.inst_7_a_0 Bool) (properties.res.inst_6_a_0 Bool) (properties.res.inst_5_a_0 Bool) (properties.res.inst_4_a_0 Bool) (properties.res.inst_3_a_0 Bool) (properties.res.inst_2_a_0 Bool) (properties.res.inst_1_a_0 Bool) (properties.res.inst_0_a_0 Bool)) Bool + (and (= properties.res.abs_2_a_1 (not properties.usr.in_station_a_1)) (let ((X1 properties.res.abs_5_a_1)) (let ((X2 (=> properties.usr.door_is_open_a_1 properties.usr.in_station_a_1))) (and (= properties.usr.OK_a_1 (and X2 X1)) (= properties.res.abs_0_a_1 (and properties.usr.request_door_a_1 (not properties.usr.warning_start_a_1))) (__node_trans_once_from_to_0 properties.res.abs_1_a_1 properties.res.abs_3_a_1 properties.res.abs_4_a_1 properties.res.abs_5_a_1 properties.res.inst_8_a_1 properties.res.inst_7_a_1 properties.res.inst_6_a_1 properties.res.inst_5_a_1 properties.res.inst_4_a_1 properties.res.inst_3_a_1 properties.res.abs_1_a_0 properties.res.abs_3_a_0 properties.res.abs_4_a_0 properties.res.abs_5_a_0 properties.res.inst_8_a_0 properties.res.inst_7_a_0 properties.res.inst_6_a_0 properties.res.inst_5_a_0 properties.res.inst_4_a_0 properties.res.inst_3_a_0) (__node_trans_jafter_0 properties.res.abs_0_a_1 properties.res.abs_1_a_1 properties.res.inst_2_a_1 properties.res.abs_0_a_0 properties.res.abs_1_a_0 properties.res.inst_2_a_0) (__node_trans_edge_0 properties.res.abs_2_a_1 properties.res.abs_3_a_1 properties.res.inst_1_a_1 properties.res.abs_2_a_0 properties.res.abs_3_a_0 properties.res.inst_1_a_0) (__node_trans_jafter_0 properties.usr.door_is_open_a_1 properties.res.abs_4_a_1 properties.res.inst_0_a_1 properties.usr.door_is_open_a_0 properties.res.abs_4_a_0 properties.res.inst_0_a_0) (not properties.res.init_flag_a_1)))))) +(define-fun __node_init_environment_0 ((environment.usr.door_is_open_a_0 Bool) (environment.usr.open_door_a_0 Bool) (environment.usr.close_door_a_0 Bool) (environment.usr.in_station_a_0 Bool) (environment.usr.door_ok_a_0 Bool) (environment.usr.warning_start_a_0 Bool) (environment.usr.env_always_ok_a_0 Bool) (environment.res.init_flag_a_0 Bool) (environment.res.abs_0_a_0 Bool) (environment.res.abs_1_a_0 Bool) (environment.res.abs_2_a_0 Bool) (environment.res.abs_3_a_0 Bool) (environment.res.abs_4_a_0 Bool) (environment.res.abs_5_a_0 Bool) (environment.res.abs_6_a_0 Bool) (environment.res.abs_7_a_0 Bool) (environment.res.abs_8_a_0 Bool) (environment.res.inst_5_a_0 Bool) (environment.res.inst_4_a_0 Bool) (environment.res.inst_3_a_0 Bool) (environment.res.inst_2_a_0 Bool) (environment.res.inst_1_a_0 Bool) (environment.res.inst_0_a_0 Bool)) Bool + (let ((X1 (=> environment.res.abs_8_a_0 (not environment.usr.open_door_a_0)))) (let ((X2 (=> environment.usr.warning_start_a_0 environment.usr.in_station_a_0))) (let ((X3 (= environment.res.abs_4_a_0 environment.res.abs_7_a_0))) (let ((X4 (not environment.usr.in_station_a_0))) (let ((X5 (not environment.usr.door_is_open_a_0))) (let ((X6 (=> environment.res.abs_4_a_0 environment.res.abs_5_a_0))) (let ((X7 (=> environment.res.abs_2_a_0 environment.usr.close_door_a_0))) (let ((X8 (=> environment.res.abs_0_a_0 environment.usr.open_door_a_0))) (let ((X9 (and (and (and (and (and (and (and X7 X8) X6) X5) X4) X3) X2) X1))) (and (= environment.usr.env_always_ok_a_0 X9) (= environment.res.abs_1_a_0 (not environment.usr.door_is_open_a_0)) (= environment.res.abs_3_a_0 (not environment.usr.in_station_a_0)) (= environment.res.abs_6_a_0 (not environment.usr.warning_start_a_0)) (__node_init_edge_0 environment.usr.door_is_open_a_0 environment.res.abs_0_a_0 environment.res.inst_5_a_0) (__node_init_edge_0 environment.res.abs_1_a_0 environment.res.abs_2_a_0 environment.res.inst_4_a_0) (__node_init_edge_0 environment.res.abs_3_a_0 environment.res.abs_4_a_0 environment.res.inst_3_a_0) (__node_init_jafter_0 environment.usr.door_ok_a_0 environment.res.abs_5_a_0 environment.res.inst_2_a_0) (__node_init_edge_0 environment.res.abs_6_a_0 environment.res.abs_7_a_0 environment.res.inst_1_a_0) (__node_init_edge_0 environment.usr.warning_start_a_0 environment.res.abs_8_a_0 environment.res.inst_0_a_0) environment.res.init_flag_a_0))))))))))) +(define-fun __node_trans_environment_0 ((environment.usr.door_is_open_a_1 Bool) (environment.usr.open_door_a_1 Bool) (environment.usr.close_door_a_1 Bool) (environment.usr.in_station_a_1 Bool) (environment.usr.door_ok_a_1 Bool) (environment.usr.warning_start_a_1 Bool) (environment.usr.env_always_ok_a_1 Bool) (environment.res.init_flag_a_1 Bool) (environment.res.abs_0_a_1 Bool) (environment.res.abs_1_a_1 Bool) (environment.res.abs_2_a_1 Bool) (environment.res.abs_3_a_1 Bool) (environment.res.abs_4_a_1 Bool) (environment.res.abs_5_a_1 Bool) (environment.res.abs_6_a_1 Bool) (environment.res.abs_7_a_1 Bool) (environment.res.abs_8_a_1 Bool) (environment.res.inst_5_a_1 Bool) (environment.res.inst_4_a_1 Bool) (environment.res.inst_3_a_1 Bool) (environment.res.inst_2_a_1 Bool) (environment.res.inst_1_a_1 Bool) (environment.res.inst_0_a_1 Bool) (environment.usr.door_is_open_a_0 Bool) (environment.usr.open_door_a_0 Bool) (environment.usr.close_door_a_0 Bool) (environment.usr.in_station_a_0 Bool) (environment.usr.door_ok_a_0 Bool) (environment.usr.warning_start_a_0 Bool) (environment.usr.env_always_ok_a_0 Bool) (environment.res.init_flag_a_0 Bool) (environment.res.abs_0_a_0 Bool) (environment.res.abs_1_a_0 Bool) (environment.res.abs_2_a_0 Bool) (environment.res.abs_3_a_0 Bool) (environment.res.abs_4_a_0 Bool) (environment.res.abs_5_a_0 Bool) (environment.res.abs_6_a_0 Bool) (environment.res.abs_7_a_0 Bool) (environment.res.abs_8_a_0 Bool) (environment.res.inst_5_a_0 Bool) (environment.res.inst_4_a_0 Bool) (environment.res.inst_3_a_0 Bool) (environment.res.inst_2_a_0 Bool) (environment.res.inst_1_a_0 Bool) (environment.res.inst_0_a_0 Bool)) Bool + (and (= environment.res.abs_6_a_1 (not environment.usr.warning_start_a_1)) (= environment.res.abs_3_a_1 (not environment.usr.in_station_a_1)) (= environment.res.abs_1_a_1 (not environment.usr.door_is_open_a_1)) (let ((X1 (=> environment.res.abs_8_a_1 (not environment.usr.open_door_a_1)))) (let ((X2 (=> environment.usr.warning_start_a_1 environment.usr.in_station_a_1))) (let ((X3 (= environment.res.abs_4_a_1 environment.res.abs_7_a_1))) (let ((X4 true)) (let ((X5 true)) (let ((X6 (=> environment.res.abs_4_a_1 environment.res.abs_5_a_1))) (let ((X7 (=> environment.res.abs_2_a_1 environment.usr.close_door_a_1))) (let ((X8 (=> environment.res.abs_0_a_1 environment.usr.open_door_a_1))) (let ((X9 (and (and (and (and (and (and (and X7 X8) X6) X5) X4) X3) X2) X1))) (and (= environment.usr.env_always_ok_a_1 (and X9 environment.usr.env_always_ok_a_0)) (__node_trans_edge_0 environment.usr.door_is_open_a_1 environment.res.abs_0_a_1 environment.res.inst_5_a_1 environment.usr.door_is_open_a_0 environment.res.abs_0_a_0 environment.res.inst_5_a_0) (__node_trans_edge_0 environment.res.abs_1_a_1 environment.res.abs_2_a_1 environment.res.inst_4_a_1 environment.res.abs_1_a_0 environment.res.abs_2_a_0 environment.res.inst_4_a_0) (__node_trans_edge_0 environment.res.abs_3_a_1 environment.res.abs_4_a_1 environment.res.inst_3_a_1 environment.res.abs_3_a_0 environment.res.abs_4_a_0 environment.res.inst_3_a_0) (__node_trans_jafter_0 environment.usr.door_ok_a_1 environment.res.abs_5_a_1 environment.res.inst_2_a_1 environment.usr.door_ok_a_0 environment.res.abs_5_a_0 environment.res.inst_2_a_0) (__node_trans_edge_0 environment.res.abs_6_a_1 environment.res.abs_7_a_1 environment.res.inst_1_a_1 environment.res.abs_6_a_0 environment.res.abs_7_a_0 environment.res.inst_1_a_0) (__node_trans_edge_0 environment.usr.warning_start_a_1 environment.res.abs_8_a_1 environment.res.inst_0_a_1 environment.usr.warning_start_a_0 environment.res.abs_8_a_0 environment.res.inst_0_a_0) (not environment.res.init_flag_a_1))))))))))))) +(define-fun __node_init_top_0 ((top.usr.request_door_a_0 Bool) (top.usr.warning_start_a_0 Bool) (top.usr.in_station_a_0 Bool) (top.usr.door_is_open_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.open_door_a_0 Bool) (top.impl.usr.close_door_a_0 Bool) (top.impl.usr.door_ok_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.inst_36_a_0 Bool) (top.res.inst_35_a_0 Bool) (top.res.inst_34_a_0 Bool) (top.res.inst_33_a_0 Bool) (top.res.inst_32_a_0 Bool) (top.res.inst_31_a_0 Bool) (top.res.inst_30_a_0 Bool) (top.res.inst_29_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.close_door_a_0 top.res.abs_3_a_0) (= top.impl.usr.open_door_a_0 top.res.abs_2_a_0) (let ((X1 top.res.abs_0_a_0)) (let ((X2 top.res.abs_1_a_0)) (and (= top.usr.OK_a_0 (=> X2 X1)) (= top.impl.usr.door_ok_a_0 top.res.abs_4_a_0) (__node_init_environment_0 top.usr.door_is_open_a_0 top.impl.usr.open_door_a_0 top.impl.usr.close_door_a_0 top.usr.in_station_a_0 top.impl.usr.door_ok_a_0 top.usr.warning_start_a_0 top.res.abs_1_a_0 top.res.inst_36_a_0 top.res.inst_35_a_0 top.res.inst_34_a_0 top.res.inst_33_a_0 top.res.inst_32_a_0 top.res.inst_31_a_0 top.res.inst_30_a_0 top.res.inst_29_a_0 top.res.inst_28_a_0 top.res.inst_27_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0) (__node_init_controller_0 top.usr.request_door_a_0 top.usr.warning_start_a_0 top.usr.in_station_a_0 top.usr.door_is_open_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0) (__node_init_properties_0 top.usr.door_is_open_a_0 top.usr.in_station_a_0 top.usr.request_door_a_0 top.usr.warning_start_a_0 top.res.abs_0_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0))))) +(define-fun __node_trans_top_0 ((top.usr.request_door_a_1 Bool) (top.usr.warning_start_a_1 Bool) (top.usr.in_station_a_1 Bool) (top.usr.door_is_open_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.open_door_a_1 Bool) (top.impl.usr.close_door_a_1 Bool) (top.impl.usr.door_ok_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.abs_4_a_1 Bool) (top.res.inst_36_a_1 Bool) (top.res.inst_35_a_1 Bool) (top.res.inst_34_a_1 Bool) (top.res.inst_33_a_1 Bool) (top.res.inst_32_a_1 Bool) (top.res.inst_31_a_1 Bool) (top.res.inst_30_a_1 Bool) (top.res.inst_29_a_1 Bool) (top.res.inst_28_a_1 Bool) (top.res.inst_27_a_1 Bool) (top.res.inst_26_a_1 Bool) (top.res.inst_25_a_1 Bool) (top.res.inst_24_a_1 Bool) (top.res.inst_23_a_1 Bool) (top.res.inst_22_a_1 Bool) (top.res.inst_21_a_1 Bool) (top.res.inst_20_a_1 Bool) (top.res.inst_19_a_1 Bool) (top.res.inst_18_a_1 Bool) (top.res.inst_17_a_1 Bool) (top.res.inst_16_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Bool) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Bool) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Bool) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.request_door_a_0 Bool) (top.usr.warning_start_a_0 Bool) (top.usr.in_station_a_0 Bool) (top.usr.door_is_open_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.open_door_a_0 Bool) (top.impl.usr.close_door_a_0 Bool) (top.impl.usr.door_ok_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.inst_36_a_0 Bool) (top.res.inst_35_a_0 Bool) (top.res.inst_34_a_0 Bool) (top.res.inst_33_a_0 Bool) (top.res.inst_32_a_0 Bool) (top.res.inst_31_a_0 Bool) (top.res.inst_30_a_0 Bool) (top.res.inst_29_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.close_door_a_1 top.res.abs_3_a_1) (= top.impl.usr.open_door_a_1 top.res.abs_2_a_1) (let ((X1 top.res.abs_0_a_1)) (let ((X2 top.res.abs_1_a_1)) (and (= top.usr.OK_a_1 (=> X2 X1)) (= top.impl.usr.door_ok_a_1 top.res.abs_4_a_1) (__node_trans_environment_0 top.usr.door_is_open_a_1 top.impl.usr.open_door_a_1 top.impl.usr.close_door_a_1 top.usr.in_station_a_1 top.impl.usr.door_ok_a_1 top.usr.warning_start_a_1 top.res.abs_1_a_1 top.res.inst_36_a_1 top.res.inst_35_a_1 top.res.inst_34_a_1 top.res.inst_33_a_1 top.res.inst_32_a_1 top.res.inst_31_a_1 top.res.inst_30_a_1 top.res.inst_29_a_1 top.res.inst_28_a_1 top.res.inst_27_a_1 top.res.inst_26_a_1 top.res.inst_25_a_1 top.res.inst_24_a_1 top.res.inst_23_a_1 top.res.inst_22_a_1 top.res.inst_21_a_1 top.usr.door_is_open_a_0 top.impl.usr.open_door_a_0 top.impl.usr.close_door_a_0 top.usr.in_station_a_0 top.impl.usr.door_ok_a_0 top.usr.warning_start_a_0 top.res.abs_1_a_0 top.res.inst_36_a_0 top.res.inst_35_a_0 top.res.inst_34_a_0 top.res.inst_33_a_0 top.res.inst_32_a_0 top.res.inst_31_a_0 top.res.inst_30_a_0 top.res.inst_29_a_0 top.res.inst_28_a_0 top.res.inst_27_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0) (__node_trans_controller_0 top.usr.request_door_a_1 top.usr.warning_start_a_1 top.usr.in_station_a_1 top.usr.door_is_open_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.abs_4_a_1 top.res.inst_20_a_1 top.res.inst_19_a_1 top.res.inst_18_a_1 top.res.inst_17_a_1 top.res.inst_16_a_1 top.usr.request_door_a_0 top.usr.warning_start_a_0 top.usr.in_station_a_0 top.usr.door_is_open_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.abs_4_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0) (__node_trans_properties_0 top.usr.door_is_open_a_1 top.usr.in_station_a_1 top.usr.request_door_a_1 top.usr.warning_start_a_1 top.res.abs_0_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.res.inst_7_a_1 top.res.inst_6_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.res.inst_1_a_1 top.res.inst_0_a_1 top.usr.door_is_open_a_0 top.usr.in_station_a_0 top.usr.request_door_a_0 top.usr.warning_start_a_0 top.res.abs_0_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0 top.res.inst_7_a_0 top.res.inst_6_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1)))))) +(synth-inv str_invariant ((top.usr.request_door Bool) (top.usr.warning_start Bool) (top.usr.in_station Bool) (top.usr.door_is_open Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.open_door Bool) (top.impl.usr.close_door Bool) (top.impl.usr.door_ok Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(define-fun init ((top.usr.request_door Bool) (top.usr.warning_start Bool) (top.usr.in_station Bool) (top.usr.door_is_open Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.open_door Bool) (top.impl.usr.close_door Bool) (top.impl.usr.door_ok Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.close_door top.res.abs_3) (= top.impl.usr.open_door top.res.abs_2) (let ((X1 top.res.abs_0)) (let ((X2 top.res.abs_1)) (and (= top.usr.OK (=> X2 X1)) (= top.impl.usr.door_ok top.res.abs_4) (__node_init_environment_0 top.usr.door_is_open top.impl.usr.open_door top.impl.usr.close_door top.usr.in_station top.impl.usr.door_ok top.usr.warning_start top.res.abs_1 top.res.inst_36 top.res.inst_35 top.res.inst_34 top.res.inst_33 top.res.inst_32 top.res.inst_31 top.res.inst_30 top.res.inst_29 top.res.inst_28 top.res.inst_27 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21) (__node_init_controller_0 top.usr.request_door top.usr.warning_start top.usr.in_station top.usr.door_is_open top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16) (__node_init_properties_0 top.usr.door_is_open top.usr.in_station top.usr.request_door top.usr.warning_start top.res.abs_0 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) top.res.init_flag))))) +(define-fun trans ((top.usr.request_door Bool) (top.usr.warning_start Bool) (top.usr.in_station Bool) (top.usr.door_is_open Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.open_door Bool) (top.impl.usr.close_door Bool) (top.impl.usr.door_ok Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.request_door! Bool) (top.usr.warning_start! Bool) (top.usr.in_station! Bool) (top.usr.door_is_open! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.open_door! Bool) (top.impl.usr.close_door! Bool) (top.impl.usr.door_ok! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.abs_4! Bool) (top.res.inst_36! Bool) (top.res.inst_35! Bool) (top.res.inst_34! Bool) (top.res.inst_33! Bool) (top.res.inst_32! Bool) (top.res.inst_31! Bool) (top.res.inst_30! Bool) (top.res.inst_29! Bool) (top.res.inst_28! Bool) (top.res.inst_27! Bool) (top.res.inst_26! Bool) (top.res.inst_25! Bool) (top.res.inst_24! Bool) (top.res.inst_23! Bool) (top.res.inst_22! Bool) (top.res.inst_21! Bool) (top.res.inst_20! Bool) (top.res.inst_19! Bool) (top.res.inst_18! Bool) (top.res.inst_17! Bool) (top.res.inst_16! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Bool) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Bool) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Bool) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (= top.impl.usr.close_door! top.res.abs_3!) (= top.impl.usr.open_door! top.res.abs_2!) (let ((X1 top.res.abs_0!)) (let ((X2 top.res.abs_1!)) (and (= top.usr.OK! (=> X2 X1)) (= top.impl.usr.door_ok! top.res.abs_4!) (__node_trans_environment_0 top.usr.door_is_open! top.impl.usr.open_door! top.impl.usr.close_door! top.usr.in_station! top.impl.usr.door_ok! top.usr.warning_start! top.res.abs_1! top.res.inst_36! top.res.inst_35! top.res.inst_34! top.res.inst_33! top.res.inst_32! top.res.inst_31! top.res.inst_30! top.res.inst_29! top.res.inst_28! top.res.inst_27! top.res.inst_26! top.res.inst_25! top.res.inst_24! top.res.inst_23! top.res.inst_22! top.res.inst_21! top.usr.door_is_open top.impl.usr.open_door top.impl.usr.close_door top.usr.in_station top.impl.usr.door_ok top.usr.warning_start top.res.abs_1 top.res.inst_36 top.res.inst_35 top.res.inst_34 top.res.inst_33 top.res.inst_32 top.res.inst_31 top.res.inst_30 top.res.inst_29 top.res.inst_28 top.res.inst_27 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21) (__node_trans_controller_0 top.usr.request_door! top.usr.warning_start! top.usr.in_station! top.usr.door_is_open! top.res.abs_2! top.res.abs_3! top.res.abs_4! top.res.inst_20! top.res.inst_19! top.res.inst_18! top.res.inst_17! top.res.inst_16! top.usr.request_door top.usr.warning_start top.usr.in_station top.usr.door_is_open top.res.abs_2 top.res.abs_3 top.res.abs_4 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16) (__node_trans_properties_0 top.usr.door_is_open! top.usr.in_station! top.usr.request_door! top.usr.warning_start! top.res.abs_0! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.res.inst_7! top.res.inst_6! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.res.inst_1! top.res.inst_0! top.usr.door_is_open top.usr.in_station top.usr.request_door top.usr.warning_start top.res.abs_0 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8 top.res.inst_7 top.res.inst_6 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2 top.res.inst_1 top.res.inst_0) (not top.res.init_flag!)))))) +(define-fun prop ((top.usr.request_door Bool) (top.usr.warning_start Bool) (top.usr.in_station Bool) (top.usr.door_is_open Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.open_door Bool) (top.impl.usr.close_door Bool) (top.impl.usr.door_ok Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/twisted_counters.sl b/benchmarks/LIA/Lustre/twisted_counters.sl index 24a9570..d400250 100644 --- a/benchmarks/LIA/Lustre/twisted_counters.sl +++ b/benchmarks/LIA/Lustre/twisted_counters.sl @@ -1,341 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_intloop6counter_0 ( - (intloop6counter.usr.x_a_0 Bool) - (intloop6counter.usr.out_a_0 Bool) - (intloop6counter.res.init_flag_a_0 Bool) - (intloop6counter.impl.usr.time_a_0 Int) - ) Bool - - (and - (= intloop6counter.impl.usr.time_a_0 0) - (= intloop6counter.usr.out_a_0 (= intloop6counter.impl.usr.time_a_0 5)) - intloop6counter.res.init_flag_a_0) -) - -(define-fun - __node_trans_intloop6counter_0 ( - (intloop6counter.usr.x_a_1 Bool) - (intloop6counter.usr.out_a_1 Bool) - (intloop6counter.res.init_flag_a_1 Bool) - (intloop6counter.impl.usr.time_a_1 Int) - (intloop6counter.usr.x_a_0 Bool) - (intloop6counter.usr.out_a_0 Bool) - (intloop6counter.res.init_flag_a_0 Bool) - (intloop6counter.impl.usr.time_a_0 Int) - ) Bool - - (and - (= - intloop6counter.impl.usr.time_a_1 - (ite - (= intloop6counter.impl.usr.time_a_0 5) - 2 - (ite - (= intloop6counter.impl.usr.time_a_0 4) - (ite (not intloop6counter.usr.x_a_0) 3 5) - (+ intloop6counter.impl.usr.time_a_0 1)))) - (= intloop6counter.usr.out_a_1 (= intloop6counter.impl.usr.time_a_1 5)) - (not intloop6counter.res.init_flag_a_1)) -) - -(define-fun - __node_init_loop6counter_0 ( - (loop6counter.usr.x_a_0 Bool) - (loop6counter.usr.out_a_0 Bool) - (loop6counter.res.init_flag_a_0 Bool) - (loop6counter.impl.usr.a_a_0 Bool) - (loop6counter.impl.usr.b_a_0 Bool) - (loop6counter.impl.usr.c_a_0 Bool) - ) Bool - - (and - (= loop6counter.impl.usr.c_a_0 false) - (= loop6counter.impl.usr.a_a_0 false) - (= - loop6counter.usr.out_a_0 - (and loop6counter.impl.usr.a_a_0 loop6counter.impl.usr.c_a_0)) - (= loop6counter.impl.usr.b_a_0 false) - loop6counter.res.init_flag_a_0) -) - -(define-fun - __node_trans_loop6counter_0 ( - (loop6counter.usr.x_a_1 Bool) - (loop6counter.usr.out_a_1 Bool) - (loop6counter.res.init_flag_a_1 Bool) - (loop6counter.impl.usr.a_a_1 Bool) - (loop6counter.impl.usr.b_a_1 Bool) - (loop6counter.impl.usr.c_a_1 Bool) - (loop6counter.usr.x_a_0 Bool) - (loop6counter.usr.out_a_0 Bool) - (loop6counter.res.init_flag_a_0 Bool) - (loop6counter.impl.usr.a_a_0 Bool) - (loop6counter.impl.usr.b_a_0 Bool) - (loop6counter.impl.usr.c_a_0 Bool) - ) Bool - - (and - (= loop6counter.impl.usr.c_a_1 (not loop6counter.impl.usr.c_a_0)) - (= - loop6counter.impl.usr.a_a_1 - (or - (and loop6counter.impl.usr.b_a_0 loop6counter.impl.usr.c_a_0) - (and - (and loop6counter.usr.x_a_0 loop6counter.impl.usr.a_a_0) - (not loop6counter.impl.usr.c_a_0)))) - (= - loop6counter.usr.out_a_1 - (and loop6counter.impl.usr.a_a_1 loop6counter.impl.usr.c_a_1)) - (= - loop6counter.impl.usr.b_a_1 - (or - (or - (and (not loop6counter.impl.usr.b_a_0) loop6counter.impl.usr.c_a_0) - (and loop6counter.impl.usr.b_a_0 (not loop6counter.impl.usr.c_a_0))) - (and (not loop6counter.usr.x_a_0) loop6counter.impl.usr.a_a_0))) - (not loop6counter.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.x_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Int) - ) Bool - - (let - ((X1 Bool top.res.abs_1_a_0)) - (let - ((X2 Bool top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (or (not top.usr.x_a_0) (= X2 X1))) - (__node_init_loop6counter_0 - top.usr.x_a_0 - top.res.abs_0_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_intloop6counter_0 - top.usr.x_a_0 - top.res.abs_1_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.x_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.inst_5_a_1 Bool) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Int) - (top.usr.x_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Int) - ) Bool - - (let - ((X1 Bool top.res.abs_1_a_1)) - (let - ((X2 Bool top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (or (not top.usr.x_a_1) (= X2 X1))) - (__node_trans_loop6counter_0 - top.usr.x_a_1 - top.res.abs_0_a_1 - top.res.inst_5_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.x_a_0 - top.res.abs_0_a_0 - top.res.inst_5_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_intloop6counter_0 - top.usr.x_a_1 - top.res.abs_1_a_1 - top.res.inst_1_a_1 - top.res.inst_0_a_1 - top.usr.x_a_0 - top.res.abs_1_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.x Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Int) -)) - - -(declare-primed-var top.usr.x Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.inst_5 Bool) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Int) - -(define-fun - init ( - (top.usr.x Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Int) - ) Bool - - (let - ((X1 Bool top.res.abs_1)) - (let - ((X2 Bool top.res.abs_0)) - (and - (= top.usr.OK (or (not top.usr.x) (= X2 X1))) - (__node_init_loop6counter_0 - top.usr.x - top.res.abs_0 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2) - (__node_init_intloop6counter_0 - top.usr.x - top.res.abs_1 - top.res.inst_1 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.x Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Int) - - ;; Next state. - (top.usr.x! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.inst_5! Bool) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Int) - - ) Bool - - (let - ((X1 Bool top.res.abs_1!)) - (let - ((X2 Bool top.res.abs_0!)) - (and - (= top.usr.OK! (or (not top.usr.x!) (= X2 X1))) - (__node_trans_loop6counter_0 - top.usr.x! - top.res.abs_0! - top.res.inst_5! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.usr.x - top.res.abs_0 - top.res.inst_5 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2) - (__node_trans_intloop6counter_0 - top.usr.x! - top.res.abs_1! - top.res.inst_1! - top.res.inst_0! - top.usr.x - top.res.abs_1 - top.res.inst_1 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.x Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Int) - ) Bool - - top.usr.OK -) +(define-fun __node_init_intloop6counter_0 ((intloop6counter.usr.x_a_0 Bool) (intloop6counter.usr.out_a_0 Bool) (intloop6counter.res.init_flag_a_0 Bool) (intloop6counter.impl.usr.time_a_0 Int)) Bool + (and (= intloop6counter.impl.usr.time_a_0 0) (= intloop6counter.usr.out_a_0 (= intloop6counter.impl.usr.time_a_0 5)) intloop6counter.res.init_flag_a_0)) +(define-fun __node_trans_intloop6counter_0 ((intloop6counter.usr.x_a_1 Bool) (intloop6counter.usr.out_a_1 Bool) (intloop6counter.res.init_flag_a_1 Bool) (intloop6counter.impl.usr.time_a_1 Int) (intloop6counter.usr.x_a_0 Bool) (intloop6counter.usr.out_a_0 Bool) (intloop6counter.res.init_flag_a_0 Bool) (intloop6counter.impl.usr.time_a_0 Int)) Bool + (and (= intloop6counter.impl.usr.time_a_1 (ite (= intloop6counter.impl.usr.time_a_0 5) 2 (ite (= intloop6counter.impl.usr.time_a_0 4) (ite (not intloop6counter.usr.x_a_0) 3 5) (+ intloop6counter.impl.usr.time_a_0 1)))) (= intloop6counter.usr.out_a_1 (= intloop6counter.impl.usr.time_a_1 5)) (not intloop6counter.res.init_flag_a_1))) +(define-fun __node_init_loop6counter_0 ((loop6counter.usr.x_a_0 Bool) (loop6counter.usr.out_a_0 Bool) (loop6counter.res.init_flag_a_0 Bool) (loop6counter.impl.usr.a_a_0 Bool) (loop6counter.impl.usr.b_a_0 Bool) (loop6counter.impl.usr.c_a_0 Bool)) Bool + (and (= loop6counter.impl.usr.c_a_0 false) (= loop6counter.impl.usr.a_a_0 false) (= loop6counter.usr.out_a_0 (and loop6counter.impl.usr.a_a_0 loop6counter.impl.usr.c_a_0)) (= loop6counter.impl.usr.b_a_0 false) loop6counter.res.init_flag_a_0)) +(define-fun __node_trans_loop6counter_0 ((loop6counter.usr.x_a_1 Bool) (loop6counter.usr.out_a_1 Bool) (loop6counter.res.init_flag_a_1 Bool) (loop6counter.impl.usr.a_a_1 Bool) (loop6counter.impl.usr.b_a_1 Bool) (loop6counter.impl.usr.c_a_1 Bool) (loop6counter.usr.x_a_0 Bool) (loop6counter.usr.out_a_0 Bool) (loop6counter.res.init_flag_a_0 Bool) (loop6counter.impl.usr.a_a_0 Bool) (loop6counter.impl.usr.b_a_0 Bool) (loop6counter.impl.usr.c_a_0 Bool)) Bool + (and (= loop6counter.impl.usr.c_a_1 (not loop6counter.impl.usr.c_a_0)) (= loop6counter.impl.usr.a_a_1 (or (and loop6counter.impl.usr.b_a_0 loop6counter.impl.usr.c_a_0) (and (and loop6counter.usr.x_a_0 loop6counter.impl.usr.a_a_0) (not loop6counter.impl.usr.c_a_0)))) (= loop6counter.usr.out_a_1 (and loop6counter.impl.usr.a_a_1 loop6counter.impl.usr.c_a_1)) (= loop6counter.impl.usr.b_a_1 (or (or (and (not loop6counter.impl.usr.b_a_0) loop6counter.impl.usr.c_a_0) (and loop6counter.impl.usr.b_a_0 (not loop6counter.impl.usr.c_a_0))) (and (not loop6counter.usr.x_a_0) loop6counter.impl.usr.a_a_0))) (not loop6counter.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.x_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Int)) Bool + (let ((X1 top.res.abs_1_a_0)) (let ((X2 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (or (not top.usr.x_a_0) (= X2 X1))) (__node_init_loop6counter_0 top.usr.x_a_0 top.res.abs_0_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_intloop6counter_0 top.usr.x_a_0 top.res.abs_1_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.x_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.inst_5_a_1 Bool) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Int) (top.usr.x_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Int)) Bool + (let ((X1 top.res.abs_1_a_1)) (let ((X2 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (or (not top.usr.x_a_1) (= X2 X1))) (__node_trans_loop6counter_0 top.usr.x_a_1 top.res.abs_0_a_1 top.res.inst_5_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.x_a_0 top.res.abs_0_a_0 top.res.inst_5_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_intloop6counter_0 top.usr.x_a_1 top.res.abs_1_a_1 top.res.inst_1_a_1 top.res.inst_0_a_1 top.usr.x_a_0 top.res.abs_1_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.x Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Int))) + +(define-fun init ((top.usr.x Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Int)) Bool + (let ((X1 top.res.abs_1)) (let ((X2 top.res.abs_0)) (and (= top.usr.OK (or (not top.usr.x) (= X2 X1))) (__node_init_loop6counter_0 top.usr.x top.res.abs_0 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2) (__node_init_intloop6counter_0 top.usr.x top.res.abs_1 top.res.inst_1 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.x Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Int) (top.usr.x! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.inst_5! Bool) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Int)) Bool + (let ((X1 top.res.abs_1!)) (let ((X2 top.res.abs_0!)) (and (= top.usr.OK! (or (not top.usr.x!) (= X2 X1))) (__node_trans_loop6counter_0 top.usr.x! top.res.abs_0! top.res.inst_5! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.usr.x top.res.abs_0 top.res.inst_5 top.res.inst_4 top.res.inst_3 top.res.inst_2) (__node_trans_intloop6counter_0 top.usr.x! top.res.abs_1! top.res.inst_1! top.res.inst_0! top.usr.x top.res.abs_1 top.res.inst_1 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.x Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Int)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/two_counters.sl b/benchmarks/LIA/Lustre/two_counters.sl index 5bd0747..9784633 100644 --- a/benchmarks/LIA/Lustre/two_counters.sl +++ b/benchmarks/LIA/Lustre/two_counters.sl @@ -1,306 +1,27 @@ (set-logic LIA) -(define-fun - __node_init_intloopcounter_0 ( - (intloopcounter.usr.x_a_0 Bool) - (intloopcounter.usr.out_a_0 Bool) - (intloopcounter.res.init_flag_a_0 Bool) - (intloopcounter.impl.usr.time_a_0 Int) - ) Bool - - (and - (= intloopcounter.impl.usr.time_a_0 0) - (= intloopcounter.usr.out_a_0 (= intloopcounter.impl.usr.time_a_0 2)) - intloopcounter.res.init_flag_a_0) -) - -(define-fun - __node_trans_intloopcounter_0 ( - (intloopcounter.usr.x_a_1 Bool) - (intloopcounter.usr.out_a_1 Bool) - (intloopcounter.res.init_flag_a_1 Bool) - (intloopcounter.impl.usr.time_a_1 Int) - (intloopcounter.usr.x_a_0 Bool) - (intloopcounter.usr.out_a_0 Bool) - (intloopcounter.res.init_flag_a_0 Bool) - (intloopcounter.impl.usr.time_a_0 Int) - ) Bool - - (and - (= - intloopcounter.impl.usr.time_a_1 - (ite - (= intloopcounter.impl.usr.time_a_0 3) - 0 - (+ intloopcounter.impl.usr.time_a_0 1))) - (= intloopcounter.usr.out_a_1 (= intloopcounter.impl.usr.time_a_1 2)) - (not intloopcounter.res.init_flag_a_1)) -) - -(define-fun - __node_init_greycounter_0 ( - (greycounter.usr.x_a_0 Bool) - (greycounter.usr.out_a_0 Bool) - (greycounter.res.init_flag_a_0 Bool) - (greycounter.impl.usr.a_a_0 Bool) - (greycounter.impl.usr.b_a_0 Bool) - ) Bool - - (and - (= greycounter.impl.usr.b_a_0 false) - (= greycounter.impl.usr.a_a_0 false) - (= - greycounter.usr.out_a_0 - (and greycounter.impl.usr.a_a_0 greycounter.impl.usr.b_a_0)) - greycounter.res.init_flag_a_0) -) - -(define-fun - __node_trans_greycounter_0 ( - (greycounter.usr.x_a_1 Bool) - (greycounter.usr.out_a_1 Bool) - (greycounter.res.init_flag_a_1 Bool) - (greycounter.impl.usr.a_a_1 Bool) - (greycounter.impl.usr.b_a_1 Bool) - (greycounter.usr.x_a_0 Bool) - (greycounter.usr.out_a_0 Bool) - (greycounter.res.init_flag_a_0 Bool) - (greycounter.impl.usr.a_a_0 Bool) - (greycounter.impl.usr.b_a_0 Bool) - ) Bool - - (and - (= greycounter.impl.usr.b_a_1 greycounter.impl.usr.a_a_0) - (= greycounter.impl.usr.a_a_1 (not greycounter.impl.usr.b_a_0)) - (= - greycounter.usr.out_a_1 - (and greycounter.impl.usr.a_a_1 greycounter.impl.usr.b_a_1)) - (not greycounter.res.init_flag_a_1)) -) - -(define-fun - __node_init_top_0 ( - (top.usr.x_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Int) - ) Bool - - (let - ((X1 Bool top.res.abs_1_a_0)) - (let - ((X2 Bool top.res.abs_0_a_0)) - (and - (= top.usr.OK_a_0 (= X2 X1)) - (__node_init_greycounter_0 - top.usr.x_a_0 - top.res.abs_0_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_init_intloopcounter_0 - top.usr.x_a_0 - top.res.abs_1_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.x_a_1 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Int) - (top.usr.x_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Int) - ) Bool - - (let - ((X1 Bool top.res.abs_1_a_1)) - (let - ((X2 Bool top.res.abs_0_a_1)) - (and - (= top.usr.OK_a_1 (= X2 X1)) - (__node_trans_greycounter_0 - top.usr.x_a_1 - top.res.abs_0_a_1 - top.res.inst_4_a_1 - top.res.inst_3_a_1 - top.res.inst_2_a_1 - top.usr.x_a_0 - top.res.abs_0_a_0 - top.res.inst_4_a_0 - top.res.inst_3_a_0 - top.res.inst_2_a_0) - (__node_trans_intloopcounter_0 - top.usr.x_a_1 - top.res.abs_1_a_1 - top.res.inst_1_a_1 - top.res.inst_0_a_1 - top.usr.x_a_0 - top.res.abs_1_a_0 - top.res.inst_1_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))) -) - - - -(synth-inv str_invariant( - (top.usr.x Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Int) -)) - - -(declare-primed-var top.usr.x Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Int) - -(define-fun - init ( - (top.usr.x Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Int) - ) Bool - - (let - ((X1 Bool top.res.abs_1)) - (let - ((X2 Bool top.res.abs_0)) - (and - (= top.usr.OK (= X2 X1)) - (__node_init_greycounter_0 - top.usr.x - top.res.abs_0 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2) - (__node_init_intloopcounter_0 - top.usr.x - top.res.abs_1 - top.res.inst_1 - top.res.inst_0) - top.res.init_flag))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.x Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Int) - - ;; Next state. - (top.usr.x! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Int) - - ) Bool - - (let - ((X1 Bool top.res.abs_1!)) - (let - ((X2 Bool top.res.abs_0!)) - (and - (= top.usr.OK! (= X2 X1)) - (__node_trans_greycounter_0 - top.usr.x! - top.res.abs_0! - top.res.inst_4! - top.res.inst_3! - top.res.inst_2! - top.usr.x - top.res.abs_0 - top.res.inst_4 - top.res.inst_3 - top.res.inst_2) - (__node_trans_intloopcounter_0 - top.usr.x! - top.res.abs_1! - top.res.inst_1! - top.res.inst_0! - top.usr.x - top.res.abs_1 - top.res.inst_1 - top.res.inst_0) - (not top.res.init_flag!)))) -) - -(define-fun - prop ( - (top.usr.x Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Int) - ) Bool - - top.usr.OK -) +(define-fun __node_init_intloopcounter_0 ((intloopcounter.usr.x_a_0 Bool) (intloopcounter.usr.out_a_0 Bool) (intloopcounter.res.init_flag_a_0 Bool) (intloopcounter.impl.usr.time_a_0 Int)) Bool + (and (= intloopcounter.impl.usr.time_a_0 0) (= intloopcounter.usr.out_a_0 (= intloopcounter.impl.usr.time_a_0 2)) intloopcounter.res.init_flag_a_0)) +(define-fun __node_trans_intloopcounter_0 ((intloopcounter.usr.x_a_1 Bool) (intloopcounter.usr.out_a_1 Bool) (intloopcounter.res.init_flag_a_1 Bool) (intloopcounter.impl.usr.time_a_1 Int) (intloopcounter.usr.x_a_0 Bool) (intloopcounter.usr.out_a_0 Bool) (intloopcounter.res.init_flag_a_0 Bool) (intloopcounter.impl.usr.time_a_0 Int)) Bool + (and (= intloopcounter.impl.usr.time_a_1 (ite (= intloopcounter.impl.usr.time_a_0 3) 0 (+ intloopcounter.impl.usr.time_a_0 1))) (= intloopcounter.usr.out_a_1 (= intloopcounter.impl.usr.time_a_1 2)) (not intloopcounter.res.init_flag_a_1))) +(define-fun __node_init_greycounter_0 ((greycounter.usr.x_a_0 Bool) (greycounter.usr.out_a_0 Bool) (greycounter.res.init_flag_a_0 Bool) (greycounter.impl.usr.a_a_0 Bool) (greycounter.impl.usr.b_a_0 Bool)) Bool + (and (= greycounter.impl.usr.b_a_0 false) (= greycounter.impl.usr.a_a_0 false) (= greycounter.usr.out_a_0 (and greycounter.impl.usr.a_a_0 greycounter.impl.usr.b_a_0)) greycounter.res.init_flag_a_0)) +(define-fun __node_trans_greycounter_0 ((greycounter.usr.x_a_1 Bool) (greycounter.usr.out_a_1 Bool) (greycounter.res.init_flag_a_1 Bool) (greycounter.impl.usr.a_a_1 Bool) (greycounter.impl.usr.b_a_1 Bool) (greycounter.usr.x_a_0 Bool) (greycounter.usr.out_a_0 Bool) (greycounter.res.init_flag_a_0 Bool) (greycounter.impl.usr.a_a_0 Bool) (greycounter.impl.usr.b_a_0 Bool)) Bool + (and (= greycounter.impl.usr.b_a_1 greycounter.impl.usr.a_a_0) (= greycounter.impl.usr.a_a_1 (not greycounter.impl.usr.b_a_0)) (= greycounter.usr.out_a_1 (and greycounter.impl.usr.a_a_1 greycounter.impl.usr.b_a_1)) (not greycounter.res.init_flag_a_1))) +(define-fun __node_init_top_0 ((top.usr.x_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Int)) Bool + (let ((X1 top.res.abs_1_a_0)) (let ((X2 top.res.abs_0_a_0)) (and (= top.usr.OK_a_0 (= X2 X1)) (__node_init_greycounter_0 top.usr.x_a_0 top.res.abs_0_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_init_intloopcounter_0 top.usr.x_a_0 top.res.abs_1_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))) +(define-fun __node_trans_top_0 ((top.usr.x_a_1 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Int) (top.usr.x_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Int)) Bool + (let ((X1 top.res.abs_1_a_1)) (let ((X2 top.res.abs_0_a_1)) (and (= top.usr.OK_a_1 (= X2 X1)) (__node_trans_greycounter_0 top.usr.x_a_1 top.res.abs_0_a_1 top.res.inst_4_a_1 top.res.inst_3_a_1 top.res.inst_2_a_1 top.usr.x_a_0 top.res.abs_0_a_0 top.res.inst_4_a_0 top.res.inst_3_a_0 top.res.inst_2_a_0) (__node_trans_intloopcounter_0 top.usr.x_a_1 top.res.abs_1_a_1 top.res.inst_1_a_1 top.res.inst_0_a_1 top.usr.x_a_0 top.res.abs_1_a_0 top.res.inst_1_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))) +(synth-inv str_invariant ((top.usr.x Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Int))) + +(define-fun init ((top.usr.x Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Int)) Bool + (let ((X1 top.res.abs_1)) (let ((X2 top.res.abs_0)) (and (= top.usr.OK (= X2 X1)) (__node_init_greycounter_0 top.usr.x top.res.abs_0 top.res.inst_4 top.res.inst_3 top.res.inst_2) (__node_init_intloopcounter_0 top.usr.x top.res.abs_1 top.res.inst_1 top.res.inst_0) top.res.init_flag)))) +(define-fun trans ((top.usr.x Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Int) (top.usr.x! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Int)) Bool + (let ((X1 top.res.abs_1!)) (let ((X2 top.res.abs_0!)) (and (= top.usr.OK! (= X2 X1)) (__node_trans_greycounter_0 top.usr.x! top.res.abs_0! top.res.inst_4! top.res.inst_3! top.res.inst_2! top.usr.x top.res.abs_0 top.res.inst_4 top.res.inst_3 top.res.inst_2) (__node_trans_intloopcounter_0 top.usr.x! top.res.abs_1! top.res.inst_1! top.res.inst_0! top.usr.x top.res.abs_1 top.res.inst_1 top.res.inst_0) (not top.res.init_flag!))))) +(define-fun prop ((top.usr.x Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Int)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ums.sl b/benchmarks/LIA/Lustre/ums.sl index 3161892..01c7ca1 100644 --- a/benchmarks/LIA/Lustre/ums.sl +++ b/benchmarks/LIA/Lustre/ums.sl @@ -1,2788 +1,61 @@ (set-logic SAT) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_implies_0 ( - (implies.usr.A_a_0 Bool) - (implies.usr.B_a_0 Bool) - (implies.usr.AimpliesB_a_0 Bool) - (implies.res.init_flag_a_0 Bool) - ) Bool - - (and - (= implies.usr.AimpliesB_a_0 (or (not implies.usr.A_a_0) implies.usr.B_a_0)) - implies.res.init_flag_a_0) -) - -(define-fun - __node_trans_implies_0 ( - (implies.usr.A_a_1 Bool) - (implies.usr.B_a_1 Bool) - (implies.usr.AimpliesB_a_1 Bool) - (implies.res.init_flag_a_1 Bool) - (implies.usr.A_a_0 Bool) - (implies.usr.B_a_0 Bool) - (implies.usr.AimpliesB_a_0 Bool) - (implies.res.init_flag_a_0 Bool) - ) Bool - - (and - (= implies.usr.AimpliesB_a_1 (or (not implies.usr.A_a_1) implies.usr.B_a_1)) - (not implies.res.init_flag_a_1)) -) - -(define-fun - __node_init_edge_0 ( - (edge.usr.X_a_0 Bool) - (edge.usr.Y_a_0 Bool) - (edge.res.init_flag_a_0 Bool) - ) Bool - - (and (= edge.usr.Y_a_0 edge.usr.X_a_0) edge.res.init_flag_a_0) -) - -(define-fun - __node_trans_edge_0 ( - (edge.usr.X_a_1 Bool) - (edge.usr.Y_a_1 Bool) - (edge.res.init_flag_a_1 Bool) - (edge.usr.X_a_0 Bool) - (edge.usr.Y_a_0 Bool) - (edge.res.init_flag_a_0 Bool) - ) Bool - - (and - (= edge.usr.Y_a_1 (and edge.usr.X_a_1 (not edge.usr.X_a_0))) - (not edge.res.init_flag_a_1)) -) - -(define-fun - __node_init_after_0 ( - (after.usr.A_a_0 Bool) - (after.usr.afterA_a_0 Bool) - (after.res.init_flag_a_0 Bool) - (after.res.abs_0_a_0 Bool) - ) Bool - - (and - (= after.usr.afterA_a_0 false) - (= after.res.abs_0_a_0 (or after.usr.A_a_0 after.usr.afterA_a_0)) - after.res.init_flag_a_0) -) - -(define-fun - __node_trans_after_0 ( - (after.usr.A_a_1 Bool) - (after.usr.afterA_a_1 Bool) - (after.res.init_flag_a_1 Bool) - (after.res.abs_0_a_1 Bool) - (after.usr.A_a_0 Bool) - (after.usr.afterA_a_0 Bool) - (after.res.init_flag_a_0 Bool) - (after.res.abs_0_a_0 Bool) - ) Bool - - (and - (= after.usr.afterA_a_1 after.res.abs_0_a_0) - (= after.res.abs_0_a_1 (or after.usr.A_a_1 after.usr.afterA_a_1)) - (not after.res.init_flag_a_1)) -) - -(define-fun - __node_init_once_since_0 ( - (once_since.usr.C_a_0 Bool) - (once_since.usr.A_a_0 Bool) - (once_since.res.nondet_0 Bool) - (once_since.usr.onceCsinceA_a_0 Bool) - (once_since.res.init_flag_a_0 Bool) - (once_since.res.abs_0_a_0 Bool) - (once_since.res.abs_1_a_0 Bool) - (once_since.res.inst_1_a_0 Bool) - (once_since.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - once_since.usr.onceCsinceA_a_0 - (let - ((X1 Bool once_since.res.nondet_0)) - (ite - once_since.usr.A_a_0 - once_since.usr.C_a_0 - (ite once_since.res.abs_1_a_0 (or once_since.usr.C_a_0 X1) true)))) - (= once_since.res.abs_0_a_0 once_since.usr.A_a_0) - (__node_init_after_0 - once_since.res.abs_0_a_0 - once_since.res.abs_1_a_0 - once_since.res.inst_1_a_0 - once_since.res.inst_0_a_0) - once_since.res.init_flag_a_0) -) - -(define-fun - __node_trans_once_since_0 ( - (once_since.usr.C_a_1 Bool) - (once_since.usr.A_a_1 Bool) - (once_since.res.nondet_0 Bool) - (once_since.usr.onceCsinceA_a_1 Bool) - (once_since.res.init_flag_a_1 Bool) - (once_since.res.abs_0_a_1 Bool) - (once_since.res.abs_1_a_1 Bool) - (once_since.res.inst_1_a_1 Bool) - (once_since.res.inst_0_a_1 Bool) - (once_since.usr.C_a_0 Bool) - (once_since.usr.A_a_0 Bool) - (once_since.usr.onceCsinceA_a_0 Bool) - (once_since.res.init_flag_a_0 Bool) - (once_since.res.abs_0_a_0 Bool) - (once_since.res.abs_1_a_0 Bool) - (once_since.res.inst_1_a_0 Bool) - (once_since.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - once_since.usr.onceCsinceA_a_1 - (ite - once_since.usr.A_a_1 - once_since.usr.C_a_1 - (ite - once_since.res.abs_1_a_1 - (or once_since.usr.C_a_1 once_since.usr.onceCsinceA_a_0) - true))) - (= once_since.res.abs_0_a_1 once_since.usr.A_a_1) - (__node_trans_after_0 - once_since.res.abs_0_a_1 - once_since.res.abs_1_a_1 - once_since.res.inst_1_a_1 - once_since.res.inst_0_a_1 - once_since.res.abs_0_a_0 - once_since.res.abs_1_a_0 - once_since.res.inst_1_a_0 - once_since.res.inst_0_a_0) - (not once_since.res.init_flag_a_1)) -) - -(define-fun - __node_init_always_since_0 ( - (always_since.usr.B_a_0 Bool) - (always_since.usr.A_a_0 Bool) - (always_since.res.nondet_0 Bool) - (always_since.usr.alwaysBsinceA_a_0 Bool) - (always_since.res.init_flag_a_0 Bool) - (always_since.res.abs_0_a_0 Bool) - (always_since.res.abs_1_a_0 Bool) - (always_since.res.inst_1_a_0 Bool) - (always_since.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - always_since.usr.alwaysBsinceA_a_0 - (let - ((X1 Bool always_since.res.nondet_0)) - (ite - always_since.usr.A_a_0 - always_since.usr.B_a_0 - (ite always_since.res.abs_1_a_0 (and always_since.usr.B_a_0 X1) true)))) - (= always_since.res.abs_0_a_0 always_since.usr.A_a_0) - (__node_init_after_0 - always_since.res.abs_0_a_0 - always_since.res.abs_1_a_0 - always_since.res.inst_1_a_0 - always_since.res.inst_0_a_0) - always_since.res.init_flag_a_0) -) - -(define-fun - __node_trans_always_since_0 ( - (always_since.usr.B_a_1 Bool) - (always_since.usr.A_a_1 Bool) - (always_since.res.nondet_0 Bool) - (always_since.usr.alwaysBsinceA_a_1 Bool) - (always_since.res.init_flag_a_1 Bool) - (always_since.res.abs_0_a_1 Bool) - (always_since.res.abs_1_a_1 Bool) - (always_since.res.inst_1_a_1 Bool) - (always_since.res.inst_0_a_1 Bool) - (always_since.usr.B_a_0 Bool) - (always_since.usr.A_a_0 Bool) - (always_since.usr.alwaysBsinceA_a_0 Bool) - (always_since.res.init_flag_a_0 Bool) - (always_since.res.abs_0_a_0 Bool) - (always_since.res.abs_1_a_0 Bool) - (always_since.res.inst_1_a_0 Bool) - (always_since.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - always_since.usr.alwaysBsinceA_a_1 - (ite - always_since.usr.A_a_1 - always_since.usr.B_a_1 - (ite - always_since.res.abs_1_a_1 - (and always_since.usr.B_a_1 always_since.usr.alwaysBsinceA_a_0) - true))) - (= always_since.res.abs_0_a_1 always_since.usr.A_a_1) - (__node_trans_after_0 - always_since.res.abs_0_a_1 - always_since.res.abs_1_a_1 - always_since.res.inst_1_a_1 - always_since.res.inst_0_a_1 - always_since.res.abs_0_a_0 - always_since.res.abs_1_a_0 - always_since.res.inst_1_a_0 - always_since.res.inst_0_a_0) - (not always_since.res.init_flag_a_1)) -) - -(define-fun - __node_init_always_from_to_0 ( - (always_from_to.usr.B_a_0 Bool) - (always_from_to.usr.A_a_0 Bool) - (always_from_to.usr.C_a_0 Bool) - (always_from_to.res.nondet_1 Bool) - (always_from_to.res.nondet_0 Bool) - (always_from_to.usr.X_a_0 Bool) - (always_from_to.res.init_flag_a_0 Bool) - (always_from_to.res.abs_0_a_0 Bool) - (always_from_to.res.abs_1_a_0 Bool) - (always_from_to.res.abs_2_a_0 Bool) - (always_from_to.res.abs_3_a_0 Bool) - (always_from_to.res.abs_4_a_0 Bool) - (always_from_to.res.inst_12_a_0 Bool) - (always_from_to.res.inst_11_a_0 Bool) - (always_from_to.res.inst_10_a_0 Bool) - (always_from_to.res.inst_9_a_0 Bool) - (always_from_to.res.inst_8_a_0 Bool) - (always_from_to.res.inst_7_a_0 Bool) - (always_from_to.res.inst_6_a_0 Bool) - (always_from_to.res.inst_5_a_0 Bool) - (always_from_to.res.inst_4_a_0 Bool) - (always_from_to.res.inst_3_a_0 Bool) - (always_from_to.res.inst_2_a_0 Bool) - (always_from_to.res.inst_1_a_0 Bool) - (always_from_to.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - always_from_to.res.abs_3_a_0 - (or always_from_to.res.abs_1_a_0 always_from_to.res.abs_2_a_0)) - (= always_from_to.usr.X_a_0 always_from_to.res.abs_4_a_0) - (__node_init_implies_0 - always_from_to.res.abs_0_a_0 - always_from_to.res.abs_3_a_0 - always_from_to.res.abs_4_a_0 - always_from_to.res.inst_12_a_0) - (__node_init_after_0 - always_from_to.usr.A_a_0 - always_from_to.res.abs_0_a_0 - always_from_to.res.inst_11_a_0 - always_from_to.res.inst_10_a_0) - (__node_init_always_since_0 - always_from_to.usr.B_a_0 - always_from_to.usr.A_a_0 - always_from_to.res.nondet_0 - always_from_to.res.abs_1_a_0 - always_from_to.res.inst_9_a_0 - always_from_to.res.inst_8_a_0 - always_from_to.res.inst_7_a_0 - always_from_to.res.inst_6_a_0 - always_from_to.res.inst_5_a_0) - (__node_init_once_since_0 - always_from_to.usr.C_a_0 - always_from_to.usr.A_a_0 - always_from_to.res.nondet_1 - always_from_to.res.abs_2_a_0 - always_from_to.res.inst_4_a_0 - always_from_to.res.inst_3_a_0 - always_from_to.res.inst_2_a_0 - always_from_to.res.inst_1_a_0 - always_from_to.res.inst_0_a_0) - always_from_to.res.init_flag_a_0) -) - -(define-fun - __node_trans_always_from_to_0 ( - (always_from_to.usr.B_a_1 Bool) - (always_from_to.usr.A_a_1 Bool) - (always_from_to.usr.C_a_1 Bool) - (always_from_to.res.nondet_1 Bool) - (always_from_to.res.nondet_0 Bool) - (always_from_to.usr.X_a_1 Bool) - (always_from_to.res.init_flag_a_1 Bool) - (always_from_to.res.abs_0_a_1 Bool) - (always_from_to.res.abs_1_a_1 Bool) - (always_from_to.res.abs_2_a_1 Bool) - (always_from_to.res.abs_3_a_1 Bool) - (always_from_to.res.abs_4_a_1 Bool) - (always_from_to.res.inst_12_a_1 Bool) - (always_from_to.res.inst_11_a_1 Bool) - (always_from_to.res.inst_10_a_1 Bool) - (always_from_to.res.inst_9_a_1 Bool) - (always_from_to.res.inst_8_a_1 Bool) - (always_from_to.res.inst_7_a_1 Bool) - (always_from_to.res.inst_6_a_1 Bool) - (always_from_to.res.inst_5_a_1 Bool) - (always_from_to.res.inst_4_a_1 Bool) - (always_from_to.res.inst_3_a_1 Bool) - (always_from_to.res.inst_2_a_1 Bool) - (always_from_to.res.inst_1_a_1 Bool) - (always_from_to.res.inst_0_a_1 Bool) - (always_from_to.usr.B_a_0 Bool) - (always_from_to.usr.A_a_0 Bool) - (always_from_to.usr.C_a_0 Bool) - (always_from_to.usr.X_a_0 Bool) - (always_from_to.res.init_flag_a_0 Bool) - (always_from_to.res.abs_0_a_0 Bool) - (always_from_to.res.abs_1_a_0 Bool) - (always_from_to.res.abs_2_a_0 Bool) - (always_from_to.res.abs_3_a_0 Bool) - (always_from_to.res.abs_4_a_0 Bool) - (always_from_to.res.inst_12_a_0 Bool) - (always_from_to.res.inst_11_a_0 Bool) - (always_from_to.res.inst_10_a_0 Bool) - (always_from_to.res.inst_9_a_0 Bool) - (always_from_to.res.inst_8_a_0 Bool) - (always_from_to.res.inst_7_a_0 Bool) - (always_from_to.res.inst_6_a_0 Bool) - (always_from_to.res.inst_5_a_0 Bool) - (always_from_to.res.inst_4_a_0 Bool) - (always_from_to.res.inst_3_a_0 Bool) - (always_from_to.res.inst_2_a_0 Bool) - (always_from_to.res.inst_1_a_0 Bool) - (always_from_to.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - always_from_to.res.abs_3_a_1 - (or always_from_to.res.abs_1_a_1 always_from_to.res.abs_2_a_1)) - (= always_from_to.usr.X_a_1 always_from_to.res.abs_4_a_1) - (__node_trans_implies_0 - always_from_to.res.abs_0_a_1 - always_from_to.res.abs_3_a_1 - always_from_to.res.abs_4_a_1 - always_from_to.res.inst_12_a_1 - always_from_to.res.abs_0_a_0 - always_from_to.res.abs_3_a_0 - always_from_to.res.abs_4_a_0 - always_from_to.res.inst_12_a_0) - (__node_trans_after_0 - always_from_to.usr.A_a_1 - always_from_to.res.abs_0_a_1 - always_from_to.res.inst_11_a_1 - always_from_to.res.inst_10_a_1 - always_from_to.usr.A_a_0 - always_from_to.res.abs_0_a_0 - always_from_to.res.inst_11_a_0 - always_from_to.res.inst_10_a_0) - (__node_trans_always_since_0 - always_from_to.usr.B_a_1 - always_from_to.usr.A_a_1 - always_from_to.res.nondet_0 - always_from_to.res.abs_1_a_1 - always_from_to.res.inst_9_a_1 - always_from_to.res.inst_8_a_1 - always_from_to.res.inst_7_a_1 - always_from_to.res.inst_6_a_1 - always_from_to.res.inst_5_a_1 - always_from_to.usr.B_a_0 - always_from_to.usr.A_a_0 - always_from_to.res.abs_1_a_0 - always_from_to.res.inst_9_a_0 - always_from_to.res.inst_8_a_0 - always_from_to.res.inst_7_a_0 - always_from_to.res.inst_6_a_0 - always_from_to.res.inst_5_a_0) - (__node_trans_once_since_0 - always_from_to.usr.C_a_1 - always_from_to.usr.A_a_1 - always_from_to.res.nondet_1 - always_from_to.res.abs_2_a_1 - always_from_to.res.inst_4_a_1 - always_from_to.res.inst_3_a_1 - always_from_to.res.inst_2_a_1 - always_from_to.res.inst_1_a_1 - always_from_to.res.inst_0_a_1 - always_from_to.usr.C_a_0 - always_from_to.usr.A_a_0 - always_from_to.res.abs_2_a_0 - always_from_to.res.inst_4_a_0 - always_from_to.res.inst_3_a_0 - always_from_to.res.inst_2_a_0 - always_from_to.res.inst_1_a_0 - always_from_to.res.inst_0_a_0) - (not always_from_to.res.init_flag_a_1)) -) - -(define-fun - __node_init_UMS_0 ( - (UMS.usr.on_A_a_0 Bool) - (UMS.usr.on_B_a_0 Bool) - (UMS.usr.on_C_a_0 Bool) - (UMS.usr.ack_AB_a_0 Bool) - (UMS.usr.ack_BC_a_0 Bool) - (UMS.usr.grant_access_a_0 Bool) - (UMS.usr.grant_exit_a_0 Bool) - (UMS.usr.do_AB_a_0 Bool) - (UMS.usr.do_BC_a_0 Bool) - (UMS.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (not (or (or UMS.usr.on_A_a_0 UMS.usr.on_B_a_0) UMS.usr.on_C_a_0)))) - (and - (= UMS.usr.grant_access_a_0 (and X1 UMS.usr.ack_AB_a_0)) - (let - ((X2 Bool (and UMS.usr.on_B_a_0 (not (or UMS.usr.on_A_a_0 UMS.usr.on_C_a_0))))) - (and - (= UMS.usr.grant_exit_a_0 (and X2 UMS.usr.ack_BC_a_0)) - (= UMS.usr.do_AB_a_0 (and (not UMS.usr.ack_AB_a_0) X1)) - (= UMS.usr.do_BC_a_0 (and (not UMS.usr.ack_BC_a_0) X2)) - UMS.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_UMS_0 ( - (UMS.usr.on_A_a_1 Bool) - (UMS.usr.on_B_a_1 Bool) - (UMS.usr.on_C_a_1 Bool) - (UMS.usr.ack_AB_a_1 Bool) - (UMS.usr.ack_BC_a_1 Bool) - (UMS.usr.grant_access_a_1 Bool) - (UMS.usr.grant_exit_a_1 Bool) - (UMS.usr.do_AB_a_1 Bool) - (UMS.usr.do_BC_a_1 Bool) - (UMS.res.init_flag_a_1 Bool) - (UMS.usr.on_A_a_0 Bool) - (UMS.usr.on_B_a_0 Bool) - (UMS.usr.on_C_a_0 Bool) - (UMS.usr.ack_AB_a_0 Bool) - (UMS.usr.ack_BC_a_0 Bool) - (UMS.usr.grant_access_a_0 Bool) - (UMS.usr.grant_exit_a_0 Bool) - (UMS.usr.do_AB_a_0 Bool) - (UMS.usr.do_BC_a_0 Bool) - (UMS.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (not (or (or UMS.usr.on_A_a_1 UMS.usr.on_B_a_1) UMS.usr.on_C_a_1)))) - (and - (= UMS.usr.grant_access_a_1 (and X1 UMS.usr.ack_AB_a_1)) - (let - ((X2 Bool (and UMS.usr.on_B_a_1 (not (or UMS.usr.on_A_a_1 UMS.usr.on_C_a_1))))) - (and - (= UMS.usr.grant_exit_a_1 (and X2 UMS.usr.ack_BC_a_1)) - (= UMS.usr.do_AB_a_1 (and (not UMS.usr.ack_AB_a_1) X1)) - (= UMS.usr.do_BC_a_1 (and (not UMS.usr.ack_BC_a_1) X2)) - (not UMS.res.init_flag_a_1))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.on_A_a_0 Bool) - (top.usr.on_B_a_0 Bool) - (top.usr.on_C_a_0 Bool) - (top.usr.ack_AB_a_0 Bool) - (top.usr.ack_BC_a_0 Bool) - (top.res.nondet_9 Bool) - (top.res.nondet_8 Bool) - (top.res.nondet_7 Bool) - (top.res.nondet_6 Bool) - (top.res.nondet_5 Bool) - (top.res.nondet_4 Bool) - (top.res.nondet_3 Bool) - (top.res.nondet_2 Bool) - (top.res.nondet_1 Bool) - (top.res.nondet_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.grant_access_a_0 Bool) - (top.impl.usr.grant_exit_a_0 Bool) - (top.impl.usr.do_AB_a_0 Bool) - (top.impl.usr.do_BC_a_0 Bool) - (top.impl.usr.empty_section_a_0 Bool) - (top.impl.usr.only_on_B_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.abs_12_a_0 Bool) - (top.res.abs_13_a_0 Bool) - (top.res.abs_14_a_0 Bool) - (top.res.abs_15_a_0 Bool) - (top.res.abs_16_a_0 Bool) - (top.res.abs_17_a_0 Bool) - (top.res.abs_18_a_0 Bool) - (top.res.abs_19_a_0 Bool) - (top.res.abs_20_a_0 Bool) - (top.res.abs_21_a_0 Bool) - (top.res.abs_22_a_0 Bool) - (top.res.abs_23_a_0 Bool) - (top.res.abs_24_a_0 Bool) - (top.res.inst_86_a_0 Bool) - (top.res.inst_85_a_0 Bool) - (top.res.inst_84_a_0 Bool) - (top.res.inst_83_a_0 Bool) - (top.res.inst_82_a_0 Bool) - (top.res.inst_81_a_0 Bool) - (top.res.inst_80_a_0 Bool) - (top.res.inst_79_a_0 Bool) - (top.res.inst_78_a_0 Bool) - (top.res.inst_77_a_0 Bool) - (top.res.inst_76_a_0 Bool) - (top.res.inst_75_a_0 Bool) - (top.res.inst_74_a_0 Bool) - (top.res.inst_73_a_0 Bool) - (top.res.inst_72_a_0 Bool) - (top.res.inst_71_a_0 Bool) - (top.res.inst_70_a_0 Bool) - (top.res.inst_69_a_0 Bool) - (top.res.inst_68_a_0 Bool) - (top.res.inst_67_a_0 Bool) - (top.res.inst_66_a_0 Bool) - (top.res.inst_65_a_0 Bool) - (top.res.inst_64_a_0 Bool) - (top.res.inst_63_a_0 Bool) - (top.res.inst_62_a_0 Bool) - (top.res.inst_61_a_0 Bool) - (top.res.inst_60_a_0 Bool) - (top.res.inst_59_a_0 Bool) - (top.res.inst_58_a_0 Bool) - (top.res.inst_57_a_0 Bool) - (top.res.inst_56_a_0 Bool) - (top.res.inst_55_a_0 Bool) - (top.res.inst_54_a_0 Bool) - (top.res.inst_53_a_0 Bool) - (top.res.inst_52_a_0 Bool) - (top.res.inst_51_a_0 Bool) - (top.res.inst_50_a_0 Bool) - (top.res.inst_49_a_0 Bool) - (top.res.inst_48_a_0 Bool) - (top.res.inst_47_a_0 Bool) - (top.res.inst_46_a_0 Bool) - (top.res.inst_45_a_0 Bool) - (top.res.inst_44_a_0 Bool) - (top.res.inst_43_a_0 Bool) - (top.res.inst_42_a_0 Bool) - (top.res.inst_41_a_0 Bool) - (top.res.inst_40_a_0 Bool) - (top.res.inst_39_a_0 Bool) - (top.res.inst_38_a_0 Bool) - (top.res.inst_37_a_0 Bool) - (top.res.inst_36_a_0 Bool) - (top.res.inst_35_a_0 Bool) - (top.res.inst_34_a_0 Bool) - (top.res.inst_33_a_0 Bool) - (top.res.inst_32_a_0 Bool) - (top.res.inst_31_a_0 Bool) - (top.res.inst_30_a_0 Bool) - (top.res.inst_29_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Bool) - (top.res.inst_23_a_0 Bool) - (top.res.inst_22_a_0 Bool) - (top.res.inst_21_a_0 Bool) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.impl.usr.empty_section_a_0 - (not (or (or top.usr.on_A_a_0 top.usr.on_B_a_0) top.usr.on_C_a_0))) - (= top.impl.usr.grant_exit_a_0 top.res.abs_1_a_0) - (= - top.impl.usr.only_on_B_a_0 - (and top.usr.on_B_a_0 (not (or top.usr.on_A_a_0 top.usr.on_C_a_0)))) - (= top.impl.usr.grant_access_a_0 top.res.abs_0_a_0) - (= top.res.abs_18_a_0 (or top.usr.on_A_a_0 top.usr.on_C_a_0)) - (= top.res.abs_16_a_0 (not top.usr.on_B_a_0)) - (= top.res.abs_13_a_0 (not top.usr.on_A_a_0)) - (= top.impl.usr.do_AB_a_0 top.res.abs_2_a_0) - (= top.impl.usr.do_BC_a_0 top.res.abs_3_a_0) - (= - top.res.abs_20_a_0 - (and - (and - (and - (and - (and (not (and top.usr.ack_AB_a_0 top.usr.ack_BC_a_0)) top.res.abs_4_a_0) - top.res.abs_5_a_0) - top.impl.usr.empty_section_a_0) - top.res.abs_15_a_0) - top.res.abs_19_a_0)) - (let - ((X1 Bool top.res.abs_21_a_0)) - (let - ((X2 Bool top.res.abs_24_a_0)) - (let - ((X3 Bool top.res.abs_23_a_0)) - (let - ((X4 Bool (not (and top.impl.usr.do_AB_a_0 top.impl.usr.do_BC_a_0)))) - (let - ((X5 Bool top.res.abs_22_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (and (and (and X5 X4) X3) X2))) - (= top.res.abs_6_a_0 (not top.impl.usr.empty_section_a_0)) - (= top.res.abs_8_a_0 (let ((X6 Bool top.res.nondet_4)) X6)) - (= top.res.abs_11_a_0 (let ((X6 Bool top.res.nondet_5)) X6)) - (__node_init_implies_0 - top.impl.usr.grant_access_a_0 - top.impl.usr.empty_section_a_0 - top.res.abs_22_a_0 - top.res.inst_86_a_0) - (__node_init_UMS_0 - top.usr.on_A_a_0 - top.usr.on_B_a_0 - top.usr.on_C_a_0 - top.usr.ack_AB_a_0 - top.usr.ack_BC_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_85_a_0) - (__node_init_always_from_to_0 - top.usr.ack_AB_a_0 - top.impl.usr.grant_access_a_0 - top.impl.usr.only_on_B_a_0 - top.res.nondet_7 - top.res.nondet_6 - top.res.abs_23_a_0 - top.res.inst_84_a_0 - top.res.inst_83_a_0 - top.res.inst_82_a_0 - top.res.inst_81_a_0 - top.res.inst_80_a_0 - top.res.inst_79_a_0 - top.res.inst_78_a_0 - top.res.inst_77_a_0 - top.res.inst_76_a_0 - top.res.inst_75_a_0 - top.res.inst_74_a_0 - top.res.inst_73_a_0 - top.res.inst_72_a_0 - top.res.inst_71_a_0 - top.res.inst_70_a_0 - top.res.inst_69_a_0 - top.res.inst_68_a_0 - top.res.inst_67_a_0 - top.res.inst_66_a_0) - (__node_init_always_from_to_0 - top.usr.ack_BC_a_0 - top.impl.usr.grant_exit_a_0 - top.impl.usr.empty_section_a_0 - top.res.nondet_9 - top.res.nondet_8 - top.res.abs_24_a_0 - top.res.inst_65_a_0 - top.res.inst_64_a_0 - top.res.inst_63_a_0 - top.res.inst_62_a_0 - top.res.inst_61_a_0 - top.res.inst_60_a_0 - top.res.inst_59_a_0 - top.res.inst_58_a_0 - top.res.inst_57_a_0 - top.res.inst_56_a_0 - top.res.inst_55_a_0 - top.res.inst_54_a_0 - top.res.inst_53_a_0 - top.res.inst_52_a_0 - top.res.inst_51_a_0 - top.res.inst_50_a_0 - top.res.inst_49_a_0 - top.res.inst_48_a_0 - top.res.inst_47_a_0) - (__node_init_Sofar_0 - top.res.abs_20_a_0 - top.res.abs_21_a_0 - top.res.inst_46_a_0) - (__node_init_always_from_to_0 - top.usr.ack_AB_a_0 - top.usr.ack_AB_a_0 - top.impl.usr.do_BC_a_0 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_4_a_0 - top.res.inst_45_a_0 - top.res.inst_44_a_0 - top.res.inst_43_a_0 - top.res.inst_42_a_0 - top.res.inst_41_a_0 - top.res.inst_40_a_0 - top.res.inst_39_a_0 - top.res.inst_38_a_0 - top.res.inst_37_a_0 - top.res.inst_36_a_0 - top.res.inst_35_a_0 - top.res.inst_34_a_0 - top.res.inst_33_a_0 - top.res.inst_32_a_0 - top.res.inst_31_a_0 - top.res.inst_30_a_0 - top.res.inst_29_a_0 - top.res.inst_28_a_0 - top.res.inst_27_a_0) - (__node_init_always_from_to_0 - top.usr.ack_BC_a_0 - top.usr.ack_BC_a_0 - top.impl.usr.do_AB_a_0 - top.res.nondet_3 - top.res.nondet_2 - top.res.abs_5_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0) - (__node_init_implies_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_7_a_0) - (__node_init_edge_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_6_a_0) - (__node_init_implies_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.inst_5_a_0) - (__node_init_edge_0 - top.usr.on_C_a_0 - top.res.abs_10_a_0 - top.res.inst_4_a_0) - (__node_init_implies_0 - top.res.abs_14_a_0 - top.usr.on_B_a_0 - top.res.abs_15_a_0 - top.res.inst_3_a_0) - (__node_init_edge_0 - top.res.abs_13_a_0 - top.res.abs_14_a_0 - top.res.inst_2_a_0) - (__node_init_implies_0 - top.res.abs_17_a_0 - top.res.abs_18_a_0 - top.res.abs_19_a_0 - top.res.inst_1_a_0) - (__node_init_edge_0 - top.res.abs_16_a_0 - top.res.abs_17_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.on_A_a_1 Bool) - (top.usr.on_B_a_1 Bool) - (top.usr.on_C_a_1 Bool) - (top.usr.ack_AB_a_1 Bool) - (top.usr.ack_BC_a_1 Bool) - (top.res.nondet_9 Bool) - (top.res.nondet_8 Bool) - (top.res.nondet_7 Bool) - (top.res.nondet_6 Bool) - (top.res.nondet_5 Bool) - (top.res.nondet_4 Bool) - (top.res.nondet_3 Bool) - (top.res.nondet_2 Bool) - (top.res.nondet_1 Bool) - (top.res.nondet_0 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.grant_access_a_1 Bool) - (top.impl.usr.grant_exit_a_1 Bool) - (top.impl.usr.do_AB_a_1 Bool) - (top.impl.usr.do_BC_a_1 Bool) - (top.impl.usr.empty_section_a_1 Bool) - (top.impl.usr.only_on_B_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.abs_12_a_1 Bool) - (top.res.abs_13_a_1 Bool) - (top.res.abs_14_a_1 Bool) - (top.res.abs_15_a_1 Bool) - (top.res.abs_16_a_1 Bool) - (top.res.abs_17_a_1 Bool) - (top.res.abs_18_a_1 Bool) - (top.res.abs_19_a_1 Bool) - (top.res.abs_20_a_1 Bool) - (top.res.abs_21_a_1 Bool) - (top.res.abs_22_a_1 Bool) - (top.res.abs_23_a_1 Bool) - (top.res.abs_24_a_1 Bool) - (top.res.inst_86_a_1 Bool) - (top.res.inst_85_a_1 Bool) - (top.res.inst_84_a_1 Bool) - (top.res.inst_83_a_1 Bool) - (top.res.inst_82_a_1 Bool) - (top.res.inst_81_a_1 Bool) - (top.res.inst_80_a_1 Bool) - (top.res.inst_79_a_1 Bool) - (top.res.inst_78_a_1 Bool) - (top.res.inst_77_a_1 Bool) - (top.res.inst_76_a_1 Bool) - (top.res.inst_75_a_1 Bool) - (top.res.inst_74_a_1 Bool) - (top.res.inst_73_a_1 Bool) - (top.res.inst_72_a_1 Bool) - (top.res.inst_71_a_1 Bool) - (top.res.inst_70_a_1 Bool) - (top.res.inst_69_a_1 Bool) - (top.res.inst_68_a_1 Bool) - (top.res.inst_67_a_1 Bool) - (top.res.inst_66_a_1 Bool) - (top.res.inst_65_a_1 Bool) - (top.res.inst_64_a_1 Bool) - (top.res.inst_63_a_1 Bool) - (top.res.inst_62_a_1 Bool) - (top.res.inst_61_a_1 Bool) - (top.res.inst_60_a_1 Bool) - (top.res.inst_59_a_1 Bool) - (top.res.inst_58_a_1 Bool) - (top.res.inst_57_a_1 Bool) - (top.res.inst_56_a_1 Bool) - (top.res.inst_55_a_1 Bool) - (top.res.inst_54_a_1 Bool) - (top.res.inst_53_a_1 Bool) - (top.res.inst_52_a_1 Bool) - (top.res.inst_51_a_1 Bool) - (top.res.inst_50_a_1 Bool) - (top.res.inst_49_a_1 Bool) - (top.res.inst_48_a_1 Bool) - (top.res.inst_47_a_1 Bool) - (top.res.inst_46_a_1 Bool) - (top.res.inst_45_a_1 Bool) - (top.res.inst_44_a_1 Bool) - (top.res.inst_43_a_1 Bool) - (top.res.inst_42_a_1 Bool) - (top.res.inst_41_a_1 Bool) - (top.res.inst_40_a_1 Bool) - (top.res.inst_39_a_1 Bool) - (top.res.inst_38_a_1 Bool) - (top.res.inst_37_a_1 Bool) - (top.res.inst_36_a_1 Bool) - (top.res.inst_35_a_1 Bool) - (top.res.inst_34_a_1 Bool) - (top.res.inst_33_a_1 Bool) - (top.res.inst_32_a_1 Bool) - (top.res.inst_31_a_1 Bool) - (top.res.inst_30_a_1 Bool) - (top.res.inst_29_a_1 Bool) - (top.res.inst_28_a_1 Bool) - (top.res.inst_27_a_1 Bool) - (top.res.inst_26_a_1 Bool) - (top.res.inst_25_a_1 Bool) - (top.res.inst_24_a_1 Bool) - (top.res.inst_23_a_1 Bool) - (top.res.inst_22_a_1 Bool) - (top.res.inst_21_a_1 Bool) - (top.res.inst_20_a_1 Bool) - (top.res.inst_19_a_1 Bool) - (top.res.inst_18_a_1 Bool) - (top.res.inst_17_a_1 Bool) - (top.res.inst_16_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Bool) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Bool) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Bool) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.on_A_a_0 Bool) - (top.usr.on_B_a_0 Bool) - (top.usr.on_C_a_0 Bool) - (top.usr.ack_AB_a_0 Bool) - (top.usr.ack_BC_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.grant_access_a_0 Bool) - (top.impl.usr.grant_exit_a_0 Bool) - (top.impl.usr.do_AB_a_0 Bool) - (top.impl.usr.do_BC_a_0 Bool) - (top.impl.usr.empty_section_a_0 Bool) - (top.impl.usr.only_on_B_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.abs_12_a_0 Bool) - (top.res.abs_13_a_0 Bool) - (top.res.abs_14_a_0 Bool) - (top.res.abs_15_a_0 Bool) - (top.res.abs_16_a_0 Bool) - (top.res.abs_17_a_0 Bool) - (top.res.abs_18_a_0 Bool) - (top.res.abs_19_a_0 Bool) - (top.res.abs_20_a_0 Bool) - (top.res.abs_21_a_0 Bool) - (top.res.abs_22_a_0 Bool) - (top.res.abs_23_a_0 Bool) - (top.res.abs_24_a_0 Bool) - (top.res.inst_86_a_0 Bool) - (top.res.inst_85_a_0 Bool) - (top.res.inst_84_a_0 Bool) - (top.res.inst_83_a_0 Bool) - (top.res.inst_82_a_0 Bool) - (top.res.inst_81_a_0 Bool) - (top.res.inst_80_a_0 Bool) - (top.res.inst_79_a_0 Bool) - (top.res.inst_78_a_0 Bool) - (top.res.inst_77_a_0 Bool) - (top.res.inst_76_a_0 Bool) - (top.res.inst_75_a_0 Bool) - (top.res.inst_74_a_0 Bool) - (top.res.inst_73_a_0 Bool) - (top.res.inst_72_a_0 Bool) - (top.res.inst_71_a_0 Bool) - (top.res.inst_70_a_0 Bool) - (top.res.inst_69_a_0 Bool) - (top.res.inst_68_a_0 Bool) - (top.res.inst_67_a_0 Bool) - (top.res.inst_66_a_0 Bool) - (top.res.inst_65_a_0 Bool) - (top.res.inst_64_a_0 Bool) - (top.res.inst_63_a_0 Bool) - (top.res.inst_62_a_0 Bool) - (top.res.inst_61_a_0 Bool) - (top.res.inst_60_a_0 Bool) - (top.res.inst_59_a_0 Bool) - (top.res.inst_58_a_0 Bool) - (top.res.inst_57_a_0 Bool) - (top.res.inst_56_a_0 Bool) - (top.res.inst_55_a_0 Bool) - (top.res.inst_54_a_0 Bool) - (top.res.inst_53_a_0 Bool) - (top.res.inst_52_a_0 Bool) - (top.res.inst_51_a_0 Bool) - (top.res.inst_50_a_0 Bool) - (top.res.inst_49_a_0 Bool) - (top.res.inst_48_a_0 Bool) - (top.res.inst_47_a_0 Bool) - (top.res.inst_46_a_0 Bool) - (top.res.inst_45_a_0 Bool) - (top.res.inst_44_a_0 Bool) - (top.res.inst_43_a_0 Bool) - (top.res.inst_42_a_0 Bool) - (top.res.inst_41_a_0 Bool) - (top.res.inst_40_a_0 Bool) - (top.res.inst_39_a_0 Bool) - (top.res.inst_38_a_0 Bool) - (top.res.inst_37_a_0 Bool) - (top.res.inst_36_a_0 Bool) - (top.res.inst_35_a_0 Bool) - (top.res.inst_34_a_0 Bool) - (top.res.inst_33_a_0 Bool) - (top.res.inst_32_a_0 Bool) - (top.res.inst_31_a_0 Bool) - (top.res.inst_30_a_0 Bool) - (top.res.inst_29_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Bool) - (top.res.inst_23_a_0 Bool) - (top.res.inst_22_a_0 Bool) - (top.res.inst_21_a_0 Bool) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.impl.usr.empty_section_a_1 - (not (or (or top.usr.on_A_a_1 top.usr.on_B_a_1) top.usr.on_C_a_1))) - (= top.impl.usr.grant_exit_a_1 top.res.abs_1_a_1) - (= - top.impl.usr.only_on_B_a_1 - (and top.usr.on_B_a_1 (not (or top.usr.on_A_a_1 top.usr.on_C_a_1)))) - (= top.impl.usr.grant_access_a_1 top.res.abs_0_a_1) - (= top.res.abs_18_a_1 (or top.usr.on_A_a_1 top.usr.on_C_a_1)) - (= top.res.abs_16_a_1 (not top.usr.on_B_a_1)) - (= top.res.abs_13_a_1 (not top.usr.on_A_a_1)) - (= top.res.abs_11_a_1 top.impl.usr.grant_exit_a_0) - (= top.res.abs_8_a_1 top.impl.usr.grant_access_a_0) - (= top.res.abs_6_a_1 (not top.impl.usr.empty_section_a_1)) - (= top.impl.usr.do_AB_a_1 top.res.abs_2_a_1) - (= top.impl.usr.do_BC_a_1 top.res.abs_3_a_1) - (= - top.res.abs_20_a_1 - (and - (and - (and - (and - (and - (and (not (and top.usr.ack_AB_a_1 top.usr.ack_BC_a_1)) top.res.abs_4_a_1) - top.res.abs_5_a_1) - top.res.abs_9_a_1) - top.res.abs_12_a_1) - top.res.abs_15_a_1) - top.res.abs_19_a_1)) - (let - ((X1 Bool top.res.abs_21_a_1)) - (let - ((X2 Bool top.res.abs_24_a_1)) - (let - ((X3 Bool top.res.abs_23_a_1)) - (let - ((X4 Bool (not (and top.impl.usr.do_AB_a_1 top.impl.usr.do_BC_a_1)))) - (let - ((X5 Bool top.res.abs_22_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (and (and (and X5 X4) X3) X2))) - (__node_trans_implies_0 - top.impl.usr.grant_access_a_1 - top.impl.usr.empty_section_a_1 - top.res.abs_22_a_1 - top.res.inst_86_a_1 - top.impl.usr.grant_access_a_0 - top.impl.usr.empty_section_a_0 - top.res.abs_22_a_0 - top.res.inst_86_a_0) - (__node_trans_UMS_0 - top.usr.on_A_a_1 - top.usr.on_B_a_1 - top.usr.on_C_a_1 - top.usr.ack_AB_a_1 - top.usr.ack_BC_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_85_a_1 - top.usr.on_A_a_0 - top.usr.on_B_a_0 - top.usr.on_C_a_0 - top.usr.ack_AB_a_0 - top.usr.ack_BC_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_85_a_0) - (__node_trans_always_from_to_0 - top.usr.ack_AB_a_1 - top.impl.usr.grant_access_a_1 - top.impl.usr.only_on_B_a_1 - top.res.nondet_7 - top.res.nondet_6 - top.res.abs_23_a_1 - top.res.inst_84_a_1 - top.res.inst_83_a_1 - top.res.inst_82_a_1 - top.res.inst_81_a_1 - top.res.inst_80_a_1 - top.res.inst_79_a_1 - top.res.inst_78_a_1 - top.res.inst_77_a_1 - top.res.inst_76_a_1 - top.res.inst_75_a_1 - top.res.inst_74_a_1 - top.res.inst_73_a_1 - top.res.inst_72_a_1 - top.res.inst_71_a_1 - top.res.inst_70_a_1 - top.res.inst_69_a_1 - top.res.inst_68_a_1 - top.res.inst_67_a_1 - top.res.inst_66_a_1 - top.usr.ack_AB_a_0 - top.impl.usr.grant_access_a_0 - top.impl.usr.only_on_B_a_0 - top.res.abs_23_a_0 - top.res.inst_84_a_0 - top.res.inst_83_a_0 - top.res.inst_82_a_0 - top.res.inst_81_a_0 - top.res.inst_80_a_0 - top.res.inst_79_a_0 - top.res.inst_78_a_0 - top.res.inst_77_a_0 - top.res.inst_76_a_0 - top.res.inst_75_a_0 - top.res.inst_74_a_0 - top.res.inst_73_a_0 - top.res.inst_72_a_0 - top.res.inst_71_a_0 - top.res.inst_70_a_0 - top.res.inst_69_a_0 - top.res.inst_68_a_0 - top.res.inst_67_a_0 - top.res.inst_66_a_0) - (__node_trans_always_from_to_0 - top.usr.ack_BC_a_1 - top.impl.usr.grant_exit_a_1 - top.impl.usr.empty_section_a_1 - top.res.nondet_9 - top.res.nondet_8 - top.res.abs_24_a_1 - top.res.inst_65_a_1 - top.res.inst_64_a_1 - top.res.inst_63_a_1 - top.res.inst_62_a_1 - top.res.inst_61_a_1 - top.res.inst_60_a_1 - top.res.inst_59_a_1 - top.res.inst_58_a_1 - top.res.inst_57_a_1 - top.res.inst_56_a_1 - top.res.inst_55_a_1 - top.res.inst_54_a_1 - top.res.inst_53_a_1 - top.res.inst_52_a_1 - top.res.inst_51_a_1 - top.res.inst_50_a_1 - top.res.inst_49_a_1 - top.res.inst_48_a_1 - top.res.inst_47_a_1 - top.usr.ack_BC_a_0 - top.impl.usr.grant_exit_a_0 - top.impl.usr.empty_section_a_0 - top.res.abs_24_a_0 - top.res.inst_65_a_0 - top.res.inst_64_a_0 - top.res.inst_63_a_0 - top.res.inst_62_a_0 - top.res.inst_61_a_0 - top.res.inst_60_a_0 - top.res.inst_59_a_0 - top.res.inst_58_a_0 - top.res.inst_57_a_0 - top.res.inst_56_a_0 - top.res.inst_55_a_0 - top.res.inst_54_a_0 - top.res.inst_53_a_0 - top.res.inst_52_a_0 - top.res.inst_51_a_0 - top.res.inst_50_a_0 - top.res.inst_49_a_0 - top.res.inst_48_a_0 - top.res.inst_47_a_0) - (__node_trans_Sofar_0 - top.res.abs_20_a_1 - top.res.abs_21_a_1 - top.res.inst_46_a_1 - top.res.abs_20_a_0 - top.res.abs_21_a_0 - top.res.inst_46_a_0) - (__node_trans_always_from_to_0 - top.usr.ack_AB_a_1 - top.usr.ack_AB_a_1 - top.impl.usr.do_BC_a_1 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_4_a_1 - top.res.inst_45_a_1 - top.res.inst_44_a_1 - top.res.inst_43_a_1 - top.res.inst_42_a_1 - top.res.inst_41_a_1 - top.res.inst_40_a_1 - top.res.inst_39_a_1 - top.res.inst_38_a_1 - top.res.inst_37_a_1 - top.res.inst_36_a_1 - top.res.inst_35_a_1 - top.res.inst_34_a_1 - top.res.inst_33_a_1 - top.res.inst_32_a_1 - top.res.inst_31_a_1 - top.res.inst_30_a_1 - top.res.inst_29_a_1 - top.res.inst_28_a_1 - top.res.inst_27_a_1 - top.usr.ack_AB_a_0 - top.usr.ack_AB_a_0 - top.impl.usr.do_BC_a_0 - top.res.abs_4_a_0 - top.res.inst_45_a_0 - top.res.inst_44_a_0 - top.res.inst_43_a_0 - top.res.inst_42_a_0 - top.res.inst_41_a_0 - top.res.inst_40_a_0 - top.res.inst_39_a_0 - top.res.inst_38_a_0 - top.res.inst_37_a_0 - top.res.inst_36_a_0 - top.res.inst_35_a_0 - top.res.inst_34_a_0 - top.res.inst_33_a_0 - top.res.inst_32_a_0 - top.res.inst_31_a_0 - top.res.inst_30_a_0 - top.res.inst_29_a_0 - top.res.inst_28_a_0 - top.res.inst_27_a_0) - (__node_trans_always_from_to_0 - top.usr.ack_BC_a_1 - top.usr.ack_BC_a_1 - top.impl.usr.do_AB_a_1 - top.res.nondet_3 - top.res.nondet_2 - top.res.abs_5_a_1 - top.res.inst_26_a_1 - top.res.inst_25_a_1 - top.res.inst_24_a_1 - top.res.inst_23_a_1 - top.res.inst_22_a_1 - top.res.inst_21_a_1 - top.res.inst_20_a_1 - top.res.inst_19_a_1 - top.res.inst_18_a_1 - top.res.inst_17_a_1 - top.res.inst_16_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.usr.ack_BC_a_0 - top.usr.ack_BC_a_0 - top.impl.usr.do_AB_a_0 - top.res.abs_5_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0) - (__node_trans_implies_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_7_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_7_a_0) - (__node_trans_edge_0 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.inst_6_a_1 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_6_a_0) - (__node_trans_implies_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.abs_12_a_1 - top.res.inst_5_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.inst_5_a_0) - (__node_trans_edge_0 - top.usr.on_C_a_1 - top.res.abs_10_a_1 - top.res.inst_4_a_1 - top.usr.on_C_a_0 - top.res.abs_10_a_0 - top.res.inst_4_a_0) - (__node_trans_implies_0 - top.res.abs_14_a_1 - top.usr.on_B_a_1 - top.res.abs_15_a_1 - top.res.inst_3_a_1 - top.res.abs_14_a_0 - top.usr.on_B_a_0 - top.res.abs_15_a_0 - top.res.inst_3_a_0) - (__node_trans_edge_0 - top.res.abs_13_a_1 - top.res.abs_14_a_1 - top.res.inst_2_a_1 - top.res.abs_13_a_0 - top.res.abs_14_a_0 - top.res.inst_2_a_0) - (__node_trans_implies_0 - top.res.abs_17_a_1 - top.res.abs_18_a_1 - top.res.abs_19_a_1 - top.res.inst_1_a_1 - top.res.abs_17_a_0 - top.res.abs_18_a_0 - top.res.abs_19_a_0 - top.res.inst_1_a_0) - (__node_trans_edge_0 - top.res.abs_16_a_1 - top.res.abs_17_a_1 - top.res.inst_0_a_1 - top.res.abs_16_a_0 - top.res.abs_17_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.on_A Bool) - (top.usr.on_B Bool) - (top.usr.on_C Bool) - (top.usr.ack_AB Bool) - (top.usr.ack_BC Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.grant_access Bool) - (top.impl.usr.grant_exit Bool) - (top.impl.usr.do_AB Bool) - (top.impl.usr.do_BC Bool) - (top.impl.usr.empty_section Bool) - (top.impl.usr.only_on_B Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.abs_13 Bool) - (top.res.abs_14 Bool) - (top.res.abs_15 Bool) - (top.res.abs_16 Bool) - (top.res.abs_17 Bool) - (top.res.abs_18 Bool) - (top.res.abs_19 Bool) - (top.res.abs_20 Bool) - (top.res.abs_21 Bool) - (top.res.abs_22 Bool) - (top.res.abs_23 Bool) - (top.res.abs_24 Bool) - (top.res.inst_86 Bool) - (top.res.inst_85 Bool) - (top.res.inst_84 Bool) - (top.res.inst_83 Bool) - (top.res.inst_82 Bool) - (top.res.inst_81 Bool) - (top.res.inst_80 Bool) - (top.res.inst_79 Bool) - (top.res.inst_78 Bool) - (top.res.inst_77 Bool) - (top.res.inst_76 Bool) - (top.res.inst_75 Bool) - (top.res.inst_74 Bool) - (top.res.inst_73 Bool) - (top.res.inst_72 Bool) - (top.res.inst_71 Bool) - (top.res.inst_70 Bool) - (top.res.inst_69 Bool) - (top.res.inst_68 Bool) - (top.res.inst_67 Bool) - (top.res.inst_66 Bool) - (top.res.inst_65 Bool) - (top.res.inst_64 Bool) - (top.res.inst_63 Bool) - (top.res.inst_62 Bool) - (top.res.inst_61 Bool) - (top.res.inst_60 Bool) - (top.res.inst_59 Bool) - (top.res.inst_58 Bool) - (top.res.inst_57 Bool) - (top.res.inst_56 Bool) - (top.res.inst_55 Bool) - (top.res.inst_54 Bool) - (top.res.inst_53 Bool) - (top.res.inst_52 Bool) - (top.res.inst_51 Bool) - (top.res.inst_50 Bool) - (top.res.inst_49 Bool) - (top.res.inst_48 Bool) - (top.res.inst_47 Bool) - (top.res.inst_46 Bool) - (top.res.inst_45 Bool) - (top.res.inst_44 Bool) - (top.res.inst_43 Bool) - (top.res.inst_42 Bool) - (top.res.inst_41 Bool) - (top.res.inst_40 Bool) - (top.res.inst_39 Bool) - (top.res.inst_38 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_9 () Bool) -(declare-fun top.res.nondet_8 () Bool) -(declare-fun top.res.nondet_7 () Bool) -(declare-fun top.res.nondet_6 () Bool) -(declare-fun top.res.nondet_5 () Bool) -(declare-fun top.res.nondet_4 () Bool) -(declare-fun top.res.nondet_3 () Bool) -(declare-fun top.res.nondet_2 () Bool) -(declare-fun top.res.nondet_1 () Bool) -(declare-fun top.res.nondet_0 () Bool) - -(declare-primed-var top.usr.on_A Bool) -(declare-primed-var top.usr.on_B Bool) -(declare-primed-var top.usr.on_C Bool) -(declare-primed-var top.usr.ack_AB Bool) -(declare-primed-var top.usr.ack_BC Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.grant_access Bool) -(declare-primed-var top.impl.usr.grant_exit Bool) -(declare-primed-var top.impl.usr.do_AB Bool) -(declare-primed-var top.impl.usr.do_BC Bool) -(declare-primed-var top.impl.usr.empty_section Bool) -(declare-primed-var top.impl.usr.only_on_B Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.abs_12 Bool) -(declare-primed-var top.res.abs_13 Bool) -(declare-primed-var top.res.abs_14 Bool) -(declare-primed-var top.res.abs_15 Bool) -(declare-primed-var top.res.abs_16 Bool) -(declare-primed-var top.res.abs_17 Bool) -(declare-primed-var top.res.abs_18 Bool) -(declare-primed-var top.res.abs_19 Bool) -(declare-primed-var top.res.abs_20 Bool) -(declare-primed-var top.res.abs_21 Bool) -(declare-primed-var top.res.abs_22 Bool) -(declare-primed-var top.res.abs_23 Bool) -(declare-primed-var top.res.abs_24 Bool) -(declare-primed-var top.res.inst_86 Bool) -(declare-primed-var top.res.inst_85 Bool) -(declare-primed-var top.res.inst_84 Bool) -(declare-primed-var top.res.inst_83 Bool) -(declare-primed-var top.res.inst_82 Bool) -(declare-primed-var top.res.inst_81 Bool) -(declare-primed-var top.res.inst_80 Bool) -(declare-primed-var top.res.inst_79 Bool) -(declare-primed-var top.res.inst_78 Bool) -(declare-primed-var top.res.inst_77 Bool) -(declare-primed-var top.res.inst_76 Bool) -(declare-primed-var top.res.inst_75 Bool) -(declare-primed-var top.res.inst_74 Bool) -(declare-primed-var top.res.inst_73 Bool) -(declare-primed-var top.res.inst_72 Bool) -(declare-primed-var top.res.inst_71 Bool) -(declare-primed-var top.res.inst_70 Bool) -(declare-primed-var top.res.inst_69 Bool) -(declare-primed-var top.res.inst_68 Bool) -(declare-primed-var top.res.inst_67 Bool) -(declare-primed-var top.res.inst_66 Bool) -(declare-primed-var top.res.inst_65 Bool) -(declare-primed-var top.res.inst_64 Bool) -(declare-primed-var top.res.inst_63 Bool) -(declare-primed-var top.res.inst_62 Bool) -(declare-primed-var top.res.inst_61 Bool) -(declare-primed-var top.res.inst_60 Bool) -(declare-primed-var top.res.inst_59 Bool) -(declare-primed-var top.res.inst_58 Bool) -(declare-primed-var top.res.inst_57 Bool) -(declare-primed-var top.res.inst_56 Bool) -(declare-primed-var top.res.inst_55 Bool) -(declare-primed-var top.res.inst_54 Bool) -(declare-primed-var top.res.inst_53 Bool) -(declare-primed-var top.res.inst_52 Bool) -(declare-primed-var top.res.inst_51 Bool) -(declare-primed-var top.res.inst_50 Bool) -(declare-primed-var top.res.inst_49 Bool) -(declare-primed-var top.res.inst_48 Bool) -(declare-primed-var top.res.inst_47 Bool) -(declare-primed-var top.res.inst_46 Bool) -(declare-primed-var top.res.inst_45 Bool) -(declare-primed-var top.res.inst_44 Bool) -(declare-primed-var top.res.inst_43 Bool) -(declare-primed-var top.res.inst_42 Bool) -(declare-primed-var top.res.inst_41 Bool) -(declare-primed-var top.res.inst_40 Bool) -(declare-primed-var top.res.inst_39 Bool) -(declare-primed-var top.res.inst_38 Bool) -(declare-primed-var top.res.inst_37 Bool) -(declare-primed-var top.res.inst_36 Bool) -(declare-primed-var top.res.inst_35 Bool) -(declare-primed-var top.res.inst_34 Bool) -(declare-primed-var top.res.inst_33 Bool) -(declare-primed-var top.res.inst_32 Bool) -(declare-primed-var top.res.inst_31 Bool) -(declare-primed-var top.res.inst_30 Bool) -(declare-primed-var top.res.inst_29 Bool) -(declare-primed-var top.res.inst_28 Bool) -(declare-primed-var top.res.inst_27 Bool) -(declare-primed-var top.res.inst_26 Bool) -(declare-primed-var top.res.inst_25 Bool) -(declare-primed-var top.res.inst_24 Bool) -(declare-primed-var top.res.inst_23 Bool) -(declare-primed-var top.res.inst_22 Bool) -(declare-primed-var top.res.inst_21 Bool) -(declare-primed-var top.res.inst_20 Bool) -(declare-primed-var top.res.inst_19 Bool) -(declare-primed-var top.res.inst_18 Bool) -(declare-primed-var top.res.inst_17 Bool) -(declare-primed-var top.res.inst_16 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Bool) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Bool) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Bool) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.on_A Bool) - (top.usr.on_B Bool) - (top.usr.on_C Bool) - (top.usr.ack_AB Bool) - (top.usr.ack_BC Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.grant_access Bool) - (top.impl.usr.grant_exit Bool) - (top.impl.usr.do_AB Bool) - (top.impl.usr.do_BC Bool) - (top.impl.usr.empty_section Bool) - (top.impl.usr.only_on_B Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.abs_13 Bool) - (top.res.abs_14 Bool) - (top.res.abs_15 Bool) - (top.res.abs_16 Bool) - (top.res.abs_17 Bool) - (top.res.abs_18 Bool) - (top.res.abs_19 Bool) - (top.res.abs_20 Bool) - (top.res.abs_21 Bool) - (top.res.abs_22 Bool) - (top.res.abs_23 Bool) - (top.res.abs_24 Bool) - (top.res.inst_86 Bool) - (top.res.inst_85 Bool) - (top.res.inst_84 Bool) - (top.res.inst_83 Bool) - (top.res.inst_82 Bool) - (top.res.inst_81 Bool) - (top.res.inst_80 Bool) - (top.res.inst_79 Bool) - (top.res.inst_78 Bool) - (top.res.inst_77 Bool) - (top.res.inst_76 Bool) - (top.res.inst_75 Bool) - (top.res.inst_74 Bool) - (top.res.inst_73 Bool) - (top.res.inst_72 Bool) - (top.res.inst_71 Bool) - (top.res.inst_70 Bool) - (top.res.inst_69 Bool) - (top.res.inst_68 Bool) - (top.res.inst_67 Bool) - (top.res.inst_66 Bool) - (top.res.inst_65 Bool) - (top.res.inst_64 Bool) - (top.res.inst_63 Bool) - (top.res.inst_62 Bool) - (top.res.inst_61 Bool) - (top.res.inst_60 Bool) - (top.res.inst_59 Bool) - (top.res.inst_58 Bool) - (top.res.inst_57 Bool) - (top.res.inst_56 Bool) - (top.res.inst_55 Bool) - (top.res.inst_54 Bool) - (top.res.inst_53 Bool) - (top.res.inst_52 Bool) - (top.res.inst_51 Bool) - (top.res.inst_50 Bool) - (top.res.inst_49 Bool) - (top.res.inst_48 Bool) - (top.res.inst_47 Bool) - (top.res.inst_46 Bool) - (top.res.inst_45 Bool) - (top.res.inst_44 Bool) - (top.res.inst_43 Bool) - (top.res.inst_42 Bool) - (top.res.inst_41 Bool) - (top.res.inst_40 Bool) - (top.res.inst_39 Bool) - (top.res.inst_38 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.impl.usr.empty_section - (not (or (or top.usr.on_A top.usr.on_B) top.usr.on_C))) - (= top.impl.usr.grant_exit top.res.abs_1) - (= - top.impl.usr.only_on_B - (and top.usr.on_B (not (or top.usr.on_A top.usr.on_C)))) - (= top.impl.usr.grant_access top.res.abs_0) - (= top.res.abs_18 (or top.usr.on_A top.usr.on_C)) - (= top.res.abs_16 (not top.usr.on_B)) - (= top.res.abs_13 (not top.usr.on_A)) - (= top.impl.usr.do_AB top.res.abs_2) - (= top.impl.usr.do_BC top.res.abs_3) - (= - top.res.abs_20 - (and - (and - (and - (and - (and (not (and top.usr.ack_AB top.usr.ack_BC)) top.res.abs_4) - top.res.abs_5) - top.impl.usr.empty_section) - top.res.abs_15) - top.res.abs_19)) - (let - ((X1 Bool top.res.abs_21)) - (let - ((X2 Bool top.res.abs_24)) - (let - ((X3 Bool top.res.abs_23)) - (let - ((X4 Bool (not (and top.impl.usr.do_AB top.impl.usr.do_BC)))) - (let - ((X5 Bool top.res.abs_22)) - (and - (= top.usr.OK (=> X1 (and (and (and X5 X4) X3) X2))) - (= top.res.abs_6 (not top.impl.usr.empty_section)) - (= top.res.abs_8 (let ((X6 Bool top.res.nondet_4)) X6)) - (= top.res.abs_11 (let ((X6 Bool top.res.nondet_5)) X6)) - (__node_init_implies_0 - top.impl.usr.grant_access - top.impl.usr.empty_section - top.res.abs_22 - top.res.inst_86) - (__node_init_UMS_0 - top.usr.on_A - top.usr.on_B - top.usr.on_C - top.usr.ack_AB - top.usr.ack_BC - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_85) - (__node_init_always_from_to_0 - top.usr.ack_AB - top.impl.usr.grant_access - top.impl.usr.only_on_B - top.res.nondet_7 - top.res.nondet_6 - top.res.abs_23 - top.res.inst_84 - top.res.inst_83 - top.res.inst_82 - top.res.inst_81 - top.res.inst_80 - top.res.inst_79 - top.res.inst_78 - top.res.inst_77 - top.res.inst_76 - top.res.inst_75 - top.res.inst_74 - top.res.inst_73 - top.res.inst_72 - top.res.inst_71 - top.res.inst_70 - top.res.inst_69 - top.res.inst_68 - top.res.inst_67 - top.res.inst_66) - (__node_init_always_from_to_0 - top.usr.ack_BC - top.impl.usr.grant_exit - top.impl.usr.empty_section - top.res.nondet_9 - top.res.nondet_8 - top.res.abs_24 - top.res.inst_65 - top.res.inst_64 - top.res.inst_63 - top.res.inst_62 - top.res.inst_61 - top.res.inst_60 - top.res.inst_59 - top.res.inst_58 - top.res.inst_57 - top.res.inst_56 - top.res.inst_55 - top.res.inst_54 - top.res.inst_53 - top.res.inst_52 - top.res.inst_51 - top.res.inst_50 - top.res.inst_49 - top.res.inst_48 - top.res.inst_47) - (__node_init_Sofar_0 top.res.abs_20 top.res.abs_21 top.res.inst_46) - (__node_init_always_from_to_0 - top.usr.ack_AB - top.usr.ack_AB - top.impl.usr.do_BC - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_4 - top.res.inst_45 - top.res.inst_44 - top.res.inst_43 - top.res.inst_42 - top.res.inst_41 - top.res.inst_40 - top.res.inst_39 - top.res.inst_38 - top.res.inst_37 - top.res.inst_36 - top.res.inst_35 - top.res.inst_34 - top.res.inst_33 - top.res.inst_32 - top.res.inst_31 - top.res.inst_30 - top.res.inst_29 - top.res.inst_28 - top.res.inst_27) - (__node_init_always_from_to_0 - top.usr.ack_BC - top.usr.ack_BC - top.impl.usr.do_AB - top.res.nondet_3 - top.res.nondet_2 - top.res.abs_5 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8) - (__node_init_implies_0 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_7) - (__node_init_edge_0 top.res.abs_6 top.res.abs_7 top.res.inst_6) - (__node_init_implies_0 - top.res.abs_10 - top.res.abs_11 - top.res.abs_12 - top.res.inst_5) - (__node_init_edge_0 top.usr.on_C top.res.abs_10 top.res.inst_4) - (__node_init_implies_0 - top.res.abs_14 - top.usr.on_B - top.res.abs_15 - top.res.inst_3) - (__node_init_edge_0 top.res.abs_13 top.res.abs_14 top.res.inst_2) - (__node_init_implies_0 - top.res.abs_17 - top.res.abs_18 - top.res.abs_19 - top.res.inst_1) - (__node_init_edge_0 top.res.abs_16 top.res.abs_17 top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.on_A Bool) - (top.usr.on_B Bool) - (top.usr.on_C Bool) - (top.usr.ack_AB Bool) - (top.usr.ack_BC Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.grant_access Bool) - (top.impl.usr.grant_exit Bool) - (top.impl.usr.do_AB Bool) - (top.impl.usr.do_BC Bool) - (top.impl.usr.empty_section Bool) - (top.impl.usr.only_on_B Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.abs_13 Bool) - (top.res.abs_14 Bool) - (top.res.abs_15 Bool) - (top.res.abs_16 Bool) - (top.res.abs_17 Bool) - (top.res.abs_18 Bool) - (top.res.abs_19 Bool) - (top.res.abs_20 Bool) - (top.res.abs_21 Bool) - (top.res.abs_22 Bool) - (top.res.abs_23 Bool) - (top.res.abs_24 Bool) - (top.res.inst_86 Bool) - (top.res.inst_85 Bool) - (top.res.inst_84 Bool) - (top.res.inst_83 Bool) - (top.res.inst_82 Bool) - (top.res.inst_81 Bool) - (top.res.inst_80 Bool) - (top.res.inst_79 Bool) - (top.res.inst_78 Bool) - (top.res.inst_77 Bool) - (top.res.inst_76 Bool) - (top.res.inst_75 Bool) - (top.res.inst_74 Bool) - (top.res.inst_73 Bool) - (top.res.inst_72 Bool) - (top.res.inst_71 Bool) - (top.res.inst_70 Bool) - (top.res.inst_69 Bool) - (top.res.inst_68 Bool) - (top.res.inst_67 Bool) - (top.res.inst_66 Bool) - (top.res.inst_65 Bool) - (top.res.inst_64 Bool) - (top.res.inst_63 Bool) - (top.res.inst_62 Bool) - (top.res.inst_61 Bool) - (top.res.inst_60 Bool) - (top.res.inst_59 Bool) - (top.res.inst_58 Bool) - (top.res.inst_57 Bool) - (top.res.inst_56 Bool) - (top.res.inst_55 Bool) - (top.res.inst_54 Bool) - (top.res.inst_53 Bool) - (top.res.inst_52 Bool) - (top.res.inst_51 Bool) - (top.res.inst_50 Bool) - (top.res.inst_49 Bool) - (top.res.inst_48 Bool) - (top.res.inst_47 Bool) - (top.res.inst_46 Bool) - (top.res.inst_45 Bool) - (top.res.inst_44 Bool) - (top.res.inst_43 Bool) - (top.res.inst_42 Bool) - (top.res.inst_41 Bool) - (top.res.inst_40 Bool) - (top.res.inst_39 Bool) - (top.res.inst_38 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.on_A! Bool) - (top.usr.on_B! Bool) - (top.usr.on_C! Bool) - (top.usr.ack_AB! Bool) - (top.usr.ack_BC! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.grant_access! Bool) - (top.impl.usr.grant_exit! Bool) - (top.impl.usr.do_AB! Bool) - (top.impl.usr.do_BC! Bool) - (top.impl.usr.empty_section! Bool) - (top.impl.usr.only_on_B! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.abs_12! Bool) - (top.res.abs_13! Bool) - (top.res.abs_14! Bool) - (top.res.abs_15! Bool) - (top.res.abs_16! Bool) - (top.res.abs_17! Bool) - (top.res.abs_18! Bool) - (top.res.abs_19! Bool) - (top.res.abs_20! Bool) - (top.res.abs_21! Bool) - (top.res.abs_22! Bool) - (top.res.abs_23! Bool) - (top.res.abs_24! Bool) - (top.res.inst_86! Bool) - (top.res.inst_85! Bool) - (top.res.inst_84! Bool) - (top.res.inst_83! Bool) - (top.res.inst_82! Bool) - (top.res.inst_81! Bool) - (top.res.inst_80! Bool) - (top.res.inst_79! Bool) - (top.res.inst_78! Bool) - (top.res.inst_77! Bool) - (top.res.inst_76! Bool) - (top.res.inst_75! Bool) - (top.res.inst_74! Bool) - (top.res.inst_73! Bool) - (top.res.inst_72! Bool) - (top.res.inst_71! Bool) - (top.res.inst_70! Bool) - (top.res.inst_69! Bool) - (top.res.inst_68! Bool) - (top.res.inst_67! Bool) - (top.res.inst_66! Bool) - (top.res.inst_65! Bool) - (top.res.inst_64! Bool) - (top.res.inst_63! Bool) - (top.res.inst_62! Bool) - (top.res.inst_61! Bool) - (top.res.inst_60! Bool) - (top.res.inst_59! Bool) - (top.res.inst_58! Bool) - (top.res.inst_57! Bool) - (top.res.inst_56! Bool) - (top.res.inst_55! Bool) - (top.res.inst_54! Bool) - (top.res.inst_53! Bool) - (top.res.inst_52! Bool) - (top.res.inst_51! Bool) - (top.res.inst_50! Bool) - (top.res.inst_49! Bool) - (top.res.inst_48! Bool) - (top.res.inst_47! Bool) - (top.res.inst_46! Bool) - (top.res.inst_45! Bool) - (top.res.inst_44! Bool) - (top.res.inst_43! Bool) - (top.res.inst_42! Bool) - (top.res.inst_41! Bool) - (top.res.inst_40! Bool) - (top.res.inst_39! Bool) - (top.res.inst_38! Bool) - (top.res.inst_37! Bool) - (top.res.inst_36! Bool) - (top.res.inst_35! Bool) - (top.res.inst_34! Bool) - (top.res.inst_33! Bool) - (top.res.inst_32! Bool) - (top.res.inst_31! Bool) - (top.res.inst_30! Bool) - (top.res.inst_29! Bool) - (top.res.inst_28! Bool) - (top.res.inst_27! Bool) - (top.res.inst_26! Bool) - (top.res.inst_25! Bool) - (top.res.inst_24! Bool) - (top.res.inst_23! Bool) - (top.res.inst_22! Bool) - (top.res.inst_21! Bool) - (top.res.inst_20! Bool) - (top.res.inst_19! Bool) - (top.res.inst_18! Bool) - (top.res.inst_17! Bool) - (top.res.inst_16! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Bool) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Bool) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Bool) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.impl.usr.empty_section! - (not (or (or top.usr.on_A! top.usr.on_B!) top.usr.on_C!))) - (= top.impl.usr.grant_exit! top.res.abs_1!) - (= - top.impl.usr.only_on_B! - (and top.usr.on_B! (not (or top.usr.on_A! top.usr.on_C!)))) - (= top.impl.usr.grant_access! top.res.abs_0!) - (= top.res.abs_18! (or top.usr.on_A! top.usr.on_C!)) - (= top.res.abs_16! (not top.usr.on_B!)) - (= top.res.abs_13! (not top.usr.on_A!)) - (= top.res.abs_11! top.impl.usr.grant_exit) - (= top.res.abs_8! top.impl.usr.grant_access) - (= top.res.abs_6! (not top.impl.usr.empty_section!)) - (= top.impl.usr.do_AB! top.res.abs_2!) - (= top.impl.usr.do_BC! top.res.abs_3!) - (= - top.res.abs_20! - (and - (and - (and - (and - (and - (and (not (and top.usr.ack_AB! top.usr.ack_BC!)) top.res.abs_4!) - top.res.abs_5!) - top.res.abs_9!) - top.res.abs_12!) - top.res.abs_15!) - top.res.abs_19!)) - (let - ((X1 Bool top.res.abs_21!)) - (let - ((X2 Bool top.res.abs_24!)) - (let - ((X3 Bool top.res.abs_23!)) - (let - ((X4 Bool (not (and top.impl.usr.do_AB! top.impl.usr.do_BC!)))) - (let - ((X5 Bool top.res.abs_22!)) - (and - (= top.usr.OK! (=> X1 (and (and (and X5 X4) X3) X2))) - (__node_trans_implies_0 - top.impl.usr.grant_access! - top.impl.usr.empty_section! - top.res.abs_22! - top.res.inst_86! - top.impl.usr.grant_access - top.impl.usr.empty_section - top.res.abs_22 - top.res.inst_86) - (__node_trans_UMS_0 - top.usr.on_A! - top.usr.on_B! - top.usr.on_C! - top.usr.ack_AB! - top.usr.ack_BC! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_85! - top.usr.on_A - top.usr.on_B - top.usr.on_C - top.usr.ack_AB - top.usr.ack_BC - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_85) - (__node_trans_always_from_to_0 - top.usr.ack_AB! - top.impl.usr.grant_access! - top.impl.usr.only_on_B! - top.res.nondet_7 - top.res.nondet_6 - top.res.abs_23! - top.res.inst_84! - top.res.inst_83! - top.res.inst_82! - top.res.inst_81! - top.res.inst_80! - top.res.inst_79! - top.res.inst_78! - top.res.inst_77! - top.res.inst_76! - top.res.inst_75! - top.res.inst_74! - top.res.inst_73! - top.res.inst_72! - top.res.inst_71! - top.res.inst_70! - top.res.inst_69! - top.res.inst_68! - top.res.inst_67! - top.res.inst_66! - top.usr.ack_AB - top.impl.usr.grant_access - top.impl.usr.only_on_B - top.res.abs_23 - top.res.inst_84 - top.res.inst_83 - top.res.inst_82 - top.res.inst_81 - top.res.inst_80 - top.res.inst_79 - top.res.inst_78 - top.res.inst_77 - top.res.inst_76 - top.res.inst_75 - top.res.inst_74 - top.res.inst_73 - top.res.inst_72 - top.res.inst_71 - top.res.inst_70 - top.res.inst_69 - top.res.inst_68 - top.res.inst_67 - top.res.inst_66) - (__node_trans_always_from_to_0 - top.usr.ack_BC! - top.impl.usr.grant_exit! - top.impl.usr.empty_section! - top.res.nondet_9 - top.res.nondet_8 - top.res.abs_24! - top.res.inst_65! - top.res.inst_64! - top.res.inst_63! - top.res.inst_62! - top.res.inst_61! - top.res.inst_60! - top.res.inst_59! - top.res.inst_58! - top.res.inst_57! - top.res.inst_56! - top.res.inst_55! - top.res.inst_54! - top.res.inst_53! - top.res.inst_52! - top.res.inst_51! - top.res.inst_50! - top.res.inst_49! - top.res.inst_48! - top.res.inst_47! - top.usr.ack_BC - top.impl.usr.grant_exit - top.impl.usr.empty_section - top.res.abs_24 - top.res.inst_65 - top.res.inst_64 - top.res.inst_63 - top.res.inst_62 - top.res.inst_61 - top.res.inst_60 - top.res.inst_59 - top.res.inst_58 - top.res.inst_57 - top.res.inst_56 - top.res.inst_55 - top.res.inst_54 - top.res.inst_53 - top.res.inst_52 - top.res.inst_51 - top.res.inst_50 - top.res.inst_49 - top.res.inst_48 - top.res.inst_47) - (__node_trans_Sofar_0 - top.res.abs_20! - top.res.abs_21! - top.res.inst_46! - top.res.abs_20 - top.res.abs_21 - top.res.inst_46) - (__node_trans_always_from_to_0 - top.usr.ack_AB! - top.usr.ack_AB! - top.impl.usr.do_BC! - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_4! - top.res.inst_45! - top.res.inst_44! - top.res.inst_43! - top.res.inst_42! - top.res.inst_41! - top.res.inst_40! - top.res.inst_39! - top.res.inst_38! - top.res.inst_37! - top.res.inst_36! - top.res.inst_35! - top.res.inst_34! - top.res.inst_33! - top.res.inst_32! - top.res.inst_31! - top.res.inst_30! - top.res.inst_29! - top.res.inst_28! - top.res.inst_27! - top.usr.ack_AB - top.usr.ack_AB - top.impl.usr.do_BC - top.res.abs_4 - top.res.inst_45 - top.res.inst_44 - top.res.inst_43 - top.res.inst_42 - top.res.inst_41 - top.res.inst_40 - top.res.inst_39 - top.res.inst_38 - top.res.inst_37 - top.res.inst_36 - top.res.inst_35 - top.res.inst_34 - top.res.inst_33 - top.res.inst_32 - top.res.inst_31 - top.res.inst_30 - top.res.inst_29 - top.res.inst_28 - top.res.inst_27) - (__node_trans_always_from_to_0 - top.usr.ack_BC! - top.usr.ack_BC! - top.impl.usr.do_AB! - top.res.nondet_3 - top.res.nondet_2 - top.res.abs_5! - top.res.inst_26! - top.res.inst_25! - top.res.inst_24! - top.res.inst_23! - top.res.inst_22! - top.res.inst_21! - top.res.inst_20! - top.res.inst_19! - top.res.inst_18! - top.res.inst_17! - top.res.inst_16! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.usr.ack_BC - top.usr.ack_BC - top.impl.usr.do_AB - top.res.abs_5 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8) - (__node_trans_implies_0 - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_7! - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_7) - (__node_trans_edge_0 - top.res.abs_6! - top.res.abs_7! - top.res.inst_6! - top.res.abs_6 - top.res.abs_7 - top.res.inst_6) - (__node_trans_implies_0 - top.res.abs_10! - top.res.abs_11! - top.res.abs_12! - top.res.inst_5! - top.res.abs_10 - top.res.abs_11 - top.res.abs_12 - top.res.inst_5) - (__node_trans_edge_0 - top.usr.on_C! - top.res.abs_10! - top.res.inst_4! - top.usr.on_C - top.res.abs_10 - top.res.inst_4) - (__node_trans_implies_0 - top.res.abs_14! - top.usr.on_B! - top.res.abs_15! - top.res.inst_3! - top.res.abs_14 - top.usr.on_B - top.res.abs_15 - top.res.inst_3) - (__node_trans_edge_0 - top.res.abs_13! - top.res.abs_14! - top.res.inst_2! - top.res.abs_13 - top.res.abs_14 - top.res.inst_2) - (__node_trans_implies_0 - top.res.abs_17! - top.res.abs_18! - top.res.abs_19! - top.res.inst_1! - top.res.abs_17 - top.res.abs_18 - top.res.abs_19 - top.res.inst_1) - (__node_trans_edge_0 - top.res.abs_16! - top.res.abs_17! - top.res.inst_0! - top.res.abs_16 - top.res.abs_17 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.on_A Bool) - (top.usr.on_B Bool) - (top.usr.on_C Bool) - (top.usr.ack_AB Bool) - (top.usr.ack_BC Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.grant_access Bool) - (top.impl.usr.grant_exit Bool) - (top.impl.usr.do_AB Bool) - (top.impl.usr.do_BC Bool) - (top.impl.usr.empty_section Bool) - (top.impl.usr.only_on_B Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.abs_13 Bool) - (top.res.abs_14 Bool) - (top.res.abs_15 Bool) - (top.res.abs_16 Bool) - (top.res.abs_17 Bool) - (top.res.abs_18 Bool) - (top.res.abs_19 Bool) - (top.res.abs_20 Bool) - (top.res.abs_21 Bool) - (top.res.abs_22 Bool) - (top.res.abs_23 Bool) - (top.res.abs_24 Bool) - (top.res.inst_86 Bool) - (top.res.inst_85 Bool) - (top.res.inst_84 Bool) - (top.res.inst_83 Bool) - (top.res.inst_82 Bool) - (top.res.inst_81 Bool) - (top.res.inst_80 Bool) - (top.res.inst_79 Bool) - (top.res.inst_78 Bool) - (top.res.inst_77 Bool) - (top.res.inst_76 Bool) - (top.res.inst_75 Bool) - (top.res.inst_74 Bool) - (top.res.inst_73 Bool) - (top.res.inst_72 Bool) - (top.res.inst_71 Bool) - (top.res.inst_70 Bool) - (top.res.inst_69 Bool) - (top.res.inst_68 Bool) - (top.res.inst_67 Bool) - (top.res.inst_66 Bool) - (top.res.inst_65 Bool) - (top.res.inst_64 Bool) - (top.res.inst_63 Bool) - (top.res.inst_62 Bool) - (top.res.inst_61 Bool) - (top.res.inst_60 Bool) - (top.res.inst_59 Bool) - (top.res.inst_58 Bool) - (top.res.inst_57 Bool) - (top.res.inst_56 Bool) - (top.res.inst_55 Bool) - (top.res.inst_54 Bool) - (top.res.inst_53 Bool) - (top.res.inst_52 Bool) - (top.res.inst_51 Bool) - (top.res.inst_50 Bool) - (top.res.inst_49 Bool) - (top.res.inst_48 Bool) - (top.res.inst_47 Bool) - (top.res.inst_46 Bool) - (top.res.inst_45 Bool) - (top.res.inst_44 Bool) - (top.res.inst_43 Bool) - (top.res.inst_42 Bool) - (top.res.inst_41 Bool) - (top.res.inst_40 Bool) - (top.res.inst_39 Bool) - (top.res.inst_38 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_implies_0 ((implies.usr.A_a_0 Bool) (implies.usr.B_a_0 Bool) (implies.usr.AimpliesB_a_0 Bool) (implies.res.init_flag_a_0 Bool)) Bool + (and (= implies.usr.AimpliesB_a_0 (or (not implies.usr.A_a_0) implies.usr.B_a_0)) implies.res.init_flag_a_0)) +(define-fun __node_trans_implies_0 ((implies.usr.A_a_1 Bool) (implies.usr.B_a_1 Bool) (implies.usr.AimpliesB_a_1 Bool) (implies.res.init_flag_a_1 Bool) (implies.usr.A_a_0 Bool) (implies.usr.B_a_0 Bool) (implies.usr.AimpliesB_a_0 Bool) (implies.res.init_flag_a_0 Bool)) Bool + (and (= implies.usr.AimpliesB_a_1 (or (not implies.usr.A_a_1) implies.usr.B_a_1)) (not implies.res.init_flag_a_1))) +(define-fun __node_init_edge_0 ((edge.usr.X_a_0 Bool) (edge.usr.Y_a_0 Bool) (edge.res.init_flag_a_0 Bool)) Bool + (and (= edge.usr.Y_a_0 edge.usr.X_a_0) edge.res.init_flag_a_0)) +(define-fun __node_trans_edge_0 ((edge.usr.X_a_1 Bool) (edge.usr.Y_a_1 Bool) (edge.res.init_flag_a_1 Bool) (edge.usr.X_a_0 Bool) (edge.usr.Y_a_0 Bool) (edge.res.init_flag_a_0 Bool)) Bool + (and (= edge.usr.Y_a_1 (and edge.usr.X_a_1 (not edge.usr.X_a_0))) (not edge.res.init_flag_a_1))) +(define-fun __node_init_after_0 ((after.usr.A_a_0 Bool) (after.usr.afterA_a_0 Bool) (after.res.init_flag_a_0 Bool) (after.res.abs_0_a_0 Bool)) Bool + (and (= after.usr.afterA_a_0 false) (= after.res.abs_0_a_0 (or after.usr.A_a_0 after.usr.afterA_a_0)) after.res.init_flag_a_0)) +(define-fun __node_trans_after_0 ((after.usr.A_a_1 Bool) (after.usr.afterA_a_1 Bool) (after.res.init_flag_a_1 Bool) (after.res.abs_0_a_1 Bool) (after.usr.A_a_0 Bool) (after.usr.afterA_a_0 Bool) (after.res.init_flag_a_0 Bool) (after.res.abs_0_a_0 Bool)) Bool + (and (= after.usr.afterA_a_1 after.res.abs_0_a_0) (= after.res.abs_0_a_1 (or after.usr.A_a_1 after.usr.afterA_a_1)) (not after.res.init_flag_a_1))) +(define-fun __node_init_once_since_0 ((once_since.usr.C_a_0 Bool) (once_since.usr.A_a_0 Bool) (once_since.res.nondet_0 Bool) (once_since.usr.onceCsinceA_a_0 Bool) (once_since.res.init_flag_a_0 Bool) (once_since.res.abs_0_a_0 Bool) (once_since.res.abs_1_a_0 Bool) (once_since.res.inst_1_a_0 Bool) (once_since.res.inst_0_a_0 Bool)) Bool + (and (= once_since.usr.onceCsinceA_a_0 (let ((X1 once_since.res.nondet_0)) (ite once_since.usr.A_a_0 once_since.usr.C_a_0 (ite once_since.res.abs_1_a_0 (or once_since.usr.C_a_0 X1) true)))) (= once_since.res.abs_0_a_0 once_since.usr.A_a_0) (__node_init_after_0 once_since.res.abs_0_a_0 once_since.res.abs_1_a_0 once_since.res.inst_1_a_0 once_since.res.inst_0_a_0) once_since.res.init_flag_a_0)) +(define-fun __node_trans_once_since_0 ((once_since.usr.C_a_1 Bool) (once_since.usr.A_a_1 Bool) (once_since.res.nondet_0 Bool) (once_since.usr.onceCsinceA_a_1 Bool) (once_since.res.init_flag_a_1 Bool) (once_since.res.abs_0_a_1 Bool) (once_since.res.abs_1_a_1 Bool) (once_since.res.inst_1_a_1 Bool) (once_since.res.inst_0_a_1 Bool) (once_since.usr.C_a_0 Bool) (once_since.usr.A_a_0 Bool) (once_since.usr.onceCsinceA_a_0 Bool) (once_since.res.init_flag_a_0 Bool) (once_since.res.abs_0_a_0 Bool) (once_since.res.abs_1_a_0 Bool) (once_since.res.inst_1_a_0 Bool) (once_since.res.inst_0_a_0 Bool)) Bool + (and (= once_since.usr.onceCsinceA_a_1 (ite once_since.usr.A_a_1 once_since.usr.C_a_1 (ite once_since.res.abs_1_a_1 (or once_since.usr.C_a_1 once_since.usr.onceCsinceA_a_0) true))) (= once_since.res.abs_0_a_1 once_since.usr.A_a_1) (__node_trans_after_0 once_since.res.abs_0_a_1 once_since.res.abs_1_a_1 once_since.res.inst_1_a_1 once_since.res.inst_0_a_1 once_since.res.abs_0_a_0 once_since.res.abs_1_a_0 once_since.res.inst_1_a_0 once_since.res.inst_0_a_0) (not once_since.res.init_flag_a_1))) +(define-fun __node_init_always_since_0 ((always_since.usr.B_a_0 Bool) (always_since.usr.A_a_0 Bool) (always_since.res.nondet_0 Bool) (always_since.usr.alwaysBsinceA_a_0 Bool) (always_since.res.init_flag_a_0 Bool) (always_since.res.abs_0_a_0 Bool) (always_since.res.abs_1_a_0 Bool) (always_since.res.inst_1_a_0 Bool) (always_since.res.inst_0_a_0 Bool)) Bool + (and (= always_since.usr.alwaysBsinceA_a_0 (let ((X1 always_since.res.nondet_0)) (ite always_since.usr.A_a_0 always_since.usr.B_a_0 (ite always_since.res.abs_1_a_0 (and always_since.usr.B_a_0 X1) true)))) (= always_since.res.abs_0_a_0 always_since.usr.A_a_0) (__node_init_after_0 always_since.res.abs_0_a_0 always_since.res.abs_1_a_0 always_since.res.inst_1_a_0 always_since.res.inst_0_a_0) always_since.res.init_flag_a_0)) +(define-fun __node_trans_always_since_0 ((always_since.usr.B_a_1 Bool) (always_since.usr.A_a_1 Bool) (always_since.res.nondet_0 Bool) (always_since.usr.alwaysBsinceA_a_1 Bool) (always_since.res.init_flag_a_1 Bool) (always_since.res.abs_0_a_1 Bool) (always_since.res.abs_1_a_1 Bool) (always_since.res.inst_1_a_1 Bool) (always_since.res.inst_0_a_1 Bool) (always_since.usr.B_a_0 Bool) (always_since.usr.A_a_0 Bool) (always_since.usr.alwaysBsinceA_a_0 Bool) (always_since.res.init_flag_a_0 Bool) (always_since.res.abs_0_a_0 Bool) (always_since.res.abs_1_a_0 Bool) (always_since.res.inst_1_a_0 Bool) (always_since.res.inst_0_a_0 Bool)) Bool + (and (= always_since.usr.alwaysBsinceA_a_1 (ite always_since.usr.A_a_1 always_since.usr.B_a_1 (ite always_since.res.abs_1_a_1 (and always_since.usr.B_a_1 always_since.usr.alwaysBsinceA_a_0) true))) (= always_since.res.abs_0_a_1 always_since.usr.A_a_1) (__node_trans_after_0 always_since.res.abs_0_a_1 always_since.res.abs_1_a_1 always_since.res.inst_1_a_1 always_since.res.inst_0_a_1 always_since.res.abs_0_a_0 always_since.res.abs_1_a_0 always_since.res.inst_1_a_0 always_since.res.inst_0_a_0) (not always_since.res.init_flag_a_1))) +(define-fun __node_init_always_from_to_0 ((always_from_to.usr.B_a_0 Bool) (always_from_to.usr.A_a_0 Bool) (always_from_to.usr.C_a_0 Bool) (always_from_to.res.nondet_1 Bool) (always_from_to.res.nondet_0 Bool) (always_from_to.usr.X_a_0 Bool) (always_from_to.res.init_flag_a_0 Bool) (always_from_to.res.abs_0_a_0 Bool) (always_from_to.res.abs_1_a_0 Bool) (always_from_to.res.abs_2_a_0 Bool) (always_from_to.res.abs_3_a_0 Bool) (always_from_to.res.abs_4_a_0 Bool) (always_from_to.res.inst_12_a_0 Bool) (always_from_to.res.inst_11_a_0 Bool) (always_from_to.res.inst_10_a_0 Bool) (always_from_to.res.inst_9_a_0 Bool) (always_from_to.res.inst_8_a_0 Bool) (always_from_to.res.inst_7_a_0 Bool) (always_from_to.res.inst_6_a_0 Bool) (always_from_to.res.inst_5_a_0 Bool) (always_from_to.res.inst_4_a_0 Bool) (always_from_to.res.inst_3_a_0 Bool) (always_from_to.res.inst_2_a_0 Bool) (always_from_to.res.inst_1_a_0 Bool) (always_from_to.res.inst_0_a_0 Bool)) Bool + (and (= always_from_to.res.abs_3_a_0 (or always_from_to.res.abs_1_a_0 always_from_to.res.abs_2_a_0)) (= always_from_to.usr.X_a_0 always_from_to.res.abs_4_a_0) (__node_init_implies_0 always_from_to.res.abs_0_a_0 always_from_to.res.abs_3_a_0 always_from_to.res.abs_4_a_0 always_from_to.res.inst_12_a_0) (__node_init_after_0 always_from_to.usr.A_a_0 always_from_to.res.abs_0_a_0 always_from_to.res.inst_11_a_0 always_from_to.res.inst_10_a_0) (__node_init_always_since_0 always_from_to.usr.B_a_0 always_from_to.usr.A_a_0 always_from_to.res.nondet_0 always_from_to.res.abs_1_a_0 always_from_to.res.inst_9_a_0 always_from_to.res.inst_8_a_0 always_from_to.res.inst_7_a_0 always_from_to.res.inst_6_a_0 always_from_to.res.inst_5_a_0) (__node_init_once_since_0 always_from_to.usr.C_a_0 always_from_to.usr.A_a_0 always_from_to.res.nondet_1 always_from_to.res.abs_2_a_0 always_from_to.res.inst_4_a_0 always_from_to.res.inst_3_a_0 always_from_to.res.inst_2_a_0 always_from_to.res.inst_1_a_0 always_from_to.res.inst_0_a_0) always_from_to.res.init_flag_a_0)) +(define-fun __node_trans_always_from_to_0 ((always_from_to.usr.B_a_1 Bool) (always_from_to.usr.A_a_1 Bool) (always_from_to.usr.C_a_1 Bool) (always_from_to.res.nondet_1 Bool) (always_from_to.res.nondet_0 Bool) (always_from_to.usr.X_a_1 Bool) (always_from_to.res.init_flag_a_1 Bool) (always_from_to.res.abs_0_a_1 Bool) (always_from_to.res.abs_1_a_1 Bool) (always_from_to.res.abs_2_a_1 Bool) (always_from_to.res.abs_3_a_1 Bool) (always_from_to.res.abs_4_a_1 Bool) (always_from_to.res.inst_12_a_1 Bool) (always_from_to.res.inst_11_a_1 Bool) (always_from_to.res.inst_10_a_1 Bool) (always_from_to.res.inst_9_a_1 Bool) (always_from_to.res.inst_8_a_1 Bool) (always_from_to.res.inst_7_a_1 Bool) (always_from_to.res.inst_6_a_1 Bool) (always_from_to.res.inst_5_a_1 Bool) (always_from_to.res.inst_4_a_1 Bool) (always_from_to.res.inst_3_a_1 Bool) (always_from_to.res.inst_2_a_1 Bool) (always_from_to.res.inst_1_a_1 Bool) (always_from_to.res.inst_0_a_1 Bool) (always_from_to.usr.B_a_0 Bool) (always_from_to.usr.A_a_0 Bool) (always_from_to.usr.C_a_0 Bool) (always_from_to.usr.X_a_0 Bool) (always_from_to.res.init_flag_a_0 Bool) (always_from_to.res.abs_0_a_0 Bool) (always_from_to.res.abs_1_a_0 Bool) (always_from_to.res.abs_2_a_0 Bool) (always_from_to.res.abs_3_a_0 Bool) (always_from_to.res.abs_4_a_0 Bool) (always_from_to.res.inst_12_a_0 Bool) (always_from_to.res.inst_11_a_0 Bool) (always_from_to.res.inst_10_a_0 Bool) (always_from_to.res.inst_9_a_0 Bool) (always_from_to.res.inst_8_a_0 Bool) (always_from_to.res.inst_7_a_0 Bool) (always_from_to.res.inst_6_a_0 Bool) (always_from_to.res.inst_5_a_0 Bool) (always_from_to.res.inst_4_a_0 Bool) (always_from_to.res.inst_3_a_0 Bool) (always_from_to.res.inst_2_a_0 Bool) (always_from_to.res.inst_1_a_0 Bool) (always_from_to.res.inst_0_a_0 Bool)) Bool + (and (= always_from_to.res.abs_3_a_1 (or always_from_to.res.abs_1_a_1 always_from_to.res.abs_2_a_1)) (= always_from_to.usr.X_a_1 always_from_to.res.abs_4_a_1) (__node_trans_implies_0 always_from_to.res.abs_0_a_1 always_from_to.res.abs_3_a_1 always_from_to.res.abs_4_a_1 always_from_to.res.inst_12_a_1 always_from_to.res.abs_0_a_0 always_from_to.res.abs_3_a_0 always_from_to.res.abs_4_a_0 always_from_to.res.inst_12_a_0) (__node_trans_after_0 always_from_to.usr.A_a_1 always_from_to.res.abs_0_a_1 always_from_to.res.inst_11_a_1 always_from_to.res.inst_10_a_1 always_from_to.usr.A_a_0 always_from_to.res.abs_0_a_0 always_from_to.res.inst_11_a_0 always_from_to.res.inst_10_a_0) (__node_trans_always_since_0 always_from_to.usr.B_a_1 always_from_to.usr.A_a_1 always_from_to.res.nondet_0 always_from_to.res.abs_1_a_1 always_from_to.res.inst_9_a_1 always_from_to.res.inst_8_a_1 always_from_to.res.inst_7_a_1 always_from_to.res.inst_6_a_1 always_from_to.res.inst_5_a_1 always_from_to.usr.B_a_0 always_from_to.usr.A_a_0 always_from_to.res.abs_1_a_0 always_from_to.res.inst_9_a_0 always_from_to.res.inst_8_a_0 always_from_to.res.inst_7_a_0 always_from_to.res.inst_6_a_0 always_from_to.res.inst_5_a_0) (__node_trans_once_since_0 always_from_to.usr.C_a_1 always_from_to.usr.A_a_1 always_from_to.res.nondet_1 always_from_to.res.abs_2_a_1 always_from_to.res.inst_4_a_1 always_from_to.res.inst_3_a_1 always_from_to.res.inst_2_a_1 always_from_to.res.inst_1_a_1 always_from_to.res.inst_0_a_1 always_from_to.usr.C_a_0 always_from_to.usr.A_a_0 always_from_to.res.abs_2_a_0 always_from_to.res.inst_4_a_0 always_from_to.res.inst_3_a_0 always_from_to.res.inst_2_a_0 always_from_to.res.inst_1_a_0 always_from_to.res.inst_0_a_0) (not always_from_to.res.init_flag_a_1))) +(define-fun __node_init_UMS_0 ((UMS.usr.on_A_a_0 Bool) (UMS.usr.on_B_a_0 Bool) (UMS.usr.on_C_a_0 Bool) (UMS.usr.ack_AB_a_0 Bool) (UMS.usr.ack_BC_a_0 Bool) (UMS.usr.grant_access_a_0 Bool) (UMS.usr.grant_exit_a_0 Bool) (UMS.usr.do_AB_a_0 Bool) (UMS.usr.do_BC_a_0 Bool) (UMS.res.init_flag_a_0 Bool)) Bool + (let ((X1 (not (or (or UMS.usr.on_A_a_0 UMS.usr.on_B_a_0) UMS.usr.on_C_a_0)))) (and (= UMS.usr.grant_access_a_0 (and X1 UMS.usr.ack_AB_a_0)) (let ((X2 (and UMS.usr.on_B_a_0 (not (or UMS.usr.on_A_a_0 UMS.usr.on_C_a_0))))) (and (= UMS.usr.grant_exit_a_0 (and X2 UMS.usr.ack_BC_a_0)) (= UMS.usr.do_AB_a_0 (and (not UMS.usr.ack_AB_a_0) X1)) (= UMS.usr.do_BC_a_0 (and (not UMS.usr.ack_BC_a_0) X2)) UMS.res.init_flag_a_0))))) +(define-fun __node_trans_UMS_0 ((UMS.usr.on_A_a_1 Bool) (UMS.usr.on_B_a_1 Bool) (UMS.usr.on_C_a_1 Bool) (UMS.usr.ack_AB_a_1 Bool) (UMS.usr.ack_BC_a_1 Bool) (UMS.usr.grant_access_a_1 Bool) (UMS.usr.grant_exit_a_1 Bool) (UMS.usr.do_AB_a_1 Bool) (UMS.usr.do_BC_a_1 Bool) (UMS.res.init_flag_a_1 Bool) (UMS.usr.on_A_a_0 Bool) (UMS.usr.on_B_a_0 Bool) (UMS.usr.on_C_a_0 Bool) (UMS.usr.ack_AB_a_0 Bool) (UMS.usr.ack_BC_a_0 Bool) (UMS.usr.grant_access_a_0 Bool) (UMS.usr.grant_exit_a_0 Bool) (UMS.usr.do_AB_a_0 Bool) (UMS.usr.do_BC_a_0 Bool) (UMS.res.init_flag_a_0 Bool)) Bool + (let ((X1 (not (or (or UMS.usr.on_A_a_1 UMS.usr.on_B_a_1) UMS.usr.on_C_a_1)))) (and (= UMS.usr.grant_access_a_1 (and X1 UMS.usr.ack_AB_a_1)) (let ((X2 (and UMS.usr.on_B_a_1 (not (or UMS.usr.on_A_a_1 UMS.usr.on_C_a_1))))) (and (= UMS.usr.grant_exit_a_1 (and X2 UMS.usr.ack_BC_a_1)) (= UMS.usr.do_AB_a_1 (and (not UMS.usr.ack_AB_a_1) X1)) (= UMS.usr.do_BC_a_1 (and (not UMS.usr.ack_BC_a_1) X2)) (not UMS.res.init_flag_a_1)))))) +(define-fun __node_init_top_0 ((top.usr.on_A_a_0 Bool) (top.usr.on_B_a_0 Bool) (top.usr.on_C_a_0 Bool) (top.usr.ack_AB_a_0 Bool) (top.usr.ack_BC_a_0 Bool) (top.res.nondet_9 Bool) (top.res.nondet_8 Bool) (top.res.nondet_7 Bool) (top.res.nondet_6 Bool) (top.res.nondet_5 Bool) (top.res.nondet_4 Bool) (top.res.nondet_3 Bool) (top.res.nondet_2 Bool) (top.res.nondet_1 Bool) (top.res.nondet_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.grant_access_a_0 Bool) (top.impl.usr.grant_exit_a_0 Bool) (top.impl.usr.do_AB_a_0 Bool) (top.impl.usr.do_BC_a_0 Bool) (top.impl.usr.empty_section_a_0 Bool) (top.impl.usr.only_on_B_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.abs_12_a_0 Bool) (top.res.abs_13_a_0 Bool) (top.res.abs_14_a_0 Bool) (top.res.abs_15_a_0 Bool) (top.res.abs_16_a_0 Bool) (top.res.abs_17_a_0 Bool) (top.res.abs_18_a_0 Bool) (top.res.abs_19_a_0 Bool) (top.res.abs_20_a_0 Bool) (top.res.abs_21_a_0 Bool) (top.res.abs_22_a_0 Bool) (top.res.abs_23_a_0 Bool) (top.res.abs_24_a_0 Bool) (top.res.inst_86_a_0 Bool) (top.res.inst_85_a_0 Bool) (top.res.inst_84_a_0 Bool) (top.res.inst_83_a_0 Bool) (top.res.inst_82_a_0 Bool) (top.res.inst_81_a_0 Bool) (top.res.inst_80_a_0 Bool) (top.res.inst_79_a_0 Bool) (top.res.inst_78_a_0 Bool) (top.res.inst_77_a_0 Bool) (top.res.inst_76_a_0 Bool) (top.res.inst_75_a_0 Bool) (top.res.inst_74_a_0 Bool) (top.res.inst_73_a_0 Bool) (top.res.inst_72_a_0 Bool) (top.res.inst_71_a_0 Bool) (top.res.inst_70_a_0 Bool) (top.res.inst_69_a_0 Bool) (top.res.inst_68_a_0 Bool) (top.res.inst_67_a_0 Bool) (top.res.inst_66_a_0 Bool) (top.res.inst_65_a_0 Bool) (top.res.inst_64_a_0 Bool) (top.res.inst_63_a_0 Bool) (top.res.inst_62_a_0 Bool) (top.res.inst_61_a_0 Bool) (top.res.inst_60_a_0 Bool) (top.res.inst_59_a_0 Bool) (top.res.inst_58_a_0 Bool) (top.res.inst_57_a_0 Bool) (top.res.inst_56_a_0 Bool) (top.res.inst_55_a_0 Bool) (top.res.inst_54_a_0 Bool) (top.res.inst_53_a_0 Bool) (top.res.inst_52_a_0 Bool) (top.res.inst_51_a_0 Bool) (top.res.inst_50_a_0 Bool) (top.res.inst_49_a_0 Bool) (top.res.inst_48_a_0 Bool) (top.res.inst_47_a_0 Bool) (top.res.inst_46_a_0 Bool) (top.res.inst_45_a_0 Bool) (top.res.inst_44_a_0 Bool) (top.res.inst_43_a_0 Bool) (top.res.inst_42_a_0 Bool) (top.res.inst_41_a_0 Bool) (top.res.inst_40_a_0 Bool) (top.res.inst_39_a_0 Bool) (top.res.inst_38_a_0 Bool) (top.res.inst_37_a_0 Bool) (top.res.inst_36_a_0 Bool) (top.res.inst_35_a_0 Bool) (top.res.inst_34_a_0 Bool) (top.res.inst_33_a_0 Bool) (top.res.inst_32_a_0 Bool) (top.res.inst_31_a_0 Bool) (top.res.inst_30_a_0 Bool) (top.res.inst_29_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.empty_section_a_0 (not (or (or top.usr.on_A_a_0 top.usr.on_B_a_0) top.usr.on_C_a_0))) (= top.impl.usr.grant_exit_a_0 top.res.abs_1_a_0) (= top.impl.usr.only_on_B_a_0 (and top.usr.on_B_a_0 (not (or top.usr.on_A_a_0 top.usr.on_C_a_0)))) (= top.impl.usr.grant_access_a_0 top.res.abs_0_a_0) (= top.res.abs_18_a_0 (or top.usr.on_A_a_0 top.usr.on_C_a_0)) (= top.res.abs_16_a_0 (not top.usr.on_B_a_0)) (= top.res.abs_13_a_0 (not top.usr.on_A_a_0)) (= top.impl.usr.do_AB_a_0 top.res.abs_2_a_0) (= top.impl.usr.do_BC_a_0 top.res.abs_3_a_0) (= top.res.abs_20_a_0 (and (and (and (and (and (not (and top.usr.ack_AB_a_0 top.usr.ack_BC_a_0)) top.res.abs_4_a_0) top.res.abs_5_a_0) top.impl.usr.empty_section_a_0) top.res.abs_15_a_0) top.res.abs_19_a_0)) (let ((X1 top.res.abs_21_a_0)) (let ((X2 top.res.abs_24_a_0)) (let ((X3 top.res.abs_23_a_0)) (let ((X4 (not (and top.impl.usr.do_AB_a_0 top.impl.usr.do_BC_a_0)))) (let ((X5 top.res.abs_22_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (and (and X5 X4) X3) X2))) (= top.res.abs_6_a_0 (not top.impl.usr.empty_section_a_0)) (= top.res.abs_8_a_0 (let ((X6 top.res.nondet_4)) X6)) (= top.res.abs_11_a_0 (let ((X6 top.res.nondet_5)) X6)) (__node_init_implies_0 top.impl.usr.grant_access_a_0 top.impl.usr.empty_section_a_0 top.res.abs_22_a_0 top.res.inst_86_a_0) (__node_init_UMS_0 top.usr.on_A_a_0 top.usr.on_B_a_0 top.usr.on_C_a_0 top.usr.ack_AB_a_0 top.usr.ack_BC_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_85_a_0) (__node_init_always_from_to_0 top.usr.ack_AB_a_0 top.impl.usr.grant_access_a_0 top.impl.usr.only_on_B_a_0 top.res.nondet_7 top.res.nondet_6 top.res.abs_23_a_0 top.res.inst_84_a_0 top.res.inst_83_a_0 top.res.inst_82_a_0 top.res.inst_81_a_0 top.res.inst_80_a_0 top.res.inst_79_a_0 top.res.inst_78_a_0 top.res.inst_77_a_0 top.res.inst_76_a_0 top.res.inst_75_a_0 top.res.inst_74_a_0 top.res.inst_73_a_0 top.res.inst_72_a_0 top.res.inst_71_a_0 top.res.inst_70_a_0 top.res.inst_69_a_0 top.res.inst_68_a_0 top.res.inst_67_a_0 top.res.inst_66_a_0) (__node_init_always_from_to_0 top.usr.ack_BC_a_0 top.impl.usr.grant_exit_a_0 top.impl.usr.empty_section_a_0 top.res.nondet_9 top.res.nondet_8 top.res.abs_24_a_0 top.res.inst_65_a_0 top.res.inst_64_a_0 top.res.inst_63_a_0 top.res.inst_62_a_0 top.res.inst_61_a_0 top.res.inst_60_a_0 top.res.inst_59_a_0 top.res.inst_58_a_0 top.res.inst_57_a_0 top.res.inst_56_a_0 top.res.inst_55_a_0 top.res.inst_54_a_0 top.res.inst_53_a_0 top.res.inst_52_a_0 top.res.inst_51_a_0 top.res.inst_50_a_0 top.res.inst_49_a_0 top.res.inst_48_a_0 top.res.inst_47_a_0) (__node_init_Sofar_0 top.res.abs_20_a_0 top.res.abs_21_a_0 top.res.inst_46_a_0) (__node_init_always_from_to_0 top.usr.ack_AB_a_0 top.usr.ack_AB_a_0 top.impl.usr.do_BC_a_0 top.res.nondet_1 top.res.nondet_0 top.res.abs_4_a_0 top.res.inst_45_a_0 top.res.inst_44_a_0 top.res.inst_43_a_0 top.res.inst_42_a_0 top.res.inst_41_a_0 top.res.inst_40_a_0 top.res.inst_39_a_0 top.res.inst_38_a_0 top.res.inst_37_a_0 top.res.inst_36_a_0 top.res.inst_35_a_0 top.res.inst_34_a_0 top.res.inst_33_a_0 top.res.inst_32_a_0 top.res.inst_31_a_0 top.res.inst_30_a_0 top.res.inst_29_a_0 top.res.inst_28_a_0 top.res.inst_27_a_0) (__node_init_always_from_to_0 top.usr.ack_BC_a_0 top.usr.ack_BC_a_0 top.impl.usr.do_AB_a_0 top.res.nondet_3 top.res.nondet_2 top.res.abs_5_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0) (__node_init_implies_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_7_a_0) (__node_init_edge_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_6_a_0) (__node_init_implies_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.inst_5_a_0) (__node_init_edge_0 top.usr.on_C_a_0 top.res.abs_10_a_0 top.res.inst_4_a_0) (__node_init_implies_0 top.res.abs_14_a_0 top.usr.on_B_a_0 top.res.abs_15_a_0 top.res.inst_3_a_0) (__node_init_edge_0 top.res.abs_13_a_0 top.res.abs_14_a_0 top.res.inst_2_a_0) (__node_init_implies_0 top.res.abs_17_a_0 top.res.abs_18_a_0 top.res.abs_19_a_0 top.res.inst_1_a_0) (__node_init_edge_0 top.res.abs_16_a_0 top.res.abs_17_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.on_A_a_1 Bool) (top.usr.on_B_a_1 Bool) (top.usr.on_C_a_1 Bool) (top.usr.ack_AB_a_1 Bool) (top.usr.ack_BC_a_1 Bool) (top.res.nondet_9 Bool) (top.res.nondet_8 Bool) (top.res.nondet_7 Bool) (top.res.nondet_6 Bool) (top.res.nondet_5 Bool) (top.res.nondet_4 Bool) (top.res.nondet_3 Bool) (top.res.nondet_2 Bool) (top.res.nondet_1 Bool) (top.res.nondet_0 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.grant_access_a_1 Bool) (top.impl.usr.grant_exit_a_1 Bool) (top.impl.usr.do_AB_a_1 Bool) (top.impl.usr.do_BC_a_1 Bool) (top.impl.usr.empty_section_a_1 Bool) (top.impl.usr.only_on_B_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.abs_12_a_1 Bool) (top.res.abs_13_a_1 Bool) (top.res.abs_14_a_1 Bool) (top.res.abs_15_a_1 Bool) (top.res.abs_16_a_1 Bool) (top.res.abs_17_a_1 Bool) (top.res.abs_18_a_1 Bool) (top.res.abs_19_a_1 Bool) (top.res.abs_20_a_1 Bool) (top.res.abs_21_a_1 Bool) (top.res.abs_22_a_1 Bool) (top.res.abs_23_a_1 Bool) (top.res.abs_24_a_1 Bool) (top.res.inst_86_a_1 Bool) (top.res.inst_85_a_1 Bool) (top.res.inst_84_a_1 Bool) (top.res.inst_83_a_1 Bool) (top.res.inst_82_a_1 Bool) (top.res.inst_81_a_1 Bool) (top.res.inst_80_a_1 Bool) (top.res.inst_79_a_1 Bool) (top.res.inst_78_a_1 Bool) (top.res.inst_77_a_1 Bool) (top.res.inst_76_a_1 Bool) (top.res.inst_75_a_1 Bool) (top.res.inst_74_a_1 Bool) (top.res.inst_73_a_1 Bool) (top.res.inst_72_a_1 Bool) (top.res.inst_71_a_1 Bool) (top.res.inst_70_a_1 Bool) (top.res.inst_69_a_1 Bool) (top.res.inst_68_a_1 Bool) (top.res.inst_67_a_1 Bool) (top.res.inst_66_a_1 Bool) (top.res.inst_65_a_1 Bool) (top.res.inst_64_a_1 Bool) (top.res.inst_63_a_1 Bool) (top.res.inst_62_a_1 Bool) (top.res.inst_61_a_1 Bool) (top.res.inst_60_a_1 Bool) (top.res.inst_59_a_1 Bool) (top.res.inst_58_a_1 Bool) (top.res.inst_57_a_1 Bool) (top.res.inst_56_a_1 Bool) (top.res.inst_55_a_1 Bool) (top.res.inst_54_a_1 Bool) (top.res.inst_53_a_1 Bool) (top.res.inst_52_a_1 Bool) (top.res.inst_51_a_1 Bool) (top.res.inst_50_a_1 Bool) (top.res.inst_49_a_1 Bool) (top.res.inst_48_a_1 Bool) (top.res.inst_47_a_1 Bool) (top.res.inst_46_a_1 Bool) (top.res.inst_45_a_1 Bool) (top.res.inst_44_a_1 Bool) (top.res.inst_43_a_1 Bool) (top.res.inst_42_a_1 Bool) (top.res.inst_41_a_1 Bool) (top.res.inst_40_a_1 Bool) (top.res.inst_39_a_1 Bool) (top.res.inst_38_a_1 Bool) (top.res.inst_37_a_1 Bool) (top.res.inst_36_a_1 Bool) (top.res.inst_35_a_1 Bool) (top.res.inst_34_a_1 Bool) (top.res.inst_33_a_1 Bool) (top.res.inst_32_a_1 Bool) (top.res.inst_31_a_1 Bool) (top.res.inst_30_a_1 Bool) (top.res.inst_29_a_1 Bool) (top.res.inst_28_a_1 Bool) (top.res.inst_27_a_1 Bool) (top.res.inst_26_a_1 Bool) (top.res.inst_25_a_1 Bool) (top.res.inst_24_a_1 Bool) (top.res.inst_23_a_1 Bool) (top.res.inst_22_a_1 Bool) (top.res.inst_21_a_1 Bool) (top.res.inst_20_a_1 Bool) (top.res.inst_19_a_1 Bool) (top.res.inst_18_a_1 Bool) (top.res.inst_17_a_1 Bool) (top.res.inst_16_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Bool) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Bool) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Bool) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.on_A_a_0 Bool) (top.usr.on_B_a_0 Bool) (top.usr.on_C_a_0 Bool) (top.usr.ack_AB_a_0 Bool) (top.usr.ack_BC_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.grant_access_a_0 Bool) (top.impl.usr.grant_exit_a_0 Bool) (top.impl.usr.do_AB_a_0 Bool) (top.impl.usr.do_BC_a_0 Bool) (top.impl.usr.empty_section_a_0 Bool) (top.impl.usr.only_on_B_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.abs_12_a_0 Bool) (top.res.abs_13_a_0 Bool) (top.res.abs_14_a_0 Bool) (top.res.abs_15_a_0 Bool) (top.res.abs_16_a_0 Bool) (top.res.abs_17_a_0 Bool) (top.res.abs_18_a_0 Bool) (top.res.abs_19_a_0 Bool) (top.res.abs_20_a_0 Bool) (top.res.abs_21_a_0 Bool) (top.res.abs_22_a_0 Bool) (top.res.abs_23_a_0 Bool) (top.res.abs_24_a_0 Bool) (top.res.inst_86_a_0 Bool) (top.res.inst_85_a_0 Bool) (top.res.inst_84_a_0 Bool) (top.res.inst_83_a_0 Bool) (top.res.inst_82_a_0 Bool) (top.res.inst_81_a_0 Bool) (top.res.inst_80_a_0 Bool) (top.res.inst_79_a_0 Bool) (top.res.inst_78_a_0 Bool) (top.res.inst_77_a_0 Bool) (top.res.inst_76_a_0 Bool) (top.res.inst_75_a_0 Bool) (top.res.inst_74_a_0 Bool) (top.res.inst_73_a_0 Bool) (top.res.inst_72_a_0 Bool) (top.res.inst_71_a_0 Bool) (top.res.inst_70_a_0 Bool) (top.res.inst_69_a_0 Bool) (top.res.inst_68_a_0 Bool) (top.res.inst_67_a_0 Bool) (top.res.inst_66_a_0 Bool) (top.res.inst_65_a_0 Bool) (top.res.inst_64_a_0 Bool) (top.res.inst_63_a_0 Bool) (top.res.inst_62_a_0 Bool) (top.res.inst_61_a_0 Bool) (top.res.inst_60_a_0 Bool) (top.res.inst_59_a_0 Bool) (top.res.inst_58_a_0 Bool) (top.res.inst_57_a_0 Bool) (top.res.inst_56_a_0 Bool) (top.res.inst_55_a_0 Bool) (top.res.inst_54_a_0 Bool) (top.res.inst_53_a_0 Bool) (top.res.inst_52_a_0 Bool) (top.res.inst_51_a_0 Bool) (top.res.inst_50_a_0 Bool) (top.res.inst_49_a_0 Bool) (top.res.inst_48_a_0 Bool) (top.res.inst_47_a_0 Bool) (top.res.inst_46_a_0 Bool) (top.res.inst_45_a_0 Bool) (top.res.inst_44_a_0 Bool) (top.res.inst_43_a_0 Bool) (top.res.inst_42_a_0 Bool) (top.res.inst_41_a_0 Bool) (top.res.inst_40_a_0 Bool) (top.res.inst_39_a_0 Bool) (top.res.inst_38_a_0 Bool) (top.res.inst_37_a_0 Bool) (top.res.inst_36_a_0 Bool) (top.res.inst_35_a_0 Bool) (top.res.inst_34_a_0 Bool) (top.res.inst_33_a_0 Bool) (top.res.inst_32_a_0 Bool) (top.res.inst_31_a_0 Bool) (top.res.inst_30_a_0 Bool) (top.res.inst_29_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.empty_section_a_1 (not (or (or top.usr.on_A_a_1 top.usr.on_B_a_1) top.usr.on_C_a_1))) (= top.impl.usr.grant_exit_a_1 top.res.abs_1_a_1) (= top.impl.usr.only_on_B_a_1 (and top.usr.on_B_a_1 (not (or top.usr.on_A_a_1 top.usr.on_C_a_1)))) (= top.impl.usr.grant_access_a_1 top.res.abs_0_a_1) (= top.res.abs_18_a_1 (or top.usr.on_A_a_1 top.usr.on_C_a_1)) (= top.res.abs_16_a_1 (not top.usr.on_B_a_1)) (= top.res.abs_13_a_1 (not top.usr.on_A_a_1)) (= top.res.abs_11_a_1 top.impl.usr.grant_exit_a_0) (= top.res.abs_8_a_1 top.impl.usr.grant_access_a_0) (= top.res.abs_6_a_1 (not top.impl.usr.empty_section_a_1)) (= top.impl.usr.do_AB_a_1 top.res.abs_2_a_1) (= top.impl.usr.do_BC_a_1 top.res.abs_3_a_1) (= top.res.abs_20_a_1 (and (and (and (and (and (and (not (and top.usr.ack_AB_a_1 top.usr.ack_BC_a_1)) top.res.abs_4_a_1) top.res.abs_5_a_1) top.res.abs_9_a_1) top.res.abs_12_a_1) top.res.abs_15_a_1) top.res.abs_19_a_1)) (let ((X1 top.res.abs_21_a_1)) (let ((X2 top.res.abs_24_a_1)) (let ((X3 top.res.abs_23_a_1)) (let ((X4 (not (and top.impl.usr.do_AB_a_1 top.impl.usr.do_BC_a_1)))) (let ((X5 top.res.abs_22_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (and (and X5 X4) X3) X2))) (__node_trans_implies_0 top.impl.usr.grant_access_a_1 top.impl.usr.empty_section_a_1 top.res.abs_22_a_1 top.res.inst_86_a_1 top.impl.usr.grant_access_a_0 top.impl.usr.empty_section_a_0 top.res.abs_22_a_0 top.res.inst_86_a_0) (__node_trans_UMS_0 top.usr.on_A_a_1 top.usr.on_B_a_1 top.usr.on_C_a_1 top.usr.ack_AB_a_1 top.usr.ack_BC_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_85_a_1 top.usr.on_A_a_0 top.usr.on_B_a_0 top.usr.on_C_a_0 top.usr.ack_AB_a_0 top.usr.ack_BC_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_85_a_0) (__node_trans_always_from_to_0 top.usr.ack_AB_a_1 top.impl.usr.grant_access_a_1 top.impl.usr.only_on_B_a_1 top.res.nondet_7 top.res.nondet_6 top.res.abs_23_a_1 top.res.inst_84_a_1 top.res.inst_83_a_1 top.res.inst_82_a_1 top.res.inst_81_a_1 top.res.inst_80_a_1 top.res.inst_79_a_1 top.res.inst_78_a_1 top.res.inst_77_a_1 top.res.inst_76_a_1 top.res.inst_75_a_1 top.res.inst_74_a_1 top.res.inst_73_a_1 top.res.inst_72_a_1 top.res.inst_71_a_1 top.res.inst_70_a_1 top.res.inst_69_a_1 top.res.inst_68_a_1 top.res.inst_67_a_1 top.res.inst_66_a_1 top.usr.ack_AB_a_0 top.impl.usr.grant_access_a_0 top.impl.usr.only_on_B_a_0 top.res.abs_23_a_0 top.res.inst_84_a_0 top.res.inst_83_a_0 top.res.inst_82_a_0 top.res.inst_81_a_0 top.res.inst_80_a_0 top.res.inst_79_a_0 top.res.inst_78_a_0 top.res.inst_77_a_0 top.res.inst_76_a_0 top.res.inst_75_a_0 top.res.inst_74_a_0 top.res.inst_73_a_0 top.res.inst_72_a_0 top.res.inst_71_a_0 top.res.inst_70_a_0 top.res.inst_69_a_0 top.res.inst_68_a_0 top.res.inst_67_a_0 top.res.inst_66_a_0) (__node_trans_always_from_to_0 top.usr.ack_BC_a_1 top.impl.usr.grant_exit_a_1 top.impl.usr.empty_section_a_1 top.res.nondet_9 top.res.nondet_8 top.res.abs_24_a_1 top.res.inst_65_a_1 top.res.inst_64_a_1 top.res.inst_63_a_1 top.res.inst_62_a_1 top.res.inst_61_a_1 top.res.inst_60_a_1 top.res.inst_59_a_1 top.res.inst_58_a_1 top.res.inst_57_a_1 top.res.inst_56_a_1 top.res.inst_55_a_1 top.res.inst_54_a_1 top.res.inst_53_a_1 top.res.inst_52_a_1 top.res.inst_51_a_1 top.res.inst_50_a_1 top.res.inst_49_a_1 top.res.inst_48_a_1 top.res.inst_47_a_1 top.usr.ack_BC_a_0 top.impl.usr.grant_exit_a_0 top.impl.usr.empty_section_a_0 top.res.abs_24_a_0 top.res.inst_65_a_0 top.res.inst_64_a_0 top.res.inst_63_a_0 top.res.inst_62_a_0 top.res.inst_61_a_0 top.res.inst_60_a_0 top.res.inst_59_a_0 top.res.inst_58_a_0 top.res.inst_57_a_0 top.res.inst_56_a_0 top.res.inst_55_a_0 top.res.inst_54_a_0 top.res.inst_53_a_0 top.res.inst_52_a_0 top.res.inst_51_a_0 top.res.inst_50_a_0 top.res.inst_49_a_0 top.res.inst_48_a_0 top.res.inst_47_a_0) (__node_trans_Sofar_0 top.res.abs_20_a_1 top.res.abs_21_a_1 top.res.inst_46_a_1 top.res.abs_20_a_0 top.res.abs_21_a_0 top.res.inst_46_a_0) (__node_trans_always_from_to_0 top.usr.ack_AB_a_1 top.usr.ack_AB_a_1 top.impl.usr.do_BC_a_1 top.res.nondet_1 top.res.nondet_0 top.res.abs_4_a_1 top.res.inst_45_a_1 top.res.inst_44_a_1 top.res.inst_43_a_1 top.res.inst_42_a_1 top.res.inst_41_a_1 top.res.inst_40_a_1 top.res.inst_39_a_1 top.res.inst_38_a_1 top.res.inst_37_a_1 top.res.inst_36_a_1 top.res.inst_35_a_1 top.res.inst_34_a_1 top.res.inst_33_a_1 top.res.inst_32_a_1 top.res.inst_31_a_1 top.res.inst_30_a_1 top.res.inst_29_a_1 top.res.inst_28_a_1 top.res.inst_27_a_1 top.usr.ack_AB_a_0 top.usr.ack_AB_a_0 top.impl.usr.do_BC_a_0 top.res.abs_4_a_0 top.res.inst_45_a_0 top.res.inst_44_a_0 top.res.inst_43_a_0 top.res.inst_42_a_0 top.res.inst_41_a_0 top.res.inst_40_a_0 top.res.inst_39_a_0 top.res.inst_38_a_0 top.res.inst_37_a_0 top.res.inst_36_a_0 top.res.inst_35_a_0 top.res.inst_34_a_0 top.res.inst_33_a_0 top.res.inst_32_a_0 top.res.inst_31_a_0 top.res.inst_30_a_0 top.res.inst_29_a_0 top.res.inst_28_a_0 top.res.inst_27_a_0) (__node_trans_always_from_to_0 top.usr.ack_BC_a_1 top.usr.ack_BC_a_1 top.impl.usr.do_AB_a_1 top.res.nondet_3 top.res.nondet_2 top.res.abs_5_a_1 top.res.inst_26_a_1 top.res.inst_25_a_1 top.res.inst_24_a_1 top.res.inst_23_a_1 top.res.inst_22_a_1 top.res.inst_21_a_1 top.res.inst_20_a_1 top.res.inst_19_a_1 top.res.inst_18_a_1 top.res.inst_17_a_1 top.res.inst_16_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.usr.ack_BC_a_0 top.usr.ack_BC_a_0 top.impl.usr.do_AB_a_0 top.res.abs_5_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0) (__node_trans_implies_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_7_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_7_a_0) (__node_trans_edge_0 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.inst_6_a_1 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_6_a_0) (__node_trans_implies_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.abs_12_a_1 top.res.inst_5_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.inst_5_a_0) (__node_trans_edge_0 top.usr.on_C_a_1 top.res.abs_10_a_1 top.res.inst_4_a_1 top.usr.on_C_a_0 top.res.abs_10_a_0 top.res.inst_4_a_0) (__node_trans_implies_0 top.res.abs_14_a_1 top.usr.on_B_a_1 top.res.abs_15_a_1 top.res.inst_3_a_1 top.res.abs_14_a_0 top.usr.on_B_a_0 top.res.abs_15_a_0 top.res.inst_3_a_0) (__node_trans_edge_0 top.res.abs_13_a_1 top.res.abs_14_a_1 top.res.inst_2_a_1 top.res.abs_13_a_0 top.res.abs_14_a_0 top.res.inst_2_a_0) (__node_trans_implies_0 top.res.abs_17_a_1 top.res.abs_18_a_1 top.res.abs_19_a_1 top.res.inst_1_a_1 top.res.abs_17_a_0 top.res.abs_18_a_0 top.res.abs_19_a_0 top.res.inst_1_a_0) (__node_trans_edge_0 top.res.abs_16_a_1 top.res.abs_17_a_1 top.res.inst_0_a_1 top.res.abs_16_a_0 top.res.abs_17_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.on_A Bool) (top.usr.on_B Bool) (top.usr.on_C Bool) (top.usr.ack_AB Bool) (top.usr.ack_BC Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.grant_access Bool) (top.impl.usr.grant_exit Bool) (top.impl.usr.do_AB Bool) (top.impl.usr.do_BC Bool) (top.impl.usr.empty_section Bool) (top.impl.usr.only_on_B Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.abs_13 Bool) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.abs_17 Bool) (top.res.abs_18 Bool) (top.res.abs_19 Bool) (top.res.abs_20 Bool) (top.res.abs_21 Bool) (top.res.abs_22 Bool) (top.res.abs_23 Bool) (top.res.abs_24 Bool) (top.res.inst_86 Bool) (top.res.inst_85 Bool) (top.res.inst_84 Bool) (top.res.inst_83 Bool) (top.res.inst_82 Bool) (top.res.inst_81 Bool) (top.res.inst_80 Bool) (top.res.inst_79 Bool) (top.res.inst_78 Bool) (top.res.inst_77 Bool) (top.res.inst_76 Bool) (top.res.inst_75 Bool) (top.res.inst_74 Bool) (top.res.inst_73 Bool) (top.res.inst_72 Bool) (top.res.inst_71 Bool) (top.res.inst_70 Bool) (top.res.inst_69 Bool) (top.res.inst_68 Bool) (top.res.inst_67 Bool) (top.res.inst_66 Bool) (top.res.inst_65 Bool) (top.res.inst_64 Bool) (top.res.inst_63 Bool) (top.res.inst_62 Bool) (top.res.inst_61 Bool) (top.res.inst_60 Bool) (top.res.inst_59 Bool) (top.res.inst_58 Bool) (top.res.inst_57 Bool) (top.res.inst_56 Bool) (top.res.inst_55 Bool) (top.res.inst_54 Bool) (top.res.inst_53 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Bool) (top.res.inst_50 Bool) (top.res.inst_49 Bool) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_9 Bool) +(declare-var top.res.nondet_8 Bool) +(declare-var top.res.nondet_7 Bool) +(declare-var top.res.nondet_6 Bool) +(declare-var top.res.nondet_5 Bool) +(declare-var top.res.nondet_4 Bool) +(declare-var top.res.nondet_3 Bool) +(declare-var top.res.nondet_2 Bool) +(declare-var top.res.nondet_1 Bool) +(declare-var top.res.nondet_0 Bool) +(define-fun init ((top.usr.on_A Bool) (top.usr.on_B Bool) (top.usr.on_C Bool) (top.usr.ack_AB Bool) (top.usr.ack_BC Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.grant_access Bool) (top.impl.usr.grant_exit Bool) (top.impl.usr.do_AB Bool) (top.impl.usr.do_BC Bool) (top.impl.usr.empty_section Bool) (top.impl.usr.only_on_B Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.abs_13 Bool) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.abs_17 Bool) (top.res.abs_18 Bool) (top.res.abs_19 Bool) (top.res.abs_20 Bool) (top.res.abs_21 Bool) (top.res.abs_22 Bool) (top.res.abs_23 Bool) (top.res.abs_24 Bool) (top.res.inst_86 Bool) (top.res.inst_85 Bool) (top.res.inst_84 Bool) (top.res.inst_83 Bool) (top.res.inst_82 Bool) (top.res.inst_81 Bool) (top.res.inst_80 Bool) (top.res.inst_79 Bool) (top.res.inst_78 Bool) (top.res.inst_77 Bool) (top.res.inst_76 Bool) (top.res.inst_75 Bool) (top.res.inst_74 Bool) (top.res.inst_73 Bool) (top.res.inst_72 Bool) (top.res.inst_71 Bool) (top.res.inst_70 Bool) (top.res.inst_69 Bool) (top.res.inst_68 Bool) (top.res.inst_67 Bool) (top.res.inst_66 Bool) (top.res.inst_65 Bool) (top.res.inst_64 Bool) (top.res.inst_63 Bool) (top.res.inst_62 Bool) (top.res.inst_61 Bool) (top.res.inst_60 Bool) (top.res.inst_59 Bool) (top.res.inst_58 Bool) (top.res.inst_57 Bool) (top.res.inst_56 Bool) (top.res.inst_55 Bool) (top.res.inst_54 Bool) (top.res.inst_53 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Bool) (top.res.inst_50 Bool) (top.res.inst_49 Bool) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.empty_section (not (or (or top.usr.on_A top.usr.on_B) top.usr.on_C))) (= top.impl.usr.grant_exit top.res.abs_1) (= top.impl.usr.only_on_B (and top.usr.on_B (not (or top.usr.on_A top.usr.on_C)))) (= top.impl.usr.grant_access top.res.abs_0) (= top.res.abs_18 (or top.usr.on_A top.usr.on_C)) (= top.res.abs_16 (not top.usr.on_B)) (= top.res.abs_13 (not top.usr.on_A)) (= top.impl.usr.do_AB top.res.abs_2) (= top.impl.usr.do_BC top.res.abs_3) (= top.res.abs_20 (and (and (and (and (and (not (and top.usr.ack_AB top.usr.ack_BC)) top.res.abs_4) top.res.abs_5) top.impl.usr.empty_section) top.res.abs_15) top.res.abs_19)) (let ((X1 top.res.abs_21)) (let ((X2 top.res.abs_24)) (let ((X3 top.res.abs_23)) (let ((X4 (not (and top.impl.usr.do_AB top.impl.usr.do_BC)))) (let ((X5 top.res.abs_22)) (and (= top.usr.OK (=> X1 (and (and (and X5 X4) X3) X2))) (= top.res.abs_6 (not top.impl.usr.empty_section)) (= top.res.abs_8 (let ((X6 top.res.nondet_4)) X6)) (= top.res.abs_11 (let ((X6 top.res.nondet_5)) X6)) (__node_init_implies_0 top.impl.usr.grant_access top.impl.usr.empty_section top.res.abs_22 top.res.inst_86) (__node_init_UMS_0 top.usr.on_A top.usr.on_B top.usr.on_C top.usr.ack_AB top.usr.ack_BC top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_85) (__node_init_always_from_to_0 top.usr.ack_AB top.impl.usr.grant_access top.impl.usr.only_on_B top.res.nondet_7 top.res.nondet_6 top.res.abs_23 top.res.inst_84 top.res.inst_83 top.res.inst_82 top.res.inst_81 top.res.inst_80 top.res.inst_79 top.res.inst_78 top.res.inst_77 top.res.inst_76 top.res.inst_75 top.res.inst_74 top.res.inst_73 top.res.inst_72 top.res.inst_71 top.res.inst_70 top.res.inst_69 top.res.inst_68 top.res.inst_67 top.res.inst_66) (__node_init_always_from_to_0 top.usr.ack_BC top.impl.usr.grant_exit top.impl.usr.empty_section top.res.nondet_9 top.res.nondet_8 top.res.abs_24 top.res.inst_65 top.res.inst_64 top.res.inst_63 top.res.inst_62 top.res.inst_61 top.res.inst_60 top.res.inst_59 top.res.inst_58 top.res.inst_57 top.res.inst_56 top.res.inst_55 top.res.inst_54 top.res.inst_53 top.res.inst_52 top.res.inst_51 top.res.inst_50 top.res.inst_49 top.res.inst_48 top.res.inst_47) (__node_init_Sofar_0 top.res.abs_20 top.res.abs_21 top.res.inst_46) (__node_init_always_from_to_0 top.usr.ack_AB top.usr.ack_AB top.impl.usr.do_BC top.res.nondet_1 top.res.nondet_0 top.res.abs_4 top.res.inst_45 top.res.inst_44 top.res.inst_43 top.res.inst_42 top.res.inst_41 top.res.inst_40 top.res.inst_39 top.res.inst_38 top.res.inst_37 top.res.inst_36 top.res.inst_35 top.res.inst_34 top.res.inst_33 top.res.inst_32 top.res.inst_31 top.res.inst_30 top.res.inst_29 top.res.inst_28 top.res.inst_27) (__node_init_always_from_to_0 top.usr.ack_BC top.usr.ack_BC top.impl.usr.do_AB top.res.nondet_3 top.res.nondet_2 top.res.abs_5 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8) (__node_init_implies_0 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_7) (__node_init_edge_0 top.res.abs_6 top.res.abs_7 top.res.inst_6) (__node_init_implies_0 top.res.abs_10 top.res.abs_11 top.res.abs_12 top.res.inst_5) (__node_init_edge_0 top.usr.on_C top.res.abs_10 top.res.inst_4) (__node_init_implies_0 top.res.abs_14 top.usr.on_B top.res.abs_15 top.res.inst_3) (__node_init_edge_0 top.res.abs_13 top.res.abs_14 top.res.inst_2) (__node_init_implies_0 top.res.abs_17 top.res.abs_18 top.res.abs_19 top.res.inst_1) (__node_init_edge_0 top.res.abs_16 top.res.abs_17 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.on_A Bool) (top.usr.on_B Bool) (top.usr.on_C Bool) (top.usr.ack_AB Bool) (top.usr.ack_BC Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.grant_access Bool) (top.impl.usr.grant_exit Bool) (top.impl.usr.do_AB Bool) (top.impl.usr.do_BC Bool) (top.impl.usr.empty_section Bool) (top.impl.usr.only_on_B Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.abs_13 Bool) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.abs_17 Bool) (top.res.abs_18 Bool) (top.res.abs_19 Bool) (top.res.abs_20 Bool) (top.res.abs_21 Bool) (top.res.abs_22 Bool) (top.res.abs_23 Bool) (top.res.abs_24 Bool) (top.res.inst_86 Bool) (top.res.inst_85 Bool) (top.res.inst_84 Bool) (top.res.inst_83 Bool) (top.res.inst_82 Bool) (top.res.inst_81 Bool) (top.res.inst_80 Bool) (top.res.inst_79 Bool) (top.res.inst_78 Bool) (top.res.inst_77 Bool) (top.res.inst_76 Bool) (top.res.inst_75 Bool) (top.res.inst_74 Bool) (top.res.inst_73 Bool) (top.res.inst_72 Bool) (top.res.inst_71 Bool) (top.res.inst_70 Bool) (top.res.inst_69 Bool) (top.res.inst_68 Bool) (top.res.inst_67 Bool) (top.res.inst_66 Bool) (top.res.inst_65 Bool) (top.res.inst_64 Bool) (top.res.inst_63 Bool) (top.res.inst_62 Bool) (top.res.inst_61 Bool) (top.res.inst_60 Bool) (top.res.inst_59 Bool) (top.res.inst_58 Bool) (top.res.inst_57 Bool) (top.res.inst_56 Bool) (top.res.inst_55 Bool) (top.res.inst_54 Bool) (top.res.inst_53 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Bool) (top.res.inst_50 Bool) (top.res.inst_49 Bool) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.on_A! Bool) (top.usr.on_B! Bool) (top.usr.on_C! Bool) (top.usr.ack_AB! Bool) (top.usr.ack_BC! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.grant_access! Bool) (top.impl.usr.grant_exit! Bool) (top.impl.usr.do_AB! Bool) (top.impl.usr.do_BC! Bool) (top.impl.usr.empty_section! Bool) (top.impl.usr.only_on_B! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.abs_12! Bool) (top.res.abs_13! Bool) (top.res.abs_14! Bool) (top.res.abs_15! Bool) (top.res.abs_16! Bool) (top.res.abs_17! Bool) (top.res.abs_18! Bool) (top.res.abs_19! Bool) (top.res.abs_20! Bool) (top.res.abs_21! Bool) (top.res.abs_22! Bool) (top.res.abs_23! Bool) (top.res.abs_24! Bool) (top.res.inst_86! Bool) (top.res.inst_85! Bool) (top.res.inst_84! Bool) (top.res.inst_83! Bool) (top.res.inst_82! Bool) (top.res.inst_81! Bool) (top.res.inst_80! Bool) (top.res.inst_79! Bool) (top.res.inst_78! Bool) (top.res.inst_77! Bool) (top.res.inst_76! Bool) (top.res.inst_75! Bool) (top.res.inst_74! Bool) (top.res.inst_73! Bool) (top.res.inst_72! Bool) (top.res.inst_71! Bool) (top.res.inst_70! Bool) (top.res.inst_69! Bool) (top.res.inst_68! Bool) (top.res.inst_67! Bool) (top.res.inst_66! Bool) (top.res.inst_65! Bool) (top.res.inst_64! Bool) (top.res.inst_63! Bool) (top.res.inst_62! Bool) (top.res.inst_61! Bool) (top.res.inst_60! Bool) (top.res.inst_59! Bool) (top.res.inst_58! Bool) (top.res.inst_57! Bool) (top.res.inst_56! Bool) (top.res.inst_55! Bool) (top.res.inst_54! Bool) (top.res.inst_53! Bool) (top.res.inst_52! Bool) (top.res.inst_51! Bool) (top.res.inst_50! Bool) (top.res.inst_49! Bool) (top.res.inst_48! Bool) (top.res.inst_47! Bool) (top.res.inst_46! Bool) (top.res.inst_45! Bool) (top.res.inst_44! Bool) (top.res.inst_43! Bool) (top.res.inst_42! Bool) (top.res.inst_41! Bool) (top.res.inst_40! Bool) (top.res.inst_39! Bool) (top.res.inst_38! Bool) (top.res.inst_37! Bool) (top.res.inst_36! Bool) (top.res.inst_35! Bool) (top.res.inst_34! Bool) (top.res.inst_33! Bool) (top.res.inst_32! Bool) (top.res.inst_31! Bool) (top.res.inst_30! Bool) (top.res.inst_29! Bool) (top.res.inst_28! Bool) (top.res.inst_27! Bool) (top.res.inst_26! Bool) (top.res.inst_25! Bool) (top.res.inst_24! Bool) (top.res.inst_23! Bool) (top.res.inst_22! Bool) (top.res.inst_21! Bool) (top.res.inst_20! Bool) (top.res.inst_19! Bool) (top.res.inst_18! Bool) (top.res.inst_17! Bool) (top.res.inst_16! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Bool) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Bool) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Bool) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.impl.usr.empty_section! (not (or (or top.usr.on_A! top.usr.on_B!) top.usr.on_C!))) (= top.impl.usr.grant_exit! top.res.abs_1!) (= top.impl.usr.only_on_B! (and top.usr.on_B! (not (or top.usr.on_A! top.usr.on_C!)))) (= top.impl.usr.grant_access! top.res.abs_0!) (= top.res.abs_18! (or top.usr.on_A! top.usr.on_C!)) (= top.res.abs_16! (not top.usr.on_B!)) (= top.res.abs_13! (not top.usr.on_A!)) (= top.res.abs_11! top.impl.usr.grant_exit) (= top.res.abs_8! top.impl.usr.grant_access) (= top.res.abs_6! (not top.impl.usr.empty_section!)) (= top.impl.usr.do_AB! top.res.abs_2!) (= top.impl.usr.do_BC! top.res.abs_3!) (= top.res.abs_20! (and (and (and (and (and (and (not (and top.usr.ack_AB! top.usr.ack_BC!)) top.res.abs_4!) top.res.abs_5!) top.res.abs_9!) top.res.abs_12!) top.res.abs_15!) top.res.abs_19!)) (let ((X1 top.res.abs_21!)) (let ((X2 top.res.abs_24!)) (let ((X3 top.res.abs_23!)) (let ((X4 (not (and top.impl.usr.do_AB! top.impl.usr.do_BC!)))) (let ((X5 top.res.abs_22!)) (and (= top.usr.OK! (=> X1 (and (and (and X5 X4) X3) X2))) (__node_trans_implies_0 top.impl.usr.grant_access! top.impl.usr.empty_section! top.res.abs_22! top.res.inst_86! top.impl.usr.grant_access top.impl.usr.empty_section top.res.abs_22 top.res.inst_86) (__node_trans_UMS_0 top.usr.on_A! top.usr.on_B! top.usr.on_C! top.usr.ack_AB! top.usr.ack_BC! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_85! top.usr.on_A top.usr.on_B top.usr.on_C top.usr.ack_AB top.usr.ack_BC top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_85) (__node_trans_always_from_to_0 top.usr.ack_AB! top.impl.usr.grant_access! top.impl.usr.only_on_B! top.res.nondet_7 top.res.nondet_6 top.res.abs_23! top.res.inst_84! top.res.inst_83! top.res.inst_82! top.res.inst_81! top.res.inst_80! top.res.inst_79! top.res.inst_78! top.res.inst_77! top.res.inst_76! top.res.inst_75! top.res.inst_74! top.res.inst_73! top.res.inst_72! top.res.inst_71! top.res.inst_70! top.res.inst_69! top.res.inst_68! top.res.inst_67! top.res.inst_66! top.usr.ack_AB top.impl.usr.grant_access top.impl.usr.only_on_B top.res.abs_23 top.res.inst_84 top.res.inst_83 top.res.inst_82 top.res.inst_81 top.res.inst_80 top.res.inst_79 top.res.inst_78 top.res.inst_77 top.res.inst_76 top.res.inst_75 top.res.inst_74 top.res.inst_73 top.res.inst_72 top.res.inst_71 top.res.inst_70 top.res.inst_69 top.res.inst_68 top.res.inst_67 top.res.inst_66) (__node_trans_always_from_to_0 top.usr.ack_BC! top.impl.usr.grant_exit! top.impl.usr.empty_section! top.res.nondet_9 top.res.nondet_8 top.res.abs_24! top.res.inst_65! top.res.inst_64! top.res.inst_63! top.res.inst_62! top.res.inst_61! top.res.inst_60! top.res.inst_59! top.res.inst_58! top.res.inst_57! top.res.inst_56! top.res.inst_55! top.res.inst_54! top.res.inst_53! top.res.inst_52! top.res.inst_51! top.res.inst_50! top.res.inst_49! top.res.inst_48! top.res.inst_47! top.usr.ack_BC top.impl.usr.grant_exit top.impl.usr.empty_section top.res.abs_24 top.res.inst_65 top.res.inst_64 top.res.inst_63 top.res.inst_62 top.res.inst_61 top.res.inst_60 top.res.inst_59 top.res.inst_58 top.res.inst_57 top.res.inst_56 top.res.inst_55 top.res.inst_54 top.res.inst_53 top.res.inst_52 top.res.inst_51 top.res.inst_50 top.res.inst_49 top.res.inst_48 top.res.inst_47) (__node_trans_Sofar_0 top.res.abs_20! top.res.abs_21! top.res.inst_46! top.res.abs_20 top.res.abs_21 top.res.inst_46) (__node_trans_always_from_to_0 top.usr.ack_AB! top.usr.ack_AB! top.impl.usr.do_BC! top.res.nondet_1 top.res.nondet_0 top.res.abs_4! top.res.inst_45! top.res.inst_44! top.res.inst_43! top.res.inst_42! top.res.inst_41! top.res.inst_40! top.res.inst_39! top.res.inst_38! top.res.inst_37! top.res.inst_36! top.res.inst_35! top.res.inst_34! top.res.inst_33! top.res.inst_32! top.res.inst_31! top.res.inst_30! top.res.inst_29! top.res.inst_28! top.res.inst_27! top.usr.ack_AB top.usr.ack_AB top.impl.usr.do_BC top.res.abs_4 top.res.inst_45 top.res.inst_44 top.res.inst_43 top.res.inst_42 top.res.inst_41 top.res.inst_40 top.res.inst_39 top.res.inst_38 top.res.inst_37 top.res.inst_36 top.res.inst_35 top.res.inst_34 top.res.inst_33 top.res.inst_32 top.res.inst_31 top.res.inst_30 top.res.inst_29 top.res.inst_28 top.res.inst_27) (__node_trans_always_from_to_0 top.usr.ack_BC! top.usr.ack_BC! top.impl.usr.do_AB! top.res.nondet_3 top.res.nondet_2 top.res.abs_5! top.res.inst_26! top.res.inst_25! top.res.inst_24! top.res.inst_23! top.res.inst_22! top.res.inst_21! top.res.inst_20! top.res.inst_19! top.res.inst_18! top.res.inst_17! top.res.inst_16! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.usr.ack_BC top.usr.ack_BC top.impl.usr.do_AB top.res.abs_5 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8) (__node_trans_implies_0 top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_7! top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_7) (__node_trans_edge_0 top.res.abs_6! top.res.abs_7! top.res.inst_6! top.res.abs_6 top.res.abs_7 top.res.inst_6) (__node_trans_implies_0 top.res.abs_10! top.res.abs_11! top.res.abs_12! top.res.inst_5! top.res.abs_10 top.res.abs_11 top.res.abs_12 top.res.inst_5) (__node_trans_edge_0 top.usr.on_C! top.res.abs_10! top.res.inst_4! top.usr.on_C top.res.abs_10 top.res.inst_4) (__node_trans_implies_0 top.res.abs_14! top.usr.on_B! top.res.abs_15! top.res.inst_3! top.res.abs_14 top.usr.on_B top.res.abs_15 top.res.inst_3) (__node_trans_edge_0 top.res.abs_13! top.res.abs_14! top.res.inst_2! top.res.abs_13 top.res.abs_14 top.res.inst_2) (__node_trans_implies_0 top.res.abs_17! top.res.abs_18! top.res.abs_19! top.res.inst_1! top.res.abs_17 top.res.abs_18 top.res.abs_19 top.res.inst_1) (__node_trans_edge_0 top.res.abs_16! top.res.abs_17! top.res.inst_0! top.res.abs_16 top.res.abs_17 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.on_A Bool) (top.usr.on_B Bool) (top.usr.on_C Bool) (top.usr.ack_AB Bool) (top.usr.ack_BC Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.grant_access Bool) (top.impl.usr.grant_exit Bool) (top.impl.usr.do_AB Bool) (top.impl.usr.do_BC Bool) (top.impl.usr.empty_section Bool) (top.impl.usr.only_on_B Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.abs_13 Bool) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.abs_17 Bool) (top.res.abs_18 Bool) (top.res.abs_19 Bool) (top.res.abs_20 Bool) (top.res.abs_21 Bool) (top.res.abs_22 Bool) (top.res.abs_23 Bool) (top.res.abs_24 Bool) (top.res.inst_86 Bool) (top.res.inst_85 Bool) (top.res.inst_84 Bool) (top.res.inst_83 Bool) (top.res.inst_82 Bool) (top.res.inst_81 Bool) (top.res.inst_80 Bool) (top.res.inst_79 Bool) (top.res.inst_78 Bool) (top.res.inst_77 Bool) (top.res.inst_76 Bool) (top.res.inst_75 Bool) (top.res.inst_74 Bool) (top.res.inst_73 Bool) (top.res.inst_72 Bool) (top.res.inst_71 Bool) (top.res.inst_70 Bool) (top.res.inst_69 Bool) (top.res.inst_68 Bool) (top.res.inst_67 Bool) (top.res.inst_66 Bool) (top.res.inst_65 Bool) (top.res.inst_64 Bool) (top.res.inst_63 Bool) (top.res.inst_62 Bool) (top.res.inst_61 Bool) (top.res.inst_60 Bool) (top.res.inst_59 Bool) (top.res.inst_58 Bool) (top.res.inst_57 Bool) (top.res.inst_56 Bool) (top.res.inst_55 Bool) (top.res.inst_54 Bool) (top.res.inst_53 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Bool) (top.res.inst_50 Bool) (top.res.inst_49 Bool) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/Lustre/ums_e8_1032.sl b/benchmarks/LIA/Lustre/ums_e8_1032.sl index 26bcb77..c9e0524 100644 --- a/benchmarks/LIA/Lustre/ums_e8_1032.sl +++ b/benchmarks/LIA/Lustre/ums_e8_1032.sl @@ -1,2788 +1,61 @@ (set-logic SAT) -(define-fun - __node_init_Sofar_0 ( - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0) -) - -(define-fun - __node_trans_Sofar_0 ( - (Sofar.usr.X_a_1 Bool) - (Sofar.usr.Sofar_a_1 Bool) - (Sofar.res.init_flag_a_1 Bool) - (Sofar.usr.X_a_0 Bool) - (Sofar.usr.Sofar_a_0 Bool) - (Sofar.res.init_flag_a_0 Bool) - ) Bool - - (and - (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) - (not Sofar.res.init_flag_a_1)) -) - -(define-fun - __node_init_implies_0 ( - (implies.usr.A_a_0 Bool) - (implies.usr.B_a_0 Bool) - (implies.usr.AimpliesB_a_0 Bool) - (implies.res.init_flag_a_0 Bool) - ) Bool - - (and - (= implies.usr.AimpliesB_a_0 (or (not implies.usr.A_a_0) implies.usr.B_a_0)) - implies.res.init_flag_a_0) -) - -(define-fun - __node_trans_implies_0 ( - (implies.usr.A_a_1 Bool) - (implies.usr.B_a_1 Bool) - (implies.usr.AimpliesB_a_1 Bool) - (implies.res.init_flag_a_1 Bool) - (implies.usr.A_a_0 Bool) - (implies.usr.B_a_0 Bool) - (implies.usr.AimpliesB_a_0 Bool) - (implies.res.init_flag_a_0 Bool) - ) Bool - - (and - (= implies.usr.AimpliesB_a_1 (or (not implies.usr.A_a_1) implies.usr.B_a_1)) - (not implies.res.init_flag_a_1)) -) - -(define-fun - __node_init_edge_0 ( - (edge.usr.X_a_0 Bool) - (edge.usr.Y_a_0 Bool) - (edge.res.init_flag_a_0 Bool) - ) Bool - - (and (= edge.usr.Y_a_0 edge.usr.X_a_0) edge.res.init_flag_a_0) -) - -(define-fun - __node_trans_edge_0 ( - (edge.usr.X_a_1 Bool) - (edge.usr.Y_a_1 Bool) - (edge.res.init_flag_a_1 Bool) - (edge.usr.X_a_0 Bool) - (edge.usr.Y_a_0 Bool) - (edge.res.init_flag_a_0 Bool) - ) Bool - - (and - (= edge.usr.Y_a_1 (and edge.usr.X_a_1 (not edge.usr.X_a_0))) - (not edge.res.init_flag_a_1)) -) - -(define-fun - __node_init_after_0 ( - (after.usr.A_a_0 Bool) - (after.usr.afterA_a_0 Bool) - (after.res.init_flag_a_0 Bool) - (after.res.abs_0_a_0 Bool) - ) Bool - - (and - (= after.usr.afterA_a_0 false) - (= after.res.abs_0_a_0 (and after.usr.A_a_0 after.usr.afterA_a_0)) - after.res.init_flag_a_0) -) - -(define-fun - __node_trans_after_0 ( - (after.usr.A_a_1 Bool) - (after.usr.afterA_a_1 Bool) - (after.res.init_flag_a_1 Bool) - (after.res.abs_0_a_1 Bool) - (after.usr.A_a_0 Bool) - (after.usr.afterA_a_0 Bool) - (after.res.init_flag_a_0 Bool) - (after.res.abs_0_a_0 Bool) - ) Bool - - (and - (= after.usr.afterA_a_1 after.res.abs_0_a_0) - (= after.res.abs_0_a_1 (and after.usr.A_a_1 after.usr.afterA_a_1)) - (not after.res.init_flag_a_1)) -) - -(define-fun - __node_init_once_since_0 ( - (once_since.usr.C_a_0 Bool) - (once_since.usr.A_a_0 Bool) - (once_since.res.nondet_0 Bool) - (once_since.usr.onceCsinceA_a_0 Bool) - (once_since.res.init_flag_a_0 Bool) - (once_since.res.abs_0_a_0 Bool) - (once_since.res.abs_1_a_0 Bool) - (once_since.res.inst_1_a_0 Bool) - (once_since.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - once_since.usr.onceCsinceA_a_0 - (let - ((X1 Bool once_since.res.nondet_0)) - (ite - once_since.usr.A_a_0 - once_since.usr.C_a_0 - (ite once_since.res.abs_1_a_0 (or once_since.usr.C_a_0 X1) true)))) - (= once_since.res.abs_0_a_0 once_since.usr.A_a_0) - (__node_init_after_0 - once_since.res.abs_0_a_0 - once_since.res.abs_1_a_0 - once_since.res.inst_1_a_0 - once_since.res.inst_0_a_0) - once_since.res.init_flag_a_0) -) - -(define-fun - __node_trans_once_since_0 ( - (once_since.usr.C_a_1 Bool) - (once_since.usr.A_a_1 Bool) - (once_since.res.nondet_0 Bool) - (once_since.usr.onceCsinceA_a_1 Bool) - (once_since.res.init_flag_a_1 Bool) - (once_since.res.abs_0_a_1 Bool) - (once_since.res.abs_1_a_1 Bool) - (once_since.res.inst_1_a_1 Bool) - (once_since.res.inst_0_a_1 Bool) - (once_since.usr.C_a_0 Bool) - (once_since.usr.A_a_0 Bool) - (once_since.usr.onceCsinceA_a_0 Bool) - (once_since.res.init_flag_a_0 Bool) - (once_since.res.abs_0_a_0 Bool) - (once_since.res.abs_1_a_0 Bool) - (once_since.res.inst_1_a_0 Bool) - (once_since.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - once_since.usr.onceCsinceA_a_1 - (ite - once_since.usr.A_a_1 - once_since.usr.C_a_1 - (ite - once_since.res.abs_1_a_1 - (or once_since.usr.C_a_1 once_since.usr.onceCsinceA_a_0) - true))) - (= once_since.res.abs_0_a_1 once_since.usr.A_a_1) - (__node_trans_after_0 - once_since.res.abs_0_a_1 - once_since.res.abs_1_a_1 - once_since.res.inst_1_a_1 - once_since.res.inst_0_a_1 - once_since.res.abs_0_a_0 - once_since.res.abs_1_a_0 - once_since.res.inst_1_a_0 - once_since.res.inst_0_a_0) - (not once_since.res.init_flag_a_1)) -) - -(define-fun - __node_init_always_since_0 ( - (always_since.usr.B_a_0 Bool) - (always_since.usr.A_a_0 Bool) - (always_since.res.nondet_0 Bool) - (always_since.usr.alwaysBsinceA_a_0 Bool) - (always_since.res.init_flag_a_0 Bool) - (always_since.res.abs_0_a_0 Bool) - (always_since.res.abs_1_a_0 Bool) - (always_since.res.inst_1_a_0 Bool) - (always_since.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - always_since.usr.alwaysBsinceA_a_0 - (let - ((X1 Bool always_since.res.nondet_0)) - (ite - always_since.usr.A_a_0 - always_since.usr.B_a_0 - (ite always_since.res.abs_1_a_0 (and always_since.usr.B_a_0 X1) true)))) - (= always_since.res.abs_0_a_0 always_since.usr.A_a_0) - (__node_init_after_0 - always_since.res.abs_0_a_0 - always_since.res.abs_1_a_0 - always_since.res.inst_1_a_0 - always_since.res.inst_0_a_0) - always_since.res.init_flag_a_0) -) - -(define-fun - __node_trans_always_since_0 ( - (always_since.usr.B_a_1 Bool) - (always_since.usr.A_a_1 Bool) - (always_since.res.nondet_0 Bool) - (always_since.usr.alwaysBsinceA_a_1 Bool) - (always_since.res.init_flag_a_1 Bool) - (always_since.res.abs_0_a_1 Bool) - (always_since.res.abs_1_a_1 Bool) - (always_since.res.inst_1_a_1 Bool) - (always_since.res.inst_0_a_1 Bool) - (always_since.usr.B_a_0 Bool) - (always_since.usr.A_a_0 Bool) - (always_since.usr.alwaysBsinceA_a_0 Bool) - (always_since.res.init_flag_a_0 Bool) - (always_since.res.abs_0_a_0 Bool) - (always_since.res.abs_1_a_0 Bool) - (always_since.res.inst_1_a_0 Bool) - (always_since.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - always_since.usr.alwaysBsinceA_a_1 - (ite - always_since.usr.A_a_1 - always_since.usr.B_a_1 - (ite - always_since.res.abs_1_a_1 - (and always_since.usr.B_a_1 always_since.usr.alwaysBsinceA_a_0) - true))) - (= always_since.res.abs_0_a_1 always_since.usr.A_a_1) - (__node_trans_after_0 - always_since.res.abs_0_a_1 - always_since.res.abs_1_a_1 - always_since.res.inst_1_a_1 - always_since.res.inst_0_a_1 - always_since.res.abs_0_a_0 - always_since.res.abs_1_a_0 - always_since.res.inst_1_a_0 - always_since.res.inst_0_a_0) - (not always_since.res.init_flag_a_1)) -) - -(define-fun - __node_init_always_from_to_0 ( - (always_from_to.usr.B_a_0 Bool) - (always_from_to.usr.A_a_0 Bool) - (always_from_to.usr.C_a_0 Bool) - (always_from_to.res.nondet_1 Bool) - (always_from_to.res.nondet_0 Bool) - (always_from_to.usr.X_a_0 Bool) - (always_from_to.res.init_flag_a_0 Bool) - (always_from_to.res.abs_0_a_0 Bool) - (always_from_to.res.abs_1_a_0 Bool) - (always_from_to.res.abs_2_a_0 Bool) - (always_from_to.res.abs_3_a_0 Bool) - (always_from_to.res.abs_4_a_0 Bool) - (always_from_to.res.inst_12_a_0 Bool) - (always_from_to.res.inst_11_a_0 Bool) - (always_from_to.res.inst_10_a_0 Bool) - (always_from_to.res.inst_9_a_0 Bool) - (always_from_to.res.inst_8_a_0 Bool) - (always_from_to.res.inst_7_a_0 Bool) - (always_from_to.res.inst_6_a_0 Bool) - (always_from_to.res.inst_5_a_0 Bool) - (always_from_to.res.inst_4_a_0 Bool) - (always_from_to.res.inst_3_a_0 Bool) - (always_from_to.res.inst_2_a_0 Bool) - (always_from_to.res.inst_1_a_0 Bool) - (always_from_to.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - always_from_to.res.abs_3_a_0 - (or always_from_to.res.abs_1_a_0 always_from_to.res.abs_2_a_0)) - (= always_from_to.usr.X_a_0 always_from_to.res.abs_4_a_0) - (__node_init_implies_0 - always_from_to.res.abs_0_a_0 - always_from_to.res.abs_3_a_0 - always_from_to.res.abs_4_a_0 - always_from_to.res.inst_12_a_0) - (__node_init_after_0 - always_from_to.usr.A_a_0 - always_from_to.res.abs_0_a_0 - always_from_to.res.inst_11_a_0 - always_from_to.res.inst_10_a_0) - (__node_init_always_since_0 - always_from_to.usr.B_a_0 - always_from_to.usr.A_a_0 - always_from_to.res.nondet_0 - always_from_to.res.abs_1_a_0 - always_from_to.res.inst_9_a_0 - always_from_to.res.inst_8_a_0 - always_from_to.res.inst_7_a_0 - always_from_to.res.inst_6_a_0 - always_from_to.res.inst_5_a_0) - (__node_init_once_since_0 - always_from_to.usr.C_a_0 - always_from_to.usr.A_a_0 - always_from_to.res.nondet_1 - always_from_to.res.abs_2_a_0 - always_from_to.res.inst_4_a_0 - always_from_to.res.inst_3_a_0 - always_from_to.res.inst_2_a_0 - always_from_to.res.inst_1_a_0 - always_from_to.res.inst_0_a_0) - always_from_to.res.init_flag_a_0) -) - -(define-fun - __node_trans_always_from_to_0 ( - (always_from_to.usr.B_a_1 Bool) - (always_from_to.usr.A_a_1 Bool) - (always_from_to.usr.C_a_1 Bool) - (always_from_to.res.nondet_1 Bool) - (always_from_to.res.nondet_0 Bool) - (always_from_to.usr.X_a_1 Bool) - (always_from_to.res.init_flag_a_1 Bool) - (always_from_to.res.abs_0_a_1 Bool) - (always_from_to.res.abs_1_a_1 Bool) - (always_from_to.res.abs_2_a_1 Bool) - (always_from_to.res.abs_3_a_1 Bool) - (always_from_to.res.abs_4_a_1 Bool) - (always_from_to.res.inst_12_a_1 Bool) - (always_from_to.res.inst_11_a_1 Bool) - (always_from_to.res.inst_10_a_1 Bool) - (always_from_to.res.inst_9_a_1 Bool) - (always_from_to.res.inst_8_a_1 Bool) - (always_from_to.res.inst_7_a_1 Bool) - (always_from_to.res.inst_6_a_1 Bool) - (always_from_to.res.inst_5_a_1 Bool) - (always_from_to.res.inst_4_a_1 Bool) - (always_from_to.res.inst_3_a_1 Bool) - (always_from_to.res.inst_2_a_1 Bool) - (always_from_to.res.inst_1_a_1 Bool) - (always_from_to.res.inst_0_a_1 Bool) - (always_from_to.usr.B_a_0 Bool) - (always_from_to.usr.A_a_0 Bool) - (always_from_to.usr.C_a_0 Bool) - (always_from_to.usr.X_a_0 Bool) - (always_from_to.res.init_flag_a_0 Bool) - (always_from_to.res.abs_0_a_0 Bool) - (always_from_to.res.abs_1_a_0 Bool) - (always_from_to.res.abs_2_a_0 Bool) - (always_from_to.res.abs_3_a_0 Bool) - (always_from_to.res.abs_4_a_0 Bool) - (always_from_to.res.inst_12_a_0 Bool) - (always_from_to.res.inst_11_a_0 Bool) - (always_from_to.res.inst_10_a_0 Bool) - (always_from_to.res.inst_9_a_0 Bool) - (always_from_to.res.inst_8_a_0 Bool) - (always_from_to.res.inst_7_a_0 Bool) - (always_from_to.res.inst_6_a_0 Bool) - (always_from_to.res.inst_5_a_0 Bool) - (always_from_to.res.inst_4_a_0 Bool) - (always_from_to.res.inst_3_a_0 Bool) - (always_from_to.res.inst_2_a_0 Bool) - (always_from_to.res.inst_1_a_0 Bool) - (always_from_to.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - always_from_to.res.abs_3_a_1 - (or always_from_to.res.abs_1_a_1 always_from_to.res.abs_2_a_1)) - (= always_from_to.usr.X_a_1 always_from_to.res.abs_4_a_1) - (__node_trans_implies_0 - always_from_to.res.abs_0_a_1 - always_from_to.res.abs_3_a_1 - always_from_to.res.abs_4_a_1 - always_from_to.res.inst_12_a_1 - always_from_to.res.abs_0_a_0 - always_from_to.res.abs_3_a_0 - always_from_to.res.abs_4_a_0 - always_from_to.res.inst_12_a_0) - (__node_trans_after_0 - always_from_to.usr.A_a_1 - always_from_to.res.abs_0_a_1 - always_from_to.res.inst_11_a_1 - always_from_to.res.inst_10_a_1 - always_from_to.usr.A_a_0 - always_from_to.res.abs_0_a_0 - always_from_to.res.inst_11_a_0 - always_from_to.res.inst_10_a_0) - (__node_trans_always_since_0 - always_from_to.usr.B_a_1 - always_from_to.usr.A_a_1 - always_from_to.res.nondet_0 - always_from_to.res.abs_1_a_1 - always_from_to.res.inst_9_a_1 - always_from_to.res.inst_8_a_1 - always_from_to.res.inst_7_a_1 - always_from_to.res.inst_6_a_1 - always_from_to.res.inst_5_a_1 - always_from_to.usr.B_a_0 - always_from_to.usr.A_a_0 - always_from_to.res.abs_1_a_0 - always_from_to.res.inst_9_a_0 - always_from_to.res.inst_8_a_0 - always_from_to.res.inst_7_a_0 - always_from_to.res.inst_6_a_0 - always_from_to.res.inst_5_a_0) - (__node_trans_once_since_0 - always_from_to.usr.C_a_1 - always_from_to.usr.A_a_1 - always_from_to.res.nondet_1 - always_from_to.res.abs_2_a_1 - always_from_to.res.inst_4_a_1 - always_from_to.res.inst_3_a_1 - always_from_to.res.inst_2_a_1 - always_from_to.res.inst_1_a_1 - always_from_to.res.inst_0_a_1 - always_from_to.usr.C_a_0 - always_from_to.usr.A_a_0 - always_from_to.res.abs_2_a_0 - always_from_to.res.inst_4_a_0 - always_from_to.res.inst_3_a_0 - always_from_to.res.inst_2_a_0 - always_from_to.res.inst_1_a_0 - always_from_to.res.inst_0_a_0) - (not always_from_to.res.init_flag_a_1)) -) - -(define-fun - __node_init_UMS_0 ( - (UMS.usr.on_A_a_0 Bool) - (UMS.usr.on_B_a_0 Bool) - (UMS.usr.on_C_a_0 Bool) - (UMS.usr.ack_AB_a_0 Bool) - (UMS.usr.ack_BC_a_0 Bool) - (UMS.usr.grant_access_a_0 Bool) - (UMS.usr.grant_exit_a_0 Bool) - (UMS.usr.do_AB_a_0 Bool) - (UMS.usr.do_BC_a_0 Bool) - (UMS.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (not (or (or UMS.usr.on_A_a_0 UMS.usr.on_B_a_0) UMS.usr.on_C_a_0)))) - (and - (= UMS.usr.grant_access_a_0 (and X1 UMS.usr.ack_AB_a_0)) - (let - ((X2 Bool (and UMS.usr.on_B_a_0 (not (or UMS.usr.on_A_a_0 UMS.usr.on_C_a_0))))) - (and - (= UMS.usr.grant_exit_a_0 (and X2 UMS.usr.ack_BC_a_0)) - (= UMS.usr.do_AB_a_0 (and (not UMS.usr.ack_AB_a_0) X1)) - (= UMS.usr.do_BC_a_0 (and (not UMS.usr.ack_BC_a_0) X2)) - UMS.res.init_flag_a_0)))) -) - -(define-fun - __node_trans_UMS_0 ( - (UMS.usr.on_A_a_1 Bool) - (UMS.usr.on_B_a_1 Bool) - (UMS.usr.on_C_a_1 Bool) - (UMS.usr.ack_AB_a_1 Bool) - (UMS.usr.ack_BC_a_1 Bool) - (UMS.usr.grant_access_a_1 Bool) - (UMS.usr.grant_exit_a_1 Bool) - (UMS.usr.do_AB_a_1 Bool) - (UMS.usr.do_BC_a_1 Bool) - (UMS.res.init_flag_a_1 Bool) - (UMS.usr.on_A_a_0 Bool) - (UMS.usr.on_B_a_0 Bool) - (UMS.usr.on_C_a_0 Bool) - (UMS.usr.ack_AB_a_0 Bool) - (UMS.usr.ack_BC_a_0 Bool) - (UMS.usr.grant_access_a_0 Bool) - (UMS.usr.grant_exit_a_0 Bool) - (UMS.usr.do_AB_a_0 Bool) - (UMS.usr.do_BC_a_0 Bool) - (UMS.res.init_flag_a_0 Bool) - ) Bool - - (let - ((X1 Bool (not (or (or UMS.usr.on_A_a_1 UMS.usr.on_B_a_1) UMS.usr.on_C_a_1)))) - (and - (= UMS.usr.grant_access_a_1 (and X1 UMS.usr.ack_AB_a_1)) - (let - ((X2 Bool (and UMS.usr.on_B_a_1 (not (or UMS.usr.on_A_a_1 UMS.usr.on_C_a_1))))) - (and - (= UMS.usr.grant_exit_a_1 (and X2 UMS.usr.ack_BC_a_1)) - (= UMS.usr.do_AB_a_1 (and (not UMS.usr.ack_AB_a_1) X1)) - (= UMS.usr.do_BC_a_1 (and (not UMS.usr.ack_BC_a_1) X2)) - (not UMS.res.init_flag_a_1))))) -) - -(define-fun - __node_init_top_0 ( - (top.usr.on_A_a_0 Bool) - (top.usr.on_B_a_0 Bool) - (top.usr.on_C_a_0 Bool) - (top.usr.ack_AB_a_0 Bool) - (top.usr.ack_BC_a_0 Bool) - (top.res.nondet_9 Bool) - (top.res.nondet_8 Bool) - (top.res.nondet_7 Bool) - (top.res.nondet_6 Bool) - (top.res.nondet_5 Bool) - (top.res.nondet_4 Bool) - (top.res.nondet_3 Bool) - (top.res.nondet_2 Bool) - (top.res.nondet_1 Bool) - (top.res.nondet_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.grant_access_a_0 Bool) - (top.impl.usr.grant_exit_a_0 Bool) - (top.impl.usr.do_AB_a_0 Bool) - (top.impl.usr.do_BC_a_0 Bool) - (top.impl.usr.empty_section_a_0 Bool) - (top.impl.usr.only_on_B_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.abs_12_a_0 Bool) - (top.res.abs_13_a_0 Bool) - (top.res.abs_14_a_0 Bool) - (top.res.abs_15_a_0 Bool) - (top.res.abs_16_a_0 Bool) - (top.res.abs_17_a_0 Bool) - (top.res.abs_18_a_0 Bool) - (top.res.abs_19_a_0 Bool) - (top.res.abs_20_a_0 Bool) - (top.res.abs_21_a_0 Bool) - (top.res.abs_22_a_0 Bool) - (top.res.abs_23_a_0 Bool) - (top.res.abs_24_a_0 Bool) - (top.res.inst_86_a_0 Bool) - (top.res.inst_85_a_0 Bool) - (top.res.inst_84_a_0 Bool) - (top.res.inst_83_a_0 Bool) - (top.res.inst_82_a_0 Bool) - (top.res.inst_81_a_0 Bool) - (top.res.inst_80_a_0 Bool) - (top.res.inst_79_a_0 Bool) - (top.res.inst_78_a_0 Bool) - (top.res.inst_77_a_0 Bool) - (top.res.inst_76_a_0 Bool) - (top.res.inst_75_a_0 Bool) - (top.res.inst_74_a_0 Bool) - (top.res.inst_73_a_0 Bool) - (top.res.inst_72_a_0 Bool) - (top.res.inst_71_a_0 Bool) - (top.res.inst_70_a_0 Bool) - (top.res.inst_69_a_0 Bool) - (top.res.inst_68_a_0 Bool) - (top.res.inst_67_a_0 Bool) - (top.res.inst_66_a_0 Bool) - (top.res.inst_65_a_0 Bool) - (top.res.inst_64_a_0 Bool) - (top.res.inst_63_a_0 Bool) - (top.res.inst_62_a_0 Bool) - (top.res.inst_61_a_0 Bool) - (top.res.inst_60_a_0 Bool) - (top.res.inst_59_a_0 Bool) - (top.res.inst_58_a_0 Bool) - (top.res.inst_57_a_0 Bool) - (top.res.inst_56_a_0 Bool) - (top.res.inst_55_a_0 Bool) - (top.res.inst_54_a_0 Bool) - (top.res.inst_53_a_0 Bool) - (top.res.inst_52_a_0 Bool) - (top.res.inst_51_a_0 Bool) - (top.res.inst_50_a_0 Bool) - (top.res.inst_49_a_0 Bool) - (top.res.inst_48_a_0 Bool) - (top.res.inst_47_a_0 Bool) - (top.res.inst_46_a_0 Bool) - (top.res.inst_45_a_0 Bool) - (top.res.inst_44_a_0 Bool) - (top.res.inst_43_a_0 Bool) - (top.res.inst_42_a_0 Bool) - (top.res.inst_41_a_0 Bool) - (top.res.inst_40_a_0 Bool) - (top.res.inst_39_a_0 Bool) - (top.res.inst_38_a_0 Bool) - (top.res.inst_37_a_0 Bool) - (top.res.inst_36_a_0 Bool) - (top.res.inst_35_a_0 Bool) - (top.res.inst_34_a_0 Bool) - (top.res.inst_33_a_0 Bool) - (top.res.inst_32_a_0 Bool) - (top.res.inst_31_a_0 Bool) - (top.res.inst_30_a_0 Bool) - (top.res.inst_29_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Bool) - (top.res.inst_23_a_0 Bool) - (top.res.inst_22_a_0 Bool) - (top.res.inst_21_a_0 Bool) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.impl.usr.empty_section_a_0 - (not (or (or top.usr.on_A_a_0 top.usr.on_B_a_0) top.usr.on_C_a_0))) - (= top.impl.usr.grant_exit_a_0 top.res.abs_1_a_0) - (= - top.impl.usr.only_on_B_a_0 - (and top.usr.on_B_a_0 (not (or top.usr.on_A_a_0 top.usr.on_C_a_0)))) - (= top.impl.usr.grant_access_a_0 top.res.abs_0_a_0) - (= top.res.abs_18_a_0 (or top.usr.on_A_a_0 top.usr.on_C_a_0)) - (= top.res.abs_16_a_0 (not top.usr.on_B_a_0)) - (= top.res.abs_13_a_0 (not top.usr.on_A_a_0)) - (= top.impl.usr.do_AB_a_0 top.res.abs_2_a_0) - (= top.impl.usr.do_BC_a_0 top.res.abs_3_a_0) - (= - top.res.abs_20_a_0 - (and - (and - (and - (and - (and (not (and top.usr.ack_AB_a_0 top.usr.ack_BC_a_0)) top.res.abs_4_a_0) - top.res.abs_5_a_0) - top.impl.usr.empty_section_a_0) - top.res.abs_15_a_0) - top.res.abs_19_a_0)) - (let - ((X1 Bool top.res.abs_21_a_0)) - (let - ((X2 Bool top.res.abs_24_a_0)) - (let - ((X3 Bool top.res.abs_23_a_0)) - (let - ((X4 Bool (not (and top.impl.usr.do_AB_a_0 top.impl.usr.do_BC_a_0)))) - (let - ((X5 Bool top.res.abs_22_a_0)) - (and - (= top.usr.OK_a_0 (=> X1 (and (and (and X5 X4) X3) X2))) - (= top.res.abs_6_a_0 (not top.impl.usr.empty_section_a_0)) - (= top.res.abs_8_a_0 (let ((X6 Bool top.res.nondet_4)) X6)) - (= top.res.abs_11_a_0 (let ((X6 Bool top.res.nondet_5)) X6)) - (__node_init_implies_0 - top.impl.usr.grant_access_a_0 - top.impl.usr.empty_section_a_0 - top.res.abs_22_a_0 - top.res.inst_86_a_0) - (__node_init_UMS_0 - top.usr.on_A_a_0 - top.usr.on_B_a_0 - top.usr.on_C_a_0 - top.usr.ack_AB_a_0 - top.usr.ack_BC_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_85_a_0) - (__node_init_always_from_to_0 - top.usr.ack_AB_a_0 - top.impl.usr.grant_access_a_0 - top.impl.usr.only_on_B_a_0 - top.res.nondet_7 - top.res.nondet_6 - top.res.abs_23_a_0 - top.res.inst_84_a_0 - top.res.inst_83_a_0 - top.res.inst_82_a_0 - top.res.inst_81_a_0 - top.res.inst_80_a_0 - top.res.inst_79_a_0 - top.res.inst_78_a_0 - top.res.inst_77_a_0 - top.res.inst_76_a_0 - top.res.inst_75_a_0 - top.res.inst_74_a_0 - top.res.inst_73_a_0 - top.res.inst_72_a_0 - top.res.inst_71_a_0 - top.res.inst_70_a_0 - top.res.inst_69_a_0 - top.res.inst_68_a_0 - top.res.inst_67_a_0 - top.res.inst_66_a_0) - (__node_init_always_from_to_0 - top.usr.ack_BC_a_0 - top.impl.usr.grant_exit_a_0 - top.impl.usr.empty_section_a_0 - top.res.nondet_9 - top.res.nondet_8 - top.res.abs_24_a_0 - top.res.inst_65_a_0 - top.res.inst_64_a_0 - top.res.inst_63_a_0 - top.res.inst_62_a_0 - top.res.inst_61_a_0 - top.res.inst_60_a_0 - top.res.inst_59_a_0 - top.res.inst_58_a_0 - top.res.inst_57_a_0 - top.res.inst_56_a_0 - top.res.inst_55_a_0 - top.res.inst_54_a_0 - top.res.inst_53_a_0 - top.res.inst_52_a_0 - top.res.inst_51_a_0 - top.res.inst_50_a_0 - top.res.inst_49_a_0 - top.res.inst_48_a_0 - top.res.inst_47_a_0) - (__node_init_Sofar_0 - top.res.abs_20_a_0 - top.res.abs_21_a_0 - top.res.inst_46_a_0) - (__node_init_always_from_to_0 - top.usr.ack_AB_a_0 - top.usr.ack_AB_a_0 - top.impl.usr.do_BC_a_0 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_4_a_0 - top.res.inst_45_a_0 - top.res.inst_44_a_0 - top.res.inst_43_a_0 - top.res.inst_42_a_0 - top.res.inst_41_a_0 - top.res.inst_40_a_0 - top.res.inst_39_a_0 - top.res.inst_38_a_0 - top.res.inst_37_a_0 - top.res.inst_36_a_0 - top.res.inst_35_a_0 - top.res.inst_34_a_0 - top.res.inst_33_a_0 - top.res.inst_32_a_0 - top.res.inst_31_a_0 - top.res.inst_30_a_0 - top.res.inst_29_a_0 - top.res.inst_28_a_0 - top.res.inst_27_a_0) - (__node_init_always_from_to_0 - top.usr.ack_BC_a_0 - top.usr.ack_BC_a_0 - top.impl.usr.do_AB_a_0 - top.res.nondet_3 - top.res.nondet_2 - top.res.abs_5_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0) - (__node_init_implies_0 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_7_a_0) - (__node_init_edge_0 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_6_a_0) - (__node_init_implies_0 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.inst_5_a_0) - (__node_init_edge_0 - top.usr.on_C_a_0 - top.res.abs_10_a_0 - top.res.inst_4_a_0) - (__node_init_implies_0 - top.res.abs_14_a_0 - top.usr.on_B_a_0 - top.res.abs_15_a_0 - top.res.inst_3_a_0) - (__node_init_edge_0 - top.res.abs_13_a_0 - top.res.abs_14_a_0 - top.res.inst_2_a_0) - (__node_init_implies_0 - top.res.abs_17_a_0 - top.res.abs_18_a_0 - top.res.abs_19_a_0 - top.res.inst_1_a_0) - (__node_init_edge_0 - top.res.abs_16_a_0 - top.res.abs_17_a_0 - top.res.inst_0_a_0) - top.res.init_flag_a_0))))))) -) - -(define-fun - __node_trans_top_0 ( - (top.usr.on_A_a_1 Bool) - (top.usr.on_B_a_1 Bool) - (top.usr.on_C_a_1 Bool) - (top.usr.ack_AB_a_1 Bool) - (top.usr.ack_BC_a_1 Bool) - (top.res.nondet_9 Bool) - (top.res.nondet_8 Bool) - (top.res.nondet_7 Bool) - (top.res.nondet_6 Bool) - (top.res.nondet_5 Bool) - (top.res.nondet_4 Bool) - (top.res.nondet_3 Bool) - (top.res.nondet_2 Bool) - (top.res.nondet_1 Bool) - (top.res.nondet_0 Bool) - (top.usr.OK_a_1 Bool) - (top.res.init_flag_a_1 Bool) - (top.impl.usr.grant_access_a_1 Bool) - (top.impl.usr.grant_exit_a_1 Bool) - (top.impl.usr.do_AB_a_1 Bool) - (top.impl.usr.do_BC_a_1 Bool) - (top.impl.usr.empty_section_a_1 Bool) - (top.impl.usr.only_on_B_a_1 Bool) - (top.res.abs_0_a_1 Bool) - (top.res.abs_1_a_1 Bool) - (top.res.abs_2_a_1 Bool) - (top.res.abs_3_a_1 Bool) - (top.res.abs_4_a_1 Bool) - (top.res.abs_5_a_1 Bool) - (top.res.abs_6_a_1 Bool) - (top.res.abs_7_a_1 Bool) - (top.res.abs_8_a_1 Bool) - (top.res.abs_9_a_1 Bool) - (top.res.abs_10_a_1 Bool) - (top.res.abs_11_a_1 Bool) - (top.res.abs_12_a_1 Bool) - (top.res.abs_13_a_1 Bool) - (top.res.abs_14_a_1 Bool) - (top.res.abs_15_a_1 Bool) - (top.res.abs_16_a_1 Bool) - (top.res.abs_17_a_1 Bool) - (top.res.abs_18_a_1 Bool) - (top.res.abs_19_a_1 Bool) - (top.res.abs_20_a_1 Bool) - (top.res.abs_21_a_1 Bool) - (top.res.abs_22_a_1 Bool) - (top.res.abs_23_a_1 Bool) - (top.res.abs_24_a_1 Bool) - (top.res.inst_86_a_1 Bool) - (top.res.inst_85_a_1 Bool) - (top.res.inst_84_a_1 Bool) - (top.res.inst_83_a_1 Bool) - (top.res.inst_82_a_1 Bool) - (top.res.inst_81_a_1 Bool) - (top.res.inst_80_a_1 Bool) - (top.res.inst_79_a_1 Bool) - (top.res.inst_78_a_1 Bool) - (top.res.inst_77_a_1 Bool) - (top.res.inst_76_a_1 Bool) - (top.res.inst_75_a_1 Bool) - (top.res.inst_74_a_1 Bool) - (top.res.inst_73_a_1 Bool) - (top.res.inst_72_a_1 Bool) - (top.res.inst_71_a_1 Bool) - (top.res.inst_70_a_1 Bool) - (top.res.inst_69_a_1 Bool) - (top.res.inst_68_a_1 Bool) - (top.res.inst_67_a_1 Bool) - (top.res.inst_66_a_1 Bool) - (top.res.inst_65_a_1 Bool) - (top.res.inst_64_a_1 Bool) - (top.res.inst_63_a_1 Bool) - (top.res.inst_62_a_1 Bool) - (top.res.inst_61_a_1 Bool) - (top.res.inst_60_a_1 Bool) - (top.res.inst_59_a_1 Bool) - (top.res.inst_58_a_1 Bool) - (top.res.inst_57_a_1 Bool) - (top.res.inst_56_a_1 Bool) - (top.res.inst_55_a_1 Bool) - (top.res.inst_54_a_1 Bool) - (top.res.inst_53_a_1 Bool) - (top.res.inst_52_a_1 Bool) - (top.res.inst_51_a_1 Bool) - (top.res.inst_50_a_1 Bool) - (top.res.inst_49_a_1 Bool) - (top.res.inst_48_a_1 Bool) - (top.res.inst_47_a_1 Bool) - (top.res.inst_46_a_1 Bool) - (top.res.inst_45_a_1 Bool) - (top.res.inst_44_a_1 Bool) - (top.res.inst_43_a_1 Bool) - (top.res.inst_42_a_1 Bool) - (top.res.inst_41_a_1 Bool) - (top.res.inst_40_a_1 Bool) - (top.res.inst_39_a_1 Bool) - (top.res.inst_38_a_1 Bool) - (top.res.inst_37_a_1 Bool) - (top.res.inst_36_a_1 Bool) - (top.res.inst_35_a_1 Bool) - (top.res.inst_34_a_1 Bool) - (top.res.inst_33_a_1 Bool) - (top.res.inst_32_a_1 Bool) - (top.res.inst_31_a_1 Bool) - (top.res.inst_30_a_1 Bool) - (top.res.inst_29_a_1 Bool) - (top.res.inst_28_a_1 Bool) - (top.res.inst_27_a_1 Bool) - (top.res.inst_26_a_1 Bool) - (top.res.inst_25_a_1 Bool) - (top.res.inst_24_a_1 Bool) - (top.res.inst_23_a_1 Bool) - (top.res.inst_22_a_1 Bool) - (top.res.inst_21_a_1 Bool) - (top.res.inst_20_a_1 Bool) - (top.res.inst_19_a_1 Bool) - (top.res.inst_18_a_1 Bool) - (top.res.inst_17_a_1 Bool) - (top.res.inst_16_a_1 Bool) - (top.res.inst_15_a_1 Bool) - (top.res.inst_14_a_1 Bool) - (top.res.inst_13_a_1 Bool) - (top.res.inst_12_a_1 Bool) - (top.res.inst_11_a_1 Bool) - (top.res.inst_10_a_1 Bool) - (top.res.inst_9_a_1 Bool) - (top.res.inst_8_a_1 Bool) - (top.res.inst_7_a_1 Bool) - (top.res.inst_6_a_1 Bool) - (top.res.inst_5_a_1 Bool) - (top.res.inst_4_a_1 Bool) - (top.res.inst_3_a_1 Bool) - (top.res.inst_2_a_1 Bool) - (top.res.inst_1_a_1 Bool) - (top.res.inst_0_a_1 Bool) - (top.usr.on_A_a_0 Bool) - (top.usr.on_B_a_0 Bool) - (top.usr.on_C_a_0 Bool) - (top.usr.ack_AB_a_0 Bool) - (top.usr.ack_BC_a_0 Bool) - (top.usr.OK_a_0 Bool) - (top.res.init_flag_a_0 Bool) - (top.impl.usr.grant_access_a_0 Bool) - (top.impl.usr.grant_exit_a_0 Bool) - (top.impl.usr.do_AB_a_0 Bool) - (top.impl.usr.do_BC_a_0 Bool) - (top.impl.usr.empty_section_a_0 Bool) - (top.impl.usr.only_on_B_a_0 Bool) - (top.res.abs_0_a_0 Bool) - (top.res.abs_1_a_0 Bool) - (top.res.abs_2_a_0 Bool) - (top.res.abs_3_a_0 Bool) - (top.res.abs_4_a_0 Bool) - (top.res.abs_5_a_0 Bool) - (top.res.abs_6_a_0 Bool) - (top.res.abs_7_a_0 Bool) - (top.res.abs_8_a_0 Bool) - (top.res.abs_9_a_0 Bool) - (top.res.abs_10_a_0 Bool) - (top.res.abs_11_a_0 Bool) - (top.res.abs_12_a_0 Bool) - (top.res.abs_13_a_0 Bool) - (top.res.abs_14_a_0 Bool) - (top.res.abs_15_a_0 Bool) - (top.res.abs_16_a_0 Bool) - (top.res.abs_17_a_0 Bool) - (top.res.abs_18_a_0 Bool) - (top.res.abs_19_a_0 Bool) - (top.res.abs_20_a_0 Bool) - (top.res.abs_21_a_0 Bool) - (top.res.abs_22_a_0 Bool) - (top.res.abs_23_a_0 Bool) - (top.res.abs_24_a_0 Bool) - (top.res.inst_86_a_0 Bool) - (top.res.inst_85_a_0 Bool) - (top.res.inst_84_a_0 Bool) - (top.res.inst_83_a_0 Bool) - (top.res.inst_82_a_0 Bool) - (top.res.inst_81_a_0 Bool) - (top.res.inst_80_a_0 Bool) - (top.res.inst_79_a_0 Bool) - (top.res.inst_78_a_0 Bool) - (top.res.inst_77_a_0 Bool) - (top.res.inst_76_a_0 Bool) - (top.res.inst_75_a_0 Bool) - (top.res.inst_74_a_0 Bool) - (top.res.inst_73_a_0 Bool) - (top.res.inst_72_a_0 Bool) - (top.res.inst_71_a_0 Bool) - (top.res.inst_70_a_0 Bool) - (top.res.inst_69_a_0 Bool) - (top.res.inst_68_a_0 Bool) - (top.res.inst_67_a_0 Bool) - (top.res.inst_66_a_0 Bool) - (top.res.inst_65_a_0 Bool) - (top.res.inst_64_a_0 Bool) - (top.res.inst_63_a_0 Bool) - (top.res.inst_62_a_0 Bool) - (top.res.inst_61_a_0 Bool) - (top.res.inst_60_a_0 Bool) - (top.res.inst_59_a_0 Bool) - (top.res.inst_58_a_0 Bool) - (top.res.inst_57_a_0 Bool) - (top.res.inst_56_a_0 Bool) - (top.res.inst_55_a_0 Bool) - (top.res.inst_54_a_0 Bool) - (top.res.inst_53_a_0 Bool) - (top.res.inst_52_a_0 Bool) - (top.res.inst_51_a_0 Bool) - (top.res.inst_50_a_0 Bool) - (top.res.inst_49_a_0 Bool) - (top.res.inst_48_a_0 Bool) - (top.res.inst_47_a_0 Bool) - (top.res.inst_46_a_0 Bool) - (top.res.inst_45_a_0 Bool) - (top.res.inst_44_a_0 Bool) - (top.res.inst_43_a_0 Bool) - (top.res.inst_42_a_0 Bool) - (top.res.inst_41_a_0 Bool) - (top.res.inst_40_a_0 Bool) - (top.res.inst_39_a_0 Bool) - (top.res.inst_38_a_0 Bool) - (top.res.inst_37_a_0 Bool) - (top.res.inst_36_a_0 Bool) - (top.res.inst_35_a_0 Bool) - (top.res.inst_34_a_0 Bool) - (top.res.inst_33_a_0 Bool) - (top.res.inst_32_a_0 Bool) - (top.res.inst_31_a_0 Bool) - (top.res.inst_30_a_0 Bool) - (top.res.inst_29_a_0 Bool) - (top.res.inst_28_a_0 Bool) - (top.res.inst_27_a_0 Bool) - (top.res.inst_26_a_0 Bool) - (top.res.inst_25_a_0 Bool) - (top.res.inst_24_a_0 Bool) - (top.res.inst_23_a_0 Bool) - (top.res.inst_22_a_0 Bool) - (top.res.inst_21_a_0 Bool) - (top.res.inst_20_a_0 Bool) - (top.res.inst_19_a_0 Bool) - (top.res.inst_18_a_0 Bool) - (top.res.inst_17_a_0 Bool) - (top.res.inst_16_a_0 Bool) - (top.res.inst_15_a_0 Bool) - (top.res.inst_14_a_0 Bool) - (top.res.inst_13_a_0 Bool) - (top.res.inst_12_a_0 Bool) - (top.res.inst_11_a_0 Bool) - (top.res.inst_10_a_0 Bool) - (top.res.inst_9_a_0 Bool) - (top.res.inst_8_a_0 Bool) - (top.res.inst_7_a_0 Bool) - (top.res.inst_6_a_0 Bool) - (top.res.inst_5_a_0 Bool) - (top.res.inst_4_a_0 Bool) - (top.res.inst_3_a_0 Bool) - (top.res.inst_2_a_0 Bool) - (top.res.inst_1_a_0 Bool) - (top.res.inst_0_a_0 Bool) - ) Bool - - (and - (= - top.impl.usr.empty_section_a_1 - (not (or (or top.usr.on_A_a_1 top.usr.on_B_a_1) top.usr.on_C_a_1))) - (= top.impl.usr.grant_exit_a_1 top.res.abs_1_a_1) - (= - top.impl.usr.only_on_B_a_1 - (and top.usr.on_B_a_1 (not (or top.usr.on_A_a_1 top.usr.on_C_a_1)))) - (= top.impl.usr.grant_access_a_1 top.res.abs_0_a_1) - (= top.res.abs_18_a_1 (or top.usr.on_A_a_1 top.usr.on_C_a_1)) - (= top.res.abs_16_a_1 (not top.usr.on_B_a_1)) - (= top.res.abs_13_a_1 (not top.usr.on_A_a_1)) - (= top.res.abs_11_a_1 top.impl.usr.grant_exit_a_0) - (= top.res.abs_8_a_1 top.impl.usr.grant_access_a_0) - (= top.res.abs_6_a_1 (not top.impl.usr.empty_section_a_1)) - (= top.impl.usr.do_AB_a_1 top.res.abs_2_a_1) - (= top.impl.usr.do_BC_a_1 top.res.abs_3_a_1) - (= - top.res.abs_20_a_1 - (and - (and - (and - (and - (and - (and (not (and top.usr.ack_AB_a_1 top.usr.ack_BC_a_1)) top.res.abs_4_a_1) - top.res.abs_5_a_1) - top.res.abs_9_a_1) - top.res.abs_12_a_1) - top.res.abs_15_a_1) - top.res.abs_19_a_1)) - (let - ((X1 Bool top.res.abs_21_a_1)) - (let - ((X2 Bool top.res.abs_24_a_1)) - (let - ((X3 Bool top.res.abs_23_a_1)) - (let - ((X4 Bool (not (and top.impl.usr.do_AB_a_1 top.impl.usr.do_BC_a_1)))) - (let - ((X5 Bool top.res.abs_22_a_1)) - (and - (= top.usr.OK_a_1 (=> X1 (and (and (and X5 X4) X3) X2))) - (__node_trans_implies_0 - top.impl.usr.grant_access_a_1 - top.impl.usr.empty_section_a_1 - top.res.abs_22_a_1 - top.res.inst_86_a_1 - top.impl.usr.grant_access_a_0 - top.impl.usr.empty_section_a_0 - top.res.abs_22_a_0 - top.res.inst_86_a_0) - (__node_trans_UMS_0 - top.usr.on_A_a_1 - top.usr.on_B_a_1 - top.usr.on_C_a_1 - top.usr.ack_AB_a_1 - top.usr.ack_BC_a_1 - top.res.abs_0_a_1 - top.res.abs_1_a_1 - top.res.abs_2_a_1 - top.res.abs_3_a_1 - top.res.inst_85_a_1 - top.usr.on_A_a_0 - top.usr.on_B_a_0 - top.usr.on_C_a_0 - top.usr.ack_AB_a_0 - top.usr.ack_BC_a_0 - top.res.abs_0_a_0 - top.res.abs_1_a_0 - top.res.abs_2_a_0 - top.res.abs_3_a_0 - top.res.inst_85_a_0) - (__node_trans_always_from_to_0 - top.usr.ack_AB_a_1 - top.impl.usr.grant_access_a_1 - top.impl.usr.only_on_B_a_1 - top.res.nondet_7 - top.res.nondet_6 - top.res.abs_23_a_1 - top.res.inst_84_a_1 - top.res.inst_83_a_1 - top.res.inst_82_a_1 - top.res.inst_81_a_1 - top.res.inst_80_a_1 - top.res.inst_79_a_1 - top.res.inst_78_a_1 - top.res.inst_77_a_1 - top.res.inst_76_a_1 - top.res.inst_75_a_1 - top.res.inst_74_a_1 - top.res.inst_73_a_1 - top.res.inst_72_a_1 - top.res.inst_71_a_1 - top.res.inst_70_a_1 - top.res.inst_69_a_1 - top.res.inst_68_a_1 - top.res.inst_67_a_1 - top.res.inst_66_a_1 - top.usr.ack_AB_a_0 - top.impl.usr.grant_access_a_0 - top.impl.usr.only_on_B_a_0 - top.res.abs_23_a_0 - top.res.inst_84_a_0 - top.res.inst_83_a_0 - top.res.inst_82_a_0 - top.res.inst_81_a_0 - top.res.inst_80_a_0 - top.res.inst_79_a_0 - top.res.inst_78_a_0 - top.res.inst_77_a_0 - top.res.inst_76_a_0 - top.res.inst_75_a_0 - top.res.inst_74_a_0 - top.res.inst_73_a_0 - top.res.inst_72_a_0 - top.res.inst_71_a_0 - top.res.inst_70_a_0 - top.res.inst_69_a_0 - top.res.inst_68_a_0 - top.res.inst_67_a_0 - top.res.inst_66_a_0) - (__node_trans_always_from_to_0 - top.usr.ack_BC_a_1 - top.impl.usr.grant_exit_a_1 - top.impl.usr.empty_section_a_1 - top.res.nondet_9 - top.res.nondet_8 - top.res.abs_24_a_1 - top.res.inst_65_a_1 - top.res.inst_64_a_1 - top.res.inst_63_a_1 - top.res.inst_62_a_1 - top.res.inst_61_a_1 - top.res.inst_60_a_1 - top.res.inst_59_a_1 - top.res.inst_58_a_1 - top.res.inst_57_a_1 - top.res.inst_56_a_1 - top.res.inst_55_a_1 - top.res.inst_54_a_1 - top.res.inst_53_a_1 - top.res.inst_52_a_1 - top.res.inst_51_a_1 - top.res.inst_50_a_1 - top.res.inst_49_a_1 - top.res.inst_48_a_1 - top.res.inst_47_a_1 - top.usr.ack_BC_a_0 - top.impl.usr.grant_exit_a_0 - top.impl.usr.empty_section_a_0 - top.res.abs_24_a_0 - top.res.inst_65_a_0 - top.res.inst_64_a_0 - top.res.inst_63_a_0 - top.res.inst_62_a_0 - top.res.inst_61_a_0 - top.res.inst_60_a_0 - top.res.inst_59_a_0 - top.res.inst_58_a_0 - top.res.inst_57_a_0 - top.res.inst_56_a_0 - top.res.inst_55_a_0 - top.res.inst_54_a_0 - top.res.inst_53_a_0 - top.res.inst_52_a_0 - top.res.inst_51_a_0 - top.res.inst_50_a_0 - top.res.inst_49_a_0 - top.res.inst_48_a_0 - top.res.inst_47_a_0) - (__node_trans_Sofar_0 - top.res.abs_20_a_1 - top.res.abs_21_a_1 - top.res.inst_46_a_1 - top.res.abs_20_a_0 - top.res.abs_21_a_0 - top.res.inst_46_a_0) - (__node_trans_always_from_to_0 - top.usr.ack_AB_a_1 - top.usr.ack_AB_a_1 - top.impl.usr.do_BC_a_1 - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_4_a_1 - top.res.inst_45_a_1 - top.res.inst_44_a_1 - top.res.inst_43_a_1 - top.res.inst_42_a_1 - top.res.inst_41_a_1 - top.res.inst_40_a_1 - top.res.inst_39_a_1 - top.res.inst_38_a_1 - top.res.inst_37_a_1 - top.res.inst_36_a_1 - top.res.inst_35_a_1 - top.res.inst_34_a_1 - top.res.inst_33_a_1 - top.res.inst_32_a_1 - top.res.inst_31_a_1 - top.res.inst_30_a_1 - top.res.inst_29_a_1 - top.res.inst_28_a_1 - top.res.inst_27_a_1 - top.usr.ack_AB_a_0 - top.usr.ack_AB_a_0 - top.impl.usr.do_BC_a_0 - top.res.abs_4_a_0 - top.res.inst_45_a_0 - top.res.inst_44_a_0 - top.res.inst_43_a_0 - top.res.inst_42_a_0 - top.res.inst_41_a_0 - top.res.inst_40_a_0 - top.res.inst_39_a_0 - top.res.inst_38_a_0 - top.res.inst_37_a_0 - top.res.inst_36_a_0 - top.res.inst_35_a_0 - top.res.inst_34_a_0 - top.res.inst_33_a_0 - top.res.inst_32_a_0 - top.res.inst_31_a_0 - top.res.inst_30_a_0 - top.res.inst_29_a_0 - top.res.inst_28_a_0 - top.res.inst_27_a_0) - (__node_trans_always_from_to_0 - top.usr.ack_BC_a_1 - top.usr.ack_BC_a_1 - top.impl.usr.do_AB_a_1 - top.res.nondet_3 - top.res.nondet_2 - top.res.abs_5_a_1 - top.res.inst_26_a_1 - top.res.inst_25_a_1 - top.res.inst_24_a_1 - top.res.inst_23_a_1 - top.res.inst_22_a_1 - top.res.inst_21_a_1 - top.res.inst_20_a_1 - top.res.inst_19_a_1 - top.res.inst_18_a_1 - top.res.inst_17_a_1 - top.res.inst_16_a_1 - top.res.inst_15_a_1 - top.res.inst_14_a_1 - top.res.inst_13_a_1 - top.res.inst_12_a_1 - top.res.inst_11_a_1 - top.res.inst_10_a_1 - top.res.inst_9_a_1 - top.res.inst_8_a_1 - top.usr.ack_BC_a_0 - top.usr.ack_BC_a_0 - top.impl.usr.do_AB_a_0 - top.res.abs_5_a_0 - top.res.inst_26_a_0 - top.res.inst_25_a_0 - top.res.inst_24_a_0 - top.res.inst_23_a_0 - top.res.inst_22_a_0 - top.res.inst_21_a_0 - top.res.inst_20_a_0 - top.res.inst_19_a_0 - top.res.inst_18_a_0 - top.res.inst_17_a_0 - top.res.inst_16_a_0 - top.res.inst_15_a_0 - top.res.inst_14_a_0 - top.res.inst_13_a_0 - top.res.inst_12_a_0 - top.res.inst_11_a_0 - top.res.inst_10_a_0 - top.res.inst_9_a_0 - top.res.inst_8_a_0) - (__node_trans_implies_0 - top.res.abs_7_a_1 - top.res.abs_8_a_1 - top.res.abs_9_a_1 - top.res.inst_7_a_1 - top.res.abs_7_a_0 - top.res.abs_8_a_0 - top.res.abs_9_a_0 - top.res.inst_7_a_0) - (__node_trans_edge_0 - top.res.abs_6_a_1 - top.res.abs_7_a_1 - top.res.inst_6_a_1 - top.res.abs_6_a_0 - top.res.abs_7_a_0 - top.res.inst_6_a_0) - (__node_trans_implies_0 - top.res.abs_10_a_1 - top.res.abs_11_a_1 - top.res.abs_12_a_1 - top.res.inst_5_a_1 - top.res.abs_10_a_0 - top.res.abs_11_a_0 - top.res.abs_12_a_0 - top.res.inst_5_a_0) - (__node_trans_edge_0 - top.usr.on_C_a_1 - top.res.abs_10_a_1 - top.res.inst_4_a_1 - top.usr.on_C_a_0 - top.res.abs_10_a_0 - top.res.inst_4_a_0) - (__node_trans_implies_0 - top.res.abs_14_a_1 - top.usr.on_B_a_1 - top.res.abs_15_a_1 - top.res.inst_3_a_1 - top.res.abs_14_a_0 - top.usr.on_B_a_0 - top.res.abs_15_a_0 - top.res.inst_3_a_0) - (__node_trans_edge_0 - top.res.abs_13_a_1 - top.res.abs_14_a_1 - top.res.inst_2_a_1 - top.res.abs_13_a_0 - top.res.abs_14_a_0 - top.res.inst_2_a_0) - (__node_trans_implies_0 - top.res.abs_17_a_1 - top.res.abs_18_a_1 - top.res.abs_19_a_1 - top.res.inst_1_a_1 - top.res.abs_17_a_0 - top.res.abs_18_a_0 - top.res.abs_19_a_0 - top.res.inst_1_a_0) - (__node_trans_edge_0 - top.res.abs_16_a_1 - top.res.abs_17_a_1 - top.res.inst_0_a_1 - top.res.abs_16_a_0 - top.res.abs_17_a_0 - top.res.inst_0_a_0) - (not top.res.init_flag_a_1)))))))) -) - - - -(synth-inv str_invariant( - (top.usr.on_A Bool) - (top.usr.on_B Bool) - (top.usr.on_C Bool) - (top.usr.ack_AB Bool) - (top.usr.ack_BC Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.grant_access Bool) - (top.impl.usr.grant_exit Bool) - (top.impl.usr.do_AB Bool) - (top.impl.usr.do_BC Bool) - (top.impl.usr.empty_section Bool) - (top.impl.usr.only_on_B Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.abs_13 Bool) - (top.res.abs_14 Bool) - (top.res.abs_15 Bool) - (top.res.abs_16 Bool) - (top.res.abs_17 Bool) - (top.res.abs_18 Bool) - (top.res.abs_19 Bool) - (top.res.abs_20 Bool) - (top.res.abs_21 Bool) - (top.res.abs_22 Bool) - (top.res.abs_23 Bool) - (top.res.abs_24 Bool) - (top.res.inst_86 Bool) - (top.res.inst_85 Bool) - (top.res.inst_84 Bool) - (top.res.inst_83 Bool) - (top.res.inst_82 Bool) - (top.res.inst_81 Bool) - (top.res.inst_80 Bool) - (top.res.inst_79 Bool) - (top.res.inst_78 Bool) - (top.res.inst_77 Bool) - (top.res.inst_76 Bool) - (top.res.inst_75 Bool) - (top.res.inst_74 Bool) - (top.res.inst_73 Bool) - (top.res.inst_72 Bool) - (top.res.inst_71 Bool) - (top.res.inst_70 Bool) - (top.res.inst_69 Bool) - (top.res.inst_68 Bool) - (top.res.inst_67 Bool) - (top.res.inst_66 Bool) - (top.res.inst_65 Bool) - (top.res.inst_64 Bool) - (top.res.inst_63 Bool) - (top.res.inst_62 Bool) - (top.res.inst_61 Bool) - (top.res.inst_60 Bool) - (top.res.inst_59 Bool) - (top.res.inst_58 Bool) - (top.res.inst_57 Bool) - (top.res.inst_56 Bool) - (top.res.inst_55 Bool) - (top.res.inst_54 Bool) - (top.res.inst_53 Bool) - (top.res.inst_52 Bool) - (top.res.inst_51 Bool) - (top.res.inst_50 Bool) - (top.res.inst_49 Bool) - (top.res.inst_48 Bool) - (top.res.inst_47 Bool) - (top.res.inst_46 Bool) - (top.res.inst_45 Bool) - (top.res.inst_44 Bool) - (top.res.inst_43 Bool) - (top.res.inst_42 Bool) - (top.res.inst_41 Bool) - (top.res.inst_40 Bool) - (top.res.inst_39 Bool) - (top.res.inst_38 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) -)) - -(declare-fun top.res.nondet_9 () Bool) -(declare-fun top.res.nondet_8 () Bool) -(declare-fun top.res.nondet_7 () Bool) -(declare-fun top.res.nondet_6 () Bool) -(declare-fun top.res.nondet_5 () Bool) -(declare-fun top.res.nondet_4 () Bool) -(declare-fun top.res.nondet_3 () Bool) -(declare-fun top.res.nondet_2 () Bool) -(declare-fun top.res.nondet_1 () Bool) -(declare-fun top.res.nondet_0 () Bool) - -(declare-primed-var top.usr.on_A Bool) -(declare-primed-var top.usr.on_B Bool) -(declare-primed-var top.usr.on_C Bool) -(declare-primed-var top.usr.ack_AB Bool) -(declare-primed-var top.usr.ack_BC Bool) -(declare-primed-var top.usr.OK Bool) -(declare-primed-var top.res.init_flag Bool) -(declare-primed-var top.impl.usr.grant_access Bool) -(declare-primed-var top.impl.usr.grant_exit Bool) -(declare-primed-var top.impl.usr.do_AB Bool) -(declare-primed-var top.impl.usr.do_BC Bool) -(declare-primed-var top.impl.usr.empty_section Bool) -(declare-primed-var top.impl.usr.only_on_B Bool) -(declare-primed-var top.res.abs_0 Bool) -(declare-primed-var top.res.abs_1 Bool) -(declare-primed-var top.res.abs_2 Bool) -(declare-primed-var top.res.abs_3 Bool) -(declare-primed-var top.res.abs_4 Bool) -(declare-primed-var top.res.abs_5 Bool) -(declare-primed-var top.res.abs_6 Bool) -(declare-primed-var top.res.abs_7 Bool) -(declare-primed-var top.res.abs_8 Bool) -(declare-primed-var top.res.abs_9 Bool) -(declare-primed-var top.res.abs_10 Bool) -(declare-primed-var top.res.abs_11 Bool) -(declare-primed-var top.res.abs_12 Bool) -(declare-primed-var top.res.abs_13 Bool) -(declare-primed-var top.res.abs_14 Bool) -(declare-primed-var top.res.abs_15 Bool) -(declare-primed-var top.res.abs_16 Bool) -(declare-primed-var top.res.abs_17 Bool) -(declare-primed-var top.res.abs_18 Bool) -(declare-primed-var top.res.abs_19 Bool) -(declare-primed-var top.res.abs_20 Bool) -(declare-primed-var top.res.abs_21 Bool) -(declare-primed-var top.res.abs_22 Bool) -(declare-primed-var top.res.abs_23 Bool) -(declare-primed-var top.res.abs_24 Bool) -(declare-primed-var top.res.inst_86 Bool) -(declare-primed-var top.res.inst_85 Bool) -(declare-primed-var top.res.inst_84 Bool) -(declare-primed-var top.res.inst_83 Bool) -(declare-primed-var top.res.inst_82 Bool) -(declare-primed-var top.res.inst_81 Bool) -(declare-primed-var top.res.inst_80 Bool) -(declare-primed-var top.res.inst_79 Bool) -(declare-primed-var top.res.inst_78 Bool) -(declare-primed-var top.res.inst_77 Bool) -(declare-primed-var top.res.inst_76 Bool) -(declare-primed-var top.res.inst_75 Bool) -(declare-primed-var top.res.inst_74 Bool) -(declare-primed-var top.res.inst_73 Bool) -(declare-primed-var top.res.inst_72 Bool) -(declare-primed-var top.res.inst_71 Bool) -(declare-primed-var top.res.inst_70 Bool) -(declare-primed-var top.res.inst_69 Bool) -(declare-primed-var top.res.inst_68 Bool) -(declare-primed-var top.res.inst_67 Bool) -(declare-primed-var top.res.inst_66 Bool) -(declare-primed-var top.res.inst_65 Bool) -(declare-primed-var top.res.inst_64 Bool) -(declare-primed-var top.res.inst_63 Bool) -(declare-primed-var top.res.inst_62 Bool) -(declare-primed-var top.res.inst_61 Bool) -(declare-primed-var top.res.inst_60 Bool) -(declare-primed-var top.res.inst_59 Bool) -(declare-primed-var top.res.inst_58 Bool) -(declare-primed-var top.res.inst_57 Bool) -(declare-primed-var top.res.inst_56 Bool) -(declare-primed-var top.res.inst_55 Bool) -(declare-primed-var top.res.inst_54 Bool) -(declare-primed-var top.res.inst_53 Bool) -(declare-primed-var top.res.inst_52 Bool) -(declare-primed-var top.res.inst_51 Bool) -(declare-primed-var top.res.inst_50 Bool) -(declare-primed-var top.res.inst_49 Bool) -(declare-primed-var top.res.inst_48 Bool) -(declare-primed-var top.res.inst_47 Bool) -(declare-primed-var top.res.inst_46 Bool) -(declare-primed-var top.res.inst_45 Bool) -(declare-primed-var top.res.inst_44 Bool) -(declare-primed-var top.res.inst_43 Bool) -(declare-primed-var top.res.inst_42 Bool) -(declare-primed-var top.res.inst_41 Bool) -(declare-primed-var top.res.inst_40 Bool) -(declare-primed-var top.res.inst_39 Bool) -(declare-primed-var top.res.inst_38 Bool) -(declare-primed-var top.res.inst_37 Bool) -(declare-primed-var top.res.inst_36 Bool) -(declare-primed-var top.res.inst_35 Bool) -(declare-primed-var top.res.inst_34 Bool) -(declare-primed-var top.res.inst_33 Bool) -(declare-primed-var top.res.inst_32 Bool) -(declare-primed-var top.res.inst_31 Bool) -(declare-primed-var top.res.inst_30 Bool) -(declare-primed-var top.res.inst_29 Bool) -(declare-primed-var top.res.inst_28 Bool) -(declare-primed-var top.res.inst_27 Bool) -(declare-primed-var top.res.inst_26 Bool) -(declare-primed-var top.res.inst_25 Bool) -(declare-primed-var top.res.inst_24 Bool) -(declare-primed-var top.res.inst_23 Bool) -(declare-primed-var top.res.inst_22 Bool) -(declare-primed-var top.res.inst_21 Bool) -(declare-primed-var top.res.inst_20 Bool) -(declare-primed-var top.res.inst_19 Bool) -(declare-primed-var top.res.inst_18 Bool) -(declare-primed-var top.res.inst_17 Bool) -(declare-primed-var top.res.inst_16 Bool) -(declare-primed-var top.res.inst_15 Bool) -(declare-primed-var top.res.inst_14 Bool) -(declare-primed-var top.res.inst_13 Bool) -(declare-primed-var top.res.inst_12 Bool) -(declare-primed-var top.res.inst_11 Bool) -(declare-primed-var top.res.inst_10 Bool) -(declare-primed-var top.res.inst_9 Bool) -(declare-primed-var top.res.inst_8 Bool) -(declare-primed-var top.res.inst_7 Bool) -(declare-primed-var top.res.inst_6 Bool) -(declare-primed-var top.res.inst_5 Bool) -(declare-primed-var top.res.inst_4 Bool) -(declare-primed-var top.res.inst_3 Bool) -(declare-primed-var top.res.inst_2 Bool) -(declare-primed-var top.res.inst_1 Bool) -(declare-primed-var top.res.inst_0 Bool) - -(define-fun - init ( - (top.usr.on_A Bool) - (top.usr.on_B Bool) - (top.usr.on_C Bool) - (top.usr.ack_AB Bool) - (top.usr.ack_BC Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.grant_access Bool) - (top.impl.usr.grant_exit Bool) - (top.impl.usr.do_AB Bool) - (top.impl.usr.do_BC Bool) - (top.impl.usr.empty_section Bool) - (top.impl.usr.only_on_B Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.abs_13 Bool) - (top.res.abs_14 Bool) - (top.res.abs_15 Bool) - (top.res.abs_16 Bool) - (top.res.abs_17 Bool) - (top.res.abs_18 Bool) - (top.res.abs_19 Bool) - (top.res.abs_20 Bool) - (top.res.abs_21 Bool) - (top.res.abs_22 Bool) - (top.res.abs_23 Bool) - (top.res.abs_24 Bool) - (top.res.inst_86 Bool) - (top.res.inst_85 Bool) - (top.res.inst_84 Bool) - (top.res.inst_83 Bool) - (top.res.inst_82 Bool) - (top.res.inst_81 Bool) - (top.res.inst_80 Bool) - (top.res.inst_79 Bool) - (top.res.inst_78 Bool) - (top.res.inst_77 Bool) - (top.res.inst_76 Bool) - (top.res.inst_75 Bool) - (top.res.inst_74 Bool) - (top.res.inst_73 Bool) - (top.res.inst_72 Bool) - (top.res.inst_71 Bool) - (top.res.inst_70 Bool) - (top.res.inst_69 Bool) - (top.res.inst_68 Bool) - (top.res.inst_67 Bool) - (top.res.inst_66 Bool) - (top.res.inst_65 Bool) - (top.res.inst_64 Bool) - (top.res.inst_63 Bool) - (top.res.inst_62 Bool) - (top.res.inst_61 Bool) - (top.res.inst_60 Bool) - (top.res.inst_59 Bool) - (top.res.inst_58 Bool) - (top.res.inst_57 Bool) - (top.res.inst_56 Bool) - (top.res.inst_55 Bool) - (top.res.inst_54 Bool) - (top.res.inst_53 Bool) - (top.res.inst_52 Bool) - (top.res.inst_51 Bool) - (top.res.inst_50 Bool) - (top.res.inst_49 Bool) - (top.res.inst_48 Bool) - (top.res.inst_47 Bool) - (top.res.inst_46 Bool) - (top.res.inst_45 Bool) - (top.res.inst_44 Bool) - (top.res.inst_43 Bool) - (top.res.inst_42 Bool) - (top.res.inst_41 Bool) - (top.res.inst_40 Bool) - (top.res.inst_39 Bool) - (top.res.inst_38 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - (and - (= - top.impl.usr.empty_section - (not (or (or top.usr.on_A top.usr.on_B) top.usr.on_C))) - (= top.impl.usr.grant_exit top.res.abs_1) - (= - top.impl.usr.only_on_B - (and top.usr.on_B (not (or top.usr.on_A top.usr.on_C)))) - (= top.impl.usr.grant_access top.res.abs_0) - (= top.res.abs_18 (or top.usr.on_A top.usr.on_C)) - (= top.res.abs_16 (not top.usr.on_B)) - (= top.res.abs_13 (not top.usr.on_A)) - (= top.impl.usr.do_AB top.res.abs_2) - (= top.impl.usr.do_BC top.res.abs_3) - (= - top.res.abs_20 - (and - (and - (and - (and - (and (not (and top.usr.ack_AB top.usr.ack_BC)) top.res.abs_4) - top.res.abs_5) - top.impl.usr.empty_section) - top.res.abs_15) - top.res.abs_19)) - (let - ((X1 Bool top.res.abs_21)) - (let - ((X2 Bool top.res.abs_24)) - (let - ((X3 Bool top.res.abs_23)) - (let - ((X4 Bool (not (and top.impl.usr.do_AB top.impl.usr.do_BC)))) - (let - ((X5 Bool top.res.abs_22)) - (and - (= top.usr.OK (=> X1 (and (and (and X5 X4) X3) X2))) - (= top.res.abs_6 (not top.impl.usr.empty_section)) - (= top.res.abs_8 (let ((X6 Bool top.res.nondet_4)) X6)) - (= top.res.abs_11 (let ((X6 Bool top.res.nondet_5)) X6)) - (__node_init_implies_0 - top.impl.usr.grant_access - top.impl.usr.empty_section - top.res.abs_22 - top.res.inst_86) - (__node_init_UMS_0 - top.usr.on_A - top.usr.on_B - top.usr.on_C - top.usr.ack_AB - top.usr.ack_BC - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_85) - (__node_init_always_from_to_0 - top.usr.ack_AB - top.impl.usr.grant_access - top.impl.usr.only_on_B - top.res.nondet_7 - top.res.nondet_6 - top.res.abs_23 - top.res.inst_84 - top.res.inst_83 - top.res.inst_82 - top.res.inst_81 - top.res.inst_80 - top.res.inst_79 - top.res.inst_78 - top.res.inst_77 - top.res.inst_76 - top.res.inst_75 - top.res.inst_74 - top.res.inst_73 - top.res.inst_72 - top.res.inst_71 - top.res.inst_70 - top.res.inst_69 - top.res.inst_68 - top.res.inst_67 - top.res.inst_66) - (__node_init_always_from_to_0 - top.usr.ack_BC - top.impl.usr.grant_exit - top.impl.usr.empty_section - top.res.nondet_9 - top.res.nondet_8 - top.res.abs_24 - top.res.inst_65 - top.res.inst_64 - top.res.inst_63 - top.res.inst_62 - top.res.inst_61 - top.res.inst_60 - top.res.inst_59 - top.res.inst_58 - top.res.inst_57 - top.res.inst_56 - top.res.inst_55 - top.res.inst_54 - top.res.inst_53 - top.res.inst_52 - top.res.inst_51 - top.res.inst_50 - top.res.inst_49 - top.res.inst_48 - top.res.inst_47) - (__node_init_Sofar_0 top.res.abs_20 top.res.abs_21 top.res.inst_46) - (__node_init_always_from_to_0 - top.usr.ack_AB - top.usr.ack_AB - top.impl.usr.do_BC - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_4 - top.res.inst_45 - top.res.inst_44 - top.res.inst_43 - top.res.inst_42 - top.res.inst_41 - top.res.inst_40 - top.res.inst_39 - top.res.inst_38 - top.res.inst_37 - top.res.inst_36 - top.res.inst_35 - top.res.inst_34 - top.res.inst_33 - top.res.inst_32 - top.res.inst_31 - top.res.inst_30 - top.res.inst_29 - top.res.inst_28 - top.res.inst_27) - (__node_init_always_from_to_0 - top.usr.ack_BC - top.usr.ack_BC - top.impl.usr.do_AB - top.res.nondet_3 - top.res.nondet_2 - top.res.abs_5 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8) - (__node_init_implies_0 - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_7) - (__node_init_edge_0 top.res.abs_6 top.res.abs_7 top.res.inst_6) - (__node_init_implies_0 - top.res.abs_10 - top.res.abs_11 - top.res.abs_12 - top.res.inst_5) - (__node_init_edge_0 top.usr.on_C top.res.abs_10 top.res.inst_4) - (__node_init_implies_0 - top.res.abs_14 - top.usr.on_B - top.res.abs_15 - top.res.inst_3) - (__node_init_edge_0 top.res.abs_13 top.res.abs_14 top.res.inst_2) - (__node_init_implies_0 - top.res.abs_17 - top.res.abs_18 - top.res.abs_19 - top.res.inst_1) - (__node_init_edge_0 top.res.abs_16 top.res.abs_17 top.res.inst_0) - top.res.init_flag))))))) -) - -(define-fun - trans ( - - ;; Current state. - (top.usr.on_A Bool) - (top.usr.on_B Bool) - (top.usr.on_C Bool) - (top.usr.ack_AB Bool) - (top.usr.ack_BC Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.grant_access Bool) - (top.impl.usr.grant_exit Bool) - (top.impl.usr.do_AB Bool) - (top.impl.usr.do_BC Bool) - (top.impl.usr.empty_section Bool) - (top.impl.usr.only_on_B Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.abs_13 Bool) - (top.res.abs_14 Bool) - (top.res.abs_15 Bool) - (top.res.abs_16 Bool) - (top.res.abs_17 Bool) - (top.res.abs_18 Bool) - (top.res.abs_19 Bool) - (top.res.abs_20 Bool) - (top.res.abs_21 Bool) - (top.res.abs_22 Bool) - (top.res.abs_23 Bool) - (top.res.abs_24 Bool) - (top.res.inst_86 Bool) - (top.res.inst_85 Bool) - (top.res.inst_84 Bool) - (top.res.inst_83 Bool) - (top.res.inst_82 Bool) - (top.res.inst_81 Bool) - (top.res.inst_80 Bool) - (top.res.inst_79 Bool) - (top.res.inst_78 Bool) - (top.res.inst_77 Bool) - (top.res.inst_76 Bool) - (top.res.inst_75 Bool) - (top.res.inst_74 Bool) - (top.res.inst_73 Bool) - (top.res.inst_72 Bool) - (top.res.inst_71 Bool) - (top.res.inst_70 Bool) - (top.res.inst_69 Bool) - (top.res.inst_68 Bool) - (top.res.inst_67 Bool) - (top.res.inst_66 Bool) - (top.res.inst_65 Bool) - (top.res.inst_64 Bool) - (top.res.inst_63 Bool) - (top.res.inst_62 Bool) - (top.res.inst_61 Bool) - (top.res.inst_60 Bool) - (top.res.inst_59 Bool) - (top.res.inst_58 Bool) - (top.res.inst_57 Bool) - (top.res.inst_56 Bool) - (top.res.inst_55 Bool) - (top.res.inst_54 Bool) - (top.res.inst_53 Bool) - (top.res.inst_52 Bool) - (top.res.inst_51 Bool) - (top.res.inst_50 Bool) - (top.res.inst_49 Bool) - (top.res.inst_48 Bool) - (top.res.inst_47 Bool) - (top.res.inst_46 Bool) - (top.res.inst_45 Bool) - (top.res.inst_44 Bool) - (top.res.inst_43 Bool) - (top.res.inst_42 Bool) - (top.res.inst_41 Bool) - (top.res.inst_40 Bool) - (top.res.inst_39 Bool) - (top.res.inst_38 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - - ;; Next state. - (top.usr.on_A! Bool) - (top.usr.on_B! Bool) - (top.usr.on_C! Bool) - (top.usr.ack_AB! Bool) - (top.usr.ack_BC! Bool) - (top.usr.OK! Bool) - (top.res.init_flag! Bool) - (top.impl.usr.grant_access! Bool) - (top.impl.usr.grant_exit! Bool) - (top.impl.usr.do_AB! Bool) - (top.impl.usr.do_BC! Bool) - (top.impl.usr.empty_section! Bool) - (top.impl.usr.only_on_B! Bool) - (top.res.abs_0! Bool) - (top.res.abs_1! Bool) - (top.res.abs_2! Bool) - (top.res.abs_3! Bool) - (top.res.abs_4! Bool) - (top.res.abs_5! Bool) - (top.res.abs_6! Bool) - (top.res.abs_7! Bool) - (top.res.abs_8! Bool) - (top.res.abs_9! Bool) - (top.res.abs_10! Bool) - (top.res.abs_11! Bool) - (top.res.abs_12! Bool) - (top.res.abs_13! Bool) - (top.res.abs_14! Bool) - (top.res.abs_15! Bool) - (top.res.abs_16! Bool) - (top.res.abs_17! Bool) - (top.res.abs_18! Bool) - (top.res.abs_19! Bool) - (top.res.abs_20! Bool) - (top.res.abs_21! Bool) - (top.res.abs_22! Bool) - (top.res.abs_23! Bool) - (top.res.abs_24! Bool) - (top.res.inst_86! Bool) - (top.res.inst_85! Bool) - (top.res.inst_84! Bool) - (top.res.inst_83! Bool) - (top.res.inst_82! Bool) - (top.res.inst_81! Bool) - (top.res.inst_80! Bool) - (top.res.inst_79! Bool) - (top.res.inst_78! Bool) - (top.res.inst_77! Bool) - (top.res.inst_76! Bool) - (top.res.inst_75! Bool) - (top.res.inst_74! Bool) - (top.res.inst_73! Bool) - (top.res.inst_72! Bool) - (top.res.inst_71! Bool) - (top.res.inst_70! Bool) - (top.res.inst_69! Bool) - (top.res.inst_68! Bool) - (top.res.inst_67! Bool) - (top.res.inst_66! Bool) - (top.res.inst_65! Bool) - (top.res.inst_64! Bool) - (top.res.inst_63! Bool) - (top.res.inst_62! Bool) - (top.res.inst_61! Bool) - (top.res.inst_60! Bool) - (top.res.inst_59! Bool) - (top.res.inst_58! Bool) - (top.res.inst_57! Bool) - (top.res.inst_56! Bool) - (top.res.inst_55! Bool) - (top.res.inst_54! Bool) - (top.res.inst_53! Bool) - (top.res.inst_52! Bool) - (top.res.inst_51! Bool) - (top.res.inst_50! Bool) - (top.res.inst_49! Bool) - (top.res.inst_48! Bool) - (top.res.inst_47! Bool) - (top.res.inst_46! Bool) - (top.res.inst_45! Bool) - (top.res.inst_44! Bool) - (top.res.inst_43! Bool) - (top.res.inst_42! Bool) - (top.res.inst_41! Bool) - (top.res.inst_40! Bool) - (top.res.inst_39! Bool) - (top.res.inst_38! Bool) - (top.res.inst_37! Bool) - (top.res.inst_36! Bool) - (top.res.inst_35! Bool) - (top.res.inst_34! Bool) - (top.res.inst_33! Bool) - (top.res.inst_32! Bool) - (top.res.inst_31! Bool) - (top.res.inst_30! Bool) - (top.res.inst_29! Bool) - (top.res.inst_28! Bool) - (top.res.inst_27! Bool) - (top.res.inst_26! Bool) - (top.res.inst_25! Bool) - (top.res.inst_24! Bool) - (top.res.inst_23! Bool) - (top.res.inst_22! Bool) - (top.res.inst_21! Bool) - (top.res.inst_20! Bool) - (top.res.inst_19! Bool) - (top.res.inst_18! Bool) - (top.res.inst_17! Bool) - (top.res.inst_16! Bool) - (top.res.inst_15! Bool) - (top.res.inst_14! Bool) - (top.res.inst_13! Bool) - (top.res.inst_12! Bool) - (top.res.inst_11! Bool) - (top.res.inst_10! Bool) - (top.res.inst_9! Bool) - (top.res.inst_8! Bool) - (top.res.inst_7! Bool) - (top.res.inst_6! Bool) - (top.res.inst_5! Bool) - (top.res.inst_4! Bool) - (top.res.inst_3! Bool) - (top.res.inst_2! Bool) - (top.res.inst_1! Bool) - (top.res.inst_0! Bool) - - ) Bool - - (and - (and - (= - top.impl.usr.empty_section! - (not (or (or top.usr.on_A! top.usr.on_B!) top.usr.on_C!))) - (= top.impl.usr.grant_exit! top.res.abs_1!) - (= - top.impl.usr.only_on_B! - (and top.usr.on_B! (not (or top.usr.on_A! top.usr.on_C!)))) - (= top.impl.usr.grant_access! top.res.abs_0!) - (= top.res.abs_18! (or top.usr.on_A! top.usr.on_C!)) - (= top.res.abs_16! (not top.usr.on_B!)) - (= top.res.abs_13! (not top.usr.on_A!)) - (= top.res.abs_11! top.impl.usr.grant_exit) - (= top.res.abs_8! top.impl.usr.grant_access) - (= top.res.abs_6! (not top.impl.usr.empty_section!)) - (= top.impl.usr.do_AB! top.res.abs_2!) - (= top.impl.usr.do_BC! top.res.abs_3!) - (= - top.res.abs_20! - (and - (and - (and - (and - (and - (and (not (and top.usr.ack_AB! top.usr.ack_BC!)) top.res.abs_4!) - top.res.abs_5!) - top.res.abs_9!) - top.res.abs_12!) - top.res.abs_15!) - top.res.abs_19!)) - (let - ((X1 Bool top.res.abs_21!)) - (let - ((X2 Bool top.res.abs_24!)) - (let - ((X3 Bool top.res.abs_23!)) - (let - ((X4 Bool (not (and top.impl.usr.do_AB! top.impl.usr.do_BC!)))) - (let - ((X5 Bool top.res.abs_22!)) - (and - (= top.usr.OK! (=> X1 (and (and (and X5 X4) X3) X2))) - (__node_trans_implies_0 - top.impl.usr.grant_access! - top.impl.usr.empty_section! - top.res.abs_22! - top.res.inst_86! - top.impl.usr.grant_access - top.impl.usr.empty_section - top.res.abs_22 - top.res.inst_86) - (__node_trans_UMS_0 - top.usr.on_A! - top.usr.on_B! - top.usr.on_C! - top.usr.ack_AB! - top.usr.ack_BC! - top.res.abs_0! - top.res.abs_1! - top.res.abs_2! - top.res.abs_3! - top.res.inst_85! - top.usr.on_A - top.usr.on_B - top.usr.on_C - top.usr.ack_AB - top.usr.ack_BC - top.res.abs_0 - top.res.abs_1 - top.res.abs_2 - top.res.abs_3 - top.res.inst_85) - (__node_trans_always_from_to_0 - top.usr.ack_AB! - top.impl.usr.grant_access! - top.impl.usr.only_on_B! - top.res.nondet_7 - top.res.nondet_6 - top.res.abs_23! - top.res.inst_84! - top.res.inst_83! - top.res.inst_82! - top.res.inst_81! - top.res.inst_80! - top.res.inst_79! - top.res.inst_78! - top.res.inst_77! - top.res.inst_76! - top.res.inst_75! - top.res.inst_74! - top.res.inst_73! - top.res.inst_72! - top.res.inst_71! - top.res.inst_70! - top.res.inst_69! - top.res.inst_68! - top.res.inst_67! - top.res.inst_66! - top.usr.ack_AB - top.impl.usr.grant_access - top.impl.usr.only_on_B - top.res.abs_23 - top.res.inst_84 - top.res.inst_83 - top.res.inst_82 - top.res.inst_81 - top.res.inst_80 - top.res.inst_79 - top.res.inst_78 - top.res.inst_77 - top.res.inst_76 - top.res.inst_75 - top.res.inst_74 - top.res.inst_73 - top.res.inst_72 - top.res.inst_71 - top.res.inst_70 - top.res.inst_69 - top.res.inst_68 - top.res.inst_67 - top.res.inst_66) - (__node_trans_always_from_to_0 - top.usr.ack_BC! - top.impl.usr.grant_exit! - top.impl.usr.empty_section! - top.res.nondet_9 - top.res.nondet_8 - top.res.abs_24! - top.res.inst_65! - top.res.inst_64! - top.res.inst_63! - top.res.inst_62! - top.res.inst_61! - top.res.inst_60! - top.res.inst_59! - top.res.inst_58! - top.res.inst_57! - top.res.inst_56! - top.res.inst_55! - top.res.inst_54! - top.res.inst_53! - top.res.inst_52! - top.res.inst_51! - top.res.inst_50! - top.res.inst_49! - top.res.inst_48! - top.res.inst_47! - top.usr.ack_BC - top.impl.usr.grant_exit - top.impl.usr.empty_section - top.res.abs_24 - top.res.inst_65 - top.res.inst_64 - top.res.inst_63 - top.res.inst_62 - top.res.inst_61 - top.res.inst_60 - top.res.inst_59 - top.res.inst_58 - top.res.inst_57 - top.res.inst_56 - top.res.inst_55 - top.res.inst_54 - top.res.inst_53 - top.res.inst_52 - top.res.inst_51 - top.res.inst_50 - top.res.inst_49 - top.res.inst_48 - top.res.inst_47) - (__node_trans_Sofar_0 - top.res.abs_20! - top.res.abs_21! - top.res.inst_46! - top.res.abs_20 - top.res.abs_21 - top.res.inst_46) - (__node_trans_always_from_to_0 - top.usr.ack_AB! - top.usr.ack_AB! - top.impl.usr.do_BC! - top.res.nondet_1 - top.res.nondet_0 - top.res.abs_4! - top.res.inst_45! - top.res.inst_44! - top.res.inst_43! - top.res.inst_42! - top.res.inst_41! - top.res.inst_40! - top.res.inst_39! - top.res.inst_38! - top.res.inst_37! - top.res.inst_36! - top.res.inst_35! - top.res.inst_34! - top.res.inst_33! - top.res.inst_32! - top.res.inst_31! - top.res.inst_30! - top.res.inst_29! - top.res.inst_28! - top.res.inst_27! - top.usr.ack_AB - top.usr.ack_AB - top.impl.usr.do_BC - top.res.abs_4 - top.res.inst_45 - top.res.inst_44 - top.res.inst_43 - top.res.inst_42 - top.res.inst_41 - top.res.inst_40 - top.res.inst_39 - top.res.inst_38 - top.res.inst_37 - top.res.inst_36 - top.res.inst_35 - top.res.inst_34 - top.res.inst_33 - top.res.inst_32 - top.res.inst_31 - top.res.inst_30 - top.res.inst_29 - top.res.inst_28 - top.res.inst_27) - (__node_trans_always_from_to_0 - top.usr.ack_BC! - top.usr.ack_BC! - top.impl.usr.do_AB! - top.res.nondet_3 - top.res.nondet_2 - top.res.abs_5! - top.res.inst_26! - top.res.inst_25! - top.res.inst_24! - top.res.inst_23! - top.res.inst_22! - top.res.inst_21! - top.res.inst_20! - top.res.inst_19! - top.res.inst_18! - top.res.inst_17! - top.res.inst_16! - top.res.inst_15! - top.res.inst_14! - top.res.inst_13! - top.res.inst_12! - top.res.inst_11! - top.res.inst_10! - top.res.inst_9! - top.res.inst_8! - top.usr.ack_BC - top.usr.ack_BC - top.impl.usr.do_AB - top.res.abs_5 - top.res.inst_26 - top.res.inst_25 - top.res.inst_24 - top.res.inst_23 - top.res.inst_22 - top.res.inst_21 - top.res.inst_20 - top.res.inst_19 - top.res.inst_18 - top.res.inst_17 - top.res.inst_16 - top.res.inst_15 - top.res.inst_14 - top.res.inst_13 - top.res.inst_12 - top.res.inst_11 - top.res.inst_10 - top.res.inst_9 - top.res.inst_8) - (__node_trans_implies_0 - top.res.abs_7! - top.res.abs_8! - top.res.abs_9! - top.res.inst_7! - top.res.abs_7 - top.res.abs_8 - top.res.abs_9 - top.res.inst_7) - (__node_trans_edge_0 - top.res.abs_6! - top.res.abs_7! - top.res.inst_6! - top.res.abs_6 - top.res.abs_7 - top.res.inst_6) - (__node_trans_implies_0 - top.res.abs_10! - top.res.abs_11! - top.res.abs_12! - top.res.inst_5! - top.res.abs_10 - top.res.abs_11 - top.res.abs_12 - top.res.inst_5) - (__node_trans_edge_0 - top.usr.on_C! - top.res.abs_10! - top.res.inst_4! - top.usr.on_C - top.res.abs_10 - top.res.inst_4) - (__node_trans_implies_0 - top.res.abs_14! - top.usr.on_B! - top.res.abs_15! - top.res.inst_3! - top.res.abs_14 - top.usr.on_B - top.res.abs_15 - top.res.inst_3) - (__node_trans_edge_0 - top.res.abs_13! - top.res.abs_14! - top.res.inst_2! - top.res.abs_13 - top.res.abs_14 - top.res.inst_2) - (__node_trans_implies_0 - top.res.abs_17! - top.res.abs_18! - top.res.abs_19! - top.res.inst_1! - top.res.abs_17 - top.res.abs_18 - top.res.abs_19 - top.res.inst_1) - (__node_trans_edge_0 - top.res.abs_16! - top.res.abs_17! - top.res.inst_0! - top.res.abs_16 - top.res.abs_17 - top.res.inst_0) - (not top.res.init_flag!)))))))) - (= top.res.nondet_9 top.res.nondet_9) - (= top.res.nondet_8 top.res.nondet_8) - (= top.res.nondet_7 top.res.nondet_7) - (= top.res.nondet_6 top.res.nondet_6) - (= top.res.nondet_5 top.res.nondet_5) - (= top.res.nondet_4 top.res.nondet_4) - (= top.res.nondet_3 top.res.nondet_3) - (= top.res.nondet_2 top.res.nondet_2) - (= top.res.nondet_1 top.res.nondet_1) - (= top.res.nondet_0 top.res.nondet_0)) -) - -(define-fun - prop ( - (top.usr.on_A Bool) - (top.usr.on_B Bool) - (top.usr.on_C Bool) - (top.usr.ack_AB Bool) - (top.usr.ack_BC Bool) - (top.usr.OK Bool) - (top.res.init_flag Bool) - (top.impl.usr.grant_access Bool) - (top.impl.usr.grant_exit Bool) - (top.impl.usr.do_AB Bool) - (top.impl.usr.do_BC Bool) - (top.impl.usr.empty_section Bool) - (top.impl.usr.only_on_B Bool) - (top.res.abs_0 Bool) - (top.res.abs_1 Bool) - (top.res.abs_2 Bool) - (top.res.abs_3 Bool) - (top.res.abs_4 Bool) - (top.res.abs_5 Bool) - (top.res.abs_6 Bool) - (top.res.abs_7 Bool) - (top.res.abs_8 Bool) - (top.res.abs_9 Bool) - (top.res.abs_10 Bool) - (top.res.abs_11 Bool) - (top.res.abs_12 Bool) - (top.res.abs_13 Bool) - (top.res.abs_14 Bool) - (top.res.abs_15 Bool) - (top.res.abs_16 Bool) - (top.res.abs_17 Bool) - (top.res.abs_18 Bool) - (top.res.abs_19 Bool) - (top.res.abs_20 Bool) - (top.res.abs_21 Bool) - (top.res.abs_22 Bool) - (top.res.abs_23 Bool) - (top.res.abs_24 Bool) - (top.res.inst_86 Bool) - (top.res.inst_85 Bool) - (top.res.inst_84 Bool) - (top.res.inst_83 Bool) - (top.res.inst_82 Bool) - (top.res.inst_81 Bool) - (top.res.inst_80 Bool) - (top.res.inst_79 Bool) - (top.res.inst_78 Bool) - (top.res.inst_77 Bool) - (top.res.inst_76 Bool) - (top.res.inst_75 Bool) - (top.res.inst_74 Bool) - (top.res.inst_73 Bool) - (top.res.inst_72 Bool) - (top.res.inst_71 Bool) - (top.res.inst_70 Bool) - (top.res.inst_69 Bool) - (top.res.inst_68 Bool) - (top.res.inst_67 Bool) - (top.res.inst_66 Bool) - (top.res.inst_65 Bool) - (top.res.inst_64 Bool) - (top.res.inst_63 Bool) - (top.res.inst_62 Bool) - (top.res.inst_61 Bool) - (top.res.inst_60 Bool) - (top.res.inst_59 Bool) - (top.res.inst_58 Bool) - (top.res.inst_57 Bool) - (top.res.inst_56 Bool) - (top.res.inst_55 Bool) - (top.res.inst_54 Bool) - (top.res.inst_53 Bool) - (top.res.inst_52 Bool) - (top.res.inst_51 Bool) - (top.res.inst_50 Bool) - (top.res.inst_49 Bool) - (top.res.inst_48 Bool) - (top.res.inst_47 Bool) - (top.res.inst_46 Bool) - (top.res.inst_45 Bool) - (top.res.inst_44 Bool) - (top.res.inst_43 Bool) - (top.res.inst_42 Bool) - (top.res.inst_41 Bool) - (top.res.inst_40 Bool) - (top.res.inst_39 Bool) - (top.res.inst_38 Bool) - (top.res.inst_37 Bool) - (top.res.inst_36 Bool) - (top.res.inst_35 Bool) - (top.res.inst_34 Bool) - (top.res.inst_33 Bool) - (top.res.inst_32 Bool) - (top.res.inst_31 Bool) - (top.res.inst_30 Bool) - (top.res.inst_29 Bool) - (top.res.inst_28 Bool) - (top.res.inst_27 Bool) - (top.res.inst_26 Bool) - (top.res.inst_25 Bool) - (top.res.inst_24 Bool) - (top.res.inst_23 Bool) - (top.res.inst_22 Bool) - (top.res.inst_21 Bool) - (top.res.inst_20 Bool) - (top.res.inst_19 Bool) - (top.res.inst_18 Bool) - (top.res.inst_17 Bool) - (top.res.inst_16 Bool) - (top.res.inst_15 Bool) - (top.res.inst_14 Bool) - (top.res.inst_13 Bool) - (top.res.inst_12 Bool) - (top.res.inst_11 Bool) - (top.res.inst_10 Bool) - (top.res.inst_9 Bool) - (top.res.inst_8 Bool) - (top.res.inst_7 Bool) - (top.res.inst_6 Bool) - (top.res.inst_5 Bool) - (top.res.inst_4 Bool) - (top.res.inst_3 Bool) - (top.res.inst_2 Bool) - (top.res.inst_1 Bool) - (top.res.inst_0 Bool) - ) Bool - - top.usr.OK -) +(define-fun __node_init_Sofar_0 ((Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_0 Sofar.usr.X_a_0) Sofar.res.init_flag_a_0)) +(define-fun __node_trans_Sofar_0 ((Sofar.usr.X_a_1 Bool) (Sofar.usr.Sofar_a_1 Bool) (Sofar.res.init_flag_a_1 Bool) (Sofar.usr.X_a_0 Bool) (Sofar.usr.Sofar_a_0 Bool) (Sofar.res.init_flag_a_0 Bool)) Bool + (and (= Sofar.usr.Sofar_a_1 (and Sofar.usr.X_a_1 Sofar.usr.Sofar_a_0)) (not Sofar.res.init_flag_a_1))) +(define-fun __node_init_implies_0 ((implies.usr.A_a_0 Bool) (implies.usr.B_a_0 Bool) (implies.usr.AimpliesB_a_0 Bool) (implies.res.init_flag_a_0 Bool)) Bool + (and (= implies.usr.AimpliesB_a_0 (or (not implies.usr.A_a_0) implies.usr.B_a_0)) implies.res.init_flag_a_0)) +(define-fun __node_trans_implies_0 ((implies.usr.A_a_1 Bool) (implies.usr.B_a_1 Bool) (implies.usr.AimpliesB_a_1 Bool) (implies.res.init_flag_a_1 Bool) (implies.usr.A_a_0 Bool) (implies.usr.B_a_0 Bool) (implies.usr.AimpliesB_a_0 Bool) (implies.res.init_flag_a_0 Bool)) Bool + (and (= implies.usr.AimpliesB_a_1 (or (not implies.usr.A_a_1) implies.usr.B_a_1)) (not implies.res.init_flag_a_1))) +(define-fun __node_init_edge_0 ((edge.usr.X_a_0 Bool) (edge.usr.Y_a_0 Bool) (edge.res.init_flag_a_0 Bool)) Bool + (and (= edge.usr.Y_a_0 edge.usr.X_a_0) edge.res.init_flag_a_0)) +(define-fun __node_trans_edge_0 ((edge.usr.X_a_1 Bool) (edge.usr.Y_a_1 Bool) (edge.res.init_flag_a_1 Bool) (edge.usr.X_a_0 Bool) (edge.usr.Y_a_0 Bool) (edge.res.init_flag_a_0 Bool)) Bool + (and (= edge.usr.Y_a_1 (and edge.usr.X_a_1 (not edge.usr.X_a_0))) (not edge.res.init_flag_a_1))) +(define-fun __node_init_after_0 ((after.usr.A_a_0 Bool) (after.usr.afterA_a_0 Bool) (after.res.init_flag_a_0 Bool) (after.res.abs_0_a_0 Bool)) Bool + (and (= after.usr.afterA_a_0 false) (= after.res.abs_0_a_0 (and after.usr.A_a_0 after.usr.afterA_a_0)) after.res.init_flag_a_0)) +(define-fun __node_trans_after_0 ((after.usr.A_a_1 Bool) (after.usr.afterA_a_1 Bool) (after.res.init_flag_a_1 Bool) (after.res.abs_0_a_1 Bool) (after.usr.A_a_0 Bool) (after.usr.afterA_a_0 Bool) (after.res.init_flag_a_0 Bool) (after.res.abs_0_a_0 Bool)) Bool + (and (= after.usr.afterA_a_1 after.res.abs_0_a_0) (= after.res.abs_0_a_1 (and after.usr.A_a_1 after.usr.afterA_a_1)) (not after.res.init_flag_a_1))) +(define-fun __node_init_once_since_0 ((once_since.usr.C_a_0 Bool) (once_since.usr.A_a_0 Bool) (once_since.res.nondet_0 Bool) (once_since.usr.onceCsinceA_a_0 Bool) (once_since.res.init_flag_a_0 Bool) (once_since.res.abs_0_a_0 Bool) (once_since.res.abs_1_a_0 Bool) (once_since.res.inst_1_a_0 Bool) (once_since.res.inst_0_a_0 Bool)) Bool + (and (= once_since.usr.onceCsinceA_a_0 (let ((X1 once_since.res.nondet_0)) (ite once_since.usr.A_a_0 once_since.usr.C_a_0 (ite once_since.res.abs_1_a_0 (or once_since.usr.C_a_0 X1) true)))) (= once_since.res.abs_0_a_0 once_since.usr.A_a_0) (__node_init_after_0 once_since.res.abs_0_a_0 once_since.res.abs_1_a_0 once_since.res.inst_1_a_0 once_since.res.inst_0_a_0) once_since.res.init_flag_a_0)) +(define-fun __node_trans_once_since_0 ((once_since.usr.C_a_1 Bool) (once_since.usr.A_a_1 Bool) (once_since.res.nondet_0 Bool) (once_since.usr.onceCsinceA_a_1 Bool) (once_since.res.init_flag_a_1 Bool) (once_since.res.abs_0_a_1 Bool) (once_since.res.abs_1_a_1 Bool) (once_since.res.inst_1_a_1 Bool) (once_since.res.inst_0_a_1 Bool) (once_since.usr.C_a_0 Bool) (once_since.usr.A_a_0 Bool) (once_since.usr.onceCsinceA_a_0 Bool) (once_since.res.init_flag_a_0 Bool) (once_since.res.abs_0_a_0 Bool) (once_since.res.abs_1_a_0 Bool) (once_since.res.inst_1_a_0 Bool) (once_since.res.inst_0_a_0 Bool)) Bool + (and (= once_since.usr.onceCsinceA_a_1 (ite once_since.usr.A_a_1 once_since.usr.C_a_1 (ite once_since.res.abs_1_a_1 (or once_since.usr.C_a_1 once_since.usr.onceCsinceA_a_0) true))) (= once_since.res.abs_0_a_1 once_since.usr.A_a_1) (__node_trans_after_0 once_since.res.abs_0_a_1 once_since.res.abs_1_a_1 once_since.res.inst_1_a_1 once_since.res.inst_0_a_1 once_since.res.abs_0_a_0 once_since.res.abs_1_a_0 once_since.res.inst_1_a_0 once_since.res.inst_0_a_0) (not once_since.res.init_flag_a_1))) +(define-fun __node_init_always_since_0 ((always_since.usr.B_a_0 Bool) (always_since.usr.A_a_0 Bool) (always_since.res.nondet_0 Bool) (always_since.usr.alwaysBsinceA_a_0 Bool) (always_since.res.init_flag_a_0 Bool) (always_since.res.abs_0_a_0 Bool) (always_since.res.abs_1_a_0 Bool) (always_since.res.inst_1_a_0 Bool) (always_since.res.inst_0_a_0 Bool)) Bool + (and (= always_since.usr.alwaysBsinceA_a_0 (let ((X1 always_since.res.nondet_0)) (ite always_since.usr.A_a_0 always_since.usr.B_a_0 (ite always_since.res.abs_1_a_0 (and always_since.usr.B_a_0 X1) true)))) (= always_since.res.abs_0_a_0 always_since.usr.A_a_0) (__node_init_after_0 always_since.res.abs_0_a_0 always_since.res.abs_1_a_0 always_since.res.inst_1_a_0 always_since.res.inst_0_a_0) always_since.res.init_flag_a_0)) +(define-fun __node_trans_always_since_0 ((always_since.usr.B_a_1 Bool) (always_since.usr.A_a_1 Bool) (always_since.res.nondet_0 Bool) (always_since.usr.alwaysBsinceA_a_1 Bool) (always_since.res.init_flag_a_1 Bool) (always_since.res.abs_0_a_1 Bool) (always_since.res.abs_1_a_1 Bool) (always_since.res.inst_1_a_1 Bool) (always_since.res.inst_0_a_1 Bool) (always_since.usr.B_a_0 Bool) (always_since.usr.A_a_0 Bool) (always_since.usr.alwaysBsinceA_a_0 Bool) (always_since.res.init_flag_a_0 Bool) (always_since.res.abs_0_a_0 Bool) (always_since.res.abs_1_a_0 Bool) (always_since.res.inst_1_a_0 Bool) (always_since.res.inst_0_a_0 Bool)) Bool + (and (= always_since.usr.alwaysBsinceA_a_1 (ite always_since.usr.A_a_1 always_since.usr.B_a_1 (ite always_since.res.abs_1_a_1 (and always_since.usr.B_a_1 always_since.usr.alwaysBsinceA_a_0) true))) (= always_since.res.abs_0_a_1 always_since.usr.A_a_1) (__node_trans_after_0 always_since.res.abs_0_a_1 always_since.res.abs_1_a_1 always_since.res.inst_1_a_1 always_since.res.inst_0_a_1 always_since.res.abs_0_a_0 always_since.res.abs_1_a_0 always_since.res.inst_1_a_0 always_since.res.inst_0_a_0) (not always_since.res.init_flag_a_1))) +(define-fun __node_init_always_from_to_0 ((always_from_to.usr.B_a_0 Bool) (always_from_to.usr.A_a_0 Bool) (always_from_to.usr.C_a_0 Bool) (always_from_to.res.nondet_1 Bool) (always_from_to.res.nondet_0 Bool) (always_from_to.usr.X_a_0 Bool) (always_from_to.res.init_flag_a_0 Bool) (always_from_to.res.abs_0_a_0 Bool) (always_from_to.res.abs_1_a_0 Bool) (always_from_to.res.abs_2_a_0 Bool) (always_from_to.res.abs_3_a_0 Bool) (always_from_to.res.abs_4_a_0 Bool) (always_from_to.res.inst_12_a_0 Bool) (always_from_to.res.inst_11_a_0 Bool) (always_from_to.res.inst_10_a_0 Bool) (always_from_to.res.inst_9_a_0 Bool) (always_from_to.res.inst_8_a_0 Bool) (always_from_to.res.inst_7_a_0 Bool) (always_from_to.res.inst_6_a_0 Bool) (always_from_to.res.inst_5_a_0 Bool) (always_from_to.res.inst_4_a_0 Bool) (always_from_to.res.inst_3_a_0 Bool) (always_from_to.res.inst_2_a_0 Bool) (always_from_to.res.inst_1_a_0 Bool) (always_from_to.res.inst_0_a_0 Bool)) Bool + (and (= always_from_to.res.abs_3_a_0 (or always_from_to.res.abs_1_a_0 always_from_to.res.abs_2_a_0)) (= always_from_to.usr.X_a_0 always_from_to.res.abs_4_a_0) (__node_init_implies_0 always_from_to.res.abs_0_a_0 always_from_to.res.abs_3_a_0 always_from_to.res.abs_4_a_0 always_from_to.res.inst_12_a_0) (__node_init_after_0 always_from_to.usr.A_a_0 always_from_to.res.abs_0_a_0 always_from_to.res.inst_11_a_0 always_from_to.res.inst_10_a_0) (__node_init_always_since_0 always_from_to.usr.B_a_0 always_from_to.usr.A_a_0 always_from_to.res.nondet_0 always_from_to.res.abs_1_a_0 always_from_to.res.inst_9_a_0 always_from_to.res.inst_8_a_0 always_from_to.res.inst_7_a_0 always_from_to.res.inst_6_a_0 always_from_to.res.inst_5_a_0) (__node_init_once_since_0 always_from_to.usr.C_a_0 always_from_to.usr.A_a_0 always_from_to.res.nondet_1 always_from_to.res.abs_2_a_0 always_from_to.res.inst_4_a_0 always_from_to.res.inst_3_a_0 always_from_to.res.inst_2_a_0 always_from_to.res.inst_1_a_0 always_from_to.res.inst_0_a_0) always_from_to.res.init_flag_a_0)) +(define-fun __node_trans_always_from_to_0 ((always_from_to.usr.B_a_1 Bool) (always_from_to.usr.A_a_1 Bool) (always_from_to.usr.C_a_1 Bool) (always_from_to.res.nondet_1 Bool) (always_from_to.res.nondet_0 Bool) (always_from_to.usr.X_a_1 Bool) (always_from_to.res.init_flag_a_1 Bool) (always_from_to.res.abs_0_a_1 Bool) (always_from_to.res.abs_1_a_1 Bool) (always_from_to.res.abs_2_a_1 Bool) (always_from_to.res.abs_3_a_1 Bool) (always_from_to.res.abs_4_a_1 Bool) (always_from_to.res.inst_12_a_1 Bool) (always_from_to.res.inst_11_a_1 Bool) (always_from_to.res.inst_10_a_1 Bool) (always_from_to.res.inst_9_a_1 Bool) (always_from_to.res.inst_8_a_1 Bool) (always_from_to.res.inst_7_a_1 Bool) (always_from_to.res.inst_6_a_1 Bool) (always_from_to.res.inst_5_a_1 Bool) (always_from_to.res.inst_4_a_1 Bool) (always_from_to.res.inst_3_a_1 Bool) (always_from_to.res.inst_2_a_1 Bool) (always_from_to.res.inst_1_a_1 Bool) (always_from_to.res.inst_0_a_1 Bool) (always_from_to.usr.B_a_0 Bool) (always_from_to.usr.A_a_0 Bool) (always_from_to.usr.C_a_0 Bool) (always_from_to.usr.X_a_0 Bool) (always_from_to.res.init_flag_a_0 Bool) (always_from_to.res.abs_0_a_0 Bool) (always_from_to.res.abs_1_a_0 Bool) (always_from_to.res.abs_2_a_0 Bool) (always_from_to.res.abs_3_a_0 Bool) (always_from_to.res.abs_4_a_0 Bool) (always_from_to.res.inst_12_a_0 Bool) (always_from_to.res.inst_11_a_0 Bool) (always_from_to.res.inst_10_a_0 Bool) (always_from_to.res.inst_9_a_0 Bool) (always_from_to.res.inst_8_a_0 Bool) (always_from_to.res.inst_7_a_0 Bool) (always_from_to.res.inst_6_a_0 Bool) (always_from_to.res.inst_5_a_0 Bool) (always_from_to.res.inst_4_a_0 Bool) (always_from_to.res.inst_3_a_0 Bool) (always_from_to.res.inst_2_a_0 Bool) (always_from_to.res.inst_1_a_0 Bool) (always_from_to.res.inst_0_a_0 Bool)) Bool + (and (= always_from_to.res.abs_3_a_1 (or always_from_to.res.abs_1_a_1 always_from_to.res.abs_2_a_1)) (= always_from_to.usr.X_a_1 always_from_to.res.abs_4_a_1) (__node_trans_implies_0 always_from_to.res.abs_0_a_1 always_from_to.res.abs_3_a_1 always_from_to.res.abs_4_a_1 always_from_to.res.inst_12_a_1 always_from_to.res.abs_0_a_0 always_from_to.res.abs_3_a_0 always_from_to.res.abs_4_a_0 always_from_to.res.inst_12_a_0) (__node_trans_after_0 always_from_to.usr.A_a_1 always_from_to.res.abs_0_a_1 always_from_to.res.inst_11_a_1 always_from_to.res.inst_10_a_1 always_from_to.usr.A_a_0 always_from_to.res.abs_0_a_0 always_from_to.res.inst_11_a_0 always_from_to.res.inst_10_a_0) (__node_trans_always_since_0 always_from_to.usr.B_a_1 always_from_to.usr.A_a_1 always_from_to.res.nondet_0 always_from_to.res.abs_1_a_1 always_from_to.res.inst_9_a_1 always_from_to.res.inst_8_a_1 always_from_to.res.inst_7_a_1 always_from_to.res.inst_6_a_1 always_from_to.res.inst_5_a_1 always_from_to.usr.B_a_0 always_from_to.usr.A_a_0 always_from_to.res.abs_1_a_0 always_from_to.res.inst_9_a_0 always_from_to.res.inst_8_a_0 always_from_to.res.inst_7_a_0 always_from_to.res.inst_6_a_0 always_from_to.res.inst_5_a_0) (__node_trans_once_since_0 always_from_to.usr.C_a_1 always_from_to.usr.A_a_1 always_from_to.res.nondet_1 always_from_to.res.abs_2_a_1 always_from_to.res.inst_4_a_1 always_from_to.res.inst_3_a_1 always_from_to.res.inst_2_a_1 always_from_to.res.inst_1_a_1 always_from_to.res.inst_0_a_1 always_from_to.usr.C_a_0 always_from_to.usr.A_a_0 always_from_to.res.abs_2_a_0 always_from_to.res.inst_4_a_0 always_from_to.res.inst_3_a_0 always_from_to.res.inst_2_a_0 always_from_to.res.inst_1_a_0 always_from_to.res.inst_0_a_0) (not always_from_to.res.init_flag_a_1))) +(define-fun __node_init_UMS_0 ((UMS.usr.on_A_a_0 Bool) (UMS.usr.on_B_a_0 Bool) (UMS.usr.on_C_a_0 Bool) (UMS.usr.ack_AB_a_0 Bool) (UMS.usr.ack_BC_a_0 Bool) (UMS.usr.grant_access_a_0 Bool) (UMS.usr.grant_exit_a_0 Bool) (UMS.usr.do_AB_a_0 Bool) (UMS.usr.do_BC_a_0 Bool) (UMS.res.init_flag_a_0 Bool)) Bool + (let ((X1 (not (or (or UMS.usr.on_A_a_0 UMS.usr.on_B_a_0) UMS.usr.on_C_a_0)))) (and (= UMS.usr.grant_access_a_0 (and X1 UMS.usr.ack_AB_a_0)) (let ((X2 (and UMS.usr.on_B_a_0 (not (or UMS.usr.on_A_a_0 UMS.usr.on_C_a_0))))) (and (= UMS.usr.grant_exit_a_0 (and X2 UMS.usr.ack_BC_a_0)) (= UMS.usr.do_AB_a_0 (and (not UMS.usr.ack_AB_a_0) X1)) (= UMS.usr.do_BC_a_0 (and (not UMS.usr.ack_BC_a_0) X2)) UMS.res.init_flag_a_0))))) +(define-fun __node_trans_UMS_0 ((UMS.usr.on_A_a_1 Bool) (UMS.usr.on_B_a_1 Bool) (UMS.usr.on_C_a_1 Bool) (UMS.usr.ack_AB_a_1 Bool) (UMS.usr.ack_BC_a_1 Bool) (UMS.usr.grant_access_a_1 Bool) (UMS.usr.grant_exit_a_1 Bool) (UMS.usr.do_AB_a_1 Bool) (UMS.usr.do_BC_a_1 Bool) (UMS.res.init_flag_a_1 Bool) (UMS.usr.on_A_a_0 Bool) (UMS.usr.on_B_a_0 Bool) (UMS.usr.on_C_a_0 Bool) (UMS.usr.ack_AB_a_0 Bool) (UMS.usr.ack_BC_a_0 Bool) (UMS.usr.grant_access_a_0 Bool) (UMS.usr.grant_exit_a_0 Bool) (UMS.usr.do_AB_a_0 Bool) (UMS.usr.do_BC_a_0 Bool) (UMS.res.init_flag_a_0 Bool)) Bool + (let ((X1 (not (or (or UMS.usr.on_A_a_1 UMS.usr.on_B_a_1) UMS.usr.on_C_a_1)))) (and (= UMS.usr.grant_access_a_1 (and X1 UMS.usr.ack_AB_a_1)) (let ((X2 (and UMS.usr.on_B_a_1 (not (or UMS.usr.on_A_a_1 UMS.usr.on_C_a_1))))) (and (= UMS.usr.grant_exit_a_1 (and X2 UMS.usr.ack_BC_a_1)) (= UMS.usr.do_AB_a_1 (and (not UMS.usr.ack_AB_a_1) X1)) (= UMS.usr.do_BC_a_1 (and (not UMS.usr.ack_BC_a_1) X2)) (not UMS.res.init_flag_a_1)))))) +(define-fun __node_init_top_0 ((top.usr.on_A_a_0 Bool) (top.usr.on_B_a_0 Bool) (top.usr.on_C_a_0 Bool) (top.usr.ack_AB_a_0 Bool) (top.usr.ack_BC_a_0 Bool) (top.res.nondet_9 Bool) (top.res.nondet_8 Bool) (top.res.nondet_7 Bool) (top.res.nondet_6 Bool) (top.res.nondet_5 Bool) (top.res.nondet_4 Bool) (top.res.nondet_3 Bool) (top.res.nondet_2 Bool) (top.res.nondet_1 Bool) (top.res.nondet_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.grant_access_a_0 Bool) (top.impl.usr.grant_exit_a_0 Bool) (top.impl.usr.do_AB_a_0 Bool) (top.impl.usr.do_BC_a_0 Bool) (top.impl.usr.empty_section_a_0 Bool) (top.impl.usr.only_on_B_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.abs_12_a_0 Bool) (top.res.abs_13_a_0 Bool) (top.res.abs_14_a_0 Bool) (top.res.abs_15_a_0 Bool) (top.res.abs_16_a_0 Bool) (top.res.abs_17_a_0 Bool) (top.res.abs_18_a_0 Bool) (top.res.abs_19_a_0 Bool) (top.res.abs_20_a_0 Bool) (top.res.abs_21_a_0 Bool) (top.res.abs_22_a_0 Bool) (top.res.abs_23_a_0 Bool) (top.res.abs_24_a_0 Bool) (top.res.inst_86_a_0 Bool) (top.res.inst_85_a_0 Bool) (top.res.inst_84_a_0 Bool) (top.res.inst_83_a_0 Bool) (top.res.inst_82_a_0 Bool) (top.res.inst_81_a_0 Bool) (top.res.inst_80_a_0 Bool) (top.res.inst_79_a_0 Bool) (top.res.inst_78_a_0 Bool) (top.res.inst_77_a_0 Bool) (top.res.inst_76_a_0 Bool) (top.res.inst_75_a_0 Bool) (top.res.inst_74_a_0 Bool) (top.res.inst_73_a_0 Bool) (top.res.inst_72_a_0 Bool) (top.res.inst_71_a_0 Bool) (top.res.inst_70_a_0 Bool) (top.res.inst_69_a_0 Bool) (top.res.inst_68_a_0 Bool) (top.res.inst_67_a_0 Bool) (top.res.inst_66_a_0 Bool) (top.res.inst_65_a_0 Bool) (top.res.inst_64_a_0 Bool) (top.res.inst_63_a_0 Bool) (top.res.inst_62_a_0 Bool) (top.res.inst_61_a_0 Bool) (top.res.inst_60_a_0 Bool) (top.res.inst_59_a_0 Bool) (top.res.inst_58_a_0 Bool) (top.res.inst_57_a_0 Bool) (top.res.inst_56_a_0 Bool) (top.res.inst_55_a_0 Bool) (top.res.inst_54_a_0 Bool) (top.res.inst_53_a_0 Bool) (top.res.inst_52_a_0 Bool) (top.res.inst_51_a_0 Bool) (top.res.inst_50_a_0 Bool) (top.res.inst_49_a_0 Bool) (top.res.inst_48_a_0 Bool) (top.res.inst_47_a_0 Bool) (top.res.inst_46_a_0 Bool) (top.res.inst_45_a_0 Bool) (top.res.inst_44_a_0 Bool) (top.res.inst_43_a_0 Bool) (top.res.inst_42_a_0 Bool) (top.res.inst_41_a_0 Bool) (top.res.inst_40_a_0 Bool) (top.res.inst_39_a_0 Bool) (top.res.inst_38_a_0 Bool) (top.res.inst_37_a_0 Bool) (top.res.inst_36_a_0 Bool) (top.res.inst_35_a_0 Bool) (top.res.inst_34_a_0 Bool) (top.res.inst_33_a_0 Bool) (top.res.inst_32_a_0 Bool) (top.res.inst_31_a_0 Bool) (top.res.inst_30_a_0 Bool) (top.res.inst_29_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.empty_section_a_0 (not (or (or top.usr.on_A_a_0 top.usr.on_B_a_0) top.usr.on_C_a_0))) (= top.impl.usr.grant_exit_a_0 top.res.abs_1_a_0) (= top.impl.usr.only_on_B_a_0 (and top.usr.on_B_a_0 (not (or top.usr.on_A_a_0 top.usr.on_C_a_0)))) (= top.impl.usr.grant_access_a_0 top.res.abs_0_a_0) (= top.res.abs_18_a_0 (or top.usr.on_A_a_0 top.usr.on_C_a_0)) (= top.res.abs_16_a_0 (not top.usr.on_B_a_0)) (= top.res.abs_13_a_0 (not top.usr.on_A_a_0)) (= top.impl.usr.do_AB_a_0 top.res.abs_2_a_0) (= top.impl.usr.do_BC_a_0 top.res.abs_3_a_0) (= top.res.abs_20_a_0 (and (and (and (and (and (not (and top.usr.ack_AB_a_0 top.usr.ack_BC_a_0)) top.res.abs_4_a_0) top.res.abs_5_a_0) top.impl.usr.empty_section_a_0) top.res.abs_15_a_0) top.res.abs_19_a_0)) (let ((X1 top.res.abs_21_a_0)) (let ((X2 top.res.abs_24_a_0)) (let ((X3 top.res.abs_23_a_0)) (let ((X4 (not (and top.impl.usr.do_AB_a_0 top.impl.usr.do_BC_a_0)))) (let ((X5 top.res.abs_22_a_0)) (and (= top.usr.OK_a_0 (=> X1 (and (and (and X5 X4) X3) X2))) (= top.res.abs_6_a_0 (not top.impl.usr.empty_section_a_0)) (= top.res.abs_8_a_0 (let ((X6 top.res.nondet_4)) X6)) (= top.res.abs_11_a_0 (let ((X6 top.res.nondet_5)) X6)) (__node_init_implies_0 top.impl.usr.grant_access_a_0 top.impl.usr.empty_section_a_0 top.res.abs_22_a_0 top.res.inst_86_a_0) (__node_init_UMS_0 top.usr.on_A_a_0 top.usr.on_B_a_0 top.usr.on_C_a_0 top.usr.ack_AB_a_0 top.usr.ack_BC_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_85_a_0) (__node_init_always_from_to_0 top.usr.ack_AB_a_0 top.impl.usr.grant_access_a_0 top.impl.usr.only_on_B_a_0 top.res.nondet_7 top.res.nondet_6 top.res.abs_23_a_0 top.res.inst_84_a_0 top.res.inst_83_a_0 top.res.inst_82_a_0 top.res.inst_81_a_0 top.res.inst_80_a_0 top.res.inst_79_a_0 top.res.inst_78_a_0 top.res.inst_77_a_0 top.res.inst_76_a_0 top.res.inst_75_a_0 top.res.inst_74_a_0 top.res.inst_73_a_0 top.res.inst_72_a_0 top.res.inst_71_a_0 top.res.inst_70_a_0 top.res.inst_69_a_0 top.res.inst_68_a_0 top.res.inst_67_a_0 top.res.inst_66_a_0) (__node_init_always_from_to_0 top.usr.ack_BC_a_0 top.impl.usr.grant_exit_a_0 top.impl.usr.empty_section_a_0 top.res.nondet_9 top.res.nondet_8 top.res.abs_24_a_0 top.res.inst_65_a_0 top.res.inst_64_a_0 top.res.inst_63_a_0 top.res.inst_62_a_0 top.res.inst_61_a_0 top.res.inst_60_a_0 top.res.inst_59_a_0 top.res.inst_58_a_0 top.res.inst_57_a_0 top.res.inst_56_a_0 top.res.inst_55_a_0 top.res.inst_54_a_0 top.res.inst_53_a_0 top.res.inst_52_a_0 top.res.inst_51_a_0 top.res.inst_50_a_0 top.res.inst_49_a_0 top.res.inst_48_a_0 top.res.inst_47_a_0) (__node_init_Sofar_0 top.res.abs_20_a_0 top.res.abs_21_a_0 top.res.inst_46_a_0) (__node_init_always_from_to_0 top.usr.ack_AB_a_0 top.usr.ack_AB_a_0 top.impl.usr.do_BC_a_0 top.res.nondet_1 top.res.nondet_0 top.res.abs_4_a_0 top.res.inst_45_a_0 top.res.inst_44_a_0 top.res.inst_43_a_0 top.res.inst_42_a_0 top.res.inst_41_a_0 top.res.inst_40_a_0 top.res.inst_39_a_0 top.res.inst_38_a_0 top.res.inst_37_a_0 top.res.inst_36_a_0 top.res.inst_35_a_0 top.res.inst_34_a_0 top.res.inst_33_a_0 top.res.inst_32_a_0 top.res.inst_31_a_0 top.res.inst_30_a_0 top.res.inst_29_a_0 top.res.inst_28_a_0 top.res.inst_27_a_0) (__node_init_always_from_to_0 top.usr.ack_BC_a_0 top.usr.ack_BC_a_0 top.impl.usr.do_AB_a_0 top.res.nondet_3 top.res.nondet_2 top.res.abs_5_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0) (__node_init_implies_0 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_7_a_0) (__node_init_edge_0 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_6_a_0) (__node_init_implies_0 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.inst_5_a_0) (__node_init_edge_0 top.usr.on_C_a_0 top.res.abs_10_a_0 top.res.inst_4_a_0) (__node_init_implies_0 top.res.abs_14_a_0 top.usr.on_B_a_0 top.res.abs_15_a_0 top.res.inst_3_a_0) (__node_init_edge_0 top.res.abs_13_a_0 top.res.abs_14_a_0 top.res.inst_2_a_0) (__node_init_implies_0 top.res.abs_17_a_0 top.res.abs_18_a_0 top.res.abs_19_a_0 top.res.inst_1_a_0) (__node_init_edge_0 top.res.abs_16_a_0 top.res.abs_17_a_0 top.res.inst_0_a_0) top.res.init_flag_a_0)))))))) +(define-fun __node_trans_top_0 ((top.usr.on_A_a_1 Bool) (top.usr.on_B_a_1 Bool) (top.usr.on_C_a_1 Bool) (top.usr.ack_AB_a_1 Bool) (top.usr.ack_BC_a_1 Bool) (top.res.nondet_9 Bool) (top.res.nondet_8 Bool) (top.res.nondet_7 Bool) (top.res.nondet_6 Bool) (top.res.nondet_5 Bool) (top.res.nondet_4 Bool) (top.res.nondet_3 Bool) (top.res.nondet_2 Bool) (top.res.nondet_1 Bool) (top.res.nondet_0 Bool) (top.usr.OK_a_1 Bool) (top.res.init_flag_a_1 Bool) (top.impl.usr.grant_access_a_1 Bool) (top.impl.usr.grant_exit_a_1 Bool) (top.impl.usr.do_AB_a_1 Bool) (top.impl.usr.do_BC_a_1 Bool) (top.impl.usr.empty_section_a_1 Bool) (top.impl.usr.only_on_B_a_1 Bool) (top.res.abs_0_a_1 Bool) (top.res.abs_1_a_1 Bool) (top.res.abs_2_a_1 Bool) (top.res.abs_3_a_1 Bool) (top.res.abs_4_a_1 Bool) (top.res.abs_5_a_1 Bool) (top.res.abs_6_a_1 Bool) (top.res.abs_7_a_1 Bool) (top.res.abs_8_a_1 Bool) (top.res.abs_9_a_1 Bool) (top.res.abs_10_a_1 Bool) (top.res.abs_11_a_1 Bool) (top.res.abs_12_a_1 Bool) (top.res.abs_13_a_1 Bool) (top.res.abs_14_a_1 Bool) (top.res.abs_15_a_1 Bool) (top.res.abs_16_a_1 Bool) (top.res.abs_17_a_1 Bool) (top.res.abs_18_a_1 Bool) (top.res.abs_19_a_1 Bool) (top.res.abs_20_a_1 Bool) (top.res.abs_21_a_1 Bool) (top.res.abs_22_a_1 Bool) (top.res.abs_23_a_1 Bool) (top.res.abs_24_a_1 Bool) (top.res.inst_86_a_1 Bool) (top.res.inst_85_a_1 Bool) (top.res.inst_84_a_1 Bool) (top.res.inst_83_a_1 Bool) (top.res.inst_82_a_1 Bool) (top.res.inst_81_a_1 Bool) (top.res.inst_80_a_1 Bool) (top.res.inst_79_a_1 Bool) (top.res.inst_78_a_1 Bool) (top.res.inst_77_a_1 Bool) (top.res.inst_76_a_1 Bool) (top.res.inst_75_a_1 Bool) (top.res.inst_74_a_1 Bool) (top.res.inst_73_a_1 Bool) (top.res.inst_72_a_1 Bool) (top.res.inst_71_a_1 Bool) (top.res.inst_70_a_1 Bool) (top.res.inst_69_a_1 Bool) (top.res.inst_68_a_1 Bool) (top.res.inst_67_a_1 Bool) (top.res.inst_66_a_1 Bool) (top.res.inst_65_a_1 Bool) (top.res.inst_64_a_1 Bool) (top.res.inst_63_a_1 Bool) (top.res.inst_62_a_1 Bool) (top.res.inst_61_a_1 Bool) (top.res.inst_60_a_1 Bool) (top.res.inst_59_a_1 Bool) (top.res.inst_58_a_1 Bool) (top.res.inst_57_a_1 Bool) (top.res.inst_56_a_1 Bool) (top.res.inst_55_a_1 Bool) (top.res.inst_54_a_1 Bool) (top.res.inst_53_a_1 Bool) (top.res.inst_52_a_1 Bool) (top.res.inst_51_a_1 Bool) (top.res.inst_50_a_1 Bool) (top.res.inst_49_a_1 Bool) (top.res.inst_48_a_1 Bool) (top.res.inst_47_a_1 Bool) (top.res.inst_46_a_1 Bool) (top.res.inst_45_a_1 Bool) (top.res.inst_44_a_1 Bool) (top.res.inst_43_a_1 Bool) (top.res.inst_42_a_1 Bool) (top.res.inst_41_a_1 Bool) (top.res.inst_40_a_1 Bool) (top.res.inst_39_a_1 Bool) (top.res.inst_38_a_1 Bool) (top.res.inst_37_a_1 Bool) (top.res.inst_36_a_1 Bool) (top.res.inst_35_a_1 Bool) (top.res.inst_34_a_1 Bool) (top.res.inst_33_a_1 Bool) (top.res.inst_32_a_1 Bool) (top.res.inst_31_a_1 Bool) (top.res.inst_30_a_1 Bool) (top.res.inst_29_a_1 Bool) (top.res.inst_28_a_1 Bool) (top.res.inst_27_a_1 Bool) (top.res.inst_26_a_1 Bool) (top.res.inst_25_a_1 Bool) (top.res.inst_24_a_1 Bool) (top.res.inst_23_a_1 Bool) (top.res.inst_22_a_1 Bool) (top.res.inst_21_a_1 Bool) (top.res.inst_20_a_1 Bool) (top.res.inst_19_a_1 Bool) (top.res.inst_18_a_1 Bool) (top.res.inst_17_a_1 Bool) (top.res.inst_16_a_1 Bool) (top.res.inst_15_a_1 Bool) (top.res.inst_14_a_1 Bool) (top.res.inst_13_a_1 Bool) (top.res.inst_12_a_1 Bool) (top.res.inst_11_a_1 Bool) (top.res.inst_10_a_1 Bool) (top.res.inst_9_a_1 Bool) (top.res.inst_8_a_1 Bool) (top.res.inst_7_a_1 Bool) (top.res.inst_6_a_1 Bool) (top.res.inst_5_a_1 Bool) (top.res.inst_4_a_1 Bool) (top.res.inst_3_a_1 Bool) (top.res.inst_2_a_1 Bool) (top.res.inst_1_a_1 Bool) (top.res.inst_0_a_1 Bool) (top.usr.on_A_a_0 Bool) (top.usr.on_B_a_0 Bool) (top.usr.on_C_a_0 Bool) (top.usr.ack_AB_a_0 Bool) (top.usr.ack_BC_a_0 Bool) (top.usr.OK_a_0 Bool) (top.res.init_flag_a_0 Bool) (top.impl.usr.grant_access_a_0 Bool) (top.impl.usr.grant_exit_a_0 Bool) (top.impl.usr.do_AB_a_0 Bool) (top.impl.usr.do_BC_a_0 Bool) (top.impl.usr.empty_section_a_0 Bool) (top.impl.usr.only_on_B_a_0 Bool) (top.res.abs_0_a_0 Bool) (top.res.abs_1_a_0 Bool) (top.res.abs_2_a_0 Bool) (top.res.abs_3_a_0 Bool) (top.res.abs_4_a_0 Bool) (top.res.abs_5_a_0 Bool) (top.res.abs_6_a_0 Bool) (top.res.abs_7_a_0 Bool) (top.res.abs_8_a_0 Bool) (top.res.abs_9_a_0 Bool) (top.res.abs_10_a_0 Bool) (top.res.abs_11_a_0 Bool) (top.res.abs_12_a_0 Bool) (top.res.abs_13_a_0 Bool) (top.res.abs_14_a_0 Bool) (top.res.abs_15_a_0 Bool) (top.res.abs_16_a_0 Bool) (top.res.abs_17_a_0 Bool) (top.res.abs_18_a_0 Bool) (top.res.abs_19_a_0 Bool) (top.res.abs_20_a_0 Bool) (top.res.abs_21_a_0 Bool) (top.res.abs_22_a_0 Bool) (top.res.abs_23_a_0 Bool) (top.res.abs_24_a_0 Bool) (top.res.inst_86_a_0 Bool) (top.res.inst_85_a_0 Bool) (top.res.inst_84_a_0 Bool) (top.res.inst_83_a_0 Bool) (top.res.inst_82_a_0 Bool) (top.res.inst_81_a_0 Bool) (top.res.inst_80_a_0 Bool) (top.res.inst_79_a_0 Bool) (top.res.inst_78_a_0 Bool) (top.res.inst_77_a_0 Bool) (top.res.inst_76_a_0 Bool) (top.res.inst_75_a_0 Bool) (top.res.inst_74_a_0 Bool) (top.res.inst_73_a_0 Bool) (top.res.inst_72_a_0 Bool) (top.res.inst_71_a_0 Bool) (top.res.inst_70_a_0 Bool) (top.res.inst_69_a_0 Bool) (top.res.inst_68_a_0 Bool) (top.res.inst_67_a_0 Bool) (top.res.inst_66_a_0 Bool) (top.res.inst_65_a_0 Bool) (top.res.inst_64_a_0 Bool) (top.res.inst_63_a_0 Bool) (top.res.inst_62_a_0 Bool) (top.res.inst_61_a_0 Bool) (top.res.inst_60_a_0 Bool) (top.res.inst_59_a_0 Bool) (top.res.inst_58_a_0 Bool) (top.res.inst_57_a_0 Bool) (top.res.inst_56_a_0 Bool) (top.res.inst_55_a_0 Bool) (top.res.inst_54_a_0 Bool) (top.res.inst_53_a_0 Bool) (top.res.inst_52_a_0 Bool) (top.res.inst_51_a_0 Bool) (top.res.inst_50_a_0 Bool) (top.res.inst_49_a_0 Bool) (top.res.inst_48_a_0 Bool) (top.res.inst_47_a_0 Bool) (top.res.inst_46_a_0 Bool) (top.res.inst_45_a_0 Bool) (top.res.inst_44_a_0 Bool) (top.res.inst_43_a_0 Bool) (top.res.inst_42_a_0 Bool) (top.res.inst_41_a_0 Bool) (top.res.inst_40_a_0 Bool) (top.res.inst_39_a_0 Bool) (top.res.inst_38_a_0 Bool) (top.res.inst_37_a_0 Bool) (top.res.inst_36_a_0 Bool) (top.res.inst_35_a_0 Bool) (top.res.inst_34_a_0 Bool) (top.res.inst_33_a_0 Bool) (top.res.inst_32_a_0 Bool) (top.res.inst_31_a_0 Bool) (top.res.inst_30_a_0 Bool) (top.res.inst_29_a_0 Bool) (top.res.inst_28_a_0 Bool) (top.res.inst_27_a_0 Bool) (top.res.inst_26_a_0 Bool) (top.res.inst_25_a_0 Bool) (top.res.inst_24_a_0 Bool) (top.res.inst_23_a_0 Bool) (top.res.inst_22_a_0 Bool) (top.res.inst_21_a_0 Bool) (top.res.inst_20_a_0 Bool) (top.res.inst_19_a_0 Bool) (top.res.inst_18_a_0 Bool) (top.res.inst_17_a_0 Bool) (top.res.inst_16_a_0 Bool) (top.res.inst_15_a_0 Bool) (top.res.inst_14_a_0 Bool) (top.res.inst_13_a_0 Bool) (top.res.inst_12_a_0 Bool) (top.res.inst_11_a_0 Bool) (top.res.inst_10_a_0 Bool) (top.res.inst_9_a_0 Bool) (top.res.inst_8_a_0 Bool) (top.res.inst_7_a_0 Bool) (top.res.inst_6_a_0 Bool) (top.res.inst_5_a_0 Bool) (top.res.inst_4_a_0 Bool) (top.res.inst_3_a_0 Bool) (top.res.inst_2_a_0 Bool) (top.res.inst_1_a_0 Bool) (top.res.inst_0_a_0 Bool)) Bool + (and (= top.impl.usr.empty_section_a_1 (not (or (or top.usr.on_A_a_1 top.usr.on_B_a_1) top.usr.on_C_a_1))) (= top.impl.usr.grant_exit_a_1 top.res.abs_1_a_1) (= top.impl.usr.only_on_B_a_1 (and top.usr.on_B_a_1 (not (or top.usr.on_A_a_1 top.usr.on_C_a_1)))) (= top.impl.usr.grant_access_a_1 top.res.abs_0_a_1) (= top.res.abs_18_a_1 (or top.usr.on_A_a_1 top.usr.on_C_a_1)) (= top.res.abs_16_a_1 (not top.usr.on_B_a_1)) (= top.res.abs_13_a_1 (not top.usr.on_A_a_1)) (= top.res.abs_11_a_1 top.impl.usr.grant_exit_a_0) (= top.res.abs_8_a_1 top.impl.usr.grant_access_a_0) (= top.res.abs_6_a_1 (not top.impl.usr.empty_section_a_1)) (= top.impl.usr.do_AB_a_1 top.res.abs_2_a_1) (= top.impl.usr.do_BC_a_1 top.res.abs_3_a_1) (= top.res.abs_20_a_1 (and (and (and (and (and (and (not (and top.usr.ack_AB_a_1 top.usr.ack_BC_a_1)) top.res.abs_4_a_1) top.res.abs_5_a_1) top.res.abs_9_a_1) top.res.abs_12_a_1) top.res.abs_15_a_1) top.res.abs_19_a_1)) (let ((X1 top.res.abs_21_a_1)) (let ((X2 top.res.abs_24_a_1)) (let ((X3 top.res.abs_23_a_1)) (let ((X4 (not (and top.impl.usr.do_AB_a_1 top.impl.usr.do_BC_a_1)))) (let ((X5 top.res.abs_22_a_1)) (and (= top.usr.OK_a_1 (=> X1 (and (and (and X5 X4) X3) X2))) (__node_trans_implies_0 top.impl.usr.grant_access_a_1 top.impl.usr.empty_section_a_1 top.res.abs_22_a_1 top.res.inst_86_a_1 top.impl.usr.grant_access_a_0 top.impl.usr.empty_section_a_0 top.res.abs_22_a_0 top.res.inst_86_a_0) (__node_trans_UMS_0 top.usr.on_A_a_1 top.usr.on_B_a_1 top.usr.on_C_a_1 top.usr.ack_AB_a_1 top.usr.ack_BC_a_1 top.res.abs_0_a_1 top.res.abs_1_a_1 top.res.abs_2_a_1 top.res.abs_3_a_1 top.res.inst_85_a_1 top.usr.on_A_a_0 top.usr.on_B_a_0 top.usr.on_C_a_0 top.usr.ack_AB_a_0 top.usr.ack_BC_a_0 top.res.abs_0_a_0 top.res.abs_1_a_0 top.res.abs_2_a_0 top.res.abs_3_a_0 top.res.inst_85_a_0) (__node_trans_always_from_to_0 top.usr.ack_AB_a_1 top.impl.usr.grant_access_a_1 top.impl.usr.only_on_B_a_1 top.res.nondet_7 top.res.nondet_6 top.res.abs_23_a_1 top.res.inst_84_a_1 top.res.inst_83_a_1 top.res.inst_82_a_1 top.res.inst_81_a_1 top.res.inst_80_a_1 top.res.inst_79_a_1 top.res.inst_78_a_1 top.res.inst_77_a_1 top.res.inst_76_a_1 top.res.inst_75_a_1 top.res.inst_74_a_1 top.res.inst_73_a_1 top.res.inst_72_a_1 top.res.inst_71_a_1 top.res.inst_70_a_1 top.res.inst_69_a_1 top.res.inst_68_a_1 top.res.inst_67_a_1 top.res.inst_66_a_1 top.usr.ack_AB_a_0 top.impl.usr.grant_access_a_0 top.impl.usr.only_on_B_a_0 top.res.abs_23_a_0 top.res.inst_84_a_0 top.res.inst_83_a_0 top.res.inst_82_a_0 top.res.inst_81_a_0 top.res.inst_80_a_0 top.res.inst_79_a_0 top.res.inst_78_a_0 top.res.inst_77_a_0 top.res.inst_76_a_0 top.res.inst_75_a_0 top.res.inst_74_a_0 top.res.inst_73_a_0 top.res.inst_72_a_0 top.res.inst_71_a_0 top.res.inst_70_a_0 top.res.inst_69_a_0 top.res.inst_68_a_0 top.res.inst_67_a_0 top.res.inst_66_a_0) (__node_trans_always_from_to_0 top.usr.ack_BC_a_1 top.impl.usr.grant_exit_a_1 top.impl.usr.empty_section_a_1 top.res.nondet_9 top.res.nondet_8 top.res.abs_24_a_1 top.res.inst_65_a_1 top.res.inst_64_a_1 top.res.inst_63_a_1 top.res.inst_62_a_1 top.res.inst_61_a_1 top.res.inst_60_a_1 top.res.inst_59_a_1 top.res.inst_58_a_1 top.res.inst_57_a_1 top.res.inst_56_a_1 top.res.inst_55_a_1 top.res.inst_54_a_1 top.res.inst_53_a_1 top.res.inst_52_a_1 top.res.inst_51_a_1 top.res.inst_50_a_1 top.res.inst_49_a_1 top.res.inst_48_a_1 top.res.inst_47_a_1 top.usr.ack_BC_a_0 top.impl.usr.grant_exit_a_0 top.impl.usr.empty_section_a_0 top.res.abs_24_a_0 top.res.inst_65_a_0 top.res.inst_64_a_0 top.res.inst_63_a_0 top.res.inst_62_a_0 top.res.inst_61_a_0 top.res.inst_60_a_0 top.res.inst_59_a_0 top.res.inst_58_a_0 top.res.inst_57_a_0 top.res.inst_56_a_0 top.res.inst_55_a_0 top.res.inst_54_a_0 top.res.inst_53_a_0 top.res.inst_52_a_0 top.res.inst_51_a_0 top.res.inst_50_a_0 top.res.inst_49_a_0 top.res.inst_48_a_0 top.res.inst_47_a_0) (__node_trans_Sofar_0 top.res.abs_20_a_1 top.res.abs_21_a_1 top.res.inst_46_a_1 top.res.abs_20_a_0 top.res.abs_21_a_0 top.res.inst_46_a_0) (__node_trans_always_from_to_0 top.usr.ack_AB_a_1 top.usr.ack_AB_a_1 top.impl.usr.do_BC_a_1 top.res.nondet_1 top.res.nondet_0 top.res.abs_4_a_1 top.res.inst_45_a_1 top.res.inst_44_a_1 top.res.inst_43_a_1 top.res.inst_42_a_1 top.res.inst_41_a_1 top.res.inst_40_a_1 top.res.inst_39_a_1 top.res.inst_38_a_1 top.res.inst_37_a_1 top.res.inst_36_a_1 top.res.inst_35_a_1 top.res.inst_34_a_1 top.res.inst_33_a_1 top.res.inst_32_a_1 top.res.inst_31_a_1 top.res.inst_30_a_1 top.res.inst_29_a_1 top.res.inst_28_a_1 top.res.inst_27_a_1 top.usr.ack_AB_a_0 top.usr.ack_AB_a_0 top.impl.usr.do_BC_a_0 top.res.abs_4_a_0 top.res.inst_45_a_0 top.res.inst_44_a_0 top.res.inst_43_a_0 top.res.inst_42_a_0 top.res.inst_41_a_0 top.res.inst_40_a_0 top.res.inst_39_a_0 top.res.inst_38_a_0 top.res.inst_37_a_0 top.res.inst_36_a_0 top.res.inst_35_a_0 top.res.inst_34_a_0 top.res.inst_33_a_0 top.res.inst_32_a_0 top.res.inst_31_a_0 top.res.inst_30_a_0 top.res.inst_29_a_0 top.res.inst_28_a_0 top.res.inst_27_a_0) (__node_trans_always_from_to_0 top.usr.ack_BC_a_1 top.usr.ack_BC_a_1 top.impl.usr.do_AB_a_1 top.res.nondet_3 top.res.nondet_2 top.res.abs_5_a_1 top.res.inst_26_a_1 top.res.inst_25_a_1 top.res.inst_24_a_1 top.res.inst_23_a_1 top.res.inst_22_a_1 top.res.inst_21_a_1 top.res.inst_20_a_1 top.res.inst_19_a_1 top.res.inst_18_a_1 top.res.inst_17_a_1 top.res.inst_16_a_1 top.res.inst_15_a_1 top.res.inst_14_a_1 top.res.inst_13_a_1 top.res.inst_12_a_1 top.res.inst_11_a_1 top.res.inst_10_a_1 top.res.inst_9_a_1 top.res.inst_8_a_1 top.usr.ack_BC_a_0 top.usr.ack_BC_a_0 top.impl.usr.do_AB_a_0 top.res.abs_5_a_0 top.res.inst_26_a_0 top.res.inst_25_a_0 top.res.inst_24_a_0 top.res.inst_23_a_0 top.res.inst_22_a_0 top.res.inst_21_a_0 top.res.inst_20_a_0 top.res.inst_19_a_0 top.res.inst_18_a_0 top.res.inst_17_a_0 top.res.inst_16_a_0 top.res.inst_15_a_0 top.res.inst_14_a_0 top.res.inst_13_a_0 top.res.inst_12_a_0 top.res.inst_11_a_0 top.res.inst_10_a_0 top.res.inst_9_a_0 top.res.inst_8_a_0) (__node_trans_implies_0 top.res.abs_7_a_1 top.res.abs_8_a_1 top.res.abs_9_a_1 top.res.inst_7_a_1 top.res.abs_7_a_0 top.res.abs_8_a_0 top.res.abs_9_a_0 top.res.inst_7_a_0) (__node_trans_edge_0 top.res.abs_6_a_1 top.res.abs_7_a_1 top.res.inst_6_a_1 top.res.abs_6_a_0 top.res.abs_7_a_0 top.res.inst_6_a_0) (__node_trans_implies_0 top.res.abs_10_a_1 top.res.abs_11_a_1 top.res.abs_12_a_1 top.res.inst_5_a_1 top.res.abs_10_a_0 top.res.abs_11_a_0 top.res.abs_12_a_0 top.res.inst_5_a_0) (__node_trans_edge_0 top.usr.on_C_a_1 top.res.abs_10_a_1 top.res.inst_4_a_1 top.usr.on_C_a_0 top.res.abs_10_a_0 top.res.inst_4_a_0) (__node_trans_implies_0 top.res.abs_14_a_1 top.usr.on_B_a_1 top.res.abs_15_a_1 top.res.inst_3_a_1 top.res.abs_14_a_0 top.usr.on_B_a_0 top.res.abs_15_a_0 top.res.inst_3_a_0) (__node_trans_edge_0 top.res.abs_13_a_1 top.res.abs_14_a_1 top.res.inst_2_a_1 top.res.abs_13_a_0 top.res.abs_14_a_0 top.res.inst_2_a_0) (__node_trans_implies_0 top.res.abs_17_a_1 top.res.abs_18_a_1 top.res.abs_19_a_1 top.res.inst_1_a_1 top.res.abs_17_a_0 top.res.abs_18_a_0 top.res.abs_19_a_0 top.res.inst_1_a_0) (__node_trans_edge_0 top.res.abs_16_a_1 top.res.abs_17_a_1 top.res.inst_0_a_1 top.res.abs_16_a_0 top.res.abs_17_a_0 top.res.inst_0_a_0) (not top.res.init_flag_a_1))))))))) +(synth-inv str_invariant ((top.usr.on_A Bool) (top.usr.on_B Bool) (top.usr.on_C Bool) (top.usr.ack_AB Bool) (top.usr.ack_BC Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.grant_access Bool) (top.impl.usr.grant_exit Bool) (top.impl.usr.do_AB Bool) (top.impl.usr.do_BC Bool) (top.impl.usr.empty_section Bool) (top.impl.usr.only_on_B Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.abs_13 Bool) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.abs_17 Bool) (top.res.abs_18 Bool) (top.res.abs_19 Bool) (top.res.abs_20 Bool) (top.res.abs_21 Bool) (top.res.abs_22 Bool) (top.res.abs_23 Bool) (top.res.abs_24 Bool) (top.res.inst_86 Bool) (top.res.inst_85 Bool) (top.res.inst_84 Bool) (top.res.inst_83 Bool) (top.res.inst_82 Bool) (top.res.inst_81 Bool) (top.res.inst_80 Bool) (top.res.inst_79 Bool) (top.res.inst_78 Bool) (top.res.inst_77 Bool) (top.res.inst_76 Bool) (top.res.inst_75 Bool) (top.res.inst_74 Bool) (top.res.inst_73 Bool) (top.res.inst_72 Bool) (top.res.inst_71 Bool) (top.res.inst_70 Bool) (top.res.inst_69 Bool) (top.res.inst_68 Bool) (top.res.inst_67 Bool) (top.res.inst_66 Bool) (top.res.inst_65 Bool) (top.res.inst_64 Bool) (top.res.inst_63 Bool) (top.res.inst_62 Bool) (top.res.inst_61 Bool) (top.res.inst_60 Bool) (top.res.inst_59 Bool) (top.res.inst_58 Bool) (top.res.inst_57 Bool) (top.res.inst_56 Bool) (top.res.inst_55 Bool) (top.res.inst_54 Bool) (top.res.inst_53 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Bool) (top.res.inst_50 Bool) (top.res.inst_49 Bool) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool))) + +(declare-var top.res.nondet_9 Bool) +(declare-var top.res.nondet_8 Bool) +(declare-var top.res.nondet_7 Bool) +(declare-var top.res.nondet_6 Bool) +(declare-var top.res.nondet_5 Bool) +(declare-var top.res.nondet_4 Bool) +(declare-var top.res.nondet_3 Bool) +(declare-var top.res.nondet_2 Bool) +(declare-var top.res.nondet_1 Bool) +(declare-var top.res.nondet_0 Bool) +(define-fun init ((top.usr.on_A Bool) (top.usr.on_B Bool) (top.usr.on_C Bool) (top.usr.ack_AB Bool) (top.usr.ack_BC Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.grant_access Bool) (top.impl.usr.grant_exit Bool) (top.impl.usr.do_AB Bool) (top.impl.usr.do_BC Bool) (top.impl.usr.empty_section Bool) (top.impl.usr.only_on_B Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.abs_13 Bool) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.abs_17 Bool) (top.res.abs_18 Bool) (top.res.abs_19 Bool) (top.res.abs_20 Bool) (top.res.abs_21 Bool) (top.res.abs_22 Bool) (top.res.abs_23 Bool) (top.res.abs_24 Bool) (top.res.inst_86 Bool) (top.res.inst_85 Bool) (top.res.inst_84 Bool) (top.res.inst_83 Bool) (top.res.inst_82 Bool) (top.res.inst_81 Bool) (top.res.inst_80 Bool) (top.res.inst_79 Bool) (top.res.inst_78 Bool) (top.res.inst_77 Bool) (top.res.inst_76 Bool) (top.res.inst_75 Bool) (top.res.inst_74 Bool) (top.res.inst_73 Bool) (top.res.inst_72 Bool) (top.res.inst_71 Bool) (top.res.inst_70 Bool) (top.res.inst_69 Bool) (top.res.inst_68 Bool) (top.res.inst_67 Bool) (top.res.inst_66 Bool) (top.res.inst_65 Bool) (top.res.inst_64 Bool) (top.res.inst_63 Bool) (top.res.inst_62 Bool) (top.res.inst_61 Bool) (top.res.inst_60 Bool) (top.res.inst_59 Bool) (top.res.inst_58 Bool) (top.res.inst_57 Bool) (top.res.inst_56 Bool) (top.res.inst_55 Bool) (top.res.inst_54 Bool) (top.res.inst_53 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Bool) (top.res.inst_50 Bool) (top.res.inst_49 Bool) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + (and (= top.impl.usr.empty_section (not (or (or top.usr.on_A top.usr.on_B) top.usr.on_C))) (= top.impl.usr.grant_exit top.res.abs_1) (= top.impl.usr.only_on_B (and top.usr.on_B (not (or top.usr.on_A top.usr.on_C)))) (= top.impl.usr.grant_access top.res.abs_0) (= top.res.abs_18 (or top.usr.on_A top.usr.on_C)) (= top.res.abs_16 (not top.usr.on_B)) (= top.res.abs_13 (not top.usr.on_A)) (= top.impl.usr.do_AB top.res.abs_2) (= top.impl.usr.do_BC top.res.abs_3) (= top.res.abs_20 (and (and (and (and (and (not (and top.usr.ack_AB top.usr.ack_BC)) top.res.abs_4) top.res.abs_5) top.impl.usr.empty_section) top.res.abs_15) top.res.abs_19)) (let ((X1 top.res.abs_21)) (let ((X2 top.res.abs_24)) (let ((X3 top.res.abs_23)) (let ((X4 (not (and top.impl.usr.do_AB top.impl.usr.do_BC)))) (let ((X5 top.res.abs_22)) (and (= top.usr.OK (=> X1 (and (and (and X5 X4) X3) X2))) (= top.res.abs_6 (not top.impl.usr.empty_section)) (= top.res.abs_8 (let ((X6 top.res.nondet_4)) X6)) (= top.res.abs_11 (let ((X6 top.res.nondet_5)) X6)) (__node_init_implies_0 top.impl.usr.grant_access top.impl.usr.empty_section top.res.abs_22 top.res.inst_86) (__node_init_UMS_0 top.usr.on_A top.usr.on_B top.usr.on_C top.usr.ack_AB top.usr.ack_BC top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_85) (__node_init_always_from_to_0 top.usr.ack_AB top.impl.usr.grant_access top.impl.usr.only_on_B top.res.nondet_7 top.res.nondet_6 top.res.abs_23 top.res.inst_84 top.res.inst_83 top.res.inst_82 top.res.inst_81 top.res.inst_80 top.res.inst_79 top.res.inst_78 top.res.inst_77 top.res.inst_76 top.res.inst_75 top.res.inst_74 top.res.inst_73 top.res.inst_72 top.res.inst_71 top.res.inst_70 top.res.inst_69 top.res.inst_68 top.res.inst_67 top.res.inst_66) (__node_init_always_from_to_0 top.usr.ack_BC top.impl.usr.grant_exit top.impl.usr.empty_section top.res.nondet_9 top.res.nondet_8 top.res.abs_24 top.res.inst_65 top.res.inst_64 top.res.inst_63 top.res.inst_62 top.res.inst_61 top.res.inst_60 top.res.inst_59 top.res.inst_58 top.res.inst_57 top.res.inst_56 top.res.inst_55 top.res.inst_54 top.res.inst_53 top.res.inst_52 top.res.inst_51 top.res.inst_50 top.res.inst_49 top.res.inst_48 top.res.inst_47) (__node_init_Sofar_0 top.res.abs_20 top.res.abs_21 top.res.inst_46) (__node_init_always_from_to_0 top.usr.ack_AB top.usr.ack_AB top.impl.usr.do_BC top.res.nondet_1 top.res.nondet_0 top.res.abs_4 top.res.inst_45 top.res.inst_44 top.res.inst_43 top.res.inst_42 top.res.inst_41 top.res.inst_40 top.res.inst_39 top.res.inst_38 top.res.inst_37 top.res.inst_36 top.res.inst_35 top.res.inst_34 top.res.inst_33 top.res.inst_32 top.res.inst_31 top.res.inst_30 top.res.inst_29 top.res.inst_28 top.res.inst_27) (__node_init_always_from_to_0 top.usr.ack_BC top.usr.ack_BC top.impl.usr.do_AB top.res.nondet_3 top.res.nondet_2 top.res.abs_5 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8) (__node_init_implies_0 top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_7) (__node_init_edge_0 top.res.abs_6 top.res.abs_7 top.res.inst_6) (__node_init_implies_0 top.res.abs_10 top.res.abs_11 top.res.abs_12 top.res.inst_5) (__node_init_edge_0 top.usr.on_C top.res.abs_10 top.res.inst_4) (__node_init_implies_0 top.res.abs_14 top.usr.on_B top.res.abs_15 top.res.inst_3) (__node_init_edge_0 top.res.abs_13 top.res.abs_14 top.res.inst_2) (__node_init_implies_0 top.res.abs_17 top.res.abs_18 top.res.abs_19 top.res.inst_1) (__node_init_edge_0 top.res.abs_16 top.res.abs_17 top.res.inst_0) top.res.init_flag)))))))) +(define-fun trans ((top.usr.on_A Bool) (top.usr.on_B Bool) (top.usr.on_C Bool) (top.usr.ack_AB Bool) (top.usr.ack_BC Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.grant_access Bool) (top.impl.usr.grant_exit Bool) (top.impl.usr.do_AB Bool) (top.impl.usr.do_BC Bool) (top.impl.usr.empty_section Bool) (top.impl.usr.only_on_B Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.abs_13 Bool) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.abs_17 Bool) (top.res.abs_18 Bool) (top.res.abs_19 Bool) (top.res.abs_20 Bool) (top.res.abs_21 Bool) (top.res.abs_22 Bool) (top.res.abs_23 Bool) (top.res.abs_24 Bool) (top.res.inst_86 Bool) (top.res.inst_85 Bool) (top.res.inst_84 Bool) (top.res.inst_83 Bool) (top.res.inst_82 Bool) (top.res.inst_81 Bool) (top.res.inst_80 Bool) (top.res.inst_79 Bool) (top.res.inst_78 Bool) (top.res.inst_77 Bool) (top.res.inst_76 Bool) (top.res.inst_75 Bool) (top.res.inst_74 Bool) (top.res.inst_73 Bool) (top.res.inst_72 Bool) (top.res.inst_71 Bool) (top.res.inst_70 Bool) (top.res.inst_69 Bool) (top.res.inst_68 Bool) (top.res.inst_67 Bool) (top.res.inst_66 Bool) (top.res.inst_65 Bool) (top.res.inst_64 Bool) (top.res.inst_63 Bool) (top.res.inst_62 Bool) (top.res.inst_61 Bool) (top.res.inst_60 Bool) (top.res.inst_59 Bool) (top.res.inst_58 Bool) (top.res.inst_57 Bool) (top.res.inst_56 Bool) (top.res.inst_55 Bool) (top.res.inst_54 Bool) (top.res.inst_53 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Bool) (top.res.inst_50 Bool) (top.res.inst_49 Bool) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool) (top.usr.on_A! Bool) (top.usr.on_B! Bool) (top.usr.on_C! Bool) (top.usr.ack_AB! Bool) (top.usr.ack_BC! Bool) (top.usr.OK! Bool) (top.res.init_flag! Bool) (top.impl.usr.grant_access! Bool) (top.impl.usr.grant_exit! Bool) (top.impl.usr.do_AB! Bool) (top.impl.usr.do_BC! Bool) (top.impl.usr.empty_section! Bool) (top.impl.usr.only_on_B! Bool) (top.res.abs_0! Bool) (top.res.abs_1! Bool) (top.res.abs_2! Bool) (top.res.abs_3! Bool) (top.res.abs_4! Bool) (top.res.abs_5! Bool) (top.res.abs_6! Bool) (top.res.abs_7! Bool) (top.res.abs_8! Bool) (top.res.abs_9! Bool) (top.res.abs_10! Bool) (top.res.abs_11! Bool) (top.res.abs_12! Bool) (top.res.abs_13! Bool) (top.res.abs_14! Bool) (top.res.abs_15! Bool) (top.res.abs_16! Bool) (top.res.abs_17! Bool) (top.res.abs_18! Bool) (top.res.abs_19! Bool) (top.res.abs_20! Bool) (top.res.abs_21! Bool) (top.res.abs_22! Bool) (top.res.abs_23! Bool) (top.res.abs_24! Bool) (top.res.inst_86! Bool) (top.res.inst_85! Bool) (top.res.inst_84! Bool) (top.res.inst_83! Bool) (top.res.inst_82! Bool) (top.res.inst_81! Bool) (top.res.inst_80! Bool) (top.res.inst_79! Bool) (top.res.inst_78! Bool) (top.res.inst_77! Bool) (top.res.inst_76! Bool) (top.res.inst_75! Bool) (top.res.inst_74! Bool) (top.res.inst_73! Bool) (top.res.inst_72! Bool) (top.res.inst_71! Bool) (top.res.inst_70! Bool) (top.res.inst_69! Bool) (top.res.inst_68! Bool) (top.res.inst_67! Bool) (top.res.inst_66! Bool) (top.res.inst_65! Bool) (top.res.inst_64! Bool) (top.res.inst_63! Bool) (top.res.inst_62! Bool) (top.res.inst_61! Bool) (top.res.inst_60! Bool) (top.res.inst_59! Bool) (top.res.inst_58! Bool) (top.res.inst_57! Bool) (top.res.inst_56! Bool) (top.res.inst_55! Bool) (top.res.inst_54! Bool) (top.res.inst_53! Bool) (top.res.inst_52! Bool) (top.res.inst_51! Bool) (top.res.inst_50! Bool) (top.res.inst_49! Bool) (top.res.inst_48! Bool) (top.res.inst_47! Bool) (top.res.inst_46! Bool) (top.res.inst_45! Bool) (top.res.inst_44! Bool) (top.res.inst_43! Bool) (top.res.inst_42! Bool) (top.res.inst_41! Bool) (top.res.inst_40! Bool) (top.res.inst_39! Bool) (top.res.inst_38! Bool) (top.res.inst_37! Bool) (top.res.inst_36! Bool) (top.res.inst_35! Bool) (top.res.inst_34! Bool) (top.res.inst_33! Bool) (top.res.inst_32! Bool) (top.res.inst_31! Bool) (top.res.inst_30! Bool) (top.res.inst_29! Bool) (top.res.inst_28! Bool) (top.res.inst_27! Bool) (top.res.inst_26! Bool) (top.res.inst_25! Bool) (top.res.inst_24! Bool) (top.res.inst_23! Bool) (top.res.inst_22! Bool) (top.res.inst_21! Bool) (top.res.inst_20! Bool) (top.res.inst_19! Bool) (top.res.inst_18! Bool) (top.res.inst_17! Bool) (top.res.inst_16! Bool) (top.res.inst_15! Bool) (top.res.inst_14! Bool) (top.res.inst_13! Bool) (top.res.inst_12! Bool) (top.res.inst_11! Bool) (top.res.inst_10! Bool) (top.res.inst_9! Bool) (top.res.inst_8! Bool) (top.res.inst_7! Bool) (top.res.inst_6! Bool) (top.res.inst_5! Bool) (top.res.inst_4! Bool) (top.res.inst_3! Bool) (top.res.inst_2! Bool) (top.res.inst_1! Bool) (top.res.inst_0! Bool)) Bool + (and (and (= top.impl.usr.empty_section! (not (or (or top.usr.on_A! top.usr.on_B!) top.usr.on_C!))) (= top.impl.usr.grant_exit! top.res.abs_1!) (= top.impl.usr.only_on_B! (and top.usr.on_B! (not (or top.usr.on_A! top.usr.on_C!)))) (= top.impl.usr.grant_access! top.res.abs_0!) (= top.res.abs_18! (or top.usr.on_A! top.usr.on_C!)) (= top.res.abs_16! (not top.usr.on_B!)) (= top.res.abs_13! (not top.usr.on_A!)) (= top.res.abs_11! top.impl.usr.grant_exit) (= top.res.abs_8! top.impl.usr.grant_access) (= top.res.abs_6! (not top.impl.usr.empty_section!)) (= top.impl.usr.do_AB! top.res.abs_2!) (= top.impl.usr.do_BC! top.res.abs_3!) (= top.res.abs_20! (and (and (and (and (and (and (not (and top.usr.ack_AB! top.usr.ack_BC!)) top.res.abs_4!) top.res.abs_5!) top.res.abs_9!) top.res.abs_12!) top.res.abs_15!) top.res.abs_19!)) (let ((X1 top.res.abs_21!)) (let ((X2 top.res.abs_24!)) (let ((X3 top.res.abs_23!)) (let ((X4 (not (and top.impl.usr.do_AB! top.impl.usr.do_BC!)))) (let ((X5 top.res.abs_22!)) (and (= top.usr.OK! (=> X1 (and (and (and X5 X4) X3) X2))) (__node_trans_implies_0 top.impl.usr.grant_access! top.impl.usr.empty_section! top.res.abs_22! top.res.inst_86! top.impl.usr.grant_access top.impl.usr.empty_section top.res.abs_22 top.res.inst_86) (__node_trans_UMS_0 top.usr.on_A! top.usr.on_B! top.usr.on_C! top.usr.ack_AB! top.usr.ack_BC! top.res.abs_0! top.res.abs_1! top.res.abs_2! top.res.abs_3! top.res.inst_85! top.usr.on_A top.usr.on_B top.usr.on_C top.usr.ack_AB top.usr.ack_BC top.res.abs_0 top.res.abs_1 top.res.abs_2 top.res.abs_3 top.res.inst_85) (__node_trans_always_from_to_0 top.usr.ack_AB! top.impl.usr.grant_access! top.impl.usr.only_on_B! top.res.nondet_7 top.res.nondet_6 top.res.abs_23! top.res.inst_84! top.res.inst_83! top.res.inst_82! top.res.inst_81! top.res.inst_80! top.res.inst_79! top.res.inst_78! top.res.inst_77! top.res.inst_76! top.res.inst_75! top.res.inst_74! top.res.inst_73! top.res.inst_72! top.res.inst_71! top.res.inst_70! top.res.inst_69! top.res.inst_68! top.res.inst_67! top.res.inst_66! top.usr.ack_AB top.impl.usr.grant_access top.impl.usr.only_on_B top.res.abs_23 top.res.inst_84 top.res.inst_83 top.res.inst_82 top.res.inst_81 top.res.inst_80 top.res.inst_79 top.res.inst_78 top.res.inst_77 top.res.inst_76 top.res.inst_75 top.res.inst_74 top.res.inst_73 top.res.inst_72 top.res.inst_71 top.res.inst_70 top.res.inst_69 top.res.inst_68 top.res.inst_67 top.res.inst_66) (__node_trans_always_from_to_0 top.usr.ack_BC! top.impl.usr.grant_exit! top.impl.usr.empty_section! top.res.nondet_9 top.res.nondet_8 top.res.abs_24! top.res.inst_65! top.res.inst_64! top.res.inst_63! top.res.inst_62! top.res.inst_61! top.res.inst_60! top.res.inst_59! top.res.inst_58! top.res.inst_57! top.res.inst_56! top.res.inst_55! top.res.inst_54! top.res.inst_53! top.res.inst_52! top.res.inst_51! top.res.inst_50! top.res.inst_49! top.res.inst_48! top.res.inst_47! top.usr.ack_BC top.impl.usr.grant_exit top.impl.usr.empty_section top.res.abs_24 top.res.inst_65 top.res.inst_64 top.res.inst_63 top.res.inst_62 top.res.inst_61 top.res.inst_60 top.res.inst_59 top.res.inst_58 top.res.inst_57 top.res.inst_56 top.res.inst_55 top.res.inst_54 top.res.inst_53 top.res.inst_52 top.res.inst_51 top.res.inst_50 top.res.inst_49 top.res.inst_48 top.res.inst_47) (__node_trans_Sofar_0 top.res.abs_20! top.res.abs_21! top.res.inst_46! top.res.abs_20 top.res.abs_21 top.res.inst_46) (__node_trans_always_from_to_0 top.usr.ack_AB! top.usr.ack_AB! top.impl.usr.do_BC! top.res.nondet_1 top.res.nondet_0 top.res.abs_4! top.res.inst_45! top.res.inst_44! top.res.inst_43! top.res.inst_42! top.res.inst_41! top.res.inst_40! top.res.inst_39! top.res.inst_38! top.res.inst_37! top.res.inst_36! top.res.inst_35! top.res.inst_34! top.res.inst_33! top.res.inst_32! top.res.inst_31! top.res.inst_30! top.res.inst_29! top.res.inst_28! top.res.inst_27! top.usr.ack_AB top.usr.ack_AB top.impl.usr.do_BC top.res.abs_4 top.res.inst_45 top.res.inst_44 top.res.inst_43 top.res.inst_42 top.res.inst_41 top.res.inst_40 top.res.inst_39 top.res.inst_38 top.res.inst_37 top.res.inst_36 top.res.inst_35 top.res.inst_34 top.res.inst_33 top.res.inst_32 top.res.inst_31 top.res.inst_30 top.res.inst_29 top.res.inst_28 top.res.inst_27) (__node_trans_always_from_to_0 top.usr.ack_BC! top.usr.ack_BC! top.impl.usr.do_AB! top.res.nondet_3 top.res.nondet_2 top.res.abs_5! top.res.inst_26! top.res.inst_25! top.res.inst_24! top.res.inst_23! top.res.inst_22! top.res.inst_21! top.res.inst_20! top.res.inst_19! top.res.inst_18! top.res.inst_17! top.res.inst_16! top.res.inst_15! top.res.inst_14! top.res.inst_13! top.res.inst_12! top.res.inst_11! top.res.inst_10! top.res.inst_9! top.res.inst_8! top.usr.ack_BC top.usr.ack_BC top.impl.usr.do_AB top.res.abs_5 top.res.inst_26 top.res.inst_25 top.res.inst_24 top.res.inst_23 top.res.inst_22 top.res.inst_21 top.res.inst_20 top.res.inst_19 top.res.inst_18 top.res.inst_17 top.res.inst_16 top.res.inst_15 top.res.inst_14 top.res.inst_13 top.res.inst_12 top.res.inst_11 top.res.inst_10 top.res.inst_9 top.res.inst_8) (__node_trans_implies_0 top.res.abs_7! top.res.abs_8! top.res.abs_9! top.res.inst_7! top.res.abs_7 top.res.abs_8 top.res.abs_9 top.res.inst_7) (__node_trans_edge_0 top.res.abs_6! top.res.abs_7! top.res.inst_6! top.res.abs_6 top.res.abs_7 top.res.inst_6) (__node_trans_implies_0 top.res.abs_10! top.res.abs_11! top.res.abs_12! top.res.inst_5! top.res.abs_10 top.res.abs_11 top.res.abs_12 top.res.inst_5) (__node_trans_edge_0 top.usr.on_C! top.res.abs_10! top.res.inst_4! top.usr.on_C top.res.abs_10 top.res.inst_4) (__node_trans_implies_0 top.res.abs_14! top.usr.on_B! top.res.abs_15! top.res.inst_3! top.res.abs_14 top.usr.on_B top.res.abs_15 top.res.inst_3) (__node_trans_edge_0 top.res.abs_13! top.res.abs_14! top.res.inst_2! top.res.abs_13 top.res.abs_14 top.res.inst_2) (__node_trans_implies_0 top.res.abs_17! top.res.abs_18! top.res.abs_19! top.res.inst_1! top.res.abs_17 top.res.abs_18 top.res.abs_19 top.res.inst_1) (__node_trans_edge_0 top.res.abs_16! top.res.abs_17! top.res.inst_0! top.res.abs_16 top.res.abs_17 top.res.inst_0) (not top.res.init_flag!)))))))) (= top.res.nondet_9 top.res.nondet_9) (= top.res.nondet_8 top.res.nondet_8) (= top.res.nondet_7 top.res.nondet_7) (= top.res.nondet_6 top.res.nondet_6) (= top.res.nondet_5 top.res.nondet_5) (= top.res.nondet_4 top.res.nondet_4) (= top.res.nondet_3 top.res.nondet_3) (= top.res.nondet_2 top.res.nondet_2) (= top.res.nondet_1 top.res.nondet_1) (= top.res.nondet_0 top.res.nondet_0))) +(define-fun prop ((top.usr.on_A Bool) (top.usr.on_B Bool) (top.usr.on_C Bool) (top.usr.ack_AB Bool) (top.usr.ack_BC Bool) (top.usr.OK Bool) (top.res.init_flag Bool) (top.impl.usr.grant_access Bool) (top.impl.usr.grant_exit Bool) (top.impl.usr.do_AB Bool) (top.impl.usr.do_BC Bool) (top.impl.usr.empty_section Bool) (top.impl.usr.only_on_B Bool) (top.res.abs_0 Bool) (top.res.abs_1 Bool) (top.res.abs_2 Bool) (top.res.abs_3 Bool) (top.res.abs_4 Bool) (top.res.abs_5 Bool) (top.res.abs_6 Bool) (top.res.abs_7 Bool) (top.res.abs_8 Bool) (top.res.abs_9 Bool) (top.res.abs_10 Bool) (top.res.abs_11 Bool) (top.res.abs_12 Bool) (top.res.abs_13 Bool) (top.res.abs_14 Bool) (top.res.abs_15 Bool) (top.res.abs_16 Bool) (top.res.abs_17 Bool) (top.res.abs_18 Bool) (top.res.abs_19 Bool) (top.res.abs_20 Bool) (top.res.abs_21 Bool) (top.res.abs_22 Bool) (top.res.abs_23 Bool) (top.res.abs_24 Bool) (top.res.inst_86 Bool) (top.res.inst_85 Bool) (top.res.inst_84 Bool) (top.res.inst_83 Bool) (top.res.inst_82 Bool) (top.res.inst_81 Bool) (top.res.inst_80 Bool) (top.res.inst_79 Bool) (top.res.inst_78 Bool) (top.res.inst_77 Bool) (top.res.inst_76 Bool) (top.res.inst_75 Bool) (top.res.inst_74 Bool) (top.res.inst_73 Bool) (top.res.inst_72 Bool) (top.res.inst_71 Bool) (top.res.inst_70 Bool) (top.res.inst_69 Bool) (top.res.inst_68 Bool) (top.res.inst_67 Bool) (top.res.inst_66 Bool) (top.res.inst_65 Bool) (top.res.inst_64 Bool) (top.res.inst_63 Bool) (top.res.inst_62 Bool) (top.res.inst_61 Bool) (top.res.inst_60 Bool) (top.res.inst_59 Bool) (top.res.inst_58 Bool) (top.res.inst_57 Bool) (top.res.inst_56 Bool) (top.res.inst_55 Bool) (top.res.inst_54 Bool) (top.res.inst_53 Bool) (top.res.inst_52 Bool) (top.res.inst_51 Bool) (top.res.inst_50 Bool) (top.res.inst_49 Bool) (top.res.inst_48 Bool) (top.res.inst_47 Bool) (top.res.inst_46 Bool) (top.res.inst_45 Bool) (top.res.inst_44 Bool) (top.res.inst_43 Bool) (top.res.inst_42 Bool) (top.res.inst_41 Bool) (top.res.inst_40 Bool) (top.res.inst_39 Bool) (top.res.inst_38 Bool) (top.res.inst_37 Bool) (top.res.inst_36 Bool) (top.res.inst_35 Bool) (top.res.inst_34 Bool) (top.res.inst_33 Bool) (top.res.inst_32 Bool) (top.res.inst_31 Bool) (top.res.inst_30 Bool) (top.res.inst_29 Bool) (top.res.inst_28 Bool) (top.res.inst_27 Bool) (top.res.inst_26 Bool) (top.res.inst_25 Bool) (top.res.inst_24 Bool) (top.res.inst_23 Bool) (top.res.inst_22 Bool) (top.res.inst_21 Bool) (top.res.inst_20 Bool) (top.res.inst_19 Bool) (top.res.inst_18 Bool) (top.res.inst_17 Bool) (top.res.inst_16 Bool) (top.res.inst_15 Bool) (top.res.inst_14 Bool) (top.res.inst_13 Bool) (top.res.inst_12 Bool) (top.res.inst_11 Bool) (top.res.inst_10 Bool) (top.res.inst_9 Bool) (top.res.inst_8 Bool) (top.res.inst_7 Bool) (top.res.inst_6 Bool) (top.res.inst_5 Bool) (top.res.inst_4 Bool) (top.res.inst_3 Bool) (top.res.inst_2 Bool) (top.res.inst_1 Bool) (top.res.inst_0 Bool)) Bool + top.usr.OK) (inv-constraint str_invariant init trans prop) (check-synth) + diff --git a/benchmarks/LIA/others/brett.sl b/benchmarks/LIA/others/brett.sl index d116672..1243e21 100644 --- a/benchmarks/LIA/others/brett.sl +++ b/benchmarks/LIA/others/brett.sl @@ -2,24 +2,14 @@ (synth-inv inv_fun ((p Int) (c Int) (cl Int))) -(declare-primed-var p Int) -(declare-primed-var c Int) -(declare-primed-var cl Int) - (define-fun pre_fun ((p Int) (c Int) (cl Int)) Bool - (and (= p 0) (= c cl))) - -(define-fun trans_fun ((p Int) (c Int) (cl Int) - (p! Int) (c! Int) (cl! Int)) Bool - (and (and (< p 4) (> cl 0)) - (and (= cl! (- cl 1)) - (= p! (+ p 1)) - (= c! c)))) - + (and (= p 0) (= c cl))) +(define-fun trans_fun ((p Int) (c Int) (cl Int) (p! Int) (c! Int) (cl! Int)) Bool + (and (and (< p 4) (> cl 0)) (and (= cl! (- cl 1)) (= p! (+ p 1)) (= c! c)))) (define-fun post_fun ((p Int) (c Int) (cl Int)) Bool - (or (and (< p 4) (> cl 0)) - (or (< c 4) (= p 4)))) + (or (and (< p 4) (> cl 0)) (or (< c 4) (= p 4)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/others/gcnr_tacas08.sl b/benchmarks/LIA/others/gcnr_tacas08.sl index 776dd07..e7c73ed 100644 --- a/benchmarks/LIA/others/gcnr_tacas08.sl +++ b/benchmarks/LIA/others/gcnr_tacas08.sl @@ -1,30 +1,15 @@ -; From: https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/tacas2008.pdf - (set-logic LIA) (synth-inv inv_fun ((w Int) (x Int) (y Int) (z Int))) -(declare-primed-var w Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var z Int) - (define-fun pre_fun ((w Int) (x Int) (y Int) (z Int)) Bool - (and (= w 0) (= x 0) (= y 0) (= z 0))) - -(define-fun trans_fun ((w Int) (x Int) (y Int) (z Int) - (w! Int) (x! Int) (y! Int) (z! Int)) Bool - (and (or (and (= x! (+ x 1)) (= y! (+ y 100))) - (and (>= x 4) - (= x! (+ x 1)) (= y! (+ y 1))) - (and (> y (* 10 w)) (>= z (* 100 x)) - (= y! (- 0 y)) (= x! x))) - (= w! (+ w 1)) - (= z! (+ z 10)))) - + (and (= w 0) (= x 0) (= y 0) (= z 0))) +(define-fun trans_fun ((w Int) (x Int) (y Int) (z Int) (w! Int) (x! Int) (y! Int) (z! Int)) Bool + (and (or (and (= x! (+ x 1)) (= y! (+ y 100))) (and (>= x 4) (= x! (+ x 1)) (= y! (+ y 1))) (and (> y (* 10 w)) (>= z (* 100 x)) (= y! (- 0 y)) (= x! x))) (= w! (+ w 1)) (= z! (+ z 10)))) (define-fun post_fun ((w Int) (x Int) (y Int) (z Int)) Bool - (not (and (>= x 4) (<= y 2)))) + (not (and (>= x 4) (<= y 2)))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/others/inria-00615623_4.sl b/benchmarks/LIA/others/inria-00615623_4.sl index b6e637c..56f60de 100644 --- a/benchmarks/LIA/others/inria-00615623_4.sl +++ b/benchmarks/LIA/others/inria-00615623_4.sl @@ -1,27 +1,15 @@ -; From: Evaluation Example 4 of https://hal.inria.fr/inria-00615623/document - (set-logic LIA) (synth-inv inv_fun ((i Int) (b Int) (n Int))) -(declare-primed-var i Int) -(declare-primed-var b Int) -(declare-primed-var n Int) - (define-fun pre_fun ((i Int) (b Int) (n Int)) Bool - (and (= i 0) (< i n))) - -(define-fun trans_fun ((i Int) (b Int) (n Int) - (i! Int) (b! Int) (n! Int)) Bool - (and (< i n) - (= n! n) - (or (and (= b! 0) (= i! i)) - (and (not (= b! 0)) (= i! (+ i 1)))))) - + (and (= i 0) (< i n))) +(define-fun trans_fun ((i Int) (b Int) (n Int) (i! Int) (b! Int) (n! Int)) Bool + (and (< i n) (= n! n) (or (and (= b! 0) (= i! i)) (and (not (= b! 0)) (= i! (+ i 1)))))) (define-fun post_fun ((i Int) (b Int) (n Int)) Bool - (or (< i n) - (and (= i n) (not (= b 0))))) + (or (< i n) (and (= i n) (not (= b 0))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/others/pldi18_seahorn_Fig3.sl b/benchmarks/LIA/others/pldi18_seahorn_Fig3.sl index c0c61a8..223c65d 100644 --- a/benchmarks/LIA/others/pldi18_seahorn_Fig3.sl +++ b/benchmarks/LIA/others/pldi18_seahorn_Fig3.sl @@ -2,25 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int) (failed Bool))) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var failed Bool) - (define-fun pre_fun ((x Int) (y Int) (failed Bool)) Bool - (and (= x 0) (= failed false))) - -(define-fun trans_fun ((x Int) (y Int) (failed Bool) - (x! Int) (y! Int) (failed! Bool)) Bool - (and (not (= y 0)) - (or (and (< y 0) (= x! (- x 1)) (= y! (+ y 1))) - (and (>= y 0) (= x! (+ x 1)) (= y! (- y 1)))) - (or (and (= x! 0) (= failed! true)) - (and (not (= x! 0)) (= failed! failed))))) - + (and (= x 0) (= failed false))) +(define-fun trans_fun ((x Int) (y Int) (failed Bool) (x! Int) (y! Int) (failed! Bool)) Bool + (and (not (= y 0)) (or (and (< y 0) (= x! (- x 1)) (= y! (+ y 1))) (and (>= y 0) (= x! (+ x 1)) (= y! (- y 1)))) (or (and (= x! 0) (= failed! true)) (and (not (= x! 0)) (= failed! failed))))) (define-fun post_fun ((x Int) (y Int) (failed Bool)) Bool - (or (not (= y 0)) - (= failed false))) + (or (not (= y 0)) (= failed false))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/others/pldi18_seahorn_Fig3_int.sl b/benchmarks/LIA/others/pldi18_seahorn_Fig3_int.sl index 0abdfb6..e1b39e9 100644 --- a/benchmarks/LIA/others/pldi18_seahorn_Fig3_int.sl +++ b/benchmarks/LIA/others/pldi18_seahorn_Fig3_int.sl @@ -2,25 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int) (failed Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var failed Int) - (define-fun pre_fun ((x Int) (y Int) (failed Int)) Bool - (and (= x 0) (= failed 0))) - -(define-fun trans_fun ((x Int) (y Int) (failed Int) - (x! Int) (y! Int) (failed! Int)) Bool - (and (not (= y 0)) - (or (and (< y 0) (= x! (- x 1)) (= y! (+ y 1))) - (and (>= y 0) (= x! (+ x 1)) (= y! (- y 1)))) - (or (and (= x! 0) (= failed! 1)) - (and (not (= x! 0)) (= failed! failed))))) - + (and (= x 0) (= failed 0))) +(define-fun trans_fun ((x Int) (y Int) (failed Int) (x! Int) (y! Int) (failed! Int)) Bool + (and (not (= y 0)) (or (and (< y 0) (= x! (- x 1)) (= y! (+ y 1))) (and (>= y 0) (= x! (+ x 1)) (= y! (- y 1)))) (or (and (= x! 0) (= failed! 1)) (and (not (= x! 0)) (= failed! failed))))) (define-fun post_fun ((x Int) (y Int) (failed Int)) Bool - (or (not (= y 0)) - (= failed 0))) + (or (not (= y 0)) (= failed 0))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/LIA/others/pldi18_seahorn_Fig4.sl b/benchmarks/LIA/others/pldi18_seahorn_Fig4.sl index 91dcede..c0d0730 100644 --- a/benchmarks/LIA/others/pldi18_seahorn_Fig4.sl +++ b/benchmarks/LIA/others/pldi18_seahorn_Fig4.sl @@ -2,26 +2,14 @@ (synth-inv inv_fun ((x Int) (y Int) (i Int) (n Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var i Int) -(declare-primed-var n Int) - (define-fun pre_fun ((x Int) (y Int) (i Int) (n Int)) Bool - (and (= x 0) (= y 0) (= i 0))) - -(define-fun trans_fun ((x Int) (y Int) (i Int) (n Int) - (x! Int) (y! Int) (i! Int) (n! Int)) Bool - (and (< i n) - (= i! (+ i 1)) (= x! (+ x 1)) (= n! n) - (or (and (exists ((k Int)) (= i (* 2 k))) (= y! (+ y 1))) - (and (exists ((k Int)) (= i (+ 1 (* 2 k)))) (= y! y))))) - + (and (= x 0) (= y 0) (= i 0))) +(define-fun trans_fun ((x Int) (y Int) (i Int) (n Int) (x! Int) (y! Int) (i! Int) (n! Int)) Bool + (and (< i n) (= i! (+ i 1)) (= x! (+ x 1)) (= n! n) (or (and (exists ((k Int)) (= i (* 2 k))) (= y! (+ y 1))) (and (exists ((k Int)) (= i (+ 1 (* 2 k)))) (= y! y))))) (define-fun post_fun ((x Int) (y Int) (i Int) (n Int)) Bool - (or (< i n) - (or (exists ((k Int)) (= i (+ 1 (* 2 k)))) - (= x (* 2 y))))) + (or (< i n) (or (exists ((k Int)) (= i (+ 1 (* 2 k)))) (= x (* 2 y))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/LIA/others/rahul.sl b/benchmarks/LIA/others/rahul.sl index 2712067..c76ff7d 100644 --- a/benchmarks/LIA/others/rahul.sl +++ b/benchmarks/LIA/others/rahul.sl @@ -2,27 +2,14 @@ (synth-inv inv_fun ((N Int) (x Int) (y Int))) -(declare-primed-var N Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - (define-fun pre_fun ((N Int) (x Int) (y Int)) Bool - (and (>= N 0) - (= x y) - (<= x N))) - -(define-fun trans_fun ((N Int) (x Int) (y Int) - (N! Int) (x! Int) (y! Int)) Bool - (and (>= y 0) - (or (and (<= x N) (= y! (+ y 1))) - (and (> x N) (= y! (- y 1)))) - (= x! (+ x 1)) - (= N! N))) - + (and (>= N 0) (= x y) (<= x N))) +(define-fun trans_fun ((N Int) (x Int) (y Int) (N! Int) (x! Int) (y! Int)) Bool + (and (>= y 0) (or (and (<= x N) (= y! (+ y 1))) (and (> x N) (= y! (- y 1)))) (= x! (+ x 1)) (= N! N))) (define-fun post_fun ((N Int) (x Int) (y Int)) Bool - (or (>= y 0) - (< x (+ 4 (* 2 N))))) + (or (>= y 0) (< x (+ 4 (* 2 N))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/NIA/2005.ICALP_PolyRank/poly3.pos_z.sl b/benchmarks/NIA/2005.ICALP_PolyRank/poly3.pos_z.sl index 08e048d..1574825 100644 --- a/benchmarks/NIA/2005.ICALP_PolyRank/poly3.pos_z.sl +++ b/benchmarks/NIA/2005.ICALP_PolyRank/poly3.pos_z.sl @@ -2,33 +2,14 @@ (synth-inv inv_fun ((c Int) (x Int) (y Int) (z Int) (x0 Int) (y0 Int) (z0 Int))) -(declare-primed-var c Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var z Int) -(declare-primed-var x0 Int) -(declare-primed-var y0 Int) -(declare-primed-var z0 Int) - (define-fun pre_fun ((c Int) (x Int) (y Int) (z Int) (x0 Int) (y0 Int) (z0 Int)) Bool - (and (= c 0) (= x x0) (= y y0) (>= x0 y0) (= z z0) (>= z0 0))) - -(define-fun trans_fun ((c Int) (x Int) (y Int) (z Int) (x0 Int) (y0 Int) (z0 Int) - (c! Int) (x! Int) (y! Int) (z! Int) (x0! Int) (y0! Int) (z0! Int)) Bool - (and (= x0! x0) (= y0! y0) (= z0! z0) - (or (and (or (< x y) (< z 0)) - (= c! c) (= x! x) (= y! y) (= z! z)) - (and (>= x y) (>= z 0) - (= c! (+ c 1)) (= x! (+ x z)) (= z! (- z 1)) (= y! y)) - (and (>= x y) (>= z 0) - (= c! (+ c 1)) (>= y! (+ y 1)) (= x! x) (= z! z))) - )) - + (and (= c 0) (= x x0) (= y y0) (>= x0 y0) (= z z0) (>= z0 0))) +(define-fun trans_fun ((c Int) (x Int) (y Int) (z Int) (x0 Int) (y0 Int) (z0 Int) (c! Int) (x! Int) (y! Int) (z! Int) (x0! Int) (y0! Int) (z0! Int)) Bool + (and (= x0! x0) (= y0! y0) (= z0! z0) (or (and (or (< x y) (< z 0)) (= c! c) (= x! x) (= y! y) (= z! z)) (and (>= x y) (>= z 0) (= c! (+ c 1)) (= x! (+ x z)) (= z! (- z 1)) (= y! y)) (and (>= x y) (>= z 0) (= c! (+ c 1)) (>= y! (+ y 1)) (= x! x) (= z! z))))) (define-fun post_fun ((c Int) (x Int) (y Int) (z Int) (x0 Int) (y0 Int) (z0 Int)) Bool - (=> (and (>= x y) (>= z 0)) - (=> (and (>= z0 0) (>= x0 y0)) - (<= c (+ z0 (- x0 y0) (* z0 z0)))))) + (=> (and (>= x y) (>= z 0)) (=> (and (>= z0 0) (>= x0 y0)) (<= c (+ z0 (- x0 y0) (* z0 z0)))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/NIA/2005.ICALP_PolyRank/poly7.sl b/benchmarks/NIA/2005.ICALP_PolyRank/poly7.sl index 83541c3..417567c 100644 --- a/benchmarks/NIA/2005.ICALP_PolyRank/poly7.sl +++ b/benchmarks/NIA/2005.ICALP_PolyRank/poly7.sl @@ -2,32 +2,14 @@ (synth-inv inv_fun ((c Int) (y1 Int) (y2 Int) (y1i Int) (y2i Int))) -(declare-primed-var c Int) -(declare-primed-var y1 Int) -(declare-primed-var y2 Int) -(declare-primed-var y1i Int) -(declare-primed-var y2i Int) - (define-fun pre_fun ((c Int) (y1 Int) (y2 Int) (y1i Int) (y2i Int)) Bool - (and (= c 0) (>= y2 1) (= y1 y1i) (= y2 y2i))) - -(define-fun trans_fun ((c Int) (y1 Int) (y2 Int) (y1i Int) (y2i Int) - (c! Int) (y1! Int) (y2! Int) (y1i! Int) (y2i! Int)) Bool - (and (= y1i! y1i) (= y2i! y2i) - (or (and (>= y1 101) (= y2 1) (= c! c) (= y1! y1) (= y2! y2)) - (and (>= y1 101) (<= y2 0) - (= c! (+ c 1)) (= y1! (- y1 10)) (= y2! (- y2 1))) - (and (>= y1 101) (>= y2 2) - (= c! (+ c 1)) (= y1! (- y1 10)) (= y2! (- y2 1))) - (and (<= y1 100) - (= c! (+ c 1)) (= y1! (+ y1 11)) (= y2! (+ y2 1)))))) - + (and (= c 0) (>= y2 1) (= y1 y1i) (= y2 y2i))) +(define-fun trans_fun ((c Int) (y1 Int) (y2 Int) (y1i Int) (y2i Int) (c! Int) (y1! Int) (y2! Int) (y1i! Int) (y2i! Int)) Bool + (and (= y1i! y1i) (= y2i! y2i) (or (and (>= y1 101) (= y2 1) (= c! c) (= y1! y1) (= y2! y2)) (and (>= y1 101) (<= y2 0) (= c! (+ c 1)) (= y1! (- y1 10)) (= y2! (- y2 1))) (and (>= y1 101) (>= y2 2) (= c! (+ c 1)) (= y1! (- y1 10)) (= y2! (- y2 1))) (and (<= y1 100) (= c! (+ c 1)) (= y1! (+ y1 11)) (= y2! (+ y2 1)))))) (define-fun post_fun ((c Int) (y1 Int) (y2 Int) (y1i Int) (y2i Int)) Bool - (=> (not (and (= y2 1) (>= y1 101))) - (<= c (+ (* y2i y2i) - (* (+ (- 101 y1i) (* 10 y2i)) - (+ (- 101 y1i) (* 10 y2i))))))) + (=> (not (and (= y2 1) (>= y1 101))) (<= c (+ (* y2i y2i) (* (+ (- 101 y1i) (* 10 y2i)) (+ (- 101 y1i) (* 10 y2i))))))) (inv-constraint inv_fun pre_fun trans_fun post_fun) (check-synth) + diff --git a/benchmarks/NIA/2016.ATVA_PILAT/mannadiv.sl b/benchmarks/NIA/2016.ATVA_PILAT/mannadiv.sl index 8b02905..8530c3a 100644 --- a/benchmarks/NIA/2016.ATVA_PILAT/mannadiv.sl +++ b/benchmarks/NIA/2016.ATVA_PILAT/mannadiv.sl @@ -2,32 +2,14 @@ (synth-inv InvF ((x1 Int) (x2 Int) (y1 Int) (y2 Int) (y3 Int))) -(declare-primed-var x1 Int) -(declare-primed-var x2 Int) -(declare-primed-var y1 Int) -(declare-primed-var y2 Int) -(declare-primed-var y3 Int) - (define-fun PreF ((x1 Int) (x2 Int) (y1 Int) (y2 Int) (y3 Int)) Bool - (and (>= x1 0) (> x2 0) (= y1 0) (= y2 0) (= y3 x1))) - -(define-fun TransF ((x1 Int) (x2 Int) (y1 Int) (y2 Int) (y3 Int) - (x1! Int) (x2! Int) (y1! Int) (y2! Int) (y3! Int)) Bool - (and (not (= y3 0)) (= x1! x1) (= x2! x2) - (or (and (= x2 (+ y2 1)) - (= y1! (+ y1 1)) - (= y2! 0) - (= y3! (- y3 1))) - (and (not (= x2 (+ y2 1))) - (= y1! y1) - (= y2! (+ y2 1)) - (= y3! (- y3 1)))))) - + (and (>= x1 0) (> x2 0) (= y1 0) (= y2 0) (= y3 x1))) +(define-fun TransF ((x1 Int) (x2 Int) (y1 Int) (y2 Int) (y3 Int) (x1! Int) (x2! Int) (y1! Int) (y2! Int) (y3! Int)) Bool + (and (not (= y3 0)) (= x1! x1) (= x2! x2) (or (and (= x2 (+ y2 1)) (= y1! (+ y1 1)) (= y2! 0) (= y3! (- y3 1))) (and (not (= x2 (+ y2 1))) (= y1! y1) (= y2! (+ y2 1)) (= y3! (- y3 1)))))) (define-fun PostF ((x1 Int) (x2 Int) (y1 Int) (y2 Int) (y3 Int)) Bool - (=> (= y3 0) - (and (= y2 (mod x1 x2)) - (= y1 (div x1 x2))))) + (=> (= y3 0) (and (= y2 (mod x1 x2)) (= y1 (div x1 x2))))) (inv-constraint InvF PreF TransF PostF) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/NIA/2018.CHI_InvGame/cube2.desugared.sl b/benchmarks/NIA/2018.CHI_InvGame/cube2.desugared.sl index 8032b2d..0634377 100644 --- a/benchmarks/NIA/2018.CHI_InvGame/cube2.desugared.sl +++ b/benchmarks/NIA/2018.CHI_InvGame/cube2.desugared.sl @@ -1,24 +1,15 @@ -; Benchmark adapted from "cube2.desugared.bpl" - (set-logic NIA) (synth-inv inv-f ((n Int) (x Int) (y Int) (z Int))) -(declare-primed-var n Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var z Int) - (define-fun pre-f ((n Int) (x Int) (y Int) (z Int)) Bool - (and (= n 0) (= x 0) (= y 1) (= z 6))) - -(define-fun trans-f ((n Int) (x Int) (y Int) (z Int) - (n! Int) (x! Int) (y! Int) (z! Int)) Bool - (and (< n 100) (= n! (+ n 1)) (= x! (+ x y)) (= y! (+ y z)) (= z! (+ z 6)))) - + (and (= n 0) (= x 0) (= y 1) (= z 6))) +(define-fun trans-f ((n Int) (x Int) (y Int) (z Int) (n! Int) (x! Int) (y! Int) (z! Int)) Bool + (and (< n 100) (= n! (+ n 1)) (= x! (+ x y)) (= y! (+ y z)) (= z! (+ z 6)))) (define-fun post-f ((n Int) (x Int) (y Int) (z Int)) Bool - (or (< n 100) (= x (* n (* n n))))) + (or (< n 100) (= x (* n (* n n))))) (inv-constraint inv-f pre-f trans-f post-f) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/NIA/2018.CHI_InvGame/gauss_sum-more-rows.auto.sl b/benchmarks/NIA/2018.CHI_InvGame/gauss_sum-more-rows.auto.sl index 4d65b31..a46943a 100644 --- a/benchmarks/NIA/2018.CHI_InvGame/gauss_sum-more-rows.auto.sl +++ b/benchmarks/NIA/2018.CHI_InvGame/gauss_sum-more-rows.auto.sl @@ -1,23 +1,15 @@ -; Benchmark adapted from "gauss_sum_true-unreach-call.c" - (set-logic NIA) (synth-inv inv-f ((n Int) (sum Int) (i Int))) -(declare-primed-var n Int) -(declare-primed-var sum Int) -(declare-primed-var i Int) - (define-fun pre-f ((n Int) (sum Int) (i Int)) Bool - (and (<= 1 n) (<= n 1000) (= sum 0) (= i 1))) - -(define-fun trans-f ((n Int) (sum Int) (i Int) - (n! Int) (sum! Int) (i! Int)) Bool - (and (<= i n) (= i! (+ i 1)) (= sum! (+ sum i)) (= n! n))) - + (and (<= 1 n) (<= n 1000) (= sum 0) (= i 1))) +(define-fun trans-f ((n Int) (sum Int) (i Int) (n! Int) (sum! Int) (i! Int)) Bool + (and (<= i n) (= i! (+ i 1)) (= sum! (+ sum i)) (= n! n))) (define-fun post-f ((n Int) (sum Int) (i Int)) Bool - (or (<= i n) (= (* sum 2) (* n (+ n 1))))) + (or (<= i n) (= (* sum 2) (* n (+ n 1))))) (inv-constraint inv-f pre-f trans-f post-f) (check-synth) + diff --git a/benchmarks/NIA/2018.CHI_InvGame/non-lin-ineq-1.desugared.sl b/benchmarks/NIA/2018.CHI_InvGame/non-lin-ineq-1.desugared.sl index 621e4b9..68885d8 100644 --- a/benchmarks/NIA/2018.CHI_InvGame/non-lin-ineq-1.desugared.sl +++ b/benchmarks/NIA/2018.CHI_InvGame/non-lin-ineq-1.desugared.sl @@ -1,23 +1,15 @@ -; Benchmark adapted from "non-lin-ineq-1.desugared.bpl" - (set-logic NIA) (synth-inv inv-f ((i Int) (j Int) (k Int))) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var k Int) - (define-fun pre-f ((i Int) (j Int) (k Int)) Bool - (and (= i 0) (<= (* i j) k))) - -(define-fun trans-f ((i Int) (j Int) (k Int) - (i! Int) (j! Int) (k! Int)) Bool - (and (< j 1000) (= i! (+ i 1)) (= j! j) (= k! (+ k j)))) - + (and (= i 0) (<= (* i j) k))) +(define-fun trans-f ((i Int) (j Int) (k Int) (i! Int) (j! Int) (k! Int)) Bool + (and (< j 1000) (= i! (+ i 1)) (= j! j) (= k! (+ k j)))) (define-fun post-f ((i Int) (j Int) (k Int)) Bool - (or (< j 1000) (<= (* i j) k))) + (or (< j 1000) (<= (* i j) k))) (inv-constraint inv-f pre-f trans-f post-f) (check-synth) + diff --git a/benchmarks/NIA/2018.CHI_InvGame/non-lin-ineq-2.desugared.sl b/benchmarks/NIA/2018.CHI_InvGame/non-lin-ineq-2.desugared.sl index 6e653a8..243e34b 100644 --- a/benchmarks/NIA/2018.CHI_InvGame/non-lin-ineq-2.desugared.sl +++ b/benchmarks/NIA/2018.CHI_InvGame/non-lin-ineq-2.desugared.sl @@ -1,23 +1,15 @@ -; Benchmark adapted from "non-lin-ineq-2.desugared.bpl" - (set-logic NIA) (synth-inv inv-f ((i Int) (j Int) (k Int))) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var k Int) - (define-fun pre-f ((i Int) (j Int) (k Int)) Bool - (and (= i 0) (> j 0) (> k 0))) - -(define-fun trans-f ((i Int) (j Int) (k Int) - (i! Int) (j! Int) (k! Int)) Bool - (and (< i (* j k)) (= i! (+ i 1)) (= j! j) (= k! k))) - + (and (= i 0) (> j 0) (> k 0))) +(define-fun trans-f ((i Int) (j Int) (k Int) (i! Int) (j! Int) (k! Int)) Bool + (and (< i (* j k)) (= i! (+ i 1)) (= j! j) (= k! k))) (define-fun post-f ((i Int) (j Int) (k Int)) Bool - (or (< i (* j k)) (= i (* j k)))) + (or (< i (* j k)) (= i (* j k)))) (inv-constraint inv-f pre-f trans-f post-f) (check-synth) + diff --git a/benchmarks/NIA/2018.CHI_InvGame/non-lin-ineq-3.desugared.sl b/benchmarks/NIA/2018.CHI_InvGame/non-lin-ineq-3.desugared.sl index 777a2d1..728ee7e 100644 --- a/benchmarks/NIA/2018.CHI_InvGame/non-lin-ineq-3.desugared.sl +++ b/benchmarks/NIA/2018.CHI_InvGame/non-lin-ineq-3.desugared.sl @@ -1,21 +1,15 @@ -; Benchmark adapted from "non-lin-ineq-3.desugared.bpl" - (set-logic NIA) (synth-inv inv-f ((i Int) (k Int))) -(declare-primed-var i Int) -(declare-primed-var k Int) - (define-fun pre-f ((i Int) (k Int)) Bool - (and (= i 0) (= k 0))) - + (and (= i 0) (= k 0))) (define-fun trans-f ((i Int) (k Int) (i! Int) (k! Int)) Bool - (and (< i 1000) (= i! (+ i 1)) (= k! (+ k (* i! i!))))) - + (and (< i 1000) (= i! (+ i 1)) (= k! (+ k (* i! i!))))) (define-fun post-f ((i Int) (k Int)) Bool - (or (< i 1000) (<= 1000000 k))) + (or (< i 1000) (<= 1000000 k))) (inv-constraint inv-f pre-f trans-f post-f) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/NIA/2018.CHI_InvGame/non-lin-ineq-4.desugared.sl b/benchmarks/NIA/2018.CHI_InvGame/non-lin-ineq-4.desugared.sl index 2ea5402..7981b1e 100644 --- a/benchmarks/NIA/2018.CHI_InvGame/non-lin-ineq-4.desugared.sl +++ b/benchmarks/NIA/2018.CHI_InvGame/non-lin-ineq-4.desugared.sl @@ -1,24 +1,15 @@ -; Benchmark adapted from "non-lin-ineq-4.desugared.bpl" - (set-logic NIA) (synth-inv inv-f ((i Int) (j Int) (k Int))) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var k Int) - (define-fun pre-f ((i Int) (j Int) (k Int)) Bool - (and (= i 0) (= j 1) (= k 0))) - -(define-fun trans-f ((i Int) (j Int) (k Int) - (i! Int) (j! Int) (k! Int)) Bool - (and (< i 1000) (= i! (+ i 1)) (= j! (+ j 1)) - (= k! (+ k (* i! j!))))) - + (and (= i 0) (= j 1) (= k 0))) +(define-fun trans-f ((i Int) (j Int) (k Int) (i! Int) (j! Int) (k! Int)) Bool + (and (< i 1000) (= i! (+ i 1)) (= j! (+ j 1)) (= k! (+ k (* i! j!))))) (define-fun post-f ((i Int) (j Int) (k Int)) Bool - (or (< i 1000) (<= (* 1000 j) k))) + (or (< i 1000) (<= (* 1000 j) k))) (inv-constraint inv-f pre-f trans-f post-f) (check-synth) + diff --git a/benchmarks/NIA/2018.CHI_InvGame/prod-bin.desugared.sl b/benchmarks/NIA/2018.CHI_InvGame/prod-bin.desugared.sl index b8c933f..b720f5e 100644 --- a/benchmarks/NIA/2018.CHI_InvGame/prod-bin.desugared.sl +++ b/benchmarks/NIA/2018.CHI_InvGame/prod-bin.desugared.sl @@ -1,27 +1,15 @@ -; Benchmark adapted from "prod-bin.desugared.bpl" - (set-logic NIA) (synth-inv inv-f ((a Int) (b Int) (x Int) (y Int) (z Int))) -(declare-primed-var a Int) -(declare-primed-var b Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var z Int) - (define-fun pre-f ((a Int) (b Int) (x Int) (y Int) (z Int)) Bool - (and (>= a 0) (>= b 0) (= x a) (= y b) (= z 0))) - -(define-fun trans-f ((a Int) (b Int) (x Int) (y Int) (z Int) - (a! Int) (b! Int) (x! Int) (y! Int) (z! Int)) Bool - (and (not (= 0 y)) (= a! a) (= b! b) - (or (and (not (= 1 (mod y 2))) (= x! (* 2 x)) (= y! (div y 2)) (= z! z)) - (and (= 1 (mod y 2)) (= x! x) (= z! (+ z x)) (= y! (- y 1)))))) - + (and (>= a 0) (>= b 0) (= x a) (= y b) (= z 0))) +(define-fun trans-f ((a Int) (b Int) (x Int) (y Int) (z Int) (a! Int) (b! Int) (x! Int) (y! Int) (z! Int)) Bool + (and (not (= 0 y)) (= a! a) (= b! b) (or (and (not (= 1 (mod y 2))) (= x! (* 2 x)) (= y! (div y 2)) (= z! z)) (and (= 1 (mod y 2)) (= x! x) (= z! (+ z x)) (= y! (- y 1)))))) (define-fun post-f ((a Int) (b Int) (x Int) (y Int) (z Int)) Bool - (or (not (= y 0)) (= z (* a b)))) + (or (not (= y 0)) (= z (* a b)))) (inv-constraint inv-f pre-f trans-f post-f) (check-synth) + diff --git a/benchmarks/NIA/2018.CHI_InvGame/s10.desugared.sl b/benchmarks/NIA/2018.CHI_InvGame/s10.desugared.sl index fb594ea..f066be5 100644 --- a/benchmarks/NIA/2018.CHI_InvGame/s10.desugared.sl +++ b/benchmarks/NIA/2018.CHI_InvGame/s10.desugared.sl @@ -1,23 +1,15 @@ -; Benchmark adapted from "s10.desugared.bpl" - (set-logic NIA) (synth-inv inv-f ((i Int) (j Int) (k Int))) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var k Int) - (define-fun pre-f ((i Int) (j Int) (k Int)) Bool - (and (= j 0) (= i 10))) - -(define-fun trans-f ((i Int) (j Int) (k Int) - (i! Int) (j! Int) (k! Int)) Bool - (and (< j 1000) (= i! (+ i k)) (= j! (+ j 1)) (= k! k))) - + (and (= j 0) (= i 10))) +(define-fun trans-f ((i Int) (j Int) (k Int) (i! Int) (j! Int) (k! Int)) Bool + (and (< j 1000) (= i! (+ i k)) (= j! (+ j 1)) (= k! k))) (define-fun post-f ((i Int) (j Int) (k Int)) Bool - (or (< j 1000) (= i (+ 10 (* k j))))) + (or (< j 1000) (= i (+ 10 (* k j))))) (inv-constraint inv-f pre-f trans-f post-f) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/NIA/2018.CHI_InvGame/s11.desugared.sl b/benchmarks/NIA/2018.CHI_InvGame/s11.desugared.sl index 83c6749..dc8ceb2 100644 --- a/benchmarks/NIA/2018.CHI_InvGame/s11.desugared.sl +++ b/benchmarks/NIA/2018.CHI_InvGame/s11.desugared.sl @@ -1,24 +1,15 @@ -; Benchmark adapted from "s11.desugared.bpl" - (set-logic NIA) (synth-inv inv-f ((i Int) (j Int) (k Int) (l Int))) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var k Int) -(declare-primed-var l Int) - (define-fun pre-f ((i Int) (j Int) (k Int) (l Int)) Bool - (and (= j 0) (= i l))) - -(define-fun trans-f ((i Int) (j Int) (k Int) (l Int) - (i! Int) (j! Int) (k! Int) (l! Int)) Bool - (and (< j 1000) (= i! (+ i k)) (= j! (+ j 1)) (= k! k) (= l! l))) - + (and (= j 0) (= i l))) +(define-fun trans-f ((i Int) (j Int) (k Int) (l Int) (i! Int) (j! Int) (k! Int) (l! Int)) Bool + (and (< j 1000) (= i! (+ i k)) (= j! (+ j 1)) (= k! k) (= l! l))) (define-fun post-f ((i Int) (j Int) (k Int) (l Int)) Bool - (or (< j 1000) (= i (+ l (* k j))))) + (or (< j 1000) (= i (+ l (* k j))))) (inv-constraint inv-f pre-f trans-f post-f) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/NIA/2018.CHI_InvGame/s5auto.desugared.sl b/benchmarks/NIA/2018.CHI_InvGame/s5auto.desugared.sl index 1a80f2b..9c189d3 100644 --- a/benchmarks/NIA/2018.CHI_InvGame/s5auto.desugared.sl +++ b/benchmarks/NIA/2018.CHI_InvGame/s5auto.desugared.sl @@ -1,24 +1,15 @@ -; Benchmark adapted from "s5.desugared.bpl" - (set-logic NIA) (synth-inv inv-f ((i Int) (j Int) (k Int))) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var k Int) - (define-fun pre-f ((i Int) (j Int) (k Int)) Bool - (and (= j 0) (= i 0) (> k 0))) - -(define-fun trans-f ((i Int) (j Int) (k Int) - (i! Int) (j! Int) (k! Int)) Bool - (and (< j k) (= k! k) (= j! (+ j 1)) - (= i! (+ i (* 2 k))))) - + (and (= j 0) (= i 0) (> k 0))) +(define-fun trans-f ((i Int) (j Int) (k Int) (i! Int) (j! Int) (k! Int)) Bool + (and (< j k) (= k! k) (= j! (+ j 1)) (= i! (+ i (* 2 k))))) (define-fun post-f ((i Int) (j Int) (k Int)) Bool - (or (< j k) (= i (* 2 (* k j))))) + (or (< j k) (= i (* 2 (* k j))))) (inv-constraint inv-f pre-f trans-f post-f) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/NIA/2018.CHI_InvGame/s9.desugared.sl b/benchmarks/NIA/2018.CHI_InvGame/s9.desugared.sl index 92715ef..36234fd 100644 --- a/benchmarks/NIA/2018.CHI_InvGame/s9.desugared.sl +++ b/benchmarks/NIA/2018.CHI_InvGame/s9.desugared.sl @@ -1,26 +1,15 @@ -; Benchmark adapted from "s9.desugared.bpl" - (set-logic NIA) (synth-inv inv-f ((i Int) (j Int) (k Int) (l Int))) -(declare-primed-var i Int) -(declare-primed-var j Int) -(declare-primed-var k Int) -(declare-primed-var l Int) - (define-fun pre-f ((i Int) (j Int) (k Int) (l Int)) Bool - (and (= j 0) (= i 0) (>= k 0))) - -(define-fun trans-f ((i Int) (j Int) (k Int) (l Int) - (i! Int) (j! Int) (k! Int) (l! Int)) Bool - (and (< j k) (= k! k) (= l! l) - (= i! (+ i (* l k))) - (= j! (+ j 1)))) - + (and (= j 0) (= i 0) (>= k 0))) +(define-fun trans-f ((i Int) (j Int) (k Int) (l Int) (i! Int) (j! Int) (k! Int) (l! Int)) Bool + (and (< j k) (= k! k) (= l! l) (= i! (+ i (* l k))) (= j! (+ j 1)))) (define-fun post-f ((i Int) (j Int) (k Int) (l Int)) Bool - (or (< j k) (= i (* l (* k j))))) + (or (< j k) (= i (* l (* k j))))) (inv-constraint inv-f pre-f trans-f post-f) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/NIA/2018.CHI_InvGame/sorin03.desugared.sl b/benchmarks/NIA/2018.CHI_InvGame/sorin03.desugared.sl index 09bdcbf..2a6afd8 100644 --- a/benchmarks/NIA/2018.CHI_InvGame/sorin03.desugared.sl +++ b/benchmarks/NIA/2018.CHI_InvGame/sorin03.desugared.sl @@ -1,24 +1,15 @@ -; Benchmark adapted from "sorin03.desugared.bpl" - (set-logic NIA) (synth-inv inv-f ((n Int) (s Int) (i Int) (j Int))) -(declare-primed-var n Int) -(declare-primed-var s Int) -(declare-primed-var i Int) -(declare-primed-var j Int) - (define-fun pre-f ((n Int) (s Int) (i Int) (j Int)) Bool - (and (<= 1 n) (<= n 1000) (= s 0) (= j 0) (= i 1))) - -(define-fun trans-f ((n Int) (s Int) (i Int) (j Int) - (n! Int) (s! Int) (i! Int) (j! Int)) Bool - (and (<= i n) (= s! (+ s i)) (= j! i) (= i! (+ i 1)) (= n! n))) - + (and (<= 1 n) (<= n 1000) (= s 0) (= j 0) (= i 1))) +(define-fun trans-f ((n Int) (s Int) (i Int) (j Int) (n! Int) (s! Int) (i! Int) (j! Int)) Bool + (and (<= i n) (= s! (+ s i)) (= j! i) (= i! (+ i 1)) (= n! n))) (define-fun post-f ((n Int) (s Int) (i Int) (j Int)) Bool - (or (<= i n) (= (* 2 s) (* n (+ n 1))))) + (or (<= i n) (= (* 2 s) (* n (+ n 1))))) (inv-constraint inv-f pre-f trans-f post-f) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/NIA/2018.CHI_InvGame/sorin04.desugared.sl b/benchmarks/NIA/2018.CHI_InvGame/sorin04.desugared.sl index f811e9b..565795c 100644 --- a/benchmarks/NIA/2018.CHI_InvGame/sorin04.desugared.sl +++ b/benchmarks/NIA/2018.CHI_InvGame/sorin04.desugared.sl @@ -1,25 +1,15 @@ -; Benchmark adapted from "sorin04.desugared.bpl" - (set-logic NIA) (synth-inv inv-f ((i Int) (a Int) (c Int))) -(declare-primed-var i Int) -(declare-primed-var a Int) -(declare-primed-var c Int) - (define-fun pre-f ((i Int) (a Int) (c Int)) Bool - (and (= i 0) (= a 0) (= c 0))) - -(define-fun trans-f ((i Int) (a Int) (c Int) - (i! Int) (a! Int) (c! Int)) Bool - (and (< i 10) (= c! (+ c (+ 1 (* 6 a)))) - (= a! (+ a (+ i 1))) - (= i! (+ i 1)))) - + (and (= i 0) (= a 0) (= c 0))) +(define-fun trans-f ((i Int) (a Int) (c Int) (i! Int) (a! Int) (c! Int)) Bool + (and (< i 10) (= c! (+ c (+ 1 (* 6 a)))) (= a! (+ a (+ i 1))) (= i! (+ i 1)))) (define-fun post-f ((i Int) (a Int) (c Int)) Bool - (or (< i 10) (= c (* i (* i i))))) + (or (< i 10) (= c (* i (* i i))))) (inv-constraint inv-f pre-f trans-f post-f) -(check-synth) \ No newline at end of file +(check-synth) + diff --git a/benchmarks/NIA/2018.CHI_InvGame/sqrt-more-rows-swap-columns.sl b/benchmarks/NIA/2018.CHI_InvGame/sqrt-more-rows-swap-columns.sl index 71a4c4a..66d45fa 100644 --- a/benchmarks/NIA/2018.CHI_InvGame/sqrt-more-rows-swap-columns.sl +++ b/benchmarks/NIA/2018.CHI_InvGame/sqrt-more-rows-swap-columns.sl @@ -1,25 +1,15 @@ -; Benchmark adapted from "sqrt-more-rows-swap-columns.bpl" - (set-logic NIA) (synth-inv inv-f ((n Int) (a Int) (su Int) (t Int))) -(declare-primed-var n Int) -(declare-primed-var a Int) -(declare-primed-var su Int) -(declare-primed-var t Int) - (define-fun pre-f ((n Int) (a Int) (su Int) (t Int)) Bool - (and (= a 0) (= su 1) (= t 1) (> n 0))) - -(define-fun trans-f ((n Int) (a Int) (su Int) (t Int) - (n! Int) (a! Int) (su! Int) (t! Int)) Bool - (and (<= su n) (= n! n) - (= a! (+ a 1)) (= t! (+ t 2)) (= su! (+ su t!)))) - + (and (= a 0) (= su 1) (= t 1) (> n 0))) +(define-fun trans-f ((n Int) (a Int) (su Int) (t Int) (n! Int) (a! Int) (su! Int) (t! Int)) Bool + (and (<= su n) (= n! n) (= a! (+ a 1)) (= t! (+ t 2)) (= su! (+ su t!)))) (define-fun post-f ((n Int) (a Int) (su Int) (t Int)) Bool - (or (<= su n) (= su (* (+ a 1) (+ a 1))))) + (or (<= su n) (= su (* (+ a 1) (+ a 1))))) (inv-constraint inv-f pre-f trans-f post-f) (check-synth) + diff --git a/benchmarks/NIA/2018.SV-Comp/half_2_true-unreach-call_true-termination.sl b/benchmarks/NIA/2018.SV-Comp/half_2_true-unreach-call_true-termination.sl index 9dbcbfb..3f164f9 100644 --- a/benchmarks/NIA/2018.SV-Comp/half_2_true-unreach-call_true-termination.sl +++ b/benchmarks/NIA/2018.SV-Comp/half_2_true-unreach-call_true-termination.sl @@ -2,32 +2,14 @@ (synth-inv InvF ((n Int) (i Int) (k Int) (j Int))) -(declare-primed-var n Int) -(declare-primed-var i Int) -(declare-primed-var k Int) -(declare-primed-var j Int) - (define-fun PreF ((n Int) (i Int) (k Int) (j Int)) Bool - (and (<= n 1000000) (= k n) (= i 0) (= j 0))) - -(define-fun TransF ((n Int) (i Int) (k Int) (j Int) - (n! Int) (i! Int) (k! Int) (j! Int)) Bool - (or (and (< i n) - (= k! (- k 1)) - (= i! (+ i 2)) - (= n! n) - (= j! j)) - (and (>= i n) - (< j (/ n 2)) - (= k! (- k 1)) - (= j! (+ j 1)) - (= i! i) - (= n! n)) - )) - + (and (<= n 1000000) (= k n) (= i 0) (= j 0))) +(define-fun TransF ((n Int) (i Int) (k Int) (j Int) (n! Int) (i! Int) (k! Int) (j! Int)) Bool + (or (and (< i n) (= k! (- k 1)) (= i! (+ i 2)) (= n! n) (= j! j)) (and (>= i n) (< j (div n 2)) (= k! (- k 1)) (= j! (+ j 1)) (= i! i) (= n! n)))) (define-fun PostF ((n Int) (i Int) (k Int) (j Int)) Bool - (or (not (and (>= i n) (< j (/ n 2)))) (> k 0))) + (or (not (and (>= i n) (< j (div n 2)))) (> k 0))) (inv-constraint InvF PreF TransF PostF) (check-synth) + diff --git a/benchmarks/NIA/2018.SV-Comp/id_trans_false-unreach-call_true-termination.sl b/benchmarks/NIA/2018.SV-Comp/id_trans_false-unreach-call_true-termination.sl index 1f69c33..21591d7 100644 --- a/benchmarks/NIA/2018.SV-Comp/id_trans_false-unreach-call_true-termination.sl +++ b/benchmarks/NIA/2018.SV-Comp/id_trans_false-unreach-call_true-termination.sl @@ -2,32 +2,12 @@ (synth-inv InvF ((j Int) (k Int) (idBitLength Int) (materialLength Int) (nlen Int))) -(declare-primed-var j Int) -(declare-primed-var k Int) -(declare-primed-var idBitLength Int) -(declare-primed-var materialLength Int) -(declare-primed-var nlen Int) - (define-fun PreF ((j Int) (k Int) (idBitLength Int) (materialLength Int) (nlen Int)) Bool - (and (= j 0) (= nlen (/ idBitLength 32)))) - -(define-fun TransF ((j Int) (k Int) (idBitLength Int) (materialLength Int) (nlen Int) - (j! Int) (k! Int) (idBitLength! Int) (materialLength! Int) (nlen! Int)) Bool - (and (< j (/ idBitLength 8)) - (< j materialLength) - (= j! (+ j 1)) - (= materialLength! materialLength) - (= idBitLength! idBitLength) - (= nlen! nlen) - )) - + (and (= j 0) (= nlen (div idBitLength 32)))) +(define-fun TransF ((j Int) (k Int) (idBitLength Int) (materialLength Int) (nlen Int) (j! Int) (k! Int) (idBitLength! Int) (materialLength! Int) (nlen! Int)) Bool + (and (< j (div idBitLength 8)) (< j materialLength) (= j! (+ j 1)) (= materialLength! materialLength) (= idBitLength! idBitLength) (= nlen! nlen))) (define-fun PostF ((j Int) (k Int) (idBitLength Int) (materialLength Int) (nlen Int)) Bool - (or (and (< j (/ idBitLength 8)) (< j materialLength)) - (and (<= 0 j) - (< j materialLength) - (<= 0 (/ j 4)) - (< (/ j 4) nlen)) - )) + (or (and (< j (div idBitLength 8)) (< j materialLength)) (and (<= 0 j) (< j materialLength) (<= 0 (div j 4)) (< (div j 4) nlen)))) (inv-constraint InvF PreF TransF PostF) diff --git a/benchmarks/NIA/other/div.sl b/benchmarks/NIA/other/div.sl index 183ffbd..78ebf38 100644 --- a/benchmarks/NIA/other/div.sl +++ b/benchmarks/NIA/other/div.sl @@ -1,30 +1,15 @@ -; benchmark adapted from http://www.lsi.upc.edu/~erodri/webpage/polynomial_invariants/mannadiv.html - -(set-logic NIA) - -(synth-inv inv-f ((x1 Int) (x2 Int) (y1 Int) (y2 Int) (y3 Int))) - -(declare-primed-var x1 Int) -(declare-primed-var x2 Int) -(declare-primed-var y1 Int) -(declare-primed-var y2 Int) -(declare-primed-var y3 Int) - -(define-fun pre-f ((x1 Int) (x2 Int) (y1 Int) (y2 Int) (y3 Int)) Bool - (and (>= x1 0) (> x2 0) (= y1 0) (= y2 0) (= y3 x1))) - -(define-fun trans-f ((x1 Int) (x2 Int) (y1 Int) (y2 Int) (y3 Int) - (x1! Int) (x2! Int) (y1! Int) (y2! Int) (y3! Int)) Bool - (and (not (= y3 0)) (= x1! x1) (= x2! x2) - (or (and (= x2 (+ y2 1)) - (= y1! (+ y1 1)) (= 0 y2!) (= y3! (- y3 1))) - (and (not (= x2 (+ y2 1))) - (= y1! y1) (= y2! (+ y2 1)) (= y3! (- y3 1)))))) - -(define-fun post-f ((x1 Int) (x2 Int) (y1 Int) (y2 Int) (y3 Int)) Bool - (or (not (= y3 0)) - (and (= y2 (mod x1 x2)) (= y1 (div x1 x2))))) - -(inv-constraint inv-f pre-f trans-f post-f) - -(check-synth) \ No newline at end of file +(set-logic NIA) + +(synth-inv inv-f ((x1 Int) (x2 Int) (y1 Int) (y2 Int) (y3 Int))) + +(define-fun pre-f ((x1 Int) (x2 Int) (y1 Int) (y2 Int) (y3 Int)) Bool + (and (>= x1 0) (> x2 0) (= y1 0) (= y2 0) (= y3 x1))) +(define-fun trans-f ((x1 Int) (x2 Int) (y1 Int) (y2 Int) (y3 Int) (x1! Int) (x2! Int) (y1! Int) (y2! Int) (y3! Int)) Bool + (and (not (= y3 0)) (= x1! x1) (= x2! x2) (or (and (= x2 (+ y2 1)) (= y1! (+ y1 1)) (= 0 y2!) (= y3! (- y3 1))) (and (not (= x2 (+ y2 1))) (= y1! y1) (= y2! (+ y2 1)) (= y3! (- y3 1)))))) +(define-fun post-f ((x1 Int) (x2 Int) (y1 Int) (y2 Int) (y3 Int)) Bool + (or (not (= y3 0)) (and (= y2 (mod x1 x2)) (= y1 (div x1 x2))))) + +(inv-constraint inv-f pre-f trans-f post-f) + +(check-synth) + diff --git a/benchmarks/NIA/other/georeihe1.sl b/benchmarks/NIA/other/georeihe1.sl deleted file mode 100644 index 3f598b8..0000000 --- a/benchmarks/NIA/other/georeihe1.sl +++ /dev/null @@ -1,27 +0,0 @@ -; benchmark adapted from page 26 of https://www.yumpu.com/de/document/read/43705376/berechnung-von-polynomiellen-invarianten - -(set-logic NIA) - -(synth-inv inv-f ((z Int) (k Int) (x Int) (y Int))) - -(declare-primed-var z Int) -(declare-primed-var k Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(define-fun pre-f ((z Int) (k Int) (x Int) (y Int)) Bool - (and (>= z 1) (= k 0) (= x 1) (= y 1))) - -(define-fun trans-f ((z Int) (k Int) (x Int) (y Int) - (z! Int) (k! Int) (x! Int) (y! Int)) Bool - (and (= x! (+ (* x z) 1)) - (= y! (* y z)) - (= k! (+ k 1)))) - -(define-fun post-f ((z Int) (k Int) (x Int) (y Int)) Bool - (and (= y (pow z k)) - (= (* x (- z 1)) (- (pow z (+ k 1)) 1)))) - -(inv-constraint inv-f pre-f trans-f post-f) - -(check-synth) \ No newline at end of file diff --git a/benchmarks/NIA/other/georeihe2.sl b/benchmarks/NIA/other/georeihe2.sl deleted file mode 100644 index 0ebd0fb..0000000 --- a/benchmarks/NIA/other/georeihe2.sl +++ /dev/null @@ -1,27 +0,0 @@ -; benchmark adapted from page 26 of https://www.yumpu.com/de/document/read/43705376/berechnung-von-polynomiellen-invarianten - -(set-logic NIA) - -(synth-inv inv-f ((z Int) (k Int) (x Int) (y Int))) - -(declare-primed-var z Int) -(declare-primed-var k Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(define-fun pre-f ((z Int) (k Int) (x Int) (y Int)) Bool - (and (> z 1) (= k 1) (= x 1) (= y 1))) - -(define-fun trans-f ((z Int) (k Int) (x Int) (y Int) - (z! Int) (k! Int) (x! Int) (y! Int)) Bool - (and (= x! (+ (* x z) 1)) - (= y! (* y z)) - (= k! (+ k 1)))) - -(define-fun post-f ((z Int) (k Int) (x Int) (y Int)) Bool - (and (= y (pow z (- k 1))) - (= x (div (- (pow z k) 1) (- z 1))))) - -(inv-constraint inv-f pre-f trans-f post-f) - -(check-synth) \ No newline at end of file diff --git a/benchmarks/NIA/other/georeihe3.sl b/benchmarks/NIA/other/georeihe3.sl deleted file mode 100644 index bbfa364..0000000 --- a/benchmarks/NIA/other/georeihe3.sl +++ /dev/null @@ -1,28 +0,0 @@ -; benchmark adapted from page 26 of https://www.yumpu.com/de/document/read/43705376/berechnung-von-polynomiellen-invarianten - -(set-logic NIA) - -(synth-inv inv-f ((a Int) (z Int) (k Int) (x Int) (y Int))) - -(declare-primed-var a Int) -(declare-primed-var z Int) -(declare-primed-var k Int) -(declare-primed-var x Int) -(declare-primed-var y Int) - -(define-fun pre-f ((a Int) (z Int) (k Int) (x Int) (y Int)) Bool - (and (> z 1) (= k 1) (= x a) (= y 1))) - -(define-fun trans-f ((a Int) (z Int) (k Int) (x Int) (y Int) - (a! Int) (z! Int) (k! Int) (x! Int) (y! Int)) Bool - (and (= x! (+ (* x z) a)) - (= y! (* y z)) - (= k! (+ k 1)))) - -(define-fun post-f ((a Int) (z Int) (k Int) (x Int) (y Int)) Bool - (and (= y (pow z (- k 1))) - (= x (* a (div (- (pow z k) 1) (- z 1)))))) - -(inv-constraint inv-f pre-f trans-f post-f) - -(check-synth) \ No newline at end of file diff --git a/benchmarks/NIA/other/issue_8.sl b/benchmarks/NIA/other/issue_8.sl index 9dd3506..01389d4 100644 --- a/benchmarks/NIA/other/issue_8.sl +++ b/benchmarks/NIA/other/issue_8.sl @@ -2,30 +2,14 @@ (synth-inv inv-f ((x Int) (y Int) (q Int) (r Int))) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var q Int) -(declare-primed-var r Int) - (define-fun pre-f ((x Int) (y Int) (q Int) (r Int)) Bool - (and (> y 0) - (>= x 0) - (= q 0) - (= r x))) - -(define-fun trans-f ((x Int) (y Int) (q Int) (r Int) - (x! Int) (y! Int) (q! Int) (r! Int)) Bool - (and (>= r y) - (= y! y) - (= x! x) - (= r! (- r y)) - (= q! (+ q 1)))) - + (and (> y 0) (>= x 0) (= q 0) (= r x))) +(define-fun trans-f ((x Int) (y Int) (q Int) (r Int) (x! Int) (y! Int) (q! Int) (r! Int)) Bool + (and (>= r y) (= y! y) (= x! x) (= r! (- r y)) (= q! (+ q 1)))) (define-fun post-f ((x Int) (y Int) (q Int) (r Int)) Bool - (or (>= r y) - (and (= x (+ r (* q y))) - (>= r 0)))) + (or (>= r y) (and (= x (+ r (* q y))) (>= r 0)))) (inv-constraint inv-f pre-f trans-f post-f) (check-synth) + diff --git a/benchmarks/NIA/other/lcm.sl b/benchmarks/NIA/other/lcm.sl index 6d04ec6..6c0cbaa 100644 --- a/benchmarks/NIA/other/lcm.sl +++ b/benchmarks/NIA/other/lcm.sl @@ -1,37 +1,15 @@ -; Benchmark adapted from http://www.lsi.upc.edu/~erodri/webpage/polynomial_invariants/lcm2.htm - -(set-logic NIA) - -(synth-inv inv-f ((a Int) (b Int) (x Int) (y Int) (u Int) (v Int))) - -(declare-primed-var a Int) -(declare-primed-var b Int) -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var u Int) -(declare-primed-var v Int) - -(define-fun pre-f ((a Int) (b Int) (x Int) (y Int) (u Int) (v Int)) Bool - (and (> a 0) (> b 0) (= x a) (= y b) (= u b) (= v a))) - -(define-fun trans-f ((a Int) (b Int) (x Int) (y Int) (u Int) (v Int) - (a! Int) (b! Int) (x! Int) (y! Int) (u! Int) (v! Int)) Bool - (and (not (= x y)) (= a! a) (= b! b) - (or (and (> x y) - (= y! y) (= u! u) - (= x! (- x y)) - (= v! (+ v u))) - (and (not (> x y)) - (= x! x) (= v! v) - (= y! (- y x)) - (= u! (+ u v)))))) - -(define-fun post-f ((a Int) (b Int) (x Int) (y Int) (u Int) (v Int)) Bool - (or (not (= x y)) - (and (> u 0) (> v 0) - (= 0 (mod (+ u v) a)) - (= 0 (mod (+ u v) b))))) - -(inv-constraint inv-f pre-f trans-f post-f) - -(check-synth) \ No newline at end of file +(set-logic NIA) + +(synth-inv inv-f ((a Int) (b Int) (x Int) (y Int) (u Int) (v Int))) + +(define-fun pre-f ((a Int) (b Int) (x Int) (y Int) (u Int) (v Int)) Bool + (and (> a 0) (> b 0) (= x a) (= y b) (= u b) (= v a))) +(define-fun trans-f ((a Int) (b Int) (x Int) (y Int) (u Int) (v Int) (a! Int) (b! Int) (x! Int) (y! Int) (u! Int) (v! Int)) Bool + (and (not (= x y)) (= a! a) (= b! b) (or (and (> x y) (= y! y) (= u! u) (= x! (- x y)) (= v! (+ v u))) (and (not (> x y)) (= x! x) (= v! v) (= y! (- y x)) (= u! (+ u v)))))) +(define-fun post-f ((a Int) (b Int) (x Int) (y Int) (u Int) (v Int)) Bool + (or (not (= x y)) (and (> u 0) (> v 0) (= 0 (mod (+ u v) a)) (= 0 (mod (+ u v) b))))) + +(inv-constraint inv-f pre-f trans-f post-f) + +(check-synth) + diff --git a/benchmarks/NIA/other/mul.sl b/benchmarks/NIA/other/mul.sl index c493eec..f6291a0 100644 --- a/benchmarks/NIA/other/mul.sl +++ b/benchmarks/NIA/other/mul.sl @@ -1,29 +1,15 @@ -; Benchmark adapted from Non-linear Loop Invariant Generation using Grobner Bases - -(set-logic NIA) - -(synth-inv inv-f ((i Int) (s Int) (j Int) (j0 Int))) - -(declare-primed-var i Int) -(declare-primed-var s Int) -(declare-primed-var j Int) -(declare-primed-var j0 Int) - -(define-fun pre-f ((i Int) (s Int) (j Int) (j0 Int)) Bool - (and (= s 0) (= j j0) (>= j0 0))) - -(define-fun trans-f ((i Int) (s Int) (j Int) (j0 Int) - (i! Int) (s! Int) (j! Int) (j0! Int)) Bool - (and (not (= 0 j)) - (= s! (+ s i)) - (= j! (- j 1)) - (= i! i) - (= j0! j0))) - -(define-fun post-f ((i Int) (s Int) (j Int) (j0 Int)) Bool - (or (not (= 0 j)) - (= s (* i j0)))) - -(inv-constraint inv-f pre-f trans-f post-f) - -(check-synth) \ No newline at end of file +(set-logic NIA) + +(synth-inv inv-f ((i Int) (s Int) (j Int) (j0 Int))) + +(define-fun pre-f ((i Int) (s Int) (j Int) (j0 Int)) Bool + (and (= s 0) (= j j0) (>= j0 0))) +(define-fun trans-f ((i Int) (s Int) (j Int) (j0 Int) (i! Int) (s! Int) (j! Int) (j0! Int)) Bool + (and (not (= 0 j)) (= s! (+ s i)) (= j! (- j 1)) (= i! i) (= j0! j0))) +(define-fun post-f ((i Int) (s Int) (j Int) (j0 Int)) Bool + (or (not (= 0 j)) (= s (* i j0)))) + +(inv-constraint inv-f pre-f trans-f post-f) + +(check-synth) + diff --git a/benchmarks/NIA/other/pottsumm2.sl b/benchmarks/NIA/other/pottsumm2.sl index be26c25..81eda39 100644 --- a/benchmarks/NIA/other/pottsumm2.sl +++ b/benchmarks/NIA/other/pottsumm2.sl @@ -1,29 +1,15 @@ -; benchmark adapted from page 28 https://www.yumpu.com/de/document/read/43705376/berechnung-von-polynomiellen-invarianten - -(set-logic NIA) - -(synth-inv inv-f ((x Int) (y Int) (i Int) (k Int))) - -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var i Int) -(declare-primed-var k Int) - -(define-fun pre-f ((x Int) (y Int) (i Int) (k Int)) Bool - (and (= x 0) (= y 0) (= i 0) (>= k 0))) - -(define-fun trans-f ((x Int) (y Int) (i Int) (k Int) - (x! Int) (y! Int) (i! Int) (k! Int)) Bool - (and (< i k) (= k! k) - (= i! (+ i 1)) - (= y! (+ y 1)) - (= x! (+ x y!)))) - -(define-fun post-f ((x Int) (y Int) (i Int) (k Int)) Bool - (or (< i k) - (and (= y k) - (= (* 2 x) (+ (* y y) y))))) - -(inv-constraint inv-f pre-f trans-f post-f) - -(check-synth) \ No newline at end of file +(set-logic NIA) + +(synth-inv inv-f ((x Int) (y Int) (i Int) (k Int))) + +(define-fun pre-f ((x Int) (y Int) (i Int) (k Int)) Bool + (and (= x 0) (= y 0) (= i 0) (>= k 0))) +(define-fun trans-f ((x Int) (y Int) (i Int) (k Int) (x! Int) (y! Int) (i! Int) (k! Int)) Bool + (and (< i k) (= k! k) (= i! (+ i 1)) (= y! (+ y 1)) (= x! (+ x y!)))) +(define-fun post-f ((x Int) (y Int) (i Int) (k Int)) Bool + (or (< i k) (and (= y k) (= (* 2 x) (+ (* y y) y))))) + +(inv-constraint inv-f pre-f trans-f post-f) + +(check-synth) + diff --git a/benchmarks/NIA/other/pottsumm3.sl b/benchmarks/NIA/other/pottsumm3.sl index 09456cf..e0734e4 100644 --- a/benchmarks/NIA/other/pottsumm3.sl +++ b/benchmarks/NIA/other/pottsumm3.sl @@ -1,29 +1,15 @@ -; benchmark adapted from page 28 https://www.yumpu.com/de/document/read/43705376/berechnung-von-polynomiellen-invarianten - -(set-logic NIA) - -(synth-inv inv-f ((x Int) (y Int) (i Int) (k Int))) - -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var i Int) -(declare-primed-var k Int) - -(define-fun pre-f ((x Int) (y Int) (i Int) (k Int)) Bool - (and (= x 0) (= y 0) (= i 0) (>= k 0))) - -(define-fun trans-f ((x Int) (y Int) (i Int) (k Int) - (x! Int) (y! Int) (i! Int) (k! Int)) Bool - (and (< i k) (= k! k) - (= i! (+ i 1)) - (= y! (+ y 1)) - (= x! (+ x (* y! y!))))) - -(define-fun post-f ((x Int) (y Int) (i Int) (k Int)) Bool - (or (< i k) - (and (= y k) - (= (* 6 x) (+ (+ (* 2 (* (* y y) y)) (* 3 (* y y))) y))))) - -(inv-constraint inv-f pre-f trans-f post-f) - -(check-synth) \ No newline at end of file +(set-logic NIA) + +(synth-inv inv-f ((x Int) (y Int) (i Int) (k Int))) + +(define-fun pre-f ((x Int) (y Int) (i Int) (k Int)) Bool + (and (= x 0) (= y 0) (= i 0) (>= k 0))) +(define-fun trans-f ((x Int) (y Int) (i Int) (k Int) (x! Int) (y! Int) (i! Int) (k! Int)) Bool + (and (< i k) (= k! k) (= i! (+ i 1)) (= y! (+ y 1)) (= x! (+ x (* y! y!))))) +(define-fun post-f ((x Int) (y Int) (i Int) (k Int)) Bool + (or (< i k) (and (= y k) (= (* 6 x) (+ (+ (* 2 (* (* y y) y)) (* 3 (* y y))) y))))) + +(inv-constraint inv-f pre-f trans-f post-f) + +(check-synth) + diff --git a/benchmarks/NIA/other/pottsumm4.sl b/benchmarks/NIA/other/pottsumm4.sl index f5483b5..58e7abf 100644 --- a/benchmarks/NIA/other/pottsumm4.sl +++ b/benchmarks/NIA/other/pottsumm4.sl @@ -1,30 +1,15 @@ -; benchmark adapted from page 28 https://www.yumpu.com/de/document/read/43705376/berechnung-von-polynomiellen-invarianten - -(set-logic NIA) - -(synth-inv inv-f ((x Int) (y Int) (i Int) (k Int))) - -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var i Int) -(declare-primed-var k Int) - -(define-fun pre-f ((x Int) (y Int) (i Int) (k Int)) Bool - (and (= x 0) (= y 0) (= i 0) (>= k 0))) - -(define-fun trans-f ((x Int) (y Int) (i Int) (k Int) - (x! Int) (y! Int) (i! Int) (k! Int)) Bool - (and (< i k) (= k! k) - (= i! (+ i 1)) - (= y! (+ y 1)) - (= x! (+ x (* y! y! y!))))) - -(define-fun post-f ((x Int) (y Int) (i Int) (k Int)) Bool - (or (< i k) - (and (= y k) - (= (* 4 x) (+ (+ (* 2 (* (* y y) y)) (* y y)) - (* (* y y) (* y y))))))) - -(inv-constraint inv-f pre-f trans-f post-f) - -(check-synth) \ No newline at end of file +(set-logic NIA) + +(synth-inv inv-f ((x Int) (y Int) (i Int) (k Int))) + +(define-fun pre-f ((x Int) (y Int) (i Int) (k Int)) Bool + (and (= x 0) (= y 0) (= i 0) (>= k 0))) +(define-fun trans-f ((x Int) (y Int) (i Int) (k Int) (x! Int) (y! Int) (i! Int) (k! Int)) Bool + (and (< i k) (= k! k) (= i! (+ i 1)) (= y! (+ y 1)) (= x! (+ x (* y! y! y!))))) +(define-fun post-f ((x Int) (y Int) (i Int) (k Int)) Bool + (or (< i k) (and (= y k) (= (* 4 x) (+ (+ (* 2 (* (* y y) y)) (* y y)) (* (* y y) (* y y))))))) + +(inv-constraint inv-f pre-f trans-f post-f) + +(check-synth) + diff --git a/benchmarks/NIA/other/prod4br.sl b/benchmarks/NIA/other/prod4br.sl index 190d321..81b9f72 100644 --- a/benchmarks/NIA/other/prod4br.sl +++ b/benchmarks/NIA/other/prod4br.sl @@ -1,41 +1,15 @@ -; Benchmark adapted from http://www.lsi.upc.edu/~erodri/webpage/polynomial_invariants/prod4br.htm - -(set-logic NIA) - -(synth-inv inv-f ((x Int) (y Int) (a Int) (b Int) (p Int) (q Int))) - -(declare-primed-var x Int) -(declare-primed-var y Int) -(declare-primed-var a Int) -(declare-primed-var b Int) -(declare-primed-var p Int) -(declare-primed-var q Int) - -(define-fun pre-f ((x Int) (y Int) (a Int) (b Int) (p Int) (q Int)) Bool - (and (>= x 0) (>= y 0) (= a x) (= b y) (= p 1) (= q 0))) - -(define-fun trans-f ((x Int) (y Int) (a Int) (b Int) (p Int) (q Int) - (x! Int) (y! Int) (a! Int) (b! Int) (p! Int) (q! Int)) Bool - (and (not (= a 0)) (not (= b 0)) (= x! x) (= y! y) - (or (and (= (mod a 2) 0) (= (mod b 2) 0) - (= q! q) - (= a! (div a 2)) (= b! (div b 2)) (= p! (* 4 p))) - (and (= (mod a 2) 1) (= (mod b 2) 0) - (= p! p) (= b! b) - (= a! (- a 1)) (= q! (+ q (* b p)))) - (and (= (mod a 2) 0) (= (mod b 2) 1) - (= p! p) (= a! a) - (= b! (- b 1)) (= q! (+ q (* a p)))) - (and (= (mod a 2) 1) (= (mod b 2) 1) - (= p! p) - (= b! (- b 1)) (= a! (- a 1)) - (= q! (+ q (* p (+ (+ a! b!) (- 0 1)))))) - ))) - -(define-fun post-f ((x Int) (y Int) (a Int) (b Int) (p Int) (q Int)) Bool - (or (and (not (= a 0)) (not (= b 0))) - (= q (* x y)))) - -(inv-constraint inv-f pre-f trans-f post-f) - -(check-synth) \ No newline at end of file +(set-logic NIA) + +(synth-inv inv-f ((x Int) (y Int) (a Int) (b Int) (p Int) (q Int))) + +(define-fun pre-f ((x Int) (y Int) (a Int) (b Int) (p Int) (q Int)) Bool + (and (>= x 0) (>= y 0) (= a x) (= b y) (= p 1) (= q 0))) +(define-fun trans-f ((x Int) (y Int) (a Int) (b Int) (p Int) (q Int) (x! Int) (y! Int) (a! Int) (b! Int) (p! Int) (q! Int)) Bool + (and (not (= a 0)) (not (= b 0)) (= x! x) (= y! y) (or (and (= (mod a 2) 0) (= (mod b 2) 0) (= q! q) (= a! (div a 2)) (= b! (div b 2)) (= p! (* 4 p))) (and (= (mod a 2) 1) (= (mod b 2) 0) (= p! p) (= b! b) (= a! (- a 1)) (= q! (+ q (* b p)))) (and (= (mod a 2) 0) (= (mod b 2) 1) (= p! p) (= a! a) (= b! (- b 1)) (= q! (+ q (* a p)))) (and (= (mod a 2) 1) (= (mod b 2) 1) (= p! p) (= b! (- b 1)) (= a! (- a 1)) (= q! (+ q (* p (+ (+ a! b!) (- 0 1))))))))) +(define-fun post-f ((x Int) (y Int) (a Int) (b Int) (p Int) (q Int)) Bool + (or (and (not (= a 0)) (not (= b 0))) (= q (* x y)))) + +(inv-constraint inv-f pre-f trans-f post-f) + +(check-synth) + diff --git a/benchmarks/README.md b/benchmarks/README.md index df9f1d0..5ad823f 100644 --- a/benchmarks/README.md +++ b/benchmarks/README.md @@ -35,5 +35,10 @@ - _Original Benchmarks:_ n/a ### (2018) SV-Comp · · · [LIA](LIA/2018.SV-Comp), [NIA](NIA/2018.SV-Comp) -- _Related Publication:_ Beyer, Dirk. "**Software Verification with Validation of Results.**" _International Conference on Tools and Algorithms for the Construction and Analysis of Systems_. Springer, Berlin, Heidelberg, 2017. +- _Related Publication:_ Beyer, Dirk. "**Software Verification with Validation of Results (Report on SV-COMP 2017).**" _International Conference on Tools and Algorithms for the Construction and Analysis of Systems_. Springer, 2018. - _Original Benchmarks:_ + + +### (2019) SV-Comp · · · [ALIA](ALIA/2019.SV-Comp) +- _Related Publication:_ Beyer, Dirk. "**Automatic Verification of C and Java Programs: SV-COMP 2019.**" _International Conference on Tools and Algorithms for the Construction and Analysis of Systems_. Springer, 2019. +- _Original Benchmarks:_ \ No newline at end of file